diff --git a/.ci/update_windows/update.py b/.ci/update_windows/update.py index 6a04e5e1..731b6bc5 100755 --- a/.ci/update_windows/update.py +++ b/.ci/update_windows/update.py @@ -28,17 +28,17 @@ def pull(repo, remote_name='origin', branch='master'): if repo.index.conflicts is not None: for conflict in repo.index.conflicts: - print('Conflicts found in:', conflict[0].path) + print('Conflicts found in:', conflict[0].path) # noqa: T201 raise AssertionError('Conflicts, ahhhhh!!') user = repo.default_signature tree = repo.index.write_tree() - commit = repo.create_commit('HEAD', - user, - user, - 'Merge!', - tree, - [repo.head.target, remote_master_id]) + repo.create_commit('HEAD', + user, + user, + 'Merge!', + tree, + [repo.head.target, remote_master_id]) # We need to do this or git CLI will think we are still merging. repo.state_cleanup() else: @@ -49,18 +49,18 @@ repo_path = str(sys.argv[1]) repo = pygit2.Repository(repo_path) ident = pygit2.Signature('comfyui', 'comfy@ui') try: - print("stashing current changes") + print("stashing current changes") # noqa: T201 repo.stash(ident) except KeyError: - print("nothing to stash") + print("nothing to stash") # noqa: T201 backup_branch_name = 'backup_branch_{}'.format(datetime.today().strftime('%Y-%m-%d_%H_%M_%S')) -print("creating backup branch: {}".format(backup_branch_name)) +print("creating backup branch: {}".format(backup_branch_name)) # noqa: T201 try: repo.branches.local.create(backup_branch_name, repo.head.peel()) except: pass -print("checking out master branch") +print("checking out master branch") # noqa: T201 branch = repo.lookup_branch('master') if branch is None: ref = repo.lookup_reference('refs/remotes/origin/master') @@ -72,7 +72,7 @@ else: ref = repo.lookup_reference(branch.name) repo.checkout(ref) -print("pulling latest changes") +print("pulling latest changes") # noqa: T201 pull(repo) if "--stable" in sys.argv: @@ -94,7 +94,7 @@ if "--stable" in sys.argv: if latest_tag is not None: repo.checkout(latest_tag) -print("Done!") +print("Done!") # noqa: T201 self_update = True if len(sys.argv) > 2: diff --git a/.github/workflows/pylint.yml b/.github/workflows/ruff.yml similarity index 59% rename from .github/workflows/pylint.yml rename to .github/workflows/ruff.yml index 5effbea3..4c1a0259 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/ruff.yml @@ -3,8 +3,8 @@ name: Python Linting on: [push, pull_request] jobs: - pylint: - name: Run Pylint + ruff: + name: Run Ruff runs-on: ubuntu-latest steps: @@ -16,8 +16,8 @@ jobs: with: python-version: 3.x - - name: Install Pylint - run: pip install pylint + - name: Install Ruff + run: pip install ruff - - name: Run Pylint - run: pylint --rcfile=.pylintrc $(find . -type f -name "*.py") + - name: Run Ruff + run: ruff check . diff --git a/.github/workflows/test-ci.yml b/.github/workflows/test-ci.yml index ce4598b2..418dca0a 100644 --- a/.github/workflows/test-ci.yml +++ b/.github/workflows/test-ci.yml @@ -20,7 +20,8 @@ jobs: strategy: fail-fast: false matrix: - os: [macos, linux, windows] + # os: [macos, linux, windows] + os: [macos, linux] python_version: ["3.9", "3.10", "3.11", "3.12"] cuda_version: ["12.1"] torch_version: ["stable"] @@ -31,9 +32,9 @@ jobs: - os: linux runner_label: [self-hosted, Linux] flags: "" - - os: windows - runner_label: [self-hosted, Windows] - flags: "" + # - os: windows + # runner_label: [self-hosted, Windows] + # flags: "" runs-on: ${{ matrix.runner_label }} steps: - name: Test Workflows @@ -45,28 +46,28 @@ jobs: google_credentials: ${{ secrets.GCS_SERVICE_ACCOUNT_JSON }} comfyui_flags: ${{ matrix.flags }} - test-win-nightly: - strategy: - fail-fast: true - matrix: - os: [windows] - python_version: ["3.9", "3.10", "3.11", "3.12"] - cuda_version: ["12.1"] - torch_version: ["nightly"] - include: - - os: windows - runner_label: [self-hosted, Windows] - flags: "" - runs-on: ${{ matrix.runner_label }} - steps: - - name: Test Workflows - uses: comfy-org/comfy-action@main - with: - os: ${{ matrix.os }} - python_version: ${{ matrix.python_version }} - torch_version: ${{ matrix.torch_version }} - google_credentials: ${{ secrets.GCS_SERVICE_ACCOUNT_JSON }} - comfyui_flags: ${{ matrix.flags }} + # test-win-nightly: + # strategy: + # fail-fast: true + # matrix: + # os: [windows] + # python_version: ["3.9", "3.10", "3.11", "3.12"] + # cuda_version: ["12.1"] + # torch_version: ["nightly"] + # include: + # - os: windows + # runner_label: [self-hosted, Windows] + # flags: "" + # runs-on: ${{ matrix.runner_label }} + # steps: + # - name: Test Workflows + # uses: comfy-org/comfy-action@main + # with: + # os: ${{ matrix.os }} + # python_version: ${{ matrix.python_version }} + # torch_version: ${{ matrix.torch_version }} + # google_credentials: ${{ secrets.GCS_SERVICE_ACCOUNT_JSON }} + # comfyui_flags: ${{ matrix.flags }} test-unix-nightly: strategy: diff --git a/.github/workflows/test-launch.yml b/.github/workflows/test-launch.yml index 42f1dbe9..c56283c2 100644 --- a/.github/workflows/test-launch.yml +++ b/.github/workflows/test-launch.yml @@ -17,7 +17,7 @@ jobs: path: "ComfyUI" - uses: actions/setup-python@v4 with: - python-version: '3.8' + python-version: '3.9' - name: Install requirements run: | python -m pip install --upgrade pip @@ -28,7 +28,7 @@ jobs: - name: Start ComfyUI server run: | python main.py --cpu 2>&1 | tee console_output.log & - wait-for-it --service 127.0.0.1:8188 -t 600 + wait-for-it --service 127.0.0.1:8188 -t 30 working-directory: ComfyUI - name: Check for unhandled exceptions in server log run: | diff --git a/.github/workflows/update-frontend.yml b/.github/workflows/update-frontend.yml new file mode 100644 index 00000000..0c577478 --- /dev/null +++ b/.github/workflows/update-frontend.yml @@ -0,0 +1,58 @@ +name: Update Frontend Release + +on: + workflow_dispatch: + inputs: + version: + description: "Frontend version to update to (e.g., 1.0.0)" + required: true + type: string + +jobs: + update-frontend: + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + + steps: + - name: Checkout ComfyUI + uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: '3.10' + - name: Install requirements + run: | + python -m pip install --upgrade pip + pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu + pip install -r requirements.txt + pip install wait-for-it + # Frontend asset will be downloaded to ComfyUI/web_custom_versions/Comfy-Org_ComfyUI_frontend/{version} + - name: Start ComfyUI server + run: | + python main.py --cpu --front-end-version Comfy-Org/ComfyUI_frontend@${{ github.event.inputs.version }} 2>&1 | tee console_output.log & + wait-for-it --service 127.0.0.1:8188 -t 30 + - name: Configure Git + run: | + git config --global user.name "GitHub Action" + git config --global user.email "action@github.com" + # Replace existing frontend content with the new version and remove .js.map files + # See https://github.com/Comfy-Org/ComfyUI_frontend/issues/2145 for why we remove .js.map files + - name: Update frontend content + run: | + rm -rf web/ + cp -r web_custom_versions/Comfy-Org_ComfyUI_frontend/${{ github.event.inputs.version }} web/ + rm web/**/*.js.map + - name: Create Pull Request + uses: peter-evans/create-pull-request@v7 + with: + token: ${{ secrets.PR_BOT_PAT }} + commit-message: "Update frontend to v${{ github.event.inputs.version }}" + title: "Frontend Update: v${{ github.event.inputs.version }}" + body: | + Automated PR to update frontend content to version ${{ github.event.inputs.version }} + + This PR was created automatically by the frontend update workflow. + branch: release-${{ github.event.inputs.version }} + base: master + labels: Frontend,dependencies diff --git a/.github/workflows/windows_release_nightly_pytorch.yml b/.github/workflows/windows_release_nightly_pytorch.yml index 07f52e0b..f9048870 100644 --- a/.github/workflows/windows_release_nightly_pytorch.yml +++ b/.github/workflows/windows_release_nightly_pytorch.yml @@ -7,19 +7,19 @@ on: description: 'cuda version' required: true type: string - default: "124" + default: "126" python_minor: description: 'python minor version' required: true type: string - default: "12" + default: "13" python_patch: description: 'python patch version' required: true type: string - default: "4" + default: "1" # push: # branches: # - master diff --git a/.pylintrc b/.pylintrc deleted file mode 100644 index a5da56e5..00000000 --- a/.pylintrc +++ /dev/null @@ -1,3 +0,0 @@ -[MESSAGES CONTROL] -disable=all -enable=eval-used diff --git a/CODEOWNERS b/CODEOWNERS index 7c7c3e19..814d1ecd 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1 +1,23 @@ -* @comfyanonymous +# Admins +* @comfyanonymous + +# Note: Github teams syntax cannot be used here as the repo is not owned by Comfy-Org. +# Inlined the team members for now. + +# Maintainers +*.md @yoland68 @robinjhuang @huchenlei @webfiltered @pythongosssss @ltdrdata @Kosinkadink +/tests/ @yoland68 @robinjhuang @huchenlei @webfiltered @pythongosssss @ltdrdata @Kosinkadink +/tests-unit/ @yoland68 @robinjhuang @huchenlei @webfiltered @pythongosssss @ltdrdata @Kosinkadink +/notebooks/ @yoland68 @robinjhuang @huchenlei @webfiltered @pythongosssss @ltdrdata @Kosinkadink +/script_examples/ @yoland68 @robinjhuang @huchenlei @webfiltered @pythongosssss @ltdrdata @Kosinkadink +/.github/ @yoland68 @robinjhuang @huchenlei @webfiltered @pythongosssss @ltdrdata @Kosinkadink + +# Python web server +/api_server/ @yoland68 @robinjhuang @huchenlei @webfiltered @pythongosssss @ltdrdata +/app/ @yoland68 @robinjhuang @huchenlei @webfiltered @pythongosssss @ltdrdata + +# Frontend assets +/web/ @huchenlei @webfiltered @pythongosssss @yoland68 @robinjhuang + +# Extra nodes +/comfy_extras/ @yoland68 @robinjhuang @huchenlei @pythongosssss @ltdrdata @Kosinkadink diff --git a/README.md b/README.md index 8e5cef45..000d7680 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ [github-downloads-latest-shield]: https://img.shields.io/github/downloads/comfyanonymous/ComfyUI/latest/total?style=flat&label=downloads%40latest [github-downloads-link]: https://github.com/comfyanonymous/ComfyUI/releases -![ComfyUI Screenshot](comfyui_screenshot.png) +![ComfyUI Screenshot](https://github.com/user-attachments/assets/7ccaf2c1-9b72-41ae-9a89-5688c94b7abe) This ui will let you design and execute advanced stable diffusion pipelines using a graph/nodes/flowchart based interface. For some workflow examples and see what ComfyUI can do you can check out: @@ -38,8 +38,21 @@ This ui will let you design and execute advanced stable diffusion pipelines usin ## Features - Nodes/graph/flowchart interface to experiment and create complex Stable Diffusion workflows without needing to code anything. -- Fully supports SD1.x, SD2.x, [SDXL](https://comfyanonymous.github.io/ComfyUI_examples/sdxl/), [Stable Video Diffusion](https://comfyanonymous.github.io/ComfyUI_examples/video/), [Stable Cascade](https://comfyanonymous.github.io/ComfyUI_examples/stable_cascade/), [SD3](https://comfyanonymous.github.io/ComfyUI_examples/sd3/) and [Stable Audio](https://comfyanonymous.github.io/ComfyUI_examples/audio/) -- [Flux](https://comfyanonymous.github.io/ComfyUI_examples/flux/) +- Image Models + - SD1.x, SD2.x, + - [SDXL](https://comfyanonymous.github.io/ComfyUI_examples/sdxl/), [SDXL Turbo](https://comfyanonymous.github.io/ComfyUI_examples/sdturbo/) + - [Stable Cascade](https://comfyanonymous.github.io/ComfyUI_examples/stable_cascade/) + - [SD3 and SD3.5](https://comfyanonymous.github.io/ComfyUI_examples/sd3/) + - Pixart Alpha and Sigma + - [AuraFlow](https://comfyanonymous.github.io/ComfyUI_examples/aura_flow/) + - [HunyuanDiT](https://comfyanonymous.github.io/ComfyUI_examples/hunyuan_dit/) + - [Flux](https://comfyanonymous.github.io/ComfyUI_examples/flux/) +- Video Models + - [Stable Video Diffusion](https://comfyanonymous.github.io/ComfyUI_examples/video/) + - [Mochi](https://comfyanonymous.github.io/ComfyUI_examples/mochi/) + - [LTX-Video](https://comfyanonymous.github.io/ComfyUI_examples/ltxv/) + - [Hunyuan Video](https://comfyanonymous.github.io/ComfyUI_examples/hunyuan_video/) +- [Stable Audio](https://comfyanonymous.github.io/ComfyUI_examples/audio/) - Asynchronous Queue system - Many optimizations: Only re-executes the parts of the workflow that changes between executions. - Smart memory management: can automatically run models on GPUs with as low as 1GB vram. @@ -59,9 +72,6 @@ This ui will let you design and execute advanced stable diffusion pipelines usin - [GLIGEN](https://comfyanonymous.github.io/ComfyUI_examples/gligen/) - [Model Merging](https://comfyanonymous.github.io/ComfyUI_examples/model_merging/) - [LCM models and Loras](https://comfyanonymous.github.io/ComfyUI_examples/lcm/) -- [SDXL Turbo](https://comfyanonymous.github.io/ComfyUI_examples/sdturbo/) -- [AuraFlow](https://comfyanonymous.github.io/ComfyUI_examples/aura_flow/) -- [HunyuanDiT](https://comfyanonymous.github.io/ComfyUI_examples/hunyuan_dit/) - Latent previews with [TAESD](#how-to-show-high-quality-previews) - Starts up very fast. - Works fully offline: will never download anything. @@ -73,37 +83,39 @@ Workflow examples can be found on the [Examples page](https://comfyanonymous.git | Keybind | Explanation | |------------------------------------|--------------------------------------------------------------------------------------------------------------------| -| Ctrl + Enter | Queue up current graph for generation | -| Ctrl + Shift + Enter | Queue up current graph as first for generation | -| Ctrl + Alt + Enter | Cancel current generation | -| Ctrl + Z/Ctrl + Y | Undo/Redo | -| Ctrl + S | Save workflow | -| Ctrl + O | Load workflow | -| Ctrl + A | Select all nodes | -| Alt + C | Collapse/uncollapse selected nodes | -| Ctrl + M | Mute/unmute selected nodes | -| Ctrl + B | Bypass selected nodes (acts like the node was removed from the graph and the wires reconnected through) | -| Delete/Backspace | Delete selected nodes | -| Ctrl + Backspace | Delete the current graph | -| Space | Move the canvas around when held and moving the cursor | -| Ctrl/Shift + Click | Add clicked node to selection | -| Ctrl + C/Ctrl + V | Copy and paste selected nodes (without maintaining connections to outputs of unselected nodes) | -| Ctrl + C/Ctrl + Shift + V | Copy and paste selected nodes (maintaining connections from outputs of unselected nodes to inputs of pasted nodes) | -| Shift + Drag | Move multiple selected nodes at the same time | -| Ctrl + D | Load default graph | -| Alt + `+` | Canvas Zoom in | -| Alt + `-` | Canvas Zoom out | -| Ctrl + Shift + LMB + Vertical drag | Canvas Zoom in/out | -| P | Pin/Unpin selected nodes | -| Ctrl + G | Group selected nodes | -| Q | Toggle visibility of the queue | -| H | Toggle visibility of history | -| R | Refresh graph | +| `Ctrl` + `Enter` | Queue up current graph for generation | +| `Ctrl` + `Shift` + `Enter` | Queue up current graph as first for generation | +| `Ctrl` + `Alt` + `Enter` | Cancel current generation | +| `Ctrl` + `Z`/`Ctrl` + `Y` | Undo/Redo | +| `Ctrl` + `S` | Save workflow | +| `Ctrl` + `O` | Load workflow | +| `Ctrl` + `A` | Select all nodes | +| `Alt `+ `C` | Collapse/uncollapse selected nodes | +| `Ctrl` + `M` | Mute/unmute selected nodes | +| `Ctrl` + `B` | Bypass selected nodes (acts like the node was removed from the graph and the wires reconnected through) | +| `Delete`/`Backspace` | Delete selected nodes | +| `Ctrl` + `Backspace` | Delete the current graph | +| `Space` | Move the canvas around when held and moving the cursor | +| `Ctrl`/`Shift` + `Click` | Add clicked node to selection | +| `Ctrl` + `C`/`Ctrl` + `V` | Copy and paste selected nodes (without maintaining connections to outputs of unselected nodes) | +| `Ctrl` + `C`/`Ctrl` + `Shift` + `V` | Copy and paste selected nodes (maintaining connections from outputs of unselected nodes to inputs of pasted nodes) | +| `Shift` + `Drag` | Move multiple selected nodes at the same time | +| `Ctrl` + `D` | Load default graph | +| `Alt` + `+` | Canvas Zoom in | +| `Alt` + `-` | Canvas Zoom out | +| `Ctrl` + `Shift` + LMB + Vertical drag | Canvas Zoom in/out | +| `P` | Pin/Unpin selected nodes | +| `Ctrl` + `G` | Group selected nodes | +| `Q` | Toggle visibility of the queue | +| `H` | Toggle visibility of history | +| `R` | Refresh graph | +| `F` | Show/Hide menu | +| `.` | Fit view to selection (Whole graph when nothing is selected) | | Double-Click LMB | Open node quick search palette | -| Shift + Drag | Move multiple wires at once | -| Ctrl + Alt + LMB | Disconnect all wires from clicked slot | +| `Shift` + Drag | Move multiple wires at once | +| `Ctrl` + `Alt` + LMB | Disconnect all wires from clicked slot | -Ctrl can also be replaced with Cmd instead for macOS users +`Ctrl` can also be replaced with `Cmd` instead for macOS users # Installing @@ -139,11 +151,35 @@ Put your VAE in: models/vae ### AMD GPUs (Linux only) AMD users can install rocm and pytorch with pip if you don't have it already installed, this is the command to install the stable version: -```pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.1``` +```pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.2``` This is the command to install the nightly with ROCm 6.2 which might have some performance improvements: -```pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm6.2``` +```pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm6.2.4``` + +### Intel GPUs (Windows and Linux) + +(Option 1) Intel Arc GPU users can install native PyTorch with torch.xpu support using pip (currently available in PyTorch nightly builds). More information can be found [here](https://pytorch.org/docs/main/notes/get_start_xpu.html) + +1. To install PyTorch nightly, use the following command: + +```pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/xpu``` + +2. Launch ComfyUI by running `python main.py` + + +(Option 2) Alternatively, Intel GPUs supported by Intel Extension for PyTorch (IPEX) can leverage IPEX for improved performance. + +1. For Intel® Arc™ A-Series Graphics utilizing IPEX, create a conda environment and use the commands below: + +``` +conda install libuv +pip install torch==2.3.1.post0+cxx11.abi torchvision==0.18.1.post0+cxx11.abi torchaudio==2.3.1.post0+cxx11.abi intel-extension-for-pytorch==2.3.110.post0+xpu --extra-index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/us/ --extra-index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/cn/ +``` + +For other supported Intel GPUs with IPEX, visit [Installation](https://intel.github.io/intel-extension-for-pytorch/index.html#installation?platform=gpu) for more information. + +Additional discussion and help can be found [here](https://github.com/comfyanonymous/ComfyUI/discussions/476). ### NVIDIA @@ -153,7 +189,7 @@ Nvidia users should install stable pytorch using this command: This is the command to install pytorch nightly instead which might have performance improvements: -```pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu124``` +```pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu126``` #### Troubleshooting @@ -173,17 +209,6 @@ After this you should have everything installed and can proceed to running Comfy ### Others: -#### Intel GPUs - -Intel GPU support is available for all Intel GPUs supported by Intel's Extension for Pytorch (IPEX) with the support requirements listed in the [Installation](https://intel.github.io/intel-extension-for-pytorch/index.html#installation?platform=gpu) page. Choose your platform and method of install and follow the instructions. The steps are as follows: - -1. Start by installing the drivers or kernel listed or newer in the Installation page of IPEX linked above for Windows and Linux if needed. -1. Follow the instructions to install [Intel's oneAPI Basekit](https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html) for your platform. -1. Install the packages for IPEX using the instructions provided in the Installation page for your platform. -1. Follow the [ComfyUI manual installation](#manual-install-windows-linux) instructions for Windows and Linux and run ComfyUI normally as described above after everything is installed. - -Additional discussion and help can be found [here](https://github.com/comfyanonymous/ComfyUI/discussions/476). - #### Apple Mac silicon You can install ComfyUI in Apple Mac silicon (M1 or M2) with any recent macOS version. @@ -199,6 +224,16 @@ You can install ComfyUI in Apple Mac silicon (M1 or M2) with any recent macOS ve ```pip install torch-directml``` Then you can launch ComfyUI with: ```python main.py --directml``` +#### Ascend NPUs + +For models compatible with Ascend Extension for PyTorch (torch_npu). To get started, ensure your environment meets the prerequisites outlined on the [installation](https://ascend.github.io/docs/sources/ascend/quick_install.html) page. Here's a step-by-step guide tailored to your platform and installation method: + +1. Begin by installing the recommended or newer kernel version for Linux as specified in the Installation page of torch-npu, if necessary. +2. Proceed with the installation of Ascend Basekit, which includes the driver, firmware, and CANN, following the instructions provided for your specific platform. +3. Next, install the necessary packages for torch-npu by adhering to the platform-specific instructions on the [Installation](https://ascend.github.io/docs/sources/pytorch/install.html#pytorch) page. +4. Finally, adhere to the [ComfyUI manual installation](#manual-install-windows-linux) guide for Linux. Once all components are installed, you can run ComfyUI as described earlier. + + # Running ```python main.py``` @@ -211,6 +246,14 @@ For 6700, 6600 and maybe other RDNA2 or older: ```HSA_OVERRIDE_GFX_VERSION=10.3. For AMD 7600 and maybe other RDNA3 cards: ```HSA_OVERRIDE_GFX_VERSION=11.0.0 python main.py``` +### AMD ROCm Tips + +You can enable experimental memory efficient attention on pytorch 2.5 in ComfyUI on RDNA3 and potentially other AMD GPUs using this command: + +```TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1 python main.py --use-pytorch-cross-attention``` + +You can also try setting this env variable `PYTORCH_TUNABLEOP_ENABLED=1` which might speed things up at the cost of a very slow initial run. + # Notes Only parts of the graph that have an output with all the correct inputs will be executed. @@ -296,4 +339,3 @@ This will use a snapshot of the legacy frontend preserved in the [ComfyUI Legacy ### Which GPU should I buy for this? [See this page for some recommendations](https://github.com/comfyanonymous/ComfyUI/wiki/Which-GPU-should-I-buy-for-ComfyUI) - diff --git a/api_server/routes/internal/internal_routes.py b/api_server/routes/internal/internal_routes.py index 63704f13..8f74529b 100644 --- a/api_server/routes/internal/internal_routes.py +++ b/api_server/routes/internal/internal_routes.py @@ -2,6 +2,7 @@ from aiohttp import web from typing import Optional from folder_paths import models_dir, user_directory, output_directory, folder_names_and_paths from api_server.services.file_service import FileService +from api_server.services.terminal_service import TerminalService import app.logger class InternalRoutes: @@ -9,9 +10,9 @@ class InternalRoutes: The top level web router for internal routes: /internal/* The endpoints here should NOT be depended upon. It is for ComfyUI frontend use only. Check README.md for more information. - ''' - def __init__(self): + + def __init__(self, prompt_server): self.routes: web.RouteTableDef = web.RouteTableDef() self._app: Optional[web.Application] = None self.file_service = FileService({ @@ -19,6 +20,8 @@ class InternalRoutes: "user": user_directory, "output": output_directory }) + self.prompt_server = prompt_server + self.terminal_service = TerminalService(prompt_server) def setup_routes(self): @self.routes.get('/files') @@ -34,7 +37,28 @@ class InternalRoutes: @self.routes.get('/logs') async def get_logs(request): - return web.json_response(app.logger.get_logs()) + return web.json_response("".join([(l["t"] + " - " + l["m"]) for l in app.logger.get_logs()])) + + @self.routes.get('/logs/raw') + async def get_raw_logs(request): + self.terminal_service.update_size() + return web.json_response({ + "entries": list(app.logger.get_logs()), + "size": {"cols": self.terminal_service.cols, "rows": self.terminal_service.rows} + }) + + @self.routes.patch('/logs/subscribe') + async def subscribe_logs(request): + json_data = await request.json() + client_id = json_data["clientId"] + enabled = json_data["enabled"] + if enabled: + self.terminal_service.subscribe(client_id) + else: + self.terminal_service.unsubscribe(client_id) + + return web.Response(status=200) + @self.routes.get('/folder_paths') async def get_folder_paths(request): diff --git a/api_server/services/file_service.py b/api_server/services/file_service.py index 39457108..115edccd 100644 --- a/api_server/services/file_service.py +++ b/api_server/services/file_service.py @@ -10,4 +10,4 @@ class FileService: if directory_key not in self.allowed_directories: raise ValueError("Invalid directory key") directory_path: str = self.allowed_directories[directory_key] - return self.file_system_ops.walk_directory(directory_path) \ No newline at end of file + return self.file_system_ops.walk_directory(directory_path) diff --git a/api_server/services/terminal_service.py b/api_server/services/terminal_service.py new file mode 100644 index 00000000..ab4371f4 --- /dev/null +++ b/api_server/services/terminal_service.py @@ -0,0 +1,60 @@ +from app.logger import on_flush +import os +import shutil + + +class TerminalService: + def __init__(self, server): + self.server = server + self.cols = None + self.rows = None + self.subscriptions = set() + on_flush(self.send_messages) + + def get_terminal_size(self): + try: + size = os.get_terminal_size() + return (size.columns, size.lines) + except OSError: + try: + size = shutil.get_terminal_size() + return (size.columns, size.lines) + except OSError: + return (80, 24) # fallback to 80x24 + + def update_size(self): + columns, lines = self.get_terminal_size() + changed = False + + if columns != self.cols: + self.cols = columns + changed = True + + if lines != self.rows: + self.rows = lines + changed = True + + if changed: + return {"cols": self.cols, "rows": self.rows} + + return None + + def subscribe(self, client_id): + self.subscriptions.add(client_id) + + def unsubscribe(self, client_id): + self.subscriptions.discard(client_id) + + def send_messages(self, entries): + if not len(entries) or not len(self.subscriptions): + return + + new_size = self.update_size() + + for client_id in self.subscriptions.copy(): # prevent: Set changed size during iteration + if client_id not in self.server.sockets: + # Automatically unsub if the socket has disconnected + self.unsubscribe(client_id) + continue + + self.server.send_sync("logs", {"entries": entries, "size": new_size}, client_id) diff --git a/api_server/utils/file_operations.py b/api_server/utils/file_operations.py index ef1bf999..32d6e047 100644 --- a/api_server/utils/file_operations.py +++ b/api_server/utils/file_operations.py @@ -39,4 +39,4 @@ class FileSystemOperations: "path": relative_path, "type": "directory" }) - return file_list \ No newline at end of file + return file_list diff --git a/app/app_settings.py b/app/app_settings.py index 8c6edc56..efe87adb 100644 --- a/app/app_settings.py +++ b/app/app_settings.py @@ -51,4 +51,4 @@ class AppSettings(): settings = self.get_settings(request) settings[setting_id] = await request.json() self.save_settings(request, settings) - return web.Response(status=200) \ No newline at end of file + return web.Response(status=200) diff --git a/app/custom_node_manager.py b/app/custom_node_manager.py new file mode 100644 index 00000000..7f9f645c --- /dev/null +++ b/app/custom_node_manager.py @@ -0,0 +1,34 @@ +from __future__ import annotations + +import os +import folder_paths +import glob +from aiohttp import web + +class CustomNodeManager: + """ + Placeholder to refactor the custom node management features from ComfyUI-Manager. + Currently it only contains the custom workflow templates feature. + """ + def add_routes(self, routes, webapp, loadedModules): + + @routes.get("/workflow_templates") + async def get_workflow_templates(request): + """Returns a web response that contains the map of custom_nodes names and their associated workflow templates. The ones without templates are omitted.""" + files = [ + file + for folder in folder_paths.get_folder_paths("custom_nodes") + for file in glob.glob(os.path.join(folder, '*/example_workflows/*.json')) + ] + workflow_templates_dict = {} # custom_nodes folder name -> example workflow names + for file in files: + custom_nodes_name = os.path.basename(os.path.dirname(os.path.dirname(file))) + workflow_name = os.path.splitext(os.path.basename(file))[0] + workflow_templates_dict.setdefault(custom_nodes_name, []).append(workflow_name) + return web.json_response(workflow_templates_dict) + + # Serve workflow templates from custom nodes. + for module_name, module_dir in loadedModules: + workflows_dir = os.path.join(module_dir, 'example_workflows') + if os.path.exists(workflows_dir): + webapp.add_routes([web.static('/api/workflow_templates/' + module_name, workflows_dir)]) diff --git a/app/logger.py b/app/logger.py index 4ca0ea88..9e9f84cc 100644 --- a/app/logger.py +++ b/app/logger.py @@ -1,31 +1,84 @@ -import logging -from logging.handlers import MemoryHandler from collections import deque +from datetime import datetime +import io +import logging +import sys +import threading logs = None -formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") +stdout_interceptor = None +stderr_interceptor = None + + +class LogInterceptor(io.TextIOWrapper): + def __init__(self, stream, *args, **kwargs): + buffer = stream.buffer + encoding = stream.encoding + super().__init__(buffer, *args, **kwargs, encoding=encoding, line_buffering=stream.line_buffering) + self._lock = threading.Lock() + self._flush_callbacks = [] + self._logs_since_flush = [] + + def write(self, data): + entry = {"t": datetime.now().isoformat(), "m": data} + with self._lock: + self._logs_since_flush.append(entry) + + # Simple handling for cr to overwrite the last output if it isnt a full line + # else logs just get full of progress messages + if isinstance(data, str) and data.startswith("\r") and not logs[-1]["m"].endswith("\n"): + logs.pop() + logs.append(entry) + super().write(data) + + def flush(self): + super().flush() + for cb in self._flush_callbacks: + cb(self._logs_since_flush) + self._logs_since_flush = [] + + def on_flush(self, callback): + self._flush_callbacks.append(callback) def get_logs(): - return "\n".join([formatter.format(x) for x in logs]) + return logs -def setup_logger(log_level: str = 'INFO', capacity: int = 300): +def on_flush(callback): + if stdout_interceptor is not None: + stdout_interceptor.on_flush(callback) + if stderr_interceptor is not None: + stderr_interceptor.on_flush(callback) + +def setup_logger(log_level: str = 'INFO', capacity: int = 300, use_stdout: bool = False): global logs if logs: return + # Override output streams and log to buffer + logs = deque(maxlen=capacity) + + global stdout_interceptor + global stderr_interceptor + stdout_interceptor = sys.stdout = LogInterceptor(sys.stdout) + stderr_interceptor = sys.stderr = LogInterceptor(sys.stderr) + # Setup default global logger logger = logging.getLogger() logger.setLevel(log_level) stream_handler = logging.StreamHandler() stream_handler.setFormatter(logging.Formatter("%(message)s")) - logger.addHandler(stream_handler) - # Create a memory handler with a deque as its buffer - logs = deque(maxlen=capacity) - memory_handler = MemoryHandler(capacity, flushLevel=logging.INFO) - memory_handler.buffer = logs - memory_handler.setFormatter(formatter) - logger.addHandler(memory_handler) + if use_stdout: + # Only errors and critical to stderr + stream_handler.addFilter(lambda record: not record.levelno < logging.ERROR) + + # Lesser to stdout + stdout_handler = logging.StreamHandler(sys.stdout) + stdout_handler.setFormatter(logging.Formatter("%(message)s")) + stdout_handler.addFilter(lambda record: record.levelno < logging.ERROR) + logger.addHandler(stdout_handler) + + logger.addHandler(stream_handler) diff --git a/app/model_manager.py b/app/model_manager.py new file mode 100644 index 00000000..74d942fb --- /dev/null +++ b/app/model_manager.py @@ -0,0 +1,184 @@ +from __future__ import annotations + +import os +import base64 +import json +import time +import logging +import folder_paths +import glob +import comfy.utils +from aiohttp import web +from PIL import Image +from io import BytesIO +from folder_paths import map_legacy, filter_files_extensions, filter_files_content_types + + +class ModelFileManager: + def __init__(self) -> None: + self.cache: dict[str, tuple[list[dict], dict[str, float], float]] = {} + + def get_cache(self, key: str, default=None) -> tuple[list[dict], dict[str, float], float] | None: + return self.cache.get(key, default) + + def set_cache(self, key: str, value: tuple[list[dict], dict[str, float], float]): + self.cache[key] = value + + def clear_cache(self): + self.cache.clear() + + def add_routes(self, routes): + # NOTE: This is an experiment to replace `/models` + @routes.get("/experiment/models") + async def get_model_folders(request): + model_types = list(folder_paths.folder_names_and_paths.keys()) + folder_black_list = ["configs", "custom_nodes"] + output_folders: list[dict] = [] + for folder in model_types: + if folder in folder_black_list: + continue + output_folders.append({"name": folder, "folders": folder_paths.get_folder_paths(folder)}) + return web.json_response(output_folders) + + # NOTE: This is an experiment to replace `/models/{folder}` + @routes.get("/experiment/models/{folder}") + async def get_all_models(request): + folder = request.match_info.get("folder", None) + if not folder in folder_paths.folder_names_and_paths: + return web.Response(status=404) + files = self.get_model_file_list(folder) + return web.json_response(files) + + @routes.get("/experiment/models/preview/{folder}/{path_index}/{filename:.*}") + async def get_model_preview(request): + folder_name = request.match_info.get("folder", None) + path_index = int(request.match_info.get("path_index", None)) + filename = request.match_info.get("filename", None) + + if not folder_name in folder_paths.folder_names_and_paths: + return web.Response(status=404) + + folders = folder_paths.folder_names_and_paths[folder_name] + folder = folders[0][path_index] + full_filename = os.path.join(folder, filename) + + previews = self.get_model_previews(full_filename) + default_preview = previews[0] if len(previews) > 0 else None + if default_preview is None or (isinstance(default_preview, str) and not os.path.isfile(default_preview)): + return web.Response(status=404) + + try: + with Image.open(default_preview) as img: + img_bytes = BytesIO() + img.save(img_bytes, format="WEBP") + img_bytes.seek(0) + return web.Response(body=img_bytes.getvalue(), content_type="image/webp") + except: + return web.Response(status=404) + + def get_model_file_list(self, folder_name: str): + folder_name = map_legacy(folder_name) + folders = folder_paths.folder_names_and_paths[folder_name] + output_list: list[dict] = [] + + for index, folder in enumerate(folders[0]): + if not os.path.isdir(folder): + continue + out = self.cache_model_file_list_(folder) + if out is None: + out = self.recursive_search_models_(folder, index) + self.set_cache(folder, out) + output_list.extend(out[0]) + + return output_list + + def cache_model_file_list_(self, folder: str): + model_file_list_cache = self.get_cache(folder) + + if model_file_list_cache is None: + return None + if not os.path.isdir(folder): + return None + if os.path.getmtime(folder) != model_file_list_cache[1]: + return None + for x in model_file_list_cache[1]: + time_modified = model_file_list_cache[1][x] + folder = x + if os.path.getmtime(folder) != time_modified: + return None + + return model_file_list_cache + + def recursive_search_models_(self, directory: str, pathIndex: int) -> tuple[list[str], dict[str, float], float]: + if not os.path.isdir(directory): + return [], {}, time.perf_counter() + + excluded_dir_names = [".git"] + # TODO use settings + include_hidden_files = False + + result: list[str] = [] + dirs: dict[str, float] = {} + + for dirpath, subdirs, filenames in os.walk(directory, followlinks=True, topdown=True): + subdirs[:] = [d for d in subdirs if d not in excluded_dir_names] + if not include_hidden_files: + subdirs[:] = [d for d in subdirs if not d.startswith(".")] + filenames = [f for f in filenames if not f.startswith(".")] + + filenames = filter_files_extensions(filenames, folder_paths.supported_pt_extensions) + + for file_name in filenames: + try: + relative_path = os.path.relpath(os.path.join(dirpath, file_name), directory) + result.append(relative_path) + except: + logging.warning(f"Warning: Unable to access {file_name}. Skipping this file.") + continue + + for d in subdirs: + path: str = os.path.join(dirpath, d) + try: + dirs[path] = os.path.getmtime(path) + except FileNotFoundError: + logging.warning(f"Warning: Unable to access {path}. Skipping this path.") + continue + + return [{"name": f, "pathIndex": pathIndex} for f in result], dirs, time.perf_counter() + + def get_model_previews(self, filepath: str) -> list[str | BytesIO]: + dirname = os.path.dirname(filepath) + + if not os.path.exists(dirname): + return [] + + basename = os.path.splitext(filepath)[0] + match_files = glob.glob(f"{basename}.*", recursive=False) + image_files = filter_files_content_types(match_files, "image") + safetensors_file = next(filter(lambda x: x.endswith(".safetensors"), match_files), None) + safetensors_metadata = {} + + result: list[str | BytesIO] = [] + + for filename in image_files: + _basename = os.path.splitext(filename)[0] + if _basename == basename: + result.append(filename) + if _basename == f"{basename}.preview": + result.append(filename) + + if safetensors_file: + safetensors_filepath = os.path.join(dirname, safetensors_file) + header = comfy.utils.safetensors_header(safetensors_filepath, max_size=8*1024*1024) + if header: + safetensors_metadata = json.loads(header) + safetensors_images = safetensors_metadata.get("__metadata__", {}).get("ssmd_cover_images", None) + if safetensors_images: + safetensors_images = json.loads(safetensors_images) + for image in safetensors_images: + result.append(BytesIO(base64.b64decode(image))) + + return result + + def __exit__(self, exc_type, exc_value, traceback): + self.clear_cache() diff --git a/app/user_manager.py b/app/user_manager.py index 20817844..e7381e62 100644 --- a/app/user_manager.py +++ b/app/user_manager.py @@ -1,28 +1,45 @@ +from __future__ import annotations import json import os import re import uuid import glob import shutil +import logging from aiohttp import web from urllib import parse from comfy.cli_args import args import folder_paths from .app_settings import AppSettings +from typing import TypedDict default_user = "default" +class FileInfo(TypedDict): + path: str + size: int + modified: int + + +def get_file_info(path: str, relative_to: str) -> FileInfo: + return { + "path": os.path.relpath(path, relative_to).replace(os.sep, '/'), + "size": os.path.getsize(path), + "modified": os.path.getmtime(path) + } + + class UserManager(): def __init__(self): user_directory = folder_paths.get_user_directory() self.settings = AppSettings(self) if not os.path.exists(user_directory): - os.mkdir(user_directory) + os.makedirs(user_directory, exist_ok=True) if not args.multi_user: - print("****** User settings have been changed to be stored on the server instead of browser storage. ******") - print("****** For multi-user setups add the --multi-user CLI argument to enable multiple user profiles. ******") + logging.warning("****** User settings have been changed to be stored on the server instead of browser storage. ******") + logging.warning("****** For multi-user setups add the --multi-user CLI argument to enable multiple user profiles. ******") if args.multi_user: if os.path.isfile(self.get_users_file()): @@ -154,6 +171,7 @@ class UserManager(): recurse = request.rel_url.query.get('recurse', '').lower() == "true" full_info = request.rel_url.query.get('full_info', '').lower() == "true" + split_path = request.rel_url.query.get('split', '').lower() == "true" # Use different patterns based on whether we're recursing or not if recurse: @@ -161,26 +179,21 @@ class UserManager(): else: pattern = os.path.join(glob.escape(path), '*') - results = glob.glob(pattern, recursive=recurse) + def process_full_path(full_path: str) -> FileInfo | str | list[str]: + if full_info: + return get_file_info(full_path, path) - if full_info: - results = [ - { - 'path': os.path.relpath(x, path).replace(os.sep, '/'), - 'size': os.path.getsize(x), - 'modified': os.path.getmtime(x) - } for x in results if os.path.isfile(x) - ] - else: - results = [ - os.path.relpath(x, path).replace(os.sep, '/') - for x in results - if os.path.isfile(x) - ] + rel_path = os.path.relpath(full_path, path).replace(os.sep, '/') + if split_path: + return [rel_path] + rel_path.split('/') - split_path = request.rel_url.query.get('split', '').lower() == "true" - if split_path and not full_info: - results = [[x] + x.split('/') for x in results] + return rel_path + + results = [ + process_full_path(full_path) + for full_path in glob.glob(pattern, recursive=recurse) + if os.path.isfile(full_path) + ] return web.json_response(results) @@ -208,20 +221,51 @@ class UserManager(): @routes.post("/userdata/{file}") async def post_userdata(request): + """ + Upload or update a user data file. + + This endpoint handles file uploads to a user's data directory, with options for + controlling overwrite behavior and response format. + + Query Parameters: + - overwrite (optional): If "false", prevents overwriting existing files. Defaults to "true". + - full_info (optional): If "true", returns detailed file information (path, size, modified time). + If "false", returns only the relative file path. + + Path Parameters: + - file: The target file path (URL encoded if necessary). + + Returns: + - 400: If 'file' parameter is missing. + - 403: If the requested path is not allowed. + - 409: If overwrite=false and the file already exists. + - 200: JSON response with either: + - Full file information (if full_info=true) + - Relative file path (if full_info=false) + + The request body should contain the raw file content to be written. + """ path = get_user_data_path(request) if not isinstance(path, str): return path - overwrite = request.query["overwrite"] != "false" + overwrite = request.query.get("overwrite", 'true') != "false" + full_info = request.query.get('full_info', 'false').lower() == "true" + if not overwrite and os.path.exists(path): - return web.Response(status=409) + return web.Response(status=409, text="File already exists") body = await request.read() with open(path, "wb") as f: f.write(body) - resp = os.path.relpath(path, self.get_request_user_filepath(request, None)) + user_path = self.get_request_user_filepath(request, None) + if full_info: + resp = get_file_info(path, user_path) + else: + resp = os.path.relpath(path, user_path) + return web.json_response(resp) @routes.delete("/userdata/{file}") @@ -236,6 +280,30 @@ class UserManager(): @routes.post("/userdata/{file}/move/{dest}") async def move_userdata(request): + """ + Move or rename a user data file. + + This endpoint handles moving or renaming files within a user's data directory, with options for + controlling overwrite behavior and response format. + + Path Parameters: + - file: The source file path (URL encoded if necessary) + - dest: The destination file path (URL encoded if necessary) + + Query Parameters: + - overwrite (optional): If "false", prevents overwriting existing files. Defaults to "true". + - full_info (optional): If "true", returns detailed file information (path, size, modified time). + If "false", returns only the relative file path. + + Returns: + - 400: If either 'file' or 'dest' parameter is missing + - 403: If either requested path is not allowed + - 404: If the source file does not exist + - 409: If overwrite=false and the destination file already exists + - 200: JSON response with either: + - Full file information (if full_info=true) + - Relative file path (if full_info=false) + """ source = get_user_data_path(request, check_exists=True) if not isinstance(source, str): return source @@ -244,12 +312,19 @@ class UserManager(): if not isinstance(source, str): return dest - overwrite = request.query["overwrite"] != "false" - if not overwrite and os.path.exists(dest): - return web.Response(status=409) + overwrite = request.query.get("overwrite", 'true') != "false" + full_info = request.query.get('full_info', 'false').lower() == "true" - print(f"moving '{source}' -> '{dest}'") + if not overwrite and os.path.exists(dest): + return web.Response(status=409, text="File already exists") + + logging.info(f"moving '{source}' -> '{dest}'") shutil.move(source, dest) - resp = os.path.relpath(dest, self.get_request_user_filepath(request, None)) + user_path = self.get_request_user_filepath(request, None) + if full_info: + resp = get_file_info(dest, user_path) + else: + resp = os.path.relpath(dest, user_path) + return web.json_response(resp) diff --git a/comfy/cldm/cldm.py b/comfy/cldm/cldm.py index 9ec64a22..ec01665e 100644 --- a/comfy/cldm/cldm.py +++ b/comfy/cldm/cldm.py @@ -2,11 +2,9 @@ #and modified import torch -import torch as th import torch.nn as nn from ..ldm.modules.diffusionmodules.util import ( - zero_module, timestep_embedding, ) @@ -162,7 +160,6 @@ class ControlNet(nn.Module): if isinstance(self.num_classes, int): self.label_emb = nn.Embedding(num_classes, time_embed_dim) elif self.num_classes == "continuous": - print("setting up linear c_adm embedding layer") self.label_emb = nn.Linear(1, time_embed_dim) elif self.num_classes == "sequential": assert adm_in_channels is not None @@ -415,7 +412,6 @@ class ControlNet(nn.Module): out_output = [] out_middle = [] - hs = [] if self.num_classes is not None: assert y.shape[0] == x.shape[0] emb = emb + self.label_emb(y) diff --git a/comfy/cldm/dit_embedder.py b/comfy/cldm/dit_embedder.py new file mode 100644 index 00000000..f9bf3101 --- /dev/null +++ b/comfy/cldm/dit_embedder.py @@ -0,0 +1,120 @@ +import math +from typing import List, Optional, Tuple + +import torch +import torch.nn as nn +from torch import Tensor + +from comfy.ldm.modules.diffusionmodules.mmdit import DismantledBlock, PatchEmbed, VectorEmbedder, TimestepEmbedder, get_2d_sincos_pos_embed_torch + + +class ControlNetEmbedder(nn.Module): + + def __init__( + self, + img_size: int, + patch_size: int, + in_chans: int, + attention_head_dim: int, + num_attention_heads: int, + adm_in_channels: int, + num_layers: int, + main_model_double: int, + double_y_emb: bool, + device: torch.device, + dtype: torch.dtype, + pos_embed_max_size: Optional[int] = None, + operations = None, + ): + super().__init__() + self.main_model_double = main_model_double + self.dtype = dtype + self.hidden_size = num_attention_heads * attention_head_dim + self.patch_size = patch_size + self.x_embedder = PatchEmbed( + img_size=img_size, + patch_size=patch_size, + in_chans=in_chans, + embed_dim=self.hidden_size, + strict_img_size=pos_embed_max_size is None, + device=device, + dtype=dtype, + operations=operations, + ) + + self.t_embedder = TimestepEmbedder(self.hidden_size, dtype=dtype, device=device, operations=operations) + + self.double_y_emb = double_y_emb + if self.double_y_emb: + self.orig_y_embedder = VectorEmbedder( + adm_in_channels, self.hidden_size, dtype, device, operations=operations + ) + self.y_embedder = VectorEmbedder( + self.hidden_size, self.hidden_size, dtype, device, operations=operations + ) + else: + self.y_embedder = VectorEmbedder( + adm_in_channels, self.hidden_size, dtype, device, operations=operations + ) + + self.transformer_blocks = nn.ModuleList( + DismantledBlock( + hidden_size=self.hidden_size, num_heads=num_attention_heads, qkv_bias=True, + dtype=dtype, device=device, operations=operations + ) + for _ in range(num_layers) + ) + + # self.use_y_embedder = pooled_projection_dim != self.time_text_embed.text_embedder.linear_1.in_features + # TODO double check this logic when 8b + self.use_y_embedder = True + + self.controlnet_blocks = nn.ModuleList([]) + for _ in range(len(self.transformer_blocks)): + controlnet_block = operations.Linear(self.hidden_size, self.hidden_size, dtype=dtype, device=device) + self.controlnet_blocks.append(controlnet_block) + + self.pos_embed_input = PatchEmbed( + img_size=img_size, + patch_size=patch_size, + in_chans=in_chans, + embed_dim=self.hidden_size, + strict_img_size=False, + device=device, + dtype=dtype, + operations=operations, + ) + + def forward( + self, + x: torch.Tensor, + timesteps: torch.Tensor, + y: Optional[torch.Tensor] = None, + context: Optional[torch.Tensor] = None, + hint = None, + ) -> Tuple[Tensor, List[Tensor]]: + x_shape = list(x.shape) + x = self.x_embedder(x) + if not self.double_y_emb: + h = (x_shape[-2] + 1) // self.patch_size + w = (x_shape[-1] + 1) // self.patch_size + x += get_2d_sincos_pos_embed_torch(self.hidden_size, w, h, device=x.device) + c = self.t_embedder(timesteps, dtype=x.dtype) + if y is not None and self.y_embedder is not None: + if self.double_y_emb: + y = self.orig_y_embedder(y) + y = self.y_embedder(y) + c = c + y + + x = x + self.pos_embed_input(hint) + + block_out = () + + repeat = math.ceil(self.main_model_double / len(self.transformer_blocks)) + for i in range(len(self.transformer_blocks)): + out = self.transformer_blocks[i](x, c) + if not self.double_y_emb: + x = out + block_out += (self.controlnet_blocks[i](out),) * repeat + + return {"output": block_out} diff --git a/comfy/cldm/mmdit.py b/comfy/cldm/mmdit.py index 54a58ab8..b7764085 100644 --- a/comfy/cldm/mmdit.py +++ b/comfy/cldm/mmdit.py @@ -1,5 +1,5 @@ import torch -from typing import Dict, Optional +from typing import Optional import comfy.ldm.modules.diffusionmodules.mmdit class ControlNet(comfy.ldm.modules.diffusionmodules.mmdit.MMDiT): diff --git a/comfy/cli_args.py b/comfy/cli_args.py index 20b9f474..812798bf 100644 --- a/comfy/cli_args.py +++ b/comfy/cli_args.py @@ -60,8 +60,10 @@ fp_group.add_argument("--force-fp32", action="store_true", help="Force fp32 (If fp_group.add_argument("--force-fp16", action="store_true", help="Force fp16.") fpunet_group = parser.add_mutually_exclusive_group() -fpunet_group.add_argument("--bf16-unet", action="store_true", help="Run the UNET in bf16. This should only be used for testing stuff.") -fpunet_group.add_argument("--fp16-unet", action="store_true", help="Store unet weights in fp16.") +fpunet_group.add_argument("--fp32-unet", action="store_true", help="Run the diffusion model in fp32.") +fpunet_group.add_argument("--fp64-unet", action="store_true", help="Run the diffusion model in fp64.") +fpunet_group.add_argument("--bf16-unet", action="store_true", help="Run the diffusion model in bf16.") +fpunet_group.add_argument("--fp16-unet", action="store_true", help="Run the diffusion model in fp16") fpunet_group.add_argument("--fp8_e4m3fn-unet", action="store_true", help="Store unet weights in fp8_e4m3fn.") fpunet_group.add_argument("--fp8_e5m2-unet", action="store_true", help="Store unet weights in fp8_e5m2.") @@ -82,7 +84,8 @@ parser.add_argument("--force-channels-last", action="store_true", help="Force ch parser.add_argument("--directml", type=int, nargs="?", metavar="DIRECTML_DEVICE", const=-1, help="Use torch-directml.") -parser.add_argument("--disable-ipex-optimize", action="store_true", help="Disables ipex.optimize when loading models with Intel GPUs.") +parser.add_argument("--oneapi-device-selector", type=str, default=None, metavar="SELECTOR_STRING", help="Sets the oneAPI device(s) this instance will use.") +parser.add_argument("--disable-ipex-optimize", action="store_true", help="Disables ipex.optimize default when loading models with Intel's Extension for Pytorch.") class LatentPreviewMethod(enum.Enum): NoPreviews = "none" @@ -102,6 +105,7 @@ attn_group = parser.add_mutually_exclusive_group() attn_group.add_argument("--use-split-cross-attention", action="store_true", help="Use the split cross attention optimization. Ignored when xformers is used.") attn_group.add_argument("--use-quad-cross-attention", action="store_true", help="Use the sub-quadratic cross attention optimization . Ignored when xformers is used.") attn_group.add_argument("--use-pytorch-cross-attention", action="store_true", help="Use the new pytorch 2.0 cross attention function.") +attn_group.add_argument("--use-sage-attention", action="store_true", help="Use sage attention.") parser.add_argument("--disable-xformers", action="store_true", help="Disable xformers.") @@ -118,7 +122,7 @@ vram_group.add_argument("--lowvram", action="store_true", help="Split the unet i vram_group.add_argument("--novram", action="store_true", help="When lowvram isn't enough.") vram_group.add_argument("--cpu", action="store_true", help="To use the CPU for everything (slow).") -parser.add_argument("--reserve-vram", type=float, default=None, help="Set the amount of vram in GB you want to reserve for use by your OS/other software. By default some amount is reverved depending on your OS.") +parser.add_argument("--reserve-vram", type=float, default=None, help="Set the amount of vram in GB you want to reserve for use by your OS/other software. By default some amount is reserved depending on your OS.") parser.add_argument("--default-hashing-function", type=str, choices=['md5', 'sha1', 'sha256', 'sha512'], default='sha256', help="Allows you to choose the hash function to use for duplicate filename / contents comparison. Default is sha256.") @@ -137,6 +141,7 @@ parser.add_argument("--disable-all-custom-nodes", action="store_true", help="Dis parser.add_argument("--multi-user", action="store_true", help="Enables per-user storage.") parser.add_argument("--verbose", default='INFO', const='DEBUG', nargs="?", choices=['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'], help='Set the logging level') +parser.add_argument("--log-stdout", action="store_true", help="Send normal process output to stdout instead of stderr (default).") # The default built-in provider hosted under web/ DEFAULT_VERSION_STRING = "comfyanonymous/ComfyUI@latest" diff --git a/comfy/clip_model.py b/comfy/clip_model.py index 42cdc4f6..23ddea9c 100644 --- a/comfy/clip_model.py +++ b/comfy/clip_model.py @@ -23,6 +23,7 @@ class CLIPAttention(torch.nn.Module): ACTIVATIONS = {"quick_gelu": lambda a: a * torch.sigmoid(1.702 * a), "gelu": torch.nn.functional.gelu, + "gelu_pytorch_tanh": lambda a: torch.nn.functional.gelu(a, approximate="tanh"), } class CLIPMLP(torch.nn.Module): @@ -139,27 +140,35 @@ class CLIPTextModel(torch.nn.Module): class CLIPVisionEmbeddings(torch.nn.Module): - def __init__(self, embed_dim, num_channels=3, patch_size=14, image_size=224, dtype=None, device=None, operations=None): + def __init__(self, embed_dim, num_channels=3, patch_size=14, image_size=224, model_type="", dtype=None, device=None, operations=None): super().__init__() - self.class_embedding = torch.nn.Parameter(torch.empty(embed_dim, dtype=dtype, device=device)) + + num_patches = (image_size // patch_size) ** 2 + if model_type == "siglip_vision_model": + self.class_embedding = None + patch_bias = True + else: + num_patches = num_patches + 1 + self.class_embedding = torch.nn.Parameter(torch.empty(embed_dim, dtype=dtype, device=device)) + patch_bias = False self.patch_embedding = operations.Conv2d( in_channels=num_channels, out_channels=embed_dim, kernel_size=patch_size, stride=patch_size, - bias=False, + bias=patch_bias, dtype=dtype, device=device ) - num_patches = (image_size // patch_size) ** 2 - num_positions = num_patches + 1 - self.position_embedding = operations.Embedding(num_positions, embed_dim, dtype=dtype, device=device) + self.position_embedding = operations.Embedding(num_patches, embed_dim, dtype=dtype, device=device) def forward(self, pixel_values): embeds = self.patch_embedding(pixel_values).flatten(2).transpose(1, 2) - return torch.cat([comfy.ops.cast_to_input(self.class_embedding, embeds).expand(pixel_values.shape[0], 1, -1), embeds], dim=1) + comfy.ops.cast_to_input(self.position_embedding.weight, embeds) + if self.class_embedding is not None: + embeds = torch.cat([comfy.ops.cast_to_input(self.class_embedding, embeds).expand(pixel_values.shape[0], 1, -1), embeds], dim=1) + return embeds + comfy.ops.cast_to_input(self.position_embedding.weight, embeds) class CLIPVision(torch.nn.Module): @@ -170,9 +179,15 @@ class CLIPVision(torch.nn.Module): heads = config_dict["num_attention_heads"] intermediate_size = config_dict["intermediate_size"] intermediate_activation = config_dict["hidden_act"] + model_type = config_dict["model_type"] - self.embeddings = CLIPVisionEmbeddings(embed_dim, config_dict["num_channels"], config_dict["patch_size"], config_dict["image_size"], dtype=dtype, device=device, operations=operations) - self.pre_layrnorm = operations.LayerNorm(embed_dim) + self.embeddings = CLIPVisionEmbeddings(embed_dim, config_dict["num_channels"], config_dict["patch_size"], config_dict["image_size"], model_type=model_type, dtype=dtype, device=device, operations=operations) + if model_type == "siglip_vision_model": + self.pre_layrnorm = lambda a: a + self.output_layernorm = True + else: + self.pre_layrnorm = operations.LayerNorm(embed_dim) + self.output_layernorm = False self.encoder = CLIPEncoder(num_layers, embed_dim, heads, intermediate_size, intermediate_activation, dtype, device, operations) self.post_layernorm = operations.LayerNorm(embed_dim) @@ -181,14 +196,21 @@ class CLIPVision(torch.nn.Module): x = self.pre_layrnorm(x) #TODO: attention_mask? x, i = self.encoder(x, mask=None, intermediate_output=intermediate_output) - pooled_output = self.post_layernorm(x[:, 0, :]) + if self.output_layernorm: + x = self.post_layernorm(x) + pooled_output = x + else: + pooled_output = self.post_layernorm(x[:, 0, :]) return x, i, pooled_output class CLIPVisionModelProjection(torch.nn.Module): def __init__(self, config_dict, dtype, device, operations): super().__init__() self.vision_model = CLIPVision(config_dict, dtype, device, operations) - self.visual_projection = operations.Linear(config_dict["hidden_size"], config_dict["projection_dim"], bias=False) + if "projection_dim" in config_dict: + self.visual_projection = operations.Linear(config_dict["hidden_size"], config_dict["projection_dim"], bias=False) + else: + self.visual_projection = lambda a: a def forward(self, *args, **kwargs): x = self.vision_model(*args, **kwargs) diff --git a/comfy/clip_vision.py b/comfy/clip_vision.py index 64392e27..c9c82e9a 100644 --- a/comfy/clip_vision.py +++ b/comfy/clip_vision.py @@ -16,13 +16,18 @@ class Output: def __setitem__(self, key, item): setattr(self, key, item) -def clip_preprocess(image, size=224): - mean = torch.tensor([ 0.48145466,0.4578275,0.40821073], device=image.device, dtype=image.dtype) - std = torch.tensor([0.26862954,0.26130258,0.27577711], device=image.device, dtype=image.dtype) +def clip_preprocess(image, size=224, mean=[0.48145466, 0.4578275, 0.40821073], std=[0.26862954, 0.26130258, 0.27577711], crop=True): + mean = torch.tensor(mean, device=image.device, dtype=image.dtype) + std = torch.tensor(std, device=image.device, dtype=image.dtype) image = image.movedim(-1, 1) if not (image.shape[2] == size and image.shape[3] == size): - scale = (size / min(image.shape[2], image.shape[3])) - image = torch.nn.functional.interpolate(image, size=(round(scale * image.shape[2]), round(scale * image.shape[3])), mode="bicubic", antialias=True) + if crop: + scale = (size / min(image.shape[2], image.shape[3])) + scale_size = (round(scale * image.shape[2]), round(scale * image.shape[3])) + else: + scale_size = (size, size) + + image = torch.nn.functional.interpolate(image, size=scale_size, mode="bicubic", antialias=True) h = (image.shape[2] - size)//2 w = (image.shape[3] - size)//2 image = image[:,:,h:h+size,w:w+size] @@ -35,6 +40,8 @@ class ClipVisionModel(): config = json.load(f) self.image_size = config.get("image_size", 224) + self.image_mean = config.get("image_mean", [0.48145466, 0.4578275, 0.40821073]) + self.image_std = config.get("image_std", [0.26862954, 0.26130258, 0.27577711]) self.load_device = comfy.model_management.text_encoder_device() offload_device = comfy.model_management.text_encoder_offload_device() self.dtype = comfy.model_management.text_encoder_dtype(self.load_device) @@ -49,9 +56,9 @@ class ClipVisionModel(): def get_sd(self): return self.model.state_dict() - def encode_image(self, image): + def encode_image(self, image, crop=True): comfy.model_management.load_model_gpu(self.patcher) - pixel_values = clip_preprocess(image.to(self.load_device), size=self.image_size).float() + pixel_values = clip_preprocess(image.to(self.load_device), size=self.image_size, mean=self.image_mean, std=self.image_std, crop=crop).float() out = self.model(pixel_values=pixel_values, intermediate_output=-2) outputs = Output() @@ -94,7 +101,9 @@ def load_clipvision_from_sd(sd, prefix="", convert_keys=False): elif "vision_model.encoder.layers.30.layer_norm1.weight" in sd: json_config = os.path.join(os.path.dirname(os.path.realpath(__file__)), "clip_vision_config_h.json") elif "vision_model.encoder.layers.22.layer_norm1.weight" in sd: - if sd["vision_model.embeddings.position_embedding.weight"].shape[0] == 577: + if sd["vision_model.encoder.layers.0.layer_norm1.weight"].shape[0] == 1152: + json_config = os.path.join(os.path.dirname(os.path.realpath(__file__)), "clip_vision_siglip_384.json") + elif sd["vision_model.embeddings.position_embedding.weight"].shape[0] == 577: json_config = os.path.join(os.path.dirname(os.path.realpath(__file__)), "clip_vision_config_vitl_336.json") else: json_config = os.path.join(os.path.dirname(os.path.realpath(__file__)), "clip_vision_config_vitl.json") diff --git a/comfy/clip_vision_siglip_384.json b/comfy/clip_vision_siglip_384.json new file mode 100644 index 00000000..532e03ac --- /dev/null +++ b/comfy/clip_vision_siglip_384.json @@ -0,0 +1,13 @@ +{ + "num_channels": 3, + "hidden_act": "gelu_pytorch_tanh", + "hidden_size": 1152, + "image_size": 384, + "intermediate_size": 4304, + "model_type": "siglip_vision_model", + "num_attention_heads": 16, + "num_hidden_layers": 27, + "patch_size": 14, + "image_mean": [0.5, 0.5, 0.5], + "image_std": [0.5, 0.5, 0.5] +} diff --git a/comfy/comfy_types/README.md b/comfy/comfy_types/README.md new file mode 100644 index 00000000..20a786a5 --- /dev/null +++ b/comfy/comfy_types/README.md @@ -0,0 +1,43 @@ +# Comfy Typing +## Type hinting for ComfyUI Node development + +This module provides type hinting and concrete convenience types for node developers. +If cloned to the custom_nodes directory of ComfyUI, types can be imported using: + +```python +from comfy.comfy_types import IO, ComfyNodeABC, CheckLazyMixin + +class ExampleNode(ComfyNodeABC): + @classmethod + def INPUT_TYPES(s) -> InputTypeDict: + return {"required": {}} +``` + +Full example is in [examples/example_nodes.py](examples/example_nodes.py). + +# Types +A few primary types are documented below. More complete information is available via the docstrings on each type. + +## `IO` + +A string enum of built-in and a few custom data types. Includes the following special types and their requisite plumbing: + +- `ANY`: `"*"` +- `NUMBER`: `"FLOAT,INT"` +- `PRIMITIVE`: `"STRING,FLOAT,INT,BOOLEAN"` + +## `ComfyNodeABC` + +An abstract base class for nodes, offering type-hinting / autocomplete, and somewhat-alright docstrings. + +### Type hinting for `INPUT_TYPES` + +![INPUT_TYPES auto-completion in Visual Studio Code](examples/input_types.png) + +### `INPUT_TYPES` return dict + +![INPUT_TYPES return value type hinting in Visual Studio Code](examples/required_hint.png) + +### Options for individual inputs + +![INPUT_TYPES return value option auto-completion in Visual Studio Code](examples/input_options.png) diff --git a/comfy/comfy_types.py b/comfy/comfy_types/__init__.py similarity index 75% rename from comfy/comfy_types.py rename to comfy/comfy_types/__init__.py index 70cf4b15..19ec33f9 100644 --- a/comfy/comfy_types.py +++ b/comfy/comfy_types/__init__.py @@ -1,5 +1,6 @@ import torch from typing import Callable, Protocol, TypedDict, Optional, List +from .node_typing import IO, InputTypeDict, ComfyNodeABC, CheckLazyMixin class UnetApplyFunction(Protocol): @@ -30,3 +31,15 @@ class UnetParams(TypedDict): UnetWrapperFunction = Callable[[UnetApplyFunction, UnetParams], torch.Tensor] + + +__all__ = [ + "UnetWrapperFunction", + UnetApplyConds.__name__, + UnetParams.__name__, + UnetApplyFunction.__name__, + IO.__name__, + InputTypeDict.__name__, + ComfyNodeABC.__name__, + CheckLazyMixin.__name__, +] diff --git a/comfy/comfy_types/examples/example_nodes.py b/comfy/comfy_types/examples/example_nodes.py new file mode 100644 index 00000000..6e19c545 --- /dev/null +++ b/comfy/comfy_types/examples/example_nodes.py @@ -0,0 +1,28 @@ +from comfy.comfy_types import IO, ComfyNodeABC, InputTypeDict +from inspect import cleandoc + + +class ExampleNode(ComfyNodeABC): + """An example node that just adds 1 to an input integer. + + * Requires a modern IDE to provide any benefit (detail: an IDE configured with analysis paths etc). + * This node is intended as an example for developers only. + """ + + DESCRIPTION = cleandoc(__doc__) + CATEGORY = "examples" + + @classmethod + def INPUT_TYPES(s) -> InputTypeDict: + return { + "required": { + "input_int": (IO.INT, {"defaultInput": True}), + } + } + + RETURN_TYPES = (IO.INT,) + RETURN_NAMES = ("input_plus_one",) + FUNCTION = "execute" + + def execute(self, input_int: int): + return (input_int + 1,) diff --git a/comfy/comfy_types/examples/input_options.png b/comfy/comfy_types/examples/input_options.png new file mode 100644 index 00000000..ac859bbc Binary files /dev/null and b/comfy/comfy_types/examples/input_options.png differ diff --git a/comfy/comfy_types/examples/input_types.png b/comfy/comfy_types/examples/input_types.png new file mode 100644 index 00000000..27e031cc Binary files /dev/null and b/comfy/comfy_types/examples/input_types.png differ diff --git a/comfy/comfy_types/examples/required_hint.png b/comfy/comfy_types/examples/required_hint.png new file mode 100644 index 00000000..22c0182a Binary files /dev/null and b/comfy/comfy_types/examples/required_hint.png differ diff --git a/comfy/comfy_types/node_typing.py b/comfy/comfy_types/node_typing.py new file mode 100644 index 00000000..056b1aa6 --- /dev/null +++ b/comfy/comfy_types/node_typing.py @@ -0,0 +1,274 @@ +"""Comfy-specific type hinting""" + +from __future__ import annotations +from typing import Literal, TypedDict +from abc import ABC, abstractmethod +from enum import Enum + + +class StrEnum(str, Enum): + """Base class for string enums. Python's StrEnum is not available until 3.11.""" + + def __str__(self) -> str: + return self.value + + +class IO(StrEnum): + """Node input/output data types. + + Includes functionality for ``"*"`` (`ANY`) and ``"MULTI,TYPES"``. + """ + + STRING = "STRING" + IMAGE = "IMAGE" + MASK = "MASK" + LATENT = "LATENT" + BOOLEAN = "BOOLEAN" + INT = "INT" + FLOAT = "FLOAT" + CONDITIONING = "CONDITIONING" + SAMPLER = "SAMPLER" + SIGMAS = "SIGMAS" + GUIDER = "GUIDER" + NOISE = "NOISE" + CLIP = "CLIP" + CONTROL_NET = "CONTROL_NET" + VAE = "VAE" + MODEL = "MODEL" + CLIP_VISION = "CLIP_VISION" + CLIP_VISION_OUTPUT = "CLIP_VISION_OUTPUT" + STYLE_MODEL = "STYLE_MODEL" + GLIGEN = "GLIGEN" + UPSCALE_MODEL = "UPSCALE_MODEL" + AUDIO = "AUDIO" + WEBCAM = "WEBCAM" + POINT = "POINT" + FACE_ANALYSIS = "FACE_ANALYSIS" + BBOX = "BBOX" + SEGS = "SEGS" + + ANY = "*" + """Always matches any type, but at a price. + + Causes some functionality issues (e.g. reroutes, link types), and should be avoided whenever possible. + """ + NUMBER = "FLOAT,INT" + """A float or an int - could be either""" + PRIMITIVE = "STRING,FLOAT,INT,BOOLEAN" + """Could be any of: string, float, int, or bool""" + + def __ne__(self, value: object) -> bool: + if self == "*" or value == "*": + return False + if not isinstance(value, str): + return True + a = frozenset(self.split(",")) + b = frozenset(value.split(",")) + return not (b.issubset(a) or a.issubset(b)) + + +class InputTypeOptions(TypedDict): + """Provides type hinting for the return type of the INPUT_TYPES node function. + + Due to IDE limitations with unions, for now all options are available for all types (e.g. `label_on` is hinted even when the type is not `IO.BOOLEAN`). + + Comfy Docs: https://docs.comfy.org/essentials/custom_node_datatypes + """ + + default: bool | str | float | int | list | tuple + """The default value of the widget""" + defaultInput: bool + """Defaults to an input slot rather than a widget""" + forceInput: bool + """`defaultInput` and also don't allow converting to a widget""" + lazy: bool + """Declares that this input uses lazy evaluation""" + rawLink: bool + """When a link exists, rather than receiving the evaluated value, you will receive the link (i.e. `["nodeId", ]`). Designed for node expansion.""" + tooltip: str + """Tooltip for the input (or widget), shown on pointer hover""" + # class InputTypeNumber(InputTypeOptions): + # default: float | int + min: float + """The minimum value of a number (``FLOAT`` | ``INT``)""" + max: float + """The maximum value of a number (``FLOAT`` | ``INT``)""" + step: float + """The amount to increment or decrement a widget by when stepping up/down (``FLOAT`` | ``INT``)""" + round: float + """Floats are rounded by this value (``FLOAT``)""" + # class InputTypeBoolean(InputTypeOptions): + # default: bool + label_on: str + """The label to use in the UI when the bool is True (``BOOLEAN``)""" + label_on: str + """The label to use in the UI when the bool is False (``BOOLEAN``)""" + # class InputTypeString(InputTypeOptions): + # default: str + multiline: bool + """Use a multiline text box (``STRING``)""" + placeholder: str + """Placeholder text to display in the UI when empty (``STRING``)""" + # Deprecated: + # defaultVal: str + dynamicPrompts: bool + """Causes the front-end to evaluate dynamic prompts (``STRING``)""" + + +class HiddenInputTypeDict(TypedDict): + """Provides type hinting for the hidden entry of node INPUT_TYPES.""" + + node_id: Literal["UNIQUE_ID"] + """UNIQUE_ID is the unique identifier of the node, and matches the id property of the node on the client side. It is commonly used in client-server communications (see messages).""" + unique_id: Literal["UNIQUE_ID"] + """UNIQUE_ID is the unique identifier of the node, and matches the id property of the node on the client side. It is commonly used in client-server communications (see messages).""" + prompt: Literal["PROMPT"] + """PROMPT is the complete prompt sent by the client to the server. See the prompt object for a full description.""" + extra_pnginfo: Literal["EXTRA_PNGINFO"] + """EXTRA_PNGINFO is a dictionary that will be copied into the metadata of any .png files saved. Custom nodes can store additional information in this dictionary for saving (or as a way to communicate with a downstream node).""" + dynprompt: Literal["DYNPROMPT"] + """DYNPROMPT is an instance of comfy_execution.graph.DynamicPrompt. It differs from PROMPT in that it may mutate during the course of execution in response to Node Expansion.""" + + +class InputTypeDict(TypedDict): + """Provides type hinting for node INPUT_TYPES. + + Comfy Docs: https://docs.comfy.org/essentials/custom_node_more_on_inputs + """ + + required: dict[str, tuple[IO, InputTypeOptions]] + """Describes all inputs that must be connected for the node to execute.""" + optional: dict[str, tuple[IO, InputTypeOptions]] + """Describes inputs which do not need to be connected.""" + hidden: HiddenInputTypeDict + """Offers advanced functionality and server-client communication. + + Comfy Docs: https://docs.comfy.org/essentials/custom_node_more_on_inputs#hidden-inputs + """ + + +class ComfyNodeABC(ABC): + """Abstract base class for Comfy nodes. Includes the names and expected types of attributes. + + Comfy Docs: https://docs.comfy.org/essentials/custom_node_server_overview + """ + + DESCRIPTION: str + """Node description, shown as a tooltip when hovering over the node. + + Usage:: + + # Explicitly define the description + DESCRIPTION = "Example description here." + + # Use the docstring of the node class. + DESCRIPTION = cleandoc(__doc__) + """ + CATEGORY: str + """The category of the node, as per the "Add Node" menu. + + Comfy Docs: https://docs.comfy.org/essentials/custom_node_server_overview#category + """ + EXPERIMENTAL: bool + """Flags a node as experimental, informing users that it may change or not work as expected.""" + DEPRECATED: bool + """Flags a node as deprecated, indicating to users that they should find alternatives to this node.""" + + @classmethod + @abstractmethod + def INPUT_TYPES(s) -> InputTypeDict: + """Defines node inputs. + + * Must include the ``required`` key, which describes all inputs that must be connected for the node to execute. + * The ``optional`` key can be added to describe inputs which do not need to be connected. + * The ``hidden`` key offers some advanced functionality. More info at: https://docs.comfy.org/essentials/custom_node_more_on_inputs#hidden-inputs + + Comfy Docs: https://docs.comfy.org/essentials/custom_node_server_overview#input-types + """ + return {"required": {}} + + OUTPUT_NODE: bool + """Flags this node as an output node, causing any inputs it requires to be executed. + + If a node is not connected to any output nodes, that node will not be executed. Usage:: + + OUTPUT_NODE = True + + From the docs: + + By default, a node is not considered an output. Set ``OUTPUT_NODE = True`` to specify that it is. + + Comfy Docs: https://docs.comfy.org/essentials/custom_node_server_overview#output-node + """ + INPUT_IS_LIST: bool + """A flag indicating if this node implements the additional code necessary to deal with OUTPUT_IS_LIST nodes. + + All inputs of ``type`` will become ``list[type]``, regardless of how many items are passed in. This also affects ``check_lazy_status``. + + From the docs: + + A node can also override the default input behaviour and receive the whole list in a single call. This is done by setting a class attribute `INPUT_IS_LIST` to ``True``. + + Comfy Docs: https://docs.comfy.org/essentials/custom_node_lists#list-processing + """ + OUTPUT_IS_LIST: tuple[bool] + """A tuple indicating which node outputs are lists, but will be connected to nodes that expect individual items. + + Connected nodes that do not implement `INPUT_IS_LIST` will be executed once for every item in the list. + + A ``tuple[bool]``, where the items match those in `RETURN_TYPES`:: + + RETURN_TYPES = (IO.INT, IO.INT, IO.STRING) + OUTPUT_IS_LIST = (True, True, False) # The string output will be handled normally + + From the docs: + + In order to tell Comfy that the list being returned should not be wrapped, but treated as a series of data for sequential processing, + the node should provide a class attribute `OUTPUT_IS_LIST`, which is a ``tuple[bool]``, of the same length as `RETURN_TYPES`, + specifying which outputs which should be so treated. + + Comfy Docs: https://docs.comfy.org/essentials/custom_node_lists#list-processing + """ + + RETURN_TYPES: tuple[IO] + """A tuple representing the outputs of this node. + + Usage:: + + RETURN_TYPES = (IO.INT, "INT", "CUSTOM_TYPE") + + Comfy Docs: https://docs.comfy.org/essentials/custom_node_server_overview#return-types + """ + RETURN_NAMES: tuple[str] + """The output slot names for each item in `RETURN_TYPES`, e.g. ``RETURN_NAMES = ("count", "filter_string")`` + + Comfy Docs: https://docs.comfy.org/essentials/custom_node_server_overview#return-names + """ + OUTPUT_TOOLTIPS: tuple[str] + """A tuple of strings to use as tooltips for node outputs, one for each item in `RETURN_TYPES`.""" + FUNCTION: str + """The name of the function to execute as a literal string, e.g. `FUNCTION = "execute"` + + Comfy Docs: https://docs.comfy.org/essentials/custom_node_server_overview#function + """ + + +class CheckLazyMixin: + """Provides a basic check_lazy_status implementation and type hinting for nodes that use lazy inputs.""" + + def check_lazy_status(self, **kwargs) -> list[str]: + """Returns a list of input names that should be evaluated. + + This basic mixin impl. requires all inputs. + + :kwargs: All node inputs will be included here. If the input is ``None``, it should be assumed that it has not yet been evaluated. \ + When using ``INPUT_IS_LIST = True``, unevaluated will instead be ``(None,)``. + + Params should match the nodes execution ``FUNCTION`` (self, and all inputs by name). + Will be executed repeatedly until it returns an empty list, or all requested items were already evaluated (and sent as params). + + Comfy Docs: https://docs.comfy.org/essentials/custom_node_lazy_evaluation#defining-check-lazy-status + """ + + need = [name for name in kwargs if kwargs[name] is None] + return need diff --git a/comfy/controlnet.py b/comfy/controlnet.py index d2744e42..ee29251b 100644 --- a/comfy/controlnet.py +++ b/comfy/controlnet.py @@ -35,6 +35,10 @@ import comfy.ldm.cascade.controlnet import comfy.cldm.mmdit import comfy.ldm.hydit.controlnet import comfy.ldm.flux.controlnet +import comfy.cldm.dit_embedder +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from comfy.hooks import HookGroup def broadcast_image_to(tensor, target_batch_size, batched_number): @@ -78,6 +82,8 @@ class ControlBase: self.concat_mask = False self.extra_concat_orig = [] self.extra_concat = None + self.extra_hooks: HookGroup = None + self.preprocess_image = lambda a: a def set_cond_hint(self, cond_hint, strength=1.0, timestep_percent_range=(0.0, 1.0), vae=None, extra_concat=[]): self.cond_hint_original = cond_hint @@ -115,6 +121,14 @@ class ControlBase: out += self.previous_controlnet.get_models() return out + def get_extra_hooks(self): + out = [] + if self.extra_hooks is not None: + out.append(self.extra_hooks) + if self.previous_controlnet is not None: + out += self.previous_controlnet.get_extra_hooks() + return out + def copy_to(self, c): c.cond_hint_original = self.cond_hint_original c.strength = self.strength @@ -129,6 +143,8 @@ class ControlBase: c.strength_type = self.strength_type c.concat_mask = self.concat_mask c.extra_concat_orig = self.extra_concat_orig.copy() + c.extra_hooks = self.extra_hooks.clone() if self.extra_hooks else None + c.preprocess_image = self.preprocess_image def inference_memory_requirements(self, dtype): if self.previous_controlnet is not None: @@ -181,7 +197,7 @@ class ControlBase: class ControlNet(ControlBase): - def __init__(self, control_model=None, global_average_pooling=False, compression_ratio=8, latent_format=None, load_device=None, manual_cast_dtype=None, extra_conds=["y"], strength_type=StrengthType.CONSTANT, concat_mask=False): + def __init__(self, control_model=None, global_average_pooling=False, compression_ratio=8, latent_format=None, load_device=None, manual_cast_dtype=None, extra_conds=["y"], strength_type=StrengthType.CONSTANT, concat_mask=False, preprocess_image=lambda a: a): super().__init__() self.control_model = control_model self.load_device = load_device @@ -196,11 +212,12 @@ class ControlNet(ControlBase): self.extra_conds += extra_conds self.strength_type = strength_type self.concat_mask = concat_mask + self.preprocess_image = preprocess_image - def get_control(self, x_noisy, t, cond, batched_number): + def get_control(self, x_noisy, t, cond, batched_number, transformer_options): control_prev = None if self.previous_controlnet is not None: - control_prev = self.previous_controlnet.get_control(x_noisy, t, cond, batched_number) + control_prev = self.previous_controlnet.get_control(x_noisy, t, cond, batched_number, transformer_options) if self.timestep_range is not None: if t[0] > self.timestep_range[0] or t[0] < self.timestep_range[1]: @@ -224,6 +241,7 @@ class ControlNet(ControlBase): if self.latent_format is not None: raise ValueError("This Controlnet needs a VAE but none was provided, please use a ControlNetApply node with a VAE input and connect it.") self.cond_hint = comfy.utils.common_upscale(self.cond_hint_original, x_noisy.shape[3] * compression_ratio, x_noisy.shape[2] * compression_ratio, self.upscale_algorithm, "center") + self.cond_hint = self.preprocess_image(self.cond_hint) if self.vae is not None: loaded_models = comfy.model_management.loaded_models(only_currently_used=True) self.cond_hint = self.vae.encode(self.cond_hint.movedim(1, -1)) @@ -279,7 +297,6 @@ class ControlLoraOps: class Linear(torch.nn.Module, comfy.ops.CastWeightBiasOp): def __init__(self, in_features: int, out_features: int, bias: bool = True, device=None, dtype=None) -> None: - factory_kwargs = {'device': device, 'dtype': dtype} super().__init__() self.in_features = in_features self.out_features = out_features @@ -364,7 +381,6 @@ class ControlLora(ControlNet): self.control_model.to(comfy.model_management.get_torch_device()) diffusion_model = model.diffusion_model sd = diffusion_model.state_dict() - cm = self.control_model.state_dict() for k in sd: weight = sd[k] @@ -427,6 +443,7 @@ def controlnet_load_state_dict(control_model, sd): logging.debug("unexpected controlnet keys: {}".format(unexpected)) return control_model + def load_controlnet_mmdit(sd, model_options={}): new_sd = comfy.model_detection.convert_diffusers_mmdit(sd, "") model_config, operations, load_device, unet_dtype, manual_cast_dtype, offload_device = controlnet_config(new_sd, model_options=model_options) @@ -448,6 +465,82 @@ def load_controlnet_mmdit(sd, model_options={}): return control +class ControlNetSD35(ControlNet): + def pre_run(self, model, percent_to_timestep_function): + if self.control_model.double_y_emb: + missing, unexpected = self.control_model.orig_y_embedder.load_state_dict(model.diffusion_model.y_embedder.state_dict(), strict=False) + else: + missing, unexpected = self.control_model.x_embedder.load_state_dict(model.diffusion_model.x_embedder.state_dict(), strict=False) + super().pre_run(model, percent_to_timestep_function) + + def copy(self): + c = ControlNetSD35(None, global_average_pooling=self.global_average_pooling, load_device=self.load_device, manual_cast_dtype=self.manual_cast_dtype) + c.control_model = self.control_model + c.control_model_wrapped = self.control_model_wrapped + self.copy_to(c) + return c + +def load_controlnet_sd35(sd, model_options={}): + control_type = -1 + if "control_type" in sd: + control_type = round(sd.pop("control_type").item()) + + # blur_cnet = control_type == 0 + canny_cnet = control_type == 1 + depth_cnet = control_type == 2 + + new_sd = {} + for k in comfy.utils.MMDIT_MAP_BASIC: + if k[1] in sd: + new_sd[k[0]] = sd.pop(k[1]) + for k in sd: + new_sd[k] = sd[k] + sd = new_sd + + y_emb_shape = sd["y_embedder.mlp.0.weight"].shape + depth = y_emb_shape[0] // 64 + hidden_size = 64 * depth + num_heads = depth + head_dim = hidden_size // num_heads + num_blocks = comfy.model_detection.count_blocks(new_sd, 'transformer_blocks.{}.') + + load_device = comfy.model_management.get_torch_device() + offload_device = comfy.model_management.unet_offload_device() + unet_dtype = comfy.model_management.unet_dtype(model_params=-1) + + manual_cast_dtype = comfy.model_management.unet_manual_cast(unet_dtype, load_device) + + operations = model_options.get("custom_operations", None) + if operations is None: + operations = comfy.ops.pick_operations(unet_dtype, manual_cast_dtype, disable_fast_fp8=True) + + control_model = comfy.cldm.dit_embedder.ControlNetEmbedder(img_size=None, + patch_size=2, + in_chans=16, + num_layers=num_blocks, + main_model_double=depth, + double_y_emb=y_emb_shape[0] == y_emb_shape[1], + attention_head_dim=head_dim, + num_attention_heads=num_heads, + adm_in_channels=2048, + device=offload_device, + dtype=unet_dtype, + operations=operations) + + control_model = controlnet_load_state_dict(control_model, sd) + + latent_format = comfy.latent_formats.SD3() + preprocess_image = lambda a: a + if canny_cnet: + preprocess_image = lambda a: (a * 255 * 0.5 + 0.5) + elif depth_cnet: + preprocess_image = lambda a: 1.0 - a + + control = ControlNetSD35(control_model, compression_ratio=1, latent_format=latent_format, load_device=load_device, manual_cast_dtype=manual_cast_dtype, preprocess_image=preprocess_image) + return control + + + def load_controlnet_hunyuandit(controlnet_data, model_options={}): model_config, operations, load_device, unet_dtype, manual_cast_dtype, offload_device = controlnet_config(controlnet_data, model_options=model_options) @@ -560,7 +653,10 @@ def load_controlnet_state_dict(state_dict, model=None, model_options={}): if "double_blocks.0.img_attn.norm.key_norm.scale" in controlnet_data: return load_controlnet_flux_xlabs_mistoline(controlnet_data, model_options=model_options) elif "pos_embed_input.proj.weight" in controlnet_data: - return load_controlnet_mmdit(controlnet_data, model_options=model_options) #SD3 diffusers controlnet + if "transformer_blocks.0.adaLN_modulation.1.bias" in controlnet_data: + return load_controlnet_sd35(controlnet_data, model_options=model_options) #Stability sd3.5 format + else: + return load_controlnet_mmdit(controlnet_data, model_options=model_options) #SD3 diffusers controlnet elif "controlnet_x_embedder.weight" in controlnet_data: return load_controlnet_flux_instantx(controlnet_data, model_options=model_options) elif "controlnet_blocks.0.linear.weight" in controlnet_data: #mistoline flux @@ -674,10 +770,10 @@ class T2IAdapter(ControlBase): height = math.ceil(height / unshuffle_amount) * unshuffle_amount return width, height - def get_control(self, x_noisy, t, cond, batched_number): + def get_control(self, x_noisy, t, cond, batched_number, transformer_options): control_prev = None if self.previous_controlnet is not None: - control_prev = self.previous_controlnet.get_control(x_noisy, t, cond, batched_number) + control_prev = self.previous_controlnet.get_control(x_noisy, t, cond, batched_number, transformer_options) if self.timestep_range is not None: if t[0] > self.timestep_range[0] or t[0] < self.timestep_range[1]: @@ -725,7 +821,7 @@ def load_t2i_adapter(t2i_data, model_options={}): #TODO: model_options for i in range(4): for j in range(2): prefix_replace["adapter.body.{}.resnets.{}.".format(i, j)] = "body.{}.".format(i * 2 + j) - prefix_replace["adapter.body.{}.".format(i, j)] = "body.{}.".format(i * 2) + prefix_replace["adapter.body.{}.".format(i, )] = "body.{}.".format(i * 2) prefix_replace["adapter."] = "" t2i_data = comfy.utils.state_dict_prefix_replace(t2i_data, prefix_replace) keys = t2i_data.keys() diff --git a/comfy/diffusers_convert.py b/comfy/diffusers_convert.py index ed2a45fe..26e8d96d 100644 --- a/comfy/diffusers_convert.py +++ b/comfy/diffusers_convert.py @@ -157,16 +157,23 @@ vae_conversion_map_attn = [ ] -def reshape_weight_for_sd(w): +def reshape_weight_for_sd(w, conv3d=False): # convert HF linear weights to SD conv2d weights - return w.reshape(*w.shape, 1, 1) + if conv3d: + return w.reshape(*w.shape, 1, 1, 1) + else: + return w.reshape(*w.shape, 1, 1) def convert_vae_state_dict(vae_state_dict): mapping = {k: k for k in vae_state_dict.keys()} + conv3d = False for k, v in mapping.items(): for sd_part, hf_part in vae_conversion_map: v = v.replace(hf_part, sd_part) + if v.endswith(".conv.weight"): + if not conv3d and vae_state_dict[k].ndim == 5: + conv3d = True mapping[k] = v for k, v in mapping.items(): if "attentions" in k: @@ -179,7 +186,7 @@ def convert_vae_state_dict(vae_state_dict): for weight_name in weights_to_convert: if f"mid.attn_1.{weight_name}.weight" in k: logging.debug(f"Reshaping {k} for SD format") - new_state_dict[k] = reshape_weight_for_sd(v) + new_state_dict[k] = reshape_weight_for_sd(v, conv3d=conv3d) return new_state_dict diff --git a/comfy/extra_samplers/uni_pc.py b/comfy/extra_samplers/uni_pc.py index a30d1d03..5b80a8af 100644 --- a/comfy/extra_samplers/uni_pc.py +++ b/comfy/extra_samplers/uni_pc.py @@ -1,10 +1,10 @@ #code taken from: https://github.com/wl-zhao/UniPC and modified import torch -import torch.nn.functional as F import math +import logging -from tqdm.auto import trange, tqdm +from tqdm.auto import trange class NoiseScheduleVP: @@ -16,7 +16,7 @@ class NoiseScheduleVP: continuous_beta_0=0.1, continuous_beta_1=20., ): - """Create a wrapper class for the forward SDE (VP type). + r"""Create a wrapper class for the forward SDE (VP type). *** Update: We support discrete-time diffusion models by implementing a picewise linear interpolation for log_alpha_t. @@ -80,7 +80,7 @@ class NoiseScheduleVP: 'linear' or 'cosine' for continuous-time DPMs. Returns: A wrapper object of the forward SDE (VP type). - + =============================================================== Example: @@ -208,7 +208,7 @@ def model_wrapper( arXiv preprint arXiv:2202.00512 (2022). [2] Ho, Jonathan, et al. "Imagen Video: High Definition Video Generation with Diffusion Models." arXiv preprint arXiv:2210.02303 (2022). - + 4. "score": marginal score function. (Trained by denoising score matching). Note that the score function and the noise prediction model follows a simple relationship: ``` @@ -226,7 +226,7 @@ def model_wrapper( The input `model` has the following format: `` model(x, t_input, **model_kwargs) -> noise | x_start | v | score - `` + `` The input `classifier_fn` has the following format: `` @@ -240,12 +240,12 @@ def model_wrapper( The input `model` has the following format: `` model(x, t_input, cond, **model_kwargs) -> noise | x_start | v | score - `` + `` And if cond == `unconditional_condition`, the model output is the unconditional DPM output. [4] Ho, Jonathan, and Tim Salimans. "Classifier-free diffusion guidance." arXiv preprint arXiv:2207.12598 (2022). - + The `t_input` is the time label of the model, which may be discrete-time labels (i.e. 0 to 999) or continuous-time labels (i.e. epsilon to T). @@ -254,7 +254,7 @@ def model_wrapper( `` def model_fn(x, t_continuous) -> noise: t_input = get_model_input_time(t_continuous) - return noise_pred(model, x, t_input, **model_kwargs) + return noise_pred(model, x, t_input, **model_kwargs) `` where `t_continuous` is the continuous time labels (i.e. epsilon to T). And we use `model_fn` for DPM-Solver. @@ -359,7 +359,7 @@ class UniPC: max_val=1., variant='bh1', ): - """Construct a UniPC. + """Construct a UniPC. We support both data_prediction and noise_prediction. """ @@ -372,7 +372,7 @@ class UniPC: def dynamic_thresholding_fn(self, x0, t=None): """ - The dynamic thresholding method. + The dynamic thresholding method. """ dims = x0.dim() p = self.dynamic_thresholding_ratio @@ -404,7 +404,7 @@ class UniPC: def model_fn(self, x, t): """ - Convert the model to the noise prediction model or the data prediction model. + Convert the model to the noise prediction model or the data prediction model. """ if self.predict_x0: return self.data_prediction_fn(x, t) @@ -461,7 +461,7 @@ class UniPC: def denoise_to_zero_fn(self, x, s): """ - Denoise at the final step, which is equivalent to solve the ODE from lambda_s to infty by first-order discretization. + Denoise at the final step, which is equivalent to solve the ODE from lambda_s to infty by first-order discretization. """ return self.data_prediction_fn(x, s) @@ -475,7 +475,7 @@ class UniPC: return self.multistep_uni_pc_vary_update(x, model_prev_list, t_prev_list, t, order, **kwargs) def multistep_uni_pc_vary_update(self, x, model_prev_list, t_prev_list, t, order, use_corrector=True): - print(f'using unified predictor-corrector with order {order} (solver type: vary coeff)') + logging.info(f'using unified predictor-corrector with order {order} (solver type: vary coeff)') ns = self.noise_schedule assert order <= len(model_prev_list) @@ -510,7 +510,7 @@ class UniPC: col = torch.ones_like(rks) for k in range(1, K + 1): C.append(col) - col = col * rks / (k + 1) + col = col * rks / (k + 1) C = torch.stack(C, dim=1) if len(D1s) > 0: @@ -519,7 +519,6 @@ class UniPC: A_p = C_inv_p if use_corrector: - print('using corrector') C_inv = torch.linalg.inv(C) A_c = C_inv @@ -622,12 +621,12 @@ class UniPC: B_h = torch.expm1(hh) else: raise NotImplementedError() - + for i in range(1, order + 1): R.append(torch.pow(rks, i - 1)) b.append(h_phi_k * factorial_i / B_h) factorial_i *= (i + 1) - h_phi_k = h_phi_k / hh - 1 / factorial_i + h_phi_k = h_phi_k / hh - 1 / factorial_i R = torch.stack(R) b = torch.tensor(b, device=x.device) @@ -704,7 +703,6 @@ class UniPC: ): # t_0 = 1. / self.noise_schedule.total_N if t_end is None else t_end # t_T = self.noise_schedule.T if t_start is None else t_start - device = x.device steps = len(timesteps) - 1 if method == 'multistep': assert steps >= order @@ -872,4 +870,4 @@ def sample_unipc(model, noise, sigmas, extra_args=None, callback=None, disable=F return x def sample_unipc_bh2(model, noise, sigmas, extra_args=None, callback=None, disable=False): - return sample_unipc(model, noise, sigmas, extra_args, callback, disable, variant='bh2') \ No newline at end of file + return sample_unipc(model, noise, sigmas, extra_args, callback, disable, variant='bh2') diff --git a/comfy/gligen.py b/comfy/gligen.py index 59252276..161d8a5e 100644 --- a/comfy/gligen.py +++ b/comfy/gligen.py @@ -1,3 +1,4 @@ +import math import torch from torch import nn from .ldm.modules.attention import CrossAttention diff --git a/comfy/hooks.py b/comfy/hooks.py new file mode 100644 index 00000000..3cb0f396 --- /dev/null +++ b/comfy/hooks.py @@ -0,0 +1,704 @@ +from __future__ import annotations +from typing import TYPE_CHECKING, Callable +import enum +import math +import torch +import numpy as np +import itertools +import logging + +if TYPE_CHECKING: + from comfy.model_patcher import ModelPatcher, PatcherInjection + from comfy.model_base import BaseModel + from comfy.sd import CLIP +import comfy.lora +import comfy.model_management +import comfy.patcher_extension +from node_helpers import conditioning_set_values + +class EnumHookMode(enum.Enum): + MinVram = "minvram" + MaxSpeed = "maxspeed" + +class EnumHookType(enum.Enum): + Weight = "weight" + Patch = "patch" + ObjectPatch = "object_patch" + AddModels = "add_models" + Callbacks = "callbacks" + Wrappers = "wrappers" + SetInjections = "add_injections" + +class EnumWeightTarget(enum.Enum): + Model = "model" + Clip = "clip" + +class _HookRef: + pass + +# NOTE: this is an example of how the should_register function should look +def default_should_register(hook: 'Hook', model: 'ModelPatcher', model_options: dict, target: EnumWeightTarget, registered: list[Hook]): + return True + + +class Hook: + def __init__(self, hook_type: EnumHookType=None, hook_ref: _HookRef=None, hook_id: str=None, + hook_keyframe: 'HookKeyframeGroup'=None): + self.hook_type = hook_type + self.hook_ref = hook_ref if hook_ref else _HookRef() + self.hook_id = hook_id + self.hook_keyframe = hook_keyframe if hook_keyframe else HookKeyframeGroup() + self.custom_should_register = default_should_register + self.auto_apply_to_nonpositive = False + + @property + def strength(self): + return self.hook_keyframe.strength + + def initialize_timesteps(self, model: 'BaseModel'): + self.reset() + self.hook_keyframe.initialize_timesteps(model) + + def reset(self): + self.hook_keyframe.reset() + + def clone(self, subtype: Callable=None): + if subtype is None: + subtype = type(self) + c: Hook = subtype() + c.hook_type = self.hook_type + c.hook_ref = self.hook_ref + c.hook_id = self.hook_id + c.hook_keyframe = self.hook_keyframe + c.custom_should_register = self.custom_should_register + # TODO: make this do something + c.auto_apply_to_nonpositive = self.auto_apply_to_nonpositive + return c + + def should_register(self, model: 'ModelPatcher', model_options: dict, target: EnumWeightTarget, registered: list[Hook]): + return self.custom_should_register(self, model, model_options, target, registered) + + def add_hook_patches(self, model: 'ModelPatcher', model_options: dict, target: EnumWeightTarget, registered: list[Hook]): + raise NotImplementedError("add_hook_patches should be defined for Hook subclasses") + + def on_apply(self, model: 'ModelPatcher', transformer_options: dict[str]): + pass + + def on_unapply(self, model: 'ModelPatcher', transformer_options: dict[str]): + pass + + def __eq__(self, other: 'Hook'): + return self.__class__ == other.__class__ and self.hook_ref == other.hook_ref + + def __hash__(self): + return hash(self.hook_ref) + +class WeightHook(Hook): + def __init__(self, strength_model=1.0, strength_clip=1.0): + super().__init__(hook_type=EnumHookType.Weight) + self.weights: dict = None + self.weights_clip: dict = None + self.need_weight_init = True + self._strength_model = strength_model + self._strength_clip = strength_clip + + @property + def strength_model(self): + return self._strength_model * self.strength + + @property + def strength_clip(self): + return self._strength_clip * self.strength + + def add_hook_patches(self, model: 'ModelPatcher', model_options: dict, target: EnumWeightTarget, registered: list[Hook]): + if not self.should_register(model, model_options, target, registered): + return False + weights = None + if target == EnumWeightTarget.Model: + strength = self._strength_model + else: + strength = self._strength_clip + + if self.need_weight_init: + key_map = {} + if target == EnumWeightTarget.Model: + key_map = comfy.lora.model_lora_keys_unet(model.model, key_map) + else: + key_map = comfy.lora.model_lora_keys_clip(model.model, key_map) + weights = comfy.lora.load_lora(self.weights, key_map, log_missing=False) + else: + if target == EnumWeightTarget.Model: + weights = self.weights + else: + weights = self.weights_clip + model.add_hook_patches(hook=self, patches=weights, strength_patch=strength) + registered.append(self) + return True + # TODO: add logs about any keys that were not applied + + def clone(self, subtype: Callable=None): + if subtype is None: + subtype = type(self) + c: WeightHook = super().clone(subtype) + c.weights = self.weights + c.weights_clip = self.weights_clip + c.need_weight_init = self.need_weight_init + c._strength_model = self._strength_model + c._strength_clip = self._strength_clip + return c + +class PatchHook(Hook): + def __init__(self): + super().__init__(hook_type=EnumHookType.Patch) + self.patches: dict = None + + def clone(self, subtype: Callable=None): + if subtype is None: + subtype = type(self) + c: PatchHook = super().clone(subtype) + c.patches = self.patches + return c + # TODO: add functionality + +class ObjectPatchHook(Hook): + def __init__(self): + super().__init__(hook_type=EnumHookType.ObjectPatch) + self.object_patches: dict = None + + def clone(self, subtype: Callable=None): + if subtype is None: + subtype = type(self) + c: ObjectPatchHook = super().clone(subtype) + c.object_patches = self.object_patches + return c + # TODO: add functionality + +class AddModelsHook(Hook): + def __init__(self, key: str=None, models: list['ModelPatcher']=None): + super().__init__(hook_type=EnumHookType.AddModels) + self.key = key + self.models = models + self.append_when_same = True + + def clone(self, subtype: Callable=None): + if subtype is None: + subtype = type(self) + c: AddModelsHook = super().clone(subtype) + c.key = self.key + c.models = self.models.copy() if self.models else self.models + c.append_when_same = self.append_when_same + return c + # TODO: add functionality + +class CallbackHook(Hook): + def __init__(self, key: str=None, callback: Callable=None): + super().__init__(hook_type=EnumHookType.Callbacks) + self.key = key + self.callback = callback + + def clone(self, subtype: Callable=None): + if subtype is None: + subtype = type(self) + c: CallbackHook = super().clone(subtype) + c.key = self.key + c.callback = self.callback + return c + # TODO: add functionality + +class WrapperHook(Hook): + def __init__(self, wrappers_dict: dict[str, dict[str, dict[str, list[Callable]]]]=None): + super().__init__(hook_type=EnumHookType.Wrappers) + self.wrappers_dict = wrappers_dict + + def clone(self, subtype: Callable=None): + if subtype is None: + subtype = type(self) + c: WrapperHook = super().clone(subtype) + c.wrappers_dict = self.wrappers_dict + return c + + def add_hook_patches(self, model: 'ModelPatcher', model_options: dict, target: EnumWeightTarget, registered: list[Hook]): + if not self.should_register(model, model_options, target, registered): + return False + add_model_options = {"transformer_options": self.wrappers_dict} + comfy.patcher_extension.merge_nested_dicts(model_options, add_model_options, copy_dict1=False) + registered.append(self) + return True + +class SetInjectionsHook(Hook): + def __init__(self, key: str=None, injections: list['PatcherInjection']=None): + super().__init__(hook_type=EnumHookType.SetInjections) + self.key = key + self.injections = injections + + def clone(self, subtype: Callable=None): + if subtype is None: + subtype = type(self) + c: SetInjectionsHook = super().clone(subtype) + c.key = self.key + c.injections = self.injections.copy() if self.injections else self.injections + return c + + def add_hook_injections(self, model: 'ModelPatcher'): + # TODO: add functionality + pass + +class HookGroup: + def __init__(self): + self.hooks: list[Hook] = [] + + def add(self, hook: Hook): + if hook not in self.hooks: + self.hooks.append(hook) + + def contains(self, hook: Hook): + return hook in self.hooks + + def clone(self): + c = HookGroup() + for hook in self.hooks: + c.add(hook.clone()) + return c + + def clone_and_combine(self, other: 'HookGroup'): + c = self.clone() + if other is not None: + for hook in other.hooks: + c.add(hook.clone()) + return c + + def set_keyframes_on_hooks(self, hook_kf: 'HookKeyframeGroup'): + if hook_kf is None: + hook_kf = HookKeyframeGroup() + else: + hook_kf = hook_kf.clone() + for hook in self.hooks: + hook.hook_keyframe = hook_kf + + def get_dict_repr(self): + d: dict[EnumHookType, dict[Hook, None]] = {} + for hook in self.hooks: + with_type = d.setdefault(hook.hook_type, {}) + with_type[hook] = None + return d + + def get_hooks_for_clip_schedule(self): + scheduled_hooks: dict[WeightHook, list[tuple[tuple[float,float], HookKeyframe]]] = {} + for hook in self.hooks: + # only care about WeightHooks, for now + if hook.hook_type == EnumHookType.Weight: + hook_schedule = [] + # if no hook keyframes, assign default value + if len(hook.hook_keyframe.keyframes) == 0: + hook_schedule.append(((0.0, 1.0), None)) + scheduled_hooks[hook] = hook_schedule + continue + # find ranges of values + prev_keyframe = hook.hook_keyframe.keyframes[0] + for keyframe in hook.hook_keyframe.keyframes: + if keyframe.start_percent > prev_keyframe.start_percent and not math.isclose(keyframe.strength, prev_keyframe.strength): + hook_schedule.append(((prev_keyframe.start_percent, keyframe.start_percent), prev_keyframe)) + prev_keyframe = keyframe + elif keyframe.start_percent == prev_keyframe.start_percent: + prev_keyframe = keyframe + # create final range, assuming last start_percent was not 1.0 + if not math.isclose(prev_keyframe.start_percent, 1.0): + hook_schedule.append(((prev_keyframe.start_percent, 1.0), prev_keyframe)) + scheduled_hooks[hook] = hook_schedule + # hooks should not have their schedules in a list of tuples + all_ranges: list[tuple[float, float]] = [] + for range_kfs in scheduled_hooks.values(): + for t_range, keyframe in range_kfs: + all_ranges.append(t_range) + # turn list of ranges into boundaries + boundaries_set = set(itertools.chain.from_iterable(all_ranges)) + boundaries_set.add(0.0) + boundaries = sorted(boundaries_set) + real_ranges = [(boundaries[i], boundaries[i + 1]) for i in range(len(boundaries) - 1)] + # with real ranges defined, give appropriate hooks w/ keyframes for each range + scheduled_keyframes: list[tuple[tuple[float,float], list[tuple[WeightHook, HookKeyframe]]]] = [] + for t_range in real_ranges: + hooks_schedule = [] + for hook, val in scheduled_hooks.items(): + keyframe = None + # check if is a keyframe that works for the current t_range + for stored_range, stored_kf in val: + # if stored start is less than current end, then fits - give it assigned keyframe + if stored_range[0] < t_range[1] and stored_range[1] > t_range[0]: + keyframe = stored_kf + break + hooks_schedule.append((hook, keyframe)) + scheduled_keyframes.append((t_range, hooks_schedule)) + return scheduled_keyframes + + def reset(self): + for hook in self.hooks: + hook.reset() + + @staticmethod + def combine_all_hooks(hooks_list: list['HookGroup'], require_count=0) -> 'HookGroup': + actual: list[HookGroup] = [] + for group in hooks_list: + if group is not None: + actual.append(group) + if len(actual) < require_count: + raise Exception(f"Need at least {require_count} hooks to combine, but only had {len(actual)}.") + # if no hooks, then return None + if len(actual) == 0: + return None + # if only 1 hook, just return itself without cloning + elif len(actual) == 1: + return actual[0] + final_hook: HookGroup = None + for hook in actual: + if final_hook is None: + final_hook = hook.clone() + else: + final_hook = final_hook.clone_and_combine(hook) + return final_hook + + +class HookKeyframe: + def __init__(self, strength: float, start_percent=0.0, guarantee_steps=1): + self.strength = strength + # scheduling + self.start_percent = float(start_percent) + self.start_t = 999999999.9 + self.guarantee_steps = guarantee_steps + + def get_effective_guarantee_steps(self, max_sigma: torch.Tensor): + '''If keyframe starts before current sampling range (max_sigma), treat as 0.''' + if self.start_t > max_sigma: + return 0 + return self.guarantee_steps + + def clone(self): + c = HookKeyframe(strength=self.strength, + start_percent=self.start_percent, guarantee_steps=self.guarantee_steps) + c.start_t = self.start_t + return c + +class HookKeyframeGroup: + def __init__(self): + self.keyframes: list[HookKeyframe] = [] + self._current_keyframe: HookKeyframe = None + self._current_used_steps = 0 + self._current_index = 0 + self._current_strength = None + self._curr_t = -1. + + # properties shadow those of HookWeightsKeyframe + @property + def strength(self): + if self._current_keyframe is not None: + return self._current_keyframe.strength + return 1.0 + + def reset(self): + self._current_keyframe = None + self._current_used_steps = 0 + self._current_index = 0 + self._current_strength = None + self.curr_t = -1. + self._set_first_as_current() + + def add(self, keyframe: HookKeyframe): + # add to end of list, then sort + self.keyframes.append(keyframe) + self.keyframes = get_sorted_list_via_attr(self.keyframes, "start_percent") + self._set_first_as_current() + + def _set_first_as_current(self): + if len(self.keyframes) > 0: + self._current_keyframe = self.keyframes[0] + else: + self._current_keyframe = None + + def has_guarantee_steps(self): + for kf in self.keyframes: + if kf.guarantee_steps > 0: + return True + return False + + def has_index(self, index: int): + return index >= 0 and index < len(self.keyframes) + + def is_empty(self): + return len(self.keyframes) == 0 + + def clone(self): + c = HookKeyframeGroup() + for keyframe in self.keyframes: + c.keyframes.append(keyframe.clone()) + c._set_first_as_current() + return c + + def initialize_timesteps(self, model: 'BaseModel'): + for keyframe in self.keyframes: + keyframe.start_t = model.model_sampling.percent_to_sigma(keyframe.start_percent) + + def prepare_current_keyframe(self, curr_t: float, transformer_options: dict[str, torch.Tensor]) -> bool: + if self.is_empty(): + return False + if curr_t == self._curr_t: + return False + max_sigma = torch.max(transformer_options["sample_sigmas"]) + prev_index = self._current_index + prev_strength = self._current_strength + # if met guaranteed steps, look for next keyframe in case need to switch + if self._current_used_steps >= self._current_keyframe.get_effective_guarantee_steps(max_sigma): + # if has next index, loop through and see if need to switch + if self.has_index(self._current_index+1): + for i in range(self._current_index+1, len(self.keyframes)): + eval_c = self.keyframes[i] + # check if start_t is greater or equal to curr_t + # NOTE: t is in terms of sigmas, not percent, so bigger number = earlier step in sampling + if eval_c.start_t >= curr_t: + self._current_index = i + self._current_strength = eval_c.strength + self._current_keyframe = eval_c + self._current_used_steps = 0 + # if guarantee_steps greater than zero, stop searching for other keyframes + if self._current_keyframe.get_effective_guarantee_steps(max_sigma) > 0: + break + # if eval_c is outside the percent range, stop looking further + else: break + # update steps current context is used + self._current_used_steps += 1 + # update current timestep this was performed on + self._curr_t = curr_t + # return True if keyframe changed, False if no change + return prev_index != self._current_index and prev_strength != self._current_strength + + +class InterpolationMethod: + LINEAR = "linear" + EASE_IN = "ease_in" + EASE_OUT = "ease_out" + EASE_IN_OUT = "ease_in_out" + + _LIST = [LINEAR, EASE_IN, EASE_OUT, EASE_IN_OUT] + + @classmethod + def get_weights(cls, num_from: float, num_to: float, length: int, method: str, reverse=False): + diff = num_to - num_from + if method == cls.LINEAR: + weights = torch.linspace(num_from, num_to, length) + elif method == cls.EASE_IN: + index = torch.linspace(0, 1, length) + weights = diff * np.power(index, 2) + num_from + elif method == cls.EASE_OUT: + index = torch.linspace(0, 1, length) + weights = diff * (1 - np.power(1 - index, 2)) + num_from + elif method == cls.EASE_IN_OUT: + index = torch.linspace(0, 1, length) + weights = diff * ((1 - np.cos(index * np.pi)) / 2) + num_from + else: + raise ValueError(f"Unrecognized interpolation method '{method}'.") + if reverse: + weights = weights.flip(dims=(0,)) + return weights + +def get_sorted_list_via_attr(objects: list, attr: str) -> list: + if not objects: + return objects + elif len(objects) <= 1: + return [x for x in objects] + # now that we know we have to sort, do it following these rules: + # a) if objects have same value of attribute, maintain their relative order + # b) perform sorting of the groups of objects with same attributes + unique_attrs = {} + for o in objects: + val_attr = getattr(o, attr) + attr_list: list = unique_attrs.get(val_attr, list()) + attr_list.append(o) + if val_attr not in unique_attrs: + unique_attrs[val_attr] = attr_list + # now that we have the unique attr values grouped together in relative order, sort them by key + sorted_attrs = dict(sorted(unique_attrs.items())) + # now flatten out the dict into a list to return + sorted_list = [] + for object_list in sorted_attrs.values(): + sorted_list.extend(object_list) + return sorted_list + +def create_hook_lora(lora: dict[str, torch.Tensor], strength_model: float, strength_clip: float): + hook_group = HookGroup() + hook = WeightHook(strength_model=strength_model, strength_clip=strength_clip) + hook_group.add(hook) + hook.weights = lora + return hook_group + +def create_hook_model_as_lora(weights_model, weights_clip, strength_model: float, strength_clip: float): + hook_group = HookGroup() + hook = WeightHook(strength_model=strength_model, strength_clip=strength_clip) + hook_group.add(hook) + patches_model = None + patches_clip = None + if weights_model is not None: + patches_model = {} + for key in weights_model: + patches_model[key] = ("model_as_lora", (weights_model[key],)) + if weights_clip is not None: + patches_clip = {} + for key in weights_clip: + patches_clip[key] = ("model_as_lora", (weights_clip[key],)) + hook.weights = patches_model + hook.weights_clip = patches_clip + hook.need_weight_init = False + return hook_group + +def get_patch_weights_from_model(model: 'ModelPatcher', discard_model_sampling=True): + if model is None: + return None + patches_model: dict[str, torch.Tensor] = model.model.state_dict() + if discard_model_sampling: + # do not include ANY model_sampling components of the model that should act as a patch + for key in list(patches_model.keys()): + if key.startswith("model_sampling"): + patches_model.pop(key, None) + return patches_model + +# NOTE: this function shows how to register weight hooks directly on the ModelPatchers +def load_hook_lora_for_models(model: 'ModelPatcher', clip: 'CLIP', lora: dict[str, torch.Tensor], + strength_model: float, strength_clip: float): + key_map = {} + if model is not None: + key_map = comfy.lora.model_lora_keys_unet(model.model, key_map) + if clip is not None: + key_map = comfy.lora.model_lora_keys_clip(clip.cond_stage_model, key_map) + + hook_group = HookGroup() + hook = WeightHook() + hook_group.add(hook) + loaded: dict[str] = comfy.lora.load_lora(lora, key_map) + if model is not None: + new_modelpatcher = model.clone() + k = new_modelpatcher.add_hook_patches(hook=hook, patches=loaded, strength_patch=strength_model) + else: + k = () + new_modelpatcher = None + + if clip is not None: + new_clip = clip.clone() + k1 = new_clip.patcher.add_hook_patches(hook=hook, patches=loaded, strength_patch=strength_clip) + else: + k1 = () + new_clip = None + k = set(k) + k1 = set(k1) + for x in loaded: + if (x not in k) and (x not in k1): + logging.warning(f"NOT LOADED {x}") + return (new_modelpatcher, new_clip, hook_group) + +def _combine_hooks_from_values(c_dict: dict[str, HookGroup], values: dict[str, HookGroup], cache: dict[tuple[HookGroup, HookGroup], HookGroup]): + hooks_key = 'hooks' + # if hooks only exist in one dict, do what's needed so that it ends up in c_dict + if hooks_key not in values: + return + if hooks_key not in c_dict: + hooks_value = values.get(hooks_key, None) + if hooks_value is not None: + c_dict[hooks_key] = hooks_value + return + # otherwise, need to combine with minimum duplication via cache + hooks_tuple = (c_dict[hooks_key], values[hooks_key]) + cached_hooks = cache.get(hooks_tuple, None) + if cached_hooks is None: + new_hooks = hooks_tuple[0].clone_and_combine(hooks_tuple[1]) + cache[hooks_tuple] = new_hooks + c_dict[hooks_key] = new_hooks + else: + c_dict[hooks_key] = cache[hooks_tuple] + +def conditioning_set_values_with_hooks(conditioning, values={}, append_hooks=True): + c = [] + hooks_combine_cache: dict[tuple[HookGroup, HookGroup], HookGroup] = {} + for t in conditioning: + n = [t[0], t[1].copy()] + for k in values: + if append_hooks and k == 'hooks': + _combine_hooks_from_values(n[1], values, hooks_combine_cache) + else: + n[1][k] = values[k] + c.append(n) + + return c + +def set_hooks_for_conditioning(cond, hooks: HookGroup, append_hooks=True): + if hooks is None: + return cond + return conditioning_set_values_with_hooks(cond, {'hooks': hooks}, append_hooks=append_hooks) + +def set_timesteps_for_conditioning(cond, timestep_range: tuple[float,float]): + if timestep_range is None: + return cond + return conditioning_set_values(cond, {"start_percent": timestep_range[0], + "end_percent": timestep_range[1]}) + +def set_mask_for_conditioning(cond, mask: torch.Tensor, set_cond_area: str, strength: float): + if mask is None: + return cond + set_area_to_bounds = False + if set_cond_area != 'default': + set_area_to_bounds = True + if len(mask.shape) < 3: + mask = mask.unsqueeze(0) + return conditioning_set_values(cond, {'mask': mask, + 'set_area_to_bounds': set_area_to_bounds, + 'mask_strength': strength}) + +def combine_conditioning(conds: list): + combined_conds = [] + for cond in conds: + combined_conds.extend(cond) + return combined_conds + +def combine_with_new_conds(conds: list, new_conds: list): + combined_conds = [] + for c, new_c in zip(conds, new_conds): + combined_conds.append(combine_conditioning([c, new_c])) + return combined_conds + +def set_conds_props(conds: list, strength: float, set_cond_area: str, + mask: torch.Tensor=None, hooks: HookGroup=None, timesteps_range: tuple[float,float]=None, append_hooks=True): + final_conds = [] + for c in conds: + # first, apply lora_hook to conditioning, if provided + c = set_hooks_for_conditioning(c, hooks, append_hooks=append_hooks) + # next, apply mask to conditioning + c = set_mask_for_conditioning(cond=c, mask=mask, strength=strength, set_cond_area=set_cond_area) + # apply timesteps, if present + c = set_timesteps_for_conditioning(cond=c, timestep_range=timesteps_range) + # finally, apply mask to conditioning and store + final_conds.append(c) + return final_conds + +def set_conds_props_and_combine(conds: list, new_conds: list, strength: float=1.0, set_cond_area: str="default", + mask: torch.Tensor=None, hooks: HookGroup=None, timesteps_range: tuple[float,float]=None, append_hooks=True): + combined_conds = [] + for c, masked_c in zip(conds, new_conds): + # first, apply lora_hook to new conditioning, if provided + masked_c = set_hooks_for_conditioning(masked_c, hooks, append_hooks=append_hooks) + # next, apply mask to new conditioning, if provided + masked_c = set_mask_for_conditioning(cond=masked_c, mask=mask, set_cond_area=set_cond_area, strength=strength) + # apply timesteps, if present + masked_c = set_timesteps_for_conditioning(cond=masked_c, timestep_range=timesteps_range) + # finally, combine with existing conditioning and store + combined_conds.append(combine_conditioning([c, masked_c])) + return combined_conds + +def set_default_conds_and_combine(conds: list, new_conds: list, + hooks: HookGroup=None, timesteps_range: tuple[float,float]=None, append_hooks=True): + combined_conds = [] + for c, new_c in zip(conds, new_conds): + # first, apply lora_hook to new conditioning, if provided + new_c = set_hooks_for_conditioning(new_c, hooks, append_hooks=append_hooks) + # next, add default_cond key to cond so that during sampling, it can be identified + new_c = conditioning_set_values(new_c, {'default': True}) + # apply timesteps, if present + new_c = set_timesteps_for_conditioning(cond=new_c, timestep_range=timesteps_range) + # finally, combine with existing conditioning and store + combined_conds.append(combine_conditioning([c, new_c])) + return combined_conds diff --git a/comfy/k_diffusion/deis.py b/comfy/k_diffusion/deis.py index 60741065..a1167a4a 100644 --- a/comfy/k_diffusion/deis.py +++ b/comfy/k_diffusion/deis.py @@ -11,7 +11,6 @@ import numpy as np # Transfer from the input time (sigma) used in EDM to that (t) used in DEIS. def edm2t(edm_steps, epsilon_s=1e-3, sigma_min=0.002, sigma_max=80): - vp_sigma = lambda beta_d, beta_min: lambda t: (np.e ** (0.5 * beta_d * (t ** 2) + beta_min * t) - 1) ** 0.5 vp_sigma_inv = lambda beta_d, beta_min: lambda sigma: ((beta_min ** 2 + 2 * beta_d * (sigma ** 2 + 1).log()).sqrt() - beta_min) / beta_d vp_beta_d = 2 * (np.log(torch.tensor(sigma_min).cpu() ** 2 + 1) / epsilon_s - np.log(torch.tensor(sigma_max).cpu() ** 2 + 1)) / (epsilon_s - 1) vp_beta_min = np.log(torch.tensor(sigma_max).cpu() ** 2 + 1) - 0.5 * vp_beta_d diff --git a/comfy/k_diffusion/sampling.py b/comfy/k_diffusion/sampling.py index 06dcc0b1..9fbc62bd 100644 --- a/comfy/k_diffusion/sampling.py +++ b/comfy/k_diffusion/sampling.py @@ -72,8 +72,14 @@ def get_ancestral_step(sigma_from, sigma_to, eta=1.): return sigma_down, sigma_up -def default_noise_sampler(x): - return lambda sigma, sigma_next: torch.randn_like(x) +def default_noise_sampler(x, seed=None): + if seed is not None: + generator = torch.Generator(device=x.device) + generator.manual_seed(seed) + else: + generator = None + + return lambda sigma, sigma_next: torch.randn(x.size(), dtype=x.dtype, layout=x.layout, device=x.device, generator=generator) class BatchedBrownianTree: @@ -170,43 +176,50 @@ def sample_euler_ancestral(model, x, sigmas, extra_args=None, callback=None, dis return sample_euler_ancestral_RF(model, x, sigmas, extra_args, callback, disable, eta, s_noise, noise_sampler) """Ancestral sampling with Euler method steps.""" extra_args = {} if extra_args is None else extra_args - noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler + seed = extra_args.get("seed", None) + noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler s_in = x.new_ones([x.shape[0]]) for i in trange(len(sigmas) - 1, disable=disable): denoised = model(x, sigmas[i] * s_in, **extra_args) sigma_down, sigma_up = get_ancestral_step(sigmas[i], sigmas[i + 1], eta=eta) if callback is not None: callback({'x': x, 'i': i, 'sigma': sigmas[i], 'sigma_hat': sigmas[i], 'denoised': denoised}) - d = to_d(x, sigmas[i], denoised) - # Euler method - dt = sigma_down - sigmas[i] - x = x + d * dt - if sigmas[i + 1] > 0: - x = x + noise_sampler(sigmas[i], sigmas[i + 1]) * s_noise * sigma_up + + if sigma_down == 0: + x = denoised + else: + d = to_d(x, sigmas[i], denoised) + # Euler method + dt = sigma_down - sigmas[i] + x = x + d * dt + noise_sampler(sigmas[i], sigmas[i + 1]) * s_noise * sigma_up return x @torch.no_grad() def sample_euler_ancestral_RF(model, x, sigmas, extra_args=None, callback=None, disable=None, eta=1.0, s_noise=1., noise_sampler=None): """Ancestral sampling with Euler method steps.""" extra_args = {} if extra_args is None else extra_args - noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler + seed = extra_args.get("seed", None) + noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler s_in = x.new_ones([x.shape[0]]) for i in trange(len(sigmas) - 1, disable=disable): denoised = model(x, sigmas[i] * s_in, **extra_args) # sigma_down, sigma_up = get_ancestral_step(sigmas[i], sigmas[i + 1], eta=eta) - downstep_ratio = 1 + (sigmas[i+1]/sigmas[i] - 1) * eta - sigma_down = sigmas[i+1] * downstep_ratio - alpha_ip1 = 1 - sigmas[i+1] - alpha_down = 1 - sigma_down - renoise_coeff = (sigmas[i+1]**2 - sigma_down**2*alpha_ip1**2/alpha_down**2)**0.5 if callback is not None: callback({'x': x, 'i': i, 'sigma': sigmas[i], 'sigma_hat': sigmas[i], 'denoised': denoised}) - # Euler method - sigma_down_i_ratio = sigma_down / sigmas[i] - x = sigma_down_i_ratio * x + (1 - sigma_down_i_ratio) * denoised - if sigmas[i + 1] > 0 and eta > 0: - x = (alpha_ip1/alpha_down) * x + noise_sampler(sigmas[i], sigmas[i + 1]) * s_noise * renoise_coeff + if sigmas[i + 1] == 0: + x = denoised + else: + downstep_ratio = 1 + (sigmas[i + 1] / sigmas[i] - 1) * eta + sigma_down = sigmas[i + 1] * downstep_ratio + alpha_ip1 = 1 - sigmas[i + 1] + alpha_down = 1 - sigma_down + renoise_coeff = (sigmas[i + 1]**2 - sigma_down**2 * alpha_ip1**2 / alpha_down**2)**0.5 + # Euler method + sigma_down_i_ratio = sigma_down / sigmas[i] + x = sigma_down_i_ratio * x + (1 - sigma_down_i_ratio) * denoised + if eta > 0: + x = (alpha_ip1 / alpha_down) * x + noise_sampler(sigmas[i], sigmas[i + 1]) * s_noise * renoise_coeff return x @torch.no_grad() @@ -282,9 +295,13 @@ def sample_dpm_2(model, x, sigmas, extra_args=None, callback=None, disable=None, @torch.no_grad() def sample_dpm_2_ancestral(model, x, sigmas, extra_args=None, callback=None, disable=None, eta=1., s_noise=1., noise_sampler=None): + if isinstance(model.inner_model.inner_model.model_sampling, comfy.model_sampling.CONST): + return sample_dpm_2_ancestral_RF(model, x, sigmas, extra_args, callback, disable, eta, s_noise, noise_sampler) + """Ancestral sampling with DPM-Solver second-order steps.""" extra_args = {} if extra_args is None else extra_args - noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler + seed = extra_args.get("seed", None) + noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler s_in = x.new_ones([x.shape[0]]) for i in trange(len(sigmas) - 1, disable=disable): denoised = model(x, sigmas[i] * s_in, **extra_args) @@ -308,6 +325,39 @@ def sample_dpm_2_ancestral(model, x, sigmas, extra_args=None, callback=None, dis x = x + noise_sampler(sigmas[i], sigmas[i + 1]) * s_noise * sigma_up return x +@torch.no_grad() +def sample_dpm_2_ancestral_RF(model, x, sigmas, extra_args=None, callback=None, disable=None, eta=1., s_noise=1., noise_sampler=None): + """Ancestral sampling with DPM-Solver second-order steps.""" + extra_args = {} if extra_args is None else extra_args + seed = extra_args.get("seed", None) + noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler + s_in = x.new_ones([x.shape[0]]) + for i in trange(len(sigmas) - 1, disable=disable): + denoised = model(x, sigmas[i] * s_in, **extra_args) + downstep_ratio = 1 + (sigmas[i+1]/sigmas[i] - 1) * eta + sigma_down = sigmas[i+1] * downstep_ratio + alpha_ip1 = 1 - sigmas[i+1] + alpha_down = 1 - sigma_down + renoise_coeff = (sigmas[i+1]**2 - sigma_down**2*alpha_ip1**2/alpha_down**2)**0.5 + + if callback is not None: + callback({'x': x, 'i': i, 'sigma': sigmas[i], 'sigma_hat': sigmas[i], 'denoised': denoised}) + d = to_d(x, sigmas[i], denoised) + if sigma_down == 0: + # Euler method + dt = sigma_down - sigmas[i] + x = x + d * dt + else: + # DPM-Solver-2 + sigma_mid = sigmas[i].log().lerp(sigma_down.log(), 0.5).exp() + dt_1 = sigma_mid - sigmas[i] + dt_2 = sigma_down - sigmas[i] + x_2 = x + d * dt_1 + denoised_2 = model(x_2, sigma_mid * s_in, **extra_args) + d_2 = to_d(x_2, sigma_mid, denoised_2) + x = x + d_2 * dt_2 + x = (alpha_ip1/alpha_down) * x + noise_sampler(sigmas[i], sigmas[i + 1]) * s_noise * renoise_coeff + return x def linear_multistep_coeff(order, t, i, j): if order - 1 > i: @@ -553,7 +603,8 @@ def sample_dpmpp_2s_ancestral(model, x, sigmas, extra_args=None, callback=None, """Ancestral sampling with DPM-Solver++(2S) second-order steps.""" extra_args = {} if extra_args is None else extra_args - noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler + seed = extra_args.get("seed", None) + noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler s_in = x.new_ones([x.shape[0]]) sigma_fn = lambda t: t.neg().exp() t_fn = lambda sigma: sigma.log().neg() @@ -587,7 +638,8 @@ def sample_dpmpp_2s_ancestral(model, x, sigmas, extra_args=None, callback=None, def sample_dpmpp_2s_ancestral_RF(model, x, sigmas, extra_args=None, callback=None, disable=None, eta=1., s_noise=1., noise_sampler=None): """Ancestral sampling with DPM-Solver++(2S) second-order steps.""" extra_args = {} if extra_args is None else extra_args - noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler + seed = extra_args.get("seed", None) + noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler s_in = x.new_ones([x.shape[0]]) sigma_fn = lambda lbda: (lbda.exp() + 1) ** -1 lambda_fn = lambda sigma: ((1-sigma)/sigma).log() @@ -1221,7 +1273,8 @@ def sample_euler_cfg_pp(model, x, sigmas, extra_args=None, callback=None, disabl def sample_euler_ancestral_cfg_pp(model, x, sigmas, extra_args=None, callback=None, disable=None, eta=1., s_noise=1., noise_sampler=None): """Ancestral sampling with Euler method steps.""" extra_args = {} if extra_args is None else extra_args - noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler + seed = extra_args.get("seed", None) + noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler temp = [0] def post_cfg_function(args): @@ -1247,7 +1300,8 @@ def sample_euler_ancestral_cfg_pp(model, x, sigmas, extra_args=None, callback=No def sample_dpmpp_2s_ancestral_cfg_pp(model, x, sigmas, extra_args=None, callback=None, disable=None, eta=1., s_noise=1., noise_sampler=None): """Ancestral sampling with DPM-Solver++(2S) second-order steps.""" extra_args = {} if extra_args is None else extra_args - noise_sampler = default_noise_sampler(x) if noise_sampler is None else noise_sampler + seed = extra_args.get("seed", None) + noise_sampler = default_noise_sampler(x, seed=seed) if noise_sampler is None else noise_sampler temp = [0] def post_cfg_function(args): @@ -1298,7 +1352,7 @@ def sample_dpmpp_2m_cfg_pp(model, x, sigmas, extra_args=None, callback=None, dis nonlocal uncond_denoised uncond_denoised = args["uncond_denoised"] return args["denoised"] - + model_options = extra_args.get("model_options", {}).copy() extra_args["model_options"] = comfy.model_patcher.set_model_options_post_cfg_function(model_options, post_cfg_function, disable_cfg1_optimization=True) diff --git a/comfy/latent_formats.py b/comfy/latent_formats.py index a48f60c7..a50a70ae 100644 --- a/comfy/latent_formats.py +++ b/comfy/latent_formats.py @@ -3,6 +3,7 @@ import torch class LatentFormat: scale_factor = 1.0 latent_channels = 4 + latent_dimensions = 2 latent_rgb_factors = None latent_rgb_factors_bias = None taesd_decoder_name = None @@ -143,6 +144,7 @@ class SD3(LatentFormat): class StableAudio1(LatentFormat): latent_channels = 64 + latent_dimensions = 1 class Flux(SD3): latent_channels = 16 @@ -178,6 +180,7 @@ class Flux(SD3): class Mochi(LatentFormat): latent_channels = 12 + latent_dimensions = 3 def __init__(self): self.scale_factor = 1.0 @@ -190,7 +193,21 @@ class Mochi(LatentFormat): 0.9294154431013696, 1.3720942357788521, 0.881393668867029, 0.9168315692124348, 0.9185249279345552, 0.9274757570805041]).view(1, self.latent_channels, 1, 1, 1) - self.latent_rgb_factors = None #TODO + self.latent_rgb_factors =[ + [-0.0069, -0.0045, 0.0018], + [ 0.0154, -0.0692, -0.0274], + [ 0.0333, 0.0019, 0.0206], + [-0.1390, 0.0628, 0.1678], + [-0.0725, 0.0134, -0.1898], + [ 0.0074, -0.0270, -0.0209], + [-0.0176, -0.0277, -0.0221], + [ 0.5294, 0.5204, 0.3852], + [-0.0326, -0.0446, -0.0143], + [-0.0659, 0.0153, -0.0153], + [ 0.0185, -0.0217, 0.0014], + [-0.0396, -0.0495, -0.0281] + ] + self.latent_rgb_factors_bias = [-0.0940, -0.1418, -0.1453] self.taesd_decoder_name = None #TODO def process_in(self, latent): @@ -202,3 +219,166 @@ class Mochi(LatentFormat): latents_mean = self.latents_mean.to(latent.device, latent.dtype) latents_std = self.latents_std.to(latent.device, latent.dtype) return latent * latents_std / self.scale_factor + latents_mean + +class LTXV(LatentFormat): + latent_channels = 128 + latent_dimensions = 3 + + def __init__(self): + self.latent_rgb_factors = [ + [ 1.1202e-02, -6.3815e-04, -1.0021e-02], + [ 8.6031e-02, 6.5813e-02, 9.5409e-04], + [-1.2576e-02, -7.5734e-03, -4.0528e-03], + [ 9.4063e-03, -2.1688e-03, 2.6093e-03], + [ 3.7636e-03, 1.2765e-02, 9.1548e-03], + [ 2.1024e-02, -5.2973e-03, 3.4373e-03], + [-8.8896e-03, -1.9703e-02, -1.8761e-02], + [-1.3160e-02, -1.0523e-02, 1.9709e-03], + [-1.5152e-03, -6.9891e-03, -7.5810e-03], + [-1.7247e-03, 4.6560e-04, -3.3839e-03], + [ 1.3617e-02, 4.7077e-03, -2.0045e-03], + [ 1.0256e-02, 7.7318e-03, 1.3948e-02], + [-1.6108e-02, -6.2151e-03, 1.1561e-03], + [ 7.3407e-03, 1.5628e-02, 4.4865e-04], + [ 9.5357e-04, -2.9518e-03, -1.4760e-02], + [ 1.9143e-02, 1.0868e-02, 1.2264e-02], + [ 4.4575e-03, 3.6682e-05, -6.8508e-03], + [-4.5681e-04, 3.2570e-03, 7.7929e-03], + [ 3.3902e-02, 3.3405e-02, 3.7454e-02], + [-2.3001e-02, -2.4877e-03, -3.1033e-03], + [ 5.0265e-02, 3.8841e-02, 3.3539e-02], + [-4.1018e-03, -1.1095e-03, 1.5859e-03], + [-1.2689e-01, -1.3107e-01, -2.1005e-01], + [ 2.6276e-02, 1.4189e-02, -3.5963e-03], + [-4.8679e-03, 8.8486e-03, 7.8029e-03], + [-1.6610e-03, -4.8597e-03, -5.2060e-03], + [-2.1010e-03, 2.3610e-03, 9.3796e-03], + [-2.2482e-02, -2.1305e-02, -1.5087e-02], + [-1.5753e-02, -1.0646e-02, -6.5083e-03], + [-4.6975e-03, 5.0288e-03, -6.7390e-03], + [ 1.1951e-02, 2.0712e-02, 1.6191e-02], + [-6.3704e-03, -8.4827e-03, -9.5483e-03], + [ 7.2610e-03, -9.9326e-03, -2.2978e-02], + [-9.1904e-04, 6.2882e-03, 9.5720e-03], + [-3.7178e-02, -3.7123e-02, -5.6713e-02], + [-1.3373e-01, -1.0720e-01, -5.3801e-02], + [-5.3702e-03, 8.1256e-03, 8.8397e-03], + [-1.5247e-01, -2.1437e-01, -2.1843e-01], + [ 3.1441e-02, 7.0335e-03, -9.7541e-03], + [ 2.1528e-03, -8.9817e-03, -2.1023e-02], + [ 3.8461e-03, -5.8957e-03, -1.5014e-02], + [-4.3470e-03, -1.2940e-02, -1.5972e-02], + [-5.4781e-03, -1.0842e-02, -3.0204e-03], + [-6.5347e-03, 3.0806e-03, -1.0163e-02], + [-5.0414e-03, -7.1503e-03, -8.9686e-04], + [-8.5851e-03, -2.4351e-03, 1.0674e-03], + [-9.0016e-03, -9.6493e-03, 1.5692e-03], + [ 5.0914e-03, 1.2099e-02, 1.9968e-02], + [ 1.3758e-02, 1.1669e-02, 8.1958e-03], + [-1.0518e-02, -1.1575e-02, -4.1307e-03], + [-2.8410e-02, -3.1266e-02, -2.2149e-02], + [ 2.9336e-03, 3.6511e-02, 1.8717e-02], + [-1.6703e-02, -1.6696e-02, -4.4529e-03], + [ 4.8818e-02, 4.0063e-02, 8.7410e-03], + [-1.5066e-02, -5.7328e-04, 2.9785e-03], + [-1.7613e-02, -8.1034e-03, 1.3086e-02], + [-9.2633e-03, 1.0803e-02, -6.3489e-03], + [ 3.0851e-03, 4.7750e-04, 1.2347e-02], + [-2.2785e-02, -2.3043e-02, -2.6005e-02], + [-2.4787e-02, -1.5389e-02, -2.2104e-02], + [-2.3572e-02, 1.0544e-03, 1.2361e-02], + [-7.8915e-03, -1.2271e-03, -6.0968e-03], + [-1.1478e-02, -1.2543e-03, 6.2679e-03], + [-5.4229e-02, 2.6644e-02, 6.3394e-03], + [ 4.4216e-03, -7.3338e-03, -1.0464e-02], + [-4.5013e-03, 1.6082e-03, 1.4420e-02], + [ 1.3673e-02, 8.8877e-03, 4.1253e-03], + [-1.0145e-02, 9.0072e-03, 1.5695e-02], + [-5.6234e-03, 1.1847e-03, 8.1261e-03], + [-3.7171e-03, -5.3538e-03, 1.2590e-03], + [ 2.9476e-02, 2.1424e-02, 3.0424e-02], + [-3.4925e-02, -2.4340e-02, -2.5316e-02], + [-3.4127e-02, -2.2406e-02, -1.0589e-02], + [-1.7342e-02, -1.3249e-02, -1.0719e-02], + [-2.1478e-03, -8.6051e-03, -2.9878e-03], + [ 1.2089e-03, -4.2391e-03, -6.8569e-03], + [ 9.0411e-04, -6.6886e-03, -6.7547e-05], + [ 1.6048e-02, -1.0057e-02, -2.8929e-02], + [ 1.2290e-03, 1.0163e-02, 1.8861e-02], + [ 1.7264e-02, 2.7257e-04, 1.3785e-02], + [-1.3482e-02, -3.6427e-03, 6.7481e-04], + [ 4.6782e-03, -5.2423e-03, 2.4467e-03], + [-5.9113e-03, -6.2244e-03, -1.8162e-03], + [ 1.5496e-02, 1.4582e-02, 1.9514e-03], + [ 7.4958e-03, 1.5886e-03, -8.2305e-03], + [ 1.9086e-02, 1.6360e-03, -3.9674e-03], + [-5.7021e-03, -2.7307e-03, -4.1066e-03], + [ 1.7450e-03, 1.4602e-02, 2.5794e-02], + [-8.2788e-04, 2.2902e-03, 4.5161e-03], + [ 1.1632e-02, 8.9193e-03, -7.2813e-03], + [ 7.5721e-03, 2.6784e-03, 1.1393e-02], + [ 5.1939e-03, 3.6903e-03, 1.4049e-02], + [-1.8383e-02, -2.2529e-02, -2.4477e-02], + [ 5.8842e-04, -5.7874e-03, -1.4770e-02], + [-1.6125e-02, -8.6101e-03, -1.4533e-02], + [ 2.0540e-02, 2.0729e-02, 6.4338e-03], + [ 3.3587e-03, -1.1226e-02, -1.6444e-02], + [-1.4742e-03, -1.0489e-02, 1.7097e-03], + [ 2.8130e-02, 2.3546e-02, 3.2791e-02], + [-1.8532e-02, -1.2842e-02, -8.7756e-03], + [-8.0533e-03, -1.0771e-02, -1.7536e-02], + [-3.9009e-03, 1.6150e-02, 3.3359e-02], + [-7.4554e-03, -1.4154e-02, -6.1910e-03], + [ 3.4734e-03, -1.1370e-02, -1.0581e-02], + [ 1.1476e-02, 3.9281e-03, 2.8231e-03], + [ 7.1639e-03, -1.4741e-03, -3.8066e-03], + [ 2.2250e-03, -8.7552e-03, -9.5719e-03], + [ 2.4146e-02, 2.1696e-02, 2.8056e-02], + [-5.4365e-03, -2.4291e-02, -1.7802e-02], + [ 7.4263e-03, 1.0510e-02, 1.2705e-02], + [ 6.2669e-03, 6.2658e-03, 1.9211e-02], + [ 1.6378e-02, 9.4933e-03, 6.6971e-03], + [ 1.7173e-02, 2.3601e-02, 2.3296e-02], + [-1.4568e-02, -9.8279e-03, -1.1556e-02], + [ 1.4431e-02, 1.4430e-02, 6.6362e-03], + [-6.8230e-03, 1.8863e-02, 1.4555e-02], + [ 6.1156e-03, 3.4700e-03, -2.6662e-03], + [-2.6983e-03, -5.9402e-03, -9.2276e-03], + [ 1.0235e-02, 7.4173e-03, -7.6243e-03], + [-1.3255e-02, 1.9322e-02, -9.2153e-04], + [ 2.4222e-03, -4.8039e-03, -1.5759e-02], + [ 2.6244e-02, 2.5951e-02, 2.0249e-02], + [ 1.5711e-02, 1.8498e-02, 2.7407e-03], + [-2.1714e-03, 4.7214e-03, -2.2443e-02], + [-7.4747e-03, 7.4166e-03, 1.4430e-02], + [-8.3906e-03, -7.9776e-03, 9.7927e-03], + [ 3.8321e-02, 9.6622e-03, -1.9268e-02], + [-1.4605e-02, -6.7032e-03, 3.9675e-03] + ] + + self.latent_rgb_factors_bias = [-0.0571, -0.1657, -0.2512] + +class HunyuanVideo(LatentFormat): + latent_channels = 16 + latent_dimensions = 3 + scale_factor = 0.476986 + latent_rgb_factors = [ + [-0.0395, -0.0331, 0.0445], + [ 0.0696, 0.0795, 0.0518], + [ 0.0135, -0.0945, -0.0282], + [ 0.0108, -0.0250, -0.0765], + [-0.0209, 0.0032, 0.0224], + [-0.0804, -0.0254, -0.0639], + [-0.0991, 0.0271, -0.0669], + [-0.0646, -0.0422, -0.0400], + [-0.0696, -0.0595, -0.0894], + [-0.0799, -0.0208, -0.0375], + [ 0.1166, 0.1627, 0.0962], + [ 0.1165, 0.0432, 0.0407], + [-0.2315, -0.1920, -0.1355], + [-0.0270, 0.0401, -0.0821], + [-0.0616, -0.0997, -0.0727], + [ 0.0249, -0.0469, -0.1703] + ] + + latent_rgb_factors_bias = [ 0.0259, -0.0192, -0.0761] diff --git a/comfy/ldm/audio/autoencoder.py b/comfy/ldm/audio/autoencoder.py index 8123e66a..9e7e7c87 100644 --- a/comfy/ldm/audio/autoencoder.py +++ b/comfy/ldm/audio/autoencoder.py @@ -2,7 +2,7 @@ import torch from torch import nn -from typing import Literal, Dict, Any +from typing import Literal import math import comfy.ops ops = comfy.ops.disable_weight_init @@ -97,7 +97,7 @@ def get_activation(activation: Literal["elu", "snake", "none"], antialias=False, raise ValueError(f"Unknown activation {activation}") if antialias: - act = Activation1d(act) + act = Activation1d(act) # noqa: F821 Activation1d is not defined return act diff --git a/comfy/ldm/audio/dit.py b/comfy/ldm/audio/dit.py index 4d2185be..179c5b67 100644 --- a/comfy/ldm/audio/dit.py +++ b/comfy/ldm/audio/dit.py @@ -158,7 +158,6 @@ class RotaryEmbedding(nn.Module): def forward(self, t): # device = self.inv_freq.device device = t.device - dtype = t.dtype # t = t.to(torch.float32) @@ -170,7 +169,7 @@ class RotaryEmbedding(nn.Module): if self.scale is None: return freqs, 1. - power = (torch.arange(seq_len, device = device) - (seq_len // 2)) / self.scale_base + power = (torch.arange(seq_len, device = device) - (seq_len // 2)) / self.scale_base # noqa: F821 seq_len is not defined scale = comfy.ops.cast_to_input(self.scale, t) ** rearrange(power, 'n -> n 1') scale = torch.cat((scale, scale), dim = -1) @@ -229,9 +228,9 @@ class FeedForward(nn.Module): linear_in = GLU(dim, inner_dim, activation, dtype=dtype, device=device, operations=operations) else: linear_in = nn.Sequential( - Rearrange('b n d -> b d n') if use_conv else nn.Identity(), + rearrange('b n d -> b d n') if use_conv else nn.Identity(), operations.Linear(dim, inner_dim, bias = not no_bias, dtype=dtype, device=device) if not use_conv else operations.Conv1d(dim, inner_dim, conv_kernel_size, padding = (conv_kernel_size // 2), bias = not no_bias, dtype=dtype, device=device), - Rearrange('b n d -> b d n') if use_conv else nn.Identity(), + rearrange('b n d -> b d n') if use_conv else nn.Identity(), activation ) @@ -246,9 +245,9 @@ class FeedForward(nn.Module): self.ff = nn.Sequential( linear_in, - Rearrange('b d n -> b n d') if use_conv else nn.Identity(), + rearrange('b d n -> b n d') if use_conv else nn.Identity(), linear_out, - Rearrange('b n d -> b d n') if use_conv else nn.Identity(), + rearrange('b n d -> b d n') if use_conv else nn.Identity(), ) def forward(self, x): @@ -346,18 +345,13 @@ class Attention(nn.Module): # determine masking masks = [] - final_attn_mask = None # The mask that will be applied to the attention matrix, taking all masks into account if input_mask is not None: input_mask = rearrange(input_mask, 'b j -> b 1 1 j') masks.append(~input_mask) # Other masks will be added here later - - if len(masks) > 0: - final_attn_mask = ~or_reduce(masks) - - n, device = q.shape[-2], q.device + n = q.shape[-2] causal = self.causal if causal is None else causal @@ -612,7 +606,9 @@ class ContinuousTransformer(nn.Module): return_info = False, **kwargs ): + patches_replace = kwargs.get("transformer_options", {}).get("patches_replace", {}) batch, seq, device = *x.shape[:2], x.device + context = kwargs["context"] info = { "hidden_states": [], @@ -643,9 +639,19 @@ class ContinuousTransformer(nn.Module): if self.use_sinusoidal_emb or self.use_abs_pos_emb: x = x + self.pos_emb(x) + blocks_replace = patches_replace.get("dit", {}) # Iterate over the transformer layers - for layer in self.layers: - x = layer(x, rotary_pos_emb = rotary_pos_emb, global_cond=global_cond, **kwargs) + for i, layer in enumerate(self.layers): + if ("double_block", i) in blocks_replace: + def block_wrap(args): + out = {} + out["img"] = layer(args["img"], rotary_pos_emb=args["pe"], global_cond=args["vec"], context=args["txt"]) + return out + + out = blocks_replace[("double_block", i)]({"img": x, "txt": context, "vec": global_cond, "pe": rotary_pos_emb}, {"original_block": block_wrap}) + x = out["img"] + else: + x = layer(x, rotary_pos_emb = rotary_pos_emb, global_cond=global_cond, context=context) # x = checkpoint(layer, x, rotary_pos_emb = rotary_pos_emb, global_cond=global_cond, **kwargs) if return_info: @@ -874,7 +880,6 @@ class AudioDiffusionTransformer(nn.Module): mask=None, return_info=False, control=None, - transformer_options={}, **kwargs): return self._forward( x, diff --git a/comfy/ldm/audio/embedders.py b/comfy/ldm/audio/embedders.py index 82a3210c..20edb365 100644 --- a/comfy/ldm/audio/embedders.py +++ b/comfy/ldm/audio/embedders.py @@ -2,8 +2,8 @@ import torch import torch.nn as nn -from torch import Tensor, einsum -from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple, TypeVar, Union +from torch import Tensor +from typing import List, Union from einops import rearrange import math import comfy.ops diff --git a/comfy/ldm/aura/mmdit.py b/comfy/ldm/aura/mmdit.py index cd9a4218..1258ae11 100644 --- a/comfy/ldm/aura/mmdit.py +++ b/comfy/ldm/aura/mmdit.py @@ -147,7 +147,6 @@ class DoubleAttention(nn.Module): bsz, seqlen1, _ = c.shape bsz, seqlen2, _ = x.shape - seqlen = seqlen1 + seqlen2 cq, ck, cv = self.w1q(c), self.w1k(c), self.w1v(c) cq = cq.view(bsz, seqlen1, self.n_heads, self.head_dim) @@ -382,7 +381,6 @@ class MMDiT(nn.Module): pe_new = pe_as_2d.squeeze(0).permute(1, 2, 0).flatten(0, 1) self.positional_encoding.data = pe_new.unsqueeze(0).contiguous() self.h_max, self.w_max = target_dim - print("PE extended to", target_dim) def pe_selection_index_based_on_dim(self, h, w): h_p, w_p = h // self.patch_size, w // self.patch_size @@ -437,7 +435,8 @@ class MMDiT(nn.Module): pos_encoding = pos_encoding[:,from_h:from_h+h,from_w:from_w+w] return x + pos_encoding.reshape(1, -1, self.positional_encoding.shape[-1]) - def forward(self, x, timestep, context, **kwargs): + def forward(self, x, timestep, context, transformer_options={}, **kwargs): + patches_replace = transformer_options.get("patches_replace", {}) # patchify x, add PE b, c, h, w = x.shape @@ -458,15 +457,36 @@ class MMDiT(nn.Module): global_cond = self.t_embedder(t, x.dtype) # B, D + blocks_replace = patches_replace.get("dit", {}) if len(self.double_layers) > 0: - for layer in self.double_layers: - c, x = layer(c, x, global_cond, **kwargs) + for i, layer in enumerate(self.double_layers): + if ("double_block", i) in blocks_replace: + def block_wrap(args): + out = {} + out["txt"], out["img"] = layer(args["txt"], + args["img"], + args["vec"]) + return out + out = blocks_replace[("double_block", i)]({"img": x, "txt": c, "vec": global_cond}, {"original_block": block_wrap}) + c = out["txt"] + x = out["img"] + else: + c, x = layer(c, x, global_cond, **kwargs) if len(self.single_layers) > 0: c_len = c.size(1) cx = torch.cat([c, x], dim=1) - for layer in self.single_layers: - cx = layer(cx, global_cond, **kwargs) + for i, layer in enumerate(self.single_layers): + if ("single_block", i) in blocks_replace: + def block_wrap(args): + out = {} + out["img"] = layer(args["img"], args["vec"]) + return out + + out = blocks_replace[("single_block", i)]({"img": cx, "vec": global_cond}, {"original_block": block_wrap}) + cx = out["img"] + else: + cx = layer(cx, global_cond, **kwargs) x = cx[:, c_len:] diff --git a/comfy/ldm/cascade/controlnet.py b/comfy/ldm/cascade/controlnet.py index 7a52c3c2..90473481 100644 --- a/comfy/ldm/cascade/controlnet.py +++ b/comfy/ldm/cascade/controlnet.py @@ -16,7 +16,6 @@ along with this program. If not, see . """ -import torch import torchvision from torch import nn from .common import LayerNorm2d_op diff --git a/comfy/ldm/cascade/stage_b.py b/comfy/ldm/cascade/stage_b.py index 7c3d8fea..77383095 100644 --- a/comfy/ldm/cascade/stage_b.py +++ b/comfy/ldm/cascade/stage_b.py @@ -138,7 +138,7 @@ class StageB(nn.Module): # nn.init.normal_(self.pixels_mapper[2].weight, std=0.02) # conditionings # torch.nn.init.xavier_uniform_(self.embedding[1].weight, 0.02) # inputs # nn.init.constant_(self.clf[1].weight, 0) # outputs - # + # # # blocks # for level_block in self.down_blocks + self.up_blocks: # for block in level_block: @@ -148,7 +148,7 @@ class StageB(nn.Module): # for layer in block.modules(): # if isinstance(layer, nn.Linear): # nn.init.constant_(layer.weight, 0) - # + # # def _init_weights(self, m): # if isinstance(m, (nn.Conv2d, nn.Linear)): # torch.nn.init.xavier_uniform_(m.weight) diff --git a/comfy/ldm/cascade/stage_c.py b/comfy/ldm/cascade/stage_c.py index c85da1f0..b952d034 100644 --- a/comfy/ldm/cascade/stage_c.py +++ b/comfy/ldm/cascade/stage_c.py @@ -142,7 +142,7 @@ class StageC(nn.Module): # nn.init.normal_(self.clip_img_mapper.weight, std=0.02) # conditionings # torch.nn.init.xavier_uniform_(self.embedding[1].weight, 0.02) # inputs # nn.init.constant_(self.clf[1].weight, 0) # outputs - # + # # # blocks # for level_block in self.down_blocks + self.up_blocks: # for block in level_block: @@ -152,7 +152,7 @@ class StageC(nn.Module): # for layer in block.modules(): # if isinstance(layer, nn.Linear): # nn.init.constant_(layer.weight, 0) - # + # # def _init_weights(self, m): # if isinstance(m, (nn.Conv2d, nn.Linear)): # torch.nn.init.xavier_uniform_(m.weight) diff --git a/comfy/ldm/common_dit.py b/comfy/ldm/common_dit.py index cb6b7414..e0f3057f 100644 --- a/comfy/ldm/common_dit.py +++ b/comfy/ldm/common_dit.py @@ -2,11 +2,14 @@ import torch import comfy.ops def pad_to_patch_size(img, patch_size=(2, 2), padding_mode="circular"): - if padding_mode == "circular" and torch.jit.is_tracing() or torch.jit.is_scripting(): + if padding_mode == "circular" and (torch.jit.is_tracing() or torch.jit.is_scripting()): padding_mode = "reflect" - pad_h = (patch_size[0] - img.shape[-2] % patch_size[0]) % patch_size[0] - pad_w = (patch_size[1] - img.shape[-1] % patch_size[1]) % patch_size[1] - return torch.nn.functional.pad(img, (0, pad_w, 0, pad_h), mode=padding_mode) + + pad = () + for i in range(img.ndim - 2): + pad = (0, (patch_size[i] - img.shape[i + 2] % patch_size[i]) % patch_size[i]) + pad + + return torch.nn.functional.pad(img, pad, mode=padding_mode) try: rms_norm_torch = torch.nn.functional.rms_norm diff --git a/comfy/ldm/flux/controlnet.py b/comfy/ldm/flux/controlnet.py index c033dea5..5322c489 100644 --- a/comfy/ldm/flux/controlnet.py +++ b/comfy/ldm/flux/controlnet.py @@ -6,9 +6,7 @@ import math from torch import Tensor, nn from einops import rearrange, repeat -from .layers import (DoubleStreamBlock, EmbedND, LastLayer, - MLPEmbedder, SingleStreamBlock, - timestep_embedding) +from .layers import (timestep_embedding) from .model import Flux import comfy.ldm.common_dit diff --git a/comfy/ldm/flux/layers.py b/comfy/ldm/flux/layers.py index dabab3e3..8e055151 100644 --- a/comfy/ldm/flux/layers.py +++ b/comfy/ldm/flux/layers.py @@ -114,7 +114,7 @@ class Modulation(nn.Module): class DoubleStreamBlock(nn.Module): - def __init__(self, hidden_size: int, num_heads: int, mlp_ratio: float, qkv_bias: bool = False, dtype=None, device=None, operations=None): + def __init__(self, hidden_size: int, num_heads: int, mlp_ratio: float, qkv_bias: bool = False, flipped_img_txt=False, dtype=None, device=None, operations=None): super().__init__() mlp_hidden_dim = int(hidden_size * mlp_ratio) @@ -141,8 +141,9 @@ class DoubleStreamBlock(nn.Module): nn.GELU(approximate="tanh"), operations.Linear(mlp_hidden_dim, hidden_size, bias=True, dtype=dtype, device=device), ) + self.flipped_img_txt = flipped_img_txt - def forward(self, img: Tensor, txt: Tensor, vec: Tensor, pe: Tensor): + def forward(self, img: Tensor, txt: Tensor, vec: Tensor, pe: Tensor, attn_mask=None): img_mod1, img_mod2 = self.img_mod(vec) txt_mod1, txt_mod2 = self.txt_mod(vec) @@ -160,12 +161,22 @@ class DoubleStreamBlock(nn.Module): txt_q, txt_k, txt_v = txt_qkv.view(txt_qkv.shape[0], txt_qkv.shape[1], 3, self.num_heads, -1).permute(2, 0, 3, 1, 4) txt_q, txt_k = self.txt_attn.norm(txt_q, txt_k, txt_v) - # run actual attention - attn = attention(torch.cat((txt_q, img_q), dim=2), - torch.cat((txt_k, img_k), dim=2), - torch.cat((txt_v, img_v), dim=2), pe=pe) + if self.flipped_img_txt: + # run actual attention + attn = attention(torch.cat((img_q, txt_q), dim=2), + torch.cat((img_k, txt_k), dim=2), + torch.cat((img_v, txt_v), dim=2), + pe=pe, mask=attn_mask) - txt_attn, img_attn = attn[:, : txt.shape[1]], attn[:, txt.shape[1] :] + img_attn, txt_attn = attn[:, : img.shape[1]], attn[:, img.shape[1]:] + else: + # run actual attention + attn = attention(torch.cat((txt_q, img_q), dim=2), + torch.cat((txt_k, img_k), dim=2), + torch.cat((txt_v, img_v), dim=2), + pe=pe, mask=attn_mask) + + txt_attn, img_attn = attn[:, : txt.shape[1]], attn[:, txt.shape[1]:] # calculate the img bloks img = img + img_mod1.gate * self.img_attn.proj(img_attn) @@ -217,7 +228,7 @@ class SingleStreamBlock(nn.Module): self.mlp_act = nn.GELU(approximate="tanh") self.modulation = Modulation(hidden_size, double=False, dtype=dtype, device=device, operations=operations) - def forward(self, x: Tensor, vec: Tensor, pe: Tensor) -> Tensor: + def forward(self, x: Tensor, vec: Tensor, pe: Tensor, attn_mask=None) -> Tensor: mod, _ = self.modulation(vec) x_mod = (1 + mod.scale) * self.pre_norm(x) + mod.shift qkv, mlp = torch.split(self.linear1(x_mod), [3 * self.hidden_size, self.mlp_hidden_dim], dim=-1) @@ -226,7 +237,7 @@ class SingleStreamBlock(nn.Module): q, k = self.norm(q, k, v) # compute attention - attn = attention(q, k, v, pe=pe) + attn = attention(q, k, v, pe=pe, mask=attn_mask) # compute activation in mlp stream, cat again and run second linear layer output = self.linear2(torch.cat((attn, self.mlp_act(mlp)), 2)) x += mod.gate * output diff --git a/comfy/ldm/flux/math.py b/comfy/ldm/flux/math.py index 136ce2aa..b6549585 100644 --- a/comfy/ldm/flux/math.py +++ b/comfy/ldm/flux/math.py @@ -1,14 +1,15 @@ import torch from einops import rearrange from torch import Tensor + from comfy.ldm.modules.attention import optimized_attention import comfy.model_management -def attention(q: Tensor, k: Tensor, v: Tensor, pe: Tensor) -> Tensor: +def attention(q: Tensor, k: Tensor, v: Tensor, pe: Tensor, mask=None) -> Tensor: q, k = apply_rope(q, k, pe) heads = q.shape[1] - x = optimized_attention(q, k, v, heads, skip_reshape=True) + x = optimized_attention(q, k, v, heads, skip_reshape=True, mask=mask) return x @@ -33,3 +34,4 @@ def apply_rope(xq: Tensor, xk: Tensor, freqs_cis: Tensor): xq_out = freqs_cis[..., 0] * xq_[..., 0] + freqs_cis[..., 1] * xq_[..., 1] xk_out = freqs_cis[..., 0] * xk_[..., 0] + freqs_cis[..., 1] * xk_[..., 1] return xq_out.reshape(*xq.shape).type_as(xq), xk_out.reshape(*xk.shape).type_as(xk) + diff --git a/comfy/ldm/flux/model.py b/comfy/ldm/flux/model.py index b7d8a692..dead87de 100644 --- a/comfy/ldm/flux/model.py +++ b/comfy/ldm/flux/model.py @@ -4,6 +4,8 @@ from dataclasses import dataclass import torch from torch import Tensor, nn +from einops import rearrange, repeat +import comfy.ldm.common_dit from .layers import ( DoubleStreamBlock, @@ -14,12 +16,10 @@ from .layers import ( timestep_embedding, ) -from einops import rearrange, repeat -import comfy.ldm.common_dit - @dataclass class FluxParams: in_channels: int + out_channels: int vec_in_dim: int context_in_dim: int hidden_size: int @@ -29,6 +29,7 @@ class FluxParams: depth_single_blocks: int axes_dim: list theta: int + patch_size: int qkv_bias: bool guidance_embed: bool @@ -43,8 +44,9 @@ class Flux(nn.Module): self.dtype = dtype params = FluxParams(**kwargs) self.params = params - self.in_channels = params.in_channels * 2 * 2 - self.out_channels = self.in_channels + self.patch_size = params.patch_size + self.in_channels = params.in_channels * params.patch_size * params.patch_size + self.out_channels = params.out_channels * params.patch_size * params.patch_size if params.hidden_size % params.num_heads != 0: raise ValueError( f"Hidden size {params.hidden_size} must be divisible by num_heads {params.num_heads}" @@ -95,8 +97,11 @@ class Flux(nn.Module): timesteps: Tensor, y: Tensor, guidance: Tensor = None, - control=None, + control = None, + transformer_options={}, + attn_mask: Tensor = None, ) -> Tensor: + patches_replace = transformer_options.get("patches_replace", {}) if img.ndim != 3 or txt.ndim != 3: raise ValueError("Input img and txt tensors must have 3 dimensions.") @@ -114,8 +119,32 @@ class Flux(nn.Module): ids = torch.cat((txt_ids, img_ids), dim=1) pe = self.pe_embedder(ids) + blocks_replace = patches_replace.get("dit", {}) for i, block in enumerate(self.double_blocks): - img, txt = block(img=img, txt=txt, vec=vec, pe=pe) + if ("double_block", i) in blocks_replace: + def block_wrap(args): + out = {} + out["img"], out["txt"] = block(img=args["img"], + txt=args["txt"], + vec=args["vec"], + pe=args["pe"], + attn_mask=args.get("attn_mask")) + return out + + out = blocks_replace[("double_block", i)]({"img": img, + "txt": txt, + "vec": vec, + "pe": pe, + "attn_mask": attn_mask}, + {"original_block": block_wrap}) + txt = out["txt"] + img = out["img"] + else: + img, txt = block(img=img, + txt=txt, + vec=vec, + pe=pe, + attn_mask=attn_mask) if control is not None: # Controlnet control_i = control.get("input") @@ -127,7 +156,23 @@ class Flux(nn.Module): img = torch.cat((txt, img), 1) for i, block in enumerate(self.single_blocks): - img = block(img, vec=vec, pe=pe) + if ("single_block", i) in blocks_replace: + def block_wrap(args): + out = {} + out["img"] = block(args["img"], + vec=args["vec"], + pe=args["pe"], + attn_mask=args.get("attn_mask")) + return out + + out = blocks_replace[("single_block", i)]({"img": img, + "vec": vec, + "pe": pe, + "attn_mask": attn_mask}, + {"original_block": block_wrap}) + img = out["img"] + else: + img = block(img, vec=vec, pe=pe, attn_mask=attn_mask) if control is not None: # Controlnet control_o = control.get("output") @@ -141,9 +186,9 @@ class Flux(nn.Module): img = self.final_layer(img, vec) # (N, T, patch_size ** 2 * out_channels) return img - def forward(self, x, timestep, context, y, guidance, control=None, **kwargs): + def forward(self, x, timestep, context, y, guidance, control=None, transformer_options={}, **kwargs): bs, c, h, w = x.shape - patch_size = 2 + patch_size = self.patch_size x = comfy.ldm.common_dit.pad_to_patch_size(x, (patch_size, patch_size)) img = rearrange(x, "b c (h ph) (w pw) -> b (h w) (c ph pw)", ph=patch_size, pw=patch_size) @@ -151,10 +196,10 @@ class Flux(nn.Module): h_len = ((h + (patch_size // 2)) // patch_size) w_len = ((w + (patch_size // 2)) // patch_size) img_ids = torch.zeros((h_len, w_len, 3), device=x.device, dtype=x.dtype) - img_ids[:, :, 1] = torch.linspace(0, h_len - 1, steps=h_len, device=x.device, dtype=x.dtype).unsqueeze(1) - img_ids[:, :, 2] = torch.linspace(0, w_len - 1, steps=w_len, device=x.device, dtype=x.dtype).unsqueeze(0) + img_ids[:, :, 1] = img_ids[:, :, 1] + torch.linspace(0, h_len - 1, steps=h_len, device=x.device, dtype=x.dtype).unsqueeze(1) + img_ids[:, :, 2] = img_ids[:, :, 2] + torch.linspace(0, w_len - 1, steps=w_len, device=x.device, dtype=x.dtype).unsqueeze(0) img_ids = repeat(img_ids, "h w c -> b (h w) c", b=bs) txt_ids = torch.zeros((bs, context.shape[1], 3), device=x.device, dtype=x.dtype) - out = self.forward_orig(img, img_ids, context, txt_ids, timestep, y, guidance, control) + out = self.forward_orig(img, img_ids, context, txt_ids, timestep, y, guidance, control, transformer_options, attn_mask=kwargs.get("attention_mask", None)) return rearrange(out, "b (h w) (c ph pw) -> b c (h ph) (w pw)", h=h_len, w=w_len, ph=2, pw=2)[:,:,:h,:w] diff --git a/comfy/ldm/flux/redux.py b/comfy/ldm/flux/redux.py new file mode 100644 index 00000000..527e8316 --- /dev/null +++ b/comfy/ldm/flux/redux.py @@ -0,0 +1,25 @@ +import torch +import comfy.ops + +ops = comfy.ops.manual_cast + +class ReduxImageEncoder(torch.nn.Module): + def __init__( + self, + redux_dim: int = 1152, + txt_in_features: int = 4096, + device=None, + dtype=None, + ) -> None: + super().__init__() + + self.redux_dim = redux_dim + self.device = device + self.dtype = dtype + + self.redux_up = ops.Linear(redux_dim, txt_in_features * 3, dtype=dtype) + self.redux_down = ops.Linear(txt_in_features * 3, txt_in_features, dtype=dtype) + + def forward(self, sigclip_embeds) -> torch.Tensor: + projected_x = self.redux_down(torch.nn.functional.silu(self.redux_up(sigclip_embeds))) + return projected_x diff --git a/comfy/ldm/genmo/joint_model/asymm_models_joint.py b/comfy/ldm/genmo/joint_model/asymm_models_joint.py index c36a0006..2c46c24b 100644 --- a/comfy/ldm/genmo/joint_model/asymm_models_joint.py +++ b/comfy/ldm/genmo/joint_model/asymm_models_joint.py @@ -461,8 +461,6 @@ class AsymmDiTJoint(nn.Module): pH, pW = H // self.patch_size, W // self.patch_size x = self.embed_x(x) # (B, N, D), where N = T * H * W / patch_size ** 2 assert x.ndim == 3 - B = x.size(0) - pH, pW = H // self.patch_size, W // self.patch_size N = T * pH * pW @@ -494,8 +492,9 @@ class AsymmDiTJoint(nn.Module): packed_indices: Dict[str, torch.Tensor] = None, rope_cos: torch.Tensor = None, rope_sin: torch.Tensor = None, - control=None, **kwargs + control=None, transformer_options={}, **kwargs ): + patches_replace = transformer_options.get("patches_replace", {}) y_feat = context y_mask = attention_mask sigma = timestep @@ -515,15 +514,32 @@ class AsymmDiTJoint(nn.Module): ) del y_mask + blocks_replace = patches_replace.get("dit", {}) for i, block in enumerate(self.blocks): - x, y_feat = block( - x, - c, - y_feat, - rope_cos=rope_cos, - rope_sin=rope_sin, - crop_y=num_tokens, - ) # (B, M, D), (B, L, D) + if ("double_block", i) in blocks_replace: + def block_wrap(args): + out = {} + out["img"], out["txt"] = block( + args["img"], + args["vec"], + args["txt"], + rope_cos=args["rope_cos"], + rope_sin=args["rope_sin"], + crop_y=args["num_tokens"] + ) + return out + out = blocks_replace[("double_block", i)]({"img": x, "txt": y_feat, "vec": c, "rope_cos": rope_cos, "rope_sin": rope_sin, "num_tokens": num_tokens}, {"original_block": block_wrap}) + y_feat = out["txt"] + x = out["img"] + else: + x, y_feat = block( + x, + c, + y_feat, + rope_cos=rope_cos, + rope_sin=rope_sin, + crop_y=num_tokens, + ) # (B, M, D), (B, L, D) del y_feat # Final layers don't use dense text features. x = self.final_layer(x, c) # (B, M, patch_size ** 2 * out_channels) diff --git a/comfy/ldm/genmo/joint_model/utils.py b/comfy/ldm/genmo/joint_model/utils.py index 41190242..1b399d5d 100644 --- a/comfy/ldm/genmo/joint_model/utils.py +++ b/comfy/ldm/genmo/joint_model/utils.py @@ -1,7 +1,7 @@ #original code from https://github.com/genmoai/models under apache 2.0 license #adapted to ComfyUI -from typing import Optional, Tuple +from typing import Optional import torch import torch.nn as nn diff --git a/comfy/ldm/genmo/vae/model.py b/comfy/ldm/genmo/vae/model.py index e44c08a4..1bde0c1e 100644 --- a/comfy/ldm/genmo/vae/model.py +++ b/comfy/ldm/genmo/vae/model.py @@ -1,13 +1,17 @@ #original code from https://github.com/genmoai/models under apache 2.0 license #adapted to ComfyUI -from typing import Callable, List, Optional, Tuple, Union +from typing import List, Optional, Tuple, Union +from functools import partial +import math import torch import torch.nn as nn import torch.nn.functional as F from einops import rearrange +from comfy.ldm.modules.attention import optimized_attention + import comfy.ops ops = comfy.ops.disable_weight_init @@ -158,8 +162,10 @@ class ResBlock(nn.Module): *, affine: bool = True, attn_block: Optional[nn.Module] = None, - padding_mode: str = "replicate", causal: bool = True, + prune_bottleneck: bool = False, + padding_mode: str, + bias: bool = True, ): super().__init__() self.channels = channels @@ -170,23 +176,23 @@ class ResBlock(nn.Module): nn.SiLU(inplace=True), PConv3d( in_channels=channels, - out_channels=channels, + out_channels=channels // 2 if prune_bottleneck else channels, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding_mode=padding_mode, - bias=True, - # causal=causal, + bias=bias, + causal=causal, ), norm_fn(channels, affine=affine), nn.SiLU(inplace=True), PConv3d( - in_channels=channels, + in_channels=channels // 2 if prune_bottleneck else channels, out_channels=channels, kernel_size=(3, 3, 3), stride=(1, 1, 1), padding_mode=padding_mode, - bias=True, - # causal=causal, + bias=bias, + causal=causal, ), ) @@ -206,6 +212,81 @@ class ResBlock(nn.Module): return self.attn_block(x) +class Attention(nn.Module): + def __init__( + self, + dim: int, + head_dim: int = 32, + qkv_bias: bool = False, + out_bias: bool = True, + qk_norm: bool = True, + ) -> None: + super().__init__() + self.head_dim = head_dim + self.num_heads = dim // head_dim + self.qk_norm = qk_norm + + self.qkv = nn.Linear(dim, 3 * dim, bias=qkv_bias) + self.out = nn.Linear(dim, dim, bias=out_bias) + + def forward( + self, + x: torch.Tensor, + ) -> torch.Tensor: + """Compute temporal self-attention. + + Args: + x: Input tensor. Shape: [B, C, T, H, W]. + chunk_size: Chunk size for large tensors. + + Returns: + x: Output tensor. Shape: [B, C, T, H, W]. + """ + B, _, T, H, W = x.shape + + if T == 1: + # No attention for single frame. + x = x.movedim(1, -1) # [B, C, T, H, W] -> [B, T, H, W, C] + qkv = self.qkv(x) + _, _, x = qkv.chunk(3, dim=-1) # Throw away queries and keys. + x = self.out(x) + return x.movedim(-1, 1) # [B, T, H, W, C] -> [B, C, T, H, W] + + # 1D temporal attention. + x = rearrange(x, "B C t h w -> (B h w) t C") + qkv = self.qkv(x) + + # Input: qkv with shape [B, t, 3 * num_heads * head_dim] + # Output: x with shape [B, num_heads, t, head_dim] + q, k, v = qkv.view(qkv.shape[0], qkv.shape[1], 3, self.num_heads, self.head_dim).transpose(1, 3).unbind(2) + + if self.qk_norm: + q = F.normalize(q, p=2, dim=-1) + k = F.normalize(k, p=2, dim=-1) + + x = optimized_attention(q, k, v, self.num_heads, skip_reshape=True) + + assert x.size(0) == q.size(0) + + x = self.out(x) + x = rearrange(x, "(B h w) t C -> B C t h w", B=B, h=H, w=W) + return x + + +class AttentionBlock(nn.Module): + def __init__( + self, + dim: int, + **attn_kwargs, + ) -> None: + super().__init__() + self.norm = norm_fn(dim) + self.attn = Attention(dim, **attn_kwargs) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + return x + self.attn(self.norm(x)) + + class CausalUpsampleBlock(nn.Module): def __init__( self, @@ -244,14 +325,9 @@ class CausalUpsampleBlock(nn.Module): return x -def block_fn(channels, *, has_attention: bool = False, **block_kwargs): - assert has_attention is False #NOTE: if this is ever true add back the attention code. - - attn_block = None #AttentionBlock(channels) if has_attention else None - - return ResBlock( - channels, affine=True, attn_block=attn_block, **block_kwargs - ) +def block_fn(channels, *, affine: bool = True, has_attention: bool = False, **block_kwargs): + attn_block = AttentionBlock(channels) if has_attention else None + return ResBlock(channels, affine=affine, attn_block=attn_block, **block_kwargs) class DownsampleBlock(nn.Module): @@ -288,8 +364,9 @@ class DownsampleBlock(nn.Module): out_channels=out_channels, kernel_size=(temporal_reduction, spatial_reduction, spatial_reduction), stride=(temporal_reduction, spatial_reduction, spatial_reduction), + # First layer in each block always uses replicate padding padding_mode="replicate", - bias=True, + bias=block_kwargs["bias"], ) ) @@ -382,7 +459,7 @@ class Decoder(nn.Module): blocks = [] first_block = [ - nn.Conv3d(latent_dim, ch[-1], kernel_size=(1, 1, 1)) + ops.Conv3d(latent_dim, ch[-1], kernel_size=(1, 1, 1)) ] # Input layer. # First set of blocks preserve channel count. for _ in range(num_res_blocks[-1]): @@ -452,11 +529,165 @@ class Decoder(nn.Module): return self.output_proj(x).contiguous() +class LatentDistribution: + def __init__(self, mean: torch.Tensor, logvar: torch.Tensor): + """Initialize latent distribution. + + Args: + mean: Mean of the distribution. Shape: [B, C, T, H, W]. + logvar: Logarithm of variance of the distribution. Shape: [B, C, T, H, W]. + """ + assert mean.shape == logvar.shape + self.mean = mean + self.logvar = logvar + + def sample(self, temperature=1.0, generator: torch.Generator = None, noise=None): + if temperature == 0.0: + return self.mean + + if noise is None: + noise = torch.randn(self.mean.shape, device=self.mean.device, dtype=self.mean.dtype, generator=generator) + else: + assert noise.device == self.mean.device + noise = noise.to(self.mean.dtype) + + if temperature != 1.0: + raise NotImplementedError(f"Temperature {temperature} is not supported.") + + # Just Gaussian sample with no scaling of variance. + return noise * torch.exp(self.logvar * 0.5) + self.mean + + def mode(self): + return self.mean + +class Encoder(nn.Module): + def __init__( + self, + *, + in_channels: int, + base_channels: int, + channel_multipliers: List[int], + num_res_blocks: List[int], + latent_dim: int, + temporal_reductions: List[int], + spatial_reductions: List[int], + prune_bottlenecks: List[bool], + has_attentions: List[bool], + affine: bool = True, + bias: bool = True, + input_is_conv_1x1: bool = False, + padding_mode: str, + ): + super().__init__() + self.temporal_reductions = temporal_reductions + self.spatial_reductions = spatial_reductions + self.base_channels = base_channels + self.channel_multipliers = channel_multipliers + self.num_res_blocks = num_res_blocks + self.latent_dim = latent_dim + + self.fourier_features = FourierFeatures() + ch = [mult * base_channels for mult in channel_multipliers] + num_down_blocks = len(ch) - 1 + assert len(num_res_blocks) == num_down_blocks + 2 + + layers = ( + [ops.Conv3d(in_channels, ch[0], kernel_size=(1, 1, 1), bias=True)] + if not input_is_conv_1x1 + else [Conv1x1(in_channels, ch[0])] + ) + + assert len(prune_bottlenecks) == num_down_blocks + 2 + assert len(has_attentions) == num_down_blocks + 2 + block = partial(block_fn, padding_mode=padding_mode, affine=affine, bias=bias) + + for _ in range(num_res_blocks[0]): + layers.append(block(ch[0], has_attention=has_attentions[0], prune_bottleneck=prune_bottlenecks[0])) + prune_bottlenecks = prune_bottlenecks[1:] + has_attentions = has_attentions[1:] + + assert len(temporal_reductions) == len(spatial_reductions) == len(ch) - 1 + for i in range(num_down_blocks): + layer = DownsampleBlock( + ch[i], + ch[i + 1], + num_res_blocks=num_res_blocks[i + 1], + temporal_reduction=temporal_reductions[i], + spatial_reduction=spatial_reductions[i], + prune_bottleneck=prune_bottlenecks[i], + has_attention=has_attentions[i], + affine=affine, + bias=bias, + padding_mode=padding_mode, + ) + + layers.append(layer) + + # Additional blocks. + for _ in range(num_res_blocks[-1]): + layers.append(block(ch[-1], has_attention=has_attentions[-1], prune_bottleneck=prune_bottlenecks[-1])) + + self.layers = nn.Sequential(*layers) + + # Output layers. + self.output_norm = norm_fn(ch[-1]) + self.output_proj = Conv1x1(ch[-1], 2 * latent_dim, bias=False) + + @property + def temporal_downsample(self): + return math.prod(self.temporal_reductions) + + @property + def spatial_downsample(self): + return math.prod(self.spatial_reductions) + + def forward(self, x) -> LatentDistribution: + """Forward pass. + + Args: + x: Input video tensor. Shape: [B, C, T, H, W]. Scaled to [-1, 1] + + Returns: + means: Latent tensor. Shape: [B, latent_dim, t, h, w]. Scaled [-1, 1]. + h = H // 8, w = W // 8, t - 1 = (T - 1) // 6 + logvar: Shape: [B, latent_dim, t, h, w]. + """ + assert x.ndim == 5, f"Expected 5D input, got {x.shape}" + x = self.fourier_features(x) + + x = self.layers(x) + + x = self.output_norm(x) + x = F.silu(x, inplace=True) + x = self.output_proj(x) + + means, logvar = torch.chunk(x, 2, dim=1) + + assert means.ndim == 5 + assert logvar.shape == means.shape + assert means.size(1) == self.latent_dim + + return LatentDistribution(means, logvar) + class VideoVAE(nn.Module): def __init__(self): super().__init__() - self.encoder = None #TODO once the model releases + self.encoder = Encoder( + in_channels=15, + base_channels=64, + channel_multipliers=[1, 2, 4, 6], + num_res_blocks=[3, 3, 4, 6, 3], + latent_dim=12, + temporal_reductions=[1, 2, 3], + spatial_reductions=[2, 2, 2], + prune_bottlenecks=[False, False, False, False, False], + has_attentions=[False, True, True, True, True], + affine=True, + bias=True, + input_is_conv_1x1=True, + padding_mode="replicate" + ) self.decoder = Decoder( out_channels=3, base_channels=128, @@ -474,7 +705,7 @@ class VideoVAE(nn.Module): ) def encode(self, x): - return self.encoder(x) + return self.encoder(x).mode() def decode(self, x): return self.decoder(x) diff --git a/comfy/ldm/hunyuan_video/model.py b/comfy/ldm/hunyuan_video/model.py new file mode 100644 index 00000000..d6d85408 --- /dev/null +++ b/comfy/ldm/hunyuan_video/model.py @@ -0,0 +1,330 @@ +#Based on Flux code because of weird hunyuan video code license. + +import torch +import comfy.ldm.flux.layers +import comfy.ldm.modules.diffusionmodules.mmdit +from comfy.ldm.modules.attention import optimized_attention + + +from dataclasses import dataclass +from einops import repeat + +from torch import Tensor, nn + +from comfy.ldm.flux.layers import ( + DoubleStreamBlock, + EmbedND, + LastLayer, + MLPEmbedder, + SingleStreamBlock, + timestep_embedding +) + +import comfy.ldm.common_dit + + +@dataclass +class HunyuanVideoParams: + in_channels: int + out_channels: int + vec_in_dim: int + context_in_dim: int + hidden_size: int + mlp_ratio: float + num_heads: int + depth: int + depth_single_blocks: int + axes_dim: list + theta: int + patch_size: list + qkv_bias: bool + guidance_embed: bool + + +class SelfAttentionRef(nn.Module): + def __init__(self, dim: int, qkv_bias: bool = False, dtype=None, device=None, operations=None): + super().__init__() + self.qkv = operations.Linear(dim, dim * 3, bias=qkv_bias, dtype=dtype, device=device) + self.proj = operations.Linear(dim, dim, dtype=dtype, device=device) + + +class TokenRefinerBlock(nn.Module): + def __init__( + self, + hidden_size, + heads, + dtype=None, + device=None, + operations=None + ): + super().__init__() + self.heads = heads + mlp_hidden_dim = hidden_size * 4 + + self.adaLN_modulation = nn.Sequential( + nn.SiLU(), + operations.Linear(hidden_size, 2 * hidden_size, bias=True, dtype=dtype, device=device), + ) + + self.norm1 = operations.LayerNorm(hidden_size, elementwise_affine=True, eps=1e-6, dtype=dtype, device=device) + self.self_attn = SelfAttentionRef(hidden_size, True, dtype=dtype, device=device, operations=operations) + + self.norm2 = operations.LayerNorm(hidden_size, elementwise_affine=True, eps=1e-6, dtype=dtype, device=device) + + self.mlp = nn.Sequential( + operations.Linear(hidden_size, mlp_hidden_dim, bias=True, dtype=dtype, device=device), + nn.SiLU(), + operations.Linear(mlp_hidden_dim, hidden_size, bias=True, dtype=dtype, device=device), + ) + + def forward(self, x, c, mask): + mod1, mod2 = self.adaLN_modulation(c).chunk(2, dim=1) + + norm_x = self.norm1(x) + qkv = self.self_attn.qkv(norm_x) + q, k, v = qkv.reshape(qkv.shape[0], qkv.shape[1], 3, self.heads, -1).permute(2, 0, 3, 1, 4) + attn = optimized_attention(q, k, v, self.heads, mask=mask, skip_reshape=True) + + x = x + self.self_attn.proj(attn) * mod1.unsqueeze(1) + x = x + self.mlp(self.norm2(x)) * mod2.unsqueeze(1) + return x + + +class IndividualTokenRefiner(nn.Module): + def __init__( + self, + hidden_size, + heads, + num_blocks, + dtype=None, + device=None, + operations=None + ): + super().__init__() + self.blocks = nn.ModuleList( + [ + TokenRefinerBlock( + hidden_size=hidden_size, + heads=heads, + dtype=dtype, + device=device, + operations=operations + ) + for _ in range(num_blocks) + ] + ) + + def forward(self, x, c, mask): + m = None + if mask is not None: + m = mask.view(mask.shape[0], 1, 1, mask.shape[1]).repeat(1, 1, mask.shape[1], 1) + m = m + m.transpose(2, 3) + + for block in self.blocks: + x = block(x, c, m) + return x + + + +class TokenRefiner(nn.Module): + def __init__( + self, + text_dim, + hidden_size, + heads, + num_blocks, + dtype=None, + device=None, + operations=None + ): + super().__init__() + + self.input_embedder = operations.Linear(text_dim, hidden_size, bias=True, dtype=dtype, device=device) + self.t_embedder = MLPEmbedder(256, hidden_size, dtype=dtype, device=device, operations=operations) + self.c_embedder = MLPEmbedder(text_dim, hidden_size, dtype=dtype, device=device, operations=operations) + self.individual_token_refiner = IndividualTokenRefiner(hidden_size, heads, num_blocks, dtype=dtype, device=device, operations=operations) + + def forward( + self, + x, + timesteps, + mask, + ): + t = self.t_embedder(timestep_embedding(timesteps, 256, time_factor=1.0).to(x.dtype)) + # m = mask.float().unsqueeze(-1) + # c = (x.float() * m).sum(dim=1) / m.sum(dim=1) #TODO: the following works when the x.shape is the same length as the tokens but might break otherwise + c = x.sum(dim=1) / x.shape[1] + + c = t + self.c_embedder(c.to(x.dtype)) + x = self.input_embedder(x) + x = self.individual_token_refiner(x, c, mask) + return x + +class HunyuanVideo(nn.Module): + """ + Transformer model for flow matching on sequences. + """ + + def __init__(self, image_model=None, final_layer=True, dtype=None, device=None, operations=None, **kwargs): + super().__init__() + self.dtype = dtype + params = HunyuanVideoParams(**kwargs) + self.params = params + self.patch_size = params.patch_size + self.in_channels = params.in_channels + self.out_channels = params.out_channels + if params.hidden_size % params.num_heads != 0: + raise ValueError( + f"Hidden size {params.hidden_size} must be divisible by num_heads {params.num_heads}" + ) + pe_dim = params.hidden_size // params.num_heads + if sum(params.axes_dim) != pe_dim: + raise ValueError(f"Got {params.axes_dim} but expected positional dim {pe_dim}") + self.hidden_size = params.hidden_size + self.num_heads = params.num_heads + self.pe_embedder = EmbedND(dim=pe_dim, theta=params.theta, axes_dim=params.axes_dim) + + self.img_in = comfy.ldm.modules.diffusionmodules.mmdit.PatchEmbed(None, self.patch_size, self.in_channels, self.hidden_size, conv3d=True, dtype=dtype, device=device, operations=operations) + self.time_in = MLPEmbedder(in_dim=256, hidden_dim=self.hidden_size, dtype=dtype, device=device, operations=operations) + self.vector_in = MLPEmbedder(params.vec_in_dim, self.hidden_size, dtype=dtype, device=device, operations=operations) + self.guidance_in = ( + MLPEmbedder(in_dim=256, hidden_dim=self.hidden_size, dtype=dtype, device=device, operations=operations) if params.guidance_embed else nn.Identity() + ) + + self.txt_in = TokenRefiner(params.context_in_dim, self.hidden_size, self.num_heads, 2, dtype=dtype, device=device, operations=operations) + + self.double_blocks = nn.ModuleList( + [ + DoubleStreamBlock( + self.hidden_size, + self.num_heads, + mlp_ratio=params.mlp_ratio, + qkv_bias=params.qkv_bias, + flipped_img_txt=True, + dtype=dtype, device=device, operations=operations + ) + for _ in range(params.depth) + ] + ) + + self.single_blocks = nn.ModuleList( + [ + SingleStreamBlock(self.hidden_size, self.num_heads, mlp_ratio=params.mlp_ratio, dtype=dtype, device=device, operations=operations) + for _ in range(params.depth_single_blocks) + ] + ) + + if final_layer: + self.final_layer = LastLayer(self.hidden_size, self.patch_size[-1], self.out_channels, dtype=dtype, device=device, operations=operations) + + def forward_orig( + self, + img: Tensor, + img_ids: Tensor, + txt: Tensor, + txt_ids: Tensor, + txt_mask: Tensor, + timesteps: Tensor, + y: Tensor, + guidance: Tensor = None, + control=None, + transformer_options={}, + ) -> Tensor: + patches_replace = transformer_options.get("patches_replace", {}) + + initial_shape = list(img.shape) + # running on sequences img + img = self.img_in(img) + vec = self.time_in(timestep_embedding(timesteps, 256, time_factor=1.0).to(img.dtype)) + + vec = vec + self.vector_in(y[:, :self.params.vec_in_dim]) + + if self.params.guidance_embed: + if guidance is None: + raise ValueError("Didn't get guidance strength for guidance distilled model.") + vec = vec + self.guidance_in(timestep_embedding(guidance, 256).to(img.dtype)) + + if txt_mask is not None and not torch.is_floating_point(txt_mask): + txt_mask = (txt_mask - 1).to(img.dtype) * torch.finfo(img.dtype).max + + txt = self.txt_in(txt, timesteps, txt_mask) + + ids = torch.cat((img_ids, txt_ids), dim=1) + pe = self.pe_embedder(ids) + + img_len = img.shape[1] + if txt_mask is not None: + attn_mask_len = img_len + txt.shape[1] + attn_mask = torch.zeros((1, 1, attn_mask_len), dtype=img.dtype, device=img.device) + attn_mask[:, 0, img_len:] = txt_mask + else: + attn_mask = None + + blocks_replace = patches_replace.get("dit", {}) + for i, block in enumerate(self.double_blocks): + if ("double_block", i) in blocks_replace: + def block_wrap(args): + out = {} + out["img"], out["txt"] = block(img=args["img"], txt=args["txt"], vec=args["vec"], pe=args["pe"], attn_mask=args["attention_mask"]) + return out + + out = blocks_replace[("double_block", i)]({"img": img, "txt": txt, "vec": vec, "pe": pe, "attention_mask": attn_mask}, {"original_block": block_wrap}) + txt = out["txt"] + img = out["img"] + else: + img, txt = block(img=img, txt=txt, vec=vec, pe=pe, attn_mask=attn_mask) + + if control is not None: # Controlnet + control_i = control.get("input") + if i < len(control_i): + add = control_i[i] + if add is not None: + img += add + + img = torch.cat((img, txt), 1) + + for i, block in enumerate(self.single_blocks): + if ("single_block", i) in blocks_replace: + def block_wrap(args): + out = {} + out["img"] = block(args["img"], vec=args["vec"], pe=args["pe"], attn_mask=args["attention_mask"]) + return out + + out = blocks_replace[("single_block", i)]({"img": img, "vec": vec, "pe": pe, "attention_mask": attn_mask}, {"original_block": block_wrap}) + img = out["img"] + else: + img = block(img, vec=vec, pe=pe, attn_mask=attn_mask) + + if control is not None: # Controlnet + control_o = control.get("output") + if i < len(control_o): + add = control_o[i] + if add is not None: + img[:, : img_len] += add + + img = img[:, : img_len] + + img = self.final_layer(img, vec) # (N, T, patch_size ** 2 * out_channels) + + shape = initial_shape[-3:] + for i in range(len(shape)): + shape[i] = shape[i] // self.patch_size[i] + img = img.reshape([img.shape[0]] + shape + [self.out_channels] + self.patch_size) + img = img.permute(0, 4, 1, 5, 2, 6, 3, 7) + img = img.reshape(initial_shape) + return img + + def forward(self, x, timestep, context, y, guidance, attention_mask=None, control=None, transformer_options={}, **kwargs): + bs, c, t, h, w = x.shape + patch_size = self.patch_size + t_len = ((t + (patch_size[0] // 2)) // patch_size[0]) + h_len = ((h + (patch_size[1] // 2)) // patch_size[1]) + w_len = ((w + (patch_size[2] // 2)) // patch_size[2]) + img_ids = torch.zeros((t_len, h_len, w_len, 3), device=x.device, dtype=x.dtype) + img_ids[:, :, :, 0] = img_ids[:, :, :, 0] + torch.linspace(0, t_len - 1, steps=t_len, device=x.device, dtype=x.dtype).reshape(-1, 1, 1) + img_ids[:, :, :, 1] = img_ids[:, :, :, 1] + torch.linspace(0, h_len - 1, steps=h_len, device=x.device, dtype=x.dtype).reshape(1, -1, 1) + img_ids[:, :, :, 2] = img_ids[:, :, :, 2] + torch.linspace(0, w_len - 1, steps=w_len, device=x.device, dtype=x.dtype).reshape(1, 1, -1) + img_ids = repeat(img_ids, "t h w c -> b (t h w) c", b=bs) + txt_ids = torch.zeros((bs, context.shape[1], 3), device=x.device, dtype=x.dtype) + out = self.forward_orig(x, img_ids, context, txt_ids, attention_mask, timestep, y, guidance, control, transformer_options) + return out diff --git a/comfy/ldm/hydit/attn_layers.py b/comfy/ldm/hydit/attn_layers.py index e2801f71..3ca25a5d 100644 --- a/comfy/ldm/hydit/attn_layers.py +++ b/comfy/ldm/hydit/attn_layers.py @@ -159,7 +159,7 @@ class CrossAttention(nn.Module): q = q.transpose(-2, -3).contiguous() # q -> B, L1, H, C - B, H, L1, C k = k.transpose(-2, -3).contiguous() # k -> B, L2, H, C - B, H, C, L2 - v = v.transpose(-2, -3).contiguous() + v = v.transpose(-2, -3).contiguous() context = optimized_attention(q, k, v, self.num_heads, skip_reshape=True, attn_precision=self.attn_precision) diff --git a/comfy/ldm/hydit/controlnet.py b/comfy/ldm/hydit/controlnet.py index cd71fca3..31a6bff9 100644 --- a/comfy/ldm/hydit/controlnet.py +++ b/comfy/ldm/hydit/controlnet.py @@ -1,24 +1,17 @@ -from typing import Any, Optional import torch import torch.nn as nn -import torch.nn.functional as F -from torch.utils import checkpoint from comfy.ldm.modules.diffusionmodules.mmdit import ( - Mlp, TimestepEmbedder, PatchEmbed, - RMSNorm, ) -from comfy.ldm.modules.diffusionmodules.util import timestep_embedding from .poolers import AttentionPool import comfy.latent_formats from .models import HunYuanDiTBlock, calc_rope -from .posemb_layers import get_2d_rotary_pos_embed, get_fill_resize_and_crop class HunYuanControlNet(nn.Module): @@ -171,9 +164,6 @@ class HunYuanControlNet(nn.Module): ), ) - # Image embedding - num_patches = self.x_embedder.num_patches - # HUnYuanDiT Blocks self.blocks = nn.ModuleList( [ diff --git a/comfy/ldm/hydit/models.py b/comfy/ldm/hydit/models.py index 44e806cb..359f6a96 100644 --- a/comfy/ldm/hydit/models.py +++ b/comfy/ldm/hydit/models.py @@ -1,8 +1,6 @@ -from typing import Any import torch import torch.nn as nn -import torch.nn.functional as F import comfy.ops from comfy.ldm.modules.diffusionmodules.mmdit import Mlp, TimestepEmbedder, PatchEmbed, RMSNorm @@ -250,9 +248,6 @@ class HunYuanDiT(nn.Module): operations.Linear(hidden_size * 4, hidden_size, bias=True, dtype=dtype, device=device), ) - # Image embedding - num_patches = self.x_embedder.num_patches - # HUnYuanDiT Blocks self.blocks = nn.ModuleList([ HunYuanDiTBlock(hidden_size=hidden_size, @@ -287,7 +282,7 @@ class HunYuanDiT(nn.Module): style=None, return_dict=False, control=None, - transformer_options=None, + transformer_options={}, ): """ Forward pass of the encoder. @@ -315,8 +310,7 @@ class HunYuanDiT(nn.Module): return_dict: bool Whether to return a dictionary. """ - #import pdb - #pdb.set_trace() + patches_replace = transformer_options.get("patches_replace", {}) encoder_hidden_states = context text_states = encoder_hidden_states # 2,77,1024 text_states_t5 = encoder_hidden_states_t5 # 2,256,2048 @@ -364,6 +358,8 @@ class HunYuanDiT(nn.Module): # Concatenate all extra vectors c = t + self.extra_embedder(extra_vec) # [B, D] + blocks_replace = patches_replace.get("dit", {}) + controls = None if control: controls = control.get("output", None) @@ -375,9 +371,20 @@ class HunYuanDiT(nn.Module): skip = skips.pop() + controls.pop().to(dtype=x.dtype) else: skip = skips.pop() - x = block(x, c, text_states, freqs_cis_img, skip) # (N, L, D) else: - x = block(x, c, text_states, freqs_cis_img) # (N, L, D) + skip = None + + if ("double_block", layer) in blocks_replace: + def block_wrap(args): + out = {} + out["img"] = block(args["img"], args["vec"], args["txt"], args["pe"], args["skip"]) + return out + + out = blocks_replace[("double_block", layer)]({"img": x, "txt": text_states, "vec": c, "pe": freqs_cis_img, "skip": skip}, {"original_block": block_wrap}) + x = out["img"] + else: + x = block(x, c, text_states, freqs_cis_img, skip) # (N, L, D) + if layer < (self.depth // 2 - 1): skips.append(x) diff --git a/comfy/ldm/hydit/poolers.py b/comfy/ldm/hydit/poolers.py index f5e5b406..c1b878ed 100644 --- a/comfy/ldm/hydit/poolers.py +++ b/comfy/ldm/hydit/poolers.py @@ -1,6 +1,5 @@ import torch import torch.nn as nn -import torch.nn.functional as F from comfy.ldm.modules.attention import optimized_attention import comfy.ops diff --git a/comfy/ldm/lightricks/model.py b/comfy/ldm/lightricks/model.py new file mode 100644 index 00000000..eeeeaea0 --- /dev/null +++ b/comfy/ldm/lightricks/model.py @@ -0,0 +1,527 @@ +import torch +from torch import nn +import comfy.ldm.modules.attention +from comfy.ldm.genmo.joint_model.layers import RMSNorm +import comfy.ldm.common_dit +from einops import rearrange +import math +from typing import Dict, Optional, Tuple + +from .symmetric_patchifier import SymmetricPatchifier + + +def get_timestep_embedding( + timesteps: torch.Tensor, + embedding_dim: int, + flip_sin_to_cos: bool = False, + downscale_freq_shift: float = 1, + scale: float = 1, + max_period: int = 10000, +): + """ + This matches the implementation in Denoising Diffusion Probabilistic Models: Create sinusoidal timestep embeddings. + + Args + timesteps (torch.Tensor): + a 1-D Tensor of N indices, one per batch element. These may be fractional. + embedding_dim (int): + the dimension of the output. + flip_sin_to_cos (bool): + Whether the embedding order should be `cos, sin` (if True) or `sin, cos` (if False) + downscale_freq_shift (float): + Controls the delta between frequencies between dimensions + scale (float): + Scaling factor applied to the embeddings. + max_period (int): + Controls the maximum frequency of the embeddings + Returns + torch.Tensor: an [N x dim] Tensor of positional embeddings. + """ + assert len(timesteps.shape) == 1, "Timesteps should be a 1d-array" + + half_dim = embedding_dim // 2 + exponent = -math.log(max_period) * torch.arange( + start=0, end=half_dim, dtype=torch.float32, device=timesteps.device + ) + exponent = exponent / (half_dim - downscale_freq_shift) + + emb = torch.exp(exponent) + emb = timesteps[:, None].float() * emb[None, :] + + # scale embeddings + emb = scale * emb + + # concat sine and cosine embeddings + emb = torch.cat([torch.sin(emb), torch.cos(emb)], dim=-1) + + # flip sine and cosine embeddings + if flip_sin_to_cos: + emb = torch.cat([emb[:, half_dim:], emb[:, :half_dim]], dim=-1) + + # zero pad + if embedding_dim % 2 == 1: + emb = torch.nn.functional.pad(emb, (0, 1, 0, 0)) + return emb + + +class TimestepEmbedding(nn.Module): + def __init__( + self, + in_channels: int, + time_embed_dim: int, + act_fn: str = "silu", + out_dim: int = None, + post_act_fn: Optional[str] = None, + cond_proj_dim=None, + sample_proj_bias=True, + dtype=None, device=None, operations=None, + ): + super().__init__() + + self.linear_1 = operations.Linear(in_channels, time_embed_dim, sample_proj_bias, dtype=dtype, device=device) + + if cond_proj_dim is not None: + self.cond_proj = operations.Linear(cond_proj_dim, in_channels, bias=False, dtype=dtype, device=device) + else: + self.cond_proj = None + + self.act = nn.SiLU() + + if out_dim is not None: + time_embed_dim_out = out_dim + else: + time_embed_dim_out = time_embed_dim + self.linear_2 = operations.Linear(time_embed_dim, time_embed_dim_out, sample_proj_bias, dtype=dtype, device=device) + + if post_act_fn is None: + self.post_act = None + # else: + # self.post_act = get_activation(post_act_fn) + + def forward(self, sample, condition=None): + if condition is not None: + sample = sample + self.cond_proj(condition) + sample = self.linear_1(sample) + + if self.act is not None: + sample = self.act(sample) + + sample = self.linear_2(sample) + + if self.post_act is not None: + sample = self.post_act(sample) + return sample + + +class Timesteps(nn.Module): + def __init__(self, num_channels: int, flip_sin_to_cos: bool, downscale_freq_shift: float, scale: int = 1): + super().__init__() + self.num_channels = num_channels + self.flip_sin_to_cos = flip_sin_to_cos + self.downscale_freq_shift = downscale_freq_shift + self.scale = scale + + def forward(self, timesteps): + t_emb = get_timestep_embedding( + timesteps, + self.num_channels, + flip_sin_to_cos=self.flip_sin_to_cos, + downscale_freq_shift=self.downscale_freq_shift, + scale=self.scale, + ) + return t_emb + + +class PixArtAlphaCombinedTimestepSizeEmbeddings(nn.Module): + """ + For PixArt-Alpha. + + Reference: + https://github.com/PixArt-alpha/PixArt-alpha/blob/0f55e922376d8b797edd44d25d0e7464b260dcab/diffusion/model/nets/PixArtMS.py#L164C9-L168C29 + """ + + def __init__(self, embedding_dim, size_emb_dim, use_additional_conditions: bool = False, dtype=None, device=None, operations=None): + super().__init__() + + self.outdim = size_emb_dim + self.time_proj = Timesteps(num_channels=256, flip_sin_to_cos=True, downscale_freq_shift=0) + self.timestep_embedder = TimestepEmbedding(in_channels=256, time_embed_dim=embedding_dim, dtype=dtype, device=device, operations=operations) + + def forward(self, timestep, resolution, aspect_ratio, batch_size, hidden_dtype): + timesteps_proj = self.time_proj(timestep) + timesteps_emb = self.timestep_embedder(timesteps_proj.to(dtype=hidden_dtype)) # (N, D) + return timesteps_emb + + +class AdaLayerNormSingle(nn.Module): + r""" + Norm layer adaptive layer norm single (adaLN-single). + + As proposed in PixArt-Alpha (see: https://arxiv.org/abs/2310.00426; Section 2.3). + + Parameters: + embedding_dim (`int`): The size of each embedding vector. + use_additional_conditions (`bool`): To use additional conditions for normalization or not. + """ + + def __init__(self, embedding_dim: int, use_additional_conditions: bool = False, dtype=None, device=None, operations=None): + super().__init__() + + self.emb = PixArtAlphaCombinedTimestepSizeEmbeddings( + embedding_dim, size_emb_dim=embedding_dim // 3, use_additional_conditions=use_additional_conditions, dtype=dtype, device=device, operations=operations + ) + + self.silu = nn.SiLU() + self.linear = operations.Linear(embedding_dim, 6 * embedding_dim, bias=True, dtype=dtype, device=device) + + def forward( + self, + timestep: torch.Tensor, + added_cond_kwargs: Optional[Dict[str, torch.Tensor]] = None, + batch_size: Optional[int] = None, + hidden_dtype: Optional[torch.dtype] = None, + ) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor, torch.Tensor]: + # No modulation happening here. + added_cond_kwargs = added_cond_kwargs or {"resolution": None, "aspect_ratio": None} + embedded_timestep = self.emb(timestep, **added_cond_kwargs, batch_size=batch_size, hidden_dtype=hidden_dtype) + return self.linear(self.silu(embedded_timestep)), embedded_timestep + +class PixArtAlphaTextProjection(nn.Module): + """ + Projects caption embeddings. Also handles dropout for classifier-free guidance. + + Adapted from https://github.com/PixArt-alpha/PixArt-alpha/blob/master/diffusion/model/nets/PixArt_blocks.py + """ + + def __init__(self, in_features, hidden_size, out_features=None, act_fn="gelu_tanh", dtype=None, device=None, operations=None): + super().__init__() + if out_features is None: + out_features = hidden_size + self.linear_1 = operations.Linear(in_features=in_features, out_features=hidden_size, bias=True, dtype=dtype, device=device) + if act_fn == "gelu_tanh": + self.act_1 = nn.GELU(approximate="tanh") + elif act_fn == "silu": + self.act_1 = nn.SiLU() + else: + raise ValueError(f"Unknown activation function: {act_fn}") + self.linear_2 = operations.Linear(in_features=hidden_size, out_features=out_features, bias=True, dtype=dtype, device=device) + + def forward(self, caption): + hidden_states = self.linear_1(caption) + hidden_states = self.act_1(hidden_states) + hidden_states = self.linear_2(hidden_states) + return hidden_states + + +class GELU_approx(nn.Module): + def __init__(self, dim_in, dim_out, dtype=None, device=None, operations=None): + super().__init__() + self.proj = operations.Linear(dim_in, dim_out, dtype=dtype, device=device) + + def forward(self, x): + return torch.nn.functional.gelu(self.proj(x), approximate="tanh") + + +class FeedForward(nn.Module): + def __init__(self, dim, dim_out, mult=4, glu=False, dropout=0., dtype=None, device=None, operations=None): + super().__init__() + inner_dim = int(dim * mult) + project_in = GELU_approx(dim, inner_dim, dtype=dtype, device=device, operations=operations) + + self.net = nn.Sequential( + project_in, + nn.Dropout(dropout), + operations.Linear(inner_dim, dim_out, dtype=dtype, device=device) + ) + + def forward(self, x): + return self.net(x) + + +def apply_rotary_emb(input_tensor, freqs_cis): #TODO: remove duplicate funcs and pick the best/fastest one + cos_freqs = freqs_cis[0] + sin_freqs = freqs_cis[1] + + t_dup = rearrange(input_tensor, "... (d r) -> ... d r", r=2) + t1, t2 = t_dup.unbind(dim=-1) + t_dup = torch.stack((-t2, t1), dim=-1) + input_tensor_rot = rearrange(t_dup, "... d r -> ... (d r)") + + out = input_tensor * cos_freqs + input_tensor_rot * sin_freqs + + return out + + +class CrossAttention(nn.Module): + def __init__(self, query_dim, context_dim=None, heads=8, dim_head=64, dropout=0., attn_precision=None, dtype=None, device=None, operations=None): + super().__init__() + inner_dim = dim_head * heads + context_dim = query_dim if context_dim is None else context_dim + self.attn_precision = attn_precision + + self.heads = heads + self.dim_head = dim_head + + self.q_norm = RMSNorm(inner_dim, dtype=dtype, device=device) + self.k_norm = RMSNorm(inner_dim, dtype=dtype, device=device) + + self.to_q = operations.Linear(query_dim, inner_dim, bias=True, dtype=dtype, device=device) + self.to_k = operations.Linear(context_dim, inner_dim, bias=True, dtype=dtype, device=device) + self.to_v = operations.Linear(context_dim, inner_dim, bias=True, dtype=dtype, device=device) + + self.to_out = nn.Sequential(operations.Linear(inner_dim, query_dim, dtype=dtype, device=device), nn.Dropout(dropout)) + + def forward(self, x, context=None, mask=None, pe=None): + q = self.to_q(x) + context = x if context is None else context + k = self.to_k(context) + v = self.to_v(context) + + q = self.q_norm(q) + k = self.k_norm(k) + + if pe is not None: + q = apply_rotary_emb(q, pe) + k = apply_rotary_emb(k, pe) + + if mask is None: + out = comfy.ldm.modules.attention.optimized_attention(q, k, v, self.heads, attn_precision=self.attn_precision) + else: + out = comfy.ldm.modules.attention.optimized_attention_masked(q, k, v, self.heads, mask, attn_precision=self.attn_precision) + return self.to_out(out) + + +class BasicTransformerBlock(nn.Module): + def __init__(self, dim, n_heads, d_head, context_dim=None, attn_precision=None, dtype=None, device=None, operations=None): + super().__init__() + + self.attn_precision = attn_precision + self.attn1 = CrossAttention(query_dim=dim, heads=n_heads, dim_head=d_head, context_dim=None, attn_precision=self.attn_precision, dtype=dtype, device=device, operations=operations) + self.ff = FeedForward(dim, dim_out=dim, glu=True, dtype=dtype, device=device, operations=operations) + + self.attn2 = CrossAttention(query_dim=dim, context_dim=context_dim, heads=n_heads, dim_head=d_head, attn_precision=self.attn_precision, dtype=dtype, device=device, operations=operations) + + self.scale_shift_table = nn.Parameter(torch.empty(6, dim, device=device, dtype=dtype)) + + def forward(self, x, context=None, attention_mask=None, timestep=None, pe=None): + shift_msa, scale_msa, gate_msa, shift_mlp, scale_mlp, gate_mlp = (self.scale_shift_table[None, None].to(device=x.device, dtype=x.dtype) + timestep.reshape(x.shape[0], timestep.shape[1], self.scale_shift_table.shape[0], -1)).unbind(dim=2) + + x += self.attn1(comfy.ldm.common_dit.rms_norm(x) * (1 + scale_msa) + shift_msa, pe=pe) * gate_msa + + x += self.attn2(x, context=context, mask=attention_mask) + + y = comfy.ldm.common_dit.rms_norm(x) * (1 + scale_mlp) + shift_mlp + x += self.ff(y) * gate_mlp + + return x + +def get_fractional_positions(indices_grid, max_pos): + fractional_positions = torch.stack( + [ + indices_grid[:, i] / max_pos[i] + for i in range(3) + ], + dim=-1, + ) + return fractional_positions + + +def precompute_freqs_cis(indices_grid, dim, out_dtype, theta=10000.0, max_pos=[20, 2048, 2048]): + dtype = torch.float32 #self.dtype + + fractional_positions = get_fractional_positions(indices_grid, max_pos) + + start = 1 + end = theta + device = fractional_positions.device + + indices = theta ** ( + torch.linspace( + math.log(start, theta), + math.log(end, theta), + dim // 6, + device=device, + dtype=dtype, + ) + ) + indices = indices.to(dtype=dtype) + + indices = indices * math.pi / 2 + + freqs = ( + (indices * (fractional_positions.unsqueeze(-1) * 2 - 1)) + .transpose(-1, -2) + .flatten(2) + ) + + cos_freq = freqs.cos().repeat_interleave(2, dim=-1) + sin_freq = freqs.sin().repeat_interleave(2, dim=-1) + if dim % 6 != 0: + cos_padding = torch.ones_like(cos_freq[:, :, : dim % 6]) + sin_padding = torch.zeros_like(cos_freq[:, :, : dim % 6]) + cos_freq = torch.cat([cos_padding, cos_freq], dim=-1) + sin_freq = torch.cat([sin_padding, sin_freq], dim=-1) + return cos_freq.to(out_dtype), sin_freq.to(out_dtype) + + +class LTXVModel(torch.nn.Module): + def __init__(self, + in_channels=128, + cross_attention_dim=2048, + attention_head_dim=64, + num_attention_heads=32, + + caption_channels=4096, + num_layers=28, + + + positional_embedding_theta=10000.0, + positional_embedding_max_pos=[20, 2048, 2048], + dtype=None, device=None, operations=None, **kwargs): + super().__init__() + self.generator = None + self.dtype = dtype + self.out_channels = in_channels + self.inner_dim = num_attention_heads * attention_head_dim + + self.patchify_proj = operations.Linear(in_channels, self.inner_dim, bias=True, dtype=dtype, device=device) + + self.adaln_single = AdaLayerNormSingle( + self.inner_dim, use_additional_conditions=False, dtype=dtype, device=device, operations=operations + ) + + # self.adaln_single.linear = operations.Linear(self.inner_dim, 4 * self.inner_dim, bias=True, dtype=dtype, device=device) + + self.caption_projection = PixArtAlphaTextProjection( + in_features=caption_channels, hidden_size=self.inner_dim, dtype=dtype, device=device, operations=operations + ) + + self.transformer_blocks = nn.ModuleList( + [ + BasicTransformerBlock( + self.inner_dim, + num_attention_heads, + attention_head_dim, + context_dim=cross_attention_dim, + # attn_precision=attn_precision, + dtype=dtype, device=device, operations=operations + ) + for d in range(num_layers) + ] + ) + + self.scale_shift_table = nn.Parameter(torch.empty(2, self.inner_dim, dtype=dtype, device=device)) + self.norm_out = operations.LayerNorm(self.inner_dim, elementwise_affine=False, eps=1e-6, dtype=dtype, device=device) + self.proj_out = operations.Linear(self.inner_dim, self.out_channels, dtype=dtype, device=device) + + self.patchifier = SymmetricPatchifier(1) + + def forward(self, x, timestep, context, attention_mask, frame_rate=25, guiding_latent=None, guiding_latent_noise_scale=0, transformer_options={}, **kwargs): + patches_replace = transformer_options.get("patches_replace", {}) + + indices_grid = self.patchifier.get_grid( + orig_num_frames=x.shape[2], + orig_height=x.shape[3], + orig_width=x.shape[4], + batch_size=x.shape[0], + scale_grid=((1 / frame_rate) * 8, 32, 32), + device=x.device, + ) + + if guiding_latent is not None: + ts = torch.ones([x.shape[0], 1, x.shape[2], x.shape[3], x.shape[4]], device=x.device, dtype=x.dtype) + input_ts = timestep.view([timestep.shape[0]] + [1] * (x.ndim - 1)) + ts *= input_ts + ts[:, :, 0] = guiding_latent_noise_scale * (input_ts[:, :, 0] ** 2) + timestep = self.patchifier.patchify(ts) + input_x = x.clone() + x[:, :, 0] = guiding_latent[:, :, 0] + if guiding_latent_noise_scale > 0: + if self.generator is None: + self.generator = torch.Generator(device=x.device).manual_seed(42) + elif self.generator.device != x.device: + self.generator = torch.Generator(device=x.device).set_state(self.generator.get_state()) + + noise_shape = [guiding_latent.shape[0], guiding_latent.shape[1], 1, guiding_latent.shape[3], guiding_latent.shape[4]] + scale = guiding_latent_noise_scale * (input_ts ** 2) + guiding_noise = scale * torch.randn(size=noise_shape, device=x.device, generator=self.generator) + + x[:, :, 0] = guiding_noise[:, :, 0] + x[:, :, 0] * (1.0 - scale[:, :, 0]) + + + orig_shape = list(x.shape) + + x = self.patchifier.patchify(x) + + x = self.patchify_proj(x) + timestep = timestep * 1000.0 + + attention_mask = 1.0 - attention_mask.to(x.dtype).reshape((attention_mask.shape[0], 1, -1, attention_mask.shape[-1])) + attention_mask = attention_mask.masked_fill(attention_mask.to(torch.bool), float("-inf")) # not sure about this + # attention_mask = (context != 0).any(dim=2).to(dtype=x.dtype) + + pe = precompute_freqs_cis(indices_grid, dim=self.inner_dim, out_dtype=x.dtype) + + batch_size = x.shape[0] + timestep, embedded_timestep = self.adaln_single( + timestep.flatten(), + {"resolution": None, "aspect_ratio": None}, + batch_size=batch_size, + hidden_dtype=x.dtype, + ) + # Second dimension is 1 or number of tokens (if timestep_per_token) + timestep = timestep.view(batch_size, -1, timestep.shape[-1]) + embedded_timestep = embedded_timestep.view( + batch_size, -1, embedded_timestep.shape[-1] + ) + + # 2. Blocks + if self.caption_projection is not None: + batch_size = x.shape[0] + context = self.caption_projection(context) + context = context.view( + batch_size, -1, x.shape[-1] + ) + + blocks_replace = patches_replace.get("dit", {}) + for i, block in enumerate(self.transformer_blocks): + if ("double_block", i) in blocks_replace: + def block_wrap(args): + out = {} + out["img"] = block(args["img"], context=args["txt"], attention_mask=args["attention_mask"], timestep=args["vec"], pe=args["pe"]) + return out + + out = blocks_replace[("double_block", i)]({"img": x, "txt": context, "attention_mask": attention_mask, "vec": timestep, "pe": pe}, {"original_block": block_wrap}) + x = out["img"] + else: + x = block( + x, + context=context, + attention_mask=attention_mask, + timestep=timestep, + pe=pe + ) + + # 3. Output + scale_shift_values = ( + self.scale_shift_table[None, None].to(device=x.device, dtype=x.dtype) + embedded_timestep[:, :, None] + ) + shift, scale = scale_shift_values[:, :, 0], scale_shift_values[:, :, 1] + x = self.norm_out(x) + # Modulation + x = x * (1 + scale) + shift + x = self.proj_out(x) + + x = self.patchifier.unpatchify( + latents=x, + output_height=orig_shape[3], + output_width=orig_shape[4], + output_num_frames=orig_shape[2], + out_channels=orig_shape[1] // math.prod(self.patchifier.patch_size), + ) + + if guiding_latent is not None: + x[:, :, 0] = (input_x[:, :, 0] - guiding_latent[:, :, 0]) / input_ts[:, :, 0] + + # print("res", x) + return x diff --git a/comfy/ldm/lightricks/symmetric_patchifier.py b/comfy/ldm/lightricks/symmetric_patchifier.py new file mode 100644 index 00000000..c58dfb20 --- /dev/null +++ b/comfy/ldm/lightricks/symmetric_patchifier.py @@ -0,0 +1,105 @@ +from abc import ABC, abstractmethod +from typing import Tuple + +import torch +from einops import rearrange +from torch import Tensor + + +def append_dims(x: torch.Tensor, target_dims: int) -> torch.Tensor: + """Appends dimensions to the end of a tensor until it has target_dims dimensions.""" + dims_to_append = target_dims - x.ndim + if dims_to_append < 0: + raise ValueError( + f"input has {x.ndim} dims but target_dims is {target_dims}, which is less" + ) + elif dims_to_append == 0: + return x + return x[(...,) + (None,) * dims_to_append] + + +class Patchifier(ABC): + def __init__(self, patch_size: int): + super().__init__() + self._patch_size = (1, patch_size, patch_size) + + @abstractmethod + def patchify( + self, latents: Tensor, frame_rates: Tensor, scale_grid: bool + ) -> Tuple[Tensor, Tensor]: + pass + + @abstractmethod + def unpatchify( + self, + latents: Tensor, + output_height: int, + output_width: int, + output_num_frames: int, + out_channels: int, + ) -> Tuple[Tensor, Tensor]: + pass + + @property + def patch_size(self): + return self._patch_size + + def get_grid( + self, orig_num_frames, orig_height, orig_width, batch_size, scale_grid, device + ): + f = orig_num_frames // self._patch_size[0] + h = orig_height // self._patch_size[1] + w = orig_width // self._patch_size[2] + grid_h = torch.arange(h, dtype=torch.float32, device=device) + grid_w = torch.arange(w, dtype=torch.float32, device=device) + grid_f = torch.arange(f, dtype=torch.float32, device=device) + grid = torch.meshgrid(grid_f, grid_h, grid_w, indexing='ij') + grid = torch.stack(grid, dim=0) + grid = grid.unsqueeze(0).repeat(batch_size, 1, 1, 1, 1) + + if scale_grid is not None: + for i in range(3): + if isinstance(scale_grid[i], Tensor): + scale = append_dims(scale_grid[i], grid.ndim - 1) + else: + scale = scale_grid[i] + grid[:, i, ...] = grid[:, i, ...] * scale * self._patch_size[i] + + grid = rearrange(grid, "b c f h w -> b c (f h w)", b=batch_size) + return grid + + +class SymmetricPatchifier(Patchifier): + def patchify( + self, + latents: Tensor, + ) -> Tuple[Tensor, Tensor]: + latents = rearrange( + latents, + "b c (f p1) (h p2) (w p3) -> b (f h w) (c p1 p2 p3)", + p1=self._patch_size[0], + p2=self._patch_size[1], + p3=self._patch_size[2], + ) + return latents + + def unpatchify( + self, + latents: Tensor, + output_height: int, + output_width: int, + output_num_frames: int, + out_channels: int, + ) -> Tuple[Tensor, Tensor]: + output_height = output_height // self._patch_size[1] + output_width = output_width // self._patch_size[2] + latents = rearrange( + latents, + "b (f h w) (c p q) -> b c f (h p) (w q) ", + f=output_num_frames, + h=output_height, + w=output_width, + p=self._patch_size[1], + q=self._patch_size[2], + ) + return latents diff --git a/comfy/ldm/lightricks/vae/causal_conv3d.py b/comfy/ldm/lightricks/vae/causal_conv3d.py new file mode 100644 index 00000000..c572e7e8 --- /dev/null +++ b/comfy/ldm/lightricks/vae/causal_conv3d.py @@ -0,0 +1,64 @@ +from typing import Tuple, Union + +import torch +import torch.nn as nn +import comfy.ops +ops = comfy.ops.disable_weight_init + + +class CausalConv3d(nn.Module): + def __init__( + self, + in_channels, + out_channels, + kernel_size: int = 3, + stride: Union[int, Tuple[int]] = 1, + dilation: int = 1, + groups: int = 1, + **kwargs, + ): + super().__init__() + + self.in_channels = in_channels + self.out_channels = out_channels + + kernel_size = (kernel_size, kernel_size, kernel_size) + self.time_kernel_size = kernel_size[0] + + dilation = (dilation, 1, 1) + + height_pad = kernel_size[1] // 2 + width_pad = kernel_size[2] // 2 + padding = (0, height_pad, width_pad) + + self.conv = ops.Conv3d( + in_channels, + out_channels, + kernel_size, + stride=stride, + dilation=dilation, + padding=padding, + padding_mode="zeros", + groups=groups, + ) + + def forward(self, x, causal: bool = True): + if causal: + first_frame_pad = x[:, :, :1, :, :].repeat( + (1, 1, self.time_kernel_size - 1, 1, 1) + ) + x = torch.concatenate((first_frame_pad, x), dim=2) + else: + first_frame_pad = x[:, :, :1, :, :].repeat( + (1, 1, (self.time_kernel_size - 1) // 2, 1, 1) + ) + last_frame_pad = x[:, :, -1:, :, :].repeat( + (1, 1, (self.time_kernel_size - 1) // 2, 1, 1) + ) + x = torch.concatenate((first_frame_pad, x, last_frame_pad), dim=2) + x = self.conv(x) + return x + + @property + def weight(self): + return self.conv.weight diff --git a/comfy/ldm/lightricks/vae/causal_video_autoencoder.py b/comfy/ldm/lightricks/vae/causal_video_autoencoder.py new file mode 100644 index 00000000..e0344dee --- /dev/null +++ b/comfy/ldm/lightricks/vae/causal_video_autoencoder.py @@ -0,0 +1,907 @@ +import torch +from torch import nn +from functools import partial +import math +from einops import rearrange +from typing import Optional, Tuple, Union +from .conv_nd_factory import make_conv_nd, make_linear_nd +from .pixel_norm import PixelNorm +from ..model import PixArtAlphaCombinedTimestepSizeEmbeddings +import comfy.ops +ops = comfy.ops.disable_weight_init + +class Encoder(nn.Module): + r""" + The `Encoder` layer of a variational autoencoder that encodes its input into a latent representation. + + Args: + dims (`int` or `Tuple[int, int]`, *optional*, defaults to 3): + The number of dimensions to use in convolutions. + in_channels (`int`, *optional*, defaults to 3): + The number of input channels. + out_channels (`int`, *optional*, defaults to 3): + The number of output channels. + blocks (`List[Tuple[str, int]]`, *optional*, defaults to `[("res_x", 1)]`): + The blocks to use. Each block is a tuple of the block name and the number of layers. + base_channels (`int`, *optional*, defaults to 128): + The number of output channels for the first convolutional layer. + norm_num_groups (`int`, *optional*, defaults to 32): + The number of groups for normalization. + patch_size (`int`, *optional*, defaults to 1): + The patch size to use. Should be a power of 2. + norm_layer (`str`, *optional*, defaults to `group_norm`): + The normalization layer to use. Can be either `group_norm` or `pixel_norm`. + latent_log_var (`str`, *optional*, defaults to `per_channel`): + The number of channels for the log variance. Can be either `per_channel`, `uniform`, or `none`. + """ + + def __init__( + self, + dims: Union[int, Tuple[int, int]] = 3, + in_channels: int = 3, + out_channels: int = 3, + blocks=[("res_x", 1)], + base_channels: int = 128, + norm_num_groups: int = 32, + patch_size: Union[int, Tuple[int]] = 1, + norm_layer: str = "group_norm", # group_norm, pixel_norm + latent_log_var: str = "per_channel", + ): + super().__init__() + self.patch_size = patch_size + self.norm_layer = norm_layer + self.latent_channels = out_channels + self.latent_log_var = latent_log_var + self.blocks_desc = blocks + + in_channels = in_channels * patch_size**2 + output_channel = base_channels + + self.conv_in = make_conv_nd( + dims=dims, + in_channels=in_channels, + out_channels=output_channel, + kernel_size=3, + stride=1, + padding=1, + causal=True, + ) + + self.down_blocks = nn.ModuleList([]) + + for block_name, block_params in blocks: + input_channel = output_channel + if isinstance(block_params, int): + block_params = {"num_layers": block_params} + + if block_name == "res_x": + block = UNetMidBlock3D( + dims=dims, + in_channels=input_channel, + num_layers=block_params["num_layers"], + resnet_eps=1e-6, + resnet_groups=norm_num_groups, + norm_layer=norm_layer, + ) + elif block_name == "res_x_y": + output_channel = block_params.get("multiplier", 2) * output_channel + block = ResnetBlock3D( + dims=dims, + in_channels=input_channel, + out_channels=output_channel, + eps=1e-6, + groups=norm_num_groups, + norm_layer=norm_layer, + ) + elif block_name == "compress_time": + block = make_conv_nd( + dims=dims, + in_channels=input_channel, + out_channels=output_channel, + kernel_size=3, + stride=(2, 1, 1), + causal=True, + ) + elif block_name == "compress_space": + block = make_conv_nd( + dims=dims, + in_channels=input_channel, + out_channels=output_channel, + kernel_size=3, + stride=(1, 2, 2), + causal=True, + ) + elif block_name == "compress_all": + block = make_conv_nd( + dims=dims, + in_channels=input_channel, + out_channels=output_channel, + kernel_size=3, + stride=(2, 2, 2), + causal=True, + ) + elif block_name == "compress_all_x_y": + output_channel = block_params.get("multiplier", 2) * output_channel + block = make_conv_nd( + dims=dims, + in_channels=input_channel, + out_channels=output_channel, + kernel_size=3, + stride=(2, 2, 2), + causal=True, + ) + else: + raise ValueError(f"unknown block: {block_name}") + + self.down_blocks.append(block) + + # out + if norm_layer == "group_norm": + self.conv_norm_out = nn.GroupNorm( + num_channels=output_channel, num_groups=norm_num_groups, eps=1e-6 + ) + elif norm_layer == "pixel_norm": + self.conv_norm_out = PixelNorm() + elif norm_layer == "layer_norm": + self.conv_norm_out = LayerNorm(output_channel, eps=1e-6) + + self.conv_act = nn.SiLU() + + conv_out_channels = out_channels + if latent_log_var == "per_channel": + conv_out_channels *= 2 + elif latent_log_var == "uniform": + conv_out_channels += 1 + elif latent_log_var != "none": + raise ValueError(f"Invalid latent_log_var: {latent_log_var}") + self.conv_out = make_conv_nd( + dims, output_channel, conv_out_channels, 3, padding=1, causal=True + ) + + self.gradient_checkpointing = False + + def forward(self, sample: torch.FloatTensor) -> torch.FloatTensor: + r"""The forward method of the `Encoder` class.""" + + sample = patchify(sample, patch_size_hw=self.patch_size, patch_size_t=1) + sample = self.conv_in(sample) + + checkpoint_fn = ( + partial(torch.utils.checkpoint.checkpoint, use_reentrant=False) + if self.gradient_checkpointing and self.training + else lambda x: x + ) + + for down_block in self.down_blocks: + sample = checkpoint_fn(down_block)(sample) + + sample = self.conv_norm_out(sample) + sample = self.conv_act(sample) + sample = self.conv_out(sample) + + if self.latent_log_var == "uniform": + last_channel = sample[:, -1:, ...] + num_dims = sample.dim() + + if num_dims == 4: + # For shape (B, C, H, W) + repeated_last_channel = last_channel.repeat( + 1, sample.shape[1] - 2, 1, 1 + ) + sample = torch.cat([sample, repeated_last_channel], dim=1) + elif num_dims == 5: + # For shape (B, C, F, H, W) + repeated_last_channel = last_channel.repeat( + 1, sample.shape[1] - 2, 1, 1, 1 + ) + sample = torch.cat([sample, repeated_last_channel], dim=1) + else: + raise ValueError(f"Invalid input shape: {sample.shape}") + + return sample + + +class Decoder(nn.Module): + r""" + The `Decoder` layer of a variational autoencoder that decodes its latent representation into an output sample. + + Args: + dims (`int` or `Tuple[int, int]`, *optional*, defaults to 3): + The number of dimensions to use in convolutions. + in_channels (`int`, *optional*, defaults to 3): + The number of input channels. + out_channels (`int`, *optional*, defaults to 3): + The number of output channels. + blocks (`List[Tuple[str, int]]`, *optional*, defaults to `[("res_x", 1)]`): + The blocks to use. Each block is a tuple of the block name and the number of layers. + base_channels (`int`, *optional*, defaults to 128): + The number of output channels for the first convolutional layer. + norm_num_groups (`int`, *optional*, defaults to 32): + The number of groups for normalization. + patch_size (`int`, *optional*, defaults to 1): + The patch size to use. Should be a power of 2. + norm_layer (`str`, *optional*, defaults to `group_norm`): + The normalization layer to use. Can be either `group_norm` or `pixel_norm`. + causal (`bool`, *optional*, defaults to `True`): + Whether to use causal convolutions or not. + """ + + def __init__( + self, + dims, + in_channels: int = 3, + out_channels: int = 3, + blocks=[("res_x", 1)], + base_channels: int = 128, + layers_per_block: int = 2, + norm_num_groups: int = 32, + patch_size: int = 1, + norm_layer: str = "group_norm", + causal: bool = True, + timestep_conditioning: bool = False, + ): + super().__init__() + self.patch_size = patch_size + self.layers_per_block = layers_per_block + out_channels = out_channels * patch_size**2 + self.causal = causal + self.blocks_desc = blocks + + # Compute output channel to be product of all channel-multiplier blocks + output_channel = base_channels + for block_name, block_params in list(reversed(blocks)): + block_params = block_params if isinstance(block_params, dict) else {} + if block_name == "res_x_y": + output_channel = output_channel * block_params.get("multiplier", 2) + if block_name == "compress_all": + output_channel = output_channel * block_params.get("multiplier", 1) + + self.conv_in = make_conv_nd( + dims, + in_channels, + output_channel, + kernel_size=3, + stride=1, + padding=1, + causal=True, + ) + + self.up_blocks = nn.ModuleList([]) + + for block_name, block_params in list(reversed(blocks)): + input_channel = output_channel + if isinstance(block_params, int): + block_params = {"num_layers": block_params} + + if block_name == "res_x": + block = UNetMidBlock3D( + dims=dims, + in_channels=input_channel, + num_layers=block_params["num_layers"], + resnet_eps=1e-6, + resnet_groups=norm_num_groups, + norm_layer=norm_layer, + inject_noise=block_params.get("inject_noise", False), + timestep_conditioning=timestep_conditioning, + ) + elif block_name == "attn_res_x": + block = UNetMidBlock3D( + dims=dims, + in_channels=input_channel, + num_layers=block_params["num_layers"], + resnet_groups=norm_num_groups, + norm_layer=norm_layer, + inject_noise=block_params.get("inject_noise", False), + timestep_conditioning=timestep_conditioning, + attention_head_dim=block_params["attention_head_dim"], + ) + elif block_name == "res_x_y": + output_channel = output_channel // block_params.get("multiplier", 2) + block = ResnetBlock3D( + dims=dims, + in_channels=input_channel, + out_channels=output_channel, + eps=1e-6, + groups=norm_num_groups, + norm_layer=norm_layer, + inject_noise=block_params.get("inject_noise", False), + timestep_conditioning=False, + ) + elif block_name == "compress_time": + block = DepthToSpaceUpsample( + dims=dims, in_channels=input_channel, stride=(2, 1, 1) + ) + elif block_name == "compress_space": + block = DepthToSpaceUpsample( + dims=dims, in_channels=input_channel, stride=(1, 2, 2) + ) + elif block_name == "compress_all": + output_channel = output_channel // block_params.get("multiplier", 1) + block = DepthToSpaceUpsample( + dims=dims, + in_channels=input_channel, + stride=(2, 2, 2), + residual=block_params.get("residual", False), + out_channels_reduction_factor=block_params.get("multiplier", 1), + ) + else: + raise ValueError(f"unknown layer: {block_name}") + + self.up_blocks.append(block) + + if norm_layer == "group_norm": + self.conv_norm_out = nn.GroupNorm( + num_channels=output_channel, num_groups=norm_num_groups, eps=1e-6 + ) + elif norm_layer == "pixel_norm": + self.conv_norm_out = PixelNorm() + elif norm_layer == "layer_norm": + self.conv_norm_out = LayerNorm(output_channel, eps=1e-6) + + self.conv_act = nn.SiLU() + self.conv_out = make_conv_nd( + dims, output_channel, out_channels, 3, padding=1, causal=True + ) + + self.gradient_checkpointing = False + + self.timestep_conditioning = timestep_conditioning + + if timestep_conditioning: + self.timestep_scale_multiplier = nn.Parameter( + torch.tensor(1000.0, dtype=torch.float32) + ) + self.last_time_embedder = PixArtAlphaCombinedTimestepSizeEmbeddings( + output_channel * 2, 0, operations=ops, + ) + self.last_scale_shift_table = nn.Parameter(torch.empty(2, output_channel)) + + # def forward(self, sample: torch.FloatTensor, target_shape) -> torch.FloatTensor: + def forward( + self, + sample: torch.FloatTensor, + timestep: Optional[torch.Tensor] = None, + ) -> torch.FloatTensor: + r"""The forward method of the `Decoder` class.""" + batch_size = sample.shape[0] + + sample = self.conv_in(sample, causal=self.causal) + + checkpoint_fn = ( + partial(torch.utils.checkpoint.checkpoint, use_reentrant=False) + if self.gradient_checkpointing and self.training + else lambda x: x + ) + + scaled_timestep = None + if self.timestep_conditioning: + assert ( + timestep is not None + ), "should pass timestep with timestep_conditioning=True" + scaled_timestep = timestep * self.timestep_scale_multiplier.to(dtype=sample.dtype, device=sample.device) + + for up_block in self.up_blocks: + if self.timestep_conditioning and isinstance(up_block, UNetMidBlock3D): + sample = checkpoint_fn(up_block)( + sample, causal=self.causal, timestep=scaled_timestep + ) + else: + sample = checkpoint_fn(up_block)(sample, causal=self.causal) + + sample = self.conv_norm_out(sample) + + if self.timestep_conditioning: + embedded_timestep = self.last_time_embedder( + timestep=scaled_timestep.flatten(), + resolution=None, + aspect_ratio=None, + batch_size=sample.shape[0], + hidden_dtype=sample.dtype, + ) + embedded_timestep = embedded_timestep.view( + batch_size, embedded_timestep.shape[-1], 1, 1, 1 + ) + ada_values = self.last_scale_shift_table[ + None, ..., None, None, None + ].to(device=sample.device, dtype=sample.dtype) + embedded_timestep.reshape( + batch_size, + 2, + -1, + embedded_timestep.shape[-3], + embedded_timestep.shape[-2], + embedded_timestep.shape[-1], + ) + shift, scale = ada_values.unbind(dim=1) + sample = sample * (1 + scale) + shift + + sample = self.conv_act(sample) + sample = self.conv_out(sample, causal=self.causal) + + sample = unpatchify(sample, patch_size_hw=self.patch_size, patch_size_t=1) + + return sample + + +class UNetMidBlock3D(nn.Module): + """ + A 3D UNet mid-block [`UNetMidBlock3D`] with multiple residual blocks. + + Args: + in_channels (`int`): The number of input channels. + dropout (`float`, *optional*, defaults to 0.0): The dropout rate. + num_layers (`int`, *optional*, defaults to 1): The number of residual blocks. + resnet_eps (`float`, *optional*, 1e-6 ): The epsilon value for the resnet blocks. + resnet_groups (`int`, *optional*, defaults to 32): + The number of groups to use in the group normalization layers of the resnet blocks. + + Returns: + `torch.FloatTensor`: The output of the last residual block, which is a tensor of shape `(batch_size, + in_channels, height, width)`. + + """ + + def __init__( + self, + dims: Union[int, Tuple[int, int]], + in_channels: int, + dropout: float = 0.0, + num_layers: int = 1, + resnet_eps: float = 1e-6, + resnet_groups: int = 32, + norm_layer: str = "group_norm", + inject_noise: bool = False, + timestep_conditioning: bool = False, + ): + super().__init__() + resnet_groups = ( + resnet_groups if resnet_groups is not None else min(in_channels // 4, 32) + ) + + self.timestep_conditioning = timestep_conditioning + + if timestep_conditioning: + self.time_embedder = PixArtAlphaCombinedTimestepSizeEmbeddings( + in_channels * 4, 0, operations=ops, + ) + + self.res_blocks = nn.ModuleList( + [ + ResnetBlock3D( + dims=dims, + in_channels=in_channels, + out_channels=in_channels, + eps=resnet_eps, + groups=resnet_groups, + dropout=dropout, + norm_layer=norm_layer, + inject_noise=inject_noise, + timestep_conditioning=timestep_conditioning, + ) + for _ in range(num_layers) + ] + ) + + def forward( + self, hidden_states: torch.FloatTensor, causal: bool = True, timestep: Optional[torch.Tensor] = None + ) -> torch.FloatTensor: + timestep_embed = None + if self.timestep_conditioning: + assert ( + timestep is not None + ), "should pass timestep with timestep_conditioning=True" + batch_size = hidden_states.shape[0] + timestep_embed = self.time_embedder( + timestep=timestep.flatten(), + resolution=None, + aspect_ratio=None, + batch_size=batch_size, + hidden_dtype=hidden_states.dtype, + ) + timestep_embed = timestep_embed.view( + batch_size, timestep_embed.shape[-1], 1, 1, 1 + ) + + for resnet in self.res_blocks: + hidden_states = resnet(hidden_states, causal=causal, timestep=timestep_embed) + + return hidden_states + + +class DepthToSpaceUpsample(nn.Module): + def __init__( + self, dims, in_channels, stride, residual=False, out_channels_reduction_factor=1 + ): + super().__init__() + self.stride = stride + self.out_channels = ( + math.prod(stride) * in_channels // out_channels_reduction_factor + ) + self.conv = make_conv_nd( + dims=dims, + in_channels=in_channels, + out_channels=self.out_channels, + kernel_size=3, + stride=1, + causal=True, + ) + self.residual = residual + self.out_channels_reduction_factor = out_channels_reduction_factor + + def forward(self, x, causal: bool = True, timestep: Optional[torch.Tensor] = None): + if self.residual: + # Reshape and duplicate the input to match the output shape + x_in = rearrange( + x, + "b (c p1 p2 p3) d h w -> b c (d p1) (h p2) (w p3)", + p1=self.stride[0], + p2=self.stride[1], + p3=self.stride[2], + ) + num_repeat = math.prod(self.stride) // self.out_channels_reduction_factor + x_in = x_in.repeat(1, num_repeat, 1, 1, 1) + if self.stride[0] == 2: + x_in = x_in[:, :, 1:, :, :] + x = self.conv(x, causal=causal) + x = rearrange( + x, + "b (c p1 p2 p3) d h w -> b c (d p1) (h p2) (w p3)", + p1=self.stride[0], + p2=self.stride[1], + p3=self.stride[2], + ) + if self.stride[0] == 2: + x = x[:, :, 1:, :, :] + if self.residual: + x = x + x_in + return x + +class LayerNorm(nn.Module): + def __init__(self, dim, eps, elementwise_affine=True) -> None: + super().__init__() + self.norm = nn.LayerNorm(dim, eps=eps, elementwise_affine=elementwise_affine) + + def forward(self, x): + x = rearrange(x, "b c d h w -> b d h w c") + x = self.norm(x) + x = rearrange(x, "b d h w c -> b c d h w") + return x + + +class ResnetBlock3D(nn.Module): + r""" + A Resnet block. + + Parameters: + in_channels (`int`): The number of channels in the input. + out_channels (`int`, *optional*, default to be `None`): + The number of output channels for the first conv layer. If None, same as `in_channels`. + dropout (`float`, *optional*, defaults to `0.0`): The dropout probability to use. + groups (`int`, *optional*, default to `32`): The number of groups to use for the first normalization layer. + eps (`float`, *optional*, defaults to `1e-6`): The epsilon to use for the normalization. + """ + + def __init__( + self, + dims: Union[int, Tuple[int, int]], + in_channels: int, + out_channels: Optional[int] = None, + dropout: float = 0.0, + groups: int = 32, + eps: float = 1e-6, + norm_layer: str = "group_norm", + inject_noise: bool = False, + timestep_conditioning: bool = False, + ): + super().__init__() + self.in_channels = in_channels + out_channels = in_channels if out_channels is None else out_channels + self.out_channels = out_channels + self.inject_noise = inject_noise + + if norm_layer == "group_norm": + self.norm1 = nn.GroupNorm( + num_groups=groups, num_channels=in_channels, eps=eps, affine=True + ) + elif norm_layer == "pixel_norm": + self.norm1 = PixelNorm() + elif norm_layer == "layer_norm": + self.norm1 = LayerNorm(in_channels, eps=eps, elementwise_affine=True) + + self.non_linearity = nn.SiLU() + + self.conv1 = make_conv_nd( + dims, + in_channels, + out_channels, + kernel_size=3, + stride=1, + padding=1, + causal=True, + ) + + if inject_noise: + self.per_channel_scale1 = nn.Parameter(torch.zeros((in_channels, 1, 1))) + + if norm_layer == "group_norm": + self.norm2 = nn.GroupNorm( + num_groups=groups, num_channels=out_channels, eps=eps, affine=True + ) + elif norm_layer == "pixel_norm": + self.norm2 = PixelNorm() + elif norm_layer == "layer_norm": + self.norm2 = LayerNorm(out_channels, eps=eps, elementwise_affine=True) + + self.dropout = torch.nn.Dropout(dropout) + + self.conv2 = make_conv_nd( + dims, + out_channels, + out_channels, + kernel_size=3, + stride=1, + padding=1, + causal=True, + ) + + if inject_noise: + self.per_channel_scale2 = nn.Parameter(torch.zeros((in_channels, 1, 1))) + + self.conv_shortcut = ( + make_linear_nd( + dims=dims, in_channels=in_channels, out_channels=out_channels + ) + if in_channels != out_channels + else nn.Identity() + ) + + self.norm3 = ( + LayerNorm(in_channels, eps=eps, elementwise_affine=True) + if in_channels != out_channels + else nn.Identity() + ) + + self.timestep_conditioning = timestep_conditioning + + if timestep_conditioning: + self.scale_shift_table = nn.Parameter( + torch.randn(4, in_channels) / in_channels**0.5 + ) + + def _feed_spatial_noise( + self, hidden_states: torch.FloatTensor, per_channel_scale: torch.FloatTensor + ) -> torch.FloatTensor: + spatial_shape = hidden_states.shape[-2:] + device = hidden_states.device + dtype = hidden_states.dtype + + # similar to the "explicit noise inputs" method in style-gan + spatial_noise = torch.randn(spatial_shape, device=device, dtype=dtype)[None] + scaled_noise = (spatial_noise * per_channel_scale)[None, :, None, ...] + hidden_states = hidden_states + scaled_noise + + return hidden_states + + def forward( + self, + input_tensor: torch.FloatTensor, + causal: bool = True, + timestep: Optional[torch.Tensor] = None, + ) -> torch.FloatTensor: + hidden_states = input_tensor + batch_size = hidden_states.shape[0] + + hidden_states = self.norm1(hidden_states) + if self.timestep_conditioning: + assert ( + timestep is not None + ), "should pass timestep with timestep_conditioning=True" + ada_values = self.scale_shift_table[ + None, ..., None, None, None + ].to(device=hidden_states.device, dtype=hidden_states.dtype) + timestep.reshape( + batch_size, + 4, + -1, + timestep.shape[-3], + timestep.shape[-2], + timestep.shape[-1], + ) + shift1, scale1, shift2, scale2 = ada_values.unbind(dim=1) + + hidden_states = hidden_states * (1 + scale1) + shift1 + + hidden_states = self.non_linearity(hidden_states) + + hidden_states = self.conv1(hidden_states, causal=causal) + + if self.inject_noise: + hidden_states = self._feed_spatial_noise( + hidden_states, self.per_channel_scale1.to(device=hidden_states.device, dtype=hidden_states.dtype) + ) + + hidden_states = self.norm2(hidden_states) + + if self.timestep_conditioning: + hidden_states = hidden_states * (1 + scale2) + shift2 + + hidden_states = self.non_linearity(hidden_states) + + hidden_states = self.dropout(hidden_states) + + hidden_states = self.conv2(hidden_states, causal=causal) + + if self.inject_noise: + hidden_states = self._feed_spatial_noise( + hidden_states, self.per_channel_scale2.to(device=hidden_states.device, dtype=hidden_states.dtype) + ) + + input_tensor = self.norm3(input_tensor) + + batch_size = input_tensor.shape[0] + + input_tensor = self.conv_shortcut(input_tensor) + + output_tensor = input_tensor + hidden_states + + return output_tensor + + +def patchify(x, patch_size_hw, patch_size_t=1): + if patch_size_hw == 1 and patch_size_t == 1: + return x + if x.dim() == 4: + x = rearrange( + x, "b c (h q) (w r) -> b (c r q) h w", q=patch_size_hw, r=patch_size_hw + ) + elif x.dim() == 5: + x = rearrange( + x, + "b c (f p) (h q) (w r) -> b (c p r q) f h w", + p=patch_size_t, + q=patch_size_hw, + r=patch_size_hw, + ) + else: + raise ValueError(f"Invalid input shape: {x.shape}") + + return x + + +def unpatchify(x, patch_size_hw, patch_size_t=1): + if patch_size_hw == 1 and patch_size_t == 1: + return x + + if x.dim() == 4: + x = rearrange( + x, "b (c r q) h w -> b c (h q) (w r)", q=patch_size_hw, r=patch_size_hw + ) + elif x.dim() == 5: + x = rearrange( + x, + "b (c p r q) f h w -> b c (f p) (h q) (w r)", + p=patch_size_t, + q=patch_size_hw, + r=patch_size_hw, + ) + + return x + +class processor(nn.Module): + def __init__(self): + super().__init__() + self.register_buffer("std-of-means", torch.empty(128)) + self.register_buffer("mean-of-means", torch.empty(128)) + self.register_buffer("mean-of-stds", torch.empty(128)) + self.register_buffer("mean-of-stds_over_std-of-means", torch.empty(128)) + self.register_buffer("channel", torch.empty(128)) + + def un_normalize(self, x): + return (x * self.get_buffer("std-of-means").view(1, -1, 1, 1, 1).to(x)) + self.get_buffer("mean-of-means").view(1, -1, 1, 1, 1).to(x) + + def normalize(self, x): + return (x - self.get_buffer("mean-of-means").view(1, -1, 1, 1, 1).to(x)) / self.get_buffer("std-of-means").view(1, -1, 1, 1, 1).to(x) + +class VideoVAE(nn.Module): + def __init__(self, version=0): + super().__init__() + + if version == 0: + config = { + "_class_name": "CausalVideoAutoencoder", + "dims": 3, + "in_channels": 3, + "out_channels": 3, + "latent_channels": 128, + "blocks": [ + ["res_x", 4], + ["compress_all", 1], + ["res_x_y", 1], + ["res_x", 3], + ["compress_all", 1], + ["res_x_y", 1], + ["res_x", 3], + ["compress_all", 1], + ["res_x", 3], + ["res_x", 4], + ], + "scaling_factor": 1.0, + "norm_layer": "pixel_norm", + "patch_size": 4, + "latent_log_var": "uniform", + "use_quant_conv": False, + "causal_decoder": False, + } + else: + config = { + "_class_name": "CausalVideoAutoencoder", + "dims": 3, + "in_channels": 3, + "out_channels": 3, + "latent_channels": 128, + "decoder_blocks": [ + ["res_x", {"num_layers": 5, "inject_noise": True}], + ["compress_all", {"residual": True, "multiplier": 2}], + ["res_x", {"num_layers": 6, "inject_noise": True}], + ["compress_all", {"residual": True, "multiplier": 2}], + ["res_x", {"num_layers": 7, "inject_noise": True}], + ["compress_all", {"residual": True, "multiplier": 2}], + ["res_x", {"num_layers": 8, "inject_noise": False}] + ], + "encoder_blocks": [ + ["res_x", {"num_layers": 4}], + ["compress_all", {}], + ["res_x_y", 1], + ["res_x", {"num_layers": 3}], + ["compress_all", {}], + ["res_x_y", 1], + ["res_x", {"num_layers": 3}], + ["compress_all", {}], + ["res_x", {"num_layers": 3}], + ["res_x", {"num_layers": 4}] + ], + "scaling_factor": 1.0, + "norm_layer": "pixel_norm", + "patch_size": 4, + "latent_log_var": "uniform", + "use_quant_conv": False, + "causal_decoder": False, + "timestep_conditioning": True, + } + + double_z = config.get("double_z", True) + latent_log_var = config.get( + "latent_log_var", "per_channel" if double_z else "none" + ) + + self.encoder = Encoder( + dims=config["dims"], + in_channels=config.get("in_channels", 3), + out_channels=config["latent_channels"], + blocks=config.get("encoder_blocks", config.get("encoder_blocks", config.get("blocks"))), + patch_size=config.get("patch_size", 1), + latent_log_var=latent_log_var, + norm_layer=config.get("norm_layer", "group_norm"), + ) + + self.decoder = Decoder( + dims=config["dims"], + in_channels=config["latent_channels"], + out_channels=config.get("out_channels", 3), + blocks=config.get("decoder_blocks", config.get("decoder_blocks", config.get("blocks"))), + patch_size=config.get("patch_size", 1), + norm_layer=config.get("norm_layer", "group_norm"), + causal=config.get("causal_decoder", False), + timestep_conditioning=config.get("timestep_conditioning", False), + ) + + self.timestep_conditioning = config.get("timestep_conditioning", False) + self.per_channel_statistics = processor() + + def encode(self, x): + means, logvar = torch.chunk(self.encoder(x), 2, dim=1) + return self.per_channel_statistics.normalize(means) + + def decode(self, x, timestep=0.05, noise_scale=0.025): + if self.timestep_conditioning: #TODO: seed + x = torch.randn_like(x) * noise_scale + (1.0 - noise_scale) * x + return self.decoder(self.per_channel_statistics.un_normalize(x), timestep=timestep) + diff --git a/comfy/ldm/lightricks/vae/conv_nd_factory.py b/comfy/ldm/lightricks/vae/conv_nd_factory.py new file mode 100644 index 00000000..52df4ee2 --- /dev/null +++ b/comfy/ldm/lightricks/vae/conv_nd_factory.py @@ -0,0 +1,82 @@ +from typing import Tuple, Union + + +from .dual_conv3d import DualConv3d +from .causal_conv3d import CausalConv3d +import comfy.ops +ops = comfy.ops.disable_weight_init + +def make_conv_nd( + dims: Union[int, Tuple[int, int]], + in_channels: int, + out_channels: int, + kernel_size: int, + stride=1, + padding=0, + dilation=1, + groups=1, + bias=True, + causal=False, +): + if dims == 2: + return ops.Conv2d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + groups=groups, + bias=bias, + ) + elif dims == 3: + if causal: + return CausalConv3d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + groups=groups, + bias=bias, + ) + return ops.Conv3d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + groups=groups, + bias=bias, + ) + elif dims == (2, 1): + return DualConv3d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=kernel_size, + stride=stride, + padding=padding, + bias=bias, + ) + else: + raise ValueError(f"unsupported dimensions: {dims}") + + +def make_linear_nd( + dims: int, + in_channels: int, + out_channels: int, + bias=True, +): + if dims == 2: + return ops.Conv2d( + in_channels=in_channels, out_channels=out_channels, kernel_size=1, bias=bias + ) + elif dims == 3 or dims == (2, 1): + return ops.Conv3d( + in_channels=in_channels, out_channels=out_channels, kernel_size=1, bias=bias + ) + else: + raise ValueError(f"unsupported dimensions: {dims}") diff --git a/comfy/ldm/lightricks/vae/dual_conv3d.py b/comfy/ldm/lightricks/vae/dual_conv3d.py new file mode 100644 index 00000000..6bd54c0a --- /dev/null +++ b/comfy/ldm/lightricks/vae/dual_conv3d.py @@ -0,0 +1,195 @@ +import math +from typing import Tuple, Union + +import torch +import torch.nn as nn +import torch.nn.functional as F +from einops import rearrange + + +class DualConv3d(nn.Module): + def __init__( + self, + in_channels, + out_channels, + kernel_size, + stride: Union[int, Tuple[int, int, int]] = 1, + padding: Union[int, Tuple[int, int, int]] = 0, + dilation: Union[int, Tuple[int, int, int]] = 1, + groups=1, + bias=True, + ): + super(DualConv3d, self).__init__() + + self.in_channels = in_channels + self.out_channels = out_channels + # Ensure kernel_size, stride, padding, and dilation are tuples of length 3 + if isinstance(kernel_size, int): + kernel_size = (kernel_size, kernel_size, kernel_size) + if kernel_size == (1, 1, 1): + raise ValueError( + "kernel_size must be greater than 1. Use make_linear_nd instead." + ) + if isinstance(stride, int): + stride = (stride, stride, stride) + if isinstance(padding, int): + padding = (padding, padding, padding) + if isinstance(dilation, int): + dilation = (dilation, dilation, dilation) + + # Set parameters for convolutions + self.groups = groups + self.bias = bias + + # Define the size of the channels after the first convolution + intermediate_channels = ( + out_channels if in_channels < out_channels else in_channels + ) + + # Define parameters for the first convolution + self.weight1 = nn.Parameter( + torch.Tensor( + intermediate_channels, + in_channels // groups, + 1, + kernel_size[1], + kernel_size[2], + ) + ) + self.stride1 = (1, stride[1], stride[2]) + self.padding1 = (0, padding[1], padding[2]) + self.dilation1 = (1, dilation[1], dilation[2]) + if bias: + self.bias1 = nn.Parameter(torch.Tensor(intermediate_channels)) + else: + self.register_parameter("bias1", None) + + # Define parameters for the second convolution + self.weight2 = nn.Parameter( + torch.Tensor( + out_channels, intermediate_channels // groups, kernel_size[0], 1, 1 + ) + ) + self.stride2 = (stride[0], 1, 1) + self.padding2 = (padding[0], 0, 0) + self.dilation2 = (dilation[0], 1, 1) + if bias: + self.bias2 = nn.Parameter(torch.Tensor(out_channels)) + else: + self.register_parameter("bias2", None) + + # Initialize weights and biases + self.reset_parameters() + + def reset_parameters(self): + nn.init.kaiming_uniform_(self.weight1, a=math.sqrt(5)) + nn.init.kaiming_uniform_(self.weight2, a=math.sqrt(5)) + if self.bias: + fan_in1, _ = nn.init._calculate_fan_in_and_fan_out(self.weight1) + bound1 = 1 / math.sqrt(fan_in1) + nn.init.uniform_(self.bias1, -bound1, bound1) + fan_in2, _ = nn.init._calculate_fan_in_and_fan_out(self.weight2) + bound2 = 1 / math.sqrt(fan_in2) + nn.init.uniform_(self.bias2, -bound2, bound2) + + def forward(self, x, use_conv3d=False, skip_time_conv=False): + if use_conv3d: + return self.forward_with_3d(x=x, skip_time_conv=skip_time_conv) + else: + return self.forward_with_2d(x=x, skip_time_conv=skip_time_conv) + + def forward_with_3d(self, x, skip_time_conv): + # First convolution + x = F.conv3d( + x, + self.weight1, + self.bias1, + self.stride1, + self.padding1, + self.dilation1, + self.groups, + ) + + if skip_time_conv: + return x + + # Second convolution + x = F.conv3d( + x, + self.weight2, + self.bias2, + self.stride2, + self.padding2, + self.dilation2, + self.groups, + ) + + return x + + def forward_with_2d(self, x, skip_time_conv): + b, c, d, h, w = x.shape + + # First 2D convolution + x = rearrange(x, "b c d h w -> (b d) c h w") + # Squeeze the depth dimension out of weight1 since it's 1 + weight1 = self.weight1.squeeze(2) + # Select stride, padding, and dilation for the 2D convolution + stride1 = (self.stride1[1], self.stride1[2]) + padding1 = (self.padding1[1], self.padding1[2]) + dilation1 = (self.dilation1[1], self.dilation1[2]) + x = F.conv2d(x, weight1, self.bias1, stride1, padding1, dilation1, self.groups) + + _, _, h, w = x.shape + + if skip_time_conv: + x = rearrange(x, "(b d) c h w -> b c d h w", b=b) + return x + + # Second convolution which is essentially treated as a 1D convolution across the 'd' dimension + x = rearrange(x, "(b d) c h w -> (b h w) c d", b=b) + + # Reshape weight2 to match the expected dimensions for conv1d + weight2 = self.weight2.squeeze(-1).squeeze(-1) + # Use only the relevant dimension for stride, padding, and dilation for the 1D convolution + stride2 = self.stride2[0] + padding2 = self.padding2[0] + dilation2 = self.dilation2[0] + x = F.conv1d(x, weight2, self.bias2, stride2, padding2, dilation2, self.groups) + x = rearrange(x, "(b h w) c d -> b c d h w", b=b, h=h, w=w) + + return x + + @property + def weight(self): + return self.weight2 + + +def test_dual_conv3d_consistency(): + # Initialize parameters + in_channels = 3 + out_channels = 5 + kernel_size = (3, 3, 3) + stride = (2, 2, 2) + padding = (1, 1, 1) + + # Create an instance of the DualConv3d class + dual_conv3d = DualConv3d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=kernel_size, + stride=stride, + padding=padding, + bias=True, + ) + + # Example input tensor + test_input = torch.randn(1, 3, 10, 10, 10) + + # Perform forward passes with both 3D and 2D settings + output_conv3d = dual_conv3d(test_input, use_conv3d=True) + output_2d = dual_conv3d(test_input, use_conv3d=False) + + # Assert that the outputs from both methods are sufficiently close + assert torch.allclose( + output_conv3d, output_2d, atol=1e-6 + ), "Outputs are not consistent between 3D and 2D convolutions." diff --git a/comfy/ldm/lightricks/vae/pixel_norm.py b/comfy/ldm/lightricks/vae/pixel_norm.py new file mode 100644 index 00000000..9bc3ea60 --- /dev/null +++ b/comfy/ldm/lightricks/vae/pixel_norm.py @@ -0,0 +1,12 @@ +import torch +from torch import nn + + +class PixelNorm(nn.Module): + def __init__(self, dim=1, eps=1e-8): + super(PixelNorm, self).__init__() + self.dim = dim + self.eps = eps + + def forward(self, x): + return x / torch.sqrt(torch.mean(x**2, dim=self.dim, keepdim=True) + self.eps) diff --git a/comfy/ldm/models/autoencoder.py b/comfy/ldm/models/autoencoder.py index f5f4de28..e6493155 100644 --- a/comfy/ldm/models/autoencoder.py +++ b/comfy/ldm/models/autoencoder.py @@ -1,10 +1,12 @@ +import logging +import math import torch from contextlib import contextmanager -from typing import Any, Dict, List, Optional, Tuple, Union +from typing import Any, Dict, Tuple, Union from comfy.ldm.modules.distributions.distributions import DiagonalGaussianDistribution -from comfy.ldm.util import instantiate_from_config +from comfy.ldm.util import get_obj_from_str, instantiate_from_config from comfy.ldm.modules.ema import LitEma import comfy.ops @@ -52,7 +54,7 @@ class AbstractAutoencoder(torch.nn.Module): if self.use_ema: self.model_ema = LitEma(self, decay=ema_decay) - logpy.info(f"Keeping EMAs of {len(list(self.model_ema.buffers()))}.") + logging.info(f"Keeping EMAs of {len(list(self.model_ema.buffers()))}.") def get_input(self, batch) -> Any: raise NotImplementedError() @@ -68,14 +70,14 @@ class AbstractAutoencoder(torch.nn.Module): self.model_ema.store(self.parameters()) self.model_ema.copy_to(self) if context is not None: - logpy.info(f"{context}: Switched to EMA weights") + logging.info(f"{context}: Switched to EMA weights") try: yield None finally: if self.use_ema: self.model_ema.restore(self.parameters()) if context is not None: - logpy.info(f"{context}: Restored training weights") + logging.info(f"{context}: Restored training weights") def encode(self, *args, **kwargs) -> torch.Tensor: raise NotImplementedError("encode()-method of abstract base class called") @@ -84,7 +86,7 @@ class AbstractAutoencoder(torch.nn.Module): raise NotImplementedError("decode()-method of abstract base class called") def instantiate_optimizer_from_config(self, params, lr, cfg): - logpy.info(f"loading >>> {cfg['target']} <<< optimizer from config") + logging.info(f"loading >>> {cfg['target']} <<< optimizer from config") return get_obj_from_str(cfg["target"])( params, lr=lr, **cfg.get("params", dict()) ) @@ -112,7 +114,7 @@ class AutoencodingEngine(AbstractAutoencoder): self.encoder: torch.nn.Module = instantiate_from_config(encoder_config) self.decoder: torch.nn.Module = instantiate_from_config(decoder_config) - self.regularization: AbstractRegularizer = instantiate_from_config( + self.regularization = instantiate_from_config( regularizer_config ) @@ -160,12 +162,19 @@ class AutoencodingEngineLegacy(AutoencodingEngine): }, **kwargs, ) - self.quant_conv = comfy.ops.disable_weight_init.Conv2d( + + if ddconfig.get("conv3d", False): + conv_op = comfy.ops.disable_weight_init.Conv3d + else: + conv_op = comfy.ops.disable_weight_init.Conv2d + + self.quant_conv = conv_op( (1 + ddconfig["double_z"]) * ddconfig["z_channels"], (1 + ddconfig["double_z"]) * embed_dim, 1, ) - self.post_quant_conv = comfy.ops.disable_weight_init.Conv2d(embed_dim, ddconfig["z_channels"], 1) + + self.post_quant_conv = conv_op(embed_dim, ddconfig["z_channels"], 1) self.embed_dim = embed_dim def get_autoencoder_params(self) -> list: diff --git a/comfy/ldm/modules/attention.py b/comfy/ldm/modules/attention.py index 85ea406e..0d54e6be 100644 --- a/comfy/ldm/modules/attention.py +++ b/comfy/ldm/modules/attention.py @@ -15,6 +15,9 @@ if model_management.xformers_enabled(): import xformers import xformers.ops +if model_management.sage_attention_enabled(): + from sageattention import sageattn + from comfy.cli_args import args import comfy.ops ops = comfy.ops.disable_weight_init @@ -157,8 +160,6 @@ def attention_sub_quad(query, key, value, heads, mask=None, attn_precision=None, b, _, dim_head = query.shape dim_head //= heads - scale = dim_head ** -0.5 - if skip_reshape: query = query.reshape(b * heads, -1, dim_head) value = value.reshape(b * heads, -1, dim_head) @@ -177,9 +178,8 @@ def attention_sub_quad(query, key, value, heads, mask=None, attn_precision=None, bytes_per_token = torch.finfo(query.dtype).bits//8 batch_x_heads, q_tokens, _ = query.shape _, _, k_tokens = key.shape - qk_matmul_size_bytes = batch_x_heads * bytes_per_token * q_tokens * k_tokens - mem_free_total, mem_free_torch = model_management.get_free_memory(query.device, True) + mem_free_total, _ = model_management.get_free_memory(query.device, True) kv_chunk_size_min = None kv_chunk_size = None @@ -230,7 +230,6 @@ def attention_split(q, k, v, heads, mask=None, attn_precision=None, skip_reshape scale = dim_head ** -0.5 - h = heads if skip_reshape: q, k, v = map( lambda t: t.reshape(b * heads, -1, dim_head), @@ -299,7 +298,10 @@ def attention_split(q, k, v, heads, mask=None, attn_precision=None, skip_reshape if len(mask.shape) == 2: s1 += mask[i:end] else: - s1 += mask[:, i:end] + if mask.shape[1] == 1: + s1 += mask + else: + s1 += mask[:, i:end] s2 = s1.softmax(dim=-1).to(v.dtype) del s1 @@ -341,12 +343,9 @@ except: pass def attention_xformers(q, k, v, heads, mask=None, attn_precision=None, skip_reshape=False): - if skip_reshape: - b, _, _, dim_head = q.shape - else: - b, _, dim_head = q.shape - dim_head //= heads - + b = q.shape[0] + dim_head = q.shape[-1] + # check to make sure xformers isn't broken disabled_xformers = False if BROKEN_XFORMERS: @@ -361,38 +360,54 @@ def attention_xformers(q, k, v, heads, mask=None, attn_precision=None, skip_resh return attention_pytorch(q, k, v, heads, mask, skip_reshape=skip_reshape) if skip_reshape: - q, k, v = map( - lambda t: t.reshape(b * heads, -1, dim_head), + # b h k d -> b k h d + q, k, v = map( + lambda t: t.permute(0, 2, 1, 3), (q, k, v), ) + # actually do the reshaping else: + dim_head //= heads q, k, v = map( lambda t: t.reshape(b, -1, heads, dim_head), (q, k, v), ) if mask is not None: - pad = 8 - q.shape[1] % 8 - mask_out = torch.empty([q.shape[0], q.shape[1], q.shape[1] + pad], dtype=q.dtype, device=q.device) - mask_out[:, :, :mask.shape[-1]] = mask - mask = mask_out[:, :, :mask.shape[-1]] + # add a singleton batch dimension + if mask.ndim == 2: + mask = mask.unsqueeze(0) + # add a singleton heads dimension + if mask.ndim == 3: + mask = mask.unsqueeze(1) + # pad to a multiple of 8 + pad = 8 - mask.shape[-1] % 8 + # the xformers docs says that it's allowed to have a mask of shape (1, Nq, Nk) + # but when using separated heads, the shape has to be (B, H, Nq, Nk) + # in flux, this matrix ends up being over 1GB + # here, we create a mask with the same batch/head size as the input mask (potentially singleton or full) + mask_out = torch.empty([mask.shape[0], mask.shape[1], q.shape[1], mask.shape[-1] + pad], dtype=q.dtype, device=q.device) + + mask_out[..., :mask.shape[-1]] = mask + # doesn't this remove the padding again?? + mask = mask_out[..., :mask.shape[-1]] + mask = mask.expand(b, heads, -1, -1) out = xformers.ops.memory_efficient_attention(q, k, v, attn_bias=mask) - if skip_reshape: - out = ( - out.unsqueeze(0) - .reshape(b, heads, -1, dim_head) - .permute(0, 2, 1, 3) - .reshape(b, -1, heads * dim_head) - ) - else: - out = ( - out.reshape(b, -1, heads * dim_head) - ) + out = ( + out.reshape(b, -1, heads * dim_head) + ) return out +if model_management.is_nvidia(): #pytorch 2.3 and up seem to have this issue. + SDP_BATCH_LIMIT = 2**15 +else: + #TODO: other GPUs ? + SDP_BATCH_LIMIT = 2**31 + + def attention_pytorch(q, k, v, heads, mask=None, attn_precision=None, skip_reshape=False): if skip_reshape: b, _, _, dim_head = q.shape @@ -404,27 +419,85 @@ def attention_pytorch(q, k, v, heads, mask=None, attn_precision=None, skip_resha (q, k, v), ) - out = torch.nn.functional.scaled_dot_product_attention(q, k, v, attn_mask=mask, dropout_p=0.0, is_causal=False) - out = ( - out.transpose(1, 2).reshape(b, -1, heads * dim_head) - ) + if mask is not None: + # add a batch dimension if there isn't already one + if mask.ndim == 2: + mask = mask.unsqueeze(0) + # add a heads dimension if there isn't already one + if mask.ndim == 3: + mask = mask.unsqueeze(1) + + if SDP_BATCH_LIMIT >= b: + out = torch.nn.functional.scaled_dot_product_attention(q, k, v, attn_mask=mask, dropout_p=0.0, is_causal=False) + out = ( + out.transpose(1, 2).reshape(b, -1, heads * dim_head) + ) + else: + out = torch.empty((b, q.shape[2], heads * dim_head), dtype=q.dtype, layout=q.layout, device=q.device) + for i in range(0, b, SDP_BATCH_LIMIT): + m = mask + if mask is not None: + if mask.shape[0] > 1: + m = mask[i : i + SDP_BATCH_LIMIT] + + out[i : i + SDP_BATCH_LIMIT] = torch.nn.functional.scaled_dot_product_attention( + q[i : i + SDP_BATCH_LIMIT], + k[i : i + SDP_BATCH_LIMIT], + v[i : i + SDP_BATCH_LIMIT], + attn_mask=m, + dropout_p=0.0, is_causal=False + ).transpose(1, 2).reshape(-1, q.shape[2], heads * dim_head) + return out + + +def attention_sage(q, k, v, heads, mask=None, attn_precision=None, skip_reshape=False): + if skip_reshape: + b, _, _, dim_head = q.shape + tensor_layout="HND" + else: + b, _, dim_head = q.shape + dim_head //= heads + q, k, v = map( + lambda t: t.view(b, -1, heads, dim_head), + (q, k, v), + ) + tensor_layout="NHD" + + if mask is not None: + # add a batch dimension if there isn't already one + if mask.ndim == 2: + mask = mask.unsqueeze(0) + # add a heads dimension if there isn't already one + if mask.ndim == 3: + mask = mask.unsqueeze(1) + + out = sageattn(q, k, v, attn_mask=mask, is_causal=False, tensor_layout=tensor_layout) + if tensor_layout == "HND": + out = ( + out.transpose(1, 2).reshape(b, -1, heads * dim_head) + ) + else: + out = out.reshape(b, -1, heads * dim_head) return out optimized_attention = attention_basic -if model_management.xformers_enabled(): - logging.info("Using xformers cross attention") +if model_management.sage_attention_enabled(): + logging.info("Using sage attention") + optimized_attention = attention_sage +elif model_management.xformers_enabled(): + logging.info("Using xformers attention") optimized_attention = attention_xformers elif model_management.pytorch_attention_enabled(): - logging.info("Using pytorch cross attention") + logging.info("Using pytorch attention") optimized_attention = attention_pytorch else: if args.use_split_cross_attention: - logging.info("Using split optimization for cross attention") + logging.info("Using split optimization for attention") optimized_attention = attention_split else: - logging.info("Using sub quadratic optimization for cross attention, if you have memory or speed issues try using: --use-split-cross-attention") + logging.info("Using sub quadratic optimization for attention, if you have memory or speed issues try using: --use-split-cross-attention") optimized_attention = attention_sub_quad optimized_attention_masked = optimized_attention diff --git a/comfy/ldm/modules/diffusionmodules/mmdit.py b/comfy/ldm/modules/diffusionmodules/mmdit.py index 6f8f506c..e70f4431 100644 --- a/comfy/ldm/modules/diffusionmodules/mmdit.py +++ b/comfy/ldm/modules/diffusionmodules/mmdit.py @@ -1,5 +1,4 @@ -import logging -import math +from functools import partial from typing import Dict, Optional, List import numpy as np @@ -72,45 +71,33 @@ class PatchEmbed(nn.Module): strict_img_size: bool = True, dynamic_img_pad: bool = True, padding_mode='circular', + conv3d=False, dtype=None, device=None, operations=None, ): super().__init__() - self.patch_size = (patch_size, patch_size) + try: + len(patch_size) + self.patch_size = patch_size + except: + if conv3d: + self.patch_size = (patch_size, patch_size, patch_size) + else: + self.patch_size = (patch_size, patch_size) self.padding_mode = padding_mode - if img_size is not None: - self.img_size = (img_size, img_size) - self.grid_size = tuple([s // p for s, p in zip(self.img_size, self.patch_size)]) - self.num_patches = self.grid_size[0] * self.grid_size[1] - else: - self.img_size = None - self.grid_size = None - self.num_patches = None # flatten spatial dim and transpose to channels last, kept for bwd compat self.flatten = flatten self.strict_img_size = strict_img_size self.dynamic_img_pad = dynamic_img_pad - - self.proj = operations.Conv2d(in_chans, embed_dim, kernel_size=patch_size, stride=patch_size, bias=bias, dtype=dtype, device=device) + if conv3d: + self.proj = operations.Conv3d(in_chans, embed_dim, kernel_size=patch_size, stride=patch_size, bias=bias, dtype=dtype, device=device) + else: + self.proj = operations.Conv2d(in_chans, embed_dim, kernel_size=patch_size, stride=patch_size, bias=bias, dtype=dtype, device=device) self.norm = norm_layer(embed_dim) if norm_layer else nn.Identity() def forward(self, x): - # B, C, H, W = x.shape - # if self.img_size is not None: - # if self.strict_img_size: - # _assert(H == self.img_size[0], f"Input height ({H}) doesn't match model ({self.img_size[0]}).") - # _assert(W == self.img_size[1], f"Input width ({W}) doesn't match model ({self.img_size[1]}).") - # elif not self.dynamic_img_pad: - # _assert( - # H % self.patch_size[0] == 0, - # f"Input height ({H}) should be divisible by patch size ({self.patch_size[0]})." - # ) - # _assert( - # W % self.patch_size[1] == 0, - # f"Input width ({W}) should be divisible by patch size ({self.patch_size[1]})." - # ) if self.dynamic_img_pad: x = comfy.ldm.common_dit.pad_to_patch_size(x, self.patch_size, padding_mode=self.padding_mode) x = self.proj(x) diff --git a/comfy/ldm/modules/diffusionmodules/model.py b/comfy/ldm/modules/diffusionmodules/model.py index 04eb83b2..ed1e8821 100644 --- a/comfy/ldm/modules/diffusionmodules/model.py +++ b/comfy/ldm/modules/diffusionmodules/model.py @@ -3,7 +3,6 @@ import math import torch import torch.nn as nn import numpy as np -from typing import Optional, Any import logging from comfy import model_management @@ -44,51 +43,100 @@ def Normalize(in_channels, num_groups=32): return ops.GroupNorm(num_groups=num_groups, num_channels=in_channels, eps=1e-6, affine=True) +class VideoConv3d(nn.Module): + def __init__(self, n_channels, out_channels, kernel_size, stride=1, dilation=1, padding_mode='replicate', padding=1, **kwargs): + super().__init__() + + self.padding_mode = padding_mode + if padding != 0: + padding = (padding, padding, padding, padding, kernel_size - 1, 0) + else: + kwargs["padding"] = padding + + self.padding = padding + self.conv = ops.Conv3d(n_channels, out_channels, kernel_size, stride=stride, dilation=dilation, **kwargs) + + def forward(self, x): + if self.padding != 0: + x = torch.nn.functional.pad(x, self.padding, mode=self.padding_mode) + return self.conv(x) + +def interpolate_up(x, scale_factor): + try: + return torch.nn.functional.interpolate(x, scale_factor=scale_factor, mode="nearest") + except: #operation not implemented for bf16 + orig_shape = list(x.shape) + out_shape = orig_shape[:2] + for i in range(len(orig_shape) - 2): + out_shape.append(round(orig_shape[i + 2] * scale_factor[i])) + out = torch.empty(out_shape, dtype=x.dtype, layout=x.layout, device=x.device) + split = 8 + l = out.shape[1] // split + for i in range(0, out.shape[1], l): + out[:,i:i+l] = torch.nn.functional.interpolate(x[:,i:i+l].to(torch.float32), scale_factor=scale_factor, mode="nearest").to(x.dtype) + return out + class Upsample(nn.Module): - def __init__(self, in_channels, with_conv): + def __init__(self, in_channels, with_conv, conv_op=ops.Conv2d, scale_factor=2.0): super().__init__() self.with_conv = with_conv + self.scale_factor = scale_factor + if self.with_conv: - self.conv = ops.Conv2d(in_channels, + self.conv = conv_op(in_channels, in_channels, kernel_size=3, stride=1, padding=1) def forward(self, x): - try: - x = torch.nn.functional.interpolate(x, scale_factor=2.0, mode="nearest") - except: #operation not implemented for bf16 - b, c, h, w = x.shape - out = torch.empty((b, c, h*2, w*2), dtype=x.dtype, layout=x.layout, device=x.device) - split = 8 - l = out.shape[1] // split - for i in range(0, out.shape[1], l): - out[:,i:i+l] = torch.nn.functional.interpolate(x[:,i:i+l].to(torch.float32), scale_factor=2.0, mode="nearest").to(x.dtype) - del x - x = out + scale_factor = self.scale_factor + if isinstance(scale_factor, (int, float)): + scale_factor = (scale_factor,) * (x.ndim - 2) + if x.ndim == 5 and scale_factor[0] > 1.0: + t = x.shape[2] + if t > 1: + a, b = x.split((1, t - 1), dim=2) + del x + b = interpolate_up(b, scale_factor) + else: + a = x + + a = interpolate_up(a.squeeze(2), scale_factor=scale_factor[1:]).unsqueeze(2) + if t > 1: + x = torch.cat((a, b), dim=2) + else: + x = a + else: + x = interpolate_up(x, scale_factor) if self.with_conv: x = self.conv(x) return x class Downsample(nn.Module): - def __init__(self, in_channels, with_conv): + def __init__(self, in_channels, with_conv, stride=2, conv_op=ops.Conv2d): super().__init__() self.with_conv = with_conv if self.with_conv: # no asymmetric padding in torch conv, must do it ourselves - self.conv = ops.Conv2d(in_channels, + self.conv = conv_op(in_channels, in_channels, kernel_size=3, - stride=2, + stride=stride, padding=0) def forward(self, x): if self.with_conv: - pad = (0,1,0,1) - x = torch.nn.functional.pad(x, pad, mode="constant", value=0) + if x.ndim == 4: + pad = (0, 1, 0, 1) + mode = "constant" + x = torch.nn.functional.pad(x, pad, mode=mode, value=0) + elif x.ndim == 5: + pad = (1, 1, 1, 1, 2, 0) + mode = "replicate" + x = torch.nn.functional.pad(x, pad, mode=mode) x = self.conv(x) else: x = torch.nn.functional.avg_pool2d(x, kernel_size=2, stride=2) @@ -97,7 +145,7 @@ class Downsample(nn.Module): class ResnetBlock(nn.Module): def __init__(self, *, in_channels, out_channels=None, conv_shortcut=False, - dropout, temb_channels=512): + dropout, temb_channels=512, conv_op=ops.Conv2d): super().__init__() self.in_channels = in_channels out_channels = in_channels if out_channels is None else out_channels @@ -106,7 +154,7 @@ class ResnetBlock(nn.Module): self.swish = torch.nn.SiLU(inplace=True) self.norm1 = Normalize(in_channels) - self.conv1 = ops.Conv2d(in_channels, + self.conv1 = conv_op(in_channels, out_channels, kernel_size=3, stride=1, @@ -116,20 +164,20 @@ class ResnetBlock(nn.Module): out_channels) self.norm2 = Normalize(out_channels) self.dropout = torch.nn.Dropout(dropout, inplace=True) - self.conv2 = ops.Conv2d(out_channels, + self.conv2 = conv_op(out_channels, out_channels, kernel_size=3, stride=1, padding=1) if self.in_channels != self.out_channels: if self.use_conv_shortcut: - self.conv_shortcut = ops.Conv2d(in_channels, + self.conv_shortcut = conv_op(in_channels, out_channels, kernel_size=3, stride=1, padding=1) else: - self.nin_shortcut = ops.Conv2d(in_channels, + self.nin_shortcut = conv_op(in_channels, out_channels, kernel_size=1, stride=1, @@ -163,7 +211,6 @@ def slice_attention(q, k, v): mem_free_total = model_management.get_free_memory(q.device) - gb = 1024 ** 3 tensor_size = q.shape[0] * q.shape[1] * k.shape[2] * q.element_size() modifier = 3 if q.element_size() == 2 else 2.5 mem_required = tensor_size * modifier @@ -196,21 +243,25 @@ def slice_attention(q, k, v): def normal_attention(q, k, v): # compute attention - b,c,h,w = q.shape + orig_shape = q.shape + b = orig_shape[0] + c = orig_shape[1] - q = q.reshape(b,c,h*w) - q = q.permute(0,2,1) # b,hw,c - k = k.reshape(b,c,h*w) # b,c,hw - v = v.reshape(b,c,h*w) + q = q.reshape(b, c, -1) + q = q.permute(0, 2, 1) # b,hw,c + k = k.reshape(b, c, -1) # b,c,hw + v = v.reshape(b, c, -1) r1 = slice_attention(q, k, v) - h_ = r1.reshape(b,c,h,w) + h_ = r1.reshape(orig_shape) del r1 return h_ def xformers_attention(q, k, v): # compute attention - B, C, H, W = q.shape + orig_shape = q.shape + B = orig_shape[0] + C = orig_shape[1] q, k, v = map( lambda t: t.view(B, C, -1).transpose(1, 2).contiguous(), (q, k, v), @@ -218,14 +269,16 @@ def xformers_attention(q, k, v): try: out = xformers.ops.memory_efficient_attention(q, k, v, attn_bias=None) - out = out.transpose(1, 2).reshape(B, C, H, W) - except NotImplementedError as e: - out = slice_attention(q.view(B, -1, C), k.view(B, -1, C).transpose(1, 2), v.view(B, -1, C).transpose(1, 2)).reshape(B, C, H, W) + out = out.transpose(1, 2).reshape(orig_shape) + except NotImplementedError: + out = slice_attention(q.view(B, -1, C), k.view(B, -1, C).transpose(1, 2), v.view(B, -1, C).transpose(1, 2)).reshape(orig_shape) return out def pytorch_attention(q, k, v): # compute attention - B, C, H, W = q.shape + orig_shape = q.shape + B = orig_shape[0] + C = orig_shape[1] q, k, v = map( lambda t: t.view(B, 1, C, -1).transpose(2, 3).contiguous(), (q, k, v), @@ -233,35 +286,35 @@ def pytorch_attention(q, k, v): try: out = torch.nn.functional.scaled_dot_product_attention(q, k, v, attn_mask=None, dropout_p=0.0, is_causal=False) - out = out.transpose(2, 3).reshape(B, C, H, W) - except model_management.OOM_EXCEPTION as e: + out = out.transpose(2, 3).reshape(orig_shape) + except model_management.OOM_EXCEPTION: logging.warning("scaled_dot_product_attention OOMed: switched to slice attention") - out = slice_attention(q.view(B, -1, C), k.view(B, -1, C).transpose(1, 2), v.view(B, -1, C).transpose(1, 2)).reshape(B, C, H, W) + out = slice_attention(q.view(B, -1, C), k.view(B, -1, C).transpose(1, 2), v.view(B, -1, C).transpose(1, 2)).reshape(orig_shape) return out class AttnBlock(nn.Module): - def __init__(self, in_channels): + def __init__(self, in_channels, conv_op=ops.Conv2d): super().__init__() self.in_channels = in_channels self.norm = Normalize(in_channels) - self.q = ops.Conv2d(in_channels, + self.q = conv_op(in_channels, in_channels, kernel_size=1, stride=1, padding=0) - self.k = ops.Conv2d(in_channels, + self.k = conv_op(in_channels, in_channels, kernel_size=1, stride=1, padding=0) - self.v = ops.Conv2d(in_channels, + self.v = conv_op(in_channels, in_channels, kernel_size=1, stride=1, padding=0) - self.proj_out = ops.Conv2d(in_channels, + self.proj_out = conv_op(in_channels, in_channels, kernel_size=1, stride=1, @@ -291,8 +344,8 @@ class AttnBlock(nn.Module): return x+h_ -def make_attn(in_channels, attn_type="vanilla", attn_kwargs=None): - return AttnBlock(in_channels) +def make_attn(in_channels, attn_type="vanilla", attn_kwargs=None, conv_op=ops.Conv2d): + return AttnBlock(in_channels, conv_op=conv_op) class Model(nn.Module): @@ -451,6 +504,7 @@ class Encoder(nn.Module): def __init__(self, *, ch, out_ch, ch_mult=(1,2,4,8), num_res_blocks, attn_resolutions, dropout=0.0, resamp_with_conv=True, in_channels, resolution, z_channels, double_z=True, use_linear_attn=False, attn_type="vanilla", + conv3d=False, time_compress=None, **ignore_kwargs): super().__init__() if use_linear_attn: attn_type = "linear" @@ -461,8 +515,15 @@ class Encoder(nn.Module): self.resolution = resolution self.in_channels = in_channels + if conv3d: + conv_op = VideoConv3d + mid_attn_conv_op = ops.Conv3d + else: + conv_op = ops.Conv2d + mid_attn_conv_op = ops.Conv2d + # downsampling - self.conv_in = ops.Conv2d(in_channels, + self.conv_in = conv_op(in_channels, self.ch, kernel_size=3, stride=1, @@ -481,15 +542,20 @@ class Encoder(nn.Module): block.append(ResnetBlock(in_channels=block_in, out_channels=block_out, temb_channels=self.temb_ch, - dropout=dropout)) + dropout=dropout, + conv_op=conv_op)) block_in = block_out if curr_res in attn_resolutions: - attn.append(make_attn(block_in, attn_type=attn_type)) + attn.append(make_attn(block_in, attn_type=attn_type, conv_op=conv_op)) down = nn.Module() down.block = block down.attn = attn if i_level != self.num_resolutions-1: - down.downsample = Downsample(block_in, resamp_with_conv) + stride = 2 + if time_compress is not None: + if (self.num_resolutions - 1 - i_level) > math.log2(time_compress): + stride = (1, 2, 2) + down.downsample = Downsample(block_in, resamp_with_conv, stride=stride, conv_op=conv_op) curr_res = curr_res // 2 self.down.append(down) @@ -498,16 +564,18 @@ class Encoder(nn.Module): self.mid.block_1 = ResnetBlock(in_channels=block_in, out_channels=block_in, temb_channels=self.temb_ch, - dropout=dropout) - self.mid.attn_1 = make_attn(block_in, attn_type=attn_type) + dropout=dropout, + conv_op=conv_op) + self.mid.attn_1 = make_attn(block_in, attn_type=attn_type, conv_op=mid_attn_conv_op) self.mid.block_2 = ResnetBlock(in_channels=block_in, out_channels=block_in, temb_channels=self.temb_ch, - dropout=dropout) + dropout=dropout, + conv_op=conv_op) # end self.norm_out = Normalize(block_in) - self.conv_out = ops.Conv2d(block_in, + self.conv_out = conv_op(block_in, 2*z_channels if double_z else z_channels, kernel_size=3, stride=1, @@ -545,9 +613,10 @@ class Decoder(nn.Module): conv_out_op=ops.Conv2d, resnet_op=ResnetBlock, attn_op=AttnBlock, + conv3d=False, + time_compress=None, **ignorekwargs): super().__init__() - if use_linear_attn: attn_type = "linear" self.ch = ch self.temb_ch = 0 self.num_resolutions = len(ch_mult) @@ -557,8 +626,15 @@ class Decoder(nn.Module): self.give_pre_end = give_pre_end self.tanh_out = tanh_out - # compute in_ch_mult, block_in and curr_res at lowest res - in_ch_mult = (1,)+tuple(ch_mult) + if conv3d: + conv_op = VideoConv3d + conv_out_op = VideoConv3d + mid_attn_conv_op = ops.Conv3d + else: + conv_op = ops.Conv2d + mid_attn_conv_op = ops.Conv2d + + # compute block_in and curr_res at lowest res block_in = ch*ch_mult[self.num_resolutions-1] curr_res = resolution // 2**(self.num_resolutions-1) self.z_shape = (1,z_channels,curr_res,curr_res) @@ -566,7 +642,7 @@ class Decoder(nn.Module): self.z_shape, np.prod(self.z_shape))) # z to block_in - self.conv_in = ops.Conv2d(z_channels, + self.conv_in = conv_op(z_channels, block_in, kernel_size=3, stride=1, @@ -577,12 +653,14 @@ class Decoder(nn.Module): self.mid.block_1 = resnet_op(in_channels=block_in, out_channels=block_in, temb_channels=self.temb_ch, - dropout=dropout) - self.mid.attn_1 = attn_op(block_in) + dropout=dropout, + conv_op=conv_op) + self.mid.attn_1 = attn_op(block_in, conv_op=mid_attn_conv_op) self.mid.block_2 = resnet_op(in_channels=block_in, out_channels=block_in, temb_channels=self.temb_ch, - dropout=dropout) + dropout=dropout, + conv_op=conv_op) # upsampling self.up = nn.ModuleList() @@ -594,15 +672,21 @@ class Decoder(nn.Module): block.append(resnet_op(in_channels=block_in, out_channels=block_out, temb_channels=self.temb_ch, - dropout=dropout)) + dropout=dropout, + conv_op=conv_op)) block_in = block_out if curr_res in attn_resolutions: - attn.append(attn_op(block_in)) + attn.append(attn_op(block_in, conv_op=conv_op)) up = nn.Module() up.block = block up.attn = attn if i_level != 0: - up.upsample = Upsample(block_in, resamp_with_conv) + scale_factor = 2.0 + if time_compress is not None: + if i_level > math.log2(time_compress): + scale_factor = (1.0, 2.0, 2.0) + + up.upsample = Upsample(block_in, resamp_with_conv, conv_op=conv_op, scale_factor=scale_factor) curr_res = curr_res * 2 self.up.insert(0, up) # prepend to get consistent order diff --git a/comfy/ldm/modules/diffusionmodules/openaimodel.py b/comfy/ldm/modules/diffusionmodules/openaimodel.py index 2902073d..4c8d53ca 100644 --- a/comfy/ldm/modules/diffusionmodules/openaimodel.py +++ b/comfy/ldm/modules/diffusionmodules/openaimodel.py @@ -9,12 +9,12 @@ import logging from .util import ( checkpoint, avg_pool_nd, - zero_module, timestep_embedding, AlphaBlender, ) from ..attention import SpatialTransformer, SpatialVideoTransformer, default from comfy.ldm.util import exists +import comfy.patcher_extension import comfy.ops ops = comfy.ops.disable_weight_init @@ -47,6 +47,15 @@ def forward_timestep_embed(ts, x, emb, context=None, transformer_options={}, out elif isinstance(layer, Upsample): x = layer(x, output_shape=output_shape) else: + if "patches" in transformer_options and "forward_timestep_embed_patch" in transformer_options["patches"]: + found_patched = False + for class_type, handler in transformer_options["patches"]["forward_timestep_embed_patch"]: + if isinstance(layer, class_type): + x = handler(layer, x, emb, context, transformer_options, output_shape, time_context, num_video_frames, image_only_indicator) + found_patched = True + break + if found_patched: + continue x = layer(x) return x @@ -819,6 +828,13 @@ class UNetModel(nn.Module): ) def forward(self, x, timesteps=None, context=None, y=None, control=None, transformer_options={}, **kwargs): + return comfy.patcher_extension.WrapperExecutor.new_class_executor( + self._forward, + self, + comfy.patcher_extension.get_all_wrappers(comfy.patcher_extension.WrappersMP.DIFFUSION_MODEL, transformer_options) + ).execute(x, timesteps, context, y, control, transformer_options, **kwargs) + + def _forward(self, x, timesteps=None, context=None, y=None, control=None, transformer_options={}, **kwargs): """ Apply the model to an input batch. :param x: an [N x C x ...] Tensor of inputs. diff --git a/comfy/ldm/modules/diffusionmodules/upscaling.py b/comfy/ldm/modules/diffusionmodules/upscaling.py index f5ac7c2f..9dbf1fe7 100644 --- a/comfy/ldm/modules/diffusionmodules/upscaling.py +++ b/comfy/ldm/modules/diffusionmodules/upscaling.py @@ -4,7 +4,6 @@ import numpy as np from functools import partial from .util import extract_into_tensor, make_beta_schedule -from comfy.ldm.util import default class AbstractLowScaleModel(nn.Module): diff --git a/comfy/ldm/modules/diffusionmodules/util.py b/comfy/ldm/modules/diffusionmodules/util.py index ce14ad5e..233011dc 100644 --- a/comfy/ldm/modules/diffusionmodules/util.py +++ b/comfy/ldm/modules/diffusionmodules/util.py @@ -8,8 +8,8 @@ # thanks! -import os import math +import logging import torch import torch.nn as nn import numpy as np @@ -131,7 +131,7 @@ def make_ddim_timesteps(ddim_discr_method, num_ddim_timesteps, num_ddpm_timestep # add one to get the final alpha values right (the ones from first scale to data during sampling) steps_out = ddim_timesteps + 1 if verbose: - print(f'Selected timesteps for ddim sampler: {steps_out}') + logging.info(f'Selected timesteps for ddim sampler: {steps_out}') return steps_out @@ -143,8 +143,8 @@ def make_ddim_sampling_parameters(alphacums, ddim_timesteps, eta, verbose=True): # according the the formula provided in https://arxiv.org/abs/2010.02502 sigmas = eta * np.sqrt((1 - alphas_prev) / (1 - alphas) * (1 - alphas / alphas_prev)) if verbose: - print(f'Selected alphas for ddim sampler: a_t: {alphas}; a_(t-1): {alphas_prev}') - print(f'For the chosen value of eta, which is {eta}, ' + logging.info(f'Selected alphas for ddim sampler: a_t: {alphas}; a_(t-1): {alphas_prev}') + logging.info(f'For the chosen value of eta, which is {eta}, ' f'this results in the following sigma_t schedule for ddim sampler {sigmas}') return sigmas, alphas, alphas_prev diff --git a/comfy/ldm/modules/distributions/distributions.py b/comfy/ldm/modules/distributions/distributions.py index f2b8ef90..df987c5e 100644 --- a/comfy/ldm/modules/distributions/distributions.py +++ b/comfy/ldm/modules/distributions/distributions.py @@ -30,10 +30,10 @@ class DiagonalGaussianDistribution(object): self.std = torch.exp(0.5 * self.logvar) self.var = torch.exp(self.logvar) if self.deterministic: - self.var = self.std = torch.zeros_like(self.mean).to(device=self.parameters.device) + self.var = self.std = torch.zeros_like(self.mean, device=self.parameters.device) def sample(self): - x = self.mean + self.std * torch.randn(self.mean.shape).to(device=self.parameters.device) + x = self.mean + self.std * torch.randn(self.mean.shape, device=self.parameters.device) return x def kl(self, other=None): diff --git a/comfy/ldm/modules/sub_quadratic_attention.py b/comfy/ldm/modules/sub_quadratic_attention.py index 1bc4138c..21c72373 100644 --- a/comfy/ldm/modules/sub_quadratic_attention.py +++ b/comfy/ldm/modules/sub_quadratic_attention.py @@ -17,12 +17,11 @@ import math import logging try: - from typing import Optional, NamedTuple, List, Protocol + from typing import Optional, NamedTuple, List, Protocol except ImportError: - from typing import Optional, NamedTuple, List - from typing_extensions import Protocol + from typing import Optional, NamedTuple, List + from typing_extensions import Protocol -from torch import Tensor from typing import List from comfy import model_management @@ -172,7 +171,7 @@ def _get_attention_scores_no_kv_chunking( del attn_scores except model_management.OOM_EXCEPTION: logging.warning("ran out of memory while running softmax in _get_attention_scores_no_kv_chunking, trying slower in place softmax instead") - attn_scores -= attn_scores.max(dim=-1, keepdim=True).values + attn_scores -= attn_scores.max(dim=-1, keepdim=True).values # noqa: F821 attn_scores is not defined torch.exp(attn_scores, out=attn_scores) summed = torch.sum(attn_scores, dim=-1, keepdim=True) attn_scores /= summed @@ -234,6 +233,8 @@ def efficient_dot_product_attention( def get_mask_chunk(chunk_idx: int) -> Tensor: if mask is None: return None + if mask.shape[1] == 1: + return mask chunk = min(query_chunk_size, q_tokens) return mask[:,chunk_idx:chunk_idx + chunk] @@ -260,7 +261,7 @@ def efficient_dot_product_attention( value=value, mask=mask, ) - + # TODO: maybe we should use torch.empty_like(query) to allocate storage in-advance, # and pass slices to be mutated, instead of torch.cat()ing the returned slices res = torch.cat([ diff --git a/comfy/ldm/modules/temporal_ae.py b/comfy/ldm/modules/temporal_ae.py index 2992aeaf..e0f78bf6 100644 --- a/comfy/ldm/modules/temporal_ae.py +++ b/comfy/ldm/modules/temporal_ae.py @@ -1,5 +1,5 @@ import functools -from typing import Callable, Iterable, Union +from typing import Iterable, Union import torch from einops import rearrange, repeat @@ -194,6 +194,7 @@ def make_time_attn( attn_kwargs=None, alpha: float = 0, merge_strategy: str = "learned", + conv_op=ops.Conv2d, ): return partialclass( AttnVideoBlock, in_channels, alpha=alpha, merge_strategy=merge_strategy diff --git a/comfy/ldm/pixart/blocks.py b/comfy/ldm/pixart/blocks.py new file mode 100644 index 00000000..2225076e --- /dev/null +++ b/comfy/ldm/pixart/blocks.py @@ -0,0 +1,380 @@ +# Based on: +# https://github.com/PixArt-alpha/PixArt-alpha [Apache 2.0 license] +# https://github.com/PixArt-alpha/PixArt-sigma [Apache 2.0 license] +import torch +import torch.nn as nn +import torch.nn.functional as F +from einops import rearrange + +from comfy.ldm.modules.diffusionmodules.mmdit import TimestepEmbedder, Mlp, timestep_embedding +from comfy.ldm.modules.attention import optimized_attention + +# if model_management.xformers_enabled(): +# import xformers.ops +# if int((xformers.__version__).split(".")[2].split("+")[0]) >= 28: +# block_diagonal_mask_from_seqlens = xformers.ops.fmha.attn_bias.BlockDiagonalMask.from_seqlens +# else: +# block_diagonal_mask_from_seqlens = xformers.ops.fmha.BlockDiagonalMask.from_seqlens + +def modulate(x, shift, scale): + return x * (1 + scale.unsqueeze(1)) + shift.unsqueeze(1) + +def t2i_modulate(x, shift, scale): + return x * (1 + scale) + shift + +class MultiHeadCrossAttention(nn.Module): + def __init__(self, d_model, num_heads, attn_drop=0., proj_drop=0., dtype=None, device=None, operations=None, **kwargs): + super(MultiHeadCrossAttention, self).__init__() + assert d_model % num_heads == 0, "d_model must be divisible by num_heads" + + self.d_model = d_model + self.num_heads = num_heads + self.head_dim = d_model // num_heads + + self.q_linear = operations.Linear(d_model, d_model, dtype=dtype, device=device) + self.kv_linear = operations.Linear(d_model, d_model*2, dtype=dtype, device=device) + self.attn_drop = nn.Dropout(attn_drop) + self.proj = operations.Linear(d_model, d_model, dtype=dtype, device=device) + self.proj_drop = nn.Dropout(proj_drop) + + def forward(self, x, cond, mask=None): + # query/value: img tokens; key: condition; mask: if padding tokens + B, N, C = x.shape + + q = self.q_linear(x).view(1, -1, self.num_heads, self.head_dim) + kv = self.kv_linear(cond).view(1, -1, 2, self.num_heads, self.head_dim) + k, v = kv.unbind(2) + + assert mask is None # TODO? + # # TODO: xformers needs separate mask logic here + # if model_management.xformers_enabled(): + # attn_bias = None + # if mask is not None: + # attn_bias = block_diagonal_mask_from_seqlens([N] * B, mask) + # x = xformers.ops.memory_efficient_attention(q, k, v, p=0, attn_bias=attn_bias) + # else: + # q, k, v = map(lambda t: t.transpose(1, 2), (q, k, v),) + # attn_mask = None + # mask = torch.ones(()) + # if mask is not None and len(mask) > 1: + # # Create equivalent of xformer diagonal block mask, still only correct for square masks + # # But depth doesn't matter as tensors can expand in that dimension + # attn_mask_template = torch.ones( + # [q.shape[2] // B, mask[0]], + # dtype=torch.bool, + # device=q.device + # ) + # attn_mask = torch.block_diag(attn_mask_template) + # + # # create a mask on the diagonal for each mask in the batch + # for _ in range(B - 1): + # attn_mask = torch.block_diag(attn_mask, attn_mask_template) + # x = optimized_attention(q, k, v, self.num_heads, mask=attn_mask, skip_reshape=True) + + x = optimized_attention(q.view(B, -1, C), k.view(B, -1, C), v.view(B, -1, C), self.num_heads, mask=None) + x = self.proj(x) + x = self.proj_drop(x) + return x + + +class AttentionKVCompress(nn.Module): + """Multi-head Attention block with KV token compression and qk norm.""" + def __init__(self, dim, num_heads=8, qkv_bias=True, sampling='conv', sr_ratio=1, qk_norm=False, dtype=None, device=None, operations=None, **kwargs): + """ + Args: + dim (int): Number of input channels. + num_heads (int): Number of attention heads. + qkv_bias (bool: If True, add a learnable bias to query, key, value. + """ + super().__init__() + assert dim % num_heads == 0, 'dim should be divisible by num_heads' + self.num_heads = num_heads + self.head_dim = dim // num_heads + self.scale = self.head_dim ** -0.5 + + self.qkv = operations.Linear(dim, dim * 3, bias=qkv_bias, dtype=dtype, device=device) + self.proj = operations.Linear(dim, dim, dtype=dtype, device=device) + + self.sampling=sampling # ['conv', 'ave', 'uniform', 'uniform_every'] + self.sr_ratio = sr_ratio + if sr_ratio > 1 and sampling == 'conv': + # Avg Conv Init. + self.sr = operations.Conv2d(dim, dim, groups=dim, kernel_size=sr_ratio, stride=sr_ratio, dtype=dtype, device=device) + # self.sr.weight.data.fill_(1/sr_ratio**2) + # self.sr.bias.data.zero_() + self.norm = operations.LayerNorm(dim, dtype=dtype, device=device) + if qk_norm: + self.q_norm = operations.LayerNorm(dim, dtype=dtype, device=device) + self.k_norm = operations.LayerNorm(dim, dtype=dtype, device=device) + else: + self.q_norm = nn.Identity() + self.k_norm = nn.Identity() + + def downsample_2d(self, tensor, H, W, scale_factor, sampling=None): + if sampling is None or scale_factor == 1: + return tensor + B, N, C = tensor.shape + + if sampling == 'uniform_every': + return tensor[:, ::scale_factor], int(N // scale_factor) + + tensor = tensor.reshape(B, H, W, C).permute(0, 3, 1, 2) + new_H, new_W = int(H / scale_factor), int(W / scale_factor) + new_N = new_H * new_W + + if sampling == 'ave': + tensor = F.interpolate( + tensor, scale_factor=1 / scale_factor, mode='nearest' + ).permute(0, 2, 3, 1) + elif sampling == 'uniform': + tensor = tensor[:, :, ::scale_factor, ::scale_factor].permute(0, 2, 3, 1) + elif sampling == 'conv': + tensor = self.sr(tensor).reshape(B, C, -1).permute(0, 2, 1) + tensor = self.norm(tensor) + else: + raise ValueError + + return tensor.reshape(B, new_N, C).contiguous(), new_N + + def forward(self, x, mask=None, HW=None, block_id=None): + B, N, C = x.shape # 2 4096 1152 + new_N = N + if HW is None: + H = W = int(N ** 0.5) + else: + H, W = HW + qkv = self.qkv(x).reshape(B, N, 3, C) + + q, k, v = qkv.unbind(2) + q = self.q_norm(q) + k = self.k_norm(k) + + # KV compression + if self.sr_ratio > 1: + k, new_N = self.downsample_2d(k, H, W, self.sr_ratio, sampling=self.sampling) + v, new_N = self.downsample_2d(v, H, W, self.sr_ratio, sampling=self.sampling) + + q = q.reshape(B, N, self.num_heads, C // self.num_heads) + k = k.reshape(B, new_N, self.num_heads, C // self.num_heads) + v = v.reshape(B, new_N, self.num_heads, C // self.num_heads) + + if mask is not None: + raise NotImplementedError("Attn mask logic not added for self attention") + + # This is never called at the moment + # attn_bias = None + # if mask is not None: + # attn_bias = torch.zeros([B * self.num_heads, q.shape[1], k.shape[1]], dtype=q.dtype, device=q.device) + # attn_bias.masked_fill_(mask.squeeze(1).repeat(self.num_heads, 1, 1) == 0, float('-inf')) + + # attention 2 + q, k, v = map(lambda t: t.transpose(1, 2), (q, k, v),) + x = optimized_attention(q, k, v, self.num_heads, mask=None, skip_reshape=True) + + x = x.view(B, N, C) + x = self.proj(x) + return x + + +class FinalLayer(nn.Module): + """ + The final layer of PixArt. + """ + def __init__(self, hidden_size, patch_size, out_channels, dtype=None, device=None, operations=None): + super().__init__() + self.norm_final = operations.LayerNorm(hidden_size, elementwise_affine=False, eps=1e-6, dtype=dtype, device=device) + self.linear = operations.Linear(hidden_size, patch_size * patch_size * out_channels, bias=True, dtype=dtype, device=device) + self.adaLN_modulation = nn.Sequential( + nn.SiLU(), + operations.Linear(hidden_size, 2 * hidden_size, bias=True, dtype=dtype, device=device) + ) + + def forward(self, x, c): + shift, scale = self.adaLN_modulation(c).chunk(2, dim=1) + x = modulate(self.norm_final(x), shift, scale) + x = self.linear(x) + return x + +class T2IFinalLayer(nn.Module): + """ + The final layer of PixArt. + """ + def __init__(self, hidden_size, patch_size, out_channels, dtype=None, device=None, operations=None): + super().__init__() + self.norm_final = operations.LayerNorm(hidden_size, elementwise_affine=False, eps=1e-6, dtype=dtype, device=device) + self.linear = operations.Linear(hidden_size, patch_size * patch_size * out_channels, bias=True, dtype=dtype, device=device) + self.scale_shift_table = nn.Parameter(torch.randn(2, hidden_size) / hidden_size ** 0.5) + self.out_channels = out_channels + + def forward(self, x, t): + shift, scale = (self.scale_shift_table[None].to(dtype=x.dtype, device=x.device) + t[:, None]).chunk(2, dim=1) + x = t2i_modulate(self.norm_final(x), shift, scale) + x = self.linear(x) + return x + + +class MaskFinalLayer(nn.Module): + """ + The final layer of PixArt. + """ + def __init__(self, final_hidden_size, c_emb_size, patch_size, out_channels, dtype=None, device=None, operations=None): + super().__init__() + self.norm_final = operations.LayerNorm(final_hidden_size, elementwise_affine=False, eps=1e-6, dtype=dtype, device=device) + self.linear = operations.Linear(final_hidden_size, patch_size * patch_size * out_channels, bias=True, dtype=dtype, device=device) + self.adaLN_modulation = nn.Sequential( + nn.SiLU(), + operations.Linear(c_emb_size, 2 * final_hidden_size, bias=True, dtype=dtype, device=device) + ) + def forward(self, x, t): + shift, scale = self.adaLN_modulation(t).chunk(2, dim=1) + x = modulate(self.norm_final(x), shift, scale) + x = self.linear(x) + return x + + +class DecoderLayer(nn.Module): + """ + The final layer of PixArt. + """ + def __init__(self, hidden_size, decoder_hidden_size, dtype=None, device=None, operations=None): + super().__init__() + self.norm_decoder = operations.LayerNorm(hidden_size, elementwise_affine=False, eps=1e-6, dtype=dtype, device=device) + self.linear = operations.Linear(hidden_size, decoder_hidden_size, bias=True, dtype=dtype, device=device) + self.adaLN_modulation = nn.Sequential( + nn.SiLU(), + operations.Linear(hidden_size, 2 * hidden_size, bias=True, dtype=dtype, device=device) + ) + def forward(self, x, t): + shift, scale = self.adaLN_modulation(t).chunk(2, dim=1) + x = modulate(self.norm_decoder(x), shift, scale) + x = self.linear(x) + return x + + +class SizeEmbedder(TimestepEmbedder): + """ + Embeds scalar timesteps into vector representations. + """ + def __init__(self, hidden_size, frequency_embedding_size=256, dtype=None, device=None, operations=None): + super().__init__(hidden_size=hidden_size, frequency_embedding_size=frequency_embedding_size, operations=operations) + self.mlp = nn.Sequential( + operations.Linear(frequency_embedding_size, hidden_size, bias=True, dtype=dtype, device=device), + nn.SiLU(), + operations.Linear(hidden_size, hidden_size, bias=True, dtype=dtype, device=device), + ) + self.frequency_embedding_size = frequency_embedding_size + self.outdim = hidden_size + + def forward(self, s, bs): + if s.ndim == 1: + s = s[:, None] + assert s.ndim == 2 + if s.shape[0] != bs: + s = s.repeat(bs//s.shape[0], 1) + assert s.shape[0] == bs + b, dims = s.shape[0], s.shape[1] + s = rearrange(s, "b d -> (b d)") + s_freq = timestep_embedding(s, self.frequency_embedding_size) + s_emb = self.mlp(s_freq.to(s.dtype)) + s_emb = rearrange(s_emb, "(b d) d2 -> b (d d2)", b=b, d=dims, d2=self.outdim) + return s_emb + + +class LabelEmbedder(nn.Module): + """ + Embeds class labels into vector representations. Also handles label dropout for classifier-free guidance. + """ + def __init__(self, num_classes, hidden_size, dropout_prob, dtype=None, device=None, operations=None): + super().__init__() + use_cfg_embedding = dropout_prob > 0 + self.embedding_table = operations.Embedding(num_classes + use_cfg_embedding, hidden_size, dtype=dtype, device=device), + self.num_classes = num_classes + self.dropout_prob = dropout_prob + + def token_drop(self, labels, force_drop_ids=None): + """ + Drops labels to enable classifier-free guidance. + """ + if force_drop_ids is None: + drop_ids = torch.rand(labels.shape[0]).cuda() < self.dropout_prob + else: + drop_ids = force_drop_ids == 1 + labels = torch.where(drop_ids, self.num_classes, labels) + return labels + + def forward(self, labels, train, force_drop_ids=None): + use_dropout = self.dropout_prob > 0 + if (train and use_dropout) or (force_drop_ids is not None): + labels = self.token_drop(labels, force_drop_ids) + embeddings = self.embedding_table(labels) + return embeddings + + +class CaptionEmbedder(nn.Module): + """ + Embeds class labels into vector representations. Also handles label dropout for classifier-free guidance. + """ + def __init__(self, in_channels, hidden_size, uncond_prob, act_layer=nn.GELU(approximate='tanh'), token_num=120, dtype=None, device=None, operations=None): + super().__init__() + self.y_proj = Mlp( + in_features=in_channels, hidden_features=hidden_size, out_features=hidden_size, act_layer=act_layer, + dtype=dtype, device=device, operations=operations, + ) + self.register_buffer("y_embedding", nn.Parameter(torch.randn(token_num, in_channels) / in_channels ** 0.5)) + self.uncond_prob = uncond_prob + + def token_drop(self, caption, force_drop_ids=None): + """ + Drops labels to enable classifier-free guidance. + """ + if force_drop_ids is None: + drop_ids = torch.rand(caption.shape[0]).cuda() < self.uncond_prob + else: + drop_ids = force_drop_ids == 1 + caption = torch.where(drop_ids[:, None, None, None], self.y_embedding, caption) + return caption + + def forward(self, caption, train, force_drop_ids=None): + if train: + assert caption.shape[2:] == self.y_embedding.shape + use_dropout = self.uncond_prob > 0 + if (train and use_dropout) or (force_drop_ids is not None): + caption = self.token_drop(caption, force_drop_ids) + caption = self.y_proj(caption) + return caption + + +class CaptionEmbedderDoubleBr(nn.Module): + """ + Embeds class labels into vector representations. Also handles label dropout for classifier-free guidance. + """ + def __init__(self, in_channels, hidden_size, uncond_prob, act_layer=nn.GELU(approximate='tanh'), token_num=120, dtype=None, device=None, operations=None): + super().__init__() + self.proj = Mlp( + in_features=in_channels, hidden_features=hidden_size, out_features=hidden_size, act_layer=act_layer, + dtype=dtype, device=device, operations=operations, + ) + self.embedding = nn.Parameter(torch.randn(1, in_channels) / 10 ** 0.5) + self.y_embedding = nn.Parameter(torch.randn(token_num, in_channels) / 10 ** 0.5) + self.uncond_prob = uncond_prob + + def token_drop(self, global_caption, caption, force_drop_ids=None): + """ + Drops labels to enable classifier-free guidance. + """ + if force_drop_ids is None: + drop_ids = torch.rand(global_caption.shape[0]).cuda() < self.uncond_prob + else: + drop_ids = force_drop_ids == 1 + global_caption = torch.where(drop_ids[:, None], self.embedding, global_caption) + caption = torch.where(drop_ids[:, None, None, None], self.y_embedding, caption) + return global_caption, caption + + def forward(self, caption, train, force_drop_ids=None): + assert caption.shape[2: ] == self.y_embedding.shape + global_caption = caption.mean(dim=2).squeeze() + use_dropout = self.uncond_prob > 0 + if (train and use_dropout) or (force_drop_ids is not None): + global_caption, caption = self.token_drop(global_caption, caption, force_drop_ids) + y_embed = self.proj(global_caption) + return y_embed, caption diff --git a/comfy/ldm/pixart/pixartms.py b/comfy/ldm/pixart/pixartms.py new file mode 100644 index 00000000..7d4eebdc --- /dev/null +++ b/comfy/ldm/pixart/pixartms.py @@ -0,0 +1,256 @@ +# Based on: +# https://github.com/PixArt-alpha/PixArt-alpha [Apache 2.0 license] +# https://github.com/PixArt-alpha/PixArt-sigma [Apache 2.0 license] +import torch +import torch.nn as nn + +from .blocks import ( + t2i_modulate, + CaptionEmbedder, + AttentionKVCompress, + MultiHeadCrossAttention, + T2IFinalLayer, + SizeEmbedder, +) +from comfy.ldm.modules.diffusionmodules.mmdit import TimestepEmbedder, PatchEmbed, Mlp, get_1d_sincos_pos_embed_from_grid_torch + + +def get_2d_sincos_pos_embed_torch(embed_dim, w, h, pe_interpolation=1.0, base_size=16, device=None, dtype=torch.float32): + grid_h, grid_w = torch.meshgrid( + torch.arange(h, device=device, dtype=dtype) / (h/base_size) / pe_interpolation, + torch.arange(w, device=device, dtype=dtype) / (w/base_size) / pe_interpolation, + indexing='ij' + ) + emb_h = get_1d_sincos_pos_embed_from_grid_torch(embed_dim // 2, grid_h, device=device, dtype=dtype) + emb_w = get_1d_sincos_pos_embed_from_grid_torch(embed_dim // 2, grid_w, device=device, dtype=dtype) + emb = torch.cat([emb_w, emb_h], dim=1) # (H*W, D) + return emb + +class PixArtMSBlock(nn.Module): + """ + A PixArt block with adaptive layer norm zero (adaLN-Zero) conditioning. + """ + def __init__(self, hidden_size, num_heads, mlp_ratio=4.0, drop_path=0., input_size=None, + sampling=None, sr_ratio=1, qk_norm=False, dtype=None, device=None, operations=None, **block_kwargs): + super().__init__() + self.hidden_size = hidden_size + self.norm1 = operations.LayerNorm(hidden_size, elementwise_affine=False, eps=1e-6, dtype=dtype, device=device) + self.attn = AttentionKVCompress( + hidden_size, num_heads=num_heads, qkv_bias=True, sampling=sampling, sr_ratio=sr_ratio, + qk_norm=qk_norm, dtype=dtype, device=device, operations=operations, **block_kwargs + ) + self.cross_attn = MultiHeadCrossAttention( + hidden_size, num_heads, dtype=dtype, device=device, operations=operations, **block_kwargs + ) + self.norm2 = operations.LayerNorm(hidden_size, elementwise_affine=False, eps=1e-6, dtype=dtype, device=device) + # to be compatible with lower version pytorch + approx_gelu = lambda: nn.GELU(approximate="tanh") + self.mlp = Mlp( + in_features=hidden_size, hidden_features=int(hidden_size * mlp_ratio), act_layer=approx_gelu, + dtype=dtype, device=device, operations=operations + ) + self.scale_shift_table = nn.Parameter(torch.randn(6, hidden_size) / hidden_size ** 0.5) + + def forward(self, x, y, t, mask=None, HW=None, **kwargs): + B, N, C = x.shape + + shift_msa, scale_msa, gate_msa, shift_mlp, scale_mlp, gate_mlp = (self.scale_shift_table[None].to(dtype=x.dtype, device=x.device) + t.reshape(B, 6, -1)).chunk(6, dim=1) + x = x + (gate_msa * self.attn(t2i_modulate(self.norm1(x), shift_msa, scale_msa), HW=HW)) + x = x + self.cross_attn(x, y, mask) + x = x + (gate_mlp * self.mlp(t2i_modulate(self.norm2(x), shift_mlp, scale_mlp))) + + return x + + +### Core PixArt Model ### +class PixArtMS(nn.Module): + """ + Diffusion model with a Transformer backbone. + """ + def __init__( + self, + input_size=32, + patch_size=2, + in_channels=4, + hidden_size=1152, + depth=28, + num_heads=16, + mlp_ratio=4.0, + class_dropout_prob=0.1, + learn_sigma=True, + pred_sigma=True, + drop_path: float = 0., + caption_channels=4096, + pe_interpolation=None, + pe_precision=None, + config=None, + model_max_length=120, + micro_condition=True, + qk_norm=False, + kv_compress_config=None, + dtype=None, + device=None, + operations=None, + **kwargs, + ): + nn.Module.__init__(self) + self.dtype = dtype + self.pred_sigma = pred_sigma + self.in_channels = in_channels + self.out_channels = in_channels * 2 if pred_sigma else in_channels + self.patch_size = patch_size + self.num_heads = num_heads + self.pe_interpolation = pe_interpolation + self.pe_precision = pe_precision + self.hidden_size = hidden_size + self.depth = depth + + approx_gelu = lambda: nn.GELU(approximate="tanh") + self.t_block = nn.Sequential( + nn.SiLU(), + operations.Linear(hidden_size, 6 * hidden_size, bias=True, dtype=dtype, device=device) + ) + self.x_embedder = PatchEmbed( + patch_size=patch_size, + in_chans=in_channels, + embed_dim=hidden_size, + bias=True, + dtype=dtype, + device=device, + operations=operations + ) + self.t_embedder = TimestepEmbedder( + hidden_size, dtype=dtype, device=device, operations=operations, + ) + self.y_embedder = CaptionEmbedder( + in_channels=caption_channels, hidden_size=hidden_size, uncond_prob=class_dropout_prob, + act_layer=approx_gelu, token_num=model_max_length, + dtype=dtype, device=device, operations=operations, + ) + + self.micro_conditioning = micro_condition + if self.micro_conditioning: + self.csize_embedder = SizeEmbedder(hidden_size//3, dtype=dtype, device=device, operations=operations) + self.ar_embedder = SizeEmbedder(hidden_size//3, dtype=dtype, device=device, operations=operations) + + # For fixed sin-cos embedding: + # num_patches = (input_size // patch_size) * (input_size // patch_size) + # self.base_size = input_size // self.patch_size + # self.register_buffer("pos_embed", torch.zeros(1, num_patches, hidden_size)) + + drop_path = [x.item() for x in torch.linspace(0, drop_path, depth)] # stochastic depth decay rule + if kv_compress_config is None: + kv_compress_config = { + 'sampling': None, + 'scale_factor': 1, + 'kv_compress_layer': [], + } + self.blocks = nn.ModuleList([ + PixArtMSBlock( + hidden_size, num_heads, mlp_ratio=mlp_ratio, drop_path=drop_path[i], + sampling=kv_compress_config['sampling'], + sr_ratio=int(kv_compress_config['scale_factor']) if i in kv_compress_config['kv_compress_layer'] else 1, + qk_norm=qk_norm, + dtype=dtype, + device=device, + operations=operations, + ) + for i in range(depth) + ]) + self.final_layer = T2IFinalLayer( + hidden_size, patch_size, self.out_channels, dtype=dtype, device=device, operations=operations + ) + + def forward_orig(self, x, timestep, y, mask=None, c_size=None, c_ar=None, **kwargs): + """ + Original forward pass of PixArt. + x: (N, C, H, W) tensor of spatial inputs (images or latent representations of images) + t: (N,) tensor of diffusion timesteps + y: (N, 1, 120, C) conditioning + ar: (N, 1): aspect ratio + cs: (N ,2) size conditioning for height/width + """ + B, C, H, W = x.shape + c_res = (H + W) // 2 + pe_interpolation = self.pe_interpolation + if pe_interpolation is None or self.pe_precision is not None: + # calculate pe_interpolation on-the-fly + pe_interpolation = round(c_res / (512/8.0), self.pe_precision or 0) + + pos_embed = get_2d_sincos_pos_embed_torch( + self.hidden_size, + h=(H // self.patch_size), + w=(W // self.patch_size), + pe_interpolation=pe_interpolation, + base_size=((round(c_res / 64) * 64) // self.patch_size), + device=x.device, + dtype=x.dtype, + ).unsqueeze(0) + + x = self.x_embedder(x) + pos_embed # (N, T, D), where T = H * W / patch_size ** 2 + t = self.t_embedder(timestep, x.dtype) # (N, D) + + if self.micro_conditioning and (c_size is not None and c_ar is not None): + bs = x.shape[0] + c_size = self.csize_embedder(c_size, bs) # (N, D) + c_ar = self.ar_embedder(c_ar, bs) # (N, D) + t = t + torch.cat([c_size, c_ar], dim=1) + + t0 = self.t_block(t) + y = self.y_embedder(y, self.training) # (N, D) + + if mask is not None: + if mask.shape[0] != y.shape[0]: + mask = mask.repeat(y.shape[0] // mask.shape[0], 1) + mask = mask.squeeze(1).squeeze(1) + y = y.squeeze(1).masked_select(mask.unsqueeze(-1) != 0).view(1, -1, x.shape[-1]) + y_lens = mask.sum(dim=1).tolist() + else: + y_lens = None + y = y.squeeze(1).view(1, -1, x.shape[-1]) + for block in self.blocks: + x = block(x, y, t0, y_lens, (H, W), **kwargs) # (N, T, D) + + x = self.final_layer(x, t) # (N, T, patch_size ** 2 * out_channels) + x = self.unpatchify(x, H, W) # (N, out_channels, H, W) + + return x + + def forward(self, x, timesteps, context, c_size=None, c_ar=None, **kwargs): + B, C, H, W = x.shape + + # Fallback for missing microconds + if self.micro_conditioning: + if c_size is None: + c_size = torch.tensor([H*8, W*8], dtype=x.dtype, device=x.device).repeat(B, 1) + + if c_ar is None: + c_ar = torch.tensor([H/W], dtype=x.dtype, device=x.device).repeat(B, 1) + + ## Still accepts the input w/o that dim but returns garbage + if len(context.shape) == 3: + context = context.unsqueeze(1) + + ## run original forward pass + out = self.forward_orig(x, timesteps, context, c_size=c_size, c_ar=c_ar) + + ## only return EPS + if self.pred_sigma: + return out[:, :self.in_channels] + return out + + def unpatchify(self, x, h, w): + """ + x: (N, T, patch_size**2 * C) + imgs: (N, H, W, C) + """ + c = self.out_channels + p = self.x_embedder.patch_size[0] + h = h // self.patch_size + w = w // self.patch_size + assert h * w == x.shape[1] + + x = x.reshape(shape=(x.shape[0], h, w, p, p, c)) + x = torch.einsum('nhwpqc->nchpwq', x) + imgs = x.reshape(shape=(x.shape[0], c, h * p, w * p)) + return imgs diff --git a/comfy/ldm/util.py b/comfy/ldm/util.py index 8c09ca1c..30b4b472 100644 --- a/comfy/ldm/util.py +++ b/comfy/ldm/util.py @@ -1,4 +1,5 @@ import importlib +import logging import torch from torch import optim @@ -23,7 +24,7 @@ def log_txt_as_img(wh, xc, size=10): try: draw.text((0, 0), lines, fill="black", font=font) except UnicodeEncodeError: - print("Cant encode string for logging. Skipping.") + logging.warning("Cant encode string for logging. Skipping.") txt = np.array(txt).transpose(2, 0, 1) / 127.5 - 1.0 txts.append(txt) @@ -65,7 +66,7 @@ def mean_flat(tensor): def count_params(model, verbose=False): total_params = sum(p.numel() for p in model.parameters()) if verbose: - print(f"{model.__class__.__name__} has {total_params*1.e-6:.2f} M params.") + logging.info(f"{model.__class__.__name__} has {total_params*1.e-6:.2f} M params.") return total_params @@ -133,7 +134,6 @@ class AdamWwithEMAandWings(optim.Optimizer): exp_avgs = [] exp_avg_sqs = [] ema_params_with_grad = [] - state_sums = [] max_exp_avg_sqs = [] state_steps = [] amsgrad = group['amsgrad'] @@ -194,4 +194,4 @@ class AdamWwithEMAandWings(optim.Optimizer): for param, ema_param in zip(params_with_grad, ema_params_with_grad): ema_param.mul_(cur_ema_decay).add_(param.float(), alpha=1 - cur_ema_decay) - return loss \ No newline at end of file + return loss diff --git a/comfy/lora.py b/comfy/lora.py index b745ca4d..ec3da6f4 100644 --- a/comfy/lora.py +++ b/comfy/lora.py @@ -33,7 +33,7 @@ LORA_CLIP_MAP = { } -def load_lora(lora, to_load): +def load_lora(lora, to_load, log_missing=True): patch_dict = {} loaded_keys = set() for x in to_load: @@ -49,10 +49,20 @@ def load_lora(lora, to_load): dora_scale = lora[dora_scale_name] loaded_keys.add(dora_scale_name) + reshape_name = "{}.reshape_weight".format(x) + reshape = None + if reshape_name in lora.keys(): + try: + reshape = lora[reshape_name].tolist() + loaded_keys.add(reshape_name) + except: + pass + regular_lora = "{}.lora_up.weight".format(x) diffusers_lora = "{}_lora.up.weight".format(x) diffusers2_lora = "{}.lora_B.weight".format(x) diffusers3_lora = "{}.lora.up.weight".format(x) + mochi_lora = "{}.lora_B".format(x) transformers_lora = "{}.lora_linear_layer.up.weight".format(x) A_name = None @@ -72,6 +82,10 @@ def load_lora(lora, to_load): A_name = diffusers3_lora B_name = "{}.lora.down.weight".format(x) mid_name = None + elif mochi_lora in lora.keys(): + A_name = mochi_lora + B_name = "{}.lora_A".format(x) + mid_name = None elif transformers_lora in lora.keys(): A_name = transformers_lora B_name ="{}.lora_linear_layer.down.weight".format(x) @@ -82,7 +96,7 @@ def load_lora(lora, to_load): if mid_name is not None and mid_name in lora.keys(): mid = lora[mid_name] loaded_keys.add(mid_name) - patch_dict[to_load[x]] = ("lora", (lora[A_name], lora[B_name], alpha, mid, dora_scale)) + patch_dict[to_load[x]] = ("lora", (lora[A_name], lora[B_name], alpha, mid, dora_scale, reshape)) loaded_keys.add(A_name) loaded_keys.add(B_name) @@ -193,9 +207,16 @@ def load_lora(lora, to_load): patch_dict["{}.bias".format(to_load[x][:-len(".weight")])] = ("diff", (diff_bias,)) loaded_keys.add(diff_bias_name) - for x in lora.keys(): - if x not in loaded_keys: - logging.warning("lora key not loaded: {}".format(x)) + set_weight_name = "{}.set_weight".format(x) + set_weight = lora.get(set_weight_name, None) + if set_weight is not None: + patch_dict[to_load[x]] = ("set", (set_weight,)) + loaded_keys.add(set_weight_name) + + if log_missing: + for x in lora.keys(): + if x not in loaded_keys: + logging.warning("lora key not loaded: {}".format(x)) return patch_dict @@ -282,11 +303,14 @@ def model_lora_keys_unet(model, key_map={}): sdk = sd.keys() for k in sdk: - if k.startswith("diffusion_model.") and k.endswith(".weight"): - key_lora = k[len("diffusion_model."):-len(".weight")].replace(".", "_") - key_map["lora_unet_{}".format(key_lora)] = k - key_map["lora_prior_unet_{}".format(key_lora)] = k #cascade lora: TODO put lora key prefix in the model config - key_map["{}".format(k[:-len(".weight")])] = k #generic lora format without any weird key names + if k.startswith("diffusion_model."): + if k.endswith(".weight"): + key_lora = k[len("diffusion_model."):-len(".weight")].replace(".", "_") + key_map["lora_unet_{}".format(key_lora)] = k + key_map["lora_prior_unet_{}".format(key_lora)] = k #cascade lora: TODO put lora key prefix in the model config + key_map["{}".format(k[:-len(".weight")])] = k #generic lora format without any weird key names + else: + key_map["{}".format(k)] = k #generic lora format for not .weight without any weird key names diffusers_keys = comfy.utils.unet_to_diffusers(model.model_config.unet_config) for k in diffusers_keys: @@ -320,7 +344,6 @@ def model_lora_keys_unet(model, key_map={}): key_lora = "lycoris_{}".format(k[:-len(".weight")].replace(".", "_")) #simpletuner lycoris format key_map[key_lora] = to - if isinstance(model, comfy.model_base.AuraFlow): #Diffusers lora AuraFlow diffusers_keys = comfy.utils.auraflow_to_diffusers(model.model_config.unet_config, output_prefix="diffusion_model.") for k in diffusers_keys: @@ -329,6 +352,20 @@ def model_lora_keys_unet(model, key_map={}): key_lora = "transformer.{}".format(k[:-len(".weight")]) #simpletrainer and probably regular diffusers lora format key_map[key_lora] = to + if isinstance(model, comfy.model_base.PixArt): + diffusers_keys = comfy.utils.pixart_to_diffusers(model.model_config.unet_config, output_prefix="diffusion_model.") + for k in diffusers_keys: + if k.endswith(".weight"): + to = diffusers_keys[k] + key_lora = "transformer.{}".format(k[:-len(".weight")]) #default format + key_map[key_lora] = to + + key_lora = "base_model.model.{}".format(k[:-len(".weight")]) #diffusers training script + key_map[key_lora] = to + + key_lora = "unet.base_model.model.{}".format(k[:-len(".weight")]) #old reference peft script + key_map[key_lora] = to + if isinstance(model, comfy.model_base.HunyuanDiT): for k in sdk: if k.startswith("diffusion_model.") and k.endswith(".weight"): @@ -344,6 +381,24 @@ def model_lora_keys_unet(model, key_map={}): key_map["lycoris_{}".format(k[:-len(".weight")].replace(".", "_"))] = to #simpletrainer lycoris key_map["lora_transformer_{}".format(k[:-len(".weight")].replace(".", "_"))] = to #onetrainer + if isinstance(model, comfy.model_base.GenmoMochi): + for k in sdk: + if k.startswith("diffusion_model.") and k.endswith(".weight"): #Official Mochi lora format + key_lora = k[len("diffusion_model."):-len(".weight")] + key_map["{}".format(key_lora)] = k + + if isinstance(model, comfy.model_base.HunyuanVideo): + for k in sdk: + if k.startswith("diffusion_model.") and k.endswith(".weight"): + # diffusion-pipe lora format + key_lora = k + key_lora = key_lora.replace("_mod.lin.", "_mod.linear.").replace("_attn.qkv.", "_attn_qkv.").replace("_attn.proj.", "_attn_proj.") + key_lora = key_lora.replace("mlp.0.", "mlp.fc1.").replace("mlp.2.", "mlp.fc2.") + key_lora = key_lora.replace(".modulation.lin.", ".modulation.linear.") + key_lora = key_lora[len("diffusion_model."):-len(".weight")] + key_map["transformer.{}".format(key_lora)] = k + key_map["diffusion_model.{}".format(key_lora)] = k # Old loras + return key_map @@ -400,7 +455,7 @@ def pad_tensor_to_shape(tensor: torch.Tensor, new_shape: list[int]) -> torch.Ten return padded_tensor -def calculate_weight(patches, weight, key, intermediate_dtype=torch.float32): +def calculate_weight(patches, weight, key, intermediate_dtype=torch.float32, original_weights=None): for p in patches: strength = p[0] v = p[1] @@ -440,10 +495,22 @@ def calculate_weight(patches, weight, key, intermediate_dtype=torch.float32): logging.warning("WARNING SHAPE MISMATCH {} WEIGHT NOT MERGED {} != {}".format(key, diff.shape, weight.shape)) else: weight += function(strength * comfy.model_management.cast_to_device(diff, weight.device, weight.dtype)) + elif patch_type == "set": + weight.copy_(v[0]) + elif patch_type == "model_as_lora": + target_weight: torch.Tensor = v[0] + diff_weight = comfy.model_management.cast_to_device(target_weight, weight.device, intermediate_dtype) - \ + comfy.model_management.cast_to_device(original_weights[key][0][0], weight.device, intermediate_dtype) + weight += function(strength * comfy.model_management.cast_to_device(diff_weight, weight.device, weight.dtype)) elif patch_type == "lora": #lora/locon mat1 = comfy.model_management.cast_to_device(v[0], weight.device, intermediate_dtype) mat2 = comfy.model_management.cast_to_device(v[1], weight.device, intermediate_dtype) dora_scale = v[4] + reshape = v[5] + + if reshape is not None: + weight = pad_tensor_to_shape(weight, reshape) + if v[2] is not None: alpha = v[2] / mat2.shape[0] else: diff --git a/comfy/lora_convert.py b/comfy/lora_convert.py new file mode 100644 index 00000000..05032c69 --- /dev/null +++ b/comfy/lora_convert.py @@ -0,0 +1,17 @@ +import torch + + +def convert_lora_bfl_control(sd): #BFL loras for Flux + sd_out = {} + for k in sd: + k_to = "diffusion_model.{}".format(k.replace(".lora_B.bias", ".diff_b").replace("_norm.scale", "_norm.scale.set_weight")) + sd_out[k_to] = sd[k] + + sd_out["diffusion_model.img_in.reshape_weight"] = torch.tensor([sd["img_in.lora_B.weight"].shape[0], sd["img_in.lora_A.weight"].shape[1]]) + return sd_out + + +def convert_lora(sd): + if "img_in.lora_A.weight" in sd and "single_blocks.0.norm.key_norm.scale" in sd: + return convert_lora_bfl_control(sd) + return sd diff --git a/comfy/model_base.py b/comfy/model_base.py index f2833168..141f3f40 100644 --- a/comfy/model_base.py +++ b/comfy/model_base.py @@ -26,18 +26,25 @@ from comfy.ldm.modules.diffusionmodules.upscaling import ImageConcatWithNoiseAug from comfy.ldm.modules.diffusionmodules.mmdit import OpenAISignatureMMDITWrapper import comfy.ldm.genmo.joint_model.asymm_models_joint import comfy.ldm.aura.mmdit +import comfy.ldm.pixart.pixartms import comfy.ldm.hydit.models import comfy.ldm.audio.dit import comfy.ldm.audio.embedders import comfy.ldm.flux.model +import comfy.ldm.lightricks.model +import comfy.ldm.hunyuan_video.model import comfy.model_management +import comfy.patcher_extension import comfy.conds import comfy.ops from enum import Enum from . import utils import comfy.latent_formats import math +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from comfy.model_patcher import ModelPatcher class ModelType(Enum): EPS = 1 @@ -94,6 +101,7 @@ class BaseModel(torch.nn.Module): self.model_config = model_config self.manual_cast_dtype = model_config.manual_cast_dtype self.device = device + self.current_patcher: 'ModelPatcher' = None if not unet_config.get("disable_unet_model_creation", False): if model_config.custom_operations is None: @@ -119,6 +127,13 @@ class BaseModel(torch.nn.Module): self.memory_usage_factor = model_config.memory_usage_factor def apply_model(self, x, t, c_concat=None, c_crossattn=None, control=None, transformer_options={}, **kwargs): + return comfy.patcher_extension.WrapperExecutor.new_class_executor( + self._apply_model, + self, + comfy.patcher_extension.get_all_wrappers(comfy.patcher_extension.WrappersMP.APPLY_MODEL, transformer_options) + ).execute(x, t, c_concat, c_crossattn, control, transformer_options, **kwargs) + + def _apply_model(self, x, t, c_concat=None, c_crossattn=None, control=None, transformer_options={}, **kwargs): sigma = t xc = self.model_sampling.calculate_input(sigma, x) if c_concat is not None: @@ -153,8 +168,7 @@ class BaseModel(torch.nn.Module): def encode_adm(self, **kwargs): return None - def extra_conds(self, **kwargs): - out = {} + def concat_cond(self, **kwargs): if len(self.concat_keys) > 0: cond_concat = [] denoise_mask = kwargs.get("concat_mask", kwargs.get("denoise_mask", None)) @@ -193,7 +207,14 @@ class BaseModel(torch.nn.Module): elif ck == "masked_image": cond_concat.append(self.blank_inpaint_image_like(noise)) data = torch.cat(cond_concat, dim=1) - out['c_concat'] = comfy.conds.CONDNoiseShape(data) + return data + return None + + def extra_conds(self, **kwargs): + out = {} + concat_cond = self.concat_cond(**kwargs) + if concat_cond is not None: + out['c_concat'] = comfy.conds.CONDNoiseShape(concat_cond) adm = self.encode_adm(**kwargs) if adm is not None: @@ -408,7 +429,6 @@ class SVD_img2vid(BaseModel): latent_image = kwargs.get("concat_latent_image", None) noise = kwargs.get("noise", None) - device = kwargs["device"] if latent_image is None: latent_image = torch.zeros_like(noise) @@ -523,9 +543,7 @@ class SD_X4Upscaler(BaseModel): return out class IP2P: - def extra_conds(self, **kwargs): - out = {} - + def concat_cond(self, **kwargs): image = kwargs.get("concat_latent_image", None) noise = kwargs.get("noise", None) device = kwargs["device"] @@ -537,18 +555,15 @@ class IP2P: image = utils.common_upscale(image.to(device), noise.shape[-1], noise.shape[-2], "bilinear", "center") image = utils.resize_to_batch_size(image, noise.shape[0]) + return self.process_ip2p_image_in(image) - out['c_concat'] = comfy.conds.CONDNoiseShape(self.process_ip2p_image_in(image)) - adm = self.encode_adm(**kwargs) - if adm is not None: - out['y'] = comfy.conds.CONDRegular(adm) - return out class SD15_instructpix2pix(IP2P, BaseModel): def __init__(self, model_config, model_type=ModelType.EPS, device=None): super().__init__(model_config, model_type, device=device) self.process_ip2p_image_in = lambda image: image + class SDXL_instructpix2pix(IP2P, SDXL): def __init__(self, model_config, model_type=ModelType.EPS, device=None): super().__init__(model_config, model_type, device=device) @@ -673,6 +688,7 @@ class StableAudio1(BaseModel): sd["{}{}".format(k, l)] = s[l] return sd + class HunyuanDiT(BaseModel): def __init__(self, model_config, model_type=ModelType.V_PREDICTION, device=None): super().__init__(model_config, model_type, device=device, unet_model=comfy.ldm.hydit.models.HunYuanDiT) @@ -697,18 +713,72 @@ class HunyuanDiT(BaseModel): width = kwargs.get("width", 768) height = kwargs.get("height", 768) - crop_w = kwargs.get("crop_w", 0) - crop_h = kwargs.get("crop_h", 0) target_width = kwargs.get("target_width", width) target_height = kwargs.get("target_height", height) out['image_meta_size'] = comfy.conds.CONDRegular(torch.FloatTensor([[height, width, target_height, target_width, 0, 0]])) return out +class PixArt(BaseModel): + def __init__(self, model_config, model_type=ModelType.EPS, device=None): + super().__init__(model_config, model_type, device=device, unet_model=comfy.ldm.pixart.pixartms.PixArtMS) + + def extra_conds(self, **kwargs): + out = super().extra_conds(**kwargs) + + cross_attn = kwargs.get("cross_attn", None) + if cross_attn is not None: + out['c_crossattn'] = comfy.conds.CONDRegular(cross_attn) + + width = kwargs.get("width", None) + height = kwargs.get("height", None) + if width is not None and height is not None: + out["c_size"] = comfy.conds.CONDRegular(torch.FloatTensor([[height, width]])) + out["c_ar"] = comfy.conds.CONDRegular(torch.FloatTensor([[kwargs.get("aspect_ratio", height/width)]])) + + return out + class Flux(BaseModel): def __init__(self, model_config, model_type=ModelType.FLUX, device=None): super().__init__(model_config, model_type, device=device, unet_model=comfy.ldm.flux.model.Flux) + def concat_cond(self, **kwargs): + try: + #Handle Flux control loras dynamically changing the img_in weight. + num_channels = self.diffusion_model.img_in.weight.shape[1] // (self.diffusion_model.patch_size * self.diffusion_model.patch_size) + except: + #Some cases like tensorrt might not have the weights accessible + num_channels = self.model_config.unet_config["in_channels"] + + out_channels = self.model_config.unet_config["out_channels"] + + if num_channels <= out_channels: + return None + + image = kwargs.get("concat_latent_image", None) + noise = kwargs.get("noise", None) + device = kwargs["device"] + + if image is None: + image = torch.zeros_like(noise) + + image = utils.common_upscale(image.to(device), noise.shape[-1], noise.shape[-2], "bilinear", "center") + image = utils.resize_to_batch_size(image, noise.shape[0]) + image = self.process_latent_in(image) + if num_channels <= out_channels * 2: + return image + + #inpaint model + mask = kwargs.get("concat_mask", kwargs.get("denoise_mask", None)) + if mask is None: + mask = torch.ones_like(noise)[:, :1] + + mask = torch.mean(mask, dim=1, keepdim=True) + mask = utils.common_upscale(mask.to(device), noise.shape[-1] * 8, noise.shape[-2] * 8, "bilinear", "center") + mask = mask.view(mask.shape[0], mask.shape[2] // 8, 8, mask.shape[3] // 8, 8).permute(0, 2, 4, 1, 3).reshape(mask.shape[0], -1, mask.shape[2] // 8, mask.shape[3] // 8) + mask = utils.resize_to_batch_size(mask, noise.shape[0]) + return torch.cat((image, mask), dim=1) + def encode_adm(self, **kwargs): return kwargs["pooled_output"] @@ -717,6 +787,16 @@ class Flux(BaseModel): cross_attn = kwargs.get("cross_attn", None) if cross_attn is not None: out['c_crossattn'] = comfy.conds.CONDRegular(cross_attn) + # upscale the attention mask, since now we + attention_mask = kwargs.get("attention_mask", None) + if attention_mask is not None: + shape = kwargs["noise"].shape + mask_ref_size = kwargs["attention_mask_img_shape"] + # the model will pad to the patch size, and then divide + # essentially dividing and rounding up + (h_tok, w_tok) = (math.ceil(shape[2] / self.diffusion_model.patch_size), math.ceil(shape[3] / self.diffusion_model.patch_size)) + attention_mask = utils.upscale_dit_mask(attention_mask, mask_ref_size, (h_tok, w_tok)) + out['attention_mask'] = comfy.conds.CONDRegular(attention_mask) out['guidance'] = comfy.conds.CONDRegular(torch.FloatTensor([kwargs.get("guidance", 3.5)])) return out @@ -734,3 +814,45 @@ class GenmoMochi(BaseModel): if cross_attn is not None: out['c_crossattn'] = comfy.conds.CONDRegular(cross_attn) return out + +class LTXV(BaseModel): + def __init__(self, model_config, model_type=ModelType.FLUX, device=None): + super().__init__(model_config, model_type, device=device, unet_model=comfy.ldm.lightricks.model.LTXVModel) #TODO + + def extra_conds(self, **kwargs): + out = super().extra_conds(**kwargs) + attention_mask = kwargs.get("attention_mask", None) + if attention_mask is not None: + out['attention_mask'] = comfy.conds.CONDRegular(attention_mask) + cross_attn = kwargs.get("cross_attn", None) + if cross_attn is not None: + out['c_crossattn'] = comfy.conds.CONDRegular(cross_attn) + + guiding_latent = kwargs.get("guiding_latent", None) + if guiding_latent is not None: + out['guiding_latent'] = comfy.conds.CONDRegular(guiding_latent) + + guiding_latent_noise_scale = kwargs.get("guiding_latent_noise_scale", None) + if guiding_latent_noise_scale is not None: + out["guiding_latent_noise_scale"] = comfy.conds.CONDConstant(guiding_latent_noise_scale) + + out['frame_rate'] = comfy.conds.CONDConstant(kwargs.get("frame_rate", 25)) + return out + +class HunyuanVideo(BaseModel): + def __init__(self, model_config, model_type=ModelType.FLOW, device=None): + super().__init__(model_config, model_type, device=device, unet_model=comfy.ldm.hunyuan_video.model.HunyuanVideo) + + def encode_adm(self, **kwargs): + return kwargs["pooled_output"] + + def extra_conds(self, **kwargs): + out = super().extra_conds(**kwargs) + attention_mask = kwargs.get("attention_mask", None) + if attention_mask is not None: + out['attention_mask'] = comfy.conds.CONDRegular(attention_mask) + cross_attn = kwargs.get("cross_attn", None) + if cross_attn is not None: + out['c_crossattn'] = comfy.conds.CONDRegular(cross_attn) + out['guidance'] = comfy.conds.CONDRegular(torch.FloatTensor([kwargs.get("guidance", 6.0)])) + return out diff --git a/comfy/model_detection.py b/comfy/model_detection.py index 8435de3e..f5a33cd9 100644 --- a/comfy/model_detection.py +++ b/comfy/model_detection.py @@ -133,10 +133,36 @@ def detect_unet_config(state_dict, key_prefix): unet_config["image_model"] = "hydit1" return unet_config + if '{}txt_in.individual_token_refiner.blocks.0.norm1.weight'.format(key_prefix) in state_dict_keys: #Hunyuan Video + dit_config = {} + dit_config["image_model"] = "hunyuan_video" + dit_config["in_channels"] = 16 + dit_config["patch_size"] = [1, 2, 2] + dit_config["out_channels"] = 16 + dit_config["vec_in_dim"] = 768 + dit_config["context_in_dim"] = 4096 + dit_config["hidden_size"] = 3072 + dit_config["mlp_ratio"] = 4.0 + dit_config["num_heads"] = 24 + dit_config["depth"] = count_blocks(state_dict_keys, '{}double_blocks.'.format(key_prefix) + '{}.') + dit_config["depth_single_blocks"] = count_blocks(state_dict_keys, '{}single_blocks.'.format(key_prefix) + '{}.') + dit_config["axes_dim"] = [16, 56, 56] + dit_config["theta"] = 256 + dit_config["qkv_bias"] = True + guidance_keys = list(filter(lambda a: a.startswith("{}guidance_in.".format(key_prefix)), state_dict_keys)) + dit_config["guidance_embed"] = len(guidance_keys) > 0 + return dit_config + if '{}double_blocks.0.img_attn.norm.key_norm.scale'.format(key_prefix) in state_dict_keys: #Flux dit_config = {} dit_config["image_model"] = "flux" dit_config["in_channels"] = 16 + patch_size = 2 + dit_config["patch_size"] = patch_size + in_key = "{}img_in.weight".format(key_prefix) + if in_key in state_dict_keys: + dit_config["in_channels"] = state_dict[in_key].shape[1] // (patch_size * patch_size) + dit_config["out_channels"] = 16 dit_config["vec_in_dim"] = 768 dit_config["context_in_dim"] = 4096 dit_config["hidden_size"] = 3072 @@ -177,6 +203,41 @@ def detect_unet_config(state_dict, key_prefix): dit_config["rope_theta"] = 10000.0 return dit_config + if '{}adaln_single.emb.timestep_embedder.linear_1.bias'.format(key_prefix) in state_dict_keys and '{}pos_embed.proj.bias'.format(key_prefix) in state_dict_keys: + # PixArt diffusers + return None + + if '{}adaln_single.emb.timestep_embedder.linear_1.bias'.format(key_prefix) in state_dict_keys: #Lightricks ltxv + dit_config = {} + dit_config["image_model"] = "ltxv" + return dit_config + + if '{}t_block.1.weight'.format(key_prefix) in state_dict_keys: # PixArt + patch_size = 2 + dit_config = {} + dit_config["num_heads"] = 16 + dit_config["patch_size"] = patch_size + dit_config["hidden_size"] = 1152 + dit_config["in_channels"] = 4 + dit_config["depth"] = count_blocks(state_dict_keys, '{}blocks.'.format(key_prefix) + '{}.') + + y_key = "{}y_embedder.y_embedding".format(key_prefix) + if y_key in state_dict_keys: + dit_config["model_max_length"] = state_dict[y_key].shape[0] + + pe_key = "{}pos_embed".format(key_prefix) + if pe_key in state_dict_keys: + dit_config["input_size"] = int(math.sqrt(state_dict[pe_key].shape[1])) * patch_size + dit_config["pe_interpolation"] = dit_config["input_size"] // (512//8) # guess + + ar_key = "{}ar_embedder.mlp.0.weight".format(key_prefix) + if ar_key in state_dict_keys: + dit_config["image_model"] = "pixart_alpha" + dit_config["micro_condition"] = True + else: + dit_config["image_model"] = "pixart_sigma" + dit_config["micro_condition"] = False + return dit_config if '{}input_blocks.0.0.weight'.format(key_prefix) not in state_dict_keys: return None @@ -206,7 +267,6 @@ def detect_unet_config(state_dict, key_prefix): num_res_blocks = [] channel_mult = [] - attention_resolutions = [] transformer_depth = [] transformer_depth_output = [] context_dim = None @@ -321,8 +381,9 @@ def model_config_from_unet(state_dict, unet_key_prefix, use_base_if_no_match=Fal if model_config is None and use_base_if_no_match: model_config = comfy.supported_models_base.BASE(unet_config) - scaled_fp8_weight = state_dict.get("{}scaled_fp8".format(unet_key_prefix), None) - if scaled_fp8_weight is not None: + scaled_fp8_key = "{}scaled_fp8".format(unet_key_prefix) + if scaled_fp8_key in state_dict: + scaled_fp8_weight = state_dict.pop(scaled_fp8_key) model_config.scaled_fp8 = scaled_fp8_weight.dtype if model_config.scaled_fp8 == torch.float32: model_config.scaled_fp8 = torch.float8_e4m3fn @@ -377,7 +438,6 @@ def convert_config(unet_config): t_out += [d] * (res + 1) s *= 2 transformer_depth = t_in - transformer_depth_output = t_out new_config["transformer_depth"] = t_in new_config["transformer_depth_output"] = t_out new_config["transformer_depth_middle"] = transformer_depth_middle @@ -511,12 +571,12 @@ def unet_config_from_diffusers_unet(state_dict, dtype=None): 'transformer_depth': [0, 1, 1], 'channel_mult': [1, 2, 4], 'transformer_depth_middle': -2, 'use_linear_in_transformer': False, 'context_dim': 768, 'num_head_channels': 64, 'transformer_depth_output': [0, 0, 1, 1, 1, 1], 'use_temporal_attention': False, 'use_temporal_resblock': False} - + SD15_diffusers_inpaint = {'use_checkpoint': False, 'image_size': 32, 'out_channels': 4, 'use_spatial_transformer': True, 'legacy': False, 'adm_in_channels': None, 'dtype': dtype, 'in_channels': 9, 'model_channels': 320, 'num_res_blocks': [2, 2, 2, 2], 'transformer_depth': [1, 1, 1, 1, 1, 1, 0, 0], 'channel_mult': [1, 2, 4, 4], 'transformer_depth_middle': 1, 'use_linear_in_transformer': False, 'context_dim': 768, 'num_heads': 8, 'transformer_depth_output': [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0], - 'use_temporal_attention': False, 'use_temporal_resblock': False} + 'use_temporal_attention': False, 'use_temporal_resblock': False} supported_models = [SDXL, SDXL_refiner, SD21, SD15, SD21_uncliph, SD21_unclipl, SDXL_mid_cnet, SDXL_small_cnet, SDXL_diffusers_inpaint, SSD_1B, Segmind_Vega, KOALA_700M, KOALA_1B, SD09_XS, SD_XS, SDXL_diffusers_ip2p, SD15_diffusers_inpaint] @@ -540,7 +600,14 @@ def model_config_from_diffusers_unet(state_dict): def convert_diffusers_mmdit(state_dict, output_prefix=""): out_sd = {} - if 'transformer_blocks.0.attn.norm_added_k.weight' in state_dict: #Flux + if 'joint_transformer_blocks.0.attn.add_k_proj.weight' in state_dict: #AuraFlow + num_joint = count_blocks(state_dict, 'joint_transformer_blocks.{}.') + num_single = count_blocks(state_dict, 'single_transformer_blocks.{}.') + sd_map = comfy.utils.auraflow_to_diffusers({"n_double_layers": num_joint, "n_layers": num_joint + num_single}, output_prefix=output_prefix) + elif 'adaln_single.emb.timestep_embedder.linear_1.bias' in state_dict and 'pos_embed.proj.bias' in state_dict: # PixArt + num_blocks = count_blocks(state_dict, 'transformer_blocks.{}.') + sd_map = comfy.utils.pixart_to_diffusers({"depth": num_blocks}, output_prefix=output_prefix) + elif 'x_embedder.weight' in state_dict: #Flux depth = count_blocks(state_dict, 'transformer_blocks.{}.') depth_single_blocks = count_blocks(state_dict, 'single_transformer_blocks.{}.') hidden_size = state_dict["x_embedder.bias"].shape[0] @@ -549,10 +616,6 @@ def convert_diffusers_mmdit(state_dict, output_prefix=""): num_blocks = count_blocks(state_dict, 'transformer_blocks.{}.') depth = state_dict["pos_embed.proj.weight"].shape[0] // 64 sd_map = comfy.utils.mmdit_to_diffusers({"depth": depth, "num_blocks": num_blocks}, output_prefix=output_prefix) - elif 'joint_transformer_blocks.0.attn.add_k_proj.weight' in state_dict: #AuraFlow - num_joint = count_blocks(state_dict, 'joint_transformer_blocks.{}.') - num_single = count_blocks(state_dict, 'single_transformer_blocks.{}.') - sd_map = comfy.utils.auraflow_to_diffusers({"n_double_layers": num_joint, "n_layers": num_joint + num_single}, output_prefix=output_prefix) else: return None diff --git a/comfy/model_management.py b/comfy/model_management.py index 855e8911..f6dfc18b 100644 --- a/comfy/model_management.py +++ b/comfy/model_management.py @@ -23,6 +23,8 @@ from comfy.cli_args import args import torch import sys import platform +import weakref +import gc class VRAMState(Enum): DISABLED = 0 #No vram present: no need to move models to vram @@ -73,7 +75,7 @@ if args.directml is not None: try: import intel_extension_for_pytorch as ipex _ = torch.xpu.device_count() - xpu_available = torch.xpu.is_available() + xpu_available = xpu_available or torch.xpu.is_available() except: xpu_available = xpu_available or (hasattr(torch, "xpu") and torch.xpu.is_available()) @@ -84,6 +86,13 @@ try: except: pass +try: + import torch_npu # noqa: F401 + _ = torch.npu.device_count() + npu_available = torch.npu.is_available() +except: + npu_available = False + if args.cpu: cpu_state = CPUState.CPU @@ -95,6 +104,12 @@ def is_intel_xpu(): return True return False +def is_ascend_npu(): + global npu_available + if npu_available: + return True + return False + def get_torch_device(): global directml_enabled global cpu_state @@ -108,6 +123,8 @@ def get_torch_device(): else: if is_intel_xpu(): return torch.device("xpu", torch.xpu.current_device()) + elif is_ascend_npu(): + return torch.device("npu", torch.npu.current_device()) else: return torch.device(torch.cuda.current_device()) @@ -128,6 +145,12 @@ def get_total_memory(dev=None, torch_total_too=False): mem_reserved = stats['reserved_bytes.all.current'] mem_total_torch = mem_reserved mem_total = torch.xpu.get_device_properties(dev).total_memory + elif is_ascend_npu(): + stats = torch.npu.memory_stats(dev) + mem_reserved = stats['reserved_bytes.all.current'] + _, mem_total_npu = torch.npu.mem_get_info(dev) + mem_total_torch = mem_reserved + mem_total = mem_total_npu else: stats = torch.cuda.memory_stats(dev) mem_reserved = stats['reserved_bytes.all.current'] @@ -186,38 +209,44 @@ def is_nvidia(): return True return False +def is_amd(): + global cpu_state + if cpu_state == CPUState.GPU: + if torch.version.hip: + return True + return False + +MIN_WEIGHT_MEMORY_RATIO = 0.4 +if is_nvidia(): + MIN_WEIGHT_MEMORY_RATIO = 0.2 + ENABLE_PYTORCH_ATTENTION = False if args.use_pytorch_cross_attention: ENABLE_PYTORCH_ATTENTION = True XFORMERS_IS_AVAILABLE = False -VAE_DTYPES = [torch.float32] - try: if is_nvidia(): if int(torch_version[0]) >= 2: if ENABLE_PYTORCH_ATTENTION == False and args.use_split_cross_attention == False and args.use_quad_cross_attention == False: ENABLE_PYTORCH_ATTENTION = True - if torch.cuda.is_bf16_supported() and torch.cuda.get_device_properties(torch.cuda.current_device()).major >= 8: - VAE_DTYPES = [torch.bfloat16] + VAE_DTYPES - if is_intel_xpu(): + if is_intel_xpu() or is_ascend_npu(): if args.use_split_cross_attention == False and args.use_quad_cross_attention == False: ENABLE_PYTORCH_ATTENTION = True except: pass -if is_intel_xpu(): - VAE_DTYPES = [torch.bfloat16] + VAE_DTYPES - -if args.cpu_vae: - VAE_DTYPES = [torch.float32] - - if ENABLE_PYTORCH_ATTENTION: torch.backends.cuda.enable_math_sdp(True) torch.backends.cuda.enable_flash_sdp(True) torch.backends.cuda.enable_mem_efficient_sdp(True) +try: + if int(torch_version[0]) == 2 and int(torch_version[2]) >= 5: + torch.backends.cuda.allow_fp16_bf16_reduction_math_sdp(True) +except: + logging.warning("Warning, could not set allow_fp16_bf16_reduction_math_sdp") + if args.lowvram: set_vram_to = VRAMState.LOW_VRAM lowvram_available = True @@ -266,6 +295,8 @@ def get_torch_device_name(device): return "{}".format(device.type) elif is_intel_xpu(): return "{} {}".format(device, torch.xpu.get_device_name(device)) + elif is_ascend_npu(): + return "{} {}".format(device, torch.npu.get_device_name(device)) else: return "CUDA {}: {}".format(device, torch.cuda.get_device_name(device)) @@ -287,15 +318,34 @@ def module_size(module): class LoadedModel: def __init__(self, model): - self.model = model + self._set_model(model) self.device = model.load_device - self.weights_loaded = False self.real_model = None self.currently_used = True + self.model_finalizer = None + self._patcher_finalizer = None + + def _set_model(self, model): + self._model = weakref.ref(model) + if model.parent is not None: + self._parent_model = weakref.ref(model.parent) + self._patcher_finalizer = weakref.finalize(model, self._switch_parent) + + def _switch_parent(self): + model = self._parent_model() + if model is not None: + self._set_model(model) + + @property + def model(self): + return self._model() def model_memory(self): return self.model.model_size() + def model_loaded_memory(self): + return self.model.loaded_size() + def model_offloaded_memory(self): return self.model.model_size() - self.model.loaded_size() @@ -306,32 +356,23 @@ class LoadedModel: return self.model_memory() def model_load(self, lowvram_model_memory=0, force_patch_weights=False): - patch_model_to = self.device - self.model.model_patches_to(self.device) self.model.model_patches_to(self.model.model_dtype()) - load_weights = not self.weights_loaded + # if self.model.loaded_size() > 0: + use_more_vram = lowvram_model_memory + if use_more_vram == 0: + use_more_vram = 1e32 + self.model_use_more_vram(use_more_vram, force_patch_weights=force_patch_weights) + real_model = self.model.model - if self.model.loaded_size() > 0: - use_more_vram = lowvram_model_memory - if use_more_vram == 0: - use_more_vram = 1e32 - self.model_use_more_vram(use_more_vram) - else: - try: - self.real_model = self.model.patch_model(device_to=patch_model_to, lowvram_model_memory=lowvram_model_memory, load_weights=load_weights, force_patch_weights=force_patch_weights) - except Exception as e: - self.model.unpatch_model(self.model.offload_device) - self.model_unload() - raise e - - if is_intel_xpu() and not args.disable_ipex_optimize and 'ipex' in globals() and self.real_model is not None: + if is_intel_xpu() and not args.disable_ipex_optimize and 'ipex' in globals() and real_model is not None: with torch.no_grad(): - self.real_model = ipex.optimize(self.real_model.eval(), inplace=True, graph_mode=True, concat_linear=True) + real_model = ipex.optimize(real_model.eval(), inplace=True, graph_mode=True, concat_linear=True) - self.weights_loaded = True - return self.real_model + self.real_model = weakref.ref(real_model) + self.model_finalizer = weakref.finalize(real_model, cleanup_models) + return real_model def should_reload_model(self, force_patch_weights=False): if force_patch_weights and self.model.lowvram_patch_counter() > 0: @@ -344,18 +385,26 @@ class LoadedModel: freed = self.model.partially_unload(self.model.offload_device, memory_to_free) if freed >= memory_to_free: return False - self.model.unpatch_model(self.model.offload_device, unpatch_weights=unpatch_weights) - self.model.model_patches_to(self.model.offload_device) - self.weights_loaded = self.weights_loaded and not unpatch_weights + self.model.detach(unpatch_weights) + self.model_finalizer.detach() + self.model_finalizer = None self.real_model = None return True - def model_use_more_vram(self, extra_memory): - return self.model.partially_load(self.device, extra_memory) + def model_use_more_vram(self, extra_memory, force_patch_weights=False): + return self.model.partially_load(self.device, extra_memory, force_patch_weights=force_patch_weights) def __eq__(self, other): return self.model is other.model + def __del__(self): + if self._patcher_finalizer is not None: + self._patcher_finalizer.detach() + + def is_dead(self): + return self.real_model() is not None and self.model is None + + def use_more_memory(extra_memory, loaded_models, device): for m in loaded_models: if m.device == device: @@ -386,38 +435,8 @@ def extra_reserved_memory(): def minimum_inference_memory(): return (1024 * 1024 * 1024) * 0.8 + extra_reserved_memory() -def unload_model_clones(model, unload_weights_only=True, force_unload=True): - to_unload = [] - for i in range(len(current_loaded_models)): - if model.is_clone(current_loaded_models[i].model): - to_unload = [i] + to_unload - - if len(to_unload) == 0: - return True - - same_weights = 0 - for i in to_unload: - if model.clone_has_same_weights(current_loaded_models[i].model): - same_weights += 1 - - if same_weights == len(to_unload): - unload_weight = False - else: - unload_weight = True - - if not force_unload: - if unload_weights_only and unload_weight == False: - return None - else: - unload_weight = True - - for i in to_unload: - logging.debug("unload clone {} {}".format(i, unload_weight)) - current_loaded_models.pop(i).model_unload(unpatch_weights=unload_weight) - - return unload_weight - def free_memory(memory_required, device, keep_loaded=[]): + cleanup_models_gc() unloaded_model = [] can_unload = [] unloaded_models = [] @@ -425,7 +444,7 @@ def free_memory(memory_required, device, keep_loaded=[]): for i in range(len(current_loaded_models) -1, -1, -1): shift_model = current_loaded_models[i] if shift_model.device == device: - if shift_model not in keep_loaded: + if shift_model not in keep_loaded and not shift_model.is_dead(): can_unload.append((-shift_model.model_offloaded_memory(), sys.getrefcount(shift_model.model), shift_model.model_memory(), i)) shift_model.currently_used = False @@ -454,6 +473,7 @@ def free_memory(memory_required, device, keep_loaded=[]): return unloaded_models def load_models_gpu(models, memory_required=0, force_patch_weights=False, minimum_memory_required=None, force_full_load=False): + cleanup_models_gc() global vram_state inference_memory = minimum_inference_memory() @@ -466,11 +486,9 @@ def load_models_gpu(models, memory_required=0, force_patch_weights=False, minimu models = set(models) models_to_load = [] - models_already_loaded = [] + for x in models: loaded_model = LoadedModel(x) - loaded = None - try: loaded_model_index = current_loaded_models.index(loaded_model) except: @@ -478,51 +496,35 @@ def load_models_gpu(models, memory_required=0, force_patch_weights=False, minimu if loaded_model_index is not None: loaded = current_loaded_models[loaded_model_index] - if loaded.should_reload_model(force_patch_weights=force_patch_weights): #TODO: cleanup this model reload logic - current_loaded_models.pop(loaded_model_index).model_unload(unpatch_weights=True) - loaded = None - else: - loaded.currently_used = True - models_already_loaded.append(loaded) - - if loaded is None: + loaded.currently_used = True + models_to_load.append(loaded) + else: if hasattr(x, "model"): logging.info(f"Requested to load {x.model.__class__.__name__}") models_to_load.append(loaded_model) - if len(models_to_load) == 0: - devs = set(map(lambda a: a.device, models_already_loaded)) - for d in devs: - if d != torch.device("cpu"): - free_memory(extra_mem + offloaded_memory(models_already_loaded, d), d, models_already_loaded) - free_mem = get_free_memory(d) - if free_mem < minimum_memory_required: - logging.info("Unloading models for lowram load.") #TODO: partial model unloading when this case happens, also handle the opposite case where models can be unlowvramed. - models_to_load = free_memory(minimum_memory_required, d) - logging.info("{} models unloaded.".format(len(models_to_load))) - else: - use_more_memory(free_mem - minimum_memory_required, models_already_loaded, d) - if len(models_to_load) == 0: - return - - logging.info(f"Loading {len(models_to_load)} new model{'s' if len(models_to_load) > 1 else ''}") + for loaded_model in models_to_load: + to_unload = [] + for i in range(len(current_loaded_models)): + if loaded_model.model.is_clone(current_loaded_models[i].model): + to_unload = [i] + to_unload + for i in to_unload: + current_loaded_models.pop(i).model.detach(unpatch_all=False) total_memory_required = {} for loaded_model in models_to_load: - unload_model_clones(loaded_model.model, unload_weights_only=True, force_unload=False) #unload clones where the weights are different total_memory_required[loaded_model.device] = total_memory_required.get(loaded_model.device, 0) + loaded_model.model_memory_required(loaded_model.device) - for loaded_model in models_already_loaded: - total_memory_required[loaded_model.device] = total_memory_required.get(loaded_model.device, 0) + loaded_model.model_memory_required(loaded_model.device) - - for loaded_model in models_to_load: - weights_unloaded = unload_model_clones(loaded_model.model, unload_weights_only=False, force_unload=False) #unload the rest of the clones where the weights can stay loaded - if weights_unloaded is not None: - loaded_model.weights_loaded = not weights_unloaded - for device in total_memory_required: if device != torch.device("cpu"): - free_memory(total_memory_required[device] * 1.1 + extra_mem, device, models_already_loaded) + free_memory(total_memory_required[device] * 1.1 + extra_mem, device) + + for device in total_memory_required: + if device != torch.device("cpu"): + free_mem = get_free_memory(device) + if free_mem < minimum_memory_required: + models_l = free_memory(minimum_memory_required, device) + logging.info("{} models unloaded.".format(len(models_l))) for loaded_model in models_to_load: model = loaded_model.model @@ -534,27 +536,21 @@ def load_models_gpu(models, memory_required=0, force_patch_weights=False, minimu lowvram_model_memory = 0 if lowvram_available and (vram_set_state == VRAMState.LOW_VRAM or vram_set_state == VRAMState.NORMAL_VRAM) and not force_full_load: model_size = loaded_model.model_memory_required(torch_dev) - current_free_mem = get_free_memory(torch_dev) - lowvram_model_memory = max(64 * (1024 * 1024), (current_free_mem - minimum_memory_required), min(current_free_mem * 0.4, current_free_mem - minimum_inference_memory())) + loaded_memory = loaded_model.model_loaded_memory() + current_free_mem = get_free_memory(torch_dev) + loaded_memory + + lowvram_model_memory = max(64 * 1024 * 1024, (current_free_mem - minimum_memory_required), min(current_free_mem * MIN_WEIGHT_MEMORY_RATIO, current_free_mem - minimum_inference_memory())) + lowvram_model_memory = max(0.1, lowvram_model_memory - loaded_memory) if model_size <= lowvram_model_memory: #only switch to lowvram if really necessary lowvram_model_memory = 0 if vram_set_state == VRAMState.NO_VRAM: - lowvram_model_memory = 64 * 1024 * 1024 + lowvram_model_memory = 0.1 - cur_loaded_model = loaded_model.model_load(lowvram_model_memory, force_patch_weights=force_patch_weights) + loaded_model.model_load(lowvram_model_memory, force_patch_weights=force_patch_weights) current_loaded_models.insert(0, loaded_model) - - - devs = set(map(lambda a: a.device, models_already_loaded)) - for d in devs: - if d != torch.device("cpu"): - free_mem = get_free_memory(d) - if free_mem > minimum_memory_required: - use_more_memory(free_mem - minimum_memory_required, models_already_loaded, d) return - def load_model_gpu(model): return load_models_gpu([model]) @@ -568,21 +564,35 @@ def loaded_models(only_currently_used=False): output.append(m.model) return output -def cleanup_models(keep_clone_weights_loaded=False): + +def cleanup_models_gc(): + do_gc = False + for i in range(len(current_loaded_models)): + cur = current_loaded_models[i] + if cur.is_dead(): + logging.info("Potential memory leak detected with model {}, doing a full garbage collect, for maximum performance avoid circular references in the model code.".format(cur.real_model().__class__.__name__)) + do_gc = True + break + + if do_gc: + gc.collect() + soft_empty_cache() + + for i in range(len(current_loaded_models)): + cur = current_loaded_models[i] + if cur.is_dead(): + logging.warning("WARNING, memory leak with model {}. Please make sure it is not being referenced from somewhere.".format(cur.real_model().__class__.__name__)) + + + +def cleanup_models(): to_delete = [] for i in range(len(current_loaded_models)): - #TODO: very fragile function needs improvement - num_refs = sys.getrefcount(current_loaded_models[i].model) - if num_refs <= 2: - if not keep_clone_weights_loaded: - to_delete = [i] + to_delete - #TODO: find a less fragile way to do this. - elif sys.getrefcount(current_loaded_models[i].real_model) <= 3: #references from .real_model + the .model - to_delete = [i] + to_delete + if current_loaded_models[i].real_model() is None: + to_delete = [i] + to_delete for i in to_delete: x = current_loaded_models.pop(i) - x.model_unload() del x def dtype_size(dtype): @@ -606,7 +616,7 @@ def unet_offload_device(): def unet_inital_load_device(parameters, dtype): torch_dev = get_torch_device() - if vram_state == VRAMState.HIGH_VRAM: + if vram_state == VRAMState.HIGH_VRAM or vram_state == VRAMState.SHARED: return torch_dev cpu_dev = torch.device("cpu") @@ -628,6 +638,10 @@ def maximum_vram_for_weights(device=None): def unet_dtype(device=None, model_params=0, supported_dtypes=[torch.float16, torch.bfloat16, torch.float32]): if model_params < 0: model_params = 1000000000000000000000 + if args.fp32_unet: + return torch.float32 + if args.fp64_unet: + return torch.float64 if args.bf16_unet: return torch.bfloat16 if args.fp16_unet: @@ -674,7 +688,7 @@ def unet_dtype(device=None, model_params=0, supported_dtypes=[torch.float16, tor # None means no manual cast def unet_manual_cast(weight_dtype, inference_device, supported_dtypes=[torch.float16, torch.bfloat16, torch.float32]): - if weight_dtype == torch.float32: + if weight_dtype == torch.float32 or weight_dtype == torch.float64: return None fp16_supported = should_use_fp16(inference_device, prioritize_performance=False) @@ -716,7 +730,7 @@ def text_encoder_initial_device(load_device, offload_device, model_size=0): return offload_device if is_device_mps(load_device): - return offload_device + return load_device mem_l = get_free_memory(load_device) mem_o = get_free_memory(offload_device) @@ -759,7 +773,6 @@ def vae_offload_device(): return torch.device("cpu") def vae_dtype(device=None, allowed_dtypes=[]): - global VAE_DTYPES if args.fp16_vae: return torch.float16 elif args.bf16_vae: @@ -768,12 +781,14 @@ def vae_dtype(device=None, allowed_dtypes=[]): return torch.float32 for d in allowed_dtypes: - if d == torch.float16 and should_use_fp16(device, prioritize_performance=False): - return d - if d in VAE_DTYPES: + if d == torch.float16 and should_use_fp16(device): return d - return VAE_DTYPES[0] + # NOTE: bfloat16 seems to work on AMD for the VAE but is extremely slow in some cases compared to fp32 + if d == torch.bfloat16 and (not is_amd()) and should_use_bf16(device): + return d + + return torch.float32 def get_autocast_device(dev): if hasattr(dev, 'type'): @@ -858,6 +873,8 @@ def cast_to_device(tensor, device, dtype, copy=False): non_blocking = device_supports_non_blocking(device) return cast_to(tensor, dtype=dtype, device=device, non_blocking=non_blocking, copy=copy) +def sage_attention_enabled(): + return args.use_sage_attention def xformers_enabled(): global directml_enabled @@ -866,6 +883,8 @@ def xformers_enabled(): return False if is_intel_xpu(): return False + if is_ascend_npu(): + return False if directml_enabled: return False return XFORMERS_IS_AVAILABLE @@ -890,16 +909,23 @@ def pytorch_attention_flash_attention(): return True if is_intel_xpu(): return True + if is_ascend_npu(): + return True return False +def mac_version(): + try: + return tuple(int(n) for n in platform.mac_ver()[0].split(".")) + except: + return None + def force_upcast_attention_dtype(): upcast = args.force_upcast_attention - try: - macos_version = tuple(int(n) for n in platform.mac_ver()[0].split(".")) - if (14, 5) <= macos_version <= (15, 0, 1): # black image bug on recent versions of macOS - upcast = True - except: - pass + + macos_version = mac_version() + if macos_version is not None and ((14, 5) <= macos_version <= (15, 2)): # black image bug on recent versions of macOS + upcast = True + if upcast: return torch.float32 else: @@ -924,6 +950,13 @@ def get_free_memory(dev=None, torch_free_too=False): mem_free_torch = mem_reserved - mem_active mem_free_xpu = torch.xpu.get_device_properties(dev).total_memory - mem_reserved mem_free_total = mem_free_xpu + mem_free_torch + elif is_ascend_npu(): + stats = torch.npu.memory_stats(dev) + mem_active = stats['active_bytes.all.current'] + mem_reserved = stats['reserved_bytes.all.current'] + mem_free_npu, _ = torch.npu.mem_get_info(dev) + mem_free_torch = mem_reserved - mem_active + mem_free_total = mem_free_npu + mem_free_torch else: stats = torch.cuda.memory_stats(dev) mem_active = stats['active_bytes.all.current'] @@ -970,17 +1003,13 @@ def should_use_fp16(device=None, model_params=0, prioritize_performance=True, ma if FORCE_FP16: return True - if device is not None: - if is_device_mps(device): - return True - if FORCE_FP32: return False if directml_enabled: return False - if mps_mode(): + if (device is not None and is_device_mps(device)) or mps_mode(): return True if cpu_mode(): @@ -989,6 +1018,9 @@ def should_use_fp16(device=None, model_params=0, prioritize_performance=True, ma if is_intel_xpu(): return True + if is_ascend_npu(): + return True + if torch.version.hip: return True @@ -1029,17 +1061,15 @@ def should_use_bf16(device=None, model_params=0, prioritize_performance=True, ma if is_device_cpu(device): #TODO ? bf16 works on CPU but is extremely slow return False - if device is not None: - if is_device_mps(device): - return True - if FORCE_FP32: return False if directml_enabled: return False - if mps_mode(): + if (device is not None and is_device_mps(device)) or mps_mode(): + if mac_version() < (14,): + return False return True if cpu_mode(): @@ -1088,19 +1118,16 @@ def soft_empty_cache(force=False): torch.mps.empty_cache() elif is_intel_xpu(): torch.xpu.empty_cache() + elif is_ascend_npu(): + torch.npu.empty_cache() elif torch.cuda.is_available(): - if force or is_nvidia(): #This seems to make things worse on ROCm so I only do it for cuda - torch.cuda.empty_cache() - torch.cuda.ipc_collect() + torch.cuda.empty_cache() + torch.cuda.ipc_collect() def unload_all_models(): free_memory(1e30, get_torch_device()) -def resolve_lowvram_weight(weight, model, key): #TODO: remove - print("WARNING: The comfy.model_management.resolve_lowvram_weight function will be removed soon, please stop using it.") - return weight - #TODO: might be cleaner to put this somewhere else import threading diff --git a/comfy/model_patcher.py b/comfy/model_patcher.py index 3bba217a..4597ce11 100644 --- a/comfy/model_patcher.py +++ b/comfy/model_patcher.py @@ -16,6 +16,8 @@ along with this program. If not, see . """ +from __future__ import annotations +from typing import Optional, Callable import torch import copy import inspect @@ -28,6 +30,9 @@ import comfy.utils import comfy.float import comfy.model_management import comfy.lora +import comfy.hooks +import comfy.patcher_extension +from comfy.patcher_extension import CallbacksMP, WrappersMP, PatcherInjection from comfy.comfy_types import UnetWrapperFunction def string_to_seed(data): @@ -76,6 +81,17 @@ def set_model_options_pre_cfg_function(model_options, pre_cfg_function, disable_ model_options["disable_cfg1_optimization"] = True return model_options +def create_model_options_clone(orig_model_options: dict): + return comfy.patcher_extension.copy_nested_dicts(orig_model_options) + +def create_hook_patches_clone(orig_hook_patches): + new_hook_patches = {} + for hook_ref in orig_hook_patches: + new_hook_patches[hook_ref] = {} + for k in orig_hook_patches[hook_ref]: + new_hook_patches[hook_ref][k] = orig_hook_patches[hook_ref][k][:] + return new_hook_patches + def wipe_lowvram_weight(m): if hasattr(m, "prev_comfy_cast_weights"): m.comfy_cast_weights = m.prev_comfy_cast_weights @@ -119,6 +135,49 @@ def get_key_weight(model, key): return weight, set_func, convert_func +class AutoPatcherEjector: + def __init__(self, model: 'ModelPatcher', skip_and_inject_on_exit_only=False): + self.model = model + self.was_injected = False + self.prev_skip_injection = False + self.skip_and_inject_on_exit_only = skip_and_inject_on_exit_only + + def __enter__(self): + self.was_injected = False + self.prev_skip_injection = self.model.skip_injection + if self.skip_and_inject_on_exit_only: + self.model.skip_injection = True + if self.model.is_injected: + self.model.eject_model() + self.was_injected = True + + def __exit__(self, *args): + if self.skip_and_inject_on_exit_only: + self.model.skip_injection = self.prev_skip_injection + self.model.inject_model() + if self.was_injected and not self.model.skip_injection: + self.model.inject_model() + self.model.skip_injection = self.prev_skip_injection + +class MemoryCounter: + def __init__(self, initial: int, minimum=0): + self.value = initial + self.minimum = minimum + # TODO: add a safe limit besides 0 + + def use(self, weight: torch.Tensor): + weight_size = weight.nelement() * weight.element_size() + if self.is_useable(weight_size): + self.decrement(weight_size) + return True + return False + + def is_useable(self, used: int): + return self.value - used > self.minimum + + def decrement(self, used: int): + self.value -= used + class ModelPatcher: def __init__(self, model, load_device, offload_device, size=0, weight_inplace_update=False): self.size = size @@ -139,6 +198,25 @@ class ModelPatcher: self.offload_device = offload_device self.weight_inplace_update = weight_inplace_update self.patches_uuid = uuid.uuid4() + self.parent = None + + self.attachments: dict[str] = {} + self.additional_models: dict[str, list[ModelPatcher]] = {} + self.callbacks: dict[str, dict[str, list[Callable]]] = CallbacksMP.init_callbacks() + self.wrappers: dict[str, dict[str, list[Callable]]] = WrappersMP.init_wrappers() + + self.is_injected = False + self.skip_injection = False + self.injections: dict[str, list[PatcherInjection]] = {} + + self.hook_patches: dict[comfy.hooks._HookRef] = {} + self.hook_patches_backup: dict[comfy.hooks._HookRef] = {} + self.hook_backup: dict[str, tuple[torch.Tensor, torch.device]] = {} + self.cached_hook_patches: dict[comfy.hooks.HookGroup, dict[str, torch.Tensor]] = {} + self.current_hooks: Optional[comfy.hooks.HookGroup] = None + self.forced_hooks: Optional[comfy.hooks.HookGroup] = None # NOTE: only used for CLIP at this time + self.is_clip = False + self.hook_mode = comfy.hooks.EnumHookMode.MaxSpeed if not hasattr(self.model, 'model_loaded_weight_memory'): self.model.model_loaded_weight_memory = 0 @@ -149,6 +227,9 @@ class ModelPatcher: if not hasattr(self.model, 'model_lowvram'): self.model.model_lowvram = False + if not hasattr(self.model, 'current_weight_patches_uuid'): + self.model.current_weight_patches_uuid = None + def model_size(self): if self.size > 0: return self.size @@ -162,7 +243,7 @@ class ModelPatcher: return self.model.lowvram_patch_counter def clone(self): - n = ModelPatcher(self.model, self.load_device, self.offload_device, self.size, weight_inplace_update=self.weight_inplace_update) + n = self.__class__(self.model, self.load_device, self.offload_device, self.size, weight_inplace_update=self.weight_inplace_update) n.patches = {} for k in self.patches: n.patches[k] = self.patches[k][:] @@ -172,6 +253,48 @@ class ModelPatcher: n.model_options = copy.deepcopy(self.model_options) n.backup = self.backup n.object_patches_backup = self.object_patches_backup + n.parent = self + + # attachments + n.attachments = {} + for k in self.attachments: + if hasattr(self.attachments[k], "on_model_patcher_clone"): + n.attachments[k] = self.attachments[k].on_model_patcher_clone() + else: + n.attachments[k] = self.attachments[k] + # additional models + for k, c in self.additional_models.items(): + n.additional_models[k] = [x.clone() for x in c] + # callbacks + for k, c in self.callbacks.items(): + n.callbacks[k] = {} + for k1, c1 in c.items(): + n.callbacks[k][k1] = c1.copy() + # sample wrappers + for k, w in self.wrappers.items(): + n.wrappers[k] = {} + for k1, w1 in w.items(): + n.wrappers[k][k1] = w1.copy() + # injection + n.is_injected = self.is_injected + n.skip_injection = self.skip_injection + for k, i in self.injections.items(): + n.injections[k] = i.copy() + # hooks + n.hook_patches = create_hook_patches_clone(self.hook_patches) + n.hook_patches_backup = create_hook_patches_clone(self.hook_patches_backup) + for group in self.cached_hook_patches: + n.cached_hook_patches[group] = {} + for k in self.cached_hook_patches[group]: + n.cached_hook_patches[group][k] = self.cached_hook_patches[group][k] + n.hook_backup = self.hook_backup + n.current_hooks = self.current_hooks.clone() if self.current_hooks else self.current_hooks + n.forced_hooks = self.forced_hooks.clone() if self.forced_hooks else self.forced_hooks + n.is_clip = self.is_clip + n.hook_mode = self.hook_mode + + for callback in self.get_all_callbacks(CallbacksMP.ON_CLONE): + callback(self, n) return n def is_clone(self, other): @@ -179,10 +302,29 @@ class ModelPatcher: return True return False - def clone_has_same_weights(self, clone): + def clone_has_same_weights(self, clone: 'ModelPatcher'): if not self.is_clone(clone): return False + if self.current_hooks != clone.current_hooks: + return False + if self.forced_hooks != clone.forced_hooks: + return False + if self.hook_patches.keys() != clone.hook_patches.keys(): + return False + if self.attachments.keys() != clone.attachments.keys(): + return False + if self.additional_models.keys() != clone.additional_models.keys(): + return False + for key in self.callbacks: + if len(self.callbacks[key]) != len(clone.callbacks[key]): + return False + for key in self.wrappers: + if len(self.wrappers[key]) != len(clone.wrappers[key]): + return False + if self.injections.keys() != clone.injections.keys(): + return False + if len(self.patches) == 0 and len(clone.patches) == 0: return True @@ -251,6 +393,12 @@ class ModelPatcher: def set_model_output_block_patch(self, patch): self.set_model_patch(patch, "output_block_patch") + def set_model_emb_patch(self, patch): + self.set_model_patch(patch, "emb_patch") + + def set_model_forward_timestep_embed_patch(self, patch): + self.set_model_patch(patch, "forward_timestep_embed_patch") + def add_object_patch(self, name, obj): self.object_patches[name] = obj @@ -289,27 +437,28 @@ class ModelPatcher: return self.model.get_dtype() def add_patches(self, patches, strength_patch=1.0, strength_model=1.0): - p = set() - model_sd = self.model.state_dict() - for k in patches: - offset = None - function = None - if isinstance(k, str): - key = k - else: - offset = k[1] - key = k[0] - if len(k) > 2: - function = k[2] + with self.use_ejected(): + p = set() + model_sd = self.model.state_dict() + for k in patches: + offset = None + function = None + if isinstance(k, str): + key = k + else: + offset = k[1] + key = k[0] + if len(k) > 2: + function = k[2] - if key in model_sd: - p.add(k) - current_patches = self.patches.get(key, []) - current_patches.append((strength_patch, patches[k], strength_model, offset, function)) - self.patches[key] = current_patches + if key in model_sd: + p.add(k) + current_patches = self.patches.get(key, []) + current_patches.append((strength_patch, patches[k], strength_model, offset, function)) + self.patches[key] = current_patches - self.patches_uuid = uuid.uuid4() - return list(p) + self.patches_uuid = uuid.uuid4() + return list(p) def get_key_patches(self, filter_prefix=None): model_sd = self.model_state_dict() @@ -319,9 +468,12 @@ class ModelPatcher: if not k.startswith(filter_prefix): continue bk = self.backup.get(k, None) + hbk = self.hook_backup.get(k, None) weight, set_func, convert_func = get_key_weight(self.model, k) if bk is not None: weight = bk.weight + if hbk is not None: + weight = hbk[0] if convert_func is None: convert_func = lambda a, **kwargs: a @@ -332,13 +484,14 @@ class ModelPatcher: return p def model_state_dict(self, filter_prefix=None): - sd = self.model.state_dict() - keys = list(sd.keys()) - if filter_prefix is not None: - for k in keys: - if not k.startswith(filter_prefix): - sd.pop(k) - return sd + with self.use_ejected(): + sd = self.model.state_dict() + keys = list(sd.keys()) + if filter_prefix is not None: + for k in keys: + if not k.startswith(filter_prefix): + sd.pop(k) + return sd def patch_weight_to_device(self, key, device_to=None, inplace_update=False): if key not in self.patches: @@ -367,108 +520,133 @@ class ModelPatcher: else: set_func(out_weight, inplace_update=inplace_update, seed=string_to_seed(key)) - def load(self, device_to=None, lowvram_model_memory=0, force_patch_weights=False, full_load=False): - mem_counter = 0 - patch_counter = 0 - lowvram_counter = 0 + def _load_list(self): loading = [] for n, m in self.model.named_modules(): - if hasattr(m, "comfy_cast_weights") or hasattr(m, "weight"): - loading.append((comfy.model_management.module_size(m), n, m)) + params = [] + skip = False + for name, param in m.named_parameters(recurse=False): + params.append(name) + for name, param in m.named_parameters(recurse=True): + if name not in params: + skip = True # skip random weights in non leaf modules + break + if not skip and (hasattr(m, "comfy_cast_weights") or len(params) > 0): + loading.append((comfy.model_management.module_size(m), n, m, params)) + return loading - load_completely = [] - loading.sort(reverse=True) - for x in loading: - n = x[1] - m = x[2] - module_mem = x[0] + def load(self, device_to=None, lowvram_model_memory=0, force_patch_weights=False, full_load=False): + with self.use_ejected(): + self.unpatch_hooks() + mem_counter = 0 + patch_counter = 0 + lowvram_counter = 0 + loading = self._load_list() - lowvram_weight = False + load_completely = [] + loading.sort(reverse=True) + for x in loading: + n = x[1] + m = x[2] + params = x[3] + module_mem = x[0] - if not full_load and hasattr(m, "comfy_cast_weights"): - if mem_counter + module_mem >= lowvram_model_memory: - lowvram_weight = True - lowvram_counter += 1 - if hasattr(m, "prev_comfy_cast_weights"): #Already lowvramed + lowvram_weight = False + + if not full_load and hasattr(m, "comfy_cast_weights"): + if mem_counter + module_mem >= lowvram_model_memory: + lowvram_weight = True + lowvram_counter += 1 + if hasattr(m, "prev_comfy_cast_weights"): #Already lowvramed + continue + + weight_key = "{}.weight".format(n) + bias_key = "{}.bias".format(n) + + if lowvram_weight: + if weight_key in self.patches: + if force_patch_weights: + self.patch_weight_to_device(weight_key) + else: + m.weight_function = LowVramPatch(weight_key, self.patches) + patch_counter += 1 + if bias_key in self.patches: + if force_patch_weights: + self.patch_weight_to_device(bias_key) + else: + m.bias_function = LowVramPatch(bias_key, self.patches) + patch_counter += 1 + + m.prev_comfy_cast_weights = m.comfy_cast_weights + m.comfy_cast_weights = True + else: + if hasattr(m, "comfy_cast_weights"): + if m.comfy_cast_weights: + wipe_lowvram_weight(m) + + if full_load or mem_counter + module_mem < lowvram_model_memory: + mem_counter += module_mem + load_completely.append((module_mem, n, m, params)) + + load_completely.sort(reverse=True) + for x in load_completely: + n = x[1] + m = x[2] + params = x[3] + if hasattr(m, "comfy_patched_weights"): + if m.comfy_patched_weights == True: continue - weight_key = "{}.weight".format(n) - bias_key = "{}.bias".format(n) + for param in params: + self.patch_weight_to_device("{}.{}".format(n, param), device_to=device_to) - if lowvram_weight: - if weight_key in self.patches: - if force_patch_weights: - self.patch_weight_to_device(weight_key) - else: - m.weight_function = LowVramPatch(weight_key, self.patches) - patch_counter += 1 - if bias_key in self.patches: - if force_patch_weights: - self.patch_weight_to_device(bias_key) - else: - m.bias_function = LowVramPatch(bias_key, self.patches) - patch_counter += 1 + logging.debug("lowvram: loaded module regularly {} {}".format(n, m)) + m.comfy_patched_weights = True - m.prev_comfy_cast_weights = m.comfy_cast_weights - m.comfy_cast_weights = True + for x in load_completely: + x[2].to(device_to) + + if lowvram_counter > 0: + logging.info("loaded partially {} {} {}".format(lowvram_model_memory / (1024 * 1024), mem_counter / (1024 * 1024), patch_counter)) + self.model.model_lowvram = True else: - if hasattr(m, "comfy_cast_weights"): - if m.comfy_cast_weights: - wipe_lowvram_weight(m) + logging.info("loaded completely {} {} {}".format(lowvram_model_memory / (1024 * 1024), mem_counter / (1024 * 1024), full_load)) + self.model.model_lowvram = False + if full_load: + self.model.to(device_to) + mem_counter = self.model_size() - if hasattr(m, "weight"): - mem_counter += module_mem - load_completely.append((module_mem, n, m)) + self.model.lowvram_patch_counter += patch_counter + self.model.device = device_to + self.model.model_loaded_weight_memory = mem_counter + self.model.current_weight_patches_uuid = self.patches_uuid - load_completely.sort(reverse=True) - for x in load_completely: - n = x[1] - m = x[2] - weight_key = "{}.weight".format(n) - bias_key = "{}.bias".format(n) - if hasattr(m, "comfy_patched_weights"): - if m.comfy_patched_weights == True: - continue + for callback in self.get_all_callbacks(CallbacksMP.ON_LOAD): + callback(self, device_to, lowvram_model_memory, force_patch_weights, full_load) - self.patch_weight_to_device(weight_key, device_to=device_to) - self.patch_weight_to_device(bias_key, device_to=device_to) - logging.debug("lowvram: loaded module regularly {} {}".format(n, m)) - m.comfy_patched_weights = True - - for x in load_completely: - x[2].to(device_to) - - if lowvram_counter > 0: - logging.info("loaded partially {} {} {}".format(lowvram_model_memory / (1024 * 1024), mem_counter / (1024 * 1024), patch_counter)) - self.model.model_lowvram = True - else: - logging.info("loaded completely {} {} {}".format(lowvram_model_memory / (1024 * 1024), mem_counter / (1024 * 1024), full_load)) - self.model.model_lowvram = False - if full_load: - self.model.to(device_to) - mem_counter = self.model_size() - - self.model.lowvram_patch_counter += patch_counter - self.model.device = device_to - self.model.model_loaded_weight_memory = mem_counter + self.apply_hooks(self.forced_hooks, force_apply=True) def patch_model(self, device_to=None, lowvram_model_memory=0, load_weights=True, force_patch_weights=False): - for k in self.object_patches: - old = comfy.utils.set_attr(self.model, k, self.object_patches[k]) - if k not in self.object_patches_backup: - self.object_patches_backup[k] = old + with self.use_ejected(): + for k in self.object_patches: + old = comfy.utils.set_attr(self.model, k, self.object_patches[k]) + if k not in self.object_patches_backup: + self.object_patches_backup[k] = old - if lowvram_model_memory == 0: - full_load = True - else: - full_load = False + if lowvram_model_memory == 0: + full_load = True + else: + full_load = False - if load_weights: - self.load(device_to, lowvram_model_memory=lowvram_model_memory, force_patch_weights=force_patch_weights, full_load=full_load) + if load_weights: + self.load(device_to, lowvram_model_memory=lowvram_model_memory, force_patch_weights=force_patch_weights, full_load=full_load) + self.inject_model() return self.model def unpatch_model(self, device_to=None, unpatch_weights=True): + self.eject_model() if unpatch_weights: + self.unpatch_hooks() if self.model.model_lowvram: for m in self.model.modules(): wipe_lowvram_weight(m) @@ -485,6 +663,7 @@ class ModelPatcher: else: comfy.utils.set_attr_param(self.model, k, bk.weight) + self.model.current_weight_patches_uuid = None self.backup.clear() if device_to is not None: @@ -503,70 +682,440 @@ class ModelPatcher: self.object_patches_backup.clear() def partially_unload(self, device_to, memory_to_free=0): - memory_freed = 0 - patch_counter = 0 - unload_list = [] + with self.use_ejected(): + memory_freed = 0 + patch_counter = 0 + unload_list = self._load_list() + unload_list.sort() + for unload in unload_list: + if memory_to_free < memory_freed: + break + module_mem = unload[0] + n = unload[1] + m = unload[2] + params = unload[3] - for n, m in self.model.named_modules(): - shift_lowvram = False - if hasattr(m, "comfy_cast_weights"): - module_mem = comfy.model_management.module_size(m) - unload_list.append((module_mem, n, m)) + lowvram_possible = hasattr(m, "comfy_cast_weights") + if hasattr(m, "comfy_patched_weights") and m.comfy_patched_weights == True: + move_weight = True + for param in params: + key = "{}.{}".format(n, param) + bk = self.backup.get(key, None) + if bk is not None: + if not lowvram_possible: + move_weight = False + break - unload_list.sort() - for unload in unload_list: - if memory_to_free < memory_freed: - break - module_mem = unload[0] - n = unload[1] - m = unload[2] - weight_key = "{}.weight".format(n) - bias_key = "{}.bias".format(n) + if bk.inplace_update: + comfy.utils.copy_to_param(self.model, key, bk.weight) + else: + comfy.utils.set_attr_param(self.model, key, bk.weight) + self.backup.pop(key) - if hasattr(m, "comfy_patched_weights") and m.comfy_patched_weights == True: - for key in [weight_key, bias_key]: - bk = self.backup.get(key, None) - if bk is not None: - if bk.inplace_update: - comfy.utils.copy_to_param(self.model, key, bk.weight) - else: - comfy.utils.set_attr_param(self.model, key, bk.weight) - self.backup.pop(key) + weight_key = "{}.weight".format(n) + bias_key = "{}.bias".format(n) + if move_weight: + m.to(device_to) + if lowvram_possible: + if weight_key in self.patches: + m.weight_function = LowVramPatch(weight_key, self.patches) + patch_counter += 1 + if bias_key in self.patches: + m.bias_function = LowVramPatch(bias_key, self.patches) + patch_counter += 1 - m.to(device_to) - if weight_key in self.patches: - m.weight_function = LowVramPatch(weight_key, self.patches) - patch_counter += 1 - if bias_key in self.patches: - m.bias_function = LowVramPatch(bias_key, self.patches) - patch_counter += 1 + m.prev_comfy_cast_weights = m.comfy_cast_weights + m.comfy_cast_weights = True + m.comfy_patched_weights = False + memory_freed += module_mem + logging.debug("freed {}".format(n)) - m.prev_comfy_cast_weights = m.comfy_cast_weights - m.comfy_cast_weights = True - m.comfy_patched_weights = False - memory_freed += module_mem - logging.debug("freed {}".format(n)) + self.model.model_lowvram = True + self.model.lowvram_patch_counter += patch_counter + self.model.model_loaded_weight_memory -= memory_freed + return memory_freed - self.model.model_lowvram = True - self.model.lowvram_patch_counter += patch_counter - self.model.model_loaded_weight_memory -= memory_freed - return memory_freed + def partially_load(self, device_to, extra_memory=0, force_patch_weights=False): + with self.use_ejected(skip_and_inject_on_exit_only=True): + unpatch_weights = self.model.current_weight_patches_uuid is not None and (self.model.current_weight_patches_uuid != self.patches_uuid or force_patch_weights) + # TODO: force_patch_weights should not unload + reload full model + used = self.model.model_loaded_weight_memory + self.unpatch_model(self.offload_device, unpatch_weights=unpatch_weights) + if unpatch_weights: + extra_memory += (used - self.model.model_loaded_weight_memory) - def partially_load(self, device_to, extra_memory=0): - self.unpatch_model(unpatch_weights=False) - self.patch_model(load_weights=False) - full_load = False - if self.model.model_lowvram == False: - return 0 - if self.model.model_loaded_weight_memory + extra_memory > self.model_size(): - full_load = True - current_used = self.model.model_loaded_weight_memory - self.load(device_to, lowvram_model_memory=current_used + extra_memory, full_load=full_load) - return self.model.model_loaded_weight_memory - current_used + self.patch_model(load_weights=False) + full_load = False + if self.model.model_lowvram == False and self.model.model_loaded_weight_memory > 0: + self.apply_hooks(self.forced_hooks, force_apply=True) + return 0 + if self.model.model_loaded_weight_memory + extra_memory > self.model_size(): + full_load = True + current_used = self.model.model_loaded_weight_memory + try: + self.load(device_to, lowvram_model_memory=current_used + extra_memory, force_patch_weights=force_patch_weights, full_load=full_load) + except Exception as e: + self.detach() + raise e + + return self.model.model_loaded_weight_memory - current_used + + def detach(self, unpatch_all=True): + self.eject_model() + self.model_patches_to(self.offload_device) + if unpatch_all: + self.unpatch_model(self.offload_device, unpatch_weights=unpatch_all) + for callback in self.get_all_callbacks(CallbacksMP.ON_DETACH): + callback(self, unpatch_all) + return self.model def current_loaded_device(self): return self.model.device def calculate_weight(self, patches, weight, key, intermediate_dtype=torch.float32): - print("WARNING the ModelPatcher.calculate_weight function is deprecated, please use: comfy.lora.calculate_weight instead") + logging.warning("The ModelPatcher.calculate_weight function is deprecated, please use: comfy.lora.calculate_weight instead") return comfy.lora.calculate_weight(patches, weight, key, intermediate_dtype=intermediate_dtype) + + def cleanup(self): + self.clean_hooks() + if hasattr(self.model, "current_patcher"): + self.model.current_patcher = None + for callback in self.get_all_callbacks(CallbacksMP.ON_CLEANUP): + callback(self) + + def add_callback(self, call_type: str, callback: Callable): + self.add_callback_with_key(call_type, None, callback) + + def add_callback_with_key(self, call_type: str, key: str, callback: Callable): + c = self.callbacks.setdefault(call_type, {}).setdefault(key, []) + c.append(callback) + + def remove_callbacks_with_key(self, call_type: str, key: str): + c = self.callbacks.get(call_type, {}) + if key in c: + c.pop(key) + + def get_callbacks(self, call_type: str, key: str): + return self.callbacks.get(call_type, {}).get(key, []) + + def get_all_callbacks(self, call_type: str): + c_list = [] + for c in self.callbacks.get(call_type, {}).values(): + c_list.extend(c) + return c_list + + def add_wrapper(self, wrapper_type: str, wrapper: Callable): + self.add_wrapper_with_key(wrapper_type, None, wrapper) + + def add_wrapper_with_key(self, wrapper_type: str, key: str, wrapper: Callable): + w = self.wrappers.setdefault(wrapper_type, {}).setdefault(key, []) + w.append(wrapper) + + def remove_wrappers_with_key(self, wrapper_type: str, key: str): + w = self.wrappers.get(wrapper_type, {}) + if key in w: + w.pop(key) + + def get_wrappers(self, wrapper_type: str, key: str): + return self.wrappers.get(wrapper_type, {}).get(key, []) + + def get_all_wrappers(self, wrapper_type: str): + w_list = [] + for w in self.wrappers.get(wrapper_type, {}).values(): + w_list.extend(w) + return w_list + + def set_attachments(self, key: str, attachment): + self.attachments[key] = attachment + + def remove_attachments(self, key: str): + if key in self.attachments: + self.attachments.pop(key) + + def get_attachment(self, key: str): + return self.attachments.get(key, None) + + def set_injections(self, key: str, injections: list[PatcherInjection]): + self.injections[key] = injections + + def remove_injections(self, key: str): + if key in self.injections: + self.injections.pop(key) + + def set_additional_models(self, key: str, models: list['ModelPatcher']): + self.additional_models[key] = models + + def remove_additional_models(self, key: str): + if key in self.additional_models: + self.additional_models.pop(key) + + def get_additional_models_with_key(self, key: str): + return self.additional_models.get(key, []) + + def get_additional_models(self): + all_models = [] + for models in self.additional_models.values(): + all_models.extend(models) + return all_models + + def get_nested_additional_models(self): + def _evaluate_sub_additional_models(prev_models: list[ModelPatcher], cache_set: set[ModelPatcher]): + '''Make sure circular references do not cause infinite recursion.''' + next_models = [] + for model in prev_models: + candidates = model.get_additional_models() + for c in candidates: + if c not in cache_set: + next_models.append(c) + cache_set.add(c) + if len(next_models) == 0: + return prev_models + return prev_models + _evaluate_sub_additional_models(next_models, cache_set) + + all_models = self.get_additional_models() + models_set = set(all_models) + real_all_models = _evaluate_sub_additional_models(prev_models=all_models, cache_set=models_set) + return real_all_models + + def use_ejected(self, skip_and_inject_on_exit_only=False): + return AutoPatcherEjector(self, skip_and_inject_on_exit_only=skip_and_inject_on_exit_only) + + def inject_model(self): + if self.is_injected or self.skip_injection: + return + for injections in self.injections.values(): + for inj in injections: + inj.inject(self) + self.is_injected = True + if self.is_injected: + for callback in self.get_all_callbacks(CallbacksMP.ON_INJECT_MODEL): + callback(self) + + def eject_model(self): + if not self.is_injected: + return + for injections in self.injections.values(): + for inj in injections: + inj.eject(self) + self.is_injected = False + for callback in self.get_all_callbacks(CallbacksMP.ON_EJECT_MODEL): + callback(self) + + def pre_run(self): + if hasattr(self.model, "current_patcher"): + self.model.current_patcher = self + for callback in self.get_all_callbacks(CallbacksMP.ON_PRE_RUN): + callback(self) + + def prepare_state(self, timestep): + for callback in self.get_all_callbacks(CallbacksMP.ON_PREPARE_STATE): + callback(self, timestep) + + def restore_hook_patches(self): + if len(self.hook_patches_backup) > 0: + self.hook_patches = self.hook_patches_backup + self.hook_patches_backup = {} + + def set_hook_mode(self, hook_mode: comfy.hooks.EnumHookMode): + self.hook_mode = hook_mode + + def prepare_hook_patches_current_keyframe(self, t: torch.Tensor, hook_group: comfy.hooks.HookGroup, model_options: dict[str]): + curr_t = t[0] + reset_current_hooks = False + transformer_options = model_options.get("transformer_options", {}) + for hook in hook_group.hooks: + changed = hook.hook_keyframe.prepare_current_keyframe(curr_t=curr_t, transformer_options=transformer_options) + # if keyframe changed, remove any cached HookGroups that contain hook with the same hook_ref; + # this will cause the weights to be recalculated when sampling + if changed: + # reset current_hooks if contains hook that changed + if self.current_hooks is not None: + for current_hook in self.current_hooks.hooks: + if current_hook == hook: + reset_current_hooks = True + break + for cached_group in list(self.cached_hook_patches.keys()): + if cached_group.contains(hook): + self.cached_hook_patches.pop(cached_group) + if reset_current_hooks: + self.patch_hooks(None) + + def register_all_hook_patches(self, hooks_dict: dict[comfy.hooks.EnumHookType, dict[comfy.hooks.Hook, None]], target: comfy.hooks.EnumWeightTarget, model_options: dict=None): + self.restore_hook_patches() + registered_hooks: list[comfy.hooks.Hook] = [] + # handle WrapperHooks, if model_options provided + if model_options is not None: + for hook in hooks_dict.get(comfy.hooks.EnumHookType.Wrappers, {}): + hook.add_hook_patches(self, model_options, target, registered_hooks) + # handle WeightHooks + weight_hooks_to_register: list[comfy.hooks.WeightHook] = [] + for hook in hooks_dict.get(comfy.hooks.EnumHookType.Weight, {}): + if hook.hook_ref not in self.hook_patches: + weight_hooks_to_register.append(hook) + if len(weight_hooks_to_register) > 0: + # clone hook_patches to become backup so that any non-dynamic hooks will return to their original state + self.hook_patches_backup = create_hook_patches_clone(self.hook_patches) + for hook in weight_hooks_to_register: + hook.add_hook_patches(self, model_options, target, registered_hooks) + for callback in self.get_all_callbacks(CallbacksMP.ON_REGISTER_ALL_HOOK_PATCHES): + callback(self, hooks_dict, target) + + def add_hook_patches(self, hook: comfy.hooks.WeightHook, patches, strength_patch=1.0, strength_model=1.0): + with self.use_ejected(): + # NOTE: this mirrors behavior of add_patches func + current_hook_patches: dict[str,list] = self.hook_patches.get(hook.hook_ref, {}) + p = set() + model_sd = self.model.state_dict() + for k in patches: + offset = None + function = None + if isinstance(k, str): + key = k + else: + offset = k[1] + key = k[0] + if len(k) > 2: + function = k[2] + + if key in model_sd: + p.add(k) + current_patches: list[tuple] = current_hook_patches.get(key, []) + current_patches.append((strength_patch, patches[k], strength_model, offset, function)) + current_hook_patches[key] = current_patches + self.hook_patches[hook.hook_ref] = current_hook_patches + # since should care about these patches too to determine if same model, reroll patches_uuid + self.patches_uuid = uuid.uuid4() + return list(p) + + def get_combined_hook_patches(self, hooks: comfy.hooks.HookGroup): + # combined_patches will contain weights of all relevant hooks, per key + combined_patches = {} + if hooks is not None: + for hook in hooks.hooks: + hook_patches: dict = self.hook_patches.get(hook.hook_ref, {}) + for key in hook_patches.keys(): + current_patches: list[tuple] = combined_patches.get(key, []) + if math.isclose(hook.strength, 1.0): + current_patches.extend(hook_patches[key]) + else: + # patches are stored as tuples: (strength_patch, (tuple_with_weights,), strength_model) + for patch in hook_patches[key]: + new_patch = list(patch) + new_patch[0] *= hook.strength + current_patches.append(tuple(new_patch)) + combined_patches[key] = current_patches + return combined_patches + + def apply_hooks(self, hooks: comfy.hooks.HookGroup, transformer_options: dict=None, force_apply=False): + # TODO: return transformer_options dict with any additions from hooks + if self.current_hooks == hooks and (not force_apply or (not self.is_clip and hooks is None)): + return {} + self.patch_hooks(hooks=hooks) + for callback in self.get_all_callbacks(CallbacksMP.ON_APPLY_HOOKS): + callback(self, hooks) + return {} + + def patch_hooks(self, hooks: comfy.hooks.HookGroup): + with self.use_ejected(): + self.unpatch_hooks() + if hooks is not None: + model_sd_keys = list(self.model_state_dict().keys()) + memory_counter = None + if self.hook_mode == comfy.hooks.EnumHookMode.MaxSpeed: + # TODO: minimum_counter should have a minimum that conforms to loaded model requirements + memory_counter = MemoryCounter(initial=comfy.model_management.get_free_memory(self.load_device), + minimum=comfy.model_management.minimum_inference_memory()*2) + # if have cached weights for hooks, use it + cached_weights = self.cached_hook_patches.get(hooks, None) + if cached_weights is not None: + for key in cached_weights: + if key not in model_sd_keys: + logging.warning(f"Cached hook could not patch. Key does not exist in model: {key}") + continue + self.patch_cached_hook_weights(cached_weights=cached_weights, key=key, memory_counter=memory_counter) + else: + relevant_patches = self.get_combined_hook_patches(hooks=hooks) + original_weights = None + if len(relevant_patches) > 0: + original_weights = self.get_key_patches() + for key in relevant_patches: + if key not in model_sd_keys: + logging.warning(f"Cached hook would not patch. Key does not exist in model: {key}") + continue + self.patch_hook_weight_to_device(hooks=hooks, combined_patches=relevant_patches, key=key, original_weights=original_weights, + memory_counter=memory_counter) + self.current_hooks = hooks + + def patch_cached_hook_weights(self, cached_weights: dict, key: str, memory_counter: MemoryCounter): + if key not in self.hook_backup: + weight: torch.Tensor = comfy.utils.get_attr(self.model, key) + target_device = self.offload_device + if self.hook_mode == comfy.hooks.EnumHookMode.MaxSpeed: + used = memory_counter.use(weight) + if used: + target_device = weight.device + self.hook_backup[key] = (weight.to(device=target_device, copy=True), weight.device) + comfy.utils.copy_to_param(self.model, key, cached_weights[key][0].to(device=cached_weights[key][1])) + + def clear_cached_hook_weights(self): + self.cached_hook_patches.clear() + self.patch_hooks(None) + + def patch_hook_weight_to_device(self, hooks: comfy.hooks.HookGroup, combined_patches: dict, key: str, original_weights: dict, memory_counter: MemoryCounter): + if key not in combined_patches: + return + + weight, set_func, convert_func = get_key_weight(self.model, key) + weight: torch.Tensor + if key not in self.hook_backup: + target_device = self.offload_device + if self.hook_mode == comfy.hooks.EnumHookMode.MaxSpeed: + used = memory_counter.use(weight) + if used: + target_device = weight.device + self.hook_backup[key] = (weight.to(device=target_device, copy=True), weight.device) + # TODO: properly handle LowVramPatch, if it ends up an issue + temp_weight = comfy.model_management.cast_to_device(weight, weight.device, torch.float32, copy=True) + if convert_func is not None: + temp_weight = convert_func(temp_weight, inplace=True) + + out_weight = comfy.lora.calculate_weight(combined_patches[key], + temp_weight, + key, original_weights=original_weights) + del original_weights[key] + if set_func is None: + out_weight = comfy.float.stochastic_rounding(out_weight, weight.dtype, seed=string_to_seed(key)) + comfy.utils.copy_to_param(self.model, key, out_weight) + else: + set_func(out_weight, inplace_update=True, seed=string_to_seed(key)) + if self.hook_mode == comfy.hooks.EnumHookMode.MaxSpeed: + # TODO: disable caching if not enough system RAM to do so + target_device = self.offload_device + used = memory_counter.use(weight) + if used: + target_device = weight.device + self.cached_hook_patches.setdefault(hooks, {}) + self.cached_hook_patches[hooks][key] = (out_weight.to(device=target_device, copy=False), weight.device) + del temp_weight + del out_weight + del weight + + def unpatch_hooks(self) -> None: + with self.use_ejected(): + if len(self.hook_backup) == 0: + self.current_hooks = None + return + keys = list(self.hook_backup.keys()) + for k in keys: + comfy.utils.copy_to_param(self.model, k, self.hook_backup[k][0].to(device=self.hook_backup[k][1])) + + self.hook_backup.clear() + self.current_hooks = None + + def clean_hooks(self): + self.unpatch_hooks() + self.clear_cached_hook_weights() + + def __del__(self): + self.detach(unpatch_all=False) + diff --git a/comfy/model_sampling.py b/comfy/model_sampling.py index 4a0f2db6..4370516b 100644 --- a/comfy/model_sampling.py +++ b/comfy/model_sampling.py @@ -2,6 +2,25 @@ import torch from comfy.ldm.modules.diffusionmodules.util import make_beta_schedule import math +def rescale_zero_terminal_snr_sigmas(sigmas): + alphas_cumprod = 1 / ((sigmas * sigmas) + 1) + alphas_bar_sqrt = alphas_cumprod.sqrt() + + # Store old values. + alphas_bar_sqrt_0 = alphas_bar_sqrt[0].clone() + alphas_bar_sqrt_T = alphas_bar_sqrt[-1].clone() + + # Shift so the last timestep is zero. + alphas_bar_sqrt -= (alphas_bar_sqrt_T) + + # Scale so the first timestep is back to the old value. + alphas_bar_sqrt *= alphas_bar_sqrt_0 / (alphas_bar_sqrt_0 - alphas_bar_sqrt_T) + + # Convert alphas_bar_sqrt to betas + alphas_bar = alphas_bar_sqrt**2 # Revert sqrt + alphas_bar[-1] = 4.8973451890853435e-08 + return ((1 - alphas_bar) / alphas_bar) ** 0.5 + class EPS: def calculate_input(self, sigma, noise): sigma = sigma.view(sigma.shape[:1] + (1,) * (noise.ndim - 1)) @@ -48,7 +67,7 @@ class CONST: return latent / (1.0 - sigma) class ModelSamplingDiscrete(torch.nn.Module): - def __init__(self, model_config=None): + def __init__(self, model_config=None, zsnr=None): super().__init__() if model_config is not None: @@ -61,11 +80,14 @@ class ModelSamplingDiscrete(torch.nn.Module): linear_end = sampling_settings.get("linear_end", 0.012) timesteps = sampling_settings.get("timesteps", 1000) - self._register_schedule(given_betas=None, beta_schedule=beta_schedule, timesteps=timesteps, linear_start=linear_start, linear_end=linear_end, cosine_s=8e-3) + if zsnr is None: + zsnr = sampling_settings.get("zsnr", False) + + self._register_schedule(given_betas=None, beta_schedule=beta_schedule, timesteps=timesteps, linear_start=linear_start, linear_end=linear_end, cosine_s=8e-3, zsnr=zsnr) self.sigma_data = 1.0 def _register_schedule(self, given_betas=None, beta_schedule="linear", timesteps=1000, - linear_start=1e-4, linear_end=2e-2, cosine_s=8e-3): + linear_start=1e-4, linear_end=2e-2, cosine_s=8e-3, zsnr=False): if given_betas is not None: betas = given_betas else: @@ -83,6 +105,9 @@ class ModelSamplingDiscrete(torch.nn.Module): # self.register_buffer('alphas_cumprod_prev', torch.tensor(alphas_cumprod_prev, dtype=torch.float32)) sigmas = ((1 - alphas_cumprod) / alphas_cumprod) ** 0.5 + if zsnr: + sigmas = rescale_zero_terminal_snr_sigmas(sigmas) + self.set_sigmas(sigmas) def set_sigmas(self, sigmas): @@ -218,7 +243,7 @@ class ModelSamplingDiscreteFlow(torch.nn.Module): return 1.0 if percent >= 1.0: return 0.0 - return 1.0 - percent + return time_snr_shift(self.shift, 1.0 - percent) class StableCascadeSampling(ModelSamplingDiscrete): def __init__(self, model_config=None): @@ -311,4 +336,4 @@ class ModelSamplingFlux(torch.nn.Module): return 1.0 if percent >= 1.0: return 0.0 - return 1.0 - percent + return flux_time_shift(self.shift, 1.0, 1.0 - percent) diff --git a/comfy/ops.py b/comfy/ops.py index 3c5ba012..06be6b48 100644 --- a/comfy/ops.py +++ b/comfy/ops.py @@ -255,9 +255,10 @@ def fp8_linear(self, input): tensor_2d = True input = input.unsqueeze(1) - + input_shape = input.shape + input_dtype = input.dtype if len(input.shape) == 3: - w, bias = cast_bias_weight(self, input, dtype=dtype, bias_dtype=input.dtype) + w, bias = cast_bias_weight(self, input, dtype=dtype, bias_dtype=input_dtype) w = w.t() scale_weight = self.scale_weight @@ -269,23 +270,24 @@ def fp8_linear(self, input): if scale_input is None: scale_input = torch.ones((), device=input.device, dtype=torch.float32) - inn = input.reshape(-1, input.shape[2]).to(dtype) + input = torch.clamp(input, min=-448, max=448, out=input) + input = input.reshape(-1, input_shape[2]).to(dtype) else: scale_input = scale_input.to(input.device) - inn = (input * (1.0 / scale_input).to(input.dtype)).reshape(-1, input.shape[2]).to(dtype) + input = (input * (1.0 / scale_input).to(input_dtype)).reshape(-1, input_shape[2]).to(dtype) if bias is not None: - o = torch._scaled_mm(inn, w, out_dtype=input.dtype, bias=bias, scale_a=scale_input, scale_b=scale_weight) + o = torch._scaled_mm(input, w, out_dtype=input_dtype, bias=bias, scale_a=scale_input, scale_b=scale_weight) else: - o = torch._scaled_mm(inn, w, out_dtype=input.dtype, scale_a=scale_input, scale_b=scale_weight) + o = torch._scaled_mm(input, w, out_dtype=input_dtype, scale_a=scale_input, scale_b=scale_weight) if isinstance(o, tuple): o = o[0] if tensor_2d: - return o.reshape(input.shape[0], -1) + return o.reshape(input_shape[0], -1) - return o.reshape((-1, input.shape[1], self.weight.shape[0])) + return o.reshape((-1, input_shape[1], self.weight.shape[0])) return None diff --git a/comfy/patcher_extension.py b/comfy/patcher_extension.py new file mode 100644 index 00000000..85975824 --- /dev/null +++ b/comfy/patcher_extension.py @@ -0,0 +1,156 @@ +from __future__ import annotations +from typing import Callable + +class CallbacksMP: + ON_CLONE = "on_clone" + ON_LOAD = "on_load_after" + ON_DETACH = "on_detach_after" + ON_CLEANUP = "on_cleanup" + ON_PRE_RUN = "on_pre_run" + ON_PREPARE_STATE = "on_prepare_state" + ON_APPLY_HOOKS = "on_apply_hooks" + ON_REGISTER_ALL_HOOK_PATCHES = "on_register_all_hook_patches" + ON_INJECT_MODEL = "on_inject_model" + ON_EJECT_MODEL = "on_eject_model" + + # callbacks dict is in the format: + # {"call_type": {"key": [Callable1, Callable2, ...]} } + @classmethod + def init_callbacks(cls) -> dict[str, dict[str, list[Callable]]]: + return {} + +def add_callback(call_type: str, callback: Callable, transformer_options: dict, is_model_options=False): + add_callback_with_key(call_type, None, callback, transformer_options, is_model_options) + +def add_callback_with_key(call_type: str, key: str, callback: Callable, transformer_options: dict, is_model_options=False): + if is_model_options: + transformer_options = transformer_options.setdefault("transformer_options", {}) + callbacks: dict[str, dict[str, list]] = transformer_options.setdefault("callbacks", {}) + c = callbacks.setdefault(call_type, {}).setdefault(key, []) + c.append(callback) + +def get_callbacks_with_key(call_type: str, key: str, transformer_options: dict, is_model_options=False): + if is_model_options: + transformer_options = transformer_options.get("transformer_options", {}) + c_list = [] + callbacks: dict[str, list] = transformer_options.get("callbacks", {}) + c_list.extend(callbacks.get(call_type, {}).get(key, [])) + return c_list + +def get_all_callbacks(call_type: str, transformer_options: dict, is_model_options=False): + if is_model_options: + transformer_options = transformer_options.get("transformer_options", {}) + c_list = [] + callbacks: dict[str, list] = transformer_options.get("callbacks", {}) + for c in callbacks.get(call_type, {}).values(): + c_list.extend(c) + return c_list + +class WrappersMP: + OUTER_SAMPLE = "outer_sample" + SAMPLER_SAMPLE = "sampler_sample" + CALC_COND_BATCH = "calc_cond_batch" + APPLY_MODEL = "apply_model" + DIFFUSION_MODEL = "diffusion_model" + + # wrappers dict is in the format: + # {"wrapper_type": {"key": [Callable1, Callable2, ...]} } + @classmethod + def init_wrappers(cls) -> dict[str, dict[str, list[Callable]]]: + return {} + +def add_wrapper(wrapper_type: str, wrapper: Callable, transformer_options: dict, is_model_options=False): + add_wrapper_with_key(wrapper_type, None, wrapper, transformer_options, is_model_options) + +def add_wrapper_with_key(wrapper_type: str, key: str, wrapper: Callable, transformer_options: dict, is_model_options=False): + if is_model_options: + transformer_options = transformer_options.setdefault("transformer_options", {}) + wrappers: dict[str, dict[str, list]] = transformer_options.setdefault("wrappers", {}) + w = wrappers.setdefault(wrapper_type, {}).setdefault(key, []) + w.append(wrapper) + +def get_wrappers_with_key(wrapper_type: str, key: str, transformer_options: dict, is_model_options=False): + if is_model_options: + transformer_options = transformer_options.get("transformer_options", {}) + w_list = [] + wrappers: dict[str, list] = transformer_options.get("wrappers", {}) + w_list.extend(wrappers.get(wrapper_type, {}).get(key, [])) + return w_list + +def get_all_wrappers(wrapper_type: str, transformer_options: dict, is_model_options=False): + if is_model_options: + transformer_options = transformer_options.get("transformer_options", {}) + w_list = [] + wrappers: dict[str, list] = transformer_options.get("wrappers", {}) + for w in wrappers.get(wrapper_type, {}).values(): + w_list.extend(w) + return w_list + +class WrapperExecutor: + """Handles call stack of wrappers around a function in an ordered manner.""" + def __init__(self, original: Callable, class_obj: object, wrappers: list[Callable], idx: int): + # NOTE: class_obj exists so that wrappers surrounding a class method can access + # the class instance at runtime via executor.class_obj + self.original = original + self.class_obj = class_obj + self.wrappers = wrappers.copy() + self.idx = idx + self.is_last = idx == len(wrappers) + + def __call__(self, *args, **kwargs): + """Calls the next wrapper or original function, whichever is appropriate.""" + new_executor = self._create_next_executor() + return new_executor.execute(*args, **kwargs) + + def execute(self, *args, **kwargs): + """Used to initiate executor internally - DO NOT use this if you received executor in wrapper.""" + args = list(args) + kwargs = dict(kwargs) + if self.is_last: + return self.original(*args, **kwargs) + return self.wrappers[self.idx](self, *args, **kwargs) + + def _create_next_executor(self) -> 'WrapperExecutor': + new_idx = self.idx + 1 + if new_idx > len(self.wrappers): + raise Exception("Wrapper idx exceeded available wrappers; something went very wrong.") + if self.class_obj is None: + return WrapperExecutor.new_executor(self.original, self.wrappers, new_idx) + return WrapperExecutor.new_class_executor(self.original, self.class_obj, self.wrappers, new_idx) + + @classmethod + def new_executor(cls, original: Callable, wrappers: list[Callable], idx=0): + return cls(original, class_obj=None, wrappers=wrappers, idx=idx) + + @classmethod + def new_class_executor(cls, original: Callable, class_obj: object, wrappers: list[Callable], idx=0): + return cls(original, class_obj, wrappers, idx=idx) + +class PatcherInjection: + def __init__(self, inject: Callable, eject: Callable): + self.inject = inject + self.eject = eject + +def copy_nested_dicts(input_dict: dict): + new_dict = input_dict.copy() + for key, value in input_dict.items(): + if isinstance(value, dict): + new_dict[key] = copy_nested_dicts(value) + elif isinstance(value, list): + new_dict[key] = value.copy() + return new_dict + +def merge_nested_dicts(dict1: dict, dict2: dict, copy_dict1=True): + if copy_dict1: + merged_dict = copy_nested_dicts(dict1) + else: + merged_dict = dict1 + for key, value in dict2.items(): + if isinstance(value, dict): + curr_value = merged_dict.setdefault(key, {}) + merged_dict[key] = merge_nested_dicts(value, curr_value) + elif isinstance(value, list): + merged_dict.setdefault(key, []).extend(value) + else: + merged_dict[key] = value + return merged_dict diff --git a/comfy/sample.py b/comfy/sample.py index 98dcaca7..be5a7e24 100644 --- a/comfy/sample.py +++ b/comfy/sample.py @@ -13,7 +13,7 @@ def prepare_noise(latent_image, seed, noise_inds=None): generator = torch.manual_seed(seed) if noise_inds is None: return torch.randn(latent_image.size(), dtype=latent_image.dtype, layout=latent_image.layout, generator=generator, device="cpu") - + unique_inds, inverse = np.unique(noise_inds, return_inverse=True) noises = [] for i in range(unique_inds[-1]+1): @@ -25,9 +25,11 @@ def prepare_noise(latent_image, seed, noise_inds=None): return noises def fix_empty_latent_channels(model, latent_image): - latent_channels = model.get_model_object("latent_format").latent_channels #Resize the empty latent image so it has the right number of channels - if latent_channels != latent_image.shape[1] and torch.count_nonzero(latent_image) == 0: - latent_image = comfy.utils.repeat_to_batch_size(latent_image, latent_channels, dim=1) + latent_format = model.get_model_object("latent_format") #Resize the empty latent image so it has the right number of channels + if latent_format.latent_channels != latent_image.shape[1] and torch.count_nonzero(latent_image) == 0: + latent_image = comfy.utils.repeat_to_batch_size(latent_image, latent_format.latent_channels, dim=1) + if latent_format.latent_dimensions == 3 and latent_image.ndim == 4: + latent_image = latent_image.unsqueeze(2) return latent_image def prepare_sampling(model, noise_shape, positive, negative, noise_mask): diff --git a/comfy/sampler_helpers.py b/comfy/sampler_helpers.py index 4a2ec123..ac973536 100644 --- a/comfy/sampler_helpers.py +++ b/comfy/sampler_helpers.py @@ -1,22 +1,60 @@ -import torch +from __future__ import annotations +import uuid import comfy.model_management import comfy.conds +import comfy.utils +import comfy.hooks +import comfy.patcher_extension +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from comfy.model_patcher import ModelPatcher + from comfy.model_base import BaseModel + from comfy.controlnet import ControlBase def prepare_mask(noise_mask, shape, device): - """ensures noise mask is of proper dimensions""" - noise_mask = torch.nn.functional.interpolate(noise_mask.reshape((-1, 1, noise_mask.shape[-2], noise_mask.shape[-1])), size=(shape[2], shape[3]), mode="bilinear") - noise_mask = torch.cat([noise_mask] * shape[1], dim=1) - noise_mask = comfy.utils.repeat_to_batch_size(noise_mask, shape[0]) - noise_mask = noise_mask.to(device) - return noise_mask + return comfy.utils.reshape_mask(noise_mask, shape).to(device) def get_models_from_cond(cond, model_type): models = [] for c in cond: if model_type in c: - models += [c[model_type]] + if isinstance(c[model_type], list): + models += c[model_type] + else: + models += [c[model_type]] return models +def get_hooks_from_cond(cond, hooks_dict: dict[comfy.hooks.EnumHookType, dict[comfy.hooks.Hook, None]]): + # get hooks from conds, and collect cnets so they can be checked for extra_hooks + cnets: list[ControlBase] = [] + for c in cond: + if 'hooks' in c: + for hook in c['hooks'].hooks: + hook: comfy.hooks.Hook + with_type = hooks_dict.setdefault(hook.hook_type, {}) + with_type[hook] = None + if 'control' in c: + cnets.append(c['control']) + + def get_extra_hooks_from_cnet(cnet: ControlBase, _list: list): + if cnet.extra_hooks is not None: + _list.append(cnet.extra_hooks) + if cnet.previous_controlnet is None: + return _list + return get_extra_hooks_from_cnet(cnet.previous_controlnet, _list) + + hooks_list = [] + cnets = set(cnets) + for base_cnet in cnets: + get_extra_hooks_from_cnet(base_cnet, hooks_list) + extra_hooks = comfy.hooks.HookGroup.combine_all_hooks(hooks_list) + if extra_hooks is not None: + for hook in extra_hooks.hooks: + with_type = hooks_dict.setdefault(hook.hook_type, {}) + with_type[hook] = None + + return hooks_dict + def convert_cond(cond): out = [] for c in cond: @@ -26,17 +64,22 @@ def convert_cond(cond): model_conds["c_crossattn"] = comfy.conds.CONDCrossAttn(c[0]) #TODO: remove temp["cross_attn"] = c[0] temp["model_conds"] = model_conds + temp["uuid"] = uuid.uuid4() out.append(temp) return out def get_additional_models(conds, dtype): """loads additional models in conditioning""" - cnets = [] + cnets: list[ControlBase] = [] gligen = [] + add_models = [] + hooks: dict[comfy.hooks.EnumHookType, dict[comfy.hooks.Hook, None]] = {} for k in conds: cnets += get_models_from_cond(conds[k], "control") gligen += get_models_from_cond(conds[k], "gligen") + add_models += get_models_from_cond(conds[k], "additional_models") + get_hooks_from_cond(conds[k], hooks) control_nets = set(cnets) @@ -47,7 +90,9 @@ def get_additional_models(conds, dtype): inference_memory += m.inference_memory_requirements(dtype) gligen = [x[1] for x in gligen] - models = control_models + gligen + hook_models = [x.model for x in hooks.get(comfy.hooks.EnumHookType.AddModels, {}).keys()] + models = control_models + gligen + add_models + hook_models + return models, inference_memory def cleanup_additional_models(models): @@ -57,10 +102,10 @@ def cleanup_additional_models(models): m.cleanup() -def prepare_sampling(model, noise_shape, conds): - device = model.load_device - real_model = None +def prepare_sampling(model: 'ModelPatcher', noise_shape, conds): + real_model: 'BaseModel' = None models, inference_memory = get_additional_models(conds, model.model_dtype()) + models += model.get_nested_additional_models() # TODO: does this require inference_memory update? memory_required = model.memory_required([noise_shape[0] * 2] + list(noise_shape[1:])) + inference_memory minimum_memory_required = model.memory_required([noise_shape[0]] + list(noise_shape[1:])) + inference_memory comfy.model_management.load_models_gpu([model] + models, memory_required=memory_required, minimum_memory_required=minimum_memory_required) @@ -76,3 +121,14 @@ def cleanup_models(conds, models): control_cleanup += get_models_from_cond(conds[k], "control") cleanup_additional_models(set(control_cleanup)) + +def prepare_model_patcher(model: 'ModelPatcher', conds, model_options: dict): + # check for hooks in conds - if not registered, see if can be applied + hooks = {} + for k in conds: + get_hooks_from_cond(conds[k], hooks) + # add wrappers and callbacks from ModelPatcher to transformer_options + model_options["transformer_options"]["wrappers"] = comfy.patcher_extension.copy_nested_dicts(model.wrappers) + model_options["transformer_options"]["callbacks"] = comfy.patcher_extension.copy_nested_dicts(model.callbacks) + # register hooks on model/model_options + model.register_all_hook_patches(hooks, comfy.hooks.EnumWeightTarget.Model, model_options) diff --git a/comfy/samplers.py b/comfy/samplers.py index eb520862..cd011e29 100644 --- a/comfy/samplers.py +++ b/comfy/samplers.py @@ -1,11 +1,22 @@ +from __future__ import annotations from .k_diffusion import sampling as k_diffusion_sampling from .extra_samplers import uni_pc +from typing import TYPE_CHECKING, Callable, NamedTuple +if TYPE_CHECKING: + from comfy.model_patcher import ModelPatcher + from comfy.model_base import BaseModel + from comfy.controlnet import ControlBase import torch +from functools import partial import collections from comfy import model_management import math import logging +import comfy.samplers import comfy.sampler_helpers +import comfy.model_patcher +import comfy.patcher_extension +import comfy.hooks import scipy.stats import numpy @@ -70,6 +81,7 @@ def get_area_and_mult(conds, x_in, timestep_in): for c in model_conds: conditioning[c] = model_conds[c].process_cond(batch_size=x_in.shape[0], device=x_in.device, area=area) + hooks = conds.get('hooks', None) control = conds.get('control', None) patches = None @@ -85,8 +97,8 @@ def get_area_and_mult(conds, x_in, timestep_in): patches['middle_patch'] = [gligen_patch] - cond_obj = collections.namedtuple('cond_obj', ['input_x', 'mult', 'conditioning', 'area', 'control', 'patches']) - return cond_obj(input_x, mult, conditioning, area, control, patches) + cond_obj = collections.namedtuple('cond_obj', ['input_x', 'mult', 'conditioning', 'area', 'control', 'patches', 'uuid', 'hooks']) + return cond_obj(input_x, mult, conditioning, area, control, patches, conds['uuid'], hooks) def cond_equal_size(c1, c2): if c1 is c2: @@ -119,11 +131,6 @@ def can_concat_cond(c1, c2): return cond_equal_size(c1.conditioning, c2.conditioning) def cond_cat(c_list): - c_crossattn = [] - c_concat = [] - c_adm = [] - crossattn_max_len = 0 - temp = {} for x in c_list: for k in x: @@ -138,110 +145,184 @@ def cond_cat(c_list): return out -def calc_cond_batch(model, conds, x_in, timestep, model_options): +def finalize_default_conds(model: 'BaseModel', hooked_to_run: dict[comfy.hooks.HookGroup,list[tuple[tuple,int]]], default_conds: list[list[dict]], x_in, timestep, model_options): + # need to figure out remaining unmasked area for conds + default_mults = [] + for _ in default_conds: + default_mults.append(torch.ones_like(x_in)) + # look through each finalized cond in hooked_to_run for 'mult' and subtract it from each cond + for lora_hooks, to_run in hooked_to_run.items(): + for cond_obj, i in to_run: + # if no default_cond for cond_type, do nothing + if len(default_conds[i]) == 0: + continue + area: list[int] = cond_obj.area + if area is not None: + curr_default_mult: torch.Tensor = default_mults[i] + dims = len(area) // 2 + for i in range(dims): + curr_default_mult = curr_default_mult.narrow(i + 2, area[i + dims], area[i]) + curr_default_mult -= cond_obj.mult + else: + default_mults[i] -= cond_obj.mult + # for each default_mult, ReLU to make negatives=0, and then check for any nonzeros + for i, mult in enumerate(default_mults): + # if no default_cond for cond type, do nothing + if len(default_conds[i]) == 0: + continue + torch.nn.functional.relu(mult, inplace=True) + # if mult is all zeros, then don't add default_cond + if torch.max(mult) == 0.0: + continue + + cond = default_conds[i] + for x in cond: + # do get_area_and_mult to get all the expected values + p = comfy.samplers.get_area_and_mult(x, x_in, timestep) + if p is None: + continue + # replace p's mult with calculated mult + p = p._replace(mult=mult) + if p.hooks is not None: + model.current_patcher.prepare_hook_patches_current_keyframe(timestep, p.hooks, model_options) + hooked_to_run.setdefault(p.hooks, list()) + hooked_to_run[p.hooks] += [(p, i)] + +def calc_cond_batch(model: 'BaseModel', conds: list[list[dict]], x_in: torch.Tensor, timestep, model_options): + executor = comfy.patcher_extension.WrapperExecutor.new_executor( + _calc_cond_batch, + comfy.patcher_extension.get_all_wrappers(comfy.patcher_extension.WrappersMP.CALC_COND_BATCH, model_options, is_model_options=True) + ) + return executor.execute(model, conds, x_in, timestep, model_options) + +def _calc_cond_batch(model: 'BaseModel', conds: list[list[dict]], x_in: torch.Tensor, timestep, model_options): out_conds = [] out_counts = [] - to_run = [] + # separate conds by matching hooks + hooked_to_run: dict[comfy.hooks.HookGroup,list[tuple[tuple,int]]] = {} + default_conds = [] + has_default_conds = False for i in range(len(conds)): out_conds.append(torch.zeros_like(x_in)) out_counts.append(torch.ones_like(x_in) * 1e-37) cond = conds[i] + default_c = [] if cond is not None: for x in cond: - p = get_area_and_mult(x, x_in, timestep) + if 'default' in x: + default_c.append(x) + has_default_conds = True + continue + p = comfy.samplers.get_area_and_mult(x, x_in, timestep) if p is None: continue + if p.hooks is not None: + model.current_patcher.prepare_hook_patches_current_keyframe(timestep, p.hooks, model_options) + hooked_to_run.setdefault(p.hooks, list()) + hooked_to_run[p.hooks] += [(p, i)] + default_conds.append(default_c) - to_run += [(p, i)] + if has_default_conds: + finalize_default_conds(model, hooked_to_run, default_conds, x_in, timestep, model_options) - while len(to_run) > 0: - first = to_run[0] - first_shape = first[0][0].shape - to_batch_temp = [] - for x in range(len(to_run)): - if can_concat_cond(to_run[x][0], first[0]): - to_batch_temp += [x] + model.current_patcher.prepare_state(timestep) - to_batch_temp.reverse() - to_batch = to_batch_temp[:1] + # run every hooked_to_run separately + for hooks, to_run in hooked_to_run.items(): + while len(to_run) > 0: + first = to_run[0] + first_shape = first[0][0].shape + to_batch_temp = [] + for x in range(len(to_run)): + if can_concat_cond(to_run[x][0], first[0]): + to_batch_temp += [x] - free_memory = model_management.get_free_memory(x_in.device) - for i in range(1, len(to_batch_temp) + 1): - batch_amount = to_batch_temp[:len(to_batch_temp)//i] - input_shape = [len(batch_amount) * first_shape[0]] + list(first_shape)[1:] - if model.memory_required(input_shape) * 1.5 < free_memory: - to_batch = batch_amount - break + to_batch_temp.reverse() + to_batch = to_batch_temp[:1] - input_x = [] - mult = [] - c = [] - cond_or_uncond = [] - area = [] - control = None - patches = None - for x in to_batch: - o = to_run.pop(x) - p = o[0] - input_x.append(p.input_x) - mult.append(p.mult) - c.append(p.conditioning) - area.append(p.area) - cond_or_uncond.append(o[1]) - control = p.control - patches = p.patches + free_memory = model_management.get_free_memory(x_in.device) + for i in range(1, len(to_batch_temp) + 1): + batch_amount = to_batch_temp[:len(to_batch_temp)//i] + input_shape = [len(batch_amount) * first_shape[0]] + list(first_shape)[1:] + if model.memory_required(input_shape) * 1.5 < free_memory: + to_batch = batch_amount + break - batch_chunks = len(cond_or_uncond) - input_x = torch.cat(input_x) - c = cond_cat(c) - timestep_ = torch.cat([timestep] * batch_chunks) + input_x = [] + mult = [] + c = [] + cond_or_uncond = [] + uuids = [] + area = [] + control = None + patches = None + for x in to_batch: + o = to_run.pop(x) + p = o[0] + input_x.append(p.input_x) + mult.append(p.mult) + c.append(p.conditioning) + area.append(p.area) + cond_or_uncond.append(o[1]) + uuids.append(p.uuid) + control = p.control + patches = p.patches - if control is not None: - c['control'] = control.get_control(input_x, timestep_, c, len(cond_or_uncond)) + batch_chunks = len(cond_or_uncond) + input_x = torch.cat(input_x) + c = cond_cat(c) + timestep_ = torch.cat([timestep] * batch_chunks) - transformer_options = {} - if 'transformer_options' in model_options: - transformer_options = model_options['transformer_options'].copy() + transformer_options = model.current_patcher.apply_hooks(hooks=hooks) + if 'transformer_options' in model_options: + transformer_options = comfy.patcher_extension.merge_nested_dicts(transformer_options, + model_options['transformer_options'], + copy_dict1=False) - if patches is not None: - if "patches" in transformer_options: - cur_patches = transformer_options["patches"].copy() - for p in patches: - if p in cur_patches: - cur_patches[p] = cur_patches[p] + patches[p] - else: - cur_patches[p] = patches[p] - transformer_options["patches"] = cur_patches + if patches is not None: + # TODO: replace with merge_nested_dicts function + if "patches" in transformer_options: + cur_patches = transformer_options["patches"].copy() + for p in patches: + if p in cur_patches: + cur_patches[p] = cur_patches[p] + patches[p] + else: + cur_patches[p] = patches[p] + transformer_options["patches"] = cur_patches + else: + transformer_options["patches"] = patches + + transformer_options["cond_or_uncond"] = cond_or_uncond[:] + transformer_options["uuids"] = uuids[:] + transformer_options["sigmas"] = timestep + + c['transformer_options'] = transformer_options + + if control is not None: + c['control'] = control.get_control(input_x, timestep_, c, len(cond_or_uncond), transformer_options) + + if 'model_function_wrapper' in model_options: + output = model_options['model_function_wrapper'](model.apply_model, {"input": input_x, "timestep": timestep_, "c": c, "cond_or_uncond": cond_or_uncond}).chunk(batch_chunks) else: - transformer_options["patches"] = patches + output = model.apply_model(input_x, timestep_, **c).chunk(batch_chunks) - transformer_options["cond_or_uncond"] = cond_or_uncond[:] - transformer_options["sigmas"] = timestep - - c['transformer_options'] = transformer_options - - if 'model_function_wrapper' in model_options: - output = model_options['model_function_wrapper'](model.apply_model, {"input": input_x, "timestep": timestep_, "c": c, "cond_or_uncond": cond_or_uncond}).chunk(batch_chunks) - else: - output = model.apply_model(input_x, timestep_, **c).chunk(batch_chunks) - - for o in range(batch_chunks): - cond_index = cond_or_uncond[o] - a = area[o] - if a is None: - out_conds[cond_index] += output[o] * mult[o] - out_counts[cond_index] += mult[o] - else: - out_c = out_conds[cond_index] - out_cts = out_counts[cond_index] - dims = len(a) // 2 - for i in range(dims): - out_c = out_c.narrow(i + 2, a[i + dims], a[i]) - out_cts = out_cts.narrow(i + 2, a[i + dims], a[i]) - out_c += output[o] * mult[o] - out_cts += mult[o] + for o in range(batch_chunks): + cond_index = cond_or_uncond[o] + a = area[o] + if a is None: + out_conds[cond_index] += output[o] * mult[o] + out_counts[cond_index] += mult[o] + else: + out_c = out_conds[cond_index] + out_cts = out_counts[cond_index] + dims = len(a) // 2 + for i in range(dims): + out_c = out_c.narrow(i + 2, a[i + dims], a[i]) + out_cts = out_cts.narrow(i + 2, a[i + dims], a[i]) + out_c += output[o] * mult[o] + out_cts += mult[o] for i in range(len(out_conds)): out_conds[i] /= out_counts[i] @@ -261,7 +342,7 @@ def cfg_function(model, cond_pred, uncond_pred, cond_scale, x, timestep, model_o cfg_result = uncond_pred + (cond_pred - uncond_pred) * cond_scale for fn in model_options.get("sampler_post_cfg_function", []): - args = {"denoised": cfg_result, "cond": cond, "uncond": uncond, "model": model, "uncond_denoised": uncond_pred, "cond_denoised": cond_pred, + args = {"denoised": cfg_result, "cond": cond, "uncond": uncond, "cond_scale": cond_scale, "model": model, "uncond_denoised": uncond_pred, "cond_denoised": cond_pred, "sigma": timestep, "model_options": model_options, "input": x} cfg_result = fn(args) @@ -387,6 +468,13 @@ def linear_quadratic_schedule(model_sampling, steps, threshold_noise=0.025, line sigma_schedule = [1.0 - x for x in sigma_schedule] return torch.FloatTensor(sigma_schedule) * model_sampling.sigma_max.cpu() +# Referenced from https://github.com/AUTOMATIC1111/stable-diffusion-webui/pull/15608 +def kl_optimal_scheduler(n: int, sigma_min: float, sigma_max: float) -> torch.Tensor: + adj_idxs = torch.arange(n, dtype=torch.float).div_(n - 1) + sigmas = adj_idxs.new_zeros(n + 1) + sigmas[:-1] = (adj_idxs * math.atan(sigma_min) + (1 - adj_idxs) * math.atan(sigma_max)).tan_() + return sigmas + def get_mask_aabb(masks): if masks.numel() == 0: return torch.zeros((0, 4), device=masks.device, dtype=torch.int) @@ -500,10 +588,15 @@ def calculate_start_end_timesteps(model, conds): timestep_start = None timestep_end = None - if 'start_percent' in x: - timestep_start = s.percent_to_sigma(x['start_percent']) - if 'end_percent' in x: - timestep_end = s.percent_to_sigma(x['end_percent']) + # handle clip hook schedule, if needed + if 'clip_start_percent' in x: + timestep_start = s.percent_to_sigma(max(x['clip_start_percent'], x.get('start_percent', 0.0))) + timestep_end = s.percent_to_sigma(min(x['clip_end_percent'], x.get('end_percent', 1.0))) + else: + if 'start_percent' in x: + timestep_start = s.percent_to_sigma(x['start_percent']) + if 'end_percent' in x: + timestep_end = s.percent_to_sigma(x['end_percent']) if (timestep_start is not None) or (timestep_end is not None): n = x.copy() @@ -518,8 +611,6 @@ def pre_run_control(model, conds): for t in range(len(conds)): x = conds[t] - timestep_start = None - timestep_end = None percent_to_timestep_function = lambda a: s.percent_to_sigma(a) if 'control' in x: x['control'].pre_run(model, percent_to_timestep_function) @@ -673,6 +764,12 @@ def process_conds(model, noise, conds, device, latent_image=None, denoise_mask=N if k != kk: create_cond_with_same_area_if_none(conds[kk], c) + for k in conds: + for c in conds[k]: + if 'hooks' in c: + for hook in c['hooks'].hooks: + hook.initialize_timesteps(model) + for k in conds: pre_run_control(model, conds[k]) @@ -685,9 +782,46 @@ def process_conds(model, noise, conds, device, latent_image=None, denoise_mask=N return conds + +def preprocess_conds_hooks(conds: dict[str, list[dict[str]]]): + # determine which ControlNets have extra_hooks that should be combined with normal hooks + hook_replacement: dict[tuple[ControlBase, comfy.hooks.HookGroup], list[dict]] = {} + for k in conds: + for kk in conds[k]: + if 'control' in kk: + control: 'ControlBase' = kk['control'] + extra_hooks = control.get_extra_hooks() + if len(extra_hooks) > 0: + hooks: comfy.hooks.HookGroup = kk.get('hooks', None) + to_replace = hook_replacement.setdefault((control, hooks), []) + to_replace.append(kk) + # if nothing to replace, do nothing + if len(hook_replacement) == 0: + return + + # for optimal sampling performance, common ControlNets + hook combos should have identical hooks + # on the cond dicts + for key, conds_to_modify in hook_replacement.items(): + control = key[0] + hooks = key[1] + hooks = comfy.hooks.HookGroup.combine_all_hooks(control.get_extra_hooks() + [hooks]) + # if combined hooks are not None, set as new hooks for all relevant conds + if hooks is not None: + for cond in conds_to_modify: + cond['hooks'] = hooks + + +def get_total_hook_groups_in_conds(conds: dict[str, list[dict[str]]]): + hooks_set = set() + for k in conds: + for kk in conds[k]: + hooks_set.add(kk.get('hooks', None)) + return len(hooks_set) + + class CFGGuider: def __init__(self, model_patcher): - self.model_patcher = model_patcher + self.model_patcher: 'ModelPatcher' = model_patcher self.model_options = model_patcher.model_options self.original_conds = {} self.cfg = 1.0 @@ -714,19 +848,19 @@ class CFGGuider: self.conds = process_conds(self.inner_model, noise, self.conds, device, latent_image, denoise_mask, seed) - extra_args = {"model_options": self.model_options, "seed":seed} + extra_model_options = comfy.model_patcher.create_model_options_clone(self.model_options) + extra_model_options.setdefault("transformer_options", {})["sample_sigmas"] = sigmas + extra_args = {"model_options": extra_model_options, "seed": seed} - samples = sampler.sample(self, sigmas, extra_args, callback, noise, latent_image, denoise_mask, disable_pbar) + executor = comfy.patcher_extension.WrapperExecutor.new_class_executor( + sampler.sample, + sampler, + comfy.patcher_extension.get_all_wrappers(comfy.patcher_extension.WrappersMP.SAMPLER_SAMPLE, extra_args["model_options"], is_model_options=True) + ) + samples = executor.execute(self, sigmas, extra_args, callback, noise, latent_image, denoise_mask, disable_pbar) return self.inner_model.process_latent_out(samples.to(torch.float32)) - def sample(self, noise, latent_image, sampler, sigmas, denoise_mask=None, callback=None, disable_pbar=False, seed=None): - if sigmas.shape[-1] == 0: - return latent_image - - self.conds = {} - for k in self.original_conds: - self.conds[k] = list(map(lambda a: a.copy(), self.original_conds[k])) - + def outer_sample(self, noise, latent_image, sampler, sigmas, denoise_mask=None, callback=None, disable_pbar=False, seed=None): self.inner_model, self.conds, self.loaded_models = comfy.sampler_helpers.prepare_sampling(self.model_patcher, noise.shape, self.conds) device = self.model_patcher.load_device @@ -737,14 +871,48 @@ class CFGGuider: latent_image = latent_image.to(device) sigmas = sigmas.to(device) - output = self.inner_sample(noise, latent_image, device, sampler, sigmas, denoise_mask, callback, disable_pbar, seed) + try: + self.model_patcher.pre_run() + output = self.inner_sample(noise, latent_image, device, sampler, sigmas, denoise_mask, callback, disable_pbar, seed) + finally: + self.model_patcher.cleanup() comfy.sampler_helpers.cleanup_models(self.conds, self.loaded_models) del self.inner_model - del self.conds del self.loaded_models return output + def sample(self, noise, latent_image, sampler, sigmas, denoise_mask=None, callback=None, disable_pbar=False, seed=None): + if sigmas.shape[-1] == 0: + return latent_image + + self.conds = {} + for k in self.original_conds: + self.conds[k] = list(map(lambda a: a.copy(), self.original_conds[k])) + preprocess_conds_hooks(self.conds) + + try: + orig_model_options = self.model_options + self.model_options = comfy.model_patcher.create_model_options_clone(self.model_options) + # if one hook type (or just None), then don't bother caching weights for hooks (will never change after first step) + orig_hook_mode = self.model_patcher.hook_mode + if get_total_hook_groups_in_conds(self.conds) <= 1: + self.model_patcher.hook_mode = comfy.hooks.EnumHookMode.MinVram + comfy.sampler_helpers.prepare_model_patcher(self.model_patcher, self.conds, self.model_options) + executor = comfy.patcher_extension.WrapperExecutor.new_class_executor( + self.outer_sample, + self, + comfy.patcher_extension.get_all_wrappers(comfy.patcher_extension.WrappersMP.OUTER_SAMPLE, self.model_options, is_model_options=True) + ) + output = executor.execute(noise, latent_image, sampler, sigmas, denoise_mask, callback, disable_pbar, seed) + finally: + self.model_options = orig_model_options + self.model_patcher.hook_mode = orig_hook_mode + self.model_patcher.restore_hook_patches() + + del self.conds + return output + def sample(model, noise, positive, negative, cfg, device, sampler, sigmas, model_options={}, latent_image=None, denoise_mask=None, callback=None, disable_pbar=False, seed=None): cfg_guider = CFGGuider(model) @@ -753,29 +921,37 @@ def sample(model, noise, positive, negative, cfg, device, sampler, sigmas, model return cfg_guider.sample(noise, latent_image, sampler, sigmas, denoise_mask, callback, disable_pbar, seed) -SCHEDULER_NAMES = ["normal", "karras", "exponential", "sgm_uniform", "simple", "ddim_uniform", "beta", "linear_quadratic"] SAMPLER_NAMES = KSAMPLER_NAMES + ["ddim", "uni_pc", "uni_pc_bh2"] -def calculate_sigmas(model_sampling, scheduler_name, steps): - if scheduler_name == "karras": - sigmas = k_diffusion_sampling.get_sigmas_karras(n=steps, sigma_min=float(model_sampling.sigma_min), sigma_max=float(model_sampling.sigma_max)) - elif scheduler_name == "exponential": - sigmas = k_diffusion_sampling.get_sigmas_exponential(n=steps, sigma_min=float(model_sampling.sigma_min), sigma_max=float(model_sampling.sigma_max)) - elif scheduler_name == "normal": - sigmas = normal_scheduler(model_sampling, steps) - elif scheduler_name == "simple": - sigmas = simple_scheduler(model_sampling, steps) - elif scheduler_name == "ddim_uniform": - sigmas = ddim_scheduler(model_sampling, steps) - elif scheduler_name == "sgm_uniform": - sigmas = normal_scheduler(model_sampling, steps, sgm=True) - elif scheduler_name == "beta": - sigmas = beta_scheduler(model_sampling, steps) - elif scheduler_name == "linear_quadratic": - sigmas = linear_quadratic_schedule(model_sampling, steps) - else: - logging.error("error invalid scheduler {}".format(scheduler_name)) - return sigmas +class SchedulerHandler(NamedTuple): + handler: Callable[..., torch.Tensor] + # Boolean indicates whether to call the handler like: + # scheduler_function(model_sampling, steps) or + # scheduler_function(n, sigma_min: float, sigma_max: float) + use_ms: bool = True + +SCHEDULER_HANDLERS = { + "normal": SchedulerHandler(normal_scheduler), + "karras": SchedulerHandler(k_diffusion_sampling.get_sigmas_karras, use_ms=False), + "exponential": SchedulerHandler(k_diffusion_sampling.get_sigmas_exponential, use_ms=False), + "sgm_uniform": SchedulerHandler(partial(normal_scheduler, sgm=True)), + "simple": SchedulerHandler(simple_scheduler), + "ddim_uniform": SchedulerHandler(ddim_scheduler), + "beta": SchedulerHandler(beta_scheduler), + "linear_quadratic": SchedulerHandler(linear_quadratic_schedule), + "kl_optimal": SchedulerHandler(kl_optimal_scheduler, use_ms=False), +} +SCHEDULER_NAMES = list(SCHEDULER_HANDLERS) + +def calculate_sigmas(model_sampling: object, scheduler_name: str, steps: int) -> torch.Tensor: + handler = SCHEDULER_HANDLERS.get(scheduler_name) + if handler is None: + err = f"error invalid scheduler {scheduler_name}" + logging.error(err) + raise ValueError(err) + if handler.use_ms: + return handler.handler(model_sampling, steps) + return handler.handler(n=steps, sigma_min=float(model_sampling.sigma_min), sigma_max=float(model_sampling.sigma_max)) def sampler_object(name): if name == "uni_pc": diff --git a/comfy/sd.py b/comfy/sd.py index e9a3579c..c6d6236b 100644 --- a/comfy/sd.py +++ b/comfy/sd.py @@ -1,14 +1,18 @@ +from __future__ import annotations import torch from enum import Enum import logging from comfy import model_management +from comfy.utils import ProgressBar from .ldm.models.autoencoder import AutoencoderKL, AutoencodingEngine from .ldm.cascade.stage_a import StageA from .ldm.cascade.stage_c_coder import StageC_coder from .ldm.audio.autoencoder import AudioOobleckVAE import comfy.ldm.genmo.vae.model +import comfy.ldm.lightricks.vae.causal_video_autoencoder import yaml +import math import comfy.utils @@ -23,16 +27,23 @@ import comfy.text_encoders.sd2_clip import comfy.text_encoders.sd3_clip import comfy.text_encoders.sa_t5 import comfy.text_encoders.aura_t5 +import comfy.text_encoders.pixart_t5 import comfy.text_encoders.hydit import comfy.text_encoders.flux import comfy.text_encoders.long_clipl import comfy.text_encoders.genmo +import comfy.text_encoders.lt +import comfy.text_encoders.hunyuan_video import comfy.model_patcher import comfy.lora +import comfy.lora_convert +import comfy.hooks import comfy.t2i_adapter.adapter import comfy.taesd.taesd +import comfy.ldm.flux.redux + def load_lora_for_models(model, clip, lora, strength_model, strength_clip): key_map = {} if model is not None: @@ -40,6 +51,7 @@ def load_lora_for_models(model, clip, lora, strength_model, strength_clip): if clip is not None: key_map = comfy.lora.model_lora_keys_clip(clip.cond_stage_model, key_map) + lora = comfy.lora_convert.convert_lora(lora) loaded = comfy.lora.load_lora(lora, key_map) if model is not None: new_modelpatcher = model.clone() @@ -92,10 +104,14 @@ class CLIP: self.tokenizer = tokenizer(embedding_directory=embedding_directory, tokenizer_data=tokenizer_data) self.patcher = comfy.model_patcher.ModelPatcher(self.cond_stage_model, load_device=load_device, offload_device=offload_device) + self.patcher.hook_mode = comfy.hooks.EnumHookMode.MinVram + self.patcher.is_clip = True + self.apply_hooks_to_conds = None if params['device'] == load_device: model_management.load_models_gpu([self.patcher], force_full_load=True) self.layer_idx = None - logging.debug("CLIP model load device: {}, offload device: {}, current: {}".format(load_device, offload_device, params['device'])) + self.use_clip_schedule = False + logging.info("CLIP model load device: {}, offload device: {}, current: {}, dtype: {}".format(load_device, offload_device, params['device'], dtype)) def clone(self): n = CLIP(no_init=True) @@ -103,6 +119,8 @@ class CLIP: n.cond_stage_model = self.cond_stage_model n.tokenizer = self.tokenizer n.layer_idx = self.layer_idx + n.use_clip_schedule = self.use_clip_schedule + n.apply_hooks_to_conds = self.apply_hooks_to_conds return n def add_patches(self, patches, strength_patch=1.0, strength_model=1.0): @@ -114,6 +132,69 @@ class CLIP: def tokenize(self, text, return_word_ids=False): return self.tokenizer.tokenize_with_weights(text, return_word_ids) + def add_hooks_to_dict(self, pooled_dict: dict[str]): + if self.apply_hooks_to_conds: + pooled_dict["hooks"] = self.apply_hooks_to_conds + return pooled_dict + + def encode_from_tokens_scheduled(self, tokens, unprojected=False, add_dict: dict[str]={}, show_pbar=True): + all_cond_pooled: list[tuple[torch.Tensor, dict[str]]] = [] + all_hooks = self.patcher.forced_hooks + if all_hooks is None or not self.use_clip_schedule: + # if no hooks or shouldn't use clip schedule, do unscheduled encode_from_tokens and perform add_dict + return_pooled = "unprojected" if unprojected else True + pooled_dict = self.encode_from_tokens(tokens, return_pooled=return_pooled, return_dict=True) + cond = pooled_dict.pop("cond") + # add/update any keys with the provided add_dict + pooled_dict.update(add_dict) + all_cond_pooled.append([cond, pooled_dict]) + else: + scheduled_keyframes = all_hooks.get_hooks_for_clip_schedule() + + self.cond_stage_model.reset_clip_options() + if self.layer_idx is not None: + self.cond_stage_model.set_clip_options({"layer": self.layer_idx}) + if unprojected: + self.cond_stage_model.set_clip_options({"projected_pooled": False}) + + self.load_model() + all_hooks.reset() + self.patcher.patch_hooks(None) + if show_pbar: + pbar = ProgressBar(len(scheduled_keyframes)) + + for scheduled_opts in scheduled_keyframes: + t_range = scheduled_opts[0] + # don't bother encoding any conds outside of start_percent and end_percent bounds + if "start_percent" in add_dict: + if t_range[1] < add_dict["start_percent"]: + continue + if "end_percent" in add_dict: + if t_range[0] > add_dict["end_percent"]: + continue + hooks_keyframes = scheduled_opts[1] + for hook, keyframe in hooks_keyframes: + hook.hook_keyframe._current_keyframe = keyframe + # apply appropriate hooks with values that match new hook_keyframe + self.patcher.patch_hooks(all_hooks) + # perform encoding as normal + o = self.cond_stage_model.encode_token_weights(tokens) + cond, pooled = o[:2] + pooled_dict = {"pooled_output": pooled} + # add clip_start_percent and clip_end_percent in pooled + pooled_dict["clip_start_percent"] = t_range[0] + pooled_dict["clip_end_percent"] = t_range[1] + # add/update any keys with the provided add_dict + pooled_dict.update(add_dict) + # add hooks stored on clip + self.add_hooks_to_dict(pooled_dict) + all_cond_pooled.append([cond, pooled_dict]) + if show_pbar: + pbar.update(1) + model_management.throw_exception_if_processing_interrupted() + all_hooks.reset() + return all_cond_pooled + def encode_from_tokens(self, tokens, return_pooled=False, return_dict=False): self.cond_stage_model.reset_clip_options() @@ -131,6 +212,7 @@ class CLIP: if len(o) > 2: for k in o[2]: out[k] = o[2][k] + self.add_hooks_to_dict(out) return out if return_pooled: @@ -171,11 +253,15 @@ class VAE: self.downscale_ratio = 8 self.upscale_ratio = 8 self.latent_channels = 4 + self.latent_dim = 2 self.output_channels = 3 self.process_input = lambda image: image * 2.0 - 1.0 self.process_output = lambda image: torch.clamp((image + 1.0) / 2.0, min=0.0, max=1.0) self.working_dtypes = [torch.bfloat16, torch.float32] + self.downscale_index_formula = None + self.upscale_index_formula = None + if config is None: if "decoder.mid.block_1.mix_factor" in sd: encoder_config = {'double_z': True, 'z_channels': 4, 'resolution': 256, 'in_channels': 3, 'out_ch': 3, 'ch': 128, 'ch_mult': [1, 2, 4, 4], 'num_res_blocks': 2, 'attn_resolutions': [], 'dropout': 0.0} @@ -226,8 +312,8 @@ class VAE: self.upscale_ratio = 4 self.latent_channels = ddconfig['z_channels'] = sd["decoder.conv_in.weight"].shape[1] - if 'quant_conv.weight' in sd: - self.first_stage_model = AutoencoderKL(ddconfig=ddconfig, embed_dim=4) + if 'post_quant_conv.weight' in sd: + self.first_stage_model = AutoencoderKL(ddconfig=ddconfig, embed_dim=sd['post_quant_conv.weight'].shape[1]) else: self.first_stage_model = AutoencodingEngine(regularizer_config={'target': "comfy.ldm.models.autoencoder.DiagonalGaussianRegularizer"}, encoder_config={'target': "comfy.ldm.modules.diffusionmodules.model.Encoder", 'params': ddconfig}, @@ -240,16 +326,56 @@ class VAE: self.output_channels = 2 self.upscale_ratio = 2048 self.downscale_ratio = 2048 + self.latent_dim = 1 self.process_output = lambda audio: audio self.process_input = lambda audio: audio self.working_dtypes = [torch.float16, torch.bfloat16, torch.float32] - elif "blocks.2.blocks.3.stack.5.weight" in sd or "decoder.blocks.2.blocks.3.stack.5.weight" in sd: #genmo mochi vae + elif "blocks.2.blocks.3.stack.5.weight" in sd or "decoder.blocks.2.blocks.3.stack.5.weight" in sd or "layers.4.layers.1.attn_block.attn.qkv.weight" in sd or "encoder.layers.4.layers.1.attn_block.attn.qkv.weight" in sd: #genmo mochi vae if "blocks.2.blocks.3.stack.5.weight" in sd: sd = comfy.utils.state_dict_prefix_replace(sd, {"": "decoder."}) + if "layers.4.layers.1.attn_block.attn.qkv.weight" in sd: + sd = comfy.utils.state_dict_prefix_replace(sd, {"": "encoder."}) self.first_stage_model = comfy.ldm.genmo.vae.model.VideoVAE() self.latent_channels = 12 + self.latent_dim = 3 self.memory_used_decode = lambda shape, dtype: (1000 * shape[2] * shape[3] * shape[4] * (6 * 8 * 8)) * model_management.dtype_size(dtype) + self.memory_used_encode = lambda shape, dtype: (1.5 * max(shape[2], 7) * shape[3] * shape[4] * (6 * 8 * 8)) * model_management.dtype_size(dtype) self.upscale_ratio = (lambda a: max(0, a * 6 - 5), 8, 8) + self.upscale_index_formula = (6, 8, 8) + self.downscale_ratio = (lambda a: max(0, math.floor((a + 5) / 6)), 8, 8) + self.downscale_index_formula = (6, 8, 8) + self.working_dtypes = [torch.float16, torch.float32] + elif "decoder.up_blocks.0.res_blocks.0.conv1.conv.weight" in sd: #lightricks ltxv + tensor_conv1 = sd["decoder.up_blocks.0.res_blocks.0.conv1.conv.weight"] + version = 0 + if tensor_conv1.shape[0] == 512: + version = 0 + elif tensor_conv1.shape[0] == 1024: + version = 1 + self.first_stage_model = comfy.ldm.lightricks.vae.causal_video_autoencoder.VideoVAE(version=version) + self.latent_channels = 128 + self.latent_dim = 3 + self.memory_used_decode = lambda shape, dtype: (900 * shape[2] * shape[3] * shape[4] * (8 * 8 * 8)) * model_management.dtype_size(dtype) + self.memory_used_encode = lambda shape, dtype: (70 * max(shape[2], 7) * shape[3] * shape[4]) * model_management.dtype_size(dtype) + self.upscale_ratio = (lambda a: max(0, a * 8 - 7), 32, 32) + self.upscale_index_formula = (8, 32, 32) + self.downscale_ratio = (lambda a: max(0, math.floor((a + 7) / 8)), 32, 32) + self.downscale_index_formula = (8, 32, 32) + self.working_dtypes = [torch.bfloat16, torch.float32] + elif "decoder.conv_in.conv.weight" in sd: + ddconfig = {'double_z': True, 'z_channels': 4, 'resolution': 256, 'in_channels': 3, 'out_ch': 3, 'ch': 128, 'ch_mult': [1, 2, 4, 4], 'num_res_blocks': 2, 'attn_resolutions': [], 'dropout': 0.0} + ddconfig["conv3d"] = True + ddconfig["time_compress"] = 4 + self.upscale_ratio = (lambda a: max(0, a * 4 - 3), 8, 8) + self.upscale_index_formula = (4, 8, 8) + self.downscale_ratio = (lambda a: max(0, math.floor((a + 3) / 4)), 8, 8) + self.downscale_index_formula = (4, 8, 8) + self.latent_dim = 3 + self.latent_channels = ddconfig['z_channels'] = sd["decoder.conv_in.conv.weight"].shape[1] + self.first_stage_model = AutoencoderKL(ddconfig=ddconfig, embed_dim=sd['post_quant_conv.weight'].shape[1]) + self.memory_used_decode = lambda shape, dtype: (1500 * shape[2] * shape[3] * shape[4] * (4 * 8 * 8)) * model_management.dtype_size(dtype) + self.memory_used_encode = lambda shape, dtype: (900 * max(shape[2], 2) * shape[3] * shape[4]) * model_management.dtype_size(dtype) + self.working_dtypes = [torch.bfloat16, torch.float16, torch.float32] else: logging.warning("WARNING: No VAE weights detected, VAE not initalized.") self.first_stage_model = None @@ -276,13 +402,15 @@ class VAE: self.output_device = model_management.intermediate_device() self.patcher = comfy.model_patcher.ModelPatcher(self.first_stage_model, load_device=self.device, offload_device=offload_device) - logging.debug("VAE load device: {}, offload device: {}, dtype: {}".format(self.device, offload_device, self.vae_dtype)) + logging.info("VAE load device: {}, offload device: {}, dtype: {}".format(self.device, offload_device, self.vae_dtype)) def vae_encode_crop_pixels(self, pixels): + downscale_ratio = self.spacial_compression_encode() + dims = pixels.shape[1:-1] for d in range(len(dims)): - x = (dims[d] // self.downscale_ratio) * self.downscale_ratio - x_offset = (dims[d] % self.downscale_ratio) // 2 + x = (dims[d] // downscale_ratio) * downscale_ratio + x_offset = (dims[d] % downscale_ratio) // 2 if x != dims[d]: pixels = pixels.narrow(d + 1, x_offset, x) return pixels @@ -303,11 +431,11 @@ class VAE: def decode_tiled_1d(self, samples, tile_x=128, overlap=32): decode_fn = lambda a: self.first_stage_model.decode(a.to(self.vae_dtype).to(self.device)).float() - return comfy.utils.tiled_scale_multidim(samples, decode_fn, tile=(tile_x,), overlap=overlap, upscale_amount=self.upscale_ratio, out_channels=self.output_channels, output_device=self.output_device) + return self.process_output(comfy.utils.tiled_scale_multidim(samples, decode_fn, tile=(tile_x,), overlap=overlap, upscale_amount=self.upscale_ratio, out_channels=self.output_channels, output_device=self.output_device)) def decode_tiled_3d(self, samples, tile_t=999, tile_x=32, tile_y=32, overlap=(1, 8, 8)): decode_fn = lambda a: self.first_stage_model.decode(a.to(self.vae_dtype).to(self.device)).float() - return self.process_output(comfy.utils.tiled_scale_multidim(samples, decode_fn, tile=(tile_t, tile_x, tile_y), overlap=overlap, upscale_amount=self.upscale_ratio, out_channels=self.output_channels, output_device=self.output_device)) + return self.process_output(comfy.utils.tiled_scale_multidim(samples, decode_fn, tile=(tile_t, tile_x, tile_y), overlap=overlap, upscale_amount=self.upscale_ratio, out_channels=self.output_channels, index_formulas=self.upscale_index_formula, output_device=self.output_device)) def encode_tiled_(self, pixel_samples, tile_x=512, tile_y=512, overlap = 64): steps = pixel_samples.shape[0] * comfy.utils.get_tiled_scale_steps(pixel_samples.shape[3], pixel_samples.shape[2], tile_x, tile_y, overlap) @@ -326,6 +454,10 @@ class VAE: encode_fn = lambda a: self.first_stage_model.encode((self.process_input(a)).to(self.vae_dtype).to(self.device)).float() return comfy.utils.tiled_scale_multidim(samples, encode_fn, tile=(tile_x,), overlap=overlap, upscale_amount=(1/self.downscale_ratio), out_channels=self.latent_channels, output_device=self.output_device) + def encode_tiled_3d(self, samples, tile_t=9999, tile_x=512, tile_y=512, overlap=(1, 64, 64)): + encode_fn = lambda a: self.first_stage_model.encode((self.process_input(a)).to(self.vae_dtype).to(self.device)).float() + return comfy.utils.tiled_scale_multidim(samples, encode_fn, tile=(tile_t, tile_x, tile_y), overlap=overlap, upscale_amount=self.downscale_ratio, out_channels=self.latent_channels, downscale=True, index_formulas=self.downscale_index_formula, output_device=self.output_device) + def decode(self, samples_in): pixel_samples = None try: @@ -341,7 +473,7 @@ class VAE: if pixel_samples is None: pixel_samples = torch.empty((samples_in.shape[0],) + tuple(out.shape[1:]), device=self.output_device) pixel_samples[x:x+batch_number] = out - except model_management.OOM_EXCEPTION as e: + except model_management.OOM_EXCEPTION: logging.warning("Warning: Ran out of memory when regular VAE decoding, retrying with tiled VAE decoding.") dims = samples_in.ndim - 2 if dims == 1: @@ -349,49 +481,135 @@ class VAE: elif dims == 2: pixel_samples = self.decode_tiled_(samples_in) elif dims == 3: - pixel_samples = self.decode_tiled_3d(samples_in) + tile = 256 // self.spacial_compression_decode() + overlap = tile // 4 + pixel_samples = self.decode_tiled_3d(samples_in, tile_x=tile, tile_y=tile, overlap=(1, overlap, overlap)) pixel_samples = pixel_samples.to(self.output_device).movedim(1,-1) return pixel_samples - def decode_tiled(self, samples, tile_x=64, tile_y=64, overlap = 16): - model_management.load_model_gpu(self.patcher) - output = self.decode_tiled_(samples, tile_x, tile_y, overlap) - return output.movedim(1,-1) + def decode_tiled(self, samples, tile_x=None, tile_y=None, overlap=None, tile_t=None, overlap_t=None): + memory_used = self.memory_used_decode(samples.shape, self.vae_dtype) #TODO: calculate mem required for tile + model_management.load_models_gpu([self.patcher], memory_required=memory_used) + dims = samples.ndim - 2 + args = {} + if tile_x is not None: + args["tile_x"] = tile_x + if tile_y is not None: + args["tile_y"] = tile_y + if overlap is not None: + args["overlap"] = overlap + + if dims == 1: + args.pop("tile_y") + output = self.decode_tiled_1d(samples, **args) + elif dims == 2: + output = self.decode_tiled_(samples, **args) + elif dims == 3: + if overlap_t is None: + args["overlap"] = (1, overlap, overlap) + else: + args["overlap"] = (max(1, overlap_t), overlap, overlap) + if tile_t is not None: + args["tile_t"] = max(2, tile_t) + + output = self.decode_tiled_3d(samples, **args) + return output.movedim(1, -1) def encode(self, pixel_samples): pixel_samples = self.vae_encode_crop_pixels(pixel_samples) - pixel_samples = pixel_samples.movedim(-1,1) + pixel_samples = pixel_samples.movedim(-1, 1) + if self.latent_dim == 3: + pixel_samples = pixel_samples.movedim(1, 0).unsqueeze(0) try: memory_used = self.memory_used_encode(pixel_samples.shape, self.vae_dtype) model_management.load_models_gpu([self.patcher], memory_required=memory_used) free_memory = model_management.get_free_memory(self.device) batch_number = int(free_memory / max(1, memory_used)) batch_number = max(1, batch_number) - samples = torch.empty((pixel_samples.shape[0], self.latent_channels) + tuple(map(lambda a: a // self.downscale_ratio, pixel_samples.shape[2:])), device=self.output_device) + samples = None for x in range(0, pixel_samples.shape[0], batch_number): - pixels_in = self.process_input(pixel_samples[x:x+batch_number]).to(self.vae_dtype).to(self.device) - samples[x:x+batch_number] = self.first_stage_model.encode(pixels_in).to(self.output_device).float() + pixels_in = self.process_input(pixel_samples[x:x + batch_number]).to(self.vae_dtype).to(self.device) + out = self.first_stage_model.encode(pixels_in).to(self.output_device).float() + if samples is None: + samples = torch.empty((pixel_samples.shape[0],) + tuple(out.shape[1:]), device=self.output_device) + samples[x:x + batch_number] = out - except model_management.OOM_EXCEPTION as e: + except model_management.OOM_EXCEPTION: logging.warning("Warning: Ran out of memory when regular VAE encoding, retrying with tiled VAE encoding.") - if len(pixel_samples.shape) == 3: + if self.latent_dim == 3: + tile = 256 + overlap = tile // 4 + samples = self.encode_tiled_3d(pixel_samples, tile_x=tile, tile_y=tile, overlap=(1, overlap, overlap)) + elif self.latent_dim == 1: samples = self.encode_tiled_1d(pixel_samples) else: samples = self.encode_tiled_(pixel_samples) return samples - def encode_tiled(self, pixel_samples, tile_x=512, tile_y=512, overlap = 64): + def encode_tiled(self, pixel_samples, tile_x=None, tile_y=None, overlap=None, tile_t=None, overlap_t=None): pixel_samples = self.vae_encode_crop_pixels(pixel_samples) - model_management.load_model_gpu(self.patcher) - pixel_samples = pixel_samples.movedim(-1,1) - samples = self.encode_tiled_(pixel_samples, tile_x=tile_x, tile_y=tile_y, overlap=overlap) + dims = self.latent_dim + pixel_samples = pixel_samples.movedim(-1, 1) + if dims == 3: + pixel_samples = pixel_samples.movedim(1, 0).unsqueeze(0) + + memory_used = self.memory_used_encode(pixel_samples.shape, self.vae_dtype) # TODO: calculate mem required for tile + model_management.load_models_gpu([self.patcher], memory_required=memory_used) + + args = {} + if tile_x is not None: + args["tile_x"] = tile_x + if tile_y is not None: + args["tile_y"] = tile_y + if overlap is not None: + args["overlap"] = overlap + + if dims == 1: + args.pop("tile_y") + samples = self.encode_tiled_1d(pixel_samples, **args) + elif dims == 2: + samples = self.encode_tiled_(pixel_samples, **args) + elif dims == 3: + if tile_t is not None: + tile_t_latent = max(2, self.downscale_ratio[0](tile_t)) + else: + tile_t_latent = 9999 + args["tile_t"] = self.upscale_ratio[0](tile_t_latent) + + if overlap_t is None: + args["overlap"] = (1, overlap, overlap) + else: + args["overlap"] = (self.upscale_ratio[0](max(1, min(tile_t_latent // 2, self.downscale_ratio[0](overlap_t)))), overlap, overlap) + maximum = pixel_samples.shape[2] + maximum = self.upscale_ratio[0](self.downscale_ratio[0](maximum)) + + samples = self.encode_tiled_3d(pixel_samples[:,:,:maximum], **args) + return samples def get_sd(self): return self.first_stage_model.state_dict() + def spacial_compression_decode(self): + try: + return self.upscale_ratio[-1] + except: + return self.upscale_ratio + + def spacial_compression_encode(self): + try: + return self.downscale_ratio[-1] + except: + return self.downscale_ratio + + def temporal_compression_decode(self): + try: + return round(self.upscale_ratio[0](8192) / 8192) + except: + return None + class StyleModel: def __init__(self, model, device="cpu"): self.model = model @@ -405,6 +623,8 @@ def load_style_model(ckpt_path): keys = model_data.keys() if "style_embedding" in keys: model = comfy.t2i_adapter.adapter.StyleAdapter(width=1024, context_dim=768, num_head=8, n_layes=3, num_token=8) + elif "redux_down.weight" in keys: + model = comfy.ldm.flux.redux.ReduxImageEncoder() else: raise Exception("invalid style model {}".format(ckpt_path)) model.load_state_dict(model_data) @@ -418,6 +638,10 @@ class CLIPType(Enum): HUNYUAN_DIT = 5 FLUX = 6 MOCHI = 7 + LTXV = 8 + HUNYUAN_VIDEO = 9 + PIXART = 10 + def load_clip(ckpt_paths, embedding_directory=None, clip_type=CLIPType.STABLE_DIFFUSION, model_options={}): clip_data = [] @@ -433,6 +657,7 @@ class TEModel(Enum): T5_XXL = 4 T5_XL = 5 T5_BASE = 6 + LLAMA3_8 = 7 def detect_te_model(sd): if "text_model.encoder.layers.30.mlp.fc1.weight" in sd: @@ -449,6 +674,8 @@ def detect_te_model(sd): return TEModel.T5_XL if "encoder.block.0.layer.0.SelfAttention.k.weight" in sd: return TEModel.T5_BASE + if "model.layers.0.post_attention_layernorm.weight" in sd: + return TEModel.LLAMA3_8 return None @@ -461,6 +688,14 @@ def t5xxl_detect(clip_data): return {} +def llama_detect(clip_data): + weight_name = "model.layers.0.self_attn.k_proj.weight" + + for sd in clip_data: + if weight_name in sd: + return comfy.text_encoders.hunyuan_video.llama_detect(sd) + + return {} def load_text_encoder_state_dicts(state_dicts=[], embedding_directory=None, clip_type=CLIPType.STABLE_DIFFUSION, model_options={}): clip_data = state_dicts @@ -496,6 +731,12 @@ def load_text_encoder_state_dicts(state_dicts=[], embedding_directory=None, clip if clip_type == CLIPType.SD3: clip_target.clip = comfy.text_encoders.sd3_clip.sd3_clip(clip_l=False, clip_g=False, t5=True, **t5xxl_detect(clip_data)) clip_target.tokenizer = comfy.text_encoders.sd3_clip.SD3Tokenizer + elif clip_type == CLIPType.LTXV: + clip_target.clip = comfy.text_encoders.lt.ltxv_te(**t5xxl_detect(clip_data)) + clip_target.tokenizer = comfy.text_encoders.lt.LTXVT5Tokenizer + elif clip_type == CLIPType.PIXART: + clip_target.clip = comfy.text_encoders.pixart_t5.pixart_te(**t5xxl_detect(clip_data)) + clip_target.tokenizer = comfy.text_encoders.pixart_t5.PixArtTokenizer else: #CLIPType.MOCHI clip_target.clip = comfy.text_encoders.genmo.mochi_te(**t5xxl_detect(clip_data)) clip_target.tokenizer = comfy.text_encoders.genmo.MochiT5Tokenizer @@ -523,6 +764,9 @@ def load_text_encoder_state_dicts(state_dicts=[], embedding_directory=None, clip elif clip_type == CLIPType.FLUX: clip_target.clip = comfy.text_encoders.flux.flux_clip(**t5xxl_detect(clip_data)) clip_target.tokenizer = comfy.text_encoders.flux.FluxTokenizer + elif clip_type == CLIPType.HUNYUAN_VIDEO: + clip_target.clip = comfy.text_encoders.hunyuan_video.hunyuan_video_clip(**llama_detect(clip_data)) + clip_target.tokenizer = comfy.text_encoders.hunyuan_video.HunyuanVideoTokenizer else: clip_target.clip = sdxl_clip.SDXLClipModel clip_target.tokenizer = sdxl_clip.SDXLTokenizer @@ -562,7 +806,6 @@ def load_checkpoint(config_path=None, ckpt_path=None, output_vae=True, output_cl config = yaml.safe_load(stream) model_config_params = config['model']['params'] clip_config = model_config_params['cond_stage_config'] - scale_factor = model_config_params['scale_factor'] if "parameterization" in model_config_params: if model_config_params["parameterization"] == "v": @@ -732,11 +975,11 @@ def load_diffusion_model(unet_path, model_options={}): return model def load_unet(unet_path, dtype=None): - print("WARNING: the load_unet function has been deprecated and will be removed please switch to: load_diffusion_model") + logging.warning("The load_unet function has been deprecated and will be removed please switch to: load_diffusion_model") return load_diffusion_model(unet_path, model_options={"dtype": dtype}) def load_unet_state_dict(sd, dtype=None): - print("WARNING: the load_unet_state_dict function has been deprecated and will be removed please switch to: load_diffusion_model_state_dict") + logging.warning("The load_unet_state_dict function has been deprecated and will be removed please switch to: load_diffusion_model_state_dict") return load_diffusion_model_state_dict(sd, model_options={"dtype": dtype}) def save_checkpoint(output_path, model, clip=None, vae=None, clip_vision=None, metadata=None, extra_keys={}): diff --git a/comfy/sd1_clip.py b/comfy/sd1_clip.py index a454f3bb..95d41c30 100644 --- a/comfy/sd1_clip.py +++ b/comfy/sd1_clip.py @@ -10,6 +10,7 @@ import comfy.clip_model import json import logging import numbers +import re def gen_empty_tokens(special_tokens, length): start_token = special_tokens.get("start", None) @@ -36,7 +37,10 @@ class ClipTokenWeightEncoder: sections = len(to_encode) if has_weights or sections == 0: - to_encode.append(gen_empty_tokens(self.special_tokens, max_token_len)) + if hasattr(self, "gen_empty_tokens"): + to_encode.append(self.gen_empty_tokens(self.special_tokens, max_token_len)) + else: + to_encode.append(gen_empty_tokens(self.special_tokens, max_token_len)) o = self.encode(to_encode) out, pooled = o[:2] @@ -90,8 +94,11 @@ class SDClipModel(torch.nn.Module, ClipTokenWeightEncoder): if textmodel_json_config is None: textmodel_json_config = os.path.join(os.path.dirname(os.path.realpath(__file__)), "sd1_clip_config.json") - with open(textmodel_json_config) as f: - config = json.load(f) + if isinstance(textmodel_json_config, dict): + config = textmodel_json_config + else: + with open(textmodel_json_config) as f: + config = json.load(f) operations = model_options.get("custom_operations", None) scaled_fp8 = None @@ -196,11 +203,18 @@ class SDClipModel(torch.nn.Module, ClipTokenWeightEncoder): attention_mask = None if self.enable_attention_masks or self.zero_out_masked or self.return_attention_masks: attention_mask = torch.zeros_like(tokens) - end_token = self.special_tokens.get("end", -1) + end_token = self.special_tokens.get("end", None) + if end_token is None: + cmp_token = self.special_tokens.get("pad", -1) + else: + cmp_token = end_token + for x in range(attention_mask.shape[0]): for y in range(attention_mask.shape[1]): attention_mask[x, y] = 1 - if tokens[x, y] == end_token: + if tokens[x, y] == cmp_token: + if end_token is None: + attention_mask[x, y] = 0 break attention_mask_model = None @@ -326,7 +340,6 @@ def expand_directory_list(directories): return list(dirs) def bundled_embed(embed, prefix, suffix): #bundled embedding in lora format - i = 0 out_list = [] for k in embed: if k.startswith(prefix) and k.endswith(suffix): @@ -382,7 +395,7 @@ def load_embed(embedding_name, embedding_directory, embedding_size, embed_key=No embed_out = safe_load_embed_zip(embed_path) else: embed = torch.load(embed_path, map_location="cpu") - except Exception as e: + except Exception: logging.warning("{}\n\nerror loading embedding, skipping loading: {}".format(traceback.format_exc(), embedding_name)) return None @@ -411,22 +424,31 @@ def load_embed(embedding_name, embedding_directory, embedding_size, embed_key=No return embed_out class SDTokenizer: - def __init__(self, tokenizer_path=None, max_length=77, pad_with_end=True, embedding_directory=None, embedding_size=768, embedding_key='clip_l', tokenizer_class=CLIPTokenizer, has_start_token=True, pad_to_max_length=True, min_length=None, pad_token=None, tokenizer_data={}): + def __init__(self, tokenizer_path=None, max_length=77, pad_with_end=True, embedding_directory=None, embedding_size=768, embedding_key='clip_l', tokenizer_class=CLIPTokenizer, has_start_token=True, has_end_token=True, pad_to_max_length=True, min_length=None, pad_token=None, end_token=None, tokenizer_data={}): if tokenizer_path is None: tokenizer_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "sd1_tokenizer") self.tokenizer = tokenizer_class.from_pretrained(tokenizer_path) self.max_length = max_length self.min_length = min_length + self.end_token = None empty = self.tokenizer('')["input_ids"] + self.tokenizer_adds_end_token = has_end_token if has_start_token: self.tokens_start = 1 self.start_token = empty[0] - self.end_token = empty[1] + if end_token is not None: + self.end_token = end_token + else: + if has_end_token: + self.end_token = empty[1] else: self.tokens_start = 0 self.start_token = None - self.end_token = empty[0] + if end_token is not None: + self.end_token = end_token + else: + self.end_token = empty[0] if pad_token is not None: self.pad_token = pad_token @@ -451,13 +473,16 @@ class SDTokenizer: Takes a potential embedding name and tries to retrieve it. Returns a Tuple consisting of the embedding and any leftover string, embedding can be None. ''' + split_embed = embedding_name.split() + embedding_name = split_embed[0] + leftover = ' '.join(split_embed[1:]) embed = load_embed(embedding_name, self.embedding_directory, self.embedding_size, self.embedding_key) if embed is None: stripped = embedding_name.strip(',') if len(stripped) < len(embedding_name): embed = load_embed(stripped, self.embedding_directory, self.embedding_size, self.embedding_key) - return (embed, embedding_name[len(stripped):]) - return (embed, "") + return (embed, "{} {}".format(embedding_name[len(stripped):], leftover)) + return (embed, leftover) def tokenize_with_weights(self, text:str, return_word_ids=False): @@ -471,13 +496,18 @@ class SDTokenizer: text = escape_important(text) parsed_weights = token_weights(text, 1.0) - #tokenize words + # tokenize words tokens = [] for weighted_segment, weight in parsed_weights: - to_tokenize = unescape_important(weighted_segment).replace("\n", " ").split(' ') + to_tokenize = unescape_important(weighted_segment) + split = re.split(' {0}|\n{0}'.format(self.embedding_identifier), to_tokenize) + to_tokenize = [split[0]] + for i in range(1, len(split)): + to_tokenize.append("{}{}".format(self.embedding_identifier, split[i])) + to_tokenize = [x for x in to_tokenize if x != ""] for word in to_tokenize: - #if we find an embedding, deal with the embedding + # if we find an embedding, deal with the embedding if word.startswith(self.embedding_identifier) and self.embedding_directory is not None: embedding_name = word[len(self.embedding_identifier):].strip('\n') embed, leftover = self._try_get_embedding(embedding_name) @@ -493,8 +523,11 @@ class SDTokenizer: word = leftover else: continue + end = 999999999999 + if self.tokenizer_adds_end_token: + end = -1 #parse word - tokens.append([(t, weight) for t in self.tokenizer(word)["input_ids"][self.tokens_start:-1]]) + tokens.append([(t, weight) for t in self.tokenizer(word)["input_ids"][self.tokens_start:end]]) #reshape token array to CLIP input size batched_tokens = [] @@ -505,18 +538,24 @@ class SDTokenizer: for i, t_group in enumerate(tokens): #determine if we're going to try and keep the tokens in a single batch is_large = len(t_group) >= self.max_word_length + if self.end_token is not None: + has_end_token = 1 + else: + has_end_token = 0 while len(t_group) > 0: - if len(t_group) + len(batch) > self.max_length - 1: - remaining_length = self.max_length - len(batch) - 1 + if len(t_group) + len(batch) > self.max_length - has_end_token: + remaining_length = self.max_length - len(batch) - has_end_token #break word in two and add end token if is_large: batch.extend([(t,w,i+1) for t,w in t_group[:remaining_length]]) - batch.append((self.end_token, 1.0, 0)) + if self.end_token is not None: + batch.append((self.end_token, 1.0, 0)) t_group = t_group[remaining_length:] #add end token and pad else: - batch.append((self.end_token, 1.0, 0)) + if self.end_token is not None: + batch.append((self.end_token, 1.0, 0)) if self.pad_to_max_length: batch.extend([(self.pad_token, 1.0, 0)] * (remaining_length)) #start new batch @@ -529,7 +568,8 @@ class SDTokenizer: t_group = [] #fill last batch - batch.append((self.end_token, 1.0, 0)) + if self.end_token is not None: + batch.append((self.end_token, 1.0, 0)) if self.pad_to_max_length: batch.extend([(self.pad_token, 1.0, 0)] * (self.max_length - len(batch))) if self.min_length is not None and len(batch) < self.min_length: diff --git a/comfy/supported_models.py b/comfy/supported_models.py index 9931f4c5..6a2cc75a 100644 --- a/comfy/supported_models.py +++ b/comfy/supported_models.py @@ -8,9 +8,12 @@ import comfy.text_encoders.sd2_clip import comfy.text_encoders.sd3_clip import comfy.text_encoders.sa_t5 import comfy.text_encoders.aura_t5 +import comfy.text_encoders.pixart_t5 import comfy.text_encoders.hydit import comfy.text_encoders.flux import comfy.text_encoders.genmo +import comfy.text_encoders.lt +import comfy.text_encoders.hunyuan_video from . import supported_models_base from . import latent_formats @@ -197,6 +200,8 @@ class SDXL(supported_models_base.BASE): self.sampling_settings["sigma_min"] = float(state_dict["edm_vpred.sigma_min"].item()) return model_base.ModelType.V_PREDICTION_EDM elif "v_pred" in state_dict: + if "ztsnr" in state_dict: #Some zsnr anime checkpoints + self.sampling_settings["zsnr"] = True return model_base.ModelType.V_PREDICTION else: return model_base.ModelType.EPS @@ -221,7 +226,6 @@ class SDXL(supported_models_base.BASE): def process_clip_state_dict_for_saving(self, state_dict): replace_prefix = {} - keys_to_replace = {} state_dict_g = diffusers_convert.convert_text_enc_state_dict_v20(state_dict, "clip_g") for k in state_dict: if k.startswith("clip_l"): @@ -524,7 +528,6 @@ class SD3(supported_models_base.BASE): clip_l = False clip_g = False t5 = False - dtype_t5 = None pref = self.text_encoder_key_prefix[0] if "{}clip_l.transformer.text_model.final_layer_norm.weight".format(pref) in state_dict: clip_l = True @@ -590,6 +593,39 @@ class AuraFlow(supported_models_base.BASE): def clip_target(self, state_dict={}): return supported_models_base.ClipTarget(comfy.text_encoders.aura_t5.AuraT5Tokenizer, comfy.text_encoders.aura_t5.AuraT5Model) +class PixArtAlpha(supported_models_base.BASE): + unet_config = { + "image_model": "pixart_alpha", + } + + sampling_settings = { + "beta_schedule" : "sqrt_linear", + "linear_start" : 0.0001, + "linear_end" : 0.02, + "timesteps" : 1000, + } + + unet_extra_config = {} + latent_format = latent_formats.SD15 + + memory_usage_factor = 0.5 + + vae_key_prefix = ["vae."] + text_encoder_key_prefix = ["text_encoders."] + + def get_model(self, state_dict, prefix="", device=None): + out = model_base.PixArt(self, device=device) + return out.eval() + + def clip_target(self, state_dict={}): + return supported_models_base.ClipTarget(comfy.text_encoders.pixart_t5.PixArtTokenizer, comfy.text_encoders.pixart_t5.PixArtT5XXL) + +class PixArtSigma(PixArtAlpha): + unet_config = { + "image_model": "pixart_sigma", + } + latent_format = latent_formats.SDXL + class HunyuanDiT(supported_models_base.BASE): unet_config = { "image_model": "hydit", @@ -606,6 +642,8 @@ class HunyuanDiT(supported_models_base.BASE): latent_format = latent_formats.SDXL + memory_usage_factor = 1.3 + vae_key_prefix = ["vae."] text_encoder_key_prefix = ["text_encoders."] @@ -656,6 +694,15 @@ class Flux(supported_models_base.BASE): t5_detect = comfy.text_encoders.sd3_clip.t5_xxl_detect(state_dict, "{}t5xxl.transformer.".format(pref)) return supported_models_base.ClipTarget(comfy.text_encoders.flux.FluxTokenizer, comfy.text_encoders.flux.flux_clip(**t5_detect)) +class FluxInpaint(Flux): + unet_config = { + "image_model": "flux", + "guidance_embed": True, + "in_channels": 96, + } + + supported_inference_dtypes = [torch.bfloat16, torch.float32] + class FluxSchnell(Flux): unet_config = { "image_model": "flux", @@ -700,7 +747,82 @@ class GenmoMochi(supported_models_base.BASE): t5_detect = comfy.text_encoders.sd3_clip.t5_xxl_detect(state_dict, "{}t5xxl.transformer.".format(pref)) return supported_models_base.ClipTarget(comfy.text_encoders.genmo.MochiT5Tokenizer, comfy.text_encoders.genmo.mochi_te(**t5_detect)) +class LTXV(supported_models_base.BASE): + unet_config = { + "image_model": "ltxv", + } -models = [Stable_Zero123, SD15_instructpix2pix, SD15, SD20, SD21UnclipL, SD21UnclipH, SDXL_instructpix2pix, SDXLRefiner, SDXL, SSD1B, KOALA_700M, KOALA_1B, Segmind_Vega, SD_X4Upscaler, Stable_Cascade_C, Stable_Cascade_B, SV3D_u, SV3D_p, SD3, StableAudio, AuraFlow, HunyuanDiT, HunyuanDiT1, Flux, FluxSchnell, GenmoMochi] + sampling_settings = { + "shift": 2.37, + } + + unet_extra_config = {} + latent_format = latent_formats.LTXV + + memory_usage_factor = 2.7 + + supported_inference_dtypes = [torch.bfloat16, torch.float32] + + vae_key_prefix = ["vae."] + text_encoder_key_prefix = ["text_encoders."] + + def get_model(self, state_dict, prefix="", device=None): + out = model_base.LTXV(self, device=device) + return out + + def clip_target(self, state_dict={}): + pref = self.text_encoder_key_prefix[0] + t5_detect = comfy.text_encoders.sd3_clip.t5_xxl_detect(state_dict, "{}t5xxl.transformer.".format(pref)) + return supported_models_base.ClipTarget(comfy.text_encoders.lt.LTXVT5Tokenizer, comfy.text_encoders.lt.ltxv_te(**t5_detect)) + +class HunyuanVideo(supported_models_base.BASE): + unet_config = { + "image_model": "hunyuan_video", + } + + sampling_settings = { + "shift": 7.0, + } + + unet_extra_config = {} + latent_format = latent_formats.HunyuanVideo + + memory_usage_factor = 2.0 #TODO + + supported_inference_dtypes = [torch.bfloat16, torch.float32] + + vae_key_prefix = ["vae."] + text_encoder_key_prefix = ["text_encoders."] + + def get_model(self, state_dict, prefix="", device=None): + out = model_base.HunyuanVideo(self, device=device) + return out + + def process_unet_state_dict(self, state_dict): + out_sd = {} + for k in list(state_dict.keys()): + key_out = k + key_out = key_out.replace("txt_in.t_embedder.mlp.0.", "txt_in.t_embedder.in_layer.").replace("txt_in.t_embedder.mlp.2.", "txt_in.t_embedder.out_layer.") + key_out = key_out.replace("txt_in.c_embedder.linear_1.", "txt_in.c_embedder.in_layer.").replace("txt_in.c_embedder.linear_2.", "txt_in.c_embedder.out_layer.") + key_out = key_out.replace("_mod.linear.", "_mod.lin.").replace("_attn_qkv.", "_attn.qkv.") + key_out = key_out.replace("mlp.fc1.", "mlp.0.").replace("mlp.fc2.", "mlp.2.") + key_out = key_out.replace("_attn_q_norm.weight", "_attn.norm.query_norm.scale").replace("_attn_k_norm.weight", "_attn.norm.key_norm.scale") + key_out = key_out.replace(".q_norm.weight", ".norm.query_norm.scale").replace(".k_norm.weight", ".norm.key_norm.scale") + key_out = key_out.replace("_attn_proj.", "_attn.proj.") + key_out = key_out.replace(".modulation.linear.", ".modulation.lin.") + key_out = key_out.replace("_in.mlp.2.", "_in.out_layer.").replace("_in.mlp.0.", "_in.in_layer.") + out_sd[key_out] = state_dict[k] + return out_sd + + def process_unet_state_dict_for_saving(self, state_dict): + replace_prefix = {"": "model.model."} + return utils.state_dict_prefix_replace(state_dict, replace_prefix) + + def clip_target(self, state_dict={}): + pref = self.text_encoder_key_prefix[0] + hunyuan_detect = comfy.text_encoders.hunyuan_video.llama_detect(state_dict, "{}llama.transformer.".format(pref)) + return supported_models_base.ClipTarget(comfy.text_encoders.hunyuan_video.HunyuanVideoTokenizer, comfy.text_encoders.hunyuan_video.hunyuan_video_clip(**hunyuan_detect)) + +models = [Stable_Zero123, SD15_instructpix2pix, SD15, SD20, SD21UnclipL, SD21UnclipH, SDXL_instructpix2pix, SDXLRefiner, SDXL, SSD1B, KOALA_700M, KOALA_1B, Segmind_Vega, SD_X4Upscaler, Stable_Cascade_C, Stable_Cascade_B, SV3D_u, SV3D_p, SD3, StableAudio, AuraFlow, PixArtAlpha, PixArtSigma, HunyuanDiT, HunyuanDiT1, FluxInpaint, Flux, FluxSchnell, GenmoMochi, LTXV, HunyuanVideo] models += [SVD_img2vid] diff --git a/comfy/text_encoders/genmo.py b/comfy/text_encoders/genmo.py index 5e96cea6..45987a48 100644 --- a/comfy/text_encoders/genmo.py +++ b/comfy/text_encoders/genmo.py @@ -12,7 +12,7 @@ class T5XXLModel(comfy.text_encoders.sd3_clip.T5XXLModel): class MochiT5XXL(sd1_clip.SD1ClipModel): def __init__(self, device="cpu", dtype=None, model_options={}): - super().__init__(device=device, dtype=dtype, clip_name="t5xxl", clip_model=T5XXLModel, model_options=model_options) + super().__init__(device=device, dtype=dtype, name="t5xxl", clip_model=T5XXLModel, model_options=model_options) class T5XXLTokenizer(sd1_clip.SDTokenizer): diff --git a/comfy/text_encoders/hunyuan_video.py b/comfy/text_encoders/hunyuan_video.py new file mode 100644 index 00000000..7149d687 --- /dev/null +++ b/comfy/text_encoders/hunyuan_video.py @@ -0,0 +1,112 @@ +from comfy import sd1_clip +import comfy.model_management +import comfy.text_encoders.llama +from transformers import LlamaTokenizerFast +import torch +import os + + +def llama_detect(state_dict, prefix=""): + out = {} + t5_key = "{}model.norm.weight".format(prefix) + if t5_key in state_dict: + out["dtype_llama"] = state_dict[t5_key].dtype + + scaled_fp8_key = "{}scaled_fp8".format(prefix) + if scaled_fp8_key in state_dict: + out["llama_scaled_fp8"] = state_dict[scaled_fp8_key].dtype + + return out + + +class LLAMA3Tokenizer(sd1_clip.SDTokenizer): + def __init__(self, embedding_directory=None, tokenizer_data={}, min_length=256): + tokenizer_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "llama_tokenizer") + super().__init__(tokenizer_path, embedding_directory=embedding_directory, pad_with_end=False, embedding_size=4096, embedding_key='llama', tokenizer_class=LlamaTokenizerFast, has_start_token=True, has_end_token=False, pad_to_max_length=False, max_length=99999999, pad_token=128258, end_token=128009, min_length=min_length) + +class LLAMAModel(sd1_clip.SDClipModel): + def __init__(self, device="cpu", layer="hidden", layer_idx=-3, dtype=None, attention_mask=True, model_options={}): + llama_scaled_fp8 = model_options.get("llama_scaled_fp8", None) + if llama_scaled_fp8 is not None: + model_options = model_options.copy() + model_options["scaled_fp8"] = llama_scaled_fp8 + + super().__init__(device=device, layer=layer, layer_idx=layer_idx, textmodel_json_config={}, dtype=dtype, special_tokens={"start": 128000, "pad": 128258}, layer_norm_hidden_state=False, model_class=comfy.text_encoders.llama.Llama2, enable_attention_masks=attention_mask, return_attention_masks=attention_mask, model_options=model_options) + + +class HunyuanVideoTokenizer: + def __init__(self, embedding_directory=None, tokenizer_data={}): + clip_l_tokenizer_class = tokenizer_data.get("clip_l_tokenizer_class", sd1_clip.SDTokenizer) + self.clip_l = clip_l_tokenizer_class(embedding_directory=embedding_directory) + self.llama_template = """<|start_header_id|>system<|end_header_id|>\n\nDescribe the video by detailing the following aspects: 1. The main content and theme of the video.2. The color, shape, size, texture, quantity, text, and spatial relationships of the objects.3. Actions, events, behaviors temporal relationships, physical movement changes of the objects.4. background environment, light, style and atmosphere.5. camera angles, movements, and transitions used in the video:<|eot_id|><|start_header_id|>user<|end_header_id|>\n\n""" # 95 tokens + self.llama = LLAMA3Tokenizer(embedding_directory=embedding_directory, min_length=1) + + def tokenize_with_weights(self, text:str, return_word_ids=False): + out = {} + out["l"] = self.clip_l.tokenize_with_weights(text, return_word_ids) + + llama_text = "{}{}".format(self.llama_template, text) + out["llama"] = self.llama.tokenize_with_weights(llama_text, return_word_ids) + return out + + def untokenize(self, token_weight_pair): + return self.clip_l.untokenize(token_weight_pair) + + def state_dict(self): + return {} + + +class HunyuanVideoClipModel(torch.nn.Module): + def __init__(self, dtype_llama=None, device="cpu", dtype=None, model_options={}): + super().__init__() + dtype_llama = comfy.model_management.pick_weight_dtype(dtype_llama, dtype, device) + clip_l_class = model_options.get("clip_l_class", sd1_clip.SDClipModel) + self.clip_l = clip_l_class(device=device, dtype=dtype, return_projected_pooled=False, model_options=model_options) + self.llama = LLAMAModel(device=device, dtype=dtype_llama, model_options=model_options) + self.dtypes = set([dtype, dtype_llama]) + + def set_clip_options(self, options): + self.clip_l.set_clip_options(options) + self.llama.set_clip_options(options) + + def reset_clip_options(self): + self.clip_l.reset_clip_options() + self.llama.reset_clip_options() + + def encode_token_weights(self, token_weight_pairs): + token_weight_pairs_l = token_weight_pairs["l"] + token_weight_pairs_llama = token_weight_pairs["llama"] + + llama_out, llama_pooled, llama_extra_out = self.llama.encode_token_weights(token_weight_pairs_llama) + + template_end = 0 + for i, v in enumerate(token_weight_pairs_llama[0]): + if v[0] == 128007: # <|end_header_id|> + template_end = i + + if llama_out.shape[1] > (template_end + 2): + if token_weight_pairs_llama[0][template_end + 1][0] == 271: + template_end += 2 + llama_out = llama_out[:, template_end:] + llama_extra_out["attention_mask"] = llama_extra_out["attention_mask"][:, template_end:] + if llama_extra_out["attention_mask"].sum() == torch.numel(llama_extra_out["attention_mask"]): + llama_extra_out.pop("attention_mask") # attention mask is useless if no masked elements + + l_out, l_pooled = self.clip_l.encode_token_weights(token_weight_pairs_l) + return llama_out, l_pooled, llama_extra_out + + def load_sd(self, sd): + if "text_model.encoder.layers.1.mlp.fc1.weight" in sd: + return self.clip_l.load_sd(sd) + else: + return self.llama.load_sd(sd) + + +def hunyuan_video_clip(dtype_llama=None, llama_scaled_fp8=None): + class HunyuanVideoClipModel_(HunyuanVideoClipModel): + def __init__(self, device="cpu", dtype=None, model_options={}): + if llama_scaled_fp8 is not None and "llama_scaled_fp8" not in model_options: + model_options = model_options.copy() + model_options["llama_scaled_fp8"] = llama_scaled_fp8 + super().__init__(dtype_llama=dtype_llama, device=device, dtype=dtype, model_options=model_options) + return HunyuanVideoClipModel_ diff --git a/comfy/text_encoders/llama.py b/comfy/text_encoders/llama.py new file mode 100644 index 00000000..ad4b4623 --- /dev/null +++ b/comfy/text_encoders/llama.py @@ -0,0 +1,226 @@ +import torch +import torch.nn as nn +import torch.nn.functional as F +from dataclasses import dataclass +from typing import Optional, Any + +from comfy.ldm.modules.attention import optimized_attention_for_device +import comfy.model_management +import comfy.ldm.common_dit + +import comfy.model_management + +@dataclass +class Llama2Config: + vocab_size: int = 128320 + hidden_size: int = 4096 + intermediate_size: int = 14336 + num_hidden_layers: int = 32 + num_attention_heads: int = 32 + num_key_value_heads: int = 8 + max_position_embeddings: int = 8192 + rms_norm_eps: float = 1e-5 + rope_theta: float = 500000.0 + +class RMSNorm(nn.Module): + def __init__(self, dim: int, eps: float = 1e-5, device=None, dtype=None): + super().__init__() + self.eps = eps + self.weight = nn.Parameter(torch.empty(dim, device=device, dtype=dtype)) + + def forward(self, x: torch.Tensor): + return comfy.ldm.common_dit.rms_norm(x, self.weight, self.eps) + + +def rotate_half(x): + """Rotates half the hidden dims of the input.""" + x1 = x[..., : x.shape[-1] // 2] + x2 = x[..., x.shape[-1] // 2 :] + return torch.cat((-x2, x1), dim=-1) + + +def precompute_freqs_cis(head_dim, seq_len, theta, device=None): + theta_numerator = torch.arange(0, head_dim, 2, device=device).float() + inv_freq = 1.0 / (theta ** (theta_numerator / head_dim)) + + position_ids = torch.arange(0, seq_len, device=device).unsqueeze(0) + + inv_freq_expanded = inv_freq[None, :, None].float().expand(position_ids.shape[0], -1, 1) + position_ids_expanded = position_ids[:, None, :].float() + freqs = (inv_freq_expanded.float() @ position_ids_expanded.float()).transpose(1, 2) + emb = torch.cat((freqs, freqs), dim=-1) + cos = emb.cos() + sin = emb.sin() + return (cos, sin) + + +def apply_rope(xq, xk, freqs_cis): + cos = freqs_cis[0].unsqueeze(1) + sin = freqs_cis[1].unsqueeze(1) + q_embed = (xq * cos) + (rotate_half(xq) * sin) + k_embed = (xk * cos) + (rotate_half(xk) * sin) + return q_embed, k_embed + + +class Attention(nn.Module): + def __init__(self, config: Llama2Config, device=None, dtype=None, ops: Any = None): + super().__init__() + self.num_heads = config.num_attention_heads + self.num_kv_heads = config.num_key_value_heads + self.hidden_size = config.hidden_size + self.head_dim = self.hidden_size // self.num_heads + + ops = ops or nn + self.q_proj = ops.Linear(config.hidden_size, config.hidden_size, bias=False, device=device, dtype=dtype) + self.k_proj = ops.Linear(config.hidden_size, self.num_kv_heads * self.head_dim, bias=False, device=device, dtype=dtype) + self.v_proj = ops.Linear(config.hidden_size, self.num_kv_heads * self.head_dim, bias=False, device=device, dtype=dtype) + self.o_proj = ops.Linear(config.hidden_size, config.hidden_size, bias=False, device=device, dtype=dtype) + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + freqs_cis: Optional[torch.Tensor] = None, + optimized_attention=None, + ): + batch_size, seq_length, _ = hidden_states.shape + + xq = self.q_proj(hidden_states) + xk = self.k_proj(hidden_states) + xv = self.v_proj(hidden_states) + + xq = xq.view(batch_size, seq_length, self.num_heads, self.head_dim).transpose(1, 2) + xk = xk.view(batch_size, seq_length, self.num_kv_heads, self.head_dim).transpose(1, 2) + xv = xv.view(batch_size, seq_length, self.num_kv_heads, self.head_dim).transpose(1, 2) + + xq, xk = apply_rope(xq, xk, freqs_cis=freqs_cis) + + xk = xk.repeat_interleave(self.num_heads // self.num_kv_heads, dim=1) + xv = xv.repeat_interleave(self.num_heads // self.num_kv_heads, dim=1) + + output = optimized_attention(xq, xk, xv, self.num_heads, mask=attention_mask, skip_reshape=True) + return self.o_proj(output) + +class MLP(nn.Module): + def __init__(self, config: Llama2Config, device=None, dtype=None, ops: Any = None): + super().__init__() + ops = ops or nn + self.gate_proj = ops.Linear(config.hidden_size, config.intermediate_size, bias=False, device=device, dtype=dtype) + self.up_proj = ops.Linear(config.hidden_size, config.intermediate_size, bias=False, device=device, dtype=dtype) + self.down_proj = ops.Linear(config.intermediate_size, config.hidden_size, bias=False, device=device, dtype=dtype) + + def forward(self, x): + return self.down_proj(F.silu(self.gate_proj(x)) * self.up_proj(x)) + +class TransformerBlock(nn.Module): + def __init__(self, config: Llama2Config, device=None, dtype=None, ops: Any = None): + super().__init__() + self.self_attn = Attention(config, device=device, dtype=dtype, ops=ops) + self.mlp = MLP(config, device=device, dtype=dtype, ops=ops) + self.input_layernorm = RMSNorm(config.hidden_size, eps=config.rms_norm_eps, device=device, dtype=dtype) + self.post_attention_layernorm = RMSNorm(config.hidden_size, eps=config.rms_norm_eps, device=device, dtype=dtype) + + def forward( + self, + x: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + freqs_cis: Optional[torch.Tensor] = None, + optimized_attention=None, + ): + # Self Attention + residual = x + x = self.input_layernorm(x) + x = self.self_attn( + hidden_states=x, + attention_mask=attention_mask, + freqs_cis=freqs_cis, + optimized_attention=optimized_attention, + ) + x = residual + x + + # MLP + residual = x + x = self.post_attention_layernorm(x) + x = self.mlp(x) + x = residual + x + + return x + +class Llama2_(nn.Module): + def __init__(self, config, device=None, dtype=None, ops=None): + super().__init__() + self.config = config + self.vocab_size = config.vocab_size + + self.embed_tokens = ops.Embedding( + config.vocab_size, + config.hidden_size, + device=device, + dtype=dtype + ) + self.layers = nn.ModuleList([ + TransformerBlock(config, device=device, dtype=dtype, ops=ops) + for _ in range(config.num_hidden_layers) + ]) + self.norm = RMSNorm(config.hidden_size, eps=config.rms_norm_eps, device=device, dtype=dtype) + # self.lm_head = ops.Linear(config.hidden_size, config.vocab_size, bias=False, device=device, dtype=dtype) + + def forward(self, x, attention_mask=None, intermediate_output=None, final_layer_norm_intermediate=True, dtype=None): + x = self.embed_tokens(x, out_dtype=dtype) + + freqs_cis = precompute_freqs_cis(self.config.hidden_size // self.config.num_attention_heads, + x.shape[1], + self.config.rope_theta, + device=x.device) + + mask = None + if attention_mask is not None: + mask = 1.0 - attention_mask.to(x.dtype).reshape((attention_mask.shape[0], 1, -1, attention_mask.shape[-1])).expand(attention_mask.shape[0], 1, attention_mask.shape[-1], attention_mask.shape[-1]) + mask = mask.masked_fill(mask.to(torch.bool), float("-inf")) + + causal_mask = torch.empty(x.shape[1], x.shape[1], dtype=x.dtype, device=x.device).fill_(float("-inf")).triu_(1) + if mask is not None: + mask += causal_mask + else: + mask = causal_mask + optimized_attention = optimized_attention_for_device(x.device, mask=mask is not None, small_input=True) + + intermediate = None + if intermediate_output is not None: + if intermediate_output < 0: + intermediate_output = len(self.layers) + intermediate_output + + for i, layer in enumerate(self.layers): + x = layer( + x=x, + attention_mask=mask, + freqs_cis=freqs_cis, + optimized_attention=optimized_attention, + ) + if i == intermediate_output: + intermediate = x.clone() + + x = self.norm(x) + if intermediate is not None and final_layer_norm_intermediate: + intermediate = self.norm(intermediate) + + return x, intermediate + + +class Llama2(torch.nn.Module): + def __init__(self, config_dict, dtype, device, operations): + super().__init__() + config = Llama2Config(**config_dict) + self.num_layers = config.num_hidden_layers + + self.model = Llama2_(config, device=device, dtype=dtype, ops=operations) + self.dtype = dtype + + def get_input_embeddings(self): + return self.model.embed_tokens + + def set_input_embeddings(self, embeddings): + self.model.embed_tokens = embeddings + + def forward(self, input_ids, *args, **kwargs): + return self.model(input_ids, *args, **kwargs) diff --git a/comfy/text_encoders/llama_tokenizer/tokenizer.json b/comfy/text_encoders/llama_tokenizer/tokenizer.json new file mode 100644 index 00000000..99f23954 --- /dev/null +++ b/comfy/text_encoders/llama_tokenizer/tokenizer.json @@ -0,0 +1,410579 @@ +{ + "version": "1.0", + "truncation": null, + "padding": null, + "added_tokens": [ + { + "id": 128000, + "content": "<|begin_of_text|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128001, + "content": "<|end_of_text|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128002, + "content": "<|reserved_special_token_0|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128003, + "content": "<|reserved_special_token_1|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128004, + "content": "<|reserved_special_token_2|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128005, + "content": "<|reserved_special_token_3|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128006, + "content": "<|start_header_id|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128007, + "content": "<|end_header_id|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128008, + "content": "<|reserved_special_token_4|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128009, + "content": "<|eot_id|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128010, + "content": "<|reserved_special_token_5|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128011, + "content": "<|reserved_special_token_6|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128012, + "content": "<|reserved_special_token_7|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128013, + "content": "<|reserved_special_token_8|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128014, + "content": "<|reserved_special_token_9|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128015, + "content": "<|reserved_special_token_10|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128016, + "content": "<|reserved_special_token_11|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128017, + "content": "<|reserved_special_token_12|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128018, + "content": "<|reserved_special_token_13|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128019, + "content": "<|reserved_special_token_14|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128020, + "content": "<|reserved_special_token_15|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128021, + "content": "<|reserved_special_token_16|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128022, + "content": "<|reserved_special_token_17|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128023, + "content": "<|reserved_special_token_18|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128024, + "content": "<|reserved_special_token_19|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128025, + "content": "<|reserved_special_token_20|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128026, + "content": "<|reserved_special_token_21|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128027, + "content": "<|reserved_special_token_22|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128028, + "content": "<|reserved_special_token_23|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128029, + "content": "<|reserved_special_token_24|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128030, + "content": "<|reserved_special_token_25|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128031, + "content": "<|reserved_special_token_26|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128032, + "content": "<|reserved_special_token_27|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128033, + "content": "<|reserved_special_token_28|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128034, + "content": "<|reserved_special_token_29|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128035, + "content": "<|reserved_special_token_30|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128036, + "content": "<|reserved_special_token_31|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128037, + "content": "<|reserved_special_token_32|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128038, + "content": "<|reserved_special_token_33|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128039, + "content": "<|reserved_special_token_34|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128040, + "content": "<|reserved_special_token_35|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128041, + "content": "<|reserved_special_token_36|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128042, + "content": "<|reserved_special_token_37|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128043, + "content": "<|reserved_special_token_38|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128044, + "content": "<|reserved_special_token_39|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128045, + "content": "<|reserved_special_token_40|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128046, + "content": "<|reserved_special_token_41|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128047, + "content": "<|reserved_special_token_42|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128048, + "content": "<|reserved_special_token_43|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128049, + "content": "<|reserved_special_token_44|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128050, + "content": "<|reserved_special_token_45|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128051, + "content": "<|reserved_special_token_46|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128052, + "content": "<|reserved_special_token_47|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128053, + "content": "<|reserved_special_token_48|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128054, + "content": "<|reserved_special_token_49|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128055, + "content": "<|reserved_special_token_50|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128056, + "content": "<|reserved_special_token_51|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128057, + "content": "<|reserved_special_token_52|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128058, + "content": "<|reserved_special_token_53|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128059, + "content": "<|reserved_special_token_54|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128060, + "content": "<|reserved_special_token_55|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128061, + "content": "<|reserved_special_token_56|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128062, + "content": "<|reserved_special_token_57|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128063, + "content": "<|reserved_special_token_58|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128064, + "content": "<|reserved_special_token_59|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128065, + "content": "<|reserved_special_token_60|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128066, + "content": "<|reserved_special_token_61|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128067, + "content": "<|reserved_special_token_62|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128068, + "content": "<|reserved_special_token_63|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128069, + "content": "<|reserved_special_token_64|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128070, + "content": "<|reserved_special_token_65|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128071, + "content": "<|reserved_special_token_66|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128072, + "content": "<|reserved_special_token_67|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128073, + "content": "<|reserved_special_token_68|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128074, + "content": "<|reserved_special_token_69|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128075, + "content": "<|reserved_special_token_70|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128076, + "content": "<|reserved_special_token_71|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128077, + "content": "<|reserved_special_token_72|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128078, + "content": "<|reserved_special_token_73|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128079, + "content": "<|reserved_special_token_74|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128080, + "content": "<|reserved_special_token_75|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128081, + "content": "<|reserved_special_token_76|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128082, + "content": "<|reserved_special_token_77|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128083, + "content": "<|reserved_special_token_78|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128084, + "content": "<|reserved_special_token_79|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128085, + "content": "<|reserved_special_token_80|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128086, + "content": "<|reserved_special_token_81|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128087, + "content": "<|reserved_special_token_82|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128088, + "content": "<|reserved_special_token_83|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128089, + "content": "<|reserved_special_token_84|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128090, + "content": "<|reserved_special_token_85|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128091, + "content": "<|reserved_special_token_86|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128092, + "content": "<|reserved_special_token_87|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128093, + "content": "<|reserved_special_token_88|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128094, + "content": "<|reserved_special_token_89|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128095, + "content": "<|reserved_special_token_90|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128096, + "content": "<|reserved_special_token_91|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128097, + "content": "<|reserved_special_token_92|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128098, + "content": "<|reserved_special_token_93|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128099, + "content": "<|reserved_special_token_94|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128100, + "content": "<|reserved_special_token_95|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128101, + "content": "<|reserved_special_token_96|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128102, + "content": "<|reserved_special_token_97|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128103, + "content": "<|reserved_special_token_98|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128104, + "content": "<|reserved_special_token_99|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128105, + "content": "<|reserved_special_token_100|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128106, + "content": "<|reserved_special_token_101|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128107, + "content": "<|reserved_special_token_102|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128108, + "content": "<|reserved_special_token_103|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128109, + "content": "<|reserved_special_token_104|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128110, + "content": "<|reserved_special_token_105|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128111, + "content": "<|reserved_special_token_106|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128112, + "content": "<|reserved_special_token_107|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128113, + "content": "<|reserved_special_token_108|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128114, + "content": "<|reserved_special_token_109|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128115, + "content": "<|reserved_special_token_110|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128116, + "content": "<|reserved_special_token_111|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128117, + "content": "<|reserved_special_token_112|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128118, + "content": "<|reserved_special_token_113|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128119, + "content": "<|reserved_special_token_114|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128120, + "content": "<|reserved_special_token_115|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128121, + "content": "<|reserved_special_token_116|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128122, + "content": "<|reserved_special_token_117|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128123, + "content": "<|reserved_special_token_118|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128124, + "content": "<|reserved_special_token_119|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128125, + "content": "<|reserved_special_token_120|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128126, + "content": "<|reserved_special_token_121|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128127, + "content": "<|reserved_special_token_122|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128128, + "content": "<|reserved_special_token_123|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128129, + "content": "<|reserved_special_token_124|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128130, + "content": "<|reserved_special_token_125|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128131, + "content": "<|reserved_special_token_126|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128132, + "content": "<|reserved_special_token_127|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128133, + "content": "<|reserved_special_token_128|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128134, + "content": "<|reserved_special_token_129|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128135, + "content": "<|reserved_special_token_130|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128136, + "content": "<|reserved_special_token_131|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128137, + "content": "<|reserved_special_token_132|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128138, + "content": "<|reserved_special_token_133|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128139, + "content": "<|reserved_special_token_134|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128140, + "content": "<|reserved_special_token_135|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128141, + "content": "<|reserved_special_token_136|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128142, + "content": "<|reserved_special_token_137|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128143, + "content": "<|reserved_special_token_138|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128144, + "content": "<|reserved_special_token_139|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128145, + "content": "<|reserved_special_token_140|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128146, + "content": "<|reserved_special_token_141|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128147, + "content": "<|reserved_special_token_142|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128148, + "content": "<|reserved_special_token_143|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128149, + "content": "<|reserved_special_token_144|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128150, + "content": "<|reserved_special_token_145|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128151, + "content": "<|reserved_special_token_146|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128152, + "content": "<|reserved_special_token_147|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128153, + "content": "<|reserved_special_token_148|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128154, + "content": "<|reserved_special_token_149|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128155, + "content": "<|reserved_special_token_150|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128156, + "content": "<|reserved_special_token_151|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128157, + "content": "<|reserved_special_token_152|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128158, + "content": "<|reserved_special_token_153|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128159, + "content": "<|reserved_special_token_154|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128160, + "content": "<|reserved_special_token_155|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128161, + "content": "<|reserved_special_token_156|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128162, + "content": "<|reserved_special_token_157|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128163, + "content": "<|reserved_special_token_158|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128164, + "content": "<|reserved_special_token_159|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128165, + "content": "<|reserved_special_token_160|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128166, + "content": "<|reserved_special_token_161|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128167, + "content": "<|reserved_special_token_162|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128168, + "content": "<|reserved_special_token_163|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128169, + "content": "<|reserved_special_token_164|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128170, + "content": "<|reserved_special_token_165|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128171, + "content": "<|reserved_special_token_166|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128172, + "content": "<|reserved_special_token_167|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128173, + "content": "<|reserved_special_token_168|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128174, + "content": "<|reserved_special_token_169|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128175, + "content": "<|reserved_special_token_170|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128176, + "content": "<|reserved_special_token_171|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128177, + "content": "<|reserved_special_token_172|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128178, + "content": "<|reserved_special_token_173|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128179, + "content": "<|reserved_special_token_174|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128180, + "content": "<|reserved_special_token_175|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128181, + "content": "<|reserved_special_token_176|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128182, + "content": "<|reserved_special_token_177|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128183, + "content": "<|reserved_special_token_178|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128184, + "content": "<|reserved_special_token_179|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128185, + "content": "<|reserved_special_token_180|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128186, + "content": "<|reserved_special_token_181|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128187, + "content": "<|reserved_special_token_182|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128188, + "content": "<|reserved_special_token_183|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128189, + "content": "<|reserved_special_token_184|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128190, + "content": "<|reserved_special_token_185|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128191, + "content": "<|reserved_special_token_186|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128192, + "content": "<|reserved_special_token_187|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128193, + "content": "<|reserved_special_token_188|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128194, + "content": "<|reserved_special_token_189|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128195, + "content": "<|reserved_special_token_190|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128196, + "content": "<|reserved_special_token_191|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128197, + "content": "<|reserved_special_token_192|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128198, + "content": "<|reserved_special_token_193|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128199, + "content": "<|reserved_special_token_194|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128200, + "content": "<|reserved_special_token_195|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128201, + "content": "<|reserved_special_token_196|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128202, + "content": "<|reserved_special_token_197|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128203, + "content": "<|reserved_special_token_198|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128204, + "content": "<|reserved_special_token_199|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128205, + "content": "<|reserved_special_token_200|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128206, + "content": "<|reserved_special_token_201|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128207, + "content": "<|reserved_special_token_202|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128208, + "content": "<|reserved_special_token_203|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128209, + "content": "<|reserved_special_token_204|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128210, + "content": "<|reserved_special_token_205|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128211, + "content": "<|reserved_special_token_206|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128212, + "content": "<|reserved_special_token_207|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128213, + "content": "<|reserved_special_token_208|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128214, + "content": "<|reserved_special_token_209|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128215, + "content": "<|reserved_special_token_210|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128216, + "content": "<|reserved_special_token_211|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128217, + "content": "<|reserved_special_token_212|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128218, + "content": "<|reserved_special_token_213|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128219, + "content": "<|reserved_special_token_214|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128220, + "content": "<|reserved_special_token_215|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128221, + "content": "<|reserved_special_token_216|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128222, + "content": "<|reserved_special_token_217|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128223, + "content": "<|reserved_special_token_218|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128224, + "content": "<|reserved_special_token_219|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128225, + "content": "<|reserved_special_token_220|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128226, + "content": "<|reserved_special_token_221|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128227, + "content": "<|reserved_special_token_222|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128228, + "content": "<|reserved_special_token_223|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128229, + "content": "<|reserved_special_token_224|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128230, + "content": "<|reserved_special_token_225|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128231, + "content": "<|reserved_special_token_226|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128232, + "content": "<|reserved_special_token_227|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128233, + "content": "<|reserved_special_token_228|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128234, + "content": "<|reserved_special_token_229|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128235, + "content": "<|reserved_special_token_230|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128236, + "content": "<|reserved_special_token_231|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128237, + "content": "<|reserved_special_token_232|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128238, + "content": "<|reserved_special_token_233|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128239, + "content": "<|reserved_special_token_234|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128240, + "content": "<|reserved_special_token_235|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128241, + "content": "<|reserved_special_token_236|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128242, + "content": "<|reserved_special_token_237|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128243, + "content": "<|reserved_special_token_238|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128244, + "content": "<|reserved_special_token_239|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128245, + "content": "<|reserved_special_token_240|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128246, + "content": "<|reserved_special_token_241|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128247, + "content": "<|reserved_special_token_242|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128248, + "content": "<|reserved_special_token_243|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128249, + "content": "<|reserved_special_token_244|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128250, + "content": "<|reserved_special_token_245|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128251, + "content": "<|reserved_special_token_246|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128252, + "content": "<|reserved_special_token_247|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128253, + "content": "<|reserved_special_token_248|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128254, + "content": "<|reserved_special_token_249|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128255, + "content": "<|reserved_special_token_250|>", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128256, + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128257, + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + }, + { + "id": 128258, + "content": "", + "single_word": false, + "lstrip": false, + "rstrip": false, + "normalized": false, + "special": true + } + ], + "normalizer": null, + "pre_tokenizer": { + "type": "Sequence", + "pretokenizers": [ + { + "type": "Split", + "pattern": { + "Regex": "(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}{1,3}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+" + }, + "behavior": "Isolated", + "invert": false + }, + { + "type": "ByteLevel", + "add_prefix_space": false, + "trim_offsets": true, + "use_regex": false + } + ] + }, + "post_processor": { + "type": "TemplateProcessing", + "single": [ + { + "SpecialToken": { + "id": "<|begin_of_text|>", + "type_id": 0 + } + }, + { + "Sequence": { + "id": "A", + "type_id": 0 + } + } + ], + "pair": [ + { + "SpecialToken": { + "id": "<|begin_of_text|>", + "type_id": 0 + } + }, + { + "Sequence": { + "id": "A", + "type_id": 0 + } + }, + { + "SpecialToken": { + "id": "<|begin_of_text|>", + "type_id": 1 + } + }, + { + "Sequence": { + "id": "B", + "type_id": 1 + } + } + ], + "special_tokens": { + "<|begin_of_text|>": { + "id": "<|begin_of_text|>", + "ids": [ + 128000 + ], + "tokens": [ + "<|begin_of_text|>" + ] + } + } + }, + "decoder": { + "type": "ByteLevel", + "add_prefix_space": true, + "trim_offsets": true, + "use_regex": true + }, + "model": { + "type": "BPE", + "dropout": null, + "unk_token": null, + "continuing_subword_prefix": null, + "end_of_word_suffix": null, + "fuse_unk": false, + "byte_fallback": false, + "ignore_merges": true, + "vocab": { + "!": 0, + "\"": 1, + "#": 2, + "$": 3, + "%": 4, + "&": 5, + "'": 6, + "(": 7, + ")": 8, + "*": 9, + "+": 10, + ",": 11, + "-": 12, + ".": 13, + "/": 14, + "0": 15, + "1": 16, + "2": 17, + "3": 18, + "4": 19, + "5": 20, + "6": 21, + "7": 22, + "8": 23, + "9": 24, + ":": 25, + ";": 26, + "<": 27, + "=": 28, + ">": 29, + "?": 30, + "@": 31, + "A": 32, + "B": 33, + "C": 34, + "D": 35, + "E": 36, + "F": 37, + "G": 38, + "H": 39, + "I": 40, + "J": 41, + "K": 42, + "L": 43, + "M": 44, + "N": 45, + "O": 46, + "P": 47, + "Q": 48, + "R": 49, + "S": 50, + "T": 51, + "U": 52, + "V": 53, + "W": 54, + "X": 55, + "Y": 56, + "Z": 57, + "[": 58, + "\\": 59, + "]": 60, + "^": 61, + "_": 62, + "`": 63, + "a": 64, + "b": 65, + "c": 66, + "d": 67, + "e": 68, + "f": 69, + "g": 70, + "h": 71, + "i": 72, + "j": 73, + "k": 74, + "l": 75, + "m": 76, + "n": 77, + "o": 78, + "p": 79, + "q": 80, + "r": 81, + "s": 82, + "t": 83, + "u": 84, + "v": 85, + "w": 86, + "x": 87, + "y": 88, + "z": 89, + "{": 90, + "|": 91, + "}": 92, + "~": 93, + "¡": 94, + "¢": 95, + "£": 96, + "¤": 97, + "¥": 98, + "¦": 99, + "§": 100, + "¨": 101, + "©": 102, + "ª": 103, + "«": 104, + "¬": 105, + "®": 106, + "¯": 107, + "°": 108, + "±": 109, + "²": 110, + "³": 111, + "´": 112, + "µ": 113, + "¶": 114, + "·": 115, + "¸": 116, + "¹": 117, + "º": 118, + "»": 119, + "¼": 120, + "½": 121, + "¾": 122, + "¿": 123, + "À": 124, + "Á": 125, + "Â": 126, + "Ã": 127, + "Ä": 128, + "Å": 129, + "Æ": 130, + "Ç": 131, + "È": 132, + "É": 133, + "Ê": 134, + "Ë": 135, + "Ì": 136, + "Í": 137, + "Î": 138, + "Ï": 139, + "Ð": 140, + "Ñ": 141, + "Ò": 142, + "Ó": 143, + "Ô": 144, + "Õ": 145, + "Ö": 146, + "×": 147, + "Ø": 148, + "Ù": 149, + "Ú": 150, + "Û": 151, + "Ü": 152, + "Ý": 153, + "Þ": 154, + "ß": 155, + "à": 156, + "á": 157, + "â": 158, + "ã": 159, + "ä": 160, + "å": 161, + "æ": 162, + "ç": 163, + "è": 164, + "é": 165, + "ê": 166, + "ë": 167, + "ì": 168, + "í": 169, + "î": 170, + "ï": 171, + "ð": 172, + "ñ": 173, + "ò": 174, + "ó": 175, + "ô": 176, + "õ": 177, + "ö": 178, + "÷": 179, + "ø": 180, + "ù": 181, + "ú": 182, + "û": 183, + "ü": 184, + "ý": 185, + "þ": 186, + "ÿ": 187, + "Ā": 188, + "ā": 189, + "Ă": 190, + "ă": 191, + "Ą": 192, + "ą": 193, + "Ć": 194, + "ć": 195, + "Ĉ": 196, + "ĉ": 197, + "Ċ": 198, + "ċ": 199, + "Č": 200, + "č": 201, + "Ď": 202, + "ď": 203, + "Đ": 204, + "đ": 205, + "Ē": 206, + "ē": 207, + "Ĕ": 208, + "ĕ": 209, + "Ė": 210, + "ė": 211, + "Ę": 212, + "ę": 213, + "Ě": 214, + "ě": 215, + "Ĝ": 216, + "ĝ": 217, + "Ğ": 218, + "ğ": 219, + "Ġ": 220, + "ġ": 221, + "Ģ": 222, + "ģ": 223, + "Ĥ": 224, + "ĥ": 225, + "Ħ": 226, + "ħ": 227, + "Ĩ": 228, + "ĩ": 229, + "Ī": 230, + "ī": 231, + "Ĭ": 232, + "ĭ": 233, + "Į": 234, + "į": 235, + "İ": 236, + "ı": 237, + "IJ": 238, + "ij": 239, + "Ĵ": 240, + "ĵ": 241, + "Ķ": 242, + "ķ": 243, + "ĸ": 244, + "Ĺ": 245, + "ĺ": 246, + "Ļ": 247, + "ļ": 248, + "Ľ": 249, + "ľ": 250, + "Ŀ": 251, + "ŀ": 252, + "Ł": 253, + "ł": 254, + "Ń": 255, + "ĠĠ": 256, + "ĠĠĠĠ": 257, + "in": 258, + "Ġt": 259, + "ĠĠĠĠĠĠĠĠ": 260, + "er": 261, + "ĠĠĠ": 262, + "on": 263, + "Ġa": 264, + "re": 265, + "at": 266, + "st": 267, + "en": 268, + "or": 269, + "Ġth": 270, + "ĊĊ": 271, + "Ġc": 272, + "le": 273, + "Ġs": 274, + "it": 275, + "an": 276, + "ar": 277, + "al": 278, + "Ġthe": 279, + ";Ċ": 280, + "Ġp": 281, + "Ġf": 282, + "ou": 283, + "Ġ=": 284, + "is": 285, + "ĠĠĠĠĠĠĠ": 286, + "ing": 287, + "es": 288, + "Ġw": 289, + "ion": 290, + "ed": 291, + "ic": 292, + "Ġb": 293, + "Ġd": 294, + "et": 295, + "Ġm": 296, + "Ġo": 297, + "ĉĉ": 298, + "ro": 299, + "as": 300, + "el": 301, + "ct": 302, + "nd": 303, + "Ġin": 304, + "Ġh": 305, + "ent": 306, + "id": 307, + "Ġn": 308, + "am": 309, + "ĠĠĠĠĠĠĠĠĠĠĠ": 310, + "Ġto": 311, + "Ġre": 312, + "--": 313, + "Ġ{": 314, + "Ġof": 315, + "om": 316, + ");Ċ": 317, + "im": 318, + "čĊ": 319, + "Ġ(": 320, + "il": 321, + "//": 322, + "Ġand": 323, + "ur": 324, + "se": 325, + "Ġl": 326, + "ex": 327, + "ĠS": 328, + "ad": 329, + "Ġ\"": 330, + "ch": 331, + "ut": 332, + "if": 333, + "**": 334, + "Ġ}": 335, + "em": 336, + "ol": 337, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 338, + "th": 339, + ")Ċ": 340, + "Ġ{Ċ": 341, + "Ġg": 342, + "ig": 343, + "iv": 344, + ",Ċ": 345, + "ce": 346, + "od": 347, + "Ġv": 348, + "ate": 349, + "ĠT": 350, + "ag": 351, + "ay": 352, + "Ġ*": 353, + "ot": 354, + "us": 355, + "ĠC": 356, + "Ġst": 357, + "ĠI": 358, + "un": 359, + "ul": 360, + "ue": 361, + "ĠA": 362, + "ow": 363, + "Ġ'": 364, + "ew": 365, + "Ġ<": 366, + "ation": 367, + "()": 368, + "Ġfor": 369, + "ab": 370, + "ort": 371, + "um": 372, + "ame": 373, + "Ġis": 374, + "pe": 375, + "tr": 376, + "ck": 377, + "âĢ": 378, + "Ġy": 379, + "ist": 380, + "----": 381, + ".ĊĊ": 382, + "he": 383, + "Ġe": 384, + "lo": 385, + "ĠM": 386, + "Ġbe": 387, + "ers": 388, + "Ġon": 389, + "Ġcon": 390, + "ap": 391, + "ub": 392, + "ĠP": 393, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 394, + "ass": 395, + "int": 396, + ">Ċ": 397, + "ly": 398, + "urn": 399, + "Ġ$": 400, + ";ĊĊ": 401, + "av": 402, + "port": 403, + "ir": 404, + "->": 405, + "nt": 406, + "ction": 407, + "end": 408, + "Ġde": 409, + "00": 410, + "ith": 411, + "out": 412, + "turn": 413, + "our": 414, + "ĠĠĠĠĠ": 415, + "lic": 416, + "res": 417, + "pt": 418, + "==": 419, + "Ġthis": 420, + "Ġwh": 421, + "Ġif": 422, + "ĠD": 423, + "ver": 424, + "age": 425, + "ĠB": 426, + "ht": 427, + "ext": 428, + "=\"": 429, + "Ġthat": 430, + "****": 431, + "ĠR": 432, + "Ġit": 433, + "ess": 434, + "ĠF": 435, + "Ġr": 436, + "os": 437, + "and": 438, + "Ġas": 439, + "ect": 440, + "ke": 441, + "rom": 442, + "Ġ//": 443, + "con": 444, + "ĠL": 445, + "(\"": 446, + "qu": 447, + "lass": 448, + "Ġwith": 449, + "iz": 450, + "de": 451, + "ĠN": 452, + "Ġal": 453, + "op": 454, + "up": 455, + "get": 456, + "Ġ}Ċ": 457, + "ile": 458, + "Ġan": 459, + "ata": 460, + "ore": 461, + "ri": 462, + "Ġpro": 463, + ";čĊ": 464, + "ĉĉĉĉ": 465, + "ter": 466, + "ain": 467, + "ĠW": 468, + "ĠE": 469, + "Ġcom": 470, + "Ġreturn": 471, + "art": 472, + "ĠH": 473, + "ack": 474, + "import": 475, + "ublic": 476, + "Ġor": 477, + "est": 478, + "ment": 479, + "ĠG": 480, + "able": 481, + "Ġ-": 482, + "ine": 483, + "ill": 484, + "ind": 485, + "ere": 486, + "::": 487, + "ity": 488, + "Ġ+": 489, + "Ġtr": 490, + "elf": 491, + "ight": 492, + "('": 493, + "orm": 494, + "ult": 495, + "str": 496, + "..": 497, + "\",": 498, + "Ġyou": 499, + "ype": 500, + "pl": 501, + "Ġnew": 502, + "Ġj": 503, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 504, + "Ġfrom": 505, + "Ġex": 506, + "ĠO": 507, + "20": 508, + "ld": 509, + "Ġ[": 510, + "oc": 511, + ":Ċ": 512, + "Ġse": 513, + "Ġle": 514, + "--------": 515, + ".s": 516, + "{Ċ": 517, + "',": 518, + "ant": 519, + "Ġat": 520, + "ase": 521, + ".c": 522, + "Ġch": 523, + "": 591, + "ust": 592, + "que": 593, + "Ġres": 594, + "))": 595, + "'s": 596, + "Ġk": 597, + "ans": 598, + "yst": 599, + "unction": 600, + "********": 601, + "Ġi": 602, + "Ġus": 603, + "pp": 604, + "10": 605, + "one": 606, + "ail": 607, + "====": 608, + "name": 609, + "Ġstr": 610, + "Ġ/": 611, + "Ġ&": 612, + "ach": 613, + "div": 614, + "ystem": 615, + "ell": 616, + "Ġhave": 617, + "err": 618, + "ould": 619, + "ull": 620, + "pon": 621, + "ĠJ": 622, + "_p": 623, + "Ġ==": 624, + "ign": 625, + "St": 626, + ".Ċ": 627, + "Ġpl": 628, + ");ĊĊ": 629, + "form": 630, + "put": 631, + "ount": 632, + "}ĊĊ": 633, + "dd": 634, + "ite": 635, + "Ġget": 636, + "rr": 637, + "ome": 638, + "ĠâĢ": 639, + "aram": 640, + "cc": 641, + "Ġ*/": 642, + "ER": 643, + "In": 644, + "les": 645, + "_s": 646, + "ong": 647, + "ie": 648, + "Ġcan": 649, + "ĠV": 650, + "erv": 651, + "pr": 652, + "Ġun": 653, + "row": 654, + "ber": 655, + "Ġdo": 656, + "ll": 657, + "Ġel": 658, + "Ġself": 659, + "ated": 660, + "ary": 661, + "Ġ.": 662, + "']": 663, + "ud": 664, + "Ġen": 665, + "ĠTh": 666, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 667, + "te": 668, + "_c": 669, + "uct": 670, + "Ġab": 671, + "ork": 672, + ".get": 673, + "Ġ#": 674, + "aw": 675, + "ress": 676, + "ob": 677, + "Name": 678, + "201": 679, + "app": 680, + "['": 681, + "Ġall": 682, + "ory": 683, + "ition": 684, + "ance": 685, + "ear": 686, + "Ġcont": 687, + "vent": 688, + "ia": 689, + "Ġwill": 690, + "IN": 691, + "ĠĠĠĠĠĠĠĠĠ": 692, + "return": 693, + "Ġ": 760, + "\",Ċ": 761, + "ec": 762, + "ĠIn": 763, + "ph": 764, + "Ġ|": 765, + "_f": 766, + "Ġvar": 767, + "ence": 768, + "Id": 769, + "ree": 770, + "ink": 771, + "lect": 772, + "ug": 773, + "eth": 774, + "Ġelse": 775, + "----------------": 776, + "19": 777, + "cont": 778, + "Ġso": 779, + "atic": 780, + "Ġlo": 781, + "pro": 782, + "ton": 783, + "ss": 784, + "own": 785, + "abel": 786, + "oint": 787, + "ous": 788, + "eld": 789, + "ST": 790, + "The": 791, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 792, + "RE": 793, + "\":": 794, + "olor": 795, + "tp": 796, + "eg": 797, + "key": 798, + "ude": 799, + "ĠSt": 800, + "ound": 801, + "Ġar": 802, + "\");Ċ": 803, + "ener": 804, + "ser": 805, + "11": 806, + "bject": 807, + "essage": 808, + "fer": 809, + "Ġmore": 810, + "ations": 811, + "ents": 812, + "Ġhis": 813, + "Ġthey": 814, + ".S": 815, + "ĠY": 816, + "use": 817, + "ne": 818, + "ish": 819, + "old": 820, + "_d": 821, + "io": 822, + "ield": 823, + "Ġper": 824, + "Cont": 825, + "ings": 826, + "####": 827, + "Ġdata": 828, + "Ġsa": 829, + "ef": 830, + "fo": 831, + "Ġone": 832, + "eng": 833, + "Ġdis": 834, + "AT": 835, + "Ġname": 836, + "Ġtrue": 837, + "val": 838, + "led": 839, + ".f": 840, + "Ġne": 841, + "Ġend": 842, + "32": 843, + ".T": 844, + "16": 845, + "cre": 846, + "ark": 847, + "log": 848, + "Ex": 849, + "error": 850, + "_id": 851, + "urre": 852, + "ange": 853, + "Ġnull": 854, + "rray": 855, + "Ġmy": 856, + "pan": 857, + "ict": 858, + "ator": 859, + "View": 860, + "List": 861, + "ĉreturn": 862, + "âĢĿ": 863, + "Ġpre": 864, + "Ġx": 865, + "clude": 866, + "arg": 867, + "15": 868, + "ov": 869, + ".h": 870, + "Ġ>": 871, + "Ġtheir": 872, + "')": 873, + "irst": 874, + "ick": 875, + "gh": 876, + "LE": 877, + "OR": 878, + "Ġprivate": 879, + "tem": 880, + "čĊčĊ": 881, + "user": 882, + "Ġ)": 883, + "com": 884, + ".A": 885, + "\";Ċ": 886, + "Ġid": 887, + "read": 888, + "Ġwho": 889, + "_b": 890, + "\">Ċ": 891, + "Ġtime": 892, + "Ġman": 893, + "ry": 894, + "========": 895, + "roup": 896, + "rop": 897, + "public": 898, + "vel": 899, + "umber": 900, + "ble": 901, + "Ġwhich": 902, + "****************": 903, + "Ġany": 904, + "Ġfalse": 905, + "we": 906, + "Ġvalue": 907, + "Ġli": 908, + "\")": 909, + "nder": 910, + "gr": 911, + "Ġno": 912, + "param": 913, + "25": 914, + "fig": 915, + ".com": 916, + "Ġapp": 917, + "_l": 918, + "ions": 919, + ".D": 920, + "ĠCh": 921, + "Ġabout": 922, + "Ġadd": 923, + "Ġsu": 924, + "Ġstring": 925, + "ID": 926, + "Ġover": 927, + "string": 928, + ".l": 929, + "ource": 930, + "000": 931, + "_C": 932, + "]Ċ": 933, + "Ġqu": 934, + "ĠString": 935, + "ca": 936, + "SE": 937, + "Ġro": 938, + "sh": 939, + "ual": 940, + "Type": 941, + "son": 942, + "new": 943, + "ern": 944, + "Ġag": 945, + "AR": 946, + "];Ċ": 947, + "].": 948, + "Ġ?": 949, + "ical": 950, + "Ġdes": 951, + "uth": 952, + "ix": 953, + "ays": 954, + "Ġtype": 955, + "'t": 956, + "ault": 957, + "Ġinter": 958, + "var": 959, + ".b": 960, + "Ġpart": 961, + ".d": 962, + "urrent": 963, + "IT": 964, + "EN": 965, + "30": 966, + "enc": 967, + "(f": 968, + "ra": 969, + "value": 970, + "cho": 971, + "18": 972, + "utton": 973, + "ose": 974, + "14": 975, + "Ġ!=": 976, + "ater": 977, + "é": 978, + "reate": 979, + "oll": 980, + "pos": 981, + "yle": 982, + "ng": 983, + "AL": 984, + "using": 985, + "ames": 986, + "Ġ{čĊ": 987, + "ates": 988, + "ely": 989, + "Ġwork": 990, + "Ġem": 991, + "inal": 992, + "Ġsp": 993, + "Ġwhen": 994, + ".set": 995, + "ĠĠĠĠĠĠ": 996, + "):Ċ": 997, + "to": 998, + "quire": 999, + "indow": 1000, + "lement": 1001, + "pect": 1002, + "ash": 1003, + "[i": 1004, + "Ġuse": 1005, + ".F": 1006, + "pec": 1007, + "Ġad": 1008, + "ove": 1009, + "ception": 1010, + "ength": 1011, + "include": 1012, + "ader": 1013, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 1014, + "atus": 1015, + "Th": 1016, + "itle": 1017, + "rit": 1018, + "void": 1019, + "().": 1020, + "(Ċ": 1021, + "Ġoff": 1022, + "Ġother": 1023, + "Ġ&&": 1024, + "';Ċ": 1025, + "ms": 1026, + "Ġbeen": 1027, + "Ġte": 1028, + "ml": 1029, + "co": 1030, + "nc": 1031, + "13": 1032, + "ervice": 1033, + "Ġ%": 1034, + "**Ċ": 1035, + "ann": 1036, + "ade": 1037, + "ĊĊĊĊ": 1038, + "lock": 1039, + "const": 1040, + "100": 1041, + "ponse": 1042, + "Ġsup": 1043, + "++": 1044, + "date": 1045, + "Ġacc": 1046, + "Ġhad": 1047, + "Ġbu": 1048, + "200": 1049, + "ĠRe": 1050, + "Ġwere": 1051, + "Ġfile": 1052, + "Ġwould": 1053, + "ĠâĢľ": 1054, + "ven": 1055, + "iss": 1056, + "Ġour": 1057, + "class": 1058, + "raw": 1059, + "Ġyear": 1060, + "Data": 1061, + "Ġval": 1062, + "Ġsome": 1063, + "fter": 1064, + "ys": 1065, + "Ġ///": 1066, + "round": 1067, + "view": 1068, + "Ġpe": 1069, + "Ġthere": 1070, + "Ġsaid": 1071, + "du": 1072, + "of": 1073, + "line": 1074, + "/*": 1075, + "duct": 1076, + "Ġher": 1077, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ": 1078, + "Res": 1079, + "Ġco": 1080, + "Ġcomm": 1081, + "ise": 1082, + "min": 1083, + "ĠĠĠĠĊ": 1084, + "#include": 1085, + "ethod": 1086, + ".P": 1087, + "ute": 1088, + "Ġass": 1089, + "Int": 1090, + "ask": 1091, + "loc": 1092, + "Ġlike": 1093, + "ody": 1094, + "Ġlet": 1095, + "load": 1096, + "Ġam": 1097, + "rol": 1098, + "Ġgr": 1099, + "yp": 1100, + "Ġalso": 1101, + "ĠIt": 1102, + "url": 1103, + "ific": 1104, + "ors": 1105, + "_P": 1106, + "_n": 1107, + "igh": 1108, + "Ġthan": 1109, + "Com": 1110, + "AN": 1111, + "UL": 1112, + "ating": 1113, + "17": 1114, + "ĠThis": 1115, + "ref": 1116, + "_S": 1117, + "Ġstatic": 1118, + "roll": 1119, + "Ġjust": 1120, + "Ġresult": 1121, + "ian": 1122, + "idth": 1123, + "Ġthem": 1124, + "));Ċ": 1125, + "der": 1126, + "reak": 1127, + "Con": 1128, + "://": 1129, + "ule": 1130, + "...": 1131, + "arch": 1132, + "ement": 1133, + "Ġ<<": 1134, + "50": 1135, + "ush": 1136, + "ense": 1137, + "arr": 1138, + "Ġinto": 1139, + "cess": 1140, + "amp": 1141, + "ied": 1142, + "ument": 1143, + "Ġ\\": 1144, + "],": 1145, + "wo": 1146, + "als": 1147, + "Ġwhat": 1148, + "anc": 1149, + "Value": 1150, + "='": 1151, + "olum": 1152, + "Ġpos": 1153, + "ages": 1154, + "ayer": 1155, + "Ġsc": 1156, + "ues": 1157, + "\")Ċ": 1158, + "_T": 1159, + "Ġlist": 1160, + "(s": 1161, + "Ġcase": 1162, + "Ch": 1163, + "ĉĉĉĉĉ": 1164, + "////////": 1165, + "ponent": 1166, + "Ġz": 1167, + "Ġkn": 1168, + "let": 1169, + "DE": 1170, + "red": 1171, + "Ġfe": 1172, + "Ġ},Ċ": 1173, + "Ġ,": 1174, + "(t": 1175, + "Ġfirst": 1176, + "');Ċ": 1177, + "word": 1178, + "Ġimport": 1179, + "Ġact": 1180, + "Ġchar": 1181, + "CT": 1182, + "ĠTr": 1183, + "ople": 1184, + "={": 1185, + "ĉf": 1186, + "24": 1187, + "ient": 1188, + "cent": 1189, + ".j": 1190, + "lection": 1191, + "))Ċ": 1192, + "Ġonly": 1193, + "Ġprint": 1194, + "mer": 1195, + ".W": 1196, + "ock": 1197, + "Ġ--": 1198, + "Text": 1199, + "Ġop": 1200, + "ank": 1201, + "Ġits": 1202, + "Ġback": 1203, + "[\"": 1204, + "Ġneed": 1205, + "Ġcl": 1206, + "Ġsub": 1207, + "Ġla": 1208, + "((": 1209, + ".\"": 1210, + "Object": 1211, + "Ġstart": 1212, + "file": 1213, + "(self": 1214, + "ner": 1215, + "ey": 1216, + "Ġuser": 1217, + "Ġent": 1218, + "ĠCom": 1219, + "its": 1220, + "ĠCon": 1221, + "ouble": 1222, + "ower": 1223, + "item": 1224, + "very": 1225, + "ĠWe": 1226, + "64": 1227, + "lick": 1228, + "ĠQ": 1229, + "php": 1230, + "ttp": 1231, + "':": 1232, + "ics": 1233, + "Ġunder": 1234, + "Ġ*Ċ": 1235, + ".L": 1236, + ");": 1237, + "ices": 1238, + "Ġreg": 1239, + ")čĊ": 1240, + "ĉpublic": 1241, + "SS": 1242, + "Ġthen": 1243, + "reat": 1244, + "ious": 1245, + ".G": 1246, + "ek": 1247, + "irect": 1248, + "heck": 1249, + "cript": 1250, + "ning": 1251, + "ĠUn": 1252, + "Ġmay": 1253, + "ĠWh": 1254, + "Bo": 1255, + "Item": 1256, + "struct": 1257, + ".st": 1258, + "ream": 1259, + "ible": 1260, + "loat": 1261, + "Ġorg": 1262, + "und": 1263, + "sum": 1264, + "_in": 1265, + "../": 1266, + "_M": 1267, + "Ġhow": 1268, + "rite": 1269, + "'Ċ": 1270, + "To": 1271, + "40": 1272, + "ww": 1273, + "Ġpeople": 1274, + "index": 1275, + ".n": 1276, + "http": 1277, + "(m": 1278, + "ector": 1279, + "Ġind": 1280, + "Ġjav": 1281, + "],Ċ": 1282, + "ĠHe": 1283, + "_st": 1284, + "ful": 1285, + "ole": 1286, + "){Ċ": 1287, + "Ġshould": 1288, + "opy": 1289, + "elp": 1290, + "ier": 1291, + "_name": 1292, + "erson": 1293, + "ION": 1294, + "ote": 1295, + "Ġtest": 1296, + "Ġbet": 1297, + "rror": 1298, + "ular": 1299, + "ãĢ": 1300, + "ĠÐ": 1301, + "bs": 1302, + "ting": 1303, + "Ġmake": 1304, + "Tr": 1305, + "Ġafter": 1306, + "arget": 1307, + "RO": 1308, + "olumn": 1309, + "rc": 1310, + "_re": 1311, + "define": 1312, + "22": 1313, + "Ġright": 1314, + "right": 1315, + "day": 1316, + "Ġlong": 1317, + "[]": 1318, + "(p": 1319, + "td": 1320, + "cond": 1321, + "ĠPro": 1322, + "Ġrem": 1323, + "ptions": 1324, + "vid": 1325, + ".g": 1326, + "Ġext": 1327, + "Ġ__": 1328, + "')Ċ": 1329, + "pace": 1330, + "mp": 1331, + "Ġmin": 1332, + "stance": 1333, + "air": 1334, + "action": 1335, + "wh": 1336, + "type": 1337, + "util": 1338, + "ait": 1339, + "ĊĊ": 1363, + "Ġshe": 1364, + "\"]": 1365, + "aph": 1366, + "Ġexp": 1367, + "erty": 1368, + "ĠSe": 1369, + "Ġpar": 1370, + "unc": 1371, + "ET": 1372, + "Ġread": 1373, + "print": 1374, + "Ġrel": 1375, + "Ġform": 1376, + "Ġdr": 1377, + "Exception": 1378, + "input": 1379, + "Ġtrans": 1380, + "########": 1381, + "order": 1382, + "By": 1383, + "Ġaw": 1384, + "ities": 1385, + "uff": 1386, + "play": 1387, + ".add": 1388, + "ĠâĢĵ": 1389, + "Ġwant": 1390, + "Ġcomp": 1391, + "ments": 1392, + "Ġ||": 1393, + "az": 1394, + "be": 1395, + "Ġnumber": 1396, + "Ġrequire": 1397, + "ĠEx": 1398, + "60": 1399, + "Ġcol": 1400, + "Ġkey": 1401, + "ember": 1402, + "Ġtwo": 1403, + "Ġsize": 1404, + "Ġwhere": 1405, + "UT": 1406, + "result": 1407, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 1408, + "ough": 1409, + "orld": 1410, + "ood": 1411, + "uch": 1412, + "ative": 1413, + "ger": 1414, + "arent": 1415, + "Ġ/*": 1416, + "Ġarg": 1417, + "Ġwhile": 1418, + "23": 1419, + "(this": 1420, + "Ġrec": 1421, + "Ġdif": 1422, + "State": 1423, + "Ġspec": 1424, + "ride": 1425, + "_F": 1426, + "Ġlook": 1427, + "AM": 1428, + "ility": 1429, + "eter": 1430, + "âĢĻt": 1431, + "ĊĊĊ": 1432, + "ayout": 1433, + "--------------------------------": 1434, + "ager": 1435, + "Ġcould": 1436, + "Ġbr": 1437, + "ends": 1438, + "ures": 1439, + "Ġknow": 1440, + "ets": 1441, + "ĠIf": 1442, + "ĠSh": 1443, + ".w": 1444, + "back": 1445, + "Ġser": 1446, + "Ġ+=": 1447, + "Ġfr": 1448, + "());Ċ": 1449, + "Ġhand": 1450, + "Ind": 1451, + "ULL": 1452, + "Im": 1453, + "();ĊĊ": 1454, + "Ġmost": 1455, + "Ġtry": 1456, + "Ġnow": 1457, + "rough": 1458, + ">čĊ": 1459, + "ackage": 1460, + "Ġhim": 1461, + "._": 1462, + "ify": 1463, + "Ġbreak": 1464, + "Ġ);Ċ": 1465, + "ren": 1466, + "#define": 1467, + "itt": 1468, + "Ġap": 1469, + "ĉc": 1470, + "(n": 1471, + "ĠYou": 1472, + ":ĊĊ": 1473, + "-m": 1474, + "Ġevery": 1475, + "ustom": 1476, + "lient": 1477, + "ocument": 1478, + "cription": 1479, + "Error": 1480, + "-b": 1481, + "о": 1482, + "][": 1483, + "99": 1484, + "trans": 1485, + "Ġpoint": 1486, + "Ġstd": 1487, + "Ġfil": 1488, + "Time": 1489, + "80": 1490, + "Ġmod": 1491, + "Ġ->": 1492, + "Ġerror": 1493, + "ah": 1494, + "Ġtext": 1495, + "roller": 1496, + "lose": 1497, + "ql": 1498, + "Ġpol": 1499, + "><": 1822, + ".B": 1823, + "-c": 1824, + "Ġopen": 1825, + "Ġest": 1826, + "ĠĠĠĠĠĠĠĠĊ": 1827, + "Ġnext": 1828, + "IM": 1829, + "ÑĤ": 1830, + "OT": 1831, + "ó": 1832, + "Ġfollow": 1833, + "content": 1834, + "ĠĠĠĠĠĠĠĠĠĠĠĠ": 1835, + "Ġinclud": 1836, + "HE": 1837, + "ĠRes": 1838, + "Ġhref": 1839, + "и": 1840, + "Ġcar": 1841, + "ypes": 1842, + "image": 1843, + "Un": 1844, + "Ġbool": 1845, + "AD": 1846, + "Ġgame": 1847, + ".Form": 1848, + "rows": 1849, + "*/": 1850, + "velop": 1851, + ".Drawing": 1852, + "Ġpath": 1853, + "ision": 1854, + "Ġeach": 1855, + "ĠPl": 1856, + "_type": 1857, + "Path": 1858, + "nection": 1859, + "Ġav": 1860, + "').": 1861, + "Ġsupport": 1862, + "ENT": 1863, + "rem": 1864, + "\").": 1865, + "Ġown": 1866, + "Ġcor": 1867, + "count": 1868, + "miss": 1869, + "ually": 1870, + "Ġmem": 1871, + "std": 1872, + "ience": 1873, + "search": 1874, + "\"ĊĊ": 1875, + "Form": 1876, + "Ġsex": 1877, + "ename": 1878, + "Ġsign": 1879, + "Ġet": 1880, + "ĠĠĠĠĠĠĠĠĠĠ": 1881, + "','": 1882, + "ĠApp": 1883, + "Ġthose": 1884, + "off": 1885, + "Ġerr": 1886, + "Ġsystem": 1887, + "Ġbest": 1888, + "code": 1889, + "Ġsame": 1890, + "Ġdi": 1891, + "uss": 1892, + "Ġcreate": 1893, + "ather": 1894, + "Array": 1895, + ".in": 1896, + "fe": 1897, + "Service": 1898, + "UN": 1899, + "ats": 1900, + "ĠZ": 1901, + "alth": 1902, + "Ġmade": 1903, + "true": 1904, + "AB": 1905, + "Ġmark": 1906, + "rid": 1907, + "ified": 1908, + ",čĊ": 1909, + "yn": 1910, + "press": 1911, + "Ġgroup": 1912, + "Ġfin": 1913, + "ĠLicense": 1914, + "Field": 1915, + "eger": 1916, + "Ġworld": 1917, + "iness": 1918, + "ty": 1919, + "Ġprocess": 1920, + "(b": 1921, + "Ġcre": 1922, + "arn": 1923, + "ives": 1924, + "Ġmain": 1925, + "ideo": 1926, + "36": 1927, + "_g": 1928, + "AG": 1929, + "valid": 1930, + "img": 1931, + "PI": 1932, + "Ġcolor": 1933, + "Ġreport": 1934, + "Ġtake": 1935, + "rib": 1936, + "OM": 1937, + "Ġday": 1938, + "Request": 1939, + "Ġsk": 1940, + "bers": 1941, + "ĉs": 1942, + ".Add": 1943, + "oot": 1944, + "Image": 1945, + "Ġcomple": 1946, + "ollection": 1947, + "Ġtop": 1948, + "Ġfree": 1949, + "AS": 1950, + "De": 1951, + "ĠOn": 1952, + "IG": 1953, + "90": 1954, + "eta": 1955, + "Date": 1956, + "Ġaction": 1957, + "34": 1958, + "Over": 1959, + "itor": 1960, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 1961, + "not": 1962, + "Ġindex": 1963, + "her": 1964, + "icon": 1965, + "On": 1966, + ";čĊčĊ": 1967, + "ivity": 1968, + "mand": 1969, + ".Windows": 1970, + "OL": 1971, + "Ġreal": 1972, + "Ġmax": 1973, + "land": 1974, + "....": 1975, + "raph": 1976, + "Ġbuild": 1977, + "leg": 1978, + "assword": 1979, + "?ĊĊ": 1980, + "âĢ¦": 1981, + "ook": 1982, + "uck": 1983, + "Ġmessage": 1984, + "test": 1985, + "ivers": 1986, + "38": 1987, + "Ġinput": 1988, + "Ġart": 1989, + "Ġbetween": 1990, + "Get": 1991, + "enter": 1992, + "ground": 1993, + "ene": 1994, + "á": 1995, + ".length": 1996, + "Node": 1997, + "(i": 1998, + "Class": 1999, + "for": 2000, + "ĠâĢĶ": 2001, + "ten": 2002, + "oin": 2003, + "Ġke": 2004, + "ui": 2005, + "ĠIN": 2006, + "Ġtable": 2007, + "sub": 2008, + "ĠLe": 2009, + "Ġhead": 2010, + "Ġmust": 2011, + "////////////////": 2012, + ".util": 2013, + "Context": 2014, + "Ġorder": 2015, + "Ġmov": 2016, + "over": 2017, + "Ġcontin": 2018, + "Ġsay": 2019, + "static": 2020, + ".Text": 2021, + "ĠclassName": 2022, + "pany": 2023, + "Ġter": 2024, + "head": 2025, + "rg": 2026, + "Ġproduct": 2027, + "This": 2028, + ".âĢĿ": 2029, + "ĠBut": 2030, + "70": 2031, + "loy": 2032, + "Ġdouble": 2033, + "sg": 2034, + "Ġplace": 2035, + ".x": 2036, + "message": 2037, + "Ġinformation": 2038, + "private": 2039, + "Ġoper": 2040, + "ced": 2041, + "db": 2042, + "\">": 2228, + "aterial": 2229, + "iled": 2230, + "Ġput": 2231, + "Qu": 2232, + "ÑĢ": 2233, + "ung": 2234, + "map": 2235, + "ĉĉĉĉĉĉĉĉ": 2236, + "Ġlevel": 2237, + "Component": 2238, + "book": 2239, + "creen": 2240, + "_RE": 2241, + "Ġconfig": 2242, + "ãģ": 2243, + "Or": 2244, + ".data": 2245, + "Ġdocument": 2246, + "\",\"": 2247, + "tribute": 2248, + "ux": 2249, + "Log": 2250, + "ference": 2251, + "post": 2252, + "_e": 2253, + "Ġlocal": 2254, + "andom": 2255, + "assert": 2256, + "Val": 2257, + "lected": 2258, + "ina": 2259, + "atabase": 2260, + "Add": 2261, + "Ġcontent": 2262, + ".print": 2263, + "signed": 2264, + "ric": 2265, + ".\"ĊĊ": 2266, + "Ġfa": 2267, + "!ĊĊ": 2268, + "-f": 2269, + "ived": 2270, + "Ġquest": 2271, + ".ex": 2272, + "Ġfloat": 2273, + "Ġdevelop": 2274, + "оÐ": 2275, + "Map": 2276, + "ading": 2277, + "Ġposs": 2278, + "UE": 2279, + "namespace": 2280, + "_O": 2281, + "ĉb": 2282, + ".Get": 2283, + ">(": 2284, + "json": 2285, + "etails": 2286, + "66": 2287, + "Ġtoo": 2288, + "Ġextends": 2289, + "ĠNone": 2290, + "Ġfore": 2291, + "(String": 2292, + "format": 2293, + "Ġgreat": 2294, + "inter": 2295, + "cale": 2296, + "Ñģ": 2297, + "ron": 2298, + "iving": 2299, + "Ent": 2300, + "ency": 2301, + "xt": 2302, + "oy": 2303, + "05": 2304, + "Ġmonth": 2305, + "Ġhapp": 2306, + "Ġsuper": 2307, + "bar": 2308, + "default": 2309, + "_de": 2310, + "ords": 2311, + "ln": 2312, + "({Ċ": 2313, + "ĠInd": 2314, + "ases": 2315, + "Ġtitle": 2316, + "Ġcontext": 2317, + "08": 2318, + "oh": 2319, + "-p": 2320, + "Em": 2321, + "Ġmet": 2322, + "Test": 2323, + "Ġlife": 2324, + "_v": 2325, + "ĠUS": 2326, + "UI": 2327, + "ocation": 2328, + "md": 2329, + "Ġ[Ċ": 2330, + "Ġ]": 2331, + "sw": 2332, + "Ġincre": 2333, + "script": 2334, + "ential": 2335, + "ways": 2336, + ".de": 2337, + "Ġsrc": 2338, + "Ġcatch": 2339, + "ĠAmeric": 2340, + "//Ċ": 2341, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 2342, + "Ġpay": 2343, + "plit": 2344, + "âĢĶ": 2345, + "Ġcoun": 2346, + "obj": 2347, + ".php": 2348, + "Ġchange": 2349, + "ething": 2350, + "'re": 2351, + "aster": 2352, + "los": 2353, + "lation": 2354, + "ĠĠĊ": 2355, + "Le": 2356, + "ä": 2357, + "({": 2358, + "ready": 2359, + "ĠNo": 2360, + "Ġposition": 2361, + "Ġold": 2362, + "Ġbook": 2363, + "abled": 2364, + "bug": 2365, + "202": 2366, + "Hand": 2367, + "};ĊĊ": 2368, + "isplay": 2369, + "aving": 2370, + "04": 2371, + "Ġgover": 2372, + "Ġversion": 2373, + "System": 2374, + "nect": 2375, + "response": 2376, + "Style": 2377, + "Up": 2378, + "angu": 2379, + "Ġthree": 2380, + "init": 2381, + "ero": 2382, + "Ġlaw": 2383, + "endif": 2384, + "Ġbase": 2385, + "email": 2386, + "(l": 2387, + "_V": 2388, + "Ġconf": 2389, + "ATE": 2390, + "Ġduring": 2391, + "tes": 2392, + "Ġconsole": 2393, + "ĠPr": 2394, + "Ġspe": 2395, + "ves": 2396, + "65": 2397, + "path": 2398, + "ialog": 2399, + "dition": 2400, + "_to": 2401, + "ards": 2402, + "Ġagainst": 2403, + "etwork": 2404, + "ĠPh": 2405, + "_L": 2406, + "cur": 2407, + "imit": 2408, + "With": 2409, + "Ġpower": 2410, + "ium": 2411, + "';ĊĊ": 2412, + "Ġwom": 2413, + "left": 2414, + "ources": 2415, + "atri": 2416, + "ĠIm": 2417, + "ĠMan": 2418, + "orth": 2419, + "${": 2420, + "88": 2421, + "quals": 2422, + "ese": 2423, + "_size": 2424, + "Ġiss": 2425, + "otal": 2426, + "-g": 2427, + "ique": 2428, + "rame": 2429, + "Ġwidth": 2430, + "erg": 2431, + ")(": 2432, + "ittle": 2433, + "TR": 2434, + "ĠThey": 2435, + "ences": 2436, + "02": 2437, + "rl": 2438, + "ons": 2439, + "Ġlabel": 2440, + ".y": 2441, + "-t": 2442, + "update": 2443, + "anel": 2444, + "sc": 2445, + ".to": 2446, + "Ġproject": 2447, + "ü": 2448, + "Ġelement": 2449, + "Ġsuccess": 2450, + "ĉĉĊ": 2451, + ".sh": 2452, + "ram": 2453, + "ched": 2454, + "())Ċ": 2455, + "Ġ(Ċ": 2456, + "Ġdate": 2457, + "Ġtot": 2458, + "_ST": 2459, + "All": 2460, + "ification": 2461, + "ĉvar": 2462, + "Ġtri": 2463, + "chem": 2464, + "my": 2465, + "Ġbig": 2466, + "ĠAd": 2467, + "ĠAt": 2468, + "ots": 2469, + "num": 2470, + "Act": 2471, + "Ġmap": 2472, + "era": 2473, + "cope": 2474, + ".$": 2475, + ",âĢĿ": 2476, + "Ġpop": 2477, + "Ġfew": 2478, + "Ġlen": 2479, + "uid": 2480, + "eters": 2481, + "ules": 2482, + "ÃŃ": 2483, + "source": 2484, + "https": 2485, + "Ġdem": 2486, + "Ġear": 2487, + "################": 2488, + "Ġmatch": 2489, + "ories": 2490, + "49": 2491, + "aces": 2492, + "ĠCl": 2493, + "Ġnode": 2494, + "78": 2495, + "irc": 2496, + "local": 2497, + "unity": 2498, + "};Ċ": 2499, + "Ġanother": 2500, + "<<": 2501, + "ogle": 2502, + "Ġsit": 2503, + "ework": 2504, + "TE": 2505, + ".I": 2506, + "NS": 2507, + "ology": 2508, + "ought": 2509, + ".Cont": 2510, + ">>": 2511, + "Ġcare": 2512, + "state": 2513, + "ĉprivate": 2514, + "Ġeffect": 2515, + "++)": 2516, + "_file": 2517, + "ending": 2518, + "Line": 2519, + "For": 2520, + "ior": 2521, + "ĠSc": 2522, + "Ġfun": 2523, + ".Size": 2524, + "ĉelse": 2525, + "])": 2526, + "start": 2527, + "vious": 2528, + "Ġ},": 2529, + "ours": 2530, + "Ġleg": 2531, + "Ġservice": 2532, + "Ġsince": 2533, + "iron": 2534, + "Label": 2535, + "Ġnon": 2536, + "Ġlos": 2537, + "iction": 2538, + "Ġfull": 2539, + "acter": 2540, + "board": 2541, + "gress": 2542, + "Ġturn": 2543, + "ither": 2544, + "09": 2545, + ".size": 2546, + "Ġbody": 2547, + "resh": 2548, + "eturn": 2549, + "199": 2550, + "(_": 2551, + "yles": 2552, + "ormal": 2553, + "pi": 2554, + "Ġsomething": 2555, + "!--": 2556, + "uint": 2557, + "Ġprodu": 2558, + "Ġstand": 2559, + "Ġproble": 2560, + "Ġavailable": 2561, + "mt": 2562, + "ĠBl": 2563, + "Ġ...": 2564, + "Ġblock": 2565, + "Input": 2566, + "Ġkeep": 2567, + "Count": 2568, + "open": 2569, + "Ġ['": 2570, + "Ġthrow": 2571, + "uilder": 2572, + "Action": 2573, + "Ġthings": 2574, + "True": 2575, + "Ġurl": 2576, + "ĠBo": 2577, + "printf": 2578, + "Ġred": 2579, + "js": 2580, + ".create": 2581, + "ĠOr": 2582, + "Status": 2583, + "Instance": 2584, + "Ġcontrol": 2585, + "Ġcome": 2586, + "Ġcustom": 2587, + "location": 2588, + "07": 2589, + "model": 2590, + "ĠčĊ": 2591, + "Ġsource": 2592, + "Ġeas": 2593, + ".out": 2594, + "]ĊĊ": 2595, + "oney": 2596, + "Ġawait": 2597, + "Ġpartic": 2598, + "AP": 2599, + "ublish": 2600, + "odes": 2601, + "_pro": 2602, + "ply": 2603, + "riter": 2604, + "Ġprov": 2605, + "Ġmill": 2606, + "HT": 2607, + "])Ċ": 2608, + "Ġchang": 2609, + "Ġask": 2610, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 2611, + "Ġoutput": 2612, + "Ġemail": 2613, + "68": 2614, + ".push": 2615, + "Ġ}čĊčĊ": 2616, + "ination": 2617, + "47": 2618, + "atrix": 2619, + "Table": 2620, + "uccess": 2621, + "]);Ċ": 2622, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 2623, + "Ġdisc": 2624, + "([": 2625, + "Ġbusiness": 2626, + "height": 2627, + ".html": 2628, + "ta": 2629, + "field": 2630, + "Ġrequired": 2631, + "_R": 2632, + "Ġgovern": 2633, + "}čĊčĊ": 2634, + "lex": 2635, + "500": 2636, + ".,": 2637, + "ĠSet": 2638, + "urch": 2639, + "///": 2640, + "ts": 2641, + "af": 2642, + "Ġmight": 2643, + "istory": 2644, + "Str": 2645, + "Ġnever": 2646, + "Response": 2647, + "arse": 2648, + "ada": 2649, + "ĠHow": 2650, + "Ġ*)": 2651, + "Ġ;": 2652, + "Ġhard": 2653, + "Ad": 2654, + "Ġintern": 2655, + "used": 2656, + "(data": 2657, + "mod": 2658, + "annel": 2659, + "Ġnp": 2660, + "ugg": 2661, + "Ġ/>Ċ": 2662, + "Ġcalled": 2663, + "body": 2664, + "Ġcho": 2665, + "(r": 2666, + "_set": 2667, + "ird": 2668, + "Ġ>=": 2669, + "Ġ};Ċ": 2670, + "Ġoptions": 2671, + "ĠGener": 2672, + "Ġheight": 2673, + "Point": 2674, + "You": 2675, + "ety": 2676, + "Click": 2677, + "Ġsmall": 2678, + "Ġide": 2679, + "Ġaccess": 2680, + "anguage": 2681, + "Ġprotected": 2682, + "Ġjob": 2683, + "ĠThere": 2684, + "Def": 2685, + "Ġaddress": 2686, + "Ġuint": 2687, + "Not": 2688, + "oo": 2689, + "aps": 2690, + "": 2828, + "ĉĠĠĠ": 2829, + "\"))": 2830, + "Content": 2831, + "_W": 2832, + "plement": 2833, + "Ġwon": 2834, + "Ġvideo": 2835, + "adi": 2836, + "point": 2837, + "%%": 2838, + "03": 2839, + "Ġgl": 2840, + "erved": 2841, + "viron": 2842, + "IF": 2843, + "uted": 2844, + "ãĥ": 2845, + "'m": 2846, + "Ġcert": 2847, + "Ġprof": 2848, + "Ġcell": 2849, + "ari": 2850, + "Ġplayer": 2851, + "ais": 2852, + "Ġcost": 2853, + "Ġhum": 2854, + "(R": 2855, + "Ġoffic": 2856, + "ks": 2857, + ".text": 2858, + "atures": 2859, + "Ġtotal": 2860, + "Ġ*/ĊĊ": 2861, + "ope": 2862, + "Ġstat": 2863, + "UM": 2864, + "Ġload": 2865, + "ights": 2866, + "Ġclear": 2867, + "uro": 2868, + "Ġtechn": 2869, + "upport": 2870, + "IR": 2871, + "Ġrow": 2872, + "Ġseem": 2873, + "Ġq": 2874, + "Ġshort": 2875, + "ĠNot": 2876, + "ipp": 2877, + "Group": 2878, + "section": 2879, + "max": 2880, + "irl": 2881, + "Ġoverride": 2882, + "Ġcompany": 2883, + "Ġdone": 2884, + "\");čĊ": 2885, + "Ġgre": 2886, + ".Re": 2887, + "Ġbelie": 2888, + "rist": 2889, + "Ġhealth": 2890, + "ANT": 2891, + "()ĊĊ": 2892, + "ĠBe": 2893, + ".value": 2894, + "ĠGr": 2895, + "ottom": 2896, + "Ġargs": 2897, + "PT": 2898, + "status": 2899, + "func": 2900, + "uments": 2901, + "-h": 2902, + "Number": 2903, + ":čĊ": 2904, + "ĠLog": 2905, + "erver": 2906, + "Ġ),Ċ": 2907, + "ament": 2908, + "Ġobj": 2909, + "inc": 2910, + "Ġchildren": 2911, + "icy": 2912, + "IZ": 2913, + "ands": 2914, + "ably": 2915, + "Ġdistrib": 2916, + "Ġcur": 2917, + "erial": 2918, + "Ġdays": 2919, + "reated": 2920, + "rect": 2921, + "-l": 2922, + "irm": 2923, + "idden": 2924, + "omb": 2925, + "Ġinitial": 2926, + ".js": 2927, + "Ġâ": 2928, + "Query": 2929, + "Ġonline": 2930, + "imal": 2931, + ".con": 2932, + "au": 2933, + "Url": 2934, + "control": 2935, + "irection": 2936, + "Ġinstance": 2937, + "ORT": 2938, + "ĠFr": 2939, + "where": 2940, + "Ġjavax": 2941, + "Ġorgan": 2942, + "apter": 2943, + "Ġreason": 2944, + "options": 2945, + "59": 2946, + "ĠMar": 2947, + "(a": 2948, + "Ġwithin": 2949, + ".âĢĿĊĊ": 2950, + "ODE": 2951, + "_DE": 2952, + "admin": 2953, + "ended": 2954, + "Ġdesign": 2955, + "ĠData": 2956, + "une": 2957, + "ĠFile": 2958, + "root": 2959, + "Ġcent": 2960, + "Ġarr": 2961, + "_add": 2962, + "len": 2963, + "page": 2964, + ",'": 2965, + "_str": 2966, + "Ġbro": 2967, + "ability": 2968, + "outh": 2969, + "58": 2970, + "/c": 2971, + "pose": 2972, + "irtual": 2973, + "earch": 2974, + "_url": 2975, + "argin": 2976, + "Http": 2977, + "Ġschool": 2978, + "ava": 2979, + "Ġconsider": 2980, + ".label": 2981, + "ĠArray": 2982, + "42": 2983, + "web": 2984, + "opt": 2985, + ".println": 2986, + "ulation": 2987, + "Ġfunc": 2988, + "PL": 2989, + "Ġ\"\\": 2990, + "ĠText": 2991, + "actory": 2992, + "(function": 2993, + "null": 2994, + "Ġeng": 2995, + "down": 2996, + "Ġinclude": 2997, + "ĠEn": 2998, + "ĠDr": 2999, + "Ġdb": 3000, + "!!": 3001, + "side": 3002, + "Ġinit": 3003, + "quired": 3004, + "ĠShe": 3005, + "Column": 3006, + "react": 3007, + "Ġann": 3008, + "Ġstop": 3009, + "Ġlater": 3010, + "ĠThat": 3011, + "ention": 3012, + "df": 3013, + "UG": 3014, + "ILE": 3015, + "Ġclient": 3016, + "raft": 3017, + "ffer": 3018, + "POST": 3019, + "elper": 3020, + "Ġlove": 3021, + "quote": 3022, + "oud": 3023, + "Ġjson": 3024, + "Ġable": 3025, + "Ġmen": 3026, + "AX": 3027, + "ĠCopyright": 3028, + "ö": 3029, + "avig": 3030, + "req": 3031, + "Client": 3032, + "});Ċ": 3033, + ".Com": 3034, + "erc": 3035, + "ilt": 3036, + "pecial": 3037, + "_com": 3038, + "room": 3039, + ".Name": 3040, + "Ġgive": 3041, + "amb": 3042, + "ike": 3043, + "Ġcondition": 3044, + "client": 3045, + "ators": 3046, + ":\"": 3047, + "Ġcopy": 3048, + "uture": 3049, + "iversity": 3050, + "ernal": 3051, + "{{": 3052, + "ĠCan": 3053, + "ounc": 3054, + "do": 3055, + "Ġocc": 3056, + "Ġappro": 3057, + "thers": 3058, + "ze": 3059, + "Ġeither": 3060, + "ĠFl": 3061, + "Ġimportant": 3062, + "Ġlead": 3063, + "attr": 3064, + "ART": 3065, + "Equal": 3066, + "Ġda": 3067, + "etch": 3068, + "entity": 3069, + "Ġfamily": 3070, + "adding": 3071, + "Ġoption": 3072, + "Ġexist": 3073, + "ica": 3074, + "ĠObject": 3075, + "69": 3076, + "'ve": 3077, + "vers": 3078, + "itional": 3079, + "67": 3080, + "output": 3081, + "ĠTrue": 3082, + "ĠOF": 3083, + "_time": 3084, + "Ġoffer": 3085, + "Ġ});ĊĊ": 3086, + "HER": 3087, + "egin": 3088, + "\"\"": 3089, + "Ġwater": 3090, + "Ġche": 3091, + "ĠMy": 3092, + "ored": 3093, + "Ġstep": 3094, + "ances": 3095, + "CK": 3096, + "AY": 3097, + "à¸": 3098, + "struction": 3099, + "(C": 3100, + "300": 3101, + "ouch": 3102, + "Stream": 3103, + "active": 3104, + "ama": 3105, + "Entity": 3106, + "product": 3107, + "(){Ċ": 3108, + "Ġgovernment": 3109, + "ĠID": 3110, + "ajor": 3111, + "And": 3112, + "Ġdisplay": 3113, + "л": 3114, + "Ġtimes": 3115, + "Ġfour": 3116, + "Ġfar": 3117, + "Ġpresent": 3118, + "ĠNS": 3119, + "Ġ\\Ċ": 3120, + "uest": 3121, + "Ġbas": 3122, + "echo": 3123, + "child": 3124, + "ifier": 3125, + "Handler": 3126, + "Ġlib": 3127, + "Property": 3128, + "translation": 3129, + "Ġroom": 3130, + "Ġonce": 3131, + "Ġ[]": 3132, + "center": 3133, + "================================": 3134, + "Ġresults": 3135, + "Ġcontinue": 3136, + "Ġtalk": 3137, + "_get": 3138, + "Ġgrow": 3139, + ".sw": 3140, + "eb": 3141, + "ĠPublic": 3142, + "OP": 3143, + "ecute": 3144, + "ols": 3145, + "Ġ**": 3146, + "\");ĊĊ": 3147, + "Ġmass": 3148, + "ured": 3149, + ".class": 3150, + "omic": 3151, + "Ġmean": 3152, + "ips": 3153, + "Ġaut": 3154, + ");čĊčĊ": 3155, + "Ġuntil": 3156, + "Ġmarket": 3157, + "Ġarea": 3158, + "uit": 3159, + "Ġlength": 3160, + "ĠWith": 3161, + "structor": 3162, + "event": 3163, + "\"><": 3164, + "ĠSp": 3165, + "IV": 3166, + "Ġmus": 3167, + "iff": 3168, + "Ġkind": 3169, + "author": 3170, + "ounds": 3171, + "mb": 3172, + "_key": 3173, + "41": 3174, + "width": 3175, + "pository": 3176, + "Ġlight": 3177, + "uk": 3178, + "Row": 3179, + "ohn": 3180, + "alf": 3181, + "vironment": 3182, + "apper": 3183, + "ollections": 3184, + "Ġside": 3185, + "_info": 3186, + "Ġexample": 3187, + "imary": 3188, + "Ġwr": 3189, + "Ġcamp": 3190, + "cribe": 3191, + "255": 3192, + "\"/": 3193, + "Ġmiss": 3194, + "way": 3195, + "Ġbased": 3196, + "Ġplan": 3197, + "Vis": 3198, + "omain": 3199, + "unk": 3200, + "Ġaway": 3201, + "UP": 3202, + "": 3452, + "Ġden": 3453, + "obile": 3454, + "change": 3455, + "ĠĠĠĠĠĠĠĠĠĠĠĠĊ": 3456, + "ici": 3457, + "na": 3458, + "ĠForm": 3459, + "Ġsort": 3460, + "Select": 3461, + "pare": 3462, + "Ġthought": 3463, + "_con": 3464, + "Ġtask": 3465, + "ocus": 3466, + "ĠDE": 3467, + "ĠMin": 3468, + "Ġopt": 3469, + "ĉbreak": 3470, + "umer": 3471, + "KE": 3472, + "then": 3473, + "Ġdet": 3474, + "ĠTest": 3475, + "ports": 3476, + "Ġreview": 3477, + "('/": 3478, + "move": 3479, + "Ġswitch": 3480, + "ERT": 3481, + "patch": 3482, + "annot": 3483, + "ãĤ": 3484, + "Ġabove": 3485, + "itive": 3486, + "56": 3487, + "Ġquestion": 3488, + "ĠQu": 3489, + "ãĢĤĊĊ": 3490, + "gle": 3491, + "Ġword": 3492, + "Ġprovide": 3493, + "ĠReturn": 3494, + "Ġresearch": 3495, + "ão": 3496, + "ustr": 3497, + "Ġpublish": 3498, + "chema": 3499, + "}}": 3500, + "ĠCON": 3501, + "-in": 3502, + "allback": 3503, + "Ġcover": 3504, + "\\\\": 3505, + "color": 3506, + "ĠIS": 3507, + "Ġwhether": 3508, + "imate": 3509, + "isc": 3510, + "Bar": 3511, + "Ġdiv": 3512, + "Be": 3513, + "ourn": 3514, + "Ġhaving": 3515, + "lem": 3516, + "player": 3517, + "abs": 3518, + "amera": 3519, + "ney": 3520, + "Ġexc": 3521, + "gether": 3522, + "plied": 3523, + "ao": 3524, + "[$": 3525, + "Ġ++": 3526, + "ipe": 3527, + "show": 3528, + "/d": 3529, + "[:": 3530, + "agement": 3531, + "lev": 3532, + "_ID": 3533, + "97": 3534, + "rary": 3535, + "ades": 3536, + "_se": 3537, + "ause": 3538, + "Ġemploy": 3539, + "Ġ*/čĊ": 3540, + "Ġfre": 3541, + "Ġ'@": 3542, + "Ġcomplet": 3543, + "Ġlarge": 3544, + "ral": 3545, + "\\x": 3546, + "Ġfac": 3547, + ">": 3662, + "Ġface": 3663, + "CTION": 3664, + "Ġsave": 3665, + "Ġtyp": 3666, + "dev": 3667, + "(\"#": 3668, + "AGE": 3669, + "container": 3670, + "edit": 3671, + "QL": 3672, + "Ġitems": 3673, + "Ġsocial": 3674, + "ien": 3675, + "ĠReact": 3676, + ").ĊĊ": 3677, + "Ġmar": 3678, + "Ġredu": 3679, + "ĠRE": 3680, + ".put": 3681, + "Ġmajor": 3682, + "Cell": 3683, + "next": 3684, + "Ġexpected": 3685, + "Ġyet": 3686, + "Ġindiv": 3687, + "tributes": 3688, + "atis": 3689, + "amed": 3690, + "Ġfood": 3691, + "Source": 3692, + "(string": 3693, + "Ġ+Ċ": 3694, + "ites": 3695, + "dr": 3696, + "Ġmembers": 3697, + "Ġcomb": 3698, + "items": 3699, + "ĠPer": 3700, + "TH": 3701, + "=True": 3702, + "Ġbar": 3703, + "_SE": 3704, + "comm": 3705, + "(w": 3706, + ")ĊĊĊ": 3707, + "Ġsend": 3708, + "Ġinc": 3709, + "unsigned": 3710, + "FA": 3711, + "Ġparams": 3712, + "apping": 3713, + "ros": 3714, + "ugin": 3715, + "fa": 3716, + "Ġconnection": 3717, + "Ġ};ĊĊ": 3718, + "Ġbecome": 3719, + "Mode": 3720, + "Ġev": 3721, + "Ġdiff": 3722, + "ĠUnited": 3723, + "Height": 3724, + "fully": 3725, + "images": 3726, + "Ġmakes": 3727, + "Ġglobal": 3728, + "Ġcontact": 3729, + "':Ċ": 3730, + "Ġabs": 3731, + "аÐ": 3732, + "float": 3733, + "Ġexcept": 3734, + "ĠPol": 3735, + "Child": 3736, + "typ": 3737, + "Ġcertain": 3738, + "ión": 3739, + "OUT": 3740, + "Ġimpro": 3741, + "iles": 3742, + "Ġ-->Ċ": 3743, + "ĠPart": 3744, + "values": 3745, + "oss": 3746, + "/**": 3747, + "ilit": 3748, + "ĠEvent": 3749, + "curity": 3750, + "ster": 3751, + "Ġcharacter": 3752, + "198": 3753, + "Ġnews": 3754, + "Ġ\",": 3755, + "Ġdevice": 3756, + "cel": 3757, + "login": 3758, + "heet": 3759, + "Default": 3760, + "@\"": 3761, + "ĉĠ": 3762, + "click": 3763, + "(value": 3764, + "ĠAb": 3765, + "Ġprevious": 3766, + "ERROR": 3767, + "ocal": 3768, + "Ġmaterial": 3769, + "Ġbelow": 3770, + "ĠChrist": 3771, + "Ġmedia": 3772, + "cover": 3773, + "ĠUI": 3774, + "Ġfail": 3775, + "Ġblack": 3776, + "Ġcomponent": 3777, + "ĠAmerican": 3778, + "Ġadded": 3779, + "Ġbuy": 3780, + "stit": 3781, + "Ġcame": 3782, + "Ġdelete": 3783, + "property": 3784, + "oding": 3785, + "Ġcard": 3786, + "rops": 3787, + "Ġhttps": 3788, + "Ġroot": 3789, + "Ġhandle": 3790, + "CC": 3791, + "Back": 3792, + "emplate": 3793, + "Ġgetting": 3794, + "_by": 3795, + "mail": 3796, + "_sh": 3797, + ".assert": 3798, + "ĠDec": 3799, + "(true": 3800, + "Ġcomput": 3801, + "Ġclaim": 3802, + "'=>": 3803, + "ĠSub": 3804, + "Ġair": 3805, + "ops": 3806, + "nav": 3807, + "ements": 3808, + "(id": 3809, + "Ġenter": 3810, + "anged": 3811, + "End": 3812, + "Ġlocation": 3813, + "Ġnight": 3814, + "Ġdoing": 3815, + "ĠRed": 3816, + "lin": 3817, + "}ĊĊĊ": 3818, + "vider": 3819, + "Ġpick": 3820, + "Ġwatch": 3821, + "essages": 3822, + "Ġhuman": 3823, + "Ġdam": 3824, + "pend": 3825, + "dir": 3826, + "Ġtax": 3827, + "Ġgirl": 3828, + "reet": 3829, + "Ġbox": 3830, + "Ġstrong": 3831, + "(v": 3832, + "rel": 3833, + "Ġinterface": 3834, + "Ġmsg": 3835, + "fect": 3836, + "_at": 3837, + "Ġhouse": 3838, + "Ġtrack": 3839, + "');ĊĊ": 3840, + "je": 3841, + "ĠJohn": 3842, + "istr": 3843, + "(S": 3844, + "ube": 3845, + "Ġce": 3846, + "itted": 3847, + "VER": 3848, + "*)": 3849, + "parent": 3850, + "Ġapplication": 3851, + "any": 3852, + ".swing": 3853, + "Ġpack": 3854, + "\\u": 3855, + "Ġpract": 3856, + "Ġsection": 3857, + "ctx": 3858, + "Ġunsigned": 3859, + ".Point": 3860, + "ĠOne": 3861, + "ı": 3862, + "iple": 3863, + "aid": 3864, + "Ñĥ": 3865, + "Vector": 3866, + "byte": 3867, + "Ġwait": 3868, + "ĠÃł": 3869, + "Ã¥": 3870, + "Ġtogether": 3871, + "Ġthrows": 3872, + "FO": 3873, + "'))": 3874, + "host": 3875, + "ising": 3876, + ".view": 3877, + "Ġterms": 3878, + "framework": 3879, + "-r": 3880, + "Ġapply": 3881, + "Ġsession": 3882, + "Options": 3883, + "uggest": 3884, + "Ġothers": 3885, + "witter": 3886, + "Ġfund": 3887, + "Init": 3888, + "__(": 3889, + "ensor": 3890, + "GET": 3891, + "Ġseveral": 3892, + "ii": 3893, + "[j": 3894, + "IO": 3895, + "Ġtemplate": 3896, + "Position": 3897, + "Ġecon": 3898, + "achine": 3899, + "Ġil": 3900, + ".spring": 3901, + "main": 3902, + "elt": 3903, + "iment": 3904, + "Rec": 3905, + "mm": 3906, + "ĠUniversity": 3907, + "ursor": 3908, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 3909, + "GL": 3910, + "icture": 3911, + "ithub": 3912, + "cer": 3913, + "cast": 3914, + "From": 3915, + "ales": 3916, + "Ġsubject": 3917, + "password": 3918, + "ny": 3919, + "Ġesc": 3920, + ".write": 3921, + "ï¼Į": 3922, + "What": 3923, + ".H": 3924, + "Ġhistory": 3925, + "ĠFe": 3926, + "Ġindividual": 3927, + "unit": 3928, + "Ġ-->": 3929, + "Ġdu": 3930, + "IST": 3931, + "Ġusers": 3932, + "fs": 3933, + "false": 3934, + "unt": 3935, + "Title": 3936, + "Ġmot": 3937, + "Ġfuture": 3938, + "ached": 3939, + "Ġstarted": 3940, + "Ġmode": 3941, + "Ġ'<": 3942, + "_array": 3943, + "Ġax": 3944, + "'];Ċ": 3945, + "ires": 3946, + "There": 3947, + "ught": 3948, + "tml": 3949, + "posed": 3950, + "icult": 3951, + "Ġtook": 3952, + "Ġgames": 3953, + "Ġ}}": 3954, + "Ġ?>Ċ": 3955, + "Ġproducts": 3956, + "Is": 3957, + "Ġbad": 3958, + "ĠDes": 3959, + ".path": 3960, + "'ĊĊ": 3961, + "ĠPost": 3962, + "avel": 3963, + "(:": 3964, + "150": 3965, + "Ġneeds": 3966, + "Ġknown": 3967, + "Fl": 3968, + "Ġexec": 3969, + "Ġseen": 3970, + "51": 3971, + "ume": 3972, + "Ġborder": 3973, + "Ġlive": 3974, + "temp": 3975, + "Per": 3976, + "Ġvariable": 3977, + "iet": 3978, + "ĠDef": 3979, + "Ġge": 3980, + "eme": 3981, + "_back": 3982, + "first": 3983, + "Ġprovided": 3984, + "////////////////////////////////": 3985, + "Ġfilename": 3986, + "Ġhope": 3987, + "uly": 3988, + "auto": 3989, + "find": 3990, + "_string": 3991, + "btn": 3992, + "itude": 3993, + "Attribute": 3994, + "Ġyoung": 3995, + ".txt": 3996, + "Ġwebsite": 3997, + "ĠProp": 3998, + "Ġey": 3999, + ">();Ċ": 4000, + "ional": 4001, + "ARR": 4002, + "ictionary": 4003, + "urther": 4004, + ".": 4085, + "tx": 4086, + "Ġpur": 4087, + "uel": 4088, + "ymbol": 4089, + "uation": 4090, + "anger": 4091, + "Ġbackground": 4092, + "ecess": 4093, + "efined": 4094, + "........": 4095, + "Ġdescription": 4096, + "Ġrepresent": 4097, + "\"));Ċ": 4098, + "pression": 4099, + "rowser": 4100, + "Ġseries": 4101, + "wards": 4102, + "52": 4103, + "($_": 4104, + "aise": 4105, + "Ġhot": 4106, + "acity": 4107, + "ries": 4108, + "actions": 4109, + "Create": 4110, + "adio": 4111, + "amples": 4112, + "Ġoriginal": 4113, + "ensive": 4114, + "font": 4115, + "stream": 4116, + "using": 4117, + ".springframework": 4118, + "001": 4119, + "server": 4120, + "Ġbill": 4121, + "ACK": 4122, + "ilename": 4123, + "Ġframe": 4124, + "Ġ=Ċ": 4125, + "Edit": 4126, + "adius": 4127, + "Ġdraw": 4128, + "anks": 4129, + "Ġdeter": 4130, + "Ġcomes": 4131, + "_int": 4132, + "Ġforeach": 4133, + "angle": 4134, + "Ġelect": 4135, + "pected": 4136, + "Header": 4137, + "istration": 4138, + "False": 4139, + "ĠGame": 4140, + "Ġfilter": 4141, + "Activity": 4142, + "Ġlarg": 4143, + "inition": 4144, + "Ġ\"<": 4145, + "256": 4146, + "ised": 4147, + "Ġremove": 4148, + "ĠTrans": 4149, + "met": 4150, + "see": 4151, + "Format": 4152, + "Command": 4153, + "ĠEX": 4154, + "None": 4155, + "Ġfront": 4156, + "ASE": 4157, + "ĠRec": 4158, + "oundation": 4159, + "Ġvo": 4160, + "96": 4161, + "=\\\"": 4162, + "(*": 4163, + "Change": 4164, + ".Write": 4165, + "group": 4166, + "ients": 4167, + "uy": 4168, + "****************************************************************": 4169, + "Ġdig": 4170, + "hr": 4171, + "(-": 4172, + "Ġgen": 4173, + "number": 4174, + "vec": 4175, + "urope": 4176, + "entry": 4177, + "LL": 4178, + "Ġste": 4179, + "Valid": 4180, + "'],": 4181, + "_param": 4182, + "Ġselected": 4183, + "Ġaccording": 4184, + "ĠDis": 4185, + "Ġutil": 4186, + "Buffer": 4187, + "_error": 4188, + "Ġassoci": 4189, + "_SIZE": 4190, + "Ġwor": 4191, + "Ġprintf": 4192, + "rag": 4193, + "Âł": 4194, + "DD": 4195, + "ĠVal": 4196, + "Ġactiv": 4197, + "Eng": 4198, + "etime": 4199, + "Ġvirtual": 4200, + "aign": 4201, + "aur": 4202, + "ĠPres": 4203, + "ĠException": 4204, + "Ġanything": 4205, + "ĠOff": 4206, + "Ġhours": 4207, + "Ġwar": 4208, + "Args": 4209, + "aging": 4210, + "Ġmodels": 4211, + "ĠTime": 4212, + "Ob": 4213, + "ams": 4214, + "joy": 4215, + "Ġearly": 4216, + ".read": 4217, + "86": 4218, + "Ġcenter": 4219, + "ĠInitial": 4220, + "Ġlanguage": 4221, + "length": 4222, + "xy": 4223, + "Ġsn": 4224, + "Ġinf": 4225, + "Post": 4226, + "Ġago": 4227, + "Ġeasy": 4228, + "_code": 4229, + "ĠANY": 4230, + "_ch": 4231, + "Ġdownload": 4232, + "(T": 4233, + "aved": 4234, + "âĢĵ": 4235, + "Ġstudents": 4236, + "Ġfig": 4237, + "light": 4238, + "xx": 4239, + "Ġbuffer": 4240, + "ĠDep": 4241, + "ĠMath": 4242, + "ITH": 4243, + "Ġvari": 4244, + "Ġdue": 4245, + "Factory": 4246, + "Ġpor": 4247, + "Ġep": 4248, + "otype": 4249, + "Ġcannot": 4250, + "Ġwhite": 4251, + "čĊ": 4524, + ".annot": 4525, + "Ġcollection": 4526, + "'.": 4527, + "Ġsimilar": 4528, + "Ġtaken": 4529, + "(\"%": 4530, + "Order": 4531, + "']Ċ": 4532, + "-md": 4533, + "ĠTH": 4534, + "aced": 4535, + "Ġisn": 4536, + "/j": 4537, + "Ġson": 4538, + "graph": 4539, + "ĠInteger": 4540, + "Ġnecess": 4541, + "reen": 4542, + "Ġum": 4543, + "Ġ\\<": 4544, + "Ġmoment": 4545, + "Ġbring": 4546, + "Ġindic": 4547, + "ysis": 4548, + "Level": 4549, + "verse": 4550, + "urrenc": 4551, + "_test": 4552, + "Ġentire": 4553, + "Down": 4554, + "Ġ}ĊĊĊ": 4555, + "(result": 4556, + "ĠRead": 4557, + "è": 4558, + "Mod": 4559, + "Ġtrying": 4560, + "\"),Ċ": 4561, + "Ġmember": 4562, + "ĠCor": 4563, + "ODO": 4564, + "-control": 4565, + "untime": 4566, + "ĠSim": 4567, + "Dialog": 4568, + "plot": 4569, + "_on": 4570, + "Ġphys": 4571, + "}/": 4572, + "Ġnamespace": 4573, + "ĉčĊ": 4574, + "acc": 4575, + "Player": 4576, + "ARE": 4577, + "89": 4578, + "Ġfoot": 4579, + "Ġboard": 4580, + "part": 4581, + "Ġsus": 4582, + "wise": 4583, + "ĠMc": 4584, + "Ġpush": 4585, + "ATA": 4586, + "Ġplease": 4587, + "ried": 4588, + "weet": 4589, + "bit": 4590, + "ided": 4591, + "VE": 4592, + "ĠSw": 4593, + "UB": 4594, + "Ġtypes": 4595, + "edia": 4596, + "Ġclos": 4597, + "acebook": 4598, + "When": 4599, + "Ġedit": 4600, + "igger": 4601, + "Ġenerg": 4602, + "Container": 4603, + "Ġphot": 4604, + "ĠCount": 4605, + "ĠEurope": 4606, + ".Is": 4607, + "ĠRuss": 4608, + "peed": 4609, + "ĠStr": 4610, + "Ġpy": 4611, + "Ġcult": 4612, + "Ġdefined": 4613, + "ccount": 4614, + "Ġobt": 4615, + ".Location": 4616, + "Ġthread": 4617, + "ille": 4618, + "Ġinstead": 4619, + "strong": 4620, + "ĠSec": 4621, + "URE": 4622, + "Ġidea": 4623, + ".se": 4624, + "emy": 4625, + "selected": 4626, + "Connection": 4627, + "acing": 4628, + "thread": 4629, + ".next": 4630, + "Ġcoll": 4631, + "Ġfilm": 4632, + "istic": 4633, + "Ġcompet": 4634, + "Ġconn": 4635, + "though": 4636, + "Ġcompan": 4637, + "ocket": 4638, + "Ġteach": 4639, + "=(": 4640, + "Ġphone": 4641, + "Ġactive": 4642, + "79": 4643, + "delete": 4644, + "101": 4645, + "tries": 4646, + "Ġmo": 4647, + "Ġdeath": 4648, + "});ĊĊ": 4649, + "ocol": 4650, + "Widget": 4651, + "Ġarticle": 4652, + "rodu": 4653, + "andid": 4654, + "Ñĭ": 4655, + "ĠCr": 4656, + "ka": 4657, + "():": 4658, + "lood": 4659, + "ĉĉĉĊ": 4660, + "Ġalmost": 4661, + "Ġsell": 4662, + "ervlet": 4663, + "rip": 4664, + "Unit": 4665, + "Ġapplic": 4666, + "Ġconnect": 4667, + "Ġfeature": 4668, + "Ġvia": 4669, + "'),": 4670, + "Ġlim": 4671, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 4672, + "ĠGu": 4673, + "Engine": 4674, + "Ġens": 4675, + "Ġenvironment": 4676, + "block": 4677, + "HERE": 4678, + "NULL": 4679, + "gy": 4680, + "tag": 4681, + ")).": 4682, + "exp": 4683, + "Ġcompl": 4684, + "Ġinstall": 4685, + "Ġcomplete": 4686, + "queue": 4687, + "atural": 4688, + "Ġgeneral": 4689, + "thon": 4690, + "Ġasked": 4691, + "ores": 4692, + "(res": 4693, + "Ġreserved": 4694, + "SP": 4695, + "ĠâĢ¦": 4696, + "ÅĤ": 4697, + "Ġsignific": 4698, + "Off": 4699, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 4700, + "ĠAg": 4701, + "ĠJust": 4702, + "ĠError": 4703, + "Ġinfl": 4704, + "adata": 4705, + "Ġicon": 4706, + "asks": 4707, + "''": 4708, + "_LO": 4709, + "?.": 4710, + "account": 4711, + "Ġ(*": 4712, + "')ĊĊ": 4713, + "rap": 4714, + "_var": 4715, + "ĠFOR": 4716, + "Ġparty": 4717, + "ĠYour": 4718, + "cat": 4719, + "stry": 4720, + ".new": 4721, + "boot": 4722, + "ĠNov": 4723, + "Ġvector": 4724, + "Ġnormal": 4725, + "Ġfurther": 4726, + "Repository": 4727, + "800": 4728, + "Ġdatabase": 4729, + "attle": 4730, + "Ġmusic": 4731, + "Ġspeed": 4732, + "Ġdoc": 4733, + "process": 4734, + "IGHT": 4735, + ".parse": 4736, + "Ġtaking": 4737, + "Ġviol": 4738, + "ceed": 4739, + "ĠAfter": 4740, + "Ġforward": 4741, + "Ġcrit": 4742, + "\"/>Ċ": 4743, + "rot": 4744, + "Ġfailed": 4745, + "efore": 4746, + "Ġconcern": 4747, + "oe": 4748, + "ba": 4749, + "Ġsender": 4750, + "Ġterm": 4751, + "has": 4752, + "=\"#": 4753, + "Ġpotential": 4754, + "Num": 4755, + "Ġpublished": 4756, + ".close": 4757, + "ĠImage": 4758, + "straint": 4759, + "UD": 4760, + "ĠOb": 4761, + "Ġprobably": 4762, + "lim": 4763, + "\":Ċ": 4764, + "olume": 4765, + "Ġconsum": 4766, + "76": 4767, + "ague": 4768, + "ensions": 4769, + "Ġinvestig": 4770, + "-year": 4771, + "');": 4772, + "-sm": 4773, + "Ġenjoy": 4774, + "orig": 4775, + "ering": 4776, + "cp": 4777, + "leased": 4778, + "plements": 4779, + "Ġreturns": 4780, + "pat": 4781, + "BO": 4782, + "ĠHouse": 4783, + ".Label": 4784, + "Ġweight": 4785, + "ighb": 4786, + "Ġconditions": 4787, + "Ġexception": 4788, + "description": 4789, + "Ġtrad": 4790, + "-to": 4791, + "Ġ{}": 4792, + "Ġmodule": 4793, + "END": 4794, + ".ap": 4795, + ".props": 4796, + "Ġconstructor": 4797, + "aves": 4798, + "Ġfavor": 4799, + "ĠNow": 4800, + ";i": 4801, + "ĠMain": 4802, + "_k": 4803, + "eries": 4804, + "âĢĻll": 4805, + "transform": 4806, + "imestamp": 4807, + "Pre": 4808, + "Ġmer": 4809, + ".res": 4810, + "stant": 4811, + "Location": 4812, + "_NAME": 4813, + "Ġloss": 4814, + "ĠĊĊ": 4815, + "net": 4816, + "Ġengine": 4817, + "Block": 4818, + "Ġissues": 4819, + "Ġparse": 4820, + "ĠBar": 4821, + "Ġstay": 4822, + "ĠJSON": 4823, + "Ġdom": 4824, + "airs": 4825, + "wner": 4826, + "Ġlower": 4827, + "\",čĊ": 4828, + "ĠDem": 4829, + "ufact": 4830, + "Ġps": 4831, + "Ġperfect": 4832, + "RL": 4833, + "Ġeduc": 4834, + "ls": 4835, + "emory": 4836, + "ARRANT": 4837, + "uge": 4838, + "Ġexact": 4839, + ".key": 4840, + "alled": 4841, + "ech": 4842, + "ief": 4843, + "\\/": 4844, + "oke": 4845, + "Ġformer": 4846, + "alloc": 4847, + "Ġsix": 4848, + "ida": 4849, + "Ġmargin": 4850, + "Ġheart": 4851, + "ald": 4852, + "pack": 4853, + ".getElementById": 4854, + "ĠWARRANT": 4855, + "Ġrather": 4856, + "Ġbuilding": 4857, + "erman": 4858, + "lice": 4859, + "Ġquestions": 4860, + "izes": 4861, + "lege": 4862, + "irectory": 4863, + "Ġje": 4864, + "Ġcas": 4865, + "props": 4866, + "utf": 4867, + "Ġsecurity": 4868, + "Ġhowever": 4869, + "weight": 4870, + "Ġinside": 4871, + "Ġpresident": 4872, + "Char": 4873, + "ĠWITH": 4874, + ".map": 4875, + "Ġgraph": 4876, + "Ġtag": 4877, + "_status": 4878, + "Ġattempt": 4879, + "opp": 4880, + "uses": 4881, + "ĉconst": 4882, + "Ġround": 4883, + ",$": 4884, + "Ġfriends": 4885, + "Email": 4886, + "?>": 4887, + "Resource": 4888, + "KEY": 4889, + "osp": 4890, + ".query": 4891, + "ĠNorth": 4892, + "ables": 4893, + "istrib": 4894, + "_class": 4895, + "ello": 4896, + "That": 4897, + "к": 4898, + "pecially": 4899, + "ĠPresident": 4900, + "Ġcampaign": 4901, + "Ġalt": 4902, + "area": 4903, + "Ġchall": 4904, + "Ġopport": 4905, + ".Con": 4906, + "Ġenergy": 4907, + "like": 4908, + ".string": 4909, + "ington": 4910, + ")*": 4911, + "yy": 4912, + "Ġprofession": 4913, + "irth": 4914, + "Ġseg": 4915, + "æľ": 4916, + "Ġhor": 4917, + "iers": 4918, + "can": 4919, + "Ġbehind": 4920, + "Product": 4921, + "fg": 4922, + "ĠSk": 4923, + ".jpg": 4924, + "?:": 4925, + "];ĊĊ": 4926, + "Ġcallback": 4927, + "ĠHttp": 4928, + "ÑĮ": 4929, + "long": 4930, + "MS": 4931, + "ATH": 4932, + "Ġraise": 4933, + "Ġwanted": 4934, + "rown": 4935, + "utor": 4936, + "lt": 4937, + "]=": 4938, + "eline": 4939, + "MA": 4940, + "Ġsepar": 4941, + "cs": 4942, + "semb": 4943, + "Dis": 4944, + "bserv": 4945, + "ĠWill": 4946, + "Ġpolicy": 4947, + "Ġthird": 4948, + "phone": 4949, + "Ġbed": 4950, + "/g": 4951, + ".__": 4952, + "ĠInc": 4953, + "izing": 4954, + ".remove": 4955, + "instance": 4956, + ".type": 4957, + "Ġserv": 4958, + "Each": 4959, + "Ġhar": 4960, + "ĠMessage": 4961, + "(key": 4962, + "SELECT": 4963, + "Pos": 4964, + "));čĊ": 4965, + "Ġrecomm": 4966, + "Ġtraining": 4967, + "ĠEnt": 4968, + "ĠChar": 4969, + "icht": 4970, + "(file": 4971, + "Ġprior": 4972, + "Game": 4973, + "Ġexit": 4974, + "Params": 4975, + ".core": 4976, + "PC": 4977, + "nes": 4978, + "anced": 4979, + "(request": 4980, + "Password": 4981, + "}>Ċ": 4982, + "Ġmag": 4983, + "Ġrelease": 4984, + "Ġshall": 4985, + "udent": 4986, + "ĠSouth": 4987, + "ando": 4988, + ":'": 4989, + ".TabIndex": 4990, + "sk": 4991, + "anner": 4992, + "isset": 4993, + "Ġoutside": 4994, + "ledge": 4995, + "Ġå": 4996, + "ĠRob": 4997, + "Ġimm": 4998, + "!Ċ": 4999, + "ĠWeb": 5000, + "Des": 5001, + "BC": 5002, + "ancial": 5003, + "Route": 5004, + "Dec": 5005, + "ferences": 5006, + "Ġpurch": 5007, + "ĠModel": 5008, + "ctor": 5009, + "gn": 5010, + "_start": 5011, + "_un": 5012, + ".*": 5013, + "ises": 5014, + "Ġground": 5015, + "Ġunique": 5016, + "Ġbeaut": 5017, + "{\"": 5018, + "Ġpour": 5019, + "ĠOct": 5020, + "Ġtree": 5021, + "sets": 5022, + "_res": 5023, + "')->": 5024, + "_reg": 5025, + "(\"\\": 5026, + "Ġbyte": 5027, + "Bl": 5028, + "Ġdating": 5029, + "Ġmatter": 5030, + "ĠRem": 5031, + "Ġ'../": 5032, + "ĠAug": 5033, + "ĠLa": 5034, + "Ġ$(": 5035, + "ournal": 5036, + "111": 5037, + "iam": 5038, + "Ġshows": 5039, + "write": 5040, + "Ġball": 5041, + "Ġsimply": 5042, + "Ġfast": 5043, + "Ġmemory": 5044, + "ASS": 5045, + "ĠOf": 5046, + "oved": 5047, + "ante": 5048, + "aul": 5049, + "istry": 5050, + ")));Ċ": 5051, + "Ġfit": 5052, + "_": 5239, + "\")ĊĊ": 5240, + "ox": 5241, + "application": 5242, + "Ġ]Ċ": 5243, + "ĊĊĊĊĊĊ": 5244, + "180": 5245, + "Ġsoon": 5246, + "ctions": 5247, + "inger": 5248, + "Ġjoin": 5249, + "ĠPe": 5250, + "Ġë": 5251, + "Ġlas": 5252, + ".E": 5253, + "css": 5254, + "/or": 5255, + "ĠStart": 5256, + "ĠTO": 5257, + "Ġsubs": 5258, + "conn": 5259, + "components": 5260, + "DEBUG": 5261, + "quare": 5262, + "Function": 5263, + "endar": 5264, + ".index": 5265, + "Ġfill": 5266, + "ÄĻ": 5267, + "Ġchoose": 5268, + "how": 5269, + "ĠAmerica": 5270, + "assets": 5271, + "------------": 5272, + "ĠValue": 5273, + "Ġoffice": 5274, + "Ġveh": 5275, + "Ġtransform": 5276, + "ĠArt": 5277, + "Ġinde": 5278, + "Ġfn": 5279, + "Ġimplements": 5280, + "ango": 5281, + "plete": 5282, + "+\"": 5283, + "tmp": 5284, + "amily": 5285, + "Ġhash": 5286, + "missions": 5287, + "EST": 5288, + "gt": 5289, + "Provider": 5290, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 5291, + "Ġflag": 5292, + "Ġparticip": 5293, + "den": 5294, + "ĠReturns": 5295, + "Ġnote": 5296, + "ür": 5297, + "pm": 5298, + "ideos": 5299, + "Ġspecified": 5300, + "ĠEN": 5301, + "ester": 5302, + "olid": 5303, + "Ġupon": 5304, + "(std": 5305, + "ĉv": 5306, + "Ġ'\\": 5307, + "uz": 5308, + "Ġvert": 5309, + "Ġvict": 5310, + "ĉself": 5311, + "Ġ\"$": 5312, + "85": 5313, + ".k": 5314, + "Ġgroups": 5315, + "github": 5316, + "lang": 5317, + "Ġmut": 5318, + "TO": 5319, + "Ġve": 5320, + "ĠPlease": 5321, + ";ĊĊĊ": 5322, + "access": 5323, + "Ġ{\"": 5324, + "rea": 5325, + "Ġrisk": 5326, + "icker": 5327, + "oggle": 5328, + "ĉwhile": 5329, + "ANG": 5330, + ".send": 5331, + "72": 5332, + "Ġwoman": 5333, + "Ġgets": 5334, + "Ġign": 5335, + "ĠId": 5336, + "_log": 5337, + "ONE": 5338, + "Ġevid": 5339, + "ĠHar": 5340, + "_sub": 5341, + "Ġendl": 5342, + "Ġincluded": 5343, + "());ĊĊ": 5344, + "ĠAp": 5345, + "igr": 5346, + "Ġsem": 5347, + "ĠBlack": 5348, + "doc": 5349, + "_table": 5350, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 5351, + "-up": 5352, + "Ġcause": 5353, + "Ġ..": 5354, + "Ġvan": 5355, + "_dict": 5356, + "Ġfocus": 5357, + "IND": 5358, + "CESS": 5359, + ".Log": 5360, + "Ġmultiple": 5361, + "ido": 5362, + "Ġregard": 5363, + "-M": 5364, + "andler": 5365, + "ourse": 5366, + "Ġdeg": 5367, + ".U": 5368, + "Ġaddition": 5369, + "Ġvarious": 5370, + "Ġreceive": 5371, + "ен": 5372, + "ĠHT": 5373, + "Obj": 5374, + "DF": 5375, + "Ġincrease": 5376, + "ĠOpen": 5377, + "];": 5378, + "Ġcommit": 5379, + "?Ċ": 5380, + "ategories": 5381, + "atory": 5382, + "ship": 5383, + "ĠMich": 5384, + "Ġhtml": 5385, + "romise": 5386, + "Ġleave": 5387, + "Ġstrateg": 5388, + "aven": 5389, + "ĠConsole": 5390, + "known": 5391, + "-n": 5392, + "_LE": 5393, + ".component": 5394, + "Ġbre": 5395, + "Session": 5396, + "iance": 5397, + "Ġalign": 5398, + "typedef": 5399, + "_result": 5400, + "ĠWHERE": 5401, + ".split": 5402, + "Ġreading": 5403, + "FAULT": 5404, + "Ġclo": 5405, + "Ġnotice": 5406, + "_pr": 5407, + "arter": 5408, + "Ġlock": 5409, + "Ġstandard": 5410, + "etic": 5411, + "ellow": 5412, + "Ġpadding": 5413, + "ĠHis": 5414, + "Ġstates": 5415, + "_cast": 5416, + "(P": 5417, + "aa": 5418, + "Ġinternal": 5419, + "ean": 5420, + "ĠPRO": 5421, + "ĠKey": 5422, + "Ġespecially": 5423, + "ming": 5424, + "Ġcross": 5425, + "Ġnational": 5426, + "_object": 5427, + "filter": 5428, + "Ġscript": 5429, + ".update": 5430, + "_i": 5431, + "ĠAssert": 5432, + "/core": 5433, + "%%%%": 5434, + "Ġproblems": 5435, + "istor": 5436, + "Ġ.=": 5437, + "Ġarch": 5438, + "Ġwritten": 5439, + "Ġmilit": 5440, + "MENT": 5441, + ".ch": 5442, + "cape": 5443, + "ĠMus": 5444, + "_config": 5445, + "ĠAPI": 5446, + "foot": 5447, + "Ġimages": 5448, + "endl": 5449, + ".In": 5450, + "First": 5451, + "Ġplatform": 5452, + ".prot": 5453, + "Option": 5454, + "ste": 5455, + "ĠTODO": 5456, + "Ġforce": 5457, + ".cont": 5458, + "ĉecho": 5459, + "ĠDav": 5460, + "Ptr": 5461, + "(B": 5462, + "RT": 5463, + "ĠBase": 5464, + "]['": 5465, + "Ġannounc": 5466, + "console": 5467, + "ĠPy": 5468, + "ds": 5469, + ".as": 5470, + "Ġprevent": 5471, + "apan": 5472, + "Ġ{'": 5473, + "}'": 5709, + "Ġdead": 5710, + "VAL": 5711, + "QUE": 5712, + "************************************************************************": 5713, + "Ġcharg": 5714, + "Return": 5715, + "Ġful": 5716, + "dom": 5717, + "Ġrules": 5718, + "Ġmodify": 5719, + "Ġeval": 5720, + "ham": 5721, + "atement": 5722, + "\\<": 5723, + "ula": 5724, + "=False": 5725, + "RA": 5726, + "Ġcontains": 5727, + "74": 5728, + "Ġstack": 5729, + "mar": 5730, + "Ġ{}Ċ": 5731, + "Ġundefined": 5732, + "Ass": 5733, + "ĠChina": 5734, + "vey": 5735, + "*Ċ": 5736, + "Ġplaying": 5737, + ")/": 5738, + "actor": 5739, + "Ġbottom": 5740, + "lier": 5741, + "ĠNumber": 5742, + "Ġcouple": 5743, + "DC": 5744, + "ĠSO": 5745, + "gor": 5746, + ".setText": 5747, + "success": 5748, + "command": 5749, + "Filter": 5750, + "ĠOur": 5751, + "_item": 5752, + "Ġctx": 5753, + "Ġroad": 5754, + "Version": 5755, + "case": 5756, + "urt": 5757, + "avior": 5758, + "ych": 5759, + "sembly": 5760, + "ĠProduct": 5761, + "Ġheld": 5762, + "afe": 5763, + "Ġincludes": 5764, + "&": 5909, + "CON": 5910, + "Ġrepl": 5911, + "Ġregular": 5912, + "Storage": 5913, + "ramework": 5914, + "Ġgoal": 5915, + "Ġtouch": 5916, + ".widget": 5917, + "Ġbuilt": 5918, + "des": 5919, + "Part": 5920, + "(re": 5921, + "Ġworth": 5922, + "hib": 5923, + "game": 5924, + "91": 5925, + "192": 5926, + "Ġв": 5927, + "acion": 5928, + "ĠWhite": 5929, + "(type": 5930, + "(`": 5931, + "81": 5932, + "Ġnatural": 5933, + "Ġinj": 5934, + "Ġcalcul": 5935, + "ĠApril": 5936, + ".List": 5937, + "Ġassociated": 5938, + "ĉSystem": 5939, + "~~": 5940, + "=[": 5941, + "Ġstorage": 5942, + "Ġbytes": 5943, + "Ġtravel": 5944, + "Ġsou": 5945, + "Ġpassed": 5946, + "!=": 5947, + "ascript": 5948, + ".open": 5949, + "Ġgrid": 5950, + "Ġbus": 5951, + "Ġrecogn": 5952, + "Ab": 5953, + "Ġhon": 5954, + "ĠCenter": 5955, + "Ġprec": 5956, + "build": 5957, + "73": 5958, + "HTML": 5959, + "ĠSan": 5960, + "Ġcountries": 5961, + "aled": 5962, + "token": 5963, + "kt": 5964, + "Ġqual": 5965, + "Last": 5966, + "adow": 5967, + "Ġmanufact": 5968, + "idad": 5969, + "jango": 5970, + "Next": 5971, + "xf": 5972, + ".a": 5973, + "Ġporno": 5974, + "ĠPM": 5975, + "erve": 5976, + "iting": 5977, + "_th": 5978, + "ci": 5979, + "=None": 5980, + "gs": 5981, + "Ġlogin": 5982, + "atives": 5983, + "']);Ċ": 5984, + "Äħ": 5985, + "Ġill": 5986, + "IA": 5987, + "children": 5988, + "DO": 5989, + "Ġlevels": 5990, + "Ġ{{": 5991, + "Ġlooks": 5992, + "Ġ\"#": 5993, + "ToString": 5994, + "Ġnecessary": 5995, + "ĠĠĠĊ": 5996, + "cell": 5997, + "Entry": 5998, + "Ġ'#": 5999, + "Ġextrem": 6000, + "Selector": 6001, + "Ġplaceholder": 6002, + "Load": 6003, + "Ġreleased": 6004, + "ORE": 6005, + "Enumer": 6006, + "ĠTV": 6007, + "SET": 6008, + "inq": 6009, + "Press": 6010, + "ĠDepartment": 6011, + "Ġproperties": 6012, + "Ġrespond": 6013, + "Search": 6014, + "ael": 6015, + "Ġrequ": 6016, + "ĠBook": 6017, + "/Ċ": 6018, + "(st": 6019, + "Ġfinancial": 6020, + "icket": 6021, + "_input": 6022, + "Ġthreat": 6023, + "(in": 6024, + "Strip": 6025, + "ìĿ": 6026, + "ção": 6027, + "71": 6028, + "Ġevidence": 6029, + "));": 6030, + "ĠBro": 6031, + "Ġ[];Ċ": 6032, + "Ġou": 6033, + "buf": 6034, + "Script": 6035, + "dat": 6036, + "Ġrule": 6037, + "#import": 6038, + "=\"/": 6039, + "Serial": 6040, + "Ġstarting": 6041, + "[index": 6042, + "ae": 6043, + "Ġcontrib": 6044, + "session": 6045, + "_new": 6046, + "utable": 6047, + "ober": 6048, + "Ġ\"./": 6049, + "Ġlogger": 6050, + "Ġrecently": 6051, + "Ġreturned": 6052, + "ččĊ": 6053, + ")))Ċ": 6054, + "itions": 6055, + "Ġseek": 6056, + "Ġcommunic": 6057, + "Ġ\".": 6058, + "Ġusername": 6059, + "ECT": 6060, + "DS": 6061, + "Ġotherwise": 6062, + "ĠGerman": 6063, + ".aw": 6064, + "Adapter": 6065, + "ixel": 6066, + "Ġsystems": 6067, + "Ġdrop": 6068, + "83": 6069, + "Ġstructure": 6070, + "Ġ$(\"#": 6071, + "encies": 6072, + "anning": 6073, + "ĠLink": 6074, + "ĠResponse": 6075, + "Ġstri": 6076, + "ż": 6077, + "ĠDB": 6078, + "æĹ": 6079, + "android": 6080, + "submit": 6081, + "otion": 6082, + "92": 6083, + "(@": 6084, + ".test": 6085, + "82": 6086, + "ĊĊĊĊĊĊĊĊ": 6087, + "];čĊ": 6088, + "Ġdirectly": 6089, + "Ġ\"%": 6090, + "ris": 6091, + "elta": 6092, + "AIL": 6093, + "){čĊ": 6094, + "mine": 6095, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 6096, + "(k": 6097, + "bon": 6098, + "asic": 6099, + "pite": 6100, + "___": 6101, + "Max": 6102, + "Ġerrors": 6103, + "ĠWhile": 6104, + "Ġarguments": 6105, + "Ġensure": 6106, + "Right": 6107, + "-based": 6108, + "Web": 6109, + "Ġ-=": 6110, + "Ġintrodu": 6111, + "ĠInst": 6112, + "ĠWash": 6113, + "ordin": 6114, + "join": 6115, + "Database": 6116, + "Ġgrad": 6117, + "Ġusually": 6118, + "ITE": 6119, + "Props": 6120, + "?>Ċ": 6121, + "ĠGo": 6122, + "@Override": 6123, + "REF": 6124, + "Ġip": 6125, + "ĠAustral": 6126, + "Ġist": 6127, + "ViewById": 6128, + "Ġserious": 6129, + "Ġcustomer": 6130, + ".prototype": 6131, + "odo": 6132, + "cor": 6133, + "Ġdoor": 6134, + "ĠWITHOUT": 6135, + "Ġplant": 6136, + "Ġbegan": 6137, + "Ġdistance": 6138, + "()).": 6139, + "Ġchance": 6140, + "Ġord": 6141, + "came": 6142, + "pragma": 6143, + "Ġprotect": 6144, + "ragment": 6145, + "ĠNode": 6146, + "ening": 6147, + "Ñĩ": 6148, + "Ġroute": 6149, + "ĠSchool": 6150, + "hi": 6151, + "Ġneighb": 6152, + "After": 6153, + "licit": 6154, + "Ġcontr": 6155, + "Ġprimary": 6156, + "AA": 6157, + ".WriteLine": 6158, + "utils": 6159, + "Ġbi": 6160, + "Red": 6161, + ".Linq": 6162, + ".object": 6163, + "Ġleaders": 6164, + "unities": 6165, + "Ġgun": 6166, + "onth": 6167, + "ĠDev": 6168, + "FILE": 6169, + "Ġcomments": 6170, + "_len": 6171, + "arrow": 6172, + "amount": 6173, + "Range": 6174, + "sert": 6175, + "GridView": 6176, + "Ġupdated": 6177, + "ĠMo": 6178, + "Ġinform": 6179, + "ociety": 6180, + "ala": 6181, + "Access": 6182, + "Ġhab": 6183, + "Ġcreat": 6184, + "_arg": 6185, + "ĠJanuary": 6186, + "ĠDay": 6187, + "\")čĊ": 6188, + "uple": 6189, + "document": 6190, + "gorith": 6191, + "menu": 6192, + "ĠOver": 6193, + "bb": 6194, + ".title": 6195, + "_out": 6196, + "Ġled": 6197, + "uri": 6198, + "Ġ?>Ċ": 6235, + "run": 6236, + "Ġscene": 6237, + "(array": 6238, + "device": 6239, + "_title": 6240, + "agon": 6241, + "]čĊ": 6242, + "aby": 6243, + "Ġbecame": 6244, + "boolean": 6245, + "Ġpark": 6246, + "ĠCode": 6247, + "upload": 6248, + "riday": 6249, + "ĠSeptember": 6250, + "Fe": 6251, + "Ġsen": 6252, + "cing": 6253, + "FL": 6254, + "Col": 6255, + "uts": 6256, + "_page": 6257, + "inn": 6258, + "Ġimplied": 6259, + "aling": 6260, + "Ġyourself": 6261, + ".Count": 6262, + "conf": 6263, + "Ġaud": 6264, + "_init": 6265, + ".)": 6266, + "Ġwrote": 6267, + "003": 6268, + "NG": 6269, + ".Error": 6270, + "ä»": 6271, + ".for": 6272, + "Ġequal": 6273, + "ĠRequest": 6274, + "Ġserial": 6275, + "Ġallows": 6276, + "XX": 6277, + "Ġmiddle": 6278, + "chor": 6279, + "195": 6280, + "94": 6281, + "ø": 6282, + "erval": 6283, + ".Column": 6284, + "reading": 6285, + "Ġescort": 6286, + "ĠAugust": 6287, + "Ġquickly": 6288, + "Ġweap": 6289, + "ĠCG": 6290, + "ropri": 6291, + "ho": 6292, + "Ġcop": 6293, + "(struct": 6294, + "ĠBig": 6295, + "Ġvs": 6296, + "Ġfrequ": 6297, + ".Value": 6298, + "Ġactions": 6299, + "Ġproper": 6300, + "Ġinn": 6301, + "Ġobjects": 6302, + "Ġmatrix": 6303, + "avascript": 6304, + "Ġones": 6305, + ".group": 6306, + "Ġgreen": 6307, + "Ġpaint": 6308, + "ools": 6309, + "ycl": 6310, + "encode": 6311, + "olt": 6312, + "comment": 6313, + ".api": 6314, + "Dir": 6315, + "Ġune": 6316, + "izont": 6317, + ".position": 6318, + "Ġdesigned": 6319, + "_val": 6320, + "avi": 6321, + "iring": 6322, + "tab": 6323, + "Ġlayer": 6324, + "Ġviews": 6325, + "Ġreve": 6326, + "rael": 6327, + "ĠON": 6328, + "rics": 6329, + "160": 6330, + "np": 6331, + "Ġcore": 6332, + "());čĊ": 6333, + "Main": 6334, + "Ġexpert": 6335, + "ĉĉčĊ": 6336, + "_en": 6337, + "Ġ/>": 6338, + "utter": 6339, + "IAL": 6340, + "ails": 6341, + "ĠKing": 6342, + "*/ĊĊ": 6343, + "ĠMet": 6344, + "_end": 6345, + "addr": 6346, + "ora": 6347, + "Ġir": 6348, + "Min": 6349, + "Ġsurpr": 6350, + "Ġrepe": 6351, + "Ġdirectory": 6352, + "PUT": 6353, + "-S": 6354, + "Ġelection": 6355, + "haps": 6356, + ".pre": 6357, + "cm": 6358, + "Values": 6359, + "Ġ\"Ċ": 6360, + "column": 6361, + "ivil": 6362, + "Login": 6363, + "inue": 6364, + "93": 6365, + "Ġbeautiful": 6366, + "Ġsecret": 6367, + "(event": 6368, + "Ġchat": 6369, + "ums": 6370, + "Ġorigin": 6371, + "Ġeffects": 6372, + "Ġmanagement": 6373, + "illa": 6374, + "tk": 6375, + "Ġsetting": 6376, + "ĠCour": 6377, + "Ġmassage": 6378, + "ĉend": 6379, + "Ġhappy": 6380, + "Ġfinish": 6381, + "Ġcamera": 6382, + "ĠVer": 6383, + "ĠDemocr": 6384, + "ĠHer": 6385, + "(Q": 6386, + "cons": 6387, + "ita": 6388, + "Ġ'.": 6389, + "{}": 6390, + "ĉC": 6391, + "Ġstuff": 6392, + "194": 6393, + "Ġ:Ċ": 6394, + "ĠAR": 6395, + "Task": 6396, + "hidden": 6397, + "eros": 6398, + "IGN": 6399, + "atio": 6400, + "ĠHealth": 6401, + "olute": 6402, + "Enter": 6403, + "'>": 6404, + "ĠTwitter": 6405, + "ĠCounty": 6406, + "scribe": 6407, + "Ġ=>Ċ": 6408, + "Ġhy": 6409, + "fit": 6410, + "Ġmilitary": 6411, + "Ġsale": 6412, + "required": 6413, + "non": 6414, + "bootstrap": 6415, + "hold": 6416, + "rim": 6417, + "-old": 6418, + "ĠDown": 6419, + "Ġmention": 6420, + "contact": 6421, + "_group": 6422, + "oday": 6423, + "Ġtown": 6424, + "Ġsolution": 6425, + "uate": 6426, + "elling": 6427, + "]->": 6428, + "otes": 6429, + "ental": 6430, + "omen": 6431, + "ospital": 6432, + "ĠSup": 6433, + "_EN": 6434, + "Ġslow": 6435, + "SESSION": 6436, + "Ġblue": 6437, + "ago": 6438, + "Ġlives": 6439, + "Ġ^": 6440, + ".un": 6441, + "inst": 6442, + "enge": 6443, + "Ġcustomers": 6444, + "Ġcast": 6445, + "udget": 6446, + "ï¼ģ": 6447, + "icens": 6448, + "Ġdetermin": 6449, + "Selected": 6450, + "_pl": 6451, + "ueue": 6452, + "Ġdark": 6453, + "//ĊĊ": 6454, + "si": 6455, + "thern": 6456, + "ĠJapan": 6457, + "/w": 6458, + "PU": 6459, + "ĠEast": 6460, + "ovie": 6461, + "Ġpackage": 6462, + "Ġnor": 6463, + "Ġapi": 6464, + "bot": 6465, + "\"];Ċ": 6466, + "_post": 6467, + "ulate": 6468, + "Ġclub": 6469, + "'));Ċ": 6470, + "Ġloop": 6471, + "PIO": 6472, + "ione": 6473, + "shot": 6474, + "Initial": 6475, + "Ġplayed": 6476, + "register": 6477, + "rought": 6478, + "_max": 6479, + "acement": 6480, + "match": 6481, + "raphics": 6482, + "AST": 6483, + "Ġexisting": 6484, + "Ġcomplex": 6485, + "DA": 6486, + ".Ch": 6487, + ".common": 6488, + "mo": 6489, + "Ġ'../../": 6490, + "ito": 6491, + "Ġanalysis": 6492, + "Ġdeliver": 6493, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ": 6494, + "idx": 6495, + "Ãł": 6496, + "ongo": 6497, + "ĠEnglish": 6498, + "Ċ": 10197, + "_default": 10198, + "ĠDatabase": 10199, + "rep": 10200, + "ESS": 10201, + "nergy": 10202, + ".Find": 10203, + "_mask": 10204, + "Ġrise": 10205, + "Ġkernel": 10206, + "::$": 10207, + ".Q": 10208, + "Ġoffering": 10209, + "decl": 10210, + "ĠCS": 10211, + "Ġlisted": 10212, + "Ġmostly": 10213, + "enger": 10214, + "Ġblocks": 10215, + "olo": 10216, + "Ġgoverning": 10217, + "\\F": 10218, + "Ġconcent": 10219, + ".getText": 10220, + "Ġmb": 10221, + "Ġoccurred": 10222, + "Ġchanging": 10223, + "Scene": 10224, + "_CODE": 10225, + "Beh": 10226, + "\"The": 10227, + "Ġtile": 10228, + "ĠAssociation": 10229, + "ĉP": 10230, + "alty": 10231, + "_ad": 10232, + "odies": 10233, + "iated": 10234, + "Ġprepared": 10235, + "possible": 10236, + "Ġmort": 10237, + "TEST": 10238, + "142": 10239, + "Ġignore": 10240, + "Ġcalc": 10241, + "Ġrs": 10242, + "ĠassertEquals": 10243, + "Ġsz": 10244, + "ĠTHIS": 10245, + ".\"Ċ": 10246, + "Ġcanvas": 10247, + "java": 10248, + "Ġdut": 10249, + "VALID": 10250, + ".sql": 10251, + ".input": 10252, + "Ġaux": 10253, + "Sup": 10254, + "Ġartist": 10255, + "Vec": 10256, + "_TIME": 10257, + ".stringify": 10258, + "etween": 10259, + "ĠCategory": 10260, + "Ġ[-": 10261, + "ĠDevExpress": 10262, + "ĠJul": 10263, + "Ġring": 10264, + ".ed": 10265, + "YY": 10266, + "Let": 10267, + "TextField": 10268, + "Ġflat": 10269, + "_print": 10270, + "ĠOTHER": 10271, + "adian": 10272, + "Ġchecked": 10273, + "ele": 10274, + "Align": 10275, + "standing": 10276, + "Ġ[],": 10277, + "Ġlab": 10278, + "ucky": 10279, + "ĠChristmas": 10280, + "(image": 10281, + ".module": 10282, + "Ġlots": 10283, + "Ġslightly": 10284, + "(final": 10285, + "erge": 10286, + "è¿": 10287, + "147": 10288, + "ĠPolice": 10289, + "143": 10290, + "ĠRight": 10291, + "Ġaward": 10292, + "ĠOS": 10293, + "Ġ{}ĊĊ": 10294, + "Ġptr": 10295, + "oves": 10296, + "icated": 10297, + "ем": 10298, + "Ġmanage": 10299, + "oliday": 10300, + "Amount": 10301, + "oolStrip": 10302, + "tbody": 10303, + "Nav": 10304, + "wrap": 10305, + "BB": 10306, + "Ġwatching": 10307, + "arios": 10308, + "Ġoptional": 10309, + "_K": 10310, + "ĠLicensed": 10311, + ".Map": 10312, + "Timer": 10313, + "ĠAP": 10314, + "ĠRev": 10315, + "(o": 10316, + ",c": 10317, + "umin": 10318, + "etailed": 10319, + "ĠHy": 10320, + "Ġblank": 10321, + "agger": 10322, + "ĠSelf": 10323, + "()[": 10324, + ".make": 10325, + "earn": 10326, + "channel": 10327, + ";Ċ": 10342, + "World": 10343, + "Ġpython": 10344, + "Ġlif": 10345, + "Ġtrav": 10346, + "Ġconven": 10347, + "company": 10348, + "ĠClub": 10349, + "138": 10350, + "Ver": 10351, + "Btn": 10352, + "Ġzone": 10353, + "products": 10354, + "ĠEduc": 10355, + "Ġverify": 10356, + "ĠMil": 10357, + "ono": 10358, + "]);ĊĊ": 10359, + "ENCE": 10360, + "Ġpacket": 10361, + "Ġcer": 10362, + "Ġenumer": 10363, + "Ġpars": 10364, + "formed": 10365, + "Ġoccup": 10366, + "tre": 10367, + "Ġexercise": 10368, + "Day": 10369, + "_sum": 10370, + "Ġasking": 10371, + "aption": 10372, + "Ġorders": 10373, + "Ġspending": 10374, + "ĠERR": 10375, + ".Dis": 10376, + "ĠUtil": 10377, + "âĢľI": 10378, + "\\'": 10379, + "?)": 10380, + "/>Ċ": 10381, + "Ġemot": 10382, + "Ġinfluence": 10383, + "ĠAfrica": 10384, + "atters": 10385, + "Ùħ": 10386, + ".session": 10387, + "Ġchief": 10388, + "ĉĉĉĉĉĉĉĉĉĉĉ": 10389, + "Ġtom": 10390, + "cluded": 10391, + "serial": 10392, + "_handler": 10393, + ".Type": 10394, + "aped": 10395, + "Ġpolicies": 10396, + "-ex": 10397, + "-tr": 10398, + "blank": 10399, + "merce": 10400, + "Ġcoverage": 10401, + "Ġrc": 10402, + "_matrix": 10403, + "_box": 10404, + "Ġcharges": 10405, + "ĠBoston": 10406, + "Pe": 10407, + "Ġcircum": 10408, + "Ġfilled": 10409, + "148": 10410, + "Ġnorth": 10411, + "ictureBox": 10412, + "ĉres": 10413, + "è®": 10414, + "Ġtermin": 10415, + "Ġ[âĢ¦": 10416, + "IRECT": 10417, + "Ġber": 10418, + "Ġ\"../../": 10419, + "retch": 10420, + ".code": 10421, + "_col": 10422, + "ĠGovernment": 10423, + "Ġargv": 10424, + "ĠLord": 10425, + "asi": 10426, + "Exec": 10427, + "ĉlet": 10428, + "vertis": 10429, + "Ġdiscussion": 10430, + "enance": 10431, + "outube": 10432, + "typeof": 10433, + "Ġserved": 10434, + "ĠPut": 10435, + "ĉx": 10436, + "Ġsweet": 10437, + "Before": 10438, + "ategy": 10439, + ".of": 10440, + "ĠMaterial": 10441, + "Sort": 10442, + "ONT": 10443, + "igital": 10444, + "Why": 10445, + "Ġsust": 10446, + "Ġç": 10447, + "abet": 10448, + "Ġsegment": 10449, + "Ġ[],Ċ": 10450, + "ĠMuslim": 10451, + "ĠfindViewById": 10452, + "cut": 10453, + "_TEXT": 10454, + "ĠMary": 10455, + "Ġloved": 10456, + "Ġlie": 10457, + "ĠJO": 10458, + "Ġisset": 10459, + "month": 10460, + "Ġprime": 10461, + "ti": 10462, + "ĠCarol": 10463, + "Use": 10464, + "146": 10465, + "ĠPop": 10466, + "ĠSave": 10467, + "Interval": 10468, + "execute": 10469, + "dy": 10470, + "ĠIran": 10471, + "_cont": 10472, + "ĉT": 10473, + "Ġphase": 10474, + "checkbox": 10475, + "week": 10476, + "Ġhide": 10477, + "Ġtil": 10478, + "Ġju": 10479, + "Custom": 10480, + "burg": 10481, + "/M": 10482, + "TON": 10483, + "Ġquant": 10484, + "Ġrub": 10485, + "ixels": 10486, + "Ġinstalled": 10487, + "Ġdump": 10488, + "Ġproperly": 10489, + "(List": 10490, + "Ġdecide": 10491, + "apply": 10492, + "Has": 10493, + "Ġkeeping": 10494, + "Ġcitizens": 10495, + "Ġjoint": 10496, + "pool": 10497, + "Socket": 10498, + "_op": 10499, + "Ġweapon": 10500, + "gnore": 10501, + "ĠExec": 10502, + "otten": 10503, + "ĠMS": 10504, + "Ġ(-": 10505, + "ĠReview": 10506, + "Ġexamples": 10507, + "Ġtight": 10508, + "!(": 10509, + "DP": 10510, + "ĠMessageBox": 10511, + "Ġphotograph": 10512, + "164": 10513, + "URI": 10514, + "ét": 10515, + "low": 10516, + "ĠGrand": 10517, + ".persistence": 10518, + "Ġmaintain": 10519, + "Ġnums": 10520, + "Ġzip": 10521, + "ials": 10522, + "ĠGets": 10523, + "peg": 10524, + "ĠBuffer": 10525, + "~~~~": 10526, + "rastructure": 10527, + "ĠPL": 10528, + "uen": 10529, + "obby": 10530, + "sizeof": 10531, + "Ġpic": 10532, + "Ġseed": 10533, + "Ġexperienced": 10534, + "Ġodd": 10535, + "Ġkick": 10536, + "Ġprocedure": 10537, + "avigator": 10538, + "-on": 10539, + ",j": 10540, + "ĠAlthough": 10541, + "ĠuserId": 10542, + "accept": 10543, + "Blue": 10544, + "IColor": 10545, + "layer": 10546, + "available": 10547, + "Ġends": 10548, + ".table": 10549, + "Ġdataset": 10550, + "bus": 10551, + "Ġexplain": 10552, + "(pro": 10553, + "ĠCommittee": 10554, + "Ġnoted": 10555, + "]:Ċ": 10556, + "Dim": 10557, + "stdio": 10558, + "154": 10559, + ".\",Ċ": 10560, + "_source": 10561, + "181": 10562, + "ĠWeek": 10563, + "ĠEdge": 10564, + "Ġoperating": 10565, + "Ġeste": 10566, + "ipl": 10567, + "330": 10568, + "agination": 10569, + "Ġproceed": 10570, + "Ġanimation": 10571, + ".Models": 10572, + "ĠWatch": 10573, + "iat": 10574, + "Ġoppon": 10575, + "/A": 10576, + "Report": 10577, + "Ġsounds": 10578, + "_buf": 10579, + "IELD": 10580, + "Ġbund": 10581, + "ĉget": 10582, + ".pr": 10583, + "(tmp": 10584, + "Ġkid": 10585, + ">ĊĊĊ": 10586, + "Ġyang": 10587, + "NotFound": 10588, + "ÑĨ": 10589, + "math": 10590, + "@gmail": 10591, + "ĠLIMIT": 10592, + "redients": 10593, + "Ġvent": 10594, + "avigate": 10595, + "Look": 10596, + "Ġreligious": 10597, + "Ġrand": 10598, + "rio": 10599, + "(GL": 10600, + "_ip": 10601, + "uan": 10602, + "iciency": 10603, + "ĠChange": 10604, + ">čĊčĊ": 10605, + "ĠEntity": 10606, + "Ġrencontre": 10607, + "ĠRet": 10608, + "plan": 10609, + "én": 10610, + "BOOL": 10611, + "uries": 10612, + "train": 10613, + "Definition": 10614, + "============": 10615, + "zz": 10616, + "450": 10617, + "Animation": 10618, + "ĠOK": 10619, + "_menu": 10620, + ".bl": 10621, + "_score": 10622, + "Ġacad": 10623, + "(System": 10624, + "Ġrefresh": 10625, + "'=>$": 10626, + ".Graphics": 10627, + "amento": 10628, + "pid": 10629, + "tc": 10630, + "Ġtips": 10631, + "Ġhomes": 10632, + "Ġfuel": 10633, + "âĸ": 10634, + "_helper": 10635, + "ĠĠčĊ": 10636, + "ĠRoom": 10637, + ".Close": 10638, + "_attr": 10639, + "ĠMount": 10640, + "ĠEv": 10641, + "arser": 10642, + "_top": 10643, + "eah": 10644, + "ĠDelete": 10645, + "ãĢį": 10646, + "uke": 10647, + "Ġusage": 10648, + "aria": 10649, + "_dev": 10650, + "Ġtexture": 10651, + "Ġconversation": 10652, + "eper": 10653, + "Bean": 10654, + "done": 10655, + "nonatomic": 10656, + "ĠSecond": 10657, + "Ġshooting": 10658, + "_pre": 10659, + "Components": 10660, + "Ġ]ĊĊ": 10661, + "__,": 10662, + "stitution": 10663, + ".Char": 10664, + ">();ĊĊ": 10665, + "Ġpresented": 10666, + "Ġwa": 10667, + "oker": 10668, + "-ĊĊ": 10669, + "iner": 10670, + "Ġbecoming": 10671, + "Ġincident": 10672, + "Att": 10673, + "162": 10674, + "Ġrevealed": 10675, + "forc": 10676, + "Ġboot": 10677, + ".page": 10678, + "Enumerator": 10679, + "165": 10680, + "_->": 10681, + "Photo": 10682, + "Ġspring": 10683, + ".\",": 10684, + "ĠDictionary": 10685, + "BJECT": 10686, + "Ġlocations": 10687, + "Ġsamples": 10688, + "InputStream": 10689, + "ĠBrown": 10690, + "Ġstats": 10691, + "quality": 10692, + "Ñħ": 10693, + "-dis": 10694, + "Ġhelping": 10695, + "Ġped": 10696, + "224": 10697, + "(se": 10698, + "ĠWho": 10699, + "alian": 10700, + "internal": 10701, + "Ġft": 10702, + ">().": 10703, + "->{": 10704, + "Ġmine": 10705, + "Ġsector": 10706, + "Ġgro": 10707, + "Ġopportunities": 10708, + "Ġü": 10709, + "Ġmp": 10710, + "Ġalleged": 10711, + "Ġdoubt": 10712, + "Mouse": 10713, + "About": 10714, + "_part": 10715, + "Ġchair": 10716, + "Ġstopped": 10717, + "161": 10718, + "loop": 10719, + "entities": 10720, + "Ġapps": 10721, + "ansion": 10722, + "Ġmental": 10723, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 10724, + "FR": 10725, + "Ġdefend": 10726, + "care": 10727, + "Ġideal": 10728, + "/api": 10729, + "urface": 10730, + "011": 10731, + "Ġele": 10732, + "ulator": 10733, + "ĠRights": 10734, + "anguages": 10735, + "Ġfunds": 10736, + "Ġadapt": 10737, + "Attributes": 10738, + "Ġdeploy": 10739, + "opts": 10740, + "Ġvalidation": 10741, + "Ġconcerns": 10742, + "uce": 10743, + ".num": 10744, + "ulture": 10745, + "ila": 10746, + "Ġcup": 10747, + "Ġpure": 10748, + ".Fore": 10749, + "183": 10750, + "ĠHashMap": 10751, + ".valueOf": 10752, + "asm": 10753, + "MO": 10754, + "Ġcs": 10755, + "Ġstores": 10756, + "Ġ************************************************************************": 10757, + "Ġcommunication": 10758, + "mem": 10759, + ".EventHandler": 10760, + ".Status": 10761, + "_right": 10762, + ".setOn": 10763, + "Sheet": 10764, + "Ġidentify": 10765, + "enerated": 10766, + "ordered": 10767, + "Ġ\"[": 10768, + "Ġswe": 10769, + "Condition": 10770, + "ĠAccording": 10771, + "Ġprepare": 10772, + "Ġrob": 10773, + "Pool": 10774, + "Ġsport": 10775, + "rv": 10776, + "ĠRouter": 10777, + "Ġalternative": 10778, + "([]": 10779, + "ĠChicago": 10780, + "ipher": 10781, + "ische": 10782, + "ĠDirector": 10783, + "kl": 10784, + "ĠWil": 10785, + "keys": 10786, + "Ġmysql": 10787, + "Ġwelcome": 10788, + "king": 10789, + "ĠManager": 10790, + "Ġcaught": 10791, + ")}Ċ": 10792, + "Score": 10793, + "_PR": 10794, + "Ġsurvey": 10795, + "hab": 10796, + "Headers": 10797, + "ADER": 10798, + "Ġdecor": 10799, + "Ġturns": 10800, + "Ġradius": 10801, + "errupt": 10802, + "Cor": 10803, + "Ġmel": 10804, + "Ġintr": 10805, + "(q": 10806, + "ĠAC": 10807, + "amos": 10808, + "MAX": 10809, + "ĠGrid": 10810, + "ĠJesus": 10811, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 10812, + ".DE": 10813, + "Ġts": 10814, + "Ġlinked": 10815, + "free": 10816, + "ĠQt": 10817, + "Ġ/**čĊ": 10818, + "Ġfaster": 10819, + "ctr": 10820, + "_J": 10821, + "DT": 10822, + ".Check": 10823, + "Ġcombination": 10824, + "Ġintended": 10825, + "-the": 10826, + "-type": 10827, + "182": 10828, + "ectors": 10829, + "ami": 10830, + "uting": 10831, + "Ġuma": 10832, + "XML": 10833, + "UCT": 10834, + "Ap": 10835, + "ĠRandom": 10836, + "Ġran": 10837, + ".sort": 10838, + "Ġsorted": 10839, + ".Un": 10840, + "401": 10841, + "_PER": 10842, + "itory": 10843, + "Ġpriority": 10844, + "ĠGal": 10845, + "ĠOld": 10846, + "hot": 10847, + "ĠDisplay": 10848, + "(sub": 10849, + "_TH": 10850, + "_Y": 10851, + "ĠCare": 10852, + "loading": 10853, + "Kind": 10854, + "_handle": 10855, + ",,": 10856, + "rase": 10857, + "_replace": 10858, + ".addEventListener": 10859, + "ĠRT": 10860, + "172": 10861, + "Ġentered": 10862, + "gers": 10863, + "Ġich": 10864, + "(start": 10865, + "205": 10866, + "/app": 10867, + "Ġbrother": 10868, + "Memory": 10869, + "Outlet": 10870, + "Ġutf": 10871, + "prec": 10872, + "Ġnavigation": 10873, + "ORK": 10874, + "Ġdst": 10875, + "Detail": 10876, + "Ġaudience": 10877, + "Ġdur": 10878, + "Ġcluster": 10879, + "unched": 10880, + "Ġ],": 10881, + "Ġcomfortable": 10882, + ".values": 10883, + "ĠTotal": 10884, + "Ġsnap": 10885, + "Ġstandards": 10886, + "Ġperformed": 10887, + "hand": 10888, + "(\"@": 10889, + "åŃ": 10890, + "Ġphil": 10891, + "ibr": 10892, + "trim": 10893, + "Ġforget": 10894, + "157": 10895, + "Ġdoctor": 10896, + ".TextBox": 10897, + "377": 10898, + "icons": 10899, + ",s": 10900, + "ĠOp": 10901, + "Sm": 10902, + "Stop": 10903, + "ĉList": 10904, + "ĉu": 10905, + "Comment": 10906, + "_VERSION": 10907, + ".Xtra": 10908, + "Person": 10909, + "rb": 10910, + "LOB": 10911, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ": 10912, + "ĠCentral": 10913, + "270": 10914, + "ICK": 10915, + "raq": 10916, + "Ġputting": 10917, + "Ġmd": 10918, + "ĠLove": 10919, + "Program": 10920, + "Border": 10921, + "oor": 10922, + "Ġallowing": 10923, + "after": 10924, + "Ġentries": 10925, + "ĠMaybe": 10926, + "]).": 10927, + "ĠShort": 10928, + ")\\": 10929, + ".now": 10930, + "friend": 10931, + "Ġprefer": 10932, + "ĠGPIO": 10933, + "osis": 10934, + "ĠGameObject": 10935, + "Ġskip": 10936, + "Ġcompetition": 10937, + "_match": 10938, + "lications": 10939, + "_CONT": 10940, + ".groupBox": 10941, + "Ġals": 10942, + "666": 10943, + "\"We": 10944, + "_eq": 10945, + "lan": 10946, + "_search": 10947, + "ĠMusic": 10948, + "asis": 10949, + "Ġbind": 10950, + "ĠIsland": 10951, + "rum": 10952, + "(E": 10953, + "Ġseat": 10954, + "Video": 10955, + "Ġack": 10956, + "reek": 10957, + "={()": 10958, + "Ġrating": 10959, + "Ġrestaurant": 10960, + "456": 10961, + "DEX": 10962, + "(buf": 10963, + "pping": 10964, + "uality": 10965, + "Ġleague": 10966, + "176": 10967, + "Ġfocused": 10968, + "apon": 10969, + "$data": 10970, + "CLUD": 10971, + "CLUDING": 10972, + "Ġabsolute": 10973, + "(query": 10974, + "Ġtells": 10975, + "Ang": 10976, + "Ġcommunities": 10977, + "Ġhonest": 10978, + "oking": 10979, + "Ġapart": 10980, + "arity": 10981, + "/$": 10982, + "_module": 10983, + "ĠEnc": 10984, + ".an": 10985, + ".Config": 10986, + "Cre": 10987, + "Ġshock": 10988, + "ĠArab": 10989, + "IENT": 10990, + "/re": 10991, + "Ġretrie": 10992, + "ycler": 10993, + "isa": 10994, + "ĠOrgan": 10995, + ".graph": 10996, + "Ġí": 10997, + "ĠBAS": 10998, + "Enum": 10999, + "Ġpossibly": 11000, + "ÑĢаÐ": 11001, + "ĠJapanese": 11002, + "Ġcraft": 11003, + "ĠPlace": 11004, + "Ġtalent": 11005, + "Ġfunding": 11006, + "Ġconfirmed": 11007, + "Ġcycle": 11008, + "/x": 11009, + "GE": 11010, + "Ġhearing": 11011, + "Ġplants": 11012, + "Ġmouth": 11013, + "pages": 11014, + "oria": 11015, + "ĠRemove": 11016, + "_total": 11017, + "Ġod": 11018, + "ollapse": 11019, + "door": 11020, + "Ġbought": 11021, + "Ġaddr": 11022, + "ARCH": 11023, + "_dim": 11024, + "dden": 11025, + "Ġdecades": 11026, + "REQUEST": 11027, + "Ġversions": 11028, + "fire": 11029, + "006": 11030, + "Ġmoves": 11031, + "fb": 11032, + "Ġcoffee": 11033, + ".connect": 11034, + "ĠRow": 11035, + "Ġschema": 11036, + "Scope": 11037, + "-Type": 11038, + "Ġfighting": 11039, + "Ġretail": 11040, + "Ġmodified": 11041, + "TF": 11042, + "Files": 11043, + "nie": 11044, + "_command": 11045, + "stone": 11046, + "ĠÑĤ": 11047, + "_thread": 11048, + "Ġbond": 11049, + "ĠDevelopment": 11050, + "Ġpt": 11051, + "FORM": 11052, + "plet": 11053, + "Ġidentified": 11054, + "cpp": 11055, + "206": 11056, + "225": 11057, + "Ġcoding": 11058, + "oked": 11059, + "ĠMaster": 11060, + "IDTH": 11061, + "Ġresidents": 11062, + "redit": 11063, + "ĠPhoto": 11064, + "=-": 11065, + "unte": 11066, + "ateur": 11067, + "159": 11068, + "_STATE": 11069, + "ĠSing": 11070, + "Ġsheet": 11071, + ".val": 11072, + "orse": 11073, + "Ġhers": 11074, + "Ġdetermined": 11075, + "Common": 11076, + "Ġwed": 11077, + "_queue": 11078, + "PH": 11079, + "ĠAtl": 11080, + "cred": 11081, + "/LICENSE": 11082, + "Ġmes": 11083, + "Ġadvanced": 11084, + ".java": 11085, + ".Sh": 11086, + "Go": 11087, + "kill": 11088, + "fp": 11089, + "_settings": 11090, + "Ġpal": 11091, + "Ġtruck": 11092, + "Ġcombined": 11093, + "Ġ\"${": 11094, + "ĠCorpor": 11095, + "Ġjoined": 11096, + "ĠJose": 11097, + "ĠCup": 11098, + "uns": 11099, + "estival": 11100, + "levision": 11101, + "Ġbroken": 11102, + "Ġmarriage": 11103, + "ĠWestern": 11104, + "Ġrepresents": 11105, + "ĠTitle": 11106, + "Ġss": 11107, + ".Ass": 11108, + "ongoose": 11109, + "iento": 11110, + "<>();Ċ": 11111, + "Ġabsolutely": 11112, + "Ġsmooth": 11113, + "TERN": 11114, + "ĠUnless": 11115, + "Word": 11116, + "Ġmerge": 11117, + "igan": 11118, + "ĠVol": 11119, + "Ġnn": 11120, + ".getId": 11121, + "Ġз": 11122, + "171": 11123, + "Ġsexy": 11124, + "Ġseeking": 11125, + "Single": 11126, + ".this": 11127, + "179": 11128, + "Ġkom": 11129, + "bound": 11130, + ";\"": 11131, + "ĠfontSize": 11132, + "_df": 11133, + "Ġinjury": 11134, + "(H": 11135, + "Ġissued": 11136, + "_END": 11137, + ":self": 11138, + "020": 11139, + "Ġpatch": 11140, + "Ġleaves": 11141, + "Ġadopt": 11142, + "FileName": 11143, + "ãĢIJ": 11144, + "Ġexecutive": 11145, + "ĠByte": 11146, + "]))Ċ": 11147, + "Ġnu": 11148, + "outing": 11149, + "cluding": 11150, + "-R": 11151, + ".options": 11152, + "Ġsubstant": 11153, + "avax": 11154, + "ĠBUT": 11155, + "Ġtechnical": 11156, + "Ġtwice": 11157, + "Ġmás": 11158, + "Ġunivers": 11159, + "yr": 11160, + "Ġdrag": 11161, + "ĠDC": 11162, + "Ġsed": 11163, + "Ġbot": 11164, + "ĠPal": 11165, + "ĠHall": 11166, + "forcement": 11167, + "Ġauch": 11168, + ".mod": 11169, + "notation": 11170, + "_files": 11171, + ".line": 11172, + "_flag": 11173, + "[name": 11174, + "Ġresolution": 11175, + "Ġbott": 11176, + "(\"[": 11177, + "ende": 11178, + "(arr": 11179, + "Free": 11180, + "(@\"": 11181, + "ĠDistrict": 11182, + "PEC": 11183, + ":-": 11184, + "Picker": 11185, + "ĠJo": 11186, + "ĠĠĠĠĠĊ": 11187, + "ĠRiver": 11188, + "_rows": 11189, + "Ġhelpful": 11190, + "Ġmassive": 11191, + "---Ċ": 11192, + "Ġmeasures": 11193, + "007": 11194, + "ĠRuntime": 11195, + "Ġworry": 11196, + "ĠSpec": 11197, + "ĉD": 11198, + "ãĢij": 11199, + "Ġ){Ċ": 11200, + "Ġworse": 11201, + "(filename": 11202, + "Ġlay": 11203, + "Ġmagic": 11204, + "ĠTheir": 11205, + "oul": 11206, + "stroy": 11207, + "ĠWhere": 11208, + "280": 11209, + "Ġsudden": 11210, + "Ġdefe": 11211, + "Ġbinding": 11212, + "Ġflight": 11213, + "ĠOnInit": 11214, + "ĠWomen": 11215, + "ĠPolicy": 11216, + "Ġdrugs": 11217, + "ishing": 11218, + "('../": 11219, + "ĠMel": 11220, + "peat": 11221, + "tor": 11222, + "Ġproposed": 11223, + "Ġstated": 11224, + "_RES": 11225, + "Ġeast": 11226, + "212": 11227, + "ĠCONDITION": 11228, + "_desc": 11229, + "Ġwinning": 11230, + "folio": 11231, + "Mapper": 11232, + "ĠPan": 11233, + "ĠAnge": 11234, + ".servlet": 11235, + "Ġcopies": 11236, + "LM": 11237, + "Ġvm": 11238, + "åį": 11239, + "Ġdictionary": 11240, + "Seg": 11241, + "177": 11242, + "elines": 11243, + "ĠSend": 11244, + "Ġiron": 11245, + "ĠFort": 11246, + "166": 11247, + ".domain": 11248, + "Ġdebate": 11249, + "NotNull": 11250, + "eq": 11251, + "acher": 11252, + "lf": 11253, + "ĉfmt": 11254, + "Ġlawy": 11255, + "178": 11256, + "ÄŁ": 11257, + "ĠMen": 11258, + "Ġtrim": 11259, + "(NULL": 11260, + "Ġ!!": 11261, + "Ġpad": 11262, + "Ġfollows": 11263, + "\"][\"": 11264, + "requ": 11265, + "ĠEp": 11266, + ".github": 11267, + "(img": 11268, + "eto": 11269, + "('\\": 11270, + "Services": 11271, + "umbnail": 11272, + "_main": 11273, + "pleted": 11274, + "fortunately": 11275, + "Ġwindows": 11276, + "Ġplane": 11277, + "ĠConnection": 11278, + ".local": 11279, + "uard": 11280, + "}\\": 11281, + "==\"": 11282, + "andon": 11283, + "ĠRoy": 11284, + "west": 11285, + "158": 11286, + "iginal": 11287, + "emies": 11288, + "itz": 11289, + "'):Ċ": 11290, + "ĠPeter": 11291, + "Ġtough": 11292, + "Ġreduced": 11293, + "Ġcalculate": 11294, + "Ġrapid": 11295, + "customer": 11296, + "Ġefficient": 11297, + "Ġmedium": 11298, + "Ġfell": 11299, + ".ref": 11300, + "ĠCas": 11301, + "Ġfeedback": 11302, + "Speed": 11303, + "(output": 11304, + "aje": 11305, + "Ġcategories": 11306, + "Ġfee": 11307, + "};": 11308, + "Ġdeleted": 11309, + "reh": 11310, + "Ġproof": 11311, + "Desc": 11312, + "Build": 11313, + "Ġsides": 11314, + ".ArrayList": 11315, + "-%": 11316, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 11317, + "ر": 11318, + ".match": 11319, + "ли": 11320, + "Ġfeels": 11321, + "Ġachieve": 11322, + "Ġclim": 11323, + "_ON": 11324, + "ĠCD": 11325, + "Ġteacher": 11326, + "_current": 11327, + "bn": 11328, + "_PL": 11329, + "isting": 11330, + "Enable": 11331, + "GEN": 11332, + "Ġtv": 11333, + "Ġsock": 11334, + "Ġplays": 11335, + "Ġdiscount": 11336, + "ĠKE": 11337, + "ĠDebug": 11338, + "Fore": 11339, + "ĠIraq": 11340, + "Ġappearance": 11341, + "Mon": 11342, + "Ġstyled": 11343, + "ĠHuman": 11344, + "iot": 11345, + "ĠHistory": 11346, + "Ġsac": 11347, + "ĠCollection": 11348, + "Ġrecommended": 11349, + ".Selected": 11350, + "Ġorganizations": 11351, + "Ġdiscovered": 11352, + "cohol": 11353, + "adas": 11354, + "ĠThomas": 11355, + "May": 11356, + "Ġconserv": 11357, + "Ġdomin": 11358, + "ĠFollow": 11359, + "ĠSection": 11360, + "ĠThanks": 11361, + "Username": 11362, + "Ġrecipe": 11363, + "Ġwonderful": 11364, + ".sleep": 11365, + "_if": 11366, + "ĉĊĉĊ": 11367, + "orno": 11368, + "Ġru": 11369, + "_target": 11370, + ".\"\"": 11371, + "à¦": 11372, + "EventArgs": 11373, + "Ġinputs": 11374, + "Ġfif": 11375, + "Ġvision": 11376, + "cy": 11377, + "ĠSeries": 11378, + ")(((": 11379, + "Ġtrading": 11380, + "Ġmarker": 11381, + "Begin": 11382, + "Ġtypically": 11383, + "Ġcauses": 11384, + "dropdown": 11385, + "_DEBUG": 11386, + "260": 11387, + "Ġdetect": 11388, + "country": 11389, + "!\");Ċ": 11390, + "ĉR": 11391, + "appy": 11392, + "Ġcref": 11393, + "('<": 11394, + "\"=>": 11395, + "ĠLE": 11396, + "reader": 11397, + "Ġadministr": 11398, + "õ": 11399, + "ucket": 11400, + "Ġfashion": 11401, + ".char": 11402, + "izar": 11403, + "Ġdisable": 11404, + "Ġsuc": 11405, + "ĠLive": 11406, + "issue": 11407, + "Ġmetadata": 11408, + "flags": 11409, + "ĠðŁ": 11410, + "Ġcommitted": 11411, + "Ġva": 11412, + "Ġrough": 11413, + "Ġ'''Ċ": 11414, + "Ġhighlight": 11415, + "_vars": 11416, + "VO": 11417, + "Ġencoding": 11418, + "-Z": 11419, + "_sign": 11420, + "$(\"#": 11421, + "Ġrain": 11422, + "reatest": 11423, + "ĠEND": 11424, + "Selection": 11425, + "Ġcandidates": 11426, + "Ġsav": 11427, + ".Empty": 11428, + "Ġdecisions": 11429, + "Ġcollabor": 11430, + "ridge": 11431, + "feed": 11432, + "ression": 11433, + "Ġpersons": 11434, + "VM": 11435, + "008": 11436, + "ega": 11437, + "_BIT": 11438, + "According": 11439, + "acked": 11440, + "Ġdollars": 11441, + "_loss": 11442, + "ĠCost": 11443, + "}\"Ċ": 11444, + "Notification": 11445, + "Ġprostit": 11446, + "Ġauthority": 11447, + ".rec": 11448, + "Ġspokes": 11449, + "ĠToday": 11450, + "istant": 11451, + "ĠHead": 11452, + "âĢĿ.": 11453, + "ertainment": 11454, + "cean": 11455, + "culate": 11456, + "Ġven": 11457, + "However": 11458, + "_arr": 11459, + "Ġtokens": 11460, + "Graph": 11461, + "ĠJud": 11462, + "ĠVirgin": 11463, + "ĠSerial": 11464, + "unning": 11465, + "Mutable": 11466, + "agers": 11467, + ".csv": 11468, + "Ġdeveloping": 11469, + "Ġinstructions": 11470, + "Ġpromise": 11471, + "Ġrequested": 11472, + "_encode": 11473, + "/\"": 11474, + "ĠIcon": 11475, + "uilt": 11476, + "-day": 11477, + "Ġintelligence": 11478, + ".IS": 11479, + "ĠObservable": 11480, + "ĠHard": 11481, + "Bool": 11482, + "211": 11483, + "idential": 11484, + ".Anchor": 11485, + "Ġselling": 11486, + "CI": 11487, + "AGES": 11488, + "tle": 11489, + "bur": 11490, + "UFFER": 11491, + "RY": 11492, + "Ġbigger": 11493, + "Ġrat": 11494, + "Ġfamous": 11495, + "Ġtypename": 11496, + "Ġexplained": 11497, + "}}Ċ": 11498, + "Ġnuclear": 11499, + "-N": 11500, + "Ġcrisis": 11501, + "ĠEnter": 11502, + "Ġanswers": 11503, + "/${": 11504, + "/pl": 11505, + "Ġsequ": 11506, + "_next": 11507, + "mask": 11508, + "Ġstanding": 11509, + "Ġplenty": 11510, + "ĠCross": 11511, + "ĉret": 11512, + "dro": 11513, + "ĠCast": 11514, + "167": 11515, + "=true": 11516, + "ĠChris": 11517, + "icio": 11518, + "ĠMike": 11519, + "Decimal": 11520, + "addComponent": 11521, + "Len": 11522, + "Ġcock": 11523, + "Ġ#{": 11524, + "URN": 11525, + "": 11657, + "Ġ*=": 11658, + "ĠPS": 11659, + "Ġdangerous": 11660, + "[p": 11661, + "OME": 11662, + "Other": 11663, + "ĠStringBuilder": 11664, + "Points": 11665, + "heading": 11666, + "Ġcurrency": 11667, + "Ġpercentage": 11668, + "_API": 11669, + "Ġclassic": 11670, + "thead": 11671, + "ĠMO": 11672, + "FE": 11673, + "Idx": 11674, + "await": 11675, + "Ġè": 11676, + "Ġaccident": 11677, + "Ġvariant": 11678, + "Ġmyst": 11679, + "ĠLand": 11680, + "ĠBre": 11681, + "Ġharm": 11682, + "ĠAcc": 11683, + "Ġcharged": 11684, + "iones": 11685, + "Visibility": 11686, + "arry": 11687, + "ĠLanguage": 11688, + "Ġwalking": 11689, + "\".ĊĊ": 11690, + "ifer": 11691, + "Ġleadership": 11692, + ".From": 11693, + "ynam": 11694, + "Ġtimestamp": 11695, + "ipt": 11696, + "ĠHas": 11697, + "REFER": 11698, + "ĠIts": 11699, + "Ġlistener": 11700, + "UTE": 11701, + "213": 11702, + "_description": 11703, + "Ġexperiences": 11704, + "Ġcreates": 11705, + "RS": 11706, + "cart": 11707, + "black": 11708, + "Ġchoices": 11709, + "war": 11710, + "750": 11711, + "Ġ'''": 11712, + "Ġordered": 11713, + "Ġevening": 11714, + "Ġpil": 11715, + "Ġtun": 11716, + "ĠBad": 11717, + "(app": 11718, + "random": 11719, + "Ġexplicit": 11720, + "Ġarrived": 11721, + "Ġfly": 11722, + "Ġeconom": 11723, + "-mail": 11724, + "Ġlists": 11725, + "Ġarchitect": 11726, + "234": 11727, + "ĠPay": 11728, + "Ġds": 11729, + "ĠSol": 11730, + "Ġvehicles": 11731, + "Hz": 11732, + "-com": 11733, + "Ġking": 11734, + "_equal": 11735, + "ĠHelp": 11736, + "Ġabuse": 11737, + "480": 11738, + "169": 11739, + "--;Ċ": 11740, + "Ġextr": 11741, + "Ġchemical": 11742, + "ä¿": 11743, + "Ġorient": 11744, + "Ġbreath": 11745, + "ĠSpace": 11746, + "(element": 11747, + "wait": 11748, + "DED": 11749, + "igma": 11750, + "Ġentr": 11751, + "Ġsob": 11752, + "-name": 11753, + "Ġaffected": 11754, + "ika": 11755, + "Ġcoal": 11756, + "_work": 11757, + "Ġhundreds": 11758, + "Ġpolitics": 11759, + "subject": 11760, + "Ġconsumer": 11761, + "ANGE": 11762, + "Ġrepeated": 11763, + "Send": 11764, + "Ġ#[": 11765, + "Ġprotocol": 11766, + "Ġleads": 11767, + "useum": 11768, + "Every": 11769, + "808": 11770, + "174": 11771, + "Import": 11772, + "(count": 11773, + "Ġchallenges": 11774, + "Ġnovel": 11775, + "Ġdepart": 11776, + "bits": 11777, + ".Current": 11778, + "Ġ`${": 11779, + "oting": 11780, + "(\\": 11781, + "Ġcreative": 11782, + "Ġbuff": 11783, + "Ġintroduced": 11784, + "usic": 11785, + "modules": 11786, + "Are": 11787, + "-doc": 11788, + "language": 11789, + "_cache": 11790, + "Ġtod": 11791, + "?>{{": 12026, + "ĠResource": 12027, + "ĠStandard": 12028, + "ĠPrem": 12029, + "updated": 12030, + "ivalent": 12031, + "Ġassets": 12032, + "_temp": 12033, + "Ġinterests": 12034, + "Ġhardware": 12035, + "ĠRom": 12036, + "ĠShare": 12037, + "Ġ''Ċ": 12038, + "Ġ*,": 12039, + "ĠTake": 12040, + "ĠImages": 12041, + "_CHECK": 12042, + "(typeof": 12043, + "ĠJun": 12044, + "\\<^": 12045, + "Ġliqu": 12046, + "Ġworst": 12047, + "ymbols": 12048, + "ĉĉĉĠĠĠ": 12049, + "Ġdrivers": 12050, + "ĠDocument": 12051, + "eno": 12052, + "ĠTechnology": 12053, + "Ġapproved": 12054, + "umps": 12055, + "Ġsnow": 12056, + "formance": 12057, + "_ASSERT": 12058, + "uits": 12059, + "207": 12060, + "ÙĨ": 12061, + "Ġdifferences": 12062, + ".Visible": 12063, + "ĉĉĉčĊ": 12064, + "ĠPs": 12065, + "_fetch": 12066, + "Ġtodo": 12067, + ".',Ċ": 12068, + "Ġsel": 12069, + "urers": 12070, + "invalid": 12071, + "Ġtweet": 12072, + "VEL": 12073, + "Ġresearchers": 12074, + "Ġsprintf": 12075, + "ĠRO": 12076, + "Ġpel": 12077, + ".Trans": 12078, + "Ġillegal": 12079, + "dialog": 12080, + "smarty": 12081, + "lg": 12082, + "_MIN": 12083, + "Ġhero": 12084, + "final": 12085, + "Ġpp": 12086, + ".Le": 12087, + "Ġci": 12088, + "ĉRT": 12089, + "Ġsuggested": 12090, + "pdf": 12091, + "aching": 12092, + "ĠRo": 12093, + "ĠProperties": 12094, + "ĠSi": 12095, + "Ġbuying": 12096, + "Ġmu": 12097, + "Ġlands": 12098, + "ifiers": 12099, + "ĠFILE": 12100, + "ROUP": 12101, + "Ġholder": 12102, + "ĠSon": 12103, + "Ġsympt": 12104, + ".route": 12105, + ")?": 12106, + "Ġargc": 12107, + "Ġfort": 12108, + "Ġcasino": 12109, + "_category": 12110, + "Ġforum": 12111, + "215": 12112, + "prefix": 12113, + "apture": 12114, + "Tube": 12115, + "ems": 12116, + "imize": 12117, + "Ġnue": 12118, + "aus": 12119, + "course": 12120, + "ATOR": 12121, + "()),": 12122, + "Advertis": 12123, + "INGS": 12124, + "Ġacknow": 12125, + "ĠKorea": 12126, + "pling": 12127, + "Ġworker": 12128, + "PLIED": 12129, + "hal": 12130, + "ĠRichard": 12131, + "Elements": 12132, + "ĉĉĉĠ": 12133, + "star": 12134, + "Ġrelationships": 12135, + "Ġcheap": 12136, + "ACH": 12137, + "ĠXML": 12138, + ",&": 12139, + "ĠLouis": 12140, + "Ġride": 12141, + "_FAIL": 12142, + "Ġchunk": 12143, + "[s": 12144, + "_OUT": 12145, + "Ġchosen": 12146, + "_[": 12147, + "/(": 12148, + "ĠJeff": 12149, + "_sl": 12150, + "priv": 12151, + "ĠCanadian": 12152, + "Ġunable": 12153, + "_FLAG": 12154, + "Ġnos": 12155, + "high": 12156, + "Ġlift": 12157, + "fun": 12158, + "(){": 12159, + "elly": 12160, + "yclerView": 12161, + "_as": 12162, + "_LIST": 12163, + "Ġradi": 12164, + ".getValue": 12165, + "304": 12166, + "ĠAngeles": 12167, + "ĠSpan": 12168, + "_instance": 12169, + "itors": 12170, + "208": 12171, + "Ġmigration": 12172, + "AK": 12173, + "Oh": 12174, + "®": 12175, + ".selected": 12176, + "ĠGT": 12177, + "Ġadvance": 12178, + "ĠStyle": 12179, + ".DataGridView": 12180, + "ection": 12181, + "Ñİ": 12182, + "pio": 12183, + "rog": 12184, + "Ġshopping": 12185, + "ĠRect": 12186, + "Illuminate": 12187, + "OU": 12188, + "ĉarray": 12189, + "Ġsubstantial": 12190, + "Ġpregn": 12191, + "Ġpromote": 12192, + "IEW": 12193, + ".Layout": 12194, + "Ġsigns": 12195, + "/.": 12196, + "Ġletters": 12197, + "Board": 12198, + "ctrl": 12199, + "\"\\": 12200, + "ĠJones": 12201, + "Ġvertex": 12202, + "Ġja": 12203, + "Ġaffili": 12204, + "Ġwealth": 12205, + "ĉdefault": 12206, + "Ġsignificantly": 12207, + "Ġec": 12208, + "Ġxs": 12209, + "actual": 12210, + ".per": 12211, + "_step": 12212, + "anvas": 12213, + "mac": 12214, + "Ġtransl": 12215, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 12216, + "Iterator": 12217, + "Ġoch": 12218, + "agnostic": 12219, + "ĠDuring": 12220, + "ĠDEFAULT": 12221, + "Ġtill": 12222, + "Ġsignature": 12223, + "Ġbird": 12224, + "ĠOl": 12225, + "310": 12226, + "ĠIr": 12227, + "HS": 12228, + "avatar": 12229, + "ESSAGE": 12230, + "Ġelev": 12231, + "Ġmt": 12232, + "ĠNav": 12233, + "Ġrelax": 12234, + "Ġplate": 12235, + "ITEM": 12236, + "(date": 12237, + ".not": 12238, + "Ġgrade": 12239, + "Ġ}),Ċ": 12240, + "?\"ĊĊ": 12241, + "iences": 12242, + "High": 12243, + "ĠDIS": 12244, + "231": 12245, + "disabled": 12246, + "QUI": 12247, + "Ġnoise": 12248, + "aux": 12249, + "ĠUP": 12250, + "888": 12251, + "osa": 12252, + "Ġvoc": 12253, + "Ġ))": 12254, + "ocom": 12255, + "_OFF": 12256, + "ĠDb": 12257, + "Lock": 12258, + ".eclipse": 12259, + ",d": 12260, + "ĠDraw": 12261, + "Ġ\"(": 12262, + "Ġvisited": 12263, + "ĠâĪ": 12264, + "Ġsucceed": 12265, + "Ġimpossible": 12266, + "aire": 12267, + "ĠTurn": 12268, + "Ġdish": 12269, + "FG": 12270, + "Ġsensor": 12271, + "ANN": 12272, + "aba": 12273, + "Ġsurg": 12274, + "]);čĊ": 12275, + "Ġfp": 12276, + "_an": 12277, + "-J": 12278, + "-G": 12279, + "ĠJob": 12280, + "Convert": 12281, + "ĠKEY": 12282, + "Ġauthors": 12283, + "_server": 12284, + "\\r": 12285, + "Ġ-*-": 12286, + "flex": 12287, + "Ġsoc": 12288, + "Ret": 12289, + "Ġsalt": 12290, + "ĠâĢ¦ĊĊ": 12291, + "ĠClear": 12292, + "(page": 12293, + "-danger": 12294, + "Ġrooms": 12295, + "conv": 12296, + "#{": 12297, + ".op": 12298, + "ĠArea": 12299, + "_SC": 12300, + "hen": 12301, + "Ġbegins": 12302, + "-y": 12303, + "Ġexcited": 12304, + "Ġignored": 12305, + "Ġbonus": 12306, + "student": 12307, + "ĠMember": 12308, + "Ġrelatively": 12309, + "ĠLow": 12310, + "ĠProdu": 12311, + "ateway": 12312, + "posure": 12313, + "Ġthick": 12314, + "aniel": 12315, + "(view": 12316, + "ĠCrush": 12317, + "Extension": 12318, + "Il": 12319, + "eed": 12320, + "LOC": 12321, + ".im": 12322, + ".Items": 12323, + "Ġconflict": 12324, + ".prevent": 12325, + "252": 12326, + "ĠonCreate": 12327, + "uv": 12328, + "iser": 12329, + "Ġwave": 12330, + "Mar": 12331, + "ĠCommunity": 12332, + "iche": 12333, + "ĠNothing": 12334, + "[m": 12335, + "ĠLee": 12336, + "riends": 12337, + "232": 12338, + "ère": 12339, + "!!!": 12340, + "anz": 12341, + ".result": 12342, + "ĠSK": 12343, + "_PARAM": 12344, + "Ġdemocr": 12345, + "BackColor": 12346, + ".exists": 12347, + "\"It": 12348, + "(options": 12349, + "razy": 12350, + "aser": 12351, + "\\Database": 12352, + "alendar": 12353, + "_ass": 12354, + ";}Ċ": 12355, + "vertex": 12356, + "inecraft": 12357, + "Warning": 12358, + "argo": 12359, + "Ġactor": 12360, + "ĠInstead": 12361, + "ĠUsing": 12362, + "Self": 12363, + "@interface": 12364, + "Ġspeaking": 12365, + "ĠParis": 12366, + "ĠLICENSE": 12367, + ".node": 12368, + "ĠFood": 12369, + "EIF": 12370, + "ĠBi": 12371, + ".Start": 12372, + "ĠIB": 12373, + "Ġuniversity": 12374, + "254": 12375, + "ĠHeader": 12376, + ".product": 12377, + "409": 12378, + "Copy": 12379, + "etc": 12380, + "rical": 12381, + "Ġ>>>": 12382, + "books": 12383, + "Ġalgorithm": 12384, + "Ġ'__": 12385, + "(javax": 12386, + "Ġnumerous": 12387, + "Share": 12388, + "Have": 12389, + "Ġrecru": 12390, + "Ġprove": 12391, + ".substring": 12392, + "health": 12393, + "ел": 12394, + "Ġdecimal": 12395, + "Ġcommission": 12396, + "scription": 12397, + "xC": 12398, + "Ġsummary": 12399, + "atted": 12400, + "Ġcloser": 12401, + "finished": 12402, + "()){Ċ": 12403, + "ĠWood": 12404, + "301": 12405, + "_fields": 12406, + "ku": 12407, + "_items": 12408, + "Flag": 12409, + "Ġconfidence": 12410, + "ĠFederal": 12411, + "dux": 12412, + "Ġcompat": 12413, + "Ġvertical": 12414, + "й": 12415, + "ès": 12416, + ";\">Ċ": 12417, + "_manager": 12418, + "()))Ċ": 12419, + "IDE": 12420, + ":\",": 12421, + "235": 12422, + "__Ċ": 12423, + "ĠWay": 12424, + "221": 12425, + "ÑĪ": 12426, + "Temp": 12427, + "ĠSTR": 12428, + "ritten": 12429, + "Sync": 12430, + "ĠAV": 12431, + "ĠCEO": 12432, + "ĠGuid": 12433, + "Ġenvironmental": 12434, + "Ġcorresponding": 12435, + "ĉconsole": 12436, + "Ġjustice": 12437, + "ĠJS": 12438, + "Ġlived": 12439, + "gar": 12440, + "ĠGraph": 12441, + "ĠStat": 12442, + "ĠiPhone": 12443, + ".al": 12444, + "ĠHD": 12445, + "Ġoccur": 12446, + "Ġthreshold": 12447, + "509": 12448, + "Ġonclick": 12449, + "REG": 12450, + ".GraphicsUnit": 12451, + "Meta": 12452, + "ž": 12453, + "Ġcum": 12454, + ".gnu": 12455, + "ë": 12456, + "Ġobtained": 12457, + "Ġcomplaint": 12458, + "Ġeating": 12459, + "Ġtar": 12460, + "_task": 12461, + "Ġopts": 12462, + "216": 12463, + "(to": 12464, + "Pass": 12465, + "Ġplastic": 12466, + "tility": 12467, + "ĠWin": 12468, + ".preventDefault": 12469, + "pile": 12470, + "ĠGar": 12471, + "Ġquantity": 12472, + "_last": 12473, + "Ġgreatest": 12474, + "Dao": 12475, + "_DIS": 12476, + "ĠUsed": 12477, + "ĠHP": 12478, + "riting": 12479, + "SION": 12480, + "blue": 12481, + "domain": 12482, + "Ġscores": 12483, + "Normal": 12484, + "_admin": 12485, + "ĠASSERT": 12486, + "Then": 12487, + "***": 12488, + "dist": 12489, + "lon": 12490, + "Ġhate": 12491, + "shal": 12492, + "ImageView": 12493, + "database": 12494, + "Ġpand": 12495, + "Ġlogic": 12496, + "=false": 12497, + "bg": 12498, + "ĠConfiguration": 12499, + "Ġnur": 12500, + "OG": 12501, + "Ġmarried": 12502, + ":+": 12503, + "Ġdropped": 12504, + "040": 12505, + "Ġregistration": 12506, + "ом": 12507, + "ultiple": 12508, + "izers": 12509, + "shape": 12510, + ".copy": 12511, + "Ġwearing": 12512, + "ĠCath": 12513, + "Ġdedicated": 12514, + "Ġ...Ċ": 12515, + "Ġadvoc": 12516, + "ĠFamily": 12517, + "Ġstatements": 12518, + "ematic": 12519, + "ampionship": 12520, + "Ġmotiv": 12521, + "ĠHave": 12522, + "Ġblow": 12523, + "Job": 12524, + "cert": 12525, + "_vector": 12526, + "install": 12527, + "ĠCOPY": 12528, + "embed": 12529, + "DIR": 12530, + "ĠSpring": 12531, + "Ġexhib": 12532, + "223": 12533, + "cdn": 12534, + "ĠComment": 12535, + "ĠOptional": 12536, + ".player": 12537, + "ĠDark": 12538, + "(pos": 12539, + "ĠShould": 12540, + "Ġcentre": 12541, + "ĠGuard": 12542, + "ów": 12543, + "Ġtrouble": 12544, + "ENER": 12545, + "(unsigned": 12546, + "_service": 12547, + "Ġns": 12548, + "uling": 12549, + "ĠMexico": 12550, + "ĠNY": 12551, + "mysql": 12552, + "Ġlic": 12553, + "åľ": 12554, + "Mr": 12555, + "-fl": 12556, + "ĠCustomer": 12557, + "idi": 12558, + "Ġ?>ĊĊ": 12559, + "rible": 12560, + "ĠпÑĢ": 12561, + "Ġsizes": 12562, + "_STRING": 12563, + "validation": 12564, + "ĠJon": 12565, + "(Http": 12566, + "addClass": 12567, + "Nodes": 12568, + "Ġfragment": 12569, + "Ġspoke": 12570, + "Ġwaste": 12571, + "Join": 12572, + "Ġillustr": 12573, + "eli": 12574, + "cient": 12575, + "Ġaid": 12576, + "Ġprosec": 12577, + "'){Ċ": 12578, + "Ġpassing": 12579, + "Ġfaces": 12580, + "Shape": 12581, + "_Z": 12582, + "iti": 12583, + "Ġalle": 12584, + "Ġrobot": 12585, + "ĠĠĠĠĠĠĠĊ": 12586, + "ĠSpe": 12587, + "Ġreceiving": 12588, + "ĠDetails": 12589, + "Ġ\")": 12590, + "mg": 12591, + "_REF": 12592, + "Ġcomparison": 12593, + "*,": 12594, + "ĠFound": 12595, + "_session": 12596, + "(U": 12597, + "/F": 12598, + "Ġxxx": 12599, + "Network": 12600, + "ders": 12601, + "Ġcapture": 12602, + "Ġcorre": 12603, + "ĠLtd": 12604, + "ĠAdv": 12605, + "[@": 12606, + "Ġclip": 12607, + "Mill": 12608, + "ĠProfile": 12609, + "Ġendif": 12610, + "Ġoblig": 12611, + "describe": 12612, + ".element": 12613, + "riterion": 12614, + "LD": 12615, + "ered": 12616, + "Ġfavour": 12617, + "score": 12618, + "ĠFilter": 12619, + "attributes": 12620, + "Ġchecks": 12621, + "Inflater": 12622, + "ĠPlus": 12623, + "Ġscientific": 12624, + "Ġprivacy": 12625, + "Head": 12626, + "Ġfeat": 12627, + "Ġdegrees": 12628, + "ĠPale": 12629, + ";\">": 12630, + "Ġfilms": 12631, + "ĠAudio": 12632, + "ĠTag": 12633, + "ĠEnergy": 12634, + "itar": 12635, + "parator": 12636, + "Ġfellow": 12637, + "Ġevt": 12638, + "ĠTri": 12639, + "ĠDAM": 12640, + "cloud": 12641, + "ĠPassword": 12642, + "ĠDemocrats": 12643, + "ĠAcad": 12644, + "$lang": 12645, + "Ġreb": 12646, + "())ĊĊ": 12647, + "нÑĭ": 12648, + "ĠBur": 12649, + "readcr": 12650, + "Ġhex": 12651, + "209": 12652, + "Console": 12653, + "ctl": 12654, + "ousel": 12655, + "ĠWilliam": 12656, + "Ġaz": 12657, + "_PORT": 12658, + "Ġpractices": 12659, + "Ġanywhere": 12660, + "ĠPosition": 12661, + "Ġ->Ċ": 12662, + "iams": 12663, + ".username": 12664, + "placeholder": 12665, + "Ġoder": 12666, + "ĠSecretary": 12667, + "ĠiT": 12668, + "mond": 12669, + "events": 12670, + "?âĢĿ": 12671, + ".Sub": 12672, + "Ġattached": 12673, + "Ġnão": 12674, + "Ġestate": 12675, + "365": 12676, + ".action": 12677, + "Ġfigures": 12678, + "Ġ});čĊ": 12679, + "Ġsubscri": 12680, + ".tag": 12681, + "nam": 12682, + ".plot": 12683, + "noon": 12684, + "liament": 12685, + "Character": 12686, + ".tab": 12687, + "Ġwinter": 12688, + "ĠVariable": 12689, + "Ġtrees": 12690, + "Ġproud": 12691, + "(V": 12692, + "_load": 12693, + "Ġhier": 12694, + "ĠEcon": 12695, + "Ġfd": 12696, + "Ġvictims": 12697, + "Rest": 12698, + "iana": 12699, + "Ġfake": 12700, + ".Println": 12701, + "Ġstrlen": 12702, + "Ġsad": 12703, + "Ġble": 12704, + "Prot": 12705, + "Ġbuttons": 12706, + "Ġtelevision": 12707, + "Ġlogo": 12708, + "extension": 12709, + "ĉj": 12710, + "stein": 12711, + "aciones": 12712, + "Ġ\"\"\"ĊĊ": 12713, + "Ġsimp": 12714, + "Ġrecorded": 12715, + "Ġbrings": 12716, + "Ġprincipal": 12717, + "Ġfees": 12718, + "(source": 12719, + "kdir": 12720, + "Ġutils": 12721, + "Ġcorrectly": 12722, + "fil": 12723, + "Ġwel": 12724, + "Pair": 12725, + "-button": 12726, + "scale": 12727, + "verify": 12728, + "[c": 12729, + "Ġ---": 12730, + "Ġescape": 12731, + "ikes": 12732, + "LowerCase": 12733, + "ician": 12734, + "Ġchapter": 12735, + "ĠTYPE": 12736, + "Ġshadow": 12737, + "Ġawesome": 12738, + "WE": 12739, + "elif": 12740, + "Ġlambda": 12741, + "Ġdistinct": 12742, + "Ġbare": 12743, + "-off": 12744, + "Ġcolour": 12745, + ".appendChild": 12746, + "olec": 12747, + "aga": 12748, + ".fill": 12749, + "ĉsuper": 12750, + "Ġadj": 12751, + "(position": 12752, + ".getItem": 12753, + "242": 12754, + "Short": 12755, + "Ġtotally": 12756, + "VD": 12757, + "ĠTre": 12758, + "_ep": 12759, + "vements": 12760, + "ĠSolution": 12761, + "Ġfundament": 12762, + "Follow": 12763, + "Ġfacility": 12764, + "Ġhappening": 12765, + "OF": 12766, + ".textBox": 12767, + "Span": 12768, + "Ġ«": 12769, + "iden": 12770, + "Ġexceed": 12771, + "(parent": 12772, + "Ġcp": 12773, + "ç»": 12774, + "Ġhasn": 12775, + "Ġpri": 12776, + "Ġconsequ": 12777, + "nen": 12778, + "ĠINTO": 12779, + "Ignore": 12780, + "ĠFuture": 12781, + "Ġcarbon": 12782, + "ĠSteel": 12783, + "fmt": 12784, + "okie": 12785, + "Ġspl": 12786, + "(title": 12787, + "-info": 12788, + "Ġdeals": 12789, + "Ġfixture": 12790, + "ea": 12791, + "Div": 12792, + "Ġtested": 12793, + "_return": 12794, + ")ĊĊĊĊ": 12795, + "upported": 12796, + "ĠCook": 12797, + "Ġpaying": 12798, + "ĠIll": 12799, + "Ġarrested": 12800, + "ĠPrime": 12801, + "_callback": 12802, + ">,Ċ": 12803, + "driver": 12804, + "Once": 12805, + "abb": 12806, + "_bytes": 12807, + "ĠSets": 12808, + "(Object": 12809, + "Ġcc": 12810, + "Ġshell": 12811, + "alo": 12812, + ");//": 12813, + "(log": 12814, + "264": 12815, + "ctors": 12816, + ")": 13301, + "218": 13302, + "Ġ$(\".": 13303, + ".pos": 13304, + "Ġboys": 13305, + "Ġwedding": 13306, + "Ġagents": 13307, + "=\"_": 13308, + "ĠArmy": 13309, + "Ġhint": 13310, + "vision": 13311, + "Ġtech": 13312, + "ĠConnect": 13313, + "Ġlegend": 13314, + "ĠBet": 13315, + ".Base": 13316, + "Subject": 13317, + "Ġlit": 13318, + "Remove": 13319, + "Ġ\":": 13320, + "ĠFinal": 13321, + "pearance": 13322, + "ĠiTunes": 13323, + "Ġparticipants": 13324, + "ĠPython": 13325, + "Ġbusy": 13326, + "iel": 13327, + "vertices": 13328, + "ĠtemplateUrl": 13329, + "ĠClose": 13330, + "Img": 13331, + "ĠCorporation": 13332, + "timestamp": 13333, + "Ġextend": 13334, + "Ġwebsites": 13335, + "Ġpossibility": 13336, + "оÑĤ": 13337, + "Ġkö": 13338, + "Ġmeat": 13339, + "Ġrepresentation": 13340, + "241": 13341, + "Ġĉĉ": 13342, + "_START": 13343, + ".apply": 13344, + "ĠValley": 13345, + "ĠSuccess": 13346, + "Hi": 13347, + "Ġnob": 13348, + "ĠIEnumerable": 13349, + "_select": 13350, + "geo": 13351, + ".\")Ċ": 13352, + "Ġturning": 13353, + "Ġfabric": 13354, + "(\"\");Ċ": 13355, + "Ġperspective": 13356, + "éĹ": 13357, + "ĠSn": 13358, + "Thank": 13359, + ";j": 13360, + ".Parameters": 13361, + "ĉĠĠĠĠĠĠĠĠĠĠĠ": 13362, + "Ġfacts": 13363, + "305": 13364, + "Ġunt": 13365, + ".instance": 13366, + "################################################################": 13367, + "-end": 13368, + "ĠJOIN": 13369, + "ĠHen": 13370, + "Ġuri": 13371, + "åIJį": 13372, + "Ġна": 13373, + "ĠInfo": 13374, + "Ġconducted": 13375, + "ĠÃ¥": 13376, + "OURCE": 13377, + "Ġwine": 13378, + "John": 13379, + ".Errorf": 13380, + "ĠAge": 13381, + "ounded": 13382, + "Ġrealize": 13383, + "312": 13384, + "Ġ];": 13385, + "Ġsubsequ": 13386, + ",m": 13387, + "(User": 13388, + "iano": 13389, + "Ġaccompl": 13390, + "isp": 13391, + ".std": 13392, + "éĩ": 13393, + "ĠBed": 13394, + ".setAttribute": 13395, + "BR": 13396, + "keep": 13397, + "ĠALL": 13398, + "Ġisol": 13399, + "amma": 13400, + "Package": 13401, + "Ġoccasion": 13402, + "-success": 13403, + "ед": 13404, + "ĠLIMITED": 13405, + "strip": 13406, + "()ĊĊĊ": 13407, + "istribution": 13408, + "Colors": 13409, + "Ġ+:+": 13410, + "DidLoad": 13411, + "aler": 13412, + "Ġtid": 13413, + "ĠLED": 13414, + "ĠLinked": 13415, + "ĠCart": 13416, + "())čĊ": 13417, + "_READ": 13418, + "Ġkilling": 13419, + "ĠPHP": 13420, + "fection": 13421, + "Ġinstances": 13422, + "cv": 13423, + "\"/>": 13424, + "Ġsf": 13425, + "Ġtaxes": 13426, + "_location": 13427, + "ĠBitcoin": 13428, + "uable": 13429, + "rank": 13430, + "ignore": 13431, + "track": 13432, + "ка": 13433, + "Ġshouldn": 13434, + "ĠOP": 13435, + "=>{Ċ": 13436, + "Ġkm": 13437, + "Ġhelper": 13438, + "_head": 13439, + "ĠWhether": 13440, + "oco": 13441, + "_bl": 13442, + "Ġstatistics": 13443, + "Ġbeauty": 13444, + "Ġtog": 13445, + "tip": 13446, + "ëĭ¤": 13447, + "Ġcsv": 13448, + "(sql": 13449, + "stdlib": 13450, + "weak": 13451, + "Ġlikes": 13452, + "Äį": 13453, + "Ġrepeat": 13454, + "Ġapartment": 13455, + "Ġemph": 13456, + "_edit": 13457, + "Ġvit": 13458, + "ĉtype": 13459, + "217": 13460, + "Even": 13461, + "uten": 13462, + "Ġcircumstances": 13463, + "bian": 13464, + "Ġsugar": 13465, + "Windows": 13466, + "ìŀ": 13467, + "Ġobserved": 13468, + "/data": 13469, + "Ġcalendar": 13470, + "Ġstrike": 13471, + "ĠRES": 13472, + "_sc": 13473, + "fony": 13474, + "orem": 13475, + "(z": 13476, + "power": 13477, + "etect": 13478, + "ĠSat": 13479, + ".description": 13480, + "Ġgang": 13481, + "ĠSports": 13482, + "ongs": 13483, + "ĠBundle": 13484, + ".sum": 13485, + "once": 13486, + "Ġaccused": 13487, + "Ġexplore": 13488, + "Ġapproximately": 13489, + "Ġlosing": 13490, + "thesis": 13491, + "ĠFund": 13492, + "Ġdiagn": 13493, + "Autowired": 13494, + "properties": 13495, + "Ġ_.": 13496, + "Ġcnt": 13497, + "cedure": 13498, + "Ġyy": 13499, + "Ġgrant": 13500, + "sock": 13501, + ".innerHTML": 13502, + "Ġ]);Ċ": 13503, + "ĠCONFIG": 13504, + "='$": 13505, + "550": 13506, + "]];Ċ": 13507, + "UND": 13508, + "Ġglob": 13509, + "Ġdire": 13510, + "uffle": 13511, + "_MEM": 13512, + "Ġauthentic": 13513, + ">(\"": 13514, + "Ġdecade": 13515, + "ĠImport": 13516, + "Ġoriginally": 13517, + "ĠjQuery": 13518, + "Ġindicate": 13519, + "Ġourselves": 13520, + "Sw": 13521, + ".lbl": 13522, + "enerate": 13523, + "Ġbasically": 13524, + "ĠHom": 13525, + "Ġ+#+": 13526, + "ĠBritain": 13527, + "ĠKar": 13528, + "toEqual": 13529, + ".stop": 13530, + "Ġmodal": 13531, + "isi": 13532, + "Ġsuggests": 13533, + "Ġdtype": 13534, + "Ġtur": 13535, + "bf": 13536, + "Ġconnections": 13537, + "ĠBefore": 13538, + "isted": 13539, + "mouse": 13540, + "Ġpulled": 13541, + ".build": 13542, + "Ġlegislation": 13543, + "Ġforth": 13544, + "pad": 13545, + "ego": 13546, + ".Now": 13547, + "Ġexciting": 13548, + "}ĊĊĊĊ": 13549, + "Ġcompr": 13550, + "Ġshares": 13551, + "Ġrig": 13552, + "green": 13553, + "_vec": 13554, + "Ġenumerate": 13555, + "Auto": 13556, + "icator": 13557, + "ĠRay": 13558, + "asse": 13559, + "Ġholiday": 13560, + "Ġnullable": 13561, + "gun": 13562, + "_details": 13563, + "Ġwrapper": 13564, + "seq": 13565, + "ĠYoung": 13566, + "juana": 13567, + "Ġ\"__": 13568, + "license": 13569, + "serve": 13570, + "^(": 13571, + "iders": 13572, + ".Remove": 13573, + "ropdown": 13574, + "'S": 13575, + "pin": 13576, + "(token": 13577, + ".Default": 13578, + "Ġreasonable": 13579, + "ampion": 13580, + "ĠSociety": 13581, + "Ġbei": 13582, + "erves": 13583, + "rad": 13584, + "ĠFox": 13585, + "_images": 13586, + "Ġwheel": 13587, + "')[": 13588, + "Ġcfg": 13589, + "(By": 13590, + "Constructor": 13591, + "Ġvary": 13592, + ".swift": 13593, + "Ġproxy": 13594, + "ĉH": 13595, + "ĠAnother": 13596, + "ĠPen": 13597, + "Ġchecking": 13598, + "Ġjest": 13599, + "manager": 13600, + "Origin": 13601, + "ugs": 13602, + "oir": 13603, + ">čĊ": 16336, + "Ġrelief": 16337, + "lap": 16338, + "quer": 16339, + "_parent": 16340, + "heap": 16341, + "LOSE": 16342, + "Ġcombine": 16343, + "ĠRose": 16344, + "owers": 16345, + "Ġprocedures": 16346, + "ĠSort": 16347, + "anim": 16348, + "variant": 16349, + "ehicle": 16350, + "Ġsigning": 16351, + "Primary": 16352, + "currency": 16353, + "Ġsexe": 16354, + "oen": 16355, + "theta": 16356, + "eman": 16357, + "Ġimpressive": 16358, + "('_": 16359, + "ĉU": 16360, + "ĠTextStyle": 16361, + "_cnt": 16362, + "Ġslice": 16363, + "(':": 16364, + "Ġunderstood": 16365, + "His": 16366, + "277": 16367, + "013": 16368, + "Ġinformed": 16369, + "Ġnick": 16370, + "429": 16371, + "(TAG": 16372, + "hd": 16373, + "Ġelections": 16374, + "esture": 16375, + "ĠSanta": 16376, + "ĠCoast": 16377, + ".pdf": 16378, + "inciple": 16379, + ".clone": 16380, + "born": 16381, + "uta": 16382, + "Ġlicensed": 16383, + "Cr": 16384, + "Ġbread": 16385, + "ĠHouston": 16386, + "Ġnod": 16387, + "Ġhopes": 16388, + "ĠCGRect": 16389, + "Ġguilty": 16390, + ".gif": 16391, + "Ġrose": 16392, + ".Common": 16393, + "Tip": 16394, + "ANK": 16395, + "ĠFC": 16396, + "During": 16397, + "ĠSymfony": 16398, + "Ġdefensive": 16399, + "km": 16400, + ")>": 16401, + "archive": 16402, + "ĠURI": 16403, + "ycling": 16404, + "-o": 16405, + "ĠWebsite": 16406, + "AMP": 16407, + "405": 16408, + "ishment": 16409, + "Ġdoctors": 16410, + "Direct": 16411, + "ARI": 16412, + "ĠRedirect": 16413, + "ieren": 16414, + "960": 16415, + "_dist": 16416, + "yo": 16417, + "ĠProgress": 16418, + "Ġzum": 16419, + "Ġmemor": 16420, + "ĠED": 16421, + "Ġjur": 16422, + "æį®": 16423, + "_TABLE": 16424, + "Ġuuid": 16425, + "Expr": 16426, + ".head": 16427, + "('%": 16428, + "pointer": 16429, + "Ġestimate": 16430, + "ĠGreg": 16431, + "Ġloader": 16432, + "ĠiOS": 16433, + "Ġmens": 16434, + "[y": 16435, + "Ġrefused": 16436, + "Ġprecision": 16437, + "isch": 16438, + "ĠACTION": 16439, + "Cloud": 16440, + "sWith": 16441, + "(ret": 16442, + "292": 16443, + "_ADDR": 16444, + "_conf": 16445, + "(df": 16446, + "Ġlocked": 16447, + "Ġrising": 16448, + "ãĥ»ãĥ»": 16449, + "ĠMs": 16450, + "Ġscenes": 16451, + "_EXT": 16452, + "_raw": 16453, + "_the": 16454, + "people": 16455, + "Ġrecon": 16456, + "ĠFun": 16457, + "Ġbless": 16458, + "ĠUpdated": 16459, + "422": 16460, + "ün": 16461, + "ĠĠĠĠĠĠĠĠĠĠĠĠčĊ": 16462, + "pection": 16463, + "Release": 16464, + ".logger": 16465, + "ĠSY": 16466, + "Ġcounsel": 16467, + "urd": 16468, + "_true": 16469, + "Ġeverybody": 16470, + "ivot": 16471, + "Ġhence": 16472, + "ĠNAS": 16473, + "789": 16474, + "Ġopposed": 16475, + "unknown": 16476, + "ĠDESC": 16477, + "ĠChair": 16478, + "failed": 16479, + "ĠINCLUDING": 16480, + "386": 16481, + "352": 16482, + "Ġwriters": 16483, + "{}Ċ": 16484, + "ÃŃt": 16485, + "_copy": 16486, + "}:": 16487, + "ĠBat": 16488, + "Ġconverted": 16489, + "eding": 16490, + "placement": 16491, + "ĠHost": 16492, + "Sound": 16493, + "им": 16494, + "Ġsought": 16495, + "402": 16496, + "mid": 16497, + "Ġsalary": 16498, + "ogg": 16499, + "âĦ¢": 16500, + "bul": 16501, + "Ġwir": 16502, + "validator": 16503, + "_STAT": 16504, + ".store": 16505, + "ĠBattle": 16506, + "ın": 16507, + "Ġ-->ĊĊ": 16508, + "Trump": 16509, + "dot": 16510, + "ĠCONT": 16511, + ".fetch": 16512, + "Ġcontinu": 16513, + "was": 16514, + "Ġfraud": 16515, + "_tmp": 16516, + "mitter": 16517, + ".pictureBox": 16518, + "GA": 16519, + "Ġtournament": 16520, + ".Input": 16521, + "343": 16522, + "[r": 16523, + "exion": 16524, + "centage": 16525, + "ĠKorean": 16526, + "undef": 16527, + "ĠAvailable": 16528, + "reshape": 16529, + "Ġkit": 16530, + "ĠStruct": 16531, + "ĠSUB": 16532, + "Answer": 16533, + "_lib": 16534, + ".twitter": 16535, + "Ġore": 16536, + "ĠDragon": 16537, + ".Ext": 16538, + ",k": 16539, + "Ġexplanation": 16540, + "refs": 16541, + "ĠDrive": 16542, + "ĠTraining": 16543, + "282": 16544, + ".Has": 16545, + "341": 16546, + "intage": 16547, + "big": 16548, + "ologist": 16549, + "ennis": 16550, + "460": 16551, + "Ùĩ": 16552, + "Ġchicken": 16553, + "ĠĠĠĠĠĠĠĠĠĠĊ": 16554, + "çĽ": 16555, + "ãģ§": 16556, + "Ġpeak": 16557, + "Ġdrinking": 16558, + "Ġencode": 16559, + "ĠNEW": 16560, + "malloc": 16561, + "ĉfprintf": 16562, + "Ġ=================================================================": 16563, + "including": 16564, + "Ġprinciples": 16565, + "ĠMah": 16566, + "267": 16567, + "storage": 16568, + "-key": 16569, + "Ġkeyword": 16570, + "%;": 16571, + "Ġtrained": 16572, + ".contrib": 16573, + "Ġkv": 16574, + "__':Ċ": 16575, + "ĠBoy": 16576, + "parameter": 16577, + "Ġsuite": 16578, + "Ġthousand": 16579, + "Ġcoordinate": 16580, + "-generated": 16581, + "íķĺ": 16582, + "generated": 16583, + "Ġadmitted": 16584, + "Ġpussy": 16585, + "#w": 16586, + "Ġswim": 16587, + "union": 16588, + "Na": 16589, + "274": 16590, + "ĠRoyal": 16591, + ".channel": 16592, + "Updated": 16593, + "_ROOT": 16594, + "Ġvital": 16595, + "335": 16596, + "raction": 16597, + "ĠCrusher": 16598, + "Ġpreced": 16599, + "Ġhorizontal": 16600, + "Blueprint": 16601, + "Ġattrs": 16602, + "Ġsmoke": 16603, + "ÐĴ": 16604, + ".Equals": 16605, + "FB": 16606, + "ĠResources": 16607, + "rolling": 16608, + "Ġpasses": 16609, + "ĠNum": 16610, + "rotate": 16611, + "etype": 16612, + "\\\",": 16613, + "Ġsensitive": 16614, + "Ġtall": 16615, + "?âĢĿĊĊ": 16616, + "Proxy": 16617, + "iy": 16618, + "_section": 16619, + "âĢĶâĢĶâĢĶâĢĶ": 16620, + "brid": 16621, + "Ġcircuit": 16622, + "atan": 16623, + "ENC": 16624, + "Ġdriven": 16625, + "Ġvoted": 16626, + "Ġeducational": 16627, + "Ġinteraction": 16628, + "abetes": 16629, + "Ġtone": 16630, + "ĠInitializeComponent": 16631, + "Ġmerely": 16632, + "Ġìŀ": 16633, + "cookie": 16634, + "_div": 16635, + "ĠUILabel": 16636, + "vely": 16637, + "});čĊ": 16638, + "_ENT": 16639, + "#+#+": 16640, + "articles": 16641, + "ĠSouthern": 16642, + "Ġstronger": 16643, + "ĠGiven": 16644, + "ĠEric": 16645, + "ĠIR": 16646, + "abstract": 16647, + "Under": 16648, + "nable": 16649, + "Ġincrement": 16650, + "oven": 16651, + "Ġcoin": 16652, + "_timer": 16653, + "Ġsuffered": 16654, + "ĠFREE": 16655, + "'].\"": 16656, + "ĠQueen": 16657, + "stats": 16658, + "Ġmeetings": 16659, + "276": 16660, + "Ġentering": 16661, + "Ġalongside": 16662, + "(session": 16663, + "itals": 16664, + "Ġfoundation": 16665, + "ĠCredit": 16666, + ".div": 16667, + "_ALL": 16668, + "pcion": 16669, + "_stat": 16670, + "icking": 16671, + "Defaults": 16672, + "_src": 16673, + "Ġoutputs": 16674, + "/B": 16675, + "Ġenthus": 16676, + "-bl": 16677, + ".ForeColor": 16678, + "ĉtemp": 16679, + "Face": 16680, + "Ġinteract": 16681, + "Ġweird": 16682, + "Mount": 16683, + "rell": 16684, + "udents": 16685, + "Ġrequirement": 16686, + "ĠSus": 16687, + "IER": 16688, + "Ġelected": 16689, + "reference": 16690, + "ĠME": 16691, + "Ġservers": 16692, + ".wait": 16693, + "Ġsnapshot": 16694, + "ilton": 16695, + "Ġtries": 16696, + "Ġtipo": 16697, + ".Time": 16698, + ">w": 16699, + "Ġmountain": 16700, + "Ġpounds": 16701, + "Ġ[...": 16702, + "exists": 16703, + "ĠngOn": 16704, + "_MAP": 16705, + "Ġflying": 16706, + "331": 16707, + "xiety": 16708, + "ĉvalue": 16709, + "_DB": 16710, + "uno": 16711, + "Ġseats": 16712, + "TURN": 16713, + ".author": 16714, + "!)": 16715, + "orce": 16716, + "Ġindicated": 16717, + "317": 16718, + ".sin": 16719, + "Ġassignment": 16720, + "imiento": 16721, + "ĠFrame": 16722, + "324": 16723, + "_gen": 16724, + "inery": 16725, + "_)": 16726, + "messages": 16727, + ".settings": 16728, + "ĠMean": 16729, + "ĠMuseum": 16730, + "irq": 16731, + "attach": 16732, + "ĠPalestin": 16733, + "_QU": 16734, + "_tags": 16735, + "Ġcasual": 16736, + "emen": 16737, + "ASSWORD": 16738, + "432": 16739, + "$s": 16740, + "ĠCirc": 16741, + "ой": 16742, + "etric": 16743, + "/P": 16744, + "018": 16745, + "Ġepoch": 16746, + "The": 16761, + "ĠAk": 16762, + "Ġgrass": 16763, + "/*čĊ": 16764, + "(dis": 16765, + "Ġguns": 16766, + "Ġtb": 16767, + "ĠKevin": 16768, + ".args": 16769, + "ĠAh": 16770, + "oped": 16771, + "(J": 16772, + "columns": 16773, + "arguments": 16774, + "ĠWithEvents": 16775, + "_full": 16776, + "ĠDefense": 16777, + "Simple": 16778, + "Ġdeaths": 16779, + "295": 16780, + "Ġextensive": 16781, + "ĠStill": 16782, + "ĠExpression": 16783, + "ĠAgency": 16784, + "Ġperforming": 16785, + "FX": 16786, + "Ġusuario": 16787, + "UAL": 16788, + "Side": 16789, + "odos": 16790, + "aptop": 16791, + "Ġcredentials": 16792, + "_cap": 16793, + "atient": 16794, + "ĠDisney": 16795, + "Ġai": 16796, + "Ġchip": 16797, + "Ġvolt": 16798, + ".makeText": 16799, + "%%%%%%%%%%%%%%%%": 16800, + "Ġbelief": 16801, + "_LOC": 16802, + "ĠCivil": 16803, + "Navigation": 16804, + "Ġreveal": 16805, + "Ġviolent": 16806, + "ĠFil": 16807, + "Ġcatalog": 16808, + "emed": 16809, + "scan": 16810, + ".control": 16811, + "Ġconstitution": 16812, + "Country": 16813, + "Separator": 16814, + "_APP": 16815, + "topic": 16816, + "uetooth": 16817, + "MIN": 16818, + "Ġdescriptor": 16819, + "yt": 16820, + "ETHER": 16821, + "Ġdistribute": 16822, + "'}Ċ": 16823, + ".trim": 16824, + ".Line": 16825, + "Ġlbl": 16826, + "assertEquals": 16827, + "ĠDet": 16828, + "ombok": 16829, + "(width": 16830, + "Ġtort": 16831, + "ĠEXPRESS": 16832, + "aco": 16833, + "Using": 16834, + "ĠBrand": 16835, + "wall": 16836, + "EMENT": 16837, + "ĠCommunic": 16838, + "(Ċ": 17492, + "?>\"": 17493, + "Ġ///Ċ": 17494, + "Ġeiner": 17495, + "Ġweekly": 17496, + "ĉlogger": 17497, + "_pop": 17498, + "_man": 17499, + "Ġmigrations": 17500, + "Ġasks": 17501, + "Ġbs": 17502, + "Ġfalls": 17503, + ".Where": 17504, + "-height": 17505, + "_feature": 17506, + ".Min": 17507, + "Ġhyper": 17508, + "Ġvolatile": 17509, + "Ġtwenty": 17510, + "Typography": 17511, + "Unable": 17512, + "Det": 17513, + ",f": 17514, + "-mod": 17515, + "Ġsettlement": 17516, + "Ġcontracts": 17517, + "nome": 17518, + "Bad": 17519, + "ĠBrian": 17520, + "768": 17521, + "(username": 17522, + "!!!!": 17523, + "Ġhack": 17524, + ".Field": 17525, + "HR": 17526, + "ĠJordan": 17527, + "iza": 17528, + "ĠÂł": 17529, + "ĠSher": 17530, + ".header": 17531, + "(other": 17532, + "ĠDub": 17533, + "(op": 17534, + "ĠRound": 17535, + "Ġvie": 17536, + "Ġappl": 17537, + "ĉJ": 17538, + "ĠInsert": 17539, + "ĠLP": 17540, + "regon": 17541, + "ĠMPI": 17542, + "Ġanchor": 17543, + "aca": 17544, + "ør": 17545, + "Ġade": 17546, + "anchor": 17547, + "quee": 17548, + "ĠTreeNode": 17549, + "Ġtargeted": 17550, + "Ġlaid": 17551, + "ABEL": 17552, + "vet": 17553, + "ĠOrigin": 17554, + "Ant": 17555, + ".');Ċ": 17556, + "expect": 17557, + "edReader": 17558, + "ĠMajor": 17559, + "Ġinch": 17560, + "Compar": 17561, + "Ġpreview": 17562, + "Ġillness": 17563, + "ĠCONTRACT": 17564, + "ĠIndepend": 17565, + "uuid": 17566, + "Ġnome": 17567, + "Ġtc": 17568, + "ĠAvenue": 17569, + "isan": 17570, + "Ġphrase": 17571, + "_move": 17572, + "\")[": 17573, + "412": 17574, + "Ġprovision": 17575, + "Ġconcentr": 17576, + "_IR": 17577, + "ĠUt": 17578, + "()+": 17579, + "Ġnas": 17580, + "!,": 17581, + "ĠRobin": 17582, + "iations": 17583, + "atitude": 17584, + "Ġpx": 17585, + "ĠWithout": 17586, + "/bash": 17587, + "ekt": 17588, + "reement": 17589, + "342": 17590, + "Observer": 17591, + "318": 17592, + "ĠRegion": 17593, + "UBLIC": 17594, + "Ġ{//": 17595, + "KN": 17596, + "å·": 17597, + "GameObject": 17598, + "å¾": 17599, + "encoding": 17600, + "Ġ***": 17601, + "projects": 17602, + "Ġtk": 17603, + "Ġcheese": 17604, + "EMPL": 17605, + "aro": 17606, + "ĠاÙĦ": 17607, + "610": 17608, + "337": 17609, + "Ġconsists": 17610, + "refresh": 17611, + "ureau": 17612, + "ĠScanner": 17613, + "Ġsoil": 17614, + "Ġflavor": 17615, + "DataSource": 17616, + "Execute": 17617, + "ение": 17618, + "Ġshit": 17619, + "åĪĨ": 17620, + "Ċ": 17875, + "Ġsubsequent": 17876, + "posable": 17877, + "-fluid": 17878, + "Ġthorough": 17879, + "Ġpublicly": 17880, + "apters": 17881, + "ĠWilson": 17882, + "_PRE": 17883, + "yard": 17884, + "ä¼": 17885, + "ĉin": 17886, + "339": 17887, + "Ġrevers": 17888, + "Ġbullet": 17889, + "cribed": 17890, + "nesota": 17891, + "Ġ($_": 17892, + "annon": 17893, + "cursor": 17894, + "Ġclothing": 17895, + "ĠMulti": 17896, + "287": 17897, + ":',": 17898, + "Ġvess": 17899, + "ordinator": 17900, + "Ġeinem": 17901, + "Cannot": 17902, + "Ġarmed": 17903, + "ĉV": 17904, + "ä¸Ĭ": 17905, + ".Flat": 17906, + "ĠSep": 17907, + "ĠSubject": 17908, + "_font": 17909, + "Ġcharacteristics": 17910, + "Done": 17911, + "eln": 17912, + "############": 17913, + "POS": 17914, + "Ġdensity": 17915, + "ĠPlatform": 17916, + "-items": 17917, + "Ġovers": 17918, + "Ġpushing": 17919, + "ç¤": 17920, + ".Connection": 17921, + "_term": 17922, + "Ġinitialization": 17923, + "________________________________": 17924, + "ç¬": 17925, + ".document": 17926, + "lesh": 17927, + "ĉdocument": 17928, + "ĠPin": 17929, + "ça": 17930, + "Ġdefinitions": 17931, + ".Path": 17932, + "_WRITE": 17933, + "ĠĉĊ": 17934, + "?>ĊĊ": 17935, + "Ġterrible": 17936, + "bean": 17937, + "ickets": 17938, + "ĠSV": 17939, + "Buy": 17940, + "(task": 17941, + "Ġregime": 17942, + "google": 17943, + "Ġcrack": 17944, + ".visit": 17945, + "NUM": 17946, + "energy": 17947, + "Ġstruck": 17948, + "_sample": 17949, + ".payload": 17950, + "Ġrevis": 17951, + "ĠScene": 17952, + "Ġpg": 17953, + "Ġbreakfast": 17954, + "URRENT": 17955, + ".charAt": 17956, + "_exception": 17957, + "ĠAnton": 17958, + "Ġguidelines": 17959, + "Ġexhaust": 17960, + "ĠFinancial": 17961, + "Ġindent": 17962, + "Ġdesktop": 17963, + "Hidden": 17964, + "Failure": 17965, + "Ġprinciple": 17966, + "Ġiv": 17967, + "Ġseks": 17968, + "network": 17969, + "ĠnumberOf": 17970, + "ĠAlbert": 17971, + "ĉlong": 17972, + "801": 17973, + ",.": 17974, + "Ġzeros": 17975, + "fade": 17976, + "ĠTyp": 17977, + "ĠTerm": 17978, + "ĠArts": 17979, + ".Application": 17980, + "Ġbehalf": 17981, + "æĪ·": 17982, + "Ġmere": 17983, + "(`${": 17984, + "Ġawareness": 17985, + "elpers": 17986, + "flix": 17987, + "Ġweigh": 17988, + "Ġestimates": 17989, + ".child": 17990, + "/O": 17991, + "ĠBitmap": 17992, + ".bottom": 17993, + "Ġ**************************************************************************": 17994, + "Expect": 17995, + "ento": 17996, + "ĠForum": 17997, + "veral": 17998, + "Ġjail": 17999, + "Ġabilities": 18000, + "ĠHOLD": 18001, + "ĠCit": 18002, + "Ġdynam": 18003, + "Ġgray": 18004, + "ĉĉĉĉĉĉĉĉĉĉĉĉĉ": 18005, + ".nextInt": 18006, + "antly": 18007, + "ĠARISING": 18008, + "(private": 18009, + "Ġrejected": 18010, + "ĠNic": 18011, + "Ġleather": 18012, + "={Ċ": 18013, + "alytics": 18014, + "thetic": 18015, + ".Top": 18016, + "373": 18017, + ".Page": 18018, + "={`": 18019, + "Ġ;čĊ": 18020, + "depth": 18021, + "mann": 18022, + "WD": 18023, + "ĠSom": 18024, + ".Right": 18025, + "Ġ)}Ċ": 18026, + "Ġtrait": 18027, + "ÃĹ": 18028, + "iac": 18029, + "Ġrv": 18030, + "Sample": 18031, + ".Xml": 18032, + "opped": 18033, + "ĠÑĦ": 18034, + "lists": 18035, + "Ġtear": 18036, + "iversary": 18037, + ".collection": 18038, + "ĠConstitution": 18039, + "ĠHttpResponse": 18040, + "Ġbrill": 18041, + "ĠProm": 18042, + "hover": 18043, + "366": 18044, + "ĠMiami": 18045, + "Ġargue": 18046, + "_float": 18047, + "504": 18048, + "ĠãĤ": 18049, + "Ġnat": 18050, + "ĠTal": 18051, + "Ġintegration": 18052, + "(cur": 18053, + "Ġremoving": 18054, + "Ġcoeff": 18055, + "ĠThough": 18056, + "Ġforecast": 18057, + "408": 18058, + "ĠVegas": 18059, + "Site": 18060, + "346": 18061, + "Ġtrab": 18062, + "ĠHenry": 18063, + "-i": 18064, + "Ġinvolves": 18065, + "BT": 18066, + "Ġslo": 18067, + "Invoke": 18068, + "Ġlucky": 18069, + "025": 18070, + "rat": 18071, + "Ġ?Ċ": 18072, + "Ġhandled": 18073, + "(fd": 18074, + "contents": 18075, + "ĠOFF": 18076, + "RF": 18077, + "Ġsty": 18078, + "ĠMotor": 18079, + "tery": 18080, + "tax": 18081, + "MAP": 18082, + "ĠMrs": 18083, + "Ġphones": 18084, + "ĠUIView": 18085, + "\")));Ċ": 18086, + "(dev": 18087, + "ĠIrish": 18088, + "019": 18089, + "Ġws": 18090, + "DI": 18091, + "_OFFSET": 18092, + "ĠEvents": 18093, + "Ġstages": 18094, + "Ġ}//": 18095, + "Ġhaben": 18096, + "STANCE": 18097, + "ĠSin": 18098, + "ĠMoney": 18099, + "(top": 18100, + "Ġappointment": 18101, + "VERSION": 18102, + "metadata": 18103, + "_comment": 18104, + "Ġcolleagues": 18105, + "maps": 18106, + "âĺ": 18107, + "ĊĉĊ": 18108, + "(al": 18109, + "_req": 18110, + "Ġfut": 18111, + "Ġarchitecture": 18112, + "351": 18113, + "ĠWHETHER": 18114, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 18115, + "_screen": 18116, + "ĠstyleUrls": 18117, + "Ġmonster": 18118, + ".up": 18119, + "phia": 18120, + "Ġprocessor": 18121, + "ĠTerr": 18122, + "=',": 18123, + "ĠManufact": 18124, + "ĠNT": 18125, + "kel": 18126, + "ibern": 18127, + "ĉfile": 18128, + "Ali": 18129, + "rientation": 18130, + "Ġ//!": 18131, + "apore": 18132, + "aneous": 18133, + "ĠCreat": 18134, + "folder": 18135, + "415": 18136, + "Ġhay": 18137, + "Suppress": 18138, + "(left": 18139, + "Ġeuro": 18140, + "Ġdisclaimer": 18141, + "ustry": 18142, + "ships": 18143, + "_fd": 18144, + "ĠFa": 18145, + "_insert": 18146, + "Ġrol": 18147, + "ifting": 18148, + "ĠComments": 18149, + "_br": 18150, + "Ġlosses": 18151, + "ĠAdded": 18152, + "charg": 18153, + "Ġпо": 18154, + "_system": 18155, + "ĠSometimes": 18156, + "ĠSpain": 18157, + "(group": 18158, + "ialis": 18159, + "Ġdollar": 18160, + "ĠArgs": 18161, + "499": 18162, + "297": 18163, + "quires": 18164, + "ĠTen": 18165, + ".scss": 18166, + "Ġsurvive": 18167, + "usage": 18168, + "Ġjun": 18169, + "imiter": 18170, + "ï¼ģĊĊ": 18171, + "Ġfifth": 18172, + "toggle": 18173, + "Ġdecline": 18174, + "($\"": 18175, + "(Long": 18176, + "inge": 18177, + "Ġpilot": 18178, + "-light": 18179, + "-radius": 18180, + "Ġpodcast": 18181, + "Ġnaturally": 18182, + "Pages": 18183, + "为": 18184, + "ĠDespite": 18185, + "Ġlighting": 18186, + "Ġcrate": 18187, + "ĠBinary": 18188, + "Ġreducing": 18189, + "Ġeleg": 18190, + "ĠMouse": 18191, + "ĠTestBed": 18192, + "ĠbeforeEach": 18193, + "_ARRAY": 18194, + "Redirect": 18195, + "329": 18196, + "Ġflood": 18197, + "Ġships": 18198, + "363": 18199, + "Ġelectricity": 18200, + ")*(": 18201, + "ê¸": 18202, + "ĠViet": 18203, + "hero": 18204, + "Ġdia": 18205, + "ĠKent": 18206, + "heart": 18207, + "Ġthreats": 18208, + "_acc": 18209, + "Ġsymbols": 18210, + "ischen": 18211, + "_inst": 18212, + "Criterion": 18213, + "ĠTIM": 18214, + ".Height": 18215, + "580": 18216, + "ĠâĢĻ": 18217, + "();ĊĊĊ": 18218, + "Products": 18219, + "_SP": 18220, + "ĠCy": 18221, + "Ġdependent": 18222, + "este": 18223, + "Ġdatos": 18224, + "dit": 18225, + "ав": 18226, + "IGNAL": 18227, + "Ġlesson": 18228, + "\">'": 18229, + "ĠCover": 18230, + "ĠHope": 18231, + "ĠTimer": 18232, + "Ġdad": 18233, + "viders": 18234, + "ĠPhot": 18235, + "/?": 18236, + "ropy": 18237, + "oming": 18238, + "asion": 18239, + "Ġ\\(": 18240, + "ĠET": 18241, + "ĠReading": 18242, + "Ġepisodes": 18243, + "lm": 18244, + "421": 18245, + "echa": 18246, + "Ġneuro": 18247, + "820": 18248, + "Ġharmon": 18249, + "Ġliberal": 18250, + "-ind": 18251, + "393": 18252, + "DATA": 18253, + "Ġeveryday": 18254, + "Ġdivided": 18255, + "ĠActiveRecord": 18256, + "figure": 18257, + "UA": 18258, + "ä¹": 18259, + "riendly": 18260, + "tech": 18261, + "601": 18262, + ".gameObject": 18263, + "иÑĤÑĮ": 18264, + "374": 18265, + "Ġmoon": 18266, + "ftime": 18267, + "Ġnoch": 18268, + "ĠTORT": 18269, + "ĠVM": 18270, + ".initial": 18271, + "(child": 18272, + "Ġmusical": 18273, + "Ġoc": 18274, + "bas": 18275, + "ĠHay": 18276, + "361": 18277, + "_long": 18278, + "Ġmemset": 18279, + "iley": 18280, + "adelphia": 18281, + "SV": 18282, + "roat": 18283, + "_tx": 18284, + "Ġlon": 18285, + "ĠngOnInit": 18286, + "bp": 18287, + "ĠGolden": 18288, + "ACHE": 18289, + "Ġworried": 18290, + "azi": 18291, + "Ear": 18292, + "Take": 18293, + "(fp": 18294, + "burgh": 18295, + "_Data": 18296, + "gres": 18297, + "ĠOnt": 18298, + "pus": 18299, + "Ġtransparent": 18300, + "Ġpocket": 18301, + "Ġram": 18302, + "igrations": 18303, + ".čĊčĊ": 18304, + "Ġ[(": 18305, + "Ġadopted": 18306, + "Ġreportedly": 18307, + "ĠDream": 18308, + "Ġ}));Ċ": 18309, + "losing": 18310, + "Ġteeth": 18311, + "ĠBooks": 18312, + "\",&": 18313, + "enny": 18314, + "LEMENT": 18315, + "Ġgel": 18316, + "ĠPlant": 18317, + "437": 18318, + "!âĢĿ": 18319, + ".host": 18320, + "ĠReply": 18321, + "376": 18322, + "rength": 18323, + "Ġrecognition": 18324, + "Ġ}}>Ċ": 18325, + "LA": 18326, + "Ġmirror": 18327, + "Ġassistant": 18328, + "(device": 18329, + "Ġspiritual": 18330, + "builder": 18331, + "§": 18332, + "Ġoutr": 18333, + "Ġtt": 18334, + "ĠPER": 18335, + "Ġradical": 18336, + "Methods": 18337, + "Ġpace": 18338, + "udy": 18339, + "Ġgut": 18340, + "ĠGreek": 18341, + "Ġnonatomic": 18342, + "ĠPaper": 18343, + "_GPIO": 18344, + "Ġobst": 18345, + ".Ad": 18346, + "vironments": 18347, + "ĠSov": 18348, + "356": 18349, + "(con": 18350, + "ĠTransaction": 18351, + ".assign": 18352, + "ĉcatch": 18353, + "elter": 18354, + "Ġbitcoin": 18355, + "_GR": 18356, + "ĠčĊ": 18473, + "metic": 18474, + "Ġtransformation": 18475, + "åı·": 18476, + "Ġrgb": 18477, + "istributions": 18478, + "Ġimplicit": 18479, + "/in": 18480, + "destination": 18481, + "аÑĤÑĮ": 18482, + "Zero": 18483, + "Ġunset": 18484, + "920": 18485, + ".where": 18486, + ".go": 18487, + "Ġformation": 18488, + "Ġdeclaration": 18489, + "()čĊčĊ": 18490, + "ĠExpl": 18491, + "ĉĉĉĠĠ": 18492, + "/pro": 18493, + ".JSON": 18494, + "441": 18495, + "Ġdesk": 18496, + ".substr": 18497, + "//----------------------------------------------------------------------------": 18498, + "lyn": 18499, + "pson": 18500, + "407": 18501, + "disable": 18502, + "ĠFunc": 18503, + "ĉAssert": 18504, + "ĠMARK": 18505, + "Ġdefeat": 18506, + "Ġblind": 18507, + "Ġconstants": 18508, + "362": 18509, + ".headers": 18510, + "UILD": 18511, + "Ġexpenses": 18512, + "Pixel": 18513, + "Ġhr": 18514, + "Ġfel": 18515, + "ĠEastern": 18516, + "424": 18517, + "490": 18518, + "_del": 18519, + "357": 18520, + "ĠCub": 18521, + "Ġsq": 18522, + "ĉcount": 18523, + "ĠDirectory": 18524, + "Ġexclus": 18525, + "Ġhistoric": 18526, + "Ġ------------------------------------------------": 18527, + "Ġcomposition": 18528, + "ĠdataGridView": 18529, + "ĠBurn": 18530, + "ĠBC": 18531, + "Master": 18532, + "Ġspawn": 18533, + "Ġbearing": 18534, + ".SetActive": 18535, + "ilo": 18536, + "Ġgallery": 18537, + "Ġfounded": 18538, + "Ġavailability": 18539, + ".sqrt": 18540, + "Ġpes": 18541, + "ĠDOM": 18542, + "mate": 18543, + "Oct": 18544, + "Ġmatched": 18545, + "itivity": 18546, + "Ġanxiety": 18547, + ".price": 18548, + "ĠInstant": 18549, + "ìĬ": 18550, + "Ġtut": 18551, + "ICollection": 18552, + ".shared": 18553, + "_sql": 18554, + "tbl": 18555, + "library": 18556, + "_destroy": 18557, + "ermal": 18558, + "ĠNotes": 18559, + "ĠEin": 18560, + "Ġsouthern": 18561, + "ĠOTHERWISE": 18562, + "Ġmacro": 18563, + ".lower": 18564, + "cls": 18565, + "ContentView": 18566, + ".link": 18567, + "constant": 18568, + "ĠBes": 18569, + "Ġsomebody": 18570, + "nb": 18571, + "399": 18572, + "\">{": 18573, + "(local": 18574, + ".....": 18575, + "ĠNull": 18576, + "mx": 18577, + "Ġç": 18578, + "Ġpause": 18579, + "-----------": 18580, + "_MO": 18581, + "ĠCM": 18582, + "ĠforKey": 18583, + "ĠDVD": 18584, + "Ġclosest": 18585, + "_DEVICE": 18586, + "ĠStephen": 18587, + "ĠBBC": 18588, + "ĠTravel": 18589, + "Paint": 18590, + "ĠResults": 18591, + "ĠRule": 18592, + "Ġtp": 18593, + "Ġratings": 18594, + "cin": 18595, + "csv": 18596, + ">/": 18597, + "ĠGOP": 18598, + "lad": 18599, + "ĠÑĢ": 18600, + "ĠindexPath": 18601, + "matrix": 18602, + "=f": 18603, + "arsed": 18604, + "Ġ});": 18605, + "ĠCos": 18606, + "ĠScore": 18607, + "Ġtak": 18608, + "ĠESP": 18609, + "ĠINC": 18610, + "_NULL": 18611, + "-flex": 18612, + "\"][": 18613, + "into": 18614, + "eland": 18615, + "Authorization": 18616, + "_FALSE": 18617, + "Ġgate": 18618, + "Ġvid": 18619, + "istent": 18620, + "TIME": 18621, + "Ġrewrite": 18622, + "Ġtie": 18623, + "Ġarchive": 18624, + "511": 18625, + ".events": 18626, + ".getParameter": 18627, + "ĠPermission": 18628, + "Ġprogramme": 18629, + "Ġé": 18630, + "jud": 18631, + "Ġcameras": 18632, + "338": 18633, + "349": 18634, + "(sys": 18635, + "ĠSyrian": 18636, + "Ġimprovements": 18637, + "Ġhip": 18638, + "Ġsuicide": 18639, + "Ġscholar": 18640, + "Ġcompatible": 18641, + "022": 18642, + "remote": 18643, + ".down": 18644, + "FUNCTION": 18645, + "Ġmanaging": 18646, + "ĠUIKit": 18647, + ".raw": 18648, + ">>>>": 18649, + "371": 18650, + "Ġdemands": 18651, + "ellite": 18652, + "Ġdent": 18653, + "ĠMicro": 18654, + "åıĸ": 18655, + "'][$": 18656, + "ĠIE": 18657, + "imension": 18658, + "Ġtrem": 18659, + "630": 18660, + "Ġgained": 18661, + ".with": 18662, + ".ok": 18663, + "hou": 18664, + "Ġbom": 18665, + "ampaign": 18666, + "Ġjoining": 18667, + "fish": 18668, + "ĠaddSubview": 18669, + "860": 18670, + "Ġnorthern": 18671, + ".cor": 18672, + "oret": 18673, + "Die": 18674, + "inish": 18675, + "_comp": 18676, + "Ġattended": 18677, + "Ġcollapse": 18678, + "ĠSS": 18679, + "acent": 18680, + "_EQUAL": 18681, + "ĠDeep": 18682, + "RGB": 18683, + "ĉtest": 18684, + "olves": 18685, + "uset": 18686, + "UnityEngine": 18687, + "writer": 18688, + "Resolver": 18689, + ",%": 18690, + "ifference": 18691, + "_remove": 18692, + "onda": 18693, + "Ġfemme": 18694, + "385": 18695, + "decode": 18696, + "Branch": 18697, + "Ġflush": 18698, + "Ġinnovative": 18699, + "Tests": 18700, + "Ġ['./": 18701, + "Ġcovering": 18702, + ".admin": 18703, + "ultipart": 18704, + "(lambda": 18705, + "namespace": 18706, + "ĠSport": 18707, + "Ġ!(": 18708, + "acles": 18709, + "Ġdepression": 18710, + "ĠKong": 18711, + "570": 18712, + "Ġpert": 18713, + "ĠConn": 18714, + "ĠOtherwise": 18715, + "/home": 18716, + "supported": 18717, + "Ġpink": 18718, + "Ġinvited": 18719, + "ños": 18720, + "_enabled": 18721, + "Ġ-Ċ": 18722, + "FW": 18723, + "eners": 18724, + "ĠMY": 18725, + "Ġsuggestions": 18726, + "Canvas": 18727, + "Ġfer": 18728, + "ĠMarketing": 18729, + "@Test": 18730, + "untu": 18731, + "ĠVen": 18732, + "ĠCou": 18733, + "ivals": 18734, + "Donald": 18735, + "limited": 18736, + "ĉĉĉĉĉĉĊ": 18737, + "Ġanalyst": 18738, + "(entry": 18739, + "Ġrepresentative": 18740, + "_attributes": 18741, + "Ġfur": 18742, + ".hide": 18743, + "resp": 18744, + "adores": 18745, + "rides": 18746, + "ĠJosh": 18747, + "robot": 18748, + "ĠNAT": 18749, + "Ġsesso": 18750, + "Ġintegrated": 18751, + ":true": 18752, + "parts": 18753, + "Ġstupid": 18754, + ":event": 18755, + "@endsection": 18756, + "Ġpu": 18757, + ".Table": 18758, + "ĠYii": 18759, + "`;ĊĊ": 18760, + "Ġclang": 18761, + "=\"\">": 18762, + "engan": 18763, + "_parameters": 18764, + ".internal": 18765, + "ĠModern": 18766, + "Ġmetric": 18767, + "Ġsemi": 18768, + "={{Ċ": 18769, + "707": 18770, + ".amazon": 18771, + "ĠBB": 18772, + "ainty": 18773, + "viewport": 18774, + "367": 18775, + "ĠstartActivity": 18776, + "dispatch": 18777, + "*****": 18778, + "Ġflav": 18779, + "ifferent": 18780, + "382": 18781, + "[this": 18782, + "Ġstake": 18783, + "Ġargued": 18784, + "viously": 18785, + ".work": 18786, + "ĠOak": 18787, + "Old": 18788, + "(async": 18789, + "notes": 18790, + "Ġflip": 18791, + "Ġdisag": 18792, + "ĠTE": 18793, + "ĉerror": 18794, + "<'": 18795, + "Ġ»ĊĊ": 18796, + "Ġfiltered": 18797, + "ĠMach": 18798, + "Ġhung": 18799, + "_dump": 18800, + "_samples": 18801, + "-dismiss": 18802, + "Ġray": 18803, + "Implemented": 18804, + "DK": 18805, + "Ġjed": 18806, + "090": 18807, + "Ġbreaks": 18808, + "Ġfits": 18809, + ".gr": 18810, + "ĠZero": 18811, + "oro": 18812, + "Ġequally": 18813, + "Ġ'[": 18814, + "Ġconcerning": 18815, + "<": 18914, + "Ġpromot": 18915, + "Ġincl": 18916, + "_only": 18917, + "를": 18918, + "ĠAttorney": 18919, + "-date": 18920, + "Ġlandscape": 18921, + "Ġfu": 18922, + "SY": 18923, + ".prop": 18924, + "ĠArr": 18925, + "pag": 18926, + "ParallelGroup": 18927, + "':čĊ": 18928, + "Ġlogs": 18929, + "aunch": 18930, + "unci": 18931, + "nama": 18932, + "TableCell": 18933, + "issues": 18934, + ".{": 18935, + "ecurity": 18936, + "_exec": 18937, + "olds": 18938, + "Ġhosts": 18939, + "Ġproto": 18940, + "_import": 18941, + "_sort": 18942, + "ĠBow": 18943, + "ĠNormal": 18944, + "ĠFarm": 18945, + ".createParallelGroup": 18946, + "Rotation": 18947, + ".err": 18948, + "Ġpleased": 18949, + "itage": 18950, + ".Wh": 18951, + "ĉĉĠĠĠĠ": 18952, + "MR": 18953, + "ĠMORE": 18954, + "ĠNatural": 18955, + "_transform": 18956, + "BASE": 18957, + "eneral": 18958, + "utdown": 18959, + ".commons": 18960, + "WT": 18961, + "Ġaan": 18962, + ".Result": 18963, + "dog": 18964, + "Ġclicking": 18965, + "),ĊĊ": 18966, + "#line": 18967, + "Operator": 18968, + "Ġciv": 18969, + "Ġmerg": 18970, + "obuf": 18971, + "ngthen": 18972, + "Ġ[{": 18973, + "Ġcancell": 18974, + "trigger": 18975, + ".:": 18976, + "WORK": 18977, + "declare": 18978, + "Ġdecrease": 18979, + "ÅĽci": 18980, + "loom": 18981, + ".None": 18982, + "ĠMI": 18983, + "ĠJason": 18984, + "Ġhealthcare": 18985, + "iamond": 18986, + "sylvania": 18987, + "*x": 18988, + "ĠRa": 18989, + "[b": 18990, + "Ġprinting": 18991, + "phabet": 18992, + "ĠLabour": 18993, + "opper": 18994, + "Ġzijn": 18995, + "-target": 18996, + "_FUNCTION": 18997, + "Ġoct": 18998, + "ениÑı": 18999, + "åľ¨": 19000, + "Ġwestern": 19001, + "Ġcomputers": 19002, + "ĠRET": 19003, + "HashMap": 19004, + "[String": 19005, + "getValue": 19006, + "_DATE": 19007, + ".Next": 19008, + "ĠFif": 19009, + "él": 19010, + "icked": 19011, + "æİ": 19012, + "-MM": 19013, + "Ġ{ĊĊĊ": 19014, + "Ġcontacts": 19015, + "Ġdigits": 19016, + "Produ": 19017, + "Ġunusual": 19018, + "Ġrapidly": 19019, + "tures": 19020, + "Ġangry": 19021, + "cancel": 19022, + "xxxx": 19023, + "_parser": 19024, + "idity": 19025, + "_PREFIX": 19026, + "710": 19027, + "Ġmehr": 19028, + "Ġrarely": 19029, + "ethe": 19030, + "opes": 19031, + "Ġ%.": 19032, + "works": 19033, + "Ġtheta": 19034, + "Ġcontribution": 19035, + "ĠTony": 19036, + "Ġsquad": 19037, + "537": 19038, + "ай": 19039, + "Ġîn": 19040, + "there": 19041, + "outed": 19042, + "ĉq": 19043, + "ĻĤ": 19044, + "good": 19045, + "LI": 19046, + "页": 19047, + "ĠLiving": 19048, + "izabeth": 19049, + "Ġkt": 19050, + "ĠDallas": 19051, + "]],Ċ": 19052, + "Ġ/>ĊĊ": 19053, + "Ġraising": 19054, + "/router": 19055, + "_game": 19056, + "368": 19057, + "ĠCUR": 19058, + "zens": 19059, + ".es": 19060, + "ĠfontWeight": 19061, + "(func": 19062, + "notification": 19063, + "Ġ'../../../": 19064, + "Ġblame": 19065, + "ãĢĤĊĊĊĊ": 19066, + "anco": 19067, + "980": 19068, + "Identity": 19069, + "follow": 19070, + "Ġarts": 19071, + "xs": 19072, + "Ġofficially": 19073, + "ĠStudio": 19074, + "Ġrecommendations": 19075, + "Ġlocale": 19076, + "Ġamateur": 19077, + "ĠEnable": 19078, + "Ġcaps": 19079, + ".End": 19080, + "388": 19081, + "-add": 19082, + "_gshared": 19083, + "ĠCT": 19084, + "Force": 19085, + "ĊĠĠĠĠĠĠĠĠĠĠĠĠĊ": 19086, + "Ġorange": 19087, + "Ġlp": 19088, + "Ġanswered": 19089, + ".Grid": 19090, + "Ġdual": 19091, + "Ġstrategic": 19092, + "Ġnobody": 19093, + "Ġfatal": 19094, + "_est": 19095, + "(el": 19096, + "Ġìł": 19097, + "ĠBudd": 19098, + "AIT": 19099, + "_factor": 19100, + "-one": 19101, + "ĠHAVE": 19102, + "\"čĊčĊ": 19103, + "760": 19104, + "Prof": 19105, + "Ġär": 19106, + "strings": 19107, + "Ġdirty": 19108, + "ĠFace": 19109, + "ĠBegin": 19110, + "ĠBus": 19111, + "Ġwis": 19112, + "åŃĹ": 19113, + "Ġspeaker": 19114, + "Ġcarrier": 19115, + "ĠOm": 19116, + "Ġhadn": 19117, + "Allow": 19118, + "::__": 19119, + "Ġverb": 19120, + "ĠComplete": 19121, + "ĠEasy": 19122, + "Ġbills": 19123, + "ĠĠĊĊ": 19124, + "Vertical": 19125, + "Ġpron": 19126, + "ĠDefine": 19127, + "Ġlookup": 19128, + "variables": 19129, + "Ġpandas": 19130, + "umes": 19131, + "Ġinnoc": 19132, + "ĠsetUp": 19133, + "ĠChampionship": 19134, + "artist": 19135, + "ĠCType": 19136, + "Foundation": 19137, + "à¹Ī": 19138, + "ĠSetup": 19139, + "428": 19140, + "Ġrecipes": 19141, + "ĠUIColor": 19142, + "ĠFight": 19143, + "Ġauthorized": 19144, + "_click": 19145, + "990": 19146, + "_success": 19147, + "angan": 19148, + "ĠMountain": 19149, + "ĠDoctor": 19150, + "Ġegg": 19151, + "ĠMedicine": 19152, + "cles": 19153, + "`.Ċ": 19154, + "[int": 19155, + "dashboard": 19156, + "ĠAppro": 19157, + "-dr": 19158, + "Ġproduces": 19159, + "Ġrental": 19160, + "Ġreload": 19161, + "381": 19162, + "Ġarrival": 19163, + "spot": 19164, + "Ġundert": 19165, + "378": 19166, + "Ġequipped": 19167, + "Ġproved": 19168, + "Ġcenters": 19169, + "Ġdefines": 19170, + "also": 19171, + "Ġopacity": 19172, + "ĠUnfortunately": 19173, + "ĠIllinois": 19174, + "Ġне": 19175, + "ĠTemple": 19176, + "ĠTrail": 19177, + "ĠKelly": 19178, + "Ġmeasurement": 19179, + "Ġseparated": 19180, + "-circle": 19181, + "Hey": 19182, + "ĠREAD": 19183, + "igits": 19184, + "Ġib": 19185, + "ĠMOD": 19186, + "attery": 19187, + "аз": 19188, + "Ġvend": 19189, + "енÑĤ": 19190, + "ĠHttpClient": 19191, + "359": 19192, + "safe": 19193, + "_ASS": 19194, + "icit": 19195, + "ĠConstruct": 19196, + "ĠClo": 19197, + "ĠSix": 19198, + "_TOKEN": 19199, + "(block": 19200, + "Ġwarned": 19201, + "/*!": 19202, + "!Ċ": 19296, + "Ġinnovation": 19297, + "_\"": 19298, + "Ġ);čĊčĊ": 19299, + "Ġspots": 19300, + "Ġchoosing": 19301, + ".cs": 19302, + "Ġflexible": 19303, + "UInt": 19304, + "435": 19305, + "930": 19306, + "Ġscratch": 19307, + "-al": 19308, + "Ġfestival": 19309, + "Ġoutstanding": 19310, + "================================================": 19311, + "Mean": 19312, + "ĠOregon": 19313, + "symbol": 19314, + ".account": 19315, + "dney": 19316, + "'''": 19317, + "!\",": 19318, + "901": 19319, + "Ġparticle": 19320, + "Ãĥ": 19321, + "[MAX": 19322, + "IVER": 19323, + "ERENCE": 19324, + "NSMutable": 19325, + "ĠColumbia": 19326, + "_ĊĊ": 19327, + ".fr": 19328, + "Ġcogn": 19329, + "VR": 19330, + "ĠMethods": 19331, + "ĠMade": 19332, + "ĠBR": 19333, + "ĠElse": 19334, + "Ġeggs": 19335, + "Ġswing": 19336, + "ĠInv": 19337, + "Ġdiseases": 19338, + "Ġfirms": 19339, + "Ġlemma": 19340, + "}`);Ċ": 19341, + "lings": 19342, + "Ġgym": 19343, + "uminum": 19344, + ".Trim": 19345, + "Mem": 19346, + "Ġcriticism": 19347, + "ibernate": 19348, + "_TX": 19349, + "ioni": 19350, + "Ġguidance": 19351, + "Ġrepeatedly": 19352, + "Ġsupplier": 19353, + "Ġpainting": 19354, + "864": 19355, + ".Fragment": 19356, + "edException": 19357, + "Ġwiring": 19358, + "Ġcourts": 19359, + "WEB": 19360, + "æľī": 19361, + "\\.": 19362, + "illance": 19363, + "Ġbrows": 19364, + "ĠPattern": 19365, + "PLICATION": 19366, + "ĠSummer": 19367, + "Chain": 19368, + "Ġcute": 19369, + "mercial": 19370, + "Ġdil": 19371, + "ĠFranklin": 19372, + "ĉglobal": 19373, + "INCLUDING": 19374, + "history": 19375, + "Ġlst": 19376, + "Qt": 19377, + "SDL": 19378, + "alia": 19379, + "iere": 19380, + "(...": 19381, + "ĉcin": 19382, + "iffs": 19383, + "velope": 19384, + "ĠRoot": 19385, + "cluster": 19386, + "UserName": 19387, + "igne": 19388, + "()Ċ": 19485, + "Ġapplying": 19486, + "Ġpromised": 19487, + "Ġox": 19488, + "ncia": 19489, + "ĠValidation": 19490, + "orts": 19491, + "_cur": 19492, + "elect": 19493, + "eye": 19494, + "(Data": 19495, + "Ġreporter": 19496, + "ĠBuff": 19497, + "395": 19498, + "Ġsr": 19499, + "Ġ\";": 19500, + "icky": 19501, + "Ġtempor": 19502, + "SN": 19503, + "Ġresident": 19504, + "pires": 19505, + "ysical": 19506, + "Ġendorse": 19507, + "ĠSong": 19508, + "isEmpty": 19509, + "leet": 19510, + "_util": 19511, + "Ġdistingu": 19512, + "ĠTalk": 19513, + "ĠMot": 19514, + "(default": 19515, + ".Arg": 19516, + "gorithms": 19517, + "_words": 19518, + "immer": 19519, + "_reset": 19520, + "family": 19521, + "WW": 19522, + "Ġsavings": 19523, + "ĠâĢĿ": 19524, + "_enable": 19525, + "sidebar": 19526, + "Running": 19527, + "Ġali": 19528, + "Ġtestim": 19529, + "Ġwarnings": 19530, + "ĠChem": 19531, + "ĠExit": 19532, + "Ġfounder": 19533, + "pector": 19534, + "Ġrm": 19535, + "_dataset": 19536, + "ĠDas": 19537, + "Ġhan": 19538, + "Getty": 19539, + "ál": 19540, + "Ġny": 19541, + "Ġpoverty": 19542, + "Ġresulted": 19543, + ".by": 19544, + "ĠVisit": 19545, + "Ġobtaining": 19546, + "/'.$": 19547, + "ĠĠĠĠĠĠĠĠĠĠĠĊ": 19548, + "shall": 19549, + "_LEFT": 19550, + "UIImage": 19551, + "_Name": 19552, + "have": 19553, + "ĠNob": 19554, + "lr": 19555, + "-footer": 19556, + "Ġnaked": 19557, + "ĠGarden": 19558, + "\\Facades": 19559, + "Ġgraduate": 19560, + "417": 19561, + "Ġfranchise": 19562, + "plane": 19563, + "Ġcontributions": 19564, + "ĠstringWith": 19565, + "Ġcrypto": 19566, + "Ġmovements": 19567, + "athers": 19568, + "Ġlifetime": 19569, + "Ġcommunicate": 19570, + "jar": 19571, + "ĠFragment": 19572, + "_IF": 19573, + "ĠNavy": 19574, + "ĠFigure": 19575, + "Ġsimulation": 19576, + "_stop": 19577, + "Ġreporters": 19578, + "Ġversus": 19579, + "aja": 19580, + "Ġα": 19581, + "Ġgovernor": 19582, + "ListItem": 19583, + "Ġsealed": 19584, + ".Background": 19585, + "edi": 19586, + "ashing": 19587, + "Ġlip": 19588, + "ĠIh": 19589, + "merge": 19590, + "Ġnec": 19591, + "024": 19592, + "elocity": 19593, + "ATEG": 19594, + "Ġseeds": 19595, + "Ġfloating": 19596, + "701": 19597, + "_FA": 19598, + "walk": 19599, + "ĉuser": 19600, + "_depth": 19601, + "Ġwage": 19602, + "@app": 19603, + "Nil": 19604, + "([\"": 19605, + "(vector": 19606, + "Ġsecretary": 19607, + "461": 19608, + "ĠjPanel": 19609, + "vez": 19610, + "³³³³": 19611, + "direction": 19612, + "ĠEP": 19613, + "Ġhunt": 19614, + "396": 19615, + "JsonProperty": 19616, + "ĠPORT": 19617, + "]\",": 19618, + "ап": 19619, + "ĠForeign": 19620, + "panic": 19621, + "Ġtrials": 19622, + "ĠAle": 19623, + "Ġrural": 19624, + "-value": 19625, + "authorized": 19626, + "ĠScotland": 19627, + ".drop": 19628, + "ĠMT": 19629, + "ç±": 19630, + "391": 19631, + "rowth": 19632, + "515": 19633, + "FilePath": 19634, + "Ġrecall": 19635, + "ifle": 19636, + "Ġcel": 19637, + "ĠSELECT": 19638, + "kn": 19639, + "_case": 19640, + "Ġcrop": 19641, + "543": 19642, + "sure": 19643, + "pot": 19644, + "ICS": 19645, + "Ġstem": 19646, + "Ġindustries": 19647, + "Put": 19648, + "Ġaber": 19649, + "roadcast": 19650, + "Icons": 19651, + ")\")Ċ": 19652, + "æĪIJåĬŁ": 19653, + "gui": 19654, + "Ġassumed": 19655, + "Ġrx": 19656, + "EA": 19657, + "è§": 19658, + "ELL": 19659, + "Ġdose": 19660, + "Ġine": 19661, + "Ġdeeper": 19662, + "lider": 19663, + "Ġordinary": 19664, + "Ġgolf": 19665, + "605": 19666, + "_IMAGE": 19667, + "ĠNAME": 19668, + "(module": 19669, + "Ġatom": 19670, + "Ġbelt": 19671, + "Ġoffices": 19672, + "506": 19673, + "beta": 19674, + "Ġphilosophy": 19675, + "(JSON": 19676, + "-field": 19677, + "Ġintroduce": 19678, + "Ġconvenience": 19679, + "optim": 19680, + ">\"Ċ": 19681, + "athy": 19682, + "Ġemployer": 19683, + "quate": 19684, + "Ġedited": 19685, + "Arguments": 19686, + "ĠNations": 19687, + "__)": 19688, + "Ġnose": 19689, + "ĠSample": 19690, + "')ĊĊĊ": 19691, + "Ġcake": 19692, + ".getAttribute": 19693, + "HD": 19694, + "392": 19695, + "Modified": 19696, + "445": 19697, + "Ġpredicted": 19698, + "ÅĦ": 19699, + "anie": 19700, + "Sorry": 19701, + "(doc": 19702, + "wind": 19703, + "ieve": 19704, + "Ġprovisions": 19705, + "ATER": 19706, + "OTE": 19707, + "MY": 19708, + ".Autowired": 19709, + "ĠBath": 19710, + "423": 19711, + ".Boolean": 19712, + "Ġbackend": 19713, + ".Mouse": 19714, + "ateral": 19715, + "paper": 19716, + "Const": 19717, + "ĠVR": 19718, + "_entity": 19719, + "_CTRL": 19720, + "ĠProtection": 19721, + "ĠGM": 19722, + "ĠStudy": 19723, + "Ġsoup": 19724, + "otime": 19725, + "'use": 19726, + "]\"": 19727, + "/users": 19728, + "aug": 19729, + "ĠHong": 19730, + "_norm": 19731, + "ãģ¨": 19732, + "Ġsecre": 19733, + "(Build": 19734, + "ĠContract": 19735, + "olas": 19736, + "Ġsauce": 19737, + "Ġaggressive": 19738, + "Ġracial": 19739, + "character": 19740, + "@@": 19741, + "Ġcompile": 19742, + "ĠVoid": 19743, + "_rem": 19744, + "_memory": 19745, + "348": 19746, + "kk": 19747, + "Ġmic": 19748, + "Same": 19749, + "Utility": 19750, + "ĠHtml": 19751, + "ĠXml": 19752, + "Ready": 19753, + "Ġgall": 19754, + "Ġallegedly": 19755, + "ĉĉĉĉĠĠĠ": 19756, + "ĠMetal": 19757, + "ĠPersonal": 19758, + "ĠborderRadius": 19759, + "rxjs": 19760, + "objects": 19761, + "Ġwanting": 19762, + "Ġbowl": 19763, + "vendor": 19764, + "offsetof": 19765, + "ĠRs": 19766, + "ĠRating": 19767, + "Ġrally": 19768, + "_NODE": 19769, + "418": 19770, + "ĠMix": 19771, + "Ġadvertis": 19772, + "485": 19773, + "667": 19774, + "Ġnarrative": 19775, + "sal": 19776, + "Ġmc": 19777, + "SError": 19778, + "Ġfingers": 19779, + "Ġaccompany": 19780, + "Ġtired": 19781, + "Ġstride": 19782, + "Ġgui": 19783, + "elist": 19784, + "Locale": 19785, + "Ġreleases": 19786, + "iking": 19787, + "Ġanger": 19788, + ")))ĊĊ": 19789, + "allest": 19790, + "Summary": 19791, + "(O": 19792, + "(for": 19793, + "Ġbasketball": 19794, + "Ġroads": 19795, + "ĠInstall": 19796, + "ĠFab": 19797, + "itmap": 19798, + "475": 19799, + "Ġ))Ċ": 19800, + "Ġintersection": 19801, + "ighbor": 19802, + "ĠBry": 19803, + "ĠHERE": 19804, + "Software": 19805, + "elfare": 19806, + "acs": 19807, + "622": 19808, + "Ġtrailer": 19809, + ".getClass": 19810, + "chars": 19811, + "Ġregulation": 19812, + "Ġrefers": 19813, + "Ġdestruction": 19814, + "Ġcontinuous": 19815, + "ĠAustin": 19816, + "é¢": 19817, + "akan": 19818, + ".window": 19819, + "ĠTemplates": 19820, + "Ġabsence": 19821, + ":n": 19822, + "Ġdisorder": 19823, + "flash": 19824, + "Ġdelet": 19825, + "boards": 19826, + "ĠĠĉ": 19827, + "ROP": 19828, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 19829, + "Ġacqu": 19830, + "Ġlawsuit": 19831, + "ĠReviews": 19832, + "Ġgarage": 19833, + "timer": 19834, + "Ġej": 19835, + "ĠRectangle": 19836, + "Ġflowers": 19837, + "398": 19838, + "ilst": 19839, + "ĠInstance": 19840, + "Super": 19841, + "det": 19842, + "disposing": 19843, + "ĠES": 19844, + "ĠIC": 19845, + "vere": 19846, + "Sk": 19847, + "_channels": 19848, + "puted": 19849, + "/null": 19850, + "nnen": 19851, + "431": 19852, + "ĠGallery": 19853, + "_global": 19854, + "Authentication": 19855, + "ĠRank": 19856, + "Ġblocked": 19857, + "Ġcalm": 19858, + "market": 19859, + "ĉval": 19860, + "Ġaug": 19861, + "period": 19862, + "ĠConstant": 19863, + "Ġ?>\">Ċ": 19864, + "Ġlobby": 19865, + "pal": 19866, + "379": 19867, + "Ġsink": 19868, + "508": 19869, + "iah": 19870, + "С": 19871, + "urname": 19872, + "Ġconver": 19873, + "Ġinvestigate": 19874, + "Christ": 19875, + "Hub": 19876, + "ĠIND": 19877, + "ĠPed": 19878, + "uras": 19879, + "ĉurl": 19880, + "ĠTro": 19881, + "Ġpreferences": 19882, + "Ġguaranteed": 19883, + "`ĊĊ": 19884, + "Ġportions": 19885, + "Ġevalu": 19886, + "'>;ĊĊ": 19985, + ".AutoScaleMode": 19986, + "Ġcats": 19987, + "465": 19988, + "Ġregistry": 19989, + "ulus": 19990, + "FI": 19991, + "payload": 19992, + "-search": 19993, + "Ġstaying": 19994, + "acious": 19995, + "Decoration": 19996, + "Review": 19997, + "Inf": 19998, + "Keep": 19999, + "itis": 20000, + ",String": 20001, + "Coord": 20002, + "Ġpero": 20003, + "Sex": 20004, + "ĠAtlanta": 20005, + "uesta": 20006, + "Argb": 20007, + ">*": 20008, + "}_": 20009, + "Footer": 20010, + "Ġemployed": 20011, + "_bound": 20012, + "vide": 20013, + ".func": 20014, + "$scope": 20015, + "Ġspo": 20016, + "ĠAnal": 20017, + "ounced": 20018, + "around": 20019, + "Ġrestriction": 20020, + "Ġshops": 20021, + "åĢ": 20022, + "ĠLatin": 20023, + "-col": 20024, + "Ġbarely": 20025, + "ĠEuro": 20026, + "Er": 20027, + "Ġfaire": 20028, + "_distance": 20029, + "_unlock": 20030, + "Quote": 20031, + "IVATE": 20032, + "ĠåĪ": 20033, + "Ġaimed": 20034, + "ĠRetrie": 20035, + ".iter": 20036, + "Ġwrapped": 20037, + "Ġagreements": 20038, + "strument": 20039, + "(product": 20040, + "Ġstudied": 20041, + ".setValue": 20042, + "Ġye": 20043, + "ĠCache": 20044, + "MBOL": 20045, + "Ġquarterback": 20046, + "Ġsyntax": 20047, + ".getElementsBy": 20048, + ".version": 20049, + "website": 20050, + "Runner": 20051, + "_single": 20052, + "ativ": 20053, + "ĠAltern": 20054, + "ĠBeautiful": 20055, + "rightarrow": 20056, + "Ġdiversity": 20057, + "plash": 20058, + "(co": 20059, + ".Fill": 20060, + "Ġtyping": 20061, + "387": 20062, + "023": 20063, + "Ġclar": 20064, + "Hit": 20065, + "OO": 20066, + "acco": 20067, + "507": 20068, + "worth": 20069, + "Ġscripts": 20070, + "ĠMuslims": 20071, + "ĠLL": 20072, + "erving": 20073, + "(boolean": 20074, + "Ġbaseball": 20075, + "ĠCAN": 20076, + "394": 20077, + "044": 20078, + "MAIL": 20079, + "depend": 20080, + "Ġrespective": 20081, + "Ġconstexpr": 20082, + ".*;ĊĊ": 20083, + "']))Ċ": 20084, + "Ġyard": 20085, + "Ġidentical": 20086, + "ifecycle": 20087, + "USH": 20088, + "upiter": 20089, + ".validate": 20090, + "cli": 20091, + "ISTER": 20092, + "Indicator": 20093, + "Fail": 20094, + "Ġdemocracy": 20095, + ".var": 20096, + "Ġsatisfied": 20097, + "-------------": 20098, + "encer": 20099, + "hor": 20100, + "Ġrounds": 20101, + "DAO": 20102, + "oa": 20103, + "Ġflask": 20104, + "=c": 20105, + "[]Ċ": 20106, + "/dist": 20107, + "Ġparte": 20108, + "Ġconfirmation": 20109, + "eron": 20110, + "aware": 20111, + "": 20112, + "Ġdependencies": 20113, + "ĠVideos": 20114, + "-row": 20115, + "Ġ**/Ċ": 20116, + "Ġnou": 20117, + "Ġhover": 20118, + "æŀ": 20119, + "Ġnin": 20120, + "ĠUSD": 20121, + "Mac": 20122, + "_Load": 20123, + "Ġoutcomes": 20124, + "_socket": 20125, + "Ġqueries": 20126, + "wm": 20127, + "592": 20128, + "Ġhitting": 20129, + "inux": 20130, + "Mich": 20131, + "udge": 20132, + "ATAB": 20133, + "Ġvulnerable": 20134, + "ä¾": 20135, + "Ġportfolio": 20136, + ":YES": 20137, + "ĉmap": 20138, + "Bound": 20139, + "Ġiteration": 20140, + "incess": 20141, + "Ġactors": 20142, + "ĠQual": 20143, + "_clean": 20144, + "ãĢijãĢIJ": 20145, + "MSG": 20146, + "Green": 20147, + "ĠOfficer": 20148, + "Ġsmoking": 20149, + ">',": 20150, + "ĠFlo": 20151, + "++;": 20152, + "433": 20153, + "olygon": 20154, + "Ġbulk": 20155, + "Ġdrama": 20156, + "Ġexceptions": 20157, + "osed": 20158, + "Ġ+čĊ": 20159, + "Ġlegacy": 20160, + "CV": 20161, + "Ġcontributed": 20162, + "ĠTerms": 20163, + "Ġbt": 20164, + "434": 20165, + "Ġuntuk": 20166, + "Ġalien": 20167, + "===Ċ": 20168, + "ĉVector": 20169, + "Ġls": 20170, + "Online": 20171, + ".facebook": 20172, + "numeric": 20173, + "ockets": 20174, + "Aut": 20175, + "bury": 20176, + "-redux": 20177, + "ĠRedistributions": 20178, + "GLOBALS": 20179, + "urrencies": 20180, + "Ġtons": 20181, + "âĢĻ,": 20182, + "Ġê": 20183, + "(col": 20184, + "ĠSymbol": 20185, + "Ġstayed": 20186, + "ĠML": 20187, + "Ġmunicip": 20188, + "Ġsexo": 20189, + "Sen": 20190, + "nr": 20191, + "Ġgains": 20192, + "Ġshortly": 20193, + ".Menu": 20194, + "ý": 20195, + "KNOWN": 20196, + "Ġoperators": 20197, + "-V": 20198, + "ĠPatrick": 20199, + "/add": 20200, + "_CO": 20201, + "iration": 20202, + "(post": 20203, + "Posts": 20204, + "/_": 20205, + "Ġplug": 20206, + "Ġintellectual": 20207, + "Ġmetab": 20208, + "Ġpregnancy": 20209, + "ĠPremier": 20210, + "nm": 20211, + "Ġprediction": 20212, + "606": 20213, + "ĠMinistry": 20214, + "Three": 20215, + "valuate": 20216, + "ĠMini": 20217, + "bu": 20218, + "оз": 20219, + "\";čĊ": 20679, + "ĠSav": 20680, + ".Bold": 20681, + "Ġenables": 20682, + "ĉtmp": 20683, + "Ġmanually": 20684, + "ĠSqu": 20685, + "userid": 20686, + ".function": 20687, + ".cache": 20688, + "LOPT": 20689, + ".Services": 20690, + "588": 20691, + "ddit": 20692, + "tim": 20693, + ">>": 20761, + "station": 20762, + "lore": 20763, + "atype": 20764, + "ishop": 20765, + "/****************************************************************": 20766, + "521": 20767, + "ComboBox": 20768, + "Ġvacation": 20769, + "Ġinitiative": 20770, + "ĠdefaultValue": 20771, + "770": 20772, + "concat": 20773, + "ĠKh": 20774, + "632": 20775, + "ĠWelcome": 20776, + "izedName": 20777, + "Migration": 20778, + "Ġgradient": 20779, + "Hot": 20780, + "Ġhardly": 20781, + "elo": 20782, + "ĠStudents": 20783, + "Ġloose": 20784, + "730": 20785, + "atz": 20786, + ".Send": 20787, + "'/": 20788, + "Ġuniversal": 20789, + "Ġenterprise": 20790, + "Ġregex": 20791, + "Ġvisitor": 20792, + "ĠFly": 20793, + "Seq": 20794, + "à¸Ļ": 20795, + "ĠVisual": 20796, + "Ġlibraries": 20797, + "atoes": 20798, + "Payment": 20799, + "447": 20800, + "Ġpent": 20801, + "Ġgathered": 20802, + "VRTX": 20803, + "ĠDM": 20804, + "Split": 20805, + "Ġletting": 20806, + "ÐĿ": 20807, + "_errors": 20808, + "epoch": 20809, + "PARAM": 20810, + "cu": 20811, + "ÑģÑĤв": 20812, + "olutions": 20813, + "Editing": 20814, + "fonts": 20815, + "Ġallocated": 20816, + "ĠBased": 20817, + "(Y": 20818, + "ĠJudge": 20819, + "Ġbrothers": 20820, + "FILES": 20821, + "ço": 20822, + "531": 20823, + "wb": 20824, + "_PI": 20825, + "'^": 20826, + "Ġsword": 20827, + ".services": 20828, + "Ġnl": 20829, + "Tim": 20830, + "igg": 20831, + "ĠMoore": 20832, + "Ġcryptoc": 20833, + "åĩº": 20834, + "_posts": 20835, + "otate": 20836, + "?'": 20837, + "....ĊĊ": 20838, + "Ġkl": 20839, + "=\"$": 20840, + "Ġdecoration": 20841, + "ạ": 20842, + "ĠDIRECT": 20843, + "GUI": 20844, + ")=>{Ċ": 20845, + "Ġnewsletter": 20846, + "Ġprecis": 20847, + "(point": 20848, + "ĠEquipment": 20849, + "uty": 20850, + "ĠDave": 20851, + "Ġparticipation": 20852, + "uarios": 20853, + "xit": 20854, + ".As": 20855, + "ETER": 20856, + "orous": 20857, + "Ġshield": 20858, + "[]>": 20859, + "ilitary": 20860, + ".origin": 20861, + "Ġpromotion": 20862, + "Unt": 20863, + "Ġct": 20864, + "TRA": 20865, + "556": 20866, + "ViewHolder": 20867, + "Ġsigma": 20868, + "delta": 20869, + "arehouse": 20870, + "contract": 20871, + "(Vector": 20872, + "721": 20873, + "Ġcompete": 20874, + "/form": 20875, + "/components": 20876, + "Ġnr": 20877, + "ĠIndones": 20878, + "ĠоÑĤ": 20879, + "ĠVolume": 20880, + ".files": 20881, + "(resp": 20882, + "/models": 20883, + "Ġsurf": 20884, + "standard": 20885, + "/o": 20886, + "ĠXCTAssert": 20887, + "VICES": 20888, + ".Code": 20889, + "SED": 20890, + "Ġactivate": 20891, + "Delta": 20892, + "Ġlimitation": 20893, + "rij": 20894, + "Ġpregnant": 20895, + ":^(": 20896, + "Ġsour": 20897, + "pie": 20898, + "803": 20899, + "Ġexpense": 20900, + "ication": 20901, + "ĠLarge": 20902, + "Ġ±": 20903, + "ĠBowl": 20904, + "(models": 20905, + "/N": 20906, + "857": 20907, + "Pa": 20908, + ".reload": 20909, + "Ġwondering": 20910, + "462": 20911, + "Execution": 20912, + "ĉĠĠĠĠĠĠ": 20913, + "ĠGraphics": 20914, + "ĠContin": 20915, + "_job": 20916, + "ĠgetName": 20917, + "ĠMagn": 20918, + "ĠDWORD": 20919, + "mad": 20920, + "Ġnh": 20921, + "features": 20922, + "}\");Ċ": 20923, + "heets": 20924, + "(train": 20925, + "zn": 20926, + "Ġrecruit": 20927, + ".connection": 20928, + "Ġbarrel": 20929, + "Ġsteam": 20930, + "_setting": 20931, + "Ġangular": 20932, + "aneously": 20933, + "Ġbil": 20934, + "ĠNorm": 20935, + "522": 20936, + "(!$": 20937, + "ibt": 20938, + "%(": 20939, + "Ġposit": 20940, + "ĠFather": 20941, + "intendo": 20942, + "565": 20943, + "Live": 20944, + "041": 20945, + "Ġports": 20946, + "Ġmej": 20947, + "Ġlanding": 20948, + "ponder": 20949, + "Ġcod": 20950, + "_HEADER": 20951, + ".Margin": 20952, + "Ġballs": 20953, + "Ġdiscussions": 20954, + "Ġblend": 20955, + "Hex": 20956, + "Ġfarmers": 20957, + "Ġmaintaining": 20958, + "ĠĠĠčĊ": 20959, + "syn": 20960, + "[T": 20961, + "rus": 20962, + "439": 20963, + "uffers": 20964, + "Ġcontributors": 20965, + "_sys": 20966, + ".Debug": 20967, + "Ġconstructed": 20968, + "omes": 20969, + "?id": 20970, + "slider": 20971, + "Ġsuppliers": 20972, + "611": 20973, + "scriber": 20974, + "pes": 20975, + "Ðŀ": 20976, + "\":čĊ": 20977, + "\\Controller": 20978, + "))ĊĊĊ": 20979, + "Ġlua": 20980, + "Multi": 20981, + "ENS": 20982, + "Src": 20983, + "Ġpetition": 20984, + "Ġslave": 20985, + "looking": 20986, + "VERT": 20987, + "ĉvector": 20988, + "Special": 20989, + "hh": 20990, + "anne": 20991, + "ĠNiger": 20992, + "/views": 20993, + "zing": 20994, + "endant": 20995, + "(": 21238, + "544": 21239, + ".Product": 21240, + "Forms": 21241, + "NEW": 21242, + "Pay": 21243, + "ĉboolean": 21244, + "_contact": 21245, + "ĠElectric": 21246, + "skip": 21247, + "Ġwur": 21248, + "Ġchronic": 21249, + "_driver": 21250, + "940": 21251, + "ĠSab": 21252, + "ĠUlt": 21253, + "ĠRad": 21254, + "STATUS": 21255, + "ĠLewis": 21256, + "OB": 21257, + "Ġgifts": 21258, + ".Rec": 21259, + "TRUE": 21260, + "Ġintensity": 21261, + "Marker": 21262, + ".compare": 21263, + "ffic": 21264, + "Cookie": 21265, + "ĠBaby": 21266, + "ĠBigDecimal": 21267, + "ilet": 21268, + "ĠHOLDERS": 21269, + "ĠLady": 21270, + "Ġlung": 21271, + "ĠAlabama": 21272, + "Ġdess": 21273, + "`);Ċ": 21274, + "ĠBuilder": 21275, + "_region": 21276, + "Ġneutral": 21277, + "909": 21278, + "Both": 21279, + "Ġhp": 21280, + "Ġhorn": 21281, + "Ġsegments": 21282, + "ĠEC": 21283, + "\"=>\"": 21284, + "(rec": 21285, + "ĠPi": 21286, + "GM": 21287, + "Ġlaptop": 21288, + "Scalar": 21289, + "463": 21290, + "isd": 21291, + "-dialog": 21292, + "ĠAnderson": 21293, + "Ġmistakes": 21294, + "708": 21295, + "ĠHan": 21296, + "jes": 21297, + "estination": 21298, + "436": 21299, + "Ġpromises": 21300, + "bid": 21301, + "ĠScient": 21302, + "GIN": 21303, + "ĠPerformance": 21304, + "bage": 21305, + ".users": 21306, + "leading": 21307, + "Ġoral": 21308, + "Graphics": 21309, + "488": 21310, + "_PTR": 21311, + "518": 21312, + "hang": 21313, + "Ġinev": 21314, + "processing": 21315, + "Factor": 21316, + "ĠNA": 21317, + "$string": 21318, + "Ġgrounds": 21319, + ".SaveChanges": 21320, + "clock": 21321, + "941": 21322, + "cripcion": 21323, + "ĠNewton": 21324, + "gc": 21325, + ".includes": 21326, + "Ġblast": 21327, + "Ġ'-'": 21328, + "Ġpuede": 21329, + "469": 21330, + ".Session": 21331, + "Ġgrep": 21332, + "_final": 21333, + "ĠGay": 21334, + "ĠGive": 21335, + "iri": 21336, + "-star": 21337, + "ĠUIImage": 21338, + "_epoch": 21339, + "ubb": 21340, + "enth": 21341, + "Ġelite": 21342, + "Ġcampaigns": 21343, + "ĠPorno": 21344, + "_assign": 21345, + "Protocol": 21346, + "ĠBeing": 21347, + "ĠAirport": 21348, + "Ġconventional": 21349, + "ĠWat": 21350, + "ĠCI": 21351, + "ETA": 21352, + "ĠAnthony": 21353, + "Ġtablet": 21354, + "(format": 21355, + "Ġconsistently": 21356, + "ĠIowa": 21357, + "474": 21358, + "Ġavatar": 21359, + "027": 21360, + ".cursor": 21361, + "![": 21362, + "Ġhanging": 21363, + "Her": 21364, + "Such": 21365, + "';ĊĊĊ": 21366, + "orgeous": 21367, + "()==": 21368, + "ĠviewModel": 21369, + "Ġãĥ": 21370, + "Ġels": 21371, + "ĠAgent": 21372, + "Fetch": 21373, + "apor": 21374, + "Ġcx": 21375, + "pread": 21376, + "ĠPier": 21377, + "oeff": 21378, + "616": 21379, + "Sn": 21380, + "890": 21381, + "ĠVirtual": 21382, + "Apr": 21383, + ".White": 21384, + "615": 21385, + "_MOD": 21386, + "ĠPoints": 21387, + "失": 21388, + "Ġgenes": 21389, + "Ġvendor": 21390, + "Ġmainstream": 21391, + "Ċ": 21421, + "Filename": 21422, + "Ġsne": 21423, + "ĠFootball": 21424, + "Ġrival": 21425, + "Ġdisaster": 21426, + "ionic": 21427, + "ĠDamage": 21428, + ".Resource": 21429, + "-en": 21430, + "ĠTypes": 21431, + "getString": 21432, + "(board": 21433, + "Ġbol": 21434, + "plain": 21435, + "zym": 21436, + "า": 21437, + "Ġscanner": 21438, + "ilder": 21439, + "_msgs": 21440, + "æı": 21441, + "(intent": 21442, + "Ġdestruct": 21443, + "Ġbust": 21444, + "ĠEmploy": 21445, + "oni": 21446, + "ĠUIViewController": 21447, + "Ġodds": 21448, + "earer": 21449, + "Geometry": 21450, + "Ġyii": 21451, + "_EXPORT": 21452, + "ĠAttack": 21453, + "Ġniet": 21454, + "Ġimpression": 21455, + "ĠGil": 21456, + "_prob": 21457, + "528": 21458, + "ĠCF": 21459, + "ĠExperience": 21460, + "/plugins": 21461, + ".Method": 21462, + "Ġbeliefs": 21463, + "Native": 21464, + "_build": 21465, + "Ġvig": 21466, + "Ġranks": 21467, + "covered": 21468, + "705": 21469, + "such": 21470, + "Guard": 21471, + ".pack": 21472, + "adder": 21473, + "809": 21474, + "ivia": 21475, + "lng": 21476, + "ĠвÑĭ": 21477, + "552": 21478, + "Timestamp": 21479, + "_now": 21480, + "Ġpoker": 21481, + "Ġunc": 21482, + "Ġshapes": 21483, + "-types": 21484, + "_period": 21485, + "pk": 21486, + "Ġveteran": 21487, + "Ġsono": 21488, + "Ġappointed": 21489, + "overflow": 21490, + ".driver": 21491, + "_cat": 21492, + "utt": 21493, + "plant": 21494, + "imb": 21495, + "ĠAccept": 21496, + "Ġconcert": 21497, + "ĉnode": 21498, + "ĉz": 21499, + "?>čĊ": 21500, + "Ġbanned": 21501, + "ĉĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 21502, + "Ġtoxic": 21503, + "Ġdisappe": 21504, + "473": 21505, + "ÈĽ": 21506, + "Ġgrace": 21507, + "ateful": 21508, + "Reply": 21509, + "ĠCruz": 21510, + "486": 21511, + "Ġscrap": 21512, + "Ġkeywords": 21513, + "simp": 21514, + "Ġmortgage": 21515, + "Ġcyber": 21516, + "ĠExecute": 21517, + "Ġlatitude": 21518, + "ifu": 21519, + ".COM": 21520, + "dbo": 21521, + "Ġsorts": 21522, + "ĠGas": 21523, + "omial": 21524, + ".Local": 21525, + "Cells": 21526, + ".Replace": 21527, + "Strings": 21528, + ".fit": 21529, + "ĠThird": 21530, + "%\",Ċ": 21531, + "Ġ{}\".": 21532, + "ĠSony": 21533, + "Ġ[:": 21534, + "585": 21535, + "Ġfallen": 21536, + ".')Ċ": 21537, + "inh": 21538, + "ĠMC": 21539, + "Ġredis": 21540, + "Codes": 21541, + "Ġprofiles": 21542, + "hook": 21543, + "Reducer": 21544, + "_FUNC": 21545, + "Ġnavigate": 21546, + "strlen": 21547, + "Ġhorm": 21548, + "áŀ": 21549, + "ĠSR": 21550, + ".boot": 21551, + "Ġdigest": 21552, + "ĉheader": 21553, + ".findOne": 21554, + "æģ": 21555, + "DbType": 21556, + "nia": 21557, + "_merge": 21558, + "Ġdonne": 21559, + "/Getty": 21560, + "_CHAR": 21561, + "Ġbands": 21562, + ".URL": 21563, + "artial": 21564, + "Ġfreq": 21565, + "Ġsist": 21566, + "Ng": 21567, + "Ġrendering": 21568, + "\\Core": 21569, + "Widgets": 21570, + "ĠVA": 21571, + "Ġactivists": 21572, + "Ste": 21573, + "=_": 21574, + "alla": 21575, + "Stamp": 21576, + "Ġloads": 21577, + "Ġxx": 21578, + "ĠLearning": 21579, + ".Mvc": 21580, + "uir": 21581, + "(\"$": 21582, + "Ġconnecting": 21583, + "ReadOnly": 21584, + "uru": 21585, + "ĠEag": 21586, + "BIT": 21587, + "_DEL": 21588, + "å§": 21589, + "arrass": 21590, + "external": 21591, + "ĠYOUR": 21592, + "ĠBrew": 21593, + "ĠFive": 21594, + "Ġresize": 21595, + "igid": 21596, + "eration": 21597, + "653": 21598, + "ĠÑį": 21599, + "536": 21600, + "åĬł": 21601, + "039": 21602, + "ĠCatch": 21603, + "Ùģ": 21604, + "ĠLeon": 21605, + "amil": 21606, + ".Body": 21607, + "Clip": 21608, + "/list": 21609, + ".br": 21610, + "EditText": 21611, + "ĉdb": 21612, + ".Game": 21613, + "(BuildContext": 21614, + "backend": 21615, + ".Red": 21616, + "facebook": 21617, + "529": 21618, + ".urls": 21619, + "mr": 21620, + "rolled": 21621, + "-------": 21622, + "Ġintervention": 21623, + "Ġretirement": 21624, + "ĠKit": 21625, + "ĠPRE": 21626, + "UpperCase": 21627, + "ĠSocket": 21628, + "Ġ:-": 21629, + "Ġstudying": 21630, + "ĠMetro": 21631, + "arded": 21632, + "Ġconversations": 21633, + "Called": 21634, + "Ġexamine": 21635, + "ertificate": 21636, + ".gz": 21637, + "-responsive": 21638, + "Ġrefund": 21639, + "_network": 21640, + "026": 21641, + "allowed": 21642, + "empt": 21643, + "Ġmeals": 21644, + "Categories": 21645, + "Ġtraveling": 21646, + "Ġkg": 21647, + "Ġshame": 21648, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 21649, + "Ġexplicitly": 21650, + "Ġmathematic": 21651, + "ĠSuite": 21652, + "ĠRGB": 21653, + "******/": 21654, + "Ġmixture": 21655, + "learning": 21656, + ".template": 21657, + "atts": 21658, + "wx": 21659, + "ĉctx": 21660, + ".properties": 21661, + "Ġdrinks": 21662, + "ĠEither": 21663, + "setText": 21664, + ".getData": 21665, + ".zip": 21666, + "Ġreveals": 21667, + ".Ċ": 21681, + "Ġranked": 21682, + "_impl": 21683, + "ĠHandles": 21684, + "Ġhosted": 21685, + "Ġupdating": 21686, + "album": 21687, + "éĿ": 21688, + "Ġshader": 21689, + "Editors": 21690, + "-round": 21691, + "[]{": 21692, + "Ġsep": 21693, + "ĠHi": 21694, + "TEM": 21695, + "lookup": 21696, + ".man": 21697, + "_INPUT": 21698, + "Ġthreatened": 21699, + "_IMPORT": 21700, + "Ġdrops": 21701, + "ruit": 21702, + "sid": 21703, + "both": 21704, + "ĠExcel": 21705, + "Ġjer": 21706, + "ordinary": 21707, + "ей": 21708, + "VIEW": 21709, + "reply": 21710, + "Ġ):Ċ": 21711, + "colors": 21712, + "verified": 21713, + "_Tr": 21714, + "_parse": 21715, + "Ġcongress": 21716, + "617": 21717, + "Promise": 21718, + "ints": 21719, + "ĠMother": 21720, + ".Api": 21721, + "ĠDuration": 21722, + "ĠfirstName": 21723, + "inheritdoc": 21724, + "ĠMars": 21725, + "Ġapr": 21726, + "ODY": 21727, + "Ġvisits": 21728, + "631": 21729, + "Ġhealing": 21730, + "letters": 21731, + ")));čĊ": 21732, + "future": 21733, + ".Framework": 21734, + "Ġkiss": 21735, + "Ġinvolve": 21736, + "Ġsilent": 21737, + "adows": 21738, + "Ġanybody": 21739, + "sch": 21740, + "690": 21741, + "Ġsolely": 21742, + "-img": 21743, + "Ġpropri": 21744, + "Ġinstruct": 21745, + "Ġlicenses": 21746, + "Ġmeth": 21747, + "Ġcondem": 21748, + "ĠDomain": 21749, + "ĠHarris": 21750, + "ĠsÃ¥": 21751, + "CEPT": 21752, + "Batch": 21753, + "@extends": 21754, + "ĠCONTRIBUT": 21755, + ".DataFrame": 21756, + "472": 21757, + "_packet": 21758, + "recision": 21759, + "Ġfocusing": 21760, + ".ht": 21761, + "__\":Ċ": 21762, + ":Get": 21763, + "ĠKC": 21764, + "Ġpassage": 21765, + "Segment": 21766, + "_center": 21767, + "-zA": 21768, + "_BL": 21769, + "Ġconvin": 21770, + "Ġclassified": 21771, + "ĠNSMutable": 21772, + "_ap": 21773, + "tile": 21774, + "Rectangle": 21775, + "492": 21776, + "(nums": 21777, + "vens": 21778, + "ĠUIButton": 21779, + "ĠFeder": 21780, + "amo": 21781, + "Ġoutline": 21782, + "ĠParser": 21783, + "Ġâī": 21784, + "ĠWorks": 21785, + ".Schema": 21786, + "Ġengines": 21787, + "637": 21788, + "563": 21789, + "_common": 21790, + "542": 21791, + "_old": 21792, + "ĠsetContentView": 21793, + "Ġ///<": 21794, + "ĠBT": 21795, + "fm": 21796, + "Ġdivers": 21797, + "_weights": 21798, + "emark": 21799, + "ĠACT": 21800, + "Ġproportion": 21801, + "overlay": 21802, + ".dirname": 21803, + "ĠGit": 21804, + "_REFERENCE": 21805, + "<>": 21806, + "lb": 21807, + "_rule": 21808, + "è´¥": 21809, + "ĠPutin": 21810, + "Ġsleeping": 21811, + "():čĊ": 21812, + "Ġpreserve": 21813, + "Ġparliament": 21814, + "ĠLooking": 21815, + "Ġpicking": 21816, + "ĠDispatch": 21817, + "Ġslip": 21818, + "ëĵ": 21819, + "ĠLyn": 21820, + "_signal": 21821, + "configuration": 21822, + "ĠPitt": 21823, + "491": 21824, + "aden": 21825, + "procedure": 21826, + "Ġenthusi": 21827, + "fight": 21828, + "ĠConsider": 21829, + "Ġtorn": 21830, + "Connected": 21831, + ".cos": 21832, + "_groups": 21833, + "ĠThink": 21834, + "Ġdeliber": 21835, + "Ġresid": 21836, + "working": 21837, + ".columns": 21838, + "ĠCalled": 21839, + "Ġeslint": 21840, + ">\",": 21841, + "_DOWN": 21842, + "hist": 21843, + "ĠAdvanced": 21844, + "Ġrewards": 21845, + "actors": 21846, + "Ġsilence": 21847, + "479": 21848, + "Ġmyth": 21849, + "Ġneur": 21850, + "519": 21851, + "Ġauction": 21852, + ".GetString": 21853, + "eks": 21854, + "(project": 21855, + "598": 21856, + "ĉmsg": 21857, + "ĉoutput": 21858, + "Ġcomplaints": 21859, + "551": 21860, + ",S": 21861, + "Ġtbl": 21862, + "Ġ,ĊĊ": 21863, + "riors": 21864, + "ahren": 21865, + "Ġlawyers": 21866, + "redux": 21867, + "_symbol": 21868, + "offee": 21869, + "_RESULT": 21870, + "(Name": 21871, + "UTC": 21872, + ".currentTime": 21873, + "Ġorganis": 21874, + ".arg": 21875, + "533": 21876, + "Ġminim": 21877, + "wick": 21878, + "Ġreceives": 21879, + "Balance": 21880, + "Ġspeaks": 21881, + "ĠDays": 21882, + "ĠBelow": 21883, + "483": 21884, + "tipo": 21885, + "Present": 21886, + "Ġreserv": 21887, + "hp": 21888, + "Ġrit": 21889, + "_RIGHT": 21890, + "--)": 21891, + "Ġchairman": 21892, + "781": 21893, + "DIS": 21894, + "ĠBOOST": 21895, + "Ġexperiments": 21896, + "687": 21897, + "__);Ċ": 21898, + "Ġstamp": 21899, + "Ġfert": 21900, + "Ġfond": 21901, + "Ter": 21902, + "elve": 21903, + "uren": 21904, + "+i": 21905, + "endency": 21906, + "Ġvirtually": 21907, + "...\"": 21908, + "ï½ŀ": 21909, + "925": 21910, + "-cent": 21911, + "_unique": 21912, + "Ġpricing": 21913, + "mic": 21914, + "RESH": 21915, + "Ġ:::": 21916, + "Ġannotation": 21917, + "ĠCircle": 21918, + "ongodb": 21919, + "itas": 21920, + "Ġ%(": 21921, + "(component": 21922, + "Ġоб": 21923, + "(port": 21924, + "-hour": 21925, + ".obj": 21926, + "LBL": 21927, + "Ġjury": 21928, + "GBT": 21929, + "Ġspy": 21930, + "ĠProfessional": 21931, + "Ġ\"\";ĊĊ": 21932, + "Ġstriking": 21933, + "Ġdiscrimination": 21934, + "Ġpays": 21935, + "937": 21936, + "lict": 21937, + "entes": 21938, + "Ġthrowing": 21939, + "ĠPlugin": 21940, + "(def": 21941, + "ĠRuntimeException": 21942, + "ĠMigration": 21943, + "599": 21944, + "Ġdic": 21945, + "bag": 21946, + "onia": 21947, + "Ġcorruption": 21948, + "704": 21949, + "(Map": 21950, + "Ġprz": 21951, + ".dto": 21952, + "Ġacquire": 21953, + "StateToProps": 21954, + "Ġloving": 21955, + "ож": 21956, + "_pattern": 21957, + "Ġemotions": 21958, + "Ġpublisher": 21959, + "_be": 21960, + "Ġcouples": 21961, + "498": 21962, + "oj": 21963, + "ĠChart": 21964, + "Ġtrop": 21965, + ".tool": 21966, + "Ġestablishment": 21967, + "Ġdol": 21968, + "654": 21969, + "Ġtower": 21970, + "Ġlane": 21971, + "ĠSydney": 21972, + "Ġfilling": 21973, + "claimed": 21974, + "644": 21975, + "Ġdialogue": 21976, + "Ġconvention": 21977, + "booking": 21978, + "parency": 21979, + "æ±": 21980, + "ĠGeneric": 21981, + "718": 21982, + "\\Schema": 21983, + "482": 21984, + "618": 21985, + "Ġranges": 21986, + "/ch": 21987, + "Ġpanels": 21988, + "Ġruled": 21989, + "çĶŁ": 21990, + ".ts": 21991, + "_sets": 21992, + "Ġcleanup": 21993, + "Previous": 21994, + "ĠAnimal": 21995, + "607": 21996, + "($(": 21997, + "ĠAve": 21998, + "ollar": 21999, + "028": 22000, + "_eval": 22001, + "ĉName": 22002, + "(tree": 22003, + "Ġ\"]": 22004, + "571": 22005, + "Ġduties": 22006, + "='/": 22007, + "Clicked": 22008, + "Ġdifferently": 22009, + "ĠClark": 22010, + "Ġdit": 22011, + "ologists": 22012, + "Ġsynd": 22013, + "Ġsends": 22014, + "-known": 22015, + "kb": 22016, + "ĠModal": 22017, + "itative": 22018, + "Ġracing": 22019, + "Ġhighlights": 22020, + "ĠSimon": 22021, + "ĠCaptain": 22022, + "ä¿¡": 22023, + "ĠCB": 22024, + "contin": 22025, + "aran": 22026, + "Ġphysics": 22027, + "retty": 22028, + "etal": 22029, + ".md": 22030, + "axios": 22031, + "Ġspeakers": 22032, + "Ġprep": 22033, + "Ġawarded": 22034, + "ì§Ģ": 22035, + "ĠCorn": 22036, + "ĠNature": 22037, + "UDIO": 22038, + "737": 22039, + "Ġproj": 22040, + "-pre": 22041, + "[u": 22042, + "Features": 22043, + "ĠisEqual": 22044, + "Binary": 22045, + "sig": 22046, + "Ġconfusion": 22047, + "546": 22048, + "568": 22049, + "ĠHat": 22050, + "Ġktó": 22051, + ".configure": 22052, + "MON": 22053, + "494": 22054, + "/edit": 22055, + "_Add": 22056, + ",true": 22057, + "541": 22058, + "Ġcli": 22059, + "ErrorMessage": 22060, + "-loader": 22061, + "Dimensions": 22062, + "ultiply": 22063, + "Ġ{!!": 22064, + "ĠSqlCommand": 22065, + "Ġspoken": 22066, + "Ġpics": 22067, + "Ġtoy": 22068, + "(Key": 22069, + "ĠLoop": 22070, + "ب": 22071, + "EATURE": 22072, + "inction": 22073, + "_setup": 22074, + "wrapper": 22075, + "Ġtong": 22076, + "cular": 22077, + "Opt": 22078, + ".Pl": 22079, + "=\",": 22080, + "(length": 22081, + "umn": 22082, + "Ġchrom": 22083, + "Ġsevent": 22084, + "ĠIllegalArgumentException": 22085, + "478": 22086, + "ĉstart": 22087, + "Ġbegun": 22088, + "CEPTION": 22089, + "dataset": 22090, + "825": 22091, + "ĠFailed": 22092, + "cols": 22093, + "459": 22094, + "Ġknee": 22095, + "imore": 22096, + ".splice": 22097, + "shell": 22098, + "iggers": 22099, + "Ġthemes": 22100, + "995": 22101, + "ĠDJ": 22102, + "ĠAssistant": 22103, + "-$": 22104, + "Maybe": 22105, + "Ġordering": 22106, + "ĠIntelligence": 22107, + "ĠMassachusetts": 22108, + "Ġfailing": 22109, + "elson": 22110, + "Great": 22111, + "=i": 22112, + ".rest": 22113, + "Ġinvite": 22114, + "-disable": 22115, + ".GroupBox": 22116, + "âĢĻest": 22117, + "Ġtackle": 22118, + "gv": 22119, + "etter": 22120, + "Ġ),čĊ": 22121, + "_rules": 22122, + ".warn": 22123, + "functions": 22124, + "ĠChristians": 22125, + "Ġbacked": 22126, + "Ġslider": 22127, + "Ġenjoying": 22128, + "nest": 22129, + "Ġhij": 22130, + "_ms": 22131, + "//*": 22132, + "Annotations": 22133, + "ĠVariables": 22134, + "": 22351, + "cycle": 22352, + "ĠBull": 22353, + "paths": 22354, + "Ġunp": 22355, + "ĠviewDidLoad": 22356, + "_Model": 22357, + "ĠassertTrue": 22358, + "Ġrated": 22359, + "Decl": 22360, + "verted": 22361, + "ĠDat": 22362, + "brew": 22363, + "Ġpointing": 22364, + "Ms": 22365, + "ĠPointer": 22366, + ")'": 22367, + "_non": 22368, + "527": 22369, + "ĠSEC": 22370, + "Ġyeah": 22371, + "gency": 22372, + "initialize": 22373, + "fly": 22374, + "711": 22375, + "[pos": 22376, + ",g": 22377, + "Tele": 22378, + "034": 22379, + "Ġjoke": 22380, + "Ġclause": 22381, + ".findById": 22382, + "enes": 22383, + "(instance": 22384, + "626": 22385, + "£": 22386, + "915": 22387, + "Ġslic": 22388, + "_home": 22389, + "Ġ*/}Ċ": 22390, + "_pages": 22391, + "(service": 22392, + "905": 22393, + "RP": 22394, + "ĠAmong": 22395, + ".getCurrent": 22396, + "806": 22397, + "ãĤ¹": 22398, + "Ġslee": 22399, + "=[Ċ": 22846, + "oler": 22847, + "Ġlibert": 22848, + "Ġ`Ċ": 22849, + "Ġwenn": 22850, + "lated": 22851, + "Ġimmune": 22852, + "(Node": 22853, + "ĠProblem": 22854, + "ĠAbs": 22855, + "logs": 22856, + "Ġ../": 22857, + "ĠADC": 22858, + "Ġ}}\">Ċ": 22859, + ">');Ċ": 22860, + "=b": 22861, + "ĠWind": 22862, + "lahoma": 22863, + "Ġallocate": 22864, + "orian": 22865, + "Ġprescription": 22866, + "-quality": 22867, + "ĠMayor": 22868, + "855": 22869, + "inely": 22870, + "endforeach": 22871, + "ĠComplex": 22872, + "kom": 22873, + "709": 22874, + "TY": 22875, + "790": 22876, + "]].": 22877, + ".Style": 22878, + "_many": 22879, + "','$": 22880, + "Ġbarrier": 22881, + "ĠFetch": 22882, + "ĠMarvel": 22883, + "Ġresist": 22884, + "ого": 22885, + "bidden": 22886, + "ĠRunnable": 22887, + ":false": 22888, + "899": 22889, + "Ġbuilds": 22890, + "ĠStage": 22891, + "Ġdub": 22892, + "empo": 22893, + ".site": 22894, + "558": 22895, + ";ĊĊĊĊ": 22896, + "994": 22897, + "ĠDenver": 22898, + "Ġrevel": 22899, + "Ġtriggered": 22900, + "Ġdice": 22901, + "_fail": 22902, + "Ġgc": 22903, + "833": 22904, + "589": 22905, + "ĉX": 22906, + "ĠThrowable": 22907, + "775": 22908, + ".router": 22909, + "ĠRevolution": 22910, + "ÑĢа": 22911, + "_NON": 22912, + "055": 22913, + "Ł¥": 22914, + "578": 22915, + "Ġelder": 22916, + "Ġabroad": 22917, + "Ġе": 22918, + "ĠAdult": 22919, + "blr": 22920, + "glyphicon": 22921, + "613": 22922, + "Ġpromoting": 22923, + "Ġiz": 22924, + "ĠSolid": 22925, + "645": 22926, + "_loader": 22927, + "early": 22928, + ".enabled": 22929, + "-edit": 22930, + "ĠUL": 22931, + "_play": 22932, + "ĠInterrupt": 22933, + "Ġadvantages": 22934, + "ucle": 22935, + "Ġmechanical": 22936, + ".tableLayoutPanel": 22937, + "ĠWorking": 22938, + "Ġanonymous": 22939, + "Rating": 22940, + "igious": 22941, + "_phone": 22942, + ".addActionListener": 22943, + "Ġfran": 22944, + "unden": 22945, + "Ġ*)&": 22946, + "_bool": 22947, + "ulative": 22948, + "Ġcone": 22949, + "ĠMult": 22950, + "Ġmö": 22951, + "ĠForward": 22952, + "]):Ċ": 22953, + "Ġconvinced": 22954, + "acted": 22955, + "643": 22956, + "ãģĵ": 22957, + "ĠConfigure": 22958, + "Ġceiling": 22959, + "Der": 22960, + "Ġpassengers": 22961, + "Groups": 22962, + "Ġsoccer": 22963, + "/W": 22964, + "aviors": 22965, + "swith": 22966, + "ĠZone": 22967, + ".Options": 22968, + "ĠMom": 22969, + "ieder": 22970, + "Arrays": 22971, + "Ġtreatments": 22972, + "Ġprotecting": 22973, + "fac": 22974, + "Ġpickle": 22975, + "ButtonItem": 22976, + "713": 22977, + "Ġblocking": 22978, + "strar": 22979, + "ò": 22980, + "ĠExport": 22981, + "Ġthrew": 22982, + "otta": 22983, + "ĠBASE": 22984, + ".ws": 22985, + ".LEADING": 22986, + "orderBy": 22987, + "_delay": 22988, + "ĠPu": 22989, + ".dll": 22990, + "ĠChoose": 22991, + "992": 22992, + "Police": 22993, + "ĠBEGIN": 22994, + "boxes": 22995, + "Ġdiamond": 22996, + ",l": 22997, + "Ġĉĉĉ": 22998, + "Ġcurious": 22999, + "624": 23000, + "tv": 23001, + "Ġerotische": 23002, + "ackages": 23003, + "ĉSet": 23004, + "Tick": 23005, + ".border": 23006, + "staticmethod": 23007, + "Ġcher": 23008, + "invoice": 23009, + "Ġcru": 23010, + "Ġdefect": 23011, + "_metadata": 23012, + "relation": 23013, + "ikan": 23014, + "[N": 23015, + "(Qt": 23016, + "(Base": 23017, + "æģ¯": 23018, + "beat": 23019, + "ĠEmpty": 23020, + "ĉo": 23021, + "_shift": 23022, + "Ġregret": 23023, + "722": 23024, + "Those": 23025, + "Cent": 23026, + "ĠPortug": 23027, + "ĠIslands": 23028, + "ĠTIME": 23029, + "Management": 23030, + "996": 23031, + "-sp": 23032, + "539": 23033, + "ême": 23034, + "Ġnotion": 23035, + "unifu": 23036, + "PK": 23037, + "826": 23038, + "è¡Į": 23039, + "ĠCURLOPT": 23040, + "\\\"\\": 23041, + "UV": 23042, + "çº": 23043, + "dra": 23044, + "cou": 23045, + "=`": 23046, + "ĠDestroy": 23047, + "rp": 23048, + ".cancel": 23049, + "GG": 23050, + "runtime": 23051, + "ĠVue": 23052, + "Ġprogressive": 23053, + "/services": 23054, + "Ġrunner": 23055, + "_FRAME": 23056, + ".ToolStripMenuItem": 23057, + "Ġ','": 23058, + "delay": 23059, + "=utf": 23060, + "Ġscreening": 23061, + "Ġpulling": 23062, + "omas": 23063, + "Ġanth": 23064, + "-new": 23065, + "/local": 23066, + "ĠiPad": 23067, + "Ġtwitter": 23068, + "Ġdying": 23069, + "Ġheaven": 23070, + "ĠUInt": 23071, + "ĠSenator": 23072, + "Ġpresum": 23073, + "ĠWalker": 23074, + "Ġovercome": 23075, + "etection": 23076, + "Ġembarrass": 23077, + "China": 23078, + "639": 23079, + "Include": 23080, + "ROLL": 23081, + "ĠdataType": 23082, + "David": 23083, + "ร": 23084, + "lop": 23085, + "-month": 23086, + "Ġscar": 23087, + "ĠSafe": 23088, + "Ġ****************************************************************": 23089, + "Ġaccessories": 23090, + "Ġramp": 23091, + "_USE": 23092, + "Ġcontrad": 23093, + "))]Ċ": 23094, + "Ġprest": 23095, + "ĠHR": 23096, + "ĠRap": 23097, + "Ġusize": 23098, + "Ġcapability": 23099, + "Ġcort": 23100, + "-next": 23101, + "077": 23102, + "627": 23103, + "Ġburden": 23104, + "822": 23105, + "_reader": 23106, + "Ġ@@": 23107, + "regular": 23108, + "ĠKa": 23109, + "036": 23110, + "MAN": 23111, + "Ġastr": 23112, + "Ġ'')Ċ": 23113, + "Ġfed": 23114, + "Ġparsing": 23115, + "ĠYears": 23116, + "Ġbroker": 23117, + "\":{\"": 23118, + "Ġakt": 23119, + "Inventory": 23120, + "abeled": 23121, + "Ġargparse": 23122, + "*******Ċ": 23123, + "versation": 23124, + "Ġcord": 23125, + "ĠTi": 23126, + "Ġhopefully": 23127, + "Ġah": 23128, + "verb": 23129, + "Ġstolen": 23130, + ".Entry": 23131, + "Ġexpecting": 23132, + "Orientation": 23133, + "Ġpowered": 23134, + "Ġpersist": 23135, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 23136, + "']);": 23137, + "')),Ċ": 23138, + "ĠCash": 23139, + "ĉitem": 23140, + "818": 23141, + "grades": 23142, + "ropol": 23143, + "basic": 23144, + "Ġ\");čĊ": 23145, + "Ġawards": 23146, + "(range": 23147, + "-all": 23148, + "ĠIBOutlet": 23149, + "ĠIndeed": 23150, + "----------------------------------------------------------------------------": 23151, + "Ġstomach": 23152, + "Ġflower": 23153, + "Ġsew": 23154, + "_times": 23155, + "avis": 23156, + "QString": 23157, + "ĠRoutes": 23158, + "_prot": 23159, + "Ġcomedy": 23160, + "Ġlogout": 23161, + "Ġwooden": 23162, + "Ġposter": 23163, + "piece": 23164, + ".Join": 23165, + "ĠPok": 23166, + "celona": 23167, + "mutex": 23168, + ";čĊčĊčĊ": 23169, + "Ġstrikes": 23170, + "787": 23171, + "Loaded": 23172, + ")arg": 23173, + "esa": 23174, + "United": 23175, + "Ep": 23176, + "PELL": 23177, + "807": 23178, + "ĠAtlantic": 23179, + "ullet": 23180, + "652": 23181, + "apple": 23182, + "Ġsettled": 23183, + "acon": 23184, + "Ġprinter": 23185, + "ĠGC": 23186, + "å®ļ": 23187, + "Ġrendered": 23188, + ",âĢĻ": 23189, + "heit": 23190, + "social": 23191, + ".ge": 23192, + "714": 23193, + "ĠRick": 23194, + "ĠUtah": 23195, + "got": 23196, + "onical": 23197, + "ĠScroll": 23198, + "ĠSciences": 23199, + "Ġjug": 23200, + "Ġampl": 23201, + "enti": 23202, + "LEFT": 23203, + "Ġtabs": 23204, + "Ġenormous": 23205, + ".getKey": 23206, + "locate": 23207, + ".EX": 23208, + ".storage": 23209, + ".We": 23210, + "Ġtoast": 23211, + "ĠAdditionally": 23212, + "882": 23213, + "ĠNOW": 23214, + "547": 23215, + "_UPDATE": 23216, + "Ġtransferred": 23217, + "tha": 23218, + ".Display": 23219, + "_ui": 23220, + "IDEO": 23221, + "Ġmeaningful": 23222, + "ĠMoscow": 23223, + ",this": 23224, + "ĠVictoria": 23225, + "æĶ¹": 23226, + "ĠÐŁ": 23227, + ".stack": 23228, + "ĠBarn": 23229, + "paredStatement": 23230, + ":string": 23231, + "Ġbij": 23232, + "ĠSTATE": 23233, + "Ġemployers": 23234, + "ĉinput": 23235, + "(|": 23236, + "Ġlex": 23237, + "invoke": 23238, + "ĉnum": 23239, + "++,": 23240, + "atial": 23241, + "orses": 23242, + "Ġfork": 23243, + "_txt": 23244, + "ĠAntonio": 23245, + "Ġ(<": 23246, + "averse": 23247, + "Ġdevast": 23248, + "ãĢĢ": 23249, + ".Dec": 23250, + "ĠGard": 23251, + "/ui": 23252, + ".%": 23253, + "tri": 23254, + "Ġrolled": 23255, + "ValuePair": 23256, + "itten": 23257, + "ĠTher": 23258, + "Ġvrou": 23259, + "ĠFlow": 23260, + "ĠFinance": 23261, + "ĠComb": 23262, + "HC": 23263, + ".setVisible": 23264, + "isl": 23265, + "Ġpk": 23266, + "773": 23267, + "Ġupset": 23268, + "(raw": 23269, + "ĠVice": 23270, + "eatures": 23271, + "ĠLang": 23272, + "029": 23273, + "Looking": 23274, + "767": 23275, + "ĠAST": 23276, + "Ġtrips": 23277, + "ĠJustin": 23278, + "browser": 23279, + "=\"'.$": 23280, + ".vertices": 23281, + "821": 23282, + "-co": 23283, + "}/{": 23284, + "Ġ?,": 23285, + "ĠDomin": 23286, + "ĠBelg": 23287, + "\"<": 23288, + "Ġsuppose": 23289, + "addy": 23290, + "Ġwalks": 23291, + "688": 23292, + "ERRU": 23293, + "_filters": 23294, + "Preferred": 23295, + "scene": 23296, + "еÑģ": 23297, + "ĠAffairs": 23298, + "Ġ\"#{": 23299, + "ĠonSubmit": 23300, + "Ġstocks": 23301, + "/view": 23302, + "gree": 23303, + "-get": 23304, + "903": 23305, + "hit": 23306, + "Jo": 23307, + ".getC": 23308, + "725": 23309, + "Initialized": 23310, + "ÑĤи": 23311, + "cuts": 23312, + "(Type": 23313, + "ĠAgreement": 23314, + "ĠVietnam": 23315, + "Ġ/*!": 23316, + "Ġpizza": 23317, + "-view": 23318, + "_em": 23319, + "Ġlhs": 23320, + "Ġmuy": 23321, + "ĠIdent": 23322, + "ĠFriends": 23323, + "061": 23324, + "Ġabund": 23325, + "_AD": 23326, + ".timestamp": 23327, + "-'": 23328, + "Ġduplicate": 23329, + "Ġhunting": 23330, + "Ġregulatory": 23331, + "iao": 23332, + "amous": 23333, + "ĠEntertainment": 23334, + "[A": 23335, + "iatric": 23336, + "_CLIENT": 23337, + "ĠKids": 23338, + "/pkg": 23339, + "Break": 23340, + ")));ĊĊ": 23341, + "ĠShape": 23342, + "Ġrelating": 23343, + "Interrupt": 23344, + "ableOpacity": 23345, + "embre": 23346, + "Ġmystery": 23347, + "Ġjournalists": 23348, + "ritable": 23349, + ".Link": 23350, + "Ġstopping": 23351, + "CRET": 23352, + ".DB": 23353, + "Ġpopularity": 23354, + "Ġgew": 23355, + "Ġimpr": 23356, + "setValue": 23357, + "FLAG": 23358, + "ĉmax": 23359, + "Ġbake": 23360, + "wy": 23361, + "ĠEconomic": 23362, + "Ġencontr": 23363, + "Ġfname": 23364, + "/de": 23365, + "Rank": 23366, + "Ġbugs": 23367, + ".sm": 23368, + "Ġmedian": 23369, + "DOWN": 23370, + "ĠSure": 23371, + "AtIndex": 23372, + "ĠDick": 23373, + "Ġ(__": 23374, + ".delta": 23375, + "Fr": 23376, + "Ġsuggesting": 23377, + "ĠRecyclerView": 23378, + ",e": 23379, + "START": 23380, + "/****************************************************************************": 23381, + "xford": 23382, + "Ġreceipt": 23383, + "CLAIM": 23384, + "readonly": 23385, + "968": 23386, + "Ġengaging": 23387, + "619": 23388, + "Ca": 23389, + "asma": 23390, + "Ġensuring": 23391, + "English": 23392, + "ĠVancouver": 23393, + "hyth": 23394, + "Ġpurchasing": 23395, + "ĠPI": 23396, + ".word": 23397, + "(sp": 23398, + ".home": 23399, + ":def": 23400, + "Ġgig": 23401, + "574": 23402, + "671": 23403, + "ĠVe": 23404, + "forum": 23405, + "ĠMitch": 23406, + "Bay": 23407, + "_FL": 23408, + "651": 23409, + "Ġsoll": 23410, + "577": 23411, + "_columns": 23412, + "Ġminority": 23413, + "bird": 23414, + "Ġhanded": 23415, + "SSL": 23416, + "STAT": 23417, + "Ġnervous": 23418, + "ĥ½": 23419, + "ĠfilePath": 23420, + "CREATE": 23421, + "Aw": 23422, + "Ġpens": 23423, + "835": 23424, + "seed": 23425, + "ĠCompute": 23426, + "olk": 23427, + "594": 23428, + "ĠAsset": 23429, + "reach": 23430, + "'),čĊ": 23431, + "navigation": 23432, + "LF": 23433, + "/util": 23434, + "ĠPub": 23435, + "ĠâĶ": 23436, + "cion": 23437, + "##Ċ": 23438, + "072": 23439, + "III": 23440, + "TagName": 23441, + "Ġamid": 23442, + "permission": 23443, + "ifiable": 23444, + "xFFFFFFFF": 23445, + "ни": 23446, + ".Buffer": 23447, + "_irq": 23448, + "dark": 23449, + "Ġretval": 23450, + ".fire": 23451, + "production": 23452, + ".listen": 23453, + "ĠWeather": 23454, + "Ġbuyers": 23455, + ".ne": 23456, + "erp": 23457, + "ĠPent": 23458, + "699": 23459, + "Ġwelfare": 23460, + "ĠpageSize": 23461, + "ĠStadium": 23462, + "erta": 23463, + "Ġlev": 23464, + "ampa": 23465, + "Pager": 23466, + "665": 23467, + "Ġcharging": 23468, + "ĠNetflix": 23469, + "|null": 23470, + "_random": 23471, + ".xpath": 23472, + "Ġstere": 23473, + "ĠISIS": 23474, + "ponses": 23475, + "(loc": 23476, + "566": 23477, + "eyond": 23478, + "ĠOfficial": 23479, + "657": 23480, + "ĠMaryland": 23481, + "DataType": 23482, + "_par": 23483, + "{},": 23484, + "ĠEnjoy": 23485, + "727": 23486, + "_SHIFT": 23487, + "ĠAwards": 23488, + "_ENTRY": 23489, + "Ġseemingly": 23490, + "enticate": 23491, + "Ġhearts": 23492, + "583": 23493, + "_;ĊĊ": 23494, + "ĠHIV": 23495, + "Ġindivid": 23496, + "ĠFlag": 23497, + "_ctrl": 23498, + "ĠCallback": 23499, + ",z": 23500, + "ĠGPU": 23501, + "ĉobj": 23502, + "ĠPhoenix": 23503, + "ĠBUS": 23504, + "907": 23505, + "Ġrubber": 23506, + "_AUTH": 23507, + "ĠSolutions": 23508, + "(location": 23509, + "Variables": 23510, + ".setEnabled": 23511, + "_high": 23512, + "WO": 23513, + "Gesture": 23514, + "Ġretry": 23515, + "ĠobjectForKey": 23516, + "alloween": 23517, + "Ġmos": 23518, + "ĠCele": 23519, + "Ġikke": 23520, + "(cell": 23521, + "ĠMODE": 23522, + "rena": 23523, + "Ġdescribing": 23524, + "641": 23525, + "Ġphi": 23526, + "Ġrd": 23527, + "Ġdeserve": 23528, + "Ġwheels": 23529, + "å¸Ĥ": 23530, + "Ġcritics": 23531, + "755": 23532, + "Namespace": 23533, + "ĠFra": 23534, + "ĠĊĊĊĊ": 23535, + "Ġalla": 23536, + "Ġrequiring": 23537, + "æľŁ": 23538, + "utation": 23539, + "Ġdelayed": 23540, + "Ġadministrative": 23541, + "Ġbay": 23542, + ".hidden": 23543, + "Tex": 23544, + "051": 23545, + "Ġboundaries": 23546, + "Ġ]);ĊĊ": 23547, + "ĠFollowing": 23548, + "~/": 23549, + "Fi": 23550, + "_conv": 23551, + "_TITLE": 23552, + "Ġdesde": 23553, + "ICollectionView": 23554, + "Alias": 23555, + "Ġbite": 23556, + "patient": 23557, + "_COMMAND": 23558, + "Completed": 23559, + "ĉelif": 23560, + "(<": 23561, + "Business": 23562, + "ĠPool": 23563, + "Ġpursue": 23564, + "ĠBan": 23565, + "_steps": 23566, + "_DECL": 23567, + "umble": 23568, + "Ġcombo": 23569, + "ĠLayer": 23570, + ".xr": 23571, + "Ġdup": 23572, + "---------": 23573, + "628": 23574, + "Ġmodifier": 23575, + "rob": 23576, + "rez": 23577, + "696": 23578, + "Ġathletes": 23579, + "Used": 23580, + "wear": 23581, + "815": 23582, + "Ġlegitimate": 23583, + "Ġ\"ĊĊ": 23584, + "Ġhv": 23585, + "Std": 23586, + "037": 23587, + "ĠHold": 23588, + "Ġsurviv": 23589, + "ĠAlliance": 23590, + "ĠEarly": 23591, + "778": 23592, + "Behavior": 23593, + "(font": 23594, + "/libs": 23595, + "Ġrectangle": 23596, + "Ġsinger": 23597, + "Ġamp": 23598, + "EqualTo": 23599, + "Ġ\".\"": 23600, + "Ġgirlfriend": 23601, + "å±": 23602, + "linear": 23603, + "observ": 23604, + "Ġpiù": 23605, + "Ġcomplement": 23606, + "WithValue": 23607, + "(password": 23608, + "take": 23609, + "Blank": 23610, + "ĠCompar": 23611, + "'\",": 23612, + "_policy": 23613, + "mongoose": 23614, + "_FAILED": 23615, + ".report": 23616, + "Ratio": 23617, + ".PerformLayout": 23618, + "747": 23619, + "usable": 23620, + "mers": 23621, + "_render": 23622, + "PEED": 23623, + "772": 23624, + "Ġlesb": 23625, + "ĉE": 23626, + "_tool": 23627, + "Ġladies": 23628, + "908": 23629, + "оÑģ": 23630, + "))))Ċ": 23631, + ";;;;": 23632, + ".dot": 23633, + "Ġnest": 23634, + "peak": 23635, + "ukkit": 23636, + "eca": 23637, + "_SW": 23638, + "Ġ&(": 23639, + "ĠOklahoma": 23640, + "Ġbanking": 23641, + "569": 23642, + "ĠNintendo": 23643, + "752": 23644, + "Ġreproduce": 23645, + "_elements": 23646, + "_mac": 23647, + "proxy": 23648, + "Ġremarkable": 23649, + "}/${": 23650, + "Ġouts": 23651, + ".hasNext": 23652, + "MODE": 23653, + "658": 23654, + "Ġanime": 23655, + ".conn": 23656, + "Unique": 23657, + "Dom": 23658, + "Ġimportantly": 23659, + "itty": 23660, + "Ġjuice": 23661, + "Tw": 23662, + "ĠPartners": 23663, + "Ġattacking": 23664, + "Ġportable": 23665, + "amiento": 23666, + ".PictureBox": 23667, + ".gen": 23668, + "Ġoptimal": 23669, + "582": 23670, + "Ġrecre": 23671, + "Ġjournalist": 23672, + "ĠExtract": 23673, + "ĠMoreover": 23674, + "ĠmarginTop": 23675, + ".Ap": 23676, + "Ġfiring": 23677, + "NaN": 23678, + "ĉtemplate": 23679, + "ад": 23680, + ".En": 23681, + "Ġdefence": 23682, + "ĠTel": 23683, + "ilen": 23684, + "jan": 23685, + "=data": 23686, + "ĠUrl": 23687, + "ĠReuters": 23688, + "(total": 23689, + "ĠFifth": 23690, + "Ġessays": 23691, + "Ġinterpretation": 23692, + "Ġcharity": 23693, + "ĠRules": 23694, + "Ġsubsection": 23695, + "styled": 23696, + "azer": 23697, + "lags": 23698, + "LIST": 23699, + "Ġuploaded": 23700, + "Ġtrash": 23701, + "Ġregistr": 23702, + "Ġseller": 23703, + ">';čĊ": 23704, + "ĠstartTime": 23705, + "çĻ": 23706, + "sy": 23707, + "(HttpServletRequest": 23708, + "Ġtrap": 23709, + "GC": 23710, + "Ġembedded": 23711, + "Ġsurrounded": 23712, + "816": 23713, + "imits": 23714, + "TX": 23715, + "ylinder": 23716, + "685": 23717, + "ĠFal": 23718, + "Ġsentences": 23719, + "ĠJa": 23720, + "IFICATION": 23721, + "weapon": 23722, + "ovation": 23723, + "Ġcoat": 23724, + "Ġinterpol": 23725, + "Ġlips": 23726, + "ĠKy": 23727, + "Ġvectors": 23728, + "_am": 23729, + "Ġintake": 23730, + ".world": 23731, + "Ġinbox": 23732, + "ĠMAC": 23733, + "_ab": 23734, + "(nameof": 23735, + "633": 23736, + "Ġentert": 23737, + "Ġgathering": 23738, + "ĠSIM": 23739, + "++.": 23740, + "nya": 23741, + "'}}": 23742, + "ĠUPDATE": 23743, + "Ġpac": 23744, + "(html": 23745, + "ĠSant": 23746, + "iating": 23747, + "ĠIdeas": 23748, + "Ġspray": 23749, + "ĠHart": 23750, + "Ġverification": 23751, + "adesh": 23752, + "/modules": 23753, + "ĠMind": 23754, + "ĠSizedBox": 23755, + "Ġshelter": 23756, + "Ġheroes": 23757, + "atty": 23758, + "Ġcertified": 23759, + "sj": 23760, + "Ġêtre": 23761, + "ÅĤo": 23762, + "Ġpublishing": 23763, + "ĠMalays": 23764, + ".getUser": 23765, + "ĠProvider": 23766, + "ĠLinkedList": 23767, + "ĠBor": 23768, + "ROUND": 23769, + "did": 23770, + "tain": 23771, + "pire": 23772, + "ĠJenn": 23773, + "tel": 23774, + "ande": 23775, + "757": 23776, + "_front": 23777, + "ĠMcG": 23778, + "TestMethod": 23779, + "à¸Ń": 23780, + "Ġoccasionally": 23781, + "ĠWales": 23782, + "Ġexercises": 23783, + "ĠÐĴ": 23784, + "045": 23785, + "-plus": 23786, + "Ġvalidator": 23787, + "Ġprayer": 23788, + "LATED": 23789, + "_author": 23790, + "Ġlabour": 23791, + "++Ċ": 23792, + "-equiv": 23793, + "ĠGPL": 23794, + "Ġfacebook": 23795, + "simple": 23796, + "gly": 23797, + "Processor": 23798, + "ipy": 23799, + "744": 23800, + "Ġ*>": 23801, + "648": 23802, + "Ġcleared": 23803, + "ĠPush": 23804, + "858": 23805, + "Ġpenis": 23806, + "Structure": 23807, + "lij": 23808, + "ĠMorgan": 23809, + "Ġhandful": 23810, + "\".Ċ": 23811, + "984": 23812, + "|\\": 23813, + "Ġ********************************": 23814, + "ĠAqu": 23815, + "584": 23816, + "_IC": 23817, + ".loads": 23818, + "Ġmeter": 23819, + "ĠMarine": 23820, + "::{": 23821, + "ĠTS": 23822, + "776": 23823, + "ĠArrays": 23824, + ".Title": 23825, + "GRAM": 23826, + "termin": 23827, + "Ġcoinc": 23828, + "Else": 23829, + "_states": 23830, + "-run": 23831, + "members": 23832, + "782": 23833, + "astro": 23834, + "066": 23835, + "ĠonPress": 23836, + "Ġbeings": 23837, + "Ġabandoned": 23838, + "Ġtaxp": 23839, + "owners": 23840, + ".mode": 23841, + "Ġdiagnosis": 23842, + "Ġ_Ċ": 23843, + "ĠKnight": 23844, + "ĉA": 23845, + "Ġobserve": 23846, + "),'": 23847, + "823": 23848, + "!\")Ċ": 23849, + "ĠPara": 23850, + "Ġvariation": 23851, + "(False": 23852, + "ĠAnti": 23853, + "Ġgri": 23854, + "Ġhomeless": 23855, + "?v": 23856, + "Ġbez": 23857, + ".Server": 23858, + "release": 23859, + "ĠPatri": 23860, + "Ġchars": 23861, + "Ġranking": 23862, + "activation": 23863, + "581": 23864, + "Ġwides": 23865, + "qr": 23866, + ".Sql": 23867, + "acular": 23868, + "ĠBot": 23869, + "_sync": 23870, + "Ġhappiness": 23871, + "Ġvolunteers": 23872, + "877": 23873, + "Ġsits": 23874, + "/<": 23875, + "[e": 23876, + "(fileName": 23877, + "Ġcapac": 23878, + "832": 23879, + "ĠMaria": 23880, + "father": 23881, + "Ġgram": 23882, + "*i": 23883, + "Ġcaso": 23884, + "_draw": 23885, + "ĠRaw": 23886, + "ĠIterator": 23887, + "664": 23888, + "ĠPadding": 23889, + "924": 23890, + "PD": 23891, + "BOX": 23892, + "ĠSPECIAL": 23893, + "Ġfecha": 23894, + "Ġvide": 23895, + "ĠLeader": 23896, + "以": 23897, + "$(\".": 23898, + "Ġdiameter": 23899, + "Ġmild": 23900, + "745": 23901, + "Ġrocks": 23902, + "appings": 23903, + "048": 23904, + "directory": 23905, + "557": 23906, + ".flush": 23907, + "ĠJess": 23908, + "UNIT": 23909, + "ĠPear": 23910, + "Ġmandatory": 23911, + "Sur": 23912, + "qt": 23913, + "Ġstreams": 23914, + "Ġcooperation": 23915, + "ĠSac": 23916, + "Ġcheaper": 23917, + "ĉch": 23918, + "animation": 23919, + "fare": 23920, + "(height": 23921, + "(True": 23922, + "NY": 23923, + "Ġwrest": 23924, + "Ġpolls": 23925, + "Ġencountered": 23926, + "ĠMarketable": 23927, + "_PASSWORD": 23928, + "716": 23929, + "_SELECT": 23930, + "ĠArabia": 23931, + "_clock": 23932, + "Ġvoy": 23933, + "Ġиз": 23934, + "Ġstir": 23935, + "isible": 23936, + "-effect": 23937, + ".created": 23938, + "Ġtoys": 23939, + "ĠTradable": 23940, + "Ġrust": 23941, + "Ġstrcpy": 23942, + "_timestamp": 23943, + "Ġtalented": 23944, + ",null": 23945, + "ĠJobs": 23946, + "ĠPortland": 23947, + "Ġweakness": 23948, + "Throw": 23949, + "ĠAngel": 23950, + "ä¿®": 23951, + "754": 23952, + "Ġuncert": 23953, + "ï¼īĊ": 23954, + "ĠìĿ´": 23955, + "Which": 23956, + "Ġ[-]:": 23957, + "Something": 23958, + "Ġconvicted": 23959, + "kle": 23960, + "edium": 23961, + "Ġbranches": 23962, + "Ġbases": 23963, + "ç®": 23964, + "Ġcomplexity": 23965, + "ĠFig": 23966, + ".reshape": 23967, + "$db": 23968, + "736": 23969, + "_CONST": 23970, + "ĠTes": 23971, + ".runtime": 23972, + "Ġdeny": 23973, + "ĠBSD": 23974, + "Ġkr": 23975, + "hatt": 23976, + "ĠStatic": 23977, + "Ġuniversities": 23978, + "Replace": 23979, + "Ġdrove": 23980, + "Ġadoles": 23981, + "_plugin": 23982, + "ĠLGBT": 23983, + "Ġtex": 23984, + "duction": 23985, + "751": 23986, + "799": 23987, + "EDI": 23988, + "ĠTed": 23989, + "_URI": 23990, + "Ġreception": 23991, + "arten": 23992, + ".Single": 23993, + "rice": 23994, + "scious": 23995, + "843": 23996, + "_bg": 23997, + "Ġwages": 23998, + "ĠServlet": 23999, + "UILayout": 24000, + "Ġformatted": 24001, + ".Mod": 24002, + "',Ċ": 24049, + "Ġexpanding": 24050, + "ĠHamilton": 24051, + "ĠContrib": 24052, + ".Tables": 24053, + "728": 24054, + "Activ": 24055, + "HH": 24056, + "ocommerce": 24057, + "_;": 24058, + "Ġamongst": 24059, + "owing": 24060, + "859": 24061, + "ĠCold": 24062, + "APH": 24063, + "Ġpsychological": 24064, + "_tensor": 24065, + "Ġpackaging": 24066, + "ĠSweden": 24067, + "Ġpare": 24068, + "Ġaggregate": 24069, + "Ġmoderate": 24070, + "862": 24071, + "_hand": 24072, + "Ġdesignated": 24073, + "Ġdrum": 24074, + "ĠgetUser": 24075, + "ĠCreek": 24076, + "_scope": 24077, + "ĠTransfer": 24078, + "ĠMarg": 24079, + "Ġfighters": 24080, + "Wnd": 24081, + "ĠSel": 24082, + "ĠLaunch": 24083, + "Ġemerging": 24084, + "iframe": 24085, + "ĠAdditional": 24086, + "Ġfears": 24087, + "Ġsatellite": 24088, + "_:": 24089, + "Ġdisposing": 24090, + "GetValue": 24091, + "HttpPost": 24092, + "ATIVE": 24093, + "ulary": 24094, + "Views": 24095, + "Ġattending": 24096, + "ĠTennessee": 24097, + "ĠMission": 24098, + "Ġmedication": 24099, + "ĠWy": 24100, + "ĠAnna": 24101, + "ع": 24102, + "ĠVertex": 24103, + ".types": 24104, + "Organ": 24105, + ".DataGridViewTextBoxColumn": 24106, + "ĠRS": 24107, + "Ġtempo": 24108, + "(App": 24109, + "892": 24110, + "VersionUID": 24111, + ".point": 24112, + "ĠDutch": 24113, + "Hours": 24114, + "LU": 24115, + "Ġquoted": 24116, + ".builder": 24117, + "ĠPerfect": 24118, + "ĠAlways": 24119, + "_two": 24120, + "Ġexclusively": 24121, + "ĠCra": 24122, + "ificar": 24123, + "ĠAWS": 24124, + "ingham": 24125, + "complex": 24126, + "kernel": 24127, + "Ġgravity": 24128, + "Ġwi": 24129, + "052": 24130, + "Ġoverview": 24131, + "661": 24132, + "ĠWant": 24133, + "ĠWP": 24134, + "(sh": 24135, + ".rotation": 24136, + "States": 24137, + "ĠTeen": 24138, + "_components": 24139, + "ìĪĺ": 24140, + "Received": 24141, + "Ġlyrics": 24142, + "rites": 24143, + "ĉĉĉĉĉĠ": 24144, + "-American": 24145, + "[num": 24146, + "/python": 24147, + "ĠUART": 24148, + "Ġapple": 24149, + "ĠJonathan": 24150, + "Ġmomentum": 24151, + "ั": 24152, + "Ĥ¹": 24153, + "Ġmich": 24154, + "andra": 24155, + "Ġbiological": 24156, + "ĠMens": 24157, + "Ġ%%": 24158, + "elsea": 24159, + "ĠMexican": 24160, + ".randint": 24161, + "Ġtale": 24162, + "ĠValidate": 24163, + "Ġdefeated": 24164, + ".htm": 24165, + "Ġcopper": 24166, + "=/": 24167, + "cosystem": 24168, + "Ġrip": 24169, + "decimal": 24170, + ".VISIBLE": 24171, + "ĠTa": 24172, + "ĉĉĉĉĉĉĉĉĉĉĉĉĉĉ": 24173, + "Ġdownloaded": 24174, + "environment": 24175, + "Ġnomine": 24176, + "building": 24177, + "ĠSpot": 24178, + "ipheral": 24179, + "Ġalto": 24180, + "quet": 24181, + "ĠFT": 24182, + "/get": 24183, + "/master": 24184, + "WIN": 24185, + "åħĥ": 24186, + "676": 24187, + "West": 24188, + "argc": 24189, + "Ġproducers": 24190, + "ĠMuch": 24191, + "_storage": 24192, + "credit": 24193, + "CONT": 24194, + "Ġvet": 24195, + "Ġvoices": 24196, + "('',": 24197, + "Ġinstruments": 24198, + "662": 24199, + "ĠMSG": 24200, + "esse": 24201, + "repository": 24202, + "omics": 24203, + "Ġdealer": 24204, + "Still": 24205, + "Ġbanner": 24206, + "ascii": 24207, + "Ġremarks": 24208, + "[js": 24209, + "Ġshorter": 24210, + "gulp": 24211, + "Ġmyster": 24212, + "Ġkun": 24213, + "ĠBird": 24214, + "Ġtiene": 24215, + "788": 24216, + "nut": 24217, + "ĠUm": 24218, + "Ġwise": 24219, + "Yeah": 24220, + "INESS": 24221, + "046": 24222, + "_begin": 24223, + "-heading": 24224, + "Course": 24225, + "ĠčĊčĊ": 24226, + "ombie": 24227, + "graded": 24228, + "ĠGPS": 24229, + "Ġże": 24230, + "Fit": 24231, + "caption": 24232, + "ön": 24233, + "/image": 24234, + "lia": 24235, + "(mod": 24236, + "Ġleak": 24237, + "enza": 24238, + "629": 24239, + "/H": 24240, + "ĠHappy": 24241, + "993": 24242, + "Dist": 24243, + "nx": 24244, + "ĠGovernor": 24245, + "(last": 24246, + "teacher": 24247, + "ĠSent": 24248, + "support": 24249, + "838": 24250, + "jectory": 24251, + "ĠÙħ": 24252, + "Registration": 24253, + "063": 24254, + "ĠGray": 24255, + ",false": 24256, + "Ġadjusted": 24257, + "(settings": 24258, + "'Ċ": 24324, + "-fold": 24325, + "æĬ": 24326, + "ĠBetter": 24327, + "Ġ\"\\<": 24328, + "spacing": 24329, + "Ġfurnished": 24330, + "913": 24331, + "oser": 24332, + "]}Ċ": 24333, + "Ġ$\"": 24334, + "pull": 24335, + ".Post": 24336, + "919": 24337, + "(ip": 24338, + "Ĺı": 24339, + ".front": 24340, + "nte": 24341, + "ĠFM": 24342, + "guid": 24343, + "844": 24344, + "Ġnegotiations": 24345, + "agonal": 24346, + "934": 24347, + "Ġtremend": 24348, + "ungeon": 24349, + "Adv": 24350, + "carousel": 24351, + "ÃŁe": 24352, + "_DESC": 24353, + "Ġhammer": 24354, + "áºŃ": 24355, + "ĠĠĠĠĠĠĠĠĊĊ": 24356, + "-core": 24357, + "-service": 24358, + "Ġcorners": 24359, + "ĠSF": 24360, + "pred": 24361, + ">A": 24362, + "ĠJLabel": 24363, + "Ġromantic": 24364, + "Ġtestimony": 24365, + "osc": 24366, + "ĠGeneration": 24367, + "asures": 24368, + "_internal": 24369, + "Ġprints": 24370, + "Ġ])Ċ": 24371, + "ĠCleveland": 24372, + "repo": 24373, + "Disc": 24374, + "677": 24375, + "762": 24376, + "Ġ\">Ċ": 24377, + "����": 24378, + "Ġnearest": 24379, + "591": 24380, + "_tb": 24381, + "(require": 24382, + "EOF": 24383, + "-child": 24384, + "Ġbudd": 24385, + ".XtraEditors": 24386, + "alties": 24387, + "723": 24388, + "\\\":\\\"": 24389, + "Words": 24390, + "917": 24391, + "Ġlocally": 24392, + "Ġpurchases": 24393, + "695": 24394, + "Drawer": 24395, + "extract": 24396, + "Ġexecut": 24397, + "}'.": 24398, + "userdata": 24399, + "Ġfocuses": 24400, + "-minute": 24401, + "764": 24402, + "ĠPublish": 24403, + "ogo": 24404, + "Ġmountains": 24405, + "Bot": 24406, + "}>{": 24407, + "Ġtension": 24408, + "rod": 24409, + "mesh": 24410, + "Ġtransformed": 24411, + ",R": 24412, + "()}Ċ": 24413, + ".long": 24414, + "Ġgorgeous": 24415, + "ĠSchedule": 24416, + "Ġoldest": 24417, + "Ġsubprocess": 24418, + "(IN": 24419, + "yect": 24420, + "ĠCooper": 24421, + "arness": 24422, + "ĠMonitor": 24423, + ".part": 24424, + "972": 24425, + "ĠNBC": 24426, + "668": 24427, + "Ġcotton": 24428, + "Ġhol": 24429, + "726": 24430, + "Ġrgba": 24431, + "ĠBio": 24432, + "Continue": 24433, + "Pod": 24434, + "Ġparticipating": 24435, + "clusions": 24436, + "(ByVal": 24437, + "734": 24438, + "ì": 24439, + "ĠHOW": 24440, + "_setopt": 24441, + "Ġaccompanying": 24442, + "091": 24443, + "aton": 24444, + "Ġ/\\": 24445, + "ĠAuthentication": 24446, + "ién": 24447, + "ĠBarack": 24448, + "/*.": 24449, + "Ġeager": 24450, + "ĠCancel": 24451, + "$": 24502, + "OLEAN": 24503, + "OKIE": 24504, + "IBILITY": 24505, + "UAGE": 24506, + "ĠSurvey": 24507, + "071": 24508, + "Ġresign": 24509, + "wing": 24510, + "Ġsecrets": 24511, + "Ġchips": 24512, + "JSONObject": 24513, + "Desktop": 24514, + "596": 24515, + "_SYMBOL": 24516, + "(resource": 24517, + "ĠĊ": 24518, + "Ġnewest": 24519, + "uli": 24520, + "Ġdesert": 24521, + "Ġdip": 24522, + "ĠPow": 24523, + "Ġequation": 24524, + "Ġpossibilities": 24525, + "ĠFed": 24526, + "osph": 24527, + "Ġ[%": 24528, + "Ġbubble": 24529, + "etherlands": 24530, + "793": 24531, + "Ġcement": 24532, + ".auto": 24533, + "_AN": 24534, + "âĢĻ.": 24535, + "selection": 24536, + "ĠBond": 24537, + "988": 24538, + "Den": 24539, + "-O": 24540, + ".getType": 24541, + "896": 24542, + ".Window": 24543, + "pres": 24544, + "Ġswinger": 24545, + "\"})Ċ": 24546, + "Ġpip": 24547, + "Ġmice": 24548, + "Ġcompound": 24549, + "-plugin": 24550, + "iko": 24551, + "Ġcenturies": 24552, + "icular": 24553, + "-inline": 24554, + "ĉkey": 24555, + ">\\<": 24556, + "ENSION": 24557, + "Ġ[čĊ": 24558, + "Ġprecisely": 24559, + "Ġété": 24560, + "ĠPast": 24561, + "ĠCambridge": 24562, + "-full": 24563, + "Ġanalyze": 24564, + "ĠSteven": 24565, + "Ġnem": 24566, + "due": 24567, + "oren": 24568, + "Ġmuscles": 24569, + "ijing": 24570, + "852": 24571, + "/-": 24572, + "ĠKennedy": 24573, + "597": 24574, + "RM": 24575, + "ossible": 24576, + "Ġactress": 24577, + "Ġdolor": 24578, + "914": 24579, + "å½ķ": 24580, + "Need": 24581, + ".toggle": 24582, + "ĠRace": 24583, + "wers": 24584, + ".material": 24585, + "ĠDue": 24586, + "ĠPel": 24587, + "#print": 24588, + "Ġindependence": 24589, + "exus": 24590, + "Shadow": 24591, + "Ġencoder": 24592, + "(level": 24593, + "ĠSwift": 24594, + ".doc": 24595, + "_selection": 24596, + "952": 24597, + "ĠserialVersionUID": 24598, + "945": 24599, + "Labels": 24600, + "Ġperformances": 24601, + ".Tag": 24602, + "ĠNHL": 24603, + "izen": 24604, + "/UIKit": 24605, + "991": 24606, + "_CONTROL": 24607, + "Ġearnings": 24608, + "975": 24609, + "ĠAlt": 24610, + "_HANDLE": 24611, + "Ctx": 24612, + "Ġpersu": 24613, + "Ġtran": 24614, + "ç¨": 24615, + "_CHANNEL": 24616, + "Ġsatisfaction": 24617, + "ĠGP": 24618, + "769": 24619, + "iox": 24620, + "mitt": 24621, + "lando": 24622, + "Ġpig": 24623, + "inals": 24624, + "ência": 24625, + "731": 24626, + "Surface": 24627, + "ĠUUID": 24628, + "Ġbeneficial": 24629, + "Ġsequences": 24630, + "ĉmemset": 24631, + "Ġmagical": 24632, + "«": 24633, + "Ġworn": 24634, + "ASC": 24635, + "popup": 24636, + "COMP": 24637, + "_before": 24638, + "eness": 24639, + "Ui": 24640, + "Les": 24641, + ".require": 24642, + ".Serializable": 24643, + "addGap": 24644, + "Ġauthorization": 24645, + "085": 24646, + ".pyplot": 24647, + "urray": 24648, + "latitude": 24649, + "845": 24650, + "frames": 24651, + "ajs": 24652, + "Ġcompass": 24653, + "Ġobservations": 24654, + "_sup": 24655, + ".environ": 24656, + "Ġtriple": 24657, + "ĠRuby": 24658, + "Ġdrain": 24659, + "_FILTER": 24660, + "San": 24661, + "UMP": 24662, + "NullException": 24663, + "ĠGab": 24664, + "owe": 24665, + "ĠTurkish": 24666, + "_sequence": 24667, + "ĠGrant": 24668, + "uela": 24669, + "Ġwo": 24670, + "Ġcube": 24671, + "iq": 24672, + "Ġdisorders": 24673, + "Ġextraordinary": 24674, + "Ġctrl": 24675, + "ĠSeq": 24676, + "entr": 24677, + "865": 24678, + "Ġsanctions": 24679, + "949": 24680, + "utsch": 24681, + "Reports": 24682, + "Ġinherit": 24683, + "Period": 24684, + "Ġphotography": 24685, + "ĠFramework": 24686, + "Ġspecialist": 24687, + "Ġ?ĊĊ": 24688, + "_selected": 24689, + ".Player": 24690, + "Ġallocation": 24691, + "(account": 24692, + "Ġstructural": 24693, + "vable": 24694, + "-offset": 24695, + ".AppCompatActivity": 24696, + "ам": 24697, + ".AddWithValue": 24698, + "Ġicons": 24699, + "Ġshutdown": 24700, + "_low": 24701, + "ĠCompare": 24702, + "ĠCe": 24703, + "=head": 24704, + "lam": 24705, + ".predict": 24706, + "_DEC": 24707, + "ĠSleep": 24708, + "ĠGratis": 24709, + "Ġsuggestion": 24710, + "ĠDEL": 24711, + "caff": 24712, + "avirus": 24713, + "Nothing": 24714, + "ŀĭ": 24715, + "Ġwidespread": 24716, + "Ġmechanisms": 24717, + "ĠtextAlign": 24718, + "occup": 24719, + "ĠRail": 24720, + ":NS": 24721, + "Ġfiber": 24722, + "Ġmk": 24723, + "Ġvintage": 24724, + "-long": 24725, + ".reduce": 24726, + ".Entities": 24727, + "(record": 24728, + "Ġpleasant": 24729, + "FRING": 24730, + ".Cells": 24731, + "OTT": 24732, + "ĉelseif": 24733, + "649": 24734, + "724": 24735, + "_confirm": 24736, + "ĠViewGroup": 24737, + "sym": 24738, + "Ġpray": 24739, + "Ġsuspected": 24740, + "Contains": 24741, + "983": 24742, + "Ġborders": 24743, + "ĠcomponentDid": 24744, + "ASSERT": 24745, + "Ġinfinite": 24746, + "-order": 24747, + "Ġhello": 24748, + "ĠGrade": 24749, + ".currentTimeMillis": 24750, + "apolis": 24751, + "zh": 24752, + "ĉObject": 24753, + ":\\\\": 24754, + "HO": 24755, + "valuation": 24756, + "Ġvocab": 24757, + "719": 24758, + "Ġcoupon": 24759, + "atabases": 24760, + ".GetType": 24761, + "Learn": 24762, + "792": 24763, + "]=\"": 24764, + "ĠGary": 24765, + "otive": 24766, + "Ġash": 24767, + "Ġbib": 24768, + "XXXX": 24769, + "Ġbalanced": 24770, + "VALUE": 24771, + "ĠNat": 24772, + "_Ad": 24773, + "<": 24930, + "Ġfool": 24931, + "Ġesk": 24932, + ".Null": 24933, + "ĠDies": 24934, + "_OUTPUT": 24935, + "_TYPED": 24936, + "Ġpainted": 24937, + "673": 24938, + "735": 24939, + "Ġsophistic": 24940, + "ĠBear": 24941, + "*n": 24942, + "_PACK": 24943, + "Ġdelivering": 24944, + "ĠCOUNT": 24945, + "åįķ": 24946, + "Ġjeg": 24947, + "-car": 24948, + "fname": 24949, + "Ġranging": 24950, + "848": 24951, + "ĠNeg": 24952, + "/******/": 24953, + "ĠCHAR": 24954, + "Ġultra": 24955, + "Grad": 24956, + "=t": 24957, + "Ġjudges": 24958, + "ĠDise": 24959, + "anners": 24960, + "985": 24961, + "891": 24962, + "861": 24963, + "Ġscal": 24964, + "_cal": 24965, + "ĠCONNECTION": 24966, + "_embed": 24967, + "(fn": 24968, + "ĠCraft": 24969, + "047": 24970, + "ĠPas": 24971, + "\")->": 24972, + ".convert": 24973, + ".resource": 24974, + "ĠSTATUS": 24975, + "ông": 24976, + "ĠTit": 24977, + "Ġclassroom": 24978, + "ĠArchitect": 24979, + "ĠKings": 24980, + "Ġsteady": 24981, + "/*!Ċ": 24982, + "ĠGene": 24983, + ")\";Ċ": 24984, + "icia": 24985, + "stan": 24986, + "ĠConstruction": 24987, + "umper": 24988, + "951": 24989, + "wc": 24990, + "ĠCBS": 24991, + "inging": 24992, + "-party": 24993, + "(driver": 24994, + "MARK": 24995, + "082": 24996, + "Ġnested": 24997, + "eward": 24998, + "Ġdependency": 24999, + "Ġmales": 25000, + "928": 25001, + "ĠONE": 25002, + "ĠProduction": 25003, + "][$": 25004, + "ãĥ¼ãĥ": 25005, + "_LOAD": 25006, + "ĠBol": 25007, + "elry": 25008, + "831": 25009, + "łéĻ¤": 25010, + "ĠRequire": 25011, + "Ġplacing": 25012, + "xxx": 25013, + "CALE": 25014, + "Ġthumb": 25015, + "824": 25016, + "Choose": 25017, + "Ġprototype": 25018, + "VOID": 25019, + "Ġlesbian": 25020, + "741": 25021, + "Ġtraits": 25022, + "Sharp": 25023, + "Ġconsume": 25024, + "Truth": 25025, + "ĠactionPerformed": 25026, + "ĠEnvironmental": 25027, + "ĠDean": 25028, + "Ġestado": 25029, + "same": 25030, + "Ġnumeric": 25031, + "Ġtransit": 25032, + ".Email": 25033, + "-side": 25034, + "_RUN": 25035, + "ĠVillage": 25036, + "_OPEN": 25037, + "è¦": 25038, + ".rem": 25039, + "-warning": 25040, + "anya": 25041, + "PropertyChanged": 25042, + "Ġ(!_": 25043, + "(check": 25044, + "ilia": 25045, + "ĠSoft": 25046, + "steps": 25047, + "ĠMadrid": 25048, + "MemoryWarning": 25049, + "Ġhandlers": 25050, + "Ġexperiencing": 25051, + "Ġinspect": 25052, + "buttons": 25053, + "ReceiveMemoryWarning": 25054, + "chemy": 25055, + "Links": 25056, + "Ġurllib": 25057, + ".SystemColors": 25058, + "ĠEigen": 25059, + "Ġpunishment": 25060, + ":UIControl": 25061, + "bara": 25062, + "-set": 25063, + "Ġ}čĊčĊčĊ": 25064, + "Ġtolerance": 25065, + "Ġinterfaces": 25066, + ".redirect": 25067, + "ighbors": 25068, + "csrf": 25069, + "_background": 25070, + ".Utils": 25071, + "_HT": 25072, + "692": 25073, + "ĠInterest": 25074, + "imos": 25075, + "Ġgrants": 25076, + "083": 25077, + "Ġexamined": 25078, + "ÐĶ": 25079, + "Ġcf": 25080, + "forge": 25081, + "backs": 25082, + "ĠObjects": 25083, + "_sent": 25084, + ".entry": 25085, + "ĠTHEN": 25086, + "ellido": 25087, + "cia": 25088, + ",res": 25089, + "659": 25090, + "681": 25091, + "/stdc": 25092, + ".nd": 25093, + "(Int": 25094, + "ĠAuthors": 25095, + "ĠAppCompatActivity": 25096, + "'{": 25097, + "Ġmedi": 25098, + "Music": 25099, + "igm": 25100, + "ceipt": 25101, + "Ġauss": 25102, + "Ġtargeting": 25103, + "ĠKeys": 25104, + "hn": 25105, + ":]Ċ": 25106, + "Ġmineral": 25107, + "î": 25108, + ".ca": 25109, + "761": 25110, + "omed": 25111, + "Ġsheets": 25112, + "Ġcamb": 25113, + "Ġdeadly": 25114, + ".inject": 25115, + "(unit": 25116, + "ĠSelection": 25117, + ".gms": 25118, + "(connection": 25119, + "Ġ$(\"": 25120, + "émon": 25121, + "ĠCurrently": 25122, + "pte": 25123, + "_paths": 25124, + "847": 25125, + "leaf": 25126, + "Ġimplications": 25127, + "posal": 25128, + "ä½į": 25129, + "[/": 25130, + "ancia": 25131, + "éĽ": 25132, + "mul": 25133, + "cie": 25134, + "Ġgeile": 25135, + "679": 25136, + "imals": 25137, + "UIView": 25138, + "Ġsurre": 25139, + "serialize": 25140, + "ISO": 25141, + "Ġarbitrary": 25142, + "Ġsockaddr": 25143, + ".fn": 25144, + "ĠMerc": 25145, + "Ġcasting": 25146, + "KeyDown": 25147, + "ĠnewValue": 25148, + "opens": 25149, + "717": 25150, + "Todo": 25151, + "Ġflexibility": 25152, + "ĉĉĉĉĠĠ": 25153, + "Velocity": 25154, + "ún": 25155, + "rowing": 25156, + "Ġcomputed": 25157, + "`)Ċ": 25158, + "statement": 25159, + "Ġri": 25160, + "_cart": 25161, + "Low": 25162, + "transfer": 25163, + ".nav": 25164, + "Ġgrave": 25165, + "ĠDoor": 25166, + "ĉalert": 25167, + "691": 25168, + "698": 25169, + ".subscribe": 25170, + "-profile": 25171, + "ĉbase": 25172, + "ĠâĪĴ": 25173, + "__ĊĊ": 25174, + "Ġengineers": 25175, + "Ġexplosion": 25176, + "Ġdari": 25177, + "682": 25178, + "ĉLog": 25179, + "onal": 25180, + "Ġisolated": 25181, + "{i": 25182, + "ĠMsg": 25183, + "Future": 25184, + "Ġracist": 25185, + "-wrap": 25186, + "ĠVers": 25187, + "borg": 25188, + "ISION": 25189, + "ĠÑĢаÐ": 25190, + "ĠYan": 25191, + "836": 25192, + "initWith": 25193, + "Ġnomin": 25194, + "(empty": 25195, + "ÃŃn": 25196, + "ãĤ¤": 25197, + "ĉwidth": 25198, + "Ġchamber": 25199, + "/ajax": 25200, + "EMP": 25201, + "093": 25202, + "Ġneces": 25203, + "ivos": 25204, + "logic": 25205, + "*)&": 25206, + "cripts": 25207, + "976": 25208, + "RowAt": 25209, + "053": 25210, + "iblings": 25211, + "Ġears": 25212, + "Ġcomputing": 25213, + "Ġmaker": 25214, + "ĠNeither": 25215, + "breadcrumb": 25216, + "Ġserialize": 25217, + "ĠWithin": 25218, + "Ġdell": 25219, + "_TRACE": 25220, + "092": 25221, + "=a": 25222, + "Ġwishes": 25223, + "-inch": 25224, + "ĠDor": 25225, + "Ġinnocent": 25226, + "ĠDol": 25227, + "Ġintens": 25228, + "forced": 25229, + "054": 25230, + "ĠBIT": 25231, + "Ġphotographs": 25232, + "Ġcasa": 25233, + "ĠLen": 25234, + "\\Framework": 25235, + ".Simple": 25236, + "Ġdear": 25237, + "895": 25238, + ")/(": 25239, + "ippi": 25240, + "Ġowns": 25241, + "Players": 25242, + "Ġproposals": 25243, + ".pi": 25244, + "usalem": 25245, + "Damage": 25246, + "Ġcalories": 25247, + "ĠCreative": 25248, + "Ġ[$": 25249, + "Ġ//čĊ": 25250, + "786": 25251, + "AndView": 25252, + "ème": 25253, + ".custom": 25254, + "_factory": 25255, + "commands": 25256, + "_look": 25257, + "Ġstrcmp": 25258, + "YN": 25259, + "aired": 25260, + "Ġaudit": 25261, + "оÑģÑĤ": 25262, + "ĠReverse": 25263, + "ropriate": 25264, + "etics": 25265, + "';Ċ": 25348, + "Ġpepper": 25349, + "989": 25350, + "Ġshed": 25351, + "ĠMedium": 25352, + "ĠCookie": 25353, + "889": 25354, + "Ġoverseas": 25355, + "edor": 25356, + "asurement": 25357, + "766": 25358, + "åŃĺ": 25359, + "Ġ'.'": 25360, + "Ġphp": 25361, + "ĠPROC": 25362, + "Ġexceptional": 25363, + "(th": 25364, + "ĠJet": 25365, + "Ġoccupied": 25366, + ".setImage": 25367, + "ĠRelated": 25368, + "ucker": 25369, + "Members": 25370, + "PRINT": 25371, + "ĠGlo": 25372, + "_VIEW": 25373, + "}\",Ċ": 25374, + "Ġadoption": 25375, + "[])Ċ": 25376, + "842": 25377, + "ĠMissouri": 25378, + "ĠLincoln": 25379, + "erald": 25380, + "Popup": 25381, + "Ġfate": 25382, + "-bootstrap": 25383, + "fections": 25384, + "ĠPoll": 25385, + "_ARGS": 25386, + "inance": 25387, + "697": 25388, + "-home": 25389, + ".),": 25390, + "_done": 25391, + "694": 25392, + ":ĊĊĊ": 25393, + "Ġdiscussing": 25394, + "ĠSQLException": 25395, + "Ġelectro": 25396, + "ĉreq": 25397, + "Ġzw": 25398, + "886": 25399, + "Ġlui": 25400, + "932": 25401, + "Ġovernight": 25402, + "$user": 25403, + "ĠWAY": 25404, + "Ġallerg": 25405, + "Ġdisappointed": 25406, + "Ġradiation": 25407, + "Ġimpressed": 25408, + "ificates": 25409, + "Ġtob": 25410, + "CLASS": 25411, + "Ġcuda": 25412, + "_det": 25413, + "-post": 25414, + "ulu": 25415, + "Translation": 25416, + "-hand": 25417, + ".year": 25418, + "ĠMongo": 25419, + "Ġunclear": 25420, + ".engine": 25421, + "WEBPACK": 25422, + "rices": 25423, + "_ACCESS": 25424, + "Ġholidays": 25425, + "percent": 25426, + ".Identity": 25427, + "ĠGov": 25428, + "Ġpassionate": 25429, + "!!.": 25430, + "ĠGreece": 25431, + "plusplus": 25432, + "'));": 25433, + "GP": 25434, + "Ġexcit": 25435, + ".tabPage": 25436, + "_cond": 25437, + "Ġsponsor": 25438, + "MODULE": 25439, + "_proc": 25440, + "Ġ$Ċ": 25441, + "Ġrational": 25442, + ".Tool": 25443, + "Ġihr": 25444, + "cca": 25445, + "åĵģ": 25446, + "ĠEstate": 25447, + "IBUTE": 25448, + "ActionPerformed": 25449, + "ĠSolar": 25450, + "¦Ĥ": 25451, + "Ġequity": 25452, + "tid": 25453, + "938": 25454, + "Ġrecip": 25455, + ".simple": 25456, + "mk": 25457, + "689": 25458, + "ĠLuke": 25459, + "ĠGuardian": 25460, + "Ġencrypted": 25461, + "Ġdominant": 25462, + ".place": 25463, + "ĠNV": 25464, + "839": 25465, + "Ġtongue": 25466, + "(Get": 25467, + "Ġstainless": 25468, + ".Play": 25469, + "Ġeb": 25470, + "aci": 25471, + ".buffer": 25472, + "readcrumbs": 25473, + "Ġvaccine": 25474, + "prom": 25475, + "979": 25476, + "ĠuserInfo": 25477, + "Ġslug": 25478, + "SerializedName": 25479, + "-wide": 25480, + "Ġreactions": 25481, + "ĠYang": 25482, + "ĠAdds": 25483, + "(userId": 25484, + "Ġplates": 25485, + "ĠMEM": 25486, + "Ġbail": 25487, + "Inside": 25488, + "eted": 25489, + "Ġelsif": 25490, + "Ġsake": 25491, + "Ġcycles": 25492, + "ĠìĹ": 25493, + "ĉI": 25494, + "-collapse": 25495, + "841": 25496, + "ĠGMT": 25497, + "814": 25498, + "Declaration": 25499, + "Ġgros": 25500, + "Ġreaches": 25501, + "Ġcustody": 25502, + "Until": 25503, + "753": 25504, + "856": 25505, + "tu": 25506, + "ĠChen": 25507, + "Ġnx": 25508, + "(addr": 25509, + "ĠOffer": 25510, + "Ġcolleg": 25511, + "assador": 25512, + "674": 25513, + "Ġmapper": 25514, + "854": 25515, + "ĠSIGNAL": 25516, + "ĠBloom": 25517, + "ĠHoll": 25518, + "ĠImper": 25519, + "-des": 25520, + "_site": 25521, + "Proc": 25522, + "Equ": 25523, + "Ġatomic": 25524, + "ĠWoman": 25525, + "sent": 25526, + "738": 25527, + "817": 25528, + "scar": 25529, + "Ġintelligent": 25530, + "ĠGetting": 25531, + "ĠRegistration": 25532, + "ĠPhill": 25533, + "Ġkiller": 25534, + "unicode": 25535, + "ĊĉĉĊ": 25536, + "ĠJacob": 25537, + "ĠConst": 25538, + "Ġlocate": 25539, + "Ġcaus": 25540, + "749": 25541, + "ĠScholar": 25542, + "Ġconstitutional": 25543, + "Ġinflation": 25544, + "ĠGot": 25545, + "=array": 25546, + "endum": 25547, + "Ġtranslated": 25548, + "Ġdivorce": 25549, + "Entries": 25550, + "Ġsor": 25551, + "ĠQuote": 25552, + "irlines": 25553, + "UK": 25554, + "Ġexcel": 25555, + "(opt": 25556, + "ĠADV": 25557, + ",:,": 25558, + "Ġcontacted": 25559, + "742": 25560, + "ĠDA": 25561, + "Ġrings": 25562, + "ĠIndustrial": 25563, + ".getContext": 25564, + "Ġforgotten": 25565, + "ĠTan": 25566, + "Ġpants": 25567, + "Ġov": 25568, + "Ġdecoder": 25569, + "ĠPartial": 25570, + "Ġvc": 25571, + "Ġbattles": 25572, + "Arial": 25573, + "FRINGEMENT": 25574, + "irates": 25575, + ",w": 25576, + "aintenance": 25577, + "ĠOd": 25578, + "ĠTechnologies": 25579, + "åīį": 25580, + "ĠCarter": 25581, + ".findAll": 25582, + "Nome": 25583, + "Ben": 25584, + "ĠUsage": 25585, + "ĠPicture": 25586, + "Ġbadly": 25587, + "_panel": 25588, + "Ġpatent": 25589, + "ĠProtocol": 25590, + "lotte": 25591, + "ĉplayer": 25592, + "jections": 25593, + "746": 25594, + "Ġdou": 25595, + "_release": 25596, + "urniture": 25597, + "_tax": 25598, + "ĠFields": 25599, + ".dataset": 25600, + "_master": 25601, + "CLUDE": 25602, + "ĠPharm": 25603, + "bst": 25604, + "Ġoperational": 25605, + ".cell": 25606, + "Ġidentifying": 25607, + "Ġjwt": 25608, + "tuple": 25609, + "ĠTC": 25610, + "ĠCro": 25611, + "936": 25612, + "ixmap": 25613, + "-components": 25614, + "general": 25615, + "Ġoz": 25616, + "_De": 25617, + "_double": 25618, + "ĠToo": 25619, + "088": 25620, + ".ViewGroup": 25621, + "879": 25622, + "gate": 25623, + "dings": 25624, + "photos": 25625, + "Ġgrande": 25626, + "ollect": 25627, + "_lin": 25628, + "Ġawful": 25629, + "filters": 25630, + "Ġalternate": 25631, + "esp": 25632, + "Ġcompress": 25633, + "eo": 25634, + "ĠScale": 25635, + "Ġindirect": 25636, + "Ġinvoice": 25637, + "ĊĊĊĊĊĊĊĊĊĊĊĊĊĊĊĊ": 25638, + "Starting": 25639, + "ĠPlayers": 25640, + "iele": 25641, + ".then": 25642, + "981": 25643, + "Ord": 25644, + "ĠTuple": 25645, + "Ġbout": 25646, + "ĠStatistics": 25647, + "Preview": 25648, + "Ġpuzzle": 25649, + "ĠWidth": 25650, + "STATE": 25651, + "Ġoverlay": 25652, + "ĉon": 25653, + "Ġinfr": 25654, + "Ġsmallest": 25655, + "locked": 25656, + "ÑĤо": 25657, + "ssl": 25658, + "779": 25659, + "Ġdeemed": 25660, + "Ġsco": 25661, + "reck": 25662, + "ĠjButton": 25663, + "Ġmissions": 25664, + "871": 25665, + "称": 25666, + ".SelectedIndex": 25667, + "TABLE": 25668, + "Sept": 25669, + "Ġacknowledge": 25670, + "Ġstrtotime": 25671, + "ĠTell": 25672, + "ĠDak": 25673, + "Ġaluminum": 25674, + "Ġfence": 25675, + "ĠStars": 25676, + "CONFIG": 25677, + "Ġretrofit": 25678, + "Ġemphasis": 25679, + "/header": 25680, + "ĠSomething": 25681, + "inished": 25682, + "='\".$": 25683, + "ĠValidators": 25684, + "Ġpolar": 25685, + "sections": 25686, + "944": 25687, + ".aspx": 25688, + "Ġaspir": 25689, + ".Mock": 25690, + "CodeGen": 25691, + "Ġpeut": 25692, + "971": 25693, + "Ġaccepting": 25694, + "Ġbacking": 25695, + "Picture": 25696, + "/ap": 25697, + "ег": 25698, + "_SEC": 25699, + "-use": 25700, + "annotation": 25701, + "Ġcognitive": 25702, + "Ġgrip": 25703, + "hour": 25704, + "ĠLegal": 25705, + "Ġepic": 25706, + ".toolStrip": 25707, + ".notify": 25708, + ".Last": 25709, + "ORIZ": 25710, + "Middleware": 25711, + "criptions": 25712, + "lash": 25713, + "_FOUND": 25714, + "ĠLiverpool": 25715, + "Ġ{}\",": 25716, + "931": 25717, + "Install": 25718, + "Ġnit": 25719, + "Ġfigured": 25720, + "[len": 25721, + ".Win": 25722, + ".platform": 25723, + "853": 25724, + "Ġgambling": 25725, + "(dt": 25726, + "avery": 25727, + "ĉinclude": 25728, + "Whether": 25729, + "Routing": 25730, + "Ġtherap": 25731, + "Remote": 25732, + "ĠLoss": 25733, + "yll": 25734, + "Ġapproached": 25735, + "ĠVehicle": 25736, + "ĠAlpha": 25737, + "Ġvocê": 25738, + "answers": 25739, + "NSDictionary": 25740, + "954": 25741, + "consider": 25742, + "unused": 25743, + "ĠFan": 25744, + "orable": 25745, + "fre": 25746, + "873": 25747, + "ĠDISCLAIM": 25748, + "ĠActor": 25749, + ".]": 25750, + "toHave": 25751, + ".userId": 25752, + "Ġspeeds": 25753, + "eway": 25754, + "Ġrecurs": 25755, + "Ġг": 25756, + "_priv": 25757, + "!âĢĿĊĊ": 25758, + "Choice": 25759, + "Ġsettle": 25760, + "Ġplanes": 25761, + "'},": 25762, + "Tom": 25763, + "ITER": 25764, + "!\"Ċ": 25765, + "å»": 25766, + "achelor": 25767, + "Ġseparation": 25768, + "Ġdal": 25769, + "adj": 25770, + "Ġregisters": 25771, + "riz": 25772, + "ĠNotice": 25773, + "Ġlu": 25774, + "Ġcourage": 25775, + "Ġaxes": 25776, + "cellent": 25777, + ".async": 25778, + "073": 25779, + "Ġcompatibility": 25780, + "ç«": 25781, + "Ġ!ĊĊ": 25782, + "ĉtitle": 25783, + "YLE": 25784, + "ĉmessage": 25785, + "UUID": 25786, + "OLDER": 25787, + "ĠHH": 25788, + "ĠStyleSheet": 25789, + "Ġaccessed": 25790, + ".validation": 25791, + "tasks": 25792, + "Ġpollution": 25793, + ".canvas": 25794, + "Ġingredient": 25795, + "ĠCabin": 25796, + "Ah": 25797, + "oldown": 25798, + "ĠNOI": 25799, + "ĠÃĹ": 25800, + "[f": 25801, + "educ": 25802, + "yalty": 25803, + "(not": 25804, + "_State": 25805, + "933": 25806, + "amen": 25807, + "795": 25808, + "739": 25809, + "Ġdao": 25810, + "udad": 25811, + "ellers": 25812, + "}&": 25813, + "licity": 25814, + "_WINDOW": 25815, + "Ġtatto": 25816, + "valor": 25817, + ".Range": 25818, + "Ġreferenced": 25819, + "ĠReserve": 25820, + "Money": 25821, + "874": 25822, + "SCRIPT": 25823, + "/product": 25824, + "choices": 25825, + "Ġtin": 25826, + "ãĤĵ": 25827, + "918": 25828, + "Ġseparator": 25829, + "Ġpkg": 25830, + "ammed": 25831, + "ĠMAT": 25832, + "!!ĊĊ": 25833, + "Ġraid": 25834, + "Ġmotivation": 25835, + "ĠXP": 25836, + "ĠBackground": 25837, + "ĠQuaternion": 25838, + ".defineProperty": 25839, + "iker": 25840, + "ĉparent": 25841, + "ĠOriginally": 25842, + "antage": 25843, + "ĠHans": 25844, + "Ġtimeline": 25845, + ".cur": 25846, + "opic": 25847, + "ĠSequ": 25848, + "must": 25849, + "ĠCoal": 25850, + "Ġformatter": 25851, + "_RGB": 25852, + "Ġ_(\"": 25853, + "'}),Ċ": 25854, + "Ġ=================": 25855, + "ĠFUNCTION": 25856, + "Ġlng": 25857, + "icates": 25858, + "live": 25859, + "_engine": 25860, + "Ġtowns": 25861, + "868": 25862, + "'))ĊĊ": 25863, + "ĠPK": 25864, + "(api": 25865, + "ĉscanf": 25866, + "089": 25867, + "packet": 25868, + ".phone": 25869, + "áĢ": 25870, + "ĠAndy": 25871, + "_NAMES": 25872, + "982": 25873, + "PLY": 25874, + "955": 25875, + "Ġmins": 25876, + "imi": 25877, + "Ġbrick": 25878, + "Ġblade": 25879, + ".stdout": 25880, + "}`;Ċ": 25881, + "Shift": 25882, + "ĉsb": 25883, + "ĠChecks": 25884, + "Ġphenomenon": 25885, + "Avatar": 25886, + "Ġministry": 25887, + "rose": 25888, + "ĉFile": 25889, + "878": 25890, + "Ġtitled": 25891, + "(LOG": 25892, + "Ġgan": 25893, + "design": 25894, + "(),čĊ": 25895, + "Ġbones": 25896, + "stm": 25897, + "ÅĽÄĩ": 25898, + "ĠInputStream": 25899, + "Ġvolunt": 25900, + "ĠSerializable": 25901, + "Ġfighter": 25902, + "ĠDrag": 25903, + "Twitter": 25904, + "Ġsubsid": 25905, + "ç¼": 25906, + "Ġforums": 25907, + ".loading": 25908, + "logged": 25909, + "_this": 25910, + "Ġterrain": 25911, + "Ġirre": 25912, + "ĠIng": 25913, + "ĠCN": 25914, + "_objects": 25915, + ".uid": 25916, + "Ġconsciousness": 25917, + "TINGS": 25918, + "ĠGall": 25919, + "Ġportray": 25920, + "056": 25921, + "ĠDeveloper": 25922, + "Ġparticipant": 25923, + "Ġ\";čĊ": 25924, + "/model": 25925, + "794": 25926, + "ĠOperations": 25927, + "^\\": 25928, + "ĠLater": 25929, + "Ġraises": 25930, + "-none": 25931, + ".meta": 25932, + "='.$": 25933, + "Finished": 25934, + "Ġreplacing": 25935, + "Ġsampling": 25936, + "ĠJen": 25937, + "\"There": 25938, + "REAL": 25939, + "ALE": 25940, + "ìĬ¤": 25941, + "Orders": 25942, + "_parameter": 25943, + "ĠOlympic": 25944, + "Ġtrès": 25945, + "Ġarena": 25946, + "iol": 25947, + ";?>": 25948, + "Ġimpacts": 25949, + "ĠWS": 25950, + ":get": 25951, + "Ġflights": 25952, + "ĠRussell": 25953, + "camera": 25954, + "Fn": 25955, + "sigma": 25956, + "Ġforcing": 25957, + "Ġlocals": 25958, + "Ġdeparture": 25959, + "Ġcelebration": 25960, + "ĠSay": 25961, + "884": 25962, + "ï¼Ĵ": 25963, + "ĠHills": 25964, + ".hasOwnProperty": 25965, + "Ġtypings": 25966, + ".API": 25967, + "Ġdonation": 25968, + "OperationException": 25969, + ".Activity": 25970, + "cplusplus": 25971, + "ĠCharlie": 25972, + "Ġimported": 25973, + "Ġdann": 25974, + "Ġoccasions": 25975, + "Ġimplementing": 25976, + "Ġpurple": 25977, + ".dialog": 25978, + "SQLException": 25979, + "erno": 25980, + "Ġwars": 25981, + "Ġpaste": 25982, + "Ġdecreased": 25983, + "Ġharsh": 25984, + "Ġelabor": 25985, + "inputs": 25986, + "ĠViews": 25987, + "ĠerrorMessage": 25988, + "_mul": 25989, + "ĉwrite": 25990, + "ĠCop": 25991, + "ĠAnnual": 25992, + "(button": 25993, + "Ġvida": 25994, + "bars": 25995, + "ĠHarvard": 25996, + "ĉexpect": 25997, + "Ġindexes": 25998, + "Ġdocumentary": 25999, + "Ġflesh": 26000, + "ORLD": 26001, + "ĠDelta": 26002, + "MAND": 26003, + "Brush": 26004, + "-column": 26005, + "Ġdevelopments": 26006, + "974": 26007, + "783": 26008, + "methodVisitor": 26009, + "slice": 26010, + "ĠPDO": 26011, + "Ġinvesting": 26012, + "867": 26013, + "irable": 26014, + "Ġxmlns": 26015, + "ï¼Ľ": 26016, + "arta": 26017, + "Ġtheories": 26018, + "_city": 26019, + "Ġ$__": 26020, + "Creating": 26021, + "(pr": 26022, + "Dropdown": 26023, + "ismatch": 26024, + "ĠNET": 26025, + "926": 26026, + "'])){Ċ": 26027, + "ĠValues": 26028, + "ĠSEO": 26029, + "ĠSTAT": 26030, + "Ġecosystem": 26031, + "Ġtempt": 26032, + "Ġ\\\\": 26033, + "Ġ//{Ċ": 26034, + "ĠChristopher": 26035, + "ĠKentucky": 26036, + "ĠHttpServletResponse": 26037, + "Ġhybrid": 26038, + "yon": 26039, + "Ġfeeding": 26040, + "ĠExtra": 26041, + "Norm": 26042, + "ITCH": 26043, + "ĠSean": 26044, + "ĠUpload": 26045, + "mun": 26046, + "pur": 26047, + "Ġpersistent": 26048, + "ĠIDC": 26049, + "ĠPerform": 26050, + "863": 26051, + ".merge": 26052, + "_room": 26053, + "Meanwhile": 26054, + "!='": 26055, + "ĠWel": 26056, + "ArgsConstructor": 26057, + "887": 26058, + ".Database": 26059, + "Ġcounting": 26060, + "()*": 26061, + "ĶåĽŀ": 26062, + "ĠTOP": 26063, + "mill": 26064, + "ĠDT": 26065, + "IGNED": 26066, + "956": 26067, + "ĠKB": 26068, + "Ġcomply": 26069, + "South": 26070, + "_collection": 26071, + "Chapter": 26072, + "Ġexplaining": 26073, + "_AM": 26074, + "_ts": 26075, + "cards": 26076, + "Ġquel": 26077, + "Ġpole": 26078, + "Ġtouchdown": 26079, + "ĠOthers": 26080, + "Ġpeers": 26081, + "ĠTypeError": 26082, + "763": 26083, + "Ġsixth": 26084, + "Ġcheer": 26085, + "Ġdispute": 26086, + "963": 26087, + "893": 26088, + "usc": 26089, + ")],": 26090, + "thumb": 26091, + "Ġhiding": 26092, + "ĠSIG": 26093, + "likes": 26094, + "ĠPAGE": 26095, + ".Reflection": 26096, + "Ġheadquarters": 26097, + "TING": 26098, + "ĠGhost": 26099, + "MLE": 26100, + "$Ċ": 26101, + "Ġcontrary": 26102, + "extend": 26103, + "']).": 26104, + "FFECT": 26105, + "ĠPinterest": 26106, + "úmero": 26107, + "ricane": 26108, + "ĉsession": 26109, + "Ġcrystal": 26110, + "-Control": 26111, + "overnment": 26112, + "ograf": 26113, + "961": 26114, + "-action": 26115, + "volume": 26116, + "ften": 26117, + "Ġuncon": 26118, + "Ġanimate": 26119, + "Ġlease": 26120, + "scr": 26121, + "Ġrefuse": 26122, + "ãĢĭ": 26123, + "ftp": 26124, + "information": 26125, + "Ġevaluated": 26126, + "Ġinjection": 26127, + "Ġjack": 26128, + "Ġworkshop": 26129, + "注": 26130, + "PTH": 26131, + "ĠTs": 26132, + "offer": 26133, + "ĉos": 26134, + "Ġkingdom": 26135, + "Missing": 26136, + "Ġlawmakers": 26137, + "extField": 26138, + "Ġsinging": 26139, + "abi": 26140, + "/client": 26141, + ".media": 26142, + "ATEGORY": 26143, + "Signature": 26144, + "%',Ċ": 26145, + "ĠFuck": 26146, + "][:": 26147, + "Ġsensors": 26148, + "/com": 26149, + "ĠPrimary": 26150, + ".SQL": 26151, + "_program": 26152, + "Ġpills": 26153, + "Ġintegral": 26154, + "Ġfleet": 26155, + "Ġdropping": 26156, + ".sl": 26157, + "Been": 26158, + "Ġpets": 26159, + "Ġadvised": 26160, + "Ġdragon": 26161, + "_EDIT": 26162, + "(im": 26163, + "939": 26164, + "FER": 26165, + "ĠDrug": 26166, + "(random": 26167, + "Ġcompression": 26168, + "oust": 26169, + "[%": 26170, + "Ġbuyer": 26171, + "hop": 26172, + "Roles": 26173, + "manage": 26174, + "Ġpainful": 26175, + "ĠBranch": 26176, + "-modal": 26177, + "enant": 26178, + "ĠMesh": 26179, + "/font": 26180, + "ĠGraham": 26181, + "Ġâĺ": 26182, + "Ġnc": 26183, + "ĠFrancis": 26184, + "Ġspecification": 26185, + "Ġdamages": 26186, + "-config": 26187, + "Ġtheoret": 26188, + "secure": 26189, + "_multi": 26190, + "aceutical": 26191, + "Ġdemanding": 26192, + "enne": 26193, + "ISTS": 26194, + "094": 26195, + "()));ĊĊ": 26196, + "Reason": 26197, + "Recent": 26198, + "phase": 26199, + "Ġpsy": 26200, + "_MAN": 26201, + "Ġvolunteer": 26202, + "å¿": 26203, + "istributed": 26204, + "lio": 26205, + "Ġproductivity": 26206, + "_comm": 26207, + "Spring": 26208, + "nis": 26209, + ".weight": 26210, + "ĠCancer": 26211, + "Alloc": 26212, + "ĠTweet": 26213, + "Ġseparately": 26214, + "ĉcheck": 26215, + "_properties": 26216, + ".Unit": 26217, + "829": 26218, + "_CLK": 26219, + "Ġgt": 26220, + "Ġ();ĊĊ": 26221, + "Ġhandy": 26222, + "834": 26223, + "ĠThompson": 26224, + "Ġunnecessary": 26225, + "ĠReader": 26226, + "894": 26227, + "GN": 26228, + "=request": 26229, + "ĠUtility": 26230, + ".Repository": 26231, + "ĠAx": 26232, + "hydr": 26233, + "791": 26234, + "ieu": 26235, + "Ġthy": 26236, + "Ġlt": 26237, + "_mail": 26238, + "ä¿®æĶ¹": 26239, + "ailand": 26240, + "ĠPhilip": 26241, + "Ġbitter": 26242, + "Ġbetting": 26243, + "837": 26244, + "Ġtimed": 26245, + "ocks": 26246, + "076": 26247, + "'a": 26248, + "Ġalgorithms": 26249, + "Ġreinterpret": 26250, + "Ġtoss": 26251, + "rogen": 26252, + "Ġhoped": 26253, + "(selected": 26254, + "Ġventure": 26255, + "TEX": 26256, + "ĠLeave": 26257, + ".Substring": 26258, + "Ġgrateful": 26259, + "743": 26260, + "uka": 26261, + "ĠConsumer": 26262, + "Ġaggreg": 26263, + "Circle": 26264, + "à¸ģ": 26265, + "_blocks": 26266, + "Ġlegally": 26267, + "Ġ\"|": 26268, + "ãĥĥ": 26269, + ".board": 26270, + ".Ab": 26271, + "Functions": 26272, + "recipe": 26273, + "èĩ": 26274, + "ĠOxford": 26275, + "Ġwholes": 26276, + ".Build": 26277, + "_changed": 26278, + "hai": 26279, + "Ġdepartments": 26280, + "964": 26281, + "Imp": 26282, + "Ġcoalition": 26283, + "INFRINGEMENT": 26284, + "Ġempower": 26285, + "itches": 26286, + "North": 26287, + "Ġinflamm": 26288, + "ONSE": 26289, + "Ġmissile": 26290, + "ĠRaj": 26291, + "ĠIssue": 26292, + "Ġatoi": 26293, + "caled": 26294, + ".Controllers": 26295, + "ĠWolf": 26296, + "Ġcrushers": 26297, + "á»ĩ": 26298, + ".Auth": 26299, + ".addAttribute": 26300, + "his": 26301, + "Ġboots": 26302, + ".clean": 26303, + "camp": 26304, + "Ġtenant": 26305, + "Ġtune": 26306, + "Ġ{}'.": 26307, + "Ġworkout": 26308, + "Repo": 26309, + "Ġpartially": 26310, + "MISSION": 26311, + "jamin": 26312, + "ĠSB": 26313, + "Ġdetermination": 26314, + "Ġ'');Ċ": 26315, + "ĠBeng": 26316, + "Ġvos": 26317, + "Ġinhab": 26318, + "/lang": 26319, + "sburgh": 26320, + "Executor": 26321, + "hone": 26322, + "ĠChallenge": 26323, + "_links": 26324, + ".Level": 26325, + "Ġunderground": 26326, + "-code": 26327, + "959": 26328, + "Ġoptimization": 26329, + "logging": 26330, + "_dest": 26331, + "Ġsnake": 26332, + "Ġchemicals": 26333, + "_IMPORTED": 26334, + "adoop": 26335, + "ĠTHAT": 26336, + "managed": 26337, + "Ġreduces": 26338, + "ĠREAL": 26339, + "ĠGuy": 26340, + "_GENERIC": 26341, + "/********************************": 26342, + ".amount": 26343, + "Ġdere": 26344, + "getTime": 26345, + "Ġpant": 26346, + "anonymous": 26347, + "Ġharmony": 26348, + "ĠAlan": 26349, + "Ġscenarios": 26350, + "Ġdirt": 26351, + "htags": 26352, + "Mc": 26353, + "Shell": 26354, + "rin": 26355, + "{čĊčĊ": 26356, + ".pow": 26357, + "ĉclient": 26358, + "Ġconspiracy": 26359, + "Ġadmission": 26360, + "ĠRegional": 26361, + "ĠViewController": 26362, + "ĠPhilippines": 26363, + "Ġdepos": 26364, + "Ġpap": 26365, + "962": 26366, + "ĠPad": 26367, + "Paul": 26368, + ".ComboBox": 26369, + "Ġtutor": 26370, + "ĠRecipe": 26371, + "writing": 26372, + "Ġcontributor": 26373, + "OTH": 26374, + "Small": 26375, + "VI": 26376, + "Ġhacer": 26377, + "equ": 26378, + "ĠExamples": 26379, + "human": 26380, + ".messages": 26381, + "ĉtyp": 26382, + "Ġ(čĊ": 26383, + "ĠSSL": 26384, + "LEN": 26385, + "ĠRomney": 26386, + "(grid": 26387, + "ĉmin": 26388, + "Ġ>ĊĊ": 26389, + "Ġfruits": 26390, + "Ġvoter": 26391, + "Inline": 26392, + "pane": 26393, + "ĠCollections": 26394, + "charset": 26395, + "Ġspam": 26396, + "zb": 26397, + "itemap": 26398, + "Ġsucceeded": 26399, + "_COL": 26400, + "Ġelapsed": 26401, + "imeter": 26402, + "Ġrecovered": 26403, + "Tensor": 26404, + "hattan": 26405, + ".setup": 26406, + "isto": 26407, + "(head": 26408, + "977": 26409, + "ĠSIZE": 26410, + "Ġtactics": 26411, + "Ġdistur": 26412, + "Ġpreval": 26413, + "icios": 26414, + "(Value": 26415, + "_cols": 26416, + "ĠFat": 26417, + "Ġseal": 26418, + "Ġsons": 26419, + "Ġensures": 26420, + "095": 26421, + "Ġpressing": 26422, + "=&": 26423, + "igenous": 26424, + "Ġharassment": 26425, + "_JSON": 26426, + "Ġignor": 26427, + "ynomial": 26428, + "omer": 26429, + "_static": 26430, + "Ġsignificance": 26431, + "Ġcircles": 26432, + "_System": 26433, + "Ġdiscipline": 26434, + "Ġdressed": 26435, + "Ġsphere": 26436, + "927": 26437, + "Ġclimb": 26438, + "759": 26439, + "_actions": 26440, + "ĠBab": 26441, + "Ġ'=',": 26442, + "_schema": 26443, + "\"use": 26444, + "Ġunders": 26445, + "Ġcups": 26446, + ".screen": 26447, + "/new": 26448, + "Ġappearing": 26449, + "TOP": 26450, + "vised": 26451, + "clang": 26452, + "Ġinvestigators": 26453, + "Ġmysterious": 26454, + "Ġpromising": 26455, + "Ġqualify": 26456, + "Ġcave": 26457, + "Ġequip": 26458, + "=x": 26459, + "GT": 26460, + "(link": 26461, + ".velocity": 26462, + ".erase": 26463, + "oter": 26464, + "++++++++": 26465, + "profit": 26466, + "Ġzones": 26467, + "_uid": 26468, + "-ser": 26469, + "Ġobjectives": 26470, + "Ġmilf": 26471, + "webkit": 26472, + "(match": 26473, + "neh": 26474, + "ĠAssociated": 26475, + "ĠTodo": 26476, + "=d": 26477, + "065": 26478, + "Cam": 26479, + "Ġvocal": 26480, + "Ġsudo": 26481, + "(EX": 26482, + "Ġtrou": 26483, + "ABC": 26484, + ".bean": 26485, + "ĠGround": 26486, + "ĠREST": 26487, + "weets": 26488, + "Ing": 26489, + "imon": 26490, + "946": 26491, + "_bus": 26492, + "ĠCOLOR": 26493, + "unto": 26494, + "Ġfoss": 26495, + "ĠLinks": 26496, + "869": 26497, + "äng": 26498, + "/forms": 26499, + "prises": 26500, + "Ġachievement": 26501, + "CALL": 26502, + "елÑĮ": 26503, + "ĠVerify": 26504, + "_SOURCE": 26505, + "aptcha": 26506, + "IDD": 26507, + "_reference": 26508, + "Gold": 26509, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ": 26510, + "947": 26511, + "Receiver": 26512, + "099": 26513, + "Ġaj": 26514, + "_direction": 26515, + "}]": 26516, + "ĠCompet": 26517, + "Ġbang": 26518, + "798": 26519, + "ĠCass": 26520, + "-url": 26521, + "techn": 26522, + "ĠJerusalem": 26523, + "longitude": 26524, + "');čĊčĊ": 26525, + "Ġwinners": 26526, + "Tasks": 26527, + "ĠDMA": 26528, + "Ġtooltip": 26529, + "İ·": 26530, + "ĠBra": 26531, + "_duration": 26532, + "cury": 26533, + "parents": 26534, + "---->(": 26607, + "ĠKir": 26608, + "Ġintros": 26609, + "Ġsketch": 26610, + "Ġskilled": 26611, + "Ġimmer": 26612, + "Ġadequate": 26613, + "_rep": 26614, + "(header": 26615, + "_like": 26616, + "Ġperceived": 26617, + "ssh": 26618, + "Ġassuming": 26619, + "Ġff": 26620, + "_uuid": 26621, + "ulas": 26622, + "Ġdemocratic": 26623, + ".entities": 26624, + "Series": 26625, + "aphore": 26626, + "Ġnewer": 26627, + "}(": 26628, + "SEC": 26629, + "airo": 26630, + "Ġcommod": 26631, + "Ġprivilege": 26632, + "Ġdeux": 26633, + "ĠHop": 26634, + ".'/": 26635, + "ctic": 26636, + ".';Ċ": 26637, + "C": 26712, + "ĠWarren": 26713, + "Ġoptimizer": 26714, + "ĠSERVICES": 26715, + "_oper": 26716, + "getAttribute": 26717, + "ĠMcK": 26718, + "_self": 26719, + "084": 26720, + ".rs": 26721, + "\")ĊĊĊ": 26722, + "GetComponent": 26723, + "erce": 26724, + "Ġtous": 26725, + "units": 26726, + "']);čĊ": 26727, + "Zoom": 26728, + "/E": 26729, + "Ġobsc": 26730, + "Ġfastest": 26731, + "online": 26732, + "Ġpeaceful": 26733, + "ffen": 26734, + "Ġcargo": 26735, + "ĉpr": 26736, + "Ġseeks": 26737, + "zu": 26738, + "074": 26739, + "Trim": 26740, + "Ġward": 26741, + "Ġverd": 26742, + "Ġblogs": 26743, + ".exceptions": 26744, + "ĠPremium": 26745, + "ĠNetherlands": 26746, + "Safe": 26747, + "Finish": 26748, + "ĠAlbum": 26749, + "_ACC": 26750, + "=this": 26751, + "virtual": 26752, + "]>": 26753, + "_LABEL": 26754, + "ĠNich": 26755, + "_win": 26756, + "ĠAaron": 26757, + "WP": 26758, + ";$": 26759, + "aims": 26760, + "ĠImageView": 26761, + "Ġendless": 26762, + "ERA": 26763, + "_DISABLE": 26764, + "Ġcancelled": 26765, + "-us": 26766, + "Ġinspection": 26767, + "emin": 26768, + "ĠGrey": 26769, + "-open": 26770, + "Ġiterations": 26771, + ".owner": 26772, + "Ġkeras": 26773, + ".Password": 26774, + "ĠRy": 26775, + "ĠINS": 26776, + "Air": 26777, + "ĠSeveral": 26778, + ".TabStop": 26779, + "INGLE": 26780, + "ĠHair": 26781, + "ĠCanvas": 26782, + "AAAA": 26783, + "Ġflaw": 26784, + "cedes": 26785, + ".Report": 26786, + "íĬ": 26787, + "ĠTips": 26788, + "criptors": 26789, + ".transaction": 26790, + ".Spring": 26791, + "Ġviewer": 26792, + "Ġinsights": 26793, + "è¾ĵ": 26794, + "ordion": 26795, + "UINT": 26796, + "seek": 26797, + "ĠAuf": 26798, + "ìŀIJ": 26799, + "Ġstrain": 26800, + "Tooltip": 26801, + "Ġdz": 26802, + "ignal": 26803, + "adt": 26804, + "Ġuc": 26805, + "finite": 26806, + "Ġnm": 26807, + ".cmd": 26808, + "ĠMySql": 26809, + "[data": 26810, + ".jackson": 26811, + ".tree": 26812, + "RequestParam": 26813, + "_agent": 26814, + "\")]čĊ": 26815, + "Ġassass": 26816, + "(Constants": 26817, + ":ss": 26818, + "ĠMAN": 26819, + "+-+-": 26820, + "ĠBottom": 26821, + "prints": 26822, + "ĠSame": 26823, + "@Autowired": 26824, + "swap": 26825, + "ición": 26826, + "Ġprotesters": 26827, + "Ġhoney": 26828, + "ĠVeter": 26829, + "(Calendar": 26830, + "-ad": 26831, + "ĠBrooklyn": 26832, + "Life": 26833, + "_VAR": 26834, + "zech": 26835, + "ĠCALL": 26836, + "_CAST": 26837, + "ĠElection": 26838, + "Ġthickness": 26839, + "Very": 26840, + "_INTEGER": 26841, + "-dev": 26842, + "))))": 26843, + "apat": 26844, + "oooo": 26845, + "demo": 26846, + "ĠparseFloat": 26847, + "ĠRather": 26848, + "STIT": 26849, + "maker": 26850, + "[current": 26851, + "chrono": 26852, + "Ġchrist": 26853, + "ãģª": 26854, + "ĠDetail": 26855, + "Æ°á»": 26856, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 26857, + "Ġsul": 26858, + "idency": 26859, + "Que": 26860, + "Ġelegant": 26861, + "apons": 26862, + "Ġdishes": 26863, + "Ġintegers": 26864, + "(read": 26865, + "057": 26866, + "findViewById": 26867, + "ĠAmount": 26868, + "ĠSkip": 26869, + "Ġhabits": 26870, + "*)(": 26871, + "Ġmonsters": 26872, + "MAC": 26873, + ":end": 26874, + "Ġfrank": 26875, + "Assembly": 26876, + "Ġdfs": 26877, + "Ġneut": 26878, + "_TYPES": 26879, + "equal": 26880, + "loyd": 26881, + "(uri": 26882, + "Ġchi": 26883, + "Ġdefendant": 26884, + "Ġconflicts": 26885, + "Ġvil": 26886, + "-js": 26887, + "ĠPeace": 26888, + "Ġmutable": 26889, + ")sender": 26890, + "ĠFocus": 26891, + "建": 26892, + "Ġappreciated": 26893, + "sleep": 26894, + "ĠRED": 26895, + "Culture": 26896, + "Ġdesigners": 26897, + "_generator": 26898, + "codes": 26899, + "/ex": 26900, + ".GetValue": 26901, + "umbled": 26902, + ".scalajs": 26903, + "peror": 26904, + "Ġveterans": 26905, + "Ġ})čĊ": 26906, + "Ġunfortunately": 26907, + "_CREATE": 26908, + "Mass": 26909, + "ĠCLAIM": 26910, + "ĠMeet": 26911, + "_support": 26912, + "Bank": 26913, + "().Ċ": 26914, + "Dark": 26915, + "_LOW": 26916, + "ĠMining": 26917, + "ĠOwner": 26918, + "iera": 26919, + "Cliente": 26920, + "Ġencouraging": 26921, + ">S": 26922, + "Ġboyfriend": 26923, + "ĠHalf": 26924, + "ĠACC": 26925, + "Aff": 26926, + "_ar": 26927, + "-life": 26928, + "cx": 26929, + ".JButton": 26930, + "izado": 26931, + ".zero": 26932, + ".openqa": 26933, + "oton": 26934, + ".textContent": 26935, + "Ġtoll": 26936, + "atie": 26937, + "Ġballot": 26938, + "-number": 26939, + ".Exception": 26940, + "ĉparams": 26941, + "circle": 26942, + "-map": 26943, + "Ġnap": 26944, + "ĠRobot": 26945, + "ĠIch": 26946, + "registration": 26947, + "Amazon": 26948, + "rollment": 26949, + "(exp": 26950, + "Ġtanks": 26951, + "ĠGordon": 26952, + "Ġmachinery": 26953, + "Ġbaseline": 26954, + "æĭ": 26955, + "086": 26956, + "Ø©": 26957, + "ĠConvention": 26958, + "ĉconfig": 26959, + "ookies": 26960, + "mult": 26961, + "Records": 26962, + "ĠEST": 26963, + "Ġgarbage": 26964, + "Ġconform": 26965, + "idal": 26966, + "Ġbarg": 26967, + "Ġsurvived": 26968, + "Ġinvestigations": 26969, + "935": 26970, + ".containsKey": 26971, + "--------------------------------------------------------------------------Ċ": 26972, + "ortion": 26973, + "Ġhorr": 26974, + "_http": 26975, + "Ġmant": 26976, + "];čĊčĊ": 26977, + "binary": 26978, + "948": 26979, + "empl": 26980, + "Ġinquiry": 26981, + "ĠMeanwhile": 26982, + "098": 26983, + "Ġcollecting": 26984, + ".EntityFramework": 26985, + "\",ĊĊ": 26986, + "ĠPic": 26987, + "@Inject": 26988, + "ickness": 26989, + "ĠBinding": 26990, + "Ġcontrolling": 26991, + "reverse": 26992, + "Ġchairs": 26993, + "sembled": 26994, + "(add": 26995, + "Disabled": 26996, + "anas": 26997, + ".translate": 26998, + "-----------Ċ": 26999, + "Ġreflected": 27000, + "\"]ĊĊ": 27001, + "External": 27002, + "Arrow": 27003, + "Singleton": 27004, + "%x": 27005, + "ĠÅ": 27006, + "Ġancest": 27007, + "ĠOrleans": 27008, + "ĉcmd": 27009, + "Ġprohibited": 27010, + "ithmetic": 27011, + "(channel": 27012, + "_css": 27013, + "Forward": 27014, + ".socket": 27015, + "Ġluc": 27016, + "âĨ": 27017, + "ĠFirefox": 27018, + "ĠMovies": 27019, + ")_": 27020, + ".ends": 27021, + "(shape": 27022, + "Ġdealt": 27023, + "Ġsaves": 27024, + "Ġglory": 27025, + "Ġmejor": 27026, + "Ġbreathing": 27027, + "Ġeller": 27028, + "getData": 27029, + "Ġangles": 27030, + "Ġtoolbar": 27031, + "Ġspacing": 27032, + "059": 27033, + "IPS": 27034, + "Ġfloors": 27035, + "_ACTIVE": 27036, + "Ġshuffle": 27037, + "/shared": 27038, + "ĠEle": 27039, + "edish": 27040, + "Ġwebcam": 27041, + ".expect": 27042, + "iloc": 27043, + "ĠIncludes": 27044, + "Ġtweeted": 27045, + "Ġ:)": 27046, + "ĠEssay": 27047, + "Fix": 27048, + "-between": 27049, + "_web": 27050, + ".conv": 27051, + "Ġracism": 27052, + "Ġreflects": 27053, + "umm": 27054, + "иÑĤе": 27055, + "_footer": 27056, + "/docs": 27057, + "ĠPour": 27058, + "NgModule": 27059, + ".initialize": 27060, + "patterns": 27061, + "_In": 27062, + "ĠAbb": 27063, + "*čĊ": 27064, + "Ġsentiment": 27065, + "buff": 27066, + "_counts": 27067, + "Ġreuse": 27068, + "chunk": 27069, + "Ġimposed": 27070, + "PrimaryKey": 27071, + "Foreground": 27072, + "Ġconsumed": 27073, + "?!": 27074, + "Ġdick": 27075, + "Ġchron": 27076, + "ĠFern": 27077, + "Ġresponsive": 27078, + "958": 27079, + "Ġinsect": 27080, + "iculty": 27081, + "Ġrw": 27082, + "Ġalike": 27083, + "Ġsubset": 27084, + "ĠCookies": 27085, + "ĠPair": 27086, + "Ġtier": 27087, + "IFO": 27088, + "avour": 27089, + "ĠQU": 27090, + ",sizeof": 27091, + "Ġmerged": 27092, + "mv": 27093, + "itol": 27094, + "ylon": 27095, + "Ġjumped": 27096, + ".role": 27097, + "ensaje": 27098, + "Rules": 27099, + "Ġbrowse": 27100, + "Animator": 27101, + "Ġyoga": 27102, + "Ġvariants": 27103, + "Ġcourtesy": 27104, + "uran": 27105, + "pbs": 27106, + "elseif": 27107, + "Alt": 27108, + "ĠLane": 27109, + "CLK": 27110, + "IMARY": 27111, + "_PROPERTY": 27112, + "ï¼IJ": 27113, + "Ġchan": 27114, + "Ġgradually": 27115, + "Ġshake": 27116, + "Ġblonde": 27117, + "...\");Ċ": 27118, + "-sex": 27119, + "Ġgameplay": 27120, + "acies": 27121, + ".refresh": 27122, + "USB": 27123, + "ĠPlot": 27124, + "Was": 27125, + "issippi": 27126, + "ĠTensor": 27127, + "Ġcryptocurrency": 27128, + "Ġdifficulties": 27129, + "Deleted": 27130, + "Without": 27131, + "_append": 27132, + "_ver": 27133, + "967": 27134, + "\"))čĊ": 27135, + "Ġhonestly": 27136, + "Ġpivot": 27137, + "Ġtemps": 27138, + "_ps": 27139, + "ĠUnlike": 27140, + "[:-": 27141, + "VS": 27142, + "_inf": 27143, + "Ġjunior": 27144, + "Ġanimations": 27145, + "Ġfilepath": 27146, + "?{{$": 27168, + "Ġunicode": 27169, + "places": 27170, + "ĠCoffee": 27171, + ".SE": 27172, + "ĠPAR": 27173, + "(txt": 27174, + "gebra": 27175, + "Ġfires": 27176, + "MainWindow": 27177, + "medium": 27178, + "Ġ(âĢľ": 27179, + "Ġlg": 27180, + "Ġcmp": 27181, + "/base": 27182, + "_layers": 27183, + "_entries": 27184, + "Ġadminister": 27185, + "ĠSUCH": 27186, + "BP": 27187, + "ĠScottish": 27188, + "ĉčĊĉčĊ": 27189, + "guard": 27190, + "ĠStrong": 27191, + "Insn": 27192, + "ĠCAP": 27193, + "asury": 27194, + "ĠSEE": 27195, + "Clock": 27196, + "erie": 27197, + "\\models": 27198, + "Ġ$$": 27199, + "ĠCab": 27200, + "Ġwurde": 27201, + "Ġsoldier": 27202, + "Ġclips": 27203, + "Ġarrangement": 27204, + "ĠWonder": 27205, + "ĠHorn": 27206, + "Ġscared": 27207, + "Ġcure": 27208, + "mkdir": 27209, + "Ġaligned": 27210, + "ĠPink": 27211, + "Ġlanded": 27212, + "Dimension": 27213, + "ScrollPane": 27214, + ".chat": 27215, + ".With": 27216, + "ĠTrain": 27217, + "].Ċ": 27218, + "Ġthirty": 27219, + "Ġdurable": 27220, + "Ġld": 27221, + "Ġlateinit": 27222, + "Ġcharts": 27223, + "Ġinsult": 27224, + ".Fatal": 27225, + "_ct": 27226, + "Ġmasks": 27227, + "CLUDED": 27228, + "President": 27229, + "Ġcolours": 27230, + "gments": 27231, + ".attributes": 27232, + "ĠFlex": 27233, + "ĠClock": 27234, + "ÃŃcul": 27235, + "imen": 27236, + "JO": 27237, + "ĠRegex": 27238, + "_LINK": 27239, + "Ġcouch": 27240, + "ĠINPUT": 27241, + "Ġbeating": 27242, + "business": 27243, + "preced": 27244, + ".unit": 27245, + "ĠFel": 27246, + "Never": 27247, + "ospel": 27248, + ".startswith": 27249, + "ĠEPA": 27250, + ".only": 27251, + "Ġpreventing": 27252, + "yer": 27253, + "ColumnName": 27254, + "Ġelevation": 27255, + "flu": 27256, + "icycle": 27257, + "Ġoffline": 27258, + "Toolbar": 27259, + "Ġcompeting": 27260, + ")].": 27261, + "Ġmog": 27262, + "ĠisValid": 27263, + "Ask": 27264, + "_av": 27265, + "_lat": 27266, + "ANC": 27267, + "ĠJoh": 27268, + "kers": 27269, + "Ġguards": 27270, + "Ġchains": 27271, + "ĠSimpleDateFormat": 27272, + ".static": 27273, + "Ġvessel": 27274, + "Ġmud": 27275, + "Ġstabil": 27276, + "Ġstret": 27277, + "gm": 27278, + "amation": 27279, + "çľ": 27280, + "-with": 27281, + "Ġros": 27282, + "_PA": 27283, + "Ġresultado": 27284, + "Ġconfidential": 27285, + "ĠTokyo": 27286, + "ĉusing": 27287, + "ĠMathf": 27288, + "ombine": 27289, + "ĠESPN": 27290, + "Ġdealers": 27291, + "Ġdismissed": 27292, + "TRY": 27293, + "Ġteens": 27294, + "records": 27295, + "Ġwings": 27296, + "gallery": 27297, + "accounts": 27298, + "_LIB": 27299, + "Ġjacket": 27300, + "ĠNSObject": 27301, + "Ġstones": 27302, + "ĠDelivery": 27303, + "ĠDiet": 27304, + "/watch": 27305, + "Ġtoilet": 27306, + "ĠGuest": 27307, + ".day": 27308, + "067": 27309, + "Ġintval": 27310, + "087": 27311, + "Visit": 27312, + "Ġinvestigated": 27313, + "Ġpentru": 27314, + "ĠTheatre": 27315, + "andidates": 27316, + "Lang": 27317, + "ĠServ": 27318, + "Ġcontrollers": 27319, + "ĠsetTitle": 27320, + "NP": 27321, + "amy": 27322, + "flat": 27323, + "(ui": 27324, + "069": 27325, + "_document": 27326, + "èĥ½": 27327, + "ĠCoin": 27328, + "ĠAdams": 27329, + "ptic": 27330, + "Ġproductive": 27331, + "Ġaccomplished": 27332, + "čĊčĊčĊčĊ": 27333, + "Ġdeferred": 27334, + "ientes": 27335, + "Ġsinc": 27336, + "olars": 27337, + "Rightarrow": 27338, + "Ġvariations": 27339, + "(offset": 27340, + "957": 27341, + ".LayoutInflater": 27342, + "Ġsuspend": 27343, + "Ġprevention": 27344, + "_private": 27345, + "_js": 27346, + "âĺħ": 27347, + "Ġwieder": 27348, + "atum": 27349, + "ĴĮ": 27350, + "Ġappearances": 27351, + ".Document": 27352, + "Ġvalidates": 27353, + "calendar": 27354, + "}\";Ċ": 27355, + ".demo": 27356, + "conut": 27357, + "Ġcorrection": 27358, + "ĠDeal": 27359, + "Ġbatteries": 27360, + ".duration": 27361, + ",\\": 27362, + "_marker": 27363, + "multi": 27364, + "Ġhalt": 27365, + "Ġcms": 27366, + "Ġshaped": 27367, + "Bro": 27368, + "reduce": 27369, + "Ġ####": 27370, + "CTOR": 27371, + "ĠBenef": 27372, + "Ġiconic": 27373, + "Ġpiano": 27374, + "Ġeffectiveness": 27375, + "|.Ċ": 27376, + "Ġajax": 27377, + "Ġvolumes": 27378, + "ม": 27379, + "Ġcljs": 27380, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ": 27381, + "aths": 27382, + "raits": 27383, + "大": 27384, + "Ñĸ": 27385, + "_mult": 27386, + "Ġfascinating": 27387, + "Average": 27388, + "Ġpré": 27389, + "ĠChairman": 27390, + ".findElement": 27391, + "_pin": 27392, + "Ġcomparing": 27393, + "Ġdarkness": 27394, + "-Fi": 27395, + "-server": 27396, + "Ġselecting": 27397, + "sterdam": 27398, + "ĠParts": 27399, + "FORMATION": 27400, + "Ġnoting": 27401, + "Ġpile": 27402, + "ogs": 27403, + "Ġpalette": 27404, + "_do": 27405, + "itize": 27406, + "079": 27407, + "()(": 27408, + "Ġdefining": 27409, + "Ġremainder": 27410, + "Units": 27411, + "_TASK": 27412, + "HttpClient": 27413, + "Social": 27414, + "Ġfundra": 27415, + "NR": 27416, + "chest": 27417, + "Currency": 27418, + ".adapter": 27419, + "Ġdop": 27420, + "unting": 27421, + "ANGUAGE": 27422, + "\"He": 27423, + "ĉindex": 27424, + "_package": 27425, + ".Icon": 27426, + "Ġrepet": 27427, + "mass": 27428, + "=\".$": 27429, + "ĠSud": 27430, + "Ġlid": 27431, + "province": 27432, + "ìľ": 27433, + "GPIO": 27434, + "Ðļ": 27435, + "ĠMySQL": 27436, + "Ġdocs": 27437, + "ĠGA": 27438, + "Ġipsum": 27439, + "Kernel": 27440, + "Ġaccepts": 27441, + "Ġfitting": 27442, + "Ġcuando": 27443, + "Ġduplic": 27444, + "ĠBrother": 27445, + "ĠKle": 27446, + "nums": 27447, + "Ġmorph": 27448, + "Ġ########": 27449, + "ĠCGPoint": 27450, + "manual": 27765, + "ĠTechnical": 27766, + "Ġcorporation": 27767, + "ĠHW": 27768, + "anka": 27769, + "TAIL": 27770, + "istas": 27771, + "Ġperforms": 27772, + "ĠBehavior": 27773, + ".For": 27774, + "_ORDER": 27775, + "ĠKick": 27776, + "Ġcallbacks": 27777, + "_dr": 27778, + "uego": 27779, + "hub": 27780, + "ufficient": 27781, + "sky": 27782, + "Ġbp": 27783, + "htable": 27784, + "ĠONLY": 27785, + "ĠAUTHORS": 27786, + ".Argument": 27787, + "\"};Ċ": 27788, + "ĠThunder": 27789, + "ĠKom": 27790, + ".Should": 27791, + "AUTH": 27792, + "ahu": 27793, + "_payment": 27794, + "Ġstarter": 27795, + "ìĦľ": 27796, + "ìļ©": 27797, + "Blog": 27798, + ".patch": 27799, + "Ġgoverned": 27800, + "assy": 27801, + "-found": 27802, + "Ġtheater": 27803, + "ĠFontWeight": 27804, + "ĠBatman": 27805, + "\"If": 27806, + ".Random": 27807, + "_delta": 27808, + "ĠCE": 27809, + "Authenticated": 27810, + "Ġdrone": 27811, + "Ġcous": 27812, + "radius": 27813, + "Mer": 27814, + "(None": 27815, + "ĠNJ": 27816, + "_headers": 27817, + "Ġamer": 27818, + "pytest": 27819, + "ĠActions": 27820, + "ĉĉĉĠĠĠĠ": 27821, + "Ġett": 27822, + "Ġholy": 27823, + "Ġuncomfort": 27824, + "ĠNin": 27825, + "ĠDecimal": 27826, + "ĠMessages": 27827, + ".sender": 27828, + "]])Ċ": 27829, + "Ġembrace": 27830, + "Though": 27831, + "/sp": 27832, + "Ġcultures": 27833, + "Ġhighway": 27834, + "tar": 27835, + ".fail": 27836, + "_hidden": 27837, + "ĠcomponentDidMount": 27838, + "ĠWright": 27839, + "Ġjag": 27840, + "_il": 27841, + "../../../": 27842, + "igu": 27843, + "Food": 27844, + "Ġace": 27845, + "Ġaños": 27846, + "USD": 27847, + "Ġmutual": 27848, + "Logic": 27849, + "Ġtemple": 27850, + "Ġbriefly": 27851, + "ĠTrip": 27852, + "classmethod": 27853, + "defaults": 27854, + "Ġchunks": 27855, + ",,,,": 27856, + "ĠReason": 27857, + "$id": 27858, + "-ups": 27859, + "Ġdamn": 27860, + "Ġtrucks": 27861, + "Ġunlimited": 27862, + "Ġsculpt": 27863, + "ĠCards": 27864, + "Ġautor": 27865, + "ĠTesting": 27866, + "Ġdiese": 27867, + "shops": 27868, + "ç´": 27869, + "(payload": 27870, + "ĠPATH": 27871, + "ĠMemorial": 27872, + "Ġridiculous": 27873, + "egree": 27874, + "-winning": 27875, + "Ġrehab": 27876, + "Ġsophisticated": 27877, + "wpdb": 27878, + "ĉpath": 27879, + "!\";Ċ": 27880, + "_SYS": 27881, + ".speed": 27882, + "Ġsoap": 27883, + "suffix": 27884, + "Wrap": 27885, + "Ġenhancement": 27886, + "Ãī": 27887, + "úb": 27888, + "Ġplaylist": 27889, + "Ġmixing": 27890, + "antidad": 27891, + "=\"\";Ċ": 27892, + "ĠRevision": 27893, + "ĠBeat": 27894, + ".inc": 27895, + "-way": 27896, + "encias": 27897, + "ulers": 27898, + "Cat": 27899, + "idel": 27900, + "ĠShip": 27901, + ".setColor": 27902, + "Ġthreatening": 27903, + ".modules": 27904, + "Ġafterwards": 27905, + "ĠDashboard": 27906, + "ĊĠĊ": 27907, + "Signal": 27908, + "Ġprimer": 27909, + "orneys": 27910, + "iciary": 27911, + "Ġligne": 27912, + "_predict": 27913, + "Ġaest": 27914, + "_https": 27915, + ">:": 27916, + "ĠLex": 27917, + "Ġrencontres": 27918, + "egral": 27919, + "scala": 27920, + "_family": 27921, + "ÃŁen": 27922, + "_sym": 27923, + "Ġuncertainty": 27924, + "ĠVALUE": 27925, + "Ġ};čĊčĊ": 27926, + "Ġbroader": 27927, + "Ġhorses": 27928, + "ãģĿ": 27929, + "ĠKal": 27930, + "oba": 27931, + "_INET": 27932, + "ĠKill": 27933, + "jquery": 27934, + "amination": 27935, + "[@\"": 27936, + "Ġmuj": 27937, + "###Ċ": 27938, + "FirstOrDefault": 27939, + "thenReturn": 27940, + "Che": 27941, + "/footer": 27942, + "Ġparks": 27943, + "asje": 27944, + "ĠGulf": 27945, + "Ġmodest": 27946, + ".Init": 27947, + "ï¼ŁĊĊ": 27948, + "Ġprospects": 27949, + "Ġsvg": 27950, + "Ġåı": 27951, + ".Dialog": 27952, + "_NET": 27953, + "Ġ(($": 27954, + "Ġek": 27955, + "ĠWarning": 27956, + "ĠMK": 27957, + "": 28265, + "ĠRepair": 28266, + "_BE": 28267, + "Brand": 28268, + "uart": 28269, + "preview": 28270, + "Ġinitiatives": 28271, + "running": 28272, + "bang": 28273, + "ĉupdate": 28274, + "ĠCoach": 28275, + "Rich": 28276, + "Ġyoutube": 28277, + "Ġritual": 28278, + "appa": 28279, + "ĠRobinson": 28280, + "precision": 28281, + "////////////////////////////////////////////////////////////////////////////": 28282, + "=[]Ċ": 28283, + "Ġcelebrated": 28284, + "OTO": 28285, + "Ġinclusion": 28286, + "JP": 28287, + "';čĊčĊ": 28288, + "Ġnotable": 28289, + "(_.": 28290, + "Managed": 28291, + "Ġguides": 28292, + " ": 28293, + "atedRoute": 28294, + "ĠAdjust": 28295, + "Ġcolored": 28296, + "_scores": 28297, + "ĠTesla": 28298, + "_progress": 28299, + ".inst": 28300, + "['_": 28301, + ".flags": 28302, + "Ġfclose": 28303, + "_OPER": 28304, + "ży": 28305, + "_note": 28306, + "Ġtransgender": 28307, + "åķ": 28308, + "RIPT": 28309, + "Ġabsent": 28310, + "Ġamet": 28311, + "Ġoperand": 28312, + "ë©": 28313, + "Ġhood": 28314, + "toLowerCase": 28315, + "avo": 28316, + "ĠCircuit": 28317, + "ĠLind": 28318, + "--}}Ċ": 28319, + "=m": 28320, + "Ġsuppress": 28321, + "ĠMAP": 28322, + "iang": 28323, + "-admin": 28324, + "Ġsidebar": 28325, + "ĠBu": 28326, + "ĠHex": 28327, + ",F": 28328, + "ĠSignal": 28329, + "Ġtransparency": 28330, + "ĠFederation": 28331, + "/V": 28332, + "Req": 28333, + "Ġpulse": 28334, + "Ġtends": 28335, + "Numbers": 28336, + "%'": 28337, + "Ġdeport": 28338, + "datas": 28339, + "_UINT": 28340, + "_tra": 28341, + "oko": 28342, + "Ġ\"?": 28343, + "compet": 28344, + "solete": 28345, + "undry": 28346, + "Ġoverlap": 28347, + "}`,Ċ": 28348, + ".ly": 28349, + "_summary": 28350, + "ĠLost": 28351, + ".Center": 28352, + "Ġdisability": 28353, + ".Serialization": 28354, + "Ġgeom": 28355, + "Ġ?:": 28356, + "ĠWo": 28357, + "Ġshipped": 28358, + "Ĥæķ°": 28359, + "Ġugly": 28360, + "Ġexcitement": 28361, + "Ġexterior": 28362, + "Ġcheckout": 28363, + "Ġkur": 28364, + ",D": 28365, + "ĠAlaska": 28366, + "Ġsynthetic": 28367, + "ĠBudget": 28368, + "ĠSubscribe": 28369, + "Ġ&Ċ": 28370, + "ÈĻi": 28371, + "ĠYu": 28372, + "ĉquery": 28373, + "}.Ċ": 28374, + "Ġtraged": 28375, + "assen": 28376, + "Ġaccommodation": 28377, + "Ġphysician": 28378, + "Ġrenamed": 28379, + "Ġtidak": 28380, + "zÄħ": 28381, + "Ġminus": 28382, + "nych": 28383, + "097": 28384, + "_EXCEPTION": 28385, + "threads": 28386, + "Ġtire": 28387, + "_created": 28388, + "ensure": 28389, + "Ġworthy": 28390, + "Ġexcuse": 28391, + "Ġcloth": 28392, + ".parentNode": 28393, + "/platform": 28394, + "ĠUFC": 28395, + "ĠGtk": 28396, + "unny": 28397, + "Ġgibt": 28398, + "keley": 28399, + "hum": 28400, + "(tx": 28401, + "ĉdev": 28402, + "Ġoutfit": 28403, + "doors": 28404, + "Ġfon": 28405, + "icut": 28406, + "volatile": 28407, + "Ġhomosex": 28408, + "Maximum": 28409, + "Ġexpend": 28410, + "Ġ});ĊĊĊ": 28411, + "Eq": 28412, + "onders": 28413, + "department": 28414, + "ĠPhysics": 28415, + "\"});Ċ": 28416, + "Ġparad": 28417, + ".Str": 28418, + "Ġsele": 28419, + "IFIED": 28420, + "Ġdelivers": 28421, + "ivan": 28422, + "Ġresponsibilities": 28423, + "Ġadvocates": 28424, + "èµ": 28425, + "ĠRID": 28426, + ".parameters": 28427, + "Metrics": 28428, + "ronics": 28429, + "ĠUITableViewCell": 28430, + "Absolute": 28431, + "ipse": 28432, + "ylum": 28433, + "MLElement": 28434, + "_VALID": 28435, + "\\<^": 28630, + "Ġios": 28631, + "sound": 28632, + "\"];": 28633, + "Ġfreed": 28634, + "rottle": 28635, + "ĠLower": 28636, + "[count": 28637, + "åĿ": 28638, + "Ġpale": 28639, + "ĠWayne": 28640, + "earth": 28641, + "_categories": 28642, + "UCK": 28643, + ".metadata": 28644, + "Ġsummon": 28645, + "HOME": 28646, + "олÑĮз": 28647, + "Ġmanufactured": 28648, + "Ġdock": 28649, + "Ġcompetitors": 28650, + "_MODEL": 28651, + "okia": 28652, + "ĠHey": 28653, + "ο": 28654, + "Ġbackward": 28655, + "ĠPOSS": 28656, + "ropa": 28657, + "Ġcri": 28658, + "_OBJ": 28659, + "Transport": 28660, + "-high": 28661, + "Ġerotik": 28662, + "_slot": 28663, + "Ġartic": 28664, + "_framework": 28665, + "-serif": 28666, + "ĠSqlDbType": 28667, + "')(": 28668, + "+\"/": 28669, + "Ġwore": 28670, + "Sil": 28671, + "Ġstoring": 28672, + "ĠPhase": 28673, + "uant": 28674, + "Ġbump": 28675, + "inho": 28676, + "Ġdign": 28677, + "Ġbacks": 28678, + "qq": 28679, + "(hash": 28680, + "Ġgeo": 28681, + "Ġtender": 28682, + "Logo": 28683, + "!)Ċ": 28684, + "ĠMX": 28685, + "ĠArthur": 28686, + "essoa": 28687, + "_Ch": 28688, + "Ġbedrooms": 28689, + "=\"#\"><": 28690, + "Ġthroat": 28691, + "insic": 28692, + ".integer": 28693, + "Ġprimitive": 28694, + "Truthy": 28695, + "Ġfacilitate": 28696, + "Ġcreativity": 28697, + "ĠDNS": 28698, + "Ġgra": 28699, + "uez": 28700, + "Ġcountless": 28701, + "ĠPoland": 28702, + "'M": 28703, + "ĠDist": 28704, + "Ġvest": 28705, + "Ġcertification": 28706, + "á»ij": 28707, + "held": 28708, + "extensions": 28709, + "(static": 28710, + "Ġgrades": 28711, + "ĠUber": 28712, + "ãģŁ": 28713, + "Ġ[])Ċ": 28714, + "datos": 28715, + "ĠgetData": 28716, + "ĠCharg": 28717, + "ĠBS": 28718, + ".microsoft": 28719, + ".video": 28720, + ".direction": 28721, + "->{'": 28722, + "lua": 28723, + "apest": 28724, + "Ġboiler": 28725, + "erek": 28726, + "Ġdecides": 28727, + ".jar": 28728, + "ISC": 28729, + "ĠWords": 28730, + "(CON": 28731, + "EMPLATE": 28732, + "reeze": 28733, + "shots": 28734, + "apps": 28735, + "unted": 28736, + ".setName": 28737, + "::<": 28738, + "-bold": 28739, + "ê²": 28740, + "å¯Ĩ": 28741, + "Longrightarrow": 28742, + "Ġunfair": 28743, + "Ġearning": 28744, + "Ġshelf": 28745, + "UREMENT": 28746, + "Ġidle": 28747, + "_MENU": 28748, + ".Custom": 28749, + "AGER": 28750, + "-\"": 28751, + "_switch": 28752, + "because": 28753, + ")view": 28754, + "mare": 28755, + "_condition": 28756, + "ĠStarting": 28757, + "Mvc": 28758, + "(pre": 28759, + "dump": 28760, + "_LOCK": 28761, + "atetime": 28762, + ".callback": 28763, + "ĠCer": 28764, + "opol": 28765, + "ibrary": 28766, + "Ġreservation": 28767, + "ĉĉĉĉĉĉĉĊ": 28768, + "lector": 28769, + "graduate": 28770, + "Ġgenerous": 28771, + "Ġion": 28772, + "ricao": 28773, + "mq": 28774, + "_complete": 28775, + "(cursor": 28776, + "ĠFormControl": 28777, + ":center": 28778, + "Ġsubstitute": 28779, + "ĠPlanning": 28780, + "Ġpension": 28781, + "Ġrecommendation": 28782, + "ĠTags": 28783, + "Ġgef": 28784, + "Ġalbums": 28785, + "Ġwashing": 28786, + "roc": 28787, + "Ġtrains": 28788, + "atings": 28789, + "Ġexponent": 28790, + "ackbar": 28791, + "-ln": 28792, + "ág": 28793, + ".DataAnnotations": 28794, + "ĠEIF": 28795, + "ĠMalaysia": 28796, + "ĉPORT": 28797, + "onus": 28798, + "Ġclever": 28799, + "Ġpeu": 28800, + ">ĊĊĊĊ": 28801, + "ĠArguments": 28802, + "Ġdebugging": 28803, + "(right": 28804, + "'D": 28805, + "compute": 28806, + "Ġfinest": 28807, + "ORAGE": 28808, + "Ġspectacular": 28809, + "phrase": 28810, + "Ġindia": 28811, + "Ġlegendary": 28812, + "birth": 28813, + "Ġcomposite": 28814, + "Ġgrows": 28815, + "ĠTD": 28816, + "Ġepid": 28817, + "Ġlaunching": 28818, + "]][": 28819, + "Minutes": 28820, + "ĠCha": 28821, + "Ġcleaned": 28822, + "Ġwitnesses": 28823, + "ukan": 28824, + "ĉType": 28825, + "Ġhabe": 28826, + "paragraph": 28827, + "ĠJPanel": 28828, + "ĠHann": 28829, + "Ġvaried": 28830, + "ĠPokemon": 28831, + "ĠMUST": 28832, + "åĬ¨": 28833, + ".visibility": 28834, + "opup": 28835, + "^[": 28836, + ".expand": 28837, + "Ġ\"',": 28838, + ".fasterxml": 28839, + "_auto": 28840, + "ĠSheet": 28841, + "marker": 28842, + "Parcel": 28843, + "ews": 28844, + "ĠStrategy": 28845, + "-making": 28846, + "Ġunve": 28847, + "Ġtrailing": 28848, + "Ġclicks": 28849, + "ĠGetComponent": 28850, + "ĉcontent": 28851, + "IGENCE": 28852, + "ERNEL": 28853, + "NSMutableArray": 28854, + "Ġbreat": 28855, + "Ġharmful": 28856, + "¶Ī": 28857, + "Ġbesides": 28858, + "Ġboring": 28859, + "Ġbrutal": 28860, + "vang": 28861, + "(parse": 28862, + "quick": 28863, + "Ġpytest": 28864, + "Ġswitching": 28865, + "()]Ċ": 28866, + "ĠìĦ": 28867, + "LER": 28868, + "ĉfont": 28869, + "Ġnett": 28870, + ")]ĊĊ": 28871, + "(/\\": 28872, + "æŀľ": 28873, + "toArray": 28874, + "Ġbreed": 28875, + "ĠCAR": 28876, + "ĠWeapon": 28877, + "Abs": 28878, + "tot": 28879, + "ĠsetName": 28880, + "aptive": 28881, + "Ġ:,": 28882, + "Ġescaped": 28883, + "orden": 28884, + "ĠPri": 28885, + "thumbnail": 28886, + "Ġdescriptions": 28887, + "/styles": 28888, + "ĠPCI": 28889, + "Ġalphabet": 28890, + "asticsearch": 28891, + "NOTE": 28892, + "Ġcialis": 28893, + "ĠGriff": 28894, + "Ġporque": 28895, + "Ġproteins": 28896, + "plays": 28897, + "Ġstating": 28898, + "Ġimagination": 28899, + "Ġfacial": 28900, + "ĠMechan": 28901, + "Ġarranged": 28902, + "_used": 28903, + "Ġarrangements": 28904, + "ĠPipe": 28905, + "hostname": 28906, + "Ġprovinc": 28907, + "Tit": 28908, + ".FlatStyle": 28909, + "ĠSplit": 28910, + "ĠLoader": 28911, + ".cc": 28912, + "Ġclinic": 28913, + "----------------------------": 28914, + "Ġbaking": 28915, + "ĠENT": 28916, + "neath": 28917, + "ãĢģĊĊ": 28918, + "ANE": 28919, + ".EntityFrameworkCore": 28920, + "appers": 28921, + ".ic": 28922, + "ĠNgModule": 28923, + "ĠFORM": 28924, + "Ġ';": 28925, + "-profit": 28926, + "hw": 28927, + "enemy": 28928, + "ĠEye": 28929, + "Ġcaution": 28930, + "town": 28931, + "Ġurged": 28932, + "ĠJimmy": 28933, + "ynchronous": 28934, + "-sized": 28935, + "making": 28936, + ",{": 28937, + "]',": 28938, + "_Object": 28939, + "ahoma": 28940, + "Ġactivist": 28941, + "INVAL": 28942, + "ĠCommercial": 28943, + "ĠOrlando": 28944, + "(tab": 28945, + "Ġب": 28946, + "Algorithm": 28947, + "Ġheritage": 28948, + "GetMapping": 28949, + "Ġfailures": 28950, + "rios": 28951, + "ativa": 28952, + "Ġtet": 28953, + "Ġcarpet": 28954, + "(Z": 28955, + "three": 28956, + "Ġdisclosure": 28957, + ".ERROR": 28958, + "_called": 28959, + "Ġdial": 28960, + "Ġoccasional": 28961, + ".Err": 28962, + "Ġfuncion": 28963, + "caffold": 28964, + "Ġreleasing": 28965, + "ï¼īĊĊ": 28966, + "_Value": 28967, + "ĠVari": 28968, + "yellow": 28969, + "Ġstruggles": 28970, + ".cal": 28971, + "ĠDakota": 28972, + "ĉclose": 28973, + "Ġsandwich": 28974, + "Ġanalytics": 28975, + "Ġ**)": 28976, + "&#": 28977, + "ĠJos": 28978, + "Ġpassive": 28979, + "ATTR": 28980, + "Throwable": 28981, + "ĠMun": 28982, + "ĠUint": 28983, + "(disposing": 28984, + "arak": 28985, + "ĠLeaders": 28986, + "Ġaffecting": 28987, + "ĠitemView": 28988, + "Ġeconomics": 28989, + "fv": 28990, + "à¹Ģ": 28991, + ".rb": 28992, + "ĠOverall": 28993, + "Ġwealthy": 28994, + "Ġevolved": 28995, + "nda": 28996, + "ĠHus": 28997, + "restrict": 28998, + "umen": 28999, + "ĠAgricult": 29000, + "!ĊĊĊ": 29001, + "Ġexpires": 29002, + "Ġspokesperson": 29003, + "interval": 29004, + "Ġâ": 29005, + "Ġqueen": 29006, + "(nil": 29007, + "ingo": 29008, + "Heap": 29009, + "Ùİ": 29010, + "Ġcomplain": 29011, + "Sym": 29012, + "ĠClone": 29013, + "ĠRu": 29014, + "ĠWILL": 29015, + "ĠCrystal": 29016, + "/content": 29017, + "ingen": 29018, + "ointment": 29019, + "LastName": 29020, + "avicon": 29021, + "ĠIBM": 29022, + "ĠDimension": 29023, + "anh": 29024, + "icipants": 29025, + "ĠAnne": 29026, + ".progress": 29027, + "Ġalgo": 29028, + "obil": 29029, + "ĠVoice": 29030, + "ĠFE": 29031, + "Ġgli": 29032, + "Ġved": 29033, + "Ġprevents": 29034, + "\\Column": 29035, + "Ġfolk": 29036, + "etti": 29037, + "Ġmn": 29038, + "ĠCLASS": 29039, + "Ġdisplaying": 29040, + "ĠKl": 29041, + "ĠFerr": 29042, + "duto": 29043, + ".ib": 29044, + "Ġdados": 29045, + "'name": 29046, + "-space": 29047, + "Ġitalian": 29048, + "Ġinverse": 29049, + "Ġdense": 29050, + "uter": 29051, + "ĠIEnumerator": 29052, + "-sign": 29053, + "Ġnationwide": 29054, + "Ġpersona": 29055, + "Ġsolved": 29056, + "Ġdramatically": 29057, + "Logout": 29058, + "Ġgrav": 29059, + "Ġanalyses": 29060, + "ollo": 29061, + "Ġlamp": 29062, + ".team": 29063, + "ĠErot": 29064, + "=[\"": 29065, + "Ġdancing": 29066, + "Ġ?>/": 29067, + "Ġcater": 29068, + "ffe": 29069, + "ĠSha": 29070, + "ĠBos": 29071, + "ĠREQUIRE": 29072, + "ĠMonster": 29073, + "ĠRB": 29074, + "ĠIDE": 29075, + "Ġsuits": 29076, + "ĠformData": 29077, + "(theta": 29078, + "Ġspatial": 29079, + "=NULL": 29080, + "ĠSqlConnection": 29081, + "Ġà": 29082, + "ĠVenez": 29083, + "ĠMorning": 29084, + "Ġpublications": 29085, + "ĠNONINFRINGEMENT": 29086, + "firstName": 29087, + "uds": 29088, + "Would": 29089, + "_HEAD": 29090, + "Ġinvested": 29091, + "stable": 29092, + "fred": 29093, + "Ġcommander": 29094, + "SES": 29095, + "âĢĶa": 29096, + "anche": 29097, + "ĠMovement": 29098, + "ë³": 29099, + "Suite": 29100, + "Ġjurisdiction": 29101, + "리": 29102, + "ĠBeth": 29103, + "jQuery": 29104, + "ĠIsa": 29105, + "Ġdental": 29106, + ",*": 29107, + "ĠLimit": 29108, + "iliation": 29109, + "=\"{": 29110, + "bast": 29111, + "Ġturb": 29112, + "isy": 29113, + "OOK": 29114, + "Ġadvocate": 29115, + "imag": 29116, + "LECTION": 29117, + "лÑĮ": 29118, + "(category": 29119, + ".dec": 29120, + "Ġuniqu": 29121, + "_sn": 29122, + "Ġattracted": 29123, + "ĠÃī": 29124, + "ĠRunning": 29125, + "_edges": 29126, + "ĠDisable": 29127, + "_AS": 29128, + "åĽ¾": 29129, + "Ġnetworking": 29130, + "_branch": 29131, + "Having": 29132, + "toBeTruthy": 29133, + "GI": 29134, + "Ġcamps": 29135, + "sep": 29136, + "-part": 29137, + "Ġ)ĊĊĊĊĊĊĊĊ": 29138, + "ustralia": 29139, + "ĠReports": 29140, + "rito": 29141, + "Ġwaist": 29142, + "_plus": 29143, + "ĠWW": 29144, + "-person": 29145, + "April": 29146, + "Ġsar": 29147, + ".tar": 29148, + "Ġagricultural": 29149, + "tic": 29150, + "Ġtcp": 29151, + "ĠsetValue": 29152, + "agento": 29153, + "ĠAppe": 29154, + "piler": 29155, + "CADE": 29156, + "Ġanche": 29157, + "atcher": 29158, + "Ġcomics": 29159, + "Ġlbs": 29160, + "_segment": 29161, + "']=$": 29162, + "itters": 29163, + "icher": 29164, + "GINE": 29165, + "Ġutilize": 29166, + "ĠCursor": 29167, + "_expression": 29168, + "Ġdag": 29169, + "x": 29357, + ".Task": 29358, + "money": 29359, + "ibaba": 29360, + "'});Ċ": 29361, + "ĠSpecific": 29362, + "ĠLinear": 29363, + "_OPT": 29364, + "HashCode": 29365, + "(Player": 29366, + ".ContainsKey": 29367, + "Ġcollapsed": 29368, + "transparent": 29369, + "_RANGE": 29370, + "Viewer": 29371, + "(cfg": 29372, + "Ġsorting": 29373, + "Ġinfected": 29374, + "ĠNach": 29375, + "Ġaccommodate": 29376, + ".elements": 29377, + "_PART": 29378, + "ĠSexy": 29379, + "=get": 29380, + "(year": 29381, + "Ġxhr": 29382, + ":]": 29383, + "owski": 29384, + "Ġsummar": 29385, + "Ġ¿": 29386, + "Ġinte": 29387, + "Ġworkflow": 29388, + "ĠTaiwan": 29389, + "versions": 29390, + "åıij": 29391, + "Ġsurprisingly": 29392, + "Ġoptical": 29393, + "Ġproces": 29394, + "Ġdisagree": 29395, + "Ġnuevo": 29396, + "ĠCAM": 29397, + "sorted": 29398, + "leases": 29399, + "istle": 29400, + "Ident": 29401, + "ĉevent": 29402, + "jected": 29403, + "Chunk": 29404, + "Vars": 29405, + ".provider": 29406, + "Ġproceedings": 29407, + "Ġinclusive": 29408, + "Ġartwork": 29409, + "endants": 29410, + "ï¼ļĊ": 29411, + "seen": 29412, + "Ġlig": 29413, + "Ġmakers": 29414, + "_fun": 29415, + "Ġlengths": 29416, + "PathVariable": 29417, + "[item": 29418, + "ี": 29419, + "Dead": 29420, + "FFFFFF": 29421, + "ĠUrban": 29422, + "uples": 29423, + "ichen": 29424, + "(nullptr": 29425, + ".spec": 29426, + ",System": 29427, + "URATION": 29428, + "(job": 29429, + "å¼ı": 29430, + "Ġtracker": 29431, + "ÅĻ": 29432, + "ĠMR": 29433, + "ĠSQLite": 29434, + "Ġdto": 29435, + "Ġ;;Ċ": 29436, + "Ġmint": 29437, + "ĠIntroduction": 29438, + "cao": 29439, + "Ġquestioned": 29440, + "Ġfitted": 29441, + "revision": 29442, + "sq": 29443, + "Ġmig": 29444, + "_units": 29445, + "_async": 29446, + "Ġflick": 29447, + "});ĊĊĊ": 29448, + "Ġnotre": 29449, + "}`,": 29450, + "Filters": 29451, + "Ġmundo": 29452, + "_days": 29453, + "Ġfrm": 29454, + "utc": 29455, + "Ġvals": 29456, + "ewidth": 29457, + "ĠGenerator": 29458, + "ĠArtist": 29459, + "ĠIDs": 29460, + "ĠArticles": 29461, + "reater": 29462, + "ĠComponentFixture": 29463, + ".=": 29464, + "Ġrou": 29465, + "-no": 29466, + ".bukkit": 29467, + "egg": 29468, + "ĠDiff": 29469, + "atics": 29470, + "ÑĥÑĩ": 29471, + "âĢĶĊĊ": 29472, + "ĠCharlotte": 29473, + "bye": 29474, + "Ġ});čĊčĊ": 29475, + "ĠVik": 29476, + "ĠBrow": 29477, + "Ġlv": 29478, + "ĠGib": 29479, + "-wing": 29480, + "GLIGENCE": 29481, + "(Il": 29482, + "ĠEngineer": 29483, + ".Wait": 29484, + "ĠPictures": 29485, + "Ġrhet": 29486, + "Ġthermal": 29487, + "Ġpraise": 29488, + "<>();ĊĊ": 29489, + "ĠSpider": 29490, + "Pause": 29491, + "ĠBaker": 29492, + "Ġslower": 29493, + "Ġ}]Ċ": 29494, + "_enqueue": 29495, + "Ġdisappeared": 29496, + "ĠTicket": 29497, + "INUX": 29498, + "_LOCAL": 29499, + "аÑģÑģ": 29500, + "@Injectable": 29501, + "community": 29502, + "GestureRecognizer": 29503, + "åĽ½": 29504, + "Ġscales": 29505, + "Ġ-(": 29506, + "/'+": 29507, + "ĠSit": 29508, + "Ġexecutives": 29509, + "arding": 29510, + "Ġadvers": 29511, + "Ġbackwards": 29512, + "ĉcontext": 29513, + "ĠHamp": 29514, + "ĠPF": 29515, + "ĠDeck": 29516, + "ĠCraig": 29517, + "American": 29518, + "Ġbell": 29519, + "Ġprol": 29520, + "ufen": 29521, + "Ġrng": 29522, + "arshal": 29523, + "ĠSimply": 29524, + "firstname": 29525, + "shore": 29526, + "July": 29527, + "Ġmortality": 29528, + "ĠâĨĴĊĊ": 29529, + "Helpers": 29530, + "Ġbenchmark": 29531, + "emade": 29532, + "Ġorganisations": 29533, + ".gson": 29534, + "ĠTextField": 29535, + "Ġcivilians": 29536, + ".Arrays": 29537, + "ĠMississippi": 29538, + "Ġintermediate": 29539, + "getUser": 29540, + "_cluster": 29541, + "Relative": 29542, + "foreign": 29543, + ".querySelectorAll": 29544, + "ForeignKey": 29545, + "Ġreasonably": 29546, + "---------Ċ": 29547, + "Cards": 29548, + "ĠKam": 29549, + "ĠThor": 29550, + "Ġroller": 29551, + "-element": 29552, + "ĠCurrency": 29553, + "ddie": 29554, + "ALLY": 29555, + "ĠRA": 29556, + "Ġpermet": 29557, + "aaaa": 29558, + "Ġhomework": 29559, + "ĠVit": 29560, + "Ġmold": 29561, + "ĠFer": 29562, + "[start": 29563, + "Ġstatistical": 29564, + "Ġscary": 29565, + "_HOME": 29566, + ".Begin": 29567, + "Construct": 29568, + "ogenic": 29569, + "ĠDEALINGS": 29570, + "Ġtambién": 29571, + "ixon": 29572, + ".ind": 29573, + "acre": 29574, + "Ġtransforms": 29575, + "ĠNap": 29576, + ".Block": 29577, + "ussia": 29578, + "piration": 29579, + "ulent": 29580, + "Ġceil": 29581, + "Clause": 29582, + "naire": 29583, + "TES": 29584, + "Ġneat": 29585, + "STD": 29586, + "ĠRegExp": 29587, + "perform": 29588, + ":)": 29589, + "Ġunions": 29590, + "Ġsublic": 29591, + "Ġwinds": 29592, + "loating": 29593, + "glich": 29594, + "Ġpagination": 29595, + "Skill": 29596, + "Apply": 29597, + "ĠOperator": 29598, + "istogram": 29599, + "Ġqualities": 29600, + "Cross": 29601, + "Ġdecom": 29602, + "],\"": 29603, + "ĠJuan": 29604, + ".modal": 29605, + ".Child": 29606, + "ĠRoger": 29607, + "STITUTE": 29608, + ":CGRectMake": 29609, + "alette": 29610, + "Ġsta": 29611, + "aside": 29612, + "Ġblur": 29613, + "ĠWa": 29614, + "ifetime": 29615, + "reed": 29616, + "controls": 29617, + "Ġbins": 29618, + "Ġпол": 29619, + "*/,Ċ": 29620, + "UIS": 29621, + "ĠRou": 29622, + "ĠDemo": 29623, + "-awesome": 29624, + "ĠChain": 29625, + "Ġhasta": 29626, + "ĠBart": 29627, + ".KEY": 29628, + "Ġvendors": 29629, + "nofollow": 29630, + "ĠDest": 29631, + "_builder": 29632, + "Ġargues": 29633, + "_answer": 29634, + "goto": 29635, + "ĠRESULT": 29636, + "ĠMON": 29637, + "Ġpoder": 29638, + "oons": 29639, + "_CASE": 29640, + "Ġreplic": 29641, + "Ġfinancing": 29642, + "ĠDATE": 29643, + "cern": 29644, + "_track": 29645, + "ties": 29646, + "/logo": 29647, + "ĠNEGLIGENCE": 29648, + "getType": 29649, + ">T": 29650, + "bet": 29651, + "girl": 29652, + "ĠINCIDENTAL": 29653, + "-site": 29654, + ".trigger": 29655, + "ĠLisa": 29656, + "_inputs": 29657, + "Ġrelatives": 29658, + "LoggedIn": 29659, + "Configure": 29660, + "IK": 29661, + ".accept": 29662, + "Resume": 29663, + "ĠDraft": 29664, + "Ġ*>(": 29665, + "ĠWA": 29666, + "edian": 29667, + "erness": 29668, + "ĠLayoutInflater": 29669, + "*/čĊčĊ": 29670, + "othy": 29671, + "Ġobligation": 29672, + "Subscribe": 29673, + "Ġthumbnail": 29674, + "exist": 29675, + "Ġinsisted": 29676, + "ĠUICollectionView": 29677, + "ĠAngular": 29678, + "Ġtablets": 29679, + "ĠImpact": 29680, + "ãĢįĊĊ": 29681, + "aho": 29682, + "Ġcharacteristic": 29683, + "gd": 29684, + "Ġ=================================================": 29685, + "ourt": 29686, + "`.": 29687, + "Appro": 29688, + "Coordinate": 29689, + "Remember": 29690, + "Ġmarine": 29691, + "]=='": 29692, + "ĠAdministrator": 29693, + ".getDefault": 29694, + "Ġforgot": 29695, + "ĠStructure": 29696, + "Vue": 29697, + "arsing": 29698, + "moment": 29699, + "kw": 29700, + "_cursor": 29701, + "Attack": 29702, + "Ġathletic": 29703, + "Ġdiagnosed": 29704, + "Ġende": 29705, + "åĪłéĻ¤": 29706, + "House": 29707, + "ĠPARAM": 29708, + "Ġwiki": 29709, + "ĠOpp": 29710, + "Ġconservation": 29711, + "Ġsnd": 29712, + "_tem": 29713, + "substr": 29714, + "ĠCape": 29715, + ".sim": 29716, + "UTION": 29717, + "anan": 29718, + "âĢĻun": 29719, + "Ġgy": 29720, + "-work": 29721, + "Ġcompelling": 29722, + "='#": 29723, + "ĉsub": 29724, + "Ġdirectories": 29725, + "íĬ¸": 29726, + "Ġtouches": 29727, + "outines": 29728, + ".Collection": 29729, + "schedule": 29730, + ".lat": 29731, + "ĠDoctrine": 29732, + "CAA": 29733, + "ĠRefer": 29734, + "Ġshifts": 29735, + "Ġlikelihood": 29736, + "preter": 29737, + "ĠFemale": 29738, + "Ġintercept": 29739, + "Ġlou": 29740, + "çĻ»": 29741, + "Ġrug": 29742, + "ĠCrown": 29743, + "Ġ****************************************************************************": 29744, + "-product": 29745, + "Ġprompted": 29746, + "ungle": 29747, + "docker": 29748, + "ĠTu": 29749, + "ĠUnique": 29750, + "_Error": 29751, + "ulos": 29752, + "ĠâĦ": 29753, + "Ġ(`": 29754, + "Getting": 29755, + "_scal": 29756, + "ĠEnh": 29757, + "üt": 29758, + "Ġsustained": 29759, + "Ġpatches": 29760, + "Ġprosper": 29761, + "ĠGaza": 29762, + "_light": 29763, + "Ġincons": 29764, + "--------Ċ": 29765, + "ĉĉĠĠĠĠĠĠ": 29766, + "SF": 29767, + "CN": 29768, + ":\";Ċ": 29769, + "ĠCollins": 29770, + "(*)": 29771, + "Ġcompilation": 29772, + "']čĊ": 29773, + "Ġconsequence": 29774, + ",...": 29775, + "Ġdm": 29776, + "ĠBLOCK": 29777, + "Cluster": 29778, + "Ġski": 29779, + "(argc": 29780, + "Tuple": 29781, + "Ġjoins": 29782, + "ĠSheriff": 29783, + "War": 29784, + "indi": 29785, + "Ġcommented": 29786, + "HOST": 29787, + "Ġinvitation": 29788, + "apanese": 29789, + "Ġpermits": 29790, + "precedented": 29791, + "_zone": 29792, + "ĠAmy": 29793, + "_RD": 29794, + "Minimum": 29795, + "Ġinvocation": 29796, + ".enable": 29797, + "ichten": 29798, + "-owned": 29799, + "\"id": 29800, + "_POINTER": 29801, + "Fac": 29802, + "Ġspecifications": 29803, + "Ġnomination": 29804, + "Ġgp": 29805, + "<(": 29806, + "Ġrobots": 29807, + "ĠJerry": 29808, + "Ġholders": 29809, + "Ġwand": 29810, + "cms": 29811, + "Ġ}))Ċ": 29812, + ".Toast": 29813, + "ĠIList": 29814, + "Based": 29815, + "zoom": 29816, + "/style": 29817, + "ĠBeck": 29818, + "Men": 29819, + "Ġcontributing": 29820, + "Ġundo": 29821, + "ĠOH": 29822, + "ĠaddObject": 29823, + "Ġeigen": 29824, + "signup": 29825, + "éĶĻ": 29826, + "Ġdistant": 29827, + "PARATOR": 29828, + "ĠMari": 29829, + "Ġmá": 29830, + "Emp": 29831, + "ós": 29832, + "ĠìĪĺ": 29833, + "evt": 29834, + "+j": 29835, + "park": 29836, + "ĠStay": 29837, + "ĠDun": 29838, + "Ġsoy": 29839, + ">%": 29840, + "azines": 29841, + "Ġtiempo": 29842, + "(me": 29843, + "present": 29844, + ".This": 29845, + "Ġeditors": 29846, + "FIELD": 29847, + ".Work": 29848, + "ĠUniverse": 29849, + "Ġdrunk": 29850, + ".timer": 29851, + "Ġaltered": 29852, + "ĠNar": 29853, + "ëł¥": 29854, + ".Active": 29855, + "idor": 29856, + "çŃ": 29857, + ".deltaTime": 29858, + "Ġawkward": 29859, + """: 29860, + "ĠSafari": 29861, + "Ġtricks": 29862, + "MENTS": 29863, + "division": 29864, + "Ġvarying": 29865, + "ĠHighway": 29866, + "Ġphotographer": 29867, + "ĠStewart": 29868, + "Ġlasting": 29869, + ".Pre": 29870, + ".amazonaws": 29871, + "ĠLuck": 29872, + ".Description": 29873, + "ĠNaz": 29874, + "neg": 29875, + "Ġcó": 29876, + "<<\"\\": 29877, + "ĠSurv": 29878, + "ĠUnc": 29879, + "Recipe": 29880, + ".BorderStyle": 29881, + "Ġmodifications": 29882, + "-at": 29883, + "ATFORM": 29884, + "hdr": 29885, + "ako": 29886, + "Ġsublicense": 29887, + "ĠJump": 29888, + "Ġbeim": 29889, + "ĠManhattan": 29890, + ".bool": 29891, + "_hw": 29892, + "ÑĤÑĮ": 29893, + "Bin": 29894, + "Ġgateway": 29895, + "\"\":": 29896, + "ĠUIS": 29897, + ":\"+": 29898, + "-def": 29899, + "ĠRegular": 29900, + "/testing": 29901, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 29902, + "stringstream": 29903, + "Ġdispar": 29904, + "Ġmobil": 29905, + "-read": 29906, + "ĠAdapter": 29907, + "ĠChampions": 29908, + "Ġscheduler": 29909, + "Ġkills": 29910, + "ĠMultiple": 29911, + "irror": 29912, + "Ġgods": 29913, + "ADO": 29914, + "akte": 29915, + "ĠUsuario": 29916, + ".circular": 29917, + "Ġrecept": 29918, + "ĠExpr": 29919, + "Ġelderly": 29920, + "Ġnicely": 29921, + "Ġbeste": 29922, + "Want": 29923, + "Ġclassical": 29924, + ".sprite": 29925, + "objc": 29926, + "ĠMason": 29927, + "Ġsistema": 29928, + ".Black": 29929, + "eso": 29930, + "ĠZeit": 29931, + "Ġdivid": 29932, + "Ġenters": 29933, + "_subject": 29934, + "ĠPlanet": 29935, + ".warning": 29936, + "ĠGram": 29937, + "_tokens": 29938, + "Ġhouseholds": 29939, + "_customer": 29940, + "userName": 29941, + "cross": 29942, + "Ġpione": 29943, + "Ġassists": 29944, + "_SM": 29945, + "ibo": 29946, + "Ġloyal": 29947, + "Ġuseless": 29948, + "#elif": 29949, + "ĠUltimate": 29950, + "Come": 29951, + "gel": 29952, + "Ġdich": 29953, + "xyz": 29954, + "ikel": 29955, + "obra": 29956, + "_scan": 29957, + "ĠInterior": 29958, + "ĠNice": 29959, + "Ġplac": 29960, + "ĉtarget": 29961, + "Ġviral": 29962, + "asso": 29963, + "()/": 29964, + "unde": 29965, + "ĠAdobe": 29966, + "Os": 29967, + "visited": 29968, + "ĠOW": 29969, + "ĠFeed": 29970, + "ĠSequence": 29971, + "Ġmanages": 29972, + "inson": 29973, + "ĠLouisiana": 29974, + "{})": 29975, + "ĠHab": 29976, + "ĠLD": 29977, + "Ġbip": 29978, + "prites": 29979, + "(elem": 29980, + ".hibernate": 29981, + "élé": 29982, + "Ġohne": 29983, + "_transaction": 29984, + "Ġannunci": 29985, + "Published": 29986, + "ĠHonda": 29987, + "ĠTam": 29988, + "ĠPacket": 29989, + "_selector": 29990, + "Ġchallenged": 29991, + "Processing": 29992, + "-hover": 29993, + "Ġtrainer": 29994, + "_cancel": 29995, + "ĠNSDictionary": 29996, + "abric": 29997, + "ĠMLS": 29998, + "_sensor": 29999, + "Ġshrink": 30000, + "ĠFX": 30001, + "threshold": 30002, + "ĉHX": 30003, + "-mark": 30004, + "`.`": 30005, + "Scheme": 30006, + "(full": 30007, + "_writer": 30008, + "ĠSys": 30009, + "Ġfled": 30010, + "ĠCin": 30011, + "-widget": 30012, + "ĠPrevious": 30013, + "Gender": 30014, + "_question": 30015, + "Feed": 30016, + "Ġscrut": 30017, + "(prefix": 30018, + "ãĢĤãĢĤ": 30019, + "Ġinfections": 30020, + "Parts": 30021, + "Ġhierarchy": 30022, + "_DELETE": 30023, + "ĠPatient": 30024, + "_pay": 30025, + "Ġpromoted": 30026, + "Ġìĭ": 30027, + "Ġcivilian": 30028, + "Ġagriculture": 30029, + "ĠPiece": 30030, + "Ġstance": 30031, + "utsche": 30032, + "Assign": 30033, + ".ACTION": 30034, + "Fig": 30035, + "_radius": 30036, + "ĠSync": 30037, + "ducer": 30038, + "failure": 30039, + "ensed": 30040, + "ptime": 30041, + "BM": 30042, + "_datetime": 30043, + "quivo": 30044, + "QUEUE": 30045, + "èĢħ": 30046, + "Appear": 30047, + "Ġsummit": 30048, + ":void": 30049, + "Ġvine": 30050, + "认": 30051, + "onne": 30052, + "_TRANS": 30053, + ".green": 30054, + "_cc": 30055, + "Ġhungry": 30056, + "Ġ\">": 30057, + "());čĊčĊ": 30058, + "Extract": 30059, + "izens": 30060, + "Ġsolver": 30061, + "Notify": 30062, + "Ġenglish": 30063, + "ĠShopping": 30064, + "interfaces": 30065, + "REQ": 30066, + "Ġilleg": 30067, + "ĠUIImageView": 30068, + "Ġdisconnect": 30069, + "ĠUntil": 30070, + "ĠConservative": 30071, + "@Column": 30072, + "Ġshifted": 30073, + "Ġ:čĊ": 30074, + "Ġfich": 30075, + "Ġdla": 30076, + "Ġshoe": 30077, + "\"),čĊ": 30078, + "ularity": 30079, + "_RESP": 30080, + "Weather": 30081, + "UIApplication": 30082, + ".iterator": 30083, + "Ġaging": 30084, + ".Parent": 30085, + "owie": 30086, + "(equal": 30087, + "ĠConv": 30088, + "/default": 30089, + "Ġmeasuring": 30090, + ".prev": 30091, + ".IsValid": 30092, + ".Fat": 30093, + "ĠsÄĥ": 30094, + "keywords": 30095, + "without": 30096, + "Ġsovere": 30097, + "Ġexchanges": 30098, + "Ġmelt": 30099, + "Ġislands": 30100, + "ĠIntegr": 30101, + "Ġjumping": 30102, + "Ġgle": 30103, + "Ġjournalism": 30104, + "Ġdated": 30105, + "Localized": 30106, + "ĠRefresh": 30107, + "Particle": 30108, + "Ġaa": 30109, + "ĠSTRICT": 30110, + "Ġbod": 30111, + ".Process": 30112, + "_AUTO": 30113, + "ĠPublished": 30114, + "every": 30115, + "Ġtechnological": 30116, + "lsx": 30117, + "Ġirrit": 30118, + "Additional": 30119, + "Ġdelimiter": 30120, + "_language": 30121, + "-area": 30122, + "boys": 30123, + "ĠTube": 30124, + "Ġwat": 30125, + "Ġmechanics": 30126, + "_owner": 30127, + "Spell": 30128, + "ĠStories": 30129, + ".AppendLine": 30130, + "TableView": 30131, + "hem": 30132, + "stick": 30133, + "ollower": 30134, + "IFF": 30135, + "ĠUV": 30136, + "ollision": 30137, + "SUB": 30138, + "Ġcomparable": 30139, + "Ġdonde": 30140, + "sales": 30141, + "llvm": 30142, + "Ġ}],Ċ": 30143, + "OTTOM": 30144, + "ĠPurpose": 30145, + "Lab": 30146, + "Ġinterviewed": 30147, + "ois": 30148, + "asil": 30149, + ".setId": 30150, + "ĠInstruction": 30151, + "-->": 30152, + "ĠModified": 30153, + "ationally": 30154, + "ĠMeeting": 30155, + "误": 30156, + "#region": 30157, + "Ġrouting": 30158, + ".focus": 30159, + "ĠYouth": 30160, + "<": 30448, + "Ġunto": 30449, + "ologically": 30450, + "ĠMul": 30451, + "VIDIA": 30452, + "Ġslim": 30453, + "ĠCommissioner": 30454, + "(on": 30455, + "Ġunderneath": 30456, + "/db": 30457, + "vote": 30458, + "(Message": 30459, + "ĠPope": 30460, + "Defined": 30461, + "Ġswift": 30462, + "urf": 30463, + "Ġadapted": 30464, + "SEL": 30465, + "Ġrevenues": 30466, + "Ġdivine": 30467, + "=y": 30468, + "Gradient": 30469, + "_act": 30470, + "Ġ/*!<": 30471, + "Ġpolygon": 30472, + "ĠFDA": 30473, + "ĠCarr": 30474, + "atables": 30475, + "(stdout": 30476, + "Ġrefriger": 30477, + "Ġcoordin": 30478, + "avorites": 30479, + "ÑĪи": 30480, + "Ġcompassion": 30481, + "ĠPOSSIBILITY": 30482, + "-secondary": 30483, + "uracy": 30484, + "Ġcompromise": 30485, + "_AV": 30486, + "_os": 30487, + "Ġbeside": 30488, + "ĥĿ": 30489, + "Ġln": 30490, + ".plugins": 30491, + "Capacity": 30492, + "alah": 30493, + ".bin": 30494, + "ĠCRC": 30495, + "_balance": 30496, + "ĠflexDirection": 30497, + "Ġambit": 30498, + "Ġnickname": 30499, + "ĠForces": 30500, + "CLE": 30501, + "ĠShell": 30502, + "Ġsail": 30503, + "ĠWriter": 30504, + "ĠAlice": 30505, + "dw": 30506, + "ĠIndians": 30507, + "ĠMarshall": 30508, + "_SRC": 30509, + "Ġnormalized": 30510, + "ĠJag": 30511, + "ãĤĴ": 30512, + "zeit": 30513, + "rpc": 30514, + "ÃŃc": 30515, + ".inline": 30516, + "Ġtravers": 30517, + "_numeric": 30518, + "Ġutilities": 30519, + "Ġevac": 30520, + "INPUT": 30521, + "ĉregister": 30522, + "MX": 30523, + "ĠCampbell": 30524, + "Ġdatasets": 30525, + "Ġdemanded": 30526, + "ĠinitialState": 30527, + "gan": 30528, + "Ġei": 30529, + "Unexpected": 30530, + "-web": 30531, + "trait": 30532, + ",Y": 30533, + "ĠTodd": 30534, + "Ġskeleton": 30535, + "Ġoptimize": 30536, + "第": 30537, + "ĠUpon": 30538, + "ĠStObject": 30539, + "Ġaplic": 30540, + ".'P": 30578, + "vron": 30579, + ".UN": 30580, + "Ġpainter": 30581, + "izarre": 30582, + "Ġlav": 30583, + "Ġpom": 30584, + "preg": 30585, + "=function": 30586, + "(serial": 30587, + "ifica": 30588, + "uming": 30589, + "åľ°": 30590, + "ãģĤ": 30591, + "-op": 30592, + "UCH": 30593, + "ĠHend": 30594, + ".propTypes": 30595, + "Ġyo": 30596, + "Ġroutines": 30597, + "Ġcaring": 30598, + "Sem": 30599, + "Ġreserves": 30600, + "Ġpriorities": 30601, + "redits": 30602, + "ISTR": 30603, + "ContentType": 30604, + "ĠSchw": 30605, + "/media": 30606, + "Ġestr": 30607, + "Ġclimbing": 30608, + "-week": 30609, + "cherche": 30610, + "sensor": 30611, + "ToArray": 30612, + "ĠMontreal": 30613, + "Ġclouds": 30614, + "ĠInjectable": 30615, + "ĠRice": 30616, + "Ġpropaganda": 30617, + "_provider": 30618, + "Ġindoor": 30619, + "Ġinaug": 30620, + "Ġdiplom": 30621, + "Ġmessaging": 30622, + "_mut": 30623, + "å¦Ĥ": 30624, + "Ġkw": 30625, + "ONS": 30626, + "arians": 30627, + "RPC": 30628, + ")]čĊ": 30629, + "-ray": 30630, + "ĠSor": 30631, + "mall": 30632, + "Ġmarketplace": 30633, + "Ġvtk": 30634, + "Ma": 30635, + "ogan": 30636, + "igi": 30637, + "Ġsponsored": 30638, + "ĠDani": 30639, + ".SEVER": 30640, + ">'.$": 30641, + "multipart": 30642, + "ĠWol": 30643, + "ĠtableName": 30644, + "ĠUsername": 30645, + "BackgroundColor": 30646, + "Ġfright": 30647, + "_EMAIL": 30648, + "September": 30649, + "_vals": 30650, + "opia": 30651, + "Ġspotted": 30652, + "-Ch": 30653, + "ĠdataSource": 30654, + "/\"Ċ": 30655, + "екÑĤ": 30656, + "ĠRequestMethod": 30657, + "ĠReplace": 30658, + "-do": 30659, + "ahn": 30660, + "ĠPhD": 30661, + "].ĊĊ": 30662, + "NON": 30663, + "gement": 30664, + "ĠThr": 30665, + "Ġquietly": 30666, + "Ġtorture": 30667, + "Ġteas": 30668, + "ĠCY": 30669, + "Ġatr": 30670, + "development": 30671, + "-detail": 30672, + "Ġlighter": 30673, + "Ġarguing": 30674, + "Ġdeserves": 30675, + "Ġcurriculum": 30676, + "_CONTEXT": 30677, + "ÅĤy": 30678, + "HITE": 30679, + "ĉID": 30680, + "/uploads": 30681, + "Ġtits": 30682, + "reo": 30683, + "_drop": 30684, + ".UTF": 30685, + "Ġpickup": 30686, + "Ġgrocery": 30687, + "ĠPure": 30688, + "Ġeasiest": 30689, + "Phil": 30690, + ".feature": 30691, + "(\"*": 30692, + "Ġinvestor": 30693, + "tok": 30694, + "Ġjar": 30695, + "Los": 30696, + "âĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶ": 30697, + ".queue": 30698, + "-speed": 30699, + "Mal": 30700, + "umblr": 30701, + "ĠCONST": 30702, + "ĠHRESULT": 30703, + "ĠDance": 30704, + "(filePath": 30705, + "Ġattributed": 30706, + "à¥į": 30707, + "ĠBund": 30708, + "coins": 30709, + "Ġsão": 30710, + "Ġpir": 30711, + "personal": 30712, + "Ġprelim": 30713, + "Ġpropose": 30714, + "ĠTL": 30715, + "]])": 30716, + "ĠSubscription": 30717, + "ĠKre": 30718, + ",len": 30719, + ".FirstOrDefault": 30720, + ")--": 30721, + "_products": 30722, + ".GetBytes": 30723, + "Ship": 30724, + "Ġencrypt": 30725, + "ĠSG": 30726, + "ĠMyst": 30727, + "hir": 30728, + "Ġiterate": 30729, + "Ġintend": 30730, + ".mockito": 30731, + "Ġchapters": 30732, + "(angle": 30733, + "ĠVlad": 30734, + "设": 30735, + "'.ĊĊ": 30736, + "ResponseBody": 30737, + "ĠAbd": 30738, + "deal": 30739, + "Ġbarriers": 30740, + "-outline": 30741, + "bill": 30742, + "ĠFalls": 30743, + "_second": 30744, + ".include": 30745, + ".ceil": 30746, + "Ġoccupation": 30747, + "phony": 30748, + ".moveTo": 30749, + "ĠJennifer": 30750, + "ASTER": 30751, + ";\"><": 30752, + "ĠEnabled": 30753, + "Ġterminate": 30754, + "ĠIo": 30755, + "lations": 30756, + "ĠTHEORY": 30757, + "Ġearliest": 30758, + "Ġrack": 30759, + "ĠScar": 30760, + "shake": 30761, + "chip": 30762, + "Ġuv": 30763, + "Ġalliance": 30764, + "пиÑģ": 30765, + "ĠGOODS": 30766, + "zione": 30767, + "ĠVI": 30768, + "Ġ{-": 30769, + "Ġfiltering": 30770, + "Ġmiscon": 30771, + ".DockStyle": 30772, + "Ġbush": 30773, + "Ġjunk": 30774, + "æĮ": 30775, + "ĠQUE": 30776, + "Ġhooks": 30777, + "Ġfirmware": 30778, + "Ġmiddleware": 30779, + "dic": 30780, + "ĠOakland": 30781, + "Ġarrives": 30782, + "Payload": 30783, + "pixel": 30784, + "]|": 30785, + "ĠstartDate": 30786, + ".PRO": 30787, + "_audio": 30788, + "Ġmidfield": 30789, + "igidbody": 30790, + "ĠSwiss": 30791, + "ĠClip": 30792, + "ĠDump": 30793, + "ĠTextBox": 30794, + "Ġgeh": 30795, + "yield": 30796, + "ods": 30797, + "Ġreferendum": 30798, + "Backend": 30799, + "ĠCream": 30800, + "Ġdominated": 30801, + "ĠArchive": 30802, + "Ġriders": 30803, + ".prepareStatement": 30804, + "Ġquando": 30805, + "Ġchef": 30806, + "wiki": 30807, + "inel": 30808, + "ampling": 30809, + "(\"\\\\": 30810, + "Ġsag": 30811, + "_proxy": 30812, + "ãģķ": 30813, + "pdo": 30814, + ".getElementsByTagName": 30815, + "Ġdemonstration": 30816, + "ĠNPC": 30817, + "Ġarchivo": 30818, + "endance": 30819, + "Ġefficiently": 30820, + "(actual": 30821, + ".tableView": 30822, + "Ġmush": 30823, + "Ġbears": 30824, + "_threads": 30825, + "jas": 30826, + "ahun": 30827, + "Ġneural": 30828, + "Ġdesigning": 30829, + "ĠGDP": 30830, + "Ġlifted": 30831, + "缮": 30832, + "ĠJoint": 30833, + "ĠInclude": 30834, + "ĠGiants": 30835, + "Ġwithdrawal": 30836, + "ĠRent": 30837, + "native": 30838, + "ĠSeek": 30839, + "gression": 30840, + "_CPU": 30841, + "\\S": 30842, + "ĠShield": 30843, + "Ġsolic": 30844, + "Ġboom": 30845, + "yecto": 30846, + "Ġmanufacture": 30847, + "ĠâĢĭ": 30848, + "Ġbbox": 30849, + "Ġearthqu": 30850, + "ollectors": 30851, + ":@\"%": 30852, + "Ġloops": 30853, + "Je": 30854, + "alking": 30855, + "ĠWhats": 30856, + "ĠBoys": 30857, + ".book": 30858, + "ARGE": 30859, + "_pixel": 30860, + "Ġsuspects": 30861, + "ι": 30862, + "usp": 30863, + "ĠBMW": 30864, + "ieces": 30865, + "(person": 30866, + "å¼Ģ": 30867, + "é»": 30868, + "ĠPodcast": 30869, + "Ġbou": 30870, + "(Item": 30871, + "û": 30872, + "(Input": 30873, + "HttpGet": 30874, + "Ġburg": 30875, + ")^": 30876, + "BOARD": 30877, + "*/,": 30878, + "Ġgulp": 30879, + "ĠBenn": 30880, + "Ġdecks": 30881, + ".statusCode": 30882, + "Ġacute": 30883, + "Ġhug": 30884, + "ugu": 30885, + "Ġpled": 30886, + ",\"%": 30887, + "hape": 30888, + "Ġзап": 30889, + "ĠMaine": 30890, + ".real": 30891, + "Ġdalam": 30892, + "ĠMinor": 30893, + ".Float": 30894, + "disp": 30895, + "Ġtl": 30896, + "Ġencount": 30897, + "=>$": 30898, + "Ġfg": 30899, + "tees": 30900, + "ĠRecomm": 30901, + "äl": 30902, + "Ġchemistry": 30903, + "Blocks": 30904, + "OID": 30905, + "Ġforex": 30906, + "ĠAppend": 30907, + "Ġ{*": 30908, + "ĠSupply": 30909, + "CGFloat": 30910, + "(bl": 30911, + "Ġate": 30912, + "adora": 30913, + "Ġgust": 30914, + "Associ": 30915, + ">.Ċ": 30916, + "FETCH": 30917, + ".serial": 30918, + "widgets": 30919, + "ardless": 30920, + "iefs": 30921, + "_FULL": 30922, + "ernetes": 30923, + "ĠPred": 30924, + "ØŃ": 30925, + "äºĭ": 30926, + "ubernetes": 30927, + "ĠLaura": 30928, + "Ġlabeled": 30929, + "Highlight": 30930, + "Ġannoying": 30931, + "/update": 30932, + "(description": 30933, + "Ġintimid": 30934, + "$c": 30935, + "\")))Ċ": 30936, + ".AP": 30937, + "Ġ[]*": 30938, + "ĠEXIT": 30939, + ".Host": 30940, + "ĠOPEN": 30941, + ".sendMessage": 30942, + "_camera": 30943, + "_tile": 30944, + "Ġtherm": 30945, + "onomous": 30946, + "Ġdisadv": 30947, + "Ġnaar": 30948, + "indexOf": 30949, + "ĠPP": 30950, + ".protocol": 30951, + "AFE": 30952, + "Ġtextures": 30953, + "################################################": 30954, + "umbai": 30955, + ".stats": 30956, + "ĠGE": 30957, + "Ġie": 30958, + "ĠSTD": 30959, + "ĠMann": 30960, + ".reflect": 30961, + "KB": 30962, + "Ġdive": 30963, + ".wav": 30964, + "/*----------------------------------------------------------------": 30965, + "/settings": 30966, + ".lifecycle": 30967, + "Ġdaughters": 30968, + "orus": 30969, + "uber": 30970, + "NING": 30971, + "stri": 30972, + "ĠTip": 30973, + "Ġzn": 30974, + "Ġswitched": 30975, + "inet": 30976, + "uffy": 30977, + "ĠTransportation": 30978, + "(conf": 30979, + "frica": 30980, + "ĠXL": 30981, + "ĠLead": 30982, + "_percent": 30983, + "__": 30999, + "permissions": 31000, + "ĠDetermine": 31001, + ".Man": 31002, + "Ġadvances": 31003, + ".InputStream": 31004, + "Ġstrongest": 31005, + "ĠeBay": 31006, + "Ġ#-": 31007, + "Ġdirname": 31008, + "ĠSMS": 31009, + "Ġmedications": 31010, + "Ġamended": 31011, + "Ġchurches": 31012, + "ĠImperial": 31013, + "$row": 31014, + "ĠMadison": 31015, + "ĠInsp": 31016, + "Ġaffair": 31017, + "Ġpsychology": 31018, + "vh": 31019, + "Ġseverity": 31020, + "âĢIJ": 31021, + "Ġstrips": 31022, + "AH": 31023, + "vertising": 31024, + "Ġconse": 31025, + "IMAGE": 31026, + "ĠStats": 31027, + "ĉsc": 31028, + ".Cursor": 31029, + "Ġfreeze": 31030, + "sson": 31031, + "(xml": 31032, + "ĠSusan": 31033, + ".tile": 31034, + "eded": 31035, + "ĠĠĠĠĉĉĉ": 31036, + "uelle": 31037, + "ĠMitchell": 31038, + "based": 31039, + "Operand": 31040, + "½æķ°": 31041, + "ĠFF": 31042, + "ĉstrcpy": 31043, + "ounces": 31044, + "ildo": 31045, + ".executeQuery": 31046, + "Ġapproaching": 31047, + "ĠSeven": 31048, + "Ġnuts": 31049, + "Ġric": 31050, + "assignment": 31051, + "Ġcalculator": 31052, + "ĠMurphy": 31053, + "ĠBou": 31054, + "íĦ": 31055, + "Ġbutt": 31056, + "Ġticks": 31057, + "Projects": 31058, + "ilib": 31059, + ".textColor": 31060, + "mov": 31061, + "_logo": 31062, + "(template": 31063, + "ĠINIT": 31064, + "ĠimageView": 31065, + "scriptions": 31066, + "ORITY": 31067, + "Consumer": 31068, + "Ġunprecedented": 31069, + "Ġtourist": 31070, + "Ġbron": 31071, + "Ġcontractor": 31072, + "Ġlicence": 31073, + "ĠNam": 31074, + "æ¯": 31075, + "(transform": 31076, + "_ATT": 31077, + "Pref": 31078, + "ĠGam": 31079, + "Ġvessels": 31080, + "Ġhav": 31081, + "Later": 31082, + ".ToLower": 31083, + "Ġurls": 31084, + "Ġbreakdown": 31085, + "Ġpenalties": 31086, + "Ġfoster": 31087, + "ĠUE": 31088, + "Ġclue": 31089, + "comed": 31090, + "åIJį称": 31091, + "-main": 31092, + "Ġpts": 31093, + "Ġcounted": 31094, + "icts": 31095, + "/post": 31096, + "Ġgetattr": 31097, + "Ġping": 31098, + "ANCEL": 31099, + "Ġpec": 31100, + "Ñħод": 31101, + "antom": 31102, + "ĠBlueprint": 31103, + "ĠEventEmitter": 31104, + "Ġlä": 31105, + "æ²": 31106, + "Ġstraw": 31107, + "(comp": 31108, + "'une": 31109, + ">N": 31110, + "-client": 31111, + "esModule": 31112, + "-base": 31113, + "Ġretreat": 31114, + "_simple": 31115, + "ĉĉĉĉĉĉĠ": 31116, + "fee": 31117, + "')čĊčĊ": 31118, + "ControlItem": 31119, + "Ġsubscribers": 31120, + "please": 31121, + "ĠEff": 31122, + "Ġpound": 31123, + "ĠBytes": 31124, + "ĠTea": 31125, + "_activity": 31126, + "Ġmaxim": 31127, + "Ġopcode": 31128, + "BSD": 31129, + ".constant": 31130, + ";}": 31131, + "ombres": 31132, + "Ġcareers": 31133, + ").ĊĊĊĊ": 31134, + "Ġspreading": 31135, + "-expanded": 31136, + "ĠOrd": 31137, + "amarin": 31138, + "Ġmobility": 31139, + "Unfortunately": 31140, + "akk": 31141, + "NL": 31142, + "_redirect": 31143, + "ĠPG": 31144, + "ĠSensor": 31145, + "bol": 31146, + "tap": 31147, + "_MEMORY": 31148, + "ĠUIAlert": 31149, + "plitude": 31150, + "Website": 31151, + "ĠLogo": 31152, + "love": 31153, + "[ind": 31154, + "Ġaltogether": 31155, + "Ġwondered": 31156, + "Ġesper": 31157, + "ĠLiberal": 31158, + "Ġoss": 31159, + "Ġelit": 31160, + "Ġstiff": 31161, + "odox": 31162, + "_mentions": 31163, + "ĠDouglas": 31164, + "_pid": 31165, + "ĠCK": 31166, + "ĠinitWithFrame": 31167, + ".blog": 31168, + "pkg": 31169, + "anghai": 31170, + "QUIRED": 31171, + "uu": 31172, + "Ġmkdir": 31173, + "ATAL": 31174, + "Ġunh": 31175, + "inces": 31176, + "sth": 31177, + "Ġhypothesis": 31178, + "Ġcata": 31179, + "ĠTB": 31180, + "ĠClar": 31181, + "Ġpredecess": 31182, + "Ġsituated": 31183, + "-world": 31184, + "))/": 31185, + "Ġheadlines": 31186, + ".stat": 31187, + "Ġoutbreak": 31188, + "spath": 31189, + "_FLAGS": 31190, + "ĠServletException": 31191, + "Sun": 31192, + "FROM": 31193, + "ĠDir": 31194, + "ãĥ»ãĥ»ãĥ»": 31195, + "_coord": 31196, + "ĠOptim": 31197, + "Monitor": 31198, + ".bit": 31199, + "XXX": 31200, + "Ġtodas": 31201, + "feld": 31202, + "ÑĢи": 31203, + "imir": 31204, + "Ġpolitically": 31205, + "Ġmolecular": 31206, + "Ġtraded": 31207, + "Ġ{{$": 31208, + "ĠSwedish": 31209, + "Ġ'@/": 31210, + "_REAL": 31211, + "Ġwarehouse": 31212, + "today": 31213, + ",L": 31214, + "orp": 31215, + "false": 31492, + "Ġspa": 31493, + "ĠNear": 31494, + "ìķ": 31495, + "Ġintrig": 31496, + "_members": 31497, + "wave": 31498, + "Ġanalysts": 31499, + "_OS": 31500, + "edin": 31501, + "ĠFri": 31502, + "Ġretrieved": 31503, + "Regular": 31504, + "_obs": 31505, + "EXPORT": 31506, + "')}}\"": 31507, + "\"class": 31508, + "__((": 31509, + "bucket": 31510, + "Ġstro": 31511, + "ĠPatch": 31512, + "ystick": 31513, + "fulness": 31514, + "apos": 31515, + "Da": 31516, + "ĉĉĉĉĉĠĠĠ": 31517, + "Ġenrich": 31518, + "unordered": 31519, + "hole": 31520, + "Cong": 31521, + "';ĊĊ": 31563, + "STRUCT": 31564, + "QR": 31565, + "IDs": 31566, + "(arguments": 31567, + "_aux": 31568, + "(Event": 31569, + "_PRIVATE": 31570, + "ĠTrek": 31571, + "Ġdownloads": 31572, + "mutable": 31573, + "_STRUCT": 31574, + "(wx": 31575, + "Ġdomains": 31576, + "jspx": 31577, + "ĠViagra": 31578, + "Commands": 31579, + "Js": 31580, + ".cfg": 31581, + "ContentPane": 31582, + "ĠEditText": 31583, + "à¥įà¤": 31584, + "Attach": 31585, + "ĠARM": 31586, + "positive": 31587, + "ĠGenerated": 31588, + "Ġseized": 31589, + "=:": 31590, + "Ġelectronics": 31591, + "ĠAppComponent": 31592, + "/',Ċ": 31593, + ".equalsIgnoreCase": 31594, + "Doctrine": 31595, + "disk": 31596, + "ĠPolitical": 31597, + "CHO": 31598, + "": 31684, + "ĠBeauty": 31685, + "Ġ`<": 31686, + "Ġtouching": 31687, + "Ġ|--": 31688, + "ĉflag": 31689, + "normalize": 31690, + "Ġtrapped": 31691, + "Ġestablishing": 31692, + "/build": 31693, + "AJ": 31694, + "fy": 31695, + "-react": 31696, + "avn": 31697, + "RIPTION": 31698, + "Ġkut": 31699, + "ĠFashion": 31700, + "ĠInform": 31701, + "curities": 31702, + "{Ċ": 31734, + "Ġgarlic": 31735, + "Ġrepr": 31736, + "Ġreplies": 31737, + "(prop": 31738, + "Ġspirits": 31739, + "Ġinspire": 31740, + "Ġbasement": 31741, + ".reject": 31742, + "Ġhints": 31743, + "Ġpolling": 31744, + "ĉĠĊ": 31745, + "_rating": 31746, + "Ġcath": 31747, + "avier": 31748, + "Ġcompressed": 31749, + "ĠVS": 31750, + "]'": 31751, + "Ġjudicial": 31752, + "ĠTrend": 31753, + "training": 31754, + "ESTAMP": 31755, + "ognition": 31756, + "Äģ": 31757, + "SENT": 31758, + "ventions": 31759, + "Ġconsultant": 31760, + "umph": 31761, + "ĠuserService": 31762, + ",NULL": 31763, + "kh": 31764, + "Dear": 31765, + "_BAD": 31766, + "itations": 31767, + "Ġmetaph": 31768, + "'é": 31769, + "andise": 31770, + "-font": 31771, + ".chart": 31772, + "Ġsg": 31773, + "_Controller": 31774, + ".jpeg": 31775, + "ĠULONG": 31776, + "ĉgame": 31777, + "(ss": 31778, + "ĠMaj": 31779, + "ĉgo": 31780, + "ĠSad": 31781, + "ĠBerg": 31782, + "ĠMine": 31783, + "Pack": 31784, + "Ġresistant": 31785, + "ĠROM": 31786, + "Ġpeg": 31787, + "ĠStanford": 31788, + "ĠYahoo": 31789, + "Ġscaled": 31790, + "Ġlan": 31791, + "=[]": 31792, + "\"/>ččĊ": 31836, + "Ġsud": 31837, + "ĉbackground": 31838, + "Ġscholars": 31839, + "-muted": 31840, + "ará": 31841, + "Ġ=====": 31842, + "Ġ____": 31843, + "Creat": 31844, + "enever": 31845, + "/wp": 31846, + "ĠVPN": 31847, + "ErrorCode": 31848, + ")],Ċ": 31849, + "(builder": 31850, + "ĠEnemy": 31851, + "Sensor": 31852, + "usa": 31853, + "Ġtriggers": 31854, + "Ġplayoffs": 31855, + "_REQ": 31856, + "Ġ(~": 31857, + "ĠBarry": 31858, + "Ġpermanently": 31859, + "ĠRUN": 31860, + "Ġbure": 31861, + ".Fatalf": 31862, + "Ġchick": 31863, + "ĉpanic": 31864, + "psi": 31865, + "oka": 31866, + "éĢī": 31867, + ">[": 31868, + "Ġunderstands": 31869, + "ĠJunior": 31870, + "ĠINFO": 31871, + "=mysqli": 31872, + "ustain": 31873, + "-source": 31874, + "serv": 31875, + "ĠCREATE": 31876, + ".au": 31877, + "Ġsells": 31878, + "ĠĠĊĠĠĊ": 31879, + "Europe": 31880, + "zw": 31881, + "preh": 31882, + "ĠNSA": 31883, + "Ġxy": 31884, + "ิ": 31885, + "ĠBeyond": 31886, + "Instead": 31887, + "NonQuery": 31888, + "Ġarise": 31889, + "Ġavoided": 31890, + ".emplace": 31891, + "_models": 31892, + "}),Ċ": 31893, + "Ġhid": 31894, + "Ġ&_": 31895, + ".points": 31896, + ".getWidth": 31897, + ".Exec": 31898, + "Ġ////": 31899, + "ĠSessions": 31900, + "...\\": 31901, + "ĠColomb": 31902, + "Ġacceleration": 31903, + "restore": 31904, + "Ġile": 31905, + "obic": 31906, + "}Ċ": 32396, + "plaint": 32397, + "getText": 32398, + "Ġindividually": 32399, + "Ġcheckbox": 32400, + "UY": 32401, + "ĠLamb": 32402, + "Ġdysfunction": 32403, + "ĠLar": 32404, + "à°": 32405, + "ĠCreating": 32406, + "');ĊĊĊ": 32407, + "\"They": 32408, + "locations": 32409, + "_CORE": 32410, + "Interaction": 32411, + "umbnails": 32412, + "ĠPartner": 32413, + "brit": 32414, + "Ġlesser": 32415, + "ĠSlot": 32416, + "setAttribute": 32417, + "ĠWave": 32418, + ".po": 32419, + "/store": 32420, + "Ġbrowsing": 32421, + "_pd": 32422, + "sume": 32423, + "sed": 32424, + "Curve": 32425, + "Ġplasma": 32426, + "Ġsuspicious": 32427, + "ìĿ¸": 32428, + "ĠBah": 32429, + "ĠExplicit": 32430, + "_CC": 32431, + ".ClientSize": 32432, + "\\View": 32433, + "Ġsubstit": 32434, + "loon": 32435, + "ĠGAME": 32436, + "ĠBrid": 32437, + "Ľå»º": 32438, + "_User": 32439, + "Ġsquares": 32440, + "fone": 32441, + "Ġsacred": 32442, + "ughs": 32443, + "]interface": 32444, + "ĠThrow": 32445, + "ĠKirk": 32446, + "Ġempire": 32447, + "Ġassessed": 32448, + "Tax": 32449, + "ĠHeaven": 32450, + "-buffer": 32451, + "_STATIC": 32452, + "éné": 32453, + "-bordered": 32454, + "Ġpunct": 32455, + "(mode": 32456, + "Ġkeine": 32457, + "Sent": 32458, + "ĠCalcul": 32459, + "ĠEve": 32460, + "Ġstylish": 32461, + "Ġoils": 32462, + ".TestCase": 32463, + "Ġtrademark": 32464, + "Ġliterary": 32465, + "Ġconcentrations": 32466, + "ĠRelations": 32467, + "(Class": 32468, + "Ġstdin": 32469, + "Ġvæ": 32470, + "backup": 32471, + ".VERSION": 32472, + ".AutoScaleDimensions": 32473, + "starter": 32474, + "Transactional": 32475, + "-panel": 32476, + "Studio": 32477, + "kc": 32478, + "ĠChamber": 32479, + "ĠSpiel": 32480, + "Ġrho": 32481, + "اÙĦ": 32482, + "!'": 32483, + ".Attributes": 32484, + "Ġmurdered": 32485, + "apeutic": 32486, + "Ġintimate": 32487, + "ĠtextField": 32488, + "ĠBuffalo": 32489, + "dummy": 32490, + "\"%": 32491, + "ĠLiberty": 32492, + "obar": 32493, + "ĠTank": 32494, + "ĠPopular": 32495, + "ervisor": 32496, + "ĠIniti": 32497, + "ĠMall": 32498, + "ĠPrior": 32499, + "CAP": 32500, + "ĠClay": 32501, + "ĠCertificate": 32502, + ".Lock": 32503, + "-strip": 32504, + "-driven": 32505, + "/all": 32506, + "ĠMessageBoxButtons": 32507, + "_SECRET": 32508, + "_pb": 32509, + "Ġrats": 32510, + "ाà¤": 32511, + "Ġnt": 32512, + ".Router": 32513, + "_topic": 32514, + "Ġtennis": 32515, + "ĠPUBLIC": 32516, + "ĠActivatedRoute": 32517, + "Ġ',Ċ": 32518, + "Ġcostume": 32519, + "Ġjokes": 32520, + ".Handle": 32521, + "ĉbyte": 32522, + "Ġflavors": 32523, + "(cc": 32524, + "Ġpersonas": 32525, + "ĉimage": 32526, + "ĠNazi": 32527, + "Ġgrammar": 32528, + "Ġúlt": 32529, + "Ġvalve": 32530, + "Ġvic": 32531, + "ĠRachel": 32532, + "_invalid": 32533, + "Prefs": 32534, + "stdint": 32535, + "(route": 32536, + "Ġhtmlspecialchars": 32537, + "Ġpeoples": 32538, + "pline": 32539, + "Ġnv": 32540, + "ĠQuant": 32541, + "oppers": 32542, + "ĠcurrentUser": 32543, + "ĠCatal": 32544, + "Ġreconc": 32545, + "Ġconjunction": 32546, + "lx": 32547, + "amburg": 32548, + "Ġinfluential": 32549, + "danger": 32550, + "inders": 32551, + "Ġ%@\",": 32552, + ".configuration": 32553, + "osome": 32554, + ".identity": 32555, + "Ġpicker": 32556, + "nost": 32557, + "ĠDIY": 32558, + "August": 32559, + "ablo": 32560, + "Leaf": 32561, + "ĠReco": 32562, + "cko": 32563, + "DOC": 32564, + "ĠHerm": 32565, + ":any": 32566, + "ĠInterview": 32567, + "ĠTex": 32568, + "xfe": 32569, + "(work": 32570, + "Ġleap": 32571, + "Heading": 32572, + "Ġquarters": 32573, + "\\Bundle": 32574, + "reb": 32575, + "Perhaps": 32576, + "ĠGmbH": 32577, + "Birth": 32578, + "ĉsum": 32579, + "ĠWatson": 32580, + ".nil": 32581, + "ç¡": 32582, + "{}ĊĊ": 32583, + "icaid": 32584, + "Getter": 32585, + "\"name": 32586, + "Ġ\"čĊ": 32587, + "_none": 32588, + "zm": 32589, + "acute": 32590, + "uesto": 32591, + "Ġsous": 32592, + "Ġrebuild": 32593, + "Ġnewspapers": 32594, + "ĠHaz": 32595, + "Ġkits": 32596, + "ifo": 32597, + "Blur": 32598, + "Ġsuited": 32599, + "-In": 32600, + "à¯": 32601, + "ĠKeith": 32602, + "ĠNorway": 32603, + "INIT": 32604, + "ireccion": 32605, + "ieties": 32606, + "_usage": 32607, + "ĠDoug": 32608, + "rise": 32609, + "Ġtrillion": 32610, + "imited": 32611, + "ĠREL": 32612, + "alic": 32613, + "Ġcriticized": 32614, + "theorem": 32615, + "Ġcease": 32616, + "Ġsidew": 32617, + "ĠTerry": 32618, + "Ġsubsidi": 32619, + "Ġfirmly": 32620, + "Ġaws": 32621, + "Ġhott": 32622, + "Ġdressing": 32623, + "badge": 32624, + "ĠApplications": 32625, + "è¿ĶåĽŀ": 32626, + "Ġlaughed": 32627, + "Ġhobby": 32628, + "Ġmusicians": 32629, + "Ġ*.": 32630, + ".placeholder": 32631, + "Ġcounters": 32632, + "ĠCapitol": 32633, + "SDK": 32634, + "Ġhelmet": 32635, + "andbox": 32636, + "quit": 32637, + "Ġcriminals": 32638, + "Ġteenager": 32639, + "(update": 32640, + "Gl": 32641, + ".selection": 32642, + "Ġdischarge": 32643, + "Ġpresenting": 32644, + "ufacturer": 32645, + "_UNKNOWN": 32646, + "Ġstressed": 32647, + "åĻ¨": 32648, + "Proto": 32649, + "_correct": 32650, + "haus": 32651, + "Ġrenov": 32652, + "Ġfirearms": 32653, + "Ġtechnically": 32654, + "-browser": 32655, + "Ġcandy": 32656, + "Stroke": 32657, + "Ġexecutor": 32658, + "Ġoccurrence": 32659, + "ĠIPv": 32660, + "_INTERFACE": 32661, + "ĠRetrieve": 32662, + ".bad": 32663, + "Exchange": 32664, + "Navbar": 32665, + "ĠKid": 32666, + "(getApplicationContext": 32667, + "_STOP": 32668, + "ĠBoss": 32669, + "Listeners": 32670, + "Ġshooter": 32671, + "ĠAlb": 32672, + "äch": 32673, + "Ġpix": 32674, + ".keyCode": 32675, + "alone": 32676, + "Ġabsurd": 32677, + "ĠCum": 32678, + "ĠNewtonsoft": 32679, + "ikt": 32680, + "Ġlaughing": 32681, + "Ġcapitalism": 32682, + "reeNode": 32683, + "Tx": 32684, + "_QUERY": 32685, + ".Sleep": 32686, + "(login": 32687, + "WebElement": 32688, + "Ġcelebrating": 32689, + "Ġdeprecated": 32690, + "Ġmaar": 32691, + "Ġartistic": 32692, + "_ASSOC": 32693, + "ĠBorderRadius": 32694, + "ĉwp": 32695, + "Ġsurvivors": 32696, + "Inner": 32697, + "-red": 32698, + "Ġprosecution": 32699, + "_pp": 32700, + "(\"$": 32782, + "Ġcomma": 32783, + "unchecked": 32784, + "graphics": 32785, + "rors": 32786, + "GROUND": 32787, + "(public": 32788, + "Ġcustomized": 32789, + "ĠArkansas": 32790, + "ĠRew": 32791, + "Ġexpiration": 32792, + "×ķ": 32793, + "ĠCul": 32794, + "Ġnons": 32795, + ".Filter": 32796, + "Ġsenator": 32797, + "_definition": 32798, + "ashington": 32799, + "ymph": 32800, + "/J": 32801, + "Ġfuse": 32802, + "ramid": 32803, + "ĠSupplier": 32804, + "Ġautocomplete": 32805, + "Ġ}),": 32806, + ".\"ĊĊĊ": 32807, + "_functions": 32808, + "ĉto": 32809, + ".eval": 32810, + "ĠTObject": 32811, + "References": 32812, + "Ġheated": 32813, + "HAL": 32814, + "Ġ))}Ċ": 32815, + "}$": 32816, + "ĠBarr": 32817, + "_UNIT": 32818, + "+$": 32819, + "ĠgetValue": 32820, + "iped": 32821, + "chied": 32822, + "(vm": 32823, + "cue": 32824, + "_integer": 32825, + "_course": 32826, + "third": 32827, + "Ġrevised": 32828, + "**/Ċ": 32829, + "_DIRECT": 32830, + "OutOf": 32831, + "(\"(": 32832, + "ĠFeel": 32833, + "Ġreass": 32834, + "Ġsubtitle": 32835, + "peri": 32836, + "nf": 32837, + "Ġenjoys": 32838, + "Ġtreats": 32839, + ")this": 32840, + "-tabs": 32841, + "ancers": 32842, + "Ġcontinent": 32843, + "Ġcardio": 32844, + "Ser": 32845, + ".question": 32846, + "Ġphrases": 32847, + "Validators": 32848, + "Ġpopul": 32849, + "ĠlÃŃ": 32850, + "song": 32851, + "_INTERNAL": 32852, + "Ġadviser": 32853, + "Ġpuzz": 32854, + "Ġambitious": 32855, + "ĠTob": 32856, + "ĠDP": 32857, + "Ġpresidency": 32858, + "Ġsurrender": 32859, + "Ġwatches": 32860, + "_binary": 32861, + "ĠSoon": 32862, + "Ġcanada": 32863, + "(\"\")Ċ": 32864, + "]='": 32865, + "ĠBrandon": 32866, + "epsilon": 32867, + "rw": 32868, + ".addChild": 32869, + ".Copy": 32870, + "Principal": 32871, + "Photos": 32872, + "Ġmarginal": 32873, + "Ġbasics": 32874, + "eing": 32875, + "Must": 32876, + "_String": 32877, + "Ġole": 32878, + "Magento": 32879, + ".customer": 32880, + "(prev": 32881, + "ล": 32882, + "Ġloyalty": 32883, + "Cog": 32884, + "Ġprotocols": 32885, + "ĠCompanies": 32886, + "Ġtheoretical": 32887, + "Ġaccessing": 32888, + "ĠZen": 32889, + ".ones": 32890, + "attice": 32891, + "_world": 32892, + "zes": 32893, + "Ġtattoo": 32894, + "Ġmenos": 32895, + "Ġintersect": 32896, + "\"];ĊĊ": 32897, + "belie": 32898, + "Ġinactive": 32899, + ".readline": 32900, + "-labelled": 32901, + ".done": 32902, + "lickr": 32903, + "ĠWORK": 32904, + "Ġderivative": 32905, + "Ġdatabases": 32906, + "âĤĤ": 32907, + "Ġsx": 32908, + ".isArray": 32909, + "Ġys": 32910, + "Ġpada": 32911, + "ĠBullet": 32912, + "(`/": 32913, + "isActive": 32914, + "ĠCGSize": 32915, + "(equalTo": 32916, + "ĠColumbus": 32917, + "Ġmarry": 32918, + "DEV": 32919, + "_limits": 32920, + "rones": 32921, + "IAS": 32922, + "Ġtau": 32923, + "mino": 32924, + "_Write": 32925, + "ĠWine": 32926, + "Ġ[['": 32927, + "ĠPull": 32928, + "riters": 32929, + "rients": 32930, + "Ġshifting": 32931, + "upp": 32932, + "_TIMER": 32933, + "ĠConditions": 32934, + "ấ": 32935, + "ĠOrders": 32936, + "ĠStrength": 32937, + "æīĢ": 32938, + "Ġvalidity": 32939, + "Ġfot": 32940, + "etur": 32941, + "Ġbolt": 32942, + "åĨħ": 32943, + "ĠAlong": 32944, + "oshi": 32945, + "Ġassumptions": 32946, + "Ġmagazines": 32947, + "_SPI": 32948, + "Ġpunt": 32949, + "_PRODUCT": 32950, + "Ġrelay": 32951, + "ĠJavascript": 32952, + ".te": 32953, + "-es": 32954, + "Ġwidgets": 32955, + "(fs": 32956, + "\";": 33023, + "atching": 33024, + "ĠKnowledge": 33025, + "ĉThe": 33026, + ";margin": 33027, + "lessness": 33028, + "opard": 33029, + "umatic": 33030, + "()));čĊ": 33031, + "Ġfals": 33032, + "(cache": 33033, + "TypeId": 33034, + "éĢļ": 33035, + "_choice": 33036, + "ĠGoth": 33037, + "ĠSites": 33038, + "MG": 33039, + "_border": 33040, + "Indices": 33041, + "Comparer": 33042, + "ĠRedistribution": 33043, + "Ġcloset": 33044, + "Ġversatile": 33045, + "Inputs": 33046, + "********************": 33047, + "Ġobesity": 33048, + "quiz": 33049, + "gra": 33050, + "(global": 33051, + "åĬ¡": 33052, + "Ġcollector": 33053, + "Ġkor": 33054, + "ovable": 33055, + "ADC": 33056, + "ĠEventHandler": 33057, + ".nc": 33058, + "Ġplayback": 33059, + "ientos": 33060, + "_perm": 33061, + "_WARNING": 33062, + "ĠOlympics": 33063, + ".norm": 33064, + "ĠBroadcast": 33065, + "_small": 33066, + "drive": 33067, + ".iloc": 33068, + "Ġtyped": 33069, + "MEM": 33070, + "_cons": 33071, + "DMETHOD": 33072, + "Ġlun": 33073, + ".distance": 33074, + "(par": 33075, + "poon": 33076, + "Ġbast": 33077, + "activities": 33078, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 33079, + ":čĊčĊ": 33080, + "SER": 33081, + ")&&": 33082, + "_lst": 33083, + "ĠPolish": 33084, + "Ġknocked": 33085, + "Ġfrustration": 33086, + "aukee": 33087, + "Ġphosph": 33088, + "iquid": 33089, + "_coeff": 33090, + "æѤ": 33091, + "Latest": 33092, + "ĠDust": 33093, + "Tipo": 33094, + "Ġmaintains": 33095, + "Ġmarsh": 33096, + "incinn": 33097, + "lbl": 33098, + "Care": 33099, + "Ġneighborhoods": 33100, + "_gpio": 33101, + "ĠArsenal": 33102, + "Dem": 33103, + "ĠWhe": 33104, + "_hook": 33105, + "Ġldc": 33106, + "ĠHarper": 33107, + "ĠBerkeley": 33108, + "Ġgraduated": 33109, + "Percent": 33110, + "Ġarriving": 33111, + "ĠAdventure": 33112, + "(scope": 33113, + "('*": 33114, + "quarter": 33115, + "ĠMarie": 33116, + "Speaking": 33117, + "_codegen": 33118, + "Ġimmun": 33119, + "caster": 33120, + "ãĤĮ": 33121, + "åķĨ": 33122, + "ĠDimensions": 33123, + ".record": 33124, + "Ġtexto": 33125, + "ĠMichelle": 33126, + "Pending": 33127, + "(by": 33128, + "_PAR": 33129, + "ucht": 33130, + "bee": 33131, + ".Thread": 33132, + "ampire": 33133, + "know": 33134, + "ĠClinical": 33135, + "ĠmarginBottom": 33136, + "Ġdistinguish": 33137, + ".Full": 33138, + ".undefined": 33139, + "ĠSequelize": 33140, + "############################################################################": 33141, + "Ġeducated": 33142, + "_OVER": 33143, + "åºı": 33144, + "ĠÂłĠÂł": 33145, + "_each": 33146, + "Ġurge": 33147, + "depart": 33148, + "Ġdonors": 33149, + "ĠAu": 33150, + "Ġbillions": 33151, + "Ġbelonging": 33152, + "_age": 33153, + "_Int": 33154, + "Ġsubstances": 33155, + "machine": 33156, + "!!!ĊĊ": 33157, + "Ġjsonify": 33158, + "ibbean": 33159, + "ĠCad": 33160, + "ĠendTime": 33161, + "Ġcycling": 33162, + "ĠUITextField": 33163, + "Ġleverage": 33164, + "Ġvanilla": 33165, + "eat": 33166, + "Launch": 33167, + "(pt": 33168, + "states": 33169, + "ĠControls": 33170, + "ĠRespons": 33171, + "ĠJake": 33172, + "Ġasleep": 33173, + "fortunate": 33174, + ".nextLine": 33175, + "SizeMode": 33176, + "ìĿ¼": 33177, + "TestingModule": 33178, + "German": 33179, + "ĠInvestig": 33180, + ".reverse": 33181, + "ĠBACK": 33182, + "(DateTime": 33183, + "Ġnonprofit": 33184, + "ĠExpect": 33185, + "Ġtanto": 33186, + "']),": 33187, + "ĉthe": 33188, + "Multiple": 33189, + "(getActivity": 33190, + "_WAIT": 33191, + "Ġjá": 33192, + "decor": 33193, + "levance": 33194, + "ĠGitHub": 33195, + "mination": 33196, + "_quantity": 33197, + ".Scanner": 33198, + "ĠLion": 33199, + "éĶĻ误": 33200, + "Ġdre": 33201, + "Ġtantra": 33202, + "ĠcontentType": 33203, + "Ġfid": 33204, + "_alt": 33205, + "NSIndexPath": 33206, + "-pl": 33207, + "åĮĸ": 33208, + "Ġantibiot": 33209, + "tables": 33210, + "acial": 33211, + "ĠRegistry": 33212, + "Ġolive": 33213, + "igers": 33214, + "Ġsubscriber": 33215, + "_pres": 33216, + "ĠSyntax": 33217, + "Ġlovers": 33218, + ".Byte": 33219, + "olders": 33220, + "_forward": 33221, + "always": 33222, + "Caption": 33223, + "Priv": 33224, + "ĠTampa": 33225, + "isateur": 33226, + "-labelledby": 33227, + "ĠToString": 33228, + "ĠìĤ¬": 33229, + "Ġinitiated": 33230, + "WF": 33231, + "Ġinstitutional": 33232, + "inject": 33233, + "ĠScr": 33234, + "Ġdoctrine": 33235, + "Ġspacious": 33236, + "isure": 33237, + "ĠAna": 33238, + "\"time": 33239, + "essaging": 33240, + "Ġcid": 33241, + "ĠNan": 33242, + "Ġincomplete": 33243, + "TAG": 33244, + "-build": 33245, + "December": 33246, + "Ġresidual": 33247, + "(PDO": 33248, + "ĠListen": 33249, + "Ġglyph": 33250, + "Ġgaps": 33251, + "nea": 33252, + ".Rect": 33253, + "Ġsau": 33254, + "ĠPhotograph": 33255, + "Ġexecutable": 33256, + "ĠExpert": 33257, + "Coroutine": 33258, + "_sizes": 33259, + "ĠNL": 33260, + ".isValid": 33261, + ");}Ċ": 33262, + "-reg": 33263, + "Ġciting": 33264, + "cwd": 33265, + "ĠOttawa": 33266, + "ĠBatt": 33267, + "Ġrenewable": 33268, + "Ġpreliminary": 33269, + "Ġasylum": 33270, + "Ġwrist": 33271, + "Ġutiliz": 33272, + "Ġdetention": 33273, + "Fast": 33274, + "Ġange": 33275, + "incinnati": 33276, + "Ġsteering": 33277, + "ĠNaN": 33278, + "iosity": 33279, + "/page": 33280, + "Ġè¿": 33281, + "sterol": 33282, + "Ġdisg": 33283, + "(DB": 33284, + "ĠDESCRIPTION": 33285, + "Ġ_$": 33286, + "Ġobstacle": 33287, + "Ġbizarre": 33288, + "Ġextraction": 33289, + "_expected": 33290, + "Ġloses": 33291, + "ĠCelebr": 33292, + "ĠhtmlFor": 33293, + "Ġexploit": 33294, + "олÑĮзов": 33295, + "XYZ": 33296, + "Ġmagnet": 33297, + "amped": 33298, + "Ġatoms": 33299, + "Sources": 33300, + "pectives": 33301, + "Ñģли": 33302, + "Ġ=čĊ": 33303, + "Ġdare": 33304, + "ĠWalter": 33305, + "Ġbrightness": 33306, + "Ġannotations": 33307, + "ëı": 33308, + "iske": 33309, + "Schedule": 33310, + ".images": 33311, + "rosso": 33312, + "Ġ\"..": 33313, + "gamma": 33314, + "Ġinstructor": 33315, + "Ġoverwrite": 33316, + "-am": 33317, + "Ġdevastating": 33318, + "ĠSaints": 33319, + "Ġhs": 33320, + "Ġbonuses": 33321, + "$output": 33322, + "ijd": 33323, + "(ActionEvent": 33324, + "monitor": 33325, + "Ġmattress": 33326, + "January": 33327, + ".jp": 33328, + "Ġcaracter": 33329, + "Ġimpose": 33330, + "_rest": 33331, + "ĠSignature": 33332, + "Ġcoronavirus": 33333, + "ãģĬ": 33334, + "_compare": 33335, + "Measure": 33336, + "itated": 33337, + "elijk": 33338, + "igos": 33339, + "esar": 33340, + "Ġrushed": 33341, + "metry": 33342, + "_SEPARATOR": 33343, + "_WE": 33344, + "_ATTRIBUTE": 33345, + "Ġyaml": 33346, + "Ġspecs": 33347, + "ĠRah": 33348, + "pheric": 33349, + "ĠInvestment": 33350, + "äll": 33351, + "Ġappealing": 33352, + "Ġviewport": 33353, + "ç©": 33354, + "ĠmarginLeft": 33355, + "Ġsubtract": 33356, + "ĠEDIT": 33357, + "ĉArrayList": 33358, + "grading": 33359, + "ĠFailure": 33360, + "asper": 33361, + "EEK": 33362, + "(now": 33363, + ")Ċ": 33379, + "Collision": 33380, + "ĠGreater": 33381, + "ĠRacing": 33382, + "alan": 33383, + "Ġmonetary": 33384, + ",new": 33385, + "ĠSorry": 33386, + ".Enable": 33387, + "ĠInstantiate": 33388, + "ollen": 33389, + "ë©´": 33390, + "ĠCalling": 33391, + "_hour": 33392, + "ADA": 33393, + "Ġshy": 33394, + ")**": 33395, + "Ġ==>": 33396, + "Ġespecial": 33397, + "Ġinterpreted": 33398, + "!=\"": 33399, + "Ġpharmacy": 33400, + ".single": 33401, + "ĠCialis": 33402, + "Ġparas": 33403, + ".toUpperCase": 33404, + "ĠDemon": 33405, + "Prime": 33406, + "Ġrankings": 33407, + "Adding": 33408, + "_HASH": 33409, + "ĠExam": 33410, + "Ú©": 33411, + "ĠVictor": 33412, + "Okay": 33413, + "\"];čĊ": 33414, + "Ġfortune": 33415, + "ĠFETCH": 33416, + "expand": 33417, + ".Interop": 33418, + "Ġbarn": 33419, + "æ¶Ī": 33420, + "uevo": 33421, + "Ġspeculation": 33422, + "âĶĢâĶĢâĶĢâĶĢ": 33423, + "ĠNu": 33424, + "ĠBlues": 33425, + "(fname": 33426, + "Ġinhabit": 33427, + "Ġ\\\"%": 33428, + "CES": 33429, + "ulario": 33430, + "_cr": 33431, + "Ġvalidated": 33432, + "Ġmidnight": 33433, + "anking": 33434, + "Ġincorporate": 33435, + "Ġpursuit": 33436, + "EXP": 33437, + "prime": 33438, + "Pid": 33439, + "-US": 33440, + "ĠNurs": 33441, + "ĠWheel": 33442, + "éĺ": 33443, + "Ġinp": 33444, + "Ġsupportive": 33445, + ".member": 33446, + "ĠShot": 33447, + ".CheckBox": 33448, + "Ġaffirm": 33449, + "Tor": 33450, + "FullYear": 33451, + "Ġconsiderably": 33452, + "credentials": 33453, + "_opts": 33454, + "Roll": 33455, + "(round": 33456, + "Ġcoment": 33457, + "_UART": 33458, + "Ġextending": 33459, + "RG": 33460, + "resultado": 33461, + "itu": 33462, + ".getSession": 33463, + "Ġattraction": 33464, + "&D": 33465, + "$html": 33466, + "ĠJessica": 33467, + "ĠAssociate": 33468, + "añ": 33469, + "_ed": 33470, + "ĠLag": 33471, + "Ġorigins": 33472, + "())->": 33473, + "addEventListener": 33474, + "IALOG": 33475, + "åIJ¦": 33476, + ".Compare": 33477, + "Album": 33478, + "ĠKu": 33479, + "\";ĊĊ": 33523, + "quisite": 33524, + "channels": 33525, + "/res": 33526, + "ĠAnalytics": 33527, + ".appcompat": 33528, + "/to": 33529, + "ĠonError": 33530, + "(attr": 33531, + "IRM": 33532, + "Ġragaz": 33533, + "-as": 33534, + ".Second": 33535, + "oriented": 33536, + "Ġdonn": 33537, + "Ġlightning": 33538, + "fid": 33539, + "ĠPle": 33540, + "ãģ¾ãģĻ": 33541, + "tro": 33542, + ".True": 33543, + "Observable": 33544, + "×Ļ": 33545, + "umbing": 33546, + "Ġprospective": 33547, + "-filter": 33548, + "Ġpursuant": 33549, + "(points": 33550, + ".Bind": 33551, + "Ġpalm": 33552, + "clearfix": 33553, + "ös": 33554, + "ĠGonz": 33555, + "Ġweaken": 33556, + "Drive": 33557, + "enido": 33558, + "lld": 33559, + "obox": 33560, + "anean": 33561, + "Got": 33562, + "ä¿Ŀ": 33563, + "Regex": 33564, + "æĥ": 33565, + "Ġsalad": 33566, + "assis": 33567, + "\"net": 33568, + "inheritDoc": 33569, + "ĠRV": 33570, + "quier": 33571, + "Ġclazz": 33572, + "Ä±ÅŁ": 33573, + "osterone": 33574, + "Ġairline": 33575, + ".listdir": 33576, + "Ġdownloading": 33577, + "ĠPalm": 33578, + "waukee": 33579, + "<": 33580, + ".BL": 33581, + "_INLINE": 33582, + "offs": 33583, + "<<(": 33584, + "_news": 33585, + "Ġchase": 33586, + "/><": 33587, + "Ġeuros": 33588, + "ĠEgyptian": 33589, + "ĠStainless": 33590, + "_BOOL": 33591, + "ĠGuild": 33592, + "ĠDynam": 33593, + "[indexPath": 33594, + "Ġï": 33595, + "Ġmemorable": 33596, + "ĠChampion": 33597, + "ResourceManager": 33598, + ".Login": 33599, + "ĠFormer": 33600, + "yped": 33601, + "Ġlleg": 33602, + ";\",": 33603, + "DWORD": 33604, + "Ġtaxi": 33605, + "Ġbombs": 33606, + "rah": 33607, + ".tags": 33608, + "_tests": 33609, + "stones": 33610, + "âĢĿ)": 33611, + "[g": 33612, + "rtype": 33613, + "Ġvu": 33614, + "Ġhostile": 33615, + "Chars": 33616, + "ĠPatriots": 33617, + "/status": 33618, + "());Ċ": 33972, + "ajÄħ": 33973, + "_OCC": 33974, + "Ġplanets": 33975, + "æŁ¥": 33976, + "ĠDublin": 33977, + "Ġserie": 33978, + ".printf": 33979, + "deep": 33980, + "`)": 33981, + "Ġ\\$": 33982, + "Ġμ": 33983, + "_VIDEO": 33984, + "endors": 33985, + "ĠCrypto": 33986, + "Far": 33987, + ".Transparent": 33988, + ".TR": 33989, + "iasm": 33990, + "_training": 33991, + "Ġteaches": 33992, + "ĠBelt": 33993, + "Ġlimiting": 33994, + "ĠKath": 33995, + "ĠIndexPath": 33996, + "Ġachievements": 33997, + "Ġserá": 33998, + "interopRequire": 33999, + "Ġdisse": 34000, + ".If": 34001, + "arming": 34002, + "ulsion": 34003, + "Po": 34004, + "_DETAIL": 34005, + "Prototype": 34006, + "ĠCAL": 34007, + "Ġagrees": 34008, + ".vo": 34009, + ".ExecuteNonQuery": 34010, + "ĠTopic": 34011, + "Ġ'{}": 34012, + "Arm": 34013, + "Ġecc": 34014, + "Mag": 34015, + "Ġserialized": 34016, + "ĉconn": 34017, + "cached": 34018, + "=tf": 34019, + "ĠByteArray": 34020, + "protobuf": 34021, + "varchar": 34022, + "ĉASSERT": 34023, + "Ġliste": 34024, + "_trigger": 34025, + "·¸": 34026, + "Feel": 34027, + "Tahoma": 34028, + "ĠLik": 34029, + "Ġstructured": 34030, + "ergus": 34031, + ".Initial": 34032, + "_ge": 34033, + "cljs": 34034, + ".contact": 34035, + "Ġandere": 34036, + "$stmt": 34037, + "_CURRENT": 34038, + "ĠDiscover": 34039, + "$res": 34040, + "formatter": 34041, + "Ha": 34042, + "vangst": 34043, + "Ġemerge": 34044, + "ãĢĤâĢĿ": 34045, + "ĠCabinet": 34046, + "-square": 34047, + "éĥ¨": 34048, + "Ġrage": 34049, + "ĠAJ": 34050, + "ĠVT": 34051, + "shadow": 34052, + "ĠFaith": 34053, + "enames": 34054, + "pretty": 34055, + "hasil": 34056, + "party": 34057, + "Ġvarchar": 34058, + "Ġfotos": 34059, + "Ġalum": 34060, + "ĠBelgium": 34061, + ".ylabel": 34062, + "Ġdej": 34063, + "_numbers": 34064, + "Ġhu": 34065, + ".setAdapter": 34066, + "ĠUsually": 34067, + "(sample": 34068, + ".Shared": 34069, + "Ġbooked": 34070, + "Ġ>>=": 34071, + "Ġminerals": 34072, + "\">": 34091, + "prog": 34092, + "boo": 34093, + "_md": 34094, + "_pack": 34095, + "(express": 34096, + "utz": 34097, + "\\Auth": 34098, + ",id": 34099, + "ĠChile": 34100, + "actice": 34101, + "Ġrecruitment": 34102, + "Ġposes": 34103, + "Ġvulnerability": 34104, + "instanc": 34105, + "orum": 34106, + "dess": 34107, + "Ġxl": 34108, + "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%": 34109, + "(fig": 34110, + "Ġdeleting": 34111, + ".del": 34112, + ")')Ċ": 34113, + "ĠWeekly": 34114, + "???": 34115, + "(strcmp": 34116, + "smith": 34117, + "Ġpursuing": 34118, + "-so": 34119, + "ĠApps": 34120, + "/'Ċ": 34121, + "Ġdecis": 34122, + "FORE": 34123, + "Everyone": 34124, + "Ġlanes": 34125, + "Virtual": 34126, + ".attach": 34127, + "(Log": 34128, + "ĠMedicaid": 34129, + "(Path": 34130, + "ĠTurner": 34131, + "/application": 34132, + "Ġportrait": 34133, + "Ġoppose": 34134, + "checkout": 34135, + "Ġfinishes": 34136, + "_ME": 34137, + "Barrier": 34138, + "Song": 34139, + "VAR": 34140, + "Earlier": 34141, + "rella": 34142, + "Ġhast": 34143, + "azar": 34144, + "Ġpulls": 34145, + "ngx": 34146, + "Ġinspiring": 34147, + "ÑĥÑİ": 34148, + "-direction": 34149, + "Ġexplosive": 34150, + "ĠcreatedAt": 34151, + "sto": 34152, + "Ġwheat": 34153, + "ĠBuilt": 34154, + "'ai": 34155, + "Ġtracked": 34156, + "hammad": 34157, + "RowAtIndexPath": 34158, + "_heap": 34159, + "Due": 34160, + "Ġconnects": 34161, + ".publish": 34162, + "emu": 34163, + "Ġbullets": 34164, + "BAR": 34165, + "olate": 34166, + "Ġinternally": 34167, + "Ġcatching": 34168, + "-password": 34169, + "ouched": 34170, + "æĢ§": 34171, + "eous": 34172, + "Ġxrange": 34173, + "Quality": 34174, + "vv": 34175, + "Manage": 34176, + "(($": 34177, + "acements": 34178, + "ĠBrothers": 34179, + "ĠHEAD": 34180, + "ĠUnsupported": 34181, + "san": 34182, + "esi": 34183, + "***Ċ": 34184, + "Ġadaptation": 34185, + "ĠWorker": 34186, + "']/": 34187, + ".savefig": 34188, + "(trans": 34189, + "ج": 34190, + "nee": 34191, + "Correct": 34192, + "...\")Ċ": 34193, + "Ġsubmitting": 34194, + "-path": 34195, + "ĉlast": 34196, + "issan": 34197, + ".xlabel": 34198, + "ĠSepar": 34199, + "/no": 34200, + "_best": 34201, + "ĠMills": 34202, + "_sock": 34203, + "(flag": 34204, + "Ġdestinations": 34205, + "emption": 34206, + "ĠFAIL": 34207, + "åĴĮ": 34208, + "Ġrp": 34209, + "fact": 34210, + "ĉlen": 34211, + "DAY": 34212, + "Ġseiz": 34213, + "_dst": 34214, + "lip": 34215, + ".Linear": 34216, + "ĠBasket": 34217, + "$t": 34218, + "$i": 34219, + "-brand": 34220, + "ĠNeil": 34221, + "ĠEq": 34222, + "Ġthou": 34223, + "ogene": 34224, + "Ġscholarship": 34225, + "æĽ´": 34226, + "Ġswo": 34227, + "aginator": 34228, + "eni": 34229, + "(book": 34230, + "Ġblink": 34231, + "thus": 34232, + "ĠcancellationToken": 34233, + "ĠPalestinians": 34234, + "Ġprofitable": 34235, + "Ġbackpack": 34236, + "enson": 34237, + "true": 34384, + "ĠNYC": 34385, + "Ġbored": 34386, + "ĠDetect": 34387, + "Ġappar": 34388, + "Ġjeans": 34389, + "ĠTak": 34390, + "IOD": 34391, + "ĠHorse": 34392, + "(FILE": 34393, + "(?": 34394, + "rique": 34395, + "optimizer": 34396, + "nat": 34397, + "loys": 34398, + "ĉToken": 34399, + "oubted": 34400, + "uess": 34401, + "ocoa": 34402, + "DataMember": 34403, + "_POWER": 34404, + "classList": 34405, + "PushButton": 34406, + "ĠWiFi": 34407, + ".Stream": 34408, + ".guild": 34409, + "Ġnog": 34410, + "ĠPortugal": 34411, + "ĠUnter": 34412, + "Primitive": 34413, + "boss": 34414, + "ĠDeutsch": 34415, + "Ġerotic": 34416, + "Ġstrconv": 34417, + ".TryParse": 34418, + "Ġgrams": 34419, + ".Success": 34420, + "_pk": 34421, + "ĠHarvey": 34422, + "-minded": 34423, + ".country": 34424, + "[]\"": 34425, + "Ġangel": 34426, + "Ġbeats": 34427, + "ĠVor": 34428, + "ilio": 34429, + ".master": 34430, + "something": 34431, + "ĠPACK": 34432, + "(if": 34433, + "RequestBody": 34434, + "Ġantes": 34435, + "/widget": 34436, + "Ġmodo": 34437, + "ĠAW": 34438, + "finder": 34439, + "Ġoptimized": 34440, + "Ġmissiles": 34441, + "NB": 34442, + "ĉinternal": 34443, + "tex": 34444, + "ĠSri": 34445, + "Ġdamaging": 34446, + "ĠMais": 34447, + "-Allow": 34448, + "ĠZh": 34449, + "-alt": 34450, + "Ġ));ĊĊ": 34451, + "èī": 34452, + "Ġinfluences": 34453, + "Ġcatal": 34454, + "_REGISTER": 34455, + "ĠAPIs": 34456, + "-century": 34457, + "Ġbiology": 34458, + "ĠActual": 34459, + "Ġheels": 34460, + "TRACE": 34461, + "_DIG": 34462, + "Dataset": 34463, + "ĠMatter": 34464, + "Ġclassifier": 34465, + ".wikipedia": 34466, + "ĠRogers": 34467, + "Ġdonated": 34468, + "rawler": 34469, + "enen": 34470, + "Ġcasinos": 34471, + "ortal": 34472, + "Ġprive": 34473, + "spe": 34474, + "ducers": 34475, + ".ep": 34476, + "Ġgrasp": 34477, + "acji": 34478, + "Ġdairy": 34479, + "Ġbuses": 34480, + ".comm": 34481, + ".ins": 34482, + "ĠIRS": 34483, + "ĠBeer": 34484, + "adc": 34485, + "oard": 34486, + "_MET": 34487, + "Ġ'+'": 34488, + "rans": 34489, + "Ġkinda": 34490, + "ĠâĶĤ": 34491, + "ĠMaur": 34492, + "аг": 34493, + "Ġbandwidth": 34494, + "ibus": 34495, + "ĠDifferent": 34496, + "(mat": 34497, + "ĠResume": 34498, + "_UNS": 34499, + "establish": 34500, + "Ġfonction": 34501, + "Subscription": 34502, + "_company": 34503, + "Ġlightly": 34504, + ".confirm": 34505, + ".yaml": 34506, + "ĠBoost": 34507, + "Commerce": 34508, + "-template": 34509, + "_DELAY": 34510, + "ĠHI": 34511, + "Ġnavig": 34512, + "(Sender": 34513, + "ĠHS": 34514, + "_\"+": 34515, + "ĠREQUEST": 34516, + "Ġwifi": 34517, + "=\"\"Ċ": 34518, + "])->": 34519, + "Ġrope": 34520, + "Ġviolated": 34521, + "Ġglance": 34522, + "ĠKurd": 34523, + "Ġè®": 34524, + "deck": 34525, + "ĠISBN": 34526, + "Ġinfect": 34527, + "ĠFoo": 34528, + "Ġgetter": 34529, + "Ġtener": 34530, + "appe": 34531, + ".hh": 34532, + "_hot": 34533, + "\".$": 34743, + "Ġrelies": 34744, + "(Console": 34745, + "International": 34746, + "->{$": 34747, + "Mid": 34748, + "Ġdissert": 34749, + "dds": 34750, + "Ġdeposits": 34751, + "ĉdriver": 34752, + "#ga": 34753, + "prising": 34754, + "println": 34755, + "Ġpresenter": 34756, + "Ġmines": 34757, + "CSS": 34758, + "ĠDual": 34759, + "(!(": 34760, + "Ġkam": 34761, + "ĠisLoading": 34762, + "ĠProtect": 34763, + ".upper": 34764, + "arium": 34765, + "]:ĊĊĊ": 34766, + "Yii": 34767, + "-shirt": 34768, + "ĠIMAGE": 34769, + "_colors": 34770, + "Ġurgent": 34771, + ".Container": 34772, + "!(Ċ": 34773, + "Saturday": 34774, + "Ġsocieties": 34775, + "ĠThan": 34776, + "ĠCod": 34777, + "=@": 34778, + "Ġattachments": 34779, + ".mobile": 34780, + "Ġspite": 34781, + "Ġbounce": 34782, + "rawl": 34783, + "instancetype": 34784, + "ĠTruck": 34785, + "Ġmanipulation": 34786, + "(Config": 34787, + "-inst": 34788, + "Ġstor": 34789, + "itution": 34790, + "PreferredGap": 34791, + "ĠmainAxisAlignment": 34792, + "Ġlistened": 34793, + "'''ĊĊ": 34794, + "ottage": 34795, + "-project": 34796, + ".APPLICATION": 34797, + "ĉroot": 34798, + "Ġwhit": 34799, + "Ġbilder": 34800, + "Ġker": 34801, + "Ġappliances": 34802, + "rowave": 34803, + "ìĿĢ": 34804, + "ematics": 34805, + "ĠOrg": 34806, + "oping": 34807, + "_SEARCH": 34808, + "Ġcham": 34809, + "addContainerGap": 34810, + "Ġ().": 34811, + "ĠArrow": 34812, + "Illegal": 34813, + "Currently": 34814, + "Ġusa": 34815, + "Ġpasswords": 34816, + "Ġrenown": 34817, + "avern": 34818, + "ĠEvil": 34819, + "Ġconcat": 34820, + "Ġduo": 34821, + "Ġvale": 34822, + "ĠBean": 34823, + "Ġindicators": 34824, + "cmath": 34825, + "ĠPump": 34826, + "November": 34827, + "ificant": 34828, + "_DOMAIN": 34829, + "regar": 34830, + "ĠPortal": 34831, + "\"$": 34832, + "Ġformerly": 34833, + "\"]:Ċ": 34834, + "ĠVisibility": 34835, + ".getElementsByClassName": 34836, + "_RED": 34837, + "Ġchampions": 34838, + "à´": 34839, + "Valor": 34840, + "_es": 34841, + "*a": 34842, + "-repeat": 34843, + "Band": 34844, + ".stage": 34845, + "Ġbureauc": 34846, + "Cnt": 34847, + "eten": 34848, + "-function": 34849, + "Ġmuito": 34850, + "PID": 34851, + "_editor": 34852, + "Ġcrashed": 34853, + "dead": 34854, + "kat": 34855, + "agh": 34856, + "ĠEXT": 34857, + "asser": 34858, + "-small": 34859, + "Ġrealiz": 34860, + "(Entity": 34861, + "ús": 34862, + "ĠActually": 34863, + "ĠElite": 34864, + "Ġhelm": 34865, + "(nonatomic": 34866, + "asher": 34867, + "Community": 34868, + "alleng": 34869, + "iry": 34870, + "ĠGrowth": 34871, + "Ġsue": 34872, + "Ġfrequencies": 34873, + "_descriptor": 34874, + ".Attribute": 34875, + "Ġrecipients": 34876, + "_NS": 34877, + "/\"+": 34878, + "iban": 34879, + "Ġathlete": 34880, + "ĠIgn": 34881, + "_DMA": 34882, + "(ds": 34883, + "ĠRequirements": 34884, + "ADI": 34885, + "erez": 34886, + "\\Admin": 34887, + "braska": 34888, + "ĠRust": 34889, + "Relation": 34890, + "COD": 34891, + "ĠVERSION": 34892, + "emma": 34893, + ")){": 34894, + ".Duration": 34895, + "ĠCamb": 34896, + "-logo": 34897, + "Ġreadable": 34898, + "Ġcreators": 34899, + "()];Ċ": 34900, + "UpDown": 34901, + "-half": 34902, + ".getMonth": 34903, + "(sf": 34904, + "Pic": 34905, + "Ġhunger": 34906, + ".tx": 34907, + "Ġexceeded": 34908, + "_seed": 34909, + "(^": 34910, + "_sk": 34911, + ".perform": 34912, + "Ġ>::": 34913, + "Ġmongo": 34914, + "=float": 34915, + "bindParam": 34916, + "Smart": 34917, + "ifa": 34918, + "Ġsecurities": 34919, + "Ġprejud": 34920, + "Ġ,\"": 34921, + "Ġcorps": 34922, + "Ġvra": 34923, + "amacare": 34924, + "iterr": 34925, + "(Media": 34926, + "uche": 34927, + "Ġcob": 34928, + "Ġliber": 34929, + ".geometry": 34930, + "Locator": 34931, + "Ġsliding": 34932, + "Ġsurgical": 34933, + "_CUR": 34934, + "Ġconsect": 34935, + "[*": 34936, + "ĠResort": 34937, + "Stub": 34938, + "_DOUBLE": 34939, + "ĠSoph": 34940, + "Ġelectoral": 34941, + "_disable": 34942, + "ĠÑģо": 34943, + "ĠLightning": 34944, + "Ġmentions": 34945, + "ocy": 34946, + "Ġleaked": 34947, + "Ġrelaxing": 34948, + "Presenter": 34949, + "vsp": 34950, + "Ġguilt": 34951, + "=-=-": 34952, + ".reply": 34953, + "ĠMirror": 34954, + "Camp": 34955, + "Ġ+#+#+#+": 34956, + "Ġ+#+#+#+#+#+": 34957, + ".Author": 34958, + "Ġdirective": 34959, + "-hook": 34960, + "íĦ°": 34961, + "}ĊĊĊĊĊ": 34962, + "@pytest": 34963, + "_rand": 34964, + "mis": 34965, + "Ġcolorful": 34966, + "uje": 34967, + "lasses": 34968, + "ĠClasses": 34969, + ".have": 34970, + "%),": 34971, + "é¢ĺ": 34972, + "Ġdisturbing": 34973, + "substring": 34974, + "ĠKoh": 34975, + "Invest": 34976, + "purchase": 34977, + "Ġrecycling": 34978, + "ĠART": 34979, + "ierarchy": 34980, + "Ġfps": 34981, + ".checkBox": 34982, + "íķ´": 34983, + "_material": 34984, + "ducation": 34985, + "Ġfw": 34986, + "udit": 34987, + "Ġreviewing": 34988, + "ĠSid": 34989, + "Syntax": 34990, + "ĠWritten": 34991, + "argar": 34992, + "UME": 34993, + "/q": 34994, + "Classifier": 34995, + "Official": 34996, + "Ġjazz": 34997, + "Ġomega": 34998, + "Physics": 34999, + "Ġlugar": 35000, + "_accessor": 35001, + ".commands": 35002, + "Ability": 35003, + "ĠBatch": 35004, + "RAM": 35005, + "Ġencounters": 35006, + ".Qu": 35007, + "BYTE": 35008, + "ĠDistribution": 35009, + "Ġuso": 35010, + "ĠRecovery": 35011, + "approved": 35012, + "Ġdenial": 35013, + "/share": 35014, + "LinkedList": 35015, + ")čĊčĊčĊ": 35016, + "uddy": 35017, + "Ġfines": 35018, + "Ġry": 35019, + "Unicode": 35020, + "ĉrender": 35021, + "Ġpremises": 35022, + "Ġpon": 35023, + "aliases": 35024, + "/Foundation": 35025, + "cuda": 35026, + "ĠCock": 35027, + ",:)": 35028, + "(folder": 35029, + "Ġméd": 35030, + "drag": 35031, + "Ġtalents": 35032, + "ĠĠĠĊĊ": 35033, + "еÑģÑĤв": 35034, + "mob": 35035, + ".yml": 35036, + "Ġaster": 35037, + "Ġdiscre": 35038, + "goal": 35039, + "ĠGTX": 35040, + "ĠSUCCESS": 35041, + "ĠLONG": 35042, + "(find": 35043, + "Ġsingular": 35044, + "_sz": 35045, + "ĠEthereum": 35046, + "..Ċ": 35047, + "Ġirres": 35048, + "')){Ċ": 35049, + "Ġministers": 35050, + "Steps": 35051, + "iversal": 35052, + "ĠNevertheless": 35053, + "-led": 35054, + "Ġ(%)": 35055, + "ç¡®": 35056, + "Ġtimezone": 35057, + "Ġstranger": 35058, + "(render": 35059, + "Ġshutil": 35060, + "Ġmph": 35061, + "Ġtrio": 35062, + "ppy": 35063, + "Ġpredomin": 35064, + "Ġendors": 35065, + "ĠRussians": 35066, + "ĉrow": 35067, + "Ġwizard": 35068, + ".serialize": 35069, + "Ġcomplained": 35070, + "Ġsido": 35071, + "Ġdelighted": 35072, + "-me": 35073, + "ĠRav": 35074, + "Human": 35075, + "adays": 35076, + "recv": 35077, + "Working": 35078, + "Jump": 35079, + "ĠÃ¥r": 35080, + "ĠAutomatic": 35081, + "_Base": 35082, + "æł¼": 35083, + "aurants": 35084, + "¯": 35085, + "æ¸": 35086, + "(CType": 35087, + "IFI": 35088, + "(amount": 35089, + "Ġbelieving": 35090, + "=mysql": 35091, + "Ġfir": 35092, + "Ġrestoration": 35093, + "ereco": 35094, + "Т": 35095, + "_'+": 35096, + "Ġebook": 35097, + "Ġdebris": 35098, + "(inputs": 35099, + "AYOUT": 35100, + "Ġscreaming": 35101, + "avia": 35102, + "lander": 35103, + "Ġdistress": 35104, + "Ġassembled": 35105, + "ĠAvoid": 35106, + "(thread": 35107, + "ĠRPC": 35108, + "_EXIT": 35109, + "(queue": 35110, + "иÑģÑĤ": 35111, + "Dll": 35112, + "Ġskull": 35113, + "_pub": 35114, + "chez": 35115, + "minate": 35116, + "ensen": 35117, + "Ġinsane": 35118, + "bounds": 35119, + "ĠRosen": 35120, + "Ġconditioning": 35121, + "processed": 35122, + "videos": 35123, + "four": 35124, + ".Conv": 35125, + "|;Ċ": 35126, + "Personal": 35127, + "cerpt": 35128, + ":UIControlStateNormal": 35129, + "Ġdoses": 35130, + "ĠKarl": 35131, + "ĠFrequ": 35132, + ".BASE": 35133, + "ĠVote": 35134, + "Ġconcurrent": 35135, + "ĠMessageBoxIcon": 35136, + "ĠÃĸ": 35137, + "ĠDubai": 35138, + "ĠRetail": 35139, + ":number": 35140, + "ĠObserver": 35141, + "ĠBigInteger": 35142, + "_origin": 35143, + "_WORK": 35144, + "Frames": 35145, + "Ġnotably": 35146, + ".âĢľ": 35147, + "Ġtropical": 35148, + "Ġniche": 35149, + "amina": 35150, + ".sys": 35151, + "(tokens": 35152, + "modify": 35153, + "osit": 35154, + "strom": 35155, + "ĠComics": 35156, + "OPTION": 35157, + "Ticket": 35158, + "Ġfactories": 35159, + "Ġdisput": 35160, + "_File": 35161, + "ĠFinn": 35162, + "eee": 35163, + "ĠDiscord": 35164, + "_money": 35165, + ".tpl": 35166, + "_safe": 35167, + "LB": 35168, + "Ġglut": 35169, + "JK": 35170, + ".flow": 35171, + "-cont": 35172, + "gos": 35173, + "Ġhorizon": 35174, + "ĠRush": 35175, + "::*": 35176, + "Pipe": 35177, + "ulla": 35178, + "borough": 35179, + "heimer": 35180, + "(move": 35181, + "(Text": 35182, + "});čĊčĊ": 35183, + "welcome": 35184, + "ĠComponents": 35185, + "Ġgovernance": 35186, + "closed": 35187, + "ĉmargin": 35188, + "Ġlaundry": 35189, + "ĠTerminal": 35190, + "izards": 35191, + ".âĢĶ": 35192, + ".remote": 35193, + ".radius": 35194, + "ĠQuebec": 35195, + "Ġdh": 35196, + "Tech": 35197, + "ĠMist": 35198, + "seller": 35199, + "_literal": 35200, + "Ġgenius": 35201, + "Ġbrains": 35202, + "gem": 35203, + "ĠMeasure": 35204, + "Ġcatast": 35205, + "rance": 35206, + ".TextField": 35207, + "Ġconsuming": 35208, + "Ġ'\\''": 35209, + "oubtedly": 35210, + "ĠCertain": 35211, + "Ev": 35212, + "erti": 35213, + "being": 35214, + "Experience": 35215, + "Ġ//[": 35216, + "ĠArabic": 35217, + "ĠCrist": 35218, + "ĠAzure": 35219, + "Ġhora": 35220, + "ladesh": 35221, + "\\Blueprint": 35222, + "dar": 35223, + ".rel": 35224, + "Ġsuprem": 35225, + "ĠReagan": 35226, + "ĠAttributes": 35227, + "-sidebar": 35228, + "ĠuseStyles": 35229, + "ĠAirlines": 35230, + "Ġhills": 35231, + "/xhtml": 35232, + "vinc": 35233, + "_mock": 35234, + "ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ": 35235, + "ĠPill": 35236, + ".LayoutStyle": 35237, + "ĠCommander": 35238, + "]<": 35239, + "signature": 35240, + "Ġ{}čĊ": 35241, + "Ġhatred": 35242, + "Ġëĭ": 35243, + "olesterol": 35244, + "Ġ********": 35245, + "ancellor": 35246, + "crop": 35247, + "TIM": 35248, + "ĉĉĊĊ": 35249, + "ysqli": 35250, + "uitive": 35251, + "ĉunset": 35252, + "_sel": 35253, + "Ġmenus": 35254, + "tick": 35255, + "Ġconstitute": 35256, + "ĠElements": 35257, + "ĠRedis": 35258, + "aggio": 35259, + "_fp": 35260, + "_depend": 35261, + "emas": 35262, + "CAST": 35263, + "orange": 35264, + "jon": 35265, + "ĠEmily": 35266, + "Ġpotatoes": 35267, + "Ġreceptor": 35268, + "ĠElectronic": 35269, + "ĠLights": 35270, + "Ġcombining": 35271, + "ĠSomeone": 35272, + "Ġ########.": 35273, + "ĠTOD": 35274, + "/show": 35275, + "Xd": 35276, + ".\"'": 35277, + "afx": 35278, + "Ġtragic": 35279, + "Styled": 35280, + "ĠMarco": 35281, + "Gallery": 35282, + "dale": 35283, + ".âĢĿĊĊĊĊ": 35284, + "érie": 35285, + "/service": 35286, + "äºĨ": 35287, + "Ġambient": 35288, + "_SETTINGS": 35289, + ".Adapter": 35290, + "lene": 35291, + "Ġtravels": 35292, + "Notice": 35293, + "Ġcleans": 35294, + "ĠFem": 35295, + "chair": 35296, + "Ñĥн": 35297, + "/my": 35298, + "_bad": 35299, + "ĠEconomics": 35300, + "ISA": 35301, + "_CNT": 35302, + "(Menu": 35303, + "äºİ": 35304, + "ĠRidge": 35305, + "Ġlengthy": 35306, + "Dot": 35307, + "Ġjumps": 35308, + "Ġhey": 35309, + "$pdf": 35310, + "Ġworm": 35311, + "Ġsut": 35312, + "Ġsher": 35313, + "iamo": 35314, + "ĠCalc": 35315, + "trieve": 35316, + "Ġcops": 35317, + "ĠChrom": 35318, + "Ġregulated": 35319, + "reatment": 35320, + "ĠHigher": 35321, + "oks": 35322, + "Ġdeze": 35323, + "LOCATION": 35324, + "ongsTo": 35325, + "Ġfinite": 35326, + "Ġvaries": 35327, + "Ġpositioned": 35328, + "'il": 35329, + "éĩij": 35330, + "Ġhike": 35331, + "(done": 35332, + "playlist": 35333, + "Ġada": 35334, + "Ġcoastal": 35335, + "ĠNancy": 35336, + ".DateTimeField": 35337, + "CppCodeGen": 35338, + "ĠSimilarly": 35339, + "reur": 35340, + "ĠContr": 35341, + "ĠHidden": 35342, + "ĠBeta": 35343, + "atched": 35344, + "_install": 35345, + ".Output": 35346, + "Lookup": 35347, + "ĠRichmond": 35348, + "quared": 35349, + "Ġmanga": 35350, + "-controls": 35351, + "ĠBernard": 35352, + "Large": 35353, + "Ġslices": 35354, + "Ġoffence": 35355, + "ĠMega": 35356, + "Ġestar": 35357, + "Ġjoints": 35358, + "Ġsumm": 35359, + "_platform": 35360, + "Buff": 35361, + ".addSubview": 35362, + "Ġretained": 35363, + "Letter": 35364, + ".dim": 35365, + "Ġessere": 35366, + "ĠScaffold": 35367, + "EXPECT": 35368, + "ĉRE": 35369, + ".longitude": 35370, + "ünd": 35371, + "Ġstatue": 35372, + ".addWidget": 35373, + "ĠCaribbean": 35374, + "addPreferredGap": 35375, + "ilde": 35376, + "UILabel": 35377, + "ĠOpport": 35378, + "Ġimperial": 35379, + "ursion": 35380, + "Ġmandate": 35381, + "Ġpromotional": 35382, + "Ġvk": 35383, + "iaÅĤ": 35384, + "Ġpyl": 35385, + "ĠCreation": 35386, + "озд": 35387, + "Ġsimpler": 35388, + ".what": 35389, + "ĠRecent": 35390, + "Storm": 35391, + ".quantity": 35392, + "ĠLov": 35393, + "\"-": 35394, + "ubbles": 35395, + "_notification": 35396, + "(world": 35397, + "urger": 35398, + "*(-": 35399, + ":\"Ċ": 35400, + "hm": 35401, + "anship": 35402, + "ĠAlmost": 35403, + "Ġmotorcycle": 35404, + "_fee": 35405, + "Ġabsorb": 35406, + "ĠVincent": 35407, + "Ġsounded": 35408, + "ÃŃst": 35409, + "Ġpharmaceutical": 35410, + "htag": 35411, + "ĠKindle": 35412, + "italize": 35413, + "ĠEmperor": 35414, + "oustic": 35415, + "Ġspecialists": 35416, + "åħ¬": 35417, + "BorderStyle": 35418, + "/\\": 35419, + "RELATED": 35420, + "(',',": 35421, + "(expr": 35422, + "Ġht": 35423, + "åįĪ": 35424, + "_Create": 35425, + "Ġspecially": 35426, + "Ġ[];čĊ": 35427, + "Ġheel": 35428, + "Ġsept": 35429, + "_arch": 35430, + "(initial": 35431, + "%.ĊĊ": 35432, + "\\\",\\\"": 35433, + "Ġdiscusses": 35434, + "Ġupt": 35435, + "Ġ[&": 35436, + "Ġmanus": 35437, + ".hand": 35438, + "ĠMAIN": 35439, + "ĠDenmark": 35440, + "Ġ],čĊ": 35441, + "Ġcryst": 35442, + "Ġnack": 35443, + "Coords": 35444, + "_inner": 35445, + "Ġmidst": 35446, + "Ġawake": 35447, + "ĠÐŀ": 35448, + "-break": 35449, + "ÃŃvel": 35450, + "_PASS": 35451, + "ĠParams": 35452, + "Ġdetr": 35453, + "Ġspider": 35454, + "ĠConcept": 35455, + "Ġprend": 35456, + "CHED": 35457, + ".Exit": 35458, + "Ġpopulated": 35459, + "Ġvirtue": 35460, + "_SESSION": 35461, + "Ġnouvel": 35462, + "oauth": 35463, + "ĠданнÑĭ": 35464, + "rink": 35465, + ".HeaderText": 35466, + "aturated": 35467, + "Ġerst": 35468, + "Ġåħ": 35469, + "à¥ĩ": 35470, + "_visible": 35471, + "eyer": 35472, + "Ġliable": 35473, + "Ġdebe": 35474, + "Ġbw": 35475, + "{-#": 35476, + "_WIN": 35477, + "dfs": 35478, + "Hover": 35479, + "ĠPUT": 35480, + "-angle": 35481, + "Ġnoble": 35482, + "Ġtraces": 35483, + "encv": 35484, + "ĠuserData": 35485, + "_ins": 35486, + "ĠSuz": 35487, + "Ġnewsletters": 35488, + "ĠModi": 35489, + "Ġentrepreneurs": 35490, + "Ġtribute": 35491, + "Ġrumors": 35492, + "Ġrr": 35493, + "ĠQuarter": 35494, + "ê³ł": 35495, + "Ġfeeds": 35496, + "óg": 35497, + "Ġenvelope": 35498, + "Ġlear": 35499, + "Ġkø": 35500, + "developer": 35501, + "Similar": 35502, + ":\")Ċ": 35503, + "subscription": 35504, + "Modifier": 35505, + "italic": 35506, + "Ġnasty": 35507, + "Ġtermination": 35508, + "Ġcharming": 35509, + "ĠâŁ": 35510, + "tons": 35511, + ".trace": 35512, + "hots": 35513, + "ĠUR": 35514, + "Mont": 35515, + "Ġjustified": 35516, + "ĠGang": 35517, + "inea": 35518, + "Ġbog": 35519, + "(ap": 35520, + "_$": 35521, + "Ġcontamin": 35522, + ".Dot": 35523, + "ĉDebug": 35524, + "(exports": 35525, + "Ġpaired": 35526, + "ĠAssignment": 35527, + "Ġautomobile": 35528, + "ĵį": 35529, + "Ġphases": 35530, + "vw": 35531, + "@SuppressWarnings": 35532, + "=\\": 35533, + "rant": 35534, + "-ed": 35535, + "ĉawait": 35536, + "Ġcertificates": 35537, + "'>\"": 35538, + "Ġintact": 35539, + "CTRL": 35540, + "Mike": 35541, + "gregation": 35542, + "ATTERN": 35543, + "Ġrepublic": 35544, + "_upper": 35545, + "iliary": 35546, + "Ġcomputation": 35547, + "hire": 35548, + "ĠShin": 35549, + "_ANY": 35550, + "ĠManufacturer": 35551, + "ĠCarm": 35552, + "Ġbearings": 35553, + "_comb": 35554, + "cad": 35555, + "uristic": 35556, + "Ġwholesale": 35557, + "Ġdonor": 35558, + ".interfaces": 35559, + "presso": 35560, + "ĠBrun": 35561, + "-close": 35562, + "prove": 35563, + "_SK": 35564, + "ĉframe": 35565, + "etros": 35566, + "ĠPain": 35567, + "_EXP": 35568, + "ĠLT": 35569, + "_fs": 35570, + ".datas": 35571, + "ĉss": 35572, + "voir": 35573, + "ĠAxis": 35574, + "Major": 35575, + "=\"<": 35576, + "[h": 35577, + "Ġprofess": 35578, + "igrate": 35579, + "(score": 35580, + "Keyword": 35581, + "\"os": 35582, + "ĠĠĠĠĉĊ": 35583, + "analysis": 35584, + "Ġreplay": 35585, + ".pass": 35586, + "\\d": 35587, + "tls": 35588, + "Ġsanct": 35589, + ".light": 35590, + "_mobile": 35591, + "ÑģÑĤÑĮ": 35592, + "ĉtotal": 35593, + "uity": 35594, + "Ġpaused": 35595, + "NAS": 35596, + "Ġencore": 35597, + "loe": 35598, + "Ġ-*-ĊĊ": 35599, + ".high": 35600, + "ampler": 35601, + "ĠSecure": 35602, + "Ġfragments": 35603, + "_vel": 35604, + "illary": 35605, + "ĠStein": 35606, + "ĠDawn": 35607, + "Ġmaximize": 35608, + "ย": 35609, + "Ġ/^": 35610, + "Ġcontinually": 35611, + "Ġshadows": 35612, + "ĉĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 35613, + "ĠIActionResult": 35614, + "Ġinformación": 35615, + "CHECK": 35616, + ".SelectedItem": 35617, + "bundle": 35618, + "olley": 35619, + "<": 35781, + "Ġtrajectory": 35782, + "_ring": 35783, + "Ġhydrogen": 35784, + "tron": 35785, + "Ġstatute": 35786, + "Ġconditional": 35787, + "Ġtray": 35788, + "-school": 35789, + "(widget": 35790, + "$config": 35791, + "Ġrequesting": 35792, + ".uint": 35793, + "eton": 35794, + "brities": 35795, + "OfType": 35796, + "ADMIN": 35797, + "predict": 35798, + "Ġgegen": 35799, + "ĠHapp": 35800, + "OCUMENT": 35801, + "ĠApart": 35802, + "Ġ-----": 35803, + "roe": 35804, + "uide": 35805, + "justify": 35806, + "ĠSquad": 35807, + "Ġprofes": 35808, + ".bot": 35809, + "_currency": 35810, + "innen": 35811, + "ĠMumbai": 35812, + "ĠNumbers": 35813, + "avanaugh": 35814, + "agnitude": 35815, + "âĢľThere": 35816, + "=http": 35817, + "çīĩ": 35818, + "Ġvb": 35819, + "+'{{$": 35902, + "Ġinode": 35903, + "sil": 35904, + "Ġhace": 35905, + "Ġseverely": 35906, + "ĠOverview": 35907, + "Ġspraw": 35908, + "Ġbeaches": 35909, + ":left": 35910, + "·»": 35911, + "(${": 35912, + "ĠFIRST": 35913, + "ĠSpa": 35914, + "-ass": 35915, + "Ġbaise": 35916, + "ĠNODE": 35917, + "ĠPizza": 35918, + "Pet": 35919, + "(seq": 35920, + "\\\">Ċ": 35921, + "CppMethodPointer": 35922, + "Ġvp": 35923, + "Ġia": 35924, + "_seconds": 35925, + "emet": 35926, + "/blob": 35927, + "_THRESH": 35928, + "...čĊ": 35929, + "Dest": 35930, + "ĠNH": 35931, + ".dataSource": 35932, + "ités": 35933, + "ĠJak": 35934, + "sell": 35935, + "Ġworkshops": 35936, + "\",Ċ": 36552, + "_Pin": 36553, + "uese": 36554, + "Ġoverrides": 36555, + "_ready": 36556, + "Advanced": 36557, + "Ġopi": 36558, + "-cart": 36559, + "(\"/\",": 36560, + "ĠDeb": 36561, + "CRY": 36562, + "ĠVertical": 36563, + "ĠOVER": 36564, + "ĠCorporate": 36565, + "Ġ\"\";": 36566, + "Ġstepping": 36567, + "ej": 36568, + "Ġaccusations": 36569, + "Ġoraz": 36570, + "_tail": 36571, + "Ġinduced": 36572, + "Ġelastic": 36573, + "Ġblown": 36574, + ",//": 36575, + "Ġbackgrounds": 36576, + "âĢĻune": 36577, + "-sdk": 36578, + "ĠsetInterval": 36579, + "Ġincentives": 36580, + "Ġvegetable": 36581, + "_On": 36582, + "expanded": 36583, + "pix": 36584, + "_shader": 36585, + "ĠSPDX": 36586, + "@example": 36587, + "ĠWrapper": 36588, + ".Zero": 36589, + "Positive": 36590, + "Ġspinner": 36591, + "Ġinvented": 36592, + "ĠGates": 36593, + "оÑĤоÑĢ": 36594, + "Ġcomparisons": 36595, + "è·": 36596, + ".primary": 36597, + "dataProvider": 36598, + "additional": 36599, + "ĉoptions": 36600, + "snapshot": 36601, + ".setHorizontal": 36602, + "Ġ\"{}": 36603, + "ĠFisher": 36604, + "halten": 36605, + "": 36638, + "ĠRegistered": 36639, + "INED": 36640, + "kal": 36641, + "parison": 36642, + "Ġobjeto": 36643, + "Vi": 36644, + "manda": 36645, + "Ġrenewed": 36646, + "ĠSof": 36647, + "essel": 36648, + ".ndarray": 36649, + "Ġcrap": 36650, + "管": 36651, + ".abspath": 36652, + "(up": 36653, + "Ġclearance": 36654, + "ĠTW": 36655, + "_COPY": 36656, + "ĠĠĠĠĠĠĠĠĠĠĠĠĉ": 36657, + "Ġforests": 36658, + "Ġarguably": 36659, + "ĠASS": 36660, + "hey": 36661, + "amel": 36662, + "_fore": 36663, + "ĠSoutheast": 36664, + "Ġabused": 36665, + "Ġpracticing": 36666, + "akedirs": 36667, + "主": 36668, + "_resources": 36669, + "Ġpond": 36670, + ".Fixed": 36671, + "LastError": 36672, + "ĠPsychology": 36673, + "Ġ\"//": 36674, + "!:": 36675, + "Reusable": 36676, + "Ġmensaje": 36677, + "Ġrospy": 36678, + "Ġbour": 36679, + "Ġvarieties": 36680, + "Ġempath": 36681, + "(({": 36682, + "_org": 36683, + "ĠMes": 36684, + "ĠMagento": 36685, + "ISTORY": 36686, + "Unless": 36687, + "Ġhj": 36688, + "ĠDuty": 36689, + "Jun": 36690, + ",size": 36691, + "Ġpaintings": 36692, + "Ġdispens": 36693, + "dart": 36694, + "Ġbehavioral": 36695, + "Ġrpc": 36696, + "calculate": 36697, + "fruit": 36698, + "_mm": 36699, + "ĉpthread": 36700, + "MaxLength": 36701, + "Ġcurrencies": 36702, + "_capacity": 36703, + "ĠOz": 36704, + "Ġfirearm": 36705, + "Ġcoefficient": 36706, + "Ġbankruptcy": 36707, + "wart": 36708, + "Ġfatigue": 36709, + "AVA": 36710, + "Ġespa": 36711, + "_pc": 36712, + "ĠQuotes": 36713, + "_LIGHT": 36714, + "ĠTickets": 36715, + "Ġrelates": 36716, + "Ġpublishers": 36717, + "Ġunlocked": 36718, + "Ġ//----------------------------------------------------------------": 36719, + "ĠInterruptedException": 36720, + "Ġoutlook": 36721, + "rn": 36722, + "Ġrebels": 36723, + "Written": 36724, + "Ġasian": 36725, + "otto": 36726, + "Ġĉĉĉĉ": 36727, + "_gpu": 36728, + "Txt": 36729, + ".ImageView": 36730, + "Ġsuis": 36731, + "_tables": 36732, + ".RecyclerView": 36733, + "Ġwhatsoever": 36734, + "èģ": 36735, + "]++;Ċ": 36736, + "assertTrue": 36737, + "_verify": 36738, + "ĠRivers": 36739, + "Ġ][": 36740, + "Jet": 36741, + "idian": 36742, + "Sibling": 36743, + "Ġgenres": 36744, + ".Access": 36745, + "OPS": 36746, + "Ġtrivial": 36747, + "ส": 36748, + "alen": 36749, + "вед": 36750, + "ĠSword": 36751, + "Ġscrutiny": 36752, + "(cb": 36753, + "Ġcommerce": 36754, + "Ġguarantees": 36755, + "_adv": 36756, + "ĠLET": 36757, + "recio": 36758, + "Ġhilar": 36759, + "Ġbackyard": 36760, + "ãĢı": 36761, + "Ġillustrated": 36762, + "/vendor": 36763, + ".Util": 36764, + "Ġwow": 36765, + "LOY": 36766, + "ĠMarshal": 36767, + "\">'.$": 36768, + "ĠBak": 36769, + "Ġmodifiers": 36770, + "dictionary": 36771, + "ĠStre": 36772, + "multiple": 36773, + "\")),": 36774, + "ĠCort": 36775, + "']\").": 36776, + "(admin": 36777, + "ĠCreator": 36778, + "Internet": 36779, + "(ms": 36780, + "logy": 36781, + "DECLARE": 36782, + "ĠMarcus": 36783, + "<<<<": 36784, + "ãģł": 36785, + "_my": 36786, + "(inst": 36787, + "Ġsciences": 36788, + "NDER": 36789, + ".enter": 36790, + "Ġitu": 36791, + "Ġbehave": 36792, + "Pan": 36793, + "ombies": 36794, + "='<": 36795, + "'));čĊ": 36796, + "ĠMENU": 36797, + "ĠWorkers": 36798, + ".NoError": 36799, + "Ġbindings": 36800, + "Ġdisabilities": 36801, + "{\\": 36802, + "ĠMunicip": 36803, + "Ġcores": 36804, + "urple": 36805, + "ĠNokia": 36806, + "usions": 36807, + "ĠFitness": 36808, + ".handleChange": 36809, + "Ġjavascript": 36810, + "ìļĶ": 36811, + "(dec": 36812, + "Ġpacking": 36813, + "-depend": 36814, + "Ġtranscript": 36815, + "zeros": 36816, + "_alert": 36817, + "?\",Ċ": 36818, + "libs": 36819, + "±Ð¾ÑĤ": 36820, + "Ġ|ĊĊ": 36821, + "trained": 36822, + "ĠGent": 36823, + "ĠRab": 36824, + "xp": 36825, + "_configuration": 36826, + "天": 36827, + "_accept": 36828, + ".recyclerview": 36829, + ":url": 36830, + "ĠMuhammad": 36831, + "Ġprivileges": 36832, + "_bank": 36833, + "uku": 36834, + "wallet": 36835, + "ĠROOT": 36836, + "Ġencuent": 36837, + "?family": 36838, + "ĉposition": 36839, + "Ġcg": 36840, + "Ġprecip": 36841, + "methods": 36842, + "_fast": 36843, + "increment": 36844, + "ĠTiger": 36845, + "_OCCURRED": 36846, + "quip": 36847, + "ĠHAS": 36848, + "_dom": 36849, + "Ġwreck": 36850, + "bj": 36851, + "Ġdern": 36852, + "Ġorgans": 36853, + ".entries": 36854, + "Ġ_('": 36855, + "ramento": 36856, + "ĠJamie": 36857, + "Ġpunk": 36858, + "IPP": 36859, + "Ġprograma": 36860, + "Ġattain": 36861, + "Ġproves": 36862, + "/sign": 36863, + "Ġanswering": 36864, + "Ġladder": 36865, + "****************************": 36866, + "ĠWalmart": 36867, + "ĠCONTENT": 36868, + "ductor": 36869, + "Ġverbal": 36870, + "ĠPID": 36871, + "crypto": 36872, + "_CALLBACK": 36873, + "Ġ=================================": 36874, + "Ġpotent": 36875, + "Ġshorts": 36876, + ".Uri": 36877, + ".uniform": 36878, + ";border": 36879, + "ĠWer": 36880, + "Ġherein": 36881, + "lla": 36882, + "ĠIhr": 36883, + "Pixmap": 36884, + "literal": 36885, + "!)ĊĊ": 36886, + "generic": 36887, + "rust": 36888, + "_scripts": 36889, + "osto": 36890, + "itus": 36891, + "ĠCoalition": 36892, + "Ġremot": 36893, + "deploy": 36894, + "ĠEagle": 36895, + "ãĢģãĢĮ": 36896, + "Ġimportante": 36897, + "ĉobject": 36898, + "Ġseasonal": 36899, + "nej": 36900, + "aidu": 36901, + "BindView": 36902, + "ĠSierra": 36903, + "-bg": 36904, + "ĠmakeStyles": 36905, + "[offset": 36906, + "Games": 36907, + "Ġhormone": 36908, + "ARIO": 36909, + "heads": 36910, + "(select": 36911, + "ĠStarted": 36912, + "@param": 36913, + "_decl": 36914, + "_blog": 36915, + "Ġaño": 36916, + "\\Api": 36917, + "ĠMilwaukee": 36918, + "Provid": 36919, + "Animated": 36920, + "Ġcooler": 36921, + "ĠSeed": 36922, + ".Edit": 36923, + "ÏĦ": 36924, + "ĠTaking": 36925, + "ĠborderColor": 36926, + "-founder": 36927, + ".LoggerFactory": 36928, + "Ġ\"\"ĊĊ": 36929, + "ALT": 36930, + "ĠLate": 36931, + "EDIATE": 36932, + "Ġ);ĊĊĊ": 36933, + "afa": 36934, + "Ġcancellation": 36935, + "Atom": 36936, + "ĠBirmingham": 36937, + "empresa": 36938, + "HEMA": 36939, + "ascal": 36940, + "Ġupside": 36941, + ".Version": 36942, + "ĠFolder": 36943, + "ĠEight": 36944, + "ĠVintage": 36945, + "ĠAppDelegate": 36946, + "ĠPrevention": 36947, + ".separator": 36948, + "STM": 36949, + "(room": 36950, + "generator": 36951, + "Ġcattle": 36952, + "ĉZ": 36953, + "ĠParticle": 36954, + "'};Ċ": 36955, + "Ġneighbours": 36956, + "ĠStateless": 36957, + "Ġaltitude": 36958, + "Ġsaint": 36959, + "обав": 36960, + "Ġconvinc": 36961, + "ĠContents": 36962, + "Ġjeune": 36963, + "(ts": 36964, + "Serialization": 36965, + "(collection": 36966, + "ĠJazz": 36967, + "ĠDod": 36968, + "ĠRoch": 36969, + "acio": 36970, + "commended": 36971, + "DEFINE": 36972, + ".onload": 36973, + "Ġspecialty": 36974, + "PLACE": 36975, + "_MOVE": 36976, + "Ġaccountable": 36977, + "Reuters": 36978, + "Ġficken": 36979, + "Ġdepr": 36980, + "Wow": 36981, + "Void": 36982, + ".space": 36983, + "à¸Ĺ": 36984, + "Ġtq": 36985, + "ĠPets": 36986, + "<$": 36987, + "(Current": 36988, + "berries": 36989, + "planation": 36990, + "ĠlistOf": 36991, + "ĠThu": 36992, + "ĠPRINT": 36993, + "Ġmismo": 36994, + "Ġdoi": 36995, + "chk": 36996, + "ĠUnicode": 36997, + "(role": 36998, + "Ġvirgin": 36999, + "-->Ċ": 37460, + "Vol": 37461, + "ĠSSD": 37462, + "))),": 37463, + ".Optional": 37464, + "Ġnurses": 37465, + "Ġorb": 37466, + "_pe": 37467, + ");čĊčĊčĊ": 37468, + "placed": 37469, + "esser": 37470, + "Ġtherapeutic": 37471, + "Ġwhitespace": 37472, + "Ġaston": 37473, + "Successful": 37474, + "Ġpraised": 37475, + "ĠWes": 37476, + "Ġeighth": 37477, + "iral": 37478, + "Ġvrouw": 37479, + "Ġfaction": 37480, + "_bias": 37481, + "Ġwitch": 37482, + "Ġnpc": 37483, + "(sb": 37484, + "ĠRodrig": 37485, + "_big": 37486, + "Dependency": 37487, + "ĠAbraham": 37488, + "ardi": 37489, + "CAR": 37490, + "nos": 37491, + "Ġabundance": 37492, + "Ġnutrients": 37493, + "instein": 37494, + ".Vert": 37495, + "ĠISS": 37496, + "D": 37595, + "Ġservlet": 37596, + "bastian": 37597, + "Ġ>&": 37598, + "SID": 37599, + "_clk": 37600, + "Ġdivisions": 37601, + "}',Ċ": 37602, + "Ġdildo": 37603, + "Ġparade": 37604, + "major": 37605, + "Ġaboard": 37606, + ";++": 37607, + "Ġfusion": 37608, + "\"},{\"": 37609, + "ĠDialogResult": 37610, + "ĉarr": 37611, + "-em": 37612, + "_nr": 37613, + "(handler": 37614, + ".NET": 37615, + ".XtraReports": 37616, + "ĠShah": 37617, + "ĠBrief": 37618, + "-,": 37619, + "Ġprecio": 37620, + "ĉĉĉĠĠĠĠĠĠ": 37621, + "Ġtant": 37622, + "ĠGrande": 37623, + "/xml": 37624, + "_ICON": 37625, + "ĠRetro": 37626, + "unque": 37627, + "Ġnag": 37628, + "toFixed": 37629, + "XL": 37630, + "Ġdeclaring": 37631, + "ĠConcrete": 37632, + "ĠAmazing": 37633, + "ĉprintk": 37634, + "Ġdebates": 37635, + "DATED": 37636, + "Ġaesthetic": 37637, + "emetery": 37638, + "RoutingModule": 37639, + "ĠNashville": 37640, + "WAYS": 37641, + "Ġwolf": 37642, + "Ġobservers": 37643, + "OTA": 37644, + "anson": 37645, + "Ġea": 37646, + "Ġgreenhouse": 37647, + "ĵįä½ľ": 37648, + "Ġstair": 37649, + "Ġimmigrant": 37650, + "_apply": 37651, + "peare": 37652, + "ĠBloomberg": 37653, + "_PLAYER": 37654, + "Resp": 37655, + "æŃ£": 37656, + "Chooser": 37657, + "ĠICollection": 37658, + "Peter": 37659, + "Erro": 37660, + ".detectChanges": 37661, + "Maps": 37662, + "Ġsqueeze": 37663, + "ĠHomes": 37664, + "wegian": 37665, + "Ġformatting": 37666, + "Ġnegotiate": 37667, + "uld": 37668, + "ĠNep": 37669, + "ĠQB": 37670, + "Ġeconomies": 37671, + "Ġ*/,": 37672, + "Ġredund": 37673, + "ĠAber": 37674, + ".IsNullOrWhiteSpace": 37675, + "ycled": 37676, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ": 37677, + "_Sh": 37678, + "Ġskept": 37679, + "Ġrecreated": 37680, + "ĠgetType": 37681, + "Ġmargins": 37682, + "Ġcolonial": 37683, + "charts": 37684, + "//@": 37685, + "Ġprocessors": 37686, + "说": 37687, + "batis": 37688, + "æĦı": 37689, + "atorio": 37690, + "mentioned": 37691, + "Patient": 37692, + "Ġprey": 37693, + "Checkbox": 37694, + "_xpath": 37695, + ".skip": 37696, + "ĠMormon": 37697, + "ĠMemoryStream": 37698, + "CREMENT": 37699, + "Ġku": 37700, + "meld": 37701, + "\\Data": 37702, + "ĠKernel": 37703, + "iltr": 37704, + "éĢģ": 37705, + "(profile": 37706, + "Carbon": 37707, + "ROLE": 37708, + "(pl": 37709, + "]*(": 37710, + ".memory": 37711, + "Ġmedal": 37712, + "Ġadvisor": 37713, + "ität": 37714, + "Ġhdr": 37715, + "ierung": 37716, + "ĠProvides": 37717, + "(alpha": 37718, + "Ġteenagers": 37719, + "-parser": 37720, + ".LatLng": 37721, + "]()Ċ": 37722, + "Ġfelony": 37723, + "ĉĉĉĊĉĉĉĊ": 37724, + "BOOK": 37725, + "Ġslash": 37726, + "Ġclearfix": 37727, + "ĠProphet": 37728, + "容": 37729, + "rightness": 37730, + "-fi": 37731, + ".kind": 37732, + "erton": 37733, + "Jim": 37734, + "Ġmanipulate": 37735, + "Ġworksheet": 37736, + "olin": 37737, + "stars": 37738, + "Ġartifact": 37739, + "_EMPTY": 37740, + "ĉmain": 37741, + "-------------';": 37809, + "Ġexpressing": 37810, + "ĠIQ": 37811, + "ĠFact": 37812, + "/*******************************************************************************Ċ": 37813, + "_mass": 37814, + ")):": 37815, + "Ġcondom": 37816, + "ĠcreateState": 37817, + "ometown": 37818, + "Ġirr": 37819, + "Ġ>(": 37820, + ">B": 37821, + "iteration": 37822, + "ãĥª": 37823, + "Ġshirts": 37824, + "ounty": 37825, + "->$": 37826, + "_SIGN": 37827, + "ĠDale": 37828, + "Ġjj": 37829, + "Easy": 37830, + "Fre": 37831, + "ĠNy": 37832, + "Ġchlor": 37833, + "matched": 37834, + "ĠGerm": 37835, + "-UA": 37836, + "ĠNathan": 37837, + "education": 37838, + "-yard": 37839, + "-che": 37840, + "houses": 37841, + "ritional": 37842, + "Ġproximity": 37843, + "Ġdiesem": 37844, + "áºŃp": 37845, + "Ġdrought": 37846, + ".audio": 37847, + "ĠLeo": 37848, + "Ġfavorable": 37849, + "inch": 37850, + "ĠDaw": 37851, + "ribly": 37852, + "_student": 37853, + "idable": 37854, + "OVE": 37855, + "Ġlacks": 37856, + "ouncing": 37857, + ".business": 37858, + "Ġreopen": 37859, + "maybe": 37860, + "_GLOBAL": 37861, + "Ġdresses": 37862, + "ĠEdwards": 37863, + "ensible": 37864, + "ĠHardware": 37865, + "ĠExcellent": 37866, + "ĠTimeUnit": 37867, + "CTIONS": 37868, + "Ġschedules": 37869, + "Ġsegue": 37870, + "Opens": 37871, + "ammen": 37872, + "-Identifier": 37873, + "Ġstaring": 37874, + "Ġhappily": 37875, + "ĠHob": 37876, + "'_": 37877, + "Ġ\");": 37878, + "amentos": 37879, + "etched": 37880, + "Ġ/>}Ċ": 37881, + ".Users": 37882, + "Ġinterrupted": 37883, + "Contacts": 37884, + "Ġregistro": 37885, + "inburgh": 37886, + "CHA": 37887, + "_imp": 37888, + "phis": 37889, + "say": 37890, + "Ġretailer": 37891, + ".NODE": 37892, + "/maps": 37893, + "_LAST": 37894, + "ĠCharge": 37895, + "_guard": 37896, + "Collider": 37897, + "ĠStatelessWidget": 37898, + "\":[\"": 37899, + "(\"../../": 37900, + "ioxide": 37901, + "ĠSund": 37902, + "Ġ'';": 37903, + "unset": 37904, + "addWidget": 37905, + "лÑİ": 37906, + "elles": 37907, + "alker": 37908, + "Arc": 37909, + "Ġdeduct": 37910, + "GUILayout": 37911, + "ĠVilla": 37912, + "Ġforbidden": 37913, + "_where": 37914, + "Ġ\\/": 37915, + "ĠTib": 37916, + "_AX": 37917, + "]čĊčĊ": 37918, + "ĠBir": 37919, + "Ġbend": 37920, + "ĠMAKE": 37921, + "ĠMET": 37922, + "Ġfutures": 37923, + "Ġweighted": 37924, + "\"\"\"čĊ": 37925, + "Ġauthorize": 37926, + "(program": 37927, + "},{\"": 37928, + "Ġcoefficients": 37929, + "ês": 37930, + "PerPage": 37931, + "ĠBathroom": 37932, + "ĠPublishing": 37933, + "GPL": 37934, + "Ġsubmissions": 37935, + "ĠNUMBER": 37936, + "jÄħ": 37937, + "Ġadditionally": 37938, + "empre": 37939, + "ĠShel": 37940, + "otyp": 37941, + "Solution": 37942, + "Ġthunder": 37943, + "_ec": 37944, + "ĠĊĠĠĠĠĊ": 37945, + "ĠFellow": 37946, + "Ġkay": 37947, + "ĠnewState": 37948, + "ONTAL": 37949, + "Implementation": 37950, + ".Look": 37951, + "Ġents": 37952, + "Ġlors": 37953, + "ĠBIG": 37954, + "fab": 37955, + "Ġaveraged": 37956, + "ĠFeedback": 37957, + "ĠWells": 37958, + "Ġmartial": 37959, + "Ġindul": 37960, + "ĠCommunist": 37961, + "ĠForex": 37962, + "ĠAgriculture": 37963, + "\"[": 37964, + "Ġquar": 37965, + "ĠKont": 37966, + "ĉview": 37967, + ".Bytes": 37968, + "desktop": 37969, + "ĠMakes": 37970, + "akespeare": 37971, + ".Nullable": 37972, + "Ġspotlight": 37973, + "VB": 37974, + "owy": 37975, + "(torch": 37976, + "tridge": 37977, + "_bounds": 37978, + "Ġapologize": 37979, + ".addItem": 37980, + "antd": 37981, + "*);Ċ": 37982, + ",u": 37983, + "(gen": 37984, + "ç»ĵ": 37985, + "reator": 37986, + "ĠCord": 37987, + "oupper": 37988, + ".metro": 37989, + "Ġew": 37990, + "ĠWORD": 37991, + ".After": 37992, + "Ġdetained": 37993, + "ĠHammer": 37994, + "existing": 37995, + "Ġost": 37996, + "Ġmonument": 37997, + "-custom": 37998, + "UserID": 37999, + "ĠNom": 38000, + "Ġrejection": 38001, + "(dim": 38002, + "Ġsingleton": 38003, + "ĉdie": 38004, + "ariance": 38005, + "reports": 38006, + "]!=": 38007, + "elda": 38008, + "Ġprevalence": 38009, + "_regs": 38010, + ".\".": 38011, + "Ġfeminist": 38012, + "Codec": 38013, + "Ġ**Ċ": 38014, + "(labels": 38015, + "_MARK": 38016, + "FAILED": 38017, + "Ġadministered": 38018, + "WN": 38019, + "ĠĠĠĠĠĠĠĠĉĉ": 38020, + "Ġnoun": 38021, + "wig": 38022, + "Ġgotta": 38023, + "Ġrif": 38024, + "-im": 38025, + "ĠPaulo": 38026, + "ĠCommandType": 38027, + "]))ĊĊ": 38028, + "-zero": 38029, + "Training": 38030, + "Ġlord": 38031, + "_art": 38032, + "reddit": 38033, + "Cert": 38034, + "Ġpeso": 38035, + "Rot": 38036, + "Ġendanger": 38037, + ".dr": 38038, + "userInfo": 38039, + "unts": 38040, + "nv": 38041, + "ĠTrailer": 38042, + "-first": 38043, + "(make": 38044, + "Ġbenefici": 38045, + "-black": 38046, + "iÃŁ": 38047, + "Ġundoubtedly": 38048, + "Ġmex": 38049, + "ĠAncient": 38050, + "(as": 38051, + "Ġdescent": 38052, + "Pick": 38053, + "Ġreplica": 38054, + "$obj": 38055, + "ähr": 38056, + "Ġarrows": 38057, + "fty": 38058, + "ĠLibya": 38059, + "uga": 38060, + "charged": 38061, + "Tur": 38062, + "Ġhomic": 38063, + "issen": 38064, + "ĠFake": 38065, + "Ġbeers": 38066, + "Ġscattered": 38067, + "(Time": 38068, + "UTIL": 38069, + "Ġbureaucr": 38070, + "/plain": 38071, + "Ġsticking": 38072, + "FAIL": 38073, + "ĠCovid": 38074, + "Third": 38075, + "_present": 38076, + "ĠPierre": 38077, + "Ġëª": 38078, + "Ġ[...]ĊĊ": 38079, + "Prob": 38080, + "ĠTraffic": 38081, + "icao": 38082, + "doctor": 38083, + "Ġ),ĊĊ": 38084, + "Tabs": 38085, + "alu": 38086, + "ï¼ļâĢľ": 38087, + "Ġinherent": 38088, + "_No": 38089, + "ritis": 38090, + "ĠProof": 38091, + ".basename": 38092, + "ä¼ļ": 38093, + "Ġchim": 38094, + "ĠProtected": 38095, + "crit": 38096, + "Ġprone": 38097, + "Ġкон": 38098, + "ĠHeroes": 38099, + "Ġanxious": 38100, + "Ġanos": 38101, + "Ġweekends": 38102, + "Ġsext": 38103, + "Ġreducer": 38104, + "=UTF": 38105, + "half": 38106, + "ĠSaw": 38107, + ".mm": 38108, + "Ġnueva": 38109, + ".currentTarget": 38110, + ".lua": 38111, + "_EXTENSION": 38112, + "ĉreg": 38113, + "ĠCtrl": 38114, + "_align": 38115, + "acceptable": 38116, + "Ġrushing": 38117, + "frac": 38118, + "Ġboasts": 38119, + "Five": 38120, + "±": 38121, + "ĠTemperature": 38122, + ">):": 38123, + "Ġcharter": 38124, + "REATED": 38125, + "Ġsubjected": 38126, + "Ġopc": 38127, + "healthy": 38128, + "使çĶ¨": 38129, + "ĠScientific": 38130, + "Ġfrau": 38131, + "riages": 38132, + "à¸Ķ": 38133, + ".inventory": 38134, + "ationale": 38135, + "Mad": 38136, + "minutes": 38137, + ">>();Ċ": 38138, + "ĠEnv": 38139, + "Ġrecordings": 38140, + "Ġsuspicion": 38141, + "sqlite": 38142, + "ĉread": 38143, + "ãģ¦": 38144, + "Ġworries": 38145, + ".putString": 38146, + "ĠShanghai": 38147, + "(uid": 38148, + "rer": 38149, + "ĠvÃŃde": 38150, + "\"):": 38151, + "Ġmethodology": 38152, + "ĠкоÑĤоÑĢ": 38153, + "ccc": 38154, + "avad": 38155, + "Ġinduction": 38156, + "ĉThread": 38157, + ",string": 38158, + "ại": 38159, + "nehmen": 38160, + "uition": 38161, + "Ġ*__": 38162, + ".emf": 38163, + "Ġìľ": 38164, + "/themes": 38165, + "ĠNine": 38166, + ".One": 38167, + "ĠEmbed": 38168, + "Ġfaz": 38169, + "uations": 38170, + "Ġprivately": 38171, + "Ġling": 38172, + "[F": 38173, + "ushi": 38174, + "Ġlaunches": 38175, + "(KEY": 38176, + "GMT": 38177, + "Ġaiming": 38178, + "patible": 38179, + "ĠBiden": 38180, + "iw": 38181, + "ĠDegree": 38182, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 38183, + "Ġ$('<": 38184, + "ários": 38185, + "toUpperCase": 38186, + "ìłľ": 38187, + "ĠEUR": 38188, + "Ġoversight": 38189, + "Ġtablesp": 38190, + "Updates": 38191, + ".makedirs": 38192, + "Ġhumidity": 38193, + "/template": 38194, + "Always": 38195, + "(IS": 38196, + "_cert": 38197, + "Dig": 38198, + "Ġunderway": 38199, + "orton": 38200, + "ĠHurricane": 38201, + "Ġspends": 38202, + "ĠSegment": 38203, + "Ġflies": 38204, + "ĠToggle": 38205, + "ĠLynch": 38206, + "Ġsenses": 38207, + "ĠKos": 38208, + "setEnabled": 38209, + "istically": 38210, + "Ġtester": 38211, + "Ġadministrators": 38212, + "Ġtagged": 38213, + "Ðĵ": 38214, + "Ġshortcut": 38215, + "ĠResolution": 38216, + "Ġsupervision": 38217, + "ĠAshley": 38218, + "Tracking": 38219, + "ulatory": 38220, + "andel": 38221, + "isten": 38222, + "Ġunre": 38223, + "(diff": 38224, + "ANTS": 38225, + "Ġrider": 38226, + "ĠsÄħ": 38227, + ".Series": 38228, + "_orders": 38229, + "ORIZONTAL": 38230, + "Ġretention": 38231, + "ãĢĤčĊčĊ": 38335, + "Ġdiagonal": 38336, + "ĠCancellationToken": 38337, + "_Internal": 38338, + "Ġruin": 38339, + ".Qt": 38340, + "ocratic": 38341, + "Tel": 38342, + "ĠAnswers": 38343, + "matic": 38344, + "Ġxp": 38345, + "atem": 38346, + "_jobs": 38347, + "_any": 38348, + "Ġseniors": 38349, + "Ġlandmark": 38350, + "ĠQList": 38351, + "Ġmaneu": 38352, + "otify": 38353, + "/\";Ċ": 38354, + "/server": 38355, + "ĠPhilosoph": 38356, + "utenant": 38357, + "(io": 38358, + "hz": 38359, + "Ġauthenticated": 38360, + "dv": 38361, + "-Compatible": 38362, + "Originally": 38363, + ",function": 38364, + "ãĢĤčĊ": 38365, + "ĠRepresentative": 38366, + "asily": 38367, + "ircuit": 38368, + ".dt": 38369, + "(math": 38370, + ".Marshal": 38371, + "[,": 38372, + "ĠCities": 38373, + "_turn": 38374, + "|)Ċ": 38375, + "Ġcantidad": 38376, + "alter": 38377, + "ĉui": 38378, + "ĠNebraska": 38379, + "Ġskirt": 38380, + ".bg": 38381, + "SharedPreferences": 38382, + "(style": 38383, + "Ġgrief": 38384, + "gew": 38385, + "Ġsafeg": 38386, + "olang": 38387, + "_lists": 38388, + "ìĽ": 38389, + "Ġgranite": 38390, + "Ġhottest": 38391, + ".jdbc": 38392, + ".Customer": 38393, + "Ġâī¤": 38394, + "Ġwaar": 38395, + "_scene": 38396, + "+'/": 38397, + "ĠJTextField": 38398, + "Ġseating": 38399, + "Ġwears": 38400, + "Ġ`/": 38401, + "Cases": 38402, + "ĠYoutube": 38403, + "ım": 38404, + "Ġbalcon": 38405, + ",G": 38406, + "MetaData": 38407, + "-price": 38408, + "SCR": 38409, + "Unity": 38410, + "Ġtrunk": 38411, + "={`${": 38412, + "Ġearthquake": 38413, + "Partial": 38414, + "Ġsubst": 38415, + "Ġelimin": 38416, + "=\"'.": 38417, + "//*[@": 38418, + "Ġsupervisor": 38419, + "vrolet": 38420, + "_article": 38421, + "Ġpane": 38422, + "bio": 38423, + "Ġmotors": 38424, + "NM": 38425, + "Frank": 38426, + "Ġonion": 38427, + "-word": 38428, + "ItemClickListener": 38429, + "Ġbrit": 38430, + "endencies": 38431, + "Computer": 38432, + "_running": 38433, + "(day": 38434, + "-he": 38435, + "(named": 38436, + "ĠSach": 38437, + "оÑĩ": 38438, + "campaign": 38439, + ".Abstract": 38440, + "(wrapper": 38441, + ".pay": 38442, + "Ġuw": 38443, + "Geo": 38444, + "rails": 38445, + "/select": 38446, + "ichte": 38447, + "sons": 38448, + "EVENT": 38449, + "Ġaliment": 38450, + "Providers": 38451, + "Await": 38452, + "_INTERVAL": 38453, + ".off": 38454, + "Ġgluten": 38455, + "_cloud": 38456, + "Ġwen": 38457, + ".extract": 38458, + "ĉbutton": 38459, + "/MM": 38460, + "Party": 38461, + "Ġdemographic": 38462, + "_errno": 38463, + "Ġhiking": 38464, + "('')Ċ": 38465, + "\",@\"": 38466, + "Ġwit": 38467, + "rá": 38468, + "ologie": 38469, + "ĠStyles": 38470, + "ĠBrowserModule": 38471, + ".RequestMapping": 38472, + "icans": 38473, + "PAGE": 38474, + "creation": 38475, + "ĠFerguson": 38476, + "uded": 38477, + "numbers": 38478, + "ĠGTK": 38479, + "Ġpresentations": 38480, + "ĠBobby": 38481, + "_span": 38482, + "estyle": 38483, + "Ġillegally": 38484, + "abela": 38485, + "Ġbattlefield": 38486, + "capacity": 38487, + "terror": 38488, + "]\");Ċ": 38489, + "Ġwarrior": 38490, + "leader": 38491, + "ĠDBG": 38492, + "ĠRevenue": 38493, + "Ġvigil": 38494, + "Ġcounterparts": 38495, + "(Error": 38496, + "ACTER": 38497, + "Ġheeft": 38498, + "Ġselections": 38499, + "zeug": 38500, + "tom": 38501, + "-two": 38502, + ".;Ċ": 38503, + "_statement": 38504, + "ĠAid": 38505, + "ĠVul": 38506, + "_rgb": 38507, + "Ġprizes": 38508, + "Ġeditable": 38509, + "ĉform": 38510, + "ını": 38511, + ".decor": 38512, + "Demo": 38513, + "lices": 38514, + "Ġenctype": 38515, + "ratulations": 38516, + "ĠROS": 38517, + "_chars": 38518, + "ĠJahr": 38519, + "partial": 38520, + "ÑĥÑĤ": 38521, + "ĠReceive": 38522, + "ĠLands": 38523, + "APTER": 38524, + "Ġchopped": 38525, + "..\"": 38526, + "ĠAnaly": 38527, + "ĠUID": 38528, + "ĠRadeon": 38529, + "ĠBee": 38530, + "Ġunm": 38531, + ">M": 38532, + ".findall": 38533, + "Tokenizer": 38534, + "ĠWHAT": 38535, + "Ġsj": 38536, + "Drawing": 38537, + "Ess": 38538, + "OND": 38539, + "Ĭ¶": 38540, + "(packet": 38541, + "âĢĶbut": 38542, + "Invocation": 38543, + "ĠNuclear": 38544, + "?;Ċ": 38545, + "Ġgrandes": 38546, + "ĠCrypt": 38547, + "remark": 38548, + "Ġ'../../../../": 38549, + "Ġinability": 38550, + "magic": 38551, + "cats": 38552, + "Ġsimulate": 38553, + ":${": 38554, + "inflate": 38555, + "Ġener": 38556, + ":NO": 38557, + "iples": 38558, + "Ġmerit": 38559, + "ĠRated": 38560, + "Ġglue": 38561, + "/blog": 38562, + "Ġgren": 38563, + "Ġthrilled": 38564, + ".CH": 38565, + "uncan": 38566, + "ĠPRIMARY": 38567, + "Ġpersec": 38568, + "Ġfeared": 38569, + ".MIN": 38570, + "ĠTheater": 38571, + "éĴ": 38572, + "ategorie": 38573, + "段": 38574, + "Ġappetite": 38575, + "square": 38576, + "ĠAlexand": 38577, + ".UserId": 38578, + "_gt": 38579, + "_enter": 38580, + "Ġgraduates": 38581, + "FragmentManager": 38582, + "Authorize": 38583, + "-NLS": 38584, + "(My": 38585, + "Ġtriumph": 38586, + "usting": 38587, + "_PARAMS": 38588, + "Characters": 38589, + "(:,:,": 38590, + "_BUILD": 38591, + "MHz": 38592, + "Ġwashed": 38593, + "Ġuncle": 38594, + "Steve": 38595, + "ardown": 38596, + "${": 38780, + "_confirmation": 38781, + "Ġtrophy": 38782, + "Works": 38783, + "ĠElectronics": 38784, + "ĠMediterranean": 38785, + "_metrics": 38786, + "Ġannouncing": 38787, + "ĠDAY": 38788, + "_proto": 38789, + "Ġpear": 38790, + "baseUrl": 38791, + "ĉĉĉĉĉĉĉĉĊ": 38792, + "Ġcoordination": 38793, + ":N": 38794, + ".animate": 38795, + "ĠCotton": 38796, + "_hit": 38797, + "âľ": 38798, + "Ġjetzt": 38799, + "ifter": 38800, + "(fields": 38801, + "ownload": 38802, + "ificacion": 38803, + ".cuda": 38804, + "ĠLiu": 38805, + ">equals": 38806, + "ĠAce": 38807, + "ÑĢам": 38808, + "ĠSuperman": 38809, + "ĠGarcia": 38810, + "Ġarrests": 38811, + "agar": 38812, + "Ġ{})": 38813, + "Ġmacros": 38814, + "roupe": 38815, + "être": 38816, + "Ġtwisted": 38817, + "struments": 38818, + "_(\"": 38819, + "_vertices": 38820, + "ĠTransition": 38821, + "ик": 38822, + "[max": 38823, + "mind": 38824, + "ĠaccessToken": 38825, + "Ġunle": 38826, + "mus": 38827, + "cop": 38828, + "ĠFactor": 38829, + "Ġconced": 38830, + "Ġretr": 38831, + ".linalg": 38832, + "-slider": 38833, + "obl": 38834, + "_StaticFields": 38835, + "Ġzombie": 38836, + "selling": 38837, + "Ġchap": 38838, + "Ġshaking": 38839, + "ĠTranslate": 38840, + "ĠAmsterdam": 38841, + "ĠETH": 38842, + "_EXTERN": 38843, + "kd": 38844, + "_disc": 38845, + "Ġpreceding": 38846, + "Ġprix": 38847, + "ObjectName": 38848, + "_modified": 38849, + "ardware": 38850, + "Ġ?>\">": 38851, + "ĠDW": 38852, + "`${": 38853, + "Ġ?>\">ĊĊ": 38959, + "Ġspinning": 38960, + "_pending": 38961, + "Matchers": 38962, + ".Keys": 38963, + "ĠPV": 38964, + "enus": 38965, + "antis": 38966, + "Ġdiscard": 38967, + "Ġhaul": 38968, + "Ġempir": 38969, + "Ġpathway": 38970, + "Ġoak": 38971, + "мен": 38972, + "-induced": 38973, + "Ġimpair": 38974, + "ĠCalgary": 38975, + ".isHidden": 38976, + "dz": 38977, + "_include": 38978, + "Ġgm": 38979, + "Ġ'('": 38980, + "PY": 38981, + "uggestions": 38982, + "Ġcommodity": 38983, + "cro": 38984, + "/sub": 38985, + "ĠgetInstance": 38986, + "ĠLegacy": 38987, + "ĠKil": 38988, + "Bal": 38989, + "(short": 38990, + "Inform": 38991, + "+x": 38992, + "*r": 38993, + "ĠHopefully": 38994, + "orate": 38995, + "Ġmachen": 38996, + "Ġtreaty": 38997, + "ĠOri": 38998, + ".public": 38999, + "-horizontal": 39000, + "Ġtactic": 39001, + "Ġbord": 39002, + "wares": 39003, + "Ġammo": 39004, + "ĠLists": 39005, + "Ġequations": 39006, + "/her": 39007, + "ĠNSW": 39008, + "Bounding": 39009, + "_Collections": 39010, + "Ġavail": 39011, + ".DropDown": 39012, + "è°": 39013, + "Ġhh": 39014, + "ĠlÃł": 39015, + ".pb": 39016, + "Ġmemorial": 39017, + "ĠATTR": 39018, + "Ġexhausted": 39019, + "Ġtsp": 39020, + "ĉredirect": 39021, + "Ġlikewise": 39022, + "STER": 39023, + "Ljava": 39024, + "Ġcondemned": 39025, + "ocaust": 39026, + "(strict": 39027, + "Ġexempt": 39028, + "Ġsms": 39029, + "Ġexagger": 39030, + "SYS": 39031, + "Ġlounge": 39032, + ":^": 39033, + "Ġtodd": 39034, + "deb": 39035, + "atorial": 39036, + "ĠPorter": 39037, + "Ġtuition": 39038, + "Ġexempl": 39039, + "Ġparen": 39040, + ".lineTo": 39041, + "Ġkidney": 39042, + "Ġça": 39043, + "Ġcui": 39044, + "ï¼Į请": 39045, + "XC": 39046, + "Ġmoż": 39047, + "Ġnominated": 39048, + "lung": 39049, + "ImGui": 39050, + "ĠBuzz": 39051, + "Ġstereo": 39052, + "portal": 39053, + "resas": 39054, + "Ġklass": 39055, + "Ġdrafted": 39056, + "Ġprojectile": 39057, + "/gpl": 39058, + "(parameters": 39059, + "*)Ċ": 39060, + "Ġassisted": 39061, + "ĠNSInteger": 39062, + "sitemap": 39063, + ":nth": 39064, + ".Views": 39065, + ".ArgumentParser": 39066, + "Ġmeer": 39067, + "zier": 39068, + "ĠDig": 39069, + "Ċ": 39136, + "Ġplag": 39137, + "pine": 39138, + "Ġblanket": 39139, + "Ġ:-": 39743, + "Ġlcd": 39744, + "---------------": 39745, + "(\"\"": 39746, + "Ġtactical": 39747, + "ĠRonald": 39748, + "extr": 39749, + "ĠFest": 39750, + "Ġfuer": 39751, + "-navigation": 39752, + "Ġkb": 39753, + "ghost": 39754, + "ĠhandleChange": 39755, + "_cls": 39756, + "()!=": 39757, + "Comparator": 39758, + ".vm": 39759, + "ĠCox": 39760, + "_review": 39761, + "/@": 39762, + "_cookie": 39763, + "Ġrecognised": 39764, + "ldap": 39765, + "Threads": 39766, + "ĠSexual": 39767, + "ĠBearing": 39768, + "(SQL": 39769, + "Ġxr": 39770, + "Ġthigh": 39771, + "URLConnection": 39772, + "ĠSUV": 39773, + "ĠmContext": 39774, + "Ġincidence": 39775, + "ĠEste": 39776, + ".sup": 39777, + "_te": 39778, + "(EXIT": 39779, + "CMD": 39780, + "/\">": 39781, + "Almost": 39782, + "ĠUne": 39783, + "Ġanderen": 39784, + "ĠSingleton": 39785, + "Ġbore": 39786, + "Think": 39787, + "Ġnarc": 39788, + "]initWith": 39789, + "_shop": 39790, + "(strategy": 39791, + "!',": 39792, + "herits": 39793, + "ĠDesk": 39794, + "_machine": 39795, + ".netty": 39796, + "ında": 39797, + "=<": 39798, + "ĠQR": 39799, + "ĠSidebar": 39800, + ".splitContainer": 39801, + "ĠonSuccess": 39802, + "Ġmonkey": 39803, + "Enjoy": 39804, + "(nodes": 39805, + "pectrum": 39806, + "Ġ(*(": 39807, + "ĉUINT": 39808, + ",height": 39809, + "ĠNetworks": 39810, + ".tail": 39811, + ".linspace": 39812, + "Ġ\"...": 39813, + "Listen": 39814, + "Æ¡": 39815, + ".Channel": 39816, + "-defined": 39817, + "Repeat": 39818, + "adjust": 39819, + "ERM": 39820, + "_application": 39821, + ".assertNotNull": 39822, + "-stream": 39823, + "Ġrabbit": 39824, + "Ġpositioning": 39825, + "Ġwoke": 39826, + "Ġfing": 39827, + "Ġmultiplayer": 39828, + "Ġregistering": 39829, + "until": 39830, + "Ã¥n": 39831, + "(::": 39832, + "ussions": 39833, + "Ġpotato": 39834, + "ĠEquals": 39835, + ".Sup": 39836, + "/apache": 39837, + "Ġ(=": 39838, + ".\")": 39839, + ".ptr": 39840, + "ĠSpeech": 39841, + ".clip": 39842, + "ĠGabriel": 39843, + "Ġmusician": 39844, + "/issues": 39845, + ".shop": 39846, + "ĠHier": 39847, + "_RET": 39848, + "_bucket": 39849, + "ãĥ¡": 39850, + "avs": 39851, + "Ġroz": 39852, + "flower": 39853, + "WriteBarrier": 39854, + "ĠMilan": 39855, + "Ġlegislature": 39856, + "ĠDoll": 39857, + "Ġproving": 39858, + ".concatenate": 39859, + "âķIJ": 39860, + "Ġgchar": 39861, + "cdnjs": 39862, + "bles": 39863, + "ĠListing": 39864, + "ло": 39865, + ".xrLabel": 39866, + "ĠSak": 39867, + "justice": 39868, + "ĠValentine": 39869, + "unless": 39870, + "Ġpiger": 39871, + "(run": 39872, + "Ġtestified": 39873, + "ANA": 39874, + "ĠRemoves": 39875, + "))));Ċ": 39876, + "recated": 39877, + "ĠRuntimeMethod": 39878, + "Ġconqu": 39879, + "ãĤ¢": 39880, + "Ġtissues": 39881, + "ailer": 39882, + "été": 39883, + "-Star": 39884, + "Ġflames": 39885, + ".setIcon": 39886, + "Ġsupern": 39887, + "Ġvagina": 39888, + "-variable": 39889, + "Ġwellness": 39890, + "CUR": 39891, + "Ġbelle": 39892, + ".getRequest": 39893, + "Ġpoco": 39894, + "benh": 39895, + "agens": 39896, + "Ġspill": 39897, + "ĠJur": 39898, + "Ġdispatcher": 39899, + "ного": 39900, + "emonic": 39901, + "(dirname": 39902, + "ĠÐĶ": 39903, + "Ġpasse": 39904, + "Ġganz": 39905, + "ricing": 39906, + "EU": 39907, + "Ġmujeres": 39908, + "essen": 39909, + ".attribute": 39910, + "jj": 39911, + "ĉĉĠĊ": 39912, + "[^": 39913, + "Ġstrtolower": 39914, + "lexer": 39915, + "ectar": 39916, + "hotel": 39917, + ".square": 39918, + "Ġrall": 39919, + "Ġlowered": 39920, + "handled": 39921, + "Market": 39922, + "ĠUses": 39923, + "ivas": 39924, + ".Business": 39925, + "ãģĹãģ¦": 39926, + "DIV": 39927, + "Ġwasted": 39928, + "Ġavoir": 39929, + "êm": 39930, + "_ACCOUNT": 39931, + ".et": 39932, + "ĉSDL": 39933, + "kap": 39934, + "Ġfox": 39935, + "uppet": 39936, + "{},Ċ": 39937, + "\",'": 39938, + "Favorite": 39939, + "PEND": 39940, + "ĠAES": 39941, + "}),": 39942, + "Ġdeduction": 39943, + "ĠpolÃŃt": 39944, + "ĠcomponentWill": 39945, + "ĠTelerik": 39946, + "_SELF": 39947, + "Ġmuse": 39948, + "Craft": 39949, + "Ġdens": 39950, + "ि": 39951, + "(tp": 39952, + "Ġtasty": 39953, + "Ġbalances": 39954, + "Ġdedication": 39955, + "ĠWallace": 39956, + "Ġunlaw": 39957, + "\\\">\\": 39958, + "Ġmum": 39959, + "-update": 39960, + "emente": 39961, + "Ġsoda": 39962, + "Republic": 39963, + "asmine": 39964, + "éric": 39965, + "(Status": 39966, + "ĠJsonConvert": 39967, + "ĠDisk": 39968, + ".Redirect": 39969, + "Ġfilming": 39970, + "/mol": 39971, + "Ro": 39972, + "Ġville": 39973, + "Ġtrabaj": 39974, + "Ġsynthesis": 39975, + "rega": 39976, + "Ġrl": 39977, + "Scheduler": 39978, + "ISHED": 39979, + "currentUser": 39980, + "(errors": 39981, + "'h": 39982, + "_bot": 39983, + "ximo": 39984, + "ĠUSART": 39985, + "_super": 39986, + "_DECREF": 39987, + "ной": 39988, + "_ROW": 39989, + "Ġpromotes": 39990, + "ĠTA": 39991, + "Ġhoras": 39992, + "ĠRepresents": 39993, + "Ġnameof": 39994, + "ĠExc": 39995, + "ĠGarage": 39996, + "Ġseine": 39997, + ",#": 39998, + "Ġherb": 39999, + "/resources": 40000, + "Ġpleaded": 40001, + ".radioButton": 40002, + "Ġæĺ": 40003, + "Ops": 40004, + "ĠNest": 40005, + "cstring": 40006, + "ĠDefence": 40007, + "Ġrefere": 40008, + "_leaf": 40009, + "Ġrevelation": 40010, + "ë§": 40011, + ".executeUpdate": 40012, + "_WORLD": 40013, + "Ġexpans": 40014, + "(\"\\\"": 40015, + "jab": 40016, + "Ġdoubts": 40017, + "ĠGeometry": 40018, + "Ġintroduces": 40019, + "Ġsenators": 40020, + "Ġcanal": 40021, + ".helper": 40022, + "ĠBiology": 40023, + "_SENS": 40024, + ".previous": 40025, + "-touch": 40026, + "abit": 40027, + "Ġimpacted": 40028, + "Ġbrackets": 40029, + ".direct": 40030, + "accum": 40031, + "Ġtestosterone": 40032, + "ĉaction": 40033, + "ĠChance": 40034, + "Ġpeaks": 40035, + "CppCodeGenWriteBarrier": 40036, + "Ġunbelie": 40037, + "_press": 40038, + ".Rel": 40039, + "angled": 40040, + "/templates": 40041, + "-->čĊ": 40042, + "lime": 40043, + "Ġsufficiently": 40044, + "_nt": 40045, + "Expand": 40046, + ".isfile": 40047, + "ĠisEmpty": 40048, + "Ġqt": 40049, + "Ġmulher": 40050, + "acob": 40051, + "George": 40052, + "常": 40053, + "Ġassim": 40054, + "aso": 40055, + "Ġcomprised": 40056, + "OV": 40057, + "(CONFIG": 40058, + "ĉwriter": 40059, + "Ġdesp": 40060, + "Ġtenure": 40061, + "(cr": 40062, + ".pool": 40063, + "ĠBrend": 40064, + "Ġcensor": 40065, + "(timeout": 40066, + "Ġplea": 40067, + ".Wrap": 40068, + "Ġtightly": 40069, + "ĠWere": 40070, + "ĠIgnore": 40071, + "abei": 40072, + "Ġbridges": 40073, + "Ġcondemn": 40074, + "Ġsimplicity": 40075, + "Ġroutinely": 40076, + "Ġblacks": 40077, + "jb": 40078, + "ĠPit": 40079, + "Utf": 40080, + "Ġ/Ċ": 40081, + "reload": 40082, + "ĠsetObject": 40083, + "/global": 40084, + "Ġfatty": 40085, + "Ġsocks": 40086, + "Couldn": 40087, + "Ġerotisk": 40088, + "æĿ¡": 40089, + "ĠPressure": 40090, + "ĠMaz": 40091, + "npos": 40092, + "tolower": 40093, + "ĠEQ": 40094, + "uteur": 40095, + "ĠMoment": 40096, + "Ġeta": 40097, + "{{--": 40098, + "Ġgraphs": 40099, + "ĠGuar": 40100, + "rine": 40101, + "(--": 40102, + "ĠHttpStatus": 40103, + "(student": 40104, + "*np": 40105, + "Ġrailway": 40106, + "Ġasynchronous": 40107, + "_vm": 40108, + "'],'": 40109, + ",text": 40110, + "merchant": 40111, + "(Guid": 40112, + "ĠGra": 40113, + "ixer": 40114, + "fetchAll": 40115, + ".addListener": 40116, + "flip": 40117, + "*$": 40118, + ">(),": 40119, + "Ġsunlight": 40120, + "assigned": 40121, + "Ġabc": 40122, + "ĠCOLUMN": 40123, + "ĠðŁĻĤĊĊ": 40124, + ")...": 40125, + "Ġensemble": 40126, + "Ġnewline": 40127, + "_SINGLE": 40128, + "iedad": 40129, + "Ġdarker": 40130, + "ormap": 40131, + "Ġlion": 40132, + "plits": 40133, + "Ġillustration": 40134, + "ĠIEEE": 40135, + "Ġvista": 40136, + "ousands": 40137, + "*******": 40138, + "ĠTommy": 40139, + "Ġhue": 40140, + "Sel": 40141, + "Ġaura": 40142, + "ĠTherapy": 40143, + "Ġanimator": 40144, + ".constraints": 40145, + "Ġvague": 40146, + "(\"\")": 40147, + "Ġvillain": 40148, + "Ġblessing": 40149, + "ĠstringBuilder": 40150, + "ĠMisc": 40151, + "ĠDIR": 40152, + "fax": 40153, + "-node": 40154, + "ĠWalking": 40155, + "ĠAU": 40156, + "sess": 40157, + "Ġgrill": 40158, + "VERTISE": 40159, + "ĠFoods": 40160, + "Ġtournaments": 40161, + "Ãĵ": 40162, + "ĠMarsh": 40163, + "Ġwonders": 40164, + "Longitude": 40165, + ".CommandText": 40166, + "=input": 40167, + "_encoder": 40168, + "pageSize": 40169, + "ĠgetState": 40170, + ">>Ċ": 40171, + ".grey": 40172, + "pod": 40173, + "Ġreadings": 40174, + "Ġreconsider": 40175, + "Startup": 40176, + "Ġexcer": 40177, + ".balance": 40178, + "_cycle": 40179, + "_Time": 40180, + "LOCAL": 40181, + "ĠEFI": 40182, + "ĠReyn": 40183, + ".setForeground": 40184, + "byn": 40185, + "Ġdisconnected": 40186, + "ACTIVE": 40187, + "Ġembedding": 40188, + "ickers": 40189, + "Ġsurroundings": 40190, + "*c": 40191, + "Ġgarant": 40192, + "Ġbf": 40193, + "Ġwipe": 40194, + "Ġä¸ĭ": 40195, + "_TRA": 40196, + "adox": 40197, + "çķ": 40198, + "Ġsucks": 40199, + "ĠSongs": 40200, + "ĠAssociates": 40201, + "ĠBald": 40202, + "ĠBrett": 40203, + "venile": 40204, + "Ġvt": 40205, + "Ġinade": 40206, + "Ġresigned": 40207, + "ĠGlenn": 40208, + ".pattern": 40209, + ".DataBind": 40210, + "Ñĥм": 40211, + "LayoutInflater": 40212, + "chet": 40213, + "ĠTestament": 40214, + ".ms": 40215, + "Ġpav": 40216, + "ĠReactDOM": 40217, + "urdy": 40218, + "ADATA": 40219, + "Mu": 40220, + "/actions": 40221, + "ĠJs": 40222, + "_extract": 40223, + "ĠBring": 40224, + ":id": 40225, + "strt": 40226, + "ivation": 40227, + "Ġoutright": 40228, + "azu": 40229, + "loyment": 40230, + "иÑı": 40231, + "aldo": 40232, + "ĠPublisher": 40233, + "Education": 40234, + "Palette": 40235, + "_drv": 40236, + "Ġ($(": 40237, + "ĠAnda": 40238, + "Ġremedy": 40239, + "Ġinconsistent": 40240, + "tection": 40241, + "Ġregulators": 40242, + "Ġshortest": 40243, + "(pair": 40244, + "ĠInstallation": 40245, + "Ġdefendants": 40246, + "Ġ();": 40247, + "-large": 40248, + "Mel": 40249, + "Ġthreaten": 40250, + "нÑı": 40251, + "Ġfetish": 40252, + "otine": 40253, + "_dic": 40254, + "Ġ<$": 40255, + "Ġstagger": 40256, + "spi": 40257, + "$response": 40258, + "Serv": 40259, + "-born": 40260, + "jos": 40261, + "ĉimg": 40262, + "ĉWHERE": 40263, + "_lt": 40264, + "å½ĵ": 40265, + ".cost": 40266, + "ĠTue": 40267, + ".labels": 40268, + "ĠLV": 40269, + "wcsstore": 40270, + "ĠJesse": 40271, + "ห": 40272, + "Trade": 40273, + "Ġpredecessor": 40274, + "ëĤ": 40275, + "finally": 40276, + "_general": 40277, + "oggler": 40278, + "_REGION": 40279, + "nement": 40280, + "Ġblogger": 40281, + "ĠHarbor": 40282, + "ĠDataset": 40283, + "[w": 40284, + "Ġattendees": 40285, + ".ico": 40286, + "maximum": 40287, + ".Unlock": 40288, + "_SYNC": 40289, + "ágina": 40290, + "Ġdowns": 40291, + "ĠWii": 40292, + "])/": 40293, + "Ġkicking": 40294, + "unication": 40295, + "ĠDAC": 40296, + "ĠIDS": 40297, + "ĠRental": 40298, + "ĠcurrentTime": 40299, + "Ġvaccines": 40300, + "ĠDevil": 40301, + "Ġnors": 40302, + "_mouse": 40303, + "urrection": 40304, + "(no": 40305, + "Ġ>čĊ": 40306, + "Ġaggression": 40307, + "Ġbreeding": 40308, + ".symbol": 40309, + "iman": 40310, + "AbsolutePath": 40311, + "ĠWHO": 40312, + "_flush": 40313, + "-root": 40314, + "arna": 40315, + "&M": 40316, + "Ġfathers": 40317, + "ĠRocket": 40318, + "iveau": 40319, + "Ġwander": 40320, + "Ġcompos": 40321, + "ĠWarrior": 40322, + "ĠSeat": 40323, + "ĠClinic": 40324, + "_invoice": 40325, + "(dispatch": 40326, + "Producto": 40327, + "aturing": 40328, + "ossier": 40329, + "ĠMAY": 40330, + "Ġdagger": 40331, + "Ġsanitized": 40332, + "ĠRFC": 40333, + "Ġproph": 40334, + "Ġurine": 40335, + "Ġgrind": 40336, + "ĠExpanded": 40337, + "descripcion": 40338, + "-fw": 40339, + "ĠKerry": 40340, + "=name": 40341, + "Ġchk": 40342, + "Ġnationally": 40343, + "Ġthee": 40344, + "Inc": 40345, + "Ġ?>>": 40346, + ".RadioButton": 40347, + ".HttpServletResponse": 40348, + "/Y": 40349, + "ĉfield": 40350, + "Ġhomme": 40351, + "yper": 40352, + "Physical": 40353, + "=v": 40354, + "Ġdriv": 40355, + "ĠErrors": 40356, + "ĠcÄĥ": 40357, + "Death": 40358, + "ĠWINDOW": 40359, + "Ġpoet": 40360, + "ĠSharp": 40361, + "ĠImmutable": 40362, + "ĉcreate": 40363, + "Ġgeht": 40364, + "ĠReform": 40365, + "aiser": 40366, + "ĠInitialization": 40367, + "Ġimmunity": 40368, + ".compose": 40369, + "Ġlatency": 40370, + "ĠLebanon": 40371, + "ĠParad": 40372, + "Ġfuels": 40373, + "ĠExhib": 40374, + "coh": 40375, + "%\">Ċ": 40376, + "ĠCLI": 40377, + ")initWith": 40378, + "-Za": 40379, + "_CLEAR": 40380, + "regn": 40381, + "Ġfinances": 40382, + ".standard": 40383, + "_CATEGORY": 40384, + ".library": 40385, + "Ġtravelers": 40386, + "_wp": 40387, + "ĠEvaluation": 40388, + "starting": 40389, + "Ġ)),Ċ": 40390, + "episode": 40391, + "ĠVariant": 40392, + "Ġdaemon": 40393, + "ĠJulia": 40394, + "ĠNR": 40395, + "Ġdoubles": 40396, + "'": 40626, + "Ġqueryset": 40627, + ";}čĊ": 40628, + "ĠPopulation": 40629, + "utedString": 40630, + "resident": 40631, + "_FONT": 40632, + "ĠRespond": 40633, + "Ġobscure": 40634, + "Ġobservable": 40635, + "ĠContributors": 40636, + "kon": 40637, + "ĠMusk": 40638, + "exao": 40639, + "ĠTub": 40640, + "BootApplication": 40641, + "SOR": 40642, + ".Horizontal": 40643, + ".findBy": 40644, + ".power": 40645, + "Ġpositively": 40646, + "venience": 40647, + "ĠJong": 40648, + "Ġwhistle": 40649, + "ĠзнаÑĩ": 40650, + "Ġlending": 40651, + "Ġdestructive": 40652, + "ĠonDelete": 40653, + "authorization": 40654, + "();?>": 40655, + "_original": 40656, + "science": 40657, + "atra": 40658, + "?,?,": 40659, + "ĠAsc": 40660, + "Ġconvincing": 40661, + "$a": 40662, + "orgen": 40663, + "_Date": 40664, + "ĠProvide": 40665, + "Ġlonely": 40666, + ")'Ċ": 40667, + "exchange": 40668, + ";?>Ċ": 40669, + ".fast": 40670, + "Samples": 40671, + "London": 40672, + "'])čĊ": 40673, + "ĠIonic": 40674, + "Ġpesso": 40675, + "ĠKnights": 40676, + "ĠRaf": 40677, + "_attrs": 40678, + "Ġrepeal": 40679, + ">Main": 40680, + "ĠOrdered": 40681, + "_New": 40682, + "=\"\">\";Ċ": 40763, + "ĠSERVER": 40764, + "ĠHEADER": 40765, + "_velocity": 40766, + "ĠInvoke": 40767, + ".timestamps": 40768, + "Ġsulf": 40769, + "IQUE": 40770, + "Ġinhabitants": 40771, + "phins": 40772, + "azzo": 40773, + "Ġmono": 40774, + "Legend": 40775, + "Ġnonce": 40776, + "IFE": 40777, + ";\";Ċ": 40778, + "-create": 40779, + "\"\",Ċ": 40780, + "permit": 40781, + "ĠImmigration": 40782, + "Ġpathname": 40783, + "ffective": 40784, + "âĻĢâĻĢ": 40785, + "Ġexams": 40786, + "-event": 40787, + "ĠTill": 40788, + "[mid": 40789, + "FIX": 40790, + ";color": 40791, + "(Order": 40792, + "_traits": 40793, + "ĠorderBy": 40794, + "Ġsunt": 40795, + "ĠNicholas": 40796, + "ز": 40797, + "Ġsunny": 40798, + "iners": 40799, + "Ġaccessibility": 40800, + "ĠHB": 40801, + ".comp": 40802, + "ĉop": 40803, + "Ġminorities": 40804, + "etheus": 40805, + "Ġcollaborative": 40806, + "prit": 40807, + "HIR": 40808, + "Ġwraps": 40809, + "ĉdraw": 40810, + "god": 40811, + "ĠIX": 40812, + ".apps": 40813, + "ĠNM": 40814, + "Ġirrelevant": 40815, + "ĠTigers": 40816, + "Ġdiag": 40817, + "GV": 40818, + "ĠAccessories": 40819, + "kont": 40820, + "Ġsimplify": 40821, + "ĠFavorite": 40822, + "_tools": 40823, + "([]);Ċ": 40824, + "Ġtowers": 40825, + "Bes": 40826, + "Ġhunter": 40827, + "Ġsalon": 40828, + "(buff": 40829, + "ĉdebug": 40830, + "Ġmalware": 40831, + "Moving": 40832, + "-options": 40833, + ")+'": 40834, + "ĠLOVE": 40835, + "_SOCKET": 40836, + "_fin": 40837, + "ĠDelaware": 40838, + "Ġsheriff": 40839, + "-invalid": 40840, + "ĠFULL": 40841, + "Ġпод": 40842, + "elas": 40843, + "\"strings": 40844, + "ĠRepresentatives": 40845, + "surface": 40846, + "resolved": 40847, + "htdocs": 40848, + ")):čĊ": 40849, + "Ġpressures": 40850, + "Ġnorms": 40851, + "Ġpla": 40852, + "Ġsurname": 40853, + "Ġpostal": 40854, + "ĠDepart": 40855, + "Ġslaughter": 40856, + "orida": 40857, + "Ġhebben": 40858, + "Ġdesar": 40859, + "compact": 40860, + "_LANG": 40861, + "åIJĪ": 40862, + "opoly": 40863, + "_rad": 40864, + "ĠSTDMETHOD": 40865, + "Lazy": 40866, + "ĠĠĠĉ": 40867, + "...,": 40868, + "(web": 40869, + "ĠPont": 40870, + "Ġetwas": 40871, + "Ġupward": 40872, + "_hat": 40873, + "Ġ],ĊĊ": 40874, + "ĠbaseUrl": 40875, + "Ġworrying": 40876, + "-addon": 40877, + "(getClass": 40878, + "SPI": 40879, + "Ġcapturing": 40880, + ")},Ċ": 40881, + "Effects": 40882, + "Ġcompetent": 40883, + "Ġfoul": 40884, + "Ġsubscribing": 40885, + "ĠOBJECT": 40886, + "IXEL": 40887, + "bucks": 40888, + "(edge": 40889, + "(pass": 40890, + "ĠPeterson": 40891, + "Ġboobs": 40892, + "ĠDelay": 40893, + "_square": 40894, + "elim": 40895, + "oters": 40896, + "_PC": 40897, + "%E": 40898, + "onclick": 40899, + "ĠSVG": 40900, + "Ġtopped": 40901, + "Ġfist": 40902, + "smart": 40903, + "ĠRalph": 40904, + "(owner": 40905, + "jours": 40906, + "Ġbronze": 40907, + "ĠArgumentException": 40908, + "(original": 40909, + "_SCALE": 40910, + "_cp": 40911, + "Ġrecommends": 40912, + ".setStyle": 40913, + "Sure": 40914, + "LAND": 40915, + "Ġrepeating": 40916, + "Matt": 40917, + ".Visibility": 40918, + "Ġenterprises": 40919, + ".Setup": 40920, + "(scene": 40921, + "ĠReactive": 40922, + "urge": 40923, + "bw": 40924, + ".Put": 40925, + "persist": 40926, + ".cookie": 40927, + "ĠAudi": 40928, + "`s": 40929, + "supplier": 40930, + "(Form": 40931, + "¡": 40932, + "_so": 40933, + "ĮĢ": 40934, + "ĠLegion": 40935, + "tte": 40936, + "Nd": 40937, + "Loss": 40938, + "(attrs": 40939, + ".scatter": 40940, + "Ġgroom": 40941, + "Ġglimpse": 40942, + "Ġnails": 40943, + "Ġcumulative": 40944, + "Ġfazer": 40945, + "_services": 40946, + ".Num": 40947, + "ibilit": 40948, + "_resolution": 40949, + "ĠTx": 40950, + "uminium": 40951, + "opa": 40952, + ".schedule": 40953, + "smtp": 40954, + "à¸ķ": 40955, + "urry": 40956, + "ük": 40957, + "goog": 40958, + "_signature": 40959, + ".into": 40960, + "ĠSteps": 40961, + "Ġhomeowners": 40962, + "ĠNSURL": 40963, + "ĠPAC": 40964, + "ĠĠĠĠĠĠĠĠĠĠĠĠĊĊ": 40965, + ">')Ċ": 40966, + "enh": 40967, + "Ġincap": 40968, + "$MESS": 40969, + "Ġmoins": 40970, + "ĠFi": 40971, + "Ġoffseason": 40972, + "pressions": 40973, + ">.Ċ": 41045, + "ĠGrass": 41046, + "ĠGoal": 41047, + "_pdf": 41048, + "Handlers": 41049, + "Ġstacks": 41050, + ".getFullYear": 41051, + "=[];Ċ": 41052, + "车": 41053, + ",V": 41054, + "(split": 41055, + "Ñĥнк": 41056, + "Ġbakeca": 41057, + "Ġ~/.": 41058, + "pez": 41059, + "tails": 41060, + "ĠGlen": 41061, + "ĠsetImage": 41062, + "ĠComic": 41063, + "BLOCK": 41064, + "ĉThis": 41065, + "oader": 41066, + "Ġcapitalist": 41067, + "_STEP": 41068, + "(Boolean": 41069, + "ĠCorrect": 41070, + "rina": 41071, + "Ġconcaten": 41072, + "å®ŀ": 41073, + "():ĊĊ": 41074, + "Ġunanim": 41075, + "lli": 41076, + "alars": 41077, + "-ne": 41078, + "Ġdivor": 41079, + "ĠKickstarter": 41080, + "]._": 41081, + "*'+": 41722, + "åĿĢ": 41723, + "acency": 41724, + "(URL": 41725, + "_half": 41726, + "=l": 41727, + "ĠlistView": 41728, + "(section": 41729, + ".toArray": 41730, + "+/": 41731, + "ĠRodriguez": 41732, + "istream": 41733, + "Ġeligibility": 41734, + "::-": 41735, + ".newInstance": 41736, + "PB": 41737, + "ĠAssets": 41738, + "ĠComposite": 41739, + "ĠLabs": 41740, + "ĠHamas": 41741, + "++);Ċ": 41742, + "Ġblk": 41743, + "ĠNeo": 41744, + "Luc": 41745, + "@login": 41746, + "Ġunaware": 41747, + ".met": 41748, + "_RELEASE": 41749, + "(ST": 41750, + "AMIL": 41751, + "rike": 41752, + "Ġ(){Ċ": 41753, + "(sprintf": 41754, + "ĠAccounts": 41755, + "ĠVIEW": 41756, + "ĠAj": 41757, + "ãĤ°": 41758, + "Ġwhisk": 41759, + "Ġidi": 41760, + "Ġrode": 41761, + "Ġihn": 41762, + "ĠElementary": 41763, + "Qty": 41764, + "Ġintriguing": 41765, + "Ġå¤": 41766, + "Jobs": 41767, + "ĉoffset": 41768, + "ĠAhmed": 41769, + "ĠTaliban": 41770, + "Ġèİ·åıĸ": 41771, + "Ġinjected": 41772, + ".Authentication": 41773, + "_linear": 41774, + ".Decimal": 41775, + "Ġapples": 41776, + "Ġshareholders": 41777, + "Ġbaked": 41778, + ".diff": 41779, + "ĠEddie": 41780, + "okers": 41781, + "Ġconfronted": 41782, + "voices": 41783, + "Ġtus": 41784, + "ĠSpin": 41785, + "NODE": 41786, + "_Un": 41787, + "CTX": 41788, + "/google": 41789, + "Temperature": 41790, + "Ġ'').": 41791, + "Ġmagnificent": 41792, + "ĠstartIndex": 41793, + "sembles": 41794, + "Anyone": 41795, + "zk": 41796, + "ehen": 41797, + "ĠDame": 41798, + ".strict": 41799, + "Ġreplaces": 41800, + "Ġlineback": 41801, + "Ġpushes": 41802, + "Ġcheek": 41803, + "ĠShi": 41804, + "_BYTES": 41805, + "REA": 41806, + "ản": 41807, + "_CONNECTION": 41808, + "Gateway": 41809, + "ĠTravis": 41810, + "ĠAX": 41811, + "ĠBasically": 41812, + "ĠUpgrade": 41813, + "àª": 41814, + "themes": 41815, + "ermo": 41816, + "kor": 41817, + "Female": 41818, + "_attach": 41819, + "ĠìĤ¬ìļ©": 41820, + "Ġpoz": 41821, + "==============Ċ": 41822, + "(symbol": 41823, + "ĠSector": 41824, + "__)ĊĊ": 41825, + "_padding": 41826, + "ï¼ļ\"": 41827, + "Ġfabs": 41828, + "Ġranged": 41829, + "setName": 41830, + "Ġperror": 41831, + "âĹ": 41832, + "ĠFileReader": 41833, + "Ġfulfilled": 41834, + "_Current": 41835, + "Ġdominate": 41836, + "Ġsmugg": 41837, + "PostMapping": 41838, + "_force": 41839, + "Ġbloc": 41840, + "ĠGiant": 41841, + "(video": 41842, + "ĠCU": 41843, + "SystemService": 41844, + "Ġelf": 41845, + "Ġkontakt": 41846, + "ëª": 41847, + "kees": 41848, + "gtk": 41849, + "ĠparamInt": 41850, + "Ġmarkup": 41851, + "uales": 41852, + "Ġaccounted": 41853, + "Ġgangbang": 41854, + "RYPT": 41855, + "ĠWrong": 41856, + "Ġcredited": 41857, + "ĠMESSAGE": 41858, + "Ġflaws": 41859, + "Ġbbw": 41860, + "Ġmetabolic": 41861, + "ĠOEM": 41862, + "/event": 41863, + "(Collectors": 41864, + "monton": 41865, + "appear": 41866, + "Ġopted": 41867, + "Ġcheat": 41868, + "Ġdav": 41869, + "ĠProceed": 41870, + "Ġê¸": 41871, + "anked": 41872, + "из": 41873, + "ansk": 41874, + "ĠHang": 41875, + "ĠCler": 41876, + "Ġdisgu": 41877, + "Ġcmap": 41878, + ".cljs": 41879, + "Ġaument": 41880, + "lez": 41881, + "ĠJoined": 41882, + "_received": 41883, + "Ġaerial": 41884, + "otel": 41885, + "Ġgreet": 41886, + "\"s": 41887, + "ĠGenesis": 41888, + "ĠCalif": 41889, + "panion": 41890, + "Ġtailored": 41891, + "mapping": 41892, + "andExpect": 41893, + ".track": 41894, + "atomy": 41895, + "ĠOw": 41896, + "ullah": 41897, + ".Yes": 41898, + "ĠSimpleName": 41899, + "dbh": 41900, + "'en": 41901, + "Ġnonsense": 41902, + "Ġphilosophical": 41903, + "(getContext": 41904, + "Ġisso": 41905, + "ĠACE": 41906, + "startDate": 41907, + "ĠbÄĻd": 41908, + "ĠAUTHOR": 41909, + "ĠGlobe": 41910, + "Ġinsects": 41911, + "_Al": 41912, + "ushing": 41913, + "è®°": 41914, + "/Home": 41915, + "ĠLocalDate": 41916, + "needed": 41917, + "hesive": 41918, + "Ġillusion": 41919, + "äºĮ": 41920, + "Ġtrat": 41921, + "xo": 41922, + "/detail": 41923, + "_MATCH": 41924, + "Ġbroadband": 41925, + "Ġwal": 41926, + "ĠIllegalStateException": 41927, + "IRECTION": 41928, + "Ġnortheast": 41929, + "esium": 41930, + "ĠCliente": 41931, + "ulance": 41932, + "nty": 41933, + "Ġtecn": 41934, + "Devices": 41935, + "Ġgrains": 41936, + "ĠOg": 41937, + "ĠSEL": 41938, + "udiant": 41939, + "Ġ++;Ċ": 41940, + "Ġexplanations": 41941, + "occo": 41942, + "Ġdiets": 41943, + "Ġcohort": 41944, + "(controller": 41945, + ".Iterator": 41946, + "-rich": 41947, + "rocess": 41948, + "GD": 41949, + "Ġcarbohydr": 41950, + "Ġfried": 41951, + "ĠEmployment": 41952, + "ìŀ¥": 41953, + "ĠLeonard": 41954, + "_${": 41955, + "quares": 41956, + "Ġcompanions": 41957, + "Ġparis": 41958, + "Ġstimulation": 41959, + "ĠZoo": 41960, + "Ġrelevance": 41961, + "ĠColour": 41962, + "Ġspear": 41963, + "otional": 41964, + "ĠLite": 41965, + "ĠKosten": 41966, + "Ġó": 41967, + "_attachment": 41968, + "orphic": 41969, + "Ġdamit": 41970, + "Ġdlg": 41971, + "Ġthrive": 41972, + "CHANGE": 41973, + "ĠApparently": 41974, + "Ġatual": 41975, + "Ġrooted": 41976, + "(images": 41977, + "awi": 41978, + "ariat": 41979, + "Ġcherry": 41980, + "STATIC": 41981, + "mnt": 41982, + "ĠUserId": 41983, + "illet": 41984, + "ĠHispanic": 41985, + "Ġnak": 41986, + "Ġcentro": 41987, + "Ġdims": 41988, + "_initialize": 41989, + "ık": 41990, + "ĠCenters": 41991, + "REN": 41992, + "Ġevolutionary": 41993, + "ĠTopics": 41994, + "_damage": 41995, + "emer": 41996, + "Ġrund": 41997, + "Ġpunished": 41998, + "Ġcubic": 41999, + "fair": 42000, + "[];ĊĊ": 42001, + "Ġinstantiate": 42002, + "Ġoversee": 42003, + "-delete": 42004, + "unteer": 42005, + "startTime": 42006, + "ĠPipeline": 42007, + "_GAME": 42008, + "ĠCir": 42009, + "ĉNull": 42010, + ".Formatting": 42011, + "ucumber": 42012, + "ĠRide": 42013, + "Ġzoo": 42014, + "Ġchecker": 42015, + "åIJĮ": 42016, + "=C": 42017, + "Ġgrit": 42018, + "\");//": 42019, + "_xy": 42020, + "ĠDeclaration": 42021, + "Ġcallable": 42022, + "Foo": 42023, + "ĠListItem": 42024, + "Ġinaccur": 42025, + "mlin": 42026, + "ĉData": 42027, + "Ġevolving": 42028, + "awan": 42029, + "Ġcafe": 42030, + "folk": 42031, + "_IDX": 42032, + "ĠAnything": 42033, + "ĠPalestine": 42034, + "ĠGridView": 42035, + "Ġcolony": 42036, + "ĠGermans": 42037, + "(+": 42038, + ".pid": 42039, + ".jsx": 42040, + "ĠSuperior": 42041, + "Christian": 42042, + "ĠLect": 42043, + "ĉGame": 42044, + "Ġinstrumental": 42045, + "Animations": 42046, + "дал": 42047, + "ĠMoses": 42048, + "ĉĉčĊĉĉčĊ": 42049, + "zs": 42050, + "kte": 42051, + "ä¸ļ": 42052, + "_DIST": 42053, + "bitmap": 42054, + "dB": 42055, + "Ġpersistence": 42056, + "ÑĢоÑģ": 42057, + "$l": 42058, + "Bron": 42059, + "Ġ{|": 42060, + "_chart": 42061, + "ĠConsum": 42062, + "Ġhemp": 42063, + "Ġ\"))Ċ": 42064, + "Ġattackers": 42065, + "Ġknowledgeable": 42066, + "Ġcet": 42067, + "Ġviruses": 42068, + "'I": 42069, + "Ġpitcher": 42070, + "Ġsweeping": 42071, + "=list": 42072, + "aptops": 42073, + ".depth": 42074, + "Ġinstructed": 42075, + "ĠRus": 42076, + "benhavn": 42077, + "Ġин": 42078, + "Sports": 42079, + "Ġonset": 42080, + "æĿĥ": 42081, + ".RED": 42082, + "_si": 42083, + "ĠPST": 42084, + ".onChange": 42085, + ">tag": 42086, + "ĠRoh": 42087, + "_character": 42088, + "ĠLaws": 42089, + "ĠBachelor": 42090, + "_swap": 42091, + ".reactivex": 42092, + "Ġrewarding": 42093, + "Medium": 42094, + "-[": 42095, + "ĠRecently": 42096, + "Joint": 42097, + "partition": 42098, + "ĠMinutes": 42099, + "Ġindo": 42100, + "Ġabsorbed": 42101, + "ĠGN": 42102, + "_IND": 42103, + "Ġsaber": 42104, + "Spawn": 42105, + "outputs": 42106, + "ĠJeffrey": 42107, + "Ġmedieval": 42108, + "hed": 42109, + "Guide": 42110, + "Ġpsycho": 42111, + "Ġglam": 42112, + "Elim": 42113, + "ädchen": 42114, + "_plain": 42115, + "ĠSau": 42116, + "-four": 42117, + "Ġanalyzing": 42118, + "QUERY": 42119, + "Ġtomato": 42120, + "_buttons": 42121, + "VEN": 42122, + ".setStatus": 42123, + ".Url": 42124, + "+ĊĊ": 42125, + "Ġcomplaining": 42126, + "degree": 42127, + "confirmed": 42128, + "Ġsubt": 42129, + "parsed": 42130, + "Ġtorque": 42131, + "Ġtroubled": 42132, + "ĠTARGET": 42133, + "Ġtrademarks": 42134, + "ĠCoordinate": 42135, + "ĠViv": 42136, + "Ġ//}ĊĊ": 42137, + "Ġaprès": 42138, + ".getPosition": 42139, + "(KeyCode": 42140, + "ĠSilva": 42141, + "Ġmeteor": 42142, + "Ġendorsement": 42143, + "Overview": 42144, + "ĠPoss": 42145, + ".Inject": 42146, + "Ġevenly": 42147, + "Ġvisualization": 42148, + "Ġwchar": 42149, + "ĠHDMI": 42150, + "Ġfunct": 42151, + "ickname": 42152, + "','','": 42153, + "Ġforwards": 42154, + "ManagedObject": 42155, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 42156, + "ĉserver": 42157, + "ĠOutlook": 42158, + "ĠChronicle": 42159, + "Ġdubbed": 42160, + "Ġdok": 42161, + "ĠWear": 42162, + ".AL": 42163, + "paren": 42164, + ".Interface": 42165, + "Interfaces": 42166, + ".cod": 42167, + "Ġdib": 42168, + ".Globalization": 42169, + "ĠAcademic": 42170, + "Ġassms": 42171, + "Autom": 42172, + "Ġlw": 42173, + "ĠNW": 42174, + "Ġ&&čĊ": 42175, + "Ġproblema": 42176, + "ĠManufacturing": 42177, + "limits": 42178, + "-mobile": 42179, + "Ġfilme": 42180, + "/map": 42181, + "Ġdoit": 42182, + "ĠInk": 42183, + "Ġsued": 42184, + ".arr": 42185, + "Ġundermin": 42186, + "ĠProc": 42187, + "crollView": 42188, + "__$": 42189, + "Ġsidewalk": 42190, + "(that": 42191, + "ื": 42192, + "[q": 42193, + "grammar": 42194, + "Ġtë": 42195, + "quito": 42196, + "Ġspiral": 42197, + "extended": 42198, + "Ġfocal": 42199, + "Ġdigging": 42200, + "pas": 42201, + "ĠTall": 42202, + ".proxy": 42203, + "itures": 42204, + "TRACT": 42205, + "ĠRealm": 42206, + "Ġfeder": 42207, + "Ġoriented": 42208, + "ĠAlternative": 42209, + "Ġowe": 42210, + "Ġsourced": 42211, + "inker": 42212, + ".det": 42213, + "Sep": 42214, + "ĠQui": 42215, + "ĠPalmer": 42216, + "(_,": 42217, + "samples": 42218, + "oyer": 42219, + "ullan": 42220, + "quez": 42221, + "Edges": 42222, + "Ġshout": 42223, + "ĠAchie": 42224, + "Ġhaar": 42225, + "_Construct": 42226, + "Ġpremature": 42227, + "Ġrevert": 42228, + "').Ċ": 42229, + "Ġschn": 42230, + "filtered": 42231, + "nullptr": 42232, + "Saved": 42233, + "itecture": 42234, + "CLA": 42235, + "Ġvl": 42236, + "stell": 42237, + "ĉMe": 42238, + "ĠLip": 42239, + "national": 42240, + "Ġwholly": 42241, + "Ġsprings": 42242, + ".Timer": 42243, + "ĉsrc": 42244, + "elsen": 42245, + "åħ¶": 42246, + "Ġcommunicating": 42247, + "ĠQuiz": 42248, + "Ġteng": 42249, + "Ġgez": 42250, + "ĠOutside": 42251, + ".Sign": 42252, + "(cs": 42253, + "Ġdisputes": 42254, + "ĠWeiss": 42255, + "annes": 42256, + ">No": 42257, + "ĠBach": 42258, + ".removeAll": 42259, + "refer": 42260, + "/dashboard": 42261, + "ĠAjax": 42262, + "IndexChanged": 42263, + "ĠWeak": 42264, + "'\"Ċ": 42265, + "Ġsights": 42266, + "accessToken": 42267, + "ĠJoi": 42268, + "(domain": 42269, + "ĉcv": 42270, + "Ġcontinuation": 42271, + "Ġplum": 42272, + "adir": 42273, + ".setMessage": 42274, + "Ġï¼Į": 42275, + "Ġswallow": 42276, + "ĠLamp": 42277, + "Ġqw": 42278, + "Ġuu": 42279, + "Coin": 42280, + "ubic": 42281, + "ĠDeals": 42282, + "race": 42283, + "Ġdictator": 42284, + "Ġmeme": 42285, + "turned": 42286, + "ĠJulie": 42287, + ".gridColumn": 42288, + "Ġpuppy": 42289, + "Ġpam": 42290, + "Ġ){čĊ": 42291, + "Ġinviting": 42292, + "Ġfrench": 42293, + "vim": 42294, + "Ġwrapping": 42295, + "Ġ#-}Ċ": 42296, + "([-": 42297, + "Early": 42298, + "Ġshiny": 42299, + ".faces": 42300, + "Ġrebell": 42301, + "abcdef": 42302, + "ält": 42303, + "Ġestimation": 42304, + "phys": 42305, + "losures": 42306, + "_REL": 42307, + "Ġexclusion": 42308, + "ĠSkype": 42309, + "weise": 42310, + "-stop": 42311, + "nothing": 42312, + "ĠEgg": 42313, + "isors": 42314, + "Richard": 42315, + "Ġcounseling": 42316, + "Ġcommem": 42317, + "ĠQMessageBox": 42318, + "ĠSynd": 42319, + "ĠFrost": 42320, + "ĠCompetition": 42321, + "ĠAwake": 42322, + "Ġted": 42323, + "iciones": 42324, + "ĠDevComponents": 42325, + "VERTISEMENT": 42326, + "otti": 42327, + ".runner": 42328, + "Ġuniquely": 42329, + ".flag": 42330, + "ĉrs": 42331, + "_generic": 42332, + "Ġ```Ċ": 42333, + "ACHINE": 42334, + "Ġmein": 42335, + "(Application": 42336, + "(br": 42337, + "Ġratios": 42338, + ":,": 42339, + "ĠXCTest": 42340, + "ustainable": 42341, + "-www": 42342, + "itles": 42343, + "_TEMP": 42344, + "Ġsyst": 42345, + "umericUpDown": 42346, + "ĉassertTrue": 42347, + "Ġwf": 42348, + ".peek": 42349, + "ĠBulg": 42350, + "Ġterrifying": 42351, + ".MODE": 42352, + "ĠGW": 42353, + "ár": 42354, + "Ġfic": 42355, + "Ġcommitments": 42356, + "-tech": 42357, + "ĠLiquid": 42358, + "opez": 42359, + "zheimer": 42360, + "aña": 42361, + "-media": 42362, + "(animated": 42363, + "_goal": 42364, + "Ġgum": 42365, + "ystone": 42366, + ".SET": 42367, + "ĠWend": 42368, + "setCellValue": 42369, + "Ġmsgs": 42370, + "cash": 42371, + "ALLOC": 42372, + "/aws": 42373, + "Ġmicrowave": 42374, + ".Pointer": 42375, + "ĉConsole": 42376, + "_sorted": 42377, + "ĠFilip": 42378, + "Prod": 42379, + "Ġ//!<": 42380, + "ingroup": 42381, + "Ġks": 42382, + "_TRI": 42383, + "Ġteaspoon": 42384, + "ĠATT": 42385, + "Ġrecovering": 42386, + "ĠGLOBAL": 42387, + ".Par": 42388, + "Ġ/>;Ċ": 42389, + "Ġmarble": 42390, + "ulators": 42391, + "ĠCycle": 42392, + "Ġherbs": 42393, + "_metric": 42394, + ")!": 42395, + "_CLOCK": 42396, + "_Button": 42397, + "Harry": 42398, + "è¿Ľ": 42399, + "Ġstrains": 42400, + "ĠAppBar": 42401, + "ĠChan": 42402, + "/video": 42403, + "Ġbam": 42404, + ".Progress": 42405, + "$f": 42406, + "lemen": 42407, + "Ġirregular": 42408, + "ĠDuncan": 42409, + "ĠMint": 42410, + "-video": 42411, + "া": 42412, + "ówn": 42413, + "ĠEMPTY": 42414, + "Ġstacked": 42415, + "ĠHA": 42416, + "_cut": 42417, + "Ġwherein": 42418, + "ĠWays": 42419, + "(counter": 42420, + "è¯ķ": 42421, + "FormGroup": 42422, + "Ġblew": 42423, + "courses": 42424, + "Ġproductos": 42425, + "rys": 42426, + "ĠRestr": 42427, + "Ġstyling": 42428, + ">s": 42429, + "Ġpiv": 42430, + "Ġitertools": 42431, + "getRepository": 42432, + "ĠIk": 42433, + "_devices": 42434, + "layui": 42435, + "Ġhalfway": 42436, + "Ġfranç": 42437, + "Ġtuning": 42438, + "OA": 42439, + "_Node": 42440, + "arde": 42441, + "Ġfierce": 42442, + "licted": 42443, + "#čĊ": 42444, + "Ġbreakthrough": 42445, + "ĠErik": 42446, + "Ġbride": 42447, + "Ġ.\"": 42448, + "culus": 42449, + "inside": 42450, + "ĠIndianapolis": 42451, + "ĠEE": 42452, + "Ġyog": 42453, + "urret": 42454, + ".fs": 42455, + ".grad": 42456, + "_cards": 42457, + "_accuracy": 42458, + "_epi": 42459, + "queda": 42460, + "/org": 42461, + "éªĮ": 42462, + "Ġcompte": 42463, + "))[": 42464, + "Outside": 42465, + "Greater": 42466, + "ĠRenderer": 42467, + ".actor": 42468, + "Accounts": 42469, + "Idle": 42470, + "_hours": 42471, + "erner": 42472, + "Joined": 42473, + "Ġmenj": 42474, + "requires": 42475, + "ĠOPER": 42476, + ".removeChild": 42477, + "ĉsp": 42478, + "Ġesse": 42479, + "rift": 42480, + "xFE": 42481, + "ĠShakespeare": 42482, + "____________": 42483, + "Ġbudgets": 42484, + "ModelState": 42485, + "fillable": 42486, + "-component": 42487, + "ocos": 42488, + "ĠBUTTON": 42489, + "/io": 42490, + ",out": 42491, + "sms": 42492, + "Thomas": 42493, + "ĠArmed": 42494, + "resume": 42495, + "Ġrotating": 42496, + "ĠVault": 42497, + "Ġseus": 42498, + ".(*": 42499, + "Ġamino": 42500, + "Ġ[]);ĊĊ": 42501, + "Ġprovoc": 42502, + "nox": 42503, + ".GetEnumerator": 42504, + "=======Ċ": 42505, + "æĸĻ": 42506, + "_scroll": 42507, + "Ġfilmed": 42508, + "ĠSoci": 42509, + "gap": 42510, + "gro": 42511, + "Vote": 42512, + "\"But": 42513, + "_RC": 42514, + "Animal": 42515, + "ÂĢ": 42516, + "ibile": 42517, + "Ġawaken": 42518, + "orest": 42519, + "inja": 42520, + "ĠIvan": 42521, + "(Command": 42522, + "Ġ*****": 42523, + "η": 42524, + "Ġkvinder": 42525, + "/helpers": 42526, + "_cases": 42527, + "tg": 42528, + "ìĦ¸": 42529, + "Registered": 42530, + "ĉpass": 42531, + "_digits": 42532, + "Ġcontour": 42533, + "Ġinfants": 42534, + "Ġjustification": 42535, + "ĠFortunately": 42536, + "Contr": 42537, + "ĠonCreateView": 42538, + "_SAMPLE": 42539, + "ĠallowNull": 42540, + "Ġnud": 42541, + "Ġfetched": 42542, + "_equ": 42543, + "ĠUnable": 42544, + "=\\\"\"": 42545, + ">{Ċ": 42546, + "Ġcommittees": 42547, + "istema": 42548, + "+\".": 42549, + "ÃŃan": 42550, + "mant": 42551, + "Ġsoutheast": 42552, + "ï¼ĮĊ": 42553, + "dialogs": 42554, + "PROJECT": 42555, + "charger": 42556, + "-port": 42557, + "(uuid": 42558, + ".export": 42559, + "Six": 42560, + "ĠRP": 42561, + "Prem": 42562, + "Ġconscience": 42563, + "ĠmarginRight": 42564, + "_distribution": 42565, + "yaml": 42566, + "resizing": 42567, + "Dock": 42568, + "ĠLocations": 42569, + "GY": 42570, + "Seed": 42571, + "BUFFER": 42572, + "ossip": 42573, + "ullen": 42574, + "Things": 42575, + "-self": 42576, + ".poll": 42577, + "PLAYER": 42578, + "Ġå®": 42579, + "GROUP": 42580, + "ĠAway": 42581, + "Ġgospel": 42582, + "xfd": 42583, + "Mary": 42584, + "ĠPortable": 42585, + "TURE": 42586, + "Ġutilis": 42587, + "Ġseit": 42588, + "Ġstrand": 42589, + "Ġtransc": 42590, + "Ġ(^": 42591, + "ĠAlfred": 42592, + ".mem": 42593, + ".circle": 42594, + "Ġ~/": 42595, + "forcing": 42596, + "Ġriot": 42597, + "prox": 42598, + "THON": 42599, + "ización": 42600, + "ĠNI": 42601, + "rost": 42602, + "Ġdispro": 42603, + "_instances": 42604, + "ï¼ĮâĢľ": 42605, + "ographer": 42606, + "endas": 42607, + "ĠIsaac": 42608, + "ĠPine": 42609, + "/dis": 42610, + "ĠcolorWith": 42611, + "iterate": 42612, + "_stride": 42613, + "Ġpunto": 42614, + ".EventArgs": 42615, + "(center": 42616, + "Ġneighboring": 42617, + "ĠPrison": 42618, + "ĠMessenger": 42619, + "Ġepidemic": 42620, + "dao": 42621, + "_complex": 42622, + "Ġgravel": 42623, + "_DIP": 42624, + "ément": 42625, + "ĠAri": 42626, + "_bitmap": 42627, + ".quit": 42628, + "(valid": 42629, + "Ġpend": 42630, + "Ġrespiratory": 42631, + "Ġrebound": 42632, + "DefaultValue": 42633, + "ãĥŃ": 42634, + "Ġcommits": 42635, + ".tests": 42636, + "_fr": 42637, + "itet": 42638, + ".sf": 42639, + "Ġspacecraft": 42640, + "critical": 42641, + "Ġdepressed": 42642, + "ĠAnyObject": 42643, + "Ġunb": 42644, + "Ġdiscern": 42645, + "(mysql": 42646, + "Latin": 42647, + "ĠBog": 42648, + "ĠWildlife": 42649, + "ToFile": 42650, + "ioxid": 42651, + "@RestController": 42652, + "Ġ\"$(": 42653, + "Ġ<<\"": 42654, + "Ġdefects": 42655, + "Ġdatum": 42656, + "hin": 42657, + "Ġrealizar": 42658, + "anyahu": 42659, + "ĠSig": 42660, + "@Data": 42661, + "adaptive": 42662, + "ĠCatherine": 42663, + ".cr": 42664, + "ĠCOOKIE": 42665, + "Ġpictured": 42666, + "ĠFighter": 42667, + "Queryable": 42668, + "ĠAnyway": 42669, + "ĠGLFW": 42670, + "_namespace": 42671, + "_ft": 42672, + "Ġ])": 42673, + "Organization": 42674, + "Ġconstitutes": 42675, + "Ġquand": 42676, + "(chunk": 42677, + "\"/>čĊ": 42678, + "ĠLakes": 42679, + "mainwindow": 42680, + "Carthy": 42681, + "spin": 42682, + "(csv": 42683, + ":red": 42684, + "-commerce": 42685, + "ู": 42686, + "Ġdiscovering": 42687, + "Ġeco": 42688, + "_fac": 42689, + "inceton": 42690, + "ĠGreens": 42691, + "jwt": 42692, + "ص": 42693, + "ĠBroncos": 42694, + "ĠGoods": 42695, + "(GTK": 42696, + "ĠreturnValue": 42697, + "Ġsiempre": 42698, + "Ġneutr": 42699, + "went": 42700, + "ĠNatal": 42701, + "Ġenthusiastic": 42702, + "á»į": 42703, + "FN": 42704, + "/database": 42705, + "Catalog": 42706, + "Ġbrun": 42707, + "ĠKash": 42708, + "_Pl": 42709, + "iscrim": 42710, + ",width": 42711, + "Ġinmates": 42712, + "Assignment": 42713, + "ĠHaven": 42714, + "Ġplayground": 42715, + "exam": 42716, + "@Controller": 42717, + "uliar": 42718, + ".getParent": 42719, + "Ġ\";ĊĊ": 42720, + ":size": 42721, + "issors": 42722, + "Ġfis": 42723, + "Ġalc": 42724, + "ensation": 42725, + "ĠNixon": 42726, + "Ġmighty": 42727, + "-str": 42728, + "_special": 42729, + "_ADC": 42730, + "ĠTwig": 42731, + "umbling": 42732, + "-address": 42733, + "Ġheroin": 42734, + "YTE": 42735, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ": 42736, + "Friend": 42737, + "Ġave": 42738, + "ĠPNG": 42739, + "ĠKurdish": 42740, + "DataSetChanged": 42741, + "Ġblades": 42742, + "bral": 42743, + "Steam": 42744, + "Ġsigu": 42745, + "IRTUAL": 42746, + "acos": 42747, + "UDP": 42748, + "(database": 42749, + "hec": 42750, + "ĠStrings": 42751, + "_scalar": 42752, + "ĉdesc": 42753, + "ĠTLS": 42754, + ";\"Ċ": 42755, + "ĠCorbyn": 42756, + "SimpleName": 42757, + "uell": 42758, + "ĠEntre": 42759, + "ellites": 42760, + "-place": 42761, + "Ġfrankly": 42762, + "ĠErf": 42763, + "CEL": 42764, + "ĠpaÃŃs": 42765, + "Ġhedge": 42766, + "Ġlatent": 42767, + "ĠIRQ": 42768, + "ĠHerald": 42769, + "ĠPrec": 42770, + "ë³´": 42771, + ".TEXT": 42772, + "Salary": 42773, + "Ġautumn": 42774, + "Ġtravail": 42775, + ".Sum": 42776, + "Ġcared": 42777, + "Mor": 42778, + "Ġintuitive": 42779, + "Ġjournals": 42780, + "_IT": 42781, + "ĠTrou": 42782, + "ä¼ł": 42783, + "HasColumnName": 42784, + "Composite": 42785, + "Ġspice": 42786, + "_disk": 42787, + "_CODES": 42788, + "ĠIntroduced": 42789, + "iona": 42790, + "Ġnuestra": 42791, + "oct": 42792, + "ĠĠĠĠĊĠĠĠĠĊĠĠĠĠĊ": 42793, + "(parameter": 42794, + "Ġstudios": 42795, + "ĠprojectId": 42796, + "Ġbdsm": 42797, + ".SqlClient": 42798, + "imizer": 42799, + "ĠCARD": 42800, + "+t": 42801, + "aan": 42802, + ".sol": 42803, + "_Adjust": 42804, + "Ġrighteous": 42805, + "ĠLogging": 42806, + ".filters": 42807, + "_TAB": 42808, + "ĉsys": 42809, + "rophic": 42810, + "otherapy": 42811, + "ĠBrowse": 42812, + "keyboard": 42813, + "RON": 42814, + "+\\": 42815, + "ropped": 42816, + "Ġextensively": 42817, + "fk": 42818, + "Ġlime": 42819, + "years": 42820, + "Exc": 42821, + "Ġsph": 42822, + "Ġcheating": 42823, + "andro": 42824, + "ÃŃo": 42825, + "Ġprince": 42826, + "oire": 42827, + "ĠDestination": 42828, + "ĠConverts": 42829, + "Ġupstream": 42830, + "oled": 42831, + "Ġservants": 42832, + "Ġsemantic": 42833, + "Ġcrunch": 42834, + "Ġeventual": 42835, + "runner": 42836, + "/error": 42837, + "Spin": 42838, + "Ġsecretly": 42839, + "Ġassemble": 42840, + ".Person": 42841, + "enderror": 42842, + "_<": 42843, + "Ġpendant": 42844, + "Sleep": 42845, + "ĠChemistry": 42846, + "Ġbosses": 42847, + "lk": 42848, + "))),Ċ": 42849, + "Blockly": 42850, + "DEVICE": 42851, + "Ġreflecting": 42852, + "Ġample": 42853, + "Milliseconds": 42854, + "ĠPresidential": 42855, + "Ġusuarios": 42856, + "ĠNZ": 42857, + "ĠSalary": 42858, + "ĠAmanda": 42859, + "_np": 42860, + "jury": 42861, + "Ġkön": 42862, + "Ġtherapist": 42863, + "Ġhomosexual": 42864, + "ĠDrake": 42865, + "-window": 42866, + "ĠLocated": 42867, + ".Driver": 42868, + "ĠVIDEO": 42869, + "Ġmerchants": 42870, + "ĠChest": 42871, + "-lock": 42872, + "/php": 42873, + "Ġmilano": 42874, + "_STYLE": 42875, + "arger": 42876, + "idea": 42877, + "GUID": 42878, + "advanced": 42879, + "meal": 42880, + "OptionsItemSelected": 42881, + "='%": 42882, + "ĠCham": 42883, + ":data": 42884, + "(stat": 42885, + "WillAppear": 42886, + "Ġinformal": 42887, + "aji": 42888, + "Ġreproductive": 42889, + "ĠCAS": 42890, + "ãģ£": 42891, + "FUNC": 42892, + "ĠRuth": 42893, + ")+(": 42894, + "CONST": 42895, + "ĠFans": 42896, + "ĠgroupId": 42897, + "xffffffff": 42898, + "Ġsampler": 42899, + "Ġ}}\">": 42900, + ".the": 42901, + "Ġhollow": 42902, + "WAY": 42903, + "ĠFaculty": 42904, + "AttributedString": 42905, + "ĠLooks": 42906, + "ĠRex": 42907, + "jk": 42908, + "ĠMIL": 42909, + "Ġbard": 42910, + ".Long": 42911, + "Ġlivest": 42912, + "Ġskal": 42913, + "icism": 42914, + "MAIN": 42915, + "Ġmucho": 42916, + "BODY": 42917, + "Ġese": 42918, + "ĉuse": 42919, + "Foot": 42920, + ".SQLException": 42921, + "Ġinheritance": 42922, + "received": 42923, + "Ġputas": 42924, + "edis": 42925, + "alsa": 42926, + "ĠErrorMessage": 42927, + "Booking": 42928, + "Ġtract": 42929, + "acz": 42930, + "ĠCant": 42931, + "_regex": 42932, + "Ġideological": 42933, + "Ġjihad": 42934, + "hos": 42935, + "/sys": 42936, + "colm": 42937, + "(pool": 42938, + "Ġestán": 42939, + "ĠPending": 42940, + "emás": 42941, + "Ġktóry": 42942, + "));ĊĊĊ": 42943, + "transactions": 42944, + "Ġwield": 42945, + "itere": 42946, + "erture": 42947, + "_ss": 42948, + "Ġstretching": 42949, + "Ġprisoner": 42950, + ".ReadAll": 42951, + "Ġbesch": 42952, + "--;čĊ": 42953, + "Ġcrisp": 42954, + "_SCAN": 42955, + "Ġae": 42956, + "Strict": 42957, + "ĠMinneapolis": 42958, + "ĠBoeing": 42959, + "aris": 42960, + "rek": 42961, + "_pipe": 42962, + "Ġpriests": 42963, + "(EIF": 42964, + "ehicles": 42965, + "ĠInteractive": 42966, + "between": 42967, + "ĉNullCheck": 42968, + "ĠBlair": 42969, + "ĠLt": 42970, + "_inline": 42971, + "ethyl": 42972, + "¼": 42973, + "_packages": 42974, + "Ġbarrels": 42975, + "_he": 42976, + "Ġregexp": 42977, + "_pts": 42978, + "_Handler": 42979, + "ingular": 42980, + "ĠNissan": 42981, + "ĠRanch": 42982, + "Ġperch": 42983, + "Unsupported": 42984, + "Smith": 42985, + "ĠLegends": 42986, + "Mi": 42987, + "Ġgf": 42988, + "steder": 42989, + "Ġacquiring": 42990, + "Ġsimulator": 42991, + "(),\"": 42992, + "receive": 42993, + "Ġinplace": 42994, + "ACTION": 42995, + "ĠWebDriver": 42996, + "filesystem": 42997, + "'+Ċ": 43009, + "Ġcredible": 43010, + "amat": 43011, + "playing": 43012, + ".setImageResource": 43013, + "quel": 43014, + "Ġpodr": 43015, + "geom": 43016, + "Ek": 43017, + "ĠQatar": 43018, + "Ġgeld": 43019, + "?',Ċ": 43020, + "Ġcyl": 43021, + "(ax": 43022, + "ĠWI": 43023, + "urally": 43024, + "ĠBrasil": 43025, + "Ġsenza": 43026, + "aley": 43027, + "onen": 43028, + "Ġbah": 43029, + "Ġmolecule": 43030, + "Rad": 43031, + "è¿°": 43032, + "ANCH": 43033, + "-background": 43034, + "-agent": 43035, + "Ġprolifer": 43036, + ":boolean": 43037, + "Ġtide": 43038, + "erializer": 43039, + "_;čĊ": 43040, + "Fee": 43041, + "**)": 43042, + "ergy": 43043, + "ĠHonor": 43044, + ".Logging": 43045, + "iris": 43046, + "Ġundermine": 43047, + "ĠDy": 43048, + "Ġtyr": 43049, + "Ġdeque": 43050, + "Ġdamer": 43051, + "([])Ċ": 43052, + ".layoutControlItem": 43053, + "peated": 43054, + "CAN": 43055, + "ragments": 43056, + "Land": 43057, + ")]);Ċ": 43058, + "ĠSah": 43059, + "ĠDECL": 43060, + "Within": 43061, + "ĠNamespace": 43062, + "another": 43063, + "sembling": 43064, + ".describe": 43065, + "Consum": 43066, + "ĠFear": 43067, + "given": 43068, + "Orange": 43069, + "This": 43093, + "ĠdataIndex": 43094, + "Ġprintable": 43095, + "ĠEyes": 43096, + "_targets": 43097, + "(Py": 43098, + ".over": 43099, + "Ġbru": 43100, + "ampton": 43101, + "Ġplaintiff": 43102, + ");Ċ": 43113, + "invest": 43114, + ".*ĊĊ": 43115, + "Ġtélé": 43116, + "Ġsuperf": 43117, + "Ġcascade": 43118, + "DTD": 43119, + "Ġvivid": 43120, + "Ġsubsidies": 43121, + "ĠHass": 43122, + "Ġcollaps": 43123, + "Ġceramic": 43124, + "{}\".": 43125, + "ĠLeakage": 43126, + "-trash": 43127, + "collapsed": 43128, + "-social": 43129, + "ĠChad": 43130, + "Ġinclined": 43131, + "Ġsto": 43132, + "Ġstoryboard": 43133, + ".payment": 43134, + "stackoverflow": 43135, + "ĠRaiders": 43136, + "Ġ#'": 43137, + "olicies": 43138, + "ìľ¼ë¡ľ": 43139, + "emap": 43140, + "Ġkj": 43141, + "Ġquota": 43142, + "ĠGardens": 43143, + "ë²Ī": 43144, + "ĠAngels": 43145, + "Ġoft": 43146, + "Ġlowercase": 43147, + "ĠiParam": 43148, + "Ġcheapest": 43149, + "unta": 43150, + "_pkt": 43151, + "icators": 43152, + "Ġleurs": 43153, + "Ġdecreases": 43154, + "ĉdefine": 43155, + "PREC": 43156, + "ammers": 43157, + "ĠPreparedStatement": 43158, + "(direction": 43159, + "Ġcrews": 43160, + "arked": 43161, + "ĠMemphis": 43162, + "ĠSell": 43163, + "GTK": 43164, + "Ġmaid": 43165, + ":disable": 43166, + "éĽĨ": 43167, + "ĠPf": 43168, + "Ġalbeit": 43169, + "openh": 43170, + "?>\">Ċ": 43171, + ".getSource": 43172, + "(scale": 43173, + "Du": 43174, + "ĠPIL": 43175, + "_refresh": 43176, + "Ġbets": 43177, + "(car": 43178, + "ĠVon": 43179, + "|--------------------------------------------------------------------------Ċ": 43180, + "ĠGrat": 43181, + "Much": 43182, + "(Dialog": 43183, + ".stopPropagation": 43184, + "Ġtek": 43185, + "Ġexits": 43186, + "'],$": 43187, + "ĠphoneNumber": 43188, + "ucs": 43189, + "ecimal": 43190, + "--------------": 43191, + "inp": 43192, + ".pojo": 43193, + "Ġcorpus": 43194, + "Ġpractitioners": 43195, + ".pic": 43196, + "\"testing": 43197, + "ĠstringBy": 43198, + ".NotNull": 43199, + "Ġrang": 43200, + ".Dynamic": 43201, + "_Render": 43202, + "аÑĤа": 43203, + "Waiting": 43204, + "ĠWik": 43205, + "Ġoverwhelmed": 43206, + "%\">": 43207, + "ĠAE": 43208, + "}}>Ċ": 43209, + "uw": 43210, + "_typ": 43211, + "Ġbuckets": 43212, + "Ġgreeting": 43213, + "Ġlaughter": 43214, + "Ġantagon": 43215, + "uggestion": 43216, + "-email": 43217, + "ĉtop": 43218, + "Ġeros": 43219, + "_tri": 43220, + "Ġissuing": 43221, + "Ġhá": 43222, + "Ġisolate": 43223, + "Overflow": 43224, + ",E": 43225, + "Ġnutritional": 43226, + "ĠAbbott": 43227, + "Ġnf": 43228, + ".touch": 43229, + ".fetchall": 43230, + "_zip": 43231, + "\")}Ċ": 43232, + "Ġamat": 43233, + "ĠCisco": 43234, + "ĠnÃ¥": 43235, + "PLEX": 43236, + "Ġsei": 43237, + "foto": 43238, + ".toJson": 43239, + "å¤ļ": 43240, + "ĠKlein": 43241, + "Ġlibc": 43242, + "Ġminers": 43243, + "å¢": 43244, + "-print": 43245, + "ĠPride": 43246, + "Todos": 43247, + "Ġmasked": 43248, + "ĠsetData": 43249, + "Ġtelefon": 43250, + "Ġunhappy": 43251, + "ĠTables": 43252, + "geb": 43253, + "(debug": 43254, + "_allowed": 43255, + "-access": 43256, + "Ġlogistics": 43257, + "Ġgems": 43258, + "ĠMature": 43259, + "Ġrsp": 43260, + "ĠAlle": 43261, + ".getBytes": 43262, + "\\web": 43263, + "ynchronized": 43264, + "Paragraph": 43265, + "Ġthrottle": 43266, + ".sqlite": 43267, + "consulta": 43268, + "ĠSeah": 43269, + "Ce": 43270, + "Ġsubmar": 43271, + "ERE": 43272, + "Vous": 43273, + "Ġreddit": 43274, + "Ġsqlalchemy": 43275, + "-mile": 43276, + "ocide": 43277, + "Pour": 43278, + "}}\">Ċ": 43279, + "stead": 43280, + "Ġ@(": 43281, + "Ġ[])": 43282, + "ĠAds": 43283, + "Ġoverload": 43284, + "ridden": 43285, + "ĠDesert": 43286, + "ĠWrap": 43287, + "ĠPortuguese": 43288, + "etz": 43289, + "ĉfirst": 43290, + "Ġmilestone": 43291, + "æĹł": 43292, + "ÑĥÑī": 43293, + "(success": 43294, + "\")Ċ": 43463, + "ĠDollar": 43464, + "Ġemoji": 43465, + "Carousel": 43466, + "-player": 43467, + "Ġadjusting": 43468, + "Ġjuga": 43469, + "allenges": 43470, + "gene": 43471, + "(bodyParser": 43472, + "lopedia": 43473, + "ĠBehind": 43474, + "Ġsleeves": 43475, + "Ġdragging": 43476, + "ĠChevrolet": 43477, + "Ġbiz": 43478, + "ivities": 43479, + "ĠFrequency": 43480, + ",char": 43481, + ".WHITE": 43482, + "_preview": 43483, + ")';Ċ": 43484, + "_ax": 43485, + "IONS": 43486, + ".cpu": 43487, + ".inputs": 43488, + "UBE": 43489, + "_feed": 43490, + "ĠSupplement": 43491, + "!).": 43492, + "esus": 43493, + "ĠUDP": 43494, + "Ġmicrophone": 43495, + "Ġconfirms": 43496, + ".isNotEmpty": 43497, + "\":\"\",Ċ": 43498, + "_SCREEN": 43499, + "ĉexpected": 43500, + "+-+-+-+-": 43501, + "ĠHait": 43502, + "fastcall": 43503, + "Ġdepict": 43504, + "vb": 43505, + "_picture": 43506, + "ĉdescription": 43507, + "ĠWife": 43508, + "uci": 43509, + "Ġvicious": 43510, + "ä»ĸ": 43511, + "ueba": 43512, + "ĠsetUser": 43513, + "ãģ¡": 43514, + "Ġdiving": 43515, + "Ġopera": 43516, + "usercontent": 43517, + "arah": 43518, + ")},": 43519, + "yun": 43520, + "velt": 43521, + "Ġuncovered": 43522, + "Ġhips": 43523, + "Ġoscill": 43524, + "Ġasserting": 43525, + "ĠXi": 43526, + ".restore": 43527, + "kea": 43528, + "Ġspelling": 43529, + "Ġderive": 43530, + "abwe": 43531, + "ĠDow": 43532, + ".setType": 43533, + "_vs": 43534, + "Ġcozy": 43535, + ".categories": 43536, + "Org": 43537, + "_mgr": 43538, + "Ġdungeon": 43539, + "collectionView": 43540, + "ĠBlank": 43541, + "acias": 43542, + "ää": 43543, + "_cleanup": 43544, + "_ACTIVITY": 43545, + "Ġtriangles": 43546, + ".MenuItem": 43547, + "Ġiphone": 43548, + "ĠWon": 43549, + "]]ĊĊ": 43550, + "ĠComparison": 43551, + ".Doc": 43552, + "Ġcanonical": 43553, + "ĠSudan": 43554, + "'){": 43555, + "UpInside": 43556, + "builtin": 43557, + "ENCY": 43558, + "xbe": 43559, + "Ġchuck": 43560, + "Ġcontradict": 43561, + "Ġnuestro": 43562, + "Ġarchitectural": 43563, + "ĠFib": 43564, + "Ġcompares": 43565, + "*k": 43566, + "Cfg": 43567, + "çĦ¡": 43568, + "nten": 43569, + "Matches": 43570, + "ĠDOWNLOAD": 43571, + "_HANDLER": 43572, + "management": 43573, + "[S": 43574, + "ENG": 43575, + "ÂĢÂ": 43576, + "fang": 43577, + "Ġslipped": 43578, + "ĠLanka": 43579, + "escaping": 43580, + "Ġtackles": 43581, + "ĠPedro": 43582, + ".Prop": 43583, + ".''": 43584, + ".Generated": 43585, + ".NewGuid": 43586, + "atrigesimal": 43587, + "illon": 43588, + "Ġstatistic": 43589, + "species": 43590, + "holding": 43591, + "Drupal": 43592, + "Ġfundamentally": 43593, + "Ġbondage": 43594, + "Ġresolutions": 43595, + "InlineData": 43596, + "\\Type": 43597, + "estion": 43598, + ".wrap": 43599, + "Ġwarriors": 43600, + "ĠLOCAL": 43601, + "Archive": 43602, + "Ġembraced": 43603, + "ủ": 43604, + ".Ver": 43605, + "ĠAffordable": 43606, + "olesale": 43607, + "ĠApplied": 43608, + "ĠConversion": 43609, + "mega": 43610, + "_cam": 43611, + "Ġceremon": 43612, + "aurus": 43613, + "ĠVolk": 43614, + ".opens": 43615, + "/about": 43616, + "ĠStd": 43617, + "journal": 43618, + "()){čĊ": 43619, + ",\"\\": 43620, + "(Arrays": 43621, + "ĠDense": 43622, + "aseña": 43623, + "änner": 43624, + "/stat": 43625, + "userData": 43626, + "Ġgerman": 43627, + "Ġtz": 43628, + "worthy": 43629, + "FormatException": 43630, + "pherd": 43631, + "Ġsmiles": 43632, + "ĠWhenever": 43633, + "(adapter": 43634, + ".badlogic": 43635, + "Ġbriefing": 43636, + ".GridColumn": 43637, + "-char": 43638, + "dimension": 43639, + "ĠCopper": 43640, + "Ġninth": 43641, + "Ġ'{{": 43642, + "Ġrav": 43643, + "_Table": 43644, + "Ġderivatives": 43645, + "ĠRaise": 43646, + "ĠFut": 43647, + "armor": 43648, + "-padding": 43649, + "Ġremin": 43650, + "ĉstyle": 43651, + "ĠMembership": 43652, + "Ġspreads": 43653, + "Ġgalleries": 43654, + "ĠClarke": 43655, + "Ġconception": 43656, + "minute": 43657, + "Ġabusive": 43658, + "_adj": 43659, + "Ġterrific": 43660, + "Ġovert": 43661, + "ourcing": 43662, + "Ġentrada": 43663, + "levels": 43664, + "Ġcritique": 43665, + "Ġrespects": 43666, + "ĠMMA": 43667, + "iene": 43668, + "Ġencaps": 43669, + "ĠRaymond": 43670, + "Divider": 43671, + "ivable": 43672, + "baz": 43673, + "Ġ@_;Ċ": 43674, + "ĠClaire": 43675, + "Ġurging": 43676, + "CEE": 43677, + "Ġtransformer": 43678, + "discord": 43679, + "ĠJourney": 43680, + "tos": 43681, + "Ġcompetitions": 43682, + "ĠOBJ": 43683, + "ĠBis": 43684, + "Ġrelaxation": 43685, + "idy": 43686, + "_INSTANCE": 43687, + "ĠPref": 43688, + "dados": 43689, + "iciencies": 43690, + "ĠMediaQuery": 43691, + "ĠCube": 43692, + "ĠStrange": 43693, + "gpu": 43694, + "(days": 43695, + "_InitStruct": 43696, + "Ġfingerprint": 43697, + "emat": 43698, + "ĠGecko": 43699, + "Ġrails": 43700, + "ĠLum": 43701, + "straction": 43702, + "igung": 43703, + "(movie": 43704, + "_dictionary": 43705, + "_interrupt": 43706, + "ĠQC": 43707, + "iked": 43708, + "appendChild": 43709, + "recipient": 43710, + "ré": 43711, + "Ve": 43712, + "Ġtowel": 43713, + ".lastIndexOf": 43714, + "Ġplacebo": 43715, + "ĠWie": 43716, + ".esp": 43717, + "(Debug": 43718, + "operative": 43719, + "Ġdeceased": 43720, + "&id": 43721, + "ĉmutex": 43722, + "elic": 43723, + "Ġbapt": 43724, + "ĉčĊčĊ": 43725, + "Ġfarther": 43726, + "Half": 43727, + ".disable": 43728, + ".menuStrip": 43729, + "leccion": 43730, + "ĠresultCode": 43731, + "Ġcans": 43732, + "-election": 43733, + "female": 43734, + "_FIX": 43735, + "ausible": 43736, + "ĠPOWER": 43737, + "Ġreconstruction": 43738, + "Ġscans": 43739, + ".XtraBars": 43740, + "âĢĺs": 43741, + "Removed": 43742, + "Ġparagraphs": 43743, + "_margin": 43744, + "Ġlymph": 43745, + "Ġbos": 43746, + "lington": 43747, + "ĠBaptist": 43748, + "Ġadvertisements": 43749, + "ĠManage": 43750, + "/yyyy": 43751, + "IOUS": 43752, + "ENCES": 43753, + "ĠFiction": 43754, + "ĉmenu": 43755, + "ĠFileOutputStream": 43756, + "ovan": 43757, + "ĠFeng": 43758, + "Ġskipping": 43759, + "getClass": 43760, + "anni": 43761, + "Ġrebounds": 43762, + "Ġpublicity": 43763, + "Ġingres": 43764, + "usement": 43765, + "Ġthoughtful": 43766, + ".Chart": 43767, + "Ġhatte": 43768, + "passport": 43769, + "Ġhooked": 43770, + "ĠLens": 43771, + "Ġflagship": 43772, + "Ġstip": 43773, + "ĠGEN": 43774, + "Ġclues": 43775, + "ipv": 43776, + "ĠRise": 43777, + "ĠGew": 43778, + "tablename": 43779, + "Ġforemost": 43780, + "_validate": 43781, + "_analysis": 43782, + "olla": 43783, + "Ġqualifications": 43784, + "Ġdistributions": 43785, + "ĠFlower": 43786, + "Ġtense": 43787, + "Ġthankful": 43788, + "Ġclutch": 43789, + "Ġunified": 43790, + "roads": 43791, + "Ġsiti": 43792, + "Ġstall": 43793, + "_PRIORITY": 43794, + "cstdlib": 43795, + "_USERNAME": 43796, + ".bytes": 43797, + "?page": 43798, + "ermalink": 43799, + "ĠVeget": 43800, + "/vnd": 43801, + "-author": 43802, + ".NONE": 43803, + "ĠConcurrent": 43804, + "ĠCry": 43805, + "Ġstarters": 43806, + "ĠInteraction": 43807, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 43808, + "ĠLEVEL": 43809, + "Ell": 43810, + "ĠcomboBox": 43811, + "ĠTheresa": 43812, + "tek": 43813, + "_Handle": 43814, + "Ġaby": 43815, + ".gdx": 43816, + ",end": 43817, + "(Local": 43818, + "Ol": 43819, + "knife": 43820, + "arial": 43821, + "ĠHoff": 43822, + "Ġprostituerade": 43823, + "Doctor": 43824, + "Instances": 43825, + ".SetValue": 43826, + "ĉfrom": 43827, + "Ġluxurious": 43828, + "Indent": 43829, + "Allocator": 43830, + "_DRAW": 43831, + "(\",\",": 43832, + "ĠFrances": 43833, + "ĠgroupBox": 43834, + "(schema": 43835, + "Printf": 43836, + "ORIES": 43837, + "-gradient": 43838, + "Ġreput": 43839, + "arin": 43840, + "_DONE": 43841, + "incre": 43842, + "ignty": 43843, + "Ġexert": 43844, + "Ġ-.": 43845, + "/App": 43846, + "-through": 43847, + "Ġdeclining": 43848, + "Ġdessert": 43849, + "Ġincumb": 43850, + "Ġdesignation": 43851, + ".PORT": 43852, + ",strong": 43853, + "Ġsandbox": 43854, + "Ġwines": 43855, + "ĠPav": 43856, + "$str": 43857, + "askell": 43858, + "Ġhö": 43859, + "ĠPY": 43860, + "GetInstance": 43861, + "TextInput": 43862, + "gameObject": 43863, + "/events": 43864, + "createdAt": 43865, + "ĠlocalVar": 43866, + "ĠWHITE": 43867, + "pered": 43868, + "ilege": 43869, + "efficient": 43870, + ",color": 43871, + "cate": 43872, + "ĠCafe": 43873, + "Ġsimilarities": 43874, + "Ġpumps": 43875, + "ĠHungary": 43876, + ".Username": 43877, + "Ġskate": 43878, + "Ġtouchdowns": 43879, + "Ġaccelerate": 43880, + "ĠHelen": 43881, + "OMEM": 43882, + "ĠKun": 43883, + "_vol": 43884, + "ĠfindAll": 43885, + "ĠMenschen": 43886, + "ahead": 43887, + ");\"": 43888, + "kommen": 43889, + "Ġpossessed": 43890, + ".argmax": 43891, + ".transition": 43892, + "ARP": 43893, + "OLUME": 43894, + "(script": 43895, + "ĠÐĺ": 43896, + "ĠFinding": 43897, + "onces": 43898, + "Io": 43899, + "Bold": 43900, + "Ġrenewal": 43901, + "_DIALOG": 43902, + "Ġdisreg": 43903, + "INTERN": 43904, + "Ġtoute": 43905, + "Ġelectr": 43906, + "ĠGross": 43907, + "ĉtrue": 43908, + ".Fields": 43909, + "ĠWIDTH": 43910, + "ĠDent": 43911, + "ĠÃģ": 43912, + "NSNotification": 43913, + "Ġaos": 43914, + "Ġmelee": 43915, + ".Validation": 43916, + "ĠDEC": 43917, + "-dependent": 43918, + "Ġsuic": 43919, + "Traits": 43920, + "$message": 43921, + "ĠDear": 43922, + "ĉFILE": 43923, + "languages": 43924, + ".Prot": 43925, + ".addr": 43926, + "-generation": 43927, + "ICON": 43928, + "Ġtransplant": 43929, + "-description": 43930, + "Ġchasing": 43931, + "Ġchees": 43932, + "Ġ}*/Ċ": 43933, + "Trad": 43934, + "queries": 43935, + "/widgets": 43936, + "subpackage": 43937, + "Ġespec": 43938, + "Ġcracked": 43939, + "Ġcompetitor": 43940, + "Purchase": 43941, + "-team": 43942, + "olecular": 43943, + "orThunk": 43944, + "&P": 43945, + "Ġrelent": 43946, + "/#{": 43947, + "ĠproductId": 43948, + "Ġè¾": 43949, + "ĠLav": 43950, + "ĠAlter": 43951, + ".Mode": 43952, + "ADIO": 43953, + "grp": 43954, + "æ·»åĬł": 43955, + "Quit": 43956, + "Ġdepths": 43957, + "-category": 43958, + "ĠDATABASE": 43959, + "SPELL": 43960, + "ĠFalcon": 43961, + "ĠQStringList": 43962, + "Ġ''.": 43963, + "ĠInstitution": 43964, + "damage": 43965, + "azor": 43966, + "belongsTo": 43967, + "verages": 43968, + "ĠNONE": 43969, + "ippets": 43970, + ",\\Ċ": 43971, + "Ġfootprint": 43972, + "_archive": 43973, + "nak": 43974, + ".getField": 43975, + "ĠReflection": 43976, + "Ġ']": 43977, + "ĠHBO": 43978, + "_discount": 43979, + "Ġincest": 43980, + "ĠDodge": 43981, + "ĠWade": 43982, + ".NO": 43983, + "\"encoding": 43984, + "ĠBlockchain": 43985, + "Ġlawsuits": 43986, + "ĠMaint": 43987, + "chten": 43988, + "Ġétait": 43989, + "Ġktóre": 43990, + "_ctl": 43991, + "(timer": 43992, + "Battle": 43993, + "izo": 43994, + "ayed": 43995, + "IOR": 43996, + "ĠGlasgow": 43997, + "Ġsynth": 43998, + "_logs": 43999, + ".pose": 44000, + "_AdjustorThunk": 44001, + "((&": 44002, + "Ġunsure": 44003, + "ystate": 44004, + "íķĺëĬĶ": 44005, + "OULD": 44006, + ".ng": 44007, + "Ġdefaultdict": 44008, + "workspace": 44009, + "Ġselective": 44010, + "PickerController": 44011, + "YNAMIC": 44012, + ".methods": 44013, + "Ġpathways": 44014, + "ĠFew": 44015, + "KG": 44016, + "CRYPT": 44017, + "following": 44018, + "ĠDLC": 44019, + "ĠSara": 44020, + "Ġpreset": 44021, + "estructor": 44022, + "ĠKurt": 44023, + "Ġairplane": 44024, + "Ġomp": 44025, + "ĠParents": 44026, + "ĠMartinez": 44027, + ".complete": 44028, + "Ġbroadly": 44029, + "Ġscare": 44030, + "ĠMé": 44031, + "Ġelimination": 44032, + "Ġpoured": 44033, + "/sw": 44034, + "Ġcomun": 44035, + "Ġmasc": 44036, + "ĠOrganic": 44037, + "ĠStringUtils": 44038, + "ilateral": 44039, + "Ġreluctant": 44040, + "-age": 44041, + "Ġnz": 44042, + ".\"\\": 44043, + "Ġpastor": 44044, + "alez": 44045, + "Ġefect": 44046, + "prov": 44047, + "/init": 44048, + "Ġpenn": 44049, + "unds": 44050, + "Ġssize": 44051, + "ĠProj": 44052, + "basename": 44053, + "Ġshells": 44054, + "ĠNeck": 44055, + "ĠEnforcement": 44056, + "vided": 44057, + "stown": 44058, + "Sphere": 44059, + "$r": 44060, + "ussen": 44061, + "afil": 44062, + "ĠTelegram": 44063, + "Ġanalytical": 44064, + "нÑĭе": 44065, + "usually": 44066, + "xn": 44067, + "Ġhistorian": 44068, + "ĠGregory": 44069, + "olph": 44070, + "ĠUna": 44071, + "Ġcontributes": 44072, + "%-": 44073, + "antiago": 44074, + "ÑĢед": 44075, + ".region": 44076, + "Ġabrupt": 44077, + "ĠUnsupportedOperationException": 44078, + "ĠTASK": 44079, + "_finish": 44080, + "Ġnotorious": 44081, + "ĠVs": 44082, + "ĠMQ": 44083, + "Ġsunset": 44084, + "Ġunacceptable": 44085, + "arcer": 44086, + "Ġillumin": 44087, + "ĠOrb": 44088, + "Ġbh": 44089, + "Este": 44090, + "_dispatch": 44091, + "Ġripped": 44092, + "Ġtoujours": 44093, + "ĠParcel": 44094, + "_ll": 44095, + ".userName": 44096, + ".classes": 44097, + "SOURCE": 44098, + "(Number": 44099, + "елÑı": 44100, + "Ġheadphones": 44101, + "(side": 44102, + "constitution": 44103, + "annah": 44104, + "čĊĠĠĠĠĠĠĠĠčĊ": 44105, + "Ġcliff": 44106, + "-ref": 44107, + "Ġmostrar": 44108, + "ĠPowell": 44109, + "+y": 44110, + "ĠBG": 44111, + "_fragment": 44112, + ".Port": 44113, + "Ġrealizing": 44114, + "paramref": 44115, + "Ġhometown": 44116, + "@Table": 44117, + "+\"--}}Ċ": 44296, + "French": 44297, + "EntityManager": 44298, + "ĠPlain": 44299, + "////////////////////////////////////////////////////////////////////": 44300, + "³": 44301, + "(RE": 44302, + "capt": 44303, + "Ġorganisms": 44304, + "Ġjets": 44305, + "olocation": 44306, + "ĠAppRoutingModule": 44307, + "Ġglorious": 44308, + "æľį": 44309, + "Ġdiscarded": 44310, + "ĉĉĉĉĠĠĠĠĠ": 44311, + "ĠArnold": 44312, + "lug": 44313, + "Ġparl": 44314, + "Ġhormones": 44315, + "Ġmah": 44316, + "ĠSonic": 44317, + "Ġorganizers": 44318, + "_PLATFORM": 44319, + ".inv": 44320, + "Ġchord": 44321, + "ventional": 44322, + "ĉof": 44323, + "Episode": 44324, + ".Enum": 44325, + "unkt": 44326, + "ĠDh": 44327, + "ĠJared": 44328, + "ĠNak": 44329, + "Ġintends": 44330, + "Endian": 44331, + "Ġaustralia": 44332, + "_cv": 44333, + "(resolve": 44334, + "Ġclinics": 44335, + "liked": 44336, + "ASHINGTON": 44337, + "inha": 44338, + "'*": 44339, + "ĠNP": 44340, + "_beh": 44341, + "Ġhf": 44342, + "Ġwür": 44343, + "categoria": 44344, + "$form": 44345, + "Ġsubway": 44346, + "ĠisActive": 44347, + "popular": 44348, + "Cour": 44349, + "Ġcooldown": 44350, + "Ġainsi": 44351, + "ĠGLuint": 44352, + "ereal": 44353, + "ĠarrayOf": 44354, + "Ġhatch": 44355, + "==========": 44356, + "resses": 44357, + "_PP": 44358, + ".^": 44359, + "_decay": 44360, + "ĠBless": 44361, + "metrics": 44362, + "ĠCOPYING": 44363, + "ĠDumpster": 44364, + "ĠJosé": 44365, + "ĠDesigns": 44366, + "<": 44369, + "Ġ\"}Ċ": 44370, + "timezone": 44371, + "Ġeer": 44372, + "maxcdn": 44373, + "ĠESC": 44374, + "igaret": 44375, + "_connected": 44376, + "_reverse": 44377, + "Ġquestionable": 44378, + "ĠUSC": 44379, + "Ġtutti": 44380, + "Ġdropout": 44381, + "ĠActivities": 44382, + "ĠWinds": 44383, + "')));Ċ": 44384, + "Ġcongest": 44385, + "ģı": 44386, + "Ġprolonged": 44387, + "è¿Ļ": 44388, + "ĠCrossAxisAlignment": 44389, + "LEEP": 44390, + "ĠVALID": 44391, + "ĠGaz": 44392, + "Ġdependence": 44393, + "ĠPrix": 44394, + ".CompilerServices": 44395, + "jump": 44396, + "Ġstrat": 44397, + "circ": 44398, + "ĠCUSTOM": 44399, + "xaa": 44400, + "Ġbmp": 44401, + "Ġbureau": 44402, + "Ġwaren": 44403, + "NX": 44404, + "(Window": 44405, + "ĠChristie": 44406, + "_FE": 44407, + "Ġtn": 44408, + "ĠOmega": 44409, + "communications": 44410, + "HomePage": 44411, + "completion": 44412, + "Ġsupplying": 44413, + "YPES": 44414, + "ável": 44415, + "åĪ¶": 44416, + "(click": 44417, + "\\Contracts": 44418, + "/questions": 44419, + "Ġez": 44420, + "AMS": 44421, + ".mesh": 44422, + "Ġ'\\Ċ": 44473, + "Robot": 44474, + "JsonObject": 44475, + "ĠDF": 44476, + "ĠProcessor": 44477, + "_should": 44478, + ".protobuf": 44479, + "-users": 44480, + "Ġembry": 44481, + "FONT": 44482, + "Ġstartups": 44483, + "ĠDataSource": 44484, + ")#": 44485, + "uros": 44486, + "_Color": 44487, + "Ġstandalone": 44488, + "}[": 44489, + "jd": 44490, + "Ġforgive": 44491, + "Ġngx": 44492, + "ĠGenerally": 44493, + "Ġconfigurable": 44494, + "/order": 44495, + "Ġvas": 44496, + "')\";Ċ": 44497, + "ĠRR": 44498, + "ĠTroy": 44499, + "Ġcompromised": 44500, + "ĠSwan": 44501, + "intendent": 44502, + "Central": 44503, + "_keeper": 44504, + "Ġarquivo": 44505, + "ĠReadOnly": 44506, + "_curve": 44507, + "kv": 44508, + "entin": 44509, + "è±": 44510, + "ĠEy": 44511, + ".imread": 44512, + "ĠPam": 44513, + "iffe": 44514, + "ativity": 44515, + "xbc": 44516, + "Ġgrim": 44517, + "-filled": 44518, + "namese": 44519, + "']:": 44520, + "Ġaur": 44521, + "ĠGibson": 44522, + ".MouseEvent": 44523, + "Ġlado": 44524, + "avadoc": 44525, + "Ġfamil": 44526, + "ĠModer": 44527, + "fps": 44528, + "ãĢĢãĢĢ": 44529, + "-example": 44530, + "ĠAlzheimer": 44531, + "ĠUtf": 44532, + "_arguments": 44533, + "Conclusion": 44534, + "textContent": 44535, + "remaining": 44536, + "Ġinterrupts": 44537, + "ĠBackup": 44538, + "ĠMong": 44539, + "Ġreceptors": 44540, + "histor": 44541, + ".coroutines": 44542, + "Ġshouted": 44543, + "Alarm": 44544, + "Ġcombust": 44545, + "Ġgrote": 44546, + "ultural": 44547, + "(ids": 44548, + "--------------------------------------------------------------------------------": 44549, + "iplinary": 44550, + "Opts": 44551, + "ĠYale": 44552, + "localStorage": 44553, + "Ġequival": 44554, + "ĠFleet": 44555, + "\\b": 44556, + "*pi": 44557, + "ĠQLabel": 44558, + "æ¡": 44559, + "Ġvx": 44560, + "ĠACL": 44561, + "Ġsucesso": 44562, + "Ġperc": 44563, + "ĠNotre": 44564, + "Ġanarch": 44565, + "Ring": 44566, + "spb": 44567, + "Ġstrpos": 44568, + "stores": 44569, + "ĠMaple": 44570, + "(MainActivity": 44571, + "(\"\"))": 44572, + "ĠviewHolder": 44573, + "Quad": 44574, + "Ġigual": 44575, + "orsche": 44576, + ".margin": 44577, + "Ġindie": 44578, + "Ġfranc": 44579, + "ĠFormBuilder": 44580, + "ĠParticip": 44581, + ".flash": 44582, + "Ġstorms": 44583, + "Ult": 44584, + "Ġfen": 44585, + "[new": 44586, + "Ever": 44587, + "=\"Ċ": 44588, + "Ġlocalized": 44589, + "_follow": 44590, + "Ġnave": 44591, + "Ġdominance": 44592, + "(tile": 44593, + "Journal": 44594, + "ĠVC": 44595, + "Ġpenetration": 44596, + "ï¼ķ": 44597, + "Ġcompartment": 44598, + "Ġbids": 44599, + "Formatted": 44600, + "******/ĊĊ": 44601, + "(city": 44602, + "âĢĶit": 44603, + "[C": 44604, + "ĠuseCallback": 44605, + "aub": 44606, + ")?.": 44607, + "ĠVAR": 44608, + "ĠSebastian": 44609, + "ĠMoss": 44610, + "Ġabundant": 44611, + "Greg": 44612, + "ÑĤа": 44613, + "_ci": 44614, + "Ġbibli": 44615, + "CRM": 44616, + "ĠAttempt": 44617, + "isme": 44618, + "dash": 44619, + "ãĢİ": 44620, + "_mu": 44621, + ".FormattingEnabled": 44622, + "Indeed": 44623, + "-direct": 44624, + "Ġsucking": 44625, + "Ġpne": 44626, + "ocabulary": 44627, + "ĠPackers": 44628, + ".Navigation": 44629, + "Ġpied": 44630, + "cribing": 44631, + "ĠStuart": 44632, + ".ToDouble": 44633, + "ĠSecondary": 44634, + "Saving": 44635, + "ĠDut": 44636, + "ĠMadd": 44637, + "Magic": 44638, + ",H": 44639, + ".documentElement": 44640, + "ĠBST": 44641, + "Ġdiffers": 44642, + "Ġmoreover": 44643, + "_nd": 44644, + "SEARCH": 44645, + "пÑĢав": 44646, + "æ´": 44647, + "toMatch": 44648, + "Ġdecreasing": 44649, + "-member": 44650, + "ampus": 44651, + "(boost": 44652, + "Daily": 44653, + "DataGridView": 44654, + "ĠHttpContext": 44655, + "Ġhipp": 44656, + "_workers": 44657, + "-language": 44658, + "éĵ": 44659, + "Ġconsisted": 44660, + "athing": 44661, + "ĠMercury": 44662, + "$content": 44663, + "Ġpracticed": 44664, + "ĠModules": 44665, + "_DAY": 44666, + "Ġweaknesses": 44667, + "ĠLodge": 44668, + "Ġnar": 44669, + "ĠMate": 44670, + "Ġjp": 44671, + "ĠHttpHeaders": 44672, + "Ġsmo": 44673, + "ĠTOKEN": 44674, + "])(": 44675, + "Ġaqui": 44676, + "swagen": 44677, + "Ġsrv": 44678, + "ĉans": 44679, + "Around": 44680, + "ĠManuel": 44681, + "Ġfictional": 44682, + "ĠIMG": 44683, + "Ġ.'": 44684, + "ĠBerry": 44685, + "Ġwallpaper": 44686, + "sexual": 44687, + "iero": 44688, + "ĠçļĦ": 44689, + "ìĨĮ": 44690, + "BackingField": 44691, + "ĠAdrian": 44692, + "BASEPATH": 44693, + "Ġrepeats": 44694, + "Ġblues": 44695, + "Ġunpredict": 44696, + "_coll": 44697, + "stacle": 44698, + "ĠTumblr": 44699, + "ĠElf": 44700, + "Ġassurance": 44701, + "Ġcensus": 44702, + "ĠIMPORT": 44703, + "ENDER": 44704, + "anos": 44705, + "Ġ=(": 44706, + "ĠEllis": 44707, + "\"ĊĊĊĊ": 44708, + ".win": 44709, + "ĠAbove": 44710, + "alon": 44711, + "_tick": 44712, + "Ġrepresentations": 44713, + "Ġæķ": 44714, + "wid": 44715, + "ĠArms": 44716, + "Lista": 44717, + "_failure": 44718, + "_cm": 44719, + ".FlatAppearance": 44720, + "Ġthrone": 44721, + "Patch": 44722, + "ĠVoy": 44723, + "engl": 44724, + "Ġnegotiating": 44725, + ">`": 44726, + "Ġshoots": 44727, + "ĠFPS": 44728, + ".Year": 44729, + "ĠKiss": 44730, + "ención": 44731, + "reeting": 44732, + "FromFile": 44733, + "Ġresignation": 44734, + "Ø·": 44735, + "Ġtwins": 44736, + "ượ": 44737, + "Ġgebru": 44738, + ".getContent": 44739, + ".Tree": 44740, + "ĠEmployees": 44741, + "ĠFIFA": 44742, + "Ġcertainty": 44743, + "(Cl": 44744, + "Ġtotals": 44745, + "editable": 44746, + "à¥Ģ": 44747, + ".Reporting": 44748, + "Mas": 44749, + "quiet": 44750, + ".rules": 44751, + "ĠVO": 44752, + "conexion": 44753, + ",K": 44754, + "Ġallocator": 44755, + "ĠPowder": 44756, + "\\Repository": 44757, + "Beat": 44758, + "_tipo": 44759, + "Ġ['',": 44760, + "_INTR": 44761, + "Ġ<<<": 44762, + "\");čĊ": 44791, + "dropIfExists": 44792, + "ĠBeg": 44793, + "_HAL": 44794, + "ĠcrossAxisAlignment": 44795, + "ĠEvidence": 44796, + "Ġpeculiar": 44797, + "Ġinstitute": 44798, + "veis": 44799, + "Ġfft": 44800, + "Ãģ": 44801, + "Ġzoekt": 44802, + "analy": 44803, + "ĠHomeland": 44804, + "Ġpenetr": 44805, + "uddenly": 44806, + "ĉelement": 44807, + "ĠBren": 44808, + "ĠTrudeau": 44809, + "ĠCuban": 44810, + "jam": 44811, + "uslim": 44812, + "_ev": 44813, + "Ġstems": 44814, + "}%": 44815, + "Ŀå§ĭ": 44816, + "Ġbranding": 44817, + "Ġcorrespondence": 44818, + ".jquery": 44819, + "¢åįķ": 44820, + "ĠReads": 44821, + "(HttpStatusCode": 44822, + "assin": 44823, + "(slot": 44824, + "ĠGraduate": 44825, + "///<": 44826, + "Ġinformations": 44827, + "ENABLE": 44828, + "Ġpuis": 44829, + "Ġfinder": 44830, + "ĠBris": 44831, + "Ġnettsteder": 44832, + "_mid": 44833, + "Ġogs": 44834, + "ĠSterling": 44835, + "Ġarrog": 44836, + "strftime": 44837, + "|ĊĊ": 44838, + "Ġvox": 44839, + "ĠRegardless": 44840, + "Ġeso": 44841, + "ĠComfort": 44842, + ".BooleanField": 44843, + "Ġuh": 44844, + "ACY": 44845, + "Ġsqueez": 44846, + "ĠVic": 44847, + "contro": 44848, + ".lo": 44849, + "Ġire": 44850, + "ĠComedy": 44851, + "ë¶": 44852, + "Ġoriginated": 44853, + "Ġshipment": 44854, + "|max": 44855, + "_guid": 44856, + "levation": 44857, + "наÑı": 44858, + "(undefined": 44859, + "ĠDDR": 44860, + "Ġshootings": 44861, + "ĠLatino": 44862, + "ENDOR": 44863, + "Ġaveraging": 44864, + "Ġgreeted": 44865, + "Ġtheaters": 44866, + "ое": 44867, + "ĠdB": 44868, + "Ġgst": 44869, + "Ġdefinite": 44870, + ".Storage": 44871, + ".her": 44872, + "Ġafore": 44873, + "ĠReality": 44874, + "ĠGods": 44875, + "versed": 44876, + "Ġhandsome": 44877, + "Ġexcluding": 44878, + "(ad": 44879, + "Quotes": 44880, + "ĠScheme": 44881, + "?q": 44882, + "ĠTamil": 44883, + "Ticks": 44884, + "Ġpest": 44885, + "'n": 44886, + "Ġpornography": 44887, + "_modal": 44888, + "Ġ----------": 44889, + "Ġdisposable": 44890, + "FREE": 44891, + "Ġshark": 44892, + "CHE": 44893, + "Ġdepicted": 44894, + "Ġdemonstrations": 44895, + "ĠKilled": 44896, + "ĠRULE": 44897, + "Ġobsessed": 44898, + "Ġsimplified": 44899, + "Postal": 44900, + "Ġconceptual": 44901, + "Ġpst": 44902, + "Las": 44903, + "_PROJECT": 44904, + "ucceeded": 44905, + "olu": 44906, + "ÄŁi": 44907, + "Ġpersonalities": 44908, + "Ġreshape": 44909, + "Ġenclosed": 44910, + "ĉptr": 44911, + "Ġtutorials": 44912, + "Ġexploded": 44913, + "_DIRECTORY": 44914, + "åĨħ容": 44915, + "Ġcanon": 44916, + "Ġrecognise": 44917, + "PAD": 44918, + "ĠApprox": 44919, + "ĠRestore": 44920, + "ĠImportant": 44921, + "Ġheavier": 44922, + ".Sequential": 44923, + "Earth": 44924, + "ĠMilk": 44925, + ".setRequest": 44926, + ".tem": 44927, + "Ġreconstruct": 44928, + "Ġskeptical": 44929, + "_Private": 44930, + "BUF": 44931, + "qua": 44932, + ":a": 44933, + "Ġsek": 44934, + "Ġdwell": 44935, + "ossa": 44936, + "Ġrewarded": 44937, + "ий": 44938, + "(topic": 44939, + "_partition": 44940, + "Ġ__________________": 44941, + "Keywords": 44942, + "ĠFranco": 44943, + "Lite": 44944, + "Ġnaken": 44945, + "Ġза": 44946, + "OBJECT": 44947, + "Ġcrafts": 44948, + "ĠSwap": 44949, + ".Xna": 44950, + ".Connect": 44951, + "Ġbalcony": 44952, + "(real": 44953, + "ĠBarnes": 44954, + "bir": 44955, + "ĠTwenty": 44956, + "ayan": 44957, + "atars": 44958, + "ĠPropel": 44959, + "ĠIhnen": 44960, + "Upgrade": 44961, + "Ġcurb": 44962, + "-second": 44963, + "Ġneph": 44964, + ".pres": 44965, + "ìŀħ": 44966, + ".seq": 44967, + "Ġpadded": 44968, + "\"?": 44969, + "jl": 44970, + "ãĥ¬": 44971, + "')a": 44975, + "Coordinates": 44976, + "Ġenacted": 44977, + "ENTS": 44978, + "Ġlac": 44979, + ".final": 44980, + "ĠPhpStorm": 44981, + "called": 44982, + "Ġinquiries": 44983, + ".middleware": 44984, + "ĠDowntown": 44985, + "/';Ċ": 44986, + "Ġkilomet": 44987, + "accel": 44988, + "Ġquien": 44989, + "wstring": 44990, + "setData": 44991, + "Ġmanera": 44992, + "Ġmodular": 44993, + "rimp": 44994, + "Ġtariffs": 44995, + "âĢĻil": 44996, + "_THROW": 44997, + "/color": 44998, + "ĠHTMLElement": 44999, + "Ġcarro": 45000, + "Ġprere": 45001, + "Ġplotting": 45002, + "ĠPositive": 45003, + "ĠMachines": 45004, + "OTES": 45005, + "Ỽ": 45006, + "pleasant": 45007, + "Ġalte": 45008, + "Ġainda": 45009, + "these": 45010, + "Ġcors": 45011, + "ipay": 45012, + "ĠAdvisory": 45013, + "ĠRubio": 45014, + "jq": 45015, + "Ġlimestone": 45016, + "Ġdetached": 45017, + "设置": 45018, + "tenant": 45019, + "ĠDepth": 45020, + "alore": 45021, + "ĠÑģÑĤÑĢок": 45022, + "ĠFORE": 45023, + "ĠLay": 45024, + "presentation": 45025, + ")');Ċ": 45026, + ".subplots": 45027, + "Ïĥ": 45028, + "NOW": 45029, + "Gar": 45030, + "handles": 45031, + "abra": 45032, + "puties": 45033, + "ĠElectrical": 45034, + "Middle": 45035, + "ropic": 45036, + "ĠJD": 45037, + "ĠDyn": 45038, + "ĠBristol": 45039, + "ĠMcCarthy": 45040, + "Ġstriker": 45041, + "Ġenumerable": 45042, + "ĠEvan": 45043, + ".defaults": 45044, + "quences": 45045, + ")||": 45046, + "ĉtoken": 45047, + "âĹı": 45048, + "-dropdown": 45049, + "STORE": 45050, + "ĠGraphic": 45051, + "(pp": 45052, + "Expl": 45053, + "Ġupwards": 45054, + "ĠDistributed": 45055, + "ĠWEB": 45056, + "Jer": 45057, + "isNaN": 45058, + "çĶŁæĪIJ": 45059, + ">R": 45060, + "üssen": 45061, + "efs": 45062, + "Ġuncover": 45063, + "Ġlud": 45064, + ".calculate": 45065, + "Ġintptr": 45066, + "Ġmidfielder": 45067, + ".Headers": 45068, + "Ġmf": 45069, + "eref": 45070, + ".Metro": 45071, + "ĠSpeaking": 45072, + ":b": 45073, + "Ġcryptocurrencies": 45074, + "Ġdemons": 45075, + "ĉEXPECT": 45076, + "Ġwicked": 45077, + "youtube": 45078, + ":Int": 45079, + "ĠHindi": 45080, + "ĠCAT": 45081, + "Ġع": 45082, + "rar": 45083, + "omore": 45084, + "/per": 45085, + "/license": 45086, + "Ġreim": 45087, + "Ġawaiting": 45088, + "Ġlethal": 45089, + "ĠEF": 45090, + "rounded": 45091, + "ĠPlatinum": 45092, + "ĠвÑģе": 45093, + ".coords": 45094, + ".Device": 45095, + "/item": 45096, + "ĠWenn": 45097, + "compileComponents": 45098, + "ĠKinder": 45099, + ".removeItem": 45100, + "Ġanda": 45101, + "bnb": 45102, + "Ġpra": 45103, + "(transaction": 45104, + "Ġembarrassing": 45105, + "ĉBOOL": 45106, + ".contentView": 45107, + "Ġeventdata": 45108, + "atore": 45109, + "ĠprovidedIn": 45110, + "irma": 45111, + "Ġzona": 45112, + "_HW": 45113, + "æĻ": 45114, + "Ġstove": 45115, + "Ġcounterpart": 45116, + "_Product": 45117, + "_MANAGER": 45118, + "Ġinfring": 45119, + "ĠERA": 45120, + "_party": 45121, + "Ñij": 45122, + "Ġinici": 45123, + "_Request": 45124, + "Ġmiracle": 45125, + "ĠcancelButton": 45126, + "Spy": 45127, + "ató": 45128, + "Ġpolish": 45129, + "ĠNicole": 45130, + ".displayName": 45131, + "\\Requests": 45132, + "ĠuseHistory": 45133, + "RouterModule": 45134, + "Ġstared": 45135, + "IDER": 45136, + "ÑĥнкÑĨи": 45137, + "Ġnota": 45138, + "$arr": 45139, + "pecified": 45140, + "Ġtopp": 45141, + "_DRIVER": 45142, + "/ng": 45143, + "åł": 45144, + "_tm": 45145, + "%timeout": 45146, + "\"": 45588, + "tlement": 45589, + "$(\"": 45590, + "FromString": 45591, + "ĠBild": 45592, + "Ġconventions": 45593, + "_native": 45594, + "ĠInspector": 45595, + "ĠPist": 45596, + "ubar": 45597, + "Ġregs": 45598, + "ĠPilot": 45599, + "Thus": 45600, + ">'+": 45601, + "Ġcela": 45602, + ".news": 45603, + "(Product": 45604, + "Living": 45605, + "Russia": 45606, + "Ġfacet": 45607, + "etical": 45608, + "Ġ['$": 45609, + "/[": 45610, + "ĠDire": 45611, + "Ġgases": 45612, + "ĠINFORMATION": 45613, + "ĠEat": 45614, + "ĠForums": 45615, + "ĠCharacters": 45616, + "_met": 45617, + "Ġìĭľ": 45618, + "Ġkings": 45619, + "achie": 45620, + "ĠLambda": 45621, + "Ġtimers": 45622, + "ĠLighting": 45623, + "ĠCasey": 45624, + "addir": 45625, + "andex": 45626, + ".answer": 45627, + "ĠHip": 45628, + "ĠPrincip": 45629, + "StartDate": 45630, + "ĠãĢĮ": 45631, + "tres": 45632, + "Ġ&#": 45633, + ".MaxValue": 45634, + "ĠProblems": 45635, + "Ġlatex": 45636, + "OfClass": 45637, + "ĠLynn": 45638, + "//'": 45639, + "Ġvoyage": 45640, + "Ġshuttle": 45641, + "ĠRoller": 45642, + "ĠRuntimeError": 45643, + "uya": 45644, + "Dic": 45645, + "ĉbuilder": 45646, + "Ġbullying": 45647, + "Ġsimplest": 45648, + ".called": 45649, + "ĠLR": 45650, + "Ġmorality": 45651, + "Ġsturdy": 45652, + "tracking": 45653, + ".swagger": 45654, + "_BIND": 45655, + "ITOR": 45656, + "-urlencoded": 45657, + "ĠÑħ": 45658, + "ĠTrinity": 45659, + "Ġtraps": 45660, + "Ġ|-": 45661, + "ĠsetText": 45662, + "Ġbargain": 45663, + "Ġbrakes": 45664, + ".getCode": 45665, + "Ġmigrate": 45666, + "Ġribbon": 45667, + ")return": 45668, + "Ġcharger": 45669, + "acom": 45670, + "ADIUS": 45671, + "ĠAmbassador": 45672, + "-after": 45673, + "Ġanni": 45674, + "ĉspin": 45675, + "Concept": 45676, + "ĠHenderson": 45677, + "ĠHOST": 45678, + ".rank": 45679, + "ĠNortheast": 45680, + "Ġberlin": 45681, + "Ġrequis": 45682, + ".feed": 45683, + "ĠsourceMapping": 45684, + "ĠRencontre": 45685, + ".ajax": 45686, + "nestjs": 45687, + "Ġtrek": 45688, + "ĠNacional": 45689, + "Ġ&[": 45690, + "Ġpayable": 45691, + "ortex": 45692, + "Ġdept": 45693, + "fieldName": 45694, + "Ġcompletes": 45695, + "ĠRVA": 45696, + "Ġonions": 45697, + "alignment": 45698, + "Formats": 45699, + "Ġ'{$": 45700, + "HashSet": 45701, + "ĠBod": 45702, + ".InvariantCulture": 45703, + "Ġsettlements": 45704, + "Ġhydr": 45705, + ".updated": 45706, + "venth": 45707, + "(seconds": 45708, + "=\"/\"": 45709, + "Ġwebpage": 45710, + "(ĊĊ": 45711, + "Ġtir": 45712, + "Ġtoes": 45713, + "ĠBrick": 45714, + "Ġambition": 45715, + "Pot": 45716, + "=max": 45717, + "ETIME": 45718, + "Ġdepot": 45719, + "calls": 45720, + "ĠNorwegian": 45721, + "`:": 45722, + "Ġburger": 45723, + "Ġprofessors": 45724, + "ĠAllocate": 45725, + "-thirds": 45726, + "-chart": 45727, + "Ġford": 45728, + "*N": 45729, + ".kotlin": 45730, + "Ġpaperwork": 45731, + "ĠDEVICE": 45732, + "%@\",": 45733, + "respect": 45734, + "(mp": 45735, + "é«ĺ": 45736, + "-if": 45737, + "Ġcushion": 45738, + "obot": 45739, + "Ġparc": 45740, + "SPACE": 45741, + "ĠNetanyahu": 45742, + "Ġselfish": 45743, + "feat": 45744, + "Ġclientes": 45745, + "-tools": 45746, + "Ġporch": 45747, + "Ġjq": 45748, + ".verbose": 45749, + "Ġliberals": 45750, + "])ĊĊĊ": 45751, + "pies": 45752, + "NotBlank": 45753, + "(term": 45754, + "ÈĽi": 45755, + "_Params": 45756, + ".normalize": 45757, + "Bullet": 45758, + "ASIC": 45759, + "(hex": 45760, + "_cliente": 45761, + "+,": 45762, + "_DI": 45763, + "Ġforthcoming": 45764, + "}\")]Ċ": 45765, + "seo": 45766, + "Um": 45767, + ">Name": 45768, + "Ġcomfortably": 45769, + "irectional": 45770, + "WITH": 45771, + "/pr": 45772, + "ĠPoor": 45773, + "ĠVitamin": 45774, + "vic": 45775, + "GH": 45776, + "Ġpriorit": 45777, + "ĠNN": 45778, + "ĠClosed": 45779, + "¤í": 45780, + "ĠisOpen": 45781, + "\\Console": 45782, + "AndFeel": 45783, + ".SUCCESS": 45784, + "_OPERATION": 45785, + "polation": 45786, + "ĠTas": 45787, + "psz": 45788, + ">'.": 45789, + "CURRENT": 45790, + "Vendor": 45791, + "hosts": 45792, + "ĠErd": 45793, + ">tagger": 45794, + "ĠsourceMappingURL": 45795, + "Ġmarathon": 45796, + "_closed": 45797, + "Ġexemption": 45798, + "Ġrecognizes": 45799, + "ideshow": 45800, + "'$": 45801, + "('/');Ċ": 45802, + "mits": 45803, + "warz": 45804, + "ĠCherry": 45805, + "µ¬": 45806, + "nor": 45807, + "porte": 45808, + "Ġwl": 45809, + "_backup": 45810, + ".getBoolean": 45811, + ".getResource": 45812, + "Ġdefinitive": 45813, + ".EditText": 45814, + "ĠsÃŃ": 45815, + ".CONT": 45816, + "ĠPLAYER": 45817, + ".cards": 45818, + "ĠShore": 45819, + "('/')Ċ": 45820, + "cluir": 45821, + "WebDriver": 45822, + "(month": 45823, + "-release": 45824, + "Ġinspector": 45825, + "å£": 45826, + "ĠNF": 45827, + "_clip": 45828, + "åŃIJ": 45829, + "Ġinteracting": 45830, + ".tmp": 45831, + "Ġ'''ĊĊ": 45832, + "Ġdee": 45833, + "Ġfrost": 45834, + "\"]))Ċ": 45835, + "ĠPlaces": 45836, + "Throws": 45837, + "fork": 45838, + "/day": 45839, + "iPhone": 45840, + "ĠMIC": 45841, + "Ġfolding": 45842, + "Ġcrore": 45843, + "ĠChiefs": 45844, + "pherical": 45845, + "(price": 45846, + ".WriteString": 45847, + "Ġexiting": 45848, + "]',Ċ": 45849, + "ighting": 45850, + "Ingredient": 45851, + "(vertex": 45852, + "ĠscrollView": 45853, + "hf": 45854, + ":new": 45855, + "SEN": 45856, + "sector": 45857, + "Ġspins": 45858, + "ĠScheduler": 45859, + "otechn": 45860, + "semicolon": 45861, + "FontOfSize": 45862, + "ĠSpecifically": 45863, + "flamm": 45864, + ".ObjectId": 45865, + "Ġconta": 45866, + "_permissions": 45867, + "ĉFROM": 45868, + "ICODE": 45869, + "/kg": 45870, + "ĠHotels": 45871, + "-med": 45872, + "ĠDin": 45873, + "Ġnavy": 45874, + "getParam": 45875, + "Ġmend": 45876, + "Ġportrayed": 45877, + "ĠMetropolitan": 45878, + "Painter": 45879, + "Ġreferral": 45880, + "_good": 45881, + "Ġmarvel": 45882, + "osaic": 45883, + ">(&": 45884, + ".ur": 45885, + "Ġestos": 45886, + "William": 45887, + "Ġtimber": 45888, + "Ġquelques": 45889, + "ĠDocuments": 45890, + ".Xaml": 45891, + "Ġbatches": 45892, + "éģĵ": 45893, + "ĠReleased": 45894, + "Tail": 45895, + "COOKIE": 45896, + "heid": 45897, + "_station": 45898, + "ĠVia": 45899, + "Sale": 45900, + "ĠRepeat": 45901, + "Ġpromin": 45902, + "ĠZo": 45903, + "-forward": 45904, + "ĠIon": 45905, + "itary": 45906, + "Ġjus": 45907, + "-request": 45908, + "Ġproudly": 45909, + "ĠStreaming": 45910, + "(MouseEvent": 45911, + "ĠSprint": 45912, + "_rotation": 45913, + "Repositories": 45914, + "Ġtart": 45915, + "ĠÑģв": 45916, + "Ġmappings": 45917, + "èª": 45918, + "Cu": 45919, + "Cycle": 45920, + "Ġbun": 45921, + "ĉlua": 45922, + "ãĥī": 45923, + "Ġ((!": 45924, + "Ġcollectively": 45925, + "ĠCond": 45926, + "Ġwszyst": 45927, + "(lib": 45928, + "openhagen": 45929, + "_skip": 45930, + ".ColumnHeader": 45931, + "éĤ": 45932, + "perienced": 45933, + "ıè¿°": 45934, + "_props": 45935, + "Ġcontrace": 45936, + "Ġmatchup": 45937, + "abetic": 45938, + ".members": 45939, + "RECT": 45940, + "(dat": 45941, + "Ġsog": 45942, + "renom": 45943, + "_Method": 45944, + "Customers": 45945, + "fullname": 45946, + "ZN": 45947, + "retry": 45948, + "Ġkap": 45949, + "ĠNeu": 45950, + "èĬ": 45951, + "addChild": 45952, + "willReturn": 45953, + "_permalink": 45954, + "Ġenergetic": 45955, + "ĠWet": 45956, + "ĠMorr": 45957, + "Ġgcd": 45958, + "counts": 45959, + ",type": 45960, + "dig": 45961, + "(Login": 45962, + "Ġcracks": 45963, + "Ġbacterial": 45964, + "ĠMeat": 45965, + "ĠArmstrong": 45966, + "ĠBronze": 45967, + "Ġapproximate": 45968, + "_dirs": 45969, + "liga": 45970, + "ÅĤad": 45971, + "Ġkindness": 45972, + "Ġcontre": 45973, + "ĠEVERY": 45974, + "MET": 45975, + "Ġannouncements": 45976, + "gpio": 45977, + "ĠWaitForSeconds": 45978, + "ĠPhotoshop": 45979, + "Ġdiscontin": 45980, + "/dd": 45981, + "Ġtopology": 45982, + "anical": 45983, + ".interface": 45984, + "aucoup": 45985, + ".HashSet": 45986, + "ARIANT": 45987, + "(routes": 45988, + "ĠTeh": 45989, + "Ġhype": 45990, + "]\").": 45991, + "Ġslam": 45992, + "Ġbroth": 45993, + "-inter": 45994, + "ĠRid": 45995, + "-manager": 45996, + "Cancelar": 45997, + "ĠPagination": 45998, + "Ġsoundtrack": 45999, + "Ġposterior": 46000, + "Ġscrub": 46001, + "creating": 46002, + "-*": 46003, + "irteen": 46004, + ".dy": 46005, + ".symmetric": 46006, + "Ġ\"\".": 46007, + "===============": 46008, + "Ġchassis": 46009, + "ĠnumberOfRows": 46010, + "Developer": 46011, + "_bins": 46012, + "ĠOUR": 46013, + "rieb": 46014, + "Pros": 46015, + "ĠwiÄĻ": 46016, + "\"d": 46017, + "Ġasyncio": 46018, + "zeigen": 46019, + "_spi": 46020, + ".ALL": 46021, + "Ġscrews": 46022, + "Chinese": 46023, + "ĠapiKey": 46024, + "Ġunsuccessful": 46025, + "ĠSeahawks": 46026, + "ORG": 46027, + "ç«ł": 46028, + "Ġprofessionally": 46029, + "ĠCoupon": 46030, + "åŃĹ段": 46031, + "Convention": 46032, + "Ġpolym": 46033, + "æīĭ": 46034, + "Ġsalvation": 46035, + "Ġengineered": 46036, + "ĠWrest": 46037, + "ĠGCC": 46038, + "Ġwarmer": 46039, + "LayoutConstraint": 46040, + "Ġaggrav": 46041, + "Scripts": 46042, + "venture": 46043, + "Ġrefrigerator": 46044, + "Ġinnovations": 46045, + "ĠRunner": 46046, + "NIC": 46047, + "ĠRolling": 46048, + "ControlEvents": 46049, + "Ġloos": 46050, + "pac": 46051, + "ĉpanel": 46052, + "efe": 46053, + "ĠBuddha": 46054, + "--------------Ċ": 46055, + "åºĵ": 46056, + "(forKey": 46057, + "Ġlumin": 46058, + "Ġ(?": 46059, + "ĠAIDS": 46060, + ",user": 46061, + "imientos": 46062, + "contentType": 46063, + "antlr": 46064, + "é¦": 46065, + "ĠWelt": 46066, + "Production": 46067, + "might": 46068, + "ĠVII": 46069, + "\",(": 46070, + "Ġobserving": 46071, + "Ġdeliberate": 46072, + "(control": 46073, + "Ġwithd": 46074, + "Ġsemana": 46075, + "STACK": 46076, + "uchen": 46077, + "Nice": 46078, + "ĠDeutschland": 46079, + "ĠSpecifies": 46080, + "dma": 46081, + "izio": 46082, + "ĠFacts": 46083, + "_popup": 46084, + "ĠDirectors": 46085, + "{:": 46086, + "[R": 46087, + "ĠÑįлеменÑĤ": 46088, + "Ġplat": 46089, + "Ġdirecting": 46090, + "ä¸ī": 46091, + "ĠGilbert": 46092, + "âĢ¦.ĊĊ": 46093, + ".qml": 46094, + "Ġthereafter": 46095, + "Ġdisposition": 46096, + "draft": 46097, + "Ġsurgeon": 46098, + "ĠInsider": 46099, + "Blend": 46100, + "ĠTrev": 46101, + "trinsic": 46102, + "Topics": 46103, + "rieve": 46104, + "_FILENAME": 46105, + "Ġautres": 46106, + "Jose": 46107, + "Producer": 46108, + "erus": 46109, + "Ġpetit": 46110, + "ĠNEXT": 46111, + "ĠFilters": 46112, + "Ġreplicate": 46113, + "\"]).": 46114, + "Ġlenders": 46115, + "]\",Ċ": 46116, + ";charset": 46117, + "CppObject": 46118, + "Ġfloral": 46119, + "ĠTipo": 46120, + "Ġcircuits": 46121, + "easy": 46122, + "(&$": 46123, + "itta": 46124, + "eryl": 46125, + "_COMMON": 46126, + "'}}>Ċ": 46127, + "-backed": 46128, + "(variable": 46129, + "(Index": 46130, + "Ġvoir": 46131, + "_locations": 46132, + "++){": 46133, + "ĠLouisville": 46134, + "Ġgratitude": 46135, + ".Mockito": 46136, + "ĠPowers": 46137, + "ieurs": 46138, + "Ġgeographic": 46139, + "rale": 46140, + "Ġcra": 46141, + "ĠSpurs": 46142, + "iphertext": 46143, + "ACION": 46144, + "-common": 46145, + "Ġvictories": 46146, + "ĠFinals": 46147, + ".shuffle": 46148, + "-million": 46149, + "_PROC": 46150, + "assume": 46151, + "Ġils": 46152, + "DBC": 46153, + "BootTest": 46154, + "Ġlavor": 46155, + ".testing": 46156, + ".ast": 46157, + "\"]/": 46158, + "moid": 46159, + "Ġqualification": 46160, + "gesch": 46161, + "ĉput": 46162, + "Ġairports": 46163, + "JI": 46164, + "Teacher": 46165, + "_uniform": 46166, + "Ġnama": 46167, + "ĠBast": 46168, + "ertype": 46169, + "capture": 46170, + "getAll": 46171, + "ĠReynolds": 46172, + "ooled": 46173, + ".comments": 46174, + "Ġchin": 46175, + ").*": 46176, + "Ġили": 46177, + "tgl": 46178, + "udos": 46179, + "ĠdÃŃas": 46180, + "chai": 46181, + ".program": 46182, + "Ġpsz": 46183, + "ĉicon": 46184, + "phil": 46185, + "entral": 46186, + "_WRAP": 46187, + "ovi": 46188, + "Ġnostalg": 46189, + "Infinity": 46190, + "ĉyield": 46191, + "Ġvitamins": 46192, + "Quaternion": 46193, + "Sink": 46194, + "_goods": 46195, + "Ġ........": 46196, + "ĠWings": 46197, + "uridad": 46198, + "-story": 46199, + "\"])ĊĊ": 46200, + "idelity": 46201, + "TypeDef": 46202, + "Gtk": 46203, + "ĠíĮ": 46204, + "_Main": 46205, + "Ġchez": 46206, + "ĠRaven": 46207, + "Ġpayroll": 46208, + "Ġfreelance": 46209, + "LLU": 46210, + "ĠMend": 46211, + "eday": 46212, + "ApiModelProperty": 46213, + ".FormBorderStyle": 46214, + "Ġeconomist": 46215, + "stanbul": 46216, + "Ġfreight": 46217, + "-Agent": 46218, + "(meta": 46219, + "Ġsymmetry": 46220, + "Ġ'..": 46221, + ".Calendar": 46222, + "-aut": 46223, + "gf": 46224, + "pent": 46225, + "yclopedia": 46226, + "Ġwishing": 46227, + "ĊĊĊĊĊĊĊĊĊĊĊĊ": 46228, + "Ġgentleman": 46229, + "Ġê³": 46230, + "=#": 46231, + "Ġlectures": 46232, + "âĢľIn": 46233, + "Ġ!_": 46234, + "Ġhb": 46235, + "ĠVendor": 46236, + "Recently": 46237, + "_notes": 46238, + "æıIJ示": 46239, + "\"My": 46240, + "HeadersHeight": 46241, + "_SO": 46242, + "Ġunwilling": 46243, + "Ġsuperhero": 46244, + "gio": 46245, + "psy": 46246, + "ĠPeer": 46247, + "javax": 46248, + "&apos": 46249, + "ĠCrisis": 46250, + "ordinal": 46251, + "Memcpy": 46252, + "++++++++++++++++": 46253, + "-val": 46254, + "Ġworkbook": 46255, + "-ap": 46256, + "=k": 46257, + "Ġmetallic": 46258, + "_peer": 46259, + "ByPrimaryKey": 46260, + "_SD": 46261, + "uator": 46262, + "_SHADER": 46263, + ")Math": 46264, + ".Transform": 46265, + "Ġcows": 46266, + "Phi": 46267, + "ĠClem": 46268, + "(_(\"": 46269, + "ĠLud": 46270, + "-delay": 46271, + "ĠSecurities": 46272, + "ĠOrthodox": 46273, + "Symfony": 46274, + "(report": 46275, + "Ġentertain": 46276, + "EPS": 46277, + "izoph": 46278, + "exual": 46279, + "IRD": 46280, + "ä»İ": 46281, + "Ġlith": 46282, + "Ġsanitize": 46283, + "Ġfeminine": 46284, + "ISBN": 46285, + ".authentication": 46286, + "_pipeline": 46287, + "/constants": 46288, + "ĠCONF": 46289, + "Ġlucr": 46290, + "ricia": 46291, + ".ttf": 46292, + ".setContent": 46293, + "Ġstan": 46294, + "orean": 46295, + "ĠLloyd": 46296, + ".rawValue": 46297, + "Ġgor": 46298, + "ĠBrowns": 46299, + "Regression": 46300, + "Ġlowering": 46301, + "naissance": 46302, + "Ġblows": 46303, + "Ġamazed": 46304, + "Ġunrelated": 46305, + "Reviews": 46306, + "Ġruby": 46307, + "ĠModifier": 46308, + "Ġgiants": 46309, + ".thread": 46310, + "Ġcontainment": 46311, + "ĠStartCoroutine": 46312, + "umat": 46313, + "orelease": 46314, + "ĠRandy": 46315, + "@endif": 46316, + "Digest": 46317, + "Ġsuburban": 46318, + "=\");Ċ": 46319, + "Ġannonce": 46320, + ".variable": 46321, + "\\Foundation": 46322, + "Ġacre": 46323, + "Van": 46324, + "Ġtuples": 46325, + "dns": 46326, + "ĠStanding": 46327, + "_large": 46328, + "Ġboxing": 46329, + "SupportActionBar": 46330, + "ĠFortune": 46331, + "ĠRum": 46332, + "_multiple": 46333, + "archical": 46334, + "Ġfwrite": 46335, + "_quote": 46336, + "Ġfoolish": 46337, + "Ġcomprising": 46338, + "Ġоп": 46339, + "-selected": 46340, + "vf": 46341, + "maid": 46342, + "Nama": 46343, + "(datetime": 46344, + "Ġindirectly": 46345, + "gart": 46346, + "fixtures": 46347, + "chos": 46348, + "ĠHalo": 46349, + "Ġrecurring": 46350, + "-news": 46351, + "vil": 46352, + "ĠNursing": 46353, + "-produ": 46354, + "ĠHQ": 46355, + "\\HttpFoundation": 46356, + "enci": 46357, + "auen": 46358, + "Ġvy": 46359, + "ocracy": 46360, + "Ġdelegation": 46361, + "Ġasphalt": 46362, + "ĠsetSelected": 46363, + "kok": 46364, + "/rest": 46365, + "metics": 46366, + "ĠNSDate": 46367, + "Ġtravelled": 46368, + "Ġrecib": 46369, + "Ġmime": 46370, + "CLIENT": 46371, + "ĠGU": 46372, + "ĠHANDLE": 46373, + "/Q": 46374, + "[z": 46375, + "Ġbothered": 46376, + "ĠBBQ": 46377, + "ças": 46378, + "_examples": 46379, + "_FIN": 46380, + "ĠwhiteColor": 46381, + "Ġastronom": 46382, + "-dir": 46383, + "Ġsovereign": 46384, + "Ġbreeze": 46385, + "Ġinning": 46386, + "ĠEdmonton": 46387, + "gli": 46388, + ".blogspot": 46389, + "jsx": 46390, + "Ġversa": 46391, + "ĠMohammed": 46392, + ".Job": 46393, + "-toggler": 46394, + "ĠполÑĮзоваÑĤ": 46395, + "ardon": 46396, + "Ġnewborn": 46397, + "Ġnaval": 46398, + "noteq": 46399, + "Ġtumblr": 46400, + "Ġhentai": 46401, + "ĠTypically": 46402, + "Ġloot": 46403, + ".Sprite": 46404, + "Flight": 46405, + "Ġwavelength": 46406, + "-sk": 46407, + "ĠElle": 46408, + "_exports": 46409, + "ĠÑı": 46410, + "ĠIH": 46411, + "izophren": 46412, + "Ġíģ": 46413, + "_primary": 46414, + "Ġmois": 46415, + "ĠBN": 46416, + "Ġsystemic": 46417, + "Ġdiferentes": 46418, + "INCT": 46419, + "Ġ''ĊĊ": 46420, + "$q": 46421, + "WidgetItem": 46422, + "clide": 46423, + "$file": 46424, + "Lemma": 46425, + "/table": 46426, + "agrid": 46427, + "ĠMongoDB": 46428, + "inte": 46429, + "Ġapprent": 46430, + "ÂŃing": 46431, + ".Db": 46432, + "ĠÃĤ": 46433, + "hammer": 46434, + "='';Ċ": 46435, + "Ġbrokers": 46436, + "itlement": 46437, + "semblies": 46438, + "Ele": 46439, + "{x": 46440, + "Ġlastname": 46441, + "<-": 46442, + "Ġflatten": 46443, + "_band": 46444, + ".Root": 46445, + ".readFileSync": 46446, + "======": 46447, + ".rx": 46448, + "?čĊ": 46449, + "Ġmetaphor": 46450, + "Ti": 46451, + "conte": 46452, + "Ġdebit": 46453, + "Ġcontempt": 46454, + "CppType": 46455, + "æĶ¯": 46456, + "FormField": 46457, + "ratio": 46458, + "osopher": 46459, + "Ġimplant": 46460, + "PURE": 46461, + "Ġalta": 46462, + "_management": 46463, + "Ġrefine": 46464, + "ĠCheckBox": 46465, + "ĠCharl": 46466, + "-version": 46467, + "conditional": 46468, + "venues": 46469, + "Ġrifles": 46470, + "Ġoffspring": 46471, + "Ġmilling": 46472, + "Ġsharply": 46473, + "Ġunderwater": 46474, + "(origin": 46475, + "_Control": 46476, + "Ġ.$": 46477, + "Plugins": 46478, + "Ġdrying": 46479, + "Ġillustrates": 46480, + "-u": 46481, + "Ġvegetarian": 46482, + "npc": 46483, + "Heart": 46484, + ";',Ċ": 46485, + "comma": 46486, + "teenth": 46487, + "asan": 46488, + "/spec": 46489, + "_moves": 46490, + "-margin": 46491, + "Ġingen": 46492, + "³³³": 46493, + "Ġprojet": 46494, + "Ġotra": 46495, + "Ġbras": 46496, + ".utc": 46497, + "Ġslept": 46498, + "=sub": 46499, + "abilit": 46500, + "poster": 46501, + "Ġsdk": 46502, + "ouncill": 46503, + "Ġwd": 46504, + "PreparedStatement": 46505, + "ĠDrum": 46506, + "(attribute": 46507, + "ĠEthernet": 46508, + "ĉDB": 46509, + "California": 46510, + "cube": 46511, + "[I": 46512, + ".Created": 46513, + "ĠHM": 46514, + "Ġtracing": 46515, + "FormsModule": 46516, + "-you": 46517, + ".currency": 46518, + "feeding": 46519, + "Ġtbody": 46520, + "Li": 46521, + "accion": 46522, + "nas": 46523, + "Ġtrouver": 46524, + "NONE": 46525, + "\"},čĊ": 46526, + "Ġftp": 46527, + "WithIdentifier": 46528, + "polate": 46529, + "FileInfo": 46530, + "Ġpursued": 46531, + "ĠĠĠĠčĊĠĠĠĠčĊ": 46532, + "DESCRIPTION": 46533, + "}*/Ċ": 46534, + "FromNib": 46535, + "Ġdecorative": 46536, + "_SSL": 46537, + "(chat": 46538, + "TLS": 46539, + "Ġsurprises": 46540, + "alculate": 46541, + "ĠSplash": 46542, + "(Configuration": 46543, + "ĠSEM": 46544, + "imson": 46545, + "/library": 46546, + "": 46621, + "GED": 46622, + "faq": 46623, + "Ġoptionally": 46624, + "_Dis": 46625, + "ĠSuccessful": 46626, + "ĠCensus": 46627, + "Ġincarcer": 46628, + "_CARD": 46629, + "Ġaviation": 46630, + "ĠGym": 46631, + "Authority": 46632, + ".Bean": 46633, + "shader": 46634, + "NotExist": 46635, + "_TextChanged": 46636, + "ĠSTOP": 46637, + "(team": 46638, + "\"H": 46639, + "wg": 46640, + "Ġgrinder": 46641, + "Ġstripe": 46642, + "Ġpreservation": 46643, + "Claim": 46644, + "aversal": 46645, + "warehouse": 46646, + "targets": 46647, + "Trust": 46648, + "Ġallev": 46649, + ",www": 46650, + "ousse": 46651, + "_chan": 46652, + "_Size": 46653, + "systems": 46654, + "Ġobjection": 46655, + "ĠKane": 46656, + "Ġcorros": 46657, + "ĠDSL": 46658, + "Ġua": 46659, + "ĠMH": 46660, + "ĠStrategic": 46661, + "_tcp": 46662, + "Ġê°Ĵ": 46663, + "Ġborrowed": 46664, + "ĠAch": 46665, + "ĉcommand": 46666, + "Ġgps": 46667, + "leston": 46668, + "ichever": 46669, + "ĠUA": 46670, + "Ġassaulted": 46671, + "Ġspecializes": 46672, + "ĉsearch": 46673, + "Hotel": 46674, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠčĊ": 46675, + "ĠPitch": 46676, + "ĠÙģ": 46677, + "READY": 46678, + "Ġparental": 46679, + "Ġgéné": 46680, + "Ġdonnées": 46681, + "Ġdetain": 46682, + "TARGET": 46683, + "Ġprotagonist": 46684, + "ĠclearInterval": 46685, + "ĠIconButton": 46686, + "ĠGetAll": 46687, + "TypeInfo": 46688, + "EH": 46689, + "âĢľThey": 46690, + "Ġ{[": 46691, + "Ġgag": 46692, + "ĠÚ©": 46693, + "ĠDropdown": 46694, + ".free": 46695, + "gone": 46696, + "imens": 46697, + "Ġinstal": 46698, + "ĉcurl": 46699, + "_CAN": 46700, + "ĠBone": 46701, + "ï¼Ķ": 46702, + "onyms": 46703, + "-government": 46704, + ".bindingNavigator": 46705, + "ĠDans": 46706, + "ĠMcL": 46707, + "(en": 46708, + ">(_": 46709, + "ÐĴÑĭ": 46710, + ".*;čĊ": 46711, + "=j": 46712, + "-cor": 46713, + "Son": 46714, + ".ToolStripItem": 46715, + "-around": 46716, + "_XML": 46717, + "endDate": 46718, + "Ġslack": 46719, + "Ġrotated": 46720, + "Ġnoqa": 46721, + "Ġcottage": 46722, + "Ġencontrar": 46723, + "_skill": 46724, + "houette": 46725, + "!čĊ": 46726, + ".weather": 46727, + "Ġemphasized": 46728, + "家": 46729, + "ĠÑģпиÑģ": 46730, + "ĠCompiler": 46731, + "(android": 46732, + "ĠâĢº": 46733, + ".turn": 46734, + "Ġsuppression": 46735, + "_calls": 46736, + "Ġ*@": 46737, + "(strlen": 46738, + ".hex": 46739, + "ĠBills": 46740, + "ĠRSA": 46741, + "ÏĤ": 46742, + "ĠEscape": 46743, + "ementia": 46744, + "Ġfrontend": 46745, + "Ġpint": 46746, + "_exc": 46747, + "zzo": 46748, + "[],Ċ": 46749, + "Ġ\"','\"": 46750, + ".Environment": 46751, + "Ġaforementioned": 46752, + "Ġendure": 46753, + "prototype": 46754, + "therapy": 46755, + "ssi": 46756, + "Deg": 46757, + "_plugins": 46758, + ".userInfo": 46759, + "Printer": 46760, + "ĠPROGRAM": 46761, + "Ġruins": 46762, + "Ġempirical": 46763, + "Ġcrawl": 46764, + "ĠBoiler": 46765, + "-comment": 46766, + ".subplot": 46767, + "_et": 46768, + "Ġ'.',": 46769, + "minor": 46770, + "ĠCustoms": 46771, + "Ġyaw": 46772, + "underline": 46773, + "ĠComo": 46774, + "(('": 46775, + "(mean": 46776, + "Ġchaque": 46777, + "ĠBlocks": 46778, + ".rad": 46779, + "ilibrium": 46780, + "Ġwebdriver": 46781, + "Ġmelhor": 46782, + "dana": 46783, + "ĠAbuse": 46784, + "ĠSouthwest": 46785, + "ĠParen": 46786, + "PERTIES": 46787, + "ĉIL": 46788, + "Ġscream": 46789, + "vu": 46790, + "Ġincomes": 46791, + "Ġnim": 46792, + "Ġlace": 46793, + "Ġcompensate": 46794, + "Reverse": 46795, + "Dat": 46796, + "_attack": 46797, + "Ġnour": 46798, + "achen": 46799, + "cek": 46800, + "\"+": 47057, + "Ġtokenizer": 47058, + "Ġsovereignty": 47059, + "ĠPence": 47060, + "()\");Ċ": 47061, + "Ġpessoas": 47062, + ".Ge": 47063, + "ĠIncluded": 47064, + "Ġpagina": 47065, + "Ġexposing": 47066, + "еÑĪ": 47067, + "_SCRIPT": 47068, + "/$',": 47069, + "Thumbnail": 47070, + "×Ķ": 47071, + "webElementX": 47072, + "webElementXpaths": 47073, + "pressure": 47074, + "ĠCurry": 47075, + "_CP": 47076, + "OLUTION": 47077, + "ILES": 47078, + "protect": 47079, + "oola": 47080, + "Workspace": 47081, + "{};Ċ": 47082, + "ĠUNS": 47083, + "Ġsympathy": 47084, + "roker": 47085, + "Ġremodel": 47086, + "ĉcell": 47087, + "Ġatop": 47088, + ".FullName": 47089, + "Ġfaut": 47090, + "ĠEasily": 47091, + "_dynamic": 47092, + "Ġframed": 47093, + "Ġmotive": 47094, + "è·¯": 47095, + "sam": 47096, + "Ġmarca": 47097, + "ĠTextEditingController": 47098, + "Ġdestructor": 47099, + "cream": 47100, + "Ġrude": 47101, + "ĠBold": 47102, + "ĠIndigenous": 47103, + "Ġgens": 47104, + "Ġrelacion": 47105, + "(system": 47106, + "ĠUIFont": 47107, + "_charge": 47108, + "USTER": 47109, + "EV": 47110, + ".Namespace": 47111, + "Ġmerger": 47112, + "Ġcalloc": 47113, + "gang": 47114, + "BadRequest": 47115, + "Ġsper": 47116, + "-design": 47117, + "Ġâĩ": 47118, + "Chan": 47119, + "Ġorganism": 47120, + ",)": 47121, + "=id": 47122, + "_plane": 47123, + "ĠCases": 47124, + "elfast": 47125, + "ĠLegislature": 47126, + "ĠFaker": 47127, + "Ġinvoking": 47128, + "-utils": 47129, + "().'": 47130, + ".face": 47131, + "Ġguardian": 47132, + "myModal": 47133, + "Ġclipboard": 47134, + "ĠATM": 47135, + "Ġpeas": 47136, + "ĠSylv": 47137, + ".calc": 47138, + "ĠContacts": 47139, + "intValue": 47140, + "Ġmodifying": 47141, + "ĠBarb": 47142, + ".loss": 47143, + "_percentage": 47144, + "Asked": 47145, + "(lst": 47146, + "ategorical": 47147, + "-files": 47148, + "ĠRomania": 47149, + ".Ac": 47150, + "Ġhai": 47151, + "ĠFlying": 47152, + "Ġż": 47153, + "jp": 47154, + "ĠTrainer": 47155, + ".arc": 47156, + "_deg": 47157, + "Ġtraceback": 47158, + "OrFail": 47159, + "FLOW": 47160, + ".old": 47161, + "oya": 47162, + "gmt": 47163, + "isempty": 47164, + "Ġvaccination": 47165, + "Ġobsolete": 47166, + "recognized": 47167, + "Ġruined": 47168, + "ĠRein": 47169, + "ĠTracking": 47170, + "xfb": 47171, + "اÛĮ": 47172, + "Ġvære": 47173, + "Ġbryster": 47174, + "ĠITS": 47175, + "Ġdestiny": 47176, + "Ġswear": 47177, + "Ġredes": 47178, + "Ġclf": 47179, + "Ġflipped": 47180, + "ĉhead": 47181, + "Bluetooth": 47182, + "ĠOverrides": 47183, + ":Boolean": 47184, + "_=": 47185, + "_lr": 47186, + "spawn": 47187, + ":index": 47188, + "VALUES": 47189, + "iskey": 47190, + "?\");Ċ": 47191, + ".synthetic": 47192, + "ĠChecking": 47193, + "structures": 47194, + "iping": 47195, + "Ġvocals": 47196, + "-Up": 47197, + "ĠManufacturers": 47198, + "ĠMarriage": 47199, + "代çłģ": 47200, + "Ġgarner": 47201, + "_Client": 47202, + "parallel": 47203, + "RIEND": 47204, + "Ġvinegar": 47205, + "segue": 47206, + "JB": 47207, + "Ġcontacting": 47208, + "ĠCarroll": 47209, + "Ġoutreach": 47210, + "tensor": 47211, + "_variant": 47212, + "Ġtheat": 47213, + "licable": 47214, + "{|": 47215, + "tiny": 47216, + "_letter": 47217, + "Ġpencil": 47218, + "HeadersHeightSizeMode": 47219, + "iltro": 47220, + ".autoconfigure": 47221, + ".drag": 47222, + ".useState": 47223, + "ĠBMI": 47224, + "hint": 47225, + "Compile": 47226, + "*\\": 47227, + "enary": 47228, + "Ġlvl": 47229, + ".Cache": 47230, + "+=\"": 47231, + "_tv": 47232, + "ruitment": 47233, + "Ġfread": 47234, + "Articles": 47235, + "fila": 47236, + "Ġpackaged": 47237, + "âĺĨ": 47238, + "ATHER": 47239, + "ĠPlanned": 47240, + "scheme": 47241, + "Ġdiary": 47242, + "Ġoffenses": 47243, + "/F": 47560, + "ĠStick": 47561, + "Ġcerc": 47562, + "ĠSlee": 47563, + "ĉĉĠĠĠĠĠĠĠĠ": 47564, + "": 47739, + "ĉcol": 47740, + "VG": 47741, + "_boolean": 47742, + "recent": 47743, + "Ġ*)ĊĊ": 47744, + "ĠRainbow": 47745, + "ommen": 47746, + "Ġlur": 47747, + "Ġoppression": 47748, + "(\",\");Ċ": 47749, + "ĠFacility": 47750, + "DEFINED": 47751, + "Ġneon": 47752, + "Ġoffender": 47753, + "AFP": 47754, + "ĠCleaning": 47755, + "[]):": 47756, + "Ġundocumented": 47757, + ".Repositories": 47758, + "ĠGuitar": 47759, + "аÑģÑģив": 47760, + "Skills": 47761, + "Ġtestimon": 47762, + "ryptography": 47763, + "ĠAmber": 47764, + "ĠStalin": 47765, + "Ġlone": 47766, + "Ġapenas": 47767, + "Ġdieses": 47768, + "ĠArduino": 47769, + "转": 47770, + "==-": 47771, + "_Act": 47772, + "Ġcoded": 47773, + "âĸł": 47774, + "amburger": 47775, + "-links": 47776, + "Ġarmour": 47777, + ".High": 47778, + "getContent": 47779, + "stag": 47780, + "Ġheck": 47781, + "ĠìĹĨ": 47782, + "ĠMcConnell": 47783, + "ĠConcert": 47784, + "ĠAlloc": 47785, + "äre": 47786, + ".replaceAll": 47787, + "Ġpartitions": 47788, + "rott": 47789, + "ĠFle": 47790, + "_TREE": 47791, + "reasonable": 47792, + "ĠReporting": 47793, + "Ġbillionaire": 47794, + "scores": 47795, + "mins": 47796, + "-eye": 47797, + "MORE": 47798, + "abort": 47799, + "ĠSWT": 47800, + "Ġinverted": 47801, + "ĠTeachers": 47802, + ";n": 47803, + "Ġastro": 47804, + "нов": 47805, + "аниÑĨ": 47806, + "producto": 47807, + "countries": 47808, + "ĠOwen": 47809, + "Ġcontamination": 47810, + "Ġvibe": 47811, + "ĠElli": 47812, + ".script": 47813, + "ĠOlive": 47814, + "DMA": 47815, + "vier": 47816, + ":semicolon": 47817, + "-module": 47818, + "gressive": 47819, + "agu": 47820, + "_players": 47821, + "Ġresultados": 47822, + "started": 47823, + "scrollTop": 47824, + "=====": 47825, + "Ġweighing": 47826, + "Ġ[[[": 47827, + "zahl": 47828, + "(NS": 47829, + "ĠAssertion": 47830, + "league": 47831, + ".setTextColor": 47832, + "ĉMessage": 47833, + "Ġmoms": 47834, + "_AF": 47835, + ".wh": 47836, + "ALS": 47837, + "Ġautre": 47838, + "]ĊĊĊĊ": 47839, + ".opacity": 47840, + "ĠBuddhist": 47841, + "Ġdeaf": 47842, + "ĠOrganisation": 47843, + "(Global": 47844, + "ensch": 47845, + "Ġheadache": 47846, + "ĠAlien": 47847, + "_inode": 47848, + "ĠStark": 47849, + "Ġæī": 47850, + "-lnd": 47851, + "oref": 47852, + "_feat": 47853, + "Ġpedestrian": 47854, + "Ġnominal": 47855, + "Ġballoon": 47856, + "Ġsprites": 47857, + "PrototypeOf": 47858, + "ĠApost": 47859, + "ĠFEATURE": 47860, + "OH": 47861, + "Ġrecess": 47862, + "ĠDonna": 47863, + "consumer": 47864, + "$GLOBALS": 47865, + "ĠGIF": 47866, + "-frame": 47867, + "Inicio": 47868, + "Ġpassages": 47869, + "DateString": 47870, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 47871, + ".byte": 47872, + "Bug": 47873, + "initializer": 47874, + "pkt": 47875, + "odium": 47876, + "ĠDER": 47877, + ".ops": 47878, + "leri": 47879, + "Ġgifted": 47880, + "Ġdetach": 47881, + "terrain": 47882, + "elters": 47883, + "ãģı": 47884, + ".loader": 47885, + "ĠNGO": 47886, + "strncmp": 47887, + "Kh": 47888, + "(fontSize": 47889, + "rocket": 47890, + "Ġprecedent": 47891, + "ĠAurora": 47892, + "ĠExperiment": 47893, + "isphere": 47894, + "Encoded": 47895, + "ĠâĢĵĊĊ": 47896, + "Ġpyramid": 47897, + "ĠAnniversary": 47898, + "ofil": 47899, + "ëŁ": 47900, + "(plugin": 47901, + "Coeff": 47902, + "Ġcooperate": 47903, + "Ġpredominantly": 47904, + "ISM": 47905, + "Phrase": 47906, + "_DEFINE": 47907, + "Flip": 47908, + "AMILY": 47909, + "ĠMarkets": 47910, + "ĠStreamReader": 47911, + "ĠCombine": 47912, + "Ġmanuscript": 47913, + "zza": 47914, + ",tp": 47915, + "Whatever": 47916, + "ITICAL": 47917, + "ighbour": 47918, + "DataProvider": 47919, + ".Texture": 47920, + "privacy": 47921, + ".SDK": 47922, + "Ġrecharge": 47923, + "Ġcpp": 47924, + "ĠCFG": 47925, + "(holder": 47926, + "(py": 47927, + "mot": 47928, + "Ġsavoir": 47929, + "ĠRosa": 47930, + "ĠPCs": 47931, + "ĠíĻ": 47932, + ".heroku": 47933, + "Ġfren": 47934, + "ĠRiley": 47935, + "agate": 47936, + "Ġsond": 47937, + ".xlsx": 47938, + "Ġhacked": 47939, + "stad": 47940, + "Gi": 47941, + "Ġsanity": 47942, + "ĠSqlDataAdapter": 47943, + "...\",": 47944, + "ĠPussy": 47945, + "Ġ****************": 47946, + "Ġhassle": 47947, + "_PARENT": 47948, + "ĠUAE": 47949, + "Ġbeginners": 47950, + "(Client": 47951, + "Ġstatistically": 47952, + ".hour": 47953, + "edelta": 47954, + "Ġtraction": 47955, + "uelve": 47956, + "arat": 47957, + "Ġsauna": 47958, + "INVALID": 47959, + "Ġindictment": 47960, + "ALLE": 47961, + "Ġdissent": 47962, + "ĠTypography": 47963, + "Ġintentional": 47964, + "sit": 47965, + "ĠAnimals": 47966, + "Ġcountryside": 47967, + "Ġuart": 47968, + "}\\\"": 47969, + "Ġseamless": 47970, + "¾ç¤º": 47971, + "Ġautos": 47972, + "Ġ\"'\";Ċ": 47973, + "Flush": 47974, + "ANNOT": 47975, + "Ġalgebra": 47976, + "assoc": 47977, + "ĠWaters": 47978, + "Ġpreparations": 47979, + "ronym": 47980, + "[,]": 47981, + "Sans": 47982, + "Ġarmies": 47983, + "ipeg": 47984, + "Ġcreamy": 47985, + ".art": 47986, + "etre": 47987, + "ĠAnimated": 47988, + "Ġunpleasant": 47989, + "emean": 47990, + "great": 47991, + "iÄħ": 47992, + "ĠEarlier": 47993, + "Ġchic": 47994, + "Ġpreserving": 47995, + "(exec": 47996, + "ĠInvestigation": 47997, + "ĉGPIO": 47998, + "Ġrigorous": 47999, + "ijo": 48000, + "=num": 48001, + "ĠtoolStrip": 48002, + ")set": 48003, + "+\"&": 48004, + "ĠAcceler": 48005, + "Ġdevelopmental": 48006, + "isposable": 48007, + "Ġflawed": 48008, + "rene": 48009, + "Updating": 48010, + "Ġwatchdog": 48011, + "Ġdenominator": 48012, + "Ġsuburbs": 48013, + "Ġ...)": 48014, + "Ġconvictions": 48015, + "closure": 48016, + ".IP": 48017, + "Ġtranslates": 48018, + ".swt": 48019, + ".Trace": 48020, + "Ġmettre": 48021, + ".isEnabled": 48022, + "ĠEffective": 48023, + ".toInt": 48024, + "Ġenchant": 48025, + "Ġstunned": 48026, + "Ġpoi": 48027, + "/code": 48028, + "adm": 48029, + ".databinding": 48030, + "ĠLorem": 48031, + "________________________________________________________________": 48032, + "Ġledger": 48033, + "Ġcara": 48034, + "ĠGir": 48035, + "Ġwaits": 48036, + "Uno": 48037, + "Ġcwd": 48038, + "è¾ij": 48039, + "ĠTResult": 48040, + "Ġrejo": 48041, + "Ġemitted": 48042, + "ĠWestminster": 48043, + "ä¸Ģ个": 48044, + "nek": 48045, + "_Tis": 48046, + "Ġenact": 48047, + "ĉwith": 48048, + "orgia": 48049, + "Ġjue": 48050, + "Perform": 48051, + "SPATH": 48052, + ".topic": 48053, + "ĠDaten": 48054, + "ầ": 48055, + "Ġsitio": 48056, + "_MM": 48057, + "\"So": 48058, + "bial": 48059, + "Ġscoped": 48060, + "Requires": 48061, + "ĠTOTAL": 48062, + "ĠChancellor": 48063, + "(contents": 48064, + "Ġstealth": 48065, + "devices": 48066, + "-pass": 48067, + "ilih": 48068, + "ĠMalcolm": 48069, + "ĠDepot": 48070, + "Ġconfigur": 48071, + "aussian": 48072, + "_constraint": 48073, + "веÑĤ": 48074, + "GRA": 48075, + "ĠRates": 48076, + ".dataGridViewTextBoxColumn": 48077, + "ĠNobel": 48078, + "itics": 48079, + "Ġignorant": 48080, + "ĠReporter": 48081, + "ĠEbola": 48082, + "ĠShock": 48083, + "_relation": 48084, + "ĠNinja": 48085, + ")c": 48086, + "Ġticker": 48087, + ".isChecked": 48088, + "ĠSuppliers": 48089, + "ĠRapid": 48090, + "Levels": 48091, + "âĤ¬âĦ¢": 48092, + "ĉqueue": 48093, + "Ġchop": 48094, + "ĠUnix": 48095, + "reject": 48096, + "-calendar": 48097, + "(sort": 48098, + "ène": 48099, + "ercicio": 48100, + "Ġhect": 48101, + "CALLTYPE": 48102, + "roupon": 48103, + "Ġrentals": 48104, + "authors": 48105, + "{name": 48106, + "ĠFIFO": 48107, + "Ġlassen": 48108, + "ĠNous": 48109, + "Ġsnapped": 48110, + "Ġfertility": 48111, + "\"log": 48112, + "clicked": 48113, + "Ġplanting": 48114, + "Ġgb": 48115, + "/output": 48116, + "PEAT": 48117, + "Ġcategoria": 48118, + "Ġbach": 48119, + "Professor": 48120, + "inth": 48121, + "\"]čĊ": 48122, + "Recorder": 48123, + "serde": 48124, + "ĠTransmission": 48125, + "trad": 48126, + "Ġturbo": 48127, + "_VERTEX": 48128, + "\\Event": 48129, + "ilver": 48130, + "Ġbodily": 48131, + "ĠSources": 48132, + "Ġkillings": 48133, + ".xrTableCell": 48134, + "Ġfolded": 48135, + "/legal": 48136, + "uner": 48137, + "ĠRifle": 48138, + "ĠMIDI": 48139, + "_SelectedIndexChanged": 48140, + ".SizeType": 48141, + "ĠWebSocket": 48142, + "Ġseleccion": 48143, + "Sand": 48144, + "otros": 48145, + "Ġenvision": 48146, + "/etc": 48147, + "ĠMelissa": 48148, + "Spot": 48149, + "ное": 48150, + "_ARM": 48151, + "Attempt": 48152, + "ĠBI": 48153, + "ãģĶ": 48154, + "ĠDU": 48155, + "Ġbacklash": 48156, + "stride": 48157, + "/classes": 48158, + "ĠtextColor": 48159, + "_staff": 48160, + "oblin": 48161, + "agenta": 48162, + ".collections": 48163, + "illage": 48164, + "'čĊčĊ": 48165, + "flatten": 48166, + "_sales": 48167, + "_MASTER": 48168, + "TW": 48169, + "_da": 48170, + "Pitch": 48171, + "phies": 48172, + "Ġzombies": 48173, + "ĠVERY": 48174, + "ĠPharmacy": 48175, + "ĠprogressBar": 48176, + "Ġhashtag": 48177, + "Sidebar": 48178, + "@stop": 48179, + "(pc": 48180, + "олж": 48181, + "MAKE": 48182, + "ĠCoron": 48183, + "Ġkvinner": 48184, + "ĠMaid": 48185, + "bob": 48186, + ".titleLabel": 48187, + "Ġsuccesses": 48188, + "ĠDemocracy": 48189, + "ĠSurgery": 48190, + "Ġcougar": 48191, + "Ġcurso": 48192, + "Ġloro": 48193, + "istency": 48194, + "Senior": 48195, + "æk": 48196, + "ĠAAA": 48197, + "ĠBOOK": 48198, + "ко": 48199, + "WSTR": 48200, + "Ġ*/,Ċ": 48201, + "oyal": 48202, + ".vector": 48203, + "ĠSPEC": 48204, + "SSF": 48205, + "Ġcompuls": 48206, + "ĠAppeals": 48207, + "ĠWinston": 48208, + "ĠMockito": 48209, + "contrib": 48210, + ".available": 48211, + "entityManager": 48212, + "arias": 48213, + "_sale": 48214, + "_rs": 48215, + "Ġdecoding": 48216, + "Ġlocator": 48217, + "olith": 48218, + "Ġkol": 48219, + "Ġascii": 48220, + "ĠRut": 48221, + "/interface": 48222, + "ĉĉĉĉĉĉĠĠĠ": 48223, + "ĠNumer": 48224, + ".flip": 48225, + "-del": 48226, + "Ġbolster": 48227, + "onomic": 48228, + "Ġzm": 48229, + "LG": 48230, + "FindBy": 48231, + "Ġadaptive": 48232, + "loo": 48233, + "Ġvue": 48234, + "(reverse": 48235, + "_canvas": 48236, + ".roles": 48237, + "ificado": 48238, + "venient": 48239, + "\"As": 48240, + "ĠEntr": 48241, + "aligned": 48242, + "Ġbereits": 48243, + "///ĊĊ": 48244, + ".gwt": 48245, + ".employee": 48246, + "_cli": 48247, + "Ġanticipate": 48248, + "éĻIJ": 48249, + "Ġpik": 48250, + "Ġmushrooms": 48251, + "(tt": 48252, + "Ġoma": 48253, + "ĠSanchez": 48254, + "_google": 48255, + ".Valid": 48256, + "ĠFileName": 48257, + "ivative": 48258, + "ked": 48259, + "-war": 48260, + "Ġmaturity": 48261, + "ид": 48262, + "Ġminer": 48263, + "Reducers": 48264, + "ĠLatLng": 48265, + "_STD": 48266, + "Digits": 48267, + "Calc": 48268, + "-upload": 48269, + "Ġhandic": 48270, + "ีà¹Ī": 48271, + "egrated": 48272, + "ĠSTM": 48273, + "Clients": 48274, + "ĠTurbo": 48275, + "SYNC": 48276, + "Ġphotographers": 48277, + ".Out": 48278, + ".character": 48279, + "BUILD": 48280, + ".unlock": 48281, + "Ġarises": 48282, + "ĠCommands": 48283, + "(\"\");čĊ": 48284, + "_FORE": 48285, + ";',": 48286, + "+\"'": 48287, + ".Images": 48288, + "\"){": 48289, + "ĠMeyer": 48290, + "Ġnegatively": 48291, + "ĠDLL": 48292, + "Ġexe": 48293, + "Ġdeficiency": 48294, + "Ġwildly": 48295, + "-switch": 48296, + "construction": 48297, + "Ġexceptionally": 48298, + "ĠLiz": 48299, + "/java": 48300, + "Ġtheirs": 48301, + "ĠContemporary": 48302, + "lis": 48303, + ".fillRect": 48304, + "ĠNFC": 48305, + "Ġrehe": 48306, + "(numbers": 48307, + "Ġraster": 48308, + "Ġfiguring": 48309, + "Ġshowc": 48310, + "ĠJill": 48311, + "Ġarcade": 48312, + "ĠConstructs": 48313, + "mdl": 48314, + "('|": 48315, + "Ġidentifiers": 48316, + "Ġstellar": 48317, + "(Connection": 48318, + "Ġ\"{{": 48319, + "yor": 48320, + "(mysqli": 48321, + "Ġdove": 48322, + "OfBirth": 48323, + ".disconnect": 48324, + "_hi": 48325, + "Ġzwischen": 48326, + "ĠGrund": 48327, + "iros": 48328, + "_Array": 48329, + ".onclick": 48330, + "ansom": 48331, + "Answers": 48332, + "ĉremove": 48333, + "Fa": 48334, + "Ġhurry": 48335, + "-inf": 48336, + "ĠgetClass": 48337, + "ĠRegulation": 48338, + "ĠFLAGS": 48339, + "misc": 48340, + "Ken": 48341, + "_heading": 48342, + "GHz": 48343, + "-entry": 48344, + "Ġbiography": 48345, + "Sig": 48346, + "-mf": 48347, + "Watcher": 48348, + "âĢľA": 48349, + "}px": 48350, + "Ġspicy": 48351, + "_sq": 48352, + "Lost": 48353, + "(track": 48354, + "али": 48355, + "Descending": 48356, + "((": 48553, + "survey": 48554, + "Ġíĺ": 48555, + "...')Ċ": 48556, + "ĠDivider": 48557, + "osl": 48558, + "_CANCEL": 48559, + "_prepare": 48560, + "stin": 48561, + "ĠHeath": 48562, + ".PrimaryKey": 48563, + "ĠâĨIJ": 48564, + "ĠLocalDateTime": 48565, + "Ġcooperative": 48566, + "Learning": 48567, + ".enqueue": 48568, + "Ġgoog": 48569, + "ĠRegression": 48570, + "imates": 48571, + "Ġvoyeur": 48572, + "ĠDrink": 48573, + "plug": 48574, + "Ġlender": 48575, + "mana": 48576, + "Ġpersonnes": 48577, + "ypse": 48578, + "Ġunlink": 48579, + "ĠRavens": 48580, + "Ġhurd": 48581, + "Ġperiodically": 48582, + "ARGS": 48583, + "ĠGH": 48584, + "characters": 48585, + "...\"ĊĊ": 48586, + "-establish": 48587, + "Ġdn": 48588, + "(condition": 48589, + "ĠGravity": 48590, + "Ġestas": 48591, + "_focus": 48592, + "Creature": 48593, + "(site": 48594, + "Ġcarr": 48595, + "ĠRL": 48596, + "ĠRI": 48597, + "ĠMoto": 48598, + "ASF": 48599, + "ĠLuckily": 48600, + "ĉRoute": 48601, + "Ġentropy": 48602, + "(\",\"": 48603, + "Collect": 48604, + "(contact": 48605, + "ĠFlorence": 48606, + "Ġpremiums": 48607, + "Ġlifecycle": 48608, + "Ġbans": 48609, + "xef": 48610, + "WebKit": 48611, + "ĠFloating": 48612, + "Ġcosa": 48613, + "Specific": 48614, + "ĠLoans": 48615, + "bread": 48616, + "Ġdescriptors": 48617, + "Ġ{:.": 48618, + "THREAD": 48619, + "ĠTrent": 48620, + "Ġscop": 48621, + "QA": 48622, + "ĠAntar": 48623, + "pel": 48624, + "_difference": 48625, + "_changes": 48626, + "(...)": 48627, + "ĠRotation": 48628, + "ĠLGPL": 48629, + "ĠJUST": 48630, + "(Task": 48631, + "_subset": 48632, + "ĠTRANS": 48633, + "åĬĽ": 48634, + "ĠScout": 48635, + "-popup": 48636, + "Ġsmoked": 48637, + "_Class": 48638, + "Ġturnover": 48639, + "brakk": 48640, + "ĠRocky": 48641, + "tas": 48642, + ".RegularExpressions": 48643, + "ĠElliott": 48644, + "ĠSpinner": 48645, + "DUCTION": 48646, + "Ġlibre": 48647, + "Ġmolto": 48648, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ": 48649, + "ĠFTP": 48650, + "mpeg": 48651, + "(features": 48652, + "Ġbald": 48653, + "ĠVid": 48654, + "Ġshouting": 48655, + "Lint": 48656, + "Ġsockets": 48657, + "Ġprow": 48658, + "Ġnouvelle": 48659, + "iscard": 48660, + "ĠSponsor": 48661, + "Ġconsulta": 48662, + ")));": 48663, + "Indian": 48664, + "ĠRaspberry": 48665, + "Ġteammate": 48666, + "ĠJWT": 48667, + "ĠGhana": 48668, + "Ġcakes": 48669, + "primer": 48670, + "forma": 48671, + "ergarten": 48672, + "_Manager": 48673, + "Ġpreseason": 48674, + "GAME": 48675, + "|\"": 48676, + "ĠBrock": 48677, + "Ġoccupy": 48678, + "Ġdecorations": 48679, + "ánd": 48680, + "Ġcot": 48681, + "Ġparan": 48682, + "Disk": 48683, + "remain": 48684, + ">?": 48685, + "Strong": 48686, + "Ġfrance": 48687, + "ĠEra": 48688, + "-cr": 48689, + ".BufferedReader": 48690, + "ĠParadise": 48691, + "ĠVAT": 48692, + "ĠAnders": 48693, + "Ġlimb": 48694, + "ampoo": 48695, + "Ġimperative": 48696, + "UTILITY": 48697, + "ĠRecognition": 48698, + "Ġragazze": 48699, + "Ġpops": 48700, + "ypress": 48701, + "Ġembargo": 48702, + "//{Ċ": 48703, + "Ġsyll": 48704, + "PTR": 48705, + "åŃĺåľ¨": 48706, + "Ġdidnt": 48707, + "Mailer": 48708, + "Ġacademics": 48709, + "ĠFrauen": 48710, + "neider": 48711, + "-rel": 48712, + "Ġrainbow": 48713, + "(In": 48714, + "Ġsliced": 48715, + "=============Ċ": 48716, + "(send": 48717, + "NSMutableDictionary": 48718, + "vos": 48719, + "(package": 48720, + "Ġordinance": 48721, + "viewer": 48722, + "ĠSantos": 48723, + "-selling": 48724, + "Ġgov": 48725, + "ettle": 48726, + "Ġfounders": 48727, + "Ġwaking": 48728, + "slashes": 48729, + "-pound": 48730, + "recht": 48731, + "ات": 48732, + ".onClick": 48733, + "Ġnord": 48734, + "ständ": 48735, + "_when": 48736, + "UTERS": 48737, + "icc": 48738, + "Ġcapsule": 48739, + "ĠWid": 48740, + "Marc": 48741, + "ุ": 48742, + "rored": 48743, + "UGE": 48744, + "LOUD": 48745, + "ĠAudit": 48746, + "ipients": 48747, + "opian": 48748, + "ĠSue": 48749, + "Ġwurden": 48750, + ".Helpers": 48751, + "Ġfactions": 48752, + "[np": 48753, + "-than": 48754, + "Ġreco": 48755, + "Ġkas": 48756, + "Ġcmds": 48757, + "/network": 48758, + "xbf": 48759, + "getColor": 48760, + "Ġbiased": 48761, + "ĠLak": 48762, + "Datas": 48763, + "vents": 48764, + "Ġë²": 48765, + "_PS": 48766, + ".Validate": 48767, + "Invoker": 48768, + "Ġneuen": 48769, + "Ġjuvenile": 48770, + "VISION": 48771, + "Ġdevote": 48772, + "Ġlinha": 48773, + "Ġdiscounted": 48774, + "\\Config": 48775, + "Ġworthwhile": 48776, + "Ġskinny": 48777, + "ĠCourses": 48778, + "leys": 48779, + "ĠMortgage": 48780, + "Kevin": 48781, + "Ġannounces": 48782, + "])*": 48783, + "reservation": 48784, + "Ġæķ°": 48785, + "Ġprejudice": 48786, + "ĠStringComparison": 48787, + "Ġbeard": 48788, + "-win": 48789, + "ĠSão": 48790, + "ĉms": 48791, + "jal": 48792, + "ĠEarn": 48793, + "_ports": 48794, + "ĠNombre": 48795, + "_COR": 48796, + "ĠBUILD": 48797, + ".sound": 48798, + "Yellow": 48799, + "Ġlinebacker": 48800, + "Ġcharitable": 48801, + "jug": 48802, + "_NONNULL": 48803, + "ĠDental": 48804, + "\">${": 48805, + "ĉmatch": 48806, + "Russian": 48807, + "Ġversch": 48808, + "Ġpinned": 48809, + "Ġadopting": 48810, + "OptionsMenu": 48811, + "Pag": 48812, + "Ġpairing": 48813, + "Ġtread": 48814, + "ercises": 48815, + "ĠSpread": 48816, + ")i": 48817, + "ĠBAD": 48818, + "_tf": 48819, + "UIImageView": 48820, + "populate": 48821, + "bab": 48822, + "ĠÏĥ": 48823, + "[++": 48824, + "Ġopioid": 48825, + "Ġ##Ċ": 48826, + "dtype": 48827, + "ĠStarts": 48828, + "('/')": 48829, + "Ġpersonals": 48830, + "-market": 48831, + "Ġredundant": 48832, + "ĠEssential": 48833, + "Ġscrapy": 48834, + "Ġим": 48835, + "acl": 48836, + "Ġcrear": 48837, + "ĠBend": 48838, + "Ġrelieve": 48839, + "-room": 48840, + "wife": 48841, + "ĠvÃł": 48842, + "ĠQPoint": 48843, + "Ġquasi": 48844, + "ĠmethodName": 48845, + "\\xc": 48846, + "ĠPeru": 48847, + "/The": 48848, + ".orm": 48849, + "Ġviz": 48850, + "/pdf": 48851, + "Located": 48852, + "Ġconfrontation": 48853, + "ĠChampionships": 48854, + "Ġhypert": 48855, + "Ġdj": 48856, + "ĠUserInfo": 48857, + "ĠåĪĽå»º": 48858, + "\\xb": 48859, + "(sim": 48860, + "Ġ==Ċ": 48861, + "Ġstaging": 48862, + "Ġdrastically": 48863, + "åѦ": 48864, + "lords": 48865, + ".less": 48866, + "ведиÑĤе": 48867, + "ĠBucket": 48868, + "ĠMam": 48869, + ".term": 48870, + "_pi": 48871, + "czy": 48872, + ".pub": 48873, + "precio": 48874, + "ĠVirt": 48875, + "Ġroman": 48876, + "itat": 48877, + "Lex": 48878, + "_infos": 48879, + "Ä°": 48880, + ".other": 48881, + "VELO": 48882, + "Ġponder": 48883, + "Ġhanno": 48884, + "(Page": 48885, + "doi": 48886, + "Ġpolite": 48887, + "Ġprogrammer": 48888, + "Dies": 48889, + "$d": 48890, + "Ġreplication": 48891, + "addColumn": 48892, + "frican": 48893, + "Ġleng": 48894, + "beer": 48895, + "oit": 48896, + "Ġwasting": 48897, + "ylim": 48898, + "measure": 48899, + "Neg": 48900, + "Ġpartie": 48901, + ".console": 48902, + "ĠGuinea": 48903, + "TEL": 48904, + "_fact": 48905, + ".chunk": 48906, + "Ġlent": 48907, + "Ġaller": 48908, + "Ġà¤ķ": 48909, + "_idle": 48910, + "Ġadmissions": 48911, + "JSONArray": 48912, + "Ġvibration": 48913, + ".helpers": 48914, + "å¤ĸ": 48915, + "Ġhen": 48916, + "john": 48917, + "ĠìĥĿ": 48918, + "Ġjudgement": 48919, + "Ġgeen": 48920, + "terra": 48921, + "^{": 48922, + "ĠIz": 48923, + "Ġcâ": 48924, + "instances": 48925, + "Ġthreatens": 48926, + "Ġmüssen": 48927, + "KindOfClass": 48928, + "Ġstorytelling": 48929, + "_demo": 48930, + "rias": 48931, + "Privacy": 48932, + "hift": 48933, + "ĠYi": 48934, + "esor": 48935, + "íķł": 48936, + "ensitivity": 48937, + ".Writer": 48938, + "à¸Ĥ": 48939, + "District": 48940, + ".getJSONObject": 48941, + "Impro": 48942, + "(getResources": 48943, + "ĠSPELL": 48944, + "roduce": 48945, + "Ġslowed": 48946, + "Ġlinewidth": 48947, + "Ġhonesty": 48948, + "ĠCoord": 48949, + "ĠFork": 48950, + "ĠDispatchQueue": 48951, + "ĠCliff": 48952, + "ĠWiring": 48953, + "_TIMESTAMP": 48954, + "ollah": 48955, + "avoid": 48956, + "++];Ċ": 48957, + "semantic": 48958, + "-css": 48959, + "Ġveto": 48960, + "ĠMerr": 48961, + "Ġlegislators": 48962, + "CEEDED": 48963, + "Ġquestionnaire": 48964, + "ĠPills": 48965, + "Calculate": 48966, + "(core": 48967, + "'e": 48968, + "Ġdislike": 48969, + "ĠPreferences": 48970, + "_EXTERNAL": 48971, + "è°ĥ": 48972, + "Ġdodge": 48973, + "æľįåĬ¡": 48974, + ".names": 48975, + ".drawImage": 48976, + "_prom": 48977, + "uckland": 48978, + "Ġ<$>": 48979, + "ız": 48980, + "/site": 48981, + "项": 48982, + "rophe": 48983, + "Ġcompelled": 48984, + "Ġlaptops": 48985, + "Ġuni": 48986, + "CLOSE": 48987, + "Ġcasualties": 48988, + "ĠUniform": 48989, + "Terminal": 48990, + ".\",\"": 48991, + "DAT": 48992, + "(TreeNode": 48993, + "ĠGandhi": 48994, + "(stmt": 48995, + "AXB": 48996, + "*M": 48997, + "Ġumbrella": 48998, + "animal": 48999, + "Ġgrpc": 49000, + "Ġwhereby": 49001, + "Ġfloats": 49002, + "ĉarg": 49003, + "Ġdbg": 49004, + "Ġexceeding": 49005, + "EventType": 49006, + ".SaveChangesAsync": 49007, + "Ġ{{{": 49008, + "Ġowed": 49009, + "ahrenheit": 49010, + "Ġì§": 49011, + "Ġequipo": 49012, + "urai": 49013, + "Ġidol": 49014, + "]\")Ċ": 49015, + "_major": 49016, + "Ġentirety": 49017, + "ingerprint": 49018, + "ços": 49019, + "/account": 49020, + "ĉright": 49021, + "ursos": 49022, + "ĠEDT": 49023, + "_INSERT": 49024, + "Ġshining": 49025, + "Ġ<:": 49026, + "EdgeInsets": 49027, + "Ġcolonies": 49028, + ".IM": 49029, + "ĉĠĉ": 49030, + "ROAD": 49031, + "CCCC": 49032, + "placing": 49033, + "ĠgetActivity": 49034, + "emacs": 49035, + "'%(": 49036, + ".clicked": 49037, + "ĠThem": 49038, + "isia": 49039, + "Buscar": 49040, + ".rename": 49041, + "Ġoath": 49042, + "Ġafterward": 49043, + "ĠUFO": 49044, + "APS": 49045, + "ĠJacksonville": 49046, + ".some": 49047, + "Confirmed": 49048, + ".scan": 49049, + "igInteger": 49050, + "Decorator": 49051, + "shield": 49052, + "ressive": 49053, + ".did": 49054, + "请è¾ĵåħ¥": 49055, + "Ġshutter": 49056, + "Dam": 49057, + "Ġparenting": 49058, + "eyed": 49059, + "$item": 49060, + "-develop": 49061, + "Ġextracts": 49062, + "Ġdecentralized": 49063, + "ĠElsa": 49064, + "_spin": 49065, + "])+": 49066, + "-initial": 49067, + "Ġmultitude": 49068, + "Ġsensory": 49069, + "ĠMODEL": 49070, + "Ġsafeguard": 49071, + "ì¹": 49072, + "Ġhunters": 49073, + "ĠTiny": 49074, + "INO": 49075, + "decorate": 49076, + "ĠNoSuch": 49077, + "Ho": 49078, + "(Response": 49079, + "Ġruler": 49080, + "ĉshort": 49081, + "Ġcaster": 49082, + "ĠclientId": 49083, + "Ġpdb": 49084, + "ëıĦ": 49085, + "itic": 49086, + "ĠGameState": 49087, + "ĠnewItem": 49088, + ")ĊĊĊĊĊĊ": 49089, + "ouis": 49090, + "noc": 49091, + ".BLACK": 49092, + "_VECTOR": 49093, + "----------();": 49381, + ".getP": 49382, + "anye": 49383, + "Ġneuron": 49384, + "ifold": 49385, + "ĠKnown": 49386, + "Bitcoin": 49387, + "Anyway": 49388, + "ayette": 49389, + "Ġ'['": 49390, + "Ãłnh": 49391, + "mgr": 49392, + "Ġcorrelated": 49393, + "Ġnause": 49394, + "Ġmentality": 49395, + "hasMany": 49396, + "ĠFG": 49397, + "ampie": 49398, + "ITU": 49399, + "Fs": 49400, + ".Sp": 49401, + "_between": 49402, + "Dependencies": 49403, + "oug": 49404, + "Placeholder": 49405, + "=text": 49406, + "ĠManaging": 49407, + "ocalypse": 49408, + "åĮĹ": 49409, + "_mag": 49410, + "fld": 49411, + "âij": 49412, + "CAM": 49413, + "ĠHelpers": 49414, + "Ġdost": 49415, + "/out": 49416, + "Ġassassination": 49417, + ".getImage": 49418, + "ĠKenny": 49419, + ".')ĊĊ": 49420, + "){//": 49421, + "ĠRanger": 49422, + "Ġgek": 49423, + "Ġsincere": 49424, + "čĊ": 49627, + ".getResources": 49628, + "Ġlump": 49629, + "_consts": 49630, + "(ext": 49631, + "ĉdir": 49632, + "âĿ": 49633, + "ĠpaddingTop": 49634, + "Ġobsession": 49635, + "Ġbanning": 49636, + "ĠAppModule": 49637, + "Ġpartisan": 49638, + "Ġcatalogue": 49639, + "Ġminors": 49640, + "Ġpitches": 49641, + "weep": 49642, + "Ġundertake": 49643, + "Ġthemed": 49644, + "audit": 49645, + ".scrollTop": 49646, + "Ġrer": 49647, + "Ġsymptom": 49648, + "Ġopenings": 49649, + ".blocks": 49650, + "openid": 49651, + "Ġassh": 49652, + "-save": 49653, + "ĠPig": 49654, + "Ġregain": 49655, + "Ġinicial": 49656, + "/favicon": 49657, + "ĉexp": 49658, + "Ġspices": 49659, + "iska": 49660, + "claims": 49661, + "mak": 49662, + "definitions": 49663, + "Ġcorrespondent": 49664, + "ĠCannabis": 49665, + "__,Ċ": 49666, + "ĠLucky": 49667, + "ĠGaussian": 49668, + "ĠNearly": 49669, + "CAD": 49670, + "']]Ċ": 49671, + "Ġadequately": 49672, + "ĠTITLE": 49673, + "constitutional": 49674, + "-mm": 49675, + "_override": 49676, + "Ġblas": 49677, + ".readyState": 49678, + "Ġreminis": 49679, + "Ġreinforced": 49680, + "ĠCollabor": 49681, + "Ġdecorating": 49682, + "Ġbachelor": 49683, + "ERRUPT": 49684, + "Ġupright": 49685, + "ipation": 49686, + "ĠNoble": 49687, + "ĠvalueForKey": 49688, + "ĠsetLoading": 49689, + ".Ignore": 49690, + "åģ": 49691, + "Globals": 49692, + "ĠMent": 49693, + "ASSES": 49694, + "Ġlimbs": 49695, + "ĠHUD": 49696, + "inci": 49697, + ".iv": 49698, + "ĠQModelIndex": 49699, + "Fuse": 49700, + "Ġpedal": 49701, + "_FREQ": 49702, + "(verbose": 49703, + "Ġlongitud": 49704, + "ĠCharter": 49705, + "ê·¸": 49706, + "Ġbundles": 49707, + ".ignore": 49708, + "umbo": 49709, + "EMA": 49710, + ".......": 49711, + "sx": 49712, + ".Card": 49713, + "Ġheute": 49714, + "Ġsteer": 49715, + "jumlah": 49716, + "Ġ{_": 49717, + "_Checked": 49718, + "Ġfax": 49719, + "ĠGust": 49720, + "itchens": 49721, + "Ġ))ĊĊ": 49722, + "Ġremarkably": 49723, + "/XML": 49724, + "-remove": 49725, + "_bt": 49726, + "Ġincub": 49727, + ".package": 49728, + ".currentThread": 49729, + "ĠHighlander": 49730, + ".side": 49731, + "splash": 49732, + "Ġici": 49733, + "=D": 49734, + "Ġpuck": 49735, + "Ġballots": 49736, + "Ġhugely": 49737, + "coeff": 49738, + "ĠpData": 49739, + ".COLUMN": 49740, + "ĠHealing": 49741, + "Ġordin": 49742, + "!),": 49743, + "Ġ'',čĊ": 49744, + "(md": 49745, + "ĠSask": 49746, + "čĊ": 49768, + "Ġrá": 49769, + "Ġblunt": 49770, + "ĠImageIcon": 49771, + "ifik": 49772, + "RTC": 49773, + "Ġfibers": 49774, + "Ġtoile": 49775, + ".sent": 49776, + "ĠPyQt": 49777, + "$app": 49778, + "Ġmedio": 49779, + "Ġgranting": 49780, + "Ġtslint": 49781, + "ĠMö": 49782, + "(figsize": 49783, + "Ġhurricane": 49784, + "Ġlifes": 49785, + "ĠÃĦ": 49786, + "rocessing": 49787, + "_standard": 49788, + "-option": 49789, + "')))": 49790, + "Ġvacant": 49791, + "å·¥": 49792, + "ĠHollow": 49793, + "handleChange": 49794, + "Ġdivider": 49795, + "ĠEngineers": 49796, + "Ġsvens": 49797, + "Ġcompliant": 49798, + "tanggal": 49799, + "ĠCredits": 49800, + "ĠEmirates": 49801, + "RuleContext": 49802, + "Ġrealization": 49803, + "Ġdistracted": 49804, + "]+=": 49805, + "Ġaugment": 49806, + "ĠDw": 49807, + "otp": 49808, + "orrent": 49809, + "Editar": 49810, + ".stock": 49811, + "Study": 49812, + "pections": 49813, + "ĠGameManager": 49814, + "=cut": 49815, + "Ġflock": 49816, + "ĠRomans": 49817, + "them": 49818, + "-hop": 49819, + "Ġscreenshots": 49820, + "Ġ/*!Ċ": 49821, + "Ġconversions": 49822, + "Ġnormalization": 49823, + "(configuration": 49824, + "Ġaeros": 49825, + "_security": 49826, + "!'Ċ": 49827, + "Bonus": 49828, + "ĠDRIVER": 49829, + "ĉDate": 49830, + "tie": 49831, + "ĠWyoming": 49832, + "Stand": 49833, + "itre": 49834, + "Ġshoppers": 49835, + "Ġdisadvantage": 49836, + "Ġliking": 49837, + "ç¬ij": 49838, + "Ġunderstandable": 49839, + "SEE": 49840, + "Ġhoy": 49841, + "Ġninete": 49842, + "Ġconfer": 49843, + "Ġnowrap": 49844, + "ĠVern": 49845, + ",čĊčĊ": 49846, + "imestep": 49847, + "LayoutManager": 49848, + "à·": 49849, + "ĉwait": 49850, + "PLETED": 49851, + "Japan": 49852, + "Ġinduce": 49853, + "Ġå¯": 49854, + "озв": 49855, + "_ENDPOINT": 49856, + ".horizontal": 49857, + "Ġaccelerated": 49858, + "rimon": 49859, + "IVES": 49860, + "Transactions": 49861, + "Lean": 49862, + "ĠSOUR": 49863, + "whether": 49864, + "yg": 49865, + "Ġoid": 49866, + "ĠEntityManager": 49867, + "OUNTRY": 49868, + "Ġfila": 49869, + "OLUMNS": 49870, + "INUE": 49871, + "ĠAnchor": 49872, + "TRAN": 49873, + "woo": 49874, + "blockquote": 49875, + "ĠNurse": 49876, + "ĠCarp": 49877, + "Ġredeem": 49878, + ".try": 49879, + "ĠJP": 49880, + "Ġtimestamps": 49881, + "Ġ?>\"><": 49882, + "ĠREMOVE": 49883, + "ĠStarbucks": 49884, + "Really": 49885, + "Ġflooded": 49886, + ".Callback": 49887, + "DropDown": 49888, + "ipro": 49889, + "Ġtended": 49890, + "lte": 49891, + "Ġproportions": 49892, + "-te": 49893, + "ĠRena": 49894, + "licate": 49895, + "forces": 49896, + ".extra": 49897, + ".authenticate": 49898, + "вод": 49899, + "¡°": 49900, + "ĠforControlEvents": 49901, + "Ġsenha": 49902, + "Ġkein": 49903, + "Ġminist": 49904, + "ĠPreference": 49905, + "ĠTelegraph": 49906, + "Ñĥп": 49907, + "strpos": 49908, + "Ġillnesses": 49909, + "Ġpigs": 49910, + "ĠgetIntent": 49911, + "Sol": 49912, + "Ġ¡": 49913, + "(cpu": 49914, + "[prop": 49915, + "screens": 49916, + "');?>": 49917, + "ĠActs": 49918, + "Ġstrdup": 49919, + "Ġaverages": 49920, + "anal": 49921, + "ĠCasual": 49922, + "GroupBox": 49923, + "ĠHandbook": 49924, + "/comments": 49925, + "Ġnumbered": 49926, + "Ġbroadcasting": 49927, + "çĽij": 49928, + ".nativeElement": 49929, + ".mu": 49930, + "ĠupdatedAt": 49931, + "ĠDoesn": 49932, + ".AC": 49933, + ".coll": 49934, + "Ġrecorder": 49935, + "_sha": 49936, + "Bg": 49937, + "bil": 49938, + "Ġbolts": 49939, + "Ġç¬": 49940, + "Ġimposing": 49941, + "ĠInformationen": 49942, + "_flashdata": 49943, + "economic": 49944, + "Remark": 49945, + "ucas": 49946, + "ĠOfficers": 49947, + "ĠTER": 49948, + "Walk": 49949, + "Ġmercado": 49950, + "_generate": 49951, + "HY": 49952, + "Calling": 49953, + "snap": 49954, + "scriptId": 49955, + ".operation": 49956, + "ĠFlame": 49957, + "liness": 49958, + "Ġrented": 49959, + "_toggle": 49960, + "-changing": 49961, + "ĠTY": 49962, + "'util": 49963, + "EEP": 49964, + "Ġgraphql": 49965, + "ĠUni": 49966, + "Ġimpulse": 49967, + ".Basic": 49968, + "Ġenergies": 49969, + "MARY": 49970, + "ĠMarcel": 49971, + "Ġmortal": 49972, + "Ġfres": 49973, + "mens": 49974, + "motion": 49975, + "Ġsampled": 49976, + "âĢľThat": 49977, + "iday": 49978, + "quipment": 49979, + "getInt": 49980, + "ĠAbsolute": 49981, + ",'\"": 49982, + "uned": 49983, + ".share": 49984, + "Ġ})(": 49985, + "mmm": 49986, + "ĠRising": 49987, + "ä»»": 49988, + "Ġunemployed": 49989, + "xfa": 49990, + ".follow": 49991, + "ĉĉĉĉĠĠĠĠĠĠ": 49992, + "slt": 49993, + ".Phone": 49994, + "Ġknives": 49995, + "Ġeve": 49996, + "onClick": 49997, + "]))čĊ": 49998, + "ĠWitness": 49999, + "ĉNS": 50000, + "ĠEOS": 50001, + "ĠStefan": 50002, + "ĠPriest": 50003, + "âĢĶwhich": 50004, + "GetString": 50005, + ".By": 50006, + "Ġupstairs": 50007, + "Ġdetriment": 50008, + "broken": 50009, + "embro": 50010, + "Ġnicotine": 50011, + "ilion": 50012, + "Ġastonishing": 50013, + "_aff": 50014, + "ĠLesson": 50015, + "Ġaccidental": 50016, + "odor": 50017, + "Ġdecir": 50018, + "ĠnewName": 50019, + "+.": 50020, + "缸": 50021, + "igslist": 50022, + "ĠGithub": 50023, + "Ġsuccessive": 50024, + "racial": 50025, + "Ġenviron": 50026, + "éªĮè¯ģ": 50027, + "Ġredirected": 50028, + "TOTAL": 50029, + "Ġgrabbing": 50030, + "ĠLance": 50031, + "Ġforfe": 50032, + "_CB": 50033, + "å¾®": 50034, + "Elapsed": 50035, + "_way": 50036, + "(DialogInterface": 50037, + "_measure": 50038, + "xbb": 50039, + "Dog": 50040, + "Depart": 50041, + "-src": 50042, + "resolver": 50043, + "withstanding": 50044, + "_shell": 50045, + "ĠLastName": 50046, + "ĠAviation": 50047, + "Ġbeginner": 50048, + "(\"%.": 50049, + "(tool": 50050, + "Ġнов": 50051, + ":init": 50052, + "(API": 50053, + "ĠMorrison": 50054, + "vtColor": 50055, + "Ġstaple": 50056, + "/INFO": 50057, + "Ġsupernatural": 50058, + "Ġsteak": 50059, + "timeline": 50060, + "zzle": 50061, + "\"`ĊĊ": 50062, + "Secondary": 50063, + "ĠNepal": 50064, + ".StringUtils": 50065, + "Ġadam": 50066, + "Ġ(...": 50067, + "Ġsubstitution": 50068, + "Ġboarding": 50069, + "ĠKeyword": 50070, + "ĠAssault": 50071, + "dbcTemplate": 50072, + "ĠorderId": 50073, + "(engine": 50074, + ".assertThat": 50075, + "ĠVenus": 50076, + "Ġhomicide": 50077, + "ĠAval": 50078, + "Ġgutter": 50079, + "ĠSupported": 50080, + "/part": 50081, + "Ġacclaimed": 50082, + "Histor": 50083, + "Ġmeses": 50084, + "über": 50085, + "ĠRenew": 50086, + "Ġgras": 50087, + "ĠEk": 50088, + "Ġinfile": 50089, + "indy": 50090, + ".music": 50091, + ".Scroll": 50092, + "ĠAges": 50093, + "ĠNaruto": 50094, + "ĠGather": 50095, + "Ġconfirming": 50096, + "=(\"": 50097, + "Ġpitched": 50098, + "oley": 50099, + "France": 50100, + "+'\"": 50101, + "$total": 50102, + "Ġonde": 50103, + "Ġditch": 50104, + "_sigma": 50105, + "Ġcontinuity": 50106, + "reward": 50107, + "-load": 50108, + "Ġproceso": 50109, + "Locked": 50110, + "staw": 50111, + "Ġspinal": 50112, + "lazy": 50113, + "!==": 50114, + "jest": 50115, + "Ġdun": 50116, + "ĠRodgers": 50117, + "ĉgrid": 50118, + "Ġlogos": 50119, + "ĠBengal": 50120, + ".super": 50121, + "Provides": 50122, + "Ġnutrient": 50123, + ".Timestamp": 50124, + "IZATION": 50125, + "åĨĮ": 50126, + "Ġfats": 50127, + "ĠXxx": 50128, + "ctica": 50129, + "Targets": 50130, + "Ġcontours": 50131, + "Ġreordered": 50132, + ":Array": 50133, + "Ġtolerate": 50134, + "Vir": 50135, + "Ġterribly": 50136, + "Ġbricks": 50137, + "(&_": 50138, + "hb": 50139, + "Portal": 50140, + "ĠBread": 50141, + ".which": 50142, + "ÂŃt": 50143, + "asInstanceOf": 50144, + "Ġjobject": 50145, + "ĉlength": 50146, + "_MT": 50147, + ";\">čĊ": 50148, + "_EXIST": 50149, + "Ġmaternal": 50150, + "REL": 50151, + "Ġê²½ìļ°": 50152, + "hee": 50153, + "Ġlayouts": 50154, + "ĠLap": 50155, + "aisy": 50156, + "Ġstumbled": 50157, + "ĠUIG": 50158, + "ĠSco": 50159, + "Ġimpaired": 50160, + "RESSED": 50161, + "Ġabuses": 50162, + "VF": 50163, + "ARB": 50164, + ".NAME": 50165, + "rch": 50166, + "primir": 50167, + "_completed": 50168, + "Ġpenny": 50169, + "Chrome": 50170, + "(begin": 50171, + "ernen": 50172, + "-checkbox": 50173, + "PlainOldData": 50174, + "ĠLPC": 50175, + "rade": 50176, + "spir": 50177, + "Ġconceived": 50178, + "Tips": 50179, + "ĠIoT": 50180, + "ĠGan": 50181, + "èģĶ": 50182, + "Ġbiases": 50183, + "Ġconsultants": 50184, + "pled": 50185, + "_ht": 50186, + "associated": 50187, + "],ĊĊ": 50188, + "Ġdelightful": 50189, + "ĠÑĤек": 50190, + "Helvetica": 50191, + "(load": 50192, + "-expand": 50193, + "_WIDGET": 50194, + "toa": 50195, + "ĠAkt": 50196, + "Ġomn": 50197, + "Ġclauses": 50198, + "Intel": 50199, + "*/}Ċ": 50200, + "_registration": 50201, + "ĠoldValue": 50202, + "Ġrestoring": 50203, + "Ġunreal": 50204, + "OVER": 50205, + "ĉĊĉĊĉĊ": 50206, + "ATS": 50207, + "_probe": 50208, + "Ġdivisor": 50209, + ".updateDynamic": 50210, + "å¹³": 50211, + "Produces": 50212, + "stamp": 50213, + ".jboss": 50214, + "ĉtask": 50215, + "!(:": 50216, + "Ġpsychic": 50217, + "@class": 50218, + "Martin": 50219, + "ĠPassed": 50220, + "clarations": 50221, + "hel": 50222, + "аÑĩ": 50223, + "ĉcopy": 50224, + "-bin": 50225, + "zan": 50226, + "igram": 50227, + "াà¦": 50228, + "(sig": 50229, + "ĠCaval": 50230, + "_##": 50231, + "Ġ%=": 50232, + "outlined": 50233, + "ĠAcid": 50234, + "Ġunpredictable": 50235, + "-dashboard": 50236, + "HexString": 50237, + "+c": 50238, + ".Public": 50239, + "ẩ": 50240, + "Ġconveyor": 50241, + "ĠEB": 50242, + "Ġselects": 50243, + "Ġknocking": 50244, + "ĠCec": 50245, + "IBUTES": 50246, + "owaÄĩ": 50247, + "gatsby": 50248, + "*v": 50249, + "entropy": 50250, + "Ġdispatched": 50251, + "Ġcamel": 50252, + "ĠSaturn": 50253, + "Ġoverweight": 50254, + "(phone": 50255, + "parable": 50256, + "%B": 50257, + "_vectors": 50258, + "Ġbrewing": 50259, + "ĠTk": 50260, + "ĠDownloads": 50261, + "ĠSaved": 50262, + ".Price": 50263, + "Ġcurved": 50264, + "ĠParenthood": 50265, + "è¶": 50266, + ".pnl": 50267, + "pletely": 50268, + ".Day": 50269, + "Ġadvertisers": 50270, + "Ġejec": 50271, + "Ġprzed": 50272, + "ë¯": 50273, + "!';Ċ": 50274, + "ĠKush": 50275, + "ĠTAB": 50276, + "Ġquests": 50277, + "Ġcoincidence": 50278, + "ummies": 50279, + "ĠKashmir": 50280, + "ĠEthics": 50281, + "_growth": 50282, + "Ġaktiv": 50283, + "Ġgrouping": 50284, + "å¢ŀ": 50285, + "_truth": 50286, + "åIJ¬": 50287, + "todos": 50288, + "iset": 50289, + "TexCoord": 50290, + "ätt": 50291, + "ĠZur": 50292, + "roys": 50293, + "_MAGIC": 50294, + "Ġbrewery": 50295, + "(State": 50296, + "ĠSMALL": 50297, + "ĠPlants": 50298, + "itbart": 50299, + "eacher": 50300, + "ĠAdelaide": 50301, + "Lu": 50302, + "Ġfick": 50303, + "undles": 50304, + "_loaded": 50305, + "ие": 50306, + "Poll": 50307, + "ritic": 50308, + "ELY": 50309, + "Ġ+'": 50310, + "ĠProfession": 50311, + "Ġstamps": 50312, + "ĠSew": 50313, + "scrollView": 50314, + "Ġcommunist": 50315, + "/problems": 50316, + "}čĊčĊčĊčĊ": 50317, + ",o": 50318, + "Ġudp": 50319, + "Ġobese": 50320, + "approve": 50321, + "ancellation": 50322, + "_Game": 50323, + "ĠHashtable": 50324, + "adaptiveStyles": 50325, + "Ġpossesses": 50326, + ".matcher": 50327, + "functional": 50328, + "Mrs": 50329, + "ĉsave": 50330, + "ĠDbType": 50331, + "Ġken": 50332, + "getContext": 50333, + "Ġmans": 50334, + "(rel": 50335, + "ĠBrotherhood": 50336, + ")`Ċ": 50337, + "解": 50338, + ".Information": 50339, + "OutOfRangeException": 50340, + "ĠSek": 50341, + "Cas": 50342, + "Ġbloggers": 50343, + "Either": 50344, + "(\"\"\"": 50345, + "Ġpinch": 50346, + "Ġcoarse": 50347, + ")p": 50348, + "ĠPulse": 50349, + "Ġlearnt": 50350, + "Ġdentist": 50351, + "Ġonchange": 50352, + "Ġdirectives": 50353, + "(actions": 50354, + "nyder": 50355, + "ĠShir": 50356, + "Trait": 50357, + "_dep": 50358, + "ĠPET": 50359, + "ĠREP": 50360, + ".AppSettings": 50361, + "cuador": 50362, + "idenav": 50363, + "Ġenvi": 50364, + "Ġslammed": 50365, + "ĠShoot": 50366, + "ĠdateFormat": 50367, + ".joda": 50368, + "veys": 50369, + "Ġ).ĊĊ": 50370, + "Ġcareg": 50371, + "ĠParallel": 50372, + "_translation": 50373, + ".functions": 50374, + ".obs": 50375, + "RuntimeException": 50376, + "[]=": 50377, + "overview": 50378, + "ĠSchl": 50379, + "Ġnoisy": 50380, + "ĠOnPropertyChanged": 50381, + "Sending": 50382, + "Ġunfamiliar": 50383, + "Upon": 50384, + "ĠPrints": 50385, + ".typ": 50386, + "Ġfleeing": 50387, + "ĉmove": 50388, + "(Un": 50389, + "Ġqr": 50390, + "׾": 50391, + "_beta": 50392, + "Ġskies": 50393, + "ĉme": 50394, + "WND": 50395, + "Ġstickers": 50396, + "blas": 50397, + "Ġinserts": 50398, + "Ġverses": 50399, + "ĠDew": 50400, + "Ġtangible": 50401, + "Ġhecho": 50402, + "POL": 50403, + "Ġteardown": 50404, + "omnia": 50405, + "IBE": 50406, + ".cover": 50407, + "_strategy": 50408, + "^-": 50409, + "setPosition": 50410, + "uale": 50411, + "Signed": 50412, + "Ġiface": 50413, + "aseline": 50414, + ".setTime": 50415, + "ĠMineral": 50416, + "ĠFighting": 50417, + "skins": 50418, + "Ġdiscrimin": 50419, + "Ġdansk": 50420, + "ĠPrinceton": 50421, + "acist": 50422, + "Ġ());Ċ": 50423, + "tracks": 50424, + "imonial": 50425, + "adecimal": 50426, + "EPROM": 50427, + "uggle": 50428, + ".Notification": 50429, + "$mail": 50430, + "cantidad": 50431, + "ĠJung": 50432, + "Ġseekers": 50433, + "Ġplausible": 50434, + "tier": 50435, + "еж": 50436, + "Ġrapper": 50437, + "ĠMana": 50438, + "ĠHttpStatusCode": 50439, + "Ġburnt": 50440, + "loses": 50441, + "ĠFoto": 50442, + "ĠJsonObject": 50443, + "Instagram": 50444, + "Ġsyscall": 50445, + "Ġrealities": 50446, + "ĠMATLAB": 50447, + ":^{Ċ": 50448, + "TERM": 50449, + "ĠCbd": 50450, + "ĠParagraph": 50451, + "Ġtravés": 50452, + "Ġconstructing": 50453, + "Ġswal": 50454, + "Ġpige": 50455, + "LLLL": 50456, + "-existing": 50457, + "Gets": 50458, + "Ġmelted": 50459, + "Ġmitigate": 50460, + "Hen": 50461, + "Ġhm": 50462, + "imas": 50463, + "ĠAo": 50464, + "ĠPerez": 50465, + "ĠDAL": 50466, + "Ġëĭ¤": 50467, + "Ġdivis": 50468, + "StoryboardSegue": 50469, + "ĠModify": 50470, + "ĠÃľber": 50471, + "_OVERRIDE": 50472, + ".pem": 50473, + "untos": 50474, + "Ġespañ": 50475, + "Ġ{?": 50476, + "ĠPAY": 50477, + "_ipv": 50478, + "ĠFury": 50479, + "__.__": 50480, + "elow": 50481, + "-centered": 50482, + "checks": 50483, + "_Reg": 50484, + "-Javadoc": 50485, + "ĉload": 50486, + "ĠLikewise": 50487, + "اÙħ": 50488, + "UNE": 50489, + ".sem": 50490, + "xcb": 50491, + "ĠCave": 50492, + "_sleep": 50493, + "Ġsilently": 50494, + "ĠExtreme": 50495, + ".ToUpper": 50496, + "ĉCHECK": 50497, + "Ġcue": 50498, + "ĠQByteArray": 50499, + "Ġcorrupted": 50500, + "ĠDé": 50501, + "Ġimped": 50502, + "GetName": 50503, + "Ġinaccurate": 50504, + "Ġsober": 50505, + "ее": 50506, + "Ġbarcode": 50507, + "--){Ċ": 50508, + "inki": 50509, + "Ġép": 50510, + "Ġdri": 50511, + "ĠALT": 50512, + ">>>>>>>>": 50513, + "onta": 50514, + "[L": 50515, + "Ġinteres": 50516, + "verting": 50517, + "Ġdiagnostics": 50518, + "pdev": 50519, + "è©": 50520, + "ĠIntegrated": 50521, + ").'": 50522, + "_gc": 50523, + "$text": 50524, + ".games": 50525, + "ĠTerra": 50526, + "'Re": 50527, + ".transfer": 50528, + "_FIFO": 50529, + "getModel": 50530, + "Ġbland": 50531, + "ĠColeman": 50532, + "Ġprimes": 50533, + "ĠæĪ": 50534, + "Ġcrosses": 50535, + "nk": 50536, + "GING": 50537, + "Ġ'^": 50538, + "ĠBlob": 50539, + "Ġintercourse": 50540, + "ĠBlvd": 50541, + "Ġweighs": 50542, + "_regular": 50543, + "ĠPerth": 50544, + "Ġseparating": 50545, + "Ġbilled": 50546, + ".tabControl": 50547, + "Ġpuppet": 50548, + "Ġutilization": 50549, + "Ġâĸł": 50550, + "Ġsucces": 50551, + "Ġlamps": 50552, + "_proj": 50553, + "Eric": 50554, + "Ġrenovation": 50555, + "ĠFamilies": 50556, + "ĠBits": 50557, + "partials": 50558, + "-Men": 50559, + "solution": 50560, + "Ġdwarf": 50561, + ".INTEGER": 50562, + "ĠLOCK": 50563, + ".ct": 50564, + "Ġexcerpt": 50565, + "ĠPix": 50566, + "ĠFirstName": 50567, + "ANTED": 50568, + "ĠAdmir": 50569, + "-help": 50570, + "Prior": 50571, + "ĠAlign": 50572, + ".INSTANCE": 50573, + "LineEdit": 50574, + "('/:": 50575, + "Ġinet": 50576, + "odus": 50577, + ".pkl": 50578, + "ĠKY": 50579, + "upert": 50580, + "Ġnerves": 50581, + "_gradient": 50582, + "}','": 50583, + "_unref": 50584, + "Ġsaturated": 50585, + "ĠConnected": 50586, + "ĠFN": 50587, + "EXIT": 50588, + "Ġteleport": 50589, + "Ġavait": 50590, + "PageRoute": 50591, + "Ġdivorced": 50592, + "(lang": 50593, + "fst": 50594, + "ĠTyr": 50595, + "Ġmessenger": 50596, + "ifstream": 50597, + "XS": 50598, + "ĠBanking": 50599, + "Ġinfectious": 50600, + "ĠMons": 50601, + "_LOOP": 50602, + "Ġzurück": 50603, + "Ġobtener": 50604, + "/repos": 50605, + "Vel": 50606, + "acro": 50607, + "ĠuserRepository": 50608, + "styleType": 50609, + "ĠSRC": 50610, + "VMLINUX": 50611, + "recursive": 50612, + "/bar": 50613, + "_chip": 50614, + "ominated": 50615, + "ĠNit": 50616, + "âĢĶto": 50617, + "ĠBuddh": 50618, + "омеÑĢ": 50619, + "ĠMAG": 50620, + "ĠCHE": 50621, + "_den": 50622, + ".raises": 50623, + "_degree": 50624, + "Ġpumpkin": 50625, + "_templates": 50626, + "_MEDIA": 50627, + "ĠTimeline": 50628, + "Ġbots": 50629, + "ObjectType": 50630, + "Ġbuys": 50631, + ".posts": 50632, + "CAL": 50633, + "waiting": 50634, + "ĠDaniels": 50635, + "Ġdabei": 50636, + "ĠSigma": 50637, + "ilor": 50638, + "igel": 50639, + ",W": 50640, + "ADS": 50641, + "(panel": 50642, + "ì²´": 50643, + "itating": 50644, + ".palette": 50645, + "Ġmosquito": 50646, + "Ġtego": 50647, + "(parseInt": 50648, + "Ġdespués": 50649, + "promise": 50650, + "Ġwij": 50651, + "typescript": 50652, + "ĠTv": 50653, + "_IDENTIFIER": 50654, + ").ĊĊĊ": 50655, + "_flat": 50656, + "itsu": 50657, + "USR": 50658, + "experience": 50659, + "-fit": 50660, + "phinx": 50661, + "_thresh": 50662, + "Ġideally": 50663, + "ĠFreeman": 50664, + ",DB": 50665, + "_rw": 50666, + "çŃī": 50667, + "Ub": 50668, + "_statistics": 50669, + "=\"\"><": 50670, + "Ġchore": 50671, + "Ġyork": 50672, + "installed": 50673, + "Additionally": 50674, + "Ġpstmt": 50675, + "ylko": 50676, + "::Ċ": 50677, + "Forest": 50678, + "Ġheadset": 50679, + "Ġgallon": 50680, + "ÑĢем": 50681, + "Ġwithdrawn": 50682, + "ĠCandidate": 50683, + "Ġmelting": 50684, + "Ġfreezer": 50685, + "Ġhl": 50686, + "_HELP": 50687, + "mime": 50688, + "(/*": 50689, + "Ġthirst": 50690, + "$return": 50691, + "memberof": 50692, + "еб": 50693, + "ĠHttpServletRequest": 50694, + "(ob": 50695, + "_Result": 50696, + "Ġasserted": 50697, + "Ġfulfilling": 50698, + "Ġstretches": 50699, + "parated": 50700, + "-funded": 50701, + "ĠåĽ": 50702, + "ingles": 50703, + "_ca": 50704, + ".condition": 50705, + "ĠDisplays": 50706, + "Ġorang": 50707, + "ĠCRE": 50708, + "ĠglBind": 50709, + "ĠSelector": 50710, + "/type": 50711, + "ĠAlexa": 50712, + "chedules": 50713, + "ĠPeninsula": 50714, + "Ġparity": 50715, + "ĉdest": 50716, + "ĠDoors": 50717, + "čĊĉčĊ": 50718, + "_dimension": 50719, + "Ġaload": 50720, + ".StoredProcedure": 50721, + "(paren": 50722, + "ĠBurke": 50723, + "')]Ċ": 50724, + "-engine": 50725, + "Ġquir": 50726, + "ĠHybrid": 50727, + "ĠDoe": 50728, + "Ġoutlines": 50729, + "ĠTrends": 50730, + "_NV": 50731, + "periments": 50732, + "ĠHin": 50733, + "?',": 50734, + "ĉText": 50735, + "FUL": 50736, + "Ġsmells": 50737, + "Ġslick": 50738, + "Ġmiserable": 50739, + "ĠArrayAdapter": 50740, + "ĠparamString": 50741, + "Hom": 50742, + "_literals": 50743, + "usuarios": 50744, + "Ġprompting": 50745, + "_lazy": 50746, + "ĠActivation": 50747, + "_oc": 50748, + "Weak": 50749, + "Ġanecd": 50750, + "ĠUCLA": 50751, + "=re": 50752, + "issement": 50753, + "ĠEscorts": 50754, + "Excellent": 50755, + "ĠPause": 50756, + "Ġrepositories": 50757, + "TOR": 50758, + "ariate": 50759, + "_iso": 50760, + "updates": 50761, + "halb": 50762, + "udiante": 50763, + "ë¡Ŀ": 50764, + "Ġnaive": 50765, + "ĠPeg": 50766, + "ĠLounge": 50767, + "ARGIN": 50768, + "(bin": 50769, + "OnClickListener": 50770, + "ĠFAILED": 50771, + "Ġlite": 50772, + "Ġdzie": 50773, + "ĠLiteral": 50774, + "ivor": 50775, + "fcntl": 50776, + "Ġeats": 50777, + "Ġqed": 50778, + "Unlock": 50779, + "riding": 50780, + "undai": 50781, + "=M": 50782, + "ATTER": 50783, + "ConfigureAwait": 50784, + "icias": 50785, + "ustomed": 50786, + "Ġsuccession": 50787, + "endTime": 50788, + "ĠJupiter": 50789, + "Ġjudging": 50790, + "dration": 50791, + "_docs": 50792, + ".mo": 50793, + "Ġeducators": 50794, + "ĠVine": 50795, + "Cond": 50796, + "[out": 50797, + "qb": 50798, + "\\Validator": 50799, + "Ġmeanings": 50800, + "Ġpresently": 50801, + "Ġdividing": 50802, + "ottenham": 50803, + "ascular": 50804, + "Ġtrailers": 50805, + "ĠCLOSE": 50806, + "ами": 50807, + "âĢĻai": 50808, + "ĠGain": 50809, + "wor": 50810, + "Ġplanner": 50811, + "Ġdistributing": 50812, + "vat": 50813, + "months": 50814, + "xlabel": 50815, + "HF": 50816, + "Viol": 50817, + ".BASELINE": 50818, + "еÑĤÑģÑı": 50819, + "ĠRotate": 50820, + "Ġtxn": 50821, + ":bold": 50822, + "Ġbloss": 50823, + "Forgery": 50824, + "(embed": 50825, + "Ġjako": 50826, + "sprintf": 50827, + "their": 50828, + "Ġexhibits": 50829, + "-static": 50830, + "hecy": 50831, + "getActiveSheet": 50832, + ".clients": 50833, + "ãģį": 50834, + "_hide": 50835, + "[word": 50836, + "Cb": 50837, + "addItem": 50838, + "axe": 50839, + "_radio": 50840, + "alion": 50841, + "modifier": 50842, + "Ġsaturation": 50843, + "Ġdenom": 50844, + "_pixels": 50845, + "mess": 50846, + "(fl": 50847, + "atif": 50848, + "Ġsecs": 50849, + "Ġprostitution": 50850, + "Ġgrandchildren": 50851, + "Ġparadise": 50852, + "ĠFeld": 50853, + "_BINARY": 50854, + "itous": 50855, + "à¹Ħ": 50856, + "Ġflashing": 50857, + "-sided": 50858, + "Ġcontradiction": 50859, + "/*ĊĊ": 50860, + "ylabel": 50861, + "ĠTet": 50862, + "Ġadmire": 50863, + "reso": 50864, + "Ġletz": 50865, + "ĠSEARCH": 50866, + "slots": 50867, + "ĠRewards": 50868, + "ĠHog": 50869, + "ĠNSData": 50870, + "stash": 50871, + "Fall": 50872, + "ĠAmer": 50873, + "LinearLayout": 50874, + "/photos": 50875, + "Ġfeather": 50876, + "Ġ|čĊ": 50877, + "Downloads": 50878, + ".StartsWith": 50879, + "Ġ//#": 50880, + "ineTransform": 50881, + "Ġaffid": 50882, + "Vtbl": 50883, + "ĠRogue": 50884, + "scribed": 50885, + "Ġfauc": 50886, + "ĠMonroe": 50887, + "Ġdeclares": 50888, + "modern": 50889, + "reon": 50890, + "aybe": 50891, + "PASS": 50892, + "fers": 50893, + "_MULTI": 50894, + "ĠMathematics": 50895, + "Ġsudah": 50896, + "_ATTACH": 50897, + "ĠnumberWith": 50898, + "ĠSolomon": 50899, + "jin": 50900, + "ografia": 50901, + "öl": 50902, + "_design": 50903, + "culated": 50904, + "ĠLuna": 50905, + "iesz": 50906, + "Ġ=>'": 50907, + "Ġrevelations": 50908, + "Along": 50909, + "(ed": 50910, + "ĠFilename": 50911, + "Ġylabel": 50912, + "Secure": 50913, + "Ġbusca": 50914, + "agnosis": 50915, + "_RECE": 50916, + "Ġoverlapping": 50917, + "Extent": 50918, + "Ġanticipation": 50919, + "Checks": 50920, + "ĠALSO": 50921, + "orc": 50922, + "ilingual": 50923, + "itational": 50924, + "Ġadvancement": 50925, + "ouro": 50926, + "ĠPredicate": 50927, + "å¾Ĺ": 50928, + "eria": 50929, + "ĠPierce": 50930, + "orio": 50931, + "Ġmerits": 50932, + "Ġpeanut": 50933, + ".Package": 50934, + "ĠConduct": 50935, + "_SENSOR": 50936, + "Ġboiling": 50937, + "Ġintra": 50938, + "ĠIGN": 50939, + "ĠFur": 50940, + ".Refresh": 50941, + "ĠReach": 50942, + "_decoder": 50943, + ".Exp": 50944, + "ĠÑĤак": 50945, + "pill": 50946, + ",Q": 50947, + "ĠGrill": 50948, + "Ġpopping": 50949, + ".Ag": 50950, + "Ġproyecto": 50951, + "Ġmileage": 50952, + "Ġecological": 50953, + "]]);Ċ": 50954, + "ĠÂŃ": 50955, + "subplot": 50956, + "acad": 50957, + "ĠTrying": 50958, + "recipes": 50959, + "$criteria": 50960, + "ĠPersian": 50961, + "-bound": 50962, + "MASK": 50963, + "ĠGesture": 50964, + "Ġkk": 50965, + "ĠPVC": 50966, + "Ġprohibition": 50967, + "Ġcomando": 50968, + "ĠLOOK": 50969, + "Shopping": 50970, + "Ġdistortion": 50971, + "čĊ": 51017, + ".Dependency": 51018, + ".QueryString": 51019, + ".Owner": 51020, + "Ġexpiry": 51021, + "Thu": 51022, + "(Vec": 51023, + "Ġhazardous": 51024, + "Ġrpm": 51025, + "APON": 51026, + "ĠaddTarget": 51027, + "sville": 51028, + "pNet": 51029, + "ĠImg": 51030, + "ĠTIMER": 51031, + ".Animation": 51032, + "Ġbek": 51033, + "Ġassort": 51034, + "Ġlebih": 51035, + "ĠbodyParser": 51036, + "Ġvibrating": 51037, + "IDL": 51038, + "Ġbutterknife": 51039, + "inters": 51040, + "Ġpersuade": 51041, + "ĠLGBTQ": 51042, + "èĭ": 51043, + ".soft": 51044, + "Ġbeams": 51045, + "_sur": 51046, + ".Def": 51047, + "Ġlabs": 51048, + "ĉplt": 51049, + "Ġskins": 51050, + "Ġtransferring": 51051, + "Ġimaginary": 51052, + "_End": 51053, + ";background": 51054, + "Ġlaps": 51055, + "_COMMENT": 51056, + "(SDL": 51057, + "onds": 51058, + ".Record": 51059, + "ĠImplements": 51060, + "_ticks": 51061, + "()))ĊĊ": 51062, + "Ġarose": 51063, + "]?": 51064, + "ĠMp": 51065, + "ĠICommand": 51066, + "Ġsculpture": 51067, + "Ġcontracted": 51068, + "\">'": 51546, + "kinson": 51547, + "Ġкол": 51548, + "ognitive": 51549, + "_li": 51550, + "Ġimminent": 51551, + "Ġaffinity": 51552, + ".signal": 51553, + "Ġnotch": 51554, + "ĠSteelers": 51555, + "maxlength": 51556, + "KK": 51557, + "ĠEugene": 51558, + "_PWM": 51559, + "roi": 51560, + "ĠâĹı": 51561, + "ĠHamburg": 51562, + ".Must": 51563, + "Ġaxe": 51564, + "enef": 51565, + "Ġambitions": 51566, + "ĠSpecies": 51567, + "ĠStress": 51568, + "Ġawhile": 51569, + "ĠбÑĥд": 51570, + "Ġwithstand": 51571, + "ĠDecoder": 51572, + "_inventory": 51573, + "Ġ{ččĊ": 51574, + "Ġtgt": 51575, + "Ġrailroad": 51576, + "WASHINGTON": 51577, + "Ġnegotiated": 51578, + "NST": 51579, + "-phone": 51580, + ",U": 51581, + "Ġexercising": 51582, + "ụ": 51583, + "_PIXEL": 51584, + "avors": 51585, + "iterated": 51586, + "Ġvampire": 51587, + "adal": 51588, + "Ingrese": 51589, + "Ġung": 51590, + "jective": 51591, + ".cells": 51592, + "Ġnano": 51593, + "Ġmarkdown": 51594, + "_RULE": 51595, + "(events": 51596, + "Ġluggage": 51597, + "MESSAGE": 51598, + "igkeit": 51599, + "$count": 51600, + "AttributeName": 51601, + "IGINAL": 51602, + "_Ent": 51603, + "ĠBF": 51604, + "ĠCOMMENT": 51605, + "_ini": 51606, + "ĠEuropeans": 51607, + "ĠBelle": 51608, + "åij½": 51609, + ")['": 51610, + "åºĶ": 51611, + "ĠUseful": 51612, + ".reference": 51613, + "()\",": 51614, + "_grade": 51615, + "ĠKaw": 51616, + "Ġsentencing": 51617, + "Ġsocialism": 51618, + "monster": 51619, + "_LAYER": 51620, + "Ġdeepest": 51621, + "wk": 51622, + "ĠNoise": 51623, + "###ĊĊ": 51624, + "Ġpréc": 51625, + "otle": 51626, + "ÑĤе": 51627, + "auf": 51628, + "ibal": 51629, + "Ġconquer": 51630, + ">Email": 51631, + "Ġambulance": 51632, + "OAD": 51633, + "Ġ(\"%": 51634, + "ĠFI": 51635, + ".fixture": 51636, + "Ġterse": 51637, + "ĠĠĠĠĉĉĉĉ": 51638, + "Ġsanctuary": 51639, + "ugi": 51640, + "ĠComparator": 51641, + "Definitions": 51642, + "Ġasthma": 51643, + "Ġlact": 51644, + "Ġhardwood": 51645, + ".clock": 51646, + "Ġattracting": 51647, + "ĠMour": 51648, + "(distance": 51649, + "icits": 51650, + "Ġbonne": 51651, + "ĠACCESS": 51652, + ".DeserializeObject": 51653, + "ĠTyped": 51654, + "Ġjeu": 51655, + "ĠappId": 51656, + "ĠClara": 51657, + "ĠHF": 51658, + "ĠReich": 51659, + "ipples": 51660, + "//--------------------------------------------------------------------------------": 51661, + "_delivery": 51662, + "erialization": 51663, + "Ġplaintiffs": 51664, + "Scient": 51665, + "shopping": 51666, + "ĠDummy": 51667, + "ĠWald": 51668, + "GroupName": 51669, + "Ġinscription": 51670, + "elog": 51671, + "::::::::": 51672, + "_ld": 51673, + "BackPressed": 51674, + ".Raw": 51675, + "ĠOnTrigger": 51676, + "Ġmuseums": 51677, + "ĠBeen": 51678, + "ĠAdventures": 51679, + "Ġslate": 51680, + "Ġlett": 51681, + "Ġsund": 51682, + "ĠGin": 51683, + "ĠMechanical": 51684, + ".ship": 51685, + "AppComponent": 51686, + "Ġdestined": 51687, + "Ġdwelling": 51688, + "Profiler": 51689, + "Prepare": 51690, + "zeich": 51691, + "Ġsilicon": 51692, + "(has": 51693, + "Ġ#%": 51694, + "VIDEO": 51695, + "Ġcollaborate": 51696, + "Lin": 51697, + "Ġscopes": 51698, + "(className": 51699, + "(sd": 51700, + "andin": 51701, + ".ham": 51702, + "ServiceImpl": 51703, + "-described": 51704, + "Ġirony": 51705, + "stial": 51706, + "ĠHuawei": 51707, + "(repo": 51708, + "Ġunexpectedly": 51709, + "ĠKai": 51710, + ".install": 51711, + "\\xf": 51712, + "Ġexhibited": 51713, + "_TCP": 51714, + "ĠOx": 51715, + "_CHO": 51716, + "Ġprostituerte": 51717, + "Ġvä": 51718, + "Ġsito": 51719, + "Ġconstituents": 51720, + "ĠContinued": 51721, + "ĠSAVE": 51722, + "rss": 51723, + "/message": 51724, + "ubes": 51725, + "Ġmisdemean": 51726, + "Ġtaxation": 51727, + "Ġstoryline": 51728, + "hair": 51729, + "ĠFinds": 51730, + "SIG": 51731, + "verification": 51732, + "~=": 51733, + ".hp": 51734, + "Iterable": 51735, + "Ñĭе": 51736, + "atori": 51737, + "Ġctr": 51738, + "Rx": 51739, + "_);ĊĊ": 51740, + "dag": 51741, + ".pin": 51742, + "Ġpseud": 51743, + "Ġinvo": 51744, + "ÑģÑĤÑĢ": 51745, + "_pix": 51746, + "为空": 51747, + "Ġsworn": 51748, + "âĢĶor": 51749, + "_registry": 51750, + "Ġdisasters": 51751, + "ĠROI": 51752, + "ĠâĢķ": 51753, + "aktu": 51754, + "forest": 51755, + "beiten": 51756, + "âĢĶI": 51757, + "ueva": 51758, + "egt": 51759, + "Ġspikes": 51760, + "URES": 51761, + "ĠRecommended": 51762, + "Ġexploited": 51763, + "ĠFrederick": 51764, + "_COMPLETE": 51765, + "ĠDrugs": 51766, + "!!!!!!!!": 51767, + "ĠRiv": 51768, + "STOP": 51769, + "ROOM": 51770, + "ĠPASSWORD": 51771, + "Cookies": 51772, + ".El": 51773, + "á»Ń": 51774, + "ĠBert": 51775, + "Ġhashed": 51776, + "icester": 51777, + "Ġdecorator": 51778, + "ĠqueryString": 51779, + ":;Ċ": 51780, + "Ġ\"[\"": 51781, + "otope": 51782, + "-Americ": 51783, + "ĠMatthews": 51784, + "URAL": 51785, + "âĢľ,": 51786, + "Summer": 51787, + "fos": 51788, + "_CONTAINER": 51789, + "_ACK": 51790, + "Ġfiltr": 51791, + "_disp": 51792, + "_Re": 51793, + "Ġfacile": 51794, + "аÑĪ": 51795, + "ĠìķĬ": 51796, + "Ġeben": 51797, + "Ġsprink": 51798, + "ĠQuint": 51799, + ">V": 51800, + "Ġhistorians": 51801, + "ourmet": 51802, + "ĠMonitoring": 51803, + "ledger": 51804, + "cott": 51805, + "Ġware": 51806, + "GGLE": 51807, + "cars": 51808, + "ĠMEDIATEK": 51809, + "Ġvolupt": 51810, + "_View": 51811, + "HEL": 51812, + "(copy": 51813, + "(stats": 51814, + "Ġchromosome": 51815, + "ĠCurtis": 51816, + "-conf": 51817, + "(asset": 51818, + "Ġhvor": 51819, + "FileSystem": 51820, + "<>();čĊ": 51821, + "ocoder": 51822, + "ĠCannon": 51823, + ")x": 51824, + "ĠSmooth": 51825, + "ĠSAS": 51826, + "_ce": 51827, + "ĉprev": 51828, + "_movie": 51829, + "Ec": 51830, + "_wall": 51831, + ".ĊĊ": 52378, + "ogenesis": 52379, + "ĠOPTIONS": 52380, + "uptools": 52381, + "Ġmilitant": 52382, + "Ġexited": 52383, + "igar": 52384, + "ĠCOMM": 52385, + "ĠDisposable": 52386, + "aycast": 52387, + "Ġrowspan": 52388, + "Ġsynthes": 52389, + "Ġsondern": 52390, + "ĠĊ": 55869, + "ĠJacket": 55870, + "RATION": 55871, + ".getSelectedItem": 55872, + "-init": 55873, + "ĠRegisters": 55874, + "_sep": 55875, + "ĠToolkit": 55876, + ".dict": 55877, + "Ġxlabel": 55878, + "\\Table": 55879, + "toc": 55880, + "_combo": 55881, + "ĠCompact": 55882, + "Ġrugged": 55883, + "à¥ĩà¤": 55884, + "-management": 55885, + "')}}\">Ċ": 55886, + "ĠStamp": 55887, + "ıl": 55888, + "rox": 55889, + "Ġlandscapes": 55890, + "_NOTE": 55891, + "monary": 55892, + "cab": 55893, + "Ġmoet": 55894, + "xaf": 55895, + "rcode": 55896, + "-cli": 55897, + "_gate": 55898, + "[event": 55899, + "SPORT": 55900, + "gia": 55901, + "ĠSUPER": 55902, + "/Login": 55903, + "_shutdown": 55904, + "interrupt": 55905, + "Ġpretending": 55906, + "Ġfringe": 55907, + "ĠReds": 55908, + "ĠCUDA": 55909, + "ĠUNIX": 55910, + "vit": 55911, + "Ġbrig": 55912, + "drv": 55913, + "ĠConnector": 55914, + "Therefore": 55915, + "Ġlia": 55916, + "Detection": 55917, + "_actor": 55918, + "Ġtempfile": 55919, + "Ġeccentric": 55920, + "-role": 55921, + "Ġpadx": 55922, + "dent": 55923, + "Western": 55924, + "Ġê·¸": 55925, + "ĠApplicationRecord": 55926, + "Ġcampaigning": 55927, + "_runner": 55928, + "ĠCivic": 55929, + "aleigh": 55930, + "Ġdirekt": 55931, + ".sul": 55932, + "ĠĠĉĉĉ": 55933, + "anten": 55934, + "Ġissuer": 55935, + "Ġassertions": 55936, + "(orig": 55937, + "ATIO": 55938, + "Ġleaned": 55939, + "äs": 55940, + ".DTO": 55941, + "explode": 55942, + ".Observable": 55943, + "Ġstaggering": 55944, + "Ġkidnapped": 55945, + "Ġprogrammers": 55946, + "ĠInnov": 55947, + ".parameter": 55948, + "Ġdomination": 55949, + "Ġskeptic": 55950, + "Ġæĺ¯": 55951, + "Ġavoids": 55952, + ".Verify": 55953, + "ubby": 55954, + "ĠASN": 55955, + "Ġformato": 55956, + "ĠBeatles": 55957, + "_brand": 55958, + "Ġinset": 55959, + "youtu": 55960, + "Ġtoc": 55961, + "-final": 55962, + "Showing": 55963, + "ĠDoub": 55964, + "ĠMesa": 55965, + "Adj": 55966, + "_medium": 55967, + "Creates": 55968, + "(endpoint": 55969, + "ĉUP": 55970, + "bbie": 55971, + "Ġstalk": 55972, + ".databind": 55973, + ".Scan": 55974, + "agents": 55975, + "$,": 55976, + "individual": 55977, + "+)/": 55978, + "ĉvm": 55979, + "(notification": 55980, + "Ġinex": 55981, + "ĠClassification": 55982, + "reno": 55983, + "Ġolig": 55984, + "-rated": 55985, + "Ġformulation": 55986, + "',{": 55987, + "Ġacept": 55988, + "_unpack": 55989, + "_CA": 55990, + ".Pow": 55991, + "ĉim": 55992, + "Ġaluminium": 55993, + "ANO": 55994, + "Ġxn": 55995, + "Ġcómo": 55996, + "ĠIngredient": 55997, + "Ġseizures": 55998, + "åħ±": 55999, + "ificador": 56000, + "Ġsiguiente": 56001, + "ĠInfragistics": 56002, + "Ġduplicated": 56003, + "ĠDee": 56004, + "Ġnø": 56005, + "ĠACCEPT": 56006, + "(crate": 56007, + "иÑĤелÑĮ": 56008, + "-less": 56009, + "Ġinfinity": 56010, + "Analyzer": 56011, + "-Day": 56012, + "ritt": 56013, + "(cin": 56014, + "ĠGy": 56015, + "Ġmultiplied": 56016, + "uchi": 56017, + "ĠBaldwin": 56018, + "/ip": 56019, + "Ġshortcuts": 56020, + ".ADD": 56021, + "Ġvigor": 56022, + "_instruction": 56023, + "(;": 56024, + "_eta": 56025, + "è¿ŀ": 56026, + "utorials": 56027, + "Ġboosting": 56028, + "bv": 56029, + "Ġacknowledges": 56030, + "Listening": 56031, + "FAQ": 56032, + ";b": 56033, + "((-": 56034, + "Ġarchitects": 56035, + "Ġzwe": 56036, + "Ġpuls": 56037, + "ĠgetCount": 56038, + "verbs": 56039, + "ãĢľ": 56040, + "(Collection": 56041, + "kre": 56042, + "Ġjurisdictions": 56043, + "_bridge": 56044, + "ĠCrack": 56045, + "ĠDifficulty": 56046, + "KO": 56047, + "Reservation": 56048, + "_requires": 56049, + "Tour": 56050, + "ãģĹãģŁ": 56051, + ".setCurrent": 56052, + "Ġky": 56053, + "ĠAlbany": 56054, + "Ġè§": 56055, + "ller": 56056, + "agna": 56057, + "workers": 56058, + ".blank": 56059, + "ĠPrayer": 56060, + "MIC": 56061, + "Ġresilience": 56062, + "TeX": 56063, + "ĠLanguages": 56064, + "study": 56065, + "ĉcurr": 56066, + "Ġenzymes": 56067, + "Slug": 56068, + "ĠíĮĮ": 56069, + "stral": 56070, + "Ġtumors": 56071, + "Ġsegunda": 56072, + "='{": 56073, + "instruction": 56074, + "ĠLisp": 56075, + "/info": 56076, + "Ġ\"{$": 56077, + ",:),": 56078, + "Ġgv": 56079, + "(ErrorMessage": 56080, + "Ġ'=": 56081, + "}-${": 56082, + ".Documents": 56083, + "\"Well": 56084, + "Ġreminiscent": 56085, + "Ġgaz": 56086, + "iropr": 56087, + "ehr": 56088, + "Ġsuppressed": 56089, + "ersh": 56090, + ".scrollTo": 56091, + "Ġcadena": 56092, + "ĠgameState": 56093, + "ÃŃm": 56094, + "(conv": 56095, + "ĠTomorrow": 56096, + "ĠCCT": 56097, + "Mongo": 56098, + "ulg": 56099, + ".Camera": 56100, + ".handlers": 56101, + "mph": 56102, + "Ġstk": 56103, + "Ġgenetics": 56104, + "ACING": 56105, + "Trivia": 56106, + "ĠBam": 56107, + "(marker": 56108, + ".Stretch": 56109, + "ĠSunni": 56110, + "ĠBetty": 56111, + ".tolist": 56112, + "unlikely": 56113, + ".Rectangle": 56114, + "obsolete": 56115, + "ILON": 56116, + "innerText": 56117, + "embourg": 56118, + "aN": 56119, + "ĠVehicles": 56120, + "unlock": 56121, + ":utf": 56122, + "nob": 56123, + "ĠSeeing": 56124, + "ĠNEVER": 56125, + "Ġtls": 56126, + "Ġfilles": 56127, + "Ġbenefited": 56128, + "ĠClint": 56129, + "*/),": 56130, + ".fold": 56131, + "Ġposible": 56132, + "ADED": 56133, + "thouse": 56134, + ".DAL": 56135, + "ĠOdd": 56136, + "rokes": 56137, + "ĠSunny": 56138, + "ĠPartialEq": 56139, + "_Buffer": 56140, + "ĠLevi": 56141, + "longrightarrow": 56142, + "eldon": 56143, + "gages": 56144, + "_warn": 56145, + ".CreateTable": 56146, + "ĠDip": 56147, + "_questions": 56148, + ".logic": 56149, + "Ġ#\"": 56150, + "={()=>": 56151, + "Ġtep": 56152, + "Ġjuicy": 56153, + "ìĤ¬": 56154, + "enko": 56155, + "ialect": 56156, + "Ùī": 56157, + "Ġonboard": 56158, + "Ġæı": 56159, + "ĉrt": 56160, + "_UTF": 56161, + "ĠQAction": 56162, + "âĢŀ": 56163, + "(Component": 56164, + "(audio": 56165, + ".hit": 56166, + "gte": 56167, + "Ġprogrammed": 56168, + "stateParams": 56169, + "Ġpolyester": 56170, + "fires": 56171, + "byss": 56172, + "]=(": 56173, + "_quality": 56174, + "OfDay": 56175, + "ĠFairy": 56176, + "Ġyelled": 56177, + "opl": 56178, + "(userName": 56179, + "ĠDifference": 56180, + "Ġevaluations": 56181, + "iffany": 56182, + "Ġcyclists": 56183, + "Ġcidade": 56184, + "Ġtextbook": 56185, + "Ġprofiling": 56186, + "__),": 56187, + "dea": 56188, + ".activate": 56189, + "Ġindications": 56190, + "Ðķ": 56191, + "TouchUpInside": 56192, + "Ġinvaluable": 56193, + "ĠMASK": 56194, + "Ġcontend": 56195, + "Freq": 56196, + "Ġrecruits": 56197, + "(interval": 56198, + "ĠUserProfile": 56199, + "Ġ'./../": 56200, + "edu": 56201, + "_Callback": 56202, + "Ġanalogy": 56203, + "ĠTrophy": 56204, + "apphire": 56205, + "Videos": 56206, + "ĠCher": 56207, + "ĠHav": 56208, + "âĢ¦\"": 56209, + ".validator": 56210, + "gfx": 56211, + "ĠUObject": 56212, + "classnames": 56213, + "triangle": 56214, + "ĠEncoder": 56215, + ".spy": 56216, + "Ġpredators": 56217, + "=status": 56218, + "-safe": 56219, + ":\",Ċ": 56220, + "ĠIncluding": 56221, + "Ġ{};čĊ": 56222, + "*cos": 56223, + "Ġendured": 56224, + ".sulake": 56225, + "Ġnursery": 56226, + "Ġfragrance": 56227, + "Ġrebuilding": 56228, + "Ġnth": 56229, + "ĠFraser": 56230, + ".setDate": 56231, + "ĠVince": 56232, + "_REST": 56233, + "Ġventilation": 56234, + "æµ·": 56235, + "cribes": 56236, + ".asm": 56237, + "lpVtbl": 56238, + "ĠAbe": 56239, + "uisine": 56240, + ",array": 56241, + "ĉclassName": 56242, + "errals": 56243, + "Ġ'ĊĊ": 56244, + "Checkout": 56245, + "Ġsolicit": 56246, + "Aux": 56247, + "_capture": 56248, + "Ġribs": 56249, + "ragon": 56250, + "viol": 56251, + "topics": 56252, + "FunctionFlags": 56253, + "ĠMarty": 56254, + "bike": 56255, + "ĠTucker": 56256, + "(kernel": 56257, + "ĠOps": 56258, + "CloseOperation": 56259, + "/demo": 56260, + "ilda": 56261, + "ĠlÃŃnea": 56262, + "APPING": 56263, + "Ġsuites": 56264, + ".visitVarInsn": 56265, + "urus": 56266, + "ĠMinute": 56267, + "(manager": 56268, + "Ġbutterfly": 56269, + "Ġapare": 56270, + "Ġwolves": 56271, + "JWT": 56272, + "ĠSalon": 56273, + "ĉdelay": 56274, + "-eslint": 56275, + "isations": 56276, + ".rpc": 56277, + ")|(": 56278, + "ĠSnapchat": 56279, + "/mm": 56280, + "MN": 56281, + "ceries": 56282, + ".textAlignment": 56283, + "ĠFrankfurt": 56284, + "Ġado": 56285, + "(newValue": 56286, + "(access": 56287, + "(Expression": 56288, + "ĠSignIn": 56289, + "ĠHaiti": 56290, + "_tp": 56291, + ".setParameter": 56292, + "Minute": 56293, + "Ġmanuals": 56294, + "ricanes": 56295, + "ĠPTR": 56296, + "ĠOuter": 56297, + "Ġgetline": 56298, + "ocations": 56299, + "_CD": 56300, + "ĠLyon": 56301, + "/gui": 56302, + "_live": 56303, + "idan": 56304, + ".geom": 56305, + "ĠborderBottom": 56306, + "imuth": 56307, + "_checkpoint": 56308, + "Ġmeu": 56309, + "ĠIrving": 56310, + "Ġpeuvent": 56311, + "(MAX": 56312, + "ĠARCH": 56313, + "Ġpov": 56314, + ".sourceforge": 56315, + "Ġjamais": 56316, + "Ġark": 56317, + "ĠBaghdad": 56318, + "ĠCLEAR": 56319, + "MenuBar": 56320, + "Ġtrois": 56321, + "CHEDULE": 56322, + "Ġ#čĊ": 56323, + "(Call": 56324, + "$order": 56325, + "(Material": 56326, + "Ġencontrado": 56327, + "$list": 56328, + "ĠMETHODS": 56329, + ".beginTransaction": 56330, + "_MAG": 56331, + "StyleSheet": 56332, + "Ġmajors": 56333, + "Ġindefinitely": 56334, + "cleanup": 56335, + "Ġhomeland": 56336, + "(dto": 56337, + "Dates": 56338, + "Presentation": 56339, + "ĠDK": 56340, + "={`/": 56341, + "ĉKey": 56342, + "(Block": 56343, + "_checkbox": 56344, + "needs": 56345, + "ĠonComplete": 56346, + "rico": 56347, + "Ġgleich": 56348, + "Ġxm": 56349, + "OOD": 56350, + "Better": 56351, + "ĠSQLITE": 56352, + ".Book": 56353, + "xad": 56354, + "ĠGone": 56355, + "ĉdp": 56356, + "Ġdevotion": 56357, + "Ġstm": 56358, + "Ġobsess": 56359, + "ĠBackend": 56360, + "Queries": 56361, + "Ik": 56362, + "//****************************************************************": 56363, + "Ġdividends": 56364, + ".parentElement": 56365, + "}\")ĊĊ": 56366, + "ĠMaterialPageRoute": 56367, + ":num": 56368, + "Ġexplic": 56369, + "ĠOL": 56370, + "least": 56371, + "Oops": 56372, + "imentos": 56373, + "Ġinsurers": 56374, + "Ġheroic": 56375, + "ĉfields": 56376, + ".imgur": 56377, + ".btnCancel": 56378, + "ĠDetective": 56379, + "(sm": 56380, + "ĠMutableLiveData": 56381, + ".lab": 56382, + "(([": 56383, + "Ġhairst": 56384, + "ĠTransactions": 56385, + "å¼Ģå§ĭ": 56386, + "ĠstdClass": 56387, + "uento": 56388, + "GIS": 56389, + "_cod": 56390, + "Instructions": 56391, + "Calls": 56392, + "PointerType": 56393, + "ĠRw": 56394, + "Ġassortment": 56395, + "ĠDIG": 56396, + "+r": 56397, + "_CERT": 56398, + "Ġinstability": 56399, + "Ġvib": 56400, + "onas": 56401, + "Ġroku": 56402, + "apellido": 56403, + "Ġangl": 56404, + "preneur": 56405, + "Ġfluids": 56406, + "isease": 56407, + "Ġdeed": 56408, + "quist": 56409, + "_CONSTANT": 56410, + "Ġequilibrium": 56411, + "_delegate": 56412, + "ĠQuantum": 56413, + "rei": 56414, + "Capabilities": 56415, + "rectangle": 56416, + "?><": 56417, + "alien": 56418, + "ĠJug": 56419, + "DNA": 56420, + "Tickets": 56421, + "Occurs": 56422, + "ĠHawk": 56423, + ".setHorizontalGroup": 56424, + "\\Collection": 56425, + "ffiti": 56426, + "Ġrearr": 56427, + ".setVerticalGroup": 56428, + "Ġcavity": 56429, + "Ġadulte": 56430, + "Facade": 56431, + "-wh": 56432, + "ĠLOL": 56433, + "Ø°": 56434, + "Ġgrandparents": 56435, + "Swift": 56436, + "ĉwx": 56437, + "æīĢæľī": 56438, + "ifen": 56439, + "ffset": 56440, + "Beyond": 56441, + "//}ĊĊ": 56442, + "Ġwager": 56443, + "Ġbury": 56444, + "Ġcommence": 56445, + "registro": 56446, + "scient": 56447, + "ĠPercent": 56448, + "Ġдолж": 56449, + "(identifier": 56450, + ".setModel": 56451, + "Ġseldom": 56452, + "nton": 56453, + "Ġappliance": 56454, + "amus": 56455, + "rysler": 56456, + "Ġpanties": 56457, + "enguins": 56458, + "Ġmimic": 56459, + "ĠonChanged": 56460, + "Ġalcoholic": 56461, + ".reloadData": 56462, + "Charge": 56463, + "ĠFax": 56464, + "ĠjScrollPane": 56465, + "Empresa": 56466, + "Ġshattered": 56467, + "xba": 56468, + "Fonts": 56469, + "?s": 56470, + "Ġpostseason": 56471, + "retain": 56472, + "_rates": 56473, + "ĠrequestCode": 56474, + ".todo": 56475, + "´s": 56476, + "CHK": 56477, + "ĠKeeping": 56478, + "engeance": 56479, + "Ġvscode": 56480, + "IPPING": 56481, + "DefaultCloseOperation": 56482, + "_raise": 56483, + "ĠOculus": 56484, + "ograms": 56485, + "raj": 56486, + "pci": 56487, + "Ġcorrosion": 56488, + ".handleSubmit": 56489, + "Accessible": 56490, + "ĠPiano": 56491, + "little": 56492, + "ACL": 56493, + "Äĩe": 56494, + ".unwrap": 56495, + "ĠConvers": 56496, + "ĠLeben": 56497, + "ioneer": 56498, + "ĠMerchant": 56499, + "ĠJorge": 56500, + "Ġembracing": 56501, + "Ġventa": 56502, + "ást": 56503, + "Ġviene": 56504, + "Ċ": 56656, + "-growing": 56657, + "Ġdeepcopy": 56658, + "Ack": 56659, + "eggies": 56660, + "Ġ__(\"": 56661, + "Ġnoir": 56662, + "terrorism": 56663, + "Ġanthem": 56664, + "agency": 56665, + "_PACKAGE": 56666, + "ĠClosure": 56667, + ".registry": 56668, + "Ġmammals": 56669, + "L": 56700, + "Ġbluetooth": 56701, + ".Deep": 56702, + "-standing": 56703, + "ácil": 56704, + "Ġrooft": 56705, + "ĠPaths": 56706, + "_iterations": 56707, + "InvalidArgumentException": 56708, + ".spi": 56709, + "ĠUIAlertAction": 56710, + "uye": 56711, + "signin": 56712, + ".priority": 56713, + "ĠEssays": 56714, + "='{$": 56715, + "Ġè¿ĶåĽŀ": 56716, + "_signed": 56717, + ".persist": 56718, + "Ġredesign": 56719, + "ToLower": 56720, + "ĠNewman": 56721, + "=start": 56722, + "ĠIsraelis": 56723, + "asiswa": 56724, + "Speech": 56725, + "Ġnumeros": 56726, + "handlers": 56727, + "ĠWong": 56728, + "ĠмеÑĤод": 56729, + "Weights": 56730, + "ĠGujar": 56731, + "teil": 56732, + "ĠNonetheless": 56733, + "_EFFECT": 56734, + "Ġvect": 56735, + "ĠOsc": 56736, + "Ġcoats": 56737, + "ĠWheat": 56738, + "Ġgeek": 56739, + "ĠPROPERTY": 56740, + "worm": 56741, + "_constants": 56742, + "ĠBoulder": 56743, + "ĠParm": 56744, + "cole": 56745, + "ĠdefaultCenter": 56746, + "ĠRouge": 56747, + ":A": 56748, + "xcf": 56749, + "ĠVenice": 56750, + "median": 56751, + "Ġredemption": 56752, + "Fresh": 56753, + "Ġcosm": 56754, + "Ġfigur": 56755, + "Ġrefurb": 56756, + "COPE": 56757, + ".cd": 56758, + "Ġchords": 56759, + "ĠSgt": 56760, + "Åį": 56761, + "VPN": 56762, + "ĠSEND": 56763, + "ainen": 56764, + "_accounts": 56765, + "Ġtenth": 56766, + "Ġdissolved": 56767, + "": 57007, + "Ġlegitimacy": 57008, + "Ġoo": 57009, + "Slinky": 57010, + "Ġnationals": 57011, + ".words": 57012, + ";p": 57013, + "trap": 57014, + "omanip": 57015, + "Ġcues": 57016, + "Ġgraduating": 57017, + "Ġsemaphore": 57018, + "\"]);ĊĊ": 57019, + "acey": 57020, + "REET": 57021, + "Grab": 57022, + "ĠFelix": 57023, + "(Id": 57024, + "_neighbors": 57025, + "Ġmeaningless": 57026, + "(del": 57027, + "Ġjeder": 57028, + "ĠContentValues": 57029, + ".absolute": 57030, + "/cl": 57031, + "Ġxb": 57032, + "datum": 57033, + "Ġtortured": 57034, + "Ġrubbing": 57035, + "Scores": 57036, + "ĠðŁĺī": 57037, + "Ġavons": 57038, + "Ġamsterdam": 57039, + "EOS": 57040, + "Hal": 57041, + "Ġtrustworthy": 57042, + "#=": 57043, + ".EXTRA": 57044, + "Ġmano": 57045, + "isicing": 57046, + "-support": 57047, + "ĉcursor": 57048, + "ĠSpo": 57049, + "aimassage": 57050, + "Mission": 57051, + "[]{\"": 57052, + "Ġprinters": 57053, + "GREEN": 57054, + "Ġteg": 57055, + "Ġabdominal": 57056, + "!ĊĊĊĊĊĊ": 57057, + ".Short": 57058, + "азв": 57059, + "ĠGifts": 57060, + "}\")": 57061, + "(binding": 57062, + "xce": 57063, + "âĢij": 57064, + "infos": 57065, + "FormData": 57066, + "Ġdart": 57067, + "Ġelems": 57068, + "(inv": 57069, + "YL": 57070, + "tin": 57071, + "GENER": 57072, + "ữ": 57073, + "ĠTaken": 57074, + "uckle": 57075, + ":e": 57076, + "Ġspectral": 57077, + ".baidu": 57078, + "/');Ċ": 57079, + "Ġgreedy": 57080, + "esion": 57081, + ",,,,,,,,": 57082, + "Ġ/>,Ċ": 57083, + "InternalServerError": 57084, + "NSNotificationCenter": 57085, + "ĠAi": 57086, + "Ġspit": 57087, + "Ġaugmented": 57088, + "ĠstandardUserDefaults": 57089, + "FINITY": 57090, + "Race": 57091, + ":C": 57092, + "ĠRECORD": 57093, + "ĠHighlight": 57094, + "Ġ'`": 57095, + "Ġdeficits": 57096, + "Ġnei": 57097, + "Ġresearched": 57098, + "Ta": 57099, + "Ġcopp": 57100, + ".GetHashCode": 57101, + "):čĊčĊ": 57102, + "OnClick": 57103, + "ĠWellington": 57104, + "Ġrevival": 57105, + "æ¯Ķ": 57106, + "éĹ®": 57107, + "ĠNSS": 57108, + "Ġforn": 57109, + "Ġinté": 57110, + "ĠKuwait": 57111, + "_flip": 57112, + "_bo": 57113, + "_\\": 57114, + "Ġoccurrences": 57115, + "ĠScientists": 57116, + "SRC": 57117, + "ogens": 57118, + "igrant": 57119, + "REMOTE": 57120, + "ĠSID": 57121, + ".opts": 57122, + "uve": 57123, + "()])Ċ": 57124, + "Ġlibertarian": 57125, + "ĠGlide": 57126, + "lesen": 57127, + "Ġforme": 57128, + "owania": 57129, + "Ġannoyed": 57130, + "Defs": 57131, + "ĠExecutor": 57132, + "Ġcasts": 57133, + ".setChecked": 57134, + "ĠSharing": 57135, + ".SerializeObject": 57136, + "Ġselectors": 57137, + "_OTHER": 57138, + "미": 57139, + "(super": 57140, + "(OS": 57141, + "_VERIFY": 57142, + "idunt": 57143, + "';Ċ": 57145, + "Ġvidéo": 57146, + "ĠNegro": 57147, + "ĠLords": 57148, + "ĠTours": 57149, + "Ġsoftly": 57150, + ".receive": 57151, + "ĠERC": 57152, + "ĠdataSet": 57153, + "Badge": 57154, + "ĉEvent": 57155, + "Ġperl": 57156, + "Ġ{}\\": 57157, + "(sentence": 57158, + "OrUpdate": 57159, + "Ġdiminish": 57160, + "PIN": 57161, + "(draw": 57162, + ".ToDateTime": 57163, + ".EqualTo": 57164, + "(pin": 57165, + "-pencil": 57166, + "luent": 57167, + "ĠCaller": 57168, + "Ġplayful": 57169, + "-'+": 57170, + "xca": 57171, + "swick": 57172, + "){}Ċ": 57173, + "}:${": 57174, + "ĠMeth": 57175, + ".getCell": 57176, + ".break": 57177, + "Ġymax": 57178, + "='Ċ": 57391, + "ĠHiro": 57392, + "(TRUE": 57393, + "asurer": 57394, + "Ġcuer": 57395, + "Uber": 57396, + ".Operation": 57397, + "Ġolan": 57398, + "Ġthrilling": 57399, + "'.": 57421, + "ĉvalid": 57422, + "\"\",": 57423, + "Instrument": 57424, + ">J": 57425, + "Ġnostr": 57426, + "ĠRift": 57427, + "_Port": 57428, + "Ġveces": 57429, + "[['": 57430, + "Ġrallies": 57431, + "-series": 57432, + "Ġvv": 57433, + ".uc": 57434, + "Ġrtn": 57435, + "StateChanged": 57436, + "(ins": 57437, + "ĠCla": 57438, + "------------Ċ": 57439, + "cus": 57440, + "ĠReload": 57441, + "//------------------------------------------------------------------------------------------------": 57442, + ".seconds": 57443, + "_destination": 57444, + "Ġscrewed": 57445, + ">c": 57446, + "Thickness": 57447, + "Designer": 57448, + "Ġgrids": 57449, + "nÄħ": 57450, + "(cookie": 57451, + "Trip": 57452, + "-Mobile": 57453, + "Ġvoll": 57454, + "Ġgenital": 57455, + "Ġconfisc": 57456, + "ĠConfederate": 57457, + "ĠwebView": 57458, + "Ġmise": 57459, + "Ġcler": 57460, + "(selection": 57461, + "$date": 57462, + "Ġsharpen": 57463, + "ragen": 57464, + "AndUpdate": 57465, + "Ġremix": 57466, + "Ġhtons": 57467, + "RW": 57468, + "MPI": 57469, + "Ġretrieval": 57470, + "Ġrichest": 57471, + ".Decode": 57472, + ":initComponents": 57473, + "ĠTValue": 57474, + "Saint": 57475, + "@include": 57476, + "ĠPERSON": 57477, + ".sep": 57478, + "ĠLDAP": 57479, + "gba": 57480, + "ĠgroÃŁe": 57481, + "Ġreliably": 57482, + "ĠDFS": 57483, + ".getItemId": 57484, + "Ġprésent": 57485, + ".getToken": 57486, + "Ġchinese": 57487, + "ĠMeal": 57488, + "YOU": 57489, + "\">>ĊĊ": 58048, + "bower": 58049, + "Ġswapped": 58050, + "/install": 58051, + "Ġsinks": 58052, + "etrize": 58053, + "Ġdeclines": 58054, + "ĉmysql": 58055, + "ĠCString": 58056, + "ĠMotionEvent": 58057, + ".Language": 58058, + "Road": 58059, + "ÑĤеÑĢ": 58060, + "ascimento": 58061, + "'))->": 58062, + ".about": 58063, + "(editor": 58064, + "ĠRatings": 58065, + "income": 58066, + "Å¡e": 58067, + ".dequeueReusableCell": 58068, + "ĠAustrian": 58069, + "Ġsulla": 58070, + "ĠTribunal": 58071, + "ĠDidn": 58072, + "оваÑĢ": 58073, + "Ġinspections": 58074, + "Boss": 58075, + "Ġcocktails": 58076, + "Ġapologized": 58077, + "_subplot": 58078, + "opal": 58079, + "+=(": 58080, + "Ġresonance": 58081, + "ibu": 58082, + "Ġ리": 58083, + "roma": 58084, + "reserve": 58085, + "pls": 58086, + "ĠTah": 58087, + "axies": 58088, + "OPLE": 58089, + "ĠDarren": 58090, + "ĠZombie": 58091, + "_Map": 58092, + "Ġ])ĊĊ": 58093, + "ĠQi": 58094, + "ĠSail": 58095, + "Ġrestrictive": 58096, + "Ġerosion": 58097, + "-par": 58098, + "WHITE": 58099, + "Ġoldu": 58100, + "Ġaperture": 58101, + "Ġbitcoins": 58102, + "texto": 58103, + "ĠComcast": 58104, + "Ġtimeless": 58105, + "enkins": 58106, + "Ġfeeder": 58107, + "/tmp": 58108, + "resden": 58109, + "+'_": 58110, + ".Destroy": 58111, + "Ġçok": 58112, + "ĠDOCUMENT": 58113, + ".lng": 58114, + ".tagName": 58115, + "Ġkullan": 58116, + "egrate": 58117, + "Ġ(*.": 58118, + "ç¼ĸè¾ij": 58119, + "Ġhandshake": 58120, + "soc": 58121, + "_geometry": 58122, + "ĠDamascus": 58123, + "Minor": 58124, + "ĠKafka": 58125, + "ìŬ": 58126, + "Florida": 58127, + "_compute": 58128, + ".expr": 58129, + "Ġparalle": 58130, + "ĠDiaz": 58131, + "cir": 58132, + "[target": 58133, + "Ġjoking": 58134, + "Ġglor": 58135, + "(setq": 58136, + "_handlers": 58137, + "Hang": 58138, + "Ġferr": 58139, + "riminal": 58140, + "ĉĠĠĠĠĉĉ": 58141, + "enties": 58142, + "defines": 58143, + "-tax": 58144, + "jsonp": 58145, + "ĠUPS": 58146, + "metro": 58147, + "__;Ċ": 58148, + "ĠUganda": 58149, + "])):Ċ": 58150, + "_td": 58151, + "xae": 58152, + "lw": 58153, + ".OS": 58154, + "ĠLogged": 58155, + "acid": 58156, + "ĠMayo": 58157, + "aspect": 58158, + "Ġvaginal": 58159, + "Ġinitializing": 58160, + "Ġsteroids": 58161, + "fiction": 58162, + "GRE": 58163, + "gend": 58164, + "Ġliabilities": 58165, + "ĠLets": 58166, + "Mech": 58167, + "(nc": 58168, + "(change": 58169, + "Ġconnectors": 58170, + ":k": 58171, + "Ġtast": 58172, + "!\");ĊĊ": 58173, + "things": 58174, + "rophy": 58175, + "luetooth": 58176, + "ĠSignUp": 58177, + ".ctrl": 58178, + "Ġtherein": 58179, + "orda": 58180, + ".escape": 58181, + "igator": 58182, + "Ġpetrol": 58183, + "Ġspecimen": 58184, + "Ġdebuted": 58185, + "-Pro": 58186, + "Ġcrises": 58187, + ".addView": 58188, + "ëıĻ": 58189, + "-door": 58190, + "Ġmonet": 58191, + "Ġmillis": 58192, + "Ġvier": 58193, + "InternalEnumerator": 58194, + "Ġadmins": 58195, + "ĠLair": 58196, + "zin": 58197, + "getQuery": 58198, + "umbles": 58199, + "LIMIT": 58200, + "ĠVig": 58201, + "_song": 58202, + "": 58515, + "Ġpasado": 58516, + "thank": 58517, + "_Delete": 58518, + "ĠBrighton": 58519, + ",unsigned": 58520, + "ä½ľèĢħ": 58521, + "Ġaspirations": 58522, + "-how": 58523, + "Rose": 58524, + "=((": 58525, + "_needed": 58526, + "_plural": 58527, + ">ĊĊ": 58645, + "Ġsurfaced": 58646, + "ĠìłĢìŀ¥": 58647, + "platz": 58648, + "ĉemail": 58649, + "ceptors": 58650, + "\">(": 58651, + "Ġepile": 58652, + "读": 58653, + "ĠDebt": 58654, + "åijĬ": 58655, + "NOP": 58656, + "\"https": 58657, + ":j": 58658, + "FormItem": 58659, + "_LICENSE": 58660, + ".getDouble": 58661, + "ĠAgenda": 58662, + "ĉfinally": 58663, + "(filters": 58664, + "(av": 58665, + "ç¾İ": 58666, + "APER": 58667, + "Ġlava": 58668, + "еÑĢж": 58669, + "))))ĊĊ": 58670, + "Ġfaulty": 58671, + "_nm": 58672, + "Ġtrava": 58673, + "(Bitmap": 58674, + "Ġspeeding": 58675, + ">').": 58676, + "Ġscreened": 58677, + "_roll": 58678, + "ĠMacBook": 58679, + "ĠAUD": 58680, + "Ġdiagnose": 58681, + ".Generate": 58682, + "Ġ^^": 58683, + "Ġstrs": 58684, + "[Test": 58685, + "Ġransom": 58686, + "ĠDHCP": 58687, + "elden": 58688, + "Ġinterpretations": 58689, + "()].": 58690, + "flatMap": 58691, + "ĠlineHeight": 58692, + "_mount": 58693, + "ĠWizards": 58694, + "Ġsluts": 58695, + "ehler": 58696, + "odal": 58697, + "Ġmilitia": 58698, + "å²": 58699, + "earned": 58700, + "Ġmisery": 58701, + "intval": 58702, + "fund": 58703, + "Ġhides": 58704, + "Ġdiarr": 58705, + "ĠWesley": 58706, + "Ġxmm": 58707, + "Ġquem": 58708, + "ĠArabs": 58709, + "ifth": 58710, + "ategorized": 58711, + "Disposable": 58712, + "Pure": 58713, + "_NOTIFY": 58714, + "snippet": 58715, + "ĠGarrett": 58716, + ".running": 58717, + ".weights": 58718, + "Ġ(--": 58719, + "Ġinvariant": 58720, + "äºĭ件": 58721, + "ĠAllowed": 58722, + "dirs": 58723, + "Ġpassions": 58724, + "Ġlad": 58725, + "ĠFlush": 58726, + "menus": 58727, + ":block": 58728, + "Ġcompra": 58729, + ".chomp": 58730, + "allocator": 58731, + "Ġcurated": 58732, + "ĠKnowing": 58733, + "ĠPatterson": 58734, + "Ġtelah": 58735, + "'ex": 58736, + "Ġdoomed": 58737, + "Ġphilanth": 58738, + "otty": 58739, + ".styles": 58740, + "Owned": 58741, + "Ġallergies": 58742, + "=params": 58743, + "ocese": 58744, + "itelist": 58745, + "ĠSending": 58746, + "bef": 58747, + "orrar": 58748, + "ĠNão": 58749, + "ĠFargo": 58750, + "ĠLub": 58751, + "ĠCombined": 58752, + "_given": 58753, + "ĉĉĉĉĉĠĠĠĠ": 58754, + "Ġreconciliation": 58755, + "Patterns": 58756, + "azard": 58757, + "Ġbiomass": 58758, + "ĠHouses": 58759, + "respuesta": 58760, + "cco": 58761, + "/topics": 58762, + "ĠYuk": 58763, + "Ġweakened": 58764, + "_calendar": 58765, + "Ġmulheres": 58766, + "ĠMarl": 58767, + "Ġsine": 58768, + "ĠTil": 58769, + "ĠSouls": 58770, + "ĠDeutsche": 58771, + "ĠFOLLOW": 58772, + "Ġpipelines": 58773, + "ĠBeverly": 58774, + "_DIPSETTING": 58775, + "\"#": 58776, + "ĠProto": 58777, + ".big": 58778, + "ĠSavings": 58779, + "ĠTanz": 58780, + "jun": 58781, + "ĠGamma": 58782, + "ĠSadd": 58783, + "Ġadvisors": 58784, + "Ġroast": 58785, + "Ġunters": 58786, + "udies": 58787, + "_lon": 58788, + "-pointer": 58789, + "ĠElementRef": 58790, + "\\Builder": 58791, + "exampleInput": 58792, + ".webdriver": 58793, + "dataType": 58794, + "ĠQuite": 58795, + "ĠCeltics": 58796, + "uil": 58797, + "-defense": 58798, + "bish": 58799, + "ĠUIWindow": 58800, + "ĠSuddenly": 58801, + ".hot": 58802, + ".reason": 58803, + "Ġgör": 58804, + "AMD": 58805, + ".Multi": 58806, + "authenticated": 58807, + "regions": 58808, + ";(": 58809, + "аÑĢам": 58810, + "ĠKirby": 58811, + "$route": 58812, + "PRECATED": 58813, + "ĠDurham": 58814, + "owo": 58815, + "ĠPerforms": 58816, + "Ġdisregard": 58817, + "nst": 58818, + "ĠPols": 58819, + "ĠgetP": 58820, + "\"]:": 58821, + "-colored": 58822, + "(Keys": 58823, + "ĠAlleg": 58824, + "_modify": 58825, + "_loading": 58826, + "strained": 58827, + "Ġatroc": 58828, + "_phr": 58829, + "": 59821, + "ceph": 59822, + ".DateTimePicker": 59823, + ".\";ĊĊ": 59824, + "ĠTie": 59825, + ",item": 59826, + "Ġmenn": 59827, + "Gas": 59828, + "ocha": 59829, + "_virtual": 59830, + "Ġmasterpiece": 59831, + "_sequences": 59832, + "LTE": 59833, + "ĠSubmission": 59834, + "Caller": 59835, + "$\\": 59836, + "Sport": 59837, + "agus": 59838, + "ConstraintMaker": 59839, + "Ġcoloc": 59840, + "Ġwig": 59841, + "ĠУ": 59842, + "ĉArray": 59843, + "Looks": 59844, + "ĠGTA": 59845, + ".steps": 59846, + "atchewan": 59847, + "_ranges": 59848, + "extAlignment": 59849, + "ĠBrennan": 59850, + "Ġabstraction": 59851, + "ulerAngles": 59852, + ".misc": 59853, + "Ġantibodies": 59854, + "Ġexponential": 59855, + "ĠCHANNEL": 59856, + "expense": 59857, + "'y": 59858, + "Ġdetectives": 59859, + "Ġpurported": 59860, + "YSTEM": 59861, + "Ġradioactive": 59862, + "ĠLatina": 59863, + ".Encoding": 59864, + ".TAG": 59865, + "xin": 59866, + "Degree": 59867, + "uracion": 59868, + "prices": 59869, + "ĠReferentialAction": 59870, + "Ġrarity": 59871, + "Ġpiles": 59872, + "gende": 59873, + "_projects": 59874, + "_globals": 59875, + ".startTime": 59876, + "Ġ구": 59877, + "SECTION": 59878, + "_publish": 59879, + "Fault": 59880, + "DDL": 59881, + "_prior": 59882, + "Mom": 59883, + "Ġthicker": 59884, + "Ġsequelize": 59885, + "Ġessentials": 59886, + "stras": 59887, + "intr": 59888, + ">(()": 59889, + ".management": 59890, + "eil": 59891, + "éĹŃ": 59892, + "Aware": 59893, + ".City": 59894, + "ĠArbit": 59895, + "_DM": 59896, + "_keyboard": 59897, + "LObject": 59898, + "-webpack": 59899, + "ĠNewport": 59900, + "ĠprincipalColumn": 59901, + "legant": 59902, + "Ġpallet": 59903, + "Ġfracture": 59904, + "Ġgmail": 59905, + ".Meta": 59906, + "Above": 59907, + ".KeyEvent": 59908, + "jit": 59909, + "_macro": 59910, + "_PUSH": 59911, + "ứ": 59912, + "/controller": 59913, + "åĬłè½½": 59914, + "Ġsuperficial": 59915, + "exterity": 59916, + "Ġmensagem": 59917, + "Wind": 59918, + "iston": 59919, + ".openapi": 59920, + "иÑĢов": 59921, + "ĠSerializer": 59922, + "uctive": 59923, + "Ġzar": 59924, + "Places": 59925, + ".Static": 59926, + "Ba": 59927, + "Ġinadvert": 59928, + "ĠIndonesian": 59929, + "_IPV": 59930, + "(horizontal": 59931, + "ĠgetTitle": 59932, + "idepress": 59933, + "ĠConsoleColor": 59934, + "ipers": 59935, + "$out": 59936, + "Ġfestive": 59937, + "Ġevenings": 59938, + ".GetData": 59939, + "uitka": 59940, + "ĠManuals": 59941, + "ussed": 59942, + "_Max": 59943, + ".Chat": 59944, + "ĠAircraft": 59945, + "=com": 59946, + "FOUND": 59947, + "apro": 59948, + "Ġtreasures": 59949, + "_alive": 59950, + "Ġgadget": 59951, + "eking": 59952, + "ButtonDown": 59953, + "Browsable": 59954, + ".PERMISSION": 59955, + "PASSWORD": 59956, + "ĠHASH": 59957, + "fé": 59958, + "\\TestCase": 59959, + "LOSS": 59960, + "others": 59961, + ",J": 59962, + "Ġasshole": 59963, + "werk": 59964, + "Ġmã": 59965, + ".ie": 59966, + "evil": 59967, + "kontakte": 59968, + "////////////////////////////////////////////////////////////////////////////////Ċ": 59969, + "=sys": 59970, + "ĉlock": 59971, + "--;ĊĊ": 59972, + "_FUN": 59973, + "FillColor": 59974, + "óa": 59975, + "prend": 59976, + "Ġcompressor": 59977, + "Mother": 59978, + "ĠArcher": 59979, + ".goto": 59980, + "Ġwürde": 59981, + "Ġbamboo": 59982, + "ï¼İ": 59983, + "ĠTrees": 59984, + "Ġbumper": 59985, + "Ġsausage": 59986, + "ĠElasticsearch": 59987, + "Ġhorizontally": 59988, + "ĠGul": 59989, + "Immutable": 59990, + "Ġloser": 59991, + "Ġaborted": 59992, + "-demo": 59993, + "ĠHatch": 59994, + "Ġunde": 59995, + "Ġprocesso": 59996, + "-call": 59997, + "Income": 59998, + "åĥ": 59999, + "_returns": 60000, + "'].\"'": 60001, + "(sw": 60002, + "CBS": 60003, + "amilies": 60004, + "ĠYourself": 60005, + "ĠHolt": 60006, + ".MON": 60007, + "à§ĩ": 60008, + "ÑĪе": 60009, + "anon": 60010, + "ĠFontAwesome": 60011, + "producer": 60012, + "jr": 60013, + "Ġmau": 60014, + "ĉinter": 60015, + "Ġdishonest": 60016, + "Ġmagna": 60017, + "ĠCollective": 60018, + "Ġvraiment": 60019, + "Ġchoix": 60020, + "stay": 60021, + "Ġwelding": 60022, + "rising": 60023, + ",min": 60024, + "ĠFate": 60025, + "glob": 60026, + "RGBA": 60027, + "Ġdette": 60028, + "Ven": 60029, + "Ġembarrassment": 60030, + ".DELETE": 60031, + "gregar": 60032, + "-render": 60033, + "(bucket": 60034, + "\">ĊĊĊ": 60035, + ".waitKey": 60036, + "Busy": 60037, + "Ġdifferentiation": 60038, + "ĠCST": 60039, + ".Constant": 60040, + "ĠlineNumber": 60041, + "(matches": 60042, + "Ġwebsocket": 60043, + "Ġbarred": 60044, + "Ġpuedes": 60045, + "Mono": 60046, + "CORE": 60047, + "IID": 60048, + "ĠĠĠĠčĊčĊ": 60049, + "Ġpúblico": 60050, + "leaning": 60051, + "Ġcleansing": 60052, + "Ġcris": 60053, + "ĠDevils": 60054, + "_SETTING": 60055, + "untary": 60056, + ".);Ċ": 60057, + "ĊĠĠĠĊ": 60058, + "[curr": 60059, + "tsy": 60060, + "ĠAlexis": 60061, + "ritel": 60062, + "Ġpetroleum": 60063, + ".preprocessing": 60064, + "matter": 60065, + "ForResult": 60066, + "-license": 60067, + "Ġtravellers": 60068, + "ĠDispatcher": 60069, + "ennifer": 60070, + "Ġdigestive": 60071, + "PED": 60072, + "hibition": 60073, + "MASConstraintMaker": 60074, + "ĠWatt": 60075, + "Benef": 60076, + ".setView": 60077, + "dto": 60078, + "TEE": 60079, + "ĠPelosi": 60080, + "_EXTRA": 60081, + "Ġmedals": 60082, + "xhr": 60083, + "forecast": 60084, + "Ġnargin": 60085, + "ouns": 60086, + "-fill": 60087, + "_CURSOR": 60088, + "Ġsupervised": 60089, + "Ġturf": 60090, + "ĠEdgar": 60091, + "POSITION": 60092, + "ĠcategoryId": 60093, + "âī": 60094, + "_ER": 60095, + "ủa": 60096, + "Shown": 60097, + ".ll": 60098, + "_POLICY": 60099, + "(),'": 60100, + "ĠPrev": 60101, + "ĠStringField": 60102, + "ĉGlobal": 60103, + "assed": 60104, + "Throughout": 60105, + "ostringstream": 60106, + ".awtextra": 60107, + "Ġslopes": 60108, + "ĠSequential": 60109, + "Ġgiorn": 60110, + "Ġzelf": 60111, + "Ġversatility": 60112, + "leneck": 60113, + ".cgi": 60114, + "Ġdoubling": 60115, + "ĠBangkok": 60116, + "Ġbuurt": 60117, + "Ġusuário": 60118, + "studio": 60119, + "Ġjeunes": 60120, + "Ġmuted": 60121, + "Ġips": 60122, + "_fraction": 60123, + "&&(": 60124, + "Ġstunt": 60125, + "');?>čĊ": 60149, + "Ġevapor": 60150, + "bable": 60151, + "ĠPRICE": 60152, + "Ġæ³": 60153, + "lucent": 60154, + "Ġvamp": 60155, + "ĠTechnician": 60156, + "Ġuniqueness": 60157, + "Mes": 60158, + "urban": 60159, + ".parametrize": 60160, + "ĠReplay": 60161, + "Sessions": 60162, + "embr": 60163, + "-Americans": 60164, + "_PROXY": 60165, + "Ġpian": 60166, + "Ġtrie": 60167, + "ĠDestructor": 60168, + "GameState": 60169, + "ĠIMF": 60170, + "chin": 60171, + "Ġporte": 60172, + "ĠSwal": 60173, + "åŁİ": 60174, + "Substring": 60175, + "iming": 60176, + "/Library": 60177, + "Ġfrightened": 60178, + "writes": 60179, + "Ġrecursos": 60180, + "arResult": 60181, + "_INITIALIZ": 60182, + "ĠBadge": 60183, + "_crc": 60184, + "Eight": 60185, + "ĠDISTINCT": 60186, + "Ġthro": 60187, + "@Xml": 60188, + "ĠLegendary": 60189, + "-twitter": 60190, + "_easy": 60191, + "Ġ+++": 60192, + "(DATA": 60193, + ".Locale": 60194, + "Ġkä": 60195, + "Ġnurt": 60196, + "Ġcruis": 60197, + "_ios": 60198, + "Ġsensing": 60199, + "_Line": 60200, + "ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ": 60201, + "pong": 60202, + "oleon": 60203, + "Ġwildcard": 60204, + "çĶ¨æĪ·åIJį": 60205, + "Ġbegging": 60206, + "Rod": 60207, + "ĠÃİ": 60208, + "_CELL": 60209, + "Researchers": 60210, + ".selector": 60211, + "_ing": 60212, + "Ġaspiring": 60213, + "Ġimmortal": 60214, + "Ġymin": 60215, + "_robot": 60216, + "Ġplur": 60217, + "BTC": 60218, + "ĠDID": 60219, + "Ġpiercing": 60220, + "*u": 60221, + "_DEFINED": 60222, + "ĠThi": 60223, + "itaire": 60224, + "(media": 60225, + "-ons": 60226, + "Ġchefs": 60227, + "Ġ\"*.": 60228, + "/AP": 60229, + "Ġrazor": 60230, + "ĠsearchData": 60231, + "Ġ=&": 60232, + "ĠãĢĤ": 60233, + "Ġmourn": 60234, + "tingham": 60235, + "Ġoli": 60236, + "ĠVernon": 60237, + "_RS": 60238, + "ŀæĢ§": 60239, + "Ġfácil": 60240, + "angen": 60241, + "celain": 60242, + "Ġail": 60243, + "lest": 60244, + "ĠQCOMPARE": 60245, + "gain": 60246, + "Ġε": 60247, + "ĠKob": 60248, + "ĠFault": 60249, + "_configs": 60250, + "ç»ĵæŀľ": 60251, + ".+": 60252, + "calar": 60253, + "(colors": 60254, + "Mul": 60255, + "_ART": 60256, + "Ġexperimenting": 60257, + "ermen": 60258, + "ĠAnglo": 60259, + ".FixedSingle": 60260, + "Sea": 60261, + "Ġctxt": 60262, + ".slider": 60263, + "Collapse": 60264, + "Grey": 60265, + "Ġfld": 60266, + "-proof": 60267, + ".capacity": 60268, + "getParent": 60269, + "ĠCompliance": 60270, + "Ġburgl": 60271, + "-rec": 60272, + "Ġoverwritten": 60273, + "MU": 60274, + "Ġrouters": 60275, + "ĉModel": 60276, + "Ġfantasies": 60277, + "avian": 60278, + "_prec": 60279, + "ĠScandin": 60280, + "Ġ//<": 60281, + "/oct": 60282, + "Ġceremonies": 60283, + "Months": 60284, + "undy": 60285, + "Ġqued": 60286, + "ĠNou": 60287, + "ĠVibr": 60288, + ".rgb": 60289, + "Ġcitrus": 60290, + "Ġbraces": 60291, + "-uppercase": 60292, + "getTable": 60293, + "Ġdopo": 60294, + "ĠKerr": 60295, + "_CHILD": 60296, + "-cloud": 60297, + "ĉMatrix": 60298, + "Ġgardening": 60299, + "Sing": 60300, + "almost": 60301, + "Requirements": 60302, + "uguay": 60303, + "(Property": 60304, + "subscriber": 60305, + "FAST": 60306, + "reaction": 60307, + "(lp": 60308, + ")})Ċ": 60309, + "`).": 60310, + ".wallet": 60311, + "_exchange": 60312, + ".Maximum": 60313, + "ĠVerb": 60314, + "âĶģ": 60315, + "()<": 60316, + "ï¼ĽĊ": 60317, + "ROT": 60318, + "CARD": 60319, + "ubit": 60320, + "{@": 60321, + "_kel": 60322, + "ĠTooltip": 60323, + "MySQL": 60324, + "MainActivity": 60325, + "arf": 60326, + "Ġmalign": 60327, + "Ġseinen": 60328, + "apist": 60329, + "Ġ<%": 60330, + "MethodImpl": 60331, + "Mil": 60332, + "ĠMick": 60333, + ".depend": 60334, + ">&": 60367, + "ĉok": 60368, + "-low": 60369, + ".usuario": 60370, + "nested": 60371, + "XB": 60372, + "OURS": 60373, + ".BorderColor": 60374, + "Ġbrow": 60375, + "ĠÐķ": 60376, + "corr": 60377, + "ĠRedskins": 60378, + ".getTag": 60379, + ".getTransaction": 60380, + "Ġstigma": 60381, + "hardt": 60382, + "ĠPlayerPrefs": 60383, + "alsy": 60384, + "ucson": 60385, + "Languages": 60386, + "ĠOlivia": 60387, + "Ġtac": 60388, + "Ġbli": 60389, + "Ġcaval": 60390, + "Ġconsolidated": 60391, + "Ġperil": 60392, + "Ġdele": 60393, + "Ġformulated": 60394, + "Ġhighways": 60395, + ".spawn": 60396, + "==$": 60397, + "ĠNiet": 60398, + "Ġveggies": 60399, + "ypo": 60400, + "-rule": 60401, + "ĠVie": 60402, + "/epl": 60403, + "Ġenfants": 60404, + "stringLiteral": 60405, + "Ġtoughest": 60406, + "buyer": 60407, + "Ġcovariance": 60408, + "Ġili": 60409, + "ĠSophie": 60410, + "ĠBAB": 60411, + "Ġ\"),": 60412, + "ĠUk": 60413, + "currentIndex": 60414, + "_userdata": 60415, + ".codec": 60416, + "ĠPunjab": 60417, + "ĠSNP": 60418, + "lol": 60419, + "advance": 60420, + "Ġcomfy": 60421, + "JsonIgnore": 60422, + "Ġfashionable": 60423, + "ĠICON": 60424, + "Ġora": 60425, + "ĠPricing": 60426, + "E": 60484, + "tering": 60485, + "/screens": 60486, + "Ġheightened": 60487, + "аÑĢÑĤ": 60488, + "Authorities": 60489, + "_bbox": 60490, + "ünst": 60491, + ".fontSize": 60492, + "ĠBOOLEAN": 60493, + "divide": 60494, + "ĠSloven": 60495, + "ucer": 60496, + "ÙĴ": 60497, + "stub": 60498, + "Ġnavigating": 60499, + ":animated": 60500, + "_NOW": 60501, + "_vect": 60502, + "}{Ċ": 60503, + "@(": 60504, + "Ġtelecom": 60505, + "Ġcontracting": 60506, + "ĠAssange": 60507, + "Ġextracting": 60508, + "Ġgrö": 60509, + "cobra": 60510, + ".DIS": 60511, + "Ġcrab": 60512, + "Ġtwitch": 60513, + "Ġverts": 60514, + "Ġrejects": 60515, + "ĉformat": 60516, + "Ġregeneration": 60517, + ".Sys": 60518, + "solve": 60519, + "ĉdialog": 60520, + "shi": 60521, + "meter": 60522, + "(best": 60523, + "validators": 60524, + "Ġonwards": 60525, + "Ġguru": 60526, + "Ġmoderator": 60527, + "owied": 60528, + "experiment": 60529, + "rub": 60530, + "Ġmqtt": 60531, + "ĠCaucas": 60532, + "Ġnationalism": 60533, + "Ġmange": 60534, + "ĉImGui": 60535, + "/Edit": 60536, + "Ġinh": 60537, + "Ġintellig": 60538, + "erokee": 60539, + "ĉexport": 60540, + "Ġdiscriminate": 60541, + "subtract": 60542, + "ĠMoodle": 60543, + "enser": 60544, + "ĠGuides": 60545, + "RAP": 60546, + "-hot": 60547, + "_grp": 60548, + ".picture": 60549, + "XA": 60550, + "ĠinitView": 60551, + "_Comm": 60552, + "Ġoverdose": 60553, + "Ġ+ĊĊ": 60554, + "ĠSilent": 60555, + "shows": 60556, + "Ġinterpolate": 60557, + "Formation": 60558, + "Ġbisc": 60559, + "markets": 60560, + "(SC": 60561, + "Ze": 60562, + "ĠNetworking": 60563, + "Ġadrenal": 60564, + "ĠGuns": 60565, + "eteor": 60566, + "Declared": 60567, + "orgetown": 60568, + "Ġkarena": 60569, + "/password": 60570, + "_addresses": 60571, + "ITERAL": 60572, + "Buzz": 60573, + "ĠConway": 60574, + "(case": 60575, + "PWD": 60576, + "heiro": 60577, + "(act": 60578, + "**čĊ": 60579, + "());ĊĊĊ": 60580, + "Ġanv": 60581, + "Ġ..ĊĊ": 60582, + "(MenuItem": 60583, + "(mail": 60584, + "_sections": 60585, + "ĉnet": 60586, + "Ġplut": 60587, + "Ġwrench": 60588, + "/object": 60589, + "ĠIst": 60590, + "ĠVIS": 60591, + "/pub": 60592, + "alten": 60593, + "Ġguitars": 60594, + "Ġantibiotic": 60595, + "ï¼ĸ": 60596, + "¹": 60597, + "Ġ\"+\"": 60598, + "formula": 60599, + "Ġbabes": 60600, + "ĠPrompt": 60601, + "Ġenim": 60602, + "/player": 60603, + "ĉref": 60604, + "ĠbyÄĩ": 60605, + "Ġconsumes": 60606, + "ĠHast": 60607, + "ĠTao": 60608, + "Ġ'))Ċ": 60609, + "Ġclam": 60610, + "Ġthighs": 60611, + "Ġmotif": 60612, + "ApiOperation": 60613, + "ĠWL": 60614, + "getC": 60615, + "ĉflags": 60616, + "ointments": 60617, + "Ġeconomical": 60618, + "needle": 60619, + "xls": 60620, + "practice": 60621, + "utzer": 60622, + "timeofday": 60623, + "-output": 60624, + "ĠfindById": 60625, + "ĠBuddy": 60626, + "ÐŀÑĤ": 60627, + "Seven": 60628, + "ĠBark": 60629, + "Ġenvoy": 60630, + "_algorithm": 60631, + "åĪ©": 60632, + "Ġballistic": 60633, + "移": 60634, + "rades": 60635, + "ĉdoc": 60636, + "roducing": 60637, + "ĠEating": 60638, + "Unmount": 60639, + "/dataTables": 60640, + "_bonus": 60641, + "Ġlitt": 60642, + "pps": 60643, + ")localObject": 60644, + "perf": 60645, + "ĠHelvetica": 60646, + "shutdown": 60647, + "/ml": 60648, + ".tokens": 60649, + "ĠHardcore": 60650, + ",row": 60651, + "/bg": 60652, + "Scaler": 60653, + "âĢĶas": 60654, + "_logits": 60655, + "âĢĻint": 60656, + "ĉApp": 60657, + "Implicit": 60658, + ".Fprintf": 60659, + "ETO": 60660, + "Ġterra": 60661, + "Ġpossessing": 60662, + ".rstrip": 60663, + ",),": 60664, + "=yes": 60665, + "ĠStripe": 60666, + "?=": 60667, + "neutral": 60668, + ".good": 60669, + "Ġkennen": 60670, + "ĠSung": 60671, + "fault": 60672, + "ystatechange": 60673, + "Canadian": 60674, + "','\".$": 60675, + "ĠMits": 60676, + "ænd": 60677, + "ĠSTRUCT": 60678, + "ĠURLWithString": 60679, + "ĠCompass": 60680, + "Ġ--ĊĊ": 60681, + "ĠNSLayoutConstraint": 60682, + "|min": 60683, + "-adjust": 60684, + "Ġrebuilt": 60685, + "LIGHT": 60686, + "/se": 60687, + "-mount": 60688, + "vpn": 60689, + "validated": 60690, + "(QObject": 60691, + "Ġignition": 60692, + "ĠChargers": 60693, + "RYPTO": 60694, + "]initWithFrame": 60695, + "ĠFluid": 60696, + "Ġcadre": 60697, + "Ġnominations": 60698, + "Neill": 60699, + "ĠHou": 60700, + "Ġcurrents": 60701, + "_gene": 60702, + "(inp": 60703, + "Paris": 60704, + "zÄĻ": 60705, + "aggregate": 60706, + "Ġassoc": 60707, + "weeted": 60708, + "errat": 60709, + "âĢĵĊĊ": 60710, + "Ġ'/',Ċ": 60711, + "fixture": 60712, + "ĠHighest": 60713, + "ambient": 60714, + "Ġchmod": 60715, + "Ġconte": 60716, + "Ġsensual": 60717, + "Ġgarment": 60718, + "zers": 60719, + "ĠPowered": 60720, + "domains": 60721, + "Reward": 60722, + "iomanip": 60723, + "Ġcockpit": 60724, + "outfile": 60725, + "Ġbuiltin": 60726, + "Ġinsisting": 60727, + ".vars": 60728, + "zipcode": 60729, + "Ġ����": 60730, + "fails": 60731, + "Ġconsolidation": 60732, + "_oid": 60733, + "Planet": 60734, + "Ġ=\",": 60735, + "ĉel": 60736, + "UILT": 60737, + "ätz": 60738, + "afari": 60739, + "ĠMcCl": 60740, + "Timeline": 60741, + "Esta": 60742, + "Ġfram": 60743, + "YE": 60744, + "Ġcerebral": 60745, + "OfMonth": 60746, + "ĠPregn": 60747, + "ĠклаÑģÑģ": 60748, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ": 60749, + "ĠFres": 60750, + "Approved": 60751, + ".Special": 60752, + "ĠProtestant": 60753, + "Ġallergy": 60754, + "_pcm": 60755, + "ĉCopyright": 60756, + "ĠsuperClass": 60757, + "\"strconv": 60758, + "ĠMohamed": 60759, + "Ġ'//": 60760, + "ForeColor": 60761, + "Arthur": 60762, + "ĠJungle": 60763, + "Ġveins": 60764, + "Sad": 60765, + "Ġbackups": 60766, + "ĠOpinion": 60767, + "ût": 60768, + "Ġintermitt": 60769, + "odyn": 60770, + "ĠChristina": 60771, + "Ġandre": 60772, + "Ġevacuation": 60773, + "palette": 60774, + "horse": 60775, + "ĠResident": 60776, + "ĠHassan": 60777, + ".Nil": 60778, + "Ġaisle": 60779, + "ĠGrowing": 60780, + "Ġbloginfo": 60781, + "/sql": 60782, + "_ioctl": 60783, + "Scaling": 60784, + "ĠMonad": 60785, + "_cpp": 60786, + "ĠHutch": 60787, + "ĠAppleWebKit": 60788, + "Expense": 60789, + "_JOB": 60790, + "Ġpointless": 60791, + "FromBody": 60792, + "antal": 60793, + "Ġdepicting": 60794, + "ĠCELL": 60795, + "Ġrefin": 60796, + "ĠCNC": 60797, + "ì¹ĺ": 60798, + "_dimensions": 60799, + "ĠSAN": 60800, + "Ġaft": 60801, + "Ġfootsteps": 60802, + "ccoli": 60803, + "_PHONE": 60804, + "/math": 60805, + "-kind": 60806, + "ĠMeans": 60807, + "ichael": 60808, + ".guna": 60809, + "Ġinauguration": 60810, + "-driving": 60811, + "(delete": 60812, + "ĠtotalCount": 60813, + "_MC": 60814, + ".Extension": 60815, + "Commercial": 60816, + "ĠzIndex": 60817, + "$": 60949, + "Ġebay": 60950, + "Ġcaptive": 60951, + "pliant": 60952, + "ĠCalculates": 60953, + "olta": 60954, + "esting": 60955, + "_revision": 60956, + "Ġmús": 60957, + "+m": 60958, + "\",\"\",\"": 60959, + "WHAT": 60960, + "Ġcompassionate": 60961, + "harga": 60962, + "[random": 60963, + "Ġmodulo": 60964, + "(sn": 60965, + "Ġoccupations": 60966, + "////Ċ": 60967, + "ĉboard": 60968, + "ĠBalk": 60969, + "wiÄħ": 60970, + "ĠWifi": 60971, + ".Profile": 60972, + ":maj": 60973, + "ĉmat": 60974, + "LOCKS": 60975, + "(jButton": 60976, + "Ġ('$": 60977, + "Mur": 60978, + "æĮī": 60979, + "bble": 60980, + "Ġfrog": 60981, + "-hide": 60982, + "Ġbroadcaster": 60983, + "à¸ŀ": 60984, + "haled": 60985, + "Ġamusing": 60986, + "_predictions": 60987, + "_intr": 60988, + "Ġeagle": 60989, + "аÑĤелÑĮ": 60990, + "ĠgetList": 60991, + "psilon": 60992, + "Ġcharacterization": 60993, + "ARDS": 60994, + "Ġrelocation": 60995, + "Ġrulers": 60996, + "PAY": 60997, + "ĠDefinitely": 60998, + "_Action": 60999, + "Ġclosures": 61000, + "Ġfactual": 61001, + "odynamic": 61002, + "Ġprecautions": 61003, + "niej": 61004, + "ĠParties": 61005, + "ĠSubaru": 61006, + "Ġcousins": 61007, + "arbeit": 61008, + ".money": 61009, + "gunta": 61010, + "(and": 61011, + "getitem": 61012, + ".StylePriority": 61013, + "Ġslid": 61014, + "singleton": 61015, + "Ġgarn": 61016, + "ĠPAS": 61017, + "Ġdazz": 61018, + "aż": 61019, + "Ġbogus": 61020, + "ĠMog": 61021, + "Ġrivalry": 61022, + "isol": 61023, + "Ġlandmarks": 61024, + "ñas": 61025, + "Bern": 61026, + "ĠSachs": 61027, + "Ġ\")ĊĊ": 61028, + "Ġhostility": 61029, + "_mex": 61030, + "mere": 61031, + "Mot": 61032, + "pictureBox": 61033, + "Defense": 61034, + "Ġaffidavit": 61035, + "otherwise": 61036, + ".directory": 61037, + "_UnityEngine": 61038, + "-blog": 61039, + ".skin": 61040, + "phem": 61041, + "Apellido": 61042, + "erchant": 61043, + "[class": 61044, + "Ġwart": 61045, + ".\"[": 61046, + "aleur": 61047, + "/back": 61048, + "ĠĠĠĠĉĠĠĠ": 61049, + "Ġprecipitation": 61050, + "Ġobstruction": 61051, + "ĠpObj": 61052, + "Ġrupt": 61053, + "UCKET": 61054, + "aye": 61055, + "æİĴ": 61056, + "gx": 61057, + "Ġecl": 61058, + "Ġsecrecy": 61059, + "/Header": 61060, + "ĠLesb": 61061, + "Ġlei": 61062, + "ĠBulletin": 61063, + "Ġgiveaway": 61064, + ".Home": 61065, + "_ROOM": 61066, + "\"W": 61067, + "Ġcowork": 61068, + "_ra": 61069, + "ĠCycling": 61070, + "ĠPaw": 61071, + "Ġpupil": 61072, + "/arch": 61073, + "ĠFileUtils": 61074, + "é¦ĸ": 61075, + "rsp": 61076, + "Ġfreedoms": 61077, + "ĠLear": 61078, + "}`).": 61079, + "Ġbowls": 61080, + "/block": 61081, + "_logging": 61082, + "Ġmethane": 61083, + "Ġhorns": 61084, + "Ġwonderfully": 61085, + "Ġalterations": 61086, + "Ġexile": 61087, + "lsen": 61088, + "_pause": 61089, + "_LANGUAGE": 61090, + "ĠUSDA": 61091, + "_mysql": 61092, + "_AMOUNT": 61093, + "ĠLIFE": 61094, + "Ġyoungsters": 61095, + "Ġriots": 61096, + "[E": 61097, + "Ġunforgettable": 61098, + ",},Ċ": 61099, + "Disposed": 61100, + "ĠAssassin": 61101, + "UNG": 61102, + "ĠNewsp": 61103, + "UserService": 61104, + ":aload": 61105, + "+',": 61106, + "Ġsettlers": 61107, + "Ġscreams": 61108, + "Ġinconvenience": 61109, + ".Rotate": 61110, + "Ġjars": 61111, + "ĠPuzzle": 61112, + "Ġmest": 61113, + "arsi": 61114, + "ĠSharma": 61115, + "|(": 61116, + ".ds": 61117, + "ĠSacred": 61118, + "_evt": 61119, + "Ġexpresses": 61120, + "Ġhoch": 61121, + "ĠDuch": 61122, + ".calls": 61123, + "thr": 61124, + "ĠSheffield": 61125, + ".AlertDialog": 61126, + "Ġradically": 61127, + "Ġtrous": 61128, + "Ġprevailing": 61129, + "ĠWWII": 61130, + "âĢĻn": 61131, + "ensely": 61132, + "ĠYesterday": 61133, + "ĠSirius": 61134, + "Ġkillers": 61135, + "ĠFFT": 61136, + "Ġoval": 61137, + "'):čĊ": 61138, + "Ġìłķë³´": 61139, + "ourage": 61140, + "ĠCheckbox": 61141, + "Workbook": 61142, + ".defer": 61143, + "_floor": 61144, + "Ġcouncill": 61145, + "Ġnorske": 61146, + "moil": 61147, + "orea": 61148, + "Ġmarketed": 61149, + "_SUR": 61150, + "xAA": 61151, + "Ġstained": 61152, + "eut": 61153, + "ĠMeng": 61154, + "Ġieee": 61155, + ".extern": 61156, + "egie": 61157, + "Ġrapp": 61158, + "ĠPyongyang": 61159, + "'class": 61160, + "Mob": 61161, + "ĠinitialValue": 61162, + "_wave": 61163, + "Ġjab": 61164, + "Ġmasculine": 61165, + "Ġamplifier": 61166, + "Ġtty": 61167, + "PathComponent": 61168, + "_xt": 61169, + "ĠGFP": 61170, + "/sec": 61171, + "ĉdispatch": 61172, + "markdown": 61173, + "ĠSchn": 61174, + "bole": 61175, + "··": 61176, + "mousemove": 61177, + "ĠerrMsg": 61178, + "Ġasign": 61179, + "_mono": 61180, + "ToSelector": 61181, + "ĠZu": 61182, + "(Rect": 61183, + "ĠErrorCode": 61184, + "latin": 61185, + "angible": 61186, + "vtk": 61187, + "CGSize": 61188, + "Pokemon": 61189, + "Ġclassmates": 61190, + "Ġattracts": 61191, + "ĠTatto": 61192, + "ultan": 61193, + "ológ": 61194, + "Ġhalted": 61195, + "न": 61196, + "ĠKart": 61197, + "Ġue": 61198, + "_InitStructure": 61199, + "TestClass": 61200, + "ĠAirbnb": 61201, + "_\",": 61202, + "Ġcharcoal": 61203, + "Ġipc": 61204, + "ĠStretch": 61205, + ".glide": 61206, + "latesAutoresizingMaskIntoConstraints": 61207, + "Ġpotion": 61208, + "ITTLE": 61209, + "Ġcountert": 61210, + "_hd": 61211, + "prepared": 61212, + "Ads": 61213, + "ĠVampire": 61214, + "robots": 61215, + ".CreateIndex": 61216, + "StatusLabel": 61217, + "Ġtucked": 61218, + "afür": 61219, + "Ut": 61220, + "Ġsweater": 61221, + "_FN": 61222, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĉ": 61223, + "ataka": 61224, + "Ġeyebrows": 61225, + "acoes": 61226, + "uden": 61227, + ".LinearLayoutManager": 61228, + "Ġsway": 61229, + "Ġmultin": 61230, + "())))Ċ": 61231, + "ĠNSUInteger": 61232, + "ĠMyBase": 61233, + "Partner": 61234, + "utschen": 61235, + "ĠCater": 61236, + ".setBackgroundColor": 61237, + "Ġaccomplishment": 61238, + "_problem": 61239, + ".dtd": 61240, + "ĠpageNumber": 61241, + "Ġjackets": 61242, + "Ġcropped": 61243, + "uels": 61244, + "ĠHep": 61245, + "Ġcapped": 61246, + "*Math": 61247, + "_callbacks": 61248, + "Ġpubb": 61249, + "ĠBrunswick": 61250, + ".respond": 61251, + "[\"_": 61252, + "Ġbedding": 61253, + "hythm": 61254, + "OX": 61255, + "(speed": 61256, + "Ġpesticides": 61257, + "Ġ-------": 61258, + ".Blue": 61259, + "Ġnoodles": 61260, + "ĠGoes": 61261, + "Ġsaver": 61262, + "oxy": 61263, + "_completion": 61264, + "ĠSwinger": 61265, + "ĠgetDate": 61266, + "Ġminded": 61267, + "integration": 61268, + "ĠLotus": 61269, + "(stop": 61270, + "(',');Ċ": 61271, + "Ġfloods": 61272, + "ĠWorkflow": 61273, + "Ġerupted": 61274, + "Macro": 61275, + "ĠSauce": 61276, + "ĠeventName": 61277, + "\\Input": 61278, + "Breaking": 61279, + "ĉwhen": 61280, + "_pw": 61281, + "INDER": 61282, + "ĠWellness": 61283, + "Ġvoxel": 61284, + "ĠMell": 61285, + "ĠMEDIA": 61286, + "SENS": 61287, + "ĠFunds": 61288, + "ĠMild": 61289, + "Ċ": 61298, + "Ġtempting": 61299, + "Ġtestament": 61300, + "Ġbible": 61301, + "Ġconsulted": 61302, + "ĠIndexError": 61303, + "è¨ĺ": 61304, + "Ġkeypad": 61305, + "izzo": 61306, + "(ok": 61307, + "Ġwhatsapp": 61308, + "ĠRemoteException": 61309, + "Ġteamed": 61310, + "âĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶ": 61311, + "»,": 61312, + "ĠgetTime": 61313, + "diag": 61314, + "issy": 61315, + "Ġhed": 61316, + "Ġknots": 61317, + "jom": 61318, + "Ġfunnel": 61319, + "-mails": 61320, + "Ġexporting": 61321, + "ĠVL": 61322, + "ĠKarn": 61323, + "ĠBuddhism": 61324, + "ĠAllan": 61325, + "_RADIUS": 61326, + "Ġwording": 61327, + "ĠForget": 61328, + "ĠCorona": 61329, + "iphy": 61330, + "Ġlimburg": 61331, + "uggy": 61332, + "ĠUserRepository": 61333, + "imin": 61334, + "(ele": 61335, + "Ġlabelled": 61336, + "社": 61337, + "ĠHerman": 61338, + ".qq": 61339, + "Ġ\"));Ċ": 61340, + "ieber": 61341, + ".Translate": 61342, + "ryn": 61343, + "Ġdesenv": 61344, + "umd": 61345, + "Simply": 61346, + "ĉmode": 61347, + "Rpc": 61348, + "ĠValencia": 61349, + "Ġstaffers": 61350, + "Ġselv": 61351, + "ĠSpike": 61352, + "Ġdelic": 61353, + "Ġeru": 61354, + "_DT": 61355, + "Judge": 61356, + "á»ķ": 61357, + "ĠBasin": 61358, + ".mutable": 61359, + "\"url": 61360, + "Ġtariff": 61361, + "ĠSleeve": 61362, + "Ġflare": 61363, + ".dropout": 61364, + "Ġbrides": 61365, + ")),čĊ": 61366, + "_constraints": 61367, + "destruct": 61368, + "Outline": 61369, + "Ġdisappears": 61370, + "_locked": 61371, + "ĠNSLocalizedString": 61372, + "cke": 61373, + "ĉnull": 61374, + "adresse": 61375, + "Ġtopping": 61376, + "ĠJoker": 61377, + "bishop": 61378, + "ноÑģÑĤÑĮ": 61379, + "andering": 61380, + "_amp": 61381, + "=time": 61382, + "_Space": 61383, + "_PULL": 61384, + "'=": 61385, + "Ġantiqu": 61386, + "Ġcach": 61387, + "___ĊĊ": 61388, + "ONES": 61389, + "оÑı": 61390, + "Ġunread": 61391, + ".policy": 61392, + "oooooooo": 61393, + "룬": 61394, + "Ġusted": 61395, + "ĠRece": 61396, + "Ġallem": 61397, + "ãĥ¼ãĤ¹": 61398, + "ĠThoughts": 61399, + "veillance": 61400, + "istrate": 61401, + "_lane": 61402, + "Ġfamed": 61403, + ".GetName": 61404, + "Ġsmoother": 61405, + "ĠQualified": 61406, + "azers": 61407, + "_geo": 61408, + "Fax": 61409, + "ĠMinds": 61410, + "ĠRaises": 61411, + "Ġtranscripts": 61412, + "Conversation": 61413, + "Ġremarked": 61414, + "ëĤĺ": 61415, + "dling": 61416, + "Ġdeploying": 61417, + "ĠsharedApplication": 61418, + "Ġkp": 61419, + "FontAwesomeIcon": 61420, + "_dummy": 61421, + "reiben": 61422, + "ĠJaneiro": 61423, + "Directions": 61424, + ".getBean": 61425, + "sass": 61426, + "Ġcommanders": 61427, + "vation": 61428, + "errorCode": 61429, + "ĠAlloy": 61430, + ".localized": 61431, + "Ðij": 61432, + "Ġdishwasher": 61433, + "ĠSoup": 61434, + "Nu": 61435, + "_Default": 61436, + "Ġuneven": 61437, + "Ġ/>\";Ċ": 61438, + "-Based": 61439, + "Ġseamlessly": 61440, + "-null": 61441, + "ĠXC": 61442, + "Ġstew": 61443, + "(delay": 61444, + "ATORS": 61445, + "ĠWheeler": 61446, + "\"H": 61600, + "east": 61601, + ".air": 61602, + "âĢľBut": 61603, + "ObjectContext": 61604, + "successfully": 61605, + "_land": 61606, + "Ġfolds": 61607, + "_COORD": 61608, + "Ġsubpo": 61609, + ".getAddress": 61610, + "instr": 61611, + "Materials": 61612, + "ÑĥÑģÑĤ": 61613, + "deposit": 61614, + "-last": 61615, + "_GRAY": 61616, + "=find": 61617, + "Ġmutant": 61618, + "Ġlesbienne": 61619, + "letcher": 61620, + "ROUGH": 61621, + "ureka": 61622, + ".capture": 61623, + "Ġenn": 61624, + "Ġ([[": 61625, + "ĠFlu": 61626, + "ĠtaskId": 61627, + "ĠHussein": 61628, + ".folder": 61629, + "Ġausterity": 61630, + "ISTRATION": 61631, + "_Impl": 61632, + "注æĦı": 61633, + "Ġdecree": 61634, + "-chat": 61635, + "Ġimplication": 61636, + "Ġguesses": 61637, + "ulkan": 61638, + "Analytics": 61639, + ".plus": 61640, + "COMMAND": 61641, + "ели": 61642, + "»ĊĊ": 61643, + "_SITE": 61644, + "ĠequalTo": 61645, + "SupportFragmentManager": 61646, + "ĠRecording": 61647, + "å®ĮæĪIJ": 61648, + "Ġbaggage": 61649, + "Ġpitchers": 61650, + "ĠEh": 61651, + "oque": 61652, + "ĉcnt": 61653, + "Ġ=>$": 61654, + "/foo": 61655, + "IRA": 61656, + "ĠSatellite": 61657, + "borah": 61658, + "Ġ}}\"Ċ": 61659, + "ĠEnds": 61660, + "ĠSpray": 61661, + ",param": 61662, + ".Chrome": 61663, + "*q": 61664, + "thought": 61665, + "ibrated": 61666, + "Ġthieves": 61667, + "Ġbeneficiaries": 61668, + "Entered": 61669, + "ottesville": 61670, + "Ġveterin": 61671, + "ByID": 61672, + "quipe": 61673, + "umption": 61674, + "-unit": 61675, + "ExecutionContext": 61676, + "@s": 61677, + "ĠGiov": 61678, + ".ToolTip": 61679, + "_friend": 61680, + "(attributes": 61681, + "Ġdumping": 61682, + "ĠJC": 61683, + "_DOCUMENT": 61684, + "ĠArmour": 61685, + "(insert": 61686, + ".HorizontalAlignment": 61687, + "ĠQed": 61688, + "ãģĦãģ¾ãģĻ": 61689, + "/git": 61690, + "ĠYYYY": 61691, + "ĠCardiff": 61692, + "Ġapa": 61693, + "organic": 61694, + "ĠWhereas": 61695, + "ĠæĿ": 61696, + "ĠMia": 61697, + "Ġdemolition": 61698, + "Ġscars": 61699, + "Ġpai": 61700, + "Ġretries": 61701, + "Ġrq": 61702, + "ĠDenis": 61703, + "(Utils": 61704, + "Ġalleviate": 61705, + "ĠPIC": 61706, + "idue": 61707, + "Ġacknowledging": 61708, + "Ġ//////////////////////////////////": 61709, + "ç¡®å®ļ": 61710, + "Ä«": 61711, + "\\Json": 61712, + ".binary": 61713, + "Ġxtype": 61714, + "signals": 61715, + "ĠAppearance": 61716, + "&r": 61717, + "}s": 61718, + "Ci": 61719, + "ĠIllum": 61720, + "porate": 61721, + "hog": 61722, + "ĠindexOf": 61723, + "\\Command": 61724, + "_parallel": 61725, + "ĠSherlock": 61726, + "íĥ": 61727, + "Ġ\"\")čĊ": 61728, + "////////////////////////////////////////////////////////////////////////////////////////////////": 61729, + "Ġcriticize": 61730, + "ĠSoap": 61731, + "ĠMatcher": 61732, + "Ġgrilled": 61733, + "*T": 61734, + "Ġadore": 61735, + "ulling": 61736, + "Ġjedoch": 61737, + "_refs": 61738, + "leanup": 61739, + "ĠJAXB": 61740, + "Ġroses": 61741, + "ĠLiam": 61742, + "sizei": 61743, + "Ġgetchar": 61744, + "Ġtarde": 61745, + "-tooltip": 61746, + "Ġqualifier": 61747, + "ĠIntermediate": 61748, + "_Window": 61749, + "ĠMalta": 61750, + "Disconnect": 61751, + "ewhere": 61752, + "Campo": 61753, + "Ġirrational": 61754, + "ledo": 61755, + "ĠDN": 61756, + "ARGV": 61757, + "Ġoutro": 61758, + "Ġthirteen": 61759, + "Joseph": 61760, + "MAR": 61761, + "/gl": 61762, + "Jess": 61763, + "ĠPsychiat": 61764, + "ĠpaddingBottom": 61765, + "-loop": 61766, + "/fonts": 61767, + "_seen": 61768, + "Teams": 61769, + "ReactDOM": 61770, + "(man": 61771, + "(xpath": 61772, + ".getSimpleName": 61773, + ">(*": 61774, + "ĠPvt": 61775, + "Ġelders": 61776, + "Ġpies": 61777, + ".userAgent": 61778, + "-region": 61779, + "ĠGreeks": 61780, + "(fragment": 61781, + "stu": 61782, + "Ġcouncils": 61783, + "Ġstamina": 61784, + "ĠGoddess": 61785, + "西": 61786, + "Ġphilosophers": 61787, + "Ġpersone": 61788, + "ĠLose": 61789, + "ĠCLR": 61790, + "ĠDocs": 61791, + "Ġsoak": 61792, + "ĠHOLDER": 61793, + "Ġbells": 61794, + "hashCode": 61795, + "RATE": 61796, + "_WEIGHT": 61797, + "inous": 61798, + "endra": 61799, + "ophobic": 61800, + "Ġprose": 61801, + "Ġfinely": 61802, + "/oauth": 61803, + "(space": 61804, + "adge": 61805, + "ĠMama": 61806, + "ĠstringBuffer": 61807, + "Ġstint": 61808, + "Ġmisma": 61809, + "Ġvillains": 61810, + "ĠCrimea": 61811, + "Ġdiploma": 61812, + "ĠпоÑģл": 61813, + "ĠBea": 61814, + "(join": 61815, + "Ġíķ´": 61816, + "CHAT": 61817, + "pering": 61818, + "ĠCros": 61819, + "Ġmonkeys": 61820, + "Ġpreds": 61821, + "yla": 61822, + ",,,": 61823, + "Ġvibrator": 61824, + "ĠNU": 61825, + "åħĪ": 61826, + "fant": 61827, + "zet": 61828, + "Ġbietet": 61829, + "unft": 61830, + "sworth": 61831, + ".Flow": 61832, + "Ġpsyched": 61833, + "ĠContinental": 61834, + ">t": 61835, + "Ġquilt": 61836, + ".UP": 61837, + "Ġexpansive": 61838, + "Dispose": 61839, + "(language": 61840, + "Caps": 61841, + "_ZONE": 61842, + "Ġrecycle": 61843, + "ĠManaged": 61844, + "currentColor": 61845, + ".broadcast": 61846, + "signIn": 61847, + ".prom": 61848, + "llu": 61849, + "ueblo": 61850, + "Ġpunches": 61851, + "Ġautomat": 61852, + "Ġassigning": 61853, + "ĠcreateUser": 61854, + "ĠAllied": 61855, + "Ġconductor": 61856, + "Ĥ¨": 61857, + "Ġsaddle": 61858, + "Ġdni": 61859, + "omedical": 61860, + "-West": 61861, + "PositiveButton": 61862, + "Ġitalic": 61863, + "?[": 61864, + "(trigger": 61865, + "Ġelephants": 61866, + "\":\"\",\"": 61867, + "Ġcaliber": 61868, + "rafted": 61869, + "digits": 61870, + "Ġmarshal": 61871, + "milliseconds": 61872, + "markers": 61873, + "mom": 61874, + "/place": 61875, + "Ġholistic": 61876, + ":t": 61877, + "#,": 61878, + "Ġboto": 61879, + "Ġnausea": 61880, + "ĠShooting": 61881, + "itech": 61882, + "ĠtextStatus": 61883, + "())Ċ": 62104, + "ADDRESS": 62105, + "BST": 62106, + "etzt": 62107, + "ĠQgs": 62108, + "Sense": 62109, + "ExceptionHandler": 62110, + "ĠChu": 62111, + ".getOwnProperty": 62112, + "Ġexercised": 62113, + "iotic": 62114, + "ĠReleases": 62115, + "Ġpinterest": 62116, + "olie": 62117, + "isoft": 62118, + "Ġsequencing": 62119, + "Ġpadre": 62120, + "]));čĊ": 62121, + "(radius": 62122, + ".med": 62123, + "ainties": 62124, + ".ObjectModel": 62125, + "Ġemple": 62126, + "Ġseguro": 62127, + "Stars": 62128, + "Ġqualitative": 62129, + "lemn": 62130, + "á»±": 62131, + ">\").": 62132, + "Ġgx": 62133, + "-cert": 62134, + "ĠASTM": 62135, + "Ġfullname": 62136, + "Ġtelemetry": 62137, + "ĠCambodia": 62138, + "_ul": 62139, + "ĠClare": 62140, + "CUSTOM": 62141, + "QC": 62142, + "ĠUns": 62143, + "ĠHTTPS": 62144, + "ĠParkinson": 62145, + "ancybox": 62146, + "','.": 62147, + "Tue": 62148, + ".getLast": 62149, + "Ġabi": 62150, + "Äħd": 62151, + "Ast": 62152, + "ĠEditing": 62153, + ".Unity": 62154, + "jmp": 62155, + "Ġmats": 62156, + "ĠsharedPreferences": 62157, + "Captain": 62158, + ".pageSize": 62159, + "Ġrtl": 62160, + "Ġanmeld": 62161, + "RuntimeObject": 62162, + "Ġdemande": 62163, + "(\";": 62164, + "seite": 62165, + "-headed": 62166, + "ĠKra": 62167, + "ĠFONT": 62168, + "`\\": 62169, + "ClassNotFoundException": 62170, + ".avg": 62171, + "atical": 62172, + "Aj": 62173, + "Ġpermitting": 62174, + "Proj": 62175, + "ERRQ": 62176, + "Ġcreampie": 62177, + "ĠBuyer": 62178, + "-modules": 62179, + "ĠSundays": 62180, + "|`Ċ": 62181, + "Ġdaytime": 62182, + "Ġ+(": 62183, + "Ġglitch": 62184, + "ĠOperand": 62185, + "Ġtoxins": 62186, + "inya": 62187, + "DNS": 62188, + "ĠSas": 62189, + "Cake": 62190, + "ĠNationals": 62191, + ".addTo": 62192, + "Ġsinking": 62193, + "Ġcomprehension": 62194, + "Ġscor": 62195, + "agements": 62196, + "Ġtard": 62197, + "Ġmarching": 62198, + "ĠMTV": 62199, + "Ġsane": 62200, + "CreateInfo": 62201, + "ắ": 62202, + "ĠendIndex": 62203, + "ĉlayout": 62204, + "ĠåIJį": 62205, + "SITE": 62206, + "ĠTHERE": 62207, + "Ġ[{'": 62208, + "opathic": 62209, + "Ġtransmitter": 62210, + "/body": 62211, + "Ġpund": 62212, + "ĠClosing": 62213, + "Ġsetattr": 62214, + "Ġbounded": 62215, + "Atlas": 62216, + "suming": 62217, + "(times": 62218, + "parer": 62219, + "ynom": 62220, + "feit": 62221, + "Ġfrem": 62222, + "-leg": 62223, + "ĠBras": 62224, + ">#": 62225, + "Ġì¶ľëł¥": 62226, + "ĠINSTANCE": 62227, + "ĠCouch": 62228, + "_hosts": 62229, + "likelihood": 62230, + ".Marker": 62231, + "ĠMasks": 62232, + "Ġcereal": 62233, + "utilities": 62234, + "Ġelemental": 62235, + "Ġdistorted": 62236, + "inactive": 62237, + "cry": 62238, + "WL": 62239, + "UPPORTED": 62240, + ".Throws": 62241, + "/schema": 62242, + "serie": 62243, + ".\"',": 62244, + "ĠBenedict": 62245, + "-picker": 62246, + "iggs": 62247, + "ĠPirate": 62248, + "åij¨æľŁ": 62249, + "ĠThema": 62250, + "ĠSouthampton": 62251, + "ĠarrayWith": 62252, + "ĠPaula": 62253, + "Ġpredictor": 62254, + "-Ass": 62255, + ".userid": 62256, + "Ġperi": 62257, + "Ġexaggerated": 62258, + "urate": 62259, + "arseille": 62260, + "ĠConcent": 62261, + "ĠPik": 62262, + "Ġ@_;ĊĊ": 62263, + "Ġformations": 62264, + "Ġdenomin": 62265, + "\"/>.Ċ": 62266, + "endedor": 62267, + "Ġpancre": 62268, + "Ġamt": 62269, + "ĠonResume": 62270, + "onDelete": 62271, + "ĠBCH": 62272, + ")(\"": 62273, + "movement": 62274, + "Ġpotassium": 62275, + "": 70826, + "ĠPPC": 70827, + "isz": 70828, + "akeFromNib": 70829, + "ĠDisp": 70830, + "ĠAthletics": 70831, + "Ġnightclub": 70832, + "GOOD": 70833, + ".setGeometry": 70834, + "+[": 70835, + "/send": 70836, + "Ġbinaries": 70837, + "Ġráp": 70838, + ":req": 70839, + "-consuming": 70840, + "ertime": 70841, + "UPDATED": 70842, + "_nullable": 70843, + "VIN": 70844, + "ulia": 70845, + "cyan": 70846, + "Ġmisunderstanding": 70847, + "orical": 70848, + "degrees": 70849, + "Leading": 70850, + ".AR": 70851, + "ickest": 70852, + "Nuevo": 70853, + "uforia": 70854, + "Ġgoodies": 70855, + "Ġfores": 70856, + "()<<\"": 70857, + "ademic": 70858, + "ActionCreators": 70859, + "servername": 70860, + "(nt": 70861, + "dbContext": 70862, + "Ġairborne": 70863, + "Ġexhibitions": 70864, + "cele": 70865, + "Ġtela": 70866, + "": 70882, + ".setPreferredSize": 70883, + "ĠMID": 70884, + "ĠAless": 70885, + "Ġhorsepower": 70886, + "Ġatm": 70887, + "ĠPackaging": 70888, + "Ġciphertext": 70889, + "RequestMethod": 70890, + "Ġbeiden": 70891, + "è£": 70892, + "ĠPOW": 70893, + ".WriteHeader": 70894, + "director": 70895, + "-but": 70896, + "ãģłãģķãģĦ": 70897, + "incer": 70898, + "_dn": 70899, + "!!!!!": 70900, + "Ġmanufactures": 70901, + ".TextUtils": 70902, + "Ġconsciously": 70903, + "Ġbounced": 70904, + "culture": 70905, + "ĠSpar": 70906, + "ĠPiper": 70907, + ".press": 70908, + "-owner": 70909, + "Ġevaluator": 70910, + "ĠSTREAM": 70911, + ".PictureBoxSizeMode": 70912, + "Ġsugars": 70913, + "ScreenWidth": 70914, + "ĠnextState": 70915, + "Ġivory": 70916, + "Ġbrunch": 70917, + "density": 70918, + "_OW": 70919, + "ĠCoronavirus": 70920, + "ĠCFR": 70921, + "bak": 70922, + "\\Category": 70923, + "æķ°ç»Ħ": 70924, + "Ġinvokevirtual": 70925, + "}()Ċ": 70926, + "Ġsujet": 70927, + "-marker": 70928, + "isdigit": 70929, + "ĠMobil": 70930, + "ĠJsonRequestBehavior": 70931, + "_REMOTE": 70932, + ".existsSync": 70933, + "Ġriches": 70934, + ".presenter": 70935, + "ĠglColor": 70936, + "Ġhanya": 70937, + "Ġfortress": 70938, + "Ġflashed": 70939, + "viz": 70940, + "requently": 70941, + "buat": 70942, + "$con": 70943, + ">|": 70944, + ".Func": 70945, + "Ġhumorous": 70946, + "uem": 70947, + ".ZERO": 70948, + "ĠSTL": 70949, + "ĠBuk": 70950, + "/sample": 70951, + "ĠGros": 70952, + "Recipes": 70953, + "Ġinflated": 70954, + "Ġswung": 70955, + ":F": 70956, + "Facing": 70957, + ".Theme": 70958, + "ник": 70959, + "Ġsplendid": 70960, + "ĠrequestId": 70961, + ".CenterScreen": 70962, + "/autoload": 70963, + "embedded": 70964, + "_depart": 70965, + "ĠPorts": 70966, + "à¹ĥ": 70967, + "айд": 70968, + "discussion": 70969, + "_consum": 70970, + "Ġscouts": 70971, + "Ġcolabor": 70972, + ".Stage": 70973, + ".nano": 70974, + "eldorf": 70975, + "Ġgemacht": 70976, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ": 70977, + "Ġpolicymakers": 70978, + "_PKT": 70979, + ",Th": 70980, + "oky": 70981, + "_UID": 70982, + "Ping": 70983, + "Ġorchest": 70984, + "Ġoptics": 70985, + "uhan": 70986, + "ĠXOR": 70987, + "Ġespañol": 70988, + "ĠAdidas": 70989, + "rng": 70990, + "mans": 70991, + ".vstack": 70992, + "Ġgetaway": 70993, + "Ġhierarchical": 70994, + "anoia": 70995, + "ĠBitmapFactory": 70996, + "realm": 70997, + "ĉap": 70998, + "_apps": 70999, + "-divider": 71000, + ".drawer": 71001, + "ĠHARD": 71002, + "'];?>Ċ": 71003, + "-packed": 71004, + "æ²»": 71005, + "_STRUCTURE": 71006, + "[Y": 71007, + "iParam": 71008, + "(eq": 71009, + "Ġencompasses": 71010, + "Ġ\\ĊĊ": 71011, + "->[": 71012, + "&utm": 71013, + "groupon": 71014, + "strate": 71015, + "DY": 71016, + "omorphic": 71017, + "':[": 71018, + "Ġgravitational": 71019, + "ĠMicha": 71020, + "ĠTencent": 71021, + "Ġcoached": 71022, + "ì¶ľ": 71023, + "ÑĥменÑĤ": 71024, + "/mobile": 71025, + "MouseDown": 71026, + "bud": 71027, + "ĠYas": 71028, + "ĠProviders": 71029, + "NZ": 71030, + "ĉreport": 71031, + "errmsg": 71032, + "ĠimagePath": 71033, + "acterial": 71034, + "ĠManga": 71035, + "wicklung": 71036, + "(usuario": 71037, + "\"));čĊčĊ": 71038, + "/***": 71039, + "Ġorganise": 71040, + "Indexed": 71041, + "_QUAL": 71042, + "(PyObject": 71043, + "Ġsurrendered": 71044, + "POCH": 71045, + "ĠNOTES": 71046, + "\\\\\"": 71047, + "-job": 71048, + "Ġseventy": 71049, + "####Ċ": 71050, + "ĠManor": 71051, + "Ġdownright": 71052, + "Ġtimeframe": 71053, + "insurance": 71054, + "checker": 71055, + "ĠSECRET": 71056, + "Ġechoes": 71057, + "ĠCarmen": 71058, + ".setHorizontalAlignment": 71059, + "ĠisChecked": 71060, + "ĠTOR": 71061, + "_nn": 71062, + "('(": 71063, + "FetchRequest": 71064, + "ĠPrinted": 71065, + "Fluid": 71066, + "ĠSTACK": 71067, + "GES": 71068, + "aigned": 71069, + "igor": 71070, + ".Unknown": 71071, + "CBC": 71072, + "ĠCarlson": 71073, + ".URI": 71074, + "Ġplight": 71075, + "/start": 71076, + "ĠPersonnel": 71077, + "ĠPREFIX": 71078, + ",**": 71079, + "Ġlimite": 71080, + "_heat": 71081, + "%ï¼Į": 71082, + "ĠDonne": 71083, + "getNode": 71084, + "ĠScientology": 71085, + "Ġcomet": 71086, + "Ġwenig": 71087, + "Aside": 71088, + "ĠMPEG": 71089, + "'?": 71090, + "variably": 71091, + ".endDate": 71092, + "Ġuncont": 71093, + "ĠScores": 71094, + "ĠLoginForm": 71095, + ".generated": 71096, + ",ch": 71097, + "-mar": 71098, + "ĠNed": 71099, + "ĠeventId": 71100, + "+p": 71101, + "ĠSIN": 71102, + "/reset": 71103, + ".REACT": 71104, + "ĠMessi": 71105, + "_RANK": 71106, + ".writeFile": 71107, + "Ġcripp": 71108, + "esthetic": 71109, + "ERSIST": 71110, + "Ġreimbursement": 71111, + "CurrentValue": 71112, + "Ġunin": 71113, + "DownLatch": 71114, + "ĠpaddingRight": 71115, + "Ġstocked": 71116, + "/'.": 71117, + "Ġrepayment": 71118, + "trak": 71119, + "/backend": 71120, + "Ġизмен": 71121, + "CSR": 71122, + "Ġpreventive": 71123, + "Ġpantalla": 71124, + "_trim": 71125, + "Pedido": 71126, + "hospital": 71127, + "Ġmanageable": 71128, + "routeParams": 71129, + "textures": 71130, + "......ĊĊ": 71131, + "Ġsélection": 71132, + "NameValuePair": 71133, + "Ġpollut": 71134, + "Modes": 71135, + "ĠLaud": 71136, + "jay": 71137, + "ĠUrs": 71138, + "Ġsigner": 71139, + "ĠJJ": 71140, + "ĠCherokee": 71141, + "_EXISTS": 71142, + "Ġdwar": 71143, + "Ġ($('#": 71144, + "Ġreef": 71145, + ">{$": 71146, + "ĠBaylor": 71147, + "ĠModelState": 71148, + "-_": 71149, + "ĠStructures": 71150, + "Ġsouvent": 71151, + "Specify": 71152, + "(pipe": 71153, + "Ġfracking": 71154, + "ĠGPA": 71155, + "Ġbele": 71156, + "ĉĉĉĉĉĉĉĠĠĠ": 71157, + "ĠMinority": 71158, + "Ġtud": 71159, + "Ġopenness": 71160, + "ĠIllustrated": 71161, + "Ġoxidation": 71162, + "ĠNK": 71163, + "ĉUpdate": 71164, + "ĠEMS": 71165, + "ĠTeddy": 71166, + "Ġgenerals": 71167, + "ĉMat": 71168, + "Ġradios": 71169, + "ĠAntique": 71170, + "conomy": 71171, + "ĠSquadron": 71172, + ")','": 71173, + "声": 71174, + "Ġyoure": 71175, + "ĠMainPage": 71176, + "Ġbehaviours": 71177, + "enght": 71178, + "(@\"%@\",": 71179, + "Ġtestcase": 71180, + "ĠCompilation": 71181, + "Ġflavours": 71182, + "ĠExtend": 71183, + "illator": 71184, + "Ġcoh": 71185, + "Ġspline": 71186, + "ĠKG": 71187, + "-pay": 71188, + "Ġcommunism": 71189, + "ĠBusinesses": 71190, + "ocking": 71191, + ".MaxLength": 71192, + "assandra": 71193, + "quiring": 71194, + "adden": 71195, + "ĠJeb": 71196, + "_fault": 71197, + "[file": 71198, + "Ġprominence": 71199, + "disciplinary": 71200, + "âĢĶthey": 71201, + "_extent": 71202, + "ĠVIC": 71203, + "Ġentails": 71204, + ".partner": 71205, + "Ġhippoc": 71206, + "League": 71207, + "çĶ·": 71208, + "wipe": 71209, + "-spinner": 71210, + "Ġsalute": 71211, + "ĠSurgical": 71212, + "(outputs": 71213, + "worked": 71214, + "[strlen": 71215, + "appointed": 71216, + "ĠHeg": 71217, + "ĠACPI": 71218, + "([^": 71219, + "uala": 71220, + "_tol": 71221, + "ĠRit": 71222, + ".Payment": 71223, + "kowski": 71224, + "Ġwalmart": 71225, + "requirements": 71226, + "ĠFINSEQ": 71227, + "_BACKGROUND": 71228, + "ĠOsborne": 71229, + "(errorMessage": 71230, + "Reporting": 71231, + "Ġauctions": 71232, + "Ġcombos": 71233, + "ĠNoticed": 71234, + "_oct": 71235, + "Ġprimero": 71236, + "taire": 71237, + "_hr": 71238, + "Ġмод": 71239, + "Ġcontradictory": 71240, + "=\"@": 71241, + "achines": 71242, + "(optarg": 71243, + "ĠPenguin": 71244, + "ĠAbbas": 71245, + "Ġsublime": 71246, + "Ġpageable": 71247, + "ĠDefensive": 71248, + "Ġdistinctly": 71249, + "ĠAutomatically": 71250, + "Understanding": 71251, + "EqualityComparer": 71252, + "gota": 71253, + "Ġ\"::": 71254, + "Ġpulver": 71255, + "ĠBattles": 71256, + "Ġunparalleled": 71257, + "TCHA": 71258, + "Ġconstrued": 71259, + "-aff": 71260, + "Ġprecursor": 71261, + "-lfs": 71262, + "Ġmaduras": 71263, + "ĠDaisy": 71264, + "ĠArbeits": 71265, + ".Management": 71266, + "ĉIn": 71267, + "Ġrobes": 71268, + "Ġspéc": 71269, + "âĢľ(": 71270, + "Ġmaternity": 71271, + "extent": 71272, + "ĠSpacer": 71273, + "DidAppear": 71274, + "ĉus": 71275, + ".getRequestDispatcher": 71276, + "(cols": 71277, + "Ġplummet": 71278, + "ìħ": 71279, + "Ġ{ĊĊĊĊ": 71280, + "érica": 71281, + "ĠSizes": 71282, + ".enum": 71283, + ".Highlight": 71284, + "Ġ!!}ĊĊĊ": 71293, + "Wenn": 71294, + "Ġclimax": 71295, + "Ġcrem": 71296, + "_that": 71297, + "[âĢ¦": 71298, + "_domains": 71299, + "_REPLY": 71300, + "Ġcompleta": 71301, + "VEST": 71302, + "_particle": 71303, + "Ġsop": 71304, + "Ġfatalities": 71305, + "implify": 71306, + "ĠSKF": 71307, + "Ġinfusion": 71308, + "ĠJavier": 71309, + "Ġballet": 71310, + "Ġamigo": 71311, + ".want": 71312, + "Ġcollagen": 71313, + "ĠLawyer": 71314, + ".Statement": 71315, + ".rt": 71316, + "baar": 71317, + "EndPoint": 71318, + "ĠBek": 71319, + "SHIP": 71320, + "Ġpatriarch": 71321, + "ĠAunt": 71322, + "_TM": 71323, + "ĠmÃŃn": 71324, + "Ġmastered": 71325, + "WXYZ": 71326, + "Ġespos": 71327, + "=logging": 71328, + "Ġrighteousness": 71329, + "torrent": 71330, + "Ġbst": 71331, + "_CHAIN": 71332, + "Ġoutskirts": 71333, + "(rotation": 71334, + "Ġ'.')": 71335, + "igrants": 71336, + "+lsi": 71337, + "ĠCCTV": 71338, + "_PHASE": 71339, + ".azure": 71340, + "_Process": 71341, + "vae": 71342, + "ĠTropical": 71343, + "ĠAnkara": 71344, + "imageView": 71345, + "_RUNNING": 71346, + "Ġ*)__": 71347, + "ến": 71348, + "(cli": 71349, + "scatter": 71350, + "Ġsche": 71351, + "Registrar": 71352, + "Ġairing": 71353, + "Ġpyplot": 71354, + "isión": 71355, + "/customer": 71356, + "Ġsimplement": 71357, + "Ġclassy": 71358, + "ĠDWC": 71359, + "ĠBashar": 71360, + "ĠDEVELO": 71361, + "ĠVick": 71362, + "avail": 71363, + "ĠHö": 71364, + "_extend": 71365, + "drFc": 71366, + ".isNotBlank": 71367, + "Ġplais": 71368, + "|}Ċ": 71369, + "Ġpornofil": 71370, + "labs": 71371, + "Ġhaus": 71372, + "Ġoriginating": 71373, + "Ġsurrounds": 71374, + "ĠQUAL": 71375, + "meg": 71376, + "/logger": 71377, + "[obj": 71378, + "Ġirresponsible": 71379, + "ĠPublicKey": 71380, + "HONE": 71381, + ":'/": 71382, + "ibox": 71383, + "ĠFVector": 71384, + "|{Ċ": 71385, + "ataloader": 71386, + "hawks": 71387, + "HDR": 71388, + "Ġescalation": 71389, + "ĠPodsDummy": 71390, + "elite": 71391, + "Ġpresup": 71392, + "Cached": 71393, + ">G": 71394, + ".optimizer": 71395, + "ĠVisible": 71396, + "´Ģ": 71397, + "Ġnen": 71398, + "Ġpcs": 71399, + "ĠIdle": 71400, + "[Any": 71401, + "Ġkeyboards": 71402, + "ĠCOMPONENT": 71403, + "Ġtitanium": 71404, + "(mut": 71405, + "ĠLedger": 71406, + "Ġprosperous": 71407, + "etrofit": 71408, + "_LL": 71409, + "_patient": 71410, + "Ġpdata": 71411, + "Ġkontakte": 71412, + "Swipe": 71413, + "Ġcheerful": 71414, + "ĠHonduras": 71415, + "\"][$": 71416, + "Ġhemorrh": 71417, + "\":\"+": 71418, + "Ġleasing": 71419, + "Ġinstalls": 71420, + "ĠPax": 71421, + "ĠLogistics": 71422, + "Ġkinetic": 71423, + "ĠPhon": 71424, + "_movement": 71425, + "ĉbytes": 71426, + "Ġcinco": 71427, + "ĠMadness": 71428, + "\")+": 71429, + "ĠJE": 71430, + "_ij": 71431, + "SceneManager": 71432, + "ĠBust": 71433, + "ptest": 71434, + "aea": 71435, + "Ġbesser": 71436, + "ÃŃg": 71437, + "дин": 71438, + "(tasks": 71439, + "(\"(\"": 71440, + "setType": 71441, + "(outfile": 71442, + "ĉreset": 71443, + "ĠARC": 71444, + "Ġmúsica": 71445, + "ĠShelf": 71446, + "ĠminY": 71447, + "pch": 71448, + "Ġweiber": 71449, + "issor": 71450, + "Ġtrouve": 71451, + "ĉButton": 71452, + "Ġregenerated": 71453, + "Å£i": 71454, + "imachinery": 71455, + "blocking": 71456, + ".dataTables": 71457, + "_frac": 71458, + "ĠAdvantage": 71459, + ".visitMethod": 71460, + "éĩįæĸ°": 71461, + "Ġextrapol": 71462, + "Ġteasing": 71463, + "ĠHitch": 71464, + "ĠGeek": 71465, + "ESCO": 71466, + "Ġwich": 71467, + "ĉax": 71468, + "_decor": 71469, + "ĠscreenWidth": 71470, + "ĠSophia": 71471, + "Forgot": 71472, + ".uni": 71473, + "ĠVenture": 71474, + "_collision": 71475, + "Ġlawmaker": 71476, + "(Edit": 71477, + "blers": 71478, + "ĠgetNext": 71479, + "âĢĶyou": 71480, + "MediaPlayer": 71481, + "ĠHorde": 71482, + "ĠCongressman": 71483, + "observations": 71484, + "ĉproperty": 71485, + "Ġ<--": 71486, + "CreatedAt": 71487, + "ubyte": 71488, + "Ġquarantine": 71489, + "Ġdistressed": 71490, + "_APB": 71491, + "ĠGoodman": 71492, + "ãĤ«": 71493, + "Ġrecomend": 71494, + "_PRINTF": 71495, + "DONE": 71496, + "Bindable": 71497, + "rstrip": 71498, + "centaje": 71499, + "ĠUnexpected": 71500, + "ĠSCHOOL": 71501, + "ĠProfessionals": 71502, + "ĠGPUs": 71503, + "Lesson": 71504, + "Exclusive": 71505, + "Ġatrav": 71506, + "ĠDank": 71507, + "ĠLawyers": 71508, + "ĠWalton": 71509, + ">[]": 71510, + "Ġaloud": 71511, + "=\"../../../": 71512, + "Ġdebating": 71513, + "ĠAVG": 71514, + "_VOL": 71515, + "/cgi": 71516, + ".deg": 71517, + ":g": 71518, + ".Infof": 71519, + "MeasureSpec": 71520, + ".song": 71521, + "mtree": 71522, + "ulls": 71523, + "Jordan": 71524, + "ĠCovers": 71525, + "Ġattributable": 71526, + "Ġjedis": 71527, + "iatrics": 71528, + "Ġrotterdam": 71529, + "Ġmeld": 71530, + "ĠContentType": 71531, + "Ġmantle": 71532, + "Ġalice": 71533, + "_duplicate": 71534, + "/Internal": 71535, + "Ġfilesize": 71536, + "ĉfire": 71537, + "rese": 71538, + "ondere": 71539, + "Ġfamiliarity": 71540, + "ĠCrest": 71541, + "Ġkarma": 71542, + "Ġtorino": 71543, + "Ġmesa": 71544, + "/temp": 71545, + "Ġchir": 71546, + "ĠOverflow": 71547, + "Ġtenemos": 71548, + "unik": 71549, + "NEXT": 71550, + "Alle": 71551, + "Ġnxt": 71552, + "Mart": 71553, + "Ġatl": 71554, + "Ġperiodo": 71555, + "_you": 71556, + "Ġ})).": 71557, + "intestinal": 71558, + ".AdapterView": 71559, + "Ġhesitant": 71560, + "Ġcomparatively": 71561, + ".UInt": 71562, + "(viewModel": 71563, + "Ġsangat": 71564, + "ĠResponsive": 71565, + "ĠZack": 71566, + "âħ": 71567, + "JAVA": 71568, + "ĠFuller": 71569, + "ĠâĿ¤": 71570, + ".Consumer": 71571, + "Ġank": 71572, + "Ġreactors": 71573, + "fuck": 71574, + "_rat": 71575, + "ĠsessionFactory": 71576, + "_backward": 71577, + "Ġscrambled": 71578, + "ĉth": 71579, + "Ġinsensitive": 71580, + "Ġchamps": 71581, + "Ġnginx": 71582, + "Ġconhec": 71583, + "ĠJasper": 71584, + ".fm": 71585, + "StrictEqual": 71586, + "achsen": 71587, + "-Nov": 71588, + "lassen": 71589, + ".integration": 71590, + "(lbl": 71591, + "Compose": 71592, + "ĠFon": 71593, + "Ãļ": 71594, + "Gratis": 71595, + "ĠLime": 71596, + "ĠAdapterView": 71597, + "Ġpoisoned": 71598, + "anchors": 71599, + "设计": 71600, + "']?>\"": 71601, + "Ġprocur": 71602, + "Italy": 71603, + ".MONTH": 71604, + "ĠLUA": 71605, + "ĠLithuania": 71606, + "ĠHeads": 71607, + "_CHUNK": 71608, + "ĠPUSH": 71609, + "AspectRatio": 71610, + "Ġweg": 71611, + "Ġvids": 71612, + "ĠWein": 71613, + "ĉINT": 71614, + "sessionId": 71615, + "Industry": 71616, + "Ġdenounced": 71617, + "JKLM": 71618, + "ĠVanessa": 71619, + ".Identifier": 71620, + "propri": 71621, + "Ġиг": 71622, + "Ġtécn": 71623, + "Ġmosaic": 71624, + "StreamReader": 71625, + "-Th": 71626, + "forth": 71627, + "Ġadherence": 71628, + "bate": 71629, + "Ġknights": 71630, + "sounds": 71631, + "Ġsalle": 71632, + "OMET": 71633, + "ãĤ¹ãĥĪ": 71634, + "-tm": 71635, + "ĠRhe": 71636, + ".FileOutputStream": 71637, + "åĪĨç±»": 71638, + "ĠENG": 71639, + "holiday": 71640, + "ĠCongratulations": 71641, + ")(Ċ": 71642, + "Ġaggregates": 71643, + "HOOK": 71644, + "ewire": 71645, + "Senator": 71646, + "Ġembeddings": 71647, + "epy": 71648, + "(COM": 71649, + "Ġrobber": 71650, + "äter": 71651, + "wang": 71652, + "_teacher": 71653, + "Ġresentment": 71654, + "Ġlettuce": 71655, + "erreur": 71656, + "(ic": 71657, + "ĠTactical": 71658, + "ĠContracts": 71659, + "Ġmænd": 71660, + "Ġsitios": 71661, + "Ġbastante": 71662, + "Ġnuevos": 71663, + "ĉNdrFc": 71664, + "ĠprivateKey": 71665, + "ucch": 71666, + "MMdd": 71667, + "Ġè¾ĵåĩº": 71668, + "umba": 71669, + "@foreach": 71670, + ":\");ĊĊ": 71671, + "Ġslippery": 71672, + "ĠKeystone": 71673, + "Ġpioneering": 71674, + "_triangle": 71675, + "(\"Ċ": 71676, + "ĉĉĉĉĉĉĉĉĠĠ": 71677, + "ĠIntervention": 71678, + "SCI": 71679, + "ĠcJSON": 71680, + "Ġterminating": 71681, + "ë¹Ħ": 71682, + "Ġbabys": 71683, + "Subset": 71684, + "Ġë¡": 71685, + "Ġseulement": 71686, + "Ġmuestra": 71687, + "Entre": 71688, + "以ä¸Ĭ": 71689, + "ngo": 71690, + "\"bytes": 71691, + "QRST": 71692, + "Ġypos": 71693, + "persona": 71694, + "ĠDeploy": 71695, + "cee": 71696, + "Ġà®": 71697, + ".goal": 71698, + "Ġhabitats": 71699, + "ĠisAdmin": 71700, + "Ġexploiting": 71701, + "Ġventil": 71702, + "ĠBalls": 71703, + "اب": 71704, + "Ġmindfulness": 71705, + "(kwargs": 71706, + "Ġresembling": 71707, + "Ġchoir": 71708, + "ĠonBackPressed": 71709, + "ĠSECURITY": 71710, + "/gtest": 71711, + "Ġjustices": 71712, + "ĠintegerValue": 71713, + "blah": 71714, + "ĠAim": 71715, + "_finalize": 71716, + "keh": 71717, + "ĠComplexity": 71718, + "Ġaugust": 71719, + "getElementsByTagName": 71720, + "Ġpreach": 71721, + "Ġpronunciation": 71722, + "ĠTrash": 71723, + "-percent": 71724, + "_PRIV": 71725, + "ĠHunts": 71726, + "ĠCurse": 71727, + "uellen": 71728, + "Ġheavyweight": 71729, + "Xi": 71730, + "ĉselected": 71731, + "ĠMcCoy": 71732, + "å¼Ĥ常": 71733, + "|=Ċ": 71734, + "ĠBattlefield": 71735, + "ItemImage": 71736, + "Ġdeductions": 71737, + "ĠElemental": 71738, + "());//": 71739, + "ĠBurk": 71740, + "})čĊčĊ": 71741, + "swift": 71742, + "/function": 71743, + "Usually": 71744, + "_St": 71745, + "_feats": 71746, + "ĠIsValid": 71747, + "Ġzad": 71748, + "ImageContext": 71749, + "Ġclassname": 71750, + "Ġdonner": 71751, + "Ġ-->ĊĊĊ": 71752, + "Ġmotorcycles": 71753, + "+'/'+": 71754, + "ĠsetBackground": 71755, + "\\CMS": 71756, + ".AllArgsConstructor": 71757, + "ĠLexington": 71758, + ".examples": 71759, + "ĠPurs": 71760, + "PushMatrix": 71761, + "Ġ==============================================================": 71762, + ".addTarget": 71763, + "pora": 71764, + "Fullscreen": 71765, + "Ġgoof": 71766, + "hlen": 71767, + "äge": 71768, + "ĠCURL": 71769, + "ĠInteresting": 71770, + "Ġretrieves": 71771, + "_Obj": 71772, + "inness": 71773, + "-----ĊĊ": 71774, + ".tsv": 71775, + "(IM": 71776, + "ĠBraves": 71777, + "_ISR": 71778, + "osti": 71779, + "á»ĵ": 71780, + "ĠExterior": 71781, + "ĠCourtney": 71782, + "Ġresidues": 71783, + "Tier": 71784, + ".*;čĊčĊ": 71785, + ":black": 71786, + "webView": 71787, + "\"path": 71788, + "Ġmasa": 71789, + "]!='": 71790, + "ĠMatching": 71791, + "dur": 71792, + "Jvm": 71793, + "=context": 71794, + "_RING": 71795, + "Ġproponents": 71796, + "ĠQStringLiteral": 71797, + "Ġinflate": 71798, + "\">čĊ": 72031, + "_COST": 72032, + "ilinear": 72033, + "ĠWorkspace": 72034, + "Ġspel": 72035, + "agogue": 72036, + "ĠMillennium": 72037, + "ĠPopulate": 72038, + "Ġnid": 72039, + ".parseColor": 72040, + "Solar": 72041, + "ĠGad": 72042, + "Ġì¤ij": 72043, + "ĠKamp": 72044, + "ĉrm": 72045, + "Ġbenz": 72046, + "ĠHonestly": 72047, + "Ġelectrode": 72048, + "ĠPrairie": 72049, + "ĠPROFILE": 72050, + "ĠOriental": 72051, + "ĠOLED": 72052, + "/copyleft": 72053, + "awaii": 72054, + "(products": 72055, + ")\\<": 72056, + "-created": 72057, + ".ManyToMany": 72058, + "\"How": 72059, + "ĠвÑĭп": 72060, + "Ġmitochondrial": 72061, + "_testing": 72062, + "(created": 72063, + "ĠgetField": 72064, + "_EVAL": 72065, + "].\"": 72066, + "ĠFSM": 72067, + "ĠRita": 72068, + "ĠåıĤæķ°": 72069, + "Ġcôt": 72070, + "ĠInsight": 72071, + "ĉmysqli": 72072, + "_timing": 72073, + "IDO": 72074, + ")))))Ċ": 72075, + "COVERY": 72076, + ".imag": 72077, + "CDF": 72078, + "lust": 72079, + "ickt": 72080, + "_FP": 72081, + ".','": 72082, + "gcc": 72083, + "Ġkurz": 72084, + "_pwm": 72085, + "Ġodpowied": 72086, + "ĠBarrier": 72087, + "/***************************************************************************Ċ": 72088, + "pak": 72089, + "-Israel": 72090, + "ĠRutgers": 72091, + "ĠselectedItem": 72092, + "ĠRamirez": 72093, + "Farm": 72094, + "Ġcalendars": 72095, + "gzip": 72096, + "Ġblockbuster": 72097, + "ĠPlymouth": 72098, + "çľĮ": 72099, + "responses": 72100, + ".DialogInterface": 72101, + "-grand": 72102, + "ĠgetSource": 72103, + "Ġdejtings": 72104, + "Ġtieten": 72105, + "Ġcondemnation": 72106, + "Ġcontinuar": 72107, + ".MockMvc": 72108, + "/english": 72109, + "ĠMediaPlayer": 72110, + "computed": 72111, + "ĠClippers": 72112, + "(delegate": 72113, + ".Slf": 72114, + "Ġë¡ľ": 72115, + "ĠTide": 72116, + "Ġihrem": 72117, + "ĠWan": 72118, + "ÑĥÑİÑī": 72119, + "}><": 72120, + "Discussion": 72121, + "Ġwatts": 72122, + "-minus": 72123, + "ĠJuliet": 72124, + "éĽħ": 72125, + "Ġconcluding": 72126, + "andscape": 72127, + "Ġúltima": 72128, + "ĠDERP": 72129, + "ĠsignUp": 72130, + "ĠSecondly": 72131, + "WAIT": 72132, + "lds": 72133, + ".callbacks": 72134, + "(hour": 72135, + "imators": 72136, + "volent": 72137, + "AAF": 72138, + "edriver": 72139, + "ĠMathematic": 72140, + "'": 72142, + "{j": 72143, + "_ABORT": 72144, + "Ether": 72145, + "Ġeducator": 72146, + "Ġprecaution": 72147, + "Ġfingertips": 72148, + "getVar": 72149, + "camatan": 72150, + "-debug": 72151, + "ĠRAF": 72152, + "[arg": 72153, + "Ġraced": 72154, + "Ġtsunami": 72155, + ".flink": 72156, + "Ġglyc": 72157, + "uko": 72158, + "ĠMultiply": 72159, + "Ġredistribution": 72160, + "AGO": 72161, + "ĠRoutine": 72162, + "Ġopr": 72163, + "(lower": 72164, + "ĠFunktion": 72165, + ".dk": 72166, + "Ġegt": 72167, + "_BASIC": 72168, + "syscall": 72169, + "ĠLSD": 72170, + "ĠDuplicate": 72171, + "_sell": 72172, + "ĠerrorHandler": 72173, + "_ips": 72174, + "Ġerv": 72175, + "annie": 72176, + "(resourceName": 72177, + "Ġbottled": 72178, + "Ġcrawling": 72179, + "egment": 72180, + ".setTag": 72181, + "Ġrss": 72182, + "ĠQuarry": 72183, + "_exact": 72184, + ".jwt": 72185, + "ĠBoards": 72186, + "opi": 72187, + "Ġnasal": 72188, + "ĠXYZ": 72189, + ".ud": 72190, + "Northern": 72191, + "Ġactivating": 72192, + "edx": 72193, + "ovah": 72194, + "Ġindx": 72195, + "AlertDialog": 72196, + "Ġtienes": 72197, + "annya": 72198, + "_pan": 72199, + "(decimal": 72200, + ".Dict": 72201, + "Ġsubsidiaries": 72202, + "ProductName": 72203, + "Few": 72204, + "dato": 72205, + "odied": 72206, + "-under": 72207, + "Ġê²ĥ": 72208, + "çīĪæľ¬": 72209, + "atism": 72210, + "[Math": 72211, + ".'<": 72212, + "(infile": 72213, + "Ġdenotes": 72214, + "$class": 72215, + "_SECURITY": 72216, + "Ġsewage": 72217, + "melon": 72218, + "(Character": 72219, + "/github": 72220, + "Ġglaring": 72221, + ".Guid": 72222, + "_sparse": 72223, + "ĠMargin": 72224, + "_dns": 72225, + "Ġmeiner": 72226, + "Ġleftist": 72227, + "ĉloc": 72228, + "abytes": 72229, + "Ġequipments": 72230, + "expo": 72231, + "ĠSomerset": 72232, + "EK": 72233, + "æį¢": 72234, + "Ġlecturer": 72235, + "Ġmemiliki": 72236, + "æł¸": 72237, + "ç´ł": 72238, + "pron": 72239, + ":pointer": 72240, + "borrow": 72241, + "ĠProtective": 72242, + "_cf": 72243, + "ĠÐķÑģли": 72244, + "bpp": 72245, + "';ĊĊĊĊ": 72246, + "aturally": 72247, + "_NAV": 72248, + "Ġpeptide": 72249, + ">d": 72250, + "Ġifstream": 72251, + "_FACTORY": 72252, + "');//": 72253, + "joined": 72254, + "mong": 72255, + "Ġtimespec": 72256, + "Ġdestabil": 72257, + "Ġautop": 72258, + "-limit": 72259, + "publication": 72260, + "ĠDenn": 72261, + ".Memory": 72262, + "(skb": 72263, + "ĠAnaheim": 72264, + "_RETURNTRANSFER": 72265, + "oueur": 72266, + "(_('": 72267, + "legt": 72268, + "istingu": 72269, + "ĉpriv": 72270, + "Ġredirects": 72271, + "Mt": 72272, + "Ġalleen": 72273, + "ĠPointF": 72274, + "Ġomin": 72275, + "Ġcitt": 72276, + "ĠTage": 72277, + "ĠWalls": 72278, + "á»ī": 72279, + "Ġoccupying": 72280, + "xBF": 72281, + "rangle": 72282, + "Ġrelational": 72283, + "-org": 72284, + "Ġjpg": 72285, + "-derived": 72286, + "Ġmalfunction": 72287, + "ĠBenson": 72288, + "(scroll": 72289, + "ĠXD": 72290, + "Holy": 72291, + "(commands": 72292, + "Ġtipping": 72293, + "Ġprimitives": 72294, + "Ġsexle": 72295, + "CallCheck": 72296, + "ĠMASTER": 72297, + "_TEAM": 72298, + ".setRequestHeader": 72299, + "_specs": 72300, + "Ġserge": 72301, + ".Master": 72302, + "Ġims": 72303, + ".SpringBootTest": 72304, + "paypal": 72305, + "ĠWANT": 72306, + ".Inst": 72307, + "ĠCarpet": 72308, + "Ġwrongly": 72309, + "($('.": 72310, + "Ġbild": 72311, + ".Roll": 72312, + "ĠUrb": 72313, + "-can": 72314, + "ãģıãģłãģķãģĦ": 72315, + "oliberal": 72316, + "čĊčĊ": 72710, + "ĠMahm": 72711, + "}\";ĊĊ": 72712, + "Ġdq": 72713, + "ĠPublishers": 72714, + "ĠAmpl": 72715, + "ĠDanielle": 72716, + "Ġtern": 72717, + "èµ·": 72718, + "noÅĽÄĩ": 72719, + "ein": 72720, + "ĠAsyncStorage": 72721, + "unger": 72722, + "rouw": 72723, + "Ġscissors": 72724, + "/assert": 72725, + ".bucket": 72726, + "/archive": 72727, + "_Man": 72728, + "Ġintoler": 72729, + "Ġ()=>": 72730, + "ĠÐĴÑĭ": 72731, + "Ġsai": 72732, + ".xy": 72733, + ".\"čĊ": 72734, + "Ġurinary": 72735, + "esub": 72736, + "ISTICS": 72737, + "Ġκ": 72738, + "Ġcompliments": 72739, + "ĠtypingsJapgolly": 72740, + "ihar": 72741, + "Expansion": 72742, + "ĠServing": 72743, + "_students": 72744, + "ĠXBOOLE": 72745, + "(il": 72746, + "Ġì²ĺ": 72747, + "Ġjó": 72748, + "(tol": 72749, + "(JS": 72750, + "ĉCG": 72751, + "ĠDRAW": 72752, + "twig": 72753, + "Ġoat": 72754, + "_smooth": 72755, + "ĠCSL": 72756, + "Ġosob": 72757, + "Ġensuing": 72758, + "Ġbanker": 72759, + "ĠBackpack": 72760, + "_ping": 72761, + "Ġwishlist": 72762, + "=ax": 72763, + "ĉĠĠĠĊ": 72764, + "Disney": 72765, + "steady": 72766, + "\">%": 72767, + "Ġprophets": 72768, + "ĠZX": 72769, + "Ġminimalist": 72770, + ".PLAIN": 72771, + "Seattle": 72772, + ".ordinal": 72773, + "ĠPIPE": 72774, + "Ġretorna": 72775, + "Ġjugador": 72776, + "ĠBret": 72777, + "ĠâĶľ": 72778, + "Ġplush": 72779, + "ULATOR": 72780, + "Sorting": 72781, + ".gridy": 72782, + "ectomy": 72783, + "_activ": 72784, + "rack": 72785, + "Interactive": 72786, + "ĠAntarctica": 72787, + "Ġvengeance": 72788, + "enso": 72789, + "_known": 72790, + "upplier": 72791, + ".Modules": 72792, + "ĠConnectionState": 72793, + "éļIJèĹı": 72794, + "@FindBy": 72795, + "Ġplacer": 72796, + "\\model": 72797, + "<()>": 72798, + ".isSuccessful": 72799, + "-good": 72800, + "bz": 72801, + "ĠDraco": 72802, + "Assistant": 72803, + "-extra": 72804, + "аблиÑĨ": 72805, + "Ġhypocrisy": 72806, + "Ġtst": 72807, + "ĠAgr": 72808, + "$txt": 72809, + "Ġlogistic": 72810, + "licensed": 72811, + "ĠHof": 72812, + "Ġtat": 72813, + "(iv": 72814, + "Ġintoxic": 72815, + "postId": 72816, + "_strike": 72817, + "Ġhumiliation": 72818, + "pcodes": 72819, + "\"sync": 72820, + "(recipe": 72821, + "+N": 72822, + "rente": 72823, + "ĉClient": 72824, + "ycopg": 72825, + "ĠZurich": 72826, + "ĠProfiles": 72827, + "Countries": 72828, + "Ġpict": 72829, + "Ġrollout": 72830, + "requencies": 72831, + "Ġpatched": 72832, + "Ġcartridges": 72833, + "Ġshading": 72834, + "Jar": 72835, + "Ġsalvage": 72836, + "ĠTaxes": 72837, + "Ġstandby": 72838, + "aporan": 72839, + "Eigen": 72840, + ".angular": 72841, + "ĠNested": 72842, + "享": 72843, + "ĠisVisible": 72844, + "ĠDwight": 72845, + "_BRANCH": 72846, + ".Delay": 72847, + "Ġkend": 72848, + "Ġfacilitated": 72849, + ".flatMap": 72850, + "Ġsanta": 72851, + "ĉSend": 72852, + "/messages": 72853, + "ĠofType": 72854, + "ĉswap": 72855, + "#plt": 72856, + "ĠTurks": 72857, + "NES": 72858, + "Ġprogressively": 72859, + "ĠResidence": 72860, + "ĠTREE": 72861, + "Ġnoen": 72862, + "dio": 72863, + "Ġnelle": 72864, + "Ġsogar": 72865, + "itti": 72866, + "weekly": 72867, + "Ġambiguity": 72868, + "_Settings": 72869, + "Ware": 72870, + ".neo": 72871, + "_DST": 72872, + "Ġæĸ¹": 72873, + "prep": 72874, + "lobby": 72875, + "@email": 72876, + "/movie": 72877, + "Ġfunkc": 72878, + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ": 72879, + "ÂŃs": 72880, + "Ġguardians": 72881, + "-pos": 72882, + "Ġconfiguring": 72883, + "ĠCPS": 72884, + "ĠDeus": 72885, + "Ġvidéos": 72886, + "_empresa": 72887, + "Ġslapped": 72888, + "',Ċ": 72920, + "_XDECREF": 72921, + "ĠBuzzFeed": 72922, + "_MARGIN": 72923, + "PLOY": 72924, + ".small": 72925, + "ĠmimeType": 72926, + "Ġholog": 72927, + "ĉcamera": 72928, + "lias": 72929, + "Ġsuspense": 72930, + "odynam": 72931, + "bau": 72932, + "Ġgraveyard": 72933, + "_named": 72934, + "\":\"'": 72935, + "Ġ************************************************": 72936, + "ĠgameOver": 72937, + "ĠLENGTH": 72938, + "ĉscreen": 72939, + "ĠdoInBackground": 72940, + "_dependencies": 72941, + "Ġrtc": 72942, + "/up": 72943, + "_ROM": 72944, + "Hall": 72945, + "Ġdeficiencies": 72946, + "(te": 72947, + "'#": 72948, + "_equiv": 72949, + "Ġpreorder": 72950, + "ĠAxe": 72951, + "омÑĥ": 72952, + ".sendFile": 72953, + "Ġfilt": 72954, + "ĠLimits": 72955, + "ĠCavaliers": 72956, + ".discount": 72957, + "âĨIJ": 72958, + "ĠWit": 72959, + "QRSTUV": 72960, + "Ġij": 72961, + "Ġtegen": 72962, + "Ġ:\",": 72963, + "difficulty": 72964, + "punkt": 72965, + "ĠEmails": 72966, + "chlor": 72967, + "(fun": 72968, + ".Uint": 72969, + "ĠStall": 72970, + "_verified": 72971, + "uD": 72972, + "FileType": 72973, + "Ġpleasures": 72974, + "Ġjudiciary": 72975, + "Ġsham": 72976, + "ipur": 72977, + "_PLUS": 72978, + "offers": 72979, + "(foo": 72980, + "_GT": 72981, + "ĉcore": 72982, + "ENTION": 72983, + "ĠLiberation": 72984, + "CommandLine": 72985, + "_department": 72986, + ".Ar": 72987, + "_neighbor": 72988, + "ĠSubmitted": 72989, + "ĠĊ": 97221, + "Ġdroits": 97222, + "Ġhomosexuals": 97223, + "Ġabduction": 97224, + "ĉwidget": 97225, + "$headers": 97226, + "ĠDAR": 97227, + "Ġfla": 97228, + "threat": 97229, + "Ġlouis": 97230, + ".GetProperty": 97231, + "\"Just": 97232, + "(frames": 97233, + "ryo": 97234, + "profession": 97235, + "|i": 97236, + "íķ´ìĦľ": 97237, + "(sv": 97238, + "Ġunrecognized": 97239, + "Ionic": 97240, + "Fashion": 97241, + "ScreenState": 97242, + "ĠIncoming": 97243, + "NotNil": 97244, + "Ġsyncing": 97245, + "emie": 97246, + "Ġthermo": 97247, + "_procs": 97248, + "Ġinconsistency": 97249, + "religious": 97250, + ".mj": 97251, + "Ġpersonn": 97252, + "Ġmomentos": 97253, + "orarily": 97254, + "ĠæĬ": 97255, + "_neurons": 97256, + "Illustr": 97257, + "imoto": 97258, + "ilik": 97259, + "ĠWoj": 97260, + "Trading": 97261, + "Ġappare": 97262, + "Ġentreprises": 97263, + "achat": 97264, + "Ġ¬": 97265, + "Ġneigh": 97266, + "BUTTONDOWN": 97267, + "ĠMaher": 97268, + "aghan": 97269, + "-hash": 97270, + "\"f": 97271, + "Ġclientele": 97272, + ".addButton": 97273, + "ĉSP": 97274, + "Qi": 97275, + "Ġgrated": 97276, + "POSITE": 97277, + ":>": 97278, + "ĠHowell": 97279, + "ĠComparative": 97280, + "ĠISC": 97281, + "ÂŃi": 97282, + "Ocean": 97283, + "Davis": 97284, + "ĠFilme": 97285, + "Wins": 97286, + "ĠJIT": 97287, + "occer": 97288, + "ĠCorm": 97289, + "ENCHMARK": 97290, + "rchive": 97291, + "icação": 97292, + "Ġmata": 97293, + "Ġchildbirth": 97294, + "ĠOptionally": 97295, + "Ens": 97296, + "Ġxhttp": 97297, + "Ġelucid": 97298, + "_OscInitStruct": 97299, + "))):Ċ": 97300, + "Ġintuit": 97301, + "ĠDonate": 97302, + "Ġcorrelates": 97303, + ">Delete": 97304, + "Ġequipe": 97305, + "Ġboca": 97306, + "Ġinflatable": 97307, + "erah": 97308, + "ĠDateTimeKind": 97309, + "Ġcalves": 97310, + "\\Lib": 97311, + "Ġemlrt": 97312, + "ĠTrilogy": 97313, + "ĠPanc": 97314, + "ĠDuis": 97315, + "ĠpelÃŃcula": 97316, + "WARDS": 97317, + "_DETECT": 97318, + "-sectional": 97319, + "dhcp": 97320, + "ForRow": 97321, + "-destruct": 97322, + "ĠPresenter": 97323, + "/slick": 97324, + ",on": 97325, + "ĠCitadel": 97326, + "loggedin": 97327, + "_subtype": 97328, + "Ġsigue": 97329, + "Ġcuring": 97330, + "ĠFirewall": 97331, + "Ġfluorescence": 97332, + "ĠItalians": 97333, + "иÑĤÑģÑı": 97334, + ".getStyle": 97335, + "InSeconds": 97336, + "jie": 97337, + "-Smith": 97338, + "Ġxlink": 97339, + "Ġsubmissive": 97340, + "онÑĤ": 97341, + "arbonate": 97342, + "ĠFaul": 97343, + "_goals": 97344, + "ĠCommissioners": 97345, + "chartInstance": 97346, + "_POSTFIELDS": 97347, + "Ġmedial": 97348, + "Ġmanos": 97349, + "Ġdelt": 97350, + "svm": 97351, + ".Apis": 97352, + "ephy": 97353, + "Ġasympt": 97354, + "ĠappDelegate": 97355, + "Ġimprobable": 97356, + "cka": 97357, + "simd": 97358, + "/Error": 97359, + ".âĢĵ": 97360, + "ĠPTS": 97361, + "deer": 97362, + "Ġsina": 97363, + "magnitude": 97364, + "IDADE": 97365, + "']}'": 97366, + "Ġmayores": 97367, + "ĉcomment": 97368, + "/console": 97369, + "\"@": 97370, + "volt": 97371, + ".sell": 97372, + "ĠMacy": 97373, + "Ġmelod": 97374, + "Ġimágenes": 97375, + "_chg": 97376, + "Ġinout": 97377, + "idente": 97378, + ")'),Ċ": 97379, + "dni": 97380, + ".blob": 97381, + "Ġtypography": 97382, + "Ġeerie": 97383, + "_OID": 97384, + "pesan": 97385, + "ajan": 97386, + "Ġchopping": 97387, + "Ġbluff": 97388, + "adf": 97389, + "_bases": 97390, + ".Formatter": 97391, + "Ġ\\%": 97392, + "ĠPageInfo": 97393, + "Carrier": 97394, + "ĠCalibration": 97395, + "como": 97396, + "-bodied": 97397, + "Ġfinancier": 97398, + "ĠINA": 97399, + ".ERR": 97400, + "Ġhoodie": 97401, + "ĠSanity": 97402, + "guarded": 97403, + ".opendaylight": 97404, + "ISMATCH": 97405, + "Highlights": 97406, + "ünk": 97407, + "aniem": 97408, + "angered": 97409, + "assignments": 97410, + "Ġregistrado": 97411, + "ĠUPPER": 97412, + "ampilkan": 97413, + "ashire": 97414, + "ĠNikola": 97415, + "ĠCFL": 97416, + "ĠHDC": 97417, + "Ġpoids": 97418, + "ĠIPs": 97419, + "Ġpreventative": 97420, + "ipsoid": 97421, + "ifix": 97422, + ".camel": 97423, + ".ga": 97424, + "Volumes": 97425, + "-ste": 97426, + "Yahoo": 97427, + "_sibling": 97428, + "Highest": 97429, + "optgroup": 97430, + "Ġkvinna": 97431, + "âĢĿãĢĤĊĊ": 97432, + "ĠAppliances": 97433, + "Ġ\"><": 97434, + "')\")Ċ": 97435, + "htt": 97436, + "ĠIdentified": 97437, + "Ġpencils": 97438, + "ĠmemberId": 97439, + "ĠappendString": 97440, + ".loadData": 97441, + "ĠmockMvc": 97442, + "Ġjub": 97443, + "ĠSlut": 97444, + "ĠTaipei": 97445, + "statt": 97446, + "Polit": 97447, + "Ġpartager": 97448, + "DidChange": 97449, + "Increases": 97450, + ")}.": 97451, + "ĠBaba": 97452, + "_CLIP": 97453, + "[unit": 97454, + "ĠклÑİÑĩ": 97455, + "Ġalcuni": 97456, + "ĠLola": 97457, + "Ġclinging": 97458, + "@PostMapping": 97459, + "(concat": 97460, + "Ġssid": 97461, + "ĠFauc": 97462, + "okit": 97463, + "ĠRecorded": 97464, + "ález": 97465, + "($('<": 97466, + ".assertIsNot": 97467, + "Ġkali": 97468, + "Volt": 97469, + "Ġwarmly": 97470, + "Ġscares": 97471, + "getti": 97472, + "führt": 97473, + "_does": 97474, + ".EMAIL": 97475, + "imations": 97476, + "Ġspringfox": 97477, + "ĠDecom": 97478, + "arcy": 97479, + "Ġglitches": 97480, + "ĠMoff": 97481, + "ĠVoll": 97482, + ".between": 97483, + "Ġcoorden": 97484, + "ĠParticularly": 97485, + "GBP": 97486, + "Ġsemble": 97487, + "Eastern": 97488, + "_MSB": 97489, + "]){čĊ": 97490, + "morgan": 97491, + "ĠEVAL": 97492, + "dere": 97493, + "HOUSE": 97494, + "moire": 97495, + "istique": 97496, + "_lstm": 97497, + "-commit": 97498, + "ysterious": 97499, + "Ġtwink": 97500, + "-thumbnails": 97501, + "enÃŃ": 97502, + ":'',": 97503, + "Ġblackout": 97504, + "ĠFloors": 97505, + "Ġsofas": 97506, + "Ġoui": 97507, + "leshoot": 97508, + "ĠRaq": 97509, + "-abs": 97510, + "Ġkra": 97511, + "Mining": 97512, + "shaft": 97513, + ".setColumns": 97514, + "Clazz": 97515, + "PRETTY": 97516, + ".playlist": 97517, + "éĸ¢": 97518, + "-Saharan": 97519, + "MING": 97520, + "ĉbl": 97521, + "è®®": 97522, + "jf": 97523, + "DOCKER": 97524, + "hopefully": 97525, + "(ignore": 97526, + "ĠUsersController": 97527, + "ĠMitarbeiter": 97528, + "ĠLES": 97529, + "Hamilton": 97530, + "-metadata": 97531, + "ĠKK": 97532, + "iktig": 97533, + "Ġwollte": 97534, + "egrator": 97535, + "]bool": 97536, + ",current": 97537, + "ĠvalueType": 97538, + "Ġexcavation": 97539, + "oland": 97540, + "Ġverv": 97541, + "/filepath": 97542, + "AuthProvider": 97543, + "Ġprocrast": 97544, + "ĉULONG": 97545, + "_MEMBERS": 97546, + "Ġuplift": 97547, + "ĠAutonomous": 97548, + "Ġartworks": 97549, + "ĠOutreach": 97550, + "Ġpore": 97551, + "Homepage": 97552, + "DialogTitle": 97553, + "ĠGenerating": 97554, + "PARSE": 97555, + "Ġsemanas": 97556, + "Ġhumano": 97557, + "JSGlobalScope": 97558, + "Ġvolte": 97559, + "Ġbella": 97560, + "(isinstance": 97561, + "Ġplc": 97562, + "\\Catalog": 97563, + "Ġesteemed": 97564, + "鼷": 97565, + "(suffix": 97566, + "Ġsweeps": 97567, + "ĉORDER": 97568, + "Ġdoivent": 97569, + "ĠSwarm": 97570, + "ĠCompiled": 97571, + "getPage": 97572, + "ADR": 97573, + ".RichTextBox": 97574, + "ĠNaming": 97575, + "agged": 97576, + "ĠGANG": 97577, + "rasing": 97578, + "odeled": 97579, + "Ġgala": 97580, + "ĠJSName": 97581, + "ddf": 97582, + "Ġillust": 97583, + "ĠLansing": 97584, + "[port": 97585, + "-death": 97586, + "Ġdinheiro": 97587, + "ĠEighth": 97588, + "Ġbian": 97589, + "stÃ¥": 97590, + "Ġversión": 97591, + "ĠLinearGradient": 97592, + "ĠHarding": 97593, + ".*)": 97594, + "eczy": 97595, + "$header": 97596, + "ĠvÃ¥r": 97597, + "Unchecked": 97598, + "Ġkoje": 97599, + "ĠPaladin": 97600, + "())),": 97601, + "Giving": 97602, + "()})Ċ": 97603, + "Ġdips": 97604, + "Friendly": 97605, + "Ġportrays": 97606, + "Ġhelium": 97607, + "Ġinsurgency": 97608, + "_expiry": 97609, + "ĠstringByAppendingString": 97610, + "Ġaantal": 97611, + "slope": 97612, + "mast": 97613, + ".getInteger": 97614, + "Ġ########################": 97615, + "_PIPELINE": 97616, + "Ġdensely": 97617, + "Ġmutating": 97618, + "midi": 97619, + "ĠSeit": 97620, + "ayne": 97621, + "NOWLED": 97622, + "ĠDesmond": 97623, + "ĠFName": 97624, + "ĠNairobi": 97625, + "\\Context": 97626, + "Ġcalcular": 97627, + "-den": 97628, + "Ġcott": 97629, + "]):čĊ": 97630, + "ĠRecommendation": 97631, + "ĠRolex": 97632, + "ĠvalidationResult": 97633, + ".pat": 97634, + "ĠnÃły": 97635, + "ĠRestClient": 97636, + "ĠGPI": 97637, + "ĠAsheville": 97638, + "ĠOSP": 97639, + "ĠPERMISSION": 97640, + "ÐĶаÑĤа": 97641, + "/notification": 97642, + "Knight": 97643, + "_Word": 97644, + "ĠBender": 97645, + "ranking": 97646, + "Ġpartida": 97647, + "_reservation": 97648, + "ÌĢ": 97649, + "ĠmName": 97650, + "Ġgetch": 97651, + "Ġborr": 97652, + "Ġdiligent": 97653, + "Discuss": 97654, + "æŃ£åľ¨": 97655, + "apeake": 97656, + "ioned": 97657, + "-Nazi": 97658, + ".cum": 97659, + "ĠKron": 97660, + "=$('#": 97661, + "/single": 97662, + "Ġerotisch": 97663, + "ĠVib": 97664, + "Ġratified": 97665, + "Ġconcerted": 97666, + "ĠREGARD": 97667, + "Ġdobr": 97668, + ".DriverManager": 97669, + "'r": 97670, + "Portable": 97671, + "ĉsuite": 97672, + "Ġrelaciones": 97673, + "ĠDop": 97674, + "emploi": 97675, + "DOB": 97676, + "Ġcrumbs": 97677, + "Ġxls": 97678, + "_Application": 97679, + "(':',": 97680, + "Ġ------------------------------------------------------------------------Ċ": 97681, + "mse": 97682, + "Ġberk": 97683, + "ĠReturnValue": 97684, + "ĠBelly": 97685, + "Ġcamar": 97686, + "ĠPeek": 97687, + "elsing": 97688, + "Ġnotifies": 97689, + "ĠTristan": 97690, + "ĠGAR": 97691, + "emme": 97692, + "ĠElevated": 97693, + "_CSV": 97694, + "(chalk": 97695, + "Ġtwenties": 97696, + "ĠSearchResult": 97697, + "=search": 97698, + "ĠMixing": 97699, + "ýt": 97700, + "Ġrecruiter": 97701, + "ĠIDEOGRAPH": 97702, + "ĠAgo": 97703, + "(Operation": 97704, + "$values": 97705, + "Ġworldly": 97706, + "ĠRosenberg": 97707, + "ĠConfigureServices": 97708, + ">*Ċ": 97805, + "Ġsnork": 97806, + "_opacity": 97807, + "ĠinitWithNibName": 97808, + "iado": 97809, + "AAC": 97810, + "Ġ]).": 97811, + ";z": 97812, + "_paragraph": 97813, + "Ġnoses": 97814, + "stands": 97815, + "ifr": 97816, + "_mE": 97817, + "Iraq": 97818, + ".Predicate": 97819, + "enaire": 97820, + "]]];Ċ": 97821, + "Ġunidad": 97822, + "Ġretirees": 97823, + "_hello": 97824, + "Ġmodele": 97825, + "ĠUITableViewController": 97826, + "fwrite": 97827, + "_numero": 97828, + "_visited": 97829, + "Ġrecebe": 97830, + "(Notification": 97831, + "Fantastic": 97832, + "_submenu": 97833, + "ĠPEM": 97834, + "ĠCupertino": 97835, + "approximately": 97836, + "classed": 97837, + ".ReadString": 97838, + "Ġdomicile": 97839, + "_PW": 97840, + "Ġballpark": 97841, + "ĠKale": 97842, + "contra": 97843, + "_favorite": 97844, + "/of": 97845, + "Quite": 97846, + "ĠOTA": 97847, + "Ġaccelerometer": 97848, + "didn": 97849, + "|^": 97850, + "ĠRohingya": 97851, + "ivicrm": 97852, + "annabin": 97853, + "обÑĭÑĤи": 97854, + "orado": 97855, + "')+": 97856, + "Haunted": 97857, + ",ID": 97858, + "(UIAlertAction": 97859, + "urv": 97860, + "_bel": 97861, + "ĠMexicans": 97862, + "/terms": 97863, + "ĠPainter": 97864, + "InputLabel": 97865, + "ĠVinci": 97866, + "ĠRosie": 97867, + "\\uc": 97868, + "": 98029, + "_gs": 98030, + "Ġcompil": 98031, + "nard": 98032, + "-exc": 98033, + "Ġrhyme": 98034, + "Ġbutto": 98035, + "says": 98036, + "antasy": 98037, + "ë¸": 98038, + "ĠcittÃł": 98039, + "Ġcheg": 98040, + "TimeString": 98041, + "Ġpositivity": 98042, + "ĠDabei": 98043, + "Ġwang": 98044, + "Ġescre": 98045, + "\"c": 98046, + "ĉvideo": 98047, + "ĠRanked": 98048, + ".strings": 98049, + ">>>(": 98050, + "ĠинÑĤеÑĢ": 98051, + "Ġresta": 98052, + "[:,:": 98053, + "Ġrendre": 98054, + "Ġdeser": 98055, + "Jos": 98056, + "Ġdisruptions": 98057, + "ĠопеÑĢ": 98058, + "sampling": 98059, + "suppress": 98060, + "ĠcontainerView": 98061, + "ĠSeamless": 98062, + "Ġairy": 98063, + "Ġonload": 98064, + ".WindowManager": 98065, + "ĠPLA": 98066, + "braco": 98067, + ".setPositiveButton": 98068, + "Ġpdu": 98069, + "Ġgsi": 98070, + "ĠCli": 98071, + "_gradients": 98072, + "Ñıд": 98073, + "ĠWhisper": 98074, + "cstdint": 98075, + "Ġläng": 98076, + "Ġformulations": 98077, + "énom": 98078, + "ournemouth": 98079, + "[$_": 98080, + "Ġordinarily": 98081, + ".setUsername": 98082, + "Ġfaculties": 98083, + "MITTED": 98084, + "/values": 98085, + "Ġweir": 98086, + "ĠApt": 98087, + "MZ": 98088, + "ĉcf": 98089, + "ucken": 98090, + "ĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉ": 98091, + "defense": 98092, + "[iVar": 98093, + "ĠBusinessException": 98094, + "Selectors": 98095, + "(coordinates": 98096, + "ĠResets": 98097, + "ĠDrinks": 98098, + "oleans": 98099, + "(stypy": 98100, + "_IOC": 98101, + ".xxx": 98102, + "ĠSlater": 98103, + "ĠBelize": 98104, + "Ġ/************************************************************************": 98105, + "addin": 98106, + "_episodes": 98107, + "Ġischem": 98108, + "legalArgumentException": 98109, + "Danny": 98110, + "Ġpared": 98111, + ".codehaus": 98112, + "ĠAssy": 98113, + "ĉRect": 98114, + "âŀ": 98115, + ".lista": 98116, + "ĠваÑĪ": 98117, + "Ġvets": 98118, + "HWND": 98119, + "isoner": 98120, + "Ġxo": 98121, + "Ġorally": 98122, + "ĠStmt": 98123, + ".rnn": 98124, + "ĠDPI": 98125, + "ĠStrikes": 98126, + ".setViewportView": 98127, + "ĠèĩªåĬ¨çĶŁæĪIJ": 98128, + "YELLOW": 98129, + "GLenum": 98130, + "partners": 98131, + "ĠImplicit": 98132, + "Ġtako": 98133, + "âĢĻelle": 98134, + "Ġermög": 98135, + "totalCount": 98136, + "Gil": 98137, + "ĉwork": 98138, + "Ġpratic": 98139, + "inati": 98140, + "abies": 98141, + "ĠSkinner": 98142, + "Ġspirited": 98143, + "Ġpancreatic": 98144, + "Ġhdf": 98145, + "'em": 98146, + "Ġpsychosis": 98147, + "olicit": 98148, + "Ġ\"{\"": 98149, + "_atual": 98150, + "Ġélect": 98151, + "TEAM": 98152, + "Ġdak": 98153, + "ĠSWAT": 98154, + ".FragmentManager": 98155, + "Ġprovisioning": 98156, + "lifetime": 98157, + "_EXTENSIONS": 98158, + "ĠCASCADE": 98159, + "Ġ![": 98160, + "(KP": 98161, + "Ġvem": 98162, + "ĠInterracial": 98163, + "']},Ċ": 98164, + "spacer": 98165, + "_kv": 98166, + "Warehouse": 98167, + "RDD": 98168, + "_fsm": 98169, + ".StretchImage": 98170, + ",Yes": 98171, + "ĠRefugee": 98172, + "ĠBringing": 98173, + "Ġválido": 98174, + ".intersection": 98175, + "Ġspooky": 98176, + "_portal": 98177, + "Ġmoth": 98178, + "ĠZodiac": 98179, + "ĠSOCIAL": 98180, + "MimeType": 98181, + "']}}": 98300, + "_Blue": 98301, + "Ġbotanical": 98302, + "Ġfrags": 98303, + "Ġfamilial": 98304, + "-du": 98305, + "Ġseizing": 98306, + "(blocks": 98307, + ".rd": 98308, + ".checkNotNull": 98309, + "Ġmiser": 98310, + "Ġmaxx": 98311, + "ĠKnee": 98312, + "ViewItem": 98313, + "InnerHTML": 98314, + "Danger": 98315, + "((__": 98316, + "Ġprzypad": 98317, + "createUrl": 98318, + "**,": 98319, + "ĠDecorating": 98320, + "ATEGY": 98321, + "?>/": 98322, + ".Designer": 98323, + "hexdigest": 98324, + "ĠEverywhere": 98325, + "alleries": 98326, + ".TEXTURE": 98327, + ".Blocks": 98328, + "zell": 98329, + "Ġpreço": 98330, + "Suddenly": 98331, + "inputEmail": 98332, + "(sync": 98333, + ".bd": 98334, + "golden": 98335, + ">');": 98336, + "ĠDickinson": 98337, + ">>(Ċ": 98338, + "ĠQUEUE": 98339, + "ĠgetColumn": 98340, + "ĠSAND": 98341, + ".piece": 98342, + "licer": 98343, + "Flutter": 98344, + "ĠgetVersion": 98345, + "ĠresourceId": 98346, + "ogl": 98347, + "ÅĤaw": 98348, + ".Branch": 98349, + "ĉweb": 98350, + "Ġframerate": 98351, + "PPP": 98352, + "Ġfray": 98353, + "CNT": 98354, + "Ġinformatie": 98355, + "']čĊčĊ": 98356, + "neas": 98357, + "HeaderCode": 98358, + "Ġæ¸": 98359, + "Ġtrg": 98360, + "rawtypes": 98361, + "Honda": 98362, + "Ġmarketer": 98363, + "ĠrequestData": 98364, + "ĠPg": 98365, + "ĉnot": 98366, + "ĠpageInfo": 98367, + "Ġaktuellen": 98368, + "ãģķãĤĵ": 98369, + "ĠAMS": 98370, + "pushViewController": 98371, + "ĉAL": 98372, + "Ġvests": 98373, + "produce": 98374, + "-même": 98375, + "ĠRahman": 98376, + "Funny": 98377, + "EZ": 98378, + "_Valid": 98379, + "Ġsquadron": 98380, + "Ġlash": 98381, + "Ġirm": 98382, + "iasco": 98383, + "ĠParan": 98384, + "Ġpetites": 98385, + "ĠDecay": 98386, + "Ġuninitialized": 98387, + "privileged": 98388, + "Ġmbedtls": 98389, + "å¤ĩ注": 98390, + "Ġ^.": 98391, + "Ġecstatic": 98392, + "Detroit": 98393, + "Ġparten": 98394, + "Ġsouvenir": 98395, + ".getLogin": 98396, + "моÑĤÑĢ": 98397, + "enção": 98398, + "ĠmÃŃnimo": 98399, + "ĠAccessed": 98400, + "rió": 98401, + "Mic": 98402, + "ĠVocal": 98403, + ".SetString": 98404, + "Ġmensajes": 98405, + "åĢį": 98406, + "Ġattravers": 98407, + "ĠAph": 98408, + "Ġ');čĊ": 98409, + "ünde": 98410, + "Ġenchanted": 98411, + "ĠRootState": 98412, + "ĠCLOSED": 98413, + "ĉĉĉĉĉĉĉĉčĊ": 98414, + "Ġcaliente": 98415, + "orris": 98416, + "Ġphysicists": 98417, + "hwnd": 98418, + "_vi": 98419, + "Ġrápido": 98420, + "Ġcapitalized": 98421, + "edBy": 98422, + "Ġmachining": 98423, + "Ġhubby": 98424, + "ĠStacy": 98425, + ".Bus": 98426, + "drink": 98427, + "Hur": 98428, + "Ġpropia": 98429, + "UnitTest": 98430, + "Ġmisconception": 98431, + "__));Ċ": 98432, + "/dc": 98433, + "ĠMayweather": 98434, + "_mC": 98435, + ".createFrom": 98436, + "ĠQPainter": 98437, + "ropsych": 98438, + "innitus": 98439, + "ayas": 98440, + "Ġgeg": 98441, + "(dw": 98442, + "Ġusado": 98443, + "Ġtrickle": 98444, + "Ġannihil": 98445, + "ĠPasta": 98446, + "Ġ++Ċ": 98447, + "(ExpectedConditions": 98448, + ".postValue": 98449, + "icap": 98450, + "ĠDonetsk": 98451, + "_soup": 98452, + "-publish": 98453, + "ĠPb": 98454, + "mentions": 98455, + "ACCEPT": 98456, + ".Pull": 98457, + ",âĢĻâĢĻ": 98458, + "Ġretarded": 98459, + "_ATOM": 98460, + "ĠTerminator": 98461, + "-court": 98462, + "ĠCLLocationCoordinate": 98463, + "Ġreverence": 98464, + "ĠSSC": 98465, + "utely": 98466, + "ĠWON": 98467, + "ĠGSL": 98468, + "frei": 98469, + ".getLongitude": 98470, + "ĠopenFileDialog": 98471, + ".Butter": 98472, + "-important": 98473, + "_MANY": 98474, + "ĠGong": 98475, + "âĢľHow": 98476, + "Ġgorge": 98477, + "=msg": 98478, + "ĠEzek": 98479, + "createCommand": 98480, + ":checked": 98481, + "Ġinfographic": 98482, + ".WEST": 98483, + "Dirs": 98484, + "Ġguarda": 98485, + "Ġbeetle": 98486, + "Loading": 98560, + "_mA": 98561, + ".getRandom": 98562, + "blings": 98563, + "Ġcheeses": 98564, + "tti": 98565, + ".âĢ¢": 98566, + "ĠBurgess": 98567, + "enderit": 98568, + ".',čĊ": 98569, + "(\"\"+": 98570, + "acb": 98571, + "%p": 98572, + "indexed": 98573, + "_predicate": 98574, + "nesia": 98575, + "Ġbied": 98576, + "ĠCIT": 98577, + "(Pos": 98578, + "_radi": 98579, + "ä»·æł¼": 98580, + "Biz": 98581, + "ĠAdolescent": 98582, + "Ġviên": 98583, + "cycl": 98584, + "_Cancel": 98585, + "Ġconclusive": 98586, + "Ġappellate": 98587, + "informatics": 98588, + "SJ": 98589, + "Ġelective": 98590, + "roleId": 98591, + "Fetcher": 98592, + "ĉCommand": 98593, + "(\"(%": 98594, + "Ġfart": 98595, + "ILA": 98596, + "getBlock": 98597, + "AUSE": 98598, + "Ġдан": 98599, + "ĠArte": 98600, + "Ġnotifying": 98601, + "Ġgele": 98602, + ".same": 98603, + "ĠRegel": 98604, + "ĠBaÅŁ": 98605, + ".creation": 98606, + "ĠVN": 98607, + "_community": 98608, + "Ġunsustainable": 98609, + "SEX": 98610, + "ĠgridSize": 98611, + "rescia": 98612, + "aversable": 98613, + "(',')[": 98614, + "ĠPhelps": 98615, + "á»ķi": 98616, + "ANCELED": 98617, + "-IS": 98618, + ".runners": 98619, + "ĠStokes": 98620, + ".Produ": 98621, + "Ġwhipping": 98622, + "_acquire": 98623, + "Ġinvestigación": 98624, + "fried": 98625, + ".copyWith": 98626, + "ĠHardcover": 98627, + "-Se": 98628, + "áŀ¶áŀ": 98629, + "invitation": 98630, + "lesai": 98631, + "ĠDorm": 98632, + "ĠÑģпиÑģка": 98633, + "Ġconcatenated": 98634, + "ophil": 98635, + "Ġthinker": 98636, + "/fontawesome": 98637, + "ĠLeopard": 98638, + "Ġ\"/\");Ċ": 98639, + "Ġresiduals": 98640, + "ĠMicrowave": 98641, + "Ġconforme": 98642, + "throp": 98643, + "Ġdisemb": 98644, + "ĠOMG": 98645, + "ĠDiscipline": 98646, + "ĠAcrobat": 98647, + "/repository": 98648, + "dfa": 98649, + "_MED": 98650, + "bufio": 98651, + "Ġméthode": 98652, + "_HOLD": 98653, + "iasi": 98654, + "_legacy": 98655, + ")ččĊ": 98656, + "æ£Ģ": 98657, + "GetProcAddress": 98658, + "Ġyay": 98659, + "otence": 98660, + "orderid": 98661, + "-tw": 98662, + "Ġdearly": 98663, + "Incoming": 98664, + "/il": 98665, + "Ġneurop": 98666, + "ucz": 98667, + ");čččĊ": 98668, + "ĠInnovative": 98669, + "Ġprofund": 98670, + "igmat": 98671, + "SelectionMode": 98672, + "relevant": 98673, + ".GO": 98674, + "Ġbruises": 98675, + "Ġsach": 98676, + "odef": 98677, + "Ġreimb": 98678, + "/desktop": 98679, + "-spot": 98680, + "undance": 98681, + "Entropy": 98682, + "\\core": 98683, + "Ġsuger": 98684, + "ĠMvc": 98685, + "ĠGNOME": 98686, + "_indx": 98687, + "ĠYYSTYPE": 98688, + "ĠMatlab": 98689, + "ĠCIF": 98690, + "Ġ*))": 98691, + "ĠproductList": 98692, + "ĠAlright": 98693, + "acemark": 98694, + "ÑĤив": 98695, + "modification": 98696, + "international": 98697, + "Ġhomers": 98698, + "Ġdicts": 98699, + "ĠQFont": 98700, + ".SQLite": 98701, + "Ġtransplantation": 98702, + "ĠMessageBoxButton": 98703, + "ĠElves": 98704, + "']])Ċ": 98705, + "(QIcon": 98706, + "Ġcinemas": 98707, + "COORD": 98708, + "-China": 98709, + "Ġkhẩu": 98710, + "æĪijçļĦ": 98711, + "Ġskulls": 98712, + "Ġpainstaking": 98713, + "fce": 98714, + ".XRLabel": 98715, + "Ġspecifier": 98716, + "Ġpreferring": 98717, + "/activity": 98718, + "(Photo": 98719, + "ált": 98720, + ".lot": 98721, + "''.": 98722, + "annonce": 98723, + ".googlecode": 98724, + "-pdf": 98725, + "ĠPoke": 98726, + "_ACL": 98727, + "Ġendowed": 98728, + "discover": 98729, + ".omg": 98730, + "Ġwoodland": 98731, + ".Magic": 98732, + "Ġvolont": 98733, + "NotAllowed": 98734, + "Ġchave": 98735, + "BMW": 98736, + "','=',": 98737, + "ĠSIX": 98738, + "æĪij们": 98739, + "Ġkosher": 98740, + "Ġaspiration": 98741, + "intl": 98742, + "_refptr": 98743, + "'+Ċ": 98744, + "mentor": 98745, + ".club": 98746, + "WindowState": 98747, + ".ARR": 98748, + "Ġzza": 98749, + "ĠmessageType": 98750, + ".equ": 98751, + "Thor": 98752, + "Ġinjust": 98753, + "Ġgums": 98754, + "ĠborderSide": 98755, + "/////": 98756, + "ĠTransmit": 98757, + "Ġbufsize": 98758, + "Ġhak": 98759, + "Ġellas": 98760, + "RANDOM": 98761, + "ĉmc": 98762, + "Ġpea": 98763, + "eko": 98764, + "documento": 98765, + "Ġhysteria": 98766, + "Ġarenas": 98767, + "Ġgunmen": 98768, + "Ġmike": 98769, + "Ġimpunity": 98770, + "atisation": 98771, + "_Zero": 98772, + "_COMPANY": 98773, + "ĠGors": 98774, + "ĠuseClass": 98775, + "(redis": 98776, + "ĠRUNNING": 98777, + "ĠBair": 98778, + "velte": 98779, + "Ġ','.": 98780, + "аÑĤÑĮÑģÑı": 98781, + "öst": 98782, + "encodeURIComponent": 98783, + "_restrict": 98784, + "Ġdecals": 98785, + "ĠPedido": 98786, + "Ġaltercation": 98787, + "Displays": 98788, + "ĠApplicants": 98789, + "CUS": 98790, + "Textarea": 98791, + "ĠAngola": 98792, + ".future": 98793, + "ĠUSHORT": 98794, + "Ġsuppressing": 98795, + "Ġsetzen": 98796, + "APolynomial": 98797, + "Ġtoch": 98798, + "Ġhallmark": 98799, + "Ġ$$$": 98800, + "ĠCHARSET": 98801, + ".rpm": 98802, + "ĠDich": 98803, + "--------------------": 98804, + "_parm": 98805, + "è¿ĺ": 98806, + "acciones": 98807, + "hait": 98808, + "WARDED": 98809, + "_routing": 98810, + "ĠNOM": 98811, + "Ġenclave": 98812, + "ĠLotto": 98813, + "ĉfr": 98814, + "complexContent": 98815, + "ĠBallard": 98816, + "kube": 98817, + "/win": 98818, + ".getColumnModel": 98819, + "_REPLACE": 98820, + "HeaderValue": 98821, + "Ġestudiantes": 98822, + "Ġapis": 98823, + "Ġbpm": 98824, + "ĠTypeName": 98825, + "AndGet": 98826, + "rita": 98827, + "Plans": 98828, + ">Note": 98829, + "Ġfetisch": 98830, + "Ġtoned": 98831, + "_goto": 98832, + "onsense": 98833, + "Ġmolds": 98834, + "Ġinfiltration": 98835, + "ĠGuerrero": 98836, + "ubbo": 98837, + "cki": 98838, + "($(\".": 98839, + "_activities": 98840, + "(changes": 98841, + "ĠofApp": 98842, + "ĠKepler": 98843, + "ĠDemp": 98844, + "ĠContinent": 98845, + ".Ticks": 98846, + "ĠUnsigned": 98847, + "ĠJahres": 98848, + "Ġfreshmen": 98849, + "ĠArchived": 98850, + "ĠкоÑĤоÑĢÑĭй": 98851, + "Ġ'::": 98852, + "Tutorial": 98853, + "Cc": 98854, + "ĠtableLayoutPanel": 98855, + "fromJson": 98856, + ".levels": 98857, + "_transient": 98858, + "Ġendorsing": 98859, + "ĠDIC": 98860, + "lauf": 98861, + "Ġshred": 98862, + "_EMIT": 98863, + "ificantly": 98864, + "ALA": 98865, + "/proto": 98866, + "Ġnarrowing": 98867, + "Utc": 98868, + "Factors": 98869, + "Ġsentient": 98870, + "æŀIJ": 98871, + "lixir": 98872, + "ĠCROSS": 98873, + "meteor": 98874, + "Ġgroin": 98875, + "Ġmdb": 98876, + "ĠRotterdam": 98877, + "Ġcomida": 98878, + "ĠOpCode": 98879, + "ĠDefaultValue": 98880, + "PermissionsResult": 98881, + "Ġheterogeneous": 98882, + "Ġmoot": 98883, + "Ġdeceived": 98884, + "-independent": 98885, + "ĠObjectOutputStream": 98886, + "Ġoverpower": 98887, + ".dup": 98888, + "Ġldb": 98889, + "Ġdomestically": 98890, + "Ġbestellen": 98891, + "Ġlov": 98892, + "ĠContractors": 98893, + "Triangles": 98894, + "Ġfodder": 98895, + "Ġfilmes": 98896, + "ä¼ģ": 98897, + "Ġrevolver": 98898, + "StartupScript": 98899, + "/validation": 98900, + "ĠResourceType": 98901, + "iÅŁ": 98902, + "ĠLaz": 98903, + "fef": 98904, + "Ġlstm": 98905, + "{*": 98906, + ".attachment": 98907, + ".hits": 98908, + "ewith": 98909, + "DOG": 98910, + "Alabama": 98911, + "Ġmediums": 98912, + ".mContext": 98913, + "-cols": 98914, + "åıĭ": 98915, + ".notice": 98916, + "Ġattn": 98917, + "ĠPacking": 98918, + "ĠLn": 98919, + "_COMPLEX": 98920, + "/Users": 98921, + ".savetxt": 98922, + "ĠRounds": 98923, + "?,?,?,?,": 98924, + "Ġingl": 98925, + "ĠROC": 98926, + "_female": 98927, + "ĠStard": 98928, + "]];": 98929, + "Ġwrestlers": 98930, + "Ġtorrents": 98931, + "Ġsinh": 98932, + "ĊĊ": 98933, + "ë³µ": 98934, + "sense": 98935, + "however": 98936, + ".Physics": 98937, + "Infrastructure": 98938, + "ĠSacr": 98939, + "Fel": 98940, + "ĠDISTRIBUT": 98941, + "éments": 98942, + "ĠValidates": 98943, + "############################################################": 98944, + "Ġ|/": 98945, + "Ġesl": 98946, + "Ġréseau": 98947, + "ĠBip": 98948, + "BYTES": 98949, + "_WATER": 98950, + "Turning": 98951, + "ELS": 98952, + "Ġjuxtap": 98953, + "Ġlesbische": 98954, + "ých": 98955, + "(Unknown": 98956, + "Neo": 98957, + "@JsonProperty": 98958, + "Ġalumnos": 98959, + "ĠRaqqa": 98960, + "imei": 98961, + ".getBounds": 98962, + ".MouseEventHandler": 98963, + "#######": 98964, + "GenericType": 98965, + "/cms": 98966, + "Ġturno": 98967, + "Ġмин": 98968, + "Ġfolklore": 98969, + "ĠEvo": 98970, + "Ġconductivity": 98971, + "Ġleben": 98972, + "Ġgearbox": 98973, + "-vs": 98974, + "ĠÏĨ": 98975, + "Ġdrinkers": 98976, + "Ġconexao": 98977, + "ĠTeeth": 98978, + "ĠgetArguments": 98979, + "ĠRAT": 98980, + "entious": 98981, + "Educ": 98982, + "+W": 98983, + "ĠInstitutional": 98984, + "ĠBord": 98985, + "isEqual": 98986, + "(pwd": 98987, + "Ġignited": 98988, + "ĠRousse": 98989, + "Ġimpactful": 98990, + "ĠMalk": 98991, + "Ġgeral": 98992, + "ĠPivot": 98993, + "Ġazt": 98994, + "Ġcsvfile": 98995, + "ĠRope": 98996, + "ĠSOLUTION": 98997, + "ĠArbitrary": 98998, + "Ġletto": 98999, + ".MouseAdapter": 99000, + "Ġ}}}": 99001, + "ĠSailor": 99002, + "dera": 99003, + "Putting": 99004, + "Ġconcentrates": 99005, + "ĠauthDomain": 99006, + "âĢĿçļĦ": 99007, + "-finals": 99008, + ",strlen": 99009, + "Muon": 99010, + "ĠOrdinary": 99011, + "firefox": 99012, + "ĠLaTeX": 99013, + "ĠHund": 99014, + "engineering": 99015, + "/blue": 99016, + "edTextBox": 99017, + "(\"\");": 99018, + "ĠCDDL": 99019, + "kept": 99020, + "ĠGetString": 99021, + "Kir": 99022, + "()='": 99023, + "ĠOCD": 99024, + "antium": 99025, + "$menu": 99026, + "ĠAppalachian": 99027, + "Secretary": 99028, + "ë¥ĺ": 99029, + "ีย": 99030, + "Semantic": 99031, + "Ġ*[": 99032, + "estone": 99033, + "ungkin": 99034, + "MaxY": 99035, + "-tone": 99036, + "\"};čĊ": 99037, + "_Part": 99038, + "ĊĊ": 99240, + "Lic": 99241, + "ĠMirage": 99242, + "ĠAssemblyFileVersion": 99243, + "TeV": 99244, + "ĠValueEventListener": 99245, + "-solving": 99246, + "Tho": 99247, + "roulette": 99248, + "_WP": 99249, + "Ġuninterrupted": 99250, + "ĠfieldType": 99251, + ".Typed": 99252, + "Ġamour": 99253, + "Ġmockery": 99254, + "(vol": 99255, + "ĠSubcommittee": 99256, + "ĠRuf": 99257, + "erox": 99258, + ":UIButtonTypeCustom": 99259, + "ĠBlur": 99260, + "Ġwykon": 99261, + "nces": 99262, + "ASHBOARD": 99263, + "!!\");Ċ": 99264, + "Ġmurderers": 99265, + ".daily": 99266, + "ĠDIAG": 99267, + "jing": 99268, + "Ġdolphin": 99269, + "Ġlòng": 99270, + "Ġbö": 99271, + "ĠVocabulary": 99272, + ".StObject": 99273, + "')\">": 99274, + "Ġzun": 99275, + "Ġscrimmage": 99276, + "tréal": 99277, + "ĠLig": 99278, + "[vi": 99279, + "Cole": 99280, + "Ġfrosting": 99281, + ".Players": 99282, + "-translate": 99283, + "Feels": 99284, + "=\\\"/": 99285, + ".ButterKnife": 99286, + "Ġ?>;Ċ": 99287, + "Ġavi": 99288, + "innie": 99289, + ".Failure": 99290, + "Ġspindle": 99291, + "ConfigurationException": 99292, + "_hop": 99293, + "Ġposição": 99294, + "ĠAwait": 99295, + "UIImagePickerController": 99296, + "ĉday": 99297, + "Ġgenom": 99298, + "Cab": 99299, + "ĠÑĢезÑĥлÑĮÑĤаÑĤ": 99300, + "ORIGINAL": 99301, + "Ġejaculation": 99302, + "(tcp": 99303, + "SECOND": 99304, + "Ġtonic": 99305, + "ĠListBox": 99306, + "ĠĉĉĊ": 99307, + "()>Ċ": 99308, + "Ġquatre": 99309, + "ượng": 99310, + "withErrors": 99311, + ".Maybe": 99312, + ",âĢ¦": 99313, + "tokenId": 99314, + "_UNDEF": 99315, + "Ġfreshness": 99316, + "ĠAmendments": 99317, + ".mapbox": 99318, + ".CV": 99319, + "(blog": 99320, + "_gettime": 99321, + ".quest": 99322, + "sparse": 99323, + "Ġresale": 99324, + "Ġenthusiastically": 99325, + "ĠProstitutas": 99326, + "Wa": 99327, + "Cargo": 99328, + ".Parcelable": 99329, + "SENSOR": 99330, + "ĠRyu": 99331, + "Laughs": 99332, + "_Native": 99333, + "/pg": 99334, + "ysts": 99335, + "Ġphotoc": 99336, + "ç®Ģ": 99337, + "adopt": 99338, + ".species": 99339, + "conciliation": 99340, + "Adjusted": 99341, + ".FirebaseAuth": 99342, + "uttle": 99343, + "ordination": 99344, + "Ġmunch": 99345, + "ĠStake": 99346, + ".ping": 99347, + "anker": 99348, + "(QStringLiteral": 99349, + "Ġsubscript": 99350, + "ĠĠĉĊ": 99351, + "ĠMCC": 99352, + "_Cmd": 99353, + "sexy": 99354, + "iou": 99355, + "ĠMANY": 99356, + "Ġnanny": 99357, + "TRAIN": 99358, + "Ġflourishing": 99359, + "ĠWatches": 99360, + "ĠQMap": 99361, + "ĠFerm": 99362, + "Ġwasm": 99363, + "ĠAbed": 99364, + "_UD": 99365, + "ĠGlasses": 99366, + "+v": 99367, + "Attend": 99368, + ".Chain": 99369, + "Ġdecency": 99370, + "ĠSupplementary": 99371, + "hunter": 99372, + "-txt": 99373, + "Ġ\"}\";Ċ": 99374, + ".setWindowTitle": 99375, + "(\"": 99477, + "Ġmascara": 99478, + "(Profile": 99479, + "åĬŁèĥ½": 99480, + "imité": 99481, + "Ġwildfires": 99482, + "-ROM": 99483, + ".isOn": 99484, + "(groupId": 99485, + "Repair": 99486, + "accumulate": 99487, + "Ġ<\",": 99488, + "Ġhandwritten": 99489, + "Ġacheter": 99490, + "ĠMGM": 99491, + "ĠIrma": 99492, + "->{_": 99493, + "gee": 99494, + "criminal": 99495, + "Ġèĭ¥è¦ģ": 99496, + "Ġmomentarily": 99497, + "\")!=": 99498, + "_lit": 99499, + "ĠexpiresIn": 99500, + ".\").": 99501, + "éķ¿åº¦": 99502, + "Ġfrække": 99503, + "vlc": 99504, + "Ġorbs": 99505, + "),$": 99506, + "Ġventured": 99507, + "/>\\": 99508, + "charm": 99509, + "Nuitka": 99510, + "eldig": 99511, + "atonin": 99512, + "Witness": 99513, + "-lat": 99514, + "ĠsetHidden": 99515, + "Ġrelics": 99516, + "Ġconsulate": 99517, + ".IGNORE": 99518, + "\"After": 99519, + "ĠsetAddress": 99520, + "Ġbesteht": 99521, + "Ġ'')ĊĊ": 99522, + ".xaxis": 99523, + "Ġserão": 99524, + "Ġmisled": 99525, + "_UNIFORM": 99526, + "ĠVIA": 99527, + "incr": 99528, + "Ġzenith": 99529, + "Ġviscosity": 99530, + "Ġthinly": 99531, + ".getSharedPreferences": 99532, + ".ErrorCode": 99533, + "\"),\"": 99534, + "ĠMillionen": 99535, + "Ġ/>)Ċ": 99536, + "ScrollIndicator": 99537, + "-seeking": 99538, + "ĠPOLITICO": 99539, + "asca": 99540, + "_rl": 99541, + "Navig": 99542, + "(fullfile": 99543, + "Ġsolitude": 99544, + "Ġjuven": 99545, + "Ġhauling": 99546, + "ĠMacros": 99547, + "ĠGry": 99548, + "Ġexercitation": 99549, + "ĠATTACK": 99550, + "TickCount": 99551, + "Ġrites": 99552, + "Ġdoe": 99553, + "ParticleSystem": 99554, + "Ġslu": 99555, + "WindowText": 99556, + "ĠClassName": 99557, + "Ġslander": 99558, + "ĉPort": 99559, + "jong": 99560, + "?a": 99561, + ".Dial": 99562, + "âĢĶat": 99563, + "$objPHPExcel": 99564, + "Ġsoar": 99565, + "ENN": 99566, + "appeared": 99567, + "Ġquotid": 99568, + "emachine": 99569, + "Ġnip": 99570, + "Ġmicrotime": 99571, + "ĠAlma": 99572, + ";!": 99573, + "------------------------------------------------------------------------------------------------": 99574, + "ĠPassage": 99575, + "Ġdumpsters": 99576, + "ĠExclude": 99577, + "Ġsuggestive": 99578, + "ĠCircularProgressIndicator": 99579, + "_clr": 99580, + "ArrayType": 99581, + "ILLA": 99582, + "ElapsedTime": 99583, + "Driven": 99584, + "ĠresourceName": 99585, + "ĠGarrison": 99586, + "serir": 99587, + "-ahead": 99588, + "Ġpinnacle": 99589, + "ĠEspresso": 99590, + "Sparse": 99591, + "Ġassays": 99592, + "ĠGirlfriend": 99593, + "imid": 99594, + "]='\\": 99595, + "ONGLONG": 99596, + "Ġportraying": 99597, + "Lane": 99598, + "Ġbúsqueda": 99599, + "Ġreinforcements": 99600, + "ĠSpreadsheet": 99601, + "ĠArrayCollection": 99602, + ",arr": 99603, + "lightbox": 99604, + "icana": 99605, + "<\"": 99606, + "builders": 99607, + "Kid": 99608, + "ĠMatSnackBar": 99609, + "EXPR": 99610, + "odcast": 99611, + "ĠFoundations": 99612, + "Ġinds": 99613, + "='${": 99614, + "Fizz": 99615, + "-functional": 99616, + "(workspace": 99617, + "Ġstemmed": 99618, + "_patches": 99619, + "ĠJarvis": 99620, + "READING": 99621, + "Ġdisrespectful": 99622, + "ĠQDom": 99623, + "Ġ${Ċ": 99624, + "estatus": 99625, + "Reached": 99626, + "!.ĊĊ": 99627, + "ILT": 99628, + "ĠNDEBUG": 99629, + "ĠCourage": 99630, + "birthdate": 99631, + "ĠTing": 99632, + "Ġutilizado": 99633, + "ánchez": 99634, + "Outdoor": 99635, + "Ġhandguns": 99636, + "RefCount": 99637, + "ÉĻ": 99638, + "romo": 99639, + "Ġtts": 99640, + ".She": 99641, + "ĠPane": 99642, + "ãĢij,ãĢIJ": 99643, + "ĠIOCTL": 99644, + "/black": 99645, + "inscription": 99646, + "Ġbiopsy": 99647, + "ĠTimeInterval": 99648, + ".TestCheck": 99649, + "ĠGUIStyle": 99650, + "ĠCapability": 99651, + "ĠBeitrag": 99652, + "donnees": 99653, + "Treatment": 99654, + ".backup": 99655, + "Ġsignings": 99656, + "ĠBoca": 99657, + "drm": 99658, + ".MAIN": 99659, + "Ġgoede": 99660, + "ĠMarkup": 99661, + "GREE": 99662, + "ĠBaseService": 99663, + ".Creator": 99664, + "Ġjails": 99665, + "ĠKahn": 99666, + "IpAddress": 99667, + "ACHI": 99668, + "Ġinhibited": 99669, + "Ġ@$_": 99670, + "ĠAssass": 99671, + "Ġenviado": 99672, + "Heroes": 99673, + "ÐŁÐµÑĢ": 99674, + "ĠMaven": 99675, + ".ls": 99676, + "Ġive": 99677, + "|RF": 99678, + "ĠresizeMode": 99679, + "Ġrumpe": 99680, + "_attachments": 99681, + "TU": 99682, + "Ġtactile": 99683, + "Attempting": 99684, + "Ġrobin": 99685, + "yaw": 99686, + "Ġmercenaries": 99687, + "ĠHabitat": 99688, + "enddate": 99689, + "Ġoxy": 99690, + "ĉRandom": 99691, + "ohon": 99692, + "IsNull": 99693, + "ĠValidationResult": 99694, + "ãĥļ": 99695, + "umbed": 99696, + "ppv": 99697, + "Ġarp": 99698, + "ichick": 99699, + "_rnn": 99700, + "ĠTFT": 99701, + "TexImage": 99702, + "\"On": 99703, + "ĠSampler": 99704, + "topl": 99705, + "Ġjane": 99706, + "yling": 99707, + "ĠUNICODE": 99708, + "TabIndex": 99709, + "<{Ċ": 99710, + "suspend": 99711, + "uvian": 99712, + ",application": 99713, + "олиÑĩеÑģÑĤво": 99714, + "yat": 99715, + "ezier": 99716, + "ĠCHUNK": 99717, + "ĠAdler": 99718, + "/Add": 99719, + "ĠKeyValue": 99720, + "Ġsposób": 99721, + "Sampling": 99722, + "chers": 99723, + "_AMD": 99724, + "Ru": 99725, + ".MustCompile": 99726, + "Nation": 99727, + "Assoc": 99728, + "Managing": 99729, + "ĠEngl": 99730, + "_GB": 99731, + "Ġsuccinct": 99732, + "Ġdisliked": 99733, + "ĠIke": 99734, + "Bulletin": 99735, + "_ARCHIVE": 99736, + "Proposal": 99737, + "Ġjogging": 99738, + ".CREATED": 99739, + "Ġchol": 99740, + "è£ħ": 99741, + "Į¨": 99742, + "-push": 99743, + "Ġreserva": 99744, + "corev": 99745, + "ètre": 99746, + "THR": 99747, + "Ġincompetence": 99748, + "Ġcharisma": 99749, + "æĦŁ": 99750, + "Ġ\"==": 99751, + "BTN": 99752, + "ĠLocator": 99753, + "ivet": 99754, + "('.')Ċ": 99755, + "ĠforIndexPath": 99756, + "ôme": 99757, + "Ġcapacit": 99758, + "waters": 99759, + "ĠWRONG": 99760, + "hoa": 99761, + "ĠMIPS": 99762, + "Ġemiss": 99763, + "ĠJacqueline": 99764, + "(cmp": 99765, + "Ġeens": 99766, + "Leo": 99767, + ".timing": 99768, + "CLUSION": 99769, + "Ġ(\"-": 99770, + "åĵĪ": 99771, + ".kode": 99772, + "ĠUndert": 99773, + "Ġbewild": 99774, + "ĠEssen": 99775, + ".hd": 99776, + "Ġrenegot": 99777, + "Ġmower": 99778, + "Ġlsp": 99779, + "Ġpenchant": 99780, + "Ġmanoe": 99781, + "Ġagli": 99782, + "Ġrecal": 99783, + "ĠOPERATION": 99784, + "(^)(": 99785, + "Ġν": 99786, + "ĠScoped": 99787, + "Ġ@\"Ċ": 99788, + "=label": 99789, + "[loc": 99790, + "Intl": 99791, + "ĠNz": 99792, + "tablet": 99793, + ".ColumnName": 99794, + "ĠscreenSize": 99795, + "DBus": 99796, + "cooked": 99797, + "-registration": 99798, + "âĢľOne": 99799, + "-non": 99800, + "ĠwiÄĻc": 99801, + "Ġcosta": 99802, + ".addTab": 99803, + ".conditions": 99804, + "ĠHess": 99805, + "MEMORY": 99806, + "ĠAvalanche": 99807, + "()}}Ċ": 99808, + "Ġtriplet": 99809, + "Ġlabyrinth": 99810, + "ĠNodeList": 99811, + "ĠNYT": 99812, + "Ġyeni": 99813, + "dff": 99814, + ".HtmlControls": 99815, + "AVIS": 99816, + "/Math": 99817, + "Ġmemcmp": 99818, + "اء": 99819, + "оÑģÑĮ": 99820, + "crap": 99821, + "(pages": 99822, + "Ġlxml": 99823, + "ĠQDateTime": 99824, + "_tcb": 99825, + "Ġopenid": 99826, + "Ġsynaptic": 99827, + "ĠMDMA": 99828, + "(slug": 99829, + "igmatic": 99830, + "enor": 99831, + "Ġcramped": 99832, + "GOP": 99833, + "ŃIJ": 99834, + ".isFile": 99835, + "ĠDifferential": 99836, + "Ġ=\"\";Ċ": 99837, + "ĉĉĉĠĠĠĠĉ": 99838, + "ĠCooke": 99839, + "ĉUFUNCTION": 99840, + "Ġperseverance": 99841, + "RelativeLayout": 99842, + "IMPORTANT": 99843, + "Ġexon": 99844, + "Ġон": 99845, + "ibase": 99846, + "(CONT": 99847, + "novation": 99848, + "ä½ķ": 99849, + "[sub": 99850, + "AdminController": 99851, + "HTTPHeader": 99852, + "crear": 99853, + "ĠNIR": 99854, + "ĠDropDownList": 99855, + "Ġvalide": 99856, + "Ġdehydration": 99857, + ".']": 99858, + "(WIN": 99859, + "Ġ...\\": 99860, + "Ġphotoshop": 99861, + "ĉInit": 99862, + "_cou": 99863, + "ĠtimeZone": 99864, + "darwin": 99865, + "romatic": 99866, + "NavigationItemSelectedListener": 99867, + "brates": 99868, + "]--;Ċ": 99869, + "Ġtragedies": 99870, + "ĠPediatrics": 99871, + "SMART": 99872, + "-API": 99873, + "ĠMessageLookup": 99874, + "ĉvo": 99875, + "Ġprejudices": 99876, + "ĠmA": 99877, + "Ups": 99878, + "ĠMISSING": 99879, + "ĉad": 99880, + "Cream": 99881, + "ĠTb": 99882, + "ĠMona": 99883, + "_ghost": 99884, + "ĉtypes": 99885, + "Emb": 99886, + "ĠDocumentary": 99887, + "');ĊĊĊĊ": 99888, + "Ġlup": 99889, + "_Reference": 99890, + "ĠBATCH": 99891, + "Ġintertwined": 99892, + "": 100015, + "Ġfoyer": 100016, + "'utilisation": 100017, + "ĠMüller": 100018, + "ĠFetish": 100019, + "ĠdefaultManager": 100020, + "Ġbacktrack": 100021, + "Bah": 100022, + "Explicit": 100023, + "_ASCII": 100024, + "ĠmActivity": 100025, + "(Msg": 100026, + "Ġê²Į": 100027, + "ĠTERMS": 100028, + "ĠAngie": 100029, + "HSV": 100030, + "ĠMosque": 100031, + ".Names": 100032, + "íĬ¼": 100033, + "reste": 100034, + "_parms": 100035, + "Ġgaping": 100036, + "Ġcropping": 100037, + "DataFrame": 100038, + "Ġresponsiveness": 100039, + "_undo": 100040, + "_tran": 100041, + ".terminate": 100042, + "Ġitaliane": 100043, + "Ġwalkthrough": 100044, + "Ġattractiveness": 100045, + "де": 100046, + "_STS": 100047, + "_learn": 100048, + "Ġchocolates": 100049, + "ierarchical": 100050, + "-thinking": 100051, + "Ġ)))": 100052, + "ishments": 100053, + ".Logf": 100054, + "ĠTMZ": 100055, + "ĠCanary": 100056, + "foil": 100057, + "ĠVaccine": 100058, + ".vx": 100059, + "ĠSurround": 100060, + "Intermediate": 100061, + "Ġiov": 100062, + "vais": 100063, + "';\";Ċ": 100064, + "ï½ŀĊĊ": 100065, + "éĢģæĸĻ": 100066, + "âĢ¦it": 100067, + "Seats": 100068, + "Clar": 100069, + "Wars": 100070, + "ĠHutchinson": 100071, + "ĠHasan": 100072, + "!')ĊĊ": 100073, + "ĠRichie": 100074, + "cheiden": 100075, + "($('": 100076, + "York": 100077, + "Ġlids": 100078, + "Ġalphanumeric": 100079, + "ĠGlock": 100080, + ".shapes": 100081, + "Ġsparking": 100082, + "_epsilon": 100083, + "uplicated": 100084, + ".dirty": 100085, + "])==": 100086, + "ĠìľĦì¹ĺ": 100087, + "Ġscn": 100088, + "Ġ/****************************************************************": 100089, + "_PREVIEW": 100090, + "_HC": 100091, + "ielding": 100092, + "fgets": 100093, + "ĠAddison": 100094, + "ĠproductService": 100095, + "-figure": 100096, + "(retval": 100097, + "zano": 100098, + "Ġautob": 100099, + "ĉsd": 100100, + "_numer": 100101, + "ĠSetLastError": 100102, + "ĠFior": 100103, + "ificance": 100104, + "Untitled": 100105, + "Ġinfield": 100106, + "Ġ{}));Ċ": 100107, + "Ġspac": 100108, + "Ġrookies": 100109, + "(describing": 100110, + "ngen": 100111, + "ிà®": 100112, + ".rdf": 100113, + ".Mutex": 100114, + "Ġkneeling": 100115, + "ĠQE": 100116, + "setMax": 100117, + "ReadStream": 100118, + "Ġventas": 100119, + "sut": 100120, + "cmpeq": 100121, + ".WriteAllText": 100122, + "ĠExperienced": 100123, + "$__": 100124, + "Ġkaum": 100125, + "ĠLIS": 100126, + "Ġdocumentos": 100127, + "_HEALTH": 100128, + "icontains": 100129, + "Ġartisans": 100130, + "OWNER": 100131, + "Ġblinked": 100132, + "getDisplay": 100133, + "Ġtoen": 100134, + "ĠrowNum": 100135, + "Ġavril": 100136, + "Ġinvis": 100137, + "ĠKear": 100138, + "toBeInTheDocument": 100139, + "apur": 100140, + "Ġracked": 100141, + "ĠMcMaster": 100142, + "_ATTRIB": 100143, + "Haz": 100144, + "Ġfactura": 100145, + "/ts": 100146, + "ĠÑĢазмеÑĢ": 100147, + "Ġzf": 100148, + "Ġshortfall": 100149, + ".fasta": 100150, + "ĠCONSTANT": 100151, + ".managed": 100152, + "gems": 100153, + "SharedPointer": 100154, + "Ġblurry": 100155, + "brightness": 100156, + "(components": 100157, + "Ġ...\"ĊĊ": 100158, + "SELL": 100159, + "ĠIllustrator": 100160, + ".getChannel": 100161, + "Ġtrouvé": 100162, + "ysters": 100163, + "Ġvois": 100164, + "ĠLinden": 100165, + "Ġemojis": 100166, + "Ġbrawl": 100167, + "ĠMSR": 100168, + "ĠElo": 100169, + "ĠCroatian": 100170, + "PopupMenu": 100171, + "Lewis": 100172, + ".JWT": 100173, + "Ġastonished": 100174, + "Bush": 100175, + "(itemId": 100176, + "Ġdetachment": 100177, + "ĠEncore": 100178, + "å°Ķ": 100179, + "Ġrekl": 100180, + "Ġcram": 100181, + ")$/": 100182, + ".getHost": 100183, + "_recommend": 100184, + "-HT": 100185, + "_calibration": 100186, + "Authenticate": 100187, + ".firebaseapp": 100188, + "UNIX": 100189, + "ĉCamera": 100190, + "ĠHEAP": 100191, + "Ideal": 100192, + ".office": 100193, + "Ġgoofy": 100194, + "(Symbol": 100195, + "Ġjouer": 100196, + "_partitions": 100197, + "Ġrapidement": 100198, + "ĠGNUNET": 100199, + "idUser": 100200, + "Ġsupervise": 100201, + "(Contact": 100202, + "AWN": 100203, + "ãģĺ": 100204, + "Ġnaam": 100205, + "Ġaust": 100206, + "åľ¨çº¿": 100207, + "_softmax": 100208, + "AllowAnonymous": 100209, + "ammable": 100210, + "ROUTE": 100211, + "*D": 100212, + "Ġaden": 100213, + "ĠCristina": 100214, + "ĠCristiano": 100215, + "Ġbloodstream": 100216, + "subclass": 100217, + "_persona": 100218, + "CHILD": 100219, + "-know": 100220, + "ĠnavigationOptions": 100221, + "ĠZukunft": 100222, + "ĠPixar": 100223, + "Tyler": 100224, + "Ġunderworld": 100225, + "Ġsincerity": 100226, + "Ġdispenser": 100227, + "Ġkter": 100228, + "idders": 100229, + ".addNode": 100230, + "-checked": 100231, + "Ġkeyst": 100232, + "ĠWTO": 100233, + ".signals": 100234, + "Ġadventurer": 100235, + "ĠPang": 100236, + "\\R": 100237, + "=pos": 100238, + "Ġdispensaries": 100239, + "ĠCloset": 100240, + "(\"{\\\"": 100241, + "ideon": 100242, + "Ġnécessaire": 100243, + "()\"Ċ": 100244, + "_RECEIVED": 100245, + "Ġrésultats": 100246, + "Ġmoden": 100247, + "ĠIcelandic": 100248, + ";d": 100249, + ".allowed": 100250, + "(newUser": 100251, + "Ġmerciless": 100252, + ".WaitFor": 100253, + "Ġdaycare": 100254, + "ĠConveyor": 100255, + "ĠÙ": 100256, + "اÙ": 100257, + "าà¸": 100258, + "ÑŁ": 100259, + "ÑŁÑŁ": 100260, + "Ġà¸": 100261, + "à¹Ģà¸": 100262, + "iá»": 100263, + "ãĢĢãĢĢãĢĢãĢĢ": 100264, + "ĠاØ": 100265, + "à¥Ī": 100266, + "ĠãĢĢ": 100267, + "ÑĹ": 100268, + "iá»ĩ": 100269, + "ÑŁÑŁÑŁÑŁ": 100270, + "à¥ĩà¤Ĥ": 100271, + "Ñĸд": 100272, + "ार": 100273, + "ÙĨد": 100274, + "Ñĸв": 100275, + "Ġब": 100276, + "Ġà¤ľ": 100277, + "।": 100278, + "нÑĸ": 100279, + "à¤Ĺ": 100280, + "ĠØ¢": 100281, + "Ġन": 100282, + "ÑĶ": 100283, + "ĠÑĢа": 100284, + "Ġà¤ħ": 100285, + "ÑģÑĮ": 100286, + "Ġव": 100287, + "ÑĨÑĸ": 100288, + "Ġvá»": 100289, + "³Øª": 100290, + "Ġद": 100291, + "nÄĽ": 100292, + "Ġल": 100293, + "ĠãĢĢĠãĢĢ": 100294, + "à¥Ĥ": 100295, + "द": 100296, + "à¸Ńà¸ĩ": 100297, + "ÙĪÙĨ": 100298, + "व": 100299, + "aÅŁ": 100300, + "à¹Ĥ": 100301, + "ικ": 100302, + "Ġर": 100303, + "Ġви": 100304, + "à¥įय": 100305, + "ान": 100306, + "Ġاز": 100307, + "اÙĩ": 100308, + "Ľi": 100309, + "Ġhá»": 100310, + "à¥ĭà¤Ĥ": 100311, + "iế": 100312, + "ĠÄijá»": 100313, + "य": 100314, + "Ïį": 100315, + "Ġcủ": 100316, + "Ġبر": 100317, + "ĠÙħÛĮ": 100318, + "ĠاÛĮ": 100319, + "Ġà¤Ĩ": 100320, + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 100321, + "िय": 100322, + "ÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁ": 100323, + "ви": 100324, + "رد": 100325, + "нÑĥ": 100326, + "ÙĬÙĨ": 100327, + "ια": 100328, + "Ġत": 100329, + "Ñĩи": 100330, + "Ġà¤ķर": 100331, + "از": 100332, + "aÄŁ": 100333, + "Ġà¤ī": 100334, + "ब": 100335, + "ÏĦα": 100336, + "تر": 100337, + "Ùĩا": 100338, + "ระ": 100339, + "jÃŃ": 100340, + "Îij": 100341, + "аÑĤи": 100342, + "Ġà¤Ĺ": 100343, + "ĠÑĤа": 100344, + "ÚĨ": 100345, + "à¤ľ": 100346, + "าà¸Ļ": 100347, + "Ġà¤Ń": 100348, + "िà¤ķ": 100349, + "áv": 100350, + "ĠÚ¯": 100351, + "Ïİ": 100352, + "าย": 100353, + "Ġà¤Ķ": 100354, + "ÅĻÃŃ": 100355, + "اÙĪ": 100356, + "ĠÑī": 100357, + "Ġà¤Ķर": 100358, + "еннÑı": 100359, + "ĠÚ©Ùĩ": 100360, + "ड": 100361, + "ÏĦο": 100362, + "ει": 100363, + "Ġà¤ĩ": 100364, + "à¥įत": 100365, + "à¤Ł": 100366, + "Û±": 100367, + "ĠØĮ": 100368, + "Ïģο": 100369, + "ηÏĤ": 100370, + "ë¬": 100371, + "Ñĸн": 100372, + "iá»ģ": 100373, + "iên": 100374, + "ĠвÑĸд": 100375, + "dı": 100376, + "ÙĦÛĮ": 100377, + "Ġز": 100378, + "Ïģα": 100379, + "ĠÛĮ": 100380, + "าà¸ĩ": 100381, + "Ġthá»": 100382, + "Ġà¹Ģà¸": 100383, + "iá»ĩn": 100384, + "اÙĬ": 100385, + "аннÑı": 100386, + "ÑĢе": 100387, + "ÎŁ": 100388, + "åĴ": 100389, + "اش": 100390, + "ाल": 100391, + "ëħĦ": 100392, + "Ġय": 100393, + "Ġرا": 100394, + "़": 100395, + "Ñĥв": 100396, + "ÙĪÙħ": 100397, + "ĠعÙĦ": 100398, + "ία": 100399, + "à¥Īà¤Ĥ": 100400, + "à¥ģà¤": 100401, + "าม": 100402, + "Ġmá»Ļt": 100403, + "Ġà¤ı": 100404, + "ãĢĢãĢĢãĢĢ": 100405, + "Ġपर": 100406, + "ĠاÙĨ": 100407, + "ĠاÛĮÙĨ": 100408, + "ĠvỼi": 100409, + "Σ": 100410, + "à¤ļ": 100411, + "Û°": 100412, + "iá»ĥ": 100413, + "าà¸ģ": 100414, + "ÎĻ": 100415, + "اع": 100416, + "Ñĸй": 100417, + "à¹ģล": 100418, + "ÙĩاÛĮ": 100419, + "Ñĩа": 100420, + ".:.:": 100421, + "ÏĦη": 100422, + "ĠÎij": 100423, + "رÛĮ": 100424, + "Ġngh": 100425, + "να": 100426, + "à¹ĥà¸Ļ": 100427, + "ित": 100428, + "Ġκαι": 100429, + "ÏĦε": 100430, + "à¥įà¤Ł": 100431, + "μα": 100432, + "лÑĥ": 100433, + "ým": 100434, + "ÏĢο": 100435, + "à¥Ī।": 100436, + "ï¼¼": 100437, + "رÙĬ": 100438, + "ниÑħ": 100439, + "Ïģι": 100440, + "ÙĢ": 100441, + "ÑĢо": 100442, + "Ġà¤ļ": 100443, + "ात": 100444, + "اÙĤ": 100445, + "Ġश": 100446, + "ĠÄijá»Ļ": 100447, + "ého": 100448, + "iá»ģu": 100449, + "ศ": 100450, + "ÑĸлÑĮ": 100451, + "uyá»": 100452, + "Û²": 100453, + "ĠnÄĥ": 100454, + "Ïīν": 100455, + "ĠÏĦοÏħ": 100456, + "кий": 100457, + "íĸ": 100458, + "ĠÑīо": 100459, + "à¥įव": 100460, + "ĠاÙĦØ£": 100461, + "ائ": 100462, + "tı": 100463, + "ĠÏĦο": 100464, + "¬¬": 100465, + "ĠØ·": 100466, + "ÙħاÙĨ": 100467, + "ĠÎł": 100468, + "ди": 100469, + "ึ": 100470, + "िà¤ı": 100471, + "ãģ£ãģŁ": 100472, + "ÛĮÙħ": 100473, + "ÃŃnh": 100474, + "rav": 100475, + "ÄĽt": 100476, + "Îķ": 100477, + "ĠÑıк": 100478, + "çĤ": 100479, + "à¸Ńà¸Ļ": 100480, + "ãģ¦ãģĦ": 100481, + "िल": 100482, + "ÑĸÑĤ": 100483, + "за": 100484, + "áp": 100485, + "ध": 100486, + "Ġêµ": 100487, + "à¹ģละ": 100488, + "ÃŃch": 100489, + "ĠØ¢ÙĨ": 100490, + "تÙĩ": 100491, + "ĠÙħع": 100492, + "ний": 100493, + "Æ°á»Ľc": 100494, + "ĠاÙĦع": 100495, + "رب": 100496, + "ाम": 100497, + "ĠرÙĪ": 100498, + "é«": 100499, + "ıy": 100500, + "Ġhá»į": 100501, + "ÑĤÑĮÑģÑı": 100502, + "ĠÎļ": 100503, + "Ġà¤ĩस": 100504, + "_": 100505, + "ĠÚĨ": 100506, + "ĠÙĪاÙĦ": 100507, + "íķĻ": 100508, + "ÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁ": 100509, + "Ġvý": 100510, + "िस": 100511, + "ững": 100512, + "سÛĮ": 100513, + "Ġìĥ": 100514, + "ाà¤Ĥ": 100515, + "、": 100516, + "à¹ĩà¸Ļ": 100517, + "Ġथ": 100518, + "larak": 100519, + "ây": 100520, + "tÄĽ": 100521, + "νο": 100522, + "ĠÙħÙĪ": 100523, + "ĠngÆ°á»Ŀi": 100524, + "å¦": 100525, + "ÙĬد": 100526, + "ilir": 100527, + "اØŃ": 100528, + "ĠãĢ": 100529, + "Ùĭ": 100530, + "ĠÑĢоз": 100531, + "Ġй": 100532, + "Ġdụ": 100533, + "à¹Ģà¸Ľ": 100534, + "ัà¸ĩ": 100535, + "ле": 100536, + "ाय": 100537, + "ï¿£": 100538, + "ÙĪاÙĨ": 100539, + "Ġthá»ĥ": 100540, + "ãĥ½": 100541, + "Ã¼ÅŁ": 100542, + "çŁ": 100543, + "Ġο": 100544, + "ĠΣ": 100545, + "ÛĮت": 100546, + "ัà¸ģ": 100547, + "Τ": 100548, + "Ġà¤ıà¤ķ": 100549, + "ĠÙĩÙħ": 100550, + "ìĽĶ": 100551, + "ĠÎľ": 100552, + "Ġà¸Ħ": 100553, + "¯¸": 100554, + "ارÛĮ": 100555, + "िन": 100556, + "Ġnhững": 100557, + "ĠnhÆ°": 100558, + "иÑĤи": 100559, + "ãĥ³ãĥ": 100560, + "à¹Ģร": 100561, + "ĠÐĽ": 100562, + "ÑĢÑĸ": 100563, + "ád": 100564, + "üy": 100565, + "iye": 100566, + "ĠÎķ": 100567, + "Ġส": 100568, + "Ïĥη": 100569, + "Ġë¬": 100570, + "ï»": 100571, + "ण": 100572, + "ÎĹ": 100573, + "श": 100574, + "ĠÙħØŃ": 100575, + "ÙĦÙĬ": 100576, + "Ġμε": 100577, + "ĠpÅĻÃŃ": 100578, + "ÎĿ": 100579, + "à¥įष": 100580, + "tir": 100581, + "راÙĨ": 100582, + "ĠÄijá»ĭ": 100583, + "ĠкоÑĤ": 100584, + "кÑĢа": 100585, + "λο": 100586, + "ĠÏĦη": 100587, + "Ñīе": 100588, + "ÏĦικ": 100589, + "ัà¹ī": 100590, + "iết": 100591, + "αν": 100592, + "íĶ": 100593, + "киÑħ": 100594, + "ĠпоÑģ": 100595, + "tır": 100596, + "à¥įम": 100597, + "رÙģ": 100598, + "ÄĽl": 100599, + "à¤Ń": 100600, + "ové": 100601, + "Ġlá»": 100602, + "à¹Ħà¸Ķ": 100603, + "ãģªãģĦ": 100604, + "ษ": 100605, + "iá»ĩu": 100606, + "ξ": 100607, + "ĠعÙĦÙī": 100608, + "дÑĥ": 100609, + "Ġdụng": 100610, + "аÑĢа": 100611, + "ाद": 100612, + "ož": 100613, + "ÙĦÙĩ": 100614, + "ÙĦÙħ": 100615, + "ноÑĹ": 100616, + "Û±Û": 100617, + "à¸Ĥà¸Ńà¸ĩ": 100618, + "Ρ": 100619, + "à¥Ģà¤Ĥ": 100620, + "ĠпÑĸд": 100621, + "Ġफ": 100622, + "à¸ĺ": 100623, + "εÏĤ": 100624, + "ास": 100625, + "à¹ĥห": 100626, + "ова": 100627, + "تÛĮ": 100628, + "à¸Ńย": 100629, + "à¸į": 100630, + "ĠnÄĥm": 100631, + "ÏĦι": 100632, + "ÙĪÛĮ": 100633, + "ĠмÑĸ": 100634, + "ĠاÙħ": 100635, + "ÏĢÏĮ": 100636, + "Ġzá": 100637, + "à¤Ī": 100638, + "Ġà¤ĸ": 100639, + "ĠnÄĽ": 100640, + "cÃŃ": 100641, + "ÙĨÚ¯": 100642, + "Ñģи": 100643, + "ζ": 100644, + "ná": 100645, + "Ŀi": 100646, + "Å©": 100647, + "ئ": 100648, + "ĠاÙĦس": 100649, + "á»ijc": 100650, + "ẽ": 100651, + "اج": 100652, + "Ùħا": 100653, + "êµŃ": 100654, + "оÑİ": 100655, + "در": 100656, + "à¹Ģà¸ģ": 100657, + "à¸ł": 100658, + "áng": 100659, + "íķ©": 100660, + "ĠÏĦηÏĤ": 100661, + "ĠÑĸн": 100662, + "оÑĹ": 100663, + "à¥ĩश": 100664, + "à¸ĭ": 100665, + "à¥ĭà¤Ĺ": 100666, + "лÑĸ": 100667, + "ĠpÅĻed": 100668, + "ÄįnÃŃ": 100669, + "Ġка": 100670, + "ĠΤ": 100671, + "á»Ļi": 100672, + "vÃŃ": 100673, + "ÑĢÑı": 100674, + "à¤¾à¤ľ": 100675, + "аÑħ": 100676, + "िर": 100677, + "าส": 100678, + "dır": 100679, + "Ø¢": 100680, + "Îļ": 100681, + "ĠÎŃ": 100682, + "Ġtại": 100683, + "iá»ĩc": 100684, + "iến": 100685, + "Ġغ": 100686, + "اخ": 100687, + "ĠاÙĦØŃ": 100688, + "ĠбÑĥ": 100689, + "Ġvá»ģ": 100690, + "мÑĸ": 100691, + "ÙħÙĦ": 100692, + "mÄ±ÅŁ": 100693, + "à¸Ľà¸£à¸°": 100694, + "οÏį": 100695, + "εί": 100696, + "Ġरह": 100697, + "ним": 100698, + "عد": 100699, + "ĠباÙĦ": 100700, + "¤ij": 100701, + "çł": 100702, + "Ġolm": 100703, + "Ïİν": 100704, + "Ġhá»įc": 100705, + "است": 100706, + "าว": 100707, + "ÙĪب": 100708, + "ÑĸÑı": 100709, + "ĠÙĩاÛĮ": 100710, + "ë§Ī": 100711, + "à¥Į": 100712, + "ĠÄĮ": 100713, + "à¤ı": 100714, + "ادÙĩ": 100715, + "ĠاÙĪ": 100716, + "нÑĭм": 100717, + "ằ": 100718, + "ÙħÙĨ": 100719, + "iá»ĩt": 100720, + "laÅŁ": 100721, + "Ñĸз": 100722, + "ÙĪس": 100723, + "ĠlÃłm": 100724, + "ĠÄijến": 100725, + "पन": 100726, + "ĠÛĮÚ©": 100727, + "ĠÙĦÙĦ": 100728, + "ĠmÄĽ": 100729, + "ĠبراÛĮ": 100730, + "ाह": 100731, + "ĠÙħر": 100732, + "eç": 100733, + "à¸Ńร": 100734, + "εÏģ": 100735, + "ัà¸Ķ": 100736, + "кон": 100737, + "nou": 100738, + "Ġгод": 100739, + "ูà¹ī": 100740, + "à¹Ģล": 100741, + "Úĺ": 100742, + "ĠÄijá»ĭnh": 100743, + "ĠÄijó": 100744, + "анов": 100745, + "ĠÙģر": 100746, + "ارد": 100747, + "ÑĸÑĹ": 100748, + "à¸Ħร": 100749, + "à¥įथ": 100750, + "cak": 100751, + "ÑĨÑĸÑĹ": 100752, + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢ": 100753, + "Ùĩر": 100754, + "à¥ī": 100755, + "Ġgiá»": 100756, + "íĨ": 100757, + "âĢĮÙĩاÛĮ": 100758, + "à¥ģर": 100759, + "Ġà¸ģ": 100760, + "ÅĪ": 100761, + "æ¨": 100762, + "ÎŁÎ": 100763, + "าà¸Ħ": 100764, + "кÑĢаÑĹ": 100765, + "ảo": 100766, + "oÄŁ": 100767, + "Ġसम": 100768, + "Ġviá»ĩc": 100769, + "Ġsẽ": 100770, + "Ġná": 100771, + "ÙĬÙħ": 100772, + "£p": 100773, + "öy": 100774, + "ÙĪز": 100775, + "Ġκα": 100776, + "Ùħد": 100777, + "nÃŃm": 100778, + "ová": 100779, + "ाव": 100780, + "ा।": 100781, + "à¥įस": 100782, + "ç·": 100783, + "ặc": 100784, + "Ġà¸ŀ": 100785, + "ï½Ģ": 100786, + "ôi": 100787, + "Ġợ": 100788, + "οÏĤ": 100789, + "Ġtrên": 100790, + "мÑĥ": 100791, + "ÑģÑĮк": 100792, + "à¸Ł": 100793, + "ovat": 100794, + "Ġmá»": 100795, + "íı": 100796, + "Ġво": 100797, + "εν": 100798, + "à¥Ĥर": 100799, + "گاÙĩ": 100800, + "ĠÄijá»Ļng": 100801, + "Ú©ÙĨ": 100802, + "Ñīи": 100803, + "ĠпÑĢа": 100804, + "ürk": 100805, + "ÙĪع": 100806, + "ấp": 100807, + "ný": 100808, + "Ġquan": 100809, + "ÑĸÑĩ": 100810, + "Ġνα": 100811, + "Ġनह": 100812, + "ĠÚ©ÙĨ": 100813, + "cı": 100814, + "çĿĢ": 100815, + "бо": 100816, + "Ġاس": 100817, + "è»": 100818, + "اÙĨÛĮ": 100819, + "à¸ķร": 100820, + "ÏĦά": 100821, + "ĠØ£ÙĨ": 100822, + "éĤ£": 100823, + "Ġม": 100824, + "кÑĤ": 100825, + "iê": 100826, + "Ġhợp": 100827, + "تÙħ": 100828, + "ĠبÙĨ": 100829, + "hod": 100830, + "ιÏĥ": 100831, + "หà¸Ļ": 100832, + "ĠÑĹ": 100833, + "лив": 100834, + "Ġکرد": 100835, + "ĠÙħØ´": 100836, + "اط": 100837, + "بÙĬ": 100838, + "Ġร": 100839, + "دÙħ": 100840, + "ÙĦاÙħ": 100841, + "à¹Īว": 100842, + "ĠÙĨÙħ": 100843, + "ĠæĹ": 100844, + "éħ": 100845, + "ноÑģÑĤ": 100846, + "iá»ĥm": 100847, + "êµIJ": 100848, + "ayı": 100849, + "ĠبÙĪد": 100850, + "گر": 100851, + "Ġhiá»ĩn": 100852, + "ç³": 100853, + "ÑģÑĤвен": 100854, + "Ġà¤ķरन": 100855, + "ĠÏĦην": 100856, + "Ġà¸Ń": 100857, + "ĠÙħت": 100858, + "ģn": 100859, + "جÙħ": 100860, + "λλ": 100861, + "ĠÑĢе": 100862, + "ิà¸Ķ": 100863, + "ĠاÙĦÙĤ": 100864, + "αÏģ": 100865, + "Ġयह": 100866, + "nÃŃch": 100867, + "ÑĶÑĤÑĮÑģÑı": 100868, + "Ġà¸Ĺ": 100869, + "ÛĮØ´": 100870, + "ÅĻe": 100871, + "Ġnebo": 100872, + "ĠÑĩа": 100873, + "lou": 100874, + "ÑģÑĤво": 100875, + "ĠЧ": 100876, + "à¸Ħว": 100877, + "ÙĩÙħ": 100878, + "à¹Ģà¸Ķ": 100879, + "Ġà¹ģ": 100880, + "Ġà¹Ĥ": 100881, + "Û³": 100882, + "Å©ng": 100883, + "Ġnej": 100884, + "ÛĮÚ©": 100885, + "Ġsá»Ń": 100886, + "Ùģر": 100887, + "Îł": 100888, + "Ġпок": 100889, + "ĠاÙĦÙĨ": 100890, + "ĠvÅ¡": 100891, + "ẫ": 100892, + "ĠnhÃł": 100893, + "ãĢĢãĢĢãĢĢãĢĢãĢĢ": 100894, + "ήÏĤ": 100895, + "οÏģ": 100896, + "ĠÏĩ": 100897, + "à¹Ģà¸Ĺ": 100898, + "ÑĥлÑĮ": 100899, + "ãħĩ": 100900, + "Ġyıl": 100901, + "ÑĢод": 100902, + "ίν": 100903, + "ìĹĪëĭ¤": 100904, + "اص": 100905, + "ĠÄijầu": 100906, + "à¥ĩà¤ķ": 100907, + "ÑĢом": 100908, + "ãģĵãģ¨": 100909, + "Ġار": 100910, + "她": 100911, + "ĠتØŃ": 100912, + "Å¡tÄĽ": 100913, + "à¥įल": 100914, + "à¥įà¤ķ": 100915, + "Ġکار": 100916, + "ujÃŃ": 100917, + "Ġà¤īन": 100918, + "ĠαÏĢÏĮ": 100919, + "ĠmÃł": 100920, + "žÃŃ": 100921, + "Ġà¸Ī": 100922, + "alı": 100923, + "फ": 100924, + "ÑĩеÑģ": 100925, + "ĠعÙĨ": 100926, + "æķĻ": 100927, + "ï¾Ĩ": 100928, + "िà¤Ĥ": 100929, + "Ġsá»±": 100930, + "воÑĢ": 100931, + "Ġthá»±c": 100932, + "ëį°": 100933, + "ãģ¦ãģĦãĤĭ": 100934, + "à¹Īà¸ĩ": 100935, + "تب": 100936, + "Ġnhiá»ģu": 100937, + "ĥn": 100938, + "ĠÄijá»ĵ": 100939, + "Ġห": 100940, + "Ûµ": 100941, + "mÄĽ": 100942, + "ạt": 100943, + "ĠchÃŃnh": 100944, + "μÎŃ": 100945, + "anı": 100946, + "Ġbá»ĭ": 100947, + "ằng": 100948, + "ÅĻed": 100949, + "éŁ": 100950, + "ánh": 100951, + "ÙĢÙĢ": 100952, + "ĠÙħس": 100953, + "á»ĭch": 100954, + "Äĥn": 100955, + "ovánÃŃ": 100956, + "à¹Īาà¸ĩ": 100957, + "Ġà¸Ľ": 100958, + "ĠnÆ°á»Ľc": 100959, + "боÑĤ": 100960, + "ıyor": 100961, + "ĠØ®ÙĪد": 100962, + "Û¹": 100963, + "ĠÙħد": 100964, + "Ġüz": 100965, + "ì½": 100966, + "ÙĪÙĤ": 100967, + "르": 100968, + "лек": 100969, + "Ġcả": 100970, + "олог": 100971, + "à¹īà¸Ńà¸ĩ": 100972, + "miÅŁ": 100973, + "à¹īว": 100974, + "Ä©": 100975, + "Îľ": 100976, + "à¸Ńà¸ģ": 100977, + "__": 100978, + "à¤ĸ": 100979, + "ĠЯ": 100980, + "무": 100981, + "اÛĮÛĮ": 100982, + "ské": 100983, + "uyên": 100984, + "eÅŁ": 100985, + "ái": 100986, + "úng": 100987, + "Ãło": 100988, + "ÑĸÑģ": 100989, + "ç¶": 100990, + "Ġà¤Ĩप": 100991, + "ïº": 100992, + "ÎĽ": 100993, + "Ġê³µ": 100994, + "ĠÐĨ": 100995, + "Ġà¤ħपन": 100996, + "ứng": 100997, + "ÏĮÏĤ": 100998, + "Ġnghiá»ĩ": 100999, + "ĠاÙĦب": 101000, + "à¥ĭन": 101001, + "Ġà¤Ł": 101002, + "Ġìľł": 101003, + "ĠcÅ©ng": 101004, + "Ġà¤īस": 101005, + "Ġड": 101006, + "ĠشدÙĩ": 101007, + "ีà¹ī": 101008, + "Û´": 101009, + "ặt": 101010, + "æĸ¯": 101011, + "Ġëį": 101012, + "Ġпл": 101013, + "би": 101014, + "ê³Ħ": 101015, + "ον": 101016, + "Ġçık": 101017, + "Ġbulun": 101018, + "سÙħ": 101019, + "aç": 101020, + "اÙĨÙĩ": 101021, + "ÛĮز": 101022, + "leÅŁ": 101023, + "ắc": 101024, + "اک": 101025, + "Ġसà¤ķ": 101026, + "ĠоÑĢг": 101027, + "Ġà¸Ļ": 101028, + "ाथ": 101029, + "ĠÙħÙĤ": 101030, + "ĠÎĶE": 101031, + "ÑİÑĤÑĮ": 101032, + "á»Ļc": 101033, + "Ġη": 101034, + "sob": 101035, + "Ġtheo": 101036, + "åŀ": 101037, + "ĠاÙĦØ´": 101038, + "à¹Ģà¸ŀ": 101039, + "ÎŃÏĤ": 101040, + "à¹Ģà¸Ĥ": 101041, + "åĻ": 101042, + "िश": 101043, + "Ġباز": 101044, + "ÑĢоб": 101045, + "Ġγια": 101046, + "με": 101047, + "Ġباش": 101048, + "ाà¤ĩ": 101049, + "Ġquy": 101050, + "λε": 101051, + "اÙĥ": 101052, + "ĠÑĢок": 101053, + "ĠTürk": 101054, + "ĠÐ¥": 101055, + "ÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁ": 101056, + "æ©": 101057, + "Ġphải": 101058, + "à¸Ħวาม": 101059, + ":::": 101060, + "lÃŃ": 101061, + "Ġjsou": 101062, + "ÛĮÙĦ": 101063, + "álnÃŃ": 101064, + "ĶĶ": 101065, + "íĸī": 101066, + "æĥ³": 101067, + "lá": 101068, + "ĠÏĥÏħ": 101069, + "Ñĭва": 101070, + "Ġnhất": 101071, + "à¸Ńม": 101072, + "Û¸": 101073, + "ecek": 101074, + "ÑĸÑĢ": 101075, + "ÙĪØ´": 101076, + "λα": 101077, + "ĠÎĴ": 101078, + "оÑĢа": 101079, + "Ùģت": 101080, + "edir": 101081, + "ÑĥÑħ": 101082, + "ä¸ĸ": 101083, + "ĠУкÑĢаÑĹ": 101084, + "ĠíĶ": 101085, + "άν": 101086, + "Ġشر": 101087, + "ĠاÙĦج": 101088, + "еÑĢед": 101089, + "ìĺģ": 101090, + "ĠhÃłnh": 101091, + " ̄ ̄": 101092, + "ме": 101093, + "ÑİÑĤÑģÑı": 101094, + "ĠØ¥ÙĦÙī": 101095, + "ìĹħ": 101096, + "Ġتر": 101097, + "ком": 101098, + "Ġشد": 101099, + "ĠاÙĦÙĥ": 101100, + "ĠÏĥÏĦο": 101101, + "à¥įद": 101102, + "볤": 101103, + "ÑĥваннÑı": 101104, + "Ġthì": 101105, + "ê´Ģ": 101106, + "κε": 101107, + "سب": 101108, + "íĥĢ": 101109, + "Ġï¼ı": 101110, + "Ġà¹ģละ": 101111, + "ĠÏĮ": 101112, + "ниÑĨ": 101113, + "ĠÐĿа": 101114, + "Ñıв": 101115, + "lü": 101116, + "ιο": 101117, + "ÙĨدÙĩ": 101118, + "ÙĦÙĥ": 101119, + "ĠngÃły": 101120, + "Ġnhân": 101121, + "Ġ^{": 101122, + "à¥ĥ": 101123, + "Ġgerek": 101124, + "ارÙĩ": 101125, + "ĠcÆ¡": 101126, + "Ġà¸ķ": 101127, + "æĤ": 101128, + "çĶ°": 101129, + "à¥Īà¤Ĥ।": 101130, + "ัว": 101131, + "vÄĽ": 101132, + "öz": 101133, + "или": 101134, + "Ġpháp": 101135, + "ê¸Ī": 101136, + "ĠÎŁ": 101137, + "ĠpÅĻi": 101138, + "Ġìĸ´": 101139, + "Ġдол": 101140, + "ÙĪرد": 101141, + "à¹Ģม": 101142, + "Ïĥε": 101143, + "าà¸Ĺ": 101144, + "oÃłi": 101145, + "รม": 101146, + "Û¶": 101147, + "Ġà¸ļ": 101148, + "iyet": 101149, + "ÏĦαι": 101150, + "ìĦł": 101151, + "ĠεÏĢ": 101152, + "िव": 101153, + "ê¹Į": 101154, + "га": 101155, + "ĠÑģлÑĥ": 101156, + "Ġhình": 101157, + "ĠداÙĨ": 101158, + "Ġà¤Ĺय": 101159, + "ÙĬا": 101160, + "èij": 101161, + "à¤Ĥत": 101162, + "ĠساÙĦ": 101163, + "ëłĪ": 101164, + "lerin": 101165, + "à¥ĩत": 101166, + ".:.:.:.:": 101167, + "Ġëħ": 101168, + "ĠاÙĦØ¥": 101169, + "ảng": 101170, + "èĦ": 101171, + "ολ": 101172, + "пов": 101173, + "Ġθ": 101174, + "Û·": 101175, + "Ġnó": 101176, + "ĠdÃ¼ÅŁ": 101177, + "Ġtiế": 101178, + "ÙĪج": 101179, + "Ġjsem": 101180, + "ạng": 101181, + "ãģĤãĤĭ": 101182, + "à¸Ńà¸ļ": 101183, + "ÙĪÙĬ": 101184, + "à¤ķर": 101185, + "Ġде": 101186, + "¯¼": 101187, + "Ġно": 101188, + "ÑĨÑĸй": 101189, + "ÏĥÏĦ": 101190, + "кие": 101191, + "Ïĥει": 101192, + "ìķĪ": 101193, + "ĠhÆ¡n": 101194, + "Ġà¤ķह": 101195, + "اض": 101196, + "ì¸": 101197, + "ãĥŁ": 101198, + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 101199, + "ãĤĪãģĨ": 101200, + "ा,": 101201, + "еÑĢи": 101202, + "ë©°": 101203, + "íĶĦ": 101204, + "ĠпоÑģÑĤ": 101205, + "خر": 101206, + "à¥ĭत": 101207, + "âu": 101208, + "кой": 101209, + "daki": 101210, + "íħ": 101211, + "::::::::::::::::": 101212, + "Ġöz": 101213, + "ÑĢаж": 101214, + "nÃŃho": 101215, + "หล": 101216, + "ĠÏĥÏĦη": 101217, + "ĠÄijá»ģ": 101218, + "Ġká»": 101219, + "iá»ĥn": 101220, + "ÅĻi": 101221, + "Ġkteré": 101222, + "¢ħ": 101223, + "üç": 101224, + "ÙĬÙģ": 101225, + "Ġlý": 101226, + "Ġthá»Ŀi": 101227, + "ĠìĨĮ": 101228, + "нÑĮ": 101229, + "ÐĨ": 101230, + "ÑĤÑĢ": 101231, + "à¸ĩาà¸Ļ": 101232, + "коÑĹ": 101233, + "μο": 101234, + "Ġsür": 101235, + "uyá»ģn": 101236, + "ĠÙħا": 101237, + "à¤Ĥà¤Ĺ": 101238, + "ĠÄijá»ĵng": 101239, + "òn": 101240, + "à¥ģल": 101241, + "à¥įप": 101242, + "λη": 101243, + "Ùħر": 101244, + "пÑĢи": 101245, + "iyle": 101246, + "ाप": 101247, + "Ġà¤ħन": 101248, + "ĠÑĶ": 101249, + "Ġyön": 101250, + "ÙĦÙģ": 101251, + "adır": 101252, + "á½": 101253, + "Ġê³ł": 101254, + "خص": 101255, + "imiz": 101256, + "åľĭ": 101257, + "Ġнад": 101258, + "ĠÅĻ": 101259, + "ноÑģÑĤÑĸ": 101260, + "ĠاÙģ": 101261, + "анÑĸ": 101262, + "à¥ĩà¤Ł": 101263, + "Ġë§IJ": 101264, + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 101265, + "ĠìĬ¤": 101266, + "ิà¸ķ": 101267, + "åĦ": 101268, + "ÛĮÙĩ": 101269, + "оÑĪ": 101270, + "žit": 101271, + "ìĭ¤": 101272, + "à¥Ģन": 101273, + "Ġî": 101274, + "æ¥Ń": 101275, + "à¥ĩन": 101276, + "ĠØ°": 101277, + "Ġloại": 101278, + "à¹Ħà¸Ľ": 101279, + "Ñĸк": 101280, + "ĠкÑĢа": 101281, + "à¥ĭर": 101282, + "ุà¸Ķ": 101283, + "ĠاÙĦر": 101284, + "ĠÑģоб": 101285, + "าà¸Ĭ": 101286, + "Ġसà¤ķत": 101287, + "ĠÎĿ": 101288, + "اÙħÙĩ": 101289, + "à¹īาà¸Ļ": 101290, + "Ġtrình": 101291, + "ĠاÙĦÙģ": 101292, + "ĠاÙĦد": 101293, + "unun": 101294, + "оÑĤов": 101295, + "Æ°á»Ł": 101296, + "ĠÑģво": 101297, + "ίαÏĤ": 101298, + "ấn": 101299, + "огда": 101300, + "à¸Ĺย": 101301, + "Ġbyl": 101302, + "ØŃد": 101303, + "à¸ģล": 101304, + "بÙĩ": 101305, + "ĠvÄĽ": 101306, + "被": 101307, + "ĠØ¢Ùħ": 101308, + "ĠÄijiá»ģu": 101309, + "å¨": 101310, + "Ġkdy": 101311, + "ĠبÙĪ": 101312, + "ẫn": 101313, + "ìľł": 101314, + "ाà¤ķ": 101315, + "ků": 101316, + "ĠtrÆ°á»Ŀng": 101317, + "ické": 101318, + "ниÑı": 101319, + "ĠÏĢοÏħ": 101320, + "Æ°á»Łng": 101321, + "номÑĥ": 101322, + "à¹Īà¸Ļ": 101323, + "ูà¹Ī": 101324, + "Ġkết": 101325, + "Ġï¼¼": 101326, + "Ġìĭł": 101327, + "iç": 101328, + "ĠnÄĥng": 101329, + "ÄįÃŃ": 101330, + "ÑĤÑı": 101331, + "ÑĢеб": 101332, + "Ùĭا": 101333, + "Ú¯ÛĮ": 101334, + "ãĥİ": 101335, + "ĠkarÅŁ": 101336, + "вÑĸ": 101337, + "Ġphần": 101338, + "à¸Īะ": 101339, + "ắt": 101340, + "رة": 101341, + "ิà¸ĩ": 101342, + "ิà¹Ī": 101343, + "ाà¤Ī": 101344, + "าà¸ŀ": 101345, + "ÙĨÛĮ": 101346, + "ìĹ°": 101347, + "bÄĽ": 101348, + "ĠاÙĦص": 101349, + "íĹ": 101350, + "Ġسر": 101351, + "lara": 101352, + "ëĭ¨": 101353, + "ĠÙĤر": 101354, + "èİ": 101355, + "بد": 101356, + "Ġйого": 101357, + "à¥įह": 101358, + "Ġcách": 101359, + "íķĺê³ł": 101360, + "ĠÏĢÏģο": 101361, + "Ġتع": 101362, + "ĴĪ": 101363, + "Ġвод": 101364, + "ç¥ŀ": 101365, + "ким": 101366, + "Ġdá»±": 101367, + "à¹Ģห": 101368, + "ана": 101369, + "Ġï½": 101370, + "ĠbaÄŁ": 101371, + "Ġपह": 101372, + "Ġcao": 101373, + "ÏģÏĮ": 101374, + "ÙĨج": 101375, + "ाà¤ı": 101376, + "Ġå¹´": 101377, + "Ġnghiá»ĩp": 101378, + "Û²Û°": 101379, + "каÑı": 101380, + "Ïģί": 101381, + "Ġбол": 101382, + "Ġgiá": 101383, + "Ġзд": 101384, + "à¥ĩल": 101385, + "Ġcấp": 101386, + "à¹Ģส": 101387, + "Ïģγ": 101388, + "ĠìĤ": 101389, + "dÄĽ": 101390, + "à¥ģन": 101391, + "ìĪ": 101392, + "ılan": 101393, + "лаÑģ": 101394, + "Ġว": 101395, + "ĠÏĥε": 101396, + "ĠØ«": 101397, + "ĠЦ": 101398, + "çĤº": 101399, + "Ġbüy": 101400, + "еÑĨ": 101401, + "太": 101402, + "Ġबन": 101403, + "огÑĢа": 101404, + "ĠпÑĢоÑĤ": 101405, + "Ġlượng": 101406, + "Ġdön": 101407, + "รà¸ĩ": 101408, + "ало": 101409, + "ĠجÙħ": 101410, + "à¥Ī,": 101411, + "Ġ미": 101412, + "Ġê¹": 101413, + "ÙĪت": 101414, + "à¥Ģय": 101415, + "à¸Īาà¸ģ": 101416, + "Ġchất": 101417, + "Ω": 101418, + "Ġkhác": 101419, + "Ġtháng": 101420, + "jÅ¡ÃŃ": 101421, + "ĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂł": 101422, + "á»ijt": 101423, + "หร": 101424, + "Ñĸл": 101425, + "åħī": 101426, + "åĤ": 101427, + "ÙĦØ©": 101428, + "Ġê±°": 101429, + "овоÑĢ": 101430, + "iá»ĥu": 101431, + "ĠмеÑĤ": 101432, + "аÑĶ": 101433, + "ĠÑĩаÑģ": 101434, + "Ïģε": 101435, + "ì¹´": 101436, + "âĢĮØ´": 101437, + "물": 101438, + "úc": 101439, + "âĢĮÙĩا": 101440, + "iá»ģn": 101441, + "stav": 101442, + "íŀ": 101443, + "ĠÙĨظ": 101444, + "ĨĴ": 101445, + "ĠÏĦα": 101446, + "Ġзаб": 101447, + "ÙĥØ©": 101448, + "ĠгÑĢÑĥ": 101449, + "во": 101450, + "ĠÙħج": 101451, + "Ġsah": 101452, + "بÙĦ": 101453, + "عة": 101454, + "ÑĥÑĪ": 101455, + "ĠÑĤем": 101456, + "íĭ": 101457, + "eck": 101458, + "ÏīÏĤ": 101459, + "ÙĬت": 101460, + "ìĹĪ": 101461, + "çĭ": 101462, + "ذا": 101463, + "ìłĢ": 101464, + "ĠнаÑģ": 101465, + "ĠпоÑĩ": 101466, + "æł¡": 101467, + "ÏĪ": 101468, + "Ñģкой": 101469, + "üc": 101470, + "ÙĤÙĦ": 101471, + "Ġпоз": 101472, + "ĠоÑģоб": 101473, + "าล": 101474, + "нÑĭми": 101475, + "олод": 101476, + "è¼": 101477, + "ĠدÛĮ": 101478, + "ĠÑĥÑģÑĤ": 101479, + "Ġ무": 101480, + "ÙĬس": 101481, + "ë°©": 101482, + "à¥įà¤ļ": 101483, + "ила": 101484, + "Ġnên": 101485, + "ние": 101486, + "ιν": 101487, + "larını": 101488, + "à¹Ģà¸Ļ": 101489, + "ÙĨت": 101490, + "aģı": 101491, + "ımız": 101492, + "ĠاÙĦØ®": 101493, + "à¹Ģว": 101494, + "à¥įन": 101495, + "ĠÏħ": 101496, + "ĠíĨ": 101497, + "ẻ": 101498, + "ิà¹Ĥ": 101499, + "αÏĤ": 101500, + "меÑĤ": 101501, + "Ġzp": 101502, + "Ġjeho": 101503, + "ียà¸Ļ": 101504, + "ÑĦоÑĢ": 101505, + "ınız": 101506, + "klad": 101507, + "íĮĮ": 101508, + "uyá»ĩ": 101509, + "ιά": 101510, + "ĠãĢģ": 101511, + "شر": 101512, + "æ©Ł": 101513, + "Ġتا": 101514, + "Ġзна": 101515, + "ستاÙĨ": 101516, + "à¥ĩर": 101517, + "매": 101518, + "çĥ": 101519, + "Ġже": 101520, + "าà¸Ķ": 101521, + "Ġض": 101522, + "éŃ": 101523, + "Ġназ": 101524, + "ĠÛĮا": 101525, + "ené": 101526, + "ัย": 101527, + "íĸĪëĭ¤": 101528, + "Ġبد": 101529, + "à¥ģà¤ķ": 101530, + "ÑĤов": 101531, + "ì°¨": 101532, + "Ùĩد": 101533, + "à¸Ķย": 101534, + "Ġhoặc": 101535, + "ĠÐŁÑĢи": 101536, + "ÙĨا": 101537, + "çİĭ": 101538, + "ÑĥваÑĤи": 101539, + "à¸ļร": 101540, + "Ġà¤ķरत": 101541, + "ÏĥηÏĤ": 101542, + "ؤ": 101543, + "éķ·": 101544, + "åħĭ": 101545, + "Ġدار": 101546, + "ัà¹Ī": 101547, + "Æ¡i": 101548, + "าà¸Ī": 101549, + "ými": 101550, + "ấu": 101551, + "Ġدست": 101552, + "kem": 101553, + "ĠоÑģнов": 101554, + "모": 101555, + "Ïģά": 101556, + "æħ": 101557, + "Ġاب": 101558, + "士": 101559, + "Ħĸ": 101560, + "ÎĶ": 101561, + "ÙĬÙĥ": 101562, + "íİ": 101563, + "Ġyüz": 101564, + "adı": 101565, + "าà¸ķ": 101566, + "ä»Ģ": 101567, + "ìĿ´ëĭ¤": 101568, + "Ġzv": 101569, + "ĠtÄĽ": 101570, + "Ġíĸ": 101571, + "थ": 101572, + "Ġलà¤Ĺ": 101573, + "ìĺĢ": 101574, + "Ġан": 101575, + "çĹ": 101576, + "ìĹŃ": 101577, + "нÑĸÑģÑĤÑĮ": 101578, + "Åŀ": 101579, + "Ġphát": 101580, + "ÙĤØ©": 101581, + "Ġthế": 101582, + "Ġï¾": 101583, + "ì²ľ": 101584, + "ĠìĦł": 101585, + "à¹ĥà¸Ĭ": 101586, + "iêu": 101587, + "ÄŁini": 101588, + "ÙĤد": 101589, + "Ġkterý": 101590, + "Ñģкий": 101591, + "à¥įड": 101592, + "tadır": 101593, + "ĠÑģм": 101594, + "ÙĪÙģ": 101595, + "ارÙĬ": 101596, + "å¾·": 101597, + "ิม": 101598, + "خت": 101599, + "å¾Ī": 101600, + "ĠгоÑĢ": 101601, + "ï¼ĮæĪij": 101602, + "Ġìĺģ": 101603, + "ĠëıĻ": 101604, + "Ñģа": 101605, + "à¹Ģà¸Ħ": 101606, + "민": 101607, + "ึà¹Ī": 101608, + "Ġliên": 101609, + "ĠÙĩا": 101610, + "lerini": 101611, + "ĠÑĨе": 101612, + "اÙĦÛĮ": 101613, + "Ġमह": 101614, + "Ġvụ": 101615, + "Ġxuất": 101616, + "ิà¸ģ": 101617, + "ĠпÑĢоÑĨ": 101618, + "Ġαν": 101619, + "ÑĢим": 101620, + "Ġcần": 101621, + "ĠиÑħ": 101622, + "ноÑİ": 101623, + "ĠtÃŃnh": 101624, + "Ġbá»Ļ": 101625, + "Ñĸм": 101626, + "ĠnháºŃn": 101627, + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 101628, + "ÙĬÙĩ": 101629, + "äºļ": 101630, + "Ġобла": 101631, + "Ġà¤ĺ": 101632, + "ných": 101633, + "æĿij": 101634, + "ÙĦس": 101635, + "Ġнеоб": 101636, + "ابة": 101637, + "vá": 101638, + "οÏħν": 101639, + "ÑĢеÑĤ": 101640, + "asında": 101641, + "Ġyar": 101642, + "ĠÄijiá»ĥm": 101643, + "нÑİ": 101644, + "ाà¤Ĺ": 101645, + "ĠÚ©Ø´": 101646, + "Ñĥз": 101647, + "Ġà¸Ķ": 101648, + "ảm": 101649, + "ками": 101650, + "ĠÎĻ": 101651, + "à¹Ģà¸ķ": 101652, + "ĠlỼ": 101653, + "ÙĤÛĮ": 101654, + "kou": 101655, + "ÙĦب": 101656, + "ива": 101657, + "æĵ": 101658, + "ẹ": 101659, + "κα": 101660, + "ë²ķ": 101661, + "èĤ²": 101662, + "á»ijn": 101663, + "Ġbelir": 101664, + "íĨł": 101665, + "ÏĦή": 101666, + "ÑĭÑĪ": 101667, + "ãĤĥ": 101668, + "Ġабо": 101669, + "ský": 101670, + "à¥Īस": 101671, + "ĠпÑĢоÑģÑĤ": 101672, + "ektedir": 101673, + "až": 101674, + "à¹Īà¸Ń": 101675, + "ĠоÑģÑĤ": 101676, + "Ġbảo": 101677, + "Ġ大": 101678, + "Ñĭм": 101679, + "Ġmů": 101680, + "Æ°á»Ľng": 101681, + "åıĹ": 101682, + "ÙĪÙĩ": 101683, + "ĠÑĥп": 101684, + "ÙĥÙĨ": 101685, + "ĠÏĦÏīν": 101686, + "ëħ¸": 101687, + "Ġà¸Ĭ": 101688, + "ĠÑĤого": 101689, + "ĠШ": 101690, + "ìĿ´íĬ¸": 101691, + "à¹Ģà¸Ń": 101692, + "инÑĥ": 101693, + "ĺħ": 101694, + "uyá»ĥn": 101695, + "íĴĪ": 101696, + "ạnh": 101697, + "Ġãĥ½": 101698, + "ÑĤобÑĭ": 101699, + "Ġtạo": 101700, + "å·Ŀ": 101701, + "ĠÄijá»iji": 101702, + "ĠëıĦ": 101703, + "ä¹ħ": 101704, + "ĠتÙħ": 101705, + "аÑĢи": 101706, + "stvÃŃ": 101707, + "Ġcùng": 101708, + "íŀĪ": 101709, + "Ġtarih": 101710, + "ì¤ij": 101711, + "íĤ": 101712, + "ĠدÙĪ": 101713, + "ì¡": 101714, + "алÑĸ": 101715, + "à¸IJ": 101716, + "Ġcòn": 101717, + "иÑĤÑĮÑģÑı": 101718, + "Ġवह": 101719, + "ÅĻeb": 101720, + "鼻": 101721, + "Ġми": 101722, + "ovÄĽ": 101723, + "Ġdân": 101724, + "ÑĨÑĸÑı": 101725, + "ÛĮست": 101726, + "åѸ": 101727, + "Ġür": 101728, + "صÙĦ": 101729, + "ÑĢиÑĤ": 101730, + "าห": 101731, + "ãģ¦ãģĦãģŁ": 101732, + "θη": 101733, + "çĸ": 101734, + "ØŁ": 101735, + "iÅŁtir": 101736, + "ĠУкÑĢаÑĹни": 101737, + "ë°ĺ": 101738, + "à¥ĩà¤ĸ": 101739, + "Ġvá»ĭ": 101740, + "Î¥": 101741, + "ĠãĢĢĠãĢĢĠãĢĢ": 101742, + "Ġbằng": 101743, + "Ġtá»ķ": 101744, + "оли": 101745, + "à¹Ĩ": 101746, + "ezi": 101747, + "Ġни": 101748, + "ĠÎĽ": 101749, + "Ġrất": 101750, + "μÏĢ": 101751, + "жд": 101752, + "ारत": 101753, + "Ġuž": 101754, + "à¥ĩस": 101755, + "اÙĨد": 101756, + "Ġbý": 101757, + "à¥ĭल": 101758, + "dÄĽl": 101759, + "ìķĺ": 101760, + "Ġجد": 101761, + "å³": 101762, + "ืà¹ī": 101763, + "Ġbản": 101764, + "ạch": 101765, + "ĠÅŁey": 101766, + "ĠÙĩر": 101767, + "Ġjen": 101768, + "ĠвÑĸн": 101769, + "esinde": 101770, + "Ġहम": 101771, + "çłĶ": 101772, + "à¸ļà¸ļ": 101773, + "Ġchức": 101774, + "ึà¸ĩ": 101775, + "malar": 101776, + "ĠdeÄŁil": 101777, + "æĿ±": 101778, + "Ġtác": 101779, + "ĠkiÅŁ": 101780, + "Ġtá»±": 101781, + "à¥įध": 101782, + "à¸Ļà¸Ĺ": 101783, + "ÎŁÎ¥": 101784, + "ÑģÑĮкого": 101785, + "Ġध": 101786, + "ĠìĿĺ": 101787, + "ÙĨØ©": 101788, + "üs": 101789, + "è«": 101790, + "Ġtarafından": 101791, + "ħn": 101792, + "Ġkinh": 101793, + "Ïĥι": 101794, + "à¥Ģà¤ķ": 101795, + "íı¬": 101796, + "اÙħÙĦ": 101797, + "ĠViá»ĩt": 101798, + "ĠÏĦον": 101799, + "ĠتÙĨ": 101800, + "Ġà¤ħध": 101801, + "à¹Īาà¸Ļ": 101802, + "rı": 101803, + "à¤Ĥद": 101804, + "éª": 101805, + "Ġchúng": 101806, + "ги": 101807, + "ÏĦαν": 101808, + "Ġдоп": 101809, + "нÑĸй": 101810, + "оналÑĮ": 101811, + "Îĵ": 101812, + "Ġbüyük": 101813, + "á¼": 101814, + "à¥Ģर": 101815, + "Ø°Ùĩ": 101816, + "ĠìķĦìĿ´": 101817, + "Ġdoanh": 101818, + "ĠÅĻÃŃ": 101819, + "ÑĨÑı": 101820, + "ĠtÆ°": 101821, + "Ġसर": 101822, + "ĠmÃŃst": 101823, + "Ġë°ı": 101824, + "Ø´ÙĨ": 101825, + "Ñĸб": 101826, + "ĠãĢĢãĢĢ": 101827, + "çĻ½": 101828, + "оÑģп": 101829, + "кÑĸв": 101830, + "Ġtế": 101831, + "ãģŃ": 101832, + "ĠtỼi": 101833, + "Ġìļ°": 101834, + "æľĥ": 101835, + "اÛĮد": 101836, + "æ§": 101837, + "ìłIJ": 101838, + "Ġdurum": 101839, + "à¹Ģà¸Ĭ": 101840, + "à¥Ģत": 101841, + "ĠÙĩÙĪ": 101842, + "à¥Ĥप": 101843, + "Ġgöre": 101844, + "ĠÑĢоб": 101845, + "Ġthiết": 101846, + "ajÃŃ": 101847, + "ĠاÛĮراÙĨ": 101848, + "âĢı": 101849, + "ÑģÑĮкоÑĹ": 101850, + "çħ": 101851, + "ĠìĦ¸": 101852, + "ừ": 101853, + "Ġà¸Ĥ": 101854, + "ům": 101855, + "ëŀĮ": 101856, + "ική": 101857, + "Ġмог": 101858, + "ÙĨÙĬ": 101859, + "ãģļ": 101860, + "ाब": 101861, + "æ¢": 101862, + "عÙĩ": 101863, + "ÑĶм": 101864, + "Ġά": 101865, + "οÏħÏĤ": 101866, + "زار": 101867, + "ê±´": 101868, + "ská": 101869, + "ĠاÙĬ": 101870, + "Ġilg": 101871, + "Ġsı": 101872, + "eleri": 101873, + "ĠÎĹ": 101874, + "uyor": 101875, + "ष": 101876, + "िम": 101877, + "ева": 101878, + "ä»Ģä¹Ī": 101879, + "ุà¹Ī": 101880, + "à¹īาà¸ĩ": 101881, + "Ġhiá»ĩu": 101882, + "Ġاع": 101883, + "Ġözel": 101884, + "νη": 101885, + "ëĦ¤": 101886, + "ĠtoÃłn": 101887, + "Ġmoh": 101888, + "ĠÑıкÑĸ": 101889, + "çĬ": 101890, + "maktadır": 101891, + "تاب": 101892, + "ĠÑģÑĥ": 101893, + "Ġyük": 101894, + "ĠΧ": 101895, + "зна": 101896, + "оÑħ": 101897, + "Æ°u": 101898, + "à¸Ĺร": 101899, + "ãħĭ": 101900, + "ĠkarÅŁÄ±": 101901, + "ÙħÛĮ": 101902, + "ĠÑĨÑĸ": 101903, + "ادÛĮ": 101904, + "à¥Ģ।": 101905, + "Ïģη": 101906, + "лов": 101907, + "夫": 101908, + "Ġphân": 101909, + "Ġпоп": 101910, + "ç·ļ": 101911, + "Ñıн": 101912, + "ุà¸ĵ": 101913, + "ÑģÑĤÑĥп": 101914, + "ίναι": 101915, + "ĠÑĢокÑĥ": 101916, + "larda": 101917, + "è»Ĭ": 101918, + "ÏģÏī": 101919, + "ÙĪاÙĩ": 101920, + "èħ": 101921, + "à¥įरत": 101922, + "å·±": 101923, + "ĠÑĢÑĥ": 101924, + "Ġthá»ĭ": 101925, + "ĠÄijiá»ĩn": 101926, + "ìĸij": 101927, + "ného": 101928, + "สม": 101929, + "ê°ģ": 101930, + "acÃŃ": 101931, + "Ġгода": 101932, + "kaz": 101933, + "Ġböl": 101934, + "Ġgian": 101935, + "à¸Ľà¸£": 101936, + "ï¾ŀ": 101937, + "ัà¸ķ": 101938, + "Ġgerç": 101939, + "Ġاج": 101940, + "Ġή": 101941, + "ÙijÙİ": 101942, + "Ñģкого": 101943, + "ÑĢаÑħ": 101944, + "ĠÅł": 101945, + "Ġà¤Ľ": 101946, + "оÑģÑĤÑĸ": 101947, + "본": 101948, + "ÑģÑĮкий": 101949, + "Û±Û¹": 101950, + "Ñĥва": 101951, + "اÙĦÙħ": 101952, + "ĠÙħص": 101953, + "ëįĺ": 101954, + "bÃŃ": 101955, + "ĠÙĪج": 101956, + "ÏĦÏĮ": 101957, + "ebilir": 101958, + "Ġtiếp": 101959, + "é¤": 101960, + "Ġä¸Ģ": 101961, + "ĠÑģÑĢед": 101962, + "ëĤ¨": 101963, + "εÏģι": 101964, + "اث": 101965, + "Ñģов": 101966, + "Ïĩε": 101967, + "Ġë¶Ħ": 101968, + "Ġtaké": 101969, + "Ġdüz": 101970, + "Ġíıī": 101971, + "Ġاص": 101972, + "ĠÏĥÏĦην": 101973, + "ë°Ķ": 101974, + "Ġhá»Ļi": 101975, + "رÙĩ": 101976, + "بÛĮ": 101977, + "ве": 101978, + "ĠاÙĦØ·": 101979, + "ĠÑĢез": 101980, + "بار": 101981, + "Ġgiải": 101982, + "ãģ«ãģª": 101983, + "oleÄį": 101984, + "à¤ł": 101985, + ";:": 101986, + "ä½ı": 101987, + "Ú©Ùĩ": 101988, + "ĠΦ": 101989, + "ĠÑĥÑĩ": 101990, + "âĹıâĹı": 101991, + "ูà¸ģ": 101992, + "à¥ĩव": 101993, + "Ïĥα": 101994, + "ĠاÙĨت": 101995, + "Ġвп": 101996, + "Ġquả": 101997, + "enin": 101998, + "ĠêµIJ": 101999, + "μά": 102000, + "کت": 102001, + "ÙĤÙĩ": 102002, + "ĠTürkiye": 102003, + "Ġthức": 102004, + "íĹĺ": 102005, + "iá»ĩm": 102006, + "Ġतà¤ķ": 102007, + "Ġéĩ": 102008, + "़ा": 102009, + "ĠØ£ÙĪ": 102010, + "ále": 102011, + "究": 102012, + "ĠÅŁekil": 102013, + "кого": 102014, + "ÑĪиÑħ": 102015, + "اÛĮØ´": 102016, + "تÙĨ": 102017, + "ней": 102018, + "à¸Ĺำ": 102019, + "ĠÑıв": 102020, + "رÙħ": 102021, + "Ġmáy": 102022, + "หม": 102023, + "ıyla": 102024, + "Ġcầu": 102025, + "Ġдоб": 102026, + "Ġìŀ¥": 102027, + "ový": 102028, + "ικÏĮ": 102029, + "Ġãħĩ": 102030, + "ĠÑĤеÑĢ": 102031, + "ĮĴ": 102032, + "سÙĬ": 102033, + "ĠoluÅŁ": 102034, + "Ġbyla": 102035, + "عÙĦ": 102036, + "ĠÙĥاÙĨ": 102037, + "боÑĢ": 102038, + "ì²Ń": 102039, + "ãĥı": 102040, + "ubl": 102041, + "Ġاخ": 102042, + "ÙĦÙĪد": 102043, + "تÙĬ": 102044, + "ladı": 102045, + "ĠÃ¶ÄŁ": 102046, + "ruh": 102047, + "ç¿": 102048, + "Ġبعد": 102049, + "ÎĻÎij": 102050, + "idir": 102051, + "ãģ«ãģ¯": 102052, + "Ġsöy": 102053, + "Ġkhách": 102054, + "ÑĨе": 102055, + "ĠØ´ÙĪد": 102056, + "ç¸": 102057, + "Ġëħ¸": 102058, + "úp": 102059, + "Ġneden": 102060, + "Ġhóa": 102061, + "Ġà¤īप": 102062, + "ÏĥειÏĤ": 102063, + "æĪ¿": 102064, + "Ġ³³": 102065, + "ĠìķĮ": 102066, + "à¥Ģ,": 102067, + "´ij": 102068, + "êu": 102069, + "ÑĢок": 102070, + "à¹Ģà¸Ī": 102071, + "Ġείναι": 102072, + "ĠبÙĦ": 102073, + "ĠÑģов": 102074, + "Ġönem": 102075, + "Ġà¸ĭ": 102076, + "ì§Ģë§Į": 102077, + "å®ĺ": 102078, + "격": 102079, + "ìĦĿ": 102080, + "Ġaž": 102081, + "Ġduy": 102082, + "ãģ¨ãģĦ": 102083, + "ØĽ": 102084, + "δο": 102085, + "θε": 102086, + "ÙĥاÙĨ": 102087, + "ढ": 102088, + "ाà¤ĵ": 102089, + "Ġdá»ĭch": 102090, + "á»Ļng": 102091, + "สำ": 102092, + "Äı": 102093, + "ĠÑĹÑħ": 102094, + "αλ": 102095, + "eÄį": 102096, + "ç²¾": 102097, + "Ġзв": 102098, + "èĩªå·±": 102099, + "ĠاÙĦÙĦÙĩ": 102100, + "ĠСÑĤ": 102101, + "ĠسÙĨÚ¯": 102102, + "Ġдом": 102103, + "гоÑĤов": 102104, + "повÑĸд": 102105, + "ĠBá»Ļ": 102106, + "à¥įयà¤ķ": 102107, + "طة": 102108, + "мов": 102109, + "à¸Ĺาà¸ĩ": 102110, + "ึà¸ģ": 102111, + "ĠÑĸз": 102112, + "à¥ĭà¤ľ": 102113, + "Ġgöster": 102114, + "Ġباشد": 102115, + "ileri": 102116, + "ĠÑģеб": 102117, + "Ñīо": 102118, + "Ġãħĩãħĩ": 102119, + "بت": 102120, + "Ñģе": 102121, + "à¥ĩà¤ľ": 102122, + "Ġlên": 102123, + "ĠتÙĪ": 102124, + "ÑĸÑģÑĤÑĮ": 102125, + "ï¾Ĩï¾Ĩ": 102126, + "ĠthÆ°á»Ŀng": 102127, + "ĠolduÄŁu": 102128, + "vÄĽt": 102129, + "ìĨį": 102130, + "ãģĿãģĨ": 102131, + "ĠìĦ±": 102132, + "ë°ľ": 102133, + "Ġà¸ģาร": 102134, + "ĠØ´Ùĩر": 102135, + "sled": 102136, + "ảnh": 102137, + "æŀĹ": 102138, + "lacak": 102139, + "Ġmình": 102140, + "Ú©ÛĮ": 102141, + "Ġà¹ĥà¸Ļ": 102142, + "Ġdùng": 102143, + "ĠмаÑģ": 102144, + "ÑĦек": 102145, + "æ°Ķ": 102146, + "é§": 102147, + "ĠاØŃ": 102148, + "èµ°": 102149, + "ÎĻÎļ": 102150, + "à¥ĩ।": 102151, + "ÑģÑĮка": 102152, + "ĠÑĩаÑģÑĤ": 102153, + "larının": 102154, + "Ġê¹Ģ": 102155, + "층": 102156, + "ними": 102157, + "èªŀ": 102158, + "åĢĭ": 102159, + "ĠêµŃ": 102160, + "коÑĢ": 102161, + "maya": 102162, + "ิà¹Ĥà¸Ļ": 102163, + ".ศ": 102164, + "Ġhá»ĩ": 102165, + "ĠتÙĤ": 102166, + "γκ": 102167, + "Ġà¤Ĩपà¤ķ": 102168, + "ÑģÑĤоÑĢ": 102169, + "ĠÄijo": 102170, + "Ġchủ": 102171, + "اÛĮت": 102172, + "ĠQuá»ijc": 102173, + "глÑı": 102174, + "ãĢĤãĢįĊĊ": 102175, + "ĠnÃło": 102176, + "à¸Ńล": 102177, + "æĬĬ": 102178, + "ÙĪرت": 102179, + "Ġbude": 102180, + "æĽ¸": 102181, + "elik": 102182, + "ĠجÙĩ": 102183, + "ĠبÙĪابة": 102184, + "èĬ±": 102185, + "دار": 102186, + "Ġbýt": 102187, + "Ñĩе": 102188, + "ãĤĵãģł": 102189, + "ĠÙħØ·": 102190, + "lere": 102191, + "ÎĹΣ": 102192, + "íĺķ": 102193, + "âĸį": 102194, + "ÄŁu": 102195, + "Ġвз": 102196, + "ÙĬز": 102197, + "ĠÐłÐ¾Ñģ": 102198, + "íĭ°": 102199, + "Ġداش": 102200, + "ì§ij": 102201, + "atı": 102202, + "mesi": 102203, + "ãĤīãĤĮ": 102204, + "ův": 102205, + "rát": 102206, + "оÑģоб": 102207, + "åIJĦ": 102208, + "uyá»ĩn": 102209, + "åģļ": 102210, + "üst": 102211, + "éĩİ": 102212, + "αÏĥ": 102213, + "Ġmặt": 102214, + "елов": 102215, + "åįļ": 102216, + "дж": 102217, + "Ġدارد": 102218, + "Ġfark": 102219, + "à¹īวย": 102220, + "они": 102221, + "Ġبخ": 102222, + "à¥ģत": 102223, + "ĠÄijây": 102224, + "αÏģα": 102225, + "Ġδια": 102226, + "Ġè¯": 102227, + "каÑħ": 102228, + "cház": 102229, + "zenÃŃ": 102230, + "ÑĢоп": 102231, + "à¥Ģम": 102232, + "íĨµ": 102233, + "dü": 102234, + "à¸łà¸²à¸ŀ": 102235, + "ĠíĬ": 102236, + "ÙĪا": 102237, + "Ġtá»ijt": 102238, + "ï¼ŁãĢįĊĊ": 102239, + "ĠæľĪ": 102240, + "ĠnhÆ°ng": 102241, + "Ġnež": 102242, + "à¥ĭड": 102243, + "ìĹIJê²Į": 102244, + "à¤Ĥड": 102245, + "¶Į": 102246, + "ĠмеÑģÑĤ": 102247, + "ाà¤ģ": 102248, + "ì¦Ŀ": 102249, + "ĠÄijang": 102250, + "à¸Ńà¸Ķ": 102251, + "íĽĦ": 102252, + "á»įi": 102253, + "ského": 102254, + "Ġдок": 102255, + "Ġتص": 102256, + "Ġphòng": 102257, + "Ġê°ķ": 102258, + "ĠtrÆ°á»Ľc": 102259, + "íijľ": 102260, + "ÙĶ": 102261, + "ĠphÃŃ": 102262, + "Ġchá»įn": 102263, + "ä¹IJ": 102264, + "ĠÅŁekilde": 102265, + "Ġíİ": 102266, + "éº": 102267, + "루": 102268, + "à¥Ī।Ċ": 102269, + "ÙĪرÛĮ": 102270, + "ÑģÑĤÑĢа": 102271, + "ildi": 102272, + "ĠαÏħ": 102273, + "ваннÑı": 102274, + "ìļ¸": 102275, + ".âĢľĊĊ": 102276, + "ĠÑĤакже": 102277, + "ëĵ±": 102278, + "ека": 102279, + "æīį": 102280, + "ÙħØ©": 102281, + "ĠphÆ°Æ¡ng": 102282, + "马": 102283, + "ãĢĢĠãĢĢ": 102284, + "ových": 102285, + "ียà¸ĩ": 102286, + "ĠTru": 102287, + "еÑģп": 102288, + "stup": 102289, + "ÄĮ": 102290, + "ĠdalÅ¡ÃŃ": 102291, + "زÛĮ": 102292, + "Ġ매": 102293, + "ĠобÑĢаз": 102294, + "Ġaçık": 102295, + "ê°ķ": 102296, + "ÙģادÙĩ": 102297, + "گاÙĨ": 102298, + "à¹īà¸Ļ": 102299, + "ẩn": 102300, + "å·¥ä½ľ": 102301, + "Ġतर": 102302, + "ÙĬع": 102303, + "ĠãĢĬ": 102304, + ",âĢľ": 102305, + "Ġnev": 102306, + "ัà¸į": 102307, + "ģını": 102308, + "Ġjin": 102309, + "اخت": 102310, + "سر": 102311, + "ĠtÃłi": 102312, + "Ġkterá": 102313, + "ĠاÙĦÙĦ": 102314, + "à¤ħ": 102315, + "izmet": 102316, + "à¥ģम": 102317, + "าะ": 102318, + "Ġê·": 102319, + "lıģı": 102320, + "çı¾": 102321, + "liÄŁi": 102322, + "êµ°": 102323, + "alık": 102324, + "ĠدÙĪر": 102325, + "Ġìĭ¤": 102326, + "ĠзаÑģ": 102327, + "ÙĤÙĬ": 102328, + "Ġứng": 102329, + "ĠÙĥÙĩ": 102330, + "ÎŁÎ£": 102331, + "è¨Ń": 102332, + "çĮ": 102333, + "ãģĦãģŁ": 102334, + "íĺĦ": 102335, + "ĠÑĤе": 102336, + "еÑĢÑĸ": 102337, + "sız": 102338, + "Ġý": 102339, + "дов": 102340, + "Ġà¤ĩसà¤ķ": 102341, + "год": 102342, + "Ġbylo": 102343, + "าà¸Ħม": 102344, + "ением": 102345, + "Ш": 102346, + "æľ¯": 102347, + "Ġपहल": 102348, + "ĠaÅŁ": 102349, + "à¤¿à¤ľ": 102350, + "åĵ¡": 102351, + "ваÑĢ": 102352, + "à¹īำ": 102353, + "âĮĴ": 102354, + "ován": 102355, + "Ġgiúp": 102356, + "Ð¥": 102357, + "ĠÑģÑĥд": 102358, + "Ġà¤ķम": 102359, + "ạm": 102360, + "رس": 102361, + "Ġ人": 102362, + "ĠبÛĮ": 102363, + "Ġà¤īनà¤ķ": 102364, + "립": 102365, + "áºŃy": 102366, + "ĠváºŃt": 102367, + "лÑıеÑĤÑģÑı": 102368, + "Ġseç": 102369, + "Ġì½": 102370, + "ÑĢÑĥж": 102371, + "تص": 102372, + "|:": 102373, + "Ġëł": 102374, + "ими": 102375, + "ĠлÑİб": 102376, + "Ġà¸ľ": 102377, + "ï¼Įä½Ĩ": 102378, + "Ġнав": 102379, + "âĢ¬": 102380, + "à¹Īาย": 102381, + "Ġرس": 102382, + "siniz": 102383, + "ë¨": 102384, + "ениÑİ": 102385, + "Ġล": 102386, + "اسÛĮ": 102387, + "à¥ľ": 102388, + "ĠÙ¾ÛĮØ´": 102389, + "ίδ": 102390, + "ĠÙ¾ÛĮ": 102391, + "еÑĢжав": 102392, + "à¤Ĩ": 102393, + "ĠdÃ¼ÅŁÃ¼n": 102394, + "å¿«": 102395, + "ÑĢеÑģ": 102396, + "åħ«": 102397, + "ÑĤÑĸ": 102398, + "à¤¿à¤Ł": 102399, + "ĠÑĤеÑħ": 102400, + "út": 102401, + "ÙĨÙĩ": 102402, + "ĠÙĨØ´": 102403, + "çĻº": 102404, + "Ġê°¤": 102405, + "лед": 102406, + "Ġëĵ¤": 102407, + "Ġbilg": 102408, + "ĠspoleÄį": 102409, + "ĠÄijÆ¡n": 102410, + "Ġà¤īत": 102411, + "Ġtrá»ĭ": 102412, + "ĠعÙħ": 102413, + "Ġ।": 102414, + "ĠúÄį": 102415, + "ãģ¸": 102416, + "วà¸ģ": 102417, + "ĠÑģлÑĥÑĩа": 102418, + "á»įng": 102419, + "åıĪ": 102420, + "иÑĤÑĥ": 102421, + "æľīéĻIJ": 102422, + "린": 102423, + "ëĭĺ": 102424, + "Ġhoạt": 102425, + "ĠìĿ´ëıĻ": 102426, + "знаÑĩ": 102427, + "ĠاستÙģادÙĩ": 102428, + "ĠпÑĢоÑĨеÑģ": 102429, + "anın": 102430, + "гÑĥ": 102431, + "ĠاÙĦØ«": 102432, + "æĹ¥æľ¬": 102433, + "ικά": 102434, + "ĠÑĹÑĹ": 102435, + "ì§ģ": 102436, + "inu": 102437, + "Ġساز": 102438, + "ãĤ¡": 102439, + "ï¾ī": 102440, + "ĠاÙĤ": 102441, + "Ġkế": 102442, + "ůsob": 102443, + "à¹ĩà¸ģ": 102444, + "åIJ§": 102445, + "æ¼Ķ": 102446, + "Ñīие": 102447, + "çĨ": 102448, + "ÑĮого": 102449, + "à¥ĭà¤Ł": 102450, + "اپ": 102451, + "室": 102452, + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 102453, + "Ġtriá»ĥn": 102454, + "ĠtáºŃp": 102455, + "é£Ł": 102456, + "ë¹": 102457, + "ĠÑĩеÑĢез": 102458, + "ĠÑĨи": 102459, + "ÑģÑĥ": 102460, + "Ġнем": 102461, + "ĠаÑĢ": 102462, + "ĠÙĦا": 102463, + "Ġì§Ħ": 102464, + "çŁ³": 102465, + "ĠпÑĢоб": 102466, + "ĠìĽIJ": 102467, + "ÛĮÙĨÛĮ": 102468, + "ÑİÑĩи": 102469, + "âĢį": 102470, + "Û±Û³": 102471, + "ãĤ¬": 102472, + "çłĶ究": 102473, + "íĤ¤": 102474, + "Ġgerçek": 102475, + "ĠØŃس": 102476, + "íĶ¼": 102477, + "èĤ¡": 102478, + "ĠÏĦι": 102479, + "ĠvÅ¡ech": 102480, + "Ġvì": 102481, + "اÙĨÙĬ": 102482, + "ĠÙĩست": 102483, + "ĠëĤ¨": 102484, + "ÅĻej": 102485, + "еÑĢг": 102486, + "Ġsöz": 102487, + "ĠاÙĦÙħت": 102488, + "Ġchế": 102489, + "á»ĵi": 102490, + "åı¤": 102491, + "âĸįâĸį": 102492, + "á»ĵng": 102493, + "ãĥ¢": 102494, + "Ġди": 102495, + "ελ": 102496, + "Ġона": 102497, + "Ġнай": 102498, + "Ġ_{": 102499, + "пол": 102500, + "aliz": 102501, + "ĠtÄĥng": 102502, + "ĠdÃŃ": 102503, + "ép": 102504, + "ĠÙĦÙħ": 102505, + "Ġmož": 102506, + "ĠngoÃłi": 102507, + "èĹ": 102508, + "ĠÑĩем": 102509, + "ĠÄijá»ķ": 102510, + "еÑĤа": 102511, + "åı²": 102512, + "ĠÑģказ": 102513, + "ãĤ¿ãĥ¼": 102514, + "анÑĮ": 102515, + "Ġgöz": 102516, + "ë³Ħ": 102517, + "ãģĭãģ£ãģŁ": 102518, + "ĠëįĶ": 102519, + "ĠÙĨÙĤ": 102520, + "ĠÑĥÑĩа": 102521, + "Ġsahip": 102522, + "ĠÑģпе": 102523, + "ίοÏħ": 102524, + "ì½Ķ": 102525, + "ĠëĪ": 102526, + "mam": 102527, + "Ġroce": 102528, + "ĠÙĨاÙħ": 102529, + "еÑĢаÑĤÑĥ": 102530, + "ıp": 102531, + "ãģĦãģ¦": 102532, + "ĠíķĻ": 102533, + "Ġà¤ĩन": 102534, + "å©": 102535, + "Ġnhiên": 102536, + "atır": 102537, + "ÅĻenÃŃ": 102538, + "دة": 102539, + "ãĥªãĥ¼": 102540, + "ลà¸ĩ": 102541, + "ĠéĢ": 102542, + "Ġà¹Ģà¸Ľ": 102543, + "дÑĸ": 102544, + "ÎŃÏģ": 102545, + "ìĦ¤": 102546, + "гÑĢа": 102547, + "esine": 102548, + "Ġее": 102549, + "Ġiki": 102550, + "Ġتج": 102551, + "larına": 102552, + "dür": 102553, + "ĠاÙĦØ°": 102554, + "Ùħت": 102555, + "Ġà¤IJ": 102556, + "िद": 102557, + "Ġë¹": 102558, + "ÑĦоÑĢма": 102559, + "Ġони": 102560, + "гоÑĢ": 102561, + "неÑģ": 102562, + "ìĺĢëĭ¤": 102563, + "ıldı": 102564, + "Ġçek": 102565, + "Ġдов": 102566, + "دÛĮ": 102567, + "ĠÄĮesk": 102568, + "ÑĪа": 102569, + "Ġات": 102570, + "å±ĭ": 102571, + "æĸ¼": 102572, + "Ġpráv": 102573, + "ému": 102574, + "å¸Ī": 102575, + "ãħĭãħĭ": 102576, + "Ġilgili": 102577, + "หว": 102578, + "à¤ĩ": 102579, + "ाष": 102580, + "ëŀij": 102581, + "asyon": 102582, + "ÑĨÑĮ": 102583, + "à¹ģà¸ķ": 102584, + "ợi": 102585, + "ĠвÑĭÑģ": 102586, + "ÑĸлÑĮки": 102587, + "ĠкоÑĤоÑĢÑĭе": 102588, + "ники": 102589, + "Ġاد": 102590, + "Ġživ": 102591, + "ĠαÏĢο": 102592, + "رض": 102593, + "اة": 102594, + "Ġkdyž": 102595, + "ữa": 102596, + "ĠëĮĢíķľ": 102597, + "Ġtôi": 102598, + "ÑĥÑĶ": 102599, + "زر": 102600, + "Ġå¥": 102601, + "ãĥĭãĥĭ": 102602, + "بة": 102603, + "ÏĦοÏĤ": 102604, + "ÑĨион": 102605, + "ĠÙħÙĬ": 102606, + "ĠÄĥn": 102607, + "à¥ĩà¤Ĺ": 102608, + "ĠÑĢег": 102609, + "ĠlỼn": 102610, + "ì¤Ģ": 102611, + "ìĭ¬": 102612, + "Ġbiết": 102613, + "aları": 102614, + "ÙģÙĬ": 102615, + "ä¸ĸçķĮ": 102616, + "ĠнеобÑħодим": 102617, + "à¸Ļว": 102618, + "νÏĦ": 102619, + "Ġảnh": 102620, + "íĸĪ": 102621, + "Ġवर": 102622, + "hled": 102623, + "ิà¸Ī": 102624, + "æŃ»": 102625, + "ĠاÙĦتÙĬ": 102626, + "ноÑģ": 102627, + "prav": 102628, + "ÑıÑĤи": 102629, + "Ñīа": 102630, + "ÙĪÙĨÙĩ": 102631, + "ĠaÄŁ": 102632, + "à¸ŀระ": 102633, + "Ġthá»ijng": 102634, + "ÑĦи": 102635, + "Ġголов": 102636, + "Ġkhoa": 102637, + "ĠëłĪ": 102638, + "ãģĴ": 102639, + "Ġgetir": 102640, + "شت": 102641, + "женнÑı": 102642, + "енÑĸ": 102643, + "Ġgiữ": 102644, + "lerinin": 102645, + "à¥Ģव": 102646, + "éģ¸": 102647, + "सर": 102648, + "ĠÑĩелов": 102649, + "à¥įà¤ľ": 102650, + "ĠбÑĥло": 102651, + "ĠاÙĨد": 102652, + "ัà¸Ļà¸Ĺ": 102653, + "让": 102654, + "Ġquyá»ģn": 102655, + "ĠØŃاÙĦ": 102656, + "ì²ĺ": 102657, + "ĠлÑİд": 102658, + "ÏģÏĩ": 102659, + "алÑĮно": 102660, + "ãĢĢãĥ½": 102661, + "ê¸ī": 102662, + "ãĤ±": 102663, + "ĠÙħرد": 102664, + "Ġông": 102665, + "Ġاش": 102666, + "大åѦ": 102667, + "ì¦Ī": 102668, + "æĪ¦": 102669, + "eyi": 102670, + "ĠÐIJн": 102671, + "िप": 102672, + "Ġtiêu": 102673, + "Ø´ÛĮ": 102674, + "ắn": 102675, + "éŃĶ": 102676, + "ãģ¨ãģĦãģĨ": 102677, + "ĠìłĢ": 102678, + "кÑĤи": 102679, + "ĠÙħØŃÙħد": 102680, + "ĠíĨµ": 102681, + "ุม": 102682, + "åį¡": 102683, + "оÑĢов": 102684, + "коÑİ": 102685, + "Ġlá»±c": 102686, + "島": 102687, + "ĠرÙĪز": 102688, + "ÑħÑĸд": 102689, + "Ġhá»ĵ": 102690, + "Ġül": 102691, + "ĠØ´Ùħ": 102692, + "ÙĨس": 102693, + "بÙĪ": 102694, + "Ġthêm": 102695, + "ạc": 102696, + "åºľ": 102697, + "echn": 102698, + "ĠÎļα": 102699, + "èijĹ": 102700, + "çľ¼": 102701, + "áh": 102702, + "Ġι": 102703, + "ê¹Įì§Ģ": 102704, + "maz": 102705, + "λογ": 102706, + "Ġjsme": 102707, + "Ġá¼": 102708, + "ĠпÑĢави": 102709, + "клад": 102710, + "Ġthủ": 102711, + "sah": 102712, + "ÄŁit": 102713, + "ĠÙģÛĮ": 102714, + "енно": 102715, + "à¥ģà¤Ľ": 102716, + "ãģ»": 102717, + "çĻ¾": 102718, + "иÑĤа": 102719, + "ĠбÑĭло": 102720, + "Ġvys": 102721, + "Ġì¶ľ": 102722, + "ắng": 102723, + "ĠÄijại": 102724, + "ĠÙħÙĪرد": 102725, + "ела": 102726, + "ÑĸÑĪ": 102727, + "леннÑı": 102728, + "æIJ": 102729, + "Ġнед": 102730, + "iyat": 102731, + "ì¼": 102732, + "ĠolduÄŁunu": 102733, + "داÙĨ": 102734, + "íĿ": 102735, + "ĠسÛĮ": 102736, + "ีà¸ģ": 102737, + "ÄĽst": 102738, + "ımı": 102739, + "ä¸īä¸ī": 102740, + "ãĤ½": 102741, + "ĠÑĤеп": 102742, + "ĠÑĢай": 102743, + "ाध": 102744, + "ĠìĤ¬ëŀĮ": 102745, + "ĠTrung": 102746, + "ï¼ıï¼ı": 102747, + "Ġtâm": 102748, + "Å¡enÃŃ": 102749, + "ãĥį": 102750, + "ĠÏĦοÏħÏĤ": 102751, + "ĠнÑĸ": 102752, + "вид": 102753, + "æ¿": 102754, + "Ġظ": 102755, + "ãĥ¯": 102756, + "ì¢ħ": 102757, + "ваÑĤи": 102758, + "Ġquá": 102759, + "ฤ": 102760, + "ĠÄijÆ°á»Ŀng": 102761, + "à¥ģद": 102762, + "roj": 102763, + "ĠÑĥÑģ": 102764, + "é¦Ļ": 102765, + "ì½ĺ": 102766, + "ĠÙĪت": 102767, + "มาà¸ģ": 102768, + "åĪĩ": 102769, + "Ġán": 102770, + "Ġмед": 102771, + "ìĹIJëĬĶ": 102772, + "Ġhlav": 102773, + "رت": 102774, + "à¹ĥà¸Ī": 102775, + "æ´²": 102776, + "ĠлÑĸ": 102777, + "æĪĺ": 102778, + "ÙĪÙĨد": 102779, + "足": 102780, + "åĭĻ": 102781, + "çĶ³": 102782, + "Ġì±": 102783, + "ĠìĿ´ëıĻíķ©ëĭĪëĭ¤": 102784, + "ÑīеÑģÑĤв": 102785, + "Ġë¶Ī": 102786, + "ÙĦÙĪ": 102787, + "üven": 102788, + "èĪĩ": 102789, + "ĠgiỼi": 102790, + "ĠÙĪÙĤ": 102791, + "Ġê°¤ë¡ľê·¸": 102792, + "ĠعاÙħ": 102793, + "ĺIJ": 102794, + ":::::": 102795, + "ĠÑĥд": 102796, + "-ÑĤо": 102797, + "ĠÑĦоÑĢ": 102798, + "ини": 102799, + "ãģĹãģĦ": 102800, + "Ġê°¤ë¡ľê·¸ë¡ľ": 102801, + "ãģ³": 102802, + "ãĥ©ãĤ¤": 102803, + "ená": 102804, + "Ġnez": 102805, + "Ġönemli": 102806, + "ĠниÑħ": 102807, + "à¤Ĥस": 102808, + "Ġà¤īसà¤ķ": 102809, + "à¥įरद": 102810, + "Ġnói": 102811, + "ÙĥÙĦ": 102812, + "ิว": 102813, + "κο": 102814, + "à¥ģà¤ĸ": 102815, + "öyle": 102816, + "άλ": 102817, + "óng": 102818, + "ĠداÙĨØ´": 102819, + "Ġзб": 102820, + "ì»": 102821, + "à¸ľà¸¥": 102822, + "ëĵ¤ìĿ´": 102823, + "Ġetk": 102824, + "رات": 102825, + "Ġεκ": 102826, + "ÑĤÑĢа": 102827, + "à¥įतर": 102828, + "à¤Ĥब": 102829, + "ĠмÑĸÑģ": 102830, + "æł¹": 102831, + "ãĥĻ": 102832, + "Ġtá»ī": 102833, + "à¹Ģà¸ĭ": 102834, + "ìĪł": 102835, + "ï¼Įä¸į": 102836, + "ìĺ¨": 102837, + "ĠmÄĽst": 102838, + "ģµ": 102839, + "azı": 102840, + "rada": 102841, + "ÏĢα": 102842, + "mé": 102843, + "ÙĨاÙħÙĩ": 102844, + "اÛĮÙĦ": 102845, + "μη": 102846, + "luk": 102847, + "ÙĥÙĬ": 102848, + "Ġï¼ī": 102849, + "ĠдеÑĤ": 102850, + "Ġiçinde": 102851, + "Ñıм": 102852, + "ĠdÆ°á»": 102853, + "ĠпÑĢедÑģÑĤав": 102854, + "üre": 102855, + "åķĬ": 102856, + "ĠÑĤÑĢÑĥ": 102857, + "esini": 102858, + "Ġале": 102859, + "ãĥ³ãĥī": 102860, + "à¥ĥत": 102861, + "εÏħ": 102862, + "à¥ģà¤Ĩ": 102863, + "Ġhiç": 102864, + "çĶº": 102865, + "ĠÐĸ": 102866, + "çħ§": 102867, + "ká": 102868, + "Ġtrá»įng": 102869, + "Ġتش": 102870, + "ाश": 102871, + "ĠÙħØ«": 102872, + "etim": 102873, + "Ġthấy": 102874, + "Ġबह": 102875, + "عت": 102876, + "ึà¹ī": 102877, + "Ġsev": 102878, + "ÑģÑĤа": 102879, + "Ġcứ": 102880, + "Ġtiá»ģn": 102881, + "à¥Ģà¤ľ": 102882, + "Ñıг": 102883, + "ĠоÑĢгани": 102884, + "ĠбÑĭл": 102885, + "tür": 102886, + "ĠبازÛĮ": 102887, + "Ġìŀ¬": 102888, + "वर": 102889, + "æľīéĻIJåħ¬åı¸": 102890, + "kup": 102891, + "Ġiyi": 102892, + "íķĺê²Į": 102893, + "ãĢĢl": 102894, + "ãĤ·ãĥ§": 102895, + "ارة": 102896, + "สร": 102897, + "ĠtÃŃch": 102898, + "ĠкаÑĢ": 102899, + "иб": 102900, + "ĠвÑĸдповÑĸд": 102901, + "Ġpodle": 102902, + "à¥įरà¤ķ": 102903, + "iyon": 102904, + "коном": 102905, + "ĠμÎŃ": 102906, + "ĠпÑĢоиз": 102907, + "ĠâĢı": 102908, + "mektedir": 102909, + "ΩÎĿ": 102910, + "Ġbáo": 102911, + "à¸Īำ": 102912, + "ëįĶ": 102913, + "ë¸Į": 102914, + "Ġsợ": 102915, + "ÛĮرÛĮ": 102916, + "онÑĥ": 102917, + "ındaki": 102918, + "алÑĮного": 102919, + "μβ": 102920, + "лиз": 102921, + "Ġjejich": 102922, + "æĸ½": 102923, + "便": 102924, + "leÅŁtir": 102925, + "ĠÙĪØ£": 102926, + "Ġसब": 102927, + "lerde": 102928, + "ĠÚĨÙĩ": 102929, + "ÏĦÎŃ": 102930, + "Ġgì": 102931, + "ĠÃļ": 102932, + "ĠÑĢаÑģп": 102933, + "Ġtüm": 102934, + "à¹Ģà¸ĩ": 102935, + "èIJ½": 102936, + "ìĨ¡": 102937, + "à¹Ħà¸Ĺย": 102938, + "mÄ±ÅŁtır": 102939, + "ĠÙĤرار": 102940, + "Ġà¸Ħาส": 102941, + "Ġkıs": 102942, + "ованиÑı": 102943, + "ãĤĤãģ®": 102944, + "داÙħ": 102945, + "ìľ¡": 102946, + "oloj": 102947, + "ĠпоÑģле": 102948, + "ĠТак": 102949, + "Ġболее": 102950, + "ĠÄijá»ķi": 102951, + "lak": 102952, + "íħĮ": 102953, + "Ġayn": 102954, + "ÑıÑģ": 102955, + "Ġпог": 102956, + "Ġarasında": 102957, + "Ī¬": 102958, + "à¥Ĥल": 102959, + "Ġανα": 102960, + "Ġquyết": 102961, + "Ġthuá»Ļc": 102962, + "Ġdün": 102963, + "ĠpÅĻes": 102964, + "ÑĦÑĸ": 102965, + "Ġå¸": 102966, + "اÙĦÙĬ": 102967, + "ĠповеÑĢ": 102968, + "Ñĩина": 102969, + "sko": 102970, + "çµIJ": 102971, + "Ø¡": 102972, + "ĠгÑĢа": 102973, + "оÑĤи": 102974, + "Ġquá»ijc": 102975, + "ÑĨÑĸв": 102976, + "lendir": 102977, + "вÑĸд": 102978, + "ĠжиÑĤ": 102979, + "üyor": 102980, + "ï¼Įä»ĸ": 102981, + "larında": 102982, + "Ġuyg": 102983, + "ĠtrÃŃ": 102984, + "ĠØ´ÙĨ": 102985, + "ابÙĦ": 102986, + "æ·±": 102987, + "Âłp": 102988, + "ÑģкаÑı": 102989, + "оÑĤа": 102990, + "ÙĪØ·": 102991, + "Ġاط": 102992, + "ä¾Ĩ": 102993, + "ĠзаÑĤ": 102994, + "Ġиме": 102995, + "à¹Ģà¸Ĺศ": 102996, + "ëĭ´": 102997, + "nÄĽnÃŃ": 102998, + "ÑĥлÑı": 102999, + "-п": 103000, + "åĺ": 103001, + "Ġвип": 103002, + "аÑĢакÑĤ": 103003, + "à¹Ģà¸ļ": 103004, + "ç¦ı": 103005, + "ÏģÏİ": 103006, + "سÙĩ": 103007, + "à¥Įर": 103008, + "ĠdiÄŁer": 103009, + "à¹Ĥà¸Ķย": 103010, + "ĠÑģпоÑģоб": 103011, + "åį·": 103012, + "èĸ": 103013, + "анÑĤ": 103014, + "ÑİÑĤÑĮÑģÑı": 103015, + "ĠÑįÑĤом": 103016, + "Ġï½Ģ": 103017, + "สาม": 103018, + "ìm": 103019, + "ĠÑĪк": 103020, + "Ġà¸Ľà¸£à¸°": 103021, + "़à¥Ģ": 103022, + "ekl": 103023, + "muÅŁ": 103024, + "ĠÑĤакож": 103025, + "ÙĪسط": 103026, + "ĠÄįi": 103027, + "ีà¸Ļ": 103028, + "ÛĮÙĨÙĩ": 103029, + "ÄĽk": 103030, + "å½¼": 103031, + "lerine": 103032, + "ĠÄijất": 103033, + "à¥ģà¤ı": 103034, + "олоÑģ": 103035, + "Ġå°ı": 103036, + "زÙĬØ©": 103037, + "Ġвла": 103038, + "à¥Ģल": 103039, + "Ġetti": 103040, + "ĠÑģоÑģÑĤав": 103041, + "ÙĦاÙĦ": 103042, + "Ġçİ": 103043, + "ĠpÅĻÃŃpad": 103044, + "룰": 103045, + "ุà¸ģ": 103046, + "ĠÑĩи": 103047, + "åħį": 103048, + "nÄĽjÅ¡ÃŃ": 103049, + "ิล": 103050, + "åįĢ": 103051, + "ských": 103052, + "าศ": 103053, + "åIJĹ": 103054, + "ĠíĺĦ": 103055, + "Ġalın": 103056, + "å§Ķ": 103057, + "à¸ŀร": 103058, + "ažd": 103059, + "ĠбÑĸлÑĮ": 103060, + "à¹Īวà¸Ļ": 103061, + "oog": 103062, + "acı": 103063, + "lıģ": 103064, + "Ġkhu": 103065, + "Ġhizmet": 103066, + "ĠéĽ": 103067, + "ĠÎĺ": 103068, + "ĠdeÄŁer": 103069, + "åħŃ": 103070, + "ĠدÙĩ": 103071, + "ĠnÄĽk": 103072, + "à¸Ħà¸Ļ": 103073, + "еÑĤÑĮ": 103074, + "باÙĨ": 103075, + "ÏĦική": 103076, + "ĠÄijá»ĭa": 103077, + "ĠCông": 103078, + "íĮIJ": 103079, + "Ġкогда": 103080, + "ĠÚ©ÙĨد": 103081, + "ãģ§ãģį": 103082, + "ĠÏĢεÏģι": 103083, + "lardan": 103084, + "Ġзем": 103085, + "تÙĪاÙĨ": 103086, + "è³ĩ": 103087, + "likle": 103088, + "Ġtụ": 103089, + "Ġdẫn": 103090, + "Ġnay": 103091, + "ĠÑģÑĤоÑĢ": 103092, + "ĠØ´Ùħا": 103093, + "ثر": 103094, + "Ġdedi": 103095, + "кое": 103096, + "ëijIJ": 103097, + "ÑĨев": 103098, + "جÙĩ": 103099, + "Ġmůže": 103100, + "à¥ģप": 103101, + "à¥įरम": 103102, + "ĠtaÅŁ": 103103, + "оÑĢÑĤ": 103104, + "γÏģα": 103105, + "çĻ¼": 103106, + "าà¸ļ": 103107, + "iá»ħn": 103108, + "ĠÙħست": 103109, + "лекÑģ": 103110, + "Ġprav": 103111, + "ĠдоÑģ": 103112, + "ĠdÄ±ÅŁ": 103113, + "Ġzem": 103114, + "Ġgiao": 103115, + "Ġvlast": 103116, + "ĠÑįÑĤого": 103117, + "ï½°": 103118, + "วà¸ĩ": 103119, + "ÑĢой": 103120, + "Ġbirlik": 103121, + "ený": 103122, + "Ġëĭ¨": 103123, + "овани": 103124, + "é£İ": 103125, + "íıī": 103126, + "Ġzah": 103127, + "ба": 103128, + "åĬ©": 103129, + "éĢ²": 103130, + "ê¶Į": 103131, + "Ġdiye": 103132, + "à¤Ĥà¤ķ": 103133, + "Ġchuyá»ĥn": 103134, + "ĠìĹŃ": 103135, + "ĠÑĤÑĢи": 103136, + "Ġönce": 103137, + "ï¼Įè¿Ļ": 103138, + "oại": 103139, + "леÑĤ": 103140, + "ĠÏĥÏħν": 103141, + "lád": 103142, + "çe": 103143, + "tü": 103144, + "ĠÄįást": 103145, + "Ġεν": 103146, + "Ġbiá»ĩt": 103147, + "Ġé«": 103148, + "à¥ĭà¤ķ": 103149, + "ÙĦات": 103150, + "باÙĦ": 103151, + "ecies": 103152, + "Ġëĭ¹": 103153, + "à¸Ĭà¸Ļ": 103154, + "ÏĦαÏĤ": 103155, + "à¥įण": 103156, + "ujÃŃcÃŃ": 103157, + "Äįet": 103158, + "Ġпоб": 103159, + "ÙĪار": 103160, + "iyas": 103161, + "Ġdruh": 103162, + "دد": 103163, + "ÏĮν": 103164, + "ÑĢен": 103165, + "ารà¸ĸ": 103166, + "ä½İ": 103167, + "ìķ½": 103168, + "ÑĢоз": 103169, + "ëĬĶëį°": 103170, + "ãĤĵãģª": 103171, + "ÄįenÃŃ": 103172, + "************": 103173, + "ĠΡ": 103174, + "ĠÑĤомÑĥ": 103175, + "รà¸ģ": 103176, + "à¥ģस": 103177, + "ä¹Ŀ": 103178, + "å°±æĺ¯": 103179, + "£i": 103180, + "éĺ²": 103181, + "Ùĥر": 103182, + "ĠÑįÑĤи": 103183, + "ĠÚ©Ø´ÙĪر": 103184, + "Ġê°IJ": 103185, + "Ġад": 103186, + "Ġداد": 103187, + "éģİ": 103188, + "Ù«": 103189, + "ĠláºŃp": 103190, + "ĠاÙĦÙĩ": 103191, + "æľĽ": 103192, + "ĠتÙĩ": 103193, + "ì§Ī": 103194, + "ãģ§ãģĤãĤĭ": 103195, + "Ġмеж": 103196, + "ĠÑĢезÑĥлÑĮÑĤ": 103197, + "çį": 103198, + "емÑĥ": 103199, + "ĠتÙĪاÙĨ": 103200, + "ĠراÙĩ": 103201, + "ãĥ¼ãĥł": 103202, + "åĦ¿": 103203, + "å±ŀ": 103204, + "бÑĭ": 103205, + "á¿": 103206, + "à¸Ħล": 103207, + "à¥ĭà¤Ī": 103208, + "ütün": 103209, + "à¤Ĺर": 103210, + "ìķĺëĭ¤": 103211, + "âĪ§": 103212, + "Ġì°¨": 103213, + "çµĦ": 103214, + "μαÏĦα": 103215, + "ุà¸Ļ": 103216, + "ĠÑĤом": 103217, + "еÑĢв": 103218, + "ÎijΣ": 103219, + "ĠiÅŁlem": 103220, + "عÙħ": 103221, + "ëĥ": 103222, + "ãĥĦ": 103223, + "اÙģت": 103224, + "åĬŀ": 103225, + "Ġnes": 103226, + "avaÅŁ": 103227, + "ĠÙĨÛĮز": 103228, + "强": 103229, + "ĠéĻ": 103230, + "ÑĸннÑı": 103231, + "æ²³": 103232, + "áÅĻ": 103233, + "æĿIJ": 103234, + "ĠØ£ÙĬ": 103235, + "Ġì¹´": 103236, + "ĠnenÃŃ": 103237, + "ĠÙĪÙħ": 103238, + "ĠÚ©Ùħ": 103239, + "iếu": 103240, + "Ġæ°": 103241, + "åĮ»": 103242, + "Ġzor": 103243, + "ίÏĥ": 103244, + "िध": 103245, + "Ġпоказ": 103246, + "हर": 103247, + "Ġiçer": 103248, + "ØŃØ©": 103249, + "िà¤ĸ": 103250, + "ада": 103251, + "ترÛĮÙĨ": 103252, + "Ġbao": 103253, + "Ġxã": 103254, + "à¹Ģà¸Ħร": 103255, + "ĠnghÄ©": 103256, + "à¹ģà¸ļà¸ļ": 103257, + "ĠdoÄŁru": 103258, + "ÑĸÑĤи": 103259, + "ĠبÙĬÙĨ": 103260, + "ĠлеÑĤ": 103261, + "اغ": 103262, + "ÛĮÚ©ÛĮ": 103263, + "ráv": 103264, + "à¥įâĢį": 103265, + "âĢĻnin": 103266, + "Ġย": 103267, + "åįĬ": 103268, + "Ġколи": 103269, + "Ġtrợ": 103270, + "éĿĴ": 103271, + "ëŀĢ": 103272, + "Ġë¨": 103273, + "ĠÙĪر": 103274, + "ï¾Ĭ": 103275, + "è§Ĥ": 103276, + "Ġпи": 103277, + "нÑĥв": 103278, + "ilmesi": 103279, + "ستÙĩ": 103280, + "ĠдеÑĢжав": 103281, + "å®ĥ": 103282, + "åĪ¥": 103283, + "ëħĢ": 103284, + "лÑģÑı": 103285, + "à¤Ĥध": 103286, + "ĠÑĤи": 103287, + "ĠpÅĻip": 103288, + "пи": 103289, + "á»ĵn": 103290, + "оваÑĤÑĮ": 103291, + "ìĿ´ëĿ¼": 103292, + "æľĿ": 103293, + "ĠëĺIJ": 103294, + "ĠÎŃνα": 103295, + "ãģ¾ãģ§": 103296, + "جاÙħ": 103297, + "ĠëĬ": 103298, + "нÑĸв": 103299, + "ÏĢοÏħ": 103300, + "ĠزÙħاÙĨ": 103301, + "æĽ²": 103302, + "ĠÙħÙĩ": 103303, + "볨": 103304, + "ä¸ĥ": 103305, + "ãģ¨ãģĹãģ¦": 103306, + "labilir": 103307, + "оже": 103308, + "å¤ľ": 103309, + "ĠнÑĥжно": 103310, + "彩": 103311, + "çĪ±": 103312, + "ĠhoÃłn": 103313, + "ünü": 103314, + "ĠëĦ¤": 103315, + "ĠجÙĨ": 103316, + "ĠnÄĽj": 103317, + "кими": 103318, + "Ġaynı": 103319, + "ĠÙĥÙĦ": 103320, + "Ġnhau": 103321, + "ẳ": 103322, + "ÙĬات": 103323, + "Ġmezi": 103324, + "ĠÑĢек": 103325, + "Ġtür": 103326, + "ĠговоÑĢ": 103327, + "Ġfazla": 103328, + "åĩĨ": 103329, + "ÑĪий": 103330, + "ÐŁÑĢи": 103331, + "ÑĢоÑģÑĤ": 103332, + "ĠоÑĢган": 103333, + "ným": 103334, + "ĠÑĢод": 103335, + "ĠÙĪÛĮ": 103336, + "ický": 103337, + "림": 103338, + "ï½²": 103339, + "æĢİ": 103340, + "ĠÙĩذا": 103341, + "ĠÑĩаÑģÑĤи": 103342, + "ÃŃr": 103343, + "á»ĩnh": 103344, + "ĠíĹ": 103345, + "ê»": 103346, + "luž": 103347, + "ÃŃl": 103348, + "cÃŃch": 103349, + "å®Ł": 103350, + "ãģłãģ£ãģŁ": 103351, + "ÙĬرة": 103352, + "ĠvÄĥn": 103353, + "港": 103354, + "ĠÏĦιÏĤ": 103355, + "ارت": 103356, + "Ġvấn": 103357, + "âĶģâĶģâĶģâĶģ": 103358, + "対": 103359, + "ÏģÎŃ": 103360, + "ĠгодÑĥ": 103361, + "Ġسب": 103362, + "ارات": 103363, + "елей": 103364, + "ĠзаÑħ": 103365, + "Ġваж": 103366, + "Ġtá»īnh": 103367, + "ابع": 103368, + "Ġà¤ľà¤¬": 103369, + "Ġà¤IJस": 103370, + "ĠдÑĥ": 103371, + "Ġé«ĺ": 103372, + "ê²ł": 103373, + "нее": 103374, + "ï½Į": 103375, + "Ġмал": 103376, + "è¾¹": 103377, + "ãģłãģij": 103378, + "à¹īร": 103379, + "ÙĤØ·": 103380, + "Ġbên": 103381, + "Ġseb": 103382, + "ĠØ®ÙĪاÙĩ": 103383, + "siz": 103384, + "Ġolur": 103385, + "ĠëĶ°": 103386, + "Ġì¢ĭ": 103387, + "ĠsvÄĽt": 103388, + "ická": 103389, + "ỹ": 103390, + "Ġquản": 103391, + "ĠиÑģ": 103392, + "ĠzaÄį": 103393, + "ืà¸Ńà¸Ļ": 103394, + "ÑĶÑİ": 103395, + "िष": 103396, + "çĬ¶": 103397, + "Ïĥμ": 103398, + "ัส": 103399, + "óc": 103400, + "ĠбеÑĢ": 103401, + "ĠíĿ": 103402, + ";:;:": 103403, + "Ġپس": 103404, + "ĠëijIJ": 103405, + "ниÑĩ": 103406, + "ĠоÑĩенÑĮ": 103407, + "ĠìķĦìĿ´ì½ĺ": 103408, + "Ġθα": 103409, + "ĠвÑģÑĤ": 103410, + "ادة": 103411, + "Ġdevam": 103412, + "ืà¸Ńà¸ĩ": 103413, + "ĠлÑİди": 103414, + "ìĺĪ": 103415, + "á»±a": 103416, + "ÑıÑħ": 103417, + "âĢĮاÛĮ": 103418, + "ĠسÙĪ": 103419, + "å°¼": 103420, + "Ġthứ": 103421, + "meye": 103422, + "Ġèµ": 103423, + "èī¯": 103424, + "ĠdeÄŁiÅŁ": 103425, + "ÑĪÑĸ": 103426, + "Ġtrợ": 103427, + "ĠâĢİ#": 103428, + "çĹħ": 103429, + "ìĽĮ": 103430, + "Ġkde": 103431, + "Χ": 103432, + "æ¤": 103433, + "ĠÑħаÑĢакÑĤ": 103434, + "æĩ": 103435, + "Ġbiến": 103436, + "ÙĤع": 103437, + "åŁŁ": 103438, + "Ġнеп": 103439, + "Ġdů": 103440, + "ĠпиÑĤ": 103441, + "ĠÑĤÑĢеб": 103442, + "ازÛĮ": 103443, + "Ġطر": 103444, + "ĠÙħÙĦ": 103445, + "Ġtham": 103446, + "ĠÙĪجÙĪد": 103447, + "Ġsvé": 103448, + "é§ħ": 103449, + "اÛĮÙĨ": 103450, + "Ġtiên": 103451, + "stru": 103452, + "ĠváºŃy": 103453, + "üne": 103454, + "Ġà¹Ģม": 103455, + "Ġrằng": 103456, + "аÑĤÑĥ": 103457, + "äºij": 103458, + "ниÑĤ": 103459, + "ä¼Ĭ": 103460, + "ÙĪص": 103461, + "ĠéĿ": 103462, + "ĠпÑĢоблем": 103463, + "deki": 103464, + "**************": 103465, + "òa": 103466, + "ĠÄijá»ģu": 103467, + "ãĤĮãģŁ": 103468, + "ارس": 103469, + "ãģªãģı": 103470, + "اÙĤع": 103471, + "è»į": 103472, + "ÙĥÙħ": 103473, + "Äįas": 103474, + "Ġkỳ": 103475, + "Ø´Ùħ": 103476, + "à¥ĩड": 103477, + "éĺ¿": 103478, + "ĠjejÃŃ": 103479, + "ĠæĻ": 103480, + "ĠÄ°ÅŁ": 103481, + "ardım": 103482, + "Ġसमय": 103483, + "ĠÐĿо": 103484, + "ilerin": 103485, + "Ġعبد": 103486, + "nÃŃk": 103487, + "ĠØ´Ú©ÙĨ": 103488, + "ิà¸Ĺย": 103489, + "á»ħ": 103490, + "ÑĢез": 103491, + "Ġchứng": 103492, + "Ġ:.": 103493, + "Ġपत": 103494, + "Ġživot": 103495, + "å¢ĥ": 103496, + "«a": 103497, + "Ġtrung": 103498, + "никÑĸв": 103499, + "ĠاÙĦÙħÙĨ": 103500, + "ĠÑĢаÑģÑģ": 103501, + "Ġжив": 103502, + "Ġзакон": 103503, + "Ġ목": 103504, + "Ġzáv": 103505, + "Ġhakk": 103506, + "令": 103507, + "ĠÑıкий": 103508, + "ĠبÙĬ": 103509, + "λÎŃ": 103510, + "ocuk": 103511, + "ĠÑİ": 103512, + "à¸ģว": 103513, + "ĠاÙĨÚ¯": 103514, + "à¥ģà¤Ĥ": 103515, + "Ġnám": 103516, + "á»ķng": 103517, + "Ġжел": 103518, + "ĠÄijặc": 103519, + "Äįit": 103520, + "Ġê±´": 103521, + "ĠبÛĮØ´": 103522, + "кÑĢаÑĹн": 103523, + "ĠÙĪÙĩ": 103524, + "неннÑı": 103525, + "Ġà¹Ģà¸ŀ": 103526, + "омен": 103527, + "Ġlần": 103528, + "ĠعÙħÙĦ": 103529, + "Ġîģµ": 103530, + "Äŀ": 103531, + "ÑĸÑģлÑı": 103532, + "Æ°ng": 103533, + "ाफ": 103534, + "à¸Ĺà¸ĺ": 103535, + "ден": 103536, + "ĠÑīоб": 103537, + "Ñĩив": 103538, + "ılır": 103539, + "اعات": 103540, + "jÃŃcÃŃ": 103541, + "벨": 103542, + "ÚĨÙĩ": 103543, + "ارج": 103544, + "ĠپرÙĪ": 103545, + "Ġодин": 103546, + "лин": 103547, + "бÑĥ": 103548, + "Ġसरà¤ķ": 103549, + "åĢĻ": 103550, + "ë¶ĢíĦ°": 103551, + "à¥Īà¤Ĥ,": 103552, + "å´": 103553, + "à¹Ĥล": 103554, + "ĠvÅ¡ak": 103555, + "ĠопÑĢед": 103556, + "ì±": 103557, + "æ½": 103558, + "Ġdá»±ng": 103559, + "práv": 103560, + "ิส": 103561, + "Ġnhiá»ĩm": 103562, + "ĠiliÅŁ": 103563, + "ĠеÑīе": 103564, + "ĠjeÅ¡tÄĽ": 103565, + "ĠÑĢаÑģÑĤ": 103566, + "ฮ": 103567, + "à¤Ĥà¤Ł": 103568, + "âĢĮÚ©": 103569, + "ĠبÛĮÙĨ": 103570, + "ovou": 103571, + "æĻ®": 103572, + "ίεÏĤ": 103573, + "оÑĢоÑĪ": 103574, + "Ġolmak": 103575, + "Ġstát": 103576, + "diÄŁi": 103577, + "Ġtình": 103578, + "ĠdÄĽ": 103579, + "ĠگرÙģ": 103580, + "Ïĥο": 103581, + "ĠÑĥÑĤ": 103582, + "íķĻêµIJ": 103583, + "ัà¸IJ": 103584, + "าà¸Ń": 103585, + "ĠÄijặt": 103586, + "ĠмогÑĥÑĤ": 103587, + "ë°°": 103588, + "tik": 103589, + "ª½": 103590, + "liÄŁ": 103591, + "ÏĢε": 103592, + "ĠèĢ": 103593, + "kü": 103594, + "adece": 103595, + "κÏĮ": 103596, + "ĠдÑĸ": 103597, + "ầm": 103598, + "çĦ¡ãģĹ": 103599, + "Û²Û°Û±": 103600, + "èµĽ": 103601, + "оÑģÑĥд": 103602, + "ĠìķĪëĤ´": 103603, + "ĠÐĶж": 103604, + "座": 103605, + "ických": 103606, + "Ġìłģ": 103607, + "à¥ĩ,": 103608, + "ového": 103609, + "Ġvẫn": 103610, + "Ġbirlikte": 103611, + "Ġरà¤ĸ": 103612, + "ĠÙĨÙĩ": 103613, + "ÙĤر": 103614, + "पर": 103615, + "etÃŃ": 103616, + "ĠÑĤÑĭ": 103617, + "ĢìĿ´": 103618, + "Ġà¤ħल": 103619, + "Ġможе": 103620, + "ãĤ´": 103621, + "Ġstran": 103622, + "طر": 103623, + "è¿Ļ个": 103624, + "Ġبع": 103625, + "åĨĽ": 103626, + "ektir": 103627, + "ĠhÆ°á»Ľng": 103628, + "ÙĨاÙĨ": 103629, + "Ġà¤ij": 103630, + "ÏĮÏĦη": 103631, + "оÑģк": 103632, + "åįĥ": 103633, + "asına": 103634, + "ĠØ´Ùĩ": 103635, + "ĠдеÑĢ": 103636, + "ĠÙħخت": 103637, + "ĠØŃÙĤ": 103638, + "ãĥ¾": 103639, + "ساÙĨ": 103640, + "Ġcung": 103641, + "коÑĢиÑģÑĤ": 103642, + "ÏĦικά": 103643, + "Ġвона": 103644, + "با": 103645, + "ãģķãĤĮãģŁ": 103646, + "nout": 103647, + "Ġı": 103648, + "è§ī": 103649, + "ĠÃ¶ÄŁren": 103650, + "Ġì½Ķ": 103651, + "带": 103652, + "Ñģлов": 103653, + "ĠεÏĢι": 103654, + "ê°IJ": 103655, + "ĠÙħرب": 103656, + "ĠÙģÛĮÙĦÙħ": 103657, + "ĠкÑĢов": 103658, + "Ġëį°": 103659, + "ाण": 103660, + "Ġelekt": 103661, + "ĠнаÑĢод": 103662, + "ÛĮدÙĩ": 103663, + "ç´Ħ": 103664, + "ĠпÑĢоÑĦ": 103665, + "ÏģοÏĤ": 103666, + "Ġãħ": 103667, + "ä¸įæĺ¯": 103668, + "Ġà¤ľà¤¨": 103669, + "ัล": 103670, + "ĠصÙĪرت": 103671, + "ãĥľ": 103672, + "Ġà¤Ĺà¤Ī": 103673, + "ÄŁitim": 103674, + "ÑģÑĮкиÑħ": 103675, + "Ġлег": 103676, + "ĠتÙĪÙĦ": 103677, + "Ġìļ´": 103678, + "عر": 103679, + "ĠmÃłu": 103680, + "гов": 103681, + "æ³¢": 103682, + "indeki": 103683, + "ìłģìĿ¸": 103684, + "ấm": 103685, + "ĠíĻķ": 103686, + "ĠباÛĮد": 103687, + "à¹Įà¸Ĺ": 103688, + "Ġkendi": 103689, + "ีว": 103690, + "ิà¸ģาร": 103691, + "ĠکردÙĩ": 103692, + "å·´": 103693, + "à¤ģ": 103694, + "ราà¸Ĭ": 103695, + "à¥įश": 103696, + "ĠÐĶлÑı": 103697, + "å¥ĩ": 103698, + "ĠÑĥÑģÑĤанов": 103699, + "йÑĤе": 103700, + "ãĤĩ": 103701, + "άÏģ": 103702, + "ĠЮ": 103703, + "ĠluáºŃt": 103704, + "ãĢī": 103705, + "è´¨": 103706, + "دا": 103707, + "Ġdüzen": 103708, + "สà¸Ļ": 103709, + "ÑĢон": 103710, + "dıģı": 103711, + "âĢĻda": 103712, + "Ġfarklı": 103713, + "Ñħов": 103714, + "lán": 103715, + "ÑĩаÑģ": 103716, + "Ñĩин": 103717, + "Ġì°¸": 103718, + "ì´Ī": 103719, + "ÑĨип": 103720, + "ç¹": 103721, + "éĸĢ": 103722, + "жа": 103723, + "ÑĢован": 103724, + "à¸ĵะ": 103725, + "ÙĦÙĬزÙĬØ©": 103726, + "Ïĩει": 103727, + "à¥Ī.": 103728, + "кÑģп": 103729, + "اÙĪر": 103730, + "Ġnguyên": 103731, + "ãģ«ãĤĪ": 103732, + "à¥ĩम": 103733, + "ÏĥÏĦε": 103734, + "تÙĪ": 103735, + "Äįek": 103736, + "ÑĨÑĭ": 103737, + "Ġ물": 103738, + "ÑįÑĤ": 103739, + "Ġkazan": 103740, + "Ùģس": 103741, + "ehir": 103742, + "вÑĸÑĤ": 103743, + "ĠدÙĪÙĦ": 103744, + "Ġëĵľ": 103745, + "Ġà¤ļल": 103746, + "еÑģÑĤва": 103747, + "δα": 103748, + "ĠбÑĥв": 103749, + "ĠÐĿе": 103750, + "ØŃر": 103751, + "огÑĢаÑĦ": 103752, + "Ġrozhod": 103753, + "ĠвикоÑĢиÑģÑĤ": 103754, + "Ġyêu": 103755, + "λοÏĤ": 103756, + "کس": 103757, + "Ġشب": 103758, + "ิษ": 103759, + "æ¯į": 103760, + "ĠдоÑĢ": 103761, + "Ġnghá»ĩ": 103762, + "Ġtrang": 103763, + "à¥ĩद": 103764, + "Ġtìm": 103765, + "Ñĩно": 103766, + "ĠاÙħا": 103767, + "éģĭ": 103768, + "کر": 103769, + "ké": 103770, + "ĠvÄĽt": 103771, + "ĠнаÑģÑĤ": 103772, + "Ġæ±": 103773, + "ĠåĽ½": 103774, + "Ġgiảm": 103775, + "ادÙĬ": 103776, + "ëĤľ": 103777, + "ë¡ł": 103778, + "Ġ、": 103779, + "ĠденÑĮ": 103780, + "ÑĨÑĸÑİ": 103781, + "Ġhạn": 103782, + "ẳng": 103783, + "λή": 103784, + "eyen": 103785, + "ä¸Ķ": 103786, + "æѦ": 103787, + "ĠÑĦак": 103788, + "à¹Īà¸Ńà¸Ļ": 103789, + "Ġοι": 103790, + "زÙħ": 103791, + "ãģĹãģ¦ãģĦãĤĭ": 103792, + "лива": 103793, + "âĢķâĢķ": 103794, + "Ġöl": 103795, + "Ġà¤ĵ": 103796, + "ÑģÑĤÑĸ": 103797, + "à¸ģรรม": 103798, + "Ġtục": 103799, + "Ġgörün": 103800, + "ãģĹãģ¾": 103801, + "Ġì¦": 103802, + "馬": 103803, + "Ġможна": 103804, + "ĠÚ©ÙĦ": 103805, + "ĠÑĨенÑĤ": 103806, + "ĠìĻ¸": 103807, + "Îĺ": 103808, + "çĩ": 103809, + "Ġgelen": 103810, + "ĠاÙĬÙĨ": 103811, + "Ġآب": 103812, + "Ġà¤Ĩय": 103813, + "ัà¸ģษ": 103814, + "Ñģим": 103815, + "ĠболÑĮÑĪ": 103816, + "Ġмн": 103817, + "оди": 103818, + "ĠÄ°l": 103819, + "Ġà¤Ĩर": 103820, + "еÑĤе": 103821, + "ÑĨиÑİ": 103822, + "áºŃu": 103823, + "Ġtiếng": 103824, + "ë¶ģ": 103825, + "æ§ĺ": 103826, + "ĠнаÑĪ": 103827, + "มา": 103828, + "âĢĻın": 103829, + "ãĥĥãĥĹ": 103830, + "ÙĪجÙĩ": 103831, + "ĠØŃد": 103832, + "ává": 103833, + "رÙĪØ´": 103834, + "ĠдейÑģÑĤв": 103835, + "ãģ£ãģ¦ãģĦãĤĭ": 103836, + "Ïģή": 103837, + "Ġüst": 103838, + "Ġtiết": 103839, + "acaÄŁ": 103840, + "ĠÐŁÐ¾": 103841, + "éĬ": 103842, + "머": 103843, + "chod": 103844, + "ĠØ¢ÙħÙĪز": 103845, + "ãģŁãĤģ": 103846, + "Ġchuyên": 103847, + "Ġuygu": 103848, + "нÑĸÑģÑĤ": 103849, + "ë´": 103850, + "æݧ": 103851, + "ÑĥÑİÑĤÑĮ": 103852, + "Äįi": 103853, + "ãģ¹": 103854, + "à¥Ĥन": 103855, + "æĹ©": 103856, + "ãĥĩãĤ£": 103857, + "èĴ": 103858, + "Ġشخص": 103859, + "ĠÑħоÑĤ": 103860, + "ĠÚ©ÙĨÛĮد": 103861, + "гл": 103862, + "à¸Ńà¸Ńà¸ģ": 103863, + "éĢĻ": 103864, + "ĠزÛĮر": 103865, + "íķŃ": 103866, + "ĠÃĸz": 103867, + "åij³": 103868, + "ØŃدة": 103869, + "Ġkažd": 103870, + "ĠÑĨвеÑĤ": 103871, + "Ġç¾": 103872, + "Ġкож": 103873, + "ĠÐŃÑĤо": 103874, + "ÑıÑĤелÑĮ": 103875, + "лаÑģÑĮ": 103876, + "âĢĮØ´ÙĪد": 103877, + "μι": 103878, + "Ġæ²": 103879, + "Ġsüre": 103880, + "ละ": 103881, + "éħĴ": 103882, + "ึà¸ģษ": 103883, + "λλά": 103884, + "çij": 103885, + "ĠìĥĪ": 103886, + "Ġसह": 103887, + "ĠHÃł": 103888, + "ë¦¬ê³ł": 103889, + "صر": 103890, + "ĠæĬķ": 103891, + "éłŃ": 103892, + "Ġbá»ĩnh": 103893, + "ĠìĥĿê°ģ": 103894, + "Ġà¤ħà¤Ń": 103895, + "ê³µì§Ģ": 103896, + "ìĶ": 103897, + "á»Ŀi": 103898, + "çŃĶ": 103899, + "ĠbÃłi": 103900, + "одÑĸ": 103901, + "าà¸Ĥ": 103902, + "ников": 103903, + "Ġdönem": 103904, + "วม": 103905, + "ãĥĨãĤ£": 103906, + "ारण": 103907, + "оги": 103908, + "Ġkiá»ĥm": 103909, + "оÑĦ": 103910, + "äºĪ": 103911, + "åĨ³": 103912, + "اÙĦات": 103913, + "Ġnếu": 103914, + "Ġcest": 103915, + "زش": 103916, + "ÙİÙĦ": 103917, + "Ġتأ": 103918, + "ĠÄijạo": 103919, + "Ïįν": 103920, + "ĠвнÑĥ": 103921, + "ĠجاÙħ": 103922, + "ivnÃŃ": 103923, + "ĠìŀĪìĬµëĭĪëĭ¤": 103924, + "ÏĬ": 103925, + "æĦĽ": 103926, + "ãĥĽ": 103927, + "мÑĸн": 103928, + "ĠtÃŃm": 103929, + "ằm": 103930, + "ê·ł": 103931, + "äºķ": 103932, + "Ġxây": 103933, + "ĠìĽĶ": 103934, + "елен": 103935, + "Ġà¹Ĥà¸Ķย": 103936, + "اÙĦÙĩ": 103937, + "Ġbất": 103938, + "á»ĵm": 103939, + "âĢĮÚ¯": 103940, + "ÙĪرة": 103941, + "بات": 103942, + "Ġbán": 103943, + "ẫu": 103944, + "اÙĨÙĪÙĨ": 103945, + "Ġzákon": 103946, + "áž": 103947, + "ì¶Ķ": 103948, + "à¹ģà¸ģ": 103949, + "ãĤįãģĨ": 103950, + "ÑĢоÑĤ": 103951, + "çĵ": 103952, + "Ġвони": 103953, + "Ġxác": 103954, + "ĠدÛĮگر": 103955, + "ÏĢοι": 103956, + "ĠнеÑģк": 103957, + "رسÛĮ": 103958, + "ĠëĿ¼": 103959, + "تÙĦ": 103960, + "λά": 103961, + "ĠÑıвлÑıеÑĤÑģÑı": 103962, + "ä¾Ŀ": 103963, + "Ġåħ¬": 103964, + "Ĺi": 103965, + "ĠíĬ¹": 103966, + "ÙĥÙĪÙĨ": 103967, + "ắp": 103968, + "جÙħÙĪع": 103969, + "ÏĨοÏģ": 103970, + "ело": 103971, + "Ġgüven": 103972, + "Ġмай": 103973, + "ĠÑģоз": 103974, + "à¸ģระ": 103975, + "ĠاسÙĦاÙħ": 103976, + "ĠÑīе": 103977, + "Ġsá»ijng": 103978, + "à¥įब": 103979, + "کار": 103980, + "ĠthuáºŃt": 103981, + "ĠnÃŃ": 103982, + "第ä¸Ģ": 103983, + "è¦ĸ": 103984, + "à¹Ģà¸ģม": 103985, + "اÙĬØ©": 103986, + "ĠÎĪ": 103987, + "ãĤ¶": 103988, + "ĠÙħÙĪÙĤع": 103989, + "ĠåĴ": 103990, + "è¡ĵ": 103991, + "ĠÐŀд": 103992, + "Ġä¸ī": 103993, + "lerinde": 103994, + "ĠÑģвоÑĹ": 103995, + "à¥Ģà¤ı": 103996, + "ĠthÆ°Æ¡ng": 103997, + "ÏĥÏĦο": 103998, + "ĠغÙĬر": 103999, + "Ġپر": 104000, + "ĠÑģебе": 104001, + "Ġвк": 104002, + "Ġkhai": 104003, + "ãĤĢ": 104004, + "ĠÙĨظر": 104005, + "ĠдокÑĥм": 104006, + "à¹ĩà¸ļ": 104007, + "ĠíķľêµŃ": 104008, + "ï½ī": 104009, + "å·¥ç¨ĭ": 104010, + "ĠÙĪÙĦ": 104011, + "ØŃÙĬ": 104012, + "Ġпла": 104013, + "ĠÄ°stanbul": 104014, + "âĢĻde": 104015, + "алÑģÑı": 104016, + "ĠØ¢ÙĨÙĩا": 104017, + "ĠاÙĩ": 104018, + "Ġê´Ģ리": 104019, + "Ġanh": 104020, + "Å¡ÃŃm": 104021, + "larla": 104022, + "ï¼Ŀ": 104023, + "nostÃŃ": 104024, + "ÑģÑĤве": 104025, + "ÛĮÙģ": 104026, + "Ġگرد": 104027, + "ãĤĮãĤĭ": 104028, + "Ġvá»±": 104029, + "ÄĽnÃŃ": 104030, + "Ġgörev": 104031, + "Ġyılında": 104032, + "Ġlợi": 104033, + "Ġanlam": 104034, + "ĠпÑĢовод": 104035, + "ÑĨÑİ": 104036, + "Ġåī": 104037, + "Ġë§İ": 104038, + "ÑĢаÑģ": 104039, + "ĠŽ": 104040, + "کاÙĨ": 104041, + "ÐĻ": 104042, + "ãģ£ãģ¨": 104043, + "Ú©ÙĦ": 104044, + "ายà¸Ļ": 104045, + "عاÙĦ": 104046, + "Ġký": 104047, + "ĠмаÑĤеÑĢи": 104048, + "ê»ĺ": 104049, + "ılması": 104050, + "μÎŃν": 104051, + "ĠÙĨÙħÛĮ": 104052, + "Ġcuá»Ļc": 104053, + "Ġδεν": 104054, + "å¹²": 104055, + "____": 104056, + "à¥Ģà¤Ł": 104057, + "Ġçıkar": 104058, + "ĠkonuÅŁ": 104059, + "иÑĤелÑĮно": 104060, + "lantı": 104061, + "à¹Ħล": 104062, + "å¾ĭ": 104063, + "ĠíĶ¼": 104064, + "ìĻ¸": 104065, + "Ġsáng": 104066, + "éģĶ": 104067, + "ожд": 104068, + "Ġآخر": 104069, + "ilece": 104070, + "à¥Īन": 104071, + "Ġjedn": 104072, + "ĠÑģпеÑĨи": 104073, + "´Ŀ": 104074, + "ĠÚĺ": 104075, + "ĠãĢĤĊ": 104076, + "èģĮ": 104077, + "ĠÙĨÛĮ": 104078, + "ÑĤоÑĢа": 104079, + "λι": 104080, + "ĠÙĪب": 104081, + "iÅŁim": 104082, + "ç»´": 104083, + "ãĢĢi": 104084, + "Ġmua": 104085, + "Ġjiž": 104086, + "è¶Ĭ": 104087, + "ãĤĴè¦ĭ": 104088, + "Ġná»Ļi": 104089, + "à¥įà¤Ĺ": 104090, + "種": 104091, + "ĠãĢĢãĢĢãĢĢ": 104092, + "à¹ĥหม": 104093, + "ĠÎĨ": 104094, + "ÙĨدÛĮ": 104095, + "ĠÑģÑĩ": 104096, + "Ġlá»ĩ": 104097, + "lub": 104098, + "еÑĢÑĤ": 104099, + "ĠاطÙĦ": 104100, + "ĠÑģеÑĢед": 104101, + "Ġéģ": 104102, + "Ġзал": 104103, + "ÙĨÛĮÙĨ": 104104, + "çŁ¥éģĵ": 104105, + "Ø¢ÙĨ": 104106, + "Ġкап": 104107, + "Ġà¹Ħม": 104108, + "ůvod": 104109, + "ĠپاÛĮ": 104110, + "ÑĤÑĢи": 104111, + "Ġiht": 104112, + "à¹Ĭ": 104113, + "ĠвÑģÑĸ": 104114, + "Ġthay": 104115, + "åĨµ": 104116, + "ĠعÙĨÙĪاÙĨ": 104117, + "ĠÎ¥": 104118, + "à¸Ŀ": 104119, + "εÏĦαι": 104120, + "iyordu": 104121, + "ï¼ĮèĢĮ": 104122, + "çļĦ人": 104123, + "Ġसà¤Ń": 104124, + "à¹īà¸Ńย": 104125, + "ικο": 104126, + "ãĤĵãģ§": 104127, + "족": 104128, + "ÙĨجÙĦÙĬزÙĬØ©": 104129, + "Ġžád": 104130, + "ÑĢави": 104131, + "γγ": 104132, + "æµĭ": 104133, + "оÑĨÑĸ": 104134, + "ãĢĢãĢĢĠãĢĢ": 104135, + "Ġतरह": 104136, + "ĠëĨ": 104137, + "à¥Ģà¤ļ": 104138, + "à¹Īม": 104139, + "Ġgá»ĵm": 104140, + "Ġkiá»ĩn": 104141, + "è·Ł": 104142, + "Φ": 104143, + "esinin": 104144, + "é¥": 104145, + "é«Ķ": 104146, + "оÑĩно": 104147, + "रण": 104148, + "æĺ¥": 104149, + "ç¶ĵ": 104150, + "Ġبار": 104151, + "ê·¼": 104152, + "éĻħ": 104153, + "ĠسÙĬ": 104154, + "ÑģÑĥÑĤ": 104155, + "ìµľ": 104156, + "å±ħ": 104157, + "ĠÄįesk": 104158, + "ÎijÎĿ": 104159, + "Ġdiá»ĩn": 104160, + "Ġεί": 104161, + "à¸ĩà¸Ĺ": 104162, + "ãĤ©": 104163, + "Ġvá»±c": 104164, + "вав": 104165, + "tıģı": 104166, + "Ġëªħ": 104167, + "ην": 104168, + "виÑĤ": 104169, + "ĠØ£Ùĥ": 104170, + "ĠпÑĢоп": 104171, + "rak": 104172, + "ÑĢаÑĤи": 104173, + "ĠÄijánh": 104174, + "ÑĢеп": 104175, + "ê´ij": 104176, + "еÑĨÑĮ": 104177, + "Ġबत": 104178, + "ĠåĮĹ": 104179, + "Ġsát": 104180, + "ledi": 104181, + "ìłģìľ¼ë¡ľ": 104182, + "ůj": 104183, + "Û°Û°": 104184, + "Ġnasıl": 104185, + "ĠÙĪس": 104186, + "Ġεξ": 104187, + "вÑĭ": 104188, + "ç½Ĺ": 104189, + "ارÛĮØ®": 104190, + "à¸Ľà¸¥": 104191, + "ίκ": 104192, + "Ġê¸Ī": 104193, + "åĩł": 104194, + "å¼·": 104195, + "è¿Ķ": 104196, + "Ġnhá»ı": 104197, + "å¾Ģ": 104198, + "Ġдаже": 104199, + "Ġçev": 104200, + "кÑĸ": 104201, + "ĠØ£Ùħ": 104202, + "ีส": 104203, + "สามารà¸ĸ": 104204, + "ĠÐĦ": 104205, + "ÑħодиÑĤ": 104206, + "ëĸ": 104207, + "Ġtruyá»ģn": 104208, + "ĠÑģÑĤан": 104209, + "ëĵ¤ìĿĢ": 104210, + "اÙĦت": 104211, + "़à¥ĩ": 104212, + "Ġà¤ħब": 104213, + "æķ¸": 104214, + "ĠдÑĸÑı": 104215, + "ĠÙħتر": 104216, + "Ġë¸": 104217, + "ï¾į": 104218, + "Ġê³¼": 104219, + "ĠزÛĮ": 104220, + "ëŁ¼": 104221, + "ĠÐŁÐµÑĢ": 104222, + "Ġsık": 104223, + "ноÑģÑĤÑĮÑİ": 104224, + "Ġeden": 104225, + "ادر": 104226, + "ãĦ": 104227, + "ĠлеÑĩ": 104228, + "ĠÙĩØ°Ùĩ": 104229, + "ضÙĪع": 104230, + "ĠìķĦëĭĪ": 104231, + "irket": 104232, + "Ġاگر": 104233, + "ĠÑħоÑĩ": 104234, + "Ġбан": 104235, + "íĶĮ": 104236, + "æĢİä¹Ī": 104237, + "èĽ": 104238, + "Ġबà¤ļ": 104239, + "Ġکتاب": 104240, + "çīĮ": 104241, + "Ġдва": 104242, + "جر": 104243, + "ĠпÑĢоÑģÑĤо": 104244, + "Ġà¤Ĩव": 104245, + "Ġmức": 104246, + "į¼": 104247, + "ĠjÃŃ": 104248, + "íİĺ": 104249, + "Ġtamam": 104250, + "åĪĽ": 104251, + "à¸Ĵ": 104252, + "пеÑĩ": 104253, + "à¥ĭस": 104254, + "ĠÑģем": 104255, + "ĠtÆ°Æ¡ng": 104256, + "ä¸ģ": 104257, + "ī´": 104258, + "ĠÑĢоÑģ": 104259, + "ĠмаÑĶ": 104260, + "æŃĮ": 104261, + "ĠداÙĨÙĦÙĪد": 104262, + "ĠLoÃłi": 104263, + "Ġedilm": 104264, + "Ġkonu": 104265, + "ĠاÙĦÙħر": 104266, + "ĠulaÅŁ": 104267, + "Ġyüksek": 104268, + "οι": 104269, + "ÙİÙĨ": 104270, + "ĠbÄĽ": 104271, + "ãĤ·ãĥ§ãĥ³": 104272, + " ̄ ̄ ̄ ̄": 104273, + "Ġgüç": 104274, + "ĠاÙĪÙĦ": 104275, + "Ġма": 104276, + "Ġبخش": 104277, + "ाà¤ĸ": 104278, + "ĠвиÑģ": 104279, + "ženÃŃ": 104280, + "Ġzpůsob": 104281, + "znam": 104282, + "ĠرÙĪÛĮ": 104283, + "åĭĿ": 104284, + "।Ċ": 104285, + "ÙĦÙĤ": 104286, + "Ġжиз": 104287, + "ÑĢÑĸв": 104288, + "ĠÑĥпÑĢав": 104289, + "Ġphá»ij": 104290, + "icros": 104291, + "Ġà¹ģà¸ķ": 104292, + "Ġë°ķ": 104293, + "ÙĪات": 104294, + "ï¼Įä¸Ģ": 104295, + "анÑģ": 104296, + "ç´ļ": 104297, + "ยà¸Ļ": 104298, + "à¹ģà¸Ĥ": 104299, + "Ġgiáo": 104300, + "äºĮäºĮ": 104301, + "ĠÄ°s": 104302, + "ìĬ¹": 104303, + "Ġolacak": 104304, + "ĠCác": 104305, + "ĠÑĢÑĥб": 104306, + "ẹp": 104307, + "ÄŁiniz": 104308, + "ãģªãģ©": 104309, + "ĠмоÑĢ": 104310, + "ĠÑģдел": 104311, + "ÙĦÙħاÙĨ": 104312, + "ném": 104313, + "å°į": 104314, + "Ġdne": 104315, + "ì¶ľìŀ¥": 104316, + "عب": 104317, + ":::::::": 104318, + "ÎĴ": 104319, + "eket": 104320, + "ĠÑĢеÑĪ": 104321, + "èĪ¬": 104322, + "ĠíĻĶ": 104323, + "صد": 104324, + "ĠмаÑĢ": 104325, + "Ñıж": 104326, + "شار": 104327, + "ãģ²": 104328, + "ĠاÙĦÙĬ": 104329, + "Ùį": 104330, + "à¤Ĥà¤ľ": 104331, + "мÑĭ": 104332, + "Ġkarar": 104333, + "ÙĦÛĮسÛĮ": 104334, + "าà¸ĵ": 104335, + "群": 104336, + "Ġolması": 104337, + "Ġhazır": 104338, + "γÏģαÏĨ": 104339, + "¯u": 104340, + "вол": 104341, + "ĠÑģÑĤаÑĢ": 104342, + "ovala": 104343, + "Ġвозмож": 104344, + "Ġдав": 104345, + "風": 104346, + "را": 104347, + "Ġдопом": 104348, + "ê²ĥ": 104349, + "Ġìĺ¬": 104350, + "Ġåİ": 104351, + "Ġ못": 104352, + "uç": 104353, + "íļ": 104354, + "lük": 104355, + "ä¸Ńå¿ĥ": 104356, + "Ġदर": 104357, + "ĠâĹĨ": 104358, + "Ġtay": 104359, + "ĠبسÛĮ": 104360, + "ĠÏĥÏĦα": 104361, + "ĠÙħØ®": 104362, + "ÑıÑī": 104363, + "å·®": 104364, + "à¸ī": 104365, + "ëł¹": 104366, + "à¹ĥà¸Ļà¸ģาร": 104367, + "ĠÙĩÙĨ": 104368, + "ãģ¶": 104369, + "лÑĸд": 104370, + "åį°": 104371, + "Ġsao": 104372, + "ÅĻad": 104373, + "리ëĬĶ": 104374, + "Ñģлед": 104375, + "åĶ®": 104376, + "Ġ|:": 104377, + "æķĻèĤ²": 104378, + "Ġмол": 104379, + "ĠÙĩÙĬ": 104380, + "ëģ": 104381, + "ĠкÑĥлÑĮ": 104382, + "'nin": 104383, + "Ġخر": 104384, + "Ġgenel": 104385, + "Ġtá»Ń": 104386, + "Ġkurul": 104387, + "енÑĤи": 104388, + "à¥ĭà¤ľà¤¨": 104389, + "è¿Ļæł·": 104390, + "ĠмÑĸж": 104391, + "Ġnghiá»ĩm": 104392, + "ĠÏĢολ": 104393, + "æĭĽ": 104394, + "Ġà¤Ĺà¤ı": 104395, + "ầy": 104396, + "Ġcảm": 104397, + "ç´°": 104398, + "rıca": 104399, + "ĠعÙĦÛĮ": 104400, + "ิà¹ī": 104401, + "hur": 104402, + "ĠchÆ°a": 104403, + "ÑĥÑĶÑĤÑĮÑģÑı": 104404, + "ãģ©ãģĨ": 104405, + "Ñĥл": 104406, + "ิร": 104407, + "Ġæľī": 104408, + "ä¼¼": 104409, + "ÑĦеÑĢ": 104410, + "ÑįÑĤомÑĥ": 104411, + "æĹħ": 104412, + "ĠÙħÙĪج": 104413, + "Ġ본": 104414, + "Ġgiá»Ŀ": 104415, + "Ġkiến": 104416, + "à¹Īวย": 104417, + "Ġdüny": 104418, + "ĠزÙħ": 104419, + "овÑĸ": 104420, + "ĠÑĨÑĮого": 104421, + "ิà¸ļ": 104422, + "ĠìĨIJ": 104423, + "èIJ¥": 104424, + "ĠÑĢÑĸз": 104425, + "Ġhá»Ĺ": 104426, + "ÑĢÑĸб": 104427, + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ": 104428, + "ìľ¼ë©°": 104429, + "äºĨä¸Ģ": 104430, + "ĠÙĤبÙĦ": 104431, + "é¾Ļ": 104432, + "Ġگذ": 104433, + "ĠÙĤد": 104434, + "ãģªãģĭãģ£ãģŁ": 104435, + "Ġà¹Ģร": 104436, + "å¸Į": 104437, + "ĠÑģÑħ": 104438, + "ĠгÑĢом": 104439, + "åĽ¢": 104440, + "Ġì§ij": 104441, + "ĠлÑĥÑĩ": 104442, + "åħµ": 104443, + "ĠÐŀÑĤ": 104444, + "Ġmuá»ijn": 104445, + "ãģĺãĤĥ": 104446, + "ovnÃŃ": 104447, + "ë©´ìĦľ": 104448, + "ë³Ģ": 104449, + "Ġнеб": 104450, + "Ñģии": 104451, + "ÙĨÙħ": 104452, + "ÄŁin": 104453, + "Ġtoho": 104454, + "eniz": 104455, + "باش": 104456, + "ĠÑģлÑĥж": 104457, + "Ġbợi": 104458, + "Ġüzere": 104459, + "Ġsadece": 104460, + "ĠÏĢαÏģ": 104461, + "³³³³³³³³³³³³³³³³": 104462, + "èĮĥ": 104463, + "ÏĦικÏĮ": 104464, + "ĠäºĮ": 104465, + "ãĤĪãģĨãģ«": 104466, + "èŀ": 104467, + "ãģ®ãģ¯": 104468, + "ĠÑĥкÑĢаÑĹн": 104469, + "Ġbắt": 104470, + "ван": 104471, + "ĠÑģÑĤÑĢа": 104472, + "è¡Ģ": 104473, + "nutÃŃ": 104474, + "okt": 104475, + "รà¸ĩà¹Ģร": 104476, + "ĠصÙģ": 104477, + "åħļ": 104478, + "ÏĦί": 104479, + "ï¼ģãĢįĊĊ": 104480, + "ĠÑĤемп": 104481, + "é¡Į": 104482, + "Ġsluž": 104483, + "Ñĥков": 104484, + "ĠnghÄ©a": 104485, + "çĶ²": 104486, + "Ġdá»ħ": 104487, + "ови": 104488, + "ÏĦÏħ": 104489, + "رÛĮÚ©": 104490, + "ĠAnh": 104491, + "ĠвÑģего": 104492, + "âĢĮÚ©ÙĨ": 104493, + "teÅĻÃŃ": 104494, + "Ġmục": 104495, + "ÙĩÙĨÚ¯": 104496, + "ĠÐŁÐ¾Ñģ": 104497, + "ÚĺÙĩ": 104498, + "ĠاÙĦغ": 104499, + "æĿ¾": 104500, + "ysl": 104501, + "Ġyapılan": 104502, + "çĪ¶": 104503, + "Ġmạnh": 104504, + "راÙĩ": 104505, + "à¸Ķà¸ĩ": 104506, + "oÄį": 104507, + "ë§IJ": 104508, + "åłĤ": 104509, + "маÑĤ": 104510, + "ĠeÅŁ": 104511, + "ÙĪÙħات": 104512, + "Ġساخت": 104513, + "åĽłä¸º": 104514, + "ĠпÑĢий": 104515, + "ılmÄ±ÅŁ": 104516, + "館": 104517, + "ุà¸ĩ": 104518, + "Ġëģ": 104519, + "à¸ķาม": 104520, + "åIJī": 104521, + "μή": 104522, + "Ġæľ¬": 104523, + "Ġzáklad": 104524, + "تØŃ": 104525, + "è¾¼": 104526, + "ĠвÑĸй": 104527, + "ĠÙħÙĨØ·": 104528, + "Ġtoán": 104529, + "каÑĢ": 104530, + "ĠÐĹа": 104531, + "ĠпÑĢимен": 104532, + "ãĤĭãģ¨": 104533, + "ัà¸Ĺ": 104534, + "ÛĮس": 104535, + "ĠاÙĨجاÙħ": 104536, + "ĠعÙĦÙĬ": 104537, + "़ि": 104538, + "ených": 104539, + "ĠLiên": 104540, + "Ġпа": 104541, + "éļĬ": 104542, + "Ġmohou": 104543, + "ĠкÑĸлÑĮ": 104544, + "ĠΤο": 104545, + "اÙĦب": 104546, + "ÎŃν": 104547, + "ĠnabÃŃ": 104548, + "çi": 104549, + "lerden": 104550, + "Ġthanh": 104551, + "Ġbütün": 104552, + "ĠåŁ": 104553, + "ì¸ł": 104554, + "Ġzat": 104555, + "ÙĬÙĪ": 104556, + "Ġμια": 104557, + "uyết": 104558, + "Ñijн": 104559, + "åĪĴ": 104560, + "ливо": 104561, + "à¹Īà¸Ńà¸ĩ": 104562, + "ä»ĸ们": 104563, + "Ġбаг": 104564, + "िà¤Ń": 104565, + "ĠÑĤам": 104566, + "ĠпÑĢеп": 104567, + "ิà¸Ĭ": 104568, + "âĢĻÑıз": 104569, + "ĠPhân": 104570, + "жен": 104571, + "à¥Īà¤ķ": 104572, + "ĠÑģлÑĥÑĩае": 104573, + "Ġ.:": 104574, + "åŃ¦æł¡": 104575, + "Ä°N": 104576, + "義": 104577, + "ĠÑģÑĤо": 104578, + "Ġहर": 104579, + "Ïħν": 104580, + "Ġxem": 104581, + "ĠбÑĥÑĤи": 104582, + "ÑģиÑĤ": 104583, + "çªģ": 104584, + "à¥įà¤Ľ": 104585, + "åij¢": 104586, + "ï¼Įä¹Ł": 104587, + "enÄĽ": 104588, + "Ġκά": 104589, + "iyorum": 104590, + "ĠÚ¯Ùģت": 104591, + "âĹıâĹıâĹıâĹı": 104592, + "ัม": 104593, + "ĠÐļон": 104594, + "ноÑĪ": 104595, + "ниÑĨÑĤ": 104596, + "üzel": 104597, + "sÃŃ": 104598, + "師": 104599, + "صÙĪÙĦ": 104600, + "çĥŃ": 104601, + "ĠÄijủ": 104602, + "ãĤ®": 104603, + "æķħ": 104604, + "ĠÅ¡kol": 104605, + "Ñĩен": 104606, + "à¹Ģย": 104607, + "à¸Ļà¸Ļ": 104608, + "ÙĢÙĢÙĢÙĢ": 104609, + "Ġüç": 104610, + "念": 104611, + "ãĥªãĤ¢": 104612, + "ĠíĻĺ": 104613, + "Ġéĩij": 104614, + "çıŃ": 104615, + "ĠÑģклад": 104616, + "Ñıми": 104617, + "üf": 104618, + "Ġhã": 104619, + "ĠÄIJại": 104620, + "ÂĤ": 104621, + "åĦª": 104622, + "Ġbulunan": 104623, + "ĠاÙĦÙħØŃ": 104624, + "æĪı": 104625, + "Ġè©": 104626, + "ĠноÑĢм": 104627, + "Ġchuẩn": 104628, + "ĠзаÑģÑĤ": 104629, + "ĠvÃŃce": 104630, + "Ðĸ": 104631, + "Ġà¤Ĩध": 104632, + "ĠÄįas": 104633, + "ĠбоÑĢ": 104634, + "Ïģια": 104635, + "ĠÙħاÙĩ": 104636, + "Ġíħ": 104637, + "ÅĻel": 104638, + "Ñıви": 104639, + "ÏĦεÏĤ": 104640, + "inÄĽ": 104641, + "ĠпеÑĢе": 104642, + "éķĩ": 104643, + "à¥įà¤ŀ": 104644, + "Ġéĺ": 104645, + "à¹Īาว": 104646, + "รร": 104647, + "ĠسÙĩ": 104648, + "вали": 104649, + "çķĻ": 104650, + "ĠÑĦÑĥнк": 104651, + "Ġíĸī": 104652, + "ÙģÙĩ": 104653, + "çĶŁæ´»": 104654, + "èģŀ": 104655, + "okud": 104656, + "ĠìĤ´": 104657, + "ızı": 104658, + "ĠполÑĥ": 104659, + "ï¼Įä½ł": 104660, + "شاÙĨ": 104661, + "決": 104662, + "бÑĢÑı": 104663, + "оÑģÑĥдаÑĢ": 104664, + "Ġoyun": 104665, + "ании": 104666, + "Ġprů": 104667, + "Ġnáv": 104668, + "ĠменÑı": 104669, + "Ġìŀĺ": 104670, + "ĠÄ°n": 104671, + "ĠthÃŃch": 104672, + "ĠÄijảm": 104673, + "åľĴ": 104674, + "Ġвже": 104675, + "ĠloÃłi": 104676, + "ĠÐŀн": 104677, + "меÑģÑĤ": 104678, + "Ġξ": 104679, + "ãĢħ": 104680, + "Ġchiế": 104681, + "ÑĩÑĸ": 104682, + "Ġíijľ": 104683, + "ëĭ¬": 104684, + "Ġëĭ¬": 104685, + "à¥Ģड": 104686, + "ÑĢалÑĮ": 104687, + "dik": 104688, + "ĠíĨł": 104689, + "ëŁī": 104690, + "ĠصÙĨ": 104691, + "Ġstej": 104692, + "ĠакÑĤив": 104693, + "Ġé¦": 104694, + "Ġà¹Ħà¸Ķ": 104695, + "æĬĢæľ¯": 104696, + "ĠprostÅĻed": 104697, + "害": 104698, + "ãģIJ": 104699, + "ĠoluÅŁtur": 104700, + "elop": 104701, + "ãģ¡ãĤĥ": 104702, + "éĥİ": 104703, + "ضا": 104704, + "Ġخط": 104705, + "ë°ķ": 104706, + "еÑģÑı": 104707, + "ĠÙĩÛĮ": 104708, + "над": 104709, + "ĠngÃłnh": 104710, + "ÑĢÑĥÑĪ": 104711, + "ãģĦãģĦ": 104712, + "Ġürün": 104713, + "à¸Ńà¸ķ": 104714, + "à¥ĭप": 104715, + "Ġsayı": 104716, + "à¥Ģस": 104717, + "ениÑħ": 104718, + "ĠÑģим": 104719, + "à¥Ģद": 104720, + "å¤ī": 104721, + "à¹Īวม": 104722, + "Ġà¹Ģà¸Ĥ": 104723, + "å·²ç»ı": 104724, + "аÑĤо": 104725, + "ĠÑĢайон": 104726, + "íĥĿ": 104727, + "ĠÑĤÑĢа": 104728, + "layan": 104729, + "ếp": 104730, + "à¤¾à¤Ł": 104731, + "خاب": 104732, + "人æ°ij": 104733, + "å®Ŀ": 104734, + "èĨ": 104735, + "èªį": 104736, + "naÄį": 104737, + "Ġîł": 104738, + "ĠÐļи": 104739, + "ĠbaÅŁka": 104740, + "ců": 104741, + "ضع": 104742, + "èĪª": 104743, + "ีม": 104744, + "Ñĭми": 104745, + "ÎĻΣ": 104746, + "Ġشرکت": 104747, + "ยว": 104748, + "ĠmusÃŃ": 104749, + "Ġнал": 104750, + "ีà¸Ĺ": 104751, + "Ġáp": 104752, + "ราย": 104753, + "æ²¹": 104754, + "leme": 104755, + "Ġमन": 104756, + "à¹Ħà¸Ł": 104757, + "аÑĤив": 104758, + "¸ı": 104759, + "èŃ°": 104760, + "ÏĥÏĦα": 104761, + "íĸ¥": 104762, + "еÑĤÑĥ": 104763, + "ĠÑģвÑıз": 104764, + "едеÑĢа": 104765, + "Ġخارج": 104766, + "าษ": 104767, + "âĢĮÙ¾": 104768, + "Ñĸг": 104769, + "é¡ŀ": 104770, + "Ġkhả": 104771, + "ĠÑģпÑĢав": 104772, + "è¡Ĺ": 104773, + "ãĥķãĤ¡": 104774, + "ĠмеждÑĥ": 104775, + "Ñĥли": 104776, + "Ġبزر": 104777, + "ÑĨен": 104778, + "Ġekonom": 104779, + "دÙĨ": 104780, + "اÙħÛĮ": 104781, + "าสà¸ķร": 104782, + "ĠnÄĽkol": 104783, + "gün": 104784, + "зи": 104785, + "ĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂł": 104786, + "离": 104787, + "ĠtrÆ°á»Łng": 104788, + "ıi": 104789, + "íݸ": 104790, + "ĠÑĢеб": 104791, + "åºķ": 104792, + "ĠتارÛĮØ®": 104793, + "нима": 104794, + "Ġthân": 104795, + "аÑĤелÑĮно": 104796, + "ĠاÙĦØ°ÙĬ": 104797, + "ÙĪÙĨÛĮ": 104798, + "Ġéĥ": 104799, + "Ġbình": 104800, + "ικήÏĤ": 104801, + "à¸ŀล": 104802, + "تÙħاع": 104803, + "ĠPraha": 104804, + "ĠÑģÑĤав": 104805, + "دÙĬد": 104806, + "Ġgiữa": 104807, + "ĠпÑĢовед": 104808, + "Âłk": 104809, + "ÙĨدگÛĮ": 104810, + "ÑĨий": 104811, + "çĴ": 104812, + "ĠاÙĦØ£Ùħ": 104813, + "Ġè´": 104814, + "Ø¥ÙĨجÙĦÙĬزÙĬØ©": 104815, + "ĠìŀĪìĹĪëĭ¤": 104816, + "ç·¨": 104817, + "ัà¸Ļà¸ĺ": 104818, + "ĠÑĢокÑĸв": 104819, + "Ġcáo": 104820, + "Ġkhó": 104821, + "ĠÙĨÙĪع": 104822, + "سÙĦ": 104823, + "ĠÑĥÑģлов": 104824, + "Ġcứu": 104825, + "ового": 104826, + "िà¤Ĺ": 104827, + "Ķëĭ¤": 104828, + "æĿİ": 104829, + "Ġbölg": 104830, + "Ġngu": 104831, + "Ġhữu": 104832, + "нии": 104833, + "ìłĪ": 104834, + "ĠпÑĢом": 104835, + "åıĮ": 104836, + "ĠdÆ°á»Ľi": 104837, + "Ю": 104838, + "ÙĬØ´": 104839, + "温": 104840, + "ëıħ": 104841, + "ĠзмÑĸ": 104842, + "θηκε": 104843, + "ĠbaÄŁlı": 104844, + "Ġüzerinde": 104845, + "Ġتغ": 104846, + "ĠпÑĢогÑĢа": 104847, + "iž": 104848, + "Ġç¥": 104849, + "Ġyardım": 104850, + "ÂĢÂĢ": 104851, + "ĠÑĥв": 104852, + "Ġrů": 104853, + "Ġchiến": 104854, + "νοÏĤ": 104855, + "ãģ¨ãģª": 104856, + "اÙĨت": 104857, + "è°·": 104858, + "ÃŃsk": 104859, + "isinde": 104860, + "Ġдог": 104861, + "追": 104862, + "ĠпÑĢоÑĤив": 104863, + "ÏģοÏħ": 104864, + "ãģ®ãģĭ": 104865, + "Ġbazı": 104866, + "ırak": 104867, + "à¥ĩष": 104868, + "ĠÙħشار": 104869, + "Ġìĸij": 104870, + "Ġнез": 104871, + "ĠØ°ÙĦÙĥ": 104872, + "調": 104873, + "åĤĻ": 104874, + "ĠÑĤÑĢан": 104875, + "ĠÏĢαÏģα": 104876, + "ÛĮÙħت": 104877, + "Ġtiến": 104878, + "ĠÙĩÙħÙĩ": 104879, + "efon": 104880, + "».ĊĊ": 104881, + "ĠÙĨد": 104882, + "جÙĦ": 104883, + "ĠدادÙĩ": 104884, + "Ġвед": 104885, + "Ġsın": 104886, + "ĠÑģвÑĸÑĤ": 104887, + "elerin": 104888, + "âĪ¨": 104889, + "Ġyür": 104890, + "дан": 104891, + "ĠÐŀÑģ": 104892, + "Ġhạng": 104893, + "许": 104894, + "ÏĥÏĦη": 104895, + "uyến": 104896, + "Ġнаб": 104897, + "ĠоÑħ": 104898, + "ÏĥÏī": 104899, + "Ġbyly": 104900, + "ÑģкиÑħ": 104901, + "lamak": 104902, + "иÑĤоÑĢ": 104903, + "Ġyatır": 104904, + "ĠпÑĢоизвод": 104905, + "ĠجÙħع": 104906, + "Åł": 104907, + "æıIJä¾Ľ": 104908, + "ĠprvnÃŃ": 104909, + "ĠαÏĢ": 104910, + "íĻ©": 104911, + "ĠпÑĢакÑĤи": 104912, + "lerinden": 104913, + "ĠнеобÑħодимо": 104914, + "康": 104915, + "Ùİا": 104916, + "ĠسÙĨ": 104917, + "Ä°L": 104918, + "Ġê´ij": 104919, + "ĠPÅĻ": 104920, + "çŀ": 104921, + "ĠÑĤемпеÑĢаÑĤÑĥ": 104922, + "Ġkabul": 104923, + "Ġbudou": 104924, + "ÑĨÑĸоналÑĮ": 104925, + "ï½ľ": 104926, + "Ġçocuk": 104927, + "ĠÑĤÑĸлÑĮки": 104928, + "byt": 104929, + "ãĥ¤": 104930, + "ĠÑģÑĤаÑĤ": 104931, + "ĠæĿ±": 104932, + "ležit": 104933, + "اسطة": 104934, + "ุร": 104935, + "iêm": 104936, + "ĠкÑĥлÑĮÑĤÑĥ": 104937, + "Ġпон": 104938, + "Ä©nh": 104939, + "åĸľ": 104940, + "нев": 104941, + "ÑĶн": 104942, + "ĠÑģооÑĤ": 104943, + "ëĿ": 104944, + "çĪ¾": 104945, + "Ġtuá»ķi": 104946, + "kanı": 104947, + "สำหร": 104948, + "اعت": 104949, + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 104950, + "деÑĢж": 104951, + "ĠоблаÑģÑĤи": 104952, + "Ġvừa": 104953, + "ĠÙħÙħ": 104954, + "à¸ģำ": 104955, + "à¹ģม": 104956, + "iversit": 104957, + "à¹ģส": 104958, + "欧": 104959, + "lanan": 104960, + "ÙĬÙĨØ©": 104961, + "سة": 104962, + "ĠлÑİдей": 104963, + "รรม": 104964, + "Ġì±Ħ": 104965, + "Ġ天": 104966, + "еннÑĭÑħ": 104967, + "à¹ģห": 104968, + "Ġspráv": 104969, + "èѦ": 104970, + "ï¼ľ": 104971, + "ัà¸Ĵ": 104972, + "ilecek": 104973, + "ĠæŁ": 104974, + "Ġèĭ±": 104975, + "ĠÑħоÑĢоÑĪ": 104976, + "ëłĩ": 104977, + "Û²Û°Û°": 104978, + "æĬ¤": 104979, + "Ġlã": 104980, + "ÅĻÃŃzenÃŃ": 104981, + "ĠتÙĪÙĦÛĮد": 104982, + "éļĽ": 104983, + "ãĤĮãģ°": 104984, + "áš": 104985, + "ارÙĬØ®": 104986, + "æĶ»": 104987, + "Ġkhoảng": 104988, + "éĻį": 104989, + "ован": 104990, + "Ġgây": 104991, + "âĢĻnın": 104992, + "Ø£ÙĨ": 104993, + "miÅŁtir": 104994, + "Ġsức": 104995, + "кÑĥÑģ": 104996, + "Ġüzerine": 104997, + "ÄŁÃ¼": 104998, + "ابر": 104999, + "ï¼Įå°±": 105000, + "Ì£": 105001, + "ĠëıĮ": 105002, + "Ġtrá»±c": 105003, + "æĶ¶å½ķ": 105004, + "æī¿": 105005, + "ĠNá»Ļi": 105006, + "ĠçĻ¾": 105007, + "ÑĪÑĮ": 105008, + "جة": 105009, + "ë²ł": 105010, + "à¤ī": 105011, + "à¸ı": 105012, + "Ġülk": 105013, + "ĠÙĩستÙĨد": 105014, + "ัà¸ļà¸ģาร": 105015, + "ĠÑıка": 105016, + "ãİ": 105017, + "ĠЯк": 105018, + "Ġгде": 105019, + "tiv": 105020, + "ãĢĪ": 105021, + "лÑİÑĩа": 105022, + "ा।Ċ": 105023, + "ĠÙħاÙĨ": 105024, + "Ġdlou": 105025, + "Ġãĥķ": 105026, + "à¤Ľ": 105027, + "Ġphục": 105028, + "akat": 105029, + "Ь": 105030, + "asını": 105031, + "ĠæĬķ稿": 105032, + "ÑĢев": 105033, + "Ġvyt": 105034, + "ĠzmÄĽ": 105035, + "ÏĦÏī": 105036, + "è¬": 105037, + "ĠÑĥм": 105038, + "Ġuzun": 105039, + "Ġproti": 105040, + "ĠÑģоÑģÑĤоÑı": 105041, + "ัà¸Ĵà¸Ļ": 105042, + "atik": 105043, + "Ġà¸ł": 105044, + "Ġà¤Ĩद": 105045, + "larından": 105046, + "æĢ¥": 105047, + "ãĥ¼ãĤ¯": 105048, + "ĠÙĦÙĦÙħ": 105049, + "ÙģتÙĩ": 105050, + ".:.": 105051, + "üçük": 105052, + "олева": 105053, + "à¹ĮĊ": 105054, + "ĠпеÑĢев": 105055, + "ĠÙĨسب": 105056, + "еленнÑı": 105057, + "'ın": 105058, + "νÏī": 105059, + "è¡£": 105060, + "ĠدÙĬ": 105061, + "åįĩ": 105062, + "Ġbelirt": 105063, + "Ġ/:": 105064, + "èijī": 105065, + "Ġvyh": 105066, + "çļĦä¸Ģ": 105067, + "èĥĮ": 105068, + "ĠìĹ´": 105069, + "ола": 105070, + "Ġتب": 105071, + "áci": 105072, + "ाà¤ī": 105073, + "à¸İ": 105074, + "çĶ¢": 105075, + "à¥Īल": 105076, + "ĠÙĤØ·": 105077, + "ëĦĪ": 105078, + "ắm": 105079, + "ÑĢÑıд": 105080, + "Ġphụ": 105081, + "ĠÙĪاÙĤع": 105082, + "Ġmerk": 105083, + "Ġchá»ijng": 105084, + "å¯Ł": 105085, + "ابط": 105086, + "usunda": 105087, + "Ġодна": 105088, + "žel": 105089, + "ĠÑģÑĥм": 105090, + "Ġphù": 105091, + "Ġζ": 105092, + "Ġzav": 105093, + "edn": 105094, + "ĠpotÅĻeb": 105095, + "ĠÚ©ÙĨÙĨد": 105096, + "ĠÑĢазв": 105097, + "¿ł": 105098, + "ĠاÙĦز": 105099, + "ĠmÄĽl": 105100, + "ĠÑģÑĤанов": 105101, + "ĠدرÛĮ": 105102, + "Ġtượng": 105103, + "ãģµ": 105104, + "Ġдви": 105105, + "ÑĮÑı": 105106, + "製": 105107, + "ĠتÙĦ": 105108, + "Å¡Å¥": 105109, + "ãģªãĤī": 105110, + "Ġà¤ķà¤Ī": 105111, + "Å¡i": 105112, + "âĢĮاست": 105113, + "Ġkỹ": 105114, + "ë§Ŀ": 105115, + "Ġà¤Ĩà¤ľ": 105116, + "ãĥ´": 105117, + "Ġbá»ı": 105118, + "duÄŁu": 105119, + "Ġæ¯": 105120, + "пеÑĢ": 105121, + "اÙĦÙĬØ©": 105122, + "æīĢ以": 105123, + "åħ°": 105124, + "Ġoran": 105125, + "Ġíŀ": 105126, + "Ïĥία": 105127, + "Ġphủ": 105128, + "ĠбÑĭла": 105129, + "Ñĩива": 105130, + "Ġê°Ħ": 105131, + "олÑĸ": 105132, + "Ùĥت": 105133, + "åħ§": 105134, + "à¥Ĥà¤Ł": 105135, + "Ġëĸ": 105136, + "ĠÙĦÙĩ": 105137, + "ëłĪìĿ´": 105138, + "Ġhız": 105139, + "å¤ı": 105140, + "ĠæĬķ稿æĹ¥": 105141, + "éļ¾": 105142, + "ĵ°": 105143, + "глÑıд": 105144, + "ìn": 105145, + "ĠмеÑĢ": 105146, + "ĠãĢij": 105147, + "ĠобÑī": 105148, + "umhur": 105149, + "çł´": 105150, + "лиÑģÑĮ": 105151, + "spÄĽ": 105152, + "رÙĬÙĤ": 105153, + "ĠتÙģ": 105154, + "ĠاÙĦÙĪ": 105155, + "çµ±": 105156, + "алоÑģÑĮ": 105157, + "Ġmô": 105158, + "Ġvá»ĩ": 105159, + "Ġδι": 105160, + "Ġзн": 105161, + "ĠبØŃ": 105162, + "تÙī": 105163, + "Ġì§ģ": 105164, + "Ġvelmi": 105165, + "uyá»ħn": 105166, + "Ġphạm": 105167, + "ÑģÑĤвом": 105168, + "ĠÙĪاÙĦÙħ": 105169, + "ĠбÑĭли": 105170, + "اذ": 105171, + "ÄĽÅĻ": 105172, + "âĦĸ": 105173, + "Ġполож": 105174, + "าà¸ģาร": 105175, + "ĠÄįlán": 105176, + "ÎķΡ": 105177, + "ĠìĤ°": 105178, + "βα": 105179, + "ĠæĹ¥æľ¬": 105180, + "زد": 105181, + "ĠÙĨÛĮست": 105182, + "Ġhayat": 105183, + "確": 105184, + "à¹Ģวล": 105185, + "ĠChÃŃnh": 105186, + "ï¼Įæĺ¯": 105187, + "ĠÙĪاØŃ": 105188, + "èı¯": 105189, + "ĠήÏĦαν": 105190, + "Ġxá»Ń": 105191, + "ĠÄįerv": 105192, + "ĠÙħدÛĮر": 105193, + "éĨ": 105194, + "ĠëĪĪ": 105195, + "ç»Ń": 105196, + "Ġtên": 105197, + "ìĸ¸": 105198, + "Ġortaya": 105199, + "Ġжен": 105200, + "ĠnÆ¡i": 105201, + "еннÑĭе": 105202, + "ÑĦекÑĤив": 105203, + "íĿ¬": 105204, + "Ġkhá»ı": 105205, + "ĠÄija": 105206, + "osyal": 105207, + "à¸Ľà¸£à¸°à¹Ģà¸Ĺศ": 105208, + "Ġodst": 105209, + "Ġà¸ĸ": 105210, + "ĠοÏĢο": 105211, + "æĶ¿åºľ": 105212, + "ĠbÃłn": 105213, + "ĠGiá»": 105214, + "Ġolduk": 105215, + "ование": 105216, + "à¸Ńส": 105217, + "Ġнев": 105218, + "ÏĦÏģο": 105219, + "ĠìĨį": 105220, + "kı": 105221, + "Ġबड": 105222, + "ĠÏħÏĢ": 105223, + "ĠVý": 105224, + "ï¾Ħ": 105225, + "çŃĸ": 105226, + "εÏĨ": 105227, + "Ġåħ¨": 105228, + "ĠÙģرÙĪØ´": 105229, + "ÙĤÛĮÙĤ": 105230, + "ä¼ģä¸ļ": 105231, + "εÏį": 105232, + "èĻŁ": 105233, + "Ġayr": 105234, + "ضÙĪ": 105235, + "Å¡el": 105236, + "ĠпÑĸÑģлÑı": 105237, + "ÑĸйÑģ": 105238, + "é¢Ĩ": 105239, + "کتر": 105240, + "лÑĥб": 105241, + "è«ĸ": 105242, + "æ°¸": 105243, + "езпеÑĩ": 105244, + "Ġкам": 105245, + "عداد": 105246, + "ê±°ëŀĺ": 105247, + "ูà¸ĩ": 105248, + "ĠتÙĩراÙĨ": 105249, + "ĠëĦĪ": 105250, + "ÑĢив": 105251, + "ĠÑĤоÑĢ": 105252, + "اÙī": 105253, + "'Ñıз": 105254, + "ÙIJÙĬ": 105255, + "ĠkhÃŃ": 105256, + "ĠÑĪÑĤ": 105257, + "Ġξε": 105258, + "Ġbiri": 105259, + "èĩ´": 105260, + "Ñĥвав": 105261, + "ãģĪãĤĭ": 105262, + "ĠдиÑģ": 105263, + "аÑİÑĤ": 105264, + "صب": 105265, + "åĿĩ": 105266, + "олÑİ": 105267, + "èĭ¥": 105268, + "Ġاث": 105269, + "sou": 105270, + "åIJĥ": 105271, + "ãģ®ãģł": 105272, + "ublik": 105273, + "лей": 105274, + "Âłm": 105275, + "Ġíıīê·ł": 105276, + "ạy": 105277, + "εÏĢ": 105278, + "tık": 105279, + "Ġvyu": 105280, + "عÙĪد": 105281, + "Ġдоз": 105282, + "Ġlá»ĭch": 105283, + "質": 105284, + "à¥ģà¤Ī": 105285, + "ัà¸ŀ": 105286, + "Ġtém": 105287, + "Ġkaç": 105288, + "Ġcái": 105289, + "Ġμα": 105290, + "âĢ¦âĢ¦ãĢįĊĊ": 105291, + "íĪ¬": 105292, + "رÙĪÙĩ": 105293, + "Ġrych": 105294, + "ÎijΤ": 105295, + "ĠÑĢÑĸв": 105296, + "ë³ij": 105297, + "åģ¥": 105298, + "Ġzdrav": 105299, + "Ġعدد": 105300, + "èįī": 105301, + "δια": 105302, + "ĠváºŃn": 105303, + "ÑĭÑĤ": 105304, + "ĠколиÑĩ": 105305, + "ÏĮÏĦε": 105306, + "Ġbırak": 105307, + "ĠØŃÙħ": 105308, + "Ġchá»ĭ": 105309, + "é»Ħ": 105310, + "ĠاÙĦÙħتØŃدة": 105311, + "ืà¸Ńà¸ģ": 105312, + "Ġзали": 105313, + "Ġnhanh": 105314, + "âĢĮتÙĪاÙĨ": 105315, + "ëĿ½": 105316, + "ĠتÙĪسط": 105317, + "è¦ģæ±Ĥ": 105318, + "алÑĥ": 105319, + "ünkü": 105320, + "ãģªãĤĵ": 105321, + "ĠTrong": 105322, + "à¸Ļะ": 105323, + "åij¼": 105324, + "ĠÙĬÙħ": 105325, + "ики": 105326, + "ĠÑĤÑĥÑĤ": 105327, + "ĠyaÅŁam": 105328, + "Ġmá»įi": 105329, + "éĽĦ": 105330, + "ĠØŃض": 105331, + "ĠавÑĤом": 105332, + "Ġसबस": 105333, + "Ġyếu": 105334, + "ãĤ¹ãĤ¿": 105335, + "Ïĩή": 105336, + "ÑĸÑİ": 105337, + "èĺ": 105338, + "ิย": 105339, + "Ġmev": 105340, + "ického": 105341, + "िह": 105342, + "åŃ£": 105343, + "θή": 105344, + "Ġबढ": 105345, + "ĠاÙĦÙħس": 105346, + "ÏĦοÏħ": 105347, + "ekli": 105348, + "ĠдеÑĢев": 105349, + "å¸Ń": 105350, + "æ²Ļ": 105351, + "ãģ«ãĤĤ": 105352, + "Ġoblast": 105353, + "Ġhá»Ļ": 105354, + "Ġå¹³": 105355, + ".:.:.:.:.:.:.:.:": 105356, + "Ġéĸ": 105357, + "Ġجز": 105358, + "ĠÙĩÙħÚĨ": 105359, + "並": 105360, + "ÑĨеп": 105361, + "ाĊ": 105362, + "ä¸ŃçļĦ": 105363, + "'nın": 105364, + "ĠíķĺëĬĶ": 105365, + "ÑĶÑĹ": 105366, + "Ġبش": 105367, + "åį´": 105368, + "ä¹ł": 105369, + "ĠاطÙĦاعات": 105370, + "Ġë²ł": 105371, + "ĠکردÙĨ": 105372, + "ाड": 105373, + "Ġà¤ħर": 105374, + "ĠHá»į": 105375, + "ĠгÑĢомад": 105376, + "Ġست": 105377, + "ÏĦιÏĤ": 105378, + "Ġancak": 105379, + "Ġог": 105380, + "ĠkteÅĻÃŃ": 105381, + "Ġæ¬": 105382, + "ĠNgh": 105383, + "Ġtedy": 105384, + "ĠÏĢο": 105385, + "Ġquân": 105386, + "ĠбÑĥли": 105387, + "è¯Ĩ": 105388, + "Ġtừng": 105389, + "人çļĦ": 105390, + "ีà¸ģาร": 105391, + "ĠκαÏĦα": 105392, + "Ġpouze": 105393, + "¡ng": 105394, + "Ġآر": 105395, + "ĠÑĤÑĥ": 105396, + "Ġtá»·": 105397, + "ĠDanh": 105398, + "оном": 105399, + "Ñģий": 105400, + "Ġà¹Ģà¸Ķ": 105401, + "£¨": 105402, + "Å¡k": 105403, + "ãĥĥãĥī": 105404, + "ardır": 105405, + "Ġyönet": 105406, + "Ñĥвали": 105407, + "åħĪçĶŁ": 105408, + "ĠÐIJÑĢ": 105409, + "Ġprotože": 105410, + "Ġíģ¬": 105411, + "Ġjednot": 105412, + "Ġtý": 105413, + "éĩĩ": 105414, + "Ġหร": 105415, + "Ġåľ°": 105416, + "红": 105417, + "Ġмолод": 105418, + "iêng": 105419, + "ĠÏĮÏĦι": 105420, + "ĠداشتÙĩ": 105421, + "Ġuygun": 105422, + "ĠопеÑĢа": 105423, + "åı«": 105424, + "Ġап": 105425, + "ĠкÑĥÑĢ": 105426, + "اعة": 105427, + "unuz": 105428, + "ĠìĤ¬ì§Ħ": 105429, + "Ġvô": 105430, + "çok": 105431, + "Ġèģ": 105432, + "ÑĤеÑĢеÑģ": 105433, + "ĠاستاÙĨ": 105434, + "алаÑģÑĮ": 105435, + "à¥ģव": 105436, + "ỳ": 105437, + "ĠlÆ°u": 105438, + "ĠТа": 105439, + "Ġlá»±a": 105440, + "'ÑĶ": 105441, + "Ġüy": 105442, + "ĠÛĮÚ©ÛĮ": 105443, + "æ¾": 105444, + "нем": 105445, + "ĠخاÙĨ": 105446, + "ĠÑįлек": 105447, + "ÙĤاÙĦ": 105448, + "лок": 105449, + "ĠÄijẹp": 105450, + "à¥īल": 105451, + "Ġmůž": 105452, + "ëĭ¤ëĬĶ": 105453, + "ĠíķĺëĤĺ": 105454, + "ÙĦت": 105455, + "çİ°åľ¨": 105456, + "мо": 105457, + "ÏħÏĥ": 105458, + "ãģŁãģ¡": 105459, + "ĠìłĦìĦ¸": 105460, + "à¥įà¤Łà¤°": 105461, + "عات": 105462, + "دÙĪ": 105463, + "俺": 105464, + "楽": 105465, + "森": 105466, + "ĠлиÑģÑĤ": 105467, + "δι": 105468, + "å¯Į": 105469, + "ĠÄijÆ°a": 105470, + "веÑģÑĤи": 105471, + "до": 105472, + "аннÑĸ": 105473, + "Ġüret": 105474, + "Ġgá»įi": 105475, + "ĠÑģвоÑİ": 105476, + "ừng": 105477, + "Ġtất": 105478, + "äºļæ´²": 105479, + "áce": 105480, + "NÃį": 105481, + "ĠÑĢÑĭ": 105482, + "满": 105483, + "ÏģεÏĤ": 105484, + "åħįè´¹": 105485, + "лоÑĤ": 105486, + "æĻº": 105487, + "Ġαγ": 105488, + "Ġà¤ħम": 105489, + "Ġç´": 105490, + "одо": 105491, + "Ñħи": 105492, + "Ġnguá»ĵn": 105493, + "éĥ¨åĪĨ": 105494, + "ваÑĤ": 105495, + "ĠÑĤеб": 105496, + "заÑĨÑĸÑĹ": 105497, + "ĠÐŁÑĢо": 105498, + "عÛĮ": 105499, + "ĠÙĪÙĬ": 105500, + "ëŀľ": 105501, + "Ġneby": 105502, + "ĠجدÛĮد": 105503, + "ÄŁimiz": 105504, + "£½": 105505, + "Ġà¤Ĩत": 105506, + "Ġà¤Ńर": 105507, + "æīĺ": 105508, + "å®īåħ¨": 105509, + "Ġëĵ¤ìĸ´": 105510, + "برد": 105511, + "Ġê²ĥìĿ´": 105512, + "亲": 105513, + "æ°ı": 105514, + "алÑĸз": 105515, + "lack": 105516, + "ĠÙħختÙĦÙģ": 105517, + "اÙĨÙĬØ©": 105518, + "Ġì²Ń": 105519, + "ĠвиÑĤ": 105520, + "Ġhareket": 105521, + "é¨": 105522, + "à¸Ļำ": 105523, + "Ġبرخ": 105524, + "売": 105525, + "Ñĩай": 105526, + "Ġanlat": 105527, + "Ġà¤ħव": 105528, + "ĠاÙģز": 105529, + "Ġhết": 105530, + "ĠÚĨÙĨد": 105531, + "éĹľ": 105532, + "пÑĢиÑĶм": 105533, + "gı": 105534, + "Ġkomp": 105535, + "ĠlỼp": 105536, + "Ġmá»Ĺi": 105537, + "à¸Ľà¸£à¸°à¸ģ": 105538, + "Ġhaf": 105539, + "Ġeder": 105540, + "ĠздоÑĢов": 105541, + "à¥Ĥम": 105542, + "본": 105543, + "Ġonun": 105544, + "ĠÙħردÙħ": 105545, + "ĠÐľÐ°ÑĢ": 105546, + "Ġìĸ´ëĸ": 105547, + "ман": 105548, + "ĠÑģилÑĮ": 105549, + "網": 105550, + "ë¸Ķ": 105551, + "лÑıеÑĤ": 105552, + "ĠнеÑģколÑĮко": 105553, + "landır": 105554, + "Ġвд": 105555, + "ĠÙĨÙĪ": 105556, + "ãģİ": 105557, + "ÑĤин": 105558, + "تش": 105559, + "аний": 105560, + "ĠtÅĻ": 105561, + "ÑģиÑħ": 105562, + "лом": 105563, + "æŃ©": 105564, + "ãİ¡": 105565, + "ĠØŃر": 105566, + "æĭį": 105567, + "enou": 105568, + "Ġвели": 105569, + "Ġδη": 105570, + "ska": 105571, + "主è¦ģ": 105572, + "اÙģØ©": 105573, + "ĠболÑĮÑĪе": 105574, + "ิศ": 105575, + "çĽĬ": 105576, + "ĠÙģÙĤØ·": 105577, + "å¨ģ": 105578, + "ĠhÆ°á»Łng": 105579, + "ĠDoÄŁ": 105580, + "ĠdÃłi": 105581, + "ĠгоÑĤов": 105582, + "Ġвам": 105583, + "âĢī": 105584, + "ाà¤ļ": 105585, + "åħ¸": 105586, + "à¹ĥหà¸į": 105587, + "Ġç«": 105588, + "ektör": 105589, + "Ġвел": 105590, + "ĠÙĦÙĪ": 105591, + "شتÙĩ": 105592, + "æĺ¾": 105593, + "ảy": 105594, + "à¹Ĥม": 105595, + "Ġtá»ķng": 105596, + "ĠповеÑĢÑħ": 105597, + "ÑĹв": 105598, + "Ġphép": 105599, + "çļĩ": 105600, + "ĠпоÑĢÑıд": 105601, + "ĠÑģооÑĤвеÑĤ": 105602, + "à¤Ŀ": 105603, + "ĠÑģебÑı": 105604, + "ĠëĤł": 105605, + "ĠбÑĥла": 105606, + "à¹īาย": 105607, + "ĠãĢĢãĢĢãĢĢãĢĢ": 105608, + "ĠÙħجÙħÙĪع": 105609, + "ï¼Į以": 105610, + "ĠبÙĪدÙĩ": 105611, + "μÏĮ": 105612, + "Ġíݸ": 105613, + "eÅŁit": 105614, + "ÑİÑīие": 105615, + "ÑİÑīиÑħ": 105616, + "åŁºéĩij": 105617, + "ĠتØŃت": 105618, + "ĠвлаÑģ": 105619, + "lerle": 105620, + "ãĤ²": 105621, + "ëĬĺ": 105622, + "èĵ": 105623, + "manın": 105624, + "ìŀĪ": 105625, + "Ġzast": 105626, + "ĠÑĩеловек": 105627, + "à¥ĩब": 105628, + "peÄį": 105629, + "ĠبرÙĨاÙħÙĩ": 105630, + "Ġslov": 105631, + "ĠnÄĽjak": 105632, + "ê·ľ": 105633, + "à¥ĩह": 105634, + "èŤ": 105635, + "ĠبÛĮشتر": 105636, + "iliz": 105637, + "ĠëĶĶ": 105638, + "ازÙĩ": 105639, + "تد": 105640, + "Ġetm": 105641, + "Ġëĭ¤ë¥¸": 105642, + "Ġvů": 105643, + "å°Ħ": 105644, + "ĠклаÑģ": 105645, + "вÑĢоп": 105646, + "æ´¾": 105647, + "ĠÄijình": 105648, + "ÑĥÑİÑĤ": 105649, + "ÑĥеÑĤÑģÑı": 105650, + "éľ²": 105651, + "ĠÑģкоÑĢ": 105652, + "ĠваÑģ": 105653, + "íķĺìĺĢëĭ¤": 105654, + "Ġداشت": 105655, + "ĠçĦ": 105656, + "Ġ西": 105657, + "ĠκαÏĦά": 105658, + "०": 105659, + "ìĹĨ": 105660, + "ĠخدÙħ": 105661, + "اسÙħ": 105662, + "ÎijΡ": 105663, + "ĠAma": 105664, + "奥": 105665, + "Ġبزرگ": 105666, + "ĠÐĴÑĸн": 105667, + "ĠÅĺ": 105668, + "Ġà¸Īาà¸ģ": 105669, + "ĠÑħаÑĢакÑĤеÑĢ": 105670, + "ĠÄijá»Ļi": 105671, + "ĠÑĢозвиÑĤ": 105672, + "ĠпÑĢоÑĦеÑģ": 105673, + "ĠконÑĤÑĢ": 105674, + "ÎŁÎĽ": 105675, + "Ġminh": 105676, + "ä¼ij": 105677, + "쪽": 105678, + "ĠchÆ¡i": 105679, + "заÑĨии": 105680, + "ĠдÑĸÑıлÑĮ": 105681, + "ëĨ": 105682, + "Ġngay": 105683, + "à¥Ĥà¤Ĥ": 105684, + "Ġihtiy": 105685, + "éĽª": 105686, + "Ġê´Ģ리ìŀIJ": 105687, + "Ġcụ": 105688, + "Ġì§Ī": 105689, + "ÙĬØ«": 105690, + "ặp": 105691, + "ÙĪاع": 105692, + "ãģĤãģ£ãģŁ": 105693, + "Ġçľ": 105694, + "Ġìļ°ë¦¬": 105695, + "à¹Īà¸ĩà¸Ĥ": 105696, + "ĠçŃ": 105697, + ")ØĮ": 105698, + "Ãłm": 105699, + "ÙĦÛĮÙĦ": 105700, + "Ġ걸": 105701, + "алÑĮниÑħ": 105702, + "æŶåĢĻ": 105703, + "undan": 105704, + "ĠGün": 105705, + "Ġtopl": 105706, + "ĠÑĢекомен": 105707, + "ĠاÙĨتخاب": 105708, + "Ãłu": 105709, + "Äįka": 105710, + "ë°Ģ": 105711, + "ĠкÑĢаÑģ": 105712, + "лоп": 105713, + "å¼µ": 105714, + "ĠاÙĦÙħع": 105715, + "mÃŃn": 105716, + "Ġviết": 105717, + "Ġê°ĻìĿĢ": 105718, + "uteÄį": 105719, + "Ġnech": 105720, + "çµĤ": 105721, + "ãģªãģĮ": 105722, + "ayın": 105723, + "ĠÄįin": 105724, + "cházÃŃ": 105725, + "اÙģظ": 105726, + "ÑĢоваÑĤÑĮ": 105727, + "à¹Ħร": 105728, + "ĠãĤ¤": 105729, + "Ġзаболева": 105730, + "Ġå±±": 105731, + "Ġkadın": 105732, + "ÏĦηÏĤ": 105733, + "алиÑģÑĮ": 105734, + "Ġhük": 105735, + "åĵ¥": 105736, + "ĠпеÑĢи": 105737, + "ÅĻád": 105738, + "Ġà¤ħस": 105739, + "ĠÑģÑĤвоÑĢ": 105740, + "ĠÙĪÛĮÚ©ÛĮ": 105741, + "Ġì¡": 105742, + "Ġcá»Ńa": 105743, + "Ġhiá»ĥu": 105744, + "游æĪı": 105745, + "ÑĮомÑĥ": 105746, + "Ġgó": 105747, + "Ġtoh": 105748, + "Ġбла": 105749, + "Ġåij": 105750, + "Ġпло": 105751, + "иÑĪ": 105752, + "ĠÄijấu": 105753, + "skou": 105754, + "ãĤĪãĤĬ": 105755, + "à¸¹à¸Ľ": 105756, + "Ġrá»ĵi": 105757, + "опÑĢоÑģ": 105758, + "нолог": 105759, + "ĠÑĤÑĢав": 105760, + "ĠWayback": 105761, + "Ġà¹Ĩ": 105762, + "ĠÑĥÑĩаÑģÑĤ": 105763, + "ĠпÑĢепаÑĢа": 105764, + "Ġdạng": 105765, + "ĠÃľn": 105766, + "à¹Ħลà¸Ļ": 105767, + "Ġداخ": 105768, + "ĠsÆ¡": 105769, + "Ġkoy": 105770, + "ëĿ¼ê³ł": 105771, + "ĠÄijúng": 105772, + "à¥ĩà¤Ĥ,": 105773, + "Ġgeçir": 105774, + "ĠÑıкÑīо": 105775, + "ÑģÑĤÑĢо": 105776, + "енÑĤов": 105777, + "Ñĸж": 105778, + "кÑĥÑİ": 105779, + "ĠeÄŁitim": 105780, + "à¥įरस": 105781, + "ĠСп": 105782, + "اتÛĮ": 105783, + "ãģijãĤĭ": 105784, + "ÏĦÏīν": 105785, + "Ġкм": 105786, + "âĸįâĸįâĸįâĸį": 105787, + "jist": 105788, + "ÑĤак": 105789, + "ĠåIJįåīį": 105790, + "é¡Ķ": 105791, + "лÑĭ": 105792, + "Ġkhảo": 105793, + "âĢĻÑı": 105794, + "ĠÙħÙĦÛĮ": 105795, + "lož": 105796, + "Ġìĸ¸": 105797, + "Ġgần": 105798, + "Ġà¤ľà¤°": 105799, + "बर": 105800, + "ÎķΣ": 105801, + "à¸²à¸Ľ": 105802, + "Ġnás": 105803, + "formace": 105804, + "Ġetmek": 105805, + "веÑģÑĤ": 105806, + "ìĸ´ìļĶ": 105807, + "Ġतथ": 105808, + "ĠÑģек": 105809, + "ξη": 105810, + "æ¯Ľ": 105811, + "Bir": 105812, + "ĠìŀĦ": 105813, + "Ġvardır": 105814, + "ÙĪاÙĦ": 105815, + "Ä°R": 105816, + "ované": 105817, + "наÑĢод": 105818, + "à¸Ħำ": 105819, + "emek": 105820, + "ĠÎķÏĢ": 105821, + "ĠÅĻe": 105822, + "ãģ¾ãģĽ": 105823, + "uyá»ĩt": 105824, + "Ġìĸ¼": 105825, + "rů": 105826, + "Ġonu": 105827, + "à¹Ģà¸ķà¸Ńร": 105828, + "одаÑĢ": 105829, + "زÙĩ": 105830, + "Ġkav": 105831, + "онÑĭ": 105832, + "ĠвеÑģ": 105833, + "ìĤ¬ì§Ģ": 105834, + "Ġгла": 105835, + "ÃĿ": 105836, + "ĠÙĤÛĮÙħت": 105837, + "çķ¥": 105838, + "à¸ĸาà¸Ļ": 105839, + "Äįil": 105840, + "Ġä¸ĩ": 105841, + "è¾ĥ": 105842, + "åħħ": 105843, + "ĠÑĢед": 105844, + "มห": 105845, + "amilia": 105846, + "à¥ĩà¤ķर": 105847, + "Ġtá»iji": 105848, + "ÙģÛĮ": 105849, + "ÑĢÑĸÑĪ": 105850, + "ìķł": 105851, + "à¸Ļส": 105852, + "à¸Īร": 105853, + "à¥ĩशन": 105854, + "ĠÙħÙĪضÙĪع": 105855, + "æī¹": 105856, + "Ġobsah": 105857, + "ĠнавÑĩ": 105858, + "Ġdestek": 105859, + "Ġzas": 105860, + "åĵį": 105861, + "ümüz": 105862, + "ĠçŁ": 105863, + "Ġè¨": 105864, + "Ù¬": 105865, + "ç»Ī": 105866, + "Ġzde": 105867, + "Ġzáp": 105868, + "à¥Ĥसर": 105869, + "ìĿ´ì§Ģ": 105870, + "çļ®": 105871, + "lom": 105872, + "१": 105873, + "ÙĦاÙĤ": 105874, + "à¸Ļà¸ķ": 105875, + "íĮħ": 105876, + "лада": 105877, + "masına": 105878, + "ãģ®ãģ§": 105879, + "ëĵ¤ìĿĦ": 105880, + "Ġнаг": 105881, + "masını": 105882, + "ãĤĿ": 105883, + "ınıf": 105884, + "åĽ´": 105885, + "Ġbölüm": 105886, + "å¥ĸ": 105887, + "æ¨Ļ": 105888, + "ÙĦاØŃ": 105889, + "ĠгоÑģÑĥдаÑĢ": 105890, + "داÙĨÙĦÙĪد": 105891, + "ĠпоÑĤÑĢеб": 105892, + "ĠÑĢоÑĨÑĸ": 105893, + "ога": 105894, + "ĠÑģледÑĥеÑĤ": 105895, + "ĠпаÑĢа": 105896, + "é¼": 105897, + "ãģįãģŁ": 105898, + "ίζ": 105899, + "Ġbá»ij": 105900, + "ÑĤÑĸв": 105901, + "ï¼Į她": 105902, + "familia": 105903, + "éłħ": 105904, + "ĠدÙĦ": 105905, + "Ġskup": 105906, + "еÑĩение": 105907, + "ãģĵãģ¨ãģĮ": 105908, + "à¥Ģब": 105909, + "ุล": 105910, + "¨ë¶Ģ": 105911, + "ĠاÙĦعرب": 105912, + "Ġç¾İ": 105913, + "ĠاÙĦÙħÙĪ": 105914, + "ĠØ¥ÙĨ": 105915, + "Ġnásled": 105916, + "Ġtomu": 105917, + "ÎĦ": 105918, + "Ġзави": 105919, + "Ġnhu": 105920, + "ĠpÅĻedstav": 105921, + "ìłķë³´": 105922, + "okol": 105923, + "ĠкÑĢи": 105924, + "adu": 105925, + "ĠкаÑĤ": 105926, + "ĠÑįÑĦ": 105927, + "вал": 105928, + "mayı": 105929, + "ĠÑĩаÑģÑĤо": 105930, + "Ġtranh": 105931, + "ائÙĦ": 105932, + "ãĤĪãģĨãģª": 105933, + "Ġpoh": 105934, + "ìĥģìľĦ": 105935, + "Ġsắc": 105936, + "Ùĥس": 105937, + "ĠмÑĥ": 105938, + ".::": 105939, + "ëĪ": 105940, + "»Ċ": 105941, + "ĠÙĨÚ¯": 105942, + "ÙIJÙĨ": 105943, + "ником": 105944, + "Ñħа": 105945, + "ĠμοÏħ": 105946, + "ĠNguyá»ħn": 105947, + "ĠвÑĭÑģок": 105948, + "ĠÐŁÐ¾Ð´": 105949, + "ĠпÑĢиÑĢод": 105950, + "à¥ĭध": 105951, + "िà¤ķल": 105952, + "иÑĢа": 105953, + "ëĭ¤ê³ł": 105954, + "ĠmajÃŃ": 105955, + "Ġvùng": 105956, + "Ġtarihinde": 105957, + "ĠваÑĢ": 105958, + "ниÑĤÑĮ": 105959, + "ειÏĤ": 105960, + "Ġåĩº": 105961, + "dyž": 105962, + "ÏĦÏİν": 105963, + "ä½ĵèĤ²": 105964, + "Ġà¹Ģว": 105965, + "Ġà¤ħà¤ļ": 105966, + "ĠاÙĨÚ¯ÙĦÛĮسÛĮ": 105967, + "à¥įयम": 105968, + "ĠgeliÅŁ": 105969, + "æ¹ĸ": 105970, + "Ġاک": 105971, + "Ġплан": 105972, + "kyt": 105973, + "ابÛĮ": 105974, + "κι": 105975, + "Ġchung": 105976, + "ानà¤ķ": 105977, + "sı": 105978, + "Ġtinh": 105979, + "ĠÑģÑĤол": 105980, + "ÑģÑĤÑĢÑĥ": 105981, + "ĠлиÑĪе": 105982, + "ĠвиÑĢоб": 105983, + "ilmiÅŁ": 105984, + "ĠзÑĸ": 105985, + "ç»Ĩ": 105986, + "åĢĴ": 105987, + "ãĤ·ãĥ£": 105988, + "åŃ©": 105989, + "Ġà¹Ĥรà¸ĩà¹Ģร": 105990, + "íĻľ": 105991, + "ĠбÑĥде": 105992, + "ĠyaklaÅŁ": 105993, + "èĩªåĪĨ": 105994, + "ĠÙģÙĪ": 105995, + "СТ": 105996, + "Ġsorun": 105997, + "à¹Ģà¸ł": 105998, + "Ġcô": 105999, + "виÑĩ": 106000, + "ëĵ¤ìĿĺ": 106001, + "Ġtriá»ĩu": 106002, + "Ġrõ": 106003, + "Ġãģ«": 106004, + "ÄŁim": 106005, + "iyoruz": 106006, + "èľ": 106007, + "à¥įरव": 106008, + "Ġسپ": 106009, + "ĠìĦľìļ¸": 106010, + "δε": 106011, + "еÑĢÑĪ": 106012, + "Ġأس": 106013, + "äºŀ": 106014, + "è¯į": 106015, + "пÑĤом": 106016, + "ฤษ": 106017, + "ĠسازÙħاÙĨ": 106018, + "Ġluôn": 106019, + "ÙĩÙĪر": 106020, + "cü": 106021, + "аÑĤкÑĥ": 106022, + "Ġolabilir": 106023, + "ĠìĹ°êµ¬": 106024, + "енной": 106025, + "ĠæĪij": 106026, + "Ġнего": 106027, + "Ġ.**************": 106028, + "ิà¸ĺ": 106029, + "ĠãĤ·": 106030, + "تÙģ": 106031, + "ÐŁÑĢо": 106032, + "Ġhakkında": 106033, + "ÄįnÄĽ": 106034, + "ĠMỹ": 106035, + "é½": 106036, + "ĠÏĥÏĦον": 106037, + "Ġâm": 106038, + "§ظ": 106039, + "ĠÅŁirket": 106040, + "æĥħåĨµ": 106041, + "ĠØ¢ÙħÙĪزش": 106042, + "λεÏħ": 106043, + "ÙħÙĩ": 106044, + "è¦ı": 106045, + "ãģ¨æĢĿ": 106046, + "ĠÙĪع": 106047, + "ÏĪη": 106048, + "ÏģοÏį": 106049, + "ĠÂłĊ": 106050, + "δη": 106051, + "ÑĪов": 106052, + "åĪ¤": 106053, + "Ġmắt": 106054, + "æĭ¿": 106055, + "à¸Ļà¸Ķ": 106056, + "éĻĦ": 106057, + "à¹īม": 106058, + "ĠÄijạt": 106059, + "Ġgüzel": 106060, + "mÃ¼ÅŁ": 106061, + "ÐŀÐĴ": 106062, + "çĭ¬": 106063, + "리를": 106064, + "ĠплаÑĤ": 106065, + "Ġnghá»ĭ": 106066, + "ĠÑĤакиÑħ": 106067, + "биÑĢа": 106068, + "Ġнек": 106069, + "ÑģÑĮкÑĸ": 106070, + "رÙĬاض": 106071, + "onu": 106072, + "à¥ĭम": 106073, + "ĠGiỼi": 106074, + "èŀį": 106075, + "é²": 106076, + "ĠGenel": 106077, + "åĬ¿": 106078, + "ĠвÑĸ": 106079, + "å§IJ": 106080, + "試": 106081, + "ĠжиÑĤÑĤÑı": 106082, + "Ġìĺ¨": 106083, + "åĩºæĿ¥": 106084, + "Ġtá»ij": 106085, + "Ġlao": 106086, + "ίο": 106087, + "Ġγα": 106088, + "ниÑĤелÑĮ": 106089, + "éļİ": 106090, + "Ġвикон": 106091, + "ĠÙģعاÙĦ": 106092, + "à¹Ģศ": 106093, + "ÏĮγ": 106094, + "ĠоÑĢганиз": 106095, + "ĠемÑĥ": 106096, + "ĠÙĬع": 106097, + "ĠÙħب": 106098, + "ालय": 106099, + "ĠÎľÏĢ": 106100, + "é¸": 106101, + "ùa": 106102, + "길": 106103, + "ĠÄIJiá»ģu": 106104, + "είο": 106105, + "äºī": 106106, + "ượt": 106107, + "ÑĢазÑĥ": 106108, + "ĠоÑĤÑĢим": 106109, + "Ġطب": 106110, + "Ġ以": 106111, + "æĸĹ": 106112, + "ë°±": 106113, + "à¤ĩस": 106114, + "ë§ĮìĽIJ": 106115, + "ãĢģãģĿãģ®": 106116, + "ĠëķĮ문": 106117, + "ĠØ¢ÛĮ": 106118, + "Ð¡Ðł": 106119, + "ضÙĦ": 106120, + "æĵį": 106121, + "kazy": 106122, + "สว": 106123, + "âng": 106124, + "à¤Ĥà¤Ń": 106125, + "нÑĸÑĩ": 106126, + "ัà¸ĩà¸ģ": 106127, + "ĠبررسÛĮ": 106128, + "ردÙĩ": 106129, + "Ġmẫu": 106130, + "à¹Īวà¸ĩ": 106131, + "ĠداÙĨشگاÙĩ": 106132, + "dıģ": 106133, + "ĠTá»ķng": 106134, + "第äºĮ": 106135, + "cÃŃm": 106136, + "Ġböyle": 106137, + "ë¶Ī": 106138, + "ĠÙħÙĨابع": 106139, + "à¥ĥष": 106140, + "еÑĤÑĭ": 106141, + "åĨ·": 106142, + "åĽŃ": 106143, + "ĠتÙĪجÙĩ": 106144, + "åĪ»": 106145, + "æŀģ": 106146, + "à¤Łà¤¨": 106147, + "лан": 106148, + "ĠíĥĢ": 106149, + "ä½IJ": 106150, + "ĠобÑĭ": 106151, + "å¸Ŀ": 106152, + "커": 106153, + "å®Ī": 106154, + "èµ·æĿ¥": 106155, + "Ġãĥ¬": 106156, + "çİī": 106157, + "à¹Ģหล": 106158, + "ине": 106159, + "หาร": 106160, + "éļı": 106161, + "Ġгаз": 106162, + "ĠاÙĦعÙħÙĦ": 106163, + "à¥ģà¤Ŀ": 106164, + "Ïģιο": 106165, + "Ġvám": 106166, + "ĠعÙĨد": 106167, + "ÙĨدگاÙĨ": 106168, + "ï¼ĮéĤ£": 106169, + "ĠнаÑħод": 106170, + "áno": 106171, + "ÛĮاÙĨ": 106172, + "Ġأع": 106173, + "ĠÑĢади": 106174, + "Ġмене": 106175, + "Ġúda": 106176, + "Ïĩν": 106177, + "ÑĥлÑıÑĢ": 106178, + "à¥Ģप": 106179, + "ĠpoužÃŃ": 106180, + "Ġä¸": 106181, + "ĠÙĤاÙĨÙĪÙĨ": 106182, + "ικοÏį": 106183, + "áy": 106184, + "Ġçöz": 106185, + "ÏĦÏģ": 106186, + "ÙĨاÙħ": 106187, + "ุà¸ķ": 106188, + "åĵª": 106189, + "ÙĬب": 106190, + "ä¹°": 106191, + "ÐĶлÑı": 106192, + "ĠëłĪ벨": 106193, + "ุà¸ļ": 106194, + "нÑĥÑĤи": 106195, + "è½»": 106196, + "Ġξα": 106197, + "Ġè¦": 106198, + "аÑĤков": 106199, + "ĠëĪĦ": 106200, + "Ġtuyá»ĥn": 106201, + "ÙİÙħ": 106202, + "ĠвÑĭпол": 106203, + "Ġstudi": 106204, + "ĠpÅĻek": 106205, + "Ġзам": 106206, + "Ġmateri": 106207, + "åİĭ": 106208, + "Ġал": 106209, + "Ġà¸ļร": 106210, + "Ø·ØŃ": 106211, + "ĠÙħرک": 106212, + "Ġìĭ¬": 106213, + "ĠÙĤابÙĦ": 106214, + "ĠÐIJле": 106215, + "ıntı": 106216, + "Ġå»": 106217, + "Ä°K": 106218, + "ëħĦëıĦ": 106219, + "ÑĭваÑĤÑĮ": 106220, + "Ġdevlet": 106221, + "社ä¼ļ": 106222, + "ëĤł": 106223, + "Ġkolay": 106224, + "ĠÑĢазвиÑĤи": 106225, + "ади": 106226, + "ئÙĬس": 106227, + "adıģı": 106228, + "ÎijÎĽ": 106229, + "Ġhoa": 106230, + "Ġศ": 106231, + "Ä±ÅŁtır": 106232, + "ÑĢÑİ": 106233, + "ĠкаÑĩе": 106234, + "¼åIJĪ": 106235, + "åħ´": 106236, + "Ġê·¸ëŁ¬": 106237, + "ĠмÑĸÑģÑĤ": 106238, + "Ġмне": 106239, + "ãĥ¼ãĤº": 106240, + "ç§Ģ": 106241, + "ĠعÙĦÙĬÙĩ": 106242, + "Ġìĭľê°Ħ": 106243, + "Ġà¤ĺर": 106244, + "ĠÑĥг": 106245, + "åıijå±ķ": 106246, + "Ä±ÅŁÄ±": 106247, + "ĠìĪľ": 106248, + "ĠíĻľ": 106249, + "æ¡£": 106250, + "Ġnokt": 106251, + "lém": 106252, + "еннÑĭй": 106253, + "ĠبÙħ": 106254, + "à¥ĩय": 106255, + "одав": 106256, + "à¹Ĥร": 106257, + "ï¼Įæľī": 106258, + "اÙĬات": 106259, + "اÛĮÙĩ": 106260, + "Ġà¤īपय": 106261, + "ĠsmÄĽ": 106262, + "شد": 106263, + "ШÐIJ": 106264, + "ĠاÙħاÙħ": 106265, + "æ¿Ģ": 106266, + "Ġhoạch": 106267, + "обÑĢаз": 106268, + "à¥ĭह": 106269, + "ĠÑĢебен": 106270, + "иÑĤелÑı": 106271, + "ãģªãģĮãĤī": 106272, + "ساÙĦ": 106273, + "Ġà¸Īำ": 106274, + "Ġخاص": 106275, + "Ġgeri": 106276, + "à¤ĺ": 106277, + "Ġìº": 106278, + "à¹ģà¸Ĺ": 106279, + "âĢĮÛĮ": 106280, + "گرÛĮ": 106281, + "اÙħبر": 106282, + "ÑĪÑĥ": 106283, + "Ġphong": 106284, + "имо": 106285, + "па": 106286, + "Ġìµľê³ł": 106287, + "Ġнам": 106288, + "ostÃŃ": 106289, + "isini": 106290, + "ĠдÑĥже": 106291, + "Ñģком": 106292, + "ĠпÑĢодÑĥк": 106293, + "ÏĮÏĦηÏĦα": 106294, + "aln": 106295, + "isine": 106296, + "è¿ľ": 106297, + "алÑĮной": 106298, + "तर": 106299, + "tıģ": 106300, + "ĠëĴ": 106301, + "è¿ĺæĺ¯": 106302, + "ĠÙħØ«ÙĦ": 106303, + "ìľ¨": 106304, + "ï¾ĺ": 106305, + "åĪ¸": 106306, + "ç¶ļ": 106307, + "جاد": 106308, + "ĠкÑĥ": 106309, + "åĢij": 106310, + "ovu": 106311, + "ĠsÄ©": 106312, + "ĠìłIJ": 106313, + "ĠÑĥÑĢов": 106314, + "िà¤ļ": 106315, + "ovali": 106316, + "ĠÙĪÙĨ": 106317, + "ĠìĿĮ": 106318, + "Ġкг": 106319, + "าà¸ĺ": 106320, + "ÏĦÏģα": 106321, + "ždy": 106322, + "à¹Įà¸ķ": 106323, + "ĠnÄĽm": 106324, + "ĠЦе": 106325, + "noho": 106326, + "Ġëĭ¤ìĭľ": 106327, + "Ġtéto": 106328, + "Ġbiá»ĥu": 106329, + "ĠYön": 106330, + "Ġpráce": 106331, + "à¥īर": 106332, + "ĠchÃŃ": 106333, + "овой": 106334, + "Ġmợ": 106335, + "說": 106336, + "ÏİÏĤ": 106337, + "волÑı": 106338, + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 106339, + "實": 106340, + "é»ŀ": 106341, + "Ġà¤ıव": 106342, + "Ïħνα": 106343, + "岡": 106344, + "không": 106345, + "ĠpÅĻÃŃpadÄĽ": 106346, + "åĹ": 106347, + "ĠبدÙĪÙĨ": 106348, + "Ïĥκε": 106349, + "Ġdikkat": 106350, + "ĠAncak": 106351, + "Ġtiá»ĩn": 106352, + "éĿĻ": 106353, + "ĠìĿ¼ë°ĺ": 106354, + "ĠÄįlen": 106355, + "ìķħ": 106356, + "ाà¤ĩन": 106357, + "ãģ£ãģ¦ãģĦãģŁ": 106358, + "ĠìĿ´ìļ©": 106359, + "ÙĪÙħÛĮ": 106360, + "iná": 106361, + "ặng": 106362, + "ÏİÏģα": 106363, + "ÙĨÙĬØ©": 106364, + "важ": 106365, + "èİ·": 106366, + "å©ļ": 106367, + "ĠÅŁu": 106368, + "ĠãģĬ": 106369, + "Ġدرب": 106370, + "Ġdiá»ħn": 106371, + "ÅĻeba": 106372, + "asının": 106373, + "ç½ijç«Ļ": 106374, + "нÑĮого": 106375, + "ĠاÙĦØ£ÙĪÙĦ": 106376, + "ικÎŃÏĤ": 106377, + "ĠzÃŃsk": 106378, + "оло": 106379, + "ĠÑįÑĤоÑĤ": 106380, + "Ġpokud": 106381, + "è²»": 106382, + "еÑĢÑĸв": 106383, + "ãĥķãĤ£": 106384, + "иÑĤÑĥа": 106385, + "Ġvyd": 106386, + "олож": 106387, + "лÑıÑĤÑĮ": 106388, + "ÙĤÙħ": 106389, + "æ´ĭ": 106390, + "æ§ĭ": 106391, + "ĠغÛĮر": 106392, + "ĠstÅĻed": 106393, + "ظر": 106394, + "Ġhiçbir": 106395, + "θεί": 106396, + "znik": 106397, + "дÑĭ": 106398, + "luv": 106399, + "ĠÙħؤ": 106400, + "ĠگرÙĪÙĩ": 106401, + "Ġï¼īĊ": 106402, + "teri": 106403, + "ĠÏħÏĢο": 106404, + "voj": 106405, + "Ġبعض": 106406, + "Ġbilin": 106407, + "ĠرÙĪØ´": 106408, + "ĠобÑıз": 106409, + "Ġï»": 106410, + "سÙĨ": 106411, + "ĠÏĢα": 106412, + "íį¼": 106413, + "ĠtÃŃn": 106414, + "Ġ´": 106415, + "ìĤ¬ìĿ´íĬ¸": 106416, + "Ġpodob": 106417, + "Ñīее": 106418, + "ĠåįĹ": 106419, + "Ġbych": 106420, + "ози": 106421, + "ĠVÄĥn": 106422, + "ØŃÙĩ": 106423, + "åѦéĻ¢": 106424, + "ĠÅĻekl": 106425, + "립ëĭĪëĭ¤": 106426, + "ĠпÑĢоÑģ": 106427, + "κά": 106428, + "ĠbaÅŁladı": 106429, + "ủy": 106430, + "Ñİдж": 106431, + "ाà¤ıà¤Ĺ": 106432, + "à¤Ĥà¤ļ": 106433, + "Ġê´Ģ볨": 106434, + "ĠвопÑĢоÑģ": 106435, + "ĠÑģÑĤаÑĤÑĮ": 106436, + "Ġyatırım": 106437, + "нÑĥла": 106438, + "راÙģ": 106439, + "ĠçeÅŁit": 106440, + "Ġà¤īद": 106441, + "央": 106442, + "ĠпоÑıв": 106443, + "åĽ½å®¶": 106444, + "ĠÑģооÑĤвеÑĤÑģÑĤв": 106445, + "ìķ¡": 106446, + "ĠØ®ÙĪاÙĩد": 106447, + "Å¡Å¡ÃŃ": 106448, + "ÂłÐ¿": 106449, + "ĠNhÃł": 106450, + "''''": 106451, + "ィ": 106452, + "Ãħ": 106453, + "Ġïº": 106454, + "ĠØ¢ÙħرÛĮÚ©": 106455, + "larımız": 106456, + "جا": 106457, + "ÙģÙĤ": 106458, + "Ġá»": 106459, + "Ġìķł": 106460, + "ĠزباÙĨ": 106461, + "ĠÑĤвоÑĢ": 106462, + "ниÑĩеÑģ": 106463, + "Ġкни": 106464, + "خداÙħ": 106465, + "à¸Łà¸£": 106466, + "Ġì¹ĺ": 106467, + "วาม": 106468, + "ĠÙħÙĩÙħ": 106469, + "Ġstol": 106470, + "Ġedilen": 106471, + "Ġpek": 106472, + "اÙĨات": 106473, + "алÑĮнÑĸ": 106474, + "ĠнеобÑħÑĸд": 106475, + "à¹Ħว": 106476, + "Ġशर": 106477, + "ĠíĮIJ": 106478, + "Òij": 106479, + "Ġним": 106480, + "Ġà¸ĺ": 106481, + "æĺł": 106482, + "äºĴ": 106483, + "ĠbaÅŁar": 106484, + "ži": 106485, + "Ġмног": 106486, + "lendi": 106487, + "ávajÃŃ": 106488, + "nict": 106489, + "ĠдÑĥм": 106490, + "éĻ©": 106491, + "ÏĥÏĥ": 106492, + "iky": 106493, + "алÑĮнÑĭй": 106494, + "ĠÙħÙĨت": 106495, + "å®®": 106496, + "-за": 106497, + "еÑĢк": 106498, + "å¡Ķ": 106499, + "ĠμεÏĦα": 106500, + "oÄŁun": 106501, + "ÎĹÎľ": 106502, + "à¥Īà¤Ĥ।Ċ": 106503, + "Äįky": 106504, + "å¹³åı°": 106505, + "à¥ĭश": 106506, + "Ġona": 106507, + "Ġbec": 106508, + "ì¢": 106509, + "Ġcây": 106510, + "kün": 106511, + "Ġà¤Ī": 106512, + "Ġrá»Ļng": 106513, + "еÑĢб": 106514, + "幸": 106515, + "ï¾IJ": 106516, + "ĠпÑĸдпÑĢиÑĶм": 106517, + "çĶ£": 106518, + "ĠÏĦε": 106519, + "ĠÙĨÙĤØ´": 106520, + "овиÑħ": 106521, + "ĠÙģÙī": 106522, + "Ðļак": 106523, + "Ùİر": 106524, + "ĠЩ": 106525, + "алÑĮнÑĭÑħ": 106526, + "Ġküçük": 106527, + "èŃ·": 106528, + "æĭħ": 106529, + "icaret": 106530, + "ĠرÙģت": 106531, + "Ġодного": 106532, + "ÑĪим": 106533, + "ĠбÑĸ": 106534, + "Ġuygulam": 106535, + "Ġæĭ": 106536, + "ä½Ľ": 106537, + "ucu": 106538, + "dÃŃ": 106539, + "Åĺ": 106540, + "ئة": 106541, + "걸": 106542, + "ÙĮ": 106543, + "ĠÎłÏģο": 106544, + "Ġyerine": 106545, + "ĠÑĸнÑĦоÑĢма": 106546, + "Ġå¤ĸ": 106547, + "ä»ķ": 106548, + "нав": 106549, + "arası": 106550, + "à¸Ńà¸Ļà¹Ħลà¸Ļ": 106551, + "اشت": 106552, + "زÙĬ": 106553, + "æ©ĭ": 106554, + "ĠãĤ«": 106555, + "èĥ½åĬĽ": 106556, + "å¥Ĺ": 106557, + "Ġproh": 106558, + "ĠпÑĢава": 106559, + "Ỽp": 106560, + "Ġà¸Ĥà¸Ńà¸ĩ": 106561, + "Ġë´": 106562, + "Ġlúc": 106563, + "Ġéķ": 106564, + "بÙĪد": 106565, + "rupa": 106566, + "ازÙħ": 106567, + "Ġкан": 106568, + "ılım": 106569, + "ĠÙĩد": 106570, + "ãĢĢĠãĢĢĠãĢĢ": 106571, + "ÑĭваеÑĤ": 106572, + "خاÙĨÙĩ": 106573, + "ÑĥкÑĤ": 106574, + "ĠçĻ¾åº¦": 106575, + "ĠnÄĽco": 106576, + "емон": 106577, + "Ġà¤ħप": 106578, + "ĠÎĮ": 106579, + "ünün": 106580, + "æĸĩåĮĸ": 106581, + "ä¹İ": 106582, + "ä¸ĬçļĦ": 106583, + "ÙĦÙĬÙħ": 106584, + "ĠtÄĽch": 106585, + "اسب": 106586, + "âĢĻÑĶ": 106587, + "ĠÚ¯ÛĮ": 106588, + "Ġê·¼": 106589, + "Ġtrẻ": 106590, + "μÎŃνο": 106591, + "ãģĵãģ¨ãĤĴ": 106592, + "ìĿ´ëĤĺ": 106593, + "åĸĦ": 106594, + "Ġtrả": 106595, + "åĪĨæŀIJ": 106596, + "ĠdÄĽl": 106597, + "ÑĥÑģка": 106598, + "Ġмного": 106599, + "à¥Īर": 106600, + "μαÏĦοÏĤ": 106601, + "ĠmÃŃsto": 106602, + "Ġê°ģ": 106603, + "ĠпÑĢог": 106604, + "baÅŁ": 106605, + "айÑĤе": 106606, + "Ġcá»ķ": 106607, + "å¿ľ": 106608, + "ï¼ģĊ": 106609, + "çı": 106610, + "Ġbirçok": 106611, + "Ġíĺķ": 106612, + "çµĮ": 106613, + "ĠEvrop": 106614, + "ĠÑģоÑĨÑĸ": 106615, + "ä»ĸçļĦ": 106616, + "ĠμÏĢο": 106617, + "å¥Ī": 106618, + "ĠÚ¯ÙĦ": 106619, + "ÙĪÙĦØ©": 106620, + "æµİ": 106621, + "ĠÚ©ÙĪ": 106622, + "±ä¹IJ": 106623, + "ãģĹãģı": 106624, + "纳": 106625, + "ÑģÑĤвенно": 106626, + "éĽ¢": 106627, + "ा.": 106628, + "ĠgerçekleÅŁtir": 106629, + "Ġkır": 106630, + "ì³": 106631, + "ĠгоÑģп": 106632, + "å¹ķ": 106633, + "ìĦ¼": 106634, + "».Ċ": 106635, + "кÑĥÑĢ": 106636, + "ĠرÛĮ": 106637, + "æĽ¾": 106638, + "ÙĪرÙĬ": 106639, + "лекÑģанд": 106640, + "صÙģ": 106641, + "Ġcảnh": 106642, + "å±Ĥ": 106643, + "ãĤĨ": 106644, + "Ġتس": 106645, + "ì°½": 106646, + "기를": 106647, + "Ġà¹Ģà¸Ħ": 106648, + "çŁŃ": 106649, + "ĠÑģÑĤÑĢо": 106650, + "ĠÏĥÏĦιÏĤ": 106651, + "à¥įयव": 106652, + "ĠعÙĦÙħ": 106653, + "ĠÑģиÑĤÑĥа": 106654, + "ĠÑīодо": 106655, + "åIJĽ": 106656, + "Ùħس": 106657, + "ĠоÑĤкÑĢÑĭ": 106658, + "Ġspoj": 106659, + "ĠÄijÄĥng": 106660, + "ĠsavaÅŁ": 106661, + "ีร": 106662, + "ském": 106663, + "Ġè¡Į": 106664, + "é¹": 106665, + "ĠÙĬÙħÙĥÙĨ": 106666, + "овано": 106667, + "ĠпÑĢавилÑĮ": 106668, + "Ġchiếc": 106669, + "èĪ¹": 106670, + "éĵ¶": 106671, + "ĠоÑĤд": 106672, + "ĠìĿĢ": 106673, + "íħĶ": 106674, + "ĠNej": 106675, + "оне": 106676, + "Ġkız": 106677, + "ологиÑĩеÑģ": 106678, + "ĠкÑĢаÑĹ": 106679, + "à¸ļà¸Ńล": 106680, + "楼": 106681, + "ĠتÙħاÙħ": 106682, + "ĠبÛĮÙħ": 106683, + "ĠÑģÑĥб": 106684, + "vý": 106685, + "Ñģкие": 106686, + "ëĮĢë¡ľ": 106687, + "????????": 106688, + "abilirsiniz": 106689, + "анÑģов": 106690, + "代表": 106691, + "Ġ매매": 106692, + "ологÑĸÑĩ": 106693, + "μαν": 106694, + "акÑģим": 106695, + "ãĤ¤ãĥ«": 106696, + "Ġtải": 106697, + "ÙħÙĪ": 106698, + "å®Ĺ": 106699, + "nem": 106700, + "Ġkhoản": 106701, + "ĠпаÑĤ": 106702, + "анÑĤа": 106703, + "ĠпомоÑī": 106704, + "Ġvod": 106705, + "Ġkaynak": 106706, + "ÏĥÏĨ": 106707, + "à¥Ĥत": 106708, + "duÄŁ": 106709, + "аÑĤиÑģÑı": 106710, + "Ġç¥ŀ": 106711, + "ĠÑģлова": 106712, + "ÑĢÑĥкÑĤÑĥ": 106713, + "ĠmÄĽsÃŃ": 106714, + "ÙıÙħ": 106715, + "знаÑĩа": 106716, + "Ġèī": 106717, + "åѦçĶŁ": 106718, + "æ´¥": 106719, + "ÙİÙĬ": 106720, + "è§Ī": 106721, + "Ġå®ī": 106722, + "ĠgörÃ¼ÅŁ": 106723, + "álnÄĽ": 106724, + "ĠëĶ°ëĿ¼": 106725, + "ĠÙħÙĪجÙĪد": 106726, + "ĠÄijứ": 106727, + "ĠçalÄ±ÅŁmalar": 106728, + "ĠÑıкиÑħ": 106729, + "ĠاجتÙħاع": 106730, + "μεν": 106731, + "èİī": 106732, + "积": 106733, + "ì¶ķ": 106734, + "à¥įशन": 106735, + "Ġxét": 106736, + "ĠвÑĤоÑĢ": 106737, + "çİ©": 106738, + "ÂłÐĿ": 106739, + "ÑĪие": 106740, + "оÑĢи": 106741, + "أس": 106742, + "Ġthuá»ijc": 106743, + "ëĭĪê¹Į": 106744, + "ëķĮ": 106745, + "ÑĢÑĥп": 106746, + "ÑģÑıÑĤ": 106747, + "зÑĭ": 106748, + "ĠÑģмеÑĢ": 106749, + "Ġvyb": 106750, + "ĠìĿ´ìĥģ": 106751, + "à¤ļन": 106752, + "Ġgeldi": 106753, + "Û±Û°": 106754, + "ικÏİν": 106755, + "ĠÄIJức": 106756, + "ĠдоÑģÑĤаÑĤ": 106757, + "Ġönc": 106758, + "親": 106759, + "Ġadı": 106760, + "unca": 106761, + "ĠاÙĦتر": 106762, + "çķ¶": 106763, + "ĠФедеÑĢа": 106764, + "лÑıÑİÑĤÑģÑı": 106765, + "ĠÙĥاÙĨت": 106766, + "æİ¢": 106767, + "ĠÑĥб": 106768, + "Ġκο": 106769, + "ाà¤ĩà¤Ł": 106770, + "зн": 106771, + "Ġmôi": 106772, + "ĠãĤµ": 106773, + "ĠнавÑĸ": 106774, + "综åIJĪ": 106775, + "ĠминÑĥÑĤ": 106776, + "dık": 106777, + "ÑĢÑĥд": 106778, + "åľĸ": 106779, + "ê°¤": 106780, + "ĠÄijoÃłn": 106781, + "è¤": 106782, + "à¥įवर": 106783, + "ĠÃľniversit": 106784, + "ано": 106785, + "鼨": 106786, + "ĠvÅ¡echny": 106787, + "Ġëĭ¤ìĿĮ": 106788, + "ĠCumhur": 106789, + "ĠмÑĥз": 106790, + "aÅŁtır": 106791, + "Ġê±°ëŀĺ": 106792, + "Ġé¡": 106793, + "žitÃŃ": 106794, + "Ġà¸Ł": 106795, + "Ġthuế": 106796, + "ĠмÑĥж": 106797, + "ĠÎijν": 106798, + "ĠدÙĪÙħ": 106799, + "ĠÑģин": 106800, + "ĠÏīÏĤ": 106801, + "meler": 106802, + "ĠpoÄį": 106803, + "ĠколиÑĩе": 106804, + "ĠKÄį": 106805, + "è³½": 106806, + "ĠоÑģÑĸб": 106807, + "åı¥": 106808, + "ĠBöl": 106809, + "à¸ĺรรม": 106810, + "Ġcạnh": 106811, + "å°ĩ": 106812, + "ĠноÑģ": 106813, + "èĦ¸": 106814, + "Ġgelir": 106815, + "оÑĢон": 106816, + "à¥įरà¤Ń": 106817, + "ç»ĩ": 106818, + "ุà¹ī": 106819, + "ामल": 106820, + "Ġcâu": 106821, + "ÑijÑĤ": 106822, + "Ġ:|": 106823, + "ãĤĮãģ¦": 106824, + "Ġposled": 106825, + "ãĤ¹ãĥĨ": 106826, + "ÑĸлÑĮÑĪ": 106827, + "енÑĤÑĭ": 106828, + "خدÙħ": 106829, + "ĠباشگاÙĩ": 106830, + "ĠthÆ°": 106831, + "ávánÃŃ": 106832, + "ëĬIJ": 106833, + "ĠØ£ØŃ": 106834, + "راد": 106835, + "ĠبسÛĮار": 106836, + "åĪ°äºĨ": 106837, + "\";\"": 106838, + "å°İ": 106839, + "Ġör": 106840, + "à¸Ĭาà¸ķ": 106841, + "genus": 106842, + "Ġyakın": 106843, + "ĠÃŃt": 106844, + "regnum": 106845, + "Ġfiyat": 106846, + "нÑĸÑħ": 106847, + "åľ°æĸ¹": 106848, + "Ġbilgi": 106849, + "кам": 106850, + "Ġspol": 106851, + "ائÙĬ": 106852, + "ĠÙĬÙĨ": 106853, + "าหาร": 106854, + "Ġبگ": 106855, + "éĺħ": 106856, + "ĠاÙĦشر": 106857, + "Âģ": 106858, + "ĠÑĸнÑĪиÑħ": 106859, + "Ġtrạng": 106860, + "çģ£": 106861, + "Ġcá»±c": 106862, + "кан": 106863, + "èĭı": 106864, + "ÃĶ": 106865, + "Ġlá»Ŀi": 106866, + "ÑıÑĩ": 106867, + "ĠÙĪØŃ": 106868, + "ìĪľ": 106869, + "Ÿ": 106870, + "ĠвоÑģп": 106871, + "ì¡Į": 106872, + "ÄįnÃŃch": 106873, + "خرÙī": 106874, + "ائÙĬØ©": 106875, + "Ġsuất": 106876, + "æĩī": 106877, + "اØŃÛĮ": 106878, + "Ġnáz": 106879, + "è¿Ļç§į": 106880, + "ĠзабезпеÑĩ": 106881, + "ĠЧеÑĢ": 106882, + "ĠздÑĸйÑģ": 106883, + "åı¦": 106884, + "æĭ¬": 106885, + "à¥ģष": 106886, + "μÏĨ": 106887, + "ëĥIJ": 106888, + "ÐķÑģли": 106889, + "é¬": 106890, + "Ġíĥľ": 106891, + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 106892, + "Ġмл": 106893, + "å´İ": 106894, + "Ùģع": 106895, + "ĠÙĤدر": 106896, + "Ġvá»ijn": 106897, + "妹": 106898, + "ĠÐĿаÑģ": 106899, + "à¥įफ": 106900, + "ãĤ¸ãĥ£": 106901, + "Ġmı": 106902, + "енÑģ": 106903, + "бÑĥд": 106904, + "ĠØŃتÙī": 106905, + "Ġì²´": 106906, + "ĠÑĸÑģÑĤоÑĢ": 106907, + "Ġgiấy": 106908, + "γοÏģ": 106909, + "ëIJĺìĸ´": 106910, + "ĠíĤ": 106911, + "ĠÐŀдна": 106912, + "ĠÙĨÙħÙĪد": 106913, + "Ġвипад": 106914, + "ĠìŀIJìĭł": 106915, + "Ġjste": 106916, + "Ġëĵ±ë¡Ŀ": 106917, + "ekten": 106918, + "ĠÑĢеÑĩ": 106919, + "rodnÃŃ": 106920, + "ستر": 106921, + "ıt": 106922, + "ä¹ħä¹ħ": 106923, + "ĠØ®ÙĦاÙĦ": 106924, + "Ġç¦": 106925, + "uluk": 106926, + "lenen": 106927, + "ilip": 106928, + "è´¢": 106929, + "Ġà¤ħà¤ķ": 106930, + "ĠYıl": 106931, + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢ": 106932, + "Ġà¤Ŀ": 106933, + "ĠBình": 106934, + "ĠolmuÅŁ": 106935, + "اÙĦØ¥ÙĨجÙĦÙĬزÙĬØ©": 106936, + "менно": 106937, + "alnız": 106938, + "ĠشرÙĥØ©": 106939, + "ĠسÙĨØ©": 106940, + "è´Ł": 106941, + "ä½ľåĵģ": 106942, + "Ġìķ½": 106943, + "ĠдÑĢÑĥгиÑħ": 106944, + "ĠbaÄŁlantı": 106945, + "одÑĥ": 106946, + "çļĦæĺ¯": 106947, + "ัà¸Ļà¸Ķ": 106948, + "ĠкоÑĤоÑĢÑĭÑħ": 106949, + "ĠاÙĦÙĪÙĦ": 106950, + "ê¸ĢìĥģìľĦ": 106951, + "ĠÏĢεÏģ": 106952, + "리ìķĦ": 106953, + "ibar": 106954, + "Ġèĥ": 106955, + "ãģŁãģĦ": 106956, + "áj": 106957, + "ĠìľĦíķ´": 106958, + "?âĢľĊĊ": 106959, + "Ġíİĺ": 106960, + "Ġней": 106961, + "ĠÐĹак": 106962, + "ĠÐĴÑĸд": 106963, + "елÑĸ": 106964, + "课": 106965, + "åī¯": 106966, + "madan": 106967, + "æľ«": 106968, + "ĠÏĢÏģÏĮ": 106969, + "ĠпÑģиÑħ": 106970, + "ĠÑĤÑĸ": 106971, + "Ùĥات": 106972, + "Ġvysok": 106973, + "ê´Ģ리": 106974, + "ültür": 106975, + "Ġà¹Ģà¸Ń": 106976, + "Ġíķ©": 106977, + "çĿ£": 106978, + "ĠÑĢиÑģ": 106979, + "еÑĢÑĮ": 106980, + "ĠÚ©ÙĦÛĮ": 106981, + "Ġãĥŀ": 106982, + "ĠphÃŃa": 106983, + "å«": 106984, + "اگ": 106985, + "Ġé¢": 106986, + "ĠÙĨÙģر": 106987, + "ĠجاÙĨ": 106988, + "Ġyas": 106989, + "жениÑı": 106990, + "ĠлÑĥÑĩÑĪе": 106991, + "Ġçº": 106992, + "Ġмон": 106993, + "Ġتخ": 106994, + "ĠØ´ÛĮ": 106995, + "ĠнекоÑĤоÑĢ": 106996, + "алÑĮнÑĭе": 106997, + "Ġobchod": 106998, + "Ġíķ¨ê»ĺ": 106999, + "Ġriêng": 107000, + "ãģķãĤĮãĤĭ": 107001, + "окÑĥ": 107002, + "ĠСШÐIJ": 107003, + "ë§ģ": 107004, + "ĠNếu": 107005, + "ĠAÄŁ": 107006, + "ĠдвеÑĢ": 107007, + "à¥ĭष": 107008, + "Ġkhiến": 107009, + "него": 107010, + "ì±ħ": 107011, + "ัà¸ķร": 107012, + "malı": 107013, + "ĠÙĬا": 107014, + "ç§ijæĬĢ": 107015, + "ืà¸Ļ": 107016, + "หมาย": 107017, + "Ġخص": 107018, + "åĨľ": 107019, + "ÃŃme": 107020, + "ĠÑįÑĤой": 107021, + "ĠìĹħ": 107022, + "Ġä¹": 107023, + "伯": 107024, + "'´": 107025, + "ÙħÙĬÙĦ": 107026, + "à¸Ńà¸ĩà¸Ħ": 107027, + "ková": 107028, + "è¿Ļä¹Ī": 107029, + "ãĢĤæĪij": 107030, + "ìĹIJìĦľëĬĶ": 107031, + "Ġìļ©": 107032, + "ë¹ĦìĬ¤": 107033, + "Ġì¦Ŀ": 107034, + "ITTE": 107035, + "Ġ모ëĵł": 107036, + "ĠspoleÄįnosti": 107037, + "Ġвик": 107038, + "ĠtÅĻÃŃ": 107039, + "é³": 107040, + "ĠØ®ÛĮ": 107041, + "Ġpož": 107042, + "ĠимееÑĤ": 107043, + "ĠdÄĽt": 107044, + "ĠÙħدÙĦ": 107045, + "Ġмо": 107046, + "åįı": 107047, + "enÃŃm": 107048, + "éī": 107049, + "اظ": 107050, + "ĠteÅŁ": 107051, + "ĠveÅĻej": 107052, + "LIC": 107053, + "ì§ĢëĬĶ": 107054, + "ÑĭваÑİÑĤ": 107055, + "ĠоÑĢганÑĸ": 107056, + "nÃŃmi": 107057, + "θÎŃ": 107058, + "ãĤ¯ãĥ©": 107059, + "ãĥ¼ãĥ³": 107060, + "лиÑģÑı": 107061, + "imdi": 107062, + "æĨ": 107063, + "ïºİ": 107064, + "Ġìļ´ìĺģ": 107065, + "καν": 107066, + "Ġë³µ": 107067, + "ĠÐĨн": 107068, + "plication": 107069, + "tah": 107070, + "ĠÐIJв": 107071, + "Ġcá»Ļng": 107072, + "алÑĮноÑĹ": 107073, + "ĠدÙĪرÙĩ": 107074, + "à¥įरय": 107075, + "ĠØ®ÙĪ": 107076, + "ĠвÑĢа": 107077, + "Ø¥ÙĨ": 107078, + "èĤī": 107079, + "Ġoyn": 107080, + "ĠTÆ°": 107081, + "ĠÙĩÙħاÙĨ": 107082, + "ĠбÑĸлÑĮÑĪе": 107083, + "æĮ¯": 107084, + "اÙħØ©": 107085, + "庫": 107086, + "ĠÑĢеж": 107087, + "ĠدارÙĨد": 107088, + "ÑĢий": 107089, + "ĠæĮ": 107090, + "Ġsonuç": 107091, + "Ġtả": 107092, + "ัà¸ĩà¸Ħ": 107093, + "ë°Ľ": 107094, + "Ġмом": 107095, + "виÑĩай": 107096, + ".à¸Ħ": 107097, + "Ġà¤Ĩà¤Ī": 107098, + "åģĩ": 107099, + "Ġposkyt": 107100, + "ĠÑģÑĥп": 107101, + "ıyordu": 107102, + "але": 107103, + "иÑĨ": 107104, + "ĠθÎŃ": 107105, + "ãĤĩãģĨ": 107106, + "ĠÑģвой": 107107, + "มà¸Ļ": 107108, + "Ġnữa": 107109, + "voÅĻ": 107110, + "اسÙĬ": 107111, + "éĴ±": 107112, + "ãģĹãģ¦ãģĦãģŁ": 107113, + "ĠÄijầy": 107114, + "اÙĬر": 107115, + "ĠaraÅŁtır": 107116, + "ì£": 107117, + "ãģ¨ãģ¯": 107118, + "ĠÑģпоÑĢ": 107119, + "Ġê°Ģìŀ¥": 107120, + "è¼ī": 107121, + "âĸ¡": 107122, + "ĠìĻĦ": 107123, + "оÑĢаÑı": 107124, + "Ïģεί": 107125, + "ĠÑįÑĤа": 107126, + "ë©´ìłģ": 107127, + "ìĿ´ìĬ¤": 107128, + "ä½³": 107129, + "æĻļ": 107130, + "Ġkval": 107131, + "Ġná»ķi": 107132, + "ÑĤами": 107133, + "ĠполÑĸÑĤи": 107134, + "ĠÄ°ng": 107135, + "нÑĸÑģÑĤÑİ": 107136, + "Ġà¹Ģà¸ģ": 107137, + "Ġ민": 107138, + "èĶ": 107139, + "Ïģία": 107140, + "æİĪ": 107141, + "ĠçĤ": 107142, + "ĠÙĨÙħاÛĮ": 107143, + "Ġìŀ¡": 107144, + "æŀ¶": 107145, + "ابÙĤ": 107146, + "Ñģон": 107147, + "енного": 107148, + "ĠÙħÛĮÙĦÛĮ": 107149, + "Ġkurum": 107150, + "à¹Įส": 107151, + "Ġì´Ŀ": 107152, + "ĠnÄĽkolik": 107153, + "ĠÙĢ": 107154, + "ĠзаÑģÑĤоÑģ": 107155, + "à¸Ķà¸Ļ": 107156, + "ÙĨداÙĨ": 107157, + "ĠJap": 107158, + "éĥ¡": 107159, + "à¥įà¤Ń": 107160, + "Ġà¹Ģà¸Ĭ": 107161, + "ĠâĢ«": 107162, + "é£ŀ": 107163, + "ovatel": 107164, + "ĠÑĩаÑģÑĤÑĮ": 107165, + "Ġbá»ķ": 107166, + "ãĤ¯ãĥª": 107167, + "ิà¹Į": 107168, + "Ġвиде": 107169, + "vail": 107170, + "Ìī": 107171, + "ÄŁinde": 107172, + "ãģ¨ãĤĤ": 107173, + "âĢĮÚ©ÙĨد": 107174, + "ĠëħĦ": 107175, + "ĠاÙĤتص": 107176, + "ï½Ĺ": 107177, + "ÏģιÏĥ": 107178, + "зд": 107179, + "èĻ½": 107180, + "Ġthoại": 107181, + "ĠÙĪز": 107182, + "ĠmÃŃt": 107183, + "ĠÑħолод": 107184, + "ĠкÑĥп": 107185, + "аниÑħ": 107186, + "Ġnhìn": 107187, + "ãģĭãģª": 107188, + "ĠÐļом": 107189, + "ÏĦεÏģ": 107190, + "ï¼Įåıª": 107191, + "Ġolup": 107192, + "Ġhá»ıi": 107193, + "ëij": 107194, + "ĠnÄĽkter": 107195, + "isÃŃ": 107196, + "ĠвикоÑĢиÑģÑĤов": 107197, + "ìŀ¡": 107198, + "Ġà¤ķल": 107199, + "ĠìľłìłĢ": 107200, + "ĠпÑĢиб": 107201, + "èĭ¦": 107202, + "Ġмов": 107203, + "Ġหà¸Ļ": 107204, + "ëIJĺëĬĶ": 107205, + "око": 107206, + "ĠобеÑģп": 107207, + "Ġkez": 107208, + "лÑıÑħ": 107209, + "ĠпÑĢоиÑģ": 107210, + "Ġповин": 107211, + "ĠÐļоÑĢ": 107212, + "ì¼Ģ": 107213, + "ĠÑģи": 107214, + "Ġä¹ĭ": 107215, + "ĠâĢĶĊ": 107216, + "ÑģÑĥÑĤÑģÑĤв": 107217, + "ç°": 107218, + "Ġà¤ł": 107219, + "наÑĤ": 107220, + "Ġsuy": 107221, + "ĠÑģÑĭ": 107222, + "ĠÙĨشاÙĨ": 107223, + "ĠнапÑĢав": 107224, + "ĠÑĨÑĮомÑĥ": 107225, + "æĺ¯ä¸Ģ": 107226, + "Ġmüm": 107227, + "ÑĶмо": 107228, + "ĠاسÙĦاÙħÛĮ": 107229, + "Ġzamanda": 107230, + "ÙĪÙħاÙĨ": 107231, + "اÙĦØŃ": 107232, + "Å¡tÄĽnÃŃ": 107233, + "ĠÐļак": 107234, + "¤íĶĦ": 107235, + "Ġپرد": 107236, + "Các": 107237, + "εια": 107238, + "ĠجÙĪ": 107239, + "ĠÄijoạn": 107240, + "Ġà¤ĩत": 107241, + "Ġзан": 107242, + "ĠÙħÙĨØ·ÙĤÙĩ": 107243, + "ĠÙħعÙĦ": 107244, + "Ġdokon": 107245, + "åIJ¸": 107246, + "ickou": 107247, + "å°ģ": 107248, + "ĠкиÑģ": 107249, + "ัà¸ĩหว": 107250, + "ispecies": 107251, + "ĠнапÑĢÑı": 107252, + "æºĸ": 107253, + "Ġà¤ľà¤²": 107254, + "à¹Ģà¸ī": 107255, + "LAR": 107256, + "ĠÑĥÑģловиÑı": 107257, + "ĠWikispecies": 107258, + "ระà¸Ķ": 107259, + "Ġmey": 107260, + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 107261, + "à¹ĩà¸Ī": 107262, + "å¾Ĵ": 107263, + "tach": 107264, + "umuz": 107265, + "κη": 107266, + "ÃĬ": 107267, + "Ġün": 107268, + "ĠBITTE": 107269, + "ĠÙħربع": 107270, + "ãĤ·ãĥ¥": 107271, + "िसà¤ķ": 107272, + "Ø·ÙĪر": 107273, + "ĠвоÑģ": 107274, + "ï¾Ł": 107275, + "Ġyayın": 107276, + "ãģĭãĤĬ": 107277, + "лиÑı": 107278, + "ĠпÑĢин": 107279, + "ijng": 107280, + "ĠÙĨØ®": 107281, + "Ġlze": 107282, + "à¥įषण": 107283, + "Ġбо": 107284, + "Ġê¸Ģ": 107285, + "ĠgeliÅŁtir": 107286, + "à¸Ľà¸£à¸°à¸Ĭ": 107287, + "彡": 107288, + "ĠãĤª": 107289, + "ãģĪãģ¦": 107290, + "нÑĥÑĤÑĮ": 107291, + "Ġç½": 107292, + "Ġмаг": 107293, + "ãģ«ãģ¤": 107294, + "ноÑģÑĤей": 107295, + "ĠÙĦÙĬ": 107296, + "æĢª": 107297, + "ÑıÑĤÑģÑı": 107298, + "à¸ij": 107299, + "ियम": 107300, + "ĠãĢİ": 107301, + "ÑĢÑĮ": 107302, + "Ġmạng": 107303, + "tım": 107304, + "ĠпеÑĢиод": 107305, + "огÑĥ": 107306, + "ĠкоÑĤоÑĢаÑı": 107307, + "리ê°Ģ": 107308, + "Ġãħ¡": 107309, + "ĠجاÛĮ": 107310, + "ĠпоÑĤÑĢÑĸб": 107311, + "Å¡en": 107312, + "à¸Ńะ": 107313, + "بع": 107314, + "ØŁĊ": 107315, + "Ġë°©ë²ķ": 107316, + "ĠгоÑĢод": 107317, + "ĠÐĺн": 107318, + "Ġоказ": 107319, + "رÙĪز": 107320, + "ĠiliÅŁk": 107321, + "宣": 107322, + "forman": 107323, + "adaÅŁ": 107324, + "ÙĬÙĦØ©": 107325, + "ĠÐļаÑĢ": 107326, + "Ġmất": 107327, + "æħĭ": 107328, + "мп": 107329, + "à¹Ĥà¸Ļ": 107330, + "ĠØŃÙĤÙĪÙĤ": 107331, + "ĠднÑı": 107332, + "ĠëĴ¤": 107333, + "ाà¤ķर": 107334, + "ì²ĺëŁ¼": 107335, + "âĢĮØ¢": 107336, + "hangi": 107337, + "è¡ĮæĶ¿": 107338, + "aliyet": 107339, + "Ġì²ľ": 107340, + "ĠYap": 107341, + "à¹Ĥรà¸ĩ": 107342, + "ì§Ģëħ¸": 107343, + "ÙİÙij": 107344, + "ÎijÎĻ": 107345, + "ána": 107346, + "andır": 107347, + "ระà¸ļà¸ļ": 107348, + "oÄŁlu": 107349, + "าà¸Īะ": 107350, + "ẩy": 107351, + "اÙĪÙĦ": 107352, + "ĠмаÑĤеÑĢÑĸ": 107353, + "ÎŁÎĿ": 107354, + "Ġinformace": 107355, + "تع": 107356, + "à¸ļà¸Ļ": 107357, + "ĠÄĮeské": 107358, + "Ġtemel": 107359, + "::::::::::::::::::::::::::::::::": 107360, + "Ġchia": 107361, + "-Ñģ": 107362, + "неÑĢг": 107363, + "Ġì°¾": 107364, + "ÑĢид": 107365, + "лоÑģÑĮ": 107366, + "زÙĦ": 107367, + "ê°ĢëĬĶ": 107368, + "ané": 107369, + "ĠнавÑĸÑĤÑĮ": 107370, + "ä¸ĵä¸ļ": 107371, + "Ġ경기": 107372, + "ĠpÅĻev": 107373, + "еÑĤи": 107374, + "ĠíĶĮ": 107375, + "нÑıÑĤ": 107376, + "à¥ģश": 107377, + "лÑİд": 107378, + "виÑī": 107379, + "å°¾": 107380, + "çļĦäºĭ": 107381, + "ĠëIJľ": 107382, + "رÙĪÙģ": 107383, + "Ġ女": 107384, + "κή": 107385, + "ĠTuy": 107386, + "Ġê²ĥìĿĦ": 107387, + "Ġbunu": 107388, + "ĠÑĢазлиÑĩ": 107389, + "ĠDün": 107390, + "ãĤŃãĥ£": 107391, + "ÑĢÑĥÑģ": 107392, + "Ġмм": 107393, + "loven": 107394, + "Ġotev": 107395, + "noloj": 107396, + "ESÄ°": 107397, + "üp": 107398, + "ĠèĤ": 107399, + "ικÏĮÏĤ": 107400, + "ضاء": 107401, + "ĠпеÑĩ": 107402, + "ÅĻÃŃklad": 107403, + "ãģĵãĤį": 107404, + "Å¡tÃŃ": 107405, + "Ġبرگ": 107406, + "ãģĮãģĤãĤĭ": 107407, + "ÑĸÑģÑĤ": 107408, + "à¥īà¤ķ": 107409, + "ÏĢη": 107410, + "ĠاÙĦÙħست": 107411, + "Ġзай": 107412, + "ĠchÆ°Æ¡ng": 107413, + "оÑĤÑĥ": 107414, + "ĠСам": 107415, + "Å¡et": 107416, + "ĠìŀĪìĹĪ": 107417, + "ĠÙģار": 107418, + "Ñĸон": 107419, + "ãĥĹãĥŃ": 107420, + "Ġnhiá»ĩt": 107421, + "inizi": 107422, + "Ġcož": 107423, + "Ġà¤Ĩन": 107424, + "Ġsystém": 107425, + "رÙĪع": 107426, + "ayet": 107427, + "ĠÙģرÙĩÙĨÚ¯": 107428, + "Ġè¶": 107429, + "èģ·": 107430, + "è§Ĥçľĭ": 107431, + "нок": 107432, + "à¸IJาà¸Ļ": 107433, + "êµIJìľ¡": 107434, + "kla": 107435, + "ãĤģãģ¦": 107436, + "ÎķÎĻ": 107437, + "åĿĹ": 107438, + "ĠskuteÄį": 107439, + "à¥Ĥà¤ľ": 107440, + "ãģijãģ¦": 107441, + "NGC": 107442, + "ĠåĢ": 107443, + "ĠÑĢозп": 107444, + "nÃŃků": 107445, + "ãĥ³ãĤ¹": 107446, + "ĠÐĴеÑĢ": 107447, + "Ġyüzde": 107448, + "Ġ미êµŃ": 107449, + "ĠÙħÙī": 107450, + "деÑĢ": 107451, + "ава": 107452, + "Ġmerkez": 107453, + "įng": 107454, + "ĠìĤ¼": 107455, + "ĠÑĢобоÑĤи": 107456, + "ĠнÑĮого": 107457, + "Ġеконом": 107458, + "ĠÑĩеловека": 107459, + "Ġà¸ŀระ": 107460, + "ãĥĴ": 107461, + "ãģ£ãģ¦ãģĦ": 107462, + "ä¼Ĺ": 107463, + "ĠпÑĢодÑĥкÑĤ": 107464, + "Ġyanı": 107465, + "à¥Ģवन": 107466, + "ĠcáºŃp": 107467, + "ĠAvrupa": 107468, + "ाà¤Ń": 107469, + "ĠìłĦìļ©": 107470, + "æķ£": 107471, + "ĠìľĦíķľ": 107472, + "ÑħодиÑĤÑĮ": 107473, + "Ġsınır": 107474, + "ücret": 107475, + "suz": 107476, + "æ¨Ĥ": 107477, + "Ġì°½": 107478, + "ÏģίοÏħ": 107479, + "åĪļ": 107480, + "Ø®ÙĦ": 107481, + "ëłĩê²Į": 107482, + "جد": 107483, + "ĠμαÏĤ": 107484, + "áºŃm": 107485, + "kara": 107486, + "ãĤ«ãĥ¼": 107487, + "Ġkterou": 107488, + "ìĽ¨": 107489, + "ÑĦиÑĨи": 107490, + "oÄŁraf": 107491, + "ĠнапÑĢи": 107492, + "ãģijãģ©": 107493, + "Ġéļ": 107494, + "تباÙĦ": 107495, + "ëŁ½": 107496, + "ìĶ¨": 107497, + "íĮĮìĿ¼": 107498, + "Ïĩα": 107499, + "Ġuzak": 107500, + "Ġdòng": 107501, + "ĠголоÑģ": 107502, + "ÏĥÏĦή": 107503, + "ιλ": 107504, + "Ø·Ùģ": 107505, + "Ġê·¸ëħĢ": 107506, + "ãĤ¿ãĤ¤": 107507, + "اÙĨÚ¯": 107508, + "inou": 107509, + "лон": 107510, + "à¹ĩม": 107511, + "Ġबद": 107512, + "Ġkonusunda": 107513, + "Ġnâng": 107514, + "ãģ¾ãģĽãĤĵ": 107515, + "ÑĥÑİÑĤÑĮÑģÑı": 107516, + "åŁ¹": 107517, + "енко": 107518, + "ìłij": 107519, + "ĠÑĤов": 107520, + "ĠtÅĻeba": 107521, + "زاÙĨ": 107522, + "isyon": 107523, + "Ġген": 107524, + "ĠPokud": 107525, + "âĢĮاÙĨد": 107526, + "ĠгÑĢÑĥд": 107527, + "ĠخرÛĮد": 107528, + "λλα": 107529, + "ĠpÅĻÃŃm": 107530, + "Ġæ³ķ": 107531, + "ĠزÙĨدگÛĮ": 107532, + "ạp": 107533, + "ĠíĬ¸": 107534, + "ĠÄijá»Ļc": 107535, + "Ġê·¸ë¦¬ê³ł": 107536, + "низ": 107537, + "ĠÙĬÙĤ": 107538, + "laÅŁtır": 107539, + "ĠпÑĢаво": 107540, + "ÑĥÑģк": 107541, + "å°½": 107542, + "Ġपड": 107543, + "éĵģ": 107544, + "Ġì·¨": 107545, + "ĠاÙĦبÙĬ": 107546, + "¸": 107547, + "ิมà¸ŀ": 107548, + "ĠsvÄĽ": 107549, + "Ġбал": 107550, + "Ġmôn": 107551, + "ĠDữ": 107552, + "ĠشدÙĨ": 107553, + "ĠÙģÙĦ": 107554, + "Ġvznik": 107555, + "Ġchứ": 107556, + "ĠÑģÑĤÑĢÑĥкÑĤÑĥ": 107557, + "縣": 107558, + "ĠHoa": 107559, + "íĮĢ": 107560, + "ĠÑĢÑĸÑĪ": 107561, + "ĠвоздÑĥ": 107562, + "олÑĮÑĪ": 107563, + "οÏħμε": 107564, + "ูà¸Ļ": 107565, + "ĠпÑĢид": 107566, + "ilmek": 107567, + "ĠاÙĦÙĤر": 107568, + "Įĵ": 107569, + "Ġuç": 107570, + "å¨ĺ": 107571, + "ecektir": 107572, + "ĠíħĮ": 107573, + "ĠεÏħ": 107574, + "Ġhòa": 107575, + "ÏģÏħ": 107576, + "ึà¸ģษา": 107577, + "ĠÑĤеÑħнолог": 107578, + "úi": 107579, + "Ġbilgiler": 107580, + "ĠÙĤاÙĦ": 107581, + "edl": 107582, + "znám": 107583, + "ály": 107584, + "åºĶ该": 107585, + "алÑĮний": 107586, + "аÑĤелÑı": 107587, + "à¸Ļวà¸Ļ": 107588, + "ĠÐŁÐ¾Ð»": 107589, + "à¸ŀà¸Ļ": 107590, + "礼": 107591, + "Ġtasar": 107592, + "ĠÑĤой": 107593, + "ĠмеÑģÑı": 107594, + "ĠиÑģк": 107595, + "Ġपद": 107596, + "γή": 107597, + "اختÙĩ": 107598, + "è¿ĻéĩĮ": 107599, + "Ġchá»īnh": 107600, + "ĠÙĤسÙħ": 107601, + "ÙİÙĩ": 107602, + "erli": 107603, + "åĽ½éĻħ": 107604, + "iliyor": 107605, + "ĠØ´ÙĩرستاÙĨ": 107606, + "Ġvelk": 107607, + "åĽº": 107608, + "ĠбÑĸлÑĮÑĪ": 107609, + "ãĥ¼ãĥĹ": 107610, + "æŁIJ": 107611, + "ì§ľ": 107612, + "ĠÄĮR": 107613, + "Ġдек": 107614, + "ربÛĮ": 107615, + "овиÑĩ": 107616, + "Ġkapsam": 107617, + "ĠÙĦØ£": 107618, + "ĠанÑĤи": 107619, + "Ġücret": 107620, + "견": 107621, + "оÑĢож": 107622, + "ÛĮÙħÛĮ": 107623, + "è©ķ": 107624, + "Ġë§ŀ": 107625, + "ĠÑĢÑıд": 107626, + "ĠÙĩÙħراÙĩ": 107627, + "âr": 107628, + "ابت": 107629, + "ĠиÑģполÑĮзоваÑĤÑĮ": 107630, + "кÑģ": 107631, + "âī¡": 107632, + "Ġolay": 107633, + "èį¯": 107634, + "Ġoprav": 107635, + "ĠدربارÙĩ": 107636, + "Ġä¸ŃåĽ½": 107637, + "илÑģÑı": 107638, + "åį«": 107639, + "ĠاÙĦاست": 107640, + "ÙĪÛĮÛĮ": 107641, + "ÑĢеÑĪ": 107642, + "ĠÙĨس": 107643, + "ãĢĤåľ¨": 107644, + "ĠÙĦØŃ": 107645, + "Ġkorun": 107646, + "ĠÙģرد": 107647, + "ĠобоÑĢ": 107648, + "еÑĪÑĮ": 107649, + "ĠpodmÃŃn": 107650, + "Ġë¬¸ìłľ": 107651, + "ĠdeÄŁerlendir": 107652, + "ä¸įåIJĮ": 107653, + "液": 107654, + "ाहर": 107655, + "íļį": 107656, + "à¥įà¤ł": 107657, + "иÑĤиÑģÑı": 107658, + "اÙĦع": 107659, + "ĠdvÄĽ": 107660, + "ĠпеÑĢек": 107661, + "Ġåħĥ": 107662, + "Ġaras": 107663, + "Ġaltında": 107664, + "Ġвза": 107665, + "æĴĥ": 107666, + "Ġmilyon": 107667, + "ĠåѦ": 107668, + "ĠваÑĢи": 107669, + "ĠاÙĦعاÙĦÙħ": 107670, + "'Ñı": 107671, + "ÙĪÛĮس": 107672, + "ĠможÑĥÑĤÑĮ": 107673, + "ãģijãģŁ": 107674, + "ìĿ´ìĹĪëĭ¤": 107675, + "οÏįν": 107676, + "ĠéŁ": 107677, + "Ġpostup": 107678, + "üyük": 107679, + "åĪĬ": 107680, + "ĠÙĤب": 107681, + "ĠاصÙĦÛĮ": 107682, + "ÙĪÙī": 107683, + "Ġrepublik": 107684, + "ĠÐĻ": 107685, + "ģm": 107686, + "Ġбел": 107687, + "ा-": 107688, + "Ñģкое": 107689, + "Ġcuá»iji": 107690, + "è²·": 107691, + "ียว": 107692, + "éĩįè¦ģ": 107693, + "ูม": 107694, + "ĠÑĢозвиÑĤкÑĥ": 107695, + "Ġë°±": 107696, + "åĥ¹": 107697, + "Ġåīį": 107698, + "à¹Ħà¸ĭ": 107699, + "ãĢĮâĢ¦âĢ¦": 107700, + "à¥Įत": 107701, + "کرد": 107702, + "ĠzaÅĻÃŃzenÃŃ": 107703, + "สาร": 107704, + "Ġletech": 107705, + "lemek": 107706, + "人ãģ®": 107707, + "Ġdưỡng": 107708, + "تÙĤ": 107709, + "Ġåĵ": 107710, + "åħ»": 107711, + "Ġëıħ": 107712, + "Ġ루": 107713, + "Ø°ÙĦÙĥ": 107714, + "ĠìĿ¼ë³¸": 107715, + "ĠAyrıca": 107716, + "ĠÙ¾Úĺ": 107717, + "isinin": 107718, + "Ġìĭ¶": 107719, + "Ú¯ÛĮرÛĮ": 107720, + "خصص": 107721, + "³ç´°": 107722, + "ĠмаÑĤеÑĢиал": 107723, + "kové": 107724, + "ë§ī": 107725, + "ãģķãģĽ": 107726, + "ĠÑĤакой": 107727, + "ĠtráºŃn": 107728, + "ĠлиÑĨ": 107729, + "ĠåĽĽ": 107730, + "ÑĩÑĥ": 107731, + "Ġæ°´": 107732, + "Ġdolay": 107733, + "å½¹": 107734, + "ÑĢива": 107735, + "ĠгÑĢÑĥпп": 107736, + "Ġmümkün": 107737, + "лена": 107738, + "ëĿ¼ëĬĶ": 107739, + "åĪ©çĶ¨": 107740, + "Ġrahat": 107741, + "ï¼ıï¼ıï¼ıï¼ı": 107742, + "æģ©": 107743, + "ĠíķŃ": 107744, + "ĠíĴ": 107745, + "ĠìĬ¹": 107746, + "Ġchân": 107747, + "ĠãĤ¨": 107748, + "Ġжизни": 107749, + "çĸij": 107750, + "ãĢĤä»ĸ": 107751, + "리ìĬ¤": 107752, + "ÑĩиÑħ": 107753, + "Ġé¦ĸ": 107754, + "ÄĽr": 107755, + "ĠйомÑĥ": 107756, + "ĠtháºŃt": 107757, + "Ġìķŀ": 107758, + "cih": 107759, + "سÙĦاÙħ": 107760, + "Ġsiyas": 107761, + "ĠíĸĪ": 107762, + "ĠкоÑĪ": 107763, + "Ïĥαν": 107764, + "ÙĬاÙĨ": 107765, + "Ġdö": 107766, + "ाहत": 107767, + "оÑĢод": 107768, + "оваÑı": 107769, + "ÑĨионалÑĮ": 107770, + "ائÙĩ": 107771, + "Ġà¤ĸर": 107772, + "ĠÄijá»Ŀi": 107773, + "ä¸įä¼ļ": 107774, + "Ùĥز": 107775, + "ีà¸Ħวาม": 107776, + "lıyor": 107777, + "à¥ĭद": 107778, + "Ġ충": 107779, + "Ġcá»ij": 107780, + "à¹Ĥà¸ķ": 107781, + "ĠεÏĢί": 107782, + "ĠпÑĢÑıм": 107783, + "æ³°": 107784, + "اÙĦØ©": 107785, + "jÃŃm": 107786, + "Ġби": 107787, + "Å¡em": 107788, + "ĠHá»Ļi": 107789, + "à¸Ħรà¸ĩ": 107790, + "Ġhuyá»ĩn": 107791, + "ç¯Ģ": 107792, + "liÅ¡": 107793, + "ĠجÙĩت": 107794, + "ç§ĭ": 107795, + "ĠÑĨел": 107796, + "ĠлÑĸÑĤ": 107797, + "Ġæ·": 107798, + "жÑĥ": 107799, + "ãģĪãģŁ": 107800, + "ë´ī": 107801, + "Ġ머": 107802, + "åł´åIJĪ": 107803, + "éĿ©": 107804, + "ãĥªãĥ³": 107805, + "егда": 107806, + "Ġbenim": 107807, + "缣": 107808, + "ãģ®ä¸Ń": 107809, + "åĿIJ": 107810, + "ĠÃľniversitesi": 107811, + "ĠkoÅŁ": 107812, + "Ġпож": 107813, + "iá»ĩp": 107814, + "ĠpÅĻij": 107815, + "ëŀ¨": 107816, + "ĠاÙĦأس": 107817, + "árnÃŃ": 107818, + "iếm": 107819, + "ĠèĬ": 107820, + "Ġδε": 107821, + "娱ä¹IJ": 107822, + "ĠÆ°u": 107823, + "ĠçĦ¡": 107824, + "ĠгÑĢи": 107825, + "ĠпоÑįÑĤомÑĥ": 107826, + "ĠÄijóng": 107827, + "جاÙĨ": 107828, + "Ġnghiên": 107829, + "ĠاÙĦاÙĨ": 107830, + "ÑĪей": 107831, + "à¹ģรà¸ģ": 107832, + "ĠÚĨÙĩار": 107833, + "ÑİÑīий": 107834, + "ÏĮÏģ": 107835, + "ĠرÙħ": 107836, + "ì²ł": 107837, + "ĠدستگاÙĩ": 107838, + "ĠدÛĮد": 107839, + "ãĥĥãĤ¯ãĤ¹": 107840, + "ामन": 107841, + "ĠThÃłnh": 107842, + "Ġthẩm": 107843, + "ĠcÃłng": 107844, + "ĠdönÃ¼ÅŁ": 107845, + "ĠпÑĢигоÑĤов": 107846, + "ĠkiÅŁi": 107847, + "ØŃت": 107848, + "Ġë²ķ": 107849, + "é£Ľ": 107850, + "Ġitibar": 107851, + "Ġглав": 107852, + "Ġortam": 107853, + "Ġmadd": 107854, + "ĠоÑģÑĤав": 107855, + "ĠÙģÙĪتباÙĦ": 107856, + "ĠanlaÅŁ": 107857, + "leyen": 107858, + "ç´Ģ": 107859, + "Ġé£": 107860, + "/lo": 107861, + "ÙħÙĪÙĦ": 107862, + "ĠдÑĥÑħ": 107863, + "ĠÙĦب": 107864, + "лег": 107865, + "Ġgönder": 107866, + "ÙĬØ·": 107867, + "Ġสำ": 107868, + "Ġvás": 107869, + "ĠÐŁÐµÑĤ": 107870, + "алоÑģÑı": 107871, + "ì¿ł": 107872, + "éĻ½": 107873, + "åĸ®": 107874, + "èĪŀ": 107875, + "нÑĥл": 107876, + "ÄŁine": 107877, + "Ġghi": 107878, + "Ġçµ": 107879, + "ÙĬÙĨÙĬ": 107880, + "Ž": 107881, + "Ġhüküm": 107882, + "ĠDÄ±ÅŁ": 107883, + "ĠÎŃÏĩει": 107884, + "ĠÑģка": 107885, + "ĠÑĤим": 107886, + "ĠпоÑģÑĤав": 107887, + "à¸Ļาà¸Ķ": 107888, + "dül": 107889, + "Ġdva": 107890, + "Ġà¸Ħà¸Ļ": 107891, + "Ġchá»ĭu": 107892, + "Ġèı": 107893, + "à¹ģสà¸Ķà¸ĩ": 107894, + "æ°£": 107895, + "ĠíĪ¬": 107896, + "ĠÑĩин": 107897, + "ãģ«ãģĬ": 107898, + "енноÑģÑĤи": 107899, + "ÐIJÐĿ": 107900, + "Ġhemen": 107901, + "Ġait": 107902, + "Ġà¤Ĭ": 107903, + "æī§": 107904, + "ĠABD": 107905, + "Ġκαθ": 107906, + "æ´Ľ": 107907, + "ãĤ¢ãĥ«": 107908, + "à¹īาà¸Ĺ": 107909, + "ÅĻez": 107910, + "dÄĽji": 107911, + "Ġtá»ĭch": 107912, + "еннÑıм": 107913, + "ĠвÑģÑĤанов": 107914, + "ĠاÙĦبر": 107915, + "ÙĪÙħتر": 107916, + "kách": 107917, + "åºĬ": 107918, + "лÑĥж": 107919, + "Ġتد": 107920, + "丽": 107921, + "رخ": 107922, + "à¤Ĥà¤ĸ": 107923, + "èĩªå·±çļĦ": 107924, + "å®ĺç½ij": 107925, + "-Ñı": 107926, + "à¹ĩà¸Ķ": 107927, + "èĦļ": 107928, + "Ġçķ": 107929, + "Ġiçerisinde": 107930, + "Ġbiá»ĥn": 107931, + "Ġà¸ģล": 107932, + "ĠyaÄŁ": 107933, + "Ġæ´": 107934, + "ĠбÑĢа": 107935, + "عار": 107936, + "æĪ°": 107937, + "à¥ĢĊ": 107938, + "ĠléÄį": 107939, + "aların": 107940, + "ĠÎĸ": 107941, + "аÑĢÑı": 107942, + "ãģĿãĤĵãģª": 107943, + "ÅĪuje": 107944, + "ãĢĢĠ": 107945, + "ĠsaÄŁlık": 107946, + "ĠдоÑģлÑĸд": 107947, + "ÃŃÅ¡": 107948, + "à¥įरश": 107949, + "à¥īन": 107950, + "Ġgiả": 107951, + "بÙĪاسطة": 107952, + "å®ģ": 107953, + "Ġsoud": 107954, + "ĠкÑĤо": 107955, + "esel": 107956, + "Ġпам": 107957, + "ĠÂłĠ": 107958, + "ĠÄįlov": 107959, + "æ··": 107960, + "หà¸į": 107961, + "ĠOsman": 107962, + "æ¦Ĥ": 107963, + "Ġåĭ": 107964, + "ï¼Įåħ¶": 107965, + "Ġà¸Ħร": 107966, + "Ġmá»ģm": 107967, + "ĠÑģоÑĢ": 107968, + "çĨ±": 107969, + "Ġthuê": 107970, + "رج": 107971, + "à¹Ĥลà¸ģ": 107972, + "Ġíķĺê³ł": 107973, + "ÙĬدة": 107974, + "ĠaÅŁaģı": 107975, + "Ġká»ĥ": 107976, + "à¸ķำ": 107977, + "λει": 107978, + "çļĦè¯Ŀ": 107979, + "æ±ł": 107980, + "ĠÑģÑĤен": 107981, + "Ġincel": 107982, + "åºŃ": 107983, + "ÑĤоÑĩ": 107984, + "Ġproblém": 107985, + "ÏĦÏĥ": 107986, + "à¹īà¸Ńà¸Ļ": 107987, + "ë³´ëĭ¤": 107988, + "Ġà¤Ĩà¤Ĺ": 107989, + "ναÏĤ": 107990, + "ãģĦãĤĭ": 107991, + "Ġdục": 107992, + "Ġtohoto": 107993, + "ëIJĺìĹĪëĭ¤": 107994, + "TJ": 107995, + "ĠвизнаÑĩ": 107996, + "ĠBunun": 107997, + "à¤Ĥबर": 107998, + "ĠÙĩÙħÚĨÙĨÛĮÙĨ": 107999, + "ĠбÑİдж": 108000, + "ÑĥÑĢг": 108001, + "亮": 108002, + "Ġμεγ": 108003, + "Ġtoplum": 108004, + "ãģ£ãģ": 108005, + "оÑĤо": 108006, + ":|": 108007, + "éĿŀ常": 108008, + "ิà¸Ĺà¸ĺ": 108009, + "éģķ": 108010, + "âĢĮپدÛĮ": 108011, + "ĠзÑĢоб": 108012, + "à¹Įà¸Ķ": 108013, + "Ġдолжен": 108014, + "ĠmÄĽsta": 108015, + "ÛĮØ´Ùĩ": 108016, + "vatel": 108017, + "Ġprovoz": 108018, + "Ġinan": 108019, + "à¤Ĥप": 108020, + "Ġparç": 108021, + "ÑĢаÑģÑĤ": 108022, + "ümü": 108023, + "Ġgiá»ijng": 108024, + "欢": 108025, + "Ø«ÙĬر": 108026, + "ĠBakan": 108027, + "ĠâĪ¨": 108028, + "ĠباÙĨ": 108029, + "Û±Û¸": 108030, + "ãĤĤãģĨ": 108031, + "landı": 108032, + "Ġyeniden": 108033, + "ÑĨенÑĤ": 108034, + "ĠдеÑıÑĤелÑĮ": 108035, + "Щ": 108036, + "Ġrov": 108037, + "å®Įåħ¨": 108038, + "ĠKỳ": 108039, + "slu": 108040, + "Ġlấy": 108041, + "é¤IJ": 108042, + "ĠÑĩолов": 108043, + "ä¼Ŀ": 108044, + "ĠbaÅŁv": 108045, + "å°Ī": 108046, + "곡": 108047, + "ãĢģãģĿãĤĮ": 108048, + "ĠPÅĻÃŃ": 108049, + "дем": 108050, + "ĠпÑĢоек": 108051, + "รà¸ĸ": 108052, + "建设": 108053, + "Ġможлив": 108054, + "殺": 108055, + "ãģ¡ãĤĥãĤĵ": 108056, + "æķij": 108057, + "ĠÄįty": 108058, + "é¦Ĩ": 108059, + "оÑĢÑĥ": 108060, + "ĠæĦ": 108061, + "ĠkÃŃch": 108062, + "λοÏħ": 108063, + "ãģĦãģ¤": 108064, + "ĠcÄĥn": 108065, + "ẵ": 108066, + "Ġelde": 108067, + "麻": 108068, + "ÄŁe": 108069, + "ĠdobÄĽ": 108070, + "ायर": 108071, + "Ġãĥı": 108072, + "нен": 108073, + "Ġmůžete": 108074, + "ĠнаÑģÑĤÑĥп": 108075, + "ìĭľê°Ħ": 108076, + "ĠÑģимпÑĤом": 108077, + "ĠÏĥÏį": 108078, + "ĠسÙĦ": 108079, + "εκ": 108080, + "รà¸ĵ": 108081, + "áte": 108082, + "ekler": 108083, + "ĠвÑĢемени": 108084, + "âĢĮÙĩاÛĮÛĮ": 108085, + "ãģĬãĤĬ": 108086, + "жи": 108087, + "ÑĭваеÑĤÑģÑı": 108088, + "ÙħاÙĨÛĮ": 108089, + "à¸ķล": 108090, + "Ġصد": 108091, + "Ġвол": 108092, + "ìĬĪ": 108093, + "ĠÙĥÙħا": 108094, + "Ġnhằm": 108095, + "èģ¯": 108096, + "ovacÃŃ": 108097, + "Ġë§Įëĵ¤": 108098, + "ÙĪÙ¾": 108099, + "Ġë¸Į": 108100, + "بÙĬØ©": 108101, + "uyla": 108102, + "лено": 108103, + "èĮ¶": 108104, + "ÑĢей": 108105, + "Ġkli": 108106, + "Ġüzerinden": 108107, + "неÑĤ": 108108, + "raÄį": 108109, + "ĠпÑĢаÑĨÑİ": 108110, + "Ġediyor": 108111, + "ãģıãģł": 108112, + "ĠÄįast": 108113, + "iyi": 108114, + "éĬĢ": 108115, + "Ġdù": 108116, + "Ùİب": 108117, + "ÙĪÙĬØ©": 108118, + "åª": 108119, + "Ġsınıf": 108120, + "Ġساعت": 108121, + "Ġราย": 108122, + "ĠзаÑıв": 108123, + "Ġgặp": 108124, + "à¸Ńว": 108125, + "ĠØ«Ùħ": 108126, + "ĠZá": 108127, + "ĠвÑĸдк": 108128, + "izik": 108129, + "Ġmón": 108130, + "ĠповÑĭÑĪ": 108131, + "Ġà¸ļาà¸Ĺ": 108132, + "ĠÑģил": 108133, + "æĥħåł±": 108134, + "Âłt": 108135, + "ĠÐľÐ¾Ñģк": 108136, + "Ġê²ĥìĿ´ëĭ¤": 108137, + "ĠçIJ": 108138, + "ĠÙħدÛĮرÛĮت": 108139, + "овоÑĹ": 108140, + "Το": 108141, + "纪": 108142, + "нÑĸÑĪе": 108143, + "ĠÐĽÑİ": 108144, + "ηÏĥη": 108145, + "ĠÙĨسبت": 108146, + "muz": 108147, + "รว": 108148, + "ãĢģãģĤ": 108149, + "Ġболез": 108150, + "Ġtrách": 108151, + "ãĥ¦": 108152, + "à¹Ģà¸Ĥา": 108153, + "Ġê·¸ëĬĶ": 108154, + "برÛĮ": 108155, + "æłª": 108156, + "ëĿ¼ìĿ´": 108157, + "ĠíĮ¨": 108158, + "íĬ¹": 108159, + "ľ´": 108160, + "िड": 108161, + "ÑĢоме": 108162, + "讲": 108163, + "ĠÑĤон": 108164, + "ÑģÑĸ": 108165, + "Ġç®": 108166, + "åıĸãĤĬ": 108167, + "ì°°": 108168, + "ĠÙĪÙĦÛĮ": 108169, + "ĠسطØŃ": 108170, + "èıľ": 108171, + "нами": 108172, + "Türk": 108173, + "åİĤ": 108174, + "Ġfinan": 108175, + "ãģ«ãģªãĤĭ": 108176, + "Ġoby": 108177, + "Trong": 108178, + "Ġvyp": 108179, + "à¥ģड": 108180, + "ìŀIJê°Ģ": 108181, + "ĠæīĢ": 108182, + "ÐĹа": 108183, + "umlu": 108184, + "ëĵĿ": 108185, + "ĠменÑĸ": 108186, + "олниÑĤелÑĮ": 108187, + "ĠúÄįin": 108188, + "Ġbunun": 108189, + "ĠÐłÐ¾ÑģÑģии": 108190, + "вÑģÑı": 108191, + "ĠнÑĸж": 108192, + "ิà¸Ķà¸ķ": 108193, + "غة": 108194, + "Äļ": 108195, + "ĠسÙħ": 108196, + "ĠÐĺз": 108197, + "à¥ĩप": 108198, + "大çļĦ": 108199, + "ì¹ľ": 108200, + "ĠиÑģÑĤ": 108201, + "ĠконÑģÑĤÑĢÑĥк": 108202, + "Û±Û²": 108203, + "âl": 108204, + "ĠÑĪиÑĢ": 108205, + "ï¼ł": 108206, + "Ġartık": 108207, + "æŁĵ": 108208, + "乡": 108209, + "ÃŃte": 108210, + "ĠNháºŃt": 108211, + "ĠÎĶη": 108212, + "Ġölç": 108213, + "êµ´": 108214, + "оÑıн": 108215, + "ëĵ±ë¡Ŀ": 108216, + "Ġngân": 108217, + "ĠбÑĥдÑĮ": 108218, + "ÎŁÎ¡": 108219, + "ì´": 108220, + "ÙħÙĪد": 108221, + "νον": 108222, + "ÎķÎĿ": 108223, + "çijŀ": 108224, + "ĠÅĻek": 108225, + "-âĢIJ": 108226, + "ĠMerk": 108227, + "ĠопÑĢедел": 108228, + "Ïģιν": 108229, + "лаб": 108230, + "ëĦ¤ìļĶ": 108231, + "Ġблиз": 108232, + "Ġphá»iji": 108233, + "ĠдолжнÑĭ": 108234, + "ĠÑįкÑģп": 108235, + "à¸ļà¸Ĺ": 108236, + "à¸Ľà¸£à¸°à¸ª": 108237, + "ĠÙ¾ÚĺÙĪÙĩ": 108238, + "Ġíķľëĭ¤": 108239, + "ÏĦοÏį": 108240, + "ÙĩÙĨ": 108241, + "Ġдод": 108242, + "Ġkayı": 108243, + "Łģ": 108244, + "ÑģиÑı": 108245, + "à¤Ĥतर": 108246, + "Ġpodnik": 108247, + "evi": 108248, + "ÛĮÛĮر": 108249, + "Так": 108250, + "коп": 108251, + "наÑħ": 108252, + "اسÙĩ": 108253, + "à¸ĵà¸ij": 108254, + "Ġkhá": 108255, + "Ġyarat": 108256, + "ĠاÛĮÙĨÚ©Ùĩ": 108257, + "طبÙĬ": 108258, + "Ġsır": 108259, + "ĠØ¢ÙħرÛĮکا": 108260, + "Ġबल": 108261, + "kaç": 108262, + "Ġåı¯": 108263, + "Ġåħ¶": 108264, + ".***": 108265, + "лÑĸннÑı": 108266, + "ä¹±": 108267, + "oq": 108268, + "æ¦": 108269, + "ãĤ¼": 108270, + "Ġfır": 108271, + "Ġkê": 108272, + "Ġìłľê³µ": 108273, + "ĠÏĥη": 108274, + "анÑĭ": 108275, + "нова": 108276, + "à¸Ĭาย": 108277, + "ĠØ·ÙĪÙĦ": 108278, + "à¥Īय": 108279, + "Ġì¹ľ": 108280, + "ìĤ´": 108281, + "ĠпÑĸв": 108282, + "ĠluáºŃn": 108283, + "Ġà¤īम": 108284, + "åºĥ": 108285, + "à¹ĩà¸Ńà¸ķ": 108286, + "ĠساÛĮت": 108287, + "лÑıн": 108288, + "ĠíķĦìļĶ": 108289, + "Ġgörül": 108290, + "ĠÑĤеÑĢиÑĤоÑĢ": 108291, + "ĠÙĨØŃ": 108292, + "ема": 108293, + "Ġmnoh": 108294, + "Ġãģ¯": 108295, + "غÙĬر": 108296, + "ĠÑģделаÑĤÑĮ": 108297, + "çģµ": 108298, + "ĠÐłÐ°Ð·": 108299, + "ĠгеÑĢ": 108300, + "γμα": 108301, + "íķĺë©´": 108302, + "ĠdeÄŁiÅŁtir": 108303, + "ãĥ³ãĥĨ": 108304, + "å¸Ĥåľº": 108305, + "个人": 108306, + "ìĥĪ": 108307, + "침": 108308, + "èīº": 108309, + "ÙĤت": 108310, + "ĠگرÙģتÙĩ": 108311, + "Ġçİĭ": 108312, + "ĠاÙĦØ°Ùĩ": 108313, + "λÏħ": 108314, + "à¤ľà¤°": 108315, + "Ġвним": 108316, + "ë¦Ń": 108317, + "ิà¸Ĺ": 108318, + "ĠشاÙĩ": 108319, + "æĬķèµĦ": 108320, + "æĿIJæĸĻ": 108321, + "ĠÙĨÙģ": 108322, + "説": 108323, + "æĬĹ": 108324, + "Ġаб": 108325, + "iyeti": 108326, + "ç¾ħ": 108327, + "ÑĢÑĸз": 108328, + "Ġสม": 108329, + "icÃŃ": 108330, + "кÑĥваннÑı": 108331, + "Ġìķ¼": 108332, + "Ġè½": 108333, + "âĢ«": 108334, + "Ġδιά": 108335, + "Ġдеп": 108336, + "ãĥ¼ãĤ¿": 108337, + "Ġobjev": 108338, + "ména": 108339, + "Ġbelg": 108340, + "Ġæ¥": 108341, + "Ġná»ģn": 108342, + "Ġгол": 108343, + "Ġpostav": 108344, + "Ġتک": 108345, + "Ы": 108346, + "ĠпÑĸдÑĤ": 108347, + "ĠоÑĤноÑĪ": 108348, + "ĠпÑĢив": 108349, + "ĠåŁº": 108350, + "Ġнали": 108351, + "ůž": 108352, + "Ġyat": 108353, + "ÅŁa": 108354, + "ÏĦήÏĤ": 108355, + "ÑĨем": 108356, + "次æķ°": 108357, + "ĠbÃł": 108358, + "ÙĪÙĥ": 108359, + "ĠíĶĦë¡ľ": 108360, + "ĠPháp": 108361, + "Ġêµ°": 108362, + "è³ŀ": 108363, + "Ġochran": 108364, + "Ġgerekir": 108365, + "Ġíļ": 108366, + "à¸ļล": 108367, + "áme": 108368, + "ĠبÛĮر": 108369, + "à¸Ĥาย": 108370, + "ований": 108371, + "Ġmožné": 108372, + "âĶģâĶģâĶģâĶģâĶģâĶģâĶģâĶģ": 108373, + "álu": 108374, + "нÑĤ": 108375, + "¦æĥħ": 108376, + "à¹ģรม": 108377, + "ĠÑĦÑĸн": 108378, + "Ġİç": 108379, + "à¹Īà¸Ńย": 108380, + "겨": 108381, + "Ġhedef": 108382, + "ĠاÙĦÙħØ´": 108383, + "à¹īาม": 108384, + "å¯Ħ": 108385, + "Ġëĭµ": 108386, + "Ġô": 108387, + "лаÑģÑı": 108388, + "Ä°T": 108389, + "à¸Ķำ": 108390, + "Ġherhangi": 108391, + "Ġgereken": 108392, + "еÑĢеж": 108393, + "ÙĪØ©": 108394, + "ĠpÅĻest": 108395, + "ç§ijåѦ": 108396, + "оÑģÑĤаÑĤ": 108397, + "ünden": 108398, + "åĮħæĭ¬": 108399, + "ĠدÙĩد": 108400, + "ÑĪиÑģÑĮ": 108401, + "неÑĢ": 108402, + "Ñĸдом": 108403, + "Ġbiç": 108404, + "ìĭŃ": 108405, + "Ġhodnot": 108406, + "ĠzemÄĽ": 108407, + "ĠاÛĮجاد": 108408, + "Ġyine": 108409, + "िण": 108410, + "ĠاÙĦبÙĦ": 108411, + "ĠNÄĽ": 108412, + "Ġpolož": 108413, + "éĺħ读": 108414, + "å¸ģ": 108415, + "å¼Ł": 108416, + "ξε": 108417, + "ĠMá»Ļt": 108418, + "ç£": 108419, + "Û±Û³Û¹": 108420, + "Ġآز": 108421, + "ãģŀ": 108422, + "ĠмеÑħ": 108423, + "ยม": 108424, + "Ġæ¨": 108425, + "Ġotur": 108426, + "Ġdầu": 108427, + "Ġëĭ¤ìļ´": 108428, + "çĮ«": 108429, + "ĠCó": 108430, + "ĠlidÃŃ": 108431, + "ĠarkadaÅŁ": 108432, + "Ġαλλά": 108433, + "é¡»": 108434, + "ĠÙĩÙħÛĮÙĨ": 108435, + "転": 108436, + "ĠâĹĭ": 108437, + "ëıĦë¡Ŀ": 108438, + "Âĥ": 108439, + "âĢĮشدÙĩ": 108440, + "ĠØŃÙĬØ«": 108441, + "Ġnhóm": 108442, + "ÏĥÏĩ": 108443, + "ĠÑĤÑĢанÑģп": 108444, + "Ġtanım": 108445, + "ç´į": 108446, + "Ġbahis": 108447, + "举": 108448, + "ĠинÑĦоÑĢма": 108449, + "ĠÑģлож": 108450, + "Ġkraj": 108451, + "ĠØŃÙĦ": 108452, + "Ġãĥĸ": 108453, + "ĠÙĨÙĤÙĦ": 108454, + "ĠÐłÐ¾Ð·": 108455, + "ĠÎijÏħ": 108456, + "lardı": 108457, + "Ġپاس": 108458, + "ĠìĭĿ": 108459, + "ĠìłĦìļ©ë©´ìłģ": 108460, + "ĠاÙĦسÙĬ": 108461, + "باشد": 108462, + "ศาสà¸ķร": 108463, + "Ġköy": 108464, + "Ġrok": 108465, + "Ġ죽": 108466, + "ĠÑģог": 108467, + "Ġchú": 108468, + "éĺª": 108469, + "ĠÄįásti": 108470, + "ĠзвеÑĢ": 108471, + "Ġниз": 108472, + "ĠÃ¶ÄŁret": 108473, + "Ġãĥİ": 108474, + "пе": 108475, + "çĴ°": 108476, + "Ġèª": 108477, + "ÙĪÙĦÙĩ": 108478, + "Ä°M": 108479, + "/REC": 108480, + "å¡ŀ": 108481, + "ĠÐĴи": 108482, + "/loose": 108483, + "ĠпоÑħ": 108484, + "ĠgeniÅŁ": 108485, + "Ġthiá»ĩn": 108486, + "tiÄŁi": 108487, + "Ñĩие": 108488, + "онд": 108489, + "ĠпÑĢиÑģ": 108490, + "ázky": 108491, + "ĠDevlet": 108492, + "ç¦ģ": 108493, + "Ġаг": 108494, + "ilere": 108495, + "инкÑĥ": 108496, + "Ġvardı": 108497, + "ãĢĢãĢĢãĢĢĠãĢĢ": 108498, + "ĠëĨĴ": 108499, + "à¤Ĥपन": 108500, + "Ġözellik": 108501, + "éļľ": 108502, + "ìĸ´ìĦľ": 108503, + "رÙĬÙĥ": 108504, + "ÙĪبÛĮ": 108505, + "ãĥ³ãĥĢ": 108506, + "íĮ¨": 108507, + "Ġसमà¤Ŀ": 108508, + "ï¾Ĩï¾Ĩï¾Ĩï¾Ĩ": 108509, + "ĠÙģÙĨ": 108510, + "à¥Ŀ": 108511, + "Ġuveden": 108512, + "ÑĪими": 108513, + "Ġà¹Ģล": 108514, + "Ġ문ìĿĺ": 108515, + "ĠØŃرÙģ": 108516, + "Ġعب": 108517, + "ãĥ¬ãĥĵ": 108518, + "ĠæŃ£": 108519, + "ĠëĺIJëĬĶ": 108520, + "ĠÚ©ÙĨÙĨدÙĩ": 108521, + "ĠαÏħÏĦÏĮ": 108522, + "Ġ길": 108523, + "Ġifade": 108524, + "Ġyapmak": 108525, + "ãĥķãĤ©": 108526, + "Ġmẹ": 108527, + "Ġstrán": 108528, + "Ġsvou": 108529, + "Ġvždy": 108530, + "Ġtekrar": 108531, + "ิà¸į": 108532, + "Ġìĵ°": 108533, + "oÄŁu": 108534, + "ĠÚ©ÛĮÙĦ": 108535, + "ивÑģÑı": 108536, + "Ġë§IJíĸĪëĭ¤": 108537, + "ä¸Ŀ": 108538, + "à¤ıस": 108539, + "ĠÑģÑĤÑĢаÑħ": 108540, + "ĠsouÄįas": 108541, + "Ġê·¸ëŁ°": 108542, + "ĠmÃ¼ÅŁ": 108543, + "λοÏį": 108544, + "γÏī": 108545, + "ĠtÆ°á»Łng": 108546, + "Ġå·¥": 108547, + "ĠاسÙħ": 108548, + "ÑĢÑĸм": 108549, + "à¹Ģà¸Ľà¸¥": 108550, + "Ġ³³Ġ³³": 108551, + "ÙĩاÛĮÛĮ": 108552, + "寺": 108553, + "ĠسرÛĮ": 108554, + "ĠкваÑĢ": 108555, + "ĠØ´ÙħارÙĩ": 108556, + "ĠصØŃ": 108557, + "оÑģÑĤав": 108558, + "२": 108559, + "Ġà¸Ħวาม": 108560, + "íĥģ": 108561, + "éĢĤ": 108562, + "بØŃ": 108563, + "ĠdeÄŁiÅŁik": 108564, + "éĮ²": 108565, + "еди": 108566, + "Ġokol": 108567, + "ĠÑģоп": 108568, + "Ġolmayan": 108569, + "çŃij": 108570, + "Û±Û´": 108571, + "Ġinclu": 108572, + "Ġê²ĮìŀĦ": 108573, + "ÛĮستÙħ": 108574, + "Ġç©": 108575, + "ĠاÙĦÙĪÙĦاÙĬات": 108576, + "ilmektedir": 108577, + "ÃĮ": 108578, + "Ùİع": 108579, + "Ġaģır": 108580, + "è¡Ľ": 108581, + "Ġeski": 108582, + "ê°Ŀ": 108583, + "본ëĭ¤": 108584, + "人åijĺ": 108585, + "ÚĺÛĮ": 108586, + "Ġç¨": 108587, + "ĠмеÑģÑĤо": 108588, + "vů": 108589, + "à¥įरह": 108590, + "ĠطرØŃ": 108591, + "ĠابÙĨ": 108592, + "Ġhiss": 108593, + "оÑĢÑıд": 108594, + "ĠدÙģ": 108595, + "ÑĢиÑģÑĤ": 108596, + "à¸Ĭม": 108597, + "деÑĤ": 108598, + "à¹Ģหม": 108599, + "ë§ĪìĤ¬ì§Ģ": 108600, + ":.:.:": 108601, + "éħ¸": 108602, + "ĠαÏģÏĩ": 108603, + "Ġnữ": 108604, + "ĠпоÑģад": 108605, + "lum": 108606, + "ìº": 108607, + "ãģ§ãģįãĤĭ": 108608, + "ìĸµ": 108609, + "ĠاÙĦÙħد": 108610, + "нÑĸм": 108611, + "راÙĤ": 108612, + "ĠãĥĪ": 108613, + "ĠodpovÄĽ": 108614, + "Ġbirbir": 108615, + "Ġhãy": 108616, + "овий": 108617, + "æ®ĭ": 108618, + "éĥ½æĺ¯": 108619, + "迪": 108620, + "Ġaraç": 108621, + "енÑĤÑĸв": 108622, + "æĬ±": 108623, + "dál": 108624, + "ĠÄIJông": 108625, + "Ġhesap": 108626, + "ĠاÙĨساÙĨ": 108627, + "ĠÙĬÙĪÙħ": 108628, + "ĠÙĨÙĪر": 108629, + "åīĩ": 108630, + "çĹĽ": 108631, + "ĠÙĨÙĬ": 108632, + "алÑĮна": 108633, + "تباط": 108634, + "लब": 108635, + "Ġkomun": 108636, + "Ġsnad": 108637, + "åĽ£": 108638, + "رÙĬد": 108639, + "elopment": 108640, + "ĠиÑİ": 108641, + "à¥Ģ.": 108642, + "Ġkısa": 108643, + "ĠdeÄŁildir": 108644, + "à¹īาร": 108645, + "Ġsvého": 108646, + "Ġoblasti": 108647, + "ÑĪли": 108648, + "à¹Ģà¸Ĺà¸ŀ": 108649, + "ÑĢеÑĤÑĮ": 108650, + "ово": 108651, + "ĠíĤ¤": 108652, + "átky": 108653, + "ĠاÙĦÙģر": 108654, + "èĺŃ": 108655, + "ÏĦον": 108656, + "ĠÑģÑĤоиÑĤ": 108657, + "ÙħØŃ": 108658, + "Ġà¹Ħ": 108659, + "ĠÑĤебе": 108660, + "íģ´": 108661, + "ĠmÄĽla": 108662, + "æݧåĪ¶": 108663, + "ĠChủ": 108664, + "ìĬ¨": 108665, + "ÐIJТ": 108666, + "اجع": 108667, + "ìĻķ": 108668, + "ç©¿": 108669, + "олее": 108670, + "หลาย": 108671, + "Ġdvou": 108672, + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 108673, + "ุà¸Ĥ": 108674, + "Ġboz": 108675, + "ิà¸Ļà¸Ħ": 108676, + "å¤Ł": 108677, + "Ġfaaliyet": 108678, + "ĠÄįÃŃs": 108679, + "ãģ»ãģ©": 108680, + "Ġ:/": 108681, + "кÑĸÑģÑĤÑĮ": 108682, + "Ġì¤Ģ": 108683, + "ÏģαÏĤ": 108684, + "Ġодно": 108685, + "æ¢ħ": 108686, + "Ñĥбли": 108687, + "ноз": 108688, + "à¹Įม": 108689, + "Ġvýrob": 108690, + "ĠκÏħ": 108691, + "ÅĻev": 108692, + "ÂłB": 108693, + "ůže": 108694, + "ä¼ļ社": 108695, + "ιβ": 108696, + "ÑĢованиÑı": 108697, + "Ġcev": 108698, + "ìĽĢ": 108699, + "álnÃŃch": 108700, + "ĠÑĢав": 108701, + "ç´§": 108702, + "åĢŁ": 108703, + "ĠÑŁ": 108704, + "ÙĪÙĨÙĬ": 108705, + "озÑı": 108706, + "Ġзов": 108707, + "Ġkolem": 108708, + "민êµŃ": 108709, + "ç¿Ĵ": 108710, + "ĠzamÄĽst": 108711, + "Ġìłij": 108712, + "ĠزÙĨ": 108713, + "ĠØ£Ùģ": 108714, + "Ġ먹": 108715, + "Ġtomto": 108716, + "Ġ첨ë¶Ģ": 108717, + "sage": 108718, + "ä¸įè¿ĩ": 108719, + "егод": 108720, + "ÑĢож": 108721, + "ĠпÑĢоÑĨед": 108722, + "à¹Įà¸Ļ": 108723, + "sanız": 108724, + "âĢŀØ·": 108725, + "æ´»åĬ¨": 108726, + "оÑĩки": 108727, + "보기": 108728, + "åŁºæľ¬": 108729, + "-Ñħ": 108730, + "лоÑģÑı": 108731, + "ĠÙĩÛĮÚĨ": 108732, + "ìĹĶ": 108733, + "Ñĩного": 108734, + "Ġà¤Ĺर": 108735, + "Ġà¤ħà¤Ĺ": 108736, + "ãħĭãħĭãħĭãħĭ": 108737, + "ĠãĤ¸": 108738, + "اسة": 108739, + "åĬĩ": 108740, + "à¹īà¸ĩ": 108741, + "Ġ커": 108742, + "nými": 108743, + "ãĥ¬ãĤ¹": 108744, + "åĭĴ": 108745, + "ĠоблаÑģÑĤÑĸ": 108746, + "ĠдÑĸÑıлÑĮноÑģÑĤÑĸ": 108747, + "ãĥ¬ãĤ¤": 108748, + "Ïĩαν": 108749, + "à¹Īาส": 108750, + "ĠФÑĢан": 108751, + "ÙĩÙĦ": 108752, + "lardır": 108753, + "ØŃات": 108754, + "ůst": 108755, + "ĠводÑĭ": 108756, + "ĠدÙĪÙĦت": 108757, + "ĠÑģпеÑĨÑĸ": 108758, + "Ġthất": 108759, + "à¸Ńาหาร": 108760, + "éłĺ": 108761, + "Ġtercih": 108762, + "ĠÏĢÏģοÏĥ": 108763, + "ĠÅĻÃŃzenÃŃ": 108764, + "è§īå¾Ĺ": 108765, + "Ġdnes": 108766, + "еÑĩно": 108767, + "ãĥĺ": 108768, + "ĠداراÛĮ": 108769, + "ĠÅŁart": 108770, + "벤": 108771, + "Ġë¶ģ": 108772, + "еÑı": 108773, + "нÑıÑĤÑĮ": 108774, + "ĠkvÄĽt": 108775, + "ĠتغÛĮÛĮر": 108776, + "é¾į": 108777, + "ĠرÙĨÚ¯": 108778, + "ï¼Įåı¯": 108779, + "Ġpiyas": 108780, + "Ġuygulan": 108781, + "ÙİØ©": 108782, + "بÙĬر": 108783, + "иваÑĤÑĮ": 108784, + "ĠíĹĪ": 108785, + "丶": 108786, + "è¿ĻäºĽ": 108787, + "Ġگر": 108788, + "罪": 108789, + "ä¸Ģæł·": 108790, + "Ġãĥª": 108791, + "Ġвой": 108792, + "Ġsosyal": 108793, + "ุà¸Ĺà¸ĺ": 108794, + "หมà¸Ķ": 108795, + "ç»Ŀ": 108796, + "ĠاÙĦجÙħ": 108797, + "Ġثبت": 108798, + "ĠجÙĨÚ¯": 108799, + "лении": 108800, + "ваÑı": 108801, + "ĠвоÑĤ": 108802, + "伤": 108803, + "Ġหล": 108804, + "ĠÙħÙĤاÙĦÙĩ": 108805, + "мÑĸнÑĸ": 108806, + "ìĺ¬": 108807, + "Ñĩий": 108808, + "ĠÙħÚ©": 108809, + "à¹Ĥà¸Ľà¸£": 108810, + "krv": 108811, + "ĠÃŃch": 108812, + "ÏīÏĥη": 108813, + "екÑĤоÑĢ": 108814, + "Як": 108815, + "ĠpÃŃs": 108816, + "ĠÃĸzel": 108817, + "ĠtÆ°á»Ľng": 108818, + "ĠÐĶо": 108819, + "διο": 108820, + "ูà¸Ķ": 108821, + "Ġtük": 108822, + "رÛĮÙĤ": 108823, + ".ÐĴ": 108824, + "ĠåIJĪ": 108825, + "ä¿Ĥ": 108826, + "Ġobdob": 108827, + "Ġistedi": 108828, + "ÑĪла": 108829, + "æľīä¸Ģ": 108830, + "ĠвклÑİÑĩа": 108831, + "ĠتØŃÙĤÛĮÙĤ": 108832, + "ĠÙĪÙĥ": 108833, + "ĠèĪ": 108834, + "ÆĴ": 108835, + "μεÏģ": 108836, + "Ġåģ": 108837, + "ĠìĹĨëĬĶ": 108838, + "Âłd": 108839, + "ĠBắc": 108840, + "à¸ģลาà¸ĩ": 108841, + "ĠÑĩÑĥв": 108842, + "Ġcấu": 108843, + "ĠHá»ĵ": 108844, + "ĠÙģاÛĮÙĦ": 108845, + "ÏĦηγοÏģ": 108846, + "ç±į": 108847, + "Ġبت": 108848, + "ĠобÑĢазом": 108849, + "æ±ī": 108850, + "èĦij": 108851, + "Ġgiản": 108852, + "εÏģγ": 108853, + "ĠÐľÑĸ": 108854, + "èĻ½çĦ¶": 108855, + "ĠKhi": 108856, + "Ñĩини": 108857, + "Ġà¤ħà¤Ĺर": 108858, + "íķĺë©°": 108859, + "ë²Ķ": 108860, + "ãģģ": 108861, + "виÑħ": 108862, + "ĠвÑģегда": 108863, + "Ġç¶": 108864, + "ÑģÑĤвенной": 108865, + "Ġyüksel": 108866, + "測": 108867, + "Ġsıras": 108868, + "ĠÏĢÏģÏİ": 108869, + "èĢ³": 108870, + "اÛĮر": 108871, + "دÙĪد": 108872, + "ĠAlman": 108873, + "Ġverdi": 108874, + "ĠاÙĦÙħج": 108875, + "ĠاÙĦتع": 108876, + "صة": 108877, + "Ġsıra": 108878, + "Äįin": 108879, + "ĠпеÑĢÑĪ": 108880, + "æĬĺ": 108881, + "ç©į": 108882, + "ĠÑĤоб": 108883, + "Ġï¾ī": 108884, + "ฬ": 108885, + "æĿĢ": 108886, + "iydi": 108887, + "ีà¸ŀ": 108888, + "çĵ¦": 108889, + "ĠавÑĤомоб": 108890, + "ä¸Ńæĸĩ": 108891, + "à¥Ĥद": 108892, + "ĠbÄĽhem": 108893, + "ĠPÅĻed": 108894, + "ãģĵãģĨ": 108895, + "ัà¸Ī": 108896, + "Ġï½Į": 108897, + "ĠÙĩاÙĬ": 108898, + "Ġsạch": 108899, + "æĸ¹éĿ¢": 108900, + "çķ°": 108901, + "ÑĥÑĢн": 108902, + "Ġvýsled": 108903, + "Ġthần": 108904, + "ï¼ĮæīĢ以": 108905, + "Ñĥка": 108906, + "íķĺëĭ¤": 108907, + "Ġबर": 108908, + "ĠжÑĸн": 108909, + "ÄįnÃŃho": 108910, + "ĠãģĮ": 108911, + "abı": 108912, + "vánÃŃ": 108913, + "æ´Ĺ": 108914, + "ĠиÑģÑĤоÑĢ": 108915, + "ìĿ´íĦ°": 108916, + "Ġелек": 108917, + "алаÑģÑı": 108918, + "Ġznám": 108919, + "ĠطرÙģ": 108920, + "Ġsektör": 108921, + "ê¹Ģ": 108922, + "ÙĪÙĤع": 108923, + "ĠÙħÙĥ": 108924, + "ÑĢежд": 108925, + "Ġknih": 108926, + "Ġتعداد": 108927, + "åįł": 108928, + "ÑģÑĮке": 108929, + "ĠçĶµ": 108930, + "京éĥ½": 108931, + "ĠراÛĮ": 108932, + "gın": 108933, + "ĠÙĨظاÙħ": 108934, + "ĠÎłÎ¿Î»": 108935, + "ä¸ĢèĪ¬": 108936, + "Ġstále": 108937, + "ĠиÑģÑģлед": 108938, + "Ġzpráv": 108939, + "ĠÑĩиÑģÑĤ": 108940, + "ãĥ¼ãĥŀ": 108941, + "ÐŀÑģ": 108942, + "ÑģÑĮкомÑĥ": 108943, + "ĠpÅĻiprav": 108944, + "ëĮĢíĸī": 108945, + "Ġhalk": 108946, + "çĪĨ": 108947, + "ãĢģãģĬ": 108948, + "ï¼ŁâĢĿĊĊ": 108949, + "éĢı": 108950, + "ç«ŀ": 108951, + "ниÑĨÑĮ": 108952, + "çĽĺ": 108953, + "à¹Ģà¸Ńà¸ĩ": 108954, + "ìŁģ": 108955, + "à¥ĩवल": 108956, + "ä¹ĭåIJİ": 108957, + "ãĥ«ãĥĪ": 108958, + "Ġstru": 108959, + "Ġ_": 108960, + "ÎķÎĽ": 108961, + "hle": 108962, + "ĠÙĨÙĪØ´": 108963, + "ìĿµ": 108964, + "ĠÙħÙģ": 108965, + "æĪĸèĢħ": 108966, + "Ġöld": 108967, + "éĢĶ": 108968, + "ãĥ³ãĥĹ": 108969, + "íĺ¼": 108970, + "ĠuÄŁ": 108971, + "ĠÄijá": 108972, + "ĠvlastnÃŃ": 108973, + "ĠÙħجÙĦس": 108974, + "åįĶ": 108975, + "ÏĦικήÏĤ": 108976, + "Ġpovin": 108977, + "ůl": 108978, + "ĠاÙĦØŃÙĬ": 108979, + "Ġsmlou": 108980, + "ãĥĥãĥģ": 108981, + "ĠÙĥÙĨ": 108982, + "Ġchấp": 108983, + "èIJ¬": 108984, + "جب": 108985, + "?âĢľ": 108986, + "дав": 108987, + "รวม": 108988, + "Ùİد": 108989, + "ĠاÙĦدÙĪÙĦ": 108990, + "ĠëĦ¤ìĿ´íĬ¸": 108991, + "Ġà¤Ĩस": 108992, + "ظÙĬÙģ": 108993, + "ãĥ¼ãĥ©": 108994, + "ãģłãĤįãģĨ": 108995, + "ĠÙĪاØŃد": 108996, + "رÙĪس": 108997, + "Ġzákona": 108998, + "ĠпеÑĢеб": 108999, + "à¥Ģ-": 109000, + "à¹Īà¹Ħà¸Ķ": 109001, + "为äºĨ": 109002, + "ÎĻÎĿ": 109003, + "ĠìĽĶìĦ¸": 109004, + "สà¸Ńà¸ĩ": 109005, + "Ġæīĭ": 109006, + "ĠÐĴÑģе": 109007, + "à¹Ĥย": 109008, + "Ġkaldır": 109009, + "ÏĦÎŃÏĤ": 109010, + "Ġï¿£": 109011, + "ĠíĸĪëĭ¤": 109012, + "ãĤģãģŁ": 109013, + "ĠÄįer": 109014, + "cela": 109015, + "üsü": 109016, + "ê³³": 109017, + "ìĹIJëıĦ": 109018, + "زة": 109019, + "ãģªãĤĭ": 109020, + "ÙĪÛĮÙĨ": 109021, + "çīĽ": 109022, + "Ġvoj": 109023, + "ĠëĬIJ": 109024, + "ĠÙĥÙħ": 109025, + "æ³ī": 109026, + "зÑı": 109027, + "è£Ŀ": 109028, + "ĠØ¢ÙĦ": 109029, + "Ġανά": 109030, + "ÂłÐĴ": 109031, + "Ġyapıl": 109032, + "æıĽ": 109033, + "ĠÑģÑĥÑīеÑģÑĤв": 109034, + "Ġná»iji": 109035, + "ÙĪئ": 109036, + "ĠëĦ¤ìĿ´íĬ¸ìĺ¨": 109037, + "Ġpolitik": 109038, + "Å¡ka": 109039, + "ebilirsiniz": 109040, + "ldkf": 109041, + "ÑĥблÑĸ": 109042, + "Ġeoq": 109043, + "ĠÙħØŃصÙĪÙĦ": 109044, + "krvldkf": 109045, + "Ġeoqkrvldkf": 109046, + "ÏĥεÏīν": 109047, + "بÙĦغ": 109048, + "Įĵê¸Ģ": 109049, + "ĠÑģÑĢок": 109050, + "ĠUy": 109051, + "ĠNÄĽk": 109052, + "Ġдив": 109053, + "ãĤµãĤ¤": 109054, + "ĠìĤ¬ìĿ´": 109055, + "ĠéĹ": 109056, + "ĠбаÑĤÑĮ": 109057, + "ĠпеÑĢÑĸ": 109058, + "Âĸ": 109059, + "交éĢļ": 109060, + "енз": 109061, + "ÙĪست": 109062, + "ียà¸ļ": 109063, + "Ġà¸Īะ": 109064, + "ë¡Ģ": 109065, + "üfus": 109066, + "ÙijÙIJ": 109067, + "總": 109068, + "ัà¸Ķส": 109069, + "ê²Ģ": 109070, + "ĠÑĤиÑħ": 109071, + "ĠآزÙħ": 109072, + "Ġاض": 109073, + "ì¡´": 109074, + "ÙĴت": 109075, + "æĪ¸": 109076, + "ĠìŀĪìĿĦ": 109077, + "ĠçĶ·": 109078, + "ÑīÑĸ": 109079, + "ома": 109080, + "ĠاÙģزاÛĮØ´": 109081, + "ĠThông": 109082, + "ĠاجتÙħاعÛĮ": 109083, + "елÑİ": 109084, + "ĠÑħоÑĢоÑĪо": 109085, + "à¸łà¸²à¸©": 109086, + "Ġrám": 109087, + "御": 109088, + "ãĥ¼ãĥĦ": 109089, + "ĠLỼp": 109090, + "ĠØ´ÙĬ": 109091, + "Ġhiá»ĥm": 109092, + "θν": 109093, + "οÏħÏĥ": 109094, + "復": 109095, + "Ġúzem": 109096, + "à¹ģà¸ľ": 109097, + "å·¨": 109098, + "à¸Īà¸Ļ": 109099, + "گراÙĨ": 109100, + "ĠتÛĮÙħ": 109101, + "Ġilet": 109102, + "าà¸Ĥà¸Ńà¸ĩ": 109103, + "ĠتÙĪر": 109104, + "ĠдоговоÑĢ": 109105, + "Ġtento": 109106, + "вÑĥ": 109107, + "Ġзада": 109108, + "ĠstoletÃŃ": 109109, + "ÂłĠ": 109110, + "âĢĮاÙĦ": 109111, + "Ëĺ": 109112, + "ÅŁiv": 109113, + "нÑıÑĤи": 109114, + "ãĤīãĤĮãģŁ": 109115, + "ĠSb": 109116, + "ĠاÙĦÙħص": 109117, + "ĠУкÑĢаÑĹнÑĸ": 109118, + "ĠØ´Ú©": 109119, + "iếng": 109120, + "ÑĮÑĤе": 109121, + "è°¢": 109122, + "ĠÙħتÙĨ": 109123, + "ĠÑĢад": 109124, + "ĠÙħÙĪاد": 109125, + "ì±Ħ": 109126, + "顶": 109127, + "ĠboÅŁ": 109128, + "تÙĪر": 109129, + "ĠÄijáng": 109130, + "Ġkitap": 109131, + "Ġhodin": 109132, + "Ġtarihi": 109133, + "ãĤĦãĤĭ": 109134, + "ÑģÑĤеÑĢ": 109135, + "ĠÑħод": 109136, + "вание": 109137, + "ĠоÑģвÑĸ": 109138, + "ĠÑģиÑģÑĤемÑĭ": 109139, + "़न": 109140, + "Ïĩο": 109141, + "Ġåı°": 109142, + "oÅĻ": 109143, + "ç»ıæµİ": 109144, + "Ġä½ľ": 109145, + "ĠthuáºŃn": 109146, + "ĽĪ": 109147, + "Ġyalnız": 109148, + "alet": 109149, + "ì¦Ŀê¸Ī": 109150, + "ĠзаÑī": 109151, + "ĠекÑģп": 109152, + "âĦĸâĦĸ": 109153, + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ": 109154, + "ĠÚ¯ÙĪØ´": 109155, + "ãģ«åħ¥": 109156, + "ĠudÄĽl": 109157, + "Ġáº": 109158, + "à¤Ĩà¤Ī": 109159, + "âĢĮدÙĩ": 109160, + "æĤª": 109161, + "Ġtrò": 109162, + "æļĹ": 109163, + "λλην": 109164, + "ĠпÑĢизна": 109165, + "ĠسÛĮستÙħ": 109166, + "Ġà¤ħत": 109167, + "èo": 109168, + "è¿İ": 109169, + "ĠзÑĥб": 109170, + "ĠзаÑģоб": 109171, + "ĠسÙģ": 109172, + "ĠÙħاÙĨÙĨد": 109173, + "خش": 109174, + "vajÃŃ": 109175, + "nitÅĻ": 109176, + "æ¯Ĵ": 109177, + "æ¤į": 109178, + "ĠgiriÅŁ": 109179, + "ĠÄijáp": 109180, + "@n": 109181, + "оваÑĢи": 109182, + "Ġخدا": 109183, + "ĠvÄĽtÅ¡": 109184, + "ĠΣÏħ": 109185, + "ÙģØ©": 109186, + "аннÑıм": 109187, + "ĠÑĩлен": 109188, + "æĶ¯æĮģ": 109189, + "å¨ľ": 109190, + "lararası": 109191, + "ΡÎij": 109192, + "Ġziy": 109193, + "ĠêµIJìľ¡": 109194, + "Ġhá»ĵi": 109195, + "าà¸Ħาร": 109196, + "imleri": 109197, + "è³¼": 109198, + "ĠجÙĩاÙĨ": 109199, + "ĠÑĢозмÑĸ": 109200, + "ÑħÑĸв": 109201, + "γε": 109202, + "横": 109203, + "ÎĻÎijΣ": 109204, + "ç¶Ń": 109205, + "Ġbiraz": 109206, + "ĠÑĤакого": 109207, + "íĥĦ": 109208, + "ĠбÑĥдÑĥÑĤ": 109209, + "ĠÑĪвид": 109210, + "ĠнеÑģ": 109211, + "ĠÙħعÙĦÙĪÙħات": 109212, + "à¥ĩयर": 109213, + "ĠдвÑĥÑħ": 109214, + "å¿ħè¦ģ": 109215, + "å§Ĩ": 109216, + "Ġpohled": 109217, + "ìĬ¤íĦ°": 109218, + "Ġåįģ": 109219, + "Ġأب": 109220, + "веÑĢдж": 109221, + "Ġà¤ľà¤®": 109222, + "लत": 109223, + "åľ°åĮº": 109224, + "Ġ|[": 109225, + "ĠвмеÑģÑĤ": 109226, + "ĠکاÙħ": 109227, + "ĠãĥIJ": 109228, + "ãĥ¼ãĥĸ": 109229, + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 109230, + "ĠìĥģíĴĪ": 109231, + "à¹Ģลย": 109232, + "Äįné": 109233, + "ĠÑģÑĢедÑģÑĤва": 109234, + "ĠÑĤаб": 109235, + "ĠÙħار": 109236, + "Ġhled": 109237, + "даÑĤ": 109238, + "ÙĪÛĮد": 109239, + "Ġãĥ©": 109240, + "Ġخد": 109241, + "è¤ĩ": 109242, + "ç§ĺ": 109243, + "Ġبرد": 109244, + "ĠÏĥαÏĤ": 109245, + "ÏİÏĥειÏĤ": 109246, + "æĿ¯": 109247, + "λÏį": 109248, + "宿": 109249, + "ĠëĤľ": 109250, + "ï»Ł": 109251, + "Ġözellikle": 109252, + "ĠконÑģ": 109253, + "ĠÙħغ": 109254, + "عÙĬ": 109255, + "à¹Įà¸ģ": 109256, + "ĠÙĬت": 109257, + "ĠÙħشاÙĩ": 109258, + "ĠThanh": 109259, + "à¤¾à¤ľà¤¨": 109260, + "¥¤": 109261, + "Ġvlá": 109262, + "ĠÙģض": 109263, + "ΤÎĻÎļ": 109264, + "ĠнаÑĥков": 109265, + "елем": 109266, + "ĠdÃłng": 109267, + "ĠгоÑģподаÑĢ": 109268, + "ÂłS": 109269, + "иÑĩеÑģкиÑħ": 109270, + "ĠتÙĨÙĩا": 109271, + "à¤ľà¤¨": 109272, + "Ġпан": 109273, + "åĨł": 109274, + "ĠëĤĺëĬĶ": 109275, + "tÃŃ": 109276, + "ä¸Ģèµ·": 109277, + "Ġlãnh": 109278, + "Âłv": 109279, + "ovým": 109280, + "زب": 109281, + "ĠجÙħعÛĮت": 109282, + "Ġæµ·": 109283, + "ĠоÑģÑĥÑīеÑģÑĤв": 109284, + "ãi": 109285, + "ائر": 109286, + "Ġë³ij": 109287, + "á»ĭnh": 109288, + "Ġsá»Ńa": 109289, + "à¥ĩà¤Ĥ।": 109290, + "ÄĽjÅ¡ÃŃ": 109291, + "ĠдÑĸÑĤ": 109292, + "Ġæĥ": 109293, + "mÄ±ÅŁtı": 109294, + "رØŃ": 109295, + "Ġì§Ģê¸Ī": 109296, + "妻": 109297, + "âĹĭ": 109298, + "Ġì§ĢìĹŃ": 109299, + "ÙĴÙĨ": 109300, + "ĠurÄįit": 109301, + "ÙĴÙħ": 109302, + "zÃŃ": 109303, + "èķ": 109304, + "ĠØ´ÙĪر": 109305, + "ĠKhông": 109306, + "ÛĮزÛĮ": 109307, + "Ġзг": 109308, + "Ġвне": 109309, + "ĠprávÄĽ": 109310, + "è«ĭ": 109311, + "اÙĬت": 109312, + "ัà¸ģร": 109313, + "Ġoldukça": 109314, + "ãĤģãĤĭ": 109315, + "ĠTây": 109316, + "ëĿ¼ìĿ¸": 109317, + "èĻķ": 109318, + "ĠsÆ°": 109319, + "Ġник": 109320, + "Ùł": 109321, + "اشÛĮÙĨ": 109322, + "elerde": 109323, + "ìĭľìķĦ": 109324, + "ĠÑĥмов": 109325, + "ĠçalÄ±ÅŁan": 109326, + "Ġë¸Ķ": 109327, + "ĠÑĤаким": 109328, + "ÑĢин": 109329, + "ĠØ®ÙĦ": 109330, + "ayd": 109331, + "Ġãĥ¡": 109332, + "ейÑĩаÑģ": 109333, + "Ġdoprav": 109334, + "ãģĵãģ¨ãģ¯": 109335, + "Ġì¶Ķì²ľ": 109336, + "延": 109337, + "Ġkı": 109338, + "åı¶": 109339, + "ÑĢиг": 109340, + "íħľ": 109341, + "çĶ³åįļ": 109342, + "ĠвеÑĤ": 109343, + "ĠпомоÑīÑĮÑİ": 109344, + "ĠاÙģراد": 109345, + "ÏĢει": 109346, + "à¹Ģสร": 109347, + "Ġgiám": 109348, + "éİ": 109349, + "hlas": 109350, + "manız": 109351, + "англ": 109352, + "Ġmuž": 109353, + "ÂłK": 109354, + "ÑĢедиÑĤ": 109355, + "设å¤ĩ": 109356, + "ιÏĥμ": 109357, + "Ġcải": 109358, + "ĠéĢļ": 109359, + "ĠÙĥار": 109360, + "Ġподоб": 109361, + "ĠмеÑĤал": 109362, + "ĠÑģаме": 109363, + "лÑĥÑĩ": 109364, + "åĤ³": 109365, + "ĠÙĪÙĩÙĪ": 109366, + "Ġéĩį": 109367, + "вий": 109368, + "æ³ģ": 109369, + "ĠæĿİ": 109370, + "ĠiliÅŁkin": 109371, + "ĠείÏĩε": 109372, + "çĬ¯": 109373, + "ÅĻejmÄĽ": 109374, + "èŃĺ": 109375, + "稱": 109376, + "μμα": 109377, + "ĠÙĦÛĮ": 109378, + "ÙĩاÙĬ": 109379, + "ĠопиÑģ": 109380, + "گرد": 109381, + "ĠгÑĢ": 109382, + "ĠAnimalia": 109383, + "ÐŁÐ¾": 109384, + "Ġbóng": 109385, + "ĠдеÑĤей": 109386, + "Ġlâu": 109387, + "ĠæķĻ": 109388, + "ĠпоÑıÑģ": 109389, + "ĠاÙĦØ¢": 109390, + "ัà¸Ļà¸ķ": 109391, + "Ġдев": 109392, + "ĠÑĨей": 109393, + "ÑĮв": 109394, + "æĥł": 109395, + "maları": 109396, + "imler": 109397, + "à¥Ī।ĊĊ": 109398, + "Ġном": 109399, + "zv": 109400, + "Ġà¸ģร": 109401, + "ĠpaylaÅŁ": 109402, + "Âłs": 109403, + "िसम": 109404, + "ÑģÑĤвеннÑĭÑħ": 109405, + "stoup": 109406, + "онÑĸ": 109407, + "stÃŃ": 109408, + "ĠØŃÚ©": 109409, + "ĠگرÙģت": 109410, + "าà¸Ħา": 109411, + "дÑı": 109412, + "ÙĦاث": 109413, + "Ġzdravot": 109414, + "ä¸ĬãģĴ": 109415, + "ãģ¼": 109416, + "elere": 109417, + "ظÙħ": 109418, + "ĠÑģвеÑĤ": 109419, + "оÑĢг": 109420, + "ç«¥": 109421, + "ĠпеÑĢеп": 109422, + "Ġमद": 109423, + "аза": 109424, + "å¦Ĥä½ķ": 109425, + "ÑģÑĮкÑĸй": 109426, + "ĠbÆ°á»Ľc": 109427, + "Ġgerekli": 109428, + "大家": 109429, + "Ġtrái": 109430, + "éģ©": 109431, + "ä¸Ń央": 109432, + "Ġphản": 109433, + "Ġعرض": 109434, + "ĠÙĥتاب": 109435, + "æĭ©": 109436, + "ÑĪего": 109437, + "帮": 109438, + "ĠÙĨÛĮاز": 109439, + "è¿·": 109440, + "à¸¸à¸Ľ": 109441, + "à¸´à¸Ľ": 109442, + "Ġدخ": 109443, + "ÏĦικÎŃÏĤ": 109444, + "ĠUz": 109445, + "ĠتÙĪÙħاÙĨ": 109446, + "ĠÙĪاÙĦØ£": 109447, + "ÅĻes": 109448, + "Ñijм": 109449, + "Ġå¸Ĥ": 109450, + "ĠÑĤоже": 109451, + "Ġyapan": 109452, + "彼女": 109453, + "ĠÙħدر": 109454, + "¶ģ": 109455, + "ĠæŶ": 109456, + "à¹Ģà¸ĺ": 109457, + "ĠÙħاÙĦ": 109458, + "ĠBüyük": 109459, + "ĠÙĦت": 109460, + "å°ļ": 109461, + "deme": 109462, + "üb": 109463, + "ĠÑħÑĥд": 109464, + "Ġléka": 109465, + "缼": 109466, + "缴æİ¥": 109467, + "ниÑĨÑĤва": 109468, + "ĠпÑĢиÑĩин": 109469, + "еÑĢап": 109470, + "ĠÑģозда": 109471, + "械": 109472, + "Ġmüz": 109473, + "ç³»åĪĹ": 109474, + "ouz": 109475, + "Ġà¤ĵर": 109476, + "ÑĢÑĥÑĩ": 109477, + "Ġá½": 109478, + "μÎŃνα": 109479, + "ĠпÑĢедмеÑĤ": 109480, + "Ġå²": 109481, + "ãĥ³ãĥģ": 109482, + "μÎŃνη": 109483, + "лÑĥг": 109484, + "Âłn": 109485, + "ĠTarih": 109486, + "ĠãĢĪ": 109487, + "Ġbana": 109488, + "ĠcÃŃ": 109489, + "Ġvýkon": 109490, + "åĽłæѤ": 109491, + "ĠtÅĻi": 109492, + "าà¸ĭ": 109493, + "vailable": 109494, + "Ġistem": 109495, + "ãĥ¥ãĥ¼": 109496, + "ÐķÐĿ": 109497, + "ĠгаÑĢ": 109498, + "οÏħλ": 109499, + "à¥Ľ": 109500, + "ĠÙĪضع": 109501, + "สะ": 109502, + "è·Ŀ": 109503, + "ĠØŃÙģ": 109504, + "ิà¸Ĺยาล": 109505, + "她çļĦ": 109506, + "нÑĸÑĪ": 109507, + "жение": 109508, + "기ìĹIJ": 109509, + "Ġéĺ¿": 109510, + "ĠÙħارس": 109511, + "ĠçeÅŁitli": 109512, + "ĠÅŁehir": 109513, + "átor": 109514, + "à¹īà¸Ĺ": 109515, + "ìĿ´ëĬĶ": 109516, + "Ġè²": 109517, + "é¡į": 109518, + "çĻĤ": 109519, + "ĠниÑĩ": 109520, + "Ġê°Ģì§Ģ": 109521, + "伦": 109522, + "rán": 109523, + "ostat": 109524, + "ĠÙĦÙĥ": 109525, + "èº": 109526, + "ĠNgÃłnh": 109527, + "Ġसद": 109528, + "æľĹ": 109529, + "çĦ¶åIJİ": 109530, + "ãĤ¸ãĤ§": 109531, + "леÑĢ": 109532, + "ĠÐŀна": 109533, + "سÙĪÙĨ": 109534, + "Ïģον": 109535, + "ĠدرÛĮاÙģت": 109536, + "à¸Ńà¸Ńà¸Ļà¹Ħลà¸Ļ": 109537, + "Ġdál": 109538, + "ĠмÑĸÑģÑĨе": 109539, + "Ġдней": 109540, + "ĠاÙĦات": 109541, + "Ġरहत": 109542, + "ï¼Į对": 109543, + "è³ĩæĸĻ": 109544, + "ä»»ä½ķ": 109545, + "éĦ": 109546, + "taj": 109547, + "βά": 109548, + "Ġнадо": 109549, + "ĠÑģÑĤÑĥд": 109550, + "ĠÅŁeh": 109551, + "ัà¸įà¸į": 109552, + "à¥ĭब": 109553, + "ãĥ©ãĥ¼": 109554, + "Û±Ûµ": 109555, + "ept": 109556, + "Ġbildir": 109557, + "สà¸ĸาà¸Ļ": 109558, + "еÑĤÑĮÑģÑı": 109559, + "ským": 109560, + "ĠоблаÑģÑĤÑĮ": 109561, + "Ġìŀł": 109562, + "ĠGör": 109563, + "Ġdayan": 109564, + "ĠÛĮاد": 109565, + "çĶŁäº§": 109566, + "íĺij": 109567, + "å¾ģ": 109568, + "Ġاجر": 109569, + "ĠпÑĢе": 109570, + "ä¸īä¸īä¸īä¸ī": 109571, + "åŁİå¸Ĥ": 109572, + "ĠпÑĢимеÑĢ": 109573, + "Äįást": 109574, + "èģĺ": 109575, + "ĠÙħربÙĪØ·": 109576, + "æŀļ": 109577, + "åĪĢ": 109578, + "æŁ¥çľĭ": 109579, + "Ġ모ëijIJ": 109580, + "ìŀIJë£Į": 109581, + "-、": 109582, + "Ġê°ĻìĿ´": 109583, + "Ġì¡´": 109584, + "егоÑĢ": 109585, + "edik": 109586, + "имÑĥ": 109587, + "ĠArth": 109588, + "åºĶçĶ¨": 109589, + "miÅŁti": 109590, + "Ġkhá»ıe": 109591, + "ĠÑĸд": 109592, + "λλη": 109593, + "âh": 109594, + "маг": 109595, + "éļĨ": 109596, + "ĠвнÑĥÑĤÑĢ": 109597, + "Ġبط": 109598, + "(æĹ¥": 109599, + "Ä°Y": 109600, + "лик": 109601, + "ĠBản": 109602, + "ĠتÙĪس": 109603, + "़त": 109604, + "amak": 109605, + "åķıé¡Į": 109606, + "ĠÑģамоÑģÑĤ": 109607, + "ï¼¼Ċ": 109608, + "Ġç¦ı": 109609, + "Ù¡": 109610, + "ĠÑĦоÑĢми": 109611, + "ĠÑĢозÑĥм": 109612, + "ĠÙħطاÙĦ": 109613, + "ä¹Łæĺ¯": 109614, + "ç¾İåĽ½": 109615, + "ëĵľë¦½ëĭĪëĭ¤": 109616, + "ĠlÄ©nh": 109617, + "ĠпоÑĤомÑĥ": 109618, + "ÑıбÑĢÑı": 109619, + "漫": 109620, + "Ġngoại": 109621, + "à¸Ńำ": 109622, + "ÙĬÙĨا": 109623, + "Ġmlad": 109624, + "ÏĥÏĦά": 109625, + "اتر": 109626, + "주ìĿĺ": 109627, + "еннÑĸ": 109628, + "оза": 109629, + "ÙĤات": 109630, + "ĠÐĴаÑģ": 109631, + "è®Ń": 109632, + "éIJ": 109633, + "ÑĥÑİÑĩи": 109634, + "Ġکر": 109635, + "Ġ.|": 109636, + "Ġgenç": 109637, + "該": 109638, + "ä»ģ": 109639, + "одÑĭ": 109640, + "ĠØ£ÙĪÙĦ": 109641, + "ĠìĤ¬íļĮ": 109642, + "Ġà¹Ģส": 109643, + "ĠëķĮ문ìĹIJ": 109644, + "âĢĮب": 109645, + "ĠлиÑĪÑĮ": 109646, + "Ġименно": 109647, + "madı": 109648, + "ĠéĤ": 109649, + "ĠÙĪارد": 109650, + "Ġtakım": 109651, + "Ġà¹Ģห": 109652, + "Ġà¸Ńย": 109653, + "Ġkonusu": 109654, + "Ø®ÙĪ": 109655, + "ĠÑģид": 109656, + "赤": 109657, + "оÑıÑĤелÑĮ": 109658, + "ëĭµ": 109659, + "εÏī": 109660, + "ÑĸÑħ": 109661, + "Ġयद": 109662, + "ĠÚ©ÛĮÙģ": 109663, + "μοÏĤ": 109664, + "Ġaldı": 109665, + "ĠíĻį": 109666, + "кÑĥп": 109667, + "ĠÙĨÙħاÛĮØ´": 109668, + "ãģ¥": 109669, + "Ġíķ©ëĭĪëĭ¤": 109670, + "ĠëĮĵê¸Ģ": 109671, + "боÑĢа": 109672, + "éīĦ": 109673, + "Ġà¹Ģà¸Ī": 109674, + "à¹īà¸ģ": 109675, + "§ط": 109676, + "ربÙĩ": 109677, + "ĠÑĥз": 109678, + "ĠмаÑİÑĤÑĮ": 109679, + "Ġbyli": 109680, + "ีà¸ķ": 109681, + "Ġì§ĢìĽIJ": 109682, + "èĩªçĦ¶": 109683, + "ùy": 109684, + "ĠçaÄŁ": 109685, + "един": 109686, + "ëī´": 109687, + "åį±": 109688, + "ĠпозволÑı": 109689, + "ØŃاد": 109690, + "ĠÑĩего": 109691, + "ียร": 109692, + "Ġyöntem": 109693, + "Ġders": 109694, + "ĠÑģÑĤоÑı": 109695, + "ĠкÑĢÑĥп": 109696, + "Ġð": 109697, + "ĠдомаÑĪ": 109698, + "енд": 109699, + "继": 109700, + "ĠÄijô": 109701, + "ĠchtÄĽ": 109702, + "计åĪĴ": 109703, + "ÎŃα": 109704, + "ĠdobÅĻe": 109705, + "สà¸Ńà¸ļ": 109706, + "еление": 109707, + "ĠÄijông": 109708, + "ãģ¾ãĤĬ": 109709, + "Ġboyunca": 109710, + "à¥ģà¤Ĺ": 109711, + "ĠÑĦиз": 109712, + "ãĤ³ãĥ³": 109713, + "Ġdeney": 109714, + "ÑĩеÑģкиÑħ": 109715, + "λον": 109716, + "以åıĬ": 109717, + "اÙĪت": 109718, + "³³³³³": 109719, + "Ġì¤Ħ": 109720, + "िफ": 109721, + "ĠÑĤол": 109722, + "ĠëĤ´ê°Ģ": 109723, + "âĸı": 109724, + "Ġphá": 109725, + "ĠÑģпÑĸв": 109726, + "ĠجÙħÙĬع": 109727, + "ĠbezpeÄį": 109728, + "ĠæĹł": 109729, + "ĠvÅ¡e": 109730, + "ÑģÑĤвÑĥ": 109731, + "dust": 109732, + "oÅ¡": 109733, + "ĠتارÙĬØ®": 109734, + "اØŃØ©": 109735, + "ĠÙħشارÙĥØ©": 109736, + "Ġακ": 109737, + "ัà¸Ļà¸Ļ": 109738, + "éģĬ": 109739, + "ĠÑģоÑĤ": 109740, + "Ġказ": 109741, + "ĠÑĤеÑĩение": 109742, + "긴": 109743, + "acaktır": 109744, + "ê±°ëĤĺ": 109745, + "ียม": 109746, + "ĠÑģÑĥÑħ": 109747, + "ĠëĦĪ무": 109748, + "ãģıãĤĭ": 109749, + "ĠкоÑĤоÑĢой": 109750, + "اÙĤØ©": 109751, + "yıl": 109752, + "ãĤ»ãĥĥãĥĪ": 109753, + "ĠÑįлем": 109754, + "æģIJ": 109755, + "ÙĨاء": 109756, + "åħ©": 109757, + "ĠteÄı": 109758, + "严": 109759, + "Ġì§Ī문": 109760, + "Ġ为": 109761, + "ìĭľíĹĺ": 109762, + "ĠпÑĢок": 109763, + "ujeme": 109764, + "ücü": 109765, + "ĠاÙĦÙħغ": 109766, + "ĠØŃساب": 109767, + "ãģĹãģ¦ãģĦ": 109768, + "кова": 109769, + "ĠÄijÃło": 109770, + "ĠпÑĢиз": 109771, + "ĠÙĪÙħÙĨ": 109772, + "ĠоÑĢ": 109773, + "à¸ģà¸ķ": 109774, + "аÑĦ": 109775, + "Ġà¸ŀร": 109776, + "ÑĨией": 109777, + "æª": 109778, + "Ġpůsob": 109779, + "åŃ©åŃIJ": 109780, + "Ġbánh": 109781, + "ĠÑĦоÑĢмÑĥ": 109782, + "Ġá»ķ": 109783, + "Ġменее": 109784, + "à¹īาห": 109785, + "ниÑĨа": 109786, + "ีĊ": 109787, + "ĠволоÑģ": 109788, + "ĠارائÙĩ": 109789, + "第ä¸ī": 109790, + "ëIJĺìĹĪ": 109791, + "Ġkısm": 109792, + "ãĥ¼ãĥĬ": 109793, + "lerimiz": 109794, + "ÙĨÙĬÙĨ": 109795, + "ĠNgÆ°á»Ŀi": 109796, + "ĠоÑĤдел": 109797, + "çļĦæŶåĢĻ": 109798, + "онов": 109799, + "Äįan": 109800, + "izm": 109801, + "ĠÑģобой": 109802, + "à¹ĩà¸ķ": 109803, + "ĠÑģлÑĸд": 109804, + "Ġà¤ľà¤¹": 109805, + "ï¼ĮæĪij们": 109806, + "ãĢĤãģĿãģ®": 109807, + "ÏĢÏīÏĤ": 109808, + "çĨŁ": 109809, + "ฯ": 109810, + "ëĦIJ": 109811, + "æľĭ": 109812, + "Ġë¹Ħë°Ģ": 109813, + "ëįķ": 109814, + "ĠmÃłn": 109815, + "ìĿ´ê³ł": 109816, + "ëŀľëĵľ": 109817, + "éĤĦ": 109818, + "Ä±ÅŁÄ±k": 109819, + "Ġ个": 109820, + "Ġnád": 109821, + "бÑĢа": 109822, + "æĮĩå®ļ": 109823, + "larıyla": 109824, + "ĠÐŀни": 109825, + "Ġhra": 109826, + "ĠÑĢеÑĨеп": 109827, + "ĠÐłÐ¾ÑģÑģий": 109828, + "å½±åĵį": 109829, + "ĠKdyž": 109830, + "ĠÃ¶ÄŁrenc": 109831, + "åīµ": 109832, + "Ġjist": 109833, + "èĪĪ": 109834, + "触": 109835, + "åıijçİ°": 109836, + "มาย": 109837, + "erken": 109838, + "ĠздеÑģÑĮ": 109839, + "ĠÙħسئ": 109840, + "@nate": 109841, + "ĠëĤ´ìļ©": 109842, + "ĠnabÃŃd": 109843, + "ÛĢ": 109844, + "ĠмоменÑĤ": 109845, + "ãģłãģĮ": 109846, + "ίδα": 109847, + "Tak": 109848, + "Ġë³´ê³ł": 109849, + ":::::::::": 109850, + "ÄŁmen": 109851, + "ĠпомеÑī": 109852, + "ãģ«ãģ¤ãģĦãģ¦": 109853, + "ĠÙģÙĪÙĤ": 109854, + "ĠعضÙĪ": 109855, + "ĠÙħÛĮاÙĨ": 109856, + "Ġmüc": 109857, + "ĠпÑĢоÑıв": 109858, + "ÑĩеÑģки": 109859, + "ãģłãģĭãĤī": 109860, + "éĤ¦": 109861, + "Ġë¶ĦìĦĿ": 109862, + "飩": 109863, + "į¨": 109864, + "ĠDaha": 109865, + "ĠκÏĮ": 109866, + "ĠнаÑĩина": 109867, + "ĠÐŁÐ¾ÑĤ": 109868, + "ÏĥκεÏħ": 109869, + "ĠÑĢан": 109870, + "ÙĪÙĬس": 109871, + "::::::::::": 109872, + "Û±Û¹Û¹": 109873, + "Ġardından": 109874, + "à¹Ĥà¸Ķ": 109875, + "اراÙĨ": 109876, + "داد": 109877, + "Ġquý": 109878, + "ĠØ£Ùĥثر": 109879, + "âĹĨ": 109880, + "ĠأخرÙī": 109881, + "Ġë§ĪìĿĮ": 109882, + "릴": 109883, + "ĠعÙĦÙĪÙħ": 109884, + "ĠeÄŁ": 109885, + "воÑĢÑİ": 109886, + "ĠãĥĹ": 109887, + "ÑĥÑĩаÑģ": 109888, + "Ġبأ": 109889, + "ÏĨο": 109890, + "никами": 109891, + "à¹ĥà¸ķ": 109892, + "ÄįetnÄĽ": 109893, + "à¸ļาà¸ĩ": 109894, + "çīĻ": 109895, + "ãĥªãĤ«": 109896, + "íĴ": 109897, + "åĩºçīĪ": 109898, + "γι": 109899, + "ãĢĤãģĿãĤĮ": 109900, + "Ġyani": 109901, + "lech": 109902, + "ĠLuáºŃt": 109903, + "çļĦãģª": 109904, + "Ġnedeniyle": 109905, + "dej": 109906, + "ĠÑģовеÑĢÑĪ": 109907, + "Ġphá»ķ": 109908, + "ısından": 109909, + "Ġchắc": 109910, + "deÅŁ": 109911, + "Ġкоман": 109912, + "æĽ¿": 109913, + "Ġplán": 109914, + "Ġdữ": 109915, + "ĠêµŃê°Ģ": 109916, + "Ġtakip": 109917, + "Ġthủy": 109918, + "ÑģлÑĸд": 109919, + "âī§": 109920, + "ĠIIC": 109921, + "θÏħ": 109922, + "ávat": 109923, + "ĠÑģок": 109924, + "ĠбагаÑĤо": 109925, + ";:;:;:;:": 109926, + "ÏģιοÏĤ": 109927, + "ilmiÅŁtir": 109928, + "Ġznam": 109929, + "ĠΤα": 109930, + "amaz": 109931, + "à¹ģà¸ŀ": 109932, + "ãĥģãĥ£": 109933, + "Ġkullanı": 109934, + "æĶ¾éĢģ": 109935, + "дн": 109936, + "ĠÙĪاب": 109937, + "Ġtrắng": 109938, + "ÑģÑıг": 109939, + "Ġارتباط": 109940, + "ĠвÑħод": 109941, + "å·ŀå¸Ĥ": 109942, + "Ġसत": 109943, + "ÑĩаеÑĤÑģÑı": 109944, + "íĮĮíĬ¸": 109945, + "ĠNhững": 109946, + "ä¸įåı¯": 109947, + "å±Ĭ": 109948, + "ĠãĤŃ": 109949, + "ارÙĩاÛĮ": 109950, + "ĠarÅŁiv": 109951, + "ĠاÙĦÙī": 109952, + "ायà¤ķ": 109953, + "ãģĹãĤĩãģĨ": 109954, + "Ġulus": 109955, + "alaxy": 109956, + "기ê°Ģ": 109957, + "ãİ¡(": 109958, + "μάÏĦÏīν": 109959, + "èn": 109960, + "ùi": 109961, + "ĠнаÑģÑĤоÑı": 109962, + "ĠСв": 109963, + "ĠоÑģоби": 109964, + "ково": 109965, + "ĠÑĢебенка": 109966, + "ĠÑĤÑıж": 109967, + "Ġxuá»ijng": 109968, + "Ġê¶Į": 109969, + "огод": 109970, + "Ġấy": 109971, + "è²ł": 109972, + "วà¸Ļ": 109973, + "Ġstanov": 109974, + "Ġkrál": 109975, + "Ġà¤ĩसल": 109976, + "ebe": 109977, + "宾": 109978, + "ĠдоÑģÑĤаÑĤоÑĩно": 109979, + "IIIK": 109980, + "ÏĢά": 109981, + "Ġbirkaç": 109982, + "ĠاÙĦÙħÙĤ": 109983, + "ãĥ¶": 109984, + "ĠBaÅŁkanı": 109985, + "Ġ첨ë¶ĢíĮĮìĿ¼": 109986, + "Ġyarar": 109987, + "亡": 109988, + "ĠÏĢÏĮ": 109989, + "ÂłÑģ": 109990, + "δή": 109991, + "elerini": 109992, + "Ġsuç": 109993, + "Ġдома": 109994, + "ĠнаÑĢÑĥÑĪ": 109995, + "Ġί": 109996, + "Ġê·¸ìĿĺ": 109997, + "çĶµå½±": 109998, + "ابÙĩ": 109999, + "комÑĥ": 110000, + "Ġतब": 110001, + "à¥Īà¤ł": 110002, + "Ġ모ì§ij": 110003, + "Ġæ±Ł": 110004, + "Ġê²ĥìĿĢ": 110005, + "ονÏĦαι": 110006, + "ĠاÙĦرÙĬاض": 110007, + "許": 110008, + "Ġhalinde": 110009, + "ĠاشارÙĩ": 110010, + "ĠкÑĢÑĭ": 110011, + "лений": 110012, + "luÄŁ": 110013, + "Ġdobu": 110014, + "sik": 110015, + "à¥ģà¤Ł": 110016, + "ĠкÑĸн": 110017, + "ãģ¨ãģį": 110018, + "à¥Ĥस": 110019, + "æħ¢": 110020, + "ĠdÄ±ÅŁÄ±nda": 110021, + "ç·ı": 110022, + "ĠbÃŃ": 110023, + "ĠCLIIIK": 110024, + "ĠIICIII": 110025, + "Ġherk": 110026, + "ãĤıãģĽ": 110027, + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 110028, + "³³³³³³": 110029, + "اÙĦد": 110030, + "Ġdavran": 110031, + "Äįer": 110032, + "ĠØŁ": 110033, + "ãģĺãĤĥãģªãģĦ": 110034, + "Ġdair": 110035, + "Ġ": 110036, + "ัà¸ĩส": 110037, + "Ġëĭ´": 110038, + "å¾ŀ": 110039, + "ĠÑįÑĤиÑħ": 110040, + "诺": 110041, + "á»·": 110042, + "еÑĢиÑģÑĤи": 110043, + "овÑĭÑħ": 110044, + "Ġãĥĩ": 110045, + "ضÙĬ": 110046, + "Ġà¤īà¤ł": 110047, + "ĠnapÅĻÃŃklad": 110048, + "è´Ŀ": 110049, + "ĠÅ¡k": 110050, + "ĠبÙĪدÙĨد": 110051, + "vůli": 110052, + "éģĩ": 110053, + "Ġзнай": 110054, + "ĠTham": 110055, + "rani": 110056, + "اØŃت": 110057, + "Ø´Ùĩ": 110058, + "мÑĸнÑĸÑģÑĤÑĢа": 110059, + "à¹ĭ": 110060, + "ĠÎijνα": 110061, + "à¥ĭà¤ļ": 110062, + "ç»Ħç»ĩ": 110063, + "ÑģÑĤиÑĤ": 110064, + "imli": 110065, + "åIJįçĦ¡ãģĹãģķãĤĵ": 110066, + "ÙijØ©": 110067, + "θμ": 110068, + "олоÑĤ": 110069, + "ยà¸ĩ": 110070, + "ãĤīãĤĮãĤĭ": 110071, + "ĠлиÑĩ": 110072, + "овÑĭе": 110073, + "éĢĥ": 110074, + "Ġ广": 110075, + "ìĬ¬": 110076, + "ÙħÛĮÙĨ": 110077, + "ĠìłĦì²´": 110078, + "ĠÎŃÏĩ": 110079, + "Ġì±ħ": 110080, + "Ġhlas": 110081, + "екÑĤив": 110082, + "ĠÏĢλη": 110083, + "luÄŁu": 110084, + "好çļĦ": 110085, + "ĠÚĨÙĪÙĨ": 110086, + "ĠBeled": 110087, + "Ġengel": 110088, + "нÑıÑı": 110089, + "ĠyaÅŁan": 110090, + "ÑĩниÑħ": 110091, + "ارÙĬØ©": 110092, + "मत": 110093, + "ãĥĭãĥĭãĥĭãĥĭ": 110094, + "åĭ¢": 110095, + "ĠåĨħ": 110096, + "Ġíı¬íķ¨": 110097, + "ĠобÑģ": 110098, + "Ġthấp": 110099, + "Ġdây": 110100, + "ãĥĸãĥ©": 110101, + "аÑĤÑĭ": 110102, + "ĠÑģвоей": 110103, + "ãĤīãģªãģĦ": 110104, + "åıijçĶŁ": 110105, + "erece": 110106, + "Ġodbor": 110107, + "ĠвнеÑģ": 110108, + "ĠÄIJảng": 110109, + "ĠëıĮìķĦ": 110110, + "ÄĽli": 110111, + "ısında": 110112, + "Ġबदल": 110113, + "vnÃŃ": 110114, + "ãģ®ãģ«": 110115, + "ĠпоÑĤом": 110116, + "imde": 110117, + "alama": 110118, + "âĢª": 110119, + "ĠstejnÄĽ": 110120, + "еÑĢе": 110121, + "éĴ¢": 110122, + "æľºæŀĦ": 110123, + "Ġè³": 110124, + "åĶ±": 110125, + "Ġëħ¸ì¶ľ": 110126, + "Ġлибо": 110127, + "âĢĬ": 110128, + "Ġcez": 110129, + "romÄĽ": 110130, + "ίÏīν": 110131, + "ÏĨή": 110132, + "ĠíĻ©": 110133, + "Ġdlouh": 110134, + "骨": 110135, + "åħ¬éĩĮ": 110136, + "伸": 110137, + "Ġãĥij": 110138, + "ä»Ļ": 110139, + "Ġolmadı": 110140, + "елиÑĩ": 110141, + "ождениÑı": 110142, + "Ġsöyledi": 110143, + "átek": 110144, + "ìĥµ": 110145, + "ยวà¸ģ": 110146, + "Ġ鼻": 110147, + "Ġпев": 110148, + "ĠдÑĢÑĥгие": 110149, + "átku": 110150, + "ĠعÙĪ": 110151, + "ována": 110152, + "ضر": 110153, + "ĠëģĿ": 110154, + "ĠíĨµíķ´": 110155, + "Îĸ": 110156, + "Ġvur": 110157, + "åĨ²": 110158, + "ĠпÑĢек": 110159, + "Ġपà¤ķ": 110160, + "Ġà¹Ģà¸Ĺ": 110161, + "ãģ¨ãģĭ": 110162, + "عÙĨ": 110163, + "å®ĩ": 110164, + "ÏĦζ": 110165, + "Ġnằm": 110166, + "ĠÑģвоб": 110167, + "ĠδÏį": 110168, + "çĸĹ": 110169, + "-й": 110170, + "é¦Ļ港": 110171, + "تا": 110172, + "Ïĥιμο": 110173, + "íķĦ": 110174, + "Ġ详æĥħ": 110175, + "両": 110176, + "ÙİاÙĦ": 110177, + "ĠTrÆ°á»Ŀng": 110178, + "eného": 110179, + "ĠÑĢекомендÑĥ": 110180, + "ÛĮرÙĩ": 110181, + "าà¸ĸ": 110182, + "ĠکاÙħÙĦ": 110183, + "بط": 110184, + "زÛĮÙĨÙĩ": 110185, + "Ġдолжна": 110186, + "Ġë§İìĿĢ": 110187, + "âĹıâĹıâĹıâĹıâĹıâĹıâĹıâĹı": 110188, + "lepÅ¡ÃŃ": 110189, + "алог": 110190, + "ãĤªãĥ³": 110191, + "Ġë³Ħ": 110192, + "ırı": 110193, + "ĠجاÙħعÙĩ": 110194, + "æĽľ": 110195, + "ojÃŃ": 110196, + "ĠÑĪлÑıÑħ": 110197, + "Ġhızlı": 110198, + "ĠخصÙĪص": 110199, + "ÐIJÑĢ": 110200, + "åľĺ": 110201, + "ĠживоÑĤ": 110202, + "é±": 110203, + "Ġngữ": 110204, + "Ġvòng": 110205, + "èİ«": 110206, + "ĠзаÑħод": 110207, + "ìĻĦ": 110208, + "ĠÑģледÑĥÑİÑī": 110209, + "éĹ»": 110210, + "ÑijÑĢ": 110211, + "ĠchvÃŃ": 110212, + "èĥľ": 110213, + "ãģªãģĹ": 110214, + "Ġteknoloj": 110215, + "ejména": 110216, + "ĠìłĪ": 110217, + "ì³IJ": 110218, + "æĻ®éĢļ": 110219, + "Ġvýro": 110220, + "Ġayrı": 110221, + "ĠпÑĢев": 110222, + "Ġgóp": 110223, + "à¹Ĥà¸ģ": 110224, + "à¸Ĺำà¹ĥห": 110225, + "åıİ": 110226, + "åĺī": 110227, + "Ġtelev": 110228, + "ãģ¨ãģĵãĤį": 110229, + "ëıĮ": 110230, + "phyl": 110231, + "ราะ": 110232, + "ĠçĪ": 110233, + "ÑģÑĤиÑĤÑĥ": 110234, + "ï¼Įè¿ĺ": 110235, + "ĠÎijγ": 110236, + "Äįku": 110237, + "æı´": 110238, + "ायत": 110239, + "æıı": 110240, + "ãĤĤãģĹ": 110241, + "ĠпеÑĢеÑģ": 110242, + "ĠìĺģíĻĶ": 110243, + "idla": 110244, + "åİħ": 110245, + "ï¼ı:": 110246, + "ترÛĮ": 110247, + "à¸Ľà¸ı": 110248, + "ĠнаÑģеленнÑı": 110249, + "Ġamaç": 110250, + "Ġkdo": 110251, + "ĠизвеÑģÑĤ": 110252, + "ÑĪиÑĢ": 110253, + "ì£ł": 110254, + "Å¡it": 110255, + "Ġtá»ijc": 110256, + "ìŀIJìĿĺ": 110257, + "ÑĩаÑĤ": 110258, + "åıĥ": 110259, + "鼶": 110260, + "å°º": 110261, + "Ġindir": 110262, + "ĠнаÑĨÑĸоналÑĮ": 110263, + "Ġxanh": 110264, + "ÛĮدÛĮ": 110265, + "ĠинÑĤеÑĢеÑģ": 110266, + "ĠآسÛĮ": 110267, + "éĤ£ä¸ª": 110268, + "Ġbilm": 110269, + "ане": 110270, + "ĠtÄĽchto": 110271, + "Ñĩик": 110272, + "ĠдоÑħод": 110273, + "èĤ¡ä»½": 110274, + "åħ³ç³»": 110275, + "ãģ«ãģªãģ£ãģŁ": 110276, + "ĠпÑĢедпÑĢи": 110277, + "Ġgeçen": 110278, + "ĠبÙĤ": 110279, + "Ġvýznam": 110280, + "Ġà¹Ģà¸Ħร": 110281, + "ĠÑħÑĤо": 110282, + "Ø´ÙĬ": 110283, + "åıĤåĬł": 110284, + "ÑģÑĤвенного": 110285, + "ÑĤÑĢон": 110286, + "ÂĢÂĢÂĢÂĢ": 110287, + "æ¢Ŀ": 110288, + "бав": 110289, + "Û±Û¶": 110290, + "顺": 110291, + "Ġjaz": 110292, + "ĠاÙĦÙħÙĦ": 110293, + "Ġاثر": 110294, + "ĠпÑĢивод": 110295, + "анÑĥ": 110296, + "à¥ģà¤Ń": 110297, + "æŧ": 110298, + "ÑĮе": 110299, + "สล": 110300, + "лÑıÑİÑĤ": 110301, + "วà¸Ķ": 110302, + "Æ°á»Ľi": 110303, + "ÙĬÙħØ©": 110304, + "ãĤ¯ãĥŃ": 110305, + "лий": 110306, + "γÏģά": 110307, + "Ġperforman": 110308, + "è¯ī": 110309, + "ä½łçļĦ": 110310, + "ìħĶ": 110311, + "нениÑı": 110312, + "á»Ńi": 110313, + "ÙĪزÛĮ": 110314, + "éŁ¿": 110315, + "à¥Īद": 110316, + "Ġ몸": 110317, + "Ġeser": 110318, + "ĠÙģعاÙĦÛĮت": 110319, + "нÑĸвеÑĢ": 110320, + "κÏģα": 110321, + "証": 110322, + "Ġnemoc": 110323, + "Ġyardımcı": 110324, + "Ġçī¹": 110325, + "Ġкоп": 110326, + "ĠÐľÐ¾Ð¶": 110327, + "़à¤ķ": 110328, + "Ġëľ": 110329, + "ĠÑĢеак": 110330, + "Ġpozor": 110331, + "ÂłÐIJ": 110332, + "ĠÙĬÙĥ": 110333, + "ĠÑģад": 110334, + "Ġåħ«": 110335, + "ĠполÑĮз": 110336, + "ĠraÄŁmen": 110337, + "ternÃŃ": 110338, + "siyon": 110339, + "ÑģÑıÑĩ": 110340, + "ovaný": 110341, + "ĠëĮĢíķľë¯¼êµŃ": 110342, + "ĠвÑĸдб": 110343, + "ĠÐIJнд": 110344, + "stva": 110345, + "éĮĦ": 110346, + "Ġëij": 110347, + "ิà¸Ħ": 110348, + "jÃŃt": 110349, + "Ġkullanıcı": 110350, + "ĠæŁ¥çľĭ": 110351, + "ÙģÙĦ": 110352, + "ĠЯкÑīо": 110353, + "çľĭåĪ°": 110354, + "ÑĢеÑħ": 110355, + "ĠاÙĦعربÙĬØ©": 110356, + "ë¡ľê·¸ëŀ¨": 110357, + "Ġà¤¬à¤ľ": 110358, + "ĠпÑĢип": 110359, + "Ġschop": 110360, + "ĠباÙĦا": 110361, + "å®ħ": 110362, + "ĠاÙĦÙħÙĩ": 110363, + "ανα": 110364, + "à¥ĭव": 110365, + "åģ´": 110366, + "å¼Ģåıij": 110367, + "ÙħاÙĦ": 110368, + "Ġधर": 110369, + "Ġdahil": 110370, + "ãĢģãģĵãģ®": 110371, + "ัà¸Īà¸Ī": 110372, + "ÑģпÑĸлÑĮ": 110373, + "Ġà¤ķप": 110374, + "ĠвеÑĩ": 110375, + "Ġвида": 110376, + "ĠÙħعÙĨ": 110377, + "ĠоÑĤли": 110378, + "iá»ħ": 110379, + "лиÑĪ": 110380, + "ĠÐŁÐ¾Ñģле": 110381, + "ãģĵãģĵ": 110382, + "Ġkültür": 110383, + "Ġجر": 110384, + "Ġæ¼": 110385, + "èĩº": 110386, + "Ġmevcut": 110387, + "Ù¾ÛĮ": 110388, + "ĠاÙĦسÙĦاÙħ": 110389, + "иÑĤелей": 110390, + "ĠÑĢоÑģÑĤ": 110391, + "Ġedil": 110392, + "Ġå·²": 110393, + "ç²¾åĵģ": 110394, + "ä»ħ": 110395, + "âĢĻye": 110396, + "à¥Īà¤Ĥ.": 110397, + "ĠåĨĨ": 110398, + "ëĪĦ": 110399, + "ĠìĻķ": 110400, + "æĺŃ": 110401, + "ĠÎļο": 110402, + "meden": 110403, + "Ġolab": 110404, + "ĠÚ©ÙĪد": 110405, + "à¸Ħาส": 110406, + "еннаÑı": 110407, + "æĬ¼": 110408, + "ylül": 110409, + "Ġseviy": 110410, + "ĠdÄĽti": 110411, + "âĢ¬Ċ": 110412, + "Ġعز": 110413, + "Ġuá»ijng": 110414, + "ĠسرÙħ": 110415, + "ене": 110416, + "ĠмаленÑĮ": 110417, + "ĠвÑĸдом": 110418, + "ัà¸ļà¸Ĺ": 110419, + "ĠThái": 110420, + "Ġà¤Ĩवश": 110421, + "roveÅĪ": 110422, + "çĽ£": 110423, + "ĠÑıзÑĭ": 110424, + "ĠOy": 110425, + "å£ģ": 110426, + "ваÑĤÑĮ": 110427, + "ладÑĥ": 110428, + "اصÙĦ": 110429, + "otÅĻeb": 110430, + "دÙĬØ«": 110431, + "íı°": 110432, + "νομ": 110433, + "гоÑĢод": 110434, + "Ġmuh": 110435, + "âĢĻl": 110436, + "ÑģÑĤвоÑĢ": 110437, + "åħĦ": 110438, + "ÐķÐł": 110439, + "Ø·ÙĦ": 110440, + "éľĩ": 110441, + "Ùİت": 110442, + "ĠblÃŃ": 110443, + "Ġedildi": 110444, + "éĿł": 110445, + "äºĮåįģ": 110446, + "æĹĹ": 110447, + "Ġçiz": 110448, + "ĠÄijảo": 110449, + "Ġopat": 110450, + "oÄŁan": 110451, + "ë²Į": 110452, + "Ġéł": 110453, + "Ġsebep": 110454, + "ÑĥÑĤи": 110455, + "åĪº": 110456, + "طب": 110457, + "evÅ¡ÃŃm": 110458, + "chop": 110459, + "çĶļ": 110460, + "Ġnghá»ģ": 110461, + "ĠпаÑĢÑĤ": 110462, + "ุà¸Ħ": 110463, + "Ú©ÛĮÙĦ": 110464, + "dum": 110465, + "Ġortak": 110466, + "ãģŁãģĹ": 110467, + "Ġobyvatel": 110468, + "Ġvých": 110469, + "Ġveren": 110470, + "ĠвеÑģÑĮ": 110471, + "ĠÐĶа": 110472, + "Ġíķĺì§Ģë§Į": 110473, + "å¦ĤæѤ": 110474, + "Ġमहत": 110475, + "ัà¸ĩà¸ģฤษ": 110476, + "ãĢĤè¿Ļ": 110477, + "Ġгал": 110478, + "Ġsanat": 110479, + "éłĨ": 110480, + "ĠÑģамо": 110481, + "åĽ°": 110482, + "ีà¸Ń": 110483, + "ĠBaÅŁkan": 110484, + "ÏĦοÏħÏĤ": 110485, + "Ġyaptıģı": 110486, + "ÅĻit": 110487, + "ĠÑģÑĸлÑĮ": 110488, + "ानत": 110489, + "ĠÙĨت": 110490, + "ĠkhÄĥn": 110491, + "à¸Ĭà¸Ļะ": 110492, + "мини": 110493, + "ãĥ¬ãĥ¼": 110494, + "ëĤ¬": 110495, + "éħĴåºĹ": 110496, + "ĠاÙĦÙĬÙĪÙħ": 110497, + "ä¹Ĺ": 110498, + "à¸Ħรà¸ĩà¸ģาร": 110499, + "ÙģاÙĤ": 110500, + "Ġà¤ıस": 110501, + "Ġæ¡": 110502, + "گذ": 110503, + "Ġà¤ĩल": 110504, + "елениÑı": 110505, + "à¸ģรà¸ĵ": 110506, + "ä¸ľè¥¿": 110507, + "ÎŁÎľ": 110508, + "ĠmáºŃt": 110509, + "ĠsnÃŃ": 110510, + "ÂIJ": 110511, + "à¹Ģรา": 110512, + "íķ´ìķ¼": 110513, + "ĠìĦľë¹ĦìĬ¤": 110514, + "ĠداخÙĦ": 110515, + "Ġthắng": 110516, + "íĥĪ": 110517, + "авÑģÑı": 110518, + "ĠÑĸм": 110519, + "اÙħت": 110520, + "ĠÙĪÙĤت": 110521, + "à¥Ĥà¤ģ": 110522, + "ĠèIJ": 110523, + "ĠسÙĦاÙħ": 110524, + "ĠvzdÄĽl": 110525, + "å¸ĮæľĽ": 110526, + "åŃĺæ¡£": 110527, + "Ġà¸Ĺำ": 110528, + "ĠвÑĸйÑģÑĮ": 110529, + "аÑĢан": 110530, + "ĠÑĢÑĸк": 110531, + "ĠпиÑģÑĮ": 110532, + "Ġá¼IJ": 110533, + "기ëıĦ": 110534, + "ĠпоÑģÑĤоÑıн": 110535, + "ĠåĮĹ京": 110536, + "ĠNÄĽm": 110537, + "Ø´ÙĨاÙħÙĩ": 110538, + "ĠdalÅ¡ÃŃch": 110539, + "Ġباع": 110540, + "Ġpohy": 110541, + "اÙĦÙģ": 110542, + "à¸ŀวà¸ģ": 110543, + "éĭ": 110544, + "Ġcih": 110545, + "Ù¢": 110546, + "临": 110547, + "ãĤ¯ãĥĪ": 110548, + "пнÑı": 110549, + "Ġдал": 110550, + "ÙĴر": 110551, + "ãĢĢãĢĢĠãĢĢĠãĢĢ": 110552, + "æĬ¥åijĬ": 110553, + "ÙĪدÛĮ": 110554, + "ợi": 110555, + "ÑĨÑĸÑĶÑİ": 110556, + "ĠãĥĢ": 110557, + "ĠÑģÑĤеп": 110558, + "raž": 110559, + "ĠSaÄŁ": 110560, + "Ġtuyến": 110561, + "Ġalmak": 110562, + "ĠзаболеваниÑı": 110563, + "ĠÏĥÏĩ": 110564, + "Ġíĭ": 110565, + "Ġвим": 110566, + "硬": 110567, + "ĠäºĶ": 110568, + "Ġikinci": 110569, + "ุà¸į": 110570, + "สาว": 110571, + "ĠìĦ¸ê³Ħ": 110572, + "ĠÙħØŃÙĦ": 110573, + "ระหว": 110574, + "Ġelektron": 110575, + "Ġhại": 110576, + "æĹ¢": 110577, + "Ġíĸ¥": 110578, + "Ġjiné": 110579, + "Ġnghe": 110580, + "æij©": 110581, + "ĠÑģобÑĸ": 110582, + "Ư": 110583, + "ÑĤÑĥÑĢ": 110584, + "汽车": 110585, + "شاÙĩ": 110586, + "ĠdÃłnh": 110587, + "丹": 110588, + "ä»ĬæĹ¥": 110589, + "ãĥIJãĥ¼": 110590, + "ваниÑı": 110591, + "ĠساÙħ": 110592, + "çݯå¢ĥ": 110593, + "ĠاÙĦÙħÙĨت": 110594, + "ĠÑģеÑĢд": 110595, + "éģł": 110596, + "εÏĦ": 110597, + "ĠавÑĤ": 110598, + "าà¸ĩว": 110599, + "Ġvztah": 110600, + "ruž": 110601, + "алÑĮнаÑı": 110602, + "ĠطراØŃÛĮ": 110603, + "à¹Ĥรà¸ĩà¹ģรม": 110604, + "ĠÄįasto": 110605, + "Ġê¼": 110606, + "ÏĥÏĦÏĮ": 110607, + "Ġburada": 110608, + "ĠÄ°z": 110609, + "Ġê·¸ëŀĺ": 110610, + "å²Ľ": 110611, + "ĠØ´ÙĪÙĨد": 110612, + "Å¡ek": 110613, + "ĠìĿ´ìķ¼": 110614, + "ãĤĮãģªãģĦ": 110615, + "ê·¹": 110616, + "lamÄ±ÅŁ": 110617, + "ä»į": 110618, + "cházet": 110619, + "ĠÑģÑĥÑĤ": 110620, + "æĹłæ³ķ": 110621, + "浦": 110622, + "ÄĽla": 110623, + "à¹ĥà¸Ļà¸Ĭ": 110624, + "Ġcân": 110625, + "ÎŁÎĵ": 110626, + "Ġzvý": 110627, + "Ġپار": 110628, + "ĠклÑĸ": 110629, + "Ġnové": 110630, + "çĶĺ": 110631, + "ë¹ł": 110632, + "má": 110633, + "ĠÑģол": 110634, + "à¤ķरण": 110635, + "ноÑĩ": 110636, + "Ġfik": 110637, + "Ġà¤ľà¤Ĺ": 110638, + "à¹ĩà¸Ļà¸ķ": 110639, + "ĠÙħتØŃ": 110640, + "Ġphiên": 110641, + "Ġolsun": 110642, + "Ġкаб": 110643, + "Ġhút": 110644, + "èĦ±": 110645, + "Ġåĸ": 110646, + "ĠHải": 110647, + "ĠtÄĽÅ¾": 110648, + "Ġthái": 110649, + "Ġتاب": 110650, + "-ÐŁ": 110651, + "ثار": 110652, + "çĨĬ": 110653, + "Ġними": 110654, + "Ġzprac": 110655, + "Ġतह": 110656, + "ĠмакÑģим": 110657, + "meyi": 110658, + "ĠÑģоÑĨи": 110659, + "æ²Ĵ": 110660, + "ĠìķĬëĬĶ": 110661, + "__": 110662, + "åķ¦": 110663, + "ĠاÙĨÙĪاع": 110664, + "æļ´": 110665, + "ä¸Ĭæµ·": 110666, + "åħ·æľī": 110667, + "à¥ģब": 110668, + "ìķĻ": 110669, + "Ġíģ°": 110670, + "Ġíŀĺ": 110671, + "Ġtránh": 110672, + "ियन": 110673, + "ãģ¾ãģ¾": 110674, + "поÑĩ": 110675, + "mÄĽr": 110676, + "å³°": 110677, + "ĠÙħصر": 110678, + "ĠÑįÑĦÑĦекÑĤив": 110679, + "Ġçı": 110680, + "leriyle": 110681, + "âĪļ": 110682, + "Ġì¶ķ": 110683, + "Ġê²Įìĭľ": 110684, + "ìĿij": 110685, + "ĠpoÅĻád": 110686, + "ĠشبکÙĩ": 110687, + "اÙĩØ´": 110688, + "ĠخدÙħات": 110689, + "ĠnaÅ¡e": 110690, + "νοÏį": 110691, + "Ġyönelik": 110692, + "Ġkork": 110693, + "اÙĩÙħ": 110694, + "è°Ī": 110695, + "Ġμη": 110696, + "Ġdolar": 110697, + "給": 110698, + "ĠÎķÏħ": 110699, + "ĠobdobÃŃ": 110700, + "ĠμÏĮ": 110701, + "à¹Ģà¸Ńà¸ģ": 110702, + "Ġپاسخ": 110703, + "è¡¥": 110704, + "اعد": 110705, + "ãĤīãģĦ": 110706, + "ÎŃλ": 110707, + "иÑĤÑĭ": 110708, + "Ġëħ¼": 110709, + "Ġ^{[": 110710, + "ίγ": 110711, + "æłij": 110712, + "lında": 110713, + "ĠìŬ룬": 110714, + "££": 110715, + "ÅĻil": 110716, + "ĠавÑĤоÑĢ": 110717, + "ÏĦικÏĮÏĤ": 110718, + "udur": 110719, + "ĠcÆ°": 110720, + "Ġkıy": 110721, + "Ñģем": 110722, + "ĠأبÙĪ": 110723, + "ÏĦικÏİν": 110724, + "Û±Û·": 110725, + "貸": 110726, + "ĠпÑĢож": 110727, + "üncü": 110728, + "ĠнÑĸÑĩ": 110729, + "Ġमत": 110730, + "ãģķãĤĮãģ¦ãģĦãĤĭ": 110731, + "اصر": 110732, + "ĠعÙĤ": 110733, + "ĠкаÑĩеÑģÑĤве": 110734, + "ĠÐĵеÑĢ": 110735, + "åºĨ": 110736, + "Ù¹": 110737, + "alarda": 110738, + "Ġپرس": 110739, + "иÑĩеÑģкой": 110740, + "Ġphim": 110741, + "ίνη": 110742, + "ä¸ĩåĨĨ": 110743, + "ilerini": 110744, + "ãĢģ大": 110745, + "Ġolsa": 110746, + "æł¹æį®": 110747, + "âĢĮس": 110748, + "ĠThủ": 110749, + "roje": 110750, + "нÑĮоÑĹ": 110751, + "Ġslou": 110752, + "ีฬ": 110753, + "ıyorum": 110754, + "ÄĽj": 110755, + "Ġخبر": 110756, + "è®Ĭ": 110757, + "Ġ缸": 110758, + "elerinin": 110759, + "íķĻëħĦëıĦ": 110760, + "ÑĩеÑģкие": 110761, + "ĠÅŁekl": 110762, + "ĠزÙħاÙĨÛĮ": 110763, + "Ġxin": 110764, + "ัà¸ģà¸ĩาà¸Ļ": 110765, + "ĠEkim": 110766, + "æĦ¿": 110767, + "Ġодной": 110768, + "νή": 110769, + "æľĢæĸ°": 110770, + "ĩ¼": 110771, + "Ġниж": 110772, + "Ġë³¼": 110773, + "è·ij": 110774, + "ĠнапиÑģ": 110775, + "èģĸ": 110776, + "ĠâĢĮ": 110777, + "æłĩåĩĨ": 110778, + "Ġvrát": 110779, + "ĠVì": 110780, + "ĠÙģراÙĨ": 110781, + "æĿ¥çļĦ": 110782, + "姿": 110783, + "ÑħÑĥ": 110784, + "ĠبÛĮرÙĪÙĨ": 110785, + "ĠдÑĥÑĪ": 110786, + "ваÑİÑĤ": 110787, + "Ġsebe": 110788, + "é»ĺ": 110789, + "Ġkayıt": 110790, + "Ïģθ": 110791, + "ãģ¨ãģ®": 110792, + "ĠпÑĢоÑĨеÑģÑģ": 110793, + "æĮģãģ¡": 110794, + "Ñĸна": 110795, + "ĠÑĤоÑĤ": 110796, + "ĠÑĤакие": 110797, + "Theo": 110798, + "ĠÙĨÛĮر": 110799, + "ÑĨÑĥ": 110800, + "Ġayak": 110801, + "à¸Ļà¸Ń": 110802, + "Ġsitesinde": 110803, + "ĠÚ©ÙĨÛĮÙħ": 110804, + "ĠÑģоÑħ": 110805, + "Ġà¤®à¤ľ": 110806, + "Ġoluyor": 110807, + "ç½ijåĿĢ": 110808, + "Ġپزش": 110809, + "ĠEylül": 110810, + "dÃ¼ÄŁ": 110811, + "ĠبرخÛĮ": 110812, + "ĠÙħعرÙģ": 110813, + "Ġobec": 110814, + "ĠçalÄ±ÅŁma": 110815, + "ìĦ¼íĦ°": 110816, + "ĠÑģвоÑĶ": 110817, + "оÑģÑĤей": 110818, + ":::::::::::": 110819, + "ĠалÑĮ": 110820, + "ç«Ł": 110821, + "ĠباشÙĨد": 110822, + "اÙĦØ«": 110823, + "Ġнайб": 110824, + "Ġпока": 110825, + "Îŀ": 110826, + "ĠÙĪØ¥": 110827, + "ĠØ®ÙĪاÙĨ": 110828, + "à¥ģपय": 110829, + "Ġà¹ĥห": 110830, + "ĠбÑĭÑģÑĤÑĢо": 110831, + "Ġthá»Ń": 110832, + "ëģ¼": 110833, + "Ġå¤ļ": 110834, + "两个": 110835, + "มà¸ķ": 110836, + "زارش": 110837, + "ĠëŁ": 110838, + "यह": 110839, + "Ñīина": 110840, + "ầng": 110841, + "ï½Ĺï½Ĺ": 110842, + "à¹Ģà¸ŀลà¸ĩ": 110843, + "tvrt": 110844, + "ĠÑĸнÑĪÑĸ": 110845, + "λεί": 110846, + "Ġviá»ĩn": 110847, + "ij¸": 110848, + "ĠçĻ½": 110849, + "ÙİÙĪ": 110850, + "Ġchứa": 110851, + "stvo": 110852, + "ĠdoÄŁr": 110853, + "Ġiler": 110854, + "à¥ĭ,": 110855, + "à¹ĥà¸Ļà¸Ľ": 110856, + "ĠرÙĪست": 110857, + "ÙĪÙĦÙĪ": 110858, + "Å¡lo": 110859, + "алиÑģÑĤ": 110860, + "åħ±åĴĮ": 110861, + "à¸ŀย": 110862, + "ĠìĻĢ": 110863, + "ÙĦÙĬÙĦ": 110864, + "ĠÑıкого": 110865, + "еÑģÑĤÑĮ": 110866, + "ĠÑĦин": 110867, + "ĠØ£ÙĨÙĩ": 110868, + "ĠMüdür": 110869, + "ĠÎĶια": 110870, + "ĠÑĤел": 110871, + "ि,": 110872, + "Ñĥки": 110873, + "ĠÐłÐ¤": 110874, + "ĠMayıs": 110875, + "à¹Īà¸Ńม": 110876, + "arken": 110877, + "æĢķ": 110878, + "بÛĮÙĨ": 110879, + "ÑĤаÑħ": 110880, + "ebo": 110881, + "ë³´ì¦Ŀê¸Ī": 110882, + "ĠÙ¾ÙĦ": 110883, + "ĠгÑĥб": 110884, + "ĠвклÑİÑĩ": 110885, + "æĶ¿æ²»": 110886, + "ĠεÏĢιÏĥ": 110887, + "ĠÙģارسÛĮ": 110888, + "èŃī": 110889, + "ÏĨη": 110890, + "(éĩij": 110891, + "ศร": 110892, + "åī§": 110893, + "âĢĻya": 110894, + "年度": 110895, + "ĠÙĨرÙħ": 110896, + "ÙĥÙĪÙħ": 110897, + "è¢ĭ": 110898, + "Ġnedenle": 110899, + "à¹īà¸Ńà¸ĩà¸ģาร": 110900, + "ãĢĮãģĤ": 110901, + "ĠпоÑģÑĤÑĥп": 110902, + "ìľĦìĽIJ": 110903, + "åįĺ": 110904, + "èݱ": 110905, + "Ġumož": 110906, + "pok": 110907, + "ÑĥÑģÑĤи": 110908, + "Ġéħ": 110909, + "ĠÑĦÑĸз": 110910, + "廣": 110911, + "ิหาร": 110912, + "ĠжÑĥÑĢн": 110913, + "ĠдÑĸÑĤей": 110914, + "ÑĥÑİÑīие": 110915, + "ä»Ĭ天": 110916, + "ìĿ´ëĿ¼ê³ł": 110917, + "ç²ī": 110918, + "èĴĻ": 110919, + "ĠDünya": 110920, + "егоднÑı": 110921, + "Ġmimo": 110922, + "Ġвин": 110923, + "ãģĿãģĵ": 110924, + "æ¯ķ": 110925, + "Ġأخ": 110926, + "ĠåIJĮ": 110927, + "ساÙĨÛĮ": 110928, + "Ġkah": 110929, + "ियर": 110930, + "ÏĢοÏĤ": 110931, + "jez": 110932, + "ÙĬج": 110933, + "ĠsaÄŁlay": 110934, + "اجÙĩ": 110935, + "Ġçł": 110936, + "ïľ": 110937, + "Ġجست": 110938, + "Ġtức": 110939, + "Æ°Æ¡i": 110940, + "Ø´Ùģ": 110941, + "สà¸ķ": 110942, + "ĠÑĢеÑģ": 110943, + "Ġå£": 110944, + "Ġbizim": 110945, + "Ġê·Ģ": 110946, + "िब": 110947, + "ë¡ľìļ´": 110948, + "ĠÑģÑĤал": 110949, + "ĠÑĢÑĥÑģ": 110950, + "ĠOcak": 110951, + "åľ£": 110952, + "ĠúÄįast": 110953, + "iverz": 110954, + "ëĤĺëĬĶ": 110955, + "оÑĢоÑĤ": 110956, + "ÑĩинÑĭ": 110957, + "Ġihtiyaç": 110958, + "ÐĿÐŀ": 110959, + "ĠÐĿов": 110960, + "ียà¸Ķ": 110961, + "ĠпоÑĤÑĢÑĸбно": 110962, + "گز": 110963, + "ĠÑģказал": 110964, + "ĠGia": 110965, + "mesini": 110966, + "Ġbulunur": 110967, + "渡": 110968, + "гоÑĤ": 110969, + "Ġhuku": 110970, + "ëĦ·": 110971, + "ãĨ": 110972, + "ĠاÙĥ": 110973, + "ĠدÙĦÛĮÙĦ": 110974, + "Ġاساس": 110975, + "ìĹ°êµ¬": 110976, + "ĠÎĺε": 110977, + "ĠسÙĪر": 110978, + "Ġì¢Ģ": 110979, + "ĠاÙĦدر": 110980, + "ĠÑģÑĤÑĢоиÑĤелÑĮ": 110981, + "ĠÑĥк": 110982, + "ĠìĻľ": 110983, + "елик": 110984, + "OVID": 110985, + "Ġtemiz": 110986, + "亦": 110987, + "Ġthiếu": 110988, + "ĠпÑĥÑĤ": 110989, + "ÑİÑīей": 110990, + "ĠurÄį": 110991, + "ĠÄIJây": 110992, + "極": 110993, + "μοÏħ": 110994, + "Ġà¹Ģà¸Ļ": 110995, + "евеÑĢ": 110996, + "ÂłÐĶ": 110997, + "ì´Ŀ": 110998, + "趣": 110999, + "Ġà¤ħलà¤Ĺ": 111000, + "Æ°á»Ŀn": 111001, + "ĠãĥŃ": 111002, + "Ġê³³": 111003, + "é²ģ": 111004, + "ĠرسÛĮد": 111005, + "身ä½ĵ": 111006, + "ัà¸ĵà¸ij": 111007, + "ynÃŃ": 111008, + "جات": 111009, + "ì§Ģ를": 111010, + "नल": 111011, + "ìķĮ": 111012, + "Ñĸп": 111013, + "ĠvÃłng": 111014, + "ĠплоÑī": 111015, + "озмож": 111016, + "åī²": 111017, + "Ġthảo": 111018, + "лади": 111019, + "ĠåĿ": 111020, + "ĠÐľÐ¸": 111021, + "ĠделаÑĤÑĮ": 111022, + "éij": 111023, + "Ġhuy": 111024, + "اÛĮØ·": 111025, + "ĠповÑĤоÑĢ": 111026, + "ülen": 111027, + "ĠÙĪÙģ": 111028, + "ĠÙĬتÙħ": 111029, + "ĠÑĢежим": 111030, + "ĠìºIJ": 111031, + "ĠÃĩünkü": 111032, + "عدد": 111033, + "нивеÑĢ": 111034, + "ĠÐĿик": 111035, + "å¸ĸ": 111036, + "ÏįÏĢ": 111037, + "anlar": 111038, + "ستÛĮ": 111039, + "Ġbulunmaktadır": 111040, + "à¹ģà¸ļ": 111041, + "vek": 111042, + "Ġглаза": 111043, + "å¹ħ": 111044, + "Ġúdaj": 111045, + "ĠгÑĢо": 111046, + "ĠконкÑĥÑĢ": 111047, + "Ġdůležit": 111048, + "ĠØ·ÙĪر": 111049, + "à¸ĺาà¸Ļ": 111050, + "ĠÙĦÙĥÙĨ": 111051, + "رÙĤ": 111052, + "ÐļÐIJ": 111053, + "ĠéĿĴ": 111054, + "ĠìĤ¬ëŀij": 111055, + "ĠÑħвоÑĢ": 111056, + "sunuz": 111057, + "ĠÙħشخص": 111058, + "éĻ¸": 111059, + "Ġढ": 111060, + "Ġvaz": 111061, + "交æĺĵ": 111062, + "ĠÑĤеÑĢÑĢиÑĤ": 111063, + "ÑĩеÑģкой": 111064, + "ีà¹Ĥ": 111065, + "ropoda": 111066, + "ıldıģı": 111067, + "Ġëī´": 111068, + "íķĻ기": 111069, + "ë³´íĹĺ": 111070, + "ĠзаÑĤем": 111071, + "ÂłÐ²": 111072, + "ãĥ¼ãĥĨ": 111073, + "ĠÐŀÑģнов": 111074, + "ãĨį": 111075, + "Ġدع": 111076, + "ÐŁÐ¾Ñģ": 111077, + "æ²ī": 111078, + "Ġлож": 111079, + "çĶµåŃIJ": 111080, + "Ġرد": 111081, + "ĠÑģÑĢазÑĥ": 111082, + "ejte": 111083, + "Ġà¤ijफ": 111084, + "ĠtÃłu": 111085, + "ÃŃk": 111086, + "lanması": 111087, + "каÑĤ": 111088, + "าà¸ģาศ": 111089, + "ãĤ¢ãĤ¤": 111090, + "ÏĦιο": 111091, + "Ġå§": 111092, + "पत": 111093, + "EY": 111094, + "Ġjmé": 111095, + "Ġodkazy": 111096, + "Ġê°ľìĿ¸": 111097, + "éģ¿": 111098, + "bÄĽh": 111099, + "ÐłÐŀ": 111100, + "çĥĪ": 111101, + "Ġzarar": 111102, + "Ú¯ÙĪÙĨÙĩ": 111103, + "Ġtrì": 111104, + "Ġmại": 111105, + "еннÑĭм": 111106, + "ĠÑįконом": 111107, + "éĽ£": 111108, + "ĠíĦ": 111109, + "æİī": 111110, + "Ġsoru": 111111, + "ĠФедеÑĢаÑĨии": 111112, + "ĠÑģиÑģÑĤеми": 111113, + "æĸĻçĦ¡æĸĻ": 111114, + "Ġà¤ķà¤Ń": 111115, + "ĠÙĩÙĨد": 111116, + "ุà¸ĩà¹Ģà¸Ĺà¸ŀ": 111117, + "ĠOsmanlı": 111118, + "ĠпÑĢодолж": 111119, + "ĠÙĪÙĦا": 111120, + "ĠÄįlánku": 111121, + "Ġadım": 111122, + "ĠÏĢαÏģά": 111123, + "ĠzáÅĻÃŃ": 111124, + "Ġà¸Īำà¸ģ": 111125, + "Ġпен": 111126, + "menin": 111127, + "Ġìĺ¤ëĬĺ": 111128, + "emiz": 111129, + "οÏįÏĤ": 111130, + "-स": 111131, + "íķĺìĭľ": 111132, + "ĠÑħви": 111133, + "ãĤ°ãĥ©": 111134, + "ĠпоÑĪ": 111135, + "ĠÐŀднако": 111136, + "Ñĸдно": 111137, + "íĺľ": 111138, + "Ñīими": 111139, + "èĥ¸": 111140, + "ĠÄ°lk": 111141, + "mey": 111142, + "Ġзда": 111143, + "κλη": 111144, + "алом": 111145, + "à¹Ģศษ": 111146, + "اÙĨا": 111147, + "ĠÎŁÎ¹": 111148, + "ĠåıĮ": 111149, + "ีà¸Ĥ": 111150, + "Ġبس": 111151, + "è§Ħå®ļ": 111152, + "isay": 111153, + "ukarı": 111154, + "æµģéĩı": 111155, + "vÃŃm": 111156, + "λÏİ": 111157, + "ä¹Ļ": 111158, + "Ġलड": 111159, + "ĠÙĨدارد": 111160, + "еÑĢом": 111161, + "Ġsırasında": 111162, + "ĠrÄĥng": 111163, + "Æ¡m": 111164, + "Ġlạnh": 111165, + "à¤ĥ": 111166, + "à¥ģण": 111167, + "uzey": 111168, + "ĠÑĥва": 111169, + "vÄĽd": 111170, + "ÑĭÑģ": 111171, + "Ġκι": 111172, + "Ñķ": 111173, + "ÛĮا": 111174, + "à¸ĩà¸Ħ": 111175, + "phylum": 111176, + "Ġberaber": 111177, + "ีà¸Ķ": 111178, + "æµ®": 111179, + "ासन": 111180, + "ovice": 111181, + "覧": 111182, + "Ġसफ": 111183, + "å°ij女": 111184, + "анÑĤи": 111185, + "é¨ĵ": 111186, + "Ġsoát": 111187, + "鬼": 111188, + "lanmÄ±ÅŁ": 111189, + "Ġbếp": 111190, + "ÙIJÙĦ": 111191, + "Ġsayısı": 111192, + "ĠÙĤدÙħ": 111193, + "à¥Īम": 111194, + "हम": 111195, + "ĠÑĢÑĥки": 111196, + "ĠصÙģØŃÙĩ": 111197, + "Å¡ky": 111198, + "é»Ĵ": 111199, + "èģļ": 111200, + "ãģĭãģ«": 111201, + "Ġsâu": 111202, + "едаг": 111203, + "ĠÑģÑĤоÑĢонÑĭ": 111204, + "Ġruk": 111205, + "âĢĮâĢĮ": 111206, + "ĠØ¢ÙĪر": 111207, + "ĠعدÙħ": 111208, + "õi": 111209, + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 111210, + "Ġبازار": 111211, + "Ġedeb": 111212, + "ĠvÄįetnÄĽ": 111213, + "опаÑģ": 111214, + "Ġнег": 111215, + "mayan": 111216, + "коÑģÑĤÑĮ": 111217, + "Ġsvůj": 111218, + "ģında": 111219, + "Ø°ÛĮر": 111220, + "Má»Ļt": 111221, + "ÐĦ": 111222, + "Ġyaptı": 111223, + "िथ": 111224, + "ĠÙħÙĩر": 111225, + "ĠдоÑģÑĤи": 111226, + "ĠصÙĪر": 111227, + "mesine": 111228, + "ĠDân": 111229, + "ä¸Ģä¸ĭ": 111230, + "çįİ": 111231, + "ĠÐľÐ¸Ñħ": 111232, + "ĠоÑĩи": 111233, + "ãĤ¦ãĤ§": 111234, + "ĠÑĸÑģ": 111235, + "Ġgiác": 111236, + "åľ¨çº¿è§Ĥçľĭ": 111237, + "ĠاداÙħÙĩ": 111238, + "ÑĨов": 111239, + "ĠкомÑĥ": 111240, + "ĠÄ°ngiliz": 111241, + "ĠгÑĢаж": 111242, + "ãģ¦ãĤĤ": 111243, + "Ġchữ": 111244, + "олÑĮкÑĥ": 111245, + "mÄĽt": 111246, + "Ñıгом": 111247, + "ÑĩаÑģÑĤ": 111248, + "ìĸ¼": 111249, + "Ġkhóa": 111250, + "ĠÐIJд": 111251, + "ĠØ¢ÙĤ": 111252, + "ĠkuruluÅŁ": 111253, + "άζ": 111254, + "Ġжов": 111255, + "ĠвÑģÑĤÑĢе": 111256, + "ĠÙĪÙĦÙĥ": 111257, + "Ġtuyá»ĩt": 111258, + "yı": 111259, + "ĠÐĴо": 111260, + "Ġvá»įng": 111261, + "عÙĬØ©": 111262, + "ĠopÄĽt": 111263, + "اÙĬد": 111264, + "à¥Ī.Ċ": 111265, + "ĠÑģами": 111266, + "åªĴ": 111267, + "Ġsvých": 111268, + "ĠëĤĺíĥĢ": 111269, + "ìĨIJ": 111270, + "ĠÙĦع": 111271, + "Ġetkin": 111272, + "ĠNá": 111273, + "ĠsoutÄĽ": 111274, + "층ìĿĺ": 111275, + "ĠçŃī": 111276, + "ĠرسÙħ": 111277, + "ĠخاÙĨÙĩ": 111278, + "Ġ家": 111279, + "iá»ģm": 111280, + "ëħIJ": 111281, + "ê°Ī": 111282, + "ì°©": 111283, + "žil": 111284, + "ÑģÑĤиÑĤÑĥÑĤ": 111285, + "oruÄį": 111286, + "Ġإذا": 111287, + "à¹Ħà¸Ĥ": 111288, + "ีà¸Ĭ": 111289, + "ÑĢаб": 111290, + "íķĻìĥĿ": 111291, + "Ġìī": 111292, + "rnek": 111293, + "ĠاستخداÙħ": 111294, + "ãĢĢĠãĢĢĠãĢĢĠãĢĢ": 111295, + "ĠвÑģем": 111296, + "ĠìłķëıĦ": 111297, + "Ġvyj": 111298, + "éĢ±": 111299, + "алÑĮное": 111300, + "Ġchuyá»ĩn": 111301, + "ì§ĢìĽIJ": 111302, + "ilerine": 111303, + "ĠìķĦ무": 111304, + "Ġоколо": 111305, + "ावन": 111306, + "à¸Ļา": 111307, + "опÑĢи": 111308, + "drž": 111309, + "ĠÑģÑĥÑģпÑĸлÑĮ": 111310, + "ĠبÙĥ": 111311, + "uky": 111312, + "ĠÏĩÏī": 111313, + "Ġtuần": 111314, + "nictvÃŃ": 111315, + "ĠÙĩدÙģ": 111316, + "Ġchiá»ģu": 111317, + "ÎĹÎĿ": 111318, + "å°ıå§IJ": 111319, + "íķĺìĺĢ": 111320, + "Ġklas": 111321, + "á»Ļn": 111322, + "ĠìĿ´íĽĦ": 111323, + "ÙĨاÙħج": 111324, + "Äįast": 111325, + "ĠاÙĦخاص": 111326, + "lÄ±ÅŁ": 111327, + "ĠعÙħر": 111328, + "ãĢįĊ": 111329, + "иболее": 111330, + "ãĤĬãģ®": 111331, + "ãħł": 111332, + "ä¹Łä¸į": 111333, + "кÑĢеÑĤ": 111334, + "ĠìĶ": 111335, + "ÏĦια": 111336, + "ĠÑĥпÑĢавлÑĸннÑı": 111337, + "æ²¢": 111338, + "Ġkesin": 111339, + "ì¡Įëĭ¤": 111340, + "머ëĭĪ": 111341, + "羣çļĦ": 111342, + "Ġbakım": 111343, + "æĿ±äº¬": 111344, + "¾¸": 111345, + "ÙħÙĦÙĥØ©": 111346, + "оÑĤÑĢеб": 111347, + "dın": 111348, + "ĠPÅĻi": 111349, + "ĠmÄĽli": 111350, + "Ġδημο": 111351, + "寸": 111352, + "ĠÙĪÙĥاÙĨ": 111353, + "Ġपढ": 111354, + "ĠвеÑĢÑħ": 111355, + "ĠеÑij": 111356, + "Cách": 111357, + "ä½ľä¸º": 111358, + "ĠÐļол": 111359, + "Ġве": 111360, + "ĠдеÑĢж": 111361, + "emoc": 111362, + "ãģ¸ãģ®": 111363, + "ĠаÑĢÑħ": 111364, + "Ġkiếm": 111365, + "Ġæĺİ": 111366, + "ĠлÑİдини": 111367, + "ë·": 111368, + "ĠÙĪاÙĦت": 111369, + "Ġè°": 111370, + "çģ¯": 111371, + "íĻķ": 111372, + "Ġ구매": 111373, + "Ġç§ij": 111374, + "itnÃŃ": 111375, + "иÑĩеÑģкие": 111376, + "ĠÙĨÙģس": 111377, + "ĠتÙĦÙģ": 111378, + "اÙģÛĮ": 111379, + "ĠØŃسÙĨ": 111380, + "âĸ¡âĸ¡": 111381, + "ývá": 111382, + "ģın": 111383, + "ıyoruz": 111384, + "ĠChÃŃ": 111385, + "ĠÙ¾ÚĺÙĪÙĩØ´": 111386, + "ĠÏĦÎŃ": 111387, + "ĠÏĥÏĩε": 111388, + "олеÑĤ": 111389, + "αιδ": 111390, + "Ġhạt": 111391, + "à¸łà¸²à¸Ħ": 111392, + "åĨ°": 111393, + "Ġrychle": 111394, + "iteli": 111395, + "Âłz": 111396, + "ยà¸ģ": 111397, + "樹": 111398, + "ĠجÙĪاÙĨ": 111399, + "æĺĮ": 111400, + "Ġüretim": 111401, + "ระà¸ļ": 111402, + "à¸Ľà¸£à¸°à¸¡": 111403, + "άÏĥ": 111404, + "岩": 111405, + "ĠÑĥÑģÑĤÑĢой": 111406, + "Ġverilen": 111407, + "ichni": 111408, + "ĠpÅĻÃŃmo": 111409, + "ĠاÙĦØ°Ùĩاب": 111410, + "ì½ľ": 111411, + "æľ±": 111412, + "Ġسخ": 111413, + "Ñĸла": 111414, + "Ñĥма": 111415, + "หา": 111416, + "ÛĮدا": 111417, + "岸": 111418, + "ä¸Ģå®ļ": 111419, + "Ġä¼ļ": 111420, + "ĠÐŁÑĸд": 111421, + "ĠÑĩиÑĤ": 111422, + "иÑİ": 111423, + "ĠÐĹап": 111424, + "ÑĤиÑı": 111425, + "Ġê°ľë°ľ": 111426, + "ĠÑĤеоÑĢ": 111427, + "ÑıÑģÑĮ": 111428, + "ĠpÅĻÃŃprav": 111429, + "(åľŁ": 111430, + "ÙħÙĬ": 111431, + "ĠpÅĻedevÅ¡ÃŃm": 111432, + "ĠTemmuz": 111433, + "ĠподдеÑĢж": 111434, + "ĠнедоÑģÑĤаÑĤ": 111435, + "ĠìĿ´ìľł": 111436, + "Ġkhá»ıi": 111437, + "ĠاÙĦتØŃ": 111438, + "ĠÙħÙħÚ©ÙĨ": 111439, + "Ġvhod": 111440, + "евой": 111441, + "овал": 111442, + "Ġналеж": 111443, + "ï¼¼:": 111444, + "ยะ": 111445, + "ĠÙħاشÛĮÙĨ": 111446, + "Ġgá»Ńi": 111447, + "alım": 111448, + "ĠìµľìłĢ": 111449, + "ÙijÙĩ": 111450, + "á»Ļp": 111451, + "à¥Ģ।Ċ": 111452, + "ĠпиÑģ": 111453, + "ĠвÑģÑı": 111454, + "Ñĩем": 111455, + "ozenÃŃ": 111456, + "Ġäºļæ´²": 111457, + "еÑĢалÑĮ": 111458, + "기ëĬĶ": 111459, + "ĠпÑĢез": 111460, + "ĠعÙħÙĪÙħÛĮ": 111461, + "иÑĩниÑħ": 111462, + "Ġæ²³": 111463, + "odnÃŃ": 111464, + "åıªæĺ¯": 111465, + "Ġpodp": 111466, + "à¹īà¸Ńà¸ĩà¸ŀ": 111467, + "ायद": 111468, + "ाà¤ĩल": 111469, + "ลà¸Ķ": 111470, + "ĠÑĢÑĸÑĪеннÑı": 111471, + "ĠÑĤÑĥÑĢ": 111472, + "ÑģÑĮкÑĥ": 111473, + "Ġsaldır": 111474, + "ĠÐĽÑĮв": 111475, + "ãĢģĊ": 111476, + "ĠÙ¾ÛĮÙĪÙĨد": 111477, + "åŃ¦ä¹ł": 111478, + "λÏī": 111479, + "ovit": 111480, + "üle": 111481, + "女æĢ§": 111482, + "ÂŁ": 111483, + "emez": 111484, + "Ġhale": 111485, + "âī¦": 111486, + "ĠÎķκ": 111487, + "ÏĦηγοÏģία": 111488, + "ký": 111489, + "ìĦ±ìĿĦ": 111490, + "Ġtým": 111491, + "à¥ĩ-": 111492, + "Ġzejména": 111493, + "æĻ¶": 111494, + "Ġngon": 111495, + "ãĢıĊĊ": 111496, + "软件": 111497, + "éĤ£ä¹Ī": 111498, + "ĠкваÑĢÑĤи": 111499, + "ĠÙħÙĨظ": 111500, + "onec": 111501, + "Ġгли": 111502, + "à¥ģरà¤ķ": 111503, + "ĠSokol": 111504, + "Ġä¿Ŀ": 111505, + "див": 111506, + "álnÃŃm": 111507, + "acaģı": 111508, + "aÅŁa": 111509, + "ĠÙħاÙĦÛĮ": 111510, + "ĠÃĸn": 111511, + "иÑĤели": 111512, + "Ġخرد": 111513, + "Ġkullanıl": 111514, + "ĠÙħÛĮÙĦ": 111515, + "Ġíļ¨": 111516, + "ãn": 111517, + "Ġrost": 111518, + "Ġëĸł": 111519, + "ubat": 111520, + "ĠåıĤ": 111521, + "ĠبراÙĬ": 111522, + "ĠменÑĮ": 111523, + "ัà¸Ħร": 111524, + "Ġпомог": 111525, + "ĠØŃضÙĪر": 111526, + "Ġthá»ĭt": 111527, + "ä¹³": 111528, + "Ġìĭłì²Ń": 111529, + "ĠíĺĦìŀ¬": 111530, + "Ġë¹ł": 111531, + "вÑĢопей": 111532, + "Ġnejen": 111533, + "Ñĸка": 111534, + "Ġìļ¸": 111535, + "ĠÙħبار": 111536, + "ĠÄįek": 111537, + "Ġkalk": 111538, + "Ġamac": 111539, + "ادت": 111540, + "ĠÙħاسÙĩ": 111541, + "Ġarasındaki": 111542, + "ĠбеÑģ": 111543, + "ĠоÑĤделÑĮ": 111544, + "ὶ": 111545, + "ĠΤζ": 111546, + "vyk": 111547, + "جÙĨ": 111548, + "»ê²Į": 111549, + "ĠниÑĩего": 111550, + "ĠشاÙħÙĦ": 111551, + "ĠÑĥÑģловиÑıÑħ": 111552, + "laması": 111553, + "è½ī": 111554, + "ç¾½": 111555, + "Ġжид": 111556, + "ĠоÑĤноÑģ": 111557, + "ĠздÑĸйÑģнÑİ": 111558, + "ĠVỼi": 111559, + "ÙĪÙĦÛĮ": 111560, + "ĠtisÃŃ": 111561, + "ĠÏĩÏģÏĮ": 111562, + "ĠpracovnÃŃ": 111563, + "ĠÙĬÙĥÙĪÙĨ": 111564, + "ĠbeÅŁ": 111565, + "جز": 111566, + "ัà¸ļร": 111567, + "ĠYönet": 111568, + "ĠشراÛĮØ·": 111569, + "ĠتÙĪسعÙĩ": 111570, + "çĹĩ": 111571, + "à¸ĩà¹Ģà¸Ľ": 111572, + "ä¸Ģ次": 111573, + "ĠÐłÐ¾ÑģÑģийÑģкой": 111574, + "æľĢé«ĺ": 111575, + "Ġspolu": 111576, + "даеÑĤÑģÑı": 111577, + "ÑĸÑĤÑĥ": 111578, + "ĠобÑĢаÑĤ": 111579, + "enek": 111580, + "Ġmek": 111581, + "å¦Ī": 111582, + "ĠдополниÑĤелÑĮ": 111583, + "Ġç²": 111584, + "ĠÙĦÙĦت": 111585, + "ĠHaziran": 111586, + "æ¸Ī": 111587, + "à¹Įà¸Ĥà¸Ńà¸ĩ": 111588, + "ĠÑĦон": 111589, + "Ġê²ĥìľ¼ë¡ľ": 111590, + "Ġnhé": 111591, + "Ġbugün": 111592, + "ovém": 111593, + "ĠзавеÑĢ": 111594, + "Ġдвиг": 111595, + "ä¼Ļ": 111596, + "Ġnuôi": 111597, + "меÑĢик": 111598, + "ĠÙĨÙħÙĪÙĨÙĩ": 111599, + "èį·": 111600, + "Ñĥвала": 111601, + "ç¿»": 111602, + "Ġsân": 111603, + "огоÑİ": 111604, + "اسÙĬØ©": 111605, + "ÑĥнкÑĤ": 111606, + "ánÃŃm": 111607, + "енное": 111608, + "Ġphút": 111609, + "Ġमर": 111610, + "ĠاÙĦÙĪØ·": 111611, + "Ġлегко": 111612, + "ĠãĢĭ": 111613, + "ë¡ľëĵľ": 111614, + "ĠKasım": 111615, + "ÙĬÙĦÙĬ": 111616, + "ĠbaÄŁlantılar": 111617, + "ĠÑĤÑĢÑĥд": 111618, + "Ø·Ùĩ": 111619, + "Ġkvůli": 111620, + "ÑģÑĤоÑı": 111621, + "ĠsatÄ±ÅŁ": 111622, + "ĠháºŃu": 111623, + "ĠبÙĩترÛĮÙĨ": 111624, + "ĠÑģелÑĮ": 111625, + "ัà¸Ļว": 111626, + "osu": 111627, + "यन": 111628, + "åĽ³": 111629, + "ιδ": 111630, + "ÛĮتÛĮ": 111631, + "ĠQuáºŃn": 111632, + "Ġей": 111633, + "à¹Ģวลา": 111634, + "ìĬ¤íĥĢ": 111635, + "ìĤ¬ë¥¼": 111636, + "ĠاÙĩÙĦ": 111637, + "ηγ": 111638, + "Ġká»·": 111639, + "ĠнаÑĤ": 111640, + "âĢ¡": 111641, + "ÑĸÑĩниÑħ": 111642, + "ĠÑĢазвиÑĤиÑı": 111643, + "ecial": 111644, + "ĠÑħозÑı": 111645, + "ваеÑĤ": 111646, + "ĠÄIJá»Ļ": 111647, + "Ġéĵ": 111648, + "Ġokam": 111649, + "ĠвÑģÑĸÑħ": 111650, + "ĠPraze": 111651, + "ë¥ł": 111652, + "ικα": 111653, + "欲": 111654, + "ĠgerçekleÅŁ": 111655, + "ç¥ĸ": 111656, + "Ġодним": 111657, + "ÂłM": 111658, + "Ġrenk": 111659, + "Ġलà¤ķ": 111660, + "ãĥķãĤ§": 111661, + "ĠÙĨزد": 111662, + "å¹»": 111663, + "ĠúzemÃŃ": 111664, + "æı¡": 111665, + "алиÑģÑı": 111666, + "ĠÃĶ": 111667, + "Ġyorum": 111668, + "ĠÏĢÏģÏī": 111669, + "ãĥ³ãĥĩ": 111670, + "éĸĭå§ĭ": 111671, + "ãĥ¼ãĥª": 111672, + "Ġìĸ¼êµ´": 111673, + "Û±Û±": 111674, + "lÃ¼ÄŁÃ¼": 111675, + "ÙĨØ´": 111676, + "à¹Īำ": 111677, + "èĽĭ": 111678, + "Ġأد": 111679, + "ĠWilli": 111680, + "課": 111681, + "Ġsürdür": 111682, + "ĠExternÃŃ": 111683, + "Ġpůvod": 111684, + "ĠخاÙĨÙĪ": 111685, + "ĠкоÑĤоÑĢое": 111686, + "Ġmohl": 111687, + "ĠstÄĽ": 111688, + "åĩı": 111689, + "ìĤ¼": 111690, + "abancı": 111691, + "à¹ģà¸Ļ": 111692, + "สำà¸Ħ": 111693, + "æĤ£": 111694, + "abilece": 111695, + "éĺ³åŁİ": 111696, + "ÎijÎļ": 111697, + "Ġchữa": 111698, + "ĠìķĦëĭ": 111699, + "طبÙĬÙĤ": 111700, + "ÎĻÎŁÎ¥": 111701, + "ÑĢование": 111702, + "åĩ½": 111703, + "Ġì¼": 111704, + "ÑĢоÑĦ": 111705, + "à¹ĩà¸Ļส": 111706, + "ĠãĤ¦": 111707, + "ï¼ļãĢĮ": 111708, + "á»ĭa": 111709, + "ĠhPa": 111710, + "manı": 111711, + "álnÃŃho": 111712, + "ÙĪتÛĮ": 111713, + "ĠлеÑĩениÑı": 111714, + "jte": 111715, + "-д": 111716, + "åħ¨åĽ½": 111717, + "ĠбÑĥдÑĸв": 111718, + "ĠzatÃŃm": 111719, + "Ġöyle": 111720, + "ìĿ´ê°Ģ": 111721, + "stal": 111722, + "ivatel": 111723, + "Ġæľª": 111724, + "Ġpožad": 111725, + "ĠÑģни": 111726, + "ĠposlednÃŃ": 111727, + "ĠÑģÑĤанд": 111728, + "à¥Ģà¤ıम": 111729, + "Ġعکس": 111730, + "ÑĢиÑı": 111731, + "ãy": 111732, + "á»ĭp": 111733, + "Ġokul": 111734, + "à¸ĩหมà¸Ķ": 111735, + "Ġвозник": 111736, + "mÃŃ": 111737, + "秣": 111738, + "ĠÄijá»ijc": 111739, + "ĠpodÃŃ": 111740, + "ĠÅĻÃŃj": 111741, + "ĠÑĤакÑĸ": 111742, + "à¸ļาà¸Ĺ": 111743, + "Ġ보기": 111744, + "ลา": 111745, + "еÑģÑĤо": 111746, + "ĠçĶ¨": 111747, + "инÑĭ": 111748, + "ĠÑĢÑĥÑħ": 111749, + "ĠÑĢаÑģполож": 111750, + "ÑīеннÑı": 111751, + "Ġcá»Ń": 111752, + "à¹īà¸ļร": 111753, + "à¥įयवस": 111754, + "ï¾ļ": 111755, + "ĠдалÑĮ": 111756, + "Ġضد": 111757, + "ÙĦÙĬØ©": 111758, + "ĠкоÑĤоÑĢого": 111759, + "Ġdve": 111760, + "Ġnhạc": 111761, + "ÑĦÑĸка": 111762, + "à¥Īà¤Ł": 111763, + "èĩªçĶ±": 111764, + "ĠпоÑĢÑĥÑĪ": 111765, + "æľĭåıĭ": 111766, + "Ġdört": 111767, + "ĠÑĢаÑģпÑĢоÑģÑĤ": 111768, + "ãģ§ãģ¯ãģªãģĦ": 111769, + "ĠпеÑĢег": 111770, + "Ġánh": 111771, + "ĠVÃŃ": 111772, + "ظٹ": 111773, + "à¥įरण": 111774, + "Ġbilim": 111775, + "Ġlidé": 111776, + "ĠdÃŃky": 111777, + "ĠÄIJá»ĵng": 111778, + "ĠεÏģγ": 111779, + "Ġznovu": 111780, + "Ïĥια": 111781, + "Ñŀ": 111782, + "सà¤Ń": 111783, + "ekk": 111784, + "ĠμεÏĦά": 111785, + "ÑģÑĤиÑĩ": 111786, + "ÛĮÙĨÚ¯": 111787, + "ĠÑıвлÑıÑİÑĤÑģÑı": 111788, + "Ġ建": 111789, + "ÏĥÏĥα": 111790, + "авлива": 111791, + "à¸ģรม": 111792, + "ç¬Ķ": 111793, + "Ġге": 111794, + "ĠرÙĩ": 111795, + "Ġмел": 111796, + "ĠнапÑĢимеÑĢ": 111797, + "Ġмик": 111798, + "ĠاÙĦسÙĥاÙĨ": 111799, + "æ¤ľ": 111800, + "ĠÐļÑĢа": 111801, + "ĠvÃłi": 111802, + "ائÙħ": 111803, + "ĠÏĩÏģή": 111804, + "leÅŁme": 111805, + "Ġjas": 111806, + "ê²ĮìŀĦ": 111807, + "Ġmaç": 111808, + "Ġì§Ħíĸī": 111809, + "à¥ĩदन": 111810, + "Ġvůbec": 111811, + "ĠÙĦÙĨ": 111812, + "è«ĩ": 111813, + "âī¡âī¡": 111814, + "лением": 111815, + "عÙĨÛĮ": 111816, + "ãĥŀãĥ³": 111817, + "Ä°Z": 111818, + "ĠÃĸÄŁ": 111819, + "ĠìŬìŀIJ": 111820, + "yÅ¡": 111821, + "ĠÑģÑĤа": 111822, + "Ġสำหร": 111823, + "Ġनव": 111824, + "ãĢĤä½Ĩ": 111825, + "олÑĮно": 111826, + "Ġyanında": 111827, + "è²´": 111828, + "Ġjednotliv": 111829, + "ĠåİŁ": 111830, + "éłħ缮": 111831, + "Ġमदद": 111832, + "리ìĹIJ": 111833, + "ĠÙħاÙĬ": 111834, + "ĠÑĩеÑĢв": 111835, + "Ġdáv": 111836, + "ÙĦÛĮÙĩ": 111837, + "?#": 111838, + "ÄįnÃŃm": 111839, + "ÑĢег": 111840, + "ĠпÑĢименÑı": 111841, + "ãĤĬãģ¨": 111842, + "ê°Ļ": 111843, + "Ġtoplam": 111844, + "ileÅŁ": 111845, + "Ġkategor": 111846, + "ÑĤал": 111847, + "ãģ«ãĤĪãĤĭ": 111848, + "Ġdomác": 111849, + "Ġê·ľ": 111850, + "ĠÙĩزار": 111851, + "ĠpÅĻÃŃstup": 111852, + "ılıyor": 111853, + "жди": 111854, + "ĠDÆ°Æ¡ng": 111855, + "ĠPháºŃt": 111856, + "Ġçünkü": 111857, + "구ê¸ĢìĥģìľĦ": 111858, + "ovaných": 111859, + "Ġعش": 111860, + "Ġà¤ķरà¤ķ": 111861, + "žÃŃt": 111862, + "ĠvÄĽtÅ¡ÃŃ": 111863, + "ĠاÙħکاÙĨ": 111864, + "Ġnông": 111865, + "Ġzám": 111866, + "à¥Įन": 111867, + "екаÑĢ": 111868, + "ÂłÐ¢": 111869, + "kami": 111870, + "ĠÑĢеÑģÑĥÑĢ": 111871, + "поÑģ": 111872, + "ÙİÙĤ": 111873, + "ίλ": 111874, + "ĠسازÛĮ": 111875, + "Ġçıkan": 111876, + "ĠdÃŃtÄĽ": 111877, + "ĠتصÙĪ": 111878, + "ç¯ĩ": 111879, + "нд": 111880, + "Ġrámci": 111881, + "hong": 111882, + "ĠÑģÑĸм": 111883, + "sak": 111884, + "кеÑĤ": 111885, + "дÑĸл": 111886, + "ç¹Ķ": 111887, + "ĠthÆ°á»Łng": 111888, + "ĠнеÑĹ": 111889, + "зÑĸ": 111890, + "ÅĻÃŃd": 111891, + "ितन": 111892, + "à¤ıà¤ķ": 111893, + "Ġsữa": 111894, + "ĠÙħرØŃ": 111895, + "éŀ": 111896, + "ĠcÆ°á»Ŀng": 111897, + ":.:": 111898, + "ÑĤен": 111899, + "èī¦": 111900, + "Ġkhợi": 111901, + "Ġ기ì¤Ģ": 111902, + "lanır": 111903, + "彩票": 111904, + "ضÛĮ": 111905, + "Ġuzav": 111906, + "Ġboh": 111907, + "èm": 111908, + "Ġæ£": 111909, + "nici": 111910, + "(çģ«": 111911, + "åħ³äºİ": 111912, + "ÑĸÑĩнÑĸ": 111913, + "à¸ģารà¸ĵ": 111914, + "Ġ첫": 111915, + "ÑĢÑĥеÑĤ": 111916, + "ĠarÅŁivlendi": 111917, + "ÑĤим": 111918, + "à¸²à¸ł": 111919, + "Ġبرابر": 111920, + "Ġà¹Ģà¸ĭ": 111921, + "ĠÄijêm": 111922, + "è·³": 111923, + "Ġyönetim": 111924, + "Ġéķ·": 111925, + "ãĥĨãĥ¬ãĥĵ": 111926, + "маÑĤи": 111927, + "责任": 111928, + "ickým": 111929, + "è¸": 111930, + "à¹Ģหà¸ķ": 111931, + "ëłĮ": 111932, + "ĠرÙĬ": 111933, + "ĠвÑĭдел": 111934, + "åĩºçİ°": 111935, + "ĠпеÑģ": 111936, + "Ġì¢ĭìĿĢ": 111937, + "Ġà¤īसन": 111938, + "ĠAralık": 111939, + "ĠÑĩаÑģÑĥ": 111940, + "lava": 111941, + "Ġï½ŀ": 111942, + "æģĭ": 111943, + "دÛĮد": 111944, + "âĢĻden": 111945, + "ĠåĪĿ": 111946, + "ÙĪدة": 111947, + "Ñĩили": 111948, + "ĠÑħаÑĢакÑĤеÑĢиÑģÑĤи": 111949, + "استاÙĨ": 111950, + "दर": 111951, + "ĠبÙĪدÙĨ": 111952, + "ĠпалÑĮ": 111953, + "ĠÑĤÑĢади": 111954, + "ĠдеÑı": 111955, + "Ġخش": 111956, + "ĠpokraÄį": 111957, + "Ġ구ê¸Ģ": 111958, + "ковÑĸ": 111959, + "Ġtık": 111960, + "Ġhấp": 111961, + "Ġzalož": 111962, + "१à¥": 111963, + "Ġëĭµë³Ģ": 111964, + "меÑĪ": 111965, + "íļ¨": 111966, + "Ġspolup": 111967, + "ËĨ": 111968, + "辦": 111969, + "Ġgá»Ĺ": 111970, + "Ġå®ļ": 111971, + "ĵn": 111972, + "asından": 111973, + "-ı": 111974, + "ĠбеÑĢез": 111975, + "大åѸ": 111976, + "Ġзнов": 111977, + "ĠHoÃłng": 111978, + "ĠدÙĪÙĨ": 111979, + "Ġanlay": 111980, + "ĠÙĪزار": 111981, + "ĠعÙĦÙħÛĮ": 111982, + "è£ľ": 111983, + "Ġdünya": 111984, + "ĠзалиÑĪ": 111985, + "даеÑĤ": 111986, + "νε": 111987, + "иÑĩеÑģкого": 111988, + "ìĬ¤íħľ": 111989, + "ĠÐijеÑĢ": 111990, + "Ġдж": 111991, + "ĠопаÑģ": 111992, + "ÏĨα": 111993, + "Ġzvlá": 111994, + "Ġtô": 111995, + "беÑĢ": 111996, + "ĠξαÏģ": 111997, + "tiÄŁini": 111998, + "ãĥ¬ãĥ³": 111999, + "ĠKho": 112000, + "ĠÑĸнÑĪ": 112001, + "Ġï¿¥": 112002, + "ì°¬": 112003, + "。": 112004, + "ĠноÑĩ": 112005, + "è¨Ĭ": 112006, + "ÄĽti": 112007, + "å¿Ļ": 112008, + "ĠکردÙĨد": 112009, + "ĠÄijẩy": 112010, + "ĠÑģказав": 112011, + "ëĥ¥": 112012, + "屬": 112013, + "Ġशहर": 112014, + "ĠÚ©ÙħÚ©": 112015, + "ÂłÐŁ": 112016, + "ınca": 112017, + "нÑĸвеÑĢÑģиÑĤ": 112018, + "ĠÚ¯ÙĪÙĨÙĩ": 112019, + "ĠToplam": 112020, + "ĠiÅŁaret": 112021, + "ä½łä»¬": 112022, + "Ġderece": 112023, + "ĠìĤ¬ìĭ¤": 112024, + "ĠìŀIJ기": 112025, + "å®ŀçİ°": 112026, + "çĶŁçī©": 112027, + "ãģ®ä¸Ģ": 112028, + "ĠÑĢом": 112029, + "ÙĪزÙĩ": 112030, + "Ġãģ¨": 112031, + "íĻį": 112032, + "ÙĬÙĤ": 112033, + "ĠåIJįçĦ¡ãģĹãģķãĤĵ": 112034, + "ĠÙ¾ÛĮر": 112035, + "Ġполез": 112036, + "충": 112037, + "ĠкоÑĢп": 112038, + "IJëĭ¤": 112039, + "ừa": 112040, + "ÎķΤ": 112041, + "Ġжелез": 112042, + "ãģ£ãģ±": 112043, + "Ġxuyên": 112044, + "Ġë¥": 112045, + "à¥ĩ।Ċ": 112046, + "ĠÑģÑĤали": 112047, + "ĠpomocÃŃ": 112048, + "Ġdurumda": 112049, + "ĠпÑĢоÑĪ": 112050, + "lenÃŃ": 112051, + "βολ": 112052, + "Ġæĸĩç«ł": 112053, + "tÄĽz": 112054, + "dÃŃl": 112055, + "Ġdruhé": 112056, + "ĠÑĤогда": 112057, + "Ġhrá": 112058, + "оÑĤÑĮ": 112059, + "าà¸ģร": 112060, + "ĠتصÙħ": 112061, + "ĠÙħدت": 112062, + "кадем": 112063, + "ĠpatÅĻÃŃ": 112064, + "ä¹ĭåīį": 112065, + "سبة": 112066, + "ĠпокÑĢÑĭ": 112067, + "Ġnáp": 112068, + "Ġ_{}": 112069, + "ëĵ±íķĻêµIJ": 112070, + "ĠØ¥ÙĦÙĬ": 112071, + "Ġözg": 112072, + "çļĨ": 112073, + "Ġhayvan": 112074, + "ĠNisan": 112075, + "غاز": 112076, + "Ġتت": 112077, + "ĠдÑĥÑħов": 112078, + "ĠÐŁÐ¾ÑįÑĤомÑĥ": 112079, + "ÑĮогод": 112080, + "ĠkuÅŁ": 112081, + "Ġà¤ĩसम": 112082, + "جÛĮ": 112083, + "ĠãĤ¿": 112084, + "ĠвкÑĥÑģ": 112085, + "çĢ": 112086, + "ĠвÑĭÑĪе": 112087, + "âĢĻdan": 112088, + "ĠاØŃÙħد": 112089, + "Ġtalep": 112090, + "ĠÏĪ": 112091, + "Ġdolayı": 112092, + "Ġگزارش": 112093, + "бол": 112094, + "ĠاÛĮÙĨتر": 112095, + "ÑĢоÑĩ": 112096, + ")âĢı": 112097, + "ĠëIJł": 112098, + "Ġkoup": 112099, + "(æľĪ": 112100, + "é±¼": 112101, + "ĠогÑĢа": 112102, + "ĠÑĢазм": 112103, + "Ġتست": 112104, + "ĠpÅĻÃŃslu": 112105, + "íĽĪ": 112106, + "ĠëĮĢíķ´": 112107, + "à¹ģà¸Ľ": 112108, + "аннÑĭе": 112109, + "ĠìĿ¸íĦ°": 112110, + "Ġkullanılan": 112111, + "Ġztr": 112112, + "æĬĢè¡ĵ": 112113, + "à¤¿à¤Ľ": 112114, + "ĠاÙĦÙħؤ": 112115, + "ovaly": 112116, + "ustos": 112117, + "Ġörg": 112118, + "Ġ太": 112119, + "ειο": 112120, + "ĠuÄį": 112121, + "ĠØ´Ú©ÙĦ": 112122, + "建çŃij": 112123, + "Ġchạy": 112124, + "ĠÏĩÏģη": 112125, + "нÑĥÑĤ": 112126, + "Ġباعث": 112127, + "ĠNÄĽkter": 112128, + "ÑĥÑĤÑĤÑı": 112129, + "ãģ§ãģĻãģĭ": 112130, + "Ġsayılı": 112131, + "имоÑģÑĤÑĮ": 112132, + "ĠпиÑĤаннÑı": 112133, + "ĠkÃŃnh": 112134, + "Ġhran": 112135, + "okrat": 112136, + "Ġedilir": 112137, + "Ġà¤ķहत": 112138, + "Ġpaci": 112139, + "ालन": 112140, + "Ġиде": 112141, + "ĠZem": 112142, + "Ġslužby": 112143, + "ÑģÑĤвеннÑĭй": 112144, + "ĠØ¢ÙĨاÙĨ": 112145, + "ĠÑĤоваÑĢи": 112146, + "ĠتØŃÙħÙĬÙĦ": 112147, + "ĠYük": 112148, + "ĠкаÑĤегоÑĢ": 112149, + "íĭĢ": 112150, + "ĠкоÑģ": 112151, + "Ġобов": 112152, + "ĠprostÅĻedÃŃ": 112153, + "ĠÑģоÑģ": 112154, + "ĠÐIJлекÑģанд": 112155, + "Ġà¹Ģà¸Ĥà¸ķ": 112156, + "å¿ħé¡»": 112157, + "ัà¸Ĭ": 112158, + "ĠÙĦد": 112159, + "ãĢģä¸Ģ": 112160, + "ĠÎľÎŃ": 112161, + "ÑĥваÑĤиÑģÑı": 112162, + "æķı": 112163, + "ãĥ¼ãĥIJ": 112164, + "اÙĦÙĦÙĩ": 112165, + "ĠبÙĩا": 112166, + "åĸ¶": 112167, + "è´µ": 112168, + "æĸ¹åIJij": 112169, + "Ġì¸": 112170, + "ĠÙĨاÙħÙĩ": 112171, + "ÑĮко": 112172, + "Ġvody": 112173, + "vÃŃc": 112174, + "à¹ģà¸Ī": 112175, + "ĠعÙĦÛĮÙĩ": 112176, + "à¹ģรà¸ĩ": 112177, + "ίνα": 112178, + "ãģ¬": 112179, + "ĠÐŀп": 112180, + "Ġsayf": 112181, + "ï¼ĮçĶ±": 112182, + "ä¼´": 112183, + "ĠÑĥдоб": 112184, + "ãģ¾ãģł": 112185, + "ĠнепÑĢи": 112186, + "Âİ": 112187, + "à¤¾à¤ľà¤ª": 112188, + "plnÄĽ": 112189, + "ĠìĹĦ": 112190, + "Ġrůzn": 112191, + "Ġxếp": 112192, + "ãĥĸãĥ«": 112193, + "ĠзаÑħиÑģÑĤ": 112194, + "ĠÙħصرÙģ": 112195, + "ĠvÅ¡echno": 112196, + "ãģ®ãģĬ": 112197, + "ĠThá»ĭ": 112198, + "Ġmùa": 112199, + "¿IJ": 112200, + "ĠпÑĢинÑĨип": 112201, + "ĠاÙĨÙĤÙĦ": 112202, + "гаÑĢ": 112203, + "Ġmožnost": 112204, + "ÙĤÙĬÙĤ": 112205, + "ĠotevÅĻ": 112206, + "Ġfak": 112207, + "Ġnguy": 112208, + "бов": 112209, + "lacaÄŁ": 112210, + "اطر": 112211, + "ãģ«ãĤĪãĤĬ": 112212, + "æĺ¯åľ¨": 112213, + "Ġtầng": 112214, + "ìĿ¸ìĿ´": 112215, + "aÅĻ": 112216, + "碰": 112217, + "ÏĮμε": 112218, + "Ġê°Ī": 112219, + "ĠØ£ØŃد": 112220, + "غراÙģ": 112221, + "ĠÙĬØŃ": 112222, + "ァ": 112223, + "ĠاÙĦØŃÙĬاة": 112224, + "Ġlep": 112225, + "Ġฮ": 112226, + "tae": 112227, + "ĠlÆ°Æ¡ng": 112228, + "è½®": 112229, + "ĠзмÑĸн": 112230, + "ĠÐļиÑĹв": 112231, + "ĠмÑĸÑģÑı": 112232, + "кав": 112233, + "à¸ķะ": 112234, + "Ġmnoho": 112235, + "ĠNghá»ĭ": 112236, + "èĻİ": 112237, + "ĠãĥŁ": 112238, + "Ġpráci": 112239, + "Ġgá»ijc": 112240, + "ĠYeni": 112241, + "اضÙĬ": 112242, + "Ġèij": 112243, + "Ġкла": 112244, + "ıng": 112245, + "ÏĦεί": 112246, + "Ġbeni": 112247, + "Ġعد": 112248, + "Ġaktu": 112249, + "ĠÙĪÙĤد": 112250, + "ĠподгоÑĤов": 112251, + "Ġgiai": 112252, + "(æ°´": 112253, + "Ġsaç": 112254, + "ĠÙħÙĨاسب": 112255, + "âĸĭ": 112256, + "ÙIJÙĩ": 112257, + "éį": 112258, + "à¸Ńà¸Ĺ": 112259, + "ĠسÛĮاسÛĮ": 112260, + "olit": 112261, + "ĠاÙĦجز": 112262, + "Ø·ÙĦب": 112263, + "Ġsey": 112264, + "erence": 112265, + "ì´Į": 112266, + "ĠвнÑĥÑĤÑĢен": 112267, + "Ġà¸Ļาย": 112268, + "ĠìķĬìķĺëĭ¤": 112269, + "olik": 112270, + "æľĢåIJİ": 112271, + "仪": 112272, + "ĠÑĢÑĸд": 112273, + "è¼ĥ": 112274, + "Ġباب": 112275, + "Ñĥди": 112276, + "ĠÑģÑĤÑĥп": 112277, + "ĠÄijứng": 112278, + "ĠÅŁÃ¶yle": 112279, + "ĠíķĻìĥĿ": 112280, + "ĠвлаÑģÑĤи": 112281, + "Ġhãng": 112282, + "à¹īาว": 112283, + "ĠکاÙĩØ´": 112284, + "Ġëĵ¯": 112285, + "ĠجÙħÙĦÙĩ": 112286, + "Ġدکتر": 112287, + "adolu": 112288, + "Ġتبد": 112289, + "ظاÙħ": 112290, + "ĠznaÄį": 112291, + "ĠدÙĨÛĮ": 112292, + "Ġsạn": 112293, + "å¼±": 112294, + "ÏĢι": 112295, + "ĠçIJĨ": 112296, + "ĠÙģصÙĦ": 112297, + "инг": 112298, + "ÐļÐŀ": 112299, + "ĠСов": 112300, + "Ġziyaret": 112301, + "ĠدÙħ": 112302, + "竹": 112303, + "Ġsahibi": 112304, + "isayar": 112305, + "ÄŁa": 112306, + "ĠпеÑĢÑĸод": 112307, + "Ġsna": 112308, + "(æľ¨": 112309, + "Ġнее": 112310, + "ĠÑĦакÑĤоÑĢ": 112311, + "меж": 112312, + "åºĦ": 112313, + "ráž": 112314, + "окÑĢем": 112315, + "Ġžal": 112316, + "ิà¹Ģศษ": 112317, + "豪": 112318, + "oucÃŃ": 112319, + "ĠUlus": 112320, + "Ġtakže": 112321, + "اÙĪÙĨ": 112322, + "ниÑĤи": 112323, + "нÑĮо": 112324, + "ëį¸": 112325, + "ĠÙĥرة": 112326, + "åľ³": 112327, + "ĠArthropoda": 112328, + "ĠÑĤодÑĸ": 112329, + "Ġدرصد": 112330, + "ุรà¸ģ": 112331, + "ĠÑģвого": 112332, + "说éģĵ": 112333, + "Ġcánh": 112334, + "æĵĬ": 112335, + "Ġä¸ĭè½½": 112336, + "èī¾": 112337, + "Ġnikdy": 112338, + "خط": 112339, + "ĠÑģейÑĩаÑģ": 112340, + "ÙĪÙĬÙĦ": 112341, + "amet": 112342, + "문ìĿĺ": 112343, + "ĠEÄŁitim": 112344, + "大ä¼ļ": 112345, + "ĠbÅĻez": 112346, + "заÑĨÑĸÑı": 112347, + "Ġtyto": 112348, + "най": 112349, + "غÙħ": 112350, + "Ġé©": 112351, + "计ç®Ĺ": 112352, + "Türkiye": 112353, + "Ġmnož": 112354, + "åIJĪä½ľ": 112355, + "æľįåĭĻ": 112356, + "Ġkaždý": 112357, + "ĠÑİÑĢид": 112358, + "Ġβα": 112359, + "à¥Ĥà¤ļ": 112360, + "åIJĮãģĺ": 112361, + "Ġçĭ": 112362, + "ίÏĦ": 112363, + "ÙĪÛĮÙĨت": 112364, + "اÙĨس": 112365, + "æľĢ大": 112366, + "ĠTừ": 112367, + "éŃĶæ³ķ": 112368, + "Ġбли": 112369, + "ĠÑĤакое": 112370, + "ãģľ": 112371, + "ãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ": 112372, + "ìĿ´ë©°": 112373, + "ĠÙĤسÙħت": 112374, + "ĠоÑĨÑĸ": 112375, + "никÑĥ": 112376, + "ĠBạn": 112377, + "ĠоÑĢганÑĸз": 112378, + "üph": 112379, + "Ġizin": 112380, + "Ġï¾Ĭ": 112381, + "είÏĤ": 112382, + "à¸ĩà¹ģà¸ķ": 112383, + "ãģ¡ãĤī": 112384, + "важа": 112385, + "Ġ欧": 112386, + "ιÏİ": 112387, + "ÏĢÎŃ": 112388, + "ĠкÑĢеп": 112389, + "ĠÑĨиÑħ": 112390, + "æĦŁãģĺ": 112391, + "çķ«": 112392, + "ÙĥÙĪ": 112393, + "емо": 112394, + "žen": 112395, + "å¹³æĸ¹": 112396, + "ĠÙħجÙħÙĪعÙĩ": 112397, + "ĠÑģвои": 112398, + "ĠãĦ": 112399, + "à¸Ľà¸£à¸°à¸ģà¸Ńà¸ļ": 112400, + "ĠпÑĢоÑĤи": 112401, + "ÙĪÛĮÙĩ": 112402, + "认为": 112403, + "ÏĨÎŃ": 112404, + "иÑĩеÑģкий": 112405, + "æ¥ļ": 112406, + "Ġпап": 112407, + "δÏģο": 112408, + "Ġkullanım": 112409, + "Ġzbo": 112410, + "ĠúspÄĽ": 112411, + "ĠÙħز": 112412, + "ĠFak": 112413, + "елÑĮзÑı": 112414, + "æ´»åĭķ": 112415, + "ĠÐŁÑĢав": 112416, + "¦y": 112417, + "åĥķ": 112418, + "æijĺ": 112419, + "Ġرئ": 112420, + "ĠÏĨοÏģ": 112421, + "миÑĤ": 112422, + "Ġticaret": 112423, + "æ³ķå¾ĭ": 112424, + "年代": 112425, + "ìĪĻ": 112426, + "å¿ł": 112427, + "à¹ĩà¸Ļà¸Ĺ": 112428, + "ĠÑĥж": 112429, + "ĠÙħتØŃدÙĩ": 112430, + "Ġtrá»Ŀi": 112431, + "ĠرØŃ": 112432, + "ĠÚ©ÙĪÚĨ": 112433, + "ĠопÑĢеделен": 112434, + "ĠزÙħÛĮÙĨÙĩ": 112435, + "Ġnóng": 112436, + "Ġngủ": 112437, + "Những": 112438, + "ĠкиÑĪ": 112439, + "Ġjde": 112440, + "Ġä¸Ĭæµ·": 112441, + "åĭĩ": 112442, + "Ġtanı": 112443, + "à¹Įà¹ģละ": 112444, + "ĠÑĢаÑģÑĤвоÑĢ": 112445, + "ĠÑģÑĢедÑģÑĤв": 112446, + "Ġcán": 112447, + "Ġsystému": 112448, + "ÛĮØ·": 112449, + "ĠÑģиÑģÑĤема": 112450, + "Ġëŀ": 112451, + "ĠÑĩеÑĤ": 112452, + "éĥ¨éŨ": 112453, + "帰": 112454, + "Ġmillet": 112455, + "ĠÎķλλά": 112456, + "à¥ĩà¤ĸन": 112457, + "Ġrepubliky": 112458, + "ÑĢами": 112459, + "Ġसमस": 112460, + "Ġaçısından": 112461, + "ادÙĦ": 112462, + "ĠбеÑģп": 112463, + "ãĥ»âĶģ": 112464, + "åľŃ": 112465, + "ocu": 112466, + "kánÃŃ": 112467, + "ÙĪرش": 112468, + "ëŀµ": 112469, + "Ġçģ": 112470, + "è°ģ": 112471, + "Ġsám": 112472, + "ĠνεÏĨ": 112473, + "bilir": 112474, + "ĠmÃŃstÄĽ": 112475, + "Ġžen": 112476, + "Ġilç": 112477, + "Ġë§ģ": 112478, + "ãĢijĊ": 112479, + "ĠÙħÙĪارد": 112480, + "ĠاÙĦØ´ÙĬ": 112481, + "Ġ기ë¡Ŀ": 112482, + "Ġtady": 112483, + "à¸Ńาà¸Ī": 112484, + "ĠÑģÑĦ": 112485, + "ĠspoleÄįnost": 112486, + "Ġtématu": 112487, + "ÙħاÙħ": 112488, + "Ùħع": 112489, + "Ġлеж": 112490, + "ĠÚĨØ´Ùħ": 112491, + "ĠiÅŁlet": 112492, + "ĠÙĨسخ": 112493, + "ä¼°": 112494, + "ãģįãģª": 112495, + "ãĢĥ": 112496, + "å²Ĺ": 112497, + "ĠåŃIJ": 112498, + "Ġbảng": 112499, + "çĮ®": 112500, + "Ġcứng": 112501, + "ĠкÑĢай": 112502, + "Ġèĭ±è¯Ń": 112503, + "ÐłÐIJ": 112504, + "زÙĨ": 112505, + "èĥŀ": 112506, + "Ġsüreç": 112507, + "ãĥķãĥĪ": 112508, + "ĠкÑĸлÑĮка": 112509, + "neÄŁin": 112510, + "ovány": 112511, + "лÑĸн": 112512, + "Ġvýraz": 112513, + "ĠÑģÑĩиÑĤа": 112514, + "ĠпÑĢавило": 112515, + "ĠиÑģполÑĮзÑĥ": 112516, + "Ġkéo": 112517, + "ĠyaklaÅŁÄ±k": 112518, + "ĠÙĪابستÙĩ": 112519, + "оваÑĤелÑĮ": 112520, + "Ġì²ł": 112521, + "ĠاÙĦعاÙħ": 112522, + "åĿı": 112523, + "Ġà¸ī": 112524, + "ĠSÆ¡n": 112525, + "λιο": 112526, + "ì¶Ķì²ľ": 112527, + "Ġslužeb": 112528, + "ĠдеÑıÑĤелÑĮноÑģÑĤи": 112529, + "зм": 112530, + "Ġпози": 112531, + ".;.;": 112532, + "ĠпÑĢоиÑģÑħодиÑĤ": 112533, + "ายà¹ĥà¸Ļ": 112534, + "çļĦãģ«": 112535, + "Ġà¤ĩसस": 112536, + "омеÑĤ": 112537, + "ĠαÏģ": 112538, + "ाà¤Ĺर": 112539, + "icÃŃch": 112540, + "Ġpoložky": 112541, + "골": 112542, + "æĥĬ": 112543, + "Ġöner": 112544, + "Ġxảy": 112545, + "ĠÙĨظرÛĮ": 112546, + "Ġnghá»ī": 112547, + "Ġà¸ľà¸¥": 112548, + "ĠÑĢолÑĮ": 112549, + "ĠÑĢемон": 112550, + "صÙĪر": 112551, + "Vý": 112552, + "ĠSá»ij": 112553, + "ĠÑģÑĥÑĩаÑģ": 112554, + "หย": 112555, + "ĠاÙĤداÙħ": 112556, + "Ġerkek": 112557, + "Ġèį": 112558, + "ĠÄijôi": 112559, + "ĠконкÑĢеÑĤ": 112560, + "æ¬Ĭ": 112561, + "Ġ缮": 112562, + "ÙĪÚ©": 112563, + "lıkla": 112564, + "Ġpazar": 112565, + "άνÏī": 112566, + "ÑĥÑģÑĤа": 112567, + "ãģªãģŁ": 112568, + "ĠÙĩÙĨÚ¯": 112569, + "Ð®ÐĽ": 112570, + "Ġвелик": 112571, + "ĠnhỼ": 112572, + "ĠìĭľíĹĺ": 112573, + ")ìĿĺ": 112574, + "ÙĥÙĩ": 112575, + "Ġà¹ģล": 112576, + "Û²Ûµ": 112577, + "ĠارساÙĦ": 112578, + "ĠокÑĢем": 112579, + "άÏĤ": 112580, + "ĠвÑĭÑħод": 112581, + "vÄĽtÅ¡ÃŃ": 112582, + "ĠطرÛĮÙĤ": 112583, + "ĠкоÑĢоÑĤ": 112584, + "нÑĶ": 112585, + "ãĤĬãģ«": 112586, + "Ġä¹Ł": 112587, + "ØŃص": 112588, + "عÙħاÙĦ": 112589, + "olojik": 112590, + "Ġرابط": 112591, + "çªĹ": 112592, + "Ġgiz": 112593, + "Ġchết": 112594, + "樣": 112595, + "สà¸ĩ": 112596, + "ÙĪتر": 112597, + "ĠÑıкÑĥ": 112598, + "çı¾åľ¨": 112599, + "ĠоÑĤÑģÑĥÑĤÑģÑĤв": 112600, + "Ġê´ijê³ł": 112601, + "Ñĸки": 112602, + "åĢ¤": 112603, + "订": 112604, + "Ġdle": 112605, + "Ġåł": 112606, + "権": 112607, + "讯": 112608, + "åĶIJ": 112609, + "Ġâĸ²": 112610, + "Ġlistop": 112611, + "Ġdatové": 112612, + "ÏĦÏĮÏĤ": 112613, + "Ġоз": 112614, + "δÏĮ": 112615, + "èĴĤ": 112616, + "Û³Û°": 112617, + "ãĥªãĥ¼ãĤº": 112618, + "ĠÙħرکز": 112619, + "ĠпÑĸдÑĤÑĢим": 112620, + "ĠÑģез": 112621, + "é¡ĺ": 112622, + "Ġolacaktır": 112623, + "æºĢ": 112624, + "ĠÏĢεÏģιο": 112625, + "ÑĦа": 112626, + "ÏĦηÏĥη": 112627, + "ç»ĥ": 112628, + "Ðŀд": 112629, + "δÏħ": 112630, + "âĦĥ": 112631, + "Ġlắp": 112632, + "ĠëĦĺ": 112633, + "طاÙĨ": 112634, + "ĠÙ¾ÙĨج": 112635, + "تاÙĨ": 112636, + "ilerinin": 112637, + "ÃĪ": 112638, + "ĠØ®ÙĪØ´": 112639, + "ĠìĬ¬": 112640, + "ĠاÙĦرئÙĬس": 112641, + "ẵn": 112642, + "Ġشار": 112643, + "eru": 112644, + "жив": 112645, + "à¸Ļาย": 112646, + "Ġsẻ": 112647, + "Ġà¤īà¤ļ": 112648, + "ãģ«ãģĭ": 112649, + "ç¡Ģ": 112650, + "Ġyürüt": 112651, + "ĠСеÑĢг": 112652, + "ĠкаÑģ": 112653, + "ĠÐijог": 112654, + "Ġìĸ´ëĸ»ê²Į": 112655, + "ĠçŁ³": 112656, + "Ġöldür": 112657, + "лÑĸв": 112658, + "ĠhoÃłng": 112659, + "Ġbá»Ļt": 112660, + "çŀ¬": 112661, + "Ġ침": 112662, + "Nếu": 112663, + "Ġnevy": 112664, + "Ġìľ¤": 112665, + "ĠsouÄįást": 112666, + "ısıyla": 112667, + "Ġtüket": 112668, + "bou": 112669, + "Ġдво": 112670, + "سط": 112671, + "å½ĵçĦ¶": 112672, + "ãĥ¨": 112673, + "ĠزادÙĩ": 112674, + "Ġéĥ¨": 112675, + "ĠرÙĪØŃ": 112676, + "Ġï¼į": 112677, + "ĠмÑĸÑģÑĨев": 112678, + "θεν": 112679, + "à¸Ĩ": 112680, + "ленÑĸ": 112681, + "çį²": 112682, + "ĠHOH": 112683, + "sın": 112684, + "ิà¸ķร": 112685, + "財": 112686, + "ĠpÅĻid": 112687, + "à¹Ģหà¸Ļ": 112688, + "lý": 112689, + "è¨Ģèijī": 112690, + "à¤ĵ": 112691, + "âĸįâĸįâĸįâĸįâĸįâĸįâĸįâĸį": 112692, + "باب": 112693, + "ãĥ¼ãĥķ": 112694, + "моÑĢ": 112695, + "è¿ĩç¨ĭ": 112696, + "ĠãĥĽ": 112697, + "ĠKinh": 112698, + "íķľêµŃ": 112699, + "Ġìĸ´ëĸ¤": 112700, + "ĠвлиÑı": 112701, + "Ġfayd": 112702, + "ĠصÙĨع": 112703, + "Ġalır": 112704, + "ĠettiÄŁi": 112705, + "άκ": 112706, + "imizin": 112707, + "ัà¸ļà¸ľ": 112708, + "ĠземелÑĮ": 112709, + "ÙĬÙĦاد": 112710, + "涨": 112711, + "çıł": 112712, + "Ġأغ": 112713, + "Ġzku": 112714, + "âĢŀA": 112715, + "าà¸ķร": 112716, + "ayi": 112717, + "ãĥ©ãĤ¹": 112718, + "ило": 112719, + "ĠÄijá»į": 112720, + ".Îķ": 112721, + "ëľ": 112722, + "ĠμÏĢοÏģεί": 112723, + "帶": 112724, + "Ġartır": 112725, + "าà¸į": 112726, + "å¿ĺ": 112727, + "talya": 112728, + "ĠpozdÄĽji": 112729, + "ĠnepÅĻ": 112730, + "Ġæ¹": 112731, + "اÙĩÛĮ": 112732, + "Ġsatın": 112733, + "Ġë²Į": 112734, + "جÙĪ": 112735, + "ä¸Ģ缴": 112736, + "ìķĦìļĶ": 112737, + "ÂłP": 112738, + "ĠØĽ": 112739, + "Ġпал": 112740, + "表æĥħ": 112741, + "Ġcanlı": 112742, + "æĪIJ为": 112743, + "ÙĪÙĨا": 112744, + "ĠâĢ¯": 112745, + "à¸ģำล": 112746, + "åįĸ": 112747, + "ĠαÏĥ": 112748, + "инок": 112749, + "амп": 112750, + "ลà¸Ńà¸ĩ": 112751, + "ÙĤÙĤ": 112752, + "ĠпÑĢоÑħод": 112753, + "ãĤĦãĤĭ夫": 112754, + "Ïĩη": 112755, + "貨": 112756, + "ĠÙģÙĬÙĩ": 112757, + "ÙĬرÙĬ": 112758, + "ĠвнеÑĪ": 112759, + "Ġkarak": 112760, + "Ø«ÙĦ": 112761, + "ÙĩÙĪرÛĮ": 112762, + "اÙĪرپ": 112763, + "ĠÄijá»ı": 112764, + "jiÅ¡tÄĽnÃŃ": 112765, + "تبر": 112766, + "Ġê·¸ê²ĥ": 112767, + "Ġgül": 112768, + "ĠпокÑĥп": 112769, + "lilik": 112770, + "Ġzda": 112771, + "åīįãģ«": 112772, + "ĠÙħÙĩÙĨد": 112773, + "ĠÎijÎĿ": 112774, + "ĠÚ©ÛĮÙĦÙĪÙħتر": 112775, + "ĠpÅĻeh": 112776, + "алеж": 112777, + "Ġkayn": 112778, + "访": 112779, + "Ġì¤ijêµŃ": 112780, + "ĠÑĪиÑĢок": 112781, + "ĠÙħشارکت": 112782, + "âĢĤ": 112783, + "ĠíŤ": 112784, + "ĠìłľíĴĪ": 112785, + "ĠØ´ÛĮر": 112786, + "esinden": 112787, + "ÑĢÑĸÑĩ": 112788, + "èı²": 112789, + "ÑģкоÑĢ": 112790, + "etik": 112791, + "à¸²à¸ľ": 112792, + "ĠطبÛĮ": 112793, + "κÎŃ": 112794, + "ĠìŀĪìĸ´": 112795, + "Ġdek": 112796, + "ÑĢÑĸй": 112797, + "åĨĴ": 112798, + "nÃŃci": 112799, + "®¤": 112800, + "ĠÙħرتب": 112801, + "Ġyazı": 112802, + "üslü": 112803, + "ìľ¼ëĤĺ": 112804, + "elerine": 112805, + "ĠyoÄŁun": 112806, + "Ġбак": 112807, + "ÎĻÎŁ": 112808, + "άλÏħ": 112809, + "ç´Ļ": 112810, + "ĠÑĢÑĥками": 112811, + "Ġçözüm": 112812, + "ìłķìĿĦ": 112813, + "Ġgüçlü": 112814, + "λÏĮ": 112815, + "Ġbelli": 112816, + "ÃŃÅ¡e": 112817, + "ĠÏĮÏĢÏīÏĤ": 112818, + "ĠnaÅ¡": 112819, + "Ġpár": 112820, + "ÑĪÑĤ": 112821, + "ĠìĨ¡": 112822, + "à¥Ĥरत": 112823, + "ĠÏĢολÏį": 112824, + "ç°¡": 112825, + "èĤ¯": 112826, + "æ¹¾": 112827, + "Ġäºĭ": 112828, + "Ġबस": 112829, + "Ġ무ë£Į": 112830, + "дина": 112831, + "誰": 112832, + "леж": 112833, + "ĠúÅĻad": 112834, + "ĠоÑģвÑĸÑĤи": 112835, + "ĠвÑĸдÑĩ": 112836, + "ĠпÑĢизнаÑĩ": 112837, + "çĶ³è¯·": 112838, + "'ya": 112839, + "ä¿Ĭ": 112840, + "ĠÙĬÙĪÙĨ": 112841, + "Ġسع": 112842, + "ĠÐĶаÑĤа": 112843, + "è¨ĢãģĨ": 112844, + "ĠØŃتÛĮ": 112845, + "ĠJiÅĻÃŃ": 112846, + "ĠХаÑĢ": 112847, + "éĻĪ": 112848, + "à¹Īาà¸Īะ": 112849, + "Ġsayesinde": 112850, + "ĠÑĤÑĢеба": 112851, + "ê°Ģì§Ģ": 112852, + "Ġyemek": 112853, + "è¦ļ": 112854, + "ặn": 112855, + "ãĢĢãĢĢãĢĢãĢĢĠãĢĢ": 112856, + "Ġ举": 112857, + "ĠÙĪا": 112858, + "ĠÙħÙĪس": 112859, + "Ġкоманд": 112860, + "Ġseçim": 112861, + "ÑĩеннÑı": 112862, + "Ġtotiž": 112863, + "Ġrá»Ńa": 112864, + "ıa": 112865, + "Ø¢Ùħ": 112866, + "ÑĨÑĸон": 112867, + "::::::::::::": 112868, + "ÐĿÐIJ": 112869, + "ıza": 112870, + "hend": 112871, + "Ġफर": 112872, + "ัà¸Ķà¸ģาร": 112873, + "ĠCách": 112874, + "ĠпоÑĤÑĸм": 112875, + "Ġá¼Ģ": 112876, + "اÙĦا": 112877, + "ỡ": 112878, + "رÛĮÙħ": 112879, + "宫": 112880, + "ĠزÙħÛĮÙĨ": 112881, + "ÑĢеÑģÑĤ": 112882, + "баÑĩ": 112883, + "Ùĩرست": 112884, + "ног": 112885, + "ï¼Į大": 112886, + "ĠëĺIJíķľ": 112887, + "Ġzůst": 112888, + "ĠÐĴона": 112889, + "å¤ĩ份": 112890, + "ĠاÙģت": 112891, + "oje": 112892, + "ÑģкÑĸлÑĮки": 112893, + "Ġnhẹ": 112894, + "ĠкеÑĢÑĸв": 112895, + "ῦ": 112896, + "æĸ¹æ¡Ī": 112897, + "заÑĨиÑı": 112898, + "ĠвÑĸдповÑĸдно": 112899, + "ãĤ¤ãĤ¹": 112900, + "гал": 112901, + "ĠобÑĭÑĩно": 112902, + "اÙĪرپÙĪÛĮÙĨت": 112903, + "å®ľ": 112904, + "losti": 112905, + "è¿Ľåħ¥": 112906, + "uyordu": 112907, + "벤íĬ¸": 112908, + "æīĭãĤĴ": 112909, + "ÐŁÐ¾Ð´": 112910, + "ĠÙħØŃدÙĪد": 112911, + "ĠØ¢Ùħد": 112912, + "arakter": 112913, + "çļĦ大": 112914, + "Ġsıcak": 112915, + "lant": 112916, + "Ġdấu": 112917, + "ĠÙĨÚ©": 112918, + "èĢħãģ®": 112919, + "Ġkendini": 112920, + "ĠпаÑĨи": 112921, + "Ġ기íĥĢ": 112922, + "ĠвмеÑģÑĤе": 112923, + "ваеÑĤÑģÑı": 112924, + "Ġë§ī": 112925, + "ĠchvÃŃli": 112926, + "Ø®ÛĮ": 112927, + "ÙĦع": 112928, + "nÃŃky": 112929, + "、:": 112930, + "ëIJľëĭ¤": 112931, + "ì§ķ": 112932, + "ĠквÑĸÑĤ": 112933, + "¨ìĸ´": 112934, + "liž": 112935, + "Ġë¹Ħë°Ģê¸Ģ": 112936, + "Ġkhá»iji": 112937, + "Ġë°©ìĨ¡": 112938, + "echan": 112939, + "Ġзаконодав": 112940, + "ĠакÑĤ": 112941, + "ë¬¸ìłľ": 112942, + "ĠNó": 112943, + "ĠçĤ¹": 112944, + "hledem": 112945, + "ĠÑģвоÑĹÑħ": 112946, + "ĠرÙĤÙħ": 112947, + "æĽ¼": 112948, + "िवर": 112949, + "åİļ": 112950, + "ĠÐļод": 112951, + "à¤Ńà¤Ĺ": 112952, + "ìŀIJëĬĶ": 112953, + "à¸Ļม": 112954, + "ÑĥÑģа": 112955, + "Ġgünü": 112956, + "ĠÄijÃŃch": 112957, + "Ġtrữ": 112958, + "å·»": 112959, + "éĵ¶è¡Į": 112960, + "ØŃÙĨ": 112961, + "讨": 112962, + "γÏĩ": 112963, + "ὸ": 112964, + "alarında": 112965, + "Ġkaf": 112966, + "ÙĪاج": 112967, + "ĠиÑģклÑİÑĩ": 112968, + "Ġnhiá»ħ": 112969, + "á»įt": 112970, + "ĠìĽ¹": 112971, + "ĠéĿ¢": 112972, + "ãģ®ãģĮ": 112973, + "Ġмало": 112974, + "ÑĸлÑĸ": 112975, + "Ġbiên": 112976, + "nému": 112977, + "пÑĢимеÑĢ": 112978, + "âĸłâĸł": 112979, + "Ġkamp": 112980, + "ĠвеÑī": 112981, + "Äįem": 112982, + "à¥ģध": 112983, + "æŁ»": 112984, + "تÙĪÙĨ": 112985, + "åıªæľī": 112986, + "ãģ¯ãģĦ": 112987, + "Ġรวม": 112988, + "ãĤŀ": 112989, + "ãģĻãĤĭãģ¨": 112990, + "å¾Īå¤ļ": 112991, + "à¹Īà¸ķ": 112992, + "ĠsvÄĽta": 112993, + "Ġê°Ģ격": 112994, + "Ú¯Ùĩ": 112995, + "andaÅŁ": 112996, + "ãĥªãĤ¹": 112997, + "Ïīμα": 112998, + "ĠØ®ÙĪب": 112999, + "ç´ħ": 113000, + "ÑĩиÑģ": 113001, + "ì¢Į": 113002, + "ĠØŃضرت": 113003, + "ĠвиÑĢÑĸÑĪ": 113004, + "پر": 113005, + "Ġtýd": 113006, + "Ġkontro": 113007, + "дейÑģÑĤв": 113008, + "ãģŁãĤģãģ«": 113009, + "ìī": 113010, + "миниÑģÑĤÑĢа": 113011, + "âĢ¯": 113012, + "åīij": 113013, + "ниÑĨÑĸ": 113014, + "å¦ĩ": 113015, + "ĠлиÑĪ": 113016, + "ãģ£ãģ¦ãĤĭ": 113017, + "наÑĢÑĥж": 113018, + "ÑīиÑħ": 113019, + "ÏĦοκ": 113020, + "ováno": 113021, + "ترÙĦ": 113022, + "ÑĢек": 113023, + "غات": 113024, + "Ġomez": 113025, + "ìĵ°": 113026, + "ĠÃľl": 113027, + "ï½Ĵ": 113028, + "lıģını": 113029, + "Ġvượt": 113030, + "ĠbÄĽÅ¾": 113031, + "ÃľR": 113032, + "Ġãĥ¾": 113033, + "ĠdoÄŁal": 113034, + "Ġhatır": 113035, + "Ġsvým": 113036, + "ì§ĢëıĦ": 113037, + "à¹Ģà¸łà¸Ĺ": 113038, + "Ġvay": 113039, + "ĠæĻĤ": 113040, + "à¥įवप": 113041, + "Ġplo": 113042, + "é¢Ħè§Ī": 113043, + "Ġçıktı": 113044, + "ĠدÙĨ": 113045, + "nánÃŃ": 113046, + "ê·Ģ": 113047, + "íĺĢ": 113048, + "à¸ŀà¸ļ": 113049, + "muÅŁtur": 113050, + "å®ĺæĸ¹": 113051, + "ĠíĶĦë¡ľê·¸ëŀ¨": 113052, + "éĢŁåº¦": 113053, + "lerdir": 113054, + "ÑĩеÑģкого": 113055, + "ĠÄ°nsan": 113056, + "âĶĥ": 113057, + "Ġà¤ĩतन": 113058, + "Ð¡Ð¡Ðł": 113059, + "ĠاÙħر": 113060, + "Ġkötü": 113061, + "ÙģØ´": 113062, + "Ġboj": 113063, + "ĠÑĨÑĸÑĶÑĹ": 113064, + "Ġsöylem": 113065, + "ниÑĨÑĭ": 113066, + "ãĢĤ她": 113067, + "âĢĿ.Ċ": 113068, + "Ġmilion": 113069, + "Ġsonunda": 113070, + "зÑĥ": 113071, + "à¥įमà¤ķ": 113072, + "人åı£": 113073, + "nÄĽÅ¾": 113074, + "ĠÑģмоÑĤ": 113075, + "ĠкомплекÑģ": 113076, + "ĠзавиÑģим": 113077, + "ĠимеÑİÑĤ": 113078, + "Ġlạc": 113079, + "Ġhangi": 113080, + "ëĶ©": 113081, + "åĬ³": 113082, + "ĠvÄĽci": 113083, + "еÑĢов": 113084, + "κÏģι": 113085, + "Ġdurumu": 113086, + "ĠبÙĪاسطة": 113087, + "ĠأبÙĬ": 113088, + "ĠAÄŁustos": 113089, + "εÏĩ": 113090, + "ĠдиÑĤи": 113091, + "ÑĦика": 113092, + "ĠNÄĥm": 113093, + "Ġ기ìĪł": 113094, + "ĠhlavnÃŃ": 113095, + "ä¿ĥ": 113096, + "Ġलà¤Ĺत": 113097, + "ĠObr": 113098, + ".ย": 113099, + "ковод": 113100, + "opis": 113101, + "Ġãĥī": 113102, + "ĠبشÙĥÙĦ": 113103, + "нием": 113104, + "ĠtémÄĽÅĻ": 113105, + "ĠاÙĦØŃر": 113106, + "ĠÙĦازÙħ": 113107, + "Ġmái": 113108, + "iliÄŁi": 113109, + "ë³¼": 113110, + "Ġyık": 113111, + "ç½²": 113112, + "ÑĢава": 113113, + "Ñīин": 113114, + "ãģ«å¯¾": 113115, + "ç²¾ç¥ŀ": 113116, + "à¹īส": 113117, + "Ġtemsil": 113118, + "ÃĨ": 113119, + "ìķĶ": 113120, + "ĠпÑĢавилÑĮно": 113121, + "ÑĢоÑİ": 113122, + "Û±Û³Û¸": 113123, + "è©ŀ": 113124, + "اءة": 113125, + "ÙĪارÙĩ": 113126, + "ï¼ħ": 113127, + "ĠÐľÐ¸Ðº": 113128, + "æģ¶": 113129, + "æıĴ": 113130, + "ापन": 113131, + "ĠÚ©ÛĮÙģÛĮت": 113132, + "ĠTÃłi": 113133, + "Ġtiá»ĥu": 113134, + "ovalo": 113135, + "çĿ¡": 113136, + "Ñĩил": 113137, + "ĠлиÑĤ": 113138, + "λεÏħÏĦα": 113139, + "Ġокон": 113140, + "::|": 113141, + "вала": 113142, + "ĠÙħرکزÛĮ": 113143, + "ĠalÄ±ÅŁ": 113144, + "Ġдолжно": 113145, + "æĻĤ代": 113146, + "Ġsert": 113147, + "еÑĤом": 113148, + "ัà¸Ļย": 113149, + "åģ·": 113150, + "ĠvÃŃc": 113151, + "ĠÑħоÑĤÑı": 113152, + "alarını": 113153, + "lenmesi": 113154, + "ãĥ³ãĥIJ": 113155, + "Ġëªĩ": 113156, + "ĠỦy": 113157, + "ĠاÙĦکتر": 113158, + "vyÅ¡Å¡ÃŃ": 113159, + "責": 113160, + "주ìĭľ": 113161, + "áÅĻe": 113162, + "Ġyere": 113163, + "ãĤ¢ãĥ³": 113164, + "ĠاÙĦسعÙĪد": 113165, + "Ġآش": 113166, + "Ġchóng": 113167, + "Ġè»": 113168, + "гаÑĶ": 113169, + "ĠãģĤ": 113170, + "稳": 113171, + "δεÏĤ": 113172, + "缮çļĦ": 113173, + "Ġcevap": 113174, + "ÑģÑĤе": 113175, + "é¡¿": 113176, + "मन": 113177, + "顾": 113178, + "ĠкÑĢедиÑĤ": 113179, + "ĠÙħستÙĤ": 113180, + "ĠмиÑĤ": 113181, + "Ġtá»ĵn": 113182, + "ĠجÙĦ": 113183, + "Ä©a": 113184, + "ĠاÙĦعÙĦÙħ": 113185, + "áků": 113186, + "ĠíķĻêµIJ": 113187, + "à¸Ĺà¸Ńà¸ĩ": 113188, + "หà¸Ļà¸Ķ": 113189, + "ĠлÑĸÑĤеÑĢаÑĤÑĥ": 113190, + "ëIJł": 113191, + "άÏģÏĩ": 113192, + "ĠÙĤدرت": 113193, + "à¸Ļาà¸ĩ": 113194, + "Ġarac": 113195, + "ĠjÃŃd": 113196, + "Ġtürlü": 113197, + "íĶ½": 113198, + "ersiz": 113199, + "еним": 113200, + "Ġyüzyıl": 113201, + "ĠãģĦ": 113202, + "ĠÎļÏħ": 113203, + "Ġæļ": 113204, + "Ġpůj": 113205, + "Ġtá»Ļi": 113206, + "Ġthiên": 113207, + "Ä°S": 113208, + "Ġthúc": 113209, + "æĹģ": 113210, + "ìŀIJìĿ¸": 113211, + "Ġölüm": 113212, + "رÛĮÙģ": 113213, + "ÑĢеж": 113214, + "صاÙĦ": 113215, + "رÙģØ©": 113216, + "iếp": 113217, + "ÑıÑĤиÑı": 113218, + "Ġpoužit": 113219, + "átu": 113220, + "为ä»Ģä¹Ī": 113221, + "ìģ": 113222, + "Ġkrát": 113223, + "ĠپرÙĪÚĺÙĩ": 113224, + "ĠrozhodnutÃŃ": 113225, + "ĠÑĥнивеÑĢ": 113226, + "Ñĸйно": 113227, + "Ġåij¨": 113228, + "Ġkiá»ĥu": 113229, + "缮åīį": 113230, + "ä¿Ħ": 113231, + "ÏĦοι": 113232, + "ÑĦеÑĢен": 113233, + "uÅŁtur": 113234, + "ĠnÃŃm": 113235, + "âĢĮØ®": 113236, + "Ġủy": 113237, + "ĠÑģÑĤаÑĤи": 113238, + "ÑĩеÑģкий": 113239, + "Ġjestli": 113240, + "ĠÙ¾ÙĨ": 113241, + "Ġobce": 113242, + "ĠجÙĩاÙĨÛĮ": 113243, + "едагог": 113244, + "ãģ§ãģ®": 113245, + "Ġbuá»Ļc": 113246, + "ì¹´ì§Ģëħ¸": 113247, + "à¹ĩà¸Ħ": 113248, + "ĠÄįtvrt": 113249, + "Ġника": 113250, + "Ġвплив": 113251, + "ĠдиÑĢ": 113252, + "ĠÑģобÑģÑĤвен": 113253, + "Ġë§İìĿ´": 113254, + "æ¾³": 113255, + "ÑĢÑĥб": 113256, + "æ£ĭ": 113257, + "å£°éŁ³": 113258, + "ä¹ĥ": 113259, + "تÛĮجÙĩ": 113260, + "å¹¼": 113261, + "onya": 113262, + "ĠPlantae": 113263, + "ЧÑĤо": 113264, + "æIJŃ": 113265, + "ä½ľçĶ¨": 113266, + "ìħ¨": 113267, + "ĠкÑĢÑĥг": 113268, + "ĠÙĪÙģÙĬ": 113269, + "Ġï¼ŀ": 113270, + "ÑĪки": 113271, + "ÂłÐľ": 113272, + "اشÛĮ": 113273, + "ĠÅŀubat": 113274, + "Ġعشر": 113275, + "lif": 113276, + "ĠpoužitÃŃ": 113277, + "íĨ¡": 113278, + "Ġблок": 113279, + "èĢ¶": 113280, + "ูร": 113281, + "Ġvüc": 113282, + "Ø´ÙĪد": 113283, + "има": 113284, + "ниÑĨип": 113285, + "ìĿ´ëĵľ": 113286, + "ĠâĢIJ": 113287, + "ĠназнаÑĩ": 113288, + "Ġstrany": 113289, + "殿": 113290, + "ĠاÙĦرÙĪ": 113291, + "纸": 113292, + "åĪij": 113293, + "ï¼Įä»İ": 113294, + "Ġë©´": 113295, + "ĠпÑĢоведеннÑı": 113296, + "Ġhava": 113297, + "ĠìĹĨìĹĪëĭ¤": 113298, + "å¢ŀåĬł": 113299, + "Ú¾": 113300, + "缺": 113301, + "Ġعبار": 113302, + "Ġtắc": 113303, + "ĠinÅŁa": 113304, + "erse": 113305, + "رÙĬب": 113306, + "Ġá»ķn": 113307, + "أة": 113308, + "ĠÏĢολι": 113309, + "Ġmắc": 113310, + "Ñģол": 113311, + "æ´ŀ": 113312, + "-го": 113313, + "ç¨ĭ度": 113314, + "ĠвикоÑĢиÑģÑĤаннÑı": 113315, + "âĢŀظ": 113316, + "elerinde": 113317, + "ĠNhÆ°ng": 113318, + "stÅĻed": 113319, + "Ġhastalık": 113320, + "à¹īà¹Ģà¸Ľ": 113321, + "Ġdefa": 113322, + "ĠزÙĬ": 113323, + "اطÙĤ": 113324, + "ĠпÑĢой": 113325, + "ĠокÑĢÑĥг": 113326, + "νια": 113327, + "ladu": 113328, + "koli": 113329, + "ĠoÄŁ": 113330, + "ĠвиÑģок": 113331, + "Ðĩ": 113332, + "çĽĸ": 113333, + "ãĤıãģij": 113334, + "ãĥ¼ãĥģ": 113335, + "æ¡¥": 113336, + "ĠÅ¡koly": 113337, + "itom": 113338, + "ĠتØŃص": 113339, + "alara": 113340, + "Ġкал": 113341, + "ĠпÑĢиÑħод": 113342, + "Ġé¦ĸ页": 113343, + "Âį": 113344, + "ĠÛĮعÙĨÛĮ": 113345, + "Ġtùy": 113346, + "Ģë¡ľ": 113347, + "ëł¤ê³ł": 113348, + "áze": 113349, + "Ġек": 113350, + "èħ¹": 113351, + "ĠFakat": 113352, + "по": 113353, + "ĠÄijá»įc": 113354, + "åĪĺ": 113355, + "ázal": 113356, + "ÑĤон": 113357, + "Ú¯ÙĪ": 113358, + "ä¸Ī": 113359, + "ìĹ¼": 113360, + "ĠÙĦÙĦØ£": 113361, + "ĠEÄŁer": 113362, + "åħ±åĴĮåĽ½": 113363, + "ذر": 113364, + "ĠdaÄŁ": 113365, + "è¡Įä¸ļ": 113366, + "ê±°ëŀĺê°Ģ": 113367, + "è´Łè´£": 113368, + "Công": 113369, + "ĠÑĦилÑĮ": 113370, + "ĠаÑģ": 113371, + "Ġchẳng": 113372, + "нимаÑĤÑĮ": 113373, + "Ġifad": 113374, + "Ġìħ": 113375, + "çĪµ": 113376, + "ĠÅĻeÅ¡enÃŃ": 113377, + "åĽ½äº§": 113378, + "Ġкакой": 113379, + "Ġमध": 113380, + "ĠYar": 113381, + "obraz": 113382, + "Ġonemoc": 113383, + "ĠâĤ": 113384, + "åİŁåĽł": 113385, + "ĠÙĥرد": 113386, + "Ġآزاد": 113387, + "Ġadlı": 113388, + "ĠHizmet": 113389, + "ãĥ¼ãĥij": 113390, + "ÙĨسÙĬØ©": 113391, + "ĠвнÑĥÑĤ": 113392, + "Ġdále": 113393, + "ÎķÎ¥": 113394, + "ĠÑĥÑħ": 113395, + "ĠÑĢев": 113396, + "ĠмеÑĪ": 113397, + "ĠkoÅŁul": 113398, + "ĠاÛĮراÙĨÛĮ": 113399, + "éĺµ": 113400, + "ĠëıĻìķĪ": 113401, + "à¹Ģà¸Ł": 113402, + "ëłĪ벨": 113403, + "è¨Ńè¨Ī": 113404, + "prak": 113405, + "poÄį": 113406, + "اعدة": 113407, + "Ġasker": 113408, + "ĠÙĪÛĮÚĺÙĩ": 113409, + "ĠТеÑĢ": 113410, + "makta": 113411, + "ĠÄįtyÅĻ": 113412, + "ÂłÐ¡": 113413, + "âĢĮÚ©ÙĨÙĨد": 113414, + "ï¼Į並": 113415, + "ĠÑĢоÑģÑĸй": 113416, + "Ġunut": 113417, + "è¿Ļä¸Ģ": 113418, + "opak": 113419, + "èĢIJ": 113420, + "ĠзамеÑĤ": 113421, + "à¹Įล": 113422, + "بÙĨ": 113423, + "Ġ몰": 113424, + "Ġinsanlar": 113425, + "åı¯æĺ¯": 113426, + "梦": 113427, + "код": 113428, + "èĽĽ": 113429, + "kladnÃŃ": 113430, + "ÑĢовод": 113431, + "ĠмÑĸÑģÑĤа": 113432, + "åĩºäºĨ": 113433, + "ĠпаÑģ": 113434, + "обов": 113435, + "گاÙĩÛĮ": 113436, + "вин": 113437, + "à¥įरध": 113438, + "Ġкомпон": 113439, + "ĠаÑĤ": 113440, + "Ġadet": 113441, + "Ġãĥģ": 113442, + "Ġذات": 113443, + "ĠØŃÙĪ": 113444, + "Ġtrochu": 113445, + "à¹ģหà¸Ļ": 113446, + "Ġзавжди": 113447, + "ĠPartisi": 113448, + "ĠSavaÅŁ": 113449, + "ĠsÃŃd": 113450, + "ĠÑģон": 113451, + "رÙĬÙģ": 113452, + "Ġzcela": 113453, + "åĺ´": 113454, + "ĠÑĦÑĥÑĤ": 113455, + "ilerek": 113456, + "malıdır": 113457, + "Ġdá»±a": 113458, + "à¸Ĺำà¸ĩาà¸Ļ": 113459, + "ĠÙĪÙĦÙĥÙĨ": 113460, + "ãģªãĤĵãģł": 113461, + "ĠÚ©ÙħÛĮ": 113462, + "ĠlékaÅĻ": 113463, + "ÏģÏį": 113464, + "جÙħع": 113465, + "ınızı": 113466, + "ĠAnadolu": 113467, + "ãģ«ãĤĪãģ£ãģ¦": 113468, + "Ġê·¸ëŁ¬ëĤĺ": 113469, + "ĠíĮĶ": 113470, + "ÑĸÑĤÑĮ": 113471, + "Ġ¦": 113472, + "ä¸įè¦ģ": 113473, + "à¸ĸม": 113474, + "ĠÙĬد": 113475, + "ĠpÅĻep": 113476, + "Ġè¦ģ": 113477, + "ĠпÑĢоекÑĤ": 113478, + "ĠÑĢеги": 113479, + "Ġdạy": 113480, + "кового": 113481, + "Ġıs": 113482, + "ĠKı": 113483, + "ĠÙģÙĬÙĩا": 113484, + "ÛĮات": 113485, + "ĠÑģÑĤала": 113486, + "æĬľ": 113487, + "ÑĥÑĢа": 113488, + "ĠپاÛĮاÙĨ": 113489, + "Ġitibaren": 113490, + "анÑĸÑĹ": 113491, + "ĠоÑĦоÑĢм": 113492, + "леÑĩ": 113493, + "εξ": 113494, + "æĶ¿çŃĸ": 113495, + "Ġç½ij": 113496, + "åĤ¬": 113497, + "ĠìĿ´ëŁ°": 113498, + "ĠkardeÅŁ": 113499, + "ÑİÑīего": 113500, + "лки": 113501, + "ĠاÛĮاÙĦات": 113502, + "تÙĩا": 113503, + "ĠподÑħод": 113504, + "ĠØŃÙĪÙĦ": 113505, + "ĠÑģовÑĢем": 113506, + "íĿ¥": 113507, + "Ġ詳細": 113508, + "ıyı": 113509, + "ĠتÙĤÙĪ": 113510, + "æ¯Ķè¾ĥ": 113511, + "ĠανÏĦι": 113512, + "ĠΣΤ": 113513, + "jiÅ¡Å¥": 113514, + "ynı": 113515, + "Ġpocházet": 113516, + "-Ðļ": 113517, + "Ġзавд": 113518, + "Ùİس": 113519, + "ç»ĵæŀĦ": 113520, + "Ùħار": 113521, + "νοι": 113522, + "ĠγεÏģι": 113523, + "èĩ£": 113524, + "ĠnacházÃŃ": 113525, + "ÏĦÏİ": 113526, + "à¥įयत": 113527, + "uyu": 113528, + "æķĹ": 113529, + "ebi": 113530, + "Ġë°Ķë¡ľ": 113531, + "ĠгÑĢн": 113532, + "ĠاÙĦاس": 113533, + "Ġorgán": 113534, + "Ġedin": 113535, + "åŁĥ": 113536, + "à¹ģà¸Ħ": 113537, + "ĠØŃدÙĪد": 113538, + "ĠдÑĢÑĥгой": 113539, + "оÑģков": 113540, + "ĠSợ": 113541, + "ĠpÅĻib": 113542, + "ä¿ĿæĬ¤": 113543, + "Ùħبر": 113544, + "ĠãĥĨ": 113545, + "Ġdoz": 113546, + "optera": 113547, + "à¸´à¸¥à¸Ľ": 113548, + "دارÛĮ": 113549, + "æĦŁè§ī": 113550, + "代çIJĨ": 113551, + "ÙĨدا": 113552, + "اÙĬا": 113553, + "صÙĨ": 113554, + "Ġcelé": 113555, + "Ġè©ķ": 113556, + "à¸ĩà¸Ļ": 113557, + "Ġleh": 113558, + "èİ·å¾Ĺ": 113559, + "ãĢĢï¾ī": 113560, + "ĠìĦłìĪĺ": 113561, + "르ëĬĶ": 113562, + "à¤Ĩर": 113563, + "å§Ķåijĺ": 113564, + "æĹłçłģ": 113565, + "Ġè·": 113566, + "ĠzajÃŃm": 113567, + "ecké": 113568, + "æµľ": 113569, + "ĠÑĥнÑĸвеÑĢÑģиÑĤ": 113570, + "ĠбÑİджеÑĤ": 113571, + "à¥ĩ.": 113572, + "Ġvstup": 113573, + "ĠоÑī": 113574, + "Ġåľĭ": 113575, + "ä¸ģ缮": 113576, + "ĠведÑĮ": 113577, + "Ġë§IJìĿĦ": 113578, + "Ġteknik": 113579, + "ãĢĢï½Į": 113580, + "ĠпÑĸдвиÑī": 113581, + "ĠÑģвÑıзи": 113582, + "ĠترجÙħ": 113583, + "Âī": 113584, + "ĠÄijâu": 113585, + "ÑĸÑĩного": 113586, + "å°ijå¹´": 113587, + "ecta": 113588, + "िलत": 113589, + "ιοÏĤ": 113590, + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 113591, + "teg": 113592, + "á»īnh": 113593, + "¯¿": 113594, + "Ġnebu": 113595, + "ÙĬÙĬÙĨ": 113596, + "оÑıÑĤ": 113597, + "é¤Ĭ": 113598, + "ĠاÙĤتصادÛĮ": 113599, + "âĢĻnun": 113600, + "ĠÐĴÑĸк": 113601, + "ĠngÄĥn": 113602, + "ëĮĢíķĻêµIJ": 113603, + "éı": 113604, + "़र": 113605, + "اباÙĨ": 113606, + "ÙİÙĥ": 113607, + "Ġetkil": 113608, + "Ġchắn": 113609, + "Ġë°ľìĥĿ": 113610, + "Ġtamamen": 113611, + "ĠÙħØŃÛĮØ·": 113612, + "ülü": 113613, + "åģ¥åº·": 113614, + "ĠÑĢаÑģÑĤениÑı": 113615, + "ÏĢοί": 113616, + "Ġè¶ħ": 113617, + "áÄį": 113618, + "ĠìĻ¸ë¶Ģ": 113619, + "ĠØ®ÛĮÙĦÛĮ": 113620, + "ĠدÙĪست": 113621, + "à¹Ģà¸Ĥà¸ķ": 113622, + "Ġkalan": 113623, + "먼": 113624, + "avÄĽ": 113625, + "문íĻĶ": 113626, + "Ġдиаг": 113627, + "ĠÙĨÙĪÙĬس": 113628, + "íķij": 113629, + "à¸ŀาะ": 113630, + "ëĭ¤ê°Ģ": 113631, + "Ġniá»ĩm": 113632, + "ĠسÙĪÙħ": 113633, + "-м": 113634, + "à¸Ķำà¹Ģà¸Ļ": 113635, + "à¹ĩว": 113636, + "ãĢĤãģĵãģ®": 113637, + "ç¯ī": 113638, + "WidthSpace": 113639, + "ZeroWidthSpace": 113640, + "ائÙħØ©": 113641, + "à¹Ħà¸ĭà¸ķ": 113642, + "ä¸ĭ载次æķ°": 113643, + "ä¼¼ä¹İ": 113644, + "ĠÑĤв": 113645, + "Ġzákaz": 113646, + "Ġجدا": 113647, + "Ġgider": 113648, + "ãĥ¼ãĥĵ": 113649, + "nů": 113650, + "Ġë§ģíģ¬": 113651, + "ĠdÃ¼ÅŁÃ¼k": 113652, + "Ñĥнок": 113653, + "Ġtóc": 113654, + "ĠÑĤÑĢÑĥб": 113655, + "окÑģ": 113656, + "Ġtrải": 113657, + "Ġmiá»ħn": 113658, + "ĠthÆ°á»Ľc": 113659, + "ĠnháºŃt": 113660, + "ÂłD": 113661, + "masının": 113662, + "輪": 113663, + "ĠÎĿο": 113664, + "erç": 113665, + "Ġdokonce": 113666, + "ĠGüven": 113667, + "ovaná": 113668, + "езд": 113669, + "ÑĸнÑĮ": 113670, + "èģ²": 113671, + "اÙĦØ£": 113672, + "ï¼Įä½Ĩæĺ¯": 113673, + "ĠполноÑģÑĤÑĮÑİ": 113674, + "Portály": 113675, + "ĠØŃاÙģظ": 113676, + "à¥Ĥà¤ķ": 113677, + "ÑĢÑĥн": 113678, + "人çī©": 113679, + "Ġaçı": 113680, + "Ġporu": 113681, + "eriod": 113682, + "ĠAmerika": 113683, + "çĩŁ": 113684, + "ĠرÙĪد": 113685, + "ĠкÑĢови": 113686, + "ÙĪÙĤت": 113687, + "éĺ¶": 113688, + "ãĥ»âĶģãĥ»âĶģ": 113689, + "رÙĬÙħ": 113690, + "åİĨåı²": 113691, + "丸": 113692, + "ĠзновÑĥ": 113693, + "ĠÑģвоего": 113694, + "бÑĥдÑĮ": 113695, + "ĠØŃجÙħ": 113696, + "ĠδÏįο": 113697, + "ìķĪëĤ´": 113698, + "Ġãģ§": 113699, + "à¹Īะ": 113700, + "ÙijÙı": 113701, + "çµIJæŀľ": 113702, + "âĢĻi": 113703, + "à¹Į,": 113704, + "åŃĺäºİ": 113705, + "Ġरà¤ĸन": 113706, + "ĠسرÙħاÛĮÙĩ": 113707, + "ĠглÑĥб": 113708, + "ĠÑĢазÑĸ": 113709, + "ÑĩнÑĸ": 113710, + "ï¼ĮåıĪ": 113711, + "cısı": 113712, + "æľīåħ³": 113713, + "ãĤ»ãĥ³": 113714, + "èIJ¨": 113715, + "ĠGiáo": 113716, + "ĠاÙĦثاÙĨÙĬ": 113717, + "ĠÑĢазом": 113718, + "ĠÑĤÑĢо": 113719, + "Ġaçıklam": 113720, + "åĨ³å®ļ": 113721, + "à¸Ńà¸Ľ": 113722, + "åĶ¯": 113723, + "ĠÅŁark": 113724, + "Ġsistemi": 113725, + "Ġtoprak": 113726, + "èĢĥãģĪ": 113727, + "ĠпопÑĥлÑıÑĢ": 113728, + "ĠëĨį": 113729, + "اÙĬÙĨ": 113730, + "सम": 113731, + "ĠÂĢ": 113732, + "Ġederek": 113733, + "Ġgec": 113734, + "ìĤ¬ìĹħ": 113735, + "ĠÑĢоки": 113736, + "ĠбеÑĢем": 113737, + "ĠخاÙĨÙĪادÙĩ": 113738, + "Ġèµ·": 113739, + "ĠЧÑĤо": 113740, + "ĠobÄĽ": 113741, + "инÑĸ": 113742, + "ìĿ´ìĹĪ": 113743, + "ĠIndi": 113744, + "ĠдиÑĤ": 113745, + "ãĥ¶æľĪ": 113746, + "Ġнемного": 113747, + "ĠzákladÄĽ": 113748, + "à¹Ĥà¸Ħ": 113749, + "ĠÑģамого": 113750, + "ĠبØŃØ«": 113751, + "Ġæ¶": 113752, + "овж": 113753, + "ĠобÑĢаÑī": 113754, + "ÃĴ": 113755, + "วรร": 113756, + "à¤Ĥश": 113757, + "ĠоÑĩеÑĢед": 113758, + "ĠÙģرز": 113759, + "ëĮĢíķľ": 113760, + "Ġsizin": 113761, + "رÙģت": 113762, + "ÑİÑīим": 113763, + "æ»ij": 113764, + "avir": 113765, + "ĠÙĪصÙĦ": 113766, + "Ġquay": 113767, + "Ġгип": 113768, + "ÑĢениÑı": 113769, + "à¥įवत": 113770, + "ινÏīν": 113771, + "à¤ľà¤¹": 113772, + "ĠhÆ¡i": 113773, + "Ġpovaž": 113774, + "Ġعرب": 113775, + "менÑĤа": 113776, + "ĠоÑģÑĤан": 113777, + "ä¹ĭéĹ´": 113778, + "acÃŃch": 113779, + "ĠÑģказала": 113780, + "ìĿ´ëĿ¼ëĬĶ": 113781, + "Ġشاخ": 113782, + "Ġëĭ¹ìĭł": 113783, + "arlar": 113784, + "Ġмлн": 113785, + "åĨ¬": 113786, + ".:.:.:": 113787, + "Ġθε": 113788, + "Ġherkes": 113789, + "лÑıд": 113790, + "اÙħا": 113791, + "ĠëŃIJ": 113792, + "ÏĥιμοÏĢοι": 113793, + "Ġobraz": 113794, + "غاÙĦ": 113795, + "BÆ°á»Ľc": 113796, + "å°Ĭ": 113797, + "ìŀIJ를": 113798, + "æĢĴ": 113799, + "οÏħÏģγ": 113800, + "å¼ķãģį": 113801, + "Ġkonuda": 113802, + "ĠاÙĦتج": 113803, + "Ġkrit": 113804, + "å¿į": 113805, + "ĠìłĦìĦ¸ê°Ģ": 113806, + "говоÑĢ": 113807, + "Ġistiyor": 113808, + "оки": 113809, + "ĠобеÑģпеÑĩ": 113810, + "Ġayrıca": 113811, + "à¹Ģà¸ľ": 113812, + "аÑĢод": 113813, + "Ä°Åŀ": 113814, + "ĠجÙħÙĩÙĪرÛĮ": 113815, + "ĠÑģвоиÑħ": 113816, + "Ġprovád": 113817, + "ĠÑĢам": 113818, + "ĠÙĤض": 113819, + "лиÑĤелÑĮ": 113820, + "ãĤ±ãĥĥãĥĪ": 113821, + "оÑģоÑĦ": 113822, + "Ġरहन": 113823, + "kový": 113824, + "ì°¸": 113825, + "γκα": 113826, + "λοι": 113827, + "μÏĢο": 113828, + "ĠÄijau": 113829, + "ниÑİ": 113830, + "Ġmanžel": 113831, + "Ġíĺ¼": 113832, + "ĠÑĤиÑģ": 113833, + "ãĥĨãĥ«": 113834, + "abilecek": 113835, + "нин": 113836, + "à¸ģรรมà¸ģาร": 113837, + "éłIJ": 113838, + "Ġphê": 113839, + "jedn": 113840, + "交æµģ": 113841, + "Ġвнимание": 113842, + "обÑĢеÑĤ": 113843, + "ĠжизнÑĮ": 113844, + "ÑĢиÑģÑĤи": 113845, + "à¥Īà¤ļ": 113846, + "Ġyüzden": 113847, + "Ġgiy": 113848, + "éļĶ": 113849, + "仲": 113850, + "ĠèĻ": 113851, + "ĠParti": 113852, + "Ġéĸ¢": 113853, + "ัà¸ļส": 113854, + "ĠnejlepÅ¡ÃŃ": 113855, + "ÙİÙī": 113856, + "ĠìĿ´ìłľ": 113857, + "Ġcắt": 113858, + "ÑĢозÑĥм": 113859, + "Ġnejsou": 113860, + "lÃŃd": 113861, + "θο": 113862, + "à¹ĩà¸ĩ": 113863, + "ĠÑģпÑĢоÑģ": 113864, + "mamÄ±ÅŁ": 113865, + "Ġ쪽": 113866, + "اÙģÙĤ": 113867, + "ÑĨÑĸйниÑħ": 113868, + "Ġé¦Ļ": 113869, + "ĠÙħÛĮÙĦÛĮÙĪÙĨ": 113870, + "夢": 113871, + "ĠÙģÙĩرست": 113872, + "rý": 113873, + "ĠповÑĸдом": 113874, + "eceÄŁi": 113875, + "ĠзабезпеÑĩеннÑı": 113876, + "ÂĶ": 113877, + "ãģĹãģªãģĦ": 113878, + "åŁºç¡Ģ": 113879, + "ĠÚĨÙĨÛĮÙĨ": 113880, + "ĠÑĢозÑĢоб": 113881, + "ä¸ĢäºĽ": 113882, + "ãĥ³ãģ®": 113883, + "ĠпÑĢаÑĨÑĸв": 113884, + "å¾ĹåĪ°": 113885, + "Ġtấn": 113886, + "åŃĺæ¡£å¤ĩ份": 113887, + "ĠíĻĪ": 113888, + "Ġà¸Ķาว": 113889, + "ìĭ±": 113890, + "лина": 113891, + "ĠвоÑģпал": 113892, + "ÄŁinden": 113893, + "аÑĤелей": 113894, + "rž": 113895, + "ĠÑĦÑĥн": 113896, + "ĠÐIJл": 113897, + "ĠпоÑĩÑĤи": 113898, + "овÑĸд": 113899, + "اعب": 113900, + "าะห": 113901, + "ĠвозÑĢаÑģÑĤ": 113902, + "ิà¸ĩห": 113903, + "ĠÙģÙĦس": 113904, + "ĠÅ¡est": 113905, + "à¸Ĭาว": 113906, + "Ġ골": 113907, + "ĠoÄį": 113908, + "ãĤ¸ãĥ§": 113909, + "коÑģÑĤи": 113910, + "éĽĨåĽ¢": 113911, + "æ±ĩ": 113912, + "ĠpÅĻÃŃliÅ¡": 113913, + "ĠìĿij": 113914, + "диви": 113915, + "ĠдокÑĥменÑĤа": 113916, + "ĠChâu": 113917, + "Ġmáu": 113918, + "Ġkhô": 113919, + "Ãķ": 113920, + "Ñīий": 113921, + "Ġsẵn": 113922, + "ĠконÑĦ": 113923, + "ĠзÑĥÑģÑĤ": 113924, + "åĽŀçŃĶ": 113925, + "ĠкоÑĢиÑģÑĤ": 113926, + "ĠÏĢεÏģί": 113927, + "丰": 113928, + "Ġmạch": 113929, + "анк": 113930, + "ä¸ĭæĿ¥": 113931, + "èµĦæĸĻ": 113932, + "ยà¸Ńà¸Ķ": 113933, + "ĠÏĢιο": 113934, + "à¹īà¸ĩาà¸Ļ": 113935, + "ĠumÃŃst": 113936, + "æ½®": 113937, + "çªģçĦ¶": 113938, + "Ġkultur": 113939, + "ĠاÙĦصÙģ": 113940, + "alarının": 113941, + "ĠÎĶημο": 113942, + "ĠвиконаннÑı": 113943, + "ソ": 113944, + "ĠбезопаÑģ": 113945, + "ĠÑģаÑħ": 113946, + "Ġnoh": 113947, + "à¹ĥà¸ļ": 113948, + "éĥ½å¸Ĥ": 113949, + "ÅŁam": 113950, + "бÑĥÑĤ": 113951, + "Ġ모ìĬµ": 113952, + "Ġваг": 113953, + "çIJĨ解": 113954, + "Ġekonomik": 113955, + "Ġkhắc": 113956, + "Ġsvat": 113957, + "лиÑĪком": 113958, + "ัà¸ĩà¸Īาà¸ģ": 113959, + "izyon": 113960, + "èĥ½å¤Ł": 113961, + "ίνει": 113962, + "ÂĬ": 113963, + "ì¦Į": 113964, + "ĠÙĩاÛĮÛĮ": 113965, + "ĠkiÅŁiler": 113966, + "ĠклеÑĤ": 113967, + "íĺģ": 113968, + "à¥ĥद": 113969, + "iÅ¡": 113970, + "ëĶĶìĺ¤": 113971, + "ÙĬراÙĨ": 113972, + "ĠÐĿÑĥ": 113973, + "à¸Ńà¸Ļà¸Ĺ": 113974, + "ĠÑģоÑĩ": 113975, + "Ġisteyen": 113976, + "ĠSez": 113977, + "ĠãĤ»": 113978, + "ĠAç": 113979, + "âĢĮÙĨ": 113980, + "ĠÑĤоп": 113981, + "ĠÑĤеÑĢÑĢиÑĤоÑĢ": 113982, + "acılık": 113983, + "ĠоднÑĥ": 113984, + "Ġveri": 113985, + "Ġکد": 113986, + "ĠÚ¯ÙģتÙĩ": 113987, + "Ġcinsel": 113988, + "ологии": 113989, + "ĠpÅĻedmÄĽt": 113990, + "à¤Ĥà¤ĺ": 113991, + "Ġ空": 113992, + "γα": 113993, + "'ye": 113994, + "ترة": 113995, + "ĠdÅĻÃŃ": 113996, + "ĠHÃłn": 113997, + "ĠرشتÙĩ": 113998, + "Ġvidea": 113999, + "Ġног": 114000, + "æ·»": 114001, + "è¿ĺæľī": 114002, + "ÙĨدر": 114003, + "Ġyerde": 114004, + "Ġkent": 114005, + "à¸ļาล": 114006, + "ĠдеÑģÑı": 114007, + "ä¸ļåĬ¡": 114008, + "ĠобÑĬек": 114009, + "ĠвнÑĥÑĤÑĢÑĸÑĪ": 114010, + "kola": 114011, + "ebnÃŃ": 114012, + "ีล": 114013, + "Ġ,.": 114014, + "ĠмÑĸжнаÑĢод": 114015, + "ãģªãĤĵãģ¦": 114016, + "ĠSöz": 114017, + "Ġchod": 114018, + "Ġtrúc": 114019, + "ìļĶìĿ¼": 114020, + "ĠpháºŃn": 114021, + "Ñģка": 114022, + "ĠÑħлоп": 114023, + "Ñģким": 114024, + "Ġkapit": 114025, + "ëĵ¤ìĹIJê²Į": 114026, + "ĠbÃło": 114027, + "lıģın": 114028, + "Ä°ÅŁ": 114029, + "ÄįnÃŃk": 114030, + "ĠNgoÃłi": 114031, + "ĠبÛĮاÙĨ": 114032, + "ĠproÄį": 114033, + "ĠпÑĢоÑĤÑıгом": 114034, + "åĢī": 114035, + "еÑİ": 114036, + "Ġνο": 114037, + "ëĿ¼ëıĦ": 114038, + "ì·¨": 114039, + "ĠвиÑıв": 114040, + "Ġпонад": 114041, + "ĠжовÑĤ": 114042, + "Ġæ¯Ķ": 114043, + "Ġdoby": 114044, + "лам": 114045, + "Ñijл": 114046, + "ĠÑĢаÑħ": 114047, + "Ġвозника": 114048, + "ниÑĨÑĤво": 114049, + "層": 114050, + "ĠоÑĤлиÑĩ": 114051, + "çĤİ": 114052, + "飯": 114053, + "Ġživota": 114054, + "atör": 114055, + "Ġcelý": 114056, + "Ġaday": 114057, + "رÙĬÙĥÙĬ": 114058, + "Ġبص": 114059, + "meyen": 114060, + "ìļ°ìĬ¤": 114061, + "بÙĪÙĦ": 114062, + "Ġозна": 114063, + "麼": 114064, + "æĵļ": 114065, + "Ġzkou": 114066, + "ëĤĺìļĶ": 114067, + "Ġkry": 114068, + "Ġnemoh": 114069, + "ĠvyužÃŃ": 114070, + "Ġæľ¨": 114071, + "ĠадмÑĸнÑĸÑģÑĤÑĢа": 114072, + "اÙĩا": 114073, + "à¹ĥà¸ģล": 114074, + "________": 114075, + "ĠгоÑĤ": 114076, + "ĠدÛĮگرÛĮ": 114077, + "ĠлекаÑĢ": 114078, + "è§Ģ": 114079, + "Ġíĺij": 114080, + "ĠBöyle": 114081, + "istrov": 114082, + "女åŃIJ": 114083, + "ĠпопеÑĢед": 114084, + "ĠÙĨÙĪÙĬسÙĨدÙĩ": 114085, + "ÙĴÙĦ": 114086, + "ĠÐŁÐ°Ð²": 114087, + "Ġörnek": 114088, + "ĠпÑĢик": 114089, + "ĠÑĪи": 114090, + "üslüman": 114091, + "ĠÙħÙĤابÙĦ": 114092, + "åįģäºĮ": 114093, + "Ġbekl": 114094, + "Ġverir": 114095, + "ÙĪØ°": 114096, + "ضة": 114097, + "ÑĢоÑĤив": 114098, + "æĮij": 114099, + "..:": 114100, + "ĠخارجÙĬØ©": 114101, + "adık": 114102, + "ĠÐŁÐ¾Ñĩ": 114103, + "ĠÑħÑĥдож": 114104, + "客æĪ·": 114105, + "μον": 114106, + "ektiv": 114107, + "Ġtvá": 114108, + "Û²Û²": 114109, + "Ġlá»įc": 114110, + "Ġоно": 114111, + "ÑĨиÑĤ": 114112, + "ĠÐĴÑģ": 114113, + "Ġå¢": 114114, + "浪": 114115, + "аÑĢÑĸ": 114116, + "Ġsürekli": 114117, + "Ġstra": 114118, + "Ġbize": 114119, + "Ġtespit": 114120, + "Ġchâu": 114121, + "ĠاÙĦض": 114122, + "à¹īà¸Ńà¸ĩà¸ģ": 114123, + "ĠèĢħ": 114124, + "ĠHá»": 114125, + "ĠкаждÑĭй": 114126, + "аÑİ": 114127, + "à¸Ļà¸Ħร": 114128, + "à¸Ĺะ": 114129, + "ĠÙħراجع": 114130, + "Ġhaline": 114131, + "δοÏĤ": 114132, + "eÄŁi": 114133, + "ĠÙħÛĮزاÙĨ": 114134, + "ĠÙĩÙĦ": 114135, + "Ġbolest": 114136, + "ĠåľŁ": 114137, + "Ġuzman": 114138, + "ÑĢог": 114139, + "確èªį": 114140, + "ĠÑĢÑĸзниÑħ": 114141, + "ĠзакÑĢÑĭ": 114142, + "лÑĥги": 114143, + "ĠÑģовеÑĤ": 114144, + "iddi": 114145, + "åIJĪãĤıãģĽ": 114146, + "ĠåIJī": 114147, + "Ġkiá»ĩm": 114148, + "ë²½": 114149, + "ĠÙħعÙħÙĪÙĦ": 114150, + "ĠопÑĢеделÑı": 114151, + "Ġmiktar": 114152, + "ĠìŀIJëıĻ": 114153, + "Ġilaç": 114154, + "лоÑĩ": 114155, + "Ġyılı": 114156, + "ĠÄIJá»ĥ": 114157, + "Ġabych": 114158, + "Ġreklam": 114159, + "Ġvypad": 114160, + "ĠнаÑĥÑĩ": 114161, + "à¹Ģà¸Ħราะห": 114162, + "Ġä»ĸ": 114163, + "povÄĽ": 114164, + "ï¼Į让": 114165, + "ç¥Ŀ": 114166, + "اÙĪÙĨد": 114167, + "Ġ:|:": 114168, + "Ġrež": 114169, + "Ġvybav": 114170, + "ìľ¤": 114171, + "æŃ´": 114172, + "огÑĢаÑĦиÑı": 114173, + "ezpeÄį": 114174, + "±n": 114175, + "овÑĥ": 114176, + "ĠдÑĥма": 114177, + "Ġjednodu": 114178, + "оÑīи": 114179, + "ĠÙħشتر": 114180, + "観": 114181, + "Ġyoktur": 114182, + "ĠobÄįan": 114183, + "ĠTrần": 114184, + "ımsız": 114185, + "αιν": 114186, + "ÂĮ": 114187, + "رÛĮاÙĨ": 114188, + "ĠJeho": 114189, + "ĠاÙĦØ¢ÙĨ": 114190, + "ÑģÑĮким": 114191, + "Ġkdyby": 114192, + "ĠbaÅŁÄ±na": 114193, + "Ġprezident": 114194, + "ĠViá»ĩc": 114195, + "åħ¼": 114196, + "à¥Įà¤ľ": 114197, + "Ġ매매ê°Ģ": 114198, + "模å¼ı": 114199, + "nÃŃmu": 114200, + "ĠåĤ": 114201, + "Ġdeniz": 114202, + "ĺèĽĽ": 114203, + "ĠèĢĮ": 114204, + "ÙĪØŃ": 114205, + "Ñĭп": 114206, + "Ġâĸ¼": 114207, + "nul": 114208, + "ĠSev": 114209, + "Ġruh": 114210, + "Ġhạ": 114211, + "ĠÑıн": 114212, + "Ġ기본": 114213, + "Ġvelik": 114214, + "ĠTân": 114215, + "илиÑģÑĮ": 114216, + "ĠÑħÑĢа": 114217, + "åĤ·": 114218, + "Ġà¤Ĩà¤ı": 114219, + "ĠnynÃŃ": 114220, + "»ØĮ": 114221, + "Ġشع": 114222, + "æĿĤ": 114223, + "ĠмÑĭÑĪ": 114224, + "ãģĻãģIJ": 114225, + "Ġê³µì§Ģ": 114226, + "Ġtá»Ļc": 114227, + "ãĥ¼ãĥĩ": 114228, + "ĠÑģело": 114229, + "ĠاعÙĦاÙħ": 114230, + "ĠÅŁimdi": 114231, + "ĠاÙĦÙħÙĬÙĦاد": 114232, + "ĠاÙĨÙĤÙĦاب": 114233, + "ĠشخصÙĬØ©": 114234, + "ĠKür": 114235, + "ĠвÑĸÑĤ": 114236, + "ĠاÙĨدازÙĩ": 114237, + "ĠмоÑī": 114238, + "ternet": 114239, + "ĠαÏħÏĦή": 114240, + "ĠÑĢозÑĤа": 114241, + "Ġвив": 114242, + "lej": 114243, + "Ġ表": 114244, + "ÏĥÏĥÏĮÏĦε": 114245, + "ĠÙĬست": 114246, + "ĠмаÑĪ": 114247, + "åĿļ": 114248, + "ĠкомнаÑĤ": 114249, + "าหล": 114250, + "ĠçĻ¼": 114251, + "ĠاÙĪÙĦÛĮÙĨ": 114252, + "è¿IJåĬ¨": 114253, + "ĠпÑĥнкÑĤ": 114254, + "ĠоÑģобенно": 114255, + "Ġмам": 114256, + "绩": 114257, + " ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄": 114258, + "алÑĮнÑĭм": 114259, + "ĠЦенÑĤ": 114260, + "-Ðľ": 114261, + "ç·Ĵ": 114262, + "Ġà¤¹à¤ľ": 114263, + "оÑĤÑĭ": 114264, + "ãĤ¤ãĥī": 114265, + "دارة": 114266, + "ãģ¨ãģĹãģŁ": 114267, + "ัà¸ŀย": 114268, + "Ġotáz": 114269, + "ĠдопомогоÑİ": 114270, + "à¹ģละà¸ģาร": 114271, + "ĠÑĤÑĢанÑģпоÑĢÑĤ": 114272, + "ĠÙĤرآÙĨ": 114273, + "Ġ第ä¸Ģ": 114274, + "Ġмил": 114275, + "Ġngôi": 114276, + "Ġlinh": 114277, + "ĠNhân": 114278, + "ÑĮогоднÑĸ": 114279, + "æĢĢ": 114280, + "à¹īาส": 114281, + ".::.::": 114282, + "Ġbirey": 114283, + "æĢĿãģĦ": 114284, + "à¹ĥà¸Ķ": 114285, + "веÑĢд": 114286, + "Ġlistopadu": 114287, + "Ġà¹ģม": 114288, + "ге": 114289, + "ĠкÑĥÑħ": 114290, + "ĠíĻľëıĻ": 114291, + "Ġèİ": 114292, + "ĠÐIJлÑĮ": 114293, + "íļĮìĿĺ": 114294, + "ĠÏĢÏģα": 114295, + "Ġvui": 114296, + "วร": 114297, + "à¤Ĥव": 114298, + "Ġgece": 114299, + "競": 114300, + "Ġkuv": 114301, + "меÑī": 114302, + "ĠÑĤепеÑĢÑĮ": 114303, + "à¸Ńà¹Ģม": 114304, + "åĪ¶åº¦": 114305, + "ĠÑĤÑĢеÑĤ": 114306, + "ĠÙĨتÛĮجÙĩ": 114307, + "ä»ĺãģį": 114308, + "Ġï¾ŀ": 114309, + "ĠÑĩого": 114310, + "âĢIJ-": 114311, + "ĠÅĻÃŃká": 114312, + "à¸ĩà¹ĥà¸Ļ": 114313, + "ĠnÄĽkolika": 114314, + "Ġbuna": 114315, + "ï¼ĮåŃĺäºİ": 114316, + "ลำ": 114317, + "ãĢģãģ¨": 114318, + "Ġná»Ļp": 114319, + "ĠاÙĦجÙĨ": 114320, + "ĠÎłÎ±Î½": 114321, + "ÐŀÐł": 114322, + "Ġدختر": 114323, + "Ġúdaje": 114324, + "Ġå¼ł": 114325, + "retim": 114326, + "sınız": 114327, + "ĠÙĩÙĨاÙĥ": 114328, + "ÐĽÐ¬": 114329, + "æķ¬": 114330, + "ÎijÎľ": 114331, + "页éĿ¢åŃĺæ¡£å¤ĩ份": 114332, + "ìĤ¬ê°Ģ": 114333, + "Ġtrest": 114334, + "viÄį": 114335, + "ĠÙ¾ÛĮدا": 114336, + "ζε": 114337, + "ĠÐŁÐ¾Ð²": 114338, + "ÙĦÙħات": 114339, + "orex": 114340, + "è¬Ľ": 114341, + "ĠвÑĸдкÑĢиÑĤ": 114342, + "маÑħ": 114343, + "ĠÑĩиÑģле": 114344, + "تبار": 114345, + "ĠÎŃκ": 114346, + "ìķĦíĮĮíĬ¸": 114347, + "ravel": 114348, + "αÏĥία": 114349, + "aÄį": 114350, + "Ġà¤ıन": 114351, + "ละà¹Ģà¸Ń": 114352, + "Ġзалеж": 114353, + "Ġæģ": 114354, + "ĠможеÑĤе": 114355, + "Ġповед": 114356, + "ĠبسÛĮارÛĮ": 114357, + "ĠpoÄįet": 114358, + "ربع": 114359, + "elez": 114360, + "اÙĪرÛĮ": 114361, + "ĠbaÅŁk": 114362, + "å°Ĥ": 114363, + "Ġhalde": 114364, + "æĭŁ": 114365, + "Sau": 114366, + "оÑĨи": 114367, + "ีà¸Ħ": 114368, + "Ġвлади": 114369, + "ÙIJÙħ": 114370, + "kud": 114371, + "à¥Ĥब": 114372, + "å§Ķåĵ¡": 114373, + "ารà¸ĵ": 114374, + "orů": 114375, + "ĠÙħÙĪÙĦ": 114376, + "Ġbyt": 114377, + "ĠpÅĻÃŃsluÅ¡": 114378, + "èĭ±è¯Ń": 114379, + "éĢIJ": 114380, + "Ġvelké": 114381, + "Ġà¤Ĩश": 114382, + "Ġphiếu": 114383, + "à¹ĥส": 114384, + "Ġاسپ": 114385, + "ĠzbožÃŃ": 114386, + "ãģĵãĤĵãģª": 114387, + "ĠÙĪÙĩÙĬ": 114388, + "ĠÑĥÑĩаÑģÑĤÑĮ": 114389, + "à¸Īำà¸Ļวà¸Ļ": 114390, + "Ġترک": 114391, + "åįģåĪĨ": 114392, + "ÎŁÎł": 114393, + "κολ": 114394, + "Ġfakat": 114395, + "Ġchá»Ĺ": 114396, + "éĢļçŁ¥": 114397, + "ĠводÑĥ": 114398, + "ĠÎļαÏĦηγοÏģία": 114399, + "acaģını": 114400, + "лого": 114401, + "ĠmÃ¼ÅŁter": 114402, + "Ġjednou": 114403, + "ĠбаÑĢ": 114404, + "idae": 114405, + "dım": 114406, + "è¾²": 114407, + "åIJ¹": 114408, + "ëIJ©ëĭĪëĭ¤": 114409, + "ĠÅŁeklinde": 114410, + "eným": 114411, + "ëĵ¯": 114412, + "itÄĽ": 114413, + "ĠколÑĮ": 114414, + "ëĮĢíķĻ": 114415, + "ĠÃĸr": 114416, + "Ġê½": 114417, + "ĠUBND": 114418, + "Ġhik": 114419, + "ãĤīãģĹãģĦ": 114420, + "åĩºåĵģ": 114421, + "Có": 114422, + "ĠÎŀ": 114423, + "Ġåħ¥": 114424, + "ĠNguyên": 114425, + "ĠÙ¾ÙĪØ´": 114426, + "лÑıÑĶ": 114427, + "Ġآغاز": 114428, + "Ġnhiá»ħm": 114429, + "divid": 114430, + "çĺ": 114431, + "اÙģتÙĩ": 114432, + "амеÑĤ": 114433, + "нÑĥлÑģÑı": 114434, + "ä¼ģæ¥Ń": 114435, + "ÑĢобÑĸÑĤ": 114436, + "dÃ¼ÄŁÃ¼": 114437, + "ĠکاÙĨ": 114438, + "à¸Ńà¸ĩà¸Ĺ": 114439, + "йн": 114440, + "Ġpohyb": 114441, + "Ġbiá»ĩn": 114442, + "Ġï¼Ľ": 114443, + "ÙħÙĨد": 114444, + "Ġà¤Ĩà¤ķ": 114445, + "ĠÄįlovÄĽk": 114446, + "ãĤĴè¦ĭãĤĭ": 114447, + "ë·°": 114448, + "ĠÑĥвелиÑĩ": 114449, + "Ġê´": 114450, + "ĠyanlÄ±ÅŁ": 114451, + "麦": 114452, + "Ġå¤ĸéĥ¨": 114453, + "ÏĦοÏħÏģγ": 114454, + "ĠпÑĢоÑĩ": 114455, + "ĠÑĢÑĥковод": 114456, + "缤": 114457, + "èľĺèĽĽ": 114458, + "å®īè£ħ": 114459, + "ĠУкÑĢа": 114460, + "ĠtartÄ±ÅŁ": 114461, + "ÑĤаж": 114462, + "ĠoluÅŁan": 114463, + "ĠRusya": 114464, + "ĠклÑĥб": 114465, + "ĠÎłÎ¡": 114466, + "alıdır": 114467, + "kın": 114468, + "ĠзмÑĸни": 114469, + "leÅŁik": 114470, + "еÑĢп": 114471, + "обÑīе": 114472, + "ĠquáºŃn": 114473, + "Ġपश": 114474, + "ãĤĴåıĹ": 114475, + "à¹Ģลà¸Ĥ": 114476, + "اضر": 114477, + "Ġuživatel": 114478, + "λία": 114479, + "ĠÐĴони": 114480, + "ุà¸Ķà¸Ĺ": 114481, + "ĠVÃł": 114482, + "ãĥ³ãĤ¿": 114483, + ")ëĬĶ": 114484, + "æ¸Ľ": 114485, + "ĠμÏĢ": 114486, + "å·§": 114487, + "ĠÑĪкол": 114488, + "Ġì²ĺìĿĮ": 114489, + "ัà¸ģà¸Ķ": 114490, + "æ®Ĭ": 114491, + "Ġnhá»Ŀ": 114492, + "ĠοÏĢοία": 114493, + "à¹ģà¸Ļว": 114494, + "меÑĢикан": 114495, + "nÃŃka": 114496, + "Ġíĺ¸íħĶ": 114497, + "سبب": 114498, + "à¸ĩม": 114499, + "ìŀĪëĬĶ": 114500, + "غط": 114501, + "ÙıÙĦ": 114502, + "¹æŀľ": 114503, + "ÑĩÑĸв": 114504, + "ÑĪаÑı": 114505, + "ĠØ¥ÙĦا": 114506, + "خصÙĪص": 114507, + "llll": 114508, + "ĠÑįÑĤим": 114509, + "ĠzvÃŃ": 114510, + "Ġquán": 114511, + "à¸Ļà¸ģ": 114512, + "Ġполов": 114513, + "Ġæ·±": 114514, + "Ġmiá»ģn": 114515, + "人éĸĵ": 114516, + "Ġзим": 114517, + "Ġmeydana": 114518, + "еÑĦ": 114519, + "Ġbá»ģn": 114520, + "زÙĬد": 114521, + "ĠÐłÐµÑģп": 114522, + "ÎĻΣΤ": 114523, + "ĠæĶ¶": 114524, + "raya": 114525, + "ĠتÙĪاÙĨد": 114526, + "Ġister": 114527, + "Ġë°Ģ": 114528, + "ĠмеÑħани": 114529, + "Ġà¸ķำ": 114530, + "Ġдека": 114531, + "à¤Ĥà¤Ĺल": 114532, + "ãĥ¼ãĤ«ãĥ¼": 114533, + "ĠnepÅĻÃŃ": 114534, + "ĠÑģÑĩиÑĤ": 114535, + "Ġομά": 114536, + "Ġçift": 114537, + "بÛĮÙĨÛĮ": 114538, + "meleri": 114539, + "ĠвоздейÑģÑĤв": 114540, + "dou": 114541, + "ìĥģìĿĦ": 114542, + "ĠÐĴолод": 114543, + "εβ": 114544, + "ÐĿÐĺ": 114545, + "Ñıк": 114546, + "ÏįÏĦε": 114547, + "зано": 114548, + "lenir": 114549, + "celik": 114550, + "ĠÑģоÑģÑĤавлÑıеÑĤ": 114551, + "ιαÏĤ": 114552, + "ĠÐĵоÑĢ": 114553, + "ä¹ĭä¸Ģ": 114554, + "ÏĥμÏĮÏĤ": 114555, + "ãģ«éĸ¢": 114556, + "ĠвÑĩ": 114557, + "ĠпоÑģк": 114558, + "輯": 114559, + "à¥Ģश": 114560, + "Ġآثار": 114561, + "à¸Ħวามร": 114562, + "Ġедин": 114563, + "íħIJ": 114564, + "å¹³æĪIJ": 114565, + "ĠkiÅŁinin": 114566, + "ãĤ²ãĥ¼ãĥł": 114567, + "à¥įतव": 114568, + "Ġkapsamında": 114569, + "Ġaktar": 114570, + "Ġtrừ": 114571, + "Ġرشد": 114572, + "Ġнаказ": 114573, + "رÙĬÙĦ": 114574, + "à¸Ńà¸Ħ": 114575, + "ĠگذشتÙĩ": 114576, + "Ġæ°ij": 114577, + "ĠÑĤебÑı": 114578, + "spor": 114579, + "ÑİÑīаÑı": 114580, + "окÑĢема": 114581, + "вад": 114582, + "ĠChúng": 114583, + "ĠزÛĮادÛĮ": 114584, + "еного": 114585, + "ĠکسÛĮ": 114586, + "Ãŀ": 114587, + "Ġadına": 114588, + "Ñĥда": 114589, + "ÑĸÑĶ": 114590, + "аÑĤели": 114591, + "ĠnávÅ¡tÄĽ": 114592, + "çĶ¨äºİ": 114593, + "ĠپرÙĪÙĨدÙĩ": 114594, + "ĠÙĨبÙĪد": 114595, + "سات": 114596, + "ìĹĺ": 114597, + "ãģ£ãģ¦ãĤĤ": 114598, + "Ġçī©": 114599, + "Ðĺз": 114600, + "åĪ·": 114601, + "Ġíľ´": 114602, + "ĠоÑģоблив": 114603, + "ãģĹãģ¾ãģ£ãģŁ": 114604, + "aydı": 114605, + "åĩºçļĦ": 114606, + "ĠìķĦëĭĪëĿ¼": 114607, + "ısını": 114608, + "à¸Ĺาà¸ĩà¸ģาร": 114609, + "Ġzvuky": 114610, + "Ġ管": 114611, + "âĸĭâĸĭ": 114612, + "ĠÑĤелеÑĦ": 114613, + "ĠнелÑĮзÑı": 114614, + "ãĥ«ãģ®": 114615, + "ÏĥÏĢ": 114616, + "Ġç³": 114617, + "åł¡": 114618, + "ÑĨÑĥз": 114619, + "رÙĬÙĤØ©": 114620, + "à¤¿à¤Ľà¤²": 114621, + "販": 114622, + "ĠУкÑĢаÑĹн": 114623, + "ĠÙħسئÙĪÙĦ": 114624, + "ĠоÑĩÑĸ": 114625, + "æľĢå¾Į": 114626, + "ĠзнаÑİ": 114627, + "à¹īà¸Ļà¸Ĺ": 114628, + "ĠÑĤеÑĢап": 114629, + "ĠÑģпок": 114630, + "ĠØ®ÙĪدرÙĪ": 114631, + "éĺ»": 114632, + "Ġdüzey": 114633, + "ä¸ĢåĢĭ": 114634, + "اÙģÙĩ": 114635, + "à¤Ĥय": 114636, + "èµĦ产": 114637, + "继ç»Ń": 114638, + "ĠÑģлаб": 114639, + "æĦıæĢĿ": 114640, + "ĠíĻĺìĤ°": 114641, + "ĠÑıÑĢ": 114642, + "Ġdůvod": 114643, + "çĿĽ": 114644, + "تÛĮب": 114645, + "ĠÙĪÛĮر": 114646, + "ĠÙĩزÛĮÙĨÙĩ": 114647, + "Ġbenzer": 114648, + "ĠÙħادÙĩ": 114649, + "à¥Įà¤ķ": 114650, + "Ġà¹Ģà¸ķ": 114651, + "ãĤĪãģı": 114652, + "иденÑĤ": 114653, + "èĭ±èªŀ": 114654, + "еÑĢÑĭ": 114655, + "Ġê¸Īìķ¡": 114656, + "Ġãĥ¼": 114657, + "Ġëį¤íĶĦ": 114658, + "ÑĢаÑĤÑĮ": 114659, + "Ġåįķ": 114660, + "à¹Ģà¸īà¸ŀาะ": 114661, + "ĠæĶ¿": 114662, + "Ġà¤Ĩम": 114663, + "Ġзни": 114664, + "ĠëĿ¼ìĿ´": 114665, + "æİĮ": 114666, + "çIJĨçĶ±": 114667, + "Ġاغ": 114668, + "ĠÑģиг": 114669, + "ĠеÑĦекÑĤив": 114670, + "ĠÐŁÑĢед": 114671, + "ãĥ´ãĤ£": 114672, + "Ġвико": 114673, + "Ġtvrd": 114674, + "ëĤ´ê¸°": 114675, + "ãĥĭãĤ¢": 114676, + "ĠÙħشاÙĩدÙĩ": 114677, + "Ġसà¤ļ": 114678, + "lÃ¼ÄŁ": 114679, + "è¯ģåĪ¸": 114680, + "Ġsiêu": 114681, + "ĠоÑĤв": 114682, + "ĠvytvoÅĻ": 114683, + "ĠØŃÙħÙĦ": 114684, + "ĠÑĦÑĢан": 114685, + "à¹īà¸Ķ": 114686, + "åĮ»éĻ¢": 114687, + "Ġвлад": 114688, + "غÙĦ": 114689, + "建ç«ĭ": 114690, + "osloven": 114691, + "илаÑģÑĮ": 114692, + "عÙĦÙĪÙħات": 114693, + "ĠترÛĮÙĨ": 114694, + "ÎŃÏģει": 114695, + "ĠbáºŃt": 114696, + "ĠÙħØ´Ú©": 114697, + "ĠرئÙĬس": 114698, + "Ġìłľìŀij": 114699, + "γη": 114700, + "ĠнÑĸк": 114701, + "Ġ구ìĦ±": 114702, + "ĠÄijen": 114703, + "Ġà¤ļर": 114704, + "ĠgeçmiÅŁ": 114705, + "äºĨ解": 114706, + "ĠлеÑģ": 114707, + "Ġquanh": 114708, + "ãĢĮæĪij": 114709, + "ĠNÄĽkterá": 114710, + "ëŀį": 114711, + "ÃħŸ": 114712, + "à¤Ĥदर": 114713, + "ìķĦìĿ´": 114714, + "å°ijãģĹ": 114715, + "ĠØ´ÙĩرÛĮ": 114716, + "κÏĦη": 114717, + "ĠâĹĦ": 114718, + "ĠÙĥس": 114719, + "è·Į": 114720, + "Ãı": 114721, + "å·¥åħ·": 114722, + "åĬĥ": 114723, + "pom": 114724, + "ĠнавÑĩаннÑı": 114725, + "Ġرج": 114726, + "ÑĢÑĥеÑĤÑģÑı": 114727, + "ĠνÎŃ": 114728, + "ÛĮÙĨÚ©": 114729, + "à¹Ĥà¸ĭ": 114730, + "åĭ¤": 114731, + "ãģĹãģ¾ãģĨ": 114732, + "ĠÑģоглаÑģ": 114733, + "éĩijèŀį": 114734, + "绿": 114735, + "ĠСан": 114736, + "æķµ": 114737, + "ĠповÑĸÑĤ": 114738, + "ĠпомоÑīи": 114739, + "ãĥ¡ãĥªãĤ«": 114740, + "ãĤ·ãĤ¢": 114741, + "ĠÏĢÏģοÏĤ": 114742, + "èĪªç©º": 114743, + "ĠваÑĢианÑĤ": 114744, + "Ġyalnızca": 114745, + "系統": 114746, + "ĠÙģÙĪر": 114747, + "оÑĩной": 114748, + "à¹Ģวà¸Ńร": 114749, + "ĠкÑĥлÑĮÑĤÑĥÑĢ": 114750, + "Ïĩι": 114751, + "ÄįÃŃta": 114752, + "Âĵ": 114753, + "人ãģĮ": 114754, + "κοÏį": 114755, + "ĠÑĢеÑĶ": 114756, + "ĠвÑģÑİ": 114757, + "éºĹ": 114758, + "ĠزÙĨاÙĨ": 114759, + "çĭĤ": 114760, + "Ġหม": 114761, + "Ġxúc": 114762, + "åħĴ": 114763, + "ÄŁinin": 114764, + "åĸľæ¬¢": 114765, + "ĠÑģÑĤад": 114766, + "iyesi": 114767, + "ìļ±": 114768, + "èĿ": 114769, + "Ġkus": 114770, + "ÏĦολ": 114771, + "гÑĸв": 114772, + "Ñĸли": 114773, + "ãģĦãĤĦ": 114774, + "é©Ĺ": 114775, + "ontrol": 114776, + "اÙĦÙĥ": 114777, + "ковиÑħ": 114778, + "ĠÑģÑĤало": 114779, + "ĠγαÏģα": 114780, + "Ġchy": 114781, + "Ġcihaz": 114782, + "ĩ´": 114783, + "ìŀ¥ìĿ´": 114784, + "aceae": 114785, + "Ø´Ùĩر": 114786, + "иланнÑı": 114787, + "çļĦå°ı": 114788, + "Ġthụ": 114789, + "ÙĪÙĨت": 114790, + "лоÑĢ": 114791, + "ãĤĴæĮģ": 114792, + "ĠÎĶι": 114793, + "Ġ羣": 114794, + "ÐĽÐŀ": 114795, + "é½IJ": 114796, + "çİĦ": 114797, + "اÙĪÙĩ": 114798, + "ĠинÑĤ": 114799, + "à¥Ģà¤Łà¤°": 114800, + "ĠобÑīе": 114801, + "ĠдепÑĥÑĤ": 114802, + "μÎŃνεÏĤ": 114803, + "ĠÙĥÙĬÙģ": 114804, + "عÙħÙĦ": 114805, + "ï¼Įå¦Ĥæŀľ": 114806, + "ĠинÑĦек": 114807, + "itele": 114808, + "ĠãĢĢãĢĢĠãĢĢ": 114809, + "ãĤ¤ãĥ³ãĥĪ": 114810, + "лÑĸÑĤ": 114811, + "ĠÑģÑİ": 114812, + "Ġzase": 114813, + "dech": 114814, + "еко": 114815, + "è®ĵ": 114816, + "åı¬": 114817, + "зем": 114818, + "ÎłÎij": 114819, + "Ġvzdu": 114820, + "าà¸Īาà¸ģ": 114821, + "koliv": 114822, + "zkum": 114823, + "èģĬ": 114824, + "Ġì±Ħìļ©": 114825, + "à¹į": 114826, + "Ġasp": 114827, + "Û²Û´": 114828, + "ìĿ¸ëį°": 114829, + "ĠkarÅŁÄ±laÅŁ": 114830, + "ï¼Įåı¯ä»¥": 114831, + "Ġà¤ĩनà¤ķ": 114832, + "ĠìĬ¤íĥĢ": 114833, + "éĥ¨å±ĭ": 114834, + "åĪ¶ä½ľ": 114835, + "ãĥ¼ãĤ·ãĥ§ãĥ³": 114836, + "ονÏĦαÏĤ": 114837, + "γο": 114838, + "ĠìŀijìĦ±": 114839, + "èij£": 114840, + "ozÅĻejmÄĽ": 114841, + "ĠÑĢезÑĥлÑĮÑĤаÑĤе": 114842, + "ĠInsecta": 114843, + "Ġskon": 114844, + "otu": 114845, + "ĠpÄĽt": 114846, + "ÑģÑĮого": 114847, + "ĠÄ°slam": 114848, + "Ġlá»ħ": 114849, + "ä¸Ńåľĭ": 114850, + "ĠÐľÑĸнÑĸÑģÑĤ": 114851, + "åIJĪåIJĮ": 114852, + "asyonu": 114853, + "ожеÑĤ": 114854, + "èĩªåĬ¨": 114855, + "ÑģÑĮкоÑİ": 114856, + "ĠkiÅŁisel": 114857, + "ÏĦικοÏį": 114858, + "ĠÑĥÑĩаÑģ": 114859, + "ılmÄ±ÅŁtır": 114860, + "ĠÑıке": 114861, + "ÑīинÑĭ": 114862, + "маÑĢ": 114863, + "Ġsoudu": 114864, + "ÂłÐ¯": 114865, + "ĠдÑĢÑĥ": 114866, + "ãģ¡ãĤĩ": 114867, + "à¥ĭà¥ľ": 114868, + "ï¾ij": 114869, + "ĠÏĦÏĮ": 114870, + "Ġضر": 114871, + "láš": 114872, + "ĠдÑĸв": 114873, + "ĠجدÙĬد": 114874, + "ĠнеболÑĮÑĪ": 114875, + "éģŃ": 114876, + "ç»į": 114877, + "ĠKurulu": 114878, + "ÑģÑĤÑĢÑĥменÑĤ": 114879, + "è¿Ļæĺ¯": 114880, + "ìĻĶëĭ¤": 114881, + "мелÑĮ": 114882, + "Ġä¼Ĭ": 114883, + "ủng": 114884, + "ĠзавиÑģимоÑģÑĤи": 114885, + "ëį¤íĶĦ": 114886, + "çĩĥ": 114887, + "è¿ĩåİ»": 114888, + "ĠзаÑģÑĤоÑģÑĥваннÑı": 114889, + "ĠداخÙĦÛĮ": 114890, + "ÑīÑij": 114891, + "ĠÂłĠÂłĠÂłĠÂłĠÂłĠÂł": 114892, + "ﺮ": 114893, + "ĠاÙĦÙħÙħÙĦÙĥØ©": 114894, + "sında": 114895, + "è³Ģ": 114896, + "å±ı": 114897, + "Ġê¿": 114898, + "Ġdoktor": 114899, + "ĠÙĤاب": 114900, + "ĠSist": 114901, + "ĠмеÑģÑĤе": 114902, + "ĠÑģоÑħÑĢа": 114903, + "اشتÙĩ": 114904, + "ĠæľŁ": 114905, + "ĠпоÑģколÑĮкÑĥ": 114906, + "Ġpev": 114907, + "اگر": 114908, + "Ùħز": 114909, + "ĠضÙħÙĨ": 114910, + "३": 114911, + "gesi": 114912, + "aÄŁa": 114913, + "解åĨ³": 114914, + "ëħ¸ì¶ľ": 114915, + "Ġluyá»ĩn": 114916, + "ĠконÑĤак": 114917, + "ฺ": 114918, + "ĠNgÃły": 114919, + "Ġvýstav": 114920, + "Ġthuyết": 114921, + "اÛĮع": 114922, + "Ġ:/:": 114923, + "Ġphạt": 114924, + "ĠÎijÏĢÏĮ": 114925, + "Ġmuz": 114926, + "Ġìĥī": 114927, + "ĠÃĩin": 114928, + "Ġکاربرد": 114929, + "ائد": 114930, + "باد": 114931, + "à¥įतम": 114932, + "Ġëijĺ": 114933, + "Ġмоз": 114934, + "Å¡ÃŃch": 114935, + "Ġมห": 114936, + "Ġآس": 114937, + "ĠÑģлиÑĪком": 114938, + "èĥ¡": 114939, + "è£ģ": 114940, + "æĪ»": 114941, + "ĠìĦ¤ëªħ": 114942, + "Ġotom": 114943, + "Ġलà¤Ĺà¤Ńà¤Ĺ": 114944, + "à¸ĩà¸ģ": 114945, + "ابد": 114946, + "à¸Ļาม": 114947, + "èĤ©": 114948, + "ĠشدÙĨد": 114949, + "ãģĿãģ®ä»ĸ": 114950, + "adlo": 114951, + "ÄĽn": 114952, + "ĠÙĦÙĩا": 114953, + "Ġминим": 114954, + "ĠdÅĻev": 114955, + "ĠThiên": 114956, + "ëŀĻ": 114957, + "engin": 114958, + "à¥Ģमत": 114959, + "ĠÑĥпоÑĤÑĢеб": 114960, + "âĢĮتر": 114961, + "Ġç¥ŀ马": 114962, + "ovánÃŃm": 114963, + "Ġдело": 114964, + "Ġç¼ĸ": 114965, + "ĠاÙĦظ": 114966, + "Ġвий": 114967, + "аÑĤом": 114968, + "åħ¬åijĬ": 114969, + "ĠÄijem": 114970, + "ãĤ·ãĥªãĥ¼ãĤº": 114971, + "ä¸ĭçļĦ": 114972, + "lası": 114973, + "ĠвÑĭбоÑĢ": 114974, + "ÑĤоÑĤ": 114975, + "ëıĦë³Ħ": 114976, + "ĠÑĥÑģÑĤан": 114977, + "ĠíŀĪ": 114978, + "лÑĥаÑĤа": 114979, + "Ġthác": 114980, + "анием": 114981, + "оваÑĤÑĮÑģÑı": 114982, + "ÑĤÑĶ": 114983, + "ÐŃÑĤо": 114984, + "ï¼Įè¦ģ": 114985, + "ĠVz": 114986, + "ĠØŃÙĪزÙĩ": 114987, + "-к": 114988, + "VỼi": 114989, + "entů": 114990, + "ĠbulunduÄŁu": 114991, + "رÙĪØ·": 114992, + "ĠÑĹй": 114993, + "Ġçevr": 114994, + "ĠÅĻed": 114995, + "ĠساختÙĩ": 114996, + "åĬŀæ³ķ": 114997, + "ĠÙĤÙĦ": 114998, + "iÅŁi": 114999, + "ï¼Ŀï¼Ŀ": 115000, + "ساس": 115001, + "Ġúdajů": 115002, + "å¬": 115003, + "æįŁ": 115004, + "áct": 115005, + "ĠÎijÏĢ": 115006, + "çĪ·": 115007, + "ĠÅĻád": 115008, + "Ġlá»Ĺi": 115009, + "ontent": 115010, + "ĠÙħØ°": 115011, + "oloji": 115012, + "Ġپرداخت": 115013, + "à¹īาà¸ŀ": 115014, + "ĠдейÑģÑĤвиÑı": 115015, + "ĠmnožstvÃŃ": 115016, + "ìķĪë§Ī": 115017, + "åģ¶": 115018, + "ĠÃĶng": 115019, + "Ġdakika": 115020, + "hendis": 115021, + "Ġbác": 115022, + "寶": 115023, + "à¹ĩà¸ģหà¸į": 115024, + "nocenÃŃ": 115025, + "ĠErdoÄŁan": 115026, + ":::::::::::::": 115027, + "аÑĤем": 115028, + "dız": 115029, + "ĠØ£ÙĬضا": 115030, + "ĠÑįÑĦÑĦек": 115031, + "ãĤĮãģ¦ãģĦãĤĭ": 115032, + "ĠbaÅŁvuru": 115033, + "άνει": 115034, + "ĠÏĦελεÏħÏĦα": 115035, + "Ġê²Ģìĥī": 115036, + "ĠÚ©ÙĨترÙĦ": 115037, + "Ġशà¤ķ": 115038, + "å¼¹": 115039, + "ĠolmuÅŁtur": 115040, + "ĠвÑģÑĤÑĥп": 115041, + "Ñĩила": 115042, + "ยา": 115043, + "ĠØ£ØŃÙħد": 115044, + "oslav": 115045, + "ĠÑĩаÑģов": 115046, + "ĠzákladnÃŃ": 115047, + "Ġसव": 115048, + "дон": 115049, + "ĠÅĻÃŃjna": 115050, + "κοÏħ": 115051, + "éĢģæĸĻçĦ¡æĸĻ": 115052, + "ÏĥίαÏĤ": 115053, + "ãĤ´ãĥª": 115054, + "Ġвиб": 115055, + "å½Ĵ": 115056, + "Ġназад": 115057, + "ĠçĻ¾åº¦æĶ¶å½ķ": 115058, + "á»Ĩ": 115059, + "Ġkaldı": 115060, + "ì¼ľ": 115061, + "ĠíıŃ": 115062, + "ĠÑĩином": 115063, + "è¹": 115064, + "Ñıл": 115065, + "ĠÑĢаздел": 115066, + "dG": 115067, + "ĠTento": 115068, + "ÑıÑĤÑĮÑģÑı": 115069, + "éĿ¢çļĦ": 115070, + "ĠÎķÏĢι": 115071, + "ê°ij": 115072, + "Ġkèm": 115073, + "ниÑĨÑı": 115074, + "çĸ«": 115075, + "éĽĻ": 115076, + "ĠÙħرÙĥز": 115077, + "ĠнаÑĥк": 115078, + "å¢Ĺ": 115079, + "ĠÑĤепеÑĢ": 115080, + "à¤¾à¤ł": 115081, + "à¹ĩà¸ļà¹Ħà¸ĭà¸ķ": 115082, + "μβÏģίοÏħ": 115083, + "ĠÑĦÑĸнанÑģов": 115084, + "ÑĸÑĶÑİ": 115085, + "Ïģίζ": 115086, + "ì¤Ħ": 115087, + "ĠباÙĨÚ©": 115088, + "tul": 115089, + "liÄŁini": 115090, + "ĠпозволÑıеÑĤ": 115091, + "Ïĥί": 115092, + "ĠìĽĥ": 115093, + "à¹Įà¸Ħ": 115094, + "Ġpolov": 115095, + "ìŀ¥ìĿĦ": 115096, + "isté": 115097, + "ĠÐ¡Ð¡Ð¡Ðł": 115098, + "áhl": 115099, + "è¥": 115100, + "Ġкомплек": 115101, + "à¸Ĥà¸Ļาà¸Ķ": 115102, + "ัศ": 115103, + "ναν": 115104, + "Ġç¥ŀ马æĶ¶å½ķ": 115105, + "ìĭľìĺ¤": 115106, + "Ġé¦ĸ页第": 115107, + "ĠçĻ¾åº¦æµģéĩı": 115108, + "åij¨æĶ¶å½ķ": 115109, + "Ġhatta": 115110, + "ÐĴÑĸд": 115111, + "ĠвÑĭÑģÑĤÑĥп": 115112, + "کارÛĮ": 115113, + "Khi": 115114, + "Ġì°¾ìķĦ": 115115, + "Ġnặng": 115116, + "éĨ«": 115117, + "ĠVÅ¡": 115118, + "ĠпеÑĢен": 115119, + "лава": 115120, + "ÙĬÙħÙĬ": 115121, + "ĠvatandaÅŁ": 115122, + "ĠιÏĥÏĦο": 115123, + "Ġà¸ĵ": 115124, + "सल": 115125, + "ген": 115126, + "ĠبÙĪر": 115127, + "âĢĮدÙĩد": 115128, + "lıklı": 115129, + "Ġstrate": 115130, + "بÙĪر": 115131, + "ãĢģãĤ¢": 115132, + "Ġsonuc": 115133, + "Ġнаиболее": 115134, + "-в": 115135, + "Ġводой": 115136, + "ojenÃŃ": 115137, + "Ġغرب": 115138, + "Ġberi": 115139, + "adÄĽ": 115140, + "Ġdovol": 115141, + "âĢĮÚ©ÙĨÙĨدگاÙĨ": 115142, + "ãģķãĤī": 115143, + "ãĥ³ãĤº": 115144, + "ãĤ«ãĥ«": 115145, + "ometr": 115146, + "åĩĢ": 115147, + "ĠÙģÙĪÙĦ": 115148, + "ĠÙħÙĪسÛĮ": 115149, + "ĠاÙĦÙħغرب": 115150, + "ecko": 115151, + "ÙĢÙĢÙĢÙĢÙĢÙĢÙĢÙĢ": 115152, + "ê°Ģ격": 115153, + "ÑĢÑĥÑĤ": 115154, + "Ġë¶Ģë¶Ħ": 115155, + "ĠpÅĻedpis": 115156, + "Ġopravdu": 115157, + "еÑĤиÑĩ": 115158, + "à¹Ĥà¸Ħรà¸ĩà¸ģาร": 115159, + "æħ§": 115160, + "æĭľ": 115161, + "سÙĥ": 115162, + "ìŀ¡ëĭ´": 115163, + "à¸Ľà¸£à¸°à¸¡à¸²à¸ĵ": 115164, + "è´¨éĩı": 115165, + "ĠголовÑĥ": 115166, + "лениÑİ": 115167, + "Ġनà¤ı": 115168, + "Ġprojektu": 115169, + "اÙģر": 115170, + "ativnÃŃ": 115171, + "ÎŃνÏĦ": 115172, + "ãĥīãĥ©": 115173, + "Ġtedav": 115174, + "ê¼": 115175, + "à¸Ľà¸£à¸°à¸ģาศ": 115176, + "Ġtuto": 115177, + "Ġchiếu": 115178, + "Ġvyz": 115179, + "ÑĢоÑĪ": 115180, + "åıĸå¾Ĺ": 115181, + "ĠмиÑģÑĤ": 115182, + "ĠÑģлÑĥÑĩаÑıÑħ": 115183, + "Ġغذ": 115184, + "ĠÑĥклад": 115185, + "ĠÑĥÑģÑĤановлен": 115186, + "Ġteslim": 115187, + "ĠãĢį": 115188, + "Ġè£": 115189, + "毫": 115190, + "éĬĢè¡Į": 115191, + "ects": 115192, + "kemiz": 115193, + "νηÏĤ": 115194, + "辺": 115195, + "ĠпÑĢем": 115196, + "Ġsonucu": 115197, + "Pokud": 115198, + "ĠÐŀÑģоб": 115199, + "è¾Ľ": 115200, + "輸": 115201, + "ë³´ê³ł": 115202, + "à¸ļà¸Ħ": 115203, + "ãĢĤãĢį": 115204, + "ा।ĊĊ": 115205, + "ĠÑģамоÑģÑĤоÑıÑĤелÑĮ": 115206, + "ÙĦÛĮت": 115207, + "λεκ": 115208, + "ĠÑĢайона": 115209, + "ÑĮи": 115210, + "à¹Īาà¸Ĺ": 115211, + "Ġà¸Ľà¸£à¸°à¹Ģà¸Ĺศ": 115212, + "มà¸Ń": 115213, + "اÙĩر": 115214, + "ĠвибоÑĢ": 115215, + "ÑİÑĩиÑģÑĮ": 115216, + "Ġpovol": 115217, + "abase": 115218, + "âĢ³N": 115219, + "Ú©ÙĪ": 115220, + "ĠУкÑĢаÑĹна": 115221, + "stanov": 115222, + "ĠÑĥÑĩаÑģÑĤи": 115223, + "Ġhlad": 115224, + "ĠÑĢаÑģÑģказ": 115225, + "ãģ¿ãģŁãģĦ": 115226, + "á½°": 115227, + "ĠåĽŀ": 115228, + "ĠÆ°Æ¡ng": 115229, + "αÏģά": 115230, + "خب": 115231, + "æįķ": 115232, + "ÃŃÅĻ": 115233, + "ĠسÛĮÙĨ": 115234, + "Âłin": 115235, + "ĠMÄĽst": 115236, + "æķĻåѦ": 115237, + "ĠоÑģобиÑģÑĤ": 115238, + "uji": 115239, + "çĶ»åĥı": 115240, + "ĠداÙĨØ´ÙĨاÙħÙĩ": 115241, + "ìĿ´ìķ¼": 115242, + "ĠзапиÑĤ": 115243, + "ĠÑģвоими": 115244, + "Û²Û°Û²": 115245, + "ï¼Įå°Ĩ": 115246, + "ãĥ¼ãģ®": 115247, + "ĠthÃŃ": 115248, + "ĠÙħتÙĪسط": 115249, + "à¥ĩĊ": 115250, + "å¤ļå°ij": 115251, + "ï¼ĮçĦ¶åIJİ": 115252, + "íĹĪ": 115253, + "Ġà¤Ńà¤Ĺ": 115254, + "Ġåı·": 115255, + "Ġteor": 115256, + "åĤ¨": 115257, + "ĠÑĢÑĸÑĩ": 115258, + "ĠÑģÑĤаÑĤÑĤÑĸ": 115259, + "ĠرابطÙĩ": 115260, + "Ġï¼ľ": 115261, + "باØŃ": 115262, + "ิà¸Ļà¸Ĺาà¸ĩ": 115263, + "à¥ĩà¤ĤĊ": 115264, + "ائÙĤ": 115265, + "ĠاÙĦجدÙĬد": 115266, + "liÄį": 115267, + "اØŃÙĦ": 115268, + "ménÄĽ": 115269, + "Ġbầu": 115270, + "ĠÐĴал": 115271, + "Ġблагод": 115272, + "еÑĤелÑĮ": 115273, + "å¹³åĿĩ": 115274, + "мин": 115275, + "Ġsürec": 115276, + "Ġзавод": 115277, + "èįIJ": 115278, + "ÑĤий": 115279, + "лоб": 115280, + "Ġвок": 115281, + "ladıģı": 115282, + "اÙĬÙĬ": 115283, + "ê²łìĬµëĭĪëĭ¤": 115284, + "Ġamacıyla": 115285, + "ï¼ĮåĽłä¸º": 115286, + "ãģ§ãģĤãģ£ãģŁ": 115287, + "ĠشرÙĪع": 115288, + "æŁĶ": 115289, + "'nun": 115290, + "окол": 115291, + "Ġciddi": 115292, + "Ġbụ": 115293, + "Ġyapılacak": 115294, + "ĠÑĩÑĥвÑģÑĤв": 115295, + "ìĤ¬ìĿĺ": 115296, + "à¸Ńà¸Ļà¸Ķ": 115297, + "ÎĹΤ": 115298, + "Ġëĭ¤ìĸij": 115299, + "ëĭ¤ë©´": 115300, + "imizi": 115301, + "ä¹Ĥ": 115302, + "ãģ²ãģ¨": 115303, + "ĠéĿŀ": 115304, + "âĢĮپدÛĮا": 115305, + "ä¹ĺ": 115306, + "ãĥĬãĥ«": 115307, + "ĠпÑĸдпÑĢиÑĶмÑģÑĤва": 115308, + "à¹ij": 115309, + "è¿Ŀ": 115310, + "ĠÙħÙĨÙĩ": 115311, + "ÑĢик": 115312, + "аÑĢÑĸв": 115313, + "Ġкого": 115314, + "ĠÙĤص": 115315, + "ĠæĿ¥": 115316, + "ĠPhòng": 115317, + "Ġово": 115318, + "ĠпеÑĢева": 115319, + "飲": 115320, + "à¤Ĥà¤Łà¤°": 115321, + "ÙĬرا": 115322, + "ildiÄŁi": 115323, + "etin": 115324, + "Ïĩεία": 115325, + "Ġzahrani": 115326, + "ÙĪجد": 115327, + "Ġç¯": 115328, + "ารย": 115329, + "Ġзако": 115330, + "ĠتÙĤس": 115331, + "ãĤ¹ãĤ¿ãĥ¼": 115332, + "æĿ°": 115333, + "ĠãĤ°": 115334, + "Ġé»Ħ": 115335, + "ĠÐļогда": 115336, + "५": 115337, + "Ġ次": 115338, + "ĠвÑĭÑĢаж": 115339, + "ĠchÄĥm": 115340, + "лÑıÑĶÑĤÑĮÑģÑı": 115341, + "دÙĩÙħ": 115342, + "Ġvrch": 115343, + "çºĮ": 115344, + "поÑĢ": 115345, + "ĠmaÄŁ": 115346, + "å¾ĴæŃ©": 115347, + "podob": 115348, + "ะà¹ģ": 115349, + "éģ¸æīĭ": 115350, + "帯": 115351, + "Ġsebou": 115352, + "inize": 115353, + "ĠÐľÐ°Ðº": 115354, + "ĠæĻ®": 115355, + "ĠÏħÏĢάÏģÏĩ": 115356, + "ĠÄIJÃł": 115357, + "ĠBrno": 115358, + "ĠÅ¡ÃŃ": 115359, + "اÙĦص": 115360, + "Ġnghiêm": 115361, + "Ġonları": 115362, + "ĠužÃŃ": 115363, + "èĩªåĪĨãģ®": 115364, + "ĠнаÑħодиÑĤÑģÑı": 115365, + "Ġjsi": 115366, + "Ġसमर": 115367, + "ĠÏĨÏī": 115368, + "Û±Û¹Û¸": 115369, + "Ġà¤ľà¤Ĺह": 115370, + "éŃļ": 115371, + "ìĿ¸ê°Ģ": 115372, + "ÄIJiá»ģu": 115373, + "ĠأعÙĦاÙħ": 115374, + "à¥ĩà¤Ĥ।Ċ": 115375, + "å½¢æĪIJ": 115376, + "Ġikt": 115377, + "Ġzdroj": 115378, + "ĠAmerik": 115379, + "ΡÎĵ": 115380, + "à¸ĩส": 115381, + "ĠíĴĢ": 115382, + "ÑģолÑİÑĤ": 115383, + "ÙĪÙĬت": 115384, + "Ġgörüntü": 115385, + "аннÑĭÑħ": 115386, + "ĠØ£ÙĤ": 115387, + "ĠмиÑĢ": 115388, + "å«Į": 115389, + "Ġmá»iji": 115390, + "Ġderin": 115391, + "éĴĪ": 115392, + "ĠмаÑĪи": 115393, + "측": 115394, + "ĠجÙĨÙĪب": 115395, + "ĠÑģло": 115396, + "ãĢĤä¸Ģ": 115397, + "ениÑıÑħ": 115398, + "ĠÑĩоловÑĸк": 115399, + "Ġyana": 115400, + "ĠокÑĤ": 115401, + "ĠнеÑĢ": 115402, + "æĪ¶": 115403, + "нÑĮомÑĥ": 115404, + "ĠÑĸмен": 115405, + "ãĤıãģŁãģĹ": 115406, + "ĠÎĵια": 115407, + "ãĢģç§ģ": 115408, + "Ġkou": 115409, + "ĠÑĨеÑĢк": 115410, + "layarak": 115411, + "ãĢĩ": 115412, + "اÙĦس": 115413, + "ÂłT": 115414, + "ĠдÑĢÑĥж": 115415, + "ĠдвоÑĢ": 115416, + "λί": 115417, + "ĠëĨĢ": 115418, + "Ġteplot": 115419, + "Ùģات": 115420, + "бÑĸ": 115421, + "Ġgüvenlik": 115422, + "nÄĽn": 115423, + "è©©": 115424, + "Ġinsanların": 115425, + "ĠìĦ¤ì¹ĺ": 115426, + "èĵĿ": 115427, + "avatel": 115428, + "jev": 115429, + "ĠÚĨرا": 115430, + "Ġgerekiyor": 115431, + "ãĥĥãĤ°": 115432, + "ĠÃĩok": 115433, + "ĠÙĪجÙĩ": 115434, + "ĠÑĥли": 115435, + "Âij": 115436, + "åijĢ": 115437, + "ĠоÑĢганизаÑĨии": 115438, + "ĠÑĸÑģнÑĥ": 115439, + "Ġnebude": 115440, + "Ġë°¤": 115441, + "ä¸ĬãģĮ": 115442, + "Ġधन": 115443, + "ĠرÙĪابط": 115444, + "γγελ": 115445, + "ĠдоÑģÑıг": 115446, + "ĠاÙĦÙĤدÙħ": 115447, + "ĠзнаÑħод": 115448, + "ĠÄįÃŃslo": 115449, + "ÅŁk": 115450, + "ĠاÙĦدÙĬÙĨ": 115451, + "Ġgünlük": 115452, + "ÙĥÙĬÙĬÙģ": 115453, + "ÎŃÏģα": 115454, + "à¸ķรว": 115455, + "ĠналиÑĩи": 115456, + "اÙħÛĮÙĨ": 115457, + "Ġμικ": 115458, + "Ġdönemde": 115459, + "à¹Īà¸Ĺ": 115460, + "æĥij": 115461, + "à¥ĭà¤Ĥ,": 115462, + "ÑĩÑı": 115463, + "ãģ¾ãĤĭ": 115464, + "ĠاÙĦتÙĨ": 115465, + "ÑĢаг": 115466, + "ëĵ¤ê³¼": 115467, + "ŃĶ": 115468, + "ĠÙħÙĨÙĩا": 115469, + "ĠThế": 115470, + "éIJµ": 115471, + "Ġï¾Ħ": 115472, + "ĠاÙĦإسÙĦاÙħ": 115473, + "ãĤ¦ãĤ¹": 115474, + "ÙĬدÙĬ": 115475, + "Ġå¾Ĺ": 115476, + "ĠзаÑĢаз": 115477, + "ãĤ¸ãĥ¥": 115478, + "Ġتعد": 115479, + "iÃŃ": 115480, + "Ġçocu": 115481, + "ozici": 115482, + "Ġë²Ķ": 115483, + "ĠØ¢ÙħدÙĩ": 115484, + "ÑĦик": 115485, + "ĠпоÑģÑĤанов": 115486, + "Ġkrálov": 115487, + "¨¨": 115488, + "Ġì¤ijìļĶ": 115489, + "ĠGWei": 115490, + "Ġvývoj": 115491, + "Ġboyut": 115492, + "Ġnek": 115493, + "اÙĩاÛĮ": 115494, + "ĠstranÄĽ": 115495, + "ием": 115496, + "ĠпоÑĢаж": 115497, + "à¥įरदर": 115498, + "é¡ĶãĤĴ": 115499, + "ĠYüz": 115500, + "ĠознаÑĩа": 115501, + "à¹ģลà¸Ļà¸Ķ": 115502, + "ĠبÙĩرÙĩ": 115503, + "енÑĤÑĥ": 115504, + "ĠÐĿад": 115505, + "ĠÐŁÐ¾Ð»ÑĮ": 115506, + "ãĥĹãĥª": 115507, + "ῶ": 115508, + "âĢĮپدÛĮاÛĮ": 115509, + "ĠپاÙĪرپÙĪÛĮÙĨت": 115510, + "ิà¸ģา": 115511, + "ĠενÏİ": 115512, + "ĠساÛĮر": 115513, + "éģº": 115514, + "ãĢģä»Ĭ": 115515, + "ĠLê": 115516, + "äºĭæĥħ": 115517, + "ĠYer": 115518, + "èħ°": 115519, + "ĠاÙĦرسÙħ": 115520, + "ĠاÙĦÙħÙĪÙĤع": 115521, + "ĠhÃłm": 115522, + "ĠдÑĢев": 115523, + "átel": 115524, + "ĠвÑģÑij": 115525, + "ìĺ¥": 115526, + "ĠMec": 115527, + "ãĤĽ": 115528, + "Ġصاد": 115529, + "Ġگردد": 115530, + "Ġkrás": 115531, + "èĮĥåĽ´": 115532, + "alarına": 115533, + "èĻļ": 115534, + "ĠØ¢ÙĪرد": 115535, + "ç¼ĵ": 115536, + "ิà¸ŀ": 115537, + "Ġãĥĭ": 115538, + "ĠæĢ§": 115539, + "ĠÙħÙĨØ°": 115540, + "ç·´": 115541, + "Ġê¶ģ": 115542, + "ваем": 115543, + "ĠζÏī": 115544, + "Ġnavr": 115545, + "ÏĥÏĦαÏĥη": 115546, + "Ġرأ": 115547, + "Ġdopl": 115548, + "___": 115549, + "çĶļèĩ³": 115550, + "Äįel": 115551, + "æĦıåij³": 115552, + "ç¥Ń": 115553, + "Ãĺ": 115554, + "ÑģÑĤвеннÑĭе": 115555, + "裡": 115556, + "ĠãĢī": 115557, + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ": 115558, + "Ġвал": 115559, + "Ġẩm": 115560, + "Ġdiyor": 115561, + "à¸Ńà¸ĩà¸Īาà¸ģ": 115562, + "ĠPhó": 115563, + "ĠÐĵе": 115564, + "ĠвеÑĢеÑģ": 115565, + "Ġkonz": 115566, + "رز": 115567, + "ĠÑģобоÑİ": 115568, + "Ġεκεί": 115569, + "ìĺģìĸ´": 115570, + "iag": 115571, + "ĠÑģенÑĤ": 115572, + "Ġnấu": 115573, + "Ġjaké": 115574, + "Ġrozh": 115575, + "Ġбог": 115576, + "ÙĨاد": 115577, + "ĠاÙħÙĪر": 115578, + "à¹Įà¸ģาร": 115579, + "ĠYaÅŁ": 115580, + "éĪ": 115581, + "åķª": 115582, + "Ġonay": 115583, + "ìĹĩ": 115584, + "omu": 115585, + "ÑĨÑĸйного": 115586, + "ĠÑģал": 115587, + "ĠΣÏħν": 115588, + "Ġsavun": 115589, + "å¦Ļ": 115590, + "à¸Īะม": 115591, + "ãĤ¹ãĤ¯": 115592, + "Ġdosy": 115593, + "ľĺ": 115594, + "먹": 115595, + "Ġminul": 115596, + "ãĢĭĊ": 115597, + "åģı": 115598, + "ĠÐļаÑĤ": 115599, + "Ġedilmesi": 115600, + "ÑĨÑĸÑĶн": 115601, + "ìĦ±ìĿ´": 115602, + "åĸĶ": 115603, + "ĠвÑĸÑĢ": 115604, + "è¯ij": 115605, + "ाà¤ĩड": 115606, + "ĠÙĪÙĤتÛĮ": 115607, + "ÄIJá»ĥ": 115608, + "ĠvyÅ¡Å¡ÃŃ": 115609, + "Äįila": 115610, + "адÑĥ": 115611, + "çī¹åĪ¥": 115612, + "ĠìĿ¸ê¸°": 115613, + "ujÃŃcÃŃch": 115614, + "ĠPodle": 115615, + "ĠyavaÅŁ": 115616, + "Ļæ±Ł": 115617, + "Ġkayb": 115618, + "åĬª": 115619, + "ç´¹": 115620, + "ĠобÑĢабоÑĤ": 115621, + "ĠмаÑı": 115622, + "ĠåıĬ": 115623, + "æİ¥åıĹ": 115624, + "ÙĨتÛĮ": 115625, + "ĠÏĩÏİ": 115626, + "ÑĤÑĢо": 115627, + "Ġuyar": 115628, + "ĠعÙħÙĦکرد": 115629, + "ĠоÑĨен": 115630, + "ĠмеÑģÑĤа": 115631, + "à¸ķลาà¸Ķ": 115632, + "ÙħÙĤ": 115633, + "ildren": 115634, + "ĠзавиÑģиÑĤ": 115635, + "ÂłĠÂł": 115636, + "Ġmožná": 115637, + "æĺŃåĴĮ": 115638, + "ırken": 115639, + "кин": 115640, + "åĿĤ": 115641, + "ÏĦÏĥι": 115642, + "ĠÑĩÑĥд": 115643, + "Ðļон": 115644, + "islav": 115645, + "ĠÐļÑĢаÑģ": 115646, + "Nej": 115647, + "Âłb": 115648, + "rof": 115649, + "Ġileri": 115650, + "ĠÐŀÑĢ": 115651, + "ĠChá»ī": 115652, + "Ġnüfus": 115653, + "ĠÑĸнÑĤ": 115654, + "!âĢľ": 115655, + "Ġनर": 115656, + "主ä¹ī": 115657, + "ĠتÙĨظ": 115658, + "ůvodu": 115659, + "ĠгоÑĢода": 115660, + "Ġkural": 115661, + "Ġjedin": 115662, + "ÑĢаÑĤег": 115663, + "åĢº": 115664, + "Ġzpůsobem": 115665, + "ìĿ¸ìĿĺ": 115666, + "ĠÙĨب": 115667, + "ĠNga": 115668, + "ĠÐĿай": 115669, + "ĠاÙģزار": 115670, + "нÑĥвÑģÑı": 115671, + "ĠдвоÑħ": 115672, + "Ġrozp": 115673, + "είοÏħ": 115674, + "Ġοικο": 115675, + "ĠGeç": 115676, + "ÂĹ": 115677, + "Ġchiếm": 115678, + "ĠÑĢаÑģпÑĢоÑģÑĤÑĢан": 115679, + "ĠhÆ°Æ¡ng": 115680, + "èĩªåĭķ": 115681, + "ĠÙħÙĪÙģÙĤ": 115682, + "æĮ¥": 115683, + "ï¼ģâĢĿĊĊ": 115684, + "ÏģοÏĨοÏģ": 115685, + "èıĮ": 115686, + "ãĥ´ãĤ¡": 115687, + "欧ç¾İ": 115688, + "ĠÑĤепло": 115689, + "ãģĤãģĤ": 115690, + "ãĤ¦ãĥ³": 115691, + "ĠÅŁeyi": 115692, + "Ġsüt": 115693, + "ãģ¹ãģ¦": 115694, + "ãĥ³ãĥij": 115695, + "μÎŃνÏīν": 115696, + "Ġgenellikle": 115697, + "ĠدرÙħاÙĨ": 115698, + "Ùª": 115699, + "Ġakıl": 115700, + "ĠÐľÑĭ": 115701, + "ĠetmiÅŁ": 115702, + "Å¡la": 115703, + "ĠвозможноÑģÑĤÑĮ": 115704, + "Ġgüncel": 115705, + "Ġnáro": 115706, + "å½¢å¼ı": 115707, + "ĠαÏĢοÏĦε": 115708, + "ĠмÑĸÑģÑĨÑı": 115709, + "Ġرض": 115710, + "ä¸įçŁ¥éģĵ": 115711, + "rava": 115712, + "ĠÎļά": 115713, + "ิà¸Ļà¸Ĺร": 115714, + "ĠлиÑģÑĤÑĮ": 115715, + "èĨľ": 115716, + "ãģ«ãģªãĤĬ": 115717, + "ĠæĿ¾": 115718, + "å®ı": 115719, + "ĠмиÑģ": 115720, + "átnÃŃ": 115721, + "Ġyıllık": 115722, + "ĠMerkezi": 115723, + "Ġiçeri": 115724, + "ÅĻÃŃž": 115725, + "ĠpÅĻe": 115726, + "ÏĩÏģι": 115727, + "Ġåįĥ": 115728, + "Ġsrp": 115729, + "à¹Ĥà¸Ĺร": 115730, + "ĠKrál": 115731, + ".Σ": 115732, + "ával": 115733, + "léd": 115734, + "Ġλα": 115735, + "ียวà¸ģ": 115736, + "ãģıãģª": 115737, + "ĠvÅ¡ichni": 115738, + "ĠпÑĢедоÑģÑĤав": 115739, + "ì¿": 115740, + "Ġ구ê¸ĢìĥģìľĦ": 115741, + "Ġà¤īपलब": 115742, + "воз": 115743, + "ĠëħĦëıĦë³Ħ": 115744, + "、_": 115745, + "à¸ļรร": 115746, + "ĠÑģвÑĸÑĤÑĥ": 115747, + "ĠÑĢÑĥблей": 115748, + "lenme": 115749, + "lÃŃÄį": 115750, + "ÏĦει": 115751, + "Ġåı¤": 115752, + "ĠObrázky": 115753, + "Ġìĺģíĸ¥": 115754, + "ĠгÑĢаждан": 115755, + "íĤ¹": 115756, + "Ġsahiptir": 115757, + "ĠпоÑĩаÑĤкÑĥ": 115758, + "ĠØ£ÙĬض": 115759, + "ĠÑĤоÑĢгов": 115760, + "Ġgelecek": 115761, + "Ġ문íĻĶ": 115762, + "ikleri": 115763, + "ĠнеобÑħÑĸдно": 115764, + "Ġäºij": 115765, + "ovol": 115766, + "Ġदल": 115767, + "ĠìķĬê³ł": 115768, + "Ġмг": 115769, + "Ġzjist": 115770, + "anlı": 115771, + "ัà¸ĩà¸Ļ": 115772, + "ÑĢаÑħов": 115773, + "ινη": 115774, + "ĠплоÑĤ": 115775, + "Ġnitel": 115776, + "ìĬ¤íģ¬": 115777, + "ĠSonra": 115778, + "ĠÑģбоÑĢ": 115779, + "ĠÏĥοÏħ": 115780, + "Ġolmam": 115781, + "Ġanaliz": 115782, + "à¹Įว": 115783, + "Ġmỹ": 115784, + "ceae": 115785, + "Ġден": 115786, + "веÑĢжд": 115787, + "Ả": 115788, + "ãģĵãģ¨ãĤĤ": 115789, + "ìĤ¬íķŃ": 115790, + "è¨Ģãģ£ãģŁ": 115791, + "Ġì¹´ì§Ģëħ¸": 115792, + "ÑĢиÑĤи": 115793, + "Ġchce": 115794, + "Ġçevir": 115795, + "ÛĮÛĮÙĨ": 115796, + "ä¼ļè®®": 115797, + "ัมà¸ŀ": 115798, + "ĠåĦ": 115799, + "Ġپدر": 115800, + "å¼ıä¼ļ社": 115801, + "ĠÑĨен": 115802, + "ิà¸ĸ": 115803, + "Ġjinak": 115804, + "ĠблÑİ": 115805, + "иÑĨин": 115806, + "ÙĴÙĩ": 115807, + "Ú©ÙĪر": 115808, + "Ġìķħ": 115809, + "eksiyon": 115810, + "ĠÑģвеÑĢ": 115811, + "ĠобÑĢазованиÑı": 115812, + "ĠãĥĻ": 115813, + "æľī人": 115814, + "Ġbilgileri": 115815, + "Ġhầu": 115816, + "еÑĢÑĸг": 115817, + "ĠvaÅ¡e": 115818, + "Ġnedir": 115819, + "ä¸įå¾Ĺ": 115820, + "ĠbaÅŁarılı": 115821, + "Ġkaybet": 115822, + "å©·": 115823, + "ĠÐĿав": 115824, + "Ġê´Ģíķľ": 115825, + "ÑģÑĤÑİ": 115826, + "å®ŀéĻħ": 115827, + "klady": 115828, + "даÑĤÑĮ": 115829, + "raç": 115830, + "Ġkuvvet": 115831, + "à¸ģารà¸Ĺ": 115832, + "åļ": 115833, + "ĠÑĢеп": 115834, + "Ġà¸Ŀ": 115835, + "ĠDiÄŁer": 115836, + "íĶĦíĬ¸": 115837, + "ĠnejvÄĽtÅ¡ÃŃ": 115838, + "Ġìłģìļ©": 115839, + "ĠonemocnÄĽnÃŃ": 115840, + "ака": 115841, + "ÐłÐ°Ð·": 115842, + "ĠÙģØ¥ÙĨ": 115843, + "ãĤµãĤ¤ãĤº": 115844, + "Ġvlád": 115845, + "Ġrady": 115846, + "ãĢģãģĵãĤĮ": 115847, + "ÑģÑĤвие": 115848, + "lıģa": 115849, + "åŃĶ": 115850, + "Ġáo": 115851, + "à¸Ńาà¸ģาศ": 115852, + "Ġà¤ıम": 115853, + "δαÏĤ": 115854, + "ĠапÑĢ": 115855, + "æİĽ": 115856, + "Ġç«ĭ": 115857, + "âĸıâĸı": 115858, + "ĠСм": 115859, + "Ġnemá": 115860, + "Ġè¢": 115861, + "νομα": 115862, + "ĠÙģرÙĪد": 115863, + "Ġülke": 115864, + "ĠæĺŁ": 115865, + "ัà¸Ļà¸ģ": 115866, + "ãģķãĤĵãģ®": 115867, + "eÅŁil": 115868, + "ÄŁiz": 115869, + "ĠÐijоÑĢ": 115870, + "Ġtầm": 115871, + "ειÏĦοÏħÏģγ": 115872, + "ĠγÏģα": 115873, + "à¥įषà¤ķ": 115874, + "Ġvẻ": 115875, + "Ġkendisine": 115876, + "ĠìķĮê³ł": 115877, + "ĠêµŃìłľ": 115878, + "ĠnÄĽkdo": 115879, + "ĠÛĮÙĩ": 115880, + "Ġکاربر": 115881, + "ãĥĻãĥ«": 115882, + "ï»´": 115883, + "Ġtuyên": 115884, + "Ġçat": 115885, + "âĢIJâĢIJ": 115886, + "Âı": 115887, + "ĠìĤ¬ìĹħ": 115888, + "éĨĴ": 115889, + "æıIJé«ĺ": 115890, + "æ·¡": 115891, + "ĠÄŁ": 115892, + "èĸ¦": 115893, + "ãĢĭï¼Ī": 115894, + "æ¡ĥ": 115895, + "ìĹĦ": 115896, + "ĠæŀĹ": 115897, + "ÄĤ": 115898, + "ĠÄĮech": 115899, + "αιο": 115900, + "ĠطرÙĬÙĤ": 115901, + "ĠзавеÑĢÑĪ": 115902, + "تÙĪبر": 115903, + "ĠØŃج": 115904, + "ĠÎŃÏĩοÏħν": 115905, + "¿ÃĤ": 115906, + "ĠdÄĽtÃŃ": 115907, + "Ġiçine": 115908, + "ĠChúa": 115909, + "аннÑĭй": 115910, + "ĠÙĪÛĮÚĺ": 115911, + "Ġnastav": 115912, + "ısına": 115913, + "ĠÑĹм": 115914, + "пон": 115915, + "енÑı": 115916, + "ĠÙĪظ": 115917, + "Ú¯ÙĦ": 115918, + "หลวà¸ĩ": 115919, + "Ġzastav": 115920, + "акон": 115921, + "³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³": 115922, + "ĠKır": 115923, + "絶": 115924, + "ĠоÑĢганÑĸзаÑĨÑĸÑĹ": 115925, + "ãģŁãĤĬ": 115926, + "Ø°ÙĬ": 115927, + "Ġरà¤ķ": 115928, + "ampiyon": 115929, + "Ġæ¸ħ": 115930, + "çľ¼çĿĽ": 115931, + "ĠìķĬìĿĢ": 115932, + "鹿": 115933, + "Ġå¿ĥ": 115934, + "ĠпÑĢекÑĢаÑģ": 115935, + "ĠÑģегоднÑı": 115936, + "Ġसल": 115937, + "ĠÏħÏĢÏĮ": 115938, + "ĠÐķго": 115939, + "ĠÐĽÐ¸": 115940, + "ãĤ¨ãĥ«": 115941, + "ĠлÑİÑĤ": 115942, + "饰": 115943, + "Ġvzdál": 115944, + "¯ÃĤ": 115945, + "ĠнаÑıв": 115946, + "ĠتشکÛĮÙĦ": 115947, + "ĠسÙĪÛĮ": 115948, + "Ġtái": 115949, + "Ġkapı": 115950, + "ĠsvÄĽtÄĽ": 115951, + "δÏĮν": 115952, + "æ¼¢": 115953, + "ìį¨": 115954, + "ĠbaÅŁvur": 115955, + "ÑĢина": 115956, + "Ġkelim": 115957, + "аÑĤок": 115958, + "Ġκάθε": 115959, + "ĠYüksek": 115960, + "à¹ĩà¸Ļà¸ľ": 115961, + "éłĤ": 115962, + "åIJĮæĻĤ": 115963, + "ÅŁtır": 115964, + "วà¸ĩศ": 115965, + "oty": 115966, + "Ġارد": 115967, + "ĠìŀIJìĭłìĿĺ": 115968, + "ĠÑıнва": 115969, + "üyordu": 115970, + "æĿ¨": 115971, + "ĠâĢĵĊ": 115972, + "ï¼Įå®ĥ": 115973, + "ейн": 115974, + "ĠпеÑĢеÑĤ": 115975, + "ĠdeÄŁiÅŁiklik": 115976, + "ĠогÑĢаниÑĩ": 115977, + "ìĦľìļ¸": 115978, + "Ġgeliyor": 115979, + "ĠپذÛĮر": 115980, + "åĵ²": 115981, + "eyin": 115982, + "ĠëıĪ": 115983, + "Ġuniverz": 115984, + "Ġhned": 115985, + "ĠtáºŃn": 115986, + "voÅĻÃŃ": 115987, + "Ġniên": 115988, + "dÄĽpodob": 115989, + "ìĤ¬íļĮ": 115990, + "ãģĮãģĤãĤĬ": 115991, + "ĠÑģÑĸÑĩ": 115992, + "''\"": 115993, + "Ġtoplantı": 115994, + "ĠÑģÑĩеÑĤ": 115995, + "åĩĨå¤ĩ": 115996, + "анÑĸÑı": 115997, + "Ġzel": 115998, + "vala": 115999, + "Ġапп": 116000, + "ĠاÙĦÙħÙĦÙĥ": 116001, + "ĠhoÅŁ": 116002, + "ĠÐĵен": 116003, + "ÑĤаб": 116004, + "ĠÄĮesko": 116005, + "Ġмайже": 116006, + "ĠmÄĽsto": 116007, + "yonel": 116008, + "거리": 116009, + "Ġìĺ¨ëĿ¼ìĿ¸": 116010, + "ç´¯": 116011, + "Ġderec": 116012, + "ĠокÑĢÑĥж": 116013, + "Ġyabancı": 116014, + "ĠíĦ°": 116015, + "ĠèµĦ": 116016, + "ÎĻÎļÎĹ": 116017, + "ĠпÑĭ": 116018, + "ĠvÄĽn": 116019, + "инки": 116020, + "ụp": 116021, + "æľºæ¢°": 116022, + "ĠìķĮ볤": 116023, + "ëħķ": 116024, + "ĠλÏĮγ": 116025, + "eyn": 116026, + "ĠëIJĺìĹĪëĭ¤": 116027, + "污": 116028, + "Ġvedle": 116029, + "ĠÙĥتب": 116030, + "맨": 116031, + "ĠÙħÙĤاÙĪ": 116032, + "å¹´ãģ«": 116033, + "ाà¤ĩà¤ķ": 116034, + "ĠÑģÑĤоÑģ": 116035, + "ĠÏĥÏĦοÏħÏĤ": 116036, + "меÑĤÑĮ": 116037, + "Ġesas": 116038, + "ëIJĺê³ł": 116039, + "ĠkvÄĽtna": 116040, + "Ġéľ": 116041, + "dük": 116042, + "åŁ·": 116043, + "èªĮ": 116044, + "Ġmluv": 116045, + "ĠпÑĢинÑı": 116046, + "Ġpoté": 116047, + "ĠÚ©ÙĨÙħ": 116048, + "ĠпÑĢедлож": 116049, + "ĠÐľÐ¾Ñģква": 116050, + "ï¼Įå¦Ĥ": 116051, + "Ġsvém": 116052, + "ĠاÙħÙĨ": 116053, + "สาย": 116054, + "ĠÑĥменÑĮ": 116055, + "Ġãģĵãģ®": 116056, + "åīĤ": 116057, + "ĠÑģеÑĢÑĮ": 116058, + "Ġmá»ĩ": 116059, + "Ġä¹Ŀ": 116060, + "ĠзакÑĸн": 116061, + "ĠвелиÑĩ": 116062, + "ĠконÑĤÑĢа": 116063, + "ĠSosyal": 116064, + "Ġyukarı": 116065, + "ĠدÙĪب": 116066, + "侧": 116067, + "Ġзамен": 116068, + "ï»®": 116069, + "ĠsobÄĽ": 116070, + "ĠТакже": 116071, + "Ðİ": 116072, + "εδ": 116073, + "ÙħارÛĮ": 116074, + "ξι": 116075, + "ì¹Ń": 116076, + "ĠплаÑģÑĤи": 116077, + "ÏĥοÏħν": 116078, + "èľĺèĽĽè¯į": 116079, + "ÙĪÛĮزÛĮ": 116080, + "ĠnapÅĻ": 116081, + "ĠÑĤипа": 116082, + "à¥Ĥà¤Ľ": 116083, + "ĠÅŁah": 116084, + "лÑıÑĤи": 116085, + "بÛĮر": 116086, + "ระยะ": 116087, + "ĠболÑĮÑĪин": 116088, + "ÏĦηÏĦα": 116089, + "Ġíıīê°Ģ": 116090, + "Ġprojev": 116091, + "òi": 116092, + "ĠкнÑı": 116093, + "ÏĨεÏģ": 116094, + "еÑĢÑĥ": 116095, + "Ñįн": 116096, + "ĠعÙħÙĦÛĮ": 116097, + "à¤łà¤¨": 116098, + "ãĥ³ãĤ¯": 116099, + "ĠìķĦëŀĺ": 116100, + "ÎĪ": 116101, + "Ġباست": 116102, + "ĠتÙĥ": 116103, + "aÄįnÃŃ": 116104, + "ĠлÑĸкÑĥваннÑı": 116105, + "à¸Ħà¹Ĥà¸Ļ": 116106, + "Ġèĥ½": 116107, + "θλη": 116108, + "lenmiÅŁ": 116109, + "Ġlá»Ļ": 116110, + "Ġsilah": 116111, + "ĠAustr": 116112, + "ØŃÙĤ": 116113, + ".***.***": 116114, + "ì©": 116115, + "ĠgÃł": 116116, + "ĠبازبÛĮÙĨÛĮ": 116117, + "ĠÄijÃłn": 116118, + "ÃŃky": 116119, + "ĠÎķν": 116120, + "ضÙħ": 116121, + "å§ĵ": 116122, + "ĠÙĨÙĪÛĮس": 116123, + "Ġskupiny": 116124, + "ĠسÛĮد": 116125, + "Ġaldıģı": 116126, + "meli": 116127, + "виж": 116128, + "ì¹ĺëĬĶ": 116129, + "оваÑħ": 116130, + "Ġæ©": 116131, + "Ø´ÙĨاسÛĮ": 116132, + "Ġnimi": 116133, + "ĠÐĵÑĢи": 116134, + "íĹĮ": 116135, + "Ġкв": 116136, + "éŁĵ": 116137, + "ĠíĽĦ기": 116138, + "ĠstÅĻÃŃ": 116139, + "ĠкÑĸлÑĮкÑĸÑģÑĤÑĮ": 116140, + "ĠBakanlıģı": 116141, + "ĠменÑĮÑĪе": 116142, + "اÙĪÛĮ": 116143, + "ĠارÙĪÙ¾": 116144, + "Ġèī²": 116145, + "ĠÚ©ÙĪÚĨÚ©": 116146, + "ĠAynı": 116147, + "ĠäºĨ": 116148, + "ĠسÙģر": 116149, + "ĠÑĤеаÑĤ": 116150, + "ĠvÄĽd": 116151, + "аÑĢов": 116152, + "Ġобмеж": 116153, + "ĠìķĬìķĺ": 116154, + "追åĬł": 116155, + "éłĪ": 116156, + "dÄĽlenÃŃ": 116157, + "Ġkims": 116158, + "Ġèı²": 116159, + "ĠгÑĢÑĥн": 116160, + "ĠØ¢ÙĦÙħاÙĨ": 116161, + "Ġавг": 116162, + "ĠÑīоÑģÑĮ": 116163, + "Ġå¾·": 116164, + "ĠÐĿаÑĨÑĸоналÑĮ": 116165, + "æĪIJç«ĭ": 116166, + "ูà¸Ļย": 116167, + "ãĥ¼ãĥ«ãĥī": 116168, + "éĽ²": 116169, + "ĠTá»ķ": 116170, + "cılık": 116171, + "ĠAlmanya": 116172, + "ĠovÅ¡em": 116173, + "Âĭ": 116174, + "ĠÏĩÏģηÏĥιμοÏĢοι": 116175, + "Ġörgüt": 116176, + "िसस": 116177, + "èĹĿ": 116178, + "ĠGiải": 116179, + "Ġsvob": 116180, + "Ġrůzných": 116181, + "Ġsmlouvy": 116182, + "ÑĢеÑģÑģ": 116183, + "ีà¹Ģà¸Ķ": 116184, + "ĠاÙħرÙĪز": 116185, + "ãĤħ": 116186, + "åĿ¦": 116187, + "à¹īà¸Ħ": 116188, + "Ġкаж": 116189, + "å¼Ĺ": 116190, + "ÑĩноÑĹ": 116191, + "åľĪ": 116192, + "ĠØ¢ÙĩÙĨÚ¯": 116193, + "몰": 116194, + "Ġæº": 116195, + "ĠèĦ": 116196, + "ä¸ĢæŃ¥": 116197, + "оÑĩка": 116198, + "Ġprostor": 116199, + "Ġngắn": 116200, + "Ġç·": 116201, + "наÑĢ": 116202, + "Ġà¤ľà¤µ": 116203, + "ĠнаÑĩалÑĮ": 116204, + "Ġнедел": 116205, + "ĠÑģиÑģÑĤемÑĥ": 116206, + "جÙĬ": 116207, + "ادات": 116208, + "Ġæ¢": 116209, + "ĠجاÙħعة": 116210, + "Ġä»İ": 116211, + "Ġà¤ħफ": 116212, + "èĸĦ": 116213, + "ĠباÙĤ": 116214, + "بÙĬع": 116215, + "ãģķãĤĮãģ¦": 116216, + "ĠÃĩalÄ±ÅŁ": 116217, + "Ø®ÙĪاست": 116218, + "ãĥĥãĤ·ãĥ¥": 116219, + "ĠØŃسÛĮÙĨ": 116220, + "ĠобнаÑĢÑĥж": 116221, + "вÑĸдом": 116222, + "Ġhôm": 116223, + "ланд": 116224, + "Ġà¤µà¤ľà¤¹": 116225, + "سÙĬÙĨ": 116226, + "æłı": 116227, + "ĠnavÃŃc": 116228, + "ãĤµãĤ¤ãĥĪ": 116229, + "ĠÑıкомÑĥ": 116230, + "ĠíĽ": 116231, + "ĠYani": 116232, + "ãĤĵãģ§ãģĻ": 116233, + "ĠгÑĢÑĥп": 116234, + "Äįný": 116235, + "ÑĨик": 116236, + "ÙĪÙĬر": 116237, + "ĠXã": 116238, + "Ġfyz": 116239, + "Ġï½ī": 116240, + "âĢĮترÛĮÙĨ": 116241, + "à¤Łà¤ķ": 116242, + "ÑĦоÑĢми": 116243, + "ĠOyun": 116244, + "åł´æīĢ": 116245, + "ØŃØ«": 116246, + "ĠìķĮìķĦ": 116247, + "ÑĢавилÑĮ": 116248, + "ï¼ĮâĢĿ": 116249, + "boru": 116250, + "ĠKullan": 116251, + "ĠKaynak": 116252, + "Ġê°ĸ": 116253, + "ç´Ķ": 116254, + "ï¼Įæ¯ı": 116255, + "ÎĹΡ": 116256, + "Ġpůl": 116257, + "ĠгоÑģÑĤ": 116258, + "رÙĪÙħ": 116259, + "ï¼Įåį³": 116260, + "Û²Û³": 116261, + "ĠÙĨخست": 116262, + "Ġکسب": 116263, + "Ġà¹Ģà¸ļ": 116264, + "Ġyazar": 116265, + "jekt": 116266, + "à¹Ĥลย": 116267, + "ĠдобÑĢе": 116268, + "ĠپزشکÛĮ": 116269, + "ĠتÙĩÛĮÙĩ": 116270, + "ç¾İåľĭ": 116271, + "ноÑģÑıÑĤ": 116272, + "ëłĪìĬ¤": 116273, + "åĹ¯": 116274, + "ĠrÃłng": 116275, + "ĠÎķξ": 116276, + "аÑĤаÑĢ": 116277, + "kova": 116278, + "ĠÅŁeyler": 116279, + "خاص": 116280, + "ĠìķĪìłĦ": 116281, + "Ñīей": 116282, + "Ġë°Ŀ": 116283, + "âĢĮتÙĪاÙĨد": 116284, + "ãģĪãģ°": 116285, + "Ġvữ": 116286, + "ĠÑģама": 116287, + "ĠобоÑĢÑĥд": 116288, + "âĢĮباشد": 116289, + "à¹Įà¸Ń": 116290, + "Ġdetay": 116291, + "æĤ²": 116292, + "ÂĪ": 116293, + "ãĤ¦ãĤ£": 116294, + "ĠпÑĢавила": 116295, + "krét": 116296, + "à¹Įร": 116297, + "åĮ¹": 116298, + "Ġåħį": 116299, + "ĠÑģилÑĮно": 116300, + "ĠиÑģÑĤоÑĩ": 116301, + "ĠsaÄŁlar": 116302, + "ĠæѦ": 116303, + "íĸĪìĬµëĭĪëĭ¤": 116304, + "Không": 116305, + "à¹Īาà¸ĩà¹Ĩ": 116306, + "Û°Û°Û°": 116307, + "ĠرÙĤ": 116308, + "âĢĻÑıÑĤ": 116309, + "åĽ²": 116310, + "à¹ģà¸Ķà¸ĩ": 116311, + "Ġžádné": 116312, + "couz": 116313, + "Ãĭ": 116314, + "ĠпÑĸдгоÑĤов": 116315, + "ĠëĮĢíķĻ": 116316, + "Ġdünyanın": 116317, + "èĢģå¸Ī": 116318, + "èģĮä¸ļ": 116319, + "Ġyeri": 116320, + "à¥ĭà¤ķर": 116321, + "ĠبÙĩتر": 116322, + "ëĭĪìķĦ": 116323, + "ìĿĮìĿĦ": 116324, + "ĠæĮĩ": 116325, + "ãĢįï¼Ī": 116326, + "ĠÑģооÑĤвеÑĤÑģÑĤвии": 116327, + "æĬĵ": 116328, + "à¹Ĥà¸Ĺ": 116329, + "Ġtrá»ĵng": 116330, + "ĠпÑĢаÑĨÑĸ": 116331, + "ĠëĨĵ": 116332, + "à¤ĩन": 116333, + "Ġìłķë§IJ": 116334, + "ãĢķ": 116335, + "ĠcáºŃn": 116336, + "åĸĿ": 116337, + "Ġê³ĦìĨį": 116338, + "Ġä¸İ": 116339, + "å¥ı": 116340, + "ĠعاÙĦÙħ": 116341, + "ĠvysvÄĽt": 116342, + "ĠдоÑĢог": 116343, + "ĠнеÑĢв": 116344, + "ĠбеÑĤ": 116345, + "ĠпÑĢиÑĤ": 116346, + "овÑĭй": 116347, + "å·¡": 116348, + "Ùģاع": 116349, + "ÐļÐĺ": 116350, + "à¸ķรวà¸Ī": 116351, + "ĠÐľÐ°Ð¹": 116352, + "ëıĦë¡ľ": 116353, + "Ġzlat": 116354, + "ĠsaÄŁlam": 116355, + "Ïģαν": 116356, + "à¸Ĭร": 116357, + "å¹´ãģ®": 116358, + "à¸Ħรà¸Ńà¸ĩ": 116359, + "Âħ": 116360, + "Ġhoá": 116361, + "ĠдоволÑĮно": 116362, + "Ġolmaz": 116363, + "ĠpodmÃŃnky": 116364, + "ĠÑħозÑıй": 116365, + "æĻ´": 116366, + "ÑĢова": 116367, + "Ġlược": 116368, + "ानन": 116369, + "ĠкапиÑĤ": 116370, + "ĠÚĺاÙĨ": 116371, + "æľīäºĽ": 116372, + "ĠповеÑĢÑħноÑģÑĤи": 116373, + "ĠÑĨÑĸн": 116374, + "üyle": 116375, + "Ġjazy": 116376, + "ĠPhú": 116377, + "Ġसन": 116378, + "åĩºåĶ®": 116379, + "ÂłÐ´": 116380, + "ĠãĤ¯": 116381, + "çĶ±äºİ": 116382, + "à¥įपत": 116383, + "ĠاÙĦخاÙħ": 116384, + "ĠاصÙĦاØŃ": 116385, + "ĠتÛĮ": 116386, + "Ġtato": 116387, + "å¹¹": 116388, + "æ³½": 116389, + "à¸Ńà¸ģà¸Īาà¸ģ": 116390, + "ÑĥлÑİ": 116391, + "ĠвÑģп": 116392, + "mekte": 116393, + "à¥Ģफ": 116394, + "ĠÚĺÙĪئ": 116395, + "Ġlá»ĩnh": 116396, + "âĢĮکرد": 116397, + "íı¬ì¸ł": 116398, + "anki": 116399, + "Ġëĵ±ë¡ĿëĮĢíĸī": 116400, + "ĠãĤĿ": 116401, + "Ġارزش": 116402, + "Ġthú": 116403, + "Ġấn": 116404, + "è¡Į为": 116405, + "ĠÑģнова": 116406, + "꾸": 116407, + "Ġsouhlas": 116408, + "Ġвозв": 116409, + "ÏģÎŃÏĢει": 116410, + "ĠнÑĸÑĩого": 116411, + "нож": 116412, + "ÑĤик": 116413, + "ãģ©ãģĵ": 116414, + "ĠоÑģнове": 116415, + "ãĤ¥": 116416, + "à¸Ľà¸£à¸°à¸Īำ": 116417, + "Ġà¸Ĺà¸Ńà¸ĩ": 116418, + "Ġeksik": 116419, + "ĠÙĦØ¥": 116420, + "ãģĭãģ®": 116421, + "Ġãģª": 116422, + "-प": 116423, + "Ïģει": 116424, + "ĠìłĦ문": 116425, + "าà¸ģล": 116426, + "βε": 116427, + "íĬ¹ë³Ħ": 116428, + "íķĺë©´ìĦľ": 116429, + "à¸Ħà¹Ĥà¸Ļà¹Ĥลย": 116430, + "Ġ好": 116431, + "Ġyayım": 116432, + "ë§ĮëĤ¨": 116433, + "ĠкиÑģлоÑĤ": 116434, + "ĠÑįнеÑĢг": 116435, + "çĸ¾": 116436, + "Ġدش": 116437, + "Ġsoruml": 116438, + "Ġзаклад": 116439, + "à¸Ĭà¸Ńà¸ļ": 116440, + "ĠÙģرÙĩÙĨÚ¯ÛĮ": 116441, + "Ġà¤ıल": 116442, + "Ġë¹ĦêµIJ": 116443, + "lerce": 116444, + "ĠØ·ÙĦب": 116445, + "ãģ«ãģĹãģ¦": 116446, + "ĠÑıкоÑĹ": 116447, + "ĠاÙĦبتÙĩ": 116448, + "ĠÐľÐ°ÑĤ": 116449, + "åįĵ": 116450, + "Ġåħ¬åı¸": 116451, + "Ġsöyley": 116452, + "ĠìĥĪë¡ľìļ´": 116453, + "ĠÑĦаÑĢ": 116454, + "Ġaltına": 116455, + "Ġstavu": 116456, + "âĢĻı": 116457, + "alizace": 116458, + "ĠвиÑģÑĤÑĥп": 116459, + "æķĻå¸Ī": 116460, + "à¥Ģà¤ıस": 116461, + "odÄĽ": 116462, + "ĠÑĨÑĸл": 116463, + "ĠëĮĢìĥģ": 116464, + "ĠкоÑĤоÑĢом": 116465, + "ĠظرÙģ": 116466, + "éİ®": 116467, + "اÙģÙĬØ©": 116468, + "ĠìĹĨìĿ´": 116469, + "ĠμÏĮνο": 116470, + "ĠCÆ¡": 116471, + "寻": 116472, + "ÏĦιÏĥ": 116473, + "ĠãĤĦ": 116474, + "Ġjednoho": 116475, + "اا": 116476, + "etler": 116477, + "Ġवस": 116478, + "ĠÑĢазлиÑĩнÑĭÑħ": 116479, + "ĠجغراÙģ": 116480, + "Ġthừa": 116481, + "ĠгÑĢомадÑıн": 116482, + "॰": 116483, + "ĠاÙĦأخ": 116484, + "ĠнагÑĢÑĥз": 116485, + "績": 116486, + "à¥Ĥह": 116487, + "ĠпÑĢÑıмо": 116488, + "âĬ": 116489, + "ĠاÙĦØ£ÙĪÙĦÙī": 116490, + "æĸ°èģŀ": 116491, + "ĠìĥģíĻ©": 116492, + "itesi": 116493, + "ëį°ìĿ´íĬ¸": 116494, + "æŃ·": 116495, + "ï¼ĮèĢĮä¸Ķ": 116496, + "ãģ¯ãģļ": 116497, + "产çĶŁ": 116498, + "æ°ĹãģĮ": 116499, + "yslu": 116500, + "ìĸ´ëĤĺ": 116501, + "اکÙħ": 116502, + "âĢĥ": 116503, + ")ìĿĢ": 116504, + "ĠجستارÙĩاÛĮ": 116505, + "ÙĪØ«": 116506, + "ãħİ": 116507, + "Ġkavram": 116508, + "vál": 116509, + "æľŃ": 116510, + "æĤł": 116511, + "ìħĢ": 116512, + "hrad": 116513, + "ĠتÙĥÙĪÙĨ": 116514, + "ĠHòa": 116515, + "å¹´çļĦ": 116516, + "Ġçarp": 116517, + "Ġyolu": 116518, + "Ġdubna": 116519, + "ĠÐĴелик": 116520, + "Ġtôn": 116521, + "æķĮ": 116522, + "Ġcoi": 116523, + "Ġnakonec": 116524, + "ĠÑįÑĤÑĥ": 116525, + "íĨµëł¹": 116526, + "ÑĪел": 116527, + "Ġnebyl": 116528, + "inç": 116529, + "باÙĦØ¥ÙĨجÙĦÙĬزÙĬØ©": 116530, + "A": 116531, + "онÑĮ": 116532, + "ĠнемаÑĶ": 116533, + "Ġê³łê°Ŀ": 116534, + "ĠÙĤطع": 116535, + "ĠÑĤеÑĢиÑĤоÑĢÑĸÑĹ": 116536, + "人ãģ¯": 116537, + "ĠΣα": 116538, + "éĤ£äºĽ": 116539, + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 116540, + "iosper": 116541, + "íĤ¨": 116542, + "raki": 116543, + "اÛĮج": 116544, + "ÂłC": 116545, + "ĠаналÑĸз": 116546, + "ãĤıãĤĬ": 116547, + "ĠìķĦëĭĮ": 116548, + "ĠاÙĦعÙħÙĦÙĬØ©": 116549, + "lament": 116550, + "黨": 116551, + "ujÃŃcÃŃm": 116552, + "Ġrẻ": 116553, + "ä¸įåĪ°": 116554, + "Ġrezerv": 116555, + "ĠاÙĦØ°ÙĬÙĨ": 116556, + "æĭ¥": 116557, + "Ðĺн": 116558, + "Ġतहत": 116559, + "resi": 116560, + "Ġãĥ¢": 116561, + "лев": 116562, + "ãĢĢr": 116563, + "Ġä»Ĭ": 116564, + "Ġödem": 116565, + "Ġpotrav": 116566, + "ĠêµIJìĪĺ": 116567, + "ÑĢеди": 116568, + "ĠÎļÎijÎĻ": 116569, + "ĠнаÑĩала": 116570, + "Ġизб": 116571, + "ĠbÅĻezna": 116572, + "Ġledna": 116573, + "ÑĢÑĥÑİÑĤ": 116574, + "ĠмоÑĤ": 116575, + "åıĹåĪ°": 116576, + "ĠÑĢÑĥкÑĥ": 116577, + "Ỽm": 116578, + "adele": 116579, + "ĠÑĢозглÑı": 116580, + "åħIJ": 116581, + "ĠرÙĪاÙĨ": 116582, + "аков": 116583, + "ÑĥÑĢÑĭ": 116584, + "Ġazal": 116585, + "ĠÑĥкÑĢа": 116586, + "пион": 116587, + "ĠÄįlovÄĽ": 116588, + "äºĮäºĮäºĮäºĮ": 116589, + "ابÙĬ": 116590, + "Ġaslında": 116591, + "ë¹Ī": 116592, + "ĠвÑĢаÑĩ": 116593, + "룹": 116594, + "ĠгенеÑĢа": 116595, + "à¸ģารส": 116596, + "ĠÑģовÑģем": 116597, + "ÙĪÙĦا": 116598, + "Ġशब": 116599, + "ाà¤ĸण": 116600, + "ستاÙĨÛĮ": 116601, + "æĬ½": 116602, + "Ġrůz": 116603, + "ĠíĮIJ매": 116604, + "à¸ģารà¸ķ": 116605, + "ائÛĮ": 116606, + "asal": 116607, + "ĠÑĢабоÑĤÑĥ": 116608, + "à¥ĭलन": 116609, + "Ġ马": 116610, + "Ġlai": 116611, + "ói": 116612, + "vap": 116613, + "ëħĦìĹIJëĬĶ": 116614, + "ĠпеÑĢедбаÑĩ": 116615, + "ĠплеÑĩ": 116616, + "iddet": 116617, + "ĠÑĩоÑĢ": 116618, + "iyan": 116619, + "ãĢĢãĢĢãĢĢãĢĢãĢĢĠãĢĢ": 116620, + "ĠØŃرÙģÙĩ": 116621, + "大éĺª": 116622, + "Ñĩого": 116623, + "Ġки": 116624, + "اÙĪÙĬ": 116625, + "ĠbaÅŁlan": 116626, + "Ġmerkezi": 116627, + "©©": 116628, + "Ġراست": 116629, + "ĠëĬĶ": 116630, + "ĠÑģÑĢав": 116631, + "ĠвнÑĥÑĤÑĢи": 116632, + "ãĢĢãĥİ": 116633, + "åĿĽ": 116634, + "ĠвÑĤ": 116635, + "::/": 116636, + "ĠsözleÅŁ": 116637, + "ĠverdiÄŁi": 116638, + "ิยม": 116639, + "ĠÐŁÑĢоÑĤ": 116640, + "Ùĥار": 116641, + "ĠبÙĨدÛĮ": 116642, + "ÙıÙĪ": 116643, + "缴æĴŃ": 116644, + "ĠÙħÙĦÙĬ": 116645, + "Ġnutné": 116646, + "ะà¹ģà¸Ļà¸Ļ": 116647, + "ĠMã": 116648, + "Ġì´": 116649, + "à¹Īาม": 116650, + "моÑģ": 116651, + "ĠпоÑıви": 116652, + "Ġnghi": 116653, + "ĠëIJĺëĬĶ": 116654, + "Ñģклад": 116655, + "à¤Ĺल": 116656, + "ĠCá»Ļng": 116657, + "çŁ¥è¯Ĩ": 116658, + "Ġtaj": 116659, + "Ġعبر": 116660, + "éĻĦè¿ij": 116661, + "Ã¼ÄŁ": 116662, + "Ġê³µê³ł": 116663, + "è£ķ": 116664, + "âĢĮØ´ÙĨ": 116665, + "Ġgerçekten": 116666, + "nun": 116667, + "ÙħØ´": 116668, + "ê°ĢëĬ¥": 116669, + "ãĥ©ãĥ³ãĥī": 116670, + "ayacak": 116671, + "åįģä¸Ģ": 116672, + "ĠBảo": 116673, + "Ġyeterli": 116674, + "živ": 116675, + "ĠÙĬÙĨاÙĬر": 116676, + "Ġbýval": 116677, + "ìĽĶê¹Įì§Ģ": 116678, + "Ġnợ": 116679, + "Ġê´Ģê³Ħ": 116680, + "ĠíĿ¬": 116681, + "аÑİÑĤÑĮ": 116682, + "Ġgötür": 116683, + "Ġважно": 116684, + "浩": 116685, + "ĠìĿ¼ë¶Ģ": 116686, + "ÑĨÑĸйний": 116687, + "ëł¥ìĿĦ": 116688, + "ĠлеÑĩение": 116689, + "éĸ¢ä¿Ĥ": 116690, + "ĠTüm": 116691, + "ìĻĶ": 116692, + "éģĹ": 116693, + "ĠDön": 116694, + "ĠÑģпÑĸлÑĮ": 116695, + "ãĥģãĤ§": 116696, + "нÑıеÑĤÑģÑı": 116697, + "iltere": 116698, + "ĠíĮĢ": 116699, + "è¨Ńå®ļ": 116700, + "Ġrodin": 116701, + "ĠاÙĤتصاد": 116702, + "алÑĮне": 116703, + "à¥įà¤ķर": 116704, + "ĠvýbÄĽ": 116705, + "Ġtehlik": 116706, + "âĶIJ": 116707, + "ĠçĶ°": 116708, + "ÏģίÏĤ": 116709, + "iyel": 116710, + "Ġthiá»ĩu": 116711, + "ÏĪηÏĤ": 116712, + "Ġдве": 116713, + "ĠElekt": 116714, + "à¸ģà¸İ": 116715, + "оÑĢÑĥж": 116716, + "aÅŁÄ±": 116717, + "詳細": 116718, + "ĠاتÙģاÙĤ": 116719, + "Ġgắn": 116720, + "æ²Ĵæľī": 116721, + "ĠÙħطاÙĦعÙĩ": 116722, + "ÏĦιν": 116723, + "Ġokres": 116724, + "Ñľ": 116725, + "ê°Ķëĭ¤": 116726, + "ÐłÐ¾Ð·": 116727, + "å¾ĭ宾": 116728, + "ï¼īï¼Ī": 116729, + "Ġìļ´ìĺģìŀIJ": 116730, + "ãĤ«ãĥĨ": 116731, + "laÄį": 116732, + "à¥ĩबस": 116733, + "ĠoÄįi": 116734, + "-б": 116735, + "elerden": 116736, + "kových": 116737, + "ĠÄ°zmir": 116738, + "สมาà¸Ĭ": 116739, + "ladatel": 116740, + "Ġæ»": 116741, + "éĶĢåĶ®": 116742, + "ĠдоÑģлÑĸдженнÑı": 116743, + "ĠлÑĸкаÑĢ": 116744, + "Ġоднако": 116745, + "ĠVác": 116746, + "Ġè«": 116747, + "éĢ²è¡Į": 116748, + "以å¤ĸ": 116749, + "é³¥": 116750, + "ĠÙĨج": 116751, + "ĠbaÅŁkan": 116752, + "ĠopatÅĻenÃŃ": 116753, + "ارش": 116754, + "ضاÙģØ©": 116755, + "ãĤ¹ãĥ¬": 116756, + "ήν": 116757, + "ÄĽtÃŃ": 116758, + "วย": 116759, + "ĠرسÙĪÙĦ": 116760, + "ÅĻich": 116761, + "ĠpÅĻih": 116762, + "ÑĮми": 116763, + "çĦ¶èĢĮ": 116764, + "Ġthẳng": 116765, + "lamaz": 116766, + "ÙĢÙĢÙĢ": 116767, + "Ġì°¸ìŬ": 116768, + "ĠÙĨÙĪشتÙĩ": 116769, + "ĠÑģÑĤек": 116770, + "ãģ®ãģ¿": 116771, + "ĠÙĪاÙĦع": 116772, + "æķ¢": 116773, + "à¥Ģà¤Ĥ,": 116774, + "ÐŀÑģнов": 116775, + "имоÑģÑĤи": 116776, + "ĠÄĮeská": 116777, + "ÑĸÑĩний": 116778, + "ามารà¸ĸ": 116779, + "ekkür": 116780, + "Âłh": 116781, + "ικη": 116782, + "ĠتعÛĮÛĮÙĨ": 116783, + "коÑģÑĤÑĸ": 116784, + "ĠMustafa": 116785, + "Ġì¦ī": 116786, + "ãģ§ãģĤãĤĬ": 116787, + "å·¥ä¸ļ": 116788, + "ovÃŃd": 116789, + "ÐĿо": 116790, + "Ġسپس": 116791, + "Ú¯ÛĮرد": 116792, + "Ġпедагог": 116793, + "ĠکارÛĮ": 116794, + "ĠÑĪÑĤÑĥ": 116795, + "æĮĤ": 116796, + "Ø¢Ùħد": 116797, + "羣æĺ¯": 116798, + "Ġابت": 116799, + "ĠرئÛĮس": 116800, + "ĠدÛĮÙĨ": 116801, + "ÏĪε": 116802, + "Ġsezon": 116803, + "ĠçĨ": 116804, + "सन": 116805, + "ãĥ»ãĤ¢": 116806, + "ĠåħŃ": 116807, + "Ġè±": 116808, + "Ġìłľëª©": 116809, + "ĠÙħعد": 116810, + "ĠÙģÙĤد": 116811, + "éĤĬ": 116812, + "ΩΣ": 116813, + "Ġå¡": 116814, + "Ġobvyk": 116815, + "ĠìĿ´ëłĩê²Į": 116816, + "ĠбоÑĢоÑĤÑĮ": 116817, + "Û²Û±": 116818, + "Ġá»ijng": 116819, + "è¯Ĺ": 116820, + "ĠÄIJá»iji": 116821, + "ĠбеÑĢезнÑı": 116822, + "ĠsoÄŁ": 116823, + "Ġï¾į": 116824, + "ãĤĴãģ¤": 116825, + "ãģĹãĤĥ": 116826, + "еÑĢеÑĩ": 116827, + "ãĢĢãĢĢĠãĢĢĠãĢĢĠãĢĢ": 116828, + "æĪª": 116829, + "ĠاÙĦسعÙĪدÙĬØ©": 116830, + "ĠëĤ¨ìŀIJ": 116831, + "ĠAngiosper": 116832, + "????????????????": 116833, + "Ġprům": 116834, + "ĠплоÑīад": 116835, + "ĠÏĦÏģα": 116836, + "даÑİÑĤ": 116837, + "Ġsınav": 116838, + "Ġmặc": 116839, + "æ°´å¹³": 116840, + "ĠвиглÑı": 116841, + "Ġnást": 116842, + "ĠобÑĭÑĩ": 116843, + "ĠìĿ´ìķ¼ê¸°": 116844, + "ë¹Ľ": 116845, + "ĠBaÄŁ": 116846, + "ĠاÙĦثاÙĦØ«": 116847, + "Ġservis": 116848, + "Ġ룬": 116849, + "омина": 116850, + "ίθ": 116851, + "ĠẤ": 116852, + "경기": 116853, + "Ġ졸": 116854, + "ีà¸ļ": 116855, + "Ġà¤ĺà¤Łà¤¨": 116856, + "Ġà¸Ļาà¸ĩ": 116857, + ".Îł": 116858, + "ìķķ": 116859, + "rün": 116860, + "Ġonların": 116861, + "ĠзбÑĸлÑĮÑĪ": 116862, + "à¹ģà¸Ł": 116863, + "ĠìĹ¬ê¸°": 116864, + "ĠëĮĢíijľ": 116865, + "ĠÑģилÑĥ": 116866, + "à¹Ĥà¸Ľ": 116867, + "ĠتÙĤد": 116868, + "ĠÐŁÐ¾Ð¼": 116869, + "ĠмаÑģла": 116870, + "Ġìĺģìĥģ": 116871, + "нение": 116872, + "λαμβ": 116873, + "ĠByl": 116874, + "æĬµ": 116875, + "æݪ": 116876, + "ĠκαθÏİÏĤ": 116877, + "mızı": 116878, + "æĸ°çļĦ": 116879, + "éĩįè¤ĩ": 116880, + "à¸±à¸Ľ": 116881, + "çŃĨ": 116882, + "ĠÑĤка": 116883, + "ĠзнаÑĩеннÑı": 116884, + "лаÑĤи": 116885, + "Ġvliv": 116886, + "ÐIJн": 116887, + "ĠÚĨاپ": 116888, + "ĠпиÑĤанÑĮ": 116889, + ":ï½ī": 116890, + "æķĻæİĪ": 116891, + "Ġì¹ľêµ¬": 116892, + "Ġtrao": 116893, + "à¥įयà¤ķत": 116894, + "ุà¸Ħà¸Ħล": 116895, + "ĠرÙĪØ´ÙĨ": 116896, + "ĠعÙĦÙĬÙĩا": 116897, + "ãĢģãģĦ": 116898, + "ëħĦìĹIJ": 116899, + "éĢĨ": 116900, + "Ġмагаз": 116901, + "ï¾ŀï¾ŀ": 116902, + "Ġsice": 116903, + "âĢĻte": 116904, + "ĠاÙĦÙĦغة": 116905, + "áu": 116906, + "èĩªèº«": 116907, + "ĠngÅ©": 116908, + "ĠÑģкладÑĥ": 116909, + "Ġzru": 116910, + "Ġtruy": 116911, + "Ġilan": 116912, + "ĠپاÛĮÙĩ": 116913, + "::::::::::::::": 116914, + "fak": 116915, + "ÑĤеÑħ": 116916, + "Ġtaky": 116917, + "Ġìĸ¸ìĸ´": 116918, + "edenÃŃ": 116919, + "Ġà¤ļलत": 116920, + "Ġë°°ìļ°": 116921, + "Ġjméno": 116922, + "ĠÙĦØ£ÙĨ": 116923, + "ανά": 116924, + "кÑĥлÑĮ": 116925, + "ĠØŃÙģظ": 116926, + "ĠآزÙħÙĪÙĨ": 116927, + "иÑĤелÑĮнÑĭе": 116928, + "ĠÐŀлекÑģанд": 116929, + "èį£": 116930, + "Ġà¤ľà¤¬à¤ķ": 116931, + "Ġrodi": 116932, + "ĠبرخÙĪرد": 116933, + "Ġhafta": 116934, + "λικά": 116935, + "à¸ķà¸Ļ": 116936, + "ĠбеÑĢег": 116937, + "ανδ": 116938, + "-С": 116939, + "Ġpravidel": 116940, + "ĠбÑĸлÑı": 116941, + "íĴį": 116942, + "ĠпÑĢедÑĥÑģ": 116943, + "ĠмÑĥниÑĨип": 116944, + "åĮĸåѦ": 116945, + "ĠتÙħاس": 116946, + "Ġà¤īल": 116947, + "ÐĵÐŀ": 116948, + "غر": 116949, + "radan": 116950, + "ĠëĤĺìĺ¤": 116951, + "è¨Ĥ": 116952, + "à¹Ģà¸ĺà¸Ń": 116953, + "âĢĮسÛĮ": 116954, + "ĠобÑıзаÑĤелÑĮно": 116955, + "оÑĤе": 116956, + "à¹Įà¸Ĭ": 116957, + "çĶ¨çļĦ": 116958, + "Ġaltın": 116959, + "ĠÑģоÑĤÑĢÑĥд": 116960, + "Ñĸнки": 116961, + "озможно": 116962, + "ÎIJ": 116963, + "ë¹Į": 116964, + "Âķ": 116965, + "ĠÑĤоÑĩно": 116966, + "Ġjmen": 116967, + "اÙĦÛĮا": 116968, + "èĪį": 116969, + "chodu": 116970, + "곤": 116971, + "ickém": 116972, + "ĠÙħÙĪر": 116973, + "ãĥªãĥ³ãĤ¯": 116974, + "ĠaÅŁam": 116975, + "ĠиÑĤ": 116976, + "Ġनय": 116977, + "Ġμο": 116978, + "éķľ": 116979, + "ĠبÙĨابر": 116980, + "Ġتخصص": 116981, + "Ġสà¸ŀ": 116982, + "ĠпÑĢоÑĦеÑģÑģи": 116983, + "Ġpuan": 116984, + "ĠÙģرÙħاÙĨ": 116985, + "ëĮĢíļĮ": 116986, + "ĠпÑıÑĤ": 116987, + "ĠÙħÙĪب": 116988, + "ĠvÄĽku": 116989, + "Ġëĥ": 116990, + "ecký": 116991, + "ĠìĪĺëıĦ": 116992, + "Ġthao": 116993, + "Ġkapat": 116994, + "ĠзаÑħвоÑĢÑİ": 116995, + "Ġåħī": 116996, + "راÙĨÛĮ": 116997, + "éĢłæĪIJ": 116998, + "ĠÑģвÑĸй": 116999, + "ĠдоÑģиÑĤÑĮ": 117000, + "Ġmilyar": 117001, + "Ġenerji": 117002, + "Ġкип": 117003, + "Ġì¢ĭìķĦ": 117004, + "Ġبإ": 117005, + "ê²Įìĭľ": 117006, + "ĠLÆ°u": 117007, + "ĠÙħÙĨظÙĪر": 117008, + "Ïīμά": 117009, + "ζί": 117010, + "ımda": 117011, + "ĠìĿ´ë¥¼": 117012, + "à¹Ĵ": 117013, + "Ġвваж": 117014, + "Ġgazet": 117015, + "à¥įतन": 117016, + "à¹īำหà¸Ļ": 117017, + "åľŁåľ°": 117018, + "Ġसदस": 117019, + "تبة": 117020, + "ĠpoÄįÃŃta": 117021, + "ĠìĭľìĬ¤íħľ": 117022, + "รà¸Ħ": 117023, + "Ġedecek": 117024, + "ĠتØŃÙĦÛĮÙĦ": 117025, + "æĮīçħ§": 117026, + "åĿª": 117027, + "Ġê·¸ê°Ģ": 117028, + "تÙĩÙħ": 117029, + "Ġбаж": 117030, + "اÙģع": 117031, + "éĢļ常": 117032, + "ĠТи": 117033, + "γνÏī": 117034, + "ì¹Ļ": 117035, + "Ġznamená": 117036, + "\\": 117037, + "αÏĢÏĮ": 117038, + "åĨĻ羣": 117039, + "Ġï¼¼Ċ": 117040, + "åĬłå·¥": 117041, + "èĤ¡ä»½æľīéĻIJåħ¬åı¸": 117042, + "ÑıÑĤий": 117043, + "Ġhâl": 117044, + "Ġçab": 117045, + "ĠØŃاضر": 117046, + "PÅĻ": 117047, + "ĠاÙĦتÙĤ": 117048, + "ξηÏĤ": 117049, + "бе": 117050, + "Ġkhám": 117051, + "ĠâĮĴ": 117052, + "Ġéķ¿": 117053, + "ĠâĢ¦Ċ": 117054, + "दम": 117055, + "ĠStudi": 117056, + "Ġkodu": 117057, + "Ġkomunik": 117058, + "Ġkatkı": 117059, + "nete": 117060, + "Ġrapor": 117061, + "éĨ´": 117062, + "ãĤīãģĽ": 117063, + "ĠнеÑģколÑĮ": 117064, + "Ġhá»įp": 117065, + " ̄ ̄ ̄": 117066, + "º¼": 117067, + "è£Ĥ": 117068, + "едÑĮ": 117069, + "ĠاÙĦاØŃ": 117070, + "ladık": 117071, + "ĠfotoÄŁraf": 117072, + "æĹ¥ãģ®": 117073, + "ĠØŃاÙĦت": 117074, + "ĠØ«ÙĦاث": 117075, + "аÑĤов": 117076, + "eyse": 117077, + "Ġê°IJìĤ¬": 117078, + "áže": 117079, + "Ġнада": 117080, + "Ġà¤ķहन": 117081, + "ĠãĥĿ": 117082, + "ãģ«ãģĤãĤĭ": 117083, + "ãģ«ãģªãģ£ãģ¦": 117084, + "ÙĪدÙĩ": 117085, + "ĠpoÅ¡k": 117086, + "太éĺ³åŁİ": 117087, + "ç»ıéªĮ": 117088, + "æĴŃæĶ¾": 117089, + "Ġmajet": 117090, + "Ñħо": 117091, + "ĠÑĤеÑģÑĤ": 117092, + "ï¼ıĊ": 117093, + "ÏĥεÏĦε": 117094, + "ĠТомÑĥ": 117095, + "ÙİØŃ": 117096, + "ĠìŀĪìľ¼ë©°": 117097, + "ĠзазнаÑĩ": 117098, + "éļIJ": 117099, + "ĠдÑĸÑĹ": 117100, + "кÑĤив": 117101, + "ÙĪÙģÙĬ": 117102, + "Ġtá»Ŀ": 117103, + "à¸¹à¸Ľà¹ģà¸ļà¸ļ": 117104, + "ĠÑĢедак": 117105, + "ĠateÅŁ": 117106, + "Ġkhiá»ĥn": 117107, + "üny": 117108, + "ียà¸ģ": 117109, + "ĠÑĩаÑīе": 117110, + "Ġtuy": 117111, + "γÏīν": 117112, + "รà¸Ńà¸ļ": 117113, + "Ġtrùng": 117114, + "à¹ģà¸Ĺà¸Ļ": 117115, + "ĠακÏĮ": 117116, + "ĠÐĴеÑĢÑħов": 117117, + "à¹ĥà¸Ļส": 117118, + "ãĢģä½ķ": 117119, + "åĩ¦": 117120, + "Ġç»ı": 117121, + "æ¨ĵ": 117122, + "اÙĨÚ¯ÙĦÛĮسÛĮ": 117123, + "ĠlepÅ¡ÃŃ": 117124, + "Ġå¼Ģå§ĭ": 117125, + "éĻº": 117126, + "ĠÑĩеÑĤÑĭ": 117127, + "ĠСеÑĢ": 117128, + "оÑİз": 117129, + "Ġxung": 117130, + "åĵģçīĮ": 117131, + "Ġìĥģíĥľ": 117132, + "ĠÙĨصب": 117133, + "ĠÑĩомÑĥ": 117134, + "ĠترکÛĮ": 117135, + "-ли": 117136, + "ovÃŃ": 117137, + "ĠاÙĨج": 117138, + "絡": 117139, + "ĠتÙĪص": 117140, + "Ġì¿ł": 117141, + "Ġvarsa": 117142, + "ĠÑĢазÑĢабоÑĤ": 117143, + "à¸Ĥà¸Ńà¸ĩà¸Ħ": 117144, + "éŃĤ": 117145, + "Ġà¤Ĭपर": 117146, + "æĿ¥è¯´": 117147, + "ĠÑĨенÑĤÑĢалÑĮ": 117148, + "ĠTakım": 117149, + "Ġonlar": 117150, + "Ġسرعت": 117151, + "好åĥı": 117152, + "Ġbuá»ķi": 117153, + "ĠÐijел": 117154, + "Âłc": 117155, + "أت": 117156, + "à¸Ĥà¸ĵะ": 117157, + "ãģ«åĩº": 117158, + "Ġ+**************": 117159, + "ÏĦηκε": 117160, + "اجر": 117161, + "ĠâĢ²": 117162, + "ãĥ¼ãĥ¬": 117163, + "é¥Ń": 117164, + "ĠجÙĦس": 117165, + "ĠبستÙĩ": 117166, + "วาà¸ĩ": 117167, + "Ġβά": 117168, + "ĠамеÑĢикан": 117169, + "ĠPremi": 117170, + "mae": 117171, + "ĠÑģÑĢеди": 117172, + "áºł": 117173, + "ĠвÑĢед": 117174, + "ãĢĤèĢĮ": 117175, + "åĴ²": 117176, + "Ġê³µê°ľ": 117177, + "èĤ¥": 117178, + "звиÑĩай": 117179, + "Ġprocent": 117180, + "илоÑģÑĮ": 117181, + "शन": 117182, + "éłģ": 117183, + "екÑĤи": 117184, + "داشت": 117185, + "íķĻíļĮ": 117186, + "ãĢĢãĢĢãĢĢĠãĢĢĠãĢĢ": 117187, + "ĠÙħدÙĬÙĨØ©": 117188, + "िलन": 117189, + "ĠèĹ": 117190, + "миÑĢ": 117191, + "ĠноÑĢ": 117192, + "Ġíķĺì§Ģ": 117193, + "веÑī": 117194, + "nÄĽm": 117195, + "еÑĢами": 117196, + "Ġpracov": 117197, + "ĠبÙĬاÙĨات": 117198, + "ĠÏĥÏįν": 117199, + "Ġجذ": 117200, + "ãģĦãģ§": 117201, + "ĠBÃŃ": 117202, + "è±Ĩ": 117203, + "Ġhmot": 117204, + "ileceÄŁi": 117205, + "Ġتاث": 117206, + "è´´": 117207, + "Ġê¸ī": 117208, + "Ġmysl": 117209, + "ĠìĿ´íķ´": 117210, + "Ġ기ëĬ¥": 117211, + "ĠТам": 117212, + "ĠнаÑģелениÑı": 117213, + "ĠMez": 117214, + "Ġ모르": 117215, + "íĻĶ를": 117216, + "ĠÙĨسخÙĩ": 117217, + "ĠتÙĦÙĪÛĮزÛĮ": 117218, + "ĠÄįervna": 117219, + "ưỡng": 117220, + "صØŃ": 117221, + "ĠÑĤÑĢен": 117222, + "Õ¡": 117223, + "Ġcelou": 117224, + "Å©i": 117225, + "ìĹĨìĿ´": 117226, + "nÃŃku": 117227, + "Ġprogramu": 117228, + "à¥įपन": 117229, + "ĠпÑĢеж": 117230, + "ارب": 117231, + "æľŁéĸĵ": 117232, + "Ġμά": 117233, + "ëįĶëĭĪ": 117234, + "ụn": 117235, + "ĠпеÑĢеÑģÑĤ": 117236, + "对äºİ": 117237, + "è¿IJè¡Į": 117238, + "ĠÑĤан": 117239, + "ĠìĤ¬ìĿ´íĬ¸": 117240, + "ĠQuảng": 117241, + "ĠstojÃŃ": 117242, + "ãĥŃãĥ¼": 117243, + "گار": 117244, + "ĠенеÑĢг": 117245, + "Ġkterým": 117246, + "ĠпÑĢимÑĸ": 117247, + "ĠкаÑĢÑĤи": 117248, + "Ġzengin": 117249, + "ï¼ĮåĨį": 117250, + "Ġترب": 117251, + "ĠÑĨенÑĤÑĢ": 117252, + "ĠsaÄŁlamak": 117253, + "ëĭĿ": 117254, + "ãģ®åŃIJ": 117255, + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 117256, + "ĠsÆ¡n": 117257, + "zı": 117258, + "ÑĤаки": 117259, + "ÄĽstÃŃ": 117260, + "Ġà¥": 117261, + "é®": 117262, + "åŁ¹è®Ń": 117263, + "ĠìĶ¨": 117264, + "Ġbelki": 117265, + "ĠìĿ´ë²¤íĬ¸": 117266, + "ëĶĶìĸ´": 117267, + "ĠsÃłn": 117268, + "никам": 117269, + "alim": 117270, + "å¯¾å¿ľ": 117271, + "ĠSá»±": 117272, + "éģĵè·¯": 117273, + "é«ĺæ¸ħ": 117274, + "Ġdõi": 117275, + "ĠÙĦÙĢ": 117276, + "ĠèĤ¡": 117277, + "νι": 117278, + "âĢŀJ": 117279, + "'nde": 117280, + "ÎijÎĵ": 117281, + "ãģ¨ãģªãĤĭ": 117282, + "çĪ¸": 117283, + "عÙĦÛĮ": 117284, + "ÏģιÏĥÏĦ": 117285, + "ĠeÄŁit": 117286, + "ĠзовнÑĸÑĪ": 117287, + "ĠпÑĢим": 117288, + "سÙħبر": 117289, + "ĠmÄĽstÄĽ": 117290, + "ĠÏĢεÏģιÏĥÏĥÏĮÏĦε": 117291, + "ÐIJÐł": 117292, + "æĦŁåĪ°": 117293, + "Ġ문ìĦľ": 117294, + "ãģĭãĤĭ": 117295, + "ÙĤÙĬÙĤØ©": 117296, + "ĠвÑĤÑĢа": 117297, + "Ġà¸Ńำ": 117298, + "ÑģкÑĥÑİ": 117299, + "دÙĩاÛĮ": 117300, + "ĠÄ°st": 117301, + "ĠÐĹав": 117302, + "Ġéĥ½": 117303, + "ÑĪем": 117304, + "ĠеÑīÑij": 117305, + "ĠÐľÐ¸Ñħай": 117306, + "ĠÑĥпÑĢавлениÑı": 117307, + "леннÑĭе": 117308, + "ĠzaÄįal": 117309, + "æ¡Į": 117310, + "ĠпÑĸз": 117311, + "лÑıÑĤÑĮÑģÑı": 117312, + "ĠìŀIJë£Į": 117313, + "ãĢĢãĢĢĠ": 117314, + "ĠKral": 117315, + "èĪī": 117316, + "Ġà¤Ńव": 117317, + "ĠØ®Ùħ": 117318, + "Ġакадем": 117319, + "Ġisten": 117320, + "ĠиÑģкÑĥÑģ": 117321, + "ĠعÙĨدÙħا": 117322, + "ĠاÙĦاÙħ": 117323, + "ismus": 117324, + "Ġayrıntı": 117325, + "ĠЩо": 117326, + "ĠÙĩÙĪØ´": 117327, + "دÙĪاج": 117328, + "лаж": 117329, + "ĠÚ©ÙĨار": 117330, + "ÂłR": 117331, + "æĢ§çļĦ": 117332, + "ÑģÑĸм": 117333, + "ĠMüz": 117334, + "ÑĢовиÑĩ": 117335, + "ĠΩ": 117336, + "Ġìĸ´ëĶĶ": 117337, + "سÙħØ©": 117338, + "ĠÑĢÑı": 117339, + "ĠtÆ°Æ¡i": 117340, + "ĠÑĢаÑģÑħод": 117341, + "åı°çģ£": 117342, + "ĠاÙĦÙĪÙĤت": 117343, + "براÛĮ": 117344, + "ĠзÑĢобиÑĤи": 117345, + "ĠбÑĥÑĢ": 117346, + "ĠÄįinnosti": 117347, + "ĠصاØŃ": 117348, + "ĠصÙĨعت": 117349, + "ĠØ·ÙĦ": 117350, + "ξÏį": 117351, + "ĠtisÃŃc": 117352, + "ĠFransa": 117353, + "ì¦ĺ": 117354, + "軽": 117355, + "Ñĺ": 117356, + "ÏĮÏĦηÏĦαÏĤ": 117357, + "ĠMillet": 117358, + "ãĢĢãĥ¾": 117359, + "ĠпÑĢием": 117360, + "ĠترجÙħÙĩ": 117361, + "ĠسÙĪد": 117362, + "ĠsouÄįástÃŃ": 117363, + "ÐĶо": 117364, + "Ġtrụ": 117365, + "足çIJĥ": 117366, + "à¸Ľà¸ģ": 117367, + "Ġustanov": 117368, + "ÎŁÎĻ": 117369, + "Ðŀн": 117370, + "Ġнеж": 117371, + "ког": 117372, + "ä¸ĢçĤ¹": 117373, + "ĠدÙĪراÙĨ": 117374, + "å½±éŁ¿": 117375, + "elidir": 117376, + "âĢŀN": 117377, + "esiyle": 117378, + "ÑĢеменно": 117379, + "ĠiletiÅŁim": 117380, + "มà¹Ģà¸ķ": 117381, + "以åīį": 117382, + "ãĥĭãĥ¼": 117383, + "éĽ»è©±": 117384, + "à¹Ĥà¸ŀ": 117385, + "ovky": 117386, + "ĠзамÑĸ": 117387, + "Ġवà¤ķ": 117388, + "ÂĻ": 117389, + "ĠвÑĸйни": 117390, + "Ġolmadıģı": 117391, + "æ¢ģ": 117392, + "ĠТеп": 117393, + "nÄĽte": 117394, + "èħķ": 117395, + "ìĤ¬ëĬĶ": 117396, + "mamak": 117397, + "Ġciz": 117398, + "æ£Ĵ": 117399, + "Ġï¼ı:": 117400, + "éģĭåĭķ": 117401, + "ĠÙĩÙĨا": 117402, + "Ġê°ij": 117403, + "ĠÙĩÙĨگاÙħ": 117404, + "ĠuÄŁra": 117405, + "彦": 117406, + "Ġobjekt": 117407, + "ãģ¨ãģĻãĤĭ": 117408, + "åĽ½åĨħ": 117409, + "ĠдеÑĢжави": 117410, + "ĠèĮ": 117411, + "Ġuluslararası": 117412, + "Ù£": 117413, + "Ġmutlak": 117414, + "Ġзобов": 117415, + "Ġγεν": 117416, + "à¹Ħà¸Łà¸Ł": 117417, + "Ġözgür": 117418, + "íĦ¸": 117419, + "ĠвипадкÑĥ": 117420, + "Ġà¤ķब": 117421, + "ĠاÙĦخط": 117422, + "θηκαν": 117423, + "ï¼ĮæĬĬ": 117424, + "ÑıÑĤÑĤÑı": 117425, + "Ġolmadıģını": 117426, + "ÂłkW": 117427, + "ĠnÄĽkterých": 117428, + "ãĥĩãĥ«": 117429, + "æ¤įçī©": 117430, + "μιλοÏĤ": 117431, + "ÐIJÑĢÑħÑĸв": 117432, + "ĠТо": 117433, + "èĸ¬": 117434, + "ÑģÑĤвиÑı": 117435, + "ĠØ®ÙĪاست": 117436, + "ологÑĸÑĹ": 117437, + "ÙĪاÙĩد": 117438, + "Ġнак": 117439, + "ĠкоÑĤоÑĢÑĥÑİ": 117440, + "Ġदà¤ķ": 117441, + "âĢŀM": 117442, + "λια": 117443, + "æŃ²": 117444, + "ç¬¬åĽĽ": 117445, + "à¤¾à¤ľà¤¸": 117446, + "Ġ(«": 117447, + "Ġthẻ": 117448, + "、Ċ": 117449, + "ç£ģ": 117450, + "ĠÙĦÙĤ": 117451, + "ĠìķĶ": 117452, + "Ġнового": 117453, + "ĠìķĦ주": 117454, + "ĠëIJĺìĸ´": 117455, + "Ġolun": 117456, + "þ": 117457, + "Ġkariy": 117458, + "ĠØŃسب": 117459, + "ĠìĿĺ미": 117460, + ".Ðľ": 117461, + "ĠoznaÄį": 117462, + "ÙĦسÙĦ": 117463, + "ĠÐĴид": 117464, + "ë¡ľëĤĺ": 117465, + "à¥įà¤Łà¤®": 117466, + "íľ´": 117467, + "Ġbilgisayar": 117468, + "ìĿ¸ì§Ģ": 117469, + "Ġвов": 117470, + "nictvÃŃm": 117471, + "าà¸Ńย": 117472, + "ĠشخصÛĮ": 117473, + "пÑĸон": 117474, + "æľ¬å½ĵ": 117475, + "ĠبÙĢ": 117476, + "ĠмаÑģло": 117477, + "ĠPhát": 117478, + "Ġба": 117479, + "алÑĮномÑĥ": 117480, + "社åĮº": 117481, + "ĠÒ": 117482, + ":::|": 117483, + "ê´": 117484, + "Ġä¸ĥ": 117485, + "ĠÙĪاÙĦد": 117486, + "нике": 117487, + "à¸Ńลล": 117488, + "ĠyerleÅŁ": 117489, + "Ġkombin": 117490, + "uÅ¡": 117491, + "ĠоÑĤÑĢи": 117492, + "ä¹Į": 117493, + "iÅŁti": 117494, + "Ġsóng": 117495, + "ληÏĤ": 117496, + "ĠкÑĥÑĢÑģ": 117497, + "à¹Īาà¸Ħ": 117498, + "ĠÙĬس": 117499, + "ĠداÙħ": 117500, + "çĴ°å¢ĥ": 117501, + "Ñĩенко": 117502, + "ãĢįãģ®": 117503, + "ĠmÃŃsta": 117504, + "ĠÑĦоÑĤ": 117505, + "ĠpÅĻÃŃzn": 117506, + "ĠÑĢаза": 117507, + "ç´«": 117508, + "láda": 117509, + "ĠÑģпеÑĨиалиÑģÑĤ": 117510, + "ĠبÛĮÙħارÛĮ": 117511, + "Ġëĵ£": 117512, + "çĭĹ": 117513, + "ÙĪÙĪ": 117514, + "анÑĸÑĤ": 117515, + "ĠدÙĨباÙĦ": 117516, + "ĠÙħجÙħÙĪعة": 117517, + "ÃŃna": 117518, + "ĠHalk": 117519, + "ájem": 117520, + "enÃŃze": 117521, + "Ġimz": 117522, + "«ng": 117523, + "ĠÎķÎł": 117524, + "ĠÙħÙĩد": 117525, + "ìľĦìĽIJíļĮ": 117526, + "Ġìľłíĺķ": 117527, + "ापस": 117528, + "Ġjež": 117529, + "анÑĸз": 117530, + "иÑĤай": 117531, + "á¿ĸ": 117532, + "irler": 117533, + "기ê°Ħ": 117534, + "ĠвоÑĢ": 117535, + "ĠÏİ": 117536, + "Ġpozn": 117537, + "ĠساÙĨ": 117538, + "寿": 117539, + "æĸ¯çī¹": 117540, + "Ġturist": 117541, + "ĠìŀIJìľł": 117542, + "à¥Ģà¤ĸ": 117543, + "μμε": 117544, + "ansı": 117545, + "ìĨĮëħĦ": 117546, + "Ġtedavi": 117547, + "ÑĩеÑģÑĤва": 117548, + "å£ĵ": 117549, + "ове": 117550, + "ï¼Įçľĭ": 117551, + "ĠпоÑģлÑĥг": 117552, + "ĠÑĤÑĢанÑģ": 117553, + "Ġzáz": 117554, + "æĪ´": 117555, + "Ġмона": 117556, + "ิà¹Ģà¸Ħราะห": 117557, + "ĠÙĨÛĮÙħ": 117558, + "ĠìĤ¬ëŀĮìĿ´": 117559, + "ahat": 117560, + "Ïħκ": 117561, + "ĠоÑĤказ": 117562, + "ĠÐĴолодими": 117563, + "ĠСк": 117564, + "िà¤ķत": 117565, + "å¦ĸ": 117566, + "Ġëĭ¤ìļ´ë¡ľëĵľ": 117567, + "ìĺģìĥģ": 117568, + "Ġनà¤Ī": 117569, + "cete": 117570, + "ĠгÑĢиб": 117571, + "eceÄŁini": 117572, + "ĠçoÄŁu": 117573, + "ĠмаÑĤеÑĢиала": 117574, + "ứt": 117575, + "Ġzaten": 117576, + "ĠFRA": 117577, + "ĠBirliÄŁi": 117578, + "Ġsitesi": 117579, + "ĠåĶ": 117580, + "ĠÐĴол": 117581, + "ÂłPS": 117582, + "ालत": 117583, + "ĠбаÑĩ": 117584, + "алÑĸзаÑĨÑĸÑĹ": 117585, + "ĠSlov": 117586, + "ç³ĸ": 117587, + "ĠговоÑĢиÑĤ": 117588, + "Ġввед": 117589, + "ุà¸ķà¸ļà¸Ńล": 117590, + "ãģĨãģ¡": 117591, + "Ġyaptık": 117592, + "Ġìłķì¹ĺ": 117593, + "ê°ľë¥¼": 117594, + "à¥Īसल": 117595, + "جÙĬÙĦ": 117596, + "ĠзаÑģÑĤоÑģов": 117597, + "è¿«": 117598, + "ĠKurul": 117599, + "ĠNasıl": 117600, + "ĠнапÑĢÑıм": 117601, + "Ġä½į": 117602, + "à¹Įà¸ļ": 117603, + "Ġéģĵ": 117604, + "Ġниже": 117605, + "ĠкоÑģÑĤ": 117606, + "ظÙĩر": 117607, + "Та": 117608, + "ì§Ŀ": 117609, + "Ġönünde": 117610, + "жÑĸ": 117611, + "ĠاجراÛĮ": 117612, + "ĠоÑĢганÑĸв": 117613, + "vise": 117614, + "ĠìĿĦ": 117615, + "à¸ķรà¸ĩ": 117616, + "Ú©ÙĨÙĪÙĨ": 117617, + "Ġdlouho": 117618, + "ÐŀÐĿ": 117619, + "Ġìľ¡": 117620, + "缮æłĩ": 117621, + "ë¯Ģë¡ľ": 117622, + "ï¼ıï¼ıï¼ıï¼ıï¼ıï¼ıï¼ıï¼ı": 117623, + "ĠпоÑĩемÑĥ": 117624, + "æķħäºĭ": 117625, + "ÑĤеÑģÑĮ": 117626, + "ĠÙĤÙĦب": 117627, + "ĠتجÙĩ": 117628, + "ilendir": 117629, + "ĠигÑĢа": 117630, + "ĠÐĶон": 117631, + "ĠpÅĻÃŃjem": 117632, + "è¦Ĩ": 117633, + "Сп": 117634, + "-ни": 117635, + "onse": 117636, + "иной": 117637, + "оÑĩного": 117638, + "اساÙĨ": 117639, + "ĠполÑĥÑĩиÑĤÑĮ": 117640, + "ÑĤап": 117641, + "ĠLý": 117642, + "ĠÃĤu": 117643, + "Ġhüc": 117644, + "ebek": 117645, + "ĠYayın": 117646, + "æĹĭ": 117647, + "ัà¸Ļà¸Ĺร": 117648, + "Ġвиконав": 117649, + "Ġsông": 117650, + "à¥ģà¤ľ": 117651, + "ĠÐĹаг": 117652, + "¤ëĭ¤": 117653, + "ĠcÅ©": 117654, + "ĠگرÙħ": 117655, + "ä¼ı": 117656, + "ãģ«ãģĻãĤĭ": 117657, + "-Ф": 117658, + "ĠÙĤÙħ": 117659, + "ĠolacaÄŁ": 117660, + "æĿ¥äºĨ": 117661, + "æĭĽèģĺ": 117662, + "ĠÐĿаÑģеленнÑı": 117663, + "Ġìĺģìĸ´": 117664, + "ĠæѤ": 117665, + "ĠبدÙĨ": 117666, + "Û²Û¸": 117667, + "оÑĢаÑĤив": 117668, + "ï¼³": 117669, + "Ġnebylo": 117670, + "ĠÑĥÑĩиÑĤ": 117671, + "æĿľ": 117672, + "ĠданÑĸ": 117673, + "ĠspotÅĻeb": 117674, + "ãĥ¼ãĥĨãĤ£": 117675, + "еннÑĥÑİ": 117676, + "ê¹ĮìļĶ": 117677, + "vem": 117678, + "PÅĻÃŃ": 117679, + "Ġyandan": 117680, + "é¼ĵ": 117681, + "ĠدستÙĪر": 117682, + "Ġhafif": 117683, + "hů": 117684, + "Ġváž": 117685, + "ĠìķĦì§ģ": 117686, + "Ùıر": 117687, + "Ġла": 117688, + "ëłī": 117689, + "à¸²à¸Ľà¸£à¸°": 117690, + "lıklar": 117691, + "ĠÑģÑĤандаÑĢÑĤ": 117692, + "à¸Ńà¹ĥห": 117693, + "奴": 117694, + "ĠоÑĤп": 117695, + "âĪł": 117696, + "ãĥ¼ãĥĢ": 117697, + "cháze": 117698, + "Ġê·¸ëłĩê²Į": 117699, + "ostel": 117700, + "ĠгалÑĥз": 117701, + "âk": 117702, + "еÑĨÑĤ": 117703, + "ëŀijìĬ¤": 117704, + "ĠÄįist": 117705, + "ÑĢана": 117706, + "Ġvững": 117707, + "Ġseni": 117708, + "Ġgóc": 117709, + "ÏĨÏĮ": 117710, + "ánu": 117711, + "Ġöt": 117712, + "Ġsóc": 117713, + "ãģĦãģ®": 117714, + "ĠÑģклада": 117715, + "ÐIJÑĢÑħÑĸвовано": 117716, + "ĠìĿ´ë²Ī": 117717, + "ãĤ¹ãģ®": 117718, + "ilebilir": 117719, + "ï½Ģãĥ½": 117720, + "ียà¸į": 117721, + "Ġκαὶ": 117722, + "Ġ믿": 117723, + "æĽ´å¤ļ": 117724, + "ısının": 117725, + "ĠGiám": 117726, + "æŃ£å¼ı": 117727, + "ÏĥμÏĮ": 117728, + "Ġarchit": 117729, + "Ġï½²": 117730, + "ÑĩаÑİÑĤÑģÑı": 117731, + "ë²Ħì§Ģ": 117732, + "ãĤ¤ãĥ¤": 117733, + "é«ĺæł¡": 117734, + "訳": 117735, + "ĠÙħÛĮÚ©": 117736, + "Ġæĥħ": 117737, + "Ġpha": 117738, + "太éĥİ": 117739, + "à¸ŀระราà¸Ĭ": 117740, + "ÙĤÙĬØ©": 117741, + "ĠÑĥлÑĥÑĩ": 117742, + "ÑģÑĤвÑĥеÑĤ": 117743, + "ĠkeÅŁ": 117744, + "é«ĺçŃī": 117745, + "ĠsỼm": 117746, + "Ïģκε": 117747, + "μοÏģ": 117748, + "Ġzástup": 117749, + "ozÃŃ": 117750, + "Ġmili": 117751, + "Ġмогли": 117752, + "ĠзÑĢозÑĥм": 117753, + "ĠباشÛĮد": 117754, + "Ġakci": 117755, + "ĠдÑĢа": 117756, + "ĠαÏģι": 117757, + "ãģĭãĤīãģ®": 117758, + "å¯Ĵ": 117759, + "ĠZaman": 117760, + "ĠÑĸде": 117761, + "ĠãĢĢĠ": 117762, + "Ġklu": 117763, + "aklı": 117764, + "à¥ĩà¤ļ": 117765, + "ĠÑģвобод": 117766, + "ساÙħ": 117767, + "Ġов": 117768, + "Ġubyt": 117769, + "éĩĩçĶ¨": 117770, + "ĠdavranÄ±ÅŁ": 117771, + "ĠnabÃŃzÃŃ": 117772, + "ĠÐijÑĥд": 117773, + "ĠÏī": 117774, + "ĠاÙĦرØŃ": 117775, + "ัà¸ķà¸Ļ": 117776, + "име": 117777, + "ĠتÙĦÙĥ": 117778, + "تÙħع": 117779, + "ĠадминиÑģÑĤÑĢа": 117780, + "Ġzorunda": 117781, + "ĠÙĨسبة": 117782, + "ĠصÙĨعتÛĮ": 117783, + "ĠÑĦÑĥнда": 117784, + "éı¡": 117785, + "Ġpotom": 117786, + "ĠпÑĢеÑģÑĤ": 117787, + "Ġsırada": 117788, + "Ġayar": 117789, + "اÙĤÙĦ": 117790, + "溪": 117791, + "ĠØ¢ÙĤاÛĮ": 117792, + "ĠпеÑĢеÑħод": 117793, + "ĠпÑĢакÑĤиÑĩеÑģки": 117794, + "é»ĥ": 117795, + "ĠÑĥÑħод": 117796, + "ĠÙħتÙģ": 117797, + "Ġsiyasi": 117798, + "ĠпоÑĤен": 117799, + "ÙİÙģ": 117800, + "ĠÐĽÑĥ": 117801, + "ĠконÑĤÑĢолÑĮ": 117802, + "ĠÑģказаÑĤÑĮ": 117803, + "à¥Ģà¤ķरण": 117804, + "åħ¨çIJĥ": 117805, + "Û²Û¶": 117806, + "Ġtoto": 117807, + "ĠÙĪد": 117808, + "ãĤ¿ãĤ¤ãĥĹ": 117809, + "åľį": 117810, + "å¼ķçĶ¨": 117811, + "ï¼£": 117812, + "èĬ¸": 117813, + "ä»ĭç»į": 117814, + "ĠÑĤеÑĢÑĢиÑĤоÑĢии": 117815, + "æĹ¥ãģ«": 117816, + "mÃŃt": 117817, + "amız": 117818, + "ìĿ´ìĸ´": 117819, + "ĠyarÄ±ÅŁ": 117820, + "Ġgüc": 117821, + "ĠÏĩα": 117822, + "ัà¸Ļยายà¸Ļ": 117823, + "ãĤĴè¡Į": 117824, + "Ġmilli": 117825, + "Ġçı¾": 117826, + "Když": 117827, + "mazon": 117828, + "ë³´ëĤ´ê¸°": 117829, + "ĠÑĤÑĢÑĥдов": 117830, + "飾": 117831, + "Ġвиник": 117832, + "ĠÙĪزارت": 117833, + "éĩĮçļĦ": 117834, + "маз": 117835, + "ĠRUS": 117836, + "екÑĤÑĥ": 117837, + "Ġعاش": 117838, + "Ġkonce": 117839, + "ãĤĪãģĨãģ§ãģĻ": 117840, + "ĠмалÑĭÑĪ": 117841, + "meni": 117842, + "еÑģа": 117843, + "اضÛĮ": 117844, + "Ġbrat": 117845, + "ĠвÑĸдноÑģ": 117846, + "θεÏģ": 117847, + "ĠЧем": 117848, + "æijĩ": 117849, + "ĠÙħادر": 117850, + "çĶ¨åĵģ": 117851, + "ĠÙħØŃاÙģظ": 117852, + "ĠmyÅ¡": 117853, + "جع": 117854, + "Ġisim": 117855, + "æ³Ĭ": 117856, + "ılmaz": 117857, + "Ġμα": 117858, + "審": 117859, + "Ġayır": 117860, + "еними": 117861, + "à¥ĩहतर": 117862, + "åľĨ": 117863, + "ãģ¾ãģ£ãģŁ": 117864, + "çĶ¢åĵģ": 117865, + "ĠÑĸнÑĦоÑĢмаÑĨÑĸÑĹ": 117866, + "Ġtủ": 117867, + "สมà¸ļ": 117868, + "ĠstÅĻ": 117869, + "Ġë°ľíijľ": 117870, + "аÑĢÑĮ": 117871, + "ĠCao": 117872, + "ΡÎĻ": 117873, + "à¸ģารà¸Ī": 117874, + "ĠподÑĥм": 117875, + "ä»ķäºĭ": 117876, + "ĠÐļÑĢоме": 117877, + "ĠìĹĶ": 117878, + "ĠÑĥда": 117879, + "ĠавÑĤомаÑĤи": 117880, + "Ġà¸Ħà¸ĵะ": 117881, + "ĠKiÅŁ": 117882, + "ĠÑģоÑģÑĤоÑıние": 117883, + "lisi": 117884, + "Ġëĸ¨ìĸ´": 117885, + "ootball": 117886, + "Ġíį¼": 117887, + "Ġлим": 117888, + "Ġçerç": 117889, + "ÙĪÙĦÙĬÙĪ": 117890, + "Ġslož": 117891, + "Ġ먼": 117892, + "รà¸Ńà¸ĩ": 117893, + "ÑĪее": 117894, + "âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦": 117895, + "ãģĵãģ¡ãĤī": 117896, + "оÑĢÑĭ": 117897, + "çĥŁ": 117898, + "ÂłF": 117899, + "аного": 117900, + "Ø«ÛĮر": 117901, + "çıį": 117902, + "å¸Ĥåł´": 117903, + "vÄĽdom": 117904, + "첨ë¶Ģ": 117905, + "ĠìĤ¬ê±´": 117906, + "ï¾Į": 117907, + "à¹ĥà¸Ļว": 117908, + "Ġzvlášt": 117909, + "ÏĦεÏħ": 117910, + "Ġкакие": 117911, + "ÏĨοÏģά": 117912, + "åĦĦ": 117913, + "ĠzpÄĽt": 117914, + "íķľíħĮ": 117915, + "Ġzvol": 117916, + "ĠçĹ": 117917, + "ÑĢанениÑı": 117918, + "ĠسÛĮاست": 117919, + "ĠÐļоли": 117920, + "ĠоÑĢганизма": 117921, + "ĠÑıнваÑĢÑı": 117922, + "ĠدادÙĨ": 117923, + "пÑĢа": 117924, + "ï¼Įä»ĸ们": 117925, + "æijĺè¦ģ": 117926, + "Ġquần": 117927, + "ÙĬÙĪÙĨ": 117928, + "ĠвиÑħов": 117929, + "Âłà¹Ģà¸Ķ": 117930, + "Ġелем": 117931, + "ebilecek": 117932, + "ĠдоÑĩ": 117933, + "Ġблаг": 117934, + "ĠÑıй": 117935, + "adnÃŃ": 117936, + "ĠzároveÅĪ": 117937, + "enstvÃŃ": 117938, + "âĢĮاÙĨ": 117939, + "ãģķãĤĵãģ¯": 117940, + "/|": 117941, + "ĠاÙĦعاÙħØ©": 117942, + "éł¼": 117943, + "ĠخداÙĪÙĨد": 117944, + "нам": 117945, + "ĠÑģлиз": 117946, + "æ¶ī": 117947, + "รษ": 117948, + "eÅŁtir": 117949, + "ĠÙĨدار": 117950, + "ราà¸Ħ": 117951, + "è¨ĢãĤı": 117952, + "ĠèŃ": 117953, + "ĠкÑĢиÑĤ": 117954, + "ĠвоздÑĥÑħа": 117955, + "Ġà¤Ĺत": 117956, + "Ġprávo": 117957, + "à¥ĭषण": 117958, + "Ġsắp": 117959, + "íıŃ": 117960, + "ĠصرÙģ": 117961, + "ĠراÛĮگاÙĨ": 117962, + "ĠоÑĤк": 117963, + "ëĨĵ": 117964, + "ĠÑģекÑĢеÑĤ": 117965, + "Ä°n": 117966, + "onavir": 117967, + "ĠVys": 117968, + "ĠbaÅŁlat": 117969, + "ĠMuham": 117970, + "ĠлиÑģÑĤоп": 117971, + "ĠTicaret": 117972, + "Ġadlandır": 117973, + "ĠÐĶмиÑĤ": 117974, + "ÏĥμοÏį": 117975, + "ä¾µ": 117976, + "ìĭľëĬĶ": 117977, + "à¹ģà¸Ľà¸¥à¸ĩ": 117978, + "ınıza": 117979, + "-г": 117980, + "иÑĩноÑĹ": 117981, + "ÑĥÑĢи": 117982, + "UZ": 117983, + "ìĽł": 117984, + "ĠتبدÛĮÙĦ": 117985, + "溫": 117986, + "ĠÑĢамкаÑħ": 117987, + "Ġnét": 117988, + "沿": 117989, + "ĠrozÅ¡ÃŃ": 117990, + "Ġसप": 117991, + "ĠÑĤаке": 117992, + "ÑĢаÑĩ": 117993, + "ĠاÙĦÙĤد": 117994, + "íķĻê³¼": 117995, + "ÑĥваннÑıм": 117996, + "Ġmám": 117997, + "롯": 117998, + "á½IJ": 117999, + "Ġetkili": 118000, + "ĠارتÙģ": 118001, + "Ġtechnolog": 118002, + "Ġì½ĺ": 118003, + "ĠتÙĥÙĬÙĬÙģ": 118004, + "ĠpÅĻece": 118005, + "家åºŃ": 118006, + "Ġãģı": 118007, + "âĶ´": 118008, + "íģ¼": 118009, + "Ġξά": 118010, + "à¹Ģà¸ķร": 118011, + "ĠÑģÑĤановиÑĤÑģÑı": 118012, + "ç«ĭãģ¡": 118013, + "Ġéĸĭ": 118014, + "ĠÄ°yi": 118015, + "ĠnÄĽkteré": 118016, + "ĠÑĢобоÑĤ": 118017, + "ĠÄIJÆ°á»Ŀng": 118018, + "ĠاÙĦاج": 118019, + "Ġspeci": 118020, + "çī¹åĪ«": 118021, + "åŃĿ": 118022, + "âĢĮگذ": 118023, + "alıģı": 118024, + "ĠмиÑĢа": 118025, + "íİĺìĿ´ì§Ģ": 118026, + "Ø®Ùģ": 118027, + "ãĤªãĥª": 118028, + "ĠسÛĮÙħ": 118029, + "Ġìĸ´ëĬIJ": 118030, + "алÑĮнÑĥ": 118031, + "Ñĩний": 118032, + "ümüzde": 118033, + "æĻºèĥ½": 118034, + "ýn": 118035, + "ĠتÙĤÙĪÛĮت": 118036, + "ĠпÑĢиг": 118037, + "ĠгÑĢÑĥппÑĭ": 118038, + "amı": 118039, + "γοÏį": 118040, + "оÑĢÑĤÑĥ": 118041, + "ĠGiang": 118042, + "ÅĻen": 118043, + "ĠokolÃŃ": 118044, + "产ä¸ļ": 118045, + "Ġзм": 118046, + "Ġé¾": 118047, + "ÙĬار": 118048, + "ĠاÙĦØ´ÙĬØ®": 118049, + "иÑĤелÑĮнÑĭй": 118050, + "ĠاÙĩÙħ": 118051, + "ĠباÙĦرÙĬاض": 118052, + "ĠÙ¾ÛĮاÙħ": 118053, + "Ġkredi": 118054, + "ĠArap": 118055, + "ĠÑĢаб": 118056, + "ĠнекоÑĤоÑĢÑĭÑħ": 118057, + "ĠØŃاÙģظÙĩ": 118058, + "иÑĤелÑĮного": 118059, + "Ġgerekmektedir": 118060, + "ĠDeniz": 118061, + "ĠتÙĦاش": 118062, + "stagram": 118063, + "ávky": 118064, + "åĬłåħ¥": 118065, + "ozor": 118066, + "Ġdurumunda": 118067, + "Ġíıīëĭ¹": 118068, + "Ġë´ī": 118069, + "ĠpenÄĽ": 118070, + "گاÙĨÛĮ": 118071, + "ĠKup": 118072, + "ĠÑĨеÑĢ": 118073, + "ulması": 118074, + "âijł": 118075, + "ĠÑģÑĸÑĩнÑı": 118076, + "ımıza": 118077, + "å®ļçļĦ": 118078, + "ÂłÑĤ": 118079, + "åĬŀåħ¬": 118080, + "ìľ¼ëĭĪ": 118081, + "ĠاÙĦØ¥ÙĨ": 118082, + "Ġçĥ": 118083, + "ãĢįï¼Į": 118084, + "ÑĹна": 118085, + "ĠпÑĢигоÑĤовлениÑı": 118086, + "Ðħ": 118087, + "ĠÑģолн": 118088, + "Ġë¶ĢìĤ°": 118089, + "æħ¶": 118090, + "ãĤ¾": 118091, + "voje": 118092, + "ÛĮدÙĨ": 118093, + "ìĥĿëĭĺ": 118094, + "ç¹ģ": 118095, + "ádu": 118096, + ":::::::::::::::": 118097, + "سÙĨÚ¯": 118098, + "éĶĭ": 118099, + "ĠзвиÑĩай": 118100, + "å§Ķåijĺä¼ļ": 118101, + "ĠμÎŃÏĥα": 118102, + "ĠÑĢождениÑı": 118103, + "æĪIJ人": 118104, + "ĠdÃŃl": 118105, + "ĠÐĶоб": 118106, + "Ġà¹ĥà¸Ĭ": 118107, + "ÏĢί": 118108, + "gamber": 118109, + "ĠÙĪÛĮÚĺÚ¯ÛĮ": 118110, + "ĠèĬ±": 118111, + "ĠbÃły": 118112, + "ĠжовÑĤнÑı": 118113, + "åħ¬å¼Ģ": 118114, + "ĠÑĤоÑĩки": 118115, + "ãģĤãģ®": 118116, + "алÑĸв": 118117, + "Ġcharakter": 118118, + "ĠÎĴα": 118119, + "ĠzkuÅ¡en": 118120, + "Ġà¤Ńà¤Ĺव": 118121, + "Ñĩика": 118122, + "à¥Ģà¤Ĥ।": 118123, + "è£ı": 118124, + "åijĬè¯ī": 118125, + "iyatı": 118126, + "ĠÑĨелÑĮ": 118127, + "ĠìĬĪ": 118128, + "аÑĢд": 118129, + "ĠÃľlke": 118130, + "Ġprosince": 118131, + "ĠÙĨگاÙĩ": 118132, + "ãĢĮãģĬ": 118133, + "ΣΤ": 118134, + "ìĦľëĬĶ": 118135, + "ÙĪگر": 118136, + "ضاÙĨ": 118137, + "Ġdůsled": 118138, + "çIJ´": 118139, + "à¸ķำà¹ģหà¸Ļ": 118140, + "кÑĤÑĸв": 118141, + "ládá": 118142, + "á¿Ĩ": 118143, + "ĠDoÄŁu": 118144, + "ãģijãĤĮãģ°": 118145, + "缮ãĤĴ": 118146, + "Ġ缴": 118147, + "æĽ°": 118148, + "ĠвÑĤоÑĢой": 118149, + "ĠглÑĥ": 118150, + "ĠìĿ½": 118151, + "기ì¤Ģ": 118152, + "Ġmadde": 118153, + "Ġjedné": 118154, + "ĠоÑĦÑĸ": 118155, + "ìĭĿìĿĦ": 118156, + "Ġchút": 118157, + "åĩºãģĹãģŁ": 118158, + "иÑĩеÑģкаÑı": 118159, + "Ġлок": 118160, + "Ġaltı": 118161, + "ëĵľëĬĶ": 118162, + "eygamber": 118163, + "ĠÑģвое": 118164, + "ĠtaÅŁÄ±m": 118165, + "ĠÑĤоÑīо": 118166, + "Ġgeçti": 118167, + "Ġpremi": 118168, + "ĠMehmet": 118169, + "ï¼ĮåĽłæѤ": 118170, + "ίκη": 118171, + "Ġönceki": 118172, + "Ġà¤ķन": 118173, + "ĠÑĤемпеÑĢаÑĤÑĥÑĢа": 118174, + "éĺ´": 118175, + "Ġìĸ¼ë§Ī": 118176, + "شب": 118177, + "áky": 118178, + "ãĢĢV": 118179, + "воÑĢеннÑı": 118180, + "lasyon": 118181, + "Ġдоказ": 118182, + "Ġëľ»": 118183, + "ĠоблиÑĩ": 118184, + "ÎĻÎijÎļ": 118185, + "ĠÑĢазд": 118186, + "ï¼Į为": 118187, + "宽": 118188, + "Ġkorum": 118189, + "åķĬåķĬ": 118190, + "ĠÅĻekla": 118191, + "ãĥĹãĥ¬": 118192, + "ĠваÑĢÑĤ": 118193, + "ĠпÑĢоблемÑĭ": 118194, + "Ġä½ł": 118195, + "ĠthÆ¡m": 118196, + "Ġtakové": 118197, + "ленÑĭ": 118198, + "ĠåĪ¶": 118199, + "Ġjiných": 118200, + "ĠÙĨص": 118201, + "ĠгÑĢÑĥднÑı": 118202, + "ĠãģĹ": 118203, + "иÑĤелÑĮной": 118204, + "ĠاØŃتÙħ": 118205, + "ÑİÑĢ": 118206, + "ÏĨÏħ": 118207, + "ĠØ´ÙħاÙĦÛĮ": 118208, + "Ġì»´": 118209, + "acaģız": 118210, + "ì§Ģë§ī": 118211, + "ĠÑĦинанÑģов": 118212, + "Ġê·¹": 118213, + "ĠÚĨÛĮزÛĮ": 118214, + "à¥Ģà¤Ľ": 118215, + "صات": 118216, + "ानम": 118217, + "Ġвозможно": 118218, + "è¨İ": 118219, + "çĦ¦": 118220, + "ĠاÙĦبÙĦد": 118221, + "ĠçĶ³åįļ": 118222, + "祥": 118223, + "Ġë°ĶëĿ¼": 118224, + "Ú¯ÛĮر": 118225, + "ÛµÛ°": 118226, + "μιοÏħÏģγ": 118227, + "ĠpÅĻedsed": 118228, + "ç»ıèIJ¥": 118229, + "å§ij": 118230, + "emey": 118231, + "ĠÙĨÙĪÙģ": 118232, + "å¾½": 118233, + "Ġpráva": 118234, + "ĠвообÑīе": 118235, + "Ġíĭ°": 118236, + "ĠبأÙĨ": 118237, + "ĠFranti": 118238, + "ĠPaÅŁa": 118239, + "Ġپست": 118240, + "kân": 118241, + "ĠÑģигн": 118242, + "Ġdần": 118243, + "æIJľ": 118244, + "Ġroky": 118245, + "ÙĥÙĪر": 118246, + "ĠÎĶή": 118247, + "ализаÑĨии": 118248, + "ä¼łå¥ĩ": 118249, + "ıda": 118250, + "lÃŃb": 118251, + "ĠÑĢÑĸвнÑı": 118252, + "ĠноÑı": 118253, + "bÄĽhu": 118254, + "ิà¸ĩหาà¸Ħม": 118255, + "ï¼Įåį´": 118256, + "ĠÑĩеÑģ": 118257, + "lanmÄ±ÅŁtır": 118258, + "ĠÆ°á»Ľc": 118259, + "ávacÃŃ": 118260, + "ีฬา": 118261, + "δÎŃ": 118262, + "âĢĮØ´ÙĪÙĨد": 118263, + "ĠÑĢобÑĸÑĤ": 118264, + "Ġå·´": 118265, + "ĠMev": 118266, + "ĠÙħرØŃÙĦÙĩ": 118267, + "ĠвзÑĢоÑģ": 118268, + "ç½ļ": 118269, + "ĠباÙĦÙħ": 118270, + "ĠизгоÑĤов": 118271, + "ĠSpor": 118272, + "åĦĢ": 118273, + "ĠاÙĦØ£ÙĨ": 118274, + "à¹Īาà¸ĩà¸ģ": 118275, + "лаÑģÑĤи": 118276, + "ÎŁÎļ": 118277, + "ĠÚ©ÛĮ": 118278, + "åij½ä»¤": 118279, + "ØŃدث": 118280, + "ÙĬÙĥÙĬ": 118281, + "ĠпеÑĢвÑĭй": 118282, + "ãĤ¹ãĤ³": 118283, + "ĠÅ¡pat": 118284, + "Ġnikdo": 118285, + "ัà¸ĩม": 118286, + "赫": 118287, + "æĺ¨": 118288, + "ĠвÑĥли": 118289, + "ĠÐļа": 118290, + "à¹Īละ": 118291, + "Ġsamot": 118292, + "ĠобеÑģпе": 118293, + "ĠÙħعرÙģÛĮ": 118294, + "ĠÙħØŃصÙĪÙĦات": 118295, + "ванов": 118296, + "ĠÙħستÙĤÛĮÙħ": 118297, + "å¢Ļ": 118298, + "ÂłÐļ": 118299, + "ĠдоÑĤ": 118300, + "zim": 118301, + "ÙIJر": 118302, + "ĠØ´ÙĪ": 118303, + "åľ¨åľ°": 118304, + "Ġçİ°": 118305, + "ĠåĮĸ": 118306, + "زÙĪ": 118307, + "Ġyaygın": 118308, + "ĠоÑĢиг": 118309, + "ÙıÙĨ": 118310, + "Ġevrop": 118311, + "Ġï½ľ": 118312, + "Ġëħ¸ì¶ľëĵ±ë¡Ŀ": 118313, + "åĩĿ": 118314, + "леннÑĭÑħ": 118315, + "Ġjenom": 118316, + "ĠЧÑĤобÑĭ": 118317, + "ĠìĹĨëĭ¤": 118318, + "ĠìŬìĦ±": 118319, + "Ġresmi": 118320, + "imálnÃŃ": 118321, + "缮ãģ®": 118322, + "sian": 118323, + "-нибÑĥдÑĮ": 118324, + "οκ": 118325, + "çĭ¬ç«ĭ": 118326, + "ÅŁehir": 118327, + "åIJIJ": 118328, + "åĪ¶éĢł": 118329, + "ĠÎĶεν": 118330, + "ãĥĭãĥ¥": 118331, + "иÑĤелÑĮнÑĭÑħ": 118332, + "ĠÙĥاÙħ": 118333, + "Ïģκ": 118334, + "Ġrau": 118335, + "ĠÑģмеÑĢÑĤи": 118336, + "ĠÏĮÏĦαν": 118337, + "ĠTại": 118338, + "Ġرب": 118339, + "ενο": 118340, + "ردد": 118341, + "Ġà¸ģระ": 118342, + "Ïĥμο": 118343, + "Ġæ¼Ķ": 118344, + "ิà¸Īà¸ģรรม": 118345, + "ĠÑĢазви": 118346, + "ãĤ¹ãĥļ": 118347, + "ÑĸÑĩноÑĹ": 118348, + "lášenÃŃ": 118349, + "ابعة": 118350, + "ovými": 118351, + "анг": 118352, + "ĠкапÑĸÑĤ": 118353, + "ãĢģâĢĭ": 118354, + "íĸĪëįĺ": 118355, + "ĠÑĥÑģÑĸ": 118356, + "ยาว": 118357, + "Ø£Ùħ": 118358, + "ãĥ©ãĥĥãĤ¯": 118359, + "Ġëķ": 118360, + "ĠسÙĨÙĪات": 118361, + "ĠÑģÑĤаÑĤÑĮи": 118362, + "ÑĹÑħ": 118363, + "ÏģοÏĩή": 118364, + "ĠØ£ÙĥتÙĪبر": 118365, + "lanma": 118366, + "Ġmalzem": 118367, + "磨": 118368, + "ĠбокÑĥ": 118369, + "åŃĹå¹ķ": 118370, + "ĠоÑĢганÑĸза": 118371, + "ãĥ©ãĤ¤ãĥ³": 118372, + "ĠÙħعدÙĨ": 118373, + "çĶ·åŃIJ": 118374, + "ĠæĤ": 118375, + "Ế": 118376, + "Ġmeziná": 118377, + "иваÑİÑĤ": 118378, + "ĠطبÛĮعÛĮ": 118379, + "èĻij": 118380, + "à¤Łà¤°": 118381, + "ĠподÑģ": 118382, + "ĠÅŁaÅŁ": 118383, + "à¸Ļà¹Ĩ": 118384, + "ĠÅ¡p": 118385, + "vÄĽÅĻ": 118386, + "зÑĮ": 118387, + "ëĿ¼ë§Ī": 118388, + "ุà¸ĺ": 118389, + "âĢ¦Ø·": 118390, + "리ì§Ģ": 118391, + "âĦĸâĦĸâĦĸâĦĸ": 118392, + "Ġbức": 118393, + "ĠSpoj": 118394, + "ĠиÑģполÑĮзовани": 118395, + "å·¦åı³": 118396, + "enler": 118397, + "ĠоÑīÑĥÑī": 118398, + "ĠоблÑĸ": 118399, + "ظËĨ": 118400, + "ÙĦÛĮس": 118401, + "æıIJåįĩ": 118402, + "ĠговоÑĢиÑĤÑĮ": 118403, + "Ġkür": 118404, + "ĠλειÏĦοÏħÏģγ": 118405, + "лага": 118406, + "ĠÑģÑĥдÑĥ": 118407, + "Ġ측": 118408, + "θεÏĥη": 118409, + "Ġнен": 118410, + "Ġbiçimde": 118411, + "ÑĨÑĸйноÑĹ": 118412, + "à¹Ģà¸Ħย": 118413, + "ĠDalÅ¡ÃŃ": 118414, + "ĠимеÑĤÑĮ": 118415, + "èĭĹ": 118416, + "ĠÙħعرÙĪÙģ": 118417, + "Ġtạp": 118418, + "ĠmeÅŁ": 118419, + "ÂłN": 118420, + "оÑĢони": 118421, + "عÙģ": 118422, + "à¹Ĥรà¸ĩà¹Ģร": 118423, + "âĶ¬": 118424, + "Ġà¹Ģà¸ŀราะ": 118425, + "Ġèı²å¾ĭ宾": 118426, + "ÑģÑĤвенное": 118427, + "ĠازدÙĪاج": 118428, + "ĠÑĦев": 118429, + "éł»": 118430, + "Ġสล": 118431, + "à¸ķà¸Ńà¸Ļ": 118432, + "Ġ기ê°Ħ": 118433, + "佩": 118434, + "ÏĦην": 118435, + "ëĤ¬ëĭ¤": 118436, + "ĠQuy": 118437, + "Ġë¶Ļ": 118438, + "ĠСÑĥд": 118439, + "иж": 118440, + "Ġà¹Ģà¸ģม": 118441, + "ĠÑģвÑıÑĤ": 118442, + "etooth": 118443, + "εÏģο": 118444, + "ÙĦÙħØ©": 118445, + "Ø´ÙĪر": 118446, + "Ġdomu": 118447, + "èįĴ": 118448, + "mî": 118449, + "ëıĦ를": 118450, + "ĠÑĢекомендÑĥеÑĤÑģÑı": 118451, + "Ġsonrasında": 118452, + "ĠднÑĸв": 118453, + "Ġçal": 118454, + "ãĤ«ãĥĨãĤ´ãĥª": 118455, + "Ġеж": 118456, + "Ġìķī": 118457, + "èī²çļĦ": 118458, + "âĢĻnde": 118459, + "ĠÏĢÏīÏĤ": 118460, + "ĠÑĩеÑĤвеÑĢ": 118461, + "kili": 118462, + "æĢ§èĥ½": 118463, + "ادÙĬØ©": 118464, + "纯": 118465, + "ĠاÙĦتش": 118466, + "ĠÑĤела": 118467, + "ĠобÑĬем": 118468, + "å²Ĺä½į": 118469, + "Ġkonkrét": 118470, + "Ġarada": 118471, + "ìĭľìĹIJ": 118472, + "Ġoranı": 118473, + "رÙĥ": 118474, + "ÐĽÐIJ": 118475, + "ĠménÄĽ": 118476, + "جÙĪÛĮ": 118477, + "Ġvợ": 118478, + "ĠAngiospermae": 118479, + "èĥİ": 118480, + "Ġhôn": 118481, + "äºĭæ¥Ń": 118482, + "ĠоÑĤвеÑĢ": 118483, + "Ġsrd": 118484, + "Å¡li": 118485, + "สà¸ģ": 118486, + "æ¼ı": 118487, + "ĠشرØŃ": 118488, + "ÑĨÑıми": 118489, + "Ġslav": 118490, + "Ġceny": 118491, + "à¸Ńà¹Ģร": 118492, + "ĠÙĪÙĦد": 118493, + "ĠкоÑĢа": 118494, + "ĠбÑĢон": 118495, + ":.:.:.:.:": 118496, + "Ġnemus": 118497, + "è¿Ļæł·çļĦ": 118498, + "ĠبرÙĨاÙħج": 118499, + "ĠúplnÄĽ": 118500, + "ีà¸Ļาà¸Ħม": 118501, + "Ġë°ĽìķĦ": 118502, + "μεÏģα": 118503, + "缩": 118504, + "Ġnắm": 118505, + "ĠобÑĬÑıÑģ": 118506, + "ĠконÑĤÑĢолÑİ": 118507, + "ávajÃŃcÃŃ": 118508, + "Ġkum": 118509, + "çĶ·äºº": 118510, + "ĠvnitÅĻ": 118511, + "ĠبدÙĩ": 118512, + "ĠأبرÙĬÙĦ": 118513, + "人æ°ijåħ±åĴĮåĽ½": 118514, + "Ġyapılır": 118515, + "ĠnaÅ¡ÃŃ": 118516, + "ãĥ¼ãĥŃ": 118517, + "Ġtạm": 118518, + "Ġhenüz": 118519, + "Ġzemi": 118520, + "Ġkháng": 118521, + "åħ¬åħ±": 118522, + "ĠèĢģ": 118523, + "ĠعÙĪاÙħÙĦ": 118524, + "ÂłV": 118525, + "à¹īà¹ģà¸ģ": 118526, + "άνÏĦα": 118527, + "ĠÑĤÑĢавнÑı": 118528, + "ĠημÎŃ": 118529, + "è´¸": 118530, + "สà¸Ķ": 118531, + "ĠسÙħت": 118532, + "Ġخاک": 118533, + "ĠÑĤакий": 118534, + "Ġettik": 118535, + "ĠÏĮλ": 118536, + "Ġполи": 118537, + "Ġнож": 118538, + "غاÙĨ": 118539, + "ÙĨدÙĬ": 118540, + "ĠÄįtyÅĻi": 118541, + "ĠPhÆ°Æ¡ng": 118542, + "ĠÙĪرزش": 118543, + "ãģĦãģĭ": 118544, + "rvé": 118545, + "Ġतरफ": 118546, + "Ġनà¤Ĺर": 118547, + "masında": 118548, + "евиÑĩ": 118549, + "veÅĻej": 118550, + "ä¿ĿæĮģ": 118551, + "æĬĢèĥ½": 118552, + "æݨèįIJ": 118553, + "lâm": 118554, + "ĠÏį": 118555, + "å¢ŀéķ¿": 118556, + "ĠاصÙģÙĩ": 118557, + "ĠÐĹаконÑĥ": 118558, + "ĠÐŁÑĢез": 118559, + "Ġpodpor": 118560, + "기íĥĢ": 118561, + "ĠíıIJ": 118562, + "ĠëĭĪ": 118563, + "larınız": 118564, + "ãĥĸãĥŃ": 118565, + "ĠÑĦÑĢанÑĨÑĥз": 118566, + "ãĥĬãĥ¼": 118567, + "Ġbeled": 118568, + "ัà¸Ļวาà¸Ħม": 118569, + "ĠÙģرÙĪ": 118570, + "ÑĦÑĢов": 118571, + "ĠìĿ´ëŁ¬": 118572, + "ượu": 118573, + "Ġê³µìĭĿ": 118574, + "Ġbirden": 118575, + "Ġзелен": 118576, + "çĴĥ": 118577, + "Ġhá»ĵng": 118578, + "ĠÅ¡kola": 118579, + "ĠÑģамом": 118580, + "anlık": 118581, + "空éĹ´": 118582, + "åįĹçľģ": 118583, + "леÑĢг": 118584, + "ÑĸзнеÑģ": 118585, + "ÂłA": 118586, + "ãĢįãĤĴ": 118587, + "Ġkendine": 118588, + "ĠاÙĪÙĨ": 118589, + "ãĢĶ": 118590, + "ĠΣÏį": 118591, + "à¹Ģà¸Ħล": 118592, + "奶": 118593, + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 118594, + "ĠúÄįet": 118595, + "Ñĥла": 118596, + "éĢļä¿¡": 118597, + "Ġì¦IJ": 118598, + ".čĊĊ": 118599, + "ĠÐľÐµÐ´": 118600, + "اعÙĬ": 118601, + "Ġjehož": 118602, + "ĠGüney": 118603, + "ĠÎijÏĢο": 118604, + "ĠполÑĸ": 118605, + "üme": 118606, + "hodob": 118607, + "ĠÎĿα": 118608, + "ĠØ¢ÙĦات": 118609, + "ĠpÅĻiz": 118610, + "Ġtavs": 118611, + "ĠتبÙĦÛĮ": 118612, + "ãĥ³ãĥĶ": 118613, + "خرج": 118614, + "ĠаккÑĥ": 118615, + "Ġúprav": 118616, + "ĠاØŃساس": 118617, + "ì¹´ëĿ¼": 118618, + "ımızı": 118619, + "ĠдокÑĥменÑĤ": 118620, + "ĠاصÙĦ": 118621, + "ظÙĩ": 118622, + "ĠìĿ¸ê°Ħ": 118623, + "ĠجرÛĮاÙĨ": 118624, + "Î¥ÎĿ": 118625, + "ÑĩеÑģкаÑı": 118626, + "ÙĬÙĨÙĬØ©": 118627, + "åĴ¨": 118628, + "æĹħ游": 118629, + "Ġà¸Īำà¸Ļวà¸Ļ": 118630, + "Ġанг": 118631, + "ÏħÏĩ": 118632, + "èĻ«": 118633, + "ĠÙħÙĤر": 118634, + "ĠÙħÙĪسÛĮÙĤÛĮ": 118635, + "utut": 118636, + "ĠÐĽÐµ": 118637, + "ĠÐŁÑĸÑģлÑı": 118638, + "ãĤŃãĥ¼": 118639, + "ุลาà¸Ħม": 118640, + "åĩ¡": 118641, + "ÏĢοÏį": 118642, + "ĠÃĸdül": 118643, + "Ïĥκ": 118644, + "ĠÑĨÑİ": 118645, + "ÑĭваÑı": 118646, + "ï½ŀï½ŀ": 118647, + "ĠØ´ÙħاÙĦ": 118648, + "è¿ħ": 118649, + "ĠبÙĦÚ©Ùĩ": 118650, + "çİĽ": 118651, + "Ġì§ĢëĤĺ": 118652, + "ĠÙģکر": 118653, + "ĠÑģÑĤепени": 118654, + "ĠнаÑĥки": 118655, + "çī©çIJĨ": 118656, + "ÄĽle": 118657, + "ĠоÑģкÑĸлÑĮки": 118658, + "ĠкÑĥлÑĮÑĤÑĥÑĢи": 118659, + "èĢĥè¯ķ": 118660, + "Ġmateriál": 118661, + "ĠÑģÑĤвоÑĢеннÑı": 118662, + "Ġà¤ħद": 118663, + "æıIJåĩº": 118664, + "Ġè©ķ価": 118665, + "ÙĴد": 118666, + "Ġë§Įëĵ¤ìĸ´": 118667, + "duÄŁunu": 118668, + "ÙĬÙĨÙĩ": 118669, + "åĵ¦": 118670, + "оÑĩнÑĭÑħ": 118671, + "ĠÙħض": 118672, + "ismu": 118673, + "ĠÑĩай": 118674, + "ÙĪرÙĪب": 118675, + "Ġангл": 118676, + "oÄŁunluk": 118677, + "ĠпÑĢедпол": 118678, + "ĠÎŃÏīÏĤ": 118679, + "สà¸ĸ": 118680, + "ĠÎķλλάδα": 118681, + "ĠBilg": 118682, + "Ġبات": 118683, + "ĠÐĽÑĮвÑĸв": 118684, + "Ġyapılması": 118685, + "æ£ĢæŁ¥": 118686, + "æķ°åѦ": 118687, + "Ġ:.:": 118688, + "Ġçİ©": 118689, + "Îļα": 118690, + "à¹Ģà¸Ĺà¸Ħà¹Ĥà¸Ļà¹Ĥลย": 118691, + "ĠساختÙħاÙĨ": 118692, + "ĠìĨĮ리": 118693, + "é¼»": 118694, + "Ġsmr": 118695, + "Ġëĭ¤ìĸijíķľ": 118696, + "ĠjednánÃŃ": 118697, + "Ġservisi": 118698, + "Ġeylem": 118699, + "Ġмали": 118700, + "Ġvýhod": 118701, + "éĻ¤äºĨ": 118702, + "ĠпоÑĢÑıдкÑĥ": 118703, + "Ġnový": 118704, + "å¤ķ": 118705, + "ĠнекоÑĤоÑĢÑĭе": 118706, + "Ġ^{}": 118707, + "γÏīγ": 118708, + "ÑĥÑĪки": 118709, + "Ġpsik": 118710, + "ĠíĶĦ리": 118711, + "شاء": 118712, + "Ġван": 118713, + "ĠسÙĥاÙĨ": 118714, + "碼": 118715, + "Ġξη": 118716, + "ĠÑĥÑĢовенÑĮ": 118717, + "ãĤµãĥ¼": 118718, + "ĠاÙĦبØŃر": 118719, + "ĠdnÃŃ": 118720, + "à¸ģารศ": 118721, + "ediÄŁi": 118722, + "Ġbelirli": 118723, + "ÙĭØĮ": 118724, + "ĠzamÄĽstnan": 118725, + "æŁ±": 118726, + "اÙģÙĬ": 118727, + "Ġhải": 118728, + "æĢĿæĥ³": 118729, + "Ġneler": 118730, + "ĠرسÙħÛĮ": 118731, + "ÑģеÑĢ": 118732, + "ãģĵãģ¨ãģ§": 118733, + "ĠZákladnÃŃ": 118734, + "лова": 118735, + "кÑĤÑĥ": 118736, + "ÙĪسÙģ": 118737, + "ÑĸблÑĸ": 118738, + "ÌĤ": 118739, + "ÑĢд": 118740, + "éĻ³": 118741, + "æį·": 118742, + "ĠyaÅŁayan": 118743, + "à¥ģà¤ļ": 118744, + "ÑĸÑĤÑĤÑı": 118745, + "Ġbá»ģ": 118746, + "ëĤĺëĿ¼": 118747, + "ĠмÑıÑģ": 118748, + "Ġ{[%": 118749, + "θα": 118750, + "ĠдозволÑı": 118751, + "ĠåIJĦ": 118752, + "ĠÐŁÐµÑĢв": 118753, + "ĠSaÄŁlık": 118754, + "ÑģÑĤоÑĢиÑı": 118755, + "Ġbunlar": 118756, + "Ġsá»ķ": 118757, + "़à¥į": 118758, + "ĠåĪ©": 118759, + "ĠÑģпоÑģ": 118760, + "Ġyaptır": 118761, + "ĠtÆ°á»Ŀng": 118762, + "ÙĪÙĨØ©": 118763, + "Ġеп": 118764, + "ãģ§ãģįãģªãģĦ": 118765, + "ÙģتÙħ": 118766, + "ĠÐĵол": 118767, + "íķĺì§Ģë§Į": 118768, + "Ġì§Ħì§ľ": 118769, + "Ġobjedn": 118770, + "ĠизменениÑı": 118771, + "女人": 118772, + "Ġплани": 118773, + "ĠFakült": 118774, + "Ġtzv": 118775, + "ĠобÑıзаÑĤелÑĮ": 118776, + "ĠблизÑĮко": 118777, + "rası": 118778, + "ĠεÏĢίÏĥηÏĤ": 118779, + "ĠÑĦакÑĤи": 118780, + "ĠÄIJặc": 118781, + "ĠAltın": 118782, + "лиÑĤ": 118783, + "ĠлÑĸÑģ": 118784, + "çī§": 118785, + "ĠпÑĥÑģÑĤ": 118786, + "ĠкомÑĸÑģ": 118787, + "ä¿Ŀéļľ": 118788, + "åħ·ä½ĵ": 118789, + "-ÑĤ": 118790, + "Ġtrhu": 118791, + "ĠâīĪ": 118792, + "ĠдекабÑĢÑı": 118793, + "ĠÑĦоÑĢмÑĭ": 118794, + "NgoÃłi": 118795, + "Ġdohod": 118796, + "رÙĬÙĥÙĬØ©": 118797, + "ĠØ¢ÙħÙĪزشÛĮ": 118798, + "ĠzajÃŃmav": 118799, + "Ġkatılım": 118800, + "ä¸ĺ": 118801, + "Ġkonum": 118802, + "ĠмоÑĩ": 118803, + "ãĥ³ãĥķ": 118804, + "дивидÑĥ": 118805, + "Ġäºļ": 118806, + "ĠæĴ": 118807, + "γÏģάÏĨ": 118808, + "ãĥIJãĤ¹": 118809, + "ĠпÑĥнк": 118810, + "ĠBirleÅŁik": 118811, + "Ġquen": 118812, + "Ġвказ": 118813, + "à¥ĩशà¤ķ": 118814, + "ĠYunan": 118815, + "ãģłãģ¨": 118816, + "Û±Û¹Û·": 118817, + "áty": 118818, + "ĠÙĪص": 118819, + "ĠнегаÑĤив": 118820, + "ãģ¤ãģ®": 118821, + "ĠåĬ¨": 118822, + "ãĥįãĥĥãĥĪ": 118823, + "ĠдÑĸй": 118824, + "ĠbaÅŁÄ±nda": 118825, + "ĠtrÆ°ng": 118826, + "Ġmakin": 118827, + "ĠæĦĽ": 118828, + "меÑĩ": 118829, + "Ġè¿ij": 118830, + "ÙĤدر": 118831, + "ĠاستاÙĨد": 118832, + "ĠinformacÃŃ": 118833, + "ारà¤ķ": 118834, + "è¬Ŀ": 118835, + "ÑĢабаÑĤ": 118836, + "ĠçŃĶ": 118837, + "Ġèĩ³": 118838, + "ĠполÑĮ": 118839, + "ĠÙĩÙĨر": 118840, + "ëĮĢë¹Ħ": 118841, + "ĠخارجÛĮ": 118842, + "ract": 118843, + "ãĢĤãģĵãĤĮ": 118844, + "ĠØ´ÙĪراÛĮ": 118845, + "ленно": 118846, + "Ġhisset": 118847, + "ĠcÃłi": 118848, + "ĠÑĦоÑĤо": 118849, + "æģĴ": 118850, + "ĠмедиÑĨин": 118851, + "ÑģÑĤвÑĸ": 118852, + "ĠاÙĦعÙĦ": 118853, + "ĠпиÑģÑĮмен": 118854, + "ãĢĤãģ¾ãģŁ": 118855, + "ĠvlastnÄĽ": 118856, + "Ġпода": 118857, + "Ïģοι": 118858, + "ĠìĦĿ": 118859, + "ĠìĿ¼ìĿ´": 118860, + "ĠìĽĮ": 118861, + "окÑģи": 118862, + "Ġosoby": 118863, + "ÐŁÐ¾Ñģле": 118864, + "ĠÑĸÑģÑĤоÑĢÑĸÑĹ": 118865, + "عÙĦÙī": 118866, + "нка": 118867, + "تÙħبر": 118868, + "à¥ĩहर": 118869, + "ĠJana": 118870, + "ÙĦÙĬات": 118871, + "ĠмаÑĢÑĤа": 118872, + "ĠÐļиÑĶ": 118873, + "ĠÑĢобоÑĤÑĥ": 118874, + "Ġnhấn": 118875, + "иÑģлов": 118876, + "ëŁŃ": 118877, + "Ġodv": 118878, + "ĠTá»īnh": 118879, + "âĢľê·¸": 118880, + "ãģ»ãģĨ": 118881, + "é²ľ": 118882, + "меÑĨÑĮ": 118883, + "าศาสà¸ķร": 118884, + "à¥ģà¤ĵ": 118885, + "ิà¸Ļà¸Ĺ": 118886, + "mada": 118887, + "زاÙħ": 118888, + "ĠÙĥبÙĬر": 118889, + "å®ŀæĸ½": 118890, + "zeÅĪ": 118891, + "Ġlái": 118892, + "Ïĥμα": 118893, + "اسات": 118894, + "ÑĦÑĤ": 118895, + "è°±": 118896, + "çĮľ": 118897, + "ĠprobÃŃ": 118898, + "æľĢè¿ij": 118899, + "ÑĢад": 118900, + "ãĤ½ãĥ³": 118901, + "Ġклад": 118902, + "à¥ľà¤ķ": 118903, + "év": 118904, + "ลาย": 118905, + "èİİ": 118906, + "ĠμÎŃÏĩÏģι": 118907, + "ĠкÑĥÑģ": 118908, + "ĠíĻĺê²½": 118909, + "ÑĩоÑĹ": 118910, + "åıĺåĮĸ": 118911, + "ĠبتÙĪاÙĨ": 118912, + "Ġtắt": 118913, + "Ġgösteren": 118914, + "алÑİ": 118915, + "Ġкоманди": 118916, + "Ġ컨": 118917, + "Ñĥнд": 118918, + "ĠجÙĦÙĪ": 118919, + "åŃIJçļĦ": 118920, + "ĠÑģб": 118921, + "ĠÐłÐ°Ñģ": 118922, + "PCP": 118923, + "ĠCumhurbaÅŁ": 118924, + "одаÑĤелÑĮ": 118925, + "ÃŃsto": 118926, + "Ġoznám": 118927, + "ãĥ¼ãĥĭ": 118928, + "Ġokuy": 118929, + "ophy": 118930, + "าà¸Ļà¸Ħร": 118931, + "ĠÎķθν": 118932, + "ayım": 118933, + "ÙİØ£": 118934, + "æİ¡": 118935, + "Ġfunkce": 118936, + "æļĸ": 118937, + "طار": 118938, + "ĠÐĿаг": 118939, + "Ġä¸ĩåĨĨ": 118940, + "ĠíĴį": 118941, + "Ġä½ı": 118942, + "Ġï¼İ": 118943, + "ÑĭваÑİÑĤÑģÑı": 118944, + "ĠPla": 118945, + "اÙĬÙĦ": 118946, + "Ġ무ìĹĩ": 118947, + "ĠконеÑĩно": 118948, + "км": 118949, + "à¤Ĥपर": 118950, + "Ġìłķë¶Ģ": 118951, + "ĠëĤ´ëł¤": 118952, + "ãĤ°ãĥ«": 118953, + "çģ°": 118954, + "Ġcyk": 118955, + "ĠжелÑĥд": 118956, + "ĠëĨĴìĿĢ": 118957, + "çĶŁåij½": 118958, + "æµ´": 118959, + "ĠartÄ±ÅŁ": 118960, + "ĠÐĩ": 118961, + "ï¼²": 118962, + "ekim": 118963, + "ĠÑĦедеÑĢа": 118964, + "ĠвеÑĢеÑģнÑı": 118965, + "ниÑĤе": 118966, + "ĠÄ°ÅŁte": 118967, + "ĠÙĪضعÛĮت": 118968, + "ãģķãģ¾": 118969, + "ĠtÅĻetÃŃ": 118970, + "uluÄŁ": 118971, + "ĠCumhuriyet": 118972, + "ä¼Ł": 118973, + "Ġë§Ŀ": 118974, + "Ġvermek": 118975, + "Ġnalez": 118976, + "çĵ¶": 118977, + "ĠdiÅŁ": 118978, + "ĠHá»ĵng": 118979, + "غÙĬرة": 118980, + "å©Ĩ": 118981, + "нив": 118982, + "Ġrút": 118983, + "'nda": 118984, + "Ġhroz": 118985, + "à¥īप": 118986, + "Ġзаконом": 118987, + "Ġjednu": 118988, + "ĠKadın": 118989, + "indir": 118990, + "سازÛĮ": 118991, + "åĮºåŁŁ": 118992, + "ĠkonuÅŁtu": 118993, + "ĠزÙĨد": 118994, + "ाĊĊ": 118995, + "ĠÐIJз": 118996, + "à¸ĩà¸Ĥà¸Ńà¸ĩ": 118997, + "ĠÑģвойÑģÑĤва": 118998, + "ĠìŀijíĴĪ": 118999, + "пеки": 119000, + "Ġå°±": 119001, + "евого": 119002, + "ĠtaÅŁÄ±y": 119003, + "ĠÙħÙĨØ·ÙĤØ©": 119004, + "ĠÃĩocuk": 119005, + "Û²Û·": 119006, + "ĠÏĥÏħμÏĢ": 119007, + "é£Łåĵģ": 119008, + "há": 119009, + "O": 119010, + "ÙĦÙħÙĩ": 119011, + "ãģ¨ãģªãģ£ãģŁ": 119012, + "оÑĢÑĸ": 119013, + "°}": 119014, + "ĠtaÅŁÄ±n": 119015, + "çŁ¿": 119016, + "ĠÑĩаÑģÑĤини": 119017, + "ĠدÙĬسÙħبر": 119018, + "Ġèī¯": 119019, + "stÅĻÃŃ": 119020, + "ĠÑĨик": 119021, + "âĢķâĢķâĢķâĢķ": 119022, + "ĠÄ°ngiltere": 119023, + "ĠÑģÑĤÑĢаÑĤег": 119024, + "ÃĦŸ": 119025, + "иÑĩного": 119026, + "ÃŃrk": 119027, + "ĠÎijÏģ": 119028, + "!âĢľĊĊ": 119029, + "Ġ깨": 119030, + "à¥ģà¤Ĩत": 119031, + "ĠدÙĨÛĮا": 119032, + "lÃŃn": 119033, + "Ġà¤ķड": 119034, + "ĠÙħبت": 119035, + "емÑĭÑħ": 119036, + "оби": 119037, + "ยà¸Ļà¸ķ": 119038, + "à¤Ĥधन": 119039, + "ÚĨÛĮ": 119040, + "ĠçŁ¥": 119041, + "ĠXuân": 119042, + "adaki": 119043, + "Ġorta": 119044, + "æł¹æľ¬": 119045, + "åħ±åIJĮ": 119046, + "нений": 119047, + "بÙĬرة": 119048, + "çŃĭ": 119049, + "ïºĶ": 119050, + "âĢĮÙĩاÙĬ": 119051, + "Ġödeme": 119052, + "ĠØ¢ÙĨÚĨÙĩ": 119053, + "ĠзаÑıви": 119054, + "ĠÙĨÙĤØ´Ùĩ": 119055, + "Ġç³»": 119056, + "à¥ĭ।": 119057, + "Ġì§Ģìłķ": 119058, + "Ġinsp": 119059, + "ĠÑĤен": 119060, + "Ġتط": 119061, + "Ġquảng": 119062, + "åī£": 119063, + "ãģıãģ®": 119064, + "ĠÑĨим": 119065, + "kovi": 119066, + "iyah": 119067, + "ĠëIJľëĭ¤": 119068, + "صÙĩ": 119069, + "ĠÄiju": 119070, + "Ġsuá»ijt": 119071, + "ıma": 119072, + "ì§Ģê³ł": 119073, + "Ìĥ": 119074, + "à¸ļาย": 119075, + "ĠCertif": 119076, + "ĠÑĥÑģÑĸÑħ": 119077, + "à¸ķะว": 119078, + "είÏĦε": 119079, + "Ġč": 119080, + "ĠможливÑĸÑģÑĤÑĮ": 119081, + "Ġ-âĢIJ": 119082, + "Ġíĺ¹": 119083, + "ìĤ¬ì§Ħ": 119084, + "ĠданиÑħ": 119085, + "Ġzaháj": 119086, + "주ëĬĶ": 119087, + "Ġгид": 119088, + "niž": 119089, + "Ġ^{°}": 119090, + "Ġkro": 119091, + "Äįen": 119092, + "ÏĨι": 119093, + "ımızda": 119094, + "Ġæ¹ĸ": 119095, + "ĠповÑĢежд": 119096, + "Ġì¡´ìŀ¬": 119097, + "à¸Ļาà¸Ļ": 119098, + "μÎŃνοÏĤ": 119099, + "æ½ľ": 119100, + "ï¼Į使": 119101, + "Ġdosp": 119102, + "Ġliá»ģn": 119103, + "ัà¸ļà¸Ħวาม": 119104, + "ĠÑĢабоÑĤе": 119105, + "ĠмайбÑĥÑĤ": 119106, + "à¹Ģà¸ģษ": 119107, + "BaÅŁ": 119108, + "ĠæĿ±äº¬": 119109, + "наÑĩала": 119110, + "δει": 119111, + "à¥Īप": 119112, + "ÑĸмÑĸ": 119113, + "Ġfizik": 119114, + "วล": 119115, + "ä¼į": 119116, + "Ġà¸Ĭà¸Ļะ": 119117, + "'ÑıÑĤ": 119118, + "нил": 119119, + "инов": 119120, + "ĠÄijoán": 119121, + "รวà¸Ī": 119122, + "fet": 119123, + "à¹Įà¹Ĥ": 119124, + "ĠмаÑĤи": 119125, + "é¨İ": 119126, + "ÐļТ": 119127, + "à¹Ģสà¸Ļà¸Ń": 119128, + "Ġмав": 119129, + "lıģına": 119130, + "ĠпоÑĩина": 119131, + "ูà¸ķร": 119132, + "ÑĨеÑĢ": 119133, + "ujete": 119134, + "Ġtahmin": 119135, + "Ġвимог": 119136, + "à¸²à¸Ł": 119137, + "едж": 119138, + "ÏĦεÏį": 119139, + "adla": 119140, + "ĠÄijÆ°Æ¡ng": 119141, + "ĠداستاÙĨ": 119142, + "Ġbasın": 119143, + "ĠÑħв": 119144, + "Ġreak": 119145, + "ĠоÑĤмеÑĤ": 119146, + "æ³¥": 119147, + "Ġmáte": 119148, + "Ġzorun": 119149, + "ãģ¨æĢĿãģĨ": 119150, + "Ġدرجة": 119151, + "ĠвÑĸдÑģÑĥÑĤ": 119152, + "ĠعاÙħÙĦ": 119153, + "èĶµ": 119154, + "Ġsonraki": 119155, + "Ġmohli": 119156, + "иваеÑĤ": 119157, + "ĠпÑĸдÑģÑĤав": 119158, + "Ġostrov": 119159, + "ानव": 119160, + "âĢŀP": 119161, + "ĠвизнаÑĩа": 119162, + "ĠpravdÄĽpodob": 119163, + "Ġzaz": 119164, + "ìĿ´ë¥¼": 119165, + "ĠджеÑĢ": 119166, + "ĠÐłÐ°Ð´": 119167, + "ĠÑģеÑĢÑĮез": 119168, + "Ġдем": 119169, + "ÏĢή": 119170, + "ĠÐĦвÑĢоп": 119171, + "ĠÄįeské": 119172, + "ï¾ı": 119173, + "ĠØŃÙĬ": 119174, + "ì¼ĢìĿ´": 119175, + "ĠØ®ÙĪÙĨ": 119176, + "ÂłL": 119177, + "ãģĦãģ«": 119178, + "изнеÑģ": 119179, + "ĠÙħÙĤاÙħ": 119180, + "ĠاÙĦØŃÙĦ": 119181, + "ëĨį": 119182, + "ĠØ¢ÛĮا": 119183, + "翼": 119184, + "ï¼½": 119185, + "æ¸IJ": 119186, + "ливÑĸ": 119187, + "ãģĦãģ¦ãģĦãĤĭ": 119188, + "ĠÎijÎł": 119189, + "ĠиÑģполÑĮзÑĥеÑĤÑģÑı": 119190, + "Ġmát": 119191, + "Ġμεγά": 119192, + "ëħ¼": 119193, + "æµ·éģĵ": 119194, + "ĠÙħØ´Ú©ÙĦات": 119195, + "Ñĩна": 119196, + "';';": 119197, + "Ġμία": 119198, + "ÏģÏİν": 119199, + "Ġbyste": 119200, + "ĠÑįлекÑĤÑĢи": 119201, + "ĠYardım": 119202, + "Ġhát": 119203, + "ĠÐĶеÑĢжав": 119204, + ".С": 119205, + "Ġorada": 119206, + "Ġalanı": 119207, + "åľ°åŁŁ": 119208, + "ĠدÙĩÙĨد": 119209, + "менÑĪ": 119210, + "ĠоÑĢганов": 119211, + "Ġعص": 119212, + "ูà¸ĩส": 119213, + "Ġشعر": 119214, + "Ġìĸ»": 119215, + "Ġάλλ": 119216, + "Ġgói": 119217, + "ĠÙĨاØŃ": 119218, + "å¼ĺ": 119219, + "à¥įथल": 119220, + "ilim": 119221, + "ëIJĺì§Ģ": 119222, + "ĠконÑĨе": 119223, + "ĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂł": 119224, + "Ġì¤Ģë¹Ħ": 119225, + "ĠostatnÃŃ": 119226, + "Ġvlády": 119227, + "ĠÑģобиÑĢа": 119228, + "ĠìĹŃìĤ¬": 119229, + "à¹ģà¸ģรม": 119230, + ".ï¼ı": 119231, + "ÙıÙĪÙĨ": 119232, + "پس": 119233, + "ĠWikip": 119234, + "Ġæ¾": 119235, + "ĠжаÑĢ": 119236, + "容æĺĵ": 119237, + "ĠprostÅĻednictvÃŃm": 119238, + "Ġženy": 119239, + "Ġèı²å¾ĭ宾çĶ³åįļ": 119240, + "аÑİÑĤÑģÑı": 119241, + "Ġmiêu": 119242, + "ĠpenÃŃze": 119243, + "διά": 119244, + "oldur": 119245, + "ĠпÑĢимеÑĢно": 119246, + "ĠìŀĪê³ł": 119247, + "à¸ĩà¸Ńย": 119248, + "ковий": 119249, + ".ÎŁ": 119250, + "à¹ĥà¸Ħร": 119251, + "çĭł": 119252, + "ĠÐŁÑĸв": 119253, + "æĶ¹éĿ©": 119254, + "ĠÐĿаÑģеление": 119255, + "Å¡etÅĻ": 119256, + "ÙĴب": 119257, + "ĠâĶĢ": 119258, + "غÙĬÙĦ": 119259, + "ĠдÑĸÑıлÑĮнÑĸÑģÑĤÑĮ": 119260, + "ĠÙĦÙĬس": 119261, + "Ġìĭľìŀ¥": 119262, + "ãĥŁãĥ¥": 119263, + "ĠÚ©ÙĪت": 119264, + "ĠÎĵι": 119265, + "ิà¹Ģว": 119266, + "ektor": 119267, + "ĠбÑĥдÑĥ": 119268, + "новаж": 119269, + "ÑīаеÑĤÑģÑı": 119270, + "Ġngôn": 119271, + "ĠvÄĽc": 119272, + "å¾IJ": 119273, + "à¸Ńà¹Ģมร": 119274, + "ัà¸įà¸Ĭ": 119275, + "ĠиÑģполÑĮзÑĥÑİÑĤ": 119276, + "rubu": 119277, + "Ġnhá»±a": 119278, + "ãģĮãģĬ": 119279, + "ĠÐĵаÑĢ": 119280, + "оÑĢе": 119281, + "ĠзолоÑĤ": 119282, + "æŁ³": 119283, + "ĠÙĬØ´": 119284, + "ĠповиннÑĸ": 119285, + "اÙĤتص": 119286, + "ÙĦØŃ": 119287, + "ĠокÑĤÑıбÑĢÑı": 119288, + "ĠnÄĽkdy": 119289, + "ĠобÑĢа": 119290, + "ستگÛĮ": 119291, + "符åIJĪ": 119292, + "Ġthiá»ĥu": 119293, + "æĺ¯ä»Ģä¹Ī": 119294, + "Ġrozs": 119295, + "ì½ľê±¸": 119296, + "ĠкаÑĦ": 119297, + "åIJĮæŃ¥": 119298, + "ì¼ĵ": 119299, + "ÏĢÏĦÏħ": 119300, + "à¸łà¸²à¸¢à¹ĥà¸Ļ": 119301, + "ιÏĥÏĦή": 119302, + "ĠدÙĪÙĦار": 119303, + "ĠÙħاÙĬÙĪ": 119304, + "ĠpeÄį": 119305, + "ัà¸ļม": 119306, + "ÎĻÎĶ": 119307, + "ıydı": 119308, + "ัà¸ģà¸Ĺ": 119309, + "à¸Ľà¸£à¸°à¸ĸม": 119310, + "και": 119311, + "Ġprodej": 119312, + "ĠиÑİлÑı": 119313, + "ĠvÅ©": 119314, + "驱": 119315, + "ĠhvÄĽ": 119316, + "æĥ³è¦ģ": 119317, + "ç¯Ħ": 119318, + "çak": 119319, + "ĠмÑıг": 119320, + "ımın": 119321, + "Ġdispozici": 119322, + "Ġukaz": 119323, + "racak": 119324, + "Ġболезни": 119325, + "วà¹Ĥม": 119326, + "Ġзел": 119327, + "ĠÐĴики": 119328, + "ĠÐłÐ¾Ð´": 119329, + "ูà¸ģà¸Ħ": 119330, + "íij¸": 119331, + "Ġthải": 119332, + "Ġbaģımsız": 119333, + "ĠÑĢоÑģÑģий": 119334, + "ĠÐļам": 119335, + "ĠиÑģполÑĮзованиÑı": 119336, + "ĠØŃØ°": 119337, + "³³³³³³³³³": 119338, + "ĠاÙĨتÙĤاÙĦ": 119339, + "ĠабÑģолÑİÑĤ": 119340, + "ĠÄ±ÅŁÄ±k": 119341, + "ÏĦογÏģαÏĨ": 119342, + "ĠболÑĮÑĪой": 119343, + "Ġعبارت": 119344, + "ÃŃž": 119345, + "Ġدرست": 119346, + "ĠÑģлово": 119347, + "à¥ĪĊ": 119348, + "بÙĪب": 119349, + "ĠÐĴоÑĤ": 119350, + "วà¹Ħà¸Ľ": 119351, + "Ġbilinen": 119352, + "ĠÙĤÙĬ": 119353, + "Ġbunların": 119354, + "Ùijت": 119355, + "Ġbasit": 119356, + "릿": 119357, + "ائرة": 119358, + "Ġpů": 119359, + "ĠedilmiÅŁ": 119360, + "Ġä½IJ": 119361, + "ĠYönetim": 119362, + "ÙħÛĮر": 119363, + "Ġspou": 119364, + "æ·±åľ³": 119365, + "ĠвзаÑĶм": 119366, + "ÎĻÎĽ": 119367, + "Ðĥ": 119368, + "ĠдеÑĢжавноÑĹ": 119369, + "Ġmrt": 119370, + "ĠDemir": 119371, + "é»İ": 119372, + "ĠÑĢегÑĥлÑıÑĢ": 119373, + "Ġникогда": 119374, + "å¼¾": 119375, + "à¥īड": 119376, + "Ġглаз": 119377, + "ĠÙħÛĮÚ©ÙĨ": 119378, + "éĻIJå®ļ": 119379, + "Ġнавк": 119380, + "ĠподÑĤ": 119381, + "ĠتصÙĪÛĮر": 119382, + "ĠاÙĦØŃدÙĬØ«": 119383, + "ĠdoÅ¡lo": 119384, + "нÑİÑİ": 119385, + "ĠÑģÑħод": 119386, + "Ø·ÙĤØ©": 119387, + "ĠÑģенÑĤÑıбÑĢÑı": 119388, + "çī¹æ®Ĭ": 119389, + "à¸ģารà¹ģà¸Ĥ": 119390, + "ázd": 119391, + "ÑĶÑĤе": 119392, + "ĠΣε": 119393, + "ĠÙĦÙĥÙĦ": 119394, + "åIJįåŃĹ": 119395, + "اÙĨÛĮا": 119396, + "Ġcins": 119397, + "기ìĹħ": 119398, + "ĠéŁ³": 119399, + "éłĥ": 119400, + "ยาย": 119401, + "ìļķ": 119402, + "ĠvÃŃtÄĽz": 119403, + "à¥įरब": 119404, + "ĠشرÙĤÛĮ": 119405, + "ĠbezpeÄįnost": 119406, + "Ġçerçev": 119407, + "Ġ맼": 119408, + "cky": 119409, + "ĵ¨": 119410, + "ĠÑĥмоваÑħ": 119411, + "лиÑħ": 119412, + "meniz": 119413, + "ĠبگÛĮر": 119414, + "ÙĨÙī": 119415, + "Ġà¸ģารà¹ģà¸Ĥ": 119416, + "ιÏĥε": 119417, + "âĢ³E": 119418, + "Ġdöneminde": 119419, + "리카": 119420, + "ĠåĪ°": 119421, + "Ġhukuk": 119422, + "аÑĤоÑĢа": 119423, + "ĠاÙĦعÙĨ": 119424, + "ïºĺ": 119425, + "ünüz": 119426, + "ÑģоÑĤ": 119427, + "ุษ": 119428, + "ĠdÆ°Æ¡ng": 119429, + "ovny": 119430, + "ĠÑĦоÑĢма": 119431, + "ãģĹãģ®": 119432, + "زÙĬز": 119433, + "ĠاÙĦÙĨاس": 119434, + "ĠÑĩим": 119435, + "大人": 119436, + "Ú¯ÙĬ": 119437, + "ĠÐĵоÑģп": 119438, + "é¢Ĩ导": 119439, + "Ġninh": 119440, + "Ġราà¸Ħา": 119441, + "ÙĤاء": 119442, + "ìī¬": 119443, + "ĠìĿ´ìłĦ": 119444, + "ĠÃ¶ÄŁretmen": 119445, + "ĠÑĨвеÑĤа": 119446, + "енноÑģÑĤÑĮ": 119447, + "大ãģį": 119448, + "ĠмиÑģÑĤеÑĨÑĤ": 119449, + "رÙĪت": 119450, + "poÅĪ": 119451, + "ĠÅŀirket": 119452, + "ĠкÑĢаÑģив": 119453, + "ĠÑĢеÑģÑĥÑĢÑģ": 119454, + "ä¹¾": 119455, + "ĠÙģÙĩ": 119456, + "ĠYÃĸ": 119457, + "èĬ³": 119458, + "μÏīÏĤ": 119459, + "ÄĽji": 119460, + "Ġвлаж": 119461, + "ĠÑĥвели": 119462, + "اذا": 119463, + "ãĢĤå¦Ĥæŀľ": 119464, + "ĠпÑĢиÑģÑĥÑĤÑģÑĤв": 119465, + "ĠẤn": 119466, + "æĢĸ": 119467, + "ĠÐľÐµÑĤ": 119468, + "Ġjedna": 119469, + "Ġcục": 119470, + "ĠاÙĨتشار": 119471, + "ĠзокÑĢема": 119472, + "иÑĩеÑģки": 119473, + "ĠкÑĢаÑĹни": 119474, + "иÑĢÑĥ": 119475, + "ĠÑĸнÑĤеÑĢ": 119476, + "Ġаналог": 119477, + "ÑĽ": 119478, + "ีà¸ĭ": 119479, + "нÑĥли": 119480, + "ĠNinh": 119481, + "еÑĢаÑĤоÑĢ": 119482, + "Ġruce": 119483, + "ĠÑĪкÑĸ": 119484, + "ترÙĨت": 119485, + "Ġsonrası": 119486, + "Ġæį": 119487, + "ÑĨенÑĤÑĢа": 119488, + "Ġà¸Ńำà¹Ģà¸ł": 119489, + "Ø·ÙĬ": 119490, + "ï¼Įå½ĵ": 119491, + "ĠÑĤÑĢеÑħ": 119492, + "ÂłH": 119493, + "æ´ª": 119494, + "ãĥ³ãĥĦ": 119495, + "ĠвÑĸдповÑĸдалÑĮ": 119496, + "âĢĻdaki": 119497, + "áÅĻi": 119498, + "ĠpÅĻem": 119499, + "tuk": 119500, + "ĠÙģرÙħÙĪد": 119501, + "ĠìĿ¸ì¦Ŀ": 119502, + "สำà¸Ļ": 119503, + "ìĥģìĿĺ": 119504, + "ÅĻÃŃm": 119505, + "澤": 119506, + "ĠÑĢей": 119507, + "ĠлÑİбой": 119508, + "ujte": 119509, + "ë³µì§Ģ": 119510, + "Ġدرس": 119511, + "ĠÐĴлади": 119512, + "ĠÑģвоим": 119513, + "ĠìĿ¸íĦ°ëĦ·": 119514, + "è±Ĭ": 119515, + "Ġналог": 119516, + "ãĤĪãģ³": 119517, + "Ġخاطر": 119518, + "ĠìŀħëĭĪëĭ¤": 119519, + "ãĢĤãģĹãģĭãģĹ": 119520, + "лаг": 119521, + "å°ĸ": 119522, + "ëĭ¥": 119523, + "ìĬ¤ëĬĶ": 119524, + "ìĭłì²Ń": 119525, + "ãĥĩãĥ¼ãĤ¿": 119526, + "ĠÑĥÑĢовнÑı": 119527, + "Ġ무ìĬ¨": 119528, + "ĠاÙĦأرض": 119529, + "à¹īà¸ķ": 119530, + "Ỽt": 119531, + "ĠÙĨÛĮرÙĪ": 119532, + "墨": 119533, + "ãĤ¶ãĥ¼": 119534, + "ruba": 119535, + "ĠÙĨشدÙĩ": 119536, + "илÑı": 119537, + "acÃŃm": 119538, + "ãĥ©ãĤ¯": 119539, + "XH": 119540, + "Ġسرد": 119541, + "Ġदस": 119542, + "tember": 119543, + "ĠDoÄŁum": 119544, + "ĠпÑĢоÑĢ": 119545, + "θοÏĤ": 119546, + "ĠiÅŁe": 119547, + "à¸Ńà¸Ł": 119548, + "лаÑĪ": 119549, + "اصÙĦÙĩ": 119550, + "livÄĽ": 119551, + "ë¶Ģë¶Ħ": 119552, + "нак": 119553, + "åįģä¸ī": 119554, + "สาห": 119555, + "à¸Ľà¸£à¸°à¹Ģà¸Ĺศà¹Ħà¸Ĺย": 119556, + "ãĤŃãĥ³ãĤ°": 119557, + "ĠмеÑĤоÑİ": 119558, + "Ġkullanarak": 119559, + "âij¡": 119560, + "ÛĮزات": 119561, + "ĠÙħÙĪباÛĮÙĦ": 119562, + "ĠзнаÑĩиÑĤ": 119563, + "Ġorganizace": 119564, + "ÑĢии": 119565, + "ovna": 119566, + "Ġê²½ìłľ": 119567, + "ãĢģå½¼": 119568, + "Ġमस": 119569, + "Ġà¹Ĥà¸Ľà¸£": 119570, + "LARI": 119571, + "æĩĤ": 119572, + "Ġва": 119573, + "ĠÙĥÙĨت": 119574, + "ĠÑĢабоÑĤа": 119575, + "ÂłĠÂłĠÂł": 119576, + "好äºĨ": 119577, + "ĠzamÄĽstn": 119578, + "женÑĮ": 119579, + "Ġukon": 119580, + "nÄĽné": 119581, + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 119582, + "ĠاÙĦخاصة": 119583, + "ĠÄįasu": 119584, + "å°ı说": 119585, + "ĠØŃرکت": 119586, + "æijĦ": 119587, + "ÏĩÏī": 119588, + "ĠÑģвеж": 119589, + "æĸ°éĹ»": 119590, + "Ġìĭ±": 119591, + "ĠeÄŁer": 119592, + "Ġsituace": 119593, + "Ġç·¨": 119594, + "fik": 119595, + "ë§Īëĭ¤": 119596, + "ÎķÎļ": 119597, + "Ġê°ľìµľ": 119598, + "ĠcÃł": 119599, + "ادث": 119600, + "Ġsayıda": 119601, + "ĠØ£ÙģضÙĦ": 119602, + "æ³ķéĻ¢": 119603, + "Ġ.,": 119604, + "ĠThÆ°Æ¡ng": 119605, + "ÏģÏĮÏĤ": 119606, + "ãģĹãĤĪãģĨ": 119607, + "Çİ": 119608, + "æij¸": 119609, + "ĠéĻ³": 119610, + "¥IJ": 119611, + "ฤà¸Ķ": 119612, + "Ġgiảng": 119613, + "ĠлÑİбов": 119614, + "Ġekran": 119615, + "опиÑģ": 119616, + "еждÑĥ": 119617, + "Ġназва": 119618, + "æĭĵ": 119619, + "ıf": 119620, + "à¹Īà¸ģ": 119621, + "иÑĩнÑĸ": 119622, + "Ġê³Ħíļį": 119623, + "à¸łà¸²à¸Ħม": 119624, + "Ġاپ": 119625, + "리ìĿĺ": 119626, + "ãģ§ãģĻãģĮ": 119627, + "Ġkonci": 119628, + "ĠکارخاÙĨÙĩ": 119629, + "Ġä½ķ": 119630, + "ĠÑĤва": 119631, + "ĠÐŁÐ¾ÑģÑĤ": 119632, + "ĠапÑĢелÑı": 119633, + "ĠاÙĦعراÙĤ": 119634, + "ä¸Ńåįİ": 119635, + "à¹ĩà¸Ńà¸ģ": 119636, + "à¥įतà¤ķ": 119637, + "Ġzájem": 119638, + "ĠدرجÙĩ": 119639, + "Ġà¤¬à¥ľ": 119640, + "ĠÑģÑĤÑĢан": 119641, + "èŃ¦å¯Ł": 119642, + "ĠyerleÅŁtir": 119643, + "ĠVÅ©": 119644, + "ç¾İåħĥ": 119645, + "Ġì¡°ê¸Ī": 119646, + "Ġรà¸Ńà¸ĩ": 119647, + "Ġakadem": 119648, + "à¸Ħà¸ĵะ": 119649, + "Ġpozit": 119650, + "ĠkoneÄį": 119651, + "è°ĥæŁ¥": 119652, + "Ġãģĭ": 119653, + "ĠÄįervence": 119654, + "ĠOdkazy": 119655, + "ĠëıĦìĭľ": 119656, + "ัสà¸Ķ": 119657, + "Ġgái": 119658, + "ĠÐłÐ¾Ð±": 119659, + "ĠбоÑı": 119660, + "æī©": 119661, + "å¼Ģå±ķ": 119662, + "anik": 119663, + "Ġvyž": 119664, + "ĠbaÅŁlay": 119665, + "ĠbakÄ±ÅŁ": 119666, + "ekce": 119667, + "ÑģÑĤика": 119668, + "еÑĢаÑĤÑĥÑĢа": 119669, + "Ġë¶Ħë¥ĺ": 119670, + "ĠPoÄįet": 119671, + "odáÅĻ": 119672, + "ëĭĺìĿĺ": 119673, + "Ġklid": 119674, + "Û²Û¹": 119675, + "ĠÚĨÛĮز": 119676, + "mür": 119677, + "Ġsứ": 119678, + "ÙĬاÙĨØ©": 119679, + "åĬ±": 119680, + "Ġoku": 119681, + "Ġводи": 119682, + "ĠزÛĮرا": 119683, + "大åĪ©": 119684, + "ĠÙĦÛĮÙĨÚ©": 119685, + "ĠÙĬجب": 119686, + "ÙħÛĮÙĦ": 119687, + "ĠÏĥÏĦÏģα": 119688, + "æĻĵ": 119689, + "ิสà¸ķ": 119690, + "ĠÅŁiddet": 119691, + "ĠÑĢекоменда": 119692, + "Ġpožadav": 119693, + "ĠпÑĸÑģ": 119694, + "åħ¬å¼ı": 119695, + "ĠÚ¯ÛĮرÛĮ": 119696, + "кÑĤа": 119697, + "ĠÙħÙĨاطÙĤ": 119698, + "Ġfirmy": 119699, + "Ġà¹Ħà¸Ľ": 119700, + "ĠÎŃÏģγ": 119701, + "å¿«éĢŁ": 119702, + "ãģĮãģªãģĦ": 119703, + "неÑģÑĤи": 119704, + "Ġç²¾": 119705, + "ÑĢади": 119706, + "ãĤĴãģĭ": 119707, + "ﺪ": 119708, + "kynÄĽ": 119709, + "Ġहत": 119710, + "tak": 119711, + "ĠÙĬÙĪÙĨÙĬÙĪ": 119712, + "Ã¶ÄŁ": 119713, + "ĠÑĢÑĥк": 119714, + "åľĭéļĽ": 119715, + "ÑİÑģÑĮ": 119716, + "Ġдавно": 119717, + "Ġpopis": 119718, + "ĠBÄ°L": 119719, + "ĠÙĨÙĤد": 119720, + "ĠÑģпож": 119721, + "ÑĨионнÑĭÑħ": 119722, + "ĠÑĪп": 119723, + "ÑĥÑİÑīиÑħ": 119724, + "ĠвоздÑĥÑħ": 119725, + "ÑĤие": 119726, + "ĠUž": 119727, + "ÏĮδ": 119728, + "à¸ģราà¸Ħม": 119729, + "Ġalanında": 119730, + "Ġsắt": 119731, + "ãĥIJãĤ¤": 119732, + "NgÃły": 119733, + "Ġë¹Į": 119734, + "ï¼īãģ¯": 119735, + "Ġä¿¡": 119736, + "ÐķС": 119737, + "ĠTato": 119738, + "Ġúnora": 119739, + "erap": 119740, + "Äł": 119741, + "ĠTáºŃp": 119742, + "Ġкомпании": 119743, + "ãĥ©ãĤ¤ãĥĪ": 119744, + "éľĢæ±Ĥ": 119745, + "ĠتÙĪÙĤ": 119746, + "âĢĻâĢĻ": 119747, + "ëŀįëĭĪëĭ¤": 119748, + "ĠквÑĸÑĤнÑı": 119749, + "Ġoyuncu": 119750, + "ÂĢÂĢÂĢÂĢÂĢÂĢÂĢÂĢ": 119751, + "åĨĬ": 119752, + "ĠyapmÄ±ÅŁ": 119753, + "ัà¸ĩà¹Ħม": 119754, + "ĠзапаÑħ": 119755, + "ála": 119756, + "ĠÑĤеÑħниÑĩеÑģ": 119757, + "ĠØŃص": 119758, + "รà¸Ķ": 119759, + "å¼Ħ": 119760, + "ĠÚ¯ÛĮاÙĩ": 119761, + "اÙĩرة": 119762, + "Ġà¤ıड": 119763, + "нимаеÑĤ": 119764, + "ادÙĨ": 119765, + "ÎľÎij": 119766, + "Ġ社": 119767, + "аÑĢÑĩ": 119768, + "تز": 119769, + "润": 119770, + "inizin": 119771, + "Ġbeyaz": 119772, + "ĠبÙĪÙĦ": 119773, + "åĿ¡": 119774, + "ãģ®ãĤĪãģĨãģ«": 119775, + "Ġyaptıģ": 119776, + "Ġdaģı": 119777, + "ĠbaÅŁarı": 119778, + "ĠÏĢά": 119779, + "ĠпÑĢодаж": 119780, + "Bá»Ļ": 119781, + "Ġतत": 119782, + "Ġpodstat": 119783, + "Ġæµģ": 119784, + "ĠzdravÃŃ": 119785, + "Ġç¡": 119786, + "Ġopak": 119787, + "Ġhá»įa": 119788, + "æĭĶ": 119789, + "Ñĥжд": 119790, + "Ġtrứng": 119791, + "ÙĪرÙĬØ©": 119792, + "Ñĭл": 119793, + "umsuz": 119794, + "Ġسبب": 119795, + "许å¤ļ": 119796, + "å®ŀéªĮ": 119797, + "Ġболи": 119798, + "Ġduyá»ĩt": 119799, + "áºŃc": 119800, + "ĠÐijез": 119801, + "ĠبÙĦÙĨد": 119802, + "мм": 119803, + "ÑĢел": 119804, + "NÄ°": 119805, + "Ġãĥ¯": 119806, + "éĭ¼": 119807, + "ĠÑģвÑı": 119808, + "ĠåIJİ": 119809, + "Ġmuht": 119810, + "ĠпÑĢоблеми": 119811, + "ĠÑĤÑıжел": 119812, + "ĠСем": 119813, + "à¸¤à¸©à¸łà¸²à¸Ħม": 119814, + "à¹Īาà¸ķ": 119815, + "örü": 119816, + "üyorum": 119817, + "ĠاÙĦØ£ØŃ": 119818, + "ĠÑģÑĤÑĢаÑĪ": 119819, + "hoo": 119820, + "धर": 119821, + "Ġtlak": 119822, + "Ġsrpna": 119823, + "ifikace": 119824, + "Ġreh": 119825, + "ĠминÑĥ": 119826, + "ãĢĢj": 119827, + "ĠгÑĢÑĥпи": 119828, + "Ġάλ": 119829, + "Ġolursa": 119830, + "λογία": 119831, + "ĠÐĴик": 119832, + "Ġmücadel": 119833, + "ĠzávÄĽ": 119834, + "ĠÑĦевÑĢа": 119835, + "Äįná": 119836, + "à¹Įà¹Ģà¸ĭ": 119837, + "ĠÙĦÙĦØŃ": 119838, + "ÑĢип": 119839, + "ĠбÑĥк": 119840, + "ãģĪãģªãģĦ": 119841, + "Ġporad": 119842, + "Ġsamostat": 119843, + "Ġtesis": 119844, + "ابÙĤÙĩ": 119845, + "ĠجدÙĬدة": 119846, + "éĢĴ": 119847, + "âĶģâĶ": 119848, + "سÛĮÙĨ": 119849, + "ĠgerektiÄŁini": 119850, + "ียà¸Ļà¸ļ": 119851, + "è¨Ģãģ£ãģ¦": 119852, + "ĠÑĸнÑĤеÑĢеÑģ": 119853, + "ĠÑıким": 119854, + "ĠæĢ»": 119855, + "kovou": 119856, + "Ġdemek": 119857, + "اÙĨÙĬا": 119858, + "Ġdomů": 119859, + "Å¡nÃŃ": 119860, + "ateÅĻ": 119861, + "åĢ«": 119862, + "δοÏĥη": 119863, + "Ġ기ìĹħ": 119864, + "åĶĩ": 119865, + "ì¹ł": 119866, + "ÑĸдÑĥ": 119867, + "린ìĿ´": 119868, + "æľĢåĪĿ": 119869, + "è¸ı": 119870, + "æĥ³åĪ°": 119871, + "à¥įबर": 119872, + "ĠìŀĶ": 119873, + "ĠÑĢазнÑĭÑħ": 119874, + "krom": 119875, + "ιαν": 119876, + "ĠдÑĢÑĥз": 119877, + "仿": 119878, + "Ġê·¸ëłĩ": 119879, + "ĠдалÑĸ": 119880, + "æķĪæŀľ": 119881, + "Ġहव": 119882, + "è¼Ŀ": 119883, + "Ġì°¸ê³ł": 119884, + "ĠìĨĶ": 119885, + "Ġznal": 119886, + "ĠпеÑĢÑģ": 119887, + "ÙIJÙij": 119888, + "ĠÑĤеж": 119889, + "åĭŁ": 119890, + "ιθ": 119891, + "Äįů": 119892, + "Ġekip": 119893, + "Ġkhung": 119894, + "éĹĺ": 119895, + "ĠتصÙħÛĮÙħ": 119896, + "оиÑĤ": 119897, + "ĠÑħол": 119898, + "æĬŀ": 119899, + "amam": 119900, + "Ġâĸ³": 119901, + "ãģĩ": 119902, + "ĠعÙĨÙĩ": 119903, + "Ġì°¸ê°Ģ": 119904, + "ĠÎļÏĮ": 119905, + "åı¤å±ĭ": 119906, + "ковоÑĹ": 119907, + "ศà¸Ī": 119908, + "ологиÑı": 119909, + "ĠÙħثبت": 119910, + "ĠÐļÑĢаÑĹна": 119911, + "ĠмеÑģÑıÑĨев": 119912, + "Ġalınan": 119913, + "ĠÏĢÏģαγμα": 119914, + "Ġìŀ¡ëĭ´": 119915, + "Ġплод": 119916, + "ĠÑĤкани": 119917, + "ÑģÑĭлки": 119918, + "سطس": 119919, + "ranÄĽ": 119920, + "каж": 119921, + "емаÑĤи": 119922, + "ĠزÛĮست": 119923, + "æ¿Ł": 119924, + "Ġpoplat": 119925, + "γÎŃν": 119926, + "íĨłíĨł": 119927, + "Ġtây": 119928, + "Ġìµľê·¼": 119929, + "ãĥ©ãĥ³ãĤ¹": 119930, + "ĠgüneÅŁ": 119931, + "ĠÙģÙĤ": 119932, + "ĠsaÄŁlayan": 119933, + "ĠØŃزب": 119934, + "à¥ģलन": 119935, + "ĠBilim": 119936, + "ĠBatı": 119937, + "æł·çļĦ": 119938, + "δικ": 119939, + "αÏģίοÏħ": 119940, + "ĠìĽĢ": 119941, + "Ġlá»Ńa": 119942, + "ÙĨÙĪع": 119943, + "çݲ": 119944, + "аном": 119945, + "ĠstátnÃŃ": 119946, + "Ġäºİ": 119947, + "Ġmùi": 119948, + "ĠÄijá»Ļt": 119949, + "æ²ĥ": 119950, + "åħ¬åľĴ": 119951, + "ĠÑģÑĮогоднÑĸ": 119952, + "ноÑģи": 119953, + "Za": 119954, + "Ġдли": 119955, + "ĠÏĥÏħνÎŃ": 119956, + "ĠVá»ĭ": 119957, + "mav": 119958, + "ĠMüslüman": 119959, + "/ï¼ı": 119960, + "ĠзаÑīиÑĤ": 119961, + "éĸī": 119962, + "Ġçģ«": 119963, + "Ġå·Ŀ": 119964, + "Ġаж": 119965, + "è¿ĩæĿ¥": 119966, + "à¸Ĺาà¸Ļ": 119967, + "ĠAraÅŁtır": 119968, + "Õ¡Õ": 119969, + "ĠpomÄĽr": 119970, + "Ġdům": 119971, + "妮": 119972, + "ĠhlavnÄĽ": 119973, + "Ġfinans": 119974, + "ĠγνÏī": 119975, + "ÏĥÏĦημα": 119976, + "ï¼ĮçĶ¨": 119977, + "ìĭŃìĭľìĺ¤": 119978, + "ĠÙħثاÙĦ": 119979, + "-Ðij": 119980, + "ÑĨÑĸйнÑĸ": 119981, + "ĠدستÙĩ": 119982, + "à¥īस": 119983, + "ÑĢÑĸп": 119984, + "ĠpÅĻipom": 119985, + "ĠÙĪÙĦÙĬ": 119986, + "ĠÙĪزÙĨ": 119987, + "Ġelektrik": 119988, + "ĠQuân": 119989, + "ivé": 119990, + "Ġlẽ": 119991, + "ç®Ģåįķ": 119992, + "Ġonlara": 119993, + "оÑģлав": 119994, + "ìĭľíĤ¤": 119995, + "몬": 119996, + "ĠÙħÙĤدار": 119997, + "ĠOrta": 119998, + "ĠSeç": 119999, + "ĠÙĨÙĪÙģÙħبر": 120000, + "ุà¸Ļายà¸Ļ": 120001, + "ĠÑĥмови": 120002, + "Ġपरम": 120003, + "Ġstrom": 120004, + "ĠкÑĢаÑīе": 120005, + "秦": 120006, + "缸æīĭ": 120007, + "鼻è¦ĸ": 120008, + "Ġuygulama": 120009, + "ĠÑĢиз": 120010, + "æĪ²": 120011, + "यर": 120012, + "ĠHlav": 120013, + "Ġìĭ¸": 120014, + "ĠлипнÑı": 120015, + "ÅĪujÃŃ": 120016, + "ÑĢиз": 120017, + "é«ĺéĢŁ": 120018, + "缸å½ĵ": 120019, + "kenin": 120020, + "ĠоÑģÑĤанов": 120021, + "Ġbitk": 120022, + "ovaného": 120023, + "ĠÐľÐ°ÑĢи": 120024, + "赶": 120025, + "콩": 120026, + "Ġölçü": 120027, + "ĠСеÑĢед": 120028, + "ĠThá»Ŀi": 120029, + "Ïīνα": 120030, + "ÙĪبة": 120031, + "Ġchụp": 120032, + "âĢĮد": 120033, + "Ġcháy": 120034, + "ĠÐĴели": 120035, + "ĠобÑģÑĤ": 120036, + "Ġìĭľì¦Į": 120037, + "دÙħØ©": 120038, + "под": 120039, + "lue": 120040, + "ĠдÑĸлÑıн": 120041, + "ĠÙ¾ÙĪست": 120042, + "ĠاÙĦÙĨس": 120043, + "èĤĮ": 120044, + "ìĪĺ를": 120045, + "Ġúrov": 120046, + "ĠÙħØ´Ú©ÙĦ": 120047, + "éĩįè¤ĩéĩįè¤ĩ": 120048, + "нез": 120049, + "ĠdoporuÄį": 120050, + "Ġtasarım": 120051, + "íģ¬ê¸°": 120052, + "ìĿ´ìħĺ": 120053, + "Ġdeset": 120054, + "ĠÙħرتبط": 120055, + "ัà¸Ĵà¸Ļา": 120056, + "'ı": 120057, + "Ñĩки": 120058, + "ĠìŀĪëįĺ": 120059, + "ÑĪка": 120060, + "nám": 120061, + "ÑģÑĤÑĢов": 120062, + "à¥įसर": 120063, + "нÑĥлаÑģÑĮ": 120064, + "ãģ¡ãĤĩãģ£ãģ¨": 120065, + "Ġå¦": 120066, + "γÏĮ": 120067, + "Ġé»ij": 120068, + "Xem": 120069, + "Ġtá»ĩ": 120070, + "ĠëĮĢíĨµëł¹": 120071, + "기ê´Ģ": 120072, + "æīįèĥ½": 120073, + "è¯Ńè¨Ģ": 120074, + "edeyse": 120075, + "ĠТÑĭ": 120076, + "ĠÑģоедин": 120077, + "ĠìĹĨìĬµëĭĪëĭ¤": 120078, + "ÑıÑİÑĤ": 120079, + "à¹ģหล": 120080, + "Ġì§Ģë°©": 120081, + "ĠosobnÃŃ": 120082, + "ÛĮÙĦÛĮ": 120083, + "ĠавгÑĥÑģÑĤа": 120084, + "Ñīик": 120085, + "Ġvýše": 120086, + "gth": 120087, + "ĠÏĢαν": 120088, + "جار": 120089, + "Ġвидов": 120090, + "ìĿ´ìĬĪ": 120091, + "ĠÐijаÑĢ": 120092, + "ĠÏĮÏĢοÏħ": 120093, + "æ¤ħ": 120094, + "ĠعاÙĦÛĮ": 120095, + "ĠQuyết": 120096, + "ÃľM": 120097, + "ãĥĿãĤ¤ãĥ³ãĥĪ": 120098, + "Ġê¹Į": 120099, + "Ġканди": 120100, + "kového": 120101, + "ĠMerkez": 120102, + "Ġyiy": 120103, + "ĠpÅĻÃŃspÄĽ": 120104, + "ĠÑĤемпеÑĢаÑĤÑĥÑĢÑĭ": 120105, + "ĠÙ¾ÙĬ": 120106, + "ฤศà¸Ī": 120107, + "è°ĥçĶ¨": 120108, + "ĠÑģÑĤоÑĢонÑĥ": 120109, + "à¹īà¸Ĭ": 120110, + "好ãģį": 120111, + ".Åŀ": 120112, + "ĠпÑĢоз": 120113, + "ÙĨتاج": 120114, + "鼻åŃIJ": 120115, + ".:.:.": 120116, + "è¨ĵ": 120117, + "иÑĩеÑģкое": 120118, + "Ġноги": 120119, + "ĠλÎŃ": 120120, + "Ġsıkıntı": 120121, + "Ġê°Ģ족": 120122, + "ĠتÙĨظÙĬÙģ": 120123, + "Ġödül": 120124, + "ĠaÅŁaģıdaki": 120125, + "Ġželez": 120126, + "ĠاÙĦعدÙĬد": 120127, + "غÙĨ": 120128, + "ĠоконÑĩ": 120129, + "ÑĢемÑı": 120130, + "LÄ°": 120131, + "Ġnejd": 120132, + "ĠÏĢλα": 120133, + "Ñģко": 120134, + "ĠìĪĻ": 120135, + "ĠÙ¾ÙĪÙĦ": 120136, + "θενήÏĤ": 120137, + "Ġ주ìļĶ": 120138, + "ĠæĬ¥": 120139, + "ĠÙħÙħا": 120140, + "ÐłÐ¡Ðł": 120141, + "ĠÑĢадÑĸ": 120142, + "ä¸Ģç§į": 120143, + "é¾Ħ": 120144, + "Ġsöyl": 120145, + "Ïģκεια": 120146, + "ĠземлÑĸ": 120147, + "ĠveÄįer": 120148, + "geç": 120149, + "ستÙħ": 120150, + "Ġsefer": 120151, + "ĠÑģвÑĸд": 120152, + "ï»Łï»": 120153, + "алов": 120154, + "ìĬ¤ë¥¼": 120155, + "âī¥": 120156, + "ĠتÙĦÙģÙĨ": 120157, + "åİ»äºĨ": 120158, + "़à¥ĭà¤Ĥ": 120159, + "ĠÑĦоÑĢме": 120160, + "düm": 120161, + "åħģ": 120162, + "ÑĢап": 120163, + "ĠVÆ°Æ¡ng": 120164, + "à¸Ńะà¹Ħร": 120165, + "ัà¸ģษà¸ĵ": 120166, + "Ġåį³": 120167, + "ĠاÙĦرÙħ": 120168, + "ĠзаÑħиÑģÑĤÑĥ": 120169, + "°E": 120170, + "odÃŃ": 120171, + "Ġवन": 120172, + "ĠÄijèn": 120173, + "ĠåıĹ": 120174, + "èIJ½ãģ¡": 120175, + "Ġzim": 120176, + "리ì¦Ī": 120177, + "èĪĴ": 120178, + "ĠзбÑĸÑĢ": 120179, + "Ġä»·æł¼": 120180, + "ĠлÑİдина": 120181, + "ĠÐŁÐ¾ÑģиланнÑı": 120182, + "иÑī": 120183, + "ĠΨ": 120184, + "ิà¸ģายà¸Ļ": 120185, + "Ġbudete": 120186, + "ĠзÑĢоÑģÑĤ": 120187, + "Ġvyk": 120188, + "ĠÐĹем": 120189, + "ĠиÑİнÑı": 120190, + "ĠmÄĽlo": 120191, + "ÙĦاÙģ": 120192, + "ĠÙĪØ´": 120193, + "ĠÑģпÑĢави": 120194, + "ãģĻãģİ": 120195, + "ĠгÑĢадÑĥ": 120196, + "Roz": 120197, + "ινή": 120198, + "Ġchá»ĵng": 120199, + "ä¸Ģåį·": 120200, + "ĠXem": 120201, + "ĠÑģимвол": 120202, + "ĠodmÃŃt": 120203, + "ĠÑĢÑıдом": 120204, + "ĠÑĩеÑĢвнÑı": 120205, + "à¸ģระà¸Ĺ": 120206, + "人人": 120207, + "æ°ĹæĮģãģ¡": 120208, + "undaki": 120209, + "åľĭ家": 120210, + "εÏģμαν": 120211, + "ĠлÑĮ": 120212, + "ĠNüfus": 120213, + "ĠмеÑĢе": 120214, + "براÙĬر": 120215, + "наннÑı": 120216, + "ĠнаÑĢ": 120217, + "Ġtấm": 120218, + "æĸ½å·¥": 120219, + "顯": 120220, + "Ġhè": 120221, + "æĺİçĻ½": 120222, + "Ġдогов": 120223, + "ĠÙģرÙħ": 120224, + "èĢĹ": 120225, + "ìĬ¤ìĿĺ": 120226, + "ìĦ¸ëĮĢ": 120227, + "è¯ļ": 120228, + "ĠнеболÑĮ": 120229, + "Ġà¸Ľà¸£à¸°à¸ģ": 120230, + "Ġì¹¼": 120231, + "Ġovliv": 120232, + "ĠNGC": 120233, + "ãĢĤä¸į": 120234, + "اÙĦÙī": 120235, + "æī£": 120236, + ".ÐIJ": 120237, + "ÑĢаÑģÑĤа": 120238, + "ĠÃĩev": 120239, + "ãģ£ãģ¡": 120240, + "ï¼Įéĥ½": 120241, + "ĠrovnÄĽÅ¾": 120242, + "ĠÏĩÏģÏĮνια": 120243, + "Ġì¡°ìĦł": 120244, + "Ġآباد": 120245, + "ĠÐľÐ°Ñģ": 120246, + "çĻ¼å±ķ": 120247, + "ä»Ķ": 120248, + "Ġkendisini": 120249, + "à¹Īà¸Ńà¸ĩà¹Ģà¸Ĺ": 120250, + "ĠVÄĽ": 120251, + "Ġrượu": 120252, + "Ġmáme": 120253, + "ĠоÑĩеÑĢедÑĮ": 120254, + "ĠسبتÙħبر": 120255, + "Ġбок": 120256, + "ì§ĢìĹŃ": 120257, + "ĠتاثÛĮر": 120258, + "Ġlisans": 120259, + "Ġgerektir": 120260, + "Ġsizi": 120261, + "Ñĸно": 120262, + "ĠMÃ¼ÅŁ": 120263, + "ãģıãĤīãģĦ": 120264, + "ĠзаклÑİÑĩ": 120265, + "ãģĵãģ¨ãģ«": 120266, + "è¨ĢãģĦ": 120267, + "ãĢģå°ı": 120268, + "Ġetmektedir": 120269, + "åł±åijĬ": 120270, + "ĠkarÄ±ÅŁ": 120271, + "Ġоблад": 120272, + "å¥ij": 120273, + "racat": 120274, + "ĠارتÙģاع": 120275, + "μαι": 120276, + "íĶĪ": 120277, + "ĠÙĪÙĦÙħ": 120278, + "ëĬĶì§Ģ": 120279, + "lomou": 120280, + "ĠлиÑĨа": 120281, + "ĠìĿĮìķħ": 120282, + "ĠhodnÄĽ": 120283, + "èĭ±æĸĩ": 120284, + "ÂĦ": 120285, + "à¹īาà¸Ĥà¸Ńà¸ĩ": 120286, + "Ġê³Ħìķ½": 120287, + "åIJĦç§į": 120288, + "ĠÙħرگ": 120289, + "éĶģ": 120290, + "Ġनद": 120291, + "ãĥĭãĥ¡": 120292, + "Ġем": 120293, + "ĠeleÅŁtir": 120294, + "ĠíĬ¹ë³Ħ": 120295, + "ĠÎ¥ÏĢο": 120296, + "Å¡ker": 120297, + "LERÄ°": 120298, + "æ²Ī": 120299, + "likleri": 120300, + "ĠÙħÙĩÙĨدسÛĮ": 120301, + "Ġbaģır": 120302, + "dıģını": 120303, + "ĠاÙĦتد": 120304, + "à¸¸à¸Ľà¸ģรà¸ĵ": 120305, + "ĠÑģледÑĥÑİÑīие": 120306, + "Ġì§ģìłij": 120307, + "å°¤": 120308, + "ĠоÑģновÑĸ": 120309, + "ĠtÄĽla": 120310, + "Ġпак": 120311, + "izace": 120312, + "Ġnárod": 120313, + "aný": 120314, + "ĠÑįп": 120315, + "Ġüçüncü": 120316, + "ΥΡ": 120317, + "éĨ´éĨ´": 120318, + "à¹Ģà¸ģà¸Ńร": 120319, + "âĢĮاÙĨبار": 120320, + "ç¶Ļ": 120321, + "ÎijÎł": 120322, + "ılıģı": 120323, + "ĠÃľrün": 120324, + "Ġдозвол": 120325, + "ĠíĥĪ": 120326, + "Ġà¤ĵवर": 120327, + "諸": 120328, + "èĺĩ": 120329, + "ĠпÑĢоÑģÑĤÑĢан": 120330, + "éĿĴå¹´": 120331, + "ãģ®æĸ¹": 120332, + "ĠÚĨÚ¯ÙĪÙĨÙĩ": 120333, + "ÙĦØ·": 120334, + "âĢľæĪij": 120335, + "Ġëĭ¤ìļ´ë°Ľ": 120336, + "ा.Ċ": 120337, + "Ġmücadele": 120338, + "ĠcÃŃt": 120339, + "à¹Īวมà¸ģ": 120340, + "ģına": 120341, + "ê°ľë°ľ": 120342, + "ĠÏĢαιδ": 120343, + "ضاÛĮ": 120344, + "Ġborç": 120345, + "íĬľ": 120346, + "ĠخدÙħت": 120347, + "Ġudál": 120348, + "Ġвиг": 120349, + "Ġë°°ìĨ¡": 120350, + "å¹¾": 120351, + "Ùİج": 120352, + "ĠìĹĺ": 120353, + "çĢ¬": 120354, + "ïĢ": 120355, + "ĠÎijθή": 120356, + "пÑĢиклад": 120357, + "ĠпÑĢиÑĩина": 120358, + "ĠÙģشار": 120359, + "滿": 120360, + "Ġdostat": 120361, + "Ġ졸ìĹħ": 120362, + "Ġارز": 120363, + "ÙĪÙĦÙĪج": 120364, + "سÙĪ": 120365, + "æĺłçĶ»": 120366, + "Ġthôi": 120367, + "Ġ³³³": 120368, + "à¹ģà¸Ļะ": 120369, + "è¨ŃåĤĻ": 120370, + "Ġмногие": 120371, + "ÑĤоÑĦ": 120372, + "iÅ¡tÄĽ": 120373, + "à¤Ĺढ": 120374, + "ĠиндивидÑĥ": 120375, + "ĠìĥĿíĻľ": 120376, + "ĠзовÑģÑĸм": 120377, + "íĥķ": 120378, + "çľł": 120379, + "ĠêµŃëĤ´": 120380, + "eptal": 120381, + "raci": 120382, + "è¡¡": 120383, + "ãĦ·": 120384, + "ĠStÅĻed": 120385, + "اÙĦÙĬا": 120386, + "ΣΤ": 120387, + "Ľ°": 120388, + "ãĥīãĥ«": 120389, + "ázÃŃ": 120390, + "ĠаÑģп": 120391, + "ĠdÄ±ÅŁarı": 120392, + "ĠвиÑĢобниÑĨÑĤва": 120393, + "eza": 120394, + "ï¼Įä¸įè¿ĩ": 120395, + "çĥ¦": 120396, + "ãĥ³ãĤ°ãĥ«": 120397, + "Ġrozvoj": 120398, + "ĠÙħÙĨتشر": 120399, + "ĠÑĥÑĤеп": 120400, + "ĠدÙĬÙĨ": 120401, + "ĠзаÑģобÑĸв": 120402, + "NgÆ°á»Ŀi": 120403, + "ãĤ·ãĥ¼": 120404, + "ĠFransız": 120405, + "ÎĻΤ": 120406, + "ائÙģ": 120407, + "ιÏĩ": 120408, + "ีà¹Ģม": 120409, + "à¥įमन": 120410, + "à¥įमà¤ļ": 120411, + "Ġسعر": 120412, + "ï¾Ŀ": 120413, + "ë°©ë²ķ": 120414, + "ĠСо": 120415, + "Ġà¤ĸबर": 120416, + "ìĨĮê°ľ": 120417, + "Ġslova": 120418, + "QPCP": 120419, + "ĠKız": 120420, + "Ø·ÙģاÙĦ": 120421, + "ĠкоÑĢм": 120422, + "ĠìĹħëį°ìĿ´íĬ¸": 120423, + "espoÅĪ": 120424, + "à¸Ķาว": 120425, + "оÑĢом": 120426, + "ĠгÑĢаÑĦ": 120427, + "ĠпÑĸÑĪ": 120428, + "Ġë¿IJ": 120429, + "ýv": 120430, + "Сам": 120431, + "Ġkrev": 120432, + "ĠBunu": 120433, + "Ġzobraz": 120434, + "ĠسخÙĨ": 120435, + "ĠæĶ¯": 120436, + "лÑİб": 120437, + "ÙİاÙĨ": 120438, + "маÑĤÑĢива": 120439, + "λεÏį": 120440, + "ĠпоÑħод": 120441, + "ĠгÑĢе": 120442, + "çľĭçĿĢ": 120443, + "à¸Īำà¸ģ": 120444, + "ัà¸ĩà¸Ħม": 120445, + "Ġseçenek": 120446, + "Ä°stanbul": 120447, + "ĠвÑĸдмов": 120448, + "miyor": 120449, + "Ġmụn": 120450, + "ìĿ´ìĹIJ": 120451, + "ĠNhÆ°": 120452, + "Âłtom": 120453, + "lıkları": 120454, + "ÂłÄij": 120455, + "ãĥ»ãĥŀ": 120456, + "ĠÙģت": 120457, + "ĠFakültesi": 120458, + "ìłĦíŀĪ": 120459, + "éªij": 120460, + "ĠìŀijìĿĢ": 120461, + "ç¼ĺ": 120462, + "ìºIJ": 120463, + "Ġmüzik": 120464, + "алÑĭ": 120465, + "Ġpozem": 120466, + "çĥ§": 120467, + "Ġ常": 120468, + "Å¡il": 120469, + "à¤Ĩप": 120470, + "à¸ģำหà¸Ļà¸Ķ": 120471, + "Ġگردش": 120472, + "λιά": 120473, + "Ġöden": 120474, + "åıªè¦ģ": 120475, + "ĠÄIJo": 120476, + "Ġstratej": 120477, + "ĠÙĩتÙĦ": 120478, + "ÙĤÙģ": 120479, + "Ġkullanılır": 120480, + "ĠÑģпоÑģÑĤ": 120481, + "ĠnÄĽho": 120482, + "ĠÐŁÐµÑĢед": 120483, + "ĠизмеÑĢ": 120484, + "]]>": 120485, + "ĠнÑĸколи": 120486, + "Ġhayal": 120487, + "ĠдодаÑĤков": 120488, + "Ġनà¤ķ": 120489, + "Ġinsanın": 120490, + "à¸¸à¸¡à¸łà¸²à¸ŀ": 120491, + "ografie": 120492, + "воб": 120493, + "ĠاÙĨساÙĨÛĮ": 120494, + "Ġmük": 120495, + "ĠÑĥмеÑĢ": 120496, + "оÑĩнÑĭе": 120497, + "ëıĦìĿĺ": 120498, + "Ġara": 120499, + "Ġ빨": 120500, + "ĠκÏį": 120501, + "лой": 120502, + "Ñģион": 120503, + "ĠrozdÃŃl": 120504, + "ayıf": 120505, + "ĠÙĪاØŃدة": 120506, + "оÑĢалÑĮ": 120507, + "Ġpochop": 120508, + "éļ¨": 120509, + "à¹īà¸Ńà¸ĩà¸Ļ": 120510, + "ĠÙĪاÙĨ": 120511, + "ξε": 120512, + "Ġμον": 120513, + "ÑĥÑĪка": 120514, + "ordum": 120515, + "æ¸ħæ¥ļ": 120516, + "ĠDeÄŁ": 120517, + "ÏĢÏģο": 120518, + "ĠÙĪاÙĦتÙĬ": 120519, + "Ġpokus": 120520, + "íĽĦ기": 120521, + "饮": 120522, + "æĹħè¡Į": 120523, + "ĠженÑīин": 120524, + "ĠdoÄŁrudan": 120525, + "ĠÑıб": 120526, + "ĠzaÄįÃŃ": 120527, + "Ġë³´ìŬ": 120528, + "-CP": 120529, + "åIJ¨": 120530, + "à¥ĭà¤ĸ": 120531, + "ÑĢогÑĢа": 120532, + "lerdi": 120533, + "ìĬ´": 120534, + "ÙıÙĪا": 120535, + "ĠustanovenÃŃ": 120536, + "ĠдоÑģÑĤав": 120537, + "Ġfırsat": 120538, + "ĠاÙĦÙħÙĩÙĨØ©": 120539, + "ĠвеÑīеÑģÑĤва": 120540, + "ĠнеÑģп": 120541, + "ĠاÙĦکترÙĪÙĨ": 120542, + "taÅŁ": 120543, + "æĪĴ": 120544, + "Ġyurt": 120545, + "Ġgirdi": 120546, + "ĠÐļÑĥб": 120547, + "Ġ를": 120548, + "ุà¹Į": 120549, + "ãģĿãģĨãģª": 120550, + "à¹īĊ": 120551, + "ĠвÑĭбÑĢа": 120552, + "kovÄĽ": 120553, + "ĠSiz": 120554, + "ĠگاÙĩ": 120555, + "ĠЧаÑģ": 120556, + "ĠзгÑĸдно": 120557, + ".ÐŁ": 120558, + "å§Ĭ": 120559, + "ĠÐļÑĥÑĢ": 120560, + "ĠìĿĺíķ´": 120561, + "Ġetraf": 120562, + "ĠкаÑĪ": 120563, + "ĠØ·ÛĮ": 120564, + "ξει": 120565, + "ç²Ĵ": 120566, + "Ġآذ": 120567, + "Ġbölge": 120568, + "Ġà¤®à¤ľà¤¬": 120569, + "ÙIJÙĥ": 120570, + "Ġválky": 120571, + "ãģłãĤĪ": 120572, + "Ġmesaj": 120573, + "ĠpÅĻist": 120574, + "Ġtypu": 120575, + "ĠкиÑĪеÑĩ": 120576, + "ãĤīãģ®": 120577, + "Ġkendisi": 120578, + "ĠвÑĸдбÑĥва": 120579, + "侯": 120580, + "Ġдиза": 120581, + "ãĢĢĊ": 120582, + "ĠпÑĢоÑĨеÑģÑĥ": 120583, + "ĠÑįлекÑĤÑĢ": 120584, + "_PUS": 120585, + "ĠмногиÑħ": 120586, + "Ġkém": 120587, + "æŀª": 120588, + "çݰ代": 120589, + "Ġéħį": 120590, + "ë¡Ń": 120591, + "ÑĤиÑģÑı": 120592, + "Ġlục": 120593, + "ĠÙĪاÙĦØŃ": 120594, + "ptal": 120595, + "ẵng": 120596, + "ÏĢλ": 120597, + "Ġdolu": 120598, + "Ġtòa": 120599, + "Ġиногда": 120600, + "ĠпоÑĢÑıдок": 120601, + "ЯкÑīо": 120602, + "âĶĺ": 120603, + "ĠغربÛĮ": 120604, + "移åĬ¨": 120605, + "ยà¸Ļà¸ķร": 120606, + "HDATA": 120607, + "_PUSHDATA": 120608, + "Ġثابت": 120609, + "åĮħåIJ«": 120610, + "ĠÏĢÏģÎŃÏĢει": 120611, + "़à¥ĭ": 120612, + "åIJįåīį": 120613, + "ÑĤеÑĢи": 120614, + "ッ": 120615, + "ĠåħĪ": 120616, + "нед": 120617, + "ÏģοÏįν": 120618, + "вей": 120619, + "èĤĸ": 120620, + "ĠÅĻeditel": 120621, + "Ġthép": 120622, + "ĠÙĩÙģتÙĩ": 120623, + "ĠдÑĢÑĥга": 120624, + "ERÄ°": 120625, + "ĠẢ": 120626, + "ĠпеÑĢеÑĢ": 120627, + "ĠжеÑģÑĤ": 120628, + "ĠÄijẳng": 120629, + "禮": 120630, + "алÑĮном": 120631, + "िषय": 120632, + "иденÑĤа": 120633, + "ĠآخرÛĮÙĨ": 120634, + "Ġæĵ": 120635, + "Ġมหาว": 120636, + "ĠлÑİÑĤого": 120637, + "ĠбÑĸзнеÑģ": 120638, + "gıç": 120639, + "Ġngá»ĵi": 120640, + "оÑĩнÑĭй": 120641, + "ĠoÄįek": 120642, + "ĠÙħرة": 120643, + "Ġtvar": 120644, + "ĠsamozÅĻejmÄĽ": 120645, + "ĠBelediye": 120646, + "Ġвода": 120647, + "ĠÚ¯ÛĮرد": 120648, + "ĠгодÑĭ": 120649, + "ãģ«è¡Į": 120650, + "æĺ¯æĪij": 120651, + "ÑĪили": 120652, + "ĠåĽ½äº§": 120653, + "ủi": 120654, + "ĠбÑĥдÑĥÑĤÑĮ": 120655, + "ĠÑĢайонÑĥ": 120656, + "Ġìĵ": 120657, + "ĠÙĪاس": 120658, + "ĠاÛĮشاÙĨ": 120659, + "ενοδο": 120660, + "Ġнезалеж": 120661, + "Ġپشت": 120662, + "ĠgiriÅŁim": 120663, + "Ġделе": 120664, + "ĠاصÙģÙĩاÙĨ": 120665, + "à¸Ķวà¸ģ": 120666, + "ĠاÙĦÙĤÙĬ": 120667, + "à¹Įà¸Ī": 120668, + "못": 120669, + "Ġdru": 120670, + "迹": 120671, + "адженнÑı": 120672, + "ÙģÙĨ": 120673, + "ÏĩοÏĤ": 120674, + "à¹Ĥà¸Ī": 120675, + "eyle": 120676, + "å¡ij": 120677, + "Ġuprav": 120678, + "ĠздаÑĤ": 120679, + "ĠvidÄĽt": 120680, + "Ġà¸Ľà¸£": 120681, + "ĠÑĦеÑĢ": 120682, + "ÐĨн": 120683, + "Ġìµľìĭł": 120684, + "loha": 120685, + "ĠиÑģпÑĭÑĤ": 120686, + "Ġavan": 120687, + "γοÏħ": 120688, + "ĠGiấy": 120689, + "ãĤ»ãĥ³ãĤ¿ãĥ¼": 120690, + "éģį": 120691, + "еÑĢаÑħ": 120692, + "Ġê°Ģì§Ģê³ł": 120693, + "Ġид": 120694, + "Ġmnohem": 120695, + "æ£Ģæµĭ": 120696, + "Ġetme": 120697, + "ĠتÙħر": 120698, + "ĠbaÅŁlayan": 120699, + "ãģıãĤĮ": 120700, + "à¹ĩà¸Ļà¸ģาร": 120701, + "ĠÑħаÑĢакÑĤеÑĢиз": 120702, + "Ġanlamına": 120703, + "ÙıÙĩ": 120704, + "ĠÑģеÑĢпнÑı": 120705, + "çķªçµĦ": 120706, + "Ġmsgid": 120707, + "ĠzvÃŃÅĻ": 120708, + "ĠíļĮìĽIJ": 120709, + "Ġyapar": 120710, + "ä¼ĺåĬ¿": 120711, + "еннÑĭми": 120712, + "Ġأث": 120713, + "ì²Ļ": 120714, + "Ġjiného": 120715, + "ĠدÙģاع": 120716, + "ĠØŃÚ©ÙĪÙħ": 120717, + "Ġrizik": 120718, + "άλι": 120719, + "à¸ĩà¸Ĥ": 120720, + "èµ¢": 120721, + "ĠÎķÎĽ": 120722, + "Ġokum": 120723, + "æĶ¶åħ¥": 120724, + "ĠÚĨÛĮÙĨ": 120725, + "æľīçļĦ": 120726, + "ÑĨами": 120727, + "dÄĽnÃŃ": 120728, + "ĠкоÑĢаб": 120729, + "Ġalanda": 120730, + "สà¸Ļาม": 120731, + "ï¼īãģ®": 120732, + "ısız": 120733, + "ÙĬÙĬر": 120734, + "ÙĥÙĬØ©": 120735, + "ĠneboÅ¥": 120736, + "Ġbitir": 120737, + "Ġãĥľ": 120738, + "Ùijا": 120739, + "ï¼Ĩ": 120740, + "ĠاÙĦتارÙĬØ®": 120741, + "มหาà¸Ļà¸Ħร": 120742, + "atürk": 120743, + "ãĤ¹ãĥĨãĥł": 120744, + "θήκη": 120745, + "Ġκαν": 120746, + "ĠSür": 120747, + "ĠdÄ±ÅŁÄ±": 120748, + "Ġkancel": 120749, + "Ġپخش": 120750, + "hPa": 120751, + "ĠÄįt": 120752, + "ĠпÑĢоÑħ": 120753, + "à¹īà¸Ī": 120754, + "Ġê±°ìķ¼": 120755, + "ĠдеÑĢжавного": 120756, + "èĤ¡ä¸ľ": 120757, + "ìĿ´íģ¬": 120758, + "ÙĥتÙĪر": 120759, + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ": 120760, + "診": 120761, + "ĠبÙħا": 120762, + "ĠноÑĢмаÑĤив": 120763, + "çiler": 120764, + "à¸ĩศ": 120765, + "éĽĨä¸Ń": 120766, + "ÑĢиÑģ": 120767, + "ÑĩаÑĶ": 120768, + "liÄŁin": 120769, + "ãĥ¼ãĤ¿ãĥ¼": 120770, + "аÑĢаÑĤ": 120771, + "åĬĽéĩı": 120772, + "ĠÑģÑħем": 120773, + "åħ¥åı£": 120774, + "离å¼Ģ": 120775, + "ÏģοÏĨοÏģίεÏĤ": 120776, + "ĠÐĹаÑĤем": 120777, + "ĠkarÅŁÄ±sında": 120778, + "ĠاÙĨتظ": 120779, + "ï½Ĭ": 120780, + "ĠeÅŁit": 120781, + "Ġyazılı": 120782, + "Ðļом": 120783, + "ازÙĬ": 120784, + "Ġkimse": 120785, + "ÑĢаÑīи": 120786, + "ัà¸ģส": 120787, + "Ġkanun": 120788, + "ĠëIJĺìĹĪ": 120789, + "ĠιÏĥÏĩ": 120790, + "Ġмеди": 120791, + "æ°§": 120792, + "ï¼Įåħ¶ä¸Ń": 120793, + "Ġyoktu": 120794, + "ĠãĤ½": 120795, + "ĠпÑĢиобÑĢеÑĤ": 120796, + "ÙĪÛĮØ´": 120797, + "ãħłãħł": 120798, + "ĠکردÙħ": 120799, + "Ġduvar": 120800, + "Ġç¸": 120801, + "ısır": 120802, + "Ġïºį": 120803, + "ĠÐłÐ¾ÑģÑģиÑı": 120804, + "à¹īà¹ĥà¸Ļ": 120805, + "ĠiÅŁi": 120806, + "dol": 120807, + "ĠÙħØŃÙħÙĪد": 120808, + "ĠÑģамÑĭÑħ": 120809, + "ĠبÙĨابراÛĮÙĨ": 120810, + "ãĤĮãģ©": 120811, + "ุà¸ķสาห": 120812, + ".»": 120813, + "ูà¸Ĭ": 120814, + "ĠTep": 120815, + "ãģıãĤĵ": 120816, + "Ġå¸ĥ": 120817, + "Ġतल": 120818, + "Ġserm": 120819, + "λÏĮγ": 120820, + "ĠÅŀimdi": 120821, + "Ġà¤ľà¤¨à¤¤": 120822, + "-ÐĴ": 120823, + "訪": 120824, + "ĠвÑĸдпов": 120825, + "ิà¸Ļà¸Ķ": 120826, + "ιÏĥμÏĮÏĤ": 120827, + "ΩΤ": 120828, + "âĨĴâĨĴ": 120829, + "ικοί": 120830, + "ĠÑģпÑĢава": 120831, + "æľºåħ³": 120832, + "ĠÃĿ": 120833, + "Ġмова": 120834, + "Ġмогла": 120835, + "ĠдлиÑĤелÑĮ": 120836, + "ãģĹãģ¦ãĤĤ": 120837, + "ĠβÏģί": 120838, + "Ġжод": 120839, + "éĹª": 120840, + "ĠмÑĸÑģÑĮкоÑĹ": 120841, + "ηÏģε": 120842, + "çłĤ": 120843, + "Ġkterých": 120844, + "ĠÐĵолов": 120845, + "Ġhá»Ļp": 120846, + "ĠpanÃŃ": 120847, + "تÙħاد": 120848, + "Âľ": 120849, + "åįģåħŃ": 120850, + "κοÏĤ": 120851, + "евÑĭÑħ": 120852, + "æĭĴ": 120853, + "ĠÑģÑĤоÑĢон": 120854, + "Ġphóng": 120855, + "ĠÑĥлÑĥÑĩÑĪ": 120856, + "mrt": 120857, + "mpar": 120858, + "ĠSlav": 120859, + "Ġkov": 120860, + "ìĿ¸ìĿĢ": 120861, + "ĠåºĶ": 120862, + "ัà¸ļà¸Ħ": 120863, + "Ġkì": 120864, + "ĠaÅ¥": 120865, + "ÅĻÃŃt": 120866, + "ì°Į": 120867, + "ÙħÙĨت": 120868, + "ıyorlar": 120869, + "æŃ£å¸¸": 120870, + "нÑıÑĤÑĤÑı": 120871, + "racÃŃ": 120872, + "ĠпиÑĤаниÑı": 120873, + "à¸Īะà¹Ģà¸Ľ": 120874, + "ĠاÙĦÙĩÙĨد": 120875, + "ĠDost": 120876, + "ĠÐĴаÑģилÑĮ": 120877, + "ĠíĥĦ": 120878, + "Ġnạn": 120879, + "à¹Īà¸Ńà¹Ħà¸Ľ": 120880, + "رÙĪض": 120881, + "±ظ": 120882, + "Ġbychom": 120883, + "à¸Ļวย": 120884, + "ãģłãģ£ãģ¦": 120885, + "ĠÐĺÑģп": 120886, + "à¸Ħรà¸ļ": 120887, + "Ġสà¸ĸาà¸Ļ": 120888, + "ĠëĤ®": 120889, + "jiÅ¡tÄĽ": 120890, + "ĠÙģÙĪت": 120891, + "ĠChÆ°Æ¡ng": 120892, + "ĠìĿ´ë£¨": 120893, + "ĠpÅĻÃŃtom": 120894, + "tual": 120895, + "bette": 120896, + "Ġsabah": 120897, + "μί": 120898, + "Ġmá»ĩnh": 120899, + "ãģ®ãģłãĤįãģĨ": 120900, + "ĠzamÄĽÅĻ": 120901, + "åįģäºĶ": 120902, + "ĠìķĬìĿĦ": 120903, + "اÙĨÙĪ": 120904, + "енÑĥ": 120905, + "ĠÑĥгод": 120906, + "ĠVÆ°á»Ŀn": 120907, + "Ġëĵ±ìĿĦ": 120908, + "Ġbelirtilen": 120909, + "æŁĦ": 120910, + "Ġteklif": 120911, + "¬Ĥ": 120912, + "ĠподаÑĤков": 120913, + "ĠاÙĦÙĨÙĩ": 120914, + "ï¼´": 120915, + "ìĽĥ": 120916, + "Ġहल": 120917, + "ĠимÑĥ": 120918, + "ĠкоÑĤоÑĢÑĭм": 120919, + "ï¼Į以åıĬ": 120920, + "ĠÑĤабли": 120921, + "ा:": 120922, + "Ġبرج": 120923, + "ĠÎŃναν": 120924, + "ĠÙĬÙĪÙĦÙĬÙĪ": 120925, + "ýš": 120926, + "ĠÙĬج": 120927, + "ĠÑĤÑĢоÑħи": 120928, + "æŀĿ": 120929, + "ĠdÃły": 120930, + "ĠBurada": 120931, + "ĠÏĥÏħμβ": 120932, + "ĠÎijÏģÏĩ": 120933, + "ĠsociálnÃŃ": 120934, + "ĠÚ¯ÙĪ": 120935, + "Ġyanıt": 120936, + "ãģ¯ãģªãģĦ": 120937, + "ãģ®ä¸Ĭ": 120938, + "Ġnúi": 120939, + "ĠرÙģتار": 120940, + "ĠÙħرات": 120941, + "زÙħاÙĨ": 120942, + "าà¸Īารย": 120943, + "ĠÑĩиÑģлÑĸ": 120944, + "ĠسÙĨت": 120945, + "ĠÃĸzellikle": 120946, + "ìĩ¼": 120947, + "ĠÄįÃŃm": 120948, + "ADDE": 120949, + "ãģ®ãĤĪãģĨãģª": 120950, + "ÙĪÙĦÙĪÚĺÛĮ": 120951, + "ĠíĻľìļ©": 120952, + "ãĢģãģ©ãģĨ": 120953, + "ĠÎłÏģÏī": 120954, + "çĻ»åł´": 120955, + "ĠнаданнÑı": 120956, + "ĠмеÑĢеж": 120957, + "ĠìĿµ": 120958, + "jÃŃcÃŃch": 120959, + "itou": 120960, + "ÙĤÙĪÙĦ": 120961, + "Ùħج": 120962, + "ĠبÙĨد": 120963, + "Ġönüne": 120964, + "Ġï½°": 120965, + "зв": 120966, + "ĠеÑģÑĤе": 120967, + "ÐłÐĺ": 120968, + "ÑĢол": 120969, + "ayla": 120970, + "ĠклÑĥ": 120971, + "æݨèĸ¦": 120972, + "ĠÑĢозÑĢаÑħ": 120973, + "Ġìĥģëĭ´": 120974, + "ĠÙĨسÙħØ©": 120975, + "ĠвиÑħод": 120976, + "à¥Ģà¤Ĩà¤Ī": 120977, + "ĠпÑĢиÑģÑĤÑĥп": 120978, + "ÙĴع": 120979, + "ĠteÅŁekkür": 120980, + "дÑıки": 120981, + "Ġfikir": 120982, + "ัศà¸Ļ": 120983, + "ĠآزÙħاÛĮØ´": 120984, + "Ġbizi": 120985, + "ÏĨαÏģ": 120986, + "æľªæĿ¥": 120987, + "æIJº": 120988, + "ĠδÏħνα": 120989, + "ĠرÙĪÙħ": 120990, + "Ġbundan": 120991, + "ĠÙĤاÙĦب": 120992, + "Ġhaft": 120993, + "忽": 120994, + "ĠÐľÐ¾ÑĢ": 120995, + "Ġzápas": 120996, + "Ġë¹Ľ": 120997, + "å»·": 120998, + "äºĪç´Ħ": 120999, + "Ġkhuyến": 121000, + "ĠÎijÎĵ": 121001, + "ĠìŀijìĹħ": 121002, + "डर": 121003, + "Ġjednoduch": 121004, + "à¥īम": 121005, + "ĠdeÄŁildi": 121006, + "Ġkolo": 121007, + "ĠدÙĤÛĮ": 121008, + "лами": 121009, + "ĠHá»įc": 121010, + "Ġपस": 121011, + "ĠÎłÏģÏĮ": 121012, + "ĠâĹij": 121013, + "ĠнаÑģлÑĸд": 121014, + "Ġдиви": 121015, + "ĠpÅĻesnÄĽ": 121016, + "ĠТаким": 121017, + "Ġrukou": 121018, + "ä¸ĢåĪĩ": 121019, + "ĠÑģпÑĢи": 121020, + "enské": 121021, + "æŦ": 121022, + "ĠÙĤÙĨ": 121023, + "Ġústav": 121024, + "िशत": 121025, + "à¹Į)": 121026, + "ĠTrang": 121027, + "Ġmohla": 121028, + "ĠÎķλλην": 121029, + "Ġпоки": 121030, + "ĠØ¢Ùħار": 121031, + "åIJ¾": 121032, + "ĠÑĢеÑģп": 121033, + "Ġtakdir": 121034, + "Ġrahatsız": 121035, + "éŁ³ä¹IJ": 121036, + "ĠâĶĥ": 121037, + "ilis": 121038, + "ĠÙĪاÙĦØ¥": 121039, + "å®Ļ": 121040, + "Ñĥмов": 121041, + "ĠÐĽÐ¸ÑĤ": 121042, + "::::|": 121043, + "åħ½": 121044, + "ĠÙĨزدÛĮÚ©": 121045, + "елÑĸв": 121046, + "θοÏįν": 121047, + "ìĹIJìĦľëıĦ": 121048, + "èµĦæł¼": 121049, + "çIJĨ论": 121050, + "ĠKemal": 121051, + "ĠкеÑĢ": 121052, + "ษายà¸Ļ": 121053, + "Ġåįİ": 121054, + ")ìĹIJ": 121055, + "ĠëĬĺ": 121056, + "ãĥĿãĥ¼ãĥĪ": 121057, + "ĠÐĹд": 121058, + "اصÙĬÙĦ": 121059, + "Ġkatı": 121060, + "ãĤĤãģĹãĤĮãģªãģĦ": 121061, + "Ġкаждого": 121062, + "ĠдÑĢ": 121063, + "Ġfutbol": 121064, + "ÙĦÙĬÙģ": 121065, + "Ġì§ĢëĤľ": 121066, + "ĠÙ¾ÛĮØ´ÙĨÙĩ": 121067, + "ülük": 121068, + "Ġà¸ķำà¸ļล": 121069, + "ĠbáºŃc": 121070, + "ĠåĽł": 121071, + "ikler": 121072, + "Ïģιά": 121073, + "Ġвважа": 121074, + "Ġvypl": 121075, + "Ġвниз": 121076, + "íĢ": 121077, + "çľ¾": 121078, + "ĠÑģила": 121079, + "ĠналиÑĩии": 121080, + "ĠعراÙĤ": 121081, + "ĠاÙĦÙħÙĥ": 121082, + "å°±ä¼ļ": 121083, + "ĠмÑĸг": 121084, + "ĠÎĮμιλοÏĤ": 121085, + "Ñīего": 121086, + "Ġíĸīìłķ": 121087, + "Âłmph": 121088, + "Ġmalé": 121089, + "ĠÛĮاÙģتÙĩ": 121090, + "Ġmnoha": 121091, + "γά": 121092, + "ĠпоÑģÑĤÑĢо": 121093, + "ĠاÙĦÙħÙĪس": 121094, + "Ġolma": 121095, + "ëī´ìĬ¤": 121096, + "Ġtutar": 121097, + "ãĥ¼ãĥĵãĤ¹": 121098, + "à¥įथन": 121099, + "-либо": 121100, + "æ¥ŃåĭĻ": 121101, + "ĠоÑģобливо": 121102, + "è®Ģ": 121103, + "ÙģÙĩÙĪÙħ": 121104, + "Ġkẻ": 121105, + "ĠÅ¡tÄĽ": 121106, + "Ġcầm": 121107, + "ĠÄįlánky": 121108, + "ĠÄIJiá»ĩn": 121109, + "(=": 121110, + "OVÃģ": 121111, + "uldu": 121112, + "aft": 121113, + "Ġlãi": 121114, + "Ġdoldur": 121115, + "³³³³³³³³³³³": 121116, + "βι": 121117, + "ãģ£ãģ¦ãģįãģŁ": 121118, + "ì¶ľìŀ¥ìķĪë§Ī": 121119, + "å¯Ŀ": 121120, + "Ġë¶Ģíĥģ": 121121, + "ĠاÙĦاخ": 121122, + "ĠγÏħνα": 121123, + "à¤ıम": 121124, + "à¥Įल": 121125, + "عادة": 121126, + "ĠκοÏħ": 121127, + "ĠÙħطرØŃ": 121128, + "ĠÑĩеловеÑĩ": 121129, + "Ġnumar": 121130, + "Ġдина": 121131, + "ÏĦÏģÎŃ": 121132, + "λικ": 121133, + "Ġдолго": 121134, + "Ġnhiêu": 121135, + "ĠвоÑģÑģÑĤанов": 121136, + "apı": 121137, + "Ġkanı": 121138, + "ĠKế": 121139, + "ãĤīãģļ": 121140, + "Ġharek": 121141, + "ãģłãģijãģ§": 121142, + "æ»ħ": 121143, + "Ġohled": 121144, + "еÑĢим": 121145, + "ĠØŃÙĬÙĨ": 121146, + "ĠÙĤÙĩر": 121147, + "Ġबà¥Ŀ": 121148, + "اپÛĮÙħ": 121149, + "è¶ħè¿ĩ": 121150, + "Ġæħ": 121151, + "ĠتÙģس": 121152, + "asıyla": 121153, + "биÑĤ": 121154, + "ĠØŃاج": 121155, + "ĠÑĤÑĢебованиÑı": 121156, + "Ġæݨ": 121157, + "Ġç±³": 121158, + "ãĤ³ãĥ¼ãĥī": 121159, + "ĠÑĥÑģи": 121160, + "ĠاخÙĦاÙĤ": 121161, + "Ġdostup": 121162, + "ĠعÙĦاÙĤ": 121163, + "िवस": 121164, + "Ġоди": 121165, + "tej": 121166, + "Ġthá»ıa": 121167, + "ัà¸ģษà¸ĵะ": 121168, + "ĠÑĢаÑģк": 121169, + "ĠÐĿаÑĢод": 121170, + "ĠзакÑĥп": 121171, + "ože": 121172, + "Ġاجرا": 121173, + "ê´ijê³ł": 121174, + "аÑĢÑĤам": 121175, + "ĠпеÑĢеж": 121176, + "èij£äºĭ": 121177, + "ĠÑıкоÑģÑĤÑĸ": 121178, + "ĠвÑĥл": 121179, + "мон": 121180, + "Ġchlap": 121181, + "ĠÑįÑĤомÑĥ": 121182, + "аÑĤÑĸ": 121183, + "ĠíĴĪ": 121184, + "è¡Ĺéģĵ": 121185, + "سد": 121186, + "ÙĪرÙĩ": 121187, + "ĠزÛĮاد": 121188, + "åľ¨çº¿è§Ĩé¢ij": 121189, + "اÙĪÙĬØ©": 121190, + "ï¼Įå°±æĺ¯": 121191, + "elerinden": 121192, + "ÑĢажд": 121193, + "Ġпозд": 121194, + "ĠзнаÑĤÑĮ": 121195, + "ัà¸ļสà¸Ļ": 121196, + "à¥ĩà¤ĸत": 121197, + "ĠæĽ°": 121198, + "ê³¼ìłķ": 121199, + "é®®": 121200, + "ĠViá»ĩn": 121201, + "Ġdvoj": 121202, + "ίνεÏĦαι": 121203, + "ĠosobnÃŃch": 121204, + "ĠâĢª": 121205, + "éĻµ": 121206, + "ĠØ®ÙĪدش": 121207, + "ĠاÙĨر": 121208, + "ĠпÑĢоÑĦеÑģÑģионалÑĮ": 121209, + "kám": 121210, + "ĠÙħÙĥاÙĨ": 121211, + "ĠاÙĦأد": 121212, + "Ġê³µë¶Ģ": 121213, + "ĠÄijức": 121214, + "ĠCumhuriyeti": 121215, + "åĩºãģĹ": 121216, + "дами": 121217, + "ĠìĪĺìĥģ": 121218, + "ĠÙģبراÙĬر": 121219, + "Ġsüresi": 121220, + "Ġبج": 121221, + "ĠæĶ¾": 121222, + "ØŃÛĮ": 121223, + "çłĶ究æīĢ": 121224, + "åĩºçīĪ社": 121225, + "ĠÙħÙĪتÙĪر": 121226, + "&&&&": 121227, + "ĠпеÑĢей": 121228, + "ĠìĦłê±°": 121229, + "ĠúspÄĽÅ¡": 121230, + "ارک": 121231, + "Ġettir": 121232, + "Ġì¶ľìŀ¥": 121233, + "ĠKanun": 121234, + "ĠÑĥменÑĮÑĪ": 121235, + "ĠзаÑĤвеÑĢдж": 121236, + "ĠاÙĦدÙĪÙĦÙĬ": 121237, + "Ġãĥĵ": 121238, + "ĠBazı": 121239, + "åŃIJãģ®": 121240, + "åĩ¯": 121241, + "Ġsebeb": 121242, + "Ġåħ±": 121243, + "Ġdnů": 121244, + "ä½įäºİ": 121245, + "ĠZd": 121246, + "æī±": 121247, + "ĠتجربÙĩ": 121248, + "ÃĶNG": 121249, + "Ġìĺ¬ëĿ¼": 121250, + "ÏīÏĦεÏģ": 121251, + "ĠÑģвид": 121252, + "æ¯ĶèµĽ": 121253, + "ãģ«åIJij": 121254, + "ìľĦ를": 121255, + "ãģĹãģ¾ãģĹãģŁ": 121256, + "Ġdá»ĭ": 121257, + "ĠÐłÑĥÑģ": 121258, + "Ġvá»ı": 121259, + "à¤Ĥडल": 121260, + "ĠпиÑī": 121261, + "Ġsmrti": 121262, + "à¸Īาà¸ģà¸ģาร": 121263, + "ĠÑģаÑħаÑĢ": 121264, + "Ġthoát": 121265, + "جÙħØ©": 121266, + "Ġпозвол": 121267, + "ĠاÙĦثاÙĨÙĬØ©": 121268, + "زادÙĩ": 121269, + "ãĢģä¸Ń": 121270, + "ήμεÏģα": 121271, + "æ¦ľ": 121272, + "lacaģı": 121273, + "ĠнаÑĪиÑħ": 121274, + "ìĶĢ": 121275, + "ĠÐĺÑģÑĤоÑĢиÑı": 121276, + "ündeki": 121277, + "ĠпеÑĢел": 121278, + "Ġ목ìĨĮ": 121279, + "ĠÑģÑĤаÑĤÑĥÑģ": 121280, + "овали": 121281, + "ÅĻaz": 121282, + "ĠдÑĢÑĥгого": 121283, + "ÙĥÙĪÙħØ©": 121284, + "ÑĩиÑģÑĤ": 121285, + "μμ": 121286, + "åıįåºĶ": 121287, + "icari": 121288, + "Ġپاک": 121289, + "алÑĮним": 121290, + "ĠBuna": 121291, + "иÑĤив": 121292, + "ÑĦÑĢа": 121293, + "ãĥ¼ãĥĸãĥ«": 121294, + "ĠÑĤобÑĤо": 121295, + "룬ìĬ¤": 121296, + "ĠاÙĦاع": 121297, + "åħ¬éĸĭ": 121298, + "å¥ī": 121299, + "ÙĪÙĦد": 121300, + "åIJįçĦ¡ãģĹ": 121301, + "æ°ij主": 121302, + "à¥ģà¤ľà¤°": 121303, + "ìĤ¬ë¬´": 121304, + "Ġöncelik": 121305, + "Ġå¨": 121306, + "Ñıб": 121307, + "çľī": 121308, + "à¥įवय": 121309, + "ĠHình": 121310, + "çļĦåľ°æĸ¹": 121311, + "ĠاÙĦتس": 121312, + "ä¸Ī夫": 121313, + "ĠпÑĥблÑĸ": 121314, + "ĠnÄĽjaké": 121315, + "ÄIJá»iji": 121316, + "ĠÑģоÑģÑĤоÑıниÑı": 121317, + "à¥Ģ)": 121318, + "ĠÄijáºŃu": 121319, + "jed": 121320, + "ê¶ģ": 121321, + "Ġsenin": 121322, + "ĠHóa": 121323, + "âĻł": 121324, + "лÑıÑİÑĤÑĮ": 121325, + "éĹ²": 121326, + "ìĿ¸íĬ¸": 121327, + "تبÙĩ": 121328, + "Ġरà¤ĸत": 121329, + "ĠÑģловами": 121330, + "ĠطبÙĤ": 121331, + "Ġuydu": 121332, + "ุà¸ĩà¹Ģà¸Ĺà¸ŀมหาà¸Ļà¸Ħร": 121333, + "ĠSanat": 121334, + "à¹īาà¸Ĭ": 121335, + "Ġкниж": 121336, + "Ìģc": 121337, + "اÙħج": 121338, + "δÏİ": 121339, + "Å®": 121340, + "Ġbinh": 121341, + "è¾Ĩ": 121342, + "neÄŁi": 121343, + "Ø·ÙĨ": 121344, + "å¸ķ": 121345, + "Ġìĩ¼": 121346, + "оÑģÑĢед": 121347, + "ĠοÏĢοίο": 121348, + "kır": 121349, + "à¥Īश": 121350, + "Ġà¸ĩาà¸Ļ": 121351, + "Ġdruž": 121352, + "ematik": 121353, + "adıģ": 121354, + "è¾ŀ": 121355, + "ĠpoužÃŃvá": 121356, + "Ġkurtar": 121357, + "ĠsaÄŁlan": 121358, + "ãĢıï¼Ī": 121359, + "Ġmůžeme": 121360, + "Ġباد": 121361, + "æľŁéĹ´": 121362, + "اتÙģ": 121363, + "Ġyazılım": 121364, + "ĠìĹ°ê²°": 121365, + "ÙĬÙģØ©": 121366, + "Ġemin": 121367, + "ĠнеÑģколÑĮкиÑħ": 121368, + "Û´Û°": 121369, + "寧": 121370, + "ίζει": 121371, + "Ġdél": 121372, + "veriÅŁ": 121373, + "ä¾¡æł¼": 121374, + "Ġاستاد": 121375, + "Ġалког": 121376, + ".HCM": 121377, + "ίοÏĤ": 121378, + "ακ": 121379, + "طع": 121380, + "ãģ£ãģį": 121381, + "ÑıеÑĤÑģÑı": 121382, + "лика": 121383, + "ĠÑĨÑı": 121384, + "Ġë§Īì§Ģë§ī": 121385, + "ĠаÑĢми": 121386, + "ĠγλÏİ": 121387, + "ENÃį": 121388, + "뮤": 121389, + "ŃIJï¸ı": 121390, + "Ġæ¯ı": 121391, + "Ġæĸ¼": 121392, + "ĠκαλÏį": 121393, + "ĠТом": 121394, + "ulur": 121395, + "Ġakce": 121396, + "ĠÙħÙĪجب": 121397, + "esiz": 121398, + "нÑıв": 121399, + "алÑĮнÑĥÑİ": 121400, + "алÑĸÑģÑĤ": 121401, + "ĠваÑĢÑĸ": 121402, + "ĠÙħؤس": 121403, + "ĠÙħاÛĮÙĦ": 121404, + "ĠμεÏĦαξÏį": 121405, + "åĩºãģĻ": 121406, + "Ġvá»Ŀi": 121407, + "룴": 121408, + "ï¼ĭ": 121409, + "æ¯İ": 121410, + "Ġtabi": 121411, + "âĤĥ": 121412, + "æ£ĭçīĮ": 121413, + "ĠÃIJ": 121414, + "ĠпÑĢоÑĦеÑģÑĸй": 121415, + "ÑĥваннÑĸ": 121416, + "ξγ": 121417, + "Ġжил": 121418, + "ÚĺÙĨ": 121419, + "лÑĥÑĪ": 121420, + "á½´": 121421, + "овеÑĢ": 121422, + "è¾¼ãģ¿": 121423, + "ĠÐľÐ°ÐºÑģим": 121424, + "ĠвзглÑıд": 121425, + "ĠнаÑĤÑĥ": 121426, + "मà¤ķ": 121427, + "ĠÑħими": 121428, + "ĠÑĢозÑĤаÑĪ": 121429, + "ÙĪراÙĨ": 121430, + "ĠØ´ÙĩرÙĩاÛĮ": 121431, + "æ©Łèĥ½": 121432, + "خذ": 121433, + "ĠÑģвоÑĶÑĹ": 121434, + "нÑıеÑĤ": 121435, + "Ġghế": 121436, + "ĠpÅĻedch": 121437, + "ÑĶÑĪ": 121438, + "огÑĢаÑĦÑĸÑı": 121439, + "Ġà¸Ĺำà¹ĥห": 121440, + "åĿĬ": 121441, + "ÏģÏīν": 121442, + "าระ": 121443, + "ĠKết": 121444, + "Ġchặt": 121445, + "ĠéĻĪ": 121446, + "ĠdÄĽlat": 121447, + "ĠбÑĥдÑĥÑī": 121448, + "ĠAçık": 121449, + "æłªå¼ıä¼ļ社": 121450, + "ĠÐŁÐ°ÑĢ": 121451, + "ĠKhu": 121452, + "ãĢģæĸ°": 121453, + "Ġбой": 121454, + "ë§ĪíĬ¸": 121455, + "ĠÑģопÑĢов": 121456, + "ساب": 121457, + "ниÑģÑĤ": 121458, + "å¼ĥ": 121459, + "ĠØ´ÙĨاس": 121460, + "енном": 121461, + "Ġ项": 121462, + "èīºæľ¯": 121463, + "озем": 121464, + "ĠÑĢеÑĪениÑı": 121465, + "lady": 121466, + "ĠвÑģей": 121467, + "æĶ»åĩ»": 121468, + "Ġê²°ìłķ": 121469, + "ãĢĢï¾ŀ": 121470, + "Ġê°IJëıħ": 121471, + "-ÐIJ": 121472, + "ĠmÃŃr": 121473, + "à¥ģपà¤ı": 121474, + "нÑĸÑĨип": 121475, + "бом": 121476, + "ĠÅ¡t": 121477, + "éľį": 121478, + "ĠÑĢеÑĪение": 121479, + "ĠдиагноÑģÑĤи": 121480, + "ipar": 121481, + "اÛĮز": 121482, + "ãng": 121483, + "ัวร": 121484, + "ĠÑĨаÑĢ": 121485, + "Ġsly": 121486, + "νÏİ": 121487, + "ĠKuzey": 121488, + "رÛĮب": 121489, + "Ġcenu": 121490, + "Ġcertif": 121491, + "ĠÑĤÑĢеÑĤÑĮ": 121492, + "ิà¸Ķà¸Ĥ": 121493, + "ĠпаÑĨÑĸÑĶн": 121494, + "ÅĻiv": 121495, + "èĦĤ": 121496, + "¢°": 121497, + "ĠPhần": 121498, + "ĠмеÑĤоди": 121499, + "Ấ": 121500, + "ìĨĶ": 121501, + "åIJĮåѦ": 121502, + "ĠåĢĭ": 121503, + "моÑĤÑĢÑı": 121504, + "Ġuvád": 121505, + "Û±Û¹Û¶": 121506, + "éģ¸æĬŀ": 121507, + "!»": 121508, + "ëĺIJ": 121509, + "ĠÛĮÙĪتÛĮ": 121510, + "ĠاÙĦØŃرب": 121511, + "ологÑĸÑı": 121512, + "nila": 121513, + "ĠÄijảng": 121514, + "ázi": 121515, + "ÑĢоÑī": 121516, + "Ġortadan": 121517, + "Ġاخبار": 121518, + "Ġà¤ħà¤ľ": 121519, + "Ġ매ìļ°": 121520, + "Ġпой": 121521, + "ĠجÙĬ": 121522, + "кÑĥваÑĤи": 121523, + "Ġá»ŀ": 121524, + "Ġبشر": 121525, + "ĠÙĥÙĬÙĦ": 121526, + "ÑīеÑģÑĤво": 121527, + "ĠìŬíĸī": 121528, + "اÙħÙĬ": 121529, + "вÑĸлÑĮ": 121530, + "ĠPrvnÃŃ": 121531, + "ĠÙĪسÛĮ": 121532, + "ĠÄIJá»": 121533, + "æĪ¿éĹ´": 121534, + "åľ¨çº¿éĺħ读": 121535, + "æķ·": 121536, + "Ġtrai": 121537, + "ä¿Ĺ": 121538, + "ĠÑģамоÑģÑĤоÑıÑĤелÑĮно": 121539, + "ĠÑĤÑĢебÑĥеÑĤÑģÑı": 121540, + "δÏģα": 121541, + "ĠÑĢеÑĩов": 121542, + "ĠвÑĸк": 121543, + "ĠÑĢÑĥÑĩ": 121544, + "奧": 121545, + "ĠolduÄŁuna": 121546, + "евÑĭе": 121547, + "Ġà¸Ħล": 121548, + "اÙĦÙĤ": 121549, + "ĠÑĸменÑĸ": 121550, + "æĶ»æĴĥ": 121551, + "ĠÑĥнивеÑĢÑģиÑĤ": 121552, + "ĠthÄĥm": 121553, + "ĠлиÑģÑĤопада": 121554, + "२०": 121555, + "Ø®ÙĬ": 121556, + "ÎķÎł": 121557, + "Ġarttır": 121558, + "Ġسخت": 121559, + "ï¼ĪæĺŃåĴĮ": 121560, + "ĠÎŁÏħ": 121561, + "иваниÑı": 121562, + "Ġstaveb": 121563, + "âħ¥": 121564, + "γÏīγή": 121565, + "Ù©": 121566, + "ĠиÑģÑģледованиÑı": 121567, + "åĢĭ人": 121568, + "Ġëĭ¤ìļ´ë°Ľê¸°": 121569, + "ĠÏĦελ": 121570, + "°N": 121571, + "ĠباÙĦÙĨ": 121572, + "à¹Įà¸ŀ": 121573, + "Ġnemůže": 121574, + "Ġголова": 121575, + "à¹Įà¹ģ": 121576, + "梯": 121577, + "Âĺ": 121578, + "δηÏĤ": 121579, + "ìĿ¸ì¦Ŀ": 121580, + "layın": 121581, + "á½·": 121582, + "ĠÙĨتاÛĮج": 121583, + "ĠÑģоблÑİд": 121584, + "ĠдвижениÑı": 121585, + "ìĮ": 121586, + "ĠpovÄĽ": 121587, + "ĠìłĦìĹIJ": 121588, + "å¦Ĥä¸ĭ": 121589, + "ĠاÙĦÙħدر": 121590, + "ï¼ĮæĪĸ": 121591, + "ارا": 121592, + "æ°ijæĹı": 121593, + "ĠبرÙĤ": 121594, + "ĠзапаÑģ": 121595, + "à¸Ļà¹ĥà¸Ī": 121596, + "éf": 121597, + "Ġà¸Łà¸£": 121598, + "Ġë³´ëĤ´": 121599, + "Ġ欧ç¾İ": 121600, + "-ÑĤаки": 121601, + "é©ļ": 121602, + "ÑĢÑĸÑı": 121603, + "æŁı": 121604, + "ĠповÑĸÑĤÑĢÑı": 121605, + "çµĦç¹Ķ": 121606, + "daÅŁ": 121607, + "Ġहमल": 121608, + "ĠÑĢеÑĶÑģÑĤÑĢа": 121609, + "άβ": 121610, + "ĠÎłÎ¿": 121611, + "Ġ그림": 121612, + "ÑĩаÑİÑĤ": 121613, + "à¸ĩà¸ķ": 121614, + "íĥĢìĿ´": 121615, + "æī¬": 121616, + "Ġpojist": 121617, + "ĠçłĶ": 121618, + "Ġåıĸ": 121619, + "Ġüzerindeki": 121620, + "jÅ¡ÃŃch": 121621, + "à¥Ģदव": 121622, + "檢": 121623, + "ĠмаÑĤеÑĢиалов": 121624, + "иваннÑı": 121625, + "Ġå°Ĩ": 121626, + "лл": 121627, + "ĠнаблÑİд": 121628, + "ĠGöz": 121629, + "ĠвзÑı": 121630, + "çĶµè§Ĩ": 121631, + "Ġвак": 121632, + "ç¿Ķ": 121633, + "Ġвзаим": 121634, + "Ġgitti": 121635, + "iteleri": 121636, + "ä»·åĢ¼": 121637, + "ĠاÙĦتص": 121638, + "िनà¤ķ": 121639, + "éĢļãĤĬ": 121640, + "ĠÑģÑĦеÑĢ": 121641, + "çĻºå£²": 121642, + "âĿ¤": 121643, + "ĠÚ¯ÙĪØ´ÛĮ": 121644, + "агаÑĤо": 121645, + "ĠÏĥÏħγκ": 121646, + "авиÑģ": 121647, + "æĤ£èĢħ": 121648, + "ĠخاÙħ": 121649, + "ÎĻÎļÎĹΣ": 121650, + "ınızda": 121651, + "panÄĽl": 121652, + "ĠÄIJá»ĭa": 121653, + "à¹ģละส": 121654, + "ĠãĤĤ": 121655, + "Ġsonucunda": 121656, + "ìĿį": 121657, + "eless": 121658, + "ĠNha": 121659, + "Ġzakáz": 121660, + "ĠвоÑģÑĤ": 121661, + "ĠvzdÄĽlávánÃŃ": 121662, + "-ม": 121663, + "Ġmetrů": 121664, + "ĠپاÛĮÛĮÙĨ": 121665, + "ĠÑĢаÑģÑĤение": 121666, + "Ġmuá»iji": 121667, + "èµĦéĩij": 121668, + "ĠÅŁÃ¼ph": 121669, + "ÙĬÙĦÙħ": 121670, + "ĠdÃ¼ÅŁÃ¼nc": 121671, + "ĠкÑĸм": 121672, + "ĠÏĩÏīÏģίÏĤ": 121673, + "ázev": 121674, + "ĠDeÄŁer": 121675, + "å·¥æ¥Ń": 121676, + "ĠرÙħز": 121677, + "ĠalespoÅĪ": 121678, + "ĠпÑĢеÑģÑĤÑĥп": 121679, + "ĠعÙĦاÙĪÙĩ": 121680, + "Ġmerak": 121681, + "à¹Į:": 121682, + "çİ°åľº": 121683, + "ÑĨвеÑĤ": 121684, + "Ġà¤ªà¥ľ": 121685, + "Ġëĭ¤ìĿĮê³¼": 121686, + "udic": 121687, + "ĠLep": 121688, + "ĠоднÑĸ": 121689, + "Ġalarak": 121690, + "å®īæİĴ": 121691, + "Ġà¸Ĥà¸Ļาà¸Ķ": 121692, + "rezent": 121693, + "isinden": 121694, + "رÙĪÛĮ": 121695, + "Ġplu": 121696, + "ç«ĭãģ¦": 121697, + "ÑĭваниÑı": 121698, + "Ġrast": 121699, + "Ġdüzenlem": 121700, + "jezd": 121701, + "ĠвеÑīеÑģÑĤв": 121702, + "ĠдиÑĢекÑĤоÑĢ": 121703, + "ÑĦÑĦ": 121704, + "tainment": 121705, + "ĠاÙĦÙĪز": 121706, + "landa": 121707, + "ĠÙĨÚ¯Ùĩد": 121708, + "ĠпÑĢоÑĤивоп": 121709, + "ãģ£ãģı": 121710, + "ãģ¨ãģªãĤĬ": 121711, + "Ġë°ľê²¬": 121712, + "ictor": 121713, + "ãĤ¸ãĤª": 121714, + "ΣΦ": 121715, + "ĠÑģкладÑĸ": 121716, + "Ġobsahuje": 121717, + "ĠUkra": 121718, + "æķ¦": 121719, + "ĠÏĩαÏģα": 121720, + "ĠÑĢегÑĥли": 121721, + "俺ãģ¯": 121722, + "ัà¸ķว": 121723, + "éĦī": 121724, + "ĠباÛĮ": 121725, + "éĬ·": 121726, + "ĠNẵng": 121727, + "лод": 121728, + "ارÙģ": 121729, + "æ´ģ": 121730, + "ĠëıĻìĿ¼": 121731, + "ÑĤивного": 121732, + "âĶģâĶģâĶģâĶģâĶģâĶģâĶģâĶģâĶģâĶģâĶģâĶģâĶģâĶģâĶģâĶģ": 121733, + "Ġ-:-": 121734, + "컬": 121735, + "ĠÑĪаг": 121736, + "ìłĦìŀIJ": 121737, + "çļĦäºĭæĥħ": 121738, + "ĠÑĢегÑĸ": 121739, + "ियल": 121740, + "ĠÐĿаз": 121741, + "ĠÐĻого": 121742, + "ĠÐłÐ¾Ð¼": 121743, + "ĠÃĸrneÄŁin": 121744, + "ĠпÑĢеÑģ": 121745, + "uluÄŁu": 121746, + "Ġзадов": 121747, + "ÅĻeh": 121748, + "æ¯ķä¸ļ": 121749, + "ĠtháºŃp": 121750, + "ëĤ¸": 121751, + "Ġdlouhodob": 121752, + "дÑĸлÑĥ": 121753, + "alat": 121754, + "ä»°": 121755, + "оком": 121756, + "ĠÑĦÑĸлÑĮ": 121757, + "ĠNgân": 121758, + "ĠترÙĥ": 121759, + "ĠÑĤÑī": 121760, + "رÙĪد": 121761, + "çuk": 121762, + "ranÃŃ": 121763, + "ĠdolaÅŁ": 121764, + "ĠQuang": 121765, + "ĠpÅĻedpok": 121766, + "ĠnámÄĽstÃŃ": 121767, + "ойÑĩив": 121768, + "çĭĢ": 121769, + "ĠбизнеÑģ": 121770, + "ãģŁãģı": 121771, + "ĠìĿ¸ì²ľ": 121772, + "оÑĢо": 121773, + "ĠKürt": 121774, + "ê·¸ëŁ¬": 121775, + "ÑĨаÑĤÑĮ": 121776, + "ĠBên": 121777, + "Ġacı": 121778, + "Ú©Ø´": 121779, + "ï¼Īå¹³æĪIJ": 121780, + "ĠèģĶ": 121781, + ")ãĢģ": 121782, + "diler": 121783, + "ÑĩиÑĤÑĮ": 121784, + "Ưá»": 121785, + "éĻ¶": 121786, + "ileceÄŁini": 121787, + "ĠvÅ¡em": 121788, + "å¼Ģå¥ĸ": 121789, + "è§Ħ模": 121790, + "ulmuÅŁ": 121791, + "ĠåĪĺ": 121792, + "ео": 121793, + "ĠпеÑĢевÑĸÑĢ": 121794, + "åĪĨåĪ«": 121795, + "Ġjedná": 121796, + "liÄŁe": 121797, + "ĠرÙħضاÙĨ": 121798, + "ıklı": 121799, + "ÙĩÙĢ": 121800, + "éĩįçĤ¹": 121801, + "ÑĩиваеÑĤÑģÑı": 121802, + "ë¡ľìĦľ": 121803, + "ÏĦεÏģο": 121804, + "åľ°ä¸ĭ": 121805, + "днаннÑı": 121806, + "Ġngược": 121807, + "४": 121808, + "ĠÎijλ": 121809, + "Ġalacak": 121810, + "Ġà¹Ģà¸ĩ": 121811, + "اÛĮÙĨد": 121812, + "ĠhÃłi": 121813, + "ÑĢоиз": 121814, + "ĠЧи": 121815, + "ĠÑıÑģ": 121816, + "خرÛĮد": 121817, + "Ġhudeb": 121818, + "åľ§": 121819, + "ĠìĦ¼": 121820, + "åĶ¯ä¸Ģ": 121821, + "ĠвÑĸлÑĮ": 121822, + "ĠباÙĦاتر": 121823, + "à¸Ńà¸ģาส": 121824, + "ĠTôi": 121825, + "มà¸Ĥ": 121826, + "omor": 121827, + "ĠOlomou": 121828, + "Ġxong": 121829, + "ĠdomácÃŃ": 121830, + "ĠاختÛĮ": 121831, + "ĠÑĤеÑħнÑĸÑĩ": 121832, + "ĠiÅŁte": 121833, + "à¥Įद": 121834, + "Ġнадеж": 121835, + "Ø®ÛĮص": 121836, + "åĬªåĬĽ": 121837, + "ĠتجÙĩÛĮزات": 121838, + "Ġvole": 121839, + "kinci": 121840, + "Ġhesab": 121841, + "ĠÑģеÑģÑĤ": 121842, + "کا": 121843, + "ÑĤеÑĢн": 121844, + "รรà¸Ħ": 121845, + "åıĤèĢĥ": 121846, + "ĠÐļаб": 121847, + "ĠÄ°mpar": 121848, + "Ġnávrh": 121849, + "åĴ¨è¯¢": 121850, + "à¸ĸาม": 121851, + "Ġyerel": 121852, + "ĠÃĸl": 121853, + "çĮĽ": 121854, + "ĠاÙĦÙĪØ·ÙĨÙĬ": 121855, + "ĠìĿ´ìĸ´": 121856, + "ิà¸Ĺยาศาสà¸ķร": 121857, + "ĠAÅŁ": 121858, + "ĠземлÑİ": 121859, + "ĠдомаÑĪниÑħ": 121860, + "ĠÑĥвеÑĢ": 121861, + "ALI": 121862, + "ган": 121863, + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 121864, + "Ġdostan": 121865, + "ezpe": 121866, + "ãģĭãģĦ": 121867, + "رÙģتÙĩ": 121868, + "ĠмÑĥÑģ": 121869, + "à¹Įà¸Ł": 121870, + "覺": 121871, + "ализа": 121872, + "ĠÑĥÑĩÑĢежд": 121873, + "ĠکاÙĦ": 121874, + "Ġetkisi": 121875, + "ä½Ĩæĺ¯": 121876, + "Ġsouvis": 121877, + "ĠSavaÅŁÄ±": 121878, + "Ġبسبب": 121879, + "ÎŁÎ¹": 121880, + "èļ": 121881, + "Ġæ®": 121882, + "ĠìĺģêµŃ": 121883, + "اسÛĮÙĪÙĨ": 121884, + "ĠاÙĦاتØŃاد": 121885, + "ĠглÑı": 121886, + "à¹ĩà¸ģà¸ĭ": 121887, + "ĠجÙĪÙĨ": 121888, + "ĠاÙĦرسÙħÙĬ": 121889, + "ÂłG": 121890, + "ĠÑĤобÑĸ": 121891, + "Âĩ": 121892, + "ĠëĮĢíĸī": 121893, + "çĬ¶æħĭ": 121894, + "Ġê·¸ëĥ¥": 121895, + "Ġимп": 121896, + "ĠتÙĨظÛĮÙħ": 121897, + "ÙĦاÛĮÙĨ": 121898, + "ÑģÑĤвеннÑĭм": 121899, + "опол": 121900, + "رÙĪج": 121901, + "Ġà¸ĩ": 121902, + "ĠçĤº": 121903, + "ĠUluslararası": 121904, + "à¥Įà¤Ĥ": 121905, + "ãĢģãģĿãģĨ": 121906, + "ĠسادÙĩ": 121907, + "ÎŃαÏĤ": 121908, + "Ġà¤Ĩल": 121909, + "-ÑĦ": 121910, + "ĠÎłÎ¿Î»Î¹": 121911, + "ĠноÑıбÑĢÑı": 121912, + "ÙĪÙĦÙĬ": 121913, + "æĽľæĹ¥": 121914, + "æĮģç»Ń": 121915, + "Ġê¼Ń": 121916, + "eceÄŁiz": 121917, + "ĠÛĮاÙģت": 121918, + "Ġåı¸": 121919, + "ाà¤Ĺत": 121920, + "Ġæķħ": 121921, + "ĠаллеÑĢг": 121922, + "Ġtuz": 121923, + "еÑĢÑĤи": 121924, + "Ġthầu": 121925, + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢĠãĢĢ": 121926, + "-à¤ħ": 121927, + "ĠиммÑĥ": 121928, + "ÑĢай": 121929, + "主義": 121930, + "ĠbaÅŁlar": 121931, + "Ġä¸Ĭ涨": 121932, + "عا": 121933, + "ĠÎĻÏī": 121934, + "ียà¸ĩà¹ĥหม": 121935, + "ĠاÙĦÙħدÙĬÙĨØ©": 121936, + "ÑģÑĮко": 121937, + "ĠتارÛĮØ®ÛĮ": 121938, + "atÃŃm": 121939, + "âĢļØ·": 121940, + "آخر": 121941, + "ĠëĦ£": 121942, + "ĠÙĨÙħاÛĮد": 121943, + "ãģķãĤĵãģĮ": 121944, + "Ġbò": 121945, + "Ġà¸ķาม": 121946, + "ë³´ìķĺëĭ¤": 121947, + "аÑĤÑĸв": 121948, + "ĠÑĦил": 121949, + "Ġkısmı": 121950, + "iá»ĩng": 121951, + "Ġaydın": 121952, + "éģķãģĦ": 121953, + "еви": 121954, + "Ġå¾®": 121955, + "(íģ¬ê¸°": 121956, + "ĠÚ¯ÛĮر": 121957, + "ìķĦìĦľ": 121958, + "ĠδημιοÏħÏģγ": 121959, + "ãģ«ãģĬãģĦãģ¦": 121960, + "ĠÃľNÄ°": 121961, + "иÑĤом": 121962, + "عÙĦاÙħ": 121963, + "åIJİçļĦ": 121964, + "Ġplá": 121965, + "à¸Ľà¸£à¸°à¹Ĥย": 121966, + "ç¢İ": 121967, + "Ġéĺ²": 121968, + "ëĬĶëĭ¤": 121969, + "ĠæĹ¥æľŁ": 121970, + "Ġgeçerli": 121971, + "лаÑĤÑĭ": 121972, + "Ġmutlaka": 121973, + "ÙĪغ": 121974, + "à¹Ģฮ": 121975, + "Ġﻣ": 121976, + "edeki": 121977, + "à¹Įà¹Ģà¸Ļ": 121978, + "ĠнайбÑĸлÑĮÑĪ": 121979, + "ï¼Ĭ": 121980, + "Ġà¹Ĥรà¸ĩ": 121981, + "Ġfotbal": 121982, + "ĠéĢģ": 121983, + "âĢĮاÙĦÙħÙĦ": 121984, + "ÏīμάÏĦιο": 121985, + "Ġúkol": 121986, + "åįļ士": 121987, + "dub": 121988, + "ılıģ": 121989, + "ëĵľë¥¼": 121990, + "çĭIJ": 121991, + "αλλ": 121992, + "æŃ»äº¡": 121993, + "ĠпÑĢедпоÑĩ": 121994, + "çµµ": 121995, + "ĠмÑĥзÑĭ": 121996, + "еÑĢÑĤв": 121997, + "ĠÙĥÙĨد": 121998, + "Ġulož": 121999, + "ÎŁÎ¥ÎĽ": 122000, + "gili": 122001, + "üstü": 122002, + "нки": 122003, + "ĠÙĤÙĪاÙĨ": 122004, + "ιακ": 122005, + "ĠÅŁer": 122006, + "ĠкиÑģл": 122007, + "ÙģضÙĦ": 122008, + "ĠÐIJÑĦ": 122009, + "γεν": 122010, + "Ġdostal": 122011, + "ĠsaÄŁlıklı": 122012, + "家æĹı": 122013, + "ÄIJT": 122014, + "еÑĢин": 122015, + "ĠìĿ´ëŁ¬íķľ": 122016, + "Ġdünyada": 122017, + "Ġnhắc": 122018, + "³³Ċ": 122019, + "νηÏĥη": 122020, + "γÏģαμμα": 122021, + "Ġtakson": 122022, + "ĠTürkçe": 122023, + "ĠÙģراÙĨسÙĩ": 122024, + "天åłĤ": 122025, + "溶": 122026, + "Ġoto": 122027, + "èµµ": 122028, + "chyb": 122029, + "Ġå¾Ĵ": 122030, + "ÏĦÏį": 122031, + "áhnout": 122032, + "à¥įपर": 122033, + "Ġvlas": 122034, + "Ġíļ¨ê³¼": 122035, + "Ġthang": 122036, + "Ġolmasına": 122037, + "ĠпоÑĢÑĥÑĪеннÑı": 122038, + "Ġquỹ": 122039, + "ĠíĿIJ": 122040, + "ĠìĪ¨": 122041, + "Ġë²Ī째": 122042, + "ẹn": 122043, + "Ġзгод": 122044, + "Ġتز": 122045, + "Ġاختص": 122046, + "ĠзÑĥÑģÑĤÑĢÑĸ": 122047, + "Ġtặng": 122048, + "ῶν": 122049, + "Ġì½ľ": 122050, + "ованиÑħ": 122051, + "âĢĮشد": 122052, + "Ġaraya": 122053, + "rové": 122054, + "ĠاختÙĦ": 122055, + "ливий": 122056, + "ĠاتØŃاد": 122057, + "ĠakÅŁam": 122058, + "ĠÚ©ÙĦاس": 122059, + "ãĤ¢ãĥĥãĥĹ": 122060, + "Ġzih": 122061, + "åĩĮ": 122062, + "å±±å¸Ĥ": 122063, + "Ġçevres": 122064, + "ĠогÑĢом": 122065, + "ĠآدÙħ": 122066, + "ĠtÄĽlo": 122067, + "ï¼Įæľ¬": 122068, + "ĠÚĺاÙĨÙĪÛĮÙĩ": 122069, + "Ġkraje": 122070, + "μία": 122071, + "èħ¿": 122072, + "âĢŀTo": 122073, + "決å®ļ": 122074, + "ìĩ": 122075, + "ĠéĴ": 122076, + "ĠΣÏĦα": 122077, + "ĠجÙħÙĩÙĪر": 122078, + "ĠGenç": 122079, + "rám": 122080, + "ĠÐłÐµÐ·": 122081, + "Ġvytvá": 122082, + "ĠпÑĢоизводÑģÑĤва": 122083, + "ĠÙħØ°Ùĩ": 122084, + "Ġihtiyac": 122085, + "ãĤ¯ãĤ»": 122086, + "Ġnêu": 122087, + "å¾³": 122088, + "ĠëĵĿ": 122089, + "наÑĩе": 122090, + "ĠÏĥÏħμμε": 122091, + "ÏĨÏīν": 122092, + "вавÑģÑı": 122093, + "ĠвиÑĤами": 122094, + "Ìģt": 122095, + "ĠfinanÄįnÃŃ": 122096, + "åıĬåħ¶": 122097, + "âĢħ": 122098, + "çĭ¼": 122099, + "ัà¸ļà¸ķ": 122100, + "ãģĽãĤĭ": 122101, + "ÎĻÎļÎŁ": 122102, + "λλι": 122103, + "ÑĤоÑİ": 122104, + "اعÙĬØ©": 122105, + "vÃŃce": 122106, + "онÑĸв": 122107, + "ì£Ħ": 122108, + "å»ł": 122109, + "ĠØ´ÙĬØ¡": 122110, + "ĠТем": 122111, + "Ġابزار": 122112, + "ĠTHPT": 122113, + "γγÏģαÏĨ": 122114, + "ĠëĮĢíķ´ìĦľ": 122115, + "ĠPhạm": 122116, + "ÑĨионной": 122117, + "|/": 122118, + "ĠãĤ¸ãĥ£": 122119, + "ÑĮÑİÑĤ": 122120, + "ÑĥзÑĭ": 122121, + "ĠÙħاد": 122122, + "ĠmÄĽly": 122123, + "ĠçĪ±": 122124, + "Ġrád": 122125, + "à¸Ħวà¸ļà¸Ħ": 122126, + "à¥Ī?": 122127, + "Ġlidi": 122128, + "mamız": 122129, + "Ġà¹ģà¸ģ": 122130, + "ãĤ¯ãĤ·ãĥ§ãĥ³": 122131, + "à¸Ńำà¸Ļวย": 122132, + "esát": 122133, + "Ġviêm": 122134, + "è¡ĮåĬ¨": 122135, + "มาà¸ģà¸ģว": 122136, + "ĠØ®ÙĪاب": 122137, + "Ġserbest": 122138, + "ÅĻÃŃz": 122139, + "ĠíĺĦëĮĢ": 122140, + "ãĢĮãģĿãģĨ": 122141, + "çĤ¸": 122142, + "omik": 122143, + "ĠÄ°ran": 122144, + "ĠeriÅŁ": 122145, + "ĠÑģела": 122146, + "ĠارزÛĮ": 122147, + "ãĥĪãĥª": 122148, + "ĠBÄĽ": 122149, + "екÑĥ": 122150, + "ЧÑĤобÑĭ": 122151, + "Ġanlamda": 122152, + "ÎijÎĺ": 122153, + "ĠLINEAR": 122154, + "æľīçĤ¹": 122155, + "ÑĤаÑĢ": 122156, + "itler": 122157, + "ĠnÃŃž": 122158, + "ĠСÑģÑĭлки": 122159, + "å¶": 122160, + "Ġвпол": 122161, + "ĠدÙĤÛĮÙĤÙĩ": 122162, + "Ġä½ĵ": 122163, + "رÙī": 122164, + "ëĶ°": 122165, + "Ġà¤ķव": 122166, + "ĠжиÑĢ": 122167, + "æijĨ": 122168, + "Ġì¤ijìĭ¬": 122169, + "ĠкÑĥб": 122170, + "Ġzlep": 122171, + "ĠÑĢÑĭб": 122172, + "é³´": 122173, + "à¹ģà¸ľà¸Ļ": 122174, + "ĠíĢ": 122175, + "ĠÐĿеÑĤ": 122176, + "žitÄĽ": 122177, + "ĠbÄĥng": 122178, + "ĠHava": 122179, + "Ġ모ëį¸": 122180, + "ĠHãy": 122181, + "ĠìĿ´ê²ĥ": 122182, + "ĠìĥģìĦ¸": 122183, + "memiÅŁ": 122184, + "ĠθÎŃÏĥη": 122185, + "णन": 122186, + "ĠskuteÄįnÄĽ": 122187, + "ĠTarihi": 122188, + "Ġtextu": 122189, + "ï¼ĮéĢĻ": 122190, + "ĠاÛĮÙĨترÙĨتÛĮ": 122191, + "Ġپاد": 122192, + "ิà¸Ļà¸ģาร": 122193, + "ĠNgá»įc": 122194, + "ĠÑĢобиÑĤи": 122195, + "íĸĪê³ł": 122196, + "Ġमण": 122197, + "ÐĽÐĺ": 122198, + "ĠпоÑĤеÑĢ": 122199, + "Ñģом": 122200, + "ĠاÙĪÙĦÛĮÙĩ": 122201, + "éĽij": 122202, + "ĠGiá": 122203, + "Ġkanal": 122204, + "Ġavantaj": 122205, + "Ġryb": 122206, + "ختÙĩ": 122207, + "ĠÙĪرÙĪد": 122208, + "ÐĴÑĤ": 122209, + "ÏīÏĥε": 122210, + "ê¸°ë¡ľ": 122211, + "ĠÐĽÑĸ": 122212, + "Ġtảng": 122213, + "ĠصÙĦÙī": 122214, + "ĠÑĥлÑĭ": 122215, + "Ġcuá»ijn": 122216, + "ĠÐIJнг": 122217, + "ĠداÙĪ": 122218, + "ĠÑĪлÑıÑħом": 122219, + "ĠÄįlovÄĽka": 122220, + "dete": 122221, + "ÑĬем": 122222, + "à¹Įà¹ĥà¸Ļ": 122223, + "à¤ķन": 122224, + "åĪ¤æĸŃ": 122225, + "ĸìĹIJ": 122226, + "ÏĦÏīÏĥη": 122227, + "ĠÙģÙĨاÙĪرÛĮ": 122228, + "ĠyaÅŁÄ±nda": 122229, + "ĠÏĥÏĩÎŃ": 122230, + "Ġyı": 122231, + "ĠpÅĻen": 122232, + "ĠÑĦоÑĢмÑĥваннÑı": 122233, + "ümÃ¼ÅŁ": 122234, + "Ġδο": 122235, + "ımızın": 122236, + "Ġé¢Ħ": 122237, + "оÑģÑĤÑĮÑİ": 122238, + "ĠоÑĤкÑĢÑĭÑĤ": 122239, + "Ġأغسطس": 122240, + "ĠAsp": 122241, + "ĠÑĥзн": 122242, + "ĠÙĪاست": 122243, + "elerle": 122244, + "èķī": 122245, + "ĠتکÙĨ": 122246, + "ÑĥмÑĥ": 122247, + "à¹Įà¸ĭ": 122248, + "ादन": 122249, + "ĠâĢĭâĢĭâĢĭ": 122250, + "Ġalıyor": 122251, + "Ġî¡": 122252, + "Ùħدة": 122253, + "ĠÏĥει": 122254, + "Ġè¿Ļ": 122255, + "ĠÅŀehir": 122256, + "енÑĤами": 122257, + "ãĤ¿ãĥ«": 122258, + "หาย": 122259, + "айÑĤ": 122260, + "Ġharc": 122261, + "ãĢĤãģĬ": 122262, + "ĠتأثÛĮر": 122263, + "าà¸Ĭà¸Ļ": 122264, + "ĠtháºŃm": 122265, + "Ġæ¿": 122266, + "ĠmÅ©i": 122267, + "ĠprvnÃŃm": 122268, + "ĠбагаÑĤÑĮ": 122269, + "ãģķãĤīãģ«": 122270, + "biên": 122271, + "åºĶå½ĵ": 122272, + "ìĿ´ë²Ħ": 122273, + "ĠpoužÃŃt": 122274, + "Ġokamž": 122275, + "esin": 122276, + "vÄĽl": 122277, + "ĠضÙĪ": 122278, + "è»Ł": 122279, + "-з": 122280, + "à¥Īत": 122281, + "è¨Īç®Ĺ": 122282, + "rabilir": 122283, + "ĠÐłÐ¾ÑģÑĸÑĹ": 122284, + "ĠplatÃŃ": 122285, + "ĠdospÄĽl": 122286, + "Ġرضا": 122287, + "Ġnového": 122288, + "ĠнаÑĨионалÑĮ": 122289, + "ĠÐIJб": 122290, + "ãģĮãģĤãģ£ãģŁ": 122291, + "Ġë¹Ī": 122292, + "âĢĮÙħ": 122293, + "å±ŀäºİ": 122294, + "Ġtane": 122295, + "ÙĬاÙĩ": 122296, + "Ġβο": 122297, + "ĠëĬ¥": 122298, + "ãĥĩãĤ£ãĥ¼ãĤ¹": 122299, + "ĠØ°Ùĥر": 122300, + "Ġobvykle": 122301, + "Ġbirinci": 122302, + "ĠاÙĦزر": 122303, + "ìĿ´ë¹Ħ": 122304, + "Ġإد": 122305, + "ĠEkon": 122306, + "ÐŁÐ¾Ð»": 122307, + "ĠвеÑĢоÑıÑĤ": 122308, + "Ġyararlan": 122309, + "ĠаÑĢом": 122310, + "ĠéĦ": 122311, + "Ġiddi": 122312, + "iÄįka": 122313, + "strukce": 122314, + "mÃ¼ÅŁtür": 122315, + "ÏħÏĦÏĮ": 122316, + "롱": 122317, + "Ġalmaktadır": 122318, + "ениÑıми": 122319, + "ียà¸Ļร": 122320, + "à¹ĩà¸Ļว": 122321, + "икÑĥ": 122322, + "енка": 122323, + "âĢĻyi": 122324, + "Ġpohod": 122325, + "Ġزر": 122326, + "Ġxấu": 122327, + "Ġà¸łà¸²à¸©": 122328, + "ÂłÐŀ": 122329, + "Ġδικ": 122330, + "Ġназива": 122331, + "åıªèĥ½": 122332, + "大éĩı": 122333, + "ĠÄijế": 122334, + "Ġ第äºĮ": 122335, + "ĠkiÅŁilerin": 122336, + "Ġdobré": 122337, + "驾": 122338, + "Ġdůležité": 122339, + "롤": 122340, + "μÎŃνοÏħ": 122341, + "Ġtrú": 122342, + "Ġbiçim": 122343, + "ĠÐĿÐIJ": 122344, + "Ġå¾Į": 122345, + "Ġduyg": 122346, + "åŀĤ": 122347, + "ÐĨÐĨ": 122348, + "Ġetmeye": 122349, + "ĠÙĦباس": 122350, + "ĠдвÑĸ": 122351, + "Ġ긴": 122352, + "ÑĨÑĸйно": 122353, + "κÏĦή": 122354, + "ï½Ŀ": 122355, + "ĠÑĦевÑĢалÑı": 122356, + "寫": 122357, + "Ġ겨": 122358, + "Ġyıllarda": 122359, + "ĠзÑĥп": 122360, + "ĠobchodnÃŃ": 122361, + "ĠاضاÙģÙĩ": 122362, + "веÑĢж": 122363, + "Ġæłĩ": 122364, + "جاج": 122365, + "ĠرÙĪسÛĮ": 122366, + "Ġstandart": 122367, + "éru": 122368, + ")ìĿĦ": 122369, + "декÑģ": 122370, + "ĠâĪļ": 122371, + "ĠÄ°ngilizce": 122372, + "èĬĿ": 122373, + "身ä¸Ĭ": 122374, + "ØŁØŁ": 122375, + "Ġmẽ": 122376, + "ÎijÎĶ": 122377, + "енÑģив": 122378, + "âĢĻta": 122379, + "à¹īาà¸ģ": 122380, + "ÎŁÎĽÎŁÎĵ": 122381, + "ä»ĺãģij": 122382, + "ĠsÃłng": 122383, + "Ġà¤¹à¤Ł": 122384, + "ÑĭÑĪлен": 122385, + "Ġخطر": 122386, + "ĠнайÑĤи": 122387, + "çĽ¸ä¿¡": 122388, + "Ïīδ": 122389, + "à¤Ķ": 122390, + "Ġdopad": 122391, + "à¹Ħà¸Łà¸¥": 122392, + "æģµ": 122393, + "íĤ¬": 122394, + "Ä±ÅŁma": 122395, + "ãģıãĤĮãģŁ": 122396, + "Ġnaprost": 122397, + "ĠÑģоÑģÑĤаве": 122398, + "ĠÙĪسط": 122399, + "à¹ķ": 122400, + "éĸĭçĻº": 122401, + "ĠдеÑĢева": 122402, + "-ÐĶ": 122403, + "à¸ĩà¸Ĭ": 122404, + "ิà¸ķย": 122405, + "ĠاÙĦÙĤاÙĨÙĪÙĨ": 122406, + "ãĤ¹ãĤ«": 122407, + "lÃŃž": 122408, + "Ġанализ": 122409, + "Ġproblémy": 122410, + "æĸĩåѦ": 122411, + "çĹħéĻ¢": 122412, + "Ñģед": 122413, + "ï¼Įå°ı": 122414, + "ĠعشÙĤ": 122415, + "ãģ°ãģĭãĤĬ": 122416, + "ĠعÙĤد": 122417, + "ØŃÙĬØ©": 122418, + "Ġë°ĶëŀįëĭĪëĭ¤": 122419, + "inclu": 122420, + "Ġëĵľë¦½ëĭĪëĭ¤": 122421, + "åį«çĶŁ": 122422, + "ĠвидÑĥ": 122423, + "ุà¸ļาล": 122424, + "ÑĢÑĥкÑĤ": 122425, + "ĠоÑģвÑĸÑĤ": 122426, + "Ġvelký": 122427, + "ĠchtÄĽl": 122428, + "æīĵå¼Ģ": 122429, + "ĠзаконодаÑĤелÑĮ": 122430, + "анÑģи": 122431, + "ì¶ĺ": 122432, + "ĠÙħراج": 122433, + "åģľæŃ¢": 122434, + "Ġвоно": 122435, + "ìłķìĿ´": 122436, + "Ġrozsah": 122437, + "ĠæĻ´": 122438, + "Ġzajist": 122439, + "ÂłÐ¼": 122440, + "tıģını": 122441, + "Ġhizmeti": 122442, + ".Îij": 122443, + "ĠÙħعÙħÙĪÙĦا": 122444, + "Ġži": 122445, + "Ġgá»įn": 122446, + "èĮĤ": 122447, + "Ġhuz": 122448, + "ζει": 122449, + "à¥īà¤Ł": 122450, + "Ġиздел": 122451, + "ìŀĸ": 122452, + "ĠëĶ°ë¥¸": 122453, + "Ġkia": 122454, + "ĠznÄĽnÃŃ": 122455, + "ĠоÑĢганиза": 122456, + "ازات": 122457, + "Ġrežim": 122458, + "ĠвенÑĤи": 122459, + "bách": 122460, + "ĠодномÑĥ": 122461, + "Ġkitab": 122462, + "Ġfrancouz": 122463, + "ĠØ£ÙĦ": 122464, + "ĠسرÙĪ": 122465, + "ÙijÙĦ": 122466, + "Ġман": 122467, + "ë°į": 122468, + "ĠкÑĥда": 122469, + "Ùıس": 122470, + "ãĢĤæѤ": 122471, + "اشة": 122472, + "à¸Ĥà¸Ńà¸ĩà¸ľ": 122473, + "主任": 122474, + "ивÑĪи": 122475, + "Ġà¸ģรà¸ģ": 122476, + "екÑģи": 122477, + "иÑĤеÑĤ": 122478, + "ĠØ£ÙĦÙģ": 122479, + "аними": 122480, + "ãĥļãĥ¼ãĤ¸": 122481, + "ĠпÑĢавил": 122482, + "åªĴä½ĵ": 122483, + "ÑİÑīее": 122484, + "ä¸Ģ人": 122485, + "βο": 122486, + "ìĭ¸": 122487, + "озна": 122488, + "å¤īæĽ´": 122489, + "ĠÙħØ´Ùĩد": 122490, + "æ³ķ人": 122491, + "ĠBakanı": 122492, + "ĠÑħоÑĩа": 122493, + "Ġαξ": 122494, + "Ġverilm": 122495, + "Ġkonus": 122496, + "μενη": 122497, + "Ġ馬": 122498, + "Ġìĭ¤ìłľ": 122499, + "Ġjedno": 122500, + "Ġбаб": 122501, + "åĥį": 122502, + "æĺ¯ä¸Ģ个": 122503, + "-е": 122504, + "ĠpÅĻekvap": 122505, + "à¸Ńà¸ŀ": 122506, + "ĠYol": 122507, + "ĠÑĥÑģÑĤанавлива": 122508, + "ê²¼": 122509, + "Ġ件": 122510, + "اÙĦØ´": 122511, + "ĠобÑĥÑĩ": 122512, + "åĺĽ": 122513, + "ĠÑħоÑĩÑĥ": 122514, + "ĠÐķв": 122515, + "ÑĦоÑĢÑĤ": 122516, + "Ġरन": 122517, + "âĢŀV": 122518, + "èľľ": 122519, + "Ġdoma": 122520, + "æĶ¯æı´": 122521, + "Ġاخت": 122522, + "循": 122523, + "à¥Ĥà¤ļन": 122524, + "ाहन": 122525, + "Ġå¤ı": 122526, + "ĠاÙĦØ£Ùħر": 122527, + "ĠбеÑĢеменноÑģÑĤи": 122528, + "ĠThá»±c": 122529, + "é£İéĻ©": 122530, + "Ġülkemiz": 122531, + "çķªåı·": 122532, + "ÑģÑĤÑĢе": 122533, + "ÑĪло": 122534, + "ĠصاØŃب": 122535, + "ινε": 122536, + "ĠKıs": 122537, + "ĠPrahy": 122538, + "湿": 122539, + "Ġvým": 122540, + "çĽĴ": 122541, + "ÎŁÎĶ": 122542, + "ãģłãģª": 122543, + "ĠpÅĻÃŃležit": 122544, + "Ġìĸ¸ìłľ": 122545, + "ĠÑĪвидко": 122546, + "Ġsituaci": 122547, + "åħĥç´ł": 122548, + "Ä°TESÄ°": 122549, + "ĠVak": 122550, + "Ġneredeyse": 122551, + "iiii": 122552, + "ÑĢазд": 122553, + "ĠполиÑĤ": 122554, + "Ġпогод": 122555, + "ĠпÑĢоÑĨеÑģÑģе": 122556, + "ĠменÑĪе": 122557, + "äºĮ人": 122558, + "ĠÙħÙĪاط": 122559, + "ĠpÅĻik": 122560, + "è·¡": 122561, + "Ġserg": 122562, + "ĠÑĢаÑģÑģÑĤоÑı": 122563, + "иÑĩно": 122564, + "ĠÎĶÎĹÎľ": 122565, + "¨ط": 122566, + "صبØŃ": 122567, + "สะà¸Ķวà¸ģ": 122568, + "درÛĮ": 122569, + "kům": 122570, + "ç§ģãģ¯": 122571, + "Ġtvor": 122572, + "à¥įवव": 122573, + "ĠpÅĻiv": 122574, + "Ġíı´": 122575, + "Ġstátu": 122576, + "ĠedilmiÅŁtir": 122577, + "ØŃÙħ": 122578, + "ĠбÑĥÑħ": 122579, + "สำà¹Ģร": 122580, + "ĠتÙĪضÛĮ": 122581, + "ãģĿãĤĮãģ¯": 122582, + "Ġà¤ħवध": 122583, + "éŀĭ": 122584, + "âĤ¬Ċ": 122585, + "Ġéº": 122586, + "ĠÄĮes": 122587, + "Ġpoprvé": 122588, + "ï¼ĮåĽł": 122589, + "ĠalmÄ±ÅŁ": 122590, + "lal": 122591, + "ĠØ®ÙĪبÛĮ": 122592, + "ĠκοÏģ": 122593, + "ìļ´ëıĻ": 122594, + "mayın": 122595, + "Ġaktif": 122596, + "ĠاÙĨجÙħÙĨ": 122597, + "ĠÑģÑĤак": 122598, + "ĠÑģÑĤаÑĢа": 122599, + "ÙĦÙģØ©": 122600, + "Ġparçası": 122601, + "ĠкоÑĢпÑĥÑģ": 122602, + "ãĢģé«ĺ": 122603, + "!..": 122604, + "ĠÎłÎijÎĿ": 122605, + "ĠÙĩÙĨÙĪز": 122606, + "ionálnÃŃ": 122607, + "ĠprávnÃŃ": 122608, + "ÂĿ": 122609, + "ĠتÛĮر": 122610, + "ĠåŁİ": 122611, + "Ġзгад": 122612, + "Ġsaldırı": 122613, + "æŁ¥çľĭæijĺè¦ģ": 122614, + "髪": 122615, + "ÙģصÙĦ": 122616, + "ãģĻãģ¹ãģ¦": 122617, + "ево": 122618, + "ê´Ģ리ìŀIJ": 122619, + "ĠìĺĨ": 122620, + "udicots": 122621, + "ÙĪرÙĨ": 122622, + "Ġcelkem": 122623, + "ãĤ¤ãĤº": 122624, + "ìĬ¤ê°Ģ": 122625, + "販売": 122626, + "ĠíĮĮìĿ¼ì²¨ë¶Ģ": 122627, + "뢰": 122628, + "Ġenergie": 122629, + "esidir": 122630, + "Ġmiá»ĩng": 122631, + "éĻ·": 122632, + "ĠгаÑĢа": 122633, + "Ġbiliyor": 122634, + "çį²å¾Ĺ": 122635, + "еÑĤеÑĢб": 122636, + "à¹Īาà¹Ģà¸Ľ": 122637, + "Ġμαζί": 122638, + "ĠzpracovánÃŃ": 122639, + "Ñģм": 122640, + "Ġhala": 122641, + "ĠزÙĪج": 122642, + "ĠвÑĸднов": 122643, + "à¹Ģหมาะ": 122644, + "ĠÐłÐµÑģпÑĥбли": 122645, + "åĩºåĵģèĢħ": 122646, + "Ñīини": 122647, + "ัà¸Ļà¹Ģà¸Ľ": 122648, + "Ġtýden": 122649, + "ĠبÙĬت": 122650, + "ÑģкомÑĥ": 122651, + "ĠÙĩÙĪاپÛĮÙħ": 122652, + "оÑģнов": 122653, + "鸣": 122654, + "Ġsoukrom": 122655, + "Ġfaiz": 122656, + "Ġdemok": 122657, + "Ġkterém": 122658, + "Ġëħ¹": 122659, + "лаÑĩ": 122660, + "ĠоÑĤвеÑĤÑģÑĤвен": 122661, + "Ġï¼¼:": 122662, + "Ġλο": 122663, + "ÄĮesk": 122664, + "ê°ĢìļĶ": 122665, + "ĠãĥĬ": 122666, + "ĠnhuáºŃn": 122667, + "ĠÑģили": 122668, + "ĠÐľÐ¾Ð½": 122669, + "Ġçap": 122670, + "ĠRowBox": 122671, + "ĠмаÑģÑĤ": 122672, + "ĠÐľÐ°": 122673, + "ĠдÑĢÑĥго": 122674, + "Ġأش": 122675, + "ë°©ìĨ¡": 122676, + "ĠпÑĸдпиÑģ": 122677, + "èĩ¨": 122678, + "åī©": 122679, + "Ġhiá»ĥn": 122680, + "ĠÙĤرارد": 122681, + "istrat": 122682, + "ÐŁÑĸд": 122683, + "ÏĦεÏģα": 122684, + "ĠpozdÄĽ": 122685, + "ĠbaÅŁta": 122686, + "夫人": 122687, + "лини": 122688, + "ĠкаÑĩеÑģÑĤва": 122689, + "Ġkurtul": 122690, + "Ġì¢Į": 122691, + "ãģ«ãģĬãģijãĤĭ": 122692, + "åľ°åįĢ": 122693, + "ĠÑĩаÑģом": 122694, + "ìµľê³ł": 122695, + "Ġngang": 122696, + "اÙĩد": 122697, + "ĠШев": 122698, + "ĠpÅĻitom": 122699, + "Ġchấm": 122700, + "ĠÐľÐµÑģÑĤо": 122701, + "ĠÑģовеÑĢÑĪенно": 122702, + "ÃŃcÃŃ": 122703, + "Ńå·ŀ": 122704, + "åĪĽæĸ°": 122705, + "äºĶæľĪ": 122706, + "ĠاعÙħاÙĦ": 122707, + "ĠвозможноÑģÑĤи": 122708, + "ĠпÑĢодовж": 122709, + "nÄĽt": 122710, + "ĠÐĿапÑĢимеÑĢ": 122711, + "ĠاÙĦدÙħ": 122712, + "Ġà¹ģà¸ļà¸ļ": 122713, + "çĶŁçļĦ": 122714, + "ĠÑħаÑĢÑĩ": 122715, + "ĠSonuç": 122716, + "Ġrůzné": 122717, + "Ġاذ": 122718, + "à¸ķà¸Ńà¸ļ": 122719, + "PÅĻed": 122720, + "ĠдеÑĢевÑıн": 122721, + "ë´IJ": 122722, + "ĠëĬIJëĤ": 122723, + "جÙħÙĬع": 122724, + "ĠBöylece": 122725, + "èµı": 122726, + "ĠبسÙĬ": 122727, + "ĠÃĩaÄŁ": 122728, + "ĠتاÛĮ": 122729, + "ĠnejvyÅ¡Å¡ÃŃ": 122730, + "èĸ©": 122731, + "ÏĩεδÏĮν": 122732, + "Ġëĵ±ìĿĺ": 122733, + "eyh": 122734, + "æĸĻçIJĨ": 122735, + "اتÙĩ": 122736, + "æī«": 122737, + "Ġå©": 122738, + "ĠпÑĢивед": 122739, + "æī¶": 122740, + "Ġ견": 122741, + "ĠاÙħÛĮر": 122742, + "ायल": 122743, + "æ¡ij": 122744, + "à¸Ļà¹Ģà¸ķ": 122745, + "илакÑĤи": 122746, + "家ä¼Ļ": 122747, + "Ġbulunuyor": 122748, + "ysa": 122749, + "ÂĨ": 122750, + "ĠBÄ°R": 122751, + "íĨ¤": 122752, + "à¤Ĥà¤Ĺà¤łà¤¨": 122753, + "ÎĶεν": 122754, + "à¥Įà¤ķर": 122755, + "éĸĵãģ«": 122756, + "Ġмоб": 122757, + "ĠMorav": 122758, + "è§ĦåĪĴ": 122759, + "ĠÑģвÑĸÑĤÑĸ": 122760, + "ults": 122761, + "ĠzemÃŃ": 122762, + "ÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂł": 122763, + "ĠÐŁÐ¾Ð¿": 122764, + "ãģĤãģĴ": 122765, + "Ġpomoci": 122766, + "ĠзмÑĸÑģÑĤ": 122767, + "主人": 122768, + "ĠSı": 122769, + "ãĥĽãĥĨãĥ«": 122770, + "ĠÑĥвагÑĥ": 122771, + "廳": 122772, + "à¹Ģมà¸ķร": 122773, + "estli": 122774, + "Ġloạt": 122775, + "ãĤ¢ãĥ¼": 122776, + "ĠÎĶε": 122777, + "Ġbunları": 122778, + "ĠçĤ¹åĩ»": 122779, + "ĠBÃłi": 122780, + "Ġä¸ĸ": 122781, + "Ġê³łê°ľë¥¼": 122782, + "ĠÐŃÑĤоÑĤ": 122783, + "Ġmemnun": 122784, + "Ġ।Ċ": 122785, + "ĠиÑģÑĤоÑĢии": 122786, + "Ġì°©": 122787, + "१९": 122788, + "ĠÐŀднак": 122789, + "Ġvede": 122790, + "ÏĨÎŃÏģει": 122791, + "âb": 122792, + "çĬ¶åĨµ": 122793, + "åįıè®®": 122794, + "Ġê°Ŀ": 122795, + "евид": 122796, + "jmu": 122797, + "ĠколиÑĩеÑģÑĤва": 122798, + "ÃĽ": 122799, + "iÄįe": 122800, + "Ġfirmalar": 122801, + "èĢĢ": 122802, + "кÑĸн": 122803, + "ĠêµŃ민": 122804, + "Ġ목ë¡Ŀ": 122805, + "ĠÎļαÏģ": 122806, + "Ġhissed": 122807, + "K": 122808, + "ĠTên": 122809, + "ĠÑĤÑĭÑģÑıÑĩ": 122810, + "ØŃÙĬØŃ": 122811, + "Ġвполне": 122812, + "ĠSınıf": 122813, + "Ġμην": 122814, + "Ġíij¸": 122815, + "ĠاÙĦطبÙĬ": 122816, + "ĠزÛĮب": 122817, + "ĠпÑĥ": 122818, + "Ġpraž": 122819, + "ìĹĨëĬĶ": 122820, + "θÏģÏī": 122821, + "Ġiçi": 122822, + "ĠбÑĸл": 122823, + "ÐłÑij": 122824, + "Ġì¶ķ구": 122825, + "Ġlạ": 122826, + "ĠãĥķãĤ¡": 122827, + "Ġèĸ": 122828, + "μαÏĦο": 122829, + "éĩijå±ŀ": 122830, + "áli": 122831, + "ĠÙģØ£": 122832, + "ĠKarlov": 122833, + "ĠZáp": 122834, + "ãĥªãĥ³ãĤ°": 122835, + "abilmek": 122836, + "ĠСи": 122837, + "ĠcÃŃrk": 122838, + "Ġká»ĭp": 122839, + "Ġà¤ijनल": 122840, + "ĠÙĪØŃدة": 122841, + "ãĥĭãĥĥãĤ¯": 122842, + "ĠnÆ°á»Ľng": 122843, + "ĠакÑĤÑĥ": 122844, + "å¸ĿåĽ½": 122845, + "Ġnázev": 122846, + "ĠÑĢемонÑĤ": 122847, + "ĠÑĢинкÑĥ": 122848, + "ĠÏĢάνÏī": 122849, + "ÏĦικο": 122850, + "ĠìĤ¼ìĦ±": 122851, + "ĠÑģимпÑĤомÑĭ": 122852, + "ĠÑĢанÑĸÑĪе": 122853, + "ĠJá": 122854, + "ĠÑģÑĩиÑĤаеÑĤÑģÑı": 122855, + "ĠпоÑĢÑĸв": 122856, + "ĠÐľÐ°Ð»": 122857, + "éĿ¢ç§¯": 122858, + "ĠÙĦغ": 122859, + "ĠجشÙĨ": 122860, + "Ġнедели": 122861, + "Ġì¦Ŀê°Ģ": 122862, + "ãĨįëıĻ": 122863, + "Ġlượt": 122864, + "ĠÄIJá»ĭnh": 122865, + "Ġà¸Ńà¸Ńà¸Ļà¹Ħลà¸Ļ": 122866, + "Ġyaparak": 122867, + "ĠÄijai": 122868, + "ĠоÑĦиÑĨи": 122869, + "ĠεμÏĢ": 122870, + "ξειÏĤ": 122871, + "ĠконÑĦеÑĢен": 122872, + "Ġarası": 122873, + "à¸ķา": 122874, + "Ġë´IJ": 122875, + "ована": 122876, + "ì§Ģê°Ģ": 122877, + "ĠVám": 122878, + "à¤¿à¤ľà¤¨": 122879, + "Ġç¼ĸè¾ij": 122880, + "ζÏĮ": 122881, + "ĠÏĦÏģÏĮ": 122882, + "Ġücretsiz": 122883, + "ĠکاÙħÙĦا": 122884, + ":::/": 122885, + "à¹ĮĊĊ": 122886, + "Ġéĸ¢éĢ£": 122887, + "Ġkara": 122888, + "Ġбезпеки": 122889, + "ĠzmÄĽny": 122890, + "Ġê¿Ī": 122891, + "vrd": 122892, + "liÄŁine": 122893, + "ĠاÙĨتخابات": 122894, + "ĠдоÑģвÑĸд": 122895, + "Ġkterého": 122896, + "енÑĤом": 122897, + "ê³µë¶Ģ": 122898, + "ìłĿ": 122899, + "Ġë§Į족": 122900, + "Ġæij": 122901, + "åĩºåı£": 122902, + "建议": 122903, + "оÑĤÑı": 122904, + "ĠÒij": 122905, + "íĶĦë¡ľ": 122906, + "Ġgió": 122907, + "ãĤ·ãĤ§": 122908, + "ĠλεÏĢ": 122909, + "íķĺ볤": 122910, + "Ġyoksa": 122911, + "Ġistih": 122912, + "V": 122913, + "ĠاÙĦعÙħ": 122914, + "Ġکارگرد": 122915, + "à¹Ģà¸ŀราะ": 122916, + "Ġnových": 122917, + "ĠÑģна": 122918, + "Ġsana": 122919, + "वत": 122920, + "Ä±ÅŁman": 122921, + "åı¦å¤ĸ": 122922, + "ì¶ľìŀ¥ìĥµ": 122923, + "婦": 122924, + "ĠкоÑĪÑĤÑĸв": 122925, + "ĠÙĪاÙĦÙĨ": 122926, + "ĠباÙĦØ¥": 122927, + "ĠæĬĢ": 122928, + "Ġмноже": 122929, + "à¥Ĥड": 122930, + "ĠCục": 122931, + "Ġevet": 122932, + "èģĶåIJĪ": 122933, + "Ġ³³Ġ³³Ġ³³Ġ³³": 122934, + "çļĦå¿ĥ": 122935, + "Ġdáng": 122936, + "اÛĮسÙĩ": 122937, + "Ġerken": 122938, + "泡": 122939, + "ائب": 122940, + "Ġyapıldı": 122941, + "ĠQuản": 122942, + "æĹ¶ä»£": 122943, + "ìĽ¨ìĸ´": 122944, + "ĠгÑĸÑĢ": 122945, + "okoj": 122946, + "Ùĥرة": 122947, + "Ñİк": 122948, + "Ġvýj": 122949, + "Ġhodiny": 122950, + "ĠелекÑĤÑĢон": 122951, + "mıyor": 122952, + "ĠìŀĪëĭ¤ëĬĶ": 122953, + "à¹īà¹ī": 122954, + "иÑĤелÑĮное": 122955, + "Ġyıllar": 122956, + "Äıte": 122957, + "ĠÄįinnost": 122958, + "ุà¸ĵà¸łà¸²à¸ŀ": 122959, + "íĵ¨": 122960, + "нг": 122961, + "ูรà¸ĵ": 122962, + "ĠпоÑĢÑıдке": 122963, + "Ġëĭ¹ìĭľ": 122964, + "ĠÐľÐ¾Ñģков": 122965, + "Ġkred": 122966, + "urum": 122967, + "ĠÑĤÑı": 122968, + "Ú©ÙĨاÙĨ": 122969, + "дии": 122970, + "ÑĢимÑĸн": 122971, + "ĠоÑĢганизм": 122972, + "ĠéĽĨ": 122973, + "ιÏĥÏĦο": 122974, + "ä¿¡çĶ¨": 122975, + "åįģåĽĽ": 122976, + "à¹Īà¹ĥà¸Ĭ": 122977, + "ĠÑĥвид": 122978, + "ัà¸ĩà¸ģล": 122979, + "åı¦ä¸Ģ": 122980, + "ãĥ«ãĥķ": 122981, + "ัà¸ļà¸Ľà¸£": 122982, + "ĠÃľst": 122983, + "説æĺİ": 122984, + "вай": 122985, + "аÑĩе": 122986, + "欣": 122987, + "Ġkatıl": 122988, + "ĠCem": 122989, + "ĠاÙĦجÙĩ": 122990, + "ĠгÑĢÑĥз": 122991, + "ĠзаÑģÑĤав": 122992, + "cılar": 122993, + "ĠÑħоÑĤел": 122994, + "ĠsnÃŃm": 122995, + "ï¼Į被": 122996, + "ĠвиÑī": 122997, + "Ġdemokrat": 122998, + "à¥ĩà¤Łà¤°": 122999, + "åij¨å¹´": 123000, + "Ġodpad": 123001, + "ĠdaÅĪ": 123002, + "Ġ代": 123003, + "à¹ĩà¸Ļà¸Ń": 123004, + "ĠÑģколÑĮко": 123005, + "ĠαÏĨ": 123006, + "ĠpÅĻesvÄĽd": 123007, + "Ġåĵģ": 123008, + "ĠинÑĦоÑĢмаÑĨии": 123009, + "çĽĹ": 123010, + "ãģ¾ãģ¨": 123011, + "ĠÑģамов": 123012, + "Ġpocit": 123013, + "Ġíݸì§ij": 123014, + "ĠÑģмеÑģÑĮ": 123015, + "ĠpojiÅ¡tÄĽnÃŃ": 123016, + "ãģ®ãĤĤ": 123017, + "à¹Īาà¸ģาร": 123018, + "ĠÛĮÙĪÙĨ": 123019, + "Ġ기ìĸµ": 123020, + "ickými": 123021, + "alace": 123022, + "éĽ»å½±": 123023, + "ÑİваннÑı": 123024, + "缸åIJĮ": 123025, + "ĠãĢĥ": 123026, + "ĠдокÑĥменÑĤÑĸв": 123027, + "ï¼¹": 123028, + "åĪ°åºķ": 123029, + "óz": 123030, + "ĠAhmet": 123031, + "ĠÙħساØŃت": 123032, + "Ġhlavou": 123033, + "ülebilir": 123034, + "ãĢĤä½ł": 123035, + "à¹ĩà¸ģà¸Ĭาย": 123036, + "¤¤": 123037, + "ĠæĦı": 123038, + "ĠcháºŃm": 123039, + ".д": 123040, + "Ġcca": 123041, + "Ġolumsuz": 123042, + "Âŀ": 123043, + "çĬ¬": 123044, + "ĠпоÑģÑĤоÑıнно": 123045, + "Ġ.**************Ċ": 123046, + "Ġاستر": 123047, + "ĠдалÑĮней": 123048, + "ůr": 123049, + "ä¿ĿèŃ·": 123050, + "боÑĢаÑĤоÑĢ": 123051, + "÷": 123052, + "ÏĥÏĦαν": 123053, + "ĠÙģÙĬÙĦÙħ": 123054, + "çek": 123055, + "ìŀIJ기": 123056, + "Ġæ¥Ń": 123057, + "нÑĸп": 123058, + "èīĩ": 123059, + "Ġmoci": 123060, + "ìľµ": 123061, + "리그": 123062, + "ĠÐļо": 123063, + "éĤ£éĩĮ": 123064, + "ĠСÑĤаÑĢ": 123065, + "ĠتÙĪاÙĨÛĮد": 123066, + "Ġnguyá»ĩn": 123067, + "Ġสามารà¸ĸ": 123068, + "ÑĸÑĩна": 123069, + "Ġ被": 123070, + "ุà¸ķสาหà¸ģรรม": 123071, + "Ġعصر": 123072, + "ĠÃľNÄ°VERS": 123073, + "Ġtehdy": 123074, + "ĠÙĪصÙĦات": 123075, + "ä¿Ŀè¯ģ": 123076, + "ĠEudicots": 123077, + "ĠÎłÎŃ": 123078, + "建è¨Ń": 123079, + "ĠìłĦêµŃ": 123080, + "ĠØŃÛĮ": 123081, + "ãĤ¤ãĥĦ": 123082, + "ĠØŃاصÙĦ": 123083, + "ĠجÙĨÙĪبÛĮ": 123084, + "ãĢģæĹ¥æľ¬": 123085, + "ÃĻ": 123086, + "Ġà¸Ĺาà¸ĩ": 123087, + "ĠÙĨØŃÙĪ": 123088, + "اÙĩÙĬÙħ": 123089, + "å¾Įãģ«": 123090, + "à¸Īะà¹Ħà¸Ķ": 123091, + "åĩłä¸ª": 123092, + "à¥ģà¤ģ": 123093, + "ëĮĢìĿĺ": 123094, + "ĠlÃłn": 123095, + "ìĽĶë¶ĢíĦ°": 123096, + "Æł": 123097, + "Ġеди": 123098, + "Ġspis": 123099, + "æľīä»Ģä¹Ī": 123100, + "Ġnebyla": 123101, + "Ġíķ´ìĻ¸": 123102, + "ë¡ľë¶ĢíĦ°": 123103, + "аÑĢÑħ": 123104, + "lili": 123105, + "Ġíķĺ루": 123106, + "maması": 123107, + "ÑĩаеÑĤ": 123108, + "ĠØŃاÙĦØ©": 123109, + "ĠBölüm": 123110, + "缸éĹľ": 123111, + "ĠдÑĢÑĥгими": 123112, + "çĽ£çĿ£": 123113, + "à¥Īà¤ľ": 123114, + "ĠعبداÙĦÙĦÙĩ": 123115, + "Ġè¿ŀ": 123116, + "ĠÐľÐ¸Ð½": 123117, + "Ġ기ëĭ¤": 123118, + "Ġ공격": 123119, + "è¡Įåĭķ": 123120, + "ामà¤ķ": 123121, + "æ±Ĥè´Ń": 123122, + "模åŀĭ": 123123, + "ÑģоÑĢ": 123124, + "rane": 123125, + "à¹ĩà¸Īà¸ŀระ": 123126, + "ĠÙħسÛĮر": 123127, + "è£ħç½®": 123128, + "ìķ¤": 123129, + "nÄĽjÅ¡ÃŃch": 123130, + "αλÏįÏĦε": 123131, + "ĠHakk": 123132, + "访éĹ®": 123133, + "ĠÑĤеÑĩ": 123134, + "ĠLá»ĭch": 123135, + "ĠدشÙħÙĨ": 123136, + "ÎĮ": 123137, + "ĠÏĢε": 123138, + "Ġзамов": 123139, + "Ġbirim": 123140, + "ãĤ·ãĤ¹ãĥĨãĥł": 123141, + "ĠÏĢÏģοÏĬ": 123142, + "ĬìĿĢ": 123143, + "виг": 123144, + "ĠëıħìĿ¼": 123145, + "ĠÑĢеволÑİ": 123146, + "Ġé¦Ļ港": 123147, + "Ġlez": 123148, + "ĠبÛĮÙħار": 123149, + "Ġduygu": 123150, + "Ġ뼰": 123151, + "Ġamacı": 123152, + "à¥įयप": 123153, + "ĠìŀIJìĦ¸": 123154, + "اÙĪÛĮر": 123155, + "Ġspole": 123156, + "ÃĸL": 123157, + "Ġجع": 123158, + "ÙĦÛĮÙħ": 123159, + "ãģªãģ©ãģ®": 123160, + "à¸Ľà¸£à¸°à¸ªà¸ļ": 123161, + "ĠnaÅ¡ich": 123162, + "ĠпÑĢедÑģÑĤавлÑıеÑĤ": 123163, + "Ġздоб": 123164, + "Ġobou": 123165, + "Ø®ÙĪاÙĨ": 123166, + "ãĥ¬ãĥĥãĥĪ": 123167, + "одейÑģÑĤв": 123168, + "کرÛĮ": 123169, + "ĠاتاÙĤ": 123170, + "ĠÑįкÑģплÑĥаÑĤа": 123171, + "ï½¢": 123172, + "ĠÙĦÙĦØ¥": 123173, + "ĠاÙĦÙĨظاÙħ": 123174, + "ĠíĶĦëŀijìĬ¤": 123175, + "ısıt": 123176, + "åŃĻ": 123177, + "Ġžádný": 123178, + "ÙĤÙī": 123179, + "ัà¸ģà¹Ģร": 123180, + "Ġë²łìĬ¤íĬ¸": 123181, + "Ġãĥ«": 123182, + "åıĶ": 123183, + "nické": 123184, + "ĠειÏĥ": 123185, + "ãĥ«ãĥī": 123186, + "ĠدارÙħ": 123187, + "Ġгем": 123188, + "ĠåѸ": 123189, + "ानसà¤Ń": 123190, + "ализи": 123191, + "ованÑĸ": 123192, + "Ġобо": 123193, + "ìłĦìĹIJ": 123194, + "ĠSinh": 123195, + "ĠÙĨع": 123196, + "ĠоблаÑģ": 123197, + "ÏħÏĢ": 123198, + "èĥ¶": 123199, + "Ġazalt": 123200, + "åħ¨éĿ¢": 123201, + "ĠKromÄĽ": 123202, + "ĠCz": 123203, + "æĬ¥åIJį": 123204, + "ĠnásledujÃŃcÃŃ": 123205, + "ĠнапÑĢиклад": 123206, + "ãģªãģijãĤĮãģ°": 123207, + "à¸Ńาย": 123208, + "çľĭçľĭ": 123209, + "Ġà¸ģรà¸ģà¸İ": 123210, + "ednou": 123211, + "ازÙĦ": 123212, + "ãĢģæľ¬": 123213, + "еÑģи": 123214, + "Ġtarz": 123215, + "ãĢĢï¾Ĭ": 123216, + "Ġrozum": 123217, + "ãĤ«ãĥ¼ãĥī": 123218, + "Ġà¤ĩà¤ķ": 123219, + "ĠprostÄĽ": 123220, + "ĠÎĵκ": 123221, + "ç©´": 123222, + "ĠHük": 123223, + "lavÃŃ": 123224, + "ê¿": 123225, + "鸡": 123226, + "ĠвозникаеÑĤ": 123227, + "ÑŁÑŁÑŁ": 123228, + "Ġпонима": 123229, + "ÐŁÐŀ": 123230, + "ãģĶãģĸãģĦãģ¾ãģĻ": 123231, + "ãģħ": 123232, + "Ġtrval": 123233, + "Ġдалеко": 123234, + "ĠÙĨÙĬز": 123235, + "ĠвÑĭÑıв": 123236, + "ิà¸Ĺยา": 123237, + "Ġlá»Ĺ": 123238, + "à¹Ģสà¸Ļ": 123239, + "ĠÑģÑĤенÑĭ": 123240, + "à¥įडल": 123241, + "Ġjednotlivých": 123242, + "ĠпÑĢиблиз": 123243, + "ikat": 123244, + "Ġподав": 123245, + "رÛĮز": 123246, + "ĠØ¢ÙĨجا": 123247, + "社æľĥ": 123248, + "Ġà¤ľà¤¨à¤µà¤°": 123249, + "Ġaile": 123250, + "à¸µà¸Ľ": 123251, + "Ġèħ": 123252, + "ãģ§ãģĹãĤĩãģĨ": 123253, + "СÐŀ": 123254, + "ãĢģãĢĬ": 123255, + "ìĿ¼ë³¸": 123256, + "ovanou": 123257, + "νÏĮ": 123258, + "å±¥": 123259, + "عÙĦÙĤ": 123260, + "Ġìī½": 123261, + "Ġглиб": 123262, + "Ġê²ĥìŀħëĭĪëĭ¤": 123263, + "ĠнеобÑħодимоÑģÑĤи": 123264, + "ĠتخصصÛĮ": 123265, + "اسر": 123266, + "ï¼Į说": 123267, + "ĠÐĿÑĸ": 123268, + "Ġvyrob": 123269, + "ÑĪÑĥÑİ": 123270, + "æĪ¿å±ĭ": 123271, + "ÂłÐĹ": 123272, + "à¹Ģà¸ŀล": 123273, + "åĨħéĥ¨": 123274, + "ĠدÙĦار": 123275, + "ĠпÑĤи": 123276, + "Å¡ti": 123277, + "ĠaraÅŁtırma": 123278, + "Ġзнаком": 123279, + "Ġελλην": 123280, + "Ġấm": 123281, + "ÑĢак": 123282, + "ãĤŃãĥ¥": 123283, + "ĠtháºŃn": 123284, + "èŃľ": 123285, + "ëªħìĿĺ": 123286, + "Ġyeter": 123287, + "ĠнаÑģлед": 123288, + "ĠÐļан": 123289, + "ĠвÑĭбиÑĢа": 123290, + "ĠΣÏĩ": 123291, + "ĠÑĤеÑĢмÑĸн": 123292, + "Ġæ´»": 123293, + "ĠاÙĦتÙģ": 123294, + "ĠJapon": 123295, + "éĤª": 123296, + "ë¶ĦìĦĿ": 123297, + "ĠлиÑĨо": 123298, + "Ġmê": 123299, + "à¸Ħวร": 123300, + "Ġà¤ħà¤Ĺल": 123301, + "ĠÙĩج": 123302, + "룬ìļ´": 123303, + "ĠвойнÑĭ": 123304, + "اÙĪرزÛĮ": 123305, + "ĠÑģпÑĢÑı": 123306, + "çĦ¼": 123307, + "è¢ĸ": 123308, + "Ġiçeren": 123309, + "Ġëħ¸ëŀĺ": 123310, + "ĠЧеÑĢез": 123311, + "ÙĪجÙĪد": 123312, + "ÑıÑĤие": 123313, + "à¸Ńลลาร": 123314, + "è·¨": 123315, + "ĠMilli": 123316, + "件äºĭ": 123317, + "ĠæľĿ": 123318, + "βολή": 123319, + "Ġков": 123320, + "ĠØ´ÙĩÛĮد": 123321, + "ä¸ĭåİ»": 123322, + "Ġìłķìĭł": 123323, + "оÑĩкÑĥ": 123324, + "ï¼Į便": 123325, + "γκε": 123326, + "ĠÙħباش": 123327, + "Ġayında": 123328, + "Ġä»»": 123329, + "ÑģÑĤоÑĢÑĸÑı": 123330, + "ä¸ŃåѦ": 123331, + "縮": 123332, + "ĠÑĦÑĸл": 123333, + "ãĢģãĤĦ": 123334, + "Ġæĺ¥": 123335, + "Ġterör": 123336, + "Ġповинен": 123337, + "Ġmilionů": 123338, + "ĠÙģارس": 123339, + "Ġввод": 123340, + "طاÙĦ": 123341, + "Ġê¶ģê¸Ī": 123342, + "Ġukáz": 123343, + "çĶľ": 123344, + "æļĤ": 123345, + "صت": 123346, + "Ðļогда": 123347, + "Ġमल": 123348, + "άνα": 123349, + "ĠдокÑĤоÑĢ": 123350, + "ĠкоммÑĥ": 123351, + "ĠпÑĸдÑģ": 123352, + "Ġà¸ģรà¸ģà¸İาà¸Ħม": 123353, + "ÂłÐ³": 123354, + "Ġöne": 123355, + "ĠÄIJá»ģ": 123356, + "äºĭåĭĻ": 123357, + "Ġsrov": 123358, + "Ġάν": 123359, + "ëıĦê°Ģ": 123360, + "acaģım": 123361, + "кол": 123362, + "Ġbá»ĵi": 123363, + "Ġپرداز": 123364, + "Ġä¸ļ": 123365, + "ëĭ¤ìļ´": 123366, + "ĠпÑĢедел": 123367, + "ĠÑĦедеÑĢалÑĮ": 123368, + "ĠاÙĦØ£Ùĥ": 123369, + "ãĢĢãĢĢãĢĢãĢĢĠãĢĢĠãĢĢ": 123370, + "Ġtrấn": 123371, + "Ġдлин": 123372, + "ĠÑĸмп": 123373, + "ĠsmÄĽrem": 123374, + "°ëĭ¤": 123375, + "Ġrừng": 123376, + "iciálnÃŃ": 123377, + "è¡Ĩ": 123378, + "μιο": 123379, + "ĠادارÙĩ": 123380, + "ĠÑĤÑĢÑĮ": 123381, + "ĠÄ°li": 123382, + "มà¸Ļà¸ķร": 123383, + "à¥įवà¤ļ": 123384, + "еÑĢо": 123385, + "ĠKUR": 123386, + "skými": 123387, + "δί": 123388, + "utin": 123389, + "Ġveriler": 123390, + "สà¸ĸาà¸Ļà¸Ĺ": 123391, + "ĠзаÑħодÑĸв": 123392, + "ĠÙģرÙĪدگاÙĩ": 123393, + "ĠçĶ±": 123394, + "ูà¹ģล": 123395, + "éĥij": 123396, + "ĠJako": 123397, + "ĠÑĢазвиÑĤие": 123398, + "à¤īन": 123399, + "ÙĬدا": 123400, + "Ġà¸ŀà¸¤à¸©à¸łà¸²à¸Ħม": 123401, + "물ìĿĦ": 123402, + "ëłĢ": 123403, + "-ÐĽ": 123404, + "ãĢĤãģĤ": 123405, + "Ġподв": 123406, + "ï¼īï¼ļ": 123407, + "论åĿĽ": 123408, + "ائع": 123409, + "ãĤĴãģĻãĤĭ": 123410, + "Ġأص": 123411, + "Ñĩики": 123412, + "ĠÑģÑĤил": 123413, + "leyici": 123414, + "ÑģилÑĮ": 123415, + "Ġbulundu": 123416, + "ĠÑģеÑĢедови": 123417, + "à¤Ĥर": 123418, + "ĠاÛĮÙĨجا": 123419, + "åľŃåľŃ": 123420, + "ĠmyÅ¡len": 123421, + "ĠÑĢозвиÑĤок": 123422, + "ĠiyileÅŁ": 123423, + "ĠвÑĸз": 123424, + "ëĤĺ무": 123425, + "æĦıè§ģ": 123426, + "ιÏĥÏĦη": 123427, + "ãĥĥãĥĦ": 123428, + "äºĭæķħ": 123429, + "madıģı": 123430, + "Ġà¤ħपर": 123431, + "ĠÚĨرخ": 123432, + "Ġплав": 123433, + "以æĿ¥": 123434, + "Ġë©Ģ": 123435, + "Tuy": 123436, + "ãĥ¼ãĥį": 123437, + "ĠизÑĥÑĩ": 123438, + "ĠstÅĻednÃŃ": 123439, + "课ç¨ĭ": 123440, + "Ġê·¸ëħĢëĬĶ": 123441, + "ĠдоговоÑĢÑĥ": 123442, + "ĠÄijá»ĭch": 123443, + "Ġkararı": 123444, + "åIJ´": 123445, + "ÙĥاÙħ": 123446, + "ĠпоÑĤол": 123447, + "вок": 123448, + "ĠDüz": 123449, + "Τα": 123450, + "åµ": 123451, + "âĢĻna": 123452, + "адж": 123453, + "ĠdÅĻÃŃve": 123454, + "梨": 123455, + "ĠAvust": 123456, + "åĬĽãĤĴ": 123457, + "à¹Ģà¸ģล": 123458, + "Ġпобед": 123459, + "ĠпÑĢиÑĩ": 123460, + "ĠÐijÑĸ": 123461, + "åѤ": 123462, + "ĠÐłÐµÐ³": 123463, + "ĠyetiÅŁ": 123464, + "ĠнеÑİ": 123465, + "ĠbÃŃl": 123466, + "ìĹĨìĿĮ": 123467, + "ĠÄ°talya": 123468, + "ÐĴÑģе": 123469, + "å¾Įãģ®": 123470, + "ĠjejÃŃm": 123471, + "ĠвиглÑıдÑĸ": 123472, + "огÑĢад": 123473, + "Ġbohat": 123474, + "Ġåħĭ": 123475, + "ĠдиÑĤини": 123476, + "лÑıÑĤоÑĢ": 123477, + "мага": 123478, + "ëĭĪìĬ¤": 123479, + "ĠÐłÐ°Ð´Ð¸": 123480, + "ÏĢοÏħÏģγ": 123481, + "&ZeroWidthSpace": 123482, + "Ġstruk": 123483, + "æIJŀ": 123484, + "ĠãģĿãģ®ä»ĸ": 123485, + "ìĿ¸ìĿĦ": 123486, + "ĠпÑĢовеÑģÑĤи": 123487, + "漫çĶ»": 123488, + "Ġçݩ家": 123489, + "ĠÙĪرز": 123490, + "ĠÑģвоÑĹм": 123491, + "ĠLRV": 123492, + "ิà¸ķà¸ł": 123493, + "सत": 123494, + "ĠíĿĶ": 123495, + "âĹıâĹıâĹıâĹıâĹıâĹıâĹıâĹıâĹıâĹıâĹıâĹıâĹıâĹıâĹıâĹı": 123496, + "ĠtvoÅĻÃŃ": 123497, + "ĠÐŁÐŀ": 123498, + "é«ĺ度": 123499, + ".hwp": 123500, + "à¸ķำà¸ļล": 123501, + "Ġدس": 123502, + "ìĪĺê°Ģ": 123503, + "ìĶ©": 123504, + "ï¼īãĢĤĊ": 123505, + "æĭ³": 123506, + "Ġlô": 123507, + "ĠKültür": 123508, + "اطعة": 123509, + "Ġkuchy": 123510, + "Ġstroj": 123511, + "μενο": 123512, + "ĠконÑģÑĤÑĢÑĥкÑĨии": 123513, + "å°ıåѦ": 123514, + "Ġåįļ": 123515, + "ĠèĢĥ": 123516, + "Ġasıl": 123517, + "æĪijåĢij": 123518, + "خراج": 123519, + "ĠOnun": 123520, + "Ġç¾İåĽ½": 123521, + "à¥Ĥबर": 123522, + "Ġmuži": 123523, + "姫": 123524, + "Ġвб": 123525, + "Ġдоме": 123526, + "Ġам": 123527, + "Ġkuru": 123528, + "æ±Ĺ": 123529, + "lediÄŁi": 123530, + "Ġvẽ": 123531, + "å¾ĵ": 123532, + "ĠгÑĥбеÑĢ": 123533, + "ĠÑģÑĤановиÑĤÑĮ": 123534, + "ĠzemÄĽdÄĽl": 123535, + "ÙĦÙĦ": 123536, + "Ġramen": 123537, + "ĠprůbÄĽhu": 123538, + "Ġblok": 123539, + "ýval": 123540, + "vou": 123541, + "νά": 123542, + "ëĶĶìĭľ": 123543, + "ÑĨионнÑĭе": 123544, + "Ġê²ĮìĭľíĮIJ": 123545, + "ãĥ³ãĥĩãĤ£": 123546, + "ä¸Ģ级": 123547, + "иÑĩа": 123548, + "ĠسرÛĮاÙĦ": 123549, + "ilin": 123550, + "ायन": 123551, + "ÙĨÙĪÛĮس": 123552, + "ĠÐĶи": 123553, + "ĠادبÛĮ": 123554, + "ĠÑĥдов": 123555, + "ĠÐĹам": 123556, + "à¥ģà¤Ńव": 123557, + "Ñģок": 123558, + "ĠÑĢайоне": 123559, + "ĠEK": 123560, + "æĤī": 123561, + "Ġsorumlu": 123562, + "ĠzvyÅ¡": 123563, + "à¹Ģà¸ĭà¸Ńร": 123564, + "ináÅĻ": 123565, + "Ġudrž": 123566, + "новид": 123567, + "ĠspoleÄįnÄĽ": 123568, + "æĪIJäºĨ": 123569, + "D": 123570, + "ัà¸ŀà¸Ĺ": 123571, + "аÑĪа": 123572, + "ĠÙĨادÙĬ": 123573, + "à¹ĥà¸Ļà¸Ĺ": 123574, + "å¡ļ": 123575, + "Ġسک": 123576, + "ãĥģãĥ¥": 123577, + "ĠмаÑĢÑĪ": 123578, + "аленнÑı": 123579, + "ĠØŃÙħاÛĮت": 123580, + "ãĥ³ãĤ¸": 123581, + "รษà¸IJ": 123582, + "ĠкÑĢем": 123583, + "ĠKažd": 123584, + "ê½": 123585, + "Ġparlament": 123586, + "ĠÅŁun": 123587, + "Ġkys": 123588, + "ÏĦÏĤ": 123589, + "ê°ľìĿĺ": 123590, + "Ġvelice": 123591, + "Ġcestu": 123592, + "ظة": 123593, + "è¯Ĭ": 123594, + "Ġút": 123595, + "ĠØ®ÙĪر": 123596, + "ĠТе": 123597, + "ĠоблаÑģÑĤ": 123598, + "à¹Īà¸Ńà¸ķ": 123599, + "ĠAcadem": 123600, + "ãĢĤæľ¬": 123601, + "Ġ風": 123602, + "Ñģен": 123603, + "ãĥ¢ãĥĩãĥ«": 123604, + "ĠзавданнÑı": 123605, + "ãģ¾ãĤĮ": 123606, + "моÑĤÑĢеÑĤÑĮ": 123607, + "Ġkhá»ķ": 123608, + "à¹Īร": 123609, + "درس": 123610, + "ĠÄĮeskosloven": 123611, + "Ġ计": 123612, + "ĠÑĤаком": 123613, + "ĠÙĦاعب": 123614, + "ĠMuhammed": 123615, + "ĠÙħÙĦÙģ": 123616, + "ĠÙĪسÙĦÙħ": 123617, + "ãĤ·ãĥ£ãĥ«": 123618, + "ĠокÑĢа": 123619, + "à¥ģमत": 123620, + "ĠëĪĦ구": 123621, + "Ġnedeni": 123622, + "ĠëĤłì§ľ": 123623, + "/km": 123624, + "Ġдемон": 123625, + "ĠصÙĨاÛĮع": 123626, + "masından": 123627, + "åīįãģ®": 123628, + "æĪIJ绩": 123629, + "लà¤Ĺ": 123630, + "ĠåĮħ": 123631, + "à¸Ńà¸ģà¸Īาà¸ģà¸Ļ": 123632, + "ادا": 123633, + "Ġaylık": 123634, + "ĠÙħÙĤد": 123635, + "Ġönemlidir": 123636, + "ĠìĪľê°Ħ": 123637, + "Ġdinh": 123638, + "Ġnákup": 123639, + "istické": 123640, + "åºŁ": 123641, + "ìĬ¤íĨł": 123642, + "Ġdny": 123643, + "ĠìŀĪëıĦë¡Ŀ": 123644, + "ìĽIJìĿĺ": 123645, + "ãĥķãĥ¬": 123646, + "poz": 123647, + "Ġев": 123648, + "ĠdÃ¼ÅŁÃ¼r": 123649, + "à¥įरà¤ļ": 123650, + "Ġê²°íĺ¼": 123651, + "ĠÑĨенÑĤÑĢа": 123652, + "åŁĭ": 123653, + "ï¿£ï½Ģ": 123654, + "æѦåĻ¨": 123655, + "à¹Īาà¸Ļมา": 123656, + "Ġरव": 123657, + "Ùijد": 123658, + "μÎŃνοι": 123659, + "Ġë§IJìĶĢ": 123660, + "ĠpoÅĻad": 123661, + "Ġبغ": 123662, + "ĠÏĮλα": 123663, + "à¹īà¹Ħà¸Ĥ": 123664, + "à¹Ģà¸ģาะ": 123665, + "Ġbạc": 123666, + "Ġdá": 123667, + "dÄĽla": 123668, + "Ġteb": 123669, + "Ġkèo": 123670, + "ãĤıãĤĮ": 123671, + "Ġistiyorum": 123672, + "λήÏĤ": 123673, + "ÐIJв": 123674, + "Ġasla": 123675, + "Ġperformans": 123676, + "ĠVáclav": 123677, + "ÏģίαÏĤ": 123678, + "ĠtÄĽl": 123679, + "æĮĻ": 123680, + "оба": 123681, + "ãģijãĤĮãģ©": 123682, + "ĠëĶ¸": 123683, + "ÙĪاء": 123684, + "ĠÚ©ÙĪدکاÙĨ": 123685, + "ĠплиÑĤ": 123686, + "Ġbilir": 123687, + "Ñĥже": 123688, + "ÏĦÎŃλε": 123689, + "Ġà¤Ĩà¤ķर": 123690, + "ĠÑĤÑĢÑĥда": 123691, + "ĠدرÛĮا": 123692, + "̧": 123693, + "Ġngá»įt": 123694, + "ÙĨسا": 123695, + "аÑģÑĤи": 123696, + "ï½£": 123697, + "ÂłÐ½Ð°": 123698, + "емÑĭе": 123699, + "ĠسعÙĪد": 123700, + "Ġalım": 123701, + "è´«": 123702, + "åĪ°çļĦ": 123703, + "Ġkesinlikle": 123704, + "Ġzásad": 123705, + "ĠìĬ¤íĬ¸": 123706, + "Ġdahi": 123707, + "té": 123708, + "åįģåħ«": 123709, + "Ġzayıf": 123710, + "ذار": 123711, + "ĠاÙĬراÙĨ": 123712, + "ĠhodnocenÃŃ": 123713, + "DST": 123714, + "Ġìĸĺ": 123715, + "æĺĩ": 123716, + "éĻ£": 123717, + "Ġкле": 123718, + "Ġuplat": 123719, + "ĠاÙĦتعÙĦÙĬÙħ": 123720, + "ÏĢοίηÏĥη": 123721, + "екÑĤоÑĢа": 123722, + "Ġë§IJìĿ´": 123723, + "ĠÙģرÙĬÙĤ": 123724, + "帮åĬ©": 123725, + "çĶŁãģį": 123726, + "åĨħãģ®": 123727, + "èģĶ缣": 123728, + "гÑĢад": 123729, + "Ġchuyến": 123730, + "ãĤĤãĤĬ": 123731, + "ĠÑĩаÑģÑĤина": 123732, + "ãģªãģıãģª": 123733, + "ÑĶв": 123734, + "ĠÑĦаÑħ": 123735, + "kuk": 123736, + "çĶ·æĢ§": 123737, + "ĠÙħÛĮÙĦادÛĮ": 123738, + "Ġbeden": 123739, + "ê°Ģ를": 123740, + "मर": 123741, + "Ġìĸ´ë¨¸ëĭĪ": 123742, + "èģĶç½ij": 123743, + "Âłmi": 123744, + "Ġzahrn": 123745, + "æ²ĸ": 123746, + "Ġkhuẩn": 123747, + "Ġopráv": 123748, + "ाहà¤ķ": 123749, + "ĠÚ©ÙĪتاÙĩ": 123750, + "Ġобол": 123751, + "Ġphúc": 123752, + "ránÃŃ": 123753, + "à¥įरथ": 123754, + "æݪæĸ½": 123755, + "Ġволод": 123756, + "ĠspÃŃÅ¡e": 123757, + "ĠmÆ¡": 123758, + "ÑĬек": 123759, + "ngör": 123760, + "à¤īत": 123761, + "ksiyon": 123762, + "аÑĤе": 123763, + "Ġجزء": 123764, + "ávka": 123765, + "ÐĴС": 123766, + "laÅŁma": 123767, + "Ġç¿": 123768, + "à¸Ńาà¸Ĭ": 123769, + "ниÑĨÑĥ": 123770, + "Ġหาà¸ģ": 123771, + "ãģĭãģĹ": 123772, + "íı´": 123773, + "ĠгаÑĢан": 123774, + "ĠÏĥαν": 123775, + "ĠдобавиÑĤÑĮ": 123776, + "ĠÑĢазÑĢеÑĪ": 123777, + "á¾": 123778, + "æĺ¯ä¸ª": 123779, + "μÎŃÏĤ": 123780, + "ĠÄ°mparator": 123781, + "æ¨Ļæºĸ": 123782, + "ÑģÑĤÑĭ": 123783, + "Ġgücü": 123784, + "ĠíĥĢìĿ´": 123785, + "Ġåħ¶ä»ĸ": 123786, + "Ġtông": 123787, + "ĠvedenÃŃ": 123788, + "ëĵľë¡ľ": 123789, + "Ġmesel": 123790, + "ĠÄįe": 123791, + "jde": 123792, + "Ïģεια": 123793, + "ãĤĪãģŃ": 123794, + "ÐłÐĿ": 123795, + "è·Ŀ离": 123796, + "ĠÙĤائÙħØ©": 123797, + "าà¸ļาล": 123798, + "ĠÑģайÑĤÑĸ": 123799, + "Ġरस": 123800, + "ĠÙĤرÙĨ": 123801, + "Ġnávr": 123802, + "Ú©Ùħ": 123803, + "çļĦæīĭ": 123804, + "Ġsorunu": 123805, + "/NÄIJ": 123806, + "nutÃŃm": 123807, + "ĠØ®ÙĪرد": 123808, + "Ġngá»Ŀ": 123809, + "Ġ:.|": 123810, + "Ġbudouc": 123811, + "iÄįky": 123812, + "Ġدرد": 123813, + "ÑĢониÑĩеÑģ": 123814, + "ç¾Ĭ": 123815, + "ĠìķĦë²Ħì§Ģ": 123816, + "ĠKanunu": 123817, + "ĠпÑĢиводиÑĤ": 123818, + "άλÏħÏĪηÏĤ": 123819, + "ĠVladim": 123820, + "Ġalıp": 123821, + "ĠеÑĤап": 123822, + "Ġà¤Ĺलत": 123823, + "ĠراÙĩÙĨÙħ": 123824, + "Ġpozisyon": 123825, + "Ġgöç": 123826, + "èµŀ": 123827, + "Ġмой": 123828, + "Ġγά": 123829, + "ĠìĪł": 123830, + "ĠØ¢ÛĮÙĨدÙĩ": 123831, + "aná": 123832, + "举çľģ": 123833, + "ĠÙħتعدد": 123834, + "ĠåįĬ": 123835, + "ãĢĢãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ": 123836, + "Ġthá»Ŀ": 123837, + "ĠвдÑĢÑĥг": 123838, + "паÑĤ": 123839, + "ĠпÑĢоведениÑı": 123840, + "ÙĨز": 123841, + "ĠاÙĦبØŃØ«": 123842, + "æģ¢": 123843, + "Ġbaktı": 123844, + "Ġè·¯": 123845, + "Ġзаболеваний": 123846, + "ĠÐķвÑĢоп": 123847, + "Ġtarihli": 123848, + "깨": 123849, + "ĠÚ©ÙĪÙĩ": 123850, + "Ġìĸ´ëł¤": 123851, + "Ġtitul": 123852, + "ĠvydánÃŃ": 123853, + "éĺ¶æ®µ": 123854, + "à¸Īะà¸ķ": 123855, + "ĠмоÑı": 123856, + "ĠкоÑĢол": 123857, + "Ġбанк": 123858, + "วรรà¸ĵ": 123859, + "ĠÙĥسارة": 123860, + "ĠKhoa": 123861, + "ĠÑĥнÑĸвеÑĢÑģиÑĤеÑĤ": 123862, + "ãģ«éĸ¢ãģĻãĤĭ": 123863, + "ruary": 123864, + "Ġà¸Ĥาย": 123865, + "Ġsvaz": 123866, + "ĠشرÙĤ": 123867, + "ĠдÑĭÑħ": 123868, + "Ġизбав": 123869, + "ĠÑıкÑĸй": 123870, + "ĠÎľÎ¿Î½": 123871, + "Ġgön": 123872, + "ĠUkraj": 123873, + "ัà¸Ļà¸Ńà¸Ńà¸ģ": 123874, + "Ġมà¸ģราà¸Ħม": 123875, + "иÑĤов": 123876, + "Ġanalý": 123877, + "ĠоÑĤмеÑĩ": 123878, + "ĠبراÙī": 123879, + "âĪı": 123880, + "ัà¸ģà¸ģ": 123881, + "æĭ¥æľī": 123882, + "ĠÑĸнÑĪого": 123883, + "ĠкомпанÑĸÑĹ": 123884, + "ĠkÅĻes": 123885, + "ĠÑĢабоÑĩ": 123886, + "adÃŃ": 123887, + "ìłł": 123888, + "à¹Ħหà¸Ļ": 123889, + "à¥ģबह": 123890, + "âĢĻdeki": 123891, + "çħ¤": 123892, + "ĠпаÑĢÑĥ": 123893, + "ìĦŃ": 123894, + "ĠнепоÑģÑĢед": 123895, + "ĠÄ°b": 123896, + "Ġà¸ŀฤศà¸Ī": 123897, + "íĭ´": 123898, + "ĠëłĪìĿ´": 123899, + "ĠThá»ķ": 123900, + "ÑıеÑĤ": 123901, + "ائج": 123902, + "»çĴĥ": 123903, + "ÐĴÐŀ": 123904, + "åĸĬ": 123905, + "Ġ第ä¸ī": 123906, + "ĠвокÑĢÑĥг": 123907, + "ÑĩенÑĮ": 123908, + "Ġolanak": 123909, + "tura": 123910, + "ĠÙħÙĬÙĦ": 123911, + "eydi": 123912, + "ĠÙħدÙĬر": 123913, + "Ġnelze": 123914, + "ัวà¸Ńย": 123915, + "ìħľ": 123916, + "Ġhlavu": 123917, + "Ġkoruy": 123918, + "ÑĨин": 123919, + "ĠдиÑģÑĨип": 123920, + "ĠÙħاÙĨد": 123921, + "ĠподÑĢоб": 123922, + "ТÐŀ": 123923, + "ÙĤرار": 123924, + "à¹ģà¸Ļะà¸Ļำ": 123925, + "문ìĿĦ": 123926, + "æĮ¯ãĤĬ": 123927, + "PÅĻi": 123928, + "Ġyên": 123929, + "शà¤ķ": 123930, + "Âłje": 123931, + "ĠÐļонÑģÑĤиÑĤÑĥ": 123932, + "à¥ģह": 123933, + "Ġپا": 123934, + "ìĨĮ를": 123935, + "Ġдела": 123936, + "кид": 123937, + "à¹Ĥà¸Ĭ": 123938, + "커ìĬ¤": 123939, + "dÄĽlen": 123940, + "à¤Ķर": 123941, + "äºİæĺ¯": 123942, + "ĠÙĩÙħÛĮØ´Ùĩ": 123943, + "ĠbaÅŁlam": 123944, + "ĠìĽ¨": 123945, + "Ġdeneyim": 123946, + "Ġüye": 123947, + "ĠνÏĮ": 123948, + "Ġà¤ĸड": 123949, + "nÄĽl": 123950, + "ĠÑģÑĦеÑĢÑĸ": 123951, + "à¸Ńà¸Ķà¸ł": 123952, + "ä¸Ģå¹´": 123953, + "Ġvurgu": 123954, + "ÄŀÄ°": 123955, + "âĢĻĊ": 123956, + "ĠÑĸнÑĪими": 123957, + "ĠзменÑĪ": 123958, + "Ġà¤ĭ": 123959, + "Ġвека": 123960, + "ĠØŃÚ©ÙĪÙħت": 123961, + "ĠتÙħاÙħÛĮ": 123962, + "Ġsmrt": 123963, + "Ġhủy": 123964, + "ĠyapılmÄ±ÅŁ": 123965, + "à¹īà¸ľ": 123966, + "ĠYen": 123967, + "ĠÑĥл": 123968, + "ĠSvÄĽt": 123969, + "ัà¸Ħ": 123970, + "ĠmÄĽsÃŃců": 123971, + "денÑĤи": 123972, + "Ġï¾ĺ": 123973, + "ĠполиÑĤи": 123974, + "skyt": 123975, + "ä¹Łæľī": 123976, + "Ġê°ĻìĬµëĭĪëĭ¤": 123977, + "Ġê·¸ëŀĺìĦľ": 123978, + "ÏĦεÏģη": 123979, + "ÑĩеÑĢ": 123980, + "ĠÃľNÄ°VERSÄ°TESÄ°": 123981, + "à¸ªà¸ł": 123982, + "Ġสร": 123983, + "ानद": 123984, + "ĠaÅŁÄ±rı": 123985, + "λίοÏħ": 123986, + "ĠÙĦÙģ": 123987, + "ÃŃnu": 123988, + "à¸Ńาร": 123989, + "ÑĤÑĥÑĢа": 123990, + "ĠÄįeských": 123991, + "Ġphức": 123992, + "以为": 123993, + "ÏģÏīÏĢα": 123994, + "ĠاÙĨرÚĺÛĮ": 123995, + "»)": 123996, + "alardan": 123997, + "ĠÑģÑĤвоÑĢÑİ": 123998, + "Ġtráv": 123999, + "६": 124000, + "ãģĬãĤĪãģ³": 124001, + "ïľĭ": 124002, + "adil": 124003, + "ĠΤι": 124004, + "ĠëIJ©ëĭĪëĭ¤": 124005, + "ĠεμÏĨ": 124006, + "Ġ구조": 124007, + "ìĹŃìĭľ": 124008, + "ĠاÙĦجاÙħ": 124009, + "主é¢ĺ": 124010, + "ãĤ¹ãĥĿ": 124011, + "ĠìĹŃìĭľ": 124012, + "ĠÚ©Ùħتر": 124013, + "ĠSpoleÄį": 124014, + "олоÑĪ": 124015, + "ĠSuriye": 124016, + "ЧеÑĢ": 124017, + "æĪĺæĸĹ": 124018, + "Ġzávis": 124019, + "æĽ¸é¤¨": 124020, + "Ġmusel": 124021, + "ĠçĿ": 124022, + "ÙħÙħ": 124023, + "ĠاÙĦخارج": 124024, + "ĠÐĵÐŀ": 124025, + "ĠваÑĢÑĤо": 124026, + "Ïģαβ": 124027, + "Ġपहà¤ļ": 124028, + "ublice": 124029, + "ÑĨионного": 124030, + "èĮ¨": 124031, + "ĠدÙģتر": 124032, + "ĠÙģس": 124033, + "Ġà¤¨à¤ľà¤°": 124034, + "tarı": 124035, + "ĠобÑĢоб": 124036, + "ĠÐłÐ°": 124037, + "ĠاÙĦصÙĨ": 124038, + "شة": 124039, + "ĠìĹĨìĹĪ": 124040, + "ožná": 124041, + "æľĢçµĤ": 124042, + "Ù¥": 124043, + "rech": 124044, + "ĠاÙĦأسر": 124045, + "Ġмови": 124046, + "Ġì¡°êµIJ": 124047, + "ÑĸмеÑĩ": 124048, + "ãĥ¯ãĥ¼": 124049, + "бÑĥÑĢг": 124050, + "ĠسÙĦس": 124051, + "åѦä¼ļ": 124052, + "Ġë¦": 124053, + "åħĭæĸ¯": 124054, + "æĸĩçĮ®": 124055, + "ĠxÆ°Æ¡ng": 124056, + "Ġyolc": 124057, + "ĠìĤ¬ë¬´": 124058, + "ãĤıãģļ": 124059, + "ĠÑĢаÑģÑĤений": 124060, + "ĠÙģضاÛĮ": 124061, + "Ġnaopak": 124062, + "ĠпÑĢивÑĭ": 124063, + "ĠدÛĮدÙĩ": 124064, + "à¸ģารà¹ĥà¸Ĭ": 124065, + "Ġåŀ": 124066, + "çijŁ": 124067, + "以åIJİ": 124068, + "ĠpÅĻibliž": 124069, + "ĠdÃ¼ÅŁman": 124070, + "Ġtemin": 124071, + "ĠÑĥÑģлÑĥг": 124072, + "Ġदब": 124073, + "ĠìĥĪê¸Ģ": 124074, + "ĠÑĥÑģÑĤÑĢойÑģÑĤва": 124075, + "ĠТÑĥÑĤ": 124076, + "ÏĦίοÏħ": 124077, + "ĠÄ°slâm": 124078, + "Ù¤": 124079, + "åıĤä¸İ": 124080, + "ĠкÑĥÑģÑĤ": 124081, + "éĻIJåĪ¶": 124082, + "تÙĬÙĨ": 124083, + "ĠоÑģÑĤаннÑĸ": 124084, + "ications": 124085, + "اکÛĮ": 124086, + "ноÑģÑı": 124087, + "ÄŁan": 124088, + "ãģıãĤĮãĤĭ": 124089, + "Ġyapıyor": 124090, + "Ġê°ķëĤ¨": 124091, + "ÙħÙĬÙħ": 124092, + "æŃIJ": 124093, + "Ġرع": 124094, + "ĠboÄŁ": 124095, + "ĠиÑģÑħод": 124096, + "èªł": 124097, + "æł·åŃIJ": 124098, + "Ġbudeme": 124099, + "ĠÑģеÑĤ": 124100, + "ιÏĥμοÏį": 124101, + "Ġå¾ĴæŃ©": 124102, + "uálnÃŃ": 124103, + "ĠاÙĦعÙĤ": 124104, + "Ġسبک": 124105, + "ĠاÙĦأخرÙī": 124106, + "EFA": 124107, + "åĽºå®ļ": 124108, + "ĠãĤ¬": 124109, + "ĠìŀIJìĹ°": 124110, + "ยวà¸Ĥ": 124111, + "بس": 124112, + "unma": 124113, + "Ġзаним": 124114, + "à¹ĥà¸Ļร": 124115, + "èĢĥèĻij": 124116, + "æ··åIJĪ": 124117, + "å°ĭ": 124118, + "ĠçıkÄ±ÅŁ": 124119, + "Ġmaliyet": 124120, + "éľĬ": 124121, + "ãģŁãĤģãģ®": 124122, + "Ġپش": 124123, + "ĠзлоÑĩ": 124124, + "Ġvýši": 124125, + "Ġschvál": 124126, + "ĠÙĨÙħÙĪدÙĩ": 124127, + "ÎĨ": 124128, + "Ġzách": 124129, + "ĠÏĥκ": 124130, + "ãĤ¹ãĥŀ": 124131, + "ĠÙħسائÙĦ": 124132, + "ĠاÙĦاجتÙħاع": 124133, + "åľ°çĤ¹": 124134, + "اÛĮاÙĨ": 124135, + "ĠÐŀк": 124136, + "ê¸Ķ": 124137, + "elease": 124138, + "ĠطبÙĤÙĩ": 124139, + "éijij": 124140, + "Ġì½Ķë¡ľëĤĺ": 124141, + "é¼ł": 124142, + "大åħ¨": 124143, + "ĠпÑĢивеÑģÑĤи": 124144, + "Ġابتد": 124145, + "ë¦¬ë¡ľ": 124146, + "ĠÑģÑĤÑĢанÑĭ": 124147, + "ĠzatÃŃmco": 124148, + "Ġhuyết": 124149, + "سÛĮÙĪÙĨ": 124150, + "Ġsordu": 124151, + "âĢĮرس": 124152, + "ĠÑĦÑĢон": 124153, + "Ġedip": 124154, + "ÙĨÚ¯ÛĮ": 124155, + "ĠкиÑĢ": 124156, + "Ġíķ´ìķ¼": 124157, + "ì»´": 124158, + "ÑĨиклоп": 124159, + "ĠпÑĢименениÑı": 124160, + "Ġобл": 124161, + "éļª": 124162, + "ĠkromÄĽ": 124163, + "æł¸å¿ĥ": 124164, + "rahim": 124165, + "оÑĢд": 124166, + "ĠlÃłnh": 124167, + "ĠоÑģÑĤÑĢов": 124168, + ";|": 124169, + "buz": 124170, + "ĠÏĦÏģο": 124171, + "ĠÐĴаÑĢ": 124172, + "æīİ": 124173, + "ılÄ±ÅŁ": 124174, + "éĿ¢ç©į": 124175, + "身份": 124176, + "é¢ĨåŁŁ": 124177, + "ĠاÙĦÙĤرÙĨ": 124178, + "ĠпÑĢиклад": 124179, + "ãĥģãĥ¼ãĥł": 124180, + "Ġสà¸ŀà¸Ľ": 124181, + "ĠоÑĩиÑģÑĤ": 124182, + "Ġмилли": 124183, + "аÑĨÑĸÑĹ": 124184, + "ีà¹Ģà¸Ń": 124185, + "Ġtanın": 124186, + "çĪ¶äº²": 124187, + "Ġmsgstr": 124188, + "ĠØ´ÛĮÙħÛĮ": 124189, + "ĠÙģراÙĩÙħ": 124190, + "Ġ맥": 124191, + "ãĢĤå½ĵ": 124192, + "ĠконÑĨенÑĤÑĢа": 124193, + "êµIJíļĮ": 124194, + "ãĤīãĤĮãģ¦": 124195, + "Ġyasak": 124196, + "ĠÐijол": 124197, + "Ġæ¾³": 124198, + "çĩķ": 124199, + "Ġجا": 124200, + "ëijĺ": 124201, + "ĠدرخÙĪاست": 124202, + "ĠmÃŃstnÃŃ": 124203, + "ÂĤÃĮ": 124204, + "Ġbaskı": 124205, + "Ġuçak": 124206, + "ä»ĵ": 124207, + "Ġìľłì§Ģ": 124208, + "Ġпоба": 124209, + "Ġzeptal": 124210, + "ç»ĻæĪij": 124211, + "ĠAtatürk": 124212, + "ĠÙħÙĨاس": 124213, + "ÑĴ": 124214, + "Ġaracı": 124215, + "лÑİÑĶ": 124216, + "Ġnitelik": 124217, + "ĠMezi": 124218, + "ĠÎŃναÏĤ": 124219, + "ÏİνÏĦαÏĤ": 124220, + "važ": 124221, + "Ġkuzey": 124222, + "ĠÏİÏģα": 124223, + "ĠÑĢозпов": 124224, + "à¹Īาà¸ģ": 124225, + "ãĢģä¸ī": 124226, + "ĠÑģÑĤаÑĢи": 124227, + "Ġhakkı": 124228, + "ĠØ¢ÙħادÙĩ": 124229, + "íĮĶ": 124230, + "омÑĸ": 124231, + "ĠâĢł": 124232, + "ãģĭãĤı": 124233, + "ãĢĮä½ł": 124234, + "æ³ķåĽ½": 124235, + "ÙIJÙĬÙĨ": 124236, + "æīķ": 124237, + "нили": 124238, + "ĠÑĥÑģÑĤановки": 124239, + "Ġlông": 124240, + "तम": 124241, + "ÙĪÙĨÙĬØ©": 124242, + "ÙĬتÙĬ": 124243, + "Ġê²Įìĭľë¬¼": 124244, + "ĠveÅ¡ker": 124245, + "ÎŃÏģγ": 124246, + "ĠÑĥÑģе": 124247, + "Ġkıl": 124248, + "Ġilgi": 124249, + "μÏīν": 124250, + "ĠзвÑĸлÑĮ": 124251, + "Ġönlem": 124252, + "à¸ģà¸İหมาย": 124253, + "ĠHiá»ĩp": 124254, + "ĠгоÑĢм": 124255, + "лÑıÑİÑĤÑĮÑģÑı": 124256, + "lamaya": 124257, + "ĠÑģпоÑģобом": 124258, + "ãģ¸ãģ¨": 124259, + "ç¦ģæŃ¢": 124260, + "ĠÑĢаÑħÑĥнок": 124261, + "ĠоÑĤвеÑĢÑģÑĤи": 124262, + ".:.:.:.": 124263, + "Ġmüda": 124264, + "онаÑħ": 124265, + "Ì£c": 124266, + "Ġyapacak": 124267, + "Ġназвание": 124268, + "对æĸ¹": 124269, + "ëĮĢíijľ": 124270, + "çĪŃ": 124271, + "вана": 124272, + "हन": 124273, + "ĠпÑĢоблема": 124274, + "ĠженÑīинÑĭ": 124275, + "èŀº": 124276, + "ĠhospodáÅĻ": 124277, + "ĠСÑĤеп": 124278, + "ĠodpovÄĽd": 124279, + "ĠSá»Ń": 124280, + "eview": 124281, + "åĩłä¹İ": 124282, + "çŁ¢": 124283, + "æĿ¥ãģŁ": 124284, + "ĠполоÑģ": 124285, + "ĠÑģел": 124286, + "å±Ĩ": 124287, + "ĠпеÑĢвой": 124288, + "ĠпÑĢоÑĨеÑģÑģа": 124289, + "ãĢĢãĤĿ": 124290, + "تاÙħبر": 124291, + "илаÑģÑı": 124292, + "ï¼ĮæĹł": 124293, + "ĠвлаÑģноÑģÑĤÑĸ": 124294, + "íķĺìŀIJ": 124295, + "аÑĤки": 124296, + "ĠBÃł": 124297, + "ĠKarel": 124298, + "è·µ": 124299, + "رÛĮÙĩ": 124300, + "ĠëĤĺ를": 124301, + "ĠобеÑģпеÑĩива": 124302, + "à¥įरपत": 124303, + "ãģĹãĤĩ": 124304, + "åįĴ": 124305, + "Ġ奥": 124306, + "ĠпÑĢоÑĤе": 124307, + "ĠæĭĽ": 124308, + "ĠСÑĤÑĢана": 124309, + "ĠÑĢабоÑĤаÑĤÑĮ": 124310, + "ĠتشخÛĮص": 124311, + "екÑģÑĥ": 124312, + "Ġ리그": 124313, + "ĠصاÙĦØŃ": 124314, + "ĠbaÅŁlamÄ±ÅŁ": 124315, + "ĠÙ¾ÛĮاÙħبر": 124316, + "زا": 124317, + "ĠмаÑģÑģ": 124318, + "ĠγαÏģ": 124319, + "ëĿ¼íĶ¼": 124320, + "Ġyarı": 124321, + "ĠÑĤипÑĥ": 124322, + "Ðŀп": 124323, + "ãģijãģªãģĦ": 124324, + "emem": 124325, + "ĠnÄĽmu": 124326, + "ĠÙĨشر": 124327, + "ĠÎijθήνα": 124328, + "ÙģراÙĨ": 124329, + "Ġ網": 124330, + "ĠпÑĢомиÑģлов": 124331, + "ĠBugün": 124332, + "ìŀĶ": 124333, + "ĠжÑĸнок": 124334, + "Ġà¸Ľà¸£à¸°à¹Ģà¸łà¸Ĺ": 124335, + "ĠвикоÑĢиÑģÑĤовÑĥваÑĤи": 124336, + "ĠТим": 124337, + ")를": 124338, + "ежаÑĤÑĮ": 124339, + "Ġsona": 124340, + "Ø´ÙĨبÙĩ": 124341, + "Ġnichž": 124342, + "åīĽ": 124343, + "ĠÙģتØŃ": 124344, + "ĠÙħÙĤدÙħ": 124345, + "ĠGüvenlik": 124346, + "eum": 124347, + "ç»ıè¿ĩ": 124348, + "è·ĿéĽ¢": 124349, + "ÂłÐ½Ðµ": 124350, + "ĠاصÙĪÙĦ": 124351, + "ĠzaÄįátku": 124352, + "ิà¹Ģวà¸ĵ": 124353, + "Ġà¤ķà¤Ł": 124354, + "Ġkriz": 124355, + "Ġpán": 124356, + "ĠбоÑĢÑĮ": 124357, + "ظÙħØ©": 124358, + "Ġê²½ë¶ģ": 124359, + "ĠاÙĦÙĬÙħÙĨ": 124360, + "ĠاÙĦعربÙĬ": 124361, + "Ġhlub": 124362, + "Ġchá»Ŀ": 124363, + "襲": 124364, + "ëĵľë¦¬": 124365, + "ãĥĸãĥª": 124366, + "ĠÑģÑĤолÑĸÑĤÑĤÑı": 124367, + "ربÙĬØ©": 124368, + "Ġæ°¸": 124369, + "Ġê±°ìĿĺ": 124370, + "ĠβαÏĥ": 124371, + "Ġarz": 124372, + "ãĥ¢ãĥ³": 124373, + "ĠÑĢÑĸвенÑĮ": 124374, + "ä¸įçŁ¥": 124375, + "导èĩ´": 124376, + "اÙĬØ´": 124377, + "ĠпÑĢевÑĭÑĪ": 124378, + "Ġпн": 124379, + "ĠÎĴÏģοÏĩή": 124380, + "Ġ身": 124381, + "ĠÄIJầu": 124382, + "ĠÏĮμÏīÏĤ": 124383, + "jÃŃž": 124384, + "Ġλίγ": 124385, + "ĠÑĪколи": 124386, + "ãģ£ãģ±ãģĦ": 124387, + "zdy": 124388, + "Ġ곧": 124389, + "teÅŁ": 124390, + "ÑĢеÑī": 124391, + "κει": 124392, + "sahuje": 124393, + "Ġà¤īसस": 124394, + "ĠTanrı": 124395, + "ä¸į好": 124396, + "éĥŃ": 124397, + "ĠвÑĭглÑıд": 124398, + "ĠçoÄŁ": 124399, + "ĠинÑģÑĤÑĢÑĥменÑĤ": 124400, + "rej": 124401, + "èĪĮ": 124402, + "ãģĭãĤīãģªãģĦ": 124403, + "ĠнепÑĢиÑıÑĤ": 124404, + "ĠкÑĢоме": 124405, + "ζη": 124406, + "Ġлог": 124407, + "ावर": 124408, + "ëħķíķĺìĦ¸ìļĶ": 124409, + "ाहरण": 124410, + "Ġgüvenilir": 124411, + "Tại": 124412, + "ĠØ´Ùĩرد": 124413, + "ĠΤε": 124414, + "оÑĢаз": 124415, + "ĠlÃłng": 124416, + "I": 124417, + "æĬķ注": 124418, + "Ġsiyaset": 124419, + "ÐĽÑİ": 124420, + "ĠtÅĻet": 124421, + "ĠÏĢÏģÏİÏĦη": 124422, + "ĠÑĥлÑĭб": 124423, + "ĠLâm": 124424, + "ÑĥлÑĮÑĤа": 124425, + "åŁºåľ°": 124426, + "Ġskupina": 124427, + "æ°¸ä¹ħ": 124428, + "лÑĥгов": 124429, + "ĠÑĨÑĸй": 124430, + "ĠPoh": 124431, + "iд": 124432, + "ĠTruy": 124433, + "çļĦä¸Ģ个": 124434, + "ë²ĦìłĦ": 124435, + "Ġxứ": 124436, + "à¸ĩà¹ģรà¸ģ": 124437, + "à¸Ħà¸Ńม": 124438, + "Ġelektronik": 124439, + "ĠaÄŁaç": 124440, + "Ġà¤ľà¤¯": 124441, + "ĠповеÑĢÑħноÑģÑĤÑĮ": 124442, + "ĠاÙĩÙħÛĮت": 124443, + "ливиÑħ": 124444, + "ĠolduÄŁundan": 124445, + "ï¼ī:": 124446, + "ÑĨиÑıÑħ": 124447, + "è£½ä½ľ": 124448, + "à¸Ĺรà¸ĩ": 124449, + "eyim": 124450, + "Ġnáklad": 124451, + "cilik": 124452, + "ĠÐĵлав": 124453, + "ĠUygu": 124454, + "ĠÑĢегÑĥлÑİ": 124455, + "à¤Ĥà¤ľà¤¨": 124456, + "Ġkaynaģı": 124457, + "à¹īาà¸Ń": 124458, + "Ġgörmek": 124459, + "ĠíĮ¬": 124460, + "Ġå®Į": 124461, + "Ø«ÙħاÙĨ": 124462, + "ĠÑĤакаÑı": 124463, + "Ġнеиз": 124464, + "Ġzprávy": 124465, + "ĠاÙĦشخص": 124466, + "Ġìĺ¤íĽĦ": 124467, + "ĠاÙĦطب": 124468, + "atırım": 124469, + "رÙĬر": 124470, + "ĠÙħعÙħارÛĮ": 124471, + "ÃľRK": 124472, + "ĠÒIJ": 124473, + "ĠìĦ¬": 124474, + "æīĭãģ«": 124475, + "Ġë³ĢíĻĶ": 124476, + "ulace": 124477, + "Ġsợ": 124478, + "ÑĢиÑĩ": 124479, + "มหาว": 124480, + "Ġkâ": 124481, + "ĠÑģпÑĢоб": 124482, + "ÙĩرÙĩ": 124483, + "ाधन": 124484, + "ĠÏĢαι": 124485, + "بعد": 124486, + "ĠاÙĦتÙĪ": 124487, + "ç»ıçIJĨ": 124488, + "působ": 124489, + "æ¬ł": 124490, + "ĠзаÑħвоÑĢÑİваннÑı": 124491, + "خة": 124492, + "ÚĨار": 124493, + "Ġbozuk": 124494, + "]âĢı": 124495, + "ĠSocorro": 124496, + "Ġhrad": 124497, + "надлеж": 124498, + "ĠÑĥÑĩаÑģÑĤие": 124499, + "å¤īãĤı": 124500, + "Ġyans": 124501, + "ĠØ¥ÙĦ": 124502, + "خبر": 124503, + "ÑĨиклопед": 124504, + "ιÏİν": 124505, + "ÏĥÏĦÏģο": 124506, + "Ġbanka": 124507, + "ĠsoÄŁuk": 124508, + "Ġünlü": 124509, + "é¢ľ": 124510, + "ĠرÙģع": 124511, + "çIJ³": 124512, + "ĠÑģоÑģÑĤоÑıнии": 124513, + "νονÏĦαÏĤ": 124514, + "ĠакÑĤи": 124515, + "ĠÏĢολÏħ": 124516, + "ĠмоÑĹ": 124517, + "Ġæł¼": 124518, + "ç²Ĺ": 124519, + "ĠÑģлÑĥÑĩай": 124520, + "ìĿ¼ìĹIJ": 124521, + "ĠÑĤÑĢебÑĥеÑĤ": 124522, + "ĠåıĤèĢĥ": 124523, + "angl": 124524, + "amik": 124525, + "ĠÄ°Åŀ": 124526, + "湯": 124527, + "ĠÄijáo": 124528, + "ละà¸Ħร": 124529, + "Ñģо": 124530, + "Âłob": 124531, + "Ġklim": 124532, + "èĥĨ": 124533, + "ìĥĿíĻľ": 124534, + "ãĥijãĥ³": 124535, + "-ब": 124536, + "Ġкад": 124537, + "à¹Īสามารà¸ĸ": 124538, + "ĠÙħسÙĦÙħاÙĨ": 124539, + "ç¿°": 124540, + "ĠBütün": 124541, + "ĠKraj": 124542, + "ĠпеÑĢÑģп": 124543, + "Ġenerj": 124544, + "ãģķãģĽãĤĭ": 124545, + "è¾¾åĪ°": 124546, + "ाà¤Ĭ": 124547, + "ĠگرÙģتÙĨ": 124548, + "ÑĪкÑĥ": 124549, + "ĠÐŁÐ»Ð¾": 124550, + "ÃŃny": 124551, + "ĠHra": 124552, + "ĠÚĨÙĨاÙĨ": 124553, + "Ġà¹Ħà¸Ĺย": 124554, + "visejÃŃcÃŃ": 124555, + "Û³Û³": 124556, + "ĠÐľÑĸнÑĸÑģÑĤеÑĢ": 124557, + "à¹Ĥà¸Ń": 124558, + "ĠدÙĩÛĮد": 124559, + "æ¯Ķä¾ĭ": 124560, + "ÏĥιεÏį": 124561, + "ÇIJ": 124562, + "ãĢģãģª": 124563, + "Ġतस": 124564, + "ĠÄ°t": 124565, + "ĠìłĦìŁģ": 124566, + "à¹Ģà¸Īร": 124567, + "Ġelektr": 124568, + "ĠdÆ°": 124569, + "âĶĶ": 124570, + "Ġìĥ¤": 124571, + "ä»®": 124572, + "à¸ģารà¹Ģล": 124573, + "ĠмÑĥлÑĮ": 124574, + "Ġ度": 124575, + "ĠHuyá»ĩn": 124576, + "вен": 124577, + "ĠlÆ°á»Ľi": 124578, + "Ġprovozu": 124579, + "ÑĥÑĢÑĥ": 124580, + "ÑĢÑĸÑĹ": 124581, + "ĠçocuÄŁ": 124582, + "ัà¸IJà¸ļาล": 124583, + "ÙĦÙĬÙĩ": 124584, + "Ġ[âĢ¦]...Ċ": 124585, + "åİŁå§ĭ": 124586, + "Ġsklad": 124587, + "ĠسپتاÙħبر": 124588, + "ĠTomáš": 124589, + "ĠسÙĪاÙĦ": 124590, + "çģŃ": 124591, + "ãĤĵãģ©": 124592, + "назнаÑĩ": 124593, + "ĠÄijÄ©a": 124594, + "ĠudÄĽlat": 124595, + "Ġà¤Ĩदम": 124596, + "L": 124597, + "ινÏĮ": 124598, + "iÅŁleri": 124599, + "ÄIJây": 124600, + "ĠرساÙĨÙĩ": 124601, + "عاÙħ": 124602, + "ãĥ¼ãĥijãĥ¼": 124603, + "Ġdoprov": 124604, + "ĠмÑĸÑģÑĤо": 124605, + "ï¼¥": 124606, + "елÑĸг": 124607, + "ائز": 124608, + "ä¸įäºĨ": 124609, + "ĠÐIJлекÑģандÑĢ": 124610, + "ĠвÑĢемен": 124611, + "ĠdveÅĻe": 124612, + "Ġchảy": 124613, + "Ġotel": 124614, + "èĤ¯å®ļ": 124615, + "ĠÑĥÑĤвеÑĢжд": 124616, + "ĠÐļомп": 124617, + "ĠëĤĺëĿ¼": 124618, + "ĠвÑĸдбÑĥваÑĶÑĤÑĮÑģÑı": 124619, + "ãĢģãĢİ": 124620, + "ĠkarÅŁÄ±lık": 124621, + "Ġlẫn": 124622, + "çħĻ": 124623, + "عکس": 124624, + "å¼¥": 124625, + "Ġtecr": 124626, + "Ġneod": 124627, + "æĪIJçĤº": 124628, + "åħ¥ãĤĬ": 124629, + "ĠÐŁÑĢод": 124630, + "ĠÏĢÏģά": 124631, + "ืà¸Ńà¸Ķ": 124632, + "ÑģÑĤаÑĤи": 124633, + "еноÑĹ": 124634, + "ÑĩиÑģл": 124635, + "羣æŃ£": 124636, + "Ġราà¸Ħ": 124637, + "ÑĥÑĢе": 124638, + "ĠشاÙĩد": 124639, + "اعر": 124640, + "Ġê²½íĹĺ": 124641, + "à¸Ļà¸Ħ": 124642, + "ãĥįãĥ«": 124643, + "ÏĢοÏħλοÏĤ": 124644, + "Ġमà¤Ī": 124645, + "ìĬ¤ì½Ķ": 124646, + "itelné": 124647, + "å¼ĢæĶ¾": 124648, + "çį¨": 124649, + "ĠpÅĻech": 124650, + "úÄįast": 124651, + "å¢ĵ": 124652, + "Ġå½±": 124653, + "ÙĨساÙĨ": 124654, + "Ġдвад": 124655, + "ĠидеÑĤ": 124656, + "ĠподклÑİÑĩ": 124657, + "íĬ¹ë³Ħìĭľ": 124658, + "BÃłi": 124659, + "Å¡ku": 124660, + "ilerden": 124661, + "åıĺå¾Ĺ": 124662, + "ëıĻìķĪ": 124663, + "ĠpostupnÄĽ": 124664, + "ĠиÑĤог": 124665, + "Ġdůvodu": 124666, + "sizlik": 124667, + "ÙĦاÙĨ": 124668, + "éĤ£ç§į": 124669, + "ĠÑĩаÑģа": 124670, + "ä¸įæĸŃ": 124671, + "ĠØ®ÛĮاباÙĨ": 124672, + "ĠاÙĦداخ": 124673, + "ĠÑģÑĤоÑĢÑĸн": 124674, + "Ġì¶ľìĹ°": 124675, + "æ²Ł": 124676, + "Ġhry": 124677, + "ĠGÃľ": 124678, + "ĠìĿ¸êµ¬": 124679, + "lied": 124680, + "ĠعاÙĦÙĬØ©": 124681, + "ĠпÑĢедваÑĢ": 124682, + "анной": 124683, + "åı¥è¯Ŀ": 124684, + "éłĵ": 124685, + "ë°ĶìĿ¼": 124686, + "ï¼ı/": 124687, + "ĠÙħختصات": 124688, + "ëŀ«": 124689, + "ĠçalÄ±ÅŁmaları": 124690, + "Ġrepublika": 124691, + "Ġì³": 124692, + "ा)": 124693, + "Ġê±´ê°ķ": 124694, + "Ġê³µëıĻ": 124695, + "èħ¦": 124696, + "ĠìĦľë¡ľ": 124697, + "ĠпÑĢоводиÑĤÑĮ": 124698, + "ĠдейÑģÑĤвиÑĤелÑĮно": 124699, + "veç": 124700, + "ثاÙĦ": 124701, + "Ġgösterir": 124702, + "ırlar": 124703, + "ĠÑģамÑĭм": 124704, + "álo": 124705, + "é¢ij次": 124706, + "à¥Īà¤Ĺ": 124707, + "ادÙħ": 124708, + "çĮª": 124709, + "ĠSản": 124710, + "Ġçı": 124711, + "Ġlety": 124712, + "Ġrepublice": 124713, + "æĿ¥èĩª": 124714, + "Ġvết": 124715, + "Ġbirik": 124716, + "Ġmekt": 124717, + "ĠاÙĦÙĪÙģ": 124718, + "Ġjich": 124719, + "ä¸Ģ覧": 124720, + "éľ²åĩº": 124721, + "ĠHiá»ĩn": 124722, + "Ġdiá»ĩt": 124723, + "ĠÑħÑĢиÑģÑĤи": 124724, + "åĪļæīį": 124725, + "kate": 124726, + "Ġbazen": 124727, + "ĠurÄįitÄĽ": 124728, + "ĠumožÅĪuje": 124729, + "é¡ĺãģĦ": 124730, + "/QÄIJ": 124731, + "ĠmenÅ¡ÃŃ": 124732, + "ÏĥκεÏħή": 124733, + "ĠÑĨеÑĢков": 124734, + "Ġè´Ń": 124735, + "окÑĢаÑĤи": 124736, + "ĠÑĢозк": 124737, + "ανοÏħ": 124738, + "Ġyönetic": 124739, + "Ġolmadan": 124740, + "åĨľä¸ļ": 124741, + "Ġë°ĶëŀĮ": 124742, + "çĵľ": 124743, + "ÑĪаеÑĤÑģÑı": 124744, + "ĠÐļоÑģÑĤ": 124745, + "ĠÙħعت": 124746, + "Ġà¸ŀล": 124747, + "ĠÙħتÙģاÙĪت": 124748, + "ãĤīãģı": 124749, + "èĪĹ": 124750, + "ĠتعرÛĮÙģ": 124751, + "éīĦéģĵ": 124752, + "ĠpéÄįe": 124753, + "컵": 124754, + "ĠподÑĢаз": 124755, + "ĠбанкÑĥ": 124756, + "Ä°SÄ°": 124757, + "æ¡IJ": 124758, + "à¹Ĥรà¸Ħ": 124759, + "ĠØŃØ°Ùģ": 124760, + "Ġë£": 124761, + "лиж": 124762, + "ĠìĤ°ìĹħ": 124763, + "ĠпÑĢиÑĩинÑĭ": 124764, + "Ġназна": 124765, + "ãĥªãĤ¹ãĥĪ": 124766, + "ìłķë¶Ģ": 124767, + "ÏĥÏĨα": 124768, + "å¦ĥ": 124769, + "Ġголови": 124770, + "ëIJĺìĹĪìĬµëĭĪëĭ¤": 124771, + "ĠενÏĮÏĤ": 124772, + "ãĤ¤ãĥ³ãĤ¿": 124773, + "Ġslun": 124774, + "ëł´": 124775, + "ĠÑģÑĥÑīеÑģÑĤвÑĥеÑĤ": 124776, + "заб": 124777, + "æĽ´åĬł": 124778, + "ĠблагодаÑĢÑı": 124779, + "ĠëĮĢ구": 124780, + "è¾ħ": 124781, + "หาà¸ģ": 124782, + "Ġæİ¥": 124783, + "ëĮĢ를": 124784, + "人类": 124785, + "jeme": 124786, + "åĪĨå¸ĥ": 124787, + "ìŀ¥ìĿĢ": 124788, + "Ġдопомоги": 124789, + "ìĻĦë£Į": 124790, + "osy": 124791, + "èĭ±éĽĦ": 124792, + "ĠÙĦس": 124793, + "मह": 124794, + "Ġà¸ģำ": 124795, + "ĠداشتÙĨ": 124796, + "Ńìłľ": 124797, + "Ä°ng": 124798, + "ĠThÆ°á»Ŀng": 124799, + "íĻĢ": 124800, + "ÑįÑĦ": 124801, + "íķ´ìļĶ": 124802, + "ĠÐľÑĸж": 124803, + "еÑĢÑĸга": 124804, + "Ġεá¼": 124805, + "à¹ģสà¸ĩ": 124806, + "ãĥĢãĤ¤": 124807, + "Ġcesty": 124808, + "Ġprázd": 124809, + "第ä¸Ģ次": 124810, + "ĠÙĩÙħسر": 124811, + "Ġzev": 124812, + "ÂłE": 124813, + "ĠBelediyesi": 124814, + "ĠпÑĢопози": 124815, + "ĠanlayÄ±ÅŁ": 124816, + "ÂłÙħ": 124817, + "ĠÑĢаÑģÑģÑĩиÑĤ": 124818, + "ĠاÙĦØ£ÙħرÙĬÙĥÙĬØ©": 124819, + "Ġžena": 124820, + "deniz": 124821, + "Ġnoci": 124822, + "Ġstál": 124823, + "ุย": 124824, + "주ìĨĮ": 124825, + "ĠзеÑĢ": 124826, + "ĠìĨĮê°ľ": 124827, + "Ġkhẳng": 124828, + "atıcı": 124829, + "ÄĽÅ¾": 124830, + "ĠÑĩÑĥÑĤÑĮ": 124831, + "ĠcáºŃu": 124832, + "ĠاطÙĦاع": 124833, + "æµħ": 124834, + "Ġstrav": 124835, + "ĠSanayi": 124836, + "ĠطبÙĬ": 124837, + "Ġhızla": 124838, + "Ïİνα": 124839, + "à¤¿à¤ľà¤²": 124840, + "ÙħØŃÙħد": 124841, + "à¸ļà¸ģ": 124842, + "Ġvzdálen": 124843, + "ĠÑĤакими": 124844, + "ãĢĤãģĿãģĹãģ¦": 124845, + "Ġkalp": 124846, + "Ġкожного": 124847, + "ÐłÂµ": 124848, + "ÙĦعاب": 124849, + "ĠÙħÙĪÙĨ": 124850, + "ĠìĿ¼ìĿĦ": 124851, + "Ġë°ĶìĿ´": 124852, + "Ġmekan": 124853, + "ĠجاÙħع": 124854, + "ĠÙĨÙģت": 124855, + "ĠاÙĦسÙħ": 124856, + "лÑĭÑħ": 124857, + "èĥĮæĻ¯": 124858, + "Ġê²ĥëıĦ": 124859, + "ĠìĤ´ìķĦ": 124860, + "ydı": 124861, + "ĠнавеÑĢ": 124862, + "åŃIJãģ¯": 124863, + "luluk": 124864, + "Ġhá»Ĺn": 124865, + "ĠØ´Ùģ": 124866, + "ĠعÙĦت": 124867, + "à¸Ħราม": 124868, + "ĠÎļÏįÏĢ": 124869, + "Ġà¹Ģมษายà¸Ļ": 124870, + "ÙĨدÙĤ": 124871, + "ĠÑĥÑģÑĤÑĢа": 124872, + "ĠÎĵεν": 124873, + "ĠÐĨван": 124874, + "ĠPhong": 124875, + "家çļĦ": 124876, + "ĠÐIJлекÑģ": 124877, + "ĠзбеÑĢÑĸг": 124878, + "ĠÅŁarkı": 124879, + "ĠظرÙģÛĮت": 124880, + "ĠÙħعÙĨÛĮ": 124881, + "Ġлов": 124882, + "ĠìĤ¶": 124883, + "èħIJ": 124884, + "Ġå¯Į": 124885, + "ERG": 124886, + "ĠÑģÑĤоимоÑģÑĤÑĮ": 124887, + "ÅĻet": 124888, + "à¥īय": 124889, + "à¹Īาร": 124890, + "ĠارÙĪپا": 124891, + "ĠбÑĢоÑģ": 124892, + "ĠоÑĤноÑģÑıÑĤ": 124893, + "ĠÎŁÎº": 124894, + "ÑĨÑĮкий": 124895, + "ÏĬκ": 124896, + "ãģĤãĤĬãģ¾ãģĽãĤĵ": 124897, + "ĠÑĥник": 124898, + "ĠÄijiá»ĥn": 124899, + "Ġvýzkum": 124900, + "Ġhứ": 124901, + "ĠÙĪات": 124902, + "Ġå¹³æĸ¹": 124903, + "Ïħμ": 124904, + "ãĤĴ使": 124905, + "είÏĦαι": 124906, + "两人": 124907, + "ĠåĮ»": 124908, + "ÑĢаÑĤиÑĤÑĮ": 124909, + "ĠاÙĦاÙĨت": 124910, + "ãģ®äºº": 124911, + "رش": 124912, + "ĠТÑĥÑĢ": 124913, + "rnÄĽ": 124914, + "天天": 124915, + "มาร": 124916, + "Ġortalama": 124917, + "ĠпеÑĢепиÑģ": 124918, + "ĠìĥĿìĤ°": 124919, + "å¿Ĩ": 124920, + "íĩ´": 124921, + "ï¼Į该": 124922, + "éĮ¢": 124923, + "ÏĢαίδ": 124924, + "ĠмеÑĢопÑĢи": 124925, + "ĠгÑĢав": 124926, + "ÃĶng": 124927, + "Ġæ¤": 124928, + "ĠاÙĦدÙĪÙĦØ©": 124929, + "ĠоÑģÑĮ": 124930, + "å¥Ķ": 124931, + "Ġgüvenli": 124932, + "íķĺìĭł": 124933, + "ĠéĬ": 124934, + "éŁ³æ¨Ĥ": 124935, + "Ġmedya": 124936, + "ĠبÙĨا": 124937, + "ама": 124938, + "ĠãĤŃãĥ£": 124939, + "èĹ¥": 124940, + "larım": 124941, + "ĠTiếng": 124942, + "iyorlar": 124943, + "ï¼¢": 124944, + "æĶĿ": 124945, + "ÑĸйÑģÑĮкоÑĹ": 124946, + "ĠyetiÅŁtir": 124947, + "Ġپسر": 124948, + "ãĤīãģĹ": 124949, + "Âļ": 124950, + "ìĥ¤": 124951, + "à¸Ķาห": 124952, + "ĠتØŃصÛĮÙĦ": 124953, + "Ġбенз": 124954, + "éģ£": 124955, + "ĠнаблÑİ": 124956, + "ä½ĵç³»": 124957, + "ãĥ¯ãĤ¤ãĥĪ": 124958, + "³³Ġ": 124959, + "书记": 124960, + "ĠMühendis": 124961, + "plor": 124962, + "laz": 124963, + "лÑıли": 124964, + "Ġpomáh": 124965, + "Ġближ": 124966, + "ĠÑĩиÑģла": 124967, + "ĠubytovánÃŃ": 124968, + "ÑĢаÑĤно": 124969, + "ĠtrÄĥm": 124970, + "ĠابراÙĩ": 124971, + "átka": 124972, + "Ġiçindeki": 124973, + "ัà¸ļà¸Ļ": 124974, + "ĠاÙħÛĮد": 124975, + "nave": 124976, + "ecut": 124977, + "å°±åľ¨": 124978, + "Ġtradi": 124979, + "Ø·ÙĦÙĤ": 124980, + "ãĤ¦ãĤ©": 124981, + "Ġkhuôn": 124982, + "ìĬ¤ë¡ľ": 124983, + "ÏĦÎŃÏģα": 124984, + "ĠÏĥκο": 124985, + "맼": 124986, + "ĠÙģÙĨÛĮ": 124987, + "à¹Įà¹Ģà¸ŀ": 124988, + "ĠاÙĦعظ": 124989, + "Ġthôn": 124990, + "기ìĿĺ": 124991, + "Ġ฿": 124992, + "ÑĥÑİÑĤÑģÑı": 124993, + "ĠÙħکاÙĨ": 124994, + "ĠâĹİ": 124995, + "Ġçľģ": 124996, + "Ġåį¡": 124997, + "ĠпеÑĢÑĪий": 124998, + "ĠíĽĦë³´": 124999, + "ĠآراÙħ": 125000, + "ãģĮãģĦ": 125001, + "ยาà¸Ļ": 125002, + "μει": 125003, + "ĠMáy": 125004, + "Ġzů": 125005, + "Ġpodporu": 125006, + "컨": 125007, + "ÑģÑĤÑĢи": 125008, + "ÏĢÏĦÏīÏĥη": 125009, + "Ð¤ÐĽ": 125010, + "åĵªéĩĮ": 125011, + "ĠпеÑĢвÑĥÑİ": 125012, + "Ġyerinde": 125013, + "ĠزÛĮبا": 125014, + "Ġodstran": 125015, + "à¥Ģà¤Ĺ": 125016, + "ĠÑĢÑĸзнÑĸ": 125017, + "ÏģηÏĥη": 125018, + "âĢĮاÙĦÙħÙĦÙĦÛĮ": 125019, + "عاد": 125020, + "à¥įपष": 125021, + "ÑŁN": 125022, + "ï½Ľ": 125023, + "ãĥ¼ãĥľ": 125024, + "è´Ńä¹°": 125025, + "ĠìĿ¸ê¸°ê¸Ģ": 125026, + "ĠÙħÛĮØ´ÙĪد": 125027, + "ĠбезопаÑģноÑģÑĤи": 125028, + "ĠνεÏĨοκ": 125029, + "ãģ«ãģ¨": 125030, + "ĠÑĨеÑĢкви": 125031, + "تÙĥ": 125032, + "ĠHÃłng": 125033, + "ĠÙĦÙĦس": 125034, + "ĠνεÏĨοκάλÏħÏĪηÏĤ": 125035, + "raman": 125036, + "Ġvyvol": 125037, + "niÄį": 125038, + "راÙĨÙĩ": 125039, + "ĠpeÅŁ": 125040, + "ãĥ«ãĤ¯": 125041, + "å´ĩ": 125042, + "Ġimkân": 125043, + "åĮ»çĸĹ": 125044, + "Ġपà¥Ŀ": 125045, + "άννηÏĤ": 125046, + "ĠجÛĮ": 125047, + "Ġproje": 125048, + "Ġülkenin": 125049, + "ĠKew": 125050, + "ĠاÙĦÙħÙģ": 125051, + "Ø£Ùĥ": 125052, + "çĻºè¡¨": 125053, + "ĠδÏħ": 125054, + "ĠåĽ½å®¶": 125055, + "ĠKiÅŁisel": 125056, + "ãĥ³ãĤ¬": 125057, + "Ġzpráva": 125058, + "Viá»ĩc": 125059, + "erif": 125060, + "Ġstránky": 125061, + "éļł": 125062, + "è¼ķ": 125063, + "коз": 125064, + "Ġà¤¸à¤ľ": 125065, + "ÙĩداÙģ": 125066, + "loub": 125067, + "à¸łà¸²à¸ŀยà¸Ļà¸ķร": 125068, + "ĠíķłìĿ¸": 125069, + "ĠÄIJÃło": 125070, + "ĠÙĨاØŃÛĮÙĩ": 125071, + "(=)": 125072, + "ĠÅŀampiyon": 125073, + "ĠpiÅŁ": 125074, + "ĠØ°Ùĩ": 125075, + "९": 125076, + "ĠÑģÑĢедÑģÑĤво": 125077, + "Ġà¹Ģวลา": 125078, + "ĠÑĩÑĥж": 125079, + "Ġverileri": 125080, + "Ġکارت": 125081, + "ави": 125082, + "Ġà¤ķरव": 125083, + "Ġrestau": 125084, + "ê°ľìĽĶ": 125085, + "ĠмиÑĢов": 125086, + "ì°®": 125087, + "ĠnÄĽjaký": 125088, + "Ġsessiz": 125089, + "اءات": 125090, + "ĠÐĹаÑħ": 125091, + "ÑıÑīиÑħ": 125092, + "пÑĢ": 125093, + "ĠподалÑĮ": 125094, + "ĠопÑĢеделиÑĤÑĮ": 125095, + "à¥Ń": 125096, + "ĠرÙģ": 125097, + "幸ç¦ı": 125098, + "à»": 125099, + "ĠvÄĽdom": 125100, + "ĠÑģвидеÑĤелÑĮ": 125101, + "ĠÎĵοÏħ": 125102, + "ılıģıyla": 125103, + "çĻ»éĮ²": 125104, + "Ġä¸ĭè·Į": 125105, + "ĠплÑİ": 125106, + "нод": 125107, + "ĠأجÙĦ": 125108, + "Ġà¤ķथ": 125109, + "éĥ½ä¸į": 125110, + "Ġsene": 125111, + "ĠpÄĽ": 125112, + "è¨ĪåĬĥ": 125113, + "ĠаÑĥд": 125114, + "Ġодном": 125115, + "Ġä¸ĩåħĥ": 125116, + "ĠÙĪÙħا": 125117, + "ĠÐĶÑĢÑĥг": 125118, + "èµ·ãģĵ": 125119, + "ваÑİÑĤÑģÑı": 125120, + "лаÑĤÑĥ": 125121, + "ĠتÙĪÙĨ": 125122, + "ÑīаÑı": 125123, + "ήλ": 125124, + "ĠÐŁÑĢа": 125125, + "Ġاسترات": 125126, + "ิà¸Ļà¹Ģà¸Ķ": 125127, + "à¥įà¤Ĺत": 125128, + "ÂłÐ·": 125129, + "ĠполоÑĤ": 125130, + "æ®ĸ": 125131, + "æ¡Ĩ": 125132, + "ĠSistem": 125133, + "Ġruku": 125134, + "ãĥĥãĤ«ãĥ¼": 125135, + "ĠобÑıзан": 125136, + "ĠkÃ¶ÅŁ": 125137, + "Ġadını": 125138, + "Ø´ÙħاÙĦÛĮ": 125139, + "naÄįenÃŃ": 125140, + "Ġ.ï¼ı": 125141, + "Ġå®ĺ": 125142, + "Ġtoplumsal": 125143, + "誤": 125144, + "ĠبÙĩبÙĪد": 125145, + "ÑģÑĤвеннаÑı": 125146, + "Ġآپ": 125147, + "ĠجÙĦسÙĩ": 125148, + "ãĢĢï½": 125149, + "åĵŃ": 125150, + "æīĢå±ŀ": 125151, + "æĴ®": 125152, + "ì¢Ģ": 125153, + "Ġει": 125154, + "ì¹ĺ를": 125155, + "Ġê³¼ìłķ": 125156, + "uuml": 125157, + "δά": 125158, + "Ġزد": 125159, + "ìĽIJìĿĦ": 125160, + "ĠvÄĽcÃŃ": 125161, + "دث": 125162, + "Ġsanki": 125163, + "åĥıæĺ¯": 125164, + "лаÑĢа": 125165, + "ìĤ¬ìĿ´": 125166, + "ãĤıãĤĮãģŁ": 125167, + "ĠÄijón": 125168, + "åIJ¯åĬ¨": 125169, + "ĠgiÃłnh": 125170, + "Ġkırmızı": 125171, + "Ø®Ùħ": 125172, + "æIJį": 125173, + "åĪĩãĤĬ": 125174, + "ãĤµãĥ¼ãĥĵãĤ¹": 125175, + "Ùĩار": 125176, + "Ø°Ùĥر": 125177, + "оÑĢоз": 125178, + "à¥Īà¤Ĥ।ĊĊ": 125179, + "ĠíĻĪíİĺìĿ´ì§Ģ": 125180, + "ĠÙĥبÙĬرة": 125181, + "нина": 125182, + "íķĺìļ°": 125183, + "å¼ķçĶ¨é¢ij次": 125184, + "८": 125185, + "ĠбаÑĤÑĮкÑĸв": 125186, + "à¸Łà¸Ńร": 125187, + "ี.": 125188, + "ìłĿíĬ¸": 125189, + "éĺħ读次æķ°": 125190, + "Ġitir": 125191, + "ÑĪин": 125192, + "ĠVáºŃy": 125193, + "çĤ®": 125194, + "лагод": 125195, + "Ø´ÙĨاس": 125196, + "á»IJ": 125197, + "ĠÑıгод": 125198, + "Ġì¤ijìķĻ": 125199, + "رÙĬØ·": 125200, + "ĠìĪĺíĸī": 125201, + "Ġä¸ĢèĪ¬": 125202, + "ĠÑħвилин": 125203, + "ĠÐľÐ¾Ð¶Ð½Ð¾": 125204, + "ĠнаÑĩале": 125205, + "Ġоднов": 125206, + "ĠÃľÃ§": 125207, + "ÑĨионнÑĭй": 125208, + "Ġìļķ": 125209, + "æ¼Ĥ": 125210, + "å²³": 125211, + "تدÙī": 125212, + "κηÏĤ": 125213, + "âĢĻnda": 125214, + "ï¼IJï¼IJ": 125215, + "èªī": 125216, + "é§ħå¾ĴæŃ©": 125217, + "ĠÙģرزÙĨد": 125218, + "åħ¬è·¯": 125219, + "αÏĥίαÏĤ": 125220, + "าà¸ĵาà¸Ī": 125221, + "ëij¥": 125222, + "ĠÏĢοι": 125223, + "ĠبداÙĨ": 125224, + "кап": 125225, + "ĠìŀĪëĬĶëį°": 125226, + "ï¼ĮæѤ": 125227, + "à¸Ľà¸£à¸°à¹Ĥยà¸Ĭà¸Ļ": 125228, + "ĠÚ©Ø´ÙĪرÙĩاÛĮ": 125229, + "ุส": 125230, + "ãģ¹ãģį": 125231, + "ĠÑģамÑĭй": 125232, + "ĠплÑı": 125233, + "Ġбед": 125234, + "人æīį": 125235, + "สหร": 125236, + "ูà¸ķ": 125237, + "Ġkullanımı": 125238, + "íķĻëħĦ": 125239, + "æ²»çĸĹ": 125240, + "ãĢĤä¸įè¿ĩ": 125241, + "æ£ļ": 125242, + "ëĤ¨ëıĦ": 125243, + "Ġآتش": 125244, + "ÏĩÎŃÏĤ": 125245, + "Ġfunkci": 125246, + "нообÑĢаз": 125247, + "à¥ĭफ": 125248, + "Ġkaps": 125249, + "าษà¸İ": 125250, + "(ع": 125251, + "ï¼ĮåĬł": 125252, + "à¹Ĭà¸ģ": 125253, + "ĠÙĩØ´": 125254, + "ĠدرÙĪÙĨ": 125255, + "ĠмеÑĩ": 125256, + "ĠпÑĢежде": 125257, + "à¹Īย": 125258, + "Ġارشد": 125259, + "าà¹Ģล": 125260, + "æ¯Ķè¼ĥ": 125261, + "Ġذکر": 125262, + "ĠæĿ¡": 125263, + "ÐĬ": 125264, + "ÑĥкÑĢаÑĹн": 125265, + "ÙĬÙĨات": 125266, + "ì¢ĭ": 125267, + "диÑı": 125268, + "ÏĦÏģι": 125269, + "ĠÐļаз": 125270, + "ÙĤÙĦاÙĦ": 125271, + "_,,": 125272, + "ĠÚĨت": 125273, + "ĠìĿ¼ìłķ": 125274, + "ĠÐŁÑĢоÑĦ": 125275, + "æ³Ľ": 125276, + "Ġdruhý": 125277, + "ÑĩÑĥк": 125278, + "ledik": 125279, + "Ġheyec": 125280, + "Ñĭвал": 125281, + "ĠDüny": 125282, + "ĠçĻº": 125283, + "ĠpÅĻátel": 125284, + "βάλ": 125285, + "Ġغر": 125286, + "ëĭ¨ì²´": 125287, + "ìĽ¨ëĶĶìĭľ": 125288, + "ÑĢаÑīениÑı": 125289, + "нÑĨиклопед": 125290, + "Ġpodnikatel": 125291, + "Ġìĭłìŀħ": 125292, + "ĠÙģرآ": 125293, + "илиÑģÑı": 125294, + "Ġolumlu": 125295, + "à¥įषमत": 125296, + "ĠÙħتخصص": 125297, + "йом": 125298, + "ؤاÙĦ": 125299, + "ĠÐĿаÑĤ": 125300, + "ìĺ¤ëĬĶ": 125301, + "ĠMüdürlÃ¼ÄŁÃ¼": 125302, + "ĠHÃłnh": 125303, + "ĠسابÙĤ": 125304, + "ï¼īçļĦ": 125305, + "ĠQuý": 125306, + "ládánÃŃ": 125307, + "Ġìļ´ëıĻ": 125308, + "ĠÐĺÑħ": 125309, + "諾": 125310, + "lıģının": 125311, + "lil": 125312, + "uÄį": 125313, + "ĠÑĩемпÑĸон": 125314, + "ÑĤож": 125315, + "Ġä½Ľ": 125316, + "ниÑĨе": 125317, + "ĠпеÑĢвого": 125318, + "ĠÑģом": 125319, + "ÏĩÏİ": 125320, + "ÅĻik": 125321, + "иÑĤелÑĮÑģÑĤва": 125322, + "ĠÄ°ki": 125323, + "Ġaskeri": 125324, + "cisi": 125325, + "ĠjednÃŃm": 125326, + "Ġstanice": 125327, + "èĤ¡ç¥¨": 125328, + "à¸ľà¸¡": 125329, + "Từ": 125330, + "Å¡ak": 125331, + "ÏĦία": 125332, + "мами": 125333, + "ãģĮåĩº": 125334, + "μοί": 125335, + "маÑĶ": 125336, + "ëł¥ìĿ´": 125337, + "ãĤĦãģ£ãģ¦": 125338, + "Ġå¼µ": 125339, + "ØĮĊ": 125340, + "Ġ»Ċ": 125341, + "اجات": 125342, + "á½³": 125343, + "æĻĤãģ®": 125344, + "Ġпокол": 125345, + "ÑĸÑĤеÑĤ": 125346, + "Ġíķ´ê²°": 125347, + "Ġdedim": 125348, + "ĠÑĤвеÑĢд": 125349, + "ĠженÑīина": 125350, + "едини": 125351, + "ĠÙ¾ÛĮÚ©": 125352, + "iversite": 125353, + "ĠآسÛĮاب": 125354, + "ĠÑħаÑĢакÑĤеÑĢиÑģÑĤики": 125355, + "ĠØ£ÙĨÙĩا": 125356, + "ĠÑĥкÑĢаÑĹнÑģÑĮкоÑĹ": 125357, + "ĠاختÙĦاÙģ": 125358, + "Ġtez": 125359, + "ÏģεÏħ": 125360, + "Ġkonumu": 125361, + "ĠÑĤеÑħнÑĸ": 125362, + "мÑĸв": 125363, + "èĬ¯": 125364, + "ĠÏĥελ": 125365, + "Ä¢": 125366, + "μιÏĥ": 125367, + "ีà¹īĊ": 125368, + "Ġmne": 125369, + "ĠоÑĤвеÑĩ": 125370, + "ĠÎī": 125371, + "Ġéĩİ": 125372, + "Ġgấp": 125373, + "ĠпÑĢодÑĥкÑĤÑĭ": 125374, + "ĠСÑĢед": 125375, + "ÑĸллÑı": 125376, + "à¸ļà¸Ńà¸ģ": 125377, + "ĠtÅĻÃŃdy": 125378, + "Ġthá»ķ": 125379, + "ãĥĩãĤ£ãĤ¢": 125380, + "ÏĢοιη": 125381, + "νει": 125382, + "æĪij们çļĦ": 125383, + "Ġprofesyonel": 125384, + "ĠRakou": 125385, + "Ġвидно": 125386, + "Ġzby": 125387, + "ĠØŃاÙĦÛĮ": 125388, + "Ġé£Ł": 125389, + "ĠLÃłm": 125390, + "Ġگست": 125391, + "ĠТип": 125392, + "θι": 125393, + "ávis": 125394, + "ÙIJب": 125395, + "åı¯èĥ½æĢ§": 125396, + "ĠÑģемей": 125397, + "ãĤīãĤĮãģ¦ãģĦãĤĭ": 125398, + "ìĥģíĴĪ": 125399, + "ĠοÏħ": 125400, + "Ġà¤ħà¤Ĺस": 125401, + "олом": 125402, + "γον": 125403, + "ĠÑģвÑıÑī": 125404, + "æĵ¦": 125405, + "ÏĥÏĦηκε": 125406, + "èĢħçļĦ": 125407, + "-à¤ķ": 125408, + "ÑĤии": 125409, + "ĠвизнаÑĩеннÑı": 125410, + "åıijåĩº": 125411, + "даÑħ": 125412, + "ĠмоÑĢÑı": 125413, + "æī¾åĪ°": 125414, + "ÙĦÙĪب": 125415, + "èĬĻ": 125416, + "ĠÑĦакÑĤ": 125417, + "æ¯į亲": 125418, + "idlo": 125419, + "ĠStad": 125420, + "Ñįй": 125421, + "ìĽIJìĿ´": 125422, + "à¤ıन": 125423, + "æķ´ä¸ª": 125424, + "Ġfık": 125425, + "ĠÙħات": 125426, + "ÏĢον": 125427, + "Ġ경기ëıĦ": 125428, + "Ġαδ": 125429, + "Ġvzpom": 125430, + "Ġná»ĵi": 125431, + "ĠÙĨÙĤاط": 125432, + "ождение": 125433, + "ĠзалÑĸз": 125434, + "Ġrủi": 125435, + "è¾°": 125436, + ".:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:": 125437, + "ĠMÃľ": 125438, + "Ġkari": 125439, + "ĠÑģобÑĭ": 125440, + "ìĸ´ì§Ħ": 125441, + "رÙĬس": 125442, + "ubu": 125443, + "ĠØ®ÙĦÙģ": 125444, + "ظٹط": 125445, + "æĿī": 125446, + "ĠæĻ®éĢļ": 125447, + "ĠÙħÙĪاطÙĨØ©": 125448, + "ĠÑģÑĤанÑĥ": 125449, + "Ġê·¸ëħĢìĿĺ": 125450, + "ĠÙĦÙĥرة": 125451, + "Ġosm": 125452, + "ĠÑĥÑĢож": 125453, + "ега": 125454, + "Ġfelse": 125455, + "æĢĿèĢĥ": 125456, + "ãĢĮãģĪ": 125457, + "ĠновиÑħ": 125458, + "à¹IJ": 125459, + "üml": 125460, + "ĠíĶ¼íķ´": 125461, + "ìĿ¼ë°ĺ": 125462, + "Ġtürü": 125463, + "ĠмÑĸÑģÑĤÑĸ": 125464, + "Ġkaždé": 125465, + "ĠÙħسجد": 125466, + "ấc": 125467, + "ĠÙģÚ©ÛĮ": 125468, + "Ġyasal": 125469, + "å°±ç®Ĺ": 125470, + "ĠоблиÑĩÑĩÑı": 125471, + "ĠÙĦدÙĬ": 125472, + "ابات": 125473, + "ĠÑģпаÑģ": 125474, + "êµ°ìļĶ": 125475, + "Ġпад": 125476, + "ĠбÑĢаÑĤ": 125477, + "éĩį大": 125478, + "Ġdüzenlenen": 125479, + "Gün": 125480, + "Ġaplikace": 125481, + "à¸Ńห": 125482, + "Ġçħ": 125483, + "ĠÑģоÑģÑĤоиÑĤ": 125484, + "è¯Ħä»·": 125485, + "ĠDuy": 125486, + "طاÙĤ": 125487, + "ĠпÑĢидеÑĤÑģÑı": 125488, + "Ġtolik": 125489, + "Ġobrov": 125490, + "ĠpÅĻipoj": 125491, + "ĠÄ±ÅŁÄ±": 125492, + "Ú¯ÙĪÛĮ": 125493, + "æľŁå¾ħ": 125494, + "иплом": 125495, + "Ġince": 125496, + "ĠСоб": 125497, + "енÑĮÑİ": 125498, + "è§Ĵèī²": 125499, + "Ġà¸ķร": 125500, + "Ġbại": 125501, + "Ġê°ĢëĬ¥íķľ": 125502, + "ĠblÃŃzk": 125503, + "Ġtách": 125504, + "ĠвидÑĭ": 125505, + "иÑĩна": 125506, + "Ġvyžad": 125507, + "ĠìĨIJìĿĦ": 125508, + "ĠÐĿÑĸмеÑĩ": 125509, + "åŁºäºİ": 125510, + "ĠÐļÑĢи": 125511, + "ĠعزÛĮز": 125512, + "tiler": 125513, + "евÑĸ": 125514, + "Ġmožnosti": 125515, + "باز": 125516, + "ĠìĤ¬ë§Ŀ": 125517, + "ĠzÅĻejmÄĽ": 125518, + "íŤ": 125519, + "Ġürünleri": 125520, + "Ġγλη": 125521, + "аки": 125522, + "ãĤĴéĸĭ": 125523, + "anou": 125524, + "åĽ½ãģ®": 125525, + "ĠyaÅŁanan": 125526, + "ĠÑģевеÑĢ": 125527, + "Ġæ©Ł": 125528, + "มาà¸ģมาย": 125529, + "ĠíijľíĺĦ": 125530, + "รส": 125531, + "ĠضربÙĩ": 125532, + "ĠEvet": 125533, + "æĨ¶": 125534, + "ĠدÙĤÛĮÙĤ": 125535, + "Ġвозникнов": 125536, + "ìľłë¨¸": 125537, + "Ġíijľìĭľ": 125538, + "ÛĮØ´ÙĨ": 125539, + "ãĥĹãĥ©": 125540, + "ÑĤÑİ": 125541, + "ÙĪسÛĮ": 125542, + ")ìĿ´": 125543, + "è¯ģæĺİ": 125544, + "ãģ§ãģįãģ¾ãģĻ": 125545, + "ìĪĺìĿĺ": 125546, + "çĸĨ": 125547, + "ĠÙħÙģÙĩÙĪÙħ": 125548, + "оÑĩаÑĤкÑĥ": 125549, + "ालà¤ķ": 125550, + "æ¡Ĥ": 125551, + "ĠоÑħоÑĢони": 125552, + "ĠارزÛĮابÛĮ": 125553, + "ĠìµľëĮĢ": 125554, + "Ġthoải": 125555, + "ĠЦенÑĤÑĢалÑĮ": 125556, + "ĠçķĻ": 125557, + "à¸Ľà¸£à¸°à¹Ģà¸łà¸Ĺ": 125558, + "æµ·å¤ĸ": 125559, + "ĠÅŀu": 125560, + "íĻľëıĻ": 125561, + "ĠdvÄĽma": 125562, + "istrovstvÃŃ": 125563, + "Ġaracılıģıyla": 125564, + "Ġtrá»Ļn": 125565, + "»:": 125566, + "íĭ±": 125567, + "ĠÙĦÛĮÚ¯": 125568, + ".Ðļ": 125569, + "ĠÙħÙĤاÛĮسÙĩ": 125570, + "ĠвмÑĸ": 125571, + "رÙĪب": 125572, + "ĠاÙĦØ´Ùħ": 125573, + "ĠdennÄĽ": 125574, + "ÑĥÑĩа": 125575, + "åħ¹": 125576, + "Ñīим": 125577, + "ĠíĬ¹íŀĪ": 125578, + "ĠاستاÙĨدارد": 125579, + "à¥Ģध": 125580, + "ãĤ¸ãĤ¢": 125581, + "à¹ĩà¹ĩ": 125582, + "иÑģÑģ": 125583, + "Ġkazanç": 125584, + "ĠzÃŃskal": 125585, + "åĽŀæĿ¥": 125586, + "ĠпÑıÑĤÑĮ": 125587, + "ĠÄijãi": 125588, + "ĠÙĪرد": 125589, + "Ġìķķ": 125590, + "ุà¸Ĺร": 125591, + "åĬ¨çī©": 125592, + "Ġpublik": 125593, + "æĪIJæľ¬": 125594, + "æĪIJåijĺ": 125595, + "ãĤ¤ãĤ¯": 125596, + "شرÙĥØ©": 125597, + "á¿ĨÏĤ": 125598, + "Ġyola": 125599, + "üyoruz": 125600, + "ĠкÑĥÑĢи": 125601, + "ĠпоÑħож": 125602, + "Ġìłľê°Ģ": 125603, + "ियत": 125604, + "ائÙĦØ©": 125605, + "Ġãģ¾": 125606, + "़à¥ĩà¤Ĥ": 125607, + "ÑģÑĮкими": 125608, + "âĢľä½ł": 125609, + "imizde": 125610, + "ìµľìĭł": 125611, + "Ậ": 125612, + "èŁ": 125613, + "à¸Ħรà¸Ńà¸ļ": 125614, + "ãĢĢãĢĢãĢĢĠãĢĢĠãĢĢĠãĢĢ": 125615, + "تغ": 125616, + "ĠVÅ¡ech": 125617, + "à¸±à¸Ľà¸Ķาห": 125618, + "Ġatd": 125619, + "воÑİ": 125620, + "Ġyapım": 125621, + "ologické": 125622, + "Ġплен": 125623, + "Ġlazım": 125624, + "rung": 125625, + "ìĦľê´Ģ": 125626, + "Ġjiný": 125627, + "Ġtròn": 125628, + "ĠполÑĸÑĤики": 125629, + "اÙĥÙħ": 125630, + "دÛĮگر": 125631, + "à¥Īà¤Ĥ.Ċ": 125632, + "ĠاÙĩد": 125633, + "Ġãĥį": 125634, + "ĠпÑĢодÑĥкÑĤов": 125635, + "æĤŁ": 125636, + "ĠpÅĻÃŃpadech": 125637, + "ĠzaÄįala": 125638, + "åħ¥ãĤĮ": 125639, + "ĠÑĢÑĸвнÑĸ": 125640, + "æĦŁæĥħ": 125641, + "ĠΧα": 125642, + "죽": 125643, + "ิà¸Īารà¸ĵ": 125644, + "ÂłÐ±": 125645, + "ÑĸÑĹв": 125646, + "بش": 125647, + "çļĦéĹ®é¢ĺ": 125648, + "Ġzastup": 125649, + "볤ìļĶ": 125650, + "ãģ§ãģĻãģŃ": 125651, + "âĢĮداÙĨ": 125652, + "ï¼ĮæĤ¨": 125653, + "ĠuvÄĽdom": 125654, + "ãģ¦ãĤĭ": 125655, + "ìĤ¬ëŀĮ": 125656, + "lun": 125657, + "éĽĨåIJĪ": 125658, + "맹": 125659, + "Ġžid": 125660, + "à¤Ĭ": 125661, + "Ġtrp": 125662, + "лениÑħ": 125663, + "___": 125664, + "ÐľÐŀ": 125665, + "å¼ĭ": 125666, + "λÎŃον": 125667, + "ĠÄijòi": 125668, + "ĠкÑĢок": 125669, + "layıcı": 125670, + "ì¶ľìŀ¥ë§ĪìĤ¬ì§Ģ": 125671, + "åijĪ": 125672, + "éľŀ": 125673, + "ĠпоглÑıд": 125674, + "ترÙĥ": 125675, + "ĠتÙģاÙĪت": 125676, + "Ġå®®": 125677, + "ĠدÙĪربÛĮÙĨ": 125678, + "æĶ¾åľ¨": 125679, + "ĠÑģлÑĥÑĩаев": 125680, + "ĠÏħÏĢηÏģε": 125681, + "ë§ŀ": 125682, + "ãģĻãģĻ": 125683, + "ê²łëĭ¤": 125684, + "รายà¸ģาร": 125685, + "ĠÏĢÏģιν": 125686, + "ĠÑģмеÑĪ": 125687, + "å§ī": 125688, + "Ġvýsledky": 125689, + "Ġpotvr": 125690, + "åıijè¡Į": 125691, + "Ġtúi": 125692, + "ĠìĤ¬ëĿ¼": 125693, + "ç«Ļåľ¨": 125694, + "Ġjaký": 125695, + "Ġà¸ļาà¸ĩ": 125696, + "Ġdikkate": 125697, + "ĠدرآÙħد": 125698, + "æİĴåIJį": 125699, + "rálnÃŃ": 125700, + "ê³¼ìĿĺ": 125701, + "ä½µ": 125702, + "олаг": 125703, + "isiyle": 125704, + "Ġæ½": 125705, + "Ġतम": 125706, + "Ġdij": 125707, + "Ġnhánh": 125708, + "ĠRek": 125709, + "设æĸ½": 125710, + "ĠpodmÃŃnek": 125711, + "并ä¸į": 125712, + "кÑĥÑĤ": 125713, + "Ġê³łëł¤": 125714, + "çļĦå£°éŁ³": 125715, + "æĪĺäºī": 125716, + "даÑı": 125717, + "Ġê´Ģìĭ¬": 125718, + "ĠÑĦÑĸнанÑģ": 125719, + "ĠKöy": 125720, + "Ġжал": 125721, + "ĠÑģлÑĥжби": 125722, + "мена": 125723, + "تÙĬار": 125724, + "ĠÑĩемпион": 125725, + "ÏĢιÏĥ": 125726, + "landırma": 125727, + "maktan": 125728, + "Ġ丶": 125729, + "à¹Īà¸Ńส": 125730, + "ĠmÃ¼ÅŁteri": 125731, + "ĠصÙĨد": 125732, + "Ġetmesi": 125733, + "ĠпоÑĢÑĤ": 125734, + "νονÏĦαι": 125735, + "Ġãħĭãħĭ": 125736, + "ĠKAR": 125737, + "Ġuch": 125738, + "ĠØ®ÙĦÙĤ": 125739, + "าษà¸İร": 125740, + "æŃ¡": 125741, + "Ġимени": 125742, + "ãģłãģijãģ©": 125743, + "Ġìĭ¤ìĭľ": 125744, + "ÏĥÏīÏĢ": 125745, + "Ġì£": 125746, + "tÄĽÅ¾": 125747, + "Ġözellikleri": 125748, + "Ġبپ": 125749, + "ĠизобÑĢаж": 125750, + "ÙĬÙħÙĥÙĨ": 125751, + "ĠãĥĶ": 125752, + "ĠÐĶив": 125753, + "ĠØ¥ÙĬ": 125754, + "ÙĥÙĬÙĦ": 125755, + "ĠÅŁik": 125756, + "Ġà¤Ĩà¤ĸ": 125757, + "larınızı": 125758, + "ĠвÑĸдÑĢÑĸз": 125759, + "ĠÑĢобоÑĤа": 125760, + "Ġtarif": 125761, + "ĠاÙĪت": 125762, + "ınma": 125763, + "é£Łãģ¹": 125764, + "ĠuzavÅĻ": 125765, + "룸": 125766, + "çĽijçĿ£": 125767, + "Ġ:ï¼¼": 125768, + "θÏħν": 125769, + "à¸Ķร": 125770, + "alarından": 125771, + "èĩªæĭį": 125772, + "ĠroÄįnÃŃ": 125773, + "ाà¤ĩव": 125774, + "ĠÙĥÙĪر": 125775, + "ĠÏĦαιν": 125776, + "ĠÑĸндив": 125777, + "rve": 125778, + "ĠνεÏĨÏİÏĥειÏĤ": 125779, + "Ġbá»ijn": 125780, + "Ġå¿«": 125781, + "ĠÑģолÑĮ": 125782, + "liÄŁinde": 125783, + "à¤¿à¤¨à¤Ł": 125784, + "ahtar": 125785, + "ĠnebezpeÄį": 125786, + "æĹ¢çĦ¶": 125787, + "ĠëĮĢìłĦ": 125788, + "ĠÙĨÚ¯ÙĩدارÛĮ": 125789, + "ĠzÃŃskat": 125790, + "ĠналиÑĩие": 125791, + "Ġaks": 125792, + "ï¼īãĢĤĊĊ": 125793, + "Ġrodiny": 125794, + "ĠзаÑħÑĸд": 125795, + "å¾®ç¬ij": 125796, + "ÂłÐĶа": 125797, + "radu": 125798, + "īnh": 125799, + "ples": 125800, + "ĠKons": 125801, + "ิà¹Ĥล": 125802, + "ĠاÙĦÙĪص": 125803, + "åIJ¬åĪ°": 125804, + "ĠÑģпоÑĢÑĤив": 125805, + "ĠÑģайÑĤе": 125806, + "Ġاظ": 125807, + "larındaki": 125808, + "Ġtá»ķn": 125809, + "ÐĿÐĨ": 125810, + "Ġnedost": 125811, + "ĠÑĤоÑĢгÑĸв": 125812, + "ĠاÛĮت": 125813, + "Ġاختصاص": 125814, + "ĠÃľy": 125815, + "ĠSadece": 125816, + "ĠÙħخرÙĪØ·": 125817, + "Äģn": 125818, + "çesi": 125819, + "ĠçĬ": 125820, + "ãĤĤãģ£ãģ¨": 125821, + "ĠéŁĵ": 125822, + "èµĸ": 125823, + "ĠполÑĥÑĩениÑı": 125824, + "Ġëĺ": 125825, + "âĢĻÑĹ": 125826, + "bÃŃr": 125827, + "ĠбÑĸблÑĸ": 125828, + "ĠDá»±": 125829, + "женеÑĢ": 125830, + "ç½ijåĪĬ": 125831, + "Ġà¤²à¥ľà¤ķ": 125832, + "ĠÑĥÑĩнÑĸв": 125833, + "èĪ°": 125834, + "ĠÃĸÄŁren": 125835, + "Ġola": 125836, + "Ġ।âĢĿĊĊ": 125837, + "ระà¹Ģà¸ļ": 125838, + "á½²": 125839, + "Ġرز": 125840, + "еи": 125841, + "ÑıÑĩи": 125842, + "ØŃب": 125843, + "æĴ¤": 125844, + "ãģ¾ãģŁãģ¯": 125845, + "бина": 125846, + "ĠγεÏģ": 125847, + "ĠоÑĤноÑģиÑĤÑģÑı": 125848, + "åīįçļĦ": 125849, + "ĠÅ¡Å¥": 125850, + "Ġyılda": 125851, + ":::::|": 125852, + "ustil": 125853, + "اÙĦØ¥": 125854, + "ĠsouÄįasné": 125855, + "ĠÙĨÛĮرÙĪÛĮ": 125856, + "ÑĩеÑģкое": 125857, + "ظÙģ": 125858, + "ĠÙ¾ÛĮØ´ÛĮÙĨÙĩ": 125859, + "ĠعÙģØ´": 125860, + "Ġrostlin": 125861, + "ç½ijåĪĬä¸ĭ载次æķ°": 125862, + "ĠпÑĢигоÑĤовиÑĤÑĮ": 125863, + "ãĥĮ": 125864, + "ĠÙĪÙħع": 125865, + "Ġbecer": 125866, + "ĠãĤ±": 125867, + "ÏĩήÏĤ": 125868, + "оÑģÑĤÑĥп": 125869, + "Ġ밾매": 125870, + "Ñĸйного": 125871, + "Ġhrd": 125872, + "ĠпÑĢепаÑĢаÑĤÑĭ": 125873, + "ĠÙģرض": 125874, + "ĠTyto": 125875, + "ĠкÑĢаÑĹн": 125876, + "Ġزاد": 125877, + "Ġiktidar": 125878, + "ì§ĵ": 125879, + "Ùijر": 125880, + "ÑĢÑıдÑĥ": 125881, + "кÑĸй": 125882, + "âĶ£": 125883, + "Ġкожи": 125884, + "ĠتازÙĩ": 125885, + "obec": 125886, + "inae": 125887, + "Ġvyjád": 125888, + "ĠرÙģتÙĩ": 125889, + "Що": 125890, + "ĠBylo": 125891, + "оÑĤв": 125892, + "ĠденÑĮги": 125893, + "é§Ĩ": 125894, + "ĠмаÑĪин": 125895, + "Ġأج": 125896, + "ì´Īëĵ±íķĻêµIJ": 125897, + "dıģında": 125898, + "баÑģ": 125899, + "Ġæł¹": 125900, + "ÎijÎĿΤ": 125901, + "ÙĴØŃ": 125902, + "Ġjejichž": 125903, + "ìĹIJìĦľìĿĺ": 125904, + "Ġадже": 125905, + "Ġìı": 125906, + "ÏĥοÏħ": 125907, + "etleri": 125908, + "ĠبعدÛĮ": 125909, + "ĠìŀIJëıĻì°¨": 125910, + "ิà¸įà¸į": 125911, + "Ġtisk": 125912, + "ãĥ¼ãĤ¹ãĥĪ": 125913, + "Ġमतलब": 125914, + "ê³Ħíļį": 125915, + "ãĤ¦ãĥĪ": 125916, + "Ġà¹Ģมà¸ķร": 125917, + "Ġopsiyon": 125918, + "ĠÑĢавно": 125919, + "ĠبÛĮÙħÙĩ": 125920, + "Ġ먼ìłĢ": 125921, + "иÑĤелÑĮнÑĭм": 125922, + "ĠнÑĸби": 125923, + "ĠдеÑģÑıÑĤ": 125924, + "ĠÑģиÑĤÑĥаÑĨии": 125925, + "еÑĢÑĪе": 125926, + "ľ": 125927, + "ุà¸ķร": 125928, + "Ġyönetimi": 125929, + "éIJĺ": 125930, + "ĠÙħÛĮتÙĪاÙĨ": 125931, + "ĠزÙĨدÙĩ": 125932, + "ãĥŃãĥ³": 125933, + "ĠKBS": 125934, + "ìĦľë¹ĦìĬ¤": 125935, + "ï»ł": 125936, + "eckého": 125937, + "ĠÙĤابÙĦÛĮت": 125938, + "ãĢĤä»Ĭ": 125939, + "ÃŃnÄĽ": 125940, + "ĠÑģмог": 125941, + "ĠÑģлÑĭÑĪ": 125942, + "ÙĴÙģ": 125943, + "poÅĻád": 125944, + "елÑĮно": 125945, + "ĠείÏĩαν": 125946, + "-ÐŁÐµÑĤеÑĢб": 125947, + "ĠChiến": 125948, + "éry": 125949, + "ĠÑĸнÑģÑĤиÑĤÑĥÑĤ": 125950, + "ç»Ĩèĥŀ": 125951, + "ÑĭÑŁN": 125952, + "Ġvua": 125953, + "Ġà¤ħश": 125954, + "ÑĢоÑģÑĤо": 125955, + "ĠvůÄįi": 125956, + "ë¿IJ": 125957, + "Ġliá»ĩt": 125958, + "Ġíķµ": 125959, + "ĠاÙģر": 125960, + "ĠTeknik": 125961, + "Ġroli": 125962, + "ĠпопÑĭÑĤ": 125963, + "аÑĤкÑĸв": 125964, + "Ġüniversit": 125965, + "аÑĤоÑĢÑĭ": 125966, + "ÑİÑīиÑħÑģÑı": 125967, + "Ġتض": 125968, + "лÑİÑĩаеÑĤÑģÑı": 125969, + "Ġíĸīë³µ": 125970, + "Ġayrıntılı": 125971, + "ĠкиÑĢп": 125972, + "æĭ¼": 125973, + "ëģĶ": 125974, + "лаÑĤа": 125975, + "Ġkhoán": 125976, + "Ġhâlâ": 125977, + "ÏĥÏħ": 125978, + "оглаÑģ": 125979, + "æİ¥çĿĢ": 125980, + "éĿ©åij½": 125981, + "ĠpÅĻeb": 125982, + "à¹Ģà¸īล": 125983, + "ĠاÙĦÙħÙĦÙĦÛĮ": 125984, + "åłĨ": 125985, + "íıIJ": 125986, + "à¸ķลà¸Ńà¸Ķ": 125987, + "°С": 125988, + "ìĤ¬ëŀij": 125989, + "Ġгиб": 125990, + "ë²Ī째": 125991, + "æĶ¹åıĺ": 125992, + "表çİ°": 125993, + "иÑĩеÑģким": 125994, + "สมà¹Ģà¸Ķ": 125995, + "å±ħæ°ij": 125996, + "ÂĽ": 125997, + "ĠìķĦìĿ´ëĶĶ": 125998, + "ĠмеждÑĥнаÑĢод": 125999, + "Ġyem": 126000, + "Ġmül": 126001, + "ĠاÛĮست": 126002, + "Ġãĥ´": 126003, + "ัà¸Ļà¹Ħà¸Ķ": 126004, + "à¥Ģण": 126005, + "åħ¶å®ŀ": 126006, + "Ġgelenek": 126007, + "ë¶ģëıĦ": 126008, + "à¹īาà¸ķ": 126009, + "Ġìī¬": 126010, + "ĠÏĢÎŃ": 126011, + "ĠÙĥاÙħÙĦ": 126012, + "ĠتعÙħÛĮر": 126013, + "訴": 126014, + "ë¹Ļ": 126015, + "iyim": 126016, + "å°¿": 126017, + "éĤ£æł·": 126018, + "êµŃìĿĺ": 126019, + "ãģĹãģ¦ãģĬãĤĬ": 126020, + "Ġniž": 126021, + "Ġκον": 126022, + "à¹Īาà¸Ń": 126023, + "Ġγε": 126024, + "ĠСевеÑĢ": 126025, + "ediálnÃŃ": 126026, + "ãģŁãģ¡ãģ®": 126027, + "mayacak": 126028, + "ÑĻ": 126029, + "ĠÑĥгл": 126030, + "Ġkapas": 126031, + "ÑĥвалиÑģÑı": 126032, + "ĠмеÑģÑıÑĨа": 126033, + "ữu": 126034, + "ิลล": 126035, + "ãĤĪãĤĬãĤĤ": 126036, + "à¥ĩण": 126037, + "Ġ客": 126038, + "ĠdeÄŁerli": 126039, + "ÙĪاز": 126040, + "ีà¸Ńย": 126041, + "ĠåıĪ": 126042, + "Ġà¸Ķร": 126043, + "ĠÙĨاب": 126044, + "ĠتÙĦÙĪÛĮزÛĮÙĪÙĨ": 126045, + "Ġolanlar": 126046, + "ä¼ĺç§Ģ": 126047, + "ÙĥاÙĦ": 126048, + "ĠдеÑģÑıÑĤи": 126049, + "mán": 126050, + "ĠÑĢанÑĮ": 126051, + "Ġìłľì¶ľ": 126052, + "è³¢": 126053, + "або": 126054, + "Ġtechnik": 126055, + "ĠKiá»ĥm": 126056, + "teki": 126057, + "á¹": 126058, + "ĠmnÄĽ": 126059, + "Ġê³µê°Ħ": 126060, + "ĠMek": 126061, + "ĠاعتÙħاد": 126062, + "à¹Įà¹Ħà¸Ķ": 126063, + "εÏģÏĮ": 126064, + "ĠÑĥдаÑĢ": 126065, + "оÑĩÑĮ": 126066, + "æ¦Ĥ念": 126067, + "ÑĢал": 126068, + "алÑĮнÑĭми": 126069, + "à¥ģरस": 126070, + "ráci": 126071, + "ĠÙĤÙĪÙĦ": 126072, + "Ġदव": 126073, + "ĠпÑĢавда": 126074, + "Ġå¿ħ": 126075, + "Ġdosud": 126076, + "нÑĥÑĤÑĮÑģÑı": 126077, + "NÄĥm": 126078, + "à¸ĺà¸Ļ": 126079, + "Ġdokun": 126080, + "Ġåľ¨çº¿": 126081, + "ูà¹Ħ": 126082, + "ụy": 126083, + "ĠновÑĭÑħ": 126084, + "Ġmezun": 126085, + "ĠCần": 126086, + "à¸ģารà¸ŀ": 126087, + "ĠìĺĪìłķ": 126088, + "Ïĥή": 126089, + "à¹Īà¸Ļà¹Ģà¸ģม": 126090, + "ĠÙĪاÙĦس": 126091, + "ãĥ³ãĥĨãĤ£": 126092, + "çľĭè§ģ": 126093, + "ĠساÙĦÙħ": 126094, + "ĠбагаÑĤÑĮоÑħ": 126095, + "ĠÄijÃłi": 126096, + "ĠدستÛĮ": 126097, + "à¸ŀà¸Ń": 126098, + "епÑĤи": 126099, + "ĠìłĦíĻĶ": 126100, + "æĻĤãģ«": 126101, + "ĠSeznam": 126102, + "мÑĸнÑĥ": 126103, + ";?#": 126104, + "à¥Ģसर": 126105, + "ĠÚĨÛĮست": 126106, + "νοια": 126107, + "ัà¸Ļà¸Ń": 126108, + "Ġà¸Ħำ": 126109, + "Ġë³´íĺ¸": 126110, + "Ġiddia": 126111, + "Ġβιβ": 126112, + "é«ĺä¸Ń": 126113, + "Ù¨": 126114, + "ÐĴаж": 126115, + "ĠиÑģполн": 126116, + "ÑĪÑĤов": 126117, + "ĠTaÅŁ": 126118, + "ìĽħ": 126119, + "åĬ¹": 126120, + "Ġåıĥ": 126121, + "Ġprostoru": 126122, + "ĠÑģпад": 126123, + "еÑĢина": 126124, + "ĠpÅĻeklad": 126125, + "Å¡ov": 126126, + "ĠÙģÙĩÙħ": 126127, + "æĬij": 126128, + "Ġابتدا": 126129, + "ãĤĴãģĬ": 126130, + "likler": 126131, + "ĠÙħاÙĥ": 126132, + "Ġkonut": 126133, + "ĠداÙĨشجÙĪÛĮ": 126134, + "ĠопÑĤим": 126135, + "ĠбÑĥма": 126136, + "ĠлÑİдÑıм": 126137, + "ĠлÑĸка": 126138, + "ĠÑĢозповÑĸд": 126139, + "nesenÃŃ": 126140, + "Ġà¸łà¸²à¸ŀ": 126141, + "иÑĩний": 126142, + "اطÙĦ": 126143, + "ÑİÑīими": 126144, + "ãģıãģ¨": 126145, + "éŃ¯": 126146, + "ĠجÙĨسÛĮ": 126147, + "ÐĺТ": 126148, + "रल": 126149, + "ĠÚ©ÙĪدک": 126150, + "олиÑĤ": 126151, + "ĠÑģÑĤÑĢÑĥкÑĤÑĥÑĢ": 126152, + "vekili": 126153, + "Ġबय": 126154, + "ĠgelmiÅŁ": 126155, + "िरफ": 126156, + "ĠнайкÑĢа": 126157, + "ĠÐĶжон": 126158, + "ĠãĥĹãĥŃ": 126159, + "ĠyaÅŁlı": 126160, + "ĠkarÄ±ÅŁtır": 126161, + "ĠvÄĽtÅ¡inou": 126162, + "Ġvazgeç": 126163, + "à¹īาà¸Ħ": 126164, + "lendirme": 126165, + "Ġç¨ĭ": 126166, + "说è¯Ŀ": 126167, + "ĠíķĦìļĶíķľ": 126168, + "aÅĻilo": 126169, + "ĠležÃŃ": 126170, + "ĠAmerikan": 126171, + "ãĤĦãģĻ": 126172, + "vajÃŃcÃŃ": 126173, + "ÐĿЯ": 126174, + "ĠìĹĦë§Ī": 126175, + "Ġåĥ": 126176, + "rál": 126177, + "Ġçay": 126178, + "tuÄŁ": 126179, + "ุà¸įาà¸ķ": 126180, + "ĠÑģлив": 126181, + "νοÏħ": 126182, + "ĠOv": 126183, + "ĠCHP": 126184, + "ĠZemÄĽ": 126185, + "ĠÄįeský": 126186, + "ĠThánh": 126187, + "иÑĤелÑĮноÑģÑĤÑĮ": 126188, + "æĦıä¹ī": 126189, + "à¥įरमण": 126190, + "ĠдиамеÑĤ": 126191, + "Ġklin": 126192, + "ĠکرÛĮ": 126193, + "ãģ§ãģ¯ãģªãģı": 126194, + "飯åºĹ": 126195, + "Ġkênh": 126196, + "ĠÑĢанÑĮÑĪе": 126197, + "ãĤĴãģĹãģŁ": 126198, + "ĠпÑĢибоÑĢ": 126199, + "Ġà¤ĸतर": 126200, + "Ġyu": 126201, + "é§IJ": 126202, + "ĠÑĢабо": 126203, + "ĠÐ¡ÐłÐ¡Ðł": 126204, + "èĬ¬": 126205, + "žila": 126206, + "еÑĢÑĤа": 126207, + "иÑģÑĤÑĢа": 126208, + "Ġкниги": 126209, + "ĠFrancie": 126210, + "ĠÚĺاپ": 126211, + "ĠÎļοÏħ": 126212, + "ัวà¹Ģà¸Ńà¸ĩ": 126213, + "Ġlắng": 126214, + "Ġнами": 126215, + "Ġподой": 126216, + "дÑĢом": 126217, + "obus": 126218, + "ÐĴÑĸн": 126219, + "Ġstalo": 126220, + "Ġà¤ıà¤ľ": 126221, + "ĠLinh": 126222, + "ebiliriz": 126223, + "ĠзавÑĤÑĢа": 126224, + "μεÏģο": 126225, + "ĠÎŃν": 126226, + "ÑıÑĤно": 126227, + "ĠдоÑĢож": 126228, + "åıĤçħ§": 126229, + "Ïĥιο": 126230, + "à¹īà¹Ģà¸ģ": 126231, + "aných": 126232, + "ç·ł": 126233, + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ": 126234, + "åĬĽçļĦ": 126235, + "ĠSır": 126236, + "Ġì§ĢëıĦ": 126237, + "ç·Ĭ": 126238, + "ĠpoÄįtu": 126239, + "ï¼Įä¸İ": 126240, + "ä¸ĸç´Ģ": 126241, + "емого": 126242, + "Ġhusus": 126243, + "Ġölçüde": 126244, + "Ġtrục": 126245, + "à¸Ľà¸¥à¸Ńà¸Ķà¸ł": 126246, + "ÂłpÅĻÃŃ": 126247, + "ĠBölgesi": 126248, + "мом": 126249, + "ãģ«ãģ¦": 126250, + "Ġ쪽ì§Ģ": 126251, + "ÄĽtÅ¡": 126252, + "ĠìĦ±ê³µ": 126253, + "रत": 126254, + "urdu": 126255, + "ĠìĽĢì§ģ": 126256, + "ÑŁÐŃ": 126257, + "nÃŃkem": 126258, + "ĠskuteÄįnosti": 126259, + "ĠдаÑĤ": 126260, + "neum": 126261, + "ĠÑĤаблеÑĤ": 126262, + "jvu": 126263, + "Ġsedm": 126264, + "سÙĬØ©": 126265, + "ĠкоÑĢоб": 126266, + "emmel": 126267, + "ãģ¤ãģij": 126268, + "é¦Ļèķī": 126269, + "ĠشخصÛĮت": 126270, + "ä¸ĬäºĨ": 126271, + "ÙĪرا": 126272, + "ĠаÑĤмоÑģ": 126273, + "Ġлей": 126274, + "Ġzprav": 126275, + "Ġëķħ": 126276, + "ูà¸Ĺ": 126277, + "Ġاسر": 126278, + "ĠAydın": 126279, + "ĠعÙħÙĦÙĬØ©": 126280, + "ĠдÑĸÑĶ": 126281, + "Ġdök": 126282, + "Ġफल": 126283, + "ĠìĤ¬ëŀĮëĵ¤ìĿ´": 126284, + "ĠнаÑĤÑĥÑĢалÑĮ": 126285, + "æŁľ": 126286, + "温度": 126287, + "Ġkles": 126288, + "ĠинвеÑģÑĤи": 126289, + "süz": 126290, + "æĴ°": 126291, + "ĠãĤ¢ãĥ«": 126292, + "ĠèĴ": 126293, + "адки": 126294, + "ĠklÃŃÄį": 126295, + "Ïĩεί": 126296, + "ĠThiết": 126297, + "ĠسرÛĮع": 126298, + "ĠÏĢεÏģιοÏĩή": 126299, + "ÙĪÙĤÙģ": 126300, + "ÏģÏīÏĥη": 126301, + "ĠسÙĦاÙħت": 126302, + "ëĵ¤ëıĦ": 126303, + "ĠveÅĻejné": 126304, + "Ġvitam": 126305, + "ĠبازÛĮگر": 126306, + "ĠÑĢеÑĨепÑĤ": 126307, + "ĠìľĦíķ´ìĦľ": 126308, + "ĠØ£Ùĥبر": 126309, + "Ġküt": 126310, + "민주": 126311, + "Ġtéž": 126312, + "Ġå¼ķ": 126313, + "ÑĩаÑģно": 126314, + "çļĦåľ°": 126315, + "Ġarchitekt": 126316, + "ĠбакÑĤеÑĢ": 126317, + "Ġãģį": 126318, + "ĠодеÑĢж": 126319, + "ĠتجارÛĮ": 126320, + "éĿĪ": 126321, + "Ġrecep": 126322, + "驶": 126323, + "ĠدÙĩÙĩ": 126324, + "è²Į": 126325, + "çµIJå©ļ": 126326, + "ılıç": 126327, + "ãģĭãĤīãģ¯": 126328, + "å¿ĥéĩĮ": 126329, + "æĬķè³ĩ": 126330, + "è²Ŀ": 126331, + "ĠкÑĥлÑĮÑĤÑĥÑĢÑĭ": 126332, + "Ġå°ij": 126333, + "à¹ģà¸ŀร": 126334, + "γκÏĮ": 126335, + "arım": 126336, + "ĠاساسÛĮ": 126337, + "ĠposlednÃŃch": 126338, + "ĠÙħÙħÙĨ": 126339, + "ĠпозиÑĤив": 126340, + "ìł¤": 126341, + "ÑĥвавÑģÑı": 126342, + "Ġجزئ": 126343, + "ìĿ´ìŀIJ": 126344, + "ĠинÑģÑĤÑĢÑĥк": 126345, + "Ġηλεκ": 126346, + "Ġdemir": 126347, + "ä¸ŃæĸĩåŃĹå¹ķ": 126348, + "ĠعاشÙĤ": 126349, + "ĠباÙĦÙĤ": 126350, + "Ġmaz": 126351, + "άνι": 126352, + "ĠdÃ¼ÄŁ": 126353, + "ĠκÏģα": 126354, + "ĠбÑĥдÑĤо": 126355, + "ç¦ıåĪ©": 126356, + "ĠпÑĢедназнаÑĩ": 126357, + "ÙħÙĦØ©": 126358, + "ĠбÑĥдинкÑĥ": 126359, + "Å¥an": 126360, + "íķĢ": 126361, + "ç´¹ä»ĭ": 126362, + "کز": 126363, + "ĠкаÑĦед": 126364, + "ãģ«è¦ĭ": 126365, + "าà¸ķรà¸IJาà¸Ļ": 126366, + "ë¡ľëĬĶ": 126367, + "ivÄĽ": 126368, + "èĥ½æºIJ": 126369, + "ï¼Įåħ¨": 126370, + "ĠÑĥдив": 126371, + "Ġë§ĮëĤĺ": 126372, + "ÐĴÐIJ": 126373, + "ĠGür": 126374, + "ĠдÑĢÑĥгим": 126375, + "ÏĥÏį": 126376, + "ĠoÄŁlu": 126377, + "Ġê°Ģê¹Į": 126378, + "ĠзнаÑĩиÑĤелÑĮно": 126379, + "озÑĸ": 126380, + "Ġmá»±c": 126381, + "ĠBeÅŁ": 126382, + "Ġjezd": 126383, + "ávÄĽ": 126384, + "ÏĦηÏĥε": 126385, + "ãģ¦ãģĦãģªãģĦ": 126386, + "ĠСвÑıÑĤ": 126387, + "Ġमश": 126388, + "ĠΤοÏħ": 126389, + "声ãĤĴ": 126390, + "ĠÑģамое": 126391, + "ĠåĮº": 126392, + "ĠìĤ¬ëŀĮìĿĢ": 126393, + "ĠÙħÙĦت": 126394, + "Ġjoker": 126395, + "Ġneob": 126396, + "ĠÑĤака": 126397, + "ĠÙĩÙģت": 126398, + "Ġδεδο": 126399, + "ĠзаÑħоп": 126400, + "ĠاÙĦÙħخت": 126401, + "езда": 126402, + "Ġíķľë²Ī": 126403, + "ĠعاÙħØ©": 126404, + "Ġdostate": 126405, + "Ġplav": 126406, + "楽ãģĹ": 126407, + ".;.;.;.;": 126408, + "ваÑĶ": 126409, + "Ġbụi": 126410, + "ĠÄijỡ": 126411, + "ĠmyslÃŃ": 126412, + "ĠÙĨار": 126413, + "Ġnút": 126414, + "Ġмала": 126415, + "ΤΡ": 126416, + "ĠاÙĦرÙħزÙĬØ©": 126417, + "ladım": 126418, + "ä¸Ģç·Ĵ": 126419, + "ĠiÅŁÃ§": 126420, + "livé": 126421, + "르ê²Į": 126422, + "аннаÑı": 126423, + "ظËĨØ·": 126424, + "Ġdừng": 126425, + "ÙĦÙĥتر": 126426, + "çŃĶæ¡Ī": 126427, + "ĠÙħÙĪÙĤعÛĮت": 126428, + "ĠÑĸнозем": 126429, + "ĠиÑģÑĩ": 126430, + "ĠнепÑĢавилÑĮ": 126431, + "bakan": 126432, + "ĠçīĪ": 126433, + "еннÑİ": 126434, + "à¸ĩà¹Ģศ": 126435, + "à¸Ħวามà¸Ħ": 126436, + "%.Ċ": 126437, + "à¹Īà¹Ģà¸Ľ": 126438, + "ĠآبÛĮ": 126439, + "Ġstáty": 126440, + "ĠترتÛĮب": 126441, + "Äįemž": 126442, + "Ġé¹": 126443, + "ĠÙģاÙĦ": 126444, + "Ġbelirlen": 126445, + "ĠâĨĺ": 126446, + "èĩ³å°ij": 126447, + "ĠBunlar": 126448, + "Ġä¸ĵ": 126449, + "ĠÙħØŃاس": 126450, + "ĠìĦľë²Ħ": 126451, + "Ġcanh": 126452, + "ĠпÑĢоÑĤÑıж": 126453, + "ĠнÑĸмеÑĨÑĮ": 126454, + "à¥Īà¤łà¤ķ": 126455, + "ëĭī": 126456, + "ĠнанеÑģ": 126457, + "ĠвозÑĢаÑģÑĤа": 126458, + "Ġ[âĢ¦]Ċ": 126459, + ".à¸ŀ": 126460, + "ิศาสà¸ķร": 126461, + "çģ½": 126462, + "ê°ĻìĿĢ": 126463, + "ลà¸ĩà¸Ĺ": 126464, + "ãĤ±ãĥ¼ãĤ¹": 126465, + "ĠãĤ¢ãĤ¤": 126466, + "ÑģÑİ": 126467, + "ĠÙĦر": 126468, + "ãģĭãģ£ãģ¦": 126469, + "Ġ기ë°ĺ": 126470, + "Ġ!:": 126471, + "ĠÑģÑĬ": 126472, + "ĠØ´ÙĨاسÛĮ": 126473, + "ĠìķĦ침": 126474, + "Ġعباس": 126475, + "Ġà¸ķà¸Ńà¸Ļ": 126476, + "ĠмеÑĤалли": 126477, + "ÑĪила": 126478, + "Ġpodrob": 126479, + "ÑĸÑģно": 126480, + "Ġ赤": 126481, + "ciler": 126482, + "ozem": 126483, + "ĠоÑģновнÑĭÑħ": 126484, + "Âłà¤ķ": 126485, + "à¸ĸà¸Ļà¸Ļ": 126486, + "анÑĤаж": 126487, + "ĠDÃŃky": 126488, + "ĠگذارÛĮ": 126489, + "æľºä¼ļ": 126490, + "οÏħλίοÏħ": 126491, + "оÑĩек": 126492, + "ĠнапиÑĤ": 126493, + "ĠبÛĮشترÛĮ": 126494, + "ä¾į": 126495, + "ĠاÙĦÙħÙħ": 126496, + "ÙĪزÙĬع": 126497, + "Ġgözlem": 126498, + "è°ĥæķ´": 126499, + "Âłmiles": 126500, + "Ġkoc": 126501, + "ัà¸įห": 126502, + "æ³³": 126503, + "ĠÎijγγ": 126504, + "ĠÙĨÙħاز": 126505, + "ุà¸Ĺ": 126506, + "ãĥıãĤ¤": 126507, + "Ġthù": 126508, + "кÑĥлÑı": 126509, + "ĠпÑĥÑĤем": 126510, + "èĩºçģ£": 126511, + "Ġvergi": 126512, + "åł´åIJĪãģ¯": 126513, + "ĠÑĤÑĢÑĮоÑħ": 126514, + "Ġë³´ë©´": 126515, + "âĸ²": 126516, + "Ïħγ": 126517, + "ĠдоÑĤÑĢим": 126518, + "æľµ": 126519, + "ĠumÄĽnÃŃ": 126520, + "èī¯ãģĦ": 126521, + "Âłà¸Ļาà¸ĩ": 126522, + "ÐİÑĭÑŁN": 126523, + "ä¸ī个": 126524, + "ียรà¸ķ": 126525, + "ï¼ĮåIJĮæŶ": 126526, + "ĠÑĢозÑĢаÑħÑĥн": 126527, + "ĠDers": 126528, + "ãģªãģ®": 126529, + "Ġ그를": 126530, + "dikleri": 126531, + "Ġhayata": 126532, + "è§ĦèĮĥ": 126533, + "ç»ĵåIJĪ": 126534, + "Ġscé": 126535, + "ĠcÆ¡m": 126536, + "åѸéĻ¢": 126537, + "ĠÐĦв": 126538, + "ĠÄįlánek": 126539, + "ĠдоÑģÑĤиг": 126540, + "ाà¤ĩस": 126541, + "εÏħÏĥη": 126542, + "éģ©çĶ¨": 126543, + "Ïĥον": 126544, + "ılmaktadır": 126545, + "ëªħìĿĦ": 126546, + "ıb": 126547, + "ĠstarÅ¡ÃŃ": 126548, + "ĠchÃŃn": 126549, + "ä¸Ģ个人": 126550, + "ĠFrantiÅ¡ek": 126551, + "nÄĽji": 126552, + "ﻨ": 126553, + "ĠÙĦÙĦد": 126554, + "Ġpokoj": 126555, + "Ġjih": 126556, + "ãĢįãĢĤ": 126557, + "ĠعبداÙĦ": 126558, + "ãĤĵãģ§ãģĦãĤĭ": 126559, + "ĠмоделÑĮ": 126560, + "ĠteÅŁkil": 126561, + "ĠÄĮer": 126562, + "à¹Ģà¸Ķà¸Ńร": 126563, + "'na": 126564, + "λογή": 126565, + "Ġkola": 126566, + "ãĥĢãĥ¼": 126567, + "иÑĤелем": 126568, + "ĠÏĥÏħνο": 126569, + "ĠKurum": 126570, + "Ġsnadno": 126571, + "ĠاÙĦÙĤرآÙĨ": 126572, + "ĠVá»ģ": 126573, + "é«ĺãģĦ": 126574, + "Ġyıldız": 126575, + "Ġbirisi": 126576, + "Ġkhúc": 126577, + "ÙĪÛĮÙĦ": 126578, + "æľĢä½³": 126579, + "Ġสาà¸Ĥ": 126580, + "ĠÐŁÐ¾Ðº": 126581, + "âīł": 126582, + "à¹Ĥà¸Ľà¸£à¹ģà¸ģรม": 126583, + "à¥įययन": 126584, + "èij¡": 126585, + "ĠnovÄĽ": 126586, + "ayıp": 126587, + "ĠSingap": 126588, + "è°ĵ": 126589, + "ãĤ¶ãĤ¤ãĥ³": 126590, + "ĠновÑĭе": 126591, + "Ġhảo": 126592, + "ĠèŤ": 126593, + "ãĥ³ãĥĸ": 126594, + "ÂłĊĊ": 126595, + "θεια": 126596, + "Ġпопада": 126597, + "ĠëĶĶìŀIJìĿ¸": 126598, + "ĠداشتÙĨد": 126599, + "ĠØ´ÙĨاختÙĩ": 126600, + "ÏĥμαÏĦα": 126601, + "å¹³æĸ¹åħ¬éĩĮ": 126602, + "Ġgöl": 126603, + "екоÑĤоÑĢ": 126604, + "Ġmálo": 126605, + "ĠاجازÙĩ": 126606, + "کاراÙĨ": 126607, + "ĠпÑĸдпÑĢиÑĶмÑģÑĤв": 126608, + "ä¸īå¹´": 126609, + "ĠسÙģÛĮد": 126610, + "ĠμÎŃÏģοÏĤ": 126611, + "ÐĻÐĻ": 126612, + "ĠhÆ°": 126613, + "سÙĪب": 126614, + "ĠÙĦذا": 126615, + "Ġnemovit": 126616, + "ĠdÃŃv": 126617, + "Ä°s": 126618, + "¶¶": 126619, + "ĠphÆ°á»Ŀng": 126620, + "ĠÙĨØŃÙĪÙĩ": 126621, + "Ðĭ": 126622, + "Ġzbyt": 126623, + "edii": 126624, + "nech": 126625, + "ĠадмÑĸнÑĸÑģÑĤÑĢаÑĤив": 126626, + "ĠnevÄĽ": 126627, + "Ġож": 126628, + "ĠÄIJó": 126629, + "à¸Ľà¸£à¸°à¸§": 126630, + "Ġvhodné": 126631, + "ĠumÄĽl": 126632, + "ĠÑĢазлиÑĩнÑĭе": 126633, + "ĠpÅĻiroz": 126634, + "ĠبخشÛĮ": 126635, + "ãģ®å¤§": 126636, + "ĠاÙĦÙĥÙĩ": 126637, + "ecká": 126638, + "Ġzorunlu": 126639, + "ĠÐľÐ¸ÐºÐ¾Ð»Ð°": 126640, + "Ġamel": 126641, + "ковÑĭе": 126642, + "::::/": 126643, + "ä¸įåIJĮçļĦ": 126644, + "ĠÙĪÙĥاÙĨت": 126645, + "à¸Ńà¸Ń": 126646, + "lásil": 126647, + "ĠпÑĢедполаг": 126648, + "ï½±": 126649, + "Ġνε": 126650, + "ĠновÑĭй": 126651, + "Ġìĺģíĸ¥ìĿĦ": 126652, + "Ġê°Ģì§Ħ": 126653, + "åĥħ": 126654, + "YD": 126655, + "Ġباغ": 126656, + "Ġشکست": 126657, + "Ġgüney": 126658, + "иÑģÑĮ": 126659, + "ãģĭãģªãģĦ": 126660, + "ĠTòa": 126661, + "ĠگردÛĮد": 126662, + "ØŃÙĦ": 126663, + "luvÃŃ": 126664, + "véd": 126665, + "Ġìĺ·": 126666, + "ĠεÏĢα": 126667, + "ĠÑĤиÑģÑıÑĩ": 126668, + "Ġê½ĥ": 126669, + "ĠPUS": 126670, + "ĠдÑĥмкÑĥ": 126671, + "ĠâĢĿĊ": 126672, + "ĠìĬ¤íı¬ì¸ł": 126673, + "ÙĩÙĩ": 126674, + "Ġgắng": 126675, + "à¸´à¸łà¸²à¸ŀ": 126676, + "éĩĮéĿ¢": 126677, + "brıs": 126678, + "Ġzáb": 126679, + "καÏĤ": 126680, + "ĠåıĮ线": 126681, + "ลล": 126682, + "ĠÄIJÃłi": 126683, + "åŃ¸æł¡": 126684, + "ĠÑĢаÑģпÑĢед": 126685, + "ĠÑģÑĤанеÑĤ": 126686, + "Ġлак": 126687, + "Ġподк": 126688, + "Ġgören": 126689, + "ë¥´ê³ł": 126690, + "ĠÑĦÑĢÑĥкÑĤ": 126691, + "íĵ¨íĦ°": 126692, + "ãģĻãĤĮãģ°": 126693, + "ãĤĴä½ľ": 126694, + "à¸Ńà¸Ńà¸ģà¹ģà¸ļà¸ļ": 126695, + "Ġkulak": 126696, + "ĠíĶĮëłĪìĿ´": 126697, + "ĠØŃدÙĬØ«": 126698, + "ãģĨãĤĵ": 126699, + "ĠмÑĸк": 126700, + "à¤ĩसà¤ķ": 126701, + "ĠÑĥÑĤоÑĩ": 126702, + "ĠÙĥØ«ÙĬر": 126703, + "ĠYine": 126704, + "ัวหà¸Ļ": 126705, + "нÑĸÑĹ": 126706, + "åį¢": 126707, + "ÑĥÑģлов": 126708, + "ìĽĮíģ¬": 126709, + "Ġà¤ħà¤ĸ": 126710, + "ĠÑĨÑĸка": 126711, + "ìĦłìĿĦ": 126712, + "Ġأر": 126713, + "галÑĤеÑĢ": 126714, + "anglicky": 126715, + "ĠÑģоÑģÑĥд": 126716, + "ĠÑĥÑıв": 126717, + "ĠпÑĢодÑĥкÑĨÑĸÑĹ": 126718, + "Ġchua": 126719, + "Ġdán": 126720, + "ामà¤Ĺ": 126721, + "ئت": 126722, + "ĠФед": 126723, + "Ġhrom": 126724, + "íķ´ë³´": 126725, + "ĠØ¢ÙĨÙĦاÛĮÙĨ": 126726, + "-пÑĢав": 126727, + "Ġì¤ijìļĶíķľ": 126728, + "ĠвкÑĥ": 126729, + "Ġ大éĺª": 126730, + "Ġterk": 126731, + "ĠподÑĸб": 126732, + "ĠвÑĸдвÑĸд": 126733, + "à¥Įà¤Ł": 126734, + "è³£": 126735, + "ĠبتÙĨ": 126736, + "ĠبعضÛĮ": 126737, + "ãģªãģĬ": 126738, + "ä»ĸåĢij": 126739, + "Ġtavsiye": 126740, + "ĠMısır": 126741, + "Ġإذ": 126742, + "ĠæIJ": 126743, + "íķĺëĤĺ": 126744, + "ĠÙĪØ®": 126745, + "ãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ": 126746, + "Ġtakový": 126747, + "Ġबनन": 126748, + "ĠзÑĢениÑı": 126749, + "ĠÙĪÙģÙĤ": 126750, + "ë¹ĦìķĦ": 126751, + "ĠпоможеÑĤ": 126752, + "åĮĹå¸Ĥ": 126753, + "dıkları": 126754, + "Ġéĵģ": 126755, + "ĠaktuálnÃŃ": 126756, + "Ġвв": 126757, + "ãĤĤãģªãģĦ": 126758, + "íĨµìĭł": 126759, + "ÏĦαÏĥη": 126760, + "ĠìĥģëĮĢ": 126761, + "Ġæł¡": 126762, + "ãĢĤéĤ£": 126763, + "ĠرÙĪسÛĮÙĩ": 126764, + "Ġtelevizyon": 126765, + "å¹´é¾Ħ": 126766, + "ĠÐijоÑĢиÑģ": 126767, + "리ìĸ´": 126768, + "ĠzveÅĻej": 126769, + "жно": 126770, + "ĠÐŀÑģÑĤ": 126771, + "ĠмÑĥжÑĩин": 126772, + "ĠyeÅŁil": 126773, + "ĠСовеÑĤ": 126774, + "ĠBÃĸL": 126775, + "ĠТакож": 126776, + "Ġobnov": 126777, + "ĠпÑĢинадлеж": 126778, + "ĠвиÑģнов": 126779, + "Ø·Ùħ": 126780, + "ĠìĹĨìĸ´": 126781, + "ĠMùa": 126782, + "ä½ıå®ħ": 126783, + "åĮ»åѦ": 126784, + "ĠнаÑĢез": 126785, + "ãĥĭï¾Ĩ": 126786, + "ĠMặt": 126787, + "Ġvuông": 126788, + "ä¸ĢåĮº": 126789, + "ĠẢnh": 126790, + "ÑĢиÑĦ": 126791, + "ä¿ĿéĻ©": 126792, + "ĠÏĩÏģήÏĥη": 126793, + "åIJĮæĦı": 126794, + "Ġæīĵ": 126795, + "etÄĽ": 126796, + "ĠÙĪØ°ÙĦÙĥ": 126797, + "ĠÑĤиж": 126798, + "ĠÎŁÎ¹ÎºÎ¿": 126799, + "ĠмÑĸÑģÑĨÑĸ": 126800, + "ĠÑĢебенок": 126801, + "ĠÅŀah": 126802, + "عÙĦÙĪÙħ": 126803, + "ladıģ": 126804, + "Ġgiden": 126805, + "ливоÑģÑĤÑĸ": 126806, + "ÙĴس": 126807, + "ĠTHB": 126808, + "Ġmeslek": 126809, + "ÂłÐĿе": 126810, + "μÏĨÏīνα": 126811, + "ĠÙĪاج": 126812, + "наÑģлÑĸд": 126813, + "æĺŁæľŁ": 126814, + "ÐĶж": 126815, + "ĠÑĢабоÑĤаеÑĤ": 126816, + "Ġsánh": 126817, + "ìļ°ë¦¬": 126818, + "ĠابÙĪ": 126819, + "çļĦæĥħ": 126820, + "ĠìĻ¸êµŃ": 126821, + "Ġkabil": 126822, + "еÑĢвÑĭе": 126823, + "ĠgiÃłu": 126824, + "Ġtá»ı": 126825, + "ÂłÐij": 126826, + "å®Įæķ´": 126827, + "Ġmužů": 126828, + "ĠpomÄĽrnÄĽ": 126829, + "ĠÙħخصÙĪص": 126830, + "ĠÐĶем": 126831, + "ãĤıãĤĮãĤĭ": 126832, + "ĠпÑĢибÑĭ": 126833, + "ĠکاÙħÙ¾ÛĮ": 126834, + "ï¼Ń": 126835, + "Ġtrh": 126836, + "ĠÐijолÑĮÑĪ": 126837, + "´:": 126838, + "иваеÑĤÑģÑı": 126839, + "ĠìĤ¬íķŃ": 126840, + "è¿Ľä¸ĢæŃ¥": 126841, + "ÑĨей": 126842, + "ãģ¾ãģļ": 126843, + "аÑĤелем": 126844, + "éĮ¯": 126845, + "Ġžalob": 126846, + "ÑĨез": 126847, + "инÑĥв": 126848, + "Ġverze": 126849, + "åĽŀåĪ°": 126850, + "Ġdược": 126851, + "ائÙĬÙĦ": 126852, + "stoupil": 126853, + "论æĸĩ": 126854, + "ĠÐŁÐ°ÑĢи": 126855, + "ĠдекоÑĢаÑĤив": 126856, + "اختÛĮ": 126857, + "ĠÑģÑĤÑĢем": 126858, + "ãĥ»âĶģãĥ»âĶģãĥ»âĶģãĥ»âĶģ": 126859, + "ĠÑģамой": 126860, + "ÑĩÑĤо": 126861, + "ìĥģëĭ´": 126862, + "âī¤": 126863, + "ÑĤого": 126864, + "ëIJ¨": 126865, + "ılacak": 126866, + "ä¸Ńãģ«": 126867, + "ĠÏħÏĢάÏģÏĩοÏħν": 126868, + "ĠвÑĸдбÑĥ": 126869, + "çİ»çĴĥ": 126870, + "ĠвпеÑĢед": 126871, + "ĠPlzeÅĪ": 126872, + "گاب": 126873, + "à¹Ģศรษà¸IJ": 126874, + "ï¼ĮæľĢ": 126875, + "ÙħÙĨÛĮ": 126876, + "çħ§çīĩ": 126877, + "缮å½ķ": 126878, + "ÑĢиÑĤÑĤÑı": 126879, + "âĢĮاش": 126880, + "ĠëĮĢíļĮ": 126881, + "ĠÅĻadu": 126882, + "-ÑĤеÑħ": 126883, + "ĠÙĬÙĪ": 126884, + "Ġà¹ģà¸ŀ": 126885, + "اÙĥÙĨ": 126886, + "Ġ기ìŀIJ": 126887, + "ĠгÑĸд": 126888, + "Ġìļ°ë¦¬ëĬĶ": 126889, + "Ø´ÙħارÛĮ": 126890, + "Ġticari": 126891, + "âij¢": 126892, + "ĠاÙĦبد": 126893, + "ĠÑĢаÑģÑĩ": 126894, + "ĠاÙĦÛĮ": 126895, + "Ġsürede": 126896, + "Ġاعتر": 126897, + "ĠпонÑıÑĤÑĮ": 126898, + "γκο": 126899, + "ï¼Įæ¯Ķ": 126900, + "ĠSeb": 126901, + "Ġìĭłê·ľ": 126902, + "æĶ¶çĽĬ": 126903, + "ĠÙ¾ÛĮØ´ÙĨÙĩاد": 126904, + "ÎľÎijΤ": 126905, + "ë°ĶìĿ´": 126906, + "ä¾ĽåºĶ": 126907, + "бин": 126908, + "人æ°Ĺ": 126909, + "ãģıãĤī": 126910, + "ĠskvÄĽl": 126911, + "Ġëĵ±ìŀ¥": 126912, + "æĭħå½ĵ": 126913, + "Ġimkan": 126914, + "æĻ¨": 126915, + "ï¼Įçİ°åľ¨": 126916, + "Ġsrdce": 126917, + "ìĤ°ìĹħ": 126918, + "Ġмодели": 126919, + "æľ¬å½ĵãģ«": 126920, + "анка": 126921, + "Ġyürüy": 126922, + "ĠоÑĩевид": 126923, + "ĠØŃسÙĬÙĨ": 126924, + "ÑīаÑİÑĤ": 126925, + "lédl": 126926, + "ÑĨо": 126927, + "ĠcÃŃsa": 126928, + "ãģĭãģij": 126929, + "èĹį": 126930, + "ĠØ®ÙĪاÙĩÙĨد": 126931, + "Ġmuže": 126932, + "Ġнакоп": 126933, + "diÄŁini": 126934, + "erseniz": 126935, + "ĠпÑĢаÑĨÑĸвникÑĸв": 126936, + "длÑı": 126937, + "ĠαÏĥÏĦ": 126938, + "æ¶Īè´¹": 126939, + "Ġè¨Ģ": 126940, + "Ġbát": 126941, + "ĠØ´ÙĥÙĦ": 126942, + "ĠÑģпиÑĢ": 126943, + "ÏĢοÏĦε": 126944, + "ĠساÙĦÙĩ": 126945, + "ekil": 126946, + "à¹ģà¸Ĭม": 126947, + "ĠÏĥÏĦι": 126948, + "ĠÙħØ·ÙĦب": 126949, + "Ġìłķì±ħ": 126950, + "ê´Ģê³Ħ": 126951, + "å¹¹ç·ļ": 126952, + "Ġ京": 126953, + "éĢļéģİ": 126954, + "ĠدÛĮگراÙĨ": 126955, + "ĠØ£Ùħا": 126956, + "æĺ¯ä¸į": 126957, + "ĠëĮĢëĭµ": 126958, + "ĠErk": 126959, + "perty": 126960, + "ĠнаÑĩинаеÑĤ": 126961, + "Ġ그리": 126962, + "룡": 126963, + "ĠìĽ¹ìĤ¬ìĿ´íĬ¸": 126964, + "ारन": 126965, + "æĦıè¯Ĩ": 126966, + "ĠÐ¡ÐŁ": 126967, + "ĠباÙĬد": 126968, + "Ġbakımından": 126969, + "/TT": 126970, + "ĠÙģاصÙĦÙĩ": 126971, + "ĠÙħØ«ÙĦا": 126972, + "Ġквад": 126973, + "ĠشاÛĮد": 126974, + "ĠuÄįitel": 126975, + "çĪ½": 126976, + "ĠعرضÙĩ": 126977, + "Ġ交": 126978, + "ĠÑĩеÑģÑĤÑĮ": 126979, + "à¥Ī?Ċ": 126980, + "ĠخاÙĨÙħ": 126981, + "etiyle": 126982, + "Ġεγκα": 126983, + "ĠÑģÑĥÑīе": 126984, + "ĠìĿ¼ìĸ´": 126985, + "ĠÐĽÐµÐ½Ð¸": 126986, + "Ġ声": 126987, + "álie": 126988, + "ãĥ¡ãĥ¼ãĤ¸": 126989, + "à¥Ģतर": 126990, + "галÑĸ": 126991, + "ĠмÑĸнÑĸм": 126992, + "ĠEÅŁ": 126993, + "ĠпÑĢоизоÑĪ": 126994, + "ÐĿаÑģ": 126995, + "ĠبÙĨÛĮ": 126996, + "让æĪij": 126997, + "ĠпоÑģÑĤеп": 126998, + "ĠìļĶ구": 126999, + "ılıp": 127000, + "ĠجÙĪر": 127001, + "ĠëĮĢë¶Ģë¶Ħ": 127002, + "à¹ĩà¸ķาม": 127003, + "ĠÑĦаÑģ": 127004, + "Ġìłķê·ľ": 127005, + "ламенÑĤ": 127006, + "ÄŁen": 127007, + "à¥ĩà¤ĤĊĊ": 127008, + "ĠÐĺванов": 127009, + "ĠØŃÚ©Ùħ": 127010, + "Ġï¾ļ": 127011, + "ï¼»": 127012, + "Ġnevid": 127013, + "ĠлабоÑĢаÑĤоÑĢ": 127014, + "à¸ŀยาà¸ļาล": 127015, + "Ġediyorum": 127016, + "Ġhlavy": 127017, + "ĠEvropské": 127018, + "Ġphái": 127019, + "ãĥĵãĥ¼": 127020, + "ê´ijìĹŃìĭľ": 127021, + "äºľ": 127022, + "ØŃداث": 127023, + "ĠпÑĢоÑĦилакÑĤи": 127024, + "rostÅĻed": 127025, + "ĠмалÑĮ": 127026, + "Ġmüdür": 127027, + "اساس": 127028, + "ĠгалÑĥзÑĸ": 127029, + "à¸µà¸Ł": 127030, + "ĠغذاÛĮÛĮ": 127031, + "åŃIJä¾Ľ": 127032, + "Ġbahsed": 127033, + "ĠKrálové": 127034, + "åį»": 127035, + "Ġ%,": 127036, + "ç½Ĺæĸ¯": 127037, + "ëļ": 127038, + "Ġçij": 127039, + "ĠξεÏĦα": 127040, + "ĠÐŃÑĤи": 127041, + "ĠíĨµíķ©": 127042, + "Ġاکتبر": 127043, + "ĠmÄĽsÃŃce": 127044, + "ìĪĺë¡ľ": 127045, + "ÑĦÑĸк": 127046, + "ĠÐĴоз": 127047, + "ÑĩеÑģким": 127048, + "ìļ´ëĵľ": 127049, + "Ġnáklady": 127050, + "ĠпоÑĤÑĢап": 127051, + "ĠÑĢÑĥкаÑħ": 127052, + "ιλο": 127053, + "ĠGül": 127054, + "ë©ĺ": 127055, + "à¹īย": 127056, + "makt": 127057, + "ãĥ³ãĥIJãĥ¼": 127058, + "ĠнÑĸÑı": 127059, + "ĠоÑĤÑĤен": 127060, + "mesinin": 127061, + "ĠвÑģпом": 127062, + "ĠìĿ´ëĬĶ": 127063, + "dyby": 127064, + "ãĤ¿ãĥ³": 127065, + "âĹİ": 127066, + "à¹īาหà¸Ļ": 127067, + "ادگÛĮ": 127068, + "Ïĩία": 127069, + "ĠsnažÃŃ": 127070, + "Ġà¤ļà¤ķ": 127071, + "μήμα": 127072, + "ĠÙĥر": 127073, + "Ġκοι": 127074, + "éĢ¸": 127075, + "Ġneust": 127076, + "ĠÙĨظاÙħÛĮ": 127077, + "åįļçī©": 127078, + "Ġë²½": 127079, + "á½±": 127080, + "Ġì¶ľìĭľ": 127081, + "Ġarmá": 127082, + "ĠÙĩÙħکارÛĮ": 127083, + "çļĦæĥħåĨµ": 127084, + "ÙĤاÙħ": 127085, + "ÙĤب": 127086, + "ĠéĤ£": 127087, + "Ġ맡": 127088, + "Ġolası": 127089, + "βÎŃÏģ": 127090, + "ä½ķãģĭ": 127091, + "ĠÑĥÑĩеб": 127092, + "ĠвÑĥз": 127093, + "Ġبرگز": 127094, + "'yi": 127095, + "ĠпÑĢазд": 127096, + "ĠÐŀÑĢг": 127097, + "Ġ并": 127098, + "ĠÑģви": 127099, + "ĠÙħÛĮداÙĨ": 127100, + "ĠnaÅ¡eho": 127101, + "ĠBAÅŀ": 127102, + "å»Ĭ": 127103, + "ÌĪ": 127104, + "ãģĵãģĿ": 127105, + "à¹ĩà¸Ļà¸ŀ": 127106, + "οÏģειο": 127107, + "ĠбагаÑĤ": 127108, + "γει": 127109, + "μείο": 127110, + "à¹Īà¸ĩà¸Ĭาà¸ķ": 127111, + "ĠHizmetleri": 127112, + "ĠAfrika": 127113, + "Ġtedbir": 127114, + ",、": 127115, + "ä¸ī级": 127116, + "ÐİÑĭÑŁNÐİÑĭÑŁN": 127117, + "ĠÐļÑĢÑĸм": 127118, + "Ġaray": 127119, + "Ġböylece": 127120, + "коÑĤ": 127121, + "éĻ°": 127122, + "åĽ½éļĽ": 127123, + "tÄĽl": 127124, + "Ġpolis": 127125, + "Ġuvol": 127126, + "ĠìĪĺê°ķ": 127127, + "çĶµèĦij": 127128, + "Ġsami": 127129, + "ĠشاخÙĩ": 127130, + "ĠвÑģÑĮого": 127131, + "ĠØŃداÙĤÙĦ": 127132, + "Ġiken": 127133, + "ãĤ¯ãĥ©ãĥĸ": 127134, + "Ġzávod": 127135, + "बल": 127136, + "ë°°ìĨ¡": 127137, + "éĩĩè´Ń": 127138, + "볬": 127139, + "Ġ।ĊĊ": 127140, + "Ġê°ģê°ģ": 127141, + "Ġмак": 127142, + "ÏģαÏĥη": 127143, + "ĠiÅŁlemi": 127144, + "ãģĹãģ¦ãģĦãģ¾ãģĻ": 127145, + "ĠPek": 127146, + "Ñİн": 127147, + "Ġvelkou": 127148, + "åĬŀçIJĨ": 127149, + "å®ĥ们": 127150, + "ĠèIJ¬": 127151, + "ĠнаÑĢодÑĥ": 127152, + "Ġchó": 127153, + "ĠHiç": 127154, + "Û³Ûµ": 127155, + "Ġรà¸Ńà¸ļ": 127156, + "Û³Û¶": 127157, + "à¸Ĥว": 127158, + "ä½įæĸ¼": 127159, + "ĠСÑĤа": 127160, + "ัà¸Ļม": 127161, + "ापà¤ķ": 127162, + "ĠÑĥÑĢок": 127163, + "ãĤ¢ãĥ¡ãĥªãĤ«": 127164, + "Ġзмож": 127165, + "skému": 127166, + "Ġè»Ĭ": 127167, + "ĠاختÛĮار": 127168, + "ĠPÅĺ": 127169, + "лÑıв": 127170, + "Ġмаз": 127171, + "ĠözelliÄŁi": 127172, + "åij¼ãģ°": 127173, + "Ġbirinin": 127174, + "Ġодне": 127175, + "ÌĨ": 127176, + "ä»ĸãģ®": 127177, + "建ç¯ī": 127178, + "поÑģеÑĢед": 127179, + "หลà¸Ķ": 127180, + "å¤ļãģĦ": 127181, + "ÏĦήÏĥειÏĤ": 127182, + "ĠرÙĪÙĨد": 127183, + "èģ½": 127184, + "ì¤ijìĹIJ": 127185, + "ìĬ¤íĭ°": 127186, + "ĠзвÑĸÑĤ": 127187, + "ĠаÑĢÑĤи": 127188, + "ĠcÆ°á»Ŀi": 127189, + "ındır": 127190, + "Ġголод": 127191, + "ازد": 127192, + "à¹Īาวว": 127193, + "ãĥ¡ãĥ©": 127194, + "عÙĨÙĪاÙĨ": 127195, + "%)Ċ": 127196, + "ĠÑħолодилÑĮ": 127197, + "人们": 127198, + "CÄ°": 127199, + "ÐĹап": 127200, + "ĠpÅĻisp": 127201, + "Ġdurumlarda": 127202, + "ÑĢÑĸд": 127203, + "ÂłÐ£": 127204, + "ĠεÏĨαÏģ": 127205, + "Ġsprav": 127206, + "ĠоÑĤÑĢиманнÑı": 127207, + "ï¼Į没æľī": 127208, + "овала": 127209, + "Ġngại": 127210, + "ãĢĤ大": 127211, + "ĠдаеÑĤ": 127212, + "ĠpÃŃsem": 127213, + "ÑĨÑıÑĤÑĮ": 127214, + "ovnÄĽ": 127215, + "ë¦ī": 127216, + "Ġê²ģ": 127217, + "ÑģÑĤин": 127218, + "ĠSayı": 127219, + "ãĢĭçļĦ": 127220, + "Ġyoluyla": 127221, + "елеÑĦон": 127222, + "Ġráno": 127223, + "ĠíĸīëıĻ": 127224, + "ĠاÙĦخاÙħسة": 127225, + "Ġповинна": 127226, + "ÅĻila": 127227, + "Ġà¤ļरण": 127228, + "Ġبرگزار": 127229, + "ìļ´ëį°": 127230, + "à¹Ģà¸Ľà¸Ńร": 127231, + "Ġdaleko": 127232, + "lednÃŃ": 127233, + "åIJį稱": 127234, + "ливÑĸÑģÑĤÑĮ": 127235, + "Ġ몸ìĿĦ": 127236, + "оÑĢÑĸв": 127237, + "Це": 127238, + "بدأ": 127239, + "ë°ĺ기": 127240, + "krát": 127241, + "ä¸į足": 127242, + "Ġoldukları": 127243, + "leniyor": 127244, + "Ġìĭľíĸī": 127245, + "ĠпÑĢинимаÑĤÑĮ": 127246, + "à¸Ĥà¸Ńà¸ĩร": 127247, + "ÏĪει": 127248, + "Ġẩn": 127249, + "تس": 127250, + "ĠÑĤай": 127251, + "Ġневозможно": 127252, + "åıĬãģ³": 127253, + "roti": 127254, + "ï½Ń": 127255, + "дом": 127256, + "ойно": 127257, + "å£Ĭ": 127258, + "说çļĦ": 127259, + "Ġskoro": 127260, + "niÄįnÃŃ": 127261, + "ĠProfes": 127262, + "ĠÑħÑĢониÑĩеÑģ": 127263, + "Ġ주문": 127264, + "ĠZn": 127265, + "ĠÑģлой": 127266, + "ÎłÏģο": 127267, + "æĮĩæķ°": 127268, + "ĠпеÑĢеÑĪ": 127269, + "à¥ģà¤ķस": 127270, + "Ġê°Ģìłķ": 127271, + "Ġíķĺë©´": 127272, + "Û±Û¹Û´": 127273, + "кÑĥл": 127274, + "ÙĬÙĦا": 127275, + "ĠدÙĪبارÙĩ": 127276, + "|l": 127277, + "ĠÐľÑĥ": 127278, + "нила": 127279, + "ãģ¦ãģĦãģ¾ãģĻ": 127280, + "macı": 127281, + "ãģŁãģ¡ãģ¯": 127282, + "ĠاÙĦÙĥتاب": 127283, + "移åĭķ": 127284, + "λμ": 127285, + "_ï¼ı": 127286, + "Ġê°Ģìŀħ": 127287, + "èħ¾": 127288, + "ĠпÑĢезиденÑĤ": 127289, + "Ġë¶Ħìķ¼": 127290, + "ahy": 127291, + "Å¡etÅĻenÃŃ": 127292, + "éĵº": 127293, + "ĠpÅĻÃŃro": 127294, + "ÐķТ": 127295, + "ĠìļĶì²Ń": 127296, + "Ġmohlo": 127297, + "å¿ĥçIJĨ": 127298, + "Ġvysoké": 127299, + "ü": 127300, + "ÏĦικα": 127301, + "ìĹħì²´": 127302, + "ãģ§ãģĤ": 127303, + "รายà¸ĩาà¸Ļ": 127304, + "ĠpÅĻÃŃspÄĽv": 127305, + "ĠetmiÅŁtir": 127306, + "她们": 127307, + "ÏĢλα": 127308, + "ứa": 127309, + "Ġ说": 127310, + "ĠÑģоÑģед": 127311, + "åĩī": 127312, + "ĠÐłÐµ": 127313, + "åİŁæĿ¥": 127314, + "ĠÐIJÑĢÑħ": 127315, + "بÙĬÙĨ": 127316, + "åľ°è¯´": 127317, + "Ġört": 127318, + "ĠΣεÏĢ": 127319, + "ÂŃÙĩاÛĮ": 127320, + "ĠاÙĦاÙĤتص": 127321, + "尽管": 127322, + "ÑĤÑĭй": 127323, + "tains": 127324, + "ÙĢÙĦ": 127325, + "ç§ijæĬĢæľīéĻIJåħ¬åı¸": 127326, + "æı®": 127327, + "ัà¸ķà¸ĸ": 127328, + "á»Ĺng": 127329, + "ลาà¸Ķ": 127330, + "æļ®": 127331, + "ĠÙĨÙģسÙĩ": 127332, + "Ġçľĭ": 127333, + "Ġãģ¿": 127334, + "Ġtarım": 127335, + "Û±Û¹Ûµ": 127336, + "ĠÎĬ": 127337, + "Ġkomplex": 127338, + "ĠNhÄ©": 127339, + "è´¹çĶ¨": 127340, + "ĠکاربراÙĨ": 127341, + "ÅĪovánÃŃ": 127342, + "Ġků": 127343, + "дап": 127344, + "ÎķΧ": 127345, + "ê·¸ëŀĺ": 127346, + "Ġdöndü": 127347, + "人åĵ¡": 127348, + "ĠTiá»ĥu": 127349, + "ĠÙĪÛĮراÛĮØ´": 127350, + "Ġöngör": 127351, + "ĠÙĪغÙĬر": 127352, + "ĠÑģкÑĢÑĭ": 127353, + "âĢIJ'": 127354, + "ĠнемÑĥ": 127355, + "ĠHá»ĩ": 127356, + "Ġdüzenli": 127357, + "ĠsoutÄĽÅ¾e": 127358, + "ãĢģãĥŀ": 127359, + "ÏĦομα": 127360, + "ÄĽlÃŃ": 127361, + "ĠØ£ÙĦÙħاÙĨ": 127362, + "çł²": 127363, + "ĠtrÃł": 127364, + "Ġä¸ĸçķĮ": 127365, + "ayız": 127366, + "ımlı": 127367, + "ĠاÙĦØ£Ùģ": 127368, + "íķĺëĬĶëį°": 127369, + "вано": 127370, + "ĠpÅĻiÄįemž": 127371, + "ÙĥÙĬب": 127372, + "ĠмаÑĤемаÑĤи": 127373, + "мени": 127374, + "ĠпÑĢоекÑĤÑĥ": 127375, + "ีà¹Ĥà¸Ń": 127376, + "оÑĥ": 127377, + "ĠاÙĦشرÙĥØ©": 127378, + "æ³£": 127379, + "ÙĪÙĤÙĬت": 127380, + "ÑĪив": 127381, + "Ġpersonel": 127382, + "شتر": 127383, + "à¸Ķา": 127384, + "Ġ몽": 127385, + "åĿIJåľ¨": 127386, + "оке": 127387, + "Ġë§Īë²ķ": 127388, + "ĠØ£ÙĨا": 127389, + "ëłµ": 127390, + "ĠÙħباÙĨÛĮ": 127391, + "èĭ¹æŀľ": 127392, + "Ġศร": 127393, + "ĠÐĽÑĥÑĩ": 127394, + "ÎŁÎ¥Î£": 127395, + "ĠÄįá": 127396, + "ãģĽãģ¦": 127397, + "ĠkÄ±ÅŁ": 127398, + "ÑĪев": 127399, + "æĮĩ导": 127400, + "à¹ģละม": 127401, + "Ġvoleb": 127402, + "ĠÑģилÑĭ": 127403, + "Ġdruhou": 127404, + "Ġì°¬": 127405, + "ĠìŀĪìĿĮ": 127406, + "ΥΣ": 127407, + "ä¸įå®ī": 127408, + "ĠìĹĨìĿĮ": 127409, + "Ġdeterm": 127410, + "ĠاÙĦÙħعÙĦÙĪÙħات": 127411, + "íĺ¹": 127412, + "âĻ¡": 127413, + "à¥įबन": 127414, + "Ġخشک": 127415, + "ĠNová": 127416, + "ĠÑĦÑĥндаменÑĤ": 127417, + "ĠпÑĢогÑĢами": 127418, + "ĠعÙĦÙĬÙĥ": 127419, + "।ĊĊ": 127420, + "Ġveriyor": 127421, + "ĠÑĶв": 127422, + "ĠìŀĪëĭ¤ê³ł": 127423, + "ĠاÙĦØ£ÙħرÙĬÙĥÙĬ": 127424, + "Ġå¤ĸéĥ¨ãĥªãĥ³ãĤ¯": 127425, + "Ġä¿®": 127426, + "ĠпÑĥÑĤи": 127427, + "ĠοÏģγ": 127428, + "ĠоÑģновном": 127429, + "ĠнаÑĢÑĥж": 127430, + "ĠмиÑĢе": 127431, + "ovÄĽt": 127432, + "ĠíĥIJ": 127433, + "Ġsokak": 127434, + "Ġspolupráci": 127435, + "ÐĶÐļ": 127436, + "Ġåĺ": 127437, + "âĸįâĸįâĸįâĸįâĸįâĸįâĸįâĸįâĸįâĸįâĸįâĸįâĸįâĸįâĸįâĸį": 127438, + "Ġ³³³³": 127439, + "Ġhayır": 127440, + "ĠìĻĶ": 127441, + "æĤ¨çļĦ": 127442, + "æĮº": 127443, + "Ġ민주": 127444, + "Ġhotelu": 127445, + "à¸µà¸ľ": 127446, + "ìŀIJëıĻ": 127447, + "ä¼¼çļĦ": 127448, + "ÎŃνÏĦÏģο": 127449, + "Ø´ÙĪ": 127450, + "Ġé¤": 127451, + "Ġλι": 127452, + "Ġolmaktadır": 127453, + "ĠоÑģвеÑī": 127454, + "Ġвина": 127455, + "Ġخاصة": 127456, + "rana": 127457, + "γÏģαÏĨή": 127458, + "ÑĨеÑģ": 127459, + "ĠdoÄŁrult": 127460, + "ĠÙĤرارداد": 127461, + "ĠÐļал": 127462, + "ê²½ìłľ": 127463, + "ÏĩÏĮ": 127464, + "ÑĥÑİÑīий": 127465, + "ëĭĺìĿ´": 127466, + "ëĮ": 127467, + "лаз": 127468, + "Ġngừng": 127469, + "isku": 127470, + "ìĦłê±°": 127471, + "ĠÑįлекÑĤÑĢон": 127472, + "ĠVoj": 127473, + "нÑıми": 127474, + "ĠÙĪØ£ÙĨ": 127475, + "äºŃ": 127476, + "ç»Łè®¡": 127477, + "ĠÅŁiÅŁ": 127478, + "ãĢįçļĦ": 127479, + "æŃ¯": 127480, + "Ġколлек": 127481, + "Ġдвиж": 127482, + "Ġná»Ńa": 127483, + "ÄįasÃŃ": 127484, + "Ġsonu": 127485, + "ĠмеÑħанÑĸз": 127486, + "žený": 127487, + "ĠзаÑģÑĤÑĥп": 127488, + "ê´Ģ볨": 127489, + "ĠÑĤоваÑĢÑĸв": 127490, + "Ġì¼ĢìĿ´": 127491, + "à¥ģà¤Ĺत": 127492, + "Ġzásob": 127493, + "мовÑĸÑĢ": 127494, + "ufac": 127495, + "ůležit": 127496, + "ĠвигоÑĤов": 127497, + "ĠاÙĦÙĨÙĪ": 127498, + "ĠعاÙħا": 127499, + "æģ¨": 127500, + "ĠìĿ´ë¯¸ì§Ģ": 127501, + "ĠtvoÅĻ": 127502, + "ĠvyužitÃŃ": 127503, + "ĠgeliÅŁim": 127504, + "쳤ëĭ¤": 127505, + "หà¸Ļà¸Ńà¸ĩ": 127506, + "ĠìĿ¸ìłķ": 127507, + "à¥įदर": 127508, + "ĠпеÑĢеда": 127509, + "ĠздÑĸйÑģненнÑı": 127510, + "ÙĨع": 127511, + "è¡£æľį": 127512, + "Ġloa": 127513, + "íĻĪ": 127514, + "èĭ±åĽ½": 127515, + "ĠDruh": 127516, + "خاÙĨ": 127517, + "дам": 127518, + "аÑĤелÑĮнÑĭÑħ": 127519, + "θÏģÏİ": 127520, + "ĠØ£Ùħر": 127521, + "ĠÅĻada": 127522, + "ĠbuluÅŁ": 127523, + "ĠÑĤÑĢанÑģпоÑĢ": 127524, + "ĠÙĤتÙĦ": 127525, + "ĠTarif": 127526, + "Rus": 127527, + "ĠзаÑģÑĸд": 127528, + "ĠÄ°h": 127529, + "leyin": 127530, + "Ġvyrá": 127531, + "ĠDÄĽ": 127532, + "ибли": 127533, + "avou": 127534, + "ĠÐĵеÑĢм": 127535, + "немÑĥ": 127536, + "ĠконÑĨеп": 127537, + "ĠÙĤادر": 127538, + "Ġsoubor": 127539, + "Ġlá»iji": 127540, + "ĠçµIJ": 127541, + "леннÑĭй": 127542, + "κÏħ": 127543, + "Ġдопомаг": 127544, + "à¸ŀวà¸ģà¹Ģà¸Ĥ": 127545, + "Ġquang": 127546, + "ĠØ·ÙĦا": 127547, + "ĠéĩĮ": 127548, + "ĠÙĨÙħÙĪدار": 127549, + "ĠÅŁar": 127550, + "ĠÑģпÑĸл": 127551, + "ÂŃn": 127552, + "ì§ĢìļĶ": 127553, + "åīįå¾Ģ": 127554, + "åħ³éĶ®": 127555, + "å®ŀåľ¨": 127556, + "éŁ³æ¥½": 127557, + "ĠÙħسئÙĦÙĩ": 127558, + "Ġyeme": 127559, + "ĠÑĪаÑħ": 127560, + "기ìĪł": 127561, + "Ġสำà¸Ļ": 127562, + "ĠÙĪرزشÛĮ": 127563, + "ãģĹãģŁãĤī": 127564, + "ίÏĥÏī": 127565, + "окон": 127566, + "ãģŁãĤī": 127567, + "ĠØ¥ÙĦÙĬÙĩ": 127568, + "Ġآذرب": 127569, + "Ġrá»Ŀi": 127570, + "Ġodak": 127571, + "ĠмогÑĥ": 127572, + "ĠÚ¯ÙĨ": 127573, + "è²¼": 127574, + "edla": 127575, + "ĠопÑĭÑĤ": 127576, + "lamaktadır": 127577, + "å°¼äºļ": 127578, + "éĥ½ä¼ļ": 127579, + "ĠÎĺεÏĥÏĥα": 127580, + "Ġвог": 127581, + "ç»Īäºİ": 127582, + "ĠÑĥÑĢовне": 127583, + "Ġvlak": 127584, + "ĠØ¢ÙĦØ©": 127585, + "Ġειδ": 127586, + "âĩ": 127587, + "дÑĥÑĤ": 127588, + "Ñĸнг": 127589, + "ĠØ£ÙħرÙĬÙĥÙĬ": 127590, + "ازÙĨد": 127591, + "ĠباÙĦØ£": 127592, + "Ġतन": 127593, + "Ġkaydet": 127594, + "룬리": 127595, + "Ġdrž": 127596, + "ĠпенÑģ": 127597, + "ĠpÅĻÃŃÄį": 127598, + "ĠТолÑĮко": 127599, + "ĠбаÑĤаÑĢ": 127600, + "éĵģè·¯": 127601, + "ĠÙ¾ÛĮÚĨ": 127602, + "ĠÎĵεÏī": 127603, + "ĠαÏħÏĦά": 127604, + "ÄŀI": 127605, + "ĠакÑĤивно": 127606, + "ÎĹÎľÎij": 127607, + "Ġvarlık": 127608, + "Ġåıª": 127609, + "ĠзаÑīиÑĤÑĭ": 127610, + "лим": 127611, + "ĠÙħشاÙĩدة": 127612, + "иком": 127613, + "Ġì¡°ìĤ¬": 127614, + "оген": 127615, + "Ġmấy": 127616, + "gii": 127617, + "èĽĩ": 127618, + "ĠØ®ÙĪÛĮØ´": 127619, + "Ġnová": 127620, + "ковой": 127621, + "Ġkanıt": 127622, + "éĿ¢è®®": 127623, + "ĠرÙĪستا": 127624, + "ìĸ´ê°Ģ": 127625, + "ĠоÑĤноÑĪениÑı": 127626, + "Ġhodnoty": 127627, + "ÙĪرات": 127628, + "ĠpÅĻÃŃst": 127629, + "Ġthá»į": 127630, + "Ġçıkart": 127631, + "ообÑĢаз": 127632, + "ĠnemÄĽl": 127633, + "Âłro": 127634, + "ĠدÙĪÙĦتÛĮ": 127635, + "ี,": 127636, + "ä¸Ģ度": 127637, + "iaomi": 127638, + "åĹİ": 127639, + "Ùıع": 127640, + "ĠваÑĢиан": 127641, + "ĠpodaÅĻilo": 127642, + "ĠëĤĺê°Ģ": 127643, + "èIJ¥ä¸ļ": 127644, + "ĠабÑģолÑİÑĤно": 127645, + "Ġë¸ĮëĿ¼": 127646, + "ĠгоÑĢиз": 127647, + "aģın": 127648, + "Ġyerini": 127649, + "à¹īาà¸Ļà¸Ķ": 127650, + "æIJ¬": 127651, + "Ġbalık": 127652, + "ĠÅŁans": 127653, + "认è¯Ĩ": 127654, + "ĠistediÄŁiniz": 127655, + "ĠjistÄĽ": 127656, + "ĠìĪĺê°Ģ": 127657, + "ï¼Įä¸Ĭ": 127658, + "à¤ľà¤¬": 127659, + "ĠвиÑıви": 127660, + "맥": 127661, + "ãģĹãģ¦ãĤĭ": 127662, + "ÙĬÙĥا": 127663, + "ĠHüs": 127664, + "cının": 127665, + "Ġशत": 127666, + "ĠÑĢаÑģполаг": 127667, + "ĠÑģпÑĢавж": 127668, + "ืà¸Ńà¸ĸ": 127669, + "ĠвеÑĢÑĤик": 127670, + "Ġvystav": 127671, + "ĠÑĢеалÑĸзаÑĨÑĸÑĹ": 127672, + "вами": 127673, + "ãĤ¹ãĥĨãĤ£": 127674, + "ëħģ": 127675, + "ĠÑĢеÑĩÑĸ": 127676, + "ÙģاÙĦ": 127677, + "िà¤ķà¤Ł": 127678, + "ĠвозÑĢаÑģÑĤе": 127679, + "каÑģ": 127680, + "ĠÐĺÑģ": 127681, + "ĠлÑĸк": 127682, + "ĠÏĥημαν": 127683, + "менÑĤÑĥ": 127684, + "нÑıÑİÑĤ": 127685, + "æŁ´": 127686, + "ĠθεÏī": 127687, + "çĬ¯ç½ª": 127688, + "ĠÙĤطر": 127689, + "ÐĶÐIJ": 127690, + "-|": 127691, + "ĠÑģÑĤÑĸ": 127692, + "Ġuyum": 127693, + "ĠpotÅĻeba": 127694, + "ĠعÙħÙĦÛĮات": 127695, + "奪": 127696, + "اخر": 127697, + "ĠکساÙĨÛĮ": 127698, + "تÙħر": 127699, + "ÑĮеÑĢ": 127700, + "ĠNez": 127701, + "íļĮìĤ¬": 127702, + "ĠBankası": 127703, + "егÑĢа": 127704, + "à¸Ĥà¸ĵะà¸Ĺ": 127705, + "åIJĪæł¼": 127706, + "ĠìŬ룬ë¶Ħ": 127707, + "yasal": 127708, + "Ġè¡ĮæĶ¿": 127709, + "åĬī": 127710, + "dıktan": 127711, + "ãĤ¢ãĥ«ãĥIJ": 127712, + "ĠاÛĮÙĨÚĨ": 127713, + "Ġdijital": 127714, + "å°ĺ": 127715, + "ĠÑĢазмеÑī": 127716, + "ĠкÑĸлÑĮкоÑģÑĤÑĸ": 127717, + "ĠEvropy": 127718, + "ĠÑĢозви": 127719, + "ÑİÑīÑĥÑİ": 127720, + "Ġong": 127721, + "Ġhepsi": 127722, + "vailability": 127723, + "ĠتصÙħÙĬÙħ": 127724, + "ÑĥйÑĤе": 127725, + "हल": 127726, + "ĠÅ¡iro": 127727, + "Ġpás": 127728, + ";;;;;;": 127729, + "éħįåIJĪ": 127730, + "ĠاÙĦعاÙĦÙħÙĬØ©": 127731, + "ÐĴо": 127732, + "haf": 127733, + "láv": 127734, + "Ġbì": 127735, + "Ġmůj": 127736, + "ê»ĺìĦľ": 127737, + "ÂłBf": 127738, + "ĠÑģпÑĢоÑģил": 127739, + "âĢĮÚ©ÙĨÙĨدÙĩ": 127740, + "ÙĨدÙĬØ©": 127741, + "çī¹èī²": 127742, + "Ġìķ¨": 127743, + "ุษย": 127744, + "ĠФоÑĢ": 127745, + "пиÑģок": 127746, + "užel": 127747, + "ımlar": 127748, + "çĬ¶æ³ģ": 127749, + "Ġãĥ¬ãĥĩãĤ£ãĥ¼ãĤ¹": 127750, + "Ñħови": 127751, + "ÂłKÄį": 127752, + "Ñĩим": 127753, + "ĠتÙĪÙħ": 127754, + "à¹Ģà¸ģษà¸ķร": 127755, + "Ġìĭ±ê¸Ģ": 127756, + "Ùħارات": 127757, + "ênh": 127758, + "ĠÅĻid": 127759, + "æĬ¬": 127760, + "ÑģиÑİ": 127761, + "æħİ": 127762, + "Ġçevre": 127763, + "ãĥĪãĥ«": 127764, + "Ġyıldır": 127765, + "Ġzáznam": 127766, + "æľºåľº": 127767, + "ĠпоÑĶ": 127768, + "ĠвÑĭÑĢаÑīи": 127769, + "ĠÙģع": 127770, + "ë»": 127771, + "ĠدارÛĮÙħ": 127772, + "ï¼ĮæĽ´": 127773, + "Ġземли": 127774, + "ابÙĤات": 127775, + "Ġmá»Ŀi": 127776, + "kých": 127777, + "ÙĦاة": 127778, + "帽": 127779, + "براÙĩÙĬÙħ": 127780, + "ĠпобаÑĩ": 127781, + "ाà¤ĩम": 127782, + "à¹Īาà¸ĩà¸Ľà¸£à¸°à¹Ģà¸Ĺศ": 127783, + "ĠìĦ¸ìĥģ": 127784, + "ĠпомогаеÑĤ": 127785, + "ĠÏĦÏĮÏĥο": 127786, + "æĸ·": 127787, + "ĠÙģراÙĪ": 127788, + "à¹Ħà¸Ľà¸¢": 127789, + "ergisi": 127790, + "ĠéĻIJ": 127791, + ".xz": 127792, + "ĠÑģлÑĥÑħ": 127793, + "економ": 127794, + "ĠNhất": 127795, + "±ط": 127796, + "ĠëĪĪìĿĦ": 127797, + "ĠíļĮìĤ¬": 127798, + "Ñĵ": 127799, + "ĠåIJįçĦ¡ãģĹ": 127800, + "Ġομάδα": 127801, + "ĩĮ": 127802, + "liÄŁinin": 127803, + "عاÙĨ": 127804, + "ĠزÙĨÛĮ": 127805, + "Tôi": 127806, + "Ġetki": 127807, + "ĠìĹ°ëĿ½": 127808, + "ĠконÑĨа": 127809, + "è°ĭ": 127810, + "ĠземлÑı": 127811, + "íĻĺê²½": 127812, + "ĠÙħکاÙĨÛĮ": 127813, + "çĸ²": 127814, + "Ġç¢": 127815, + "Ġkurulan": 127816, + "ؤÙĪÙĦ": 127817, + "دÙī": 127818, + "ĠاÙĦÙħÙĨØ·ÙĤØ©": 127819, + "Ġnắng": 127820, + "ÐŁÐļ": 127821, + "олай": 127822, + "YK": 127823, + "åijĨ": 127824, + "λαν": 127825, + "西çľģ": 127826, + "ĠÎĴαÏĥ": 127827, + "ĠíĻķìĭ¤": 127828, + "ZD": 127829, + "пÑĸд": 127830, + "ĠнаÑĩе": 127831, + "ĠÏĦά": 127832, + "å½»": 127833, + "âĢŀD": 127834, + "Ġèĩº": 127835, + "ĠнаÑĪей": 127836, + "ĠtÃŃmto": 127837, + "ĠتسÙħ": 127838, + "ÏģθÏģο": 127839, + "令人": 127840, + "ĠPazar": 127841, + "ãĤĵãģ¨": 127842, + "ç«ĭåĪ»": 127843, + "Âģ@": 127844, + "Ġbắc": 127845, + "ìĬ¤íħĮ": 127846, + "Ġkadınlar": 127847, + "figur": 127848, + "ãģ¤ãģ¶": 127849, + "ĠæµĻæ±Ł": 127850, + "ĠдекÑĸлÑĮ": 127851, + "è¡Ŀ": 127852, + "ยà¸Ļà¹ģà¸Ľà¸¥à¸ĩ": 127853, + "olet": 127854, + "Ġnedok": 127855, + "namen": 127856, + "åħĦå¼Ł": 127857, + "ืà¸Ńà¸Ĥ": 127858, + "èĤĥ": 127859, + "Ġbüny": 127860, + "ĠÑĢадÑıн": 127861, + "ãĢģäºĮ": 127862, + "аннÑİ": 127863, + "Ġæīĭæľº": 127864, + "ĠоÑģлож": 127865, + "ĠоглÑı": 127866, + "Ġسبز": 127867, + "Ġaktivit": 127868, + "Ġà¤ıप": 127869, + "ç«ľ": 127870, + "Ġdiren": 127871, + "iв": 127872, + "ĠYatırım": 127873, + "ÑĨÑĸйна": 127874, + "Ġдомов": 127875, + "ẳn": 127876, + "ĠCoÄŁraf": 127877, + "ÙģÙĪ": 127878, + "æ°Ĺãģ«åħ¥": 127879, + "ç§ģãģ®": 127880, + "ï½į": 127881, + "à¥Įड": 127882, + "ĠÐĵÑĢигоÑĢ": 127883, + "ĠPeygamber": 127884, + "Ġαγα": 127885, + "Ġefekt": 127886, + "ĠìŀĪìĸ´ìĦľ": 127887, + "ĠплаÑĤеж": 127888, + "ĠTrab": 127889, + "overy": 127890, + "âĢ¦âĢ¦ãĢĤ": 127891, + "Ġyapmaya": 127892, + "ĠнайбÑĸлÑĮ": 127893, + "ĠÙħÙĨزÙĦ": 127894, + "ÙĪÙĬÙĥ": 127895, + "ıldıģında": 127896, + "ĠpÅĻÃŃpadnÄĽ": 127897, + "ĠμÏĢοÏģοÏį": 127898, + "ĠëĵľëĿ¼ë§Ī": 127899, + "Ġ방문": 127900, + "ĠСим": 127901, + "کات": 127902, + "еком": 127903, + "رÙĬع": 127904, + "ÙĩدÙģ": 127905, + "æĹıèĩªæ²»": 127906, + "ĠzmÄĽn": 127907, + "Ġвклад": 127908, + "ĠبÙĦغ": 127909, + "Ġç§ĭ": 127910, + "Ngh": 127911, + "ĠendiÅŁ": 127912, + "ĠCumhurbaÅŁkanı": 127913, + "ĠKaf": 127914, + "Ġà¹ģหล": 127915, + "Ġmutlu": 127916, + "ĠÑģиÑĢ": 127917, + "ĠгÑĥм": 127918, + "æ¿ĥ": 127919, + "çĤī": 127920, + "ĠBáo": 127921, + "à¥Ĥष": 127922, + "ĠìłķíĻķ": 127923, + "ानस": 127924, + "ﻤ": 127925, + "наÑģлÑĸдок": 127926, + "poÄįet": 127927, + "ë§ĮìĽIJìŀħëĭĪëĭ¤": 127928, + "ĠìĦľìļ¸íĬ¹ë³Ħìĭľ": 127929, + "ÎķÎĻΣ": 127930, + "ุมà¸Ĭà¸Ļ": 127931, + "ĠмÑĸлÑĮ": 127932, + "æħĮ": 127933, + "ÏĥκεÏĦαι": 127934, + "ĠãĢľ": 127935, + "Ġkaliteli": 127936, + "ĠÑģмеÑĢÑĤÑĮ": 127937, + "è¼Ķ": 127938, + "ĠбиÑĤ": 127939, + "ĠΣÏĦο": 127940, + "à¸ĩà¹Ģศส": 127941, + "åİŁæľ¬": 127942, + "ĠknÃŃ": 127943, + "äºĴèģĶç½ij": 127944, + "ĠÑĩеловеÑĩеÑģ": 127945, + "çŃĴ": 127946, + "à¸Īำหà¸Ļ": 127947, + "åĩºåİ»": 127948, + "ãĤ¢ãĥĭãĥ¡": 127949, + "å±ķ示": 127950, + "rych": 127951, + "à¤ħब": 127952, + "oÅĪ": 127953, + "jÃŃcÃŃm": 127954, + "اØŃØ«": 127955, + "ĠÙĪاÙĤعÛĮ": 127956, + "ĠФедеÑĢалÑĮ": 127957, + "Ñģам": 127958, + "Ġìĺ¥": 127959, + "åľ°çIJĥ": 127960, + "Ġsuyu": 127961, + "seniz": 127962, + "à¥īफ": 127963, + "Ġê°Ļëĭ¤": 127964, + "ĠпÑĢизнаÑĩеннÑı": 127965, + "ĠSın": 127966, + "ĠاÙħÙĨÛĮت": 127967, + "Ġlátky": 127968, + "ĠÐijи": 127969, + "Ġsüreci": 127970, + "····": 127971, + "Ġ경찰": 127972, + "ĠкалÑĮ": 127973, + "ĠникÑĤо": 127974, + "ÙijÙħ": 127975, + "ĠدÙĬگر": 127976, + "Ġalınması": 127977, + "леннÑĸ": 127978, + "ิวà¹Ģà¸ķà¸Ńร": 127979, + "à¸Ľà¸ģà¸Ħรà¸Ńà¸ĩ": 127980, + "ĠзаконодавÑģÑĤва": 127981, + "ãĢĢãĤ¤": 127982, + "Ġëħ¸íķĺìļ°": 127983, + "ĠDÃ¼ÅŁ": 127984, + "ĠгÑĥÑģÑĤ": 127985, + "ĠÐĴаÑĪ": 127986, + "ĠاÙħتÛĮ": 127987, + "Ġparamet": 127988, + "ĠÎłÎ±Î½ÎµÏĢ": 127989, + "à¹Įà¸ģร": 127990, + "ζα": 127991, + "ĠëįĶìļ±": 127992, + "ÙĪÙĦات": 127993, + "ваÑĤиÑģÑı": 127994, + "Ġkök": 127995, + "ÙĨب": 127996, + "ĠвÑĭÑģокой": 127997, + "ãĥ¼ãĥ¼": 127998, + "éĶ¦": 127999 + }, + "merges": [ + "Ġ Ġ", + "Ġ ĠĠĠ", + "ĠĠ ĠĠ", + "ĠĠĠ Ġ", + "i n", + "Ġ t", + "Ġ ĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠ ĠĠ", + "e r", + "Ġ ĠĠ", + "ĠĠ Ġ", + "o n", + "Ġ a", + "r e", + "a t", + "s t", + "e n", + "o r", + "Ġ th", + "Ġt h", + "Ċ Ċ", + "Ġ c", + "l e", + "Ġ s", + "i t", + "a n", + "a r", + "a l", + "Ġ the", + "Ġt he", + "Ġth e", + "; Ċ", + "Ġ p", + "Ġ f", + "o u", + "Ġ =", + "i s", + "Ġ ĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠ", + "ĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠ Ġ", + "i ng", + "in g", + "e s", + "Ġ w", + "i on", + "io n", + "e d", + "i c", + "Ġ b", + "Ġ d", + "e t", + "Ġ m", + "Ġ o", + "ĉ ĉ", + "r o", + "a s", + "e l", + "c t", + "n d", + "Ġ in", + "Ġi n", + "Ġ h", + "e nt", + "en t", + "i d", + "Ġ n", + "a m", + "Ġ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ Ġ", + "Ġ to", + "Ġt o", + "Ġ re", + "Ġr e", + "- -", + "Ġ {", + "Ġ of", + "Ġo f", + "o m", + ") ;Ċ", + "); Ċ", + "i m", + "č Ċ", + "Ġ (", + "i l", + "/ /", + "Ġ and", + "Ġa nd", + "Ġan d", + "u r", + "s e", + "Ġ l", + "e x", + "Ġ S", + "a d", + "Ġ \"", + "c h", + "u t", + "i f", + "* *", + "Ġ }", + "e m", + "o l", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "t h", + ") Ċ", + "Ġ {Ċ", + "Ġ{ Ċ", + "Ġ g", + "i g", + "i v", + ", Ċ", + "c e", + "o d", + "Ġ v", + "a te", + "at e", + "Ġ T", + "a g", + "a y", + "Ġ *", + "o t", + "u s", + "Ġ C", + "Ġ st", + "Ġs t", + "Ġ I", + "u n", + "u l", + "u e", + "Ġ A", + "o w", + "Ġ '", + "e w", + "Ġ <", + "a tion", + "at ion", + "atio n", + "ati on", + "( )", + "Ġ for", + "Ġf or", + "Ġfo r", + "a b", + "o rt", + "or t", + "u m", + "a me", + "am e", + "Ġ is", + "Ġi s", + "p e", + "t r", + "c k", + "â Ģ", + "Ġ y", + "i st", + "is t", + "- ---", + "-- --", + "--- -", + ". ĊĊ", + ".Ċ Ċ", + "h e", + "Ġ e", + "l o", + "Ġ M", + "Ġ be", + "Ġb e", + "e rs", + "er s", + "Ġ on", + "Ġo n", + "Ġ con", + "Ġc on", + "Ġco n", + "a p", + "u b", + "Ġ P", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "a ss", + "as s", + "i nt", + "in t", + "> Ċ", + "l y", + "u rn", + "ur n", + "Ġ $", + "; ĊĊ", + ";Ċ Ċ", + "a v", + "p ort", + "por t", + "po rt", + "i r", + "- >", + "n t", + "c tion", + "ct ion", + "e nd", + "en d", + "Ġ de", + "Ġd e", + "0 0", + "i th", + "it h", + "o ut", + "ou t", + "t urn", + "tu rn", + "tur n", + "o ur", + "ou r", + "Ġ ĠĠĠĠ", + "ĠĠ ĠĠĠ", + "ĠĠĠĠ Ġ", + "ĠĠĠ ĠĠ", + "l ic", + "li c", + "r es", + "re s", + "p t", + "= =", + "Ġ this", + "Ġt his", + "Ġth is", + "Ġthi s", + "Ġ wh", + "Ġw h", + "Ġ if", + "Ġi f", + "Ġ D", + "v er", + "ve r", + "a ge", + "ag e", + "Ġ B", + "h t", + "e xt", + "ex t", + "= \"", + "Ġ that", + "Ġt hat", + "Ġth at", + "Ġtha t", + "* ***", + "** **", + "*** *", + "Ġ R", + "Ġ it", + "Ġi t", + "e ss", + "es s", + "Ġ F", + "Ġ r", + "o s", + "a nd", + "an d", + "Ġ as", + "Ġa s", + "e ct", + "ec t", + "k e", + "r om", + "ro m", + "Ġ //", + "Ġ/ /", + "c on", + "co n", + "Ġ L", + "( \"", + "q u", + "l ass", + "la ss", + "las s", + "Ġ with", + "Ġw ith", + "Ġwi th", + "Ġwit h", + "i z", + "d e", + "Ġ N", + "Ġ al", + "Ġa l", + "o p", + "u p", + "g et", + "ge t", + "Ġ }Ċ", + "Ġ} Ċ", + "i le", + "il e", + "Ġ an", + "Ġa n", + "a ta", + "at a", + "o re", + "or e", + "r i", + "Ġ pro", + "Ġp ro", + "Ġpr o", + "; čĊ", + "ĉ ĉĉĉ", + "ĉĉ ĉĉ", + "ĉĉĉ ĉ", + "t er", + "te r", + "a in", + "ai n", + "Ġ W", + "Ġ E", + "Ġ com", + "Ġc om", + "Ġco m", + "Ġ return", + "Ġre turn", + "Ġr eturn", + "Ġret urn", + "a rt", + "ar t", + "Ġ H", + "a ck", + "ac k", + "im port", + "imp ort", + "ub lic", + "ubl ic", + "Ġ or", + "Ġo r", + "e st", + "es t", + "m ent", + "me nt", + "men t", + "Ġ G", + "a ble", + "ab le", + "abl e", + "Ġ -", + "i ne", + "in e", + "i ll", + "il l", + "i nd", + "in d", + "e re", + "er e", + ": :", + "i ty", + "it y", + "Ġ +", + "Ġ tr", + "Ġt r", + "e lf", + "el f", + "i ght", + "ig ht", + "igh t", + "( '", + "o rm", + "or m", + "u lt", + "ul t", + "s tr", + "st r", + ". .", + "\" ,", + "Ġ you", + "Ġy ou", + "Ġyo u", + "y pe", + "yp e", + "p l", + "Ġ new", + "Ġn ew", + "Ġne w", + "Ġ j", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "Ġ from", + "Ġf rom", + "Ġfr om", + "Ġfro m", + "Ġ ex", + "Ġe x", + "Ġ O", + "2 0", + "l d", + "Ġ [", + "o c", + ": Ċ", + "Ġ se", + "Ġs e", + "Ġ le", + "Ġl e", + "- -------", + "-- ------", + "---- ----", + "--- -----", + "----- ---", + "------ --", + "------- -", + ". s", + "{ Ċ", + "' ,", + "a nt", + "an t", + "Ġ at", + "Ġa t", + "a se", + "as e", + ". c", + "Ġ ch", + "Ġc h", + "< /", + "a ve", + "av e", + "a ng", + "an g", + "Ġ are", + "Ġa re", + "Ġar e", + "Ġ int", + "Ġin t", + "Ġi nt", + "âĢ Ļ", + "_ t", + "e rt", + "er t", + "i al", + "ia l", + "a ct", + "ac t", + "} Ċ", + "i ve", + "iv e", + "o de", + "od e", + "o st", + "os t", + "Ġ class", + "Ġc lass", + "Ġcl ass", + "Ġclas s", + "Ġcla ss", + "Ġ not", + "Ġn ot", + "Ġno t", + "o g", + "o rd", + "or d", + "a lue", + "al ue", + "alu e", + "a ll", + "al l", + "f f", + "( );Ċ", + "() ;Ċ", + "(); Ċ", + "o nt", + "on t", + "i me", + "im e", + "a re", + "ar e", + "Ġ U", + "Ġ pr", + "Ġp r", + "Ġ :", + "i es", + "ie s", + "i ze", + "iz e", + "u re", + "ur e", + "Ġ by", + "Ġb y", + "i re", + "ir e", + "Ġ }ĊĊ", + "Ġ} ĊĊ", + "Ġ}Ċ Ċ", + ". p", + "Ġ sh", + "Ġs h", + "i ce", + "ic e", + "a st", + "as t", + "p tion", + "pt ion", + "t ring", + "tr ing", + "tri ng", + "o k", + "_ _", + "c l", + "# #", + "Ġ he", + "Ġh e", + "a rd", + "ar d", + ") .", + "Ġ @", + "i ew", + "ie w", + "ĉ ĉĉ", + "ĉĉ ĉ", + "Ġ was", + "Ġw as", + "Ġwa s", + "i p", + "t his", + "th is", + "Ġ u", + "Ġ The", + "ĠT he", + "ĠTh e", + "i de", + "id e", + "a ce", + "ac e", + "i b", + "a c", + "r ou", + "ro u", + "Ġ we", + "Ġw e", + "j ect", + "je ct", + "jec t", + "Ġ public", + "Ġp ublic", + "Ġpub lic", + "Ġpubli c", + "a k", + "v e", + "a th", + "at h", + "o id", + "oi d", + "Ġ =>", + "Ġ= >", + "u st", + "us t", + "q ue", + "qu e", + "Ġ res", + "Ġre s", + "Ġr es", + ") )", + "' s", + "Ġ k", + "a ns", + "an s", + "y st", + "ys t", + "un ction", + "unc tion", + "unct ion", + "* *******", + "** ******", + "**** ****", + "****** **", + "*** *****", + "***** ***", + "******* *", + "Ġ i", + "Ġ us", + "Ġu s", + "p p", + "1 0", + "o ne", + "on e", + "a il", + "ai l", + "= ===", + "== ==", + "=== =", + "n ame", + "na me", + "nam e", + "Ġ str", + "Ġs tr", + "Ġst r", + "Ġ /", + "Ġ &", + "a ch", + "ac h", + "d iv", + "di v", + "y stem", + "yst em", + "ys tem", + "e ll", + "el l", + "Ġ have", + "Ġh ave", + "Ġha ve", + "Ġhav e", + "e rr", + "er r", + "o uld", + "ou ld", + "oul d", + "u ll", + "ul l", + "p on", + "po n", + "Ġ J", + "_ p", + "Ġ ==", + "Ġ= =", + "i gn", + "ig n", + "S t", + ". Ċ", + "Ġ pl", + "Ġp l", + ") ;ĊĊ", + ");Ċ Ċ", + "); ĊĊ", + "f orm", + "fo rm", + "for m", + "p ut", + "pu t", + "o unt", + "ou nt", + "oun t", + "} ĊĊ", + "}Ċ Ċ", + "d d", + "i te", + "it e", + "Ġ get", + "Ġg et", + "Ġge t", + "r r", + "o me", + "om e", + "Ġ âĢ", + "Ġâ Ģ", + "a ram", + "ar am", + "ara m", + "c c", + "Ġ */", + "Ġ* /", + "E R", + "I n", + "l es", + "le s", + "_ s", + "o ng", + "on g", + "i e", + "Ġ can", + "Ġc an", + "Ġca n", + "Ġ V", + "e rv", + "er v", + "p r", + "Ġ un", + "Ġu n", + "r ow", + "ro w", + "b er", + "be r", + "Ġ do", + "Ġd o", + "l l", + "Ġ el", + "Ġe l", + "Ġ self", + "Ġs elf", + "Ġse lf", + "Ġsel f", + "a ted", + "at ed", + "ate d", + "a ry", + "ar y", + "Ġ .", + "' ]", + "u d", + "Ġ en", + "Ġe n", + "Ġ Th", + "ĠT h", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "t e", + "_ c", + "u ct", + "uc t", + "Ġ ab", + "Ġa b", + "o rk", + "or k", + ". get", + ".g et", + ".ge t", + "Ġ #", + "a w", + "r ess", + "re ss", + "res s", + "o b", + "N ame", + "Na me", + "Nam e", + "2 01", + "20 1", + "a pp", + "ap p", + "[ '", + "Ġ all", + "Ġa ll", + "Ġal l", + "o ry", + "or y", + "i tion", + "it ion", + "iti on", + "a nce", + "an ce", + "anc e", + "e ar", + "ea r", + "Ġ cont", + "Ġc ont", + "Ġcon t", + "Ġco nt", + "v ent", + "ve nt", + "ven t", + "i a", + "Ġ will", + "Ġw ill", + "Ġwi ll", + "Ġwil l", + "I N", + "Ġ ĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠ", + "r eturn", + "re turn", + "ret urn", + "Ġ ", + "\" ,Ċ", + "\", Ċ", + "e c", + "Ġ In", + "ĠI n", + "p h", + "Ġ |", + "_ f", + "Ġ var", + "Ġv ar", + "Ġva r", + "e nce", + "en ce", + "enc e", + "I d", + "r ee", + "re e", + "i nk", + "in k", + "l ect", + "le ct", + "lec t", + "u g", + "e th", + "et h", + "Ġ else", + "Ġe lse", + "Ġel se", + "Ġels e", + "- ---------------", + "-- --------------", + "---- ------------", + "-------- --------", + "--- -------------", + "------------ ----", + "----- -----------", + "---------- ------", + "------ ----------", + "----------- -----", + "------------- ---", + "------- ---------", + "--------- -------", + "--------------- -", + "-------------- --", + "1 9", + "c ont", + "con t", + "co nt", + "Ġ so", + "Ġs o", + "a tic", + "at ic", + "ati c", + "Ġ lo", + "Ġl o", + "p ro", + "pr o", + "t on", + "to n", + "s s", + "o wn", + "ow n", + "a bel", + "ab el", + "abe l", + "o int", + "oin t", + "oi nt", + "o us", + "ou s", + "e ld", + "el d", + "S T", + "T he", + "Th e", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "R E", + "\" :", + "o lor", + "ol or", + "olo r", + "t p", + "e g", + "k ey", + "ke y", + "u de", + "ud e", + "Ġ St", + "ĠS t", + "o und", + "ou nd", + "oun d", + "Ġ ar", + "Ġa r", + "\" );Ċ", + "\") ;Ċ", + "\"); Ċ", + "e ner", + "en er", + "ene r", + "s er", + "se r", + "1 1", + "b ject", + "bj ect", + "es sage", + "ess age", + "essa ge", + "f er", + "fe r", + "Ġ more", + "Ġm ore", + "Ġmor e", + "Ġmo re", + "at ions", + "ation s", + "atio ns", + "ati ons", + "e nts", + "en ts", + "ent s", + "Ġ his", + "Ġh is", + "Ġhi s", + "Ġ they", + "Ġt hey", + "Ġth ey", + "Ġthe y", + ". S", + "Ġ Y", + "u se", + "us e", + "n e", + "i sh", + "is h", + "o ld", + "ol d", + "_ d", + "i o", + "i eld", + "ie ld", + "iel d", + "Ġ per", + "Ġp er", + "Ġpe r", + "C ont", + "Con t", + "Co nt", + "in gs", + "ing s", + "# ###", + "## ##", + "### #", + "Ġ data", + "Ġd ata", + "Ġda ta", + "Ġdat a", + "Ġ sa", + "Ġs a", + "e f", + "f o", + "Ġ one", + "Ġo ne", + "Ġon e", + "e ng", + "en g", + "Ġ dis", + "Ġd is", + "Ġdi s", + "A T", + "Ġ name", + "Ġn ame", + "Ġna me", + "Ġnam e", + "Ġ true", + "Ġtr ue", + "v al", + "va l", + "l ed", + "le d", + ". f", + "Ġ ne", + "Ġn e", + "Ġ end", + "Ġe nd", + "Ġen d", + "3 2", + ". T", + "1 6", + "c re", + "cr e", + "a rk", + "ar k", + "l og", + "lo g", + "E x", + "e rror", + "er ror", + "err or", + "erro r", + "_ id", + "_i d", + "ur re", + "urr e", + "a nge", + "an ge", + "ang e", + "Ġ null", + "Ġn ull", + "Ġnu ll", + "r ray", + "rr ay", + "Ġ my", + "Ġm y", + "p an", + "pa n", + "i ct", + "ic t", + "a tor", + "at or", + "ato r", + "V iew", + "Vi ew", + "L ist", + "Li st", + "ĉ return", + "ĉr eturn", + "ĉret urn", + "ĉre turn", + "âĢ Ŀ", + "Ġ pre", + "Ġp re", + "Ġpr e", + "Ġ x", + "c lude", + "cl ude", + "clud e", + "a rg", + "ar g", + "1 5", + "o v", + ". h", + "Ġ >", + "Ġ their", + "Ġthe ir", + "' )", + "i rst", + "ir st", + "irs t", + "i ck", + "ic k", + "g h", + "L E", + "O R", + "Ġ private", + "Ġpr ivate", + "Ġpriv ate", + "Ġprivat e", + "t em", + "te m", + "čĊ čĊ", + "u ser", + "us er", + "use r", + "Ġ )", + "c om", + "co m", + ". A", + "\" ;Ċ", + "\"; Ċ", + "Ġ id", + "Ġi d", + "r ead", + "re ad", + "rea d", + "Ġ who", + "Ġw ho", + "Ġwh o", + "_ b", + "\" >Ċ", + "\"> Ċ", + "Ġ time", + "Ġt ime", + "Ġtim e", + "Ġti me", + "Ġ man", + "Ġm an", + "Ġma n", + "r y", + "= =======", + "== ======", + "==== ====", + "=== =====", + "====== ==", + "===== ===", + "======= =", + "r oup", + "ro up", + "rou p", + "r op", + "ro p", + "p ublic", + "pub lic", + "v el", + "ve l", + "um ber", + "umb er", + "b le", + "bl e", + "Ġ which", + "Ġwh ich", + "** **************", + "**** ************", + "******** ********", + "************ ****", + "************** **", + "Ġ any", + "Ġa ny", + "Ġan y", + "Ġ false", + "Ġf alse", + "Ġfa lse", + "Ġfal se", + "Ġfals e", + "w e", + "Ġ value", + "Ġv alue", + "Ġval ue", + "Ġva lue", + "Ġvalu e", + "Ġ li", + "Ġl i", + "\" )", + "n der", + "nd er", + "nde r", + "g r", + "Ġ no", + "Ġn o", + "p aram", + "par am", + "pa ram", + "para m", + "2 5", + "f ig", + "fi g", + ". com", + ".c om", + ".co m", + "Ġ app", + "Ġa pp", + "Ġap p", + "_ l", + "i ons", + "ion s", + "io ns", + ". D", + "Ġ Ch", + "ĠC h", + "Ġ about", + "Ġa bout", + "Ġab out", + "Ġ add", + "Ġa dd", + "Ġad d", + "Ġ su", + "Ġs u", + "Ġ string", + "Ġs tring", + "Ġst ring", + "Ġstr ing", + "Ġstri ng", + "I D", + "Ġ over", + "Ġo ver", + "Ġov er", + "s tring", + "st ring", + "str ing", + "stri ng", + ". l", + "our ce", + "0 00", + "00 0", + "_ C", + "] Ċ", + "Ġ qu", + "Ġq u", + "Ġ String", + "ĠS tring", + "ĠSt ring", + "ĠStr ing", + "c a", + "S E", + "Ġ ro", + "Ġr o", + "s h", + "u al", + "ua l", + "T ype", + "Typ e", + "Ty pe", + "s on", + "so n", + "n ew", + "ne w", + "e rn", + "er n", + "Ġ ag", + "Ġa g", + "A R", + "] ;Ċ", + "]; Ċ", + "] .", + "Ġ ?", + "i cal", + "ic al", + "ica l", + "Ġ des", + "Ġd es", + "Ġde s", + "u th", + "ut h", + "i x", + "a ys", + "ay s", + "Ġ type", + "Ġt ype", + "Ġtyp e", + "Ġty pe", + "' t", + "a ult", + "au lt", + "aul t", + "Ġ inter", + "Ġin ter", + "Ġint er", + "Ġinte r", + "v ar", + "va r", + ". b", + "Ġ part", + "Ġp art", + "Ġpar t", + "Ġpa rt", + ". d", + "ur rent", + "urre nt", + "urr ent", + "I T", + "E N", + "3 0", + "e nc", + "en c", + "( f", + "r a", + "v alue", + "val ue", + "va lue", + "valu e", + "c ho", + "ch o", + "1 8", + "ut ton", + "utt on", + "utto n", + "o se", + "os e", + "1 4", + "Ġ !=", + "Ġ! =", + "a ter", + "at er", + "ate r", + "à ©", + "re ate", + "reat e", + "rea te", + "o ll", + "ol l", + "p os", + "po s", + "y le", + "yl e", + "n g", + "A L", + "u sing", + "us ing", + "usi ng", + "a mes", + "am es", + "ame s", + "Ġ {čĊ", + "Ġ{ čĊ", + "a tes", + "at es", + "ate s", + "e ly", + "el y", + "Ġ work", + "Ġw ork", + "Ġwor k", + "Ġwo rk", + "Ġ em", + "Ġe m", + "i nal", + "in al", + "ina l", + "Ġ sp", + "Ġs p", + "Ġ when", + "Ġw hen", + "Ġwh en", + "Ġwhe n", + ". set", + ".s et", + ".se t", + "Ġ ĠĠĠĠĠ", + "ĠĠ ĠĠĠĠ", + "ĠĠĠĠ ĠĠ", + "ĠĠĠ ĠĠĠ", + "ĠĠĠĠĠ Ġ", + ") :Ċ", + "): Ċ", + "t o", + "q uire", + "qu ire", + "quir e", + "qui re", + "ind ow", + "indo w", + "l ement", + "le ment", + "lem ent", + "lemen t", + "leme nt", + "p ect", + "pe ct", + "pec t", + "a sh", + "as h", + "[ i", + "Ġ use", + "Ġu se", + "Ġus e", + ". F", + "p ec", + "pe c", + "Ġ ad", + "Ġa d", + "o ve", + "ov e", + "ce ption", + "cept ion", + "cep tion", + "e ngth", + "en gth", + "eng th", + "in clude", + "inc lude", + "incl ude", + "inclu de", + "a der", + "ad er", + "ade r", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "at us", + "atu s", + "T h", + "i tle", + "it le", + "r it", + "ri t", + "v oid", + "vo id", + "( ).", + "() .", + "( Ċ", + "Ġ off", + "Ġo ff", + "Ġof f", + "Ġ other", + "Ġo ther", + "Ġot her", + "Ġ &&", + "Ġ& &", + "' ;Ċ", + "'; Ċ", + "m s", + "Ġ been", + "Ġb een", + "Ġbe en", + "Ġbee n", + "Ġ te", + "Ġt e", + "m l", + "c o", + "n c", + "1 3", + "er vice", + "erv ice", + "Ġ %", + "* *Ċ", + "** Ċ", + "a nn", + "an n", + "a de", + "ad e", + "Ċ ĊĊĊ", + "ĊĊ ĊĊ", + "ĊĊĊ Ċ", + "l ock", + "lo ck", + "loc k", + "con st", + "co nst", + "cons t", + "1 00", + "10 0", + "p onse", + "pon se", + "pons e", + "Ġ sup", + "Ġs up", + "Ġsu p", + "+ +", + "d ate", + "da te", + "dat e", + "Ġ acc", + "Ġa cc", + "Ġac c", + "Ġ had", + "Ġh ad", + "Ġha d", + "Ġ bu", + "Ġb u", + "2 00", + "20 0", + "Ġ Re", + "ĠR e", + "Ġ were", + "Ġw ere", + "Ġwe re", + "Ġwer e", + "Ġ file", + "Ġf ile", + "Ġfil e", + "Ġfi le", + "Ġ would", + "Ġw ould", + "Ġwo uld", + "Ġ âĢľ", + "ĠâĢ ľ", + "v en", + "ve n", + "i ss", + "is s", + "Ġ our", + "Ġo ur", + "Ġou r", + "c lass", + "cl ass", + "cla ss", + "clas s", + "r aw", + "ra w", + "Ġ year", + "Ġy ear", + "Ġye ar", + "D ata", + "Da ta", + "Dat a", + "Ġ val", + "Ġv al", + "Ġva l", + "Ġ some", + "Ġs ome", + "Ġso me", + "Ġsom e", + "f ter", + "ft er", + "fte r", + "y s", + "Ġ ///", + "Ġ// /", + "Ġ/ //", + "r ound", + "ro und", + "rou nd", + "v iew", + "vi ew", + "vie w", + "Ġ pe", + "Ġp e", + "Ġ there", + "Ġt here", + "Ġth ere", + "Ġthe re", + "Ġther e", + "Ġ said", + "Ġs aid", + "Ġsa id", + "Ġsai d", + "d u", + "o f", + "l ine", + "li ne", + "lin e", + "/ *", + "d uct", + "du ct", + "duc t", + "Ġ her", + "Ġh er", + "Ġhe r", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "R es", + "Re s", + "Ġ co", + "Ġc o", + "Ġ comm", + "Ġc omm", + "Ġcom m", + "Ġco mm", + "i se", + "is e", + "m in", + "mi n", + "Ġ ĠĠĠĊ", + "ĠĠ ĠĠĊ", + "ĠĠĠĠ Ċ", + "ĠĠĠ ĠĊ", + "# include", + "et hod", + "eth od", + ". P", + "u te", + "ut e", + "Ġ ass", + "Ġa ss", + "Ġas s", + "I nt", + "In t", + "a sk", + "as k", + "l oc", + "lo c", + "Ġ like", + "Ġl ike", + "Ġli ke", + "Ġlik e", + "o dy", + "od y", + "Ġ let", + "Ġl et", + "Ġle t", + "l oad", + "lo ad", + "Ġ am", + "Ġa m", + "r ol", + "ro l", + "Ġ gr", + "Ġg r", + "y p", + "Ġ also", + "Ġal so", + "Ġals o", + "Ġ It", + "ĠI t", + "u rl", + "ur l", + "i fic", + "if ic", + "ifi c", + "o rs", + "or s", + "_ P", + "_ n", + "i gh", + "ig h", + "Ġ than", + "Ġt han", + "Ġth an", + "Ġtha n", + "C om", + "Co m", + "A N", + "U L", + "a ting", + "at ing", + "ati ng", + "atin g", + "1 7", + "Ġ This", + "ĠT his", + "ĠTh is", + "ĠThi s", + "r ef", + "re f", + "_ S", + "Ġ static", + "Ġst atic", + "Ġstat ic", + "Ġsta tic", + "Ġstati c", + "r oll", + "ro ll", + "rol l", + "Ġ just", + "Ġj ust", + "Ġju st", + "Ġjus t", + "Ġ result", + "Ġres ult", + "i an", + "ia n", + "id th", + "Ġ them", + "Ġt hem", + "Ġth em", + "Ġthe m", + ") );Ċ", + ")) ;Ċ", + ")); Ċ", + "d er", + "de r", + "re ak", + "rea k", + "C on", + "Co n", + ": //", + ":/ /", + "u le", + "ul e", + ". ..", + ".. .", + "a rch", + "ar ch", + "arc h", + "e ment", + "em ent", + "eme nt", + "emen t", + "Ġ <<", + "Ġ< <", + "5 0", + "u sh", + "us h", + "en se", + "ens e", + "a rr", + "ar r", + "Ġ into", + "Ġin to", + "Ġint o", + "c ess", + "ce ss", + "ces s", + "a mp", + "am p", + "i ed", + "ie d", + "u ment", + "um ent", + "ume nt", + "umen t", + "Ġ \\", + "] ,", + "w o", + "a ls", + "al s", + "Ġ what", + "Ġw hat", + "Ġwh at", + "a nc", + "an c", + "V alue", + "Val ue", + "Va lue", + "= '", + "o lum", + "ol um", + "olu m", + "Ġ pos", + "Ġp os", + "Ġpo s", + "a ges", + "ag es", + "age s", + "a yer", + "ay er", + "aye r", + "Ġ sc", + "Ġs c", + "u es", + "ue s", + "\" )Ċ", + "\") Ċ", + "_ T", + "Ġ list", + "Ġl ist", + "Ġli st", + "Ġlis t", + "( s", + "Ġ case", + "Ġc ase", + "Ġca se", + "Ġcas e", + "C h", + "ĉ ĉĉĉĉ", + "ĉĉ ĉĉĉ", + "ĉĉĉĉ ĉ", + "ĉĉĉ ĉĉ", + "//// ////", + "/// /////", + "///// ///", + "p onent", + "pon ent", + "pone nt", + "Ġ z", + "Ġ kn", + "Ġk n", + "l et", + "le t", + "D E", + "r ed", + "re d", + "Ġ fe", + "Ġf e", + "Ġ },Ċ", + "Ġ} ,Ċ", + "Ġ}, Ċ", + "Ġ ,", + "( t", + "Ġ first", + "Ġf irst", + "Ġfi rst", + "Ġfir st", + "' );Ċ", + "') ;Ċ", + "'); Ċ", + "w ord", + "wo rd", + "wor d", + "Ġ import", + "Ġim port", + "Ġimp ort", + "Ġ act", + "Ġa ct", + "Ġac t", + "Ġ char", + "Ġc har", + "Ġch ar", + "Ġcha r", + "C T", + "Ġ Tr", + "ĠT r", + "o ple", + "op le", + "opl e", + "= {", + "ĉ f", + "2 4", + "i ent", + "ie nt", + "ien t", + "c ent", + "ce nt", + "cen t", + ". j", + "l ection", + "le ction", + "lect ion", + "lec tion", + ") )Ċ", + ")) Ċ", + "Ġ only", + "Ġon ly", + "Ġ print", + "Ġp rint", + "Ġpr int", + "Ġpri nt", + "Ġprin t", + "m er", + "me r", + ". W", + "o ck", + "oc k", + "Ġ --", + "Ġ- -", + "T ext", + "Te xt", + "Tex t", + "Ġ op", + "Ġo p", + "a nk", + "an k", + "Ġ its", + "Ġit s", + "Ġi ts", + "Ġ back", + "Ġb ack", + "Ġba ck", + "Ġbac k", + "[ \"", + "Ġ need", + "Ġn eed", + "Ġne ed", + "Ġ cl", + "Ġc l", + "Ġ sub", + "Ġs ub", + "Ġsu b", + "Ġ la", + "Ġl a", + "( (", + ". \"", + "O bject", + "Ob ject", + "Obj ect", + "Ġ start", + "Ġst art", + "Ġstar t", + "Ġsta rt", + "f ile", + "fi le", + "fil e", + "( self", + "(s elf", + "(se lf", + "(sel f", + "n er", + "ne r", + "e y", + "Ġ user", + "Ġu ser", + "Ġus er", + "Ġuse r", + "Ġ ent", + "Ġe nt", + "Ġen t", + "Ġ Com", + "ĠC om", + "ĠCo m", + "i ts", + "it s", + "Ġ Con", + "ĠC on", + "ĠCo n", + "o uble", + "ou ble", + "oub le", + "o wer", + "ow er", + "owe r", + "i tem", + "it em", + "ite m", + "v ery", + "ver y", + "ve ry", + "Ġ We", + "ĠW e", + "6 4", + "l ick", + "lic k", + "li ck", + "Ġ Q", + "p hp", + "ph p", + "t tp", + "tt p", + "' :", + "i cs", + "ic s", + "Ġ under", + "Ġu nder", + "Ġun der", + "Ġund er", + "Ġunde r", + "Ġ *Ċ", + "Ġ* Ċ", + ". L", + ") ;", + "i ces", + "ic es", + "ice s", + "Ġ reg", + "Ġre g", + "Ġr eg", + ") čĊ", + "ĉ public", + "ĉp ublic", + "ĉpub lic", + "S S", + "Ġ then", + "Ġt hen", + "Ġth en", + "Ġthe n", + "r eat", + "re at", + "rea t", + "i ous", + "io us", + "iou s", + ". G", + "e k", + "i rect", + "ir ect", + "ire ct", + "h eck", + "he ck", + "hec k", + "cri pt", + "cr ipt", + "n ing", + "ni ng", + "nin g", + "Ġ Un", + "ĠU n", + "Ġ may", + "Ġm ay", + "Ġma y", + "Ġ Wh", + "ĠW h", + "B o", + "I tem", + "It em", + "str uct", + "stru ct", + ". st", + ".s t", + "r eam", + "re am", + "rea m", + "i ble", + "ib le", + "lo at", + "Ġ org", + "Ġo rg", + "Ġor g", + "u nd", + "un d", + "s um", + "su m", + "_ in", + "_i n", + ". ./", + ".. /", + "_ M", + "Ġ how", + "Ġh ow", + "Ġho w", + "r ite", + "ri te", + "rit e", + "' Ċ", + "T o", + "4 0", + "w w", + "Ġ people", + "Ġpe ople", + "in dex", + "ind ex", + "inde x", + ". n", + "h ttp", + "ht tp", + "htt p", + "( m", + "e ctor", + "ect or", + "ec tor", + "Ġ ind", + "Ġin d", + "Ġi nd", + "Ġ jav", + "Ġj av", + "Ġja v", + "] ,Ċ", + "], Ċ", + "Ġ He", + "ĠH e", + "_ st", + "_s t", + "f ul", + "fu l", + "o le", + "ol e", + ") {Ċ", + "){ Ċ", + "Ġ should", + "Ġsh ould", + "Ġsho uld", + "o py", + "op y", + "e lp", + "el p", + "i er", + "ie r", + "_ name", + "_n ame", + "_na me", + "er son", + "ers on", + "I ON", + "IO N", + "o te", + "ot e", + "Ġ test", + "Ġt est", + "Ġte st", + "Ġtes t", + "Ġ bet", + "Ġb et", + "Ġbe t", + "r ror", + "rr or", + "u lar", + "ul ar", + "ula r", + "ã Ģ", + "Ġ Ð", + "b s", + "t ing", + "ti ng", + "tin g", + "Ġ make", + "Ġm ake", + "Ġma ke", + "Ġmak e", + "T r", + "Ġ after", + "Ġa fter", + "Ġaf ter", + "Ġaft er", + "ar get", + "arg et", + "arge t", + "R O", + "ol umn", + "olum n", + "olu mn", + "r c", + "_ re", + "_r e", + "de fine", + "def ine", + "2 2", + "Ġ right", + "Ġr ight", + "Ġrig ht", + "Ġri ght", + "r ight", + "ri ght", + "rig ht", + "d ay", + "da y", + "Ġ long", + "Ġl ong", + "Ġlo ng", + "Ġlon g", + "[ ]", + "( p", + "t d", + "c ond", + "con d", + "co nd", + "Ġ Pro", + "ĠP ro", + "ĠPr o", + "Ġ rem", + "Ġre m", + "Ġr em", + "pt ions", + "ption s", + "v id", + "vi d", + ". g", + "Ġ ext", + "Ġe xt", + "Ġex t", + "Ġ __", + "Ġ_ _", + "' )Ċ", + "') Ċ", + "p ace", + "pa ce", + "pac e", + "m p", + "Ġ min", + "Ġm in", + "Ġmi n", + "st ance", + "sta nce", + "stan ce", + "a ir", + "ai r", + "a ction", + "act ion", + "ac tion", + "w h", + "t ype", + "ty pe", + "typ e", + "u til", + "ut il", + "uti l", + "a it", + "ai t", + "< ?", + "I C", + "t ext", + "te xt", + "tex t", + "Ġ ph", + "Ġp h", + "Ġ fl", + "Ġf l", + ". M", + "c cess", + "cc ess", + "cce ss", + "b r", + "f ore", + "fo re", + "for e", + "ers ion", + ") ,Ċ", + "), Ċ", + ". re", + ".r e", + "a teg", + "at eg", + "ate g", + "Ġ loc", + "Ġl oc", + "Ġlo c", + "i ns", + "in s", + "- s", + "t rib", + "tr ib", + "tri b", + "Ġ Int", + "ĠI nt", + "ĠIn t", + "Ġ array", + "Ġa rray", + "Ġar ray", + "Ġarr ay", + ", \"", + "P ro", + "Pr o", + "( c", + "ess ion", + "> ĊĊ", + ">Ċ Ċ", + "Ġ she", + "Ġs he", + "Ġsh e", + "\" ]", + "a ph", + "ap h", + "Ġ exp", + "Ġe xp", + "Ġex p", + "er ty", + "ert y", + "Ġ Se", + "ĠS e", + "Ġ par", + "Ġp ar", + "Ġpa r", + "u nc", + "un c", + "E T", + "Ġ read", + "Ġre ad", + "Ġr ead", + "p rint", + "pr int", + "pri nt", + "Ġ rel", + "Ġre l", + "Ġr el", + "Ġ form", + "Ġf orm", + "Ġfor m", + "Ġfo rm", + "Ġ dr", + "Ġd r", + "Ex ception", + "Except ion", + "in put", + "inp ut", + "Ġ trans", + "Ġt rans", + "Ġtr ans", + "Ġtra ns", + "Ġtran s", + "# #######", + "## ######", + "#### ####", + "### #####", + "##### ###", + "###### ##", + "####### #", + "or der", + "ord er", + "orde r", + "B y", + "Ġ aw", + "Ġa w", + "i ties", + "it ies", + "iti es", + "u ff", + "uf f", + "p lay", + "pl ay", + "pla y", + ". add", + ".a dd", + ".ad d", + "Ġ âĢĵ", + "ĠâĢ ĵ", + "Ġ want", + "Ġw ant", + "Ġwa nt", + "Ġwan t", + "Ġ comp", + "Ġc omp", + "Ġcom p", + "Ġco mp", + "m ents", + "ment s", + "me nts", + "men ts", + "Ġ ||", + "Ġ| |", + "a z", + "b e", + "Ġ number", + "Ġn umber", + "Ġnum ber", + "Ġnumb er", + "Ġ require", + "Ġre quire", + "Ġreq uire", + "Ġrequ ire", + "Ġ Ex", + "ĠE x", + "6 0", + "Ġ col", + "Ġc ol", + "Ġco l", + "Ġ key", + "Ġk ey", + "Ġke y", + "em ber", + "emb er", + "Ġ two", + "Ġt wo", + "Ġtw o", + "Ġ size", + "Ġs ize", + "Ġsi ze", + "Ġsiz e", + "Ġ where", + "Ġw here", + "Ġwh ere", + "Ġwhe re", + "U T", + "res ult", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "o ugh", + "ou gh", + "oug h", + "or ld", + "o od", + "oo d", + "u ch", + "uc h", + "at ive", + "ati ve", + "ativ e", + "g er", + "ge r", + "a rent", + "ar ent", + "are nt", + "aren t", + "Ġ /*", + "Ġ/ *", + "Ġ arg", + "Ġa rg", + "Ġar g", + "Ġ while", + "Ġwh ile", + "2 3", + "( this", + "(t his", + "(th is", + "Ġ rec", + "Ġre c", + "Ġr ec", + "Ġ dif", + "Ġd if", + "Ġdi f", + "St ate", + "Stat e", + "Ġ spec", + "Ġs pec", + "Ġsp ec", + "Ġspe c", + "r ide", + "ri de", + "rid e", + "_ F", + "Ġ look", + "Ġl ook", + "Ġlo ok", + "A M", + "il ity", + "ilit y", + "ili ty", + "e ter", + "et er", + "ete r", + "âĢĻ t", + "Ċ ĊĊ", + "ĊĊ Ċ", + "ay out", + "ayo ut", + "-- ------------------------------", + "---- ----------------------------", + "---------------- ----------------", + "------------ --------------------", + "---------------------------- ----", + "------------------------------ --", + "-------------------- ------------", + "a ger", + "ag er", + "age r", + "Ġ could", + "Ġc ould", + "Ġco uld", + "Ġcou ld", + "Ġ br", + "Ġb r", + "e nds", + "en ds", + "end s", + "u res", + "ur es", + "ure s", + "Ġ know", + "Ġk now", + "Ġkn ow", + "e ts", + "et s", + "Ġ If", + "ĠI f", + "Ġ Sh", + "ĠS h", + ". w", + "b ack", + "ba ck", + "bac k", + "Ġ ser", + "Ġs er", + "Ġse r", + "Ġ +=", + "Ġ+ =", + "Ġ fr", + "Ġf r", + "( ));Ċ", + "() );Ċ", + "()) ;Ċ", + "()); Ċ", + "Ġ hand", + "Ġh and", + "Ġha nd", + "Ġhan d", + "I nd", + "In d", + "U LL", + "UL L", + "I m", + "( );ĊĊ", + "() ;ĊĊ", + "();Ċ Ċ", + "(); ĊĊ", + "Ġ most", + "Ġm ost", + "Ġmo st", + "Ġmos t", + "Ġ try", + "Ġt ry", + "Ġtr y", + "Ġ now", + "Ġn ow", + "Ġno w", + "r ough", + "ro ugh", + "rou gh", + "> čĊ", + "ack age", + "Ġ him", + "Ġh im", + "Ġhi m", + ". _", + "i fy", + "if y", + "Ġ break", + "Ġb reak", + "Ġbre ak", + "Ġ );Ċ", + "Ġ) ;Ċ", + "Ġ); Ċ", + "r en", + "re n", + "# define", + "i tt", + "it t", + "Ġ ap", + "Ġa p", + "ĉ c", + "( n", + "Ġ You", + "ĠY ou", + "ĠYo u", + ": ĊĊ", + ":Ċ Ċ", + "- m", + "Ġ every", + "Ġe very", + "Ġever y", + "Ġev ery", + "Ġeve ry", + "us tom", + "ust om", + "usto m", + "l ient", + "li ent", + "lie nt", + "lien t", + "oc ument", + "ocu ment", + "cri ption", + "cript ion", + "E rror", + "Err or", + "Er ror", + "Erro r", + "- b", + "Ð ¾", + "] [", + "9 9", + "t rans", + "tr ans", + "tra ns", + "tran s", + "Ġ point", + "Ġp oint", + "Ġpo int", + "Ġpoi nt", + "Ġ std", + "Ġs td", + "Ġst d", + "Ġ fil", + "Ġf il", + "Ġfi l", + "T ime", + "Tim e", + "Ti me", + "8 0", + "Ġ mod", + "Ġm od", + "Ġmo d", + "Ġ ->", + "Ġ- >", + "Ġ error", + "Ġe rror", + "Ġerr or", + "Ġer ror", + "Ġerro r", + "a h", + "Ġ text", + "Ġt ext", + "Ġte xt", + "Ġtex t", + "r oller", + "ro ller", + "rol ler", + "roll er", + "l ose", + "lo se", + "los e", + "q l", + "Ġ pol", + "Ġp ol", + "Ġpo l", + "> < /", + "Ġ show", + "Ġs how", + "Ġsh ow", + "Ġsho w", + "U ser", + "Us er", + "Use r", + "a sed", + "as ed", + "ase d", + "Ġ {ĊĊ", + "Ġ{ ĊĊ", + "Ġ{Ċ Ċ", + "Ġ find", + "Ġf ind", + "Ġfin d", + "Ġfi nd", + "Ð °", + "E D", + "s pan", + "sp an", + "spa n", + "e nu", + "en u", + "Ġ current", + "Ġc urrent", + "Ġcur rent", + "Ġcurr ent", + "Ġ used", + "Ġu sed", + "Ġus ed", + "Ġuse d", + "c ept", + "ce pt", + "cep t", + "cl ud", + "Ġ play", + "Ġp lay", + "Ġpl ay", + "Ġpla y", + "Ġ log", + "Ġl og", + "Ġlo g", + "u tion", + "ut ion", + "uti on", + "f l", + "Ġ see", + "Ġs ee", + "Ġse e", + "ind ows", + "indow s", + "indo ws", + "Ġ help", + "Ġh elp", + "Ġhe lp", + "Ġhel p", + "Ġ these", + "Ġth ese", + "Ġthe se", + "Ġ pass", + "Ġp ass", + "Ġpas s", + "Ġpa ss", + "Ġ down", + "Ġd own", + "Ġdo wn", + "Ġdow n", + "Ġ even", + "Ġe ven", + "Ġev en", + "Ġeve n", + "a son", + "as on", + "aso n", + "u ild", + "ui ld", + "uil d", + "f rom", + "fr om", + "( d", + "Ġ bl", + "Ġb l", + "l abel", + "la bel", + "lab el", + "e lse", + "el se", + "els e", + "Ð µ", + "Ġ (!", + "Ġ( !", + "i zed", + "iz ed", + "ize d", + "( ),", + "() ,", + "Ġ ob", + "Ġo b", + "Ġ item", + "Ġit em", + "Ġi tem", + "u mp", + "um p", + "U R", + "o rn", + "or n", + "Ġ don", + "Ġd on", + "Ġdo n", + "S e", + "m an", + "ma n", + "2 7", + "am ple", + "amp le", + "t n", + "= ===============", + "== ==============", + "==== ============", + "======== ========", + "=== =============", + "============ ====", + "============= ===", + "=========== =====", + "============== ==", + "========= =======", + "========== ======", + "=============== =", + "====== ==========", + "===== ===========", + "======= =========", + "H e", + "g ram", + "gr am", + "gra m", + "Ġ did", + "Ġd id", + "Ġdi d", + "w n", + "_ h", + "i ver", + "iv er", + "ive r", + "Ġ sm", + "Ġs m", + "Ġ through", + "Ġth rough", + "Ġthr ough", + "Ġthro ugh", + "Ġ An", + "ĠA n", + "c he", + "ch e", + "Ġ inv", + "Ġin v", + "Ġi nv", + "o use", + "ou se", + "ous e", + "Ġ es", + "Ġe s", + "Ġ New", + "ĠN ew", + "ĠNe w", + "ex port", + "exp ort", + "expo rt", + "m ary", + "ma ry", + "mar y", + "u to", + "ut o", + "l er", + "le r", + "Ġ last", + "Ġl ast", + "Ġla st", + "Ġlas t", + "Ġ event", + "Ġe vent", + "Ġeven t", + "Ġev ent", + "Ġeve nt", + "t ry", + "tr y", + "ï ¼", + "i ly", + "il y", + "ig ned", + "ign ed", + "igne d", + "i nes", + "in es", + "ine s", + "ol low", + "oll ow", + "ollo w", + "ic ense", + "icens e", + "s ole", + "so le", + "sol e", + "l ear", + "le ar", + "lea r", + "( int", + "(i nt", + "(in t", + "Ġ again", + "Ġa gain", + "Ġag ain", + "Ġ high", + "Ġh igh", + "Ġhi gh", + "h tml", + "ht ml", + "htm l", + "In dex", + "Ind ex", + "ut hor", + "uth or", + "Ġ /**Ċ", + "Ġ/ **Ċ", + "Ġ/* *Ċ", + "Ġ/** Ċ", + "Ġ line", + "Ġl ine", + "Ġli ne", + "Ġlin e", + "E vent", + "Even t", + "Ev ent", + "_ D", + "Ġ does", + "Ġd oes", + "Ġdo es", + "Ġdoe s", + "it ial", + "iti al", + "itia l", + "Ġ cr", + "Ġc r", + "a rs", + "ar s", + "2 8", + "Ġ tem", + "Ġt em", + "Ġte m", + "c ause", + "ca use", + "f ace", + "fa ce", + "fac e", + "Ġ `", + "_ A", + "B utton", + "But ton", + "a ture", + "at ure", + "atur e", + "atu re", + "ect ed", + "ec ted", + "E S", + "i ster", + "is ter", + "ist er", + "iste r", + "ĉ Ċ", + "Ġ before", + "Ġb efore", + "Ġbe fore", + "Ġbef ore", + "a le", + "al e", + "o ther", + "ot her", + "oth er", + "Ġ because", + "Ġb ecause", + "Ġbe cause", + "Ġbec ause", + "r oid", + "ro id", + "roi d", + "Ġ ed", + "Ġe d", + "i k", + "r eg", + "re g", + "Ġ De", + "ĠD e", + "Ġ dist", + "Ġd ist", + "Ġdis t", + "Ġdi st", + "} ,Ċ", + "}, Ċ", + "Ġ state", + "Ġst ate", + "Ġstat e", + "Ġsta te", + "Ġ cons", + "Ġc ons", + "Ġcon s", + "Ġco ns", + "r int", + "ri nt", + "rin t", + "a tt", + "at t", + "Ġ here", + "Ġh ere", + "Ġhe re", + "Ġher e", + "i ned", + "in ed", + "ine d", + "Ġ final", + "Ġf inal", + "Ġfin al", + "Ġfi nal", + "Ġ \"\"", + "Ġ\" \"", + "K ey", + "Ke y", + "L O", + "Ġ del", + "Ġd el", + "Ġde l", + "p ty", + "pt y", + "th ing", + "thin g", + "2 6", + "Ġ And", + "ĠA nd", + "ĠAn d", + "Ġ run", + "Ġr un", + "Ġru n", + "Ġ X", + "y m", + ". app", + ".ap p", + ".a pp", + "Ġ very", + "Ġv ery", + "Ġver y", + "Ġve ry", + "c es", + "ce s", + "_ N", + "a red", + "ar ed", + "are d", + "w ard", + "wa rd", + "war d", + "l ist", + "li st", + "lis t", + "i ted", + "it ed", + "ite d", + "o log", + "ol og", + "olo g", + "it ch", + "B ox", + "Bo x", + "i fe", + "if e", + "3 3", + "Ġ ac", + "Ġa c", + "Ġ model", + "Ġm odel", + "Ġmod el", + "Ġmode l", + "Ġmo del", + "Ġ mon", + "Ġm on", + "Ġmo n", + "Ġ way", + "Ġw ay", + "Ġwa y", + "l ete", + "le te", + "let e", + "Ġ call", + "Ġc all", + "Ġcal l", + "Ġca ll", + "Ġ att", + "Ġa tt", + "Ġat t", + "Ġ cal", + "Ġc al", + "Ġca l", + "v ert", + "ver t", + "ve rt", + "Ġ dec", + "Ġd ec", + "Ġde c", + "l ease", + "le ase", + "lea se", + "o un", + "ou n", + "Ġ });Ċ", + "Ġ} );Ċ", + "Ġ}) ;Ċ", + "Ġ}); Ċ", + "f r", + "form ation", + "format ion", + "forma tion", + "e tail", + "et ail", + "eta il", + "Ġ num", + "Ġn um", + "Ġnu m", + "a j", + "qu ery", + "que ry", + "quer y", + "Ġ well", + "Ġw ell", + "Ġwe ll", + "Ġwel l", + "Ġ object", + "Ġo bject", + "Ġob ject", + "Ġobj ect", + "Ġ As", + "ĠA s", + "Ġ years", + "Ġy ears", + "Ġyear s", + "Ġye ars", + "C olor", + "Col or", + "Co lor", + "I S", + "Ġ default", + "Ġd efault", + "Ġde fault", + "Ġdef ault", + "Ġdefa ult", + "W h", + "Ġ ins", + "Ġin s", + "Ġi ns", + "a int", + "ain t", + "ai nt", + "Ġ java", + "Ġj ava", + "Ġjav a", + "Ġja va", + "Ġ sim", + "Ġs im", + "Ġsi m", + "Ġ Ar", + "ĠA r", + "m on", + "mo n", + "t il", + "ti l", + "( );čĊ", + "() ;čĊ", + "(); čĊ", + ") :", + "S et", + "Se t", + "2 9", + "at ter", + "att er", + "atte r", + "Ġ view", + "Ġv iew", + "Ġvi ew", + "Ġvie w", + "Ġ pres", + "Ġp res", + "Ġpr es", + "Ġpre s", + "a rray", + "ar ray", + "arr ay", + "arra y", + "W e", + "A t", + "Ġ bel", + "Ġb el", + "Ġbe l", + "Ġ many", + "Ġm any", + "Ġman y", + "Ġma ny", + "2 1", + "M an", + "Ma n", + "e nder", + "en der", + "end er", + "ende r", + "Ġ being", + "Ġb eing", + "Ġbe ing", + "Ġbei ng", + "Ġ good", + "Ġg ood", + "Ġgo od", + "Ġgoo d", + "ĉ ĉĉĉĉĉ", + "ĉĉ ĉĉĉĉ", + "ĉĉĉĉ ĉĉ", + "ĉĉĉ ĉĉĉ", + "ĉĉĉĉĉ ĉ", + "at ional", + "ation al", + "atio nal", + "ati onal", + "w are", + "wa re", + "war e", + ". log", + ".l og", + ".lo g", + "{ čĊ", + "Ġ using", + "Ġu sing", + "Ġus ing", + "_ B", + "Ġ :=", + "Ġ: =", + "_ w", + "i sts", + "is ts", + "ist s", + "l ish", + "li sh", + "lis h", + "Ġ stud", + "Ġst ud", + "Ġstu d", + "Ġ Al", + "ĠA l", + "Ġ gu", + "Ġg u", + "con fig", + "conf ig", + "u ring", + "ur ing", + "uri ng", + "t ime", + "ti me", + "tim e", + "o ken", + "ok en", + "oke n", + "ame space", + "ames pace", + "Ġ request", + "Ġre quest", + "Ġreq uest", + "Ġrequ est", + "Ġ child", + "Ġch ild", + "Ġchi ld", + "Ġ Ã", + "l ob", + "lo b", + "Ġ param", + "Ġp aram", + "Ġpar am", + "Ġpara m", + "Ġpa ram", + "Ġ }čĊ", + "Ġ} čĊ", + "0 1", + "Ġ echo", + "Ġe cho", + "Ġec ho", + "Ġech o", + "f unction", + "func tion", + "fun ction", + "**** ****************************", + "******** ************************", + "**************** ****************", + "************************ ********", + "******************** ************", + "**************************** ****", + "************ ********************", + "p s", + "E lement", + "El ement", + "Elem ent", + "Ele ment", + "a lk", + "al k", + "l ication", + "lic ation", + "li cation", + "lica tion", + "b y", + "S ize", + "Si ze", + "ra wing", + "raw ing", + "Ġ person", + "Ġp erson", + "Ġper son", + "Ġpers on", + "Ġperso n", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "\\ n", + "o bject", + "ob ject", + "obj ect", + "i nce", + "in ce", + "inc e", + "E n", + "F ile", + "Fi le", + "Fil e", + "u f", + "f fect", + "ff ect", + "ffe ct", + "A C", + "Ġ style", + "Ġst yle", + "Ġsty le", + "Ġstyl e", + "sum mary", + "summ ary", + "Ġ que", + "Ġqu e", + "Ġq ue", + "_ r", + "Ġ ($", + "Ġ( $", + "M odel", + "Mode l", + "Mod el", + "Mo del", + "i dent", + "id ent", + "ide nt", + "iden t", + "Ġ method", + "Ġm ethod", + "Ġmet hod", + "Ġmeth od", + "I L", + "o tt", + "ot t", + "l ess", + "le ss", + "les s", + "I NG", + "IN G", + "Ġ ()", + "Ġ( )", + "Ġ expect", + "Ġex pect", + "Ġexp ect", + "y nc", + "yn c", + "p ackage", + "pack age", + "3 5", + "u rs", + "ur s", + "Ġ prot", + "Ġp rot", + "Ġpro t", + "Ġpr ot", + ". /", + "p re", + "pr e", + "Ġ )Ċ", + "Ġ) Ċ", + "m a", + "Ġ sur", + "Ġs ur", + "Ġsu r", + "Ġ found", + "Ġf ound", + "Ġfo und", + "Ġfou nd", + "In fo", + "Inf o", + "p ar", + "pa r", + "i mes", + "im es", + "ime s", + ". e", + "a ins", + "ain s", + "ai ns", + "Ġ post", + "Ġp ost", + "Ġpos t", + "Ġpo st", + "- d", + "4 5", + "o lean", + "ol ean", + "ole an", + "Ġ sl", + "Ġs l", + "P E", + "Ġ such", + "Ġs uch", + "Ġsu ch", + "Ġsuc h", + "s elect", + "se lect", + "sel ect", + "a iner", + "ain er", + "ai ner", + "aine r", + "Ġ think", + "Ġth ink", + "Ġthin k", + "Ġthi nk", + "Ġd iffer", + "Ġdif fer", + "Ġdi ffer", + "Ġdiff er", + ". r", + "/ **Ċ", + "/* *Ċ", + "/** Ċ", + "F F", + "o ol", + "oo l", + "p late", + "pl ate", + "plat e", + "pla te", + "q ual", + "qu al", + "qua l", + "Ġ For", + "ĠF or", + "ĠFo r", + "Ġ much", + "Ġm uch", + "Ġmu ch", + "Ġmuc h", + "u c", + "( new", + "(n ew", + "(ne w", + "od ule", + "odu le", + "Ġ som", + "Ġs om", + "Ġso m", + "Ġ http", + "Ġh ttp", + "Ġht tp", + "Ġhtt p", + "Ġ List", + "ĠL ist", + "ĠLi st", + "ĠLis t", + "Ġ count", + "Ġc ount", + "Ġco unt", + "Ġcoun t", + "Ġcou nt", + "Ġ inst", + "Ġin st", + "Ġi nst", + "Ġins t", + "c har", + "ch ar", + "cha r", + "m it", + "mi t", + ". id", + ".i d", + "a king", + "ak ing", + "aki ng", + "akin g", + "Ġ gener", + "Ġg ener", + "Ġge ner", + "Ġgen er", + "Ġgene r", + "p x", + "v ice", + "vi ce", + "vic e", + "3 7", + "_ data", + "_d ata", + "_dat a", + "_da ta", + "Ġ NULL", + "ĠN ULL", + "ĠNU LL", + "} čĊ", + "i dd", + "id d", + "ãĢ Ĥ", + "Ġ med", + "Ġm ed", + "Ġme d", + "o rg", + "or g", + "i der", + "id er", + "ide r", + "a che", + "ac he", + "ach e", + "w ork", + "wo rk", + "wor k", + "Ġ check", + "Ġc heck", + "Ġch eck", + "Ġche ck", + "w een", + "we en", + "Ġ ((", + "Ġ( (", + "t he", + "th e", + "a nts", + "an ts", + "ant s", + "> <", + ". B", + "- c", + "Ġ open", + "Ġo pen", + "Ġop en", + "Ġ est", + "Ġe st", + "Ġes t", + "Ġ ĠĠĠĠĠĠĠĊ", + "ĠĠ ĠĠĠĠĠĠĊ", + "ĠĠĠĠ ĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠ Ċ", + "ĠĠĠ ĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠ ĠĊ", + "ĠĠĠĠĠ ĠĠĠĊ", + "ĠĠĠĠĠĠ ĠĠĊ", + "Ġ next", + "Ġn ext", + "Ġne xt", + "Ġnex t", + "I M", + "Ñ Ĥ", + "O T", + "à ³", + "Ġ follow", + "Ġf ollow", + "Ġfol low", + "Ġfoll ow", + "c ontent", + "con tent", + "cont ent", + "conte nt", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "Ġin clud", + "Ġincl ud", + "Ġinclu d", + "H E", + "Ġ Res", + "ĠR es", + "ĠRe s", + "Ġ href", + "Ġh ref", + "Ġhr ef", + "Ð ¸", + "Ġ car", + "Ġc ar", + "Ġca r", + "y pes", + "ype s", + "yp es", + "i mage", + "im age", + "ima ge", + "imag e", + "U n", + "Ġ bool", + "Ġb ool", + "Ġbo ol", + "Ġboo l", + "A D", + "Ġ game", + "Ġg ame", + "Ġgam e", + "Ġga me", + ". Form", + ".F orm", + ".For m", + "r ows", + "ro ws", + "row s", + "* /", + "v elop", + "ve lop", + "vel op", + ". Drawing", + ".D rawing", + ".Draw ing", + "Ġ path", + "Ġp ath", + "Ġpat h", + "Ġpa th", + "is ion", + "isi on", + "Ġ each", + "Ġe ach", + "Ġea ch", + "Ġ Pl", + "ĠP l", + "_ type", + "_t ype", + "_typ e", + "_ty pe", + "P ath", + "Pa th", + "Pat h", + "n ection", + "ne ction", + "nect ion", + "Ġ av", + "Ġa v", + "' ).", + "') .", + "Ġ support", + "Ġs upport", + "Ġsup port", + "Ġsupp ort", + "E NT", + "EN T", + "r em", + "re m", + "\" ).", + "\") .", + "Ġ own", + "Ġo wn", + "Ġow n", + "Ġ cor", + "Ġc or", + "Ġco r", + "c ount", + "co unt", + "cou nt", + "m iss", + "mi ss", + "mis s", + "u ally", + "ual ly", + "Ġ mem", + "Ġm em", + "Ġme m", + "s td", + "st d", + "i ence", + "ie nce", + "ien ce", + "s earch", + "se arch", + "sea rch", + "\" ĊĊ", + "\"Ċ Ċ", + "F orm", + "For m", + "Fo rm", + "Ġ sex", + "Ġs ex", + "Ġse x", + "e name", + "en ame", + "ena me", + "Ġ sign", + "Ġs ign", + "Ġsi gn", + "Ġsig n", + "Ġ et", + "Ġe t", + "Ġ ĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠ ĠĠĠĠ", + "' ,'", + "', '", + "Ġ App", + "ĠA pp", + "ĠAp p", + "Ġ those", + "Ġth ose", + "Ġtho se", + "o ff", + "of f", + "Ġ err", + "Ġe rr", + "Ġer r", + "Ġ system", + "Ġs ystem", + "Ġsys tem", + "Ġsy stem", + "Ġsyst em", + "Ġ best", + "Ġb est", + "Ġbe st", + "Ġbes t", + "c ode", + "co de", + "cod e", + "Ġ same", + "Ġs ame", + "Ġsa me", + "Ġsam e", + "Ġ di", + "Ġd i", + "u ss", + "us s", + "Ġ create", + "Ġc reate", + "Ġcre ate", + "Ġcreat e", + "Ġcrea te", + "a ther", + "at her", + "ath er", + "athe r", + "A rray", + "Ar ray", + "Arr ay", + ". in", + ".i n", + "f e", + "S ervice", + "Ser vice", + "Serv ice", + "U N", + "a ts", + "at s", + "Ġ Z", + "al th", + "alt h", + "Ġ made", + "Ġm ade", + "Ġma de", + "Ġmad e", + "tr ue", + "tru e", + "A B", + "Ġ mark", + "Ġm ark", + "Ġmar k", + "Ġma rk", + "r id", + "ri d", + "if ied", + "ifi ed", + "ifie d", + ", čĊ", + "y n", + "p ress", + "pr ess", + "pre ss", + "pres s", + "Ġ group", + "Ġg roup", + "Ġgr oup", + "Ġgro up", + "Ġgrou p", + "Ġ fin", + "Ġf in", + "Ġfi n", + "Ġ License", + "ĠL icense", + "ĠLic ense", + "F ield", + "Fi eld", + "e ger", + "eg er", + "Ġ world", + "Ġw orld", + "Ġwor ld", + "i ness", + "in ess", + "ine ss", + "ines s", + "t y", + "Ġ process", + "Ġp rocess", + "Ġpro cess", + "Ġproc ess", + "Ġproces s", + "( b", + "Ġ cre", + "Ġc re", + "Ġcr e", + "a rn", + "ar n", + "i ves", + "iv es", + "ive s", + "Ġ main", + "Ġm ain", + "Ġma in", + "Ġmai n", + "i deo", + "id eo", + "ide o", + "3 6", + "_ g", + "A G", + "val id", + "va lid", + "i mg", + "im g", + "P I", + "Ġ color", + "Ġc olor", + "Ġco lor", + "Ġcol or", + "Ġ report", + "Ġre port", + "Ġrep ort", + "Ġrepo rt", + "Ġ take", + "Ġt ake", + "Ġta ke", + "Ġtak e", + "r ib", + "ri b", + "O M", + "Ġ day", + "Ġd ay", + "Ġda y", + "Re quest", + "Req uest", + "Ġ sk", + "Ġs k", + "b ers", + "ber s", + "be rs", + "ĉ s", + ". Add", + ".A dd", + ".Ad d", + "o ot", + "oo t", + "I mage", + "Im age", + "Ġcom ple", + "Ġcomp le", + "Ġcompl e", + "ol lection", + "oll ection", + "ollect ion", + "olle ction", + "Ġ top", + "Ġt op", + "Ġto p", + "Ġ free", + "Ġf ree", + "Ġfr ee", + "Ġfre e", + "A S", + "D e", + "Ġ On", + "ĠO n", + "I G", + "9 0", + "e ta", + "et a", + "D ate", + "Da te", + "Dat e", + "Ġ action", + "Ġa ction", + "Ġact ion", + "Ġac tion", + "3 4", + "O ver", + "i tor", + "it or", + "ito r", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "n ot", + "no t", + "Ġ index", + "Ġin dex", + "Ġind ex", + "Ġinde x", + "h er", + "he r", + "i con", + "ic on", + "ico n", + "O n", + "; čĊčĊ", + ";čĊ čĊ", + "iv ity", + "ivi ty", + "m and", + "man d", + "ma nd", + ". Windows", + ".W indows", + ".Window s", + "O L", + "Ġ real", + "Ġre al", + "Ġ max", + "Ġm ax", + "Ġma x", + "l and", + "la nd", + "lan d", + ". ...", + ".. ..", + "... .", + "r aph", + "ra ph", + "rap h", + "Ġ build", + "Ġb uild", + "Ġbu ild", + "l eg", + "le g", + "as sword", + "ass word", + "? ĊĊ", + "?Ċ Ċ", + "âĢ ¦", + "o ok", + "oo k", + "u ck", + "uc k", + "Ġ message", + "Ġm essage", + "Ġmess age", + "Ġmes sage", + "t est", + "te st", + "tes t", + "i vers", + "iv ers", + "ive rs", + "iver s", + "3 8", + "Ġ input", + "Ġin put", + "Ġinp ut", + "Ġ art", + "Ġa rt", + "Ġar t", + "Ġ between", + "Ġb etween", + "Ġbet ween", + "G et", + "Ge t", + "en ter", + "ent er", + "ente r", + "g round", + "gr ound", + "gro und", + "e ne", + "en e", + "à ¡", + ". length", + ".l ength", + ".len gth", + ".le ngth", + "N ode", + "No de", + "( i", + "C lass", + "Cl ass", + "Cla ss", + "f or", + "fo r", + "Ġ âĢĶ", + "ĠâĢ Ķ", + "t en", + "te n", + "o in", + "oi n", + "Ġ ke", + "Ġk e", + "u i", + "Ġ IN", + "ĠI N", + "Ġ table", + "Ġt able", + "Ġtab le", + "Ġta ble", + "s ub", + "su b", + "Ġ Le", + "ĠL e", + "Ġ head", + "Ġh ead", + "Ġhe ad", + "Ġ must", + "Ġm ust", + "Ġmus t", + "Ġmu st", + "//// ////////////", + "//////// ////////", + "//////////// ////", + ". util", + ".u til", + ".ut il", + "Cont ext", + "Con text", + "Ġ order", + "Ġor der", + "Ġord er", + "Ġ mov", + "Ġm ov", + "Ġmo v", + "o ver", + "ov er", + "ove r", + "Ġ contin", + "Ġcon tin", + "Ġcont in", + "Ġ say", + "Ġs ay", + "Ġsa y", + "st atic", + "stat ic", + "sta tic", + ". Text", + ".T ext", + ".Te xt", + "Ġ className", + "Ġclass Name", + "p any", + "pan y", + "pa ny", + "Ġ ter", + "Ġt er", + "Ġte r", + "h ead", + "he ad", + "hea d", + "r g", + "Ġ product", + "Ġpro duct", + "Ġprodu ct", + "Ġprod uct", + "T his", + "Th is", + ". âĢĿ", + "Ġ But", + "ĠB ut", + "ĠBu t", + "7 0", + "l oy", + "lo y", + "Ġ double", + "Ġd ouble", + "Ġdo uble", + "Ġdoub le", + "Ġdou ble", + "s g", + "Ġ place", + "Ġp lace", + "Ġpl ace", + "Ġplac e", + "Ġpla ce", + ". x", + "m essage", + "mes sage", + "mess age", + "Ġ information", + "Ġin formation", + "Ġinform ation", + "Ġinformat ion", + "pr ivate", + "priv ate", + "Ġ oper", + "Ġo per", + "Ġop er", + "c ed", + "ce d", + "d b", + "\" > < /", + "P aram", + "Par am", + "Pa ram", + "Para m", + "i cle", + "ic le", + "icl e", + "Ġ week", + "Ġwe ek", + "Ġwee k", + "Ġ prop", + "Ġp rop", + "Ġpro p", + "Ġpr op", + "t able", + "ta ble", + "tab le", + "tabl e", + "id get", + "idge t", + "p lace", + "pl ace", + "pla ce", + "P rop", + "Pro p", + "Pr op", + "Ġ All", + "ĠA ll", + "ĠAl l", + "e ls", + "el s", + "b ox", + "bo x", + ". ĊĊĊĊ", + ".ĊĊ ĊĊ", + ".Ċ ĊĊĊ", + ".ĊĊĊ Ċ", + ". R", + "Ġ To", + "ĠT o", + "i ter", + "it er", + "ite r", + "S h", + "u ration", + "ur ation", + "ura tion", + "urat ion", + "o lder", + "ol der", + "old er", + "_ list", + "_l ist", + "_li st", + "c ome", + "com e", + "co me", + "Ġ sw", + "Ġs w", + "iz ation", + "iza tion", + "ĉ for", + "ĉf or", + "b l", + "Ġ program", + "Ġp rogram", + "Ġpro gram", + "Ġpr ogram", + "Ġprog ram", + "( e", + "a pe", + "ap e", + "c heck", + "ch eck", + "che ck", + ". Forms", + ".Form s", + ".For ms", + "Ġ und", + "Ġu nd", + "Ġun d", + "ateg ory", + "ategor y", + "atego ry", + "7 5", + "a gs", + "ag s", + "Ġ response", + "Ġres ponse", + "Ġrespons e", + "Ġresp onse", + "U S", + "re quest", + "req uest", + "requ est", + "Ġ struct", + "Ġstr uct", + "Ġstru ct", + "e scription", + "es cription", + "Ġ code", + "Ġc ode", + "Ġco de", + "Ġcod e", + "_ H", + "u ffer", + "uff er", + "uf fer", + "Ġ without", + "Ġwith out", + "lo bal", + "lob al", + "M anager", + "Man ager", + "Manage r", + "Mana ger", + "il ter", + "ilt er", + "P O", + "ĉ this", + "ĉt his", + "ĉth is", + "o ption", + "op tion", + "opt ion", + "Ġ sol", + "Ġs ol", + "Ġso l", + "Ġ ===", + "Ġ= ==", + "Ġ== =", + "a kes", + "ak es", + "ake s", + "Cont roller", + "Control ler", + "Contr oller", + "4 4", + "M essage", + "Mes sage", + "Mess age", + "Ġ ref", + "Ġre f", + "Ġr ef", + "e ver", + "ev er", + "eve r", + "Ġ So", + "ĠS o", + "a ining", + "ain ing", + "ai ning", + ". append", + ".app end", + ".ap pend", + "Ġ still", + "Ġst ill", + "Ġstil l", + "Ġpro vid", + "Ġpr ovid", + "Ġprov id", + "Ġ assert", + "Ġas sert", + "Ġass ert", + "m ed", + "me d", + "Ġ cap", + "Ġc ap", + "Ġca p", + "us iness", + "usi ness", + "Ġ rep", + "Ġre p", + "Ġr ep", + "t ings", + "ting s", + "tin gs", + "v ed", + "ve d", + ". N", + "a pi", + "ap i", + "O D", + "Ġ field", + "Ġf ield", + "Ġfi eld", + "Ġfie ld", + "i ven", + "iv en", + "ive n", + "o to", + "ot o", + "âĢ ľ", + "c ol", + "co l", + "( x", + "g ht", + "gh t", + "Res ult", + "C ode", + "Co de", + "Cod e", + ". is", + ".i s", + "l ink", + "li nk", + "lin k", + "Ġ cour", + "Ġc our", + "Ġco ur", + "Ġcou r", + "A n", + "Ġ team", + "Ġt eam", + "Ġte am", + "Ġtea m", + "ĉ int", + "ĉi nt", + "ĉin t", + "i ft", + "if t", + "5 5", + "Ġ second", + "Ġse cond", + "Ġsec ond", + "Ġ going", + "Ġgo ing", + "Ġ range", + "Ġr ange", + "Ġran ge", + "Ġra nge", + "Ġrang e", + "_ E", + "n ess", + "ne ss", + "nes s", + "3 9", + "Ġf am", + "Ġfa m", + "Ġ nil", + "Ġn il", + "Ġni l", + "Ġ Cont", + "ĠC ont", + "ĠCon t", + "ĠCo nt", + "ail able", + "u tes", + "ut es", + "ute s", + "a tab", + "at ab", + "ata b", + "Ġ fact", + "Ġf act", + "Ġfa ct", + "Ġfac t", + "Ġ vis", + "Ġv is", + "Ġvi s", + "( &", + "Ġ AN", + "ĠA N", + "3 1", + "A l", + "t itle", + "ti tle", + "tit le", + "Ġ android", + "Ġand roid", + "C E", + "\\ \"", + "i rt", + "ir t", + "Ġw rit", + "Ġwr it", + "Ð ½", + "ĉ m", + "ft ware", + "o nd", + "on d", + "Ġ ret", + "Ġre t", + "Ġr et", + "os ition", + "osi tion", + "osit ion", + "Ġ home", + "Ġh ome", + "Ġhom e", + "Ġho me", + "Ġ left", + "Ġl eft", + "Ġle ft", + "ar gs", + "arg s", + "m eric", + "mer ic", + "me ric", + "4 8", + "Ġ direct", + "Ġd irect", + "Ġdi rect", + "Ġdir ect", + "Ġdire ct", + "o ci", + "oc i", + "P l", + "A s", + "r et", + "re t", + "a do", + "ad o", + "O f", + "c hn", + "ch n", + "Ġ Get", + "ĠG et", + "ĠGe t", + "e e", + "r oss", + "ro ss", + "ros s", + "( );", + "() ;", + "_ ___", + "__ __", + "___ _", + ". ph", + ".p h", + "I t", + "o ute", + "ou te", + "out e", + "Ġex per", + "Ġexp er", + "ch ool", + "cho ol", + "w ww", + "ww w", + "} ,", + "Ġ allow", + "Ġal low", + "Ġall ow", + "Ġallo w", + "Ġ Â", + "( ))", + "() )", + "s ize", + "si ze", + "siz e", + "i sm", + "is m", + "a i", + "t ract", + "tr act", + "tra ct", + "a ne", + "an e", + ". ..ĊĊ", + ".. .ĊĊ", + "... ĊĊ", + "...Ċ Ċ", + "con text", + "cont ext", + "conte xt", + "Ġ beg", + "Ġb eg", + "Ġbe g", + "C H", + "Ġ page", + "Ġp age", + "Ġpa ge", + "Ġpag e", + "h ip", + "hi p", + "n o", + "c ore", + "co re", + "cor e", + "s p", + "Ġ different", + "Ġd ifferent", + "Ġdiffer ent", + "i able", + "ia ble", + "Ġ Me", + "ĠM e", + "_ IN", + "_I N", + "b utton", + "but ton", + "butt on", + "Ġ Is", + "ĠI s", + "erv ices", + "ervice s", + "Ġ ca", + "Ġc a", + "Ġ around", + "Ġa round", + "Ġar ound", + "Ġarou nd", + "A pp", + "Ap p", + "r ation", + "ra tion", + "rat ion", + "ratio n", + "Ġ rece", + "Ġre ce", + "Ġr ece", + "Ġrec e", + "Ġ really", + "Ġre ally", + "Ġreal ly", + "Ġ image", + "Ġi mage", + "Ġim age", + "Ġimag e", + "Ġima ge", + "Ġ target", + "Ġt arget", + "Ġtar get", + "Ġtarg et", + "Ġ dep", + "Ġd ep", + "Ġde p", + "opy right", + "t ra", + "tr a", + "i ngle", + "in gle", + "ing le", + "i tal", + "it al", + "ita l", + "L ayout", + "Ġ both", + "Ġb oth", + "Ġbo th", + "Ġbot h", + "Over ride", + "a rm", + "ar m", + "= >", + "at erial", + "ate rial", + "ater ial", + "ateria l", + "i led", + "il ed", + "ile d", + "Ġ put", + "Ġp ut", + "Ġpu t", + "Q u", + "Ñ Ģ", + "u ng", + "un g", + "m ap", + "ma p", + "ĉ ĉĉĉĉĉĉĉ", + "ĉĉ ĉĉĉĉĉĉ", + "ĉĉĉĉ ĉĉĉĉ", + "ĉĉĉ ĉĉĉĉĉ", + "ĉĉĉĉĉ ĉĉĉ", + "ĉĉĉĉĉĉ ĉĉ", + "ĉĉĉĉĉĉĉ ĉ", + "Ġ level", + "Ġle vel", + "Ġlev el", + "Ġleve l", + "Com ponent", + "Comp onent", + "b ook", + "bo ok", + "boo k", + "c reen", + "cre en", + "cr een", + "_ RE", + "_R E", + "Ġ config", + "Ġcon fig", + "Ġconf ig", + "ã ģ", + "O r", + ". data", + ".d ata", + ".dat a", + ".da ta", + "Ġ document", + "Ġd ocument", + "Ġdoc ument", + "\" ,\"", + "\", \"", + "trib ute", + "u x", + "L og", + "Lo g", + "f erence", + "fer ence", + "fe rence", + "p ost", + "pos t", + "po st", + "_ e", + "Ġ local", + "Ġl ocal", + "Ġlo cal", + "Ġloc al", + "an dom", + "and om", + "ando m", + "as sert", + "ass ert", + "asse rt", + "asser t", + "V al", + "Va l", + "l ected", + "lect ed", + "lec ted", + "i na", + "in a", + "at abase", + "ata base", + "atab ase", + "A dd", + "Ad d", + "Ġ content", + "Ġc ontent", + "Ġcon tent", + "Ġcont ent", + "Ġconten t", + "Ġconte nt", + ". print", + ".p rint", + ".pr int", + "s igned", + "sign ed", + "sig ned", + "r ic", + "ri c", + ". \"ĊĊ", + ".\" ĊĊ", + ".\"Ċ Ċ", + "Ġ fa", + "Ġf a", + "! ĊĊ", + "!Ċ Ċ", + "- f", + "i ved", + "iv ed", + "ive d", + "Ġ quest", + "Ġqu est", + "Ġque st", + "Ġq uest", + "Ġques t", + ". ex", + ".e x", + "Ġ float", + "Ġf loat", + "Ġflo at", + "Ġ develop", + "Ġde velop", + "Ġdev elop", + "Ġdeve lop", + "Ġdevel op", + "о Ð", + "M ap", + "Ma p", + "a ding", + "ad ing", + "adi ng", + "adin g", + "Ġ poss", + "Ġp oss", + "Ġpos s", + "Ġpo ss", + "U E", + "n amespace", + "name space", + "names pace", + "_ O", + "ĉ b", + ". Get", + ".G et", + ".Ge t", + "> (", + "j son", + "js on", + "e tails", + "et ails", + "etail s", + "eta ils", + "6 6", + "Ġ too", + "Ġt oo", + "Ġto o", + "Ġ extends", + "Ġext ends", + "Ġextend s", + "Ġ None", + "ĠN one", + "ĠNo ne", + "ĠNon e", + "Ġ fore", + "Ġf ore", + "Ġfor e", + "Ġfo re", + "( String", + "(S tring", + "(Str ing", + "form at", + "for mat", + "forma t", + "Ġ great", + "Ġg reat", + "Ġgr eat", + "Ġgre at", + "in ter", + "int er", + "inte r", + "c ale", + "ca le", + "cal e", + "Ñ ģ", + "r on", + "ro n", + "i ving", + "iv ing", + "ivi ng", + "E nt", + "En t", + "e ncy", + "en cy", + "enc y", + "x t", + "o y", + "0 5", + "Ġ month", + "Ġm onth", + "Ġmon th", + "Ġmo nth", + "Ġmont h", + "Ġh app", + "Ġha pp", + "Ġhap p", + "Ġ super", + "Ġs uper", + "Ġsu per", + "Ġsup er", + "b ar", + "ba r", + "d efault", + "de fault", + "def ault", + "_ de", + "_d e", + "or ds", + "ord s", + "l n", + "( {Ċ", + "({ Ċ", + "Ġ Ind", + "ĠI nd", + "ĠIn d", + "a ses", + "as es", + "ase s", + "Ġ title", + "Ġt itle", + "Ġtit le", + "Ġti tle", + "Ġ context", + "Ġcon text", + "Ġcont ext", + "Ġconte xt", + "0 8", + "o h", + "- p", + "E m", + "Ġ met", + "Ġm et", + "Ġme t", + "T est", + "Te st", + "Tes t", + "Ġ life", + "Ġl ife", + "Ġli fe", + "Ġlif e", + "_ v", + "Ġ US", + "ĠU S", + "U I", + "o cation", + "oc ation", + "oca tion", + "m d", + "Ġ [Ċ", + "Ġ[ Ċ", + "Ġ ]", + "s w", + "Ġ incre", + "Ġin cre", + "Ġinc re", + "Ġincr e", + "s cript", + "scri pt", + "scr ipt", + "ent ial", + "enti al", + "w ays", + "way s", + "wa ys", + ". de", + ".d e", + "Ġ src", + "Ġs rc", + "Ġsr c", + "Ġ catch", + "Ġc atch", + "Ġcat ch", + "Ġ Americ", + "ĠA meric", + "ĠAm eric", + "ĠAmer ic", + "/ /Ċ", + "// Ċ", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "Ġ pay", + "Ġp ay", + "Ġpa y", + "p lit", + "pl it", + "âĢ Ķ", + "Ġc oun", + "Ġco un", + "Ġcou n", + "o bj", + "ob j", + ". php", + ".p hp", + ".ph p", + "Ġ change", + "Ġch ange", + "Ġchang e", + "Ġcha nge", + "Ġchan ge", + "e thing", + "eth ing", + "' re", + "'r e", + "a ster", + "as ter", + "ast er", + "aste r", + "l os", + "lo s", + "l ation", + "la tion", + "lat ion", + "Ġ ĠĊ", + "ĠĠ Ċ", + "L e", + "à ¤", + "( {", + "re ady", + "read y", + "rea dy", + "Ġ No", + "ĠN o", + "Ġ position", + "Ġp osition", + "Ġpos ition", + "Ġposit ion", + "Ġposi tion", + "Ġ old", + "Ġo ld", + "Ġol d", + "Ġ book", + "Ġb ook", + "Ġbo ok", + "Ġboo k", + "a bled", + "ab led", + "able d", + "abl ed", + "b ug", + "bu g", + "2 02", + "20 2", + "H and", + "Ha nd", + "Han d", + "} ;ĊĊ", + "};Ċ Ċ", + "}; ĊĊ", + "is play", + "isp lay", + "a ving", + "av ing", + "avi ng", + "avin g", + "0 4", + "Ġg over", + "Ġgo ver", + "Ġgov er", + "Ġ version", + "Ġv ersion", + "Ġvers ion", + "S ystem", + "Sys tem", + "Sy stem", + "n ect", + "ne ct", + "res ponse", + "resp onse", + "respons e", + "St yle", + "U p", + "an gu", + "ang u", + "Ġ three", + "Ġth ree", + "Ġthr ee", + "i nit", + "in it", + "ini t", + "e ro", + "er o", + "Ġ law", + "Ġl aw", + "Ġla w", + "en dif", + "end if", + "endi f", + "Ġ base", + "Ġb ase", + "Ġbas e", + "Ġba se", + "e mail", + "em ail", + "ema il", + "( l", + "_ V", + "Ġ conf", + "Ġcon f", + "Ġco nf", + "A TE", + "AT E", + "Ġ during", + "Ġd uring", + "Ġdu ring", + "Ġdur ing", + "t es", + "te s", + "Ġ console", + "Ġcon sole", + "Ġcons ole", + "Ġ Pr", + "ĠP r", + "Ġ spe", + "Ġs pe", + "Ġsp e", + "v es", + "ve s", + "6 5", + "p ath", + "pat h", + "pa th", + "i alog", + "ial og", + "ia log", + "d ition", + "di tion", + "dit ion", + "_ to", + "_t o", + "ar ds", + "ard s", + "Ġ against", + "Ġagain st", + "et work", + "Ġ Ph", + "ĠP h", + "_ L", + "c ur", + "cu r", + "i mit", + "im it", + "imi t", + "W ith", + "Wi th", + "Ġ power", + "Ġp ower", + "Ġpo wer", + "Ġpow er", + "i um", + "iu m", + "' ;ĊĊ", + "';Ċ Ċ", + "'; ĊĊ", + "Ġw om", + "Ġwo m", + "l eft", + "le ft", + "lef t", + "our ces", + "ource s", + "a tri", + "at ri", + "atr i", + "Ġ Im", + "ĠI m", + "Ġ Man", + "ĠM an", + "ĠMa n", + "or th", + "ort h", + "$ {", + "8 8", + "qu als", + "qual s", + "qua ls", + "e se", + "es e", + "_ size", + "_s ize", + "_si ze", + "Ġ iss", + "Ġis s", + "Ġi ss", + "o tal", + "ot al", + "ota l", + "- g", + "i que", + "iqu e", + "iq ue", + "r ame", + "ra me", + "ram e", + "Ġ width", + "Ġw idth", + "Ġwid th", + "e rg", + "er g", + ") (", + "it tle", + "itt le", + "T R", + "Ġ They", + "ĠT hey", + "ĠThe y", + "ĠTh ey", + "e nces", + "en ces", + "ence s", + "enc es", + "0 2", + "r l", + "o ns", + "on s", + "Ġ label", + "Ġl abel", + "Ġla bel", + "Ġlab el", + ". y", + "- t", + "up date", + "upd ate", + "a nel", + "an el", + "ane l", + "s c", + ". to", + ".t o", + "Ġ project", + "Ġpro ject", + "Ġproj ect", + "Ġproje ct", + "à ¼", + "Ġ element", + "Ġe lement", + "Ġel ement", + "Ġele ment", + "Ġelem ent", + "Ġ success", + "Ġs uccess", + "Ġsu ccess", + "Ġsuc cess", + "Ġsucc ess", + "Ġsucces s", + "ĉ ĉĊ", + "ĉĉ Ċ", + ". sh", + ".s h", + "r am", + "ra m", + "c hed", + "ch ed", + "che d", + "( ))Ċ", + "() )Ċ", + "()) Ċ", + "Ġ (Ċ", + "Ġ( Ċ", + "Ġ date", + "Ġd ate", + "Ġda te", + "Ġdat e", + "Ġ tot", + "Ġt ot", + "Ġto t", + "_ ST", + "_S T", + "A ll", + "Al l", + "if ication", + "ific ation", + "ifi cation", + "ifica tion", + "ĉ var", + "ĉv ar", + "ĉva r", + "Ġ tri", + "Ġt ri", + "Ġtr i", + "c hem", + "ch em", + "che m", + "m y", + "Ġ big", + "Ġb ig", + "Ġbi g", + "Ġ Ad", + "ĠA d", + "Ġ At", + "ĠA t", + "o ts", + "ot s", + "n um", + "nu m", + "A ct", + "Ac t", + "Ġ map", + "Ġm ap", + "Ġma p", + "e ra", + "er a", + "c ope", + "co pe", + "cop e", + ". $", + ", âĢĿ", + "Ġ pop", + "Ġp op", + "Ġpo p", + "Ġ few", + "Ġf ew", + "Ġfe w", + "Ġ len", + "Ġl en", + "Ġle n", + "u id", + "ui d", + "e ters", + "et ers", + "eter s", + "ete rs", + "u les", + "ul es", + "ule s", + "à Ń", + "s ource", + "ht tps", + "http s", + "htt ps", + "Ġ dem", + "Ġd em", + "Ġde m", + "Ġ ear", + "Ġe ar", + "Ġea r", + "#### ############", + "######## ########", + "############ ####", + "Ġ match", + "Ġm atch", + "Ġmat ch", + "o ries", + "or ies", + "ori es", + "orie s", + "4 9", + "a ces", + "ace s", + "ac es", + "Ġ Cl", + "ĠC l", + "Ġ node", + "Ġn ode", + "Ġno de", + "Ġnod e", + "7 8", + "i rc", + "ir c", + "l ocal", + "lo cal", + "loc al", + "un ity", + "unit y", + "uni ty", + "} ;Ċ", + "}; Ċ", + "Ġ another", + "Ġan other", + "Ġano ther", + "< <", + "o gle", + "og le", + "ogl e", + "Ġ sit", + "Ġs it", + "Ġsi t", + "e work", + "ew ork", + "T E", + ". I", + "N S", + "o logy", + "ol ogy", + "olog y", + "olo gy", + "o ught", + "ou ght", + "ough t", + "oug ht", + ". Cont", + ".C ont", + ".Con t", + ".Co nt", + "> >", + "Ġ care", + "Ġc are", + "Ġcar e", + "Ġca re", + "st ate", + "stat e", + "sta te", + "ĉ private", + "ĉpr ivate", + "ĉpriv ate", + "Ġ effect", + "Ġe ffect", + "Ġeff ect", + "Ġef fect", + "+ +)", + "++ )", + "_ file", + "_f ile", + "_fil e", + "en ding", + "end ing", + "endi ng", + "L ine", + "Li ne", + "Lin e", + "F or", + "Fo r", + "i or", + "io r", + "Ġ Sc", + "ĠS c", + "Ġ fun", + "Ġf un", + "Ġfu n", + ". Size", + ".S ize", + "ĉ else", + "ĉe lse", + "ĉel se", + "] )", + "st art", + "star t", + "sta rt", + "v ious", + "vi ous", + "vio us", + "Ġ },", + "Ġ} ,", + "o urs", + "ou rs", + "our s", + "Ġ leg", + "Ġl eg", + "Ġle g", + "Ġ service", + "Ġs ervice", + "Ġser vice", + "Ġserv ice", + "Ġservi ce", + "Ġservic e", + "Ġ since", + "Ġs ince", + "Ġsi nce", + "Ġsin ce", + "Ġsinc e", + "i ron", + "ir on", + "iro n", + "L abel", + "La bel", + "Lab el", + "Ġ non", + "Ġn on", + "Ġno n", + "Ġ los", + "Ġl os", + "Ġlo s", + "i ction", + "ic tion", + "ict ion", + "Ġ full", + "Ġf ull", + "Ġful l", + "Ġfu ll", + "a cter", + "act er", + "ac ter", + "b oard", + "bo ard", + "boa rd", + "g ress", + "gr ess", + "gre ss", + "gres s", + "Ġ turn", + "Ġt urn", + "Ġtu rn", + "Ġtur n", + "i ther", + "it her", + "ith er", + "ithe r", + "0 9", + ". size", + ".s ize", + ".si ze", + "Ġ body", + "Ġb ody", + "Ġbo dy", + "Ġbod y", + "r esh", + "re sh", + "res h", + "e turn", + "et urn", + "etur n", + "etu rn", + "1 99", + "19 9", + "( _", + "y les", + "yle s", + "yl es", + "or mal", + "orm al", + "p i", + "Ġ something", + "Ġs omething", + "Ġsome thing", + "Ġsom ething", + "! --", + "u int", + "ui nt", + "uin t", + "Ġ produ", + "Ġp rodu", + "Ġpro du", + "Ġpr odu", + "Ġprod u", + "Ġ stand", + "Ġst and", + "Ġsta nd", + "Ġstan d", + "Ġpro ble", + "Ġpr oble", + "Ġprob le", + "Ġprobl e", + "Ġ available", + "Ġa vailable", + "Ġav ailable", + "Ġavail able", + "m t", + "Ġ Bl", + "ĠB l", + "Ġ ...", + "Ġ. ..", + "Ġ.. .", + "Ġ block", + "Ġb lock", + "Ġbl ock", + "Ġblo ck", + "Ġbloc k", + "In put", + "Ġ keep", + "Ġke ep", + "C ount", + "Co unt", + "Cou nt", + "o pen", + "op en", + "ope n", + "Ġ ['", + "Ġ[ '", + "Ġ throw", + "Ġth row", + "Ġthr ow", + "Ġthro w", + "u ilder", + "uild er", + "ui lder", + "uil der", + "A ction", + "Act ion", + "Ac tion", + "Ġ things", + "Ġth ings", + "Ġthing s", + "Ġthin gs", + "Tr ue", + "Ġ url", + "Ġu rl", + "Ġur l", + "Ġ Bo", + "ĠB o", + "print f", + "Ġ red", + "Ġre d", + "Ġr ed", + "j s", + ". create", + ".c reate", + "Ġ Or", + "ĠO r", + "S tatus", + "St atus", + "Stat us", + "In stance", + "Inst ance", + "Ġ control", + "Ġc ontrol", + "Ġcont rol", + "Ġcontr ol", + "Ġcontro l", + "Ġ come", + "Ġc ome", + "Ġcom e", + "Ġco me", + "Ġ custom", + "Ġc ustom", + "Ġcust om", + "Ġcus tom", + "l ocation", + "lo cation", + "loc ation", + "0 7", + "m odel", + "mod el", + "mo del", + "mode l", + "Ġ čĊ", + "Ġč Ċ", + "Ġ source", + "Ġs ource", + "Ġsour ce", + "Ġe as", + "Ġea s", + ". out", + ".o ut", + "] ĊĊ", + "]Ċ Ċ", + "o ney", + "on ey", + "one y", + "Ġ await", + "Ġa wait", + "Ġaw ait", + "Ġp artic", + "Ġpart ic", + "Ġpar tic", + "Ġparti c", + "A P", + "ub lish", + "ubl ish", + "o des", + "od es", + "ode s", + "_ pro", + "_p ro", + "_pr o", + "p ly", + "pl y", + "r iter", + "ri ter", + "rit er", + "rite r", + "Ġ prov", + "Ġp rov", + "Ġpro v", + "Ġpr ov", + "Ġ mill", + "Ġm ill", + "Ġmil l", + "Ġmi ll", + "H T", + "] )Ċ", + "]) Ċ", + "Ġ chang", + "Ġc hang", + "Ġch ang", + "Ġcha ng", + "Ġchan g", + "Ġ ask", + "Ġa sk", + "Ġas k", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "Ġ output", + "Ġout put", + "Ġ email", + "Ġe mail", + "Ġem ail", + "6 8", + ". push", + ".p ush", + "Ġ }čĊčĊ", + "Ġ} čĊčĊ", + "Ġ}čĊ čĊ", + "i nation", + "in ation", + "ina tion", + "inati on", + "4 7", + "at rix", + "atri x", + "atr ix", + "T able", + "Tab le", + "Ta ble", + "u ccess", + "uc cess", + "ucc ess", + "] );Ċ", + "]) ;Ċ", + "]); Ċ", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "Ġ disc", + "Ġd isc", + "Ġdis c", + "Ġdi sc", + "( [", + "Ġ business", + "Ġb usiness", + "Ġbus iness", + "h eight", + "he ight", + "hei ght", + ". html", + ".h tml", + ".ht ml", + ".htm l", + "t a", + "f ield", + "fi eld", + "Ġ required", + "Ġre quired", + "Ġrequire d", + "Ġrequ ired", + "_ R", + "Ġg overn", + "Ġgo vern", + "Ġgover n", + "Ġgov ern", + "} čĊčĊ", + "}čĊ čĊ", + "l ex", + "le x", + "5 00", + "50 0", + ". ,", + "Ġ Set", + "ĠS et", + "ĠSe t", + "u rch", + "ur ch", + "/ //", + "// /", + "t s", + "a f", + "Ġ might", + "Ġm ight", + "Ġmi ght", + "Ġmig ht", + "i story", + "ist ory", + "istor y", + "isto ry", + "S tr", + "St r", + "Ġ never", + "Ġn ever", + "Ġne ver", + "Ġnev er", + "Res ponse", + "Resp onse", + "Respons e", + "ar se", + "ars e", + "a da", + "ad a", + "Ġ How", + "ĠH ow", + "ĠHo w", + "Ġ *)", + "Ġ* )", + "Ġ ;", + "Ġ hard", + "Ġh ard", + "Ġhar d", + "Ġha rd", + "A d", + "Ġ intern", + "Ġin tern", + "Ġint ern", + "Ġinter n", + "Ġinte rn", + "u sed", + "us ed", + "use d", + "( data", + "(d ata", + "(dat a", + "(da ta", + "m od", + "mo d", + "an nel", + "ann el", + "anne l", + "Ġ np", + "Ġn p", + "u gg", + "ug g", + "Ġ />Ċ", + "Ġ/ >Ċ", + "Ġ/> Ċ", + "Ġ called", + "Ġc alled", + "Ġcall ed", + "Ġcal led", + "Ġcalle d", + "b ody", + "bo dy", + "Ġ cho", + "Ġc ho", + "Ġch o", + "( r", + "_ set", + "_s et", + "_se t", + "i rd", + "ir d", + "Ġ >=", + "Ġ> =", + "Ġ };Ċ", + "Ġ} ;Ċ", + "Ġ}; Ċ", + "Ġ options", + "Ġo ptions", + "Ġoption s", + "Ġopt ions", + "Ġ Gener", + "ĠG ener", + "ĠGe ner", + "ĠGen er", + "ĠGene r", + "Ġ height", + "Ġh eight", + "Ġhe ight", + "Ġhei ght", + "P oint", + "Po int", + "Y ou", + "Yo u", + "e ty", + "et y", + "C lick", + "Cl ick", + "Cli ck", + "Ġ small", + "Ġs mall", + "Ġsm all", + "Ġ ide", + "Ġi de", + "Ġid e", + "Ġ access", + "Ġa ccess", + "Ġacc ess", + "Ġac cess", + "Ġacces s", + "angu age", + "Ġ protected", + "Ġprot ected", + "Ġprotect ed", + "Ġ job", + "Ġj ob", + "Ġjo b", + "Ġ There", + "ĠT here", + "ĠThe re", + "ĠTh ere", + "ĠTher e", + "D ef", + "De f", + "Ġ address", + "Ġadd ress", + "Ġad dress", + "Ġaddr ess", + "Ġ uint", + "Ġu int", + "Ġui nt", + "N ot", + "No t", + "o o", + "a ps", + "ap s", + "< div", + "", + "() ->", + "()- >", + "ĉ ĠĠĠ", + "ĉĠ ĠĠ", + "ĉĠĠ Ġ", + "\" ))", + "\") )", + "C ontent", + "Cont ent", + "Con tent", + "_ W", + "p lement", + "pl ement", + "ple ment", + "Ġ won", + "Ġw on", + "Ġwo n", + "Ġ video", + "Ġv ideo", + "Ġvi deo", + "Ġvid eo", + "Ġvide o", + "a di", + "ad i", + "p oint", + "po int", + "poi nt", + "% %", + "0 3", + "Ġ gl", + "Ġg l", + "er ved", + "erv ed", + "erve d", + "v iron", + "vi ron", + "vir on", + "I F", + "u ted", + "ut ed", + "ute d", + "ã ĥ", + "' m", + "Ġ cert", + "Ġc ert", + "Ġce rt", + "Ġcer t", + "Ġ prof", + "Ġp rof", + "Ġpro f", + "Ġpr of", + "Ġ cell", + "Ġc ell", + "Ġce ll", + "Ġcel l", + "a ri", + "ar i", + "Ġ player", + "Ġp layer", + "Ġpl ayer", + "Ġplay er", + "Ġpla yer", + "a is", + "ai s", + "Ġ cost", + "Ġc ost", + "Ġco st", + "Ġcos t", + "Ġ hum", + "Ġh um", + "Ġhu m", + "( R", + "Ġo ffic", + "Ġof fic", + "Ġoff ic", + "k s", + ". text", + ".t ext", + ".te xt", + ".tex t", + "a tures", + "at ures", + "ature s", + "atur es", + "atu res", + "Ġ total", + "Ġt otal", + "Ġto tal", + "Ġtot al", + "Ġ */ĊĊ", + "Ġ* /ĊĊ", + "Ġ*/ ĊĊ", + "Ġ*/Ċ Ċ", + "o pe", + "op e", + "Ġ stat", + "Ġs tat", + "Ġst at", + "Ġsta t", + "U M", + "Ġ load", + "Ġl oad", + "Ġlo ad", + "Ġloa d", + "ight s", + "igh ts", + "Ġ clear", + "Ġc lear", + "Ġcl ear", + "Ġcle ar", + "u ro", + "ur o", + "Ġ techn", + "Ġt echn", + "Ġte chn", + "Ġtech n", + "Ġtec hn", + "up port", + "upp ort", + "I R", + "Ġ row", + "Ġr ow", + "Ġro w", + "Ġse em", + "Ġsee m", + "Ġ q", + "Ġ short", + "Ġs hort", + "Ġsh ort", + "Ġsho rt", + "Ġ Not", + "ĠN ot", + "ĠNo t", + "i pp", + "ip p", + "G roup", + "Gr oup", + "Gro up", + "s ection", + "se ction", + "sec tion", + "sect ion", + "m ax", + "ma x", + "i rl", + "ir l", + "Ġ override", + "Ġover ride", + "Ġ company", + "Ġcom pany", + "Ġcomp any", + "Ġcompan y", + "Ġ done", + "Ġd one", + "Ġdo ne", + "Ġdon e", + "\" );čĊ", + "\") ;čĊ", + "\"); čĊ", + "Ġ gre", + "Ġg re", + "Ġgr e", + ". Re", + ".R e", + "Ġ belie", + "Ġbe lie", + "Ġbel ie", + "r ist", + "ri st", + "ris t", + "Ġ health", + "Ġhe alth", + "Ġheal th", + "A NT", + "AN T", + "( )ĊĊ", + "() ĊĊ", + "()Ċ Ċ", + "Ġ Be", + "ĠB e", + ". value", + ".v alue", + ".val ue", + ".va lue", + "Ġ Gr", + "ĠG r", + "ot tom", + "ott om", + "otto m", + "Ġ args", + "Ġar gs", + "Ġarg s", + "P T", + "s tatus", + "st atus", + "stat us", + "f unc", + "fun c", + "fu nc", + "u ments", + "um ents", + "ument s", + "ume nts", + "umen ts", + "- h", + "N umber", + "Num ber", + ": čĊ", + "Ġ Log", + "ĠL og", + "ĠLo g", + "er ver", + "erv er", + "erve r", + "Ġ ),Ċ", + "Ġ) ,Ċ", + "Ġ), Ċ", + "a ment", + "am ent", + "ame nt", + "amen t", + "Ġ obj", + "Ġo bj", + "Ġob j", + "i nc", + "in c", + "Ġ children", + "Ġch ildren", + "Ġchild ren", + "i cy", + "ic y", + "I Z", + "a nds", + "an ds", + "and s", + "ab ly", + "abl y", + "Ġd istrib", + "Ġdis trib", + "Ġdist rib", + "Ġdistr ib", + "Ġ cur", + "Ġc ur", + "Ġcu r", + "e rial", + "er ial", + "eri al", + "eria l", + "Ġ days", + "Ġd ays", + "Ġday s", + "Ġda ys", + "r eated", + "re ated", + "reate d", + "reat ed", + "rea ted", + "r ect", + "re ct", + "rec t", + "- l", + "i rm", + "ir m", + "i dden", + "id den", + "idd en", + "o mb", + "om b", + "Ġ initial", + "Ġin itial", + "Ġinit ial", + "Ġiniti al", + ". js", + ".j s", + "Ġ â", + "Qu ery", + "Que ry", + "Ġ online", + "Ġon line", + "i mal", + "im al", + "ima l", + ". con", + ".c on", + ".co n", + "a u", + "U rl", + "Ur l", + "c ontrol", + "cont rol", + "contr ol", + "contro l", + "i rection", + "ir ection", + "ire ction", + "irect ion", + "Ġ instance", + "Ġin stance", + "Ġinst ance", + "O RT", + "OR T", + "Ġ Fr", + "ĠF r", + "w here", + "wh ere", + "Ġ javax", + "Ġj avax", + "Ġjav ax", + "Ġjava x", + "Ġ organ", + "Ġo rgan", + "Ġor gan", + "Ġorg an", + "a pter", + "ap ter", + "apt er", + "Ġ reason", + "Ġre ason", + "o ptions", + "option s", + "opt ions", + "5 9", + "Ġ Mar", + "ĠM ar", + "ĠMa r", + "( a", + "Ġ within", + "Ġwith in", + "Ġwi thin", + "Ġwit hin", + ". âĢĿĊĊ", + ".âĢĿ ĊĊ", + ".âĢĿĊ Ċ", + "O DE", + "OD E", + "_ DE", + "_D E", + "ad min", + "adm in", + "en ded", + "end ed", + "ende d", + "Ġ design", + "Ġd esign", + "Ġde sign", + "Ġdes ign", + "Ġdesi gn", + "Ġ Data", + "ĠD ata", + "ĠDa ta", + "ĠDat a", + "u ne", + "un e", + "Ġ File", + "ĠF ile", + "ĠFil e", + "ĠFi le", + "r oot", + "ro ot", + "Ġ cent", + "Ġc ent", + "Ġce nt", + "Ġcen t", + "Ġ arr", + "Ġa rr", + "Ġar r", + "_ add", + "_a dd", + "_ad d", + "l en", + "le n", + "p age", + "pa ge", + "pag e", + ", '", + "_ str", + "_s tr", + "_st r", + "Ġ bro", + "Ġb ro", + "Ġbr o", + "ab ility", + "abil ity", + "abilit y", + "o uth", + "ou th", + "out h", + "5 8", + "/ c", + "p ose", + "pos e", + "po se", + "ir tual", + "irt ual", + "e arch", + "ear ch", + "ea rch", + "_ url", + "_u rl", + "_ur l", + "ar gin", + "arg in", + "H ttp", + "Ġ school", + "Ġs chool", + "Ġsch ool", + "Ġscho ol", + "a va", + "av a", + "Ġ consider", + "Ġcons ider", + "Ġconsid er", + ". label", + ".l abel", + ".lab el", + "Ġ Array", + "ĠA rray", + "ĠAr ray", + "ĠArr ay", + "4 2", + "w eb", + "we b", + "o pt", + "op t", + ". println", + ".print ln", + "u lation", + "ul ation", + "ula tion", + "Ġ func", + "Ġf unc", + "Ġfun c", + "Ġfu nc", + "P L", + "Ġ \"\\", + "Ġ\" \\", + "Ġ Text", + "ĠT ext", + "ĠTe xt", + "ĠTex t", + "act ory", + "actor y", + "( function", + "(f unction", + "(func tion", + "(fun ction", + "n ull", + "nu ll", + "nul l", + "Ġ eng", + "Ġe ng", + "Ġen g", + "d own", + "do wn", + "Ġ include", + "Ġin clude", + "Ġinclud e", + "Ġinc lude", + "Ġincl ude", + "Ġinclu de", + "Ġ En", + "ĠE n", + "Ġ Dr", + "ĠD r", + "Ġ db", + "Ġd b", + "! !", + "s ide", + "si de", + "sid e", + "Ġ init", + "Ġin it", + "Ġi nit", + "Ġini t", + "qu ired", + "quire d", + "quir ed", + "qui red", + "Ġ She", + "ĠS he", + "ĠSh e", + "C olumn", + "Col umn", + "re act", + "rea ct", + "Ġ ann", + "Ġa nn", + "Ġan n", + "Ġ stop", + "Ġs top", + "Ġst op", + "Ġsto p", + "Ġ later", + "Ġl ater", + "Ġla ter", + "Ġlate r", + "Ġlat er", + "Ġ That", + "ĠT hat", + "ĠTh at", + "en tion", + "ent ion", + "enti on", + "d f", + "U G", + "I LE", + "IL E", + "Ġ client", + "Ġc lient", + "Ġcl ient", + "Ġcli ent", + "r aft", + "ra ft", + "raf t", + "f fer", + "ff er", + "ffe r", + "P OST", + "PO ST", + "POS T", + "el per", + "elp er", + "Ġ love", + "Ġl ove", + "Ġlo ve", + "Ġlov e", + "qu ote", + "quot e", + "quo te", + "o ud", + "ou d", + "Ġ json", + "Ġj son", + "Ġjs on", + "Ġ able", + "Ġa ble", + "Ġab le", + "Ġabl e", + "Ġ men", + "Ġm en", + "Ġme n", + "A X", + "Ġ Copyright", + "ĠC opyright", + "ĠCopy right", + "à ¶", + "a vig", + "av ig", + "avi g", + "r eq", + "re q", + "C lient", + "Cl ient", + "Cli ent", + "} );Ċ", + "}) ;Ċ", + "}); Ċ", + ". Com", + ".C om", + ".Co m", + "e rc", + "er c", + "i lt", + "il t", + "p ecial", + "pe cial", + "pec ial", + "pecia l", + "_ com", + "_c om", + "_co m", + "r oom", + "ro om", + ". Name", + ".N ame", + "Ġ give", + "Ġg ive", + "Ġgi ve", + "a mb", + "am b", + "i ke", + "ik e", + "Ġ condition", + "Ġcon dition", + "Ġcond ition", + "Ġcondi tion", + "c lient", + "cl ient", + "cli ent", + "a tors", + "at ors", + "ator s", + "ato rs", + ": \"", + "Ġ copy", + "Ġc opy", + "Ġco py", + "Ġcop y", + "u ture", + "ut ure", + "ivers ity", + "iversit y", + "er nal", + "ern al", + "erna l", + "{ {", + "Ġ Can", + "ĠC an", + "ĠCa n", + "o unc", + "ou nc", + "oun c", + "d o", + "Ġ occ", + "Ġo cc", + "Ġoc c", + "Ġ appro", + "Ġapp ro", + "Ġap pro", + "th ers", + "ther s", + "the rs", + "z e", + "Ġ either", + "Ġe ither", + "Ġei ther", + "Ġ Fl", + "ĠF l", + "Ġ important", + "Ġimport ant", + "Ġ lead", + "Ġl ead", + "Ġle ad", + "at tr", + "att r", + "A RT", + "AR T", + "E qual", + "Equ al", + "Eq ual", + "Ġ da", + "Ġd a", + "et ch", + "etc h", + "e ntity", + "ent ity", + "enti ty", + "Ġ family", + "Ġf amily", + "Ġfam ily", + "Ġfamil y", + "ad ding", + "add ing", + "addin g", + "Ġ option", + "Ġo ption", + "Ġop tion", + "Ġopt ion", + "Ġ exist", + "Ġex ist", + "i ca", + "ic a", + "Ġ Object", + "ĠO bject", + "ĠOb ject", + "ĠObj ect", + "6 9", + "' ve", + "v ers", + "ver s", + "ve rs", + "it ional", + "ition al", + "iti onal", + "6 7", + "out put", + "Ġ True", + "ĠTr ue", + "ĠTru e", + "Ġ OF", + "ĠO F", + "_ time", + "_t ime", + "_tim e", + "_ti me", + "Ġ offer", + "Ġo ffer", + "Ġof fer", + "Ġoff er", + "Ġ });ĊĊ", + "Ġ} );ĊĊ", + "Ġ});Ċ Ċ", + "Ġ}) ;ĊĊ", + "Ġ}); ĊĊ", + "H ER", + "HE R", + "e gin", + "eg in", + "\" \"", + "Ġ water", + "Ġw ater", + "Ġwa ter", + "Ġwat er", + "Ġ che", + "Ġc he", + "Ġch e", + "Ġ My", + "ĠM y", + "o red", + "or ed", + "ore d", + "Ġ step", + "Ġs tep", + "Ġst ep", + "Ġste p", + "a nces", + "an ces", + "ance s", + "anc es", + "C K", + "A Y", + "à ¸", + "str uction", + "struct ion", + "stru ction", + "( C", + "3 00", + "30 0", + "o uch", + "ou ch", + "St ream", + "Str eam", + "act ive", + "activ e", + "a ma", + "am a", + "E ntity", + "Ent ity", + "pro duct", + "produ ct", + "prod uct", + "( ){Ċ", + "() {Ċ", + "(){ Ċ", + "Ġ government", + "Ġg overnment", + "Ġgovern ment", + "Ġ ID", + "ĠI D", + "aj or", + "ajo r", + "A nd", + "An d", + "Ġ display", + "Ġd isplay", + "Ġdis play", + "Ġdisp lay", + "Ġdispl ay", + "Ð »", + "Ġ times", + "Ġt imes", + "Ġtime s", + "Ġtim es", + "Ġti mes", + "Ġ four", + "Ġf our", + "Ġfo ur", + "Ġfou r", + "Ġ far", + "Ġf ar", + "Ġfa r", + "Ġ present", + "Ġp resent", + "Ġpre sent", + "Ġpres ent", + "Ġ NS", + "ĠN S", + "Ġ \\Ċ", + "Ġ\\ Ċ", + "u est", + "ue st", + "ues t", + "Ġ bas", + "Ġb as", + "Ġba s", + "e cho", + "ec ho", + "ech o", + "ch ild", + "chi ld", + "if ier", + "ifi er", + "ifie r", + "H andler", + "Hand ler", + "Handle r", + "Ġ lib", + "Ġl ib", + "Ġli b", + "P roperty", + "Pro perty", + "Prop erty", + "trans lation", + "Ġ room", + "Ġr oom", + "Ġro om", + "Ġ once", + "Ġo nce", + "Ġon ce", + "Ġonc e", + "Ġ []", + "Ġ[ ]", + "c enter", + "cent er", + "cen ter", + "cente r", + "================ ================", + "Ġ results", + "Ġres ults", + "Ġresult s", + "Ġ continue", + "Ġcont inue", + "Ġcontin ue", + "Ġcontinu e", + "Ġ talk", + "Ġt alk", + "Ġtal k", + "Ġta lk", + "_ get", + "_g et", + "_ge t", + "Ġ grow", + "Ġg row", + "Ġgr ow", + "Ġgro w", + ". sw", + ".s w", + "e b", + "Ġ Public", + "ĠP ublic", + "ĠPub lic", + "O P", + "ec ute", + "ecut e", + "o ls", + "ol s", + "Ġ **", + "Ġ* *", + "\" );ĊĊ", + "\");Ċ Ċ", + "\") ;ĊĊ", + "\"); ĊĊ", + "Ġ mass", + "Ġm ass", + "Ġma ss", + "Ġmas s", + "u red", + "ur ed", + "ure d", + ". class", + ".c lass", + ".cl ass", + "o mic", + "om ic", + "omi c", + "Ġ mean", + "Ġm ean", + "Ġme an", + "i ps", + "ip s", + "Ġ aut", + "Ġa ut", + "Ġau t", + ") ;čĊčĊ", + ");čĊ čĊ", + "); čĊčĊ", + "Ġ until", + "Ġun til", + "Ġunt il", + "Ġ market", + "Ġm arket", + "Ġmark et", + "Ġmar ket", + "Ġ area", + "Ġa rea", + "Ġare a", + "Ġar ea", + "u it", + "ui t", + "Ġ length", + "Ġl ength", + "Ġle ngth", + "Ġlen gth", + "Ġleng th", + "Ġ With", + "ĠW ith", + "ĠWi th", + "ĠWit h", + "str uctor", + "struct or", + "stru ctor", + "e vent", + "ev ent", + "even t", + "eve nt", + "\" ><", + "\"> <", + "Ġ Sp", + "ĠS p", + "I V", + "Ġ mus", + "Ġm us", + "Ġmu s", + "i ff", + "if f", + "Ġ kind", + "Ġk ind", + "Ġki nd", + "Ġkin d", + "a uthor", + "aut hor", + "auth or", + "o unds", + "ou nds", + "ound s", + "oun ds", + "m b", + "_ key", + "_k ey", + "_ke y", + "4 1", + "w idth", + "wid th", + "pos itory", + "posit ory", + "positor y", + "Ġ light", + "Ġl ight", + "Ġli ght", + "Ġlig ht", + "u k", + "R ow", + "Ro w", + "o hn", + "oh n", + "a lf", + "al f", + "viron ment", + "a pper", + "ap per", + "app er", + "appe r", + "ol lections", + "oll ections", + "ollection s", + "ollect ions", + "olle ctions", + "Ġ side", + "Ġs ide", + "Ġsi de", + "Ġsid e", + "_ info", + "_in fo", + "_inf o", + "Ġ example", + "Ġex ample", + "Ġexam ple", + "i mary", + "im ary", + "ima ry", + "imar y", + "Ġ wr", + "Ġw r", + "Ġ camp", + "Ġc amp", + "Ġca mp", + "Ġcam p", + "cri be", + "cr ibe", + "2 55", + "25 5", + "\" /", + "Ġ miss", + "Ġm iss", + "Ġmis s", + "Ġmi ss", + "w ay", + "wa y", + "Ġ based", + "Ġb ased", + "Ġbase d", + "Ġbas ed", + "Ġba sed", + "Ġ plan", + "Ġp lan", + "Ġpl an", + "Ġpla n", + "V is", + "Vi s", + "o main", + "om ain", + "oma in", + "u nk", + "un k", + "Ġ away", + "Ġa way", + "Ġaw ay", + "U P", + "< T", + "O S", + "i od", + "io d", + "Ġ Mon", + "ĠM on", + "ĠMo n", + "âĢĻ re", + "Ġ lik", + "Ġl ik", + "Ġli k", + "à §", + "i vely", + "iv ely", + "ive ly", + "ivel y", + ". v", + "i mer", + "im er", + "ime r", + "i zer", + "iz er", + "ize r", + "S ub", + "Su b", + "Ġ button", + "Ġb utton", + "Ġbut ton", + "Ġbutt on", + "Ġbutto n", + "Ġ Up", + "ĠU p", + "Ġ experience", + "Ġex perience", + "Ġexper ience", + "Ġexperi ence", + "C L", + "Ġ render", + "Ġre nder", + "Ġr ender", + "Ġren der", + "Ġrend er", + "_ value", + "_v alue", + "_val ue", + "_va lue", + "Ġ near", + "Ġn ear", + "Ġne ar", + "U RL", + "UR L", + "a lt", + "al t", + "Ġ country", + "Ġc ountry", + "Ġcount ry", + "Ġcoun try", + "ib ility", + "ibil ity", + "ibilit y", + "ibili ty", + "5 7", + "( ),Ċ", + "() ,Ċ", + "(), Ċ", + "e ad", + "ea d", + "Ġ author", + "Ġa uthor", + "Ġaut hor", + "Ġauth or", + "Ġ specific", + "Ġs pecific", + "Ġspec ific", + "Ġspeci fic", + "b ase", + "ba se", + "bas e", + "( name", + "(n ame", + "o nes", + "on es", + "one s", + "Ġ Do", + "ĠD o", + "Ġ along", + "Ġa long", + "Ġal ong", + "Ġalo ng", + "y ear", + "ye ar", + "Ġ express", + "Ġex press", + "Ġexp ress", + "Ġexpr ess", + "Ġexpres s", + ". '", + "e nv", + "en v", + "Ġ begin", + "Ġb egin", + "Ġbe gin", + "Ġbeg in", + "Ġ software", + "Ġs oftware", + "Ġso ftware", + "Ġsoft ware", + "Ġ imp", + "Ġi mp", + "Ġim p", + "Ġ win", + "Ġw in", + "Ġwi n", + "ó n", + "Ġ thing", + "Ġth ing", + "Ġthin g", + "Ġthi ng", + "T rans", + "Tr ans", + "Tra ns", + "Ġ THE", + "ĠT HE", + "ĠTH E", + "Ġ ", + "Ġ? >", + "Ġ den", + "Ġd en", + "Ġde n", + "ob ile", + "obi le", + "obil e", + "ch ange", + "chan ge", + "cha nge", + "chang e", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĊ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĊ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĊ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ Ċ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĊ", + "i ci", + "ic i", + "n a", + "Ġ Form", + "ĠF orm", + "ĠFor m", + "ĠFo rm", + "Ġ sort", + "Ġs ort", + "Ġso rt", + "Ġsor t", + "S elect", + "Se lect", + "Sel ect", + "Sele ct", + "p are", + "par e", + "pa re", + "Ġ thought", + "Ġth ought", + "Ġthough t", + "Ġthou ght", + "Ġtho ught", + "_ con", + "_c on", + "_co n", + "Ġ task", + "Ġt ask", + "Ġta sk", + "Ġtas k", + "o cus", + "oc us", + "ocu s", + "Ġ DE", + "ĠD E", + "Ġ Min", + "ĠM in", + "ĠMi n", + "Ġ opt", + "Ġo pt", + "Ġop t", + "ĉ break", + "ĉb reak", + "u mer", + "um er", + "ume r", + "K E", + "t hen", + "th en", + "the n", + "Ġ det", + "Ġd et", + "Ġde t", + "Ġ Test", + "ĠT est", + "ĠTe st", + "ĠTes t", + "p orts", + "port s", + "por ts", + "po rts", + "Ġ review", + "Ġre view", + "Ġr eview", + "Ġrev iew", + "( '/", + "(' /", + "m ove", + "mo ve", + "mov e", + "Ġ switch", + "Ġs witch", + "Ġsw itch", + "E RT", + "ER T", + "p atch", + "pat ch", + "an not", + "ann ot", + "anno t", + "ã Ĥ", + "Ġ above", + "Ġa bove", + "Ġab ove", + "it ive", + "iti ve", + "5 6", + "Ġ question", + "Ġqu estion", + "Ġquest ion", + "Ġq uestion", + "Ġquesti on", + "Ġques tion", + "Ġ Qu", + "ĠQ u", + "ãĢĤ ĊĊ", + "ãĢĤĊ Ċ", + "g le", + "gl e", + "Ġ word", + "Ġw ord", + "Ġwor d", + "Ġwo rd", + "Ġ provide", + "Ġpro vide", + "Ġprovid e", + "Ġprov ide", + "Ġ Return", + "ĠR eturn", + "ĠRe turn", + "ĠRet urn", + "Ġ research", + "Ġre search", + "Ġres earch", + "ã o", + "u str", + "us tr", + "ust r", + "Ġ publish", + "Ġp ublish", + "Ġpub lish", + "Ġpubli sh", + "ch ema", + "che ma", + "chem a", + "} }", + "Ġ CON", + "ĠC ON", + "ĠCO N", + "- in", + "-i n", + "all back", + "Ġ cover", + "Ġc over", + "Ġco ver", + "Ġcov er", + "\\ \\", + "c olor", + "co lor", + "col or", + "colo r", + "Ġ IS", + "ĠI S", + "Ġ whether", + "Ġwh ether", + "Ġwhe ther", + "i mate", + "im ate", + "ima te", + "imat e", + "i sc", + "is c", + "B ar", + "Ba r", + "Ġ div", + "Ġd iv", + "Ġdi v", + "B e", + "o urn", + "ou rn", + "our n", + "Ġ having", + "Ġh aving", + "Ġha ving", + "Ġhav ing", + "l em", + "le m", + "p layer", + "pl ayer", + "play er", + "pla yer", + "a bs", + "ab s", + "am era", + "ame ra", + "amer a", + "n ey", + "ne y", + "Ġ exc", + "Ġe xc", + "Ġex c", + "g ether", + "get her", + "ge ther", + "p lied", + "pl ied", + "a o", + "[ $", + "Ġ ++", + "Ġ+ +", + "i pe", + "ip e", + "s how", + "sh ow", + "/ d", + "[ :", + "a gement", + "ag ement", + "age ment", + "agem ent", + "l ev", + "le v", + "_ ID", + "_I D", + "9 7", + "r ary", + "ra ry", + "rar y", + "a des", + "ad es", + "ade s", + "_ se", + "_s e", + "a use", + "au se", + "aus e", + "Ġ employ", + "Ġe mploy", + "Ġem ploy", + "Ġemp loy", + "Ġ */čĊ", + "Ġ* /čĊ", + "Ġ*/ čĊ", + "Ġ fre", + "Ġf re", + "Ġfr e", + "Ġ' @", + "Ġcom plet", + "Ġcomp let", + "Ġcomple t", + "Ġcompl et", + "Ġ large", + "Ġl arge", + "Ġlarg e", + "Ġlar ge", + "r al", + "ra l", + "\\ x", + "Ġ fac", + "Ġf ac", + "Ġfa c", + "< String", + ">", + "Ġ> >", + "Ġ face", + "Ġf ace", + "Ġfa ce", + "Ġfac e", + "C TION", + "CT ION", + "Ġ save", + "Ġs ave", + "Ġsa ve", + "Ġsav e", + "Ġ typ", + "Ġt yp", + "Ġty p", + "d ev", + "de v", + "( \"#", + "(\" #", + "A GE", + "AG E", + "cont ainer", + "contain er", + "e dit", + "ed it", + "edi t", + "Q L", + "Ġ items", + "Ġit ems", + "Ġi tems", + "Ġitem s", + "Ġ social", + "Ġs ocial", + "Ġso cial", + "Ġsoc ial", + "Ġsoci al", + "i en", + "ie n", + "Ġ React", + "ĠRe act", + ") .ĊĊ", + "). ĊĊ", + ").Ċ Ċ", + "Ġ mar", + "Ġm ar", + "Ġma r", + "Ġre du", + "Ġr edu", + "Ġred u", + "Ġ RE", + "ĠR E", + ". put", + ".p ut", + "Ġ major", + "Ġm ajor", + "Ġmaj or", + "C ell", + "Ce ll", + "Cel l", + "n ext", + "ne xt", + "nex t", + "Ġ expected", + "Ġex pected", + "Ġexp ected", + "Ġexpect ed", + "Ġ yet", + "Ġy et", + "Ġye t", + "Ġin div", + "Ġind iv", + "trib utes", + "tribute s", + "at is", + "ati s", + "a med", + "am ed", + "ame d", + "Ġ food", + "Ġf ood", + "Ġfo od", + "Ġfoo d", + "S ource", + "( string", + "(s tring", + "(str ing", + "(st ring", + "Ġ +Ċ", + "Ġ+ Ċ", + "i tes", + "it es", + "ite s", + "d r", + "Ġ members", + "Ġm embers", + "Ġmem bers", + "Ġmember s", + "Ġmemb ers", + "Ġ comb", + "Ġc omb", + "Ġcom b", + "Ġco mb", + "i tems", + "it ems", + "ite ms", + "item s", + "Ġ Per", + "ĠP er", + "ĠPe r", + "T H", + "= True", + "Ġ bar", + "Ġb ar", + "Ġba r", + "_ SE", + "_S E", + "c omm", + "com m", + "co mm", + "( w", + ") ĊĊĊ", + ")Ċ ĊĊ", + ")ĊĊ Ċ", + "Ġ send", + "Ġs end", + "Ġse nd", + "Ġsen d", + "Ġ inc", + "Ġin c", + "Ġi nc", + "un signed", + "uns igned", + "F A", + "Ġ params", + "Ġpar ams", + "Ġparam s", + "Ġpara ms", + "Ġpa rams", + "a pping", + "ap ping", + "app ing", + "r os", + "ro s", + "u gin", + "ug in", + "ugi n", + "f a", + "Ġ connection", + "Ġcon nection", + "Ġconn ection", + "Ġconnect ion", + "Ġ };ĊĊ", + "Ġ} ;ĊĊ", + "Ġ};Ċ Ċ", + "Ġ}; ĊĊ", + "Ġb ecome", + "Ġbe come", + "Ġbec ome", + "M ode", + "Mod e", + "Mo de", + "Ġ ev", + "Ġe v", + "Ġ diff", + "Ġd iff", + "Ġdif f", + "Ġdi ff", + "Ġ United", + "ĠUn ited", + "ĠUnit ed", + "ĠUni ted", + "H eight", + "He ight", + "f ully", + "ful ly", + "full y", + "im ages", + "image s", + "ima ges", + "imag es", + "Ġ makes", + "Ġm akes", + "Ġmake s", + "Ġma kes", + "Ġmak es", + "Ġ global", + "Ġg lobal", + "Ġglob al", + "Ġglo bal", + "Ġ contact", + "Ġcont act", + "Ġconta ct", + "' :Ċ", + "': Ċ", + "Ġ abs", + "Ġa bs", + "Ġab s", + "а Ð", + "f loat", + "flo at", + "Ġ except", + "Ġex cept", + "Ġexc ept", + "Ġexce pt", + "Ġ Pol", + "ĠP ol", + "ĠPo l", + "Ch ild", + "Chi ld", + "t yp", + "ty p", + "Ġc ertain", + "Ġcert ain", + "Ġcer tain", + "i ón", + "ió n", + "O UT", + "OU T", + "Ġim pro", + "Ġimp ro", + "Ġimpr o", + "i les", + "il es", + "ile s", + "Ġ -->Ċ", + "Ġ- ->Ċ", + "Ġ-- >Ċ", + "Ġ--> Ċ", + "Ġ Part", + "ĠP art", + "ĠPar t", + "ĠPa rt", + "val ues", + "value s", + "valu es", + "o ss", + "os s", + "/ **", + "/* *", + "i lit", + "il it", + "ili t", + "Ġ Event", + "ĠE vent", + "ĠEven t", + "ĠEv ent", + "ĠEve nt", + "c urity", + "cur ity", + "s ter", + "st er", + "ste r", + "Ġ character", + "Ġchar acter", + "1 98", + "19 8", + "Ġ news", + "Ġn ews", + "Ġnew s", + "Ġne ws", + "Ġ \",", + "Ġ\" ,", + "Ġ device", + "Ġd evice", + "Ġde vice", + "Ġdev ice", + "c el", + "ce l", + "lo gin", + "log in", + "he et", + "hee t", + "D efault", + "De fault", + "Def ault", + "@ \"", + "ĉ Ġ", + "c lick", + "cl ick", + "cli ck", + "( value", + "(v alue", + "(val ue", + "(va lue", + "Ġ Ab", + "ĠA b", + "Ġ previous", + "Ġpre vious", + "Ġprev ious", + "ERR OR", + "o cal", + "oc al", + "oca l", + "Ġ material", + "Ġm aterial", + "Ġmat erial", + "Ġmate rial", + "Ġmateria l", + "Ġmater ial", + "Ġmateri al", + "Ġ below", + "Ġb elow", + "Ġbe low", + "Ġbel ow", + "Ġ Christ", + "ĠCh rist", + "ĠChris t", + "ĠChr ist", + "Ġ media", + "Ġm edia", + "Ġme dia", + "Ġmed ia", + "Ġmedi a", + "c over", + "co ver", + "cov er", + "Ġ UI", + "ĠU I", + "Ġ fail", + "Ġf ail", + "Ġfa il", + "Ġ black", + "Ġb lack", + "Ġbl ack", + "Ġbla ck", + "Ġ component", + "Ġcom ponent", + "Ġcomp onent", + "Ġ American", + "ĠA merican", + "ĠAmeric an", + "ĠAmerica n", + "ĠAmer ican", + "Ġ added", + "Ġadd ed", + "Ġad ded", + "Ġ buy", + "Ġb uy", + "Ġbu y", + "s tit", + "st it", + "sti t", + "Ġ came", + "Ġc ame", + "Ġca me", + "Ġcam e", + "Ġ delete", + "Ġde lete", + "Ġdel ete", + "Ġdelet e", + "Ġdele te", + "p roperty", + "pro perty", + "prop erty", + "proper ty", + "o ding", + "od ing", + "odi ng", + "Ġ card", + "Ġc ard", + "Ġcar d", + "Ġca rd", + "r ops", + "ro ps", + "rop s", + "Ġ https", + "Ġhttp s", + "Ġht tps", + "Ġhtt ps", + "Ġ root", + "Ġr oot", + "Ġro ot", + "Ġ handle", + "Ġh andle", + "Ġhand le", + "Ġhan dle", + "C C", + "B ack", + "Ba ck", + "em plate", + "emp late", + "empl ate", + "Ġ getting", + "Ġg etting", + "Ġget ting", + "_ by", + "_b y", + "m ail", + "ma il", + "mai l", + "_ sh", + "_s h", + ". assert", + ".as sert", + "Ġ Dec", + "ĠD ec", + "ĠDe c", + "( true", + "(tr ue", + "Ġ comput", + "Ġcom put", + "Ġcomp ut", + "Ġ claim", + "Ġcl aim", + "Ġcla im", + "' =>", + "'= >", + "Ġ Sub", + "ĠS ub", + "ĠSu b", + "Ġ air", + "Ġa ir", + "Ġai r", + "o ps", + "op s", + "n av", + "na v", + "e ments", + "em ents", + "ement s", + "eme nts", + "emen ts", + "( id", + "(i d", + "Ġ enter", + "Ġen ter", + "Ġent er", + "an ged", + "ang ed", + "ange d", + "E nd", + "En d", + "Ġ location", + "Ġl ocation", + "Ġlo cation", + "Ġloc ation", + "Ġ night", + "Ġn ight", + "Ġni ght", + "Ġnig ht", + "Ġ doing", + "Ġdo ing", + "Ġdoi ng", + "Ġ Red", + "ĠR ed", + "ĠRe d", + "l in", + "li n", + "} ĊĊĊ", + "}Ċ ĊĊ", + "}ĊĊ Ċ", + "v ider", + "vid er", + "vi der", + "vide r", + "Ġ pick", + "Ġp ick", + "Ġpi ck", + "Ġpic k", + "Ġ watch", + "Ġw atch", + "Ġwat ch", + "ess ages", + "essage s", + "essa ges", + "Ġ human", + "Ġh uman", + "Ġhum an", + "Ġhu man", + "Ġ dam", + "Ġd am", + "Ġda m", + "p end", + "pe nd", + "pen d", + "d ir", + "di r", + "Ġ tax", + "Ġt ax", + "Ġta x", + "Ġ girl", + "Ġg irl", + "Ġgi rl", + "Ġgir l", + "re et", + "ree t", + "Ġ box", + "Ġb ox", + "Ġbo x", + "Ġ strong", + "Ġst rong", + "Ġstr ong", + "Ġstro ng", + "Ġstron g", + "( v", + "r el", + "re l", + "Ġ interface", + "Ġinter face", + "Ġinterf ace", + "Ġ msg", + "Ġm sg", + "Ġms g", + "f ect", + "fe ct", + "fec t", + "_ at", + "_a t", + "Ġ house", + "Ġh ouse", + "Ġhous e", + "Ġho use", + "Ġ track", + "Ġt rack", + "Ġtr ack", + "Ġtra ck", + "' );ĊĊ", + "') ;ĊĊ", + "');Ċ Ċ", + "'); ĊĊ", + "j e", + "Ġ John", + "ĠJ ohn", + "ĠJo hn", + "ĠJoh n", + "i str", + "is tr", + "ist r", + "( S", + "u be", + "ub e", + "Ġ ce", + "Ġc e", + "it ted", + "itt ed", + "itte d", + "V ER", + "VE R", + "* )", + "p arent", + "par ent", + "pare nt", + "pa rent", + "paren t", + "Ġ application", + "Ġapp lication", + "Ġap plication", + "Ġapplic ation", + "Ġappl ication", + "a ny", + "an y", + ". swing", + ".s wing", + ".sw ing", + "Ġ pack", + "Ġp ack", + "Ġpa ck", + "Ġpac k", + "\\ u", + "Ġp ract", + "Ġpr act", + "Ġpra ct", + "Ġprac t", + "Ġ section", + "Ġs ection", + "Ġse ction", + "Ġsec tion", + "Ġsect ion", + "c tx", + "ct x", + "Ġ unsigned", + "Ġun signed", + "Ġuns igned", + ". Point", + ".P oint", + "Ġ One", + "ĠO ne", + "ĠOn e", + "Ä ±", + "i ple", + "ip le", + "ipl e", + "a id", + "ai d", + "Ñ ĥ", + "V ector", + "Vec tor", + "Ve ctor", + "Vect or", + "b yte", + "by te", + "byt e", + "Ġ wait", + "Ġw ait", + "Ġwa it", + "Ġ Ãł", + "Ġà ł", + "à ¥", + "Ġto gether", + "Ġtog ether", + "Ġ throws", + "Ġth rows", + "Ġthrow s", + "Ġthr ows", + "Ġthro ws", + "F O", + "' ))", + "') )", + "h ost", + "ho st", + "hos t", + "i sing", + "is ing", + "isi ng", + "isin g", + ". view", + ".v iew", + "Ġ terms", + "Ġte rms", + "Ġter ms", + "Ġterm s", + "f ramework", + "fr amework", + "frame work", + "fram ework", + "- r", + "Ġ apply", + "Ġapp ly", + "Ġap ply", + "Ġappl y", + "Ġ session", + "Ġs ession", + "Ġsess ion", + "O ptions", + "Option s", + "Opt ions", + "ug gest", + "ugg est", + "Ġ others", + "Ġo thers", + "Ġother s", + "w itter", + "wit ter", + "Ġ fund", + "Ġf und", + "Ġfun d", + "Ġfu nd", + "I nit", + "In it", + "Ini t", + "_ _(", + "__ (", + "ens or", + "enso r", + "G ET", + "GE T", + "Ġse veral", + "Ġsever al", + "Ġsev eral", + "i i", + "[ j", + "I O", + "Ġ template", + "Ġt emplate", + "Ġtem plate", + "Ġtemp late", + "Ġtempl ate", + "P osition", + "Pos ition", + "Ġe con", + "Ġec on", + "Ġeco n", + "a chine", + "ach ine", + "achi ne", + "Ġ il", + "Ġi l", + ". spring", + ".s pring", + ".sp ring", + "m ain", + "ma in", + "mai n", + "e lt", + "el t", + "i ment", + "im ent", + "ime nt", + "imen t", + "R ec", + "Re c", + "m m", + "Ġ University", + "ĠUn iversity", + "ĠUnivers ity", + "urs or", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "G L", + "ic ture", + "ict ure", + "it hub", + "ith ub", + "c er", + "ce r", + "c ast", + "ca st", + "cas t", + "F rom", + "Fr om", + "a les", + "al es", + "ale s", + "Ġ subject", + "Ġsu bject", + "Ġsub ject", + "Ġsubj ect", + "p assword", + "pass word", + "pas sword", + "n y", + "Ġ esc", + "Ġe sc", + "Ġes c", + ". write", + ".w rite", + ".writ e", + ".wr ite", + "ï¼ Į", + "W hat", + "Wh at", + ". H", + "Ġ history", + "Ġh istory", + "Ġhistor y", + "Ġhist ory", + "Ġhi story", + "Ġhisto ry", + "Ġ Fe", + "ĠF e", + "Ġ individual", + "Ġind ividual", + "Ġindiv idual", + "Ġindivid ual", + "u nit", + "un it", + "uni t", + "Ġ -->", + "Ġ- ->", + "Ġ-- >", + "Ġ du", + "Ġd u", + "I ST", + "IS T", + "Ġ users", + "Ġus ers", + "Ġuse rs", + "Ġuser s", + "f s", + "f alse", + "fa lse", + "fal se", + "u nt", + "un t", + "T itle", + "Tit le", + "Ti tle", + "Ġ mot", + "Ġm ot", + "Ġmo t", + "Ġ future", + "Ġf uture", + "Ġfut ure", + "Ġfu ture", + "a ched", + "ac hed", + "ach ed", + "ache d", + "Ġ started", + "Ġstart ed", + "Ġstar ted", + "Ġ mode", + "Ġm ode", + "Ġmod e", + "Ġmo de", + "Ġ '<", + "Ġ' <", + "_ array", + "_a rray", + "_arr ay", + "_ar ray", + "Ġ ax", + "Ġa x", + "' ];Ċ", + "'] ;Ċ", + "']; Ċ", + "i res", + "ir es", + "ire s", + "T here", + "The re", + "Th ere", + "u ght", + "ug ht", + "ugh t", + "t ml", + "tm l", + "p osed", + "pos ed", + "pose d", + "po sed", + "i cult", + "ic ult", + "Ġ took", + "Ġt ook", + "Ġto ok", + "Ġtoo k", + "Ġ games", + "Ġg ames", + "Ġgame s", + "Ġgam es", + "Ġga mes", + "Ġ }}", + "Ġ} }", + "Ġ ?>Ċ", + "Ġ? >Ċ", + "Ġ?> Ċ", + "Ġ products", + "Ġproduct s", + "Ġprodu cts", + "I s", + "Ġ bad", + "Ġb ad", + "Ġba d", + "Ġ Des", + "ĠD es", + "ĠDe s", + ". path", + ".p ath", + ".pa th", + ".pat h", + "' ĊĊ", + "'Ċ Ċ", + "Ġ Post", + "ĠP ost", + "ĠPo st", + "ĠPos t", + "a vel", + "av el", + "ave l", + "( :", + "1 50", + "15 0", + "Ġ needs", + "Ġne eds", + "Ġneed s", + "Ġ known", + "Ġk nown", + "Ġkn own", + "Ġknow n", + "F l", + "Ġ exec", + "Ġe xec", + "Ġex ec", + "Ġexe c", + "Ġ seen", + "Ġs een", + "Ġse en", + "Ġsee n", + "5 1", + "u me", + "um e", + "Ġ border", + "Ġb order", + "Ġbor der", + "Ġbord er", + "Ġ live", + "Ġl ive", + "Ġli ve", + "Ġliv e", + "t emp", + "te mp", + "tem p", + "P er", + "Pe r", + "Ġ variable", + "Ġvar iable", + "Ġvari able", + "i et", + "ie t", + "Ġ Def", + "ĠD ef", + "ĠDe f", + "Ġ ge", + "Ġg e", + "e me", + "em e", + "_ back", + "_b ack", + "f irst", + "fi rst", + "fir st", + "Ġ provided", + "Ġpro vided", + "Ġprovid ed", + "Ġprov ided", + "Ġprovide d", + "//////////////// ////////////////", + "Ġ filename", + "Ġf ilename", + "Ġfile name", + "Ġfil ename", + "Ġfi lename", + "Ġ hope", + "Ġh ope", + "Ġhop e", + "Ġho pe", + "u ly", + "ul y", + "a uto", + "aut o", + "au to", + "f ind", + "fin d", + "fi nd", + "_ string", + "_s tring", + "_st ring", + "_str ing", + "b tn", + "bt n", + "it ude", + "itud e", + "itu de", + "At tribute", + "Attrib ute", + "Ġ young", + "Ġyou ng", + "Ġyo ung", + ". txt", + ".t xt", + ".tx t", + "Ġ website", + "Ġwe bsite", + "Ġweb site", + "Ġwebs ite", + "Ġ Prop", + "ĠP rop", + "ĠPro p", + "ĠPr op", + "Ġ ey", + "Ġe y", + "> ();Ċ", + ">( );Ċ", + ">() ;Ċ", + ">(); Ċ", + "i onal", + "ion al", + "io nal", + "iona l", + "A RR", + "AR R", + "iction ary", + "ur ther", + "urt her", + ". ", + ")- >", + "t x", + "Ġ pur", + "Ġp ur", + "Ġpu r", + "u el", + "ue l", + "ym bol", + "ymb ol", + "u ation", + "ua tion", + "uat ion", + "a nger", + "an ger", + "ang er", + "ange r", + "Ġ background", + "Ġback ground", + "e cess", + "ec ess", + "ece ss", + "ef ined", + ". .......", + ".. ......", + "... .....", + ".... ....", + "..... ...", + "...... ..", + "....... .", + "Ġ description", + "Ġd escription", + "Ġde scription", + "Ġdes cription", + "Ġdescri ption", + "Ġ represent", + "Ġre present", + "Ġrep resent", + "\" ));Ċ", + "\") );Ċ", + "\")) ;Ċ", + "\")); Ċ", + "p ression", + "pr ession", + "press ion", + "row ser", + "rows er", + "rowse r", + "Ġ series", + "Ġs eries", + "Ġse ries", + "Ġser ies", + "Ġserie s", + "Ġseri es", + "w ards", + "ward s", + "war ds", + "5 2", + "( $_", + "($ _", + "a ise", + "ai se", + "ais e", + "Ġ hot", + "Ġh ot", + "Ġho t", + "a city", + "ac ity", + "aci ty", + "r ies", + "ri es", + "rie s", + "a ctions", + "act ions", + "action s", + "C reate", + "Cre ate", + "Creat e", + "a dio", + "ad io", + "adi o", + "am ples", + "amp les", + "ample s", + "Ġ original", + "Ġor iginal", + "Ġorig inal", + "Ġorigin al", + "ens ive", + "ensi ve", + "f ont", + "fo nt", + "fon t", + "st ream", + "str eam", + "stre am", + " using", + ".spring framework", + "0 01", + "00 1", + "s erver", + "ser ver", + "serve r", + "serv er", + "Ġ bill", + "Ġb ill", + "Ġbi ll", + "Ġbil l", + "A CK", + "AC K", + "i lename", + "il ename", + "ile name", + "ilen ame", + "Ġ frame", + "Ġf rame", + "Ġfr ame", + "Ġfra me", + "Ġfram e", + "Ġ =Ċ", + "Ġ= Ċ", + "E dit", + "Ed it", + "ad ius", + "adi us", + "Ġ draw", + "Ġd raw", + "Ġdr aw", + "Ġdra w", + "an ks", + "ank s", + "Ġd eter", + "Ġde ter", + "Ġdet er", + "Ġ comes", + "Ġc omes", + "Ġcom es", + "Ġco mes", + "Ġcome s", + "_ int", + "_in t", + "_i nt", + "Ġ foreach", + "Ġf oreach", + "Ġfor each", + "Ġfore ach", + "Ġfo reach", + "a ngle", + "an gle", + "ang le", + "angl e", + "Ġ elect", + "Ġe lect", + "Ġel ect", + "Ġele ct", + "p ected", + "pect ed", + "pec ted", + "He ader", + "Head er", + "i stration", + "ist ration", + "istr ation", + "istra tion", + "istrat ion", + "F alse", + "Fa lse", + "Fal se", + "Ġ Game", + "ĠG ame", + "ĠGa me", + "ĠGam e", + "Ġ filter", + "Ġf ilter", + "Ġfil ter", + "Ġfilt er", + "Act ivity", + "Activ ity", + "Ġ larg", + "Ġl arg", + "Ġla rg", + "Ġlar g", + "in ition", + "init ion", + "ini tion", + "Ġ \"<", + "Ġ\" <", + "2 56", + "25 6", + "i sed", + "is ed", + "ise d", + "Ġ remove", + "Ġre move", + "Ġrem ove", + "Ġ Trans", + "ĠT rans", + "ĠTr ans", + "ĠTra ns", + "ĠTran s", + "m et", + "me t", + "s ee", + "se e", + "Form at", + "For mat", + "Com mand", + "Comm and", + "Ġ EX", + "ĠE X", + "N one", + "No ne", + "Non e", + "Ġ front", + "Ġf ront", + "Ġfr ont", + "Ġfro nt", + "Ġfron t", + "A SE", + "AS E", + "Ġ Rec", + "ĠR ec", + "ĠRe c", + "ound ation", + "Ġ vo", + "Ġv o", + "9 6", + "= \\\"", + "=\\ \"", + "( *", + "Ch ange", + "Chan ge", + "Cha nge", + ". Write", + ".W rite", + "g roup", + "gr oup", + "gro up", + "i ents", + "ie nts", + "ient s", + "ien ts", + "u y", + "******** ********************************************************", + "**************** ************************************************", + "******************************** ********************************", + "************************ ****************************************", + "**************************************** ************************", + "************************************************ ****************", + "******************************************************** ********", + "Ġ dig", + "Ġd ig", + "Ġdi g", + "h r", + "( -", + "Ġ gen", + "Ġg en", + "Ġge n", + "n umber", + "num ber", + "v ec", + "ve c", + "ur ope", + "uro pe", + "en try", + "ent ry", + "entr y", + "L L", + "Ġ ste", + "Ġs te", + "Ġst e", + "Val id", + "Va lid", + "' ],", + "'] ,", + "_ param", + "_p aram", + "_par am", + "_para m", + "_pa ram", + "Ġ selected", + "Ġse lected", + "Ġselect ed", + "Ġsel ected", + "Ġ according", + "Ġa ccording", + "Ġacc ording", + "Ġaccord ing", + "Ġ Dis", + "ĠD is", + "ĠDi s", + "Ġ util", + "Ġu til", + "Ġut il", + "B uffer", + "Buf fer", + "Buff er", + "Bu ffer", + "_ error", + "_e rror", + "_err or", + "_er ror", + "Ġ associ", + "Ġass oci", + "Ġassoc i", + "_ SIZE", + "_S IZE", + "_SI ZE", + "Ġ wor", + "Ġw or", + "Ġwo r", + "Ġ printf", + "Ġprint f", + "Ġprin tf", + "r ag", + "ra g", + " ł", + "D D", + "Ġ Val", + "ĠV al", + "ĠVa l", + "Ġ activ", + "Ġact iv", + "Ġac tiv", + "E ng", + "En g", + "e time", + "et ime", + "eti me", + "etim e", + "Ġ virtual", + "Ġv irtual", + "Ġvir tual", + "Ġvirt ual", + "a ign", + "ai gn", + "a ur", + "au r", + "Ġ Pres", + "ĠP res", + "ĠPr es", + "ĠPre s", + "Ġ Exception", + "ĠEx ception", + "ĠExcept ion", + "Ġ anything", + "Ġany thing", + "Ġ Off", + "ĠO ff", + "ĠOf f", + "Ġ hours", + "Ġh ours", + "Ġhour s", + "Ġho urs", + "Ġ war", + "Ġw ar", + "Ġwa r", + "Arg s", + "Ar gs", + "a ging", + "ag ing", + "agi ng", + "Ġ models", + "Ġmod els", + "Ġmodel s", + "Ġmode ls", + "Ġ Time", + "ĠT ime", + "ĠTim e", + "ĠTi me", + "O b", + "a ms", + "am s", + "j oy", + "jo y", + "Ġ early", + "Ġear ly", + ". read", + ".re ad", + ".r ead", + "8 6", + "Ġ center", + "Ġc enter", + "Ġcent er", + "Ġcen ter", + "Ġ Initial", + "ĠIn itial", + "ĠInit ial", + "ĠIniti al", + "Ġ language", + "Ġl anguage", + "Ġlangu age", + "l ength", + "le ngth", + "len gth", + "x y", + "Ġ sn", + "Ġs n", + "Ġ inf", + "Ġin f", + "Ġi nf", + "P ost", + "Pos t", + "Po st", + "Ġ ago", + "Ġa go", + "Ġag o", + "Ġ easy", + "Ġe asy", + "Ġeas y", + "Ġea sy", + "_ code", + "_c ode", + "_co de", + "_cod e", + "Ġ ANY", + "ĠA NY", + "ĠAN Y", + "_ ch", + "_c h", + "Ġ download", + "Ġd ownload", + "Ġdown load", + "( T", + "a ved", + "av ed", + "ave d", + "âĢ ĵ", + "Ġ students", + "Ġst udents", + "Ġstud ents", + "Ġstudent s", + "Ġ fig", + "Ġf ig", + "Ġfi g", + "l ight", + "li ght", + "lig ht", + "x x", + "Ġ buffer", + "Ġb uffer", + "Ġbu ffer", + "Ġbuf fer", + "Ġbuff er", + "Ġ Dep", + "ĠD ep", + "ĠDe p", + "Ġ Math", + "ĠM ath", + "ĠMat h", + "ĠMa th", + "I TH", + "IT H", + "Ġ vari", + "Ġv ari", + "Ġvar i", + "Ġva ri", + "Ġ due", + "Ġd ue", + "Ġdu e", + "F actory", + "Fact ory", + "Factor y", + "Ġ por", + "Ġp or", + "Ġpo r", + "Ġ ep", + "Ġe p", + "o type", + "ot ype", + "otyp e", + "oty pe", + "Ġ cannot", + "Ġc annot", + "Ġcan not", + "Ġcann ot", + "Ġ white", + "Ġwh ite", + "Ġwhit e", + "< int", + "čĊ", + "\"> čĊ", + ". annot", + ".an not", + "Ġ collection", + "Ġc ollection", + "Ġcol lection", + "Ġcoll ection", + "Ġcollect ion", + "Ġcolle ction", + "' .", + "Ġ similar", + "Ġs imilar", + "Ġsim ilar", + "Ġsimil ar", + "Ġ taken", + "Ġt aken", + "Ġtake n", + "Ġta ken", + "Ġtak en", + "( \"%", + "(\" %", + "Or der", + "Ord er", + "' ]Ċ", + "'] Ċ", + "- md", + "-m d", + "Ġ TH", + "ĠT H", + "a ced", + "ace d", + "ac ed", + "Ġis n", + "Ġi sn", + "/ j", + "Ġ son", + "Ġs on", + "Ġso n", + "g raph", + "gr aph", + "gra ph", + "Ġ Integer", + "ĠInt eger", + "Ġn ecess", + "Ġne cess", + "Ġnec ess", + "Ġneces s", + "r een", + "re en", + "ree n", + "Ġ um", + "Ġu m", + "Ġ \\<", + "Ġ\\ <", + "Ġ moment", + "Ġm oment", + "Ġmom ent", + "Ġmo ment", + "Ġ bring", + "Ġb ring", + "Ġbr ing", + "Ġbri ng", + "Ġ indic", + "Ġin dic", + "Ġind ic", + "y sis", + "ys is", + "ysi s", + "Le vel", + "v erse", + "ver se", + "vers e", + "ur renc", + "urre nc", + "urr enc", + "_ test", + "_t est", + "_te st", + "Ġent ire", + "D own", + "Do wn", + "Ġ }ĊĊĊ", + "Ġ} ĊĊĊ", + "Ġ}Ċ ĊĊ", + "Ġ}ĊĊ Ċ", + "( result", + "(res ult", + "Ġ Read", + "ĠR ead", + "ĠRe ad", + "à ¨", + "M od", + "Mo d", + "Ġ trying", + "Ġt rying", + "Ġtr ying", + "Ġtry ing", + "\" ),Ċ", + "\") ,Ċ", + "\"), Ċ", + "Ġ member", + "Ġm ember", + "Ġmem ber", + "Ġmemb er", + "Ġ Cor", + "ĠC or", + "ĠCo r", + "O DO", + "OD O", + "- control", + "-c ontrol", + "-cont rol", + "un time", + "unt ime", + "Ġ Sim", + "ĠS im", + "ĠSi m", + "D ialog", + "Di alog", + "Dia log", + "p lot", + "pl ot", + "_ on", + "_o n", + "Ġ phys", + "Ġph ys", + "Ġphy s", + "} /", + "Ġ namespace", + "Ġn amespace", + "Ġname space", + "Ġnames pace", + "ĉ čĊ", + "a cc", + "ac c", + "P layer", + "Pl ayer", + "Play er", + "A RE", + "AR E", + "8 9", + "Ġ foot", + "Ġf oot", + "Ġfo ot", + "Ġfoo t", + "Ġ board", + "Ġb oard", + "Ġbo ard", + "Ġboa rd", + "p art", + "par t", + "pa rt", + "Ġ sus", + "Ġs us", + "Ġsu s", + "w ise", + "wi se", + "wis e", + "Ġ Mc", + "ĠM c", + "Ġ push", + "Ġp ush", + "Ġpu sh", + "Ġpus h", + "A TA", + "AT A", + "Ġ please", + "Ġp lease", + "Ġpl ease", + "Ġple ase", + "Ġplea se", + "Ġpleas e", + "r ied", + "ri ed", + "rie d", + "we et", + "b it", + "bi t", + "i ded", + "id ed", + "ide d", + "V E", + "Ġ Sw", + "ĠS w", + "U B", + "Ġ types", + "Ġt ypes", + "Ġtype s", + "Ġtyp es", + "Ġty pes", + "e dia", + "ed ia", + "edi a", + "Ġc los", + "Ġcl os", + "Ġclo s", + "ace book", + "W hen", + "Wh en", + "Ġ edit", + "Ġe dit", + "Ġed it", + "Ġedi t", + "i gger", + "ig ger", + "igg er", + "Ġe nerg", + "Ġen erg", + "Ġener g", + "Cont ainer", + "Contain er", + "Conta iner", + "Ġ phot", + "Ġp hot", + "Ġph ot", + "Ġ Count", + "ĠC ount", + "ĠCo unt", + "ĠCou nt", + "ĠCoun t", + "Ġ Europe", + "ĠE urope", + "ĠEuro pe", + "ĠEurop e", + "ĠEur ope", + ". Is", + ".I s", + "Ġ Russ", + "ĠR uss", + "ĠRu ss", + "ĠRus s", + "p eed", + "pe ed", + "pee d", + "Ġ Str", + "ĠS tr", + "ĠSt r", + "Ġ py", + "Ġp y", + "Ġ cult", + "Ġc ult", + "Ġcu lt", + "Ġcul t", + "Ġ defined", + "Ġd efined", + "Ġdef ined", + "Ġdefine d", + "Ġdefin ed", + "c count", + "cc ount", + "cco unt", + "Ġo bt", + "Ġob t", + ". Location", + ".L ocation", + ".Lo cation", + "Ġ thread", + "Ġt hread", + "Ġth read", + "Ġthr ead", + "i lle", + "il le", + "ill e", + "Ġ instead", + "Ġin stead", + "Ġinst ead", + "st rong", + "str ong", + "stro ng", + "Ġ Sec", + "ĠS ec", + "ĠSe c", + "U RE", + "UR E", + "Ġ idea", + "Ġi dea", + "Ġid ea", + "Ġide a", + ". se", + ".s e", + "e my", + "em y", + "se lected", + "select ed", + "sel ected", + "Con nection", + "Conn ection", + "Connect ion", + "a cing", + "ac ing", + "aci ng", + "acin g", + "t hread", + "th read", + "thr ead", + ". next", + ".n ext", + ".ne xt", + "Ġ coll", + "Ġc oll", + "Ġco ll", + "Ġcol l", + "Ġ film", + "Ġf ilm", + "Ġfil m", + "Ġfi lm", + "is tic", + "ist ic", + "isti c", + "Ġ compet", + "Ġcom pet", + "Ġcomp et", + "Ġ conn", + "Ġc onn", + "Ġcon n", + "Ġco nn", + "th ough", + "Ġ compan", + "Ġcom pan", + "Ġcomp an", + "o cket", + "oc ket", + "ock et", + "Ġt each", + "Ġte ach", + "Ġtea ch", + "= (", + "Ġ phone", + "Ġp hone", + "Ġph one", + "Ġphon e", + "Ġ active", + "Ġact ive", + "Ġactiv e", + "7 9", + "de lete", + "del ete", + "1 01", + "10 1", + "t ries", + "tr ies", + "trie s", + "tri es", + "Ġ mo", + "Ġm o", + "Ġ death", + "Ġde ath", + "} );ĊĊ", + "});Ċ Ċ", + "}) ;ĊĊ", + "}); ĊĊ", + "o col", + "oc ol", + "oco l", + "W idget", + "Ġ article", + "Ġart icle", + "Ġartic le", + "r odu", + "ro du", + "rod u", + "an did", + "and id", + "andi d", + "Ñ ĭ", + "Ġ Cr", + "ĠC r", + "k a", + "( ):", + "() :", + "l ood", + "lo od", + "loo d", + "ĉ ĉĉĊ", + "ĉĉ ĉĊ", + "ĉĉĉ Ċ", + "Ġ almost", + "Ġal most", + "Ġalm ost", + "Ġ sell", + "Ġs ell", + "Ġse ll", + "Ġsel l", + "erv let", + "r ip", + "ri p", + "U nit", + "Un it", + "Uni t", + "Ġapp lic", + "Ġappl ic", + "Ġ connect", + "Ġcon nect", + "Ġconn ect", + "Ġ feature", + "Ġf eature", + "Ġfe ature", + "Ġfeat ure", + "Ġ via", + "Ġv ia", + "Ġvi a", + "' ),", + "') ,", + "Ġ lim", + "Ġl im", + "Ġli m", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "Ġ Gu", + "ĠG u", + "E ngine", + "Eng ine", + "Ġ ens", + "Ġe ns", + "Ġen s", + "Ġ environment", + "Ġen vironment", + "Ġenviron ment", + "b lock", + "bl ock", + "blo ck", + "H ERE", + "HE RE", + "HER E", + "N ULL", + "NU LL", + "g y", + "t ag", + "ta g", + ") ).", + ")) .", + "e xp", + "ex p", + "Ġcom pl", + "Ġco mpl", + "Ġcomp l", + "Ġ install", + "Ġinst all", + "Ġinstal l", + "Ġ complete", + "Ġcom plete", + "Ġcomp lete", + "Ġcomple te", + "Ġcomplet e", + "Ġcompl ete", + "q ueue", + "que ue", + "at ural", + "atur al", + "atura l", + "atu ral", + "Ġ general", + "Ġg eneral", + "Ġgener al", + "Ġgen eral", + "Ġgene ral", + "Ġgenera l", + "t hon", + "th on", + "Ġas ked", + "Ġask ed", + "o res", + "or es", + "ore s", + "( res", + "(r es", + "(re s", + "Ġ reserved", + "Ġres erved", + "Ġreserve d", + "Ġreserv ed", + "S P", + "Ġ âĢ¦", + "ĠâĢ ¦", + "Å Ĥ", + "Ġsign ific", + "O ff", + "Of f", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "Ġ Ag", + "ĠA g", + "Ġ Just", + "ĠJ ust", + "ĠJu st", + "Ġ Error", + "ĠE rror", + "ĠEr ror", + "ĠErr or", + "Ġin fl", + "Ġinf l", + "a data", + "ad ata", + "ada ta", + "Ġ icon", + "Ġi con", + "Ġic on", + "as ks", + "ask s", + "' '", + "_ LO", + "_L O", + "? .", + "a ccount", + "ac count", + "acc ount", + "acco unt", + "Ġ (*", + "Ġ( *", + "' )ĊĊ", + "') ĊĊ", + "')Ċ Ċ", + "r ap", + "ra p", + "_ var", + "_v ar", + "_va r", + "Ġ FOR", + "ĠF OR", + "ĠFO R", + "Ġ party", + "Ġp arty", + "Ġpart y", + "Ġpar ty", + "Ġ Your", + "ĠY our", + "ĠYou r", + "ĠYo ur", + "c at", + "ca t", + "s try", + "st ry", + "str y", + ". new", + ".n ew", + ".ne w", + "b oot", + "bo ot", + "boo t", + "Ġ Nov", + "ĠN ov", + "ĠNo v", + "Ġ vector", + "Ġv ector", + "Ġve ctor", + "Ġvec tor", + "Ġvect or", + "Ġ normal", + "Ġn ormal", + "Ġnor mal", + "Ġnorm al", + "Ġf urther", + "Ġfur ther", + "Re pository", + "8 00", + "80 0", + "Ġ database", + "Ġd atabase", + "Ġdata base", + "Ġdat abase", + "Ġdatab ase", + "at tle", + "att le", + "Ġ music", + "Ġm usic", + "Ġmus ic", + "Ġmu sic", + "Ġ speed", + "Ġs peed", + "Ġsp eed", + "Ġspe ed", + "Ġ doc", + "Ġd oc", + "Ġdo c", + "p rocess", + "pro cess", + "proc ess", + "IG HT", + "IGH T", + ". parse", + ".p arse", + ".par se", + "Ġ taking", + "Ġt aking", + "Ġta king", + "Ġtak ing", + "Ġ viol", + "Ġv iol", + "Ġvi ol", + "c eed", + "ce ed", + "cee d", + "Ġ After", + "ĠA fter", + "ĠAf ter", + "Ġ forward", + "Ġfor ward", + "Ġ crit", + "Ġc rit", + "Ġcr it", + "Ġcri t", + "\" />Ċ", + "\"/ >Ċ", + "\"/> Ċ", + "r ot", + "ro t", + "Ġ failed", + "Ġf ailed", + "Ġfa iled", + "Ġfail ed", + "e fore", + "ef ore", + "Ġcon cern", + "Ġconc ern", + "Ġconce rn", + "o e", + "b a", + "Ġ sender", + "Ġs ender", + "Ġse nder", + "Ġsend er", + "Ġsen der", + "Ġ term", + "Ġt erm", + "Ġte rm", + "Ġter m", + "h as", + "ha s", + "= \"#", + "=\" #", + "Ġ potential", + "Ġpot ential", + "Ġpotent ial", + "N um", + "Nu m", + "Ġ published", + "Ġp ublished", + "Ġpublish ed", + "Ġpubli shed", + ". close", + ".c lose", + ".cl ose", + "Ġ Image", + "ĠI mage", + "ĠIm age", + "ĠImag e", + "str aint", + "stra int", + "strain t", + "U D", + "Ġ Ob", + "ĠO b", + "Ġ probably", + "Ġprob ably", + "l im", + "li m", + "\" :Ċ", + "\": Ċ", + "ol ume", + "olum e", + "olu me", + "Ġ consum", + "Ġcon sum", + "Ġcons um", + "7 6", + "a gue", + "ag ue", + "agu e", + "ens ions", + "ension s", + "ensi ons", + "Ġinvest ig", + "- year", + "-y ear", + "' );", + "') ;", + "- sm", + "-s m", + "Ġen joy", + "Ġenjo y", + "o rig", + "or ig", + "ori g", + "e ring", + "er ing", + "eri ng", + "erin g", + "c p", + "le ased", + "lease d", + "lea sed", + "p lements", + "pl ements", + "ple ments", + "plement s", + "Ġ returns", + "Ġreturn s", + "p at", + "pa t", + "B O", + "Ġ House", + "ĠH ouse", + "ĠHo use", + "ĠHou se", + ". Label", + ".L abel", + "Ġ weight", + "Ġw eight", + "Ġwe ight", + "Ġweigh t", + "Ġwei ght", + "ig hb", + "igh b", + "Ġ conditions", + "Ġcondition s", + "Ġcond itions", + "Ġ exception", + "Ġex ception", + "Ġexcept ion", + "Ġexce ption", + "d escription", + "de scription", + "des cription", + "Ġ trad", + "Ġt rad", + "Ġtr ad", + "Ġtra d", + "- to", + "-t o", + "Ġ {}", + "Ġ{ }", + "Ġ module", + "Ġm odule", + "Ġmod ule", + "E ND", + "EN D", + ". ap", + ".a p", + ". props", + ".p rops", + ".pro ps", + ".pr ops", + ".prop s", + "Ġ constructor", + "Ġcon structor", + "Ġconstruct or", + "Ġconstr uctor", + "a ves", + "av es", + "ave s", + "Ġ favor", + "Ġf avor", + "Ġfa vor", + "Ġfav or", + "Ġ Now", + "ĠN ow", + "ĠNo w", + "; i", + "Ġ Main", + "ĠM ain", + "ĠMa in", + "ĠMai n", + "_ k", + "e ries", + "er ies", + "erie s", + "eri es", + "âĢĻ ll", + "âĢĻl l", + "trans form", + "ime stamp", + "imest amp", + "P re", + "Pr e", + "Ġ mer", + "Ġm er", + "Ġme r", + ". res", + ".re s", + ".r es", + "s tant", + "st ant", + "sta nt", + "stan t", + "L ocation", + "Lo cation", + "Loc ation", + "_ NAME", + "_N AME", + "Ġ loss", + "Ġl oss", + "Ġlo ss", + "Ġlos s", + "Ġ ĊĊ", + "ĠĊ Ċ", + "n et", + "ne t", + "Ġ engine", + "Ġe ngine", + "Ġeng ine", + "B lock", + "Bl ock", + "Bloc k", + "Blo ck", + "Ġ issues", + "Ġiss ues", + "Ġissue s", + "Ġissu es", + "Ġ parse", + "Ġp arse", + "Ġpar se", + "Ġpars e", + "Ġ Bar", + "ĠB ar", + "ĠBa r", + "Ġ stay", + "Ġst ay", + "Ġsta y", + "Ġ JSON", + "ĠJ SON", + "ĠJS ON", + "Ġ dom", + "Ġd om", + "Ġdo m", + "a irs", + "air s", + "ai rs", + "w ner", + "wn er", + "Ġ lower", + "Ġl ower", + "Ġlo wer", + "Ġlow er", + "\" ,čĊ", + "\", čĊ", + "Ġ Dem", + "ĠD em", + "ĠDe m", + "u fact", + "uf act", + "ufac t", + "Ġ ps", + "Ġp s", + "Ġ perfect", + "Ġper fect", + "Ġperf ect", + "R L", + "Ġ educ", + "Ġe duc", + "Ġed uc", + "Ġedu c", + "l s", + "em ory", + "emo ry", + "ARR ANT", + "u ge", + "ug e", + "Ġ exact", + "Ġex act", + ". key", + ".k ey", + ".ke y", + "al led", + "all ed", + "alle d", + "e ch", + "ec h", + "i ef", + "ie f", + "\\ /", + "o ke", + "ok e", + "Ġ former", + "Ġfor mer", + "Ġform er", + "Ġforme r", + "al loc", + "all oc", + "allo c", + "Ġ six", + "Ġs ix", + "Ġsi x", + "i da", + "id a", + "Ġ margin", + "Ġm argin", + "Ġmar gin", + "Ġmarg in", + "Ġ heart", + "Ġhe art", + "Ġhear t", + "a ld", + "al d", + "p ack", + "pa ck", + "pac k", + ".getElement ById", + "ĠW ARRANT", + "Ġ rather", + "Ġr ather", + "Ġrat her", + "Ġra ther", + "Ġ building", + "Ġbuild ing", + "er man", + "erm an", + "l ice", + "lic e", + "li ce", + "Ġ questions", + "Ġquest ions", + "Ġquestion s", + "Ġquesti ons", + "i zes", + "iz es", + "ize s", + "le ge", + "leg e", + "irect ory", + "irector y", + "Ġ je", + "Ġj e", + "Ġ cas", + "Ġc as", + "Ġca s", + "p rops", + "pr ops", + "pro ps", + "prop s", + "u tf", + "ut f", + "Ġ security", + "Ġs ecurity", + "Ġse curity", + "Ġsec urity", + "Ġ however", + "Ġhow ever", + "w eight", + "we ight", + "wei ght", + "weigh t", + "Ġ inside", + "Ġin side", + "Ġins ide", + "Ġp resident", + "Ġpres ident", + "C har", + "Ch ar", + "Cha r", + "Ġ WITH", + "ĠW ITH", + "ĠWI TH", + ". map", + ".m ap", + ".ma p", + "Ġ graph", + "Ġg raph", + "Ġgr aph", + "Ġgra ph", + "Ġgrap h", + "Ġ tag", + "Ġt ag", + "Ġta g", + "_ status", + "_s tatus", + "_st atus", + "_stat us", + "Ġ attempt", + "Ġat tempt", + "Ġatt empt", + "o pp", + "op p", + "u ses", + "us es", + "use s", + "ĉ const", + "ĉcon st", + "Ġ round", + "Ġr ound", + "Ġro und", + "Ġrou nd", + ", $", + "Ġ friends", + "Ġf riends", + "Ġfri ends", + "Ġfriend s", + "E mail", + "Em ail", + "? >", + "Re source", + "Res ource", + "K EY", + "KE Y", + "o sp", + "os p", + ". query", + ".qu ery", + "Ġ North", + "ĠN orth", + "ĠNor th", + "a bles", + "ab les", + "able s", + "abl es", + "is trib", + "ist rib", + "istr ib", + "_ class", + "_c lass", + "_cl ass", + "el lo", + "ell o", + "T hat", + "Th at", + "Ð º", + "pec ially", + "pecial ly", + "Ġ President", + "ĠP resident", + "ĠPres ident", + "Ġ campaign", + "Ġc ampaign", + "Ġcamp aign", + "Ġ alt", + "Ġa lt", + "Ġal t", + "a rea", + "ar ea", + "are a", + "Ġc hall", + "Ġch all", + "Ġcha ll", + "Ġop port", + "Ġopp ort", + ". Con", + ".C on", + ".Co n", + "Ġ energy", + "Ġe nergy", + "Ġen ergy", + "Ġenerg y", + "Ġener gy", + "l ike", + "li ke", + "lik e", + ". string", + ".s tring", + ".st ring", + ".str ing", + "ing ton", + "ingt on", + ") *", + "y y", + "Ġ profession", + "Ġprof ession", + "Ġprofess ion", + "ir th", + "irt h", + "Ġ seg", + "Ġs eg", + "Ġse g", + "æ ľ", + "Ġ hor", + "Ġh or", + "Ġho r", + "i ers", + "ie rs", + "ier s", + "c an", + "ca n", + "Ġbe hind", + "Ġbeh ind", + "Pro duct", + "Produ ct", + "Prod uct", + "f g", + "Ġ Sk", + "ĠS k", + ". jpg", + ".j pg", + ".jp g", + "? :", + "] ;ĊĊ", + "];Ċ Ċ", + "]; ĊĊ", + "Ġ callback", + "Ġc allback", + "Ġcall back", + "Ġ Http", + "ĠH ttp", + "Ñ Į", + "l ong", + "lo ng", + "lon g", + "M S", + "A TH", + "AT H", + "Ġ raise", + "Ġr aise", + "Ġrais e", + "Ġra ise", + "Ġ wanted", + "Ġw anted", + "Ġwant ed", + "Ġwan ted", + "r own", + "ro wn", + "row n", + "u tor", + "ut or", + "uto r", + "l t", + "] =", + "e line", + "el ine", + "eli ne", + "elin e", + "M A", + "Ġs epar", + "Ġse par", + "Ġsep ar", + "c s", + "s emb", + "se mb", + "sem b", + "D is", + "Di s", + "b serv", + "bs erv", + "Ġ Will", + "ĠW ill", + "ĠWil l", + "ĠWi ll", + "Ġ policy", + "Ġp olicy", + "Ġpol icy", + "Ġpolic y", + "Ġ third", + "Ġth ird", + "Ġthi rd", + "p hone", + "ph one", + "phon e", + "Ġ bed", + "Ġb ed", + "Ġbe d", + "/ g", + ". __", + "._ _", + "Ġ Inc", + "ĠI nc", + "ĠIn c", + "i zing", + "iz ing", + "izi ng", + "izin g", + ". remove", + ".re move", + ".rem ove", + "in stance", + "inst ance", + "instanc e", + ". type", + ".t ype", + ".typ e", + "Ġ serv", + "Ġs erv", + "Ġse rv", + "Ġser v", + "E ach", + "Ġ har", + "Ġh ar", + "Ġha r", + "Ġ Message", + "ĠM essage", + "ĠMess age", + "ĠMes sage", + "( key", + "(k ey", + "SE LECT", + "SEL ECT", + "P os", + "Po s", + ") );čĊ", + ")) ;čĊ", + ")); čĊ", + "Ġre comm", + "Ġrec omm", + "Ġrecom m", + "Ġreco mm", + "Ġ training", + "Ġtr aining", + "Ġtrain ing", + "Ġtra ining", + "Ġtrai ning", + "Ġ Ent", + "ĠE nt", + "ĠEn t", + "Ġ Char", + "ĠC har", + "ĠCh ar", + "ĠCha r", + "i cht", + "ic ht", + "ich t", + "( file", + "(f ile", + "(fi le", + "(fil e", + "Ġ prior", + "Ġp rior", + "Ġpr ior", + "Ġpri or", + "Ġprio r", + "G ame", + "Gam e", + "Ga me", + "Ġ exit", + "Ġe xit", + "Ġex it", + "Param s", + "Par ams", + "Pa rams", + "Para ms", + ". core", + ".c ore", + ".co re", + ".cor e", + "P C", + "n es", + "ne s", + "an ced", + "ance d", + "anc ed", + "( request", + "(re quest", + "(req uest", + "P assword", + "Pass word", + "Pas sword", + "} >Ċ", + "}> Ċ", + "Ġ mag", + "Ġm ag", + "Ġma g", + "Ġ release", + "Ġre lease", + "Ġr elease", + "Ġrel ease", + "Ġrele ase", + "Ġ shall", + "Ġs hall", + "Ġsh all", + "Ġsha ll", + "u dent", + "ud ent", + "ude nt", + "uden t", + "Ġ South", + "ĠS outh", + "ĠSo uth", + "ĠSou th", + "a ndo", + "an do", + "and o", + ": '", + ". TabIndex", + ".Tab Index", + "s k", + "an ner", + "ann er", + "anne r", + "is set", + "iss et", + "isse t", + "Ġ outside", + "Ġout side", + "Ġouts ide", + "l edge", + "le dge", + "led ge", + "Ġ å", + "Ġ Rob", + "ĠR ob", + "ĠRo b", + "Ġ imm", + "Ġi mm", + "Ġim m", + "! Ċ", + "Ġ Web", + "ĠW eb", + "ĠWe b", + "D es", + "De s", + "B C", + "an cial", + "anc ial", + "ancia l", + "R oute", + "Ro ute", + "D ec", + "De c", + "fer ences", + "ference s", + "Ġp urch", + "Ġpur ch", + "Ġpu rch", + "Ġ Model", + "ĠM odel", + "ĠMod el", + "ĠMo del", + "ĠMode l", + "c tor", + "ct or", + "g n", + "_ start", + "_st art", + "_star t", + "_sta rt", + "_ un", + "_u n", + ". *", + "i ses", + "is es", + "ise s", + "Ġ ground", + "Ġg round", + "Ġgr ound", + "Ġgro und", + "Ġgrou nd", + "Ġ unique", + "Ġun ique", + "Ġuniqu e", + "Ġuni que", + "Ġuniq ue", + "Ġbe aut", + "Ġbeau t", + "{ \"", + "Ġ pour", + "Ġp our", + "Ġpo ur", + "Ġpou r", + "Ġ Oct", + "ĠO ct", + "ĠOc t", + "Ġ tree", + "Ġt ree", + "Ġtr ee", + "Ġtre e", + "s ets", + "se ts", + "set s", + "_ res", + "_re s", + "_r es", + "' )->", + "') ->", + "_ reg", + "_re g", + "_r eg", + "( \"\\", + "(\" \\", + "Ġ byte", + "Ġb yte", + "Ġby te", + "Ġbyt e", + "B l", + "Ġ dating", + "Ġd ating", + "Ġda ting", + "Ġdat ing", + "Ġdati ng", + "Ġ matter", + "Ġm atter", + "Ġmat ter", + "Ġmatt er", + "Ġmatte r", + "Ġ Rem", + "ĠR em", + "ĠRe m", + "Ġ' ../", + "Ġ'. ./", + "Ġ'.. /", + "Ġ Aug", + "ĠA ug", + "ĠAu g", + "Ġ La", + "ĠL a", + "Ġ $(", + "Ġ$ (", + "o urnal", + "our nal", + "ourn al", + "1 11", + "11 1", + "i am", + "ia m", + "Ġ shows", + "Ġsh ows", + "Ġshow s", + "Ġsho ws", + "w rite", + "wr ite", + "Ġ ball", + "Ġb all", + "Ġbal l", + "Ġba ll", + "Ġsim ply", + "Ġsimp ly", + "Ġsimpl y", + "Ġ fast", + "Ġf ast", + "Ġfa st", + "Ġfas t", + "Ġ memory", + "Ġm emory", + "Ġmem ory", + "Ġmemor y", + "Ġmemo ry", + "A SS", + "AS S", + "Ġ Of", + "ĠO f", + "o ved", + "ov ed", + "ove d", + "a nte", + "an te", + "ant e", + "a ul", + "au l", + "i stry", + "is try", + "ist ry", + "istr y", + ") ));Ċ", + ")) );Ċ", + "))) ;Ċ", + "))); Ċ", + "Ġ fit", + "Ġf it", + "Ġfi t", + "< string", + "_", + "-> _", + "\" )ĊĊ", + "\") ĊĊ", + "\")Ċ Ċ", + "o x", + "ap plication", + "app lication", + "appl ication", + "Ġ ]Ċ", + "Ġ] Ċ", + "Ċ ĊĊĊĊĊ", + "ĊĊ ĊĊĊĊ", + "ĊĊĊĊ ĊĊ", + "ĊĊĊ ĊĊĊ", + "ĊĊĊĊĊ Ċ", + "1 80", + "18 0", + "Ġ soon", + "Ġs oon", + "Ġso on", + "Ġsoo n", + "ct ions", + "ction s", + "i nger", + "in ger", + "ing er", + "inge r", + "Ġ join", + "Ġj oin", + "Ġjo in", + "Ġ Pe", + "ĠP e", + "Ġ ë", + "Ġ las", + "Ġl as", + "Ġla s", + ". E", + "c ss", + "cs s", + "/ or", + "/o r", + "Ġ Start", + "ĠSt art", + "ĠStar t", + "ĠSta rt", + "Ġ TO", + "ĠT O", + "Ġ subs", + "Ġs ubs", + "Ġsu bs", + "Ġsub s", + "c onn", + "con n", + "co nn", + "com ponents", + "comp onents", + "component s", + "DE BUG", + "qu are", + "qua re", + "F unction", + "Func tion", + "Fun ction", + "en dar", + "end ar", + "enda r", + ". index", + ".in dex", + ".ind ex", + "Ġ fill", + "Ġf ill", + "Ġfil l", + "Ġfi ll", + "Ä Ļ", + "Ġ choose", + "Ġch oose", + "Ġcho ose", + "h ow", + "ho w", + "Ġ America", + "ĠAmeric a", + "ĠAmer ica", + "as sets", + "ass ets", + "asset s", + "asse ts", + "- -----------", + "-- ----------", + "---- --------", + "-------- ----", + "--- ---------", + "----- -------", + "---------- --", + "------ ------", + "----------- -", + "------- -----", + "--------- ---", + "Ġ Value", + "ĠV alue", + "ĠVal ue", + "ĠVa lue", + "Ġ office", + "Ġoff ice", + "Ġoffic e", + "Ġ veh", + "Ġv eh", + "Ġve h", + "Ġ transform", + "Ġtrans form", + "Ġtransf orm", + "Ġ Art", + "ĠA rt", + "ĠAr t", + "Ġ inde", + "Ġin de", + "Ġi nde", + "Ġind e", + "Ġ fn", + "Ġf n", + "Ġ implements", + "Ġim plements", + "Ġimp lements", + "Ġimplement s", + "Ġimpl ements", + "a ngo", + "an go", + "ang o", + "p lete", + "pl ete", + "ple te", + "plet e", + "+ \"", + "t mp", + "tm p", + "am ily", + "ami ly", + "amil y", + "Ġ hash", + "Ġh ash", + "Ġhas h", + "Ġha sh", + "m issions", + "miss ions", + "mission s", + "E ST", + "ES T", + "g t", + "Pro vider", + "Provid er", + "Provide r", + "Prov ider", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "Ġ flag", + "Ġf lag", + "Ġfl ag", + "Ġfla g", + "Ġpart icip", + "Ġpartic ip", + "Ġparti cip", + "d en", + "de n", + "Ġ Returns", + "ĠReturn s", + "Ġ note", + "Ġn ote", + "Ġnot e", + "Ġno te", + "ü r", + "p m", + "id eos", + "ide os", + "ideo s", + "Ġ specified", + "Ġs pecified", + "Ġspec ified", + "Ġ EN", + "ĠE N", + "e ster", + "es ter", + "est er", + "este r", + "o lid", + "ol id", + "oli d", + "Ġ upon", + "Ġu pon", + "Ġup on", + "( std", + "(s td", + "(st d", + "ĉ v", + "Ġ '\\", + "Ġ' \\", + "u z", + "Ġ vert", + "Ġv ert", + "Ġver t", + "Ġve rt", + "Ġv ict", + "Ġvi ct", + "Ġvic t", + "ĉ self", + "ĉs elf", + "ĉse lf", + "Ġ \"$", + "Ġ\" $", + "8 5", + ". k", + "Ġ groups", + "Ġg roups", + "Ġgroup s", + "Ġgro ups", + "Ġgrou ps", + "g ithub", + "git hub", + "l ang", + "la ng", + "lan g", + "Ġ mut", + "Ġm ut", + "Ġmu t", + "T O", + "Ġ ve", + "Ġv e", + "Ġ Please", + "ĠP lease", + "ĠPl ease", + "ĠPle ase", + "; ĊĊĊ", + ";Ċ ĊĊ", + ";ĊĊ Ċ", + "a ccess", + "ac cess", + "acc ess", + "Ġ {\"", + "Ġ{ \"", + "r ea", + "re a", + "Ġ risk", + "Ġr isk", + "Ġris k", + "Ġri sk", + "i cker", + "ic ker", + "ick er", + "og gle", + "ogg le", + "ĉ while", + "A NG", + "AN G", + ". send", + ".s end", + ".se nd", + "7 2", + "Ġ woman", + "Ġw oman", + "Ġwom an", + "Ġwo man", + "Ġ gets", + "Ġg ets", + "Ġget s", + "Ġge ts", + "Ġ ign", + "Ġi gn", + "Ġig n", + "Ġ Id", + "ĠI d", + "_ log", + "_l og", + "_lo g", + "O NE", + "ON E", + "Ġe vid", + "Ġev id", + "Ġ Har", + "ĠH ar", + "ĠHa r", + "_ sub", + "_s ub", + "_su b", + "Ġ endl", + "Ġe ndl", + "Ġen dl", + "Ġend l", + "Ġ included", + "Ġin cluded", + "Ġinclud ed", + "Ġinclude d", + "Ġincl uded", + "Ġinclu ded", + "( ));ĊĊ", + "() );ĊĊ", + "());Ċ Ċ", + "()) ;ĊĊ", + "()); ĊĊ", + "Ġ Ap", + "ĠA p", + "i gr", + "ig r", + "Ġ sem", + "Ġs em", + "Ġse m", + "Ġ Black", + "ĠB lack", + "ĠBl ack", + "d oc", + "do c", + "_ table", + "_t able", + "_tab le", + "_ta ble", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "- up", + "-u p", + "Ġ cause", + "Ġc ause", + "Ġca use", + "Ġcaus e", + "Ġ ..", + "Ġ. .", + "Ġ van", + "Ġv an", + "Ġva n", + "_ dict", + "_d ict", + "_di ct", + "_dic t", + "Ġ focus", + "Ġf ocus", + "Ġfoc us", + "Ġfo cus", + "I ND", + "IN D", + "C ESS", + "CE SS", + "CES S", + ". Log", + ".L og", + ".Lo g", + "Ġ multiple", + "Ġm ultiple", + "Ġmult iple", + "Ġmulti ple", + "Ġmultip le", + "i do", + "id o", + "Ġre gard", + "Ġreg ard", + "- M", + "and ler", + "andle r", + "o urse", + "our se", + "ours e", + "Ġ deg", + "Ġd eg", + "Ġde g", + ". U", + "Ġadd ition", + "Ġad dition", + "Ġv arious", + "Ġvar ious", + "Ġvari ous", + "Ġva rious", + "Ġ receive", + "Ġre ceive", + "Ġrece ive", + "е н", + "еР½", + "Ġ HT", + "ĠH T", + "O bj", + "Ob j", + "D F", + "Ġ increase", + "Ġin crease", + "Ġincre ase", + "Ġincr ease", + "Ġ Open", + "ĠO pen", + "ĠOp en", + "] ;", + "Ġ commit", + "Ġcom mit", + "Ġcomm it", + "? Ċ", + "ateg ories", + "ategor ies", + "ategori es", + "ategorie s", + "atego ries", + "at ory", + "ator y", + "ato ry", + "s hip", + "sh ip", + "shi p", + "Ġ Mich", + "ĠM ich", + "ĠMi ch", + "ĠMic h", + "Ġ html", + "Ġh tml", + "Ġht ml", + "ro mise", + "rom ise", + "Ġ leave", + "Ġle ave", + "Ġstr ateg", + "Ġstrat eg", + "Ġstra teg", + "Ġstrate g", + "a ven", + "av en", + "ave n", + "Ġ Console", + "ĠCon sole", + "ĠCons ole", + "k nown", + "kn own", + "know n", + "- n", + "_ LE", + "_L E", + ". component", + ".com ponent", + ".comp onent", + "Ġ bre", + "Ġb re", + "Ġbr e", + "S ession", + "i ance", + "ia nce", + "ian ce", + "Ġ align", + "Ġal ign", + "Ġali gn", + "type def", + "typ edef", + "typed ef", + "_ result", + "_res ult", + "Ġ WHERE", + "ĠW HERE", + "ĠWH ERE", + ". split", + ".s plit", + ".sp lit", + "Ġ reading", + "Ġre ading", + "Ġread ing", + "FA ULT", + "Ġ clo", + "Ġc lo", + "Ġcl o", + "Ġ notice", + "Ġnot ice", + "_ pr", + "_p r", + "ar ter", + "art er", + "arte r", + "Ġ lock", + "Ġl ock", + "Ġlo ck", + "Ġloc k", + "Ġ standard", + "Ġst andard", + "Ġstand ard", + "e tic", + "et ic", + "eti c", + "el low", + "ell ow", + "ello w", + "Ġ padding", + "Ġp adding", + "Ġpad ding", + "Ġpadd ing", + "Ġ His", + "ĠH is", + "ĠHi s", + "Ġ states", + "Ġst ates", + "Ġstate s", + "Ġstat es", + "Ġsta tes", + "_ cast", + "_c ast", + "_ca st", + "( P", + "a a", + "Ġ internal", + "Ġin ternal", + "Ġint ernal", + "Ġinter nal", + "Ġintern al", + "e an", + "ea n", + "Ġ PRO", + "ĠP RO", + "ĠPR O", + "Ġ Key", + "ĠK ey", + "ĠKe y", + "Ġ especially", + "Ġes pecially", + "Ġespecial ly", + "Ġespec ially", + "m ing", + "min g", + "mi ng", + "Ġ cross", + "Ġc ross", + "Ġcr oss", + "Ġcro ss", + "Ġ national", + "Ġn ational", + "Ġnation al", + "Ġnat ional", + "_ object", + "_obj ect", + "_o bject", + "_ob ject", + "f ilter", + "fil ter", + "filt er", + "Ġ script", + "Ġs cript", + "Ġscr ipt", + "Ġscri pt", + ". update", + ".up date", + "_ i", + "Ġ Assert", + "ĠAs sert", + "ĠAss ert", + "/ core", + "/c ore", + "/co re", + "% %%%", + "%% %%", + "%%% %", + "Ġ problems", + "Ġpro blems", + "Ġproble ms", + "Ġproblem s", + "Ġprob lems", + "Ġprobl ems", + "i stor", + "is tor", + "ist or", + "isto r", + "Ġ .=", + "Ġ. =", + "Ġ arch", + "Ġa rch", + "Ġar ch", + "Ġarc h", + "Ġ written", + "Ġw ritten", + "Ġwrit ten", + "Ġwr itten", + "Ġm ilit", + "Ġmil it", + "Ġmi lit", + "Ġmili t", + "M ENT", + "ME NT", + ". ch", + ".c h", + "c ape", + "ca pe", + "cap e", + "Ġ Mus", + "ĠM us", + "ĠMu s", + "_ config", + "_con fig", + "_conf ig", + "Ġ API", + "ĠA PI", + "ĠAP I", + "f oot", + "fo ot", + "foo t", + "Ġ images", + "Ġim ages", + "Ġimage s", + "Ġimag es", + "Ġima ges", + "e ndl", + "en dl", + "end l", + ". In", + ".I n", + "F irst", + "Fi rst", + "Ġ platform", + "Ġpl atform", + "Ġplat form", + ". prot", + ".p rot", + ".pro t", + ".pr ot", + "O ption", + "Op tion", + "Opt ion", + "s te", + "st e", + "Ġ TODO", + "ĠT ODO", + "ĠTO DO", + "ĠTOD O", + "Ġ force", + "Ġf orce", + "Ġfor ce", + "Ġforc e", + ". cont", + ".c ont", + ".con t", + ".co nt", + "ĉ echo", + "ĉe cho", + "ĠD av", + "ĠDa v", + "P tr", + "Pt r", + "( B", + "R T", + "Ġ Base", + "ĠB ase", + "ĠBa se", + "ĠBas e", + "] ['", + "][ '", + "Ġann ounc", + "Ġanno unc", + "con sole", + "cons ole", + "Ġ Py", + "ĠP y", + "d s", + ". as", + ".a s", + "Ġ prevent", + "Ġpr event", + "Ġpre vent", + "Ġprev ent", + "a pan", + "ap an", + "apa n", + "Ġ {'", + "Ġ{ '", + "} '", + "Ġ dead", + "Ġd ead", + "Ġde ad", + "V AL", + "VA L", + "Q UE", + "QU E", + "******** ****************************************************************", + "**************** ********************************************************", + "******************************** ****************************************", + "**************************************************************** ********", + "************************ ************************************************", + "**************************************** ********************************", + "************************************************ ************************", + "******************************************************** ****************", + "Ġ charg", + "Ġch arg", + "Ġchar g", + "Ġcha rg", + "R eturn", + "Re turn", + "Ret urn", + "Ġ ful", + "Ġf ul", + "Ġfu l", + "d om", + "do m", + "Ġ rules", + "Ġr ules", + "Ġrule s", + "Ġru les", + "Ġ modify", + "Ġmod ify", + "Ġ eval", + "Ġe val", + "Ġev al", + "h am", + "ha m", + "a tement", + "at ement", + "ate ment", + "atem ent", + "\\ <", + "u la", + "ul a", + "= False", + "=F alse", + "R A", + "Ġ contains", + "Ġcon tains", + "Ġcont ains", + "Ġcontain s", + "Ġconta ins", + "7 4", + "Ġ stack", + "Ġst ack", + "Ġsta ck", + "m ar", + "ma r", + "Ġ {}Ċ", + "Ġ{ }Ċ", + "Ġ{} Ċ", + "Ġ undefined", + "Ġun defined", + "Ġund efined", + "Ġundef ined", + "A ss", + "As s", + "Ġ China", + "ĠCh ina", + "ĠChi na", + "ĠChin a", + "v ey", + "ve y", + "* Ċ", + "Ġ playing", + "Ġpl aying", + "Ġplay ing", + "Ġpla ying", + ") /", + "a ctor", + "act or", + "ac tor", + "Ġ bottom", + "Ġb ottom", + "Ġbot tom", + "Ġbott om", + "l ier", + "li er", + "lie r", + "Ġ Number", + "ĠN umber", + "ĠNum ber", + "Ġc ouple", + "Ġco uple", + "Ġcou ple", + "Ġcoup le", + "D C", + "Ġ SO", + "ĠS O", + "g or", + "go r", + ". setText", + ".set Text", + "s uccess", + "su ccess", + "succ ess", + "com mand", + "comm and", + "comma nd", + "F ilter", + "Fil ter", + "Ġ Our", + "ĠO ur", + "ĠOu r", + "_ item", + "_i tem", + "_it em", + "Ġ ctx", + "Ġc tx", + "Ġct x", + "Ġ road", + "Ġr oad", + "Ġro ad", + "V ersion", + "Vers ion", + "c ase", + "ca se", + "cas e", + "u rt", + "ur t", + "av ior", + "avi or", + "y ch", + "yc h", + "semb ly", + "sembl y", + "Ġ Product", + "ĠPro duct", + "ĠProdu ct", + "ĠProd uct", + "Ġ held", + "Ġh eld", + "Ġhe ld", + "Ġhel d", + "a fe", + "af e", + "Ġ includes", + "Ġin cludes", + "Ġinclud es", + "Ġinclude s", + "Ġincl udes", + "Ġinclu des", + "< quote", + "Ġ avoid", + "Ġa void", + "Ġav oid", + "Ġ Fin", + "ĠF in", + "ĠFi n", + "Ġ Mod", + "ĠM od", + "ĠMo d", + "Ġ tab", + "Ġt ab", + "Ġta b", + "a no", + "an o", + "à ±", + "i pping", + "ip ping", + "ipp ing", + "ippi ng", + "- e", + "Ġ insert", + "Ġin sert", + "Ġins ert", + "Ġinser t", + "Ġinse rt", + "t arget", + "tar get", + "c han", + "ch an", + "cha n", + ". Model", + ".M odel", + ".Mod el", + ".Mode l", + "I ME", + "IM E", + "\\ Ċ", + "Ġ machine", + "Ġm achine", + "Ġma chine", + "Ġmach ine", + "a vy", + "av y", + "Ġ NO", + "ĠN O", + "Ġ Inter", + "ĠIn ter", + "ĠInt er", + "Ġ operation", + "Ġo peration", + "Ġop eration", + "Ġoper ation", + "Ġopera tion", + "m odal", + "mod al", + "mo dal", + "T ag", + "Ta g", + "] :", + "Ġ production", + "Ġp roduction", + "Ġpro duction", + "Ġproduct ion", + "Ġprodu ction", + "Ġprod uction", + "Ġ areas", + "Ġa reas", + "Ġare as", + "Ġarea s", + "Ġ ren", + "Ġre n", + "Ġr en", + "_ from", + "_f rom", + "_fr om", + "n bsp", + "nb sp", + "Ġ operator", + "Ġo perator", + "Ġop erator", + "Ġoper ator", + "Ġopera tor", + "m en", + "me n", + "a pped", + "ap ped", + "app ed", + "appe d", + "_ per", + "_p er", + "_pe r", + "z en", + "ze n", + "( \".", + "(\" .", + ". save", + ".s ave", + ".sa ve", + ".sav e", + "=\" {{", + "=\"{ {", + "Ġ tor", + "Ġt or", + "Ġto r", + "( response", + "(res ponse", + "(resp onse", + "Ġc andid", + "Ġcan did", + "Ġcand id", + "Ġ conv", + "Ġcon v", + "Ġco nv", + "a iled", + "ail ed", + "ai led", + "Ġ Lib", + "ĠL ib", + "ĠLi b", + "c omp", + "com p", + "co mp", + "u ra", + "ur a", + "ï¿ ½", + "Ġ Here", + "ĠH ere", + "ĠHe re", + "ĠHer e", + "Ġ argument", + "Ġarg ument", + "h ood", + "ho od", + "hoo d", + "Ġ establish", + "Ġest ablish", + "ograph y", + "ogra phy", + "Ġ onClick", + "Ġon Click", + "amb da", + "Ġ sch", + "Ġs ch", + "Ġsc h", + "Ġ movie", + "Ġm ovie", + "Ġmov ie", + "Ġmo vie", + "Ġ sec", + "Ġs ec", + "Ġse c", + "Ġ activity", + "Ġact ivity", + "Ġactiv ity", + "Ø §", + "Ġ sql", + "Ġs ql", + "Ġsq l", + "_ all", + "_a ll", + "_al l", + "in cip", + "inc ip", + "inci p", + "Ġpro vides", + "Ġprovid es", + "Ġprov ides", + "Ġprovide s", + "Ġ sys", + "Ġs ys", + "Ġsy s", + "a cket", + "ack et", + "ac ket", + "Ġw asn", + "Ġwas n", + "Ġwa sn", + "Ġ uses", + "Ġu ses", + "Ġus es", + "Ġuse s", + "Ġ Function", + "ĠF unction", + "ĠFun ction", + "ĠFunc tion", + ". google", + ".g oogle", + ".go ogle", + "Ġ Result", + "ĠRes ult", + "8 4", + "V isible", + "Vis ible", + "ag ma", + "el come", + "Ġ Sy", + "ĠS y", + "Ġ Cent", + "ĠC ent", + "ĠCe nt", + "AL SE", + "ALS E", + "a ción", + "ac ión", + "aci ón", + "E XT", + "EX T", + "Ġ license", + "Ġl icense", + "Ġlic ense", + "Ġlicens e", + "Ġ Long", + "ĠL ong", + "ĠLo ng", + "ĠLon g", + "Ġ accom", + "Ġacc om", + "Ġac com", + "Ġ ability", + "Ġab ility", + ". height", + ".h eight", + ".he ight", + "Act ive", + "Activ e", + "o logical", + "olog ical", + "ologic al", + "ologi cal", + "o ly", + "ol y", + ") ),", + ")) ,", + ". Se", + ".S e", + "Ġ parameter", + "Ġparam eter", + "Ġpara meter", + "Ġparamet er", + "p rite", + "pr ite", + "prit e", + "pri te", + "AB ILITY", + ". service", + ".s ervice", + ".serv ice", + ".ser vice", + "Ġ Group", + "ĠG roup", + "ĠGr oup", + "ĠGro up", + "_ query", + "_qu ery", + "_que ry", + "Ġ Item", + "ĠI tem", + "ĠIt em", + "i ning", + "in ing", + "ini ng", + "inin g", + "Ġ jud", + "Ġj ud", + "Ġju d", + "i ms", + "im s", + "f ix", + "fi x", + "i nder", + "in der", + "ind er", + "inde r", + "a gram", + "ag ram", + "agra m", + "agr am", + "Ġ functions", + "Ġfunction s", + "Ġfun ctions", + "Ġfunct ions", + "Ġex peri", + "Ġexp eri", + "Ġexper i", + "Ġ Em", + "ĠE m", + "Ġ rot", + "Ġr ot", + "Ġro t", + "Ġ pen", + "Ġp en", + "Ġpe n", + ". btn", + ".b tn", + ".bt n", + "Ġ AS", + "ĠA S", + "# ifdef", + "#if def", + "Ġ choice", + "Ġch oice", + "Ġcho ice", + "Ġ Page", + "ĠP age", + "ĠPa ge", + "ĠPag e", + "_ PRO", + "_P RO", + "_PR O", + "Q U", + "å ı", + "a ntity", + "ant ity", + "anti ty", + " Ń", + "w ords", + "word s", + "wor ds", + "Ġ readonly", + "Ġread only", + "Ġ flex", + "Ġf lex", + "Ġfl ex", + "Ġfle x", + "prot ected", + "protect ed", + "Ġ Any", + "ĠA ny", + "ĠAn y", + "Ġ characters", + "Ġchar acters", + "Ġcharacter s", + "en ced", + "ence d", + "enc ed", + "Ġ July", + "ĠJ uly", + "ĠJul y", + "ĠJu ly", + "i ler", + "il er", + "ile r", + "C ard", + "Car d", + "Ca rd", + "u rance", + "ur ance", + "ura nce", + "uran ce", + "Ġ rev", + "Ġre v", + "Ġr ev", + ". event", + ".e vent", + ".ev ent", + "a ly", + "al y", + "1 30", + "13 0", + "Ġw onder", + "Ġwon der", + "Ġwo nder", + "Ġ Port", + "ĠP ort", + "ĠPo rt", + "ĠPor t", + "Ġ legal", + "Ġl egal", + "Ġle gal", + "Ġleg al", + "r ole", + "ro le", + "rol e", + "Ġ ten", + "Ġt en", + "Ġte n", + "Ġg oes", + "Ġgo es", + "M P", + "wh ite", + ") :čĊ", + "): čĊ", + ") )čĊ", + ")) čĊ", + "Ġ reference", + "Ġre ference", + "Ġref erence", + "Ġrefer ence", + "Ġrefere nce", + "Ġ mis", + "Ġm is", + "Ġmi s", + "Ġ Project", + "ĠPro ject", + "ĠProj ect", + "i cks", + "ic ks", + "ick s", + "> &", + "C ON", + "CO N", + "Ġre pl", + "Ġrep l", + "Ġ regular", + "Ġreg ular", + "Ġregul ar", + "St orage", + "r amework", + "rame work", + "ram ework", + "Ġ goal", + "Ġgo al", + "Ġ touch", + "Ġt ouch", + "Ġto uch", + "Ġtou ch", + ". widget", + ".w idget", + "Ġ built", + "Ġb uilt", + "Ġbu ilt", + "d es", + "de s", + "P art", + "Par t", + "Pa rt", + "( re", + "(r e", + "Ġ worth", + "Ġw orth", + "Ġwor th", + "h ib", + "hi b", + "g ame", + "ga me", + "gam e", + "9 1", + "1 92", + "19 2", + "Ġ в", + "ĠÐ ²", + "a cion", + "ac ion", + "aci on", + "acio n", + "Ġ White", + "ĠWh ite", + "ĠWhit e", + "( type", + "(t ype", + "(typ e", + "( `", + "8 1", + "Ġ natural", + "Ġn atural", + "Ġnatur al", + "Ġnat ural", + "Ġin j", + "Ġi nj", + "Ġ calcul", + "Ġcal cul", + "Ġcalc ul", + "Ġ April", + "ĠApr il", + "ĠAp ril", + ". List", + ".L ist", + "Ġ associated", + "Ġassoci ated", + "Ġassociate d", + "Ġassoc iated", + "ĉ System", + "ĉS ystem", + "~ ~", + "= [", + "Ġ storage", + "Ġst orage", + "Ġstor age", + "Ġsto rage", + "Ġ bytes", + "Ġby tes", + "Ġbyte s", + "Ġbyt es", + "Ġ travel", + "Ġt ravel", + "Ġtr avel", + "Ġtra vel", + "Ġtrav el", + "Ġ sou", + "Ġs ou", + "Ġso u", + "Ġ passed", + "Ġp assed", + "Ġpass ed", + "Ġpas sed", + "Ġpasse d", + "! =", + "a script", + "as cript", + ". open", + ".op en", + ".o pen", + "Ġ grid", + "Ġg rid", + "Ġgr id", + "Ġgri d", + "Ġ bus", + "Ġb us", + "Ġbu s", + "Ġ recogn", + "Ġrec ogn", + "Ġreco gn", + "A b", + "Ġ hon", + "Ġh on", + "Ġho n", + "Ġ Center", + "ĠC enter", + "ĠCent er", + "Ġ prec", + "Ġp rec", + "Ġpr ec", + "Ġpre c", + "b uild", + "bu ild", + "7 3", + "HT ML", + "Ġ San", + "ĠS an", + "ĠSa n", + "Ġ countries", + "Ġc ountries", + "Ġcount ries", + "Ġcoun tries", + "a led", + "al ed", + "ale d", + "t oken", + "to ken", + "tok en", + "k t", + "Ġ qual", + "Ġqu al", + "Ġq ual", + "Ġqua l", + "L ast", + "La st", + "Las t", + "ad ow", + "ado w", + "Ġ manufact", + "Ġman ufact", + "i dad", + "id ad", + "ida d", + "j ango", + "ja ngo", + "jan go", + "jang o", + "N ext", + "Ne xt", + "x f", + ". a", + "Ġ porno", + "Ġp orno", + "Ġporn o", + "Ġpor no", + "Ġ PM", + "ĠP M", + "e rve", + "er ve", + "erv e", + "i ting", + "it ing", + "iti ng", + "itin g", + "_ th", + "_t h", + "c i", + "= None", + "=N one", + "g s", + "Ġ login", + "Ġlo gin", + "Ġlog in", + "at ives", + "ative s", + "ati ves", + "ativ es", + "' ]);Ċ", + "'] );Ċ", + "']) ;Ċ", + "']); Ċ", + "Ä ħ", + "Ġ ill", + "Ġi ll", + "Ġil l", + "I A", + "ch ildren", + "child ren", + "D O", + "Ġ levels", + "Ġlevel s", + "Ġlev els", + "Ġleve ls", + "Ġ {{", + "Ġ{ {", + "Ġ looks", + "Ġl ooks", + "Ġlo oks", + "Ġlook s", + "Ġ \"#", + "Ġ\" #", + "To String", + "ToStr ing", + "Ġ necessary", + "Ġn ecessary", + "Ġnecess ary", + "Ġ ĠĠĊ", + "ĠĠ ĠĊ", + "ĠĠĠ Ċ", + "c ell", + "ce ll", + "cel l", + "En try", + "Ent ry", + "Entr y", + "Ġ '#", + "Ġ' #", + "Ġext rem", + "Ġextr em", + "Se lector", + "Select or", + "Sel ector", + "Sele ctor", + "Ġ placeholder", + "Ġplace holder", + "L oad", + "Lo ad", + "Ġ released", + "Ġre leased", + "Ġrelease d", + "Ġrele ased", + "O RE", + "OR E", + "E numer", + "En umer", + "Enum er", + "Ġ TV", + "ĠT V", + "S ET", + "SE T", + "in q", + "P ress", + "Pr ess", + "Pre ss", + "Pres s", + "Ġ Department", + "ĠDe partment", + "ĠDep artment", + "ĠDepart ment", + "Ġ properties", + "Ġp roperties", + "Ġprop erties", + "Ġproper ties", + "Ġ respond", + "Ġres pond", + "Ġresp ond", + "S earch", + "Se arch", + "Sea rch", + "a el", + "ae l", + "Ġ requ", + "Ġre qu", + "Ġr equ", + "Ġreq u", + "Ġ Book", + "ĠB ook", + "ĠBo ok", + "ĠBoo k", + "/ Ċ", + "( st", + "(s t", + "Ġ financial", + "Ġfin ancial", + "Ġfinanc ial", + "Ġfinan cial", + "i cket", + "ic ket", + "ick et", + "_ input", + "_in put", + "_inp ut", + "Ġ threat", + "Ġth reat", + "Ġthr eat", + "( in", + "(i n", + "S trip", + "St rip", + "Str ip", + "ì Ŀ", + "ç ão", + "7 1", + "Ġe vidence", + "Ġev idence", + "Ġevid ence", + ") );", + ")) ;", + "Ġ Bro", + "ĠB ro", + "ĠBr o", + "Ġ [];Ċ", + "Ġ[ ];Ċ", + "Ġ[] ;Ċ", + "Ġ[]; Ċ", + "Ġ ou", + "Ġo u", + "b uf", + "bu f", + "S cript", + "Scr ipt", + "d at", + "da t", + "Ġ rule", + "Ġr ule", + "Ġru le", + "# import", + "= \"/", + "=\" /", + "S erial", + "Se rial", + "Ser ial", + "Ġ starting", + "Ġstart ing", + "Ġstar ting", + "[ index", + "[in dex", + "[ind ex", + "a e", + "Ġ contrib", + "Ġcon trib", + "Ġcont rib", + "Ġcontr ib", + "s ession", + "sess ion", + "_ new", + "_n ew", + "_ne w", + "u table", + "ut able", + "uta ble", + "o ber", + "ob er", + "obe r", + "Ġ \"./", + "Ġ\" ./", + "Ġ\". /", + "Ġ logger", + "Ġlo gger", + "Ġlog ger", + "Ġrec ently", + "Ġrecent ly", + "Ġ returned", + "Ġre turned", + "Ġreturn ed", + "č čĊ", + ") ))Ċ", + ")) )Ċ", + "))) Ċ", + "it ions", + "ition s", + "iti ons", + "Ġ seek", + "Ġse ek", + "Ġsee k", + "Ġ communic", + "Ġcomm unic", + "Ġcommun ic", + "Ġ \".", + "Ġ\" .", + "Ġ username", + "Ġuser name", + "Ġusern ame", + "E CT", + "EC T", + "D S", + "Ġ otherwise", + "Ġother wise", + "Ġ German", + "ĠG erman", + "ĠGer man", + "ĠGerm an", + ". aw", + ".a w", + "Ad apter", + "Ada pter", + "ix el", + "ixe l", + "Ġ systems", + "Ġs ystems", + "Ġsystem s", + "Ġsys tems", + "Ġsyst ems", + "Ġ drop", + "Ġd rop", + "Ġdr op", + "Ġdro p", + "8 3", + "Ġ structure", + "Ġstruct ure", + "Ġ $(\"#", + "Ġ$ (\"#", + "Ġ$( \"#", + "Ġ$(\" #", + "en cies", + "enc ies", + "enci es", + "an ning", + "ann ing", + "anni ng", + "Ġ Link", + "ĠL ink", + "ĠLin k", + "ĠLi nk", + "Ġ Response", + "ĠRes ponse", + "ĠRespons e", + "ĠResp onse", + "Ġ stri", + "Ġs tri", + "Ġst ri", + "Ġstr i", + "Å ¼", + "Ġ DB", + "ĠD B", + "æ Ĺ", + "and roid", + "andro id", + "andr oid", + "sub mit", + "o tion", + "ot ion", + "oti on", + "9 2", + "( @", + ". test", + ".t est", + ".te st", + "8 2", + "Ċ ĊĊĊĊĊĊĊ", + "ĊĊ ĊĊĊĊĊĊ", + "ĊĊĊĊ ĊĊĊĊ", + "ĊĊĊ ĊĊĊĊĊ", + "ĊĊĊĊĊĊ ĊĊ", + "ĊĊĊĊĊ ĊĊĊ", + "ĊĊĊĊĊĊĊ Ċ", + "] ;čĊ", + "]; čĊ", + "Ġdirect ly", + "Ġ \"%", + "Ġ\" %", + "r is", + "ri s", + "el ta", + "elt a", + "A IL", + "AI L", + ") {čĊ", + "){ čĊ", + "m ine", + "min e", + "mi ne", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "( k", + "b on", + "bo n", + "a sic", + "as ic", + "asi c", + "p ite", + "pi te", + "pit e", + "_ __", + "__ _", + "M ax", + "Ma x", + "Ġ errors", + "Ġerror s", + "Ġerr ors", + "Ġer rors", + "Ġerro rs", + "Ġ While", + "ĠWh ile", + "Ġ arguments", + "Ġarg uments", + "Ġargument s", + "Ġ ensure", + "Ġen sure", + "Ġens ure", + "R ight", + "- based", + "-b ased", + "-base d", + "W eb", + "We b", + "Ġ -=", + "Ġ- =", + "Ġint rodu", + "Ġintr odu", + "Ġintro du", + "Ġ Inst", + "ĠI nst", + "ĠIn st", + "ĠIns t", + "ĠW ash", + "ĠWas h", + "ĠWa sh", + "or din", + "ord in", + "j oin", + "jo in", + "D atabase", + "Data base", + "Dat abase", + "Ġ grad", + "Ġg rad", + "Ġgr ad", + "Ġgra d", + "Ġ usually", + "Ġus ually", + "Ġusual ly", + "Ġusu ally", + "I TE", + "IT E", + "P rops", + "Pro ps", + "Prop s", + "Pr ops", + "? >Ċ", + "?> Ċ", + "Ġ Go", + "ĠG o", + "@ Override", + "R EF", + "RE F", + "Ġ ip", + "Ġi p", + "ĠA ustral", + "ĠAust ral", + "ĠAu stral", + "ĠAustr al", + "Ġ ist", + "Ġis t", + "Ġi st", + "View ById", + "Ġ serious", + "Ġse rious", + "Ġser ious", + "Ġseri ous", + "Ġ customer", + "Ġc ustomer", + "Ġcustom er", + "Ġcust omer", + ". prototype", + ".prot otype", + ".proto type", + "o do", + "od o", + "c or", + "co r", + "Ġ door", + "Ġd oor", + "Ġdo or", + "Ġ WITHOUT", + "ĠWITH OUT", + "Ġ plant", + "Ġp lant", + "Ġpl ant", + "Ġplan t", + "Ġpla nt", + "Ġb egan", + "Ġbe gan", + "Ġbeg an", + "Ġ distance", + "Ġd istance", + "Ġdist ance", + "Ġdi stance", + "( )).", + "() ).", + "()) .", + "Ġch ance", + "Ġcha nce", + "Ġchan ce", + "Ġ ord", + "Ġo rd", + "Ġor d", + "c ame", + "ca me", + "cam e", + "pr agma", + "Ġ protect", + "Ġprot ect", + "Ġprote ct", + "r agment", + "ra gment", + "rag ment", + "Ġ Node", + "ĠN ode", + "ĠNo de", + "e ning", + "en ing", + "eni ng", + "enin g", + "Ñ ĩ", + "Ġ route", + "Ġr oute", + "Ġro ute", + "Ġrout e", + "Ġrou te", + "Ġ School", + "ĠS chool", + "ĠSch ool", + "ĠScho ol", + "h i", + "Ġne ighb", + "Ġneigh b", + "A fter", + "Af ter", + "l icit", + "lic it", + "li cit", + "Ġ contr", + "Ġcon tr", + "Ġcont r", + "Ġ primary", + "Ġpr imary", + "Ġprim ary", + "Ġpri mary", + "Ġprima ry", + "A A", + ".Write Line", + "ut ils", + "util s", + "uti ls", + "Ġ bi", + "Ġb i", + "R ed", + "Re d", + ".L inq", + ". object", + ".o bject", + ".obj ect", + ".ob ject", + "Ġ leaders", + "Ġle aders", + "Ġlead ers", + "Ġleader s", + "un ities", + "unit ies", + "uni ties", + "Ġ gun", + "Ġg un", + "Ġgu n", + "o nth", + "on th", + "ont h", + "Ġ Dev", + "ĠD ev", + "ĠDe v", + "F ILE", + "FI LE", + "Ġ comments", + "Ġcom ments", + "Ġcomm ents", + "Ġcomment s", + "Ġcomme nts", + "_ len", + "_l en", + "_le n", + "ar row", + "arr ow", + "arro w", + "a mount", + "am ount", + "amo unt", + "R ange", + "Ra nge", + "s ert", + "se rt", + "ser t", + "Grid View", + "Ġ updated", + "Ġup dated", + "Ġupdate d", + "Ġupd ated", + "Ġ Mo", + "ĠM o", + "Ġ inform", + "Ġin form", + "Ġinfo rm", + "Ġinf orm", + "oci ety", + "a la", + "al a", + "A ccess", + "Ac cess", + "Acc ess", + "Ġ hab", + "Ġh ab", + "Ġha b", + "Ġ creat", + "Ġc reat", + "Ġcr eat", + "Ġcre at", + "Ġcrea t", + "_ arg", + "_a rg", + "_ar g", + "Ġ January", + "ĠJan uary", + "Ġ Day", + "ĠD ay", + "ĠDa y", + "\" )čĊ", + "\") čĊ", + "u ple", + "up le", + "d ocument", + "doc ument", + "gor ith", + "gorit h", + "m enu", + "me nu", + "men u", + "Ġ Over", + "ĠO ver", + "ĠOv er", + "b b", + ". title", + ".t itle", + "_ out", + "_o ut", + "Ġ led", + "Ġl ed", + "Ġle d", + "u ri", + "ur i", + "Ġ ?> < /", + "g l", + "Ġ bank", + "Ġb ank", + "Ġban k", + "Ġba nk", + "ay ment", + "ĉ printf", + "ĉprint f", + "M D", + "Ġ sample", + "Ġs ample", + "Ġsam ple", + "Ġsamp le", + "Ġ hands", + "Ġh ands", + "Ġhand s", + "Ġha nds", + "Ġhan ds", + "Ġ Version", + "ĠV ersion", + "ĠVers ion", + "u ario", + "ua rio", + "uar io", + "Ġ offers", + "Ġof fers", + "Ġoff ers", + "Ġoffer s", + "ity Engine", + "Ġ shape", + "Ġs hape", + "Ġsh ape", + "Ġsha pe", + "Ġ sleep", + "Ġs leep", + "Ġsle ep", + "Ġslee p", + "_ point", + "_p oint", + "_po int", + "S ettings", + "Set tings", + "Setting s", + "Ġ achie", + "Ġa chie", + "Ġach ie", + "Ġ sold", + "Ġs old", + "Ġso ld", + "Ġsol d", + "o ta", + "ot a", + ". bind", + ".b ind", + ".bin d", + ".bi nd", + "A m", + "Ġ safe", + "Ġs afe", + "Ġsa fe", + "Ġsaf e", + "St ore", + "Ġ shared", + "Ġsh ared", + "Ġshare d", + "Ġsha red", + "Ġshar ed", + "Ġ priv", + "Ġp riv", + "Ġpr iv", + "Ġpri v", + "_ VAL", + "_V AL", + "Ġs ens", + "Ġse ns", + "Ġsen s", + ") {", + "Ġ remember", + "Ġre member", + "Ġrem ember", + "sh ared", + "sha red", + "share d", + "e lement", + "el ement", + "ele ment", + "elem ent", + "Ġ shoot", + "Ġs hoot", + "Ġsh oot", + "Ġsho ot", + "V ert", + "Ver t", + "Ve rt", + "c out", + "co ut", + "cou t", + "Ġ env", + "Ġe nv", + "Ġen v", + "_ label", + "_l abel", + "_lab el", + "_la bel", + "Ġ >Ċ", + "Ġ> Ċ", + "r un", + "ru n", + "Ġ scene", + "Ġs cene", + "Ġsc ene", + "Ġscen e", + "Ġsce ne", + "( array", + "(a rray", + "(arr ay", + "(ar ray", + "d evice", + "de vice", + "dev ice", + "_ title", + "_t itle", + "_ti tle", + "a gon", + "ag on", + "ago n", + "] čĊ", + "a by", + "ab y", + "Ġbe came", + "Ġbec ame", + "bo olean", + "bool ean", + "boo lean", + "Ġ park", + "Ġp ark", + "Ġpar k", + "Ġpa rk", + "Ġ Code", + "ĠC ode", + "ĠCo de", + "ĠCod e", + "up load", + "r iday", + "ri day", + "rid ay", + "Ġ September", + "ĠSept ember", + "ĠSep tember", + "F e", + "Ġ sen", + "Ġs en", + "Ġse n", + "c ing", + "ci ng", + "cin g", + "F L", + "C ol", + "Co l", + "u ts", + "ut s", + "_ page", + "_p age", + "_pag e", + "_pa ge", + "i nn", + "in n", + "Ġim plied", + "Ġimp lied", + "Ġimpl ied", + "a ling", + "al ing", + "ali ng", + "alin g", + "Ġyour self", + "Ġyours elf", + ". Count", + ".C ount", + ".Co unt", + "con f", + "co nf", + "Ġ aud", + "Ġa ud", + "Ġau d", + "_ init", + "_in it", + "_i nit", + "_ini t", + ". )", + "Ġw rote", + "Ġwr ote", + "0 03", + "00 3", + "N G", + ". Error", + ".E rror", + ".Err or", + "ä »", + ". for", + ".f or", + "Ġ equal", + "Ġe qual", + "Ġequ al", + "Ġeq ual", + "Ġ Request", + "ĠRe quest", + "ĠReq uest", + "Ġ serial", + "Ġs erial", + "Ġse rial", + "Ġser ial", + "Ġseria l", + "Ġseri al", + "Ġ allows", + "Ġall ows", + "Ġallow s", + "Ġallo ws", + "X X", + "Ġ middle", + "Ġm iddle", + "Ġmid dle", + "Ġmidd le", + "c hor", + "ch or", + "cho r", + "1 95", + "19 5", + "9 4", + "à ¸", + "er val", + "erv al", + "erva l", + ". Column", + ".C olumn", + ".Col umn", + "re ading", + "read ing", + "rea ding", + "Ġ escort", + "Ġesc ort", + "Ġ August", + "ĠAug ust", + "Ġquick ly", + "Ġwe ap", + "Ġ CG", + "ĠC G", + "ro pri", + "rop ri", + "h o", + "Ġ cop", + "Ġc op", + "Ġco p", + "( struct", + "(str uct", + "Ġ Big", + "ĠB ig", + "ĠBi g", + "Ġ vs", + "Ġv s", + "Ġf requ", + "Ġfr equ", + "Ġfre qu", + "Ġfreq u", + ". Value", + ".V alue", + ".Val ue", + "Ġ actions", + "Ġa ctions", + "Ġact ions", + "Ġaction s", + "Ġ proper", + "Ġpro per", + "Ġpr oper", + "Ġprop er", + "Ġ inn", + "Ġin n", + "Ġi nn", + "Ġ objects", + "Ġobject s", + "Ġobj ects", + "Ġ matrix", + "Ġm atrix", + "Ġmat rix", + "av ascript", + "ava script", + "Ġ ones", + "Ġo nes", + "Ġon es", + "Ġone s", + ". group", + ".g roup", + ".gr oup", + "Ġ green", + "Ġg reen", + "Ġgr een", + "Ġgre en", + "Ġ paint", + "Ġp aint", + "Ġpain t", + "Ġpa int", + "Ġpai nt", + "o ols", + "ool s", + "oo ls", + "y cl", + "yc l", + "en code", + "enc ode", + "enco de", + "o lt", + "ol t", + "com ment", + "comm ent", + ". api", + ".ap i", + ".a pi", + "D ir", + "Di r", + "Ġ une", + "Ġu ne", + "Ġun e", + "iz ont", + "izon t", + "izo nt", + ". position", + ".p osition", + ".pos ition", + "Ġde signed", + "Ġdes igned", + "Ġdesign ed", + "_ val", + "_v al", + "_va l", + "a vi", + "av i", + "i ring", + "ir ing", + "iri ng", + "t ab", + "ta b", + "Ġ layer", + "Ġl ayer", + "Ġla yer", + "Ġlay er", + "Ġ views", + "Ġview s", + "Ġvi ews", + "Ġvie ws", + "Ġ reve", + "Ġre ve", + "Ġr eve", + "Ġrev e", + "r ael", + "ra el", + "Ġ ON", + "ĠO N", + "r ics", + "ri cs", + "ric s", + "1 60", + "16 0", + "n p", + "Ġ core", + "Ġc ore", + "Ġco re", + "Ġcor e", + "( ));čĊ", + "() );čĊ", + "()) ;čĊ", + "()); čĊ", + "M ain", + "Ma in", + "Ġ expert", + "Ġex pert", + "Ġexp ert", + "Ġexper t", + "ĉ ĉčĊ", + "ĉĉ čĊ", + "_ en", + "_e n", + "Ġ />", + "Ġ/ >", + "ut ter", + "utt er", + "I AL", + "IA L", + "a ils", + "ail s", + "ai ls", + "Ġ King", + "ĠK ing", + "ĠKi ng", + "ĠKin g", + "* /ĊĊ", + "*/ ĊĊ", + "*/Ċ Ċ", + "Ġ Met", + "ĠM et", + "ĠMe t", + "_ end", + "_e nd", + "_en d", + "ad dr", + "add r", + "o ra", + "or a", + "Ġ ir", + "Ġi r", + "M in", + "Mi n", + "Ġsur pr", + "Ġre pe", + "Ġrep e", + "Ġ directory", + "Ġd irectory", + "Ġdirect ory", + "Ġdirector y", + "P UT", + "PU T", + "- S", + "Ġ election", + "Ġe lection", + "Ġel ection", + "Ġelect ion", + "Ġele ction", + "h aps", + "ha ps", + "hap s", + ". pre", + ".p re", + ".pr e", + "c m", + "Value s", + "Val ues", + "Ġ \"Ċ", + "Ġ\" Ċ", + "c olumn", + "col umn", + "i vil", + "iv il", + "ivi l", + "Log in", + "Lo gin", + "in ue", + "inu e", + "9 3", + "Ġ beautiful", + "Ġbe autiful", + "Ġbeaut iful", + "Ġ secret", + "Ġs ecret", + "Ġse cret", + "Ġsec ret", + "Ġsecre t", + "( event", + "(e vent", + "(ev ent", + "Ġ chat", + "Ġc hat", + "Ġch at", + "Ġcha t", + "u ms", + "um s", + "Ġ origin", + "Ġor igin", + "Ġorig in", + "Ġori gin", + "Ġ effects", + "Ġe ffects", + "Ġeffect s", + "Ġeff ects", + "Ġ management", + "Ġman agement", + "Ġmanage ment", + "Ġmana gement", + "i lla", + "il la", + "ill a", + "t k", + "Ġ setting", + "Ġs etting", + "Ġset ting", + "Ġsett ing", + "Ġ Cour", + "ĠC our", + "ĠCo ur", + "ĠCou r", + "Ġ massage", + "Ġm assage", + "Ġmass age", + "Ġmas sage", + "Ġmassa ge", + "ĉ end", + "ĉe nd", + "ĉen d", + "Ġ happy", + "Ġh appy", + "Ġhapp y", + "Ġha ppy", + "Ġhap py", + "Ġ finish", + "Ġf inish", + "Ġfin ish", + "Ġfi nish", + "Ġ camera", + "Ġc amera", + "Ġcame ra", + "Ġcam era", + "Ġcamer a", + "Ġ Ver", + "ĠV er", + "ĠVe r", + "ĠDem ocr", + "ĠDemo cr", + "Ġ Her", + "ĠH er", + "ĠHe r", + "( Q", + "c ons", + "con s", + "co ns", + "i ta", + "it a", + "Ġ '.", + "Ġ' .", + "{ }", + "ĉ C", + "Ġ stuff", + "Ġst uff", + "Ġstu ff", + "1 94", + "19 4", + "Ġ :Ċ", + "Ġ: Ċ", + "Ġ AR", + "ĠA R", + "T ask", + "Ta sk", + "h idden", + "hi dden", + "hid den", + "e ros", + "er os", + "ero s", + "I GN", + "IG N", + "at io", + "ati o", + "Ġ Health", + "ĠHe alth", + "ĠHeal th", + "ol ute", + "olut e", + "olu te", + "En ter", + "Ent er", + "' >", + "Ġ Twitter", + "ĠT witter", + "ĠTw itter", + "Ġ County", + "ĠC ounty", + "ĠCount y", + "ĠCou nty", + "ĠCoun ty", + "s cribe", + "scri be", + "scr ibe", + "Ġ= >Ċ", + "Ġ=> Ċ", + "Ġ hy", + "Ġh y", + "f it", + "fi t", + "Ġm ilitary", + "Ġmilit ary", + "Ġmil itary", + "Ġmilitar y", + "Ġ sale", + "Ġs ale", + "Ġsa le", + "Ġsal e", + "re quired", + "require d", + "requ ired", + "n on", + "no n", + "boot strap", + "h old", + "ho ld", + "hol d", + "r im", + "ri m", + "- old", + "-o ld", + "Ġ Down", + "ĠD own", + "ĠDo wn", + "ĠDow n", + "Ġ mention", + "Ġm ention", + "Ġmen tion", + "Ġment ion", + "cont act", + "_ group", + "_g roup", + "_gr oup", + "o day", + "od ay", + "oda y", + "Ġ town", + "Ġt own", + "Ġto wn", + "Ġtow n", + "Ġ solution", + "Ġs olution", + "Ġsol ution", + "u ate", + "ua te", + "uat e", + "el ling", + "ell ing", + "elli ng", + "] ->", + "]- >", + "o tes", + "ot es", + "ote s", + "en tal", + "ent al", + "enta l", + "o men", + "om en", + "ome n", + "osp ital", + "Ġ Sup", + "ĠS up", + "ĠSu p", + "_ EN", + "_E N", + "Ġ slow", + "Ġs low", + "Ġsl ow", + "Ġslo w", + "SE SSION", + "SES SION", + "Ġ blue", + "Ġb lue", + "Ġbl ue", + "a go", + "ag o", + "Ġl ives", + "Ġli ves", + "Ġlive s", + "Ġliv es", + "Ġ ^", + ". un", + ".u n", + "i nst", + "in st", + "ins t", + "e nge", + "en ge", + "eng e", + "Ġ customers", + "Ġcustom ers", + "Ġcustomer s", + "Ġcust omers", + "Ġ cast", + "Ġc ast", + "Ġca st", + "Ġcas t", + "ud get", + "udge t", + "ï¼ ģ", + "ic ens", + "ice ns", + "Ġd etermin", + "Ġde termin", + "Ġdeter min", + "Ġdeterm in", + "Se lected", + "Select ed", + "Sel ected", + "_ pl", + "_p l", + "ue ue", + "Ġ dark", + "Ġd ark", + "Ġda rk", + "Ġdar k", + "/ /ĊĊ", + "// ĊĊ", + "//Ċ Ċ", + "s i", + "th ern", + "ther n", + "the rn", + "Ġ Japan", + "ĠJ apan", + "ĠJa pan", + "ĠJap an", + "/ w", + "P U", + "Ġ East", + "ĠE ast", + "ĠEa st", + "o vie", + "ov ie", + "ovi e", + "Ġ package", + "Ġp ackage", + "Ġpack age", + "Ġ nor", + "Ġn or", + "Ġno r", + "Ġ api", + "Ġa pi", + "Ġap i", + "b ot", + "bo t", + "\" ];Ċ", + "\"] ;Ċ", + "\"]; Ċ", + "_ post", + "_p ost", + "_pos t", + "_po st", + "u late", + "ul ate", + "ula te", + "Ġ club", + "Ġc lub", + "Ġcl ub", + "' ));Ċ", + "') );Ċ", + "')) ;Ċ", + "')); Ċ", + "Ġ loop", + "Ġl oop", + "Ġlo op", + "P IO", + "PI O", + "i one", + "ion e", + "io ne", + "s hot", + "sh ot", + "In itial", + "Init ial", + "Ġ played", + "Ġpl ayed", + "Ġplay ed", + "reg ister", + "regist er", + "r ought", + "ro ught", + "rou ght", + "rough t", + "_ max", + "_m ax", + "_ma x", + "ace ment", + "ac ement", + "m atch", + "mat ch", + "raph ics", + "raphic s", + "A ST", + "AS T", + "Ġ existing", + "Ġex isting", + "Ġexist ing", + "Ġ complex", + "Ġcom plex", + "Ġcomp lex", + "Ġcomple x", + "Ġcompl ex", + "D A", + ". Ch", + ".C h", + ". common", + ".com mon", + ".comm on", + "m o", + "Ġ' ../../", + "Ġ'../ ../", + "Ġ'.. /../", + "i to", + "it o", + "Ġ analysis", + "Ġan alysis", + "Ġanal ysis", + "Ġanaly sis", + "Ġanalys is", + "Ġ deliver", + "Ġdel iver", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĊ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ċ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĊ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĊ", + "i dx", + "id x", + "à ł", + "o ngo", + "on go", + "ong o", + "Ġ English", + "ĠEng lish", + "ĠEngl ish", + "< !--", + " \";Ċ", + ">\" ;Ċ", + ">\"; Ċ", + "_ UN", + "_U N", + "ĉ std", + "ĉs td", + "ĉst d", + "o ded", + "od ed", + "ode d", + "Ġ calls", + "Ġc alls", + "Ġcall s", + "Ġcal ls", + "h ere", + "he re", + "her e", + "R el", + "Re l", + "Ġ brand", + "Ġb rand", + "Ġbr and", + "Ġbra nd", + "Ġbran d", + "back ground", + "g a", + "_ address", + "_add ress", + "_addr ess", + "_ad dress", + "_ params", + "_param s", + "_par ams", + "_para ms", + "_pa rams", + "C ategory", + "1 03", + "10 3", + "Ġ India", + "ĠIn dia", + "ĠInd ia", + "ĠIndi a", + "_ event", + "_e vent", + "_ev ent", + "_even t", + "Ġ ing", + "Ġin g", + "Ġi ng", + "R ender", + "Re nder", + "Ren der", + ". cl", + ".c l", + "um py", + "ump y", + "Ġ pet", + "Ġp et", + "Ġpe t", + "F C", + "Ġ Ant", + "ĠA nt", + "ĠAn t", + "E xt", + "Ex t", + "Ġ charge", + "Ġch arge", + "Ġchar ge", + "Ġcharg e", + "e ned", + "en ed", + "ene d", + "g rad", + "gr ad", + "gra d", + "E O", + "Ġ depend", + "Ġd epend", + "Ġde pend", + "Ġdep end", + "Ġ .ĊĊ", + "Ġ. ĊĊ", + "Ġ.Ċ Ċ", + "f rame", + "fr ame", + "fra me", + "fram e", + "Ġ df", + "Ġd f", + "Ġ huge", + "Ġh uge", + "Ġhug e", + "Ġhu ge", + "Ġ PART", + "ĠP ART", + "ĠPA RT", + "ĠPAR T", + "e ds", + "ed s", + "; ;", + "Ġ AM", + "ĠA M", + "Ġ basic", + "Ġb asic", + "Ġbas ic", + "Ġba sic", + "Ġ Let", + "ĠL et", + "ĠLe t", + "l ich", + "lic h", + "li ch", + "Ġ arm", + "Ġa rm", + "Ġar m", + "Ġ star", + "Ġs tar", + "Ġst ar", + "Ġsta r", + "Ġf ederal", + "Ġfed eral", + "Ġfeder al", + "W ork", + "Wo rk", + "Ġ carry", + "Ġc arry", + "Ġcar ry", + "Ġcarr y", + "Ġ Israel", + "ĠIs rael", + "( obj", + "(o bj", + "(ob j", + "= {{", + "={ {", + "Ġ saved", + "Ġs aved", + "Ġsa ved", + "Ġsave d", + "Ġsav ed", + "Ġ syn", + "Ġs yn", + "Ġsy n", + "Ġ constant", + "Ġcon stant", + "Ġconst ant", + "Ġcons tant", + "V ENT", + "VE NT", + "VEN T", + "Ġ positive", + "Ġpos itive", + "Ġposit ive", + "Ġ conduct", + "Ġcon duct", + "Ġcond uct", + "Ġconduc t", + "Ġcondu ct", + "Ġ skin", + "Ġs kin", + "Ġsk in", + "Ġski n", + "Ġear lier", + "Ġ layout", + "Ġl ayout", + "Ġlay out", + "Ġ IP", + "ĠI P", + "O UR", + "OU R", + "Ġ tim", + "Ġt im", + "Ġti m", + "style sheet", + "styles heet", + "_ cl", + "_c l", + "Ġ Card", + "ĠC ard", + "ĠCar d", + "ĠCa rd", + "++ ){Ċ", + "++) {Ċ", + "++){ Ċ", + "Ġtem per", + "Ġtemp er", + "Ġ David", + "ĠD avid", + "ĠDav id", + "ĠDa vid", + "ĉ try", + "ĉt ry", + "ĉtr y", + ". dart", + ".d art", + ".da rt", + "Ġw ants", + "Ġwant s", + "Ġwa nts", + "Ġwan ts", + "Ġ picture", + "Ġp icture", + "Ġpic ture", + "Ġpict ure", + "Ġ videos", + "Ġv ideos", + "Ġvideo s", + "Ġvid eos", + "Ġvide os", + "Ġ Comm", + "ĠC omm", + "ĠCom m", + "ĠCo mm", + "is ions", + "ision s", + "isi ons", + "_ MAX", + "_M AX", + "_MA X", + "M apping", + "Map ping", + "Ma pping", + "- content", + "-c ontent", + "-con tent", + "-cont ent", + "Ġ Ear", + "ĠE ar", + "ĠEa r", + "- de", + "-d e", + "Ġp rem", + "Ġpr em", + "Ġpre m", + "b ruary", + "br uary", + "bru ary", + "bruar y", + "Ġ components", + "Ġcom ponents", + "Ġcomp onents", + "Ġcomponent s", + "Ġthrough out", + "Ġ pull", + "Ġp ull", + "Ġpul l", + "Ġpu ll", + "Ġ pages", + "Ġp ages", + "Ġpage s", + "Ġpa ges", + "Ġpag es", + "e nte", + "en te", + "ent e", + "res pond", + "resp ond", + "Ġ gas", + "Ġg as", + "Ġga s", + "cript or", + "Ġ edge", + "Ġe dge", + "Ġed ge", + "Ġ bound", + "Ġb ound", + "Ġbo und", + "Ġbou nd", + "A CT", + "AC T", + "* *****", + "** ****", + "**** **", + "*** ***", + "***** *", + "Ġ creating", + "Ġc reating", + "Ġcr eating", + "Ġcre ating", + "Ġcreat ing", + "Ġcrea ting", + "Ġ CH", + "ĠC H", + "Ġ nullptr", + "Ġnull ptr", + "B r", + "+ '", + ". co", + ".c o", + "> ::", + ">: :", + "Ġ learning", + "Ġl earning", + "Ġle arning", + "Ġlearn ing", + "Ġlear ning", + ". Length", + ".L ength", + ".Le ngth", + ".Len gth", + "_ SH", + "_S H", + "Ġ patients", + "Ġpat ients", + "Ġpatient s", + "A IN", + "AI N", + "Ġ kids", + "Ġk ids", + "Ġkid s", + "Ġki ds", + "Ġ comfort", + "Ġcom fort", + "Ġ shown", + "Ġsh own", + "Ġshow n", + "Ġsho wn", + "ug ins", + "ugin s", + "ugi ns", + "Ġ Back", + "ĠB ack", + "ĠBa ck", + "ĠBac k", + "e lla", + "el la", + "ell a", + "_ CL", + "_C L", + "Ġ lat", + "Ġl at", + "Ġla t", + "Ġ dispatch", + "Ġdis patch", + "Ġdisp atch", + "Ġ classes", + "Ġc lasses", + "Ġclass es", + "Ġcl asses", + "Ġclasse s", + "Ġclas ses", + ". at", + ".a t", + ". begin", + ".b egin", + ".be gin", + "Ġ successful", + "Ġsuccess ful", + "b an", + "ba n", + "Ġob tain", + "Ġobt ain", + "Ġ Sl", + "ĠS l", + "Ġ lack", + "Ġl ack", + "Ġla ck", + "Ġlac k", + "it erator", + "iter ator", + "T hread", + "Th read", + "Thr ead", + "( size", + "(s ize", + "(si ze", + "Ġ none", + "Ġn one", + "Ġno ne", + "Ġnon e", + ". has", + ".h as", + "_ X", + "s ort", + "so rt", + "n ap", + "na p", + "p et", + "pe t", + "b in", + "bi n", + "7 00", + "70 0", + "Ġ Canada", + "ĠCan ada", + "T hey", + "The y", + "Th ey", + "Ġd ans", + "Ġda ns", + "Ġdan s", + "Ġ Mat", + "ĠM at", + "ĠMa t", + "< td", + "'", + "'=> '", + "'= >'", + "Ġ Paul", + "ĠP aul", + "ĠPa ul", + "m as", + "ma s", + "ĉ print", + "ĉp rint", + "ĉpr int", + "( len", + "(l en", + "(le n", + "f d", + "Ġ );", + "Ġ) ;", + ". Event", + ".E vent", + "q li", + "ql i", + "i rit", + "ir it", + "iri t", + "ie lds", + "ield s", + "iel ds", + "o man", + "om an", + "oma n", + "Ġ Top", + "ĠT op", + "ĠTo p", + "Ġ vote", + "Ġv ote", + "Ġvo te", + "Ġvot e", + "Ġ mask", + "Ġm ask", + "Ġma sk", + "Ġmas k", + "Ġ theme", + "Ġth eme", + "Ġthe me", + "Ġthem e", + "- Ċ", + "Ġ props", + "Ġp rops", + "Ġpro ps", + "Ġpr ops", + "Ġprop s", + "Ġ fine", + "Ġf ine", + "Ġfin e", + "Ġfi ne", + "Ġ writer", + "Ġw riter", + "Ġwrit er", + "Ġwr iter", + "Ġwrite r", + "_ offset", + "_off set", + "_o ffset", + "c ar", + "ca r", + "Ġ altern", + "Ġal tern", + "Ġalt ern", + "Ġalter n", + "Ġalte rn", + "Ġ copyright", + "Ġc opyright", + "Ġcopy right", + "Ġ destroy", + "Ġd estroy", + "Ġde stroy", + "Ġdest roy", + "p per", + "pp er", + "ppe r", + "Ġ generate", + "Ġg enerate", + "Ġgener ate", + "Ġgen erate", + "Ġgene rate", + "Ġgenera te", + "p ped", + "pp ed", + "ppe d", + "âĢĻ d", + "Ġ ĠĠĠĠĠĊ", + "ĠĠ ĠĠĠĠĊ", + "ĠĠĠĠ ĠĠĊ", + "ĠĠĠ ĠĠĠĊ", + "ĠĠĠĠĠ ĠĊ", + "ĠĠĠĠĠĠ Ċ", + "m ake", + "ma ke", + "mak e", + "Ġ Show", + "ĠS how", + "ĠSh ow", + "ĠSho w", + "Ġ browser", + "Ġb rowser", + "Ġbrows er", + "Ġbrowse r", + "Ġbrow ser", + "Ġ favorite", + "Ġf avorite", + "Ġfavor ite", + "Ġ career", + "Ġcar eer", + "Ġcare er", + "Ġhapp ened", + "Ġhappen ed", + "( char", + "(c har", + "(ch ar", + "Ġ recommend", + "Ġre commend", + "Ġrecomm end", + "Ġ liter", + "Ġl iter", + "Ġli ter", + "Ġlit er", + "Ġlite r", + ". filter", + ".f ilter", + ".fil ter", + "g rade", + "gr ade", + "grad e", + "gra de", + "Ġ £", + "Ġ £", + "P hone", + "Ph one", + "o ms", + "om s", + "Ġ named", + "Ġn amed", + "Ġname d", + "Ġna med", + "Ġnam ed", + "- label", + "-l abel", + "-la bel", + "i po", + "ip o", + "Ġ Other", + "ĠO ther", + "ĠOt her", + "Ġ panel", + "Ġp anel", + "Ġpa nel", + "Ġpan el", + "Ġpane l", + "Ġ rock", + "Ġr ock", + "Ġro ck", + "Ġroc k", + "S cale", + "Sc ale", + "ĉ assert", + "ĉas sert", + "Ð ´", + "Ġ trust", + "Ġt rust", + "Ġtr ust", + "f ront", + "fr ont", + "Ġd emon", + "Ġde mon", + "Ġdem on", + "Ġdemo n", + "A r", + "N et", + "Ne t", + "Ġ economic", + "Ġe conomic", + "Ġecon omic", + "Ġeconom ic", + "Ġec onomic", + "f ooter", + "fo oter", + "foot er", + "foo ter", + "Ġ race", + "Ġr ace", + "Ġrac e", + "Ġra ce", + "( node", + "(n ode", + "(no de", + "Ġ Option", + "ĠO ption", + "ĠOp tion", + "ĠOpt ion", + "s plit", + "sp lit", + "spl it", + "Ġ physical", + "Ġph ysical", + "Ġphys ical", + "Ġphysic al", + "i fest", + "if est", + "ife st", + "ifes t", + "Ġ removed", + "Ġre moved", + "Ġrem oved", + "Ġremove d", + ". http", + ".h ttp", + ".ht tp", + ") ),Ċ", + ")) ,Ċ", + ")), Ċ", + "Ġlo oked", + "Ġlook ed", + "' ;", + "d ing", + "di ng", + "din g", + "g est", + "ge st", + "ges t", + "atur day", + "/ licenses", + "/lic enses", + "/license s", + "P rice", + "Pr ice", + "Pri ce", + "Ġ dro", + "Ġd ro", + "Ġdr o", + "Ġt owards", + "Ġto wards", + "Ġtoward s", + "Ġtow ards", + "Ġ uns", + "Ġu ns", + "Ġun s", + "Ġ CL", + "ĠC L", + "ĉ static", + "ĉst atic", + "ĉstat ic", + "Ġ rows", + "Ġr ows", + "Ġro ws", + "Ġrow s", + "Ġ define", + "Ġde fine", + "Ġdef ine", + "Ġdefin e", + ". replace", + ".re place", + ".rep lace", + "Ġ father", + "Ġf ather", + "Ġfa ther", + "Ġfat her", + "Ġ Design", + "ĠD esign", + "ĠDe sign", + "ĠDes ign", + "as sign", + "ass ign", + "assi gn", + "m ut", + "mu t", + "D evice", + "De vice", + "Dev ice", + "D id", + "Di d", + "' ))Ċ", + "') )Ċ", + "')) Ċ", + "o metry", + "om etry", + "ome try", + "omet ry", + "ometr y", + "ay load", + "Ġ histor", + "Ġh istor", + "Ġhis tor", + "Ġhist or", + "Ġhi stor", + "Ġhisto r", + "Ġ Param", + "ĠP aram", + "ĠPar am", + "ĠPa ram", + "ĠPara m", + "Ġ Boolean", + "ĠBo olean", + "ĠBool ean", + "ĠBoo lean", + "Ġ nature", + "Ġn ature", + "Ġna ture", + "Ġnatur e", + "Ġnat ure", + "Ġ js", + "Ġj s", + "Ġ nation", + "Ġn ation", + "Ġna tion", + "Ġnat ion", + "i h", + "Ġ discover", + "Ġdis cover", + "Ġdisc over", + "Ġdisco ver", + "s em", + "se m", + "H andle", + "Hand le", + "Han dle", + "ĉ r", + "Ġ Techn", + "ĠT echn", + "ĠTe chn", + "ĠTech n", + "ĠTec hn", + "Ġ wall", + "Ġw all", + "Ġwa ll", + "Ġwal l", + "{ $", + "@ property", + "Ġ\" ../", + "Ġ\". ./", + "Ġ\".. /", + "Ġ exam", + "Ġex am", + ". draw", + ".d raw", + ".dr aw", + "o pping", + "op ping", + "opp ing", + "Ġn early", + "Ġnear ly", + "Ġ cool", + "Ġc ool", + "Ġco ol", + "Ġin depend", + "Ġind epend", + "Ġinde pend", + "R ES", + "RE S", + "Ġ handler", + "Ġh andler", + "Ġhand ler", + "Ġhandle r", + "Ġ Monday", + "ĠMon day", + "ĠMond ay", + "Ġ sun", + "Ġs un", + "Ġsu n", + "St yles", + "Style s", + "ous ly", + "Ġ ĉ", + "v est", + "ve st", + "ves t", + "D isplay", + "Dis play", + "Disp lay", + "( y", + "at ically", + "atic ally", + "atical ly", + "Ġ predict", + "Ġp redict", + "Ġpre dict", + "Ġpred ict", + "Ġpredic t", + "y ing", + "yi ng", + "Ġ sometimes", + "Ġs ometimes", + "Ġsome times", + "Ġsom etimes", + "Ġsometime s", + "\" ]Ċ", + "\"] Ċ", + "Ġ drink", + "Ġd rink", + "Ġdr ink", + "Ġdri nk", + "Ġ bul", + "Ġb ul", + "Ġbu l", + "if ications", + "ific ations", + "ification s", + ". insert", + ".in sert", + ".ins ert", + ". reg", + ".re g", + ".r eg", + "Ġ tests", + "Ġt ests", + "Ġte sts", + "Ġtest s", + "Ġtes ts", + "Al ignment", + "Align ment", + "Ġal leg", + "Ġall eg", + "Ġalle g", + "Ġ attribute", + "Ġat tribute", + "Ġattrib ute", + "Ġ Note", + "ĠN ote", + "ĠNo te", + "ĠNot e", + "Ġmy self", + "Ġmys elf", + "a rts", + "ar ts", + "art s", + "N ow", + "No w", + "Ġ interesting", + "Ġinter esting", + "Ġinterest ing", + "Ġinteres ting", + "l ients", + "li ents", + "lient s", + "lie nts", + "lien ts", + "Ġ population", + "Ġpop ulation", + "Ġpopul ation", + "Ġ California", + "ĠCal ifornia", + "ĠCaliforn ia", + "\" I", + "å ¹", + "Ġ greater", + "Ġg reater", + "Ġgreat er", + "Ġgre ater", + "ues day", + "Ġth ous", + "Ġthou s", + "Ġtho us", + "Ġco sts", + "Ġcost s", + "Ġcos ts", + "Ġ launch", + "Ġl aunch", + "Ġla unch", + "\\ Http", + "k er", + "ke r", + "b and", + "ba nd", + "ban d", + "Ġ Play", + "ĠP lay", + "ĠPl ay", + "ĠPla y", + "Ġ band", + "Ġb and", + "Ġban d", + "Ġba nd", + ". shape", + ".s hape", + ".sh ape", + ".sha pe", + "e some", + "es ome", + "eso me", + "art icle", + "arti cle", + "artic le", + ". rf", + ".r f", + "Ġ wer", + "Ġw er", + "Ġwe r", + "á s", + "em bers", + "ember s", + "emb ers", + "u sr", + "us r", + "B A", + "i can", + "ic an", + "ica n", + "e tt", + "et t", + "valid ate", + "ul ti", + "ult i", + "Ġim mediately", + "Ġimmedi ately", + "Ġimmediate ly", + "z er", + "ze r", + "Ġ figure", + "Ġf igure", + "Ġfig ure", + "Ġfigur e", + "o es", + "oe s", + "e ller", + "el ler", + "ell er", + "elle r", + "ir cle", + "irc le", + "Ġ Sign", + "ĠS ign", + "ĠSi gn", + "ĠSig n", + ". db", + ".d b", + "Ġ rank", + "Ġr ank", + "Ġran k", + "Ġra nk", + "By tes", + "Byte s", + "Ġ projects", + "Ġproject s", + "Ġproj ects", + "Ġproje cts", + "_ rec", + "_re c", + "_r ec", + "U LAR", + "UL AR", + "ULA R", + "A PI", + "AP I", + "Ġ Line", + "ĠL ine", + "ĠLin e", + "ĠLi ne", + "P ort", + "Por t", + "Po rt", + "Ġ poll", + "Ġp oll", + "Ġpol l", + "Ġpo ll", + "Ġg iving", + "Ġgi ving", + "id ence", + "ide nce", + "iden ce", + "- -Ċ", + "-- Ċ", + "Ġ plot", + "Ġp lot", + "Ġpl ot", + "Ġplo t", + "i cial", + "ic ial", + "ici al", + "icia l", + "Ġw arrant", + "Ġwar rant", + "I TION", + "IT ION", + "Ġ Double", + "ĠD ouble", + "ĠDo uble", + "ĠDou ble", + "ĠDoub le", + "Ġb illion", + "Ġbill ion", + "Ġbil lion", + "gorith m", + "gorit hm", + "Ġ equipment", + "Ġe quipment", + "Ġequ ipment", + "Ġequip ment", + "D ATE", + "DA TE", + "DAT E", + "Ġ @\"", + "Ġ@ \"", + "E E", + "Ġ ple", + "Ġp le", + "Ġpl e", + "i ation", + "ia tion", + "iat ion", + "Ġ headers", + "Ġhe aders", + "Ġhead ers", + "Ġheader s", + "Ġpro ced", + "Ġproc ed", + ".Component Model", + "Ġ Obama", + "ĠOb ama", + "Ġ pa", + "Ġp a", + "Ġ Best", + "ĠB est", + "ĠBe st", + "ĠBes t", + "im ately", + "imate ly", + "imat ely", + ". getString", + ".get String", + ".getS tring", + ". \\", + "m ploy", + "mp loy", + "mpl oy", + "Ġ raw", + "Ġr aw", + "Ġra w", + "_ block", + "_b lock", + "_bl ock", + "_bloc k", + "und red", + "\" },Ċ", + "\"} ,Ċ", + "\"}, Ċ", + "1 12", + "11 2", + ".Group Layout", + "Ġb rought", + "Ġbr ought", + "Ġbro ught", + "NS String", + "NSS tring", + "th row", + "thr ow", + "thro w", + "c reated", + "cre ated", + "create d", + "cr eated", + "creat ed", + ". New", + ".N ew", + "_ view", + "_v iew", + "_vi ew", + "C P", + "e ps", + "ep s", + "O p", + "Ġ gratis", + "Ġgr atis", + "Ġgrat is", + "Ġ '\"", + "Ġ' \"", + "Ġint erview", + "Ġinter view", + "Ġinterv iew", + "\" \"\"Ċ", + "\"\" \"Ċ", + "\"\"\" Ċ", + "Ġ partial", + "Ġp artial", + "Ġpart ial", + "Ġparti al", + "Ġ aria", + "Ġa ria", + "Ġar ia", + "b ing", + "bin g", + "bi ng", + "A uthor", + "Auth or", + "Aut hor", + "B ook", + "Bo ok", + "Ġ Pat", + "ĠP at", + "ĠPa t", + "u man", + "um an", + "uma n", + "User s", + "Us ers", + "Use rs", + "p lus", + "pl us", + "1 93", + "19 3", + "Ġ Direct", + "ĠD irect", + "ĠDi rect", + "ĠDir ect", + "ĠDire ct", + "ven ue", + "al pha", + "alph a", + "UC CESS", + "Ġ Call", + "ĠC all", + "ĠCal l", + "ĠCa ll", + "Ġ );čĊ", + "Ġ) ;čĊ", + "Ġ); čĊ", + "im ated", + "imate d", + "ima ted", + "imat ed", + "Ġ remain", + "Ġre main", + "Ġr emain", + "Ġrem ain", + "Ġ anti", + "Ġan ti", + "Ġant i", + "Ġ London", + "ĠL ondon", + "ĠLo ndon", + "ĠLon don", + "ĠLond on", + "Ġs afety", + "Ġsaf ety", + "Ġsafe ty", + "P OSE", + "PO SE", + "POS E", + "o les", + "ol es", + "ole s", + "cont roller", + "control ler", + "contr oller", + "contro ller", + "B yte", + "By te", + "Ġ Court", + "ĠC ourt", + "ĠCo urt", + "ĠCour t", + "ĠCou rt", + "Ġ Phil", + "ĠP hil", + "ĠPh il", + "ĠPhi l", + "Ġ Associ", + "ĠAss oci", + "ĠAssoc i", + "e na", + "en a", + "å IJ", + "_ STR", + "_S TR", + "_ST R", + "c oin", + "co in", + "res hold", + "resh old", + "Ġ batch", + "Ġb atch", + "Ġbat ch", + "_ Click", + "_C lick", + "_Cl ick", + "ent ication", + "entic ation", + "enti cation", + "> ';Ċ", + ">' ;Ċ", + ">'; Ċ", + "e nty", + "en ty", + "ent y", + "Ġbeg inning", + "Ġbegin ning", + "Ġ zero", + "Ġz ero", + "Ġze ro", + "Ġzer o", + "Ġ Convert", + "ĠCon vert", + "ĠConv ert", + "Ġ terr", + "Ġt err", + "Ġte rr", + "Ġter r", + "Ġ paid", + "Ġp aid", + "Ġpa id", + "Ġpai d", + "Ġincre ased", + "Ġincrease d", + "c atch", + "cat ch", + "- size", + "-s ize", + "1 15", + "11 5", + "act ivity", + "activ ity", + "e quals", + "equ als", + "equal s", + "Ġ queue", + "Ġque ue", + "Ġq ueue", + "Ġ \"'", + "Ġ\" '", + "Ġ International", + "ĠInt ernational", + "ĠIntern ational", + "ĠInter national", + "Ġf ür", + "urs day", + "Ġ scient", + "Ġs cient", + "Ġsc ient", + "Ġsci ent", + "al low", + "all ow", + "allo w", + "a xis", + "ax is", + "Ġ appropri", + "Ġapp ropri", + "Ġap propri", + "Ġappro pri", + "e dge", + "ed ge", + "Ġ idx", + "Ġi dx", + "Ġid x", + "S uccess", + "Su ccess", + "Suc cess", + "ent ifier", + ": \\", + "x is", + "xi s", + "Ġ maximum", + "Ġmax imum", + "Ġmaxim um", + "ar ks", + "ark s", + "Ġ birth", + "Ġb irth", + "Ġbir th", + "( index", + "(in dex", + "(ind ex", + "Ġ maybe", + "Ġm aybe", + "Ġmay be", + ". py", + ".p y", + "f iles", + "file s", + "fi les", + "fil es", + "Ġ limited", + "Ġl imited", + "Ġlimit ed", + "Ġlim ited", + "Ġlimite d", + "_ check", + "_c heck", + "_ch eck", + "_che ck", + "l ook", + "lo ok", + "loo k", + "p lies", + "pl ies", + "Ġ movement", + "Ġm ovement", + "Ġmov ement", + "Ġmove ment", + "Ġmo vement", + "' ].", + "'] .", + "Ġb road", + "Ġbr oad", + "Ġbro ad", + "Ġ BE", + "ĠB E", + "Ġ UnityEngine", + "ĠUn ityEngine", + "ĠUnity Engine", + ". cpp", + ".c pp", + ".cp p", + "Ġ Every", + "ĠE very", + "ĠEv ery", + "ĠEver y", + "ĠEve ry", + "Ad min", + "Ġ fans", + "Ġf ans", + "Ġfa ns", + "Ġfan s", + "p ared", + "par ed", + "pare d", + "pa red", + "Ċ ĠĠĠĠĊ", + "Ġ foreign", + "Ġfore ign", + "Ġ pan", + "Ġp an", + "Ġpa n", + "Ġ tour", + "Ġt our", + "Ġto ur", + "Ġtou r", + "Ġ Order", + "ĠOr der", + "ĠOrd er", + "Ġ moving", + "Ġm oving", + "Ġmov ing", + "Ġmo ving", + "Ġ auf", + "Ġa uf", + "Ġau f", + "C all", + "Cal l", + "Ca ll", + "c b", + "Å Ł", + "vent ory", + "Ġ Sql", + "ĠS ql", + "ĠSq l", + "Ġ fully", + "Ġf ully", + "Ġfull y", + "Ġful ly", + "Click Listener", + "W ORD", + "WO RD", + "Ġann ounced", + "Ġannounc ed", + "Ġannounce d", + ") čĊčĊ", + ")čĊ čĊ", + "Ġag reed", + "Ġagre ed", + "Ġagree d", + "Ġagr eed", + "r ie", + "ri e", + "Ġ earn", + "Ġe arn", + "Ġear n", + "Ġea rn", + "_ link", + "_l ink", + "_lin k", + "_li nk", + ". array", + ".a rray", + ".ar ray", + ".arr ay", + "( text", + "(t ext", + "(te xt", + "(tex t", + "Ġ materials", + "Ġmaterial s", + "Ġmateria ls", + "Ġmater ials", + "Ġmateri als", + ", p", + "f fff", + "ff ff", + "fff f", + "v g", + "Ġ ©", + "Ġ ©", + "Ġ unless", + "Ġun less", + "Ġunle ss", + "Ġunl ess", + "a jax", + "aj ax", + "aja x", + "L OG", + "LO G", + "Ġ sexual", + "Ġs exual", + "Ġsex ual", + "Ġ \\\"", + "Ġ\\ \"", + "- time", + "-t ime", + "Ġ coach", + "Ġco ach", + "Ġ supported", + "Ġs upported", + "Ġsup ported", + "Ġsupport ed", + "Ġsupp orted", + "Ġ photos", + "Ġph otos", + "Ġphot os", + "Ġphoto s", + "i form", + "if orm", + "ifo rm", + ". Create", + ".C reate", + ") ]", + "r ier", + "ri er", + "rie r", + "Ġ dialog", + "Ġd ialog", + "Ġdi alog", + "Ġdia log", + "Ġdial og", + "a ver", + "av er", + "ave r", + "i ge", + "ig e", + ") +", + "_ idx", + "_id x", + "_i dx", + ": [", + "_ min", + "_m in", + "_mi n", + "Ġ Cong", + "ĠC ong", + "ĠCon g", + "ĠCo ng", + "Ġ pressure", + "Ġpres sure", + "Ġpress ure", + "Ġ teams", + "Ġte ams", + "Ġteam s", + "Ġtea ms", + "S ign", + "Si gn", + "Sig n", + "b egin", + "be gin", + "beg in", + "r ian", + "ri an", + "ria n", + "N ESS", + "NE SS", + "NES S", + "L S", + "Ġim prove", + "Ġimp rove", + "Ġimpro ve", + "Ġimpr ove", + "Ġimprov e", + "Ġ Sunday", + "ĠS unday", + "ĠSun day", + "ĠSund ay", + "Ġ definition", + "Ġdef inition", + "Ġdefinit ion", + "Ġdefin ition", + "i ger", + "ig er", + "ige r", + "rol lers", + "roll ers", + "roller s", + "Ġ thinking", + "Ġth inking", + "Ġthink ing", + "Ġthin king", + "T emplate", + "Temp late", + "Tem plate", + "- F", + "Ġem erg", + "p lates", + "pl ates", + "plate s", + "plat es", + "pla tes", + "Ġ USA", + "ĠU SA", + "ĠUS A", + ". setState", + ".set State", + "Ġ Also", + "ĠAl so", + "ĠAls o", + "r ev", + "re v", + "Ġ enable", + "Ġe nable", + "Ġen able", + "Ġ CO", + "ĠC O", + "P ECT", + "PE CT", + "PEC T", + "Ġ concept", + "Ġcon cept", + "Ġconc ept", + "Ġconce pt", + ") -", + "Ġ âĢ¢", + "ĠâĢ ¢", + "Ġ sets", + "Ġs ets", + "Ġse ts", + "Ġset s", + "Ġ meaning", + "Ġme aning", + "Ġmean ing", + "e mon", + "em on", + "emo n", + "Ġ Cons", + "ĠC ons", + "ĠCon s", + "ĠCo ns", + "c mp", + "cm p", + "e der", + "ed er", + "ede r", + "an ned", + "ann ed", + "anne d", + "ic ensed", + "icense d", + "icens ed", + "Ġ Super", + "ĠS uper", + "ĠSup er", + "ĠSu per", + "Ġ daily", + "Ġd aily", + "Ġda ily", + "Ġdai ly", + "Ġ multi", + "Ġm ulti", + "Ġmult i", + "Ġmul ti", + "_ u", + "Ġch alleng", + "Ġchall eng", + "_ mode", + "_m ode", + "_mod e", + "_mo de", + "Ġ Promise", + "ĠP romise", + "ĠPro mise", + "ĠProm ise", + "Ġ strict", + "Ġstr ict", + "Ġstri ct", + "j o", + "i nton", + "in ton", + "int on", + "into n", + "( list", + "(l ist", + "(li st", + "On ly", + "> {", + "Ġ vehicle", + "Ġv ehicle", + "Ġveh icle", + "í ķ", + "Ġ Player", + "ĠP layer", + "ĠPl ayer", + "ĠPlay er", + "ĠPla yer", + "1 06", + "10 6", + "Ġ Del", + "ĠD el", + "ĠDe l", + "Ġ pool", + "Ġp ool", + "Ġpo ol", + "Ġpoo l", + ". url", + ".u rl", + ".ur l", + "nes day", + "( );čĊčĊ", + "() ;čĊčĊ", + "();čĊ čĊ", + "(); čĊčĊ", + "9 00", + "90 0", + "Ġ \");Ċ", + "Ġ\" );Ċ", + "Ġ\") ;Ċ", + "Ġ\"); Ċ", + "L ocal", + "Lo cal", + "Loc al", + ". \");Ċ", + ".\" );Ċ", + ".\") ;Ċ", + ".\"); Ċ", + "Ġ organization", + "Ġo rganization", + "Ġorgan ization", + "Ġorganiz ation", + "r ender", + "re nder", + "ren der", + "rend er", + "rende r", + "Ġ Application", + "ĠApp lication", + "ĠAp plication", + "ĠAppl ication", + "Ġ summer", + "Ġs ummer", + "Ġsum mer", + "Ġsumm er", + "ex pected", + "exp ected", + "expect ed", + "N A", + "Ġ rap", + "Ġr ap", + "Ġra p", + "_ obj", + "_o bj", + "_ob j", + "Ġ surface", + "Ġs urface", + "Ġsur face", + "Ġsurf ace", + "Ġ PUR", + "ĠP UR", + "ĠPU R", + "Ġ },ĊĊ", + "Ġ} ,ĊĊ", + "Ġ},Ċ Ċ", + "Ġ}, ĊĊ", + "Ġ variables", + "Ġvariable s", + "Ġvari ables", + "( message", + "(m essage", + "Ġo pin", + "Ġop in", + "Ġopi n", + ". back", + ".b ack", + ".ba ck", + "а н", + "аР½", + "Ġ workers", + "Ġwork ers", + "Ġwor kers", + "Ġworker s", + "v m", + "C o", + "ught er", + "ugh ter", + "Ġ master", + "Ġm aster", + "Ġma ster", + "Ġmas ter", + "Ġmast er", + "Ġ \"\",", + "Ġ\" \",", + "Ġ\"\" ,", + "Ġ stories", + "Ġst ories", + "Ġstor ies", + "Ġsto ries", + ". User", + ".U ser", + ".Use r", + "Ġcele br", + "in ese", + "ine se", + "ines e", + "B S", + "Ġ Command", + "ĠCom mand", + "ĠComm and", + "ash board", + "Ġ og", + "Ġo g", + "k g", + ". image", + ".i mage", + ".im age", + ".imag e", + ". style", + ".st yle", + "Ġ steps", + "Ġst eps", + "Ġstep s", + "Ġste ps", + "Ġ Ben", + "ĠB en", + "ĠBe n", + "( args", + "(arg s", + "(ar gs", + "4 04", + "40 4", + "Ġ Person", + "ĠP erson", + "ĠPer son", + "ĠPers on", + ", y", + "Ġoffic ials", + "Ġofficial s", + "| Ċ", + "Ġ skills", + "Ġs kills", + "Ġsk ills", + "Ġskill s", + "v c", + "Ġ builder", + "Ġb uilder", + "Ġbu ilder", + "Ġbuild er", + "Ġ gar", + "Ġg ar", + "Ġga r", + "A ccount", + "Ac count", + "Acc ount", + "Ġ Auth", + "ĠA uth", + "ĠAut h", + "ĠAu th", + "ç Ķ", + "' ])Ċ", + "'] )Ċ", + "']) Ċ", + "Ġ AT", + "ĠA T", + "n n", + ". Int", + ".I nt", + ".In t", + "SS ERT", + "Ġ effective", + "Ġe ffective", + "Ġeffect ive", + "Ġeff ective", + "LE TE", + "LET E", + "Ġ tools", + "Ġt ools", + "Ġto ols", + "Ġtoo ls", + "Ġtool s", + "A RD", + "AR D", + "Ġ digital", + "Ġd igital", + "Ġdig ital", + "Ġdigit al", + "1 91", + "19 1", + "D ouble", + "Do uble", + "Dou ble", + "Ġ Find", + "ĠF ind", + "ĠFin d", + "ĠFi nd", + "R C", + "Ġ inline", + "Ġin line", + "/ r", + "A RAM", + "AR AM", + "ARA M", + "A SK", + "AS K", + "Ġ intent", + "Ġin tent", + "Ġint ent", + "Ġinte nt", + "a ight", + "ai ght", + "_ addr", + "_add r", + "_ad dr", + "Ġ requests", + "Ġre quests", + "Ġrequest s", + "Ġrequ ests", + ". first", + ".f irst", + ".fi rst", + "Ġ debug", + "Ġde bug", + "Ġdeb ug", + "Ġ spent", + "Ġs pent", + "Ġsp ent", + "Ġspe nt", + "( )));Ċ", + "() ));Ċ", + "()) );Ċ", + "())) ;Ċ", + "())); Ċ", + "Å Ľ", + "Ġpr incip", + "Ġprin cip", + "Ġprinc ip", + "Log ger", + "Lo gger", + "cl udes", + "clude s", + "clud es", + ". use", + ".u se", + ".us e", + "Ġs urv", + "Ġsu rv", + "Ġsur v", + "m edia", + "med ia", + "me dia", + "medi a", + "Ġ February", + "ĠFe bruary", + "ĠFeb ruary", + "Ġ Mac", + "ĠM ac", + "ĠMa c", + "Ġ missing", + "Ġm issing", + "Ġmiss ing", + "Ġmis sing", + "Ġ wife", + "Ġw ife", + "Ġwi fe", + "Ġt alking", + "Ġtalk ing", + "Ġtal king", + "Ġ Make", + "ĠM ake", + "ĠMa ke", + "ĠMak e", + "Ġ cart", + "Ġc art", + "Ġcar t", + "Ġca rt", + "Ġ located", + "Ġloc ated", + "Ġlocate d", + "E nc", + "En c", + "- a", + "ch ron", + "chr on", + "Ġ cards", + "Ġc ards", + "Ġcar ds", + "Ġcard s", + "Ġg uy", + "Ġgu y", + "Ġ pers", + "Ġp ers", + "Ġper s", + "Ġpe rs", + "Ġ Yes", + "ĠY es", + "ĠYe s", + "at ever", + "ate ver", + "Ġ Ang", + "ĠA ng", + "ĠAn g", + "o lar", + "ol ar", + "ola r", + "Ġ Even", + "ĠE ven", + "ĠEv en", + "ĠEve n", + "Ġ accur", + "Ġacc ur", + "Ġac cur", + "Ġ Power", + "ĠP ower", + "ĠPo wer", + "ĠPow er", + "Ġ Gold", + "ĠG old", + "ĠGo ld", + "ĠGol d", + "c lear", + "cl ear", + "cle ar", + "P rocess", + "Pro cess", + "Proc ess", + "Ġ records", + "Ġrec ords", + "Ġrecord s", + "Ġk illed", + "Ġkill ed", + "Ġkil led", + ". clear", + ".c lear", + ".cl ear", + "ĠWARRANT IES", + "Ġ purpose", + "Ġp urpose", + "Ġpur pose", + "Ġpurpos e", + "p anel", + "pan el", + "pa nel", + "pane l", + "J ECT", + "JE CT", + "ÃŃ a", + "Ġex erc", + "Ġexe rc", + "W S", + "/ L", + ". exports", + ".ex ports", + ".exp orts", + ".export s", + "Ġ ___", + "Ġ_ __", + "Ġ__ _", + "Ġ sin", + "Ġs in", + "Ġsi n", + "S ervlet", + "Serv let", + "Ġd é", + ". delete", + ".de lete", + ".del ete", + "r oke", + "ro ke", + "rok e", + "S l", + "u gh", + "ug h", + "e ars", + "ear s", + "ea rs", + "Ġ pointer", + "Ġpoint er", + "Ġpo inter", + "Ġ hop", + "Ġh op", + "Ġho p", + "all ery", + "alle ry", + "aller y", + "Ġ obs", + "Ġo bs", + "Ġob s", + "c overy", + "co very", + "cover y", + "cov ery", + "ĉ char", + "ĉc har", + "ĉch ar", + "ĉ ĉĉĉĉĉĉĉĉĉ", + "ĉĉ ĉĉĉĉĉĉĉĉ", + "ĉĉĉĉ ĉĉĉĉĉĉ", + "ĉĉĉ ĉĉĉĉĉĉĉ", + "ĉĉĉĉĉ ĉĉĉĉĉ", + "ĉĉĉĉĉĉ ĉĉĉĉ", + "ĉĉĉĉĉĉĉĉ ĉĉ", + "ĉĉĉĉĉĉĉ ĉĉĉ", + "ĉĉĉĉĉĉĉĉĉ ĉ", + "ĉ def", + "ĉd ef", + "ĉde f", + "o city", + "oc ity", + "oci ty", + "it chen", + "itch en", + "u lations", + "ul ations", + "ulation s", + "Ġ FIT", + "ĠF IT", + "ĠFI T", + "Ġ ).", + "Ġ) .", + "straint s", + "stra ints", + "strain ts", + "v ention", + "vent ion", + "ven tion", + "Ġ requires", + "Ġre quires", + "Ġrequire s", + "Ġrequ ires", + "Ġ Oper", + "ĠO per", + "ĠOp er", + "M E", + "O UNT", + "OUN T", + "OU NT", + "al let", + "all et", + "alle t", + "Ġ norm", + "Ġn orm", + "Ġno rm", + "Ġnor m", + "I RE", + "IR E", + "ex as", + "Ġ programs", + "Ġpro grams", + "Ġpr ograms", + "Ġprogram s", + "Ġprog rams", + "Ġ weak", + "Ġwe ak", + "' .$", + "'. $", + "u ing", + "ui ng", + "uin g", + "ĉ ĠĠĠĠĠĠĠ", + "ĉĠĠĠ ĠĠĠĠ", + "ĉĠ ĠĠĠĠĠĠ", + "ĉĠĠ ĠĠĠĠĠ", + "ĉĠĠĠĠĠ ĠĠ", + "ĉĠĠĠĠ ĠĠĠ", + "ĉĠĠĠĠĠĠ Ġ", + "Ġ mil", + "Ġm il", + "Ġmi l", + "Ġ firm", + "Ġf irm", + "Ġfi rm", + "Ġfir m", + "init ely", + "inite ly", + "_ VALUE", + "_VAL UE", + "ap se", + "aps e", + "atis f", + "ati sf", + "Ġ demand", + "Ġd emand", + "Ġde mand", + "Ġdem and", + "_ mod", + "_m od", + "_mo d", + "Ġde scribed", + "Ġdes cribed", + "Ġdescri bed", + "Ġdescribe d", + "Ġ places", + "Ġp laces", + "Ġpl aces", + "Ġplace s", + "Ġplac es", + "Ġpla ces", + "V ID", + "VI D", + "Ġ alone", + "Ġal one", + "Ġalo ne", + "Ġ export", + "Ġex port", + "Ġexp ort", + "Ġexpo rt", + "Ġ vec", + "Ġv ec", + "Ġve c", + "Ġ Max", + "ĠM ax", + "ĠMa x", + "Ġ activities", + "Ġact ivities", + "Ġactiv ities", + "ic tures", + "ict ures", + "icture s", + "g ener", + "ge ner", + "gen er", + "gene r", + "Ġ ma", + "Ġm a", + "Ĥ ¬", + "Ġ expression", + "Ġex pression", + "Ġexp ression", + "Ġexpress ion", + "Ġexpr ession", + "C allback", + "Call back", + "_ content", + "_c ontent", + "_con tent", + "_cont ent", + "Ġ Most", + "ĠM ost", + "ĠMo st", + "ĠMos t", + "Ġ testing", + "Ġt esting", + "Ġtest ing", + "Ġtes ting", + "E C", + "CH ANT", + "CHA NT", + "CHAN T", + "Ġ adjust", + "Ġad just", + "Ġadj ust", + ".Th reading", + ".Thread ing", + "( ctx", + "(c tx", + "(ct x", + "Ġ agree", + "Ġa gree", + "Ġag ree", + "Ġagre e", + "Ġagr ee", + "i ghest", + "ig hest", + "igh est", + "Ġ ui", + "Ġu i", + "Ġ Law", + "ĠL aw", + "ĠLa w", + ". Y", + "> < ?", + "Ġ pod", + "Ġp od", + "Ġpo d", + "- lg", + "-l g", + "âĢĿ ĊĊ", + "âĢĿĊ Ċ", + "Ġ describe", + "Ġde scribe", + "Ġdes cribe", + "Ġdescri be", + "Ġdescr ibe", + "Ġ European", + "ĠE uropean", + "ĠEurope an", + "ĠEurop ean", + "- sh", + "-s h", + "ĠPUR POSE", + "O RY", + "OR Y", + "Ġcon vers", + "Ġconv ers", + "Ġconver s", + "Ġ Illuminate", + "ĠI lluminate", + "ĠIllum inate", + "Ġ Av", + "ĠA v", + "( ch", + "(c h", + "? \"", + "c hen", + "ch en", + "che n", + "i ma", + "im a", + "D ocument", + "Doc ument", + "Ġ operations", + "Ġoper ations", + "Ġoperation s", + "w in", + "wi n", + "ĉ function", + "ĉf unction", + "ĉfunc tion", + "ĉfun ction", + ". Image", + ".I mage", + ".Im age", + "Ġs cen", + "Ġsc en", + "Ġsce n", + "/ h", + "Ġ SC", + "ĠS C", + "Ġ explo", + "Ġexp lo", + "Ġexpl o", + ": %", + "/ **čĊ", + "/* *čĊ", + "/** čĊ", + "N AME", + "NA ME", + "æ Ī", + "( var", + "(v ar", + "(va r", + "Ġ director", + "Ġd irector", + "Ġdirect or", + "Ġdir ector", + "Ġdire ctor", + "O NG", + "ON G", + "Ġ yield", + "Ġy ield", + "Ġyi eld", + "Ġfe et", + "Ġfee t", + "Ġ Search", + "ĠS earch", + "ĠSe arch", + "ĠSea rch", + "Ġ Il", + "ĠI l", + "Ġrest aur", + "Ġresta ur", + "Ġrestau r", + "d uc", + "du c", + "Ġ integer", + "Ġint eger", + "Ġinteg er", + "Ġinte ger", + "1 07", + "10 7", + "Ġ' ';Ċ", + "Ġ'' ;Ċ", + "Ġ''; Ċ", + "Ġhigh ly", + "check ed", + "ĠPART IC", + "ER CHANT", + "ï¼ ī", + "Ġ optim", + "Ġop tim", + "Ġopt im", + "Q ueue", + "Que ue", + "Ġ LI", + "ĠL I", + "it ation", + "ita tion", + "itat ion", + "Ġ transport", + "Ġtrans port", + "Ġtran sport", + "iss ion", + "f ill", + "fi ll", + "fil l", + "us ion", + "usi on", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĉ bool", + "ĉb ool", + "- th", + "-t h", + "u pt", + "up t", + "Ġ essential", + "Ġess ential", + "an ted", + "ant ed", + "ante d", + "Ġbenef its", + "Ġbenefit s", + "Ġbene fits", + "ĉ S", + "' ;čĊ", + "'; čĊ", + "i ki", + "ik i", + "Ġ girls", + "Ġgirl s", + "Ġgir ls", + "i ced", + "ic ed", + "ice d", + "b uffer", + "buf fer", + "bu ffer", + "buff er", + "] +", + "Ġ socket", + "Ġs ocket", + "Ġso cket", + "Ġsock et", + "Ġsoc ket", + "Ġ prices", + "Ġp rices", + "Ġpr ices", + "Ġprice s", + "Ġpri ces", + "Ġ Fre", + "ĠF re", + "ĠFr e", + "Ġ sat", + "Ġs at", + "Ġsa t", + "Ġ wood", + "Ġw ood", + "Ġwo od", + "Ġwoo d", + "Menu Item", + "A RG", + "AR G", + "Ġ Admin", + "ĠAd min", + "O WN", + "OW N", + "d k", + "Ġ reset", + "Ġre set", + "Ġres et", + "Ġ forms", + "Ġfor ms", + "Ġform s", + "Ġfo rms", + "Ġ и", + "ĠÐ ¸", + "æ ĸ", + "Ġ Tuesday", + "ĠT uesday", + "ĠTues day", + "1 09", + "10 9", + "Ġ Initialized", + "ĠInitial ized", + "ĠInitialize d", + "ĠInit ialized", + "_ train", + "_t rain", + "_tr ain", + "_tra in", + "o rary", + "or ary", + "ora ry", + "ate gor", + "ateg or", + "atego r", + "Ġ dt", + "Ġd t", + "T otal", + "To tal", + "Tot al", + "con struct", + "i lies", + "il ies", + "ili es", + "Ġgu ys", + "Ġguy s", + "е ÑĢ", + "Ġ instruction", + "Ġin struction", + "Ġinstr uction", + "Ġinstruct ion", + "0 10", + "01 0", + "y led", + "yle d", + "yl ed", + "Ġ internet", + "Ġin ternet", + "Ġint ernet", + "Ġinter net", + "Ġintern et", + "et adata", + "eta data", + "a dy", + "ad y", + "f aces", + "face s", + "fa ces", + "fac es", + "j ection", + "ject ion", + "je ction", + "jec tion", + "Ġ Jack", + "ĠJ ack", + "ĠJac k", + "ĠJa ck", + "Ġ rect", + "Ġre ct", + "Ġr ect", + "Ġrec t", + "[ -", + "Ġ Leg", + "ĠL eg", + "ĠLe g", + "Ġ devices", + "Ġdev ices", + "Ġdevice s", + "O C", + "Ġ *čĊ", + "Ġ* čĊ", + "o ration", + "or ation", + "ora tion", + "er tain", + "ert ain", + "erta in", + "Ġ guard", + "Ġg uard", + "Ġgu ard", + "Ġguar d", + "o stream", + "ost ream", + "Ġ enum", + "Ġe num", + "Ġen um", + ". layout", + ".l ayout", + "Ġ \";Ċ", + "Ġ\" ;Ċ", + "Ġ\"; Ċ", + "v oke", + "vo ke", + "Ġ Ok", + "ĠO k", + "H ome", + "Ho me", + "Hom e", + "( tr", + "(t r", + "E TH", + "ET H", + "Ġ delay", + "Ġd elay", + "Ġde lay", + "Ġdel ay", + "Ġdela y", + "Ġ purchase", + "Ġp urchase", + "Ġpurch ase", + "d c", + "Ġ aren", + "Ġa ren", + "Ġare n", + "Ġar en", + "_ once", + "_on ce", + "_o nce", + "ĉ ĉĉĉĊ", + "ĉĉ ĉĉĊ", + "ĉĉĉĉ Ċ", + "ĉĉĉ ĉĊ", + "r or", + "ro r", + "d raw", + "dr aw", + "dra w", + ". run", + ".r un", + ".ru n", + "( model", + "(m odel", + "(mod el", + "(mode l", + "Time out", + "l ik", + "li k", + "Ġ Arg", + "ĠA rg", + "ĠAr g", + ". en", + ".e n", + "Ġ fish", + "Ġf ish", + "Ġfi sh", + "Ġfis h", + "c py", + "cp y", + "_ fe", + "_f e", + "ERCHANT ABILITY", + "( X", + "_ output", + "_out put", + "? ?", + "Ġ jo", + "Ġj o", + "and ard", + "anda rd", + "Ġ doll", + "Ġd oll", + "Ġdo ll", + "Ġdol l", + "er rors", + "err ors", + "error s", + "erro rs", + "_ base", + "_b ase", + "ĠPARTIC ULAR", + "Ġ leader", + "Ġle ader", + "Ġlead er", + "Ġcom par", + "Ġco mpar", + "Ġcomp ar", + "Ġd oub", + "Ġdo ub", + "Ġdou b", + "Ġ Vis", + "ĠV is", + "ĠVi s", + "Stack Trace", + "- C", + "ĠSt ud", + "stit ute", + "M ore", + "Mo re", + "Mor e", + "Ġ Description", + "ĠD escription", + "ĠDe scription", + "ĠDes cription", + "W ARE", + "WA RE", + "WAR E", + "a ds", + "ad s", + "Ġ к", + "ĠÐ º", + "b ind", + "bin d", + "bi nd", + "= self", + "=s elf", + "e mploy", + "em ploy", + "emp loy", + "empl oy", + "emplo y", + "[ n", + ". all", + ".a ll", + ".al l", + "- B", + "& &", + "a lm", + "al m", + "Ġ culture", + "Ġc ulture", + "Ġcult ure", + "Ġcul ture", + "h ouse", + "ho use", + "hou se", + "Ġs uffer", + "Ġsu ffer", + "Ġsuff er", + "Ġsuf fer", + "Ġ '%", + "Ġ' %", + "Ġ straight", + "Ġstr aight", + "Ġstra ight", + "Ġ Star", + "ĠS tar", + "ĠSt ar", + "ĠSta r", + "u do", + "ud o", + "Ġ ded", + "Ġd ed", + "Ġde d", + "Ġ COM", + "ĠC OM", + "ĠCO M", + "Ġ confirm", + "Ġcon firm", + "Ġconf irm", + "Ġ Good", + "ĠG ood", + "ĠGo od", + ". sc", + ".s c", + "____ ____________", + "________ ________", + "____________ ____", + "D R", + "Config uration", + "Date Time", + "Ġ advert", + "Ġad vert", + "Ġadv ert", + "Ġ couldn", + "Ġcould n", + "a sync", + "as ync", + "asy nc", + "st ack", + "sta ck", + "' )čĊ", + "') čĊ", + "K it", + "Ki t", + "Ġh ous", + "Ġho us", + "Ġm echan", + "Ġme chan", + "Ġmec han", + "Ġmech an", + "r ate", + "ra te", + "rat e", + "2 04", + "20 4", + "Ġ audio", + "Ġa udio", + "Ġaud io", + "Ġau dio", + "Ġaudi o", + "ĉ cout", + "ĉc out", + "c ores", + "co res", + "core s", + "cor es", + "Ġ spot", + "Ġs pot", + "Ġsp ot", + "Ġspo t", + "Ġin creasing", + "Ġincre asing", + "Ġ ##", + "Ġ# #", + ") ))", + ")) )", + "p oints", + "point s", + "po ints", + "poi nts", + "Ġcom pared", + "Ġcomp ared", + "Ġcompar ed", + "Ġcompare d", + "l ig", + "li g", + "Ġ behavior", + "Ġbeh avior", + "Ġ BY", + "ĠB Y", + "Ġ Att", + "ĠA tt", + "ĠAt t", + "c raft", + "cr aft", + "he aders", + "head ers", + "header s", + "hea ders", + "e te", + "et e", + "end region", + "Ġ detail", + "Ġd etail", + "Ġde tail", + "Ġdet ail", + "U LE", + "UL E", + "Ġ Common", + "ĠCom mon", + "ĠComm on", + "ĉ protected", + "s ton", + "st on", + "sto n", + "ĠFIT NESS", + "Ġ fresh", + "Ġf resh", + "Ġfr esh", + "Ġfre sh", + "Ġfres h", + "\" >ĊĊ", + "\"> ĊĊ", + "\">Ċ Ċ", + ". example", + ".ex ample", + ".exam ple", + "b erg", + "ber g", + "be rg", + "Ġ moved", + "Ġm oved", + "Ġmov ed", + "Ġmove d", + "Ġmo ved", + "ĉ e", + "Ġ Saturday", + "ĠS aturday", + "Ġ payload", + "Ġp ayload", + "Ġpay load", + "Ä ĩ", + ") :ĊĊ", + "):Ċ Ċ", + "): ĊĊ", + "Ġb ey", + "Ġbe y", + "u rer", + "ur er", + "ure r", + "< script", + " ,", + "\" > < ?", + "( num", + "(n um", + "ĉ inline", + "ĉin line", + "Trans action", + ". On", + ".O n", + "Ġ mail", + "Ġm ail", + "Ġma il", + "Ġmai l", + "r ey", + "re y", + "res ults", + "result s", + "Ġ nav", + "Ġn av", + "Ġna v", + "I MIT", + "IM IT", + "_ ids", + "_id s", + "_i ds", + "M ake", + "Ma ke", + "å Ĭ", + "M odal", + "Mod al", + "Mo dal", + "Ġ LOG", + "ĠL OG", + "ĠLO G", + "Ġ Sur", + "ĠS ur", + "ĠSu r", + "Ġinstance of", + "Ġ overall", + "Ġover all", + "Ġ Information", + "ĠIn formation", + "ĠInform ation", + "Ġ construction", + "Ġcon struction", + "Ġconstruct ion", + "Ġconstr uction", + "_ FILE", + "_F ILE", + "b ut", + "bu t", + "Ġm edic", + "Ġme dic", + "Ġmed ic", + "Ġmedi c", + "Ġ duration", + "Ġd uration", + "Ġdu ration", + "Ġdur ation", + "it ness", + "a gent", + "ag ent", + "age nt", + "agen t", + "A V", + "Ġ seven", + "Ġs even", + "Ġse ven", + "Ġsev en", + "o lf", + "ol f", + "Ġ }}Ċ", + "Ġ} }Ċ", + "Ġ}} Ċ", + "\" ],Ċ", + "\"] ,Ċ", + "\"], Ċ", + "1 70", + "17 0", + "1 22", + "12 2", + "Ġ calling", + "Ġc alling", + "Ġcall ing", + "Ġcal ling", + "Ġ ans", + "Ġa ns", + "Ġan s", + "th rows", + "throw s", + "thr ows", + "thro ws", + "or izontal", + "Ġ useState", + "Ġuse State", + ". fl", + ".f l", + "Ġ Status", + "ĠS tatus", + "ĠSt atus", + "ĠStat us", + "Ġ Online", + "ĠOn line", + "R R", + "Ġ Rich", + "ĠR ich", + "ĠRic h", + "ĠRi ch", + "ĠH ill", + "ĠHi ll", + "ĠHil l", + "Ġ brain", + "Ġb rain", + "Ġbr ain", + "Ġbra in", + "Ġfollow ed", + "Ġfoll owed", + "2 40", + "24 0", + "e mic", + "em ic", + "emi c", + "Ġs light", + "Ġsl ight", + "Ġ insurance", + "Ġins urance", + ". Array", + ".A rray", + ".Ar ray", + "Ġ abstract", + "Ġa bstract", + "Ġab stract", + "Ġabs tract", + "Ġabst ract", + "Ġ Sum", + "ĠS um", + "ĠSu m", + "re direct", + "red irect", + "redi rect", + "o wner", + "ow ner", + "own er", + "( msg", + "(m sg", + "(ms g", + "Ġ Clinton", + "ĠCl inton", + "ĠClin ton", + "ĠClint on", + "ĠCli nton", + "N on", + "No n", + "ĉ ex", + "ĉe x", + "Ġ volume", + "Ġv olume", + "Ġvol ume", + "Ġvolum e", + "Ġ EventArgs", + "ĠEvent Args", + "- L", + "Ġ Dim", + "ĠD im", + "ĠDi m", + "Ġ Mart", + "ĠM art", + "ĠMar t", + "ĠMa rt", + "Ġ cursor", + "Ġc ursor", + "Ġcurs or", + "Ġcurso r", + "Ġ implementation", + "Ġim plementation", + "Ġimplement ation", + "ur red", + "urre d", + "urr ed", + "Ġl arger", + "Ġlarge r", + "Ġlarg er", + "Ġlar ger", + ") ;ĊĊĊ", + ");Ċ ĊĊ", + ");ĊĊ Ċ", + "); ĊĊĊ", + "' +", + ". transform", + ".trans form", + "Ġ upload", + "Ġup load", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "D raw", + "Dr aw", + "n el", + "ne l", + "ĉ float", + "ĉf loat", + "q rt", + "qr t", + "Ġ Network", + "ĠN etwork", + "ĠNet work", + "Ġ tit", + "Ġt it", + "Ġti t", + "A xis", + "Ax is", + ". android", + ".and roid", + "Ġ completed", + "Ġcom pleted", + "Ġcomp leted", + "Ġcomple ted", + "Ġcomplet ed", + "Ġcompl eted", + "Ġcomplete d", + "Ġ mur", + "Ġm ur", + "Ġmu r", + "Ġ columns", + "Ġcolumn s", + "Ġcolum ns", + "x c", + "Ġ supply", + "Ġs upply", + "Ġsup ply", + "Ġsuppl y", + "Ġsupp ly", + "im inal", + "imi nal", + "imin al", + "Ġ spr", + "Ġs pr", + "Ġsp r", + "================ ================================================", + "================================ ================================", + "================================================ ================", + "Ġ units", + "Ġun its", + "Ġunit s", + "Ġuni ts", + "( u", + "m i", + "re place", + "rep lace", + "[ key", + "[k ey", + "à ¹", + "an tic", + "ant ic", + "anti c", + "Ġ payment", + "Ġp ayment", + "Ġpay ment", + ", B", + "Ġ Apple", + "ĠApp le", + "ĠAp ple", + "ĠAppl e", + "g in", + "gi n", + "Re quired", + "Require d", + "# +", + "l ands", + "land s", + "la nds", + "lan ds", + "Ġ squ", + "Ġs qu", + "Ġsq u", + "Ġ factor", + "Ġf actor", + "Ġfact or", + "Ġfa ctor", + "Ġfac tor", + "Ġfacto r", + "d ec", + "de c", + "Ġ strength", + "Ġst rength", + "Ġstr ength", + "Ġstre ngth", + "Ġstren gth", + "Ġ boy", + "Ġb oy", + "Ġbo y", + "Ġ balance", + "Ġb alance", + "Ġbal ance", + "Ġ sources", + "Ġs ources", + "Ġsource s", + "Ġsour ces", + "s creen", + "sc reen", + "scr een", + "- top", + "-t op", + "-to p", + "Ġ Amazon", + "ĠA mazon", + "ĠAm azon", + "ĠAma zon", + "Ġ hidden", + "Ġh idden", + "Ġhi dden", + "Ġhid den", + "е ÑĤ", + "_ client", + "_c lient", + "_cl ient", + "_cli ent", + "Ġ eat", + "Ġe at", + "Ġea t", + ". display", + ".d isplay", + ".dis play", + "Ġ »", + "Ġ »", + "Ġ trigger", + "Ġtr igger", + "Ġtri gger", + "Ġtrig ger", + "an ager", + "ana ger", + "Ġ tro", + "Ġt ro", + "Ġtr o", + "Ġ claims", + "Ġcl aims", + "Ġclaim s", + "Ġcla ims", + "f ord", + "fo rd", + "for d", + "Ġ Company", + "ĠCom pany", + "ĠComp any", + "Ġ gift", + "Ġg ift", + "Ġgi ft", + "Ġgif t", + ", :", + "_ app", + "_a pp", + "_ap p", + "h andle", + "han dle", + "hand le", + "Ġ produce", + "Ġp roduce", + "Ġpro duce", + "Ġprodu ce", + "Ġprod uce", + "/ lib", + "/l ib", + "/li b", + "5 12", + "51 2", + "Ġ -*", + "Ġ- *", + "ĉ set", + "ĉs et", + "ĉse t", + "' ];", + "'] ;", + "a rc", + "ar c", + "a nder", + "an der", + "and er", + "ande r", + "Ġ Engine", + "ĠE ngine", + "ĠEng ine", + "Ġ attributes", + "Ġat tributes", + "Ġattribute s", + "Ġattrib utes", + "t ask", + "ta sk", + "tas k", + "< =", + "( N", + "Ġ warm", + "Ġw arm", + "Ġwar m", + "Ġwa rm", + "wh ich", + "Ġ Fore", + "ĠF ore", + "ĠFor e", + "ĠFo re", + "ag nost", + "agn ost", + "m ys", + "my s", + "Ġ tal", + "Ġt al", + "Ġta l", + "Ġ Sal", + "ĠS al", + "ĠSa l", + "g i", + "Ġ Print", + "ĠP rint", + "ĠPr int", + "ĠPri nt", + "Ġ TRUE", + "ĠTR UE", + "Ġ о", + "ĠÐ ¾", + ". UI", + ".U I", + "Ġ flash", + "Ġf lash", + "Ġfl ash", + "Ġfla sh", + "ro perty", + "rop erty", + ". location", + ".l ocation", + ".loc ation", + ".lo cation", + "Ġ Mill", + "ĠM ill", + "ĠMil l", + "ĠMi ll", + "b i", + "con tr", + "cont r", + ". request", + ".re quest", + ".req uest", + "Ġ Sam", + "ĠS am", + "ĠSa m", + "Ġ negative", + "Ġn egative", + "Ġneg ative", + "k it", + "ki t", + "Ġ sett", + "Ġs ett", + "Ġse tt", + "Ġset t", + ".print StackTrace", + "a be", + "ab e", + "ĉ i", + "Ġ burn", + "Ġb urn", + "Ġbu rn", + "Ġbur n", + "Ġs ociety", + "Ġsoci ety", + "C ache", + "Ca che", + "Ġ Security", + "ĠS ecurity", + "ĠSe curity", + "ĠSec urity", + ". models", + ".model s", + ".mod els", + ".mode ls", + "ĠWARRANT Y", + "_ up", + "_u p", + "ce ive", + "Ġ clients", + "Ġc lients", + "Ġcl ients", + "Ġclient s", + "Ġcli ents", + ". Tr", + ".T r", + "Ġprovid ing", + "Ġprov iding", + "Ġr out", + "Ġro ut", + "Ġrou t", + "m aterial", + "mat erial", + "mate rial", + "Ġ ||Ċ", + "Ġ| |Ċ", + "Ġ|| Ċ", + "Ġ Ser", + "ĠS er", + "ĠSe r", + "Ġ Office", + "ĠOff ice", + "FT WARE", + "Ġ '$", + "Ġ' $", + "Ġf oc", + "Ġfo c", + "Ġex cell", + "Ġexc ell", + "Ġexcel l", + "Ġexce ll", + "Ġ cat", + "Ġc at", + "Ġca t", + "n ormal", + "norm al", + "nor mal", + "Ġd etermine", + "Ġdeter mine", + "Ġdetermin e", + "Ġdeterm ine", + "ĉ uint", + "ĉu int", + "ĉui nt", + "P ane", + "Pa ne", + "Pan e", + "Ġ employees", + "Ġemploy ees", + "Ġemployee s", + "Ġ Texas", + "ĠT exas", + "ĠTex as", + "Ġtr aff", + "Ġtra ff", + "Ġtraf f", + "Ġ Report", + "ĠRe port", + "ĠRep ort", + "ĠRepo rt", + "an ta", + "ant a", + "Ġ Box", + "ĠB ox", + "ĠBo x", + "Ġ django", + "Ġd jango", + "Ġdj ango", + "Ġ partner", + "Ġp artner", + "Ġpart ner", + "E B", + "L INE", + "LI NE", + "LIN E", + "Ġfe eling", + "Ġfeel ing", + "Ġfee ling", + "Ġ civil", + "Ġc ivil", + "Ġci vil", + "Ġciv il", + "( float", + "(f loat", + "S ql", + "Sq l", + "Ġwould n", + ". init", + ".in it", + ".i nit", + ".ini t", + ". left", + ".l eft", + ".le ft", + "- v", + "_ level", + "_le vel", + "' }", + "A F", + "Ġ loading", + "Ġlo ading", + "Ġload ing", + "Ġloa ding", + "Ġ Only", + "ĠOn ly", + "Ġ cookies", + "Ġc ookies", + "Ġco okies", + "Ġcook ies", + "Ġcookie s", + "Ġ Gl", + "ĠG l", + "C O", + "Ġ strategy", + "Ġstr ategy", + "Ġstrateg y", + "Ġstrate gy", + "(' ./", + "('. /", + "Ġ ship", + "Ġs hip", + "Ġsh ip", + "p oses", + "pos es", + "pose s", + "po ses", + "Ġ signal", + "Ġs ignal", + "Ġsign al", + "Ġsig nal", + "Ġ alpha", + "Ġal pha", + "Ġalph a", + ". pop", + ".p op", + ".po p", + "R adius", + "Rad ius", + "Radi us", + "Ġ replace", + "Ġre place", + "Ġrep lace", + "Ġrepl ace", + "_ DIR", + "_D IR", + "_DI R", + "c ounter", + "co unter", + "count er", + "bserv able", + "e la", + "el a", + "W eight", + "We ight", + "Wei ght", + "h ash", + "ha sh", + "has h", + "b ose", + "bo se", + "bos e", + "f x", + "Ġ Email", + "ĠE mail", + "ĠEm ail", + "Ġ refer", + "Ġre fer", + "Ġref er", + "local host", + "_ RO", + "_R O", + "i ques", + "ique s", + "iqu es", + "iq ues", + "S tep", + "St ep", + "Ste p", + "Ġ ahead", + "Ġa head", + "Ġah ead", + "( View", + "(V iew", + "Ġ Services", + "ĠS ervices", + "ĠService s", + "ĠServ ices", + "Ġ Json", + "ĠJ son", + "ĠJs on", + "ess or", + "esso r", + "Ġ pun", + "Ġp un", + "Ġpu n", + "Ġ appropriate", + "Ġapp ropriate", + "Ġappropri ate", + "a kers", + "ak ers", + "ake rs", + "aker s", + "o sen", + "os en", + "ose n", + "p osing", + "pos ing", + "po sing", + "Ġ agent", + "Ġa gent", + "Ġag ent", + "Ġage nt", + "f c", + "Ġ transfer", + "Ġtrans fer", + "Ġtransf er", + "Ġ invalid", + "Ġin valid", + "Ġinval id", + "Ġ Research", + "ĠRe search", + "ĠRes earch", + "Vert ex", + "Ver tex", + "Ġ gay", + "Ġg ay", + "Ġga y", + "Ġ journal", + "Ġj ournal", + "Ġjo urnal", + "Ġjour nal", + "[ x", + "Ġ \"\",Ċ", + "Ġ\" \",Ċ", + "Ġ\"\" ,Ċ", + "Ġ\"\", Ċ", + "Ġ Well", + "ĠW ell", + "ĠWe ll", + "ĠWel l", + ". Tasks", + ".T asks", + ".Task s", + "S pec", + "Sp ec", + "Spe c", + "Ġ ol", + "Ġo l", + "Ġs pend", + "Ġsp end", + "Ġspe nd", + "Ġ Australia", + "ĠA ustralia", + "ĠAustral ia", + "ĠAustr alia", + "M atch", + "Mat ch", + ".j unit", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "Ġ MAX", + "ĠM AX", + "ĠMA X", + "iz able", + "iza ble", + "cl usive", + "clus ive", + "_ valid", + "_val id", + "_va lid", + "Ġ quarter", + "Ġqu arter", + "Ġquar ter", + "Ġquart er", + "y an", + "ya n", + "0 05", + "00 5", + "Ġ Edit", + "ĠE dit", + "ĠEd it", + "ar den", + "ard en", + "arde n", + "= new", + "=n ew", + "Ġ frag", + "Ġf rag", + "Ġfr ag", + "Ġfra g", + "B it", + "Bi t", + "z i", + "a ine", + "ain e", + "ai ne", + "u dd", + "ud d", + ". Object", + ".O bject", + ".Obj ect", + "de bug", + "deb ug", + "Ġ cash", + "Ġc ash", + "Ġca sh", + "Ġcas h", + "_ IM", + "_I M", + "Ġ een", + "Ġe en", + "Ġee n", + "Ġ commercial", + "Ġcom mercial", + "Ġcomm ercial", + "Ġcommerc ial", + "Ġ Video", + "ĠV ideo", + "ĠVi deo", + "ĠVid eo", + "ĠVide o", + "l oader", + "lo ader", + "load er", + "Ġ fixed", + "Ġf ixed", + "Ġfix ed", + "Ġfi xed", + "Ġ applications", + "Ġapp lications", + "Ġapplication s", + "Ġapplic ations", + "Ġappl ications", + "Ġ _,", + "Ġ_ ,", + "Ġ Russia", + "ĠR ussia", + "ĠRuss ia", + "it ect", + "ite ct", + "_ (", + "Ġ Block", + "ĠB lock", + "ĠBl ock", + "ĠBlo ck", + "ĠBloc k", + "Ġ san", + "Ġs an", + "Ġsa n", + "Ġ Tom", + "ĠT om", + "ĠTo m", + "Ġ perhaps", + "Ġper haps", + "Ġ sig", + "Ġs ig", + "Ġsi g", + "le vant", + "lev ant", + "Ġc orpor", + "Ġcor por", + "Ġcorp or", + "Ġcorpo r", + "at aset", + "ata set", + "atas et", + "r onic", + "ro nic", + "ron ic", + "x e", + "Ġ eth", + "Ġe th", + "Ġet h", + "S ome", + "So me", + "Som e", + "p op", + "po p", + "_ OK", + "_O K", + "Ġt end", + "Ġte nd", + "Ġten d", + ". Res", + ".R es", + ".Re s", + "_ and", + "_a nd", + "_an d", + "Ġ reviews", + "Ġre views", + "Ġreview s", + "Ġ wild", + "Ġw ild", + "Ġwi ld", + "Ġwil d", + "1 17", + "11 7", + "Ġ degree", + "Ġd egree", + "Ġde gree", + "Ġdeg ree", + ". O", + ". objects", + ".object s", + ".obj ects", + "_ args", + "_arg s", + "_ar gs", + "n il", + "ni l", + "Ġ disabled", + "Ġdis abled", + "Ġdisable d", + "P arent", + "Par ent", + "Pa rent", + "Paren t", + "Ġ notes", + "Ġn otes", + "Ġnot es", + "Ġno tes", + "Ġnote s", + "Ġ \"\"Ċ", + "Ġ\" \"Ċ", + "Ġ\"\" Ċ", + "( state", + "(st ate", + "(stat e", + "i strict", + "istr ict", + "Ġ logging", + "Ġlog ging", + ". IO", + ".I O", + "Ġ Mal", + "ĠM al", + "ĠMa l", + "D M", + "Ġ xml", + "Ġx ml", + "Ġxm l", + "Ġ Robert", + "ĠRob ert", + "ĠRo bert", + "e len", + "el en", + "ele n", + "l ayout", + "lay out", + "f ol", + "fo l", + "' ]))", + "'] ))", + "']) )", + ", b", + "Ġ Jer", + "ĠJ er", + "ĠJe r", + "f ilename", + "file name", + "fi lename", + "fil ename", + "Ġ fan", + "Ġf an", + "Ġfa n", + "Ġ Custom", + "ĠC ustom", + "ĠCust om", + "= \"\"", + "=\" \"", + "Ġ Die", + "ĠD ie", + "ĠDi e", + "B undle", + ". utils", + ".util s", + ".ut ils", + "Ġ trip", + "Ġt rip", + "Ġtr ip", + "Ġtri p", + "M B", + "Ġ soft", + "Ġs oft", + "Ġso ft", + "Ġsof t", + "_ MODE", + "_M ODE", + "_MO DE", + "_MOD E", + "Ġapp licable", + "Ġapplic able", + "Ġappl icable", + "Ġ upper", + "Ġu pper", + "Ġup per", + "Ġupp er", + "ER VER", + "ERV ER", + "ERVE R", + "_ al", + "_a l", + "_ LOG", + "_L OG", + "_LO G", + "H ere", + "He re", + "Her e", + "w p", + "Ġ Server", + "ĠS erver", + "ĠSer ver", + "ĠServ er", + "ĠServe r", + "Ġ Client", + "ĠC lient", + "ĠCl ient", + "ĠCli ent", + "Ġ chem", + "Ġc hem", + "Ġch em", + "Ġche m", + "S croll", + "Sc roll", + "Scr oll", + "Ġ highest", + "Ġh ighest", + "Ġhigh est", + "Ġhi ghest", + "Ġ Select", + "ĠS elect", + "ĠSe lect", + "ĠSel ect", + "ĠSele ct", + "Ġ \"@", + "Ġ\" @", + "Ġ Why", + "ĠW hy", + "ĠWh y", + "S ec", + "Se c", + "h eel", + "he el", + "hee l", + "O peration", + "Oper ation", + "Op eration", + "Opera tion", + "Ġ connected", + "Ġconn ected", + "Ġconnect ed", + "ir med", + "irm ed", + "Ġcit iz", + "Ġ Che", + "ĠC he", + "ĠCh e", + "Ġ forces", + "Ġfor ces", + "Ġforce s", + "Ġforc es", + "Ġ www", + "Ġw ww", + "Ġww w", + "R oot", + "Ro ot", + "AN CE", + "ANC E", + "M any", + "Man y", + "Ma ny", + "i cip", + "ic ip", + "ici p", + "r gan", + "rg an", + "2 20", + "22 0", + "Ġ Tor", + "ĠT or", + "ĠTo r", + "Ġ Press", + "ĠP ress", + "ĠPr ess", + "ĠPres s", + "ĠPre ss", + "Ġ Mor", + "ĠM or", + "ĠMo r", + "- line", + "-l ine", + "-li ne", + "u led", + "ul ed", + "ule d", + "> \\", + "Ġ thus", + "Ġt hus", + "Ġth us", + "Ġthu s", + "Ġ Register", + "ĠReg ister", + "h ol", + "ho l", + "Ġ Chinese", + "ĠCh inese", + "ĠChin ese", + "Ġ posted", + "Ġpos ted", + "Ġpost ed", + "Ġpo sted", + "Ġposte d", + "Ġm agn", + "Ġmag n", + "Ġma gn", + "ab ilities", + "abil ities", + "abilit ies", + "Ġd isease", + "Ġdis ease", + "Ġdise ase", + "Ġrem ains", + "Ġremain s", + "Ġ Prof", + "ĠP rof", + "ĠPro f", + "ĠPr of", + "- form", + "-f orm", + "-for m", + "Ġ cin", + "Ġc in", + "Ġci n", + "o rgan", + "or gan", + "org an", + "i cate", + "ic ate", + "ica te", + "Ġ stress", + "Ġst ress", + "Ġstr ess", + "Ġstre ss", + "] *", + "Ġ ----------------------------------------------------------------", + "Ġ---------------- ------------------------------------------------", + "Ġ------------------------------------------------ ----------------", + "Ġ-------------------------------- --------------------------------", + "Ġ------------------------------------------------------------ ----", + "_ context", + "_con text", + "_cont ext", + "or ry", + "orr y", + "Ġd ied", + "Ġdi ed", + "Ġdie d", + "m at", + "ma t", + "Ġ starts", + "Ġst arts", + "Ġstart s", + "Ġstar ts", + "Ġsta rts", + ". Message", + ".M essage", + "Ġ runs", + "Ġr uns", + "Ġrun s", + "Ġru ns", + "Ġ guide", + "Ġg uide", + "Ġgu ide", + "Ġguid e", + "Ġgui de", + "Ġw arranty", + "Ġwarrant y", + "ent ials", + "ential s", + "enti als", + "d ict", + "di ct", + "dic t", + "Ġ Size", + "ĠS ize", + "ĠSi ze", + "ĠSiz e", + "u ler", + "ul er", + "ule r", + "Ġres ponsible", + "Ġrespons ible", + "_ SET", + "_S ET", + "_SE T", + "Ġcont aining", + "Ġcontain ing", + "Ġconta ining", + "Ġ Price", + "ĠP rice", + "ĠPr ice", + "ĠPri ce", + "| |", + "3 50", + "35 0", + "F S", + "Ġ emp", + "Ġe mp", + "Ġem p", + "_ button", + "_b utton", + "_but ton", + "( uint", + "(u int", + "(ui nt", + "Ġs uff", + "Ġsu ff", + "Ġsuf f", + "p th", + "pt h", + "Ġdef initely", + "Ġdefinit ely", + "Ġdefinite ly", + "p ute", + "put e", + "pu te", + "Ġ marketing", + "Ġmark eting", + "Ġmarket ing", + "Ġ WH", + "ĠW H", + "Ġ Sie", + "ĠS ie", + "ĠSi e", + "+ =", + "OL OR", + "Ġ consult", + "Ġcons ult", + "Ġconsul t", + "Ġ signed", + "Ġs igned", + "Ġsign ed", + "Ġsig ned", + "Ġ sequence", + "Ġse quence", + "Ġsequ ence", + "l ee", + "le e", + "Ġ requirements", + "Ġrequire ments", + "Ġrequirement s", + "h y", + "Ex press", + "Exp ress", + "Expr ess", + "M T", + "s ey", + "se y", + "Ġ ult", + "Ġu lt", + "Ġul t", + "å ®", + "ellig ence", + "elli gence", + "Ġ analy", + "Ġan aly", + "Ġanal y", + "Ġana ly", + "Ġ dress", + "Ġd ress", + "Ġdr ess", + "Ġdre ss", + "e ngine", + "eng ine", + "engin e", + "Ġ Great", + "ĠG reat", + "ĠGr eat", + "ĠGre at", + "Ġ Android", + "ĠAnd roid", + "ĠAndr oid", + "Ġ Alex", + "ĠA lex", + "ĠAl ex", + "ĠAle x", + "m ode", + "mod e", + "mo de", + "D ictionary", + ". Date", + ".D ate", + "ä ½", + "V ICE", + "VI CE", + "VIC E", + "Ġf amilies", + "Ġfam ilies", + "Ġfamil ies", + "Ġ Russian", + "ĠR ussian", + "ĠRuss ian", + "ĠRussia n", + "ĠRus sian", + "Ġ Times", + "ĠT imes", + "ĠTime s", + "ĠTim es", + "ĠTi mes", + ". call", + ".c all", + ".ca ll", + ".cal l", + "$ (", + "Pro file", + "Pr ofile", + "Prof ile", + "Ġ folder", + "Ġf older", + "Ġfol der", + "Ġfold er", + "Ġfo lder", + "c hes", + "ch es", + "che s", + "Ġl egis", + "Ġle gis", + "Ġleg is", + "_ row", + "_r ow", + "_ro w", + "u nes", + "un es", + "une s", + "Ù Ħ", + "Ġ }).", + "Ġ} ).", + "Ġ}) .", + "As sert", + "Ass ert", + "a gen", + "ag en", + "age n", + "Ġ Hand", + "ĠH and", + "ĠHa nd", + "ĠHan d", + "I ter", + "It er", + "Ġbig gest", + "o reach", + "or each", + "ore ach", + "orea ch", + "Ġp olic", + "Ġpol ic", + "Ġpo lic", + "Ġ permissions", + "Ġper missions", + "Ġpermission s", + "Ġperm issions", + "Ġsh owed", + "Ġshow ed", + "Ġsho wed", + "Ġ Element", + "ĠE lement", + "ĠEl ement", + "ĠEle ment", + "ĠElem ent", + "Ġ topic", + "Ġt opic", + "Ġto pic", + "Ġtop ic", + "âĢĶ âĢĶ", + "r oad", + "ro ad", + "Ġ Bank", + "ĠB ank", + "ĠBa nk", + "ĠBan k", + "re cord", + "rec ord", + "Ġ partners", + "Ġpart ners", + "Ġpartner s", + "Ġ Ref", + "ĠR ef", + "ĠRe f", + "ess ions", + "ession s", + "Ġas sess", + "Ġass ess", + "Ġasses s", + "U ST", + "US T", + "Ġ Party", + "ĠP arty", + "ĠPart y", + "ĠPar ty", + "p rodu", + "pr odu", + "pro du", + "prod u", + "L C", + "Ġ ul", + "Ġu l", + ". form", + ".f orm", + ".for m", + "h ide", + "hi de", + "hid e", + "c opy", + "co py", + "cop y", + "U TF", + "UT F", + "Ġ SOFTWARE", + "ĠSO FTWARE", + "čĊ čĊčĊ", + "čĊčĊ čĊ", + "Ġ Lin", + "ĠL in", + "ĠLi n", + "u na", + "un a", + "u gar", + "ug ar", + "uga r", + "Ġ administration", + "Ġadmin istration", + "Ġadministr ation", + "Ġ opening", + "Ġop ening", + "Ġopen ing", + "Ġ scan", + "Ġs can", + "Ġsc an", + "Ġsca n", + "Ġ continued", + "Ġcontin ued", + "Ġcontinue d", + "Ġcontinu ed", + "com ponent", + "comp onent", + ". sp", + ".s p", + "Ġhapp ens", + "Ġhappen s", + "um my", + "umm y", + "Ġ PR", + "ĠP R", + ". File", + ".F ile", + "Ġ Download", + "ĠD ownload", + "ĠDown load", + "Lo ading", + "Load ing", + "d i", + "Ġ waiting", + "Ġwait ing", + "Ġwa iting", + "_ ADD", + "_A DD", + "_AD D", + "T ab", + "Ta b", + ". querySelector", + ".query Selector", + "Ġe conomy", + "Ġecon omy", + "Ġeconom y", + "Ġec onomy", + "Ġ French", + "ĠF rench", + "ĠFr ench", + "t xt", + "tx t", + "Ġ fant", + "Ġf ant", + "Ġfa nt", + "Ġfan t", + "_ ;Ċ", + "_; Ċ", + "H older", + "Hold er", + "Ho lder", + "Hol der", + "S H", + "0 04", + "00 4", + "Ġ numpy", + "Ġn umpy", + "Ġnum py", + "Ġ street", + "Ġst reet", + "Ġstre et", + "Ġ male", + "Ġm ale", + "Ġma le", + "Ġmal e", + "\\ Model", + "\\M odel", + "an ging", + "ang ing", + "angi ng", + "3 33", + "33 3", + "Ġ Bill", + "ĠB ill", + "ĠBi ll", + "ĠBil l", + "Ġpre viously", + "Ġprevious ly", + "Ġprev iously", + "B I", + "Ġ Secret", + "ĠS ecret", + "ĠSe cret", + "ĠSec ret", + "Ġ mist", + "Ġm ist", + "Ġmis t", + "Ġmi st", + "Ġ Field", + "ĠF ield", + "ĠFi eld", + "u ps", + "up s", + "Ġ Process", + "ĠP rocess", + "ĠPro cess", + "ĠProc ess", + "Ġ kept", + "Ġk ept", + "Ġke pt", + "Ġkep t", + "Ġ OT", + "ĠO T", + "Ġ traditional", + "Ġtrad itional", + "Ġtradition al", + ". i", + "a min", + "am in", + "ami n", + "Ġh elps", + "Ġhelp s", + "Ġhel ps", + "A ny", + "An y", + "or igin", + "orig in", + "ori gin", + "il ters", + "ilter s", + "ilt ers", + "j u", + "d esc", + "de sc", + "des c", + "Ġ Account", + "ĠA ccount", + "ĠAc count", + "ĠAcc ount", + "Ġ )čĊ", + "Ġ) čĊ", + "k top", + "kt op", + "ol ly", + "oll y", + "Ġ fs", + "Ġf s", + "Ġ ê", + "Ġ ut", + "Ġu t", + "Ġ central", + "Ġc entral", + "Ġcent ral", + "Ġcentr al", + "( test", + "(t est", + "(te st", + ". An", + ".A n", + "Ġs atisf", + "G R", + "Ġ Full", + "ĠF ull", + "ĠFu ll", + "ĠFul l", + "Ġ heat", + "Ġh eat", + "Ġhe at", + "i ber", + "ib er", + "ibe r", + "Ġ onto", + "Ġon to", + "Ġont o", + "m os", + "mo s", + "S chema", + "Sch ema", + "Ġ factory", + "Ġf actory", + "Ġfact ory", + "Ġfactor y", + "Ġfacto ry", + "\" .$", + "\". $", + "a ws", + "aw s", + "St atement", + "State ment", + "Stat ement", + "( target", + "(t arget", + "ĉ new", + "ĉn ew", + ". be", + ".b e", + "Ġ guest", + "Ġg uest", + "Ġgu est", + "Ġ mal", + "Ġm al", + "Ġma l", + "A RY", + "AR Y", + "Ġre ached", + "Ġreach ed", + "Ġ mouse", + "Ġm ouse", + "Ġmo use", + "Ġmou se", + "Ġ challenge", + "Ġch allenge", + "Ġchall enge", + "Ġchalleng e", + "ĉ double", + "ĉd ouble", + "ĉdo uble", + "Ġ Tem", + "ĠT em", + "ĠTe m", + "Ġ terror", + "Ġt error", + "Ġte rror", + "Ġter ror", + "Ġterr or", + "Ġ extract", + "Ġex tract", + "Ġext ract", + "Ġextra ct", + "Ġextr act", + "_ TO", + "_T O", + "Ġse parate", + "Ġsepar ate", + "Ġseparat e", + "Ġ mir", + "Ġm ir", + "Ġmi r", + "h elp", + "he lp", + "hel p", + "Ġ capacity", + "Ġcap acity", + "Ġcapac ity", + "Ġcapacit y", + "Ġ Property", + "ĠP roperty", + "ĠPro perty", + "ĠProp erty", + "ĠProper ty", + "k an", + "ka n", + "_ create", + "_c reate", + "_cre ate", + "Ġ Light", + "ĠL ight", + "ĠLi ght", + "ĠLig ht", + ". parent", + ".p arent", + ".par ent", + ".pa rent", + "Ġunder standing", + "Ġunderstand ing", + "Ġunderst anding", + "Ġe asier", + "Ġeas ier", + "Ġ |=", + "Ġ| =", + "Ġ enh", + "Ġe nh", + "Ġen h", + "Ġ fat", + "Ġf at", + "Ġfa t", + "Ġpro test", + "Ġprot est", + "Ġprote st", + "a mm", + "am m", + "_ AT", + "_A T", + "- of", + "-o f", + "i ls", + "il s", + "Ġ Oh", + "ĠO h", + "Ġ psych", + "Ġps ych", + "Ġpsy ch", + "Ġ $.", + "Ġ$ .", + "i nds", + "in ds", + "ind s", + "Ġ relative", + "Ġrel ative", + "Ġrelativ e", + "Ġrelat ive", + "s hop", + "sh op", + "s hort", + "sh ort", + "Ġ Sand", + "ĠS and", + "ĠSan d", + "ĠSa nd", + "2 10", + "21 0", + "u estion", + "ues tion", + "uest ion", + "Ġf ear", + "Ġfe ar", + "/ ĊĊ", + "/Ċ Ċ", + ". context", + ".con text", + ".cont ext", + "Ġ schools", + "Ġschool s", + "Ġsch ools", + "Ġscho ols", + "Ġ serve", + "Ġs erve", + "Ġse rve", + "Ġser ve", + "Ġserv e", + "z one", + "zo ne", + "zon e", + "_ db", + "_d b", + "Ġmajor ity", + "ex ample", + "exam ple", + "Ġ lang", + "Ġl ang", + "Ġla ng", + "Ġlan g", + "ĉ ĠĠ", + "ĉĠ Ġ", + "Reg ister", + "e ndo", + "en do", + "end o", + "Ġ processing", + "Ġp rocessing", + "Ġprocess ing", + "Ġproces sing", + "_ template", + "_t emplate", + "_temp late", + "_tem plate", + "- user", + "-use r", + "-us er", + "-u ser", + "Ġ eg", + "Ġe g", + "C OM", + "CO M", + "Ġ Blue", + "ĠB lue", + "ĠBl ue", + "ĠBlu e", + "i ro", + "ir o", + "Ġ remote", + "Ġrem ote", + "Ġremot e", + "Ġ IT", + "ĠI T", + "# !/", + "#! /", + "Ġred istrib", + "Ġredis trib", + "1 24", + "12 4", + "r az", + "ra z", + "Ġ Since", + "ĠS ince", + "ĠSi nce", + "ĠSin ce", + "Ġ Tur", + "ĠT ur", + "ĠTu r", + "1 35", + "13 5", + "Back ground", + "= ==", + "== =", + "Ġ reflect", + "Ġref lect", + "Ġrefl ect", + "Ġp ros", + "Ġpro s", + "Ġpr os", + "c md", + "cm d", + "Ġw hom", + "Ġwh om", + "Ġwho m", + "Com pat", + "Comp at", + "Ġ Are", + "ĠA re", + "ĠAr e", + "Id entifier", + "Ident ifier", + "ĠT hom", + "ĠTh om", + "_ port", + "_p ort", + "_po rt", + "_por t", + "g u", + "Ġ monitor", + "Ġm onitor", + "Ġmon itor", + "r m", + "Ġ patient", + "Ġp atient", + "Ġpat ient", + "ver ter", + "vert er", + "verte r", + "Ġ gain", + "Ġg ain", + "Ġga in", + "- ui", + "-u i", + "I nst", + "In st", + "Ins t", + "Ġd ies", + "Ġdi es", + "Ġdie s", + "1 18", + "11 8", + "A rea", + "Ar ea", + "Are a", + "_ filter", + "_f ilter", + "_fil ter", + "_filt er", + "Ġg rat", + "Ġgr at", + "Ġgra t", + "Ġre ality", + "Ġreal ity", + "ord inate", + "ordin ate", + "ol ved", + "olve d", + "olv ed", + "Cont act", + "Conta ct", + "Ġcom pliance", + "Ġcompl iance", + "_ or", + "_o r", + "Ġ Var", + "ĠV ar", + "ĠVa r", + "d l", + "Ġ append", + "Ġapp end", + "Ġap pend", + "Ġappe nd", + "G ER", + "GE R", + "( max", + "(m ax", + ". render", + ".re nder", + ".r ender", + "Ġ dynamic", + "Ġd ynamic", + "Ġdynam ic", + "Ġdyn amic", + "ordin ates", + "ordinate s", + "_ options", + "_option s", + "_o ptions", + "_opt ions", + "_ column", + "_c olumn", + "_col umn", + "Ġb atter", + "Ġbatt er", + "Ġbat ter", + "s pace", + "sp ace", + "spa ce", + "L a", + "Ġ Source", + "ĠS ource", + "ĠSour ce", + "/ bin", + "/b in", + "Ġ dos", + "Ġd os", + "Ġdo s", + "Ġ Board", + "ĠB oard", + "ĠBo ard", + "Ġ Thread", + "ĠT hread", + "ĠTh read", + "ĠThr ead", + "Ġ AL", + "ĠA L", + "( config", + "(con fig", + "(conf ig", + "1 44", + "14 4", + "Ġ Mer", + "ĠM er", + "ĠMe r", + "Ġm iles", + "Ġmil es", + "Ġmi les", + "Ġmile s", + "_ header", + "_head er", + "_he ader", + "ETH OD", + "i zz", + "iz z", + "Ġb enefit", + "Ġbenef it", + "Ġbene fit", + "Ġ integr", + "Ġint egr", + "Ġinteg r", + "Ġinte gr", + "( current", + "(c urrent", + "(cur rent", + "(curr ent", + "u lo", + "ul o", + ". default", + ".d efault", + ".de fault", + ".def ault", + "Ġ Div", + "ĠD iv", + "ĠDi v", + "Ġ ton", + "Ġt on", + "Ġto n", + "o th", + "ot h", + "er vation", + "erv ation", + "erva tion", + "e dom", + "ed om", + "edo m", + "Ġ baby", + "Ġb aby", + "Ġba by", + "Ġbab y", + "ce ived", + "ceive d", + ". top", + ".t op", + ".to p", + "rior ity", + "Ġ Local", + "ĠL ocal", + "ĠLo cal", + "ĠLoc al", + "r iage", + "ri age", + "ria ge", + "Ġ attacks", + "Ġatt acks", + "Ġattack s", + "Ġ hospital", + "Ġh ospital", + "Ġhosp ital", + "1 68", + "16 8", + "Ġ female", + "Ġf emale", + "Ġfe male", + "Ġfem ale", + "Ġ Login", + "ĠLog in", + "ĠLo gin", + "ĠF lor", + "ĠFl or", + "ĠFlo r", + "Ġ chain", + "Ġch ain", + "Ġcha in", + "Ġchai n", + "ash ion", + "ashi on", + "Text ure", + "Tex ture", + "S ave", + "Sa ve", + "Ġ farm", + "Ġf arm", + "Ġfa rm", + "Ġfar m", + ". contains", + ".con tains", + ".cont ains", + ". Test", + ".T est", + ".Te st", + "Ġkn ows", + "Ġknow s", + "Ġgener ally", + "Ġgeneral ly", + "ip eline", + "ipe line", + "ipel ine", + "Ġme ant", + "Ġmean t", + "e ncia", + "en cia", + "enc ia", + "enci a", + "Ġn icht", + "Ġni cht", + "Ġnic ht", + "Ġnich t", + "Ġ contents", + "Ġcont ents", + "Ġcontent s", + "Ġconten ts", + "Ġconte nts", + "P M", + "ched ule", + "( line", + "(l ine", + "(li ne", + "C G", + "j ob", + "jo b", + "Ġ Real", + "ĠRe al", + "u er", + "ue r", + "f irm", + "fi rm", + "fir m", + "Ġ Ø", + "e tro", + "et ro", + "etr o", + "\" `Ċ", + "\"` Ċ", + "Ġ speech", + "Ġs peech", + "Ġspe ech", + "Ġ thr", + "Ġt hr", + "Ġth r", + "f oreach", + "fo reach", + "fore ach", + "for each", + "Ġ warn", + "Ġw arn", + "Ġwar n", + "Ġwa rn", + "ĉ l", + "Ġ heavy", + "Ġhe avy", + "Ġheav y", + "< li", + " )", + "_ char", + "_c har", + "_ch ar", + "re source", + "res ource", + "Ġ episode", + "Ġep isode", + "Ġepis ode", + "Ġ '_", + "Ġ' _", + "Ġ Es", + "ĠE s", + "Ġ Earth", + "ĠE arth", + "ĠEar th", + "Âł Âł", + "UP DATE", + "1 33", + "13 3", + "Ġ Sou", + "ĠS ou", + "ĠSo u", + "u is", + "ui s", + "t ypes", + "type s", + "ty pes", + "typ es", + "Ġ mas", + "Ġm as", + "Ġma s", + "Ġ fav", + "Ġf av", + "Ġfa v", + "Ġ construct", + "Ġcon struct", + "Ġconstr uct", + "_ rate", + "_r ate", + "_ra te", + "_rat e", + "e ras", + "er as", + "era s", + "Ġ |Ċ", + "Ġ| Ċ", + "rop erties", + "Ġ external", + "Ġex ternal", + "Ġext ernal", + "Ġextern al", + "Ġexter nal", + "Ġapp lied", + "Ġap plied", + "Ġappl ied", + "Ġ prefix", + "Ġp refix", + "Ġpre fix", + "Ġpref ix", + "o ted", + "ot ed", + "ote d", + "l ers", + "le rs", + "ler s", + "Ġ cold", + "Ġc old", + "Ġco ld", + "Ġcol d", + "Ġ SP", + "ĠS P", + "Ġ Church", + "ĠCh urch", + "ĠChu rch", + "Ġ Output", + "ĠOut put", + "l osed", + "lo sed", + "lose d", + "los ed", + "ç ļ", + "if icate", + "ific ate", + "ifi cate", + "ifica te", + "o peration", + "op eration", + "ope ration", + "oper ation", + "he rit", + "her it", + "x FF", + "xF F", + ". env", + ".e nv", + ".en v", + "_ err", + "_e rr", + "_er r", + "o sh", + "os h", + "D irection", + "Dir ection", + "Direct ion", + "Di rection", + "Dire ction", + "C ancel", + "Can cel", + "Ġ Frank", + "ĠF rank", + "ĠFr ank", + "ĠFra nk", + "ĠFran k", + "Ġ finding", + "Ġf inding", + "Ġfind ing", + "Ġfin ding", + ". )ĊĊ", + ".) ĊĊ", + ".)Ċ Ċ", + "Ġ router", + "Ġr outer", + "Ġro uter", + "Ġroute r", + "Ġrout er", + "Ġrou ter", + "ãĥ »", + "s es", + "se s", + "Ġ crow", + "Ġc row", + "Ġcr ow", + "Ġcro w", + "= ='", + "== '", + "Ġ sand", + "Ġs and", + "Ġsa nd", + "Ġsan d", + "Ġ rid", + "Ġr id", + "Ġri d", + "i ture", + "it ure", + "itu re", + "itur e", + "Ġ entre", + "Ġen tre", + "Ġent re", + "Ġentr e", + "Ġ observ", + "Ġo bserv", + "Ġob serv", + "Ġobs erv", + "Ġ vac", + "Ġv ac", + "Ġva c", + "ð Ł", + "- T", + "A rt", + "Ar t", + "n ight", + "ni ght", + ". search", + ".s earch", + ".se arch", + "Ġ exchange", + "Ġex change", + "Ġ district", + "Ġd istrict", + "Ġdi strict", + "Ġdistr ict", + ". os", + ".o s", + "Ġ department", + "Ġde partment", + "Ġdep artment", + "Ġdepart ment", + "Ġ documents", + "Ġdocument s", + "Ġdoc uments", + "Ġcent ury", + "Ġ Next", + "ĠN ext", + "ĠNe xt", + "ĠNex t", + "H ost", + "Ho st", + "ĠK IND", + "Ġs usp", + "Ġsu sp", + "Ġsus p", + "- P", + "r end", + "re nd", + "ren d", + ". em", + ".e m", + "u ite", + "ui te", + "uit e", + "i sters", + "is ters", + "ist ers", + "ister s", + "iste rs", + "( json", + "(j son", + "(js on", + "Ġ Ann", + "ĠA nn", + "ĠAn n", + "w t", + "a ti", + "at i", + "Ġ HTML", + "ĠHT ML", + "w hen", + "wh en", + "D irectory", + "Direct ory", + "Director y", + "Ġsh ut", + "< a", + "e dy", + "ed y", + "Ġ healthy", + "Ġhealth y", + "Ġheal thy", + "Ġ temperature", + "Ġt emperature", + "Ġtem perature", + "Ġtemper ature", + "Ġ Gen", + "ĠG en", + "ĠGe n", + "Ġ metal", + "Ġm etal", + "Ġme tal", + "Ġmet al", + "Ġmeta l", + "Ġ submit", + "Ġsub mit", + "Ġ DO", + "ĠD O", + "Ġat tract", + "Ġatt ract", + "Ġattr act", + "Ġ {};Ċ", + "Ġ{ };Ċ", + "Ġ{} ;Ċ", + "Ġ{}; Ċ", + "Ġ Word", + "ĠW ord", + "ĠWo rd", + "ĠWor d", + "Ġ ll", + "Ġl l", + "Ġse emed", + "Ġsee med", + "Ġseem ed", + "k o", + "I ED", + "IE D", + "Ġl abor", + "Ġla bor", + "Ġlab or", + ". Context", + ".Cont ext", + ".Con text", + "Ġ asset", + "Ġas set", + "Ġass et", + "y ou", + "yo u", + "Ġ cars", + "Ġc ars", + "Ġcar s", + "Ġca rs", + "Ġ Column", + "ĠC olumn", + "ĠCol umn", + "ĠColum n", + "Ġ ré", + "Ġr é", + "Ġ square", + "Ġs quare", + "Ġsqu are", + "Ġ NSString", + "ĠNS String", + "ĠNSS tring", + "âĢĿ ,", + "a pes", + "ap es", + "ape s", + ". ..Ċ", + ".. .Ċ", + "... Ċ", + "Ġ thanks", + "Ġth anks", + "Ġthan ks", + "Ġthank s", + "( props", + "(p rops", + "(pro ps", + "(pr ops", + "(prop s", + "Ġ tick", + "Ġt ick", + "Ġti ck", + "Ġtic k", + "Ġ experiment", + "Ġex periment", + "Ġexper iment", + "Ġexperi ment", + "Ġpr ison", + "Ġpri son", + "Ġpris on", + "t ree", + "tr ee", + "tre e", + "- text", + "-t ext", + "-te xt", + "Ġ IOException", + "ĠIO Exception", + "- width", + "-w idth", + "_ STATUS", + "_ST ATUS", + "_STAT US", + "f ast", + "fa st", + "fas t", + "- body", + "-b ody", + "-bo dy", + "- header", + "-head er", + "-he ader", + "Ġg uar", + "Ġgu ar", + "c rete", + "cre te", + "cret e", + "cr ete", + "Ġ Tim", + "ĠT im", + "ĠTi m", + "Ġcl early", + "Ġclear ly", + "Ġ Republican", + "ĠRepublic an", + "Ġ justify", + "Ġjust ify", + "и ÑĤ", + "ĉ ĠĠĠĠ", + "ĉĠĠĠ Ġ", + "ĉĠ ĠĠĠ", + "ĉĠĠ ĠĠ", + "c ache", + "ca che", + "cac he", + "; //", + ";/ /", + "Ġ presence", + "Ġpres ence", + "Ġf actors", + "Ġfact ors", + "Ġfa ctors", + "Ġfac tors", + "Ġfactor s", + "Ġfacto rs", + "Ġ employee", + "Ġe mployee", + "Ġemploy ee", + "] ))", + "]) )", + "M ember", + "Mem ber", + "Ġ selector", + "Ġse lector", + "Ġselect or", + "Ġsel ector", + "Ġsele ctor", + "b or", + "bo r", + "Ġ Mex", + "ĠM ex", + "ĠMe x", + "çļ Ħ", + "u tex", + "ut ex", + "ute x", + "_ tag", + "_t ag", + "_ta g", + "ail ure", + "Ġ Net", + "ĠN et", + "ĠNe t", + "Ġre li", + "Ġr eli", + "Ġrel i", + "E G", + "Ġ fprintf", + "Ġf printf", + "Ġ teen", + "Ġt een", + "Ġte en", + "Ġtee n", + "l oss", + "lo ss", + "los s", + "Ġle aving", + "1 34", + "13 4", + "De legate", + "Ġ beat", + "Ġb eat", + "Ġbe at", + "Ġ minute", + "Ġmin ute", + "Ġminut e", + "sub scribe", + "subs cribe", + "Ġred istribute", + "Ġredistrib ute", + "Ġredis tribute", + "Con stants", + "Constant s", + "Const ants", + "Ġc ancer", + "Ġcan cer", + "Ġcanc er", + "/ {", + "B L", + "Ġ span", + "Ġs pan", + "Ġsp an", + "Ġspa n", + "Ġ Child", + "ĠCh ild", + "ĠChi ld", + "C enter", + "Cent er", + "Ġ earth", + "Ġe arth", + "Ġear th", + "Y S", + "Ġ Level", + "ĠLe vel", + "ĠLev el", + "Ġ sea", + "Ġs ea", + "Ġse a", + ". support", + ".s upport", + ".sup port", + ". inner", + ".in ner", + ". Item", + ".I tem", + ".It em", + "il ling", + "ill ing", + "illi ng", + "illin g", + "Ġ ĠĠĠĊĠĠĠĠĊ", + "ĠĠ ĠĠĊĠĠĠĠĊ", + "ĠĠĠĠ ĊĠĠĠĠĊ", + "ĠĠĠ ĠĊĠĠĠĠĊ", + "ĠĠĠĠĊ ĠĠĠĠĊ", + "Ġ Label", + "ĠL abel", + "ĠLa bel", + "ĠLab el", + "3 20", + "32 0", + "Ġ Est", + "ĠE st", + "ĠEs t", + "( arg", + "(a rg", + "(ar g", + "1 45", + "14 5", + "bo Box", + "ĉ foreach", + "ĉf oreach", + "ĉfor each", + "c os", + "co s", + "F ailed", + "Fail ed", + "Fa iled", + "s wers", + "sw ers", + "swer s", + "E ditor", + "Ed itor", + "Edit or", + "r ont", + "ro nt", + "ron t", + "Ġ MP", + "ĠM P", + "ex pr", + "exp r", + "Ġ Life", + "ĠL ife", + "ĠLi fe", + "ĠLif e", + "Ġ ??", + "Ġ? ?", + "ö r", + "Ġ attend", + "Ġatt end", + "Ġatte nd", + "Ġ Que", + "ĠQ ue", + "ĠQu e", + "Ġ species", + "Ġs pecies", + "Ġsp ecies", + "Ġspec ies", + "Ġspe cies", + "Ġspeci es", + "- D", + "Ġ aus", + "Ġa us", + "Ġau s", + "Str uct", + "Ġadv antage", + "Ġadvant age", + "o ston", + "os ton", + "ost on", + "osto n", + "- block", + "-b lock", + "-bl ock", + "in itial", + "init ial", + "C RE", + "CR E", + "Ġtr uly", + "Ġ compare", + "Ġcom pare", + "Ġcomp are", + "Ġcompar e", + "or ney", + "orn ey", + "orne y", + "Ġ spect", + "Ġs pect", + "Ġsp ect", + "Ġspec t", + "Ġspe ct", + "F ull", + "Fu ll", + "b es", + "be s", + "Ġ visible", + "Ġv isible", + "Ġvis ible", + "Ġ mess", + "Ġm ess", + "Ġme ss", + "Ġmes s", + "st ances", + "stance s", + "sta nces", + "stan ces", + "Ġ cloud", + "Ġc loud", + "Ġcl oud", + "Ġclo ud", + "_ version", + "_v ersion", + "Ġf urn", + "Ġfur n", + "Ġfu rn", + "ic ago", + "ica go", + "L OW", + "LO W", + "Ġ traffic", + "Ġtraff ic", + "Ġtra ffic", + "Ġtraf fic", + "Ġ fol", + "Ġf ol", + "Ġfo l", + "ry pto", + "rypt o", + "Ġ declar", + "Ġde clar", + "Ġdec lar", + "Ġdecl ar", + "Ġ slot", + "Ġs lot", + "Ġsl ot", + "Ġslo t", + "Ġ Ext", + "ĠE xt", + "ĠEx t", + "Ġ England", + "ĠEng land", + "ĠEngl and", + "Ġ Under", + "ĠU nder", + "ĠUn der", + "ĠUnd er", + "Ġ ta", + "Ġt a", + "l etter", + "let ter", + "lette r", + "lett er", + "2 03", + "20 3", + "Ġoff icer", + "Ġoffic er", + "Ġoffice r", + "Ġ Donald", + "ĠD onald", + "ĠDon ald", + "Y es", + "Ye s", + "_ json", + "_j son", + "_js on", + "I TableView", + "IT ableView", + "Ġ USE", + "ĠU SE", + "ĠUS E", + "mploy ee", + "Ġop inion", + "Ġopin ion", + "Ġ Aut", + "ĠA ut", + "ĠAu t", + "b order", + "bor der", + "Ġad vice", + "Ġadv ice", + "Ġautom atically", + "Ġautomatic ally", + "Ġautomat ically", + "is co", + "isc o", + "Ġ mm", + "Ġm m", + ". vis", + ".v is", + "a ml", + "am l", + "Ġ initialize", + "Ġinitial ize", + "Ġ ({", + "Ġ( {", + "Ġ ;ĊĊ", + "Ġ; ĊĊ", + "Ġ;Ċ Ċ", + "Ġ generation", + "Ġg eneration", + "Ġgener ation", + "Ġgen eration", + "Ġgene ration", + "Ġgenera tion", + "Ġ bits", + "Ġb its", + "Ġbit s", + "Ġbi ts", + "cl ipse", + "clip se", + "Ġu nf", + "Ġun f", + "u tors", + "ut ors", + "uto rs", + "utor s", + "p lt", + "pl t", + "Ġ delta", + "Ġd elta", + "Ġdel ta", + "Ġdelt a", + "e stroy", + "est roy", + "estr oy", + "estro y", + "i sis", + "is is", + "isi s", + "< br", + "Ċ", + "'> Ċ", + "a pers", + "ap ers", + "ape rs", + "aper s", + "] (", + "cont inue", + "contin ue", + "s pec", + "sp ec", + "spe c", + "Ġ Road", + "ĠR oad", + "ĠRo ad", + "A SH", + "AS H", + "il iar", + "ili ar", + "ilia r", + "Ġcontin ues", + "Ġcontinue s", + "Ġcontinu es", + "Ġ appoint", + "Ġapp oint", + "Ġap point", + "Ġ #Ċ", + "Ġ# Ċ", + "Ġ Vir", + "ĠV ir", + "ĠVi r", + "Ġ ?>\"", + "Ġ? >\"", + "Ġ?> \"", + "Ġ bin", + "Ġb in", + "Ġbi n", + "} \",", + "}\" ,", + "go ing", + "e ach", + "ea ch", + "B D", + "1 85", + "18 5", + "Ġ Access", + "ĠA ccess", + "ĠAc cess", + "ĠAcc ess", + "D oc", + "Do c", + "Ġ Management", + "ĠMan agement", + "ĠManage ment", + "ĠMana gement", + "B ER", + "BE R", + "as ket", + "ask et", + ". getInstance", + ".get Instance", + ".getIn stance", + "1 29", + "12 9", + "Ġestablish ed", + "s ocket", + "so cket", + "sock et", + "soc ket", + "I NS", + "IN S", + "ĉ virtual", + "ĉv irtual", + "ĉ result", + "ĉres ult", + "RE AD", + "REA D", + "_ height", + "_h eight", + "_he ight", + "1 52", + "15 2", + "Ġ Font", + "ĠF ont", + "ĠFo nt", + "ĠFon t", + "Ġ ();Ċ", + "Ġ( );Ċ", + "Ġ() ;Ċ", + "Ġ(); Ċ", + "_ html", + "_h tml", + "_ht ml", + "Ġ neighbor", + "Ġne ighbor", + "Ġneighb or", + "Ġneigh bor", + "l or", + "lo r", + "Ġ gather", + "Ġg ather", + "Ġga ther", + "Ġ })ĊĊ", + "Ġ} )ĊĊ", + "Ġ})Ċ Ċ", + "Ġ}) ĊĊ", + "Ġ identity", + "Ġid entity", + "Ġide ntity", + "Ġident ity", + "Ġ fab", + "Ġf ab", + "Ġfa b", + "p adding", + "pad ding", + "Ġ Route", + "ĠR oute", + "ĠRo ute", + "ĠRou te", + "ĠRout e", + "Enumer able", + "Enum erable", + "à ´", + "Ġ forced", + "Ġfor ced", + "Ġforce d", + "Ġforc ed", + "/ jquery", + "/j query", + ". ĊĊĊĊĊĊ", + ".ĊĊ ĊĊĊĊ", + ".Ċ ĊĊĊĊĊ", + ".ĊĊĊĊ ĊĊ", + ".ĊĊĊ ĊĊĊ", + ".ĊĊĊĊĊ Ċ", + "res ents", + "resent s", + "rese nts", + "_ left", + "_l eft", + "_le ft", + ". Param", + ".P aram", + ".Par am", + "ĉ throw", + "ĉth row", + "Ġ Ham", + "ĠH am", + "ĠHa m", + "Ġevent ually", + "Ġeventual ly", + "a cer", + "ace r", + "ac er", + "p ub", + "pu b", + "Ġ tra", + "Ġt ra", + "Ġtr a", + "un ique", + "uni que", + "uniq ue", + "d el", + "de l", + "Ġ Florida", + "ĠFl orida", + "ĠFlor ida", + "Ġ Clean", + "ĠC lean", + "ĠCl ean", + "ĠCle an", + "x a", + "Ġ ·", + "Ġ ·", + "Ġ validate", + "Ġvalid ate", + "Ġvalida te", + "Vis ual", + "Ex pression", + "Exp ression", + "Express ion", + "Expr ession", + "_ func", + "_f unc", + "_fun c", + "_fu nc", + "m ember", + "mem ber", + "ĉ h", + "t rl", + "tr l", + "1 36", + "13 6", + "ĉ G", + "nap shot", + "Ġ PropTypes", + "ĠProp Types", + "v in", + "vi n", + "1 53", + "15 3", + "] )ĊĊ", + "]) ĊĊ", + "])Ċ Ċ", + "o wl", + "ow l", + "if ies", + "ifi es", + "ifie s", + "Ġ $('.", + "Ġ$ ('.", + "Ġ$( '.", + "Ġ$(' .", + "Ġ Context", + "ĠCon text", + "ĠCont ext", + "ĠConte xt", + "Ġ Toast", + "ĠTo ast", + ". Key", + ".K ey", + "Ġoff icers", + "Ġoffic ers", + "Ġoffice rs", + "Ġofficer s", + "/ n", + "s n", + "un defined", + "und efined", + "undef ined", + ". items", + ".i tems", + ".item s", + ".it ems", + "ut ow", + "uto w", + "a mage", + "am age", + "ama ge", + "Ġ accounts", + "Ġac counts", + "Ġaccount s", + "o okie", + "ook ie", + "oo kie", + "S ection", + "Se ction", + "Sec tion", + "ic ians", + "ici ans", + "ician s", + "icia ns", + "Ġad vis", + "Ġadv is", + "( is", + "(i s", + "[ :,", + "[: ,", + "Ġ France", + "ĠF rance", + "ĠFr ance", + "ĠFranc e", + "ĠFra nce", + "ĠFran ce", + "F unc", + "Fun c", + "Fu nc", + "ic ious", + "ici ous", + "icio us", + "Ġ tok", + "Ġt ok", + "Ġto k", + "Ch annel", + "Chan nel", + "Ġ AD", + "ĠA D", + "_ NUM", + "_N UM", + "Ġ timeout", + "Ġtime out", + "l emma", + "le mma", + "lem ma", + "r eme", + "re me", + "rem e", + "u j", + ". Al", + ".A l", + "u clear", + "uc lear", + "ucle ar", + "( os", + "(o s", + "( \"<", + "(\" <", + "[ Ċ", + "f etch", + "fet ch", + "Ġ bal", + "Ġb al", + "Ġba l", + "Ġ guid", + "Ġg uid", + "Ġgu id", + "Ġgui d", + "- align", + "-al ign", + "Ġ Write", + "ĠW rite", + "ĠWr ite", + "Ġ Once", + "ĠO nce", + "ĠOn ce", + "ĠOnc e", + "utow ired", + "OD ULE", + "Ġ pitch", + "Ġp itch", + "Ġpit ch", + "C F", + "by tes", + "byte s", + "byt es", + "Ġ Commission", + "ĠCom mission", + "ĠComm ission", + "Ġin cred", + "Ġincre d", + "Ġinc red", + "Ġincr ed", + "P ER", + "PE R", + "_ response", + "_res ponse", + "_resp onse", + "Ġ Los", + "ĠL os", + "ĠLo s", + "p arser", + "par ser", + "parse r", + "pars er", + "Ġ assume", + "Ġas sume", + "Ġass ume", + "Ġassum e", + ". Request", + ".Re quest", + "Ġ Token", + "ĠT oken", + "ĠTo ken", + "ĠTok en", + "_ position", + "_p osition", + "_pos ition", + "Ġ nom", + "Ġn om", + "Ġno m", + "- term", + "-t erm", + "-te rm", + "Ġ remaining", + "Ġrem aining", + "Ġremain ing", + "i ostream", + "io stream", + "Ġ pieces", + "Ġp ieces", + "Ġpie ces", + "Ġpiece s", + "a py", + "ap y", + "Ġ Less", + "ĠL ess", + "ĠLe ss", + "ĠLes s", + "r ange", + "ra nge", + "ran ge", + "rang e", + "um bn", + "umb n", + "p rise", + "pr ise", + "pri se", + "_ option", + "_op tion", + "_o ption", + "_opt ion", + "2 30", + "23 0", + "I mpl", + "Im pl", + "Imp l", + "k wargs", + "kw args", + "Ġbusiness es", + "Al ert", + "Ale rt", + "Ġpart ies", + "Ġpar ties", + "Ġpartie s", + "Ġparti es", + "Ġ Container", + "ĠCont ainer", + "Ġ Private", + "ĠPr ivate", + "ĠPriv ate", + "Ġ Plan", + "ĠP lan", + "ĠPl an", + "ĠPla n", + "Ġ registered", + "Ġregister ed", + "Ġregist ered", + "Ġ jour", + "Ġj our", + "Ġjo ur", + "Ġjou r", + "a cker", + "ack er", + "ac ker", + "е ни", + "ен и", + "/ >", + "c hat", + "ch at", + "cha t", + "s ect", + "se ct", + "sec t", + "Ġ creation", + "Ġc reation", + "Ġcre ation", + "Ġcreat ion", + "Ġcrea tion", + "ol utely", + "olute ly", + "olut ely", + "Ġ instant", + "Ġin stant", + "Ġins tant", + "Ġinst ant", + "Ġ delivery", + "Ġd elivery", + "Ġdel ivery", + "Ġdeliver y", + "i cken", + "ic ken", + "ick en", + "y es", + "ye s", + "1 63", + "16 3", + "Ġ Franc", + "ĠFr anc", + "ĠFra nc", + "ĠFran c", + "b ling", + "bl ing", + "e nda", + "en da", + "end a", + "[ (", + "_ range", + "_r ange", + "_ra nge", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "Ġ schedule", + "Ġs chedule", + "Ġsched ule", + "C onn", + "Con n", + "Co nn", + "Ġ thank", + "Ġth ank", + "Ġthan k", + "Ġtha nk", + "x d", + "Ġ hook", + "Ġh ook", + "Ġho ok", + "Ġ documentation", + "Ġdocument ation", + "Param eters", + "Parameter s", + "H ello", + "Hel lo", + "Hell o", + "v t", + "Ġ articles", + "Ġart icles", + "Ġarticle s", + "Ġartic les", + "Ġ west", + "Ġw est", + "Ġwe st", + "Ġwes t", + "d efined", + "def ined", + "define d", + ". select", + ".s elect", + ".se lect", + ".sel ect", + "ok ens", + "oken s", + "oke ns", + "Ġ VAL", + "ĠV AL", + "ĠVA L", + ". file", + ".f ile", + ".fi le", + ".fil e", + "re set", + "res et", + "rese t", + "Ġ mys", + "Ġm ys", + "Ġmy s", + "Ġ MA", + "ĠM A", + "] ),", + "]) ,", + "Ġ cities", + "Ġc ities", + "Ġcit ies", + "Ġci ties", + "re lated", + "rel ated", + "å Ľ", + "Ġ appeared", + "Ġappe ared", + "Ġappear ed", + "Ġ wid", + "Ġw id", + "Ġwi d", + ". panel", + ".p anel", + ".pa nel", + ".pan el", + "Ġ Ins", + "ĠI ns", + "ĠIn s", + ". entity", + ".e ntity", + ".ent ity", + "Ġde cre", + "Ġdec re", + "Ġ Lou", + "ĠL ou", + "ĠLo u", + "( time", + "(t ime", + "(ti me", + "Ġ Thank", + "ĠTh ank", + "ĠThan k", + ". createElement", + ".create Element", + "Ġ mentioned", + "Ġmention ed", + "Ġment ioned", + "o unce", + "ou nce", + "oun ce", + "ounc e", + "Ġ Try", + "ĠT ry", + "ĠTr y", + "Ġ Wall", + "ĠW all", + "ĠWal l", + "ĠWa ll", + "/ images", + "/image s", + "/im ages", + "Ġ Menu", + "ĠM enu", + "ĠMe nu", + "ĠMen u", + "' čĊ", + "Ġ Er", + "ĠE r", + "Ġc ritic", + "Ġcr itic", + "Ġcrit ic", + "Ġcri tic", + "Ġ Year", + "ĠY ear", + "ĠYe ar", + "( param", + "(p aram", + "(par am", + "(pa ram", + "(para m", + "Ġ flo", + "Ġf lo", + "Ġfl o", + "N N", + "o oter", + "oot er", + "oo ter", + "Ġ ];Ċ", + "Ġ] ;Ċ", + "Ġ]; Ċ", + "Ġ Aff", + "ĠA ff", + "ĠAf f", + "\" github", + "\"g ithub", + "ro oms", + "room s", + "Ġ hyp", + "Ġh yp", + "Ġhy p", + "g lobal", + "glob al", + "Ġ avec", + "Ġa vec", + "Ġav ec", + "Ġave c", + "æľ Ī", + "Ġ completion", + "Ġcom pletion", + "Ġcomp letion", + "Ġcomple tion", + "Ġcomplet ion", + "Ġ cond", + "Ġc ond", + "Ġcon d", + "Ġco nd", + "on ymous", + "onym ous", + "( temp", + "(t emp", + "(te mp", + "Ġ stars", + "Ġst ars", + "Ġstar s", + "Ġsta rs", + "Ġ relevant", + "Ġre levant", + "Ġrele vant", + "Ġrelev ant", + "Ġ covered", + "Ġcover ed", + "Ġcov ered", + "Ġ elim", + "Ġe lim", + "Ġel im", + "_ types", + "_t ypes", + "_type s", + "_typ es", + "_ty pes", + "( bool", + "(b ool", + "Ġ tu", + "Ġt u", + "_ exists", + "_ex ists", + "_exist s", + "Ġ secure", + "Ġs ecure", + "Ġsec ure", + "Ġ stored", + "Ġst ored", + "Ġstore d", + "Ġstor ed", + "Ġsto red", + "] /", + "x F", + "Ġ Controller", + "ĠCont roller", + "ĠControl ler", + "ĠContr oller", + "Ġm igr", + "Ġmi gr", + "Ġmig r", + "M I", + "Ġ Den", + "ĠD en", + "ĠDe n", + "Ġ annual", + "Ġann ual", + "U IL", + "UI L", + "- and", + "-a nd", + "-an d", + "Ġ crime", + "Ġcr ime", + "Ġcri me", + "Ġcrim e", + "b el", + "be l", + "Ġk itchen", + "Ġkit chen", + "@ g", + "_ ph", + "_p h", + "ourn ament", + "Ġ Social", + "ĠS ocial", + "ĠSo cial", + "ĠSoc ial", + "ĠSoci al", + "Ġ Special", + "ĠS pecial", + "ĠSp ecial", + "ĠSpec ial", + "ĠSpe cial", + "lo gger", + "log ger", + "logg er", + "Ġ tail", + "Ġt ail", + "Ġta il", + "Ġtai l", + "Ġ unknown", + "Ġun known", + "Ġunk nown", + "Ġunknow n", + "d ed", + "de d", + "Ġapp rec", + "Ġap prec", + "( db", + "(d b", + "c f", + "1 55", + "15 5", + "Ġ assign", + "Ġas sign", + "Ġass ign", + "- out", + "-o ut", + "Ġ Mont", + "ĠM ont", + "ĠMon t", + "ĠMo nt", + "d p", + "w idget", + "wid get", + "Ġ stone", + "Ġs tone", + "Ġst one", + "Ġsto ne", + "- primary", + "-pr imary", + ". grid", + ".g rid", + ".gr id", + "Res ults", + "Result s", + "a zz", + "az z", + "Ġ daughter", + "Ġda ughter", + "Ġ curr", + "Ġc urr", + "Ġcur r", + "Ġcu rr", + "1 75", + "17 5", + "Ġ lin", + "Ġl in", + "Ġli n", + "Ġ south", + "Ġs outh", + "Ġso uth", + "Ġsou th", + "Ġsout h", + "form s", + "fo rms", + "for ms", + "Ġ OUT", + "ĠO UT", + "ĠOU T", + "l ette", + "le tte", + "let te", + "lett e", + "a ks", + "ak s", + "ig ure", + "igu re", + "Ġ EU", + "ĠE U", + "var iable", + "vari able", + "Ġ brief", + "Ġb rief", + "Ġbr ief", + "Ġbri ef", + "Ġ Scott", + "ĠS cott", + "ĠSc ott", + "ĠScot t", + "ĠSco tt", + "Ġ conference", + "Ġcon ference", + "Ġconf erence", + "Ġconfer ence", + "a nda", + "an da", + "and a", + "_ lock", + "_l ock", + "_lo ck", + "_loc k", + "o ral", + "or al", + "ora l", + "Ġe ine", + "Ġein e", + "Ġei ne", + "O RS", + "OR S", + "//// ////////////////////////////////////////////////////////////", + "//////// ////////////////////////////////////////////////////////", + "//////////////// ////////////////////////////////////////////////", + "//////////////////////////////// ////////////////////////////////", + "//////////// ////////////////////////////////////////////////////", + "//////////////////////////////////////////////// ////////////////", + "//////////////////////////////////////////////////////// ////////", + "//////////////////////////////////////////////////////////// ////", + "//////////////////////////////////////////////////// ////////////", + "es so", + "ess o", + "Ġ ris", + "Ġr is", + "Ġri s", + "Ġ gender", + "Ġg ender", + "Ġge nder", + "Ġgen der", + "es tic", + "est ic", + "esti c", + "L icense", + "Lic ense", + "( out", + "(o ut", + "Ġ ms", + "Ġm s", + "S ee", + "Se e", + "Ġw illing", + "Ġwill ing", + "Ġwil ling", + "a ze", + "az e", + "Ġ sports", + "Ġs ports", + "Ġsp orts", + "Ġsport s", + "Ġspo rts", + "Ġspor ts", + "Ġ yes", + "Ġy es", + "Ġye s", + "l u", + "Ġp urs", + "Ġpur s", + "Ġpu rs", + "/ javascript", + "/j avascript", + "/java script", + "/jav ascript", + "- pro", + "-p ro", + "-pr o", + "nav bar", + "_ product", + "_pro duct", + "_prod uct", + "/ bootstrap", + "/boot strap", + "Ġdr iving", + "Ġdriv ing", + "Ġdri ving", + "Ġ Ä", + "Ġpro pos", + "Ġprop os", + "ul tip", + "ult ip", + "ulti p", + "up lic", + ". email", + ".e mail", + ".em ail", + "Ġ approx", + "Ġapp rox", + "Ġap prox", + "Ġappro x", + "( cl", + "(c l", + "Ġ wear", + "Ġw ear", + "Ġwe ar", + "Ġ reply", + "Ġre ply", + "Ġrep ly", + "Ġrepl y", + "as set", + "ass et", + "asse t", + "Ġ ice", + "Ġi ce", + "Ġic e", + "Ġ tx", + "Ġt x", + "k r", + "Ġ Germany", + "ĠGerman y", + "ĠGer many", + "ĠGerm any", + "Ġ George", + "ĠGe orge", + "ĠGeorg e", + "Ġ cb", + "Ġc b", + "ĉ err", + "ĉe rr", + "M ove", + "Mo ve", + "Mov e", + "Ġ poly", + "Ġp oly", + "Ġpol y", + "Ġpo ly", + "v oice", + "vo ice", + "} \"", + "Ġ animal", + "Ġan imal", + "Ġanim al", + "Ġani mal", + "A v", + "Ġ Location", + "ĠL ocation", + "ĠLo cation", + "ĠLoc ation", + "Ġ native", + "Ġn ative", + "Ġnat ive", + "] [\"", + "][ \"", + "< double", + " \"", + "s tat", + "st at", + "sta t", + "Ġ },čĊ", + "Ġ} ,čĊ", + "Ġ}, čĊ", + "< span", + " =", + "Ð ±", + "1 39", + "13 9", + "i va", + "iv a", + ". AutoSize", + ".Auto Size", + "Ġ Lat", + "ĠL at", + "ĠLa t", + "_ ext", + "_e xt", + "_ex t", + "Initial ize", + ". register", + ".reg ister", + "1 56", + "15 6", + "O PY", + "OP Y", + "Ġ reverse", + "Ġre verse", + "Ġrev erse", + "Ġrevers e", + "Ġrever se", + "_ dis", + "_d is", + "_di s", + "' ][", + "'] [", + "Ġ prompt", + "Ġp rompt", + "Ġprom pt", + "on to", + "ont o", + "Ġ Journal", + "ĠJ ournal", + "ĠJo urnal", + "r outer", + "ro uter", + "rou ter", + "route r", + "Ġ mysqli", + "Ġm ysqli", + "Ġmys qli", + "Ġmysql i", + "# else", + ") \"", + "- xs", + "-x s", + "l ets", + "le ts", + "let s", + "p han", + "ph an", + "pha n", + ". LE", + ".L E", + "1 37", + "13 7", + "W ill", + "Wil l", + "Wi ll", + "Ġaff ord", + "Ġaf ford", + "Ġ skill", + "Ġs kill", + "Ġsk ill", + "Ġski ll", + "- toggle", + "-t oggle", + "N C", + "B ind", + "Bin d", + "Bi nd", + "T S", + "J ust", + "Ju st", + "it eral", + "ite ral", + "iter al", + "Y P", + "ĉ unsigned", + "ĉun signed", + "Ġ wind", + "Ġw ind", + "Ġwin d", + "Ġwi nd", + "1 49", + "14 9", + ") ):Ċ", + ")) :Ċ", + ")): Ċ", + "Ġ warning", + "Ġw arning", + "Ġwar ning", + "Ġwarn ing", + "Ġ Water", + "ĠW ater", + "ĠWat er", + "ĠWa ter", + "Ġ draft", + "Ġd raft", + "Ġdr aft", + "Ġdra ft", + "Ġ cm", + "Ġc m", + "Ġ sam", + "Ġs am", + "Ġsa m", + "Ġ holding", + "Ġh olding", + "Ġhold ing", + "Ġhol ding", + "z ip", + "zi p", + "Ġ Science", + "ĠSc ience", + "ĠSci ence", + "Ġsup posed", + "Ġsuppose d", + "Ġsupp osed", + "G en", + "Ge n", + "Ġ diet", + "Ġd iet", + "Ġdi et", + "Ġdie t", + "< h", + "Ġ Pass", + "ĠP ass", + "ĠPa ss", + "ĠPas s", + "v i", + "Ġh usband", + "Ġhus band", + "� �", + "n ote", + "not e", + "no te", + "Ġ About", + "ĠA bout", + "ĠAb out", + "ĠIn stitute", + "ĠInstit ute", + "ĠInstitut e", + "Ġ climate", + "Ġcl imate", + "Ġclim ate", + "Ġcli mate", + ". Format", + ".Form at", + ".For mat", + "Ġ nut", + "Ġn ut", + "Ġnu t", + "e sted", + "es ted", + "est ed", + "este d", + "Ġapp arent", + "Ġap parent", + "Ġappar ent", + "Ġappare nt", + "Ġ holds", + "Ġh olds", + "Ġhold s", + "Ġho lds", + "Ġhol ds", + "f i", + "n ews", + "ne ws", + "new s", + "C M", + "v ideo", + "vid eo", + "vi deo", + "vide o", + "' :'", + "': '", + "D ITION", + "DI TION", + "p ing", + "pi ng", + "pin g", + "Ġsen ior", + "Ġseni or", + "w a", + "- ->Ċ", + "-- >Ċ", + "--> Ċ", + "_ default", + "_d efault", + "_de fault", + "_def ault", + "Ġ Database", + "ĠD atabase", + "ĠData base", + "ĠDat abase", + "r ep", + "re p", + "E SS", + "ES S", + "n ergy", + "ner gy", + "nerg y", + ". Find", + ".F ind", + "_ mask", + "_m ask", + "_ma sk", + "_mas k", + "Ġ rise", + "Ġr ise", + "Ġris e", + "Ġri se", + "Ġ kernel", + "Ġk ernel", + "Ġker nel", + "Ġkern el", + ": :$", + ":: $", + ". Q", + "Ġoff ering", + "Ġoffer ing", + "de cl", + "dec l", + "Ġ CS", + "ĠC S", + "Ġ listed", + "Ġl isted", + "Ġli sted", + "Ġlist ed", + "Ġliste d", + "Ġlis ted", + "Ġ mostly", + "Ġmost ly", + "e nger", + "en ger", + "eng er", + "enge r", + "Ġ blocks", + "Ġb locks", + "Ġbl ocks", + "Ġblock s", + "Ġblo cks", + "Ġbloc ks", + "o lo", + "ol o", + "Ġgover ning", + "Ġgovern ing", + "\\ F", + "Ġcon cent", + "Ġconc ent", + "Ġconce nt", + ". getText", + ".get Text", + "Ġ mb", + "Ġm b", + "Ġocc urred", + "Ġoccur red", + "Ġ changing", + "Ġch anging", + "Ġchang ing", + "Ġchan ging", + "S cene", + "Sc ene", + "_ CODE", + "_C ODE", + "_CO DE", + "_COD E", + "B eh", + "Be h", + "\" The", + "\"T he", + "Ġ tile", + "Ġt ile", + "Ġti le", + "Ġtil e", + "Ġ Association", + "ĠAssoci ation", + "ĠAssoc iation", + "ĉ P", + "al ty", + "alt y", + "_ ad", + "_a d", + "od ies", + "odi es", + "odie s", + "i ated", + "ia ted", + "iate d", + "iat ed", + "Ġ prepared", + "Ġpre pared", + "Ġprepar ed", + "Ġprepare d", + "Ġprep ared", + "p ossible", + "poss ible", + "Ġ mort", + "Ġm ort", + "Ġmor t", + "Ġmo rt", + "T EST", + "TE ST", + "TES T", + "1 42", + "14 2", + "Ġ ignore", + "Ġi gnore", + "Ġign ore", + "Ġig nore", + "Ġignor e", + "Ġ calc", + "Ġc alc", + "Ġcal c", + "Ġca lc", + "Ġ rs", + "Ġr s", + "Ġ assertEquals", + "Ġassert Equals", + "Ġ sz", + "Ġs z", + "Ġ THIS", + "ĠTH IS", + ". \"Ċ", + ".\" Ċ", + "Ġ canvas", + "Ġc anvas", + "Ġcan vas", + "Ġcanv as", + "j ava", + "ja va", + "jav a", + "Ġd ut", + "Ġdu t", + "VAL ID", + ". sql", + ".s ql", + ". input", + ".in put", + "Ġ aux", + "Ġa ux", + "Ġau x", + "S up", + "Su p", + "Ġ artist", + "Ġart ist", + "V ec", + "Ve c", + "_ TIME", + "_T IME", + "_TIM E", + "_TI ME", + ".string ify", + "et ween", + "Ġ Category", + "ĠC ategory", + "Ġ [-", + "Ġ[ -", + "Ġ DevExpress", + "ĠDev Express", + "Ġ Jul", + "ĠJ ul", + "ĠJu l", + "Ġ ring", + "Ġr ing", + "Ġri ng", + "Ġrin g", + ". ed", + ".e d", + "Y Y", + "L et", + "Le t", + "T extField", + "Text Field", + "Ġ flat", + "Ġf lat", + "Ġfl at", + "Ġfla t", + "_ print", + "_p rint", + "_pr int", + "_pri nt", + "Ġ OTHER", + "ĠOT HER", + "ad ian", + "adi an", + "adia n", + "Ġ checked", + "Ġcheck ed", + "e le", + "el e", + "Al ign", + "Ali gn", + "st anding", + "stand ing", + "stan ding", + "Ġ [],", + "Ġ[ ],", + "Ġ[] ,", + "Ġ lab", + "Ġl ab", + "Ġla b", + "u cky", + "uc ky", + "uck y", + "Ġ Christmas", + "ĠChrist mas", + "( image", + "(i mage", + "(im age", + ". module", + ".m odule", + ".mod ule", + "Ġ lots", + "Ġl ots", + "Ġlo ts", + "Ġlot s", + "Ġs lightly", + "Ġsl ightly", + "Ġslight ly", + "( final", + "(f inal", + "(fin al", + "(fi nal", + "er ge", + "erg e", + "è ¿", + "1 47", + "14 7", + "Ġ Police", + "ĠPol ice", + "ĠPo lice", + "ĠPolic e", + "1 43", + "14 3", + "Ġ Right", + "ĠR ight", + "ĠRig ht", + "ĠRi ght", + "Ġ award", + "Ġa ward", + "Ġaw ard", + "Ġ OS", + "ĠO S", + "Ġ {}ĊĊ", + "Ġ{ }ĊĊ", + "Ġ{} ĊĊ", + "Ġ{}Ċ Ċ", + "Ġ ptr", + "Ġp tr", + "Ġpt r", + "o ves", + "ov es", + "ove s", + "ic ated", + "ica ted", + "icate d", + "е м", + "еР¼", + "Ġ manage", + "Ġman age", + "Ġma nage", + "Ġmana ge", + "ol iday", + "olid ay", + "oli day", + "A mount", + "Am ount", + "ool Strip", + "t body", + "tb ody", + "N av", + "Na v", + "w rap", + "wr ap", + "B B", + "Ġw atching", + "Ġwatch ing", + "Ġwat ching", + "a rios", + "ar ios", + "ari os", + "ario s", + "Ġ optional", + "Ġoption al", + "Ġopt ional", + "_ K", + "Ġ Licensed", + "ĠL icensed", + "ĠLicense d", + "ĠLic ensed", + ". Map", + ".M ap", + ".Ma p", + "T imer", + "Time r", + "Tim er", + "Ti mer", + "Ġ AP", + "ĠA P", + "Ġ Rev", + "ĠR ev", + "ĠRe v", + "( o", + ", c", + "u min", + "um in", + "umi n", + "et ailed", + "etail ed", + "eta iled", + "Ġ Hy", + "ĠH y", + "Ġ blank", + "Ġbl ank", + "Ġbla nk", + "a gger", + "ag ger", + "agg er", + "Ġ Self", + "ĠS elf", + "ĠSe lf", + "ĠSel f", + "( )[", + "() [", + ". make", + ".m ake", + ".ma ke", + "e arn", + "ear n", + "ea rn", + "ch annel", + "chan nel", + "< pre", + "

;Ċ", + ">; Ċ", + "W orld", + "Ġ python", + "Ġp ython", + "Ġpy thon", + "Ġpyt hon", + "Ġ lif", + "Ġl if", + "Ġli f", + "Ġt rav", + "Ġtr av", + "Ġtra v", + "Ġcon ven", + "Ġconv en", + "com pany", + "comp any", + "compan y", + "Ġ Club", + "ĠC lub", + "ĠCl ub", + "1 38", + "13 8", + "V er", + "Ve r", + "B tn", + "Ġ zone", + "Ġz one", + "Ġzo ne", + "product s", + "produ cts", + "Ġ Educ", + "ĠE duc", + "ĠEd uc", + "ĠEdu c", + "Ġ verify", + "Ġver ify", + "Ġveri fy", + "Ġ Mil", + "ĠM il", + "ĠMi l", + "o no", + "on o", + "] );ĊĊ", + "]) ;ĊĊ", + "]);Ċ Ċ", + "]); ĊĊ", + "EN CE", + "ENC E", + "Ġ packet", + "Ġp acket", + "Ġpack et", + "Ġpa cket", + "Ġpac ket", + "Ġ cer", + "Ġc er", + "Ġce r", + "Ġ enumer", + "Ġe numer", + "Ġen umer", + "Ġenum er", + "Ġ pars", + "Ġp ars", + "Ġpar s", + "Ġpa rs", + "form ed", + "for med", + "forme d", + "Ġ occup", + "Ġocc up", + "Ġoc cup", + "t re", + "tr e", + "Ġ exercise", + "Ġex ercise", + "Ġexerc ise", + "D ay", + "Da y", + "_ sum", + "_s um", + "_su m", + "Ġ asking", + "Ġas king", + "Ġask ing", + "a ption", + "ap tion", + "apt ion", + "Ġ orders", + "Ġor ders", + "Ġorder s", + "Ġord ers", + "Ġs pending", + "Ġsp ending", + "Ġspend ing", + "Ġ ERR", + "ĠE RR", + "ĠER R", + ". Dis", + ".D is", + ".Di s", + "Ġ Util", + "ĠU til", + "ĠUt il", + "âĢľ I", + "\\ '", + "? )", + "/ >Ċ", + "/> Ċ", + "Ġe mot", + "Ġem ot", + "Ġemo t", + "Ġin fluence", + "Ġinflu ence", + "Ġ Africa", + "ĠA frica", + "ĠAfr ica", + "ĠAf rica", + "at ters", + "att ers", + "atter s", + "atte rs", + "Ù ħ", + ". session", + ".s ession", + ".sess ion", + "Ġ chief", + "Ġch ief", + "Ġchi ef", + "ĉ ĉĉĉĉĉĉĉĉĉĉ", + "ĉĉ ĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉ ĉĉĉĉĉĉĉ", + "ĉĉĉ ĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉ ĉĉĉĉĉĉ", + "ĉĉĉĉĉĉ ĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉ ĉĉĉ", + "ĉĉĉĉĉĉĉ ĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉ ĉĉ", + "ĉĉĉĉĉĉĉĉĉĉ ĉ", + "Ġ tom", + "Ġt om", + "Ġto m", + "cl uded", + "clude d", + "clud ed", + "s erial", + "se rial", + "ser ial", + "_ handler", + "_h andler", + "_handle r", + "_hand ler", + ". Type", + ".T ype", + "a ped", + "ap ed", + "ape d", + "Ġp olicies", + "Ġpol icies", + "Ġpolic ies", + "- ex", + "-e x", + "- tr", + "-t r", + "bl ank", + "bla nk", + "m erce", + "mer ce", + "merc e", + "Ġ coverage", + "Ġco verage", + "Ġcover age", + "Ġ rc", + "Ġr c", + "_ matrix", + "_m atrix", + "_mat rix", + "_ box", + "_b ox", + "_bo x", + "Ġ charges", + "Ġch arges", + "Ġchar ges", + "Ġcharg es", + "Ġcharge s", + "Ġ Boston", + "ĠB oston", + "ĠBo ston", + "ĠBos ton", + "P e", + "Ġcirc um", + "Ġcir cum", + "Ġ filled", + "Ġf illed", + "Ġfil led", + "Ġfill ed", + "Ġfille d", + "1 48", + "14 8", + "Ġ north", + "Ġn orth", + "Ġnor th", + "icture Box", + "ĉ res", + "ĉr es", + "ĉre s", + "è ®", + "Ġ termin", + "Ġter min", + "Ġterm in", + "Ġ [âĢ¦", + "Ġ[ âĢ¦", + "I RECT", + "IR ECT", + "IRE CT", + "Ġ ber", + "Ġb er", + "Ġbe r", + "Ġ\" ../../", + "Ġ\"../ ../", + "Ġ\".. /../", + "r etch", + "ret ch", + ". code", + ".c ode", + ".co de", + ".cod e", + "_ col", + "_c ol", + "_co l", + "Ġ Government", + "ĠG overnment", + "ĠGovern ment", + "Ġ argv", + "Ġar gv", + "Ġarg v", + "Ġ Lord", + "ĠL ord", + "ĠLo rd", + "ĠLor d", + "a si", + "as i", + "E xec", + "Ex ec", + "ĉ let", + "ĉl et", + "vert is", + "Ġ discussion", + "Ġdisc ussion", + "Ġdiscuss ion", + "en ance", + "ena nce", + "enan ce", + "ou tube", + "out ube", + "outu be", + "type of", + "typ eof", + "Ġs erved", + "Ġser ved", + "Ġserv ed", + "Ġserve d", + "Ġ Put", + "ĠP ut", + "ĠPu t", + "ĉ x", + "Ġ sweet", + "Ġs weet", + "Ġswe et", + "B efore", + "Be fore", + "ate gy", + "ateg y", + ". of", + ".o f", + "Ġ Material", + "ĠM aterial", + "ĠMat erial", + "ĠMate rial", + "ĠMater ial", + "S ort", + "So rt", + "O NT", + "ON T", + "ig ital", + "igit al", + "igi tal", + "W hy", + "Wh y", + "Ġs ust", + "Ġsu st", + "Ġsus t", + "Ġ ç", + "a bet", + "ab et", + "abe t", + "Ġ segment", + "Ġs egment", + "Ġse gment", + "Ġseg ment", + "Ġ [],Ċ", + "Ġ[ ],Ċ", + "Ġ[] ,Ċ", + "Ġ[], Ċ", + "Ġ Muslim", + "ĠM uslim", + "ĠMus lim", + "Ġ findViewById", + "Ġfind ViewById", + "c ut", + "cu t", + "_ TEXT", + "_T EXT", + "_TE XT", + "_TEX T", + "Ġ Mary", + "ĠM ary", + "ĠMar y", + "ĠMa ry", + "Ġl oved", + "Ġlo ved", + "Ġlove d", + "Ġlov ed", + "Ġ lie", + "Ġl ie", + "Ġli e", + "Ġ JO", + "ĠJ O", + "Ġ isset", + "Ġis set", + "Ġiss et", + "m onth", + "mon th", + "mo nth", + "mont h", + "Ġ prime", + "Ġpr ime", + "Ġprim e", + "Ġpri me", + "t i", + "Ġ Carol", + "ĠCar ol", + "ĠCa rol", + "U se", + "Us e", + "1 46", + "14 6", + "Ġ Pop", + "ĠP op", + "ĠPo p", + "Ġ Save", + "ĠS ave", + "ĠSa ve", + "ĠSav e", + "Int erval", + "Inter val", + "ex ecute", + "exec ute", + "d y", + "Ġ Iran", + "ĠI ran", + "ĠIr an", + "_ cont", + "_c ont", + "_con t", + "_co nt", + "ĉ T", + "Ġ phase", + "Ġph ase", + "Ġpha se", + "check box", + "we ek", + "Ġ hide", + "Ġh ide", + "Ġhi de", + "Ġhid e", + "Ġ til", + "Ġt il", + "Ġti l", + "Ġ ju", + "Ġj u", + "C ustom", + "b urg", + "bur g", + "bu rg", + "/ M", + "T ON", + "TO N", + "Ġ quant", + "Ġqu ant", + "Ġq uant", + "Ġqua nt", + "Ġquan t", + "Ġ rub", + "Ġr ub", + "Ġru b", + "ix els", + "ixel s", + "ixe ls", + "Ġ installed", + "Ġinst alled", + "Ġinstall ed", + "Ġinstal led", + "Ġ dump", + "Ġd ump", + "Ġdu mp", + "Ġdum p", + "Ġproper ly", + "( List", + "(L ist", + "Ġdec ide", + "Ġdecid e", + "ap ply", + "app ly", + "appl y", + "H as", + "Ha s", + "Ġ keeping", + "Ġke eping", + "Ġkeep ing", + "Ġcit izens", + "Ġcitiz ens", + "Ġcitizen s", + "Ġ joint", + "Ġj oint", + "Ġjoin t", + "Ġjo int", + "p ool", + "po ol", + "S ocket", + "So cket", + "Sock et", + "_ op", + "_o p", + "Ġ weapon", + "Ġwe apon", + "Ġweap on", + "g nore", + "gn ore", + "Ġ Exec", + "ĠE xec", + "ĠEx ec", + "ot ten", + "ott en", + "otte n", + "Ġ MS", + "ĠM S", + "Ġ (-", + "Ġ( -", + "Ġ Review", + "ĠR eview", + "ĠRe view", + "ĠRev iew", + "Ġ examples", + "Ġex amples", + "Ġexample s", + "Ġexam ples", + "Ġ tight", + "Ġt ight", + "Ġti ght", + "! (", + "D P", + "Ġ MessageBox", + "ĠMessage Box", + "Ġphot ograph", + "Ġphoto graph", + "1 64", + "16 4", + "U RI", + "UR I", + "é t", + "l ow", + "lo w", + "Ġ Grand", + "ĠG rand", + "ĠGr and", + "ĠGran d", + "ĠGra nd", + ".p ersistence", + ".persist ence", + "Ġmain tain", + "Ġmaint ain", + "Ġ nums", + "Ġn ums", + "Ġnum s", + "Ġnu ms", + "Ġ zip", + "Ġz ip", + "Ġzi p", + "i als", + "ial s", + "ia ls", + "Ġ Gets", + "ĠG ets", + "ĠGet s", + "ĠGe ts", + "p eg", + "pe g", + "Ġ Buffer", + "ĠB uffer", + "ĠBuff er", + "ĠBu ffer", + "ĠBuf fer", + "~~ ~~", + "ra structure", + "Ġ PL", + "ĠP L", + "u en", + "ue n", + "ob by", + "obb y", + "size of", + "siz eof", + "Ġ pic", + "Ġp ic", + "Ġpi c", + "Ġ seed", + "Ġs eed", + "Ġse ed", + "Ġsee d", + "Ġex perienced", + "Ġexperience d", + "Ġexperi enced", + "Ġ odd", + "Ġo dd", + "Ġod d", + "Ġ kick", + "Ġk ick", + "Ġki ck", + "Ġ procedure", + "Ġpro cedure", + "Ġproced ure", + "av igator", + "avig ator", + "- on", + "-o n", + ", j", + "Ġ Although", + "ĠAl though", + "Ġ userId", + "Ġuser Id", + "ac cept", + "acc ept", + "B lue", + "Bl ue", + "I Color", + "IC olor", + "l ayer", + "la yer", + "lay er", + "a vailable", + "av ailable", + "avail able", + "Ġ ends", + "Ġe nds", + "Ġen ds", + "Ġend s", + ". table", + ".t able", + ".tab le", + ".ta ble", + "Ġ dataset", + "Ġd ataset", + "Ġdata set", + "Ġdat aset", + "Ġdatas et", + "b us", + "bu s", + "Ġ explain", + "Ġex plain", + "Ġexp lain", + "Ġexpl ain", + "( pro", + "(p ro", + "(pr o", + "ĠCommit tee", + "Ġn oted", + "Ġnot ed", + "Ġno ted", + "Ġnote d", + "] :Ċ", + "]: Ċ", + "D im", + "Di m", + "st dio", + "std io", + "1 54", + "15 4", + ". \",Ċ", + ".\" ,Ċ", + ".\", Ċ", + "_ source", + "_s ource", + "1 81", + "18 1", + "Ġ Week", + "ĠWe ek", + "Ġ Edge", + "ĠE dge", + "ĠEd ge", + "Ġoper ating", + "Ġopera ting", + "Ġ este", + "Ġe ste", + "Ġes te", + "Ġest e", + "i pl", + "ip l", + "3 30", + "33 0", + "ag ination", + "agi nation", + "agina tion", + "Ġpro ceed", + "Ġproc eed", + "Ġ animation", + "Ġan imation", + "Ġanim ation", + ". Models", + ".Model s", + ".Mod els", + ".Mode ls", + "Ġ Watch", + "ĠW atch", + "ĠWat ch", + "i at", + "ia t", + "Ġop pon", + "Ġopp on", + "/ A", + "Re port", + "Rep ort", + "Repo rt", + "Ġ sounds", + "Ġs ounds", + "Ġso unds", + "Ġsound s", + "Ġsou nds", + "_ buf", + "_b uf", + "IE LD", + "IEL D", + "Ġb und", + "Ġbu nd", + "Ġbun d", + "ĉ get", + "ĉg et", + ". pr", + ".p r", + "( tmp", + "(t mp", + "(tm p", + "Ġ kid", + "Ġk id", + "Ġki d", + "> ĊĊĊ", + ">Ċ ĊĊ", + ">ĊĊ Ċ", + "Ġ yang", + "Ġy ang", + "Ġya ng", + "Ġyan g", + "Not Found", + "Ñ Ĩ", + "m ath", + "ma th", + "mat h", + "@ gmail", + "@g mail", + "Ġ LIMIT", + "ĠL IMIT", + "ĠLI MIT", + "red ients", + "redient s", + "redi ents", + "Ġ vent", + "Ġv ent", + "Ġve nt", + "Ġven t", + "av igate", + "avig ate", + "avi gate", + "L ook", + "Lo ok", + "Ġ religious", + "Ġrel igious", + "Ġrelig ious", + "Ġ rand", + "Ġr and", + "Ġran d", + "Ġra nd", + "r io", + "ri o", + "( GL", + "(G L", + "_ ip", + "_i p", + "u an", + "ua n", + "ici ency", + "icie ncy", + "Ġ Change", + "ĠCh ange", + "ĠCha nge", + "ĠChan ge", + "ĠChang e", + "> čĊčĊ", + ">čĊ čĊ", + "Ġ Entity", + "ĠE ntity", + "ĠEnt ity", + "Ġren contre", + "Ġrencont re", + "Ġrencontr e", + "Ġ Ret", + "ĠR et", + "ĠRe t", + "p lan", + "pl an", + "pla n", + "é n", + "BO OL", + "u ries", + "ur ies", + "uri es", + "t rain", + "tr ain", + "tra in", + "Def inition", + "= ===========", + "== ==========", + "==== ========", + "======== ====", + "=== =========", + "=========== =", + "========= ===", + "========== ==", + "====== ======", + "===== =======", + "======= =====", + "z z", + "4 50", + "45 0", + "An imation", + "Anim ation", + "Ġ OK", + "ĠO K", + "_ menu", + "_m enu", + "_me nu", + ". bl", + ".b l", + "_ score", + "_s core", + "_sc ore", + "Ġ acad", + "Ġa cad", + "Ġac ad", + "( System", + "(S ystem", + "Ġ refresh", + "Ġre fresh", + "Ġref resh", + "Ġrefr esh", + "' =>$", + "'=> $", + "'= >$", + ". Graphics", + ".G raphics", + ".Graph ics", + "am ento", + "ament o", + "amen to", + "p id", + "pi d", + "t c", + "Ġ tips", + "Ġt ips", + "Ġti ps", + "Ġtip s", + "Ġ homes", + "Ġh omes", + "Ġhome s", + "Ġhom es", + "Ġho mes", + "Ġ fuel", + "Ġf uel", + "Ġfu el", + "Ġfue l", + "â ĸ", + "_ helper", + "_h elper", + "_help er", + "Ġ ĠčĊ", + "ĠĠ čĊ", + "Ġ Room", + "ĠR oom", + "ĠRo om", + "ĠRoo m", + ". Close", + ".C lose", + ".Cl ose", + "_ attr", + "_at tr", + "_att r", + "Ġ Mount", + "ĠM ount", + "ĠMo unt", + "ĠMou nt", + "Ġ Ev", + "ĠE v", + "ar ser", + "ars er", + "arse r", + "_ top", + "_t op", + "_to p", + "e ah", + "ea h", + "Ġ Delete", + "ĠDe lete", + "ĠDel ete", + "ãĢ į", + "u ke", + "uk e", + "Ġ usage", + "Ġu sage", + "Ġus age", + "Ġusa ge", + "a ria", + "ar ia", + "ari a", + "_ dev", + "_d ev", + "_de v", + "Ġ texture", + "Ġtext ure", + "Ġtex ture", + "Ġtextu re", + "Ġ conversation", + "Ġcon versation", + "Ġconvers ation", + "e per", + "ep er", + "B ean", + "Be an", + "d one", + "do ne", + "don e", + "non atomic", + "Ġ Second", + "ĠSe cond", + "ĠSec ond", + "Ġsh ooting", + "Ġshoot ing", + "Ġsho oting", + "_ pre", + "_p re", + "_pr e", + "Com ponents", + "Component s", + "Comp onents", + "Ġ ]ĊĊ", + "Ġ] ĊĊ", + "Ġ]Ċ Ċ", + "_ _,", + "__ ,", + "st itution", + "stit ution", + ". Char", + ".C har", + ".Ch ar", + "> ();ĊĊ", + ">( );ĊĊ", + ">();Ċ Ċ", + ">() ;ĊĊ", + ">(); ĊĊ", + "Ġpres ented", + "Ġpresent ed", + "Ġpresente d", + "Ġ wa", + "Ġw a", + "o ker", + "ok er", + "oke r", + "- ĊĊ", + "-Ċ Ċ", + "i ner", + "in er", + "ine r", + "Ġbe coming", + "Ġbec oming", + "Ġ incident", + "Ġinc ident", + "Ġincid ent", + "A tt", + "At t", + "1 62", + "16 2", + "Ġreve aled", + "Ġreveal ed", + "f orc", + "fo rc", + "for c", + "Ġ boot", + "Ġb oot", + "Ġbo ot", + "Ġboo t", + ". page", + ".p age", + ".pa ge", + ".pag e", + "En umerator", + "Enumer ator", + "Enum erator", + "1 65", + "16 5", + "_ ->", + "_- >", + "Ph oto", + "Phot o", + "Ġ spring", + "Ġs pring", + "Ġsp ring", + "Ġspr ing", + ". \",", + ".\" ,", + "Ġ Dictionary", + "ĠD ictionary", + "B JECT", + "BJ ECT", + "Ġ locations", + "Ġl ocations", + "Ġloc ations", + "Ġlocation s", + "Ġ samples", + "Ġs amples", + "Ġsample s", + "Ġsam ples", + "Ġsamp les", + "Input Stream", + "Ġ Brown", + "ĠB rown", + "ĠBr own", + "ĠBro wn", + "ĠBrow n", + "Ġ stats", + "Ġst ats", + "Ġstat s", + "Ġsta ts", + "q uality", + "qu ality", + "qual ity", + "Ñ ħ", + "- dis", + "-d is", + "-di s", + "Ġhelp ing", + "Ġhel ping", + "Ġ ped", + "Ġp ed", + "Ġpe d", + "2 24", + "22 4", + "( se", + "(s e", + "Ġ Who", + "ĠW ho", + "ĠWh o", + "a lian", + "al ian", + "ali an", + "alia n", + "in ternal", + "int ernal", + "inter nal", + "intern al", + "Ġ ft", + "Ġf t", + "> ().", + ">( ).", + ">() .", + "- >{", + "-> {", + "Ġ mine", + "Ġm ine", + "Ġmin e", + "Ġmi ne", + "Ġ sector", + "Ġs ector", + "Ġse ctor", + "Ġsec tor", + "Ġsect or", + "Ġ gro", + "Ġg ro", + "Ġgr o", + "Ġopport unities", + "Ġopportun ities", + "Ġ ü", + "Ġà ¼", + "Ġ mp", + "Ġm p", + "Ġalleg ed", + "Ġalle ged", + "Ġallege d", + "Ġdoub t", + "Ġdou bt", + "M ouse", + "Mo use", + "A bout", + "Ab out", + "_ part", + "_p art", + "_par t", + "_pa rt", + "Ġ chair", + "Ġc hair", + "Ġch air", + "Ġcha ir", + "Ġchai r", + "Ġ stopped", + "Ġst opped", + "Ġstop ped", + "Ġsto pped", + "1 61", + "16 1", + "l oop", + "lo op", + "loo p", + "ent ities", + "enti ties", + "Ġ apps", + "Ġa pps", + "Ġapp s", + "Ġap ps", + "ans ion", + "ansi on", + "Ġ mental", + "Ġm ental", + "Ġmen tal", + "Ġment al", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "F R", + "Ġdef end", + "Ġdefe nd", + "c are", + "ca re", + "car e", + "Ġ ideal", + "Ġi deal", + "Ġide al", + "Ġidea l", + "/ api", + "/a pi", + "/ap i", + "ur face", + "urf ace", + "0 11", + "01 1", + "Ġ ele", + "Ġe le", + "Ġel e", + "u lator", + "ul ator", + "ula tor", + "Ġ Rights", + "ĠR ights", + "ĠRight s", + "angu ages", + "anguage s", + "Ġf unds", + "Ġfun ds", + "Ġfund s", + "Ġfu nds", + "Ġ adapt", + "Ġad apt", + "Ġada pt", + "Ġadap t", + "At tributes", + "Attribute s", + "Attrib utes", + "Ġ deploy", + "Ġde ploy", + "Ġdep loy", + "o pts", + "op ts", + "opt s", + "Ġ validation", + "Ġvalid ation", + "Ġvalida tion", + "Ġconcern s", + "u ce", + "uc e", + ". num", + ".n um", + "ul ture", + "ult ure", + "ultur e", + "i la", + "il a", + "Ġ cup", + "Ġc up", + "Ġcu p", + "Ġ pure", + "Ġp ure", + "Ġpur e", + "Ġpu re", + ". Fore", + ".F ore", + ".For e", + "1 83", + "18 3", + "Ġ HashMap", + "ĠHash Map", + ". valueOf", + ".value Of", + "a sm", + "as m", + "M O", + "Ġ cs", + "Ġc s", + "Ġ stores", + "Ġst ores", + "Ġstore s", + "Ġstor es", + "Ġsto res", + "Ġ ************************************************************************", + "Ġ**************************************************************** ********", + "Ġ******************************** ****************************************", + "Ġ******** ****************************************************************", + "Ġ**************** ********************************************************", + "Ġ************************ ************************************************", + "Ġ**************************************** ********************************", + "Ġ******************************************************** ****************", + "Ġ************************************************ ************************", + "Ġ communication", + "Ġcomm unication", + "Ġcommunic ation", + "Ġcommun ication", + "m em", + "me m", + ". EventHandler", + ".Event Handler", + ". Status", + ".S tatus", + ".St atus", + ".Stat us", + "_ right", + "_r ight", + ".set On", + "S heet", + "She et", + "Ġ identify", + "Ġident ify", + "ener ated", + "ene rated", + "enerate d", + "ord ered", + "order ed", + "orde red", + "Ġ \"[", + "Ġ\" [", + "Ġs we", + "Ġsw e", + "Con dition", + "Cond ition", + "Ġ According", + "ĠA ccording", + "ĠAcc ording", + "ĠAccord ing", + "Ġ prepare", + "Ġpre pare", + "Ġprepar e", + "Ġprep are", + "Ġ rob", + "Ġr ob", + "Ġro b", + "P ool", + "Po ol", + "Ġ sport", + "Ġs port", + "Ġsp ort", + "Ġspo rt", + "Ġspor t", + "r v", + "Ġ Router", + "ĠR outer", + "ĠRoute r", + "ĠRo uter", + "ĠRou ter", + "ĠRout er", + "Ġ alternative", + "Ġaltern ative", + "Ġalter native", + "( []", + "([ ]", + "Ġ Chicago", + "ĠCh icago", + "ĠChic ago", + "i pher", + "ip her", + "iph er", + "is che", + "isc he", + "isch e", + "Ġ Director", + "ĠD irector", + "ĠDirect or", + "ĠDir ector", + "ĠDire ctor", + "k l", + "Ġ Wil", + "ĠW il", + "ĠWi l", + "ke ys", + "key s", + "Ġ mysql", + "Ġm ysql", + "Ġmy sql", + "Ġmys ql", + "Ġ welcome", + "Ġw elcome", + "Ġwel come", + "k ing", + "ki ng", + "kin g", + "Ġ Manager", + "ĠM anager", + "ĠMan ager", + "ĠManage r", + "ĠMana ger", + "Ġ caught", + "Ġca ught", + ") }Ċ", + ")} Ċ", + "S core", + "Sc ore", + "_ PR", + "_P R", + "Ġ survey", + "Ġs urvey", + "Ġsur vey", + "Ġsurv ey", + "Ġsurve y", + "h ab", + "ha b", + "He aders", + "Header s", + "Head ers", + "A DER", + "AD ER", + "ADE R", + "Ġ decor", + "Ġde cor", + "Ġdec or", + "Ġdeco r", + "Ġturn s", + "Ġtur ns", + "Ġ radius", + "Ġr adius", + "Ġrad ius", + "Ġradi us", + "er rupt", + "err upt", + "C or", + "Co r", + "Ġ mel", + "Ġm el", + "Ġme l", + "Ġ intr", + "Ġin tr", + "Ġint r", + "( q", + "Ġ AC", + "ĠA C", + "a mos", + "am os", + "amo s", + "M AX", + "MA X", + "Ġ Grid", + "ĠG rid", + "ĠGr id", + "ĠGri d", + "Ġ Jesus", + "ĠJ esus", + "ĠJes us", + "ĠJe sus", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + ". DE", + ".D E", + "Ġ ts", + "Ġt s", + "Ġ linked", + "Ġlink ed", + "Ġlin ked", + "f ree", + "fr ee", + "fre e", + "Ġ Qt", + "ĠQ t", + "Ġ /**čĊ", + "Ġ/ **čĊ", + "Ġ/* *čĊ", + "Ġ/** čĊ", + "Ġf aster", + "Ġfa ster", + "Ġfast er", + "Ġfas ter", + "c tr", + "ct r", + "_ J", + "D T", + ". Check", + ".C heck", + ".Ch eck", + "Ġ combination", + "Ġcomb ination", + "Ġcombin ation", + "Ġint ended", + "Ġintend ed", + "- the", + "-t he", + "-th e", + "- type", + "-t ype", + "1 82", + "18 2", + "e ctors", + "ect ors", + "ec tors", + "ector s", + "a mi", + "am i", + "u ting", + "ut ing", + "uti ng", + "utin g", + "Ġ uma", + "Ġu ma", + "Ġum a", + "X ML", + "XM L", + "U CT", + "UC T", + "A p", + "Ġ Random", + "ĠR andom", + "ĠRand om", + "ĠRan dom", + "Ġ ran", + "Ġr an", + "Ġra n", + ". sort", + ".s ort", + ".so rt", + "Ġ sorted", + "Ġs orted", + "Ġsort ed", + "Ġsor ted", + "Ġsorte d", + ". Un", + ".U n", + "4 01", + "40 1", + "_ PER", + "_P ER", + "_PE R", + "it ory", + "itor y", + "ito ry", + "Ġ priority", + "Ġp riority", + "Ġprior ity", + "Ġpriorit y", + "Ġ Gal", + "ĠG al", + "ĠGa l", + "Ġ Old", + "ĠO ld", + "ĠOl d", + "h ot", + "ho t", + "Ġ Display", + "ĠD isplay", + "ĠDis play", + "ĠDisp lay", + "( sub", + "(s ub", + "_ TH", + "_T H", + "_ Y", + "Ġ Care", + "ĠC are", + "ĠCar e", + "ĠCa re", + "lo ading", + "load ing", + "K ind", + "Kin d", + "Ki nd", + "_ handle", + "_h andle", + "_hand le", + ", ,", + "r ase", + "ra se", + "ras e", + "_ replace", + "_re place", + "_rep lace", + ". addEventListener", + ".add EventListener", + "Ġ RT", + "ĠR T", + "1 72", + "17 2", + "Ġ entered", + "Ġen tered", + "Ġent ered", + "Ġenter ed", + "g ers", + "ge rs", + "ger s", + "Ġ ich", + "Ġi ch", + "Ġic h", + "( start", + "(st art", + "2 05", + "20 5", + "/ app", + "/a pp", + "/ap p", + "Ġbr other", + "Ġbro ther", + "Ġbroth er", + "M emory", + "Mem ory", + "Memo ry", + "Out let", + "Ġ utf", + "Ġu tf", + "Ġut f", + "p rec", + "pr ec", + "pre c", + "Ġ navigation", + "Ġn avigation", + "Ġnav igation", + "Ġnavig ation", + "O RK", + "OR K", + "Ġ dst", + "Ġd st", + "Ġds t", + "D etail", + "De tail", + "Det ail", + "Ġaud ience", + "Ġaudi ence", + "Ġ dur", + "Ġd ur", + "Ġdu r", + "Ġ cluster", + "Ġcl uster", + "un ched", + "unc hed", + "unch ed", + "Ġ ],", + "Ġ] ,", + "Ġcomfort able", + ". values", + ".value s", + ".val ues", + "Ġ Total", + "ĠT otal", + "ĠTo tal", + "ĠTot al", + "Ġ snap", + "Ġs nap", + "Ġsn ap", + "Ġsna p", + "Ġstand ards", + "Ġstandard s", + "Ġper formed", + "Ġperform ed", + "Ġperfor med", + "h and", + "ha nd", + "han d", + "( \"@", + "(\" @", + "å Ń", + "Ġ phil", + "Ġp hil", + "Ġph il", + "Ġphi l", + "i br", + "ib r", + "t rim", + "tr im", + "tri m", + "Ġ forget", + "Ġf orget", + "Ġfor get", + "Ġforg et", + "Ġforge t", + "1 57", + "15 7", + "Ġ doctor", + "Ġdo ctor", + "Ġdoc tor", + ". TextBox", + ".Text Box", + "3 77", + "37 7", + "i cons", + "ic ons", + "icon s", + "ico ns", + ", s", + "Ġ Op", + "ĠO p", + "S m", + "S top", + "St op", + "ĉ List", + "ĉL ist", + "ĉ u", + "Com ment", + "Comm ent", + "_ VERSION", + "_V ERSION", + "_VER SION", + ".X tra", + "P erson", + "Per son", + "Pers on", + "r b", + "L OB", + "LO B", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĊ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĊ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ċ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĊ", + "Ġ Central", + "ĠC entral", + "ĠCent ral", + "2 70", + "27 0", + "I CK", + "IC K", + "r aq", + "ra q", + "Ġp utting", + "Ġput ting", + "Ġputt ing", + "Ġ md", + "Ġm d", + "Ġ Love", + "ĠL ove", + "ĠLo ve", + "ĠLov e", + "P rogram", + "Pro gram", + "Pr ogram", + "Prog ram", + "B order", + "o or", + "oo r", + "Ġall owing", + "Ġallow ing", + "Ġallo wing", + "a fter", + "af ter", + "aft er", + "Ġ entries", + "Ġen tries", + "Ġent ries", + "Ġentr ies", + "Ġ Maybe", + "ĠM aybe", + "ĠMay be", + "] ).", + "]) .", + "Ġ Short", + "ĠS hort", + "ĠSh ort", + "ĠSho rt", + ") \\", + ". now", + ".n ow", + ".no w", + "f riend", + "Ġ prefer", + "Ġp refer", + "Ġpre fer", + "Ġpref er", + "Ġ GPIO", + "ĠG PIO", + "ĠGP IO", + "ĠGPI O", + "o sis", + "os is", + "osi s", + "Ġ GameObject", + "ĠGame Object", + "Ġ skip", + "Ġs kip", + "Ġsk ip", + "Ġski p", + "Ġ competition", + "Ġcom petition", + "Ġcompet ition", + "Ġcompetit ion", + "_ match", + "_m atch", + "_mat ch", + "l ications", + "lic ations", + "lication s", + "_ CONT", + "_C ONT", + "_CON T", + "_CO NT", + ". groupBox", + ".group Box", + "Ġ als", + "Ġa ls", + "Ġal s", + "6 66", + "66 6", + "\" We", + "\"W e", + "_ eq", + "_e q", + "l an", + "la n", + "_ search", + "_s earch", + "_se arch", + "Ġ Music", + "ĠM usic", + "ĠMus ic", + "ĠMu sic", + "a sis", + "as is", + "asi s", + "Ġ bind", + "Ġb ind", + "Ġbi nd", + "Ġbin d", + "ĠIs land", + "ĠIsl and", + "r um", + "ru m", + "( E", + "Ġ seat", + "Ġs eat", + "Ġse at", + "Ġsea t", + "V ideo", + "Vi deo", + "Ġ ack", + "Ġa ck", + "Ġac k", + "re ek", + "ree k", + "={ ()", + "={( )", + "Ġ rating", + "Ġr ating", + "Ġrat ing", + "Ġra ting", + "Ġ restaurant", + "Ġrest aurant", + "Ġrestaur ant", + "Ġrestau rant", + "4 56", + "45 6", + "D EX", + "DE X", + "( buf", + "(b uf", + "p ping", + "pp ing", + "u ality", + "ual ity", + "uali ty", + "Ġ league", + "Ġle ague", + "1 76", + "17 6", + "Ġ focused", + "Ġf ocused", + "Ġfocus ed", + "Ġfoc used", + "a pon", + "ap on", + "apo n", + "$ data", + "$d ata", + "CL UD", + "CLU D", + "CLUD ING", + "Ġ absolute", + "Ġa bsolute", + "Ġabs olute", + "Ġabsolut e", + "Ġabsol ute", + "( query", + "(qu ery", + "Ġt ells", + "Ġtell s", + "Ġtel ls", + "A ng", + "An g", + "Ġcomm unities", + "Ġcommun ities", + "Ġh onest", + "Ġhon est", + "Ġho nest", + "Ġhone st", + "o king", + "ok ing", + "oki ng", + "okin g", + "Ġa part", + "Ġap art", + "Ġapar t", + "Ġapa rt", + "ar ity", + "ari ty", + "/ $", + "_ module", + "_m odule", + "_mod ule", + "Ġ Enc", + "ĠE nc", + "ĠEn c", + ". an", + ".a n", + ". Config", + ".Con fig", + "C re", + "Cr e", + "Ġsh ock", + "Ġsho ck", + "ĠA rab", + "ĠAr ab", + "ĠAra b", + "I ENT", + "IE NT", + "/ re", + "/r e", + "Ġre trie", + "Ġret rie", + "Ġretr ie", + "yc ler", + "ycle r", + "ycl er", + "i sa", + "is a", + "Ġ Organ", + "ĠO rgan", + "ĠOr gan", + "ĠOrg an", + ". graph", + ".g raph", + ".gr aph", + "Ġ í", + "ĠB AS", + "ĠBA S", + "E num", + "En um", + "Ġ possibly", + "Ġposs ibly", + "ÑĢ аÐ", + "ÑĢа Ð", + "Ġ Japanese", + "ĠJ apanese", + "ĠJapan ese", + "Ġ craft", + "Ġc raft", + "Ġcr aft", + "Ġcra ft", + "Ġ Place", + "ĠP lace", + "ĠPl ace", + "ĠPla ce", + "Ġt alent", + "Ġtal ent", + "Ġtale nt", + "Ġf unding", + "Ġfun ding", + "Ġfund ing", + "Ġ confirmed", + "Ġconf irmed", + "Ġconfirm ed", + "Ġ cycle", + "Ġc ycle", + "Ġcy cle", + "Ġcycl e", + "Ġcyc le", + "/ x", + "G E", + "Ġh earing", + "Ġhe aring", + "Ġhear ing", + "Ġ plants", + "Ġpl ants", + "Ġplan ts", + "Ġplant s", + "Ġpla nts", + "Ġ mouth", + "Ġm outh", + "Ġmo uth", + "Ġmou th", + "p ages", + "page s", + "pa ges", + "pag es", + "o ria", + "or ia", + "ori a", + "Ġ Remove", + "ĠRe move", + "ĠRem ove", + "_ total", + "_t otal", + "_to tal", + "_tot al", + "Ġ od", + "Ġo d", + "oll apse", + "d oor", + "do or", + "Ġb ought", + "Ġbo ught", + "Ġbou ght", + "Ġ addr", + "Ġadd r", + "Ġad dr", + "AR CH", + "ARC H", + "_ dim", + "_d im", + "_di m", + "d den", + "dd en", + "dde n", + "Ġdec ades", + "Ġdecade s", + "Ġdecad es", + "RE QUEST", + "REQ UEST", + "Ġ versions", + "Ġv ersions", + "Ġversion s", + "Ġvers ions", + "f ire", + "fi re", + "fir e", + "0 06", + "00 6", + "Ġ moves", + "Ġm oves", + "Ġmov es", + "Ġmove s", + "Ġmo ves", + "f b", + "Ġ coffee", + "Ġc offee", + "Ġco ffee", + "Ġcoff ee", + "Ġcof fee", + ". connect", + ".con nect", + ".conn ect", + "Ġ Row", + "ĠR ow", + "ĠRo w", + "Ġ schema", + "Ġs chema", + "Ġsch ema", + "Ġschem a", + "Ġsche ma", + "S cope", + "Sc ope", + "- Type", + "-T ype", + "Ġf ighting", + "Ġfight ing", + "Ġre tail", + "Ġr etail", + "Ġret ail", + "Ġ modified", + "Ġmod ified", + "T F", + "F iles", + "File s", + "Fi les", + "Fil es", + "n ie", + "ni e", + "_ command", + "_com mand", + "_comm and", + "s tone", + "st one", + "ston e", + "sto ne", + "Ġ ÑĤ", + "ĠÑ Ĥ", + "_ thread", + "_t hread", + "_th read", + "_thr ead", + "Ġ bond", + "Ġb ond", + "Ġbo nd", + "Ġbon d", + "Ġ Development", + "ĠDe velopment", + "ĠDev elopment", + "ĠDevelop ment", + "Ġ pt", + "Ġp t", + "F ORM", + "FO RM", + "FOR M", + "p let", + "pl et", + "ple t", + "Ġ identified", + "Ġident ified", + "c pp", + "cp p", + "2 06", + "20 6", + "2 25", + "22 5", + "Ġ coding", + "Ġc oding", + "Ġco ding", + "Ġcod ing", + "o ked", + "ok ed", + "oke d", + "Ġ Master", + "ĠM aster", + "ĠMa ster", + "ĠMas ter", + "ĠMast er", + "ID TH", + "Ġres idents", + "Ġresident s", + "Ġresid ents", + "Ġreside nts", + "r edit", + "re dit", + "red it", + "redi t", + "Ġ Photo", + "ĠPh oto", + "ĠPhot o", + "= -", + "u nte", + "un te", + "unt e", + "at eur", + "ate ur", + "1 59", + "15 9", + "_ STATE", + "_ST ATE", + "_STAT E", + "_STA TE", + "Ġ Sing", + "ĠS ing", + "ĠSi ng", + "ĠSin g", + "Ġ sheet", + "Ġs heet", + "Ġshe et", + ". val", + ".v al", + ".va l", + "or se", + "ors e", + "Ġh ers", + "Ġhe rs", + "Ġher s", + "Ġd etermined", + "Ġdetermin ed", + "Ġdetermine d", + "Ġdeterm ined", + "Com mon", + "Comm on", + "Ġ wed", + "Ġw ed", + "Ġwe d", + "_ queue", + "_q ueue", + "_que ue", + "P H", + "Ġ Atl", + "ĠA tl", + "ĠAt l", + "c red", + "cre d", + "cr ed", + "/ LICENSE", + "/L ICENSE", + "Ġ mes", + "Ġm es", + "Ġme s", + "Ġ advanced", + "Ġad vanced", + "Ġadv anced", + "Ġadvance d", + ". java", + ".j ava", + ".jav a", + ". Sh", + ".S h", + "G o", + "k ill", + "ki ll", + "kil l", + "f p", + "_ settings", + "_s ettings", + "_set tings", + "_setting s", + "Ġ pal", + "Ġp al", + "Ġpa l", + "Ġ truck", + "Ġtr uck", + "Ġ combined", + "Ġcomb ined", + "Ġcombine d", + "Ġcombin ed", + "Ġ \"${", + "Ġ\" ${", + "Ġ\"$ {", + "ĠC orpor", + "ĠCor por", + "ĠCorp or", + "Ġ joined", + "Ġj oined", + "Ġjoin ed", + "Ġjo ined", + "Ġ Jose", + "ĠJ ose", + "ĠJo se", + "ĠJos e", + "ĠC up", + "ĠCu p", + "u ns", + "un s", + "est ival", + "esti val", + "le vision", + "lev ision", + "Ġ broken", + "Ġb roken", + "Ġbr oken", + "Ġbro ken", + "Ġbroke n", + "Ġmar riage", + "Ġ Western", + "ĠWest ern", + "ĠWes tern", + "Ġrep resents", + "Ġrepresent s", + "Ġ Title", + "ĠT itle", + "ĠTi tle", + "ĠTit le", + "Ġ ss", + "Ġs s", + ". Ass", + ".A ss", + ".As s", + "ong oose", + "ongo ose", + "i ento", + "ient o", + "ien to", + "< >();Ċ", + "<>( );Ċ", + "<> ();Ċ", + "Ġabs olutely", + "Ġabsolute ly", + "Ġabsolut ely", + "Ġabsol utely", + "Ġ smooth", + "Ġsm ooth", + "Ġsmo oth", + "T ERN", + "TE RN", + "TER N", + "Ġ Unless", + "ĠUn less", + "W ord", + "Wo rd", + "Ġ merge", + "Ġm erge", + "Ġmer ge", + "Ġmerg e", + "i gan", + "ig an", + "iga n", + "Ġ Vol", + "ĠV ol", + "ĠVo l", + "Ġ nn", + "Ġn n", + ". getId", + ".get Id", + "Ġ з", + "ĠÐ ·", + "1 71", + "17 1", + "Ġ sexy", + "Ġse xy", + "Ġsex y", + "Ġse eking", + "Ġsee king", + "Ġseek ing", + "S ingle", + "Si ngle", + "Sin gle", + "Sing le", + ". this", + ".t his", + ".th is", + "1 79", + "17 9", + "Ġ kom", + "Ġk om", + "Ġko m", + "b ound", + "bo und", + "bou nd", + "; \"", + "Ġ fontSize", + "Ġfont Size", + "_ df", + "_d f", + "Ġin jury", + "Ġinj ury", + "( H", + "Ġ issued", + "Ġiss ued", + "Ġissue d", + "Ġissu ed", + "_ END", + "_E ND", + "_EN D", + ": self", + ":s elf", + "0 20", + "02 0", + "Ġ patch", + "Ġp atch", + "Ġpat ch", + "Ġle aves", + "Ġleave s", + "Ġ adopt", + "Ġad opt", + "Ġado pt", + "File Name", + "ãĢ IJ", + "Ġexec utive", + "Ġexecut ive", + "Ġ Byte", + "ĠB yte", + "ĠBy te", + "] ))Ċ", + "]) )Ċ", + "])) Ċ", + "Ġ nu", + "Ġn u", + "o uting", + "ou ting", + "out ing", + "cl uding", + "clud ing", + "- R", + ". options", + ".o ptions", + ".opt ions", + ".option s", + "Ġsub stant", + "Ġsubs tant", + "Ġsubst ant", + "av ax", + "ava x", + "ĠB UT", + "ĠBU T", + "Ġ technical", + "Ġtechn ical", + "Ġtw ice", + "Ġm ás", + "Ġmá s", + "Ġun ivers", + "Ġuni vers", + "y r", + "Ġ drag", + "Ġd rag", + "Ġdr ag", + "Ġdra g", + "Ġ DC", + "ĠD C", + "Ġ sed", + "Ġs ed", + "Ġse d", + "Ġ bot", + "Ġb ot", + "Ġbo t", + "Ġ Pal", + "ĠP al", + "ĠPa l", + "Ġ Hall", + "ĠH all", + "ĠHa ll", + "ĠHal l", + "force ment", + "forc ement", + "Ġa uch", + "Ġau ch", + "Ġauc h", + ". mod", + ".m od", + ".mo d", + "n otation", + "not ation", + "nota tion", + "_ files", + "_f iles", + "_file s", + "_fil es", + ". line", + ".l ine", + ".li ne", + ".lin e", + "_ flag", + "_f lag", + "_fl ag", + "[ name", + "[n ame", + "Ġ resolution", + "Ġre solution", + "Ġres olution", + "Ġb ott", + "Ġbo tt", + "Ġbot t", + "( \"[", + "(\" [", + "e nde", + "en de", + "end e", + "( arr", + "(a rr", + "(ar r", + "F ree", + "Fr ee", + "Fre e", + "( @\"", + "(@ \"", + "Ġ District", + "ĠD istrict", + "ĠDi strict", + "P EC", + "PE C", + ": -", + "P icker", + "Pic ker", + "Pi cker", + "Pick er", + "Ġ Jo", + "ĠJ o", + "Ġ ĠĠĠĠĊ", + "ĠĠ ĠĠĠĊ", + "ĠĠĠĠ ĠĊ", + "ĠĠĠ ĠĠĊ", + "ĠĠĠĠĠ Ċ", + "Ġ River", + "ĠR iver", + "ĠRiv er", + "ĠRi ver", + "_ rows", + "_r ows", + "_row s", + "_ro ws", + "Ġhelp ful", + "Ġmass ive", + "- --Ċ", + "-- -Ċ", + "--- Ċ", + "Ġme asures", + "Ġmeasure s", + "Ġmeas ures", + "0 07", + "00 7", + "Ġ Runtime", + "ĠR untime", + "ĠRun time", + "Ġw orry", + "Ġwor ry", + "Ġ Spec", + "ĠS pec", + "ĠSp ec", + "ĠSpe c", + "ĉ D", + "ãĢ ij", + "Ġ ){Ċ", + "Ġ) {Ċ", + "Ġ){ Ċ", + "Ġw orse", + "Ġwor se", + "Ġwors e", + "( filename", + "(f ilename", + "(file name", + "(fi lename", + "(fil ename", + "Ġ lay", + "Ġl ay", + "Ġla y", + "Ġ magic", + "Ġm agic", + "Ġmag ic", + "Ġ Their", + "ĠThe ir", + "o ul", + "ou l", + "st roy", + "str oy", + "stro y", + "Ġ Where", + "ĠW here", + "ĠWh ere", + "ĠWhe re", + "2 80", + "28 0", + "Ġs udden", + "Ġsu dden", + "Ġsud den", + "Ġd efe", + "Ġde fe", + "Ġdef e", + "Ġ binding", + "Ġb inding", + "Ġbin ding", + "Ġbind ing", + "Ġ flight", + "Ġf light", + "Ġfl ight", + "Ġ OnInit", + "ĠOn Init", + "Ġ Women", + "ĠW omen", + "ĠWo men", + "Ġ Policy", + "ĠP olicy", + "ĠPol icy", + "ĠPolic y", + "Ġdr ugs", + "Ġdrug s", + "Ġdru gs", + "ish ing", + "ishi ng", + "(' ../", + "('. ./", + "Ġ Mel", + "ĠM el", + "ĠMe l", + "p eat", + "pe at", + "t or", + "to r", + "Ġpro posed", + "Ġprop osed", + "Ġpropos ed", + "Ġpropose d", + "Ġst ated", + "Ġstate d", + "Ġstat ed", + "Ġsta ted", + "_ RES", + "_RE S", + "_R ES", + "Ġ east", + "Ġe ast", + "Ġeas t", + "Ġea st", + "2 12", + "21 2", + "Ġ CONDITION", + "ĠCON DITION", + "_ desc", + "_d esc", + "_de sc", + "_des c", + "Ġw inning", + "Ġwin ning", + "f olio", + "fo lio", + "fol io", + "M apper", + "Map per", + "Ma pper", + "Ġ Pan", + "ĠP an", + "ĠPa n", + "ĠA nge", + "ĠAn ge", + "ĠAng e", + ".s ervlet", + ".serv let", + "Ġ copies", + "Ġc opies", + "Ġco pies", + "Ġcop ies", + "L M", + "Ġ vm", + "Ġv m", + "å į", + "Ġ dictionary", + "Ġd ictionary", + "S eg", + "Se g", + "1 77", + "17 7", + "e lines", + "el ines", + "eline s", + "eli nes", + "elin es", + "Ġ Send", + "ĠS end", + "ĠSe nd", + "ĠSen d", + "Ġ iron", + "Ġi ron", + "Ġir on", + "Ġ Fort", + "ĠF ort", + "ĠFor t", + "ĠFo rt", + "1 66", + "16 6", + ". domain", + ".d omain", + ".do main", + ".dom ain", + "Ġde bate", + "Ġdeb ate", + "Not Null", + "e q", + "a cher", + "ac her", + "ach er", + "ache r", + "l f", + "ĉ fmt", + "ĉf mt", + "Ġl awy", + "Ġla wy", + "Ġlaw y", + "1 78", + "17 8", + "Ä Ł", + "Ġ Men", + "ĠM en", + "ĠMe n", + "Ġ trim", + "Ġt rim", + "Ġtr im", + "Ġtri m", + "( NULL", + "(N ULL", + "Ġ !!", + "Ġ! !", + "Ġ pad", + "Ġp ad", + "Ġpa d", + "Ġfollow s", + "Ġfoll ows", + "\" ][\"", + "\"] [\"", + "\"][ \"", + "r equ", + "re qu", + "req u", + "Ġ Ep", + "ĠE p", + ". github", + ".g ithub", + ".git hub", + "( img", + "(i mg", + "(im g", + "e to", + "et o", + "( '\\", + "(' \\", + "S ervices", + "Service s", + "Serv ices", + "umbn ail", + "_ main", + "_m ain", + "_ma in", + "p leted", + "pl eted", + "ple ted", + "plete d", + "plet ed", + "fort unately", + "fortunate ly", + "Ġ windows", + "Ġw indows", + "Ġwindow s", + "Ġwind ows", + "Ġ plane", + "Ġp lane", + "Ġpl ane", + "Ġplan e", + "Ġpla ne", + "Ġ Connection", + "ĠCon nection", + "ĠConnect ion", + "ĠConn ection", + ". local", + ".l ocal", + ".loc al", + ".lo cal", + "u ard", + "ua rd", + "uar d", + "} \\", + "= =\"", + "== \"", + "a ndon", + "an don", + "and on", + "ando n", + "Ġ Roy", + "ĠR oy", + "ĠRo y", + "w est", + "we st", + "1 58", + "15 8", + "ig inal", + "igin al", + "igi nal", + "em ies", + "emi es", + "emie s", + "i tz", + "it z", + "' ):Ċ", + "') :Ċ", + "'): Ċ", + "Ġ Peter", + "ĠP eter", + "ĠPe ter", + "ĠPet er", + "ĠPete r", + "Ġt ough", + "Ġto ugh", + "Ġtou gh", + "Ġre duced", + "Ġred uced", + "Ġredu ced", + "Ġreduce d", + "Ġ calculate", + "Ġc alculate", + "Ġcal culate", + "Ġcalcul ate", + "Ġcalc ulate", + "Ġ rapid", + "Ġr apid", + "Ġrap id", + "Ġra pid", + "c ustomer", + "custom er", + "cust omer", + "Ġ efficient", + "Ġeff icient", + "Ġeffic ient", + "Ġ medium", + "Ġm edium", + "Ġmed ium", + "Ġmedi um", + "Ġ fell", + "Ġf ell", + "Ġfe ll", + "Ġfel l", + ". ref", + ".re f", + ".r ef", + "Ġ Cas", + "ĠC as", + "ĠCa s", + "Ġ feedback", + "Ġfe edback", + "Ġfeed back", + "S peed", + "Sp eed", + "Spe ed", + "( output", + "(out put", + "a je", + "aj e", + "Ġ categories", + "Ġc ategories", + "Ġcategor ies", + "Ġcategorie s", + "Ġ fee", + "Ġf ee", + "Ġfe e", + "} ;", + "Ġ deleted", + "Ġde leted", + "Ġdel eted", + "Ġdelete d", + "Ġdelet ed", + "Ġdele ted", + "r eh", + "re h", + "Ġ proof", + "Ġp roof", + "Ġpro of", + "D esc", + "De sc", + "Des c", + "B uild", + "Bu ild", + "Ġs ides", + "Ġside s", + "Ġsi des", + "Ġsid es", + ". ArrayList", + ".Array List", + "- %", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "Ø ±", + ". match", + ".m atch", + ".mat ch", + "л и", + "Ġfe els", + "Ġfeel s", + "Ġfee ls", + "Ġachie ve", + "Ġach ieve", + "Ġc lim", + "Ġcl im", + "Ġcli m", + "_ ON", + "_O N", + "Ġ CD", + "ĠC D", + "Ġ teacher", + "Ġt eacher", + "Ġte acher", + "Ġteach er", + "Ġtea cher", + "_ current", + "_c urrent", + "_cur rent", + "_curr ent", + "b n", + "_ PL", + "_P L", + "is ting", + "ist ing", + "isti ng", + "E nable", + "En able", + "G EN", + "GE N", + "Ġ tv", + "Ġt v", + "Ġ sock", + "Ġs ock", + "Ġso ck", + "Ġsoc k", + "Ġ plays", + "Ġp lays", + "Ġpl ays", + "Ġplay s", + "Ġpla ys", + "Ġ discount", + "Ġdis count", + "Ġdisc ount", + "Ġdisco unt", + "Ġ KE", + "ĠK E", + "Ġ Debug", + "ĠDe bug", + "ĠDeb ug", + "F ore", + "For e", + "Fo re", + "Ġ Iraq", + "ĠI raq", + "ĠIr aq", + "Ġ appearance", + "Ġap pearance", + "Ġappear ance", + "M on", + "Mo n", + "Ġ styled", + "Ġst yled", + "Ġstyle d", + "Ġsty led", + "Ġstyl ed", + "Ġ Human", + "ĠH uman", + "ĠHum an", + "ĠHu man", + "i ot", + "io t", + "Ġ History", + "ĠH istory", + "ĠHi story", + "ĠHistor y", + "ĠHist ory", + "Ġs ac", + "Ġsa c", + "Ġ Collection", + "ĠC ollection", + "ĠCol lection", + "ĠColl ection", + "ĠCollect ion", + "Ġ recommended", + "Ġre commended", + "Ġrecomm ended", + "Ġrecommend ed", + ". Selected", + ".Se lected", + ".Select ed", + "Ġ organizations", + "Ġorgan izations", + "Ġorganization s", + "Ġorganiz ations", + "Ġdis covered", + "Ġdiscover ed", + "co hol", + "coh ol", + "a das", + "ad as", + "ada s", + "Ġ Thomas", + "ĠTh omas", + "ĠThom as", + "M ay", + "Ma y", + "Ġcon serv", + "Ġcons erv", + "Ġconse rv", + "Ġd omin", + "Ġdo min", + "Ġdom in", + "Ġ Follow", + "ĠF ollow", + "ĠFol low", + "Ġ Section", + "ĠS ection", + "ĠSe ction", + "ĠSec tion", + "ĠSect ion", + "Ġ Thanks", + "ĠTh anks", + "ĠThank s", + "ĠThan ks", + "User name", + "Ġ recipe", + "Ġrec ipe", + "Ġrecip e", + "Ġwonder ful", + ". sleep", + ".s leep", + "_ if", + "_i f", + "ĉ ĊĉĊ", + "ĉĊ ĉĊ", + "or no", + "orn o", + "Ġ ru", + "Ġr u", + "_ target", + "_t arget", + "_tar get", + ". \"\"", + ".\" \"", + "à ¦", + "Event Args", + "Ġ inputs", + "Ġin puts", + "Ġinput s", + "Ġinp uts", + "Ġf if", + "Ġfi f", + "Ġ vision", + "Ġv ision", + "Ġvis ion", + "c y", + "Ġ Series", + "ĠS eries", + "ĠSe ries", + "ĠSer ies", + "ĠSerie s", + ") (((", + ")( ((", + ")(( (", + "Ġtr ading", + "Ġtrad ing", + "Ġtra ding", + "Ġtradi ng", + "Ġ marker", + "Ġm arker", + "Ġmark er", + "Ġmar ker", + "B egin", + "Be gin", + "Ġ typically", + "Ġtyp ically", + "Ġtypical ly", + "Ġc auses", + "Ġca uses", + "Ġcause s", + "Ġcaus es", + "d ropdown", + "drop down", + "_ DEBUG", + "_DE BUG", + "2 60", + "26 0", + "Ġ detect", + "Ġd etect", + "Ġdet ect", + "c ountry", + "count ry", + "! \");Ċ", + "!\" );Ċ", + "!\"); Ċ", + "!\") ;Ċ", + "ĉ R", + "a ppy", + "ap py", + "app y", + "Ġc ref", + "Ġcr ef", + "Ġcre f", + "( '<", + "(' <", + "\" =>", + "Ġ LE", + "ĠL E", + "re ader", + "read er", + "rea der", + "Ġ administr", + "Ġadmin istr", + "à µ", + "u cket", + "uc ket", + "uck et", + "Ġf ashion", + ". char", + ".c har", + ".ch ar", + "i zar", + "iz ar", + "iza r", + "Ġ disable", + "Ġd isable", + "Ġdis able", + "Ġs uc", + "Ġsu c", + "Ġ Live", + "ĠL ive", + "ĠLi ve", + "ĠLiv e", + "i ssue", + "iss ue", + "Ġ metadata", + "Ġm etadata", + "Ġmet adata", + "Ġmeta data", + "f lags", + "fl ags", + "flag s", + "Ġ ðŁ", + "Ġð Ł", + "Ġ committed", + "Ġcom mitted", + "Ġcomm itted", + "Ġcommit ted", + "Ġ va", + "Ġv a", + "Ġ rough", + "Ġr ough", + "Ġro ugh", + "Ġrou gh", + "Ġ '''Ċ", + "Ġ' ''Ċ", + "Ġ'' 'Ċ", + "Ġ''' Ċ", + "Ġ highlight", + "Ġhigh light", + "_ vars", + "_v ars", + "_var s", + "_va rs", + "V O", + "Ġ encoding", + "Ġen coding", + "Ġenc oding", + "- Z", + "_ sign", + "_s ign", + "_sig n", + "_si gn", + "$ (\"#", + "$( \"#", + "$(\" #", + "Ġ rain", + "Ġr ain", + "Ġra in", + "re atest", + "reate st", + "reat est", + "rea test", + "Ġ END", + "ĠE ND", + "ĠEN D", + "S election", + "Se lection", + "Select ion", + "Sel ection", + "Sele ction", + "Ġ candidates", + "Ġc andidates", + "Ġcandid ates", + "Ġcandidate s", + "Ġ sav", + "Ġs av", + "Ġsa v", + ". Empty", + "Ġdec isions", + "Ġdecision s", + "Ġdecis ions", + "Ġcoll abor", + "r idge", + "ri dge", + "rid ge", + "f eed", + "fe ed", + "fee d", + "r ession", + "ress ion", + "Ġ persons", + "Ġper sons", + "Ġperson s", + "Ġpers ons", + "Ġperso ns", + "V M", + "0 08", + "00 8", + "e ga", + "eg a", + "_ BIT", + "_B IT", + "A ccording", + "Acc ording", + "ack ed", + "ac ked", + "Ġdoll ars", + "Ġdollar s", + "_ loss", + "_l oss", + "_lo ss", + "Ġ Cost", + "ĠC ost", + "ĠCo st", + "ĠCos t", + "} \"Ċ", + "}\" Ċ", + "Not ification", + "Ġpro stit", + "Ġpros tit", + "Ġprost it", + "Ġ authority", + "Ġauthor ity", + ". rec", + ".re c", + ".r ec", + "Ġsp okes", + "Ġspoke s", + "Ġspo kes", + "Ġ Today", + "ĠT oday", + "ĠTo day", + "ĠTod ay", + "i stant", + "is tant", + "ist ant", + "istan t", + "ista nt", + "Ġ Head", + "ĠH ead", + "ĠHe ad", + "âĢĿ .", + "er tainment", + "ert ainment", + "ertain ment", + "c ean", + "ce an", + "cea n", + "c ulate", + "cul ate", + "cu late", + "Ġ ven", + "Ġv en", + "Ġve n", + "How ever", + "_ arr", + "_a rr", + "_ar r", + "Ġ tokens", + "Ġt okens", + "Ġtoken s", + "Ġtok ens", + "G raph", + "Gr aph", + "Ġ Jud", + "ĠJ ud", + "ĠJu d", + "Ġ Virgin", + "ĠVir gin", + "Ġ Serial", + "ĠS erial", + "ĠSe rial", + "ĠSer ial", + "un ning", + "unn ing", + "M utable", + "Mu table", + "Mut able", + "a gers", + "ag ers", + "age rs", + "ager s", + ". csv", + ".c sv", + ".cs v", + "Ġdevelop ing", + "Ġdevel oping", + "Ġ instructions", + "Ġin structions", + "Ġinstruction s", + "Ġinstr uctions", + "Ġinstruct ions", + "Ġ promise", + "Ġp romise", + "Ġpro mise", + "Ġprom ise", + "Ġ requested", + "Ġrequest ed", + "Ġrequ ested", + "_ encode", + "_en code", + "_enc ode", + "/ \"", + "Ġ Icon", + "ĠI con", + "u ilt", + "ui lt", + "uil t", + "- day", + "-d ay", + "-da y", + "Ġ intelligence", + "Ġint elligence", + "Ġintellig ence", + ". IS", + ".I S", + "Ġ Observable", + "ĠO bservable", + "ĠObserv able", + "Ġ Hard", + "ĠH ard", + "ĠHar d", + "ĠHa rd", + "B ool", + "Bo ol", + "2 11", + "21 1", + "id ential", + "ident ial", + ". Anchor", + ".An chor", + "Ġ selling", + "Ġs elling", + "Ġsell ing", + "Ġsel ling", + "C I", + "A GES", + "AG ES", + "AGE S", + "t le", + "tl e", + "b ur", + "bu r", + "UFF ER", + "UF FER", + "R Y", + "Ġb igger", + "Ġbig ger", + "Ġbi gger", + "Ġ rat", + "Ġr at", + "Ġra t", + "Ġf amous", + "Ġfam ous", + "Ġ typename", + "Ġtype name", + "Ġtyp ename", + "Ġ explained", + "Ġexpl ained", + "Ġexplain ed", + "} }Ċ", + "}} Ċ", + "Ġn uclear", + "Ġnu clear", + "Ġnucle ar", + "- N", + "Ġcr isis", + "Ġcri sis", + "Ġcris is", + "Ġ Enter", + "ĠEn ter", + "ĠEnt er", + "Ġ answers", + "Ġan swers", + "Ġanswer s", + "Ġans wers", + "/ ${", + "/$ {", + "/ pl", + "/p l", + "Ġ sequ", + "Ġs equ", + "Ġse qu", + "Ġseq u", + "_ next", + "_n ext", + "_ne xt", + "m ask", + "ma sk", + "mas k", + "Ġ standing", + "Ġst anding", + "Ġstand ing", + "Ġstan ding", + "Ġpl enty", + "Ġple nty", + "Ġ Cross", + "ĠC ross", + "ĠCr oss", + "ĠCro ss", + "ĠCros s", + "ĉ ret", + "ĉr et", + "ĉre t", + "d ro", + "dr o", + "Ġ Cast", + "ĠC ast", + "ĠCas t", + "ĠCa st", + "1 67", + "16 7", + "= true", + "Ġ Chris", + "ĠCh ris", + "ĠChr is", + "i cio", + "ic io", + "ici o", + "Ġ Mike", + "ĠM ike", + "ĠMi ke", + "ĠMik e", + "D ecimal", + "De cimal", + "Dec imal", + "add Component", + "L en", + "Le n", + "Ġ cock", + "Ġc ock", + "Ġco ck", + "Ġcoc k", + "Ġ #{", + "Ġ# {", + "U RN", + "UR N", + "< tr", + "", + "\\\" >", + "Ġ *=", + "Ġ* =", + "Ġ PS", + "ĠP S", + "Ġdanger ous", + "[ p", + "O ME", + "OM E", + "O ther", + "Ot her", + "Ġ StringBuilder", + "ĠString Builder", + "P oints", + "Point s", + "Po ints", + "he ading", + "head ing", + "hea ding", + "Ġ currency", + "Ġc urrency", + "Ġcurr ency", + "Ġ percentage", + "Ġper centage", + "Ġpercent age", + "_ API", + "_A PI", + "_AP I", + "Ġ classic", + "Ġclass ic", + "Ġcl assic", + "Ġclas sic", + "t head", + "th ead", + "the ad", + "Ġ MO", + "ĠM O", + "F E", + "I dx", + "Id x", + "a wait", + "aw ait", + "awa it", + "awai t", + "Ġ è", + "Ġà ¨", + "Ġacc ident", + "Ġ variant", + "Ġv ariant", + "Ġvar iant", + "Ġvari ant", + "Ġm yst", + "Ġmy st", + "Ġmys t", + "Ġ Land", + "ĠL and", + "ĠLa nd", + "ĠLan d", + "Ġ Bre", + "ĠB re", + "ĠBr e", + "Ġh arm", + "Ġhar m", + "Ġha rm", + "Ġ Acc", + "ĠA cc", + "ĠAc c", + "Ġ charged", + "Ġch arged", + "Ġchar ged", + "Ġcharg ed", + "Ġcharge d", + "i ones", + "ion es", + "io nes", + "ione s", + "Vis ibility", + "ar ry", + "arr y", + "Ġ Language", + "ĠL anguage", + "Ġ walking", + "Ġw alking", + "Ġwalk ing", + "Ġwal king", + "\" .ĊĊ", + "\". ĊĊ", + "\".Ċ Ċ", + "i fer", + "if er", + "ife r", + "Ġleaders hip", + "Ġleader ship", + ". From", + ".F rom", + "y nam", + "yn am", + "yna m", + "Ġ timestamp", + "Ġt imestamp", + "Ġtime stamp", + "i pt", + "ip t", + "Ġ Has", + "ĠH as", + "ĠHa s", + "RE FER", + "REF ER", + "Ġ Its", + "ĠI ts", + "ĠIt s", + "Ġ listener", + "Ġlist ener", + "Ġlisten er", + "Ġliste ner", + "Ġlis tener", + "U TE", + "UT E", + "2 13", + "21 3", + "_ description", + "_d escription", + "_de scription", + "_des cription", + "Ġex periences", + "Ġexper iences", + "Ġexperience s", + "Ġexperi ences", + "Ġ creates", + "Ġcreate s", + "Ġcre ates", + "Ġcreat es", + "Ġcrea tes", + "R S", + "c art", + "ca rt", + "car t", + "b lack", + "bl ack", + "bla ck", + "Ġ choices", + "Ġcho ices", + "Ġchoice s", + "w ar", + "wa r", + "7 50", + "75 0", + "Ġ '''", + "Ġ' ''", + "Ġ'' '", + "Ġ ordered", + "Ġorder ed", + "Ġord ered", + "Ġeven ing", + "Ġev ening", + "Ġeve ning", + "Ġp il", + "Ġpi l", + "Ġt un", + "Ġtu n", + "Ġ Bad", + "ĠB ad", + "ĠBa d", + "( app", + "(a pp", + "(ap p", + "r andom", + "ran dom", + "rand om", + "Ġ explicit", + "Ġexp licit", + "Ġexpl icit", + "Ġexplic it", + "Ġarr ived", + "Ġarrive d", + "Ġarriv ed", + "Ġ fly", + "Ġf ly", + "Ġfl y", + "Ġe conom", + "Ġecon om", + "Ġec onom", + "Ġeco nom", + "- mail", + "-m ail", + "Ġ lists", + "Ġl ists", + "Ġli sts", + "Ġlist s", + "Ġlis ts", + "Ġarch itect", + "Ġarchit ect", + "2 34", + "23 4", + "Ġ Pay", + "ĠP ay", + "ĠPa y", + "Ġ ds", + "Ġd s", + "Ġ Sol", + "ĠS ol", + "ĠSo l", + "Ġ vehicles", + "Ġv ehicles", + "Ġveh icles", + "Ġvehicle s", + "H z", + "- com", + "-c om", + "-co m", + "Ġ king", + "Ġk ing", + "Ġki ng", + "Ġkin g", + "_ equal", + "_e qual", + "_eq ual", + "_equ al", + "Ġ Help", + "ĠH elp", + "ĠHe lp", + "ĠHel p", + "Ġab use", + "4 80", + "48 0", + "1 69", + "16 9", + "-- ;Ċ", + "--; Ċ", + "Ġ extr", + "Ġex tr", + "Ġext r", + "Ġ chemical", + "Ġchem ical", + "ä ¿", + "Ġ orient", + "Ġo rient", + "Ġor ient", + "Ġori ent", + "Ġbre ath", + "Ġbreat h", + "Ġ Space", + "ĠS pace", + "ĠSp ace", + "ĠSpa ce", + "( element", + "(e lement", + "(el ement", + "(elem ent", + "(ele ment", + "w ait", + "wa it", + "D ED", + "DE D", + "ig ma", + "igm a", + "Ġ entr", + "Ġen tr", + "Ġent r", + "Ġ sob", + "Ġs ob", + "Ġso b", + "- name", + "-n ame", + "-na me", + "Ġ affected", + "Ġaff ected", + "Ġaffect ed", + "i ka", + "ik a", + "Ġ coal", + "Ġco al", + "_ work", + "_w ork", + "_wo rk", + "Ġh undreds", + "Ġhundred s", + "Ġpol itics", + "Ġpolit ics", + "Ġpolitic s", + "sub ject", + "su bject", + "subj ect", + "Ġ consumer", + "Ġcon sumer", + "Ġcons umer", + "Ġconsum er", + "Ġconsume r", + "AN GE", + "ANG E", + "Ġre peated", + "Ġrep eated", + "Ġrepe ated", + "Ġrepeat ed", + "S end", + "Se nd", + "Sen d", + "Ġ #[", + "Ġ# [", + "Ġ protocol", + "Ġprot ocol", + "Ġproto col", + "Ġ leads", + "Ġle ads", + "Ġlead s", + "us eum", + "use um", + "E very", + "Ev ery", + "Ever y", + "8 08", + "80 8", + "1 74", + "17 4", + "Im port", + "Imp ort", + "( count", + "(c ount", + "(co unt", + "Ġch allenges", + "Ġchalleng es", + "Ġchallenge s", + "Ġn ovel", + "Ġno vel", + "Ġnov el", + "Ġ depart", + "Ġde part", + "Ġdep art", + "b its", + "bit s", + "bi ts", + ". Current", + ".C urrent", + "Ġ `${", + "Ġ` ${", + "Ġ`$ {", + "o ting", + "ot ing", + "oti ng", + "( \\", + "Ġ creative", + "Ġc reative", + "Ġcre ative", + "Ġcreat ive", + "Ġ buff", + "Ġb uff", + "Ġbu ff", + "Ġbuf f", + "Ġint roduced", + "Ġintrodu ced", + "Ġintroduce d", + "Ġintro duced", + "u sic", + "us ic", + "usi c", + "mod ules", + "module s", + "A re", + "Ar e", + "- doc", + "-d oc", + "-do c", + "l anguage", + "_ cache", + "_c ache", + "_ca che", + "Ġ tod", + "Ġt od", + "Ġto d", + "? > < /", + "om ething", + "ome thing", + "Ġh un", + "Ġhu n", + "å º", + "a ters", + "at ers", + "ate rs", + "ater s", + "In tent", + "Int ent", + "Ġ implemented", + "Ġim plemented", + "Ġimplement ed", + "Ġ Case", + "ĠC ase", + "ĠCas e", + "ĠCa se", + "Ch ildren", + "Child ren", + "Ġ notification", + "Ġnot ification", + "Render er", + "W rapper", + "Wrap per", + "Wr apper", + "Object s", + "Obj ects", + "t l", + ". Contains", + ".Cont ains", + ".Con tains", + "Pl ugin", + "Plug in", + ". row", + ".r ow", + ".ro w", + "Ġ forg", + "Ġf org", + "Ġfor g", + "Ġfo rg", + "Ġ permit", + "Ġper mit", + "Ġperm it", + "Ġ targets", + "Ġtarget s", + "Ġtar gets", + "Ġtarg ets", + "Ġ IF", + "ĠI F", + "Ġ tip", + "Ġt ip", + "Ġti p", + "s ex", + "se x", + "Ġ supports", + "Ġsup ports", + "Ġsupport s", + "Ġsupp orts", + "Ġ fold", + "Ġf old", + "Ġfol d", + "Ġfo ld", + "ph oto", + "phot o", + "} ,čĊ", + "}, čĊ", + "Ġ google", + "Ġg oogle", + "Ġgo ogle", + "Ġgoog le", + "Ġgoo gle", + "$ ('#", + "$( '#", + "$(' #", + "Ġ sharing", + "Ġsh aring", + "Ġsha ring", + "Ġshar ing", + "Ġ goods", + "Ġg oods", + "Ġgo ods", + "Ġgood s", + "Ġgoo ds", + "v s", + "Ġ Dan", + "ĠD an", + "ĠDa n", + "R ate", + "Ra te", + "Ġ Martin", + "ĠM artin", + "ĠMar tin", + "ĠMart in", + "Ġm anner", + "Ġman ner", + "Ġmann er", + "l ie", + "li e", + ". The", + ".T he", + ".Th e", + "In ternal", + "Int ernal", + "Inter nal", + "Intern al", + "ĠCON TR", + "ĠCONT R", + "M ock", + "Mo ck", + "R IGHT", + "Ġ '{", + "Ġ' {", + "Ġ controls", + "Ġcontrol s", + "Ġcontr ols", + "Ġcontro ls", + "M at", + "Ma t", + "Ġ mand", + "Ġm and", + "Ġman d", + "Ġma nd", + "Ġ extended", + "Ġext ended", + "Ġextend ed", + "O k", + "Ġ embed", + "Ġem bed", + "Ġemb ed", + "Ġ planet", + "Ġplan et", + "Ġplane t", + "Ġpla net", + "Ġ Non", + "ĠN on", + "ĠNo n", + "- ch", + "-c h", + ") \",", + ")\" ,", + "e par", + "ep ar", + "Ġbel ieved", + "Ġbelie ved", + "Ġbelieve d", + "Ġ Environment", + "ĠEn vironment", + "Ġ Friend", + "ĠF riend", + "ĠFri end", + "- res", + "-r es", + "-re s", + "Ġ handling", + "Ġhand ling", + "Ġhan dling", + "n ic", + "ni c", + "- level", + "-le vel", + "s cri", + "sc ri", + "scr i", + "X ml", + "B E", + "u ngen", + "un gen", + "ung en", + "unge n", + "Ġ alter", + "Ġal ter", + "Ġalt er", + "Ġalte r", + "[ idx", + "[i dx", + "[id x", + "P op", + "Po p", + "c am", + "ca m", + "Ġ (((", + "Ġ( ((", + "Ġ(( (", + "Ġ shipping", + "Ġsh ipping", + "Ġship ping", + "Ġ battery", + "Ġb attery", + "Ġbatter y", + "Ġbatt ery", + "Ġbat tery", + "iddle ware", + "M C", + "Ġ impl", + "Ġi mpl", + "Ġim pl", + "Ġimp l", + "ot ation", + "ota tion", + "Ġ Lab", + "ĠL ab", + "ĠLa b", + "< form", + " {{", + ">{ {", + "Ġ Resource", + "ĠRe source", + "ĠRes ource", + "Ġ Standard", + "ĠSt andard", + "ĠStand ard", + "Ġ Prem", + "ĠP rem", + "ĠPr em", + "ĠPre m", + "up dated", + "update d", + "upd ated", + "iv alent", + "ival ent", + "Ġ assets", + "Ġas sets", + "Ġass ets", + "Ġasset s", + "_ temp", + "_t emp", + "_tem p", + "_te mp", + "Ġinter ests", + "Ġinterest s", + "Ġinteres ts", + "Ġ hardware", + "Ġh ardware", + "Ġhard ware", + "Ġ Rom", + "ĠR om", + "ĠRo m", + "Ġ Share", + "ĠS hare", + "ĠSh are", + "ĠSha re", + "ĠShar e", + "Ġ ''Ċ", + "Ġ' 'Ċ", + "Ġ'' Ċ", + "Ġ *,", + "Ġ* ,", + "Ġ Take", + "ĠT ake", + "ĠTa ke", + "ĠTak e", + "Ġ Images", + "ĠIm ages", + "ĠImage s", + "ĠImag es", + "_ CHECK", + "_C HECK", + "( typeof", + "(type of", + "(typ eof", + "Ġ Jun", + "ĠJ un", + "ĠJu n", + "\\< ^", + "Ġ liqu", + "Ġl iqu", + "Ġli qu", + "Ġw orst", + "Ġwor st", + "Ġwo rst", + "Ġwors t", + "ymb ols", + "ymbol s", + "ĉ ĉĉĠĠĠ", + "ĉĉ ĉĠĠĠ", + "ĉĉĉ ĠĠĠ", + "ĉĉĉĠ ĠĠ", + "ĉĉĉĠĠ Ġ", + "Ġ drivers", + "Ġdr ivers", + "Ġdriver s", + "Ġdrive rs", + "Ġdriv ers", + "Ġdri vers", + "Ġ Document", + "ĠD ocument", + "ĠDoc ument", + "e no", + "en o", + "Ġ Technology", + "ĠTechn ology", + "Ġ approved", + "Ġap proved", + "Ġappro ved", + "Ġapprove d", + "u mps", + "um ps", + "ump s", + "Ġ snow", + "Ġs now", + "Ġsn ow", + "Ġsno w", + "form ance", + "forma nce", + "forman ce", + "_ ASSERT", + "_A SSERT", + "_ASS ERT", + "u its", + "ui ts", + "uit s", + "2 07", + "20 7", + "Ù Ĩ", + "Ġd ifferences", + "Ġdif ferences", + "Ġdiffer ences", + "Ġdifference s", + ". Visible", + ".V isible", + "ĉ ĉĉčĊ", + "ĉĉ ĉčĊ", + "ĉĉĉ čĊ", + "Ġ Ps", + "ĠP s", + "_ fetch", + "_f etch", + "Ġ todo", + "Ġt odo", + "Ġto do", + "Ġtod o", + ". ',Ċ", + ".' ,Ċ", + ".', Ċ", + "Ġ sel", + "Ġs el", + "Ġse l", + "ur ers", + "ure rs", + "urer s", + "in valid", + "Ġ tweet", + "Ġt weet", + "Ġtwe et", + "Ġtwee t", + "V EL", + "VE L", + "Ġresearch ers", + "Ġresearcher s", + "Ġ sprintf", + "Ġs printf", + "Ġsprint f", + "Ġ RO", + "ĠR O", + "Ġ pel", + "Ġp el", + "Ġpe l", + ". Trans", + ".T rans", + ".Tr ans", + "Ġ illegal", + "Ġil legal", + "Ġill egal", + "Ġilleg al", + "d ialog", + "di alog", + "dia log", + "sm arty", + "smart y", + "l g", + "_ MIN", + "_M IN", + "_MI N", + "Ġ hero", + "Ġh ero", + "Ġhe ro", + "Ġher o", + "f inal", + "fin al", + "fi nal", + "Ġ pp", + "Ġp p", + ". Le", + ".L e", + "Ġ ci", + "Ġc i", + "ĉ RT", + "ĉR T", + "Ġs uggested", + "Ġsuggest ed", + "p df", + "pd f", + "a ching", + "ach ing", + "achi ng", + "Ġ Ro", + "ĠR o", + "Ġ Properties", + "ĠP roperties", + "ĠProp erties", + "ĠProper ties", + "Ġ Si", + "ĠS i", + "Ġbu ying", + "Ġbuy ing", + "Ġ mu", + "Ġm u", + "Ġ lands", + "Ġl ands", + "Ġla nds", + "Ġland s", + "Ġlan ds", + "if iers", + "ifier s", + "ifi ers", + "ifie rs", + "Ġ FILE", + "ĠF ILE", + "ĠFI LE", + "ĠFIL E", + "RO UP", + "Ġ holder", + "Ġh older", + "Ġhold er", + "Ġho lder", + "Ġhol der", + "Ġ Son", + "ĠS on", + "ĠSo n", + "Ġsym pt", + "Ġsymp t", + ". route", + ".r oute", + ".ro ute", + ") ?", + "Ġ argc", + "Ġar gc", + "Ġarg c", + "Ġ fort", + "Ġf ort", + "Ġfor t", + "Ġfo rt", + "Ġcas ino", + "Ġcasi no", + "_ category", + "_c ategory", + "Ġ forum", + "Ġf orum", + "Ġfor um", + "Ġfo rum", + "2 15", + "21 5", + "p refix", + "pre fix", + "pref ix", + "ap ture", + "apt ure", + "T ube", + "Tu be", + "e ms", + "em s", + "im ize", + "imi ze", + "imiz e", + "Ġn ue", + "Ġnu e", + "a us", + "au s", + "c ourse", + "co urse", + "cour se", + "A TOR", + "AT OR", + "ATO R", + "( )),", + "() ),", + "()) ,", + "Ad vertis", + "IN GS", + "ING S", + "Ġac know", + "Ġack now", + "ĠK orea", + "ĠKore a", + "ĠKo rea", + "ĠKor ea", + "p ling", + "pl ing", + "Ġ worker", + "Ġwork er", + "Ġwor ker", + "PL IED", + "h al", + "ha l", + "Ġ Richard", + "ĠRich ard", + "ĠRic hard", + "E lements", + "Element s", + "El ements", + "Elem ents", + "Ele ments", + "ĉ ĉĉĠ", + "ĉĉ ĉĠ", + "ĉĉĉ Ġ", + "s tar", + "st ar", + "sta r", + "Ġ relationships", + "Ġrelations hips", + "Ġrelationship s", + "Ġrelation ships", + "Ġ cheap", + "Ġc heap", + "Ġche ap", + "A CH", + "AC H", + "Ġ XML", + "ĠX ML", + "ĠXM L", + ", &", + "Ġ Louis", + "ĠL ouis", + "ĠLo uis", + "ĠLou is", + "Ġ ride", + "Ġr ide", + "Ġrid e", + "Ġri de", + "_ FAIL", + "_F AIL", + "_FA IL", + "Ġ chunk", + "Ġch unk", + "Ġchu nk", + "[ s", + "_ OUT", + "_O UT", + "Ġ chosen", + "Ġch osen", + "Ġcho sen", + "Ġchose n", + "_ [", + "/ (", + "Ġ Jeff", + "ĠJ eff", + "ĠJe ff", + "_ sl", + "_s l", + "p riv", + "pr iv", + "pri v", + "Ġ Canadian", + "ĠCan adian", + "Ġ unable", + "Ġu nable", + "Ġun able", + "Ġuna ble", + "Ġunab le", + "_ FLAG", + "_F LAG", + "_FL AG", + "Ġ nos", + "Ġn os", + "Ġno s", + "h igh", + "hi gh", + "Ġ lift", + "Ġl ift", + "Ġli ft", + "Ġlif t", + "f un", + "fu n", + "( ){", + "() {", + "el ly", + "ell y", + "ycler View", + "_ as", + "_a s", + "_ LIST", + "_L IST", + "Ġ radi", + "Ġr adi", + "Ġrad i", + "Ġra di", + ". getValue", + ".get Value", + "3 04", + "30 4", + "ĠAnge les", + "ĠAngel es", + "Ġ Span", + "ĠS pan", + "ĠSp an", + "ĠSpa n", + "_ instance", + "_in stance", + "_inst ance", + "i tors", + "it ors", + "itor s", + "ito rs", + "2 08", + "20 8", + "Ġ migration", + "Ġm igration", + "Ġmigr ation", + "Ġmig ration", + "A K", + "O h", + " ®", + ". selected", + ".se lected", + ".select ed", + ".sel ected", + "Ġ GT", + "ĠG T", + "Ġ advance", + "Ġadv ance", + "Ġ Style", + "ĠSt yle", + "ĠSty le", + ". DataGridView", + ".Data GridView", + "e ction", + "ect ion", + "ec tion", + "Ñ İ", + "p io", + "pi o", + "r og", + "ro g", + "Ġ shopping", + "Ġsh opping", + "Ġshop ping", + "Ġsho pping", + "Ġ Rect", + "ĠR ect", + "ĠRe ct", + "ĠRec t", + "I lluminate", + "O U", + "ĉ array", + "ĉa rray", + "ĉarr ay", + "ĉar ray", + "Ġsub stantial", + "Ġsubstant ial", + "Ġp regn", + "Ġpre gn", + "Ġpreg n", + "Ġprom ote", + "Ġpromot e", + "Ġpromo te", + "I EW", + "IE W", + ". Layout", + ".L ayout", + "Ġsign s", + "Ġsig ns", + "/ .", + "Ġ letters", + "Ġlet ters", + "Ġletter s", + "Ġlett ers", + "B oard", + "Bo ard", + "c trl", + "ct rl", + "ctr l", + "\" \\", + "Ġ Jones", + "ĠJ ones", + "ĠJo nes", + "ĠJon es", + "Ġ vertex", + "Ġver tex", + "Ġvert ex", + "Ġverte x", + "Ġ ja", + "Ġj a", + "Ġaff ili", + "Ġ wealth", + "Ġwe alth", + "ĉ default", + "ĉd efault", + "ĉdef ault", + "ĉde fault", + "Ġsign ificantly", + "Ġsignific antly", + "Ġsignificant ly", + "Ġ ec", + "Ġe c", + "Ġ xs", + "Ġx s", + "act ual", + "ac tual", + ". per", + ".p er", + ".pe r", + "_ step", + "_s tep", + "_st ep", + "_ste p", + "an vas", + "m ac", + "ma c", + "Ġtrans l", + "Ġtran sl", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "It erator", + "Iter ator", + "Ġ och", + "Ġo ch", + "Ġoc h", + "ag nostic", + "agnost ic", + "Ġ During", + "ĠD uring", + "ĠDu ring", + "ĠDur ing", + "Ġ DEFAULT", + "ĠD EFAULT", + "ĠDE FAULT", + "Ġt ill", + "Ġti ll", + "Ġtil l", + "Ġ signature", + "Ġsign ature", + "Ġsig nature", + "Ġ bird", + "Ġb ird", + "Ġbi rd", + "Ġbir d", + "Ġ Ol", + "ĠO l", + "3 10", + "31 0", + "Ġ Ir", + "ĠI r", + "H S", + "av atar", + "ava tar", + "ESS AGE", + "Ġe lev", + "Ġel ev", + "Ġele v", + "Ġ mt", + "Ġm t", + "Ġ Nav", + "ĠN av", + "ĠNa v", + "Ġrel ax", + "Ġ plate", + "Ġp late", + "Ġpl ate", + "Ġpla te", + "Ġplat e", + "I TEM", + "IT EM", + "ITE M", + "( date", + "(d ate", + "(dat e", + "(da te", + ". not", + ".n ot", + ".no t", + "Ġ grade", + "Ġg rade", + "Ġgr ade", + "Ġgrad e", + "Ġgra de", + "Ġ }),Ċ", + "Ġ} ),Ċ", + "Ġ}) ,Ċ", + "Ġ}), Ċ", + "? \"ĊĊ", + "?\" ĊĊ", + "?\"Ċ Ċ", + "i ences", + "ie nces", + "ience s", + "ien ces", + "H igh", + "Hi gh", + "Ġ DIS", + "ĠD IS", + "ĠDI S", + "2 31", + "23 1", + "dis abled", + "disable d", + "Q UI", + "QU I", + "Ġ noise", + "Ġn oise", + "Ġno ise", + "Ġnoi se", + "a ux", + "au x", + "Ġ UP", + "ĠU P", + "8 88", + "88 8", + "o sa", + "os a", + "Ġv oc", + "Ġvo c", + "Ġ ))", + "Ġ) )", + "o com", + "oc om", + "oco m", + "_ OFF", + "_O FF", + "_OF F", + "Ġ Db", + "ĠD b", + "L ock", + "Lo ck", + "Loc k", + ".e clipse", + ", d", + "Ġ Draw", + "ĠD raw", + "ĠDr aw", + "ĠDra w", + "Ġ \"(", + "Ġ\" (", + "Ġ visited", + "Ġvis ited", + "Ġvisit ed", + "Ġvisite d", + "Ġ âĪ", + "Ġâ Ī", + "Ġs ucceed", + "Ġsuc ceed", + "Ġsucc eed", + "Ġim possible", + "Ġimp ossible", + "Ġimposs ible", + "a ire", + "air e", + "ai re", + "Ġ Turn", + "ĠT urn", + "ĠTur n", + "ĠTu rn", + "Ġ dish", + "Ġd ish", + "Ġdis h", + "Ġdi sh", + "F G", + "Ġ sensor", + "Ġs ensor", + "Ġsens or", + "A NN", + "AN N", + "a ba", + "ab a", + "Ġs urg", + "Ġsu rg", + "Ġsur g", + "] );čĊ", + "]) ;čĊ", + "]); čĊ", + "Ġ fp", + "Ġf p", + "_ an", + "_a n", + "- J", + "- G", + "Ġ Job", + "ĠJ ob", + "ĠJo b", + "Con vert", + "Conv ert", + "Ġ KEY", + "ĠK EY", + "ĠKE Y", + "Ġ authors", + "Ġauthor s", + "Ġauth ors", + "_ server", + "_s erver", + "_serv er", + "_ser ver", + "\\ r", + "Ġ -*-", + "Ġ- *-", + "Ġ-* -", + "f lex", + "fl ex", + "Ġ soc", + "Ġs oc", + "Ġso c", + "R et", + "Re t", + "Ġ salt", + "Ġs alt", + "Ġsa lt", + "Ġsal t", + "Ġ âĢ¦ĊĊ", + "ĠâĢ¦ ĊĊ", + "ĠâĢ¦Ċ Ċ", + "Ġ Clear", + "ĠC lear", + "ĠCl ear", + "ĠCle ar", + "( page", + "(p age", + "(pa ge", + "- danger", + "-d anger", + "-da nger", + "Ġ rooms", + "Ġro oms", + "Ġroom s", + "con v", + "co nv", + "# {", + ". op", + ".o p", + "Ġ Area", + "ĠA rea", + "ĠAr ea", + "ĠAre a", + "_ SC", + "_S C", + "h en", + "he n", + "Ġbeg ins", + "Ġbegin s", + "- y", + "Ġexc ited", + "Ġexcit ed", + "Ġ ignored", + "Ġign ored", + "Ġignore d", + "Ġignor ed", + "Ġ bonus", + "Ġb onus", + "Ġbon us", + "st udent", + "stu dent", + "stud ent", + "Ġ Member", + "ĠM ember", + "ĠMem ber", + "Ġrel atively", + "Ġrelative ly", + "Ġrelativ ely", + "Ġrelat ively", + "Ġ Low", + "ĠL ow", + "ĠLo w", + "Ġ Produ", + "ĠP rodu", + "ĠPro du", + "ĠPr odu", + "ĠProd u", + "at eway", + "ate way", + "pos ure", + "po sure", + "Ġth ick", + "Ġthi ck", + "an iel", + "ani el", + "anie l", + "( view", + "(v iew", + "ĠC rush", + "ĠCr ush", + "ĠCru sh", + "ĠCrus h", + "Ext ension", + "I l", + "e ed", + "ee d", + "L OC", + "LO C", + ". im", + ".i m", + ". Items", + ".I tems", + ".Item s", + ".It ems", + "Ġconf lict", + "Ġconflic t", + "Ġconfl ict", + ". prevent", + ".pre vent", + ".pr event", + ".prev ent", + "2 52", + "25 2", + "Ġon Create", + "u v", + "i ser", + "is er", + "ise r", + "Ġ wave", + "Ġw ave", + "Ġwa ve", + "Ġwav e", + "M ar", + "Ma r", + "Ġ Community", + "ĠComm unity", + "ĠCommun ity", + "i che", + "ic he", + "ich e", + "Ġ Nothing", + "ĠNo thing", + "[ m", + "Ġ Lee", + "ĠL ee", + "ĠLe e", + "ri ends", + "riend s", + "rie nds", + "rien ds", + "2 32", + "23 2", + "è re", + "! !!", + "!! !", + "a nz", + "an z", + ". result", + ".res ult", + "Ġ SK", + "ĠS K", + "_ PARAM", + "_P ARAM", + "_PA RAM", + "_PAR AM", + "Ġdem ocr", + "Ġdemo cr", + "Back Color", + ". exists", + ".ex ists", + ".exist s", + "\" It", + "\"I t", + "( options", + "(o ptions", + "(opt ions", + "(option s", + "r azy", + "ra zy", + "raz y", + "a ser", + "as er", + "ase r", + "\\ Database", + "\\Data base", + "\\D atabase", + "al endar", + "alen dar", + "_ ass", + "_a ss", + "_as s", + "; }Ċ", + ";} Ċ", + "ver tex", + "vert ex", + "verte x", + "ine craft", + "W arning", + "War ning", + "Warn ing", + "ar go", + "arg o", + "Ġ actor", + "Ġa ctor", + "Ġact or", + "Ġac tor", + "Ġ Instead", + "ĠIn stead", + "ĠInst ead", + "Ġ Using", + "ĠU sing", + "ĠUs ing", + "S elf", + "Se lf", + "Sel f", + "@ interface", + "Ġspe aking", + "Ġspeak ing", + "Ġ Paris", + "ĠP aris", + "ĠPar is", + "ĠPa ris", + "Ġ LICENSE", + "ĠL ICENSE", + "ĠLIC ENSE", + ". node", + ".n ode", + ".no de", + "Ġ Food", + "ĠF ood", + "ĠFo od", + "ĠFoo d", + "E IF", + "EI F", + "Ġ Bi", + "ĠB i", + ". Start", + ".St art", + "Ġ IB", + "ĠI B", + "Ġun iversity", + "Ġunivers ity", + "2 54", + "25 4", + "Ġ Header", + "ĠHe ader", + "ĠHead er", + ". product", + ".pro duct", + ".prod uct", + "4 09", + "40 9", + "C opy", + "Co py", + "Cop y", + "e tc", + "et c", + "r ical", + "ri cal", + "ric al", + "rica l", + "Ġ >>>", + "Ġ> >>", + "Ġ>> >", + "b ooks", + "bo oks", + "book s", + "boo ks", + "Ġ algorithm", + "Ġal gorithm", + "Ġ' __", + "Ġ'_ _", + "( javax", + "(j avax", + "(java x", + "Ġnumer ous", + "Ġnumero us", + "S hare", + "Sh are", + "Shar e", + "Sha re", + "H ave", + "Ha ve", + "Ġrec ru", + "Ġ prove", + "Ġp rove", + "Ġpro ve", + "Ġpr ove", + "Ġprov e", + ". substring", + ".sub string", + ".substr ing", + "he alth", + "е л", + "еР»", + "Ġ decimal", + "Ġd ecimal", + "Ġde cimal", + "Ġdec imal", + "Ġ commission", + "Ġcom mission", + "Ġcomm ission", + "s cription", + "script ion", + "scri ption", + "x C", + "Ġ summary", + "Ġsum mary", + "Ġsummar y", + "Ġsumm ary", + "at ted", + "att ed", + "atte d", + "Ġc loser", + "Ġcl oser", + "Ġclose r", + "Ġclos er", + "Ġclo ser", + "f inished", + "fin ished", + "finish ed", + "( )){Ċ", + "() ){Ċ", + "()) {Ċ", + "()){ Ċ", + "Ġ Wood", + "ĠW ood", + "ĠWo od", + "ĠWoo d", + "3 01", + "30 1", + "_ fields", + "_f ields", + "_field s", + "k u", + "_ items", + "_i tems", + "_item s", + "_it ems", + "F lag", + "Fl ag", + "Ġ confidence", + "Ġconf idence", + "Ġ Federal", + "ĠF ederal", + "ĠFeder al", + "ĠFed eral", + "d ux", + "du x", + "Ġ compat", + "Ġcom pat", + "Ġcomp at", + "Ġ vertical", + "Ġver tical", + "Ġvert ical", + "Ð ¹", + "è s", + "; \">Ċ", + ";\" >Ċ", + ";\"> Ċ", + "_ manager", + "_m anager", + "_man ager", + "_manage r", + "( )))Ċ", + "() ))Ċ", + "()) )Ċ", + "())) Ċ", + "I DE", + "ID E", + ": \",", + ":\" ,", + "2 35", + "23 5", + "_ _Ċ", + "__ Ċ", + "Ġ Way", + "ĠW ay", + "ĠWa y", + "2 21", + "22 1", + "Ñ Ī", + "T emp", + "Te mp", + "Tem p", + "Ġ STR", + "ĠS TR", + "ĠST R", + "r itten", + "rit ten", + "ritt en", + "ritte n", + "S ync", + "Sy nc", + "Syn c", + "Ġ AV", + "ĠA V", + "Ġ CEO", + "ĠC EO", + "ĠCE O", + "Ġ Guid", + "ĠG uid", + "ĠGu id", + "ĠGui d", + "Ġenvironment al", + "Ġenviron mental", + "Ġcorrespond ing", + "ĉ console", + "ĉcon sole", + "Ġ justice", + "Ġjust ice", + "Ġju stice", + "Ġ JS", + "ĠJ S", + "Ġl ived", + "Ġli ved", + "Ġlive d", + "Ġliv ed", + "g ar", + "ga r", + "Ġ Graph", + "ĠG raph", + "ĠGr aph", + "ĠGra ph", + "Ġ Stat", + "ĠS tat", + "ĠSt at", + "ĠSta t", + "Ġ iPhone", + "Ġi Phone", + "ĠiP hone", + ". al", + ".a l", + "Ġ HD", + "ĠH D", + "Ġocc ur", + "Ġoc cur", + "Ġ threshold", + "Ġth reshold", + "Ġthresh old", + "5 09", + "50 9", + "Ġ onclick", + "Ġon click", + "Ġonc lick", + "R EG", + "RE G", + ".Graphics Unit", + "M eta", + "Me ta", + "Met a", + "Å ¾", + "Ġ cum", + "Ġc um", + "Ġcu m", + ". gnu", + ".g nu", + "à «", + "Ġobt ained", + "Ġobtain ed", + "Ġcom plaint", + "Ġcompl aint", + "Ġcomplain t", + "Ġ eating", + "Ġe ating", + "Ġeat ing", + "Ġea ting", + "Ġ tar", + "Ġt ar", + "Ġta r", + "_ task", + "_t ask", + "_ta sk", + "Ġ opts", + "Ġo pts", + "Ġop ts", + "Ġopt s", + "2 16", + "21 6", + "( to", + "(t o", + "P ass", + "Pa ss", + "Pas s", + "Ġp lastic", + "Ġpl astic", + "Ġplast ic", + "t ility", + "til ity", + "Ġ Win", + "ĠW in", + "ĠWi n", + ".prevent Default", + "p ile", + "pi le", + "Ġ Gar", + "ĠG ar", + "ĠGa r", + "Ġ quantity", + "Ġqu antity", + "Ġquant ity", + "Ġqua ntity", + "_ last", + "_l ast", + "_la st", + "Ġg reatest", + "Ġgreat est", + "Ġgre atest", + "D ao", + "Da o", + "_ DIS", + "_D IS", + "_DI S", + "Ġ Used", + "ĠU sed", + "ĠUs ed", + "ĠUse d", + "Ġ HP", + "ĠH P", + "r iting", + "ri ting", + "rit ing", + "S ION", + "SI ON", + "b lue", + "bl ue", + "d omain", + "do main", + "dom ain", + "Ġ scores", + "Ġs cores", + "Ġsc ores", + "Ġscore s", + "Ġsco res", + "Ġscor es", + "N ormal", + "Norm al", + "Nor mal", + "_ admin", + "_ad min", + "Ġ ASSERT", + "ĠA SSERT", + "ĠASS ERT", + "T hen", + "The n", + "Th en", + "* **", + "** *", + "d ist", + "dis t", + "di st", + "l on", + "lo n", + "Ġh ate", + "Ġha te", + "Ġhat e", + "s hal", + "sh al", + "sha l", + "Image View", + "d atabase", + "data base", + "dat abase", + "Ġp and", + "Ġpa nd", + "Ġpan d", + "Ġ logic", + "Ġlog ic", + "= false", + "=f alse", + "b g", + "Ġ Configuration", + "ĠConfig uration", + "Ġn ur", + "Ġnu r", + "O G", + "Ġ married", + "Ġmar ried", + ": +", + "Ġd ropped", + "Ġdr opped", + "Ġdrop ped", + "Ġdro pped", + "0 40", + "04 0", + "Ġ registration", + "Ġreg istration", + "Ġregistr ation", + "Ġregist ration", + "о м", + "оР¼", + "ult iple", + "ulti ple", + "ultip le", + "i zers", + "iz ers", + "ize rs", + "izer s", + "s hape", + "sh ape", + "sha pe", + ". copy", + ".c opy", + ".co py", + "Ġw earing", + "Ġwe aring", + "Ġwear ing", + "ĠC ath", + "ĠCa th", + "ĠCat h", + "Ġded icated", + "Ġdedic ated", + "Ġdedicate d", + "Ġ ...Ċ", + "Ġ. ..Ċ", + "Ġ... Ċ", + "Ġ.. .Ċ", + "Ġadv oc", + "Ġ Family", + "ĠF amily", + "ĠFam ily", + "ĠFamil y", + "Ġ statements", + "Ġstate ments", + "Ġstat ements", + "Ġstatement s", + "e matic", + "em atic", + "ema tic", + "emat ic", + "ampions hip", + "ampion ship", + "Ġmot iv", + "Ġmo tiv", + "Ġ Have", + "ĠH ave", + "ĠHa ve", + "ĠHav e", + "Ġb low", + "Ġbl ow", + "Ġblo w", + "J ob", + "Jo b", + "c ert", + "ce rt", + "cer t", + "_ vector", + "_v ector", + "_vec tor", + "_vect or", + "_ve ctor", + "inst all", + "Ġ COPY", + "ĠC OPY", + "ĠCO PY", + "ĠCOP Y", + "em bed", + "emb ed", + "D IR", + "DI R", + "Ġ Spring", + "ĠS pring", + "ĠSp ring", + "ĠSpr ing", + "Ġex hib", + "Ġexh ib", + "2 23", + "22 3", + "c dn", + "cd n", + "Ġ Comment", + "ĠCom ment", + "ĠComm ent", + "Ġ Optional", + "ĠOption al", + "ĠOpt ional", + ". player", + ".p layer", + ".pl ayer", + ".play er", + "Ġ Dark", + "ĠD ark", + "ĠDa rk", + "ĠDar k", + "( pos", + "(p os", + "(po s", + "Ġ Should", + "ĠSh ould", + "ĠSho uld", + "Ġ centre", + "Ġc entre", + "Ġcent re", + "Ġcentr e", + "Ġcen tre", + "Ġ Guard", + "ĠG uard", + "ĠGu ard", + "ĠGuar d", + "ó w", + "Ġtr ouble", + "Ġtro uble", + "Ġtroub le", + "Ġtrou ble", + "E NER", + "EN ER", + "ENE R", + "( unsigned", + "(un signed", + "_ service", + "_s ervice", + "_serv ice", + "_ser vice", + "Ġ ns", + "Ġn s", + "u ling", + "ul ing", + "ulin g", + "uli ng", + "Ġ Mexico", + "ĠMe xico", + "ĠMex ico", + "Ġ NY", + "ĠN Y", + "m ysql", + "my sql", + "mys ql", + "Ġ lic", + "Ġl ic", + "Ġli c", + "å ľ", + "M r", + "- fl", + "-f l", + "Ġ Customer", + "ĠC ustomer", + "ĠCustom er", + "ĠCust omer", + "i di", + "id i", + "Ġ ?>ĊĊ", + "Ġ? >ĊĊ", + "Ġ?> ĊĊ", + "Ġ?>Ċ Ċ", + "r ible", + "ri ble", + "rib le", + "Ġ пÑĢ", + "Ġп ÑĢ", + "Ġ sizes", + "Ġs izes", + "Ġsize s", + "Ġsi zes", + "Ġsiz es", + "_ STRING", + "_ST RING", + "_STR ING", + "valid ation", + "Ġ Jon", + "ĠJ on", + "ĠJo n", + "( Http", + "(H ttp", + "add Class", + "N odes", + "Node s", + "No des", + "Ġ fragment", + "Ġf ragment", + "Ġfr agment", + "Ġfra gment", + "Ġfrag ment", + "Ġs poke", + "Ġsp oke", + "Ġspo ke", + "Ġw aste", + "Ġwas te", + "Ġwa ste", + "Ġwast e", + "J oin", + "Jo in", + "Ġ illustr", + "Ġill ustr", + "Ġillust r", + "e li", + "el i", + "c ient", + "ci ent", + "cie nt", + "Ġ aid", + "Ġa id", + "Ġai d", + "Ġpro sec", + "Ġpros ec", + "Ġprose c", + "' ){Ċ", + "') {Ċ", + "'){ Ċ", + "Ġp assing", + "Ġpass ing", + "Ġpas sing", + "Ġ faces", + "Ġf aces", + "Ġfa ces", + "Ġfac es", + "Ġface s", + "S hape", + "Sh ape", + "Sha pe", + "_ Z", + "i ti", + "it i", + "Ġ alle", + "Ġa lle", + "Ġal le", + "Ġall e", + "Ġ robot", + "Ġr obot", + "Ġro bot", + "Ġrob ot", + "Ġ ĠĠĠĠĠĠĊ", + "ĠĠ ĠĠĠĠĠĊ", + "ĠĠĠĠ ĠĠĠĊ", + "ĠĠĠ ĠĠĠĠĊ", + "ĠĠĠĠĠĠĠ Ċ", + "ĠĠĠĠĠ ĠĠĊ", + "ĠĠĠĠĠĠ ĠĊ", + "Ġ Spe", + "ĠS pe", + "ĠSp e", + "Ġre ceiving", + "Ġrece iving", + "Ġ Details", + "ĠD etails", + "ĠDe tails", + "ĠDet ails", + "ĠDetail s", + "Ġ \")", + "Ġ\" )", + "m g", + "_ REF", + "_RE F", + "_R EF", + "Ġ comparison", + "Ġcom parison", + "Ġcompar ison", + "* ,", + "Ġ Found", + "ĠF ound", + "ĠFo und", + "ĠFou nd", + "_ session", + "_s ession", + "_sess ion", + "( U", + "/ F", + "Ġ xxx", + "Ġx xx", + "Ġxx x", + "N etwork", + "Net work", + "d ers", + "de rs", + "der s", + "Ġ capture", + "Ġc apture", + "Ġcap ture", + "Ġcapt ure", + "Ġc orre", + "Ġcor re", + "Ġcorr e", + "Ġ Ltd", + "ĠL td", + "ĠLt d", + "Ġ Adv", + "ĠA dv", + "ĠAd v", + "[ @", + "Ġ clip", + "Ġc lip", + "Ġcl ip", + "Ġcli p", + "M ill", + "Mi ll", + "Mil l", + "Ġ Profile", + "ĠPro file", + "ĠPr ofile", + "ĠProf ile", + "Ġ endif", + "Ġen dif", + "Ġend if", + "Ġob lig", + "Ġobl ig", + "de scribe", + "des cribe", + "descr ibe", + ". element", + ".e lement", + ".el ement", + ".elem ent", + "riter ion", + "L D", + "e red", + "er ed", + "ere d", + "Ġf avour", + "Ġfav our", + "s core", + "sc ore", + "Ġ Filter", + "ĠF ilter", + "ĠFil ter", + "at tributes", + "attribute s", + "attrib utes", + "Ġ checks", + "Ġcheck s", + "Ġche cks", + "In flater", + "Inf later", + "Ġ Plus", + "ĠP lus", + "ĠPl us", + "Ġ scientific", + "Ġscient ific", + "Ġ privacy", + "Ġpriv acy", + "H ead", + "He ad", + "Ġ feat", + "Ġf eat", + "Ġfe at", + "Ġ degrees", + "Ġdeg rees", + "Ġdegree s", + "Ġ Pale", + "ĠP ale", + "ĠPal e", + "ĠPa le", + "; \">", + ";\" >", + "Ġ films", + "Ġfil ms", + "Ġfilm s", + "Ġ Audio", + "ĠA udio", + "ĠAud io", + "ĠAu dio", + "ĠAudi o", + "Ġ Tag", + "ĠT ag", + "ĠTa g", + "Ġ Energy", + "ĠE nergy", + "ĠEn ergy", + "ĠEnerg y", + "i tar", + "it ar", + "ita r", + "par ator", + "para tor", + "Ġf ellow", + "Ġfell ow", + "Ġfel low", + "Ġ evt", + "Ġe vt", + "Ġev t", + "Ġ Tri", + "ĠT ri", + "ĠTr i", + "ĠD AM", + "ĠDA M", + "c loud", + "cl oud", + "clo ud", + "Ġ Password", + "ĠP assword", + "ĠPass word", + "ĠPas sword", + "Ġ Democrats", + "ĠDem ocrats", + "ĠDemocr ats", + "ĠDemocrat s", + "ĠA cad", + "ĠAc ad", + "$ lang", + "$l ang", + "Ġ reb", + "Ġre b", + "Ġr eb", + "( ))ĊĊ", + "() )ĊĊ", + "()) ĊĊ", + "())Ċ Ċ", + "н Ñĭ", + "Ġ Bur", + "ĠB ur", + "ĠBu r", + "read cr", + "Ġ hex", + "Ġh ex", + "Ġhe x", + "2 09", + "20 9", + "Con sole", + "Cons ole", + "c tl", + "ct l", + "ou sel", + "ous el", + "ouse l", + "Ġ William", + "ĠWill iam", + "ĠWilli am", + "Ġ az", + "Ġa z", + "_ PORT", + "_P ORT", + "_PO RT", + "Ġpr actices", + "Ġpract ices", + "Ġpractice s", + "Ġany where", + "Ġ Position", + "ĠP osition", + "ĠPos ition", + "Ġ ->Ċ", + "Ġ- >Ċ", + "Ġ-> Ċ", + "i ams", + "ia ms", + "iam s", + ". username", + ".user name", + "place holder", + "Ġ oder", + "Ġo der", + "Ġod er", + "Ġode r", + "Ġ Secretary", + "ĠSecret ary", + "Ġ iT", + "Ġi T", + "m ond", + "mon d", + "mo nd", + "e vents", + "event s", + "ev ents", + "even ts", + "eve nts", + "? âĢĿ", + ". Sub", + ".S ub", + "Ġ attached", + "Ġatt ached", + "Ġattach ed", + "Ġn ão", + "Ġ estate", + "Ġe state", + "Ġest ate", + "Ġesta te", + "3 65", + "36 5", + ". action", + ".a ction", + ".ac tion", + ".act ion", + "Ġ figures", + "Ġfig ures", + "Ġfigure s", + "Ġfigur es", + "Ġ });čĊ", + "Ġ} );čĊ", + "Ġ}) ;čĊ", + "Ġ}); čĊ", + "Ġsub scri", + "Ġsubs cri", + ". tag", + ".t ag", + ".ta g", + "n am", + "na m", + ". plot", + ".p lot", + ".pl ot", + "n oon", + "no on", + "li ament", + "lia ment", + "Char acter", + ". tab", + ".t ab", + ".ta b", + "Ġ winter", + "Ġw inter", + "Ġwin ter", + "Ġ Variable", + "ĠVar iable", + "ĠVari able", + "Ġ trees", + "Ġt rees", + "Ġtr ees", + "Ġtre es", + "Ġtree s", + "Ġp roud", + "Ġpro ud", + "Ġpr oud", + "( V", + "_ load", + "_l oad", + "_lo ad", + "Ġh ier", + "Ġhi er", + "ĠE con", + "ĠEc on", + "ĠEco n", + "Ġ fd", + "Ġf d", + "Ġvict ims", + "Ġvictim s", + "R est", + "Re st", + "Res t", + "i ana", + "ia na", + "ian a", + "Ġ fake", + "Ġf ake", + "Ġfa ke", + "Ġfak e", + ".Print ln", + "Ġ strlen", + "Ġst rlen", + "Ġstr len", + "Ġ sad", + "Ġs ad", + "Ġsa d", + "Ġ ble", + "Ġb le", + "Ġbl e", + "P rot", + "Pro t", + "Pr ot", + "Ġ buttons", + "Ġbut tons", + "Ġbutton s", + "Ġbutt ons", + "Ġbutto ns", + "Ġte levision", + "Ġtele vision", + "Ġtelevis ion", + "Ġtelev ision", + "Ġ logo", + "Ġl ogo", + "Ġlo go", + "Ġlog o", + "ext ension", + "ĉ j", + "s tein", + "st ein", + "ste in", + "ac iones", + "acion es", + "aci ones", + "acio nes", + "Ġ \"\"\"ĊĊ", + "Ġ\"\" \"ĊĊ", + "Ġ\"\"\"Ċ Ċ", + "Ġ\"\"\" ĊĊ", + "Ġ simp", + "Ġs imp", + "Ġsim p", + "Ġsi mp", + "Ġrecord ed", + "Ġbr ings", + "Ġbring s", + "Ġ principal", + "Ġpr incipal", + "Ġprincip al", + "Ġf ees", + "Ġfe es", + "Ġfee s", + "( source", + "(s ource", + "k dir", + "kd ir", + "Ġ utils", + "Ġutil s", + "Ġut ils", + "Ġcorrect ly", + "f il", + "fi l", + "Ġ wel", + "Ġw el", + "Ġwe l", + "P air", + "Pa ir", + "- button", + "-b utton", + "-but ton", + "s cale", + "sc ale", + "scal e", + "ver ify", + "[ c", + "Ġ ---", + "Ġ- --", + "Ġ-- -", + "Ġ escape", + "Ġe scape", + "Ġes cape", + "Ġesc ape", + "Ġescap e", + "i kes", + "ik es", + "ike s", + "Lower Case", + "ic ian", + "ici an", + "icia n", + "Ġ chapter", + "Ġch apter", + "Ġcha pter", + "Ġchap ter", + "Ġ TYPE", + "ĠT YPE", + "ĠTY PE", + "Ġ shadow", + "Ġsh adow", + "Ġ awesome", + "Ġaw esome", + "Ġawe some", + "W E", + "e lif", + "el if", + "eli f", + "Ġ lambda", + "Ġl ambda", + "Ġlamb da", + "Ġ distinct", + "Ġdist inct", + "Ġ bare", + "Ġb are", + "Ġbar e", + "Ġba re", + "- off", + "-of f", + "-o ff", + "Ġ colour", + "Ġcol our", + ". appendChild", + ".append Child", + "o lec", + "ol ec", + "ole c", + "a ga", + "ag a", + ". fill", + ".f ill", + ".fi ll", + ".fil l", + "ĉ super", + "ĉs uper", + "Ġ adj", + "Ġa dj", + "Ġad j", + "( position", + "(p osition", + "(pos ition", + ". getItem", + ".get Item", + "2 42", + "24 2", + "S hort", + "Sh ort", + "Ġtot ally", + "Ġtotal ly", + "V D", + "Ġ Tre", + "ĠT re", + "ĠTr e", + "_ ep", + "_e p", + "v ements", + "ve ments", + "vement s", + "vem ents", + "Ġ Solution", + "ĠS olution", + "ĠSol ution", + "Ġfund ament", + "F ollow", + "Ġ facility", + "Ġfac ility", + "Ġfacilit y", + "Ġfacil ity", + "Ġhapp ening", + "Ġhappen ing", + "O F", + ". textBox", + ".text Box", + "S pan", + "Sp an", + "Ġ «", + "Ġ «", + "i den", + "id en", + "ide n", + "Ġex ceed", + "Ġexc eed", + "Ġexce ed", + "( parent", + "(p arent", + "(par ent", + "(paren t", + "(pa rent", + "Ġ cp", + "Ġc p", + "ç »", + "Ġh asn", + "Ġhas n", + "Ġha sn", + "Ġ pri", + "Ġp ri", + "Ġpr i", + "Ġcon sequ", + "Ġcons equ", + "Ġconse qu", + "n en", + "ne n", + "ĠIN TO", + "ĠINT O", + "I gnore", + "Ign ore", + "Ġ Future", + "ĠF uture", + "ĠFu ture", + "ĠFut ure", + "Ġ carbon", + "Ġc arbon", + "Ġcar bon", + "Ġcarb on", + "Ġ Steel", + "ĠSt eel", + "ĠSte el", + "f mt", + "fm t", + "o kie", + "ok ie", + "oki e", + "Ġ spl", + "Ġs pl", + "Ġsp l", + "( title", + "(t itle", + "(ti tle", + "- info", + "-in fo", + "-inf o", + "Ġde als", + "Ġdeal s", + "Ġ fixture", + "Ġf ixture", + "Ġfix ture", + "e a", + "D iv", + "Di v", + "Ġ tested", + "Ġt ested", + "Ġte sted", + "Ġtest ed", + "Ġtes ted", + "Ġteste d", + "_ return", + "_re turn", + "_r eturn", + "_ret urn", + ") ĊĊĊĊ", + ")Ċ ĊĊĊ", + ")ĊĊ ĊĊ", + ")ĊĊĊ Ċ", + "up ported", + "upport ed", + "upp orted", + "Ġ Cook", + "ĠC ook", + "ĠCo ok", + "Ġp aying", + "Ġpay ing", + "Ġpa ying", + "Ġ Ill", + "ĠI ll", + "ĠIl l", + "Ġarr ested", + "Ġarrest ed", + "Ġ Prime", + "ĠPr ime", + "ĠPri me", + "ĠPrim e", + "_ callback", + "_c allback", + "_call back", + "> ,Ċ", + ">, Ċ", + "d river", + "dr iver", + "drive r", + "O nce", + "On ce", + "a bb", + "ab b", + "_ bytes", + "_by tes", + "_byte s", + "Ġ Sets", + "ĠS ets", + "ĠSe ts", + "ĠSet s", + "( Object", + "(O bject", + "Ġ cc", + "Ġc c", + "Ġ shell", + "Ġs hell", + "Ġsh ell", + "Ġshe ll", + "Ġshel l", + "a lo", + "al o", + ") ;//", + "); //", + "( log", + "(l og", + "(lo g", + "2 64", + "26 4", + "c tors", + "ct ors", + "ctor s", + ") ", + "2 18", + "21 8", + "Ġ $(\".", + "Ġ$ (\".", + "Ġ$( \".", + "Ġ$(\" .", + ". pos", + ".p os", + ".po s", + "Ġ boys", + "Ġbo ys", + "Ġboy s", + "Ġwed ding", + "Ġ agents", + "Ġag ents", + "Ġage nts", + "Ġagent s", + "= \"_", + "=\" _", + "Ġ Army", + "ĠAr my", + "ĠArm y", + "Ġ hint", + "Ġh int", + "Ġhi nt", + "Ġhin t", + "v ision", + "vis ion", + "Ġ tech", + "Ġt ech", + "Ġte ch", + "Ġtec h", + "Ġ Connect", + "ĠCon nect", + "ĠConn ect", + "Ġ legend", + "Ġl egend", + "Ġle gend", + "Ġleg end", + "Ġ Bet", + "ĠB et", + "ĠBe t", + ". Base", + ".B ase", + "Sub ject", + "Su bject", + "Ġ lit", + "Ġl it", + "Ġli t", + "Re move", + "Rem ove", + "Ġ \":", + "Ġ\" :", + "Ġ Final", + "ĠF inal", + "ĠFin al", + "ĠFi nal", + "pear ance", + "ĠiT unes", + "Ġ participants", + "Ġpart icipants", + "Ġparticip ants", + "Ġparticipant s", + "Ġ Python", + "ĠP ython", + "ĠPy thon", + "Ġ busy", + "Ġbu sy", + "Ġbus y", + "i el", + "ie l", + "vert ices", + "Ġtemplate Url", + "Ġ Close", + "ĠC lose", + "ĠCl ose", + "ĠClo se", + "I mg", + "Im g", + "ĠCorpor ation", + "ĠCorp oration", + "t imestamp", + "time stamp", + "Ġ extend", + "Ġext end", + "Ġwe bsites", + "Ġweb sites", + "Ġwebsite s", + "Ġwebs ites", + "Ġposs ibility", + "Ġpossibilit y", + "о ÑĤ", + "Ġ kö", + "Ġk ö", + "Ġm eat", + "Ġme at", + "Ġ representation", + "Ġre presentation", + "Ġrep resentation", + "Ġrepresent ation", + "Ġrepresenta tion", + "2 41", + "24 1", + "Ġ ĉĉ", + "Ġĉ ĉ", + "_ START", + "_ST ART", + "_STAR T", + "_STA RT", + ". apply", + ".app ly", + ".ap ply", + "ĠV alley", + "ĠVal ley", + "ĠValle y", + "ĠVall ey", + "Ġ Success", + "ĠS uccess", + "ĠSu ccess", + "ĠSuc cess", + "ĠSucc ess", + "H i", + "Ġ nob", + "Ġn ob", + "Ġno b", + "Ġ IEnumerable", + "ĠI Enumerable", + "_ select", + "_s elect", + "_se lect", + "_sel ect", + "g eo", + "ge o", + ". \")Ċ", + ".\" )Ċ", + ".\") Ċ", + "Ġt urning", + "Ġturn ing", + "Ġtur ning", + "Ġ fabric", + "Ġf abric", + "Ġfab ric", + "(\" \");Ċ", + "(\"\" );Ċ", + "(\"\") ;Ċ", + "(\"\"); Ċ", + "Ġp erspective", + "Ġpers pective", + "é Ĺ", + "Ġ Sn", + "ĠS n", + "Th ank", + "Than k", + "; j", + ". Parameters", + ".Param eters", + ".Parameter s", + "ĉ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĉĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĉĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĉĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĉĠĠĠĠĠĠĠĠĠĠ Ġ", + "Ġ facts", + "Ġf acts", + "Ġfact s", + "Ġfa cts", + "Ġfac ts", + "3 05", + "30 5", + "Ġ unt", + "Ġu nt", + "Ġun t", + ". instance", + ".in stance", + ".inst ance", + "#### ############################################################", + "######## ########################################################", + "################ ################################################", + "################################ ################################", + "################################################ ################", + "######################################## ########################", + "######################## ########################################", + "######################################################## ########", + "############################################################ ####", + "- end", + "-e nd", + "-en d", + "Ġ JOIN", + "ĠJO IN", + "Ġ Hen", + "ĠH en", + "ĠHe n", + "Ġ uri", + "Ġu ri", + "Ġur i", + "åIJ į", + "Ġ на", + "Ġн а", + "Ġ Info", + "ĠIn fo", + "ĠInf o", + "Ġcon ducted", + "Ġconduct ed", + "Ġconduc ted", + "Ġ Ã¥", + "Ġà ¥", + "OUR CE", + "Ġ wine", + "Ġw ine", + "Ġwin e", + "Ġwi ne", + "J ohn", + "Jo hn", + ".Error f", + ".Err orf", + "Ġ Age", + "ĠA ge", + "ĠAg e", + "o unded", + "ound ed", + "oun ded", + "Ġreal ize", + "Ġrealiz e", + "3 12", + "31 2", + "Ġ ];", + "Ġ] ;", + "Ġsub sequ", + "Ġsubs equ", + ", m", + "( User", + "(U ser", + "i ano", + "ia no", + "ian o", + "Ġaccom pl", + "Ġaccomp l", + "i sp", + "is p", + ". std", + ".s td", + ".st d", + "é ĩ", + "Ġ Bed", + "ĠB ed", + "ĠBe d", + ". setAttribute", + ".set Attribute", + "B R", + "ke ep", + "kee p", + "Ġ ALL", + "ĠA LL", + "ĠAL L", + "Ġ isol", + "Ġis ol", + "Ġi sol", + "Ġiso l", + "a mma", + "am ma", + "amm a", + "P ackage", + "Pack age", + "Ġ occasion", + "Ġocc asion", + "Ġoccas ion", + "- success", + "-s uccess", + "-su ccess", + "е д", + "еР´", + "ĠLIMIT ED", + "s trip", + "st rip", + "str ip", + "stri p", + "( )ĊĊĊ", + "() ĊĊĊ", + "()Ċ ĊĊ", + "()ĊĊ Ċ", + "is tribution", + "istrib ution", + "Color s", + "Col ors", + "Ġ+ :+", + "Did Load", + "a ler", + "al er", + "ale r", + "Ġ tid", + "Ġt id", + "Ġti d", + "Ġ LED", + "ĠL ED", + "ĠLE D", + "Ġ Linked", + "ĠLink ed", + "ĠLin ked", + "Ġ Cart", + "ĠC art", + "ĠCar t", + "ĠCa rt", + "( ))čĊ", + "() )čĊ", + "()) čĊ", + "_ READ", + "_RE AD", + "Ġk illing", + "Ġkill ing", + "Ġkil ling", + "Ġ PHP", + "ĠP HP", + "ĠPH P", + "f ection", + "fe ction", + "fect ion", + "fec tion", + "Ġ instances", + "Ġin stances", + "Ġinst ances", + "Ġinstance s", + "c v", + "\" />", + "\"/ >", + "Ġ sf", + "Ġs f", + "Ġt axes", + "Ġtax es", + "Ġta xes", + "_ location", + "_l ocation", + "_lo cation", + "_loc ation", + "Ġ Bitcoin", + "ĠBit coin", + "u able", + "ua ble", + "r ank", + "ra nk", + "ran k", + "i gnore", + "ig nore", + "ign ore", + "t rack", + "tr ack", + "tra ck", + "к а", + "Ġshould n", + "Ġ OP", + "ĠO P", + "= >{Ċ", + "=> {Ċ", + "Ġ km", + "Ġk m", + "Ġ helper", + "Ġh elper", + "Ġhelp er", + "Ġhel per", + "_ head", + "_h ead", + "_he ad", + "Ġ Whether", + "ĠWh ether", + "ĠWhe ther", + "o co", + "oc o", + "_ bl", + "_b l", + "Ġ statistics", + "Ġstat istics", + "Ġstatist ics", + "Ġstatistic s", + "Ġbe auty", + "Ġbeaut y", + "Ġbeau ty", + "Ġ tog", + "Ġt og", + "Ġto g", + "t ip", + "ti p", + "ëĭ ¤", + "Ġ csv", + "Ġc sv", + "Ġcs v", + "( sql", + "(s ql", + "(sq l", + "std lib", + "we ak", + "Ġ likes", + "Ġl ikes", + "Ġli kes", + "Ġlike s", + "Ġlik es", + "Ä į", + "Ġ repeat", + "Ġre peat", + "Ġrep eat", + "Ġrepe at", + "Ġa partment", + "Ġap artment", + "Ġapart ment", + "Ġe mph", + "Ġem ph", + "Ġemp h", + "_ edit", + "_e dit", + "_ed it", + "Ġ vit", + "Ġv it", + "Ġvi t", + "ĉ type", + "ĉt ype", + "ĉtyp e", + "2 17", + "21 7", + "E ven", + "Ev en", + "u ten", + "ut en", + "ute n", + "Ġcircum stances", + "Ġcircumstance s", + "b ian", + "bi an", + "bia n", + "Ġs ugar", + "Ġsu gar", + "Ġsug ar", + "W indows", + "Window s", + "Wind ows", + "ì ŀ", + "Ġobs erved", + "Ġobserv ed", + "Ġobserve d", + "/ data", + "/d ata", + "/dat a", + "Ġ calendar", + "Ġc alendar", + "Ġcal endar", + "Ġcalend ar", + "Ġ strike", + "Ġst rike", + "Ġstr ike", + "Ġstri ke", + "Ġ RES", + "ĠR ES", + "ĠRE S", + "_ sc", + "_s c", + "f ony", + "fo ny", + "fon y", + "o rem", + "or em", + "ore m", + "( z", + "p ower", + "po wer", + "pow er", + "et ect", + "ete ct", + "Ġ Sat", + "ĠS at", + "ĠSa t", + ". description", + ".d escription", + ".de scription", + ".des cription", + "Ġ gang", + "Ġg ang", + "Ġga ng", + "Ġgan g", + "Ġ Sports", + "ĠS ports", + "ĠSp orts", + "ĠSport s", + "ĠSpo rts", + "ĠSpor ts", + "on gs", + "ong s", + "Ġ Bundle", + "ĠB undle", + "ĠBund le", + "ĠBun dle", + ". sum", + ".s um", + "o nce", + "on ce", + "Ġacc used", + "Ġaccus ed", + "Ġaccuse d", + "Ġexp lore", + "Ġexpl ore", + "Ġexplo re", + "Ġexplor e", + "Ġ approximately", + "Ġapprox imately", + "Ġapproximate ly", + "Ġ losing", + "Ġl osing", + "Ġlo sing", + "Ġlos ing", + "th esis", + "the sis", + "thes is", + "Ġ Fund", + "ĠF und", + "ĠFun d", + "ĠFu nd", + "Ġdi agn", + "Ġdia gn", + "Ġdiag n", + "A utowired", + "p roperties", + "prop erties", + "proper ties", + "Ġ _.", + "Ġ_ .", + "Ġ cnt", + "Ġc nt", + "Ġcn t", + "ced ure", + "Ġ yy", + "Ġy y", + "Ġ grant", + "Ġg rant", + "Ġgr ant", + "Ġgran t", + "Ġgra nt", + "s ock", + "so ck", + "soc k", + ". innerHTML", + ".inner HTML", + "Ġ ]);Ċ", + "Ġ] );Ċ", + "Ġ]) ;Ċ", + "Ġ]); Ċ", + "Ġ CONFIG", + "ĠCON FIG", + "ĠCONF IG", + "= '$", + "=' $", + "5 50", + "55 0", + "] ];Ċ", + "]] ;Ċ", + "]]; Ċ", + "U ND", + "UN D", + "Ġ glob", + "Ġg lob", + "Ġgl ob", + "Ġglo b", + "Ġ dire", + "Ġd ire", + "Ġdi re", + "Ġdir e", + "uff le", + "_ MEM", + "_M EM", + "_ME M", + "Ġauth entic", + "> (\"", + ">( \"", + "Ġde cade", + "Ġdec ade", + "Ġdecad e", + "Ġ Import", + "ĠIm port", + "ĠImp ort", + "Ġorig inally", + "Ġoriginal ly", + "Ġorigin ally", + "Ġ jQuery", + "Ġj Query", + "Ġind icate", + "Ġindic ate", + "Ġindica te", + "Ġours elves", + "S w", + ". lbl", + ".l bl", + ".lb l", + "en erate", + "ener ate", + "ene rate", + "Ġbas ically", + "Ġbasic ally", + "Ġ Hom", + "ĠH om", + "ĠHo m", + "Ġ+ #+", + "Ġ+# +", + "Ġ Britain", + "ĠBrit ain", + "ĠBri tain", + "Ġ Kar", + "ĠK ar", + "ĠKa r", + "to Equal", + ". stop", + ".s top", + ".st op", + "Ġ modal", + "Ġm odal", + "Ġmod al", + "Ġmo dal", + "Ġmoda l", + "i si", + "is i", + "Ġsuggest s", + "Ġ dtype", + "Ġd type", + "Ġdt ype", + "Ġ tur", + "Ġt ur", + "Ġtu r", + "b f", + "Ġ connections", + "Ġconnection s", + "Ġconn ections", + "Ġconnect ions", + "Ġ Before", + "ĠB efore", + "ĠBe fore", + "i sted", + "is ted", + "ist ed", + "iste d", + "m ouse", + "mo use", + "Ġp ulled", + "Ġpull ed", + "Ġpul led", + ". build", + ".b uild", + "Ġleg islation", + "Ġlegis lation", + "Ġlegisl ation", + "Ġ forth", + "Ġf orth", + "Ġfor th", + "Ġfort h", + "p ad", + "pa d", + "e go", + "eg o", + ". Now", + ".N ow", + ".No w", + "Ġexc iting", + "Ġexcit ing", + "} ĊĊĊĊ", + "}Ċ ĊĊĊ", + "}ĊĊ ĊĊ", + "}ĊĊĊ Ċ", + "Ġcom pr", + "Ġco mpr", + "Ġcomp r", + "Ġ shares", + "Ġsh ares", + "Ġshare s", + "Ġsha res", + "Ġshar es", + "Ġ rig", + "Ġr ig", + "Ġri g", + "g reen", + "gr een", + "gre en", + "gree n", + "_ vec", + "_v ec", + "_ve c", + "Ġ enumerate", + "Ġenum erate", + "Ġenumer ate", + "A uto", + "Aut o", + "Au to", + "ic ator", + "ica tor", + "Ġ Ray", + "ĠR ay", + "ĠRa y", + "a sse", + "as se", + "ass e", + "Ġ holiday", + "Ġh oliday", + "Ġhol iday", + "Ġ nullable", + "Ġnull able", + "Ġnulla ble", + "g un", + "gu n", + "_ details", + "_d etails", + "_de tails", + "_detail s", + "_det ails", + "Ġ wrapper", + "Ġw rapper", + "Ġwr apper", + "Ġwrap per", + "s eq", + "se q", + "Ġ Young", + "ĠYou ng", + "ĠYo ung", + "ju ana", + "juan a", + "Ġ\" __", + "Ġ\"_ _", + "l icense", + "lic ense", + "s erve", + "se rve", + "ser ve", + "serv e", + "^ (", + "i ders", + "id ers", + "ide rs", + "ider s", + ". Remove", + ".Re move", + ".Rem ove", + "rop down", + "' S", + "p in", + "pi n", + "( token", + "(t oken", + "(to ken", + "(tok en", + ". Default", + ".D efault", + ".De fault", + ".Def ault", + "Ġ reasonable", + "Ġreason able", + "amp ion", + "ĠS ociety", + "ĠSoci ety", + "Ġ bei", + "Ġb ei", + "Ġbe i", + "er ves", + "erv es", + "erve s", + "r ad", + "ra d", + "Ġ Fox", + "ĠF ox", + "ĠFo x", + "_ images", + "_image s", + "_im ages", + "_imag es", + "Ġ wheel", + "Ġw heel", + "Ġwh eel", + "Ġwhe el", + "' )[", + "') [", + "Ġ cfg", + "Ġc fg", + "Ġcf g", + "( By", + "(B y", + "Con structor", + "Construct or", + "Ġ vary", + "Ġv ary", + "Ġvar y", + "Ġva ry", + ". swift", + ".sw ift", + "Ġ proxy", + "Ġpro xy", + "Ġpr oxy", + "Ġprox y", + "ĉ H", + "Ġ Another", + "ĠAn other", + "Ġ Pen", + "ĠP en", + "ĠPe n", + "Ġ checking", + "Ġcheck ing", + "Ġ jest", + "Ġj est", + "Ġje st", + "Ġjes t", + "m anager", + "man ager", + "manage r", + "mana ger", + "Or igin", + "Orig in", + "u gs", + "ug s", + "o ir", + "oi r", + "> čĊ", + "Ġ-- >čĊ", + "Ġ--> čĊ", + "Ġrel ief", + "Ġreli ef", + "Ġrelie f", + "l ap", + "la p", + "q uer", + "qu er", + "que r", + "_ parent", + "_p arent", + "_par ent", + "_pa rent", + "he ap", + "hea p", + "L OSE", + "LO SE", + "LOS E", + "Ġ combine", + "Ġc ombine", + "Ġcom bine", + "Ġcomb ine", + "Ġcombin e", + "Ġ Rose", + "ĠR ose", + "ĠRo se", + "ĠRos e", + "o wers", + "ow ers", + "ower s", + "owe rs", + "Ġpro cedures", + "Ġproced ures", + "Ġprocedure s", + "Ġ Sort", + "ĠS ort", + "ĠSo rt", + "ĠSor t", + "a nim", + "an im", + "ani m", + "v ariant", + "var iant", + "vari ant", + "eh icle", + "Ġsign ing", + "Ġsig ning", + "Ġsignin g", + "Pr imary", + "Prim ary", + "Pri mary", + "c urrency", + "curr ency", + "Ġs exe", + "Ġse xe", + "Ġsex e", + "o en", + "oe n", + "th eta", + "the ta", + "e man", + "em an", + "ema n", + "Ġim pressive", + "Ġimp ressive", + "Ġimpress ive", + "( '_", + "(' _", + "ĉ U", + "Ġ TextStyle", + "ĠText Style", + "_ cnt", + "_c nt", + "_cn t", + "Ġ slice", + "Ġs lice", + "Ġsl ice", + "Ġslic e", + "( ':", + "(' :", + "Ġunder stood", + "Ġunderst ood", + "H is", + "Hi s", + "2 77", + "27 7", + "0 13", + "01 3", + "Ġin formed", + "Ġinform ed", + "Ġ nick", + "Ġn ick", + "Ġni ck", + "Ġnic k", + "4 29", + "42 9", + "( TAG", + "(T AG", + "h d", + "Ġe lections", + "Ġel ections", + "Ġelect ions", + "Ġelection s", + "Ġele ctions", + "es ture", + "est ure", + "Ġ Santa", + "ĠS anta", + "ĠSan ta", + "ĠSant a", + "ĠCo ast", + ". pdf", + ".p df", + "inc iple", + "incip le", + "inci ple", + ". clone", + ".cl one", + "b orn", + "bo rn", + "bor n", + "u ta", + "ut a", + "Ġ licensed", + "Ġl icensed", + "Ġlicense d", + "Ġlic ensed", + "Ġlicens ed", + "C r", + "Ġ bread", + "Ġb read", + "Ġbr ead", + "Ġbre ad", + "Ġ Houston", + "ĠH ouston", + "ĠHou ston", + "Ġ nod", + "Ġn od", + "Ġno d", + "Ġh opes", + "Ġhope s", + "Ġhop es", + "Ġho pes", + "Ġ CGRect", + "ĠCG Rect", + "Ġgu ilty", + "Ġguilt y", + ". gif", + ".g if", + "Ġ rose", + "Ġr ose", + "Ġro se", + "Ġros e", + ". Common", + ".Com mon", + ".Comm on", + "T ip", + "Ti p", + "A NK", + "AN K", + "Ġ FC", + "ĠF C", + "D uring", + "Du ring", + "Dur ing", + "Ġ Symfony", + "ĠSym fony", + "Ġdef ensive", + "k m", + ") >", + "a rchive", + "arch ive", + "arc hive", + "Ġ URI", + "ĠU RI", + "ĠUR I", + "y cling", + "yc ling", + "ycl ing", + "- o", + "Ġ Website", + "ĠWe bsite", + "ĠWeb site", + "A MP", + "AM P", + "4 05", + "40 5", + "ish ment", + "Ġdo ctors", + "Ġdoc tors", + "Ġdoctor s", + "D irect", + "Dir ect", + "Di rect", + "Dire ct", + "A RI", + "AR I", + "Ġ Redirect", + "ĠRe direct", + "ĠRed irect", + "i eren", + "ie ren", + "ier en", + "iere n", + "9 60", + "96 0", + "_ dist", + "_d ist", + "_dis t", + "_di st", + "y o", + "Ġ Progress", + "ĠPro gress", + "Ġz um", + "Ġzu m", + "Ġme mor", + "Ġmem or", + "Ġmemo r", + "Ġ ED", + "ĠE D", + "Ġ jur", + "Ġj ur", + "Ġju r", + "æį ®", + "_ TABLE", + "_T ABLE", + "_TAB LE", + "_TA BLE", + "Ġ uuid", + "Ġu uid", + "Ġuu id", + "Ex pr", + "Exp r", + ". head", + ".h ead", + ".he ad", + "( '%", + "(' %", + "point er", + "po inter", + "Ġ estimate", + "Ġest imate", + "Ġestim ate", + "Ġ Greg", + "ĠG reg", + "ĠGr eg", + "ĠGre g", + "Ġ loader", + "Ġl oader", + "Ġlo ader", + "Ġload er", + "Ġloa der", + "Ġ iOS", + "Ġi OS", + "Ġ mens", + "Ġm ens", + "Ġme ns", + "Ġmen s", + "[ y", + "Ġref used", + "Ġrefuse d", + "Ġ precision", + "Ġp recision", + "Ġpre cision", + "Ġprec ision", + "Ġprecis ion", + "i sch", + "is ch", + "isc h", + "Ġ ACTION", + "ĠA CTION", + "ĠAC TION", + "ĠACT ION", + "C loud", + "Cl oud", + "Clo ud", + "s With", + "( ret", + "(r et", + "(re t", + "2 92", + "29 2", + "_ ADDR", + "_A DDR", + "_ADD R", + "_AD DR", + "_ conf", + "_con f", + "_co nf", + "( df", + "(d f", + "Ġ locked", + "Ġl ocked", + "Ġloc ked", + "Ġlock ed", + "Ġ rising", + "Ġr ising", + "Ġris ing", + "Ġri sing", + "ãĥ» ãĥ»", + "Ġ Ms", + "ĠM s", + "Ġ scenes", + "Ġsc enes", + "Ġscene s", + "Ġscen es", + "Ġsce nes", + "_ EXT", + "_E XT", + "_EX T", + "_ raw", + "_r aw", + "_ra w", + "_ the", + "_t he", + "_th e", + "pe ople", + "Ġre con", + "Ġrec on", + "Ġreco n", + "Ġ Fun", + "ĠF un", + "ĠFu n", + "Ġb less", + "Ġbl ess", + "Ġble ss", + "Ġ Updated", + "ĠUp dated", + "ĠUpdate d", + "4 22", + "42 2", + "ü n", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠčĊ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠčĊ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠčĊ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠčĊ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠčĊ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ čĊ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠčĊ", + "p ection", + "pe ction", + "pect ion", + "pec tion", + "R elease", + "Re lease", + "Rel ease", + ". logger", + ".log ger", + ".lo gger", + "Ġ SY", + "ĠS Y", + "Ġc ounsel", + "Ġcoun sel", + "u rd", + "ur d", + "_ true", + "_tr ue", + "Ġevery body", + "iv ot", + "ivo t", + "Ġh ence", + "Ġhe nce", + "Ġhen ce", + "Ġ NAS", + "ĠN AS", + "ĠNA S", + "7 89", + "78 9", + "Ġop posed", + "Ġopp osed", + "Ġoppos ed", + "Ġoppose d", + "un known", + "unk nown", + "Ġ DESC", + "ĠD ESC", + "ĠDE SC", + "ĠDES C", + "Ġ Chair", + "ĠC hair", + "ĠCh air", + "ĠCha ir", + "f ailed", + "fa iled", + "fail ed", + "Ġ INCLUDING", + "ĠIN CLUDING", + "3 86", + "38 6", + "3 52", + "35 2", + "Ġ writers", + "Ġw riters", + "Ġwrit ers", + "Ġwrite rs", + "Ġwriter s", + "{ }Ċ", + "{} Ċ", + "ÃŃ t", + "_ copy", + "_c opy", + "_co py", + "} :", + "Ġ Bat", + "ĠB at", + "ĠBa t", + "Ġ converted", + "Ġcon verted", + "Ġconvert ed", + "Ġconver ted", + "e ding", + "ed ing", + "edi ng", + "edin g", + "pl acement", + "place ment", + "Ġ Host", + "ĠH ost", + "ĠHo st", + "ĠHos t", + "S ound", + "So und", + "Sou nd", + "и м", + "Ġs ought", + "Ġso ught", + "Ġsou ght", + "4 02", + "40 2", + "m id", + "mi d", + "Ġ salary", + "Ġs alary", + "Ġsal ary", + "Ġsala ry", + "o gg", + "og g", + "âĦ ¢", + "b ul", + "bu l", + "Ġw ir", + "Ġwi r", + "valid ator", + "_ STAT", + "_ST AT", + "_STA T", + ". store", + ".st ore", + "Ġ Battle", + "ĠB attle", + "ĠBat tle", + "ĠBatt le", + "ı n", + "Ġ -->ĊĊ", + "Ġ-- >ĊĊ", + "Ġ-->Ċ Ċ", + "Ġ--> ĊĊ", + "Tr ump", + "d ot", + "do t", + "Ġ CONT", + "ĠC ONT", + "ĠCON T", + "ĠCO NT", + ". fetch", + ".f etch", + "Ġcont inu", + "Ġcontin u", + "w as", + "wa s", + "Ġf raud", + "Ġfr aud", + "Ġfra ud", + "Ġfrau d", + "_ tmp", + "_t mp", + "_tm p", + "m itter", + "mit ter", + "mitt er", + ". pictureBox", + ".p ictureBox", + ".picture Box", + "G A", + "Ġ tournament", + "Ġt ournament", + ". Input", + ".In put", + "3 43", + "34 3", + "[ r", + "ex ion", + "cent age", + "ĠK orean", + "ĠKore an", + "ĠKorea n", + "ĠKor ean", + "u ndef", + "un def", + "und ef", + "unde f", + "Ġ Available", + "ĠA vailable", + "ĠAv ailable", + "re shape", + "res hape", + "resh ape", + "Ġ kit", + "Ġk it", + "Ġki t", + "Ġ Struct", + "ĠStr uct", + "Ġ SUB", + "ĠS UB", + "ĠSU B", + "An swer", + "Ans wer", + "_ lib", + "_l ib", + "_li b", + ". twitter", + ".t witter", + ".tw itter", + "Ġ ore", + "Ġo re", + "Ġor e", + "Ġ Dragon", + "ĠD ragon", + "ĠDr agon", + "ĠDrag on", + "ĠDra gon", + ". Ext", + ".Ex t", + ".E xt", + ", k", + "Ġex planation", + "Ġexplan ation", + "r efs", + "re fs", + "ref s", + "Ġ Drive", + "ĠD rive", + "ĠDr ive", + "Ġ Training", + "ĠTr aining", + "ĠTra ining", + "ĠTrain ing", + "2 82", + "28 2", + ". Has", + ".H as", + "3 41", + "34 1", + "int age", + "inta ge", + "b ig", + "bi g", + "olog ist", + "olo gist", + "ologi st", + "en nis", + "enn is", + "4 60", + "46 0", + "Ù ĩ", + "Ġch icken", + "Ġchi cken", + "Ġchick en", + "Ġchic ken", + "Ġ ĠĠĠĠĠĠĠĠĠĊ", + "ĠĠ ĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠ ĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠ ĠĠĊ", + "ĠĠĠ ĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠ ĠĠĠĊ", + "ĠĠĠĠĠ ĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠ ĠĊ", + "ĠĠĠĠĠĠ ĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠ Ċ", + "ç Ľ", + "ãģ §", + "Ġ peak", + "Ġpe ak", + "Ġpea k", + "Ġdr inking", + "Ġdrink ing", + "Ġ encode", + "Ġen code", + "Ġenc ode", + "Ġ NEW", + "ĠN EW", + "ĠNE W", + "m alloc", + "mal loc", + "mall oc", + "ĉ fprintf", + "ĉf printf", + "Ġ= ================================================================", + "Ġ================= ================================================", + "Ġ================================================= ================", + "Ġ================================= ================================", + "Ġ============================================================== ===", + "in cluding", + "incl uding", + "inclu ding", + "Ġprincip les", + "Ġprinciple s", + "Ġprinc iples", + "Ġ Mah", + "ĠM ah", + "ĠMa h", + "2 67", + "26 7", + "st orage", + "sto rage", + "stor age", + "- key", + "-k ey", + "Ġ keyword", + "Ġkey word", + "% ;", + "Ġ trained", + "Ġtr ained", + "Ġtrain ed", + "Ġtra ined", + "Ġtrai ned", + ". contrib", + ".con trib", + ".cont rib", + "Ġ kv", + "Ġk v", + "__ ':Ċ", + "Ġ Boy", + "ĠB oy", + "ĠBo y", + "param eter", + "para meter", + "Ġ suite", + "Ġs uite", + "Ġsu ite", + "Ġsuit e", + "Ġsui te", + "Ġth ousand", + "Ġthous and", + "Ġthou sand", + "Ġ coordinate", + "Ġco ordinate", + "Ġcoord inate", + "Ġcoordin ate", + "- generated", + "-g enerated", + "íķ ĺ", + "g enerated", + "gener ated", + "generate d", + "gene rated", + "Ġad mitted", + "Ġadm itted", + "Ġadmit ted", + "Ġp ussy", + "Ġpus sy", + "Ġpuss y", + "# w", + "Ġsw im", + "un ion", + "uni on", + "N a", + "2 74", + "27 4", + "Ġ Royal", + "ĠR oyal", + "ĠRoy al", + "ĠRo yal", + ". channel", + ".ch annel", + "Up dated", + "Update d", + "_ ROOT", + "_R OOT", + "_RO OT", + "Ġv ital", + "Ġvi tal", + "Ġvit al", + "Ġvita l", + "3 35", + "33 5", + "r action", + "ra ction", + "rac tion", + "ract ion", + "ĠCr usher", + "ĠCrush er", + "ĠCru sher", + "ĠCrus her", + "Ġ preced", + "Ġpr eced", + "Ġpre ced", + "Ġprec ed", + "Ġ horizontal", + "Ġh orizontal", + "Ġhor izontal", + "Ġhorizon tal", + "Blue print", + "Ġ attrs", + "Ġat trs", + "Ġatt rs", + "Ġattr s", + "Ġsm oke", + "Ġsmo ke", + "Ð Ĵ", + ". Equals", + ".E quals", + ".Equal s", + "F B", + "Ġ Resources", + "ĠRe sources", + "ĠRes ources", + "ĠResource s", + "rol ling", + "roll ing", + "Ġ passes", + "Ġp asses", + "Ġpass es", + "Ġpas ses", + "Ġpasse s", + "Ġ Num", + "ĠN um", + "ĠNu m", + "r otate", + "rot ate", + "e type", + "et ype", + "ety pe", + "\\ \",", + "\\\" ,", + "Ġs ensitive", + "Ġsens itive", + "Ġsensit ive", + "Ġt all", + "Ġtal l", + "Ġta ll", + "? âĢĿĊĊ", + "?âĢĿ ĊĊ", + "Pro xy", + "Pr oxy", + "i y", + "_ section", + "_s ection", + "_se ction", + "_sec tion", + "âĢĶâĢĶ âĢĶâĢĶ", + "b rid", + "br id", + "Ġc ircuit", + "Ġcirc uit", + "a tan", + "at an", + "ata n", + "E NC", + "EN C", + "Ġdr iven", + "Ġdrive n", + "Ġdriv en", + "Ġdri ven", + "Ġv oted", + "Ġvo ted", + "Ġvot ed", + "Ġvote d", + "Ġeduc ational", + "Ġeducation al", + "Ġ interaction", + "Ġinter action", + "Ġinteract ion", + "Ġinte raction", + "ab etes", + "abe tes", + "abet es", + "Ġ tone", + "Ġt one", + "Ġto ne", + "Ġton e", + "ĠInitialize Component", + "Ġmer ely", + "Ġmere ly", + "Ġ ìŀ", + "Ġì ŀ", + "c ookie", + "co okie", + "cook ie", + "_ div", + "_d iv", + "_di v", + "Ġ UILabel", + "ĠUI Label", + "ĠUIL abel", + "v ely", + "ve ly", + "vel y", + "} );čĊ", + "}) ;čĊ", + "}); čĊ", + "_ ENT", + "_E NT", + "_EN T", + "#+ #+", + "art icles", + "article s", + "arti cles", + "artic les", + "Ġ Southern", + "ĠSouth ern", + "ĠSou thern", + "Ġstrong er", + "Ġstro nger", + "Ġstron ger", + "Ġ Given", + "ĠG iven", + "ĠGi ven", + "ĠGive n", + "Ġ Eric", + "ĠE ric", + "ĠEr ic", + "Ġ IR", + "ĠI R", + "a bstract", + "ab stract", + "abs tract", + "U nder", + "Un der", + "Und er", + "n able", + "na ble", + "Ġ increment", + "Ġin crement", + "Ġincre ment", + "Ġinc rement", + "Ġincr ement", + "o ven", + "ov en", + "ove n", + "Ġ coin", + "Ġc oin", + "Ġco in", + "Ġcoi n", + "_ timer", + "_t imer", + "_time r", + "_tim er", + "_ti mer", + "Ġsuffer ed", + "Ġsuff ered", + "Ġ FREE", + "ĠF REE", + "ĠFR EE", + "ĠFRE E", + "' ].\"", + "'] .\"", + "']. \"", + "Ġ Queen", + "ĠQu een", + "ĠQue en", + "st ats", + "stat s", + "sta ts", + "Ġmeet ings", + "Ġmeeting s", + "Ġmee tings", + "2 76", + "27 6", + "Ġen tering", + "Ġent ering", + "Ġenter ing", + "Ġalong side", + "( session", + "(s ession", + "(sess ion", + "it als", + "ital s", + "ita ls", + "Ġ foundation", + "Ġf oundation", + "Ġfound ation", + "Ġ Credit", + "ĠC redit", + "ĠCr edit", + "ĠCre dit", + ". div", + ".d iv", + ".di v", + "_ ALL", + "_A LL", + "_AL L", + "p cion", + "pc ion", + "pci on", + "_ stat", + "_s tat", + "_st at", + "_sta t", + "ic king", + "ick ing", + "Default s", + "_ src", + "_s rc", + "_sr c", + "Ġ outputs", + "Ġout puts", + "Ġoutput s", + "/ B", + "Ġen thus", + "Ġent hus", + "Ġenth us", + "- bl", + "-b l", + ". ForeColor", + ".Fore Color", + "ĉ temp", + "ĉt emp", + "F ace", + "Fac e", + "Fa ce", + "Ġinter act", + "Ġinte ract", + "Ġwe ird", + "Ġwei rd", + "Ġweir d", + "M ount", + "Mo unt", + "r ell", + "re ll", + "rel l", + "ud ents", + "ude nts", + "udent s", + "uden ts", + "Ġrequire ment", + "Ġrequ irement", + "Ġ Sus", + "ĠS us", + "ĠSu s", + "I ER", + "IE R", + "Ġe lected", + "Ġel ected", + "Ġelect ed", + "re ference", + "ref erence", + "refer ence", + "Ġ ME", + "ĠM E", + "Ġ servers", + "Ġs ervers", + "Ġser vers", + "Ġserver s", + "Ġserv ers", + "Ġserve rs", + ". wait", + ".w ait", + "Ġ snapshot", + "Ġs napshot", + "Ġsnap shot", + "Ġsnaps hot", + "il ton", + "ilt on", + "Ġ tries", + "Ġt ries", + "Ġtr ies", + "Ġtri es", + "Ġtrie s", + "Ġ tipo", + "Ġt ipo", + "Ġti po", + "Ġtip o", + ". Time", + ".T ime", + "> w", + "Ġm ountain", + "Ġmount ain", + "Ġp ounds", + "Ġpo unds", + "Ġpou nds", + "Ġpound s", + "Ġ[ ...", + "Ġ[. ..", + "ex ists", + "exist s", + "Ġng On", + "_ MAP", + "_M AP", + "_MA P", + "Ġf lying", + "Ġfl ying", + "Ġfly ing", + "3 31", + "33 1", + "xi ety", + "ĉ value", + "ĉv alue", + "ĉval ue", + "ĉva lue", + "_ DB", + "_D B", + "u no", + "un o", + "Ġse ats", + "Ġsea ts", + "Ġseat s", + "T URN", + "TU RN", + ". author", + ".a uthor", + ".auth or", + ".aut hor", + "! )", + "or ce", + "orc e", + "Ġind icated", + "Ġindic ated", + "Ġindicate d", + "Ġindica ted", + "3 17", + "31 7", + ". sin", + ".s in", + ".si n", + "Ġ assignment", + "Ġass ignment", + "Ġassign ment", + "im iento", + "imi ento", + "Ġ Frame", + "ĠF rame", + "ĠFr ame", + "ĠFra me", + "ĠFram e", + "3 24", + "32 4", + "_ gen", + "_g en", + "_ge n", + "in ery", + "ine ry", + "iner y", + "_ )", + "m essages", + "message s", + "mess ages", + ". settings", + ".s ettings", + ".set tings", + ".setting s", + "Ġ Mean", + "ĠM ean", + "ĠMe an", + "ĠM useum", + "ĠMus eum", + "ĠMuse um", + "i rq", + "ir q", + "at tach", + "att ach", + "atta ch", + "ĠPale stin", + "ĠPalest in", + "_ QU", + "_Q U", + "_ tags", + "_t ags", + "_tag s", + "_ta gs", + "Ġcas ual", + "e men", + "em en", + "eme n", + "ASS WORD", + "4 32", + "43 2", + "$ s", + "ĠC irc", + "ĠCi rc", + "ĠCir c", + "о й", + "оР¹", + "et ric", + "etr ic", + "etri c", + "/ P", + "0 18", + "01 8", + "Ġ epoch", + "Ġep och", + "< head", + " The", + ">T he", + "Ġ Ak", + "ĠA k", + "Ġ grass", + "Ġgr ass", + "Ġgra ss", + "Ġgras s", + "/ *čĊ", + "/* čĊ", + "( dis", + "(d is", + "(di s", + "Ġ guns", + "Ġg uns", + "Ġgu ns", + "Ġgun s", + "Ġ tb", + "Ġt b", + "Ġ Kevin", + "ĠK evin", + "ĠKe vin", + ". args", + ".ar gs", + ".arg s", + "Ġ Ah", + "ĠA h", + "o ped", + "op ed", + "ope d", + "( J", + "column s", + "arg uments", + "argument s", + "ĠWith Events", + "_ full", + "_f ull", + "_fu ll", + "Ġ Defense", + "ĠDef ense", + "S imple", + "Sim ple", + "Ġde aths", + "Ġdeath s", + "2 95", + "29 5", + "Ġext ensive", + "Ġ Still", + "ĠSt ill", + "Ġ Expression", + "ĠEx pression", + "ĠExp ression", + "ĠExpress ion", + "ĠExpr ession", + "Ġ Agency", + "ĠA gency", + "ĠAg ency", + "ĠAge ncy", + "Ġper forming", + "Ġperform ing", + "Ġperfor ming", + "F X", + "Ġ usuario", + "Ġus uario", + "Ġusu ario", + "U AL", + "UA L", + "S ide", + "Si de", + "Sid e", + "o dos", + "od os", + "odo s", + "ap top", + "apt op", + "Ġ credentials", + "Ġc redentials", + "Ġcred entials", + "Ġcredential s", + "_ cap", + "_c ap", + "_ca p", + "at ient", + "ati ent", + "atie nt", + "Ġ Disney", + "ĠDis ney", + "Ġ ai", + "Ġa i", + "Ġ chip", + "Ġc hip", + "Ġch ip", + "Ġchi p", + "Ġ volt", + "Ġv olt", + "Ġvo lt", + "Ġvol t", + ".make Text", + "%%%%%%%% %%%%%%%%", + "Ġ belief", + "Ġbel ief", + "Ġbelie f", + "_ LOC", + "_L OC", + "_LO C", + "Ġ Civil", + "ĠC ivil", + "ĠCi vil", + "ĠCiv il", + "N avigation", + "Nav igation", + "Navig ation", + "Ġ reveal", + "Ġre veal", + "Ġreve al", + "Ġ violent", + "Ġviol ent", + "Ġ Fil", + "ĠF il", + "ĠFi l", + "Ġ catalog", + "Ġc atalog", + "Ġcat alog", + "Ġcata log", + "Ġcatal og", + "e med", + "em ed", + "eme d", + "s can", + "sc an", + ". control", + ".c ontrol", + ".cont rol", + "Ġ constitution", + "Ġcon stitution", + "Ġconst itution", + "Ġconstit ution", + "Ġconstitu tion", + "C ountry", + "Count ry", + "S eparator", + "Se parator", + "Separ ator", + "_ APP", + "_A PP", + "_AP P", + "t opic", + "to pic", + "top ic", + "u etooth", + "uet ooth", + "M IN", + "MI N", + "Ġ descriptor", + "Ġdes criptor", + "y t", + "ET HER", + "ETH ER", + "Ġd istribute", + "Ġdis tribute", + "Ġdistrib ute", + "' }Ċ", + "'} Ċ", + ". trim", + ".t rim", + ".tr im", + ". Line", + ".L ine", + "Ġ lbl", + "Ġl bl", + "Ġlb l", + "assert Equals", + "Ġ Det", + "ĠD et", + "ĠDe t", + "omb ok", + "ombo k", + "( width", + "(w idth", + "Ġt ort", + "Ġto rt", + "Ġtor t", + "ĠEX PRESS", + "ĠEXP RESS", + "a co", + "ac o", + "U sing", + "Us ing", + "Ġ Brand", + "ĠB rand", + "ĠBr and", + "ĠBra nd", + "ĠBran d", + "w all", + "wa ll", + "wal l", + "E MENT", + "EM ENT", + "Ġ Communic", + "ĠComm unic", + "ĠCommun ic", + "< uint", + " (Ċ", + ">( Ċ", + "? >\"", + "?> \"", + "Ġ ///Ċ", + "Ġ// /Ċ", + "Ġ/ //Ċ", + "Ġ/// Ċ", + "Ġe iner", + "Ġein er", + "Ġeine r", + "Ġei ner", + "Ġ weekly", + "Ġweek ly", + "ĉ logger", + "ĉlog ger", + "_ pop", + "_p op", + "_po p", + "_ man", + "_m an", + "_ma n", + "Ġm igrations", + "Ġmigr ations", + "Ġmigration s", + "Ġ asks", + "Ġas ks", + "Ġask s", + "Ġ bs", + "Ġb s", + "Ġ falls", + "Ġf alls", + "Ġfall s", + "Ġfal ls", + ". Where", + ".W here", + ".Wh ere", + "- height", + "-h eight", + "-he ight", + "_ feature", + "_f eature", + "_fe ature", + "_feat ure", + ". Min", + ".M in", + "Ġ hyper", + "Ġh yper", + "Ġhy per", + "Ġhyp er", + "Ġhype r", + "Ġ volatile", + "Ġv olatile", + "Ġvol atile", + "Ġ twenty", + "Ġtw enty", + "Ġtwe nty", + "Typ ography", + "U nable", + "Un able", + "Una ble", + "D et", + "De t", + ", f", + "- mod", + "-m od", + "Ġset tlement", + "Ġsett lement", + "Ġsettle ment", + "Ġ contracts", + "Ġcon tracts", + "Ġcontract s", + "Ġcontr acts", + "Ġcontra cts", + "n ome", + "no me", + "nom e", + "B ad", + "Ba d", + "Ġ Brian", + "ĠB rian", + "ĠBr ian", + "ĠBri an", + "7 68", + "76 8", + "( username", + "(user name", + "! !!!", + "!! !!", + "!!! !", + "Ġ hack", + "Ġh ack", + "Ġha ck", + "Ġhac k", + ". Field", + ".F ield", + "H R", + "Ġ Jordan", + "ĠJ ordan", + "ĠJord an", + "i za", + "iz a", + "Ġ Âł", + "Ġ ł", + "Ġ Sher", + "ĠS her", + "ĠSh er", + "ĠShe r", + ". header", + ".head er", + ".he ader", + "( other", + "(o ther", + "Ġ Dub", + "ĠD ub", + "ĠDu b", + "( op", + "(o p", + "Ġ Round", + "ĠR ound", + "ĠRo und", + "ĠRou nd", + "Ġ vie", + "Ġv ie", + "Ġvi e", + "Ġ appl", + "Ġapp l", + "Ġap pl", + "ĉ J", + "Ġ Insert", + "ĠIn sert", + "ĠIns ert", + "Ġ LP", + "ĠL P", + "re gon", + "reg on", + "rego n", + "Ġ MPI", + "ĠM PI", + "ĠMP I", + "Ġ anchor", + "Ġan chor", + "Ġanch or", + "Ġanc hor", + "a ca", + "ac a", + "ø r", + "Ġ ade", + "Ġa de", + "Ġad e", + "an chor", + "anc hor", + "anch or", + "qu ee", + "que e", + "Ġ TreeNode", + "ĠT reeNode", + "ĠTree Node", + "Ġtarget ed", + "Ġtarg eted", + "Ġl aid", + "Ġla id", + "Ġlai d", + "A BEL", + "AB EL", + "v et", + "ve t", + "Ġ Origin", + "ĠOr igin", + "ĠOri gin", + "ĠOrig in", + "A nt", + "An t", + ". ');Ċ", + ".' );Ċ", + ".') ;Ċ", + ".'); Ċ", + "ex pect", + "exp ect", + "ed Reader", + "Ġ Major", + "ĠM ajor", + "ĠMaj or", + "Ġ inch", + "Ġin ch", + "Ġinc h", + "Com par", + "Co mpar", + "Comp ar", + "Ġ preview", + "Ġp review", + "Ġpr eview", + "Ġpre view", + "Ġprev iew", + "Ġill ness", + "ĠCON TRACT", + "ĠCONTR ACT", + "ĠCONT RACT", + "Ġ Independ", + "ĠIn depend", + "ĠInd epend", + "u uid", + "uu id", + "Ġ nome", + "Ġn ome", + "Ġno me", + "Ġnom e", + "Ġ tc", + "Ġt c", + "ĠA venue", + "i san", + "is an", + "isa n", + "Ġ phrase", + "Ġph rase", + "_ move", + "_m ove", + "_mov e", + "_mo ve", + "\" )[", + "\") [", + "4 12", + "41 2", + "Ġpro vision", + "Ġprov ision", + "Ġconc entr", + "Ġconcent r", + "_ IR", + "_I R", + "Ġ Ut", + "ĠU t", + "( )+", + "() +", + "Ġ nas", + "Ġn as", + "Ġna s", + "! ,", + "Ġ Robin", + "ĠRob in", + "ĠRo bin", + "i ations", + "iation s", + "iat ions", + "at itude", + "Ġ px", + "Ġp x", + "Ġ Without", + "ĠWith out", + "/ bash", + "/b ash", + "e kt", + "ek t", + "re ement", + "ree ment", + "3 42", + "34 2", + "Ob server", + "Observ er", + "Obs erver", + "3 18", + "31 8", + "Ġ Region", + "ĠReg ion", + "UB LIC", + "UBL IC", + "Ġ {//", + "Ġ{ //", + "K N", + "å ·", + "Game Object", + "å ¾", + "en coding", + "enc oding", + "enco ding", + "Ġ ***", + "Ġ* **", + "Ġ** *", + "project s", + "proj ects", + "Ġ tk", + "Ġt k", + "Ġche ese", + "Ġchees e", + "EM PL", + "EMP L", + "a ro", + "ar o", + "Ġ اÙĦ", + "Ġا ÙĦ", + "6 10", + "61 0", + "3 37", + "33 7", + "Ġcons ists", + "Ġconsist s", + "re fresh", + "ref resh", + "u reau", + "ure au", + "Ġ Scanner", + "ĠSc anner", + "ĠScan ner", + "Ġs oil", + "Ġso il", + "Ġfl avor", + "Ġflav or", + "Ġfla vor", + "Data Source", + "Ex ecute", + "Exec ute", + "е ние", + "ен ие", + "ени е", + "Ġ shit", + "Ġs hit", + "Ġsh it", + "åĪ Ĩ", + "< any", + " < /", + "Qu antity", + "Quant ity", + "qu iry", + "quir y", + "qui ry", + "_ tab", + "_t ab", + "_ta b", + "Ġ alg", + "Ġa lg", + "Ġal g", + "To ast", + "re size", + "res ize", + "resi ze", + "quest ions", + "question s", + "s chema", + "sch ema", + "L iteral", + "Lite ral", + "Lit eral", + "Liter al", + "( entity", + "(e ntity", + "(ent ity", + "NE CTION", + "NECT ION", + "ch anged", + "change d", + "chan ged", + "chang ed", + "_ FIELD", + "_F IELD", + "_ HEIGHT", + "_HE IGHT", + "Ġ organic", + "Ġorg anic", + "Ġorgan ic", + "P RE", + "PR E", + "Ġ Cat", + "ĠC at", + "ĠCa t", + ". Draw", + ".D raw", + "E s", + "Ġ loud", + "Ġl oud", + "Ġlo ud", + "Ġlou d", + "6 80", + "68 0", + "Ġ ĠĠĠĠĠĠĠĉ", + "ĠĠ ĠĠĠĠĠĠĉ", + "ĠĠĠĠ ĠĠĠĠĉ", + "ĠĠĠĠĠĠĠĠ ĉ", + "ĠĠĠ ĠĠĠĠĠĉ", + "ĠĠĠĠĠĠĠ Ġĉ", + "ĠĠĠĠĠ ĠĠĠĉ", + "ĠĠĠĠĠĠ ĠĠĉ", + "Ġ Kat", + "ĠK at", + "ĠKa t", + "Ġ heap", + "Ġhe ap", + "âĢľ It", + "âĢľI t", + "0 70", + "07 0", + "e tr", + "et r", + "Ġ unlikely", + "Ġun likely", + "Ġunlike ly", + "er als", + "era ls", + "eral s", + "/ auth", + "/a uth", + "5 02", + "50 2", + "t odo", + "to do", + "tod o", + "P lace", + "Pl ace", + "Post ed", + "Pos ted", + "Po sted", + "Com ments", + "Comment s", + "Comm ents", + "Ġ Tech", + "ĠT ech", + "ĠTe ch", + "ĠTec h", + "Ġ Finally", + "ĠF inally", + "ĠFin ally", + "ĠFinal ly", + "eg ration", + "egr ation", + "egra tion", + "Ġ minimal", + "Ġmin imal", + "Ġmini mal", + "Ġminim al", + "Ġ Files", + "ĠF iles", + "ĠFile s", + "ĠFil es", + "ĠFi les", + "Ġt amb", + "Ġta mb", + "Ġtam b", + "ë¡ ľ", + "Ġ Release", + "ĠR elease", + "ĠRe lease", + "ĠRel ease", + "4 25", + "42 5", + ". resize", + ".re size", + ".res ize", + "Ġ Ï", + "c ollect", + "col lect", + "coll ect", + "= p", + "ĠLI ABLE", + "Ġp roducing", + "Ġprodu cing", + "Ġprod ucing", + "- wrapper", + "-w rapper", + "-wrap per", + "Ġs ingles", + "Ġsingle s", + "Ġsin gles", + "Ġsing les", + "ĠN BA", + "ĠNB A", + "o rr", + "or r", + "e ren", + "er en", + "ere n", + ". addAction", + ".add Action", + "Ġ thesis", + "Ġth esis", + "Ġthe sis", + "d n", + "P TY", + "PT Y", + ". des", + ".d es", + ".de s", + "Ġb acter", + "Ġba cter", + "Ġbac ter", + "Ġ Express", + "ĠEx press", + "ĠExp ress", + "ĠExpr ess", + "Ġ *)Ċ", + "Ġ* )Ċ", + "Ġ*) Ċ", + "å ij", + "/ admin", + "/ad min", + "se conds", + "sec onds", + "second s", + "åĬ Ł", + "uss ion", + "a beth", + "ab eth", + "abe th", + "abet h", + "Ġ Computer", + "ĠCom puter", + "ĠComp uter", + "ĠCompute r", + "ĠComput er", + "Ġr uling", + "Ġru ling", + "(\" ../", + "(\". ./", + "(\".. /", + ". GET", + ".G ET", + "ĠMe dal", + "ĠMed al", + "ition ally", + "itional ly", + "com mit", + "comm it", + "f ocus", + "fo cus", + "_ LEVEL", + "_LE VEL", + "i nda", + "in da", + "ind a", + "F act", + "Fac t", + "Fa ct", + "= np", + "=n p", + "=\" \">Ċ", + "=\"\" >Ċ", + "=\"\"> Ċ", + "Ġsub sequent", + "Ġsubsequ ent", + "pos able", + "- fluid", + "-fl uid", + "Ġth orough", + "Ġtho rough", + "Ġthor ough", + "Ġpublic ly", + "Ġpubli cly", + "ap ters", + "apt ers", + "apter s", + "Ġ Wilson", + "ĠWil son", + "_ PRE", + "_P RE", + "_PR E", + "y ard", + "ya rd", + "yar d", + "ä ¼", + "ĉ in", + "ĉi n", + "3 39", + "33 9", + "Ġre vers", + "Ġrev ers", + "Ġreve rs", + "Ġrever s", + "Ġ bullet", + "Ġb ullet", + "Ġbul let", + "Ġbull et", + "cri bed", + "cribe d", + "nes ota", + "Ġ ($_", + "Ġ( $_", + "Ġ($ _", + "an non", + "ann on", + "anno n", + "c ursor", + "curso r", + "Ġclo thing", + "Ġcloth ing", + "Ġ Multi", + "ĠM ulti", + "ĠMult i", + "ĠMul ti", + "2 87", + "28 7", + ": ',", + ":' ,", + "Ġv ess", + "Ġve ss", + "Ġves s", + "ord inator", + "ordin ator", + "Ġe inem", + "Ġein em", + "Ġeine m", + "Ġei nem", + "C annot", + "Can not", + "Ġ armed", + "Ġar med", + "Ġarm ed", + "ĉ V", + "ä¸ Ĭ", + ". Flat", + ".F lat", + ".Fl at", + "Ġ Sep", + "ĠS ep", + "ĠSe p", + "Ġ Subject", + "ĠSub ject", + "ĠSu bject", + "_ font", + "_f ont", + "Ġcharacter istics", + "Ġcharacteristic s", + "D one", + "Do ne", + "Don e", + "e ln", + "el n", + "#### ########", + "######## ####", + "##### #######", + "###### ######", + "####### #####", + "P OS", + "PO S", + "Ġ density", + "Ġd ensity", + "Ġdens ity", + "Ġ Platform", + "ĠPl atform", + "ĠPlat form", + "- items", + "-item s", + "-i tems", + "-it ems", + "Ġ overs", + "Ġo vers", + "Ġover s", + "Ġov ers", + "Ġp ushing", + "Ġpush ing", + "ç ¤", + ". Connection", + ".Con nection", + ".Connect ion", + ".Conn ection", + "_ term", + "_t erm", + "_te rm", + "_ter m", + "Ġinitial ization", + "________________ ________________", + "ç ¬", + ". document", + ".d ocument", + ".doc ument", + "l esh", + "le sh", + "les h", + "ĉ document", + "ĉd ocument", + "ĉdoc ument", + "Ġ Pin", + "ĠP in", + "ĠPi n", + "ç a", + "Ġ definitions", + "Ġdefinition s", + "Ġdefinit ions", + "Ġdefin itions", + ". Path", + ".P ath", + "_ WRITE", + "_W RITE", + "_WR ITE", + "Ġ ĉĊ", + "Ġĉ Ċ", + "? >ĊĊ", + "?> ĊĊ", + "?>Ċ Ċ", + "Ġter rible", + "Ġterr ible", + "b ean", + "be an", + "ick ets", + "icket s", + "Ġ SV", + "ĠS V", + "B uy", + "Bu y", + "( task", + "(t ask", + "Ġreg ime", + "g oogle", + "go ogle", + "goog le", + "goo gle", + "Ġc rack", + "Ġcr ack", + "Ġcra ck", + ". visit", + ".vis it", + "N UM", + "NU M", + "e nergy", + "en ergy", + "ener gy", + "Ġs truck", + "Ġstr uck", + "Ġstru ck", + "_ sample", + "_s ample", + ". payload", + ".p ayload", + ".pay load", + "Ġre vis", + "Ġrev is", + "Ġ Scene", + "ĠS cene", + "ĠSc ene", + "Ġ pg", + "Ġp g", + "Ġbreak fast", + "URRE NT", + ". charAt", + ".char At", + "_ exception", + "_ex ception", + "_except ion", + "ĠA nton", + "ĠAn ton", + "ĠAnt on", + "Ġguide lines", + "Ġguid elines", + "Ġguideline s", + "Ġex haust", + "Ġ Financial", + "ĠFin ancial", + "Ġ indent", + "Ġin dent", + "Ġind ent", + "Ġinde nt", + "Ġ desktop", + "Ġd esktop", + "Ġdes ktop", + "Ġdesk top", + "H idden", + "Hi dden", + "F ailure", + "Fail ure", + "Ġpr inciple", + "Ġprincip le", + "Ġprinc iple", + "Ġ iv", + "Ġi v", + "Ġs eks", + "Ġse ks", + "Ġsek s", + "n etwork", + "net work", + "Ġ numberOf", + "Ġnumber Of", + "Ġ Albert", + "ĠAl bert", + "ĠAlb ert", + "ĉ long", + "ĉl ong", + "8 01", + "80 1", + ", .", + "Ġ zeros", + "Ġz eros", + "Ġzero s", + "Ġze ros", + "Ġzer os", + "f ade", + "fa de", + "fad e", + "Ġ Typ", + "ĠT yp", + "ĠTy p", + "Ġ Term", + "ĠT erm", + "ĠTe rm", + "ĠTer m", + "ĠA rts", + "ĠAr ts", + "ĠArt s", + ". Application", + ".App lication", + ".Ap plication", + "Ġbe half", + "Ġbeh alf", + "æĪ ·", + "Ġ mere", + "Ġm ere", + "Ġme re", + "Ġmer e", + "( `${", + "(` ${", + "Ġaware ness", + "el pers", + "elp ers", + "elper s", + "f lix", + "fl ix", + "Ġ weigh", + "Ġwe igh", + "Ġwei gh", + "Ġest imates", + "Ġestim ates", + "Ġestimate s", + ". child", + ".ch ild", + "/ O", + "Ġ Bitmap", + "ĠB itmap", + "ĠBit map", + ". bottom", + ".b ottom", + ".bot tom", + "Ġ** ************************************************************************", + "Ġ************************************************************************ **", + "Ex pect", + "Exp ect", + "en to", + "ent o", + "Ġ Forum", + "ĠF orum", + "ĠFor um", + "ĠFo rum", + "v eral", + "ver al", + "ve ral", + "Ġj ail", + "Ġja il", + "Ġ abilities", + "Ġab ilities", + "ĠH OLD", + "ĠHO LD", + "ĠHOL D", + "Ġ Cit", + "ĠC it", + "ĠCi t", + "Ġd ynam", + "Ġdy nam", + "Ġdyn am", + "Ġ gray", + "Ġg ray", + "Ġgr ay", + "Ġgra y", + "ĉ ĉĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉ ĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉ ĉĉĉĉĉĉĉĉĉ", + "ĉĉĉ ĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉ ĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉ ĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉ ĉĉĉĉĉ", + "ĉĉĉĉĉĉĉ ĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉ ĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉ ĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉ ĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉĉ ĉ", + ". nextInt", + ".next Int", + "ant ly", + "ĠAR ISING", + "( private", + "(pr ivate", + "(priv ate", + "Ġ rejected", + "Ġre jected", + "Ġreject ed", + "Ġrej ected", + "Ġ Nic", + "ĠN ic", + "ĠNi c", + "Ġle ather", + "= {Ċ", + "={ Ċ", + "aly tics", + "t hetic", + "th etic", + "the tic", + ". Top", + ".T op", + ".To p", + "3 73", + "37 3", + ". Page", + ".P age", + "={ `", + "Ġ ;čĊ", + "Ġ; čĊ", + "de pth", + "dep th", + "dept h", + "m ann", + "man n", + "ma nn", + "W D", + "Ġ Som", + "ĠS om", + "ĠSo m", + ". Right", + ".R ight", + "Ġ )}Ċ", + "Ġ) }Ċ", + "Ġ trait", + "Ġt rait", + "Ġtr ait", + "Ġtra it", + "Ġtrai t", + "à Ĺ", + "i ac", + "ia c", + "Ġ rv", + "Ġr v", + "S ample", + "Sam ple", + ". Xml", + ".X ml", + "o pped", + "op ped", + "opp ed", + "Ġ ÑĦ", + "ĠÑ Ħ", + "l ists", + "li sts", + "list s", + "lis ts", + "Ġt ear", + "Ġte ar", + "Ġtea r", + "ivers ary", + ". collection", + ".c ollection", + ".col lection", + ".collect ion", + ".coll ection", + "ĠCon stitution", + "ĠConst itution", + "ĠConstit ution", + "Ġ HttpResponse", + "ĠHttp Response", + "Ġbr ill", + "Ġbri ll", + "Ġ Prom", + "ĠP rom", + "ĠPro m", + "ĠPr om", + "h over", + "ho ver", + "3 66", + "36 6", + "Ġ Miami", + "ĠM iami", + "ĠMi ami", + "ĠMia mi", + "Ġar gue", + "Ġarg ue", + "_ float", + "_f loat", + "5 04", + "50 4", + "Ġ ãĤ", + "Ġ nat", + "Ġn at", + "Ġna t", + "ĠT al", + "ĠTa l", + "Ġ integration", + "Ġint egration", + "Ġinteg ration", + "Ġintegr ation", + "( cur", + "(c ur", + "Ġre moving", + "Ġrem oving", + "Ġ coeff", + "Ġc oeff", + "Ġco eff", + "Ġcoef f", + "Ġ Though", + "ĠTh ough", + "ĠThou gh", + "Ġ forecast", + "Ġfor ecast", + "Ġfore cast", + "4 08", + "40 8", + "ĠV egas", + "ĠVe gas", + "ĠVega s", + "ĠVeg as", + "S ite", + "Si te", + "Sit e", + "3 46", + "34 6", + "Ġt rab", + "Ġtr ab", + "Ġtra b", + "Ġ Henry", + "ĠHen ry", + "- i", + "Ġinv olves", + "Ġinvol ves", + "Ġinvolve s", + "B T", + "Ġs lo", + "Ġsl o", + "In voke", + "Inv oke", + "Ġl ucky", + "Ġluck y", + "Ġlu cky", + "Ġluc ky", + "0 25", + "02 5", + "r at", + "ra t", + "Ġ ?Ċ", + "Ġ? Ċ", + "Ġ handled", + "Ġhand led", + "Ġhandle d", + "( fd", + "(f d", + "cont ents", + "content s", + "conte nts", + "Ġ OFF", + "ĠO FF", + "ĠOF F", + "R F", + "Ġ sty", + "Ġs ty", + "Ġst y", + "Ġ Motor", + "ĠM otor", + "ĠMo tor", + "ĠMot or", + "ĠMoto r", + "t ery", + "ter y", + "te ry", + "t ax", + "ta x", + "M AP", + "MA P", + "Ġ Mrs", + "ĠM rs", + "ĠMr s", + "Ġ phones", + "Ġph ones", + "Ġphone s", + "Ġphon es", + "Ġ UIView", + "ĠUI View", + "\" )));Ċ", + "\") ));Ċ", + "\")) );Ċ", + "\"))) ;Ċ", + "\"))); Ċ", + "( dev", + "(d ev", + "(de v", + "ĠI rish", + "ĠIr ish", + "ĠIris h", + "0 19", + "01 9", + "Ġ ws", + "Ġw s", + "D I", + "_ OFFSET", + "_OFF SET", + "Ġ Events", + "ĠE vents", + "ĠEvent s", + "ĠEven ts", + "ĠEv ents", + "ĠEve nts", + "Ġst ages", + "Ġstage s", + "Ġsta ges", + "Ġstag es", + "Ġ }//", + "Ġ} //", + "Ġh aben", + "Ġhab en", + "Ġha ben", + "Ġhabe n", + "ST ANCE", + "Ġ Sin", + "ĠS in", + "ĠSi n", + "Ġ Money", + "ĠM oney", + "ĠMon ey", + "ĠMo ney", + "( top", + "(t op", + "(to p", + "Ġ appointment", + "Ġapp ointment", + "Ġappoint ment", + "V ERSION", + "VER SION", + "VERS ION", + "m etadata", + "met adata", + "meta data", + "_ comment", + "_com ment", + "_comm ent", + "Ġcolle agues", + "Ġcolleague s", + "m aps", + "ma ps", + "map s", + "â ĺ", + "Ċ ĉĊ", + "( al", + "(a l", + "_ req", + "_re q", + "_r eq", + "Ġf ut", + "Ġfu t", + "Ġ architecture", + "Ġarch itecture", + "Ġarchitect ure", + "Ġarchit ecture", + "3 51", + "35 1", + "ĠWH ETHER", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "_ screen", + "_s creen", + "_sc reen", + "_scr een", + "Ġstyle Urls", + "Ġ monster", + "Ġmon ster", + ". up", + ".u p", + "ph ia", + "phi a", + "Ġ processor", + "Ġprocess or", + "Ġproc essor", + "Ġprocesso r", + "Ġ Terr", + "ĠT err", + "ĠTe rr", + "ĠTer r", + "= ',", + "=' ,", + "Ġ Manufact", + "ĠMan ufact", + "Ġ NT", + "ĠN T", + "k el", + "ke l", + "i bern", + "ib ern", + "iber n", + "ibe rn", + "ĉ file", + "ĉf ile", + "ĉfi le", + "A li", + "Al i", + "rient ation", + "Ġ //!", + "Ġ// !", + "ap ore", + "apor e", + "apo re", + "an eous", + "ane ous", + "Ġ Creat", + "ĠC reat", + "ĠCr eat", + "ĠCre at", + "f older", + "fo lder", + "fol der", + "fold er", + "4 15", + "41 5", + "Ġ hay", + "Ġh ay", + "Ġha y", + "Sup press", + "( left", + "(l eft", + "(le ft", + "Ġe uro", + "Ġeu ro", + "Ġdis claimer", + "u stry", + "us try", + "ust ry", + "ustr y", + "s hips", + "sh ips", + "ship s", + "shi ps", + "_ fd", + "_f d", + "Ġ Fa", + "ĠF a", + "_ insert", + "_in sert", + "_ins ert", + "Ġ rol", + "Ġr ol", + "Ġro l", + "if ting", + "ift ing", + "Ġ Comments", + "ĠCom ments", + "ĠComm ents", + "ĠComment s", + "_ br", + "_b r", + "Ġlos ses", + "Ġloss es", + "Ġ Added", + "ĠAd ded", + "ĠAdd ed", + "ch arg", + "char g", + "cha rg", + "Ġ по", + "Ġп о", + "_ system", + "_s ystem", + "_sys tem", + "_sy stem", + "Ġ Sometimes", + "ĠS ometimes", + "ĠSome times", + "ĠSom etimes", + "Ġ Spain", + "ĠS pain", + "ĠSp ain", + "ĠSpa in", + "( group", + "(g roup", + "(gr oup", + "i alis", + "ial is", + "ia lis", + "iali s", + "Ġd ollar", + "Ġdoll ar", + "Ġdol lar", + "Ġ Args", + "ĠAr gs", + "ĠArg s", + "4 99", + "49 9", + "2 97", + "29 7", + "qu ires", + "quire s", + "quir es", + "qui res", + "Ġ Ten", + "ĠT en", + "ĠTe n", + ". scss", + ".s css", + ".sc ss", + "Ġsurv ive", + "Ġsurviv e", + "u sage", + "us age", + "usa ge", + "Ġ jun", + "Ġj un", + "Ġju n", + "im iter", + "imit er", + "imi ter", + "ï¼ģ ĊĊ", + "ï¼ģĊ Ċ", + "Ġf ifth", + "Ġfif th", + "t oggle", + "tog gle", + "Ġde cline", + "Ġdec line", + "Ġdecl ine", + "( $\"", + "($ \"", + "( Long", + "(L ong", + "i nge", + "in ge", + "ing e", + "Ġp ilot", + "Ġpi lot", + "Ġpil ot", + "- light", + "-l ight", + "-li ght", + "- radius", + "-r adius", + "-rad ius", + "Ġp odcast", + "Ġpod cast", + "Ġn aturally", + "Ġnatural ly", + "Ġnatur ally", + "Ġnat urally", + "P ages", + "Page s", + "Pa ges", + "Pag es", + "ä¸ º", + "Ġ Despite", + "ĠDes pite", + "Ġl ighting", + "Ġlight ing", + "Ġ crate", + "Ġc rate", + "Ġcr ate", + "Ġcra te", + "Ġ Binary", + "ĠB inary", + "ĠBin ary", + "Ġred ucing", + "Ġredu cing", + "Ġe leg", + "Ġel eg", + "Ġele g", + "Ġ Mouse", + "ĠM ouse", + "ĠMo use", + "ĠMou se", + "ĠTest Bed", + "Ġbefore Each", + "_ ARRAY", + "_AR RAY", + "_ARR AY", + "Re direct", + "Red irect", + "3 29", + "32 9", + "Ġf lood", + "Ġfl ood", + "Ġflo od", + "Ġ ships", + "Ġs hips", + "Ġsh ips", + "Ġship s", + "3 63", + "36 3", + "Ġelectric ity", + "Ġelectr icity", + ") *(", + ")* (", + "ê ¸", + "Ġ Viet", + "ĠV iet", + "ĠVi et", + "ĠVie t", + "h ero", + "he ro", + "her o", + "Ġ dia", + "Ġd ia", + "Ġdi a", + "Ġ Kent", + "ĠK ent", + "ĠKe nt", + "ĠKen t", + "he art", + "hea rt", + "hear t", + "Ġthreat s", + "_ acc", + "_a cc", + "_ac c", + "Ġ symbols", + "Ġs ymbols", + "Ġsymbol s", + "Ġsymb ols", + "is chen", + "isc hen", + "ische n", + "isch en", + "_ inst", + "_in st", + "_i nst", + "_ins t", + "C riterion", + "Ġ TIM", + "ĠT IM", + "ĠTI M", + ". Height", + ".H eight", + ".He ight", + "5 80", + "58 0", + "Ġ âĢĻ", + "ĠâĢ Ļ", + "( );ĊĊĊ", + "() ;ĊĊĊ", + "();Ċ ĊĊ", + "();ĊĊ Ċ", + "(); ĊĊĊ", + "Product s", + "Produ cts", + "_ SP", + "_S P", + "Ġ Cy", + "ĠC y", + "Ġ dependent", + "Ġdep endent", + "Ġdepend ent", + "e ste", + "es te", + "est e", + "Ġ datos", + "Ġd atos", + "Ġda tos", + "Ġdat os", + "Ġdato s", + "d it", + "di t", + "а в", + "аР²", + "IG NAL", + "IGN AL", + "Ġ lesson", + "Ġl esson", + "Ġle sson", + "Ġless on", + "Ġles son", + "\" >'", + "\"> '", + "Ġ Cover", + "ĠC over", + "ĠCo ver", + "ĠCov er", + "ĠCove r", + "Ġ Hope", + "ĠH ope", + "ĠHo pe", + "ĠHop e", + "Ġ Timer", + "ĠT imer", + "ĠTime r", + "ĠTim er", + "ĠTi mer", + "Ġ dad", + "Ġd ad", + "Ġda d", + "v iders", + "vid ers", + "vider s", + "vi ders", + "vide rs", + "Ġ Phot", + "ĠP hot", + "ĠPh ot", + "/ ?", + "r opy", + "ro py", + "rop y", + "o ming", + "om ing", + "omin g", + "omi ng", + "as ion", + "asi on", + "asio n", + "Ġ \\(", + "Ġ\\ (", + "Ġ ET", + "ĠE T", + "Ġ Reading", + "ĠRe ading", + "ĠRead ing", + "Ġep isodes", + "Ġepisode s", + "Ġepis odes", + "l m", + "4 21", + "42 1", + "e cha", + "ec ha", + "ech a", + "Ġne uro", + "Ġneu ro", + "Ġneur o", + "8 20", + "82 0", + "Ġhar mon", + "Ġharm on", + "Ġlib eral", + "Ġliber al", + "- ind", + "-in d", + "-i nd", + "3 93", + "39 3", + "D ATA", + "DA TA", + "DAT A", + "Ġevery day", + "Ġdi vided", + "Ġdiv ided", + "Ġdivide d", + "Ġdivid ed", + "ĠActive Record", + "f igure", + "fig ure", + "figur e", + "U A", + "ä ¹", + "riend ly", + "t ech", + "te ch", + "tec h", + "6 01", + "60 1", + ". gameObject", + ".game Object", + "и ÑĤÑĮ", + "иÑĤ ÑĮ", + "3 74", + "37 4", + "Ġ moon", + "Ġm oon", + "Ġmo on", + "Ġmoo n", + "f time", + "ft ime", + "Ġ noch", + "Ġn och", + "Ġno ch", + "Ġnoc h", + "ĠT ORT", + "ĠTO RT", + "ĠTOR T", + "Ġ VM", + "ĠV M", + ". initial", + ".in itial", + ".init ial", + "( child", + "(ch ild", + "Ġmus ical", + "Ġmusic al", + "Ġmusica l", + "Ġ oc", + "Ġo c", + "b as", + "ba s", + "Ġ Hay", + "ĠH ay", + "ĠHa y", + "3 61", + "36 1", + "_ long", + "_l ong", + "_lo ng", + "_lon g", + "Ġ memset", + "Ġmem set", + "i ley", + "il ey", + "ile y", + "adel phia", + "S V", + "ro at", + "_ tx", + "_t x", + "Ġ lon", + "Ġl on", + "Ġlo n", + "Ġng OnInit", + "ĠngOn Init", + "b p", + "Ġ Golden", + "ĠGold en", + "ĠGol den", + "A CHE", + "AC HE", + "ACH E", + "Ġwor ried", + "a zi", + "az i", + "E ar", + "T ake", + "Ta ke", + "Tak e", + "( fp", + "(f p", + "burg h", + "bur gh", + "_ Data", + "_D ata", + "g res", + "gr es", + "gre s", + "Ġ Ont", + "ĠO nt", + "ĠOn t", + "p us", + "pu s", + "Ġ transparent", + "Ġtrans parent", + "Ġp ocket", + "Ġpo cket", + "Ġpoc ket", + "Ġ ram", + "Ġr am", + "Ġra m", + "igration s", + "igr ations", + ". čĊčĊ", + ".čĊ čĊ", + "Ġ [(", + "Ġ[ (", + "Ġadopt ed", + "Ġreport edly", + "Ġreported ly", + "Ġ Dream", + "ĠD ream", + "ĠDr eam", + "ĠDre am", + "Ġ }));Ċ", + "Ġ} ));Ċ", + "Ġ}) );Ċ", + "Ġ})) ;Ċ", + "l osing", + "lo sing", + "los ing", + "Ġte eth", + "Ġtee th", + "Ġ Books", + "ĠB ooks", + "ĠBo oks", + "ĠBook s", + "ĠBoo ks", + "\" ,&", + "\", &", + "en ny", + "enn y", + "L EMENT", + "LE MENT", + "LEM ENT", + "Ġ gel", + "Ġg el", + "Ġge l", + "Ġ Plant", + "ĠP lant", + "ĠPl ant", + "ĠPlan t", + "ĠPla nt", + "4 37", + "43 7", + "! âĢĿ", + ". host", + ".h ost", + "Ġ Reply", + "ĠRe ply", + "ĠRep ly", + "3 76", + "37 6", + "r ength", + "re ngth", + "ren gth", + "Ġrec ognition", + "Ġrecogn ition", + "Ġ }}>Ċ", + "Ġ} }>Ċ", + "Ġ}} >Ċ", + "Ġ}}> Ċ", + "L A", + "Ġ mirror", + "Ġm irror", + "Ġmir ror", + "Ġmi rror", + "Ġ assistant", + "Ġass istant", + "Ġassist ant", + "( device", + "(d evice", + "(de vice", + "(dev ice", + "Ġspirit ual", + "b uilder", + "build er", + "bu ilder", + " §", + "Ġo utr", + "Ġout r", + "Ġou tr", + "Ġ tt", + "Ġt t", + "Ġ PER", + "ĠP ER", + "ĠPE R", + "Ġrad ical", + "Ġradi cal", + "Method s", + "Ġ pace", + "Ġp ace", + "Ġpa ce", + "Ġpac e", + "u dy", + "ud y", + "Ġg ut", + "Ġgu t", + "Ġ Greek", + "ĠG reek", + "ĠGre ek", + "ĠGree k", + "Ġ nonatomic", + "Ġnon atomic", + "Ġ Paper", + "ĠP aper", + "ĠPa per", + "ĠPap er", + "_ GPIO", + "_G PIO", + "_GP IO", + "Ġo bst", + "Ġob st", + "Ġobs t", + ". Ad", + ".A d", + "viron ments", + "vironment s", + "ĠS ov", + "ĠSo v", + "3 56", + "35 6", + "( con", + "(c on", + "(co n", + "Ġ Transaction", + "ĠTrans action", + ". assign", + ".as sign", + "ĉ catch", + "ĉc atch", + "ĉcat ch", + "el ter", + "elt er", + "Ġ bitcoin", + "Ġbit coin", + "_ GR", + "_G R", + "Ġ čĊ", + "Ġ/ >čĊ", + "Ġ/> čĊ", + "m etic", + "me tic", + "met ic", + "Ġtrans formation", + "Ġtransform ation", + "åı ·", + "Ġ rgb", + "Ġr gb", + "Ġrg b", + "istrib utions", + "istribution s", + "Ġ implicit", + "Ġimp licit", + "Ġimpl icit", + "Ġimplic it", + "/ in", + "/i n", + "d estination", + "dest ination", + "а ÑĤÑĮ", + "аÑĤ ÑĮ", + "Z ero", + "Ze ro", + "Ġ unset", + "Ġun set", + "Ġuns et", + "9 20", + "92 0", + ". where", + ".w here", + ".wh ere", + ". go", + ".g o", + "Ġ formation", + "Ġform ation", + "Ġformat ion", + "Ġforma tion", + "Ġ declaration", + "Ġde claration", + "Ġdeclar ation", + "( )čĊčĊ", + "() čĊčĊ", + "()čĊ čĊ", + "Ġ Expl", + "ĠEx pl", + "ĠExp l", + "ĉ ĉĉĠĠ", + "ĉĉ ĉĠĠ", + "ĉĉĉ ĠĠ", + "ĉĉĉĠ Ġ", + "/ pro", + "/p ro", + "/pr o", + ". JSON", + ".J SON", + "4 41", + "44 1", + "Ġ desk", + "Ġd esk", + "Ġde sk", + "Ġdes k", + ". substr", + ".sub str", + "// ----------------------------------------------------------------------------", + "//---------------------------------------------------------------- ------------", + "//------------------------------------------------ ----------------------------", + "l yn", + "ly n", + "p son", + "ps on", + "4 07", + "40 7", + "d isable", + "dis able", + "Ġ Func", + "ĠF unc", + "ĠFun c", + "ĠFu nc", + "ĉ Assert", + "Ġ MARK", + "ĠM ARK", + "ĠMA RK", + "ĠMAR K", + "Ġde feat", + "Ġdef eat", + "Ġdefe at", + "Ġ blind", + "Ġbl ind", + "Ġbli nd", + "Ġ constants", + "Ġcon stants", + "Ġconst ants", + "Ġconstant s", + "3 62", + "36 2", + ". headers", + ".head ers", + ".header s", + ".he aders", + "U ILD", + "UI LD", + "UIL D", + "Ġ expenses", + "Ġexp enses", + "Ġexpense s", + "P ixel", + "Pix el", + "Ġ hr", + "Ġh r", + "Ġ fel", + "Ġf el", + "Ġfe l", + "Ġ Eastern", + "ĠEast ern", + "ĠEaster n", + "4 24", + "42 4", + "4 90", + "49 0", + "_ del", + "_d el", + "_de l", + "3 57", + "35 7", + "ĠC ub", + "ĠCu b", + "Ġ sq", + "Ġs q", + "ĉ count", + "ĉc ount", + "Ġ Directory", + "ĠD irectory", + "ĠDirect ory", + "ĠDirector y", + "Ġex clus", + "Ġexc lus", + "Ġexcl us", + "Ġ historic", + "Ġhistor ic", + "Ġhist oric", + "Ġhisto ric", + "Ġ ------------------------------------------------", + "Ġ---------------- --------------------------------", + "Ġ-------------------------------- ----------------", + "Ġ-------------------- ----------------------------", + "Ġ composition", + "Ġcom position", + "Ġcomp osition", + "Ġcompos ition", + "Ġ dataGridView", + "Ġdata GridView", + "Ġ Burn", + "ĠB urn", + "ĠBur n", + "ĠBu rn", + "Ġ BC", + "ĠB C", + "M aster", + "Ma ster", + "Mas ter", + "Ġ spawn", + "Ġs pawn", + "Ġsp awn", + "Ġspa wn", + "Ġ bearing", + "Ġb earing", + "Ġbe aring", + "Ġbear ing", + ". SetActive", + ".Set Active", + "i lo", + "il o", + "Ġ gallery", + "Ġg allery", + "Ġgall ery", + "Ġf ounded", + "Ġfound ed", + "Ġfo unded", + "Ġ availability", + "Ġa vailability", + "Ġav ailability", + "Ġavail ability", + ". sqrt", + ".s qrt", + "Ġ pes", + "Ġp es", + "Ġpe s", + "Ġ DOM", + "ĠD OM", + "ĠDO M", + "m ate", + "ma te", + "mat e", + "O ct", + "Ġ matched", + "Ġm atched", + "Ġmatch ed", + "Ġmat ched", + "it ivity", + "Ġan xiety", + ". price", + ".p rice", + ".pr ice", + "Ġ Instant", + "ĠIn stant", + "ĠInst ant", + "ĠIns tant", + "ì Ĭ", + "Ġt ut", + "Ġtu t", + "I Collection", + "IC ollection", + ". shared", + ".sh ared", + ".share d", + ".sha red", + "_ sql", + "_s ql", + "_sq l", + "t bl", + "tb l", + "l ibrary", + "lib rary", + "_ destroy", + "_d estroy", + "_de stroy", + "_dest roy", + "er mal", + "erm al", + "Ġ Notes", + "ĠN otes", + "ĠNo tes", + "ĠNot es", + "ĠNote s", + "Ġ Ein", + "ĠE in", + "Ġsou thern", + "Ġsouth ern", + "ĠOTHER WISE", + "Ġ macro", + "Ġm acro", + "Ġma cro", + "Ġmac ro", + ". lower", + ".l ower", + ".lo wer", + ".low er", + "c ls", + "cl s", + "Content View", + ". link", + ".l ink", + ".li nk", + ".lin k", + "con stant", + "const ant", + "cons tant", + "Ġ Bes", + "ĠB es", + "ĠBe s", + "Ġsome body", + "n b", + "3 99", + "39 9", + "\" >{", + "\"> {", + "( local", + "(l ocal", + "(loc al", + "(lo cal", + ". ....", + ".. ...", + "... ..", + ".... .", + "Ġ Null", + "ĠN ull", + "ĠNu ll", + "m x", + "Ġ ç", + "Ġà §", + "Ġ pause", + "Ġp ause", + "Ġpa use", + "Ġpau se", + "- ----------", + "-- ---------", + "---- -------", + "-------- ---", + "--- --------", + "----- ------", + "---------- -", + "------ -----", + "------- ----", + "--------- --", + "_ MO", + "_M O", + "Ġ CM", + "ĠC M", + "Ġfor Key", + "Ġ DVD", + "ĠD VD", + "ĠDV D", + "Ġ closest", + "Ġclose st", + "Ġclos est", + "Ġcloses t", + "_ DEVICE", + "_DE VICE", + "_DEV ICE", + "Ġ Stephen", + "ĠSte phen", + "ĠStep hen", + "ĠSteph en", + "Ġ BBC", + "ĠB BC", + "ĠBB C", + "Ġ Travel", + "ĠT ravel", + "ĠTr avel", + "ĠTra vel", + "ĠTrav el", + "P aint", + "Pa int", + "Ġ Results", + "ĠRes ults", + "ĠResult s", + "Ġ Rule", + "ĠR ule", + "ĠRu le", + "Ġ tp", + "Ġt p", + "Ġ ratings", + "Ġr atings", + "Ġrating s", + "Ġrat ings", + "Ġra tings", + "c in", + "ci n", + "c sv", + "cs v", + "> /", + "Ġ GOP", + "ĠG OP", + "ĠGO P", + "l ad", + "la d", + "Ġ ÑĢ", + "ĠÑ Ģ", + "Ġ indexPath", + "Ġindex Path", + "m atrix", + "mat rix", + "= f", + "ar sed", + "ars ed", + "arse d", + "Ġ });", + "Ġ} );", + "Ġ}) ;", + "Ġ Cos", + "ĠC os", + "ĠCo s", + "Ġ Score", + "ĠS core", + "ĠSc ore", + "ĠSco re", + "ĠScor e", + "Ġ tak", + "Ġt ak", + "Ġta k", + "Ġ ESP", + "ĠE SP", + "ĠES P", + "Ġ INC", + "ĠI NC", + "ĠIN C", + "_ NULL", + "_N ULL", + "- flex", + "-f lex", + "-fl ex", + "\" ][", + "\"] [", + "in to", + "int o", + "e land", + "el and", + "ela nd", + "elan d", + "Author ization", + "_ FALSE", + "_F ALSE", + "Ġ gate", + "Ġg ate", + "Ġga te", + "Ġ vid", + "Ġv id", + "Ġvi d", + "is tent", + "ist ent", + "iste nt", + "isten t", + "T IME", + "TI ME", + "TIM E", + "Ġ rewrite", + "Ġre write", + "Ġrew rite", + "Ġ tie", + "Ġt ie", + "Ġti e", + "Ġ archive", + "Ġa rchive", + "Ġarch ive", + "Ġarc hive", + "5 11", + "51 1", + ". events", + ".e vents", + ".event s", + ".ev ents", + ". getParameter", + ".get Parameter", + ".getParam eter", + "Ġ Permission", + "ĠPer mission", + "ĠPerm ission", + "Ġprogram me", + "Ġprogramm e", + "Ġ é", + "j ud", + "ju d", + "Ġcame ras", + "Ġcamera s", + "Ġcam eras", + "Ġcamer as", + "3 38", + "33 8", + "3 49", + "34 9", + "( sys", + "(s ys", + "ĠSy rian", + "ĠSyria n", + "Ġimpro vements", + "Ġimprove ments", + "Ġimprovement s", + "Ġimprov ements", + "Ġ hip", + "Ġh ip", + "Ġhi p", + "Ġsu icide", + "Ġsuic ide", + "Ġsch olar", + "Ġscho lar", + "Ġ compatible", + "Ġcom patible", + "Ġcompat ible", + "0 22", + "02 2", + "rem ote", + ". down", + ".d own", + ".do wn", + "F UNCTION", + "FUNC TION", + "FUN CTION", + "Ġman aging", + "Ġmana ging", + "Ġ UIKit", + "ĠUI Kit", + ". raw", + ".r aw", + ".ra w", + "> >>>", + ">> >>", + ">>> >", + "3 71", + "37 1", + "Ġdem ands", + "Ġdemand s", + "el lite", + "ell ite", + "elli te", + "Ġ dent", + "Ġd ent", + "Ġde nt", + "Ġden t", + "Ġ Micro", + "ĠM icro", + "ĠMi cro", + "ĠMic ro", + "åı ĸ", + "' ][$", + "'] [$", + "'][ $", + "Ġ IE", + "ĠI E", + "im ension", + "imens ion", + "Ġt rem", + "Ġtr em", + "Ġtre m", + "6 30", + "63 0", + "Ġg ained", + "Ġgain ed", + "Ġga ined", + ". with", + ".w ith", + ". ok", + ".o k", + "h ou", + "ho u", + "Ġb om", + "Ġbo m", + "amp aign", + "ampa ign", + "Ġ joining", + "Ġjoin ing", + "Ġjo ining", + "f ish", + "fi sh", + "Ġadd Subview", + "8 60", + "86 0", + "Ġnor thern", + "Ġnorth ern", + ". cor", + ".c or", + ".co r", + "o ret", + "or et", + "ore t", + "D ie", + "Di e", + "i nish", + "in ish", + "ini sh", + "inis h", + "_ comp", + "_c omp", + "_com p", + "_co mp", + "Ġ attended", + "Ġatt ended", + "Ġattend ed", + "Ġ collapse", + "Ġc ollapse", + "Ġcoll apse", + "Ġcollaps e", + "Ġ SS", + "ĠS S", + "a cent", + "ace nt", + "ac ent", + "acen t", + "_ EQUAL", + "_E QUAL", + "_EQ UAL", + "Ġ Deep", + "ĠDe ep", + "ĠDee p", + "R GB", + "RG B", + "ĉ test", + "ĉt est", + "ol ves", + "olve s", + "olv es", + "u set", + "us et", + "use t", + "Un ityEngine", + "Unity Engine", + "w riter", + "write r", + "wr iter", + "Re solver", + "Res olver", + "Resolve r", + ", %", + "if ference", + "iff erence", + "iffer ence", + "iffe rence", + "_ remove", + "_re move", + "_rem ove", + "o nda", + "on da", + "ond a", + "Ġf emme", + "Ġfem me", + "3 85", + "38 5", + "de code", + "dec ode", + "Br anch", + "Ġ flush", + "Ġf lush", + "Ġfl ush", + "Ġflu sh", + "Ġinnov ative", + "T ests", + "Test s", + "Te sts", + "Tes ts", + "Ġ[' ./", + "Ġ['. /", + "Ġ covering", + "Ġcover ing", + "Ġcov ering", + ". admin", + ".ad min", + "ulti part", + "ultip art", + "( lambda", + "(l ambda", + " namespace", + "Ġ Sport", + "ĠS port", + "ĠSp ort", + "ĠSpo rt", + "ĠSpor t", + "Ġ !(", + "Ġ! (", + "a cles", + "ac les", + "acle s", + "acl es", + "Ġde pression", + "Ġdep ression", + "Ġdepr ession", + "Ġdepress ion", + "ĠK ong", + "ĠKon g", + "ĠKo ng", + "5 70", + "57 0", + "Ġ pert", + "Ġp ert", + "Ġper t", + "Ġpe rt", + "Ġ Conn", + "ĠC onn", + "ĠCon n", + "ĠCo nn", + "Ġ Otherwise", + "ĠOther wise", + "/ home", + "/h ome", + "s upported", + "sup ported", + "support ed", + "Ġ pink", + "Ġp ink", + "Ġpi nk", + "Ġpin k", + "Ġinv ited", + "Ġinvite d", + "Ġinvit ed", + "ñ os", + "ño s", + "_ enabled", + "_en abled", + "_enable d", + "Ġ -Ċ", + "Ġ- Ċ", + "F W", + "e ners", + "en ers", + "ener s", + "ene rs", + "Ġ MY", + "ĠM Y", + "Ġs uggestions", + "Ġsuggest ions", + "Ġsuggestion s", + "C anvas", + "Can vas", + "Ġ fer", + "Ġf er", + "Ġfe r", + "Ġ Marketing", + "ĠMark eting", + "ĠMarket ing", + "@ Test", + "un tu", + "unt u", + "Ġ Ven", + "ĠV en", + "ĠVe n", + "Ġ Cou", + "ĠC ou", + "ĠCo u", + "i vals", + "iv als", + "ival s", + "iva ls", + "D onald", + "Don ald", + "l imited", + "lim ited", + "limit ed", + "ĉ ĉĉĉĉĉĊ", + "ĉĉ ĉĉĉĉĊ", + "ĉĉĉĉ ĉĉĊ", + "ĉĉĉ ĉĉĉĊ", + "ĉĉĉĉĉ ĉĊ", + "ĉĉĉĉĉĉ Ċ", + "Ġanal yst", + "Ġanaly st", + "Ġanalys t", + "( entry", + "(en try", + "(ent ry", + "Ġrepresent ative", + "_ attributes", + "_at tributes", + "_attribute s", + "_attrib utes", + "Ġ fur", + "Ġf ur", + "Ġfu r", + ". hide", + ".h ide", + "r esp", + "re sp", + "res p", + "ad ores", + "ado res", + "ador es", + "r ides", + "ri des", + "ride s", + "rid es", + "Ġ Josh", + "ĠJ osh", + "ĠJo sh", + "ĠJos h", + "r obot", + "ro bot", + "rob ot", + "ĠN AT", + "ĠNA T", + "Ġs esso", + "Ġses so", + "Ġsess o", + "Ġint egrated", + "Ġinteg rated", + "Ġintegr ated", + "Ġintegrate d", + ": true", + "p arts", + "par ts", + "part s", + "pa rts", + "Ġst upid", + "Ġstu pid", + "Ġstup id", + ": event", + ":e vent", + "@end section", + "Ġ pu", + "Ġp u", + ". Table", + ".T able", + ".Tab le", + "Ġ Yii", + "ĠY ii", + "ĠYi i", + "` ;ĊĊ", + "`;Ċ Ċ", + "`; ĊĊ", + "Ġ clang", + "Ġc lang", + "Ġcl ang", + "Ġclan g", + "Ġcla ng", + "=\" \">", + "=\"\" >", + "en gan", + "eng an", + "enga n", + "_ parameters", + "_param eters", + "_parameter s", + ". internal", + ".in ternal", + ".int ernal", + ".inter nal", + "Ġ Modern", + "ĠMod ern", + "ĠMode rn", + "ĠModer n", + "Ġ metric", + "Ġm etric", + "Ġmet ric", + "Ġ semi", + "Ġs emi", + "Ġse mi", + "Ġsem i", + "={ {Ċ", + "={{ Ċ", + "7 07", + "70 7", + ". amazon", + ".a mazon", + ".am azon", + "Ġ BB", + "ĠB B", + "ain ty", + "aint y", + "ai nty", + "view port", + "3 67", + "36 7", + "Ġstart Activity", + "dis patch", + "disp atch", + "* ****", + "** ***", + "**** *", + "*** **", + "Ġf lav", + "Ġfl av", + "Ġfla v", + "iffer ent", + "iffe rent", + "3 82", + "38 2", + "[ this", + "[t his", + "Ġs take", + "Ġst ake", + "Ġsta ke", + "Ġarg ued", + "Ġargue d", + "v iously", + "vious ly", + "vi ously", + ". work", + ".w ork", + "Ġ Oak", + "ĠO ak", + "O ld", + "Ol d", + "( async", + "(a sync", + "(as ync", + "n otes", + "not es", + "no tes", + "note s", + "Ġ flip", + "Ġf lip", + "Ġfl ip", + "Ġdis ag", + "Ġ TE", + "ĠT E", + "ĉ error", + "ĉe rror", + "ĉerr or", + "< '", + "Ġ »ĊĊ", + "Ġ» ĊĊ", + "Ġ»Ċ Ċ", + "Ġ filtered", + "Ġfil tered", + "Ġfilter ed", + "Ġfilt ered", + "ĠM ach", + "ĠMac h", + "ĠMa ch", + "Ġ hung", + "Ġh ung", + "Ġhun g", + "Ġhu ng", + "_ dump", + "_d ump", + "_ samples", + "_s amples", + "_sample s", + "- dismiss", + "-dis miss", + "Ġ ray", + "Ġr ay", + "Ġra y", + "Im plemented", + "Implement ed", + "D K", + "Ġ jed", + "Ġj ed", + "Ġje d", + "0 90", + "09 0", + "Ġbreak s", + "Ġbre aks", + "Ġ fits", + "Ġf its", + "Ġfit s", + "Ġfi ts", + ". gr", + ".g r", + "Ġ Zero", + "ĠZ ero", + "ĠZe ro", + "o ro", + "or o", + "Ġequ ally", + "Ġequal ly", + "Ġeq ually", + "Ġ '[", + "Ġ' [", + "Ġconcern ing", + "< meta", + "<", + "'> <", + "Ġpro mot", + "Ġprom ot", + "Ġpromo t", + "Ġ incl", + "Ġin cl", + "Ġinc l", + "_ only", + "_on ly", + "ë¥ ¼", + "ĠAtt orney", + "- date", + "-d ate", + "-da te", + "-dat e", + "Ġ landscape", + "Ġl andscape", + "Ġland scape", + "Ġlands cape", + "Ġlandsc ape", + "Ġ fu", + "Ġf u", + "S Y", + ". prop", + ".p rop", + ".pro p", + ".pr op", + "Ġ Arr", + "ĠA rr", + "ĠAr r", + "p ag", + "pa g", + "Parallel Group", + "' :čĊ", + "': čĊ", + "Ġ logs", + "Ġl ogs", + "Ġlo gs", + "Ġlog s", + "a unch", + "un ci", + "unc i", + "n ama", + "na ma", + "nam a", + "Table Cell", + "iss ues", + "issue s", + ". {", + "e curity", + "ec urity", + "_ exec", + "_e xec", + "_ex ec", + "_exe c", + "o lds", + "ol ds", + "old s", + "Ġ hosts", + "Ġhost s", + "Ġho sts", + "Ġhos ts", + "Ġ proto", + "Ġpro to", + "Ġpr oto", + "Ġprot o", + "_ import", + "_im port", + "_imp ort", + "_ sort", + "_s ort", + "_so rt", + "Ġ Bow", + "ĠB ow", + "ĠBo w", + "Ġ Normal", + "ĠN ormal", + "ĠNor mal", + "ĠNorm al", + "Ġ Farm", + "ĠF arm", + "ĠFar m", + "ĠFa rm", + ".create ParallelGroup", + "R otation", + "Rot ation", + ". err", + ".e rr", + ".er r", + "Ġp leased", + "Ġplease d", + "Ġple ased", + "Ġplea sed", + "Ġpleas ed", + "it age", + "ita ge", + "itag e", + ". Wh", + ".W h", + "ĉ ĉĠĠĠĠ", + "ĉĉ ĠĠĠĠ", + "ĉĉĠĠĠ Ġ", + "ĉĉĠ ĠĠĠ", + "ĉĉĠĠ ĠĠ", + "M R", + "Ġ MORE", + "ĠM ORE", + "ĠMO RE", + "ĠMOR E", + "Ġ Natural", + "ĠN atural", + "ĠNat ural", + "ĠNatur al", + "_ transform", + "_trans form", + "B ASE", + "BA SE", + "en eral", + "ener al", + "ene ral", + "u tdown", + "ut down", + ". commons", + ".com mons", + ".common s", + ".comm ons", + "W T", + "Ġ aan", + "Ġa an", + "Ġaa n", + ". Result", + ".Res ult", + "d og", + "do g", + "Ġcl icking", + "Ġclick ing", + "Ġclic king", + ") ,ĊĊ", + "), ĊĊ", + "),Ċ Ċ", + "# line", + "O perator", + "Oper ator", + "Op erator", + "Opera tor", + "Ġc iv", + "Ġci v", + "Ġm erg", + "Ġme rg", + "Ġmer g", + "o buf", + "ob uf", + "ng then", + "ngth en", + "Ġ [{", + "Ġ[ {", + "Ġc ancell", + "Ġcan cell", + "Ġcancel l", + "Ġcanc ell", + "tr igger", + "tri gger", + ". :", + "W ORK", + "WO RK", + "de clare", + "decl are", + "declar e", + "Ġde crease", + "Ġdecre ase", + "ÅĽ ci", + "l oom", + "lo om", + "loo m", + ". None", + ".N one", + ".No ne", + ".Non e", + "Ġ MI", + "ĠM I", + "Ġ Jason", + "ĠJ ason", + "ĠJa son", + "ĠJas on", + "Ġhealth care", + "ia mond", + "iam ond", + "iamo nd", + "s ylvania", + "* x", + "Ġ Ra", + "ĠR a", + "[ b", + "Ġ printing", + "Ġprint ing", + "Ġprin ting", + "ph abet", + "pha bet", + "Ġ Labour", + "ĠLa bour", + "ĠLab our", + "o pper", + "op per", + "opp er", + "Ġz ijn", + "Ġzi jn", + "Ġzij n", + "- target", + "-t arget", + "_ FUNCTION", + "_F UNCTION", + "_FUNC TION", + "_FUN CTION", + "Ġ oct", + "Ġo ct", + "Ġoc t", + "е ниÑı", + "ен иÑı", + "ени Ñı", + "åľ ¨", + "Ġ western", + "Ġwest ern", + "Ġwes tern", + "Ġcomp uters", + "Ġcomput ers", + "Ġcomputer s", + "Ġcompute rs", + "Ġ RET", + "ĠR ET", + "ĠRE T", + "Hash Map", + "[ String", + "[S tring", + "get Value", + "_ DATE", + "_D ATE", + "_DAT E", + "_DA TE", + ". Next", + ".N ext", + "ĠF if", + "ĠFi f", + "é l", + "ic ked", + "ick ed", + "æ İ", + "- MM", + "-M M", + "Ġ {ĊĊĊ", + "Ġ{ ĊĊĊ", + "Ġ{Ċ ĊĊ", + "Ġ{ĊĊ Ċ", + "Ġ contacts", + "Ġcont acts", + "Ġcontact s", + "Ġconta cts", + "Ġ digits", + "Ġd igits", + "Ġdig its", + "Ġdigit s", + "P rodu", + "Pro du", + "Pr odu", + "Prod u", + "Ġun usual", + "Ġunus ual", + "Ġrapid ly", + "t ures", + "ture s", + "tu res", + "tur es", + "Ġang ry", + "c ancel", + "can cel", + "x xxx", + "xx xx", + "xxx x", + "_ parser", + "_p arser", + "_parse r", + "_par ser", + "_pars er", + "id ity", + "idi ty", + "_ PREFIX", + "_P REFIX", + "_PRE FIX", + "_PREF IX", + "7 10", + "71 0", + "Ġm ehr", + "Ġme hr", + "Ġrare ly", + "Ġrar ely", + "e the", + "et he", + "eth e", + "o pes", + "op es", + "ope s", + "Ġ %.", + "Ġ% .", + "w orks", + "work s", + "wor ks", + "Ġ theta", + "Ġth eta", + "Ġthe ta", + "Ġcon tribution", + "Ġcontrib ution", + "Ġ Tony", + "ĠT ony", + "ĠTo ny", + "ĠTon y", + "Ġs quad", + "Ġsqu ad", + "5 37", + "53 7", + "а й", + "аР¹", + "Ġî n", + "t here", + "th ere", + "ther e", + "the re", + "o uted", + "ou ted", + "out ed", + "oute d", + "ĉ q", + "Ļ Ĥ", + "g ood", + "go od", + "goo d", + "L I", + "é¡ µ", + "Ġ Living", + "ĠL iving", + "ĠLi ving", + "ĠLiv ing", + "iz abeth", + "iza beth", + "Ġ kt", + "Ġk t", + "Ġ Dallas", + "ĠD allas", + "ĠDal las", + "] ],Ċ", + "]] ,Ċ", + "]], Ċ", + "Ġ />ĊĊ", + "Ġ/ >ĊĊ", + "Ġ/>Ċ Ċ", + "Ġ/> ĊĊ", + "Ġ raising", + "Ġr aising", + "Ġrais ing", + "Ġra ising", + "/ router", + "/r outer", + "_ game", + "_g ame", + "3 68", + "36 8", + "Ġ CUR", + "ĠC UR", + "ĠCU R", + "z ens", + "ze ns", + "zen s", + ". es", + ".e s", + "Ġ fontWeight", + "Ġfont Weight", + "( func", + "(f unc", + "(fun c", + "not ification", + "notif ication", + "Ġ' ../../../", + "Ġ'../ ../../", + "Ġ'../../ ../", + "Ġbl ame", + "Ġbla me", + "ãĢĤ ĊĊĊĊ", + "ãĢĤĊĊ ĊĊ", + "ãĢĤĊ ĊĊĊ", + "an co", + "anc o", + "9 80", + "98 0", + "Id entity", + "Ident ity", + "Ide ntity", + "f ollow", + "fol low", + "Ġ arts", + "Ġa rts", + "Ġar ts", + "Ġart s", + "x s", + "Ġoffic ially", + "Ġofficial ly", + "Ġ Studio", + "ĠSt udio", + "ĠStud io", + "ĠStudi o", + "Ġrecommend ations", + "Ġrecommendation s", + "Ġ locale", + "Ġl ocale", + "Ġlo cale", + "Ġloc ale", + "Ġlocal e", + "Ġam ateur", + "Ġamat eur", + "Ġ Enable", + "ĠE nable", + "ĠEn able", + "Ġ caps", + "Ġc aps", + "Ġcap s", + "Ġca ps", + ". End", + ".E nd", + ".En d", + "3 88", + "38 8", + "- add", + "-a dd", + "-ad d", + "_g shared", + "Ġ CT", + "ĠC T", + "F orce", + "For ce", + "Ċ ĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "Ġ orange", + "Ġo range", + "Ġor ange", + "Ġorang e", + "Ġora nge", + "Ġoran ge", + "Ġ lp", + "Ġl p", + "Ġ answered", + "Ġanswer ed", + ". Grid", + ".G rid", + ".Gr id", + "Ġd ual", + "Ġdu al", + "Ġdua l", + "Ġstr ategic", + "Ġstrateg ic", + "Ġn obody", + "Ġno body", + "Ġnob ody", + "Ġ fatal", + "Ġf atal", + "Ġfa tal", + "Ġfat al", + "_ est", + "_e st", + "_es t", + "( el", + "(e l", + "Ġ ìł", + "Ġì ł", + "ĠB udd", + "ĠBu dd", + "ĠBud d", + "A IT", + "AI T", + "_ factor", + "_f actor", + "_fac tor", + "_fact or", + "_fa ctor", + "- one", + "-on e", + "-o ne", + "Ġ HAVE", + "ĠH AVE", + "ĠHA VE", + "\" čĊčĊ", + "\"čĊ čĊ", + "7 60", + "76 0", + "P rof", + "Pro f", + "Pr of", + "Ġ är", + "Ġä r", + "str ings", + "string s", + "Ġ dirty", + "Ġd irty", + "Ġdir ty", + "Ġdirt y", + "Ġ Face", + "ĠF ace", + "ĠFac e", + "ĠFa ce", + "Ġ Begin", + "ĠB egin", + "ĠBe gin", + "ĠBeg in", + "Ġ Bus", + "ĠB us", + "ĠBu s", + "Ġ wis", + "Ġw is", + "Ġwi s", + "åŃ Ĺ", + "Ġ speaker", + "Ġs peaker", + "Ġspe aker", + "Ġspeak er", + "Ġ carrier", + "Ġcar rier", + "Ġcarr ier", + "Ġ Om", + "ĠO m", + "Ġhad n", + "Ġha dn", + "Al low", + "All ow", + ":: __", + "::_ _", + "Ġ verb", + "Ġv erb", + "Ġver b", + "Ġve rb", + "Ġ Complete", + "ĠCom plete", + "ĠComp lete", + "ĠComple te", + "Ġ Easy", + "ĠE asy", + "ĠEa sy", + "Ġb ills", + "Ġbill s", + "Ġbil ls", + "Ġ ĠĊĊ", + "ĠĠ ĊĊ", + "ĠĠĊ Ċ", + "Vert ical", + "Ver tical", + "Ġ pron", + "Ġp ron", + "Ġpro n", + "Ġpr on", + "Ġ Define", + "ĠDe fine", + "ĠDef ine", + "Ġ lookup", + "Ġlook up", + "variable s", + "vari ables", + "Ġp andas", + "Ġpan das", + "Ġpand as", + "Ġpanda s", + "u mes", + "um es", + "ume s", + "Ġin noc", + "Ġinn oc", + "Ġ setUp", + "Ġset Up", + "ĠCh ampionship", + "ĠChampions hip", + "ĠChampion ship", + "art ist", + "arti st", + "ĠC Type", + "ĠCT ype", + "F oundation", + "Found ation", + "๠Ī", + "Ġ Setup", + "ĠSet up", + "4 28", + "42 8", + "Ġ recipes", + "Ġrec ipes", + "Ġrecipe s", + "Ġrecip es", + "Ġ UIColor", + "ĠU IColor", + "ĠUI Color", + "Ġ Fight", + "ĠF ight", + "ĠFig ht", + "ĠFi ght", + "Ġ authorized", + "Ġauthor ized", + "Ġauthorize d", + "_ click", + "_c lick", + "_cl ick", + "_cli ck", + "9 90", + "99 0", + "_ success", + "_s uccess", + "_succ ess", + "_su ccess", + "an gan", + "ang an", + "anga n", + "Ġ Mountain", + "ĠM ountain", + "ĠMount ain", + "Ġ Doctor", + "ĠDo ctor", + "ĠDoc tor", + "Ġ egg", + "Ġe gg", + "Ġeg g", + "ĠM edicine", + "ĠMed icine", + "ĠMedic ine", + "c les", + "cl es", + "cle s", + "` .Ċ", + "`. Ċ", + "[ int", + "[i nt", + "[in t", + "d ashboard", + "dash board", + "Ġ Appro", + "ĠApp ro", + "ĠAp pro", + "- dr", + "-d r", + "Ġprodu ces", + "Ġproduce s", + "Ġprod uces", + "Ġr ental", + "Ġren tal", + "Ġrent al", + "Ġ reload", + "Ġre load", + "Ġr eload", + "Ġrel oad", + "3 81", + "38 1", + "Ġ arrival", + "Ġarr ival", + "Ġarriv al", + "s pot", + "sp ot", + "spo t", + "Ġunder t", + "Ġund ert", + "Ġunde rt", + "3 78", + "37 8", + "Ġequ ipped", + "Ġequip ped", + "Ġ proved", + "Ġpro ved", + "Ġpr oved", + "Ġprov ed", + "Ġprove d", + "Ġ centers", + "Ġcent ers", + "Ġcenter s", + "Ġcen ters", + "Ġ defines", + "Ġdef ines", + "Ġdefine s", + "Ġdefin es", + "al so", + "als o", + "Ġ opacity", + "Ġop acity", + "Ġ Unfortunately", + "ĠUn fortunately", + "ĠIll inois", + "Ġ не", + "Ġн е", + "ĠT emple", + "ĠTem ple", + "ĠTemp le", + "ĠTempl e", + "Ġ Trail", + "ĠT rail", + "ĠTr ail", + "ĠTra il", + "Ġ Kelly", + "ĠK elly", + "ĠKel ly", + "Ġ measurement", + "Ġme asurement", + "Ġmeasure ment", + "Ġmeas urement", + "Ġse parated", + "Ġsepar ated", + "Ġseparate d", + "Ġseparat ed", + "- circle", + "-c ircle", + "H ey", + "He y", + "Ġ READ", + "ĠRE AD", + "ig its", + "igit s", + "igi ts", + "Ġ ib", + "Ġi b", + "Ġ MOD", + "ĠM OD", + "ĠMO D", + "at tery", + "att ery", + "atter y", + "atte ry", + "а з", + "аР·", + "Ġv end", + "Ġve nd", + "Ġven d", + "е нÑĤ", + "ен ÑĤ", + "Ġ HttpClient", + "ĠHttp Client", + "3 59", + "35 9", + "s afe", + "sa fe", + "_ ASS", + "_A SS", + "_AS S", + "i cit", + "ic it", + "ici t", + "Ġ Construct", + "ĠCon struct", + "ĠConstr uct", + "Ġ Clo", + "ĠC lo", + "ĠCl o", + "Ġ Six", + "ĠS ix", + "ĠSi x", + "_ TOKEN", + "_T OKEN", + "_TO KEN", + "( block", + "(b lock", + "(bl ock", + "Ġwar ned", + "Ġwarn ed", + "/* !", + "! Ċ", + "}/ >Ċ", + "}/> Ċ", + "Ġin novation", + "Ġinn ovation", + "Ġinnov ation", + "_ \"", + "Ġ );čĊčĊ", + "Ġ) ;čĊčĊ", + "Ġ); čĊčĊ", + "Ġ);čĊ čĊ", + "Ġ spots", + "Ġsp ots", + "Ġspot s", + "Ġspo ts", + "Ġcho osing", + ". cs", + ".c s", + "Ġf lexible", + "Ġflex ible", + "U Int", + "UI nt", + "4 35", + "43 5", + "9 30", + "93 0", + "Ġ scratch", + "Ġs cratch", + "Ġscr atch", + "- al", + "-a l", + "Ġf estival", + "Ġfest ival", + "Ġout standing", + "================ ================================", + "================================ ================", + "M ean", + "Me an", + "Ġ Oregon", + "ĠO regon", + "ĠOre gon", + "s ymbol", + "sym bol", + ". account", + ".a ccount", + ".ac count", + ".acc ount", + "d ney", + "dn ey", + "' ''", + "'' '", + "! \",", + "!\" ,", + "9 01", + "90 1", + "Ġ particle", + "Ġp article", + "Ġpart icle", + "Ġpartic le", + "Ġparti cle", + "à ĥ", + "[ MAX", + "[M AX", + "I VER", + "IV ER", + "IVE R", + "ER ENCE", + "NS Mutable", + "ĠC olumbia", + "ĠColum bia", + "_ ĊĊ", + "_Ċ Ċ", + ". fr", + ".f r", + "Ġc ogn", + "Ġco gn", + "Ġcog n", + "V R", + "Ġ Methods", + "ĠMethod s", + "ĠMeth ods", + "Ġ Made", + "ĠM ade", + "ĠMad e", + "ĠMa de", + "Ġ BR", + "ĠB R", + "Ġ Else", + "ĠE lse", + "ĠEl se", + "Ġeg gs", + "Ġegg s", + "Ġ swing", + "Ġs wing", + "Ġsw ing", + "Ġ Inv", + "ĠI nv", + "ĠIn v", + "Ġdise ases", + "Ġdisease s", + "Ġf irms", + "Ġfirm s", + "Ġfi rms", + "Ġfir ms", + "Ġ lemma", + "Ġl emma", + "Ġle mma", + "Ġlem ma", + "} `);Ċ", + "}` );Ċ", + "l ings", + "ling s", + "lin gs", + "Ġg ym", + "Ġgy m", + "umin um", + "umi num", + ". Trim", + ".T rim", + ".Tr im", + "M em", + "Me m", + "Ġcrit icism", + "Ġcritic ism", + "ibern ate", + "_ TX", + "_T X", + "i oni", + "ion i", + "io ni", + "Ġguid ance", + "Ġgui dance", + "Ġrepeated ly", + "Ġrepeat edly", + "Ġ supplier", + "Ġs upplier", + "Ġsup plier", + "Ġsuppl ier", + "Ġsupp lier", + "Ġp ainting", + "Ġpaint ing", + "Ġpain ting", + "8 64", + "86 4", + ". Fragment", + ".F ragment", + "ed Exception", + "Ġw iring", + "Ġwir ing", + "Ġwi ring", + "Ġcour ts", + "Ġcou rts", + "Ġcourt s", + "W EB", + "WE B", + "æľ ī", + "\\ .", + "ill ance", + "illa nce", + "Ġb rows", + "Ġbr ows", + "Ġbro ws", + "Ġbrow s", + "Ġ Pattern", + "ĠP attern", + "ĠPat tern", + "ĠPatt ern", + "PL ICATION", + "PLIC ATION", + "Ġ Summer", + "ĠS ummer", + "ĠSum mer", + "Ch ain", + "Cha in", + "Ġc ute", + "Ġcut e", + "Ġcu te", + "m ercial", + "mer cial", + "merc ial", + "Ġd il", + "Ġdi l", + "ĠFrank lin", + "ĉ global", + "ĉg lobal", + "IN CLUDING", + "h istory", + "hi story", + "hist ory", + "histor y", + "Ġ lst", + "Ġl st", + "Ġls t", + "Q t", + "S DL", + "SD L", + "a lia", + "al ia", + "ali a", + "i ere", + "ie re", + "ier e", + "( ...", + "(. ..", + "(.. .", + "ĉ cin", + "ĉc in", + "if fs", + "iff s", + "v elope", + "ve lope", + "vel ope", + "velop e", + "Ġ Root", + "ĠR oot", + "ĠRo ot", + "ĠRoo t", + "cl uster", + "clus ter", + "User Name", + "i gne", + "ig ne", + "ign e", + "< S", + "Ġ fest", + "Ġf est", + "Ġfe st", + "4 19", + "41 9", + "Ġindic ating", + "Ġindica ting", + "k eeper", + "ke eper", + "keep er", + "kee per", + "Ġc ada", + "Ġca da", + "Ġcad a", + "é g", + "con sin", + "cons in", + "Ġ GB", + "ĠG B", + "Ġ lb", + "Ġl b", + "e mony", + "em ony", + "emo ny", + "emon y", + "- icons", + "-icon s", + "-i cons", + "_ doc", + "_d oc", + "_do c", + "A ctor", + "Act or", + "Ac tor", + "e lem", + "el em", + "ele m", + ". Delete", + ".De lete", + "Ġin fection", + "Ġinf ection", + "Ġinfect ion", + "Ġ Privacy", + "ĠPriv acy", + "Ġgreat ly", + "Ġ Pos", + "ĠP os", + "ĠPo s", + "ĠT reat", + "ĠTr eat", + "ĠTre at", + "F low", + "Fl ow", + "Flo w", + "Ġat tractive", + "Ġattr active", + "Ġattract ive", + "Ġ Marc", + "ĠM arc", + "ĠMar c", + "ĠMa rc", + "s udo", + "su do", + "t esy", + "te sy", + "tes y", + "- an", + "-a n", + "9 98", + "99 8", + "ab ama", + "aba ma", + "Ġ Would", + "ĠW ould", + "ĠWo uld", + "Ġs uck", + "Ġsu ck", + "Ġsuc k", + "index Path", + "Ġ Et", + "ĠE t", + "T imes", + "Time s", + "Tim es", + "Ti mes", + "7 80", + "78 0", + "Ġ clubs", + "Ġcl ubs", + "Ġclub s", + "_ assoc", + "_as soc", + "_ass oc", + "Ġac quired", + "Ġacqu ired", + "Ġacquire d", + "( \":", + "(\" :", + "Ġint ense", + "Ġintens e", + ". maps", + ".m aps", + ".map s", + ".ma ps", + "Ex pected", + "Exp ected", + "Expect ed", + "T oggle", + "Ġ ay", + "Ġa y", + "Ġl ifestyle", + "Ġlife style", + "Ġlif estyle", + "- called", + "-c alled", + "-cal led", + "-call ed", + "Ġ Snow", + "ĠS now", + "ĠSn ow", + "ĠSno w", + "V olume", + "Vol ume", + "Ġcann abis", + "Ġ Direction", + "ĠD irection", + "ĠDirect ion", + "ĠDi rection", + "ĠDir ection", + "ĠDire ction", + "Ġ Limited", + "ĠL imited", + "ĠLim ited", + "ĠLimit ed", + "- specific", + "-s pecific", + "-spec ific", + "Ġd owntown", + "Ġdown town", + "Ġdownt own", + "/ icons", + "/i cons", + "/icon s", + "/ic ons", + "Ġre ven", + "Ġr even", + "Ġrev en", + "Ġreve n", + "L eg", + "Le g", + "8 85", + "88 5", + "= null", + "=n ull", + "4 96", + "49 6", + "Key board", + "' )).", + "') ).", + "')) .", + "Ġ\" \";čĊ", + "Ġ\"\" ;čĊ", + "Ġ\"\"; čĊ", + "Ġatt itude", + ". navigate", + ".n avigate", + ".nav igate", + "- error", + "-e rror", + "AM PLE", + "AMP LE", + "AMPL E", + "Ġ Jay", + "ĠJ ay", + "ĠJa y", + "v r", + "c ow", + "co w", + ". compile", + ".com pile", + ".comp ile", + "Ġmem ories", + "Ġmemor ies", + "Ġmemo ries", + "_ mark", + "_m ark", + "_mar k", + "_ma rk", + "Ġ Minnesota", + "ĠMin nesota", + "Ġk osten", + "Ġko sten", + "Ġkos ten", + "Ġkost en", + "Ġ probability", + "Ġprob ability", + "Ġprobabil ity", + "w arning", + "war ning", + "warn ing", + "Ġgen etic", + "Ġgene tic", + "F ixture", + "Fix ture", + "Ġ HashSet", + "ĠHash Set", + "N ombre", + "Nom bre", + "_ month", + "_m onth", + "_mon th", + "_mo nth", + "Æ °", + "- start", + "-st art", + "-star t", + "xy gen", + "ĉ ft", + "ĉf t", + "i agnostics", + "Ġ Matthew", + "ĠMat thew", + "ĠMatth ew", + "Ġcon cepts", + "Ġconcept s", + "Ġconce pts", + "Ġcon str", + "Ġconst r", + "Ġcons tr", + ". State", + ".St ate", + ".Stat e", + "и н", + "N ov", + "No v", + "Î ±", + "Ġ Panel", + "ĠP anel", + "ĠPan el", + "ĠPa nel", + "ĠPane l", + "ä¸ ª", + "com pare", + "comp are", + "> ()Ċ", + ">( )Ċ", + ">() Ċ", + "Ġapp lying", + "Ġapply ing", + "Ġappl ying", + "Ġprom ised", + "Ġpromise d", + "Ġ ox", + "Ġo x", + "n cia", + "nc ia", + "Ġ Validation", + "ĠValid ation", + "o rts", + "or ts", + "ort s", + "_ cur", + "_c ur", + "_cu r", + "e lect", + "el ect", + "ele ct", + "e ye", + "ey e", + "( Data", + "(D ata", + "Ġre porter", + "Ġreport er", + "Ġ Buff", + "ĠB uff", + "ĠBu ff", + "ĠBuf f", + "3 95", + "39 5", + "Ġ sr", + "Ġs r", + "Ġ \";", + "Ġ\" ;", + "i cky", + "ic ky", + "ick y", + "Ġt empor", + "Ġtem por", + "Ġtemp or", + "Ġtempo r", + "S N", + "Ġ resident", + "Ġres ident", + "Ġresid ent", + "Ġreside nt", + "p ires", + "pi res", + "pir es", + "pire s", + "ys ical", + "ysi cal", + "Ġend orse", + "Ġendors e", + "Ġ Song", + "ĠS ong", + "ĠSo ng", + "ĠSon g", + "is Empty", + "le et", + "lee t", + "_ util", + "_u til", + "_ut il", + "Ġd istingu", + "Ġdist ingu", + "Ġ Talk", + "ĠT alk", + "ĠTal k", + "ĠTa lk", + "Ġ Mot", + "ĠM ot", + "ĠMo t", + "( default", + "(d efault", + "(de fault", + "(def ault", + ". Arg", + ".A rg", + ".Ar g", + "gorith ms", + "gorithm s", + "_ words", + "_w ords", + "_word s", + "im mer", + "imm er", + "_ reset", + "_re set", + "_res et", + "f amily", + "W W", + "Ġs avings", + "Ġsav ings", + "Ġsaving s", + "Ġ âĢĿ", + "ĠâĢ Ŀ", + "_ enable", + "_e nable", + "_en able", + "s idebar", + "side bar", + "R unning", + "Run ning", + "Ġ ali", + "Ġa li", + "Ġal i", + "Ġte stim", + "Ġtest im", + "Ġtes tim", + "Ġ warnings", + "Ġw arnings", + "Ġwar nings", + "Ġwarn ings", + "Ġwarning s", + "Ġ Chem", + "ĠC hem", + "ĠCh em", + "ĠChe m", + "Ġ Exit", + "ĠE xit", + "ĠEx it", + "Ġf ounder", + "Ġfound er", + "Ġfo under", + "Ġfou nder", + "p ector", + "pe ctor", + "pect or", + "pec tor", + "Ġ rm", + "Ġr m", + "_ dataset", + "_d ataset", + "_data set", + "_dat aset", + "_datas et", + "Ġ Das", + "ĠD as", + "ĠDa s", + "Ġ han", + "Ġh an", + "Ġha n", + "G etty", + "Get ty", + "Ge tty", + "á l", + "Ġ ny", + "Ġn y", + "Ġpo verty", + "Ġpov erty", + "Ġresult ed", + ". by", + ".b y", + "Ġ Visit", + "ĠVis it", + "ĠVi sit", + "Ġobt aining", + "Ġobtain ing", + "/ '.$", + "/' .$", + "/'. $", + "Ġ ĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĊ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠ Ċ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĊ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĊ", + "s hall", + "sh all", + "shal l", + "sha ll", + "_ LEFT", + "_LE FT", + "UI Image", + "_ Name", + "_N ame", + "h ave", + "ha ve", + "ĠN ob", + "ĠNo b", + "l r", + "- footer", + "-f ooter", + "-foot er", + "Ġn aked", + "Ġna ked", + "Ġnak ed", + "ĠG arden", + "ĠGar den", + "ĠGard en", + "\\F acades", + "Ġ graduate", + "Ġgrad uate", + "Ġgradu ate", + "4 17", + "41 7", + "Ġfr anchise", + "Ġfranch ise", + "p lane", + "pl ane", + "plan e", + "pla ne", + "Ġcontrib utions", + "Ġcontribution s", + "Ġstring With", + "Ġ crypto", + "Ġc rypto", + "Ġcrypt o", + "Ġcry pto", + "Ġmov ements", + "Ġmove ments", + "Ġmo vements", + "Ġmovement s", + "a thers", + "ath ers", + "ather s", + "athe rs", + "Ġ lifetime", + "Ġl ifetime", + "Ġlife time", + "Ġlif etime", + "Ġcommunic ate", + "Ġcommun icate", + "j ar", + "ja r", + "Ġ Fragment", + "ĠF ragment", + "ĠFr agment", + "ĠFra gment", + "ĠFrag ment", + "_ IF", + "_I F", + "ĠN avy", + "ĠNav y", + "ĠNa vy", + "Ġ Figure", + "ĠF igure", + "ĠFig ure", + "Ġ simulation", + "Ġs imulation", + "Ġsim ulation", + "Ġsimul ation", + "_ stop", + "_s top", + "_st op", + "Ġreport ers", + "Ġreporter s", + "Ġver sus", + "Ġvers us", + "a ja", + "aj a", + "Ġ α", + "ĠÎ ±", + "Ġgover nor", + "Ġgovern or", + "Ġgoverno r", + "List Item", + "Ġ sealed", + "Ġse aled", + "Ġsea led", + "Ġseal ed", + ". Background", + ".Back ground", + "e di", + "ed i", + "ash ing", + "ashi ng", + "Ġ lip", + "Ġl ip", + "Ġli p", + "ĠI h", + "m erge", + "mer ge", + "Ġn ec", + "Ġne c", + "0 24", + "02 4", + "el ocity", + "elo city", + "AT EG", + "ATE G", + "Ġse eds", + "Ġsee ds", + "Ġseed s", + "Ġ floating", + "Ġf loating", + "Ġfloat ing", + "Ġflo ating", + "7 01", + "70 1", + "_ FA", + "_F A", + "w alk", + "wa lk", + "wal k", + "ĉ user", + "ĉu ser", + "ĉuse r", + "ĉus er", + "_ depth", + "_de pth", + "_dep th", + "_dept h", + "Ġw age", + "Ġwa ge", + "Ġwag e", + "@ app", + "@a pp", + "N il", + "Ni l", + "( [\"", + "([ \"", + "( vector", + "(v ector", + "(vec tor", + "Ġsecret ary", + "4 61", + "46 1", + "Ġj Panel", + "v ez", + "ve z", + "Âł ³³³", + "³³ ³³", + "³³³ Âł", + "d irection", + "dir ection", + "di rection", + "direct ion", + "dire ction", + "Ġ EP", + "ĠE P", + "Ġ hunt", + "Ġh unt", + "Ġhun t", + "Ġhu nt", + "3 96", + "39 6", + "Json Property", + "Ġ PORT", + "ĠP ORT", + "ĠPO RT", + "ĠPOR T", + "] \",", + "]\" ,", + "а п", + "аР¿", + "Ġ Foreign", + "ĠFore ign", + "p anic", + "pan ic", + "pa nic", + "Ġtr ials", + "Ġtri als", + "Ġtrial s", + "Ġ Ale", + "ĠA le", + "ĠAl e", + "Ġr ural", + "Ġru ral", + "- value", + "-v alue", + "-val ue", + "-valu e", + "author ized", + "authorize d", + "Ġ Scotland", + "ĠSc otland", + "ĠScot land", + ". drop", + ".d rop", + ".dr op", + "Ġ MT", + "ĠM T", + "ç ±", + "3 91", + "39 1", + "row th", + "5 15", + "51 5", + "File Path", + "Ġ recall", + "Ġre call", + "Ġrec all", + "Ġrecal l", + "if le", + "Ġ cel", + "Ġc el", + "Ġce l", + "Ġ SELECT", + "ĠSE LECT", + "ĠSEL ECT", + "k n", + "_ case", + "_c ase", + "_ca se", + "Ġ crop", + "Ġc rop", + "Ġcr op", + "Ġcro p", + "5 43", + "54 3", + "s ure", + "sur e", + "su re", + "p ot", + "po t", + "I CS", + "IC S", + "Ġ stem", + "Ġs tem", + "Ġst em", + "Ġste m", + "Ġindust ries", + "Ġindustri es", + "P ut", + "Pu t", + "Ġ aber", + "Ġa ber", + "Ġab er", + "road cast", + "I cons", + "Icon s", + ") \")Ċ", + ")\" )Ċ", + ")\") Ċ", + "æĪIJ åĬŁ", + "g ui", + "gu i", + "Ġass umed", + "Ġassum ed", + "Ġassume d", + "Ġ rx", + "Ġr x", + "E A", + "è §", + "E LL", + "EL L", + "Ġd ose", + "Ġdo se", + "Ġdos e", + "Ġ ine", + "Ġin e", + "Ġi ne", + "Ġd eeper", + "Ġde eper", + "Ġdeep er", + "Ġdee per", + "l ider", + "li der", + "lide r", + "lid er", + "Ġ ordinary", + "Ġord inary", + "Ġordin ary", + "Ġg olf", + "Ġgo lf", + "Ġgol f", + "6 05", + "60 5", + "_ IMAGE", + "_IM AGE", + "Ġ NAME", + "ĠN AME", + "ĠNA ME", + "( module", + "(m odule", + "(mod ule", + "Ġ atom", + "Ġa tom", + "Ġat om", + "Ġ belt", + "Ġb elt", + "Ġbe lt", + "Ġbel t", + "Ġoff ices", + "Ġoffic es", + "Ġoffice s", + "5 06", + "50 6", + "b eta", + "be ta", + "bet a", + "Ġphilosoph y", + "( JSON", + "(J SON", + "(JS ON", + "- field", + "-f ield", + "-fi eld", + "Ġint roduce", + "Ġintrodu ce", + "Ġintro duce", + "Ġcon venience", + "Ġconven ience", + "op tim", + "opt im", + "> \"Ċ", + ">\" Ċ", + "a thy", + "at hy", + "ath y", + "Ġ employer", + "Ġemploy er", + "q uate", + "qu ate", + "qua te", + "quat e", + "Ġ edited", + "Ġed ited", + "Ġedit ed", + "Ġedi ted", + "Arg uments", + "Argument s", + "ĠN ations", + "ĠNation s", + "ĠNat ions", + "_ _)", + "__ )", + "Ġn ose", + "Ġno se", + "Ġnos e", + "Ġ Sample", + "ĠS ample", + "ĠSam ple", + "ĠSamp le", + "' )ĊĊĊ", + "') ĊĊĊ", + "')Ċ ĊĊ", + "')ĊĊ Ċ", + "Ġ cake", + "Ġc ake", + "Ġca ke", + ". getAttribute", + ".get Attribute", + "H D", + "3 92", + "39 2", + "Mod ified", + "4 45", + "44 5", + "Ġ predicted", + "Ġpred icted", + "Ġpredict ed", + "Ġpredic ted", + "Å Ħ", + "a nie", + "an ie", + "ani e", + "S orry", + "( doc", + "(d oc", + "(do c", + "w ind", + "win d", + "wi nd", + "i eve", + "ie ve", + "iev e", + "Ġpro visions", + "Ġprov isions", + "Ġprovision s", + "A TER", + "AT ER", + "ATE R", + "O TE", + "OT E", + "M Y", + ". Autowired", + ".A utowired", + "ĠB ath", + "ĠBa th", + "ĠBat h", + "4 23", + "42 3", + ". Boolean", + ".Bool ean", + "Ġ backend", + "Ġback end", + ". Mouse", + ".M ouse", + "at eral", + "ate ral", + "ater al", + "p aper", + "pa per", + "Con st", + "Co nst", + "Cons t", + "Ġ VR", + "ĠV R", + "_ entity", + "_e ntity", + "_ent ity", + "_ CTRL", + "_C TRL", + "_CT RL", + "Ġ Protection", + "ĠPro tection", + "ĠProt ection", + "ĠProte ction", + "ĠProtect ion", + "Ġ GM", + "ĠG M", + "Ġ Study", + "ĠSt udy", + "ĠStud y", + "Ġ soup", + "Ġs oup", + "Ġso up", + "Ġsou p", + "o time", + "ot ime", + "oti me", + "' use", + "'u se", + "] \"", + "/ users", + "/user s", + "/use rs", + "/us ers", + "a ug", + "au g", + "Ġ Hong", + "ĠH ong", + "ĠHon g", + "ĠHo ng", + "_ norm", + "_n orm", + "_no rm", + "ãģ ¨", + "Ġse cre", + "Ġsec re", + "( Build", + "(B uild", + "Ġ Contract", + "ĠCon tract", + "ĠCont ract", + "ĠContr act", + "o las", + "ol as", + "ola s", + "Ġs auce", + "Ġsa uce", + "Ġsau ce", + "Ġag gressive", + "Ġaggress ive", + "Ġagg ressive", + "Ġ racial", + "Ġr acial", + "Ġrac ial", + "Ġra cial", + "char acter", + "@ @", + "Ġ compile", + "Ġcom pile", + "Ġcomp ile", + "Ġcompil e", + "Ġ Void", + "ĠV oid", + "ĠVo id", + "_ rem", + "_re m", + "_r em", + "_ memory", + "_m emory", + "_mem ory", + "3 48", + "34 8", + "k k", + "Ġ mic", + "Ġm ic", + "Ġmi c", + "S ame", + "Sam e", + "Sa me", + "U tility", + "Util ity", + "Ut ility", + "Ġ Html", + "ĠH tml", + "Ġ Xml", + "ĠX ml", + "ĠXm l", + "Re ady", + "Read y", + "Ġg all", + "Ġga ll", + "Ġgal l", + "Ġalleg edly", + "Ġalleged ly", + "ĉ ĉĉĉĠĠĠ", + "ĉĉ ĉĉĠĠĠ", + "ĉĉĉĉ ĠĠĠ", + "ĉĉĉ ĉĠĠĠ", + "ĉĉĉĉĠ ĠĠ", + "ĉĉĉĉĠĠ Ġ", + "Ġ Metal", + "ĠM etal", + "ĠMe tal", + "ĠMet al", + "ĠMeta l", + "Ġ Personal", + "ĠPerson al", + "ĠPers onal", + "ĠPersona l", + "Ġborder Radius", + "rx js", + "object s", + "obj ects", + "Ġwant ing", + "Ġwan ting", + "Ġb owl", + "Ġbo wl", + "Ġbow l", + "v endor", + "offset of", + "Ġ Rs", + "ĠR s", + "Ġ Rating", + "ĠR ating", + "ĠRa ting", + "ĠRat ing", + "Ġr ally", + "Ġrall y", + "_ NODE", + "_N ODE", + "_NO DE", + "4 18", + "41 8", + "Ġ Mix", + "ĠM ix", + "ĠMi x", + "Ġad vertis", + "Ġadvert is", + "4 85", + "48 5", + "6 67", + "66 7", + "Ġnarr ative", + "s al", + "sa l", + "Ġ mc", + "Ġm c", + "S Error", + "SE rror", + "Ġf ingers", + "Ġfin gers", + "Ġfinger s", + "Ġfing ers", + "Ġac company", + "Ġaccom pany", + "Ġaccomp any", + "Ġt ired", + "Ġti red", + "Ġtire d", + "Ġtir ed", + "Ġ stride", + "Ġst ride", + "Ġstr ide", + "Ġstri de", + "Ġ gui", + "Ġg ui", + "Ġgu i", + "e list", + "el ist", + "eli st", + "L ocale", + "Lo cale", + "Local e", + "Loc ale", + "Ġre leases", + "Ġrelease s", + "Ġrele ases", + "i king", + "ik ing", + "iki ng", + "Ġ anger", + "Ġa nger", + "Ġan ger", + "Ġang er", + "Ġange r", + ") ))ĊĊ", + ")) )ĊĊ", + ")))Ċ Ċ", + "))) ĊĊ", + "al lest", + "all est", + "alle st", + "alles t", + "Sum mary", + "( O", + "( for", + "(f or", + "Ġbasket ball", + "Ġ roads", + "Ġro ads", + "Ġroad s", + "Ġ Install", + "ĠInst all", + "Ġ Fab", + "ĠF ab", + "ĠFa b", + "it map", + "itm ap", + "4 75", + "47 5", + "Ġ ))Ċ", + "Ġ) )Ċ", + "Ġ)) Ċ", + "Ġ intersection", + "Ġinter section", + "Ġintersect ion", + "Ġinters ection", + "igh bor", + "ighb or", + "ĠB ry", + "ĠBr y", + "Ġ HERE", + "ĠH ERE", + "ĠHE RE", + "ĠHER E", + "S oftware", + "So ftware", + "Soft ware", + "el fare", + "elf are", + "a cs", + "ac s", + "6 22", + "62 2", + "Ġtr ailer", + "Ġtrail er", + "Ġtra iler", + "Ġtrai ler", + ". getClass", + ".get Class", + ".getC lass", + "ch ars", + "char s", + "cha rs", + "Ġreg ulation", + "Ġregul ation", + "Ġre fers", + "Ġref ers", + "Ġrefer s", + "Ġd estruction", + "Ġde struction", + "Ġdestruct ion", + "Ġ continuous", + "Ġcontin uous", + "Ġcontinu ous", + "Ġ Austin", + "ĠA ustin", + "ĠAust in", + "ĠAus tin", + "ĠAu stin", + "é ¢", + "a kan", + "ak an", + "aka n", + ". window", + ".w indow", + ".wind ow", + "Ġ Templates", + "ĠT emplates", + "ĠTem plates", + "ĠTemplate s", + "ĠTemp lates", + "ĠTempl ates", + "Ġabs ence", + ": n", + "Ġdis order", + "f lash", + "fl ash", + "Ġde let", + "Ġdel et", + "Ġdele t", + "bo ards", + "board s", + "Ġ Ġĉ", + "ĠĠ ĉ", + "R OP", + "RO P", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "Ġac qu", + "Ġlaw suit", + "Ġlaws uit", + "Ġ Reviews", + "ĠRe views", + "ĠReview s", + "Ġgar age", + "Ġga rage", + "t imer", + "time r", + "ti mer", + "tim er", + "Ġ ej", + "Ġe j", + "Ġ Rectangle", + "ĠRect angle", + "Ġ flowers", + "Ġfl owers", + "Ġflow ers", + "Ġflo wers", + "Ġflower s", + "3 98", + "39 8", + "i lst", + "il st", + "ils t", + "Ġ Instance", + "ĠIn stance", + "ĠInst ance", + "S uper", + "Sup er", + "Su per", + "d et", + "de t", + "dis posing", + "disp osing", + "Ġ ES", + "ĠE S", + "Ġ IC", + "ĠI C", + "v ere", + "ver e", + "ve re", + "S k", + "_ channels", + "_ch annels", + "_channel s", + "_chan nels", + "p uted", + "put ed", + "pu ted", + "pute d", + "/ null", + "/n ull", + "n nen", + "nn en", + "4 31", + "43 1", + "Ġ Gallery", + "ĠG allery", + "ĠGall ery", + "_ global", + "_g lobal", + "_glob al", + "Auth entication", + "Ġ Rank", + "ĠR ank", + "ĠRa nk", + "ĠRan k", + "Ġ blocked", + "Ġb locked", + "Ġbl ocked", + "Ġblock ed", + "Ġbloc ked", + "Ġc alm", + "Ġcal m", + "Ġca lm", + "m arket", + "mark et", + "mar ket", + "ĉ val", + "ĉv al", + "ĉva l", + "Ġ aug", + "Ġa ug", + "Ġau g", + "p eriod", + "per iod", + "peri od", + "Ġ Constant", + "ĠCon stant", + "ĠCons tant", + "ĠConst ant", + "Ġ ?>\">Ċ", + "Ġ?> \">Ċ", + "Ġ?>\" >Ċ", + "Ġ?>\"> Ċ", + "Ġ lobby", + "Ġl obby", + "Ġlob by", + "p al", + "pa l", + "3 79", + "37 9", + "Ġ sink", + "Ġs ink", + "Ġsi nk", + "Ġsin k", + "5 08", + "50 8", + "i ah", + "ia h", + "Ð ¡", + "ur name", + "urn ame", + "Ġcon ver", + "Ġconv er", + "Ġinvest igate", + "Ġinvestig ate", + "Ch rist", + "Chris t", + "Chr ist", + "H ub", + "Hu b", + "Ġ IND", + "ĠI ND", + "ĠIN D", + "Ġ Ped", + "ĠP ed", + "ĠPe d", + "u ras", + "ur as", + "ura s", + "ĉ url", + "ĉu rl", + "Ġ Tro", + "ĠT ro", + "ĠTr o", + "Ġ preferences", + "Ġp references", + "Ġpre ferences", + "Ġprefer ences", + "Ġpreference s", + "Ġguar anteed", + "Ġguarante ed", + "Ġguarantee d", + "` ĊĊ", + "`Ċ Ċ", + "Ġport ions", + "Ġportion s", + "Ġe valu", + "Ġev alu", + "Ġeval u", + "' > < /", + "( ){ĊĊ", + "() {ĊĊ", + "(){Ċ Ċ", + "(){ ĊĊ", + "en coded", + "enc oded", + "encode d", + "enco ded", + "z illa", + "zi lla", + ". Class", + ".C lass", + ".Cl ass", + "Ġ *_", + "Ġ* _", + "_ '", + "Ġview ed", + "Ġvi ewed", + "Ġvie wed", + "Ġ Philadelphia", + "ĠPhil adelphia", + ". rows", + ".r ows", + ".row s", + ".ro ws", + "Add ed", + "Ad ded", + "Ġ Touch", + "ĠT ouch", + "ĠTo uch", + "ĠTou ch", + "8 40", + "84 0", + ". delegate", + ".de legate", + "quee ze", + "s lide", + "sl ide", + "Ġ Senior", + "ĠSen ior", + "( tag", + "(t ag", + "Ġinter views", + "Ġinterview s", + "Ġs ua", + "Ġsu a", + "a tas", + "at as", + "ata s", + "@ ĊĊ", + "@Ċ Ċ", + "d istance", + "di stance", + "dist ance", + "Ġ sein", + "Ġs ein", + "Ġse in", + "Ġsei n", + "l atest", + "la test", + "late st", + "lat est", + "lates t", + "Ġ Prince", + "ĠPr ince", + "ĠPri nce", + "Ġlux ury", + "Ġre fr", + "Ġref r", + "Ġ Kitchen", + "ĠK itchen", + "ĠKit chen", + "Ñ Ħ", + "( at", + "(a t", + "F inal", + "Fin al", + "Fi nal", + "ü ck", + "üc k", + "_ zero", + "_z ero", + "Ġ ABC", + "ĠA BC", + "ĠAB C", + "Ġ Manchester", + "ĠMan chester", + "Ġ cow", + "Ġc ow", + "Ġco w", + "C OL", + "CO L", + "_ NUMBER", + "_NUM BER", + "ch anges", + "change s", + "chan ges", + "chang es", + "g enerate", + "gen erate", + "gener ate", + "gene rate", + ". Printf", + ".Print f", + "3 69", + "36 9", + "s hare", + "sh are", + "sha re", + "St ock", + "Ġ PT", + "ĠP T", + "A nim", + "An im", + "a nga", + "an ga", + "ang a", + "Ġ ig", + "Ġi g", + "up loads", + "upload s", + "Ġ packed", + "Ġp acked", + "Ġpack ed", + "Ġpac ked", + "Ġ }];Ċ", + "Ġ} ];Ċ", + "Ġ}] ;Ċ", + "( sender", + "(s ender", + "(se nder", + "(send er", + "Ġ Wire", + "ĠW ire", + "ĠWi re", + "ĠWir e", + "i sons", + "is ons", + "ison s", + "iso ns", + "Ġplay off", + "\\ E", + "6 08", + "60 8", + "/ R", + "Ġ headed", + "Ġhe aded", + "Ġhead ed", + "Al pha", + "( order", + "(ord er", + "(or der", + "Ġop ponents", + "Ġopp onents", + "Ġoppon ents", + "Ġopponent s", + "ack son", + "acks on", + "_ member", + "_m ember", + "_mem ber", + "T urn", + "Tur n", + "Tu rn", + "ĠSov iet", + "ìĹ IJ", + "a uge", + "au ge", + "aug e", + "4 48", + "44 8", + "Ġ incoming", + "Ġin coming", + "Ġinc oming", + "Ġincom ing", + "Ġ jak", + "Ġj ak", + "Ġja k", + "- game", + "-g ame", + "Ġ Male", + "ĠM ale", + "ĠMal e", + "ĠMa le", + "Ġ Month", + "ĠM onth", + "ĠMon th", + "ĠMo nth", + "ĠMont h", + "St age", + ". exe", + ".e xe", + ".ex e", + "Own Property", + ". setItem", + ".set Item", + "Ġ dc", + "Ġd c", + "ä½ ľ", + "Ġb rut", + "Ġbr ut", + "Ġbru t", + "Ġattempt ing", + ". len", + ".l en", + ".le n", + "Ġjud gment", + "Ġs ab", + "Ġsa b", + "Ġ cad", + "Ġc ad", + "Ġca d", + "Ġ Items", + "ĠI tems", + "ĠIt ems", + "ĠItem s", + "com fort", + "el ize", + "eli ze", + "/ log", + "/l og", + "/lo g", + "Ġentre prene", + "Ġ compiler", + "Ġc ompiler", + "Ġcom piler", + "Ġcomp iler", + "Ġcompile r", + "Ġcompil er", + "_ validation", + "_valid ation", + "r eview", + "re view", + "rev iew", + "Ġ textBox", + "Ġtext Box", + "Ġ fraction", + "Ġf raction", + "Ġfr action", + "Ġfra ction", + "Ġfract ion", + "Ġfrac tion", + "Ġ Bal", + "ĠB al", + "ĠBa l", + "> ;ĊĊ", + ">;Ċ Ċ", + ">; ĊĊ", + ".AutoScale Mode", + "Ġ cats", + "Ġc ats", + "Ġca ts", + "Ġcat s", + "4 65", + "46 5", + "Ġ registry", + "Ġreg istry", + "Ġregistr y", + "Ġregist ry", + "u lus", + "ul us", + "ulu s", + "F I", + "p ayload", + "pay load", + "- search", + "-s earch", + "-se arch", + "Ġst aying", + "Ġstay ing", + "Ġsta ying", + "ac ious", + "aci ous", + "acio us", + "De coration", + "Dec oration", + "Decor ation", + "R eview", + "Re view", + "Rev iew", + "I nf", + "In f", + "Ke ep", + "it is", + "iti s", + ", String", + ",S tring", + "C oord", + "Co ord", + "Ġp ero", + "Ġper o", + "Ġpe ro", + "S ex", + "Se x", + "Ġ Atlanta", + "ĠAtl anta", + "u esta", + "ue sta", + "ues ta", + "uest a", + "A rgb", + "Arg b", + "Ar gb", + "> *", + "} _", + "F ooter", + "Foo ter", + "Foot er", + "Fo oter", + "Ġ employed", + "Ġemploy ed", + "_ bound", + "_b ound", + "_bo und", + "v ide", + "vid e", + "vi de", + ". func", + ".f unc", + ".fun c", + "$ scope", + "$s cope", + "Ġ spo", + "Ġs po", + "Ġsp o", + "Ġ Anal", + "ĠA nal", + "ĠAn al", + "ĠAna l", + "oun ced", + "ounc ed", + "ounce d", + "a round", + "ar ound", + "aro und", + "Ġ restriction", + "Ġre striction", + "Ġrestrict ion", + "Ġrestr iction", + "Ġ shops", + "Ġsh ops", + "Ġshop s", + "Ġsho ps", + "å Ģ", + "Ġ Latin", + "ĠL atin", + "ĠLa tin", + "ĠLat in", + "- col", + "-c ol", + "-co l", + "Ġbar ely", + "Ġbare ly", + "Ġ Euro", + "ĠE uro", + "ĠEu ro", + "ĠEur o", + "E r", + "Ġf aire", + "Ġfa ire", + "Ġfair e", + "_ distance", + "_d istance", + "_dist ance", + "_di stance", + "_ unlock", + "_un lock", + "Qu ote", + "IV ATE", + "IVA TE", + "Ġ åĪ", + "Ġå Ī", + "Ġa imed", + "Ġaim ed", + "Ġai med", + "Ġaime d", + "ĠRe trie", + "ĠRet rie", + ". iter", + ".i ter", + ".it er", + "Ġ wrapped", + "Ġw rapped", + "Ġwr apped", + "Ġwrap ped", + "Ġag reements", + "Ġagre ements", + "Ġagree ments", + "Ġagreement s", + "str ument", + "stru ment", + "( product", + "(pro duct", + "(prod uct", + "Ġstud ied", + "Ġstudi ed", + ". setValue", + ".set Value", + "Ġ ye", + "Ġy e", + "Ġ Cache", + "ĠC ache", + "ĠCa che", + "MB OL", + "Ġquarter back", + "Ġ syntax", + "Ġs yntax", + "Ġsy ntax", + "Ġsyn tax", + "Ġsynt ax", + ".get ElementsBy", + ".getElements By", + ". version", + ".v ersion", + "we bsite", + "web site", + "webs ite", + "R unner", + "Run ner", + "_ single", + "_s ingle", + "_si ngle", + "_sin gle", + "a tiv", + "at iv", + "ati v", + "Ġ Altern", + "ĠAl tern", + "ĠAlt ern", + "ĠAlter n", + "Ġ Beautiful", + "ĠBe autiful", + "ĠBeaut iful", + "right arrow", + "Ġd iversity", + "Ġdivers ity", + "p lash", + "pl ash", + "pla sh", + "( co", + "(c o", + ". Fill", + ".F ill", + "Ġ typing", + "Ġtyp ing", + "Ġty ping", + "3 87", + "38 7", + "0 23", + "02 3", + "Ġ clar", + "Ġc lar", + "Ġcl ar", + "Ġcla r", + "H it", + "Hi t", + "O O", + "a cco", + "ac co", + "acc o", + "5 07", + "50 7", + "w orth", + "wort h", + "wor th", + "Ġ scripts", + "Ġs cripts", + "Ġscript s", + "Ġscri pts", + "ĠMuslim s", + "Ġ LL", + "ĠL L", + "er ving", + "erv ing", + "( boolean", + "(bool ean", + "Ġbase ball", + "Ġ CAN", + "ĠC AN", + "ĠCA N", + "3 94", + "39 4", + "0 44", + "04 4", + "M AIL", + "MA IL", + "d epend", + "de pend", + "dep end", + "Ġres pective", + "Ġrespect ive", + "Ġresp ective", + "Ġ constexpr", + "Ġconst expr", + ".* ;ĊĊ", + ".*;Ċ Ċ", + "' ]))Ċ", + "'] ))Ċ", + "']) )Ċ", + "'])) Ċ", + "Ġ yard", + "Ġy ard", + "Ġya rd", + "Ġyar d", + "Ġident ical", + "if ecycle", + "ife cycle", + "U SH", + "US H", + "up iter", + ". validate", + ".valid ate", + "c li", + "cl i", + "I STER", + "IS TER", + "IST ER", + "Ind icator", + "F ail", + "Fa il", + "Ġdem ocracy", + "Ġdemocr acy", + ". var", + ".v ar", + ".va r", + "Ġs atisfied", + "Ġsatisf ied", + "- ------------", + "-- -----------", + "---- ---------", + "-------- -----", + "--- ----------", + "------------ -", + "----- --------", + "---------- ---", + "------ -------", + "----------- --", + "------- ------", + "--------- ----", + "en cer", + "ence r", + "enc er", + "h or", + "ho r", + "Ġr ounds", + "Ġro unds", + "Ġround s", + "Ġrou nds", + "D AO", + "DA O", + "o a", + "Ġfl ask", + "Ġfla sk", + "= c", + "[ ]Ċ", + "[] Ċ", + "/ dist", + "/d ist", + "/dis t", + "Ġp arte", + "Ġpart e", + "Ġpar te", + "Ġ confirmation", + "Ġconfirm ation", + "e ron", + "er on", + "ero n", + "a ware", + "aw are", + "awa re", + "< ?>", + "", + "Ġ dependencies", + "Ġdep endencies", + "Ġdepend encies", + "Ġ Videos", + "ĠV ideos", + "ĠVideo s", + "ĠVid eos", + "ĠVide os", + "- row", + "-r ow", + "-ro w", + "Ġ **/Ċ", + "Ġ* */Ċ", + "Ġ** /Ċ", + "Ġ nou", + "Ġn ou", + "Ġno u", + "Ġ hover", + "Ġh over", + "Ġho ver", + "æ ŀ", + "Ġ nin", + "Ġn in", + "Ġni n", + "Ġ USD", + "ĠU SD", + "ĠUS D", + "M ac", + "Ma c", + "_ Load", + "_L oad", + "Ġout comes", + "Ġoutcome s", + "_ socket", + "_s ocket", + "_sock et", + "_so cket", + "_soc ket", + "Ġ queries", + "Ġqu eries", + "Ġque ries", + "Ġquer ies", + "w m", + "5 92", + "59 2", + "Ġh itting", + "Ġhit ting", + "in ux", + "inu x", + "M ich", + "Mi ch", + "Mic h", + "u dge", + "ud ge", + "A TAB", + "AT AB", + "ATA B", + "Ġv ulnerable", + "Ġvulner able", + "ä ¾", + "Ġ portfolio", + "Ġport folio", + ": YES", + "ĉ map", + "ĉm ap", + "B ound", + "Bo und", + "Ġ iteration", + "Ġit eration", + "Ġiter ation", + "in cess", + "ince ss", + "inc ess", + "inces s", + "Ġ actors", + "Ġa ctors", + "Ġact ors", + "Ġac tors", + "Ġactor s", + "Ġ Qual", + "ĠQ ual", + "ĠQu al", + "_ clean", + "_c lean", + "_cl ean", + "ãĢij ãĢIJ", + "M SG", + "MS G", + "G reen", + "Gr een", + "Gre en", + "ĠOff icer", + "ĠOffice r", + "Ġsm oking", + "Ġsmo king", + "> ',", + ">' ,", + "Ġ Flo", + "ĠF lo", + "ĠFl o", + "++ ;", + "4 33", + "43 3", + "oly gon", + "Ġ bulk", + "Ġb ulk", + "Ġbu lk", + "Ġbul k", + "Ġd rama", + "Ġdr ama", + "Ġdram a", + "Ġdra ma", + "Ġ exceptions", + "Ġex ceptions", + "Ġexcept ions", + "Ġexception s", + "Ġexce ptions", + "o sed", + "os ed", + "ose d", + "Ġ+ čĊ", + "Ġ legacy", + "Ġleg acy", + "C V", + "Ġcontrib uted", + "Ġcontribute d", + "Ġ Terms", + "ĠTe rms", + "ĠTer ms", + "ĠTerm s", + "Ġ bt", + "Ġb t", + "4 34", + "43 4", + "Ġun tuk", + "Ġunt uk", + "Ġ alien", + "Ġa lien", + "Ġal ien", + "Ġali en", + "= ==Ċ", + "== =Ċ", + "=== Ċ", + "ĉ Vector", + "ĉV ector", + "ĉVec tor", + "Ġ ls", + "Ġl s", + "On line", + ". facebook", + ".f acebook", + ".face book", + "n umeric", + "num eric", + "nu meric", + "numer ic", + "ock ets", + "ocket s", + "A ut", + "Au t", + "b ury", + "bur y", + "bu ry", + "- redux", + "-re dux", + "-red ux", + "ĠRed istributions", + "ĠRedistribution s", + "GLOBAL S", + "urrenc ies", + "urr encies", + "Ġ tons", + "Ġt ons", + "Ġto ns", + "Ġton s", + "âĢĻ ,", + "Ġ ê", + "Ġà ª", + "( col", + "(c ol", + "(co l", + "Ġ Symbol", + "ĠS ymbol", + "ĠSym bol", + "Ġst ayed", + "Ġstay ed", + "Ġ ML", + "ĠM L", + "Ġm unicip", + "Ġmun icip", + "Ġ sexo", + "Ġs exo", + "Ġse xo", + "Ġsex o", + "S en", + "Se n", + "n r", + "Ġg ains", + "Ġgain s", + "Ġga ins", + "Ġshort ly", + ". Menu", + ".M enu", + ".Me nu", + "à ½", + "KN OWN", + "Ġ operators", + "Ġoper ators", + "Ġoperator s", + "Ġopera tors", + "- V", + "Ġ Patrick", + "ĠPat rick", + "ĠPatri ck", + "/ add", + "/a dd", + "/ad d", + "_ CO", + "_C O", + "i ration", + "ir ation", + "ira tion", + "( post", + "(p ost", + "(pos t", + "(po st", + "Post s", + "Pos ts", + "Po sts", + "/ _", + "Ġ plug", + "Ġp lug", + "Ġpl ug", + "Ġplu g", + "Ġintel lectual", + "Ġintellect ual", + "Ġme tab", + "Ġmet ab", + "Ġmeta b", + "Ġpregn ancy", + "ĠPrem ier", + "ĠPremi er", + "n m", + "Ġ prediction", + "Ġpred iction", + "Ġpredict ion", + "Ġpredic tion", + "6 06", + "60 6", + "ĠMin istry", + "ĠMini stry", + "ĠMinist ry", + "Th ree", + "Thr ee", + "val uate", + "valu ate", + "Ġ Mini", + "ĠM ini", + "ĠMin i", + "ĠMi ni", + "b u", + "о з", + "оР·", + "< ul", + " \";čĊ", + ">\" ;čĊ", + ">\"; čĊ", + "ĠS av", + "ĠSa v", + ". Bold", + ".B old", + "Ġen ables", + "Ġenable s", + "ĉ tmp", + "ĉt mp", + "Ġman ually", + "Ġmanual ly", + "ĠS qu", + "ĠSq u", + "use rid", + "user id", + ". function", + ".f unction", + ".func tion", + ".fun ction", + ". cache", + ".c ache", + ".ca che", + "L OPT", + "LO PT", + ". Services", + ".S ervices", + ".Service s", + "5 88", + "58 8", + "d dit", + "dd it", + "t im", + "ti m", + "< img", + " >>", + ">> >", + "st ation", + "stat ion", + "sta tion", + "l ore", + "lo re", + "lor e", + "a type", + "at ype", + "aty pe", + "i shop", + "is hop", + "ish op", + "/ ****************************************************************", + "/******************************** ********************************", + "/************************ ****************************************", + "/******************************************************** ********", + "/******** ********************************************************", + "/**************** ************************************************", + "/**************************************** ************************", + "/************************************************ ****************", + "5 21", + "52 1", + "Com boBox", + "Combo Box", + "Ġvac ation", + "Ġva cation", + "Ġinit iative", + "Ġiniti ative", + "Ġ defaultValue", + "Ġdefault Value", + "7 70", + "77 0", + "con cat", + "conc at", + "Ġ Kh", + "ĠK h", + "6 32", + "63 2", + "Ġ Welcome", + "ĠW elcome", + "ĠWel come", + "ized Name", + "M igration", + "Ġ gradient", + "Ġg radient", + "Ġgrad ient", + "H ot", + "Ho t", + "Ġhard ly", + "e lo", + "el o", + "Ġ Students", + "ĠSt udents", + "ĠStud ents", + "ĠStudent s", + "Ġl oose", + "Ġlo ose", + "Ġloos e", + "7 30", + "73 0", + "a tz", + "at z", + ". Send", + ".S end", + ".Se nd", + "' /", + "Ġ universal", + "Ġun iversal", + "Ġunivers al", + "Ġ enterprise", + "Ġenter prise", + "Ġ regex", + "Ġreg ex", + "Ġ visitor", + "Ġvis itor", + "Ġvisit or", + "Ġ Fly", + "ĠF ly", + "ĠFl y", + "S eq", + "Se q", + "ภĻ", + "Ġ Visual", + "ĠVis ual", + "Ġ libraries", + "Ġl ibraries", + "Ġlib raries", + "Ġlibr aries", + "at oes", + "ato es", + "P ayment", + "Pay ment", + "4 47", + "44 7", + "Ġ pent", + "Ġp ent", + "Ġpe nt", + "Ġpen t", + "Ġgather ed", + "VR TX", + "VRT X", + "Ġ DM", + "ĠD M", + "S plit", + "Sp lit", + "Spl it", + "Ġl etting", + "Ġlet ting", + "Ġlett ing", + "Ð Ŀ", + "_ errors", + "_error s", + "_err ors", + "_er rors", + "ep och", + "P ARAM", + "PA RAM", + "PAR AM", + "c u", + "ÑģÑĤ в", + "ol utions", + "olution s", + "olut ions", + "Ed iting", + "Edit ing", + "fo nts", + "font s", + "fon ts", + "Ġ allocated", + "Ġal located", + "Ġalloc ated", + "Ġallocate d", + "Ġ Based", + "ĠB ased", + "ĠBase d", + "ĠBa sed", + "ĠBas ed", + "( Y", + "Ġ Judge", + "ĠJ udge", + "ĠJud ge", + "ĠJu dge", + "Ġbr others", + "Ġbro thers", + "Ġbrother s", + "Ġbroth ers", + "F ILES", + "FILE S", + "FI LES", + "ç o", + "5 31", + "53 1", + "w b", + "_ PI", + "_P I", + "' ^", + "Ġ sword", + "Ġs word", + "Ġsw ord", + "Ġswo rd", + ". services", + ".s ervices", + ".service s", + ".serv ices", + "Ġ nl", + "Ġn l", + "T im", + "Ti m", + "i gg", + "ig g", + "ĠMo ore", + "ĠMoo re", + "ĠMoor e", + "Ġcrypt oc", + "Ġcrypto c", + "åĩ º", + "_ posts", + "_post s", + "_pos ts", + "_po sts", + "ot ate", + "ota te", + "? '", + ". ...ĊĊ", + ".. ..ĊĊ", + "... .ĊĊ", + ".... ĊĊ", + "....Ċ Ċ", + "Ġ kl", + "Ġk l", + "= \"$", + "=\" $", + "Ġde coration", + "Ġdec oration", + "Ġdecor ation", + "Ġdeco ration", + "Ạ¡", + "Ġ DIRECT", + "ĠD IRECT", + "ĠDI RECT", + "ĠDIR ECT", + "G UI", + "GU I", + ") =>{Ċ", + ")= >{Ċ", + ")=> {Ċ", + "Ġ newsletter", + "Ġnews letter", + "Ġpre cis", + "Ġprec is", + "( point", + "(p oint", + "(po int", + "Ġ Equipment", + "ĠE quipment", + "ĠEqu ipment", + "ĠEquip ment", + "u ty", + "ut y", + "Ġ Dave", + "ĠD ave", + "ĠDav e", + "ĠDa ve", + "Ġpart icipation", + "Ġpartic ipation", + "Ġparticip ation", + "u arios", + "ua rios", + "uario s", + "uar ios", + "x it", + "xi t", + ". As", + ".A s", + "E TER", + "ET ER", + "o rous", + "or ous", + "oro us", + "Ġ shield", + "Ġsh ield", + "[ ]>", + "[] >", + "il itary", + "ilit ary", + ". origin", + ".or igin", + ".orig in", + "Ġ promotion", + "Ġpro motion", + "Ġprom otion", + "Ġpromot ion", + "Ġpromo tion", + "U nt", + "Un t", + "Ġ ct", + "Ġc t", + "T RA", + "TR A", + "5 56", + "55 6", + "View Holder", + "Ġ sigma", + "Ġs igma", + "Ġsig ma", + "d elta", + "del ta", + "are house", + "con tract", + "cont ract", + "contr act", + "contra ct", + "( Vector", + "(V ector", + "(Vec tor", + "7 21", + "72 1", + "Ġcomp ete", + "Ġcompet e", + "/ form", + "/f orm", + "/ components", + "/com ponents", + "/component s", + "Ġ nr", + "Ġn r", + "ĠInd ones", + "ĠIndo nes", + "Ġ оÑĤ", + "Ġо ÑĤ", + "Ġ Volume", + "ĠV olume", + "ĠVol ume", + ". files", + ".f iles", + ".file s", + ".fi les", + ".fil es", + "( resp", + "(r esp", + "(res p", + "(re sp", + "/ models", + "/model s", + "/mod els", + "Ġ surf", + "Ġs urf", + "Ġsu rf", + "Ġsur f", + "st andard", + "stand ard", + "/ o", + "ĠXCT Assert", + "V ICES", + "VICE S", + "VI CES", + "VIC ES", + ". Code", + ".C ode", + ".Co de", + "S ED", + "SE D", + "Ġ activate", + "Ġact ivate", + "Ġactiv ate", + "D elta", + "Del ta", + "Ġlimit ation", + "Ġlim itation", + "r ij", + "ri j", + "Ġpregn ant", + "Ġpreg nant", + ": ^(", + ":^ (", + "Ġs our", + "Ġso ur", + "Ġsou r", + "p ie", + "pi e", + "8 03", + "80 3", + "Ġ expense", + "Ġexp ense", + "i cation", + "ic ation", + "ica tion", + "Ġ Large", + "ĠL arge", + "ĠLar ge", + "Ġ ±", + "Ġ ±", + "ĠB owl", + "ĠBo wl", + "ĠBow l", + "( models", + "(model s", + "(mod els", + "(mode ls", + "/ N", + "8 57", + "85 7", + "P a", + ". reload", + ".re load", + ".r eload", + ".rel oad", + "Ġwonder ing", + "4 62", + "46 2", + "Exec ution", + "ĉ ĠĠĠĠĠĠ", + "ĉĠĠĠ ĠĠĠ", + "ĉĠ ĠĠĠĠĠ", + "ĉĠĠ ĠĠĠĠ", + "ĉĠĠĠĠĠ Ġ", + "ĉĠĠĠĠ ĠĠ", + "Ġ Graphics", + "ĠG raphics", + "ĠGraph ics", + "ĠGraphic s", + "Ġ Contin", + "ĠCon tin", + "ĠCont in", + "_ job", + "_j ob", + "Ġ getName", + "Ġget Name", + "Ġ Magn", + "ĠM agn", + "ĠMag n", + "ĠMa gn", + "Ġ DWORD", + "ĠD WORD", + "ĠDW ORD", + "m ad", + "ma d", + "Ġ nh", + "Ġn h", + "f eatures", + "fe atures", + "feature s", + "feat ures", + "fea tures", + "} \");Ċ", + "}\" );Ċ", + "}\") ;Ċ", + "he ets", + "heet s", + "hee ts", + "( train", + "(t rain", + "(tr ain", + "z n", + "Ġrec ruit", + "Ġrecru it", + ". connection", + ".con nection", + ".connect ion", + ".conn ection", + "Ġbar rel", + "Ġbarr el", + "Ġ steam", + "Ġs team", + "Ġst eam", + "Ġste am", + "_ setting", + "_s etting", + "_set ting", + "Ġ angular", + "Ġang ular", + "ane ously", + "aneous ly", + "Ġ bil", + "Ġb il", + "Ġbi l", + "Ġ Norm", + "ĠN orm", + "ĠNo rm", + "ĠNor m", + "5 22", + "52 2", + "(! $", + "i bt", + "ib t", + "% (", + "Ġ posit", + "Ġp osit", + "Ġpos it", + "Ġpo sit", + "Ġposi t", + "Ġ Father", + "ĠF ather", + "ĠFa ther", + "ĠFat her", + "int endo", + "inte ndo", + "5 65", + "56 5", + "L ive", + "Li ve", + "Liv e", + "0 41", + "04 1", + "Ġ ports", + "Ġp orts", + "Ġport s", + "Ġpo rts", + "Ġpor ts", + "Ġm ej", + "Ġme j", + "Ġ landing", + "Ġl anding", + "Ġland ing", + "Ġlan ding", + "p onder", + "pon der", + "pond er", + "po nder", + "ponde r", + "Ġ cod", + "Ġc od", + "Ġco d", + "_ HEADER", + "_HE ADER", + "_HEAD ER", + ". Margin", + ".M argin", + ".Mar gin", + "Ġ balls", + "Ġb alls", + "Ġball s", + "Ġbal ls", + "Ġdisc ussions", + "Ġdiscuss ions", + "Ġdiscussion s", + "Ġ blend", + "Ġbl end", + "Ġble nd", + "H ex", + "He x", + "Ġfar mers", + "Ġfarm ers", + "Ġfarmer s", + "Ġmaint aining", + "Ġmaintain ing", + "Ġ ĠĠčĊ", + "ĠĠ ĠčĊ", + "ĠĠĠ čĊ", + "s yn", + "sy n", + "[ T", + "r us", + "ru s", + "4 39", + "43 9", + "uff ers", + "uf fers", + "uffer s", + "Ġ contributors", + "Ġcontrib utors", + "Ġcontributor s", + "_ sys", + "_s ys", + "_sy s", + ". Debug", + ".De bug", + "Ġ constructed", + "Ġconstruct ed", + "o mes", + "om es", + "ome s", + "? id", + "s lider", + "sl ider", + "slide r", + "Ġsup pliers", + "Ġsupplier s", + "Ġsuppl iers", + "Ġsupp liers", + "6 11", + "61 1", + "scribe r", + "scri ber", + "scr iber", + "p es", + "pe s", + "Ð ŀ", + "\" :čĊ", + "\": čĊ", + "\\ Controller", + ") )ĊĊĊ", + ")) ĊĊĊ", + "))Ċ ĊĊ", + "))ĊĊ Ċ", + "Ġ lua", + "Ġl ua", + "Ġlu a", + "M ulti", + "Mult i", + "Mul ti", + "E NS", + "EN S", + "S rc", + "Sr c", + "Ġ petition", + "Ġpet ition", + "Ġpetit ion", + "Ġ slave", + "Ġsl ave", + "Ġsla ve", + "Ġslav e", + "lo oking", + "look ing", + "loo king", + "V ERT", + "VER T", + "VE RT", + "ĉ vector", + "ĉv ector", + "ĉvec tor", + "S pecial", + "Sp ecial", + "Spec ial", + "Spe cial", + "h h", + "an ne", + "ann e", + "ĠN iger", + "ĠNi ger", + "/ views", + "/view s", + "z ing", + "zi ng", + "zin g", + "end ant", + "enda nt", + "< C", + "s peed", + "sp eed", + "spe ed", + "5 14", + "51 4", + "Ġ{ };ĊĊ", + "Ġ{} ;ĊĊ", + "Ġ{};Ċ Ċ", + "Ġ{}; ĊĊ", + "Begin Init", + "Ġf open", + "Ġfo pen", + "@ RequestMapping", + "End Init", + "Ġp unch", + "Ġpun ch", + "S ender", + "Se nder", + "Send er", + "Sen der", + "6 03", + "60 3", + "é Ķ", + "get Message", + "/ types", + "/t ypes", + "/type s", + ". PI", + ".P I", + "(' ');Ċ", + "oc used", + "ocus ed", + "ocu sed", + "( all", + "(a ll", + "(al l", + "Ġ dropdown", + "Ġd ropdown", + "Ġdrop down", + ") .__", + "). __", + ")._ _", + "Ġ Vin", + "ĠV in", + "ĠVi n", + ". ForeignKey", + ".Fore ignKey", + "6 12", + "61 2", + "ca nf", + "can f", + "o ured", + "ou red", + "our ed", + "oure d", + "Ġ Organization", + "ĠO rganization", + "ĠOrgan ization", + "Ġ а", + "ĠÐ °", + "Ġ Culture", + "ĠC ulture", + "ĠCult ure", + "ĠCul ture", + "( cls", + "(c ls", + "(cl s", + ", _", + "9 02", + "90 2", + "r gba", + "rg ba", + "rgb a", + "ìĿ ĺ", + ". dataGridView", + ".data GridView", + "Ġdo zen", + "Ġdoz en", + "ĠG es", + "ĠGe s", + "8 05", + "80 5", + "4 64", + "46 4", + "_ shared", + "_sh ared", + "_share d", + "_sha red", + "n ick", + "ni ck", + "nic k", + "Ġh osp", + "Ġho sp", + "Ġhos p", + "o meter", + "om eter", + "ome ter", + "omet er", + "4 95", + "49 5", + "Ġclaim ing", + "Ġcla iming", + "0 32", + "03 2", + "i bles", + "ib les", + "ible s", + "r ik", + "ri k", + "æĺ ¯", + "en ario", + "ena rio", + "Ġd engan", + "Ġden gan", + "o bb", + "ob b", + "m ont", + "mon t", + "mo nt", + "_ rank", + "_r ank", + "_ra nk", + "(' /',", + "('/ ',", + "Ġap olog", + "Ġapo log", + "P s", + "_ power", + "_p ower", + "_pow er", + "_po wer", + "ĠG ree", + "ĠGr ee", + "ĠGre e", + "Ġf ulfill", + "Ġful fill", + "Ġfulfil l", + "Ġ firebase", + "Ġf irebase", + "Ġfire base", + "9 10", + "91 0", + "Ġ fare", + "Ġf are", + "Ġfa re", + "Ġfar e", + "ĠH im", + "ĠHi m", + "Ġ bean", + "Ġb ean", + "Ġbe an", + "âĢ¦ .", + "Ġ SPI", + "ĠS PI", + "ĠSP I", + "_ RX", + "_R X", + "Ġper ception", + "Ġperce ption", + "Ġpercept ion", + "rel ative", + "com pile", + "comp ile", + "u um", + "uu m", + "u tos", + "ut os", + "uto s", + "a uc", + "au c", + "Ġ Ask", + "ĠA sk", + "ĠAs k", + "Ġ indicator", + "Ġind icator", + "Ġindic ator", + "Ġindica tor", + "/ th", + "/t h", + ".set String", + "ĠWis consin", + ". Domain", + ".D omain", + ".Do main", + ".Dom ain", + "Ġart ificial", + "De velop", + "Dev elop", + "Ġ Sarah", + "ĠS arah", + "ĠSar ah", + "ĠSa rah", + "ĠSara h", + "Ġ lying", + "Ġl ying", + "Ġly ing", + "( search", + "(s earch", + "(se arch", + "ĠEm pire", + "ĠEmp ire", + "ur ring", + "urr ing", + "æŶ éĹ´", + "= \"${", + "=\" ${", + "=\"$ {", + "Ġ getId", + "Ġget Id", + "Ġ Payment", + "ĠP ayment", + "ĠPay ment", + "t ransition", + "trans ition", + "Ġ ].", + "Ġ] .", + "i xin", + "ix in", + "V T", + "- select", + "-s elect", + "-se lect", + "Ġdemonstr ated", + "Ġdemonstrate d", + "Ġ lastName", + "Ġlast Name", + "em ployment", + "emp loyment", + "employ ment", + ". getProperty", + ".get Property", + ".getP roperty", + "Ġf ought", + "Ġfo ught", + "Ġfou ght", + "file Name", + "Ġ Pers", + "ĠP ers", + "ĠPer s", + "ĠPe rs", + "4 52", + "45 2", + "- card", + "-c ard", + "-car d", + "-ca rd", + "a str", + "as tr", + "ast r", + "at trs", + "att rs", + "attr s", + "Ġpro minent", + "Ġprom inent", + "Ġpromin ent", + "D esign", + "De sign", + "Des ign", + "anc ouver", + "ãģĹ ãģ", + "ar do", + "ard o", + "s ecret", + "se cret", + "sec ret", + "Ġ rag", + "Ġr ag", + "Ġra g", + "Ġpo ison", + "Ġpoi son", + "Ġpois on", + "- man", + "-m an", + ", omitempty", + "7 40", + "74 0", + "ĉ un", + "ĉu n", + "it zer", + "itz er", + "ĠCas ino", + "Ġ Ross", + "ĠR oss", + "ĠRo ss", + "ĠRos s", + "- foot", + "-f oot", + "( results", + "(result s", + "(res ults", + "P lan", + "Pl an", + "Ġl aser", + "Ġla ser", + "Ġlas er", + "ê¸ °", + "_ DR", + "_D R", + "5 23", + "52 3", + "F acebook", + "Face book", + "4 49", + "44 9", + "Ġ boards", + "Ġbo ards", + "Ġboard s", + "s ta", + "st a", + "] ],", + "]] ,", + "6 75", + "67 5", + "Ġ tiles", + "Ġt iles", + "Ġti les", + "Ġtile s", + "Ġtil es", + "S IZE", + "SI ZE", + "Ġ =~", + "Ġ= ~", + "9 70", + "97 0", + "Ġprem ier", + "Ġpremi er", + "o cab", + "oc ab", + "oca b", + "Ġ encoded", + "Ġen coded", + "Ġenc oded", + "Ġencode d", + "Ġ reserve", + "Ġre serve", + "Ġres erve", + "Ġreserv e", + "6 09", + "60 9", + "ĠAfghan istan", + "Ġ ListNode", + "ĠList Node", + "ur ls", + "url s", + "Ġ submission", + "Ġsub mission", + "Ġn eu", + "Ġne u", + "4 77", + "47 7", + "Ġ# +#", + "_ POST", + "_P OST", + "_PO ST", + "_POS T", + "Ġmo ist", + "Ġmoi st", + "Ġmois t", + "e lli", + "el li", + "ell i", + "ellig ent", + "elli gent", + ". alert", + ".al ert", + "ó d", + "b re", + "br e", + "Ġ Collect", + "ĠC ollect", + "ĠCol lect", + "ĠColl ect", + "Ġ graphic", + "Ġg raphic", + "Ġgraph ic", + "Ġgrap hic", + "Ġ longitude", + "Ġlong itude", + "Ġlongitud e", + "Ġ Provid", + "ĠPro vid", + "ĠPr ovid", + "ĠProv id", + "Ġ Calculate", + "ĠC alculate", + "ĠCal culate", + "ĠCalcul ate", + "ĠCalc ulate", + "x ffff", + "xf fff", + "xff ff", + "xfff f", + "c riteria", + "crit eria", + "Ġ waters", + "Ġw aters", + "Ġwater s", + "Ġwa ters", + "Ġwat ers", + "r ock", + "ro ck", + "roc k", + "lo quent", + "ĠT rib", + "ĠTr ib", + "ĠTri b", + "5 13", + "51 3", + "Ġ burst", + "Ġb urst", + "Ġbu rst", + "Ġbur st", + "Ġ suffix", + "Ġs uffix", + "Ġsuff ix", + "Ġsuf fix", + ". Extensions", + ".Ext ensions", + ".Extension s", + "is hes", + "ish es", + "i vel", + "iv el", + "ive l", + "Ġ LIKE", + "ĠL IKE", + "ĠLI KE", + "Ġ Getty", + "ĠG etty", + "ĠGet ty", + "ĠGe tty", + ".Action Event", + ".s lf", + ".sl f", + "Ġ HAL", + "ĠH AL", + "ĠHA L", + "u pal", + "up al", + "upa l", + "E AR", + "EA R", + "5 24", + "52 4", + "u di", + "ud i", + "_ timeout", + "_time out", + "U F", + "Ġ Singapore", + "ĠSing apore", + "ĠSingap ore", + "ĠAd vent", + "ĠAdv ent", + "_ interval", + "_int erval", + "_inter val", + "c haft", + "ch aft", + "cha ft", + "Ġ Emer", + "ĠE mer", + "ĠEm er", + "Ġ telephone", + "Ġtele phone", + "ĠTur k", + "ĠTu rk", + "_ interface", + "_inter face", + "Ġ Own", + "ĠO wn", + "ĠOw n", + "Ġencour aged", + "Ġencourage d", + "< Object", + "(", + "<> (", + "5 44", + "54 4", + ". Product", + ".Pro duct", + ".Produ ct", + "Form s", + "For ms", + "Fo rms", + "N EW", + "NE W", + "P ay", + "Pa y", + "ĉ boolean", + "ĉbool ean", + "_ contact", + "_cont act", + "Ġ Electric", + "ĠE lectric", + "ĠElect ric", + "s kip", + "sk ip", + "ski p", + "Ġw ur", + "Ġch ronic", + "Ġchron ic", + "Ġchr onic", + "_ driver", + "_d river", + "_dr iver", + "_drive r", + "9 40", + "94 0", + "Ġ Sab", + "ĠS ab", + "ĠSa b", + "Ġ Ult", + "ĠU lt", + "ĠUl t", + "Ġ Rad", + "ĠR ad", + "ĠRa d", + "ST ATUS", + "STAT US", + "Ġ Lewis", + "ĠL ewis", + "ĠLe wis", + "ĠLew is", + "O B", + "Ġgift s", + "Ġgi fts", + "Ġgif ts", + ". Rec", + ".R ec", + ".Re c", + "TR UE", + "Ġint ensity", + "Ġintens ity", + "M arker", + "Mark er", + "Mar ker", + ". compare", + ".com pare", + ".comp are", + "f fic", + "ff ic", + "ffi c", + "C ookie", + "Co okie", + "Cook ie", + "Ġ Baby", + "ĠB aby", + "ĠBa by", + "ĠBab y", + "Ġ BigDecimal", + "ĠB igDecimal", + "ĠBig Decimal", + "i let", + "il et", + "ile t", + "ĠHOLD ERS", + "ĠHOLDER S", + "Ġ Lady", + "ĠL ady", + "ĠLa dy", + "ĠLad y", + "Ġ lung", + "Ġl ung", + "Ġlu ng", + "Ġlun g", + "Ġ Alabama", + "ĠAl abama", + "Ġ dess", + "Ġd ess", + "Ġde ss", + "Ġdes s", + "` );Ċ", + "`) ;Ċ", + "Ġ Builder", + "ĠB uilder", + "ĠBuild er", + "ĠBu ilder", + "_ region", + "_reg ion", + "Ġ neutral", + "Ġne utral", + "Ġneut ral", + "Ġneutr al", + "9 09", + "90 9", + "B oth", + "Bo th", + "Bot h", + "Ġ hp", + "Ġh p", + "Ġ horn", + "Ġh orn", + "Ġhor n", + "Ġho rn", + "Ġ segments", + "Ġse gments", + "Ġseg ments", + "Ġsegment s", + "Ġ EC", + "ĠE C", + "\" =>\"", + "\"=> \"", + "( rec", + "(r ec", + "(re c", + "Ġ Pi", + "ĠP i", + "G M", + "Ġl aptop", + "Ġlap top", + "S calar", + "Sc alar", + "Scala r", + "4 63", + "46 3", + "i sd", + "is d", + "- dialog", + "-d ialog", + "-di alog", + "Ġ Anderson", + "ĠAnd erson", + "ĠAnders on", + "Ġmis takes", + "Ġmist akes", + "Ġmi stakes", + "Ġmistake s", + "7 08", + "70 8", + "Ġ Han", + "ĠH an", + "ĠHa n", + "j es", + "je s", + "est ination", + "esti nation", + "4 36", + "43 6", + "Ġprom ises", + "Ġpromise s", + "b id", + "bi d", + "Ġ Scient", + "ĠS cient", + "ĠSc ient", + "ĠSci ent", + "G IN", + "GI N", + "Ġ Performance", + "ĠPer formance", + "ĠPerform ance", + "b age", + "ba ge", + "bag e", + ". users", + ".user s", + ".use rs", + ".us ers", + "le ading", + "lead ing", + "lea ding", + "Ġ oral", + "Ġo ral", + "Ġor al", + "Ġora l", + "G raphics", + "Graph ics", + "Graphic s", + "4 88", + "48 8", + "_ PTR", + "_P TR", + "_PT R", + "5 18", + "51 8", + "h ang", + "ha ng", + "han g", + "Ġin ev", + "Ġi nev", + "Ġine v", + "p rocessing", + "process ing", + "F actor", + "Fact or", + "Fac tor", + "Fa ctor", + "Ġ NA", + "ĠN A", + "$ string", + "$s tring", + "$str ing", + "Ġ grounds", + "Ġgr ounds", + "Ġground s", + "Ġgro unds", + "Ġgrou nds", + ".Save Changes", + "c lock", + "cl ock", + "clo ck", + "9 41", + "94 1", + "cri pcion", + "Ġ Newton", + "ĠNew ton", + "g c", + ". includes", + ".in cludes", + ".include s", + "Ġ blast", + "Ġb last", + "Ġbl ast", + "Ġblas t", + "Ġbla st", + "Ġ' -'", + "Ġ'- '", + "Ġp uede", + "Ġpued e", + "Ġpu ede", + "4 69", + "46 9", + ". Session", + ".S ession", + "Ġ grep", + "Ġg rep", + "Ġgr ep", + "Ġgre p", + "_ final", + "_f inal", + "_fin al", + "Ġ Gay", + "ĠG ay", + "ĠGa y", + "Ġ Give", + "ĠG ive", + "ĠGi ve", + "i ri", + "ir i", + "- star", + "-s tar", + "-st ar", + "Ġ UIImage", + "ĠUI Image", + "_ epoch", + "_ep och", + "u bb", + "ub b", + "e nth", + "en th", + "ent h", + "Ġ elite", + "Ġe lite", + "Ġel ite", + "Ġelit e", + "Ġcampaign s", + "Ġ Porno", + "ĠP orno", + "ĠPorn o", + "ĠPor no", + "_ assign", + "_as sign", + "_ass ign", + "Prot ocol", + "Proto col", + "Ġ Being", + "ĠB eing", + "ĠBe ing", + "ĠBei ng", + "Ġ Airport", + "ĠAir port", + "Ġcon ventional", + "Ġconvent ional", + "Ġconvention al", + "Ġ Wat", + "ĠW at", + "ĠWa t", + "Ġ CI", + "ĠC I", + "E TA", + "ET A", + "Ġ Anthony", + "ĠAnth ony", + "Ġ tablet", + "Ġtable t", + "Ġtab let", + "( format", + "(form at", + "(for mat", + "Ġconsist ently", + "Ġconsistent ly", + "ĠI owa", + "ĠIo wa", + "4 74", + "47 4", + "Ġ avatar", + "Ġav atar", + "Ġava tar", + "0 27", + "02 7", + ". cursor", + ".c ursor", + "! [", + "Ġh anging", + "Ġhang ing", + "Ġhan ging", + "Ġhangi ng", + "H er", + "He r", + "S uch", + "Su ch", + "Suc h", + "' ;ĊĊĊ", + "';Ċ ĊĊ", + "';ĊĊ Ċ", + "'; ĊĊĊ", + "org eous", + "orge ous", + "( )==", + "() ==", + "Ġ viewModel", + "Ġview Model", + "Ġ ãĥ", + "Ġ els", + "Ġe ls", + "Ġel s", + "Ġ Agent", + "ĠA gent", + "ĠAg ent", + "ĠAge nt", + "F etch", + "a por", + "ap or", + "apo r", + "Ġ cx", + "Ġc x", + "p read", + "pr ead", + "pre ad", + "ĠP ier", + "ĠPi er", + "ĠPie r", + "o eff", + "oe ff", + "6 16", + "61 6", + "S n", + "8 90", + "89 0", + "Ġ Virtual", + "ĠV irtual", + "ĠVir tual", + "ĠVirt ual", + "A pr", + "Ap r", + ". White", + ".Wh ite", + "6 15", + "61 5", + "_ MOD", + "_M OD", + "_MO D", + "Ġ Points", + "ĠP oints", + "ĠPoint s", + "ĠPo ints", + "å¤ ±", + "Ġ genes", + "Ġg enes", + "Ġge nes", + "Ġgen es", + "Ġgene s", + "Ġ vendor", + "Ġv endor", + "Ġvend or", + "Ġmain stream", + "< src", + "Ċ", + "Ġ< >Ċ", + "Ġ<> Ċ", + "F ilename", + "File name", + "Fi lename", + "Fil ename", + "Ġs ne", + "Ġsn e", + "Ġ Football", + "ĠF ootball", + "ĠFoot ball", + "Ġr ival", + "Ġri val", + "Ġriv al", + "Ġdis aster", + "i onic", + "ion ic", + "io nic", + "ioni c", + "Ġ Damage", + "ĠD amage", + "ĠDa mage", + "ĠDam age", + ". Resource", + ".Re source", + ".Res ource", + "- en", + "-e n", + "Ġ Types", + "ĠT ypes", + "ĠType s", + "ĠTy pes", + "ĠTyp es", + "get String", + "( board", + "(b oard", + "Ġ bol", + "Ġb ol", + "Ġbo l", + "p lain", + "pl ain", + "pla in", + "z ym", + "zy m", + "ภ²", + "Ġ scanner", + "Ġsc anner", + "Ġscan ner", + "i lder", + "il der", + "ild er", + "ilde r", + "_ msgs", + "_msg s", + "_ms gs", + "æ ı", + "( intent", + "(int ent", + "(in tent", + "Ġ destruct", + "Ġd estruct", + "Ġde struct", + "Ġb ust", + "Ġbu st", + "Ġbus t", + "Ġ Employ", + "ĠE mploy", + "ĠEm ploy", + "ĠEmp loy", + "o ni", + "on i", + "Ġ UIViewController", + "ĠUI ViewController", + "ĠUIView Controller", + "Ġo dds", + "Ġodd s", + "Ġod ds", + "e arer", + "ear er", + "ea rer", + "Ge ometry", + "Geo metry", + "Geom etry", + "Ġ yii", + "Ġy ii", + "Ġyi i", + "_ EXPORT", + "_EX PORT", + "_EXP ORT", + "Ġ Attack", + "ĠAtt ack", + "Ġn iet", + "Ġnie t", + "Ġni et", + "Ġim pression", + "Ġimp ression", + "Ġimpress ion", + "Ġimpr ession", + "Ġ Gil", + "ĠG il", + "ĠGi l", + "_ prob", + "_p rob", + "_pro b", + "_pr ob", + "5 28", + "52 8", + "Ġ CF", + "ĠC F", + "Ġ Experience", + "ĠEx perience", + "/ plugins", + "/pl ugins", + "/plugin s", + ". Method", + ".M ethod", + "Ġbel iefs", + "Ġbelie fs", + "Ġbelief s", + "N ative", + "Nat ive", + "_ build", + "_b uild", + "Ġ vig", + "Ġv ig", + "Ġvi g", + "Ġr anks", + "Ġrank s", + "Ġran ks", + "cover ed", + "cov ered", + "7 05", + "70 5", + "s uch", + "su ch", + "G uard", + "Gu ard", + ". pack", + ".p ack", + ".pa ck", + "ad der", + "add er", + "8 09", + "80 9", + "i via", + "iv ia", + "ivi a", + "l ng", + "ln g", + "Ġ вÑĭ", + "Ġв Ñĭ", + "5 52", + "55 2", + "T imestamp", + "Time stamp", + "_ now", + "_n ow", + "_no w", + "Ġp oker", + "Ġpo ker", + "Ġpok er", + "Ġpoke r", + "Ġ unc", + "Ġu nc", + "Ġun c", + "Ġ shapes", + "Ġsh apes", + "Ġshape s", + "Ġsha pes", + "- types", + "-t ypes", + "-type s", + "_ period", + "_p eriod", + "_per iod", + "p k", + "Ġveter an", + "Ġ sono", + "Ġs ono", + "Ġso no", + "Ġson o", + "Ġ appointed", + "Ġapp ointed", + "Ġappoint ed", + "over flow", + ". driver", + ".d river", + ".dr iver", + ".drive r", + "_ cat", + "_c at", + "_ca t", + "u tt", + "ut t", + "p lant", + "pl ant", + "plan t", + "pla nt", + "i mb", + "im b", + "Ġ Accept", + "ĠAc cept", + "ĠAcc ept", + "Ġ concert", + "Ġcon cert", + "Ġconc ert", + "Ġconce rt", + "ĉ node", + "ĉn ode", + "ĉno de", + "ĉ z", + "? >čĊ", + "?> čĊ", + "Ġb anned", + "Ġban ned", + "ĉ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĉĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĉĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĉĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "Ġt oxic", + "Ġto xic", + "Ġtox ic", + "Ġdis appe", + "Ġdisap pe", + "4 73", + "47 3", + "È Ľ", + "Ġg race", + "Ġgr ace", + "Ġgra ce", + "Ġgrac e", + "at eful", + "ate ful", + "Re ply", + "Rep ly", + "ĠC ruz", + "ĠCr uz", + "ĠCru z", + "4 86", + "48 6", + "Ġs crap", + "Ġsc rap", + "Ġscr ap", + "Ġ keywords", + "Ġkey words", + "Ġkeyword s", + "s imp", + "si mp", + "sim p", + "Ġmort gage", + "Ġcy ber", + "Ġ Execute", + "ĠEx ecute", + "ĠExec ute", + "Ġ latitude", + "Ġl atitude", + "Ġlat itude", + "i fu", + "if u", + ". COM", + ".C OM", + ".CO M", + "d bo", + "db o", + "Ġs orts", + "Ġso rts", + "Ġsort s", + "Ġsor ts", + "Ġ Gas", + "ĠG as", + "ĠGa s", + "om ial", + "omi al", + ". Local", + ".L ocal", + ".Lo cal", + "C ells", + "Cell s", + "Cel ls", + ". Replace", + ".Re place", + "String s", + "Str ings", + ". fit", + ".f it", + ".fi t", + "Ġ Third", + "ĠTh ird", + "ĠThi rd", + "% \",Ċ", + "%\" ,Ċ", + "%\", Ċ", + "Ġ {}\".", + "Ġ{ }\".", + "Ġ{} \".", + "Ġ Sony", + "ĠS ony", + "ĠSo ny", + "ĠSon y", + "Ġ [:", + "Ġ[ :", + "5 85", + "58 5", + "Ġf allen", + "Ġfa llen", + "Ġfall en", + "Ġfal len", + ". ')Ċ", + ".' )Ċ", + ".') Ċ", + "i nh", + "in h", + "Ġ MC", + "ĠM C", + "Ġ redis", + "Ġre dis", + "Ġr edis", + "Ġred is", + "C odes", + "Code s", + "Co des", + "Cod es", + "Ġ profiles", + "Ġpro files", + "Ġprof iles", + "Ġprofile s", + "Ġprofil es", + "h ook", + "ho ok", + "hoo k", + "Re ducer", + "Red ucer", + "Reduc er", + "Reduce r", + "_ FUNC", + "_F UNC", + "_FUN C", + "Ġ navigate", + "Ġn avigate", + "Ġnav igate", + "Ġnavig ate", + "st rlen", + "str len", + "Ġh orm", + "Ġhor m", + "Ġho rm", + "á ŀ", + "Ġ SR", + "ĠS R", + ". boot", + ".b oot", + ".bo ot", + "Ġ digest", + "Ġd igest", + "Ġdi gest", + "Ġdig est", + "ĉ header", + "ĉhead er", + ". findOne", + ".find One", + "æ ģ", + "Db Type", + "n ia", + "ni a", + "_ merge", + "_m erge", + "Ġd onne", + "Ġdon ne", + "Ġdonn e", + "/ Getty", + "/G etty", + "_ CHAR", + "_CH AR", + "Ġ bands", + "Ġb ands", + "Ġband s", + "Ġban ds", + "Ġba nds", + ". URL", + ".U RL", + ".UR L", + "art ial", + "arti al", + "Ġ freq", + "Ġf req", + "Ġfr eq", + "Ġfre q", + "Ġs ist", + "Ġsi st", + "Ġsis t", + "N g", + "Ġrender ing", + "Ġrend ering", + "\\ Core", + "\\C ore", + "Widget s", + "Ġ VA", + "ĠV A", + "Ġactiv ists", + "Ġactivist s", + "S te", + "St e", + "= _", + "a lla", + "al la", + "all a", + "St amp", + "Ġ loads", + "Ġlo ads", + "Ġload s", + "Ġloa ds", + "Ġ xx", + "Ġx x", + "Ġ Learning", + "ĠL earning", + "ĠLe arning", + "ĠLearn ing", + "ĠLear ning", + ". Mvc", + ".M vc", + "u ir", + "ui r", + "( \"$", + "(\" $", + "Ġ connecting", + "Ġconnect ing", + "Read Only", + "u ru", + "ur u", + "ĠE ag", + "ĠEa g", + "B IT", + "BI T", + "_ DEL", + "_D EL", + "_DE L", + "å §", + "arr ass", + "arra ss", + "ex ternal", + "ext ernal", + "extern al", + "exter nal", + "Ġ YOUR", + "ĠY OUR", + "ĠYOU R", + "ĠB rew", + "ĠBr ew", + "ĠBre w", + "Ġ Five", + "ĠF ive", + "ĠFi ve", + "Ġ resize", + "Ġre size", + "Ġres ize", + "i gid", + "ig id", + "igi d", + "e ration", + "er ation", + "era tion", + "6 53", + "65 3", + "Ġ Ñį", + "ĠÑ į", + "5 36", + "53 6", + "åĬ ł", + "0 39", + "03 9", + "Ġ Catch", + "ĠC atch", + "ĠCat ch", + "Ù ģ", + "Ġ Leon", + "ĠL eon", + "ĠLe on", + "ĠLeo n", + "a mil", + "am il", + "ami l", + ". Body", + ".B ody", + "C lip", + "Cl ip", + "Cli p", + "/ list", + "/l ist", + "/li st", + ". br", + ".b r", + "Edit Text", + "ĉ db", + "ĉd b", + ". Game", + ".G ame", + "( BuildContext", + "(Build Context", + "back end", + ". Red", + ".R ed", + ".Re d", + "f acebook", + "face book", + "5 29", + "52 9", + ". urls", + ".url s", + ".ur ls", + "m r", + "rol led", + "roll ed", + "- ------", + "-- -----", + "---- ---", + "--- ----", + "----- --", + "------ -", + "Ġint ervention", + "Ġinter vention", + "Ġinterven tion", + "Ġinterv ention", + "Ġret irement", + "Ġretire ment", + "Ġretir ement", + "Ġ Kit", + "ĠK it", + "ĠKi t", + "Ġ PRE", + "ĠP RE", + "ĠPR E", + "Upper Case", + "Ġ Socket", + "ĠS ocket", + "ĠSo cket", + "ĠSoc ket", + "Ġ :-", + "Ġ: -", + "Ġstud ying", + "Ġstudy ing", + "Ġ Metro", + "ĠM etro", + "ĠMe tro", + "ĠMet ro", + "ar ded", + "ard ed", + "arde d", + "Ġcon versations", + "Ġconvers ations", + "Ġconversation s", + "C alled", + "Call ed", + "Cal led", + "Ġex amine", + "Ġexam ine", + "ert ificate", + ". gz", + ".g z", + "- responsive", + "-res ponsive", + "Ġ refund", + "Ġre fund", + "Ġref und", + "_ network", + "_n etwork", + "_net work", + "0 26", + "02 6", + "all owed", + "allow ed", + "allo wed", + "em pt", + "emp t", + "Ġme als", + "Ġmeal s", + "C ategories", + "Ġtravel ing", + "Ġtrav eling", + "Ġ kg", + "Ġk g", + "Ġsh ame", + "Ġsha me", + "Ġsham e", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "Ġexplicit ly", + "Ġmath ematic", + "Ġ Suite", + "ĠS uite", + "ĠSu ite", + "ĠSuit e", + "Ġ RGB", + "ĠR GB", + "ĠRG B", + "****** /", + "***** */", + "Ġm ixture", + "Ġmix ture", + "l earning", + "le arning", + "lear ning", + "learn ing", + ". template", + ".t emplate", + ".temp late", + ".tem plate", + "at ts", + "att s", + "w x", + "ĉ ctx", + "ĉc tx", + "ĉct x", + ". properties", + ".p roperties", + ".prop erties", + "Ġdr inks", + "Ġdrink s", + "Ġ Either", + "ĠE ither", + "set Text", + ". getData", + ".get Data", + ".getD ata", + ". zip", + ".z ip", + "Ġreve als", + "Ġreveal s", + "< table", + ".Ċ", + "/> .Ċ", + "/>. Ċ", + "Ġr anked", + "Ġrank ed", + "Ġran ked", + "_ impl", + "_i mpl", + "_im pl", + "_imp l", + "Ġ Handles", + "ĠH andles", + "ĠHand les", + "ĠHandle s", + "Ġhost ed", + "Ġho sted", + "Ġhos ted", + "Ġ updating", + "Ġup dating", + "Ġupd ating", + "al bum", + "é Ŀ", + "Ġ shader", + "Ġsh ader", + "Ġsha der", + "Ġshade r", + "Ed itors", + "Edit ors", + "Editor s", + "- round", + "-r ound", + "-ro und", + "[ ]{", + "[] {", + "Ġ sep", + "Ġs ep", + "Ġse p", + "Ġ Hi", + "ĠH i", + "T EM", + "TE M", + "look up", + "loo kup", + ". man", + ".m an", + ".ma n", + "_ INPUT", + "_IN PUT", + "Ġthreat ened", + "Ġthreaten ed", + "_ IMPORT", + "_IM PORT", + "_IMP ORT", + "Ġ drops", + "Ġd rops", + "Ġdr ops", + "Ġdrop s", + "Ġdro ps", + "r uit", + "ru it", + "s id", + "si d", + "b oth", + "bo th", + "bot h", + "Ġ Excel", + "ĠEx cel", + "ĠExc el", + "Ġ jer", + "Ġj er", + "Ġje r", + "ord inary", + "ordin ary", + "е й", + "еР¹", + "V IEW", + "VI EW", + "re ply", + "rep ly", + "Ġ ):Ċ", + "Ġ) :Ċ", + "Ġ): Ċ", + "col ors", + "color s", + "colo rs", + "ver ified", + "_ Tr", + "_T r", + "_ parse", + "_p arse", + "_par se", + "_pars e", + "Ġcon gress", + "Ġcongr ess", + "Ġcong ress", + "6 17", + "61 7", + "P romise", + "Pro mise", + "Prom ise", + "i nts", + "in ts", + "int s", + "Ġ Mother", + "ĠM other", + "ĠMo ther", + "ĠMot her", + ". Api", + ".A pi", + ".Ap i", + "Ġ Duration", + "ĠD uration", + "ĠDu ration", + "ĠDur ation", + "Ġ firstName", + "Ġfirst Name", + "inherit doc", + "ĠM ars", + "ĠMar s", + "ĠMa rs", + "Ġ apr", + "Ġa pr", + "Ġap r", + "O DY", + "OD Y", + "Ġvis its", + "Ġvisit s", + "6 31", + "63 1", + "Ġhe aling", + "Ġheal ing", + "let ters", + "letter s", + "lette rs", + "lett ers", + ") ));čĊ", + ")) );čĊ", + "))) ;čĊ", + "))); čĊ", + "f uture", + "fu ture", + ". Framework", + ".F ramework", + ".Frame work", + "Ġk iss", + "Ġki ss", + "Ġinv olve", + "Ġinvol ve", + "Ġ silent", + "Ġs ilent", + "Ġsil ent", + "ad ows", + "ado ws", + "adow s", + "Ġany body", + "s ch", + "sc h", + "6 90", + "69 0", + "Ġsol ely", + "Ġsole ly", + "- img", + "-i mg", + "-im g", + "Ġ propri", + "Ġp ropri", + "Ġpro pri", + "Ġprop ri", + "Ġin struct", + "Ġinstr uct", + "Ġ licenses", + "Ġlicense s", + "Ġlic enses", + "Ġlicens es", + "Ġ meth", + "Ġm eth", + "Ġme th", + "Ġmet h", + "Ġcon dem", + "Ġcond em", + "Ġ Domain", + "ĠD omain", + "ĠDo main", + "ĠDom ain", + "ĠH arris", + "ĠHar ris", + "ĠHarr is", + "Ġs Ã¥", + "CE PT", + "B atch", + "Bat ch", + "@ extends", + "ĠCONTR IBUT", + ". DataFrame", + ".Data Frame", + "4 72", + "47 2", + "_ packet", + "_p acket", + "_pack et", + "_pa cket", + "re cision", + "rec ision", + "Ġf ocusing", + "Ġfocus ing", + "Ġfoc using", + ". ht", + ".h t", + "__ \":Ċ", + ": Get", + "Ġ KC", + "ĠK C", + "Ġp assage", + "Ġpass age", + "Ġpas sage", + "S egment", + "Se gment", + "Seg ment", + "_ center", + "_c enter", + "_cent er", + "-z A", + "_ BL", + "_B L", + "Ġcon vin", + "Ġconv in", + "Ġ classified", + "Ġclass ified", + "Ġ NSMutable", + "ĠNS Mutable", + "_ ap", + "_a p", + "t ile", + "til e", + "ti le", + "Rect angle", + "4 92", + "49 2", + "( nums", + "(n ums", + "(num s", + "v ens", + "ve ns", + "ven s", + "Ġ UIButton", + "ĠUI Button", + "ĠUIB utton", + "ĠF eder", + "ĠFe der", + "ĠFed er", + "a mo", + "am o", + "Ġ outline", + "Ġout line", + "Ġ Parser", + "ĠP arser", + "ĠPar ser", + "ĠParse r", + "ĠPars er", + "Ġ âī", + "Ġâ ī", + "Ġ Works", + "ĠW orks", + "ĠWork s", + "ĠWor ks", + ". Schema", + ".S chema", + "Ġeng ines", + "Ġengine s", + "6 37", + "63 7", + "5 63", + "56 3", + "_ common", + "_com mon", + "_comm on", + "5 42", + "54 2", + "_ old", + "_o ld", + "Ġset ContentView", + "ĠsetContent View", + "Ġ ///<", + "Ġ// /<", + "Ġ/// <", + "Ġ BT", + "ĠB T", + "f m", + "Ġd ivers", + "Ġdi vers", + "Ġdiv ers", + "Ġdive rs", + "Ġdiver s", + "_ weights", + "_weight s", + "_we ights", + "e mark", + "em ark", + "ema rk", + "Ġ ACT", + "ĠA CT", + "ĠAC T", + "Ġpro portion", + "Ġprop ortion", + "Ġproport ion", + "Ġpropor tion", + "over lay", + ". dirname", + ".dir name", + "Ġ Git", + "ĠG it", + "ĠGi t", + "_ REFERENCE", + "_REF ERENCE", + "_REFER ENCE", + "< >", + "l b", + "_ rule", + "_r ule", + "_ru le", + "è´ ¥", + "Ġ Putin", + "ĠP utin", + "ĠPut in", + "ĠPu tin", + "Ġsleep ing", + "Ġsle eping", + "Ġslee ping", + "( ):čĊ", + "() :čĊ", + "(): čĊ", + "Ġ preserve", + "Ġp reserve", + "Ġpre serve", + "Ġpres erve", + "Ġpar liament", + "Ġ Looking", + "ĠLo oking", + "ĠLook ing", + "Ġp icking", + "Ġpick ing", + "Ġpic king", + "Ġ Dispatch", + "ĠDis patch", + "ĠDisp atch", + "Ġs lip", + "Ġsl ip", + "ë ĵ", + "ĠL yn", + "ĠLy n", + "_ signal", + "_s ignal", + "_sign al", + "_sig nal", + "config uration", + "ĠP itt", + "ĠPi tt", + "ĠPit t", + "4 91", + "49 1", + "a den", + "ad en", + "ade n", + "pro cedure", + "Ġenthus i", + "Ġenth usi", + "f ight", + "fig ht", + "fi ght", + "Ġ Consider", + "ĠCons ider", + "Ġt orn", + "Ġto rn", + "Ġtor n", + "Conn ected", + "Connect ed", + ". cos", + ".c os", + ".co s", + "_ groups", + "_g roups", + "_group s", + "Ġ Think", + "ĠTh ink", + "ĠThi nk", + "ĠThin k", + "Ġdel iber", + "Ġre sid", + "Ġres id", + "work ing", + "wor king", + ". columns", + ".column s", + "Ġ Called", + "ĠC alled", + "ĠCal led", + "ĠCall ed", + "Ġ eslint", + "Ġes lint", + "Ġesl int", + "> \",", + ">\" ,", + "_ DOWN", + "_D OWN", + "_DO WN", + "h ist", + "hi st", + "his t", + "Ġ Advanced", + "ĠAd vanced", + "ĠAdv anced", + "ĠAdvance d", + "Ġre wards", + "Ġreward s", + "Ġrew ards", + "a ctors", + "act ors", + "ac tors", + "actor s", + "Ġsil ence", + "4 79", + "47 9", + "Ġm yth", + "Ġmy th", + "Ġn eur", + "Ġne ur", + "Ġneu r", + "5 19", + "51 9", + "Ġ auction", + "Ġa uction", + "Ġau ction", + "Ġauc tion", + ". GetString", + ".Get String", + "e ks", + "ek s", + "( project", + "(pro ject", + "(proj ect", + "5 98", + "59 8", + "ĉ msg", + "ĉm sg", + "ĉms g", + "ĉ output", + "ĉout put", + "Ġcomplaint s", + "Ġcomplain ts", + "5 51", + "55 1", + ", S", + "Ġ tbl", + "Ġt bl", + "Ġtb l", + "Ġ ,ĊĊ", + "Ġ, ĊĊ", + "Ġ,Ċ Ċ", + "r iors", + "ri ors", + "rior s", + "rio rs", + "ah ren", + "ahr en", + "Ġlaw yers", + "Ġlawy ers", + "Ġlawyer s", + "re dux", + "red ux", + "_ symbol", + "_s ymbol", + "_sym bol", + "o ffee", + "of fee", + "off ee", + "_ RESULT", + "_RES ULT", + "( Name", + "(N ame", + "U TC", + "UT C", + ". currentTime", + ".current Time", + "Ġorgan is", + ". arg", + ".a rg", + ".ar g", + "5 33", + "53 3", + "Ġmin im", + "Ġmi nim", + "Ġmini m", + "w ick", + "wi ck", + "Ġrece ives", + "Ġreceive s", + "B alance", + "Bal ance", + "Ġspe aks", + "Ġspeak s", + "Ġ Days", + "ĠD ays", + "ĠDay s", + "ĠDa ys", + "Ġ Below", + "ĠB elow", + "ĠBe low", + "ĠBel ow", + "4 83", + "48 3", + "t ipo", + "ti po", + "tip o", + "P resent", + "Pre sent", + "Pres ent", + "Ġre serv", + "Ġres erv", + "h p", + "Ġ rit", + "Ġr it", + "Ġri t", + "_ RIGHT", + "_R IGHT", + "- -)", + "-- )", + "Ġchair man", + "7 81", + "78 1", + "D IS", + "DI S", + "Ġ BOOST", + "ĠBO OST", + "Ġex periments", + "Ġexper iments", + "Ġexperi ments", + "Ġexperiment s", + "6 87", + "68 7", + "_ _);Ċ", + "__ );Ċ", + "__) ;Ċ", + "__); Ċ", + "Ġ stamp", + "Ġst amp", + "Ġsta mp", + "Ġf ert", + "Ġfe rt", + "Ġfer t", + "Ġf ond", + "Ġfo nd", + "Ġfon d", + "T er", + "Te r", + "el ve", + "u ren", + "ur en", + "ure n", + "+ i", + "end ency", + "ende ncy", + "enden cy", + "Ġvirtual ly", + "Ġvirt ually", + ". ..\"", + ".. .\"", + "... \"", + "ï½ ŀ", + "9 25", + "92 5", + "- cent", + "-c ent", + "-ce nt", + "_ unique", + "_un ique", + "Ġ pricing", + "Ġp ricing", + "Ġpr icing", + "Ġpri cing", + "m ic", + "mi c", + "R ESH", + "RE SH", + "RES H", + "Ġ :::", + "Ġ: ::", + "Ġ:: :", + "Ġ annotation", + "Ġan notation", + "Ġann otation", + "Ġannot ation", + "Ġ Circle", + "ĠC ircle", + "ĠCirc le", + "ĠCir cle", + "ong odb", + "ongo db", + "i tas", + "it as", + "ita s", + "Ġ %(", + "Ġ% (", + "( component", + "(com ponent", + "(comp onent", + "Ġ об", + "Ġо б", + "( port", + "(p ort", + "(po rt", + "- hour", + "-h our", + ". obj", + ".o bj", + ".ob j", + "L BL", + "LB L", + "Ġ jury", + "Ġj ury", + "Ġju ry", + "Ġjur y", + "G BT", + "GB T", + "Ġ spy", + "Ġs py", + "Ġsp y", + "Ġ Professional", + "ĠProf essional", + "ĠProfession al", + "Ġ\" \";ĊĊ", + "Ġ\"\" ;ĊĊ", + "Ġ\"\";Ċ Ċ", + "Ġ\"\"; ĊĊ", + "Ġstr iking", + "Ġstri king", + "Ġd iscrimination", + "Ġdiscrim ination", + "Ġdiscrimin ation", + "Ġp ays", + "Ġpay s", + "Ġpa ys", + "9 37", + "93 7", + "l ict", + "lic t", + "li ct", + "en tes", + "ent es", + "ente s", + "Ġth rowing", + "Ġthrow ing", + "Ġthr owing", + "Ġthro wing", + "Ġ Plugin", + "ĠPl ugin", + "ĠPlug in", + "( def", + "(d ef", + "(de f", + "Ġ RuntimeException", + "ĠRuntime Exception", + "Ġ Migration", + "ĠM igration", + "ĠMig ration", + "5 99", + "59 9", + "Ġ dic", + "Ġd ic", + "Ġdi c", + "b ag", + "ba g", + "o nia", + "on ia", + "oni a", + "Ġcor ruption", + "Ġcorrupt ion", + "7 04", + "70 4", + "( Map", + "(M ap", + "Ġp rz", + "Ġpr z", + ". dto", + ".d to", + ".dt o", + "Ġac quire", + "Ġacqu ire", + "State ToProps", + "Ġl oving", + "Ġlo ving", + "Ġlov ing", + "о ж", + "оР¶", + "_ pattern", + "_p attern", + "_pat tern", + "Ġem otions", + "Ġemot ions", + "Ġemotion s", + "Ġ publisher", + "Ġp ublisher", + "Ġpublish er", + "Ġpubli sher", + "_ be", + "_b e", + "Ġc ouples", + "Ġco uples", + "Ġcou ples", + "Ġcouple s", + "Ġcoup les", + "4 98", + "49 8", + "o j", + "Ġ Chart", + "ĠC hart", + "ĠCh art", + "ĠChar t", + "ĠCha rt", + "Ġt rop", + "Ġtr op", + "Ġtro p", + ". tool", + ".t ool", + ".to ol", + "Ġestablish ment", + "Ġ dol", + "Ġd ol", + "Ġdo l", + "6 54", + "65 4", + "Ġ tower", + "Ġt ower", + "Ġto wer", + "Ġtow er", + "Ġ lane", + "Ġl ane", + "Ġla ne", + "Ġlan e", + "ĠSy dney", + "Ġf illing", + "Ġfil ling", + "Ġfill ing", + "claim ed", + "cla imed", + "6 44", + "64 4", + "Ġdialog ue", + "Ġdia logue", + "Ġdial ogue", + "Ġcon vention", + "Ġconv ention", + "Ġconven tion", + "Ġconvent ion", + "bo oking", + "book ing", + "boo king", + "par ency", + "pare ncy", + "paren cy", + "æ ±", + "Ġ Generic", + "ĠG eneric", + "ĠGener ic", + "ĠGen eric", + "ĠGene ric", + "7 18", + "71 8", + "\\ Schema", + "\\S chema", + "4 82", + "48 2", + "6 18", + "61 8", + "Ġ ranges", + "Ġr anges", + "Ġrange s", + "Ġran ges", + "Ġrang es", + "/ ch", + "/c h", + "Ġ panels", + "Ġpanel s", + "Ġpa nels", + "Ġpan els", + "Ġpane ls", + "Ġr uled", + "Ġrule d", + "Ġru led", + "çĶ Ł", + ". ts", + ".t s", + "_ sets", + "_s ets", + "_set s", + "_se ts", + "Ġ cleanup", + "Ġc leanup", + "Ġclean up", + "Pre vious", + "Prev ious", + "Ġ Animal", + "ĠAn imal", + "ĠAnim al", + "6 07", + "60 7", + "( $(", + "($ (", + "ĠA ve", + "ĠAv e", + "ol lar", + "oll ar", + "olla r", + "0 28", + "02 8", + "_ eval", + "_e val", + "_ev al", + "ĉ Name", + "ĉN ame", + "( tree", + "(t ree", + "(tr ee", + "Ġ \"]", + "Ġ\" ]", + "5 71", + "57 1", + "Ġdu ties", + "Ġdut ies", + "= '/", + "=' /", + "Click ed", + "Cl icked", + "Ġdiffer ently", + "Ġdifferent ly", + "Ġ Clark", + "ĠCl ark", + "ĠClar k", + "ĠCla rk", + "Ġ dit", + "Ġd it", + "Ġdi t", + "olog ists", + "ologist s", + "ologi sts", + "Ġsy nd", + "Ġsyn d", + "Ġs ends", + "Ġse nds", + "Ġsend s", + "Ġsen ds", + "- known", + "-k nown", + "-know n", + "k b", + "Ġ Modal", + "ĠM odal", + "ĠMod al", + "ĠMo dal", + "it ative", + "itat ive", + "Ġr acing", + "Ġrac ing", + "Ġra cing", + "Ġhigh lights", + "Ġhighlight s", + "Ġ Simon", + "ĠS imon", + "ĠSim on", + "ĠSi mon", + "Ġ Captain", + "ĠCap tain", + "ĠCapt ain", + "ä¿ ¡", + "Ġ CB", + "ĠC B", + "con tin", + "cont in", + "conti n", + "a ran", + "ar an", + "ara n", + "Ġ physics", + "Ġph ysics", + "Ġphys ics", + "Ġphysic s", + "r etty", + "re tty", + "ret ty", + "rett y", + "e tal", + "et al", + "eta l", + ". md", + ".m d", + "ax ios", + "Ġspe akers", + "Ġspeak ers", + "Ġspeaker s", + "Ġ prep", + "Ġp rep", + "Ġpr ep", + "Ġpre p", + "Ġaw arded", + "Ġaward ed", + "ì§ Ģ", + "Ġ Corn", + "ĠC orn", + "ĠCo rn", + "ĠCor n", + "Ġ Nature", + "ĠN ature", + "ĠNa ture", + "ĠNat ure", + "ĠNatur e", + "UD IO", + "7 37", + "73 7", + "Ġ proj", + "Ġp roj", + "Ġpro j", + "Ġpr oj", + "- pre", + "-p re", + "-pr e", + "[ u", + "F eatures", + "Fe atures", + "Feature s", + "Feat ures", + "Ġ isEqual", + "Ġis Equal", + "B inary", + "Bin ary", + "s ig", + "si g", + "Ġcon fusion", + "Ġconf usion", + "5 46", + "54 6", + "5 68", + "56 8", + "Ġ Hat", + "ĠH at", + "ĠHa t", + "Ġkt ó", + ". configure", + ".con figure", + ".config ure", + ".conf igure", + "M ON", + "MO N", + "4 94", + "49 4", + "/ edit", + "/e dit", + "_ Add", + "_A dd", + "_Ad d", + ", true", + ",tr ue", + "5 41", + "54 1", + "Ġ cli", + "Ġc li", + "Ġcl i", + "Error Message", + "- loader", + "-l oader", + "-lo ader", + "-load er", + "Dim ensions", + "Dimension s", + "ulti ply", + "ultip ly", + "Ġ {!!", + "Ġ{ !!", + "Ġ{! !", + "Ġ SqlCommand", + "ĠSql Command", + "Ġ spoken", + "Ġsp oken", + "Ġspoke n", + "Ġspo ken", + "Ġ pics", + "Ġp ics", + "Ġpi cs", + "Ġpic s", + "Ġ toy", + "Ġt oy", + "Ġto y", + "( Key", + "(K ey", + "Ġ Loop", + "ĠL oop", + "ĠLo op", + "Ø ¨", + "E ATURE", + "EA TURE", + "in ction", + "inc tion", + "inct ion", + "_ setup", + "_set up", + "w rapper", + "wrap per", + "wr apper", + "Ġt ong", + "Ġto ng", + "Ġton g", + "c ular", + "cul ar", + "cu lar", + "O pt", + "Op t", + ". Pl", + ".P l", + "= \",", + "=\" ,", + "( length", + "(l ength", + "(len gth", + "(le ngth", + "u mn", + "um n", + "Ġ chrom", + "Ġch rom", + "Ġchr om", + "Ġs event", + "Ġse vent", + "Ġseven t", + "Ġsev ent", + "Ġ IllegalArgumentException", + "ĠIl legalArgumentException", + "ĠIllegal ArgumentException", + "4 78", + "47 8", + "ĉ start", + "ĉst art", + "Ġbe gun", + "Ġbeg un", + "CE PTION", + "CEPT ION", + "d ataset", + "data set", + "dat aset", + "datas et", + "8 25", + "82 5", + "Ġ Failed", + "ĠF ailed", + "ĠFa iled", + "ĠFail ed", + "c ols", + "co ls", + "col s", + "4 59", + "45 9", + "Ġk nee", + "Ġkn ee", + "Ġkne e", + "i more", + "im ore", + "imo re", + ". splice", + ".sp lice", + "s hell", + "sh ell", + "she ll", + "ig gers", + "igger s", + "igg ers", + "Ġ themes", + "Ġth emes", + "Ġthe mes", + "Ġthem es", + "Ġtheme s", + "9 95", + "99 5", + "Ġ DJ", + "ĠD J", + "Ġ Assistant", + "ĠAss istant", + "ĠAssist ant", + "- $", + "M aybe", + "May be", + "Ġ ordering", + "Ġorder ing", + "Ġord ering", + "ĠInt elligence", + "ĠIntelli gence", + "ĠMass achusetts", + "Ġf ailing", + "Ġfa iling", + "Ġfail ing", + "el son", + "els on", + "G reat", + "Gr eat", + "Gre at", + "= i", + ". rest", + ".re st", + ".r est", + ".res t", + "Ġ invite", + "Ġinv ite", + "Ġinvit e", + "- disable", + "-d isable", + "-dis able", + ". GroupBox", + ".Group Box", + "âĢĻ est", + "âĢĻe st", + "âĢĻes t", + "Ġt ackle", + "Ġtack le", + "Ġtac kle", + "g v", + "et ter", + "ette r", + "ett er", + "Ġ ),čĊ", + "Ġ) ,čĊ", + "Ġ), čĊ", + "_ rules", + "_r ules", + "_rule s", + "_ru les", + ". warn", + ".w arn", + "function s", + "fun ctions", + "ĠChrist ians", + "ĠChristian s", + "Ġb acked", + "Ġback ed", + "Ġbac ked", + "Ġ slider", + "Ġs lider", + "Ġsl ider", + "Ġslide r", + "Ġslid er", + "Ġenjoy ing", + "Ġenjo ying", + "n est", + "ne st", + "nes t", + "Ġh ij", + "Ġhi j", + "_ ms", + "_m s", + "/ /*", + "// *", + "An notations", + "Annotation s", + "Ġ Variables", + "ĠVariable s", + "ĠVari ables", + "< V", + "( server", + "(s erver", + "(serv er", + "Ġ Oracle", + "ĠOr acle", + "e lements", + "el ements", + "element s", + "ele ments", + "elem ents", + "Ġ organisation", + "Ġorgan isation", + "Ġorganis ation", + "_ pointer", + "_point er", + "_po inter", + "Ġ Headers", + "ĠHe aders", + "ĠHead ers", + "ĠHeader s", + "[ d", + "Ġ deadline", + "Ġdead line", + "i ssa", + "is sa", + "iss a", + "Ġ knife", + "Ġkn ife", + "Ġ NASA", + "ĠN ASA", + "ĠNAS A", + "ĠNA SA", + "Ġ Height", + "ĠH eight", + "ĠHe ight", + "7 84", + "78 4", + "Ġ Async", + "ĠA sync", + "ĠAs ync", + "Ġ venue", + "Ġven ue", + ". dom", + ".d om", + ".do m", + "bour ne", + "bou rne", + "ĠH awai", + "ĠHaw ai", + "Ġ memo", + "Ġm emo", + "Ġme mo", + "Ġmem o", + "i ctions", + "ict ions", + "iction s", + "Ġsur veillance", + "Ġsurve illance", + "o mi", + "om i", + "/ assets", + "/as sets", + "5 87", + "58 7", + "Ġ edu", + "Ġe du", + "Ġed u", + "Ä Ľ", + "Ġr oster", + "Ġro ster", + "Ġros ter", + "Ġrost er", + "Ġh ired", + "Ġhi red", + "Ġhire d", + "Ġ Tok", + "ĠT ok", + "ĠTo k", + "Ġ placement", + "Ġpl acement", + "Ġplace ment", + "Ġplac ement", + "ur ations", + "uration s", + "urat ions", + "Ġ setState", + "Ġset State", + "ĠMag azine", + "Ġhor ror", + "Ġho rror", + "Ġhorr or", + "T ry", + "Tr y", + "Ġ lag", + "Ġl ag", + "Ġla g", + "Ġ Everyone", + "ĠEvery one", + "t hur", + "th ur", + ") );čĊčĊ", + ")) ;čĊčĊ", + "));čĊ čĊ", + ")); čĊčĊ", + ". return", + ".re turn", + ".r eturn", + ".ret urn", + "Ġsy mp", + "Ġsym p", + "âĸĪ âĸĪ", + "Ġn ights", + "Ġnight s", + "work er", + "wor ker", + "Ġ ale", + "Ġa le", + "Ġal e", + "ennes see", + ". step", + ".s tep", + ".st ep", + "Ġs ynchronized", + "Ġsynchron ized", + "Ġsynchronize d", + "4 87", + "48 7", + "o uri", + "ou ri", + "our i", + "D oes", + "Do es", + ". change", + ".ch ange", + "f on", + "fo n", + ". setBackground", + ".set Background", + "ir cular", + "irc ular", + "4 76", + "47 6", + "+ -", + "ĠC IA", + "ĠCI A", + "7 29", + "72 9", + "Ġ Jane", + "ĠJ ane", + "ĠJan e", + "ĠJa ne", + "Ġ Similar", + "ĠS imilar", + "ĠSim ilar", + "- I", + "level and", + "lev eland", + "Ġpro spect", + "Ġpros pect", + "_ found", + "_f ound", + "ĉ color", + "ĉc olor", + "ĉcol or", + ".D iagnostics", + ".Di agnostics", + "Ġ announce", + "Ġann ounce", + "Ġannounc e", + "Ġanno unce", + "Ġass umes", + "Ġassum es", + "Ġassume s", + "/ tr", + "/t r", + "Ġ bd", + "Ġb d", + "9 87", + "98 7", + "Ġ Carbon", + "ĠC arbon", + "ĠCar bon", + "ĠCarb on", + "Ġanal ys", + "Ġanaly s", + "Ġana lys", + "5 64", + "56 4", + ". dest", + ".d est", + ".de st", + ".des t", + "n ik", + "ni k", + "Ġ Lie", + "ĠL ie", + "ĠLi e", + "- index", + "-in dex", + "-ind ex", + "Draw able", + "Ġ TAG", + "ĠT AG", + "ĠTA G", + "Ġ triangle", + "Ġt riangle", + "Ġtr iangle", + "Ġtri angle", + "Ġtriang le", + "_ FLOAT", + "_F LOAT", + "ĉ ĉĠĠĠĠĠ", + "ĉĉ ĠĠĠĠĠ", + "ĉĉĠĠĠ ĠĠ", + "ĉĉĠ ĠĠĠĠ", + "ĉĉĠĠ ĠĠĠ", + "ĉĉĠĠĠĠ Ġ", + ". black", + ".b lack", + ".bl ack", + "v ue", + "vu e", + "c uracy", + "cur acy", + "cura cy", + "Ġa ffects", + "Ġaff ects", + "Ġaffect s", + "9 06", + "90 6", + "Ġsur ely", + "Ġsure ly", + "S lider", + "Sl ider", + "Slide r", + "u ki", + "uk i", + "c ery", + "ce ry", + "cer y", + "Ġ unter", + "Ġun ter", + "Ġunt er", + ". profile", + ".pro file", + ".pr ofile", + ".prof ile", + "or don", + "ord on", + "ordo n", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "le ave", + "lea ve", + "Ġsmart phone", + "g ie", + "gi e", + "Ġcon spir", + "Ġcons pir", + "Ġ tutorial", + "Ġt utorial", + "Ġtut orial", + "Ġtutor ial", + "Ġtuto rial", + "ç± »", + "Ġ cab", + "Ġc ab", + "Ġca b", + "7 65", + "76 5", + "Ġ Summary", + "ĠSum mary", + "* ĊĊ", + "*Ċ Ċ", + "ä h", + "\" This", + "\"T his", + "Ġ slides", + "Ġsl ides", + "Ġslide s", + "Ġslid es", + "\" ", + "() >", + "c ycle", + "cy cle", + "cycl e", + "ĠB ull", + "ĠBul l", + "ĠBu ll", + "p aths", + "path s", + "pat hs", + "pa ths", + "Ġu np", + "Ġun p", + "Ġview DidLoad", + "_ Model", + "_M odel", + "_Mode l", + "_Mod el", + "Ġ assertTrue", + "Ġassert True", + "Ġ rated", + "Ġr ated", + "Ġrate d", + "Ġrat ed", + "Ġra ted", + "De cl", + "Dec l", + "ver ted", + "vert ed", + "verte d", + "Ġ Dat", + "ĠD at", + "ĠDa t", + "b rew", + "br ew", + "bre w", + "Ġpoint ing", + "M s", + "Ġ Pointer", + "ĠPoint er", + "ĠPo inter", + ") '", + "_ non", + "_n on", + "_no n", + "5 27", + "52 7", + "Ġ SEC", + "ĠS EC", + "ĠSE C", + "Ġ yeah", + "Ġy eah", + "Ġye ah", + "g ency", + "ge ncy", + "gen cy", + "initial ize", + "f ly", + "fl y", + "7 11", + "71 1", + "[ pos", + "[p os", + ", g", + "T ele", + "Te le", + "Tel e", + "0 34", + "03 4", + "Ġj oke", + "Ġjo ke", + "Ġ clause", + "Ġcl ause", + "Ġcla use", + ". findById", + ".find ById", + ".findBy Id", + "e nes", + "en es", + "ene s", + "( instance", + "(in stance", + "(inst ance", + "6 26", + "62 6", + " £", + "9 15", + "91 5", + "Ġs lic", + "Ġsl ic", + "_ home", + "_h ome", + "_hom e", + "Ġ */}Ċ", + "Ġ*/ }Ċ", + "_ pages", + "_p ages", + "_page s", + "_pag es", + "_pa ges", + "( service", + "(s ervice", + "(serv ice", + "9 05", + "90 5", + "R P", + "Ġ Among", + "ĠA mong", + "ĠAm ong", + ". getCurrent", + ".get Current", + ".getC urrent", + "8 06", + "80 6", + "ã Ĥ¹", + "ãĤ ¹", + "Ġs lee", + "Ġsl ee", + "Ġsle e", + "= [Ċ", + ">[ Ċ", + "o ler", + "ol er", + "ole r", + "Ġli bert", + "Ġlib ert", + "Ġliber t", + "Ġ `Ċ", + "Ġ` Ċ", + "Ġw enn", + "Ġwe nn", + "Ġwen n", + "l ated", + "la ted", + "late d", + "lat ed", + "Ġ immune", + "Ġimm une", + "Ġimmun e", + "( Node", + "(N ode", + "Ġ Problem", + "ĠPro blem", + "ĠProb lem", + "ĠProble m", + "Ġ Abs", + "ĠA bs", + "ĠAb s", + "l ogs", + "lo gs", + "log s", + "Ġ ../", + "Ġ. ./", + "Ġ.. /", + "Ġ ADC", + "ĠA DC", + "ĠAD C", + "Ġ }}\">Ċ", + "Ġ} }\">Ċ", + "Ġ}} \">Ċ", + "Ġ}}\" >Ċ", + "Ġ}}\"> Ċ", + "> ');Ċ", + ">' );Ċ", + ">') ;Ċ", + ">'); Ċ", + "= b", + "Ġ Wind", + "ĠW ind", + "ĠWin d", + "ĠWi nd", + "l ahoma", + "lah oma", + "Ġ allocate", + "Ġal locate", + "Ġall ocate", + "Ġalloc ate", + "Ġallo cate", + "o rian", + "or ian", + "oria n", + "ori an", + "Ġpr escription", + "Ġpre scription", + "Ġpres cription", + "- quality", + "-q uality", + "-qu ality", + "Ġ Mayor", + "ĠMay or", + "ĠMa yor", + "ĠMayo r", + "8 55", + "85 5", + "in ely", + "ine ly", + "inel y", + "end foreach", + "Ġ Complex", + "ĠCom plex", + "ĠComp lex", + "ĠComple x", + "k om", + "ko m", + "7 09", + "70 9", + "T Y", + "7 90", + "79 0", + "] ].", + "]] .", + ". Style", + ".St yle", + "_ many", + "_m any", + "_man y", + "_ma ny", + "', '$", + "',' $", + "Ġbar rier", + "Ġbarr ier", + "Ġ Fetch", + "ĠF etch", + "ĠFet ch", + "Ġ Marvel", + "ĠMar vel", + "Ġres ist", + "о го", + "ог о", + "b idden", + "bi dden", + "bid den", + "Ġ Runnable", + "ĠR unnable", + "ĠRun nable", + ": false", + ":f alse", + "8 99", + "89 9", + "Ġbuild s", + "Ġ Stage", + "ĠSt age", + "ĠSta ge", + "Ġ dub", + "Ġd ub", + "Ġdu b", + "em po", + "emp o", + ". site", + ".s ite", + ".si te", + "5 58", + "55 8", + "; ĊĊĊĊ", + ";Ċ ĊĊĊ", + ";ĊĊ ĊĊ", + ";ĊĊĊ Ċ", + "9 94", + "99 4", + "Ġ Denver", + "ĠDen ver", + "Ġre vel", + "Ġrev el", + "Ġreve l", + "Ġtrigger ed", + "Ġ dice", + "Ġd ice", + "Ġdi ce", + "Ġdic e", + "_ fail", + "_f ail", + "_fa il", + "Ġ gc", + "Ġg c", + "8 33", + "83 3", + "5 89", + "58 9", + "ĉ X", + "Ġ Throwable", + "ĠTh rowable", + "ĠThrow able", + "7 75", + "77 5", + ". router", + ".r outer", + ".route r", + ".ro uter", + "ĠRe volution", + "ĠRev olution", + "ÑĢ а", + "_ NON", + "_N ON", + "_NO N", + "0 55", + "05 5", + "Ł ¥", + "5 78", + "57 8", + "Ġ elder", + "Ġe lder", + "Ġel der", + "Ġelde r", + "Ġab road", + "Ġ е", + "ĠÐ µ", + "Ġ Adult", + "ĠAd ult", + "b lr", + "bl r", + "g lyphicon", + "glyph icon", + "6 13", + "61 3", + "Ġprom oting", + "Ġpromot ing", + "Ġpromo ting", + "Ġ iz", + "Ġi z", + "Ġ Solid", + "ĠS olid", + "ĠSo lid", + "ĠSol id", + "6 45", + "64 5", + "_ loader", + "_l oader", + "_lo ader", + "_load er", + "ear ly", + ". enabled", + ".en abled", + ".enable d", + "- edit", + "-e dit", + "-ed it", + "Ġ UL", + "ĠU L", + "_ play", + "_p lay", + "_pl ay", + "Ġ Interrupt", + "ĠInt errupt", + "ĠInter rupt", + "ĠInterr upt", + "Ġadv antages", + "Ġadvant ages", + "Ġadvantage s", + "u cle", + "uc le", + "Ġmechan ical", + "Ġmechanic al", + "Ġmech anical", + ".table LayoutPanel", + "Ġ Working", + "ĠWork ing", + "ĠWor king", + "Ġ anonymous", + "Ġan onymous", + "Ġanonym ous", + "Ġanon ymous", + "R ating", + "Ra ting", + "ig ious", + "igi ous", + "_ phone", + "_p hone", + "_ph one", + ".addAction Listener", + "Ġf ran", + "Ġfr an", + "Ġfra n", + "un den", + "und en", + "unde n", + "Ġ *)&", + "Ġ* )&", + "Ġ*) &", + "_ bool", + "_b ool", + "_bo ol", + "ul ative", + "Ġ cone", + "Ġc one", + "Ġcon e", + "Ġco ne", + "Ġ Mult", + "ĠM ult", + "ĠMu lt", + "ĠMul t", + "Ġm ö", + "Ġ Forward", + "ĠFor ward", + "] ):Ċ", + "]) :Ċ", + "]): Ċ", + "Ġconvin ced", + "Ġconvince d", + "Ġconvinc ed", + "act ed", + "ac ted", + "6 43", + "64 3", + "ãģ ĵ", + "Ġ Configure", + "ĠCon figure", + "ĠConfig ure", + "ĠConf igure", + "Ġce iling", + "Ġceil ing", + "D er", + "De r", + "Ġpass engers", + "Ġpassenger s", + "G roups", + "Group s", + "Gro ups", + "Ġs occer", + "Ġsoc cer", + "/ W", + "av iors", + "avior s", + "avi ors", + "s with", + "sw ith", + "Ġ Zone", + "ĠZ one", + "ĠZo ne", + ". Options", + ".O ptions", + ".Option s", + "Ġ Mom", + "ĠM om", + "ĠMo m", + "i eder", + "ie der", + "ied er", + "Array s", + "Ar rays", + "Arr ays", + "Ġtreat ments", + "Ġtreatment s", + "Ġprotect ing", + "f ac", + "fa c", + "Ġ pickle", + "Ġp ickle", + "Ġpick le", + "Ġpic kle", + "Button Item", + "7 13", + "71 3", + "Ġ blocking", + "Ġb locking", + "Ġbl ocking", + "Ġblock ing", + "Ġbloc king", + "st rar", + "str ar", + "stra r", + "à ²", + "Ġ Export", + "ĠEx port", + "ĠExp ort", + "ĠExpo rt", + "Ġth rew", + "Ġthr ew", + "ot ta", + "ott a", + "Ġ BASE", + "ĠB ASE", + "ĠBAS E", + "ĠBA SE", + ". ws", + ".w s", + ".LE ADING", + "order By", + "_ delay", + "_d elay", + "_de lay", + "_del ay", + "Ġ Pu", + "ĠP u", + ". dll", + ".d ll", + "Ġ Choose", + "ĠCh oose", + "ĠCho ose", + "9 92", + "99 2", + "Pol ice", + "Po lice", + "Ġ BEGIN", + "ĠB EGIN", + "ĠBE GIN", + "bo xes", + "box es", + "Ġ diamond", + "Ġd iamond", + "Ġdiam ond", + "Ġdia mond", + ", l", + "Ġ ĉĉĉ", + "Ġĉ ĉĉ", + "Ġĉĉ ĉ", + "Ġc urious", + "Ġcur ious", + "Ġcu rious", + "6 24", + "62 4", + "t v", + "Ġerot ische", + "Ġerotisch e", + "ack ages", + "ackage s", + "ĉ Set", + "ĉS et", + "T ick", + "Ti ck", + ". border", + ".b order", + "static method", + "Ġ cher", + "Ġc her", + "Ġch er", + "Ġche r", + "in voice", + "inv oice", + "Ġc ru", + "Ġcr u", + "Ġde fect", + "Ġdef ect", + "Ġdefe ct", + "_ metadata", + "_m etadata", + "_meta data", + "_met adata", + "re lation", + "rel ation", + "i kan", + "ik an", + "ika n", + "[ N", + "( Qt", + "(Q t", + "( Base", + "(B ase", + "æģ ¯", + "b eat", + "be at", + "Ġ Empty", + "ĠEm pty", + "ĠEmp ty", + "ĉ o", + "_ shift", + "_s hift", + "_sh ift", + "Ġreg ret", + "7 22", + "72 2", + "Th ose", + "Tho se", + "C ent", + "Ce nt", + "ĠPort ug", + "ĠIs lands", + "ĠIsl ands", + "ĠIsland s", + "Ġ TIME", + "ĠT IME", + "ĠTIM E", + "ĠTI ME", + "Man agement", + "Manage ment", + "Mana gement", + "9 96", + "99 6", + "- sp", + "-s p", + "5 39", + "53 9", + "ê me", + "êm e", + "Ġn otion", + "Ġnot ion", + "Ġno tion", + "un ifu", + "uni fu", + "P K", + "8 26", + "82 6", + "è¡ Į", + "ĠC URLOPT", + "ĠCUR LOPT", + "ĠCURL OPT", + "\\ \"\\", + "\\\" \\", + "U V", + "ç º", + "d ra", + "dr a", + "c ou", + "co u", + "= `", + "Ġ Destroy", + "ĠD estroy", + "ĠDe stroy", + "ĠDest roy", + "r p", + ". cancel", + ".c ancel", + ".can cel", + "G G", + "r untime", + "run time", + "Ġ Vue", + "ĠV ue", + "ĠVu e", + "Ġpro gressive", + "Ġprogress ive", + "Ġprog ressive", + "/ services", + "/s ervices", + "/service s", + "Ġ runner", + "Ġr unner", + "Ġrun ner", + "_ FRAME", + "_FR AME", + ". ToolStripMenuItem", + ".ToolStrip MenuItem", + "Ġ ','", + "Ġ' ,'", + "Ġ', '", + "d elay", + "de lay", + "del ay", + "= utf", + "=u tf", + "Ġscreen ing", + "Ġscre ening", + "Ġp ulling", + "Ġpull ing", + "Ġpul ling", + "o mas", + "om as", + "oma s", + "Ġ anth", + "Ġa nth", + "Ġan th", + "Ġant h", + "- new", + "-n ew", + "-ne w", + "/ local", + "/l ocal", + "/lo cal", + "Ġ iPad", + "Ġi Pad", + "ĠiP ad", + "Ġ twitter", + "Ġt witter", + "Ġtw itter", + "Ġd ying", + "Ġdy ing", + "Ġhe aven", + "Ġheav en", + "Ġ UInt", + "ĠU Int", + "ĠUI nt", + "Ġ Senator", + "ĠSen ator", + "Ġpre sum", + "Ġpres um", + "Ġ Walker", + "ĠW alker", + "ĠWalk er", + "ĠWal ker", + "Ġover come", + "e tection", + "et ection", + "ete ction", + "etect ion", + "Ġemb arrass", + "Ch ina", + "Chi na", + "6 39", + "63 9", + "In clude", + "Inc lude", + "R OLL", + "RO LL", + "ROL L", + "Ġ dataType", + "Ġdata Type", + "D avid", + "Da vid", + "ภ£", + "l op", + "lo p", + "- month", + "-m onth", + "-mon th", + "Ġ scar", + "Ġs car", + "Ġsc ar", + "Ġsca r", + "Ġ Safe", + "ĠS afe", + "ĠSaf e", + "ĠSa fe", + "Ġ ****************************************************************", + "Ġ******************************** ********************************", + "Ġ******** ********************************************************", + "Ġ**************** ************************************************", + "Ġ************************ ****************************************", + "Ġ**************************************** ************************", + "Ġ******************************************************** ********", + "Ġ************************************************ ****************", + "Ġaccess ories", + "Ġaccessor ies", + "Ġr amp", + "Ġra mp", + "Ġram p", + "_ USE", + "_U SE", + "_US E", + "Ġcon trad", + "Ġcont rad", + "Ġcontr ad", + "Ġcontra d", + ") )]Ċ", + ")) ]Ċ", + "))] Ċ", + "Ġp rest", + "Ġpr est", + "Ġpre st", + "Ġpres t", + "Ġ HR", + "ĠH R", + "ĠR ap", + "ĠRa p", + "Ġ usize", + "Ġu size", + "Ġus ize", + "Ġ capability", + "Ġcap ability", + "Ġc ort", + "Ġco rt", + "Ġcor t", + "- next", + "-n ext", + "-ne xt", + "0 77", + "07 7", + "6 27", + "62 7", + "Ġbur den", + "8 22", + "82 2", + "_ reader", + "_re ader", + "_read er", + "Ġ @@", + "Ġ@ @", + "reg ular", + "Ġ Ka", + "ĠK a", + "0 36", + "03 6", + "M AN", + "MA N", + "Ġ astr", + "Ġa str", + "Ġas tr", + "Ġast r", + "Ġ' ')Ċ", + "Ġ'' )Ċ", + "Ġ'') Ċ", + "Ġ fed", + "Ġf ed", + "Ġfe d", + "Ġp arsing", + "Ġpar sing", + "Ġpars ing", + "Ġ Years", + "ĠY ears", + "ĠYear s", + "ĠYe ars", + "Ġ broker", + "Ġb roker", + "Ġbr oker", + "Ġbro ker", + "Ġbroke r", + "\": {\"", + "Ġ akt", + "Ġa kt", + "Ġak t", + "In ventory", + "ab eled", + "abel ed", + "abe led", + "Ġarg parse", + "* ******Ċ", + "** *****Ċ", + "**** ***Ċ", + "****** *Ċ", + "*** ****Ċ", + "***** **Ċ", + "******* Ċ", + "vers ation", + "Ġ cord", + "Ġc ord", + "Ġco rd", + "Ġcor d", + "Ġ Ti", + "ĠT i", + "Ġ hopefully", + "Ġhope fully", + "Ġhop efully", + "Ġhopeful ly", + "Ġ ah", + "Ġa h", + "v erb", + "ver b", + "ve rb", + "Ġst olen", + "Ġstole n", + "Ġsto len", + "Ġstol en", + ". Entry", + ".En try", + ".Ent ry", + "Ġex pecting", + "Ġexpect ing", + "O rientation", + "Ġ powered", + "Ġp owered", + "Ġpower ed", + "Ġpow ered", + "Ġ persist", + "Ġp ersist", + "Ġpers ist", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "' ]);", + "'] );", + "']) ;", + "' )),Ċ", + "') ),Ċ", + "')) ,Ċ", + "')), Ċ", + "Ġ Cash", + "ĠC ash", + "ĠCas h", + "ĠCa sh", + "ĉ item", + "ĉi tem", + "ĉit em", + "8 18", + "81 8", + "g rades", + "gr ades", + "grad es", + "grade s", + "gra des", + "r opol", + "ro pol", + "rop ol", + "b asic", + "ba sic", + "bas ic", + "Ġ \");čĊ", + "Ġ\" );čĊ", + "Ġ\") ;čĊ", + "Ġ\"); čĊ", + "Ġa wards", + "Ġaw ards", + "Ġaward s", + "( range", + "(r ange", + "(ra nge", + "- all", + "-a ll", + "-al l", + "Ġ IBOutlet", + "ĠIB Outlet", + "Ġ Indeed", + "ĠInd eed", + "---------------------------------------------------------------- ------------", + "------------ ----------------------------------------------------------------", + "------------------------------------------------ ----------------------------", + "------ ----------------------------------------------------------------------", + "---------------------------- ------------------------------------------------", + "---------------------------------------------------------------------- ------", + "Ġstom ach", + "Ġsto mach", + "Ġ flower", + "Ġf lower", + "Ġfl ower", + "Ġflow er", + "Ġflo wer", + "Ġs ew", + "Ġse w", + "_ times", + "_t imes", + "_time s", + "_tim es", + "_ti mes", + "a vis", + "av is", + "avi s", + "Q String", + "QS tring", + "Ġ Routes", + "ĠR outes", + "ĠRoute s", + "ĠRo utes", + "ĠRou tes", + "ĠRout es", + "_ prot", + "_p rot", + "_pro t", + "_pr ot", + "Ġcom edy", + "Ġcome dy", + "Ġcomed y", + "Ġ logout", + "Ġlog out", + "Ġlogo ut", + "Ġwood en", + "Ġwo oden", + "Ġwoo den", + "Ġ poster", + "Ġp oster", + "Ġpos ter", + "Ġpost er", + "Ġpo ster", + "Ġposte r", + "p iece", + "pi ece", + "pie ce", + ". Join", + ".J oin", + "Ġ Pok", + "ĠP ok", + "ĠPo k", + "cel ona", + "m utex", + "mut ex", + "mu tex", + "mute x", + "; čĊčĊčĊ", + ";čĊ čĊčĊ", + ";čĊčĊ čĊ", + "Ġst rikes", + "Ġstr ikes", + "Ġstri kes", + "Ġstrike s", + "7 87", + "78 7", + "Lo aded", + "Load ed", + ") arg", + ")a rg", + "e sa", + "es a", + "Un ited", + "Unit ed", + "Uni ted", + "E p", + "P ELL", + "PE LL", + "8 07", + "80 7", + "Ġ Atlantic", + "ĠAtl antic", + "ul let", + "ull et", + "ulle t", + "6 52", + "65 2", + "ap ple", + "app le", + "appl e", + "Ġsett led", + "Ġsettle d", + "a con", + "ac on", + "aco n", + "Ġ printer", + "Ġpr inter", + "Ġprint er", + "Ġprin ter", + "Ġ GC", + "ĠG C", + "å® ļ", + "Ġrender ed", + "Ġrend ered", + ", âĢĻ", + "he it", + "hei t", + "s ocial", + "so cial", + "soc ial", + ". ge", + ".g e", + "7 14", + "71 4", + "Ġ Rick", + "ĠR ick", + "ĠRic k", + "ĠRi ck", + "ĠU tah", + "ĠUt ah", + "g ot", + "go t", + "on ical", + "onic al", + "oni cal", + "onica l", + "Ġ Scroll", + "ĠS croll", + "ĠSc roll", + "ĠScr oll", + "ĠSc iences", + "ĠScience s", + "ĠSci ences", + "Ġ jug", + "Ġj ug", + "Ġju g", + "Ġa mpl", + "Ġam pl", + "Ġamp l", + "en ti", + "ent i", + "LE FT", + "Ġ tabs", + "Ġt abs", + "Ġtab s", + "Ġta bs", + "Ġenorm ous", + ". getKey", + ".get Key", + "l ocate", + "lo cate", + "loc ate", + ". EX", + ".E X", + ". storage", + ".st orage", + ". We", + ".W e", + "Ġ toast", + "Ġto ast", + "Ġ Additionally", + "ĠAdd itionally", + "ĠAdditional ly", + "ĠAddition ally", + "8 82", + "88 2", + "Ġ NOW", + "ĠN OW", + "ĠNO W", + "5 47", + "54 7", + "_ UPDATE", + "_UP DATE", + "Ġtrans ferred", + "Ġtransfer red", + "t ha", + "th a", + ". Display", + ".D isplay", + ".Dis play", + "_ ui", + "_u i", + "ID EO", + "IDE O", + "Ġmeaning ful", + "ĠMos cow", + ", this", + ",t his", + "Ġ Victoria", + "ĠVict oria", + "ĠVictor ia", + "æĶ ¹", + "Ġ ÐŁ", + "ĠÐ Ł", + ". stack", + ".st ack", + "ĠB arn", + "ĠBar n", + "ĠBa rn", + "pared Statement", + ": string", + ":s tring", + ":str ing", + "Ġ bij", + "Ġb ij", + "Ġbi j", + "Ġ STATE", + "ĠST ATE", + "ĠSTAT E", + "ĠSTA TE", + "Ġemploy ers", + "Ġemployer s", + "ĉ input", + "ĉin put", + "( |", + "Ġ lex", + "Ġl ex", + "Ġle x", + "in voke", + "inv oke", + "ĉ num", + "ĉn um", + "+ +,", + "++ ,", + "at ial", + "ati al", + "or ses", + "ors es", + "orse s", + "Ġ fork", + "Ġf ork", + "Ġfor k", + "Ġfo rk", + "_ txt", + "_t xt", + "_tx t", + "ĠAnt onio", + "ĠAnton io", + "Ġ (<", + "Ġ( <", + "a verse", + "av erse", + "aver se", + "avers e", + "Ġdev ast", + "ãĢ Ģ", + ". Dec", + ".D ec", + ".De c", + "ĠG ard", + "ĠGar d", + "ĠGa rd", + "/ ui", + "/u i", + ". %", + "t ri", + "tr i", + "Ġ rolled", + "Ġroll ed", + "Ġrol led", + "Value Pair", + "it ten", + "itt en", + "itte n", + "ĠT her", + "ĠThe r", + "ĠTh er", + "Ġv rou", + "Ġvr ou", + "Ġ Flow", + "ĠF low", + "ĠFl ow", + "ĠFlo w", + "Ġ Finance", + "ĠF inance", + "ĠFin ance", + "Ġ Comb", + "ĠC omb", + "ĠCom b", + "ĠCo mb", + "H C", + ". setVisible", + ".set Visible", + "i sl", + "is l", + "Ġ pk", + "Ġp k", + "7 73", + "77 3", + "Ġup set", + "Ġups et", + "( raw", + "(r aw", + "(ra w", + "ĠV ice", + "ĠVi ce", + "ĠVic e", + "e atures", + "ea tures", + "eature s", + "eat ures", + "Ġ Lang", + "ĠL ang", + "ĠLa ng", + "ĠLan g", + "0 29", + "02 9", + "Lo oking", + "Look ing", + "7 67", + "76 7", + "Ġ AST", + "ĠA ST", + "ĠAS T", + "Ġt rips", + "Ġtr ips", + "Ġtri ps", + "Ġtrip s", + "Ġ Justin", + "ĠJ ustin", + "ĠJust in", + "ĠJu stin", + "b rowser", + "browse r", + "=\" '.$", + "=\"' .$", + "=\"'. $", + ". vertices", + ".vert ices", + "8 21", + "82 1", + "- co", + "-c o", + "} /{", + "}/ {", + "Ġ ?,", + "Ġ? ,", + "Ġ Domin", + "ĠD omin", + "ĠDo min", + "ĠDom in", + "ĠBe lg", + "ĠBel g", + "\" <", + "Ġsup pose", + "Ġsupp ose", + "a ddy", + "ad dy", + "add y", + "Ġwalk s", + "Ġwal ks", + "6 88", + "68 8", + "ER RU", + "ERR U", + "_ filters", + "_f ilters", + "_filter s", + "_fil ters", + "_filt ers", + "Pre ferred", + "s cene", + "sc ene", + "е Ñģ", + "ĠAff airs", + "Ġ\" #{", + "Ġ\"# {", + "Ġon Submit", + "Ġ stocks", + "Ġst ocks", + "Ġstock s", + "Ġsto cks", + "/ view", + "/v iew", + "g ree", + "gr ee", + "gre e", + "- get", + "-g et", + "9 03", + "90 3", + "h it", + "hi t", + "J o", + ". getC", + ".get C", + "7 25", + "72 5", + "Init ialized", + "Initial ized", + "Initialize d", + "ÑĤ и", + "c uts", + "cut s", + "cu ts", + "( Type", + "(T ype", + "ĠAg reement", + "ĠAgree ment", + "ĠViet nam", + "Ġ /*!", + "Ġ/* !", + "Ġ pizza", + "Ġp izza", + "Ġpi zza", + "- view", + "-v iew", + "_ em", + "_e m", + "Ġ lhs", + "Ġl hs", + "Ġlh s", + "Ġm uy", + "Ġmu y", + "Ġ Ident", + "ĠI dent", + "ĠId ent", + "ĠIde nt", + "Ġ Friends", + "ĠF riends", + "ĠFriend s", + "ĠFri ends", + "0 61", + "06 1", + "Ġab und", + "_ AD", + "_A D", + ". timestamp", + ".t imestamp", + ".time stamp", + "- '", + "Ġ duplicate", + "Ġd uplicate", + "Ġdup licate", + "Ġduplic ate", + "Ġh unting", + "Ġhun ting", + "Ġhunt ing", + "Ġreg ulatory", + "Ġregul atory", + "Ġregulator y", + "i ao", + "ia o", + "am ous", + "amo us", + "ĠEnt ertainment", + "ĠEnter tainment", + "[ A", + "iat ric", + "_ CLIENT", + "_CL IENT", + "_CLI ENT", + "Ġ Kids", + "ĠK ids", + "ĠKi ds", + "ĠKid s", + "/ pkg", + "/p kg", + "B reak", + "Bre ak", + ") ));ĊĊ", + ")) );ĊĊ", + ")));Ċ Ċ", + "))) ;ĊĊ", + "))); ĊĊ", + "Ġ Shape", + "ĠS hape", + "ĠSh ape", + "ĠSha pe", + "Ġrel ating", + "Ġrelat ing", + "Int errupt", + "Inter rupt", + "able Opacity", + "em bre", + "emb re", + "embr e", + "Ġm ystery", + "Ġmy stery", + "Ġmys tery", + "Ġmyst ery", + "Ġmyster y", + "Ġjournal ists", + "Ġjournalist s", + "r itable", + "ri table", + "rit able", + "rita ble", + ". Link", + ".L ink", + "Ġst opping", + "Ġstop ping", + "Ġsto pping", + "C RET", + "CR ET", + "CRE T", + ". DB", + ".D B", + "Ġpop ularity", + "Ġpopular ity", + "Ġpopul arity", + "Ġ gew", + "Ġg ew", + "Ġge w", + "Ġi mpr", + "Ġim pr", + "Ġimp r", + "set Value", + "F LAG", + "FL AG", + "ĉ max", + "ĉm ax", + "Ġb ake", + "Ġba ke", + "Ġbak e", + "w y", + "ĠE conomic", + "ĠEcon omic", + "ĠEc onomic", + "ĠEconom ic", + "Ġen contr", + "Ġ fname", + "Ġf name", + "Ġfn ame", + "/ de", + "/d e", + "R ank", + "Ra nk", + "Ġ bugs", + "Ġb ugs", + "Ġbu gs", + "Ġbug s", + ". sm", + ".s m", + "Ġ median", + "Ġm edian", + "Ġmed ian", + "Ġmedia n", + "Ġmedi an", + "D OWN", + "DO WN", + "Ġ Sure", + "ĠS ure", + "ĠSur e", + "ĠSu re", + "At Index", + "Ġ Dick", + "ĠD ick", + "ĠDi ck", + "Ġ (__", + "Ġ( __", + "Ġ(_ _", + ". delta", + ".d elta", + ".del ta", + "F r", + "Ġsuggest ing", + "Ġ RecyclerView", + "ĠRec yclerView", + ", e", + "ST ART", + "STAR T", + "STA RT", + "/ ****************************************************************************", + "/************************************************************************ ****", + "/**************************************************************** ************", + "/******************************************************** ********************", + "/************************************************ ****************************", + "x ford", + "xf ord", + "Ġ receipt", + "Ġre ceipt", + "Ġrece ipt", + "CL AIM", + "CLA IM", + "read only", + "9 68", + "96 8", + "Ġeng aging", + "6 19", + "61 9", + "C a", + "as ma", + "asm a", + "Ġens uring", + "Eng lish", + "ĠV ancouver", + "h yth", + "hy th", + "Ġpurch asing", + "Ġ PI", + "ĠP I", + ". word", + ".w ord", + "( sp", + "(s p", + ". home", + ".h ome", + ".hom e", + ": def", + ":d ef", + "Ġg ig", + "Ġgi g", + "5 74", + "57 4", + "6 71", + "67 1", + "Ġ Ve", + "ĠV e", + "f orum", + "fo rum", + "for um", + "Ġ Mitch", + "ĠM itch", + "ĠMit ch", + "B ay", + "Ba y", + "_ FL", + "_F L", + "6 51", + "65 1", + "Ġs oll", + "Ġso ll", + "Ġsol l", + "5 77", + "57 7", + "_ columns", + "_column s", + "Ġminor ity", + "b ird", + "bi rd", + "bir d", + "Ġh anded", + "Ġhand ed", + "Ġhan ded", + "S SL", + "SS L", + "ST AT", + "STA T", + "Ġnerv ous", + "Ġner vous", + "ĥ ½", + "Ġ filePath", + "Ġfile Path", + "C REATE", + "CRE ATE", + "A w", + "Ġp ens", + "Ġpe ns", + "Ġpen s", + "8 35", + "83 5", + "s eed", + "se ed", + "see d", + "Ġ Compute", + "ĠCom pute", + "ĠComp ute", + "ĠComput e", + "o lk", + "ol k", + "5 94", + "59 4", + "Ġ Asset", + "ĠAs set", + "ĠAss et", + "r each", + "re ach", + "rea ch", + "' ),čĊ", + "') ,čĊ", + "'), čĊ", + "n avigation", + "nav igation", + "L F", + "/ util", + "/u til", + "Ġ Pub", + "ĠP ub", + "ĠPu b", + "Ġ âĶ", + "Ġâ Ķ", + "c ion", + "ci on", + "cio n", + "# #Ċ", + "## Ċ", + "0 72", + "07 2", + "I II", + "II I", + "Tag Name", + "Ġa mid", + "Ġam id", + "Ġami d", + "per mission", + "perm ission", + "if iable", + "ifi able", + "x FFFFFFFF", + "xFF FFFFFF", + "xFFFF FFFF", + "xFFFFFF FF", + "н и", + ". Buffer", + ".B uffer", + "_ irq", + "_i rq", + "_ir q", + "d ark", + "da rk", + "dar k", + "Ġ retval", + "Ġret val", + ". fire", + ".f ire", + ".fi re", + "p roduction", + "pro duction", + "product ion", + "produ ction", + "prod uction", + ". listen", + ".l isten", + ".list en", + ".li sten", + "Ġ Weather", + "ĠWe ather", + "Ġbu yers", + "Ġbuy ers", + "Ġbuyer s", + ". ne", + ".n e", + "e rp", + "er p", + "ĠP ent", + "ĠPe nt", + "ĠPen t", + "6 99", + "69 9", + "Ġw elfare", + "Ġwel fare", + "Ġ pageSize", + "Ġpage Size", + "ĠSt adium", + "ĠStad ium", + "er ta", + "ert a", + "Ġ lev", + "Ġl ev", + "Ġle v", + "am pa", + "amp a", + "P ager", + "Page r", + "Pa ger", + "Pag er", + "6 65", + "66 5", + "Ġ charging", + "Ġch arging", + "Ġchar ging", + "Ġcharg ing", + "Ġ Netflix", + "ĠNet flix", + "| null", + "_ random", + "_r andom", + "_rand om", + ". xpath", + ".x path", + "Ġs tere", + "Ġst ere", + "Ġste re", + "Ġster e", + "Ġ ISIS", + "ĠIS IS", + "ĠISI S", + "pon ses", + "ponse s", + "pons es", + "( loc", + "(l oc", + "(lo c", + "5 66", + "56 6", + "ey ond", + "Ġ Official", + "ĠOff icial", + "6 57", + "65 7", + "ĠMary land", + "Data Type", + "_ par", + "_p ar", + "_pa r", + "{ },", + "{} ,", + "Ġ Enjoy", + "ĠEn joy", + "7 27", + "72 7", + "_ SHIFT", + "_SH IFT", + "ĠA wards", + "ĠAward s", + "ĠAw ards", + "_ ENTRY", + "_EN TRY", + "_ENT RY", + "Ġseem ingly", + "Ġseeming ly", + "ent icate", + "entic ate", + "enti cate", + "Ġhe arts", + "Ġheart s", + "Ġhear ts", + "5 83", + "58 3", + "_ ;ĊĊ", + "_;Ċ Ċ", + "_; ĊĊ", + "ĠH IV", + "ĠHI V", + "Ġin divid", + "Ġind ivid", + "Ġindiv id", + "Ġ Flag", + "ĠF lag", + "ĠFl ag", + "ĠFla g", + "_ ctrl", + "_c trl", + "_ct rl", + "_ctr l", + "Ġ Callback", + "ĠC allback", + "ĠCall back", + ", z", + "Ġ GPU", + "ĠG PU", + "ĠGP U", + "ĉ obj", + "ĉo bj", + "ĉob j", + "Ġ Phoenix", + "ĠPh oenix", + "Ġ BUS", + "ĠB US", + "ĠBU S", + "9 07", + "90 7", + "Ġr ubber", + "Ġrub ber", + "_ AUTH", + "_A UTH", + "_AUT H", + "ĠS olutions", + "ĠSol utions", + "ĠSolution s", + "( location", + "(l ocation", + "(loc ation", + "(lo cation", + "Variable s", + "Vari ables", + ". setEnabled", + ".set Enabled", + "_ high", + "_h igh", + "_hi gh", + "W O", + "G esture", + "Ġ retry", + "Ġre try", + "Ġr etry", + "Ġret ry", + "Ġretr y", + "Ġobject ForKey", + "allow een", + "allo ween", + "Ġ mos", + "Ġm os", + "Ġmo s", + "Ġ Cele", + "ĠC ele", + "ĠCe le", + "ĠCel e", + "Ġi kke", + "Ġik ke", + "( cell", + "(c ell", + "Ġ MODE", + "ĠM ODE", + "ĠMO DE", + "ĠMOD E", + "r ena", + "re na", + "ren a", + "Ġdes cribing", + "Ġdescri bing", + "6 41", + "64 1", + "Ġ phi", + "Ġp hi", + "Ġph i", + "Ġ rd", + "Ġr d", + "Ġde serve", + "Ġdes erve", + "Ġdese rve", + "Ġdeser ve", + "Ġw heels", + "Ġwheel s", + "Ġwhe els", + "å¸ Ĥ", + "Ġcr itics", + "Ġcrit ics", + "Ġcritic s", + "Ġcri tics", + "7 55", + "75 5", + "N amespace", + "Name space", + "Names pace", + "Ġ Fra", + "ĠF ra", + "ĠFr a", + "Ġ ĊĊĊĊ", + "ĠĊ ĊĊĊ", + "ĠĊĊ ĊĊ", + "ĠĊĊĊ Ċ", + "Ġ alla", + "Ġa lla", + "Ġal la", + "Ġall a", + "Ġre quiring", + "Ġrequ iring", + "æľ Ł", + "ut ation", + "uta tion", + "Ġdel ayed", + "Ġdelay ed", + "Ġadministr ative", + "Ġ bay", + "Ġb ay", + "Ġba y", + ". hidden", + ".h idden", + "T ex", + "Te x", + "0 51", + "05 1", + "Ġbound aries", + "Ġ ]);ĊĊ", + "Ġ] );ĊĊ", + "Ġ]);Ċ Ċ", + "Ġ]) ;ĊĊ", + "Ġ]); ĊĊ", + "Ġ Following", + "ĠFollow ing", + "~ /", + "F i", + "_ conv", + "_con v", + "_co nv", + "_ TITLE", + "_T ITLE", + "Ġdes de", + "I CollectionView", + "ICollection View", + "A lias", + "Al ias", + "Ali as", + "Ġ bite", + "Ġb ite", + "Ġbit e", + "Ġbi te", + "p atient", + "pat ient", + "_ COMMAND", + "_COM MAND", + "_COMM AND", + "Com pleted", + "Complete d", + "Comp leted", + "Comple ted", + "ĉ elif", + "ĉe lif", + "ĉel if", + "( <", + "B usiness", + "Bus iness", + "Ġ Pool", + "ĠP ool", + "ĠPo ol", + "Ġpurs ue", + "Ġ Ban", + "ĠB an", + "ĠBa n", + "_ steps", + "_st eps", + "_step s", + "_ste ps", + "_ DECL", + "_DE CL", + "_DEC L", + "um ble", + "umb le", + "Ġ combo", + "Ġc ombo", + "Ġcom bo", + "Ġcomb o", + "Ġ Layer", + "ĠL ayer", + "ĠLa yer", + "ĠLay er", + ". xr", + ".x r", + "Ġ dup", + "Ġd up", + "Ġdu p", + "- --------", + "-- -------", + "---- -----", + "-------- -", + "--- ------", + "----- ----", + "------ ---", + "------- --", + "6 28", + "62 8", + "Ġ modifier", + "Ġmod ifier", + "r ob", + "ro b", + "r ez", + "re z", + "6 96", + "69 6", + "Ġath letes", + "Ġathlete s", + "U sed", + "Us ed", + "Use d", + "w ear", + "we ar", + "8 15", + "81 5", + "Ġleg itimate", + "Ġlegit imate", + "Ġlegitim ate", + "Ġ \"ĊĊ", + "Ġ\" ĊĊ", + "Ġ\"Ċ Ċ", + "Ġ hv", + "Ġh v", + "S td", + "St d", + "0 37", + "03 7", + "Ġ Hold", + "ĠH old", + "ĠHol d", + "ĠHo ld", + "Ġsurv iv", + "ĠAll iance", + "Ġ Early", + "ĠEar ly", + "ĠEarl y", + "7 78", + "77 8", + "Beh avior", + "( font", + "(f ont", + "/ libs", + "/lib s", + "/l ibs", + "/li bs", + "Ġ rectangle", + "Ġrect angle", + "Ġs inger", + "Ġsi nger", + "Ġsin ger", + "Ġsing er", + "Ġ amp", + "Ġa mp", + "Ġam p", + "Equal To", + "Ġ \".\"", + "Ġ\" .\"", + "Ġ\". \"", + "Ġgirl friend", + "å ±", + "l inear", + "li near", + "line ar", + "lin ear", + "o bserv", + "ob serv", + "obs erv", + "Ġpi ù", + "Ġcom plement", + "Ġcomp lement", + "Ġcomple ment", + "Ġcompl ement", + "With Value", + "( password", + "(p assword", + "(pass word", + "t ake", + "ta ke", + "tak e", + "Bl ank", + "Ġ Compar", + "ĠCom par", + "ĠCo mpar", + "ĠComp ar", + "' \",", + "'\" ,", + "_ policy", + "_p olicy", + "_pol icy", + "m ongoose", + "mongo ose", + "mong oose", + "_ FAILED", + "_FAIL ED", + "_FA ILED", + ". report", + ".re port", + ".repo rt", + ".rep ort", + "R atio", + ".Perform Layout", + "7 47", + "74 7", + "us able", + "usa ble", + "m ers", + "mer s", + "me rs", + "_ render", + "_re nder", + "_r ender", + "PE ED", + "7 72", + "77 2", + "Ġle sb", + "Ġles b", + "ĉ E", + "_ tool", + "_t ool", + "_to ol", + "Ġl adies", + "Ġlad ies", + "9 08", + "90 8", + "о Ñģ", + ") )))Ċ", + ")) ))Ċ", + "))) )Ċ", + ")))) Ċ", + "; ;;;", + ";; ;;", + ";;; ;", + ". dot", + ".d ot", + ".do t", + "Ġ nest", + "Ġn est", + "Ġne st", + "Ġnes t", + "pe ak", + "uk kit", + "e ca", + "ec a", + "_ SW", + "_S W", + "Ġ &(", + "Ġ& (", + "ĠOk lahoma", + "Ġb anking", + "Ġbank ing", + "Ġban king", + "5 69", + "56 9", + "Ġ Nintendo", + "ĠN intendo", + "7 52", + "75 2", + "Ġre produce", + "Ġrep roduce", + "Ġreprodu ce", + "Ġrepro duce", + "_ elements", + "_e lements", + "_element s", + "_el ements", + "_elem ents", + "_ele ments", + "_ mac", + "_m ac", + "_ma c", + "pr oxy", + "pro xy", + "prox y", + "Ġremark able", + "} /${", + "}/ ${", + "Ġ outs", + "Ġo uts", + "Ġout s", + "Ġou ts", + ".has Next", + "M ODE", + "MO DE", + "MOD E", + "6 58", + "65 8", + "Ġ anime", + "Ġan ime", + "Ġanim e", + "Ġani me", + ". conn", + ".c onn", + ".con n", + ".co nn", + "Un ique", + "Uni que", + "D om", + "Do m", + "Ġimport antly", + "Ġimportant ly", + "i tty", + "it ty", + "itt y", + "Ġju ice", + "T w", + "ĠPart ners", + "ĠPartner s", + "Ġatt acking", + "Ġattack ing", + "Ġport able", + "Ġpor table", + "Ġporta ble", + "am iento", + "ami ento", + "amient o", + ". PictureBox", + ".P ictureBox", + ". gen", + ".g en", + ".ge n", + "Ġopt imal", + "Ġoptim al", + "5 82", + "58 2", + "Ġre cre", + "Ġrec re", + "Ġjournal ist", + "Ġ Extract", + "ĠEx tract", + "ĠExt ract", + "ĠExtra ct", + "ĠExtr act", + "Ġ Moreover", + "ĠMore over", + "Ġ marginTop", + "Ġmargin Top", + ". Ap", + ".A p", + "Ġf iring", + "Ġfi ring", + "Ġfir ing", + "N aN", + "Na N", + "ĉ template", + "ĉt emplate", + "ĉtemp late", + "а д", + "аР´", + ". En", + ".E n", + "Ġdef ence", + "Ġdefe nce", + "Ġ Tel", + "ĠT el", + "ĠTe l", + "i len", + "il en", + "ile n", + "j an", + "ja n", + "= data", + "=d ata", + "Ġ Url", + "ĠU rl", + "ĠUr l", + "Ġ Reuters", + "ĠRe uters", + "( total", + "(t otal", + "(to tal", + "ĠF ifth", + "ĠFif th", + "Ġes says", + "Ġess ays", + "Ġessay s", + "Ġessa ys", + "Ġinterpret ation", + "Ġch arity", + "Ġchar ity", + "Ġ Rules", + "ĠR ules", + "ĠRule s", + "ĠRu les", + "Ġ subsection", + "Ġsub section", + "Ġsubs ection", + "st yled", + "style d", + "sty led", + "styl ed", + "a zer", + "az er", + "aze r", + "l ags", + "la gs", + "lag s", + "L IST", + "LI ST", + "Ġ uploaded", + "Ġup loaded", + "Ġupload ed", + "Ġ trash", + "Ġtr ash", + "Ġtra sh", + "Ġtras h", + "Ġ registr", + "Ġreg istr", + "Ġregist r", + "Ġ seller", + "Ġs eller", + "Ġse ller", + "Ġsell er", + "Ġsel ler", + "> ';čĊ", + ">' ;čĊ", + ">'; čĊ", + "Ġ startTime", + "Ġstart Time", + "ç Ļ", + "s y", + "( HttpServletRequest", + "(Http ServletRequest", + "Ġ trap", + "Ġt rap", + "Ġtr ap", + "Ġtra p", + "G C", + "Ġ embedded", + "Ġembed ded", + "Ġsur rounded", + "Ġsurround ed", + "8 16", + "81 6", + "i mits", + "im its", + "imit s", + "imi ts", + "T X", + "yl inder", + "6 85", + "68 5", + "Ġ Fal", + "ĠF al", + "ĠFa l", + "Ġsent ences", + "Ġsentence s", + "Ġ Ja", + "ĠJ a", + "IF ICATION", + "IFIC ATION", + "we apon", + "o vation", + "ov ation", + "ova tion", + "ovat ion", + "Ġ coat", + "Ġco at", + "Ġinter pol", + "Ġinterp ol", + "Ġl ips", + "Ġli ps", + "Ġlip s", + "Ġ Ky", + "ĠK y", + "Ġv ectors", + "Ġvector s", + "Ġve ctors", + "Ġvec tors", + "Ġvect ors", + "_ am", + "_a m", + "Ġin take", + "Ġint ake", + ". world", + ".w orld", + "Ġ inbox", + "Ġin box", + "Ġ MAC", + "ĠM AC", + "ĠMA C", + "_ ab", + "_a b", + "( nameof", + "(name of", + "6 33", + "63 3", + "Ġent ert", + "Ġenter t", + "Ġg athering", + "Ġgather ing", + "Ġ SIM", + "ĠS IM", + "ĠSI M", + "+ +.", + "++ .", + "n ya", + "ny a", + "' }}", + "'} }", + "Ġ UPDATE", + "ĠUP DATE", + "Ġ pac", + "Ġp ac", + "Ġpa c", + "( html", + "(h tml", + "(ht ml", + "ĠS ant", + "ĠSan t", + "ĠSa nt", + "i ating", + "ia ting", + "iat ing", + "ĠIde as", + "ĠIdea s", + "Ġs pray", + "Ġsp ray", + "Ġspr ay", + "ĠH art", + "ĠHar t", + "ĠHa rt", + "Ġ verification", + "Ġver ification", + "Ġverifica tion", + "ad esh", + "ade sh", + "ades h", + "/ modules", + "/mod ules", + "/module s", + "Ġ Mind", + "ĠM ind", + "ĠMin d", + "ĠMi nd", + "ĠSized Box", + "Ġsh elter", + "Ġshel ter", + "Ġ heroes", + "Ġher oes", + "Ġhero es", + "a tty", + "at ty", + "att y", + "Ġcert ified", + "Ġcertif ied", + "s j", + "Ġ être", + "Ġê tre", + "ÅĤ o", + "Ġpublish ing", + "ĠMal ays", + "ĠMa lays", + "ĠMalay s", + ". getUser", + ".get User", + "Ġ Provider", + "ĠPro vider", + "ĠProvid er", + "ĠProvide r", + "ĠProv ider", + "Ġ LinkedList", + "ĠLink edList", + "ĠLinked List", + "ĠB or", + "ĠBo r", + "R OUND", + "RO UND", + "d id", + "di d", + "t ain", + "ta in", + "p ire", + "pi re", + "pir e", + "ĠJ enn", + "ĠJe nn", + "ĠJen n", + "t el", + "te l", + "a nde", + "an de", + "and e", + "7 57", + "75 7", + "_ front", + "_f ront", + "_fr ont", + "ĠMc G", + "Test Method", + "ภŃ", + "Ġocc asionally", + "Ġoccasion ally", + "Ġoccasional ly", + "ĠW ales", + "ĠWal es", + "ĠWa les", + "Ġex ercises", + "Ġexerc ises", + "Ġexercise s", + "Ġ ÐĴ", + "ĠÐ Ĵ", + "0 45", + "04 5", + "- plus", + "-p lus", + "-pl us", + "Ġ validator", + "Ġvalid ator", + "Ġvalida tor", + "Ġpr ayer", + "Ġpray er", + "Ġpra yer", + "L ATED", + "LA TED", + "LAT ED", + "_ author", + "_a uthor", + "_auth or", + "_aut hor", + "Ġla bour", + "Ġlab our", + "+ +Ċ", + "++ Ċ", + "- equiv", + "-e quiv", + "-equ iv", + "Ġ GPL", + "ĠG PL", + "ĠGP L", + "Ġ facebook", + "Ġf acebook", + "Ġface book", + "s imple", + "sim ple", + "simp le", + "g ly", + "gl y", + "Process or", + "Proc essor", + "i py", + "ip y", + "7 44", + "74 4", + "Ġ *>", + "Ġ* >", + "6 48", + "64 8", + "Ġc leared", + "Ġclear ed", + "Ġcle ared", + "Ġ Push", + "ĠP ush", + "ĠPu sh", + "8 58", + "85 8", + "Ġp enis", + "Ġpe nis", + "Ġpen is", + "Struct ure", + "l ij", + "li j", + "ĠM organ", + "ĠMo rgan", + "ĠMor gan", + "ĠMorg an", + "Ġhand ful", + "\" .Ċ", + "\". Ċ", + "9 84", + "98 4", + "| \\", + "Ġ ********************************", + "Ġ**** ****************************", + "Ġ******** ************************", + "Ġ**************** ****************", + "Ġ************************ ********", + "Ġ Aqu", + "ĠA qu", + "5 84", + "58 4", + "_ IC", + "_I C", + ". loads", + ".load s", + ".lo ads", + "Ġ meter", + "Ġm eter", + "Ġme ter", + "Ġmet er", + "ĠM arine", + "ĠMar ine", + "ĠMa rine", + "ĠMari ne", + "ĠMarin e", + ": :{", + ":: {", + "Ġ TS", + "ĠT S", + "7 76", + "77 6", + "Ġ Arrays", + "ĠAr rays", + "ĠArray s", + "ĠArr ays", + ". Title", + ".T itle", + "G RAM", + "GR AM", + "GRA M", + "ter min", + "term in", + "Ġco inc", + "Ġcoin c", + "Ġcoi nc", + "E lse", + "El se", + "_ states", + "_st ates", + "_state s", + "_stat es", + "_sta tes", + "- run", + "-r un", + "m embers", + "member s", + "mem bers", + "7 82", + "78 2", + "a stro", + "as tro", + "ast ro", + "astr o", + "0 66", + "06 6", + "Ġon Press", + "Ġbe ings", + "Ġbeing s", + "Ġab andoned", + "Ġabandon ed", + "Ġtax p", + "Ġta xp", + "ow ners", + "own ers", + "owner s", + ". mode", + ".m ode", + ".mod e", + ".mo de", + "Ġdi agnosis", + "Ġdiagn osis", + "Ġdiag nosis", + "Ġ _Ċ", + "Ġ_ Ċ", + "Ġ Knight", + "ĠK night", + "ĠKn ight", + "ĉ A", + "Ġ observe", + "Ġob serve", + "Ġobs erve", + "Ġobserv e", + ") ,'", + "), '", + "8 23", + "82 3", + "! \")Ċ", + "!\" )Ċ", + "!\") Ċ", + "Ġ Para", + "ĠP ara", + "ĠPar a", + "ĠPa ra", + "Ġ variation", + "Ġvar iation", + "Ġvari ation", + "( False", + "(F alse", + "Ġ Anti", + "ĠAn ti", + "ĠAnt i", + "Ġg ri", + "Ġgr i", + "Ġhome less", + "Ġhom eless", + "? v", + "Ġb ez", + "Ġbe z", + ". Server", + ".S erver", + ".Serve r", + "r elease", + "re lease", + "rel ease", + "ĠP atri", + "ĠPat ri", + "ĠPa tri", + "Ġ chars", + "Ġch ars", + "Ġchar s", + "Ġcha rs", + "Ġ ranking", + "Ġr anking", + "Ġrank ing", + "Ġran king", + "act ivation", + "activ ation", + "5 81", + "58 1", + "Ġw ides", + "Ġwide s", + "Ġwid es", + "Ġwi des", + "q r", + ". Sql", + ".S ql", + "a cular", + "ac ular", + "acula r", + "Ġ Bot", + "ĠB ot", + "ĠBo t", + "_ sync", + "_s ync", + "_syn c", + "_sy nc", + "Ġh appiness", + "Ġhapp iness", + "Ġvol unteers", + "Ġvolunte ers", + "Ġvolunteer s", + "8 77", + "87 7", + "Ġs its", + "Ġsit s", + "Ġsi ts", + "/ <", + "[ e", + "( fileName", + "(file Name", + "Ġcap ac", + "Ġca pac", + "8 32", + "83 2", + "Ġ Maria", + "ĠM aria", + "ĠMar ia", + "ĠMa ria", + "ĠMari a", + "f ather", + "fa ther", + "fat her", + "Ġ gram", + "Ġg ram", + "Ġgr am", + "Ġgra m", + "* i", + "Ġc aso", + "Ġca so", + "Ġcas o", + "_ draw", + "_d raw", + "_dr aw", + "Ġ Raw", + "ĠR aw", + "ĠRa w", + "Ġ Iterator", + "ĠIt erator", + "ĠIter ator", + "6 64", + "66 4", + "Ġ Padding", + "ĠP adding", + "ĠPad ding", + "9 24", + "92 4", + "P D", + "B OX", + "BO X", + "ĠS PECIAL", + "ĠSPEC IAL", + "Ġ fecha", + "Ġf echa", + "Ġfe cha", + "Ġfec ha", + "Ġ vide", + "Ġv ide", + "Ġvi de", + "Ġvid e", + "Ġ Leader", + "ĠLe ader", + "ĠLead er", + "ä» ¥", + "$ (\".", + "$( \".", + "$(\" .", + "Ġd iameter", + "Ġdiam eter", + "Ġdia meter", + "Ġm ild", + "Ġmil d", + "Ġmi ld", + "7 45", + "74 5", + "Ġr ocks", + "Ġro cks", + "Ġrock s", + "Ġroc ks", + "app ings", + "apping s", + "0 48", + "04 8", + "d irectory", + "direct ory", + "director y", + "5 57", + "55 7", + ". flush", + ".f lush", + ".fl ush", + "Ġ Jess", + "ĠJ ess", + "ĠJes s", + "ĠJe ss", + "UN IT", + "Ġ Pear", + "ĠP ear", + "ĠPe ar", + "Ġ mandatory", + "Ġm andatory", + "Ġmand atory", + "S ur", + "Su r", + "q t", + "Ġ streams", + "Ġstream s", + "Ġstre ams", + "Ġco operation", + "Ġcooper ation", + "Ġcoop eration", + "Ġ Sac", + "ĠS ac", + "ĠSa c", + "Ġche aper", + "Ġcheap er", + "ĉ ch", + "ĉc h", + "an imation", + "anim ation", + "f are", + "fa re", + "far e", + "( height", + "(h eight", + "( True", + "N Y", + "Ġw rest", + "Ġwr est", + "Ġwre st", + "Ġp olls", + "Ġpol ls", + "Ġpoll s", + "Ġencounter ed", + "Ġencount ered", + "ĠMark etable", + "ĠMarket able", + "_ PASSWORD", + "_P ASSWORD", + "_PASS WORD", + "7 16", + "71 6", + "_ SELECT", + "_SE LECT", + "_SEL ECT", + "ĠArab ia", + "ĠAra bia", + "_ clock", + "_c lock", + "_cl ock", + "Ġ voy", + "Ġv oy", + "Ġvo y", + "Ġ из", + "Ġи з", + "Ġs tir", + "Ġst ir", + "is ible", + "isi ble", + "- effect", + "-e ffect", + "-eff ect", + ". created", + ".c reated", + ".create d", + ".cr eated", + "Ġto ys", + "Ġtoy s", + "ĠTrad able", + "Ġ rust", + "Ġr ust", + "Ġru st", + "Ġrus t", + "Ġ strcpy", + "Ġstr cpy", + "_ timestamp", + "_t imestamp", + "_time stamp", + "Ġtal ented", + "Ġtalent ed", + ", null", + ",n ull", + "Ġ Jobs", + "ĠJ obs", + "ĠJo bs", + "ĠJob s", + "Ġ Portland", + "ĠPort land", + "Ġweak ness", + "Th row", + "Thr ow", + "Ġ Angel", + "ĠAn gel", + "ĠAng el", + "ĠAnge l", + "ä¿ ®", + "7 54", + "75 4", + "Ġun cert", + "Ġunc ert", + "ï¼ī Ċ", + "Ġ ìĿ´", + "ĠìĿ ´", + "Wh ich", + "Ġ[- ]:", + "S omething", + "Some thing", + "Som ething", + "Ġconv icted", + "Ġconvict ed", + "k le", + "kl e", + "ed ium", + "edi um", + "Ġ branches", + "Ġbr anches", + "Ġbranch es", + "Ġbran ches", + "Ġ bases", + "Ġb ases", + "Ġbase s", + "Ġbas es", + "Ġba ses", + "ç ®", + "Ġcomplex ity", + "Ġ Fig", + "ĠF ig", + "ĠFi g", + ". reshape", + ".re shape", + ".res hape", + "$ db", + "$d b", + "7 36", + "73 6", + "_ CONST", + "_CON ST", + "_CO NST", + "Ġ Tes", + "ĠT es", + "ĠTe s", + ". runtime", + ".r untime", + ".run time", + "Ġ deny", + "Ġd eny", + "Ġde ny", + "Ġden y", + "Ġ BSD", + "ĠB SD", + "ĠBS D", + "Ġ kr", + "Ġk r", + "h att", + "ha tt", + "hat t", + "Ġ Static", + "ĠSt atic", + "ĠStat ic", + "ĠSta tic", + "Ġunivers ities", + "Re place", + "Rep lace", + "Ġd rove", + "Ġdr ove", + "Ġdro ve", + "Ġad oles", + "Ġado les", + "_ plugin", + "_pl ugin", + "ĠL GBT", + "ĠLG BT", + "Ġ tex", + "Ġt ex", + "Ġte x", + "d uction", + "du ction", + "duct ion", + "duc tion", + "7 51", + "75 1", + "7 99", + "79 9", + "E DI", + "ED I", + "Ġ Ted", + "ĠT ed", + "ĠTe d", + "_ URI", + "_U RI", + "Ġre ception", + "Ġrece ption", + "Ġrecept ion", + "Ġrecep tion", + "ar ten", + "art en", + "arte n", + ". Single", + ".S ingle", + ".Sin gle", + "r ice", + "ri ce", + "ric e", + "sc ious", + "sci ous", + "8 43", + "84 3", + "_ bg", + "_b g", + "Ġw ages", + "Ġwa ges", + "Ġwage s", + "Ġwag es", + "Ġ Servlet", + "ĠS ervlet", + "ĠServ let", + "UI Layout", + "UIL ayout", + "Ġ formatted", + "Ġform atted", + "Ġformat ted", + ". Mod", + ".M od", + "< class", + " ',Ċ", + ">' ,Ċ", + ">', Ċ", + "Ġexp anding", + "Ġexpand ing", + "Ġ Hamilton", + "ĠHam ilton", + "Ġ Contrib", + "ĠCon trib", + "ĠCont rib", + "ĠContr ib", + ". Tables", + ".T ables", + ".Tab les", + ".Table s", + "7 28", + "72 8", + "Act iv", + "Ac tiv", + "H H", + "o commerce", + "ocom merce", + "_ ;", + "Ġamong st", + "o wing", + "ow ing", + "owi ng", + "8 59", + "85 9", + "Ġ Cold", + "ĠC old", + "ĠCo ld", + "ĠCol d", + "A PH", + "AP H", + "Ġpsych ological", + "Ġpsycho logical", + "_ tensor", + "_t ensor", + "Ġpack aging", + "Ġ Sweden", + "ĠSw eden", + "ĠSwe den", + "Ġ pare", + "Ġp are", + "Ġpar e", + "Ġpa re", + "Ġ aggregate", + "Ġag gregate", + "Ġaggreg ate", + "Ġmod erate", + "Ġmode rate", + "Ġmoder ate", + "8 62", + "86 2", + "_ hand", + "_h and", + "Ġdesign ated", + "Ġdesignate d", + "Ġd rum", + "Ġdr um", + "Ġdru m", + "Ġ getUser", + "Ġget User", + "ĠC reek", + "ĠCre ek", + "ĠCree k", + "_ scope", + "_s cope", + "_sc ope", + "Ġ Transfer", + "ĠTrans fer", + "Ġ Marg", + "ĠM arg", + "ĠMar g", + "ĠMa rg", + "Ġ fighters", + "Ġfight ers", + "Ġfighter s", + "W nd", + "Ġ Sel", + "ĠS el", + "ĠSe l", + "Ġ Launch", + "ĠL aunch", + "ĠLa unch", + "Ġem erging", + "Ġemerg ing", + "i frame", + "if rame", + "ifr ame", + "Ġ Additional", + "ĠAdd itional", + "ĠAddition al", + "Ġf ears", + "Ġfe ars", + "Ġfear s", + "Ġsat ellite", + "_ :", + "Ġ disposing", + "Ġdis posing", + "Ġdisp osing", + "Ġdispos ing", + "Get Value", + "Http Post", + "AT IVE", + "ul ary", + "ular y", + "ula ry", + "View s", + "Vi ews", + "Ġatt ending", + "Ġattend ing", + "ĠT ennessee", + "Ġ Mission", + "ĠM ission", + "ĠMiss ion", + "Ġmed ication", + "Ġmedic ation", + "Ġmedi cation", + "Ġ Wy", + "ĠW y", + "Ġ Anna", + "ĠAn na", + "ĠAnn a", + "Ø ¹", + "Ġ Vertex", + "ĠVer tex", + "ĠVert ex", + ". types", + ".t ypes", + ".type s", + ".typ es", + "O rgan", + "Or gan", + "Org an", + ". DataGridViewTextBoxColumn", + ".DataGridView TextBoxColumn", + "Ġ RS", + "ĠR S", + "Ġt empo", + "Ġtem po", + "Ġtemp o", + "( App", + "(A pp", + "8 92", + "89 2", + "Version UID", + ". point", + ".p oint", + ".po int", + ".poi nt", + "ĠD utch", + "ĠDut ch", + "H ours", + "Hour s", + "Ho urs", + "L U", + "Ġ quoted", + "Ġqu oted", + "Ġquote d", + "Ġquot ed", + "Ġquo ted", + ". builder", + ".b uilder", + ".build er", + "Ġ Perfect", + "ĠPer fect", + "ĠPerf ect", + "Ġ Always", + "ĠAl ways", + "_ two", + "_t wo", + "_tw o", + "Ġexclusive ly", + "Ġexclus ively", + "ĠC ra", + "ĠCr a", + "ific ar", + "ifi car", + "ifica r", + "Ġ AWS", + "ĠA WS", + "ĠAW S", + "ing ham", + "com plex", + "comp lex", + "k ernel", + "ker nel", + "Ġ gravity", + "Ġgr avity", + "Ġgrav ity", + "Ġ wi", + "Ġw i", + "0 52", + "05 2", + "Ġ overview", + "Ġover view", + "Ġov erview", + "6 61", + "66 1", + "Ġ Want", + "ĠW ant", + "ĠWa nt", + "ĠWan t", + "Ġ WP", + "ĠW P", + "( sh", + "(s h", + ". rotation", + ".r otation", + ".rot ation", + "St ates", + "State s", + "Stat es", + "Ġ Teen", + "ĠT een", + "ĠTe en", + "ĠTee n", + "_ components", + "_com ponents", + "_comp onents", + "_component s", + "ì Īĺ", + "ìĪ ĺ", + "Re ceived", + "Receive d", + "Ġly rics", + "Ġlyric s", + "Ġlyr ics", + "r ites", + "ri tes", + "rit es", + "rite s", + "ĉ ĉĉĉĉĠ", + "ĉĉ ĉĉĉĠ", + "ĉĉĉĉ ĉĠ", + "ĉĉĉ ĉĉĠ", + "ĉĉĉĉĉ Ġ", + "- American", + "-A merican", + "-Americ an", + "[ num", + "[n um", + "/ python", + "/p ython", + "/py thon", + "Ġ UART", + "ĠU ART", + "ĠUA RT", + "Ġ apple", + "Ġapp le", + "Ġap ple", + "Ġappl e", + "Ġ Jonathan", + "ĠJon athan", + "Ġm omentum", + "Ġmoment um", + "ภ±", + "Ĥ ¹", + "Ġm ich", + "Ġmi ch", + "Ġmic h", + "an dra", + "and ra", + "andr a", + "Ġb iological", + "Ġbi ological", + "Ġbio logical", + "ĠM ens", + "ĠMe ns", + "ĠMen s", + "Ġ %%", + "Ġ% %", + "el sea", + "else a", + "els ea", + "ĠMex ican", + ".rand int", + "Ġt ale", + "Ġtal e", + "Ġta le", + "Ġ Validate", + "ĠValid ate", + "Ġdef eated", + "Ġdefe ated", + "Ġdefeat ed", + ". htm", + ".h tm", + ".ht m", + "Ġc opper", + "Ġco pper", + "Ġcop per", + "Ġcopp er", + "= /", + "co system", + "cos ystem", + "Ġ rip", + "Ġr ip", + "Ġri p", + "d ecimal", + "de cimal", + "dec imal", + ". VISIBLE", + ".V ISIBLE", + "Ġ Ta", + "ĠT a", + "ĉ ĉĉĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉ ĉĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉ ĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉ ĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉ ĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉ ĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉ ĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉ ĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉ ĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉ ĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉ ĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉĉ ĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉĉĉ ĉ", + "Ġdown loaded", + "Ġdownload ed", + "en vironment", + "Ġno mine", + "Ġnom ine", + "Ġnomin e", + "build ing", + "Ġ Spot", + "ĠS pot", + "ĠSp ot", + "ĠSpo t", + "ipher al", + "iph eral", + "Ġ alto", + "Ġal to", + "Ġalt o", + "q uet", + "qu et", + "que t", + "Ġ FT", + "ĠF T", + "/ get", + "/g et", + "/ge t", + "/ master", + "/m aster", + "W IN", + "WI N", + "åħ ĥ", + "6 76", + "67 6", + "W est", + "We st", + "ar gc", + "arg c", + "Ġpro ducers", + "Ġprodu cers", + "Ġproduce rs", + "Ġproducer s", + "Ġ Much", + "ĠM uch", + "ĠMu ch", + "_ storage", + "_st orage", + "c redit", + "cre dit", + "cr edit", + "cred it", + "C ONT", + "CON T", + "CO NT", + "Ġ vet", + "Ġv et", + "Ġve t", + "Ġ voices", + "Ġvo ices", + "Ġvoice s", + "Ġvoi ces", + "( '',", + "(' ',", + "Ġin struments", + "Ġinstr uments", + "Ġinstrument s", + "6 62", + "66 2", + "Ġ MSG", + "ĠM SG", + "ĠMS G", + "e sse", + "es se", + "ess e", + "re pository", + "repos itory", + "om ics", + "omic s", + "omi cs", + "Ġ dealer", + "Ġde aler", + "Ġdeal er", + "St ill", + "Ġ banner", + "Ġb anner", + "Ġban ner", + "asc ii", + "Ġ remarks", + "Ġre marks", + "Ġr emarks", + "Ġrem arks", + "Ġremark s", + "Ġremar ks", + "[ js", + "[j s", + "Ġshort er", + "g ulp", + "gu lp", + "Ġm yster", + "Ġmy ster", + "Ġmys ter", + "Ġmyst er", + "Ġk un", + "Ġku n", + "Ġ Bird", + "ĠB ird", + "ĠBi rd", + "ĠBir d", + "Ġt iene", + "Ġti ene", + "Ġtie ne", + "7 88", + "78 8", + "n ut", + "nu t", + "Ġ Um", + "ĠU m", + "Ġ wise", + "Ġw ise", + "Ġwis e", + "Ġwi se", + "Y eah", + "Ye ah", + "I NESS", + "IN ESS", + "INE SS", + "INES S", + "0 46", + "04 6", + "_ begin", + "_b egin", + "_be gin", + "_beg in", + "- heading", + "-head ing", + "-he ading", + "C ourse", + "Co urse", + "Cour se", + "Ġ čĊčĊ", + "ĠčĊ čĊ", + "om bie", + "omb ie", + "gr aded", + "grad ed", + "grade d", + "gra ded", + "Ġ GPS", + "ĠG PS", + "ĠGP S", + "Ġ że", + "Ġż e", + "F it", + "Fi t", + "c aption", + "ca ption", + "cap tion", + "capt ion", + "ö n", + "/ image", + "/i mage", + "/im age", + "l ia", + "li a", + "( mod", + "(m od", + "Ġle ak", + "en za", + "enz a", + "6 29", + "62 9", + "/ H", + "Ġ Happy", + "ĠH appy", + "ĠHa ppy", + "ĠHapp y", + "9 93", + "99 3", + "D ist", + "Dis t", + "Di st", + "n x", + "ĠGovern or", + "ĠGover nor", + "( last", + "(l ast", + "t eacher", + "te acher", + "tea cher", + "Ġ Sent", + "ĠS ent", + "ĠSe nt", + "ĠSen t", + "s upport", + "sup port", + "8 38", + "83 8", + "ject ory", + "Ġ Ùħ", + "ĠÙ ħ", + "Reg istration", + "Registr ation", + "0 63", + "06 3", + "Ġ Gray", + "ĠG ray", + "ĠGr ay", + "ĠGra y", + ", false", + ",f alse", + "Ġ adjusted", + "Ġadjust ed", + "Ġadj usted", + "( settings", + "(s ettings", + "(set tings", + "(setting s", + "< R", + "Ġ Mage", + "ĠM age", + "ĠMag e", + "ĠMa ge", + "Ġ plaint", + "Ġpl aint", + "Ġplain t", + "Ġpla int", + "_ )Ċ", + "_) Ċ", + "ĉ it", + "ĉi t", + "o metric", + "om etric", + "omet ric", + "ometr ic", + ". bootstrap", + ".boot strap", + "Ġcar ries", + "Ġcarr ies", + "I p", + "Ġ! $", + "Ġsw imming", + "Ġswim ming", + "Ġ Mario", + "ĠM ario", + "ĠMar io", + "ĠMa rio", + "ĠMari o", + "Ġ Questions", + "ĠQuest ions", + "ĠQuestion s", + "P ACE", + "PA CE", + "æĸ ¹", + "e or", + "eo r", + "} }\"", + "}} \"", + "Ġ oven", + "Ġo ven", + "Ġov en", + "Ġ Kon", + "ĠK on", + "ĠKo n", + "Ġwis dom", + "Ġac quisition", + "ess ment", + "ag ine", + "agi ne", + "Ġex pressions", + "Ġexpress ions", + "Ġexpression s", + "Ġexpr essions", + "Sequential Group", + "F ront", + "Fr ont", + "ul pt", + "ulp t", + "a wk", + "aw k", + "' ])ĊĊ", + "'] )ĊĊ", + "']) ĊĊ", + "'])Ċ Ċ", + "8 13", + "81 3", + "7 32", + "73 2", + "_ AR", + "_A R", + "Ġan alog", + "Ġanal og", + "Ġana log", + "u lin", + "ul in", + "uli n", + "_ PRINT", + "_PR INT", + "_PRI NT", + "Ġ LG", + "ĠL G", + "Ġ blob", + "Ġb lob", + "Ġbl ob", + "Ġblo b", + "Ġ Furthermore", + "ĠFurther more", + "_ component", + "_com ponent", + "_comp onent", + "Ġ Cole", + "ĠC ole", + "ĠCo le", + "ĠCol e", + "L AN", + "LA N", + "SC RIPTION", + "SCRI PTION", + "SCRIPT ION", + "Ġ lap", + "Ġl ap", + "Ġla p", + "ic ensing", + "icens ing", + "_TIME OUT", + "ĠF ro", + "ĠFr o", + "Ġl iability", + "Ġli ability", + "Ġ composed", + "Ġcom posed", + "Ġcomp osed", + "Ġcompose d", + "Ġcompos ed", + "6 34", + "63 4", + ".create SequentialGroup", + "_ person", + "_p erson", + "_per son", + "Ġ beam", + "Ġb eam", + "Ġbe am", + "ĉ ĠĠĠĠĠĠĠĠ", + "ĉĠĠĠ ĠĠĠĠĠ", + "ĉĠ ĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠ Ġ", + "ĉĠĠ ĠĠĠĠĠĠ", + "ĉĠĠĠĠĠ ĠĠĠ", + "ĉĠĠĠĠ ĠĠĠĠ", + "ĉĠĠĠĠĠĠ ĠĠ", + "Ġ NotFound", + "ĠNot Found", + "6 84", + "68 4", + ". 'Ċ", + ".' Ċ", + "ÃŃ s", + ". TextView", + ".T extView", + ".Text View", + "P DF", + "PD F", + "Ġ kar", + "Ġk ar", + "Ġka r", + "_ _('", + "__ ('", + "__( '", + "Ġ \":\"", + "Ġ\" :\"", + "Ġ\": \"", + "_ messages", + "_m essages", + "_message s", + "Ġhar vest", + ". history", + ".h istory", + ".hist ory", + "> 'Ċ", + ">' Ċ", + "- fold", + "-f old", + "æ Ĭ", + "Ġ Better", + "ĠB etter", + "ĠBet ter", + "ĠBett er", + "Ġ\" \\<", + "Ġ\"\\ <", + "sp acing", + "spa cing", + "Ġf urnished", + "Ġfurn ished", + "Ġfurnish ed", + "9 13", + "91 3", + "o ser", + "os er", + "ose r", + "] }Ċ", + "]} Ċ", + "Ġ $\"", + "Ġ$ \"", + "p ull", + "pu ll", + ". Post", + ".P ost", + ".Pos t", + "9 19", + "91 9", + "( ip", + "(i p", + "Ĺ ı", + ". front", + ".f ront", + ".fr ont", + "n te", + "nt e", + "Ġ FM", + "ĠF M", + "g uid", + "gu id", + "gui d", + "8 44", + "84 4", + "Ġnegot iations", + "Ġnegotiation s", + "ag onal", + "agon al", + "ago nal", + "9 34", + "93 4", + "Ġtrem end", + "ung eon", + "unge on", + "A dv", + "Ad v", + "car ousel", + "ÃŁ e", + "_ DESC", + "_D ESC", + "_DE SC", + "Ġ hammer", + "Ġh ammer", + "Ġham mer", + "Ġhamm er", + "ẠŃ", + "Ġ ĠĠĠĠĠĠĠĊĊ", + "ĠĠ ĠĠĠĠĠĠĊĊ", + "ĠĠĠĠ ĠĠĠĠĊĊ", + "ĠĠĠĠĠĠĠĠ ĊĊ", + "ĠĠĠ ĠĠĠĠĠĊĊ", + "ĠĠĠĠĠĠĠ ĠĊĊ", + "ĠĠĠĠĠ ĠĠĠĊĊ", + "ĠĠĠĠĠĠ ĠĠĊĊ", + "ĠĠĠĠĠĠĠĠĊ Ċ", + "- core", + "-c ore", + "-co re", + "-cor e", + "- service", + "-s ervice", + "-ser vice", + "Ġc orners", + "Ġcor ners", + "Ġcorner s", + "Ġcorn ers", + "Ġ SF", + "ĠS F", + "p red", + "pr ed", + "pre d", + "> A", + "ĠJ Label", + "ĠJL abel", + "Ġrom antic", + "Ġroman tic", + "Ġromant ic", + "Ġtest imony", + "Ġtestim ony", + "Ġtestimon y", + "o sc", + "os c", + "Ġ Generation", + "ĠG eneration", + "ĠGener ation", + "ĠGen eration", + "ĠGene ration", + "as ures", + "asure s", + "asu res", + "_ internal", + "_in ternal", + "_int ernal", + "_inter nal", + "Ġ prints", + "Ġpr ints", + "Ġprint s", + "Ġpri nts", + "Ġprin ts", + "Ġ ])Ċ", + "Ġ] )Ċ", + "Ġ]) Ċ", + "ĠC leveland", + "re po", + "rep o", + "D isc", + "Dis c", + "Di sc", + "6 77", + "67 7", + "7 62", + "76 2", + "Ġ \">Ċ", + "Ġ\" >Ċ", + "Ġ\"> Ċ", + "� ���", + "�� ��", + "��� �", + "Ġ nearest", + "Ġne arest", + "Ġnear est", + "5 91", + "59 1", + "_ tb", + "_t b", + "( require", + "(re quire", + "(req uire", + "E OF", + "EO F", + "- child", + "-ch ild", + "Ġb udd", + "Ġbu dd", + "Ġbud d", + ".Xtra Editors", + "al ties", + "alt ies", + "7 23", + "72 3", + "\\\" :\\\"", + "\\\": \\\"", + "W ords", + "Word s", + "9 17", + "91 7", + "Ġloc ally", + "Ġlocal ly", + "Ġp urchases", + "Ġpurch ases", + "Ġpurchase s", + "6 95", + "69 5", + "D rawer", + "Draw er", + "ex tract", + "ext ract", + "extra ct", + "extr act", + "Ġex ecut", + "Ġexec ut", + "Ġexe cut", + "} '.", + "}' .", + "user data", + "Ġfocus es", + "Ġfoc uses", + "- minute", + "-min ute", + "7 64", + "76 4", + "Ġ Publish", + "ĠP ublish", + "ĠPub lish", + "o go", + "og o", + "Ġm ountains", + "Ġmount ains", + "Ġmountain s", + "B ot", + "Bo t", + "} >{", + "}> {", + "Ġt ension", + "Ġtens ion", + "r od", + "ro d", + "m esh", + "me sh", + "mes h", + "Ġtrans formed", + "Ġtransform ed", + ", R", + "( )}Ċ", + "() }Ċ", + "()} Ċ", + ". long", + ".l ong", + ".lo ng", + ".lon g", + "Ġg orgeous", + "Ġgorge ous", + "Ġ Schedule", + "ĠS chedule", + "Ġold est", + "Ġol dest", + "Ġsub process", + "( IN", + "(I N", + "y ect", + "ye ct", + "ĠCo oper", + "ar ness", + "arn ess", + "Ġ Monitor", + "ĠM onitor", + "ĠMon itor", + ". part", + ".p art", + ".par t", + ".pa rt", + "9 72", + "97 2", + "Ġ NBC", + "ĠN BC", + "ĠNB C", + "6 68", + "66 8", + "Ġc otton", + "Ġcot ton", + "Ġcott on", + "Ġ hol", + "Ġh ol", + "Ġho l", + "7 26", + "72 6", + "Ġ rgba", + "Ġr gba", + "Ġrgb a", + "Ġrg ba", + "Ġ Bio", + "ĠB io", + "ĠBi o", + "Cont inue", + "Contin ue", + "P od", + "Po d", + "Ġparticip ating", + "cl usions", + "clus ions", + "clusion s", + "(By Val", + "7 34", + "73 4", + "à ¬", + "Ġ HOW", + "ĠH OW", + "ĠHO W", + "_set opt", + "Ġaccompany ing", + "0 91", + "09 1", + "a ton", + "at on", + "ato n", + "Ġ /\\", + "Ġ/ \\", + "Ġ Authentication", + "ĠAuth entication", + "ĠAuthentic ation", + "i én", + "ĠBar ack", + "ĠBa rack", + "/ *.", + "/* .", + "Ġe ager", + "Ġea ger", + "Ġeag er", + "Ġ Cancel", + "ĠC ancel", + "ĠCan cel", + "ĠCanc el", + "< lemma", + " $", + "O LEAN", + "OLE AN", + "OK IE", + "IB ILITY", + "U AGE", + "UA GE", + "Ġ Survey", + "ĠS urvey", + "ĠSur vey", + "ĠSurv ey", + "0 71", + "07 1", + "Ġre sign", + "Ġr esign", + "Ġres ign", + "w ing", + "win g", + "wi ng", + "Ġse crets", + "Ġsec rets", + "Ġsecret s", + "Ġsecre ts", + "Ġc hips", + "Ġch ips", + "Ġchip s", + "Ġchi ps", + "JSON Object", + "D esktop", + "Des ktop", + "Desk top", + "5 96", + "59 6", + "_SY MBOL", + "( resource", + "(res ource", + "(re source", + "Ġ< />Ċ", + "ĠĊ", + "Ġnew est", + "Ġne west", + "u li", + "ul i", + "Ġde sert", + "Ġdes ert", + "Ġdese rt", + "Ġdeser t", + "Ġd ip", + "Ġdi p", + "Ġ Pow", + "ĠP ow", + "ĠPo w", + "Ġequ ation", + "Ġeq uation", + "Ġposs ibilities", + "Ġpossibilit ies", + "Ġ Fed", + "ĠF ed", + "ĠFe d", + "os ph", + "osp h", + "Ġ [%", + "Ġ[ %", + "Ġ bubble", + "Ġb ubble", + "Ġbu bble", + "Ġbub ble", + "Ġbubb le", + "ether lands", + "7 93", + "79 3", + "Ġc ement", + "Ġce ment", + ". auto", + ".a uto", + ".au to", + ".aut o", + "_ AN", + "_A N", + "âĢĻ .", + "s election", + "se lection", + "select ion", + "sel ection", + "Ġ Bond", + "ĠB ond", + "ĠBo nd", + "ĠBon d", + "9 88", + "98 8", + "D en", + "De n", + "- O", + ". getType", + ".get Type", + "8 96", + "89 6", + ". Window", + ".W indow", + "p res", + "pr es", + "pre s", + "Ġsw inger", + "Ġswing er", + "\" })Ċ", + "\"} )Ċ", + "\"}) Ċ", + "Ġ pip", + "Ġp ip", + "Ġpi p", + "Ġm ice", + "Ġmi ce", + "Ġmic e", + "Ġ compound", + "Ġcomp ound", + "- plugin", + "-pl ugin", + "i ko", + "ik o", + "Ġcent uries", + "i cular", + "ic ular", + "- inline", + "-in line", + "ĉ key", + "ĉk ey", + "> \\<", + ">\\ <", + "EN SION", + "ENS ION", + "Ġ[ čĊ", + "Ġprecis ely", + "Ġprecise ly", + "Ġ été", + "Ġé té", + "Ġét é", + "Ġ Past", + "ĠP ast", + "ĠPa st", + "ĠPas t", + "ĠCam bridge", + "ĠCamb ridge", + "- full", + "-f ull", + "Ġ analyze", + "Ġan alyze", + "Ġanaly ze", + "Ġ Steven", + "ĠSt even", + "ĠSte ven", + "ĠSteve n", + "Ġ nem", + "Ġn em", + "Ġne m", + "d ue", + "du e", + "o ren", + "or en", + "ore n", + "Ġmus cles", + "Ġmuscle s", + "i jing", + "ij ing", + "iji ng", + "8 52", + "85 2", + "/ -", + "ĠKenn edy", + "5 97", + "59 7", + "R M", + "oss ible", + "Ġact ress", + "Ġd olor", + "Ġdo lor", + "Ġdol or", + "9 14", + "91 4", + "å½ ķ", + "N eed", + "Ne ed", + ". toggle", + ".t oggle", + "Ġ Race", + "ĠR ace", + "ĠRa ce", + "ĠRac e", + "w ers", + "we rs", + "wer s", + ". material", + ".m aterial", + ".mat erial", + "Ġ Due", + "ĠD ue", + "ĠDu e", + "Ġ Pel", + "ĠP el", + "ĠPe l", + "# print", + "Ġin dependence", + "Ġindepend ence", + "ex us", + "Sh adow", + "Ġ encoder", + "Ġe ncoder", + "Ġen coder", + "Ġenc oder", + "Ġencode r", + "( level", + "(le vel", + "Ġ Swift", + "ĠSw ift", + ". doc", + ".d oc", + ".do c", + "_ selection", + "_s election", + "_se lection", + "_select ion", + "_sel ection", + "9 52", + "95 2", + "Ġserial VersionUID", + "9 45", + "94 5", + "Label s", + "Lab els", + "Ġperform ances", + "Ġperformance s", + "Ġperforman ces", + ". Tag", + ".T ag", + "ĠN HL", + "ĠNH L", + "i zen", + "iz en", + "ize n", + "/ UIKit", + "/UI Kit", + "9 91", + "99 1", + "_ CONTROL", + "_CONT ROL", + "Ġe arnings", + "Ġear nings", + "Ġearn ings", + "Ġearning s", + "9 75", + "97 5", + "Ġ Alt", + "ĠA lt", + "ĠAl t", + "_ HANDLE", + "_H ANDLE", + "_HAND LE", + "C tx", + "Ġper su", + "Ġpers u", + "Ġ tran", + "Ġt ran", + "Ġtr an", + "Ġtra n", + "ç ¨", + "_ CHANNEL", + "_CH ANNEL", + "_CHAN NEL", + "Ġs atisfaction", + "Ġsatisf action", + "Ġ GP", + "ĠG P", + "7 69", + "76 9", + "i ox", + "io x", + "m itt", + "mit t", + "mi tt", + "l ando", + "land o", + "la ndo", + "lan do", + "Ġ pig", + "Ġp ig", + "Ġpi g", + "in als", + "inal s", + "ina ls", + "ê ncia", + "ên cia", + "7 31", + "73 1", + "S urface", + "Sur face", + "Ġ UUID", + "ĠU UID", + "Ġbenef icial", + "Ġbenefici al", + "Ġ sequences", + "Ġse quences", + "Ġsequence s", + "Ġsequ ences", + "ĉ memset", + "ĉmem set", + "Ġmag ical", + "Ġmagic al", + " «", + "Ġw orn", + "Ġwor n", + "Ġwo rn", + "A SC", + "AS C", + "p opup", + "pop up", + "C OMP", + "CO MP", + "COM P", + "_ before", + "_b efore", + "_be fore", + "e ness", + "en ess", + "ene ss", + "enes s", + "U i", + "L es", + "Le s", + ". require", + ".re quire", + ".req uire", + ". Serializable", + ".Serial izable", + "add Gap", + "Ġ authorization", + "Ġauthor ization", + "0 85", + "08 5", + ".py plot", + "u rray", + "ur ray", + "urr ay", + "l atitude", + "lat itude", + "8 45", + "84 5", + "f rames", + "fr ames", + "frame s", + "fra mes", + "fram es", + "a js", + "aj s", + "Ġ compass", + "Ġcom pass", + "Ġcomp ass", + "Ġ observations", + "Ġobs ervations", + "Ġobserv ations", + "Ġobservation s", + "_ sup", + "_s up", + "_su p", + ".en viron", + ".env iron", + "Ġtr iple", + "Ġtri ple", + "Ġtrip le", + "Ġ Ruby", + "ĠR uby", + "ĠRub y", + "ĠRu by", + "Ġd rain", + "Ġdr ain", + "Ġdra in", + "_ FILTER", + "_F ILTER", + "S an", + "Sa n", + "U MP", + "UM P", + "Null Exception", + "Ġ Gab", + "ĠG ab", + "ĠGa b", + "o we", + "ow e", + "ĠTur kish", + "ĠTurk ish", + "_ sequence", + "_se quence", + "Ġ Grant", + "ĠG rant", + "ĠGr ant", + "ĠGran t", + "ĠGra nt", + "u ela", + "ue la", + "uel a", + "Ġ wo", + "Ġw o", + "Ġ cube", + "Ġc ube", + "Ġcu be", + "Ġcub e", + "i q", + "Ġdis orders", + "Ġdisorder s", + "Ġextra ordinary", + "Ġextraordin ary", + "Ġ ctrl", + "Ġc trl", + "Ġct rl", + "Ġctr l", + "Ġ Seq", + "ĠS eq", + "ĠSe q", + "en tr", + "ent r", + "8 65", + "86 5", + "Ġsan ctions", + "Ġsanct ions", + "Ġsanction s", + "9 49", + "94 9", + "ut sch", + "uts ch", + "Re ports", + "Report s", + "Rep orts", + "Repo rts", + "Ġ inherit", + "Ġin herit", + "Ġinher it", + "P eriod", + "Per iod", + "Ġphot ography", + "Ġphotograph y", + "Ġ Framework", + "ĠF ramework", + "ĠFr amework", + "ĠFrame work", + "ĠFram ework", + "Ġspecial ist", + "Ġspeci alist", + "Ġ ?ĊĊ", + "Ġ? ĊĊ", + "Ġ?Ċ Ċ", + "_ selected", + "_se lected", + "_select ed", + "_sel ected", + ". Player", + ".P layer", + ".Pl ayer", + ".Play er", + "Ġ allocation", + "Ġal location", + "Ġall ocation", + "Ġalloc ation", + "Ġallo cation", + "( account", + "(a ccount", + "(ac count", + "(acc ount", + "Ġ structural", + "Ġstruct ural", + "v able", + "va ble", + "- offset", + "-off set", + "-o ffset", + "-offs et", + ".App CompatActivity", + "а м", + "аР¼", + ".Add WithValue", + "Ġ icons", + "Ġi cons", + "Ġicon s", + "Ġic ons", + "Ġ shutdown", + "Ġsh utdown", + "Ġshut down", + "_ low", + "_l ow", + "_lo w", + "Ġ Compare", + "ĠCom pare", + "ĠComp are", + "ĠCompar e", + "Ġ Ce", + "ĠC e", + "= head", + "=h ead", + "l am", + "la m", + ". predict", + ".p redict", + ".pre dict", + ".pred ict", + "_ DEC", + "_D EC", + "_DE C", + "Ġ Sleep", + "ĠS leep", + "ĠSlee p", + "ĠSle ep", + "Ġ Gratis", + "ĠGr atis", + "ĠGrat is", + "Ġs uggestion", + "Ġsuggest ion", + "Ġ DEL", + "ĠD EL", + "ĠDE L", + "c aff", + "ca ff", + "caf f", + "av irus", + "avi rus", + "avir us", + "No thing", + "ŀ ĭ", + "Ġwide spread", + "Ġwides pread", + "Ġmechan isms", + "Ġmechanism s", + "Ġ textAlign", + "Ġtext Align", + "oc cup", + "occ up", + "Ġ Rail", + "ĠR ail", + "ĠRa il", + "ĠRai l", + ": NS", + ":N S", + "Ġ fiber", + "Ġf iber", + "Ġfi ber", + "Ġfib er", + "Ġ mk", + "Ġm k", + "Ġv intage", + "- long", + "-l ong", + "-lo ng", + ". reduce", + ".re duce", + ".red uce", + ". Entities", + ".Ent ities", + "( record", + "(re cord", + "(rec ord", + "Ġ pleasant", + "Ġple asant", + "Ġpleas ant", + "F RING", + "FR ING", + ". Cells", + ".C ells", + ".Cell s", + "O TT", + "OT T", + "ĉ elseif", + "ĉelse if", + "6 49", + "64 9", + "7 24", + "72 4", + "_ confirm", + "_con firm", + "_conf irm", + "ĠView Group", + "s ym", + "sy m", + "Ġ pray", + "Ġp ray", + "Ġpr ay", + "Ġpra y", + "Ġsus pected", + "Ġsusp ected", + "Ġsuspect ed", + "Cont ains", + "Con tains", + "Contain s", + "Conta ins", + "9 83", + "98 3", + "Ġb orders", + "Ġborder s", + "Ġbor ders", + "Ġbord ers", + "Ġcomponent Did", + "A SSERT", + "ASS ERT", + "Ġin finite", + "Ġinf inite", + "Ġinfinit e", + "- order", + "-or der", + "Ġ hello", + "Ġh ello", + "Ġhel lo", + "Ġhell o", + "Ġ Grade", + "ĠG rade", + "ĠGr ade", + "ĠGrad e", + "ĠGra de", + ".currentTime Millis", + "ap olis", + "apol is", + "apo lis", + "z h", + "ĉ Object", + "ĉO bject", + ": \\\\", + ":\\ \\", + "H O", + "val uation", + "valu ation", + "Ġ vocab", + "Ġv ocab", + "Ġvo cab", + "Ġvoc ab", + "7 19", + "71 9", + "Ġ coupon", + "Ġc oupon", + "Ġco upon", + "Ġcou pon", + "Ġcoup on", + "ata bases", + "atab ases", + "atabase s", + ". GetType", + ".Get Type", + "L earn", + "Le arn", + "7 92", + "79 2", + "] =\"", + "]= \"", + "Ġ Gary", + "ĠG ary", + "ĠGar y", + "ĠGa ry", + "ot ive", + "oti ve", + "Ġ ash", + "Ġa sh", + "Ġas h", + "Ġ bib", + "Ġb ib", + "Ġbi b", + "X XXX", + "XX XX", + "XXX X", + "Ġ balanced", + "Ġbalance d", + "Ġbal anced", + "VAL UE", + "Ġ Nat", + "ĠN at", + "ĠNa t", + "_ Ad", + "_A d", + "< E", + "åĮ º", + "Ġ MethodInfo", + "ĠMethod Info", + "8 97", + "89 7", + "L IB", + "LI B", + "Ġconsider able", + "Ġconsid erable", + "Ġ Industry", + "ĠInd ustry", + "ĠIndust ry", + "t ests", + "te sts", + "test s", + "tes ts", + ". setTitle", + ".set Title", + "Ġ Bluetooth", + "ĠB luetooth", + "ĠBl uetooth", + "ĠBlu etooth", + "Ġ mapped", + "Ġm apped", + "Ġmap ped", + "Ġma pped", + "Ġ Bruce", + "ĠBr uce", + "ĠBru ce", + "Ġ MainWindow", + "ĠMain Window", + "ĉ status", + "ĉs tatus", + "ĉst atus", + "ĉstat us", + "Ġ raz", + "Ġr az", + "Ġra z", + "ĠM and", + "ĠMan d", + "ĠMa nd", + "Ġ classification", + "Ġclass ification", + "Per missions", + "Permission s", + "Perm issions", + "9 69", + "96 9", + "Ġ ----------------------------------------------------------------------------", + "Ġ---------------------------------------------------------------- ------------", + "Ġ------------------------------------------------ ----------------------------", + "Ġ------------ ----------------------------------------------------------------", + "Ġ------ ----------------------------------------------------------------------", + "Ġ------------------------------------------------------------ ----------------", + "Ġ------------------------------------------------------------------------- ---", + "Ġ containers", + "Ġcont ainers", + "Ġcontainer s", + "Ġcontain ers", + "Ġconta iners", + ": set", + ":s et", + "_ xml", + "_x ml", + "Ġwh ilst", + "Th rough", + "Thr ough", + "Ġv align", + "Ġval ign", + "Ġworld s", + "Ġwor lds", + "C ORD", + "CO RD", + "COR D", + "ED IA", + "EDI A", + "ÑĢ ов", + "ÑĢо в", + "Ġs pare", + "Ġsp are", + "Ġspa re", + "Ġspar e", + "Ġ Had", + "ĠH ad", + "ĠHa d", + "Ġ DEF", + "ĠD EF", + "ĠDE F", + "( ptr", + "(p tr", + "(pt r", + "Ġw arming", + "Ġwar ming", + "Ġwarm ing", + "8 98", + "89 8", + "ठ¾", + "Ġcons ensus", + "a gne", + "ag ne", + "agn e", + "C TL", + "CT L", + "Ġ ìķ", + "Ġì ķ", + ". Main", + ".M ain", + ".Ma in", + "web Element", + "Ġp ist", + "Ġpi st", + "Ġpis t", + "F lash", + "Fl ash", + "App end", + "Ap pend", + "Appe nd", + ".tw img", + "T ap", + "Ta p", + "Ġveget ables", + "Ġvegetable s", + "a lg", + "al g", + "0 58", + "05 8", + ". sample", + ".s ample", + ".sam ple", + "Ġco aching", + "Ġcoach ing", + "( ind", + "(i nd", + "(in d", + "Cell Value", + "Check Box", + "Ġ Hell", + "ĠH ell", + "ĠHe ll", + "ĠHel l", + "R OOT", + "RO OT", + "7 96", + "79 6", + "Ġst adium", + "Ġstad ium", + "Ġinvestig ating", + ") %", + "s ted", + "st ed", + "ste d", + "9 65", + "96 5", + "Ġ Writing", + "ĠW riting", + "ĠWr iting", + "Ġ ê²", + "Ġê ²", + "Ġ uno", + "Ġu no", + "Ġun o", + "Ġ {{--", + "Ġ{{ --", + "Ġ coords", + "Ġco ords", + "Ġcoord s", + "Ġun ser", + "Ġuns er", + "o rganization", + "organ ization", + "Ġ Crime", + "ĠCr ime", + "ĠCri me", + "ĠDem ocrat", + "ĠDemocr at", + "5 79", + "57 9", + "Ġ vin", + "Ġv in", + "Ġvi n", + "/ file", + "/f ile", + "0 78", + "07 8", + "- api", + "-a pi", + "-ap i", + "Ġ Ay", + "ĠA y", + "Ġf unded", + "Ġfun ded", + "Ġfund ed", + "ĠBr exit", + "ĠBre xit", + "ĠG h", + "ent ina", + "enti na", + "entin a", + "c ases", + "ca ses", + "case s", + "cas es", + "Ġ dash", + "Ġd ash", + "Ġda sh", + "Ġdas h", + "Ġ!! }Ċ", + "Ġ!!} Ċ", + "H I", + "Off ice", + "Ġcap tain", + "Ġcapt ain", + "Ġwor ship", + "Ġwors hip", + "Ġworsh ip", + "\\ C", + "7 33", + "73 3", + "8 51", + "85 1", + "Ġg lobe", + "Ġgl obe", + "Ġglob e", + "Ġglo be", + "_ board", + "_b oard", + "_bo ard", + "Ġb abies", + "Ġba bies", + "Ġbab ies", + "8 76", + "87 6", + "Ġcon secutive", + "Ġconsec utive", + "Ġenh anced", + "Ġenhance d", + "er eum", + "ere um", + "ĠAd vis", + "ĠAdv is", + "Ġg rain", + "Ġgr ain", + "Ġgra in", + "7 71", + "77 1", + "Ġc raw", + "Ġcr aw", + "Ġcra w", + "ancell ationToken", + "ancellation Token", + ". alpha", + ".al pha", + "_ WITH", + "_W ITH", + "ĠO tt", + "ĠOt t", + "Ġ Cool", + "ĠC ool", + "ĠCo ol", + ". batch", + ".b atch", + ".bat ch", + "Ġ verified", + "Ġver ified", + "( callback", + "(c allback", + "(call back", + "Ġreg ards", + "Ġregard s", + "6 83", + "68 3", + "Ġ IntPtr", + "ĠInt Ptr", + "o ucher", + "ou cher", + "ouch er", + "Ġ kin", + "Ġk in", + "Ġki n", + "Ġt ouched", + "Ġtouch ed", + "Ġtou ched", + "it Ãł", + "a thon", + "at hon", + "ath on", + "Ġadj acent", + "Ġaccom panied", + "L EAR", + "LE AR", + "Ġim plies", + "Ġimp lies", + "Ġimpl ies", + "Ġ hill", + "Ġh ill", + "Ġhi ll", + "Ġhil l", + "ĠB altimore", + "ĠBalt imore", + "= \"-", + "=\" -", + "F inally", + "Fin ally", + "Final ly", + "8 83", + "88 3", + "S am", + "Sa m", + "ic opt", + "ico pt", + "Ġs od", + "Ġso d", + "Ġ maj", + "Ġm aj", + "Ġma j", + "Ġ Shipping", + "ĠSh ipping", + "ĠShip ping", + "ĠShi pping", + "Ġ getAll", + "Ġget All", + "Ġco aches", + "Ġcoach es", + "Ġdon ations", + "Ġdonation s", + "i lot", + "il ot", + "ilo t", + "Ġ Tar", + "ĠT ar", + "ĠTa r", + "c err", + "ce rr", + "cer r", + "Ġ badge", + "Ġb adge", + "Ġbad ge", + "Ġba dge", + "Ġ markers", + "Ġm arkers", + "Ġmark ers", + "Ġmar kers", + "Ġmarker s", + "Ġ Rand", + "ĠR and", + "ĠRa nd", + "ĠRan d", + "a ised", + "ai sed", + "ais ed", + "aise d", + "iss ance", + "issa nce", + "issan ce", + "Ġexpl oring", + "Ġexplo ring", + "Ġexplor ing", + "8 27", + "82 7", + "u ced", + "uc ed", + "uce d", + "ĠInd onesia", + "ĠIndones ia", + "ĠIndo nesia", + "Ġbe neath", + "Ġbene ath", + "Ġm agnetic", + "Ġmagn etic", + "Ġmagnet ic", + "Ġm useum", + "Ġmus eum", + "Ġmuse um", + "match Condition", + "Ġdis rupt", + "Ġre mind", + "Ġrem ind", + "Ġremin d", + "Ġ TM", + "ĠT M", + "Ġ /><", + "Ġ/ ><", + "Ġ/> <", + "Ġf ool", + "Ġfo ol", + "Ġfoo l", + "Ġ esk", + "Ġe sk", + "Ġes k", + ". Null", + ".N ull", + "Ġ Dies", + "ĠD ies", + "ĠDi es", + "ĠDie s", + "_ OUTPUT", + "_OUT PUT", + "_TYPE D", + "_TYP ED", + "Ġp ainted", + "Ġpaint ed", + "Ġpain ted", + "6 73", + "67 3", + "7 35", + "73 5", + "Ġsoph istic", + "Ġ Bear", + "ĠB ear", + "ĠBe ar", + "ĠBea r", + "* n", + "_ PACK", + "_P ACK", + "_PA CK", + "Ġdel ivering", + "Ġdeliver ing", + "Ġ COUNT", + "ĠC OUNT", + "ĠCO UNT", + "åį ķ", + "Ġj eg", + "Ġje g", + "- car", + "-c ar", + "-ca r", + "f name", + "fn ame", + "Ġr anging", + "Ġran ging", + "Ġrang ing", + "8 48", + "84 8", + "Ġ Neg", + "ĠN eg", + "ĠNe g", + "/ ******/", + "Ġ CHAR", + "ĠCH AR", + "Ġu ltra", + "Ġult ra", + "Ġul tra", + "Ġultr a", + "G rad", + "Gr ad", + "= t", + "Ġjud ges", + "Ġjudge s", + "ĠD ise", + "ĠDis e", + "ĠDi se", + "an ners", + "ann ers", + "anner s", + "anne rs", + "9 85", + "98 5", + "8 91", + "89 1", + "8 61", + "86 1", + "Ġ scal", + "Ġs cal", + "Ġsc al", + "Ġsca l", + "_ cal", + "_c al", + "_ca l", + "ĠCON NECTION", + "ĠCONNECT ION", + "_ embed", + "_em bed", + "_emb ed", + "( fn", + "(f n", + "Ġ Craft", + "ĠC raft", + "ĠCr aft", + "ĠCra ft", + "0 47", + "04 7", + "Ġ Pas", + "ĠP as", + "ĠPa s", + "\" )->", + "\") ->", + ". convert", + ".con vert", + ".conv ert", + ". resource", + ".re source", + ".res ource", + "Ġ STATUS", + "ĠST ATUS", + "ĠSTAT US", + "ô ng", + "ôn g", + "Ġ Tit", + "ĠT it", + "ĠTi t", + "Ġclass room", + "ĠArch itect", + "ĠK ings", + "ĠKing s", + "ĠKin gs", + "Ġ steady", + "Ġste ady", + "Ġstead y", + "/* !Ċ", + "/*! Ċ", + "Ġ Gene", + "ĠG ene", + "ĠGe ne", + "ĠGen e", + ") \";Ċ", + ")\" ;Ċ", + "i cia", + "ic ia", + "ici a", + "s tan", + "st an", + "sta n", + "Ġ Construction", + "ĠCon struction", + "ĠConstruct ion", + "ĠConstr uction", + "um per", + "ump er", + "9 51", + "95 1", + "w c", + "Ġ CBS", + "ĠC BS", + "ĠCB S", + "in ging", + "ing ing", + "- party", + "-p arty", + "-part y", + "-par ty", + "( driver", + "(d river", + "(dr iver", + "M ARK", + "MA RK", + "MAR K", + "0 82", + "08 2", + "Ġ nested", + "Ġn ested", + "Ġne sted", + "Ġnest ed", + "Ġneste d", + "Ġnes ted", + "e ward", + "ew ard", + "Ġ dependency", + "Ġd ependency", + "Ġdep endency", + "Ġdepend ency", + "Ġm ales", + "Ġma les", + "Ġmale s", + "Ġmal es", + "9 28", + "92 8", + "Ġ ONE", + "ĠO NE", + "ĠON E", + "Ġ Production", + "ĠP roduction", + "ĠPro duction", + "ĠProduct ion", + "ĠProdu ction", + "ĠProd uction", + "] [$", + "][ $", + "ãĥ¼ ãĥ", + "_ LOAD", + "_L OAD", + "_LO AD", + "ĠB ol", + "ĠBo l", + "el ry", + "8 31", + "83 1", + "ł éĻ¤", + "Ġ Require", + "ĠRe quire", + "ĠReq uire", + "Ġ placing", + "Ġpl acing", + "Ġplac ing", + "Ġpla cing", + "x xx", + "xx x", + "C ALE", + "CA LE", + "CAL E", + "Ġ thumb", + "Ġth umb", + "Ġthu mb", + "8 24", + "82 4", + "Ch oose", + "Cho ose", + "Ġ prototype", + "Ġprot otype", + "Ġproto type", + "V OID", + "VO ID", + "Ġles bian", + "Ġlesb ian", + "Ġlesbi an", + "7 41", + "74 1", + "Ġ traits", + "Ġt raits", + "Ġtr aits", + "Ġtra its", + "Ġtrait s", + "Ġtrai ts", + "Sh arp", + "Shar p", + "Sha rp", + "Ġ consume", + "Ġcon sume", + "Ġcons ume", + "Ġconsum e", + "Tr uth", + "Ġaction Performed", + "Ġ Environmental", + "ĠEnvironment al", + "Ġ Dean", + "ĠD ean", + "ĠDe an", + "Ġ estado", + "Ġest ado", + "Ġesta do", + "Ġestad o", + "s ame", + "sa me", + "sam e", + "Ġ numeric", + "Ġn umeric", + "Ġnum eric", + "Ġnumer ic", + "Ġnu meric", + "Ġtrans it", + "Ġtran sit", + ". Email", + ".E mail", + "- side", + "-s ide", + "_ RUN", + "_R UN", + "ĠV illage", + "ĠVill age", + "ĠVilla ge", + "ĠVil lage", + "_ OPEN", + "_OP EN", + "è ¦", + ". rem", + ".re m", + ".r em", + "- warning", + "-w arning", + "-war ning", + "a nya", + "an ya", + "any a", + "Property Changed", + "Ġ (!_", + "Ġ(! _", + "( check", + "(c heck", + "(ch eck", + "i lia", + "il ia", + "ili a", + "Ġ Soft", + "ĠS oft", + "ĠSo ft", + "ĠSof t", + "st eps", + "ste ps", + "step s", + "ĠMad rid", + "Memory Warning", + "Ġ handlers", + "Ġhand lers", + "Ġhandle rs", + "Ġhandler s", + "Ġexperi encing", + "Ġ inspect", + "Ġin spect", + "Ġins pect", + "Ġinsp ect", + "button s", + "but tons", + "butt ons", + "Receive MemoryWarning", + "ch emy", + "che my", + "chem y", + "L inks", + "Link s", + "Lin ks", + "Ġurl lib", + "Ġur llib", + ".System Colors", + "Ġ Eigen", + "ĠE igen", + "ĠEig en", + "Ġpun ishment", + "Ġpunish ment", + ":UI Control", + "b ara", + "bar a", + "ba ra", + "- set", + "-s et", + "-se t", + "Ġ }čĊčĊčĊ", + "Ġ} čĊčĊčĊ", + "Ġ}čĊ čĊčĊ", + "Ġ}čĊčĊ čĊ", + "Ġt olerance", + "Ġtoler ance", + "Ġ interfaces", + "Ġinter faces", + "Ġinterface s", + "Ġinterf aces", + ". redirect", + ".re direct", + ".red irect", + "ighb ors", + "ighbor s", + "cs rf", + "csr f", + "_ background", + "_back ground", + ". Utils", + ".Util s", + "_ HT", + "_H T", + "6 92", + "69 2", + "Ġ Interest", + "ĠInter est", + "i mos", + "im os", + "imo s", + "Ġgr ants", + "Ġgrant s", + "Ġgran ts", + "Ġgra nts", + "0 83", + "08 3", + "Ġexam ined", + "Ġexamine d", + "Ð Ķ", + "Ġ cf", + "Ġc f", + "f orge", + "for ge", + "forg e", + "b acks", + "back s", + "ba cks", + "bac ks", + "Ġ Objects", + "ĠObject s", + "ĠObj ects", + "_ sent", + "_s ent", + "_se nt", + ". entry", + ".en try", + ".ent ry", + "Ġ THEN", + "ĠT HEN", + "ĠTHE N", + "ĠTH EN", + "ell ido", + "elli do", + "c ia", + "ci a", + ", res", + ",r es", + ",re s", + "6 59", + "65 9", + "6 81", + "68 1", + "/st dc", + "/std c", + ". nd", + ".n d", + "( Int", + "(I nt", + "(In t", + "Ġ Authors", + "ĠAuthor s", + "ĠAuth ors", + "ĠApp CompatActivity", + "' {", + "Ġ medi", + "Ġm edi", + "Ġme di", + "Ġmed i", + "M usic", + "Mu sic", + "Mus ic", + "i gm", + "ig m", + "ce ipt", + "Ġ auss", + "Ġa uss", + "Ġau ss", + "Ġaus s", + "Ġtarget ing", + "Ġtarg eting", + "Ġ Keys", + "ĠKey s", + "ĠKe ys", + "h n", + ": ]Ċ", + ":] Ċ", + "Ġmin eral", + "Ġmine ral", + "Ġminer al", + "à ®", + ". ca", + ".c a", + "7 61", + "76 1", + "o med", + "om ed", + "ome d", + "Ġ sheets", + "Ġs heets", + "Ġshe ets", + "Ġsheet s", + "Ġc amb", + "Ġca mb", + "Ġcam b", + "Ġdead ly", + ". inject", + ".in ject", + "( unit", + "(u nit", + "(un it", + "Ġ Selection", + "ĠS election", + "ĠSe lection", + "ĠSelect ion", + "ĠSel ection", + "ĠSele ction", + ".g ms", + "( connection", + "(con nection", + "(conn ection", + "(connect ion", + "Ġ $(\"", + "Ġ$ (\"", + "Ġ$( \"", + "é mon", + "ém on", + "Ġ Currently", + "ĠCurrent ly", + "p te", + "pt e", + "_ paths", + "_p aths", + "_path s", + "_pa ths", + "_pat hs", + "8 47", + "84 7", + "le af", + "lea f", + "Ġimp lications", + "Ġimpl ications", + "Ġimplication s", + "Ġimplic ations", + "p osal", + "pos al", + "po sal", + "ä½ į", + "[ /", + "a ncia", + "an cia", + "anc ia", + "é Ľ", + "m ul", + "mu l", + "c ie", + "ci e", + "Ġge ile", + "Ġgeil e", + "6 79", + "67 9", + "im als", + "imal s", + "ima ls", + "UI View", + "Ġs urre", + "Ġsur re", + "s erialize", + "serial ize", + "I SO", + "IS O", + "Ġar bitrary", + "Ġarbit rary", + "Ġarbitr ary", + "Ġsock addr", + ". fn", + ".f n", + "Ġ Merc", + "ĠM erc", + "ĠMe rc", + "ĠMer c", + "Ġ casting", + "Ġc asting", + "Ġcas ting", + "Ġcast ing", + "Key Down", + "Ġ newValue", + "Ġnew Value", + "ĠnewVal ue", + "op ens", + "open s", + "ope ns", + "7 17", + "71 7", + "T odo", + "To do", + "Ġflex ibility", + "ĉ ĉĉĉĠĠ", + "ĉĉ ĉĉĠĠ", + "ĉĉĉĉ ĠĠ", + "ĉĉĉ ĉĠĠ", + "ĉĉĉĉĠ Ġ", + "V elocity", + "Vel ocity", + "ú n", + "r owing", + "ro wing", + "row ing", + "Ġ computed", + "Ġcom puted", + "Ġcomp uted", + "Ġcomput ed", + "Ġcompute d", + "` )Ċ", + "`) Ċ", + "st atement", + "state ment", + "stat ement", + "sta tement", + "Ġ ri", + "Ġr i", + "_ cart", + "_c art", + "_car t", + "_ca rt", + "L ow", + "Lo w", + "trans fer", + ". nav", + ".n av", + "Ġ grave", + "Ġgr ave", + "Ġgra ve", + "Ġgrav e", + "Ġ Door", + "ĠD oor", + "ĠDo or", + "ĉ alert", + "ĉal ert", + "6 91", + "69 1", + "6 98", + "69 8", + ". subscribe", + ".sub scribe", + "- profile", + "-pro file", + "-pr ofile", + "-prof ile", + "ĉ base", + "ĉb ase", + "Ġ âĪĴ", + "ĠâĪ Ĵ", + "_ _ĊĊ", + "__ ĊĊ", + "__Ċ Ċ", + "Ġengine ers", + "Ġengineer s", + "Ġexp losion", + "Ġexplos ion", + "Ġd ari", + "Ġda ri", + "Ġdar i", + "6 82", + "68 2", + "ĉ Log", + "ĉL og", + "o nal", + "on al", + "ona l", + "Ġis olated", + "Ġisol ated", + "Ġiso lated", + "Ġisolate d", + "{ i", + "Ġ Msg", + "ĠM sg", + "ĠMs g", + "F uture", + "Fu ture", + "Ġr acist", + "Ġrac ist", + "- wrap", + "-w rap", + "Ġ Vers", + "ĠV ers", + "ĠVer s", + "ĠVe rs", + "b org", + "bo rg", + "bor g", + "I SION", + "IS ION", + "Ġ ÑĢаÐ", + "ĠÑĢ аÐ", + "ĠÑĢа Ð", + "ĠY an", + "ĠYa n", + "8 36", + "83 6", + "init With", + "Ġn omin", + "Ġno min", + "Ġnom in", + "( empty", + "(em pty", + "(emp ty", + "ÃŃ n", + "ã Ĥ¤", + "ãĤ ¤", + "ĉ width", + "ĉw idth", + "Ġch amber", + "Ġcham ber", + "/ ajax", + "/a jax", + "E MP", + "EM P", + "0 93", + "09 3", + "Ġne ces", + "Ġnec es", + "i vos", + "iv os", + "ivo s", + "log ic", + "* )&", + "*) &", + "cri pts", + "cript s", + "9 76", + "97 6", + "Row At", + "0 53", + "05 3", + "i blings", + "ib lings", + "ibling s", + "Ġ ears", + "Ġe ars", + "Ġear s", + "Ġea rs", + "Ġcomp uting", + "Ġcomput ing", + "Ġ maker", + "Ġm aker", + "Ġmake r", + "Ġma ker", + "Ġmak er", + "Ġ Neither", + "ĠN either", + "ĠNe ither", + "b readcrumb", + "Ġ serialize", + "Ġs erialize", + "Ġserial ize", + "Ġ Within", + "ĠWith in", + "ĠWi thin", + "ĠWit hin", + "Ġd ell", + "Ġde ll", + "Ġdel l", + "_ TRACE", + "_TR ACE", + "_TRA CE", + "0 92", + "09 2", + "= a", + "Ġw ishes", + "Ġwish es", + "Ġwis hes", + "- inch", + "-in ch", + "-inc h", + "ĠD or", + "ĠDo r", + "Ġinnoc ent", + "ĠD ol", + "ĠDo l", + "Ġint ens", + "Ġinte ns", + "for ced", + "force d", + "forc ed", + "0 54", + "05 4", + "Ġ BIT", + "ĠB IT", + "ĠBI T", + "Ġphot ographs", + "Ġphoto graphs", + "Ġphotograph s", + "Ġc asa", + "Ġca sa", + "Ġcas a", + "Ġ Len", + "ĠL en", + "ĠLe n", + "\\ Framework", + "\\F ramework", + ". Simple", + ".S imple", + "Ġd ear", + "Ġde ar", + "8 95", + "89 5", + ") /(", + ")/ (", + "ip pi", + "ipp i", + "Ġ owns", + "Ġown s", + "Ġow ns", + "P layers", + "Pl ayers", + "Player s", + "Play ers", + "Ġprop osals", + "Ġpropos als", + "Ġproposal s", + ". pi", + ".p i", + "us alem", + "usa lem", + "usal em", + "D amage", + "Da mage", + "Dam age", + "Ġcal ories", + "Ġcalorie s", + "Ġcalor ies", + "Ġ Creative", + "ĠC reative", + "ĠCre ative", + "ĠCreat ive", + "Ġ [$", + "Ġ[ $", + "Ġ //čĊ", + "Ġ// čĊ", + "Ġ/ /čĊ", + "7 86", + "78 6", + "And View", + "è me", + "èm e", + ". custom", + ".c ustom", + "_ factory", + "_f actory", + "_factor y", + "_fact ory", + "comm ands", + "command s", + "comma nds", + "_ look", + "_l ook", + "_lo ok", + "Ġ strcmp", + "Ġstr cmp", + "Y N", + "a ired", + "air ed", + "ai red", + "aire d", + "Ġ audit", + "Ġa udit", + "Ġaud it", + "Ġau dit", + "Ġaudi t", + "о ÑģÑĤ", + "оÑģ ÑĤ", + "Ġ Reverse", + "ĠRe verse", + "ĠRev erse", + "ĠRever se", + "ropri ate", + "e tics", + "et ics", + "etic s", + "eti cs", + "< vector", + "';Ċ", + "\"> ';Ċ", + "\">' ;Ċ", + "Ġpe pper", + "Ġpepp er", + "Ġpep per", + "9 89", + "98 9", + "Ġ shed", + "Ġs hed", + "Ġsh ed", + "Ġshe d", + "Ġ Medium", + "ĠM edium", + "ĠMed ium", + "ĠMedi um", + "Ġ Cookie", + "ĠC ookie", + "ĠCo okie", + "ĠCook ie", + "8 89", + "88 9", + "Ġoverse as", + "ed or", + "edo r", + "as urement", + "asure ment", + "asu rement", + "7 66", + "76 6", + "åŃ ĺ", + "Ġ' .'", + "Ġ'. '", + "Ġ php", + "Ġp hp", + "Ġph p", + "Ġ PROC", + "ĠP ROC", + "ĠPRO C", + "ĠPR OC", + "Ġexcept ional", + "Ġexception al", + "( th", + "(t h", + "Ġ Jet", + "ĠJ et", + "ĠJe t", + "Ġ occupied", + "Ġoccup ied", + ". setImage", + ".set Image", + "Ġ Related", + "ĠRe lated", + "ĠRel ated", + "u cker", + "uc ker", + "uck er", + "M embers", + "Member s", + "Mem bers", + "PR INT", + "PRI NT", + "ĠG lo", + "ĠGl o", + "_ VIEW", + "_V IEW", + "} \",Ċ", + "}\", Ċ", + "}\" ,Ċ", + "Ġad option", + "Ġadopt ion", + "Ġado ption", + "[ ])Ċ", + "[] )Ċ", + "[]) Ċ", + "8 42", + "84 2", + "ĠMiss ouri", + "ĠLin coln", + "er ald", + "era ld", + "eral d", + "P opup", + "Pop up", + "Ġf ate", + "Ġfa te", + "Ġfat e", + "- bootstrap", + "-boot strap", + "f ections", + "fe ctions", + "fect ions", + "fection s", + "Ġ Poll", + "ĠP oll", + "ĠPol l", + "ĠPo ll", + "_ ARGS", + "_ARG S", + "_AR GS", + "in ance", + "ina nce", + "inan ce", + "6 97", + "69 7", + "- home", + "-h ome", + ". ),", + ".) ,", + "_ done", + "_d one", + "_do ne", + "_don e", + "6 94", + "69 4", + ": ĊĊĊ", + ":Ċ ĊĊ", + ":ĊĊ Ċ", + "Ġdiscuss ing", + "Ġ SQLException", + "ĠSQL Exception", + "Ġelect ro", + "Ġelectr o", + "ĉ req", + "ĉr eq", + "ĉre q", + "Ġ zw", + "Ġz w", + "8 86", + "88 6", + "Ġl ui", + "Ġlu i", + "9 32", + "93 2", + "Ġover night", + "$ user", + "Ġ WAY", + "ĠW AY", + "ĠWA Y", + "Ġall erg", + "Ġalle rg", + "Ġaller g", + "Ġdis appointed", + "Ġdisappoint ed", + "Ġrad iation", + "Ġradi ation", + "Ġim pressed", + "Ġimp ressed", + "Ġimpress ed", + "Ġimpr essed", + "Ġimpres sed", + "if icates", + "ific ates", + "ificate s", + "ifica tes", + "Ġt ob", + "Ġto b", + "CL ASS", + "CLA SS", + "Ġ cuda", + "Ġc uda", + "Ġcu da", + "Ġcud a", + "_ det", + "_d et", + "_de t", + "- post", + "-p ost", + "-pos t", + "-po st", + "u lu", + "ul u", + "Trans lation", + "- hand", + "-h and", + ". year", + ".y ear", + "Ġ Mongo", + "ĠM ongo", + "ĠMon go", + "ĠMo ngo", + "ĠMong o", + "Ġun clear", + "Ġunc lear", + "Ġuncle ar", + ". engine", + ".e ngine", + ".eng ine", + "WEB PACK", + "r ices", + "ri ces", + "ric es", + "rice s", + "_ ACCESS", + "_AC CESS", + "_ACC ESS", + "Ġh olidays", + "Ġholiday s", + "per cent", + "perc ent", + ". Identity", + ".Id entity", + "Ġ Gov", + "ĠG ov", + "ĠGo v", + "Ġpass ionate", + "Ġpassion ate", + "! !.", + "!! .", + "ĠG reece", + "ĠGre ece", + "ĠGree ce", + "plus plus", + "' ));", + "') );", + "')) ;", + "G P", + "Ġex cit", + "Ġexc it", + ".tab Page", + "_ cond", + "_c ond", + "_con d", + "_co nd", + "Ġ sponsor", + "Ġs ponsor", + "Ġspons or", + "M ODULE", + "MOD ULE", + "_ proc", + "_p roc", + "_pro c", + "_pr oc", + "Ġ $Ċ", + "Ġ$ Ċ", + "Ġr ational", + "Ġrat ional", + "Ġratio nal", + "Ġration al", + ". Tool", + ".T ool", + ".To ol", + "Ġi hr", + "Ġih r", + "c ca", + "cc a", + "åĵ ģ", + "ĠE state", + "ĠEst ate", + "ĠEsta te", + "IB UTE", + "IBUT E", + "Action Performed", + "Ġ Solar", + "ĠS olar", + "ĠSo lar", + "ĠSol ar", + "¦ Ĥ", + "Ġequ ity", + "Ġeq uity", + "t id", + "ti d", + "9 38", + "93 8", + "Ġre cip", + "Ġrec ip", + ". simple", + ".s imple", + ".sim ple", + "m k", + "6 89", + "68 9", + "Ġ Luke", + "ĠL uke", + "ĠLu ke", + "ĠLuk e", + "ĠGuard ian", + "Ġ encrypted", + "Ġenc rypted", + "Ġencrypt ed", + "Ġdom inant", + "Ġdomin ant", + "Ġdomina nt", + ". place", + ".p lace", + ".pl ace", + "Ġ NV", + "ĠN V", + "8 39", + "83 9", + "Ġton gue", + "Ġtong ue", + "( Get", + "(G et", + "Ġst ainless", + "Ġstain less", + ". Play", + ".P lay", + ".Pl ay", + "Ġ eb", + "Ġe b", + "a ci", + "ac i", + ". buffer", + ".b uffer", + ".buf fer", + "readcr umbs", + "readcrumb s", + "Ġv accine", + "Ġvacc ine", + "p rom", + "pr om", + "pro m", + "9 79", + "97 9", + "Ġ userInfo", + "Ġuser Info", + "Ġ slug", + "Ġs lug", + "Ġsl ug", + "Ġslu g", + "Serial izedName", + "Serialized Name", + "- wide", + "-w ide", + "Ġre actions", + "Ġreaction s", + "Ġreact ions", + "Ġ Yang", + "ĠY ang", + "ĠYan g", + "ĠYa ng", + "Ġ Adds", + "ĠA dds", + "ĠAd ds", + "ĠAdd s", + "( userId", + "(user Id", + "Ġ plates", + "Ġp lates", + "Ġpl ates", + "Ġplate s", + "Ġpla tes", + "Ġplat es", + "Ġ MEM", + "ĠM EM", + "ĠME M", + "Ġb ail", + "Ġba il", + "In side", + "Ins ide", + "e ted", + "et ed", + "ete d", + "Ġ elsif", + "Ġels if", + "Ġs ake", + "Ġsa ke", + "Ġsak e", + "Ġ cycles", + "Ġc ycles", + "Ġcy cles", + "Ġcycle s", + "Ġcycl es", + "Ġcyc les", + "Ġ ìĹ", + "Ġì Ĺ", + "ĉ I", + "- collapse", + "-c ollapse", + "8 41", + "84 1", + "Ġ GMT", + "ĠG MT", + "ĠGM T", + "8 14", + "81 4", + "De claration", + "Ġg ros", + "Ġgr os", + "Ġgro s", + "Ġre aches", + "Ġreach es", + "Ġcust ody", + "Un til", + "Unt il", + "7 53", + "75 3", + "8 56", + "85 6", + "t u", + "ĠC hen", + "ĠCh en", + "ĠChe n", + "Ġ nx", + "Ġn x", + "( addr", + "(add r", + "(ad dr", + "Ġ Offer", + "ĠO ffer", + "ĠOff er", + "ĠOf fer", + "Ġcol leg", + "Ġcoll eg", + "Ġcolle g", + "ass ador", + "6 74", + "67 4", + "Ġ mapper", + "Ġm apper", + "Ġmap per", + "Ġma pper", + "8 54", + "85 4", + "ĠS IGNAL", + "ĠSIG NAL", + "ĠSIGN AL", + "ĠB loom", + "ĠBl oom", + "ĠBlo om", + "ĠH oll", + "ĠHol l", + "ĠHo ll", + "ĠIm per", + "ĠImp er", + "- des", + "-d es", + "-de s", + "_ site", + "_s ite", + "_si te", + "P roc", + "Pro c", + "Pr oc", + "E qu", + "Eq u", + "Ġ atomic", + "Ġat omic", + "Ġatom ic", + "Ġ Woman", + "ĠW oman", + "ĠWo man", + "s ent", + "se nt", + "sen t", + "7 38", + "73 8", + "8 17", + "81 7", + "s car", + "sc ar", + "Ġint elligent", + "Ġintellig ent", + "Ġ Getting", + "ĠG etting", + "ĠGet ting", + "Ġ Registration", + "ĠReg istration", + "ĠRegistr ation", + "Ġ Phill", + "ĠP hill", + "ĠPh ill", + "ĠPhil l", + "ĠPhi ll", + "Ġ killer", + "Ġk iller", + "Ġkill er", + "Ġkil ler", + "Ġki ller", + "un icode", + "unic ode", + "uni code", + "Ċ ĉĉĊ", + "Ġ Jacob", + "ĠJ acob", + "ĠJac ob", + "ĠJa cob", + "Ġ Const", + "ĠCon st", + "ĠCo nst", + "ĠCons t", + "Ġ locate", + "Ġl ocate", + "Ġlo cate", + "Ġloc ate", + "Ġc aus", + "Ġca us", + "7 49", + "74 9", + "ĠSch olar", + "ĠScho lar", + "Ġ constitutional", + "Ġconstitution al", + "Ġin flation", + "Ġinf lation", + "Ġinfl ation", + "Ġ Got", + "ĠG ot", + "ĠGo t", + "= array", + "=a rray", + "en dum", + "end um", + "Ġ translated", + "Ġtrans lated", + "Ġtransl ated", + "Ġtranslate d", + "Ġdiv orce", + "Ġdivor ce", + "En tries", + "Ent ries", + "Entr ies", + "Ġs or", + "Ġso r", + "Ġ Quote", + "ĠQu ote", + "ir lines", + "irl ines", + "U K", + "Ġ excel", + "Ġex cel", + "Ġexc el", + "Ġexce l", + "( opt", + "(o pt", + "(op t", + "Ġ ADV", + "ĠA DV", + "ĠAD V", + ", :,", + ",: ,", + "Ġcont acted", + "Ġcontact ed", + "7 42", + "74 2", + "Ġ DA", + "ĠD A", + "Ġr ings", + "Ġring s", + "Ġrin gs", + "Ġ Industrial", + "ĠInd ustrial", + "ĠIndust rial", + ". getContext", + ".get Context", + "Ġforg otten", + "Ġforgot ten", + "Ġ Tan", + "ĠT an", + "ĠTa n", + "Ġ pants", + "Ġp ants", + "Ġpa nts", + "Ġpan ts", + "Ġpant s", + "Ġ ov", + "Ġo v", + "Ġ decoder", + "Ġde coder", + "Ġdec oder", + "Ġdecode r", + "Ġdeco der", + "Ġ Partial", + "ĠP artial", + "ĠPart ial", + "ĠParti al", + "Ġ vc", + "Ġv c", + "Ġb attles", + "Ġbattle s", + "Ġbatt les", + "A rial", + "Ar ial", + "FRING EMENT", + "i rates", + "ir ates", + "ira tes", + "irate s", + ", w", + "aint enance", + "Ġ Od", + "ĠO d", + "ĠTechn ologies", + "åī į", + "ĠC arter", + "ĠCar ter", + "ĠCart er", + ". findAll", + ".find All", + "N ome", + "No me", + "Nom e", + "B en", + "Be n", + "Ġ Usage", + "ĠU sage", + "ĠUs age", + "ĠUsa ge", + "Ġ Picture", + "ĠP icture", + "ĠPic ture", + "Ġbad ly", + "_ panel", + "_p anel", + "_pa nel", + "_pan el", + "Ġpat ent", + "Ġpa tent", + "Ġ Protocol", + "ĠProt ocol", + "ĠProto col", + "l otte", + "lo tte", + "lot te", + "ĉ player", + "ĉp layer", + "ĉpl ayer", + "ĉplay er", + "j ections", + "ject ions", + "je ctions", + "jection s", + "7 46", + "74 6", + "Ġ dou", + "Ġd ou", + "Ġdo u", + "_ release", + "_re lease", + "_r elease", + "_rel ease", + "urn iture", + "_ tax", + "_t ax", + "_ta x", + "Ġ Fields", + "ĠF ields", + "ĠField s", + ". dataset", + ".d ataset", + ".data set", + ".dat aset", + ".datas et", + "_ master", + "_m aster", + "_ma ster", + "_mas ter", + "CLUD E", + "CLU DE", + "ĠPh arm", + "ĠPhar m", + "b st", + "bs t", + "Ġoper ational", + "Ġoperation al", + ". cell", + ".c ell", + ".ce ll", + "Ġident ifying", + "Ġidentify ing", + "Ġ jwt", + "Ġj wt", + "t uple", + "tu ple", + "Ġ TC", + "ĠT C", + "Ġ Cro", + "ĠC ro", + "ĠCr o", + "9 36", + "93 6", + "ix map", + "- components", + "-com ponents", + "-component s", + "-comp onents", + "g eneral", + "gen eral", + "gener al", + "gene ral", + "Ġ oz", + "Ġo z", + "_ De", + "_D e", + "_ double", + "_d ouble", + "_do uble", + "Ġ Too", + "ĠT oo", + "ĠTo o", + "0 88", + "08 8", + ".View Group", + "8 79", + "87 9", + "g ate", + "ga te", + "d ings", + "ding s", + "din gs", + "ph otos", + "photo s", + "phot os", + "Ġgr ande", + "Ġgrand e", + "Ġgran de", + "Ġgra nde", + "ol lect", + "oll ect", + "olle ct", + "_ lin", + "_l in", + "_li n", + "Ġaw ful", + "f ilters", + "filter s", + "fil ters", + "filt ers", + "Ġ alternate", + "Ġaltern ate", + "e sp", + "es p", + "Ġ compress", + "Ġcom press", + "Ġcomp ress", + "Ġcompr ess", + "e o", + "Ġ Scale", + "ĠS cale", + "ĠSc ale", + "ĠScal e", + "Ġin direct", + "Ġind irect", + "Ġindir ect", + "Ġ invoice", + "Ġin voice", + "Ġinv oice", + "Ġinvo ice", + "ĊĊ ĊĊĊĊĊĊĊĊĊĊĊĊĊĊ", + "ĊĊĊĊ ĊĊĊĊĊĊĊĊĊĊĊĊ", + "ĊĊĊĊĊĊ ĊĊĊĊĊĊĊĊĊĊ", + "ĊĊĊĊĊĊĊĊ ĊĊĊĊĊĊĊĊ", + "ĊĊĊĊĊ ĊĊĊĊĊĊĊĊĊĊĊ", + "ĊĊĊĊĊĊĊĊĊĊ ĊĊĊĊĊĊ", + "ĊĊĊĊĊĊĊ ĊĊĊĊĊĊĊĊĊ", + "ĊĊĊĊĊĊĊĊĊĊĊĊ ĊĊĊĊ", + "ĊĊĊĊĊĊĊĊĊ ĊĊĊĊĊĊĊ", + "ĊĊĊĊĊĊĊĊĊĊĊĊĊĊ ĊĊ", + "ĊĊĊĊĊĊĊĊĊĊĊ ĊĊĊĊĊ", + "Start ing", + "Star ting", + "Ġ Players", + "ĠP layers", + "ĠPl ayers", + "ĠPlay ers", + "ĠPlayer s", + "ĠPla yers", + "i ele", + "ie le", + "iel e", + ". then", + ".t hen", + ".th en", + ".the n", + "9 81", + "98 1", + "O rd", + "Or d", + "Ġ Tuple", + "ĠT uple", + "ĠTu ple", + "ĠTup le", + "Ġ bout", + "Ġb out", + "Ġbo ut", + "Ġbou t", + "Ġ Statistics", + "ĠStat istics", + "P review", + "Pr eview", + "Pre view", + "Prev iew", + "Ġp uzzle", + "Ġpu zzle", + "Ġpuzz le", + "Ġ Width", + "ĠW idth", + "ĠWid th", + "ST ATE", + "STAT E", + "STA TE", + "Ġ overlay", + "Ġover lay", + "Ġoverl ay", + "ĉ on", + "ĉo n", + "Ġin fr", + "Ġinf r", + "Ġsm allest", + "Ġsmall est", + "l ocked", + "lock ed", + "loc ked", + "ÑĤ о", + "s sl", + "ss l", + "7 79", + "77 9", + "Ġde emed", + "Ġdee med", + "Ġdeem ed", + "Ġs co", + "Ġsc o", + "r eck", + "re ck", + "rec k", + "Ġj Button", + "Ġ missions", + "Ġm issions", + "Ġmiss ions", + "Ġmission s", + "8 71", + "87 1", + "ç§ °", + ".Selected Index", + "T ABLE", + "TA BLE", + "TAB LE", + "S ept", + "Se pt", + "Sep t", + "Ġac knowledge", + "Ġack nowledge", + "Ġacknow ledge", + "Ġacknowled ge", + "Ġ strtotime", + "Ġstrt otime", + "Ġ Tell", + "ĠT ell", + "ĠTe ll", + "ĠTel l", + "ĠD ak", + "ĠDa k", + "Ġal uminum", + "Ġf ence", + "Ġfe nce", + "Ġfen ce", + "Ġ Stars", + "ĠSt ars", + "ĠStar s", + "ĠSta rs", + "CON FIG", + "CONF IG", + "Ġr etrofit", + "Ġretro fit", + "Ġ emphasis", + "Ġem phasis", + "Ġemph asis", + "Ġemphas is", + "/ header", + "/head er", + "/he ader", + "Ġ Something", + "ĠS omething", + "ĠSome thing", + "ĠSom ething", + "in ished", + "ini shed", + "inish ed", + "inis hed", + "=' \".$", + "='\" .$", + "='\". $", + "Ġ Validators", + "ĠValid ators", + "ĠValidator s", + "Ġp olar", + "Ġpol ar", + "Ġpo lar", + "s ections", + "se ctions", + "section s", + "sect ions", + "9 44", + "94 4", + ".as px", + ".asp x", + "Ġa spir", + "Ġas pir", + "Ġasp ir", + ". Mock", + ".M ock", + "Code Gen", + "Ġp eut", + "Ġpe ut", + "Ġpeu t", + "9 71", + "97 1", + "Ġaccept ing", + "Ġb acking", + "Ġback ing", + "Ġbac king", + "P icture", + "Pic ture", + "/ ap", + "/a p", + "е г", + "еР³", + "_ SEC", + "_S EC", + "_SE C", + "- use", + "-us e", + "-u se", + "an notation", + "ann otation", + "annot ation", + "Ġc ognitive", + "Ġcogn itive", + "Ġg rip", + "Ġgr ip", + "Ġgri p", + "h our", + "ho ur", + "hou r", + "Ġ Legal", + "ĠL egal", + "ĠLe gal", + "ĠLeg al", + "Ġe pic", + "Ġep ic", + ". toolStrip", + ".t oolStrip", + ".tool Strip", + ". notify", + ".n otify", + ".not ify", + ". Last", + ".L ast", + "OR IZ", + "M iddleware", + "Middle ware", + "cri ptions", + "cript ions", + "cription s", + "l ash", + "la sh", + "las h", + "_ FOUND", + "_F OUND", + "Ġ Liverpool", + "ĠLiver pool", + "Ġ {}\",", + "Ġ{ }\",", + "Ġ{} \",", + "9 31", + "93 1", + "Inst all", + "Ġ nit", + "Ġn it", + "Ġni t", + "Ġfig ured", + "Ġfigure d", + "Ġfigur ed", + "[ len", + "[l en", + ". Win", + ".W in", + ". platform", + ".pl atform", + "8 53", + "85 3", + "Ġgam bling", + "Ġgamb ling", + "( dt", + "(d t", + "a very", + "av ery", + "ave ry", + "aver y", + "ĉ include", + "ĉin clude", + "Wh ether", + "R outing", + "Ro uting", + "Ġth erap", + "Ġthe rap", + "Ġther ap", + "Rem ote", + "Ġ Loss", + "ĠL oss", + "ĠLo ss", + "ĠLos s", + "y ll", + "yl l", + "Ġappro ached", + "Ġapproach ed", + "Ġ Vehicle", + "ĠV ehicle", + "Ġ Alpha", + "ĠAl pha", + "Ġv ocê", + "Ġvoc ê", + "an swers", + "ans wers", + "answer s", + "NS Dictionary", + "9 54", + "95 4", + "cons ider", + "un used", + "unu sed", + "Ġ Fan", + "ĠF an", + "ĠFa n", + "or able", + "ora ble", + "f re", + "fr e", + "8 73", + "87 3", + "ĠDIS CLAIM", + "Ġ Actor", + "ĠA ctor", + "ĠAct or", + "ĠAc tor", + ". ]", + "to Have", + ". userId", + ".user Id", + "Ġspe eds", + "Ġspeed s", + "e way", + "ew ay", + "Ġrec urs", + "Ġrecur s", + "Ġ г", + "ĠÐ ³", + "_ priv", + "_p riv", + "_pr iv", + "_pri v", + "! âĢĿĊĊ", + "!âĢĿ ĊĊ", + "Ch oice", + "Cho ice", + "Ġs ettle", + "Ġset tle", + "Ġsett le", + "Ġ planes", + "Ġpl anes", + "Ġplan es", + "Ġplane s", + "Ġpla nes", + "' },", + "'} ,", + "T om", + "To m", + "I TER", + "IT ER", + "ITE R", + "! \"Ċ", + "!\" Ċ", + "å »", + "ach elor", + "ache lor", + "achel or", + "Ġse paration", + "Ġsepar ation", + "Ġseparat ion", + "Ġ dal", + "Ġd al", + "Ġda l", + "a dj", + "ad j", + "Ġ registers", + "Ġreg isters", + "Ġregister s", + "Ġregist ers", + "r iz", + "ri z", + "Ġ Notice", + "ĠNot ice", + "Ġ lu", + "Ġl u", + "Ġc ourage", + "Ġcour age", + "Ġcou rage", + "Ġ axes", + "Ġa xes", + "Ġax es", + "Ġaxe s", + "cell ent", + ". async", + ".as ync", + ".a sync", + "0 73", + "07 3", + "Ġcom patibility", + "Ġcompat ibility", + "ç «", + "Ġ !ĊĊ", + "Ġ! ĊĊ", + "Ġ!Ċ Ċ", + "ĉ title", + "ĉt itle", + "ĉti tle", + "Y LE", + "YL E", + "ĉ message", + "ĉm essage", + "U UID", + "UU ID", + "OL DER", + "OLD ER", + "Ġ HH", + "ĠH H", + "Ġ StyleSheet", + "ĠStyle Sheet", + "Ġacc essed", + "Ġaccess ed", + "Ġacces sed", + ". validation", + ".valid ation", + "t asks", + "task s", + "tas ks", + "Ġpoll ution", + "Ġpollut ion", + ". canvas", + ".c anvas", + ".can vas", + "Ġ ingredient", + "Ġing redient", + "ĠC abin", + "ĠCa bin", + "ĠCab in", + "A h", + "ol down", + "old own", + "ĠN OI", + "ĠNO I", + "Ġ ÃĹ", + "Ġà Ĺ", + "[ f", + "e duc", + "ed uc", + "edu c", + "y alty", + "yal ty", + "( not", + "(n ot", + "(no t", + "_ State", + "_St ate", + "9 33", + "93 3", + "a men", + "am en", + "ame n", + "7 95", + "79 5", + "7 39", + "73 9", + "Ġ dao", + "Ġd ao", + "Ġda o", + "u dad", + "ud ad", + "uda d", + "el lers", + "ell ers", + "elle rs", + "eller s", + "} &", + "l icity", + "lic ity", + "li city", + "licit y", + "_ WINDOW", + "_W INDOW", + "Ġt atto", + "Ġtat to", + "val or", + "va lor", + ". Range", + ".R ange", + "Ġreference d", + "Ġrefer enced", + "ĠRe serve", + "ĠRes erve", + "M oney", + "Mon ey", + "Mo ney", + "8 74", + "87 4", + "SC RIPT", + "SCRI PT", + "/ product", + "/pro duct", + "cho ices", + "choice s", + "Ġ tin", + "Ġt in", + "Ġti n", + "ãĤ ĵ", + "9 18", + "91 8", + "Ġ separator", + "Ġs eparator", + "Ġse parator", + "Ġsepar ator", + "Ġseparat or", + "Ġ pkg", + "Ġp kg", + "Ġpk g", + "am med", + "amm ed", + "Ġ MAT", + "ĠM AT", + "ĠMA T", + "! !ĊĊ", + "!! ĊĊ", + "!!Ċ Ċ", + "Ġ raid", + "Ġr aid", + "Ġra id", + "Ġmot ivation", + "Ġmotiv ation", + "Ġ XP", + "ĠX P", + "Ġ Background", + "ĠBack ground", + "Ġ Quaternion", + "ĠQu aternion", + ".define Property", + "i ker", + "ik er", + "ike r", + "ĉ parent", + "ĉp arent", + "Ġ Originally", + "ĠOrigin ally", + "ĠOriginal ly", + "ĠOrig inally", + "ant age", + "anta ge", + "ĠH ans", + "ĠHa ns", + "ĠHan s", + "Ġ timeline", + "Ġt imeline", + "Ġtime line", + "Ġtim eline", + ". cur", + ".c ur", + "o pic", + "op ic", + "opi c", + "ĠS equ", + "ĠSe qu", + "ĠSeq u", + "m ust", + "mu st", + "mus t", + "Ġ Coal", + "ĠCo al", + "Ġ formatter", + "Ġfor matter", + "Ġform atter", + "Ġformat ter", + "_ RGB", + "_R GB", + "_RG B", + "Ġ _(\"", + "Ġ_ (\"", + "Ġ_( \"", + "' }),Ċ", + "'} ),Ċ", + "'}) ,Ċ", + "Ġ= ================", + "Ġ== ===============", + "Ġ=== ==============", + "Ġ===== ============", + "Ġ==== =============", + "Ġ========== =======", + "Ġ======= ==========", + "Ġ FUNCTION", + "ĠF UNCTION", + "ĠFUN CTION", + "ĠFUNC TION", + "ĠFUNCT ION", + "Ġ lng", + "Ġl ng", + "Ġln g", + "ic ates", + "ica tes", + "icate s", + "l ive", + "li ve", + "liv e", + "_ engine", + "_e ngine", + "_eng ine", + "Ġt owns", + "Ġtown s", + "Ġtow ns", + "8 68", + "86 8", + "' ))ĊĊ", + "') )ĊĊ", + "')) ĊĊ", + "'))Ċ Ċ", + "Ġ PK", + "ĠP K", + "( api", + "(a pi", + "(ap i", + "ĉ scanf", + "ĉs canf", + "0 89", + "08 9", + "p acket", + "pack et", + "pa cket", + "pac ket", + ". phone", + ".p hone", + ".ph one", + "á Ģ", + "Ġ Andy", + "ĠAn dy", + "ĠAnd y", + "_N AMES", + "_NAME S", + "9 82", + "98 2", + "P LY", + "PL Y", + "9 55", + "95 5", + "Ġ mins", + "Ġm ins", + "Ġmin s", + "Ġmi ns", + "i mi", + "im i", + "Ġ brick", + "Ġb rick", + "Ġbr ick", + "Ġbri ck", + "Ġ blade", + "Ġbl ade", + "Ġbla de", + ". stdout", + ".std out", + "} `;Ċ", + "}` ;Ċ", + "S hift", + "Sh ift", + "ĉ sb", + "ĉs b", + "Ġ Checks", + "ĠCheck s", + "ĠChe cks", + "Ġphenomen on", + "Av atar", + "Ġmin istry", + "Ġmini stry", + "Ġminist ry", + "r ose", + "ro se", + "ros e", + "ĉ File", + "ĉF ile", + "8 78", + "87 8", + "Ġt itled", + "Ġtitle d", + "Ġtit led", + "( LOG", + "(L OG", + "Ġ gan", + "Ġg an", + "Ġga n", + "d esign", + "de sign", + "des ign", + "( ),čĊ", + "() ,čĊ", + "(), čĊ", + "Ġ bones", + "Ġb ones", + "Ġbo nes", + "Ġbon es", + "Ġbone s", + "s tm", + "st m", + "ÅĽ Äĩ", + "Ġ InputStream", + "ĠInput Stream", + "Ġvol unt", + "Ġ Serializable", + "ĠSerial izable", + "Ġ fighter", + "Ġf ighter", + "Ġfight er", + "Ġ Drag", + "ĠD rag", + "ĠDr ag", + "ĠDra g", + "T witter", + "Tw itter", + "Ġsub sid", + "Ġsubs id", + "ç ¼", + "Ġ forums", + "Ġfor ums", + "Ġforum s", + ". loading", + ".load ing", + ".lo ading", + "log ged", + "logg ed", + "_ this", + "_t his", + "_th is", + "Ġ terrain", + "Ġter rain", + "Ġterr ain", + "Ġterra in", + "Ġir re", + "Ġirr e", + "Ġ Ing", + "ĠI ng", + "ĠIn g", + "Ġ CN", + "ĠC N", + "_ objects", + "_object s", + "_obj ects", + ". uid", + ".ui d", + ".u id", + "Ġconscious ness", + "T INGS", + "TING S", + "ĠG all", + "ĠGal l", + "ĠGa ll", + "Ġport ray", + "0 56", + "05 6", + "Ġ Developer", + "ĠDe veloper", + "ĠDevelop er", + "Ġ participant", + "Ġpart icipant", + "Ġparticip ant", + "Ġ \";čĊ", + "Ġ\" ;čĊ", + "Ġ\"; čĊ", + "/ model", + "/m odel", + "/mod el", + "7 94", + "79 4", + "Ġ Operations", + "ĠOper ations", + "ĠOperation s", + "^ \\", + "Ġ Later", + "ĠL ater", + "ĠLa ter", + "ĠLat er", + "ĠLate r", + "Ġ raises", + "Ġr aises", + "Ġraise s", + "Ġrais es", + "Ġra ises", + "- none", + "-n one", + "-no ne", + "-non e", + ". meta", + ".m eta", + ".me ta", + ".met a", + "= '.$", + "=' .$", + "='. $", + "F inished", + "Fin ished", + "Finish ed", + "Ġre placing", + "Ġrepl acing", + "Ġ sampling", + "Ġs ampling", + "Ġsam pling", + "Ġsamp ling", + "ĠJ en", + "ĠJe n", + "\" There", + "\"The re", + "\"T here", + "RE AL", + "REA L", + "A LE", + "AL E", + "ìĬ ¤", + "Or ders", + "Order s", + "Ord ers", + "_ parameter", + "_param eter", + "_para meter", + "ĠOlymp ic", + "Ġtr ès", + "Ġ arena", + "Ġa rena", + "Ġare na", + "Ġar ena", + "Ġaren a", + "i ol", + "io l", + "; ?>", + "Ġimp acts", + "Ġimpact s", + "Ġ WS", + "ĠW S", + ": get", + ":g et", + "Ġf lights", + "Ġfl ights", + "Ġflight s", + "ĠRuss ell", + "ĠRus sell", + "c amera", + "came ra", + "cam era", + "F n", + "s igma", + "sig ma", + "Ġ forcing", + "Ġfor cing", + "Ġforc ing", + "Ġ locals", + "Ġloc als", + "Ġlocal s", + "Ġ departure", + "Ġdepart ure", + "Ġcelebr ation", + "Ġ Say", + "ĠS ay", + "ĠSa y", + "8 84", + "88 4", + "ï¼ Ĵ", + "ĠH ills", + "ĠHill s", + "ĠHil ls", + ".has OwnProperty", + "Ġ typings", + "Ġtyp ings", + "Ġtyping s", + ". API", + ".A PI", + ".AP I", + "Ġd onation", + "Ġdo nation", + "Ġdon ation", + "Operation Exception", + ". Activity", + ".Act ivity", + "c plusplus", + "Ġ Charlie", + "ĠChar lie", + "ĠCharl ie", + "Ġim ported", + "Ġimport ed", + "Ġimp orted", + "Ġd ann", + "Ġda nn", + "Ġdan n", + "Ġocc asions", + "Ġoccas ions", + "Ġoccasion s", + "Ġimplement ing", + "Ġ purple", + "Ġp urple", + "Ġpur ple", + ". dialog", + ".d ialog", + ".di alog", + "SQL Exception", + "er no", + "ern o", + "Ġw ars", + "Ġwar s", + "Ġwa rs", + "Ġ paste", + "Ġp aste", + "Ġpast e", + "Ġpas te", + "Ġpa ste", + "Ġdecre ased", + "Ġdecrease d", + "Ġhar sh", + "Ġel abor", + "Ġela bor", + "in puts", + "input s", + "inp uts", + "Ġ Views", + "ĠView s", + "ĠVi ews", + "ĠVie ws", + "Ġ errorMessage", + "Ġerror Message", + "_ mul", + "_m ul", + "_mu l", + "ĉ write", + "ĉw rite", + "Ġ Cop", + "ĠC op", + "ĠCo p", + "Ġ Annual", + "ĠAnn ual", + "( button", + "(b utton", + "Ġ vida", + "Ġv ida", + "Ġvi da", + "Ġvid a", + "b ars", + "bar s", + "ba rs", + "ĠHar vard", + "ĉ expect", + "ĉex pect", + "ĉexp ect", + "Ġ indexes", + "Ġindex es", + "Ġinde xes", + "Ġdocument ary", + "Ġf lesh", + "Ġfl esh", + "Ġfle sh", + "OR LD", + "Ġ Delta", + "ĠD elta", + "ĠDel ta", + "M AND", + "MA ND", + "MAN D", + "B rush", + "Br ush", + "Bru sh", + "- column", + "-c olumn", + "-col umn", + "Ġdevelop ments", + "Ġdevelopment s", + "9 74", + "97 4", + "7 83", + "78 3", + "method Visitor", + "s lice", + "sl ice", + "Ġ PDO", + "ĠP DO", + "ĠPD O", + "Ġinv esting", + "Ġinvest ing", + "8 67", + "86 7", + "ir able", + "ira ble", + "Ġ xmlns", + "Ġxml ns", + "ï¼ Ľ", + "ar ta", + "art a", + "Ġthe ories", + "Ġtheor ies", + "Ġtheo ries", + "_ city", + "_c ity", + "_ci ty", + "Ġ $__", + "Ġ$ __", + "Ġ$_ _", + "C reating", + "Cre ating", + "Cr eating", + "Creat ing", + "( pr", + "(p r", + "D ropdown", + "Drop down", + "is match", + "ism atch", + "Ġ NET", + "ĠN ET", + "ĠNE T", + "9 26", + "92 6", + "' ])){Ċ", + "'] )){Ċ", + "']) ){Ċ", + "'])) {Ċ", + "'])){ Ċ", + "Ġ Values", + "ĠVal ues", + "ĠValue s", + "Ġ SEO", + "ĠS EO", + "ĠSE O", + "Ġ STAT", + "ĠST AT", + "ĠSTA T", + "Ġe cosystem", + "Ġeco system", + "Ġ tempt", + "Ġt empt", + "Ġtem pt", + "Ġtemp t", + "Ġ \\\\", + "Ġ\\ \\", + "Ġ //{Ċ", + "Ġ// {Ċ", + "Ġ//{ Ċ", + "Ġ Christopher", + "ĠChrist opher", + "ĠChristoph er", + "ĠKent ucky", + "ĠHttp ServletResponse", + "ĠHttpServlet Response", + "Ġh ybrid", + "Ġhy brid", + "y on", + "yo n", + "Ġ feeding", + "Ġfe eding", + "Ġfeed ing", + "Ġfee ding", + "Ġ Extra", + "ĠEx tra", + "ĠExt ra", + "ĠExtr a", + "N orm", + "No rm", + "Nor m", + "IT CH", + "Ġ Sean", + "ĠS ean", + "ĠSe an", + "ĠSea n", + "Ġ Upload", + "ĠUp load", + "m un", + "mu n", + "p ur", + "pu r", + "Ġ persistent", + "Ġp ersistent", + "Ġpers istent", + "Ġpersist ent", + "ĠI DC", + "ĠID C", + "Ġ Perform", + "ĠPer form", + "ĠPerf orm", + "8 63", + "86 3", + ". merge", + ".m erge", + "_ room", + "_r oom", + "_ro om", + "Mean while", + "! ='", + "!= '", + "Ġ Wel", + "ĠW el", + "ĠWe l", + "Args Constructor", + "8 87", + "88 7", + ". Database", + ".D atabase", + ".Data base", + "Ġco unting", + "Ġcount ing", + "Ġcoun ting", + "( )*", + "() *", + "Ķ åĽŀ", + "Ġ TOP", + "ĠT OP", + "ĠTO P", + "m ill", + "mi ll", + "mil l", + "Ġ DT", + "ĠD T", + "IGN ED", + "9 56", + "95 6", + "Ġ KB", + "ĠK B", + "Ġcom ply", + "Ġcomp ly", + "Ġcompl y", + "S outh", + "So uth", + "Sou th", + "_ collection", + "_c ollection", + "_col lection", + "_coll ection", + "_collect ion", + "Ch apter", + "Cha pter", + "Ġexpl aining", + "Ġexplain ing", + "_ AM", + "_A M", + "_ ts", + "_t s", + "c ards", + "card s", + "car ds", + "Ġ quel", + "Ġqu el", + "Ġque l", + "Ġq uel", + "Ġ pole", + "Ġp ole", + "Ġpol e", + "Ġpo le", + "Ġtouch down", + "Ġ Others", + "ĠO thers", + "ĠOther s", + "Ġpe ers", + "Ġpeer s", + "Ġpee rs", + "Ġ TypeError", + "ĠType Error", + "7 63", + "76 3", + "Ġsix th", + "Ġch eer", + "Ġche er", + "Ġdis pute", + "Ġdisp ute", + "Ġdisput e", + "9 63", + "96 3", + "8 93", + "89 3", + "u sc", + "us c", + ") ],", + ")] ,", + "th umb", + "Ġh iding", + "Ġhi ding", + "Ġhid ing", + "Ġ SIG", + "ĠS IG", + "ĠSI G", + "l ikes", + "li kes", + "like s", + "lik es", + "Ġ PAGE", + "ĠP AGE", + "ĠPA GE", + ". Reflection", + ".Ref lection", + "Ġhead quarters", + "T ING", + "TI NG", + "Ġ Ghost", + "ĠG host", + "ĠGh ost", + "M LE", + "ML E", + "$ Ċ", + "Ġcont rary", + "Ġcontr ary", + "Ġcontra ry", + "ext end", + "' ]).", + "'] ).", + "']) .", + "FF ECT", + "FFE CT", + "Ġ Pinterest", + "ĠP interest", + "úmer o", + "ric ane", + "rica ne", + "ĉ session", + "ĉs ession", + "Ġcr ystal", + "Ġcry stal", + "Ġcryst al", + "- Control", + "-C ontrol", + "overn ment", + "o graf", + "og raf", + "ogr af", + "ogra f", + "9 61", + "96 1", + "- action", + "-a ction", + "-ac tion", + "v olume", + "vol ume", + "f ten", + "ft en", + "fte n", + "Ġun con", + "Ġunc on", + "Ġ animate", + "Ġan imate", + "Ġanim ate", + "Ġani mate", + "Ġ lease", + "Ġl ease", + "Ġle ase", + "s cr", + "sc r", + "Ġre fuse", + "Ġref use", + "ãĢ ĭ", + "f tp", + "ft p", + "in formation", + "inform ation", + "Ġeval uated", + "Ġevaluate d", + "Ġevalu ated", + "Ġin jection", + "Ġinj ection", + "Ġinject ion", + "Ġ jack", + "Ġj ack", + "Ġja ck", + "Ġjac k", + "Ġwork shop", + "Ġworks hop", + "æ³ ¨", + "P TH", + "PT H", + "Ġ Ts", + "ĠT s", + "o ffer", + "of fer", + "off er", + "ĉ os", + "ĉo s", + "Ġking dom", + "M issing", + "Miss ing", + "Mis sing", + "Ġlaw makers", + "Ġlawmaker s", + "ext Field", + "Ġs inging", + "Ġsin ging", + "Ġsing ing", + "a bi", + "ab i", + "/ client", + "/c lient", + "/cl ient", + "/cli ent", + ". media", + ".m edia", + ".me dia", + ".med ia", + "ATEG ORY", + "Sign ature", + "Sig nature", + "% ',Ċ", + "%' ,Ċ", + "%', Ċ", + "Ġ Fuck", + "ĠF uck", + "ĠFu ck", + "] [:", + "][ :", + "Ġs ensors", + "Ġsens ors", + "Ġsensor s", + "/ com", + "/c om", + "/co m", + "Ġ Primary", + "ĠPr imary", + "ĠPri mary", + "ĠPrim ary", + ". SQL", + ".S QL", + "_ program", + "_p rogram", + "_pro gram", + "_pr ogram", + "_prog ram", + "Ġp ills", + "Ġpil ls", + "Ġpill s", + "Ġ integral", + "Ġint egral", + "Ġinteg ral", + "Ġintegr al", + "Ġ fleet", + "Ġf leet", + "Ġfle et", + "Ġflee t", + "Ġd ropping", + "Ġdr opping", + "Ġdrop ping", + "Ġdro pping", + ". sl", + ".s l", + "B een", + "Be en", + "Ġ pets", + "Ġp ets", + "Ġpe ts", + "Ġpet s", + "Ġad vised", + "Ġadv ised", + "Ġadvis ed", + "Ġadvise d", + "Ġ dragon", + "Ġd ragon", + "Ġdr agon", + "Ġdrag on", + "Ġdra gon", + "_ EDIT", + "_ED IT", + "( im", + "(i m", + "9 39", + "93 9", + "F ER", + "FE R", + "Ġ Drug", + "ĠD rug", + "ĠDr ug", + "( random", + "(r andom", + "(rand om", + "Ġ compression", + "Ġcom pression", + "Ġcomp ression", + "Ġcompr ession", + "Ġcompress ion", + "o ust", + "ou st", + "ous t", + "[ %", + "Ġ buyer", + "Ġbu yer", + "Ġbuy er", + "h op", + "ho p", + "R oles", + "Role s", + "Ro les", + "Rol es", + "man age", + "ma nage", + "mana ge", + "Ġpain ful", + "Ġ Branch", + "ĠBr anch", + "ĠBran ch", + "- modal", + "-m odal", + "-mod al", + "e nant", + "en ant", + "ena nt", + "enan t", + "Ġ Mesh", + "ĠM esh", + "ĠMe sh", + "ĠMes h", + "/ font", + "/f ont", + "ĠG raham", + "ĠGra ham", + "Ġ âĺ", + "Ġâ ĺ", + "Ġ nc", + "Ġn c", + "ĠFranc is", + "ĠFran cis", + "Ġspec ification", + "Ġspecific ation", + "Ġdam ages", + "Ġdamage s", + "- config", + "-con fig", + "-conf ig", + "Ġthe oret", + "Ġtheor et", + "Ġtheo ret", + "s ecure", + "sec ure", + "_ multi", + "_m ulti", + "_mul ti", + "_mult i", + "aceut ical", + "Ġdem anding", + "Ġdemand ing", + "en ne", + "enn e", + "I STS", + "IS TS", + "IST S", + "0 94", + "09 4", + "( )));ĊĊ", + "() ));ĊĊ", + "()) );ĊĊ", + "()));Ċ Ċ", + "())) ;ĊĊ", + "())); ĊĊ", + "Re ason", + "Re cent", + "Rec ent", + "ph ase", + "pha se", + "phas e", + "Ġ psy", + "Ġp sy", + "Ġps y", + "_ MAN", + "_M AN", + "_MA N", + "Ġvol unteer", + "Ġvolunte er", + "Ġvolunt eer", + "å ¿", + "istrib uted", + "istribute d", + "l io", + "li o", + "Ġproduct ivity", + "_ comm", + "_c omm", + "_com m", + "_co mm", + "S pring", + "Sp ring", + "Spr ing", + "n is", + "ni s", + ". weight", + ".w eight", + ".we ight", + "ĠC ancer", + "ĠCan cer", + "ĠCanc er", + "Al loc", + "All oc", + "Ġ Tweet", + "ĠT weet", + "ĠTwe et", + "Ġsepar ately", + "Ġseparate ly", + "Ġseparat ely", + "ĉ check", + "ĉc heck", + "ĉch eck", + "_ properties", + "_p roperties", + "_prop erties", + ". Unit", + ".U nit", + ".Un it", + "8 29", + "82 9", + "_ CLK", + "_C LK", + "_CL K", + "Ġ gt", + "Ġg t", + "Ġ ();ĊĊ", + "Ġ( );ĊĊ", + "Ġ() ;ĊĊ", + "Ġ();Ċ Ċ", + "Ġ(); ĊĊ", + "Ġh andy", + "Ġhand y", + "Ġhan dy", + "8 34", + "83 4", + "ĠTh ompson", + "ĠThom pson", + "Ġun necessary", + "Ġunn ecessary", + "Ġ Reader", + "ĠRe ader", + "ĠRead er", + "8 94", + "89 4", + "G N", + "= request", + "=re quest", + "=req uest", + "Ġ Utility", + "ĠU tility", + "ĠUtil ity", + "ĠUt ility", + ". Repository", + ".Re pository", + "Ġ Ax", + "ĠA x", + "hy dr", + "7 91", + "79 1", + "i eu", + "ie u", + "Ġ thy", + "Ġt hy", + "Ġth y", + "Ġ lt", + "Ġl t", + "_ mail", + "_m ail", + "_ma il", + "ä¿® æĶ¹", + "a iland", + "ail and", + "ai land", + "Ġ Philip", + "ĠPh ilip", + "ĠPhil ip", + "ĠPhi lip", + "Ġb itter", + "Ġbit ter", + "Ġbitte r", + "Ġb etting", + "Ġbet ting", + "8 37", + "83 7", + "Ġt imed", + "Ġtime d", + "Ġtim ed", + "Ġti med", + "o cks", + "oc ks", + "ock s", + "0 76", + "07 6", + "' a", + "Ġal gorithms", + "Ġalgorithm s", + "Ġ reinterpret", + "Ġre interpret", + "Ġt oss", + "Ġto ss", + "r ogen", + "ro gen", + "rog en", + "Ġh oped", + "Ġhope d", + "Ġhop ed", + "Ġho ped", + "( selected", + "(se lected", + "(select ed", + "(sel ected", + "Ġ venture", + "Ġvent ure", + "Ġven ture", + "T EX", + "TE X", + "Ġ Leave", + "ĠLe ave", + ". Substring", + ".Sub string", + "Ġgr ateful", + "Ġgrat eful", + "Ġgrate ful", + "7 43", + "74 3", + "u ka", + "uk a", + "Ġ Consumer", + "ĠCon sumer", + "ĠCons umer", + "ĠConsum er", + "Ġag greg", + "Ġagg reg", + "C ircle", + "ภģ", + "_ blocks", + "_b locks", + "_block s", + "_bl ocks", + "_bloc ks", + "Ġleg ally", + "Ġlegal ly", + "Ġ \"|", + "Ġ\" |", + "ãĥ ĥ", + ". board", + ".b oard", + ".bo ard", + ". Ab", + ".A b", + "Function s", + "Fun ctions", + "rec ipe", + "è ĩ", + "ĠO xford", + "ĠOx ford", + "Ġw holes", + "Ġwh oles", + "Ġwho les", + "Ġwhole s", + ". Build", + ".B uild", + "_ changed", + "_ch anged", + "_change d", + "_chan ged", + "h ai", + "ha i", + "Ġ departments", + "Ġdepartment s", + "Ġdepart ments", + "9 64", + "96 4", + "I mp", + "Im p", + "Ġcoal ition", + "IN FRINGEMENT", + "Ġem power", + "Ġemp ower", + "it ches", + "itch es", + "N orth", + "Nor th", + "Ġin flamm", + "Ġinfl amm", + "O NSE", + "ON SE", + "ONS E", + "Ġmiss ile", + "ĠR aj", + "ĠRa j", + "Ġ Issue", + "ĠI ssue", + "ĠIss ue", + "Ġ atoi", + "Ġa toi", + "Ġat oi", + "c aled", + "ca led", + "cale d", + "cal ed", + ". Controllers", + ".Cont rollers", + ".Control lers", + ".Controller s", + "Ġ Wolf", + "ĠW olf", + "ĠWo lf", + "ĠWol f", + "Ġcrush ers", + "Ġcrusher s", + "á» ĩ", + ". Auth", + ".A uth", + ".add Attribute", + "h is", + "hi s", + "Ġbo ots", + "Ġboot s", + "Ġboo ts", + ". clean", + ".c lean", + ".cl ean", + "c amp", + "ca mp", + "cam p", + "Ġ tenant", + "Ġt enant", + "Ġte nant", + "Ġten ant", + "Ġt une", + "Ġtu ne", + "Ġtun e", + "Ġ {}'.", + "Ġ{ }'.", + "Ġ{} '.", + "Ġwork out", + "Re po", + "Rep o", + "Ġpart ially", + "Ġpartial ly", + "Ġparti ally", + "MI SSION", + "MISS ION", + "j amin", + "ja min", + "jam in", + "Ġ SB", + "ĠS B", + "Ġd etermination", + "Ġde termination", + "Ġdeter mination", + "Ġdetermin ation", + "Ġdeterm ination", + "Ġ' ');Ċ", + "Ġ'' );Ċ", + "Ġ'') ;Ċ", + "Ġ''); Ċ", + "ĠB eng", + "ĠBe ng", + "ĠBen g", + "Ġ vos", + "Ġv os", + "Ġvo s", + "Ġin hab", + "Ġinh ab", + "/ lang", + "/l ang", + "s burgh", + "sburg h", + "Exec utor", + "h one", + "ho ne", + "hon e", + "Ġ Challenge", + "ĠCh allenge", + "ĠChall enge", + "_ links", + "_l inks", + "_link s", + "_lin ks", + ". Level", + ".Le vel", + "Ġunder ground", + "- code", + "-c ode", + "-co de", + "9 59", + "95 9", + "Ġopt imization", + "Ġoptim ization", + "log ging", + "logg ing", + "_ dest", + "_d est", + "_de st", + "_des t", + "Ġ snake", + "Ġsn ake", + "Ġsna ke", + "Ġchem icals", + "Ġchemical s", + "_IMPORT ED", + "ad oop", + "ado op", + "adoo p", + "ĠTH AT", + "man aged", + "manage d", + "mana ged", + "Ġred uces", + "Ġredu ces", + "Ġreduce s", + "Ġ REAL", + "ĠRE AL", + "Ġ Guy", + "ĠG uy", + "ĠGu y", + "_GENER IC", + "_GEN ERIC", + "/ ********************************", + "/************************ ********", + "/******** ************************", + "/**************** ****************", + ". amount", + ".a mount", + ".am ount", + "Ġ dere", + "Ġd ere", + "Ġde re", + "Ġder e", + "get Time", + "Ġp ant", + "Ġpa nt", + "Ġpan t", + "an onymous", + "anon ymous", + "Ġhar mony", + "Ġharm ony", + "Ġharmon y", + "Ġ Alan", + "ĠA lan", + "ĠAl an", + "ĠAla n", + "Ġsc enarios", + "Ġscen arios", + "Ġscenario s", + "Ġd irt", + "Ġdi rt", + "Ġdir t", + "h tags", + "ht ags", + "htag s", + "hta gs", + "M c", + "S hell", + "Sh ell", + "She ll", + "r in", + "ri n", + "{ čĊčĊ", + "{čĊ čĊ", + ". pow", + ".p ow", + ".po w", + "ĉ client", + "ĉc lient", + "ĉcl ient", + "ĉcli ent", + "Ġcon spiracy", + "Ġconspir acy", + "Ġad mission", + "Ġadm ission", + "Ġ Regional", + "ĠReg ional", + "ĠRegion al", + "Ġ ViewController", + "ĠView Controller", + "ĠPhil ippines", + "ĠPhilipp ines", + "ĠPhilippine s", + "Ġde pos", + "Ġdep os", + "Ġp ap", + "Ġpa p", + "9 62", + "96 2", + "Ġ Pad", + "ĠP ad", + "ĠPa d", + "P aul", + "Pa ul", + ". ComboBox", + ".Com boBox", + "Ġt utor", + "Ġtu tor", + "Ġtut or", + "Ġtuto r", + "Ġ Recipe", + "ĠRec ipe", + "w riting", + "wr iting", + "Ġcontrib utor", + "O TH", + "OT H", + "S mall", + "Sm all", + "V I", + "Ġh acer", + "Ġha cer", + "Ġhace r", + "Ġhac er", + "e qu", + "eq u", + "Ġ Examples", + "ĠEx amples", + "ĠExample s", + "ĠExam ples", + "h uman", + "hu man", + "hum an", + ". messages", + ".m essages", + ".message s", + "ĉ typ", + "ĉt yp", + "Ġ (čĊ", + "Ġ( čĊ", + "Ġ SSL", + "ĠS SL", + "ĠSS L", + "L EN", + "LE N", + "ĠRom ney", + "( grid", + "(g rid", + "(gr id", + "ĉ min", + "ĉm in", + "Ġ >ĊĊ", + "Ġ> ĊĊ", + "Ġ>Ċ Ċ", + "Ġf ruits", + "Ġfr uits", + "Ġfruit s", + "Ġv oter", + "Ġvo ter", + "Ġvot er", + "Ġvote r", + "In line", + "p ane", + "pan e", + "pa ne", + "Ġ Collections", + "ĠC ollections", + "ĠCol lections", + "ĠCollection s", + "ĠColl ections", + "ĠCollect ions", + "char set", + "chars et", + "Ġ spam", + "Ġsp am", + "Ġspa m", + "z b", + "it emap", + "ite map", + "item ap", + "Ġs ucceeded", + "Ġsuc ceeded", + "Ġsucceed ed", + "_ COL", + "_C OL", + "_CO L", + "Ġ elapsed", + "Ġel apsed", + "i meter", + "im eter", + "ime ter", + "imet er", + "Ġre covered", + "Ġrecover ed", + "T ensor", + "hat tan", + "hatt an", + ". setup", + ".set up", + "i sto", + "is to", + "ist o", + "( head", + "(h ead", + "9 77", + "97 7", + "Ġ SIZE", + "ĠS IZE", + "ĠSI ZE", + "Ġt actics", + "Ġtact ics", + "Ġtactic s", + "Ġtac tics", + "Ġdis tur", + "Ġdist ur", + "Ġpr eval", + "Ġpre val", + "Ġprev al", + "ic ios", + "ici os", + "icio s", + "( Value", + "(V alue", + "_ cols", + "_c ols", + "_col s", + "_co ls", + "Ġ Fat", + "ĠF at", + "ĠFa t", + "Ġse al", + "Ġsea l", + "Ġ sons", + "Ġs ons", + "Ġso ns", + "Ġson s", + "Ġens ures", + "Ġensure s", + "0 95", + "09 5", + "Ġp ressing", + "Ġpres sing", + "Ġpress ing", + "= &", + "igen ous", + "Ġharass ment", + "_ JSON", + "_J SON", + "_JS ON", + "Ġign or", + "Ġig nor", + "yn omial", + "ynom ial", + "o mer", + "om er", + "ome r", + "_ static", + "_st atic", + "_stat ic", + "_sta tic", + "Ġsign ificance", + "Ġsignific ance", + "Ġsignifica nce", + "Ġc ircles", + "Ġcirc les", + "Ġcircle s", + "Ġcir cles", + "_ System", + "_S ystem", + "Ġdisc ipline", + "Ġdiscipl ine", + "Ġd ressed", + "Ġdr essed", + "Ġdress ed", + "Ġ sphere", + "Ġs phere", + "Ġsp here", + "Ġsph ere", + "9 27", + "92 7", + "Ġcl imb", + "Ġclim b", + "Ġcli mb", + "7 59", + "75 9", + "_ actions", + "_a ctions", + "_action s", + "_act ions", + "ĠB ab", + "ĠBa b", + "Ġ' =',", + "Ġ'=' ,", + "Ġ'= ',", + "_ schema", + "_s chema", + "\" use", + "Ġ unders", + "Ġun ders", + "Ġunder s", + "Ġund ers", + "Ġunde rs", + "Ġc ups", + "Ġcu ps", + "Ġcup s", + ". screen", + ".s creen", + ".sc reen", + "/ new", + "/n ew", + "/ne w", + "Ġapp earing", + "Ġappe aring", + "Ġappear ing", + "T OP", + "TO P", + "v ised", + "vis ed", + "vi sed", + "vise d", + "c lang", + "cl ang", + "cla ng", + "Ġinvest igators", + "Ġinvestig ators", + "Ġinvestigator s", + "Ġm ysterious", + "Ġmyster ious", + "Ġprom ising", + "Ġqual ify", + "Ġqua lify", + "Ġquali fy", + "Ġc ave", + "Ġca ve", + "Ġcav e", + "Ġ equip", + "Ġe quip", + "Ġequ ip", + "= x", + "G T", + "( link", + "(l ink", + "(li nk", + ". velocity", + ".v elocity", + ".vel ocity", + ". erase", + ".e rase", + ".er ase", + "o ter", + "ot er", + "ote r", + "++++ ++++", + "pro fit", + "prof it", + "Ġ zones", + "Ġz ones", + "Ġzone s", + "Ġzo nes", + "_ uid", + "_u id", + "_ui d", + "- ser", + "-s er", + "-se r", + "Ġob jectives", + "Ġobject ives", + "Ġobjective s", + "Ġmil f", + "Ġmi lf", + "web kit", + "( match", + "(m atch", + "(mat ch", + "n eh", + "ne h", + "Ġ Associated", + "ĠAssoci ated", + "ĠAssociate d", + "ĠAssoc iated", + "Ġ Todo", + "ĠT odo", + "ĠTo do", + "ĠTod o", + "= d", + "0 65", + "06 5", + "C am", + "Ca m", + "Ġv ocal", + "Ġvo cal", + "Ġvoc al", + "Ġ sudo", + "Ġs udo", + "Ġsu do", + "Ġsud o", + "( EX", + "(E X", + "Ġt rou", + "Ġtr ou", + "Ġtro u", + "A BC", + "AB C", + ". bean", + ".b ean", + ".be an", + "Ġ Ground", + "ĠG round", + "ĠGr ound", + "ĠGro und", + "Ġ REST", + "ĠR EST", + "ĠRE ST", + "ĠRES T", + "we ets", + "weet s", + "I ng", + "In g", + "i mon", + "im on", + "imo n", + "9 46", + "94 6", + "_ bus", + "_b us", + "Ġ COLOR", + "ĠC OLOR", + "ĠCOL OR", + "un to", + "unt o", + "Ġf oss", + "Ġfo ss", + "Ġfos s", + "Ġ Links", + "ĠL inks", + "ĠLink s", + "ĠLin ks", + "8 69", + "86 9", + "ä ng", + "än g", + "/ forms", + "/form s", + "pr ises", + "prise s", + "pri ses", + "Ġ achievement", + "Ġachie vement", + "Ġachieve ment", + "C ALL", + "CA LL", + "CAL L", + "е лÑĮ", + "ел ÑĮ", + "Ġ Verify", + "ĠVer ify", + "_ SOURCE", + "_S OURCE", + "apt cha", + "I DD", + "ID D", + "_ reference", + "_re ference", + "_ref erence", + "_refer ence", + "G old", + "Go ld", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ċ", + "9 47", + "94 7", + "Re ceiver", + "Receive r", + "0 99", + "09 9", + "Ġ aj", + "Ġa j", + "_ direction", + "_d irection", + "_dir ection", + "_di rection", + "_direct ion", + "} ]", + "Ġ Compet", + "ĠCom pet", + "ĠComp et", + "Ġ bang", + "Ġb ang", + "Ġban g", + "Ġba ng", + "7 98", + "79 8", + "ĠC ass", + "ĠCas s", + "ĠCa ss", + "- url", + "-u rl", + "t echn", + "te chn", + "tech n", + "tec hn", + "ĠJer usalem", + "long itude", + "' );čĊčĊ", + "') ;čĊčĊ", + "'); čĊčĊ", + "');čĊ čĊ", + "Ġwin ners", + "Ġwinner s", + "T asks", + "Task s", + "Ġ DMA", + "ĠD MA", + "ĠDM A", + "Ġ tooltip", + "Ġto oltip", + "Ġtool tip", + "İ ·", + "ĠB ra", + "ĠBr a", + "_ duration", + "_d uration", + "_dur ation", + "c ury", + "cur y", + "cu ry", + "par ents", + "pare nts", + "parent s", + "paren ts", + "- --- >(", + ">> (", + "Ġ Kir", + "ĠK ir", + "ĠKi r", + "Ġ intros", + "Ġint ros", + "Ġintr os", + "Ġintro s", + "Ġsk etch", + "Ġsk illed", + "Ġskill ed", + "Ġ immer", + "Ġim mer", + "Ġimm er", + "Ġade quate", + "Ġadequ ate", + "_ rep", + "_re p", + "_r ep", + "( header", + "(head er", + "_ like", + "_l ike", + "_li ke", + "Ġper ceived", + "Ġperceive d", + "Ġperce ived", + "s sh", + "ss h", + "Ġ assuming", + "Ġas suming", + "Ġass uming", + "Ġassum ing", + "Ġ ff", + "Ġf f", + "_ uuid", + "_u uid", + "u las", + "ul as", + "ula s", + "Ġdem ocratic", + "Ġdemocr atic", + "Ġdemocrat ic", + ". entities", + ".ent ities", + "S eries", + "Se ries", + "Ser ies", + "aph ore", + "Ġnew er", + "Ġne wer", + "} (", + "S EC", + "SE C", + "a iro", + "air o", + "ai ro", + "Ġcom mod", + "Ġcomm od", + "Ġpriv ilege", + "Ġprivile ge", + "Ġde ux", + "Ġ Hop", + "ĠH op", + "ĠHo p", + ". '/", + ".' /", + "c tic", + "ct ic", + ". ';Ċ", + ".' ;Ċ", + "< ?=", + " C", + "ĠWar ren", + "Ġ optimizer", + "Ġopt imizer", + "Ġoptim izer", + "Ġoptimize r", + "ĠSER VICES", + "ĠSERVICE S", + "_ oper", + "_op er", + "_o per", + "get Attribute", + "ĠMc K", + "_ self", + "_s elf", + "_se lf", + "_sel f", + "0 84", + "08 4", + ". rs", + ".r s", + "\" )ĊĊĊ", + "\") ĊĊĊ", + "\")Ċ ĊĊ", + "\")ĊĊ Ċ", + "Get Component", + "er ce", + "erc e", + "Ġt ous", + "Ġto us", + "Ġtou s", + "un its", + "unit s", + "uni ts", + "' ]);čĊ", + "'] );čĊ", + "']) ;čĊ", + "']); čĊ", + "Z oom", + "/ E", + "Ġob sc", + "Ġobs c", + "Ġfast est", + "Ġfas test", + "on line", + "Ġpeace ful", + "f fen", + "ff en", + "ffe n", + "Ġ cargo", + "Ġc argo", + "Ġcar go", + "Ġcarg o", + "ĉ pr", + "ĉp r", + "Ġse eks", + "Ġsee ks", + "Ġseek s", + "z u", + "0 74", + "07 4", + "T rim", + "Tr im", + "Tri m", + "Ġ ward", + "Ġw ard", + "Ġwar d", + "Ġwa rd", + "Ġv erd", + "Ġver d", + "Ġve rd", + "Ġ blogs", + "Ġb logs", + "Ġbl ogs", + "Ġblog s", + "Ġblo gs", + ". exceptions", + ".ex ceptions", + ".exception s", + "Ġ Premium", + "ĠP remium", + "ĠPre mium", + "ĠPrem ium", + "ĠPremi um", + "ĠN etherlands", + "S afe", + "Sa fe", + "F inish", + "Fin ish", + "Fi nish", + "Ġ Album", + "ĠAl bum", + "ĠAlb um", + "_ ACC", + "_A CC", + "_AC C", + "= this", + "=t his", + "v irtual", + "vir tual", + "virt ual", + "] >", + "_ LABEL", + "_L ABEL", + "_LA BEL", + "Ġ Nich", + "ĠN ich", + "ĠNic h", + "ĠNi ch", + "_ win", + "_w in", + "Ġ Aaron", + "ĠA aron", + "W P", + "; $", + "a ims", + "ai ms", + "aim s", + "Ġ ImageView", + "ĠImage View", + "Ġend less", + "Ġendl ess", + "E RA", + "ER A", + "_ DISABLE", + "_DIS ABLE", + "Ġ cancelled", + "Ġcancel led", + "Ġcancell ed", + "Ġcanc elled", + "- us", + "-u s", + "Ġ inspection", + "Ġins pection", + "Ġinspect ion", + "Ġinsp ection", + "e min", + "em in", + "emi n", + "Ġ Grey", + "ĠG rey", + "ĠGr ey", + "ĠGre y", + "- open", + "-o pen", + "-op en", + "Ġ iterations", + "Ġiter ations", + "Ġiteration s", + ". owner", + ".o wner", + "Ġk eras", + "Ġke ras", + "Ġker as", + ". Password", + ".P assword", + ".Pass word", + "ĠR y", + "Ġ INS", + "ĠI NS", + "ĠIN S", + "A ir", + "Ai r", + "Ġ Several", + "ĠSe veral", + "ĠSever al", + "ĠSev eral", + ".Tab Stop", + "IN GLE", + "ING LE", + "Ġ Hair", + "ĠH air", + "ĠHa ir", + "ĠHai r", + "Ġ Canvas", + "ĠC anvas", + "ĠCan vas", + "A AAA", + "AA AA", + "AAA A", + "Ġf law", + "Ġfl aw", + "Ġfla w", + "c edes", + "ce des", + "ced es", + "cede s", + ". Report", + ".Re port", + "í Ĭ", + "Ġ Tips", + "ĠT ips", + "ĠTi ps", + "ĠTip s", + "cript ors", + "criptor s", + ". transaction", + ".trans action", + ". Spring", + ".S pring", + ".Sp ring", + "Ġ viewer", + "Ġview er", + "Ġvie wer", + "Ġins ights", + "Ġinsight s", + "è¾ ĵ", + "ord ion", + "U INT", + "UI NT", + "se ek", + "see k", + "Ġ Auf", + "ĠA uf", + "ĠAu f", + "ìŀ IJ", + "Ġ strain", + "Ġs train", + "Ġst rain", + "Ġstr ain", + "Ġstra in", + "To oltip", + "Tool tip", + "Ġ dz", + "Ġd z", + "ig nal", + "ign al", + "a dt", + "ad t", + "Ġ uc", + "Ġu c", + "f inite", + "fin ite", + "fi nite", + "Ġ nm", + "Ġn m", + ". cmd", + ".c md", + ".cm d", + "ĠMy Sql", + "[ data", + "[d ata", + ".j ackson", + ". tree", + ".t ree", + ".tr ee", + "Request Param", + "_ agent", + "_a gent", + "_ag ent", + "_age nt", + "\" )]čĊ", + "\") ]čĊ", + "\")] čĊ", + "Ġas sass", + "Ġass ass", + "( Constants", + "(Constant s", + "(Const ants", + ": ss", + ":s s", + "Ġ MAN", + "ĠM AN", + "ĠMA N", + "+- +-", + "Ġ Bottom", + "ĠB ottom", + "ĠBot tom", + "ĠBott om", + "pr ints", + "print s", + "pri nts", + "Ġ Same", + "ĠS ame", + "ĠSam e", + "ĠSa me", + "@ Autowired", + "s wap", + "sw ap", + "i ción", + "ic ión", + "ici ón", + "Ġprot esters", + "Ġprote sters", + "Ġprotest ers", + "Ġprotester s", + "Ġh oney", + "Ġhon ey", + "Ġho ney", + "Ġhone y", + "Ġ Veter", + "ĠV eter", + "ĠVe ter", + "ĠVet er", + "( Calendar", + "(C alendar", + "- ad", + "-a d", + "ĠBro oklyn", + "ĠBrook lyn", + "L ife", + "Li fe", + "_ VAR", + "_V AR", + "z ech", + "ze ch", + "Ġ CALL", + "ĠC ALL", + "ĠCA LL", + "ĠCAL L", + "_ CAST", + "_C AST", + "_CA ST", + "ĠE lection", + "ĠEl ection", + "ĠElect ion", + "ĠEle ction", + "Ġ thickness", + "Ġth ickness", + "Ġthick ness", + "V ery", + "Ver y", + "Ve ry", + "_ INTEGER", + "_IN TEGER", + "- dev", + "-d ev", + "-de v", + ") )))", + ")) ))", + "))) )", + "a pat", + "ap at", + "apa t", + "o ooo", + "oo oo", + "ooo o", + "d emo", + "de mo", + "dem o", + "Ġ parseFloat", + "Ġparse Float", + "Ġ Rather", + "ĠR ather", + "ĠRa ther", + "ĠRat her", + "ĠRath er", + "ST IT", + "m aker", + "ma ker", + "make r", + "mak er", + "[ current", + "[c urrent", + "[cur rent", + "[curr ent", + "chron o", + "chr ono", + "Ġ christ", + "Ġch rist", + "Ġchr ist", + "ãģ ª", + "Ġ Detail", + "ĠD etail", + "ĠDe tail", + "ĠDet ail", + "Æ° á»", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "Ġs ul", + "Ġsu l", + "id ency", + "ide ncy", + "iden cy", + "Q ue", + "Qu e", + "Ġe legant", + "Ġeleg ant", + "a pons", + "ap ons", + "apon s", + "apo ns", + "Ġd ishes", + "Ġdis hes", + "Ġdish es", + "Ġint egers", + "Ġinteg ers", + "Ġinteger s", + "Ġinte gers", + "( read", + "(r ead", + "(re ad", + "0 57", + "05 7", + "find ViewById", + "Ġ Amount", + "ĠA mount", + "ĠAm ount", + "Ġ Skip", + "ĠS kip", + "ĠSk ip", + "ĠSki p", + "Ġhab its", + "Ġha bits", + "Ġhabit s", + "* )(", + "*) (", + "Ġmon sters", + "Ġmonster s", + "M AC", + "MA C", + ": end", + ":e nd", + "Ġf rank", + "Ġfr ank", + "Ġfra nk", + "Ġfran k", + "As sembly", + "Ġ dfs", + "Ġd fs", + "Ġdf s", + "Ġn eut", + "Ġne ut", + "Ġneu t", + "_ TYPES", + "_T YPES", + "_TYPE S", + "_TYP ES", + "e qual", + "eq ual", + "equ al", + "lo yd", + "loy d", + "( uri", + "(u ri", + "(ur i", + "Ġ chi", + "Ġc hi", + "Ġch i", + "Ġdef endant", + "Ġdefend ant", + "Ġconf licts", + "Ġconflic ts", + "Ġconflict s", + "Ġconfl icts", + "Ġ vil", + "Ġv il", + "Ġvi l", + "- js", + "-j s", + "Ġ Peace", + "ĠPe ace", + "Ġ mutable", + "Ġm utable", + "Ġmut able", + "Ġmu table", + ") sender", + ")s ender", + "Ġ Focus", + "ĠF ocus", + "ĠFo cus", + "å» º", + "Ġapprec iated", + "Ġappreciate d", + "s leep", + "Ġ RED", + "ĠR ED", + "ĠRE D", + "C ulture", + "Ġdesign ers", + "Ġdesigner s", + "_ generator", + "_g enerator", + "_gen erator", + "_gener ator", + "c odes", + "co des", + "code s", + "cod es", + "/ ex", + "/e x", + ". GetValue", + ".Get Value", + "um bled", + "umb led", + "umble d", + ".scal ajs", + ".scala js", + "pe ror", + "per or", + "Ġveter ans", + "Ġveteran s", + "Ġ })čĊ", + "Ġ} )čĊ", + "Ġ}) čĊ", + "Ġun fortunately", + "Ġunfortunate ly", + "_ CREATE", + "_C REATE", + "_CRE ATE", + "_CREAT E", + "M ass", + "Ma ss", + "Mas s", + "Ġ CLAIM", + "ĠCL AIM", + "Ġ Meet", + "ĠMe et", + "_ support", + "_s upport", + "_sup port", + "_supp ort", + "B ank", + "Ban k", + "Ba nk", + "( ).Ċ", + "() .Ċ", + "(). Ċ", + "D ark", + "Da rk", + "Dar k", + "_ LOW", + "_L OW", + "_LO W", + "Ġ Mining", + "ĠM ining", + "ĠMin ing", + "ĠMini ng", + "ĠMi ning", + "Ġ Owner", + "ĠO wner", + "ĠOwn er", + "ĠOw ner", + "i era", + "ie ra", + "ier a", + "Client e", + "Cl iente", + "Cli ente", + "Ġencour aging", + "> S", + "Ġboy friend", + "Ġ Half", + "ĠH alf", + "ĠHa lf", + "ĠHal f", + "Ġ ACC", + "ĠA CC", + "ĠAC C", + "A ff", + "Af f", + "_ ar", + "_a r", + "- life", + "-l ife", + "-li fe", + "c x", + ".J Button", + "iz ado", + "iza do", + ". zero", + ".z ero", + ".open qa", + "o ton", + "ot on", + "oto n", + ". textContent", + ".text Content", + "Ġt oll", + "Ġto ll", + "Ġtol l", + "a tie", + "at ie", + "ati e", + "Ġball ot", + "Ġbal lot", + "Ġballo t", + "- number", + "-n umber", + "-num ber", + ". Exception", + ".Ex ception", + "ĉ params", + "ĉparam s", + "c ircle", + "circ le", + "cir cle", + "- map", + "-m ap", + "Ġ nap", + "Ġn ap", + "Ġna p", + "Ġ Robot", + "ĠR obot", + "ĠRob ot", + "ĠRo bot", + "Ġ Ich", + "ĠI ch", + "reg istration", + "registr ation", + "regist ration", + "A mazon", + "Am azon", + "roll ment", + "( exp", + "(e xp", + "(ex p", + "Ġt anks", + "Ġtank s", + "Ġtan ks", + "ĠG ordon", + "ĠGor don", + "ĠGord on", + "Ġm achinery", + "Ġmachine ry", + "Ġmach inery", + "Ġ baseline", + "Ġb aseline", + "Ġbase line", + "Ġbas eline", + "æ ĭ", + "0 86", + "08 6", + "Ø ©", + "Ġ Convention", + "ĠCon vention", + "ĠConv ention", + "ĉ config", + "ĉcon fig", + "ĉconf ig", + "o okies", + "ook ies", + "ookie s", + "m ult", + "mu lt", + "mul t", + "Rec ords", + "Record s", + "Ġ EST", + "ĠE ST", + "ĠES T", + "Ġgar bage", + "Ġcon form", + "Ġconf orm", + "i dal", + "id al", + "ida l", + "Ġb arg", + "Ġbar g", + "Ġba rg", + "Ġsurv ived", + "Ġsurvive d", + "Ġsurviv ed", + "Ġinvestig ations", + "Ġinvestigation s", + "9 35", + "93 5", + ".contains Key", + "---- ----------------------------------------------------------------------Ċ", + "---------------------------------------------------------------- ----------Ċ", + "---------------------------------------------------------------------- ----Ċ", + "or tion", + "ort ion", + "Ġh orr", + "Ġhor r", + "Ġho rr", + "_ http", + "_h ttp", + "_ht tp", + "Ġ mant", + "Ġm ant", + "Ġman t", + "Ġma nt", + "] ;čĊčĊ", + "]; čĊčĊ", + "];čĊ čĊ", + "b inary", + "bin ary", + "9 48", + "94 8", + "e mpl", + "em pl", + "emp l", + "Ġin quiry", + "Ġ Meanwhile", + "ĠMean while", + "0 98", + "09 8", + "Ġcollect ing", + ".Entity Framework", + "\" ,ĊĊ", + "\", ĊĊ", + "\",Ċ Ċ", + "Ġ Pic", + "ĠP ic", + "ĠPi c", + "@ Inject", + "ick ness", + "Ġ Binding", + "ĠB inding", + "ĠBind ing", + "ĠBin ding", + "Ġcont rolling", + "Ġcontrol ling", + "re verse", + "rev erse", + "Ġch airs", + "Ġchair s", + "Ġcha irs", + "Ġchai rs", + "semb led", + "sem bled", + "semble d", + "sembl ed", + "( add", + "(a dd", + "(ad d", + "Dis abled", + "Disable d", + "a nas", + "an as", + "ana s", + ". translate", + ".trans late", + "- ----------Ċ", + "-- ---------Ċ", + "---- -------Ċ", + "-------- ---Ċ", + "--- --------Ċ", + "----- ------Ċ", + "---------- -Ċ", + "------ -----Ċ", + "----------- Ċ", + "------- ----Ċ", + "--------- --Ċ", + "Ġref lected", + "Ġreflect ed", + "Ġrefl ected", + "\" ]ĊĊ", + "\"] ĊĊ", + "\"]Ċ Ċ", + "Ex ternal", + "Ext ernal", + "Extern al", + "Ar row", + "Arr ow", + "S ingleton", + "Single ton", + "Sing leton", + "% x", + "Ġ Å", + "Ġan cest", + "Ġance st", + "Ġanc est", + "ĠOr leans", + "ĉ cmd", + "ĉc md", + "ĉcm d", + "Ġpro hibited", + "Ġprohib ited", + "Ġprohibit ed", + "ith metic", + "( channel", + "(ch annel", + "(chan nel", + "_ css", + "_c ss", + "_cs s", + "For ward", + ". socket", + ".s ocket", + ".so cket", + ".sock et", + "Ġl uc", + "Ġlu c", + "â Ĩ", + "Ġ Firefox", + "ĠFire fox", + "Ġ Movies", + "ĠM ovies", + "ĠMovie s", + "ĠMov ies", + ") _", + ". ends", + ".e nds", + ".end s", + ".en ds", + "( shape", + "(s hape", + "(sh ape", + "Ġde alt", + "Ġdeal t", + "Ġs aves", + "Ġsa ves", + "Ġsave s", + "Ġsav es", + "Ġgl ory", + "Ġglo ry", + "Ġglor y", + "Ġmej or", + "Ġbre athing", + "Ġbreath ing", + "Ġ eller", + "Ġe ller", + "Ġel ler", + "Ġell er", + "Ġelle r", + "get Data", + "Ġ angles", + "Ġan gles", + "Ġang les", + "Ġangle s", + "Ġangl es", + "Ġ toolbar", + "Ġtool bar", + "Ġ spacing", + "Ġsp acing", + "Ġspa cing", + "Ġspac ing", + "0 59", + "05 9", + "I PS", + "IP S", + "Ġfloor s", + "Ġflo ors", + "_ ACTIVE", + "_ACT IVE", + "_ACTIV E", + "Ġ shuffle", + "Ġsh uffle", + "/ shared", + "/sh ared", + "/share d", + "Ġ Ele", + "ĠE le", + "ĠEl e", + "e dish", + "ed ish", + "edi sh", + "edis h", + "Ġweb cam", + ". expect", + ".ex pect", + ".exp ect", + "i loc", + "il oc", + "ilo c", + "Ġ Includes", + "ĠIn cludes", + "ĠInclude s", + "Ġt weeted", + "Ġtweet ed", + "Ġtwe eted", + "Ġtwee ted", + "Ġ :)", + "Ġ: )", + "Ġ Essay", + "ĠEs say", + "ĠEss ay", + "F ix", + "Fi x", + "- between", + "-b etween", + "_ web", + "_w eb", + "_we b", + ". conv", + ".con v", + ".co nv", + "Ġrac ism", + "Ġreflect s", + "Ġrefl ects", + "u mm", + "um m", + "и ÑĤе", + "иÑĤ е", + "_ footer", + "_f ooter", + "_foot er", + "/ docs", + "/d ocs", + "/doc s", + "/do cs", + "Ġ Pour", + "ĠP our", + "ĠPo ur", + "ĠPou r", + "Ng Module", + ". initialize", + ".initial ize", + "pattern s", + "_ In", + "_I n", + "Ġ Abb", + "ĠA bb", + "ĠAb b", + "* čĊ", + "Ġsent iment", + "b uff", + "buf f", + "bu ff", + "_ counts", + "_count s", + "_co unts", + "_cou nts", + "Ġ reuse", + "Ġre use", + "ch unk", + "chu nk", + "Ġim posed", + "Ġimp osed", + "Ġimpose d", + "Primary Key", + "Fore ground", + "Ġcons umed", + "Ġconsum ed", + "Ġconsume d", + "? !", + "Ġd ick", + "Ġdi ck", + "Ġdic k", + "Ġ chron", + "Ġch ron", + "Ġchr on", + "ĠF ern", + "ĠFe rn", + "ĠFer n", + "Ġ responsive", + "Ġres ponsive", + "Ġrespons ive", + "9 58", + "95 8", + "Ġin sect", + "Ġins ect", + "Ġinse ct", + "ic ulty", + "icult y", + "Ġ rw", + "Ġr w", + "Ġa like", + "Ġal ike", + "Ġali ke", + "Ġ subset", + "Ġsub set", + "Ġsubs et", + "Ġ Cookies", + "ĠC ookies", + "ĠCo okies", + "ĠCook ies", + "ĠCookie s", + "Ġ Pair", + "ĠP air", + "ĠPa ir", + "ĠPai r", + "Ġ tier", + "Ġt ier", + "Ġti er", + "Ġtie r", + "I FO", + "IF O", + "av our", + "avo ur", + "avou r", + "Ġ QU", + "ĠQ U", + ", sizeof", + ",size of", + "Ġ merged", + "Ġm erged", + "Ġmer ged", + "Ġmerge d", + "Ġmerg ed", + "m v", + "i tol", + "it ol", + "ito l", + "y lon", + "yl on", + "Ġj umped", + "Ġjump ed", + ". role", + ".r ole", + ".ro le", + "ens aje", + "ensa je", + "R ules", + "Rule s", + "Ru les", + "Ġ browse", + "Ġb rowse", + "Ġbrows e", + "Ġbrow se", + "An imator", + "Anim ator", + "Ġy oga", + "Ġyo ga", + "Ġyog a", + "Ġ variants", + "Ġvar iants", + "Ġvari ants", + "Ġvariant s", + "Ġcour tesy", + "Ġcourt esy", + "Ġcourte sy", + "u ran", + "ur an", + "ura n", + "p bs", + "pb s", + "else if", + "A lt", + "Al t", + "Ġ Lane", + "ĠL ane", + "ĠLa ne", + "ĠLan e", + "C LK", + "CL K", + "I MARY", + "IM ARY", + "IMA RY", + "_ PROPERTY", + "_P ROPERTY", + "_PRO PERTY", + "ï¼ IJ", + "Ġ chan", + "Ġc han", + "Ġch an", + "Ġcha n", + "Ġgrad ually", + "Ġgradu ally", + "Ġgradual ly", + "Ġ shake", + "Ġsh ake", + "Ġsha ke", + "Ġbl onde", + "Ġblo nde", + "Ġblond e", + ".. .\");Ċ", + "... \");Ċ", + "...\" );Ċ", + "- sex", + "-s ex", + "-se x", + "Ġgame play", + "a cies", + "ac ies", + "aci es", + "acie s", + ". refresh", + ".re fresh", + ".ref resh", + "U SB", + "US B", + "Ġ Plot", + "ĠP lot", + "ĠPl ot", + "W as", + "Wa s", + "iss ippi", + "Ġ Tensor", + "ĠT ensor", + "Ġcrypt ocurrency", + "Ġcrypto currency", + "Ġcryptoc urrency", + "Ġdifficult ies", + "De leted", + "Delete d", + "Del eted", + "With out", + "_ append", + "_app end", + "_ap pend", + "_ ver", + "_v er", + "_ve r", + "9 67", + "96 7", + "\" ))čĊ", + "\") )čĊ", + "\")) čĊ", + "Ġh onestly", + "Ġhonest ly", + "Ġ pivot", + "Ġp ivot", + "Ġpiv ot", + "Ġ temps", + "Ġte mps", + "Ġtem ps", + "Ġtemp s", + "_ ps", + "_p s", + "Ġ Unlike", + "ĠUn like", + "[ :-", + "[: -", + "V S", + "_ inf", + "_in f", + "_i nf", + "Ġjun ior", + "Ġjuni or", + "Ġ animations", + "Ġan imations", + "Ġanim ations", + "Ġanimation s", + "Ġ filepath", + "Ġfile path", + "? {{$", + ">{ {$", + ">{{ $", + "Ġ unicode", + "Ġun icode", + "Ġuni code", + "Ġunic ode", + "p laces", + "pl aces", + "place s", + "pla ces", + "Ġ Coffee", + "ĠC offee", + "ĠCo ffee", + "ĠCoff ee", + ". SE", + ".S E", + "Ġ PAR", + "ĠP AR", + "ĠPA R", + "( txt", + "(t xt", + "(tx t", + "g ebra", + "ge bra", + "geb ra", + "Ġ fires", + "Ġf ires", + "Ġfire s", + "Ġfi res", + "Ġfir es", + "Main Window", + "m edium", + "med ium", + "medi um", + "Ġ( âĢľ", + "Ġ lg", + "Ġl g", + "Ġ cmp", + "Ġc mp", + "Ġcm p", + "/ base", + "/b ase", + "_ layers", + "_l ayers", + "_layer s", + "_la yers", + "_ entries", + "_en tries", + "_ent ries", + "Ġadmin ister", + "ĠS UCH", + "ĠSU CH", + "B P", + "ĠScott ish", + "ĉ čĊĉčĊ", + "ĉčĊ ĉčĊ", + "g uard", + "gu ard", + "gua rd", + "Ġ Strong", + "ĠSt rong", + "ĠStr ong", + "In sn", + "Ins n", + "Ġ CAP", + "ĠC AP", + "ĠCA P", + "as ury", + "asu ry", + "Ġ SEE", + "ĠS EE", + "ĠSE E", + "C lock", + "Cl ock", + "Clo ck", + "e rie", + "er ie", + "eri e", + "\\ models", + "\\model s", + "Ġ $$", + "Ġ$ $", + "Ġ Cab", + "ĠC ab", + "ĠCa b", + "Ġwur de", + "Ġsold ier", + "Ġcl ips", + "Ġclip s", + "Ġcli ps", + "Ġarr angement", + "Ġarrang ement", + "Ġarrange ment", + "Ġ Wonder", + "ĠW onder", + "ĠWo nder", + "ĠWon der", + "ĠH orn", + "ĠHor n", + "ĠHo rn", + "Ġsc ared", + "Ġsca red", + "Ġscar ed", + "Ġscare d", + "Ġc ure", + "Ġcur e", + "Ġcu re", + "m kdir", + "mk dir", + "Ġ aligned", + "Ġal igned", + "Ġalign ed", + "Ġ Pink", + "ĠP ink", + "ĠPin k", + "ĠPi nk", + "Ġl anded", + "Ġland ed", + "Ġlan ded", + "D imension", + "Dim ension", + "Scroll Pane", + ". chat", + ".c hat", + ".ch at", + ". With", + ".W ith", + "Ġ Train", + "ĠT rain", + "ĠTr ain", + "ĠTra in", + "] .Ċ", + "]. Ċ", + "Ġth irty", + "Ġd urable", + "Ġdur able", + "Ġ ld", + "Ġl d", + "Ġlate init", + "Ġ charts", + "Ġch arts", + "Ġchar ts", + "Ġchart s", + "Ġcha rts", + "Ġins ult", + ". Fatal", + ".F atal", + ".Fat al", + "_ ct", + "_c t", + "Ġm asks", + "Ġmask s", + "Ġmas ks", + "CLUD ED", + "CLU DED", + "CLUDE D", + "P resident", + "Pres ident", + "Ġcol ours", + "Ġcolour s", + "g ments", + "gment s", + "gm ents", + ". attributes", + ".at tributes", + ".attribute s", + ".attrib utes", + "Ġ Flex", + "ĠF lex", + "ĠFl ex", + "ĠFle x", + "Ġ Clock", + "ĠC lock", + "ĠCl ock", + "ĠClo ck", + "ÃŃ cul", + "ÃŃc ul", + "i men", + "im en", + "ime n", + "J O", + "Ġ Regex", + "ĠReg ex", + "_ LINK", + "_L INK", + "Ġc ouch", + "Ġco uch", + "Ġcou ch", + "Ġ INPUT", + "ĠIN PUT", + "Ġb eating", + "Ġbe ating", + "Ġbeat ing", + "b usiness", + "bus iness", + "pr eced", + "pre ced", + "prec ed", + ". unit", + ".un it", + ".u nit", + ".uni t", + "Ġ Fel", + "ĠF el", + "ĠFe l", + "N ever", + "Ne ver", + "os pel", + "osp el", + ". startswith", + ".start swith", + "ĠE PA", + "ĠEP A", + ". only", + ".on ly", + "Ġpre venting", + "Ġprevent ing", + "Ġprev enting", + "y er", + "ye r", + "Column Name", + "Ġe levation", + "Ġele vation", + "Ġelev ation", + "f lu", + "fl u", + "i cycle", + "ic ycle", + "icy cle", + "Ġ offline", + "Ġoff line", + "Tool bar", + "Ġcomp eting", + "Ġcompet ing", + ") ].", + ")] .", + "Ġm og", + "Ġmo g", + "Ġ isValid", + "Ġis Valid", + "A sk", + "As k", + "_ av", + "_a v", + "_ lat", + "_l at", + "_la t", + "A NC", + "AN C", + "ĠJ oh", + "ĠJo h", + "k ers", + "ke rs", + "ker s", + "Ġ guards", + "Ġg uards", + "Ġgu ards", + "Ġguard s", + "Ġguar ds", + "Ġ chains", + "Ġch ains", + "Ġchain s", + "Ġcha ins", + "Ġchai ns", + "ĠSimple DateFormat", + ". static", + ".st atic", + ".stat ic", + "Ġv essel", + "Ġve ssel", + "Ġvess el", + "Ġves sel", + "Ġm ud", + "Ġmu d", + "Ġst abil", + "Ġstab il", + "Ġsta bil", + "Ġst ret", + "Ġstr et", + "Ġstre t", + "g m", + "am ation", + "ama tion", + "amat ion", + "ç ľ", + "- with", + "-w ith", + "Ġ ros", + "Ġr os", + "Ġro s", + "_ PA", + "_P A", + "Ġ resultado", + "Ġresult ado", + "Ġconf idential", + "Ġconfident ial", + "ĠTok yo", + "ĉ using", + "ĉu sing", + "ĉus ing", + "Ġ Mathf", + "ĠMath f", + "ĠMat hf", + "om bine", + "omb ine", + "Ġ ESPN", + "ĠESP N", + "ĠES PN", + "Ġde alers", + "Ġdeal ers", + "Ġdealer s", + "Ġdismiss ed", + "T RY", + "TR Y", + "Ġte ens", + "Ġteen s", + "Ġtee ns", + "rec ords", + "record s", + "Ġw ings", + "Ġwin gs", + "Ġwing s", + "g allery", + "ac counts", + "account s", + "acco unts", + "_ LIB", + "_L IB", + "Ġj acket", + "Ġja cket", + "Ġjack et", + "Ġjac ket", + "Ġ NSObject", + "ĠNS Object", + "Ġ stones", + "Ġs tones", + "Ġst ones", + "Ġstone s", + "Ġsto nes", + "Ġ Delivery", + "ĠD elivery", + "ĠDel ivery", + "ĠDeliver y", + "ĠD iet", + "ĠDi et", + "ĠDie t", + "/ watch", + "/w atch", + "Ġto ilet", + "Ġtoile t", + "Ġtoi let", + "Ġ Guest", + "ĠG uest", + "ĠGu est", + ". day", + ".d ay", + ".da y", + "0 67", + "06 7", + "Ġ intval", + "Ġint val", + "0 87", + "08 7", + "Vis it", + "Vi sit", + "Ġinvest igated", + "Ġinvestig ated", + "Ġinvestigate d", + "Ġpen tru", + "Ġpent ru", + "ĠThe atre", + "andid ates", + "andidate s", + "andi dates", + "L ang", + "La ng", + "Ġ Serv", + "ĠS erv", + "ĠSe rv", + "ĠSer v", + "Ġ controllers", + "Ġcont rollers", + "Ġcontrol lers", + "Ġcontroller s", + "Ġ setTitle", + "Ġset Title", + "N P", + "a my", + "am y", + "f lat", + "fl at", + "( ui", + "(u i", + "0 69", + "06 9", + "_ document", + "_d ocument", + "_doc ument", + "è ĥ½", + "èĥ ½", + "Ġ Coin", + "ĠC oin", + "ĠCo in", + "ĠAd ams", + "ĠAdam s", + "ĠAda ms", + "p tic", + "pt ic", + "Ġ productive", + "Ġpro ductive", + "Ġproduct ive", + "Ġprod uctive", + "Ġaccompl ished", + "Ġaccomplish ed", + "čĊ čĊčĊčĊ", + "čĊčĊ čĊčĊ", + "čĊčĊčĊ čĊ", + "Ġde ferred", + "Ġdefer red", + "i entes", + "ient es", + "ien tes", + "iente s", + "Ġs inc", + "Ġsi nc", + "Ġsin c", + "ol ars", + "olar s", + "ola rs", + "Right arrow", + "Ġvar iations", + "Ġvari ations", + "Ġvariation s", + "( offset", + "(o ffset", + "(off set", + "9 57", + "95 7", + ". LayoutInflater", + ".Layout Inflater", + "Ġ suspend", + "Ġs uspend", + "Ġsus pend", + "Ġsusp end", + "Ġpre vention", + "Ġprevent ion", + "Ġprev ention", + "_ private", + "_pr ivate", + "_priv ate", + "_ js", + "_j s", + "â ĺħ", + "âĺ ħ", + "Ġw ieder", + "Ġwie der", + "Ġwi eder", + "at um", + "atu m", + "Ĵ Į", + "Ġappear ances", + "Ġappearance s", + ". Document", + ".D ocument", + ".Doc ument", + "Ġvalid ates", + "Ġvalidate s", + "Ġvalida tes", + "c alendar", + "cal endar", + "} \";Ċ", + "}\" ;Ċ", + ". demo", + ".d emo", + ".de mo", + "con ut", + "co nut", + "Ġcor rection", + "Ġcorrect ion", + "Ġcorre ction", + "Ġcorr ection", + "Ġ Deal", + "ĠDe al", + "Ġbatter ies", + "Ġbatt eries", + ". duration", + ".d uration", + ", \\", + "_ marker", + "_m arker", + "_mark er", + "_mar ker", + "m ulti", + "mul ti", + "mult i", + "Ġ halt", + "Ġh alt", + "Ġha lt", + "Ġhal t", + "Ġ cms", + "Ġc ms", + "Ġcm s", + "Ġsh aped", + "Ġshape d", + "Ġsha ped", + "B ro", + "Br o", + "re duce", + "red uce", + "Ġ ####", + "Ġ# ###", + "Ġ## ##", + "Ġ### #", + "C TOR", + "CT OR", + "Ġ Benef", + "ĠB enef", + "ĠBen ef", + "ĠBene f", + "Ġicon ic", + "Ġic onic", + "Ġp iano", + "Ġpi ano", + "Ġpian o", + "Ġeffect iveness", + "Ġeffective ness", + "| .Ċ", + "|. Ċ", + "Ġ ajax", + "Ġa jax", + "Ġaj ax", + "Ġv olumes", + "Ġvol umes", + "Ġvolume s", + "Ġvolum es", + "ภ¡", + "Ġ cljs", + "Ġcl js", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĊ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĊ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĊ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ċ", + "a ths", + "at hs", + "ath s", + "r aits", + "ra its", + "rait s", + "rai ts", + "å¤ §", + "Ñ ĸ", + "_ mult", + "_m ult", + "_mul t", + "_mu lt", + "Ġfasc inating", + "A verage", + "Ġp ré", + "Ġpr é", + "ĠChair man", + ".find Element", + "_ pin", + "_p in", + "_pi n", + "Ġcom paring", + "Ġcomp aring", + "Ġcompar ing", + "Ġdark ness", + "- Fi", + "-F i", + "- server", + "-s erver", + "-ser ver", + "Ġselect ing", + "s terdam", + "ster dam", + "Ġ Parts", + "ĠP arts", + "ĠPart s", + "ĠPar ts", + "ĠPa rts", + "FORM ATION", + "FORMAT ION", + "Ġn oting", + "Ġnot ing", + "Ġno ting", + "Ġ pile", + "Ġp ile", + "Ġpi le", + "Ġpil e", + "o gs", + "og s", + "Ġ palette", + "Ġp alette", + "Ġpa lette", + "Ġpal ette", + "Ġpale tte", + "_ do", + "_d o", + "it ize", + "iti ze", + "0 79", + "07 9", + "( )(", + "() (", + "Ġdef ining", + "Ġdefin ing", + "Ġ remainder", + "Ġremain der", + "Un its", + "Unit s", + "Uni ts", + "_ TASK", + "_T ASK", + "_TA SK", + "Http Client", + "S ocial", + "So cial", + "Ġf undra", + "Ġfun dra", + "Ġfund ra", + "N R", + "c hest", + "ch est", + "che st", + "ches t", + "C urrency", + "Curr ency", + ". adapter", + ".ad apter", + "Ġd op", + "Ġdo p", + "un ting", + "unt ing", + "ANG UAGE", + "\" He", + "\"H e", + "ĉ index", + "ĉin dex", + "_ package", + "_p ackage", + "_pack age", + ". Icon", + ".I con", + "Ġre pet", + "Ġrep et", + "Ġrepe t", + "m ass", + "ma ss", + "mas s", + "= \".$", + "=\" .$", + "=\". $", + "ĠS ud", + "ĠSu d", + "Ġ lid", + "Ġl id", + "Ġli d", + "pro vince", + "prov ince", + "ì ľ", + "G PIO", + "GP IO", + "Ð ļ", + "Ġ MySQL", + "ĠMy SQL", + "Ġ docs", + "Ġd ocs", + "Ġdo cs", + "Ġdoc s", + "Ġ GA", + "ĠG A", + "Ġip sum", + "Ġips um", + "K ernel", + "Ġac cepts", + "Ġaccept s", + "Ġf itting", + "Ġfit ting", + "Ġcu ando", + "Ġd uplic", + "Ġdup lic", + "ĠBr other", + "ĠBro ther", + "ĠK le", + "ĠKl e", + "n ums", + "num s", + "nu ms", + "Ġ morph", + "Ġm orph", + "Ġmor ph", + "Ġ ########", + "Ġ# #######", + "Ġ## ######", + "Ġ### #####", + "Ġ#### ####", + "Ġ##### ###", + "Ġ CGPoint", + "ĠCG Point", + "< unsigned", + "ä¾ ĭ", + "ĠD uke", + "ĠDu ke", + ".set Bounds", + "q s", + "o ric", + "or ic", + "ori c", + "j er", + "je r", + "Ġreg arded", + "Ġregard ed", + "Http Request", + "Ġb onds", + "Ġbo nds", + "Ġbon ds", + "Ġbond s", + "Ġthorough ly", + "en cent", + "ence nt", + "enc ent", + "Ġhighlight ed", + "Ġac res", + "Ġacre s", + "Ġwork place", + "Ġ Lux", + "ĠL ux", + "ĠLu x", + "Ġ quot", + "Ġqu ot", + "Ġquo t", + "9 86", + "98 6", + ". inflate", + ".in flate", + ".inf late", + "Ġd ocumented", + "Ġdocument ed", + "Ġadd iction", + "Ġaddict ion", + "Ġ mutation", + "Ġm utation", + "Ġmut ation", + ". city", + ".c ity", + ".ci ty", + "Ġbott les", + "Ġbottle s", + "Ġ Repository", + "ĠRe pository", + "ĠRepos itory", + "o nn", + "on n", + "err no", + "ARI ABLE", + "åº ¦", + "_ BEGIN", + "_B EGIN", + "_BE GIN", + "g las", + "gl as", + "' })Ċ", + "'} )Ċ", + "'}) Ċ", + "Ġ Massage", + "ĠM assage", + "ĠMass age", + "ĠMas sage", + "ĠW hit", + "ĠWh it", + "reg ex", + "W A", + "Ġout let", + "- head", + "-h ead", + "-he ad", + "Ġ expired", + "Ġex pired", + "Ġexp ired", + "Ġexpire d", + "Ġ Thai", + "ĠT hai", + "ĠTh ai", + "/ include", + "/in clude", + "/inc lude", + "g radient", + "grad ient", + "s canf", + "scan f", + "Ġs eam", + "Ġse am", + "Ġsea m", + "w al", + "wa l", + "ĉ buf", + "ĉb uf", + "B earer", + "Be arer", + "Bear er", + "Ġprec ious", + "Ġprecio us", + "i facts", + "if acts", + "ifact s", + "ifa cts", + "c oord", + "co ord", + "Ġexpl oration", + "Ġexplo ration", + "Ġexplor ation", + ". getY", + ".get Y", + "( handle", + "(h andle", + "(hand le", + "T opic", + "To pic", + "Top ic", + "Ġ Vent", + "ĠV ent", + "ĠVen t", + "ĠVe nt", + "r hs", + "rh s", + "- -----Ċ", + "-- ----Ċ", + "---- --Ċ", + "--- ---Ċ", + "----- -Ċ", + "------ Ċ", + "Ġ Bright", + "ĠB right", + "ĠBr ight", + "ĠBrig ht", + "ĠBri ght", + "Ġ guild", + "Ġg uild", + "Ġgu ild", + "Ġgui ld", + "m other", + "mo ther", + "mot her", + "moth er", + "st orm", + "sto rm", + "stor m", + "Ġmunicip al", + "Ġ ink", + "Ġin k", + "Ġi nk", + ". TYPE", + ".T YPE", + "w l", + ".. . < /", + "_ ro", + "_r o", + "( (*", + "(( *", + "? ???", + "?? ??", + "??? ?", + "_ vertex", + "_ver tex", + "_vert ex", + "ke it", + "ĠH alloween", + "T I", + "Ġ Va", + "ĠV a", + "_ car", + "_c ar", + "_ca r", + "=\" {{$", + "=\"{{ $", + "=\"{ {$", + "Ġrandom ly", + "а ние", + "ан ие", + "ани е", + "Ġsh ocked", + "Ġshock ed", + "ĠPok émon", + "s ignal", + "sign al", + "sig nal", + "Ġ SDK", + "ĠS DK", + "ĠSD K", + "m iddleware", + "middle ware", + "Ġt reating", + "Ġtr eating", + "Ġtreat ing", + "Ġtre ating", + "Ġbur ned", + "Ġburn ed", + "De partment", + "Dep artment", + "Depart ment", + "ĠS pect", + "ĠSp ect", + "ĠSpec t", + "ĠSpe ct", + "Ġ cliente", + "Ġcl iente", + "Ġclient e", + "Ġcli ente", + "Ġ Reddit", + "ĠRe ddit", + "ĠRed dit", + "_ avg", + "_a vg", + "_av g", + "Ġinst alling", + "Ġinstall ing", + "Ġinstal ling", + "_ alpha", + "_al pha", + ", data", + ",d ata", + "Ġ setId", + "Ġset Id", + "Ġ ListView", + "ĠList View", + "( property", + "(p roperty", + "(pro perty", + "(prop erty", + "Ġcross ing", + "Ġ Obj", + "ĠO bj", + "ĠOb j", + "ĠW ard", + "ĠWar d", + "ĠWa rd", + "ĠRedirect To", + "Ġ Present", + "ĠP resent", + "ĠPres ent", + "ĠPre sent", + "Ġdr aws", + "Ġdraw s", + "Ġdra ws", + "ched uled", + "chedule d", + "Ġlegisl ative", + "Ġtw ist", + "Ġ Stra", + "ĠS tra", + "ĠSt ra", + "ĠStr a", + "Ġ AFP", + "ĠA FP", + "ĠAF P", + "ĠC hap", + "ĠCh ap", + "ĠCha p", + "- pr", + "-p r", + ": CGRect", + "Ġ ces", + "Ġc es", + "Ġce s", + "R outes", + "Route s", + "Ro utes", + "n of", + "no f", + "Ġ visa", + "Ġv isa", + "Ġvis a", + "Ġvi sa", + "Ġ TCP", + "ĠT CP", + "ĠTC P", + "ĠE VEN", + "ĠEV EN", + "ĠEVE N", + "iv ial", + "ivia l", + "ivi al", + "Ġ Letter", + "ĠL etter", + "ĠLet ter", + "R AY", + "RA Y", + "Ġ implode", + "Ġim plode", + "Ġimpl ode", + ". eq", + ".e q", + "= '+", + "=' +", + "Ġmot ivated", + "Ġmotiv ated", + "Ġmotivate d", + ". visible", + ".v isible", + ".vis ible", + ". short", + ".s hort", + ".sh ort", + "> manual", + "Ġ Technical", + "ĠTechn ical", + "Ġcorpor ation", + "Ġcorp oration", + "Ġcorpo ration", + "Ġ HW", + "ĠH W", + "an ka", + "ank a", + "T AIL", + "TA IL", + "is tas", + "ist as", + "ista s", + "Ġper forms", + "Ġperform s", + "Ġperfor ms", + "Ġ Behavior", + "ĠBeh avior", + ". For", + ".F or", + "_ ORDER", + "_OR DER", + "_ORD ER", + "Ġ Kick", + "ĠK ick", + "ĠKi ck", + "Ġ callbacks", + "Ġcall backs", + "Ġcallback s", + "_ dr", + "_d r", + "u ego", + "ue go", + "h ub", + "hu b", + "uff icient", + "s ky", + "sk y", + "Ġ bp", + "Ġb p", + "h table", + "ht able", + "hta ble", + "Ġ ONLY", + "ĠON LY", + "ĠAUTH ORS", + "ĠAUTHOR S", + ". Argument", + ".Arg ument", + "\" };Ċ", + "\"} ;Ċ", + "Ġ Thunder", + "ĠTh under", + "ĠThu nder", + "Ġ Kom", + "ĠK om", + "ĠKo m", + ". Should", + ".Sh ould", + "A UTH", + "AU TH", + "AUT H", + "a hu", + "ah u", + "_ payment", + "_p ayment", + "_pay ment", + "Ġ starter", + "Ġst arter", + "Ġstart er", + "Ġstar ter", + "ìĦ ľ", + "ìļ ©", + "B log", + "Bl og", + "Blo g", + ". patch", + ".p atch", + ".pat ch", + "Ġgover ned", + "Ġgovern ed", + "as sy", + "ass y", + "- found", + "-f ound", + "Ġthe ater", + "Ġtheat er", + "ĠFont Weight", + "Ġ Batman", + "ĠBat man", + "\" If", + "\"I f", + ". Random", + ".R andom", + "_ delta", + "_d elta", + "_del ta", + "Ġ CE", + "ĠC E", + "Auth enticated", + "Authenticate d", + "Ġd rone", + "Ġdr one", + "Ġdro ne", + "Ġc ous", + "Ġco us", + "Ġcou s", + "r adius", + "rad ius", + "radi us", + "M er", + "Me r", + "( None", + "(N one", + "Ġ NJ", + "ĠN J", + "_ headers", + "_header s", + "_head ers", + "_he aders", + "Ġ amer", + "Ġa mer", + "Ġam er", + "py test", + "Ġ Actions", + "ĠA ctions", + "ĠAct ions", + "ĠAction s", + "ĉ ĉĉĠĠĠĠ", + "ĉĉ ĉĠĠĠĠ", + "ĉĉĉ ĠĠĠĠ", + "ĉĉĉĠĠĠ Ġ", + "ĉĉĉĠ ĠĠĠ", + "ĉĉĉĠĠ ĠĠ", + "Ġ ett", + "Ġe tt", + "Ġet t", + "Ġh oly", + "Ġho ly", + "Ġhol y", + "Ġun comfort", + "ĠN in", + "ĠNi n", + "Ġ Decimal", + "ĠD ecimal", + "ĠDe cimal", + "ĠDec imal", + "Ġ Messages", + "ĠM essages", + "ĠMessage s", + "ĠMess ages", + ". sender", + ".s ender", + ".se nder", + ".send er", + "] ])Ċ", + "]] )Ċ", + "]]) Ċ", + "Ġem brace", + "Ġemb race", + "Ġembr ace", + "Th ough", + "Tho ugh", + "/ sp", + "/s p", + "Ġcult ures", + "Ġculture s", + "Ġcul tures", + "Ġhigh way", + "t ar", + "ta r", + ". fail", + ".f ail", + ".fa il", + "_ hidden", + "_h idden", + "_hi dden", + "_hid den", + "ĠcomponentDid Mount", + "ĠW right", + "ĠWr ight", + "Ġj ag", + "Ġja g", + "_ il", + "_i l", + "../ ../../", + "../../ ../", + "i gu", + "ig u", + "F ood", + "Foo d", + "Fo od", + "Ġ ace", + "Ġa ce", + "Ġac e", + "Ġa ños", + "Ġaño s", + "Ġañ os", + "U SD", + "US D", + "Ġmut ual", + "Ġmu tual", + "Log ic", + "Ġt emple", + "Ġtem ple", + "Ġtemp le", + "Ġtempl e", + "Ġbrief ly", + "Ġ Trip", + "ĠT rip", + "ĠTr ip", + "ĠTri p", + "class method", + "default s", + "Ġ chunks", + "Ġch unks", + "Ġchunk s", + ", ,,,", + ",, ,,", + ",,, ,", + "Ġ Reason", + "ĠRe ason", + "$ id", + "$i d", + "- ups", + "-up s", + "-u ps", + "Ġ damn", + "Ġda mn", + "Ġdam n", + "Ġtr ucks", + "Ġtruck s", + "Ġun limited", + "Ġunl imited", + "Ġsc ulpt", + "Ġ Cards", + "ĠC ards", + "ĠCar ds", + "ĠCard s", + "Ġ autor", + "Ġa utor", + "Ġaut or", + "Ġauto r", + "Ġau tor", + "Ġ Testing", + "ĠT esting", + "ĠTest ing", + "ĠTes ting", + "Ġd iese", + "Ġdi ese", + "Ġdie se", + "Ġdies e", + "sh ops", + "shop s", + "ç ´", + "( payload", + "(p ayload", + "Ġ PATH", + "ĠP ATH", + "ĠPA TH", + "ĠPAT H", + "ĠMem orial", + "ĠMemo rial", + "ĠMemor ial", + "Ġridic ulous", + "e gree", + "eg ree", + "egr ee", + "-w inning", + "-win ning", + "Ġre hab", + "Ġreh ab", + "Ġsophistic ated", + "w pdb", + "wp db", + "ĉ path", + "ĉp ath", + "! \";Ċ", + "!\" ;Ċ", + "_ SYS", + "_S YS", + "_SY S", + ". speed", + ".s peed", + ".sp eed", + "Ġ soap", + "Ġso ap", + "s uffix", + "W rap", + "Wr ap", + "Ġenh ancement", + "Ġenhance ment", + "à ī", + "ú b", + "Ġ playlist", + "Ġplay list", + "Ġmix ing", + "Ġmi xing", + "Ġmixin g", + "ant idad", + "anti dad", + "=\" \";Ċ", + "=\"\" ;Ċ", + "Ġ Revision", + "ĠRe vision", + "ĠRev ision", + "Ġ Beat", + "ĠB eat", + "ĠBe at", + "ĠBea t", + ". inc", + ".in c", + ".i nc", + "- way", + "-w ay", + "e ncias", + "enc ias", + "encia s", + "enci as", + "u lers", + "ul ers", + "ule rs", + "uler s", + "C at", + "Ca t", + "i del", + "id el", + "ide l", + "Ġ Ship", + "ĠS hip", + "ĠSh ip", + "ĠShi p", + ". setColor", + ".set Color", + "Ġthreat ening", + "Ġthreaten ing", + ". modules", + ".module s", + ".mod ules", + "Ġafter wards", + "Ġafterward s", + "Ġ Dashboard", + "ĠD ashboard", + "ĠDash board", + "Ċ ĠĊ", + "S ignal", + "Sign al", + "Sig nal", + "Ġ primer", + "Ġpr imer", + "Ġprim er", + "Ġprime r", + "Ġpri mer", + "or neys", + "orney s", + "orne ys", + "ici ary", + "icia ry", + "iciar y", + "Ġ ligne", + "Ġl igne", + "Ġli gne", + "Ġlig ne", + "Ġlign e", + "_ predict", + "_p redict", + "_pre dict", + "_pred ict", + "Ġa est", + "Ġae st", + "Ġaes t", + "_ https", + "_http s", + "_ht tps", + "> :", + "Ġ Lex", + "ĠL ex", + "ĠLe x", + "Ġren contres", + "Ġrencont res", + "Ġrencontre s", + "Ġrencontr es", + "eg ral", + "egr al", + "egra l", + "s cala", + "sc ala", + "scal a", + "_ family", + "_f amily", + "ÃŁ en", + "ÃŁe n", + "_ sym", + "_s ym", + "_sy m", + "Ġunc ertainty", + "Ġuncert ainty", + "Ġuncertain ty", + "Ġ VALUE", + "ĠVAL UE", + "Ġ };čĊčĊ", + "Ġ} ;čĊčĊ", + "Ġ};čĊ čĊ", + "Ġ}; čĊčĊ", + "Ġbr oader", + "Ġbro ader", + "Ġbroad er", + "Ġh orses", + "Ġhor ses", + "Ġhorse s", + "Ġhors es", + "ãģ Ŀ", + "Ġ Kal", + "ĠK al", + "ĠKa l", + "o ba", + "ob a", + "_ INET", + "_IN ET", + "_I NET", + "Ġ Kill", + "ĠK ill", + "ĠKi ll", + "ĠKil l", + "j query", + "a mination", + "am ination", + "amin ation", + "ami nation", + "amina tion", + "[ @\"", + "[@ \"", + "Ġm uj", + "Ġmu j", + "# ##Ċ", + "## #Ċ", + "### Ċ", + "First OrDefault", + "then Return", + "C he", + "Ch e", + "/ footer", + "/f ooter", + "/foo ter", + "Ġp arks", + "Ġpar ks", + "Ġpark s", + "as je", + "ĠG ulf", + "ĠGu lf", + "ĠGul f", + "Ġmod est", + "Ġmode st", + "Ġmo dest", + "Ġmodes t", + ". Init", + ".I nit", + ".In it", + "ï¼Ł ĊĊ", + "ï¼ŁĊ Ċ", + "Ġpros pects", + "Ġprospect s", + "Ġ svg", + "Ġs vg", + "Ġsv g", + "Ġ åı", + "Ġå ı", + ". Dialog", + ".D ialog", + ".Di alog", + ".Dial og", + "_ NET", + "_N ET", + "_NE T", + "Ġ (($", + "Ġ( ($", + "Ġ(( $", + "Ġ ek", + "Ġe k", + "Ġ Warning", + "ĠW arning", + "ĠWar ning", + "ĠWarn ing", + "Ġ MK", + "ĠM K", + "< LM", + "", + ")= >", + "Ġ Repair", + "ĠRe pair", + "ĠRep air", + "_ BE", + "_B E", + "B rand", + "Br and", + "u art", + "ua rt", + "uar t", + "p review", + "pr eview", + "pre view", + "prev iew", + "Ġiniti atives", + "Ġinitiative s", + "r unning", + "run ning", + "b ang", + "ba ng", + "ban g", + "ĉ update", + "ĉup date", + "Ġ Coach", + "ĠCo ach", + "R ich", + "Ġ youtube", + "Ġy outube", + "Ġyou tube", + "Ġrit ual", + "Ġri tual", + "ap pa", + "app a", + "ĠRob inson", + "ĠRobin son", + "p recision", + "pre cision", + "prec ision", + "//// ////////////////////////////////////////////////////////////////////////", + "//////// ////////////////////////////////////////////////////////////////////", + "//////////////// ////////////////////////////////////////////////////////////", + "//////////////////////////////////////////////////////////////// ////////////", + "//////////// ////////////////////////////////////////////////////////////////", + "//////////////////////////////////////////////////////////////////////// ////", + "//////////////////////////////////////////////////////////////////// ////////", + "//////////////////////////////////////////////////////////// ////////////////", + "= []Ċ", + "=[ ]Ċ", + "=[] Ċ", + "Ġcelebr ated", + "Ġcelebrate d", + "O TO", + "OT O", + "Ġin clusion", + "Ġincl usion", + "Ġinclus ion", + "J P", + "' ;čĊčĊ", + "'; čĊčĊ", + "';čĊ čĊ", + "Ġnot able", + "Ġno table", + "Ġnota ble", + "( _.", + "(_ .", + "Man aged", + "Manage d", + "Mana ged", + "Ġgu ides", + "Ġguide s", + "Ġguid es", + "Ġgui des", + "& nbsp", + "ated Route", + "Ġ Adjust", + "ĠAd just", + "ĠAdj ust", + "Ġcol ored", + "Ġcolor ed", + "Ġcolore d", + "_ scores", + "_s cores", + "_score s", + "_sc ores", + "Ġ Tesla", + "ĠTe sla", + "ĠTes la", + "_ progress", + "_pro gress", + "_prog ress", + ". inst", + ".in st", + ".i nst", + ".ins t", + "[ '_", + "[' _", + ". flags", + ".f lags", + ".fl ags", + ".flag s", + "Ġ fclose", + "Ġf close", + "Ġfc lose", + "_ OPER", + "_O PER", + "_OP ER", + "ż y", + "_ note", + "_n ote", + "_no te", + "_not e", + "Ġtrans gender", + "å ķ", + "RI PT", + "Ġab sent", + "Ġabs ent", + "Ġ amet", + "Ġa met", + "Ġam et", + "Ġ operand", + "Ġoper and", + "Ġopera nd", + "ë ©", + "Ġ hood", + "Ġh ood", + "Ġho od", + "to LowerCase", + "a vo", + "av o", + "ĠC ircuit", + "ĠCirc uit", + "ĠL ind", + "ĠLin d", + "ĠLi nd", + "-- }}Ċ", + "= m", + "Ġ suppress", + "Ġsup press", + "Ġsupp ress", + "Ġ MAP", + "ĠM AP", + "ĠMA P", + "i ang", + "ia ng", + "ian g", + "- admin", + "-ad min", + "Ġ sidebar", + "Ġs idebar", + "Ġside bar", + "Ġ Bu", + "ĠB u", + "Ġ Hex", + "ĠH ex", + "ĠHe x", + ", F", + "Ġ Signal", + "ĠS ignal", + "ĠSign al", + "ĠSig nal", + "Ġtrans parency", + "ĠF ederation", + "ĠFeder ation", + "ĠFed eration", + "/ V", + "R eq", + "Re q", + "Ġ pulse", + "Ġp ulse", + "Ġpul se", + "Ġpu lse", + "Ġpuls e", + "Ġt ends", + "Ġte nds", + "Ġten ds", + "Ġtend s", + "Number s", + "Num bers", + "% '", + "Ġde port", + "Ġdep ort", + "d atas", + "data s", + "da tas", + "dat as", + "_ UINT", + "_U INT", + "_UI NT", + "_ tra", + "_t ra", + "_tr a", + "o ko", + "ok o", + "Ġ \"?", + "Ġ\" ?", + "com pet", + "comp et", + "so lete", + "sole te", + "sol ete", + "un dry", + "und ry", + "Ġ overlap", + "Ġover lap", + "Ġoverl ap", + "} `,Ċ", + "}` ,Ċ", + "}`, Ċ", + ". ly", + ".l y", + "_ summary", + "_sum mary", + "Ġ Lost", + "ĠL ost", + "ĠLo st", + "ĠLos t", + ". Center", + ".C enter", + "Ġdis ability", + ". Serialization", + ".S erialization", + ".Serial ization", + "Ġ geom", + "Ġge om", + "Ġgeo m", + "Ġ ?:", + "Ġ? :", + "Ġ Wo", + "ĠW o", + "Ġsh ipped", + "Ġship ped", + "Ĥ æķ°", + "Ġu gly", + "Ġug ly", + "Ġugl y", + "Ġexcit ement", + "Ġex terior", + "Ġext erior", + "Ġexter ior", + "Ġ checkout", + "Ġcheck out", + "Ġ kur", + "Ġk ur", + "Ġku r", + ", D", + "ĠAl aska", + "ĠAla ska", + "Ġsyn thetic", + "Ġsynth etic", + "Ġsynt hetic", + "Ġ Budget", + "ĠB udget", + "ĠBud get", + "Ġ Subscribe", + "ĠSub scribe", + "Ġ &Ċ", + "Ġ& Ċ", + "ÈĻ i", + "Ġ Yu", + "ĠY u", + "ĉ query", + "} .Ċ", + "}. Ċ", + "Ġtr aged", + "Ġtra ged", + "Ġtrag ed", + "as sen", + "ass en", + "asse n", + "Ġaccom modation", + "Ġaccommod ation", + "Ġphys ician", + "Ġphysic ian", + "Ġre named", + "Ġren amed", + "Ġrename d", + "Ġt idak", + "Ġtid ak", + "z Äħ", + "Ġ minus", + "Ġm inus", + "Ġmin us", + "n ych", + "ny ch", + "0 97", + "09 7", + "_EX CEPTION", + "th reads", + "thread s", + "Ġt ire", + "Ġti re", + "Ġtir e", + "_ created", + "_c reated", + "_create d", + "_cr eated", + "_cre ated", + "en sure", + "ens ure", + "Ġ worthy", + "Ġw orthy", + "Ġwor thy", + "Ġworth y", + "Ġexc use", + "Ġ cloth", + "Ġc loth", + "Ġcl oth", + "Ġclo th", + "Ġclot h", + ". parentNode", + ".parent Node", + "/ platform", + "/pl atform", + "ĠU FC", + "ĠUF C", + "Ġ Gtk", + "ĠG tk", + "un ny", + "unn y", + "Ġg ibt", + "Ġgi bt", + "Ġgib t", + "ke ley", + "kel ey", + "h um", + "hu m", + "( tx", + "(t x", + "ĉ dev", + "ĉd ev", + "ĉde v", + "Ġout fit", + "Ġoutf it", + "do ors", + "door s", + "Ġ fon", + "Ġf on", + "Ġfo n", + "i cut", + "ic ut", + "v olatile", + "vol atile", + "Ġhom osex", + "Ġhomo sex", + "Max imum", + "Ġex pend", + "Ġexp end", + "Ġ });ĊĊĊ", + "Ġ} );ĊĊĊ", + "Ġ});Ċ ĊĊ", + "Ġ});ĊĊ Ċ", + "Ġ}) ;ĊĊĊ", + "Ġ}); ĊĊĊ", + "E q", + "on ders", + "ond ers", + "onder s", + "onde rs", + "de partment", + "dep artment", + "depart ment", + "Ġ Physics", + "ĠPh ysics", + "ĠPhys ics", + "\" });Ċ", + "\"} );Ċ", + "\"}) ;Ċ", + "Ġpar ad", + "Ġpara d", + "Ġpa rad", + ". Str", + ".S tr", + ".St r", + "Ġs ele", + "Ġse le", + "Ġsel e", + "IF IED", + "IFI ED", + "Ġdel ivers", + "Ġdeliver s", + "i van", + "iv an", + "iva n", + "Ġrespons ibilities", + "Ġadvoc ates", + "Ġadvocate s", + "è µ", + "Ġ RID", + "ĠR ID", + "ĠRI D", + ". parameters", + ".param eters", + ".parameter s", + "M etrics", + "Met rics", + "Metric s", + "ron ics", + "ronic s", + "Ġ UITableViewCell", + "ĠUI TableViewCell", + "ĠUITableView Cell", + "A bsolute", + "Abs olute", + "ip se", + "ips e", + "y lum", + "yl um", + "ML Element", + "MLE lement", + "_ VALID", + "_VAL ID", + "< title", + " \\<^", + ">\\< ^", + "Ġ ios", + "Ġi os", + "Ġio s", + "s ound", + "so und", + "sou nd", + "\" ];", + "\"] ;", + "Ġf reed", + "Ġfr eed", + "Ġfree d", + "Ġfre ed", + "r ottle", + "rot tle", + "rott le", + "Ġ Lower", + "ĠL ower", + "ĠLo wer", + "ĠLow er", + "ĠLowe r", + "[ count", + "[c ount", + "å Ŀ", + "Ġp ale", + "Ġpa le", + "Ġpal e", + "ĠW ayne", + "ĠWay ne", + "ĠWa yne", + "e arth", + "ear th", + "_ categories", + "_c ategories", + "U CK", + "UC K", + ". metadata", + ".m etadata", + ".meta data", + ".met adata", + "Ġsum mon", + "Ġsumm on", + "H OME", + "HO ME", + "олÑĮ з", + "Ġmanufact ured", + "Ġmanufacture d", + "Ġ dock", + "Ġd ock", + "Ġdo ck", + "Ġdoc k", + "Ġcompet itors", + "Ġcompetitor s", + "Ġcompetit ors", + "_ MODEL", + "_MODE L", + "_MO DEL", + "_MOD EL", + "ok ia", + "oki a", + "Ġ Hey", + "ĠH ey", + "ĠHe y", + "Î ¿", + "Ġ backward", + "Ġback ward", + "ĠPO SS", + "ĠPOS S", + "r opa", + "ro pa", + "rop a", + "Ġ cri", + "Ġc ri", + "Ġcr i", + "_ OBJ", + "_O BJ", + "Trans port", + "- high", + "-h igh", + "Ġerot ik", + "Ġero tik", + "_ slot", + "_s lot", + "_sl ot", + "Ġ artic", + "Ġar tic", + "Ġart ic", + "_ framework", + "_f ramework", + "_frame work", + "_fr amework", + "-s erif", + "-se rif", + "-ser if", + "ĠSql DbType", + "' )(", + "') (", + "+ \"/", + "+\" /", + "Ġw ore", + "Ġwor e", + "Ġwo re", + "S il", + "Si l", + "Ġst oring", + "Ġstor ing", + "Ġsto ring", + "Ġ Phase", + "ĠPh ase", + "u ant", + "ua nt", + "uan t", + "Ġb ump", + "Ġbu mp", + "Ġbum p", + "in ho", + "inh o", + "Ġd ign", + "Ġdi gn", + "Ġdig n", + "Ġ backs", + "Ġb acks", + "Ġback s", + "Ġba cks", + "Ġbac ks", + "q q", + "( hash", + "(h ash", + "(has h", + "Ġ geo", + "Ġg eo", + "Ġge o", + "Ġt ender", + "Ġte nder", + "Ġten der", + "Ġtend er", + "L ogo", + "Log o", + "Lo go", + "! )Ċ", + "!) Ċ", + "Ġ MX", + "ĠM X", + "Ġ Arthur", + "ĠAr thur", + "ĠArt hur", + "ĠArth ur", + "ess oa", + "esso a", + "_ Ch", + "_C h", + "Ġbed rooms", + "Ġbedroom s", + "=\"# \"><", + "=\"#\" ><", + "=\"#\"> <", + "Ġ throat", + "Ġth roat", + "Ġthro at", + "i nsic", + "in sic", + "ins ic", + "insi c", + ". integer", + ".int eger", + "Ġ primitive", + "Ġpr imitive", + "Ġprim itive", + "Truth y", + "Ġfacilit ate", + "Ġfacil itate", + "Ġcre ativity", + "Ġcreat ivity", + "Ġ DNS", + "ĠD NS", + "ĠDN S", + "Ġ gra", + "Ġg ra", + "Ġgr a", + "u ez", + "ue z", + "Ġcount less", + "ĠP oland", + "ĠPol and", + "ĠPo land", + "' M", + "Ġ Dist", + "ĠD ist", + "ĠDis t", + "ĠDi st", + "Ġ vest", + "Ġv est", + "Ġve st", + "Ġves t", + "Ġcert ification", + "Ġcertif ication", + "á» ij", + "h eld", + "he ld", + "hel d", + "ext ensions", + "extension s", + "( static", + "(st atic", + "(stat ic", + "Ġ grades", + "Ġg rades", + "Ġgr ades", + "Ġgrad es", + "Ġgrade s", + "Ġgra des", + "Ġ Uber", + "ĠU ber", + "ĠUb er", + "ãģ Ł", + "Ġ [])Ċ", + "Ġ[ ])Ċ", + "Ġ[] )Ċ", + "Ġ[]) Ċ", + "d atos", + "da tos", + "dat os", + "dato s", + "Ġ getData", + "Ġget Data", + "ĠCh arg", + "ĠChar g", + "ĠCha rg", + "Ġ BS", + "ĠB S", + ".m icrosoft", + ".micro soft", + ". video", + ".v ideo", + ". direction", + ".d irection", + ".dir ection", + ".di rection", + ".direct ion", + "-> {'", + "->{ '", + "l ua", + "lu a", + "a pest", + "ap est", + "ape st", + "apes t", + "Ġbo iler", + "Ġboil er", + "e rek", + "er ek", + "ere k", + "Ġdec ides", + "Ġdecide s", + "Ġdecid es", + ". jar", + ".j ar", + "I SC", + "IS C", + "Ġ Words", + "ĠW ords", + "ĠWord s", + "ĠWor ds", + "( CON", + "(C ON", + "EMPL ATE", + "ree ze", + "s hots", + "sh ots", + "shot s", + "a pps", + "ap ps", + "app s", + "un ted", + "unt ed", + "unte d", + ". setName", + ".set Name", + ": :<", + ":: <", + "- bold", + "-b old", + "-bo ld", + "ê ²", + "å¯ Ĩ", + "Long rightarrow", + "Ġun fair", + "Ġunf air", + "Ġ earning", + "Ġe arning", + "Ġear ning", + "Ġearn ing", + "Ġ shelf", + "Ġsh elf", + "Ġshe lf", + "Ġshel f", + "UR EMENT", + "URE MENT", + "Ġ idle", + "Ġi dle", + "Ġid le", + "_ MENU", + "_M ENU", + "_ME NU", + ". Custom", + ".C ustom", + "A GER", + "AG ER", + "AGE R", + "- \"", + "_ switch", + "_s witch", + "_sw itch", + "b ecause", + "be cause", + "bec ause", + ") view", + ")v iew", + "m are", + "ma re", + "mar e", + "_ condition", + "_con dition", + "_cond ition", + "Ġ Starting", + "ĠStart ing", + "ĠStar ting", + "M vc", + "( pre", + "(p re", + "(pr e", + "d ump", + "du mp", + "dum p", + "_ LOCK", + "_L OCK", + "_LO CK", + "_LOC K", + "at etime", + "ate time", + ". callback", + ".c allback", + ".call back", + "ĠC er", + "ĠCe r", + "o pol", + "op ol", + "opo l", + "ib rary", + "ibr ary", + "Ġ reservation", + "Ġres ervation", + "Ġreserv ation", + "Ġreserva tion", + "ĉ ĉĉĉĉĉĉĊ", + "ĉĉ ĉĉĉĉĉĊ", + "ĉĉĉĉ ĉĉĉĊ", + "ĉĉĉ ĉĉĉĉĊ", + "ĉĉĉĉĉ ĉĉĊ", + "ĉĉĉĉĉĉ ĉĊ", + "ĉĉĉĉĉĉĉ Ċ", + "l ector", + "le ctor", + "lect or", + "lec tor", + "grad uate", + "Ġgener ous", + "Ġgene rous", + "Ġ ion", + "Ġi on", + "Ġio n", + "r icao", + "ri cao", + "ric ao", + "rica o", + "m q", + "_ complete", + "_com plete", + "_comp lete", + "( cursor", + "(c ursor", + "Ġ FormControl", + "ĠForm Control", + ": center", + ":c enter", + "Ġsub stitute", + "Ġsubstit ute", + "Ġ Planning", + "ĠPl anning", + "ĠPlan ning", + "Ġp ension", + "Ġpens ion", + "Ġrecommend ation", + "Ġ Tags", + "ĠT ags", + "ĠTag s", + "ĠTa gs", + "Ġg ef", + "Ġge f", + "Ġ albums", + "Ġalbum s", + "Ġalb ums", + "Ġ washing", + "Ġw ashing", + "Ġwash ing", + "r oc", + "ro c", + "Ġtr ains", + "Ġtrain s", + "Ġtra ins", + "Ġtrai ns", + "a tings", + "at ings", + "ating s", + "atin gs", + "Ġex ponent", + "Ġexp onent", + "ack bar", + "- ln", + "-l n", + "á g", + ".Data Annotations", + "Ġ EIF", + "ĠE IF", + "ĠEI F", + "ĠMal aysia", + "ĠMalays ia", + "ĉ PORT", + "ĉP ORT", + "on us", + "onu s", + "Ġc lever", + "Ġcl ever", + "Ġcle ver", + "Ġp eu", + "Ġpe u", + "> ĊĊĊĊ", + ">Ċ ĊĊĊ", + ">ĊĊ ĊĊ", + ">ĊĊĊ Ċ", + "Ġ Arguments", + "ĠArg uments", + "ĠArgument s", + "Ġdeb ugging", + "Ġdebug ging", + "( right", + "(r ight", + "' D", + "com pute", + "comp ute", + "comput e", + "Ġfin est", + "Ġfine st", + "Ġfi nest", + "Ġfines t", + "OR AGE", + "ORA GE", + "Ġspect acular", + "ph rase", + "Ġin dia", + "Ġind ia", + "Ġlegend ary", + "b irth", + "bir th", + "Ġ composite", + "Ġcom posite", + "Ġcomp osite", + "Ġcompos ite", + "Ġg rows", + "Ġgr ows", + "Ġgrow s", + "Ġgro ws", + "Ġ TD", + "ĠT D", + "Ġe pid", + "Ġep id", + "Ġlaunch ing", + "] ][", + "]] [", + "Min utes", + "Minute s", + "Ġ Cha", + "ĠC ha", + "ĠCh a", + "Ġclean ed", + "Ġcle aned", + "Ġwitness es", + "u kan", + "uk an", + "uka n", + "ĉ Type", + "ĉT ype", + "Ġh abe", + "Ġhab e", + "Ġha be", + "par agraph", + "para graph", + "ĠJ Panel", + "ĠJP anel", + "ĠH ann", + "ĠHa nn", + "ĠHan n", + "Ġvar ied", + "Ġvari ed", + "Ġva ried", + "Ġ Pokemon", + "ĠP okemon", + "ĠPok emon", + "ĠPoke mon", + "ĠM UST", + "ĠMU ST", + "åĬ ¨", + ". visibility", + ".vis ibility", + "op up", + "^ [", + ". expand", + ".exp and", + "Ġ \"',", + "Ġ\" ',", + "Ġ\"' ,", + ".f asterxml", + "_ auto", + "_a uto", + "_aut o", + "Ġ Sheet", + "ĠS heet", + "ĠShe et", + "m arker", + "mark er", + "mar ker", + "Par cel", + "e ws", + "ew s", + "Ġ Strategy", + "ĠStr ategy", + "ĠStrateg y", + "- making", + "-m aking", + "Ġun ve", + "Ġtr ailing", + "Ġtrail ing", + "Ġtra iling", + "Ġtrai ling", + "Ġcl icks", + "Ġclick s", + "Ġcli cks", + "Ġclic ks", + "Ġ GetComponent", + "ĠGet Component", + "ĉ content", + "ĉc ontent", + "ĉcon tent", + "ĉcont ent", + "IG ENCE", + "ER NEL", + "ERN EL", + "NSMutable Array", + "Ġb reat", + "Ġbr eat", + "Ġbre at", + "Ġharm ful", + "¶ Ī", + "Ġbes ides", + "Ġbeside s", + "Ġb oring", + "Ġbo ring", + "Ġbor ing", + "Ġbrut al", + "Ġbru tal", + "v ang", + "va ng", + "van g", + "( parse", + "(p arse", + "(par se", + "qu ick", + "qui ck", + "Ġ pytest", + "Ġpy test", + "Ġpyt est", + "Ġswitch ing", + "( )]Ċ", + "() ]Ċ", + "()] Ċ", + "Ġ ìĦ", + "Ġì Ħ", + "L ER", + "LE R", + "ĉ font", + "ĉf ont", + "Ġ nett", + "Ġn ett", + "Ġne tt", + "Ġnet t", + ") ]ĊĊ", + ")]Ċ Ċ", + ")] ĊĊ", + "( /\\", + "(/ \\", + "æŀ ľ", + "to Array", + "Ġb reed", + "Ġbr eed", + "Ġbre ed", + "Ġbree d", + "Ġ CAR", + "ĠC AR", + "ĠCA R", + "Ġ Weapon", + "ĠWe apon", + "A bs", + "Ab s", + "t ot", + "to t", + "Ġ setName", + "Ġset Name", + "a ptive", + "apt ive", + "Ġ :,", + "Ġ: ,", + "Ġ escaped", + "Ġesc aped", + "Ġescape d", + "Ġescap ed", + "or den", + "ord en", + "orde n", + "Ġ Pri", + "ĠP ri", + "ĠPr i", + "th umbnail", + "Ġde scriptions", + "Ġdes criptions", + "Ġdescription s", + "Ġdescri ptions", + "/ styles", + "/st yles", + "/style s", + "Ġ PCI", + "ĠP CI", + "ĠPC I", + "Ġ alphabet", + "Ġal phabet", + "Ġalpha bet", + "Ġalph abet", + "astic search", + "astics earch", + "N OTE", + "NO TE", + "NOT E", + "Ġc ialis", + "Ġci alis", + "ĠGr iff", + "ĠGri ff", + "Ġp orque", + "Ġpor que", + "Ġprote ins", + "Ġprotein s", + "p lays", + "pl ays", + "play s", + "pla ys", + "Ġst ating", + "Ġstat ing", + "Ġsta ting", + "Ġstati ng", + "Ġim agination", + "Ġimag ination", + "Ġimagin ation", + "Ġf acial", + "Ġfa cial", + "Ġfac ial", + "ĠM echan", + "ĠMe chan", + "ĠMech an", + "ĠMec han", + "Ġarr anged", + "Ġarrang ed", + "Ġarrange d", + "_ used", + "_u sed", + "_us ed", + "_use d", + "Ġarrang ements", + "Ġarrangement s", + "Ġarrange ments", + "Ġ Pipe", + "ĠP ipe", + "ĠPi pe", + "ĠPip e", + "host name", + "Ġpro vinc", + "Ġprov inc", + "T it", + "Ti t", + ".Flat Style", + "Ġ Split", + "ĠS plit", + "ĠSp lit", + "ĠSpl it", + "Ġ Loader", + "ĠL oader", + "ĠLo ader", + "ĠLoad er", + ". cc", + ".c c", + "Ġ clinic", + "Ġcl inic", + "Ġclin ic", + "Ġcli nic", + "-------- --------------------", + "---------------- ------------", + "------------ ----------------", + "------------- ---------------", + "--------------- -------------", + "-------------- --------------", + "-------------------- --------", + "Ġb aking", + "Ġba king", + "Ġbak ing", + "Ġ ENT", + "ĠE NT", + "ĠEN T", + "ne ath", + "nea th", + "ãĢģ ĊĊ", + "ãĢģĊ Ċ", + "A NE", + "AN E", + ".EntityFramework Core", + "a ppers", + "ap pers", + "app ers", + "apper s", + "appe rs", + ". ic", + ".i c", + "Ġ NgModule", + "ĠNg Module", + "Ġ FORM", + "ĠF ORM", + "ĠFOR M", + "ĠFO RM", + "Ġ ';", + "Ġ' ;", + "- profit", + "-pro fit", + "-prof it", + "h w", + "en emy", + "ene my", + "Ġ Eye", + "ĠE ye", + "ĠEy e", + "Ġca ution", + "Ġcaut ion", + "t own", + "to wn", + "Ġur ged", + "Ġurge d", + "Ġurg ed", + "Ġ Jimmy", + "ĠJim my", + "ynchron ous", + "-s ized", + "-size d", + "m aking", + "ma king", + "mak ing", + ", {", + "] ',", + "]' ,", + "_ Object", + "_O bject", + "_Obj ect", + "ah oma", + "aho ma", + "Ġact ivist", + "Ġactiv ist", + "IN VAL", + "INV AL", + "Ġ Commercial", + "ĠCom mercial", + "ĠComm ercial", + "ĠOr lando", + "( tab", + "(t ab", + "Ġ ب", + "ĠØ ¨", + "Al gorithm", + "Ġher itage", + "Get Mapping", + "Ġfail ures", + "Ġfailure s", + "r ios", + "ri os", + "rio s", + "at iva", + "ati va", + "ativ a", + "Ġ tet", + "Ġt et", + "Ġte t", + "Ġcar pet", + "Ġcarp et", + "( Z", + "th ree", + "thr ee", + "Ġdis closure", + "Ġdisc losure", + ". ERROR", + ".ERR OR", + "_ called", + "_c alled", + "_call ed", + "_cal led", + "Ġd ial", + "Ġdi al", + "Ġdia l", + "Ġoccas ional", + "Ġoccasion al", + ". Err", + ".E rr", + "Ġfun cion", + "Ġfunc ion", + "caff old", + "caf fold", + "Ġre leasing", + "Ġrele asing", + "ï¼ī ĊĊ", + "ï¼īĊ Ċ", + "_ Value", + "_V alue", + "_Val ue", + "Ġ Vari", + "ĠV ari", + "ĠVar i", + "ĠVa ri", + "y ellow", + "Ġstrugg les", + "Ġstruggle s", + ". cal", + ".c al", + ".ca l", + "ĠDak ota", + "ĉ close", + "ĉc lose", + "ĉcl ose", + "Ġsand wich", + "Ġ analytics", + "Ġan alytics", + "Ġanaly tics", + "Ġanalytic s", + "Ġ **)", + "Ġ* *)", + "Ġ** )", + "& #", + "Ġ Jos", + "ĠJ os", + "ĠJo s", + "Ġpass ive", + "AT TR", + "ATT R", + "Th rowable", + "Throw able", + "ĠM un", + "ĠMu n", + "Ġ Uint", + "ĠU int", + "ĠUi nt", + "( disposing", + "(dis posing", + "a rak", + "ar ak", + "ara k", + "Ġ Leaders", + "ĠLe aders", + "ĠLeader s", + "ĠLead ers", + "Ġaffect ing", + "Ġitem View", + "Ġe conomics", + "Ġecon omics", + "Ġeconomic s", + "Ġeconom ics", + "f v", + "๠Ģ", + ". rb", + ".r b", + "Ġ Overall", + "ĠOver all", + "Ġwealth y", + "Ġev olved", + "Ġevolve d", + "n da", + "nd a", + "ĠH us", + "ĠHu s", + "re strict", + "u men", + "um en", + "ume n", + "ĠA gricult", + "ĠAgr icult", + "! ĊĊĊ", + "!ĊĊ Ċ", + "!Ċ ĊĊ", + "Ġ expires", + "Ġex pires", + "Ġexp ires", + "Ġexpire s", + "Ġspokes person", + "int erval", + "inter val", + "Ġ â", + "Ġà ¢", + "Ġ queen", + "Ġqu een", + "Ġque en", + "( nil", + "(n il", + "i ngo", + "in go", + "ing o", + "He ap", + "Ù İ", + "Ġcom plain", + "Ġcomp lain", + "Ġcompl ain", + "S ym", + "Sy m", + "Ġ Clone", + "ĠCl one", + "ĠClo ne", + "Ġ Ru", + "ĠR u", + "ĠW ILL", + "ĠWI LL", + "Ġ Crystal", + "ĠCr ystal", + "ĠCry stal", + "/ content", + "/c ontent", + "/con tent", + "i ngen", + "in gen", + "ing en", + "inge n", + "oint ment", + "Last Name", + "av icon", + "avi con", + "avic on", + "Ġ IBM", + "ĠI BM", + "ĠIB M", + "Ġ Dimension", + "ĠD imension", + "ĠDim ension", + "a nh", + "an h", + "ici pants", + "icip ants", + "icipant s", + "Ġ Anne", + "ĠAn ne", + "ĠAnn e", + ". progress", + ".pro gress", + "Ġ algo", + "Ġal go", + "Ġalg o", + "o bil", + "ob il", + "obi l", + "Ġ Voice", + "ĠV oice", + "ĠVo ice", + "Ġ FE", + "ĠF E", + "Ġ gli", + "Ġg li", + "Ġgl i", + "Ġ ved", + "Ġv ed", + "Ġve d", + "Ġpr events", + "Ġpre vents", + "Ġprevent s", + "Ġprev ents", + "\\ Column", + "\\C olumn", + "Ġ folk", + "Ġf olk", + "Ġfol k", + "Ġfo lk", + "e tti", + "et ti", + "ett i", + "Ġ mn", + "Ġm n", + "Ġ CLASS", + "ĠCL ASS", + "Ġdis playing", + "Ġdisplay ing", + "Ġdispl aying", + "ĠK l", + "ĠF err", + "ĠFe rr", + "ĠFer r", + "d uto", + "du to", + ". ib", + ".i b", + "Ġ dados", + "Ġd ados", + "Ġda dos", + "Ġdad os", + "Ġdado s", + "' name", + "'n ame", + "'na me", + "- space", + "-s pace", + "-sp ace", + "Ġit alian", + "Ġitalia n", + "Ġ inverse", + "Ġin verse", + "Ġinv erse", + "Ġinvers e", + "Ġ dense", + "Ġd ense", + "Ġden se", + "Ġdens e", + "u ter", + "ut er", + "ute r", + "Ġ IEnumerator", + "ĠI Enumerator", + "- sign", + "-s ign", + "Ġnation wide", + "Ġ persona", + "Ġperson a", + "Ġpers ona", + "Ġperso na", + "Ġs olved", + "Ġsol ved", + "Ġsolve d", + "Ġdram atically", + "Ġdramatic ally", + "Log out", + "Logo ut", + "Ġ grav", + "Ġg rav", + "Ġgr av", + "Ġgra v", + "Ġanal yses", + "Ġanaly ses", + "Ġanalys es", + "Ġanalyse s", + "ol lo", + "oll o", + "Ġ lamp", + "Ġl amp", + "Ġla mp", + "Ġlam p", + ". team", + ".t eam", + ".te am", + "Ġ Erot", + "ĠE rot", + "ĠEr ot", + "= [\"", + "=[ \"", + "Ġd ancing", + "Ġdan cing", + "Ġ ?>/", + "Ġ? >/", + "Ġ?> /", + "Ġc ater", + "Ġca ter", + "Ġcat er", + "Ġcate r", + "f fe", + "ff e", + "Ġ Sha", + "ĠS ha", + "ĠSh a", + "ĠB os", + "ĠBo s", + "ĠRE QUIRE", + "Ġ Monster", + "ĠMon ster", + "ĠMons ter", + "Ġ RB", + "ĠR B", + "Ġ IDE", + "ĠI DE", + "ĠID E", + "Ġs uits", + "Ġsu its", + "Ġsuit s", + "Ġsui ts", + "Ġ formData", + "Ġform Data", + "( theta", + "(th eta", + "(the ta", + "Ġs patial", + "Ġsp atial", + "Ġspat ial", + "= NULL", + "=N ULL", + "Ġ SqlConnection", + "ĠSql Connection", + "Ġ à", + "ĠV enez", + "ĠVen ez", + "ĠVe nez", + "Ġ Morning", + "ĠM orning", + "ĠMor ning", + "Ġpublic ations", + "Ġpub lications", + "Ġpublication s", + "ĠNON INFRINGEMENT", + "first Name", + "u ds", + "ud s", + "W ould", + "Wo uld", + "_ HEAD", + "_HE AD", + "Ġinv ested", + "Ġinvest ed", + "Ġinve sted", + "s table", + "st able", + "sta ble", + "stab le", + "f red", + "fr ed", + "fre d", + "Ġcomm ander", + "Ġcommand er", + "Ġcomma nder", + "Ġcommande r", + "S ES", + "SE S", + "âĢĶ a", + "an che", + "anc he", + "anch e", + "Ġ Movement", + "ĠM ovement", + "ĠMo vement", + "ĠMove ment", + "ĠMov ement", + "ë ³", + "S uite", + "Su ite", + "Suit e", + "Ġjur isdiction", + "ë ¦¬", + "ë¦ ¬", + "Ġ Beth", + "ĠB eth", + "ĠBe th", + "ĠBet h", + "j Query", + "ĠI sa", + "ĠIs a", + "Ġd ental", + "Ġden tal", + "Ġdent al", + ", *", + "Ġ Limit", + "ĠL imit", + "ĠLim it", + "ĠLi mit", + "il iation", + "ili ation", + "ilia tion", + "= \"{", + "=\" {", + "b ast", + "ba st", + "bas t", + "Ġt urb", + "Ġtu rb", + "Ġtur b", + "i sy", + "is y", + "O OK", + "OO K", + "Ġadv ocate", + "Ġadvoc ate", + "i mag", + "im ag", + "ima g", + "LE CTION", + "LECT ION", + "LEC TION", + "л ÑĮ", + "( category", + "(c ategory", + ". dec", + ".d ec", + ".de c", + "Ġun iqu", + "Ġuni qu", + "Ġuniq u", + "_ sn", + "_s n", + "Ġat tracted", + "Ġattr acted", + "Ġattract ed", + "Ġ Ãī", + "Ġà ī", + "Ġ Running", + "ĠR unning", + "ĠRun ning", + "_ edges", + "_edge s", + "_ed ges", + "Ġ Disable", + "ĠD isable", + "ĠDis able", + "_ AS", + "_A S", + "åĽ ¾", + "Ġnetwork ing", + "Ġnet working", + "_ branch", + "_br anch", + "H aving", + "Ha ving", + "toBe Truthy", + "G I", + "Ġc amps", + "Ġca mps", + "Ġcamp s", + "Ġcam ps", + "s ep", + "se p", + "- part", + "-p art", + "-par t", + "Ġ )ĊĊĊĊĊĊĊĊ", + "Ġ) ĊĊĊĊĊĊĊĊ", + "Ġ)Ċ ĊĊĊĊĊĊĊ", + "Ġ)ĊĊ ĊĊĊĊĊĊ", + "Ġ)ĊĊĊ ĊĊĊĊĊ", + "ustr alia", + "ustral ia", + "Ġ Reports", + "ĠRe ports", + "ĠRep orts", + "ĠReport s", + "ĠRepo rts", + "r ito", + "ri to", + "rit o", + "Ġwa ist", + "_ plus", + "_p lus", + "_pl us", + "Ġ WW", + "ĠW W", + "- person", + "-p erson", + "-per son", + "Ap ril", + "Apr il", + "Ġ sar", + "Ġs ar", + "Ġsa r", + ". tar", + ".t ar", + ".ta r", + "Ġagricult ural", + "Ġagr icultural", + "t ic", + "ti c", + "Ġ tcp", + "Ġt cp", + "Ġtc p", + "Ġ setValue", + "Ġset Value", + "ag ento", + "agent o", + "agen to", + "Ġ Appe", + "ĠA ppe", + "ĠApp e", + "ĠAp pe", + "p iler", + "pi ler", + "pile r", + "C ADE", + "CA DE", + "CAD E", + "Ġ anche", + "Ġan che", + "Ġanch e", + "Ġanc he", + "at cher", + "atch er", + "Ġc omics", + "Ġcom ics", + "Ġcomic s", + "Ġ lbs", + "Ġl bs", + "Ġlb s", + "_ segment", + "_s egment", + "_se gment", + "_seg ment", + "' ]=$", + "'] =$", + "']= $", + "it ters", + "itt ers", + "itter s", + "itte rs", + "i cher", + "ic her", + "ich er", + "iche r", + "G INE", + "GIN E", + "GI NE", + "Ġutil ize", + "Ġutiliz e", + "Ġ Cursor", + "ĠC ursor", + "ĠCurso r", + "_ expression", + "_ex pression", + "_exp ression", + "_expr ession", + "Ġ dag", + "Ġd ag", + "Ġda g", + "< long", + " < ?=", + "> x", + ". Task", + ".T ask", + "m oney", + "mon ey", + "mo ney", + "ib aba", + "iba ba", + "' });Ċ", + "'} );Ċ", + "'}) ;Ċ", + "Ġ Specific", + "ĠS pecific", + "ĠSpec ific", + "Ġ Linear", + "ĠL inear", + "ĠLine ar", + "ĠLin ear", + "ĠLi near", + "_ OPT", + "_O PT", + "_OP T", + "Hash Code", + "( Player", + "(P layer", + ".Contains Key", + "Ġ collapsed", + "Ġc ollapsed", + "Ġcoll apsed", + "Ġcollapse d", + "Ġcollaps ed", + "trans parent", + "_R ANGE", + "View er", + "( cfg", + "(c fg", + "(cf g", + "Ġ sorting", + "Ġs orting", + "Ġsort ing", + "Ġsor ting", + "Ġinf ected", + "Ġinfect ed", + "Ġ Nach", + "ĠN ach", + "ĠNa ch", + "Ġaccommod ate", + ". elements", + ".e lements", + ".element s", + ".el ements", + ".elem ents", + "_ PART", + "_P ART", + "_PA RT", + "_PAR T", + "Ġ Sexy", + "ĠSe xy", + "ĠSex y", + "= get", + "=g et", + "( year", + "(y ear", + "Ġ xhr", + "Ġx hr", + ": ]", + "ow ski", + "ows ki", + "Ġsum mar", + "Ġsumm ar", + "Ġ ¿", + "Ġ ¿", + "Ġ inte", + "Ġin te", + "Ġint e", + "Ġi nte", + "Ġ workflow", + "Ġwork flow", + "ĠTai wan", + "v ersions", + "vers ions", + "version s", + "åı ij", + "Ġsur prisingly", + "Ġsurprising ly", + "Ġop tical", + "Ġopt ical", + "Ġoptic al", + "Ġpro ces", + "Ġproc es", + "Ġdis agree", + "Ġdisag ree", + "Ġn uevo", + "Ġnue vo", + "Ġ CAM", + "ĠC AM", + "ĠCA M", + "s orted", + "sort ed", + "le ases", + "lease s", + "lea ses", + "is tle", + "ist le", + "I dent", + "Id ent", + "Ide nt", + "ĉ event", + "ĉe vent", + "ĉev ent", + "j ected", + "ject ed", + "jec ted", + "Ch unk", + "V ars", + "Var s", + "Va rs", + ". provider", + ".pro vider", + "Ġproceed ings", + "Ġproceeding s", + "Ġ inclusive", + "Ġin clusive", + "Ġincl usive", + "Ġinclus ive", + "Ġart work", + "end ants", + "enda nts", + "endant s", + "ï¼ļ Ċ", + "s een", + "se en", + "see n", + "Ġ lig", + "Ġl ig", + "Ġli g", + "Ġ makers", + "Ġm akers", + "Ġmake rs", + "Ġma kers", + "Ġmaker s", + "Ġmak ers", + "_ fun", + "_f un", + "_fu n", + "Ġlength s", + "Ġleng ths", + "Path Variable", + "[ item", + "[i tem", + "[it em", + "ภµ", + "D ead", + "De ad", + "FF FFFF", + "FFFF FF", + "FFF FFF", + "Ġ Urban", + "ĠUr ban", + "ĠUrb an", + "u ples", + "up les", + "uple s", + "i chen", + "ic hen", + "ich en", + "iche n", + "( nullptr", + "(null ptr", + ". spec", + ".s pec", + ".sp ec", + ", System", + ",S ystem", + "U RATION", + "UR ATION", + "URA TION", + "( job", + "(j ob", + "å¼ ı", + "Ġ tracker", + "Ġtr acker", + "Ġtrack er", + "Ġtra cker", + "Å Ļ", + "Ġ MR", + "ĠM R", + "Ġ SQLite", + "ĠSQL ite", + "ĠSQ Lite", + "Ġ dto", + "Ġd to", + "Ġdt o", + "Ġ ;;Ċ", + "Ġ; ;Ċ", + "Ġ;; Ċ", + "Ġ mint", + "Ġm int", + "Ġmin t", + "Ġmi nt", + "Ġ Introduction", + "ĠInt roduction", + "ĠIntro duction", + "c ao", + "ca o", + "Ġquest ioned", + "Ġquestion ed", + "Ġquesti oned", + "Ġf itted", + "Ġfit ted", + "Ġfitte d", + "re vision", + "rev ision", + "s q", + "Ġm ig", + "Ġmi g", + "_ units", + "_un its", + "_unit s", + "_ async", + "_a sync", + "_as ync", + "Ġf lick", + "Ġfl ick", + "} );ĊĊĊ", + "});Ċ ĊĊ", + "});ĊĊ Ċ", + "}) ;ĊĊĊ", + "}); ĊĊĊ", + "Ġn otre", + "Ġnot re", + "Ġno tre", + "} `,", + "}` ,", + "F ilters", + "Filter s", + "Fil ters", + "Ġm undo", + "Ġmu ndo", + "Ġmund o", + "Ġmun do", + "_ days", + "_d ays", + "_day s", + "_da ys", + "Ġ frm", + "Ġf rm", + "Ġfr m", + "u tc", + "ut c", + "Ġ vals", + "Ġv als", + "Ġval s", + "Ġva ls", + "e width", + "ew idth", + "Ġ Generator", + "ĠG enerator", + "ĠGener ator", + "ĠGen erator", + "Ġ Artist", + "ĠArt ist", + "Ġ IDs", + "ĠI Ds", + "ĠID s", + "Ġ Articles", + "ĠArt icles", + "ĠArticle s", + "re ater", + "reate r", + "reat er", + "rea ter", + "ĠComponent Fixture", + ". =", + "Ġ rou", + "Ġr ou", + "Ġro u", + "- no", + "-n o", + ".b ukkit", + "e gg", + "eg g", + "Ġ Diff", + "ĠD iff", + "ĠDi ff", + "a tics", + "at ics", + "atic s", + "ati cs", + "Ñĥ Ñĩ", + "âĢĶ ĊĊ", + "Ġ Charlotte", + "ĠChar lotte", + "ĠCharl otte", + "b ye", + "by e", + "Ġ });čĊčĊ", + "Ġ} );čĊčĊ", + "Ġ}) ;čĊčĊ", + "Ġ});čĊ čĊ", + "Ġ}); čĊčĊ", + "ĠV ik", + "ĠVi k", + "ĠB row", + "ĠBr ow", + "ĠBro w", + "Ġ lv", + "Ġl v", + "ĠG ib", + "ĠGi b", + "- wing", + "-w ing", + "-win g", + "GL IGENCE", + "( Il", + "(I l", + "ĠEngine er", + ". Wait", + ".W ait", + "Ġ Pictures", + "ĠP ictures", + "ĠPicture s", + "ĠPic tures", + "Ġr het", + "Ġrh et", + "Ġrhe t", + "Ġ thermal", + "Ġth ermal", + "Ġther mal", + "Ġtherm al", + "Ġp raise", + "Ġpr aise", + "Ġpra ise", + "< >();ĊĊ", + "<>();Ċ Ċ", + "<>( );ĊĊ", + "<> ();ĊĊ", + "Ġ Spider", + "ĠSp ider", + "ĠSpi der", + "P ause", + "Pa use", + "ĠB aker", + "ĠBa ker", + "ĠBak er", + "ĠBake r", + "Ġs lower", + "Ġsl ower", + "Ġslow er", + "Ġslo wer", + "Ġ }]Ċ", + "Ġ} ]Ċ", + "Ġ}] Ċ", + "_ enqueue", + "_en queue", + "Ġdis appeared", + "Ġdisappe ared", + "Ġdisappear ed", + "Ġ Ticket", + "ĠT icket", + "ĠTi cket", + "ĠTick et", + "ĠTic ket", + "IN UX", + "INU X", + "_ LOCAL", + "_LO CAL", + "_LOC AL", + "аÑģ Ñģ", + "@Inject able", + "comm unity", + "G estureRecognizer", + "Gesture Recognizer", + "åĽ ½", + "Ġs cales", + "Ġsc ales", + "Ġscale s", + "Ġsca les", + "Ġscal es", + "Ġ -(", + "Ġ- (", + "/ '+", + "/' +", + "Ġ Sit", + "ĠS it", + "ĠSi t", + "Ġexecutive s", + "Ġexecut ives", + "ar ding", + "ard ing", + "ardi ng", + "ardin g", + "Ġad vers", + "Ġadv ers", + "Ġback wards", + "Ġbackward s", + "ĉ context", + "ĉcon text", + "ĉcont ext", + "ĠH amp", + "ĠHam p", + "ĠHa mp", + "Ġ PF", + "ĠP F", + "Ġ Deck", + "ĠD eck", + "ĠDe ck", + "ĠDec k", + "Ġ Craig", + "ĠC raig", + "ĠCra ig", + "A merican", + "Americ an", + "America n", + "Ġ bell", + "Ġb ell", + "Ġbe ll", + "Ġbel l", + "Ġp rol", + "Ġpro l", + "Ġpr ol", + "u fen", + "uf en", + "ufe n", + "Ġ rng", + "Ġr ng", + "Ġrn g", + "ar shal", + "ars hal", + "Ġ Simply", + "ĠSim ply", + "ĠSimpl y", + "first name", + "sh ore", + "J uly", + "Jul y", + "Ju ly", + "Ġm ortality", + "Ġmort ality", + "Ġmortal ity", + "ĠâĨĴ ĊĊ", + "H elpers", + "Helper s", + "Help ers", + "Hel pers", + "Ġ benchmark", + "Ġb enchmark", + "Ġbench mark", + "e made", + "em ade", + "ema de", + "Ġorgan isations", + "Ġorganis ations", + "Ġorganisation s", + ".g son", + ".gs on", + "Ġ TextField", + "ĠT extField", + "ĠText Field", + "Ġcivil ians", + "Ġciv ilians", + "Ġcivilian s", + ". Arrays", + ".Array s", + ".Ar rays", + "ĠMiss issippi", + "Ġinter mediate", + "Ġintermedi ate", + "get User", + "_ cluster", + "_cl uster", + "Rel ative", + "fore ign", + ".querySelector All", + "Fore ignKey", + "Foreign Key", + "Ġreason ably", + "- --------Ċ", + "-- -------Ċ", + "---- -----Ċ", + "-------- -Ċ", + "--- ------Ċ", + "----- ----Ċ", + "------ ---Ċ", + "------- --Ċ", + "--------- Ċ", + "C ards", + "Card s", + "Car ds", + "ĠK am", + "ĠKa m", + "Ġ Thor", + "ĠT hor", + "ĠTh or", + "Ġ roller", + "Ġr oller", + "Ġro ller", + "Ġroll er", + "Ġrol ler", + "- element", + "-e lement", + "-el ement", + "Ġ Currency", + "ĠC urrency", + "d die", + "dd ie", + "AL LY", + "ALL Y", + "Ġ RA", + "ĠR A", + "Ġper met", + "Ġperm et", + "Ġperme t", + "a aaa", + "aa aa", + "aaa a", + "Ġhome work", + "Ġhom ework", + "ĠV it", + "ĠVi t", + "Ġm old", + "Ġmo ld", + "Ġmol d", + "ĠF er", + "ĠFe r", + "[ start", + "Ġstat istical", + "Ġstatist ical", + "Ġstatistic al", + "Ġsc ary", + "Ġsca ry", + "Ġscar y", + "_ HOME", + "_H OME", + ". Begin", + ".B egin", + ".Be gin", + "Con struct", + "o genic", + "og enic", + "ogen ic", + "oge nic", + "ĠDEAL INGS", + "Ġtamb ién", + "i xon", + "ix on", + "ixo n", + ". ind", + ".in d", + ".i nd", + "a cre", + "ac re", + "acr e", + "Ġ transforms", + "Ġtrans forms", + "Ġtransform s", + "ĠN ap", + "ĠNa p", + ". Block", + ".B lock", + ".Bl ock", + "uss ia", + "p iration", + "pi ration", + "pir ation", + "ul ent", + "ule nt", + "ulen t", + "Ġ ceil", + "Ġc eil", + "Ġce il", + "Cl ause", + "Cla use", + "n aire", + "na ire", + "T ES", + "TE S", + "Ġn eat", + "Ġne at", + "S TD", + "ST D", + "Ġ RegExp", + "ĠReg Exp", + "per form", + "perf orm", + ": )", + "Ġun ions", + "Ġunion s", + "Ġuni ons", + "Ġs ublic", + "Ġsub lic", + "Ġw inds", + "Ġwin ds", + "Ġwind s", + "Ġwi nds", + "lo ating", + "loat ing", + "g lich", + "gl ich", + "gli ch", + "Ġ pagination", + "Ġp agination", + "Ġpag ination", + "Ġpagina tion", + "S kill", + "Sk ill", + "App ly", + "Ap ply", + "Ġ Operator", + "ĠO perator", + "ĠOper ator", + "ĠOp erator", + "ĠOpera tor", + "ist ogram", + "isto gram", + "Ġ qualities", + "Ġqual ities", + "Ġquali ties", + "C ross", + "Cr oss", + "Cro ss", + "Ġd ecom", + "Ġde com", + "Ġdec om", + "Ġdeco m", + "] ,\"", + "], \"", + "Ġ Juan", + "ĠJ uan", + "ĠJu an", + ". modal", + ".m odal", + ".mod al", + ".mo dal", + ". Child", + ".Ch ild", + "Ġ Roger", + "ĠR oger", + "ĠRo ger", + "ĠRog er", + "STIT UTE", + ":CGRect Make", + "a lette", + "al ette", + "ale tte", + "alet te", + "Ġ sta", + "Ġs ta", + "Ġst a", + "a side", + "as ide", + "asi de", + "Ġ blur", + "Ġbl ur", + "Ġ Wa", + "ĠW a", + "if etime", + "ife time", + "r eed", + "re ed", + "ree d", + "control s", + "contr ols", + "contro ls", + "Ġ bins", + "Ġb ins", + "Ġbi ns", + "Ġbin s", + "Ġ пол", + "Ġп ол", + "Ġпо л", + "* /,Ċ", + "*/ ,Ċ", + "*/, Ċ", + "U IS", + "UI S", + "ĠR ou", + "ĠRo u", + "Ġ Demo", + "ĠD emo", + "ĠDe mo", + "ĠDem o", + "- awesome", + "Ġ Chain", + "ĠCh ain", + "ĠCha in", + "Ġh asta", + "Ġhas ta", + "Ġha sta", + "Ġhast a", + "ĠB art", + "ĠBar t", + "ĠBa rt", + ". KEY", + ".K EY", + "Ġ vendors", + "Ġv endors", + "Ġvend ors", + "Ġvendor s", + "no follow", + "nof ollow", + "Ġ Dest", + "ĠD est", + "ĠDe st", + "ĠDes t", + "_ builder", + "_b uilder", + "_build er", + "Ġarg ues", + "Ġargue s", + "_ answer", + "_an swer", + "_ans wer", + "g oto", + "go to", + "got o", + "Ġ RESULT", + "ĠRES ULT", + "Ġ MON", + "ĠM ON", + "ĠMO N", + "Ġp oder", + "Ġpo der", + "Ġpod er", + "Ġpode r", + "o ons", + "oo ns", + "oon s", + "_ CASE", + "_C ASE", + "_CA SE", + "Ġrep lic", + "Ġrepl ic", + "Ġfin ancing", + "Ġfinanc ing", + "Ġfinan cing", + "Ġ DATE", + "ĠD ATE", + "ĠDA TE", + "ĠDAT E", + "c ern", + "ce rn", + "cer n", + "_ track", + "_t rack", + "_tr ack", + "_tra ck", + "t ies", + "ti es", + "tie s", + "/ logo", + "/l ogo", + "/log o", + "/lo go", + "ĠNE GLIGENCE", + "get Type", + "> T", + "b et", + "be t", + "g irl", + "gi rl", + "ĠINCIDENT AL", + "- site", + "-s ite", + ". trigger", + ".tr igger", + "Ġ Lisa", + "ĠL isa", + "ĠLi sa", + "ĠLis a", + "_ inputs", + "_in puts", + "_input s", + "_inp uts", + "Ġrel atives", + "Ġrelative s", + "Ġrelativ es", + "Ġrelat ives", + "Logged In", + "Con figure", + "Config ure", + "Conf igure", + "I K", + ". accept", + ".ac cept", + ".acc ept", + "Re sume", + "Res ume", + "Ġ Draft", + "ĠD raft", + "ĠDr aft", + "ĠDra ft", + "Ġ *>(", + "Ġ* >(", + "Ġ*> (", + "Ġ WA", + "ĠW A", + "ed ian", + "edia n", + "edi an", + "er ness", + "ern ess", + "erne ss", + "ernes s", + "Ġ LayoutInflater", + "ĠLayout Inflater", + "* /čĊčĊ", + "*/ čĊčĊ", + "*/čĊ čĊ", + "o thy", + "ot hy", + "oth y", + "Ġoblig ation", + "Ġobl igation", + "Sub scribe", + "Ġ thumbnail", + "Ġth umbnail", + "ex ist", + "Ġins isted", + "Ġinsist ed", + "Ġ UICollectionView", + "ĠU ICollectionView", + "ĠUI CollectionView", + "Ġ Angular", + "ĠAng ular", + "Ġtable ts", + "Ġtab lets", + "Ġtablet s", + "Ġ Impact", + "ĠImp act", + "ãĢį ĊĊ", + "ãĢįĊ Ċ", + "a ho", + "ah o", + "Ġcharacter istic", + "g d", + "Ġ= ================================================", + "Ġ================= ================================", + "Ġ================================= ================", + "o urt", + "ou rt", + "our t", + "` .", + "App ro", + "Ap pro", + "Co ordinate", + "Coord inate", + "Re member", + "Rem ember", + "Ġ marine", + "Ġm arine", + "Ġmar ine", + "Ġma rine", + "Ġmari ne", + "Ġmarin e", + "] =='", + "]= ='", + "]== '", + "Ġ Administrator", + "ĠAdmin istrator", + "ĠAdministr ator", + ". getDefault", + ".get Default", + ".getD efault", + "Ġ forgot", + "Ġf orgot", + "Ġfor got", + "Ġforg ot", + "Ġ Structure", + "ĠStruct ure", + "V ue", + "Vu e", + "ar sing", + "ars ing", + "arsi ng", + "m oment", + "mo ment", + "mom ent", + "k w", + "_ cursor", + "_c ursor", + "Att ack", + "Ġath letic", + "Ġdiagn osed", + "Ġdiagnose d", + "Ġ ende", + "Ġe nde", + "Ġen de", + "Ġend e", + "åĪ łéĻ¤", + "H ouse", + "Ho use", + "Ġ PARAM", + "ĠP ARAM", + "ĠPA RAM", + "ĠPAR AM", + "ĠPARA M", + "Ġ wiki", + "Ġw iki", + "Ġwi ki", + "Ġwik i", + "Ġ Opp", + "ĠO pp", + "ĠOp p", + "Ġcons ervation", + "Ġconserv ation", + "Ġ snd", + "Ġs nd", + "Ġsn d", + "_ tem", + "_t em", + "_te m", + "sub str", + "subst r", + "subs tr", + "ĠC ape", + "ĠCap e", + "ĠCa pe", + ". sim", + ".s im", + ".si m", + "U TION", + "UT ION", + "a nan", + "an an", + "ana n", + "âĢĻ un", + "Ġ gy", + "Ġg y", + "- work", + "-w ork", + "Ġcomp elling", + "Ġcompel ling", + "= '#", + "=' #", + "ĉ sub", + "ĉs ub", + "Ġ directories", + "Ġdirect ories", + "Ġdirector ies", + "íĬ ¸", + "Ġ touches", + "Ġtouch es", + "Ġtou ches", + "out ines", + "outine s", + ". Collection", + ".C ollection", + ".Col lection", + "s chedule", + "sched ule", + ". lat", + ".l at", + "Ġ Doctrine", + "ĠDo ctrine", + "C AA", + "CA A", + "Ġ Refer", + "ĠRe fer", + "ĠRef er", + "Ġshift s", + "Ġ likelihood", + "Ġlik elihood", + "pr eter", + "pre ter", + "pret er", + "Ġ Female", + "ĠF emale", + "ĠFe male", + "ĠFem ale", + "Ġinter cept", + "Ġ lou", + "Ġl ou", + "Ġlo u", + "çĻ »", + "Ġ rug", + "Ġr ug", + "Ġru g", + "ĠC rown", + "ĠCr own", + "ĠCro wn", + "ĠCrow n", + "Ġ ****************************************************************************", + "Ġ************************************************************************ ****", + "Ġ************************************************************************** **", + "Ġ**************************************************************** ************", + "Ġ**** ************************************************************************", + "Ġ******************************************************** ********************", + "Ġ************************************************ ****************************", + "- product", + "-pro duct", + "-produ ct", + "Ġprompt ed", + "u ngle", + "un gle", + "ung le", + "d ocker", + "do cker", + "doc ker", + "dock er", + "Ġ Tu", + "ĠT u", + "Ġ Unique", + "ĠUn ique", + "ĠUni que", + "_ Error", + "_E rror", + "_Err or", + "u los", + "ul os", + "ulo s", + "Ġ âĦ", + "Ġâ Ħ", + "Ġ (`", + "Ġ( `", + "G etting", + "Get ting", + "_ scal", + "_s cal", + "_sc al", + "Ġ Enh", + "ĠE nh", + "ĠEn h", + "ü t", + "Ġsust ained", + "Ġsustain ed", + "Ġ patches", + "Ġp atches", + "Ġpat ches", + "Ġpatch es", + "Ġpros per", + "ĠG aza", + "ĠGa za", + "ĠGaz a", + "_ light", + "_l ight", + "_li ght", + "Ġin cons", + "Ġinc ons", + "Ġincon s", + "- -------Ċ", + "-- ------Ċ", + "---- ----Ċ", + "-------- Ċ", + "--- -----Ċ", + "----- ---Ċ", + "------ --Ċ", + "------- -Ċ", + "ĉ ĉĠĠĠĠĠĠ", + "ĉĉ ĠĠĠĠĠĠ", + "ĉĉĠĠĠ ĠĠĠ", + "ĉĉĠ ĠĠĠĠĠ", + "ĉĉĠĠ ĠĠĠĠ", + "ĉĉĠĠĠĠ ĠĠ", + "ĉĉĠĠĠĠĠ Ġ", + "S F", + "C N", + ": \";Ċ", + ":\" ;Ċ", + "ĠColl ins", + "( *)", + "(* )", + "Ġcomp ilation", + "Ġcompil ation", + "' ]čĊ", + "'] čĊ", + "Ġcon sequence", + "Ġconsequ ence", + "Ġconse quence", + ", ...", + ",. ..", + "Ġ dm", + "Ġd m", + "Ġ BLOCK", + "ĠB LOCK", + "ĠBL OCK", + "Cl uster", + "Ġ ski", + "Ġs ki", + "Ġsk i", + "( argc", + "(arg c", + "(ar gc", + "T uple", + "Tu ple", + "Ġj oins", + "Ġjoin s", + "Ġjo ins", + "ĠSher iff", + "W ar", + "Wa r", + "in di", + "ind i", + "Ġcom mented", + "Ġcomm ented", + "Ġcomment ed", + "H OST", + "HO ST", + "Ġ invitation", + "Ġinv itation", + "Ġinvit ation", + "apan ese", + "Ġper mits", + "Ġpermit s", + "Ġperm its", + "preced ented", + "_ zone", + "_z one", + "Ġ Amy", + "ĠA my", + "ĠAm y", + "_ RD", + "_R D", + "Min imum", + "Ġinv ocation", + "Ġinvo cation", + ". enable", + ".e nable", + ".en able", + "i chten", + "ich ten", + "icht en", + "ichte n", + "- owned", + "\" id", + "_PO INTER", + "_POINT ER", + "F ac", + "Fa c", + "Ġspec ifications", + "Ġspecific ations", + "Ġspecification s", + "Ġn omination", + "Ġno mination", + "Ġnom ination", + "Ġnomin ation", + "Ġ gp", + "Ġg p", + "< (", + "Ġ robots", + "Ġro bots", + "Ġrob ots", + "Ġrobot s", + "Ġ Jerry", + "ĠJ erry", + "ĠJer ry", + "Ġ holders", + "Ġh olders", + "Ġhold ers", + "Ġholder s", + "Ġhol ders", + "Ġ wand", + "Ġw and", + "Ġwa nd", + "Ġwan d", + "c ms", + "cm s", + "Ġ }))Ċ", + "Ġ} ))Ċ", + "Ġ}) )Ċ", + "Ġ})) Ċ", + ". Toast", + ".To ast", + "ĠI List", + "ĠIL ist", + "B ased", + "Base d", + "Bas ed", + "Ba sed", + "z oom", + "zo om", + "/ style", + "/st yle", + "ĠB eck", + "ĠBe ck", + "ĠBec k", + "M en", + "Me n", + "Ġcontrib uting", + "Ġ undo", + "Ġu ndo", + "Ġun do", + "Ġund o", + "Ġ OH", + "ĠO H", + "Ġadd Object", + "Ġe igen", + "Ġei gen", + "Ġeig en", + "sign up", + "éĶ Ļ", + "Ġd istant", + "Ġdis tant", + "Ġdist ant", + "Ġdi stant", + "PAR ATOR", + "Ġ Mari", + "ĠM ari", + "ĠMar i", + "ĠMa ri", + "Ġ má", + "Ġm á", + "E mp", + "Em p", + "ó s", + "Ġ ìĪĺ", + "Ġì Īĺ", + "ĠìĪ ĺ", + "e vt", + "ev t", + "+ j", + "p ark", + "par k", + "pa rk", + "Ġ Stay", + "ĠSt ay", + "ĠSta y", + "ĠD un", + "ĠDu n", + "Ġs oy", + "Ġso y", + "> %", + "az ines", + "azine s", + "azi nes", + "Ġti empo", + "( me", + "(m e", + "p resent", + "pre sent", + "pres ent", + ". This", + ".T his", + ".Th is", + "Ġed itors", + "Ġedit ors", + "Ġeditor s", + "Ġedi tors", + "F IELD", + ". Work", + ".W ork", + "ĠUn iverse", + "ĠUnivers e", + "ĠUni verse", + "ĠUniv erse", + "Ġdr unk", + "Ġdru nk", + ". timer", + ".t imer", + ".time r", + ".tim er", + "Ġal tered", + "Ġalt ered", + "Ġalter ed", + "Ġalte red", + "ĠN ar", + "ĠNa r", + "ëł ¥", + ". Active", + ".Act ive", + "id or", + "ido r", + "ç Ń", + ".delta Time", + "Ġawk ward", + "& quot", + "ĠS afari", + "ĠSaf ari", + "Ġt ricks", + "Ġtr icks", + "Ġtri cks", + "Ġtrick s", + "M ENTS", + "MENT S", + "div ision", + "di vision", + "Ġvar ying", + "Ġva rying", + "Ġvary ing", + "ĠHigh way", + "Ġphot ographer", + "Ġphotograph er", + "ĠSt ewart", + "ĠSte wart", + "Ġ lasting", + "Ġl asting", + "Ġlast ing", + "Ġlas ting", + ". Pre", + ".P re", + ".Pr e", + ".amazon aws", + "Ġ Luck", + "ĠL uck", + "ĠLuc k", + "ĠLu ck", + ". Description", + ".D escription", + ".De scription", + ".Des cription", + "Ġ Naz", + "ĠN az", + "ĠNa z", + "n eg", + "ne g", + "Ġc ó", + "<< \"\\", + "<<\" \\", + "Ġ Surv", + "ĠS urv", + "ĠSur v", + "ĠSu rv", + "Ġ Unc", + "ĠU nc", + "ĠUn c", + "Rec ipe", + ". BorderStyle", + ".Border Style", + "Ġmod ifications", + "Ġmodification s", + "Ġmodific ations", + "- at", + "-a t", + "AT FORM", + "h dr", + "hd r", + "a ko", + "ak o", + "Ġsub license", + "Ġsublic ense", + "Ġ Jump", + "ĠJ ump", + "ĠJu mp", + "Ġbe im", + "Ġbei m", + "ĠMan hattan", + ". bool", + ".b ool", + ".bo ol", + "_ hw", + "_h w", + "ÑĤ ÑĮ", + "B in", + "Bi n", + "Ġ gateway", + "Ġg ateway", + "Ġgate way", + "\" \":", + "\"\" :", + "Ġ UIS", + "ĠU IS", + "ĠUI S", + ": \"+", + ":\" +", + "- def", + "-d ef", + "-de f", + "Ġ Regular", + "ĠReg ular", + "/ testing", + "/t esting", + "/test ing", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "string stream", + "Ġdis par", + "Ġdi spar", + "Ġdisp ar", + "Ġm obil", + "Ġmo bil", + "Ġmob il", + "- read", + "-r ead", + "-re ad", + "Ġ Adapter", + "ĠAd apter", + "ĠAda pter", + "ĠAdapt er", + "ĠCh ampions", + "ĠChampion s", + "ĠChamp ions", + "Ġ scheduler", + "Ġs cheduler", + "Ġsched uler", + "Ġschedule r", + "Ġ kills", + "Ġk ills", + "Ġkill s", + "Ġkil ls", + "Ġ Multiple", + "ĠM ultiple", + "ĠMulti ple", + "ĠMult iple", + "ĠMultip le", + "i rror", + "ir ror", + "Ġg ods", + "Ġgo ds", + "Ġgod s", + "A DO", + "AD O", + "a kte", + "ak te", + "akt e", + "Ġ Usuario", + "ĠUs uario", + ".c ircular", + "Ġre cept", + "Ġrec ept", + "Ġrece pt", + "Ġrecep t", + "Ġ Expr", + "ĠEx pr", + "ĠExp r", + "Ġelder ly", + "Ġnice ly", + "Ġnic ely", + "Ġb este", + "Ġbe ste", + "Ġbest e", + "Ġbes te", + "W ant", + "Wa nt", + "Ġclass ical", + "Ġclassic al", + ". sprite", + ".s prite", + ".sp rite", + "ob jc", + "obj c", + "ĠM ason", + "ĠMa son", + "ĠMas on", + "Ġs istema", + "Ġsist ema", + "Ġsistem a", + ". Black", + ".B lack", + ".Bl ack", + "e so", + "es o", + "ĠZe it", + "Ġ divid", + "Ġd ivid", + "Ġdi vid", + "Ġdiv id", + "Ġen ters", + "Ġent ers", + "Ġenter s", + "_ subject", + "_sub ject", + "_su bject", + "Ġ Planet", + "ĠPlan et", + "ĠPlane t", + "ĠPla net", + ". warning", + ".w arning", + ".warn ing", + "Ġ Gram", + "ĠG ram", + "ĠGr am", + "ĠGra m", + "_ tokens", + "_t okens", + "_token s", + "_tok ens", + "Ġhouse holds", + "Ġhousehold s", + "_ customer", + "_c ustomer", + "_custom er", + "_cust omer", + "user Name", + "c ross", + "cr oss", + "cro ss", + "Ġp ione", + "Ġpi one", + "Ġass ists", + "Ġassist s", + "_ SM", + "_S M", + "i bo", + "ib o", + "Ġl oyal", + "Ġlo yal", + "Ġus eless", + "Ġuse less", + "# elif", + "ĠUlt imate", + "C ome", + "Com e", + "Co me", + "g el", + "ge l", + "Ġd ich", + "Ġdi ch", + "Ġdic h", + "x yz", + "xy z", + "i kel", + "ik el", + "ike l", + "o bra", + "ob ra", + "_ scan", + "_s can", + "_sc an", + "Ġ Interior", + "ĠIn terior", + "ĠInt erior", + "ĠInter ior", + "Ġ Nice", + "ĠN ice", + "ĠNic e", + "ĠNi ce", + "Ġp lac", + "Ġpl ac", + "Ġpla c", + "ĉ target", + "ĉt arget", + "Ġv iral", + "Ġvi ral", + "Ġvir al", + "as so", + "ass o", + "( )/", + "() /", + "u nde", + "un de", + "und e", + "Ġ Adobe", + "ĠAd obe", + "O s", + "vis ited", + "visit ed", + "Ġ OW", + "ĠO W", + "Ġ Feed", + "ĠF eed", + "ĠFe ed", + "ĠFee d", + "Ġ Sequence", + "ĠSe quence", + "ĠSequ ence", + "Ġman ages", + "Ġmanage s", + "Ġmana ges", + "in son", + "ins on", + "ĠLouis iana", + "{ })", + "{} )", + "ĠH ab", + "ĠHa b", + "Ġ LD", + "ĠL D", + "Ġb ip", + "Ġbi p", + "p rites", + "pr ites", + "prite s", + "prit es", + "pri tes", + "( elem", + "(e lem", + "(el em", + "(ele m", + ".h ibernate", + "é lé", + "él é", + "Ġoh ne", + "_ transaction", + "_trans action", + "Ġann unci", + "P ublished", + "Publish ed", + "Ġ Honda", + "ĠH onda", + "ĠHon da", + "ĠHo nda", + "ĠHond a", + "Ġ Tam", + "ĠT am", + "ĠTa m", + "Ġ Packet", + "ĠP acket", + "ĠPac ket", + "ĠPack et", + "ĠPa cket", + "_ selector", + "_se lector", + "_select or", + "_sel ector", + "Ġchalleng ed", + "Ġchallenge d", + "P rocessing", + "Process ing", + "- hover", + "-h over", + "Ġ trainer", + "Ġtr ainer", + "Ġtrain er", + "Ġtra iner", + "Ġtrai ner", + "_ cancel", + "_c ancel", + "_can cel", + "Ġ NSDictionary", + "ĠNS Dictionary", + "ab ric", + "abr ic", + "Ġ MLS", + "ĠM LS", + "ĠML S", + "_ sensor", + "_s ensor", + "Ġsh rink", + "Ġshr ink", + "Ġshri nk", + "Ġ FX", + "ĠF X", + "th reshold", + "thresh old", + "ĉ HX", + "ĉH X", + "- mark", + "-m ark", + "-mar k", + "` .`", + "`. `", + "S cheme", + "Sch eme", + "( full", + "(f ull", + "_ writer", + "_w riter", + "_write r", + "_wr iter", + "Ġ Sys", + "ĠS ys", + "ĠSy s", + "Ġf led", + "Ġfl ed", + "Ġfle d", + "ĠC in", + "ĠCi n", + "- widget", + "-w idget", + "Ġ Previous", + "ĠPre vious", + "ĠPrev ious", + "G ender", + "Ge nder", + "Gen der", + "_ question", + "_q uestion", + "_qu estion", + "_quest ion", + "F eed", + "Fe ed", + "Fee d", + "Ġsc rut", + "Ġscr ut", + "( prefix", + "(p refix", + "(pre fix", + "(pref ix", + "ãĢĤ ãĢĤ", + "Ġin fections", + "Ġinf ections", + "Ġinfection s", + "Ġinfect ions", + "P arts", + "Par ts", + "Part s", + "Pa rts", + "Ġh ierarchy", + "Ġhier archy", + "_ DELETE", + "_DE LETE", + "Ġ Patient", + "ĠP atient", + "ĠPat ient", + "_ pay", + "_p ay", + "_pa y", + "Ġprom oted", + "Ġpromote d", + "Ġpromot ed", + "Ġpromo ted", + "Ġ ìĭ", + "Ġì ĭ", + "Ġcivil ian", + "Ġciv ilian", + "Ġagricult ure", + "Ġagr iculture", + "Ġ Piece", + "ĠP iece", + "ĠPi ece", + "ĠPie ce", + "Ġ stance", + "Ġst ance", + "Ġsta nce", + "Ġstan ce", + "uts che", + "utsch e", + "As sign", + "Ass ign", + ". ACTION", + ".A CTION", + ".AC TION", + ".ACT ION", + "F ig", + "Fi g", + "_ radius", + "_r adius", + "_rad ius", + "_radi us", + "Ġ Sync", + "ĠS ync", + "ĠSy nc", + "ĠSyn c", + "d ucer", + "du cer", + "duc er", + "duce r", + "f ailure", + "fail ure", + "en sed", + "ens ed", + "ense d", + "p time", + "pt ime", + "B M", + "_ datetime", + "_d atetime", + "_date time", + "_dat etime", + "qu ivo", + "quiv o", + "qui vo", + "QUE UE", + "èĢ ħ", + "App ear", + "Ap pear", + "Appe ar", + "Ġsum mit", + "Ġsumm it", + ": void", + ":v oid", + "Ġ vine", + "Ġv ine", + "Ġvi ne", + "Ġvin e", + "è ®¤", + "è® ¤", + "on ne", + "onn e", + "_ TRANS", + "_TR ANS", + "_TRAN S", + "_TRA NS", + ". green", + ".g reen", + ".gr een", + "_ cc", + "_c c", + "Ġhung ry", + "Ġ \">", + "Ġ\" >", + "( ));čĊčĊ", + "() );čĊčĊ", + "()) ;čĊčĊ", + "());čĊ čĊ", + "()); čĊčĊ", + "Ex tract", + "Ext ract", + "Extra ct", + "i zens", + "iz ens", + "ize ns", + "izen s", + "Ġ solver", + "Ġs olver", + "Ġsol ver", + "Ġsolve r", + "N otify", + "Not ify", + "Ġ english", + "Ġeng lish", + "Ġ Shopping", + "ĠSh opping", + "ĠShop ping", + "ĠSho pping", + "inter faces", + "interface s", + "R EQ", + "RE Q", + "Ġil leg", + "Ġill eg", + "Ġ UIImageView", + "ĠUI ImageView", + "ĠUIImage View", + "Ġ disconnect", + "Ġdis connect", + "Ġ Until", + "ĠUn til", + "ĠUnt il", + "ĠCons ervative", + "ĠConserv ative", + "@ Column", + "Ġshift ed", + "Ġ :čĊ", + "Ġ: čĊ", + "Ġf ich", + "Ġfi ch", + "Ġfic h", + "Ġd la", + "Ġdl a", + "Ġs hoe", + "Ġsh oe", + "Ġsho e", + "\" ),čĊ", + "\") ,čĊ", + "\"), čĊ", + "ul arity", + "ular ity", + "_ RESP", + "_RE SP", + "_R ESP", + "_RES P", + "We ather", + "UI Application", + ". iterator", + ".it erator", + ".iter ator", + "Ġ aging", + "Ġa ging", + "Ġag ing", + ". Parent", + ".P arent", + ".Par ent", + "o wie", + "ow ie", + "owi e", + "( equal", + "(e qual", + "(eq ual", + "Ġ Conv", + "ĠCon v", + "ĠCo nv", + "/ default", + "/d efault", + "/de fault", + "Ġme asuring", + "Ġmeas uring", + ". prev", + ".p rev", + ".pre v", + ".pr ev", + ". IsValid", + ".Is Valid", + ". Fat", + ".F at", + "Ġs Äĥ", + "key words", + "keyword s", + "with out", + "Ġs overe", + "Ġso vere", + "Ġex changes", + "Ġexchange s", + "Ġm elt", + "Ġme lt", + "Ġmel t", + "Ġis lands", + "Ġisland s", + "Ġisl ands", + "ĠInt egr", + "Ġj umping", + "Ġjump ing", + "Ġ gle", + "Ġg le", + "Ġgl e", + "Ġjournal ism", + "Ġ dated", + "Ġd ated", + "Ġdate d", + "Ġda ted", + "Ġdat ed", + "Local ized", + "Ġ Refresh", + "ĠRe fresh", + "ĠRef resh", + "P article", + "Part icle", + "Ġ aa", + "Ġa a", + "ĠST RICT", + "ĠSTR ICT", + "Ġb od", + "Ġbo d", + ". Process", + ".P rocess", + ".Pro cess", + "_ AUTO", + "_A UTO", + "_AUT O", + "Ġ Published", + "ĠP ublished", + "ĠPublish ed", + "e very", + "ever y", + "ev ery", + "eve ry", + "Ġtechn ological", + "Ġtechno logical", + "Ġtechnolog ical", + "l sx", + "ls x", + "Ġir rit", + "Ġirr it", + "Add itional", + "Ġ delimiter", + "Ġdel imiter", + "Ġdelim iter", + "_ language", + "_l anguage", + "- area", + "-a rea", + "-ar ea", + "bo ys", + "boy s", + "Ġ Tube", + "ĠT ube", + "ĠTu be", + "ĠTub e", + "Ġ wat", + "Ġw at", + "Ġwa t", + "Ġmechan ics", + "Ġmechanic s", + "_ owner", + "_o wner", + "_own er", + "S pell", + "Sp ell", + "Spe ll", + "Ġ Stories", + "ĠSt ories", + "ĠSto ries", + ".Append Line", + "T ableView", + "Table View", + "h em", + "he m", + "s tick", + "st ick", + "sti ck", + "ol lower", + "oll ower", + "ollow er", + "ollo wer", + "I FF", + "IF F", + "Ġ UV", + "ĠU V", + "oll ision", + "S UB", + "SU B", + "Ġcom parable", + "Ġcompar able", + "Ġd onde", + "Ġdo nde", + "Ġdon de", + "s ales", + "sa les", + "sal es", + "sale s", + "ll vm", + "Ġ }],Ċ", + "Ġ} ],Ċ", + "Ġ}] ,Ċ", + "OTT OM", + "Ġ Purpose", + "ĠP urpose", + "ĠPur pose", + "L ab", + "La b", + "Ġinterview ed", + "o is", + "oi s", + "a sil", + "as il", + "asi l", + ". setId", + ".set Id", + "Ġ Instruction", + "ĠIn struction", + "- ->", + "-- >", + "Ġ Modified", + "ĠMod ified", + "ation ally", + "ational ly", + "Ġ Meeting", + "ĠMe eting", + "ĠMeet ing", + "è¯ ¯", + "# region", + "Ġ routing", + "Ġr outing", + "Ġro uting", + "Ġrout ing", + "Ġrou ting", + ". focus", + ".f ocus", + "ĠY outh", + "ĠYou th", + "ĠYo uth", + "< D", + "ĠN ag", + "ĠNa g", + "cont acts", + "contact s", + "Ġ forming", + "Ġfor ming", + "Ġform ing", + "Ġ mie", + "Ġm ie", + "Ġmi e", + "',[' ../", + "Ġ BP", + "ĠB P", + "Ġapp et", + "Ġap pet", + "Ġappe t", + "Ġ Teacher", + "ĠT eacher", + "ĠTe acher", + "ĠTea cher", + "ĠTeach er", + "Ġ TP", + "ĠT P", + "Ġann ually", + "Ġannual ly", + "outed EventArgs", + "Ġ Speaker", + "ĠS peaker", + "ĠSpe aker", + "ĠSpeak er", + "Ġ rename", + "Ġre name", + "Ġr ename", + "Ġren ame", + "C FG", + "CF G", + "(\" //", + "(\"/ /", + "æİ ¥", + "/ pages", + "/p ages", + "/page s", + "Ġpr és", + "Ġpré s", + "Ġ Spell", + "ĠS pell", + "ĠSp ell", + "ĠSpe ll", + ". Allow", + ".Al low", + ".All ow", + "ĠINT ERRU", + "ĠINTER RU", + "Ġ (#", + "Ġ( #", + "âĢĻ ĊĊ", + "âĢĻĊ Ċ", + "_ Generic", + "_G eneric", + ". imshow", + ".im show", + "_ tim", + "_t im", + "_ti m", + "- face", + "-f ace", + "( &(", + "(& (", + "ati num", + "atin um", + "Ġrevolution ary", + "Ġ Hours", + "ĠH ours", + "ĠHo urs", + "ĠHour s", + "ĠHou rs", + "r ain", + "ra in", + "rai n", + "Ġany time", + "Ġ abb", + "Ġa bb", + "Ġab b", + ". jsp", + ".j sp", + ".js p", + "S crollView", + "Scroll View", + "Ġ Truth", + "ĠTr uth", + "ĠTru th", + "Ġ anticipated", + "Ġanticip ated", + "Ġanticipate d", + "Ġantic ipated", + "Ġ accent", + "Ġacc ent", + "Ġac cent", + ". checked", + ".check ed", + "Ġspec ifies", + "Ġ caf", + "Ġc af", + "Ġca f", + "Ġcell padding", + "Ġ cooked", + "Ġco oked", + "Ġcook ed", + "Ġ Hugh", + "ĠH ugh", + "ĠHu gh", + "pe ek", + "pee k", + "_ RATE", + "_R ATE", + "_RA TE", + "Ġd orm", + "Ġdo rm", + "Ġdor m", + "/ čĊ", + "IV ITY", + ". Controller", + ".Cont roller", + ".Control ler", + "( part", + "(p art", + "(par t", + "(pa rt", + ". constraint", + ".con straint", + "Ġin vasion", + "Ġinv asion", + "M OVE", + "MO VE", + "MOV E", + "Ġgl uc", + "Ġglu c", + "l ename", + "le name", + "len ame", + "lena me", + "Ġ amen", + "Ġa men", + "Ġam en", + "eng lish", + "engl ish", + "ĠSw itzerland", + "\" ;ĊĊĊ", + "\";Ċ ĊĊ", + "\";ĊĊ Ċ", + "\"; ĊĊĊ", + "p est", + "pe st", + "pes t", + ". collect", + ".c ollect", + ".col lect", + ".coll ect", + "N ib", + "Ni b", + "Ġ Dict", + "ĠD ict", + "ĠDi ct", + "Ġ Emb", + "ĠE mb", + "ĠEm b", + "( subject", + "(sub ject", + "Ġout rage", + "Ġoutr age", + "Ġoutra ge", + "Ġdec iding", + "Ġdecid ing", + "Ġsent enced", + "Ġsentence d", + "F echa", + "Fe cha", + "\" A", + "Ġ quer", + "Ġqu er", + "Ġque r", + "Ġq uer", + "Ġfont Family", + "Ġqu adr", + "Ġquad r", + "Ġqua dr", + "- Y", + "_ CACHE", + "_C ACHE", + "_CA CHE", + "Ġan alyzed", + "Ġanaly zed", + "Ġanalyze d", + "Ġg aining", + "Ġgain ing", + "Ġga ining", + "Ġ Against", + "ĠAgain st", + "ĠS oul", + "ĠSo ul", + "ĠSou l", + "t au", + "ta u", + "Ġlight weight", + "Ġ TF", + "ĠT F", + "Ġ Effects", + "ĠE ffects", + "ĠEffect s", + "ĠEff ects", + ". Types", + ".T ypes", + ".Type s", + ". addClass", + ".add Class", + "Ġv egan", + "Ġve gan", + "Ġveg an", + "é ģ", + ". '\"", + ".' \"", + "Ġ Explorer", + "ĠEx plorer", + "ĠExpl orer", + "ĠExplore r", + ". detect", + ".d etect", + ".det ect", + ". shift", + ".s hift", + ".sh ift", + "Ġoblig ations", + "Ġobligation s", + "last Name", + "Ġassoci ations", + "Ġassociation s", + "Ġassoc iations", + "ĠTime Span", + "un ter", + "unt er", + "unte r", + "Ġ Fresh", + "ĠF resh", + "ĠFr esh", + "ĠFre sh", + "ĠFres h", + "Com patible", + "Compat ible", + "P ub", + "Pu b", + "id ges", + "idge s", + ". option", + ".op tion", + ".o ption", + ".opt ion", + "v ari", + "var i", + "va ri", + ". hashCode", + ".hash Code", + "Ġ geb", + "Ġg eb", + "Ġge b", + ". section", + ".s ection", + ".se ction", + ".sec tion", + "- not", + "-n ot", + "-no t", + "Ġ Submit", + "ĠSub mit", + "T N", + "reg istry", + "registr y", + "regist ry", + "_ media", + "_m edia", + "_me dia", + "_med ia", + "Ġn aj", + "Ġna j", + "f ft", + "ff t", + "Ġ mate", + "Ġm ate", + "Ġmat e", + "Ġma te", + "- third", + "-th ird", + "Ġp ockets", + "Ġpocket s", + "e sta", + "es ta", + "est a", + "Ġb ent", + "Ġbe nt", + "Ġben t", + "ĠN ord", + "ĠNo rd", + "ĠNor d", + "Ġretail ers", + "Ġretailer s", + "ĠM orris", + "ĠMor ris", + "ĠMorr is", + ". \"\"\"ĊĊ", + ".\"\" \"ĊĊ", + ".\"\"\"Ċ Ċ", + ".\"\"\" ĊĊ", + "W rong", + "Wr ong", + "Ġ ÅĽ", + "ĠÅ Ľ", + "R ay", + "Ra y", + ". ec", + ".e c", + "Ġ Bind", + "ĠB ind", + "ĠBi nd", + "ĠBin d", + "_ HAND", + "_H AND", + "( non", + "(n on", + "(no n", + "is Valid", + "Ġsimilar ly", + "_ LIMIT", + "_L IMIT", + "Ġd ynamics", + "Ġdynamic s", + "Ġdynam ics", + "Ġdyn amics", + "Ġdist inction", + "Ġdistinct ion", + "ãģ Ĩ", + "< N", + "Ġ orth", + "Ġor th", + "Ġort h", + "Ġ Toyota", + "ĠToy ota", + "Ġ Kate", + "ĠK ate", + "ĠKat e", + "ĠKa te", + "Ġ LS", + "ĠL S", + "o rie", + "or ie", + "ori e", + "ĠSpring s", + "ĠSpr ings", + "Ġf reak", + "Ġfre ak", + "last name", + "_ MULT", + "_M ULT", + "_MUL T", + "- step", + "-s tep", + "-st ep", + "-ste p", + "\" (", + "A DDR", + "AD DR", + "ADD R", + "Ġentert aining", + "Ġentertain ing", + "_ CONF", + "_CON F", + "_CO NF", + "Ġ decoded", + "Ġde coded", + "Ġdec oded", + "Ġdecode d", + "Ġdeco ded", + "Ġst reak", + "Ġstre ak", + "Ġwait ed", + "Ġwa ited", + "Ġnot ified", + "ro duced", + "rodu ced", + "rod uced", + "roduce d", + "vis ual", + ". LayoutParams", + ".Layout Params", + "æ °", + "e sian", + "es ian", + "esi an", + "f its", + "fit s", + "fi ts", + "s pring", + "sp ring", + "spr ing", + "ĠBer nie", + "ĠBern ie", + "User Defaults", + "Ġpe dest", + "Ġped est", + "Ap pearance", + "Appear ance", + "Ġ Wiki", + "ĠW iki", + "ĠWi ki", + "ĠWik i", + "ĠNOT ICE", + "Ġ ssh", + "Ġs sh", + "Ġss h", + "Ġdur ante", + "Ġ Zip", + "ĠZ ip", + "ĠZi p", + "ı r", + "ĠN ATO", + "ĠNAT O", + "ĠNA TO", + "Ġtw elve", + "Ġr oyal", + "Ġro yal", + "Ġroy al", + "ï ¸", + "Ġ merchant", + "Ġm erchant", + "Ġmer chant", + "Ġmerch ant", + "ĠF urniture", + "ĠFurn iture", + "' ]),Ċ", + "'] ),Ċ", + "']) ,Ċ", + "']), Ċ", + ", X", + "Ġ folders", + "Ġf olders", + "Ġfolder s", + "Ġfol ders", + "Ġfold ers", + "Ġ Gate", + "ĠG ate", + "ĠGa te", + "ĠGat e", + "ĉ func", + "ĉf unc", + "ĉfun c", + "p ick", + "pi ck", + "pic k", + "_ usuario", + "_us uario", + "ĠV erm", + "ĠVer m", + "ĠVe rm", + "m ention", + "ment ion", + "men tion", + "ur pose", + "Ġ alerts", + "Ġal erts", + "Ġalert s", + "Ġale rts", + "x ious", + "xi ous", + "_ sig", + "_s ig", + "_si g", + "Ġ Fu", + "ĠF u", + "Ġ (:", + "Ġ( :", + "Ġd umb", + "Ġdu mb", + "Ġdum b", + "åħ ³", + "Ġaccur ately", + "Ġaccurate ly", + "éĩ į", + "R B", + "- screen", + "-s creen", + "-sc reen", + "Ġ VER", + "ĠV ER", + "ĠVE R", + "j our", + "jo ur", + "Ġrom ance", + "Ġroman ce", + "Ġroma nce", + "uc ceed", + "ucc eed", + ". choice", + ".ch oice", + "Ġad ip", + "_ dims", + "_d ims", + "_dim s", + "_di ms", + "Serial izable", + "ãĤ ĭ", + ". job", + ".j ob", + "Ġ prog", + "Ġp rog", + "Ġpro g", + "Ġpr og", + "u char", + "uch ar", + "uc har", + "ucha r", + "Ġg ently", + "Ġgent ly", + "Ġ RSS", + "ĠR SS", + "ĠRS S", + "ict ured", + "icture d", + "_ENABLE D", + "ĉ label", + "ĉl abel", + "aw ks", + "awk s", + "Ġ Ensure", + "ĠEn sure", + "ĠEns ure", + "re member", + "rem ember", + "ìł ķ", + "Ġtrans mit", + "{ {$", + "{{ $", + ". Transaction", + ".Trans action", + "ur se", + "urs e", + "_ relative", + "_rel ative", + "Ġs ized", + "Ġsize d", + "Ġsi zed", + "Ġsiz ed", + "Ġ XX", + "ĠX X", + "ĠPr incess", + "ĠPrince ss", + "Ġ Larry", + "ĠL arry", + "ĠLar ry", + "Ġp ró", + "Ġpr ó", + "Ġ ÑģÑĤÑĢ", + "ĠÑģ ÑĤÑĢ", + "ĠÑģÑĤ ÑĢ", + "Ġs isters", + "Ġsi sters", + "Ġsister s", + "Ġsist ers", + "Ġsis ters", + "e struct", + "estr uct", + "Ġ checkpoint", + "Ġcheck point", + ": length", + ":len gth", + ":l ength", + "Ġ Carlos", + "ĠCar los", + "ĠCarl os", + "ĠCarlo s", + "/ icon", + "/i con", + "/ic on", + "_ TARGET", + "_T ARGET", + "T okens", + "Token s", + "Tok ens", + "Ġpat ience", + "Ġ Selected", + "ĠSe lected", + "ĠSelect ed", + "ĠSel ected", + "q ty", + "qt y", + ".show Message", + "Ġwild life", + "Ġ Props", + "ĠP rops", + "ĠPro ps", + "ĠPr ops", + "ĠProp s", + "b m", + "- arrow", + "-ar row", + "Ġ parcel", + "Ġpar cel", + "Ġparc el", + "Ġparce l", + "f irebase", + "fire base", + "ĠBen jamin", + "c esso", + "cess o", + "ces so", + ". tim", + ".t im", + "ĠG arc", + "ĠGar c", + "ĠGa rc", + ". any", + ".a ny", + ".an y", + "ĠHOW EVER", + "ĠK o", + "Ġgrab bed", + "_ frames", + "_f rames", + "_frame s", + "_fr ames", + "Ġobject AtIndex", + "ĠADV ISED", + "Ġsu bur", + "Ġsub ur", + "ĉ GL", + "ĉG L", + "Ġ })}Ċ", + "Ġ} )}Ċ", + "Ġ}) }Ċ", + "- length", + "-l ength", + "-le ngth", + "-len gth", + "ìĭ ľ", + "ĠPot ter", + "_ buff", + "_b uff", + "_buf f", + ". gui", + ".g ui", + "Ġ Encoding", + "ĠEn coding", + "ĠEnc oding", + "E lect", + "El ect", + "Ele ct", + "- message", + "-m essage", + "Ġ �", + "Ġ ÈĻi", + "Ġ ArgumentNullException", + "ĠArgument NullException", + "а ÑĨи", + "Ġmin imize", + "Ġminim ize", + "Ġrespond ing", + "$_ ['", + "Ġ Individual", + "ĠInd ividual", + "á c", + "Ġ INTER", + "ĠIN TER", + "ĠINT ER", + "Ġmast urb", + "Ġmastur b", + "Ġ Bin", + "ĠB in", + "ĠBi n", + "( '$", + "(' $", + "ëĵ ľ", + "Ġopen ly", + "Ġ ><", + "Ġ> <", + "Ġ unto", + "Ġun to", + "Ġunt o", + "olog ically", + "ological ly", + "ologic ally", + "Ġ Mul", + "ĠM ul", + "ĠMu l", + "VID IA", + "Ġs lim", + "Ġsl im", + "ĠCommission er", + "( on", + "(o n", + "Ġunder neath", + "/ db", + "/d b", + "v ote", + "vo te", + "( Message", + "(M essage", + "ĠP ope", + "ĠPop e", + "ĠPo pe", + "D efined", + "Def ined", + "Define d", + "Ġ swift", + "Ġsw ift", + "u rf", + "ur f", + "Ġadapt ed", + "Ġadap ted", + "S EL", + "SE L", + "Ġre venues", + "Ġrevenue s", + "Ġreven ues", + "Ġdi vine", + "Ġdiv ine", + "= y", + "G radient", + "Grad ient", + "_ act", + "_a ct", + "_ac t", + "Ġ/* !<", + "Ġ/*! <", + "Ġ polygon", + "Ġp olygon", + "Ġpoly gon", + "Ġ FDA", + "ĠF DA", + "ĠFD A", + "ĠC arr", + "ĠCar r", + "ĠCa rr", + "a tables", + "at ables", + "ata bles", + "atab les", + "atable s", + "( stdout", + "(std out", + "Ġref riger", + "Ġrefr iger", + "Ġco ordin", + "Ġcoord in", + "avor ites", + "avorite s", + "avo rites", + "ÑĪ и", + "Ġcompass ion", + "ĠPOSS IBILITY", + "- secondary", + "-second ary", + "ur acy", + "ura cy", + "Ġcom promise", + "Ġcomp romise", + "Ġcomprom ise", + "_ AV", + "_A V", + "_ os", + "_o s", + "Ġbe side", + "Ġbes ide", + "ĥ Ŀ", + "Ġ ln", + "Ġl n", + ". plugins", + ".pl ugins", + ".plugin s", + "Cap acity", + "a lah", + "al ah", + "ala h", + ". bin", + ".b in", + ".bi n", + "Ġ CRC", + "ĠC RC", + "ĠCR C", + "_ balance", + "_b alance", + "_bal ance", + "Ġflex Direction", + "Ġam bit", + "Ġamb it", + "Ġ nickname", + "Ġn ickname", + "Ġnick name", + "ĠFor ces", + "ĠForce s", + "C LE", + "CL E", + "Ġ Shell", + "ĠS hell", + "ĠSh ell", + "ĠShe ll", + "ĠShel l", + "Ġs ail", + "Ġsa il", + "Ġsai l", + "Ġ Writer", + "ĠW riter", + "ĠWrite r", + "ĠWr iter", + "Ġ Alice", + "ĠA lice", + "ĠAl ice", + "ĠAli ce", + "ĠAlic e", + "d w", + "ĠInd ians", + "ĠIndia ns", + "ĠIndian s", + "ĠIndi ans", + "ĠMar shall", + "ĠMars hall", + "ĠMarshal l", + "ĠMarsh all", + "_ SRC", + "_S RC", + "_SR C", + "Ġ normalized", + "Ġnormal ized", + "Ġnormalize d", + "ĠJ ag", + "ĠJa g", + "ãĤ Ĵ", + "ze it", + "r pc", + "rp c", + "ÃŃ c", + ". inline", + ".in line", + "Ġtr avers", + "Ġtra vers", + "Ġtrav ers", + "_ numeric", + "_n umeric", + "_num eric", + "_numer ic", + "Ġ utilities", + "Ġutil ities", + "Ġut ilities", + "Ġe vac", + "Ġev ac", + "IN PUT", + "ĉ register", + "ĉreg ister", + "M X", + "ĠCamp bell", + "Ġ datasets", + "Ġd atasets", + "Ġdata sets", + "Ġdataset s", + "Ġdatas ets", + "Ġdem anded", + "Ġdemand ed", + "Ġdemande d", + "Ġinitial State", + "g an", + "ga n", + "Ġ ei", + "Ġe i", + "Un expected", + "- web", + "-w eb", + "-we b", + "t rait", + "tr ait", + "tra it", + ", Y", + "Ġ Todd", + "ĠT odd", + "ĠTo dd", + "ĠTod d", + "Ġs keleton", + "Ġske leton", + "Ġ optimize", + "Ġopt imize", + "Ġoptim ize", + "ç ¬¬", + "ç¬ ¬", + "Ġ Upon", + "ĠU pon", + "ĠUp on", + "ĠSt Object", + "Ġap lic", + "Ġapl ic", + ". ' P", + "v ron", + "vr on", + "vro n", + ". UN", + ".U N", + "Ġp ainter", + "Ġpaint er", + "Ġpain ter", + "Ġpa inter", + "izar re", + "Ġ lav", + "Ġl av", + "Ġla v", + "Ġ pom", + "Ġp om", + "Ġpo m", + "p reg", + "pr eg", + "pre g", + "= function", + "=f unction", + "( serial", + "(s erial", + "(se rial", + "if ica", + "ific a", + "ifi ca", + "u ming", + "um ing", + "umin g", + "umi ng", + "åľ °", + "ãģ Ĥ", + "- op", + "-o p", + "U CH", + "UC H", + "ĠH end", + "ĠHe nd", + "ĠHen d", + ". propTypes", + ".prop Types", + "Ġ yo", + "Ġy o", + "Ġr outines", + "Ġrout ines", + "Ġroutine s", + "Ġc aring", + "Ġcar ing", + "Ġca ring", + "S em", + "Se m", + "Ġres erves", + "Ġreserve s", + "Ġreserv es", + "Ġprior ities", + "Ġpriorit ies", + "red its", + "redit s", + "redi ts", + "I STR", + "IS TR", + "IST R", + "Content Type", + "ĠS chw", + "ĠSc hw", + "ĠSch w", + "/ media", + "/m edia", + "/me dia", + "Ġ estr", + "Ġe str", + "Ġes tr", + "Ġest r", + "Ġclim bing", + "Ġclimb ing", + "- week", + "-we ek", + "cher che", + "s ensor", + "To Array", + "ĠMont real", + "Ġclo uds", + "Ġcloud s", + "ĠInject able", + "ĠR ice", + "ĠRic e", + "ĠRi ce", + "Ġpropag anda", + "_ provider", + "_pro vider", + "_prov ider", + "Ġin door", + "Ġind oor", + "Ġindo or", + "Ġin aug", + "Ġdipl om", + "Ġdip lom", + "Ġm essaging", + "Ġmess aging", + "_ mut", + "_m ut", + "_mu t", + "å ¦Ĥ", + "å¦ Ĥ", + "Ġ kw", + "Ġk w", + "O NS", + "ON S", + "a rians", + "ar ians", + "ari ans", + "arian s", + "aria ns", + "R PC", + "RP C", + ") ]čĊ", + ")] čĊ", + "- ray", + "-r ay", + "-ra y", + "ĠS or", + "ĠSo r", + "m all", + "ma ll", + "mal l", + "Ġmarket place", + "Ġ vtk", + "Ġv tk", + "Ġvt k", + "M a", + "o gan", + "og an", + "oga n", + "i gi", + "ig i", + "Ġs ponsored", + "Ġspons ored", + "Ġsponsor ed", + "Ġ Dani", + "ĠD ani", + "ĠDan i", + "ĠDa ni", + ".S EVER", + ".SE VER", + "> '.$", + ">' .$", + ">'. $", + "m ultipart", + "multi part", + "multip art", + "ĠW ol", + "ĠWo l", + "Ġ tableName", + "Ġtable Name", + "Ġ Username", + "ĠUser name", + "Back groundColor", + "Background Color", + "Ġf right", + "Ġfr ight", + "Ġfri ght", + "_ EMAIL", + "_E MAIL", + "_EM AIL", + "Sept ember", + "Sep tember", + "_ vals", + "_v als", + "_val s", + "_va ls", + "op ia", + "opi a", + "Ġsp otted", + "Ġspot ted", + "- Ch", + "-C h", + "Ġ dataSource", + "Ġdata Source", + "/ \"Ċ", + "/\" Ċ", + "е кÑĤ", + "ек ÑĤ", + "Ġ RequestMethod", + "ĠRequest Method", + "Ġ Replace", + "ĠRe place", + "ĠRep lace", + "- do", + "-d o", + "a hn", + "ah n", + "ĠPh D", + "] .ĊĊ", + "]. ĊĊ", + "].Ċ Ċ", + "N ON", + "NO N", + "g ement", + "ge ment", + "gem ent", + "geme nt", + "Ġ Thr", + "ĠT hr", + "ĠTh r", + "Ġquiet ly", + "Ġtor ture", + "Ġtort ure", + "Ġte as", + "Ġtea s", + "Ġ CY", + "ĠC Y", + "Ġ atr", + "Ġa tr", + "Ġat r", + "de velopment", + "dev elopment", + "develop ment", + "- detail", + "-d etail", + "-de tail", + "-det ail", + "Ġl ighter", + "Ġlight er", + "Ġarg uing", + "Ġdes erves", + "Ġdeserve s", + "Ġdeser ves", + "Ġcur riculum", + "_ CONTEXT", + "_CON TEXT", + "_CONT EXT", + "ÅĤ y", + "H ITE", + "HI TE", + "ĉ ID", + "ĉI D", + "/ uploads", + "/upload s", + "/up loads", + "Ġt its", + "Ġtit s", + "Ġti ts", + "r eo", + "re o", + "_ drop", + "_d rop", + "_dr op", + ". UTF", + ".U TF", + "Ġ pickup", + "Ġpick up", + "Ġpic kup", + "Ġgro cery", + "Ġ Pure", + "ĠP ure", + "ĠPur e", + "ĠPu re", + "Ġeas iest", + "P hil", + "Ph il", + "Phi l", + ". feature", + ".f eature", + ".fe ature", + "( \"*", + "(\" *", + "Ġinvest or", + "Ġinve stor", + "t ok", + "to k", + "Ġ jar", + "Ġj ar", + "Ġja r", + "L os", + "Lo s", + "âĢĶâĢĶâĢĶâĢĶ âĢĶâĢĶâĢĶâĢĶ", + ". queue", + ".q ueue", + "- speed", + "-s peed", + "-sp eed", + "-spe ed", + "M al", + "Ma l", + "um blr", + "umb lr", + "Ġ CONST", + "ĠCON ST", + "ĠCO NST", + "ĠCONS T", + "Ġ HRESULT", + "ĠH RESULT", + "ĠD ance", + "ĠDan ce", + "ĠDa nce", + "( filePath", + "(file Path", + "Ġattribute d", + "Ġattrib uted", + "ॠį", + "ĠB und", + "ĠBu nd", + "ĠBun d", + "c oins", + "co ins", + "coin s", + "Ġs ão", + "Ġ pir", + "Ġp ir", + "Ġpi r", + "person al", + "pers onal", + "persona l", + "Ġpr elim", + "Ġpre lim", + "Ġpro pose", + "Ġprop ose", + "Ġpropos e", + "Ġ TL", + "ĠT L", + "] ])", + "]] )", + "Ġ Subscription", + "ĠSub scription", + "ĠK re", + "ĠKr e", + ", len", + ",l en", + ". FirstOrDefault", + ".First OrDefault", + ") --", + ")- -", + "_ products", + "_product s", + ".Get Bytes", + "S hip", + "Sh ip", + "Ġ encrypt", + "Ġen crypt", + "Ġenc rypt", + "Ġ SG", + "ĠS G", + "ĠM yst", + "ĠMy st", + "h ir", + "hi r", + "Ġ iterate", + "Ġit erate", + "Ġiter ate", + "Ġint end", + "Ġinte nd", + ".mock ito", + "Ġch apters", + "Ġchapter s", + "Ġchap ters", + "( angle", + "(a ngle", + "(an gle", + "(ang le", + "ĠV lad", + "è® ¾", + "' .ĊĊ", + "'. ĊĊ", + "'.Ċ Ċ", + "Response Body", + "ĠA bd", + "ĠAb d", + "de al", + "dea l", + "Ġbar riers", + "Ġbarrier s", + "Ġbarr iers", + "- outline", + "-out line", + "b ill", + "bi ll", + "bil l", + "ĠF alls", + "ĠFall s", + "ĠFal ls", + "_ second", + "_se cond", + "_sec ond", + ". include", + ".in clude", + ".inc lude", + ". ceil", + ".c eil", + ".ce il", + "Ġ occupation", + "Ġoccup ation", + "ph ony", + "phon y", + ".move To", + "Ġ Jennifer", + "ĠJ ennifer", + "ĠJenn ifer", + "A STER", + "AS TER", + "AST ER", + "ASTE R", + "; \"><", + ";\" ><", + ";\"> <", + "Ġ Enabled", + "ĠEn abled", + "ĠEnable d", + "Ġ terminate", + "Ġter minate", + "Ġterm inate", + "Ġtermin ate", + "Ġ Io", + "ĠI o", + "l ations", + "lation s", + "lat ions", + "ĠTHE ORY", + "Ġear liest", + "Ġ rack", + "Ġr ack", + "Ġrac k", + "Ġra ck", + "Ġ Scar", + "ĠS car", + "ĠSc ar", + "sh ake", + "sha ke", + "c hip", + "ch ip", + "chi p", + "Ġ uv", + "Ġu v", + "Ġall iance", + "п иÑģ", + "пи Ñģ", + "ĠGOOD S", + "z ione", + "zi one", + "zion e", + "Ġ VI", + "ĠV I", + "Ġ {-", + "Ġ{ -", + "Ġfil tering", + "Ġfilter ing", + "Ġfilt ering", + "Ġmis con", + "Ġmisc on", + ".Dock Style", + "Ġb ush", + "Ġbu sh", + "Ġbus h", + "Ġj unk", + "Ġju nk", + "Ġjun k", + "æ Į", + "Ġ QUE", + "ĠQ UE", + "ĠQU E", + "Ġ hooks", + "Ġh ooks", + "Ġhook s", + "Ġho oks", + "Ġf irmware", + "Ġfirm ware", + "Ġ middleware", + "Ġm iddleware", + "Ġmiddle ware", + "d ic", + "di c", + "ĠOak land", + "Ġarr ives", + "Ġarrive s", + "Ġarriv es", + "P ayload", + "Pay load", + "p ixel", + "pix el", + "] |", + "Ġ startDate", + "Ġstart Date", + ". PRO", + ".P RO", + ".PR O", + "_ audio", + "_a udio", + "Ġmid field", + "igid body", + "ĠSw iss", + "Ġ Clip", + "ĠC lip", + "ĠCl ip", + "ĠCli p", + "Ġ Dump", + "ĠD ump", + "ĠDu mp", + "ĠDum p", + "Ġ TextBox", + "ĠText Box", + "Ġ geh", + "Ġg eh", + "Ġge h", + "y ield", + "yi eld", + "o ds", + "od s", + "Ġrefer endum", + "Back end", + "Ġ Cream", + "ĠC ream", + "ĠCr eam", + "ĠCre am", + "Ġd ominated", + "Ġdo minated", + "Ġdom inated", + "Ġdomin ated", + "Ġdominate d", + "Ġdomina ted", + "Ġ Archive", + "ĠA rchive", + "ĠArch ive", + "ĠArc hive", + "Ġr iders", + "Ġrid ers", + "Ġride rs", + "Ġri ders", + "Ġrider s", + ".prepare Statement", + "Ġqu ando", + "Ġquand o", + "Ġqua ndo", + "Ġquan do", + "Ġ chef", + "Ġch ef", + "Ġche f", + "w iki", + "wi ki", + "wik i", + "i nel", + "in el", + "ine l", + "am pling", + "amp ling", + "(\" \\\\", + "(\"\\ \\", + "Ġs ag", + "Ġsa g", + "_ proxy", + "_pro xy", + "_pr oxy", + "ãģ ķ", + "p do", + "pd o", + ". getElementsByTagName", + ".get ElementsByTagName", + ".getElementsBy TagName", + "Ġdemon stration", + "Ġdemonstr ation", + "Ġ NPC", + "ĠN PC", + "ĠNP C", + "Ġ archivo", + "Ġarch ivo", + "en dance", + "end ance", + "enda nce", + "Ġefficient ly", + "( actual", + "(ac tual", + "(act ual", + ". tableView", + ".t ableView", + ".table View", + "Ġm ush", + "Ġmus h", + "Ġmu sh", + "Ġb ears", + "Ġbe ars", + "Ġbear s", + "_ threads", + "_th reads", + "_thread s", + "j as", + "ja s", + "ah un", + "ahu n", + "Ġne ural", + "Ġneu ral", + "Ġneur al", + "Ġdesign ing", + "ĠG DP", + "ĠGD P", + "Ġlif ted", + "Ġlift ed", + "çĽ ®", + "Ġ Joint", + "ĠJ oint", + "ĠJo int", + "ĠJoin t", + "ĠJoi nt", + "Ġ Include", + "ĠIn clude", + "ĠInc lude", + "ĠG iants", + "ĠGi ants", + "ĠGiant s", + "ĠGian ts", + "ĠGia nts", + "Ġwithdraw al", + "Ġ Rent", + "ĠR ent", + "ĠRe nt", + "ĠRen t", + "n ative", + "nat ive", + "Ġ Seek", + "ĠSe ek", + "ĠSee k", + "g ression", + "gr ession", + "gress ion", + "_ CPU", + "_C PU", + "_CP U", + "\\ S", + "Ġ Shield", + "ĠSh ield", + "ĠShi eld", + "Ġs olic", + "Ġso lic", + "Ġsol ic", + "Ġ boom", + "Ġb oom", + "Ġbo om", + "Ġboo m", + "yect o", + "Ġmanufact ure", + "Ġ âĢĭ", + "ĠâĢ ĭ", + "Ġ bbox", + "Ġb box", + "Ġbb ox", + "Ġearth qu", + "oll ectors", + "ollect ors", + "olle ctors", + ":@\" %", + ":@ \"%", + "Ġ loops", + "Ġl oops", + "Ġlo ops", + "Ġloop s", + "J e", + "al king", + "alk ing", + "Ġ Whats", + "ĠWh ats", + "ĠWhat s", + "ĠBo ys", + "ĠBoy s", + ". book", + ".b ook", + ".bo ok", + "AR GE", + "ARG E", + "_ pixel", + "_p ixel", + "_pix el", + "Ġsus pects", + "Ġsusp ects", + "Ġsuspect s", + "Î ¹", + "u sp", + "us p", + "Ġ BMW", + "ĠB MW", + "ĠBM W", + "ie ces", + "iece s", + "iec es", + "( person", + "(p erson", + "(per son", + "å¼ Ģ", + "é »", + "ĠP odcast", + "ĠPod cast", + "Ġ bou", + "Ġb ou", + "Ġbo u", + "( Item", + "(I tem", + "(It em", + "à »", + "( Input", + "(In put", + "Http Get", + "Ġ burg", + "Ġb urg", + "Ġbu rg", + "Ġbur g", + ") ^", + "BO ARD", + "* /,", + "*/ ,", + "Ġ gulp", + "Ġg ulp", + "Ġgu lp", + "Ġgul p", + "ĠB enn", + "ĠBe nn", + "ĠBen n", + "Ġde cks", + "Ġdec ks", + "Ġdeck s", + ". statusCode", + ".status Code", + "Ġ acute", + "Ġac ute", + "Ġh ug", + "Ġhu g", + "u gu", + "ug u", + "Ġ pled", + "Ġp led", + "Ġpl ed", + "Ġple d", + ", \"%", + ",\" %", + "h ape", + "ha pe", + "hap e", + "Ġз ап", + "Ġза п", + "ĠM aine", + "ĠMain e", + "ĠMa ine", + "ĠMai ne", + ". real", + ".re al", + "Ġd alam", + "Ġda lam", + "Ġdal am", + "Ġ Minor", + "ĠMin or", + "ĠMi nor", + ". Float", + ".F loat", + "d isp", + "dis p", + "di sp", + "Ġ tl", + "Ġt l", + "Ġen count", + "Ġenc ount", + "= >$", + "=> $", + "Ġ fg", + "Ġf g", + "t ees", + "te es", + "tee s", + "ĠRe comm", + "ĠRec omm", + "ĠReco mm", + "ä l", + "Ġ chemistry", + "Ġchem istry", + "B locks", + "Block s", + "Bl ocks", + "Bloc ks", + "Blo cks", + "O ID", + "OI D", + "Ġf orex", + "Ġfor ex", + "Ġfore x", + "Ġfo rex", + "Ġ Append", + "ĠApp end", + "ĠAp pend", + "ĠAppe nd", + "Ġ {*", + "Ġ{ *", + "Ġ Supply", + "ĠS upply", + "ĠSup ply", + "CG Float", + "( bl", + "(b l", + "Ġ ate", + "Ġa te", + "Ġat e", + "ad ora", + "ado ra", + "ador a", + "Ġg ust", + "Ġgu st", + "Ass oci", + "Assoc i", + "> .Ċ", + ">. Ċ", + "F ETCH", + ". serial", + ".s erial", + ".se rial", + ".ser ial", + "widget s", + "wid gets", + "ard less", + "i efs", + "ie fs", + "ief s", + "_ FULL", + "_F ULL", + "ern etes", + "ernet es", + "erne tes", + "Ġ Pred", + "ĠP red", + "ĠPr ed", + "ĠPre d", + "Ø Ń", + "äº ĭ", + "ub ernetes", + "ubern etes", + "Ġ Laura", + "ĠL aura", + "ĠLa ura", + "ĠLaur a", + "ĠLau ra", + "Ġl abeled", + "Ġlabel ed", + "Ġlab eled", + "High light", + "Ġanno ying", + "Ġannoy ing", + "/ update", + "/up date", + "( description", + "(d escription", + "(de scription", + "(des cription", + "Ġint imid", + "Ġintim id", + "$ c", + "\" )))Ċ", + "\") ))Ċ", + "\")) )Ċ", + "\"))) Ċ", + ". AP", + ".A P", + "Ġ[ ]*", + "Ġ[] *", + "Ġ EXIT", + "ĠEX IT", + ". Host", + ".H ost", + "Ġ OPEN", + "ĠOP EN", + ". sendMessage", + ".send Message", + "_ camera", + "_c amera", + "_cam era", + "_ tile", + "_t ile", + "_ti le", + "Ġth erm", + "Ġthe rm", + "Ġther m", + "onom ous", + "Ġdis adv", + "Ġn aar", + "Ġna ar", + "index Of", + "Ġ PP", + "ĠP P", + ". protocol", + ".prot ocol", + ".proto col", + "A FE", + "AF E", + "Ġ textures", + "Ġtext ures", + "Ġtexture s", + "Ġtex tures", + "Ġtextu res", + "######## ########################################", + "################ ################################", + "################################ ################", + "######################################## ########", + "######################## ########################", + "um bai", + "umb ai", + "umba i", + ". stats", + ".st ats", + ".stat s", + "Ġ GE", + "ĠG E", + "Ġ ie", + "Ġi e", + "Ġ STD", + "ĠS TD", + "ĠST D", + "ĠM ann", + "ĠMan n", + "ĠMa nn", + ". reflect", + ".ref lect", + "K B", + "Ġd ive", + "Ġdi ve", + "Ġdiv e", + ". wav", + ".w av", + "/* ----------------------------------------------------------------", + "/*------------------------------------------------ ----------------", + "/ settings", + "/s ettings", + "/set tings", + ".l ifecycle", + ".life cycle", + "Ġda ughters", + "Ġdaughter s", + "o rus", + "or us", + "oru s", + "u ber", + "ub er", + "ube r", + "N ING", + "NI NG", + "s tri", + "st ri", + "str i", + "Ġ Tip", + "ĠT ip", + "ĠTi p", + "Ġ zn", + "Ġz n", + "Ġsw itched", + "Ġswitch ed", + "i net", + "in et", + "ine t", + "uff y", + "uf fy", + "ĠTransport ation", + "( conf", + "(con f", + "(co nf", + "f rica", + "fr ica", + "Ġ XL", + "ĠX L", + "Ġ Lead", + "ĠL ead", + "ĠLe ad", + "_ percent", + "_per cent", + "_perc ent", + "< Map", + " __", + "->_ _", + "per missions", + "perm issions", + "permission s", + "ĠD etermine", + "ĠDetermin e", + ". Man", + ".M an", + ".Ma n", + "Ġadv ances", + "Ġadvance s", + ". InputStream", + ".Input Stream", + "Ġstrong est", + "Ġstron gest", + "Ġe Bay", + "Ġ# -", + "Ġ dirname", + "Ġdir name", + "Ġ SMS", + "ĠS MS", + "ĠSM S", + "Ġmed ications", + "Ġmedic ations", + "Ġmedication s", + "Ġam ended", + "Ġamen ded", + "Ġamend ed", + "Ġchurch es", + "ĠIm perial", + "ĠImp erial", + "ĠImper ial", + "$ row", + "$r ow", + "ĠMad ison", + "Ġ Insp", + "ĠIn sp", + "ĠIns p", + "Ġaff air", + "Ġaf fair", + "Ġpsych ology", + "Ġpsycho logy", + "v h", + "Ġ severity", + "Ġse verity", + "Ġsever ity", + "âĢ IJ", + "Ġst rips", + "Ġstr ips", + "Ġstri ps", + "Ġstrip s", + "A H", + "vert ising", + "vertis ing", + "Ġc onse", + "Ġcon se", + "Ġcons e", + "IM AGE", + "IMA GE", + "Ġ Stats", + "ĠSt ats", + "ĠStat s", + "ĠSta ts", + "ĉ sc", + "ĉs c", + ". Cursor", + ".C ursor", + "Ġ freeze", + "Ġf reeze", + "Ġfree ze", + "s son", + "ss on", + "( xml", + "(x ml", + "Ġ Susan", + "ĠS usan", + "ĠSus an", + "ĠSu san", + ". tile", + ".t ile", + "e ded", + "ed ed", + "ede d", + "ĠĠ ĠĠĉĉĉ", + "ĠĠĠĠ ĉĉĉ", + "ĠĠĠ Ġĉĉĉ", + "ĠĠĠĠĉ ĉĉ", + "ĠĠĠĠĉĉ ĉ", + "u elle", + "ue lle", + "uel le", + "uell e", + "ĠMitch ell", + "b ased", + "base d", + "ba sed", + "bas ed", + "Oper and", + "Opera nd", + "½ æķ°", + "Ġ FF", + "ĠF F", + "ĉ strcpy", + "ĉstr cpy", + "ou nces", + "oun ces", + "ounc es", + "ounce s", + "il do", + "ild o", + ".execute Query", + "Ġappro aching", + "Ġapproach ing", + "Ġ Seven", + "ĠS even", + "ĠSe ven", + "ĠSev en", + "Ġ nuts", + "Ġn uts", + "Ġnut s", + "Ġnu ts", + "Ġ ric", + "Ġr ic", + "Ġri c", + "ass ignment", + "assign ment", + "Ġ calculator", + "Ġcal culator", + "Ġcalcul ator", + "Ġcalc ulator", + "ĠMur phy", + "ĠB ou", + "ĠBo u", + "í Ħ", + "Ġ butt", + "Ġb utt", + "Ġbut t", + "Ġbu tt", + "Ġ ticks", + "Ġt icks", + "Ġti cks", + "Ġtick s", + "Ġtic ks", + "Project s", + "Proj ects", + "i lib", + "il ib", + "ili b", + ".text Color", + "m ov", + "mo v", + "_ logo", + "_l ogo", + "_log o", + "_lo go", + "( template", + "(t emplate", + "(temp late", + "Ġ INIT", + "ĠIN IT", + "Ġ imageView", + "Ġimage View", + "s criptions", + "script ions", + "scri ptions", + "scription s", + "OR ITY", + "Con sumer", + "Cons umer", + "Consum er", + "Ġun precedented", + "Ġtour ist", + "Ġtou rist", + "Ġ bron", + "Ġb ron", + "Ġbr on", + "Ġbro n", + "Ġcon tractor", + "Ġcontract or", + "Ġcontr actor", + "Ġcontra ctor", + "Ġ licence", + "Ġli cence", + "Ġlic ence", + "Ġ Nam", + "ĠN am", + "ĠNa m", + "æ ¯", + "( transform", + "(trans form", + "_ ATT", + "_A TT", + "_AT T", + "P ref", + "Pr ef", + "Pre f", + "Ġ Gam", + "ĠG am", + "ĠGa m", + "Ġvess els", + "Ġvessel s", + "Ġh av", + "Ġha v", + "L ater", + "La ter", + "Lat er", + "Late r", + ". ToLower", + ".To Lower", + "Ġ urls", + "Ġurl s", + "Ġur ls", + "Ġbreak down", + "Ġpen alties", + "Ġpenal ties", + "Ġf oster", + "Ġfo ster", + "Ġfost er", + "Ġfos ter", + "Ġ UE", + "ĠU E", + "Ġc lue", + "Ġcl ue", + "c omed", + "com ed", + "co med", + "come d", + "åIJį 称", + "- main", + "-m ain", + "Ġ pts", + "Ġp ts", + "Ġpt s", + "Ġco unted", + "Ġcount ed", + "Ġcoun ted", + "i cts", + "ic ts", + "ict s", + "/ post", + "/p ost", + "Ġ getattr", + "Ġget attr", + "Ġ ping", + "Ġp ing", + "Ġpi ng", + "Ġpin g", + "AN CEL", + "ANCE L", + "ANC EL", + "Ġ pec", + "Ġp ec", + "Ġpe c", + "Ñħ од", + "Ñħо д", + "an tom", + "ant om", + "anto m", + "Ġ Blueprint", + "ĠBlue print", + "ĠEvent Emitter", + "Ġ lä", + "Ġl ä", + "æ ²", + "Ġst raw", + "Ġstr aw", + "Ġstra w", + "( comp", + "(c omp", + "(com p", + "(co mp", + "' une", + "'un e", + "'u ne", + "> N", + "- client", + "-c lient", + "-cl ient", + "-cli ent", + "es Module", + "- base", + "-b ase", + "Ġret reat", + "Ġretr eat", + "_ simple", + "_s imple", + "_sim ple", + "ĉ ĉĉĉĉĉĠ", + "ĉĉ ĉĉĉĉĠ", + "ĉĉĉĉ ĉĉĠ", + "ĉĉĉ ĉĉĉĠ", + "ĉĉĉĉĉ ĉĠ", + "ĉĉĉĉĉĉ Ġ", + "f ee", + "fe e", + "' )čĊčĊ", + "') čĊčĊ", + "')čĊ čĊ", + "Control Item", + "Ġsub scribers", + "Ġsubscri bers", + "Ġsubscribe rs", + "Ġsubscriber s", + "p lease", + "pl ease", + "ple ase", + "Ġ Eff", + "ĠE ff", + "ĠEf f", + "Ġp ound", + "Ġpo und", + "Ġpou nd", + "Ġ Bytes", + "ĠBy tes", + "ĠByte s", + "ĠT ea", + "ĠTe a", + "_ activity", + "_act ivity", + "_activ ity", + "Ġmax im", + "Ġmaxi m", + "Ġ opcode", + "Ġop code", + "Ġopc ode", + "B SD", + "BS D", + ". constant", + ".con stant", + ".const ant", + ".cons tant", + "; }", + "omb res", + "ombre s", + "Ġcare ers", + "Ġcareer s", + ") .ĊĊĊĊ", + "). ĊĊĊĊ", + ").ĊĊ ĊĊ", + ").Ċ ĊĊĊ", + ").ĊĊĊ Ċ", + "Ġsp reading", + "Ġspread ing", + "Ġspre ading", + "- expanded", + "-exp anded", + "-expand ed", + "Ġ Ord", + "ĠO rd", + "ĠOr d", + "am arin", + "ama rin", + "amar in", + "Ġmob ility", + "Ġmobil ity", + "Un fortunately", + "a kk", + "ak k", + "N L", + "_ redirect", + "_re direct", + "_red irect", + "Ġ PG", + "ĠP G", + "Ġ Sensor", + "ĠS ensor", + "ĠSens or", + "b ol", + "bo l", + "t ap", + "ta p", + "_ MEMORY", + "_MEM ORY", + "Ġ UIAlert", + "ĠUI Alert", + "pl itude", + "plit ude", + "We bsite", + "Web site", + "Ġ Logo", + "ĠL ogo", + "ĠLog o", + "ĠLo go", + "l ove", + "lo ve", + "lov e", + "[ ind", + "[i nd", + "[in d", + "Ġalto gether", + "Ġwonder ed", + "Ġ esper", + "Ġes per", + "Ġesp er", + "ĠLib eral", + "ĠLiber al", + "Ġ oss", + "Ġo ss", + "Ġos s", + "Ġe lit", + "Ġel it", + "Ġst iff", + "Ġstif f", + "od ox", + "odo x", + "_ mentions", + "_m entions", + "_ment ions", + "ĠDou glas", + "ĠDoug las", + "_ pid", + "_p id", + "_pi d", + "Ġ CK", + "ĠC K", + "ĠinitWith Frame", + ". blog", + ".b log", + ".bl og", + "p kg", + "pk g", + "ang hai", + "QUI RED", + "QUIRE D", + "u u", + "Ġ mkdir", + "Ġm kdir", + "Ġmk dir", + "AT AL", + "ATA L", + "Ġu nh", + "Ġun h", + "i nces", + "in ces", + "ince s", + "inc es", + "s th", + "st h", + "Ġhypo thesis", + "Ġhypoth esis", + "Ġc ata", + "Ġca ta", + "Ġcat a", + "Ġ TB", + "ĠT B", + "Ġ Clar", + "ĠC lar", + "ĠCl ar", + "ĠCla r", + "Ġpre decess", + "Ġpred ecess", + "Ġsit uated", + "Ġsitu ated", + "- world", + "-w orld", + ") )/", + ")) /", + "Ġhead lines", + "Ġheadline s", + ". stat", + ".s tat", + ".st at", + "Ġout break", + "s path", + "sp ath", + "spa th", + "_ FLAGS", + "_FLAG S", + "ĠServlet Exception", + "S un", + "Su n", + "F ROM", + "FR OM", + "Ġ Dir", + "ĠD ir", + "ĠDi r", + "ãĥ» ãĥ»ãĥ»", + "ãĥ»ãĥ» ãĥ»", + "_ coord", + "_c oord", + "_co ord", + "ĠOp tim", + "ĠOpt im", + "M onitor", + "Mon itor", + ". bit", + ".b it", + ".bi t", + "X XX", + "XX X", + "Ġto das", + "Ġtod as", + "Ġtoda s", + "f eld", + "fe ld", + "fel d", + "ÑĢ и", + "i mir", + "im ir", + "imi r", + "Ġpolit ically", + "Ġpolitical ly", + "Ġpolitic ally", + "Ġm olecular", + "Ġmolec ular", + "Ġmole cular", + "Ġtr aded", + "Ġtrad ed", + "Ġtrade d", + "Ġtra ded", + "Ġ {{$", + "Ġ{ {$", + "Ġ{{ $", + "ĠSw edish", + "ĠSwe dish", + "Ġ'@ /", + "_ REAL", + "_RE AL", + "Ġ warehouse", + "Ġw arehouse", + "Ġware house", + "t oday", + "to day", + "tod ay", + ", L", + "o rp", + "or p", + "< section", + " false", + ">f alse", + "Ġ spa", + "Ġs pa", + "Ġsp a", + "Ġ Near", + "ĠN ear", + "ĠNe ar", + "ì ķ", + "Ġint rig", + "Ġintr ig", + "_ members", + "_m embers", + "_mem bers", + "_member s", + "w ave", + "wa ve", + "wav e", + "Ġanal ysts", + "Ġanaly sts", + "Ġanalyst s", + "Ġanalys ts", + "_ OS", + "_O S", + "e din", + "ed in", + "edi n", + "Ġ Fri", + "ĠF ri", + "ĠFr i", + "Ġret rieved", + "Ġretrie ved", + "Ġretrieve d", + "Ġretr ieved", + "Reg ular", + "_ obs", + "_o bs", + "_ob s", + "EX PORT", + "EXP ORT", + "' )}}\"", + "') }}\"", + "')}} \"", + "')} }\"", + "\" class", + "\"c lass", + "__ ((", + "__( (", + "b ucket", + "bu cket", + "Ġ stro", + "Ġs tro", + "Ġst ro", + "Ġstr o", + "Ġ Patch", + "ĠP atch", + "ĠPat ch", + "y stick", + "yst ick", + "ys tick", + "ful ness", + "a pos", + "ap os", + "apo s", + "D a", + "ĉ ĉĉĉĉĠĠĠ", + "ĉĉ ĉĉĉĠĠĠ", + "ĉĉĉĉ ĉĠĠĠ", + "ĉĉĉ ĉĉĠĠĠ", + "ĉĉĉĉĉ ĠĠĠ", + "ĉĉĉĉĉĠ ĠĠ", + "ĉĉĉĉĉĠĠ Ġ", + "Ġen rich", + "Ġenr ich", + "un ordered", + "h ole", + "ho le", + "hol e", + "C ong", + "Con g", + "Co ng", + "< Product", + "ĠC urt", + "ĠCur t", + "ĠCu rt", + "( the", + "(t he", + "(th e", + "_ lower", + "_l ower", + "_lo wer", + "_low er", + "Ġavoid ing", + "Ġ buzz", + "Ġb uzz", + "Ġbu zz", + "Ġbuz z", + "Ġv iable", + "Ġvi able", + "Ġvia ble", + "u ba", + "ub a", + "- is", + "-i s", + "a rel", + "ar el", + "are l", + "Ġ acted", + "Ġact ed", + "Ġac ted", + "- details", + "-d etails", + "-de tails", + "-detail s", + "-det ails", + "ภĩ", + "Ġ Theory", + "ĠThe ory", + "ĠTheo ry", + "ĠP un", + "ĠPu n", + "Ġ Anonymous", + "ĠAn onymous", + ".. .\"Ċ", + "... \"Ċ", + "...\" Ċ", + "è res", + "ère s", + "åı ¯", + "Ġ Vision", + "ĠV ision", + "ĠVis ion", + "_ sem", + "_s em", + "_se m", + "a sha", + "as ha", + "ash a", + "Ġcelebr ity", + "Ġ endDate", + "Ġend Date", + "Ġ populate", + "Ġpop ulate", + "Ġpopul ate", + "Ġc uis", + "Ġcu is", + "Ġcui s", + "q uant", + "qu ant", + "qua nt", + "quan t", + "f loor", + "fl oor", + "flo or", + "Ġglobal ly", + "Ġglob ally", + "Ġc ruise", + "Ġcru ise", + "Ġcruis e", + "ĠStan ley", + "Ġb ikes", + "Ġbi kes", + "Ġbike s", + "Ġbik es", + ". getConnection", + ".get Connection", + "Ġpoor ly", + "_ other", + "_o ther", + "_ot her", + "am ping", + "amp ing", + ". \");ĊĊ", + ".\" );ĊĊ", + ".\");Ċ Ċ", + ".\") ;ĊĊ", + ".\"); ĊĊ", + "o di", + "od i", + "_ ADMIN", + "_A DMIN", + "_AD MIN", + ". colors", + ".color s", + ".col ors", + "ĠG aming", + "ĠGa ming", + "ĠGam ing", + "> ';ĊĊ", + ">' ;ĊĊ", + ">';Ċ Ċ", + ">'; ĊĊ", + "STR UCT", + "STRU CT", + "Q R", + "I Ds", + "ID s", + "( arguments", + "(arg uments", + "(argument s", + "_ aux", + "_a ux", + "( Event", + "(E vent", + "_ PRIVATE", + "_PR IVATE", + "_PRIV ATE", + "ĠT rek", + "ĠTr ek", + "ĠTre k", + "Ġ downloads", + "Ġdown loads", + "Ġdownload s", + "m utable", + "mut able", + "mu table", + "_ STRUCT", + "_STR UCT", + "( wx", + "(w x", + "Ġ domains", + "Ġdom ains", + "Ġdomain s", + "Ġdoma ins", + "js px", + "jsp x", + "ĠVi agra", + "ĠVia gra", + "Command s", + "Comm ands", + "J s", + ". cfg", + ".c fg", + ".cf g", + "Content Pane", + "Ġ EditText", + "ĠEdit Text", + "à¥į à¤", + "At tach", + "Att ach", + "Ġ ARM", + "ĠA RM", + "ĠAR M", + "pos itive", + "posit ive", + "Ġ Generated", + "ĠG enerated", + "ĠGener ated", + "ĠGenerate d", + "ĠGene rated", + "Ġse ized", + "Ġseiz ed", + "Ġsei zed", + "Ġseize d", + "= :", + "Ġ electronics", + "Ġelect ronics", + "Ġelectronic s", + "Ġelectron ics", + "Ġ AppComponent", + "ĠApp Component", + "/ ',Ċ", + "/' ,Ċ", + "/', Ċ", + ". equalsIgnoreCase", + ".equals IgnoreCase", + "Do ctrine", + "d isk", + "dis k", + "di sk", + "Ġ Political", + "ĠPol itical", + "ĠPolit ical", + "C HO", + "CH O", + "< F", + "ĉ height", + "ĉh eight", + "Ġ Bug", + "ĠB ug", + "ĠBu g", + ". le", + ".l e", + "i kh", + "ik h", + "Ġ milliseconds", + "Ġm illiseconds", + "Ġmill iseconds", + "Ġmilli seconds", + "Ġconst itu", + "Ġconstit u", + "m ag", + "ma g", + ". nl", + ".n l", + "- range", + "-r ange", + "-ra nge", + "ang gal", + "' ,[", + "', [", + "r opolitan", + "ropol itan", + "Ġ Ãľ", + "Ġà ľ", + "Ġ UC", + "ĠU C", + ". desc", + ".d esc", + ".de sc", + ".des c", + "- LAST", + "-L AST", + "f stream", + "fst ream", + "i bil", + "ib il", + "ibi l", + "Ġf ier", + "Ġfi er", + "Ġfie r", + "V ERY", + "VER Y", + "VE RY", + "Ġ ë³", + "Ġë ³", + "I RT", + "IR T", + "_ UI", + "_U I", + "( abs", + "(a bs", + "(ab s", + "Ġk nees", + "Ġkn ees", + "Ġkne es", + "Ġknee s", + "Ġr ookie", + "Ġro okie", + "Ġ Vac", + "ĠV ac", + "ĠVa c", + "a rena", + "ar ena", + "are na", + "aren a", + "comm end", + "- \\", + "ĠSUB STITUTE", + "S oft", + "So ft", + "Ġpart ir", + "Ġpar tir", + "Ġparti r", + "we alth", + "è¦ ģ", + "( dataset", + "(d ataset", + "(data set", + "(dat aset", + "(datas et", + "Ġ Climate", + "ĠCl imate", + "ĠClim ate", + "ĠCli mate", + "- show", + "-s how", + "-sh ow", + "Ġrel iability", + "Ġreli ability", + "_ chunk", + "_ch unk", + "ä» £", + "_ stock", + "_st ock", + "ĠEX EMPLARY", + "ï ¸ı", + "ï¸ ı", + "Ġ vÃŃ", + "Ġv ÃŃ", + "Ġsm iled", + "Ġsmile d", + "Ġdr ill", + "Ġdri ll", + ". Function", + ".F unction", + ".Func tion", + "Ġ SI", + "ĠS I", + "Ġre gression", + "Ġreg ression", + "Ġregress ion", + "- X", + "Ġ Jar", + "ĠJ ar", + "ĠJa r", + "p ref", + "pr ef", + "pre f", + "ĉ success", + "ĉs uccess", + "ĠH itler", + "ĠHit ler", + "Ġinst inct", + "Ġfem mes", + "Ġfemme s", + "Ġ lover", + "Ġl over", + "Ġlo ver", + "Ġlove r", + "Ġlov er", + "< Ċ", + "Ġmulti plier", + "Ġmultip lier", + "r il", + "ri l", + "Re size", + "Res ize", + "Ġ Authorization", + "ĠAuthor ization", + "ĠK an", + "ĠKa n", + "Dispatch ToProps", + "Ġc rops", + "Ġcr ops", + "Ġcro ps", + "Ġcrop s", + "t okens", + "token s", + "tok ens", + "e cn", + "ec n", + "ent ially", + "ential ly", + "enti ally", + "ĠINTERRU PTION", + "f ake", + "fa ke", + "fak e", + "Un defined", + "Und efined", + "Ġ AK", + "ĠA K", + "Ġ TestCase", + "ĠTest Case", + "Ġ rab", + "Ġr ab", + "Ġra b", + "Ġ torrent", + "Ġt orrent", + "Ġtor rent", + "Ġ Ot", + "ĠO t", + "B ars", + "Bar s", + "Ba rs", + "Ġ lecture", + "Ġl ecture", + "Ġlect ure", + "Ġen jo", + "Ġrespond s", + "Ġresp onds", + "Ġ indexed", + "Ġindex ed", + "Ġinde xed", + "Of Work", + "_ chain", + "_ch ain", + ") )->", + ")) ->", + "))- >", + "Ġ Beauty", + "ĠBe auty", + "ĠBeaut y", + "ĠBea uty", + "ĠBeau ty", + "Ġ` <", + "Ġtouch ing", + "Ġtou ching", + "Ġ |--", + "Ġ| --", + "Ġ|- -", + "ĉ flag", + "ĉf lag", + "normal ize", + "Ġt rapped", + "Ġtr apped", + "Ġtra pped", + "Ġtrap ped", + "Ġestablish ing", + "/ build", + "/b uild", + "A J", + "f y", + "- react", + "-re act", + "a vn", + "av n", + "RI PTION", + "RIPT ION", + "Ġk ut", + "Ġku t", + "Ġ Fashion", + "ĠF ashion", + "Ġ Inform", + "ĠIn form", + "ĠInfo rm", + "ĠInf orm", + "c urities", + "cur ities", + "< byte", + "{Ċ", + "Ġ= >{Ċ", + "Ġ=> {Ċ", + "Ġgar lic", + "Ġ repr", + "Ġre pr", + "Ġrep r", + "Ġre plies", + "Ġrep lies", + "Ġrepl ies", + "( prop", + "(p rop", + "(pro p", + "(pr op", + "Ġspirit s", + "Ġspir its", + "Ġins pire", + "Ġinspir e", + "Ġinsp ire", + "Ġbase ment", + "Ġbas ement", + ". reject", + ".re ject", + "Ġ hints", + "Ġh ints", + "Ġhint s", + "Ġhi nts", + "Ġhin ts", + "Ġpol ling", + "Ġpoll ing", + "ĉ ĠĊ", + "ĉĠ Ċ", + "_ rating", + "_r ating", + "_ra ting", + "_rat ing", + "Ġc ath", + "Ġca th", + "Ġcat h", + "a vier", + "av ier", + "avi er", + "Ġ compressed", + "Ġcom pressed", + "Ġcomp ressed", + "Ġcompr essed", + "Ġcompress ed", + "Ġ VS", + "ĠV S", + "] '", + "Ġjud icial", + "ĠT rend", + "ĠTr end", + "ĠTre nd", + "tr aining", + "tra ining", + "train ing", + "EST AMP", + "ogn ition", + "Ä ģ", + "S ENT", + "SE NT", + "SEN T", + "v entions", + "vent ions", + "vention s", + "Ġconsult ant", + "Ġconsulta nt", + "Ġconsul tant", + "u mph", + "um ph", + "ump h", + "Ġ userService", + "Ġuser Service", + ", NULL", + ",N ULL", + "k h", + "D ear", + "De ar", + "_ BAD", + "_B AD", + "it ations", + "itation s", + "itat ions", + "Ġmet aph", + "Ġmeta ph", + "' é", + "and ise", + "andi se", + "- font", + "-f ont", + ". chart", + ".c hart", + ".ch art", + ".char t", + "Ġ sg", + "Ġs g", + "_ Controller", + "_Control ler", + ". jpeg", + ".j peg", + ".jp eg", + "Ġ ULONG", + "ĠU LONG", + "ĠUL ONG", + "ĉ game", + "ĉg ame", + "( ss", + "(s s", + "ĠM aj", + "ĠMa j", + "ĉ go", + "ĉg o", + "Ġ Sad", + "ĠS ad", + "ĠSa d", + "ĠB erg", + "ĠBe rg", + "ĠBer g", + "Ġ Mine", + "ĠM ine", + "ĠMin e", + "ĠMi ne", + "P ack", + "Pa ck", + "Ġres istant", + "Ġresist ant", + "Ġ ROM", + "ĠR OM", + "ĠRO M", + "Ġ peg", + "Ġp eg", + "Ġpe g", + "ĠSt anford", + "ĠStan ford", + "Ġ Yahoo", + "ĠY ahoo", + "ĠYa hoo", + "ĠYah oo", + "Ġ scaled", + "Ġs caled", + "Ġsc aled", + "Ġscale d", + "Ġsca led", + "Ġscal ed", + "Ġ lan", + "Ġl an", + "Ġla n", + "= []", + "=[ ]", + "\" /> < /", + "Ġ plots", + "Ġp lots", + "Ġpl ots", + "Ġplot s", + "Ġplo ts", + ". *Ċ", + ".* Ċ", + "Ġtr aveled", + "Ġtravel ed", + "Ġtra veled", + "Ġtrav eled", + "ĠO scar", + "ĠOs car", + "ĠOsc ar", + "V L", + "Ġl inking", + "Ġlink ing", + "Ġlin king", + "Ġt ires", + "Ġti res", + "Ġtire s", + "Ġtir es", + "Ġ' *'", + "Ġ'* '", + "ĠBuffer ed", + "ĠBuff ered", + "e ri", + "er i", + "Ġ ****", + "Ġ* ***", + "Ġ** **", + "Ġ*** *", + "Ġover look", + "Ġoverl ook", + ". Non", + ".N on", + ".No n", + "Ġr és", + "Ġré s", + "Ġe gy", + "Ġeg y", + "å° ı", + "Ġatt acker", + "Ġattack er", + "ĉ ĉĉĉĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉ ĉĉĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉ ĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉ ĉĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉ ĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉ ĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉ ĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉ ĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉ ĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉ ĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉ ĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉĉ ĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉĉĉ ĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉĉĉĉ ĉ", + ". sync", + ".s ync", + ".syn c", + ".sy nc", + "AS CADE", + "ASC ADE", + "G round", + "Gr ound", + "Gro und", + "Ġ decay", + "Ġdec ay", + "Ġ Ton", + "ĠT on", + "ĠTo n", + "Ġjew elry", + "Ġjewel ry", + "Ġb ypass", + "Ġby pass", + "Ġm embr", + "Ġmem br", + "Ġmemb r", + "R NA", + "RN A", + "< System", + " ččĊ", + "Ġs ud", + "Ġsu d", + "ĉ background", + "ĉback ground", + "Ġsch olars", + "Ġscholar s", + "-m uted", + "a rá", + "ar á", + "Ġ =====", + "Ġ= ====", + "Ġ== ===", + "Ġ=== ==", + "Ġ==== =", + "Ġ ____", + "Ġ_ ___", + "Ġ__ __", + "Ġ___ _", + "C reat", + "Cre at", + "Cr eat", + "e never", + "en ever", + "ene ver", + "/ wp", + "/w p", + "Ġ VPN", + "ĠV PN", + "ĠVP N", + "Error Code", + ") ],Ċ", + ")] ,Ċ", + ")], Ċ", + "( builder", + "(b uilder", + "(build er", + "Ġ Enemy", + "ĠEn emy", + "S ensor", + "u sa", + "us a", + "Ġtr iggers", + "Ġtrigger s", + "Ġtrig gers", + "Ġplay offs", + "Ġplayoff s", + "_ REQ", + "_RE Q", + "_R EQ", + "Ġ (~", + "Ġ( ~", + "ĠB arry", + "ĠBar ry", + "ĠBarr y", + "Ġperman ently", + "Ġpermanent ly", + "Ġ RUN", + "ĠR UN", + "ĠRU N", + "Ġb ure", + "Ġbu re", + "Ġbur e", + ".Fatal f", + ".Fat alf", + "Ġch ick", + "Ġchi ck", + "Ġchic k", + "ĉ panic", + "ĉp anic", + "p si", + "ps i", + "o ka", + "ok a", + "éĢ ī", + "> [", + "Ġunder stands", + "Ġunderstand s", + "Ġunderst ands", + "Ġ Junior", + "ĠJun ior", + "ĠJuni or", + "Ġ INFO", + "ĠIN FO", + "ĠINF O", + "= mysqli", + "=m ysqli", + "=mysql i", + "us tain", + "ust ain", + "usta in", + "- source", + "-s ource", + "s erv", + "se rv", + "ser v", + "Ġ CREATE", + "ĠC REATE", + "ĠCRE ATE", + ". au", + ".a u", + "Ġs ells", + "Ġsell s", + "Ġsel ls", + "Ġ ĠĊĠĠĊ", + "ĠĠ ĊĠĠĊ", + "ĠĠĊ ĠĠĊ", + "E urope", + "Euro pe", + "z w", + "p reh", + "pr eh", + "pre h", + "ĠN SA", + "ĠNS A", + "Ġ xy", + "Ġx y", + "ภ´", + "Ġ Beyond", + "ĠB eyond", + "ĠBey ond", + "In stead", + "Inst ead", + "Non Query", + "Ġa rise", + "Ġar ise", + "Ġavoid ed", + ". emplace", + ".em place", + ".emp lace", + "_ models", + "_model s", + "_mode ls", + "_mod els", + "} ),Ċ", + "}) ,Ċ", + "}), Ċ", + "Ġ hid", + "Ġh id", + "Ġhi d", + "Ġ &_", + "Ġ& _", + ". points", + ".p oints", + ".point s", + ".po ints", + ".poi nts", + ". getWidth", + ".get Width", + ". Exec", + ".Ex ec", + ".E xec", + "Ġ ////", + "Ġ// //", + "Ġ/ ///", + "Ġ/// /", + "Ġ Sessions", + "ĠS essions", + "ĠSession s", + ". ..\\", + ".. .\\", + "... \\", + "ĠCol omb", + "ĠColo mb", + "Ġacceler ation", + "Ġaccel eration", + "re store", + "rest ore", + "Ġ ile", + "Ġi le", + "Ġil e", + "o bic", + "ob ic", + "obi c", + "< Node", + " }Ċ", + ">} Ċ", + "pl aint", + "plain t", + "pla int", + "get Text", + "Ġindividual ly", + "Ġindivid ually", + "Ġ checkbox", + "Ġcheck box", + "U Y", + "ĠL amb", + "ĠLa mb", + "ĠLam b", + "Ġdys function", + "ĠL ar", + "ĠLa r", + "à °", + "Ġ Creating", + "ĠC reating", + "ĠCr eating", + "ĠCre ating", + "ĠCreat ing", + "' );ĊĊĊ", + "') ;ĊĊĊ", + "');Ċ ĊĊ", + "');ĊĊ Ċ", + "'); ĊĊĊ", + "\" They", + "\"The y", + "\"T hey", + "l ocations", + "loc ations", + "location s", + "_ CORE", + "_C ORE", + "_CO RE", + "_COR E", + "Inter action", + "umbn ails", + "umbnail s", + "Ġ Partner", + "ĠP artner", + "ĠPart ner", + "b rit", + "br it", + "Ġl esser", + "Ġless er", + "Ġles ser", + "Ġ Slot", + "ĠS lot", + "ĠSl ot", + "ĠSlo t", + "set Attribute", + "Ġ Wave", + "ĠW ave", + "ĠWa ve", + ". po", + ".p o", + "/ store", + "/st ore", + "Ġb rowsing", + "Ġbrows ing", + "Ġbrow sing", + "_ pd", + "_p d", + "s ume", + "sum e", + "su me", + "s ed", + "se d", + "C urve", + "Cur ve", + "Cu rve", + "Ġpl asma", + "Ġsusp icious", + "ìĿ ¸", + "Ġ Bah", + "ĠB ah", + "ĠBa h", + "Ġ Explicit", + "ĠExp licit", + "ĠExpl icit", + "_ CC", + "_C C", + ".Client Size", + "\\ View", + "\\V iew", + "Ġsub stit", + "Ġsubs tit", + "Ġsubst it", + "l oon", + "lo on", + "loo n", + "Ġ GAME", + "ĠG AME", + "ĠGA ME", + "ĠGAM E", + "ĠB rid", + "ĠBr id", + "ĠBri d", + "Ľ 建", + "_ User", + "_U ser", + "Ġs quares", + "Ġsqu ares", + "Ġsquare s", + "f one", + "fo ne", + "fon e", + "Ġsa cred", + "Ġsac red", + "Ġsacr ed", + "ug hs", + "ugh s", + "] interface", + "Ġ Throw", + "ĠTh row", + "ĠThr ow", + "ĠK irk", + "ĠKir k", + "ĠKi rk", + "Ġem pire", + "Ġemp ire", + "Ġempir e", + "Ġass essed", + "Ġassess ed", + "Ġasses sed", + "T ax", + "Ta x", + "ĠHe aven", + "- buffer", + "-b uffer", + "_ STATIC", + "_ST ATIC", + "_STAT IC", + "é né", + "én é", + "-b ordered", + "-border ed", + "Ġp unct", + "Ġpun ct", + "( mode", + "(m ode", + "(mod e", + "Ġke ine", + "Ġkein e", + "S ent", + "Se nt", + "Sen t", + "Ġ Calcul", + "ĠCal cul", + "ĠCalc ul", + "ĠE ve", + "ĠEv e", + "Ġsty lish", + "Ġstyl ish", + "Ġo ils", + "Ġoil s", + "Ġoi ls", + ". TestCase", + ".Test Case", + "Ġtrad emark", + "Ġtrade mark", + "Ġliter ary", + "Ġlite rary", + "Ġconcentr ations", + "Ġconcentration s", + "Ġ Relations", + "ĠRe lations", + "ĠRel ations", + "ĠRelation s", + "( Class", + "(C lass", + "(Cl ass", + "Ġ stdin", + "Ġst din", + "Ġstd in", + "Ġv æ", + "back up", + "bac kup", + ". VERSION", + ".V ERSION", + ".AutoScale Dimensions", + "st arter", + "start er", + "star ter", + "Transaction al", + "- panel", + "-p anel", + "-pane l", + "St udio", + "k c", + "ĠCh amber", + "ĠCham ber", + "ĠS piel", + "ĠSp iel", + "ĠSpi el", + "Ġ rho", + "Ġr ho", + "Ġrh o", + "ا ÙĦ", + "ا٠Ħ", + "! '", + ". Attributes", + ".At tributes", + ".Attribute s", + "Ġmurder ed", + "apeut ic", + "Ġint imate", + "Ġintim ate", + "Ġ textField", + "Ġt extField", + "Ġtext Field", + "ĠBuff alo", + "d ummy", + "dum my", + "\" %", + "ĠLib erty", + "ĠLibert y", + "ĠLiber ty", + "o bar", + "ob ar", + "oba r", + "Ġ Tank", + "ĠT ank", + "ĠTa nk", + "ĠTan k", + "Ġ Popular", + "ĠPop ular", + "er visor", + "erv isor", + "ĠIn iti", + "ĠInit i", + "ĠIni ti", + "ĠM all", + "ĠMal l", + "ĠMa ll", + "Ġ Prior", + "ĠP rior", + "ĠPr ior", + "ĠPri or", + "C AP", + "CA P", + "ĠC lay", + "ĠCl ay", + "ĠCla y", + "Ġ Certificate", + "ĠC ertificate", + "ĠCert ificate", + "ĠCertif icate", + ". Lock", + ".L ock", + ".Lo ck", + "- strip", + "-s trip", + "-st rip", + "-str ip", + "-dr iven", + "-drive n", + "/ all", + "/a ll", + "/al l", + "ĠMessageBox Buttons", + "ĠMessageBoxButton s", + "_ SECRET", + "_SE CRET", + "_SEC RET", + "_ pb", + "_p b", + "Ġ rats", + "Ġr ats", + "Ġrat s", + "Ġra ts", + "ा à¤", + "Ġ nt", + "Ġn t", + ". Router", + ".R outer", + ".Route r", + "_ topic", + "_t opic", + "_to pic", + "_top ic", + "Ġt ennis", + "Ġten nis", + "Ġ PUBLIC", + "ĠP UBLIC", + "ĠPUB LIC", + "ĠActiv atedRoute", + "Ġ ',Ċ", + "Ġ' ,Ċ", + "Ġ', Ċ", + "Ġcost ume", + "Ġj okes", + "Ġjo kes", + "Ġjoke s", + ". Handle", + ".H andle", + ".Hand le", + "ĉ byte", + "ĉb yte", + "Ġfl avors", + "Ġflavor s", + "Ġflav ors", + "( cc", + "(c c", + "Ġperson as", + "Ġpers onas", + "Ġpersona s", + "Ġperso nas", + "ĉ image", + "ĉi mage", + "ĉim age", + "ĠN azi", + "ĠNa zi", + "ĠNaz i", + "Ġ grammar", + "Ġgram mar", + "Ġgramm ar", + "Ġú lt", + "Ġval ve", + "Ġ vic", + "Ġv ic", + "Ġvi c", + "Ġ Rachel", + "ĠR achel", + "ĠRac hel", + "ĠRach el", + "_ invalid", + "_in valid", + "P refs", + "Pr efs", + "Pre fs", + "Pref s", + "std int", + "stdin t", + "( route", + "(r oute", + "(ro ute", + "Ġ htmlspecialchars", + "Ġhtml specialchars", + "Ġpe oples", + "Ġpeople s", + "p line", + "pl ine", + "Ġ nv", + "Ġn v", + "Ġ Quant", + "ĠQ uant", + "ĠQu ant", + "o ppers", + "op pers", + "opp ers", + "opper s", + "Ġ currentUser", + "Ġcurrent User", + "ĠC atal", + "ĠCa tal", + "ĠCat al", + "ĠCata l", + "Ġre conc", + "Ġrecon c", + "Ġreco nc", + "Ġcon junction", + "Ġconj unction", + "l x", + "am burg", + "amb urg", + "Ġinflu ential", + "d anger", + "da nger", + "dan ger", + "in ders", + "ind ers", + "inder s", + "inde rs", + "Ġ %@\",", + "Ġ% @\",", + "Ġ%@ \",", + ". configuration", + ".config uration", + "o some", + "os ome", + "oso me", + ". identity", + ".id entity", + ".ident ity", + ".ide ntity", + "Ġ picker", + "Ġp icker", + "Ġpick er", + "Ġpi cker", + "Ġpic ker", + "n ost", + "no st", + "nos t", + "ĠDI Y", + "Aug ust", + "a blo", + "ab lo", + "abl o", + "Le af", + "ĠR eco", + "ĠRe co", + "ĠRec o", + "c ko", + "ck o", + "D OC", + "DO C", + "ĠH erm", + "ĠHe rm", + "ĠHer m", + ": any", + ":a ny", + "Ġ Interview", + "ĠInt erview", + "ĠInter view", + "Ġ Tex", + "ĠT ex", + "ĠTe x", + "x fe", + "xf e", + "( work", + "(w ork", + "Ġle ap", + "He ading", + "Head ing", + "Ġ quarters", + "Ġqu arters", + "Ġquarter s", + "Ġquar ters", + "Ġquart ers", + "\\ Bundle", + "r eb", + "re b", + "Per haps", + "ĠG mbH", + "B irth", + "Bir th", + "ĉ sum", + "ĉs um", + "ĠWat son", + ". nil", + ".n il", + "ç ¡", + "{ }ĊĊ", + "{} ĊĊ", + "{}Ċ Ċ", + "ic aid", + "ica id", + "G etter", + "Get ter", + "\" name", + "Ġ \"čĊ", + "Ġ\" čĊ", + "_ none", + "_n one", + "_no ne", + "_non e", + "z m", + "ac ute", + "u esto", + "ue sto", + "ues to", + "uest o", + "Ġs ous", + "Ġso us", + "Ġsou s", + "Ġre build", + "Ġreb uild", + "Ġnews papers", + "Ġnewsp apers", + "Ġnewspaper s", + "Ġ Haz", + "ĠH az", + "ĠHa z", + "Ġ kits", + "Ġk its", + "Ġkit s", + "Ġki ts", + "i fo", + "if o", + "Bl ur", + "Ġsu ited", + "Ġsuit ed", + "Ġsuite d", + "Ġsui ted", + "- In", + "-I n", + "à ¯", + "Ġ Keith", + "ĠKe ith", + "ĠNor way", + "IN IT", + "INI T", + "ire ccion", + "i eties", + "ie ties", + "iet ies", + "_ usage", + "_u sage", + "_us age", + "Ġ Doug", + "ĠD oug", + "ĠDo ug", + "ĠDou g", + "r ise", + "ri se", + "ris e", + "Ġtr illion", + "im ited", + "imit ed", + "imi ted", + "Ġ REL", + "ĠR EL", + "ĠRE L", + "a lic", + "al ic", + "ali c", + "Ġcritic ized", + "Ġcriticize d", + "the orem", + "Ġc ease", + "Ġce ase", + "Ġside w", + "Ġsid ew", + "ĠT erry", + "ĠTer ry", + "ĠTerr y", + "Ġsubs idi", + "Ġsubsid i", + "Ġfirm ly", + "Ġ aws", + "Ġa ws", + "Ġaw s", + "Ġh ott", + "Ġhot t", + "Ġho tt", + "Ġd ressing", + "Ġdress ing", + "b adge", + "ba dge", + "bad ge", + "Ġ Applications", + "ĠApp lications", + "ĠApplication s", + "ĠAppl ications", + "è¿ ĶåĽŀ", + "è¿Ķ åĽŀ", + "Ġlaugh ed", + "Ġh obby", + "Ġhob by", + "Ġmus icians", + "Ġmusic ians", + "Ġmusician s", + "Ġ *.", + "Ġ* .", + ". placeholder", + ".place holder", + "Ġc ounters", + "Ġcount ers", + "Ġcoun ters", + "Ġcounter s", + "ĠCap itol", + "S DK", + "SD K", + "Ġh elmet", + "Ġhel met", + "Ġhelm et", + "and box", + "q uit", + "qu it", + "qui t", + "Ġcriminal s", + "Ġcrim inals", + "Ġteen ager", + "Ġteenage r", + "( update", + "(up date", + "G l", + ". selection", + ".s election", + ".se lection", + ".select ion", + ".sel ection", + "Ġdis charge", + "Ġpres enting", + "Ġpresent ing", + "ufact urer", + "_ UNKNOWN", + "_UN KNOWN", + "Ġst ressed", + "Ġstr essed", + "Ġstress ed", + "å Ļ¨", + "åĻ ¨", + "Pro to", + "Pr oto", + "Prot o", + "_ correct", + "_c orrect", + "_cor rect", + "_corr ect", + "h aus", + "ha us", + "Ġre nov", + "Ġren ov", + "Ġfire arms", + "Ġfirearm s", + "Ġtechn ically", + "Ġtechnical ly", + "- browser", + "-b rowser", + "Ġc andy", + "Ġcan dy", + "Ġcand y", + "St roke", + "Str oke", + "Ġ executor", + "Ġexec utor", + "Ġexecut or", + "Ġocc urrence", + "Ġoccur rence", + "Ġ IPv", + "ĠIP v", + "_ INTERFACE", + "_INTER FACE", + "Ġ Retrieve", + "ĠRe trieve", + "ĠRet rieve", + "ĠRetrie ve", + ". bad", + ".b ad", + ".ba d", + "Ex change", + "Nav bar", + "Ġ Kid", + "ĠK id", + "ĠKi d", + "(get ApplicationContext", + "_ STOP", + "_S TOP", + "_ST OP", + "Ġ Boss", + "ĠB oss", + "ĠBo ss", + "ĠBos s", + "List eners", + "Listener s", + "Listen ers", + "Ġsh ooter", + "Ġshoot er", + "Ġsho oter", + "ĠA lb", + "ĠAl b", + "ä ch", + "Ġ pix", + "Ġp ix", + "Ġpi x", + ". keyCode", + ".key Code", + "al one", + "alo ne", + "alon e", + "Ġabs urd", + "Ġ Cum", + "ĠC um", + "ĠCu m", + "ĠNewton soft", + "i kt", + "ik t", + "Ġlaugh ing", + "Ġcapital ism", + "ree Node", + "T x", + "_ QUERY", + "_QU ERY", + ". Sleep", + ".S leep", + "( login", + "(log in", + "(lo gin", + "Web Element", + "Ġcelebr ating", + "Ġ deprecated", + "Ġde precated", + "Ġdep recated", + "Ġm aar", + "Ġma ar", + "Ġart istic", + "Ġartist ic", + "_ASS OC", + "_AS SOC", + "ĠBorder Radius", + "ĉ wp", + "ĉw p", + "Ġsurv ivors", + "Ġsurviv ors", + "Ġsurvivor s", + "In ner", + "- red", + "-r ed", + "-re d", + "Ġprosec ution", + "_ pp", + "_p p", + "( \"$", + "\"=> $", + "Ġ comma", + "Ġcom ma", + "Ġco mma", + "Ġcomm a", + "un checked", + "g raphics", + "graph ics", + "graphic s", + "r ors", + "ro rs", + "ror s", + "G ROUND", + "GR OUND", + "( public", + "(p ublic", + "(pub lic", + "Ġcustom ized", + "Ġcustomize d", + "ĠArk ansas", + "Ġ Rew", + "ĠR ew", + "ĠRe w", + "Ġ expiration", + "Ġex piration", + "Ġexp iration", + "× ķ", + "ĠC ul", + "ĠCu l", + "Ġn ons", + "Ġno ns", + "Ġnon s", + ". Filter", + ".F ilter", + "Ġsen ator", + "_ definition", + "_def inition", + "ash ington", + "ashing ton", + "y mph", + "ym ph", + "/ J", + "Ġ fuse", + "Ġf use", + "Ġfu se", + "Ġfus e", + "ra mid", + "ram id", + "Ġ Supplier", + "ĠS upplier", + "ĠSup plier", + "Ġ autocomplete", + "Ġaut ocomplete", + "Ġauto complete", + "Ġ }),", + "Ġ} ),", + "Ġ}) ,", + ". \"ĊĊĊ", + ".\" ĊĊĊ", + ".\"ĊĊ Ċ", + ".\"Ċ ĊĊ", + "_ functions", + "_function s", + "_fun ctions", + "ĉ to", + "ĉt o", + ". eval", + ".e val", + ".ev al", + "ĠT Object", + "ĠTO bject", + "Re ferences", + "Reference s", + "Refer ences", + "Ġh eated", + "Ġhe ated", + "Ġheat ed", + "H AL", + "HA L", + "Ġ ))}Ċ", + "Ġ) )}Ċ", + "Ġ)) }Ċ", + "} $", + "ĠB arr", + "ĠBar r", + "ĠBa rr", + "_ UNIT", + "_UN IT", + "+ $", + "Ġ getValue", + "Ġget Value", + "i ped", + "ip ed", + "ipe d", + "ch ied", + "chie d", + "chi ed", + "( vm", + "(v m", + "c ue", + "cu e", + "_ integer", + "_int eger", + "_ course", + "_c ourse", + "_co urse", + "th ird", + "Ġre vised", + "Ġrev ised", + "Ġrevis ed", + "Ġrevise d", + "* */Ċ", + "** /Ċ", + "_ DIRECT", + "_D IRECT", + "_DIR ECT", + "_DI RECT", + "Out Of", + "( \"(", + "(\" (", + "Ġ Feel", + "ĠF eel", + "ĠFe el", + "ĠFee l", + "Ġre ass", + "Ġ subtitle", + "Ġsub title", + "Ġsubt itle", + "p eri", + "pe ri", + "per i", + "n f", + "Ġenjoy s", + "Ġenjo ys", + "Ġtreat s", + "Ġtre ats", + ") this", + ")t his", + "- tabs", + "-t abs", + "-tab s", + "an cers", + "ance rs", + "anc ers", + "ancer s", + "Ġ continent", + "Ġcont inent", + "Ġcontin ent", + "Ġcar dio", + "Ġcard io", + "Ġcardi o", + "S er", + "Se r", + ". question", + ".q uestion", + ".qu estion", + ".quest ion", + "Ġph rases", + "Ġphrase s", + "Valid ators", + "Validator s", + "Ġpop ul", + "Ġ lÃŃ", + "Ġl ÃŃ", + "s ong", + "so ng", + "son g", + "_ INTERNAL", + "_IN TERNAL", + "_INTER NAL", + "Ġadv iser", + "Ġadvis er", + "Ġadvise r", + "Ġp uzz", + "Ġpu zz", + "Ġamb itious", + "Ġambit ious", + "ĠT ob", + "ĠTo b", + "Ġ DP", + "ĠD P", + "Ġpres idency", + "Ġsur render", + "Ġsurre nder", + "Ġw atches", + "Ġwatch es", + "Ġwat ches", + "_ binary", + "_b inary", + "_bin ary", + "Ġ Soon", + "ĠS oon", + "ĠSo on", + "Ġcan ada", + "(\" \")Ċ", + "(\"\" )Ċ", + "(\"\") Ċ", + "] ='", + "]= '", + "Ġ Brandon", + "ĠBr andon", + "ĠBrand on", + "ĠBra ndon", + "ĠBran don", + "e psilon", + "eps ilon", + "r w", + ". addChild", + ".add Child", + ". Copy", + ".C opy", + ".Co py", + "Pr incipal", + "Ph otos", + "Photo s", + "Phot os", + "Ġmargin al", + "Ġmarg inal", + "Ġb asics", + "Ġbas ics", + "Ġbasic s", + "e ing", + "ei ng", + "ein g", + "M ust", + "Mu st", + "Mus t", + "_ String", + "_S tring", + "_Str ing", + "_St ring", + "Ġ ole", + "Ġo le", + "Ġol e", + "M agento", + "Mag ento", + ". customer", + ".c ustomer", + ".custom er", + "( prev", + "(p rev", + "(pr ev", + "(pre v", + "ภ¥", + "Ġlo yalty", + "Ġloyal ty", + "C og", + "Co g", + "Ġ protocols", + "Ġprot ocols", + "Ġprotocol s", + "Ġproto cols", + "Ġ Companies", + "ĠCom panies", + "Ġthe oretical", + "Ġtheoret ical", + "Ġtheor etical", + "Ġaccess ing", + "Ġacces sing", + "Ġ Zen", + "ĠZ en", + "ĠZe n", + ". ones", + ".on es", + ".o nes", + ".one s", + "att ice", + "atti ce", + "_ world", + "_w orld", + "z es", + "ze s", + "Ġtatto o", + "Ġtat too", + "Ġm enos", + "Ġme nos", + "Ġmen os", + "Ġmeno s", + "Ġ intersect", + "Ġinter sect", + "Ġinters ect", + "\" ];ĊĊ", + "\"] ;ĊĊ", + "\"];Ċ Ċ", + "\"]; ĊĊ", + "be lie", + "bel ie", + "Ġ inactive", + "Ġin active", + ".read line", + "-label led", + ". done", + ".d one", + ".do ne", + "lic kr", + "lick r", + "Ġ WORK", + "ĠW ORK", + "Ġder ivative", + "Ġderiv ative", + "Ġd atabases", + "Ġdata bases", + "Ġdatabase s", + "Ġdatab ases", + "âĤ Ĥ", + "Ġ sx", + "Ġs x", + ". isArray", + ".is Array", + "Ġ ys", + "Ġy s", + "Ġp ada", + "Ġpa da", + "Ġpad a", + "Ġ Bullet", + "ĠB ullet", + "ĠBul let", + "ĠBull et", + "(` /", + "is Active", + "Ġ CGSize", + "ĠCG Size", + "( equalTo", + "(equal To", + "ĠColum bus", + "Ġm arry", + "Ġmar ry", + "D EV", + "DE V", + "_ limits", + "_l imits", + "_limit s", + "_li mits", + "_lim its", + "r ones", + "ro nes", + "ron es", + "rone s", + "I AS", + "IA S", + "Ġ tau", + "Ġt au", + "Ġta u", + "m ino", + "min o", + "mi no", + "_ Write", + "_W rite", + "ĠW ine", + "ĠWin e", + "ĠWi ne", + "Ġ [['", + "Ġ[ ['", + "Ġ[[ '", + "Ġ Pull", + "ĠP ull", + "ĠPu ll", + "ĠPul l", + "ri ters", + "rit ers", + "rite rs", + "riter s", + "r ients", + "ri ents", + "rie nts", + "rient s", + "rien ts", + "Ġsh ifting", + "Ġshift ing", + "u pp", + "up p", + "_ TIMER", + "_T IMER", + "_TIME R", + "_TIM ER", + "_TI MER", + "Ġ Conditions", + "ĠCondition s", + "ĠCond itions", + "Ạ¥", + "Ġ Orders", + "ĠOr ders", + "ĠOrder s", + "ĠOrd ers", + "Ġ Strength", + "ĠSt rength", + "ĠStr ength", + "ĠStre ngth", + "æī Ģ", + "Ġval idity", + "Ġvalid ity", + "Ġf ot", + "Ġfo t", + "e tur", + "et ur", + "etu r", + "Ġ bolt", + "Ġb olt", + "Ġbo lt", + "Ġbol t", + "åĨ ħ", + "Ġ Along", + "ĠA long", + "ĠAl ong", + "ĠAlo ng", + "o shi", + "os hi", + "osh i", + "Ġassum ptions", + "Ġassumption s", + "Ġmag azines", + "Ġmagazine s", + "_ SPI", + "_S PI", + "_SP I", + "Ġp unt", + "Ġpun t", + "Ġpu nt", + "_ PRODUCT", + "_PRO DUCT", + "_PROD UCT", + "Ġ relay", + "Ġre lay", + "Ġr elay", + "Ġrel ay", + "Ġ Javascript", + "ĠJ avascript", + "ĠJava script", + ". te", + ".t e", + "- es", + "-e s", + "Ġ widgets", + "Ġwidget s", + "Ġwid gets", + "( fs", + "(f s", + "< Item", + " \";", + ">\" ;", + "at ching", + "atch ing", + "Ġ Knowledge", + "ĠK nowledge", + "ĠKnow ledge", + "ĉ The", + "ĉT he", + "; margin", + ";m argin", + "less ness", + "o pard", + "op ard", + "opa rd", + "u matic", + "um atic", + "uma tic", + "umat ic", + "( )));čĊ", + "() ));čĊ", + "()) );čĊ", + "())) ;čĊ", + "())); čĊ", + "Ġf als", + "Ġfa ls", + "Ġfal s", + "( cache", + "(c ache", + "(ca che", + "Type Id", + "éĢ ļ", + "_ choice", + "_ch oice", + "ĠG oth", + "ĠGo th", + "ĠGot h", + "Ġ Sites", + "ĠS ites", + "ĠSi tes", + "ĠSite s", + "ĠSit es", + "M G", + "_ border", + "_b order", + "Ind ices", + "Com parer", + "Comp arer", + "Compar er", + "Compare r", + "ĠRe distribution", + "ĠRed istribution", + "ĠRedis tribution", + "Ġclose t", + "Ġclos et", + "Ġclo set", + "Ġvers atile", + "Ġversa tile", + "In puts", + "Input s", + "**** ****************", + "******** ************", + "**************** ****", + "****** **************", + "************ ********", + "************** ******", + "Ġob esity", + "qu iz", + "qui z", + "g ra", + "gr a", + "( global", + "(g lobal", + "åĬ ¡", + "Ġ collector", + "Ġcol lector", + "Ġcoll ector", + "Ġcollect or", + "Ġcolle ctor", + "Ġ kor", + "Ġk or", + "Ġko r", + "o vable", + "ov able", + "ova ble", + "A DC", + "AD C", + "Ġ EventHandler", + "ĠEvent Handler", + ". nc", + ".n c", + "Ġplay back", + "ient os", + "ien tos", + "iento s", + "_ perm", + "_p erm", + "_per m", + "_pe rm", + "_ WARNING", + "_W ARNING", + "_WARN ING", + "ĠOlymp ics", + "ĠOlympic s", + ". norm", + ".n orm", + ".no rm", + "Ġ Broadcast", + "ĠB roadcast", + "ĠBroad cast", + "_ small", + "_s mall", + "_sm all", + "d rive", + "dr ive", + ". iloc", + ".i loc", + ".il oc", + "Ġ typed", + "Ġt yped", + "Ġtype d", + "Ġtyp ed", + "Ġty ped", + "M EM", + "ME M", + "_ cons", + "_c ons", + "_con s", + "_co ns", + "D METHOD", + "DM ETHOD", + "Ġ lun", + "Ġl un", + "Ġlu n", + ". distance", + ".d istance", + ".di stance", + ".dist ance", + "( par", + "(p ar", + "(pa r", + "p oon", + "po on", + "Ġ bast", + "Ġb ast", + "Ġbas t", + "Ġba st", + "act ivities", + "activ ities", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + ": čĊčĊ", + ":čĊ čĊ", + "S ER", + "SE R", + ") &&", + ")& &", + "_ lst", + "_l st", + "_ls t", + "ĠPol ish", + "ĠPo lish", + "Ġkn ocked", + "Ġknock ed", + "Ġfrustr ation", + "au kee", + "Ġph osph", + "iqu id", + "iq uid", + "_ coeff", + "_c oeff", + "_co eff", + "_coef f", + "æŃ ¤", + "L atest", + "La test", + "Lat est", + "Late st", + "ĠD ust", + "ĠDu st", + "T ipo", + "Tip o", + "Ti po", + "Ġmain tains", + "Ġmaint ains", + "Ġmaintain s", + "Ġ marsh", + "Ġmar sh", + "Ġmars h", + "inc inn", + "inci nn", + "l bl", + "lb l", + "C are", + "Car e", + "Ca re", + "Ġneighborhood s", + "_ gpio", + "_g pio", + "_gp io", + "ĠAr senal", + "ĠArs enal", + "D em", + "De m", + "ĠW he", + "ĠWh e", + "_ hook", + "_h ook", + "Ġl dc", + "Ġld c", + "ĠHar per", + "ĠBer keley", + "Ġgrad uated", + "Ġgraduate d", + "Ġgradu ated", + "Per cent", + "Ġarr iving", + "Ġarriv ing", + "Ġ Adventure", + "ĠAd venture", + "ĠAdvent ure", + "( scope", + "(s cope", + "(sc ope", + "( '*", + "(' *", + "qu arter", + "ĠM arie", + "ĠMar ie", + "ĠMa rie", + "ĠMari e", + "Spe aking", + "Speak ing", + "_ codegen", + "_code gen", + "_cod egen", + "Ġim mun", + "Ġimm un", + "c aster", + "ca ster", + "cast er", + "cas ter", + "ãĤ Į", + "åķ Ĩ", + "Ġ Dimensions", + "ĠDim ensions", + "ĠDimension s", + ". record", + ".re cord", + ".rec ord", + "Ġ texto", + "Ġtext o", + "Ġtex to", + "Ġ Michelle", + "ĠMich elle", + "ĠMichel le", + "ĠMiche lle", + "P ending", + "Pen ding", + "( by", + "(b y", + "_ PAR", + "_P AR", + "_PA R", + "u cht", + "uch t", + "uc ht", + "b ee", + "be e", + ". Thread", + ".T hread", + ".Th read", + "am pire", + "amp ire", + "k now", + "kn ow", + "Ġ Clinical", + "ĠClin ical", + "ĠClinic al", + "Ġmargin Bottom", + "Ġd istinguish", + "Ġdistingu ish", + ". Full", + ".F ull", + ". undefined", + ".un defined", + "ĠSequ elize", + "#### ########################################################################", + "################ ############################################################", + "################################################################ ############", + "############ ################################################################", + "################################################ ############################", + "######################################################################## ####", + "############################ ################################################", + "############################################################ ################", + "Ġ educated", + "Ġeduc ated", + "Ġeducate d", + "_ OVER", + "_O VER", + "åº ı", + "Ġ ÂłĠÂł", + "ĠÂł ĠÂł", + "ĠÂłĠ Âł", + "_ each", + "_e ach", + "Ġ urge", + "Ġur ge", + "Ġurg e", + "de part", + "dep art", + "Ġdon ors", + "Ġdonor s", + "Ġ Au", + "ĠA u", + "Ġb illions", + "Ġbill ions", + "Ġbillion s", + "Ġbelong ing", + "_ age", + "_a ge", + "_ag e", + "_ Int", + "_I nt", + "_In t", + "Ġsub stances", + "Ġsubstance s", + "Ġsubst ances", + "m achine", + "ma chine", + "mach ine", + "! !!ĊĊ", + "!! !ĊĊ", + "!!! ĊĊ", + "!!!Ċ Ċ", + "Ġjson ify", + "ib bean", + "Ġ Cad", + "ĠC ad", + "ĠCa d", + "Ġ endTime", + "Ġend Time", + "Ġc ycling", + "Ġcy cling", + "Ġcycl ing", + "Ġcyc ling", + "Ġ UITextField", + "ĠUI TextField", + "ĠUIT extField", + "Ġle verage", + "Ġlever age", + "Ġleve rage", + "Ġvan illa", + "e at", + "ea t", + "L aunch", + "La unch", + "( pt", + "(p t", + "st ates", + "state s", + "stat es", + "sta tes", + "Ġ Controls", + "ĠControl s", + "ĠContr ols", + "Ġ Respons", + "ĠRes pons", + "ĠResp ons", + "Ġ Jake", + "ĠJ ake", + "ĠJa ke", + "ĠJak e", + "Ġa sleep", + "Ġas leep", + "fort unate", + ".next Line", + "Size Mode", + "ì Ŀ¼", + "ìĿ ¼", + "Testing Module", + "G erman", + "Ger man", + "ĠInvest ig", + ". reverse", + ".re verse", + ".rev erse", + "Ġ BACK", + "ĠB ACK", + "ĠBA CK", + "( DateTime", + "(Date Time", + "Ġnon profit", + "Ġ Expect", + "ĠEx pect", + "ĠExp ect", + "Ġt anto", + "Ġtan to", + "Ġtant o", + "' ]),", + "'] ),", + "']) ,", + "ĉ the", + "ĉt he", + "ĉth e", + "M ultiple", + "Multi ple", + "Mult iple", + "Multip le", + "(get Activity", + "_ WAIT", + "_W AIT", + "Ġj á", + "de cor", + "dec or", + "lev ance", + "Ġ GitHub", + "ĠGit Hub", + "m ination", + "min ation", + "mi nation", + "mina tion", + "_ quantity", + "_qu antity", + "_quant ity", + ". Scanner", + ".Sc anner", + ".Scan ner", + "ĠL ion", + "ĠLi on", + "éĶĻ 误", + "Ġ dre", + "Ġd re", + "Ġdr e", + "Ġtan tra", + "Ġtant ra", + "Ġtantr a", + "Ġ contentType", + "Ġcontent Type", + "Ġ fid", + "Ġf id", + "Ġfi d", + "_ alt", + "_a lt", + "_al t", + "NS IndexPath", + "- pl", + "-p l", + "åĮ ĸ", + "Ġantib iot", + "t ables", + "table s", + "ta bles", + "tab les", + "tabl es", + "a cial", + "ac ial", + "aci al", + "acia l", + "Ġ Registry", + "ĠReg istry", + "ĠRegistr y", + "Ġo live", + "Ġol ive", + "Ġoli ve", + "i gers", + "ig ers", + "ige rs", + "iger s", + "Ġ subscriber", + "Ġsub scriber", + "Ġsubscri ber", + "Ġsubscribe r", + "_ pres", + "_p res", + "_pr es", + "_pre s", + "Ġ Syntax", + "ĠS yntax", + "ĠSy ntax", + "ĠSyn tax", + "Ġl overs", + "Ġlo vers", + "Ġlove rs", + "Ġlover s", + "Ġlov ers", + ". Byte", + ".B yte", + ".By te", + "ol ders", + "old ers", + "older s", + "_ forward", + "_for ward", + "al ways", + "C aption", + "Cap tion", + "Ca ption", + "Capt ion", + "P riv", + "Pr iv", + "Pri v", + "ĠT ampa", + "ĠTam pa", + "is ateur", + "-labelled by", + "Ġ ToString", + "ĠTo String", + "Ġ ìĤ¬", + "Ġì Ĥ¬", + "ĠìĤ ¬", + "Ġinit iated", + "Ġiniti ated", + "Ġinitiate d", + "W F", + "Ġinstitution al", + "in ject", + "Ġ Scr", + "ĠS cr", + "ĠSc r", + "Ġ doctrine", + "Ġdo ctrine", + "Ġdoctr ine", + "Ġsp acious", + "Ġspac ious", + "i sure", + "is ure", + "isu re", + "Ġ Ana", + "ĠA na", + "ĠAn a", + "\" time", + "ess aging", + "essa ging", + "Ġ cid", + "Ġc id", + "Ġci d", + "ĠN an", + "ĠNa n", + "Ġin complete", + "Ġincom plete", + "T AG", + "TA G", + "- build", + "-b uild", + "Dec ember", + "Ġres idual", + "Ġresid ual", + "( PDO", + "(P DO", + "Ġ Listen", + "ĠL isten", + "ĠList en", + "ĠLi sten", + "ĠLis ten", + "ĠListe n", + "Ġ glyph", + "Ġg lyph", + "Ġgly ph", + "Ġg aps", + "Ġgap s", + "Ġga ps", + "n ea", + "ne a", + ". Rect", + ".R ect", + ".Re ct", + ".Rec t", + "Ġs au", + "Ġsa u", + "ĠPhoto graph", + "ĠPhot ograph", + "Ġ executable", + "Ġexec utable", + "Ġexecut able", + "Ġ Expert", + "ĠEx pert", + "ĠExp ert", + "Co routine", + "Cor outine", + "_ sizes", + "_s izes", + "_size s", + "_si zes", + "Ġ NL", + "ĠN L", + ". isValid", + ".is Valid", + ") ;}Ċ", + "); }Ċ", + ");} Ċ", + "- reg", + "-r eg", + "-re g", + "Ġc iting", + "Ġcit ing", + "Ġci ting", + "c wd", + "cw d", + "ĠOtt awa", + "ĠB att", + "ĠBa tt", + "ĠBat t", + "Ġrenew able", + "Ġprelim inary", + "Ġas ylum", + "Ġw rist", + "Ġwr ist", + "Ġutil iz", + "Ġut iliz", + "Ġdet ention", + "F ast", + "Fa st", + "Ġ ange", + "Ġa nge", + "Ġan ge", + "Ġang e", + "incinn ati", + "Ġste ering", + "Ġsteer ing", + "Ġ NaN", + "ĠN aN", + "ĠNa N", + "i osity", + "ios ity", + "/ page", + "/p age", + "Ġ è¿", + "Ġè ¿", + "ster ol", + "ste rol", + "Ġdis g", + "Ġdi sg", + "( DB", + "(D B", + "Ġ DESCRIPTION", + "ĠDE SCRIPTION", + "ĠDESC RIPTION", + "Ġ _$", + "Ġ_ $", + "Ġob stacle", + "Ġobst acle", + "Ġb izarre", + "Ġex traction", + "Ġext raction", + "Ġextra ction", + "Ġextract ion", + "Ġextr action", + "_ expected", + "_ex pected", + "_exp ected", + "_expect ed", + "Ġ loses", + "Ġl oses", + "Ġlo ses", + "Ġlos es", + "Ġlose s", + "Ġ Celebr", + "ĠCele br", + "Ġhtml For", + "Ġexp loit", + "Ġexpl oit", + "Ġexplo it", + "олÑĮз ов", + "X YZ", + "XY Z", + "Ġm agnet", + "Ġmag net", + "Ġmagn et", + "am ped", + "amp ed", + "Ġ atoms", + "Ġat oms", + "Ġatom s", + "S ources", + "Source s", + "pect ives", + "pective s", + "Ñģ ли", + "Ñģл и", + "Ġ= čĊ", + "Ġd are", + "Ġda re", + "Ġdar e", + "ĠW alter", + "ĠWal ter", + "ĠWalt er", + "Ġ brightness", + "Ġb rightness", + "Ġbright ness", + "Ġ annotations", + "Ġan notations", + "Ġannotation s", + "Ġannot ations", + "ë ı", + "is ke", + "isk e", + "S chedule", + ". images", + ".image s", + ".im ages", + ".imag es", + "ross o", + "ros so", + "Ġ \"..", + "Ġ\" ..", + "Ġ\". .", + "g amma", + "ga mma", + "gam ma", + "Ġin structor", + "Ġinstr uctor", + "Ġinstruct or", + "Ġ overwrite", + "Ġover write", + "- am", + "-a m", + "Ġdevast ating", + "ĠSaint s", + "ĠSa ints", + "ĠSai nts", + "Ġ hs", + "Ġh s", + "Ġbon uses", + "Ġbonus es", + "$ output", + "$out put", + "i jd", + "ij d", + "(Action Event", + "m onitor", + "mon itor", + "Ġmatt ress", + "Jan uary", + ". jp", + ".j p", + "Ġcar acter", + "Ġcara cter", + "Ġcaract er", + "Ġim pose", + "Ġimp ose", + "_ rest", + "_re st", + "_r est", + "_res t", + "Ġ Signature", + "ĠSign ature", + "ĠSig nature", + "Ġcoron avirus", + "ãģ Ĭ", + "_ compare", + "_com pare", + "_comp are", + "Me asure", + "it ated", + "ita ted", + "itate d", + "itat ed", + "e lijk", + "el ijk", + "eli jk", + "i gos", + "ig os", + "igo s", + "e sar", + "es ar", + "esa r", + "Ġr ushed", + "Ġru shed", + "Ġrush ed", + "Ġrus hed", + "m etry", + "me try", + "met ry", + "_SE PARATOR", + "_ WE", + "_W E", + "_ ATTRIBUTE", + "_ATTR IBUTE", + "_ATTRIB UTE", + "Ġ yaml", + "Ġy aml", + "Ġya ml", + "Ġ specs", + "Ġsp ecs", + "Ġspec s", + "Ġspe cs", + "ĠR ah", + "ĠRa h", + "ph eric", + "pher ic", + "phe ric", + "ĠIn vestment", + "ĠInvest ment", + "ä ll", + "äl l", + "Ġappe aling", + "Ġappeal ing", + "Ġ viewport", + "Ġview port", + "ç ©", + "Ġ marginLeft", + "Ġmargin Left", + "Ġ subtract", + "Ġsub tract", + "Ġsubt ract", + "Ġ EDIT", + "ĠED IT", + "ĉ ArrayList", + "ĉArray List", + "gr ading", + "grad ing", + "gra ding", + "Ġ Failure", + "ĠF ailure", + "ĠFail ure", + "as per", + "asp er", + "E EK", + "EE K", + "( now", + "(n ow", + "(no w", + "< object", + "Ġ Alignment", + "ĠAl ignment", + "ĠAlign ment", + "ple ado", + "q tt", + "qt t", + "( ERROR", + "(ERR OR", + "Ġ INVALID", + "ĠIN VALID", + "Ġ userid", + "Ġuse rid", + "Ġuser id", + "r aises", + "ra ises", + "raise s", + "rais es", + "rai ses", + "I DI", + "ID I", + "Ġv ariance", + "Ġvar iance", + "Ġvari ance", + "Ġ Nil", + "ĠN il", + "ĠNi l", + "/ delete", + "/de lete", + "_ MAIN", + "_M AIN", + "_MA IN", + ". Token", + ".T oken", + ".To ken", + ". Category", + ".C ategory", + "> )Ċ", + ">) Ċ", + "C ollision", + "Coll ision", + "Ġ Greater", + "ĠG reater", + "ĠGreat er", + "ĠGre ater", + "ĠR acing", + "ĠRa cing", + "ĠRac ing", + "a lan", + "al an", + "ala n", + "Ġmon etary", + "Ġmonet ary", + ", new", + ",n ew", + "Ġ Sorry", + "ĠS orry", + "ĠSor ry", + ". Enable", + ".E nable", + ".En able", + "Ġ Instantiate", + "ĠIn stantiate", + "ĠInstant iate", + "o llen", + "ol len", + "oll en", + "olle n", + "ë© ´", + "Ġ Calling", + "ĠC alling", + "ĠCal ling", + "ĠCall ing", + "_ hour", + "_h our", + "A DA", + "AD A", + "Ġs hy", + "Ġsh y", + ") **", + ")* *", + "Ġ ==>", + "Ġ= =>", + "Ġ== >", + "Ġe special", + "Ġes pecial", + "Ġesp ecial", + "Ġespec ial", + "Ġ interpreted", + "Ġinterpret ed", + "Ġinterpre ted", + "! =\"", + "!= \"", + "Ġph armacy", + "Ġpharm acy", + "Ġpharmac y", + ". single", + ".s ingle", + ".sin gle", + ".si ngle", + "ĠC ialis", + "ĠCi alis", + "Ġp aras", + "Ġpar as", + "Ġpara s", + "Ġpa ras", + ". toUpperCase", + ".to UpperCase", + "Ġ Demon", + "ĠD emon", + "ĠDe mon", + "ĠDem on", + "ĠDemo n", + "Pr ime", + "Prim e", + "Pri me", + "Ġrank ings", + "Ġranking s", + "Add ing", + "Ad ding", + "_ HASH", + "_H ASH", + "_HAS H", + "Ġ Exam", + "ĠEx am", + "Ú ©", + "ĠV ictor", + "ĠVi ctor", + "ĠVict or", + "ĠVic tor", + "Ok ay", + "\" ];čĊ", + "\"] ;čĊ", + "\"]; čĊ", + "Ġ fortune", + "Ġfort une", + "Ġ FETCH", + "ĠF ETCH", + "exp and", + ". Interop", + ".Inter op", + "Ġb arn", + "Ġbar n", + "Ġba rn", + "æ ¶Ī", + "æ¶ Ī", + "ue vo", + "Ġspec ulation", + "âĶĢâĶĢ âĶĢâĶĢ", + "Ġ Nu", + "ĠN u", + "ĠBl ues", + "ĠBlue s", + "ĠBlu es", + "( fname", + "(f name", + "(fn ame", + "Ġin habit", + "Ġinhab it", + "Ġinh abit", + "Ġ\\ \"%", + "Ġ\\\" %", + "C ES", + "CE S", + "ul ario", + "ular io", + "ula rio", + "_ cr", + "_c r", + "Ġ validated", + "Ġvalid ated", + "Ġvalidate d", + "Ġvalida ted", + "Ġmid night", + "an king", + "ank ing", + "anki ng", + "Ġincor porate", + "Ġincorpor ate", + "Ġpur suit", + "Ġpurs uit", + "E XP", + "EX P", + "pr ime", + "prim e", + "pri me", + "P id", + "Pi d", + "- US", + "-U S", + "ĠN urs", + "ĠNu rs", + "ĠNur s", + "Ġ Wheel", + "ĠW heel", + "ĠWh eel", + "ĠWhe el", + "é ĺ", + "Ġ inp", + "Ġin p", + "Ġi np", + "Ġsupport ive", + ". member", + ".m ember", + ".mem ber", + "Ġ Shot", + "ĠS hot", + "ĠSh ot", + "ĠSho t", + ". CheckBox", + ".Check Box", + "Ġaff irm", + "Ġaf firm", + "T or", + "To r", + "Full Year", + "Ġconsider ably", + "c redentials", + "cred entials", + "credential s", + "_ opts", + "_op ts", + "_o pts", + "_opt s", + "R oll", + "Ro ll", + "Rol l", + "( round", + "(r ound", + "(ro und", + "Ġc oment", + "Ġcom ent", + "Ġco ment", + "Ġcome nt", + "_ UART", + "_U ART", + "Ġext ending", + "Ġextend ing", + "R G", + "result ado", + "i tu", + "it u", + ". getSession", + ".get Session", + ".getS ession", + "Ġat traction", + "Ġatt raction", + "Ġattr action", + "Ġattract ion", + "& D", + "$ html", + "$h tml", + "Ġ Jessica", + "ĠJess ica", + "Ġ Associate", + "ĠAssoci ate", + "ĠAssoc iate", + "a ñ", + "_ ed", + "_e d", + "ĠL ag", + "ĠLa g", + "Ġorig ins", + "Ġorigin s", + "( ))->", + "() )->", + "()) ->", + "add EventListener", + "IA LOG", + "IAL OG", + "åIJ ¦", + ". Compare", + ".Com pare", + ".Comp are", + "Al bum", + "ĠK u", + "< Q", + "ar gest", + "arg est", + "arge st", + "arges t", + "Ġpro long", + "Ġprol ong", + "Ġconfig urations", + "Ġconfiguration s", + "Ġconfigur ations", + "Ġacc identally", + "Ġaccident ally", + "Ġaccidental ly", + "_ photo", + "_ph oto", + "Ġ' ';čĊ", + "Ġ'' ;čĊ", + "Ġ''; čĊ", + "Ġ verse", + "Ġv erse", + "Ġver se", + "Ġvers e", + "B ob", + "Bo b", + "Ġf arming", + "Ġfar ming", + "Ġfarm ing", + "d elivery", + "del ivery", + "deliver y", + "ĠM ack", + "ĠMac k", + "ĠMa ck", + "Ġuse Selector", + ".bootstrap cdn", + "ke eping", + "keep ing", + "kee ping", + "e ny", + "en y", + ". upload", + ".up load", + "Ġ METHOD", + "ĠM ETHOD", + "ĠMETH OD", + "c reator", + "cre ator", + "creat or", + "< _", + "ĠE aster", + "ĠEast er", + "ĠEa ster", + ". --", + ".- -", + "UI Button", + "ãĤ ī", + "om eters", + "ome ters", + "omet ers", + "ometer s", + "Ġ shine", + "Ġsh ine", + "Ġshin e", + "Ġh ogy", + "Ġho gy", + "Ġhog y", + "\\ s", + "Ġh arness", + "Ġhar ness", + ". Cell", + ".C ell", + "Ġ lifting", + "Ġl ifting", + "Ġlif ting", + "Ġlift ing", + "Ġcomb ines", + "Ġcombine s", + "Ġcombin es", + "Ġ Occup", + "ĠOcc up", + "ĠOc cup", + "ex clude", + "exc lude", + "p atial", + "pat ial", + "Ġre spir", + "Ġres pir", + "Ġresp ir", + "_ fit", + "_f it", + "Ġf ifty", + "Ġfi fty", + "Ġfif ty", + "ĠM ol", + "ĠMo l", + "Ġt uned", + "Ġtu ned", + "Ġtun ed", + "Ġtune d", + "-d imensional", + "Ġ qs", + "Ġq s", + "Ġt ops", + "Ġto ps", + "Ġtop s", + "> \";ĊĊ", + ">\";Ċ Ċ", + ">\" ;ĊĊ", + ">\"; ĊĊ", + "quis ite", + "qui site", + "ch annels", + "chan nels", + "channel s", + "/ res", + "/r es", + "/re s", + "Ġ Analytics", + "ĠAn alytics", + "ĠAnaly tics", + ".app compat", + "/ to", + "/t o", + "Ġon Error", + "( attr", + "(at tr", + "(att r", + "I RM", + "IR M", + "Ġrag az", + "- as", + "-a s", + ". Second", + ".Se cond", + "ori ented", + "orient ed", + "Ġd onn", + "Ġdo nn", + "Ġdon n", + "Ġlight ning", + "f id", + "fi d", + "ĠP le", + "ĠPl e", + "ãģ¾ ãģĻ", + "t ro", + "tr o", + ". True", + ".Tr ue", + "O bservable", + "Observ able", + "× Ļ", + "um bing", + "umb ing", + "Ġpros pective", + "Ġprospect ive", + "- filter", + "-f ilter", + "Ġpurs uant", + "( points", + "(p oints", + "(point s", + "(po ints", + ". Bind", + ".B ind", + "Ġp alm", + "Ġpa lm", + "Ġpal m", + "clear fix", + "ö s", + "ĠG onz", + "ĠGo nz", + "ĠGon z", + "Ġwe aken", + "Ġweak en", + "D rive", + "Dr ive", + "en ido", + "eni do", + "l ld", + "ll d", + "o box", + "ob ox", + "obo x", + "an ean", + "ane an", + "G ot", + "Go t", + "ä¿ Ŀ", + "Reg ex", + "æ ĥ", + "Ġsa lad", + "Ġsal ad", + "Ġsala d", + "as sis", + "ass is", + "assi s", + "\" net", + "inherit Doc", + "Ġ RV", + "ĠR V", + "qu ier", + "qui er", + "Ġ clazz", + "Ġcl azz", + "Ġcla zz", + "ı ÅŁ", + "oster one", + "oste rone", + "Ġair line", + "Ġairl ine", + ".list dir", + "Ġdown loading", + "Ġdownload ing", + "ĠP alm", + "ĠPal m", + "ĠPa lm", + "w aukee", + "& lt", + ". BL", + ".B L", + "_ INLINE", + "_IN LINE", + "of fs", + "off s", + "< <(", + "<< (", + "_ news", + "_n ews", + "_new s", + "_ne ws", + "Ġch ase", + "Ġcha se", + "/ ><", + "/> <", + "Ġe uros", + "Ġeu ros", + "Ġeuro s", + "ĠEgypt ian", + "ĠSt ainless", + "_ BOOL", + "_BO OL", + "Ġ Guild", + "ĠG uild", + "ĠGu ild", + "ĠGui ld", + "ĠGuil d", + "ĠD ynam", + "ĠDy nam", + "ĠDyn am", + "[ indexPath", + "[index Path", + "Ġ ï", + "Ġmem orable", + "Ġmemor able", + "ĠCh ampion", + "ĠChamp ion", + "Resource Manager", + ". Login", + ".Log in", + ".Lo gin", + "Ġ Former", + "ĠFor mer", + "ĠForm er", + "y ped", + "ype d", + "yp ed", + "Ġl leg", + "Ġll eg", + "Ġlle g", + "; \",", + ";\" ,", + "D WORD", + "DW ORD", + "Ġtax i", + "Ġta xi", + "Ġb ombs", + "Ġbomb s", + "Ġbom bs", + "r ah", + "ra h", + ". tags", + ".t ags", + ".tag s", + ".ta gs", + "_ tests", + "_t ests", + "_test s", + "_te sts", + "s tones", + "st ones", + "ston es", + "stone s", + "sto nes", + "âĢĿ )", + "[ g", + "r type", + "rt ype", + "Ġ vu", + "Ġv u", + "Ġhost ile", + "Ġho stile", + "Ġhos tile", + "Ch ars", + "Char s", + "Cha rs", + "ĠPatri ots", + "ĠPatriot s", + "/ status", + "/s tatus", + "/st atus", + "/stat us", + "< B", + "Ġ Income", + "ĠIn come", + "ĠInc ome", + "ĠD ad", + "ĠDa d", + "Ġpat rol", + "_ CHANGE", + "_CH ANGE", + "_CHAN GE", + "Ġup graded", + "Ġupgrade d", + "Ġ china", + "Ġch ina", + "Ġchi na", + "Ġchin a", + "set q", + "Start ed", + "Star ted", + ".U ndef", + ".Un def", + "Ġ checksum", + "Ġcheck sum", + "Ġchecks um", + "Ġfrustr ated", + "{ o", + "Ġe nf", + "Ġen f", + "Ġ woods", + "Ġw oods", + "Ġwood s", + "Ġwo ods", + "Ġwoo ds", + "Ġ Anyone", + "ĠAny one", + "En code", + "Enc ode", + "ĠQt Widgets", + "a reas", + "are as", + "area s", + "Ġsh eer", + "Ġshe er", + "s ki", + "sk i", + "end point", + "_ Test", + "_T est", + "S oup", + "So up", + "Sou p", + "~~~~~~~~ ~~~~~~~~", + "( files", + "(f iles", + "(file s", + "(fi les", + "(fil es", + "ĉ ĉĉĉĉčĊ", + "ĉĉ ĉĉĉčĊ", + "ĉĉĉĉ ĉčĊ", + "ĉĉĉ ĉĉčĊ", + "ĉĉĉĉĉ čĊ", + ". spark", + ".s park", + ".sp ark", + "Ġvalue d", + "Ġval ued", + "Ġvalu ed", + "Ġ %Ċ", + "Ġ% Ċ", + ". controls", + ".control s", + "ĠXCTAssert Equal", + "Ġf ame", + "Ġfam e", + "Ġfa me", + "ĠR ic", + "ĠRi c", + "D OT", + "DO T", + "ĠAlbert a", + "ĠAlb erta", + "ä½ ¿", + "o sal", + "os al", + "osa l", + ".Web Controls", + "Ġ ------------", + "Ġ- -----------", + "Ġ-- ----------", + "Ġ---- --------", + "Ġ--- ---------", + "Ġ----- -------", + "Ġ---------- --", + "Ġ------ ------", + "Ġ-------- ----", + "Ġ------- -----", + "Ġ--------- ---", + "Ġ----------- -", + "Ġ Mis", + "ĠM is", + "ĠMi s", + "Ġ SYS", + "ĠS YS", + "ĠSY S", + "Non null", + "= item", + "=i tem", + "Ġ expire", + "Ġex pire", + "Ġexp ire", + "De code", + "Dec ode", + "_ operation", + "_op eration", + "_o peration", + "_oper ation", + "Ġ Validator", + "ĠValid ator", + ". CENTER", + ".C ENTER", + "uff s", + "uf fs", + "* m", + "Ġa vant", + "Ġav ant", + "Ġava nt", + "Ġavan t", + "æ¬ ¡", + "âĢľ You", + ". permission", + ".per mission", + ".perm ission", + ".. .)", + "... )", + "Ġ Lic", + "ĠL ic", + "ĠLi c", + "_ coords", + "_co ords", + "_coord s", + ". nombre", + ".n ombre", + ".nom bre", + "c lo", + "cl o", + ". Internal", + ".In ternal", + ".Int ernal", + ".Inter nal", + "Ġ Cho", + "ĠC ho", + "ĠCh o", + "_ sw", + "_s w", + "ĉ Il", + "ĉI l", + "c lk", + "cl k", + "Ġ castle", + "Ġc astle", + "Ġcas tle", + "Ġcast le", + "( layer", + "(l ayer", + "p it", + "pi t", + "Ġ guided", + "Ġgu ided", + "Ġguide d", + "Ġguid ed", + "Ġgui ded", + "Ġ âĸĪ", + "Ġâĸ Ī", + "Ġsup erb", + "Ġsuper b", + "Ġsup plements", + "Ġsupplement s", + "Ġsuppl ements", + "Ġsupp lements", + "_ cent", + "_c ent", + "_ce nt", + "Ġ peek", + "Ġpe ek", + "Ġpee k", + "IN ARY", + "INA RY", + ". ContentAlignment", + ".Content Alignment", + "f alls", + "fall s", + "fal ls", + "\" ));", + "\") );", + "\")) ;", + "W all", + "Wal l", + "Wa ll", + ") .čĊ", + "). čĊ", + "Ġ Danny", + "ĠD anny", + "ĠDan ny", + "ĠDann y", + "irm ingham", + "IAL IZ", + "( create", + "(c reate", + "\" In", + "\"I n", + "Service Provider", + "Ġpr iced", + "Ġprice d", + "Ġpri ced", + "m acro", + "ma cro", + "mac ro", + "a mac", + "am ac", + "ama c", + ". box", + ".b ox", + ".bo x", + "- ---Ċ", + "-- --Ċ", + "---- Ċ", + "--- -Ċ", + "ãĥ «", + "Ġ Suit", + "ĠS uit", + "ĠSu it", + "u rst", + "ur st", + "urs t", + "b ru", + "br u", + "ourn als", + "ournal s", + "num ero", + "numer o", + "_ _()Ċ", + "__ ()Ċ", + "__( )Ċ", + "__() Ċ", + "D as", + "Da s", + "ĠM itt", + "ĠMi tt", + "ĠMit t", + "u der", + "ud er", + "ude r", + "? \\", + "f u", + "[ B", + "Ġ: )ĊĊ", + "Ġ:) ĊĊ", + "Ġ:)Ċ Ċ", + "( inter", + "(int er", + "(in ter", + "br ains", + "bra ins", + "brain s", + "Ġatt itudes", + "Ġattitude s", + "Ver ify", + "Ġsign atures", + "Ġsignature s", + "ack Bar", + "Ġ gd", + "Ġg d", + "J ack", + "Ja ck", + "Jac k", + ". cat", + ".c at", + ".ca t", + "Ġ zz", + "Ġz z", + "w arf", + "wa rf", + "war f", + "F TER", + "FT ER", + "\" );ĊĊĊ", + "\");Ċ ĊĊ", + "\") ;ĊĊĊ", + "\");ĊĊ Ċ", + "\"); ĊĊĊ", + "A live", + "Al ive", + "Ali ve", + "I CLE", + "IC LE", + "Ġ Whatever", + "ĠWh atever", + "ĠWhat ever", + "Ġ outlined", + "Ġout lined", + "Ġoutline d", + "s prite", + "sp rite", + "spr ite", + "е в", + "еР²", + "_ AB", + "_A B", + "_ DEPTH", + "_DE PTH", + "Ġcr ushed", + "Ġcrush ed", + "Ġcru shed", + "Ġcrus hed", + "a aa", + "aa a", + "( ev", + "(e v", + "æľ º", + "An ti", + "Ant i", + "I CO", + "IC O", + "is EqualTo", + "isEqual To", + ". sun", + ".s un", + "i culo", + "ic ulo", + "s ale", + "sa le", + "sal e", + "_ hex", + "_h ex", + "_he x", + "Ġ Vk", + "ĠV k", + "ap tor", + "apt or", + "Un ion", + "Uni on", + "Ġ Discount", + "ĠDis count", + "ĠDisc ount", + "ĠDisco unt", + "l ista", + "li sta", + "list a", + "lis ta", + ".Undef Or", + "Ġ automation", + "Ġa utomation", + "Ġautom ation", + "Ġautomat ion", + "N or", + "No r", + "å¯ ¹", + "åı Ĥæķ°", + "åıĤ æķ°", + "Ġre flex", + "Ġref lex", + "Ġrefl ex", + "ĠLa ure", + "ĠLaur e", + "ĠLau re", + ".showMessage Dialog", + ". temp", + ".t emp", + ".te mp", + ".tem p", + "Ġ akan", + "Ġa kan", + "Ġak an", + "Ġaka n", + "Ġ_ _____", + "Ġ__ ____", + "Ġ___ ___", + "Ġ____ __", + "Ġ_____ _", + ".Is True", + "A RED", + "AR ED", + "ARE D", + "a gle", + "ag le", + "E nergy", + "En ergy", + "Ġquant ities", + "âĢĻ é", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "Ġcitizens hip", + "Ġcitizen ship", + "m outh", + "mo uth", + "Ġin appropriate", + "Ġ Outdoor", + "ĠOut door", + "White Space", + "An onymous", + "lo ads", + "load s", + "webElement Properties", + "T en", + "Te n", + "Ġacc idents", + "Ġaccident s", + "Ġ advertisement", + "Ġad vertisement", + "Ġadvertis ement", + "Ġadvertise ment", + "ĠY emen", + "ĠYe men", + "( call", + "(c all", + "(cal l", + "(ca ll", + "Ġsl avery", + "Ġslave ry", + "Ġsla very", + "Ġslav ery", + "Ñģ п", + "ĠL am", + "ĠLa m", + "_ BITS", + "_B ITS", + "_BIT S", + "o mega", + "om ega", + "ome ga", + "ĠO le", + "ĠOl e", + "Ġkid n", + "Ġki dn", + "_ An", + "_A n", + "ĠR aid", + "ĠRa id", + "ĠRai d", + "C reation", + "Cre ation", + "Creat ion", + "s aved", + "save d", + "sa ved", + "sav ed", + "Ġpro port", + "Ġprop ort", + "Ġpropor t", + "W ARNING", + "WAR NING", + "WARN ING", + "\\ P", + "Ġ pwd", + "Ġp wd", + "Ġpw d", + "Data Reader", + "is cher", + "isc her", + "ische r", + "isch er", + "ad eon", + "ade on", + "Ġ Predict", + "ĠP redict", + "ĠPre dict", + "ĠPred ict", + "Ġreason ing", + "Ġdestroy ing", + "H el", + "He l", + "* d", + "ĠLeg isl", + "_ Pr", + "_P r", + "ĉ ĉĉĠĠĠĠĠĠĠ", + "ĉĉ ĉĠĠĠĠĠĠĠ", + "ĉĉĉ ĠĠĠĠĠĠĠ", + "ĉĉĉĠĠĠ ĠĠĠĠ", + "ĉĉĉĠ ĠĠĠĠĠĠ", + "ĉĉĉĠĠ ĠĠĠĠĠ", + "ĉĉĉĠĠĠĠ ĠĠĠ", + "ĉĉĉĠĠĠĠĠ ĠĠ", + "ĉĉĉĠĠĠĠĠĠ Ġ", + "Ġsym path", + "Ġsymp ath", + "Ġch ess", + "Ġche ss", + "Ġ mam", + "Ġm am", + "Ġma m", + ": hover", + ":h over", + "Ġcon verts", + "Ġconvert s", + "Ġconv erts", + "Ġconver ts", + "Ġp ela", + "Ġpe la", + "Ġpel a", + "Ġpro gression", + "Ġprogress ion", + "Ġprog ression", + "Ġ\" _\"", + "Ġ\"_ \"", + "ĠG ill", + "ĠGi ll", + "ĠGil l", + "ĉ show", + "ĉs how", + "ĉsh ow", + "Ġsupposed ly", + "ac curacy", + "acc uracy", + "accur acy", + "e lin", + "el in", + "eli n", + "Ġunf olding", + "Ġunfold ing", + "Ġ Hyper", + "ĠH yper", + "ĠHy per", + "ĠHyp er", + "Ġw anna", + "Ġwann a", + "Ġwan na", + "Ġ ups", + "Ġu ps", + "Ġup s", + "( #", + "ĠC riminal", + "ĠCr iminal", + "( Point", + "(P oint", + "at Lng", + "act ly", + "Ġcontract ors", + "Ġcontr actors", + "Ġcontractor s", + "Ġcontra ctors", + "' ]}", + "'] }", + "draul ic", + "ód igo", + "Ġ TT", + "ĠT T", + "Ġ Wide", + "ĠW ide", + "ĠWi de", + "ĠWid e", + "Ġ ARG", + "ĠA RG", + "ĠAR G", + "_ ic", + "_i c", + "FLAG S", + "S chool", + "Sch ool", + "Ġcl earing", + "Ġclear ing", + "Ġcle aring", + "- being", + "-b eing", + "-be ing", + "={ [", + ", const", + "man ent", + "Over lay", + "( '\"", + "(' \"", + "éĩ ı", + "Ġ Timestamp", + "ĠT imestamp", + "ĠTime stamp", + "Ġm ailing", + "Ġma iling", + "Ġmail ing", + "Ġmai ling", + "Ġ Cake", + "ĠC ake", + "ĠCa ke", + ". That", + ".T hat", + ".Th at", + "Ġmed itation", + "q p", + "Ġ empresa", + "Ġemp resa", + "Ġempres a", + "ĠL ions", + "ĠLi ons", + "ĠLion s", + "Ġw eld", + "Ġwe ld", + "Ġwel d", + "Ġ LinkedIn", + "ĠLinked In", + "Ġc ush", + "Ġcu sh", + "Ġcus h", + "Ġ genome", + "Ġge nome", + "Ġgen ome", + "Ġgenom e", + ". IndexOf", + ".Index Of", + "a gain", + "ag ain", + "aga in", + "Ġ fallback", + "Ġf allback", + "Ġfall back", + "Ġc amping", + "Ġcamp ing", + "Ġcam ping", + "r edd", + "re dd", + "red d", + "-strip ed", + "-str iped", + "Ġ dv", + "Ġd v", + "Fe bruary", + "Feb ruary", + "Ġ Proxy", + "ĠPro xy", + "ĠPr oxy", + "u sk", + "us k", + "Ġd iesel", + "Ġdi esel", + "Ġdie sel", + "Ġdies el", + "Ġdiese l", + "W RITE", + "WR ITE", + "RE AK", + "REA K", + "L orem", + "Lo rem", + ". Invoke", + ".In voke", + ".Inv oke", + "- div", + "-d iv", + "-di v", + "Inter ceptor", + "Ġ DH", + "ĠD H", + "i ales", + "ial es", + "ia les", + "iale s", + "Ġvill ages", + "Ġvillage s", + "Ġvilla ges", + "Ø ´", + "Ġ ENV", + "ĠE NV", + "ĠEN V", + "S ys", + "Sy s", + ". XR", + ".X R", + "Ġpo em", + "à Ĥ", + "c ade", + "ca de", + "cad e", + "p lots", + "pl ots", + "plot s", + "Ġ {(", + "Ġ{ (", + ". git", + ".g it", + "/ svg", + "/s vg", + "n cmp", + "nc mp", + "Ġ Äį", + "ĠÄ į", + "a ines", + "ain es", + "ai nes", + "aine s", + "åĩ ½æķ°", + "åĩ½ æķ°", + "Ġ ()ĊĊ", + "Ġ( )ĊĊ", + "Ġ() ĊĊ", + "Ġ()Ċ Ċ", + "op sis", + "ops is", + "Ġ Relationship", + "ĠRel ationship", + "ĠRelations hip", + "ĠRelation ship", + "_ aut", + "_a ut", + "Ġ Bomb", + "ĠB omb", + "ĠBo mb", + "ĠBom b", + "ĉ com", + "ĉc om", + "* sizeof", + "*size of", + "off icial", + "_ payload", + "_p ayload", + "_pay load", + "ĉ ĉĉĉĉĠĠ", + "ĉĉ ĉĉĉĠĠ", + "ĉĉĉĉ ĉĠĠ", + "ĉĉĉ ĉĉĠĠ", + "ĉĉĉĉĉ ĠĠ", + "ĉĉĉĉĉĠ Ġ", + ". manager", + ".m anager", + ".man ager", + ".manage r", + "Ġ Around", + "ĠA round", + "ĠAr ound", + "ĉ send", + "ĉs end", + "ĉse nd", + "Ġ Exercise", + "ĠEx ercise", + "Ġ Billy", + "ĠB illy", + "ĠBill y", + "ĠBil ly", + "i vi", + "iv i", + "Ġne eding", + "Ġneed ing", + "_ urls", + "_url s", + "_ur ls", + "_ tasks", + "_t asks", + "_task s", + "ĠH em", + "ĠHe m", + "Ġ tearDown", + "Ġte arDown", + "Ġtear Down", + "en crypt", + "enc rypt", + ". tie", + ".t ie", + "Ġ asm", + "Ġa sm", + "Ġas m", + "I CH", + "IC H", + "ĠCGRect Make", + "ìĦ ±", + "u long", + "ul ong", + "ulo ng", + "Ġ itr", + "Ġit r", + "Ġi tr", + "Ġ GST", + "ĠG ST", + "ĠGS T", + "Ġoffer ings", + "Ġoffering s", + "r obe", + "ro be", + "rob e", + "E EE", + "EE E", + "oper ators", + "operator s", + "_ PROP", + "_P ROP", + "_PRO P", + "_PR OP", + "in dent", + "ind ent", + "inde nt", + "inden t", + "A DE", + "AD E", + "o rf", + "or f", + "ë IJ", + "Ġbl essed", + "Ġbless ed", + "v ascular", + "vas cular", + "Ġcon oc", + "Ġco noc", + "H appy", + "Ha ppy", + "B ridge", + "Br idge", + "il itation", + "ilit ation", + "j oint", + "join t", + "jo int", + "Ġ Administr", + "ĠAdmin istr", + "- transform", + "-trans form", + "Ġmean time", + "Ġmeant ime", + "/ K", + "ĠBed room", + "Ġr igid", + "Ġrig id", + "Ġri gid", + "Ġb rowsers", + "Ġbrowser s", + "Ġbrows ers", + "Ġbrowse rs", + "EM PTY", + "EMP TY", + ". Serialize", + ".S erialize", + ".Serial ize", + "_ ED", + "_E D", + "Ġst itch", + "Ġ jan", + "Ġj an", + "Ġja n", + "el lt", + "ell t", + "Ġ brace", + "Ġb race", + "Ġbr ace", + "Ġbra ce", + "Ġt rails", + "Ġtr ails", + "Ġtrail s", + "Ġtra ils", + "Ġtrai ls", + "p ublished", + "publish ed", + "å¯Ĩ çłģ", + "} ')Ċ", + "}' )Ċ", + "}') Ċ", + "Ġac ids", + "Ġacid s", + "Ġ !!!", + "Ġ! !!", + "Ġ!! !", + "_ direct", + "_d irect", + "_dir ect", + "_di rect", + "> ());Ċ", + ">( ));Ċ", + ">() );Ċ", + ">()) ;Ċ", + "a jÄħ", + "aj Äħ", + "_O CC", + "_OC C", + "Ġplan ets", + "Ġplane ts", + "Ġplanet s", + "Ġpla nets", + "æ Ł¥", + "æŁ ¥", + "ĠDub lin", + "Ġ serie", + "Ġs erie", + "Ġse rie", + "Ġser ie", + "Ġseri e", + ". printf", + ".print f", + "de ep", + "dee p", + "` )", + "Ġ \\$", + "Ġ\\ $", + "Ġ μ", + "ĠÎ ¼", + "_ VIDEO", + "_V IDEO", + "end ors", + "endor s", + "endo rs", + "Ġ Crypto", + "ĠC rypto", + "ĠCrypt o", + "ĠCry pto", + "F ar", + "Fa r", + ". Transparent", + ".Trans parent", + ". TR", + ".T R", + "i asm", + "ia sm", + "ias m", + "_ training", + "_tr aining", + "_train ing", + "_tra ining", + "Ġte aches", + "Ġteach es", + "Ġtea ches", + "ĠB elt", + "ĠBe lt", + "ĠBel t", + "Ġlimit ing", + "Ġlim iting", + "ĠK ath", + "ĠKat h", + "ĠKa th", + "Ġ IndexPath", + "ĠIndex Path", + "Ġachie vements", + "Ġachieve ments", + "Ġachievement s", + "Ġse rá", + "Ġser á", + "interop Require", + "Ġd isse", + "Ġdis se", + "Ġdi sse", + "Ġdiss e", + ". If", + ".I f", + "ar ming", + "arm ing", + "uls ion", + "P o", + "_ DETAIL", + "_DE TAIL", + "_DET AIL", + "Prot otype", + "Proto type", + "Ġ CAL", + "ĠC AL", + "ĠCA L", + "Ġag rees", + "Ġagre es", + "Ġagree s", + "Ġagr ees", + ". vo", + ".v o", + ".Execute NonQuery", + "Ġ Topic", + "ĠT opic", + "ĠTo pic", + "ĠTop ic", + "Ġ' {}", + "Ġ'{ }", + "A rm", + "Ar m", + "Ġ ecc", + "Ġe cc", + "Ġec c", + "M ag", + "Ma g", + "Ġ serialized", + "Ġs erialized", + "Ġser ialized", + "Ġserial ized", + "Ġserialize d", + "ĉ conn", + "ĉc onn", + "ĉcon n", + "c ached", + "ca ched", + "cache d", + "cac hed", + "= tf", + "=t f", + "Ġ ByteArray", + "ĠByte Array", + "prot obuf", + "proto buf", + "var char", + "ĉ ASSERT", + "ĉA SSERT", + "Ġ liste", + "Ġl iste", + "Ġli ste", + "Ġlist e", + "Ġlis te", + "_ trigger", + "_tr igger", + "_tri gger", + "· ¸", + "F eel", + "Fe el", + "Fee l", + "T ahoma", + "Ġ Lik", + "ĠL ik", + "ĠLi k", + "Ġ structured", + "Ġstruct ured", + "Ġstructure d", + "erg us", + ". Initial", + ".In itial", + ".Init ial", + "_ ge", + "_g e", + "cl js", + ". contact", + ".cont act", + "Ġand ere", + "Ġan dere", + "Ġander e", + "$ stmt", + "_ CURRENT", + "_C URRENT", + "Ġ Discover", + "ĠDis cover", + "ĠDisc over", + "ĠDisco ver", + "$ res", + "$r es", + "form atter", + "for matter", + "format ter", + "H a", + "van gst", + "vang st", + "Ġe merge", + "Ġem erge", + "Ġemerg e", + "ãĢĤ âĢĿ", + "ĠC abinet", + "ĠCabin et", + "ĠCab inet", + "- square", + "-s quare", + "éĥ ¨", + "Ġ rage", + "Ġr age", + "Ġra ge", + "Ġrag e", + "Ġ AJ", + "ĠA J", + "Ġ VT", + "ĠV T", + "sh adow", + "ĠFa ith", + "e names", + "en ames", + "ename s", + "ena mes", + "p retty", + "pr etty", + "pre tty", + "pret ty", + "h asil", + "ha sil", + "has il", + "p arty", + "par ty", + "part y", + "Ġ varchar", + "Ġvar char", + "Ġf otos", + "Ġfo tos", + "Ġfoto s", + "Ġfot os", + "Ġa lum", + "Ġal um", + "ĠBel gium", + "ĠBelg ium", + ". ylabel", + ".y label", + "Ġ dej", + "Ġd ej", + "Ġde j", + "_ numbers", + "_num bers", + "_number s", + "Ġ hu", + "Ġh u", + ".set Adapter", + "Ġ Usually", + "ĠUs ually", + "( sample", + "(s ample", + ". Shared", + ".Sh ared", + "Ġbo oked", + "Ġbook ed", + "Ġboo ked", + "Ġ> >=", + "Ġ>> =", + "Ġmin erals", + "Ġmineral s", + "Ġminer als", + "\" > < ?=", + "\">", + "'] )->", + "']) ->", + "p rog", + "pr og", + "pro g", + "b oo", + "bo o", + "_ md", + "_m d", + "_ pack", + "_p ack", + "_pa ck", + "( express", + "(ex press", + "(exp ress", + "(expr ess", + "u tz", + "ut z", + "\\ Auth", + ", id", + ",i d", + "ĠCh ile", + "ĠChi le", + "act ice", + "actic e", + "Ġrec ruitment", + "Ġrecruit ment", + "Ġ poses", + "Ġp oses", + "Ġpos es", + "Ġpo ses", + "Ġpose s", + "Ġvulner ability", + "inst anc", + "o rum", + "or um", + "oru m", + "d ess", + "de ss", + "des s", + "Ġ xl", + "Ġx l", + "%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%", + "( fig", + "(f ig", + "(fi g", + "Ġde leting", + "Ġdel eting", + "Ġdelet ing", + "Ġdele ting", + ". del", + ".d el", + ".de l", + ") ')Ċ", + ")' )Ċ", + "Ġ Weekly", + "ĠWeek ly", + "? ??", + "?? ?", + "( strcmp", + "(str cmp", + "s mith", + "sm ith", + "Ġpurs uing", + "- so", + "-s o", + "Ġ Apps", + "ĠA pps", + "ĠApp s", + "ĠAp ps", + "/ 'Ċ", + "/' Ċ", + "Ġde cis", + "Ġdec is", + "F ORE", + "FO RE", + "FOR E", + "Every one", + "Ġl anes", + "Ġla nes", + "Ġlane s", + "Ġlan es", + "V irtual", + "Vir tual", + ". attach", + ".at tach", + ".att ach", + "( Log", + "(L og", + "ĠMed icaid", + "ĠMedic aid", + "( Path", + "(P ath", + "ĠTur ner", + "ĠTurn er", + "/ application", + "/app lication", + "/ap plication", + "Ġ portrait", + "Ġport rait", + "Ġpor trait", + "Ġop pose", + "Ġopp ose", + "Ġoppos e", + "check out", + "Ġfin ishes", + "Ġfinish es", + "_ ME", + "_M E", + "Bar rier", + "S ong", + "So ng", + "Son g", + "V AR", + "VA R", + "Ear lier", + "r ella", + "re lla", + "rel la", + "rell a", + "Ġh ast", + "Ġhas t", + "Ġha st", + "a zar", + "az ar", + "aza r", + "Ġp ulls", + "Ġpull s", + "Ġpul ls", + "n gx", + "ng x", + "Ġins piring", + "Ġinspir ing", + "Ġinsp iring", + "Ñĥ Ñİ", + "- direction", + "-d irection", + "-direct ion", + "-dir ection", + "-di rection", + "Ġexplos ive", + "Ġ createdAt", + "Ġcreated At", + "s to", + "st o", + "Ġw heat", + "Ġwh eat", + "Ġwhe at", + "Ġ Built", + "ĠB uilt", + "ĠBu ilt", + "' ai", + "'a i", + "Ġ tracked", + "Ġtr acked", + "Ġtrack ed", + "h ammad", + "ham mad", + "RowAt IndexPath", + "_ heap", + "_he ap", + "D ue", + "Du e", + "Ġconn ects", + "Ġconnect s", + ". publish", + ".p ublish", + ".pub lish", + "e mu", + "em u", + "Ġb ullets", + "Ġbul lets", + "Ġbull ets", + "Ġbullet s", + "B AR", + "BA R", + "o late", + "ol ate", + "ola te", + "Ġintern ally", + "Ġinternal ly", + "Ġc atching", + "Ġcatch ing", + "Ġcat ching", + "- password", + "-p assword", + "-pass word", + "ou ched", + "ouch ed", + "æĢ §", + "e ous", + "eo us", + "Ġx range", + "Ġxr ange", + "Q uality", + "Qu ality", + "Qual ity", + "v v", + "Man age", + "Ma nage", + "Mana ge", + "( ($", + "(( $", + "ace ments", + "ac ements", + "acement s", + "ĠBr others", + "ĠBro thers", + "ĠBrother s", + "Ġ HEAD", + "ĠHE AD", + "Ġ Unsupported", + "ĠUn supported", + "ĠUns upported", + "s an", + "sa n", + "e si", + "es i", + "* **Ċ", + "** *Ċ", + "*** Ċ", + "Ġadapt ation", + "Ġ Worker", + "ĠWork er", + "ĠWor ker", + "' ]/", + "'] /", + ".save fig", + "( trans", + "(t rans", + "(tr ans", + "Ø ¬", + "n ee", + "ne e", + "C orrect", + "Cor rect", + ".. .\")Ċ", + "... \")Ċ", + "...\" )Ċ", + "Ġsubmit ting", + "- path", + "-p ath", + "ĉ last", + "ĉl ast", + "is san", + "iss an", + "issa n", + ". xlabel", + ".x label", + "Ġ Separ", + "ĠS epar", + "ĠSe par", + "ĠSep ar", + "/ no", + "/n o", + "_ best", + "_b est", + "_be st", + "ĠM ills", + "ĠMill s", + "ĠMil ls", + "_ sock", + "_s ock", + "_so ck", + "_soc k", + "( flag", + "(f lag", + "(fl ag", + "Ġdest inations", + "Ġdestination s", + "Ġdestin ations", + "em ption", + "emp tion", + "empt ion", + "Ġ FAIL", + "ĠF AIL", + "ĠFA IL", + "å ĴĮ", + "åĴ Į", + "Ġ rp", + "Ġr p", + "f act", + "fa ct", + "fac t", + "ĉ len", + "ĉl en", + "D AY", + "DA Y", + "Ġse iz", + "Ġsei z", + "_ dst", + "_d st", + "_ds t", + "l ip", + "li p", + ". Linear", + ".L inear", + ".Line ar", + "Ġ Basket", + "ĠB asket", + "ĠBas ket", + "$ t", + "$ i", + "- brand", + "-b rand", + "-br and", + "Ġ Neil", + "ĠN eil", + "ĠNe il", + "Ġ Eq", + "ĠE q", + "Ġt hou", + "Ġth ou", + "Ġtho u", + "o gene", + "og ene", + "ogen e", + "oge ne", + "Ġscholar ship", + "Ġscholars hip", + "æĽ ´", + "Ġs wo", + "Ġsw o", + "ag inator", + "agina tor", + "e ni", + "en i", + "( book", + "(b ook", + "Ġ blink", + "Ġb link", + "Ġbl ink", + "Ġbli nk", + "t hus", + "th us", + "Ġ cancellationToken", + "Ġc ancellationToken", + "Ġcancell ationToken", + "Ġcancellation Token", + "ĠPalestin ians", + "ĠPalestinian s", + "Ġprof itable", + "Ġprofit able", + "Ġback pack", + "en son", + "ens on", + "enso n", + "< Long", + " < /", + "_ WORD", + "_W ORD", + "\\M igrations", + "\\Migration s", + "Ġ ENABLE", + "ĠEN ABLE", + "_PARAM ETER", + "ĠB ishop", + "ĠBi shop", + "ĠBis hop", + ". subject", + ".sub ject", + "il las", + "ill as", + "illa s", + ". matrix", + ".m atrix", + ".mat rix", + "urre nces", + "urrenc es", + "urr ences", + "urrence s", + "* y", + "Ġcost ly", + "Ġ Chuck", + "ĠCh uck", + "ĠChu ck", + "Ġc loses", + "Ġcl oses", + "Ġclose s", + "Ġclos es", + "Ġclo ses", + "ĠM ight", + "ĠMi ght", + "ĠMig ht", + "- store", + "-st ore", + "Ġ mall", + "Ġm all", + "Ġma ll", + "Ġmal l", + "i eten", + "ie ten", + "iet en", + "iete n", + ". Abs", + ".A bs", + ".Ab s", + "Ġcou pled", + "Ġcouple d", + "Ġcoup led", + ". basic", + ".b asic", + ".ba sic", + "Ġ ::::::::", + "Ġ: :::::::", + "Ġ:: ::::::", + "Ġ::: :::::", + "M aker", + "Make r", + "Ma ker", + "c annot", + "can not", + "Ġ ach", + "Ġa ch", + "Ġac h", + "ĠE li", + "ĠEl i", + "âĪ Ĵ", + "o rna", + "or na", + "orn a", + "Ġ cps", + "Ġc ps", + "Ġcp s", + "Ġthere of", + "Ġther eof", + "Ġ@ {", + "Ġ NSMutableArray", + "ĠNSMutable Array", + "Î ½", + "pro ductive", + "product ive", + "prod uctive", + "S quare", + "tem pts", + "temp ts", + "tempt s", + "Ġelim inated", + "Ġeliminate d", + "Ġelimin ated", + "< M", + "Ġcons ervatives", + "Ġconserv atives", + "Ġconservative s", + "ĠS urg", + "ĠSur g", + "ĠSu rg", + ". par", + ".p ar", + ".pa r", + "ĠB uch", + "ĠBu ch", + "* b", + "F ort", + "For t", + "Fo rt", + "Col our", + "Ġ Chi", + "ĠC hi", + "ĠCh i", + "e dic", + "ed ic", + "edi c", + "> true", + "ĠN YC", + "ĠNY C", + "Ġb ored", + "Ġbo red", + "Ġbor ed", + "Ġbore d", + "Ġ Detect", + "ĠD etect", + "ĠDet ect", + "Ġapp ar", + "Ġap par", + "Ġje ans", + "Ġjean s", + "Ġ Tak", + "ĠT ak", + "ĠTa k", + "I OD", + "IO D", + "ĠH orse", + "ĠHor se", + "( FILE", + "(F ILE", + "( ?", + "r ique", + "ri que", + "opt imizer", + "optim izer", + "optimize r", + "n at", + "na t", + "lo ys", + "loy s", + "ĉ Token", + "ĉT oken", + "oub ted", + "u ess", + "ue ss", + "ues s", + "oc oa", + "oco a", + "Data Member", + "_ POWER", + "_P OWER", + "_PO WER", + "class List", + "Push Button", + "Ġ WiFi", + "ĠWi Fi", + ". Stream", + ".St ream", + ".Str eam", + ". guild", + ".g uild", + ".gui ld", + "Ġn og", + "Ġno g", + "ĠPort ugal", + "ĠPortug al", + "ĠUn ter", + "ĠUnt er", + "Pr imitive", + "Prim itive", + "b oss", + "bo ss", + "bos s", + "ĠDe utsch", + "Ġer otic", + "Ġerot ic", + "Ġero tic", + "Ġ strconv", + "Ġstr conv", + ".Try Parse", + "Ġ grams", + "Ġg rams", + "Ġgr ams", + "Ġgram s", + "Ġgra ms", + ". Success", + ".S uccess", + "_ pk", + "_p k", + "ĠHar vey", + "-m inded", + "-min ded", + ". country", + ".c ountry", + ".count ry", + "[ ]\"", + "[] \"", + "Ġ angel", + "Ġan gel", + "Ġang el", + "Ġange l", + "Ġbe ats", + "Ġbeat s", + "ĠV or", + "ĠVo r", + "i lio", + "il io", + "ili o", + ". master", + ".m aster", + ".mas ter", + ".ma ster", + "s omething", + "some thing", + "som ething", + "Ġ PACK", + "ĠP ACK", + "ĠPA CK", + "ĠPAC K", + "( if", + "(i f", + "Request Body", + "Ġ antes", + "Ġan tes", + "Ġant es", + "Ġante s", + "/ widget", + "/w idget", + "Ġ modo", + "Ġm odo", + "Ġmod o", + "Ġmo do", + "Ġ AW", + "ĠA W", + "f inder", + "find er", + "fin der", + "fi nder", + "Ġ optimized", + "Ġopt imized", + "Ġoptim ized", + "Ġoptimize d", + "Ġmiss iles", + "Ġmissile s", + "N B", + "ĉ internal", + "ĉint ernal", + "ĉin ternal", + "ĉinter nal", + "t ex", + "te x", + "ĠS ri", + "ĠSr i", + "Ġdam aging", + "Ġ Mais", + "ĠM ais", + "ĠMa is", + "ĠMai s", + "- Allow", + "-Al low", + "Ġ Zh", + "ĠZ h", + "- alt", + "-a lt", + "-al t", + "Ġ ));ĊĊ", + "Ġ) );ĊĊ", + "Ġ)) ;ĊĊ", + "Ġ));Ċ Ċ", + "Ġ)); ĊĊ", + "è ī", + "Ġinflu ences", + "Ġinfluence s", + "Ġc atal", + "Ġca tal", + "Ġcat al", + "Ġcata l", + "_ REGISTER", + "_REG ISTER", + "ĠAPI s", + "ĠAP Is", + "-cent ury", + "Ġ biology", + "Ġb iology", + "Ġbi ology", + "Ġbio logy", + "Ġ Actual", + "ĠAct ual", + "ĠAc tual", + "Ġ heels", + "Ġhe els", + "Ġheel s", + "TR ACE", + "TRA CE", + "_ DIG", + "_D IG", + "_DI G", + "D ataset", + "Data set", + "Dat aset", + "Datas et", + "ĠM atter", + "ĠMat ter", + "ĠMatt er", + "ĠMatte r", + "Ġ classifier", + "Ġclass ifier", + ".w ikipedia", + "ĠRo gers", + "ĠRog ers", + "ĠRoger s", + "Ġdon ated", + "Ġdonate d", + "raw ler", + "rawl er", + "e nen", + "en en", + "ene n", + "Ġcas inos", + "Ġcasino s", + "Ġcasi nos", + "or tal", + "ort al", + "orta l", + "Ġp rive", + "Ġpr ive", + "Ġpriv e", + "Ġpri ve", + "s pe", + "sp e", + "du cers", + "duc ers", + "duce rs", + "ducer s", + ". ep", + ".e p", + "Ġgr asp", + "Ġgra sp", + "Ġgras p", + "ac ji", + "Ġd airy", + "Ġda iry", + "Ġdai ry", + "Ġdair y", + "Ġb uses", + "Ġbu ses", + "Ġbus es", + ". comm", + ".c omm", + ".com m", + ".co mm", + ". ins", + ".in s", + ".i ns", + "Ġ IRS", + "ĠI RS", + "ĠIR S", + "Ġ Beer", + "ĠB eer", + "ĠBe er", + "ĠBee r", + "a dc", + "ad c", + "o ard", + "oa rd", + "_ MET", + "_M ET", + "_ME T", + "Ġ' +'", + "Ġ'+ '", + "r ans", + "ra ns", + "ran s", + "Ġk inda", + "Ġkind a", + "Ġki nda", + "Ġkin da", + "Ġ âĶĤ", + "ĠâĶ Ĥ", + "ĠM aur", + "ĠMa ur", + "а г", + "аР³", + "Ġband width", + "i bus", + "ib us", + "ibu s", + "Ġ Different", + "ĠD ifferent", + "( mat", + "(m at", + "Ġ Resume", + "ĠRe sume", + "ĠRes ume", + "_ UNS", + "_U NS", + "_UN S", + "est ablish", + "Ġfon ction", + "Sub scription", + "_ company", + "_com pany", + "_comp any", + "Ġ lightly", + "Ġl ightly", + "Ġlight ly", + ". confirm", + ".con firm", + ".conf irm", + ". yaml", + ".y aml", + "Ġ Boost", + "ĠBo ost", + "ĠBoo st", + "Com merce", + "Comm erce", + "- template", + "-t emplate", + "-temp late", + "_ DELAY", + "_DE LAY", + "_DEL AY", + "Ġ HI", + "ĠH I", + "Ġn avig", + "Ġna vig", + "Ġnav ig", + "( Sender", + "(S ender", + "Ġ HS", + "ĠH S", + "_ \"+", + "_\" +", + "Ġ REQUEST", + "ĠRE QUEST", + "ĠREQ UEST", + "Ġ wifi", + "Ġw ifi", + "Ġwi fi", + "= \"\"Ċ", + "=\" \"Ċ", + "=\"\" Ċ", + "] )->", + "]) ->", + "])- >", + "Ġr ope", + "Ġro pe", + "Ġrop e", + "Ġvi olated", + "Ġviol ated", + "Ġviolate d", + "Ġgl ance", + "ĠK urd", + "ĠKur d", + "ĠKu rd", + "Ġ è®", + "Ġè ®", + "d eck", + "de ck", + "dec k", + "Ġ ISBN", + "ĠIS BN", + "Ġin fect", + "Ġinf ect", + "Ġ Foo", + "ĠF oo", + "ĠFo o", + "Ġ getter", + "Ġg etter", + "Ġget ter", + "Ġ tener", + "Ġt ener", + "Ġte ner", + "Ġten er", + "a ppe", + "ap pe", + "app e", + ". hh", + ".h h", + "_ hot", + "_h ot", + "< AM", + " \".$", + ">\" .$", + ">\". $", + "Ġre lies", + "Ġrel ies", + "Ġreli es", + "Ġrelie s", + "( Console", + "Int ernational", + "Inter national", + "Intern ational", + "- >{$", + "-> {$", + "->{ $", + "M id", + "Mi d", + "Ġdis sert", + "Ġdiss ert", + "Ġdisse rt", + "d ds", + "dd s", + "Ġdeposit s", + "Ġdepos its", + "ĉ driver", + "ĉd river", + "# ga", + "#g a", + "p rising", + "pr ising", + "pri sing", + "print ln", + "Ġp resenter", + "Ġpres enter", + "Ġpresent er", + "Ġpresente r", + "Ġm ines", + "Ġmin es", + "Ġmi nes", + "Ġmine s", + "C SS", + "CS S", + "Ġ Dual", + "ĠD ual", + "ĠDu al", + "( !(", + "(! (", + "Ġk am", + "Ġka m", + "Ġ isLoading", + "Ġis Loading", + "Ġ Protect", + "ĠProt ect", + "ĠProte ct", + ". upper", + ".u pper", + ".up per", + "a rium", + "ar ium", + "ari um", + "] :ĊĊĊ", + "]: ĊĊĊ", + "]:Ċ ĊĊ", + "]:ĊĊ Ċ", + "Y ii", + "- shirt", + "-sh irt", + "Ġ IMAGE", + "ĠIM AGE", + "_ colors", + "_color s", + "_col ors", + "Ġ urgent", + "Ġur gent", + "Ġurge nt", + "Ġurg ent", + ". Container", + ".Cont ainer", + "! (Ċ", + "!( Ċ", + "S aturday", + "Ġsoc ieties", + "Ġsoci eties", + "Ġ Than", + "ĠT han", + "ĠTh an", + "Ġ Cod", + "ĠC od", + "ĠCo d", + "= @", + "Ġ attachments", + "Ġattach ments", + "Ġattachment s", + ". mobile", + ".m obile", + ".mob ile", + "Ġs pite", + "Ġsp ite", + "Ġspi te", + "Ġspit e", + "Ġ bounce", + "Ġb ounce", + "Ġbo unce", + "Ġbou nce", + "r awl", + "ra wl", + "raw l", + "instance type", + "instanc etype", + "ĠTr uck", + "ĠTru ck", + "Ġmanip ulation", + "( Config", + "- inst", + "-in st", + "-i nst", + "-ins t", + "Ġ stor", + "Ġs tor", + "Ġst or", + "Ġsto r", + "it ution", + "itu tion", + "Preferred Gap", + "Ġmain AxisAlignment", + "Ġlist ened", + "Ġlisten ed", + "Ġliste ned", + "'' 'ĊĊ", + "'''Ċ Ċ", + "''' ĊĊ", + "ott age", + "otta ge", + "- project", + "-pro ject", + ". APPLICATION", + ".AP PLICATION", + "ĉ root", + "ĉr oot", + "Ġw hit", + "Ġwh it", + "Ġ bilder", + "Ġb ilder", + "Ġbi lder", + "Ġbil der", + "Ġbild er", + "Ġ ker", + "Ġk er", + "Ġke r", + "Ġappl iances", + "Ġappliance s", + "ro wave", + "row ave", + "ìĿ Ģ", + "em atics", + "ema tics", + "ematic s", + "emat ics", + "Ġ Org", + "ĠO rg", + "ĠOr g", + "o ping", + "op ing", + "opi ng", + "_ SEARCH", + "_SE ARCH", + "Ġc ham", + "Ġch am", + "Ġcha m", + "add ContainerGap", + "Ġ ().", + "Ġ( ).", + "Ġ() .", + "Ġ Arrow", + "ĠAr row", + "ĠArr ow", + "Il legal", + "Ill egal", + "Current ly", + "Curr ently", + "Ġ usa", + "Ġu sa", + "Ġus a", + "Ġpass words", + "Ġpassword s", + "Ġre nown", + "Ġren own", + "a vern", + "av ern", + "ave rn", + "aver n", + "ĠE vil", + "ĠEv il", + "Ġ concat", + "Ġcon cat", + "Ġconc at", + "Ġd uo", + "Ġdu o", + "Ġ vale", + "Ġv ale", + "Ġval e", + "Ġva le", + "Ġ Bean", + "ĠB ean", + "ĠBe an", + "ĠBea n", + "Ġind icators", + "Ġindic ators", + "Ġindicator s", + "Ġindica tors", + "c math", + "cm ath", + "ĠP ump", + "ĠPu mp", + "Nov ember", + "ific ant", + "ifi cant", + "ifica nt", + "_ DOMAIN", + "_DO MAIN", + "_DOM AIN", + "re gar", + "reg ar", + "rega r", + "Ġ Portal", + "ĠP ortal", + "ĠPort al", + "ĠPor tal", + "\" $", + "Ġ formerly", + "Ġformer ly", + "\" ]:Ċ", + "\"] :Ċ", + "\"]: Ċ", + "Ġ Visibility", + "ĠVis ibility", + ".getElementsBy ClassName", + "_ RED", + "_RE D", + "_R ED", + "Ġch ampions", + "Ġchampion s", + "Ġchamp ions", + "à ´", + "Val or", + "Va lor", + "_ es", + "_e s", + "* a", + "- repeat", + "-re peat", + "B and", + "Ban d", + "Ba nd", + ". stage", + ".st age", + "Ġbure auc", + "Ġbureau c", + "C nt", + "e ten", + "et en", + "ete n", + "- function", + "-f unction", + "Ġm uito", + "Ġmu ito", + "Ġmuit o", + "P ID", + "PI D", + "_ editor", + "_e ditor", + "_edit or", + "_ed itor", + "Ġcr ashed", + "Ġcrash ed", + "Ġcra shed", + "d ead", + "de ad", + "dea d", + "k at", + "ka t", + "a gh", + "ag h", + "Ġ EXT", + "ĠE XT", + "ĠEX T", + "as ser", + "ass er", + "asse r", + "- small", + "-s mall", + "-sm all", + "Ġre aliz", + "Ġreal iz", + "( Entity", + "(E ntity", + "ú s", + "Ġ Actually", + "ĠAct ually", + "ĠActual ly", + "Ġ Elite", + "ĠE lite", + "ĠEl ite", + "ĠEli te", + "Ġ helm", + "Ġh elm", + "Ġhe lm", + "Ġhel m", + "( nonatomic", + "(non atomic", + "a sher", + "as her", + "ash er", + "Comm unity", + "all eng", + "alle ng", + "allen g", + "i ry", + "ir y", + "ĠG rowth", + "ĠGrow th", + "Ġs ue", + "Ġsu e", + "Ġf requencies", + "Ġfrequ encies", + "_ descriptor", + "_des criptor", + ". Attribute", + ".At tribute", + "Ġrec ipients", + "Ġrecipient s", + "Ġrecip ients", + "_ NS", + "_N S", + "/ \"+", + "/\" +", + "i ban", + "ib an", + "iba n", + "Ġ athlete", + "Ġath lete", + "Ġ Ign", + "ĠI gn", + "ĠIg n", + "_ DMA", + "_D MA", + "_DM A", + "( ds", + "(d s", + "Ġ Requirements", + "ĠRequire ments", + "ĠRequirement s", + "A DI", + "AD I", + "e rez", + "er ez", + "ere z", + "\\ Admin", + "br aska", + "bra ska", + "bras ka", + "ĠR ust", + "ĠRu st", + "ĠRus t", + "Re lation", + "Rel ation", + "C OD", + "CO D", + "Ġ VERSION", + "ĠV ERSION", + "ĠVER SION", + "e mma", + "em ma", + "emm a", + ") ){", + ")) {", + ". Duration", + ".D uration", + "Ġ Camb", + "ĠC amb", + "ĠCam b", + "ĠCa mb", + "- logo", + "-l ogo", + "-lo go", + "-log o", + "Ġread able", + "Ġcre ators", + "Ġcreat ors", + "Ġcreator s", + "Ġcrea tors", + "( )];Ċ", + "() ];Ċ", + "()] ;Ċ", + "Up Down", + "- half", + "-h alf", + ".get Month", + ".getM onth", + "( sf", + "(s f", + "P ic", + "Pi c", + "Ġh unger", + "Ġhun ger", + "Ġhung er", + "Ġhu nger", + ". tx", + ".t x", + "Ġex ceeded", + "Ġexceed ed", + "Ġexce eded", + "_ seed", + "_s eed", + "_se ed", + "( ^", + "_ sk", + "_s k", + ". perform", + ".per form", + "Ġ >::", + "Ġ> ::", + "Ġ mongo", + "Ġm ongo", + "Ġmon go", + "Ġmo ngo", + "Ġmong o", + "= float", + "=f loat", + "bind Param", + "S mart", + "Sm art", + "i fa", + "if a", + "Ġse curities", + "Ġsec urities", + "Ġpre jud", + "Ġ ,\"", + "Ġ, \"", + "Ġcor ps", + "Ġcorp s", + "Ġv ra", + "Ġvr a", + "ama care", + "amac are", + "i terr", + "it err", + "ite rr", + "iter r", + "( Media", + "(M edia", + "(Me dia", + "u che", + "uch e", + "uc he", + "Ġ cob", + "Ġc ob", + "Ġco b", + "Ġl iber", + "Ġli ber", + "Ġlib er", + ". geometry", + ".ge ometry", + ".geom etry", + ".geo metry", + "L ocator", + "Loc ator", + "Ġsl iding", + "Ġslid ing", + "Ġs urgical", + "Ġsurg ical", + "_ CUR", + "_C UR", + "Ġcon sect", + "Ġcons ect", + "Ġconsec t", + "Ġconse ct", + "[ *", + "ĠRe sort", + "ĠRes ort", + "St ub", + "_ DOUBLE", + "_DO UBLE", + "Ġ Soph", + "ĠS oph", + "ĠSo ph", + "Ġelect oral", + "_ disable", + "_d isable", + "_dis able", + "Ġ Ñģо", + "ĠÑģ о", + "ĠLight ning", + "Ġ mentions", + "Ġm entions", + "Ġmention s", + "Ġment ions", + "o cy", + "oc y", + "Ġle aked", + "Ġleak ed", + "Ġrelax ing", + "P resenter", + "Pres enter", + "Present er", + "v sp", + "vs p", + "Ġg uilt", + "Ġgu ilt", + "Ġgui lt", + "=- =-", + ". reply", + ".re ply", + ".rep ly", + "Ġ Mirror", + "ĠM irror", + "ĠMir ror", + "ĠMi rror", + "C amp", + "Ca mp", + "Cam p", + "Ġ+#+ #+#+", + "Ġ+#+#+#+ #+#+", + ". Author", + ".A uthor", + ".Auth or", + "Ġ directive", + "Ġdirect ive", + "Ġdir ective", + "- hook", + "-h ook", + "íĦ °", + "} ĊĊĊĊĊ", + "}Ċ ĊĊĊĊ", + "}ĊĊ ĊĊĊ", + "}ĊĊĊ ĊĊ", + "}ĊĊĊĊ Ċ", + "@ pytest", + "_ rand", + "_r and", + "_ra nd", + "m is", + "mi s", + "Ġcolor ful", + "u je", + "uj e", + "l asses", + "lass es", + "las ses", + "Ġ Classes", + "ĠC lasses", + "ĠCl asses", + "ĠClass es", + "ĠClasse s", + ". have", + ".h ave", + "% ),", + "%) ,", + "é¢ ĺ", + "Ġdistur bing", + "Ġdisturb ing", + "sub string", + "substr ing", + "subst ring", + "subs tring", + "ĠK oh", + "ĠKo h", + "In vest", + "Inv est", + "p urchase", + "Ġrec ycling", + "Ġrecycl ing", + "Ġ ART", + "ĠA RT", + "ĠAR T", + "ier archy", + "Ġ fps", + "Ġf ps", + "Ġfp s", + ". checkBox", + ".check Box", + "íķ ´", + "_ material", + "_m aterial", + "_mat erial", + "du cation", + "duc ation", + "Ġ fw", + "Ġf w", + "u dit", + "ud it", + "udi t", + "Ġreview ing", + "Ġ Sid", + "ĠS id", + "ĠSi d", + "S yntax", + "Sy ntax", + "Syn tax", + "Ġ Written", + "ĠW ritten", + "ĠWr itten", + "ar gar", + "arg ar", + "arga r", + "U ME", + "UM E", + "/ q", + "Class ifier", + "Off icial", + "Ġj azz", + "Ġja zz", + "Ġjaz z", + "Ġ omega", + "Ġo mega", + "Ġom ega", + "Ph ysics", + "Phys ics", + "Ġl ugar", + "Ġlu gar", + "Ġlug ar", + "_access or", + "_acc essor", + ". commands", + ".command s", + ".comm ands", + "Ab ility", + "Ġ Batch", + "ĠB atch", + "ĠBat ch", + "R AM", + "RA M", + "Ġenc ounters", + "Ġencounter s", + "Ġencount ers", + ". Qu", + ".Q u", + "B YTE", + "BY TE", + "Ġ Distribution", + "ĠD istribution", + "ĠDis tribution", + "ĠDistrib ution", + "Ġ uso", + "Ġu so", + "Ġus o", + "ĠRe covery", + "ĠRec overy", + "ĠReco very", + "ĠRecover y", + "ap proved", + "appro ved", + "approve d", + "Ġden ial", + "/ share", + "/s hare", + "/sh are", + "Link edList", + "Linked List", + ") čĊčĊčĊ", + ")čĊ čĊčĊ", + ")čĊčĊ čĊ", + "u ddy", + "ud dy", + "udd y", + "Ġf ines", + "Ġfin es", + "Ġfine s", + "Ġfi nes", + "Ġ ry", + "Ġr y", + "Un icode", + "Uni code", + "ĉ render", + "ĉr ender", + "ĉre nder", + "Ġprem ises", + "Ġpremise s", + "Ġpremi ses", + "Ġ pon", + "Ġp on", + "Ġpo n", + "ali ases", + "alias es", + "alia ses", + "/ Foundation", + "/F oundation", + "c uda", + "cu da", + "ĠC ock", + "ĠCo ck", + "ĠCoc k", + ", :)", + ",: )", + "( folder", + "(f older", + "Ġm éd", + "Ġmé d", + "d rag", + "dr ag", + "dra g", + "Ġtal ents", + "Ġtalent s", + "Ġtale nts", + "Ġ ĠĠĊĊ", + "ĠĠ ĠĊĊ", + "ĠĠĠ ĊĊ", + "ĠĠĠĊ Ċ", + "е ÑģÑĤв", + "еÑģÑĤ в", + "m ob", + "mo b", + ".y ml", + "Ġ aster", + "Ġa ster", + "Ġas ter", + "Ġast er", + "Ġdis cre", + "Ġdisc re", + "go al", + "ĠG TX", + "ĠGT X", + "Ġ SUCCESS", + "ĠS UCCESS", + "Ġ LONG", + "ĠL ONG", + "ĠLO NG", + "( find", + "(f ind", + "(fin d", + "(fi nd", + "Ġ singular", + "Ġs ingular", + "Ġsing ular", + "_ sz", + "_s z", + "ĠEth ereum", + "ĠEther eum", + ". .Ċ", + ".. Ċ", + "Ġir res", + "Ġirre s", + "Ġirr es", + "' )){Ċ", + "') ){Ċ", + "')) {Ċ", + "Ġmin isters", + "Ġminister s", + "Ġmini sters", + "Ġminist ers", + "St eps", + "Step s", + "Ste ps", + "iver sal", + "ivers al", + "Ġ Nevertheless", + "ĠNever theless", + "- led", + "-l ed", + "-le d", + "Ġ( %)", + "Ġ(% )", + "ç¡ ®", + "Ġ timezone", + "Ġtime zone", + "Ġstr anger", + "Ġstrange r", + "Ġstrang er", + "Ġstran ger", + "Ġstra nger", + "( render", + "(r ender", + "(re nder", + "Ġsh util", + "Ġshut il", + "Ġ mph", + "Ġm ph", + "Ġmp h", + "Ġt rio", + "Ġtr io", + "Ġtri o", + "p py", + "pp y", + "Ġpred omin", + "Ġ endors", + "Ġend ors", + "ĠRuss ians", + "ĠRussia ns", + "ĠRussian s", + "ĉ row", + "ĉr ow", + "Ġ wizard", + "Ġw izard", + ". serialize", + ".s erialize", + ".serial ize", + "Ġcompl ained", + "Ġcomplain ed", + "Ġs ido", + "Ġsi do", + "Ġsid o", + "Ġdel ighted", + "Ġdelight ed", + "- me", + "-m e", + "ĠR av", + "ĠRa v", + "H uman", + "Hum an", + "Hu man", + "a days", + "ad ays", + "ada ys", + "aday s", + "re cv", + "rec v", + "Work ing", + "J ump", + "Ju mp", + "Ġ Ã¥r", + "ĠÃ¥ r", + "Ġ Automatic", + "ĠAuto matic", + "ĠAut omatic", + "ĠAutom atic", + "_ Base", + "_B ase", + "æł ¼", + "aur ants", + "aurant s", + "aura nts", + " ¯", + "æ ¸", + "(C Type", + "I FI", + "IF I", + "( amount", + "(a mount", + "(am ount", + "Ġbel ieving", + "Ġbelie ving", + "= mysql", + "=m ysql", + "=my sql", + "Ġ fir", + "Ġf ir", + "Ġfi r", + "Ġrest oration", + "Ġresto ration", + "er eco", + "ere co", + "Ð ¢", + "_ '+", + "_' +", + "Ġe book", + "Ġeb ook", + "Ġde bris", + "Ġdeb ris", + "( inputs", + "(input s", + "(in puts", + "(inp uts", + "AY OUT", + "Ġscre aming", + "Ġscream ing", + "a via", + "av ia", + "avi a", + "l ander", + "land er", + "la nder", + "lan der", + "Ġdist ress", + "Ġdi stress", + "Ġdistr ess", + "Ġas sembled", + "Ġassemble d", + "Ġ Avoid", + "ĠA void", + "ĠAv oid", + "( thread", + "(t hread", + "(th read", + "Ġ RPC", + "ĠR PC", + "ĠRP C", + "_ EXIT", + "_EX IT", + "( queue", + "(q ueue", + "и ÑģÑĤ", + "иÑģ ÑĤ", + "D ll", + "Ġsk ull", + "Ġsku ll", + "_ pub", + "_p ub", + "ch ez", + "che z", + "m inate", + "min ate", + "mina te", + "en sen", + "ens en", + "ense n", + "Ġins ane", + "Ġinsan e", + "b ounds", + "bo unds", + "bound s", + "bou nds", + "ĠR osen", + "ĠRo sen", + "ĠRose n", + "ĠRos en", + "Ġcondition ing", + "process ed", + "proc essed", + "v ideos", + "vid eos", + "video s", + "vide os", + "f our", + "fo ur", + ". Conv", + ".Con v", + ".Co nv", + "| ;Ċ", + "Person al", + "Pers onal", + "Persona l", + "cer pt", + ":UIControlState Normal", + "Ġd oses", + "Ġdo ses", + "Ġdos es", + "Ġdose s", + "ĠK arl", + "ĠKar l", + "ĠKa rl", + "ĠF requ", + "ĠFr equ", + "ĠFre qu", + ". BASE", + ".B ASE", + "Ġ Vote", + "ĠV ote", + "ĠVo te", + "Ġcon current", + "Ġconc urrent", + "ĠMessageBox Icon", + "Ġ Ãĸ", + "Ġà ĸ", + "ĠDu bai", + "ĠDub ai", + "Ġ Retail", + "ĠR etail", + "ĠRe tail", + "ĠRet ail", + ": number", + ":n umber", + ":num ber", + "Ġ Observer", + "ĠOb server", + "ĠObserv er", + "ĠObs erver", + "Ġ BigInteger", + "ĠB igInteger", + "ĠBig Integer", + "ĠBigInt eger", + "_ origin", + "_or igin", + "_orig in", + "_ori gin", + "_ WORK", + "_W ORK", + "F rames", + "Frame s", + "Fr ames", + "Fra mes", + "Ġnot ably", + ". âĢľ", + "Ġt ropical", + "Ġtrop ical", + "Ġn iche", + "Ġni che", + "Ġnic he", + "Ġnich e", + "a mina", + "am ina", + "amin a", + "ami na", + ". sys", + ".s ys", + ".sy s", + "( tokens", + "(t okens", + "(token s", + "(tok ens", + "mod ify", + "o sit", + "os it", + "osi t", + "st rom", + "str om", + "stro m", + "ĠC omics", + "ĠCom ics", + "ĠComic s", + "O PTION", + "OP TION", + "OPT ION", + "T icket", + "Tick et", + "Ti cket", + "Ġf actories", + "Ġfact ories", + "Ġfactor ies", + "Ġfacto ries", + "Ġdis put", + "Ġdisp ut", + "_ File", + "_F ile", + "ĠF inn", + "ĠFin n", + "ĠFi nn", + "e ee", + "ee e", + "ĠDis cord", + "ĠDisc ord", + "ĠDisco rd", + "_ money", + "_m oney", + "_mon ey", + "_mo ney", + ". tpl", + ".t pl", + ".tp l", + "_ safe", + "_s afe", + "_sa fe", + "L B", + "Ġg lut", + "Ġgl ut", + "Ġglu t", + "J K", + ". flow", + ".f low", + ".fl ow", + "- cont", + "-c ont", + "-con t", + "-co nt", + "g os", + "go s", + "Ġhor izon", + "ĠR ush", + "ĠRu sh", + "ĠRus h", + ": :*", + ":: *", + "P ipe", + "Pi pe", + "u lla", + "ul la", + "ull a", + "b orough", + "bo rough", + "bor ough", + "boro ugh", + "he imer", + "heim er", + "hei mer", + "( move", + "(m ove", + "( Text", + "(T ext", + "} );čĊčĊ", + "}) ;čĊčĊ", + "}); čĊčĊ", + "});čĊ čĊ", + "w elcome", + "wel come", + "Ġ Components", + "ĠCom ponents", + "ĠComponent s", + "ĠComp onents", + "Ġgovern ance", + "c losed", + "cl osed", + "close d", + "clo sed", + "ĉ margin", + "ĉm argin", + "Ġla undry", + "Ġ Terminal", + "ĠTerm inal", + "ĠTermin al", + "iz ards", + "izar ds", + "izard s", + ". âĢĶ", + ". remote", + ".rem ote", + ". radius", + ".r adius", + ".rad ius", + "ĠQue bec", + "Ġ dh", + "Ġd h", + "T ech", + "Te ch", + "ĠM ist", + "ĠMi st", + "ĠMis t", + "s eller", + "se ller", + "sel ler", + "sell er", + "_ literal", + "_l iteral", + "_lite ral", + "_lit eral", + "Ġgen ius", + "Ġ brains", + "Ġbr ains", + "Ġbrain s", + "Ġbra ins", + "g em", + "ge m", + "Ġ Measure", + "ĠMe asure", + "Ġcat ast", + "Ġcata st", + "r ance", + "ra nce", + "ran ce", + ". TextField", + ".T extField", + ".Text Field", + "Ġcon suming", + "Ġcons uming", + "Ġconsum ing", + "Ġ'\\ ''", + "Ġ'\\' '", + "oubted ly", + "Ġ Certain", + "ĠC ertain", + "ĠCert ain", + "ĠCer tain", + "E v", + "er ti", + "ert i", + "b eing", + "be ing", + "bei ng", + "Ex perience", + "Ġ //[", + "Ġ// [", + "Ġ/ /[", + "ĠAr abic", + "ĠArab ic", + "ĠAra bic", + "ĠC rist", + "ĠCr ist", + "ĠCri st", + "Ġ Azure", + "ĠA zure", + "ĠAz ure", + "Ġ hora", + "Ġh ora", + "Ġhor a", + "Ġho ra", + "l adesh", + "lad esh", + "\\ Blueprint", + "d ar", + "da r", + ". rel", + ".re l", + ".r el", + "Ġsup rem", + "ĠRe agan", + "Ġ Attributes", + "ĠAt tributes", + "ĠAttribute s", + "- sidebar", + "-s idebar", + "-side bar", + "Ġuse Styles", + "ĠA irlines", + "ĠAir lines", + "Ġh ills", + "Ġhill s", + "Ġhil ls", + "/x html", + "v inc", + "vin c", + "vi nc", + "_ mock", + "_m ock", + "_mo ck", + "Ċ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠP ill", + "ĠPi ll", + "ĠPil l", + ".Layout Style", + "ĠComm ander", + "ĠCommand er", + "] <", + "sign ature", + "sig nature", + "Ġ{ }čĊ", + "Ġ{} čĊ", + "Ġhat red", + "Ġ ëĭ", + "Ġë ĭ", + "ole sterol", + "Ġ ********", + "Ġ* *******", + "Ġ** ******", + "Ġ*** *****", + "Ġ**** ****", + "Ġ***** ***", + "ancel lor", + "ancell or", + "c rop", + "cr op", + "cro p", + "T IM", + "TI M", + "ĉ ĉĊĊ", + "ĉĉ ĊĊ", + "ĉĉĊ Ċ", + "ys qli", + "ysql i", + "u itive", + "uit ive", + "ĉ unset", + "ĉun set", + "_ sel", + "_s el", + "_se l", + "Ġ menus", + "Ġm enus", + "Ġmen us", + "Ġmenu s", + "t ick", + "ti ck", + "tic k", + "Ġcon stitute", + "Ġconstit ute", + "Ġconstitu te", + "Ġ Elements", + "ĠE lements", + "ĠEl ements", + "ĠElement s", + "ĠEle ments", + "ĠElem ents", + "Ġ Redis", + "ĠR edis", + "ĠRe dis", + "ĠRed is", + "ag gio", + "agg io", + "aggi o", + "_ fp", + "_f p", + "_ depend", + "_d epend", + "_de pend", + "_dep end", + "e mas", + "em as", + "ema s", + "C AST", + "CA ST", + "CAS T", + "o range", + "or ange", + "ora nge", + "oran ge", + "orang e", + "j on", + "jo n", + "Ġ Emily", + "ĠEm ily", + "ĠEmil y", + "Ġpot atoes", + "Ġpotato es", + "Ġre ceptor", + "Ġrecept or", + "Ġrecep tor", + "Ġ Electronic", + "ĠElect ronic", + "ĠElectro nic", + "ĠElectron ic", + "Ġ Lights", + "ĠL ights", + "ĠLight s", + "Ġcomb ining", + "Ġcombin ing", + "Ġ Someone", + "ĠSome one", + "Ġ######## .", + "ĠT OD", + "ĠTO D", + "/ show", + "/s how", + "/sh ow", + "X d", + ". \"'", + ".\" '", + "a fx", + "af x", + "Ġtr agic", + "Ġtrag ic", + "St yled", + "Style d", + "Ġ Marco", + "ĠMar co", + "ĠMarc o", + "G allery", + "d ale", + "da le", + "dal e", + ".âĢĿ ĊĊĊĊ", + ".âĢĿĊĊ ĊĊ", + ".âĢĿĊ ĊĊĊ", + "é rie", + "ér ie", + "éri e", + "/ service", + "/s ervice", + "äº Ĩ", + "Ġ ambient", + "Ġamb ient", + "_ SETTINGS", + "_SET TINGS", + "_SETTING S", + ". Adapter", + ".Ad apter", + "l ene", + "le ne", + "len e", + "Ġtravel s", + "Ġtrav els", + "Not ice", + "Ġc leans", + "Ġclean s", + "Ġcle ans", + "ĠF em", + "ĠFe m", + "c hair", + "ch air", + "cha ir", + "chai r", + "Ñĥ н", + "/ my", + "/m y", + "_ bad", + "_b ad", + "ĠE conomics", + "ĠEcon omics", + "ĠEconomic s", + "ĠEconom ics", + "I SA", + "IS A", + "_ CNT", + "_C NT", + "_CN T", + "( Menu", + "(M enu", + "(Me nu", + "äº İ", + "ĠR idge", + "ĠRid ge", + "ĠRi dge", + "Ġlength y", + "Ġleng thy", + "D ot", + "Do t", + "Ġj umps", + "Ġjump s", + "Ġju mps", + "Ġ hey", + "Ġh ey", + "Ġhe y", + "$ pdf", + "$p df", + "Ġ worm", + "Ġw orm", + "Ġwor m", + "Ġwo rm", + "Ġ sut", + "Ġs ut", + "Ġsu t", + "Ġ sher", + "Ġs her", + "Ġsh er", + "Ġshe r", + "i amo", + "ia mo", + "iam o", + "Ġ Calc", + "ĠC alc", + "ĠCal c", + "ĠCa lc", + "t rieve", + "tr ieve", + "trie ve", + "tri eve", + "Ġc ops", + "Ġco ps", + "Ġcop s", + "ĠCh rom", + "ĠChr om", + "Ġ regulated", + "Ġreg ulated", + "Ġregul ated", + "Ġregulate d", + "reat ment", + "Ġ Higher", + "ĠHigh er", + "o ks", + "ok s", + "Ġde ze", + "Ġdez e", + "LOC ATION", + "ongs To", + "Ġ finite", + "Ġf inite", + "Ġfin ite", + "Ġfi nite", + "Ġv aries", + "Ġvar ies", + "Ġvari es", + "Ġva ries", + "Ġposition ed", + "Ġposit ioned", + "' il", + "'i l", + "éĩ ij", + "Ġh ike", + "Ġhi ke", + "Ġhik e", + "( done", + "(d one", + "(do ne", + "play list", + "Ġ ada", + "Ġa da", + "Ġad a", + "Ġcoast al", + "ĠN ancy", + "ĠNa ncy", + "ĠNan cy", + ".DateTime Field", + "Cpp CodeGen", + "Ġ Similarly", + "ĠSimilar ly", + "r eur", + "re ur", + "reu r", + "Ġ Contr", + "ĠCon tr", + "ĠCont r", + "Ġ Hidden", + "ĠH idden", + "ĠHi dden", + "Ġ Beta", + "ĠB eta", + "ĠBe ta", + "ĠBet a", + "at ched", + "atch ed", + "_ install", + "_inst all", + ". Output", + ".Out put", + "Look up", + "ĠRich mond", + "qu ared", + "quare d", + "qua red", + "Ġm anga", + "Ġman ga", + "Ġma nga", + "Ġmang a", + "- controls", + "-control s", + "ĠBer nard", + "ĠBern ard", + "L arge", + "Ġs lices", + "Ġsl ices", + "Ġslice s", + "Ġslic es", + "Ġoff ence", + "Ġoffen ce", + "ĠM ega", + "ĠMe ga", + "ĠMeg a", + "Ġ estar", + "Ġe star", + "Ġes tar", + "Ġest ar", + "Ġesta r", + "Ġj oints", + "Ġjoin ts", + "Ġjo ints", + "Ġjoint s", + "Ġ summ", + "Ġs umm", + "Ġsu mm", + "Ġsum m", + "_ platform", + "_pl atform", + "B uff", + "Buf f", + "Bu ff", + ".add Subview", + "Ġret ained", + "Ġretain ed", + "L etter", + "Let ter", + ". dim", + ".d im", + ".di m", + "Ġess ere", + "Ġesse re", + "ĠS caffold", + "EX PECT", + "EXP ECT", + "ĉ RE", + "ĉR E", + ". longitude", + ".long itude", + "ü nd", + "ün d", + "Ġstat ue", + ". addWidget", + ".add Widget", + "ĠCar ibbean", + "add PreferredGap", + "il de", + "ild e", + "UI Label", + "UIL abel", + "ĠOp port", + "ĠOpp ort", + "Ġim perial", + "Ġimp erial", + "Ġimper ial", + "Ġimpe rial", + "urs ion", + "Ġman date", + "Ġmand ate", + "Ġprom otional", + "Ġpromot ional", + "Ġpromotion al", + "Ġ vk", + "Ġv k", + "ia ÅĤ", + "Ġp yl", + "Ġpy l", + "Ġ Creation", + "ĠC reation", + "ĠCre ation", + "ĠCreat ion", + "о зд", + "оз д", + "Ġsim pler", + "Ġsimple r", + "Ġsimp ler", + "Ġsimpl er", + ". what", + ".w hat", + ".wh at", + "Ġ Recent", + "ĠRe cent", + "ĠRec ent", + "ĠRece nt", + "St orm", + ". quantity", + ".qu antity", + ".quant ity", + "Ġ Lov", + "ĠL ov", + "ĠLo v", + "\" -", + "ub bles", + "ubble s", + "ubb les", + "_ notification", + "_not ification", + "( world", + "(w orld", + "ur ger", + "urg er", + "urge r", + "* (-", + "*( -", + ": \"Ċ", + ":\" Ċ", + "h m", + "an ship", + "ans hip", + "Ġ Almost", + "ĠAl most", + "Ġmotor cycle", + "_ fee", + "_f ee", + "_fe e", + "Ġabs orb", + "Ġabsor b", + "ĠVin cent", + "ĠVince nt", + "Ġs ounded", + "Ġso unded", + "Ġsound ed", + "ÃŃ st", + "ÃŃs t", + "Ġpharm aceutical", + "h tag", + "ht ag", + "hta g", + "ĠK indle", + "ĠKind le", + "ĠKin dle", + "ital ize", + "ĠEm peror", + "ous tic", + "oust ic", + "Ġspecial ists", + "Ġspecialist s", + "åħ ¬", + "Border Style", + "/ \\", + "RE LATED", + "REL ATED", + "(' ,',", + "(', ',", + "(',' ,", + "( expr", + "(ex pr", + "(exp r", + "Ġ ht", + "Ġh t", + "åį Ī", + "_ Create", + "_C reate", + "Ġs pecially", + "Ġspec ially", + "Ġspecial ly", + "Ġspeci ally", + "Ġ [];čĊ", + "Ġ[ ];čĊ", + "Ġ[] ;čĊ", + "Ġ[]; čĊ", + "Ġ heel", + "Ġh eel", + "Ġhe el", + "Ġs ept", + "Ġse pt", + "Ġsep t", + "_ arch", + "_a rch", + "_ar ch", + "_arc h", + "( initial", + "(in itial", + "(init ial", + "% .ĊĊ", + "%. ĊĊ", + "%.Ċ Ċ", + "\\\" ,\\\"", + "\\\", \\\"", + "\\\",\\ \"", + "Ġdisc usses", + "Ġdiscuss es", + "Ġ upt", + "Ġu pt", + "Ġup t", + "Ġ[ &", + "Ġm anus", + "Ġman us", + ". hand", + ".h and", + "Ġ MAIN", + "ĠM AIN", + "ĠMA IN", + "ĠDen mark", + "Ġ ],čĊ", + "Ġ] ,čĊ", + "Ġ], čĊ", + "Ġcr yst", + "Ġcry st", + "Ġn ack", + "Ġna ck", + "Co ords", + "Coord s", + "_ inner", + "_in ner", + "Ġmid st", + "Ġmi dst", + "Ġa wake", + "Ġaw ake", + "Ġ Ðŀ", + "ĠÐ ŀ", + "- break", + "-b reak", + "-bre ak", + "ÃŃ vel", + "ÃŃv el", + "_ PASS", + "_P ASS", + "_PA SS", + "Ġ Params", + "ĠPar ams", + "ĠParam s", + "ĠPa rams", + "ĠPara ms", + "Ġd etr", + "Ġde tr", + "Ġdet r", + "Ġsp ider", + "Ġspi der", + "Ġ Concept", + "ĠCon cept", + "ĠConc ept", + "ĠConce pt", + "Ġ prend", + "Ġp rend", + "Ġpr end", + "Ġpre nd", + "CH ED", + "CHE D", + ". Exit", + ".Ex it", + ".E xit", + "Ġpop ulated", + "Ġpopulate d", + "Ġpopul ated", + "Ġvirt ue", + "_ SESSION", + "_SE SSION", + "Ġnou vel", + "Ġnouve l", + "o auth", + "oa uth", + "Ġд аннÑĭ", + "Ġдан нÑĭ", + "r ink", + "ri nk", + "rin k", + ". HeaderText", + ".Header Text", + "atur ated", + "atura ted", + "atu rated", + "Ġe rst", + "Ġer st", + "Ġers t", + "Ġ åħ", + "Ġå ħ", + "ॠĩ", + "_ visible", + "_v isible", + "_vis ible", + "e yer", + "ey er", + "eye r", + "Ġ liable", + "Ġl iable", + "Ġli able", + "Ġlia ble", + "Ġd ebe", + "Ġde be", + "Ġdeb e", + "Ġ bw", + "Ġb w", + "{- #", + "_ WIN", + "_W IN", + "d fs", + "df s", + "H over", + "Ho ver", + "Ġ PUT", + "ĠP UT", + "ĠPU T", + "- angle", + "-a ngle", + "-an gle", + "Ġn oble", + "Ġno ble", + "Ġnob le", + "Ġtr aces", + "Ġtra ces", + "Ġtrace s", + "en cv", + "enc v", + "Ġ userData", + "Ġuser Data", + "_ ins", + "_in s", + "_i ns", + "ĠS uz", + "ĠSu z", + "Ġnews letters", + "Ġnewsletter s", + "ĠM odi", + "ĠMod i", + "ĠMo di", + "Ġentreprene urs", + "Ġentrepreneur s", + "Ġ tribute", + "Ġtrib ute", + "Ġrum ors", + "Ġrumor s", + "Ġ rr", + "Ġr r", + "Ġ Quarter", + "ĠQu arter", + "ĠQuart er", + "ĠQuar ter", + "ê³ ł", + "Ġ feeds", + "Ġfe eds", + "Ġfeed s", + "Ġfee ds", + "ó g", + "Ġen velope", + "Ġenv elope", + "Ġenvelop e", + "Ġ lear", + "Ġl ear", + "Ġle ar", + "Ġk ø", + "de veloper", + "develop er", + "S imilar", + "Sim ilar", + ": \")Ċ", + ":\" )Ċ", + ":\") Ċ", + "sub scription", + "subs cription", + "Mod ifier", + "it alic", + "ital ic", + "ita lic", + "Ġn asty", + "Ġna sty", + "Ġnas ty", + "Ġnast y", + "Ġ termination", + "Ġter mination", + "Ġterm ination", + "Ġtermin ation", + "Ġch arming", + "Ġchar ming", + "Ġcharm ing", + "Ġ âŁ", + "Ġâ Ł", + "t ons", + "ton s", + "to ns", + ". trace", + ".t race", + ".tr ace", + "h ots", + "ho ts", + "hot s", + "Ġ UR", + "ĠU R", + "M ont", + "Mon t", + "Mo nt", + "Ġjust ified", + "ĠG ang", + "ĠGa ng", + "ĠGan g", + "i nea", + "in ea", + "ine a", + "Ġb og", + "Ġbo g", + "( ap", + "(a p", + "_ $", + "Ġcont amin", + "Ġconta min", + ". Dot", + ".D ot", + ".Do t", + "ĉ Debug", + "( exports", + "(ex ports", + "(exp orts", + "Ġ paired", + "Ġp aired", + "Ġpair ed", + "Ġpa ired", + "Ġpai red", + "Ġ Assignment", + "ĠAss ignment", + "ĠAssign ment", + "Ġauto mobile", + "Ġautom obile", + "ĵ į", + "Ġph ases", + "Ġphase s", + "Ġpha ses", + "v w", + "@ SuppressWarnings", + "= \\", + "r ant", + "ra nt", + "ran t", + "- ed", + "-e d", + "ĉ await", + "ĉa wait", + "Ġcert ificates", + "Ġcertificate s", + "Ġcertif icates", + "' >\"", + "'> \"", + "Ġint act", + "C TRL", + "CT RL", + "CTR L", + "M ike", + "Mi ke", + "g regation", + "greg ation", + "AT TERN", + "ATT ERN", + "ATTER N", + "Ġre public", + "Ġrep ublic", + "_ upper", + "_u pper", + "_up per", + "ili ary", + "iliar y", + "ilia ry", + "Ġcom putation", + "Ġcomp utation", + "Ġcomput ation", + "h ire", + "hi re", + "hir e", + "ĠS hin", + "ĠSh in", + "ĠShi n", + "_ ANY", + "_A NY", + "_AN Y", + "Ġ Manufacturer", + "ĠMan ufacturer", + "ĠManufact urer", + "ĠC arm", + "ĠCar m", + "ĠCa rm", + "Ġbear ings", + "Ġbearing s", + "_ comb", + "_c omb", + "_com b", + "_co mb", + "c ad", + "ca d", + "ur istic", + "Ġwh olesale", + "Ġwhole sale", + "Ġwholes ale", + "Ġd onor", + "Ġdo nor", + "Ġdon or", + ". interfaces", + ".inter faces", + ".interface s", + "pr esso", + "press o", + "pres so", + "Ġ Brun", + "ĠB run", + "ĠBr un", + "ĠBru n", + "- close", + "-c lose", + "-cl ose", + "p rove", + "pr ove", + "pro ve", + "prov e", + "_ SK", + "_S K", + "ĉ frame", + "ĉf rame", + "ĉfr ame", + "et ros", + "etro s", + "etr os", + "ĠP ain", + "ĠPa in", + "ĠPai n", + "_ EXP", + "_E XP", + "_EX P", + "Ġ LT", + "ĠL T", + "_ fs", + "_f s", + ". datas", + ".d atas", + ".data s", + ".dat as", + ".da tas", + "ĉ ss", + "ĉs s", + "v oir", + "vo ir", + "Ġ Axis", + "ĠA xis", + "ĠAx is", + "M ajor", + "= \"<", + "=\" <", + "[ h", + "Ġprof ess", + "Ġprofes s", + "ig rate", + "igr ate", + "( score", + "(s core", + "(sc ore", + "Key word", + "\" os", + "ĠĠ ĠĠĉĊ", + "ĠĠĠĠ ĉĊ", + "ĠĠĠ ĠĉĊ", + "ĠĠĠĠĉ Ċ", + "an alysis", + "analy sis", + "anal ysis", + "Ġre play", + "Ġrep lay", + "Ġrepl ay", + ". pass", + ".p ass", + ".pa ss", + "\\ d", + "t ls", + "tl s", + "Ġsan ct", + ". light", + ".l ight", + ".li ght", + "_ mobile", + "_m obile", + "_mob ile", + "Ñģ ÑĤÑĮ", + "ÑģÑĤ ÑĮ", + "ĉ total", + "ĉt otal", + "ĉto tal", + "u ity", + "ui ty", + "uit y", + "Ġ paused", + "Ġpa used", + "Ġpause d", + "Ġpau sed", + "N AS", + "NA S", + "Ġen core", + "Ġenc ore", + "l oe", + "lo e", + "Ġ-* -ĊĊ", + "Ġ-*- ĊĊ", + "Ġ-*-Ċ Ċ", + ". high", + ".h igh", + "am pler", + "amp ler", + "ample r", + "Ġ Secure", + "ĠS ecure", + "ĠSec ure", + "Ġf ragments", + "Ġfra gments", + "Ġfrag ments", + "Ġfragment s", + "_ vel", + "_v el", + "_ve l", + "ill ary", + "illa ry", + "ĠS tein", + "ĠSt ein", + "ĠSte in", + "ĠD awn", + "ĠDa wn", + "ĠDaw n", + "Ġmax imize", + "Ġmaxim ize", + "ภ¢", + "Ġ /^", + "Ġ/ ^", + "Ġcontin ually", + "Ġcontinu ally", + "Ġcontinual ly", + "Ġsh adows", + "Ġshadow s", + "ĉ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĉĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠI ActionResult", + "Ġinform ación", + "C HECK", + "CHE CK", + ". SelectedItem", + ".Selected Item", + "b undle", + "ol ley", + "oll ey", + "olle y", + "< Int", + "<", + "\\\" ><", + "\\\"> <", + "Ġ trajectory", + "Ġtra jectory", + "_ ring", + "_r ing", + "Ġhydro gen", + "Ġhydr ogen", + "t ron", + "tr on", + "tro n", + "Ġstat ute", + "Ġ conditional", + "Ġcondition al", + "Ġcond itional", + "Ġt ray", + "Ġtr ay", + "Ġtra y", + "- school", + "-s chool", + "( widget", + "(w idget", + "$ config", + "$con fig", + "Ġrequest ing", + "Ġrequ esting", + ". uint", + ".ui nt", + ".u int", + "e ton", + "et on", + "eto n", + "br ities", + "brit ies", + "Of Type", + "A DMIN", + "AD MIN", + "ADM IN", + "p redict", + "pre dict", + "pred ict", + "Ġg egen", + "Ġge gen", + "Ġgeg en", + "ĠH app", + "ĠHa pp", + "OC UMENT", + "Ġ Apart", + "ĠA part", + "ĠAp art", + "Ġ -----", + "Ġ- ----", + "Ġ-- ---", + "Ġ---- -", + "Ġ--- --", + "r oe", + "ro e", + "u ide", + "ui de", + "uid e", + "just ify", + "ĠS quad", + "ĠSqu ad", + "Ġprof es", + ". bot", + ".b ot", + ".bo t", + "_ currency", + "_c urrency", + "_curr ency", + "i nnen", + "in nen", + "inn en", + "inne n", + "ĠM umbai", + "ĠMum bai", + "Ġ Numbers", + "ĠNumber s", + "ĠNum bers", + "avana ugh", + "agn itude", + "âĢľ There", + "âĢľThe re", + "= http", + "=h ttp", + "çī ĩ", + "Ġ vb", + "Ġv b", + "+ '{{$", + "\"> {{$", + "\">{{ $", + "\">{ {$", + "Ġ inode", + "Ġin ode", + "Ġi node", + "s il", + "si l", + "Ġh ace", + "Ġha ce", + "Ġhac e", + "Ġsever ely", + "Ġsevere ly", + "Ġ Overview", + "ĠOver view", + "ĠOv erview", + "Ġsp raw", + "Ġspr aw", + "Ġbe aches", + "Ġbeach es", + ": left", + ":l eft", + "· »", + "( ${", + "($ {", + "Ġ FIRST", + "ĠF IRST", + "ĠFIR ST", + "ĠS pa", + "ĠSp a", + "- ass", + "-a ss", + "-as s", + "Ġb aise", + "Ġba ise", + "Ġbais e", + "Ġ NODE", + "ĠN ODE", + "ĠNO DE", + "Ġ Pizza", + "ĠP izza", + "ĠPi zza", + "P et", + "Pe t", + "( seq", + "(s eq", + "(se q", + "\\ \">Ċ", + "\\\" >Ċ", + "\\\"> Ċ", + "CppMethod Pointer", + "Ġ vp", + "Ġv p", + "Ġ ia", + "Ġi a", + "_ seconds", + "_se conds", + "_sec onds", + "_second s", + "e met", + "em et", + "eme t", + "/ blob", + "/b lob", + "/bl ob", + "_TH RESH", + ".. .čĊ", + "... čĊ", + "D est", + "De st", + "Des t", + "Ġ NH", + "ĠN H", + ". dataSource", + ".data Source", + "it és", + "ité s", + "Ġ Jak", + "ĠJ ak", + "ĠJa k", + "s ell", + "se ll", + "sel l", + "Ġwork shops", + "Ġworkshop s", + "< u", + "Ġr ivals", + "Ġrival s", + "Ġri vals", + "Ġriv als", + "ĠEX ISTS", + "h om", + "ho m", + "- token", + "-t oken", + "-to ken", + "com patible", + "compat ible", + ".J Panel", + "Ġphys icians", + "Ġphysician s", + "Ġphysic ians", + "ar tin", + "art in", + "arti n", + "Ġdes irable", + "Ġdistinct ive", + ". Dep", + ".D ep", + ".De p", + "g id", + "gi d", + "il iate", + "ili ate", + "ilia te", + ", max", + ",m ax", + "Ġprem iere", + "Ġpremier e", + "Ġpremi ere", + "Ġq Debug", + "Ġadvoc acy", + "Ġwh isper", + "P t", + "Ġun changed", + "_ qty", + "_q ty", + "请 æ±Ĥ", + "Se ason", + "Sea son", + "ave length", + "avel ength", + "ĠP ul", + "ĠPu l", + "Ġd ÃŃa", + "ĠdÃŃ a", + "'] ]],Ċ", + "']] ],Ċ", + "a lis", + "al is", + "ali s", + "( \"&", + "(\" &", + "b oro", + "bo ro", + "bor o", + "Ġ bm", + "Ġb m", + "Ġ Radi", + "ĠR adi", + "ĠRa di", + "ĠRad i", + "w rong", + "wr ong", + "Ġ Going", + "ĠGo ing", + "ime Type", + "i ji", + "ij i", + "- feedback", + "-fe edback", + "-feed back", + "Ġ Names", + "ĠN ames", + "ĠName s", + "ĠNa mes", + "ĠNam es", + "ĠB apt", + "ĠBa pt", + "Ġpro bable", + "Ġprob able", + "Ġ Ether", + "ĠE ther", + "ĠEth er", + "ĠEt her", + "Ġ Politics", + "ĠPol itics", + "ĠPolit ics", + "_ protocol", + "_prot ocol", + "_proto col", + "l ining", + "li ning", + "lin ing", + "S at", + "Sa t", + "Ġcor rel", + "Ġcorre l", + "Ġcorr el", + ". Primary", + ".Pr imary", + "( nullable", + "(null able", + "RI ORITY", + "Ġcol oring", + "Ġcolor ing", + "Ġutil izing", + "Ġutiliz ing", + "d as", + "da s", + "Ġex ported", + "Ġexp orted", + "Ġexport ed", + "Ġcar riers", + "Ġcarrier s", + "Ġcarr iers", + "Con v", + "Co nv", + ". editor", + ".e ditor", + ".ed itor", + ".edit or", + "i ó", + "( handles", + "(h andles", + "(handle s", + "(hand les", + "Ġapprec iation", + ". import", + ".im port", + ".imp ort", + "ĠA ustria", + "ĠAust ria", + "ĠAustr ia", + "Ġ Strip", + "ĠS trip", + "ĠSt rip", + "ĠStr ip", + "i light", + "il ight", + "ili ght", + "ilig ht", + "Ġappropri ately", + "Ġappropriate ly", + "ĠP rest", + "ĠPr est", + "ĠPres t", + "ĠPre st", + "Ġ Wir", + "ĠW ir", + "ĠWi r", + "Ġ UIApplication", + "ĠUI Application", + "al chemy", + "Ġ Mob", + "ĠM ob", + "ĠMo b", + "Ġ Determin", + "ĠD etermin", + "ĠDe termin", + "ergus on", + "register ed", + "regist ered", + "_ convert", + "_con vert", + "_conv ert", + "ĠVlad imir", + "ĠVladim ir", + ".Show Dialog", + "ref lect", + "Ġs hook", + "Ġsh ook", + "Ġsho ok", + "Ġas sure", + "Ġass ure", + "Ġ Often", + "ĠO ften", + "ĠOf ten", + "Ġcivil ization", + "Ġv ocabulary", + "Ġvocab ulary", + "fore ground", + "Ġ Scope", + "ĠS cope", + "ĠSc ope", + "ĠSco pe", + "Ġun wanted", + "Ġunw anted", + "act ing", + "ac ting", + "Ġ ([]", + "Ġ( []", + "Ġ([ ]", + "Ġm arking", + "Ġmark ing", + "Ġmar king", + ". original", + ".origin al", + ".or iginal", + ".orig inal", + "Ġ MOVE", + "ĠM OVE", + "ĠMO VE", + "ĠMOV E", + "Ġsp orting", + "Ġsport ing", + "Ġspor ting", + "ce ptions", + "ception s", + "cept ions", + "NS Number", + "S izes", + "Size s", + "Si zes", + "Ġpro vincial", + "Ġprovinc ial", + "Ġprovincia l", + "_ Trans", + "_T rans", + "_Tr ans", + "Ġproble matic", + "Ġproblem atic", + "Ġproblema tic", + "Ġprobl ematic", + "d igit", + "di git", + "dig it", + "Ġ Emma", + "ĠE mma", + "ĠEm ma", + "ĠEmm a", + "l ocks", + "lo cks", + "lock s", + "loc ks", + "ĠC rew", + "ĠCr ew", + "ĠCre w", + "i ba", + "ib a", + "' ):", + "') :", + "i sha", + "is ha", + "ish a", + "Ġm amm", + "Ġma mm", + "Ġmam m", + "Ġocc ured", + "Ġoccur ed", + "w cs", + "wc s", + "( rule", + "(r ule", + "Ġmerch andise", + "es pecially", + "ĠT win", + "ĠTw in", + "Ġn aming", + "Ġna ming", + "Ġnam ing", + "Ġs log", + "Ġsl og", + "Ġslo g", + "Ġimpro ves", + "Ġimprove s", + "Ġimpr oves", + "Ġimprov es", + "Ġad her", + ": text", + ":t ext", + ".h adoop", + "_ HTTP", + "_HT TP", + ". toList", + ".to List", + ". disabled", + ".dis abled", + ".disable d", + "Ġl enses", + "Ġlen ses", + "Ġlens es", + ". ini", + ".in i", + ".i ni", + "Ġ Rare", + "ĠR are", + "ĠRa re", + "Ġ Ubuntu", + "ĠUb untu", + "Ġsc ram", + "Ġscr am", + "o lation", + "ol ation", + "ola tion", + "t itulo", + "tit ulo", + "Every thing", + "Ġnod ded", + "icht ig", + "_ constant", + "_con stant", + "_const ant", + "_cons tant", + "z c", + "l ift", + "li ft", + "lif t", + "Ġ Notify", + "ĠN otify", + "ĠNot ify", + "o ndo", + "on do", + "ond o", + "Ġ INF", + "ĠI NF", + "ĠIN F", + "( \"+", + "(\" +", + "ĠK az", + "ĠKa z", + "Ġd read", + "Ġdr ead", + "Ġdre ad", + ". mapper", + ".m apper", + ".map per", + ".ma pper", + "l eur", + "le ur", + "ĠCom ey", + "ĠCo mey", + "ĠCome y", + "Ġ NB", + "ĠN B", + "i cers", + "ic ers", + "ice rs", + "icer s", + ". Push", + ".P ush", + "Ġ Hack", + "ĠH ack", + "ĠHa ck", + "ĠBrazil ian", + "ĠBraz ilian", + "_ prod", + "_p rod", + "_pro d", + "_pr od", + "Ġ //ĊĊ", + "Ġ// ĊĊ", + "Ġ/ /ĊĊ", + "Ġ//Ċ Ċ", + "Ġb icycle", + "Ġbi cycle", + "Ġbicy cle", + "Ġbic ycle", + "Ġun available", + "Ġuna vailable", + "Ġadoles cent", + "b lk", + "bl k", + "Ġmit ig", + "_ blue", + "_b lue", + "_bl ue", + "ì ĺ", + "fade In", + "Ġ Utilities", + "ĠUtil ities", + "ĠUt ilities", + "Ġ MN", + "ĠM N", + "; k", + "< style", + "- status", + "-s tatus", + "-st atus", + "-stat us", + "i ndo", + "in do", + "ind o", + "Ġin nings", + "Ġinn ings", + "Ġinning s", + "Ġg j", + "Ġ| |=", + "Ġ|| =", + ". eu", + ".e u", + ": Number", + ":N umber", + "Ġc uisine", + "Ġcu isine", + "Ġcuis ine", + "ĠURL s", + "i ek", + "ie k", + "Ġw ires", + "Ġwire s", + "Ġwir es", + "Ġwi res", + "ĉ ps", + "ĉp s", + "i eg", + "ie g", + ". mk", + ".m k", + "so ap", + "Ġsome time", + "Ġsom etime", + "Ġs tap", + "Ġst ap", + "Ġsta p", + "_ series", + "_s eries", + "_se ries", + "_ser ies", + ". Target", + ".T arget", + "æ º", + ". destination", + ".d estination", + ".dest ination", + "OUN TER", + "OUNT ER", + "R aises", + "Ra ises", + "Raise s", + "& A", + "Ġsmart phones", + "Ġsmartphone s", + "NI Env", + ". sdk", + ".s dk", + ".sd k", + "Ġhel icopter", + "Ġhelicopt er", + "Ġim pe", + "Ġimp e", + "Ġ Birth", + "ĠB irth", + "ĠBir th", + "A U", + "b readcrumbs", + "breadcrumb s", + "co ords", + "coord s", + "Ġexpl ored", + "Ġexplo red", + "Ġexplore d", + "Ġexplor ed", + "Ġ lod", + "Ġl od", + "Ġlo d", + "Ġ Ip", + "ĠI p", + "g able", + "ga ble", + "i ane", + "ia ne", + "ian e", + "Ġart ifacts", + "Ġartifact s", + "Box Layout", + "ا ر", + "Ø§Ø ±", + "list ener", + "listen er", + "lis tener", + "liste ner", + ". cart", + ".c art", + ".ca rt", + ".car t", + "ĠH uff", + "ĠHu ff", + "ĠHind u", + "ĠHin du", + "ĠData Types", + "ĠDataType s", + "Ġ Drupal", + "ĠDr upal", + "IGN ORE", + "Ġoff sets", + "Ġoffset s", + "Ġoffs ets", + "Ġ RTC", + "ĠR TC", + "ĠRT C", + "- login", + "-lo gin", + "-log in", + "æ ®", + "Ġ QObject", + "ĠQ Object", + "Ġprosec utor", + "R ock", + "Ro ck", + "_ chat", + "_c hat", + "_ch at", + "W ay", + "Wa y", + "ì ²", + "Ġneg lig", + "Ġd ude", + "Ġdu de", + "; <", + "Ġde legates", + "Ġdelegate s", + "Ġdeleg ates", + "_ failed", + "_f ailed", + "_fail ed", + "_fa iled", + "/ dev", + "/d ev", + "/de v", + "/ work", + "/w ork", + "( New", + "(N ew", + "e table", + "et able", + "eta ble", + "( )\"", + "() \"", + "( Icons", + "(I cons", + "Ġp ork", + "Ġpo rk", + "Ġpor k", + "ĠModel AndView", + "Ġ VIP", + "ĠV IP", + "ĠVI P", + "ĠK or", + "ĠKo r", + "m ix", + "mi x", + "Ġ oxid", + "Ġox id", + "Ġ SCREEN", + "ĠS CREEN", + "ĠSC REEN", + "Ġ Fourth", + "ĠFour th", + "/ \",Ċ", + "/\" ,Ċ", + "/\", Ċ", + "Ġ tee", + "Ġt ee", + "Ġte e", + "ĠSte vens", + "ĠSteve ns", + "ĠSteven s", + "t icks", + "ti cks", + "tic ks", + "tick s", + "Ġp ledge", + "Ġpl edge", + "Ġple dge", + "Ġpled ge", + "ib bon", + "Ġ Loan", + "ĠLo an", + "Ġ neo", + "Ġn eo", + "Ġne o", + "n umpy", + "num py", + "Ġ SharedPreferences", + "ĠShared Preferences", + "- oriented", + "ĠLogger Factory", + "Ġ GraphQL", + "ĠGraph QL", + "z enia", + "ze nia", + "zen ia", + "\" _", + "W omen", + "Wo men", + ". cast", + ".c ast", + ".ca st", + "Ġdeliber ately", + "Ġdeliberate ly", + "+ b", + "Ġ Arn", + "ĠA rn", + "ĠAr n", + "font Size", + "Ġ maze", + "Ġm aze", + "Ġma ze", + "Ġmaz e", + "Ġbl amed", + "Ġblame d", + "Ġbla med", + ". mas", + ".m as", + ".ma s", + "} )čĊ", + "}) čĊ", + "eler ik", + "ele rik", + "eleri k", + "Ġsc anning", + "Ġscan ning", + "ĠWork shop", + "ĠWorks hop", + "Ġf inden", + "Ġfind en", + "Ġfin den", + "Ġfinde n", + "Ġc aut", + "Ġca ut", + "UI Font", + "( return", + "(r eturn", + "(re turn", + "(ret urn", + "a lin", + "al in", + "ali n", + "c astle", + "cast le", + "cas tle", + "//// ////////////////////////////////////////////////////////////////////", + "//////// ////////////////////////////////////////////////////////////////", + "//////////////// ////////////////////////////////////////////////////////", + "//////////////////////////////////////////////////////////////// ////////", + "//////////// ////////////////////////////////////////////////////////////", + "//////////////////////////////////////////////////////////////////// ////", + "//////////////////////////////////////////////////////// ////////////////", + "//////////////////////////////////////////////////////////// ////////////", + "Ġincent ive", + "Ġincentiv e", + "o path", + "op ath", + "opa th", + "b lob", + "bl ob", + "blo b", + "Ġcigaret te", + "Ġcigar ette", + "Ġf ertil", + "Ġfer til", + "Ġfert il", + "* /ĊĊĊ", + "*/ ĊĊĊ", + "*/Ċ ĊĊ", + "*/ĊĊ Ċ", + "Ġ Shar", + "ĠS har", + "ĠSh ar", + "ĠSha r", + "Ċ ĠĠĠĠĠĠĊ", + "Ġunc ertain", + "Ġuncert ain", + "ĠS ton", + "ĠSt on", + "ĠSto n", + "Oper ations", + "Operation s", + "ĠSp encer", + "Ġde fin", + "Ġdef in", + "Ġ Solo", + "ĠS olo", + "ĠSo lo", + "ĠSol o", + "o nest", + "on est", + "one st", + "ones t", + "·» åĬł", + "Ġu omo", + "Ġuom o", + "G ive", + "Gi ve", + "Ġden tro", + "Ġdent ro", + "; padding", + ";p adding", + "ent ai", + "enta i", + "Ġ Cars", + "ĠC ars", + "ĠCar s", + "ĠCa rs", + "Ġenthus iasm", + "Ġenthusi asm", + "Ġ Operating", + "ĠOper ating", + "ĠOpera ting", + "S kip", + "Sk ip", + "par ation", + "pa ration", + "para tion", + "Ġprot ects", + "Ġprote cts", + "Ġprotect s", + "Ġre ver", + "Ġr ever", + "Ġrev er", + "Ġreve r", + "d g", + "ĠC incinnati", + "Ġconsect etur", + "Ġm uss", + "Ġmus s", + "Ġmu ss", + "employ ed", + "a uses", + "au ses", + "ause s", + "aus es", + "in kle", + "ink le", + ". Values", + ".Value s", + ".Val ues", + "£ ¼", + "l ov", + "lo v", + "_ WARN", + "_W ARN", + "Ġ bookmark", + "Ġbook mark", + "Ġ Apollo", + "ĠA pollo", + "ĠAp ollo", + ". axis", + ".a xis", + ".ax is", + "Ġm ét", + "Ġmé t", + "Ġop ener", + "Ġopen er", + "Ġt umor", + "Ġtu mor", + "Ġtum or", + "d an", + "da n", + "Ġelement ary", + "Ġsk ipped", + "Ġskip ped", + "Ġski pped", + "ĠK er", + "ĠKe r", + "as ia", + "asi a", + "_ resp", + "_re sp", + "_r esp", + "_res p", + "Ġde mol", + "Ġdem ol", + "Ġdemo l", + "ĠCan adians", + "ĠCanadian s", + "Ġt astes", + "Ġtaste s", + "Ġtas tes", + "Ġtast es", + "U Integer", + "UInt eger", + "Ġ' ${", + "Ġ'$ {", + ". aws", + ".a ws", + ".aw s", + "R OID", + "RO ID", + "ROI D", + "r ians", + "ri ans", + "ria ns", + "rian s", + "M Q", + "ord able", + "orda ble", + "Ġcou sin", + "Ġcous in", + "Prop agation", + "( Session", + "(S ession", + "p halt", + "ph alt", + "pha lt", + "U LD", + "UL D", + "Ġ Scalar", + "ĠS calar", + "ĠSc alar", + "ĠScala r", + "ĠScal ar", + "Ġblood y", + "Ġblo ody", + "Ġ à¦", + "Ġà ¦", + ". mask", + ".m ask", + ".mas k", + ".ma sk", + ", q", + "Ġ Units", + "ĠUn its", + "ĠUnit s", + "ĠUni ts", + "Ġcent res", + "Ġcentre s", + "Ġcentr es", + "Ġcen tres", + "Ġ Prim", + "ĠP rim", + "ĠPr im", + "ĠPri m", + ". ]ĊĊ", + ".] ĊĊ", + "ĠSh aw", + "ĠSha w", + "P rom", + "Pro m", + "Pr om", + "Ġ Thought", + "ĠTh ought", + "ĠThough t", + "ĠThou ght", + "Check er", + "Che cker", + "_ outputs", + "_out puts", + "_output s", + "( chan", + "(c han", + "(ch an", + "E INVAL", + "Ġ bob", + "Ġb ob", + "Ġbo b", + "_ cmp", + "_c mp", + "_cm p", + "P ed", + "Pe d", + "Ġmat rices", + "Ġvrou wen", + "Ġvrouw en", + "Ġgenu inely", + "Ġgenuine ly", + "high light", + "( display", + "(d isplay", + "(dis play", + ") !=", + ")! =", + "Ġde licate", + "Ġdel icate", + "Ġdelic ate", + "ĠL uther", + "ĠLu ther", + "ĠM iles", + "ĠMil es", + "ĠMi les", + "ĠMile s", + "Ġ userID", + "Ġuser ID", + "% =", + "at eurs", + "ate urs", + "ateur s", + "_ BUF", + "_B UF", + "_BU F", + "- ------Ċ", + "-- -----Ċ", + "---- ---Ċ", + "--- ----Ċ", + "----- --Ċ", + "------ -Ċ", + "------- Ċ", + "im itives", + "imit ives", + "imitive s", + "Ġsh elves", + "Ġshel ves", + "s low", + "sl ow", + "_ information", + "_in formation", + "L EG", + "LE G", + "W r", + ". forms", + ".for ms", + ".form s", + "c eland", + "ce land", + "cel and", + "cela nd", + "/ un", + "/u n", + ": &", + ". âĢĻĊĊ", + ".âĢĻ ĊĊ", + "= \"%", + "=\" %", + "Ġp rost", + "Ġpro st", + "Ġpr ost", + "Ġpros t", + "Ġ fontsize", + "Ġfont size", + "Ġfonts ize", + "u ción", + "uc ión", + "uci ón", + "g etic", + "get ic", + "ge tic", + "a mt", + "am t", + "= \".", + "=\" .", + "De cor", + "Dec or", + "B rit", + "Br it", + "Ġ\" \").", + "Ġ\"\" ).", + "Ġ\"\") .", + "Ġf ounding", + "Ġfound ing", + "Ġfo unding", + ". FileName", + ".File Name", + "Ġ Tier", + "ĠT ier", + "ĠTi er", + "ĠTie r", + "Ġdis close", + "Ġdisc lose", + "á m", + ". syn", + ".s yn", + ".sy n", + ". ViewHolder", + ".View Holder", + "lic ant", + "li cant", + "lica nt", + "_ stage", + "_st age", + "_sta ge", + "Mon day", + "Ġ deserialize", + "Ġde serialize", + "Ġdes erialize", + "t alk", + "ta lk", + "tal k", + "Ġtrad itionally", + "Ġtraditional ly", + "Ġtradition ally", + "æĢ ģ", + "Ø ®", + "L EX", + "LE X", + "Ġ eh", + "Ġe h", + "ĉ ROM", + "ĉR OM", + "Ġ {})Ċ", + "Ġ{ })Ċ", + "Ġ{} )Ċ", + "Ġ{}) Ċ", + "Question s", + "Quest ions", + "n cpy", + "nc py", + "Ġfix ing", + "Ġfi xing", + "к Ñĥ", + "_ Key", + "_K ey", + ": x", + "Ġ STRING", + "ĠST RING", + "ĠSTR ING", + "ĠÑĦ ай", + "ĉ left", + "ĉl eft", + "ĠB ench", + "ĠBen ch", + "el lij", + "ell ij", + "elli j", + "UR RED", + "URRE D", + "Ġ Diagram", + "ĠDi agram", + "ĠDia gram", + "} catch", + "/ time", + "/t ime", + "Ġ Missing", + "ĠM issing", + "ĠMiss ing", + "ĠMis sing", + "db name", + "Ġs ore", + "Ġso re", + "Ġsor e", + "ĠW alt", + "ĠWal t", + "ĠWa lt", + "ug ging", + "ugg ing", + "re present", + "rep resent", + "Ġ GS", + "ĠG S", + "ne ys", + "ney s", + "ĉ page", + "ĉp age", + "Ġvol can", + "( btn", + "(b tn", + "(bt n", + "Ġexceed s", + "Ġexce eds", + "Ġ erg", + "Ġe rg", + "Ġer g", + "Ġpi lots", + "Ġpil ots", + "Ġpilot s", + "ĠS ed", + "ĠSe d", + "ers ions", + "ersion s", + "Ġp atron", + "Ġpat ron", + "Ġpa tron", + "R V", + "/ top", + "/t op", + "/to p", + ". asset", + ".as set", + "_ cross", + "_c ross", + "_cr oss", + ". Editor", + ".E ditor", + ".Edit or", + ".Ed itor", + ". tb", + ".t b", + "Ġwel coming", + "S CREEN", + "SC REEN", + ") findViewById", + "C oder", + "Code r", + "Co der", + "Cod er", + " \",Ċ", + ">\" ,Ċ", + ">\", Ċ", + "_ Pin", + "_P in", + "u ese", + "ue se", + "ues e", + "Ġ overrides", + "Ġover rides", + "Ġoverride s", + "_ ready", + "_re ady", + "_read y", + "Ad vanced", + "Adv anced", + "Advance d", + "Ġ opi", + "Ġo pi", + "Ġop i", + "- cart", + "-c art", + "-car t", + "-ca rt", + "(\" /\",", + "(\"/ \",", + "ĠD eb", + "ĠDe b", + "C RY", + "CR Y", + "Ġ Vertical", + "ĠVer tical", + "ĠVert ical", + "Ġ OVER", + "ĠO VER", + "ĠOV ER", + "Ġ Corporate", + "ĠCor porate", + "ĠCorpor ate", + "ĠCorp orate", + "Ġ\" \";", + "Ġ\"\" ;", + "Ġstep ping", + "Ġste pping", + "e j", + "Ġaccus ations", + "Ġaccusation s", + "Ġo raz", + "Ġor az", + "Ġora z", + "_ tail", + "_t ail", + "_ta il", + "Ġin duced", + "Ġind uced", + "Ġindu ced", + "Ġinduce d", + "Ġ elastic", + "Ġe lastic", + "Ġel astic", + "Ġelast ic", + "Ġbl own", + "Ġblow n", + "Ġblo wn", + ", //", + ",/ /", + "Ġback grounds", + "Ġbackground s", + "âĢĻ une", + "âĢĻun e", + "- sdk", + "-s dk", + "Ġset Interval", + "Ġincent ives", + "Ġincentive s", + "Ġincentiv es", + "Ġveget able", + "Ġveg etable", + "_ On", + "_O n", + "exp anded", + "expand ed", + "p ix", + "pi x", + "_ shader", + "_sh ader", + "_sha der", + "ĠSP DX", + "ĠSPD X", + "@ example", + "Ġ Wrapper", + "ĠW rapper", + "ĠWr apper", + "ĠWrap per", + ". Zero", + ".Z ero", + "Pos itive", + "Ġ spinner", + "Ġsp inner", + "Ġspin ner", + "Ġin vented", + "Ġinv ented", + "Ġinvent ed", + "ĠG ates", + "ĠGa tes", + "ĠGate s", + "ĠGat es", + "о ÑĤоÑĢ", + "оÑĤ оÑĢ", + "оÑĤо ÑĢ", + "Ġcompar isons", + "Ġcomparison s", + "è ·", + ". primary", + ".pr imary", + "data Provider", + "add itional", + "ĉ options", + "ĉo ptions", + "ĉopt ions", + "ĉoption s", + "s napshot", + "snap shot", + ".set Horizontal", + "Ġ\" {}", + "Ġ\"{ }", + "ĠF isher", + "ĠFish er", + "ĠFi sher", + "h alten", + "hal ten", + "halt en", + "< Type", + "", + "Ġ) ->", + "Ġ Registered", + "ĠRegister ed", + "IN ED", + "INE D", + "k al", + "ka l", + "par ison", + "Ġobj eto", + "Ġobjet o", + "V i", + "m anda", + "man da", + "ma nda", + "mand a", + "Ġren ewed", + "Ġrenew ed", + "ĠS of", + "ĠSo f", + "e ssel", + "es sel", + "ess el", + "esse l", + ".nd array", + "Ġ crap", + "Ġc rap", + "Ġcr ap", + "Ġcra p", + "ç® ¡", + ".abs path", + ".ab spath", + "( up", + "(u p", + "Ġclear ance", + "Ġ TW", + "ĠT W", + "_ COPY", + "_C OPY", + "_CO PY", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĉ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĉ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĉ", + "ĠĠĠĠĠĠĠĠĠĠĠ Ġĉ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĉ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĉ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĉ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĉ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĉ", + "Ġfor ests", + "Ġfore sts", + "Ġforest s", + "Ġfores ts", + "Ġarg uably", + "Ġ ASS", + "ĠA SS", + "ĠAS S", + "h ey", + "he y", + "a mel", + "am el", + "ame l", + "_ fore", + "_f ore", + "_for e", + "ĠSouth east", + "ĠSou theast", + "Ġab used", + "Ġabuse d", + "Ġpract icing", + "ake dirs", + "aked irs", + "ä¸ »", + "_ resources", + "_re sources", + "_res ources", + "_resource s", + "Ġ pond", + "Ġp ond", + "Ġpo nd", + "Ġpon d", + ". Fixed", + ".F ixed", + "Last Error", + "ĠPsych ology", + "ĠPsycho logy", + "Ġ\" //", + "Ġ\"/ /", + "! :", + "Re usable", + "Ġ mensaje", + "Ġm ensaje", + "Ġmens aje", + "Ġro spy", + "Ġros py", + "Ġ bour", + "Ġb our", + "Ġbo ur", + "Ġbou r", + "Ġvar ieties", + "Ġvari eties", + "Ġem path", + "Ġemp ath", + "( ({", + "(( {", + "_ org", + "_or g", + "_o rg", + "Ġ Mes", + "ĠM es", + "ĠMe s", + "Ġ Magento", + "ĠM agento", + "ĠMag ento", + "IST ORY", + "Un less", + "Ġh j", + "ĠD uty", + "ĠDu ty", + "ĠDut y", + "J un", + "Ju n", + ", size", + ",s ize", + "Ġpaint ings", + "Ġpain tings", + "Ġpainting s", + "Ġd ispens", + "Ġdisp ens", + "d art", + "da rt", + "dar t", + "Ġbehavior al", + "Ġ rpc", + "Ġr pc", + "Ġrp c", + "c alculate", + "cal culate", + "calc ulate", + "calcul ate", + "f ruit", + "fr uit", + "_ mm", + "_m m", + "ĉ pthread", + "ĉp thread", + "ĉpt hread", + "Max Length", + "Ġc urrencies", + "Ġcurr encies", + "_ capacity", + "_cap acity", + "ĠO z", + "Ġfire arm", + "Ġco efficient", + "Ġcoeff icient", + "Ġbank ruptcy", + "Ġbankrupt cy", + "w art", + "wa rt", + "war t", + "Ġfat igue", + "A VA", + "AV A", + "Ġe spa", + "Ġes pa", + "Ġesp a", + "_ pc", + "_p c", + "Ġ Quotes", + "ĠQu otes", + "ĠQuote s", + "_ LIGHT", + "_L IGHT", + "Ġ Tickets", + "ĠT ickets", + "ĠTicket s", + "ĠTick ets", + "Ġre lates", + "Ġrel ates", + "Ġrelate s", + "Ġrelat es", + "Ġpublish ers", + "Ġpublisher s", + "Ġun locked", + "Ġunlock ed", + "Ġunl ocked", + "Ġ //----------------------------------------------------------------", + "Ġ// ----------------------------------------------------------------", + "Ġ//------------------------------------------------ ----------------", + "Ġ//-------------------------------- --------------------------------", + "Ġ//---------------- ------------------------------------------------", + "Ġ InterruptedException", + "ĠInterrupt edException", + "Ġout look", + "r n", + "Ġreb els", + "Ġrebel s", + "W ritten", + "Wr itten", + "Ġa sian", + "Ġas ian", + "Ġasi an", + "Ġasia n", + "ot to", + "ott o", + "Ġ ĉĉĉĉ", + "Ġĉ ĉĉĉ", + "Ġĉĉ ĉĉ", + "Ġĉĉĉ ĉ", + "_ gpu", + "_g pu", + "_gp u", + "T xt", + "Tx t", + ". ImageView", + ".Image View", + "Ġs uis", + "Ġsu is", + "Ġsui s", + "_ tables", + "_t ables", + "_table s", + "_tab les", + "_ta bles", + ". RecyclerView", + ".Rec yclerView", + "Ġwhat soever", + "è ģ", + "] ++;Ċ", + "assert True", + "_ verify", + "_ver ify", + "ĠR ivers", + "ĠRiver s", + "ĠRiv ers", + "ĠRi vers", + "Ġ ][", + "Ġ] [", + "J et", + "Je t", + "id ian", + "idi an", + "idia n", + "S ibling", + "Si bling", + "Ġ genres", + "Ġgen res", + "Ġgenre s", + ". Access", + ".A ccess", + ".Ac cess", + ".Acc ess", + "O PS", + "OP S", + "Ġtr ivial", + "Ġtrivia l", + "ภª", + "a len", + "al en", + "ale n", + "в ед", + "ве д", + "ĠS word", + "ĠSw ord", + "Ġscrut iny", + "Ġscrutin y", + "( cb", + "(c b", + "Ġ commerce", + "Ġcom merce", + "Ġcomm erce", + "Ġcommerc e", + "Ġguarante es", + "Ġguarantee s", + "_ adv", + "_a dv", + "_ad v", + "Ġ LET", + "ĠL ET", + "ĠLE T", + "re cio", + "rec io", + "Ġh ilar", + "Ġhi lar", + "Ġhil ar", + "Ġback yard", + "ãĢ ı", + "Ġillustr ated", + "Ġillustrate d", + "Ġillust rated", + "/ vendor", + "/v endor", + ". Util", + ".U til", + "Ġ wow", + "Ġw ow", + "Ġwo w", + "LO Y", + "Ġ Marshal", + "ĠM arshal", + "ĠMar shal", + "ĠMars hal", + "ĠMarsh al", + "\" >'.$", + "\"> '.$", + "\">' .$", + "\">'. $", + "ĠB ak", + "ĠBa k", + "Ġ modifiers", + "Ġmod ifiers", + "Ġmodifier s", + "d ictionary", + "ĠS tre", + "ĠSt re", + "ĠStr e", + "m ultiple", + "mult iple", + "multi ple", + "multip le", + "\" )),", + "\") ),", + "\")) ,", + "ĠC ort", + "ĠCo rt", + "ĠCor t", + "' ]\").", + "'] \").", + "( admin", + "(ad min", + "Ġ Creator", + "ĠC reator", + "ĠCre ator", + "ĠCreat or", + "In ternet", + "Int ernet", + "Inter net", + "Intern et", + "( ms", + "(m s", + "l ogy", + "lo gy", + "log y", + "DECL ARE", + "Ġ Marcus", + "ĠMar cus", + "ĠMarc us", + "< <<<", + "<< <<", + "<<< <", + "ãģ ł", + "_ my", + "_m y", + "( inst", + "(i nst", + "(in st", + "(ins t", + "Ġsc iences", + "Ġscience s", + "Ġsci ences", + "N DER", + "ND ER", + ". enter", + ".en ter", + ".ent er", + "Ġ itu", + "Ġit u", + "Ġi tu", + "Ġbe have", + "Ġbeh ave", + "P an", + "Pa n", + "om bies", + "omb ies", + "ombie s", + "= '<", + "=' <", + "' ));čĊ", + "') );čĊ", + "')) ;čĊ", + "')); čĊ", + "Ġ MENU", + "ĠM ENU", + "ĠME NU", + "ĠMEN U", + "Ġ Workers", + "ĠWork ers", + "ĠWorker s", + "ĠWor kers", + ".No Error", + "Ġ bindings", + "Ġbin dings", + "Ġbind ings", + "Ġbinding s", + "Ġdis abilities", + "{ \\", + "ĠM unicip", + "ĠMun icip", + "Ġ cores", + "Ġc ores", + "Ġco res", + "Ġcor es", + "Ġcore s", + "ur ple", + "ĠN okia", + "us ions", + "usion s", + "usi ons", + "Ġ Fitness", + "ĠF itness", + "ĠFit ness", + ". handleChange", + ".handle Change", + "Ġ javascript", + "Ġj avascript", + "Ġjav ascript", + "Ġjava script", + "ìļ Ķ", + "( dec", + "(d ec", + "(de c", + "Ġ packing", + "Ġp acking", + "Ġpack ing", + "Ġpac king", + "- depend", + "-d epend", + "-de pend", + "Ġtrans cript", + "Ġtran script", + "z eros", + "ze ros", + "zer os", + "zero s", + "_ alert", + "_al ert", + "? \",Ċ", + "?\" ,Ċ", + "?\", Ċ", + "l ibs", + "li bs", + "lib s", + "± оÑĤ", + "Ġ |ĊĊ", + "Ġ| ĊĊ", + "Ġ|Ċ Ċ", + "tr ained", + "tra ined", + "train ed", + "ĠG ent", + "ĠGe nt", + "ĠGen t", + "ĠR ab", + "ĠRa b", + "x p", + "_ configuration", + "_config uration", + "å¤ ©", + "_ accept", + "_ac cept", + "_acc ept", + ".rec yclerview", + ": url", + "ĠMu hammad", + "ĠMuham mad", + "Ġpriv ileges", + "Ġprivile ges", + "Ġprivilege s", + "_ bank", + "_b ank", + "u ku", + "uk u", + "w allet", + "wall et", + "wal let", + "Ġ ROOT", + "ĠR OOT", + "ĠRO OT", + "Ġenc uent", + "? family", + "?f amily", + "ĉ position", + "ĉp osition", + "ĉpos ition", + "Ġ cg", + "Ġc g", + "Ġpre cip", + "Ġprec ip", + "method s", + "meth ods", + "_ fast", + "_f ast", + "_fa st", + "in crement", + "inc rement", + "incre ment", + "incr ement", + "ĠT iger", + "ĠTi ger", + "ĠTig er", + "_OCC URRED", + "qu ip", + "qui p", + "Ġ HAS", + "ĠH AS", + "ĠHA S", + "_ dom", + "_d om", + "_do m", + "Ġw reck", + "Ġwr eck", + "Ġwre ck", + "b j", + "Ġd ern", + "Ġde rn", + "Ġder n", + "Ġorg ans", + "Ġorgan s", + ". entries", + ".en tries", + ".ent ries", + "Ġ _('", + "Ġ_ ('", + "Ġ_( '", + "r amento", + "ram ento", + "Ġ Jamie", + "ĠJam ie", + "ĠJa mie", + "Ġ punk", + "Ġp unk", + "Ġpun k", + "Ġpu nk", + "I PP", + "IP P", + "Ġprogram a", + "Ġprog rama", + "Ġat tain", + "Ġatt ain", + "Ġpro ves", + "Ġpr oves", + "Ġprov es", + "Ġprove s", + "/ sign", + "/s ign", + "Ġanswer ing", + "Ġl adder", + "Ġlad der", + "**** ************************", + "******** ********************", + "**************** ************", + "************************ ****", + "******************** ********", + "************ ****************", + "************** **************", + "ĠW almart", + "ĠWal mart", + "Ġ CONTENT", + "ĠCONT ENT", + "d uctor", + "du ctor", + "duct or", + "duc tor", + "Ġver bal", + "Ġverb al", + "Ġ PID", + "ĠP ID", + "ĠPI D", + "c rypto", + "crypt o", + "cry pto", + "_CALL BACK", + "Ġ= ================================", + "Ġ================= ================", + "Ġp otent", + "Ġpo tent", + "Ġpot ent", + "Ġsh orts", + "Ġshort s", + "Ġsho rts", + ". Uri", + ".U ri", + ". uniform", + ".un iform", + ".uni form", + "; border", + ";b order", + "Ġ Wer", + "ĠW er", + "ĠWe r", + "Ġher ein", + "Ġhere in", + "l la", + "ll a", + "ĠI hr", + "ĠIh r", + "P ixmap", + "Pix map", + "l iteral", + "lit eral", + "lite ral", + "liter al", + "! )ĊĊ", + "!) ĊĊ", + "!)Ċ Ċ", + "g eneric", + "gen eric", + "gener ic", + "gene ric", + "r ust", + "ru st", + "rus t", + "_ scripts", + "_s cripts", + "_script s", + "o sto", + "os to", + "ost o", + "it us", + "itu s", + "ĠCoal ition", + "Ġre mot", + "Ġrem ot", + "de ploy", + "dep loy", + "ĠE agle", + "ĠEag le", + "ĠEa gle", + "ãĢģ ãĢĮ", + "Ġimport ante", + "Ġimportant e", + "ĉ object", + "ĉo bject", + "ĉobj ect", + "ĉob ject", + "Ġseason al", + "Ġseas onal", + "n ej", + "ne j", + "ai du", + "aid u", + "Bind View", + "ĠSi erra", + "- bg", + "-b g", + "Ġmake Styles", + "[ offset", + "[o ffset", + "G ames", + "Game s", + "Gam es", + "Ga mes", + "Ġhorm one", + "AR IO", + "ARI O", + "he ads", + "head s", + "hea ds", + "( select", + "(s elect", + "(se lect", + "(sel ect", + "Ġ Started", + "ĠStart ed", + "ĠStar ted", + "@ param", + "_ decl", + "_de cl", + "_dec l", + "_ blog", + "_b log", + "_bl og", + "Ġa ño", + "Ġañ o", + "\\ Api", + "ĠMil waukee", + "Pro vid", + "Pr ovid", + "Prov id", + "An imated", + "Anim ated", + "Animate d", + "Ġco oler", + "Ġcool er", + "Ġ Seed", + "ĠS eed", + "ĠSe ed", + "ĠSee d", + ". Edit", + ".E dit", + ".Ed it", + "Ï Ħ", + "Ġ Taking", + "ĠT aking", + "ĠTa king", + "ĠTak ing", + "Ġborder Color", + "-f ounder", + "-found er", + ".Logger Factory", + "Ġ\" \"ĊĊ", + "Ġ\"\" ĊĊ", + "Ġ\"\"Ċ Ċ", + "A LT", + "AL T", + "Ġ Late", + "ĠL ate", + "ĠLa te", + "ĠLat e", + "EDI ATE", + "EDIA TE", + "Ġ );ĊĊĊ", + "Ġ) ;ĊĊĊ", + "Ġ);Ċ ĊĊ", + "Ġ);ĊĊ Ċ", + "Ġ); ĊĊĊ", + "a fa", + "af a", + "Ġc ancellation", + "Ġcancel lation", + "Ġcancell ation", + "Ġcanc ellation", + "A tom", + "At om", + "ĠB irmingham", + "emp resa", + "empre sa", + "H EMA", + "HE MA", + "a scal", + "as cal", + "asc al", + "asca l", + "Ġup side", + "Ġups ide", + ". Version", + ".V ersion", + "Ġ Folder", + "ĠF older", + "ĠFo lder", + "ĠFol der", + "ĠFold er", + "Ġ Eight", + "ĠE ight", + "ĠEig ht", + "Ġ Vintage", + "ĠV intage", + "Ġ AppDelegate", + "ĠApp Delegate", + "ĠPre vention", + "ĠPrevent ion", + "ĠPrev ention", + ". separator", + ".s eparator", + ".se parator", + "S TM", + "ST M", + "( room", + "(r oom", + "(ro om", + "g enerator", + "gen erator", + "gener ator", + "Ġc attle", + "Ġcat tle", + "ĉ Z", + "Ġ Particle", + "ĠP article", + "ĠPart icle", + "ĠParti cle", + "' };Ċ", + "'} ;Ċ", + "Ġne ighbours", + "Ġneighb ours", + "Ġneighbour s", + "ĠState less", + "ĠStat eless", + "Ġ altitude", + "Ġalt itude", + "Ġs aint", + "Ġsa int", + "Ġsai nt", + "о бав", + "об ав", + "оба в", + "Ġcon vinc", + "Ġconv inc", + "Ġconvin c", + "Ġ Contents", + "ĠCont ents", + "ĠContent s", + "ĠConte nts", + "Ġje une", + "Ġjeu ne", + "( ts", + "(t s", + "S erialization", + "Serial ization", + "( collection", + "(c ollection", + "(col lection", + "(coll ection", + "ĠJ azz", + "ĠJa zz", + "Ġ Dod", + "ĠD od", + "ĠDo d", + "ĠR och", + "ĠRo ch", + "ĠRoc h", + "a cio", + "ac io", + "aci o", + "comm ended", + "commend ed", + "DE FINE", + "DEF INE", + ".on load", + "Ġspecial ty", + "Ġspeci alty", + "PL ACE", + "_ MOVE", + "_M OVE", + "_MO VE", + "_MOV E", + "Ġaccount able", + "Re uters", + "Ġf icken", + "Ġfi cken", + "Ġfic ken", + "Ġfick en", + "Ġde pr", + "Ġdep r", + "W ow", + "Wo w", + "V oid", + "Vo id", + ". space", + ".s pace", + ".sp ace", + "ภĹ", + "Ġt q", + "Ġ Pets", + "ĠP ets", + "ĠPe ts", + "ĠPet s", + "< $", + "( Current", + "(C urrent", + "ber ries", + "plan ation", + "pla nation", + "Ġlist Of", + "Ġ Thu", + "ĠT hu", + "ĠTh u", + "Ġ PRINT", + "ĠPR INT", + "ĠPRI NT", + "Ġm ismo", + "Ġmis mo", + "Ġmism o", + "Ġ doi", + "Ġd oi", + "Ġdo i", + "c hk", + "ch k", + "Ġ Unicode", + "ĠUn icode", + "ĠUni code", + "( role", + "(r ole", + "(ro le", + "Ġvir gin", + "< Point", + "

-->Ċ", + ">- ->Ċ", + ">-- >Ċ", + "V ol", + "Vo l", + "ĠS SD", + "ĠSS D", + ") )),", + ")) ),", + "))) ,", + ". Optional", + ".Option al", + "Ġn urses", + "Ġnur ses", + "Ġnurs es", + "Ġnurse s", + "Ġ orb", + "Ġo rb", + "Ġor b", + "_ pe", + "_p e", + ") ;čĊčĊčĊ", + ");čĊ čĊčĊ", + "); čĊčĊčĊ", + ");čĊčĊ čĊ", + "pl aced", + "place d", + "pla ced", + "es ser", + "ess er", + "esse r", + "Ġther apeutic", + "Ġwh itespace", + "Ġwhite space", + "Ġwhites pace", + "Ġ aston", + "Ġa ston", + "Ġas ton", + "Ġast on", + "Success ful", + "Ġp raised", + "Ġpr aised", + "Ġpraise d", + "Ġpra ised", + "ĠW es", + "ĠWe s", + "Ġe ighth", + "Ġeight h", + "i ral", + "ir al", + "ira l", + "Ġv rouw", + "Ġvrou w", + "Ġ faction", + "Ġf action", + "Ġfact ion", + "Ġfa ction", + "Ġfac tion", + "_ bias", + "_b ias", + "_bi as", + "Ġ witch", + "Ġw itch", + "Ġwit ch", + "Ġ npc", + "Ġn pc", + "Ġnp c", + "( sb", + "(s b", + "ĠRod rig", + "ĠRodr ig", + "_ big", + "_b ig", + "_bi g", + "D ependency", + "Dep endency", + "ĠAb raham", + "ar di", + "ard i", + "C AR", + "CA R", + "n os", + "no s", + "Ġab undance", + "Ġabund ance", + "Ġnut rients", + "Ġnutrient s", + "in stein", + "ins tein", + "inst ein", + ". Vert", + ".V ert", + ".Ver t", + "Ġ ISS", + "ĠI SS", + "ĠIS S", + "< U", + "Ġs ums", + "Ġsu ms", + "Ġsum s", + "_ hist", + "_h ist", + "_hi st", + "Ġfar mer", + "Ġfarm er", + "Ġ Abr", + "ĠA br", + "ĠAb r", + "S hot", + "Sh ot", + "Ġ BadRequest", + "ĠBad Request", + "Ġh ass", + "Ġhas s", + "Ġha ss", + "Ġ Rails", + "ĠR ails", + "ĠRa ils", + "ĠRail s", + "ĠRai ls", + "Ġaff iliated", + "Ġaffili ated", + "Ġaffiliate d", + "æĿ ¥", + "Ġe rf", + "Ġer f", + "I NF", + "IN F", + "Ġ ViewHolder", + "ĠView Holder", + "m ini", + "min i", + "mi ni", + "ĠR oth", + "ĠRo th", + "ĠRot h", + "Ġfaith ful", + "ĠPhill ips", + "ĠPhillip s", + "AN DOM", + "AND OM", + "] .[", + "]. [", + "_ PAY", + "_P AY", + "_PA Y", + "ĠAr ctic", + "ĠArc tic", + "f aker", + "fa ker", + "fake r", + "fak er", + "D igit", + "Di git", + "Dig it", + "M ale", + "Ma le", + "Mal e", + "std err", + "se ys", + "sey s", + "Ġ Å¡", + "ĠÅ ¡", + "_ remote", + "_rem ote", + "l ique", + "li que", + "liqu e", + "Ġin def", + "Ġi ndef", + "Ġind ef", + "Ġinde f", + "ĠIndust ries", + "i tra", + "it ra", + "itr a", + "_ pairs", + "_p airs", + "_pair s", + "_pa irs", + "< iostream", + " D", + "Ġs ervlet", + "Ġserv let", + "bast ian", + "Ġ >&", + "Ġ> &", + "S ID", + "SI D", + "_ clk", + "_c lk", + "_cl k", + "Ġdi visions", + "Ġdiv isions", + "Ġdivision s", + "Ġdivis ions", + "} ',Ċ", + "}' ,Ċ", + "}', Ċ", + "Ġd ildo", + "Ġdil do", + "Ġpar ade", + "Ġpara de", + "Ġpa rade", + "Ġparad e", + "m ajor", + "maj or", + "Ġa board", + "Ġab oard", + "; ++", + "Ġ fusion", + "Ġf usion", + "Ġfus ion", + "\" },{\"", + "\"} ,{\"", + "\"}, {\"", + "ĠDialog Result", + "ĉ arr", + "ĉa rr", + "ĉar r", + "- em", + "-e m", + "_ nr", + "_n r", + "( handler", + "(h andler", + "(handle r", + "(hand ler", + ". NET", + ".N ET", + ".Xtra Reports", + "ĠSh ah", + "ĠSha h", + "Ġ Brief", + "ĠB rief", + "ĠBr ief", + "ĠBri ef", + "- ,", + "Ġ precio", + "Ġp recio", + "Ġpre cio", + "Ġprec io", + "ĉ ĉĉĠĠĠĠĠĠ", + "ĉĉ ĉĠĠĠĠĠĠ", + "ĉĉĉ ĠĠĠĠĠĠ", + "ĉĉĉĠĠĠ ĠĠĠ", + "ĉĉĉĠ ĠĠĠĠĠ", + "ĉĉĉĠĠ ĠĠĠĠ", + "ĉĉĉĠĠĠĠ ĠĠ", + "ĉĉĉĠĠĠĠĠ Ġ", + "Ġ tant", + "Ġt ant", + "Ġta nt", + "Ġtan t", + "ĠGr ande", + "ĠGrand e", + "ĠGran de", + "ĠGra nde", + "/ xml", + "/x ml", + "_ ICON", + "_I CON", + "_IC ON", + "ĠR etro", + "ĠRe tro", + "ĠRet ro", + "un que", + "Ġn ag", + "Ġna g", + "to Fixed", + "X L", + "Ġ declaring", + "Ġdecl aring", + "Ġdeclar ing", + "Ġ Concrete", + "ĠCon crete", + "ĠConc rete", + "Ġ Amazing", + "ĠAm azing", + "ĠAma zing", + "ĉprint k", + "Ġdeb ates", + "Ġdebate s", + "D ATED", + "DA TED", + "DATE D", + "DAT ED", + "Ġa esthetic", + "Ġaest hetic", + "Ġaes thetic", + "eme tery", + "emet ery", + "Routing Module", + "ĠNash ville", + "W AYS", + "WA YS", + "WAY S", + "Ġ wolf", + "Ġw olf", + "Ġwo lf", + "Ġwol f", + "Ġob servers", + "Ġobs ervers", + "Ġobserv ers", + "Ġobserver s", + "Ġobserve rs", + "O TA", + "OT A", + "an son", + "ans on", + "Ġ ea", + "Ġe a", + "Ġgreen house", + "ĵį ä½ľ", + "Ġst air", + "Ġsta ir", + "Ġimm igrant", + "Ġimmigr ant", + "_ apply", + "_app ly", + "_ap ply", + "pe are", + "pear e", + "ĠB loomberg", + "ĠBloom berg", + "_ PLAYER", + "_PL AYER", + "_PLAY ER", + "R esp", + "Re sp", + "Res p", + "æŃ £", + "Choose r", + "Cho oser", + "Ġ ICollection", + "ĠI Collection", + "ĠIC ollection", + "P eter", + "Pe ter", + "Pet er", + "Err o", + "Er ro", + ".detect Changes", + "M aps", + "Map s", + "Ma ps", + "Ġ squeeze", + "Ġs queeze", + "Ġsqueez e", + "ĠH omes", + "ĠHome s", + "ĠHom es", + "ĠHo mes", + "weg ian", + "Ġformat ting", + "Ġnegot iate", + "u ld", + "ul d", + "ĠN ep", + "ĠNe p", + "Ġ QB", + "ĠQ B", + "Ġeconom ies", + "Ġec onomies", + "Ġ */,", + "Ġ* /,", + "Ġ*/ ,", + "Ġred und", + "Ġredu nd", + "ĠA ber", + "ĠAb er", + "ĠAbe r", + ".IsNullOr WhiteSpace", + "yc led", + "ycle d", + "ycl ed", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĊ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ċ", + "_ Sh", + "_S h", + "Ġs kept", + "Ġsk ept", + "Ġske pt", + "Ġre created", + "Ġrec reated", + "Ġrecre ated", + "Ġrecreate d", + "Ġ getType", + "Ġget Type", + "Ġm argins", + "Ġmargin s", + "Ġmarg ins", + "Ġcolon ial", + "ch arts", + "char ts", + "cha rts", + "chart s", + "/ /@", + "// @", + "Ġ processors", + "Ġprocess ors", + "Ġprocessor s", + "Ġprocesso rs", + "è¯ ´", + "b atis", + "bat is", + "æĦ ı", + "at orio", + "ator io", + "ato rio", + "atori o", + "ment ioned", + "mention ed", + "P atient", + "Pat ient", + "Ġp rey", + "Ġpr ey", + "Ġpre y", + "Check box", + "_ xpath", + "_x path", + ". skip", + ".s kip", + ".sk ip", + "ĠMor mon", + "ĠMorm on", + "ĠMemory Stream", + "CR EMENT", + "CRE MENT", + "Ġ ku", + "Ġk u", + "m eld", + "me ld", + "mel d", + "\\ Data", + "\\D ata", + "Ġ Kernel", + "ĠK ernel", + "ĠKer nel", + "ĠKern el", + "i ltr", + "il tr", + "ilt r", + "éĢ ģ", + "( profile", + "(pro file", + "(pr ofile", + "C arbon", + "Car bon", + "R OLE", + "RO LE", + "ROL E", + "( pl", + "(p l", + "] *(", + "]* (", + ". memory", + ".m emory", + ".mem ory", + ".memo ry", + "Ġme dal", + "Ġmed al", + "Ġ advisor", + "Ġad visor", + "Ġadv isor", + "Ġadvis or", + "it ät", + "itä t", + "Ġ hdr", + "Ġh dr", + "Ġhd r", + "ie rung", + "ier ung", + "Ġ Provides", + "ĠPro vides", + "ĠProvid es", + "ĠProvide s", + "ĠProv ides", + "( alpha", + "(al pha", + "Ġteen agers", + "Ġteenager s", + "Ġteenage rs", + "- parser", + "-p arser", + "-par ser", + "-parse r", + ". LatLng", + ".L atLng", + "] ()Ċ", + "]( )Ċ", + "]() Ċ", + "Ġfel ony", + "Ġfelon y", + "ĉĉĉ ĊĉĉĉĊ", + "ĉĉĉĊ ĉĉĉĊ", + "B OOK", + "BO OK", + "Ġ slash", + "Ġs lash", + "Ġsl ash", + "Ġsla sh", + "Ġ clearfix", + "Ġclear fix", + "ĠPro phet", + "ĠProp het", + "å® ¹", + "right ness", + "- fi", + "-f i", + ". kind", + ".k ind", + "er ton", + "ert on", + "erto n", + "J im", + "Ġmanip ulate", + "Ġ worksheet", + "Ġwork sheet", + "Ġworks heet", + "o lin", + "ol in", + "oli n", + "st ars", + "star s", + "sta rs", + "Ġ artifact", + "Ġart ifact", + "_ EMPTY", + "_EM PTY", + "_EMP TY", + "ĉ main", + "ĉm ain", + "--- ---------- ';", + ">' ;", + "Ġexp ressing", + "Ġexpress ing", + "Ġexpres sing", + "Ġ IQ", + "ĠI Q", + "Ġ Fact", + "ĠF act", + "ĠFac t", + "ĠFa ct", + "/************************************************************************ *******Ċ", + "/**************************************************************************** ***Ċ", + "_ mass", + "_m ass", + "_ma ss", + "_mas s", + ") ):", + ")) :", + "Ġcon dom", + "Ġcond om", + "Ġcondo m", + "Ġcreate State", + "ome town", + "omet own", + "Ġi rr", + "Ġir r", + "Ġ >(", + "Ġ> (", + "> B", + "it eration", + "ite ration", + "iter ation", + "ãĥ ª", + "Ġsh irts", + "Ġshirt s", + "ou nty", + "ount y", + "oun ty", + "- >$", + "-> $", + "_ SIGN", + "_S IGN", + "_SIG N", + "_SI GN", + "ĠD ale", + "ĠDa le", + "ĠDal e", + "Ġ jj", + "Ġj j", + "E asy", + "F re", + "Fr e", + "Ġ Ny", + "ĠN y", + "Ġ chlor", + "Ġch lor", + "m atched", + "match ed", + "mat ched", + "ĠG erm", + "ĠGe rm", + "ĠGer m", + "- UA", + "-U A", + "ĠN athan", + "ĠNa than", + "ĠNat han", + "ĠNath an", + "e ducation", + "educ ation", + "edu cation", + "- yard", + "-y ard", + "- che", + "-c he", + "-ch e", + "h ouses", + "ho uses", + "house s", + "hou ses", + "r itional", + "rit ional", + "rition al", + "Ġpro ximity", + "Ġprox imity", + "Ġdie sem", + "Ġdies em", + "Ġdiese m", + "áºŃ p", + "Ġd rought", + "Ġdr ought", + "Ġdro ught", + ". audio", + ".a udio", + ".au dio", + "Ġ Leo", + "ĠL eo", + "ĠLe o", + "Ġfavor able", + "Ġfav orable", + "in ch", + "inc h", + "ĠD aw", + "ĠDa w", + "r ibly", + "rib ly", + "_ student", + "_st udent", + "id able", + "ida ble", + "O VE", + "OV E", + "Ġl acks", + "Ġla cks", + "Ġlack s", + "Ġlac ks", + "oun cing", + "ounc ing", + ". business", + ".b usiness", + ".bus iness", + "Ġ reopen", + "Ġre open", + "m aybe", + "may be", + "_ GLOBAL", + "_G LOBAL", + "Ġd resses", + "Ġdr esses", + "Ġdress es", + "ĠEd wards", + "ĠEdward s", + "ens ible", + "ensi ble", + "Ġ Hardware", + "ĠH ardware", + "ĠHard ware", + "Ġ Excellent", + "ĠEx cellent", + "ĠExcell ent", + "ĠTime Unit", + "CT IONS", + "CTION S", + "Ġs chedules", + "Ġsched ules", + "Ġschedule s", + "Ġ segue", + "Ġse gue", + "Ġseg ue", + "Ġsegu e", + "Open s", + "Op ens", + "am men", + "amm en", + "- Identifier", + "Ġst aring", + "Ġstar ing", + "Ġsta ring", + "Ġhapp ily", + "ĠH ob", + "ĠHo b", + "' _", + "Ġ \");", + "Ġ\" );", + "Ġ\") ;", + "ament os", + "amento s", + "amen tos", + "et ched", + "etch ed", + "etc hed", + "Ġ/ >}Ċ", + "Ġ/> }Ċ", + "Ġ/>} Ċ", + ". Users", + ".User s", + ".Use rs", + "Ġint errupted", + "Ġinter rupted", + "Ġinterrupt ed", + "Cont acts", + "Contact s", + "Conta cts", + "Ġ registro", + "Ġreg istro", + "Ġregistr o", + "Ġregist ro", + "in burgh", + "C HA", + "CH A", + "_ imp", + "_i mp", + "_im p", + "p his", + "ph is", + "phi s", + "s ay", + "sa y", + "Ġret ailer", + "Ġretail er", + ". NODE", + ".N ODE", + ".NO DE", + "/ maps", + "/m aps", + "/map s", + "_ LAST", + "_L AST", + "_LA ST", + "Ġ Charge", + "ĠCh arge", + "ĠChar ge", + "ĠCharg e", + "_ guard", + "_g uard", + "C ollider", + "Col lider", + "Coll ider", + "ĠStateless Widget", + "\" :[\"", + "\": [\"", + "\":[ \"", + "(\" ../../", + "(\"../ ../", + "(\".. /../", + "i oxide", + "iox ide", + "ioxid e", + "ĠS und", + "ĠSun d", + "ĠSu nd", + "Ġ' ';", + "Ġ'' ;", + "un set", + "uns et", + "add Widget", + "л Ñİ", + "el les", + "ell es", + "elle s", + "al ker", + "alk er", + "A rc", + "Ar c", + "Ġd educt", + "Ġde duct", + "Ġded uct", + "G UILayout", + "GUI Layout", + "ĠV illa", + "ĠVi lla", + "ĠVill a", + "ĠVil la", + "Ġfor bidden", + "Ġforb idden", + "Ġforbid den", + "_ where", + "_w here", + "_wh ere", + "Ġ \\/", + "Ġ\\ /", + "ĠT ib", + "ĠTi b", + "_ AX", + "_A X", + "] čĊčĊ", + "]čĊ čĊ", + "Ġ Bir", + "ĠB ir", + "ĠBi r", + "Ġb end", + "Ġbe nd", + "Ġben d", + "Ġ MAKE", + "ĠM AKE", + "ĠMA KE", + "ĠMAK E", + "Ġ MET", + "ĠM ET", + "ĠME T", + "Ġf utures", + "Ġfuture s", + "Ġfut ures", + "Ġfu tures", + "Ġ weighted", + "Ġwe ighted", + "Ġweight ed", + "Ġweigh ted", + "\"\" \"čĊ", + "\"\"\" čĊ", + "Ġ authorize", + "Ġauthor ize", + "( program", + "(p rogram", + "(pro gram", + "(pr ogram", + "(prog ram", + "} ,{\"", + "}, {\"", + "},{ \"", + "Ġcoeff icients", + "Ġcoefficient s", + "ê s", + "Per Page", + "ĠB athroom", + "ĠBath room", + "ĠPublish ing", + "G PL", + "GP L", + "Ġsub missions", + "Ġsubmission s", + "Ġ NUMBER", + "ĠNUM BER", + "ĠNU MBER", + "j Äħ", + "Ġadd itionally", + "Ġadditional ly", + "Ġaddition ally", + "em pre", + "emp re", + "ĠS hel", + "ĠSh el", + "ĠShe l", + "o typ", + "ot yp", + "oty p", + "S olution", + "Sol ution", + "Ġth under", + "Ġthu nder", + "_ ec", + "_e c", + "Ġ ĊĠĠĠĠĊ", + "ĠĊ ĠĠĠĠĊ", + "ĠF ellow", + "ĠFel low", + "ĠFell ow", + "Ġk ay", + "Ġka y", + "Ġnew State", + "ONT AL", + "Im plementation", + "Implement ation", + ". Look", + ".L ook", + ".Lo ok", + "Ġ ents", + "Ġe nts", + "Ġen ts", + "Ġent s", + "Ġl ors", + "Ġlo rs", + "Ġlor s", + "Ġ BIG", + "ĠB IG", + "ĠBI G", + "f ab", + "fa b", + "Ġaverage d", + "Ġaver aged", + "Ġ Feedback", + "ĠFe edback", + "ĠFeed back", + "ĠW ells", + "ĠWell s", + "ĠWel ls", + "Ġm artial", + "Ġmart ial", + "Ġind ul", + "Ġindu l", + "ĠComm unist", + "ĠCommun ist", + "ĠF orex", + "ĠFor ex", + "ĠFore x", + "ĠFo rex", + "ĠAgricult ure", + "ĠAgr iculture", + "\" [", + "Ġqu ar", + "Ġq uar", + "Ġqua r", + "ĠK ont", + "ĠKon t", + "ĠKo nt", + "ĉ view", + "ĉv iew", + ". Bytes", + ".Byte s", + ".By tes", + "d esktop", + "des ktop", + "desk top", + "Ġ Makes", + "ĠM akes", + "ĠMake s", + "ĠMa kes", + "ĠMak es", + "akes peare", + ". Nullable", + ".Null able", + "Ġspot light", + "V B", + "o wy", + "ow y", + "( torch", + "(t orch", + "(to rch", + "t ridge", + "tr idge", + "tri dge", + "_ bounds", + "_b ounds", + "_bound s", + "_bo unds", + "Ġapolog ize", + ". addItem", + ".add Item", + "an td", + "ant d", + "* );Ċ", + "*) ;Ċ", + ", u", + "( gen", + "(g en", + "ç» ĵ", + "re ator", + "reat or", + "rea tor", + "ĠC ord", + "ĠCo rd", + "ĠCor d", + "o upper", + "ou pper", + "oup per", + ". metro", + ".m etro", + ".me tro", + ".met ro", + "Ġ ew", + "Ġe w", + "Ġ WORD", + "ĠW ORD", + ". After", + ".A fter", + "Ġdet ained", + "Ġdetain ed", + "ĠH ammer", + "ĠHam mer", + "ĠHamm er", + "ex isting", + "exist ing", + "Ġ ost", + "Ġo st", + "Ġos t", + "Ġmon ument", + "- custom", + "-c ustom", + "User ID", + "Ġ Nom", + "ĠN om", + "ĠNo m", + "Ġre jection", + "Ġreject ion", + "Ġrej ection", + "( dim", + "(d im", + "(di m", + "Ġ singleton", + "Ġs ingleton", + "Ġsingle ton", + "Ġsing leton", + "ĉ die", + "ĉd ie", + "ar iance", + "ari ance", + "arian ce", + "aria nce", + "re ports", + "rep orts", + "report s", + "repo rts", + "] !=", + "e lda", + "el da", + "eld a", + "Ġpreval ence", + "_ regs", + "_re gs", + "_reg s", + ". \".", + ".\" .", + "Ġfemin ist", + "Code c", + "Co dec", + "Cod ec", + "Ġ **Ċ", + "Ġ* *Ċ", + "Ġ** Ċ", + "( labels", + "(label s", + "_ MARK", + "_M ARK", + "_MA RK", + "FA ILED", + "FAIL ED", + "Ġadminister ed", + "W N", + "ĠĠ ĠĠĠĠĠĠĉĉ", + "ĠĠĠĠ ĠĠĠĠĉĉ", + "ĠĠĠĠĠĠĠĠ ĉĉ", + "ĠĠĠĠĠĠĠ Ġĉĉ", + "ĠĠĠĠĠ ĠĠĠĉĉ", + "ĠĠĠĠĠĠ ĠĠĉĉ", + "ĠĠĠĠĠĠĠĠĉ ĉ", + "Ġ noun", + "Ġn oun", + "Ġno un", + "Ġnou n", + "w ig", + "wi g", + "Ġg otta", + "Ġgot ta", + "Ġ rif", + "Ġr if", + "Ġri f", + "- im", + "-i m", + "ĠPaul o", + "ĠPa ulo", + "ĠCommand Type", + "] ))ĊĊ", + "]) )ĊĊ", + "])) ĊĊ", + "]))Ċ Ċ", + "- zero", + "-z ero", + "Tr aining", + "Train ing", + "Tra ining", + "Ġ lord", + "Ġl ord", + "Ġlo rd", + "Ġlor d", + "_ art", + "_a rt", + "_ar t", + "re ddit", + "red dit", + "redd it", + "C ert", + "Ce rt", + "Ġp eso", + "Ġpe so", + "Ġpes o", + "R ot", + "Ro t", + "Ġen danger", + "Ġend anger", + ". dr", + ".d r", + "user Info", + "u nts", + "un ts", + "unt s", + "n v", + "ĠTr ailer", + "ĠTra iler", + "ĠTrail er", + "- first", + "-f irst", + "-fi rst", + "( make", + "(m ake", + "Ġbenef ici", + "- black", + "-b lack", + "-bl ack", + "i ÃŁ", + "Ġund oubtedly", + "Ġm ex", + "Ġme x", + "ĠAn cient", + "ĠAnc ient", + "( as", + "(a s", + "Ġdes cent", + "Ġdesc ent", + "P ick", + "Pic k", + "Pi ck", + "Ġrep lica", + "Ġrepl ica", + "Ġreplic a", + "$ obj", + "$o bj", + "ä hr", + "äh r", + "Ġar rows", + "Ġarr ows", + "Ġarrow s", + "f ty", + "ft y", + "ĠLib ya", + "u ga", + "ug a", + "ch arged", + "char ged", + "charge d", + "charg ed", + "T ur", + "Tu r", + "Ġh omic", + "Ġhom ic", + "Ġho mic", + "is sen", + "iss en", + "isse n", + "Ġ Fake", + "ĠF ake", + "ĠFa ke", + "ĠFak e", + "Ġbe ers", + "Ġbeer s", + "Ġbee rs", + "Ġsc attered", + "Ġscatter ed", + "( Time", + "(T ime", + "UT IL", + "Ġbureauc r", + "Ġbureau cr", + "/ plain", + "/p lain", + "/pl ain", + "Ġst icking", + "Ġstick ing", + "F AIL", + "FA IL", + "ĠC ovid", + "ĠCo vid", + "ĠCov id", + "Th ird", + "_ present", + "_p resent", + "_pre sent", + "_pres ent", + "ĠP ierre", + "ĠPi erre", + "ĠPier re", + "Ġ ëª", + "Ġë ª", + "Ġ[ ...]ĊĊ", + "Ġ[... ]ĊĊ", + "Ġ[...] ĊĊ", + "P rob", + "Pro b", + "Pr ob", + "Ġ Traffic", + "ĠTra ffic", + "ĠTraff ic", + "i cao", + "ic ao", + "ica o", + "do ctor", + "doc tor", + "Ġ ),ĊĊ", + "Ġ) ,ĊĊ", + "Ġ),Ċ Ċ", + "Ġ), ĊĊ", + "T abs", + "Tab s", + "Ta bs", + "a lu", + "al u", + "ï¼ļ âĢľ", + "Ġin herent", + "Ġinher ent", + "_ No", + "_N o", + "r itis", + "rit is", + "Ġ Proof", + "ĠP roof", + "ĠPro of", + ". basename", + ".b asename", + ".base name", + "ä¼ ļ", + "Ġc him", + "Ġch im", + "Ġchi m", + "Ġ Protected", + "ĠProt ected", + "ĠProtect ed", + "c rit", + "cri t", + "cr it", + "Ġp rone", + "Ġpro ne", + "Ġpr one", + "Ġpron e", + "Ġ кон", + "Ġк он", + "Ġко н", + "Ġ Heroes", + "ĠHer oes", + "ĠHero es", + "Ġan xious", + "Ġanx ious", + "Ġ anos", + "Ġa nos", + "Ġan os", + "Ġano s", + "Ġweek ends", + "Ġweekend s", + "Ġs ext", + "Ġse xt", + "Ġsex t", + "Ġre ducer", + "Ġred ucer", + "Ġredu cer", + "Ġreduce r", + "= UTF", + "h alf", + "ha lf", + "hal f", + "ĠS aw", + "ĠSa w", + ". mm", + ".m m", + "Ġn ueva", + "Ġnu eva", + "Ġnue va", + ".current Target", + ". lua", + ".l ua", + ".lu a", + "_EXT ENSION", + "ĉ reg", + "ĉr eg", + "ĉre g", + "Ġ Ctrl", + "ĠC trl", + "ĠCt rl", + "_ align", + "_al ign", + "accept able", + "Ġr ushing", + "Ġrush ing", + "f rac", + "fr ac", + "fra c", + "Ġbo asts", + "Ġboast s", + "Ġboa sts", + "F ive", + "Fi ve", + " ±", + "Ġ Temperature", + "ĠT emperature", + "ĠTem perature", + "ĠTemper ature", + "> ):", + ">) :", + "Ġch arter", + "Ġchar ter", + "Ġchart er", + "RE ATED", + "REATE D", + "REAT ED", + "REA TED", + "Ġsub jected", + "Ġsubject ed", + "Ġsubj ected", + "Ġ opc", + "Ġo pc", + "Ġop c", + "health y", + "使 çĶ¨", + "ĠScient ific", + "Ġ frau", + "Ġfr au", + "Ġfra u", + "ri ages", + "ria ges", + "riage s", + "ภĶ", + ". inventory", + ".in ventory", + "at ionale", + "ation ale", + "ational e", + "M ad", + "Ma d", + "min utes", + "minute s", + "> >();Ċ", + ">> ();Ċ", + ">>( );Ċ", + ">>() ;Ċ", + "Ġ Env", + "ĠE nv", + "ĠEn v", + "Ġrecord ings", + "Ġrecording s", + "Ġsusp icion", + "sql ite", + "sq lite", + "ĉ read", + "ĉr ead", + "ĉre ad", + "ãģ ¦", + "Ġwor ries", + ".put String", + "ĠSh anghai", + "( uid", + "(u id", + "(ui d", + "r er", + "re r", + "ĠvÃŃ de", + "\" ):", + "\") :", + "Ġmethod ology", + "Ġк оÑĤоÑĢ", + "Ġко ÑĤоÑĢ", + "ĠкоÑĤ оÑĢ", + "c cc", + "cc c", + "av ad", + "ava d", + "Ġin duction", + "Ġind uction", + "Ġindu ction", + "ĉ Thread", + "ĉT hread", + ", string", + ",s tring", + ",str ing", + ",st ring", + "ạ i", + "neh men", + "u ition", + "ui tion", + "uit ion", + "Ġ* __", + "Ġ*_ _", + ".e mf", + ".em f", + "Ġ ìľ", + "Ġì ľ", + "/ themes", + "/th emes", + "/theme s", + "/the mes", + "Ġ Nine", + "ĠN ine", + "ĠNi ne", + "ĠNin e", + ". One", + ".On e", + ".O ne", + "Ġ Embed", + "ĠEm bed", + "ĠEmb ed", + "Ġf az", + "Ġfa z", + "u ations", + "uation s", + "uat ions", + "Ġprivate ly", + "Ġpriv ately", + "Ġprivat ely", + "Ġ ling", + "Ġl ing", + "Ġli ng", + "Ġlin g", + "[ F", + "u shi", + "us hi", + "ush i", + "Ġlaunch es", + "( KEY", + "(K EY", + "G MT", + "GM T", + "Ġa iming", + "Ġaim ing", + "Ġai ming", + "pat ible", + "ĠB iden", + "ĠBi den", + "ĠBid en", + "i w", + "Ġ Degree", + "ĠD egree", + "ĠDe gree", + "ĠDeg ree", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "Ġ$ ('<", + "Ġ$( '<", + "Ġ$(' <", + "á rios", + "ário s", + "ár ios", + "to UpperCase", + "ìł ľ", + "Ġ EUR", + "ĠE UR", + "ĠEU R", + "Ġovers ight", + "Ġtable sp", + "Ġtables p", + "Up dates", + "Update s", + ".m akedirs", + ".make dirs", + "Ġ humidity", + "Ġh umidity", + "Ġhum idity", + "Ġhumid ity", + "/ template", + "/t emplate", + "/temp late", + "Al ways", + "( IS", + "(I S", + "_ cert", + "_c ert", + "_ce rt", + "D ig", + "Di g", + "Ġunder way", + "or ton", + "ort on", + "ĠHur ricane", + "Ġsp ends", + "Ġspe nds", + "Ġspend s", + "Ġ Segment", + "ĠS egment", + "ĠSe gment", + "ĠSeg ment", + "Ġ flies", + "Ġf lies", + "Ġfl ies", + "Ġ Toggle", + "ĠT oggle", + "ĠL ynch", + "ĠLyn ch", + "Ġs enses", + "Ġsense s", + "Ġsens es", + "Ġsen ses", + "ĠK os", + "ĠKo s", + "set Enabled", + "ist ically", + "istic ally", + "istical ly", + "Ġ tester", + "Ġt ester", + "Ġte ster", + "Ġtest er", + "Ġtes ter", + "Ġteste r", + "Ġadministr ators", + "Ġadministrator s", + "Ġt agged", + "Ġtag ged", + "Ð ĵ", + "Ġ shortcut", + "Ġshort cut", + "Ġ Resolution", + "ĠRe solution", + "ĠRes olution", + "Ġsuper vision", + "Ġsuperv ision", + "ĠAsh ley", + "Tr acking", + "Track ing", + "ul atory", + "ulator y", + "an del", + "and el", + "ande l", + "i sten", + "is ten", + "ist en", + "iste n", + "Ġun re", + "Ġunr e", + "( diff", + "(d iff", + "(di ff", + "AN TS", + "ANT S", + "Ġr ider", + "Ġrid er", + "Ġride r", + "Ġri der", + "Ġs Äħ", + ". Series", + ".S eries", + ".Se ries", + "_ orders", + "_order s", + "_or ders", + "_ord ers", + "ORIZ ONTAL", + "Ġret ention", + "ãĢĤ čĊčĊ", + "\"> čĊčĊ", + "\">čĊ čĊ", + "Ġdi agonal", + "Ġdiag onal", + "Ġdiagon al", + "ĠC ancellationToken", + "_ Internal", + "_In ternal", + "_Int ernal", + "_Inter nal", + "Ġr uin", + "Ġru in", + ". Qt", + ".Q t", + "ocr atic", + "ocrat ic", + "T el", + "Te l", + "Ġ Answers", + "ĠAn swers", + "ĠAnswer s", + "ĠAns wers", + "m atic", + "ma tic", + "mat ic", + "Ġ xp", + "Ġx p", + "a tem", + "at em", + "ate m", + "_ jobs", + "_j obs", + "_job s", + "_ any", + "_a ny", + "_an y", + "Ġsen iors", + "Ġsenior s", + "Ġseni ors", + "Ġland mark", + "ĠQ List", + "Ġman eu", + "Ġmane u", + "ot ify", + "oti fy", + "/ \";Ċ", + "/\" ;Ċ", + "/ server", + "/s erver", + "ĠPhil osoph", + "u tenant", + "ut enant", + "ute nant", + "uten ant", + "( io", + "(i o", + "h z", + "Ġ authenticated", + "Ġauth enticated", + "Ġauthentic ated", + "Ġauthenticate d", + "d v", + "- Compatible", + "Origin ally", + "Original ly", + "Orig inally", + ", function", + ",f unction", + "ãĢĤ čĊ", + "ĠRepresent ative", + "as ily", + "asi ly", + "asil y", + "irc uit", + ". dt", + ".d t", + "( math", + "(m ath", + "(mat h", + ". Marshal", + ".M arshal", + ".Mar shal", + "[ ,", + "Ġ Cities", + "ĠC ities", + "ĠCit ies", + "ĠCi ties", + "_ turn", + "_t urn", + "| )Ċ", + "Ġ cantidad", + "Ġc antidad", + "Ġcant idad", + "al ter", + "alt er", + "alte r", + "ĉ ui", + "ĉu i", + "ĠNe braska", + "Ġsk irt", + "Ġski rt", + ". bg", + ".b g", + "Shared Preferences", + "( style", + "(st yle", + "Ġg rief", + "Ġgr ief", + "Ġgri ef", + "g ew", + "ge w", + "Ġsaf eg", + "Ġsafe g", + "o lang", + "ol ang", + "ola ng", + "olan g", + "_ lists", + "_l ists", + "_list s", + "_li sts", + "ì Ľ", + "Ġgran ite", + "Ġgra nite", + "Ġhot test", + "Ġhott est", + ". jdbc", + ".j dbc", + ".jd bc", + ". Customer", + ".C ustomer", + ".Custom er", + "Ġ âī¤", + "Ġâī ¤", + "Ġw aar", + "Ġwa ar", + "_ scene", + "_s cene", + "_sc ene", + "+ '/", + "+' /", + "ĠJ TextField", + "ĠJText Field", + "ĠJT extField", + "Ġs eating", + "Ġse ating", + "Ġsea ting", + "Ġseat ing", + "Ġw ears", + "Ġwe ars", + "Ġwear s", + "Ġ` /", + "C ases", + "Case s", + "Ca ses", + "Cas es", + "Ġ Youtube", + "ĠY outube", + "ĠYou tube", + "ı m", + "Ġb alcon", + "Ġbal con", + ", G", + "Meta Data", + "Met aData", + "- price", + "-p rice", + "-pr ice", + "S CR", + "SC R", + "Un ity", + "Unit y", + "Uni ty", + "Ġtr unk", + "={ `${", + "={` ${", + "Ġearth quake", + "Ġearthqu ake", + "P artial", + "Part ial", + "Ġ subst", + "Ġsu bst", + "Ġsub st", + "Ġsubs t", + "Ġel imin", + "Ġelim in", + "=\" '.", + "=\"' .", + "//* [@", + "//*[ @", + "Ġsup ervisor", + "Ġsuper visor", + "Ġsuperv isor", + "vr olet", + "vro let", + "_ article", + "_art icle", + "Ġ pane", + "Ġp ane", + "Ġpa ne", + "Ġpan e", + "b io", + "bi o", + "Ġmot ors", + "Ġmo tors", + "Ġmotor s", + "Ġmoto rs", + "N M", + "F rank", + "Fr ank", + "Fran k", + "Fra nk", + "Ġon ion", + "- word", + "-w ord", + "Item ClickListener", + "ItemClick Listener", + "Ġ brit", + "Ġb rit", + "Ġbr it", + "Ġbri t", + "end encies", + "enden cies", + "Com puter", + "Comp uter", + "Compute r", + "Comput er", + "_ running", + "_r unning", + "_run ning", + "( day", + "(d ay", + "(da y", + "- he", + "-h e", + "( named", + "(n amed", + "(name d", + "ĠS ach", + "ĠSa ch", + "ĠSac h", + "о Ñĩ", + "c ampaign", + "camp aign", + ". Abstract", + ".A bstract", + ".Ab stract", + ".Abs tract", + "( wrapper", + "(w rapper", + ". pay", + ".p ay", + ".pa y", + "Ġ uw", + "Ġu w", + "G eo", + "Ge o", + "r ails", + "ra ils", + "rai ls", + "rail s", + "/ select", + "/s elect", + "/se lect", + "i chte", + "ic hte", + "ich te", + "icht e", + "s ons", + "so ns", + "son s", + "E VENT", + "EV ENT", + "Ġal iment", + "Ġali ment", + "Pro viders", + "Provider s", + "Provid ers", + "Provide rs", + "Prov iders", + "A wait", + "Aw ait", + "_INTER VAL", + ". off", + ".of f", + ".o ff", + "Ġgl uten", + "Ġglut en", + "Ġglu ten", + "_ cloud", + "_c loud", + "_cl oud", + "Ġ wen", + "Ġw en", + "Ġwe n", + ". extract", + ".ex tract", + ".ext ract", + ".extra ct", + "ĉ button", + "ĉb utton", + "/ MM", + "/M M", + "P arty", + "Par ty", + "Part y", + "Ġdem ographic", + "Ġdemo graphic", + "_ errno", + "_err no", + "Ġh iking", + "Ġhi king", + "Ġhik ing", + "(' ')Ċ", + "\", @\"", + "Ġ wit", + "Ġw it", + "Ġwi t", + "r á", + "ol ogie", + "olog ie", + "olo gie", + "ologi e", + "Ġ Styles", + "ĠSt yles", + "ĠStyle s", + "ĠSty les", + "ĠBrowser Module", + ". RequestMapping", + ".Request Mapping", + "ic ans", + "ica ns", + "ican s", + "P AGE", + "PA GE", + "c reation", + "cre ation", + "creat ion", + "ĠF erguson", + "u ded", + "ud ed", + "ude d", + "num bers", + "number s", + "Ġ GTK", + "ĠG TK", + "ĠGT K", + "Ġpresent ations", + "Ġpresentation s", + "ĠB obby", + "ĠBob by", + "_ span", + "_s pan", + "_sp an", + "e style", + "est yle", + "esty le", + "Ġillegal ly", + "Ġilleg ally", + "ab ela", + "abel a", + "abe la", + "Ġbattle field", + "cap acity", + "t error", + "ter ror", + "te rror", + "terr or", + "] \");Ċ", + "]\" );Ċ", + "]\") ;Ċ", + "Ġwar rior", + "le ader", + "lead er", + "lea der", + "Ġ DBG", + "ĠD BG", + "ĠDB G", + "Ġ Revenue", + "ĠRe venue", + "Ġvi gil", + "Ġvig il", + "Ġcounter parts", + "Ġcounterpart s", + "( Error", + "(E rror", + "AC TER", + "ACT ER", + "Ġhe eft", + "Ġse lections", + "Ġselect ions", + "Ġselection s", + "Ġsel ections", + "Ġsele ctions", + "ze ug", + "t om", + "to m", + "- two", + "-t wo", + "-tw o", + ". ;Ċ", + ".; Ċ", + "_ statement", + "_st atement", + "_state ment", + "_stat ement", + "_sta tement", + "ĠA id", + "ĠAi d", + "ĠV ul", + "ĠVu l", + "_ rgb", + "_r gb", + "_rg b", + "Ġpr izes", + "Ġpri zes", + "Ġprize s", + "Ġ editable", + "Ġed itable", + "Ġedit able", + "Ġedi table", + "ĉ form", + "ĉf orm", + "ĉfor m", + "ın ı", + ". decor", + ".de cor", + ".dec or", + "D emo", + "De mo", + "Dem o", + "l ices", + "lic es", + "li ces", + "lice s", + "Ġen ctype", + "Ġenc type", + "rat ulations", + "Ġ ROS", + "ĠR OS", + "ĠRO S", + "_ chars", + "_ch ars", + "_char s", + "ĠJ ahr", + "ĠJa hr", + "ĠJah r", + "p artial", + "part ial", + "Ñĥ ÑĤ", + "Ġ Receive", + "ĠRe ceive", + "ĠRece ive", + "ĠL ands", + "ĠLa nds", + "ĠLand s", + "ĠLan ds", + "AP TER", + "APT ER", + "Ġch opped", + "Ġcho pped", + "Ġchop ped", + ". .\"", + ".. \"", + "Ġ Analy", + "ĠAn aly", + "ĠAnal y", + "ĠAna ly", + "Ġ UID", + "ĠU ID", + "ĠUI D", + "ĠR adeon", + "ĠRad eon", + "ĠB ee", + "ĠBe e", + "Ġu nm", + "Ġun m", + "> M", + ".find all", + "Token izer", + "Ġ WHAT", + "ĠWH AT", + "Ġ sj", + "Ġs j", + "D rawing", + "Draw ing", + "E ss", + "Es s", + "O ND", + "ON D", + "Ĭ ¶", + "( packet", + "(p acket", + "(pa cket", + "(pack et", + "âĢĶ but", + "Inv ocation", + "ĠN uclear", + "ĠNu clear", + "? ;Ċ", + "Ġgr andes", + "Ġgrand es", + "Ġgran des", + "Ġgrande s", + "Ġ Crypt", + "ĠC rypt", + "ĠCry pt", + "r emark", + "re mark", + "rem ark", + "rema rk", + "Ġ' ../../../../", + "Ġ'../ ../../../", + "Ġ'../../ ../../", + "Ġ'../../../ ../", + "Ġin ability", + "m agic", + "mag ic", + "c ats", + "ca ts", + "cat s", + "Ġ simulate", + "Ġsim ulate", + "Ġsimul ate", + ": ${", + ":$ {", + "in flate", + "inf late", + "Ġ ener", + "Ġe ner", + "Ġen er", + ": NO", + ":N O", + "i ples", + "ip les", + "iple s", + "ipl es", + "Ġme rit", + "Ġmer it", + "Ġ Rated", + "ĠR ated", + "ĠRa ted", + "ĠRate d", + "ĠRat ed", + "Ġg lue", + "Ġgl ue", + "Ġglu e", + "/ blog", + "/b log", + "/bl og", + "Ġ gren", + "Ġg ren", + "Ġgr en", + "Ġgre n", + "Ġthr illed", + "Ġthrill ed", + ". CH", + ".C H", + "un can", + "unc an", + "unca n", + "Ġ PRIMARY", + "ĠPR IMARY", + "ĠPRI MARY", + "Ġper sec", + "Ġpers ec", + "Ġperse c", + "Ġfe ared", + "Ġfear ed", + ". MIN", + ".M IN", + "ĠThe ater", + "é Ĵ", + "ateg orie", + "ategor ie", + "ategori e", + "atego rie", + "æ® µ", + "Ġappet ite", + "s quare", + "squ are", + "ĠAlex and", + "ĠAlexa nd", + ". UserId", + ".User Id", + "_ gt", + "_g t", + "_ enter", + "_en ter", + "_ent er", + "Ġgrad uates", + "Ġgraduate s", + "Ġgradu ates", + "Fragment Manager", + "Author ize", + "-N LS", + "( My", + "(M y", + "Ġtri umph", + "Ġtrium ph", + "us ting", + "ust ing", + "ustin g", + "_PARAM S", + "_PAR AMS", + "Char acters", + "Character s", + "(: ,:,", + "(:, :,", + "_ BUILD", + "_B UILD", + "_BU ILD", + "M Hz", + "MH z", + "Ġw ashed", + "Ġwas hed", + "Ġwa shed", + "Ġwash ed", + "Ġun cle", + "Ġunc le", + "St eve", + "Ste ve", + "ar down", + "ard own", + "ardo wn", + "< stdio", + " ${", + ">$ {", + "_ confirmation", + "_confirm ation", + "Ġt rophy", + "Ġtr ophy", + "Ġtro phy", + "Ġtrop hy", + "W orks", + "Work s", + "ĠElect ronics", + "ĠElectronic s", + "ĠElectron ics", + "ĠMediterr anean", + "_ metrics", + "_m etrics", + "_metric s", + "_met rics", + "Ġann ouncing", + "Ġannounc ing", + "Ġ DAY", + "ĠD AY", + "ĠDA Y", + "_ proto", + "_pro to", + "_pr oto", + "_prot o", + "Ġ pear", + "Ġp ear", + "Ġpe ar", + "Ġpea r", + "base Url", + "ĉ ĉĉĉĉĉĉĉĊ", + "ĉĉ ĉĉĉĉĉĉĊ", + "ĉĉĉĉ ĉĉĉĉĊ", + "ĉĉĉ ĉĉĉĉĉĊ", + "ĉĉĉĉĉ ĉĉĉĊ", + "ĉĉĉĉĉĉ ĉĉĊ", + "ĉĉĉĉĉĉĉĉ Ċ", + "ĉĉĉĉĉĉĉ ĉĊ", + "Ġco ordination", + "Ġcoord ination", + "Ġcoordin ation", + ": N", + ". animate", + ".an imate", + ".anim ate", + "ĠC otton", + "ĠCot ton", + "_ hit", + "_h it", + "_hi t", + "â ľ", + "Ġj etzt", + "Ġjet zt", + "i fter", + "if ter", + "ift er", + "( fields", + "(f ields", + "(field s", + "own load", + "ific acion", + "ifica cion", + ". cuda", + ".c uda", + "ĠL iu", + "ĠLi u", + "> equals", + ">e quals", + "Ġ Ace", + "ĠA ce", + "ĠAc e", + "ÑĢ ам", + "ÑĢаР¼", + "ÑĢа м", + "ĠSup erman", + "ĠSuper man", + "ĠGar cia", + "ĠGarc ia", + "Ġarr ests", + "Ġarrest s", + "a gar", + "ag ar", + "aga r", + "Ġ {})", + "Ġ{ })", + "Ġ{} )", + "Ġ macros", + "Ġmac ros", + "Ġmacro s", + "ro upe", + "rou pe", + "roup e", + "ê tre", + "êt re", + "Ġtw isted", + "Ġtwist ed", + "str uments", + "strument s", + "stru ments", + "_ (\"", + "_( \"", + "_ vertices", + "_vert ices", + "Ġ Transition", + "ĠT ransition", + "ĠTrans ition", + "ĠTransit ion", + "и к", + "[ max", + "[m ax", + "m ind", + "min d", + "mi nd", + "Ġ accessToken", + "Ġaccess Token", + "Ġun le", + "Ġunl e", + "m us", + "mu s", + "c op", + "co p", + "Ġ Factor", + "ĠF actor", + "ĠFac tor", + "ĠFa ctor", + "ĠFact or", + "Ġcon ced", + "Ġconc ed", + "Ġconce d", + "Ġre tr", + "Ġr etr", + "Ġret r", + ".l inalg", + ".lin alg", + "- slider", + "-s lider", + "-slide r", + "-sl ider", + "o bl", + "ob l", + "_Static Fields", + "Ġz ombie", + "s elling", + "sel ling", + "sell ing", + "Ġ chap", + "Ġc hap", + "Ġch ap", + "Ġcha p", + "Ġsh aking", + "Ġsha king", + "Ġ Translate", + "ĠTrans late", + "ĠAm sterdam", + "Ġ ETH", + "ĠE TH", + "ĠET H", + "_ EXTERN", + "_EX TERN", + "_EXT ERN", + "k d", + "_ disc", + "_d isc", + "_dis c", + "_di sc", + "Ġprec eding", + "Ġpreced ing", + "Ġ prix", + "Ġp rix", + "Ġpr ix", + "Ġpri x", + "Object Name", + "_ modified", + "_mod ified", + "ard ware", + "Ġ?> \">", + "Ġ?>\" >", + "Ġ DW", + "ĠD W", + "` ${", + "Ġ?> \">\" >\"> \">< ?", + "u yen", + "uy en", + "uye n", + "Ġd onna", + "Ġdon na", + "Ġdonn a", + "Ġx si", + "Ġxs i", + "Ġ$ \"{", + "Ġ$\" {", + "Ġ Drawing", + "ĠD rawing", + "ĠDraw ing", + "ĠDra wing", + ", nil", + ",n il", + "Ġ onder", + "Ġo nder", + "Ġon der", + "Ġonde r", + "B G", + "O bserv", + "Ob serv", + "Obs erv", + "Ġconsider ations", + "Ġconsideration s", + "bo at", + "boa t", + "ĠB anks", + "ĠBank s", + "ĠBan ks", + "Ġin dict", + "Ġind ict", + "Ġindic t", + ", I", + "ĠB lu", + "ĠBl u", + "( version", + "(v ersion", + "cl iente", + "client e", + "cli ente", + "o lan", + "ol an", + "ola n", + "L ESS", + "LE SS", + "LES S", + "assert Same", + "_ void", + "_v oid", + "ĠW AS", + "ĠWA S", + "ĉ enum", + "ĉe num", + "ĉen um", + "Ġm ixer", + "Ġmix er", + "E W", + "a ffe", + "af fe", + "aff e", + "Ġblow job", + "t extField", + "text Field", + "Ġimm ense", + "_ repo", + "_re po", + "_rep o", + "Ġ globals", + "Ġg lobals", + "Ġglobal s", + "Ġglob als", + "ant ages", + "anta ges", + "antage s", + ". today", + ".t oday", + ".to day", + "Th ursday", + "ĠB rig", + "ĠBr ig", + "ĠBri g", + "{ })Ċ", + "{} )Ċ", + "{}) Ċ", + "Ġ Imagine", + "ĠIm agine", + "ĠImag ine", + "( GPIO", + "(G PIO", + "Ġ esto", + "Ġe sto", + "Ġes to", + "Ġest o", + "Ġ Province", + "ĠPro vince", + "ĠProv ince", + "ĠM ental", + "ĠMen tal", + "ĠMent al", + "_ cells", + "_c ells", + "_cell s", + "ĠJul ian", + "ĠJu lian", + "ĠJulia n", + "ĠJuli an", + ". Screen", + ".S creen", + ".Sc reen", + "Ġc andle", + "Ġcan dle", + "Ġcand le", + "Ġm onde", + "Ġmon de", + "Ġmo nde", + "Ġmond e", + "Ġv erg", + "Ġver g", + "Ġve rg", + "it erals", + "iter als", + "iteral s", + "- layout", + "-l ayout", + "G uest", + "Gu est", + "Ġv ind", + "Ġvi nd", + "Ġvin d", + "Ġ Echo", + "ĠE cho", + "ĠEc ho", + "' )}", + "') }", + "Ġ mann", + "Ġm ann", + "Ġman n", + "Ġma nn", + "_ BOOLEAN", + "_BO OLEAN", + "h ap", + "ha p", + "Ġnight mare", + "U GH", + "UG H", + "Ġnon etheless", + "Ġnone theless", + "Ġ athe", + "Ġa the", + "Ġat he", + "Ġath e", + "ĠH olland", + "ĠHol land", + "ĠHo lland", + "ĠHoll and", + "Ġ Born", + "ĠB orn", + "ĠBo rn", + "ĠBor n", + "\\ ORM", + "a nut", + "an ut", + "_ levels", + "_level s", + "Ġpet ite", + "Ġpetit e", + "- art", + "-a rt", + "-ar t", + "_ SHOW", + "_S HOW", + "_SH OW", + "number Of", + "_ thumbnail", + "_th umbnail", + "a mins", + "am ins", + "amin s", + "ami ns", + "Ġ Defines", + "ĠDef ines", + "ĠDefine s", + "Ġ\" =", + ". StatusCode", + ".Status Code", + "Ġdign ity", + "ĠB ike", + "ĠBi ke", + "ĠBik e", + ".New Line", + "ĠG las", + "ĠGl as", + "( logger", + "(log ger", + "(lo gger", + "Ġc atches", + "Ġcatch es", + "Ġcat ches", + "v otes", + "vo tes", + "vote s", + "Ġexam ining", + "/ register", + "/reg ister", + "Ġspec ifying", + "Ġspecify ing", + "_ fixed", + "_f ixed", + "_fix ed", + "Ġdraw ings", + "Ġdrawing s", + "Th reshold", + "A x", + "Ġ Architecture", + "ĠArch itecture", + "ĠArchitect ure", + "( pid", + "(p id", + "(pi d", + "W ire", + "Wir e", + "Wi re", + "( cont", + "(c ont", + "(con t", + "(co nt", + "l ane", + "la ne", + "lan e", + "L ists", + "List s", + "Li sts", + "Ġs print", + "Ġsp rint", + "Ġspr int", + "Ġgrand father", + "_ AG", + "_A G", + "Ġs cheduling", + "Ġsched uling", + "CL US", + "CLU S", + "at urity", + "atur ity", + "Ġ locking", + "Ġl ocking", + "Ġloc king", + "Ġlock ing", + "[ size", + "[s ize", + "_ styles", + "_st yles", + "_style s", + "Ġ wb", + "Ġw b", + "-- >ĊĊ", + "-->Ċ Ċ", + "--> ĊĊ", + "Ġsp inning", + "Ġspin ning", + "_ pending", + "_p ending", + "_pen ding", + "Match ers", + "Mat chers", + "Matcher s", + ". Keys", + ".Key s", + "Ġ PV", + "ĠP V", + "en us", + "enu s", + "ant is", + "anti s", + "Ġ discard", + "Ġd iscard", + "Ġdis card", + "Ġdisc ard", + "Ġ haul", + "Ġh aul", + "Ġha ul", + "Ġem pir", + "Ġemp ir", + "Ġpath way", + "Ġo ak", + "Ġoa k", + "м ен", + "ме н", + "-in duced", + "-ind uced", + "Ġim pair", + "Ġimp air", + "ĠCal gary", + ".is Hidden", + "d z", + "_ include", + "_in clude", + "_inc lude", + "Ġ gm", + "Ġg m", + "Ġ' ('", + "Ġ'( '", + "P Y", + "uggest ions", + "uggestion s", + "Ġcom modity", + "Ġcommod ity", + "c ro", + "cr o", + "/ sub", + "/s ub", + "Ġ getInstance", + "Ġget Instance", + "Ġ Legacy", + "ĠLeg acy", + "ĠK il", + "ĠKi l", + "B al", + "Ba l", + "( short", + "(s hort", + "(sh ort", + "In form", + "Info rm", + "Inf orm", + "+ x", + "* r", + "Ġ Hopefully", + "ĠHope fully", + "ĠHop efully", + "o rate", + "or ate", + "ora te", + "Ġm achen", + "Ġma chen", + "Ġmach en", + "Ġmac hen", + "Ġtreat y", + "Ġtre aty", + "ĠO ri", + "ĠOr i", + ". public", + ".p ublic", + ".pub lic", + "- horizontal", + "-h orizontal", + "Ġt actic", + "Ġta ctic", + "Ġtact ic", + "Ġtac tic", + "Ġb ord", + "Ġbo rd", + "Ġbor d", + "w ares", + "ware s", + "wa res", + "war es", + "Ġ ammo", + "Ġa mmo", + "Ġam mo", + "Ġ Lists", + "ĠL ists", + "ĠList s", + "ĠLi sts", + "ĠLis ts", + "Ġequ ations", + "Ġeq uations", + "Ġequation s", + "/ her", + "/h er", + "/he r", + "ĠN SW", + "ĠNS W", + "B ounding", + "Bo unding", + "Bound ing", + "_ Collections", + "_C ollections", + "Ġ avail", + "Ġa vail", + "Ġav ail", + "Ġava il", + ". DropDown", + ".Drop Down", + "è °", + "Ġ hh", + "Ġh h", + "Ġl Ãł", + ". pb", + ".p b", + "Ġmem orial", + "Ġmemor ial", + "Ġmemo rial", + "Ġmemoria l", + "Ġ ATTR", + "ĠAT TR", + "ĠATT R", + "Ġexhaust ed", + "Ġt sp", + "Ġts p", + "ĉ redirect", + "ĉre direct", + "Ġlike wise", + "Ġlik ewise", + "S TER", + "ST ER", + "STE R", + "L java", + "Ġcondem ned", + "Ġcondemn ed", + "oca ust", + "( strict", + "(str ict", + "Ġex empt", + "Ġexem pt", + "Ġexemp t", + "Ġ sms", + "Ġs ms", + "Ġsm s", + "Ġex agger", + "S YS", + "SY S", + "Ġl ounge", + "Ġlo unge", + "Ġlou nge", + "Ġloung e", + ": ^", + "Ġt odd", + "Ġto dd", + "Ġtod d", + "d eb", + "de b", + "at orial", + "ator ial", + "ato rial", + "atori al", + "atoria l", + "ĠPort er", + "ĠPor ter", + "Ġt uition", + "Ġtu ition", + "Ġex empl", + "Ġexem pl", + "Ġexe mpl", + "Ġexemp l", + "Ġ paren", + "Ġp aren", + "Ġpar en", + "Ġpa ren", + "Ġpare n", + ".line To", + "Ġkid ney", + "Ġki dney", + "Ġkidn ey", + "Ġ ça", + "Ġç a", + "Ġc ui", + "Ġcu i", + "ï¼Į 请", + "X C", + "Ġmo ż", + "Ġn ominated", + "Ġno minated", + "Ġnom inated", + "Ġnomin ated", + "Ġnominate d", + "l ung", + "lu ng", + "lun g", + "Im Gui", + "Ġ Buzz", + "ĠB uzz", + "ĠBu zz", + "Ġst ereo", + "Ġste reo", + "Ġster eo", + "Ġstere o", + "p ortal", + "port al", + "por tal", + "res as", + "resa s", + "Ġ klass", + "Ġk lass", + "Ġkl ass", + "Ġkla ss", + "Ġklas s", + "Ġd rafted", + "Ġdraft ed", + "Ġproject ile", + "/g pl", + "( parameters", + "(param eters", + "(parameter s", + "* )Ċ", + "*) Ċ", + "Ġass isted", + "Ġassist ed", + "Ġ NSInteger", + "ĠNS Integer", + "s itemap", + "site map", + "sit emap", + ": nth", + ":n th", + ". Views", + ".View s", + ".Argument Parser", + "Ġ meer", + "Ġm eer", + "Ġme er", + "Ġmee r", + "z ier", + "zi er", + "zie r", + "Ġ Dig", + "ĠD ig", + "ĠDi g", + "Ċ", + ")} >Ċ", + ")}> Ċ", + "Ġp lag", + "Ġpl ag", + "Ġpla g", + "p ine", + "pi ne", + "pin e", + "Ġblank et", + "Ġ : -", + "Ġ lcd", + "Ġl cd", + "Ġlc d", + "- --------------", + "-- -------------", + "---- -----------", + "-------- -------", + "--- ------------", + "------------ ---", + "----- ----------", + "---------- -----", + "------ ---------", + "----------- ----", + "------------- --", + "------- --------", + "--------- ------", + "-------------- -", + "( \"\"", + "(\" \"", + "Ġt actical", + "Ġtact ical", + "Ġtactic al", + "Ġtac tical", + "ĠR onald", + "ĠRon ald", + "ex tr", + "ext r", + "ĠF est", + "ĠFe st", + "Ġf uer", + "Ġfu er", + "Ġfue r", + "- navigation", + "-n avigation", + "-nav igation", + "Ġ kb", + "Ġk b", + "g host", + "gh ost", + "Ġ handleChange", + "Ġhandle Change", + "_ cls", + "_c ls", + "_cl s", + "( )!=", + "() !=", + "Com parator", + "Compar ator", + ". vm", + ".v m", + "ĠC ox", + "ĠCo x", + "_ review", + "_re view", + "_r eview", + "_rev iew", + "/ @", + "_ cookie", + "_c ookie", + "_co okie", + "Ġrecogn ised", + "Ġrecognise d", + "l dap", + "ld ap", + "lda p", + "Th reads", + "Thread s", + "ĠS exual", + "ĠSex ual", + "ĠB earing", + "ĠBe aring", + "ĠBear ing", + "ĠBea ring", + "( SQL", + "(S QL", + "Ġ xr", + "Ġx r", + "Ġt high", + "Ġth igh", + "Ġthi gh", + "URL Connection", + "ĠS UV", + "ĠSU V", + "Ġm Context", + "Ġinc idence", + "Ġincid ence", + "Ġ Este", + "ĠE ste", + "ĠEs te", + "ĠEst e", + ". sup", + ".s up", + "_ te", + "_t e", + "( EXIT", + "(EX IT", + "C MD", + "CM D", + "/ \">", + "/\" >", + "Al most", + "Ġ Une", + "ĠU ne", + "ĠUn e", + "Ġand eren", + "Ġandere n", + "Ġander en", + "Ġ Singleton", + "ĠS ingleton", + "ĠSing leton", + "ĠSingle ton", + "Ġb ore", + "Ġbo re", + "Ġbor e", + "Th ink", + "Thin k", + "Ġn arc", + "Ġna rc", + "Ġnar c", + "] initWith", + "]init With", + "_ shop", + "_s hop", + "_sh op", + "( strategy", + "(str ategy", + "! ',", + "!' ,", + "her its", + "herit s", + "Ġ Desk", + "ĠD esk", + "ĠDe sk", + "ĠDes k", + "_ machine", + "_m achine", + "_ma chine", + ".n etty", + ".net ty", + ".ne tty", + "ı nda", + "ın da", + "ınd a", + "= <", + "Ġ QR", + "ĠQ R", + "Ġ Sidebar", + "ĠS idebar", + "ĠSide bar", + ".split Container", + "Ġon Success", + "Ġ monkey", + "Ġmon key", + "Ġmonk ey", + "En joy", + "( nodes", + "(n odes", + "(node s", + "(no des", + "pect rum", + "Ġ (*(", + "Ġ( *(", + "Ġ(* (", + "ĉ UINT", + "ĉU INT", + "ĉUI NT", + ", height", + ",h eight", + "ĠNetwork s", + "ĠNet works", + ". tail", + ".t ail", + ".ta il", + ".l inspace", + ".lin space", + "Ġ \"...", + "Ġ\" ...", + "Ġ\". ..", + "Ġ\".. .", + "L isten", + "List en", + "Li sten", + "Æ ¡", + ". Channel", + ".Ch annel", + "- defined", + "-d efined", + "-def ined", + "Re peat", + "Rep eat", + "ad just", + "adj ust", + "E RM", + "ER M", + "_ application", + "_app lication", + "_ap plication", + ".assert NotNull", + ".assertNot Null", + "- stream", + "-st ream", + "-str eam", + "Ġ rabbit", + "Ġr abbit", + "Ġrab bit", + "Ġposition ing", + "Ġ woke", + "Ġw oke", + "Ġwo ke", + "Ġf ing", + "Ġfin g", + "Ġfi ng", + "Ġmulti player", + "Ġmultip layer", + "Ġregister ing", + "Ġregist ering", + "un til", + "unt il", + "Ã¥ n", + "( ::", + "(: :", + "uss ions", + "ussion s", + "Ġpot ato", + "Ġ Equals", + "ĠE quals", + "ĠEqu als", + "ĠEqual s", + ". Sup", + ".S up", + "/ apache", + "/ap ache", + "Ġ (=", + "Ġ( =", + ". \")", + ".\" )", + ". ptr", + ".p tr", + ".pt r", + "Ġ Speech", + "ĠS peech", + "ĠSpe ech", + ". clip", + ".c lip", + ".cl ip", + ".cli p", + "ĠGab riel", + "ĠGabri el", + "Ġmus ician", + "Ġmusic ian", + "/ issues", + ". shop", + ".s hop", + ".sh op", + "Ġ Hier", + "ĠH ier", + "ĠHi er", + "_ RET", + "_RE T", + "_R ET", + "_ bucket", + "_b ucket", + "ãĥ ¡", + "a vs", + "av s", + "Ġ roz", + "Ġr oz", + "Ġro z", + "f lower", + "fl ower", + "flow er", + "flo wer", + "Write Barrier", + "ĠM ilan", + "ĠMil an", + "ĠMi lan", + "Ġlegisl ature", + "ĠD oll", + "ĠDo ll", + "ĠDol l", + "Ġpro ving", + "Ġpr oving", + "Ġprov ing", + ".concat enate", + "âķ IJ", + "Ġg char", + "Ġgc har", + "cdn js", + "b les", + "ble s", + "bl es", + "Ġ Listing", + "ĠL isting", + "ĠList ing", + "ĠLis ting", + "л о", + ".xr Label", + "ĠS ak", + "ĠSa k", + "just ice", + "ju stice", + "ĠVal entine", + "ĠValent ine", + "un less", + "Ġp iger", + "Ġpi ger", + "Ġpig er", + "Ġpige r", + "( run", + "(r un", + "Ġtest ified", + "A NA", + "AN A", + "ĠRe moves", + "ĠRem oves", + "ĠRemove s", + ") )));Ċ", + ")) ));Ċ", + "))) );Ċ", + ")))) ;Ċ", + "rec ated", + "ĠRuntime Method", + "Ġcon qu", + "ãĤ ¢", + "Ġt issues", + "Ġtissue s", + "a iler", + "ail er", + "ai ler", + "é té", + "ét é", + "- Star", + "-S tar", + "-St ar", + "Ġfl ames", + "Ġflame s", + "Ġflam es", + "Ġfla mes", + ". setIcon", + ".set Icon", + "Ġsup ern", + "Ġsuper n", + "Ġv agina", + "Ġvag ina", + "- variable", + "-var iable", + "Ġwell ness", + "C UR", + "CU R", + "Ġb elle", + "Ġbe lle", + "Ġbel le", + "Ġbell e", + ". getRequest", + ".get Request", + "Ġp oco", + "Ġpo co", + "Ġpoc o", + "b enh", + "be nh", + "ben h", + "a gens", + "ag ens", + "age ns", + "agen s", + "Ġs pill", + "Ġsp ill", + "Ġspi ll", + "Ġ Jur", + "ĠJ ur", + "ĠJu r", + "Ġ dispatcher", + "Ġdispatch er", + "Ġdisp atcher", + "н ого", + "но го", + "ног о", + "e monic", + "em onic", + "emo nic", + "emon ic", + "( dirname", + "(dir name", + "Ġ ÐĶ", + "ĠÐ Ķ", + "Ġp asse", + "Ġpass e", + "Ġpas se", + "Ġpa sse", + "Ġg anz", + "Ġga nz", + "Ġgan z", + "r icing", + "ri cing", + "ric ing", + "E U", + "Ġmuj eres", + "Ġmujer es", + "es sen", + "ess en", + "esse n", + ". attribute", + ".at tribute", + ".attrib ute", + "j j", + "ĉ ĉĠĊ", + "ĉĉ ĠĊ", + "ĉĉĠ Ċ", + "[ ^", + "Ġ strtolower", + "Ġstr tolower", + "Ġstrtol ower", + "lex er", + "ect ar", + "ec tar", + "ecta r", + "h otel", + "ho tel", + "hot el", + ". square", + ".s quare", + "Ġr all", + "Ġra ll", + "Ġl owered", + "Ġlow ered", + "Ġlower ed", + "handle d", + "hand led", + "M arket", + "Mark et", + "Mar ket", + "Ġ Uses", + "ĠU ses", + "ĠUs es", + "ĠUse s", + "i vas", + "iv as", + "iva s", + ". Business", + ".B usiness", + ".Bus iness", + "ãģĹ ãģ¦", + "ãģĹãģ ¦", + "D IV", + "DI V", + "Ġw asted", + "Ġwas ted", + "Ġwa sted", + "Ġwaste d", + "Ġwast ed", + "Ġa voir", + "Ġav oir", + "ê m", + "_ ACCOUNT", + "_AC COUNT", + "_ACC OUNT", + ". et", + ".e t", + "ĉ SDL", + "ĉS DL", + "k ap", + "ka p", + "Ġ fox", + "Ġf ox", + "Ġfo x", + "up pet", + "upp et", + "uppe t", + "{ },Ċ", + "{} ,Ċ", + "{}, Ċ", + "\" ,'", + "\", '", + "F avorite", + "P END", + "PE ND", + "Ġ AES", + "ĠA ES", + "ĠAE S", + "} ),", + "}) ,", + "Ġde duction", + "Ġded uction", + "Ġdeduct ion", + "Ġpol ÃŃt", + "Ġcomponent Will", + "ĠT elerik", + "ĠTele rik", + "_ SELF", + "_SE LF", + "_SEL F", + "Ġm use", + "Ġmus e", + "Ġmu se", + "C raft", + "Cr aft", + "Ġ dens", + "Ġd ens", + "Ġde ns", + "Ġden s", + "ठ¿", + "( tp", + "(t p", + "Ġt asty", + "Ġta sty", + "Ġtas ty", + "Ġtast y", + "Ġ balances", + "Ġbalance s", + "Ġbal ances", + "Ġded ication", + "Ġdedic ation", + "Ġdedi cation", + "ĠWall ace", + "ĠWal lace", + "Ġun law", + "Ġunl aw", + "\\ \">\\", + "\\\" >\\", + "\\\"> \\", + "Ġm um", + "Ġmu m", + "- update", + "-up date", + "e mente", + "em ente", + "ement e", + "eme nte", + "emen te", + "Ġs oda", + "Ġso da", + "Ġsod a", + "Re public", + "Rep ublic", + "as mine", + "asm ine", + "é ric", + "ér ic", + "éri c", + "( Status", + "(S tatus", + "ĠJson Convert", + "Ġ Disk", + "ĠD isk", + "ĠDis k", + "ĠDi sk", + ". Redirect", + ".Re direct", + ".Red irect", + "Ġfil ming", + "Ġfilm ing", + "/ mol", + "/m ol", + "R o", + "Ġ ville", + "Ġv ille", + "Ġvi lle", + "Ġvill e", + "Ġvil le", + "Ġtr abaj", + "Ġtrab aj", + "Ġs ynthesis", + "Ġsyn thesis", + "Ġsynth esis", + "Ġsynthes is", + "r ega", + "re ga", + "reg a", + "Ġ rl", + "Ġr l", + "S cheduler", + "Schedule r", + "ISH ED", + "current User", + "( errors", + "(err ors", + "(error s", + "(er rors", + "' h", + "_ bot", + "_b ot", + "_bo t", + "x imo", + "xi mo", + "Ġ USART", + "ĠUS ART", + "ĠUSA RT", + "_ super", + "_s uper", + "_sup er", + "_su per", + "_ DECREF", + "_DEC REF", + "н ой", + "но й", + "_ ROW", + "_R OW", + "_RO W", + "Ġprom otes", + "Ġpromote s", + "Ġpromot es", + "Ġpromo tes", + "Ġ TA", + "ĠT A", + "Ġh oras", + "Ġhor as", + "Ġho ras", + "Ġhora s", + "ĠRep resents", + "ĠRepresent s", + "Ġ nameof", + "Ġname of", + "Ġnam eof", + "Ġ Exc", + "ĠE xc", + "ĠEx c", + "ĠGar age", + "ĠGa rage", + "Ġse ine", + "Ġsein e", + "Ġsei ne", + ", #", + "Ġh erb", + "Ġhe rb", + "Ġher b", + "/ resources", + "/re sources", + "/res ources", + "/resource s", + "Ġple aded", + "Ġplea ded", + "Ġplead ed", + ".r adioButton", + ".radio Button", + "Ġ æĺ", + "Ġæ ĺ", + "O ps", + "Op s", + "ĠN est", + "ĠNe st", + "ĠNes t", + "c string", + "cs tring", + "ĠDef ence", + "Ġref ere", + "Ġrefer e", + "_ leaf", + "_le af", + "Ġreve lation", + "Ġrevel ation", + "ë §", + ".execute Update", + "_W ORLD", + "Ġexp ans", + "(\" \\\"", + "(\"\\ \"", + "j ab", + "ja b", + "Ġdoub ts", + "Ġdoubt s", + "Ġ Geometry", + "ĠGe ometry", + "ĠGeo metry", + "Ġintrodu ces", + "Ġintroduce s", + "Ġsen ators", + "Ġsenator s", + "Ġc anal", + "Ġcan al", + "Ġca nal", + ". helper", + ".h elper", + ".help er", + "ĠB iology", + "ĠBi ology", + "ĠBio logy", + "ĠBiol ogy", + "_ SENS", + "_S ENS", + "_SE NS", + ". previous", + ".pre vious", + ".prev ious", + "- touch", + "-t ouch", + "-to uch", + "a bit", + "ab it", + "abi t", + "Ġimp acted", + "Ġimpact ed", + "Ġbr ackets", + "Ġbracket s", + ". direct", + ".d irect", + ".dir ect", + ".di rect", + "ac cum", + "acc um", + "Ġtest osterone", + "ĉ action", + "ĉa ction", + "ĉac tion", + "ĉact ion", + "Ġ Chance", + "ĠCh ance", + "ĠCha nce", + "ĠChan ce", + "Ġpe aks", + "Ġpeak s", + "Ġpea ks", + "CppCodeGen WriteBarrier", + "Ġun belie", + "Ġunbe lie", + "_ press", + "_p ress", + "_pr ess", + "_pre ss", + "_pres s", + ". Rel", + ".R el", + ".Re l", + "ang led", + "angle d", + "angl ed", + "/ templates", + "/t emplates", + "/template s", + "/temp lates", + "-- >čĊ", + "--> čĊ", + "l ime", + "li me", + "lim e", + "Ġsufficient ly", + "_ nt", + "_n t", + "Exp and", + ".is file", + "Ġ isEmpty", + "Ġis Empty", + "Ġ qt", + "Ġq t", + "Ġmul her", + "a cob", + "ac ob", + "aco b", + "Ge orge", + "å¸ ¸", + "Ġas sim", + "Ġass im", + "a so", + "as o", + "Ġcompr ised", + "Ġcomprise d", + "O V", + "( CONFIG", + "(CON FIG", + "ĉ writer", + "ĉw riter", + "ĉwrite r", + "Ġd esp", + "Ġde sp", + "Ġdes p", + "Ġten ure", + "( cr", + "(c r", + ". pool", + ".p ool", + ".po ol", + "ĠB rend", + "ĠBr end", + "ĠBre nd", + "ĠBren d", + "Ġc ensor", + "( timeout", + "(time out", + "Ġp lea", + "Ġpl ea", + "Ġple a", + ". Wrap", + ".W rap", + "Ġt ightly", + "Ġtight ly", + "Ġ Were", + "ĠW ere", + "ĠWe re", + "ĠWer e", + "Ġ Ignore", + "ĠI gnore", + "ĠIgn ore", + "ĠIg nore", + "a bei", + "ab ei", + "abe i", + "Ġbr idges", + "Ġbridge s", + "Ġbrid ges", + "Ġcondem n", + "Ġsimp licity", + "Ġsimpl icity", + "Ġrout inely", + "Ġroutine ly", + "Ġbl acks", + "Ġblack s", + "Ġbla cks", + "j b", + "ĠP it", + "ĠPi t", + "U tf", + "Ut f", + "Ġ /Ċ", + "Ġ/ Ċ", + "r eload", + "re load", + "rel oad", + "Ġset Object", + "/ global", + "/g lobal", + "Ġf atty", + "Ġfa tty", + "Ġfat ty", + "Ġfatt y", + "Ġs ocks", + "Ġso cks", + "Ġsock s", + "Ġsoc ks", + "Could n", + "Ġerot isk", + "æĿ ¡", + "Ġ Pressure", + "ĠPres sure", + "ĠPress ure", + "ĠM az", + "ĠMa z", + "n pos", + "np os", + "to lower", + "tol ower", + "Ġ EQ", + "ĠE Q", + "ut eur", + "ute ur", + "Ġ Moment", + "ĠM oment", + "ĠMo ment", + "ĠMom ent", + "Ġ eta", + "Ġe ta", + "Ġet a", + "{{ --", + "Ġ graphs", + "Ġgraph s", + "Ġgrap hs", + "ĠG uar", + "ĠGu ar", + "r ine", + "ri ne", + "rin e", + "( --", + "(- -", + "Ġ HttpStatus", + "ĠHttp Status", + "( student", + "(st udent", + "* np", + "*n p", + "Ġrail way", + "Ġas ynchronous", + "_ vm", + "_v m", + "' ],'", + "'] ,'", + "'], '", + ", text", + ",t ext", + "m erchant", + "mer chant", + "( Guid", + "(G uid", + "ĠG ra", + "ĠGr a", + "ix er", + "ixe r", + "fetch All", + ". addListener", + ".add Listener", + "f lip", + "fl ip", + "* $", + "> (),", + ">( ),", + ">() ,", + "Ġsun light", + "as signed", + "ass igned", + "assign ed", + "Ġ abc", + "Ġa bc", + "Ġab c", + "Ġ COLUMN", + "ĠC OLUMN", + "ĠðŁĻĤ ĊĊ", + ") ...", + "). ..", + ").. .", + "Ġ ensemble", + "Ġen semble", + "Ġens emble", + "Ġ newline", + "Ġnew line", + "_S INGLE", + "i edad", + "ie dad", + "ied ad", + "Ġd arker", + "Ġdark er", + "Ġdar ker", + "or map", + "orm ap", + "Ġ lion", + "Ġl ion", + "Ġli on", + "pl its", + "plit s", + "Ġillustr ation", + "Ġillust ration", + "Ġ IEEE", + "ĠI EEE", + "ĠIE EE", + "Ġv ista", + "Ġvis ta", + "Ġvi sta", + "ous ands", + "ousand s", + "* ******", + "** *****", + "**** ***", + "****** *", + "*** ****", + "***** **", + "ĠTom my", + "Ġ hue", + "Ġh ue", + "Ġhu e", + "S el", + "Se l", + "Ġ aura", + "Ġa ura", + "Ġau ra", + "Ġaur a", + "ĠThe rapy", + "ĠTher apy", + "Ġan imator", + "Ġanim ator", + ". constraints", + ".con straints", + ".constraint s", + "Ġv ague", + "Ġva gue", + "Ġvag ue", + "(\" \")", + "(\"\" )", + "Ġvill ain", + "Ġvil lain", + "Ġvilla in", + "Ġbless ing", + "Ġstring Builder", + "Ġ Misc", + "ĠM isc", + "ĠMi sc", + "ĠMis c", + "Ġ DIR", + "ĠD IR", + "ĠDI R", + "f ax", + "fa x", + "- node", + "-n ode", + "-no de", + "Ġ Walking", + "ĠW alking", + "ĠWalk ing", + "ĠWal king", + "Ġ AU", + "ĠA U", + "s ess", + "se ss", + "ses s", + "Ġgr ill", + "Ġgri ll", + "VERT ISE", + "ĠF oods", + "ĠFood s", + "ĠFo ods", + "ĠFoo ds", + "Ġt ournaments", + "Ġtour naments", + "Ġtournament s", + "à ĵ", + "Ġ Marsh", + "ĠMar sh", + "ĠMars h", + "Ġw onders", + "Ġwon ders", + "Ġwonder s", + "Long itude", + ".Command Text", + "= input", + "=in put", + "_ encoder", + "_e ncoder", + "_en coder", + "_encode r", + "_enc oder", + "page Size", + "Ġ getState", + "Ġget State", + "> >Ċ", + ">> Ċ", + ". grey", + ".g rey", + ".gr ey", + "p od", + "po d", + "Ġread ings", + "Ġreading s", + "Ġre consider", + "Start up", + "Ġex cer", + "Ġexc er", + "Ġexce r", + ". balance", + ".b alance", + "_ cycle", + "_c ycle", + "_ Time", + "_T ime", + "LO CAL", + "LOC AL", + "Ġ EFI", + "ĠE FI", + "ĠEF I", + "ĠR eyn", + "ĠRe yn", + "ĠRey n", + ".set Foreground", + "b yn", + "by n", + "Ġdis connected", + "Ġdisconnect ed", + "ACT IVE", + "Ġ embedding", + "Ġembed ding", + "ic kers", + "ick ers", + "icker s", + "Ġsurround ings", + "Ġsurrounding s", + "* c", + "Ġgar ant", + "Ġga rant", + "Ġ bf", + "Ġb f", + "Ġ wipe", + "Ġw ipe", + "Ġwi pe", + "Ġ ä¸ĭ", + "Ġä¸ ĭ", + "_ TRA", + "_T RA", + "_TR A", + "ad ox", + "ado x", + "ç ķ", + "Ġs ucks", + "Ġsu cks", + "Ġsuc ks", + "Ġsuck s", + "Ġ Songs", + "ĠS ongs", + "ĠSon gs", + "ĠSong s", + "ĠAssoci ates", + "ĠAssociate s", + "ĠAssoc iates", + "ĠB ald", + "ĠBa ld", + "ĠBal d", + "ĠB rett", + "ĠBr ett", + "ĠBre tt", + "ĠBret t", + "ven ile", + "Ġ vt", + "Ġv t", + "Ġin ade", + "Ġre signed", + "Ġres igned", + "Ġresign ed", + "ĠGl enn", + "ĠGlen n", + "ĠGle nn", + ". pattern", + ".p attern", + ".pat tern", + ".Data Bind", + "Ñĥ м", + "Layout Inflater", + "c het", + "ch et", + "che t", + "ĠTest ament", + ". ms", + ".m s", + "Ġp av", + "Ġpa v", + "Ġ ReactDOM", + "ĠReact DOM", + "ur dy", + "urd y", + "A DATA", + "AD ATA", + "ADA TA", + "M u", + "/ actions", + "/a ctions", + "/action s", + "Ġ Js", + "ĠJ s", + "_ extract", + "_ex tract", + "_ext ract", + "_extra ct", + "Ġ Bring", + "ĠB ring", + "ĠBr ing", + "ĠBri ng", + ": id", + ":i d", + "st rt", + "str t", + "i vation", + "iv ation", + "iva tion", + "Ġout right", + "Ġou tright", + "Ġoutr ight", + "a zu", + "az u", + "loy ment", + "и Ñı", + "al do", + "ald o", + "Ġ Publisher", + "ĠP ublisher", + "ĠPublish er", + "E ducation", + "Educ ation", + "P alette", + "Pal ette", + "Pa lette", + "Pale tte", + "_ drv", + "_d rv", + "_dr v", + "Ġ ($(", + "Ġ( $(", + "Ġ($ (", + "ĠA nda", + "ĠAn da", + "ĠAnd a", + "Ġrem edy", + "Ġremed y", + "Ġin consistent", + "Ġincons istent", + "Ġinconsist ent", + "t ection", + "te ction", + "tec tion", + "Ġreg ulators", + "Ġregul ators", + "Ġregulator s", + "Ġshort est", + "( pair", + "(p air", + "(pa ir", + "Ġ Installation", + "ĠInstall ation", + "Ġdef endants", + "Ġdefend ants", + "Ġdefendant s", + "Ġ ();", + "Ġ( );", + "Ġ() ;", + "- large", + "-l arge", + "M el", + "Me l", + "Ġthreat en", + "н Ñı", + "Ġfet ish", + "ot ine", + "oti ne", + "_ dic", + "_d ic", + "_di c", + "Ġ <$", + "Ġ< $", + "Ġst agger", + "Ġsta gger", + "Ġstag ger", + "s pi", + "sp i", + "$ response", + "$res ponse", + "S erv", + "Se rv", + "Ser v", + "- born", + "-b orn", + "-bo rn", + "j os", + "jo s", + "ĉ img", + "ĉi mg", + "ĉim g", + "ĉ WHERE", + "ĉW HERE", + "_ lt", + "_l t", + "å½ ĵ", + ". cost", + ".c ost", + ".co st", + ".cos t", + "Ġ Tue", + "ĠT ue", + "ĠTu e", + ". labels", + ".label s", + ".lab els", + "Ġ LV", + "ĠL V", + "wcs store", + "ĠJ esse", + "ĠJes se", + "ĠJe sse", + "ĠJess e", + "ภ«", + "T rade", + "Tr ade", + "Trad e", + "Tra de", + "Ġpredecess or", + "ë Ĥ", + "f inally", + "fin ally", + "final ly", + "_ general", + "_g eneral", + "_gen eral", + "_gene ral", + "_gener al", + "oggle r", + "ogg ler", + "_ REGION", + "_REG ION", + "n ement", + "ne ment", + "nem ent", + "Ġb logger", + "Ġblog ger", + "Ġblo gger", + "ĠHar bor", + "Ġ Dataset", + "ĠD ataset", + "ĠData set", + "ĠDat aset", + "[ w", + "Ġattend ees", + "Ġattendee s", + ". ico", + ".i co", + ".ic o", + "max imum", + ". Unlock", + ".Un lock", + "_ SYNC", + "_S YNC", + "_SY NC", + "_SYN C", + "ág ina", + "Ġd owns", + "Ġdown s", + "Ġdow ns", + "ĠW ii", + "ĠWi i", + "] )/", + "]) /", + "Ġk icking", + "Ġkick ing", + "un ication", + "unic ation", + "uni cation", + "Ġ DAC", + "ĠD AC", + "ĠDA C", + "Ġ IDS", + "ĠI DS", + "ĠID S", + "ĠR ental", + "ĠRen tal", + "ĠRent al", + "Ġ currentTime", + "Ġcurrent Time", + "Ġvacc ines", + "Ġvaccine s", + "ĠD evil", + "ĠDe vil", + "ĠDev il", + "Ġn ors", + "Ġno rs", + "Ġnor s", + "_ mouse", + "_m ouse", + "_mo use", + "ur rection", + "urre ction", + "urr ection", + "urrect ion", + "( no", + "(n o", + "Ġ >čĊ", + "Ġ> čĊ", + "Ġag gression", + "Ġaggress ion", + "Ġagg ression", + "Ġbre eding", + "Ġbreed ing", + "Ġbree ding", + ". symbol", + ".s ymbol", + ".sym bol", + "i man", + "im an", + "ima n", + "Absolute Path", + "Ġ WHO", + "ĠW HO", + "ĠWH O", + "_ flush", + "_f lush", + "_fl ush", + "- root", + "-r oot", + "-ro ot", + "a rna", + "ar na", + "arn a", + "& M", + "Ġf athers", + "Ġfa thers", + "Ġfather s", + "Ġ Rocket", + "ĠR ocket", + "ĠRock et", + "ĠRo cket", + "ĠRoc ket", + "i veau", + "ive au", + "Ġw ander", + "Ġwa nder", + "Ġwand er", + "Ġwan der", + "Ġcom pos", + "Ġcomp os", + "ĠWar rior", + "Ġ Seat", + "ĠS eat", + "ĠSe at", + "ĠSea t", + "ĠCl inic", + "ĠClin ic", + "ĠCli nic", + "_ invoice", + "_in voice", + "_inv oice", + "( dispatch", + "(dis patch", + "Product o", + "at uring", + "atur ing", + "atu ring", + "oss ier", + "ĠM AY", + "ĠMA Y", + "Ġd agger", + "Ġda gger", + "Ġdag ger", + "Ġsan itized", + "Ġsanit ized", + "Ġsanitize d", + "Ġ RFC", + "ĠR FC", + "ĠRF C", + "Ġp roph", + "Ġpro ph", + "Ġpr oph", + "Ġprop h", + "Ġu rine", + "Ġur ine", + "Ġuri ne", + "Ġgr ind", + "Ġgri nd", + "Ġgrin d", + "Ġ Expanded", + "ĠExp anded", + "ĠExpand ed", + "des cripcion", + "- fw", + "-f w", + "ĠK erry", + "ĠKer ry", + "ĠKerr y", + "= name", + "=n ame", + "Ġ chk", + "Ġc hk", + "Ġch k", + "Ġn ationally", + "Ġnational ly", + "Ġnation ally", + "Ġt hee", + "Ġth ee", + "Ġthe e", + "I nc", + "In c", + "Ġ ?>>", + "Ġ? >>", + "Ġ?> >", + ". RadioButton", + ".R adioButton", + ".Http ServletResponse", + ".HttpServlet Response", + "/ Y", + "ĉ field", + "ĉf ield", + "ĉfi eld", + "Ġ homme", + "Ġhom me", + "y per", + "ype r", + "yp er", + "Ph ysical", + "Phys ical", + "= v", + "Ġd riv", + "Ġdr iv", + "Ġdri v", + "Ġ Errors", + "ĠError s", + "ĠEr rors", + "ĠErr ors", + "Ġc Äĥ", + "De ath", + "Ġ WINDOW", + "ĠW INDOW", + "Ġpo et", + "Ġ Sharp", + "ĠSh arp", + "ĠSha rp", + "ĠShar p", + "Ġ Immutable", + "ĠIm mutable", + "ĠImm utable", + "ĉ create", + "ĉc reate", + "Ġge ht", + "Ġgeh t", + "ĠRe form", + "ĠRef orm", + "a iser", + "ai ser", + "ais er", + "aise r", + "Ġ Initialization", + "ĠInitial ization", + "Ġimm unity", + "Ġimmun ity", + ". compose", + ".com pose", + ".comp ose", + "Ġlate ncy", + "Ġlat ency", + "Ġlaten cy", + "ĠLeban on", + "ĠPar ad", + "ĠPa rad", + "ĠPara d", + "Ġf uels", + "Ġfuel s", + "Ġfu els", + "Ġfue ls", + "ĠEx hib", + "c oh", + "co h", + "% \">Ċ", + "%\" >Ċ", + "%\"> Ċ", + "Ġ CLI", + "ĠC LI", + "ĠCL I", + ") initWith", + ")init With", + "- Za", + "-Z a", + "_ CLEAR", + "_C LEAR", + "_CL EAR", + "re gn", + "reg n", + "Ġfin ances", + "Ġfinance s", + "Ġfinanc es", + "Ġfinan ces", + ". standard", + ".st andard", + "_ CATEGORY", + "_C ATEGORY", + ". library", + ".l ibrary", + ".lib rary", + "Ġtravel ers", + "Ġtraveler s", + "_ wp", + "_w p", + "Ġ Evaluation", + "ĠE valuation", + "ĠEval uation", + "ĠEvalu ation", + "start ing", + "star ting", + "Ġ )),Ċ", + "Ġ) ),Ċ", + "Ġ)) ,Ċ", + "ep isode", + "Ġ Variant", + "ĠV ariant", + "ĠVar iant", + "ĠVari ant", + "Ġ daemon", + "Ġda emon", + "ĠJ ulia", + "ĠJul ia", + "ĠJu lia", + "ĠJuli a", + "Ġ NR", + "ĠN R", + "Ġd oubles", + "Ġdouble s", + "Ġdoub les", + "Ġdou bles", + "< v", + "/ runtime", + "/r untime", + "/run time", + "Ġ interpreter", + "Ġinter preter", + "Ġinterpret er", + "Ġinterpre ter", + "Ġ INDEX", + "ĠIN DEX", + "ĠIND EX", + "ĠHol mes", + "_ DIM", + "_D IM", + "_DI M", + "Ġp addle", + "Ġpad dle", + "Ġpadd le", + "_ example", + "_ex ample", + "_exam ple", + "Ġ foreground", + "Ġfore ground", + ". routes", + ".r outes", + ".route s", + ".ro utes", + "Ġs owie", + "Ġso wie", + "Ġsow ie", + "S UCCESS", + "Ġ CDC", + "ĠC DC", + "ĠCD C", + "Ġ BD", + "ĠB D", + "_ -", + "as ured", + "asure d", + "asu red", + "W riting", + "Wr iting", + "Ġ currentPage", + "Ġcurrent Page", + "( answer", + "(ans wer", + "(an swer", + "Ġ ASCII", + "ĠA SCII", + "ĠASC II", + "à ¨", + "Ġsocial ly", + "Ġsoc ially", + "Ġsoci ally", + "y yy", + "yy y", + "ĠSpecial ist", + "( customer", + "(c ustomer", + "(custom er", + "ist ani", + "istan i", + "ista ni", + "k est", + "ke st", + "kes t", + "ĠM ak", + "ĠMa k", + "Ġt ho", + "Ġth o", + ". pt", + ".p t", + "( comment", + "(com ment", + "(comm ent", + "Ġ Converter", + "ĠCon verter", + "ĠConvert er", + "g am", + "ga m", + "b ins", + "bin s", + "bi ns", + ". tele", + ".t ele", + ".te le", + ".tel e", + "ĠVeter ans", + "ĠVeteran s", + "_ ALLOC", + "_AL LOC", + "_ALL OC", + "олÑĮзов аÑĤ", + "inn amon", + "; width", + "o hl", + "oh l", + "Ġf antas", + "Ġfan tas", + "Ġfant as", + "Ġs ung", + "Ġsu ng", + "Ġsun g", + "ĉ K", + "( Json", + "(J son", + "Ġneighbour hood", + "Ġv ow", + "Ġvo w", + "Ġs ins", + "Ġsi ns", + "Ġsin s", + "on acci", + "ona cci", + "Ġ epochs", + "Ġepoch s", + "im agen", + "image n", + "ima gen", + "imag en", + ". Change", + ".Ch ange", + ".my batis", + "Se ek", + "See k", + "W ER", + "WE R", + "管 çIJĨ", + "Ġinter ess", + "Ġinte ress", + "Ġinteres s", + "_ Event", + "_E vent", + "ed erland", + "eder land", + "Ġterr itor", + "Ġci udad", + "uc ked", + "uck ed", + "Ġsn ack", + "Ġsna ck", + "Ġtrans ported", + "Ġtransport ed", + "Ġtransporte d", + "Ġ Manifest", + "ĠMan ifest", + "Ġ DAT", + "ĠD AT", + "ĠDA T", + "_ theta", + "_th eta", + "_the ta", + "Ġw ont", + "Ġwon t", + "Ġwo nt", + ". ĊĊĊĊĊĊĊĊĊĊ", + ".ĊĊ ĊĊĊĊĊĊĊĊ", + ".Ċ ĊĊĊĊĊĊĊĊĊ", + ".ĊĊĊĊ ĊĊĊĊĊĊ", + ".ĊĊĊ ĊĊĊĊĊĊĊ", + ".ĊĊĊĊĊĊ ĊĊĊĊ", + ".ĊĊĊĊĊĊĊĊ ĊĊ", + ".ĊĊĊĊĊ ĊĊĊĊĊ", + "Ĭ¶ æĢģ", + "ĠE pic", + "ĠEp ic", + "D eck", + "De ck", + "Dec k", + "l tra", + "lt ra", + "ltr a", + "_ ZERO", + "_Z ERO", + "Ġ[ ];", + "Ġ[] ;", + "/ scripts", + "/s cripts", + "/script s", + "Ġ --------------------------------------------------------------------------------", + "Ġ---------------------------------------------------------------- ----------------", + "Ġ---- ----------------------------------------------------------------------------", + "Ġ---------------- ----------------------------------------------------------------", + "Ġ------------------------------------------------ --------------------------------", + "Ġ-------------------------------- ------------------------------------------------", + "Ġ---------------------------------------------------------------------------- ----", + "Ġ---------- ----------------------------------------------------------------------", + "Ġ------------------------------------------------------------ --------------------", + "Ġ------------------------------------------------------------------------- -------", + "æĥ ħ", + "Ġ weed", + "Ġw eed", + "Ġwe ed", + "Ġwee d", + "N BC", + "NB C", + "Ġr aped", + "Ġrap ed", + "Ġra ped", + "Ġrape d", + "Ġ Gateway", + "ĠG ateway", + "ĠGate way", + "ĠGat eway", + "[ M", + "Ġ Timeout", + "ĠTime out", + "ench mark", + ". ViewModel", + ".View Model", + "Ġporn os", + "Ġpor nos", + "Ġporno s", + "Ġ Ya", + "ĠY a", + "th ritis", + "thr itis", + "ĠFl ynn", + "ĠFly nn", + "Ġ mega", + "Ġm ega", + "Ġme ga", + "Ġmeg a", + "a cin", + "ac in", + "aci n", + "Ġtr ibal", + "Ġtri bal", + "Ġtrib al", + ". apple", + ".app le", + ".ap ple", + "Ġ Blo", + "ĠB lo", + "ĠBl o", + "â n", + "i bi", + "ib i", + "r ov", + "ro v", + "ĠL ives", + "ĠLive s", + "ĠLi ves", + "ĠLiv es", + "^ .", + "get Request", + "Ġ Establish", + "ĠEst ablish", + "cont ainers", + "container s", + "contain ers", + "Ġst arring", + "Ġstar ring", + "Ġcele brities", + "Ġcelebr ities", + "Ġ Relative", + "ĠRel ative", + "ĠHe ights", + "ĠHeight s", + "Ġtq dm", + "ĠNorth west", + "i vic", + "iv ic", + "ivi c", + "ĉ cl", + "ĉc l", + "Ġautom otive", + "ent ric", + "entr ic", + "Ġ fortunate", + "Ġfort unate", + "Ġfire place", + "Ġfi replace", + "se ud", + "n ickname", + "nick name", + "; s", + "_ CAL", + "_C AL", + "_CA L", + "h alt", + "ha lt", + "hal t", + "( ns", + "(n s", + "_ deleted", + "_de leted", + "_delete d", + "_del eted", + "De velopment", + "Dev elopment", + "Develop ment", + "m ovies", + "movie s", + "mov ies", + "Ġid entities", + "Ġident ities", + "Ġprompt ly", + "ا ÙĨ", + "ا٠Ĩ", + "Ġ ante", + "Ġa nte", + "Ġan te", + "Ġant e", + "Ġ\" ','", + "Ġ\"' ,'", + "Ġ\"', '", + "åı £", + "imp se", + "imps e", + "Ġy ap", + "Ġya p", + "Type Name", + "Ġb itch", + "Ġbit ch", + "Ġassoci ates", + "Ġassociate s", + "Ġassoc iates", + "HE ME", + "- empty", + "-em pty", + "Ġ ت", + "ĠØ ª", + "ol vers", + "olve rs", + "olver s", + "olv ers", + "Ġp istol", + "Ġpist ol", + "Ġpis tol", + "Sc oped", + "Scope d", + "ag ner", + "agn er", + "agne r", + "' ]=='", + "'] =='", + "']= ='", + "']== '", + "Ġ IMP", + "ĠI MP", + "ĠIM P", + "e xc", + "ex c", + "Ġo mitted", + "Ġom itted", + "Ġomit ted", + "Ġmind set", + "Ġminds et", + "Ġ [](", + "Ġ[ ](", + "Ġ[] (", + "Ġ orn", + "Ġo rn", + "Ġor n", + "_ CAM", + "_C AM", + "_CA M", + "A vg", + "Av g", + "Localized String", + "ĠN atur", + "ĠNa tur", + "ĠNat ur", + "Ġ composer", + "Ġcom poser", + "Ġcomp oser", + "Ġcompose r", + "Ġcompos er", + "Ġ Playing", + "ĠPl aying", + "ĠPlay ing", + "ĠPla ying", + "Ġover d", + "Ġov erd", + "_ utf", + "_u tf", + "_ut f", + ". sk", + ".s k", + "ĠF ol", + "ĠFo l", + "$ page", + "$p age", + ", Object", + ",O bject", + "Ġb ees", + "Ġbe es", + "Ġbee s", + "al ary", + "ala ry", + "alar y", + "b ullet", + "bul let", + "bull et", + "_ library", + "_l ibrary", + "_lib rary", + "O ffer", + "Of fer", + "Off er", + "loc ated", + "locate d", + "Ġ (_,", + "Ġ( _,", + "Ġ(_ ,", + "âĢľ He", + "Ġ Owners", + "ĠOwn ers", + "ĠOwner s", + "ĠOw ners", + ") ).Ċ", + ")) .Ċ", + ")). Ċ", + "Ġb ri", + "Ġbr i", + ". Admin", + ".Ad min", + "k tion", + "kt ion", + "лÑİ Ñĩ", + "Ġerot ici", + "Ġerotic i", + "Cancel led", + "Ġ agr", + "Ġa gr", + "Ġag r", + "re views", + "review s", + "_ dma", + "_d ma", + "_dm a", + "R ICT", + "RI CT", + "RIC T", + "Ġ gfx", + "Ġg fx", + "Ġgf x", + "m pi", + "mp i", + "p po", + "pp o", + "Ġ //@", + "Ġ// @", + "Ġ/ /@", + "Ġ uppercase", + "Ġupper case", + "Ġcomm itting", + "Ġcommit ting", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "User Data", + "Ġv ai", + "Ġva i", + "ĉ sort", + "ĉs ort", + "Ġcongr at", + "Ġcong rat", + "Ġd ioxide", + "Ġdi oxide", + "д а", + ". area", + ".a rea", + ".ar ea", + ".are a", + "ĠJosh ua", + "ĠJos hua", + "ĠK och", + "ĠKo ch", + "_ break", + "_b reak", + "a zure", + "az ure", + "azu re", + "is tical", + "ist ical", + "istic al", + "isti cal", + "istica l", + "_AL PHA", + "_ views", + "_view s", + "_vi ews", + "Ġelim inating", + "Ġelimin ating", + "O MB", + "OM B", + "e numer", + "en umer", + "enu mer", + "enum er", + "ĠH ydro", + "ĠHy dro", + "( *(", + "(* (", + "ERT ICAL", + "Ġinev itably", + "Ġst ole", + "Ġsto le", + "Ġstol e", + "- east", + "-e ast", + "i eron", + "ie ron", + "ier on", + "iero n", + "Ġ linger", + "Ġl inger", + "Ġli nger", + "Ġlin ger", + "Ġling er", + "/ doc", + "/d oc", + "/do c", + "Å º", + "Ġ Already", + "ĠAl ready", + "as io", + "asi o", + "Ġ --Ċ", + "Ġ- -Ċ", + "Ġ-- Ċ", + "Ġ abbrev", + "Ġabb rev", + "Ġ Atom", + "ĠA tom", + "ĠAt om", + "h im", + "hi m", + "Ġ INSERT", + "ĠINS ERT", + "s un", + "su n", + "âĻ ª", + "CON NECT", + "CONN ECT", + "er ator", + "era tor", + "ĠM anning", + "ĠMan ning", + "ĠMann ing", + "Ġ :(", + "Ġ: (", + "g as", + "ga s", + "= >'", + "=> '", + "Ġquery set", + "; }čĊ", + ";} čĊ", + "Ġ Population", + "ĠPop ulation", + "uted String", + "res ident", + "resi dent", + "_ FONT", + "_F ONT", + "Ġ Respond", + "ĠRes pond", + "ĠResp ond", + "Ġobsc ure", + "Ġ observable", + "Ġo bservable", + "Ġobserv able", + "ĠContrib utors", + "ĠContributor s", + "k on", + "ko n", + "ĠM usk", + "ĠMus k", + "ĠMu sk", + "ex ao", + "ĠT ub", + "ĠTu b", + "Boot Application", + "S OR", + "SO R", + ". Horizontal", + ".H orizontal", + ". findBy", + ".find By", + ". power", + ".p ower", + ".pow er", + ".po wer", + "Ġpositive ly", + "Ġposit ively", + "ven ience", + "ĠJ ong", + "ĠJo ng", + "ĠJon g", + "Ġwh istle", + "Ġ знаÑĩ", + "Ġз наÑĩ", + "Ġзна Ñĩ", + "Ġзн аÑĩ", + "Ġl ending", + "Ġlen ding", + "Ġlend ing", + "Ġdestruct ive", + "Ġ onDelete", + "Ġon Delete", + "author ization", + "() ;?>", + "(); ?>", + "_ original", + "_or iginal", + "_origin al", + "_orig inal", + "sc ience", + "sci ence", + "a tra", + "at ra", + "atr a", + "?, ?,", + "Ġ Asc", + "ĠA sc", + "ĠAs c", + "Ġconvin cing", + "Ġconvinc ing", + "$ a", + "or gen", + "org en", + "orge n", + "_ Date", + "_D ate", + "Ġ Provide", + "ĠPro vide", + "ĠProvid e", + "ĠProv ide", + "Ġlon ely", + "Ġlone ly", + ") 'Ċ", + ")' Ċ", + "ex change", + "; ?>Ċ", + ";?> Ċ", + ". fast", + ".f ast", + ".fa st", + "S amples", + "Sample s", + "Sam ples", + "L ondon", + "Lo ndon", + "Lon don", + "' ])čĊ", + "'] )čĊ", + "']) čĊ", + "Ġ Ionic", + "ĠI onic", + "ĠIo nic", + "ĠIon ic", + "Ġp esso", + "Ġpes so", + "ĠKn ights", + "ĠKnight s", + "ĠR af", + "ĠRa f", + "_ attrs", + "_at trs", + "_attr s", + "_att rs", + "Ġrepe al", + "> Main", + ">M ain", + "Ġ Ordered", + "ĠOrder ed", + "ĠOrd ered", + "_ New", + "_N ew", + "=\" \"> < /", + "url patterns", + "ATION AL", + "ATIO NAL", + "pe ech", + "pee ch", + "ĠId aho", + "Ġpr incess", + "Ġprince ss", + "Ġprin cess", + "Ġprinc ess", + "Ġprinces s", + "Ġ Customers", + "ĠCustom ers", + "ĠCustomer s", + "ĠCust omers", + "a ways", + "aw ays", + "away s", + "awa ys", + "a db", + "ad b", + "ĠBry ant", + "ĠBryan t", + "n once", + "no nce", + "non ce", + "Ġad ul", + "Ġ` `(", + "Ġ`` (", + "Ġafter math", + "= dict", + "=d ict", + "text Box", + "Ġs perm", + "Ġsp erm", + "Ġspe rm", + "Ġsper m", + "Ġc ough", + "Ġco ugh", + "Ġcou gh", + "H or", + "Ho r", + "âĢĻ S", + ".Component ResourceManager", + "Ġreg ulator", + "Ġregul ator", + "Ġpartner ships", + "Ġpartners hips", + "Ġpartnership s", + "/ projects", + "/project s", + "t rys", + "tr ys", + "try s", + "ĠL aser", + "ĠLa ser", + "ĠLas er", + "⣠©", + "ĠF unk", + "ĠFun k", + "ĠFu nk", + "Ġun conscious", + "Ġuncon scious", + "Ġc rust", + "Ġcr ust", + "Ġcru st", + "Ġcrus t", + "Ġ Teams", + "ĠTe ams", + "ĠTeam s", + "ĠTea ms", + "Ġ Banner", + "ĠB anner", + "ĠBan ner", + "ĠH oney", + "ĠHon ey", + "ĠHo ney", + "l ems", + "le ms", + "lem s", + "Ġmax Width", + "Pointer Exception", + "fade Out", + "- St", + "-S t", + "Ġstr angers", + "Ġstrange rs", + "Ġstranger s", + "Ġstrang ers", + "Ġstran gers", + "_ GO", + "_G O", + "W ritable", + "Wr itable", + "_ Info", + "_In fo", + ". NonNull", + ".Non Null", + "an notations", + "annot ations", + "annotation s", + "Ġ GD", + "ĠG D", + "Ġendorse d", + "Ġendors ed", + "ĉToken Name", + "Ġ Depending", + "ĠDe pending", + "ĠDep ending", + "ĠDepend ing", + "YN AM", + "Ġ Meteor", + "ĠM eteor", + "ĠMet eor", + "Ġ Increase", + "ĠIn crease", + "ĠIncre ase", + ". Many", + ".M any", + ".Man y", + ".Ma ny", + "= =(", + "== (", + ". UUID", + ".U UID", + "_ KERNEL", + "_K ERNEL", + "Ġvid é", + "Ġ pq", + "Ġp q", + "ĠQt Gui", + "Ġ Various", + "ĠV arious", + "ĠVar ious", + "ĠVa rious", + "ĠVari ous", + "Ġ john", + "Ġj ohn", + "Ġjo hn", + "_ patch", + "_p atch", + "_pat ch", + "Ġt outes", + "Ġto utes", + "Ġtou tes", + "Ġtout es", + "Ġtoute s", + "Ġ Fail", + "ĠF ail", + "ĠFa il", + "Ġsurv iving", + "Ġsurviv ing", + "( \"${", + "(\" ${", + "(\"$ {", + "Ġ ĠĠĠĠĠĠčĊ", + "ĠĠ ĠĠĠĠĠčĊ", + "ĠĠĠĠ ĠĠĠčĊ", + "ĠĠĠ ĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠ čĊ", + "ĠĠĠĠĠ ĠĠčĊ", + "ĠĠĠĠĠĠ ĠčĊ", + "Ġ imageUrl", + "Ġimage Url", + ". wordpress", + ".word press", + "s ources", + "source s", + "ĉgl Vertex", + "âĢĻ a", + "Ġes col", + "Ġesc ol", + "R ARY", + "RA RY", + "RAR Y", + "Ġ Snake", + "ĠSn ake", + "Ġqu int", + "Ġq uint", + "Ġqui nt", + "Ġl asts", + "Ġla sts", + "Ġlast s", + "Ġlas ts", + "ĠHar mon", + "ĠHarm on", + "Ġ coil", + "Ġc oil", + "Ġco il", + "Ġcoi l", + "Ġexplo itation", + "Ġexploit ation", + "l een", + "le en", + "lee n", + "' >\";Ċ", + "'> \";Ċ", + "'>\" ;Ċ", + "Ġ SERVER", + "ĠS ERVER", + "ĠSER VER", + "Ġ HEADER", + "ĠHE ADER", + "ĠHEAD ER", + "_ velocity", + "_v elocity", + "_vel ocity", + "Ġ Invoke", + "ĠIn voke", + "ĠInv oke", + ". timestamps", + ".timestamp s", + "Ġs ulf", + "Ġsu lf", + "Ġsul f", + "I QUE", + "IQ UE", + "Ġinhabit ants", + "ph ins", + "phi ns", + "phin s", + "a zzo", + "az zo", + "azz o", + "Ġ mono", + "Ġm ono", + "Ġmon o", + "Ġmo no", + "L egend", + "Le gend", + "Leg end", + "Ġ nonce", + "Ġn once", + "Ġno nce", + "Ġnon ce", + "I FE", + "IF E", + "; \";Ċ", + ";\" ;Ċ", + "- create", + "-c reate", + "\" \",Ċ", + "\"\" ,Ċ", + "\"\", Ċ", + "per mit", + "perm it", + "ĠIm migration", + "ĠImm igration", + "Ġ pathname", + "Ġpath name", + "ff ective", + "ffect ive", + "âĻĢ âĻĢ", + "Ġex ams", + "Ġexam s", + "- event", + "-e vent", + "-ev ent", + "-even t", + "ĠT ill", + "ĠTi ll", + "ĠTil l", + "[ mid", + "[m id", + "F IX", + "FI X", + "; color", + ";c olor", + "( Order", + "_ traits", + "_t raits", + "_tr aits", + "_tra its", + "_trait s", + "Ġ orderBy", + "Ġorder By", + "Ġs unt", + "Ġsu nt", + "Ġsun t", + "ĠNich olas", + "Ø ²", + "Ġs unny", + "Ġsun ny", + "i ners", + "in ers", + "ine rs", + "iner s", + "Ġaccess ibility", + "Ġ HB", + "ĠH B", + ". comp", + ".c omp", + ".com p", + ".co mp", + "ĉ op", + "ĉo p", + "Ġminor ities", + "eth eus", + "ethe us", + "Ġcollabor ative", + "p rit", + "pr it", + "pri t", + "H IR", + "HI R", + "Ġwr aps", + "Ġwrap s", + "ĉ draw", + "ĉd raw", + "g od", + "go d", + "Ġ IX", + "ĠI X", + ". apps", + ".app s", + ".ap ps", + ".a pps", + "Ġ NM", + "ĠN M", + "Ġir relevant", + "Ġirre levant", + "ĠT igers", + "ĠTi gers", + "ĠTiger s", + "ĠTig ers", + "Ġ diag", + "Ġd iag", + "Ġdi ag", + "Ġdia g", + "G V", + "ĠAccess ories", + "k ont", + "ko nt", + "kon t", + "Ġs implify", + "Ġsimp lify", + "Ġsimpl ify", + "Ġ Favorite", + "ĠF avorite", + "ĠFavor ite", + "_ tools", + "_t ools", + "_to ols", + "_tool s", + "( []);Ċ", + "([ ]);Ċ", + "([] );Ċ", + "Ġt owers", + "Ġto wers", + "Ġtow ers", + "Ġtower s", + "B es", + "Be s", + "Ġ hunter", + "Ġh unter", + "Ġhun ter", + "Ġhunt er", + "Ġs alon", + "Ġsa lon", + "Ġsal on", + "( buff", + "(b uff", + "(buf f", + "ĉ debug", + "ĉde bug", + "Ġmal ware", + "M oving", + "Mo ving", + "Mov ing", + "- options", + "-o ptions", + "-option s", + "-opt ions", + ") +'", + ")+ '", + "ĠL OVE", + "ĠLO VE", + "_S OCKET", + "_SO CKET", + "_ fin", + "_f in", + "ĠDel aware", + "Ġsher iff", + "- invalid", + "-in valid", + "Ġ FULL", + "ĠF ULL", + "ĠFU LL", + "Ġ под", + "Ġп од", + "Ġпо д", + "e las", + "el as", + "ela s", + "\" strings", + "ĠRepresent atives", + "ĠRepresentative s", + "s urface", + "sur face", + "surf ace", + "res olved", + "resolve d", + "ht docs", + ") ):čĊ", + ")) :čĊ", + ")): čĊ", + "Ġpress ures", + "Ġpressure s", + "Ġno rms", + "Ġnor ms", + "Ġnorm s", + "Ġ pla", + "Ġp la", + "Ġpl a", + "Ġ surname", + "Ġs urname", + "Ġsur name", + "Ġ postal", + "Ġpos tal", + "Ġpost al", + "Ġpo stal", + "Ġ Depart", + "ĠDe part", + "ĠDep art", + "Ġs laughter", + "Ġsla ughter", + "or ida", + "ori da", + "Ġhe bben", + "Ġheb ben", + "Ġd esar", + "Ġde sar", + "Ġdes ar", + "comp act", + "_ LANG", + "_L ANG", + "_LA NG", + "åIJ Ī", + "o poly", + "op oly", + "opol y", + "opo ly", + "_ rad", + "_r ad", + "_ra d", + "ĠST DMETHOD", + "ĠSTD METHOD", + "L azy", + "La zy", + "Ġ ĠĠĉ", + "ĠĠ Ġĉ", + "ĠĠĠ ĉ", + ".. .,", + "... ,", + "( web", + "(w eb", + "Ġ Pont", + "ĠP ont", + "ĠPo nt", + "ĠPon t", + "Ġet was", + "Ġetwa s", + "Ġup ward", + "_ hat", + "_h at", + "Ġ ],ĊĊ", + "Ġ] ,ĊĊ", + "Ġ],Ċ Ċ", + "Ġ], ĊĊ", + "Ġ baseUrl", + "Ġbase Url", + "Ġwor rying", + "Ġworry ing", + "- addon", + "-add on", + "-ad don", + "( getClass", + "(get Class", + "S PI", + "SP I", + "Ġcapt uring", + ") },Ċ", + ")} ,Ċ", + ")}, Ċ", + "E ffects", + "Effect s", + "Eff ects", + "Ġcompet ent", + "Ġcompete nt", + "Ġf oul", + "Ġfo ul", + "Ġfou l", + "Ġsubs cribing", + "Ġsubscri bing", + "Ġ OBJECT", + "ĠO BJECT", + "ĠOBJ ECT", + "ĠOB JECT", + "IX EL", + "b ucks", + "bu cks", + "( edge", + "(e dge", + "(ed ge", + "( pass", + "(p ass", + "(pa ss", + "ĠPeter son", + "ĠPet erson", + "ĠPeters on", + "Ġbo obs", + "Ġboo bs", + "Ġboob s", + "Ġ Delay", + "ĠD elay", + "ĠDe lay", + "ĠDel ay", + "_ square", + "_s quare", + "e lim", + "el im", + "eli m", + "o ters", + "ot ers", + "ote rs", + "oter s", + "_ PC", + "_P C", + "% E", + "on click", + "Ġ SVG", + "ĠS VG", + "ĠSV G", + "Ġt opped", + "Ġto pped", + "Ġtop ped", + "Ġtopp ed", + "Ġf ist", + "Ġfi st", + "Ġfis t", + "s mart", + "sm art", + "ĠR alph", + "( owner", + "(o wner", + "j ours", + "jo urs", + "jour s", + "Ġbro nze", + "Ġbron ze", + "Ġ ArgumentException", + "ĠArgument Exception", + "( original", + "(origin al", + "(orig inal", + "(or iginal", + "_ SCALE", + "_S CALE", + "_SC ALE", + "_ cp", + "_c p", + "Ġrecomm ends", + "Ġrecommend s", + ".set Style", + "S ure", + "Sur e", + "Su re", + "L AND", + "LA ND", + "LAN D", + "Ġre peating", + "Ġrep eating", + "Ġrepe ating", + "Ġrepeat ing", + "M att", + "Mat t", + "Ma tt", + ". Visibility", + "Ġenter prises", + "Ġenterprise s", + ". Setup", + ".Set up", + "( scene", + "(s cene", + "(sc ene", + "ĠRe active", + "ĠReact ive", + "ur ge", + "urg e", + "b w", + ". Put", + ".P ut", + "p ersist", + "pers ist", + ". cookie", + ".c ookie", + ".co okie", + "ĠA udi", + "ĠAud i", + "ĠAu di", + "` s", + "s upplier", + "sup plier", + "( Form", + "(F orm", + " ¡", + "_ so", + "_s o", + "Į Ģ", + "ĠLeg ion", + "t te", + "tt e", + "N d", + "L oss", + "Lo ss", + "Los s", + "( attrs", + "(at trs", + "(attr s", + "(att rs", + ". scatter", + ".sc atter", + "Ġg room", + "Ġgr oom", + "Ġgro om", + "Ġgl impse", + "Ġglimps e", + "Ġn ails", + "Ġna ils", + "Ġnail s", + "Ġcum ulative", + "Ġf azer", + "Ġfa zer", + "Ġfaz er", + "_ services", + "_s ervices", + "_service s", + "_serv ices", + ". Num", + ".N um", + "ib ilit", + "ibil it", + "ibi lit", + "ibili t", + "_ resolution", + "_re solution", + "_res olution", + "Ġ Tx", + "ĠT x", + "um inium", + "umin ium", + "o pa", + "op a", + ". schedule", + ".s chedule", + "sm tp", + "ภķ", + "ur ry", + "urr y", + "ü k", + "g oog", + "go og", + "goo g", + "_ signature", + "_sign ature", + "_sig nature", + ". into", + ".in to", + ".int o", + "Ġ Steps", + "ĠSt eps", + "ĠSte ps", + "ĠStep s", + "Ġhome owners", + "Ġhomeowner s", + "Ġ NSURL", + "ĠNS URL", + "ĠP AC", + "ĠPA C", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĊĊ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĊĊ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĊĊ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĊĊ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĊĊ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĊĊ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĊĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĊĊ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĊĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĊ Ċ", + "> ')Ċ", + ">' )Ċ", + ">') Ċ", + "e nh", + "en h", + "Ġin cap", + "Ġinc ap", + "$ MESS", + "Ġm oins", + "Ġmo ins", + "Ġmoi ns", + "Ġ Fi", + "ĠF i", + "Ġoff season", + "pr essions", + "press ions", + "pression s", + "> .. < /", + "Ġpro vinces", + "Ġprov inces", + "Ġprovince s", + "Ġprovinc es", + "_ RAW", + "_R AW", + "_RA W", + "\\ App", + "Ġprostit uer", + "Ġprostitu er", + "_ gain", + "_g ain", + ".t encent", + "ff ects", + "ffect s", + "ffe cts", + "( pk", + "(p k", + "s ku", + "sk u", + "Ġ usable", + "Ġus able", + "Ġusa ble", + "ER VED", + "ERV ED", + "ERVE D", + "Ġant enna", + "Ġantenn a", + "h ea", + "he a", + "p list", + "pl ist", + "_ PLUGIN", + "_PL UGIN", + "Ñģ л", + ". lookup", + ".look up", + "á» ģ", + "Ġen larg", + "Ġp iss", + "Ġpi ss", + "Ġpis s", + "H am", + "Ha m", + "i map", + "im ap", + "ima p", + "Ġ invalidate", + "Ġin validate", + "Ġinvalid ate", + "Ġs ilk", + "Ġsi lk", + "Ġsil k", + "=\"# \">Ċ", + "=\"#\" >Ċ", + "=\"#\"> Ċ", + "ĠGr ass", + "ĠGra ss", + "Ġ Goal", + "ĠGo al", + "ĠGoa l", + "_ pdf", + "_p df", + "_pd f", + "Hand lers", + "Handler s", + "Handle rs", + "Ġst acks", + "Ġstack s", + "Ġsta cks", + ". getFullYear", + ".get FullYear", + "= [];Ċ", + "=[ ];Ċ", + "=[] ;Ċ", + "è½ ¦", + ", V", + "( split", + "(s plit", + "(sp lit", + "Ñĥн к", + "Ġbake ca", + "Ġbak eca", + "Ġ~ /.", + "Ġ~/ .", + "p ez", + "pe z", + "t ails", + "ta ils", + "tail s", + "ĠG len", + "ĠGl en", + "ĠGle n", + "Ġ setImage", + "Ġset Image", + "Ġ Comic", + "ĠC omic", + "ĠCom ic", + "ĠCo mic", + "B LOCK", + "BL OCK", + "ĉ This", + "ĉT his", + "o ader", + "oad er", + "oa der", + "Ġcapital ist", + "Ġcapita list", + "Ġcapit alist", + "_ STEP", + "_ST EP", + "( Boolean", + "Ġ Correct", + "ĠC orrect", + "ĠCor rect", + "r ina", + "ri na", + "rin a", + "Ġconc aten", + "Ġconcat en", + "å® ŀ", + "( ):ĊĊ", + "() :ĊĊ", + "():Ċ Ċ", + "(): ĊĊ", + "Ġun anim", + "Ġuna nim", + "l li", + "ll i", + "al ars", + "ala rs", + "alar s", + "- ne", + "-n e", + "Ġd ivor", + "Ġdi vor", + "Ġdiv or", + "ĠKick starter", + "] ._", + "]. _", + "< number", + " * * < /", + ": d", + "m di", + "md i", + "bind Value", + "Ġ Decision", + "ĠDe cision", + "ĠDec ision", + "Return Value", + ", index", + ",in dex", + "x fc", + "xf c", + "Ġse rum", + "Ġser um", + "get Field", + "Connection String", + "- object", + "-o bject", + "-ob ject", + ". recv", + ".re cv", + ".rec v", + "Ġunder graduate", + "Ġundergrad uate", + ". Infrastructure", + ".Inf rastructure", + "ĠK ab", + "ĠKa b", + "Ġadv isory", + "Ġadvis ory", + "Ġadvisor y", + "- tree", + "-t ree", + "-tr ee", + "Ġ mue", + "Ġm ue", + "Ġmu e", + "in form", + "info rm", + "inf orm", + ". embed", + ".em bed", + "Ġ errorCode", + "Ġerror Code", + "m icro", + "mi cro", + "mic ro", + "Ġsp arked", + "Ġspark ed", + "Ġspar ked", + "Ġimage ry", + "Ġimag ery", + "con c", + "co nc", + "_ missing", + "_m issing", + "_miss ing", + "Ġsur plus", + "K S", + "ĉR THOOK", + "ĉRT HOOK", + "T ell", + "Te ll", + "Tel l", + "r ium", + "ri um", + "Ġ Radius", + "ĠR adius", + "ĠRad ius", + "ĠRadi us", + "r ika", + "ri ka", + "rik a", + "los ion", + "ĠH ern", + "ĠHe rn", + "ĠHer n", + "G amma", + "Gam ma", + "Ga mma", + "Ġ Fee", + "ĠF ee", + "ĠFe e", + "Ġ Named", + "ĠN amed", + "ĠName d", + "ĠNa med", + "ĠNam ed", + "ĠCan yon", + "Ġ JSONArray", + "ĠJSON Array", + "Ġz wei", + "Ġzw ei", + "Ġzwe i", + "Ġ SSH", + "ĠS SH", + "ĠSS H", + "Ġser vant", + "Ġserv ant", + "co al", + "Ġden ying", + "Ġdeny ing", + "Ġs plits", + "Ġsplit s", + "Ġspl its", + "In correct", + "Inc orrect", + "Ġt ox", + "Ġto x", + "ĠAnal yst", + "ĠAnaly st", + "Ġacc red", + "Ġac cred", + "Ġaccr ed", + "u ble", + "ub le", + "ubl e", + "Ġ wt", + "Ġw t", + "Ġ Trial", + "ĠT rial", + "ĠTr ial", + "ĠTri al", + ". extension", + ".ext ension", + "Ġ Career", + "ĠCar eer", + "ĠCare er", + "Ġsec uring", + "ĠL il", + "ĠLi l", + "Ġpro jections", + "Ġproject ions", + "Ġproj ections", + "Ġprojection s", + "Ġproje ctions", + "Ġy east", + "Ġye ast", + "M ade", + "Ma de", + "Mad e", + "Ġfound ations", + "Ġfoundation s", + "ac ific", + "aci fic", + ". volume", + ".v olume", + ".vol ume", + "Ġmir rors", + "Ġmirror s", + "#### ############################################################################", + "######## ########################################################################", + "################ ################################################################", + "################################ ################################################", + "################################################################ ################", + "################################################ ################################", + "############################################################################ ####", + "######################################################################## ########", + "######################################## ########################################", + "######################## ########################################################", + "######################################################## ########################", + "Ġvi olate", + "Ġviol ate", + "ars ers", + "arse rs", + "arser s", + "Ġs ocio", + "Ġso cio", + "Ġsoc io", + "Ġsoci o", + "Ġtk inter", + "Ġ LINK", + "ĠL INK", + "ĠLI NK", + "ĠLIN K", + ". getSize", + ".get Size", + ".getS ize", + "Ġ Whole", + "ĠW hole", + "ĠWh ole", + "ĠWho le", + ")view DidLoad", + "ĉ done", + "ĉd one", + "ĉdo ne", + "ude au", + "\\ \"> < /", + "And rew", + "Andre w", + "e rb", + "er b", + "Ġf ö", + ". cluster", + ".cl uster", + "Ġdis course", + "Ġdisc ourse", + "Ġdiscour se", + "Ġdisco urse", + "_DE FIN", + "_DEF IN", + "Ġpued en", + "Ġpu eden", + "Ġpuede n", + "Ġ LOW", + "ĠL OW", + "ĠLO W", + ". av", + ".a v", + "Ġpr eca", + "Ġpre ca", + "Ġprec a", + "Ġ quo", + "Ġqu o", + "Ġq uo", + "Ġve loc", + "Ġvel oc", + ", ''", + ",' '", + "Ġ xyz", + "Ġx yz", + "Ġxy z", + "ĉ padding", + "ĉp adding", + "Ġtom atoes", + "Ġtomato es", + "ĠB ent", + "ĠBe nt", + "ĠBen t", + "_ curr", + "_c urr", + "_cur r", + "_cu rr", + "NS Date", + "Ġ getCurrent", + "Ġget Current", + "ĠgetC urrent", + "Ġ [`", + "Ġ[ `", + "Wed nesday", + ". Bar", + ".B ar", + "Ġ Vous", + "ĠV ous", + "ĠVo us", + "i nz", + "in z", + "ĠQu inn", + "ĠQui nn", + "ex cel", + "exc el", + "d os", + "do s", + "Ġout dated", + "O UTH", + "OUT H", + "OU TH", + "Ġ Maker", + "ĠM aker", + "ĠMake r", + "ĠMa ker", + "ĠMak er", + "ep endency", + "epend ency", + "Ġd ull", + "Ġdu ll", + "Ġdul l", + "ĠW inn", + "ĠWin n", + "ĠWi nn", + "o ge", + "og e", + "cl ave", + "cla ve", + "Ġ nova", + "Ġn ova", + "Ġno va", + "Ġnov a", + "Ġ aval", + "Ġa val", + "Ġav al", + "Ġava l", + "C apt", + "Cap t", + "Ca pt", + "ĠSp otify", + "ĠSpot ify", + "Ġj ul", + "Ġju l", + ") tableView", + ")t ableView", + "Ġf ilenames", + "Ġfile names", + "Ġfil enames", + "Ġfilename s", + "Ġesk ort", + "åij ¨", + "Ġsk ew", + "Ġske w", + "t erior", + "ter ior", + "te rior", + "teri or", + "Ġfin anc", + "Ġfinan c", + "Ġ tabla", + "Ġtab la", + "Ġta bla", + "ĠU IB", + "ĠUI B", + "Ġ ():", + "Ġ( ):", + "Ġ() :", + "ĠD ocker", + "ĠDo cker", + "ĠDoc ker", + "ĠDock er", + "per centage", + "percent age", + "Me et", + "i chi", + "ic hi", + "ich i", + "Ġinter im", + "Ġinte rim", + "Ġ' ='", + "Ġ'= '", + ". JSONObject", + ".JSON Object", + "( fid", + "(f id", + "(fi d", + "Ġd ownt", + "Ġdown t", + "Ġdow nt", + "Ġtrans ient", + "ĠSt eph", + "ĠSte ph", + "ĠStep h", + "Ġignor ance", + "Ġ Codes", + "ĠC odes", + "ĠCo des", + "ĠCode s", + "ĠCod es", + "= '',", + "=' ',", + "='' ,", + "Ġ ICE", + "ĠI CE", + "ĠIC E", + "Ġtran qu", + "Ġ Extended", + "ĠExt ended", + "ĠExtend ed", + "Ġ mund", + "Ġm und", + "Ġmu nd", + "Ġmun d", + "Ġ HOME", + "ĠH OME", + "ĠHO ME", + "Ġkil ometers", + "Ġkilomet ers", + "Ġ imagen", + "Ġim agen", + "Ġimage n", + "Ġimag en", + "Ġima gen", + "o ux", + "ou x", + "( sz", + "(s z", + "You ng", + "Yo ung", + "uff ed", + "uf fed", + "Ġ Wake", + "ĠW ake", + "ĠWa ke", + "ĠWak e", + "Ġa ide", + "Ġaid e", + "Ġai de", + "P ROC", + "PR OC", + "PRO C", + "ĠR at", + "ĠRa t", + "ĠL ith", + "ĠLi th", + "ĠLit h", + "b art", + "bar t", + "ba rt", + "Ġ Arrange", + "ĠAr range", + "ĠArr ange", + "p rompt", + "prom pt", + "Ð £", + "( ct", + "(c t", + "Ġ Interval", + "ĠInt erval", + "ĠInter val", + "d ept", + "de pt", + "dep t", + "D aniel", + "Dan iel", + "Dani el", + "Ġ fills", + "Ġf ills", + "Ġfil ls", + "Ġfill s", + ". tensor", + ".t ensor", + "( trim", + "(t rim", + "(tr im", + "Ġje alous", + "F eb", + "Fe b", + "\\ Common", + "Ġamendment s", + "Ġamend ments", + "_ operator", + "_op erator", + "_o perator", + "_oper ator", + "_ customize", + "_custom ize", + "Ġ ]]", + "Ġ] ]", + "Ġ bn", + "Ġb n", + "Ġdis appointment", + "Ġdisappoint ment", + "Ġmill enn", + ". when", + ".w hen", + ".wh en", + "Ġob ey", + "Ġobe y", + "Ġoff enders", + "Ġoffender s", + "Ġoffend ers", + "Ġoffen ders", + "W ild", + "Wil d", + "Wi ld", + "Ġcell For", + "Ġappar atus", + ". after", + ".a fter", + ".af ter", + "Ġ EPS", + "ĠE PS", + "ĠEP S", + "Ġad orable", + "ope rand", + "oper and", + "( listener", + "(list ener", + "ve al", + "Ġ )(", + "Ġ) (", + "Ġcardio vascular", + "uplic ates", + "uplicate s", + "r istol", + "rist ol", + "ris tol", + "Ġref uses", + "Ġrefuse s", + "( QWidget", + "(Q Widget", + "Ġel emento", + "Ġelement o", + "Ġelem ento", + "Number Of", + ". delay", + ".d elay", + ".de lay", + ".del ay", + ". groups", + ".g roups", + ".group s", + "\" >'+", + "\"> '+", + "\">' +", + "åĿ Ģ", + "ace ncy", + "ac ency", + "acen cy", + "( URL", + "(U RL", + "_ half", + "_h alf", + "_hal f", + "= l", + "Ġlist View", + "( section", + "(s ection", + "(se ction", + "(sec tion", + ". toArray", + ".to Array", + "+ /", + "ĠRodrig uez", + "i stream", + "ist ream", + "istr eam", + "Ġelig ibility", + ": :-", + ":: -", + ". newInstance", + ".new Instance", + "P B", + "Ġ Assets", + "ĠAs sets", + "ĠAss ets", + "ĠAsset s", + "Ġ Composite", + "ĠCom posite", + "ĠComp osite", + "ĠL abs", + "ĠLa bs", + "ĠLab s", + "ĠH amas", + "ĠHam as", + "ĠHa mas", + "++ );Ċ", + "++) ;Ċ", + "Ġ blk", + "Ġb lk", + "Ġbl k", + "Ġ Neo", + "ĠN eo", + "ĠNe o", + "L uc", + "Lu c", + "@ login", + "Ġun aware", + "Ġuna ware", + ". met", + ".m et", + ".me t", + "_ RELEASE", + "_RE LEASE", + "( ST", + "(S T", + "AM IL", + "AMI L", + "r ike", + "ri ke", + "rik e", + "Ġ (){Ċ", + "Ġ( ){Ċ", + "Ġ() {Ċ", + "Ġ(){ Ċ", + "( sprintf", + "(s printf", + "Ġ Accounts", + "ĠAc counts", + "ĠAccount s", + "Ġ VIEW", + "ĠV IEW", + "ĠVI EW", + "Ġ Aj", + "ĠA j", + "ãĤ °", + "Ġwh isk", + "Ġ idi", + "Ġi di", + "Ġid i", + "Ġr ode", + "Ġro de", + "Ġrod e", + "Ġ ihn", + "Ġi hn", + "Ġih n", + "ĠElement ary", + "Q ty", + "Qt y", + "Ġintrig uing", + "Ġ å¤", + "Ġå ¤", + "J obs", + "Job s", + "Jo bs", + "ĉ offset", + "ĉo ffset", + "ĠAh med", + "ĠTal iban", + "Ġ èİ·åıĸ", + "Ġè İ·åıĸ", + "Ġin jected", + "Ġinj ected", + "Ġinject ed", + ". Authentication", + ".Auth entication", + "_ linear", + "_l inear", + "_line ar", + "_lin ear", + "_li near", + ". Decimal", + ".D ecimal", + ".De cimal", + ".Dec imal", + "Ġapp les", + "Ġap ples", + "Ġappl es", + "Ġapple s", + "Ġshare holders", + "Ġshareholder s", + "Ġb aked", + "Ġba ked", + "Ġbake d", + "Ġbak ed", + ". diff", + ".d iff", + ".di ff", + "ĠE ddie", + "ĠEd die", + "o kers", + "ok ers", + "oke rs", + "oker s", + "Ġconfront ed", + "vo ices", + "voice s", + "Ġt us", + "Ġtu s", + "Ġ Spin", + "ĠS pin", + "ĠSp in", + "ĠSpi n", + "N ODE", + "NO DE", + "_ Un", + "_U n", + "C TX", + "CT X", + "/ google", + "/g oogle", + "/go ogle", + "T emperature", + "Tem perature", + "Ġ' ').", + "Ġ'' ).", + "Ġ'') .", + "Ġmagn ificent", + "Ġ startIndex", + "Ġstart Index", + "semb les", + "sem bles", + "semble s", + "sembl es", + "Any one", + "z k", + "e hen", + "eh en", + "ĠD ame", + "ĠDa me", + "ĠDam e", + ". strict", + ".str ict", + "Ġre places", + "Ġrep laces", + "Ġrepl aces", + "Ġreplace s", + "Ġline back", + "Ġpush es", + "Ġpus hes", + "Ġche ek", + "ĠS hi", + "ĠSh i", + "_ BYTES", + "_BY TES", + "_BYTE S", + "R EA", + "RE A", + "ả n", + "_CON NECTION", + "_CONNECT ION", + "G ateway", + "Gate way", + "ĠTr avis", + "ĠTra vis", + "ĠTrav is", + "Ġ AX", + "ĠA X", + "Ġ Basically", + "ĠBasic ally", + "ĠBas ically", + "Ġ Upgrade", + "ĠUp grade", + "à ª", + "th emes", + "the mes", + "theme s", + "them es", + "er mo", + "erm o", + "k or", + "ko r", + "F emale", + "Fe male", + "_ attach", + "_at tach", + "_att ach", + "ĠìĤ¬ ìļ©", + "Ġ poz", + "Ġp oz", + "Ġpo z", + "= =============Ċ", + "== ============Ċ", + "==== ==========Ċ", + "======== ======Ċ", + "=== ===========Ċ", + "============ ==Ċ", + "============= =Ċ", + "=========== ===Ċ", + "============== Ċ", + "========= =====Ċ", + "========== ====Ċ", + "====== ========Ċ", + "===== =========Ċ", + "======= =======Ċ", + "( symbol", + "(s ymbol", + "(sym bol", + "Ġ Sector", + "ĠS ector", + "ĠSe ctor", + "ĠSec tor", + "ĠSect or", + "__ )ĊĊ", + "__) ĊĊ", + "__)Ċ Ċ", + "_ padding", + "_p adding", + "_pad ding", + "ï¼ļ \"", + "Ġ fabs", + "Ġf abs", + "Ġfa bs", + "Ġfab s", + "Ġr anged", + "Ġrange d", + "Ġran ged", + "Ġrang ed", + "set Name", + "Ġp error", + "Ġper ror", + "Ġpe rror", + "â Ĺ", + "ĠFile Reader", + "Ġf ulfilled", + "Ġful filled", + "Ġfulfill ed", + "Ġfulfil led", + "_ Current", + "_C urrent", + "Ġdo minate", + "Ġdom inate", + "Ġdomin ate", + "Ġdomina te", + "Ġsm ugg", + "Post Mapping", + "_ force", + "_f orce", + "_for ce", + "Ġb loc", + "Ġbl oc", + "Ġblo c", + "ĠG iant", + "ĠGi ant", + "ĠGian t", + "ĠGia nt", + "( video", + "(v ideo", + "Ġ CU", + "ĠC U", + "System Service", + "Ġ elf", + "Ġe lf", + "Ġel f", + "Ġkont akt", + "ë ª", + "k ees", + "ke es", + "kee s", + "g tk", + "gt k", + "Ġparam Int", + "Ġ markup", + "Ġmark up", + "Ġmar kup", + "u ales", + "ual es", + "ua les", + "uale s", + "Ġaccount ed", + "Ġgang bang", + "RY PT", + "Ġ Wrong", + "ĠW rong", + "ĠWr ong", + "Ġ credited", + "Ġcr edited", + "Ġcred ited", + "Ġcredit ed", + "Ġ MESSAGE", + "ĠM ESSAGE", + "Ġf laws", + "Ġfl aws", + "Ġflaw s", + "Ġfla ws", + "Ġb bw", + "Ġbb w", + "Ġmet abolic", + "Ġmetab olic", + "Ġmetabol ic", + "ĠO EM", + "ĠOE M", + "/ event", + "/e vent", + "(C ollectors", + "mon ton", + "mo nton", + "mont on", + "monto n", + "ap pear", + "app ear", + "appe ar", + "Ġop ted", + "Ġopt ed", + "Ġc heat", + "Ġch eat", + "Ġche at", + "Ġd av", + "Ġda v", + "Ġ Proceed", + "ĠPro ceed", + "ĠProc eed", + "Ġ ê¸", + "Ġê ¸", + "an ked", + "ank ed", + "anke d", + "и з", + "an sk", + "ans k", + "Ġ Hang", + "ĠH ang", + "ĠHa ng", + "ĠHan g", + "ĠC ler", + "ĠCl er", + "ĠCle r", + "Ġdis gu", + "Ġdisg u", + "Ġc map", + "Ġcm ap", + ". cljs", + ".cl js", + "Ġa ument", + "Ġau ment", + "l ez", + "le z", + "Ġ Joined", + "ĠJ oined", + "ĠJo ined", + "ĠJoin ed", + "ĠJoi ned", + "_ received", + "_re ceived", + "_receive d", + "Ġa erial", + "Ġaer ial", + "Ġae rial", + "o tel", + "ot el", + "ote l", + "Ġg reet", + "Ġgre et", + "\" s", + "Ġ Genesis", + "ĠGen esis", + "ĠGene sis", + "ĠCal if", + "ĠCa lif", + "pan ion", + "Ġtail ored", + "Ġtailor ed", + "m apping", + "ma pping", + "map ping", + "and Expect", + ". track", + ".t rack", + ".tr ack", + "at omy", + "ato my", + "atom y", + "ĠO w", + "ul lah", + "ull ah", + "ulla h", + ". Yes", + ".Y es", + "Ġ SimpleName", + "ĠSimple Name", + "d bh", + "db h", + "' en", + "'e n", + "Ġn onsense", + "Ġnon sense", + "Ġnons ense", + "Ġphilosoph ical", + "( getContext", + "(get Context", + "Ġis so", + "Ġiss o", + "Ġ ACE", + "ĠA CE", + "ĠAC E", + "start Date", + "Ġb ÄĻd", + "ĠAUTH OR", + "ĠG lobe", + "ĠGl obe", + "ĠGlo be", + "ĠGlob e", + "Ġin sects", + "Ġins ects", + "Ġinsect s", + "Ġinse cts", + "_ Al", + "_A l", + "ush ing", + "ushi ng", + "è® °", + "/ Home", + "/H ome", + "ĠLocal Date", + "ne eded", + "need ed", + "nee ded", + "hes ive", + "Ġ illusion", + "Ġill usion", + "äº Į", + "Ġt rat", + "Ġtr at", + "Ġtra t", + "x o", + "/ detail", + "/d etail", + "/de tail", + "_ MATCH", + "_M ATCH", + "_MAT CH", + "Ġbroad band", + "Ġ wal", + "Ġw al", + "Ġwa l", + "ĠIllegal StateException", + "IRE CTION", + "IRECT ION", + "Ġnor theast", + "Ġnorth east", + "es ium", + "esi um", + "Ġ Cliente", + "ĠCl iente", + "ĠClient e", + "ĠCli ente", + "ul ance", + "ula nce", + "ulan ce", + "n ty", + "nt y", + "Ġt ecn", + "Ġte cn", + "Ġtec n", + "Device s", + "Dev ices", + "Ġgr ains", + "Ġgrain s", + "Ġgra ins", + "ĠO g", + "Ġ SEL", + "ĠS EL", + "ĠSE L", + "ud iant", + "udi ant", + "Ġ ++;Ċ", + "Ġ++ ;Ċ", + "Ġexplan ations", + "Ġexplanation s", + "o cco", + "oc co", + "occ o", + "Ġd iets", + "Ġdi ets", + "Ġdie ts", + "Ġdiet s", + "Ġco hort", + "Ġcoh ort", + "( controller", + "(cont roller", + "(control ler", + ". Iterator", + ".It erator", + ".Iter ator", + "- rich", + "-r ich", + "ro cess", + "roc ess", + "G D", + "Ġcar bohydr", + "Ġ fried", + "Ġf ried", + "Ġfr ied", + "Ġfri ed", + "ĠEm ployment", + "ĠEmp loyment", + "ĠEmploy ment", + "ìŀ ¥", + "ĠLeon ard", + "ĠLeo nard", + "_ ${", + "_$ {", + "qu ares", + "quare s", + "qua res", + "Ġcompan ions", + "Ġcompanion s", + "Ġp aris", + "Ġpar is", + "Ġpa ris", + "Ġpari s", + "Ġst imulation", + "Ġstim ulation", + "ĠZ oo", + "ĠZo o", + "Ġre levance", + "Ġrelev ance", + "Ġ Colour", + "ĠCol our", + "ĠColo ur", + "Ġs pear", + "Ġsp ear", + "Ġspe ar", + "ot ional", + "otion al", + "oti onal", + "Ġ Lite", + "ĠL ite", + "ĠLi te", + "ĠLit e", + "ĠK osten", + "ĠKo sten", + "ĠKos ten", + "Ġ ó", + "Ġà ³", + "_ attachment", + "_att achment", + "_attach ment", + "orph ic", + "orp hic", + "Ġda mit", + "Ġdam it", + "Ġ dlg", + "Ġd lg", + "Ġdl g", + "Ġth rive", + "Ġthr ive", + "CH ANGE", + "CHAN GE", + "Ġ Apparently", + "ĠApp arently", + "Ġa tual", + "Ġat ual", + "Ġro oted", + "Ġroot ed", + "( images", + "(image s", + "(im ages", + "a wi", + "aw i", + "ar iat", + "ari at", + "aria t", + "Ġch erry", + "Ġcher ry", + "ST ATIC", + "STAT IC", + "m nt", + "mn t", + "Ġ UserId", + "ĠUser Id", + "il let", + "ill et", + "ille t", + "ĠHis panic", + "ĠHispan ic", + "Ġ nak", + "Ġn ak", + "Ġna k", + "Ġcent ro", + "Ġcentr o", + "Ġcen tro", + "Ġ dims", + "Ġd ims", + "Ġdi ms", + "Ġdim s", + "_ initialize", + "_initial ize", + "ı k", + "ĠCent ers", + "ĠCenter s", + "R EN", + "RE N", + "Ġevolution ary", + "Ġ Topics", + "ĠTo pics", + "ĠTop ics", + "ĠTopic s", + "_ damage", + "_d amage", + "_da mage", + "e mer", + "em er", + "eme r", + "Ġr und", + "Ġrun d", + "Ġru nd", + "Ġpun ished", + "Ġpunish ed", + "Ġc ubic", + "Ġcu bic", + "Ġcub ic", + "f air", + "fa ir", + "[ ];ĊĊ", + "[] ;ĊĊ", + "[];Ċ Ċ", + "Ġin stantiate", + "Ġinstant iate", + "Ġover see", + "Ġovers ee", + "Ġoverse e", + "- delete", + "-de lete", + "-del ete", + "unt eer", + "unte er", + "start Time", + "Ġ Pipeline", + "ĠP ipeline", + "ĠPipe line", + "ĠPip eline", + "_ GAME", + "_G AME", + "ĠC ir", + "ĠCi r", + "ĉ Null", + "ĉN ull", + ". Formatting", + ".Format ting", + "uc umber", + "ĠR ide", + "ĠRid e", + "ĠRi de", + "Ġz oo", + "Ġzo o", + "Ġ checker", + "Ġcheck er", + "Ġche cker", + "åIJ Į", + "= C", + "Ġg rit", + "Ġgr it", + "Ġgri t", + "\" );//", + "\") ;//", + "\"); //", + "_ xy", + "_x y", + "Ġ Declaration", + "ĠDe claration", + "Ġ callable", + "Ġcall able", + "F oo", + "Fo o", + "Ġ ListItem", + "ĠList Item", + "Ġin accur", + "m lin", + "ml in", + "ĉ Data", + "ĉD ata", + "Ġev olving", + "a wan", + "aw an", + "awa n", + "Ġc afe", + "Ġca fe", + "Ġcaf e", + "f olk", + "fo lk", + "fol k", + "_ IDX", + "_ID X", + "_I DX", + "Ġ Anything", + "ĠAny thing", + "ĠPalest ine", + "ĠPalestin e", + "Ġ GridView", + "ĠGrid View", + "Ġcol ony", + "Ġcolon y", + "ĠGerman s", + "ĠGer mans", + "ĠGerm ans", + "( +", + ". pid", + ".p id", + ".pi d", + ". jsx", + ".j sx", + ".js x", + "ĠSup erior", + "ĠSuper ior", + "Christ ian", + "ĠL ect", + "ĠLe ct", + "ĉ Game", + "ĉG ame", + "Ġinstrument al", + "An imations", + "Animation s", + "Anim ations", + "д ал", + "да л", + "ĠM oses", + "ĠMo ses", + "ĠMos es", + "ĉĉ čĊĉĉčĊ", + "ĉĉčĊ ĉĉčĊ", + "z s", + "k te", + "kt e", + "ä¸ ļ", + "_ DIST", + "_D IST", + "_DIS T", + "_DI ST", + "b itmap", + "bit map", + "d B", + "Ġp ersistence", + "Ġpers istence", + "Ġpersist ence", + "ÑĢ оÑģ", + "ÑĢо Ñģ", + "$ l", + "B ron", + "Br on", + "Bro n", + "Ġ {|", + "Ġ{ |", + "_ chart", + "_c hart", + "_ch art", + "_char t", + "Ġ Consum", + "ĠCon sum", + "ĠCons um", + "Ġh emp", + "Ġhe mp", + "Ġhem p", + "Ġ \"))Ċ", + "Ġ\" ))Ċ", + "Ġ\") )Ċ", + "Ġ\")) Ċ", + "Ġatt ackers", + "Ġattack ers", + "Ġattacker s", + "Ġknowledge able", + "Ġc et", + "Ġce t", + "Ġvir uses", + "Ġvirus es", + "' I", + "Ġpitch er", + "Ġpit cher", + "Ġswe eping", + "Ġsweep ing", + "= list", + "=l ist", + "apt ops", + "aptop s", + ". depth", + ".de pth", + ".dep th", + "Ġinstruct ed", + "Ġ Rus", + "ĠR us", + "ĠRu s", + "benh avn", + "Ġ ин", + "Ġи н", + "S ports", + "Sp orts", + "Sport s", + "Spo rts", + "Ġon set", + "Ġons et", + "æĿ ĥ", + ". RED", + ".R ED", + ".RE D", + "_ si", + "_s i", + "ĠP ST", + "ĠPS T", + ". onChange", + ".on Change", + "> tag", + ">t ag", + "ĠR oh", + "ĠRo h", + "_ character", + "_char acter", + "ĠL aws", + "ĠLa ws", + "ĠLaw s", + "Ġ Bachelor", + "ĠB achelor", + "ĠBach elor", + "_ swap", + "_s wap", + "_sw ap", + ".re activex", + "Ġreward ing", + "Ġrew arding", + "M edium", + "Med ium", + "- [", + "Ġ Recently", + "ĠRec ently", + "ĠRecent ly", + "J oint", + "Join t", + "Jo int", + "part ition", + "Ġ Minutes", + "ĠMin utes", + "ĠMinute s", + "Ġ indo", + "Ġin do", + "Ġi ndo", + "Ġind o", + "Ġabsor bed", + "Ġabsorb ed", + "Ġ GN", + "ĠG N", + "_ IND", + "_IN D", + "_I ND", + "Ġs aber", + "Ġsa ber", + "Ġsab er", + "Ġsabe r", + "S pawn", + "Sp awn", + "out puts", + "output s", + "ĠJeff rey", + "Ġmed ieval", + "Ġmedi eval", + "h ed", + "he d", + "G uide", + "Gui de", + "Guid e", + "Gu ide", + "Ġpsych o", + "Ġpsy cho", + "Ġg lam", + "Ġgl am", + "E lim", + "El im", + "äd chen", + "_ plain", + "_p lain", + "_pl ain", + "Ġ Sau", + "ĠS au", + "ĠSa u", + "- four", + "-f our", + "Ġanaly zing", + "QUE RY", + "QU ERY", + "Ġtom ato", + "_ buttons", + "_button s", + "_but tons", + "V EN", + "VE N", + ". setStatus", + ".set Status", + ". Url", + ".U rl", + "+ ĊĊ", + "+Ċ Ċ", + "Ġcompl aining", + "Ġcomplain ing", + "d egree", + "de gree", + "deg ree", + "conf irmed", + "confirm ed", + "Ġsu bt", + "Ġsub t", + "p arsed", + "par sed", + "parse d", + "pars ed", + "Ġt orque", + "Ġtor que", + "Ġtrouble d", + "Ġtroub led", + "Ġtrou bled", + "Ġ TARGET", + "ĠT ARGET", + "ĠTAR GET", + "Ġtrad emarks", + "Ġtrade marks", + "Ġtrademark s", + "Ġ Coordinate", + "ĠCo ordinate", + "ĠCoord inate", + "ĠV iv", + "ĠVi v", + "Ġ //}ĊĊ", + "Ġ// }ĊĊ", + "Ġ//}Ċ Ċ", + "Ġapr ès", + ". getPosition", + ".get Position", + ".getP osition", + "( KeyCode", + "(Key Code", + "ĠSil va", + "Ġ meteor", + "Ġm eteor", + "Ġmet eor", + "Ġendorse ment", + "Ġendors ement", + "Over view", + "Ġ Poss", + "ĠP oss", + "ĠPo ss", + "ĠPos s", + ". Inject", + ".In ject", + "Ġeven ly", + "Ġ visualization", + "Ġvisual ization", + "Ġ wchar", + "Ġw char", + "Ġwc har", + "ĠH DMI", + "ĠHD MI", + "Ġf unct", + "Ġfun ct", + "Ġfunc t", + "ick name", + "',' ','", + "','', '", + "Ġfor wards", + "Ġforward s", + "Managed Object", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĉ server", + "ĉs erver", + "ĠOut look", + "ĠChron icle", + "ĠChronic le", + "Ġdub bed", + "Ġd ok", + "Ġdo k", + "ĠW ear", + "ĠWe ar", + ". AL", + ".A L", + "p aren", + "par en", + "pare n", + "pa ren", + ". Interface", + ".Inter face", + "Inter faces", + "Interface s", + ". cod", + ".c od", + ".co d", + "Ġd ib", + "Ġdi b", + ".Global ization", + "ĠAc ademic", + "ĠAcad emic", + "ĠAcadem ic", + "Ġas sms", + "Ġass ms", + "A utom", + "Auto m", + "Aut om", + "Au tom", + "Ġ lw", + "Ġl w", + "Ġ NW", + "ĠN W", + "Ġ&& čĊ", + "Ġproble ma", + "Ġproblem a", + "Ġprobl ema", + "ĠManufact uring", + "l imits", + "li mits", + "lim its", + "limit s", + "- mobile", + "-m obile", + "Ġ filme", + "Ġfil me", + "Ġfilm e", + "/ map", + "/m ap", + "Ġd oit", + "Ġdo it", + "Ġdoi t", + "ĠI nk", + "ĠIn k", + "Ġs ued", + "Ġsu ed", + "Ġsue d", + ". arr", + ".a rr", + ".ar r", + "Ġunder min", + "Ġ Proc", + "ĠP roc", + "ĠPro c", + "ĠPr oc", + "croll View", + "_ _$", + "__ $", + "Ġside walk", + "Ġsidew alk", + "( that", + "(t hat", + "(th at", + "ภ·", + "[ q", + "gram mar", + "Ġt ë", + "q uito", + "qu ito", + "quit o", + "qui to", + "Ġsp iral", + "Ġspir al", + "Ġspi ral", + "ext ended", + "extend ed", + "Ġf ocal", + "Ġfoc al", + "Ġfo cal", + "Ġdig ging", + "p as", + "pa s", + "ĠT all", + "ĠTal l", + "ĠTa ll", + ". proxy", + ".pro xy", + ".pr oxy", + "i tures", + "it ures", + "iture s", + "itu res", + "itur es", + "T RACT", + "TR ACT", + "TRA CT", + "Ġ Realm", + "ĠRe alm", + "ĠReal m", + "Ġf eder", + "Ġfe der", + "Ġfed er", + "Ġ oriented", + "Ġorient ed", + "Ġori ented", + "Ġ Alternative", + "ĠAltern ative", + "ĠAlter native", + "Ġ owe", + "Ġo we", + "Ġow e", + "Ġs ourced", + "Ġsource d", + "Ġsour ced", + "in ker", + "ink er", + "inke r", + ". det", + ".d et", + ".de t", + "S ep", + "Se p", + "Ġ Qui", + "ĠQ ui", + "ĠQu i", + "ĠPal mer", + "ĠPalm er", + "( _,", + "(_ ,", + "s amples", + "sample s", + "sam ples", + "samp les", + "o yer", + "oy er", + "ul lan", + "ull an", + "ulla n", + "q uez", + "qu ez", + "que z", + "Ed ges", + "Edge s", + "Ġsh out", + "Ġsho ut", + "Ġ Achie", + "ĠA chie", + "ĠAch ie", + "Ġ haar", + "Ġh aar", + "Ġha ar", + "_ Construct", + "_Con struct", + "Ġprem ature", + "Ġre vert", + "Ġrev ert", + "Ġreve rt", + "Ġrever t", + "' ).Ċ", + "') .Ċ", + "'). Ċ", + "Ġs chn", + "Ġsc hn", + "Ġsch n", + "filter ed", + "fil tered", + "filt ered", + "null ptr", + "S aved", + "Save d", + "Sa ved", + "it ecture", + "itect ure", + "C LA", + "CL A", + "Ġ vl", + "Ġv l", + "s tell", + "st ell", + "ste ll", + "ĉ Me", + "ĉM e", + "ĠL ip", + "ĠLi p", + "n ational", + "nat ional", + "nation al", + "Ġwh olly", + "Ġspr ings", + "Ġspring s", + ". Timer", + ".T imer", + ".Time r", + "ĉ src", + "ĉs rc", + "e lsen", + "el sen", + "else n", + "els en", + "åħ ¶", + "Ġcommunic ating", + "Ġ Quiz", + "ĠQu iz", + "ĠQui z", + "Ġt eng", + "Ġte ng", + "Ġten g", + "Ġg ez", + "Ġge z", + "Ġ Outside", + "ĠOut side", + "ĠOuts ide", + ". Sign", + ".S ign", + "( cs", + "(c s", + "Ġdisp utes", + "Ġdispute s", + "Ġdisput es", + "ĠWe iss", + "ĠWei ss", + "an nes", + "ann es", + "anne s", + "> No", + ">N o", + "ĠB ach", + "ĠBa ch", + "ĠBac h", + ".remove All", + "re fer", + "ref er", + "/ dashboard", + "/d ashboard", + "Ġ Ajax", + "ĠA jax", + "ĠAj ax", + "Index Changed", + "Ġ Weak", + "ĠWe ak", + "' \"Ċ", + "'\" Ċ", + "Ġs ights", + "Ġsight s", + "Ġsigh ts", + "access Token", + "ĠJ oi", + "ĠJo i", + "( domain", + "(d omain", + "(dom ain", + "(do main", + "ĉ cv", + "ĉc v", + "Ġcontin uation", + "Ġcontinu ation", + "Ġcontinua tion", + "Ġp lum", + "Ġpl um", + "Ġplu m", + "a dir", + "ad ir", + "adi r", + ". setMessage", + ".set Message", + "Ġ ï¼Į", + "Ġï¼ Į", + "Ġsw allow", + "Ġswal low", + "ĠL amp", + "ĠLa mp", + "ĠLam p", + "Ġ qw", + "Ġq w", + "Ġ uu", + "Ġu u", + "C oin", + "Co in", + "u bic", + "ub ic", + "ubi c", + "ĠDe als", + "ĠDeal s", + "r ace", + "ra ce", + "rac e", + "Ġdict ator", + "Ġm eme", + "Ġme me", + "Ġmem e", + "turn ed", + "tur ned", + "ĠJul ie", + "ĠJu lie", + "ĠJuli e", + ".grid Column", + "Ġp uppy", + "Ġpup py", + "Ġpu ppy", + "Ġp am", + "Ġpa m", + "Ġ ){čĊ", + "Ġ) {čĊ", + "Ġ){ čĊ", + "Ġinv iting", + "Ġinvit ing", + "Ġf rench", + "Ġfr ench", + "Ġfren ch", + "v im", + "vi m", + "Ġwr apping", + "Ġwrap ping", + "Ġ#- }Ċ", + "( [-", + "([ -", + "Ear ly", + "Ġsh iny", + "Ġshin y", + ". faces", + ".f aces", + ".face s", + ".fac es", + ".fa ces", + "Ġre bell", + "Ġreb ell", + "Ġrebel l", + "abc def", + "abcd ef", + "ä lt", + "äl t", + "Ġest imation", + "Ġestim ation", + "ph ys", + "phy s", + "los ures", + "losure s", + "_ REL", + "_RE L", + "_R EL", + "Ġex clusion", + "Ġexclus ion", + "Ġexcl usion", + "ĠSk ype", + "ĠSky pe", + "we ise", + "wei se", + "weis e", + "- stop", + "-s top", + "-st op", + "no thing", + "ĠE gg", + "ĠEg g", + "is ors", + "iso rs", + "isor s", + "Rich ard", + "Ġcounsel ing", + "Ġcom mem", + "Ġcomm em", + "Ġcomme m", + "ĠQ MessageBox", + "ĠSy nd", + "ĠSyn d", + "ĠF rost", + "ĠFr ost", + "ĠFro st", + "ĠCom petition", + "ĠCompet ition", + "ĠA wake", + "ĠAw ake", + "Ġ ted", + "Ġt ed", + "Ġte d", + "ic iones", + "ici ones", + "icio nes", + "icion es", + "ĠDev Components", + "VERTISE MENT", + "o tti", + "ot ti", + "ott i", + ". runner", + ".r unner", + ".run ner", + "Ġunique ly", + "Ġuniqu ely", + "Ġuniq uely", + ". flag", + ".f lag", + ".fl ag", + "ĉ rs", + "ĉr s", + "_ generic", + "_g eneric", + "_gen eric", + "_gene ric", + "_gener ic", + "Ġ` ``Ċ", + "Ġ`` `Ċ", + "Ġ``` Ċ", + "ACH INE", + "ACHI NE", + "Ġm ein", + "Ġme in", + "( Application", + "(App lication", + "( br", + "(b r", + "Ġrat ios", + "Ġratio s", + ": ,", + "ĠX CTest", + "ĠXCT est", + "ĠXC Test", + "ustain able", + "- www", + "-w ww", + "it les", + "itle s", + "_ TEMP", + "_T EMP", + "_TE MP", + "_TEM P", + "Ġs yst", + "Ġsys t", + "Ġsy st", + "umeric UpDown", + "ĉ assertTrue", + "ĉassert True", + "Ġ wf", + "Ġw f", + ". peek", + ".pe ek", + "ĠB ulg", + "ĠBul g", + "ĠBu lg", + "Ġterr ifying", + ". MODE", + ".M ODE", + ".MOD E", + "Ġ GW", + "ĠG W", + "á r", + "Ġ fic", + "Ġf ic", + "Ġfi c", + "Ġcommit ments", + "Ġcommitment s", + "- tech", + "-t ech", + "-te ch", + "Ġ Liquid", + "ĠL iquid", + "ĠLiqu id", + "o pez", + "op ez", + "ope z", + "z heimer", + "a ña", + "añ a", + "- media", + "-m edia", + "-me dia", + "-med ia", + "( animated", + "(an imated", + "_ goal", + "_go al", + "Ġg um", + "Ġgu m", + "y stone", + "yst one", + "ys tone", + ". SET", + ".S ET", + ".SE T", + "ĠW end", + "ĠWe nd", + "ĠWen d", + "set CellValue", + "Ġ msgs", + "Ġmsg s", + "Ġms gs", + "c ash", + "ca sh", + "cas h", + "AL LOC", + "ALL OC", + "/ aws", + "/a ws", + "Ġmicro wave", + "Ġmic rowave", + ". Pointer", + ".Point er", + "ĉ Console", + "ĉCon sole", + "_ sorted", + "_s orted", + "_sort ed", + "ĠF ilip", + "ĠFil ip", + "ĠFi lip", + "P rod", + "Pro d", + "Pr od", + "Ġ// !<", + "Ġ//! <", + "in group", + "ing roup", + "Ġ ks", + "Ġk s", + "_T RI", + "_TR I", + "Ġteas poon", + "Ġ ATT", + "ĠA TT", + "ĠAT T", + "Ġre covering", + "Ġrecover ing", + "Ġ GLOBAL", + "ĠG LOBAL", + ". Par", + ".P ar", + "Ġ/ >;Ċ", + "Ġ/> ;Ċ", + "Ġmar ble", + "ul ators", + "ula tors", + "ulator s", + "Ġ Cycle", + "ĠC ycle", + "ĠCy cle", + "ĠCycl e", + "ĠCyc le", + "Ġher bs", + "Ġherb s", + "_ metric", + "_m etric", + "_met ric", + ") !", + "_C LOCK", + "_CL OCK", + "_ Button", + "_B utton", + "H arry", + "Har ry", + "è¿ Ľ", + "Ġstr ains", + "Ġstrain s", + "Ġstra ins", + "Ġ AppBar", + "ĠApp Bar", + "Ġ Chan", + "ĠC han", + "ĠCh an", + "ĠCha n", + "/ video", + "/v ideo", + "Ġ bam", + "Ġb am", + "Ġba m", + ". Progress", + ".Pro gress", + "$ f", + "l emen", + "le men", + "lem en", + "leme n", + "Ġir regular", + "ĠD uncan", + "ĠDun can", + "ĠM int", + "ĠMin t", + "ĠMi nt", + "- video", + "-v ideo", + "ঠ¾", + "ó wn", + "ów n", + "Ġ EMPTY", + "ĠEM PTY", + "ĠEMP TY", + "Ġst acked", + "Ġstack ed", + "Ġ HA", + "ĠH A", + "_ cut", + "_c ut", + "_cu t", + "Ġwhere in", + "ĠW ays", + "ĠWay s", + "ĠWa ys", + "( counter", + "(c ounter", + "(count er", + "(co unter", + "è¯ ķ", + "Form Group", + "Ġb lew", + "Ġbl ew", + "Ġble w", + "c ourses", + "co urses", + "course s", + "cour ses", + "Ġ productos", + "Ġproduct os", + "Ġproducto s", + "r ys", + "ry s", + "Ġ Restr", + "ĠR estr", + "ĠRe str", + "ĠRes tr", + "ĠRest r", + "Ġst yling", + "Ġsty ling", + "Ġstyl ing", + "> s", + "Ġp iv", + "Ġpi v", + "Ġit ertools", + "Ġiter tools", + "get Repository", + "Ġ Ik", + "ĠI k", + "_ devices", + "_device s", + "_dev ices", + "lay ui", + "Ġhalf way", + "Ġfran ç", + "Ġt uning", + "Ġtu ning", + "Ġtun ing", + "O A", + "_ Node", + "_N ode", + "_No de", + "ar de", + "ard e", + "Ġf ierce", + "Ġfi erce", + "Ġfier ce", + "Ġfierc e", + "l icted", + "lic ted", + "lict ed", + "# čĊ", + "Ġbreak through", + "ĠE rik", + "ĠEr ik", + "Ġb ride", + "Ġbr ide", + "Ġbri de", + "Ġbrid e", + "Ġ .\"", + "Ġ. \"", + "c ulus", + "cul us", + "cu lus", + "in side", + "ins ide", + "insi de", + "ĠIndian apolis", + "Ġ EE", + "ĠE E", + "Ġy og", + "Ġyo g", + "ur ret", + "urre t", + "urr et", + ". fs", + ".f s", + ". grad", + ".g rad", + ".gr ad", + "_ cards", + "_c ards", + "_card s", + "_car ds", + "_ accuracy", + "_ac curacy", + "_acc uracy", + "_e pi", + "_ep i", + "qu eda", + "que da", + "/ org", + "/or g", + "/o rg", + "é ªĮ", + "éª Į", + "Ġcom pte", + "Ġcomp te", + "Ġcompt e", + ") )[", + ")) [", + "Out side", + "G reater", + "Great er", + "Gre ater", + "Ġ Renderer", + "ĠRender er", + ". actor", + ".a ctor", + ".ac tor", + ".act or", + "Account s", + "Ac counts", + "I dle", + "Id le", + "_ hours", + "_h ours", + "_hour s", + "er ner", + "ern er", + "erne r", + "J oined", + "Join ed", + "Jo ined", + "Ġme nj", + "Ġmen j", + "re quires", + "require s", + "requ ires", + "Ġ OPER", + "ĠO PER", + "ĠOP ER", + ".remove Child", + "ĉ sp", + "ĉs p", + "Ġ esse", + "Ġe sse", + "Ġes se", + "Ġess e", + "r ift", + "ri ft", + "rif t", + "x FE", + "xF E", + "ĠSh akespeare", + "____ ________", + "________ ____", + "Ġbudget s", + "Ġbud gets", + "Model State", + "fill able", + "- component", + "-com ponent", + "-comp onent", + "o cos", + "oc os", + "oco s", + "Ġ BUTTON", + "ĠB UTTON", + "ĠBUT TON", + "/ io", + "/i o", + ", out", + ",o ut", + "s ms", + "sm s", + "Th omas", + "Tho mas", + "ĠAr med", + "ĠArm ed", + "re sume", + "res ume", + "Ġrot ating", + "Ġ Vault", + "ĠV ault", + "ĠVa ult", + "Ġs eus", + "Ġse us", + "Ġseu s", + ". (*", + ".( *", + "Ġa mino", + "Ġam ino", + "Ġami no", + "Ġ[ ]);ĊĊ", + "Ġ[] );ĊĊ", + "Ġ[]) ;ĊĊ", + "Ġ[]);Ċ Ċ", + "Ġprov oc", + "n ox", + "no x", + ". GetEnumerator", + ".Get Enumerator", + "= ======Ċ", + "== =====Ċ", + "==== ===Ċ", + "=== ====Ċ", + "====== =Ċ", + "===== ==Ċ", + "======= Ċ", + "æĸ Ļ", + "_ scroll", + "_s croll", + "_sc roll", + "_scr oll", + "Ġfil med", + "Ġfilm ed", + "Ġfilme d", + "ĠS oci", + "ĠSo ci", + "ĠSoc i", + "g ap", + "ga p", + "g ro", + "gr o", + "V ote", + "Vo te", + "\" But", + "\"B ut", + "_ RC", + "_R C", + "An imal", + "Anim al", + " Ģ", + "ib ile", + "ibil e", + "ibi le", + "Ġaw aken", + "Ġawake n", + "o rest", + "or est", + "ore st", + "ores t", + "in ja", + "ĠI van", + "ĠIv an", + "( Command", + "Ġ *****", + "Ġ* ****", + "Ġ** ***", + "Ġ*** **", + "Ġ**** *", + "Î ·", + "Ġkv inder", + "Ġkvin der", + "Ġkvinde r", + "/ helpers", + "/h elpers", + "/help ers", + "/helper s", + "_ cases", + "_c ases", + "_case s", + "_ca ses", + "t g", + "ìĦ ¸", + "Register ed", + "ĉ pass", + "ĉp ass", + "_ digits", + "_d igits", + "_digit s", + "Ġcon tour", + "Ġcont our", + "Ġinf ants", + "Ġinfant s", + "Ġjust ification", + "Ġ Fortunately", + "ĠFort unately", + "Cont r", + "Con tr", + "ĠonCreate View", + "_ SAMPLE", + "_S AMPLE", + "_SAMPL E", + "Ġallow Null", + "Ġn ud", + "Ġnu d", + "Ġf etched", + "Ġfetch ed", + "Ġfet ched", + "_ equ", + "_e qu", + "_eq u", + "Ġ Unable", + "ĠU nable", + "ĠUn able", + "ĠUna ble", + "= \\\"\"", + "=\\\" \"", + "=\\ \"\"", + "> {Ċ", + ">{ Ċ", + "Ġcommit tees", + "Ġcommittee s", + "ist ema", + "iste ma", + "istem a", + "+ \".", + "+\" .", + "ÃŃ an", + "ÃŃa n", + "m ant", + "man t", + "ma nt", + "Ġsou theast", + "Ġsouth east", + "ï¼Į Ċ", + "dialog s", + "dia logs", + "PRO JECT", + "ch arger", + "char ger", + "charge r", + "charg er", + "- port", + "-p ort", + "-po rt", + "( uuid", + "(u uid", + ". export", + ".ex port", + ".exp ort", + "S ix", + "Si x", + "Ġ RP", + "ĠR P", + "P rem", + "Pr em", + "Pre m", + "Ġcon science", + "Ġconsc ience", + "Ġmargin Right", + "_ distribution", + "_d istribution", + "_dis tribution", + "y aml", + "ya ml", + "res izing", + "resi zing", + "D ock", + "Do ck", + "Doc k", + "Ġ Locations", + "ĠL ocations", + "ĠLocation s", + "ĠLoc ations", + "G Y", + "S eed", + "Se ed", + "See d", + "B UFFER", + "BUF FER", + "BUFF ER", + "os sip", + "oss ip", + "u llen", + "ul len", + "ull en", + "ulle n", + "Th ings", + "Thing s", + "Thin gs", + "- self", + "-s elf", + "-se lf", + ". poll", + ".p oll", + ".po ll", + ".pol l", + "PL AYER", + "PLAY ER", + "Ġ å®", + "Ġå ®", + "G ROUP", + "Ġ Away", + "ĠA way", + "ĠAw ay", + "Ġg ospel", + "x fd", + "xf d", + "M ary", + "Mar y", + "Ma ry", + "Ġ Portable", + "ĠPort able", + "ĠPor table", + "T URE", + "TU RE", + "Ġutil is", + "Ġut ilis", + "Ġse it", + "Ġsei t", + "Ġ strand", + "Ġs trand", + "Ġst rand", + "Ġstr and", + "Ġstran d", + "Ġstra nd", + "Ġtrans c", + "Ġtran sc", + "Ġ (^", + "Ġ( ^", + "ĠAl fred", + "ĠAlf red", + ". mem", + ".m em", + ".me m", + ". circle", + ".c ircle", + "Ġ ~/", + "Ġ~ /", + "for cing", + "forc ing", + "Ġ riot", + "Ġr iot", + "Ġri ot", + "Ġrio t", + "p rox", + "pr ox", + "pro x", + "TH ON", + "iz ación", + "iza ción", + "Ġ NI", + "ĠN I", + "r ost", + "ro st", + "ros t", + "Ġdis pro", + "Ġdisp ro", + "_ instances", + "_in stances", + "_instance s", + "_inst ances", + "ï¼Į âĢľ", + "ograph er", + "ogra pher", + "en das", + "end as", + "enda s", + "ĠIs aac", + "ĠIsa ac", + "ĠP ine", + "ĠPin e", + "ĠPi ne", + "/ dis", + "/d is", + "Ġcolor With", + "it erate", + "ite rate", + "iter ate", + "_ stride", + "_st ride", + "_str ide", + "Ġp unto", + "Ġpun to", + "Ġpunt o", + ". EventArgs", + ".Event Args", + "( center", + "(c enter", + "Ġneighb oring", + "Ġneighbor ing", + "ĠPr ison", + "ĠPri son", + "Ġ Messenger", + "ĠM essenger", + "ĠMess enger", + "Ġepid emic", + "Ġepidemi c", + "d ao", + "da o", + "_ complex", + "_com plex", + "_comp lex", + "Ġg ravel", + "Ġgr avel", + "Ġgrave l", + "Ġgra vel", + "Ġgrav el", + "_D IP", + "_DI P", + "é ment", + "ém ent", + "ĠA ri", + "ĠAr i", + "_ bitmap", + "_b itmap", + "_bit map", + ". quit", + ".q uit", + ".qu it", + "( valid", + "(val id", + "(va lid", + "Ġ pend", + "Ġp end", + "Ġpe nd", + "Ġpen d", + "Ġrespir atory", + "Ġre bound", + "Ġreb ound", + "Default Value", + "ãĥ Ń", + "Ġcom mits", + "Ġcomm its", + "Ġcommit s", + ". tests", + ".t ests", + ".test s", + ".te sts", + "_ fr", + "_f r", + "i tet", + "it et", + "ite t", + ". sf", + ".s f", + "Ġspace craft", + "c ritical", + "cri tical", + "cr itical", + "crit ical", + "Ġde pressed", + "Ġdep ressed", + "Ġdepr essed", + "Ġdepress ed", + "ĠAny Object", + "Ġu nb", + "Ġun b", + "Ġdis cern", + "Ġdisc ern", + "( mysql", + "(m ysql", + "(my sql", + "L atin", + "La tin", + "Lat in", + "ĠB og", + "ĠBo g", + "ĠWild life", + "To File", + "ToF ile", + "i oxid", + "iox id", + "@ RestController", + "Ġ\" $(", + "Ġ\"$ (", + "Ġ <<\"", + "Ġ< <\"", + "Ġ<< \"", + "Ġdef ects", + "Ġdefe cts", + "Ġdefect s", + "Ġ datum", + "Ġd atum", + "Ġdat um", + "h in", + "hi n", + "Ġreal izar", + "Ġrealiz ar", + "Ġrealiza r", + "any ahu", + "anya hu", + "Ġ Sig", + "ĠS ig", + "ĠSi g", + "@ Data", + "ad aptive", + "ada ptive", + "adapt ive", + "ĠC atherine", + ". cr", + ".c r", + "Ġ COOKIE", + "ĠCO OKIE", + "Ġ pictured", + "Ġp ictured", + "Ġpicture d", + "Ġpict ured", + "ĠF ighter", + "ĠFight er", + "Query able", + "Ġ Anyway", + "ĠAny way", + "ĠGL FW", + "_ namespace", + "_n amespace", + "_name space", + "_names pace", + "_ ft", + "_f t", + "Ġ ])", + "Ġ] )", + "O rganization", + "Organ ization", + "Ġconstit utes", + "Ġconstitu tes", + "Ġconstitute s", + "Ġqu and", + "Ġqua nd", + "Ġquan d", + "( chunk", + "(ch unk", + "\" />čĊ", + "\"/ >čĊ", + "\"/> čĊ", + "ĠL akes", + "ĠLa kes", + "ĠLake s", + "ĠLak es", + "main window", + "Car thy", + "Cart hy", + "s pin", + "sp in", + "spi n", + "( csv", + "(c sv", + "(cs v", + ": red", + ":r ed", + "- commerce", + "-com merce", + "-comm erce", + "ภ¹", + "Ġdis covering", + "Ġdiscover ing", + "Ġ eco", + "Ġe co", + "Ġec o", + "_ fac", + "_f ac", + "_fa c", + "ince ton", + "inc eton", + "ĠGreen s", + "ĠGre ens", + "ĠGree ns", + "j wt", + "Ø µ", + "ĠBron cos", + "Ġ Goods", + "ĠG oods", + "ĠGo ods", + "ĠGood s", + "( GTK", + "(G TK", + "Ġ returnValue", + "Ġreturn Value", + "Ġsi empre", + "Ġne utr", + "Ġneu tr", + "Ġneut r", + "w ent", + "we nt", + "wen t", + "ĠN atal", + "ĠNa tal", + "ĠNat al", + "Ġenthusi astic", + "Ġenthusiast ic", + "á» į", + "F N", + "/ database", + "/d atabase", + "/data base", + "/dat abase", + "C atalog", + "Cat alog", + "Ġb run", + "Ġbr un", + "Ġbru n", + "ĠK ash", + "ĠKa sh", + "ĠKas h", + "_ Pl", + "_P l", + "isc rim", + ", width", + ",w idth", + "Ġin mates", + "Ġinmate s", + "Ass ignment", + "Assign ment", + "ĠH aven", + "ĠHave n", + "ĠHa ven", + "ĠHav en", + "Ġplay ground", + "ex am", + "@ Controller", + "ul iar", + "uli ar", + "ulia r", + ". getParent", + ".get Parent", + ".getP arent", + "Ġ \";ĊĊ", + "Ġ\" ;ĊĊ", + "Ġ\";Ċ Ċ", + "Ġ\"; ĊĊ", + ": size", + ":s ize", + "iss ors", + "issor s", + "Ġf is", + "Ġfi s", + "Ġ alc", + "Ġa lc", + "Ġal c", + "ens ation", + "ensa tion", + "ĠN ixon", + "ĠNi xon", + "Ġ mighty", + "Ġmight y", + "- str", + "-s tr", + "-st r", + "_ special", + "_s pecial", + "_sp ecial", + "_spec ial", + "_ ADC", + "_A DC", + "_AD C", + "Ġ Twig", + "ĠT wig", + "ĠTw ig", + "um bling", + "umb ling", + "- address", + "-add ress", + "-ad dress", + "Ġher oin", + "Ġhero in", + "Y TE", + "YT E", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĊ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ċ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĊ", + "F riend", + "Fri end", + "Ġ ave", + "Ġa ve", + "Ġav e", + "Ġ PNG", + "ĠP NG", + "ĠPN G", + "ĠKur dish", + "ĠKurd ish", + "DataSet Changed", + "Ġbl ades", + "Ġblade s", + "Ġbla des", + "b ral", + "br al", + "bra l", + "S team", + "St eam", + "Ste am", + "Ġs igu", + "Ġsi gu", + "Ġsig u", + "IRT UAL", + "a cos", + "ac os", + "aco s", + "U DP", + "UD P", + "( database", + "(d atabase", + "(data base", + "(dat abase", + "h ec", + "he c", + "Ġ Strings", + "ĠString s", + "ĠStr ings", + "_ scalar", + "_s calar", + "_sc alar", + "_scal ar", + "ĉ desc", + "ĉd esc", + "ĉdes c", + "ĉde sc", + "Ġ TLS", + "ĠT LS", + "ĠTL S", + "; \"Ċ", + ";\" Ċ", + "ĠCor byn", + "Simple Name", + "u ell", + "ue ll", + "uel l", + "Ġ Entre", + "ĠEn tre", + "ĠEnt re", + "ĠEntr e", + "ell ites", + "ellite s", + "elli tes", + "- place", + "-p lace", + "-pl ace", + "Ġfrank ly", + "ĠE rf", + "ĠEr f", + "C EL", + "CE L", + "Ġpa ÃŃs", + "Ġh edge", + "Ġhe dge", + "Ġhed ge", + "Ġ latent", + "Ġla tent", + "Ġlate nt", + "Ġlat ent", + "Ġlaten t", + "Ġ IRQ", + "ĠIR Q", + "ĠH erald", + "ĠHer ald", + "ĠHera ld", + "Ġ Prec", + "ĠP rec", + "ĠPr ec", + "ĠPre c", + "ë³ ´", + ". TEXT", + ".T EXT", + "S alary", + "Sal ary", + "Ġaut umn", + "Ġtr avail", + "Ġtra vail", + "Ġtrav ail", + "Ġtrava il", + ". Sum", + ".S um", + "Ġc ared", + "Ġcar ed", + "Ġca red", + "Ġcare d", + "M or", + "Mo r", + "Ġint uitive", + "Ġintuit ive", + "Ġj ournals", + "Ġjournal s", + "_ IT", + "_I T", + "Ġ Trou", + "ĠT rou", + "ĠTr ou", + "ĠTro u", + "ä¼ ł", + "Has ColumnName", + "Com posite", + "Comp osite", + "Ġsp ice", + "Ġspi ce", + "_ disk", + "_d isk", + "_dis k", + "_di sk", + "_CODE S", + "_CO DES", + "_COD ES", + "Ġ Introduced", + "ĠInt roduced", + "ĠIntro duced", + "i ona", + "ion a", + "io na", + "Ġn uestra", + "Ġnue stra", + "Ġnuest ra", + "Ġnues tra", + "o ct", + "oc t", + "ĠĠĠĠ ĊĠĠĠĠĊĠĠĠĠĊ", + "ĠĠĠĠĊ ĠĠĠĠĊĠĠĠĠĊ", + "ĠĠĠĠĊĠĠĠĠĊ ĠĠĠĠĊ", + "( parameter", + "(param eter", + "(para meter", + "Ġst udios", + "Ġstud ios", + "Ġstudio s", + "Ġstudi os", + "Ġ projectId", + "Ġproject Id", + "Ġbd sm", + ".Sql Client", + "im izer", + "imize r", + "imi zer", + "imiz er", + "Ġ CARD", + "ĠC ARD", + "ĠCA RD", + "ĠCAR D", + "+ t", + "a an", + "aa n", + ". sol", + ".s ol", + ".so l", + "_ Adjust", + "_Ad just", + "Ġright eous", + "Ġ Logging", + "ĠLog ging", + ". filters", + ".f ilters", + ".filter s", + ".fil ters", + "_ TAB", + "_T AB", + "_TA B", + "ĉ sys", + "ĉs ys", + "rop hic", + "roph ic", + "o therapy", + "other apy", + "Ġ Browse", + "ĠB rowse", + "ĠBrow se", + "key board", + "R ON", + "RO N", + "+ \\", + "r opped", + "ro pped", + "rop ped", + "ropp ed", + "Ġext ensively", + "Ġextensive ly", + "f k", + "Ġ lime", + "Ġl ime", + "Ġli me", + "Ġlim e", + "y ears", + "year s", + "ye ars", + "E xc", + "Ex c", + "Ġs ph", + "Ġsp h", + "Ġch eating", + "Ġche ating", + "Ġcheat ing", + "an dro", + "and ro", + "andr o", + "ÃŃ o", + "Ġpr ince", + "Ġpri nce", + "Ġprin ce", + "Ġprinc e", + "o ire", + "oi re", + "oir e", + "Ġ Destination", + "ĠD estination", + "ĠDest ination", + "ĠCon verts", + "ĠConvert s", + "ĠConv erts", + "Ġup stream", + "o led", + "ol ed", + "ole d", + "Ġserv ants", + "Ġservant s", + "Ġ semantic", + "Ġsem antic", + "Ġcr unch", + "Ġeven tual", + "Ġevent ual", + "r unner", + "run ner", + "/ error", + "/e rror", + "S pin", + "Sp in", + "Spi n", + "Ġsecret ly", + "Ġ assemble", + "Ġas semble", + "Ġass emble", + ". Person", + ".P erson", + ".Per son", + "end error", + "ender ror", + "ende rror", + "_ <", + "Ġp endant", + "Ġpend ant", + "S leep", + "ĠChem istry", + "Ġboss es", + "Ġbos ses", + "l k", + ") )),Ċ", + ")) ),Ċ", + "))) ,Ċ", + "))), Ċ", + "Block ly", + "DE VICE", + "DEV ICE", + "Ġreflect ing", + "Ġ ample", + "Ġam ple", + "Ġampl e", + "Ġamp le", + "M illiseconds", + "Mill iseconds", + "ĠPres idential", + "ĠPresident ial", + "Ġ usuarios", + "Ġus uarios", + "Ġusuario s", + "Ġusu arios", + "Ġ NZ", + "ĠN Z", + "Ġ Salary", + "ĠS alary", + "ĠSal ary", + "ĠSala ry", + "ĠA manda", + "ĠAm anda", + "ĠAma nda", + "_ np", + "_n p", + "j ury", + "ju ry", + "jur y", + "Ġk ön", + "Ġkö n", + "Ġther apist", + "Ġtherap ist", + "Ġhom osexual", + "Ġhomosex ual", + "Ġhomo sexual", + "ĠDr ake", + "ĠDra ke", + "- window", + "-w indow", + "Ġ Located", + "ĠLoc ated", + "ĠLocate d", + ". Driver", + ".D river", + "Ġ VIDEO", + "ĠV IDEO", + "ĠVID EO", + "Ġmer chants", + "Ġmerch ants", + "Ġmerchant s", + "ĠC hest", + "ĠCh est", + "ĠChe st", + "ĠChes t", + "- lock", + "-l ock", + "-lo ck", + "/ php", + "/p hp", + "/ph p", + "Ġmil ano", + "Ġmilan o", + "_ STYLE", + "_ST YLE", + "ar ger", + "arg er", + "arge r", + "i dea", + "id ea", + "ide a", + "G UID", + "GUI D", + "GU ID", + "ad vanced", + "adv anced", + "advance d", + "me al", + "Options ItemSelected", + "= '%", + "=' %", + "ĠC ham", + "ĠCh am", + "ĠCha m", + ": data", + ":d ata", + "( stat", + "(s tat", + "(st at", + "Will Appear", + "Ġinf ormal", + "Ġinform al", + "a ji", + "aj i", + "Ġre productive", + "Ġrepro ductive", + "Ġ CAS", + "ĠC AS", + "ĠCA S", + "ãģ £", + "F UNC", + "FUN C", + "FU NC", + "ĠR uth", + "ĠRu th", + "ĠRut h", + ") +(", + ")+ (", + "CON ST", + "CO NST", + "CONS T", + "Ġ Fans", + "ĠF ans", + "ĠFa ns", + "ĠFan s", + "Ġ groupId", + "Ġgroup Id", + "x ffffffff", + "xf fffffff", + "xff ffffff", + "xffff ffff", + "xffffff ff", + "Ġs ampler", + "Ġsample r", + "Ġsam pler", + "Ġsamp ler", + "Ġ}} \">", + "Ġ}}\" >", + ". the", + ".t he", + ".th e", + "Ġh ollow", + "Ġhol low", + "W AY", + "WA Y", + "Ġ Faculty", + "ĠFac ulty", + "Attrib utedString", + "Ġ Looks", + "ĠL ooks", + "ĠLo oks", + "ĠLook s", + "ĠR ex", + "ĠRe x", + "j k", + "ĠM IL", + "ĠMI L", + "Ġ bard", + "Ġb ard", + "Ġbar d", + "Ġba rd", + ". Long", + ".L ong", + ".Lo ng", + "Ġli vest", + "Ġlive st", + "Ġlives t", + "Ġliv est", + "Ġs kal", + "Ġsk al", + "Ġska l", + "ic ism", + "ici sm", + "M AIN", + "MA IN", + "Ġmuch o", + "Ġmu cho", + "Ġmuc ho", + "B ODY", + "BO DY", + "Ġ ese", + "Ġe se", + "Ġes e", + "ĉ use", + "ĉu se", + "ĉus e", + "F oot", + "Foo t", + "Fo ot", + ". SQLException", + ".SQL Exception", + "Ġin heritance", + "Ġinherit ance", + "re ceived", + "receive d", + "rece ived", + "Ġp utas", + "Ġput as", + "Ġpu tas", + "Ġputa s", + "e dis", + "ed is", + "edi s", + "a lsa", + "al sa", + "als a", + "Ġ ErrorMessage", + "ĠError Message", + "Bo oking", + "Book ing", + "Ġ tract", + "Ġt ract", + "Ġtr act", + "Ġtra ct", + "a cz", + "ac z", + "ĠC ant", + "ĠCan t", + "ĠCa nt", + "_ regex", + "_reg ex", + "Ġide ological", + "Ġj ihad", + "Ġji had", + "Ġjih ad", + "h os", + "ho s", + "/ sys", + "/s ys", + "co lm", + "col m", + "( pool", + "(p ool", + "(po ol", + "Ġest án", + "Ġestá n", + "Ġ Pending", + "ĠP ending", + "ĠPen ding", + "ĠPend ing", + "em ás", + "Ġktó ry", + ") );ĊĊĊ", + ")) ;ĊĊĊ", + "));Ċ ĊĊ", + "));ĊĊ Ċ", + ")); ĊĊĊ", + "trans actions", + "transaction s", + "Ġw ield", + "Ġwie ld", + "Ġwi eld", + "Ġwiel d", + "i tere", + "it ere", + "ite re", + "iter e", + "er ture", + "ert ure", + "_ ss", + "_s s", + "Ġstretch ing", + "Ġstret ching", + "Ġpr isoner", + "Ġprison er", + "Ġpris oner", + ".Read All", + "Ġb esch", + "Ġbe sch", + "Ġbes ch", + "-- ;čĊ", + "--; čĊ", + "Ġcr isp", + "Ġcri sp", + "Ġcris p", + "_ SCAN", + "_S CAN", + "_SC AN", + "Ġ ae", + "Ġa e", + "Str ict", + "ĠMin neapolis", + "ĠBo eing", + "a ris", + "ar is", + "ari s", + "r ek", + "re k", + "_ pipe", + "_p ipe", + "_pi pe", + "Ġpri ests", + "Ġpriest s", + "( EIF", + "(E IF", + "eh icles", + "ehicle s", + "Ġ Interactive", + "ĠInter active", + "b etween", + "bet ween", + "ĉNull Check", + "ĠBl air", + "Ġ Lt", + "ĠL t", + "_ inline", + "_in line", + "eth yl", + " ¼", + "_ packages", + "_p ackages", + "_package s", + "_pack ages", + "Ġbar rels", + "Ġbarrel s", + "Ġbarr els", + "_ he", + "_h e", + "Ġ regexp", + "Ġreg exp", + "Ġregex p", + "_ pts", + "_p ts", + "_pt s", + "_ Handler", + "_H andler", + "_Handle r", + "ing ular", + "ingu lar", + "ĠN issan", + "ĠR anch", + "ĠRan ch", + "Ġper ch", + "Ġpe rch", + "Ġperc h", + "Un supported", + "S mith", + "Sm ith", + "ĠLeg ends", + "ĠLegend s", + "M i", + "Ġ gf", + "Ġg f", + "st eder", + "ste der", + "sted er", + "Ġac quiring", + "Ġacqu iring", + "Ġs imulator", + "Ġsim ulator", + "Ġsimul ator", + "( ),\"", + "() ,\"", + "(), \"", + "re ceive", + "rece ive", + "Ġin place", + "Ġinp lace", + "A CTION", + "AC TION", + "ACT ION", + "Ġ WebDriver", + "ĠWeb Driver", + "file system", + "files ystem", + "< Order", + "l open", + "lo pen", + "lop en", + "lope n", + "Ġ HEIGHT", + "ĠHE IGHT", + ".set Border", + "į °", + "__ [\"", + "__[ \"", + "Ġ clamp", + "Ġc lamp", + "Ġcl amp", + "Ġclam p", + "Ġcla mp", + "Seg oe", + "b ands", + "ba nds", + "ban ds", + "band s", + "to List", + "am ba", + "amb a", + "> '+Ċ", + ">' +Ċ", + ">'+ Ċ", + "Ġ credible", + "Ġcred ible", + "a mat", + "am at", + "ama t", + "pl aying", + "play ing", + "pla ying", + ".setImage Resource", + "q uel", + "qu el", + "que l", + "Ġpo dr", + "Ġpod r", + "ge om", + "geo m", + "E k", + "ĠQ atar", + "Ġg eld", + "Ġge ld", + "Ġgel d", + "? ',Ċ", + "?' ,Ċ", + "?', Ċ", + "Ġc yl", + "Ġcy l", + "( ax", + "(a x", + "Ġ WI", + "ĠW I", + "ur ally", + "ural ly", + "ĠBr asil", + "ĠBra sil", + "ĠBras il", + "Ġs enza", + "Ġsen za", + "a ley", + "al ey", + "ale y", + "o nen", + "on en", + "one n", + "Ġ bah", + "Ġb ah", + "Ġba h", + "Ġm olecule", + "Ġmolec ule", + "R ad", + "Ra d", + "è¿ °", + "AN CH", + "ANC H", + "- background", + "-back ground", + "- agent", + "-a gent", + "-ag ent", + "-age nt", + "Ġprol ifer", + ": boolean", + "Ġt ide", + "Ġti de", + "Ġtid e", + "erial izer", + "erialize r", + "_ ;čĊ", + "_; čĊ", + "F ee", + "Fe e", + "* *)", + "** )", + "er gy", + "erg y", + "ĠH onor", + "ĠHon or", + "ĠHo nor", + ". Logging", + ".Log ging", + "i ris", + "ir is", + "iri s", + "Ġunder mine", + "Ġundermin e", + "ĠD y", + "Ġt yr", + "Ġty r", + "Ġ deque", + "Ġde que", + "Ġd amer", + "Ġda mer", + "Ġdam er", + "Ġdame r", + "( [])Ċ", + "([ ])Ċ", + "([] )Ċ", + ".layout ControlItem", + ".layoutControl Item", + "p eated", + "pe ated", + "peat ed", + "C AN", + "CA N", + "ra gments", + "rag ments", + "ragment s", + "L and", + "La nd", + ") ]);Ċ", + ")] );Ċ", + ")]) ;Ċ", + "ĠS ah", + "ĠSa h", + "Ġ DECL", + "ĠDE CL", + "ĠDEC L", + "With in", + "Wi thin", + "Ġ Namespace", + "ĠN amespace", + "ĠName space", + "ĠNames pace", + "an other", + "ano ther", + "semb ling", + "sem bling", + "sembl ing", + ". describe", + ".de scribe", + ".des cribe", + "Con sum", + "Cons um", + "Ġ Fear", + "ĠF ear", + "ĠFe ar", + "g iven", + "gi ven", + "give n", + "O range", + "Or ange", + "< boolean", + " This", + ">T his", + "Ġdata Index", + "Ġprint able", + "Ġprin table", + "ĠE yes", + "ĠEye s", + "ĠEy es", + "_ targets", + "_target s", + "_tar gets", + "( Py", + "(P y", + ". over", + ".o ver", + ".ov er", + "Ġ bru", + "Ġb ru", + "Ġbr u", + "am pton", + "amp ton", + "Ġplaint iff", + "< Key", + " );Ċ", + ">) ;Ċ", + "in vest", + "inv est", + ". *ĊĊ", + ".* ĊĊ", + ".*Ċ Ċ", + "Ġt élé", + "Ġté lé", + "Ġsu perf", + "Ġsuper f", + "Ġ cascade", + "Ġc ascade", + "Ġcas cade", + "Ġcasc ade", + "D TD", + "DT D", + "Ġv ivid", + "Ġvi vid", + "Ġviv id", + "Ġsubsid ies", + "Ġsubsidi es", + "ĠH ass", + "ĠHas s", + "ĠHa ss", + "Ġcol laps", + "Ġcoll aps", + "Ġcer amic", + "{ }\".", + "{} \".", + "ĠLeak age", + "- trash", + "-tr ash", + "-tra sh", + "c ollapsed", + "coll apsed", + "collapse d", + "- social", + "-s ocial", + "-so cial", + "ĠC had", + "ĠCh ad", + "ĠCha d", + "Ġinc lined", + "Ġincl ined", + "Ġ sto", + "Ġs to", + "Ġst o", + "Ġstory board", + ". payment", + ".p ayment", + ".pay ment", + "stack overflow", + "ĠRa iders", + "ĠRaid ers", + "ĠRaider s", + "ĠRai ders", + "Ġ #'", + "Ġ# '", + "ol icies", + "olic ies", + "oli cies", + "ìľ¼ ë¡ľ", + "e map", + "em ap", + "ema p", + "Ġ kj", + "Ġk j", + "Ġ quota", + "Ġqu ota", + "Ġquot a", + "Ġquo ta", + "ĠGar dens", + "ĠGarden s", + "ĠGard ens", + "ë² Ī", + "ĠAng els", + "ĠAnge ls", + "ĠAngel s", + "Ġ oft", + "Ġo ft", + "Ġof t", + "Ġlower case", + "Ġ iParam", + "Ġi Param", + "ĠiP aram", + "Ġche apest", + "Ġcheap est", + "un ta", + "unt a", + "_ pkt", + "_p kt", + "_pk t", + "ic ators", + "ica tors", + "icator s", + "Ġ leurs", + "Ġl eurs", + "Ġle urs", + "Ġleur s", + "Ġdecre ases", + "Ġdecrease s", + "ĉ define", + "ĉdef ine", + "ĉde fine", + "P REC", + "PR EC", + "PRE C", + "am mers", + "amm ers", + "ammer s", + "Ġ PreparedStatement", + "ĠPre paredStatement", + "ĠPrepared Statement", + "( direction", + "(d irection", + "(dir ection", + "(di rection", + "Ġcr ews", + "Ġcre ws", + "Ġcrew s", + "ar ked", + "ark ed", + "ĠMem phis", + "Ġ Sell", + "ĠS ell", + "ĠSe ll", + "ĠSel l", + "G TK", + "GT K", + "Ġ maid", + "Ġm aid", + "Ġma id", + "Ġmai d", + ": disable", + ":d isable", + "éĽ Ĩ", + "ĠP f", + "Ġal beit", + "op enh", + "open h", + "ope nh", + "?> \">Ċ", + "?>\" >Ċ", + ". getSource", + ".get Source", + ".getS ource", + "( scale", + "(s cale", + "(sc ale", + "D u", + "ĠP IL", + "ĠPI L", + "_ refresh", + "_re fresh", + "_ref resh", + "Ġb ets", + "Ġbe ts", + "Ġbet s", + "( car", + "(c ar", + "(ca r", + "ĠV on", + "ĠVo n", + "| --------------------------------------------------------------------------Ċ", + "ĠG rat", + "ĠGr at", + "ĠGra t", + "M uch", + "Mu ch", + "( Dialog", + "(D ialog", + ".stop Propagation", + "Ġ tek", + "Ġt ek", + "Ġte k", + "Ġex its", + "Ġexit s", + "' ],$", + "'] ,$", + "'], $", + "Ġ phoneNumber", + "Ġphone Number", + "u cs", + "uc s", + "e cimal", + "ec imal", + "eci mal", + "- -------------", + "-- ------------", + "---- ----------", + "-------- ------", + "--- -----------", + "------------ --", + "----- ---------", + "---------- ----", + "------ --------", + "----------- ---", + "------------- -", + "------- -------", + "--------- -----", + "i np", + "in p", + ".po jo", + "Ġcor pus", + "Ġcorp us", + "Ġpractition ers", + "Ġpractitioner s", + ". pic", + ".p ic", + ".pi c", + "\" testing", + "Ġstring By", + ". NotNull", + ".Not Null", + "Ġ rang", + "Ġr ang", + "Ġran g", + "Ġra ng", + ". Dynamic", + ".D ynamic", + "_ Render", + "_R ender", + "_Re nder", + "а ÑĤа", + "аÑĤ а", + "Wait ing", + "Wa iting", + "Ġ Wik", + "ĠW ik", + "ĠWi k", + "Ġoverwhel med", + "Ġoverwhelm ed", + "% \">", + "%\" >", + "Ġ AE", + "ĠA E", + "} }>Ċ", + "}} >Ċ", + "}}> Ċ", + "u w", + "_ typ", + "_t yp", + "_ty p", + "Ġ buckets", + "Ġb uckets", + "Ġbucket s", + "Ġbuck ets", + "Ġg reeting", + "Ġgre eting", + "Ġgreet ing", + "Ġ laughter", + "Ġla ughter", + "Ġlaugh ter", + "Ġant agon", + "ugg estion", + "uggest ion", + "- email", + "-e mail", + "-em ail", + "ĉ top", + "ĉt op", + "ĉto p", + "Ġ eros", + "Ġe ros", + "Ġer os", + "Ġero s", + "_ tri", + "_t ri", + "_tr i", + "Ġiss uing", + "Ġissu ing", + "Ġ há", + "Ġh á", + "Ġis olate", + "Ġisol ate", + "Ġiso late", + "Over flow", + ", E", + "Ġnut ritional", + "Ġnutrition al", + "Ġnutrit ional", + "ĠAbb ott", + "Ġ nf", + "Ġn f", + ". touch", + ".t ouch", + ".to uch", + ".fetch all", + "_ zip", + "_z ip", + "\" )}Ċ", + "\") }Ċ", + "\")} Ċ", + "Ġ amat", + "Ġa mat", + "Ġam at", + "Ġama t", + "Ġ Cisco", + "ĠC isco", + "Ġn Ã¥", + "P LEX", + "PL EX", + "PLE X", + "Ġ sei", + "Ġs ei", + "Ġse i", + "f oto", + "fo to", + ". toJson", + ".to Json", + "å¤ ļ", + "ĠK lein", + "ĠKle in", + "ĠKl ein", + "Ġ libc", + "Ġli bc", + "Ġlib c", + "Ġm iners", + "Ġmin ers", + "Ġmi ners", + "Ġmine rs", + "Ġminer s", + "å ¢", + "- print", + "-p rint", + "-pr int", + "ĠP ride", + "ĠPr ide", + "ĠPri de", + "T odos", + "To dos", + "Todo s", + "Ġ masked", + "Ġmask ed", + "Ġmas ked", + "Ġ setData", + "Ġset Data", + "Ġtele fon", + "Ġtel efon", + "Ġun happy", + "Ġunh appy", + "Ġ Tables", + "ĠT ables", + "ĠTable s", + "ĠTab les", + "ĠTa bles", + "g eb", + "ge b", + "( debug", + "(de bug", + "_ allowed", + "_all owed", + "_allow ed", + "- access", + "-a ccess", + "-ac cess", + "Ġlog istics", + "Ġlogistic s", + "Ġ gems", + "Ġg ems", + "Ġge ms", + "Ġgem s", + "ĠM ature", + "ĠMat ure", + "ĠMa ture", + "Ġ rsp", + "Ġr sp", + "Ġrs p", + "Ġ Alle", + "ĠA lle", + "ĠAl le", + "ĠAll e", + ". getBytes", + ".get Bytes", + ".getBy tes", + "\\ web", + "ynchron ized", + "ynchronize d", + "Par agraph", + "Para graph", + "Ġth rottle", + "Ġthr ottle", + "Ġthrott le", + ". sqlite", + ".sql ite", + "cons ulta", + "consult a", + "ĠS eah", + "ĠSe ah", + "ĠSea h", + "C e", + "Ġsub mar", + "E RE", + "ER E", + "V ous", + "Vo us", + "Ġ reddit", + "Ġre ddit", + "Ġred dit", + "Ġredd it", + "Ġsql alchemy", + "- mile", + "-m ile", + "oc ide", + "oci de", + "P our", + "Po ur", + "} }\">Ċ", + "}} \">Ċ", + "}}\" >Ċ", + "st ead", + "ste ad", + "Ġ @(", + "Ġ@ (", + "Ġ [])", + "Ġ[ ])", + "Ġ[] )", + "Ġ Ads", + "ĠA ds", + "ĠAd s", + "Ġover load", + "Ġoverl oad", + "r idden", + "ri dden", + "rid den", + "ĠDe sert", + "ĠDes ert", + "Ġ Wrap", + "ĠW rap", + "ĠWr ap", + "ĠPortug uese", + "e tz", + "et z", + "ĉ first", + "ĉf irst", + "ĉfi rst", + "Ġm ilestone", + "Ġmil estone", + "Ġmiles tone", + "Ġmile stone", + "æĹ ł", + "Ñĥ Ñī", + "( success", + "(s uccess", + "< Vector", + " \")Ċ", + ">\" )Ċ", + ">\") Ċ", + "ĠD ollar", + "ĠDol lar", + "ĠDoll ar", + "Ġ emoji", + "Ġem oji", + "Ġemo ji", + "Car ousel", + "- player", + "-p layer", + "-play er", + "-pl ayer", + "Ġadjust ing", + "Ġadj usting", + "Ġj uga", + "Ġju ga", + "Ġjug a", + "allenge s", + "alleng es", + "allen ges", + "g ene", + "ge ne", + "gen e", + "(body Parser", + "lo pedia", + "lop edia", + "lope dia", + "Ġ Behind", + "ĠBe hind", + "ĠBeh ind", + "Ġslee ves", + "Ġsleeve s", + "Ġdrag ging", + "ĠChe vrolet", + "Ġ biz", + "Ġb iz", + "Ġbi z", + "iv ities", + "ivi ties", + "Ġ Frequency", + "ĠF requency", + "ĠFrequ ency", + ", char", + ",c har", + ",ch ar", + ". WHITE", + ".W HITE", + "_ preview", + "_p review", + "_pr eview", + "_pre view", + "_prev iew", + ") ';Ċ", + ")' ;Ċ", + "_ ax", + "_a x", + "I ONS", + "ION S", + "IO NS", + ". cpu", + ".c pu", + ".cp u", + ". inputs", + ".in puts", + ".input s", + "U BE", + "UB E", + "_ feed", + "_f eed", + "_fe ed", + "_fee d", + "ĠSup plement", + "! ).", + "!) .", + "e sus", + "es us", + "Ġ UDP", + "ĠU DP", + "ĠUD P", + "Ġmicro phone", + "Ġconf irms", + "Ġconfirm s", + ".is NotEmpty", + "\" :\"\",Ċ", + "\": \"\",Ċ", + "\":\" \",Ċ", + "\":\"\" ,Ċ", + "_ SCREEN", + "_S CREEN", + "_SC REEN", + "ĉ expected", + "ĉex pected", + "ĉexpect ed", + "ĉexp ected", + "+-+- +-+-", + "ĠH ait", + "ĠHa it", + "ĠHai t", + "fast call", + "Ġdep ict", + "v b", + "_ picture", + "_p icture", + "_pic ture", + "ĉ description", + "ĉd escription", + "ĉdes cription", + "ĉde scription", + "ĠW ife", + "ĠWi fe", + "u ci", + "uc i", + "Ġv icious", + "Ġvic ious", + "ä» ĸ", + "u eba", + "ue ba", + "Ġset User", + "ãģ ¡", + "Ġd iving", + "Ġdi ving", + "Ġdiv ing", + "Ġop era", + "Ġoper a", + "user content", + "a rah", + "ar ah", + "ara h", + ") },", + ")} ,", + "y un", + "yu n", + "v elt", + "ve lt", + "vel t", + "Ġun covered", + "Ġuncover ed", + "Ġ hips", + "Ġh ips", + "Ġhi ps", + "Ġhip s", + "Ġosc ill", + "Ġassert ing", + "Ġ Xi", + "ĠX i", + ". restore", + ".re store", + ".rest ore", + "k ea", + "ke a", + "Ġsp elling", + "Ġspell ing", + "Ġspel ling", + "Ġ derive", + "Ġde rive", + "Ġder ive", + "Ġderiv e", + "ab we", + "ĠD ow", + "ĠDo w", + ". setType", + ".set Type", + "_ vs", + "_v s", + "Ġc ozy", + "Ġco zy", + "Ġcoz y", + ". categories", + ".c ategories", + "O rg", + "Or g", + "_ mgr", + "_m gr", + "Ġd ungeon", + "Ġdung eon", + "collection View", + "Ġ Blank", + "ĠBl ank", + "ac ias", + "aci as", + "acia s", + "ä ä", + "_ cleanup", + "_c leanup", + "_clean up", + "_ACT IVITY", + "_ACTIV ITY", + "Ġtri angles", + "Ġtriangle s", + "Ġtriang les", + ". MenuItem", + ".Menu Item", + "Ġ iphone", + "Ġi phone", + "Ġip hone", + "Ġ Won", + "ĠW on", + "ĠWo n", + "] ]ĊĊ", + "]] ĊĊ", + "]]Ċ Ċ", + "Ġ Comparison", + "ĠCom parison", + "ĠCompar ison", + ". Doc", + ".D oc", + ".Do c", + "Ġ canonical", + "Ġcan onical", + "Ġcanon ical", + "ĠSu dan", + "ĠSud an", + "' ){", + "') {", + "Up Inside", + "b uiltin", + "built in", + "E NCY", + "EN CY", + "ENC Y", + "x be", + "xb e", + "Ġch uck", + "Ġchu ck", + "Ġcontrad ict", + "Ġcontra dict", + "Ġnu estro", + "Ġnue stro", + "Ġnuest ro", + "Ġnues tro", + "Ġarchitect ural", + "ĠF ib", + "ĠFi b", + "Ġcomp ares", + "Ġcompar es", + "Ġcompare s", + "* k", + "C fg", + "çĦ ¡", + "n ten", + "nt en", + "nte n", + "M atches", + "Match es", + "Mat ches", + "Ġ DOWNLOAD", + "ĠDOWN LOAD", + "_HANDLE R", + "_HAND LER", + "man agement", + "manage ment", + "mana gement", + "[ S", + "E NG", + "EN G", + "ÂĢ Â", + "f ang", + "fa ng", + "fan g", + "Ġsl ipped", + "Ġslip ped", + "ĠL anka", + "ĠLan ka", + "esc aping", + "Ġtack les", + "Ġtackle s", + "ĠPe dro", + "ĠPed ro", + ". Prop", + ".P rop", + ".Pro p", + ".Pr op", + ". ''", + ".' '", + ". Generated", + ".G enerated", + ".Generate d", + ".New Guid", + "at rigesimal", + "il lon", + "ill on", + "illo n", + "Ġstat istic", + "Ġstatist ic", + "s pecies", + "sp ecies", + "spec ies", + "spe cies", + "h olding", + "hold ing", + "hol ding", + "Dr upal", + "Ġfundament ally", + "Ġfundamental ly", + "Ġbond age", + "Ġres olutions", + "Ġresolution s", + "Inline Data", + "\\ Type", + "es tion", + "est ion", + "esti on", + ". wrap", + ".w rap", + ".wr ap", + "Ġwar riors", + "Ġwarrior s", + "Ġ LOCAL", + "ĠLO CAL", + "ĠLOC AL", + "A rchive", + "Arch ive", + "Arc hive", + "Ġembr aced", + "Ġembrace d", + "á» §", + ". Ver", + ".V er", + "ĠAff ordable", + "ole sale", + "oles ale", + "Ġ Applied", + "ĠApp lied", + "ĠAp plied", + "ĠAppl ied", + "Ġ Conversion", + "ĠCon version", + "ĠConv ersion", + "ĠConvers ion", + "m ega", + "me ga", + "meg a", + "_ cam", + "_c am", + "_ca m", + "Ġcer emon", + "Ġcere mon", + "a urus", + "au rus", + "aur us", + "ĠV olk", + "ĠVol k", + "ĠVo lk", + ". opens", + ".open s", + ".op ens", + "/ about", + "/a bout", + "Ġ Std", + "ĠS td", + "ĠSt d", + "j ournal", + "jo urnal", + "jour nal", + "( )){čĊ", + "() ){čĊ", + "()) {čĊ", + "()){ čĊ", + ", \"\\", + ",\" \\", + "( Arrays", + "(Array s", + "ĠD ense", + "ĠDen se", + "ase ña", + "än ner", + "änn er", + "/ stat", + "/s tat", + "/st at", + "user Data", + "Ġg erman", + "Ġger man", + "Ġgerm an", + "Ġ tz", + "Ġt z", + "w orthy", + "worth y", + "wort hy", + "wor thy", + "Format Exception", + "ph erd", + "pher d", + "phe rd", + "Ġsm iles", + "Ġsmile s", + "Ġ Whenever", + "ĠWh enever", + "ĠWhen ever", + "ĠWhe never", + "( adapter", + "(ad apter", + ".bad logic", + "Ġbrief ing", + ". GridColumn", + ".Grid Column", + "- char", + "-c har", + "-ch ar", + "d imension", + "dim ension", + "ĠC opper", + "ĠCo pper", + "ĠCop per", + "ĠCopp er", + "Ġn inth", + "Ġni nth", + "Ġnin th", + "Ġ' {{", + "Ġ'{ {", + "Ġ rav", + "Ġr av", + "Ġra v", + "_ Table", + "_T able", + "_Tab le", + "Ġderiv atives", + "Ġderivative s", + "Ġ Raise", + "ĠR aise", + "ĠRa ise", + "ĠRai se", + "ĠF ut", + "ĠFu t", + "ar mor", + "arm or", + "- padding", + "-p adding", + "-pad ding", + "Ġre min", + "Ġr emin", + "Ġrem in", + "ĉ style", + "ĉst yle", + "Ġ Membership", + "ĠMember ship", + "ĠMembers hip", + "Ġsp reads", + "Ġspread s", + "Ġspre ads", + "Ġg alleries", + "Ġgall eries", + "ĠClark e", + "ĠClar ke", + "Ġcon ception", + "Ġconcept ion", + "Ġconce ption", + "min ute", + "Ġab usive", + "_ adj", + "_a dj", + "_ad j", + "Ġterr ific", + "Ġo vert", + "Ġover t", + "Ġov ert", + "our cing", + "Ġ entrada", + "Ġent rada", + "Ġentr ada", + "Ġentra da", + "level s", + "lev els", + "Ġcrit ique", + "Ġres pects", + "Ġrespect s", + "Ġresp ects", + "ĠM MA", + "ĠMM A", + "i ene", + "ie ne", + "ien e", + "Ġen caps", + "Ġenc aps", + "ĠRay mond", + "Div ider", + "Di vider", + "i vable", + "iv able", + "iva ble", + "b az", + "ba z", + "Ġ@ _;Ċ", + "Ġ@_ ;Ċ", + "ĠCl aire", + "ĠCla ire", + "ĠClair e", + "Ġur ging", + "Ġurg ing", + "C EE", + "CE E", + "Ġtrans former", + "Ġtransform er", + "dis cord", + "disc ord", + "ĠJ ourney", + "t os", + "to s", + "Ġcompet itions", + "Ġcompetition s", + "Ġcompetit ions", + "Ġ OBJ", + "ĠO BJ", + "ĠOB J", + "ĠB is", + "ĠBi s", + "Ġrelax ation", + "i dy", + "id y", + "_ INSTANCE", + "_IN STANCE", + "_INST ANCE", + "Ġ Pref", + "ĠP ref", + "ĠPr ef", + "ĠPre f", + "d ados", + "da dos", + "dad os", + "ici encies", + "ĠMedia Query", + "Ġ Cube", + "ĠC ube", + "ĠCub e", + "ĠCu be", + "Ġ Strange", + "ĠSt range", + "ĠStr ange", + "ĠStra nge", + "g pu", + "gp u", + "( days", + "(d ays", + "(day s", + "(da ys", + "_ InitStruct", + "_Init Struct", + "Ġf ingerprint", + "Ġfinger print", + "e mat", + "em at", + "ema t", + "ĠG ecko", + "ĠGe cko", + "Ġ rails", + "Ġr ails", + "Ġrail s", + "Ġra ils", + "ĠL um", + "ĠLu m", + "s traction", + "st raction", + "str action", + "stract ion", + "stra ction", + "ig ung", + "igu ng", + "( movie", + "(m ovie", + "_ dictionary", + "_d ictionary", + "_ interrupt", + "_int errupt", + "_inter rupt", + "Ġ QC", + "ĠQ C", + "i ked", + "ik ed", + "ike d", + "append Child", + "rec ipient", + "r é", + "V e", + "Ġt owel", + "Ġto wel", + "Ġtow el", + ".last IndexOf", + "Ġplace bo", + "Ġplac ebo", + "Ġ Wie", + "ĠW ie", + "ĠWi e", + ". esp", + ".e sp", + ".es p", + "( Debug", + "oper ative", + "Ġde ceased", + "Ġdece ased", + "& id", + "ĉ mutex", + "ĉm utex", + "e lic", + "el ic", + "eli c", + "Ġb apt", + "Ġba pt", + "ĉ čĊčĊ", + "ĉčĊ čĊ", + "Ġfar ther", + "Ġfart her", + "H alf", + "Ha lf", + "Hal f", + ". disable", + ".d isable", + ".dis able", + ".menu Strip", + "le ccion", + "lec cion", + "Ġ resultCode", + "Ġresult Code", + "Ġc ans", + "Ġcan s", + "Ġca ns", + "- election", + "-e lection", + "-elect ion", + "-el ection", + "f emale", + "fe male", + "_ FIX", + "_F IX", + "aus ible", + "Ġ POWER", + "ĠP OWER", + "ĠPO WER", + "ĠPOW ER", + "Ġre construction", + "Ġrecon struction", + "Ġreconstruct ion", + "Ġsc ans", + "Ġscan s", + "Ġsca ns", + ".Xtra Bars", + "âĢĺ s", + "Re moved", + "Rem oved", + "Remove d", + "Ġpara graphs", + "Ġparagraph s", + "_ margin", + "_m argin", + "_mar gin", + "Ġl ymph", + "Ġly mph", + "Ġ bos", + "Ġb os", + "Ġbo s", + "l ington", + "ling ton", + "ĠBapt ist", + "Ġadvertis ements", + "Ġadvertisement s", + "Ġadvertise ments", + "Ġ Manage", + "ĠMan age", + "ĠMa nage", + "ĠMana ge", + "/ yyyy", + "/y yyy", + "I OUS", + "IO US", + "EN CES", + "ENCE S", + "ENC ES", + "ĠF iction", + "ĠFi ction", + "ĉ menu", + "ĉm enu", + "ĉme nu", + "ĠFile OutputStream", + "o van", + "ov an", + "ova n", + "ĠF eng", + "ĠFe ng", + "ĠFen g", + "Ġsk ipping", + "Ġskip ping", + "Ġski pping", + "get Class", + "getC lass", + "an ni", + "ann i", + "Ġre bounds", + "Ġreb ounds", + "Ġrebound s", + "Ġpublic ity", + "Ġpub licity", + "Ġpubli city", + "Ġin gres", + "Ġing res", + "Ġingr es", + "us ement", + "use ment", + "Ġthought ful", + ". Chart", + ".C hart", + ".Ch art", + ".Char t", + "Ġh atte", + "Ġha tte", + "Ġhat te", + "pass port", + "pas sport", + "Ġhook ed", + "Ġho oked", + "Ġ Lens", + "ĠL ens", + "ĠLe ns", + "ĠLen s", + "Ġflag ship", + "Ġflags hip", + "Ġs tip", + "Ġst ip", + "Ġ GEN", + "ĠG EN", + "ĠGE N", + "Ġcl ues", + "Ġclue s", + "i pv", + "ip v", + "ĠR ise", + "ĠRi se", + "ĠRis e", + "ĠG ew", + "ĠGe w", + "table name", + "tab lename", + "tabl ename", + "Ġfore most", + "_ validate", + "_valid ate", + "_ analysis", + "_an alysis", + "o lla", + "ol la", + "oll a", + "Ġqual ifications", + "Ġqualification s", + "Ġd istributions", + "Ġdistrib utions", + "Ġdistribution s", + "ĠF lower", + "ĠFl ower", + "ĠFlo wer", + "ĠFlow er", + "Ġt ense", + "Ġten se", + "Ġtens e", + "Ġthank ful", + "Ġcl utch", + "Ġun ified", + "ro ads", + "road s", + "Ġs iti", + "Ġsit i", + "Ġsi ti", + "Ġst all", + "Ġsta ll", + "Ġstal l", + "_P RIORITY", + "_PRI ORITY", + "c stdlib", + "_ USERNAME", + "_USER NAME", + ". bytes", + ".by tes", + ".byte s", + "? page", + "?p age", + "er malink", + "erm alink", + "ermal ink", + "ĠVe get", + "ĠVeg et", + "/v nd", + "- author", + "-a uthor", + "-auth or", + "-aut hor", + ". NONE", + ".N ONE", + ".NO NE", + "ĠCon current", + "ĠConc urrent", + "ĠC ry", + "ĠCr y", + "Ġst arters", + "Ġstart ers", + "Ġstar ters", + "Ġstarter s", + "Ġ Interaction", + "ĠInter action", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "Ġ LEVEL", + "ĠLE VEL", + "E ll", + "El l", + "Ġ comboBox", + "Ġcom boBox", + "Ġcombo Box", + "ĠThe resa", + "ĠTh eresa", + "ĠThere sa", + "ĠTher esa", + "t ek", + "te k", + "_ Handle", + "_H andle", + "Ġ aby", + "Ġa by", + "Ġab y", + ".g dx", + ", end", + ",e nd", + ",en d", + "( Local", + "(L ocal", + "O l", + "kn ife", + "a rial", + "ar ial", + "ari al", + "aria l", + "ĠH off", + "ĠHo ff", + "ĠHof f", + "Ġprostituer ade", + "Do ctor", + "Doc tor", + "In stances", + "Instance s", + "Inst ances", + ". SetValue", + ".Set Value", + "ĉ from", + "ĉf rom", + "ĉfr om", + "Ġlux urious", + "In dent", + "Ind ent", + "Al locator", + "All ocator", + "Alloc ator", + "_ DRAW", + "_D RAW", + "_DR AW", + "(\" ,\",", + "(\", \",", + "(\",\" ,", + "ĠF rances", + "ĠFr ances", + "ĠFrance s", + "ĠFranc es", + "ĠFra nces", + "ĠFran ces", + "Ġ groupBox", + "Ġgroup Box", + "( schema", + "(s chema", + "Print f", + "O RIES", + "OR IES", + "- gradient", + "-g radient", + "Ġre put", + "Ġrep ut", + "a rin", + "ar in", + "ari n", + "_ DONE", + "_D ONE", + "_DO NE", + "in cre", + "inc re", + "incr e", + "ig nty", + "ign ty", + "Ġex ert", + "Ġexe rt", + "Ġ -.", + "Ġ- .", + "/ App", + "/A pp", + "- through", + "-th rough", + "Ġdec lining", + "Ġdecl ining", + "Ġdes sert", + "Ġdess ert", + "Ġinc umb", + "Ġ designation", + "Ġdesign ation", + ". PORT", + ".P ORT", + ".PO RT", + ", strong", + ",str ong", + ",st rong", + "Ġ sandbox", + "Ġs andbox", + "Ġsand box", + "Ġw ines", + "Ġwin es", + "Ġwine s", + "Ġwi nes", + "ĠP av", + "ĠPa v", + "$ str", + "$s tr", + "ask ell", + "Ġh ö", + "Ġ PY", + "ĠP Y", + "Get Instance", + "Text Input", + "game Object", + "/ events", + "/e vents", + "/event s", + "created At", + "Ġlocal Var", + "Ġ WHITE", + "ĠW HITE", + "ĠWH ITE", + "p ered", + "pe red", + "per ed", + "i lege", + "ile ge", + "eff icient", + ", color", + ",c olor", + ",col or", + "c ate", + "ca te", + "cat e", + "ĠC afe", + "ĠCa fe", + "ĠCaf e", + "Ġsimilar ities", + "Ġp umps", + "Ġpump s", + "Ġpu mps", + "ĠHun gary", + "ĠHung ary", + ". Username", + ".User name", + "Ġs kate", + "Ġsk ate", + "Ġska te", + "Ġtouchdown s", + "Ġacceler ate", + "Ġaccel erate", + "ĠH elen", + "ĠHe len", + "ĠHel en", + "O MEM", + "OM EM", + "OME M", + "ĠK un", + "ĠKu n", + "_ vol", + "_v ol", + "Ġ findAll", + "Ġfind All", + "ĠMens chen", + "a head", + "ah ead", + ") ;\"", + "); \"", + "k ommen", + "kom men", + "Ġposs essed", + "Ġpossess ed", + ".arg max", + ". transition", + ".t ransition", + ".trans ition", + "A RP", + "AR P", + "OL UME", + "OLUM E", + "( script", + "(s cript", + "Ġ Ðĺ", + "ĠÐ ĺ", + "Ġ Finding", + "ĠF inding", + "ĠFin ding", + "ĠFind ing", + "o nces", + "on ces", + "once s", + "I o", + "B old", + "Bo ld", + "Ġrenew al", + "_D IALOG", + "Ġdis reg", + "IN TERN", + "INT ERN", + "INTER N", + "Ġt oute", + "Ġto ute", + "Ġtou te", + "Ġtout e", + "Ġelect r", + "Ġele ctr", + "ĠG ross", + "ĠGr oss", + "ĠGro ss", + "ĠGros s", + "ĉ true", + "ĉtr ue", + ". Fields", + ".F ields", + ".Field s", + "Ġ WIDTH", + "ĠW IDTH", + "ĠD ent", + "ĠDe nt", + "ĠDen t", + "Ġ Ãģ", + "Ġà ģ", + "NS Notification", + "Ġ aos", + "Ġa os", + "Ġao s", + "Ġme lee", + "Ġmel ee", + ". Validation", + ".Valid ation", + "Ġ DEC", + "ĠD EC", + "ĠDE C", + "- dependent", + "-depend ent", + "Ġsu ic", + "Ġsui c", + "T raits", + "Tr aits", + "Tra its", + "Trait s", + "$ message", + "$m essage", + "Ġ Dear", + "ĠD ear", + "ĠDe ar", + "ĉ FILE", + "ĉF ILE", + "l anguages", + "language s", + ". Prot", + ".P rot", + ".Pro t", + ".Pr ot", + ". addr", + ".add r", + ".ad dr", + "- generation", + "-g eneration", + "-gen eration", + "I CON", + "IC ON", + "ICO N", + "Ġtrans plant", + "- description", + "-d escription", + "-de scription", + "-des cription", + "Ġch asing", + "Ġcha sing", + "Ġch ees", + "Ġche es", + "Ġ }*/Ċ", + "Ġ} */Ċ", + "T rad", + "Tr ad", + "Tra d", + "qu eries", + "que ries", + "quer ies", + "/ widgets", + "/widget s", + "sub package", + "Ġe spec", + "Ġes pec", + "Ġesp ec", + "Ġcr acked", + "Ġcrack ed", + "Ġcompet itor", + "Ġcompetit or", + "P urchase", + "- team", + "-t eam", + "-te am", + "ole cular", + "olec ular", + "or Thunk", + "& P", + "Ġrel ent", + "Ġrele nt", + "/ #{", + "/# {", + "Ġ productId", + "Ġproduct Id", + "Ġ è¾", + "Ġè ¾", + "ĠL av", + "ĠLa v", + "Ġ Alter", + "ĠAl ter", + "ĠAlt er", + ". Mode", + ".M ode", + ".Mod e", + "AD IO", + "ADI O", + "g rp", + "gr p", + "æ ·»åĬł", + "æ·» åĬł", + "Q uit", + "Qu it", + "Qui t", + "Ġdep ths", + "Ġdepth s", + "Ġdept hs", + "- category", + "-c ategory", + "Ġ DATABASE", + "ĠD ATABASE", + "ĠDATA BASE", + "S PELL", + "SP ELL", + "ĠF alcon", + "ĠFal con", + "ĠQString List", + "Ġ ''.", + "Ġ' '.", + "Ġ'' .", + "ĠIn stitution", + "ĠInst itution", + "ĠInstit ution", + "ĠInstitut ion", + "d amage", + "da mage", + "dam age", + "az or", + "azo r", + "bel ongsTo", + "belongs To", + "ver ages", + "verage s", + "Ġ NONE", + "ĠN ONE", + "ĠNO NE", + "ĠNON E", + "ip pets", + "ipp ets", + "ippet s", + ", \\Ċ", + ",\\ Ċ", + "Ġfoot print", + "_ archive", + "_a rchive", + "_arch ive", + "_arc hive", + "n ak", + "na k", + ". getField", + ".get Field", + "Ġ Reflection", + "ĠRef lection", + "ĠReflect ion", + "Ġ ']", + "Ġ' ]", + "ĠH BO", + "ĠHB O", + "_ discount", + "_dis count", + "_disc ount", + "Ġin cest", + "Ġinc est", + "Ġince st", + "ĠD odge", + "ĠDo dge", + "ĠDod ge", + "ĠW ade", + "ĠWa de", + ". NO", + ".N O", + "\" encoding", + "Ġ Blockchain", + "ĠBlock chain", + "Ġlaws uits", + "Ġlawsuit s", + "Ġ Maint", + "ĠM aint", + "ĠMain t", + "ĠMa int", + "ĠMai nt", + "ch ten", + "cht en", + "chte n", + "Ġét ait", + "Ġktó re", + "_ ctl", + "_c tl", + "_ct l", + "( timer", + "(t imer", + "(time r", + "(ti mer", + "B attle", + "Bat tle", + "i zo", + "iz o", + "ay ed", + "aye d", + "I OR", + "IO R", + "ĠGlas gow", + "Ġs ynth", + "Ġsy nth", + "Ġsyn th", + "Ġsynt h", + "_ logs", + "_l ogs", + "_log s", + "_lo gs", + ". pose", + ".p ose", + ".pos e", + ".po se", + "_Adjust orThunk", + "( (&", + "(( &", + "Ġun sure", + "Ġuns ure", + "Ġunsur e", + "y state", + "yst ate", + "íķĺ ëĬĶ", + "O ULD", + "OU LD", + ". ng", + ".n g", + "Ġdefault dict", + "work space", + "works pace", + "Ġselect ive", + "Ġsel ective", + "Picker Controller", + "YNAM IC", + ". methods", + ".method s", + "Ġpath ways", + "Ġpathway s", + "Ġ Few", + "ĠF ew", + "ĠFe w", + "K G", + "C RYPT", + "CRY PT", + "follow ing", + "ĠD LC", + "ĠDL C", + "ĠS ara", + "ĠSar a", + "ĠSa ra", + "Ġ preset", + "Ġp reset", + "Ġpre set", + "Ġpres et", + "e structor", + "estr uctor", + "estruct or", + "ĠK urt", + "ĠKur t", + "ĠKu rt", + "Ġair plane", + "Ġ omp", + "Ġo mp", + "Ġom p", + "Ġ Parents", + "ĠPar ents", + "ĠParent s", + "ĠParen ts", + "ĠPare nts", + "ĠMart inez", + "ĠMartin ez", + ". complete", + ".com plete", + ".comp lete", + "Ġbroad ly", + "Ġs care", + "Ġsc are", + "Ġsca re", + "Ġscar e", + "ĠM é", + "Ġelim ination", + "Ġelimin ation", + "Ġp oured", + "Ġpo ured", + "Ġpour ed", + "Ġpou red", + "/ sw", + "/s w", + "Ġcom un", + "Ġco mun", + "Ġm asc", + "Ġma sc", + "Ġmas c", + "ĠOrgan ic", + "ĠOrg anic", + "Ġ StringUtils", + "ĠString Utils", + "ĠStringUtil s", + "il ateral", + "ilate ral", + "ilater al", + "Ġreluct ant", + "- age", + "-a ge", + "-ag e", + "Ġ nz", + "Ġn z", + ". \"\\", + ".\" \\", + "Ġpast or", + "Ġpas tor", + "Ġpa stor", + "a lez", + "al ez", + "ale z", + "Ġe fect", + "Ġef ect", + "p rov", + "pr ov", + "pro v", + "/ init", + "/i nit", + "/in it", + "Ġp enn", + "Ġpe nn", + "Ġpen n", + "u nds", + "un ds", + "und s", + "Ġ ssize", + "Ġs size", + "Ġss ize", + "Ġ Proj", + "ĠP roj", + "ĠPro j", + "ĠPr oj", + "b asename", + "base name", + "bas ename", + "Ġsh ells", + "Ġshell s", + "Ġshel ls", + "ĠN eck", + "ĠNe ck", + "ĠNec k", + "ĠEn forcement", + "v ided", + "vid ed", + "vi ded", + "vide d", + "s town", + "st own", + "sto wn", + "S phere", + "Sp here", + "$ r", + "us sen", + "uss en", + "a fil", + "af il", + "afi l", + "Ġ Telegram", + "ĠTele gram", + "Ġanaly tical", + "Ġanalytic al", + "н Ñĭе", + "нÑĭ е", + "us ually", + "usu ally", + "usual ly", + "x n", + "Ġhistor ian", + "Ġhist orian", + "Ġhistoria n", + "Ġhisto rian", + "ĠGreg ory", + "ol ph", + "Ġ Una", + "ĠU na", + "ĠUn a", + "Ġcon tributes", + "Ġcontrib utes", + "Ġcontribute s", + "% -", + "anti ago", + "ÑĢ ед", + "ÑĢе д", + ". region", + ".reg ion", + "Ġab rupt", + "ĠUnsupported OperationException", + "Ġ TASK", + "ĠT ASK", + "ĠTA SK", + "ĠTAS K", + "_ finish", + "_f inish", + "_fin ish", + "Ġnot orious", + "Ġ Vs", + "ĠV s", + "Ġ MQ", + "ĠM Q", + "Ġs unset", + "Ġsun set", + "Ġun acceptable", + "ar cer", + "arc er", + "Ġill umin", + "Ġillum in", + "ĠO rb", + "ĠOr b", + "Ġ bh", + "Ġb h", + "E ste", + "Est e", + "Es te", + "_ dispatch", + "_dis patch", + "_disp atch", + "Ġr ipped", + "Ġrip ped", + "Ġri pped", + "Ġtou jours", + "Ġ Parcel", + "ĠPar cel", + "_ ll", + "_l l", + ". userName", + ".user Name", + ". classes", + ".c lasses", + ".class es", + ".cl asses", + "S OURCE", + "( Number", + "(N umber", + "е лÑı", + "ел Ñı", + "Ġhead phones", + "Ġheadphone s", + "( side", + "(s ide", + "(si de", + "(sid e", + "con stitution", + "const itution", + "an nah", + "ann ah", + "anna h", + "čĊ ĠĠĠĠĠĠĠĠčĊ", + "Ġcl iff", + "Ġcli ff", + "- ref", + "-r ef", + "-re f", + "Ġmost rar", + "Ġmo strar", + "Ġmostr ar", + "Ġmostra r", + "ĠP owell", + "ĠPo well", + "ĠPow ell", + "+ y", + "Ġ BG", + "ĠB G", + "_ fragment", + "_f ragment", + "_fr agment", + "_frag ment", + ". Port", + ".P ort", + "Ġreal izing", + "Ġrealiz ing", + "param ref", + "Ġh ometown", + "Ġhome town", + "@ Table", + "+ \" --}}Ċ", + ">-- }}Ċ", + "F rench", + "Fr ench", + "Entity Manager", + "Ġ Plain", + "ĠP lain", + "ĠPl ain", + "ĠPla in", + "//// ////////////////////////////////////////////////////////////////", + "//////// ////////////////////////////////////////////////////////////", + "//////////////// ////////////////////////////////////////////////////", + "//////////////////////////////////////////////////////////////// ////", + "//////////// ////////////////////////////////////////////////////////", + "//////////////////////////////////////////////////////// ////////////", + "//////////////////////////////////////////////////////////// ////////", + "//////////////////////////////////////////////////// ////////////////", + " ³", + "( RE", + "(R E", + "c apt", + "ca pt", + "cap t", + "Ġ organisms", + "Ġorgan isms", + "Ġorganis ms", + "Ġorganism s", + "Ġ jets", + "Ġj ets", + "Ġje ts", + "Ġjet s", + "o location", + "ol ocation", + "olo cation", + "ĠApp RoutingModule", + "Ġgl orious", + "Ġglo rious", + "Ġglor ious", + "æľ į", + "Ġdisc arded", + "Ġdiscard ed", + "ĉ ĉĉĉĠĠĠĠĠ", + "ĉĉ ĉĉĠĠĠĠĠ", + "ĉĉĉĉ ĠĠĠĠĠ", + "ĉĉĉ ĉĠĠĠĠĠ", + "ĉĉĉĉĠ ĠĠĠĠ", + "ĉĉĉĉĠĠĠ ĠĠ", + "ĉĉĉĉĠĠ ĠĠĠ", + "ĉĉĉĉĠĠĠĠ Ġ", + "ĠArn old", + "l ug", + "lu g", + "Ġp arl", + "Ġpar l", + "Ġpa rl", + "Ġhorm ones", + "Ġhormone s", + "Ġ mah", + "Ġm ah", + "Ġma h", + "ĠS onic", + "ĠSo nic", + "ĠSon ic", + "Ġorgan izers", + "Ġorganiz ers", + "Ġorganize rs", + "Ġorganizer s", + "_ PLATFORM", + "_PL ATFORM", + ". inv", + ".in v", + ".i nv", + "Ġch ord", + "Ġcho rd", + "Ġchor d", + "vent ional", + "vention al", + "ĉ of", + "ĉo f", + "Ep isode", + ". Enum", + ".E num", + ".En um", + "un kt", + "unk t", + "ĠD h", + "ĠJ ared", + "ĠJa red", + "ĠJar ed", + "ĠN ak", + "ĠNa k", + "Ġint ends", + "Ġinte nds", + "Ġintend s", + "End ian", + "Ġa ustralia", + "_ cv", + "_c v", + "( resolve", + "(res olve", + "(re solve", + "Ġclin ics", + "Ġclinic s", + "l iked", + "li ked", + "like d", + "lik ed", + "ASH INGTON", + "in ha", + "inh a", + "' *", + "Ġ NP", + "ĠN P", + "_ beh", + "_b eh", + "_be h", + "Ġ hf", + "Ġh f", + "Ġw ür", + "c ategoria", + "$ form", + "$f orm", + "Ġsub way", + "Ġ isActive", + "Ġis Active", + "pop ular", + "C our", + "Co ur", + "Cou r", + "Ġ cooldown", + "Ġco oldown", + "Ġcool down", + "Ġa insi", + "Ġain si", + "Ġ GLuint", + "ĠGL uint", + "e real", + "ere al", + "erea l", + "Ġarray Of", + "Ġh atch", + "Ġhat ch", + "= =========", + "== ========", + "==== ======", + "======== ==", + "=== =======", + "========= =", + "====== ====", + "===== =====", + "======= ===", + "r esses", + "res ses", + "ress es", + "resse s", + "_ PP", + "_P P", + ". ^", + "_ decay", + "_dec ay", + "ĠB less", + "ĠBl ess", + "ĠBle ss", + "m etrics", + "met rics", + "metric s", + "ĠCOPY ING", + "ĠDump ster", + "ĠJos é", + "ĠDesign s", + "< Void", + "<", + "Ġ? ><", + "Ġ?> <", + "Ġ \"}Ċ", + "Ġ\" }Ċ", + "Ġ\"} Ċ", + "time zone", + "Ġ eer", + "Ġe er", + "Ġee r", + "max cdn", + "Ġ ESC", + "ĠE SC", + "ĠES C", + "ig aret", + "iga ret", + "igar et", + "_ connected", + "_connect ed", + "_conn ected", + "_ reverse", + "_re verse", + "_rev erse", + "Ġquestion able", + "ĠU SC", + "ĠUS C", + "Ġtu tti", + "Ġtut ti", + "Ġ dropout", + "Ġdrop out", + "Ġ Activities", + "ĠAct ivities", + "ĠActiv ities", + "ĠW inds", + "ĠWin ds", + "ĠWi nds", + "ĠWind s", + "' )));Ċ", + "') ));Ċ", + "')) );Ċ", + "'))) ;Ċ", + "Ġcon gest", + "Ġcong est", + "ÄŁ ı", + "Ġprolong ed", + "è¿ Ļ", + "ĠCross AxisAlignment", + "L EEP", + "LE EP", + "LEE P", + "Ġ VALID", + "ĠVAL ID", + "ĠG az", + "ĠGa z", + "Ġ dependence", + "Ġdepend ence", + "ĠP rix", + "ĠPr ix", + "ĠPri x", + ".Compiler Services", + "j ump", + "ju mp", + "Ġst rat", + "Ġstr at", + "Ġstra t", + "c irc", + "ci rc", + "cir c", + "Ġ CUSTOM", + "ĠC USTOM", + "x aa", + "xa a", + "Ġ bmp", + "Ġb mp", + "Ġbm p", + "Ġb ureau", + "Ġbu reau", + "Ġbure au", + "Ġw aren", + "Ġwar en", + "Ġwa ren", + "Ġware n", + "N X", + "( Window", + "(W indow", + "ĠChrist ie", + "ĠChris tie", + "_ FE", + "_F E", + "Ġ tn", + "Ġt n", + "Ġ Omega", + "ĠO mega", + "ĠOm ega", + "communic ations", + "communication s", + "Home Page", + "com pletion", + "comp letion", + "Ġsupply ing", + "Ġsuppl ying", + "Ġsupp lying", + "YPE S", + "YP ES", + "á vel", + "áv el", + "åĪ ¶", + "( click", + "(c lick", + "(cl ick", + "(cli ck", + "\\ Contracts", + "/ questions", + "/question s", + "Ġ ez", + "Ġe z", + "A MS", + "AM S", + ". mesh", + ".m esh", + ".me sh", + "Ġ' \\Ċ", + ">\\ Ċ", + "R obot", + "Rob ot", + "Ro bot", + "Json Object", + "Ġ DF", + "ĠD F", + "Ġ Processor", + "ĠProcess or", + "ĠProc essor", + "_ should", + "_sh ould", + ". protobuf", + ".prot obuf", + ".proto buf", + "- users", + "-user s", + "-use rs", + "-us ers", + "Ġemb ry", + "Ġembr y", + "F ONT", + "FO NT", + "Ġstart ups", + "Ġstartup s", + "Ġ DataSource", + "ĠData Source", + ") #", + "u ros", + "ur os", + "uro s", + "_ Color", + "_C olor", + "Ġst andalone", + "Ġstand alone", + "} [", + "j d", + "Ġfor give", + "Ġforg ive", + "Ġ ngx", + "Ġn gx", + "Ġng x", + "Ġ Generally", + "ĠGener ally", + "ĠGeneral ly", + "Ġconfig urable", + "Ġconfigur able", + "/ order", + "/or der", + "Ġ vas", + "Ġv as", + "Ġva s", + "' )\";Ċ", + "') \";Ċ", + "')\" ;Ċ", + "Ġ RR", + "ĠR R", + "ĠT roy", + "ĠTr oy", + "ĠTro y", + "Ġcomprom ised", + "Ġcompromise d", + "ĠS wan", + "ĠSw an", + "int endent", + "C entral", + "Cent ral", + "_ keeper", + "_k eeper", + "_ke eper", + "_keep er", + "Ġar quivo", + "Ġ ReadOnly", + "ĠRead Only", + "_ curve", + "_c urve", + "_cur ve", + "_cu rve", + "k v", + "en tin", + "ent in", + "enti n", + "è ±", + "Ġ Ey", + "ĠE y", + ".im read", + "ĠP am", + "ĠPa m", + "i ffe", + "if fe", + "iff e", + "at ivity", + "ativ ity", + "x bc", + "xb c", + "Ġ grim", + "Ġg rim", + "Ġgr im", + "Ġgri m", + "- filled", + "-f illed", + "-fill ed", + "name se", + "names e", + "nam ese", + "' ]:", + "'] :", + "Ġ aur", + "Ġa ur", + "Ġau r", + "ĠGi bson", + "ĠGib son", + ". MouseEvent", + ".Mouse Event", + "Ġl ado", + "Ġla do", + "Ġlad o", + "ava doc", + "avad oc", + "Ġf amil", + "Ġfam il", + "Ġfa mil", + "Ġ Moder", + "ĠM oder", + "ĠMod er", + "ĠMo der", + "ĠMode r", + "f ps", + "fp s", + "ãĢĢ ãĢĢ", + "- example", + "-ex ample", + "ĠAl zheimer", + "Ġ Utf", + "ĠU tf", + "ĠUt f", + "_ arguments", + "_arg uments", + "_argument s", + "Con clusion", + "text Content", + "rem aining", + "remain ing", + "rema ining", + "Ġinterrupt s", + "Ġ Backup", + "ĠBack up", + "ĠBac kup", + "ĠM ong", + "ĠMon g", + "ĠMo ng", + "Ġre ceptors", + "Ġrecept ors", + "Ġreceptor s", + "Ġrecep tors", + "h istor", + "hi stor", + "hist or", + "his tor", + ".cor outines", + "Ġsh outed", + "Ġshout ed", + "Ġsho uted", + "Al arm", + "Ġcomb ust", + "Ġg rote", + "Ġgr ote", + "Ġgro te", + "ult ural", + "ultur al", + "( ids", + "(i ds", + "(id s", + "---- ----------------------------------------------------------------------------", + "---------------- ----------------------------------------------------------------", + "-------------------------------- ------------------------------------------------", + "---------------------------------------------------------------- ----------------", + "------------------------------------------------ --------------------------------", + "---------- ----------------------------------------------------------------------", + "---------------------------------------------------------------------------- ----", + "---------------------------------------------------------------------- ----------", + "ipl inary", + "iplina ry", + "O pts", + "Op ts", + "Opt s", + "ĠY ale", + "ĠYa le", + "local Storage", + "Ġequ ival", + "Ġequiv al", + "ĠF leet", + "ĠFle et", + "\\ b", + "* pi", + "*p i", + "ĠQ Label", + "æ ¡", + "Ġ vx", + "Ġv x", + "Ġ ACL", + "ĠA CL", + "ĠAC L", + "Ġsu cesso", + "Ġsuc esso", + "Ġsucess o", + "Ġ perc", + "Ġp erc", + "Ġper c", + "Ġpe rc", + "ĠN otre", + "ĠNo tre", + "ĠNot re", + "Ġan arch", + "Ġana rch", + "R ing", + "s pb", + "sp b", + "Ġ strpos", + "Ġstr pos", + "st ores", + "store s", + "sto res", + "stor es", + "ĠMap le", + "ĠMa ple", + "( MainActivity", + "(Main Activity", + "(\" \"))", + "(\"\" ))", + "(\"\") )", + "Ġview Holder", + "Qu ad", + "Ġig ual", + "ors che", + "orsch e", + ". margin", + ".m argin", + ".mar gin", + "Ġin die", + "Ġind ie", + "Ġfr anc", + "Ġfra nc", + "Ġfran c", + "ĠForm Builder", + "ĠPart icip", + "ĠParti cip", + ". flash", + ".f lash", + ".fl ash", + "Ġ storms", + "Ġstorm s", + "Ġstor ms", + "Ġsto rms", + "U lt", + "Ul t", + "Ġ fen", + "Ġf en", + "Ġfe n", + "[ new", + "[n ew", + "E ver", + "Ev er", + "= \"Ċ", + "=\" Ċ", + "Ġ localized", + "Ġlocal ized", + "Ġlocalize d", + "_ follow", + "_f ollow", + "Ġ nave", + "Ġn ave", + "Ġna ve", + "Ġnav e", + "Ġdom inance", + "Ġdomin ance", + "Ġdomina nce", + "( tile", + "(t ile", + "(ti le", + "J ournal", + "Jo urnal", + "Ġ VC", + "ĠV C", + "Ġpen etration", + "Ġpenet ration", + "Ġpenetr ation", + "ï¼ ķ", + "Ġcom partment", + "Ġcomp artment", + "Ġcompart ment", + "Ġb ids", + "Ġbi ds", + "Ġbid s", + "Form atted", + "Format ted", + "**** **/ĊĊ", + "****** /ĊĊ", + "*** ***/ĊĊ", + "***** */ĊĊ", + "******/ ĊĊ", + "******/Ċ Ċ", + "( city", + "(c ity", + "(ci ty", + "âĢĶ it", + "[ C", + "Ġuse Callback", + "a ub", + "au b", + ") ?.", + ")? .", + "Ġ VAR", + "ĠV AR", + "ĠVA R", + "ĠSe bastian", + "ĠSebast ian", + "ĠM oss", + "ĠMo ss", + "ĠMos s", + "Ġabund ant", + "G reg", + "Gr eg", + "Gre g", + "ÑĤ а", + "_ ci", + "_c i", + "Ġb ibli", + "Ġbib li", + "C RM", + "CR M", + "Ġ Attempt", + "ĠAt tempt", + "ĠAtt empt", + "is me", + "ism e", + "d ash", + "da sh", + "das h", + "ãĢ İ", + "_ mu", + "_m u", + ".Formatting Enabled", + "Ind eed", + "- direct", + "-d irect", + "-dir ect", + "-di rect", + "Ġs ucking", + "Ġsuc king", + "Ġsuck ing", + "Ġp ne", + "Ġpn e", + "ocab ulary", + "ĠP ackers", + "ĠPac kers", + "ĠPack ers", + ". Navigation", + ".N avigation", + ".Nav igation", + "Ġp ied", + "Ġpie d", + "Ġpi ed", + "cri bing", + "ĠSt uart", + ".To Double", + "Ġ Secondary", + "ĠSecond ary", + "S aving", + "Sa ving", + "ĠD ut", + "ĠDu t", + "ĠM add", + "ĠMad d", + "ĠMa dd", + "M agic", + "Mag ic", + ", H", + ".document Element", + "Ġ BST", + "ĠB ST", + "ĠBS T", + "Ġdif fers", + "Ġdiffer s", + "Ġdiff ers", + "Ġmore over", + "_ nd", + "_n d", + "SE ARCH", + "п ÑĢав", + "пÑĢа в", + "пÑĢ ав", + "æ ´", + "to Match", + "Ġde creasing", + "Ġdecre asing", + "- member", + "-m ember", + "am pus", + "amp us", + "( boost", + "D aily", + "Da ily", + "Data GridView", + "Ġ HttpContext", + "ĠHttp Context", + "Ġh ipp", + "Ġhi pp", + "Ġhip p", + "_ workers", + "_work ers", + "_worker s", + "- language", + "-l anguage", + "é ĵ", + "Ġcons isted", + "Ġconsist ed", + "a thing", + "ath ing", + "athi ng", + "ĠMer cury", + "ĠMerc ury", + "$ content", + "$c ontent", + "$con tent", + "Ġpract iced", + "Ġpractice d", + "Ġ Modules", + "ĠMod ules", + "ĠModule s", + "_ DAY", + "_D AY", + "_DA Y", + "Ġweakness es", + "ĠL odge", + "ĠLo dge", + "ĠLod ge", + "Ġ nar", + "Ġn ar", + "Ġna r", + "Ġ Mate", + "ĠM ate", + "ĠMat e", + "ĠMa te", + "Ġ jp", + "Ġj p", + "ĠHttp Headers", + "Ġs mo", + "Ġsm o", + "Ġ TOKEN", + "ĠT OKEN", + "ĠTO KEN", + "ĠTOK EN", + "] )(", + "]) (", + "Ġa qui", + "Ġaqu i", + "sw agen", + "Ġ srv", + "Ġs rv", + "Ġsr v", + "ĉ ans", + "ĉa ns", + "ĉan s", + "A round", + "Ar ound", + "ĠMan uel", + "Ġfiction al", + "Ġfict ional", + "Ġ IMG", + "ĠI MG", + "ĠIM G", + "Ġ .'", + "Ġ. '", + "Ġ Berry", + "ĠB erry", + "ĠBer ry", + "Ġwall paper", + "s exual", + "sex ual", + "i ero", + "ie ro", + "ier o", + "Ġ çļĦ", + "ìĨ Į", + "Backing Field", + "ĠAd rian", + "ĠAdri an", + "BASE PATH", + "Ġre peats", + "Ġrepe ats", + "Ġrepeat s", + "Ġbl ues", + "Ġblue s", + "Ġun predict", + "Ġunp redict", + "_ coll", + "_c oll", + "_col l", + "_co ll", + "st acle", + "sta cle", + "Ġ Tumblr", + "ĠT umblr", + "Ġ Elf", + "ĠE lf", + "ĠEl f", + "Ġass urance", + "Ġc ensus", + "Ġcen sus", + "Ġ IMPORT", + "ĠIM PORT", + "ĠIMP ORT", + "E NDER", + "EN DER", + "END ER", + "a nos", + "an os", + "ano s", + "Ġ =(", + "Ġ= (", + "ĠEl lis", + "ĠEll is", + "ĠElli s", + "\" ĊĊĊĊ", + "\"Ċ ĊĊĊ", + "\"ĊĊ ĊĊ", + "\"ĊĊĊ Ċ", + ". win", + ".w in", + "Ġ Above", + "ĠA bove", + "ĠAb ove", + "a lon", + "al on", + "alo n", + "_ tick", + "_t ick", + "_ti ck", + "Ġrepresent ations", + "Ġrepresentation s", + "Ġ æķ", + "Ġæ ķ", + "w id", + "wi d", + "ĠA rms", + "ĠAr ms", + "ĠArm s", + "L ista", + "List a", + "Li sta", + "_ failure", + "_f ailure", + "_fail ure", + "_ cm", + "_c m", + ".Flat Appearance", + "Ġth rone", + "Ġthr one", + "Ġthro ne", + "P atch", + "Pat ch", + "ĠV oy", + "ĠVo y", + "en gl", + "eng l", + "Ġnegot iating", + "> `", + "Ġshoot s", + "Ġsho ots", + "Ġ FPS", + "ĠF PS", + "ĠFP S", + ". Year", + ".Y ear", + "ĠK iss", + "ĠKi ss", + "ĠKis s", + "en ción", + "enc ión", + "enci ón", + "re eting", + "ree ting", + "reet ing", + "From File", + "Ġresign ation", + "Ø ·", + "Ġt wins", + "Ġtw ins", + "Ġtwin s", + "Æ° ợ", + "Æ°á» £", + "Ġge bru", + "Ġgeb ru", + ". getContent", + ".get Content", + ".getC ontent", + ". Tree", + ".T ree", + ".Tr ee", + "Ġ Employees", + "ĠEmployee s", + "ĠEmploy ees", + "ĠF IFA", + "ĠFI FA", + "Ġc ertainty", + "Ġcert ainty", + "Ġcertain ty", + "( Cl", + "(C l", + "Ġ totals", + "Ġtot als", + "Ġtotal s", + "ed itable", + "edit able", + "edi table", + "ॠĢ", + ". Reporting", + ".Report ing", + "M as", + "Ma s", + "qu iet", + "qui et", + ". rules", + ".r ules", + ".ru les", + ".rule s", + "Ġ VO", + "ĠV O", + "con exion", + ", K", + "Ġ allocator", + "Ġal locator", + "Ġall ocator", + "Ġalloc ator", + "ĠPow der", + "\\ Repository", + "B eat", + "Be at", + "_ tipo", + "_t ipo", + "_tip o", + "_ti po", + "Ġ[ '',", + "Ġ[' ',", + "_ INTR", + "_IN TR", + "_INT R", + "Ġ <<<", + "Ġ< <<", + "Ġ<< <", + "< hr", + " \");čĊ", + ">\" );čĊ", + ">\") ;čĊ", + "drop IfExists", + "ĠB eg", + "ĠBe g", + "_ HAL", + "_H AL", + "Ġcross AxisAlignment", + "Ġ Evidence", + "ĠE vidence", + "ĠEv idence", + "Ġpec uliar", + "Ġin stitute", + "Ġinstit ute", + "ve is", + "Ġ fft", + "Ġf ft", + "Ġff t", + "à ģ", + "Ġzo ekt", + "Ġzoek t", + "an aly", + "ana ly", + "anal y", + "ĠHome land", + "ĠHom eland", + "Ġpen etr", + "Ġpenet r", + "udden ly", + "ĉ element", + "ĉe lement", + "ĉel ement", + "ĉelem ent", + "ĠB ren", + "ĠBr en", + "ĠBre n", + "ĠTr udeau", + "ĠCub an", + "ĠCu ban", + "ĠCuba n", + "j am", + "ja m", + "us lim", + "_ ev", + "_e v", + "Ġs tems", + "Ġst ems", + "Ġste ms", + "Ġstem s", + "} %", + "Ŀ å§ĭ", + "Ġbr anding", + "Ġbrand ing", + "Ġbran ding", + "Ġcorrespond ence", + ". jquery", + ".j query", + "¢ åįķ", + "ĠRe ads", + "ĠRead s", + "(Http StatusCode", + "(HttpStatus Code", + "as sin", + "ass in", + "assi n", + "( slot", + "(s lot", + "(sl ot", + "ĠGrad uate", + "// /<", + "/// <", + "Ġinformation s", + "Ġinform ations", + "Ġinformat ions", + "EN ABLE", + "ENA BLE", + "Ġp uis", + "Ġpu is", + "Ġ finder", + "Ġf inder", + "Ġfind er", + "Ġfin der", + "Ġfi nder", + "Ġfinde r", + "ĠB ris", + "ĠBr is", + "ĠBri s", + "Ġnett steder", + "_ mid", + "_m id", + "_mi d", + "Ġ ogs", + "Ġo gs", + "Ġog s", + "ĠSter ling", + "Ġar rog", + "Ġarr og", + "str ftime", + "| ĊĊ", + "|Ċ Ċ", + "Ġ vox", + "Ġv ox", + "Ġvo x", + "Ġ Regardless", + "ĠReg ardless", + "Ġ eso", + "Ġe so", + "Ġes o", + "Ġ Comfort", + "ĠCom fort", + ".Boolean Field", + "Ġ uh", + "Ġu h", + "A CY", + "AC Y", + "Ġsque ez", + "ĠV ic", + "ĠVi c", + "con tro", + "cont ro", + "contr o", + ". lo", + ".l o", + "Ġ ire", + "Ġi re", + "Ġir e", + "ĠCom edy", + "ĠCome dy", + "ë ¶", + "Ġorig inated", + "Ġorigin ated", + "Ġoriginate d", + "Ġ shipment", + "Ġsh ipment", + "Ġship ment", + "| max", + "|m ax", + "_ guid", + "_g uid", + "_gui d", + "le vation", + "lev ation", + "н аÑı", + "на Ñı", + "( undefined", + "(un defined", + "Ġ DDR", + "ĠD DR", + "ĠDD R", + "Ġshoot ings", + "Ġshooting s", + "ĠLat ino", + "ĠLatin o", + "END OR", + "Ġaver aging", + "Ġgre eted", + "Ġgreet ed", + "Ġthe aters", + "Ġtheater s", + "Ġtheat ers", + "о е", + "оРµ", + "Ġ dB", + "Ġd B", + "Ġ gst", + "Ġg st", + "Ġgs t", + "Ġde finite", + "Ġdef inite", + "Ġdefinit e", + "Ġdefin ite", + ". Storage", + ".St orage", + ". her", + ".h er", + ".he r", + "Ġa fore", + "Ġaf ore", + "Ġ Reality", + "ĠRe ality", + "ĠReal ity", + "ĠG ods", + "ĠGod s", + "ĠGo ds", + "v ersed", + "ver sed", + "vers ed", + "verse d", + "Ġhand some", + "Ġhands ome", + "Ġ excluding", + "Ġex cluding", + "Ġexcl uding", + "( ad", + "(a d", + "Qu otes", + "Quote s", + "Ġ Scheme", + "ĠS cheme", + "ĠSch eme", + "ĠSche me", + "? q", + "ĠT amil", + "ĠTa mil", + "ĠTam il", + "T icks", + "Tick s", + "Ti cks", + "Ġ pest", + "Ġp est", + "Ġpe st", + "Ġpes t", + "' n", + "Ġporn ography", + "_ modal", + "_m odal", + "_mod al", + "_mo dal", + "Ġ ----------", + "Ġ- ---------", + "Ġ-- --------", + "Ġ---- ------", + "Ġ--- -------", + "Ġ----- -----", + "Ġ------ ----", + "Ġ-------- --", + "Ġ------- ---", + "Ġ--------- -", + "Ġd isposable", + "Ġdis posable", + "Ġdispos able", + "F REE", + "FR EE", + "Ġsh ark", + "Ġsha rk", + "Ġshar k", + "C HE", + "CH E", + "Ġdep icted", + "Ġdepict ed", + "Ġdemonstr ations", + "Ġdemonstration s", + "ĠK illed", + "ĠKill ed", + "ĠKil led", + "Ġ RULE", + "ĠR ULE", + "ĠRU LE", + "Ġobs essed", + "Ġobsess ed", + "Ġs implified", + "Ġsimpl ified", + "Post al", + "Pos tal", + "Po stal", + "Ġconcept ual", + "Ġ pst", + "Ġp st", + "Ġps t", + "L as", + "La s", + "_ PROJECT", + "_PRO JECT", + "uc ceeded", + "ucceed ed", + "o lu", + "ol u", + "ÄŁ i", + "Ġpersonal ities", + "Ġ reshape", + "Ġre shape", + "Ġres hape", + "Ġresh ape", + "Ġen closed", + "Ġenc losed", + "ĉ ptr", + "ĉp tr", + "ĉpt r", + "Ġt utorials", + "Ġtutorial s", + "Ġtutor ials", + "Ġexpl oded", + "Ġexplo ded", + "Ġexplode d", + "_ DIRECTORY", + "_DIRECT ORY", + "åĨħ 容", + "Ġc anon", + "Ġcan on", + "Ġca non", + "Ġrecogn ise", + "P AD", + "PA D", + "Ġ Approx", + "ĠApp rox", + "ĠAp prox", + "ĠAppro x", + "Ġ Restore", + "ĠRe store", + "ĠRest ore", + "Ġ Important", + "ĠImport ant", + "Ġhe avier", + "Ġheav ier", + ". Sequential", + ".Se quential", + "E arth", + "Ear th", + "ĠM ilk", + "ĠMil k", + "ĠMi lk", + ".set Request", + ". tem", + ".t em", + ".te m", + "Ġre construct", + "Ġrecon struct", + "Ġskept ical", + "Ġskeptic al", + "_ Private", + "_Pr ivate", + "B UF", + "BU F", + "q ua", + "qu a", + ": a", + "Ġ sek", + "Ġs ek", + "Ġse k", + "Ġd well", + "Ġdw ell", + "o ssa", + "os sa", + "oss a", + "Ġreward ed", + "Ġrew arded", + "и й", + "( topic", + "(t opic", + "(to pic", + "(top ic", + "_ partition", + "_part ition", + "Ġ__ ________________", + "Ġ______ ____________", + "Key words", + "Keyword s", + "ĠFr anco", + "ĠFranc o", + "ĠFran co", + "L ite", + "Li te", + "Lit e", + "Ġn aken", + "Ġna ken", + "Ġnak en", + "Ġ за", + "Ġз а", + "O BJECT", + "OB JECT", + "OBJ ECT", + "Ġcraft s", + "Ġcra fts", + "Ġ Swap", + "ĠS wap", + "ĠSw ap", + ".X na", + ". Connect", + ".Con nect", + ".Conn ect", + "Ġbalcon y", + "( real", + "(re al", + "ĠBar nes", + "ĠBarn es", + "b ir", + "bi r", + "Ġ Twenty", + "ĠTw enty", + "ĠTwe nty", + "a yan", + "ay an", + "aya n", + "at ars", + "ata rs", + "atar s", + "ĠPro pel", + "ĠProp el", + "ĠIh nen", + "Up grade", + "Ġc urb", + "Ġcur b", + "Ġcu rb", + "- second", + "-se cond", + "Ġn eph", + "Ġne ph", + "Ġnep h", + ". pres", + ".p res", + ".pre s", + ".pr es", + "ìŀ ħ", + ". seq", + ".s eq", + ".se q", + "Ġp added", + "Ġpad ded", + "Ġpadd ed", + "\" ?", + "j l", + "ãĥ ¬", + "' ) a", + "Co ordinates", + "Coordinate s", + "Ġen acted", + "Ġenact ed", + "EN TS", + "ENT S", + "Ġ lac", + "Ġl ac", + "Ġla c", + ". final", + ".f inal", + ".fi nal", + ".fin al", + "ĠPhp Storm", + "c alled", + "cal led", + "call ed", + "Ġin quiries", + ". middleware", + ".m iddleware", + ".middle ware", + "ĠD owntown", + "ĠDown town", + "/ ';Ċ", + "/' ;Ċ", + "Ġkil omet", + "ac cel", + "acc el", + "Ġqu ien", + "Ġq uien", + "Ġqui en", + "w string", + "ws tring", + "set Data", + "Ġman era", + "Ġmane ra", + "Ġmod ular", + "r imp", + "ri mp", + "rim p", + "Ġtar iffs", + "Ġtariff s", + "Ġtarif fs", + "âĢĻ il", + "âĢĻi l", + "_TH ROW", + "/ color", + "/c olor", + "/co lor", + "Ġ HTMLElement", + "ĠHT MLElement", + "ĠHTML Element", + "Ġc arro", + "Ġcar ro", + "Ġcarr o", + "Ġpr ere", + "Ġpre re", + "Ġprer e", + "Ġplot ting", + "Ġ Positive", + "ĠPos itive", + "ĠM achines", + "ĠMachine s", + "ĠMach ines", + "O TES", + "OT ES", + "OTE S", + "á» Ľ", + "ple asant", + "Ġ alte", + "Ġa lte", + "Ġal te", + "Ġalt e", + "Ġa inda", + "Ġai nda", + "Ġain da", + "th ese", + "the se", + "thes e", + "Ġ cors", + "Ġc ors", + "Ġco rs", + "Ġcor s", + "i pay", + "ip ay", + "ipa y", + "ĠAdv isory", + "ĠAdvis ory", + "ĠAdvisor y", + "ĠRub io", + "ĠRu bio", + "j q", + "Ġl imestone", + "Ġlim estone", + "Ġlime stone", + "Ġdet ached", + "Ġdetach ed", + "设 ç½®", + "t enant", + "te nant", + "ten ant", + "Ġ Depth", + "ĠDe pth", + "ĠDep th", + "ĠDept h", + "a lore", + "al ore", + "alo re", + "ĠÑģÑĤ ÑĢок", + "ĠÑģÑĤÑĢ ок", + "ĠÑģÑĤÑĢо к", + "Ġ FORE", + "ĠF ORE", + "ĠFOR E", + "ĠFO RE", + "ĠL ay", + "ĠLa y", + "p resentation", + "present ation", + ") ');Ċ", + ")' );Ċ", + ".sub plots", + ".subplot s", + "Ï ĥ", + "N OW", + "NO W", + "G ar", + "Ga r", + "h andles", + "handle s", + "hand les", + "a bra", + "ab ra", + "abr a", + "put ies", + "pu ties", + "ĠElect rical", + "ĠElectric al", + "M iddle", + "Mid dle", + "r opic", + "ro pic", + "rop ic", + "Ġ JD", + "ĠJ D", + "Ġ Dyn", + "ĠD yn", + "ĠDy n", + "ĠB ristol", + "ĠBr istol", + "ĠBris tol", + "ĠMc Carthy", + "ĠMcCart hy", + "Ġstr iker", + "Ġstri ker", + "Ġstrike r", + "Ġenum erable", + "Ġenumer able", + "ĠE van", + "ĠEv an", + "ĠEva n", + ". defaults", + ".default s", + "qu ences", + "que nces", + "quence s", + ") ||", + ")| |", + "ĉ token", + "ĉt oken", + "ĉto ken", + "â Ĺı", + "âĹ ı", + "- dropdown", + "-d ropdown", + "-drop down", + "ST ORE", + "Ġ Graphic", + "ĠG raphic", + "ĠGraph ic", + "( pp", + "(p p", + "Ex pl", + "Exp l", + "Ġup wards", + "Ġupward s", + "ĠD istributed", + "ĠDistrib uted", + "Ġ WEB", + "ĠW EB", + "ĠWE B", + "J er", + "Je r", + "is NaN", + "çĶŁ æĪIJ", + "> R", + "üss en", + "üs sen", + "e fs", + "ef s", + "Ġun cover", + "Ġunc over", + "Ġl ud", + "Ġlu d", + ". calculate", + ".c alculate", + ".cal culate", + ".calc ulate", + "Ġ intptr", + "Ġint ptr", + "Ġmidfield er", + ". Headers", + ".Header s", + ".He aders", + ".Head ers", + "Ġ mf", + "Ġm f", + "e ref", + "er ef", + "ere f", + ". Metro", + ".M etro", + ".Me tro", + "Ġ Speaking", + "ĠSpe aking", + "ĠSpeak ing", + ": b", + "Ġcryptoc urrencies", + "Ġd emons", + "Ġde mons", + "Ġdem ons", + "Ġdemon s", + "Ġdemo ns", + "ĉ EXPECT", + "Ġw icked", + "y outube", + "you tube", + "youtu be", + ": Int", + ":I nt", + "ĠH indi", + "ĠHind i", + "ĠHin di", + "Ġ CAT", + "ĠC AT", + "ĠCA T", + "Ġ ع", + "ĠØ ¹", + "r ar", + "ra r", + "o more", + "om ore", + "omo re", + "omor e", + "/ per", + "/p er", + "/ license", + "/lic ense", + "/l icense", + "Ġre im", + "Ġa waiting", + "Ġawait ing", + "Ġle thal", + "Ġlet hal", + "Ġleth al", + "Ġ EF", + "ĠE F", + "r ounded", + "ro unded", + "round ed", + "ĠPl atinum", + "Ġв Ñģе", + "ĠвÑģ е", + ". coords", + ".co ords", + ".coord s", + ". Device", + ".D evice", + ".De vice", + ".Dev ice", + "/ item", + "/i tem", + "Ġ Wenn", + "ĠW enn", + "ĠWe nn", + "ĠWen n", + "compile Components", + "ĠK inder", + "ĠKind er", + "ĠKi nder", + "ĠKin der", + ".remove Item", + "Ġ anda", + "Ġa nda", + "Ġand a", + "Ġan da", + "b nb", + "bn b", + "Ġ pra", + "Ġp ra", + "Ġpr a", + "( transaction", + "(trans action", + "Ġembarrass ing", + "ĉ BOOL", + ".content View", + "Ġevent data", + "at ore", + "ator e", + "ato re", + "Ġprovided In", + "ir ma", + "irm a", + "Ġz ona", + "Ġzo na", + "_ HW", + "_H W", + "æ Ļ", + "Ġst ove", + "Ġsto ve", + "Ġcounter part", + "_ Product", + "_Pro duct", + "_MAN AGER", + "Ġinf ring", + "Ġinfr ing", + "Ġ ERA", + "ĠE RA", + "ĠER A", + "_ party", + "_p arty", + "_part y", + "_par ty", + "Ñ ij", + "Ġin ici", + "Ġi nici", + "Ġini ci", + "_ Request", + "_Re quest", + "Ġmir acle", + "Ġmirac le", + "Ġcancel Button", + "S py", + "Sp y", + "at ó", + "Ġpol ish", + "Ġpo lish", + "Ġpolis h", + "ĠNic ole", + "ĠNi cole", + "ĠNico le", + "ĠNicol e", + ". displayName", + ".display Name", + "\\ Requests", + "\\Request s", + "Ġuse History", + "Router Module", + "Ġst ared", + "Ġstar ed", + "Ġsta red", + "Ġstare d", + "I DER", + "ID ER", + "IDE R", + "Ñĥнк ÑĨи", + "Ġ nota", + "Ġn ota", + "Ġnot a", + "Ġno ta", + "$ arr", + "$a rr", + "$ar r", + "pec ified", + "Ġt opp", + "Ġto pp", + "Ġtop p", + "_DR IVER", + "_DRIVE R", + "/ ng", + "/n g", + "å ł", + "_ tm", + "_t m", + "% timeout", + "< s", + "Ġ (*)", + "Ġ( *)", + "Ġ(* )", + "Ġ HttpRequest", + "ĠHttp Request", + "_ TRACK", + "_TR ACK", + "_TRA CK", + "( note", + "(n ote", + "(not e", + "(no te", + "Ġ Explore", + "ĠExp lore", + "ĠExpl ore", + "_ serv", + "_s erv", + "_se rv", + "_ser v", + "Ġ ç»", + "Ġç »", + "B inder", + "Bind er", + "Bin der", + "Bi nder", + "+ \",", + "+\" ,", + ". att", + ".a tt", + ".at t", + "ĠEth i", + "ĠEt hi", + "Ġc ódigo", + "= '\\", + "=' \\", + ". lines", + ".l ines", + ".line s", + ".li nes", + ".lin es", + "( Of", + "(O f", + "å° Ĩ", + "miss ible", + "Ġ vé", + "Ġv é", + "Ġac oustic", + "Ġcraft ing", + "n it", + "ni t", + ". ba", + ".b a", + "ĠLuc y", + "ĠLu cy", + "Ġi Pod", + "ĠiP od", + "Ġpup ils", + "Ġpupil s", + "- max", + "-m ax", + "_ wr", + "_w r", + "( cp", + "(c p", + "Ġ REPORT", + "ĠRE PORT", + "ĠREP ORT", + "Ġ dns", + "Ġd ns", + "Ġdn s", + "Ġ References", + "ĠRe ferences", + "ĠReference s", + "ĠRefer ences", + "Ġunder taken", + "Ġundert aken", + "Ġundertake n", + "Ġkø benhavn", + "Ġ chai", + "Ġc hai", + "Ġch ai", + "Ġcha i", + "ĠC roat", + "ĠCro at", + "_ Log", + "_L og", + "r owned", + "row ned", + "rown ed", + "_ med", + "_m ed", + "_me d", + "ĉ date", + "ĉd ate", + "# __", + "Ġcost umes", + "Ġcostume s", + "Ġ Requires", + "ĠRe quires", + "ĠRequire s", + "aff le", + "ç Ĭ¶æĢģ", + "çĬ¶ æĢģ", + "-S emit", + "-Se mit", + "ela ide", + "еÑĤ од", + "Ġp estic", + "Ġpes tic", + "Ġpest ic", + "Ġ dra", + "Ġd ra", + "Ġdr a", + "D OCUMENT", + "DOC UMENT", + "Ġ ...čĊ", + "Ġ... čĊ", + "Ġ.. .čĊ", + "} `}Ċ", + "}` }Ċ", + "}`} Ċ", + "ĠA uction", + "ĠAu ction", + "Ġ Dock", + "ĠD ock", + "ĠDo ck", + "ĠDoc k", + "xxxx xxxx", + "( getString", + "(get String", + "ħ į", + "Ġborder Width", + "ĠM achinery", + "ĠMachine ry", + "ĠMach inery", + "Ġpredict able", + "Ġpredic table", + ". SH", + ".S H", + "Ġam plitude", + "Ġampl itude", + ".for Root", + "I Navigation", + "IN avigation", + "Table Model", + "at trib", + "att rib", + "attr ib", + "Ġmaneu ver", + "Ġexc av", + "B ERS", + "BER S", + "BE RS", + "Ġd apat", + "Ġda pat", + "Ġdap at", + "Ġinstall ations", + "Ġinstallation s", + "Ġinstal lations", + ". Async", + ".A sync", + ".As ync", + "Ġ rays", + "Ġr ays", + "Ġra ys", + "Ġray s", + "= âĢĿ", + "; ččĊ", + ". crypto", + ".c rypto", + "_ dbg", + "_d bg", + "_db g", + "Ġ Enumerable", + "ĠEnum erable", + "Of Size", + "_ epochs", + "_epoch s", + "m w", + "M ENU", + "ME NU", + "out line", + "ĠP apers", + "ĠPa pers", + "ĠPaper s", + "ĠPap ers", + "= ===========Ċ", + "== ==========Ċ", + "==== ========Ċ", + "======== ====Ċ", + "=== =========Ċ", + "============ Ċ", + "=========== =Ċ", + "========= ===Ċ", + "========== ==Ċ", + "====== ======Ċ", + "===== =======Ċ", + "======= =====Ċ", + "Ġuniform s", + "Ġuni forms", + "ĠG ig", + "ĠGi g", + "- package", + "-p ackage", + "-pack age", + "ĠJ enkins", + "ĠJen kins", + "Ġ HomePage", + "ĠHome Page", + ". isSelected", + ".is Selected", + "Ġmechan ic", + "Ġmech anic", + "M K", + "Ġ Sounds", + "ĠS ounds", + "ĠSo unds", + "ĠSou nds", + "ĠSound s", + "//---------------------------------------------------------------- -------------Ċ", + "//---------------------------------------------------------------------------- -Ċ", + "Ġresearch ing", + "Ġ infos", + "Ġin fos", + "Ġinfo s", + "Ġinf os", + "o graphics", + "og raphics", + "ograph ics", + "ographic s", + "er set", + "ers et", + "erse t", + "([ '/", + "([' /", + "ĠTim ber", + ". agent", + ".a gent", + ".ag ent", + ".age nt", + ".to JSON", + "_ commands", + "_command s", + "_comm ands", + "p aring", + "par ing", + "pa ring", + "_ adjust", + "_ad just", + "_adj ust", + ". nome", + ".n ome", + ".no me", + ".nom e", + "( glm", + "(g lm", + "(gl m", + "Status Bar", + "file path", + "? âĢĻ", + "Ġdet ective", + "Ġdetect ive", + "Ġuns erer", + "Ġunser er", + "Ġunsere r", + "ĠTi bet", + "ĠTib et", + "EN DED", + "END ED", + "( seed", + "(s eed", + "(se ed", + "Ġsne ak", + "Ġa mor", + "Ġam or", + "Ġamo r", + "=\" //", + "=\"/ /", + "ĠPan thers", + "ĠPanther s", + "all ax", + "alla x", + "ĠL IVE", + "ĠLI VE", + "ĉ DWORD", + "ĉD WORD", + "] =-", + "]= -", + "Ġt ornado", + "Ġtorn ado", + "/ min", + "/m in", + "Ġl ungs", + "Ġlung s", + "Ġlun gs", + "- current", + "-c urrent", + "-cur rent", + "Ġ Booking", + "ĠBo oking", + "ĠBook ing", + "ĠBoo king", + "åĪĹ è¡¨", + "Ġenjoy ment", + "ठ°", + "J A", + "t yped", + "type d", + "ty ped", + "typ ed", + ". Btn", + ".B tn", + "f at", + "fa t", + "u gal", + "ug al", + "uga l", + "Ġ Shares", + "ĠSh ares", + "ĠShare s", + "ĠSha res", + "ĠShar es", + "Ġdis gr", + "Ġdisg r", + "Ġ BAR", + "ĠB AR", + "ĠBA R", + "Ġ FOX", + "ĠF OX", + "ĠFO X", + "Op code", + "Ġ Sz", + "ĠS z", + "key down", + "iction aries", + "Ġdet ailing", + "Ġdetail ing", + "} ))Ċ", + "}) )Ċ", + "})) Ċ", + "Ġ pok", + "Ġp ok", + "Ġpo k", + "Ġdemonstr ating", + "Ġ notation", + "Ġn otation", + "Ġnot ation", + "Ġnota tion", + "l ayers", + "la yers", + "lay ers", + "layer s", + "@ if", + "ĠN PR", + "ĠNP R", + ".strict Equal", + "Ġ Recipes", + "ĠRec ipes", + "ĠRecipe s", + ". Tensor", + ".T ensor", + "Ġliqu or", + "Ġdeb ts", + "Ġdebt s", + ". endsWith", + ".end sWith", + ".ends With", + "W heel", + "Wh eel", + ". Pos", + ".P os", + "C SV", + "CS V", + "$ arity", + "$ar ity", + "Ġun stable", + "Ġuns table", + "Ġunst able", + "( loss", + "(l oss", + "(lo ss", + "EN SOR", + "ENS OR", + "Ġel even", + "Ġele ven", + "Ġelev en", + "ĠL opez", + "ĠLo pez", + "ĠHop kins", + "c onom", + "con om", + "co nom", + "cono m", + "ĠS eth", + "ĠSe th", + "ĠSet h", + "Ġpo ems", + "Ġpoem s", + "Q uant", + "Qu ant", + "Ġg sl", + "Ġgs l", + "Ġsy rup", + "Ġs ibling", + "Ġsi bling", + "Ġc ass", + "Ġca ss", + "Ġcas s", + "- vous", + "-v ous", + "ö t", + "_P ATTERN", + "_ SECTION", + "_SE CTION", + "_SEC TION", + "est imated", + "estimate d", + "up grade", + ". mongodb", + ".m ongodb", + ".mongo db", + "ĠBo at", + "_ CTX", + "_C TX", + "_CT X", + "Ġfetch ing", + "Ġfet ching", + "u stin", + "us tin", + "ust in", + "p iel", + "pi el", + "pie l", + "M arg", + "Mar g", + "Ma rg", + "Ref lection", + "Reflect ion", + "Ġ duct", + "Ġd uct", + "Ġdu ct", + "ĠMunicip al", + "Ġ bx", + "Ġb x", + ". GetCurrent", + ".Get Current", + "m link", + "ml ink", + "mlin k", + "ĠAccount ing", + "ĠGen eva", + "ĠGene va", + "_ Pos", + "_P os", + "Ġp asser", + "Ġpass er", + "Ġpas ser", + "Ġpasse r", + "Ġhear ings", + "Ġhearing s", + "com pan", + "comp an", + "Ġfrag ile", + "Initial izer", + "Initialize r", + "w alker", + "walk er", + "wal ker", + ". Material", + ".M aterial", + "ĠH unting", + "ĠHun ting", + "ĠHunt ing", + "try side", + "trys ide", + "Ġ kat", + "Ġk at", + "Ġka t", + "Ġcl erk", + "Ġcle rk", + "Ġcler k", + "á Ł", + "do ing", + "doi ng", + "ĉ group", + "ĉg roup", + "ĉgr oup", + "Ġsan ction", + "Ġsanct ion", + ". lb", + ".l b", + "Ġ Lazy", + "ĠL azy", + "ĠLa zy", + "ĠLaz y", + "Ġ Constraint", + "ĠCon straint", + "ĠConstr aint", + "P agination", + "Pag ination", + "Ġpou vez", + "ĠInd icates", + "M ER", + "ME R", + "Ġc ours", + "Ġco urs", + "Ġcour s", + "Ġcou rs", + "Ġy early", + "Ġyear ly", + "Ġg rosse", + "Ġgro sse", + "Ġgross e", + "Ġgros se", + "abb rev", + "abbr ev", + "Ġ DON", + "ĠD ON", + "ĠDO N", + "Ġpro ceeded", + "Ġproceed ed", + "ent lich", + "Ġ propertyName", + "Ġproperty Name", + "ĠTe aching", + "ĠTea ching", + "ĠTeach ing", + "st adt", + "sta dt", + "stad t", + "Ġc utoff", + "Ġcut off", + "or ners", + "orn ers", + "orne rs", + "Ġa frica", + "Ġaf rica", + "Ġafr ica", + "Ġ renders", + "Ġr enders", + "Ġrender s", + "Ġren ders", + "Ġrend ers", + "ĠYan kees", + "ĠYankee s", + "Ġ Toolbar", + "ĠTool bar", + "s paces", + "sp aces", + "space s", + "spa ces", + ".fill Style", + "Ġseg undo", + "Ġsegu ndo", + "_ strlen", + "_st rlen", + "_str len", + ". Firebase", + ".F irebase", + ".Fire base", + "å¤ Ħ", + "Ġmention ing", + "\\ (", + "ĠVal ve", + "S etter", + "Set ter", + "Ġsp ans", + "Ġspan s", + "Ġspa ns", + "ĠAl cohol", + "Ġ Letters", + "ĠLet ters", + "ĠLetter s", + "\\ xe", + "\\x e", + "Ġ TK", + "ĠT K", + "_ BLE", + "_B LE", + "_BL E", + ". getResult", + ".get Result", + "< Player", + "

\"", + "=> \"", + "t lement", + "tle ment", + "tl ement", + "$ (\"", + "$( \"", + "From String", + "ĠB ild", + "ĠBi ld", + "ĠBil d", + "Ġcon ventions", + "Ġconv entions", + "Ġconvent ions", + "Ġconvention s", + "_ native", + "_n ative", + "_nat ive", + "Ġ Inspector", + "ĠIns pector", + "ĠInsp ector", + "ĠP ist", + "ĠPi st", + "ĠPis t", + "u bar", + "ub ar", + "uba r", + "Ġ regs", + "Ġre gs", + "Ġreg s", + "ĠP ilot", + "ĠPi lot", + "ĠPil ot", + "T hus", + "Th us", + "Thu s", + "> '+", + ">' +", + "Ġ cela", + "Ġc ela", + "Ġce la", + "Ġcel a", + ". news", + ".n ews", + ".new s", + ".ne ws", + "( Product", + "L iving", + "Li ving", + "Liv ing", + "R ussia", + "Russ ia", + "Ġ facet", + "Ġf acet", + "Ġfac et", + "Ġface t", + "e tical", + "et ical", + "etic al", + "eti cal", + "Ġ[ '$", + "Ġ[' $", + "/ [", + "Ġ Dire", + "ĠD ire", + "ĠDi re", + "ĠDir e", + "Ġg ases", + "Ġgas es", + "Ġga ses", + "ĠIN FORMATION", + "Ġ Eat", + "ĠE at", + "ĠEa t", + "ĠFor ums", + "ĠForum s", + "Ġ Characters", + "ĠChar acters", + "ĠCharacter s", + "_ met", + "_m et", + "_me t", + "Ġ ìĭľ", + "Ġìĭ ľ", + "Ġk ings", + "Ġking s", + "Ġkin gs", + "a chie", + "ach ie", + "achi e", + "Ġ Lambda", + "ĠL ambda", + "ĠLamb da", + "Ġt imers", + "Ġtime rs", + "Ġtim ers", + "Ġti mers", + "Ġtimer s", + "ĠL ighting", + "ĠLight ing", + "ĠCas ey", + "ĠCase y", + "ĠCa sey", + "ad dir", + "add ir", + "an dex", + "and ex", + "ande x", + ". answer", + ".an swer", + "Ġ Hip", + "ĠH ip", + "ĠHi p", + "ĠPr incip", + "Start Date", + "Ġ ãĢĮ", + "ĠãĢ Į", + "t res", + "tr es", + "tre s", + "Ġ &#", + "Ġ& #", + ".Max Value", + "ĠPro blems", + "ĠProblem s", + "ĠProb lems", + "ĠProble ms", + "Ġ latex", + "Ġla tex", + "Ġlate x", + "Ġlat ex", + "Of Class", + "ĠL ynn", + "ĠLy nn", + "ĠLyn n", + "/ /'", + "// '", + "Ġvoy age", + "Ġsh uttle", + "Ġshut tle", + "ĠR oller", + "ĠRo ller", + "ĠRoll er", + "ĠRol ler", + "ĠRuntime Error", + "u ya", + "uy a", + "D ic", + "Di c", + "ĉ builder", + "ĉb uilder", + "ĉbuild er", + "Ġbul lying", + "Ġbull ying", + "Ġbully ing", + "Ġsimple st", + "Ġsimp lest", + "Ġsimpl est", + "Ġsimples t", + ". called", + ".c alled", + ".call ed", + ".cal led", + "Ġ LR", + "ĠL R", + "Ġmor ality", + "Ġmoral ity", + "Ġst urdy", + "tr acking", + "track ing", + ". swagger", + ".sw agger", + "_ BIND", + "_B IND", + "_BIN D", + "I TOR", + "IT OR", + "ITO R", + "-url encoded", + "Ġ Ñħ", + "ĠÑ ħ", + "ĠTr inity", + "Ġtr aps", + "Ġtra ps", + "Ġtrap s", + "Ġ |-", + "Ġ| -", + "Ġ setText", + "Ġset Text", + "Ġbar gain", + "Ġbarg ain", + "Ġbr akes", + "Ġbra kes", + "Ġbrake s", + ". getCode", + ".get Code", + ".g etCode", + ".getC ode", + "Ġm igrate", + "Ġmigr ate", + "Ġmig rate", + "Ġ ribbon", + "Ġr ibbon", + "Ġrib bon", + ") return", + ")r eturn", + "Ġ charger", + "Ġch arger", + "Ġchar ger", + "Ġcharg er", + "Ġcharge r", + "a com", + "ac om", + "aco m", + "ADI US", + "ĠAmb assador", + "- after", + "-a fter", + "Ġ anni", + "Ġan ni", + "Ġann i", + "ĉ spin", + "ĉs pin", + "ĉsp in", + "Con cept", + "ĠHend erson", + "Ġ HOST", + "ĠH OST", + "ĠHO ST", + ". rank", + ".r ank", + ".ra nk", + "ĠNorth east", + "ĠNor theast", + "Ġber lin", + "Ġre quis", + "Ġreq uis", + "Ġrequ is", + ". feed", + ".f eed", + ".fe ed", + "Ġsource Mapping", + "ĠRen contre", + ". ajax", + ".a jax", + "nest js", + "Ġt rek", + "Ġtr ek", + "Ġtre k", + "ĠN acional", + "Ġ& [", + "Ġpay able", + "or tex", + "ort ex", + "orte x", + "Ġ dept", + "Ġd ept", + "Ġde pt", + "Ġdep t", + "field Name", + "Ġcomp letes", + "Ġcomple tes", + "Ġcomplet es", + "Ġcompl etes", + "Ġcomplete s", + "ĠR VA", + "ĠRV A", + "Ġon ions", + "Ġonion s", + "al ignment", + "align ment", + "Form ats", + "Format s", + "Ġ' {$", + "Ġ'{ $", + "Hash Set", + "ĠB od", + "ĠBo d", + ".Invariant Culture", + "Ġsett lements", + "Ġsettlement s", + "Ġsettle ments", + "Ġ hydr", + "Ġhy dr", + ". updated", + ".update d", + ".up dated", + "v enth", + "ve nth", + "vent h", + "ven th", + "( seconds", + "(se conds", + "(second s", + "(sec onds", + "=\" /\"", + "=\"/ \"", + "Ġweb page", + "( ĊĊ", + "(Ċ Ċ", + "Ġ tir", + "Ġt ir", + "Ġti r", + "Ġt oes", + "Ġto es", + "Ġtoe s", + "ĠB rick", + "ĠBr ick", + "ĠBri ck", + "Ġamb ition", + "Ġambit ion", + "P ot", + "Po t", + "= max", + "=m ax", + "E TIME", + "ET IME", + "Ġde pot", + "Ġdep ot", + "c alls", + "cal ls", + "call s", + "ĠNor wegian", + "` :", + "Ġ burger", + "Ġb urger", + "Ġbur ger", + "Ġburg er", + "Ġburge r", + "Ġprofessor s", + "Ġprofess ors", + "Ġ Allocate", + "ĠAl locate", + "ĠAll ocate", + "ĠAlloc ate", + "-third s", + "- chart", + "-c hart", + "-ch art", + "-char t", + "Ġ ford", + "Ġf ord", + "Ġfor d", + "Ġfo rd", + "* N", + ".k otlin", + "Ġpaper work", + "Ġ DEVICE", + "ĠDE VICE", + "ĠDEV ICE", + "% @\",", + "%@ \",", + "re spect", + "res pect", + "resp ect", + "( mp", + "(m p", + "é «ĺ", + "é« ĺ", + "- if", + "-i f", + "Ġcush ion", + "o bot", + "ob ot", + "obo t", + "Ġp arc", + "Ġpar c", + "Ġpa rc", + "S PACE", + "SP ACE", + "SPA CE", + "ĠNet anyahu", + "Ġself ish", + "Ġsel fish", + "f eat", + "fe at", + "fea t", + "Ġ clientes", + "Ġcl ientes", + "Ġclient es", + "Ġcli entes", + "Ġcliente s", + "- tools", + "-t ools", + "-to ols", + "-tool s", + "-too ls", + "Ġp orch", + "Ġpo rch", + "Ġpor ch", + "Ġ jq", + "Ġj q", + ". verbose", + ".ver bose", + "Ġlib erals", + "Ġliberal s", + "Ġliber als", + "] )ĊĊĊ", + "]) ĊĊĊ", + "])Ċ ĊĊ", + "])ĊĊ Ċ", + "p ies", + "pi es", + "pie s", + "Not Blank", + "( term", + "(t erm", + "(te rm", + "È Ľi", + "ÈĽ i", + "_ Params", + "_Param s", + ". normalize", + ".normal ize", + "B ullet", + "AS IC", + "ASI C", + "( hex", + "(h ex", + "_ cliente", + "_cl iente", + "_client e", + "_cli ente", + "+ ,", + "_ DI", + "_D I", + "Ġforth coming", + "} \")]Ċ", + "}\" )]Ċ", + "}\") ]Ċ", + "s eo", + "se o", + "U m", + "> Name", + ">N ame", + "Ġcomfort ably", + "irect ional", + "irection al", + "W ITH", + "WI TH", + "/ pr", + "/p r", + "Ġ Poor", + "ĠP oor", + "ĠPo or", + "ĠV itamin", + "ĠVit amin", + "ĠVita min", + "v ic", + "vi c", + "G H", + "Ġprior it", + "Ġprio rit", + "Ġ NN", + "ĠN N", + "Ġ Closed", + "ĠC losed", + "ĠCl osed", + "ĠClose d", + "ĠClo sed", + "¤ í", + "Ġ isOpen", + "Ġis Open", + "\\ Console", + "And Feel", + ". SUCCESS", + ".S UCCESS", + "_OPER ATION", + "p olation", + "po lation", + "pol ation", + "ĠT as", + "ĠTa s", + "p sz", + "ps z", + "> '.", + ">' .", + "C URRENT", + "V endor", + "host s", + "ho sts", + "hos ts", + "ĠE rd", + "ĠEr d", + ">tag ger", + ">t agger", + "ĠsourceMapping URL", + "Ġmar athon", + "_ closed", + "_c losed", + "_cl osed", + "_close d", + "Ġex emption", + "Ġexem ption", + "Ġexempt ion", + "Ġexemp tion", + "Ġrecogn izes", + "Ġrecognize s", + "ide show", + "ides how", + "' $", + "(' /');Ċ", + "('/ ');Ċ", + "('/') ;Ċ", + "m its", + "mit s", + "mi ts", + "wa rz", + "war z", + "ĠCh erry", + "ĠCher ry", + "µ ¬", + "n or", + "no r", + "p orte", + "port e", + "por te", + "Ġ wl", + "Ġw l", + "_ backup", + "_back up", + ".get Boolean", + ". getResource", + ".get Resource", + "Ġdefinit ive", + "Ġdefin itive", + ". EditText", + ".Edit Text", + "Ġ sÃŃ", + "Ġs ÃŃ", + ". CONT", + ".C ONT", + ".CON T", + ".CO NT", + "Ġ PLAYER", + "ĠPL AYER", + "ĠPLAY ER", + ". cards", + ".c ards", + ".card s", + ".car ds", + "ĠSh ore", + "ĠSho re", + "(' /')Ċ", + "('/ ')Ċ", + "('/') Ċ", + "cl uir", + "Web Driver", + "( month", + "(m onth", + "(mon th", + "- release", + "-r elease", + "-re lease", + "-rel ease", + "Ġins pector", + "Ġinspect or", + "Ġinsp ector", + "å £", + "Ġ NF", + "ĠN F", + "_ clip", + "_c lip", + "_cl ip", + "_cli p", + "å ŃIJ", + "åŃ IJ", + "Ġinter acting", + "Ġinteract ing", + ". tmp", + ".t mp", + ".tm p", + "Ġ '''ĊĊ", + "Ġ'' 'ĊĊ", + "Ġ'''Ċ Ċ", + "Ġ''' ĊĊ", + "Ġ dee", + "Ġd ee", + "Ġde e", + "Ġf rost", + "Ġfr ost", + "Ġfro st", + "\" ]))Ċ", + "\"] ))Ċ", + "\"]) )Ċ", + "\"])) Ċ", + "Ġ Places", + "ĠP laces", + "ĠPl aces", + "ĠPlace s", + "ĠPla ces", + "Th rows", + "Throw s", + "Thr ows", + "f ork", + "fo rk", + "for k", + "/ day", + "/d ay", + "i Phone", + "Ġ MIC", + "ĠM IC", + "ĠMI C", + "Ġf olding", + "Ġfol ding", + "Ġfold ing", + "Ġcr ore", + "Ġcro re", + "ĠCh iefs", + "ĠChief s", + "ĠChi efs", + "pher ical", + "pheric al", + "phe rical", + "( price", + "(p rice", + "(pr ice", + ".Write String", + "Ġex iting", + "Ġexit ing", + "] ',Ċ", + "]', Ċ", + "]' ,Ċ", + "ight ing", + "igh ting", + "Ing redient", + "( vertex", + "(ver tex", + "Ġ scrollView", + "Ġs crollView", + "Ġscroll View", + "h f", + ": new", + ":n ew", + "S EN", + "SE N", + "s ector", + "se ctor", + "sec tor", + "sect or", + "Ġs pins", + "Ġsp ins", + "Ġspin s", + "Ġspi ns", + "Ġ Scheduler", + "ĠS cheduler", + "ĠSchedule r", + "o techn", + "ot echn", + "ote chn", + "otech n", + "otec hn", + "sem icolon", + "semi colon", + "Font OfSize", + "ĠSpecific ally", + "fl amm", + ". ObjectId", + ".Object Id", + "Ġc onta", + "Ġcon ta", + "Ġcont a", + "_ permissions", + "_per missions", + "_perm issions", + "_permission s", + "ĉ FROM", + "ĉF ROM", + "I CODE", + "IC ODE", + "ICO DE", + "/ kg", + "/k g", + "ĠHot els", + "ĠHotel s", + "- med", + "-m ed", + "-me d", + "ĠD in", + "ĠDi n", + "Ġn avy", + "Ġna vy", + "Ġnav y", + "get Param", + "Ġm end", + "Ġme nd", + "Ġmen d", + "Ġportray ed", + "ĠMet ropolitan", + "P ainter", + "Paint er", + "Pa inter", + "Ġref erral", + "Ġrefer ral", + "_ good", + "_g ood", + "_go od", + "Ġmar vel", + "os aic", + "osa ic", + "> (&", + ">( &", + ". ur", + ".u r", + "Ġes tos", + "Ġest os", + "Ġesto s", + "Will iam", + "Ġtim ber", + "Ġquel ques", + "Ġquelque s", + "Ġ Documents", + "ĠDocument s", + "ĠDoc uments", + ".X aml", + "Ġb atches", + "Ġbatch es", + "Ġbat ches", + "éģ ĵ", + "Ġ Released", + "ĠRe leased", + "ĠRelease d", + "T ail", + "Ta il", + "Tai l", + "CO OKIE", + "h eid", + "he id", + "hei d", + "_ station", + "_st ation", + "_stat ion", + "_sta tion", + "Ġ Via", + "ĠV ia", + "ĠVi a", + "S ale", + "Sal e", + "Sa le", + "Ġ Repeat", + "ĠRe peat", + "ĠRep eat", + "Ġpro min", + "Ġpr omin", + "Ġprom in", + "ĠZ o", + "- forward", + "-for ward", + "Ġ Ion", + "ĠI on", + "ĠIo n", + "it ary", + "ita ry", + "itar y", + "Ġj us", + "Ġju s", + "- request", + "-re quest", + "Ġproud ly", + "Ġ Streaming", + "ĠStream ing", + "ĠStre aming", + "( MouseEvent", + "(Mouse Event", + "ĠS print", + "ĠSp rint", + "ĠSpr int", + "_ rotation", + "_r otation", + "_rot ation", + "Re positories", + "Ġt art", + "Ġta rt", + "Ġtar t", + "ĠÑģ в", + "Ġm appings", + "Ġmapping s", + "è ª", + "C u", + "C ycle", + "Cy cle", + "Ġb un", + "Ġbu n", + "ĉ lua", + "ĉl ua", + "ãĥ ī", + "Ġ( (!", + "Ġ(( !", + "Ġcollect ively", + "Ġcollective ly", + "Ġ Cond", + "ĠC ond", + "ĠCon d", + "ĠCo nd", + "Ġws zyst", + "Ġwsz yst", + "( lib", + "(l ib", + "(li b", + "openh agen", + "_ skip", + "_s kip", + "_sk ip", + ".Column Header", + "é Ĥ", + "perience d", + "peri enced", + "ı è¿°", + "_ props", + "_p rops", + "_pro ps", + "_pr ops", + "_prop s", + "Ġcon trace", + "Ġcont race", + "Ġcontr ace", + "Ġcontra ce", + "Ġmatch up", + "ab etic", + "abe tic", + "abet ic", + ". members", + ".m embers", + ".member s", + ".mem bers", + "R ECT", + "RE CT", + "REC T", + "( dat", + "(d at", + "(da t", + "Ġs og", + "Ġso g", + "re nom", + "ren om", + "reno m", + "_ Method", + "_M ethod", + "Custom ers", + "Customer s", + "ful lname", + "full name", + "Z N", + "r etry", + "re try", + "ret ry", + "Ġ kap", + "Ġk ap", + "Ġka p", + "ĠN eu", + "ĠNe u", + "è Ĭ", + "add Child", + "will Return", + "_ permalink", + "_p ermalink", + "_per malink", + "_perm alink", + "Ġenerg etic", + "Ġener getic", + "ĠW et", + "ĠWe t", + "ĠM orr", + "ĠMo rr", + "ĠMor r", + "Ġ gcd", + "Ġg cd", + "Ġgc d", + "co unts", + "count s", + "cou nts", + ", type", + ",t ype", + "d ig", + "di g", + "( Login", + "(Log in", + "Ġcr acks", + "Ġcrack s", + "Ġcra cks", + "Ġb acterial", + "Ġbacter ial", + "Ġbacteria l", + "ĠM eat", + "ĠMe at", + "ĠArm strong", + "ĠBro nze", + "ĠBron ze", + "Ġapprox imate", + "_ dirs", + "_d irs", + "_dir s", + "_di rs", + "l iga", + "li ga", + "lig a", + "ÅĤ ad", + "ÅĤa d", + "Ġkind ness", + "Ġ contre", + "Ġcon tre", + "Ġcont re", + "Ġcontr e", + "ĠE VERY", + "ĠEV ERY", + "ĠEVER Y", + "ĠEVE RY", + "M ET", + "ME T", + "Ġann ouncements", + "Ġannounc ements", + "Ġannouncement s", + "Ġannounce ments", + "g pio", + "gp io", + "ĠWaitFor Seconds", + "ĠPhoto shop", + "ĠPhotos hop", + "Ġdis contin", + "/ dd", + "/d d", + "Ġtop ology", + "Ġtopo logy", + "an ical", + "ani cal", + "anic al", + ". interface", + ".inter face", + "auc oup", + ". HashSet", + ".Hash Set", + "ARI ANT", + "( routes", + "(r outes", + "(route s", + "(ro utes", + "ĠT eh", + "ĠTe h", + "Ġh ype", + "Ġhy pe", + "Ġhyp e", + "] \").", + "]\" ).", + "]\") .", + "Ġs lam", + "Ġsl am", + "Ġsla m", + "Ġbr oth", + "Ġbro th", + "- inter", + "-in ter", + "-int er", + "ĠR id", + "ĠRi d", + "- manager", + "-m anager", + "-man ager", + "Cancel ar", + "Ġ Pagination", + "ĠP agination", + "ĠPag ination", + "Ġsound track", + "Ġpos terior", + "Ġpost erior", + "Ġposter ior", + "Ġposte rior", + "Ġsc rub", + "Ġscr ub", + "c reating", + "cre ating", + "cr eating", + "creat ing", + "- *", + "ir teen", + "irt een", + ". dy", + ".d y", + ".s ymmetric", + ".sym metric", + "Ġ \"\".", + "Ġ\" \".", + "Ġ\"\" .", + "= ==============", + "== =============", + "==== ===========", + "======== =======", + "=== ============", + "============ ===", + "============= ==", + "=========== ====", + "============== =", + "========= ======", + "========== =====", + "====== =========", + "===== ==========", + "======= ========", + "Ġch assis", + "ĠnumberOf Rows", + "De veloper", + "Develop er", + "_ bins", + "_b ins", + "_bin s", + "_bi ns", + "Ġ OUR", + "ĠO UR", + "ĠOU R", + "ri eb", + "rie b", + "P ros", + "Pro s", + "Pr os", + "Ġ wiÄĻ", + "Ġw iÄĻ", + "Ġwi ÄĻ", + "\" d", + "Ġasync io", + "ze igen", + "_ spi", + "_s pi", + "_sp i", + ". ALL", + ".A LL", + ".AL L", + "Ġscre ws", + "Ġscr ews", + "Ġscrew s", + "Ch inese", + "Ġ apiKey", + "Ġapi Key", + "Ġun successful", + "ĠSea hawks", + "ĠSeah awks", + "O RG", + "OR G", + "ç« ł", + "Ġprofession ally", + "Ġprofessional ly", + "Ġ Coupon", + "ĠC oupon", + "ĠCo upon", + "ĠCou pon", + "åŃĹ æ®µ", + "Con vention", + "Conv ention", + "Ġpol ym", + "Ġpoly m", + "æī ĭ", + "Ġsal vation", + "Ġsalv ation", + "Ġengine ered", + "Ġengineer ed", + "ĠW rest", + "ĠWr est", + "Ġ GCC", + "ĠG CC", + "ĠGC C", + "Ġwar mer", + "Ġwarm er", + "Layout Constraint", + "Ġag grav", + "Ġagg rav", + "S cripts", + "Script s", + "vent ure", + "ven ture", + "Ġrefriger ator", + "Ġinnov ations", + "Ġinnovation s", + "Ġ Runner", + "ĠR unner", + "ĠRun ner", + "N IC", + "NI C", + "ĠRoll ing", + "ĠRol ling", + "Control Events", + "Ġlo os", + "p ac", + "pa c", + "ĉ panel", + "ĉp anel", + "e fe", + "ef e", + "ĠBudd ha", + "ĠBuddh a", + "- -------------Ċ", + "-- ------------Ċ", + "---- ----------Ċ", + "-------- ------Ċ", + "--- -----------Ċ", + "------------ --Ċ", + "----- ---------Ċ", + "---------- ----Ċ", + "------ --------Ċ", + "----------- ---Ċ", + "------------- -Ċ", + "------- -------Ċ", + "--------- -----Ċ", + "-------------- Ċ", + "åº ĵ", + "(for Key", + "Ġl umin", + "Ġlu min", + "Ġlum in", + "Ġ (?", + "Ġ( ?", + "ĠA IDS", + "ĠAI DS", + ", user", + ",u ser", + "im ientos", + "imiento s", + "content Type", + "ant lr", + "é ¦", + "ĠW elt", + "ĠWe lt", + "ĠWel t", + "P roduction", + "Pro duction", + "Product ion", + "Produ ction", + "Prod uction", + "m ight", + "mi ght", + "ĠV II", + "ĠVI I", + "\" ,(", + "\", (", + "Ġobs erving", + "Ġobserv ing", + "Ġdeliber ate", + "( control", + "(c ontrol", + "(cont rol", + "Ġwith d", + "Ġwit hd", + "Ġse mana", + "Ġsem ana", + "ST ACK", + "STA CK", + "u chen", + "uch en", + "uc hen", + "uche n", + "N ice", + "Ni ce", + "Nic e", + "ĠDeutsch land", + "Ġ Specifies", + "ĠSpec ifies", + "d ma", + "dm a", + "iz io", + "izi o", + "ĠF acts", + "ĠFac ts", + "ĠFa cts", + "ĠFact s", + "_ popup", + "_p opup", + "_pop up", + "ĠDirect ors", + "ĠDirector s", + "ĠDir ectors", + "ĠDire ctors", + "{ :", + "[ R", + "ĠÑį леменÑĤ", + "ĠÑįлем енÑĤ", + "Ġ plat", + "Ġp lat", + "Ġpl at", + "Ġpla t", + "Ġdirect ing", + "ä¸ ī", + "ĠGil bert", + "âĢ¦ .ĊĊ", + "âĢ¦. ĊĊ", + ". qml", + ".q ml", + "Ġthere after", + "Ġdis position", + "Ġdisp osition", + "Ġdispos ition", + "Ġdisposit ion", + "d raft", + "dr aft", + "dra ft", + "Ġs urgeon", + "Ġsurg eon", + "Ġsurge on", + "ĠIns ider", + "ĠInside r", + "Bl end", + "ĠT rev", + "ĠTr ev", + "ĠTre v", + "tr insic", + "tri nsic", + "To pics", + "Top ics", + "Topic s", + "r ieve", + "ri eve", + "rie ve", + "_ FILENAME", + "_FILE NAME", + "Ġaut res", + "Ġau tres", + "Ġautre s", + "J ose", + "Jo se", + "Jos e", + "Pro ducer", + "Produ cer", + "Prod ucer", + "e rus", + "er us", + "eru s", + "Ġpe tit", + "Ġpet it", + "Ġ NEXT", + "ĠN EXT", + "ĠNE XT", + "Ġ Filters", + "ĠF ilters", + "ĠFilter s", + "ĠFil ters", + "Ġrep licate", + "Ġrepl icate", + "Ġreplic ate", + "Ġreplica te", + "\" ]).", + "\"] ).", + "\"]) .", + "Ġl enders", + "Ġlen ders", + "Ġlend ers", + "Ġlender s", + "] \",Ċ", + "]\", Ċ", + "]\" ,Ċ", + "; charset", + "Cpp Object", + "Ġfl oral", + "Ġflo ral", + "Ġflor al", + "Ġflora l", + "Ġ Tipo", + "ĠT ipo", + "ĠTi po", + "ĠTip o", + "Ġcirc uits", + "Ġcircuit s", + "e asy", + "ea sy", + "(& $", + "it ta", + "itt a", + "er yl", + "ery l", + "_ COMMON", + "_COM MON", + "_COMM ON", + "' }}>Ċ", + "'} }>Ċ", + "'}} >Ċ", + "'}}> Ċ", + "-b acked", + "-back ed", + "( variable", + "(var iable", + "( Index", + "(In dex", + "Ġ voir", + "Ġv oir", + "Ġvo ir", + "Ġvoi r", + "_ locations", + "_l ocations", + "_location s", + "_loc ations", + "++ ){", + "++) {", + "ĠLouis ville", + "Ġgr atitude", + "Ġgrat itude", + ".Mock ito", + "ĠP owers", + "ĠPower s", + "ĠPo wers", + "ĠPow ers", + "i eurs", + "ie urs", + "ieu rs", + "ieur s", + "Ġge ographic", + "Ġgeo graphic", + "r ale", + "ra le", + "ral e", + "Ġc ra", + "Ġcr a", + "ĠSp urs", + "ipher text", + "iph ertext", + "AC ION", + "- common", + "-com mon", + "-comm on", + "Ġvict ories", + "ĠF inals", + "ĠFin als", + "ĠFinal s", + ". shuffle", + ".sh uffle", + "- million", + "-m illion", + "_ PROC", + "_P ROC", + "_PRO C", + "_PR OC", + "as sume", + "ass ume", + "Ġ ils", + "Ġi ls", + "Ġil s", + "D BC", + "DB C", + "Boot Test", + "Ġl avor", + "Ġla vor", + "Ġlav or", + ". testing", + ".t esting", + ".test ing", + ". ast", + ".as t", + ".a st", + "\" ]/", + "\"] /", + "m oid", + "mo id", + "Ġ qualification", + "Ġqual ification", + "g esch", + "ge sch", + "ges ch", + "ĉ put", + "ĉp ut", + "Ġair ports", + "Ġairport s", + "J I", + "T eacher", + "Te acher", + "_ uniform", + "_un iform", + "Ġ nama", + "Ġn ama", + "Ġna ma", + "Ġnam a", + "ĠB ast", + "ĠBa st", + "ĠBas t", + "e rtype", + "er type", + "ert ype", + "erty pe", + "c apture", + "cap ture", + "capt ure", + "get All", + "ĠReyn olds", + "o oled", + "ool ed", + "oo led", + ". comments", + ".com ments", + ".comment s", + ".comm ents", + "Ġ chin", + "Ġc hin", + "Ġch in", + "Ġchi n", + ") .*", + "). *", + "Ġ или", + "Ġи ли", + "t gl", + "tg l", + "u dos", + "ud os", + "udo s", + "Ġd ÃŃas", + "ĠdÃŃa s", + "ĠdÃŃ as", + "c hai", + "ch ai", + "cha i", + ". program", + ".p rogram", + ".pro gram", + ".pr ogram", + "Ġ psz", + "Ġp sz", + "Ġps z", + "ĉ icon", + "ĉi con", + "p hil", + "ph il", + "phi l", + "ent ral", + "entr al", + "_W RAP", + "_WR AP", + "o vi", + "ov i", + "Ġnost alg", + "In finity", + "Inf inity", + "ĉ yield", + "ĉy ield", + "Ġvit amins", + "Ġvitamin s", + "Ġvita mins", + "Ġvitam ins", + "Qu aternion", + "S ink", + "Si nk", + "Sin k", + "_ goods", + "_g oods", + "_go ods", + "_good s", + "Ġ ........", + "Ġ. .......", + "Ġ... .....", + "Ġ.. ......", + "Ġ.... ....", + "Ġ..... ...", + "Ġ...... ..", + "ĠW ings", + "ĠWin gs", + "ĠWing s", + "ur idad", + "uri dad", + "- story", + "-st ory", + "\" ])ĊĊ", + "\"] )ĊĊ", + "\"]) ĊĊ", + "\"])Ċ Ċ", + "idel ity", + "Type Def", + "G tk", + "Ġ íĮ", + "Ġí Į", + "_ Main", + "_M ain", + "Ġ chez", + "Ġch ez", + "Ġche z", + "ĠR aven", + "ĠRa ven", + "ĠRav en", + "Ġpay roll", + "Ġfreel ance", + "L LU", + "LL U", + "ĠM end", + "ĠMe nd", + "ĠMen d", + "e day", + "ed ay", + "eda y", + "Api ModelProperty", + ".Form BorderStyle", + "Ġeconom ist", + "stan bul", + "Ġfr eight", + "Ġfre ight", + "Ġfrei ght", + "- Agent", + "-A gent", + "( meta", + "(m eta", + "(me ta", + "Ġsym metry", + "Ġ' ..", + "Ġ'. .", + ". Calendar", + ".C alendar", + "- aut", + "-a ut", + "-au t", + "g f", + "p ent", + "pe nt", + "pen t", + "yc lopedia", + "Ġw ishing", + "Ġwish ing", + "Ċ ĊĊĊĊĊĊĊĊĊĊĊ", + "ĊĊ ĊĊĊĊĊĊĊĊĊĊ", + "ĊĊĊĊ ĊĊĊĊĊĊĊĊ", + "ĊĊĊ ĊĊĊĊĊĊĊĊĊ", + "ĊĊĊĊĊĊ ĊĊĊĊĊĊ", + "ĊĊĊĊĊĊĊĊ ĊĊĊĊ", + "ĊĊĊĊĊ ĊĊĊĊĊĊĊ", + "ĊĊĊĊĊĊĊĊĊĊ ĊĊ", + "ĊĊĊĊĊĊĊ ĊĊĊĊĊ", + "ĊĊĊĊĊĊĊĊĊ ĊĊĊ", + "ĊĊĊĊĊĊĊĊĊĊĊ Ċ", + "Ġgentle man", + "Ġ ê³", + "Ġê ³", + "= #", + "Ġlect ures", + "Ġlecture s", + "âĢľ In", + "âĢľI n", + "Ġ! _", + "Ġ hb", + "Ġh b", + "Ġ Vendor", + "ĠV endor", + "ĠVend or", + "Rec ently", + "Recent ly", + "_ notes", + "_n otes", + "_no tes", + "_not es", + "_note s", + "æıIJ 示", + "\" My", + "\"M y", + "Headers Height", + "_ SO", + "_S O", + "Ġunw illing", + "Ġsuper hero", + "g io", + "gi o", + "p sy", + "ps y", + "Ġ Peer", + "ĠP eer", + "ĠPe er", + "ĠPee r", + "j avax", + "java x", + "jav ax", + "& apos", + "&a pos", + "ĠCr isis", + "ĠCri sis", + "ord inal", + "ordin al", + "Mem cpy", + "++++++++ ++++++++", + "- val", + "-v al", + "Ġwork book", + "- ap", + "-a p", + "= k", + "Ġmetal lic", + "Ġmetall ic", + "_ peer", + "_p eer", + "_pe er", + "By PrimaryKey", + "_ SD", + "_S D", + "u ator", + "ua tor", + "uat or", + "_SH ADER", + "_SHA DER", + ") Math", + ". Transform", + ".Trans form", + "Ġc ows", + "Ġco ws", + "Ġcow s", + "P hi", + "Ph i", + "ĠC lem", + "ĠCl em", + "ĠCle m", + "( _(\"", + "(_ (\"", + "ĠL ud", + "ĠLu d", + "- delay", + "-d elay", + "-de lay", + "-del ay", + "ĠSe curities", + "ĠSec urities", + "ĠOrth odox", + "Sym fony", + "( report", + "(re port", + "(repo rt", + "(rep ort", + "Ġent ertain", + "Ġenter tain", + "Ġentert ain", + "E PS", + "EP S", + "iz oph", + "izo ph", + "ex ual", + "I RD", + "IR D", + "ä» İ", + "Ġl ith", + "Ġli th", + "Ġlit h", + "Ġ sanitize", + "Ġs anitize", + "Ġsan itize", + "Ġsanit ize", + "Ġfem inine", + "Ġfemin ine", + "IS BN", + ". authentication", + ".auth entication", + "_ pipeline", + "_p ipeline", + "_pipe line", + "/ constants", + "/con stants", + "Ġ CONF", + "ĠCON F", + "ĠCO NF", + "Ġlu cr", + "Ġluc r", + "r icia", + "ri cia", + "ric ia", + ".t tf", + ".tt f", + ". setContent", + ".set Content", + "Ġ stan", + "Ġs tan", + "Ġst an", + "Ġsta n", + "or ean", + "ore an", + "orea n", + "ĠL loyd", + ".raw Value", + "Ġ gor", + "Ġg or", + "Ġgo r", + "ĠBr owns", + "ĠBrown s", + "ĠBrow ns", + "Re gression", + "Reg ression", + "Ġl owering", + "Ġlow ering", + "Ġlower ing", + "na issance", + "Ġbl ows", + "Ġblow s", + "Ġblo ws", + "Ġam azed", + "Ġama zed", + "Ġun related", + "Ġunre lated", + "Re views", + "Review s", + "Ġ ruby", + "Ġr uby", + "Ġrub y", + "Ġru by", + "Ġ Modifier", + "ĠMod ifier", + "Ġg iants", + "Ġgi ants", + "Ġgiant s", + "Ġgia nts", + "Ġgian ts", + ". thread", + ".t hread", + ".th read", + "Ġcon tainment", + "Ġcont ainment", + "Ġcontain ment", + "ĠStart Coroutine", + "u mat", + "um at", + "uma t", + "o release", + "or elease", + "ore lease", + "ĠR andy", + "ĠRand y", + "ĠRan dy", + "@ endif", + "@end if", + "D igest", + "Di gest", + "Dig est", + "Ġsub urban", + "Ġsubur ban", + "Ġsuburb an", + "= \");Ċ", + "=\" );Ċ", + "Ġ annonce", + "Ġan nonce", + "Ġann once", + "Ġanno nce", + "Ġannon ce", + ". variable", + ".var iable", + "\\ Foundation", + "\\F oundation", + "Ġ acre", + "Ġa cre", + "Ġac re", + "V an", + "Va n", + "Ġt uples", + "Ġtu ples", + "Ġtuple s", + "Ġtup les", + "d ns", + "dn s", + "Ġ Standing", + "ĠSt anding", + "ĠStan ding", + "ĠStand ing", + "_ large", + "_l arge", + "Ġ boxing", + "Ġbo xing", + "Ġbox ing", + "Support ActionBar", + "ĠFort une", + "ĠR um", + "ĠRu m", + "_ multiple", + "_m ultiple", + "_multi ple", + "_mult iple", + "_multip le", + "arch ical", + "Ġ fwrite", + "Ġf write", + "Ġfw rite", + "_ quote", + "_qu ote", + "Ġfoo lish", + "Ġfool ish", + "Ġcom prising", + "Ġcomp rising", + "Ġcompr ising", + "Ġ оп", + "Ġо п", + "- selected", + "-se lected", + "-select ed", + "v f", + "m aid", + "ma id", + "mai d", + "N ama", + "Na ma", + "Nam a", + "( datetime", + "(d atetime", + "(date time", + "(dat etime", + "Ġindirect ly", + "g art", + "ga rt", + "gar t", + "fix tures", + "fixture s", + "c hos", + "ch os", + "cho s", + "ĠH alo", + "ĠHa lo", + "ĠHal o", + "Ġre curring", + "Ġrec urring", + "Ġrecur ring", + "- news", + "-n ews", + "-new s", + "-ne ws", + "v il", + "vi l", + "ĠNurs ing", + "ĠNur sing", + "- produ", + "-p rodu", + "-pro du", + "-pr odu", + "Ġ HQ", + "ĠH Q", + "\\Http Foundation", + "en ci", + "enc i", + "a uen", + "au en", + "Ġ vy", + "Ġv y", + "ocr acy", + "Ġde legation", + "Ġdeleg ation", + "Ġas phalt", + "Ġasp halt", + "Ġset Selected", + "k ok", + "ko k", + "/ rest", + "/r est", + "/re st", + "/res t", + "m etics", + "me tics", + "met ics", + "metic s", + "Ġ NSDate", + "ĠNS Date", + "Ġtravel led", + "Ġtrav elled", + "Ġrec ib", + "Ġ mime", + "Ġm ime", + "Ġmi me", + "Ġmim e", + "CL IENT", + "CLI ENT", + "Ġ GU", + "ĠG U", + "Ġ HANDLE", + "ĠH ANDLE", + "ĠHAND LE", + "/ Q", + "[ z", + "Ġboth ered", + "Ġbother ed", + "ĠBB Q", + "ç as", + "ça s", + "_ examples", + "_ex amples", + "_example s", + "_exam ples", + "_ FIN", + "_F IN", + "Ġwhite Color", + "Ġastr onom", + "Ġastro nom", + "- dir", + "-d ir", + "-di r", + "Ġsovere ign", + "Ġb reeze", + "Ġbree ze", + "Ġ inning", + "Ġin ning", + "Ġinn ing", + "ĠEd monton", + "g li", + "gl i", + ".blog spot", + "j sx", + "js x", + "Ġver sa", + "Ġve rsa", + "Ġvers a", + "ĠMoh ammed", + ". Job", + ".J ob", + "-t oggler", + "-toggle r", + "Ġп олÑĮзоваÑĤ", + "ar don", + "ard on", + "ardo n", + "Ġnew born", + "Ġn aval", + "Ġna val", + "Ġnav al", + "not eq", + "note q", + "Ġt umblr", + "Ġtum blr", + "Ġh entai", + "ĠTyp ically", + "ĠTypical ly", + "Ġl oot", + "Ġlo ot", + ". Sprite", + ".S prite", + ".Sp rite", + "F light", + "Fl ight", + "Ġw avelength", + "Ġwave length", + "- sk", + "-s k", + "ĠE lle", + "ĠEl le", + "ĠEll e", + "_ exports", + "_ex ports", + "_exp orts", + "_export s", + "Ġ Ñı", + "ĠÑ ı", + "Ġ IH", + "ĠI H", + "izoph ren", + "Ġ íģ", + "Ġí ģ", + "_ primary", + "_pr imary", + "_pri mary", + "_prim ary", + "Ġm ois", + "Ġmo is", + "Ġmoi s", + "Ġ BN", + "ĠB N", + "Ġsystem ic", + "Ġsyst emic", + "Ġdifer entes", + "Ġdiferente s", + "IN CT", + "INC T", + "Ġ' 'ĊĊ", + "Ġ'' ĊĊ", + "Ġ''Ċ Ċ", + "$ q", + "Widget Item", + "c lide", + "cl ide", + "cli de", + "clid e", + "$ file", + "$f ile", + "L emma", + "Le mma", + "/ table", + "/t able", + "/tab le", + "a grid", + "ag rid", + "agr id", + "ĠMongo DB", + "i nte", + "in te", + "int e", + "Ġapp rent", + "ÂŃ ing", + "ÂŃi ng", + ". Db", + ".D b", + "Ġ ÃĤ", + "Ġà Ĥ", + "h ammer", + "ham mer", + "=' ';Ċ", + "='' ;Ċ", + "Ġbr okers", + "Ġbro kers", + "Ġbroke rs", + "Ġbroker s", + "i tlement", + "it lement", + "itle ment", + "semb lies", + "sembl ies", + "E le", + "El e", + "{ x", + "Ġ lastname", + "Ġlast name", + "< -", + "Ġ flatten", + "Ġfl atten", + "Ġflat ten", + "Ġflatt en", + "_ band", + "_b and", + ". Root", + ".R oot", + ".read FileSync", + ".readFile Sync", + "= =====", + "== ====", + "==== ==", + "=== ===", + "===== =", + ". rx", + ".r x", + "? čĊ", + "Ġmetaph or", + "T i", + "c onte", + "con te", + "cont e", + "co nte", + "Ġ debit", + "Ġde bit", + "Ġdeb it", + "Ġcon tempt", + "Ġcont empt", + "Cpp Type", + "æĶ ¯", + "Form Field", + "r atio", + "rat io", + "os opher", + "osoph er", + "oso pher", + "Ġim plant", + "Ġimp lant", + "Ġimpl ant", + "P URE", + "PU RE", + "PUR E", + "Ġ alta", + "Ġal ta", + "Ġalt a", + "_ management", + "_man agement", + "_manage ment", + "Ġre fine", + "Ġref ine", + "Ġrefin e", + "Ġ CheckBox", + "ĠCheck Box", + "ĠCh arl", + "ĠChar l", + "ĠCha rl", + "- version", + "-v ersion", + "-vers ion", + "cond itional", + "condition al", + "ven ues", + "venue s", + "Ġrifle s", + "Ġrif les", + "Ġoff spring", + "Ġoffs pring", + "Ġm illing", + "Ġmill ing", + "Ġmil ling", + "Ġmilli ng", + "Ġsharp ly", + "Ġshar ply", + "Ġunder water", + "( origin", + "(orig in", + "(or igin", + "_ Control", + "_C ontrol", + "Ġ .$", + "Ġ. $", + "Pl ugins", + "Plugin s", + "Plug ins", + "Ġd rying", + "Ġdr ying", + "Ġdry ing", + "Ġillustr ates", + "Ġillustrate s", + "Ġillust rates", + "- u", + "Ġveget arian", + "n pc", + "np c", + "He art", + "; ',Ċ", + ";' ,Ċ", + ";', Ċ", + "com ma", + "co mma", + "comm a", + "t eenth", + "te enth", + "tee nth", + "teen th", + "a san", + "as an", + "asa n", + "/ spec", + "/s pec", + "/sp ec", + "_ moves", + "_m oves", + "_move s", + "_mov es", + "_mo ves", + "- margin", + "-m argin", + "-mar gin", + "Ġ ingen", + "Ġin gen", + "Ġi ngen", + "Ġing en", + "Âł ³³", + "³³ Âł", + "Ġpro jet", + "Ġproj et", + "Ġproje t", + "Ġo tra", + "Ġot ra", + "Ġ bras", + "Ġb ras", + "Ġbr as", + "Ġbra s", + ". utc", + ".u tc", + ".ut c", + "Ġsl ept", + "Ġsle pt", + "= sub", + "=s ub", + "ab ilit", + "abil it", + "abi lit", + "p oster", + "pos ter", + "post er", + "po ster", + "Ġ sdk", + "Ġs dk", + "Ġsd k", + "ounc ill", + "ouncil l", + "Ġ wd", + "Ġw d", + "Pre paredStatement", + "ĠD rum", + "ĠDr um", + "( attribute", + "(at tribute", + "Ġ Ethernet", + "ĠEth ernet", + "ĠEther net", + "ĉ DB", + "ĉD B", + "Cal ifornia", + "c ube", + "cu be", + "[ I", + ". Created", + ".C reated", + ".Create d", + "Ġ HM", + "ĠH M", + "Ġtr acing", + "Ġtra cing", + "Forms Module", + "- you", + "-y ou", + ". currency", + ".c urrency", + ".curr ency", + "fe eding", + "feed ing", + "fee ding", + "Ġ tbody", + "Ġt body", + "Ġtb ody", + "L i", + "a ccion", + "ac cion", + "acc ion", + "acci on", + "n as", + "na s", + "Ġtr ouver", + "Ġtrou ver", + "Ġtrouve r", + "N ONE", + "NO NE", + "NON E", + "\" },čĊ", + "\"} ,čĊ", + "\"}, čĊ", + "Ġ ftp", + "Ġf tp", + "Ġft p", + "With Identifier", + "p olate", + "po late", + "pol ate", + "File Info", + "Ġpurs ued", + "Ġpursue d", + "ĠĠĠĠ čĊĠĠĠĠčĊ", + "ĠĠĠĠčĊ ĠĠĠĠčĊ", + "DE SCRIPTION", + "DESC RIPTION", + "} */Ċ", + "}* /Ċ", + "From Nib", + "Ġdec orative", + "Ġdecor ative", + "_ SSL", + "_S SL", + "_SS L", + "( chat", + "(c hat", + "(ch at", + "T LS", + "TL S", + "Ġsur prises", + "Ġsurpr ises", + "Ġsurprise s", + "al culate", + "alc ulate", + "Ġ Splash", + "ĠS plash", + "ĠSp lash", + "ĠSpl ash", + "( Configuration", + "(Config uration", + "Ġ SEM", + "ĠS EM", + "ĠSE M", + "im son", + "ims on", + "/ library", + "/lib rary", + "/l ibrary", + "< Double", + "", + "Ġ} }>", + "Ġ}} >", + "G ED", + "GE D", + "f aq", + "fa q", + "Ġoption ally", + "Ġoptional ly", + "_ Dis", + "_D is", + "Ġ Successful", + "ĠSuccess ful", + "ĠC ensus", + "Ġinc arcer", + "_ CARD", + "_C ARD", + "_CA RD", + "_CAR D", + "Ġav iation", + "Ġavi ation", + "ĠG ym", + "ĠGy m", + "Author ity", + ". Bean", + ".B ean", + ".Be an", + "sh ader", + "sha der", + "shade r", + "Not Exist", + "_ TextChanged", + "_Text Changed", + "Ġ STOP", + "ĠS TOP", + "ĠST OP", + "( team", + "(t eam", + "(te am", + "\" H", + "w g", + "Ġgr inder", + "Ġgri nder", + "Ġgrind er", + "Ġgrin der", + "Ġ stripe", + "Ġst ripe", + "Ġstr ipe", + "Ġstri pe", + "Ġstrip e", + "Ġp reservation", + "Ġpres ervation", + "Cl aim", + "Cla im", + "aver sal", + "avers al", + "w arehouse", + "ware house", + "target s", + "tar gets", + "T rust", + "Tr ust", + "Ġal lev", + "Ġall ev", + "Ġalle v", + ", www", + ",w ww", + "ou sse", + "ous se", + "_ chan", + "_c han", + "_ch an", + "_ Size", + "_S ize", + "s ystems", + "sys tems", + "system s", + "Ġob jection", + "Ġobject ion", + "Ġobj ection", + "ĠK ane", + "ĠKa ne", + "ĠKan e", + "Ġcor ros", + "Ġcorr os", + "Ġcorro s", + "Ġ DSL", + "ĠD SL", + "ĠDS L", + "Ġ ua", + "Ġu a", + "Ġ MH", + "ĠM H", + "ĠStr ategic", + "ĠStrateg ic", + "_ tcp", + "_t cp", + "_tc p", + "Ġ ê°Ĵ", + "Ġê° Ĵ", + "Ġborrow ed", + "Ġborr owed", + "ĠA ch", + "ĠAc h", + "ĉ command", + "ĉcom mand", + "Ġ gps", + "Ġg ps", + "Ġgp s", + "le ston", + "les ton", + "lest on", + "ich ever", + "iche ver", + "Ġ UA", + "ĠU A", + "Ġassault ed", + "Ġspecial izes", + "Ġspecialize s", + "ĉ search", + "ĉs earch", + "ĉse arch", + "H otel", + "Hot el", + "Ho tel", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠčĊ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠčĊ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠčĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ čĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠčĊ", + "Ġ Pitch", + "ĠP itch", + "ĠPit ch", + "Ġ Ùģ", + "ĠÙ ģ", + "READ Y", + "REA DY", + "Ġpar ental", + "Ġparent al", + "Ġparen tal", + "Ġg éné", + "Ġgé né", + "Ġgén é", + "Ġdonn ées", + "Ġde tain", + "Ġdet ain", + "T ARGET", + "Ġprotagon ist", + "Ġclear Interval", + "Ġ IconButton", + "ĠIcon Button", + "ĠGet All", + "Type Info", + "E H", + "âĢľ They", + "âĢľThe y", + "Ġ{ [", + "Ġg ag", + "Ġga g", + "Ġ Ú©", + "Ġ Dropdown", + "ĠD ropdown", + "ĠDrop down", + ". free", + ".f ree", + ".fr ee", + ".fre e", + "g one", + "go ne", + "gon e", + "i mens", + "im ens", + "ime ns", + "imen s", + "Ġin stal", + "Ġins tal", + "Ġinst al", + "ĉ curl", + "ĉc url", + "ĉcur l", + "_ CAN", + "_C AN", + "_CA N", + "Ġ Bone", + "ĠB one", + "ĠBo ne", + "ĠBon e", + "ï¼ Ķ", + "on yms", + "ony ms", + "onym s", + "- government", + "-g overnment", + ".binding Navigator", + "Ġ Dans", + "ĠD ans", + "ĠDan s", + "ĠDa ns", + "ĠMc L", + "( en", + "(e n", + "> (_", + ">( _", + "ÐĴ Ñĭ", + ".* ;čĊ", + "= j", + "- cor", + "-c or", + "-co r", + "S on", + "So n", + ".ToolStrip Item", + "- around", + "-a round", + "-ar ound", + "_ XML", + "_X ML", + "end Date", + "Ġ slack", + "Ġs lack", + "Ġsl ack", + "Ġsla ck", + "Ġrot ated", + "Ġrotate d", + "Ġno qa", + "Ġc ottage", + "Ġcott age", + "Ġencontr ar", + "_ skill", + "_s kill", + "_sk ill", + "hou ette", + "! čĊ", + ". weather", + ".we ather", + "Ġemphas ized", + "Ġemphasize d", + "å® ¶", + "ĠÑģ пиÑģ", + "ĠÑģп иÑģ", + "Ġ Compiler", + "ĠC ompiler", + "ĠCom piler", + "ĠComp iler", + "ĠCompile r", + "( android", + "(and roid", + "Ġ âĢº", + "ĠâĢ º", + ". turn", + ".t urn", + "Ġsup pression", + "Ġsuppress ion", + "Ġsupp ression", + "_ calls", + "_c alls", + "_call s", + "_cal ls", + "Ġ *@", + "Ġ* @", + "( strlen", + "(str len", + "(st rlen", + ". hex", + ".h ex", + ".he x", + "ĠB ills", + "ĠBill s", + "ĠBil ls", + "Ġ RSA", + "ĠR SA", + "ĠRS A", + "Ï Ĥ", + "Ġ Escape", + "ĠE scape", + "ĠEs cape", + "ĠEsc ape", + "ement ia", + "Ġ frontend", + "Ġfront end", + "Ġp int", + "Ġpi nt", + "Ġpin t", + "_ exc", + "_e xc", + "_ex c", + "z zo", + "zz o", + "[ ],Ċ", + "[] ,Ċ", + "[], Ċ", + "Ġ\"' ,'\"", + "Ġ\"', '\"", + "Ġ\"',' \"", + ". Environment", + ".En vironment", + "Ġafore mentioned", + "Ġend ure", + "prot otype", + "proto type", + "ther apy", + "the rapy", + "s si", + "ss i", + "D eg", + "De g", + "_ plugins", + "_pl ugins", + "_plugin s", + ". userInfo", + ".user Info", + "Pr inter", + "Print er", + "Ġ PROGRAM", + "ĠPRO GRAM", + "Ġru ins", + "Ġruin s", + "Ġemp irical", + "Ġempir ical", + "Ġ crawl", + "Ġc rawl", + "Ġcr awl", + "Ġcraw l", + "Ġcra wl", + "ĠBo iler", + "- comment", + "-com ment", + "-comm ent", + ". subplot", + ".sub plot", + "_ et", + "_e t", + "Ġ' .',", + "Ġ'. ',", + "Ġ'.' ,", + "min or", + "mi nor", + "mino r", + "ĠCustom s", + "ĠCust oms", + "Ġ yaw", + "Ġy aw", + "Ġya w", + "under line", + "Ġ Como", + "ĠC omo", + "ĠCom o", + "ĠCo mo", + "( ('", + "(( '", + "( mean", + "(m ean", + "(me an", + "Ġch aque", + "Ġcha que", + "Ġ Blocks", + "ĠB locks", + "ĠBl ocks", + "ĠBlock s", + "ĠBlo cks", + "ĠBloc ks", + ". rad", + ".r ad", + ".ra d", + "ilib rium", + "Ġ webdriver", + "Ġweb driver", + "Ġmel hor", + "d ana", + "da na", + "dan a", + "ĠAb use", + "ĠAbu se", + "ĠSouth west", + "Ġ Paren", + "ĠP aren", + "ĠPar en", + "ĠPa ren", + "ĠPare n", + "PERT IES", + "ĉ IL", + "ĉI L", + "Ġs cream", + "Ġsc ream", + "Ġscre am", + "Ġscr eam", + "v u", + "Ġin comes", + "Ġinc omes", + "Ġincome s", + "Ġincom es", + "Ġ nim", + "Ġn im", + "Ġni m", + "Ġ lace", + "Ġl ace", + "Ġla ce", + "Ġlac e", + "Ġcompens ate", + "Re verse", + "Rev erse", + "D at", + "Da t", + "_ attack", + "_att ack", + "Ġn our", + "Ġno ur", + "Ġnou r", + "a chen", + "ac hen", + "ach en", + "ache n", + "c ek", + "ce k", + "< Func", + " \"+", + ">\" +", + "Ġ tokenizer", + "Ġtoken izer", + "Ġtokenize r", + "Ġsovere ignty", + "Ġsovereign ty", + "ĠP ence", + "ĠPe nce", + "ĠPen ce", + "( )\");Ċ", + "() \");Ċ", + "()\" );Ċ", + "Ġpesso as", + "Ġpessoa s", + ". Ge", + ".G e", + "Ġ Included", + "ĠIn cluded", + "ĠInclude d", + "Ġ pagina", + "Ġp agina", + "Ġpag ina", + "Ġex posing", + "Ġexp osing", + "Ġexpos ing", + "Ġexpo sing", + "е ÑĪ", + "_ SCRIPT", + "_SC RIPT", + "/ $',", + "/$ ',", + "Th umbnail", + "× Ķ", + "webElement X", + "webElementX paths", + "press ure", + "pres sure", + "ĠC urry", + "ĠCur ry", + "_ CP", + "_C P", + "OL UTION", + "I LES", + "IL ES", + "ILE S", + "prot ect", + "o ola", + "ool a", + "oo la", + "Work space", + "Works pace", + "{ };Ċ", + "{} ;Ċ", + "Ġ UNS", + "ĠU NS", + "ĠUN S", + "Ġsymp athy", + "Ġsympath y", + "r oker", + "ro ker", + "roke r", + "rok er", + "Ġre model", + "Ġr emodel", + "Ġrem odel", + "ĉ cell", + "ĉc ell", + "Ġa top", + "Ġat op", + ". FullName", + ".Full Name", + "Ġf aut", + "Ġfa ut", + "ĠE asily", + "_ dynamic", + "_d ynamic", + "_dyn amic", + "Ġfr amed", + "Ġframe d", + "Ġfra med", + "Ġfram ed", + "Ġm otive", + "Ġmot ive", + "Ġmotiv e", + "è· ¯", + "s am", + "sa m", + "Ġ marca", + "Ġmar ca", + "Ġmarc a", + "ĠText EditingController", + "Ġd estructor", + "Ġde structor", + "Ġdestruct or", + "c ream", + "cre am", + "cr eam", + "Ġr ude", + "Ġru de", + "Ġrud e", + "Ġ Bold", + "ĠB old", + "ĠBo ld", + "ĠBol d", + "ĠInd igenous", + "Ġ gens", + "Ġg ens", + "Ġge ns", + "Ġgen s", + "Ġrel acion", + "( system", + "(s ystem", + "(sys tem", + "Ġ UIFont", + "ĠUI Font", + "ĠUIF ont", + "_ charge", + "_ch arge", + "_char ge", + "U STER", + "US TER", + "UST ER", + "E V", + ". Namespace", + ".N amespace", + ".Name space", + ".Names pace", + "Ġmer ger", + "Ġmerge r", + "Ġmerg er", + "Ġ calloc", + "Ġc alloc", + "Ġcall oc", + "Ġcal loc", + "g ang", + "ga ng", + "gan g", + "Bad Request", + "Ġs per", + "Ġsp er", + "Ġspe r", + "- design", + "-d esign", + "-de sign", + "-des ign", + "Ġ âĩ", + "Ġâ ĩ", + "C han", + "Ch an", + "Cha n", + "Ġorg anism", + "Ġorgan ism", + "Ġorganis m", + ", )", + "= id", + "=i d", + "_ plane", + "_p lane", + "_pl ane", + "_plan e", + "Ġ Cases", + "ĠC ases", + "ĠCas es", + "ĠCase s", + "ĠCa ses", + "el fast", + "elf ast", + "ĠLegisl ature", + "ĠF aker", + "ĠFa ker", + "ĠFake r", + "ĠFak er", + "Ġinv oking", + "Ġinvo king", + "- utils", + "-util s", + "( ).'", + "() .'", + "(). '", + ". face", + ".f ace", + ".fac e", + ".fa ce", + "Ġguard ian", + "my Modal", + "Ġ clipboard", + "Ġclip board", + "ĠA TM", + "ĠAT M", + "Ġpe as", + "Ġpea s", + "ĠS ylv", + "ĠSy lv", + ". calc", + ".c alc", + ".ca lc", + ".cal c", + "Ġ Contacts", + "ĠCont acts", + "ĠContact s", + "int Value", + "Ġmod ifying", + "Ġmodify ing", + "ĠB arb", + "ĠBar b", + "ĠBa rb", + ". loss", + ".l oss", + ".lo ss", + "_ percentage", + "_per centage", + "_percent age", + "As ked", + "Ask ed", + "( lst", + "(l st", + "(ls t", + "ateg orical", + "ategor ical", + "ategori cal", + "atego rical", + "- files", + "-f iles", + "-file s", + "-fi les", + "ĠRom ania", + "ĠRo mania", + "ĠRoman ia", + "ĠRoma nia", + ". Ac", + ".A c", + "Ġ hai", + "Ġh ai", + "Ġha i", + "Ġ Flying", + "ĠF lying", + "ĠFl ying", + "ĠFly ing", + "Ġ ż", + "ĠÅ ¼", + "j p", + "ĠTr ainer", + "ĠTra iner", + "ĠTrain er", + ". arc", + ".a rc", + ".ar c", + "_ deg", + "_d eg", + "_de g", + "Ġtrace back", + "Or Fail", + "F LOW", + "FL OW", + ". old", + ".o ld", + ".ol d", + "o ya", + "oy a", + "g mt", + "gm t", + "is empty", + "Ġvacc ination", + "Ġ obsolete", + "Ġob solete", + "recogn ized", + "Ġru ined", + "Ġruin ed", + "ĠR ein", + "ĠRe in", + "ĠRei n", + "Ġ Tracking", + "ĠTr acking", + "ĠTrack ing", + "x fb", + "xf b", + "ا ÛĮ", + "Ġv ære", + "Ġvæ re", + "Ġbr yster", + "Ġ ITS", + "ĠI TS", + "ĠIT S", + "Ġdes tiny", + "Ġdest iny", + "Ġdestin y", + "Ġs wear", + "Ġsw ear", + "Ġswe ar", + "Ġre des", + "Ġr edes", + "Ġred es", + "Ġrede s", + "Ġ clf", + "Ġc lf", + "Ġcl f", + "Ġfl ipped", + "Ġflip ped", + "ĉ head", + "ĉh ead", + "B luetooth", + "Bl uetooth", + "Ġ Overrides", + "ĠOver rides", + "ĠOverride s", + ": Boolean", + "_ =", + "_ lr", + "_l r", + "s pawn", + "sp awn", + "spa wn", + ": index", + "VAL UES", + "VALUE S", + "is key", + "isk ey", + "iske y", + "? \");Ċ", + "?\" );Ċ", + ".syn thetic", + "Ġ Checking", + "ĠCheck ing", + "struct ures", + "structure s", + "i ping", + "ip ing", + "ipi ng", + "Ġvoc als", + "Ġvocal s", + "- Up", + "-U p", + "ĠManufact urers", + "ĠManufacturer s", + "ĠMar riage", + "ĠMarr iage", + "代 çłģ", + "Ġgar ner", + "Ġgarn er", + "_ Client", + "_C lient", + "_Cl ient", + "par allel", + "paralle l", + "RI END", + "Ġvine gar", + "se gue", + "seg ue", + "J B", + "Ġcont acting", + "Ġcontact ing", + "ĠCar roll", + "ĠCarr oll", + "Ġout reach", + "Ġoutr each", + "t ensor", + "_ variant", + "_v ariant", + "_var iant", + "Ġt heat", + "Ġth eat", + "Ġthe at", + "l icable", + "lic able", + "lica ble", + "{ |", + "t iny", + "ti ny", + "tin y", + "_ letter", + "_l etter", + "Ġp encil", + "Ġpen cil", + "Ġpenc il", + "HeadersHeight SizeMode", + "il tro", + "ilt ro", + "iltr o", + ".auto configure", + ". drag", + ".d rag", + ".dr ag", + ". useState", + ".use State", + "Ġ BMI", + "ĠB MI", + "ĠBM I", + "h int", + "hi nt", + "hin t", + "Com pile", + "Comp ile", + "* \\", + "en ary", + "ena ry", + "Ġ lvl", + "Ġl vl", + "Ġlv l", + ". Cache", + ".C ache", + "+ =\"", + "+= \"", + "_ tv", + "_t v", + "ruit ment", + "Ġf read", + "Ġfr ead", + "Ġfre ad", + "Art icles", + "Article s", + "f ila", + "fi la", + "fil a", + "Ġpack aged", + "Ġpackage d", + "âĺ Ĩ", + "AT HER", + "ATH ER", + "ĠPl anned", + "ĠPlan ned", + "s cheme", + "sch eme", + "Ġdi ary", + "Ġdia ry", + "Ġoff enses", + "Ġoffense s", + "Ġoffen ses", + "/ F", + "Ġ Stick", + "ĠS tick", + "ĠSt ick", + "Ġc erc", + "Ġce rc", + "Ġcer c", + "ĠS lee", + "ĠSl ee", + "ĠSle e", + "ĉ ĉĠĠĠĠĠĠĠĠ", + "ĉĉ ĠĠĠĠĠĠĠĠ", + "ĉĉĠĠĠ ĠĠĠĠĠ", + "ĉĉĠ ĠĠĠĠĠĠĠ", + "ĉĉĠĠ ĠĠĠĠĠĠ", + "ĉĉĠĠĠĠĠĠĠ Ġ", + "ĉĉĠĠĠĠ ĠĠĠĠ", + "ĉĉĠĠĠĠĠ ĠĠĠ", + "ĉĉĠĠĠĠĠĠ ĠĠ", + "< Image", + "", + ";' >", + "ĉ col", + "ĉc ol", + "V G", + "_ boolean", + "_bool ean", + "_bo olean", + "re cent", + "rec ent", + "rece nt", + "Ġ *)ĊĊ", + "Ġ* )ĊĊ", + "Ġ*) ĊĊ", + "Ġ*)Ċ Ċ", + "ĠRain bow", + "om men", + "omm en", + "Ġl ur", + "Ġlu r", + "Ġop pression", + "Ġopp ression", + "Ġoppress ion", + "(\" ,\");Ċ", + "(\", \");Ċ", + "(\",\" );Ċ", + "ĠFac ility", + "DEF INED", + "DEFINE D", + "Ġn eon", + "Ġne on", + "Ġneo n", + "Ġoff ender", + "Ġoffend er", + "Ġoffen der", + "A FP", + "AF P", + "Ġ Cleaning", + "ĠC leaning", + "ĠClean ing", + "ĠCle aning", + "[ ]):", + "[] ):", + "[]) :", + "Ġund ocumented", + ". Repositories", + ".Re positories", + "ĠG uitar", + "ĠGu itar", + "ĠGui tar", + "аÑģÑģ ив", + "S kills", + "Sk ills", + "Skill s", + "Ġtest imon", + "Ġtestim on", + "rypt ography", + "ĠAm ber", + "ĠAmb er", + "ĠSt alin", + "ĠSta lin", + "Ġl one", + "Ġlo ne", + "Ġlon e", + "Ġap enas", + "Ġape nas", + "Ġdi eses", + "Ġdie ses", + "Ġdies es", + "Ġdiese s", + "Ġ Arduino", + "ĠAr duino", + "è½ ¬", + "= =-", + "== -", + "_ Act", + "_A ct", + "Ġ coded", + "Ġc oded", + "Ġco ded", + "Ġcode d", + "Ġcod ed", + "âĸ ł", + "am burger", + "amb urger", + "amburg er", + "- links", + "-l inks", + "-link s", + "Ġar mour", + "Ġarm our", + ". High", + ".H igh", + "get Content", + "getC ontent", + "s tag", + "st ag", + "sta g", + "Ġ heck", + "Ġh eck", + "Ġhe ck", + "Ġ ìĹĨ", + "ĠìĹ Ĩ", + "ĠMc Connell", + "ĠCon cert", + "ĠConc ert", + "ĠConce rt", + "Ġ Alloc", + "ĠAl loc", + "ĠAll oc", + "ä re", + "är e", + ". replaceAll", + ".replace All", + "Ġpart itions", + "Ġpartition s", + "r ott", + "ro tt", + "rot t", + "ĠF le", + "ĠFl e", + "_ TREE", + "_T REE", + "_TR EE", + "reason able", + "Ġ Reporting", + "ĠRep orting", + "ĠReport ing", + "Ġbillion aire", + "s cores", + "sc ores", + "score s", + "m ins", + "min s", + "mi ns", + "- eye", + "-e ye", + "M ORE", + "MO RE", + "ab ort", + "abor t", + "abo rt", + "ĠS WT", + "ĠSW T", + "Ġin verted", + "Ġinvert ed", + "Ġ Teachers", + "ĠTe achers", + "ĠTeacher s", + "ĠTea chers", + "ĠTeach ers", + "; n", + "Ġ astro", + "Ġa stro", + "Ġas tro", + "Ġast ro", + "Ġastr o", + "н ов", + "но в", + "а ниÑĨ", + "ан иÑĨ", + "ани ÑĨ", + "product o", + "c ountries", + "count ries", + "ĠO wen", + "ĠOw en", + "Ġcont amination", + "Ġcontamin ation", + "Ġconta mination", + "Ġv ibe", + "Ġvi be", + "Ġvib e", + "ĠE lli", + "ĠEl li", + "ĠEll i", + ". script", + ".s cript", + "ĠO live", + "ĠOl ive", + "ĠOliv e", + "D MA", + "DM A", + "v ier", + "vi er", + "vie r", + ": semicolon", + "- module", + "-m odule", + "-mod ule", + "g ressive", + "gress ive", + "a gu", + "ag u", + "_ players", + "_p layers", + "_pl ayers", + "_player s", + "_play ers", + "Ġresult ados", + "Ġresultado s", + "start ed", + "star ted", + "scroll Top", + "= ====", + "== ===", + "==== =", + "=== ==", + "Ġweigh ing", + "Ġ[ [[", + "Ġ[[ [", + "z ahl", + "za hl", + "( NS", + "(N S", + "Ġ Assertion", + "ĠAssert ion", + "le ague", + "lea gue", + ".set TextColor", + ".setText Color", + "ĉ Message", + "ĉM essage", + "Ġm oms", + "Ġmom s", + "Ġmo ms", + "_ AF", + "_A F", + ". wh", + ".w h", + "A LS", + "AL S", + "Ġaut re", + "Ġau tre", + "] ĊĊĊĊ", + "]Ċ ĊĊĊ", + "]ĊĊ ĊĊ", + "]ĊĊĊ Ċ", + ". opacity", + ".op acity", + "ĠBudd hist", + "ĠBuddh ist", + "Ġde af", + "ĠOrgan isation", + "( Global", + "(G lobal", + "en sch", + "ens ch", + "Ġhead ache", + "ĠA lien", + "ĠAl ien", + "ĠAli en", + "_ inode", + "_in ode", + "_i node", + "ĠSt ark", + "ĠStar k", + "ĠSta rk", + "Ġ æī", + "Ġæ ī", + "-l nd", + "-ln d", + "o ref", + "or ef", + "ore f", + "_ feat", + "_f eat", + "_fe at", + "Ġpedest rian", + "Ġnom inal", + "Ġnomin al", + "Ġball oon", + "Ġbal loon", + "Ġballo on", + "Ġ sprites", + "Ġs prites", + "Ġsp rites", + "Ġspr ites", + "Ġsprite s", + "Prototype Of", + "ĠA post", + "ĠAp ost", + "Ġ FEATURE", + "ĠF EATURE", + "ĠFE ATURE", + "O H", + "Ġre cess", + "Ġr ecess", + "Ġrec ess", + "Ġrece ss", + "ĠD onna", + "ĠDon na", + "con sumer", + "cons umer", + "consum er", + "consume r", + "$ GLOBALS", + "ĠG IF", + "ĠGI F", + "- frame", + "-f rame", + "-fr ame", + "In icio", + "Ini cio", + "Ġpass ages", + "Ġpassage s", + "Date String", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + ". byte", + ".b yte", + ".by te", + "B ug", + "Bu g", + "initial izer", + "initialize r", + "p kt", + "pk t", + "od ium", + "odi um", + "Ġ DER", + "ĠD ER", + "ĠDE R", + ". ops", + ".op s", + ".o ps", + "l eri", + "le ri", + "ler i", + "Ġgift ed", + "Ġgif ted", + "Ġ detach", + "Ġde tach", + "Ġdet ach", + "ter rain", + "terra in", + "terr ain", + "el ters", + "elt ers", + "elter s", + "ãģ ı", + ". loader", + ".l oader", + ".load er", + ".lo ader", + "ĠN GO", + "ĠNG O", + "str ncmp", + "K h", + "( fontSize", + "(font Size", + "r ocket", + "ro cket", + "rock et", + "roc ket", + "Ġpreced ent", + "ĠAur ora", + "Ġ Experiment", + "ĠEx periment", + "i sphere", + "is phere", + "isp here", + "En coded", + "Enc oded", + "Encode d", + "Ġ âĢĵĊĊ", + "ĠâĢĵ ĊĊ", + "ĠâĢĵĊ Ċ", + "Ġpy ramid", + "ĠAnn iversary", + "o fil", + "of il", + "ofi l", + "ë Ł", + "( plugin", + "(pl ugin", + "C oeff", + "Co eff", + "Ġco operate", + "Ġcooper ate", + "Ġcoop erate", + "Ġpredomin antly", + "Ġpredominant ly", + "I SM", + "IS M", + "Ph rase", + "_ DEFINE", + "_DE FINE", + "_DEF INE", + "_DEFIN E", + "F lip", + "Fl ip", + "AMIL Y", + "AMI LY", + "ĠMark ets", + "ĠMarket s", + "Ġ StreamReader", + "ĠStream Reader", + "Ġ Combine", + "ĠC ombine", + "ĠCom bine", + "ĠComb ine", + "Ġmanus cript", + "z za", + "zz a", + ", tp", + ",t p", + "Wh atever", + "What ever", + "IT ICAL", + "igh bour", + "ighb our", + "Data Provider", + ". Texture", + ".Text ure", + "priv acy", + ". SDK", + ".S DK", + "Ġre charge", + "Ġ cpp", + "Ġc pp", + "Ġcp p", + "Ġ CFG", + "ĠC FG", + "ĠCF G", + "( holder", + "(h older", + "( py", + "(p y", + "m ot", + "mo t", + "Ġsa voir", + "Ġsav oir", + "ĠR osa", + "ĠRo sa", + "ĠRos a", + "ĠP Cs", + "ĠPC s", + "Ġ íĻ", + "Ġí Ļ", + ".her oku", + ".hero ku", + "Ġf ren", + "Ġfr en", + "Ġfre n", + "ĠR iley", + "ĠRi ley", + "a gate", + "ag ate", + "aga te", + "Ġs ond", + "Ġso nd", + "Ġson d", + ". xlsx", + ".x lsx", + ".xls x", + "Ġh acked", + "Ġhack ed", + "Ġhac ked", + "st ad", + "sta d", + "G i", + "Ġs anity", + "Ġsan ity", + "Ġsanit y", + "ĠSql DataAdapter", + ".. .\",", + "... \",", + "...\" ,", + "ĠP ussy", + "Ġ ****************", + "Ġ** **************", + "Ġ**** ************", + "Ġ******** ********", + "Ġhass le", + "_P ARENT", + "_PAR ENT", + "ĠU AE", + "ĠUA E", + "Ġbegin ners", + "Ġbeginner s", + "( Client", + "(C lient", + "(Cl ient", + "Ġstat istically", + "Ġstatist ically", + "Ġstatistical ly", + "Ġstatistic ally", + ". hour", + ".h our", + "e delta", + "ed elta", + "Ġ traction", + "Ġt raction", + "Ġtr action", + "Ġtra ction", + "Ġtract ion", + "u elve", + "uel ve", + "a rat", + "ar at", + "ara t", + "Ġsa una", + "Ġsau na", + "IN VALID", + "INVAL ID", + "Ġindict ment", + "AL LE", + "ALL E", + "Ġd issent", + "Ġdis sent", + "Ġdiss ent", + "Ġdisse nt", + "Ġ Typography", + "ĠTyp ography", + "Ġintent ional", + "Ġintention al", + "s it", + "si t", + "ĠAn imals", + "ĠAnimal s", + "ĠAnim als", + "Ġcoun tryside", + "Ġcountry side", + "Ġ uart", + "Ġu art", + "Ġua rt", + "} \\\"", + "}\\ \"", + "Ġseam less", + "¾ 示", + "Ġ autos", + "Ġa utos", + "Ġaut os", + "Ġauto s", + "Ġau tos", + "Ġ\" '\";Ċ", + "Ġ\"' \";Ċ", + "Ġ\"'\" ;Ċ", + "F lush", + "Fl ush", + "AN NOT", + "ANN OT", + "Ġal gebra", + "Ġalg ebra", + "as soc", + "ass oc", + "asso c", + "ĠW aters", + "ĠWater s", + "ĠWat ers", + "ĠWa ters", + "Ġprepar ations", + "Ġpreparation s", + "r onym", + "ro nym", + "ron ym", + "[, ]", + "S ans", + "San s", + "Sa ns", + "Ġarm ies", + "i peg", + "ip eg", + "ipe g", + "Ġcre amy", + "Ġcream y", + "Ġcrea my", + ". art", + ".a rt", + ".ar t", + "e tre", + "et re", + "etr e", + "Ġ Animated", + "ĠAn imated", + "ĠAnim ated", + "Ġun pleasant", + "e mean", + "em ean", + "eme an", + "g reat", + "gr eat", + "gre at", + "i Äħ", + "Ġ Earlier", + "ĠEar lier", + "ĠEarl ier", + "Ġc hic", + "Ġch ic", + "Ġchi c", + "Ġpres erving", + "( exec", + "(e xec", + "(ex ec", + "ĠInvest igation", + "ĠInvestig ation", + "ĉ GPIO", + "ĉG PIO", + "Ġrig orous", + "Ġrigor ous", + "i jo", + "ij o", + "= num", + "=n um", + "Ġ toolStrip", + "Ġt oolStrip", + "Ġtool Strip", + ") set", + ")s et", + "+ \"&", + "+\" &", + "Ġ Acceler", + "ĠAcc eler", + "Ġdevelop mental", + "Ġdevelopment al", + "is posable", + "Ġflaw ed", + "Ġfla wed", + "r ene", + "re ne", + "ren e", + "Up dating", + "Ġwatch dog", + "Ġden ominator", + "Ġdenom inator", + "Ġdenomin ator", + "Ġsubur bs", + "Ġsuburb s", + "Ġ ...)", + "Ġ... )", + "Ġ.. .)", + "Ġconv ictions", + "Ġconviction s", + "Ġconvict ions", + "c losure", + "clo sure", + ". IP", + ".I P", + "Ġtrans lates", + "Ġtransl ates", + "Ġtranslate s", + ".s wt", + ".sw t", + ". Trace", + ".T race", + ".Tr ace", + "Ġmet tre", + ". isEnabled", + ".is Enabled", + "Ġ Effective", + "ĠE ffective", + "ĠEffect ive", + "ĠEff ective", + ". toInt", + ".to Int", + "Ġen chant", + "Ġench ant", + "Ġst unned", + "Ġstun ned", + "Ġ poi", + "Ġp oi", + "Ġpo i", + "/ code", + "/c ode", + "/co de", + "a dm", + "ad m", + ".data binding", + ".datab inding", + ".databind ing", + "Ġ Lorem", + "ĠL orem", + "ĠLo rem", + "ĠLore m", + "ĠLor em", + "________________________________ ________________________________", + "Ġ ledger", + "Ġled ger", + "Ġledge r", + "Ġc ara", + "Ġcar a", + "Ġca ra", + "ĠG ir", + "ĠGi r", + "Ġw aits", + "Ġwait s", + "Ġwa its", + "U no", + "Un o", + "Ġ cwd", + "Ġc wd", + "Ġcw d", + "è¾ ij", + "ĠT Result", + "Ġre jo", + "Ġrej o", + "Ġe mitted", + "Ġem itted", + "Ġemit ted", + "ĠWest minster", + "ä¸Ģ 个", + "n ek", + "ne k", + "_T is", + "Ġen act", + "ĉ with", + "ĉw ith", + "or gia", + "org ia", + "Ġj ue", + "Ġju e", + "Per form", + "S PATH", + "SP ATH", + "SPA TH", + ". topic", + ".t opic", + ".to pic", + ".top ic", + "ĠD aten", + "ĠDate n", + "ĠDa ten", + "ĠDat en", + "Ạ§", + "Ġsit io", + "Ġsiti o", + "_ MM", + "_M M", + "\" So", + "\"S o", + "b ial", + "bi al", + "bia l", + "Ġ scoped", + "Ġsc oped", + "Ġscope d", + "Ġsco ped", + "Ġscop ed", + "Re quires", + "Require s", + "Ġ TOTAL", + "ĠT OTAL", + "ĠCh ancellor", + "( contents", + "(content s", + "(cont ents", + "Ġste alth", + "Ġsteal th", + "dev ices", + "device s", + "- pass", + "-p ass", + "il ih", + "ili h", + "ĠMal colm", + "ĠDe pot", + "ĠDep ot", + "Ġcon figur", + "Ġconfig ur", + "a ussian", + "aus sian", + "auss ian", + "_ constraint", + "_con straint", + "в еÑĤ", + "ве ÑĤ", + "G RA", + "GR A", + "Ġ Rates", + "ĠR ates", + "ĠRa tes", + "ĠRate s", + "ĠRat es", + ".dataGridView TextBoxColumn", + "ĠN obel", + "ĠNo bel", + "ĠNob el", + "i tics", + "it ics", + "iti cs", + "itic s", + "Ġignor ant", + "Ġ Reporter", + "ĠRe porter", + "ĠReport er", + "ĠEb ola", + "Ġ Shock", + "ĠSh ock", + "ĠSho ck", + "_ relation", + "_re lation", + "_rel ation", + "ĠN inja", + "ĠNin ja", + ") c", + "Ġ ticker", + "Ġt icker", + "Ġti cker", + "Ġtick er", + "Ġtic ker", + ". isChecked", + ".is Checked", + "ĠSup pliers", + "ĠSupplier s", + "ĠR apid", + "ĠRa pid", + "ĠRap id", + "Level s", + "âĤ¬ âĦ¢", + "ĉ queue", + "ĉq ueue", + "Ġ chop", + "Ġc hop", + "Ġch op", + "Ġcho p", + "Ġ Unix", + "ĠUn ix", + "ĠUni x", + "re ject", + "rej ect", + "- calendar", + "-c alendar", + "-cal endar", + "( sort", + "(s ort", + "(so rt", + "è ne", + "èn e", + "erc icio", + "Ġh ect", + "Ġhe ct", + "CALL TYPE", + "r oupon", + "ro upon", + "rou pon", + "roup on", + "Ġrent als", + "Ġrental s", + "author s", + "auth ors", + "{ name", + "{n ame", + "ĠF IFO", + "ĠFI FO", + "Ġ lassen", + "Ġl assen", + "Ġlas sen", + "Ġ Nous", + "ĠN ous", + "ĠNo us", + "ĠNou s", + "Ġsn apped", + "Ġsnap ped", + "Ġsna pped", + "Ġf ertility", + "Ġfer tility", + "Ġfert ility", + "Ġfertil ity", + "\" log", + "cl icked", + "click ed", + "Ġplan ting", + "Ġplant ing", + "Ġ gb", + "Ġg b", + "/ output", + "/out put", + "PE AT", + "Ġ categoria", + "Ġc ategoria", + "Ġcategor ia", + "Ġ bach", + "Ġb ach", + "Ġba ch", + "Ġbac h", + "Prof essor", + "i nth", + "in th", + "int h", + "\" ]čĊ", + "\"] čĊ", + "Rec order", + "Record er", + "s erde", + "ser de", + "Ġ Transmission", + "ĠTrans mission", + "t rad", + "tr ad", + "tra d", + "Ġtur bo", + "Ġturb o", + "_ VERTEX", + "_VER TEX", + "\\ Event", + "\\E vent", + "il ver", + "Ġbod ily", + "Ġ Sources", + "ĠS ources", + "ĠSource s", + "ĠSour ces", + "Ġkill ings", + "Ġkilling s", + "Ġkil lings", + ".xr TableCell", + "Ġfol ded", + "Ġfold ed", + "/ legal", + "/l egal", + "u ner", + "un er", + "une r", + "ĠR ifle", + "ĠRif le", + "ĠM IDI", + "ĠMI DI", + "ĠMID I", + "_Selected IndexChanged", + ".Size Type", + "Ġ WebSocket", + "ĠWeb Socket", + "Ġse leccion", + "Ġsele ccion", + "S and", + "San d", + "Sa nd", + "ot ros", + "otr os", + "Ġen vision", + "Ġenv ision", + "Ġenvis ion", + "/ etc", + "/e tc", + "ĠMel issa", + "S pot", + "Sp ot", + "Spo t", + "н ое", + "но е", + "_ ARM", + "_A RM", + "_AR M", + "At tempt", + "Att empt", + "Ġ BI", + "ĠB I", + "ãģ Ķ", + "Ġ DU", + "ĠD U", + "Ġback lash", + "st ride", + "str ide", + "stri de", + "/ classes", + "/c lasses", + "/class es", + "/cl asses", + "Ġtext Color", + "_ staff", + "_st aff", + "_sta ff", + "ob lin", + "obl in", + "ag enta", + "agent a", + "agen ta", + ". collections", + ".c ollections", + ".col lections", + ".collection s", + ".collect ions", + ".coll ections", + "il lage", + "ill age", + "illa ge", + "' čĊčĊ", + "'čĊ čĊ", + "fl atten", + "flat ten", + "_ sales", + "_s ales", + "_sale s", + "_sal es", + "_sa les", + "_ MASTER", + "_M ASTER", + "_MA STER", + "T W", + "_ da", + "_d a", + "P itch", + "ph ies", + "phi es", + "Ġz ombies", + "Ġzombie s", + "Ġ VERY", + "ĠV ERY", + "ĠVER Y", + "ĠVE RY", + "ĠPh armacy", + "ĠPharm acy", + "ĠPharmac y", + "ĠPharma cy", + "Ġprogress Bar", + "Ġhas htag", + "Ġhash tag", + "S idebar", + "Side bar", + "@ stop", + "@s top", + "( pc", + "(p c", + "ол ж", + "M AKE", + "MA KE", + "ĠC oron", + "ĠCo ron", + "ĠCor on", + "Ġkv inner", + "Ġkvin ner", + "Ġkvinn er", + "Ġkvinne r", + "ĠM aid", + "ĠMa id", + "ĠMai d", + "b ob", + "bo b", + ". titleLabel", + ".title Label", + "Ġsuccess es", + "Ġsucc esses", + "Ġsucces ses", + "ĠDem ocracy", + "ĠDemocr acy", + "ĠS urgery", + "ĠSurg ery", + "ĠSurge ry", + "Ġco ugar", + "Ġcou gar", + "Ġ curso", + "Ġcur so", + "Ġcurs o", + "Ġl oro", + "Ġlo ro", + "Ġlor o", + "ist ency", + "iste ncy", + "isten cy", + "Sen ior", + "æ k", + "Ġ AAA", + "ĠA AA", + "ĠAA A", + "Ġ BOOK", + "ĠB OOK", + "ĠBO OK", + "к о", + "W STR", + "WS TR", + "Ġ */,Ċ", + "Ġ* /,Ċ", + "Ġ*/ ,Ċ", + "Ġ*/, Ċ", + "o yal", + "oy al", + "oya l", + ". vector", + ".v ector", + ".vec tor", + "Ġ SPEC", + "ĠS PEC", + "ĠSP EC", + "ĠSPE C", + "S SF", + "SS F", + "Ġcomp uls", + "ĠAppe als", + "ĠAppeal s", + "ĠW inston", + "ĠWin ston", + "ĠWins ton", + "ĠMock ito", + "con trib", + "cont rib", + "contr ib", + "contri b", + ". available", + ".a vailable", + ".av ailable", + "entity Manager", + "a rias", + "ar ias", + "ari as", + "aria s", + "_ sale", + "_s ale", + "_sal e", + "_sa le", + "_ rs", + "_r s", + "Ġde coding", + "Ġdec oding", + "Ġdeco ding", + "Ġ locator", + "Ġl ocator", + "Ġloc ator", + "ol ith", + "oli th", + "olit h", + "Ġ kol", + "Ġk ol", + "Ġko l", + "Ġ ascii", + "Ġasc ii", + "ĠR ut", + "ĠRu t", + "/ interface", + "ĉ ĉĉĉĉĉĠĠĠ", + "ĉĉ ĉĉĉĉĠĠĠ", + "ĉĉĉĉ ĉĉĠĠĠ", + "ĉĉĉ ĉĉĉĠĠĠ", + "ĉĉĉĉĉ ĉĠĠĠ", + "ĉĉĉĉĉĉ ĠĠĠ", + "ĉĉĉĉĉĉĠ ĠĠ", + "ĉĉĉĉĉĉĠĠ Ġ", + "Ġ Numer", + "ĠN umer", + "ĠNum er", + "ĠNu mer", + ". flip", + ".f lip", + ".fl ip", + "- del", + "-d el", + "-de l", + "Ġbol ster", + "Ġbols ter", + "on omic", + "ono mic", + "onom ic", + "Ġ zm", + "Ġz m", + "L G", + "Find By", + "Ġ adaptive", + "Ġad aptive", + "Ġadapt ive", + "Ġada ptive", + "l oo", + "lo o", + "Ġ vue", + "Ġv ue", + "Ġvu e", + "( reverse", + "(re verse", + "_ canvas", + "_c anvas", + "_can vas", + ". roles", + ".r oles", + ".role s", + ".ro les", + "ific ado", + "ifica do", + "ven ient", + "\" As", + "\"A s", + "Ġ Entr", + "ĠEn tr", + "ĠEnt r", + "al igned", + "align ed", + "Ġbere its", + "/ //ĊĊ", + "// /ĊĊ", + "/// ĊĊ", + "///Ċ Ċ", + ".g wt", + ". employee", + ".e mployee", + "_ cli", + "_c li", + "_cl i", + "Ġanticip ate", + "éĻ IJ", + "Ġp ik", + "Ġpi k", + "Ġmush rooms", + "Ġmushroom s", + "( tt", + "(t t", + "Ġ oma", + "Ġo ma", + "Ġom a", + "ĠSan chez", + "_ google", + "_g oogle", + "_go ogle", + ". Valid", + ".Val id", + "Ġ FileName", + "ĠFile Name", + "iv ative", + "k ed", + "ke d", + "- war", + "-w ar", + "Ġm aturity", + "Ġmat urity", + "и д", + "Ġ miner", + "Ġm iner", + "Ġmin er", + "Ġmi ner", + "Ġmine r", + "Re ducers", + "Reduc ers", + "Reducer s", + "Reduce rs", + "Ġ LatLng", + "ĠL atLng", + "ĠLat Lng", + "_ STD", + "_S TD", + "_ST D", + "D igits", + "Digit s", + "Dig its", + "C alc", + "Cal c", + "Ca lc", + "- upload", + "-up load", + "Ġhand ic", + "Ġhan dic", + "ี à¹Ī", + "eg rated", + "egr ated", + "egrate d", + "egra ted", + "Ġ STM", + "ĠS TM", + "ĠST M", + "C lients", + "Client s", + "Cl ients", + "Cli ents", + "ĠTur bo", + "S YNC", + "SY NC", + "Ġphot ographers", + "Ġphotograph ers", + "Ġphotographer s", + ". Out", + ".O ut", + ". character", + ".char acter", + "B UILD", + "BU ILD", + ". unlock", + ".un lock", + "Ġar ises", + "Ġarise s", + "Ġ Commands", + "ĠComm ands", + "ĠCommand s", + "(\" \");čĊ", + "(\"\" );čĊ", + "(\"\") ;čĊ", + "(\"\"); čĊ", + "_ FORE", + "_F ORE", + "_FOR E", + "; ',", + ";' ,", + "+ \"'", + "+\" '", + ". Images", + ".Image s", + ".Im ages", + "\" ){", + "\") {", + "ĠM eyer", + "ĠMe yer", + "ĠMey er", + "Ġneg atively", + "Ġnegative ly", + "Ġ DLL", + "ĠD LL", + "ĠDL L", + "Ġ exe", + "Ġe xe", + "Ġex e", + "Ġdef iciency", + "Ġwild ly", + "- switch", + "-s witch", + "-sw itch", + "con struction", + "construct ion", + "Ġexception ally", + "Ġexceptional ly", + "ĠL iz", + "ĠLi z", + "/ java", + "/j ava", + "/jav a", + "Ġthe irs", + "Ġtheir s", + "ĠCon temporary", + "ĠCont emporary", + "l is", + "li s", + ".fill Rect", + "ĠN FC", + "ĠNF C", + "Ġre he", + "Ġreh e", + "( numbers", + "(num bers", + "(number s", + "Ġr aster", + "Ġra ster", + "Ġras ter", + "Ġrast er", + "Ġfig uring", + "Ġfigur ing", + "Ġshow c", + "Ġsho wc", + "ĠJ ill", + "ĠJi ll", + "Ġar cade", + "Ġarc ade", + "ĠConstruct s", + "m dl", + "md l", + "( '|", + "(' |", + "Ġident ifiers", + "Ġidentifier s", + "Ġ stellar", + "Ġst ellar", + "( Connection", + "Ġ\" {{", + "Ġ\"{ {", + "y or", + "yo r", + "( mysqli", + "(m ysqli", + "(mysql i", + "Ġd ove", + "Ġdo ve", + "Ġdov e", + "Of Birth", + ". disconnect", + ".dis connect", + "_ hi", + "_h i", + "Ġzw ischen", + "ĠGr und", + "i ros", + "ir os", + "iro s", + "_ Array", + "_A rray", + ". onclick", + ".on click", + "an som", + "ans om", + "An swers", + "Answer s", + "Ans wers", + "ĉ remove", + "ĉre move", + "F a", + "Ġh urry", + "Ġhur ry", + "- inf", + "-in f", + "-i nf", + "Ġ getClass", + "Ġget Class", + "ĠgetC lass", + "ĠReg ulation", + "Ġ FLAGS", + "ĠFLAG S", + "m isc", + "mi sc", + "mis c", + "K en", + "Ke n", + "_ heading", + "_head ing", + "_he ading", + "G Hz", + "GH z", + "- entry", + "-en try", + "Ġbi ography", + "S ig", + "Si g", + "- mf", + "-m f", + "W atcher", + "Watch er", + "Wat cher", + "âĢľ A", + "} px", + "Ġsp icy", + "Ġspi cy", + "_ sq", + "_s q", + "L ost", + "Lo st", + "Los t", + "( track", + "(t rack", + "(tr ack", + "а ли", + "ал и", + "Desc ending", + "< bits", + " ((", + ">( (", + "s urvey", + "sur vey", + "Ġ íĺ", + "Ġí ĺ", + ".. .')Ċ", + "... ')Ċ", + "...' )Ċ", + "Ġ Divider", + "ĠDi vider", + "ĠDiv ider", + "ĠDivide r", + "o sl", + "os l", + "_ CANCEL", + "_C ANCEL", + "_CAN CEL", + "_ prepare", + "_pre pare", + "_prep are", + "s tin", + "st in", + "sti n", + "ĠHe ath", + "ĠHeat h", + ". PrimaryKey", + ".Primary Key", + "Ġ âĨIJ", + "ĠâĨ IJ", + "ĠLocal DateTime", + "ĠLocalDate Time", + "Ġco operative", + "Ġcooper ative", + "L earning", + "Le arning", + "Learn ing", + ". enqueue", + ".en queue", + "Ġ goog", + "Ġg oog", + "Ġgo og", + "Ġgoo g", + "Ġ Regression", + "ĠRe gression", + "ĠReg ression", + "i mates", + "im ates", + "imate s", + "ima tes", + "imat es", + "Ġvoy eur", + "Ġ Drink", + "ĠD rink", + "ĠDr ink", + "p lug", + "pl ug", + "Ġl ender", + "Ġle nder", + "Ġlen der", + "Ġlend er", + "m ana", + "man a", + "ma na", + "Ġperson nes", + "Ġpersonne s", + "Ġpersonn es", + "yp se", + "yps e", + "Ġ unlink", + "Ġun link", + "Ġunl ink", + "ĠRa vens", + "ĠRav ens", + "ĠRaven s", + "Ġh urd", + "Ġhur d", + "Ġhu rd", + "Ġperiod ically", + "Ġperiodic ally", + "AR GS", + "ARG S", + "Ġ GH", + "ĠG H", + "char acters", + "character s", + ".. .\"ĊĊ", + "... \"ĊĊ", + "...\" ĊĊ", + "...\"Ċ Ċ", + "- establish", + "Ġ dn", + "Ġd n", + "( condition", + "(con dition", + "(cond ition", + "Ġ Gravity", + "ĠGr avity", + "Ġes tas", + "Ġest as", + "Ġesta s", + "_ focus", + "_f ocus", + "C reature", + "Cre ature", + "Cr eature", + "Creat ure", + "( site", + "(s ite", + "(si te", + "Ġc arr", + "Ġcar r", + "Ġca rr", + "Ġ RL", + "ĠR L", + "Ġ RI", + "ĠR I", + "ĠM oto", + "ĠMo to", + "ĠMot o", + "A SF", + "AS F", + "Ġ Luckily", + "ĠLuck ily", + "ĉ Route", + "ĉR oute", + "Ġ entropy", + "Ġent ropy", + "Ġentr opy", + "( \",\"", + "(\" ,\"", + "(\", \"", + "C ollect", + "Col lect", + "Coll ect", + "( contact", + "(cont act", + "ĠFlor ence", + "ĠFlo rence", + "Ġpremium s", + "Ġpremi ums", + "Ġl ifecycle", + "Ġlife cycle", + "Ġlif ecycle", + "Ġb ans", + "Ġban s", + "Ġba ns", + "x ef", + "xe f", + "Web Kit", + "Ġ Floating", + "ĠF loating", + "ĠFloat ing", + "ĠFlo ating", + "Ġ cosa", + "Ġc osa", + "Ġco sa", + "Ġcos a", + "S pecific", + "Spec ific", + "ĠLo ans", + "ĠLoan s", + "b read", + "br ead", + "bre ad", + "Ġdes criptors", + "Ġdescriptor s", + "Ġ{ :.", + "Ġ{: .", + "TH READ", + "ĠT rent", + "ĠTr ent", + "ĠTre nt", + "Ġs cop", + "Ġsc op", + "Ġsco p", + "Q A", + "ĠAn tar", + "ĠAnt ar", + "p el", + "pe l", + "_ difference", + "_d ifference", + "_diff erence", + "_ changes", + "_ch anges", + "_change s", + "_chan ges", + "( ...)", + "(... )", + "(.. .)", + "Ġ Rotation", + "ĠR otation", + "ĠRot ation", + "ĠL GPL", + "ĠLG PL", + "Ġ JUST", + "ĠJ UST", + "( Task", + "(T ask", + "_ subset", + "_sub set", + "_subs et", + "Ġ TRANS", + "ĠTR ANS", + "ĠTRAN S", + "åĬ Ľ", + "ĠS cout", + "ĠSc out", + "ĠSco ut", + "- popup", + "-p opup", + "-pop up", + "Ġsm oked", + "Ġsmoke d", + "Ġsmo ked", + "_ Class", + "_C lass", + "_Cl ass", + "Ġturn over", + "Ġturno ver", + "br akk", + "bra kk", + "ĠRock y", + "ĠRo cky", + "ĠRoc ky", + "t as", + "ta s", + ".Regular Expressions", + "ĠElli ott", + "ĠElliot t", + "Ġ Spinner", + "ĠSp inner", + "ĠSpin ner", + "DUCT ION", + "DU CTION", + "Ġl ibre", + "Ġli bre", + "Ġlib re", + "Ġlibr e", + "Ġmol to", + "Ġmolt o", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠ", + "Ġ FTP", + "ĠF TP", + "ĠFT P", + "m peg", + "mp eg", + "( features", + "(f eatures", + "(feature s", + "(fe atures", + "Ġb ald", + "Ġbal d", + "Ġba ld", + "ĠV id", + "ĠVi d", + "Ġsh outing", + "Ġshout ing", + "Ġsho uting", + "L int", + "Li nt", + "Lin t", + "Ġ sockets", + "Ġs ockets", + "Ġsocket s", + "Ġsock ets", + "Ġp row", + "Ġpro w", + "Ġpr ow", + "Ġnou velle", + "Ġnouvel le", + "Ġnouve lle", + "is card", + "isc ard", + "ĠS ponsor", + "Ġ consulta", + "Ġcons ulta", + "Ġconsult a", + "Ġconsul ta", + ") ));", + ")) );", + "))) ;", + "Ind ian", + "India n", + "ĠR aspberry", + "Ġteam mate", + "Ġ JWT", + "ĠJ WT", + "ĠJW T", + "ĠG hana", + "ĠGh ana", + "Ġ cakes", + "Ġc akes", + "Ġca kes", + "Ġcake s", + "pr imer", + "prim er", + "prime r", + "pri mer", + "form a", + "for ma", + "erg arten", + "_ Manager", + "_M anager", + "_Man ager", + "Ġpre season", + "G AME", + "GA ME", + "| \"", + "ĠB rock", + "ĠBr ock", + "ĠBro ck", + "Ġocc upy", + "Ġoccup y", + "Ġdecor ations", + "Ġdecoration s", + "á nd", + "án d", + "Ġ cot", + "Ġc ot", + "Ġco t", + "Ġp aran", + "Ġpar an", + "Ġpara n", + "Ġpa ran", + "D isk", + "Dis k", + "Di sk", + "r emain", + "re main", + "rem ain", + "rema in", + "> ?", + "St rong", + "Str ong", + "Ġf rance", + "Ġfr ance", + "Ġfra nce", + "Ġfran ce", + "Ġfranc e", + "ĠE ra", + "ĠEr a", + "- cr", + "-c r", + ".Buffer edReader", + ".Buffered Reader", + "ĠParad ise", + "ĠV AT", + "ĠVA T", + "ĠAn ders", + "ĠAnd ers", + "Ġl imb", + "Ġli mb", + "Ġlim b", + "amp oo", + "ampo o", + "Ġimper ative", + "UT ILITY", + "UTIL ITY", + "Ġ Recognition", + "ĠRec ognition", + "ĠRecogn ition", + "Ġragaz ze", + "Ġp ops", + "Ġpop s", + "Ġpo ps", + "y press", + "yp ress", + "Ġemb argo", + "Ġembar go", + "// {Ċ", + "Ġs yll", + "Ġsy ll", + "P TR", + "PT R", + "åŃĺ åľ¨", + "Ġdid nt", + "Ġdidn t", + "M ailer", + "Mail er", + "Ma iler", + "Ġacad emics", + "Ġacademic s", + "ĠFr auen", + "ĠFra uen", + "ĠFrau en", + "ne ider", + "- rel", + "-r el", + "-re l", + "Ġrain bow", + "( In", + "(I n", + "Ġs liced", + "Ġsl iced", + "Ġslice d", + "Ġslic ed", + "= ============Ċ", + "== ===========Ċ", + "==== =========Ċ", + "======== =====Ċ", + "=== ==========Ċ", + "============ =Ċ", + "============= Ċ", + "=========== ==Ċ", + "========= ====Ċ", + "========== ===Ċ", + "====== =======Ċ", + "===== ========Ċ", + "======= ======Ċ", + "( send", + "(s end", + "(se nd", + "NSMutable Dictionary", + "v os", + "vo s", + "( package", + "(p ackage", + "(pack age", + "Ġord inance", + "Ġordin ance", + "view er", + "vie wer", + "ĠSan tos", + "ĠSant os", + "ĠSanto s", + "- selling", + "-s elling", + "Ġ gov", + "Ġg ov", + "Ġgo v", + "et tle", + "ett le", + "Ġfound ers", + "Ġfo unders", + "Ġfounder s", + "Ġw aking", + "Ġwa king", + "s lashes", + "sl ashes", + "slash es", + "-p ound", + "-po und", + "re cht", + "rec ht", + "rech t", + "ا ت", + "Ø§Ø ª", + ". onClick", + ".on Click", + "Ġn ord", + "Ġno rd", + "Ġnor d", + "st änd", + "_ when", + "_w hen", + "_wh en", + "U TERS", + "UT ERS", + "UTE RS", + "i cc", + "ic c", + "Ġcaps ule", + "ĠW id", + "ĠWi d", + "M arc", + "Mar c", + "Ma rc", + "ภ¸", + "r ored", + "ro red", + "ror ed", + "U GE", + "UG E", + "LO UD", + "Ġ Audit", + "ĠA udit", + "ĠAud it", + "ĠAu dit", + "ĠAudi t", + "ip ients", + "ipient s", + "ipi ents", + "op ian", + "opia n", + "opi an", + "ĠS ue", + "ĠSu e", + "Ġwur den", + "Ġwurde n", + ". Helpers", + ".H elpers", + ".Helper s", + ".Help ers", + "Ġf actions", + "Ġfact ions", + "Ġfa ctions", + "Ġfaction s", + "[ np", + "[n p", + "- than", + "-t han", + "-th an", + "Ġre co", + "Ġr eco", + "Ġrec o", + "Ġ kas", + "Ġk as", + "Ġka s", + "Ġ cmds", + "Ġcmd s", + "Ġcm ds", + "/ network", + "/n etwork", + "/net work", + "x bf", + "xb f", + "get Color", + "getC olor", + "Ġ biased", + "Ġbi ased", + "Ġbias ed", + "ĠL ak", + "ĠLa k", + "D atas", + "Data s", + "Da tas", + "Dat as", + "v ents", + "ve nts", + "vent s", + "ven ts", + "Ġ ë²", + "Ġë ²", + "_ PS", + "_P S", + ". Validate", + ".Valid ate", + "Inv oker", + "Invoke r", + "Ġne uen", + "Ġneu en", + "Ġneue n", + "Ġju venile", + "Ġjuven ile", + "V ISION", + "VI SION", + "VIS ION", + "Ġde vote", + "Ġdev ote", + "Ġ linha", + "Ġl inha", + "Ġlin ha", + "Ġlinh a", + "Ġdiscount ed", + "Ġdisco unted", + "\\ Config", + "Ġworth while", + "Ġskin ny", + "Ġ Courses", + "ĠC ourses", + "ĠCo urses", + "ĠCour ses", + "ĠCourse s", + "le ys", + "ley s", + "ĠMort gage", + "K evin", + "Ke vin", + "Ġann ounces", + "Ġannounc es", + "Ġannounce s", + "] )*", + "]) *", + "res ervation", + "Ġ æķ°", + "Ġæķ °", + "Ġprejud ice", + "ĠString Comparison", + "Ġbe ard", + "Ġbear d", + "- win", + "-w in", + "ĠS ão", + "ĉ ms", + "ĉm s", + "j al", + "ja l", + "Ġ Earn", + "ĠE arn", + "ĠEar n", + "ĠEa rn", + "_ ports", + "_p orts", + "_port s", + "_po rts", + "_por ts", + "Ġ Nombre", + "ĠN ombre", + "ĠNom bre", + "_ COR", + "_C OR", + "_CO R", + "Ġ BUILD", + "ĠB UILD", + "ĠBU ILD", + ". sound", + ".s ound", + ".so und", + "Y ellow", + "Ġlineback er", + "Ġchar itable", + "Ġcha ritable", + "j ug", + "ju g", + "_NON NULL", + "ĠD ental", + "ĠDen tal", + "ĠDent al", + "\" >${", + "\"> ${", + "\">$ {", + "ĉ match", + "ĉm atch", + "ĉmat ch", + "R ussian", + "Russia n", + "Russ ian", + "Rus sian", + "Ġver sch", + "Ġvers ch", + "Ġp inned", + "Ġpin ned", + "Ġadopt ing", + "Options Menu", + "P ag", + "Pa g", + "Ġpair ing", + "Ġpa iring", + "Ġpai ring", + "Ġt read", + "Ġtr ead", + "Ġtre ad", + "erc ises", + "ercise s", + "Ġ Spread", + "ĠS pread", + "ĠSp read", + "ĠSpr ead", + ") i", + "Ġ BAD", + "ĠB AD", + "ĠBA D", + "_ tf", + "_t f", + "UI ImageView", + "UIImage View", + "pop ulate", + "b ab", + "ba b", + "Ġ Ïĥ", + "ĠÏ ĥ", + "[ ++", + "Ġopi oid", + "Ġ ##Ċ", + "Ġ# #Ċ", + "Ġ## Ċ", + "d type", + "dt ype", + "ĠSt arts", + "ĠStart s", + "ĠStar ts", + "ĠSta rts", + "(' /')", + "('/ ')", + "Ġperson als", + "Ġpersonal s", + "Ġpersona ls", + "- market", + "-m arket", + "-mark et", + "-mar ket", + "Ġredund ant", + "ĠEss ential", + "Ġsc rapy", + "Ġscr apy", + "Ġscrap y", + "Ġ им", + "Ġи м", + "a cl", + "ac l", + "Ġ crear", + "Ġc rear", + "Ġcr ear", + "Ġcre ar", + "Ġcrea r", + "ĠB end", + "ĠBe nd", + "ĠBen d", + "Ġrel ieve", + "Ġreli eve", + "Ġrelie ve", + "- room", + "-r oom", + "-ro om", + "w ife", + "wi fe", + "Ġv Ãł", + "ĠQ Point", + "Ġqu asi", + "Ġqua si", + "Ġ methodName", + "Ġmethod Name", + "\\ xc", + "\\x c", + "ĠP eru", + "ĠPer u", + "ĠPe ru", + "/ The", + "/T he", + ". orm", + ".o rm", + ".or m", + "Ġ viz", + "Ġv iz", + "Ġvi z", + "/ pdf", + "/p df", + "Loc ated", + "Ġconfront ation", + "ĠChampionship s", + "ĠChampions hips", + "ĠChampion ships", + "Ġhy pert", + "Ġhyp ert", + "Ġhyper t", + "Ġhype rt", + "Ġ dj", + "Ġd j", + "Ġ UserInfo", + "ĠUser Info", + "Ġ åĪĽå»º", + "ĠåĪ Ľå»º", + "\\ xb", + "\\x b", + "( sim", + "(s im", + "(si m", + "Ġ ==Ċ", + "Ġ= =Ċ", + "Ġ== Ċ", + "Ġst aging", + "Ġsta ging", + "Ġstag ing", + "Ġdr astically", + "Ġdrastic ally", + "åŃ ¦", + "l ords", + "lor ds", + "lord s", + ". less", + ".l ess", + ".le ss", + "вед иÑĤе", + "Ġ Bucket", + "ĠB ucket", + "ĠBuck et", + "ĠBu cket", + "ĠM am", + "ĠMa m", + ". term", + ".t erm", + ".te rm", + "_ pi", + "_p i", + "c zy", + "cz y", + ". pub", + ".p ub", + "p recio", + "pre cio", + "prec io", + "preci o", + "ĠV irt", + "ĠVir t", + "ĠVi rt", + "Ġ roman", + "Ġr oman", + "Ġro man", + "Ġrom an", + "Ġroma n", + "i tat", + "it at", + "ita t", + "L ex", + "Le x", + "_ infos", + "_in fos", + "_info s", + "_inf os", + "Ä °", + ". other", + ".o ther", + ".ot her", + "VE LO", + "VEL O", + "Ġ ponder", + "Ġp onder", + "Ġpo nder", + "Ġpon der", + "Ġpond er", + "Ġh anno", + "Ġhan no", + "Ġhann o", + "( Page", + "(P age", + "d oi", + "do i", + "Ġpol ite", + "Ġpo lite", + "Ġpolit e", + "Ġprogram mer", + "Ġprogramme r", + "Ġprogramm er", + "D ies", + "Die s", + "Di es", + "$ d", + "Ġre plication", + "Ġrep lication", + "Ġrepl ication", + "Ġreplic ation", + "Ġreplica tion", + "add Column", + "fr ican", + "frica n", + "Ġl eng", + "Ġle ng", + "Ġlen g", + "b eer", + "be er", + "bee r", + "o it", + "oi t", + "Ġw asting", + "Ġwas ting", + "Ġwast ing", + "y lim", + "yl im", + "me asure", + "N eg", + "Ne g", + "Ġpart ie", + "Ġpar tie", + "Ġparti e", + ". console", + ".con sole", + ".cons ole", + "ĠGu inea", + "ĠGui nea", + "T EL", + "TE L", + "_ fact", + "_f act", + "_fac t", + "_fa ct", + ". chunk", + ".ch unk", + "Ġl ent", + "Ġle nt", + "Ġlen t", + "Ġ aller", + "Ġa ller", + "Ġal ler", + "Ġall er", + "Ġalle r", + "Ġ à¤ķ", + "Ġठķ", + "_ idle", + "_id le", + "_i dle", + "Ġad missions", + "Ġadm issions", + "Ġadmission s", + "JSON Array", + "Ġv ibration", + "Ġvibr ation", + "Ġvib ration", + ". helpers", + ".h elpers", + ".helper s", + ".help ers", + "å¤ ĸ", + "Ġ hen", + "Ġh en", + "Ġhe n", + "j ohn", + "jo hn", + "Ġ ìĥĿ", + "Ġì ĥĿ", + "Ġìĥ Ŀ", + "Ġjud gement", + "Ġjudge ment", + "Ġg een", + "Ġge en", + "Ġgee n", + "t erra", + "ter ra", + "terr a", + "^ {", + "ĠI z", + "Ġc â", + "in stances", + "instance s", + "inst ances", + "instanc es", + "Ġthreat ens", + "Ġthreaten s", + "Ġm üssen", + "Kind OfClass", + "Ġstoryt elling", + "_ demo", + "_d emo", + "_de mo", + "_dem o", + "r ias", + "ri as", + "ria s", + "Priv acy", + "h ift", + "hi ft", + "ĠY i", + "es or", + "eso r", + "íķ ł", + "ens itivity", + ". Writer", + ".W riter", + ".Write r", + "ภĤ", + "D istrict", + "Di strict", + ".get JSONObject", + "Im pro", + "Imp ro", + "(get Resources", + "Ġ SPELL", + "ĠS PELL", + "ĠSP ELL", + "ĠSPE LL", + "ro duce", + "rodu ce", + "rod uce", + "Ġsl owed", + "Ġslow ed", + "Ġslo wed", + "Ġ linewidth", + "Ġline width", + "Ġlin ewidth", + "Ġhon esty", + "Ġhonest y", + "Ġho nesty", + "Ġhone sty", + "Ġ Coord", + "ĠC oord", + "ĠCo ord", + "ĠF ork", + "ĠFor k", + "ĠFo rk", + "ĠDispatch Queue", + "ĠCl iff", + "ĠCli ff", + "ĠW iring", + "ĠWi ring", + "ĠWir ing", + "_TIM ESTAMP", + "ol lah", + "oll ah", + "olla h", + "a void", + "av oid", + "avo id", + "++ ];Ċ", + "++] ;Ċ", + "sem antic", + "- css", + "-c ss", + "Ġv eto", + "Ġve to", + "Ġvet o", + "ĠM err", + "ĠMe rr", + "ĠMer r", + "Ġlegisl ators", + "C EEDED", + "CEE DED", + "CEED ED", + "Ġquestion naire", + "ĠP ills", + "ĠPill s", + "ĠPil ls", + "C alculate", + "Cal culate", + "Calc ulate", + "Calcul ate", + "( core", + "(c ore", + "(co re", + "(cor e", + "' e", + "Ġdis like", + "Ġ Preferences", + "ĠP references", + "ĠPre ferences", + "ĠPreference s", + "ĠPrefer ences", + "_ EXTERNAL", + "_EX TERNAL", + "_EXTERN AL", + "è° ĥ", + "Ġd odge", + "Ġdo dge", + "Ġdod ge", + "æľį åĬ¡", + ". names", + ".n ames", + ".name s", + ".draw Image", + "_ prom", + "_p rom", + "_pro m", + "_pr om", + "uck land", + "Ġ<$ >", + "ı z", + "/ site", + "/s ite", + "é¡ ¹", + "r ophe", + "ro phe", + "rop he", + "roph e", + "Ġcomp elled", + "Ġcompel led", + "Ġl aptops", + "Ġlaptop s", + "Ġ uni", + "Ġu ni", + "Ġun i", + "C LOSE", + "CL OSE", + "Ġcasual ties", + "Ġ Uniform", + "ĠUn iform", + "ĠUni form", + "Term inal", + ". \",\"", + ".\" ,\"", + ".\", \"", + "D AT", + "DA T", + "( TreeNode", + "(T reeNode", + "(Tree Node", + "ĠGand hi", + "( stmt", + "(st mt", + "A XB", + "AX B", + "* M", + "Ġumb rella", + "an imal", + "ani mal", + "anim al", + "Ġ grpc", + "Ġg rpc", + "Ġgr pc", + "Ġgrp c", + "Ġwhere by", + "Ġfloat s", + "Ġflo ats", + "ĉ arg", + "ĉa rg", + "ĉar g", + "Ġ dbg", + "Ġd bg", + "Ġdb g", + "Ġexceed ing", + "Ġexce eding", + "Event Type", + ".SaveChanges Async", + "Ġ {{{", + "Ġ{ {{", + "Ġ{{ {", + "Ġ owed", + "Ġo wed", + "Ġow ed", + "Ġowe d", + "ahren heit", + "Ġ ì§", + "Ġì §", + "Ġequ ipo", + "Ġequip o", + "u rai", + "ur ai", + "ura i", + "Ġi dol", + "Ġid ol", + "] \")Ċ", + "]\" )Ċ", + "]\") Ċ", + "_ major", + "_m ajor", + "Ġentire ty", + "inger print", + "ç os", + "ço s", + "/ account", + "/a ccount", + "/ac count", + "ĉ right", + "ĉr ight", + "urs os", + "ĠE DT", + "ĠED T", + "_ INSERT", + "_INS ERT", + "Ġsh ining", + "Ġshin ing", + "Ġ< :", + "Edge Insets", + "Ġcolon ies", + ". IM", + ".I M", + "ĉ Ġĉ", + "ĉĠ ĉ", + "R OAD", + "RO AD", + "C CCC", + "CC CC", + "CCC C", + "pl acing", + "pla cing", + "Ġget Activity", + "em acs", + "ema cs", + "' %(", + "'% (", + ". clicked", + ".cl icked", + ".click ed", + "Ġ Them", + "ĠT hem", + "ĠThe m", + "ĠTh em", + "is ia", + "isi a", + "Bus car", + "Bu scar", + ". rename", + ".re name", + ".r ename", + "Ġo ath", + "Ġoat h", + "Ġoa th", + "Ġafter ward", + "ĠU FO", + "ĠUF O", + "A PS", + "AP S", + "ĠJackson ville", + ". some", + ".s ome", + ".so me", + "Conf irmed", + "Confirm ed", + ". scan", + ".s can", + ".sc an", + "ig Integer", + "Decor ator", + "sh ield", + "shi eld", + "ress ive", + ". did", + ".d id", + ".di d", + "请 è¾ĵåħ¥", + "Ġsh utter", + "Ġshut ter", + "D am", + "Da m", + "Ġpar enting", + "Ġparent ing", + "Ġparen ting", + "ey ed", + "eye d", + "$ item", + "$i tem", + "- develop", + "-de velop", + "-dev elop", + "-devel op", + "Ġex tracts", + "Ġextra cts", + "Ġextract s", + "Ġextr acts", + "Ġdecentral ized", + "ĠE lsa", + "ĠEl sa", + "_ spin", + "_s pin", + "_sp in", + "_spi n", + "] )+", + "]) +", + "- initial", + "-in itial", + "-init ial", + "Ġmult itude", + "Ġmultit ude", + "Ġsens ory", + "Ġsensor y", + "Ġ MODEL", + "ĠMO DEL", + "ĠMOD EL", + "ĠMODE L", + "Ġsaf eguard", + "Ġsafe guard", + "Ġsafeg uard", + "ì ¹", + "Ġhun ters", + "Ġhunt ers", + "Ġhunter s", + "Ġ Tiny", + "ĠT iny", + "ĠTi ny", + "ĠTin y", + "I NO", + "IN O", + "dec orate", + "decor ate", + "Ġ NoSuch", + "ĠNo Such", + "H o", + "( Response", + "Ġr uler", + "Ġrule r", + "Ġru ler", + "ĉ short", + "ĉs hort", + "ĉsh ort", + "Ġ caster", + "Ġc aster", + "Ġca ster", + "Ġcas ter", + "Ġcast er", + "Ġcaste r", + "Ġ clientId", + "Ġclient Id", + "Ġ pdb", + "Ġp db", + "Ġpd b", + "ëı Ħ", + "i tic", + "it ic", + "iti c", + "Ġ GameState", + "ĠGame State", + "Ġnew Item", + ") ĊĊĊĊĊĊ", + ")Ċ ĊĊĊĊĊ", + ")ĊĊ ĊĊĊĊ", + ")ĊĊĊ ĊĊĊ", + ")ĊĊĊĊ ĊĊ", + ")ĊĊĊĊĊ Ċ", + "o uis", + "ou is", + "oui s", + "n oc", + "no c", + ". BLACK", + ".BL ACK", + "_ VECTOR", + "_V ECTOR", + "_VEC TOR", + "_VE CTOR", + "---------- ();", + ">( );", + ">() ;", + ".get P", + "an ye", + "any e", + "Ġne uron", + "Ġneuro n", + "Ġneu ron", + "Ġneur on", + "i fold", + "if old", + "ifo ld", + "Ġ Known", + "ĠK nown", + "ĠKn own", + "ĠKnow n", + "Bit coin", + "Any way", + "ay ette", + "aye tte", + "ayet te", + "Ġ' ['", + "Ġ'[ '", + "Ãł nh", + "Ãłn h", + "m gr", + "mg r", + "Ġcor related", + "Ġcorre lated", + "Ġcorrel ated", + "Ġcorrelate d", + "Ġn ause", + "Ġna use", + "Ġnau se", + "Ġmental ity", + "Ġment ality", + "has Many", + "Ġ FG", + "ĠF G", + "am pie", + "amp ie", + "I TU", + "IT U", + "F s", + ". Sp", + ".S p", + "_ between", + "_b etween", + "_bet ween", + "Dep endencies", + "o ug", + "ou g", + "Place holder", + "= text", + "=t ext", + "Ġ Managing", + "ĠMan aging", + "ĠMana ging", + "ocal ypse", + "åĮ Ĺ", + "_ mag", + "_m ag", + "_ma g", + "f ld", + "fl d", + "â ij", + "C AM", + "CA M", + "Ġ Helpers", + "ĠH elpers", + "ĠHelp ers", + "ĠHelper s", + "ĠHel pers", + "Ġd ost", + "Ġdo st", + "Ġdos t", + "/ out", + "/o ut", + "Ġassass ination", + "Ġassassin ation", + ". getImage", + ".get Image", + "ĠK enny", + "ĠKen ny", + "ĠKenn y", + ". ')ĊĊ", + ".' )ĊĊ", + ".')Ċ Ċ", + ".') ĊĊ", + ") {//", + "){ //", + "ĠR anger", + "ĠRange r", + "ĠRa nger", + "ĠRan ger", + "Ġg ek", + "Ġge k", + "Ġsince re", + "Ġsinc ere", + "Ġsincer e", + "< Value", + "čĊ", + "/> čĊ", + ".get Resources", + ".getResource s", + "Ġl ump", + "Ġlu mp", + "Ġlum p", + "_ consts", + "_con sts", + "_const s", + "_cons ts", + "( ext", + "(e xt", + "(ex t", + "ĉ dir", + "ĉd ir", + "â Ŀ", + "Ġpadding Top", + "Ġob session", + "Ġobs ession", + "Ġobsess ion", + "Ġb anning", + "Ġban ning", + "ĠApp Module", + "Ġp artisan", + "Ġpart isan", + "Ġparti san", + "Ġcatalog ue", + "Ġcata logue", + "Ġcatal ogue", + "Ġmin ors", + "Ġminor s", + "Ġp itches", + "Ġpitch es", + "Ġpit ches", + "we ep", + "Ġunder take", + "Ġundert ake", + "Ġth emed", + "Ġthe med", + "Ġthem ed", + "Ġtheme d", + "a udit", + "au dit", + "aud it", + "audi t", + ". scrollTop", + ".scroll Top", + ".scrollTo p", + "Ġ rer", + "Ġre r", + "Ġr er", + "Ġsym ptom", + "Ġsympt om", + "Ġsymp tom", + "Ġopen ings", + "Ġopening s", + ". blocks", + ".b locks", + ".bl ocks", + ".block s", + "open id", + "ope nid", + "Ġa ssh", + "Ġas sh", + "Ġass h", + "- save", + "-s ave", + "ĠP ig", + "ĠPi g", + "Ġre gain", + "Ġreg ain", + "Ġin icial", + "Ġini cial", + "Ġinici al", + "/ favicon", + "/f avicon", + "ĉ exp", + "ĉe xp", + "ĉex p", + "Ġsp ices", + "Ġspi ces", + "Ġspice s", + "i ska", + "is ka", + "isk a", + "cl aims", + "claim s", + "cla ims", + "m ak", + "ma k", + "definition s", + "Ġcorrespond ent", + "ĠCann abis", + "_ _,Ċ", + "__ ,Ċ", + "__, Ċ", + "ĠL ucky", + "ĠLuc ky", + "ĠLu cky", + "ĠLuck y", + "ĠG aussian", + "ĠGa ussian", + "ĠGauss ian", + "Ġ Nearly", + "ĠN early", + "ĠNear ly", + "C AD", + "CA D", + "' ]]Ċ", + "'] ]Ċ", + "']] Ċ", + "Ġadequate ly", + "Ġadequ ately", + "Ġ TITLE", + "ĠT ITLE", + "constitution al", + "- mm", + "-m m", + "_ override", + "_over ride", + "Ġ blas", + "Ġb las", + "Ġbl as", + "Ġbla s", + ".ready State", + "Ġrem inis", + "Ġremin is", + "Ġrein forced", + "Ġreinforce d", + "ĠColl abor", + "Ġdecor ating", + "Ġdeco rating", + "Ġb achelor", + "Ġbach elor", + "ERRU PT", + "Ġup right", + "ip ation", + "ipa tion", + "ĠN oble", + "ĠNo ble", + "ĠNob le", + "Ġvalue ForKey", + "Ġset Loading", + ". Ignore", + ".I gnore", + "å ģ", + "G lobals", + "Global s", + "ĠM ent", + "ĠMe nt", + "ĠMen t", + "AS SES", + "ASS ES", + "Ġlim bs", + "Ġlimb s", + "Ġ HUD", + "ĠH UD", + "in ci", + "inc i", + ". iv", + ".i v", + "ĠQ ModelIndex", + "F use", + "Fu se", + "Ġpe dal", + "Ġped al", + "_F REQ", + "_FR EQ", + "_FRE Q", + "( verbose", + "(ver bose", + "Ġlong itud", + "ĠCh arter", + "ĠChar ter", + "ĠChart er", + "ê ·¸", + "ê· ¸", + "Ġ bundles", + "Ġb undles", + "Ġbund les", + "Ġbundle s", + ". ignore", + ".i gnore", + "um bo", + "umb o", + "E MA", + "EM A", + ". ......", + ".. .....", + "... ....", + ".... ...", + "..... ..", + "...... .", + "s x", + ". Card", + ".C ard", + ".Car d", + "Ġhe ute", + "Ġst eer", + "Ġste er", + "j umlah", + "Ġ {_", + "Ġ{ _", + "_ Checked", + "_Check ed", + "Ġ fax", + "Ġf ax", + "Ġfa x", + "ĠG ust", + "ĠGu st", + "ĠGus t", + "itch ens", + "itchen s", + "Ġ ))ĊĊ", + "Ġ) )ĊĊ", + "Ġ)) ĊĊ", + "Ġ))Ċ Ċ", + "Ġremark ably", + "/ XML", + "/X ML", + "- remove", + "-re move", + "_ bt", + "_b t", + "Ġinc ub", + ". package", + ".p ackage", + ".pack age", + ".current Thread", + "ĠHigh lander", + "ĠHighland er", + ". side", + ".s ide", + ".sid e", + ".si de", + "s plash", + "sp lash", + "spl ash", + "Ġ ici", + "Ġi ci", + "Ġic i", + "= D", + "Ġp uck", + "Ġpu ck", + "Ġball ots", + "Ġbal lots", + "Ġballot s", + "Ġballo ts", + "Ġhuge ly", + "Ġhug ely", + "c oeff", + "co eff", + "coef f", + "coe ff", + "Ġ pData", + "Ġp Data", + ". COLUMN", + ".C OLUMN", + "ĠHe aling", + "ĠHeal ing", + "Ġ ordin", + "Ġor din", + "Ġord in", + "! ),", + "!) ,", + "Ġ' ',čĊ", + "Ġ'' ,čĊ", + "Ġ'', čĊ", + "( md", + "(m d", + "ĠS ask", + "ĠSa sk", + "ĠSas k", + "< strong", + "Ġsurv ivor", + "Ġsurviv or", + ". series", + ".s eries", + ".se ries", + ".ser ies", + "Ġcaffe ine", + "Ġ `(", + "Ġ` (", + ".TRA ILING", + "_ Input", + "_In put", + "( \"^", + "(\" ^", + "z d", + "& );Ċ", + "&) ;Ċ", + "Ġ Ping", + "ĠP ing", + "ĠPin g", + "ĠPi ng", + "Ġ voucher", + "Ġv oucher", + "Ġvo ucher", + "Ġvou cher", + ". rating", + ".r ating", + ".ra ting", + "-sh irts", + "-shirt s", + "ĠRetrie ves", + "ĠRetrieve s", + ".al ibaba", + "Or acle", + "_ MOV", + "_M OV", + "_MO V", + "Old Data", + "Ġ /*čĊ", + "Ġ/ *čĊ", + "Ġ/* čĊ", + "Ġ gboolean", + "Ġg boolean", + "Ġ= >čĊ", + "Ġ=> čĊ", + "Ġ rá", + "Ġr á", + "Ġbl unt", + "ĠImage Icon", + "i fik", + "if ik", + "ifi k", + "R TC", + "RT C", + "Ġfi bers", + "Ġfib ers", + "Ġfiber s", + "Ġto ile", + "Ġtoi le", + ". sent", + ".s ent", + ".se nt", + "ĠPy Qt", + "$ app", + "$a pp", + "Ġm edio", + "Ġme dio", + "Ġmed io", + "Ġmedi o", + "Ġgrant ing", + "Ġgran ting", + "Ġts lint", + "Ġtsl int", + "ĠM ö", + "(fig size", + "Ġhur ricane", + "Ġl ifes", + "Ġlife s", + "Ġlif es", + "Ġ ÃĦ", + "Ġà Ħ", + "rocess ing", + "_ standard", + "_st andard", + "_stand ard", + "- option", + "-o ption", + "-op tion", + "-opt ion", + "' )))", + "') ))", + "')) )", + "Ġvac ant", + "Ġva cant", + "å· ¥", + "ĠH ollow", + "ĠHol low", + "ĠHoll ow", + "handle Change", + "Ġ divider", + "Ġdi vider", + "Ġdiv ider", + "Ġdivide r", + "Ġdivid er", + "ĠEngine ers", + "ĠEngineer s", + "Ġs vens", + "Ġsv ens", + "Ġsve ns", + "Ġcom pliant", + "Ġcompl iant", + "t anggal", + "Ġ Credits", + "ĠC redits", + "ĠCredit s", + "ĠEm irates", + "Rule Context", + "Ġreal ization", + "Ġrealiz ation", + "Ġrealiza tion", + "Ġdis tracted", + "Ġdistr acted", + "Ġdistract ed", + "] +=", + "]+ =", + "Ġau gment", + "Ġaug ment", + "ĠD w", + "o tp", + "ot p", + "or rent", + "orr ent", + "orre nt", + "Ed itar", + "Edit ar", + ". stock", + ".st ock", + "St udy", + "p ections", + "pe ctions", + "pect ions", + "pection s", + "Ġ GameManager", + "ĠGame Manager", + "= cut", + "=c ut", + "Ġf lock", + "Ġfl ock", + "Ġflo ck", + "ĠRom ans", + "ĠRo mans", + "ĠRoman s", + "ĠRoma ns", + "t hem", + "th em", + "the m", + "- hop", + "-h op", + "Ġscreen shots", + "Ġscreens hots", + "Ġscreenshot s", + "Ġ /*!Ċ", + "Ġ/* !Ċ", + "Ġ/*! Ċ", + "Ġcon versions", + "Ġconv ersions", + "Ġconvers ions", + "Ġconversion s", + "Ġnormal ization", + "( configuration", + "(config uration", + "Ġa eros", + "Ġaer os", + "Ġae ros", + "_ security", + "_s ecurity", + "_se curity", + "_sec urity", + "! 'Ċ", + "!' Ċ", + "B onus", + "Bon us", + "ĠDR IVER", + "ĠDRIVE R", + "ĉ Date", + "ĉD ate", + "t ie", + "ti e", + "ĠWy oming", + "St and", + "Stan d", + "i tre", + "it re", + "itr e", + "Ġsh oppers", + "Ġshop pers", + "Ġsho ppers", + "Ġshopper s", + "Ġdisadv antage", + "Ġl iking", + "Ġli king", + "Ġlik ing", + "ç¬ ij", + "Ġunderstand able", + "S EE", + "SE E", + "Ġh oy", + "Ġho y", + "Ġnine te", + "Ġni nete", + "Ġnin ete", + "Ġcon fer", + "Ġconf er", + "Ġ nowrap", + "Ġno wrap", + "Ġnow rap", + "ĠV ern", + "ĠVer n", + "ĠVe rn", + ", čĊčĊ", + ",čĊ čĊ", + "ime step", + "imes tep", + "imest ep", + "Layout Manager", + "à ·", + "ĉ wait", + "ĉw ait", + "P LETED", + "PLE TED", + "J apan", + "Ja pan", + "Ġin duce", + "Ġind uce", + "Ġindu ce", + "Ġ å¯", + "Ġå ¯", + "о зв", + "оз в", + "_END POINT", + ". horizontal", + ".h orizontal", + "Ġacceler ated", + "Ġaccelerate d", + "r imon", + "ri mon", + "rim on", + "I VES", + "IV ES", + "IVE S", + "Trans actions", + "Transaction s", + "L ean", + "Le an", + "ĠS OUR", + "ĠSO UR", + "wh ether", + "y g", + "Ġ oid", + "Ġo id", + "Ġoi d", + "Ġ EntityManager", + "ĠEntity Manager", + "OUN TRY", + "OUNT RY", + "Ġ fila", + "Ġf ila", + "Ġfil a", + "Ġfi la", + "OLUM NS", + "OLUMN S", + "IN UE", + "INU E", + "Ġ Anchor", + "ĠAn chor", + "ĠAnc hor", + "ĠAnch or", + "TR AN", + "TRA N", + "w oo", + "wo o", + "block quote", + "ĠN urse", + "ĠNurs e", + "ĠNur se", + "ĠC arp", + "ĠCar p", + "ĠCa rp", + "Ġrede em", + ". try", + ".t ry", + ".tr y", + "Ġ JP", + "ĠJ P", + "Ġ timestamps", + "Ġtimestamp s", + "Ġ?> \"><", + "Ġ?>\" ><", + "Ġ?>\"> <", + "Ġ REMOVE", + "ĠRE MOVE", + "ĠREM OVE", + "ĠStar bucks", + "Re ally", + "Real ly", + "Ġflo oded", + "Ġflood ed", + ". Callback", + ".C allback", + ".Call back", + "Drop Down", + "i pro", + "ip ro", + "Ġt ended", + "Ġten ded", + "Ġtend ed", + "l te", + "lt e", + "Ġproportion s", + "Ġproport ions", + "- te", + "-t e", + "ĠR ena", + "ĠRe na", + "ĠRen a", + "l icate", + "lic ate", + "li cate", + "lica te", + "for ces", + "force s", + "forc es", + ". extra", + ".ex tra", + ".ext ra", + ". authenticate", + ".auth enticate", + "в од", + "во д", + "¡ °", + "Ġfor ControlEvents", + "Ġ senha", + "Ġs enha", + "Ġsen ha", + "Ġk ein", + "Ġke in", + "Ġmin ist", + "Ġmi nist", + "Ġmini st", + "Ġ Preference", + "ĠP reference", + "ĠPre ference", + "ĠPref erence", + "ĠPrefer ence", + "ĠTele graph", + "Ñĥ п", + "str pos", + "Ġillness es", + "Ġp igs", + "Ġpi gs", + "Ġpig s", + "Ġget Intent", + "ĠgetInt ent", + "S ol", + "So l", + "Ġ ¡", + "Ġ ¡", + "( cpu", + "(c pu", + "(cp u", + "[ prop", + "[p rop", + "s creens", + "screen s", + "') ;?>", + "'); ?>", + "Ġ Acts", + "ĠA cts", + "ĠAct s", + "ĠAc ts", + "Ġstr dup", + "Ġa verages", + "Ġaverage s", + "Ġaver ages", + "a nal", + "an al", + "ana l", + "ĠCas ual", + "Group Box", + "ĠHand book", + "/ comments", + "/com ments", + "/comment s", + "Ġnumber ed", + "Ġnumb ered", + "Ġbroad casting", + "Ġbroadcast ing", + "çĽ ij", + ".native Element", + ". mu", + ".m u", + "Ġ updatedAt", + "Ġupdated At", + "ĠDoes n", + "ĠDoe sn", + ". AC", + ".A C", + ". coll", + ".c oll", + ".co ll", + ".col l", + "Ġrec order", + "Ġrecord er", + "_ sha", + "_s ha", + "_sh a", + "B g", + "b il", + "bi l", + "Ġbol ts", + "Ġbolt s", + "Ġ ç¬", + "Ġç ¬", + "Ġim posing", + "Ġimp osing", + "ĠInformation en", + "_ flashdata", + "_flash data", + "e conomic", + "ec onomic", + "R emark", + "Re mark", + "Rem ark", + "u cas", + "uc as", + "Ġ Officers", + "ĠOff icers", + "ĠOffice rs", + "ĠOfficer s", + "Ġ TER", + "ĠT ER", + "ĠTE R", + "W alk", + "Wal k", + "Wa lk", + "Ġmerc ado", + "_ generate", + "_g enerate", + "_gen erate", + "_gene rate", + "_gener ate", + "H Y", + "C alling", + "Call ing", + "Cal ling", + "s nap", + "sn ap", + "script Id", + ". operation", + ".op eration", + ".o peration", + ".oper ation", + "ĠFl ame", + "ĠFla me", + "ĠFlam e", + "l iness", + "li ness", + "line ss", + "lin ess", + "lines s", + "Ġr ented", + "Ġren ted", + "Ġrent ed", + "_ toggle", + "_t oggle", + "- changing", + "-ch anging", + "-chan ging", + "Ġ TY", + "ĠT Y", + "' util", + "'u til", + "E EP", + "EE P", + "Ġ graphql", + "Ġgraph ql", + "Ġ Uni", + "ĠU ni", + "ĠUn i", + "Ġim pulse", + "Ġimp ulse", + "Ġimpuls e", + ". Basic", + ".B asic", + "Ġenerg ies", + "Ġener gies", + "Ġenergie s", + "M ARY", + "MA RY", + "MAR Y", + "ĠMar cel", + "ĠMarc el", + "Ġm ortal", + "Ġmor tal", + "Ġmort al", + "Ġf res", + "Ġfr es", + "Ġfre s", + "m ens", + "me ns", + "men s", + "m otion", + "mo tion", + "mot ion", + "Ġs ampled", + "Ġsample d", + "Ġsam pled", + "Ġsamp led", + "âĢľ That", + "i day", + "id ay", + "ida y", + "qu ipment", + "quip ment", + "get Int", + "Ġ Absolute", + "ĠA bsolute", + "ĠAbs olute", + ", '\"", + ",' \"", + "u ned", + "un ed", + "une d", + ". share", + ".s hare", + ".sh are", + ".sha re", + "Ġ })(", + "Ġ} )(", + "Ġ}) (", + "m mm", + "mm m", + "ĠR ising", + "ĠRi sing", + "ĠRis ing", + "ä» »", + "Ġun employed", + "x fa", + "xf a", + ". follow", + ".f ollow", + "ĉ ĉĉĉĠĠĠĠĠĠ", + "ĉĉ ĉĉĠĠĠĠĠĠ", + "ĉĉĉĉ ĠĠĠĠĠĠ", + "ĉĉĉ ĉĠĠĠĠĠĠ", + "ĉĉĉĉĠ ĠĠĠĠĠ", + "ĉĉĉĉĠĠĠ ĠĠĠ", + "ĉĉĉĉĠĠ ĠĠĠĠ", + "ĉĉĉĉĠĠĠĠ ĠĠ", + "ĉĉĉĉĠĠĠĠĠ Ġ", + "s lt", + "sl t", + ". Phone", + ".P hone", + ".Ph one", + "Ġkn ives", + "Ġ eve", + "Ġe ve", + "Ġev e", + "on Click", + "] ))čĊ", + "]) )čĊ", + "])) čĊ", + "Ġ Witness", + "ĠW itness", + "ĠWit ness", + "ĉ NS", + "ĉN S", + "Ġ EOS", + "ĠE OS", + "ĠEO S", + "ĠSte fan", + "ĠStef an", + "ĠPr iest", + "ĠPri est", + "âĢĶ which", + "Get String", + ". By", + ".B y", + "Ġup stairs", + "Ġdetr iment", + "b roken", + "br oken", + "bro ken", + "em bro", + "emb ro", + "embr o", + "Ġnic otine", + "i lion", + "il ion", + "ili on", + "ilio n", + "Ġaston ishing", + "_ aff", + "_a ff", + "_af f", + "Ġ Lesson", + "ĠL esson", + "ĠLe sson", + "ĠLess on", + "ĠLes son", + "Ġacc idental", + "Ġaccident al", + "od or", + "odo r", + "Ġde cir", + "Ġdec ir", + "Ġnew Name", + "+ .", + "çĽ ¸", + "igs list", + "Ġ Github", + "ĠG ithub", + "ĠGit hub", + "Ġsuccess ive", + "Ġsuc cessive", + "r acial", + "ra cial", + "rac ial", + "raci al", + "Ġen viron", + "Ġenv iron", + "Ġenvi ron", + "éªĮ è¯ģ", + "Ġred irected", + "Ġredirect ed", + "T OTAL", + "TOT AL", + "Ġgrab bing", + "Ġgra bbing", + "ĠL ance", + "ĠLa nce", + "ĠLan ce", + "ĠLanc e", + "Ġfor fe", + "_ CB", + "_C B", + "å¾ ®", + "El apsed", + "_ way", + "_w ay", + "(Dialog Interface", + "_ measure", + "_me asure", + "_meas ure", + "x bb", + "xb b", + "D og", + "Do g", + "De part", + "Dep art", + "- src", + "-s rc", + "re solver", + "res olver", + "resolve r", + "with standing", + "_ shell", + "_s hell", + "_sh ell", + "Ġ LastName", + "ĠLast Name", + "ĠAv iation", + "Ġbeg inner", + "Ġbegin ner", + "(\" %.", + "(\"% .", + "( tool", + "(t ool", + "(to ol", + "Ġ нов", + "Ġн ов", + "Ġно в", + ": init", + ":i nit", + "( API", + "(A PI", + "(AP I", + "ĠMorris on", + "ĠMorr ison", + "vt Color", + "Ġsta ple", + "Ġstap le", + "/ INFO", + "Ġsuper natural", + "Ġsupern atural", + "Ġste ak", + "t imeline", + "time line", + "tim eline", + "zz le", + "\" `ĊĊ", + "\"`Ċ Ċ", + "\"` ĊĊ", + "Second ary", + "ĠNe pal", + "ĠNep al", + ". StringUtils", + ".String Utils", + "Ġ adam", + "Ġa dam", + "Ġad am", + "Ġada m", + "Ġ (...", + "Ġ( ...", + "Ġ(. ..", + "Ġsub stitution", + "Ġsubstit ution", + "Ġsubst itution", + "Ġ boarding", + "Ġbo arding", + "Ġboard ing", + "Ġ Keyword", + "ĠKey word", + "ĠAss ault", + "dbc Template", + "Ġ orderId", + "Ġorder Id", + "( engine", + "(e ngine", + ".assert That", + "ĠV enus", + "ĠVen us", + "Ġhom icide", + "Ġhomic ide", + "ĠA val", + "ĠAv al", + "ĠAva l", + "Ġg utter", + "Ġgut ter", + "Ġ Supported", + "ĠS upported", + "ĠSup ported", + "ĠSupport ed", + "/ part", + "/p art", + "Ġac claimed", + "Ġacclaim ed", + "H istor", + "Hi stor", + "His tor", + "Hist or", + "Ġm eses", + "Ġme ses", + "Ġmes es", + "ü ber", + "üb er", + "ĠRe new", + "ĠRen ew", + "ĠRene w", + "Ġg ras", + "Ġgr as", + "Ġgra s", + "Ġ Ek", + "ĠE k", + "Ġ infile", + "Ġin file", + "Ġinf ile", + "in dy", + "ind y", + ". music", + ".m usic", + ".mu sic", + ". Scroll", + ".S croll", + ".Sc roll", + "ĠA ges", + "ĠAg es", + "ĠAge s", + "ĠNar uto", + "ĠG ather", + "ĠGa ther", + "ĠGat her", + "Ġconfirm ing", + "= (\"", + "=( \"", + "Ġp itched", + "Ġpitch ed", + "Ġpit ched", + "o ley", + "ol ey", + "ole y", + "F rance", + "Fr ance", + "Fran ce", + "Fra nce", + "Franc e", + "+ '\"", + "+' \"", + "$ total", + "$t otal", + "Ġ onde", + "Ġo nde", + "Ġon de", + "Ġd itch", + "Ġdit ch", + "_ sigma", + "_s igma", + "_sig ma", + "Ġcontin uity", + "Ġcontinu ity", + "r eward", + "re ward", + "rew ard", + "- load", + "-l oad", + "-lo ad", + "Ġpro ceso", + "Ġproc eso", + "Ġproces o", + "L ocked", + "Loc ked", + "Lock ed", + "st aw", + "sta w", + "Ġsp inal", + "Ġspin al", + "Ġspi nal", + "l azy", + "la zy", + "laz y", + "! ==", + "!= =", + "j est", + "je st", + "jes t", + "Ġd un", + "Ġdu n", + "ĠRod gers", + "ĉ grid", + "ĉg rid", + "ĉgr id", + "Ġlo gos", + "Ġlog os", + "Ġlogo s", + "ĠBen gal", + "ĠBeng al", + ". super", + ".s uper", + ".sup er", + "Pro vides", + "Provid es", + "Provide s", + "Prov ides", + "Ġnut rient", + ". Timestamp", + ".T imestamp", + ".Time stamp", + "IZ ATION", + "åĨ Į", + "Ġf ats", + "Ġfa ts", + "Ġfat s", + "ĠX xx", + "c tica", + "ct ica", + "ctic a", + "Target s", + "Tar gets", + "Ġcont ours", + "Ġcontour s", + "Ġre ordered", + "Ġreorder ed", + ": Array", + ":A rray", + "Ġtoler ate", + "Ġtol erate", + "V ir", + "Vi r", + "Ġter ribly", + "Ġterr ibly", + "Ġb ricks", + "Ġbr icks", + "Ġbrick s", + "Ġbri cks", + "( &_", + "(& _", + "h b", + "P ortal", + "Port al", + "Por tal", + "ĠB read", + "ĠBr ead", + "ĠBre ad", + ". which", + ".wh ich", + "ÂŃ t", + "as InstanceOf", + "Ġj object", + "Ġjob ject", + "Ġjo bject", + "ĉ length", + "ĉl ength", + "ĉlen gth", + "_ MT", + "_M T", + "; \">čĊ", + ";\" >čĊ", + ";\"> čĊ", + "_ EXIST", + "_EX IST", + "Ġmat ernal", + "Ġma ternal", + "Ġmater nal", + "R EL", + "RE L", + "Ġê²½ ìļ°", + "h ee", + "he e", + "Ġ layouts", + "Ġlayout s", + "Ġlay outs", + "ĠL ap", + "ĠLa p", + "a isy", + "ai sy", + "ais y", + "Ġst umbled", + "Ġstumble d", + "ĠU IG", + "ĠUI G", + "ĠS co", + "ĠSc o", + "Ġim paired", + "Ġimp aired", + "Ġimpair ed", + "RES SED", + "RESS ED", + "Ġab uses", + "Ġabuse s", + "V F", + "A RB", + "AR B", + ". NAME", + ".N AME", + "r ch", + "rc h", + "pr imir", + "prim ir", + "pri mir", + "_ completed", + "_com pleted", + "_comp leted", + "_complete d", + "Ġp enny", + "Ġpen ny", + "Ġpenn y", + "Ch rome", + "Chr ome", + "( begin", + "(b egin", + "(be gin", + "er nen", + "ern en", + "erne n", + "- checkbox", + "-check box", + "Plain OldData", + "ĠL PC", + "ĠLP C", + "r ade", + "ra de", + "rad e", + "s pir", + "sp ir", + "spi r", + "Ġcon ceived", + "Ġconce ived", + "Ġconceive d", + "T ips", + "Tip s", + "Ti ps", + "ĠIo T", + "ĠG an", + "ĠGa n", + "èģ Ķ", + "Ġbi ases", + "Ġbias es", + "Ġconsult ants", + "Ġconsultant s", + "Ġconsulta nts", + "p led", + "pl ed", + "ple d", + "_ ht", + "_h t", + "associ ated", + "assoc iated", + "associate d", + "] ,ĊĊ", + "], ĊĊ", + "],Ċ Ċ", + "Ġdelight ful", + "ĠÑĤ ек", + "ĠÑĤе к", + "Hel vetica", + "( load", + "(l oad", + "(lo ad", + "- expand", + "-exp and", + "_W IDGET", + "t oa", + "to a", + "Ġ Akt", + "ĠA kt", + "ĠAk t", + "Ġo mn", + "Ġom n", + "Ġcl auses", + "Ġclause s", + "Ġcla uses", + "In tel", + "Int el", + "*/ }Ċ", + "_ registration", + "_reg istration", + "Ġold Value", + "Ġrest oring", + "Ġresto ring", + "Ġun real", + "Ġunre al", + "O VER", + "OVE R", + "OV ER", + "ĉĊ ĉĊĉĊ", + "ĉĊĉĊ ĉĊ", + "A TS", + "AT S", + "_ probe", + "_p robe", + "_pro be", + "_pr obe", + "_prob e", + "Ġdi visor", + "Ġdiv isor", + "Ġdivis or", + ".update Dynamic", + "å¹ ³", + "Produ ces", + "Prod uces", + "st amp", + "sta mp", + ".j boss", + "ĉ task", + "ĉt ask", + "! (:", + "!( :", + "Ġpsych ic", + "@ class", + "@c lass", + "M artin", + "Mar tin", + "Mart in", + "Ġ Passed", + "ĠP assed", + "ĠPass ed", + "ĠPas sed", + "clar ations", + "claration s", + "h el", + "he l", + "а Ñĩ", + "ĉ copy", + "ĉc opy", + "- bin", + "-b in", + "z an", + "za n", + "i gram", + "ig ram", + "igr am", + "া à¦", + "( sig", + "(s ig", + "(si g", + "ĠC aval", + "ĠCa val", + "ĠCav al", + "_ ##", + "Ġ %=", + "Ġ% =", + "out lined", + "outline d", + "ĠA cid", + "ĠAc id", + "Ġunpredict able", + "- dashboard", + "-d ashboard", + "Hex String", + "+ c", + ". Public", + ".P ublic", + "Ạ©", + "Ġcon veyor", + "Ġconvey or", + "Ġ EB", + "ĠE B", + "Ġselect s", + "Ġsel ects", + "Ġsele cts", + "Ġkn ocking", + "Ġknock ing", + "ĠC ec", + "ĠCe c", + "IB UTES", + "IBUT ES", + "IBUTE S", + "ow aÄĩ", + "owa Äĩ", + "g atsby", + "* v", + "ent ropy", + "entr opy", + "Ġdispatch ed", + "Ġdisp atched", + "Ġ camel", + "Ġc amel", + "Ġca mel", + "Ġcame l", + "Ġcam el", + "ĠSat urn", + "ĠSa turn", + "Ġover weight", + "( phone", + "(p hone", + "(ph one", + "par able", + "para ble", + "% B", + "_v ectors", + "_vector s", + "_vec tors", + "_vect ors", + "_ve ctors", + "Ġbr ewing", + "Ġbre wing", + "Ġbrew ing", + "Ġ Tk", + "ĠT k", + "Ġ Downloads", + "ĠDown loads", + "ĠDownload s", + "Ġ Saved", + "ĠS aved", + "ĠSave d", + "ĠSa ved", + "ĠSav ed", + ". Price", + ".P rice", + ".Pr ice", + "Ġc urved", + "Ġcur ved", + "Ġcurve d", + "ĠParent hood", + "ĠParen thood", + "è ¶", + ".p nl", + "plete ly", + "plet ely", + ". Day", + ".D ay", + "Ġadvert isers", + "Ġadvertis ers", + "Ġadvertise rs", + "Ġadvertiser s", + "Ġe jec", + "Ġej ec", + "Ġpr zed", + "Ġprz ed", + "Ġprze d", + "ë ¯", + "! ';Ċ", + "!' ;Ċ", + "ĠK ush", + "ĠKu sh", + "Ġ TAB", + "ĠT AB", + "ĠTA B", + "Ġ quests", + "Ġqu ests", + "Ġque sts", + "Ġquest s", + "Ġques ts", + "Ġcoinc idence", + "Ġcoincide nce", + "umm ies", + "ĠKash mir", + "ĠEth ics", + "ĠEthi cs", + "_ growth", + "_g rowth", + "Ġ aktiv", + "Ġak tiv", + "Ġakt iv", + "Ġgroup ing", + "Ġgrou ping", + "å¢ ŀ", + "_ truth", + "_tr uth", + "åIJ ¬", + "t odos", + "to dos", + "todo s", + "tod os", + "i set", + "is et", + "ise t", + "Tex Coord", + "ä tt", + "ät t", + "ĠZ ur", + "ĠZu r", + "ro ys", + "roy s", + "_M AGIC", + "_MAG IC", + "Ġbrew ery", + "( State", + "ĠSM ALL", + "ĠSMA LL", + "ĠPl ants", + "ĠPlan ts", + "ĠPlant s", + "ĠPla nts", + "it bart", + "e acher", + "each er", + "ea cher", + "ĠAd elaide", + "L u", + "Ġf ick", + "Ġfi ck", + "Ġfic k", + "und les", + "undle s", + "_ loaded", + "_lo aded", + "_load ed", + "и е", + "P oll", + "Pol l", + "Po ll", + "r itic", + "ri tic", + "rit ic", + "E LY", + "EL Y", + "Ġ +'", + "Ġ+ '", + "ĠProf ession", + "Ġst amps", + "Ġstamp s", + "Ġsta mps", + "ĠS ew", + "ĠSe w", + "s crollView", + "scroll View", + "Ġcomm unist", + "Ġcommun ist", + "/ problems", + "/pro blems", + "/problem s", + "} čĊčĊčĊčĊ", + "}čĊ čĊčĊčĊ", + "}čĊčĊ čĊčĊ", + "}čĊčĊčĊ čĊ", + ", o", + "Ġ udp", + "Ġu dp", + "Ġud p", + "Ġob ese", + "Ġobe se", + "ap prove", + "app rove", + "appro ve", + "anc ellation", + "ancel lation", + "ancell ation", + "_ Game", + "_G ame", + "Ġ Hashtable", + "ĠHash table", + "ĠHas htable", + "adaptive Styles", + "Ġposs esses", + "Ġpossess es", + ". matcher", + ".m atcher", + ".match er", + ".mat cher", + "function al", + "M rs", + "Mr s", + "ĉ save", + "ĉs ave", + "Ġ DbType", + "ĠDb Type", + "Ġ ken", + "Ġk en", + "Ġke n", + "get Context", + "Ġ mans", + "Ġm ans", + "Ġman s", + "Ġma ns", + "( rel", + "(r el", + "(re l", + "ĠBrother hood", + ") `Ċ", + ")` Ċ", + "è§ £", + ". Information", + ".In formation", + "OutOfRange Exception", + "ĠS ek", + "ĠSe k", + "C as", + "Ca s", + "Ġblog gers", + "Ġblogger s", + "E ither", + "( \"\"\"", + "(\" \"\"", + "(\"\" \"", + "Ġp inch", + "Ġpin ch", + "Ġco arse", + ") p", + "ĠP ulse", + "ĠPu lse", + "ĠPul se", + "Ġlearn t", + "Ġlear nt", + "Ġdent ist", + "Ġon change", + "Ġdirect ives", + "Ġdirective s", + "( actions", + "(a ctions", + "(action s", + "(act ions", + "ny der", + "ĠS hir", + "ĠSh ir", + "ĠShi r", + "T rait", + "Tr ait", + "Tra it", + "_ dep", + "_d ep", + "_de p", + "Ġ PET", + "ĠP ET", + "ĠPE T", + "Ġ REP", + "ĠR EP", + "ĠRE P", + ".App Settings", + "cu ador", + "ide nav", + "iden av", + "Ġen vi", + "Ġenv i", + "Ġsl ammed", + "Ġslam med", + "Ġ Shoot", + "ĠS hoot", + "ĠSh oot", + "ĠSho ot", + "Ġ dateFormat", + "Ġdate Format", + ".j oda", + "ve ys", + "vey s", + "Ġ ).ĊĊ", + "Ġ) .ĊĊ", + "Ġ). ĊĊ", + "Ġ).Ċ Ċ", + "Ġcar eg", + "Ġca reg", + "Ġcare g", + "Ġ Parallel", + "ĠPar allel", + "_ translation", + "_trans lation", + ". functions", + ".function s", + ".fun ctions", + ". obs", + ".o bs", + ".ob s", + "Runtime Exception", + "[ ]=", + "[] =", + "ov erview", + "over view", + "ĠS chl", + "ĠSc hl", + "ĠSch l", + "Ġno isy", + "Ġnoi sy", + "ĠOn PropertyChanged", + "S ending", + "Send ing", + "Sen ding", + "Ġunf amiliar", + "U pon", + "Up on", + "ĠPr ints", + "ĠPrint s", + "ĠPri nts", + ". typ", + ".t yp", + "Ġfle eing", + "Ġflee ing", + "ĉ move", + "ĉm ove", + "ĉmov e", + "( Un", + "(U n", + "Ġ qr", + "Ġq r", + "× ľ", + "_ beta", + "_b eta", + "_be ta", + "_bet a", + "Ġsk ies", + "Ġski es", + "ĉ me", + "ĉm e", + "W ND", + "WN D", + "Ġst ickers", + "Ġstick ers", + "Ġsticker s", + "b las", + "bl as", + "bla s", + "Ġins erts", + "Ġinsert s", + "Ġinser ts", + "Ġinse rts", + "Ġver ses", + "Ġvers es", + "Ġverse s", + "ĠD ew", + "ĠDe w", + "Ġt angible", + "Ġtang ible", + "Ġh echo", + "Ġhe cho", + "P OL", + "PO L", + "Ġte ardown", + "Ġtear down", + "om nia", + "I BE", + "IB E", + ". cover", + ".c over", + ".co ver", + "_ strategy", + "_str ategy", + "^ -", + "set Position", + "u ale", + "ual e", + "ua le", + "S igned", + "Sign ed", + "Sig ned", + "Ġ iface", + "Ġif ace", + "Ġi face", + "as eline", + "ase line", + "asel ine", + ".set Time", + "ĠMin eral", + "ĠMine ral", + "ĠMiner al", + "ĠF ighting", + "ĠFight ing", + "s kins", + "sk ins", + "ski ns", + "skin s", + "Ġdiscrim in", + "Ġd ansk", + "Ġdans k", + "Ġdan sk", + "ĠPr inceton", + "ĠPrince ton", + "ac ist", + "aci st", + "Ġ ());Ċ", + "Ġ( ));Ċ", + "Ġ() );Ċ", + "Ġ()) ;Ċ", + "tr acks", + "tra cks", + "track s", + "imon ial", + "a decimal", + "ad ecimal", + "ade cimal", + "EP ROM", + "ug gle", + "ugg le", + ". Notification", + ".Not ification", + "$ mail", + "$m ail", + "c antidad", + "cant idad", + "ĠJ ung", + "ĠJun g", + "ĠJu ng", + "Ġsee kers", + "Ġseek ers", + "Ġseeker s", + "Ġpl ausible", + "t ier", + "ti er", + "tie r", + "е ж", + "еР¶", + "Ġ rapper", + "Ġr apper", + "Ġrap per", + "Ġra pper", + "Ġrapp er", + "Ġ Mana", + "ĠM ana", + "ĠMan a", + "ĠMa na", + "ĠHttp StatusCode", + "ĠHttpStatus Code", + "Ġbur nt", + "Ġburn t", + "l oses", + "lo ses", + "lose s", + "los es", + "Ġ Foto", + "ĠF oto", + "ĠFo to", + "ĠFot o", + "Ġ JsonObject", + "ĠJson Object", + "In stagram", + "Inst agram", + "Ġ syscall", + "Ġsys call", + "Ġreal ities", + "ĠMAT LAB", + ":^ {Ċ", + "T ERM", + "TE RM", + "TER M", + "ĠC bd", + "Ġ Paragraph", + "ĠPar agraph", + "ĠPara graph", + "Ġtrav és", + "Ġconstruct ing", + "Ġs wal", + "Ġsw al", + "Ġp ige", + "Ġpi ge", + "Ġpig e", + "L LLL", + "LL LL", + "LLL L", + "- existing", + "-ex isting", + "G ets", + "Get s", + "Ge ts", + "Ġmel ted", + "Ġmelt ed", + "Ġmit igate", + "Ġmitig ate", + "H en", + "He n", + "Ġ hm", + "Ġh m", + "i mas", + "im as", + "ima s", + "Ġ Ao", + "ĠA o", + "ĠP erez", + "ĠPer ez", + "ĠPe rez", + "ĠPere z", + "Ġ DAL", + "ĠD AL", + "ĠDA L", + "Ġ ëĭ¤", + "Ġëĭ ¤", + "Ġdi vis", + "Ġdiv is", + "Storyboard Segue", + "Ġ Modify", + "ĠMod ify", + "ĠModi fy", + "ĠÃľ ber", + "_O VERRIDE", + ".p em", + ".pe m", + "un tos", + "unt os", + "unto s", + "Ġesp añ", + "Ġespa ñ", + "Ġ{ ?", + "Ġ PAY", + "ĠP AY", + "ĠPA Y", + "_ ipv", + "_i pv", + "_ip v", + "ĠF ury", + "ĠFu ry", + "ĠFur y", + "__ .__", + "__. __", + "e low", + "el ow", + "elo w", + "-c entered", + "-center ed", + "-cent ered", + "che cks", + "check s", + "_ Reg", + "_R eg", + "_Re g", + "-J avadoc", + "ĉ load", + "ĉl oad", + "ĠLike wise", + "ĠLik ewise", + "ا Ùħ", + "ا٠ħ", + "U NE", + "UN E", + ". sem", + ".s em", + ".se m", + "x cb", + "xc b", + "ĠC ave", + "ĠCa ve", + "ĠCav e", + "_ sleep", + "_s leep", + "Ġsil ently", + "Ġsilent ly", + "Ġ Extreme", + "ĠExt reme", + "ĠExtr eme", + ". ToUpper", + ".To Upper", + "ĉ CHECK", + "ĉC HECK", + "Ġ cue", + "Ġc ue", + "Ġcu e", + "ĠQ ByteArray", + "Ġcor rupted", + "Ġcorrupt ed", + "Ġ Dé", + "ĠD é", + "Ġim ped", + "Ġimp ed", + "Ġimpe d", + "Get Name", + "Ġinaccur ate", + "Ġs ober", + "Ġso ber", + "Ġsob er", + "е е", + "еРµ", + "Ġ barcode", + "Ġbar code", + "Ġba rcode", + "-- ){Ċ", + "--) {Ċ", + "in ki", + "ink i", + "Ġ ép", + "Ġé p", + "Ġd ri", + "Ġdr i", + "Ġ ALT", + "ĠA LT", + "ĠAL T", + "> >>>>>>>", + ">>>> >>>>", + ">>>>>>> >", + "on ta", + "ont a", + "[ L", + "Ġint eres", + "Ġinter es", + "Ġinte res", + "ver ting", + "vert ing", + "Ġd iagnostics", + "Ġdi agnostics", + "Ġdiagnostic s", + "p dev", + "pd ev", + "è ©", + "Ġ Integrated", + "ĠInt egrated", + "ĠIntegr ated", + ") .'", + "). '", + "_ gc", + "_g c", + "$ text", + "$t ext", + ". games", + ".g ames", + ".game s", + ".ga mes", + "ĠT erra", + "ĠTer ra", + "ĠTerr a", + "' Re", + "'R e", + ". transfer", + ".trans fer", + "_F IFO", + "get Model", + "Ġb land", + "Ġbl and", + "Ġbla nd", + "ĠCol eman", + "ĠCole man", + "Ġpr imes", + "Ġprim es", + "Ġprime s", + "Ġpri mes", + "Ġ æĪ", + "Ġæ Ī", + "Ġcross es", + "n k", + "G ING", + "GIN G", + "GI NG", + "Ġ '^", + "Ġ' ^", + "Ġ Blob", + "ĠB lob", + "ĠBl ob", + "ĠBlo b", + "Ġinter course", + "ĠBl vd", + "Ġweigh s", + "_ regular", + "_reg ular", + "ĠPer th", + "ĠPert h", + "Ġsepar ating", + "Ġseparat ing", + "Ġb illed", + "Ġbill ed", + "Ġbil led", + ".tab Control", + "Ġp uppet", + "Ġpup pet", + "Ġutil ization", + "Ġutiliz ation", + "Ġutiliza tion", + "Ġ âĸł", + "Ġâĸ ł", + "Ġsuc ces", + "Ġsucc es", + "Ġl amps", + "Ġla mps", + "Ġlamp s", + "Ġlam ps", + "_ proj", + "_p roj", + "_pro j", + "_pr oj", + "E ric", + "Er ic", + "Ġre novation", + "Ġren ovation", + "Ġrenov ation", + "ĠF amilies", + "ĠFam ilies", + "ĠFamil ies", + "ĠFamilie s", + "Ġ Bits", + "ĠB its", + "ĠBit s", + "ĠBi ts", + "part ials", + "partial s", + "- Men", + "-M en", + "s olution", + "sol ution", + "Ġd warf", + "Ġdw arf", + "Ġdwar f", + ". INTEGER", + ".IN TEGER", + "Ġ LOCK", + "ĠL OCK", + "ĠLO CK", + "ĠLOC K", + ". ct", + ".c t", + "Ġ excerpt", + "Ġex cerpt", + "Ġexcer pt", + "Ġ Pix", + "ĠP ix", + "ĠPi x", + "Ġ FirstName", + "ĠFirst Name", + "AN TED", + "ANT ED", + "ANTE D", + "ĠAd mir", + "- help", + "-h elp", + "-he lp", + "P rior", + "Pr ior", + "Pri or", + "Ġ Align", + "ĠAl ign", + "ĠAli gn", + ". INSTANCE", + ".IN STANCE", + "Line Edit", + "(' /:", + "('/ :", + "Ġ inet", + "Ġin et", + "Ġi net", + "Ġine t", + "od us", + "odu s", + ".p kl", + ".pk l", + "Ġ KY", + "ĠK Y", + "u pert", + "up ert", + "uper t", + "upe rt", + "Ġn erves", + "Ġnerv es", + "Ġnerve s", + "Ġner ves", + "_ gradient", + "_g radient", + "_grad ient", + "} ','", + "}' ,'", + "}', '", + "_un ref", + "Ġs aturated", + "Ġsatu rated", + "Ġsatur ated", + "Ġ Connected", + "ĠConnect ed", + "ĠConn ected", + "Ġ FN", + "ĠF N", + "EX IT", + "Ġtele port", + "Ġav ait", + "Ġava it", + "Page Route", + "Ġdivorce d", + "Ġdivor ced", + "( lang", + "(l ang", + "f st", + "fs t", + "ĠT yr", + "ĠTy r", + "Ġm essenger", + "Ġmess enger", + "i fstream", + "if stream", + "X S", + "ĠB anking", + "ĠBank ing", + "ĠBan king", + "Ġinfect ious", + "ĠM ons", + "ĠMon s", + "ĠMo ns", + "_ LOOP", + "_LO OP", + "Ġzur ück", + "Ġob tener", + "Ġobt ener", + "Ġobten er", + "/ repos", + "/re pos", + "V el", + "Ve l", + "a cro", + "ac ro", + "acr o", + "Ġ userRepository", + "Ġuser Repository", + "style Type", + "Ġ SRC", + "ĠS RC", + "ĠSR C", + "VML INUX", + "rec ursive", + "/ bar", + "/b ar", + "_ chip", + "_c hip", + "_ch ip", + "_chi p", + "o minated", + "om inated", + "omin ated", + "Ġ Nit", + "ĠN it", + "ĠNi t", + "âĢĶ to", + "ĠBudd h", + "ĠBud dh", + "о меÑĢ", + "ом еÑĢ", + "ĠM AG", + "ĠMA G", + "Ġ CHE", + "ĠC HE", + "ĠCH E", + "_ den", + "_d en", + "_de n", + ". raises", + ".r aises", + ".raise s", + ".ra ises", + "_ degree", + "_d egree", + "_de gree", + "_deg ree", + "Ġpump kin", + "_ templates", + "_t emplates", + "_template s", + "_temp lates", + "_tem plates", + "_ MEDIA", + "_M EDIA", + "_MED IA", + "Ġ Timeline", + "ĠT imeline", + "ĠTime line", + "ĠTim eline", + "Ġ bots", + "Ġb ots", + "Ġbo ts", + "Ġbot s", + "Object Type", + "Ġbu ys", + "Ġbuy s", + ". posts", + ".post s", + ".pos ts", + ".po sts", + "C AL", + "CA L", + "wa iting", + "wait ing", + "ĠDaniel s", + "ĠDani els", + "Ġd abei", + "Ġda bei", + "Ġdab ei", + "Ġ Sigma", + "ĠS igma", + "ĠSig ma", + "i lor", + "il or", + "ilo r", + "i gel", + "ig el", + "ige l", + ", W", + "A DS", + "AD S", + "( panel", + "(p anel", + "(pa nel", + "ì² ´", + "it ating", + "ita ting", + "itat ing", + ". palette", + ".p alette", + ".pa lette", + "Ġmos quito", + "Ġt ego", + "Ġte go", + "Ġteg o", + "( parseInt", + "(parse Int", + "Ġdes pués", + "p romise", + "pro mise", + "prom ise", + "Ġ wij", + "Ġw ij", + "Ġwi j", + "type script", + "types cript", + "Ġ Tv", + "ĠT v", + "_IDENT IFIER", + ") .ĊĊĊ", + "). ĊĊĊ", + ").ĊĊ Ċ", + ").Ċ ĊĊ", + "_ flat", + "_f lat", + "_fl at", + "it su", + "its u", + "U SR", + "US R", + "ex perience", + "- fit", + "-f it", + "-fi t", + "ph inx", + "phi nx", + "phin x", + "_ thresh", + "_th resh", + "_thr esh", + "Ġide ally", + "Ġideal ly", + "ĠFree man", + "ĠFre eman", + "ĠFreem an", + ", DB", + ",D B", + "_ rw", + "_r w", + "çŃ ī", + "U b", + "_ statistics", + "_stat istics", + "=\" \"><", + "=\"\" ><", + "=\"\"> <", + "Ġch ore", + "Ġcho re", + "Ġchor e", + "Ġy ork", + "Ġyo rk", + "inst alled", + "install ed", + "Add itionally", + "Additional ly", + "Ġp stmt", + "Ġpst mt", + "yl ko", + ": :Ċ", + ":: Ċ", + "F orest", + "For est", + "Fore st", + "Fo rest", + "Ġhead set", + "Ġheads et", + "Ġg allon", + "Ġgal lon", + "Ġgall on", + "ÑĢ ем", + "ÑĢе м", + "Ġwithdraw n", + "Ġwithd rawn", + "Ġ Candidate", + "ĠC andidate", + "ĠCandid ate", + "Ġmel ting", + "Ġmelt ing", + "Ġfree zer", + "Ġfreeze r", + "Ġ hl", + "Ġh l", + "_ HELP", + "_HE LP", + "_HEL P", + "m ime", + "mi me", + "( /*", + "(/ *", + "Ġth irst", + "Ġthi rst", + "$ return", + "$r eturn", + "$ret urn", + "member of", + "е б", + "еР±", + "Ġ HttpServletRequest", + "ĠHttp ServletRequest", + "ĠHttpServlet Request", + "( ob", + "(o b", + "_ Result", + "_Res ult", + "Ġassert ed", + "Ġfulfill ing", + "Ġfulfil ling", + "Ġstretch es", + "Ġstret ches", + "par ated", + "pa rated", + "para ted", + "parate d", + "-f unded", + "Ġ åĽ", + "Ġå Ľ", + "in gles", + "ing les", + "ingle s", + "_ ca", + "_c a", + ". condition", + ".con dition", + ".cond ition", + "Ġ Displays", + "ĠDis plays", + "ĠDisplay s", + "ĠDisp lays", + "Ġ orang", + "Ġo rang", + "Ġor ang", + "Ġora ng", + "Ġoran g", + "Ġ CRE", + "ĠC RE", + "ĠCR E", + "Ġgl Bind", + "Ġ Selector", + "ĠSe lector", + "ĠSelect or", + "ĠSel ector", + "ĠSele ctor", + "/ type", + "/t ype", + "ĠAlex a", + "ĠAle xa", + "ched ules", + "chedule s", + "ĠPen insula", + "Ġ parity", + "Ġp arity", + "Ġpar ity", + "Ġpari ty", + "ĉ dest", + "ĉd est", + "ĉdes t", + "ĉde st", + "ĠDo ors", + "ĠDoor s", + "čĊ ĉčĊ", + "_ dimension", + "_d imension", + "_dim ension", + "Ġ aload", + "Ġa load", + "Ġal oad", + "Ġalo ad", + ".St oredProcedure", + "( paren", + "(p aren", + "(par en", + "(pa ren", + "ĠBur ke", + "ĠBurk e", + "' )]Ċ", + "') ]Ċ", + "')] Ċ", + "- engine", + "-e ngine", + "-eng ine", + "Ġ quir", + "Ġqu ir", + "Ġq uir", + "Ġqui r", + "ĠH ybrid", + "ĠHy brid", + "ĠD oe", + "ĠDo e", + "Ġout lines", + "Ġoutline s", + "ĠT rends", + "ĠTr ends", + "ĠTre nds", + "ĠTrend s", + "_ NV", + "_N V", + "per iments", + "periment s", + "peri ments", + "ĠH in", + "ĠHi n", + "? ',", + "?' ,", + "ĉ Text", + "ĉT ext", + "F UL", + "FU L", + "Ġsm ells", + "Ġsmell s", + "Ġ slick", + "Ġs lick", + "Ġsl ick", + "Ġslic k", + "Ġmis erable", + "Ġmiser able", + "ĠArray Adapter", + "Ġparam String", + "H om", + "Ho m", + "_l iterals", + "_literal s", + "_lit erals", + "us uarios", + "usuario s", + "usu arios", + "Ġprompt ing", + "_ lazy", + "_l azy", + "_la zy", + "Ġ Activation", + "ĠAct ivation", + "ĠActiv ation", + "_ oc", + "_o c", + "We ak", + "Ġan ecd", + "ĠU CLA", + "ĠUC LA", + "= re", + "=r e", + "iss ement", + "isse ment", + "ĠEsc orts", + "ĠEscort s", + "Ex cellent", + "Ġ Pause", + "ĠP ause", + "ĠPa use", + "Ġ repositories", + "Ġre positories", + "Ġrepos itories", + "T OR", + "TO R", + "ar iate", + "ari ate", + "aria te", + "ariat e", + "_ iso", + "_i so", + "_is o", + "up dates", + "update s", + "upd ates", + "ha lb", + "hal b", + "udi ante", + "udiant e", + "ë¡ Ŀ", + "Ġna ive", + "ĠP eg", + "ĠPe g", + "ĠL ounge", + "ĠLo unge", + "ĠLou nge", + "AR GIN", + "ARG IN", + "( bin", + "(b in", + "On ClickListener", + "OnClick Listener", + "Ġ FAILED", + "ĠFA ILED", + "ĠFAIL ED", + "Ġ lite", + "Ġl ite", + "Ġli te", + "Ġlit e", + "Ġd zie", + "Ġdz ie", + "Ġdzi e", + "Ġ Literal", + "ĠL iteral", + "ĠLiter al", + "ĠLit eral", + "ĠLite ral", + "i vor", + "iv or", + "ivo r", + "f cntl", + "fc ntl", + "fcn tl", + "Ġe ats", + "Ġeat s", + "Ġea ts", + "Ġ qed", + "Ġq ed", + "Un lock", + "r iding", + "ri ding", + "rid ing", + "und ai", + "unda i", + "= M", + "AT TER", + "ATT ER", + "Configure Await", + "ic ias", + "ici as", + "icia s", + "ust omed", + "ustom ed", + "usto med", + "Ġsuccess ion", + "Ġsuc cession", + "Ġsucc ession", + "end Time", + "ĠJ upiter", + "Ġj udging", + "Ġjud ging", + "d ration", + "dr ation", + "dra tion", + "_ docs", + "_d ocs", + "_doc s", + "_do cs", + ". mo", + ".m o", + "Ġeduc ators", + "Ġeducator s", + "ĠV ine", + "ĠVi ne", + "ĠVin e", + "C ond", + "Con d", + "Co nd", + "[ out", + "[o ut", + "q b", + "\\ Validator", + "Ġmean ings", + "Ġmeaning s", + "Ġpres ently", + "Ġpresent ly", + "Ġdiv iding", + "Ġdivid ing", + "otten ham", + "as cular", + "asc ular", + "Ġtrail ers", + "Ġtra ilers", + "Ġtrailer s", + "Ġtrai lers", + "Ġ CLOSE", + "ĠC LOSE", + "ĠCL OSE", + "а ми", + "ам и", + "âĢĻ ai", + "âĢĻa i", + "Ġ Gain", + "ĠG ain", + "ĠGa in", + "w or", + "wo r", + "Ġpl anner", + "Ġplan ner", + "Ġdistrib uting", + "v at", + "va t", + "mon ths", + "month s", + "mont hs", + "x label", + "xl abel", + "H F", + "V iol", + "Vi ol", + ".BASE LINE", + "еÑĤ ÑģÑı", + "Ġ Rotate", + "ĠR otate", + "ĠRot ate", + "Ġ txn", + "Ġt xn", + "Ġtx n", + ": bold", + ":b old", + "Ġb loss", + "Ġbl oss", + "Ġblo ss", + "Forg ery", + "Forge ry", + "( embed", + "(em bed", + "Ġj ako", + "Ġja ko", + "Ġjak o", + "s printf", + "the ir", + "Ġexhib its", + "Ġexhibit s", + "- static", + "-st atic", + "-stat ic", + "he cy", + "hec y", + "get ActiveSheet", + ". clients", + ".c lients", + ".client s", + ".cl ients", + ".cli ents", + "ãģ į", + "_ hide", + "_h ide", + "_hi de", + "_hid e", + "[ word", + "[w ord", + "C b", + "add Item", + "a xe", + "ax e", + "_ radio", + "_r adio", + "_rad io", + "_ra dio", + "_radi o", + "a lion", + "al ion", + "ali on", + "mod ifier", + "Ġsat uration", + "Ġsatu ration", + "Ġsatur ation", + "Ġde nom", + "Ġden om", + "_ pixels", + "_p ixels", + "_pixel s", + "_pix els", + "m ess", + "me ss", + "mes s", + "( fl", + "(f l", + "a tif", + "at if", + "ati f", + "Ġ secs", + "Ġs ecs", + "Ġse cs", + "Ġsec s", + "Ġpro stitution", + "Ġprostit ution", + "Ġprost itution", + "Ġprostitu tion", + "Ġprostitut ion", + "Ġgrand children", + "Ġparad ise", + "ĠF eld", + "ĠFe ld", + "ĠFel d", + "_B INARY", + "_BIN ARY", + "it ous", + "ito us", + "itou s", + "à ¹Ħ", + "๠Ħ", + "Ġfl ashing", + "Ġflash ing", + "-s ided", + "-side d", + "Ġcontrad iction", + "Ġcontradict ion", + "/ *ĊĊ", + "/* ĊĊ", + "/*Ċ Ċ", + "y label", + "yl abel", + "yla bel", + "ĠT et", + "ĠTe t", + "Ġadm ire", + "Ġadmir e", + "r eso", + "re so", + "res o", + "Ġl etz", + "Ġle tz", + "Ġlet z", + "Ġ SEARCH", + "ĠSE ARCH", + "s lots", + "sl ots", + "slot s", + "ĠRe wards", + "ĠRew ards", + "ĠReward s", + "ĠH og", + "ĠHo g", + "Ġ NSData", + "ĠNS Data", + "st ash", + "sta sh", + "F all", + "Fa ll", + "Fal l", + "ĠA mer", + "ĠAm er", + "Line arLayout", + "Linear Layout", + "/ photos", + "/photo s", + "/ph otos", + "Ġfe ather", + "Ġfeat her", + "Ġ |čĊ", + "Ġ| čĊ", + "Down loads", + "Download s", + ".Start sWith", + "Ġ //#", + "Ġ// #", + "Ġ/ /#", + "ine Transform", + "Ġaff id", + "Ġaf fid", + "V tbl", + "ĠR ogue", + "ĠRo gue", + "ĠRog ue", + "s cribed", + "scribe d", + "scri bed", + "Ġf auc", + "Ġfa uc", + "ĠMon roe", + "Ġdecl ares", + "Ġdeclar es", + "Ġdeclare s", + "mod ern", + "mode rn", + "r eon", + "re on", + "reo n", + "ay be", + "P ASS", + "PA SS", + "f ers", + "fer s", + "fe rs", + "_MULT I", + "_MUL TI", + "ĠMath ematics", + "ĠMathematic s", + "Ġsud ah", + "_ATT ACH", + "Ġnumber With", + "ĠSol omon", + "ĠSolo mon", + "j in", + "ji n", + "ograf ia", + "ogr afia", + "ö l", + "_ design", + "_d esign", + "_de sign", + "_des ign", + "c ulated", + "cul ated", + "culate d", + "cu lated", + "ĠL una", + "ĠLu na", + "ĠLun a", + "i esz", + "ies z", + "ie sz", + "Ġ =>'", + "Ġ= >'", + "Ġ=> '", + "Ġreve lations", + "Ġrevel ations", + "Ġrevelation s", + "A long", + "Al ong", + "( ed", + "(e d", + "Ġ Filename", + "ĠF ilename", + "ĠFile name", + "ĠFil ename", + "ĠFi lename", + "Ġ ylabel", + "Ġy label", + "S ecure", + "Sec ure", + "Ġbus ca", + "Ġbusc a", + "ag nosis", + "agn osis", + "_RE CE", + "_REC E", + "Ġover lapping", + "Ġoverlap ping", + "Ġoverl apping", + "Ex tent", + "Ext ent", + "Ġant icipation", + "Ġanticip ation", + "Ġantic ipation", + "Check s", + "Che cks", + "ĠAL SO", + "ĠALS O", + "o rc", + "or c", + "iling ual", + "it ational", + "itation al", + "itat ional", + "Ġadv ancement", + "Ġadvance ment", + "o uro", + "ou ro", + "our o", + "Ġ Predicate", + "ĠP redicate", + "ĠPred icate", + "å¾ Ĺ", + "e ria", + "er ia", + "eri a", + "ĠP ierce", + "ĠPi erce", + "ĠPier ce", + "o rio", + "or io", + "ori o", + "Ġmer its", + "Ġmerit s", + "Ġpe anut", + "Ġpea nut", + ". Package", + ".P ackage", + "ĠCon duct", + "ĠCond uct", + "_ SENSOR", + "_S ENSOR", + "_SENS OR", + "Ġbo iling", + "Ġboil ing", + "Ġin tra", + "Ġint ra", + "Ġintr a", + "Ġ IGN", + "ĠI GN", + "ĠIG N", + "ĠF ur", + "ĠFu r", + ". Refresh", + ".Re fresh", + ".Ref resh", + "Ġ Reach", + "ĠR each", + "ĠRe ach", + "_ decoder", + "_de coder", + "_dec oder", + "_decode r", + ". Exp", + ".Ex p", + ".E xp", + "Ġ ÑĤак", + "ĠÑĤ ак", + "ĠÑĤа к", + "p ill", + "pi ll", + ", Q", + "ĠGr ill", + "ĠGri ll", + "Ġp opping", + "Ġpop ping", + "Ġpo pping", + ". Ag", + ".A g", + "Ġpro yecto", + "Ġmile age", + "Ġec ological", + "Ġeco logical", + "] ]);Ċ", + "]] );Ċ", + "]]) ;Ċ", + "Ġ ÂŃ", + "Ġ Ń", + "sub plot", + "a cad", + "ac ad", + "aca d", + "Ġ Trying", + "ĠT rying", + "ĠTr ying", + "ĠTry ing", + "rec ipes", + "recipe s", + "$ criteria", + "$c riteria", + "ĠPer sian", + "ĠPers ian", + "- bound", + "-b ound", + "-bo und", + "M ASK", + "MA SK", + "MAS K", + "Ġ Gesture", + "ĠG esture", + "ĠGes ture", + "ĠGest ure", + "Ġ kk", + "Ġk k", + "ĠP VC", + "ĠPV C", + "Ġpro hibition", + "Ġprohib ition", + "Ġprohibit ion", + "Ġcom ando", + "Ġco mando", + "Ġcoma ndo", + "Ġ LOOK", + "ĠL OOK", + "ĠLO OK", + "Sh opping", + "Shop ping", + "Ġdist ortion", + "Ġdistort ion", + "< Boolean", + ".Get Length", + "um pt", + "ump t", + "\\ Product", + "ell ery", + "elle ry", + "eller y", + "Ġfire wall", + "form atted", + "format ted", + ". redis", + ".re dis", + ".r edis", + ".red is", + "Ġ esa", + "Ġe sa", + "Ġes a", + "ĠRh ode", + "S om", + "So m", + ". non", + ".n on", + ".no n", + "Ġ ').", + "Ġ' ).", + "Ġ') .", + "Ġ getView", + "Ġget View", + "ạ n", + "p rus", + "pr us", + "Mat thew", + "Ġs ia", + "Ġsi a", + "ĠF ors", + "ĠFor s", + "ĠFo rs", + "G PU", + "GP U", + "ient ras", + "ien tras", + "_ INST", + "_IN ST", + "_I NST", + "_INS T", + "Ġo larak", + "Ġol arak", + "Ġola rak", + "Ġimport ing", + "Ġimp orting", + "T CP", + "TC P", + "/ \");Ċ", + "/\" );Ċ", + "/\") ;Ċ", + "e ither", + "ei ther", + "Ġfresh ly", + "c ascade", + "cas cade", + "( character", + "(char acter", + "ĠJe ep", + "o tics", + "ot ics", + "otic s", + "oti cs", + "_ UTIL", + "_UT IL", + ".Xtra Printing", + ".first Child", + "ĠEx cell", + "ĠExcel l", + "ĠExc ell", + "Ġd vd", + "Ġdv d", + "Ġt aller", + "Ġtal ler", + "Ġta ller", + "Ġtall er", + "Ġ ras", + "Ġr as", + "Ġra s", + "y pass", + "yp ass", + "Ġassign s", + "Ġgr iev", + "Ġgri ev", + "- more", + "-m ore", + "J D", + "ĠBur ns", + "ĠBurn s", + "' >čĊ", + "'> čĊ", + ". Dependency", + ".D ependency", + ".Dep endency", + ". QueryString", + ".Query String", + ". Owner", + ".O wner", + "Ġ expiry", + "Ġex piry", + "Ġexp iry", + "T hu", + "Th u", + "( Vec", + "(V ec", + "Ġhazard ous", + "Ġ rpm", + "Ġr pm", + "Ġrp m", + "AP ON", + "APO N", + "Ġadd Target", + "s ville", + "sv ille", + "p Net", + "Ġ Img", + "ĠI mg", + "ĠIm g", + "Ġ TIMER", + "ĠT IMER", + "ĠTIM ER", + "ĠTIME R", + "ĠTI MER", + ". Animation", + ".An imation", + "Ġ bek", + "Ġb ek", + "Ġbe k", + "Ġas sort", + "Ġass ort", + "Ġle bih", + "Ġbody Parser", + "Ġvibr ating", + "Ġvib rating", + "I DL", + "ID L", + "Ġbutter knife", + "in ters", + "int ers", + "inter s", + "inte rs", + "Ġpersu ade", + "ĠLGBT Q", + "è ĭ", + ". soft", + ".s oft", + ".so ft", + "Ġbe ams", + "Ġbeam s", + "_ sur", + "_s ur", + "_su r", + ". Def", + ".D ef", + ".De f", + "Ġ labs", + "Ġl abs", + "Ġla bs", + "Ġlab s", + "ĉ plt", + "ĉp lt", + "ĉpl t", + "Ġ skins", + "Ġs kins", + "Ġsk ins", + "Ġskin s", + "Ġski ns", + "Ġtransfer ring", + "Ġtransf erring", + "Ġimag inary", + "Ġimagin ary", + "_ End", + "_E nd", + "; background", + "Ġ laps", + "Ġl aps", + "Ġla ps", + "Ġlap s", + "_ COMMENT", + "_COM MENT", + "_COMM ENT", + "( SDL", + "(S DL", + "o nds", + "on ds", + "ond s", + ". Record", + ".Re cord", + ".Rec ord", + "ĠIm plements", + "ĠImp lements", + "ĠImplement s", + "ĠImpl ements", + "_ ticks", + "_t icks", + "_tick s", + "_ti cks", + "( )))ĊĊ", + "() ))ĊĊ", + "()) )ĊĊ", + "())) ĊĊ", + "()))Ċ Ċ", + "Ġa rose", + "Ġar ose", + "] ?", + "Ġ Mp", + "ĠM p", + "ĠI Command", + "Ġsculpt ure", + "Ġcon tracted", + "Ġcontract ed", + "Ġcontr acted", + "< HTML", + "Ġcal end", + "a ty", + "at y", + "/ Sub", + "/S ub", + "Ġkv inn", + "Ġkvin n", + "_ IGNORE", + "ĠSh ane", + "ĠSha ne", + "ĠShan e", + "M LS", + "ML S", + "Ġstim ulate", + "Part ition", + "Ġ mun", + "Ġm un", + "Ġmu n", + "ó m", + "er ala", + "era la", + "eral a", + "- account", + "-a ccount", + "-ac count", + ". Binary", + ".B inary", + "c é", + "Ġse ize", + "Ġseiz e", + "Ġsei ze", + "conn ections", + "connect ions", + "connection s", + "Ġ ĊĠĠĠĠĠĠĠĠĊ", + "ĠĊ ĠĠĠĠĠĠĠĠĊ", + "Ġ Diagnostic", + "ĠDi agnostic", + "V ISIBLE", + "VIS IBLE", + "Ġ Runs", + "ĠR uns", + "ĠRun s", + "ĠRu ns", + "Ġim pressions", + "Ġimpress ions", + "Ġimpression s", + "Ġimpr essions", + "s uite", + "su ite", + "suit e", + "o ble", + "ob le", + "obl e", + "~ -", + "ak ukan", + "aku kan", + "< Person", + "

\">\" >\"> \">< /", + "_ indexes", + "_index es", + "Ġ valuation", + "Ġval uation", + "Ġvalu ation", + "Ġlife long", + "Ġlif elong", + "Ġexp edition", + "Ġexped ition", + "( Yii", + "(Y ii", + "Ġp ains", + "Ġpain s", + "Ġpa ins", + "Ġpai ns", + "Ġ PRI", + "ĠP RI", + "ĠPR I", + "Ġ Mixed", + "ĠM ixed", + "ĠMix ed", + "ĠMi xed", + "Ġ Changing", + "ĠCh anging", + "ĠChan ging", + "ĠChang ing", + "German y", + "Ger many", + "comm unication", + "communic ation", + ". organ", + ".org an", + ".o rgan", + ".or gan", + "ĠMar athon", + "ĠMara thon", + "get Path", + "Ġ Accuracy", + "ĠAc curacy", + "ĠAcc uracy", + "Ġ Globals", + "ĠG lobals", + "ĠGlobal s", + "ĠGlob als", + "') }}'", + "Ġ'\" >'", + "Ġ'\"> '", + "k inson", + "kin son", + "kins on", + "Ġ кол", + "Ġк ол", + "Ġко л", + "ogn itive", + "_ li", + "_l i", + "Ġim minent", + "Ġimm inent", + "Ġaff inity", + "Ġaf finity", + ". signal", + ".s ignal", + ".sign al", + ".sig nal", + "Ġn otch", + "Ġnot ch", + "ĠSteel ers", + "ĠSteele rs", + "max length", + "K K", + "ĠEu gene", + "ĠEug ene", + "_ PWM", + "_P WM", + "_PW M", + "r oi", + "ro i", + "Ġ âĹı", + "Ġâ Ĺı", + "ĠâĹ ı", + "ĠH amburg", + "ĠHam burg", + ". Must", + ".M ust", + "Ġ axe", + "Ġa xe", + "Ġax e", + "en ef", + "ene f", + "Ġamb itions", + "Ġambit ions", + "Ġambition s", + "Ġ Species", + "ĠS pecies", + "ĠSp ecies", + "ĠSpec ies", + "ĠSpe cies", + "ĠSt ress", + "ĠStr ess", + "ĠStre ss", + "Ġa while", + "Ġ бÑĥд", + "Ġб Ñĥд", + "ĠбÑĥ д", + "Ġwith stand", + "Ġ Decoder", + "ĠDe coder", + "ĠDec oder", + "ĠDecode r", + "_ inventory", + "_in ventory", + "Ġ{ ččĊ", + "Ġ tgt", + "Ġt gt", + "Ġtg t", + "Ġrail road", + "W ASHINGTON", + "Ġnegot iated", + "Ġnegotiate d", + "N ST", + "NS T", + "- phone", + "-p hone", + "-ph one", + ", U", + "Ġexerc ising", + "á» ¥", + "_P IXEL", + "_PIX EL", + "av ors", + "avor s", + "avo rs", + "ite rated", + "iter ated", + "iterate d", + "Ġv ampire", + "Ġvamp ire", + "a dal", + "ad al", + "ada l", + "In grese", + "Ing rese", + "Ġ ung", + "Ġu ng", + "Ġun g", + "j ective", + "ject ive", + ". cells", + ".c ells", + ".cell s", + "Ġ nano", + "Ġn ano", + "Ġna no", + "Ġnan o", + "Ġ markdown", + "Ġmark down", + "_ RULE", + "_R ULE", + "( events", + "(e vents", + "(event s", + "(ev ents", + "Ġl uggage", + "Ġlug gage", + "M ESSAGE", + "MESS AGE", + "ig keit", + "$ count", + "$c ount", + "Attribute Name", + "IG INAL", + "IGIN AL", + "_ Ent", + "_E nt", + "Ġ BF", + "ĠB F", + "Ġ COMMENT", + "ĠCOM MENT", + "ĠCOMM ENT", + "_ ini", + "_in i", + "_i ni", + "ĠEurope ans", + "ĠEuropean s", + "ĠB elle", + "ĠBe lle", + "ĠBel le", + "ĠBell e", + "åij ½", + ") ['", + ")[ '", + "åº Ķ", + "ĠUs eful", + "ĠUse ful", + ". reference", + ".re ference", + ".ref erence", + "( )\",", + "() \",", + "()\" ,", + "_ grade", + "_g rade", + "_gr ade", + "_grad e", + "ĠK aw", + "ĠKa w", + "Ġsent encing", + "Ġsocial ism", + "mon ster", + "mons ter", + "_L AYER", + "Ġdeep est", + "Ġdee pest", + "w k", + "Ġ Noise", + "ĠN oise", + "ĠNo ise", + "# ##ĊĊ", + "## #ĊĊ", + "### ĊĊ", + "###Ċ Ċ", + "Ġpr éc", + "Ġpré c", + "o tle", + "ot le", + "ÑĤ е", + "a uf", + "au f", + "i bal", + "ib al", + "iba l", + "Ġcon quer", + "Ġconqu er", + "> Email", + ">E mail", + "Ġamb ulance", + "O AD", + "OA D", + "Ġ (\"%", + "Ġ( \"%", + "Ġ(\" %", + "Ġ FI", + "ĠF I", + ". fixture", + ".f ixture", + ".fix ture", + "Ġt erse", + "Ġter se", + "Ġters e", + "ĠĠ ĠĠĉĉĉĉ", + "ĠĠĠĠ ĉĉĉĉ", + "ĠĠĠ Ġĉĉĉĉ", + "ĠĠĠĠĉ ĉĉĉ", + "ĠĠĠĠĉĉ ĉĉ", + "ĠĠĠĠĉĉĉ ĉ", + "Ġsanct uary", + "u gi", + "ug i", + "Ġ Comparator", + "ĠCom parator", + "ĠCompar ator", + "Definition s", + "Ġast hma", + "Ġl act", + "Ġla ct", + "Ġlac t", + "Ġhard wood", + ". clock", + ".c lock", + ".cl ock", + "Ġattr acting", + "Ġattract ing", + "ĠM our", + "ĠMo ur", + "ĠMou r", + "( distance", + "(d istance", + "(dist ance", + "(di stance", + "ic its", + "ici ts", + "icit s", + "Ġb onne", + "Ġbon ne", + "Ġ ACCESS", + "ĠAC CESS", + "ĠACC ESS", + ".Deserialize Object", + "Ġ Typed", + "ĠT yped", + "ĠType d", + "ĠTy ped", + "ĠTyp ed", + "Ġj eu", + "Ġje u", + "Ġ appId", + "Ġapp Id", + "ĠC lara", + "ĠCl ara", + "ĠClar a", + "ĠCla ra", + "Ġ HF", + "ĠH F", + "ĠRe ich", + "ĠRei ch", + "ip ples", + "ipp les", + "ipple s", + "// --------------------------------------------------------------------------------", + "//---------------------------------------------------------------- ----------------", + "//---------------------------------------------------------------------------- ----", + "//------------------------------------------------ --------------------------------", + "//-------------------------------- ------------------------------------------------", + "//---------------- ----------------------------------------------------------------", + "_ delivery", + "_d elivery", + "_del ivery", + "erial ization", + "Ġplaint iffs", + "Ġplaintiff s", + "S cient", + "Sc ient", + "Sci ent", + "sh opping", + "shop ping", + "Ġ Dummy", + "ĠD ummy", + "ĠDum my", + "ĠW ald", + "ĠWal d", + "ĠWa ld", + "Group Name", + "Ġ inscription", + "Ġin scription", + "Ġins cription", + "e log", + "el og", + "elo g", + ": :::::::", + ":: ::::::", + ":::: ::::", + ":::::: ::", + "::: :::::", + "::::: :::", + "::::::: :", + "_ ld", + "_l d", + "Back Pressed", + ". Raw", + ".R aw", + "ĠOn Trigger", + "Ġmuseum s", + "Ġmuse ums", + "Ġ Been", + "ĠB een", + "ĠBe en", + "ĠBee n", + "ĠAdvent ures", + "ĠAdventure s", + "Ġs late", + "Ġsl ate", + "Ġsla te", + "Ġ lett", + "Ġl ett", + "Ġle tt", + "Ġlet t", + "Ġs und", + "Ġsu nd", + "Ġsun d", + "ĠG in", + "ĠGi n", + "ĠMechan ical", + "ĠMech anical", + ". ship", + ".s hip", + ".sh ip", + "App Component", + "Ġdest ined", + "Ġdestin ed", + "Ġdw elling", + "Ġdwell ing", + "Pro filer", + "Profile r", + "Prof iler", + "Pre pare", + "ze ich", + "Ġsil icon", + "( has", + "(h as", + "Ġ# %", + "V IDEO", + "VID EO", + "Ġcollabor ate", + "L in", + "Li n", + "Ġ scopes", + "Ġsc opes", + "Ġscope s", + "Ġsco pes", + "Ġscop es", + "( className", + "(class Name", + "( sd", + "(s d", + "an din", + "and in", + "andi n", + ". ham", + ".h am", + "Service Impl", + "-de scribed", + "-des cribed", + "Ġir ony", + "Ġiron y", + "st ial", + "sti al", + "ĠHu awei", + "( repo", + "(re po", + "(rep o", + "Ġunexpected ly", + "ĠK ai", + "ĠKa i", + ". install", + ".inst all", + "\\ xf", + "\\x f", + "Ġex hibited", + "Ġexhib ited", + "Ġexhibit ed", + "_ TCP", + "_T CP", + "_TC P", + "ĠO x", + "_ CHO", + "_C HO", + "_CH O", + "Ġprostitu erte", + "Ġprostituer te", + "Ġ vä", + "Ġv ä", + "Ġs ito", + "Ġsit o", + "Ġsi to", + "Ġconstitu ents", + "Ġconstituent s", + "ĠContinue d", + "ĠContin ued", + "Ġ SAVE", + "ĠS AVE", + "ĠSA VE", + "r ss", + "rs s", + "/ message", + "/m essage", + "u bes", + "ub es", + "ube s", + "Ġmisd emean", + "Ġtax ation", + "Ġtaxa tion", + "Ġstory line", + "h air", + "ha ir", + "hai r", + "ĠF inds", + "ĠFin ds", + "ĠFind s", + "ĠFi nds", + "S IG", + "SI G", + "ver ification", + "~ =", + ". hp", + ".h p", + "It erable", + "Iter able", + "Ñĭ е", + "at ori", + "ator i", + "ato ri", + "Ġ ctr", + "Ġc tr", + "Ġct r", + "R x", + "_ );ĊĊ", + "_);Ċ Ċ", + "_) ;ĊĊ", + "d ag", + "da g", + ". pin", + ".p in", + ".pi n", + "Ġp seud", + "Ġin vo", + "Ġinv o", + "Ñģ ÑĤÑĢ", + "ÑģÑĤ ÑĢ", + "_ pix", + "_p ix", + "_pi x", + "为 空", + "Ġsw orn", + "Ġswo rn", + "âĢĶ or", + "_ registry", + "_reg istry", + "Ġdis asters", + "Ġdisaster s", + "Ġ ROI", + "ĠR OI", + "ĠRO I", + "Ġ âĢķ", + "ĠâĢ ķ", + "ak tu", + "akt u", + "f orest", + "fo rest", + "fore st", + "for est", + "be iten", + "beit en", + "bei ten", + "âĢĶ I", + "u eva", + "ue va", + "e gt", + "eg t", + "Ġsp ikes", + "Ġspi kes", + "Ġspike s", + "U RES", + "UR ES", + "URE S", + "Ġ Recommended", + "ĠRe commended", + "ĠRecomm ended", + "ĠRecommend ed", + "Ġexplo ited", + "Ġexploit ed", + "ĠFreder ick", + "_ COMPLETE", + "_COMP LETE", + "ĠDr ugs", + "ĠDrug s", + "!!! !!!!!", + "!!!! !!!!", + "!!!!! !!!", + "ĠR iv", + "ĠRi v", + "S TOP", + "ST OP", + "R OOM", + "RO OM", + "Ġ PASSWORD", + "ĠP ASSWORD", + "ĠPASS WORD", + "C ookies", + "Co okies", + "Cookie s", + "Cook ies", + ". El", + ".E l", + "á» Ń", + "ĠB ert", + "ĠBe rt", + "ĠBer t", + "Ġ hashed", + "Ġh ashed", + "Ġhas hed", + "Ġhash ed", + "Ġha shed", + "ic ester", + "ice ster", + "ices ter", + "Ġdecor ator", + "Ġ queryString", + "Ġquery String", + ": ;Ċ", + "Ġ\" [\"", + "Ġ\"[ \"", + "ot ope", + "oto pe", + "- Americ", + "-A meric", + "-Am eric", + "ĠMatthew s", + "ĠMatth ews", + "U RAL", + "UR AL", + "URA L", + "âĢľ ,", + "S ummer", + "Sum mer", + "f os", + "fo s", + "_CONT AINER", + "_ ACK", + "_A CK", + "_AC K", + "Ġ filtr", + "Ġf iltr", + "Ġfil tr", + "Ġfi ltr", + "Ġfilt r", + "_ disp", + "_d isp", + "_dis p", + "_di sp", + "_ Re", + "_R e", + "Ġfac ile", + "Ġfacil e", + "а ÑĪ", + "Ġìķ Ĭ", + "Ġe ben", + "Ġeb en", + "Ġsp rink", + "Ġspr ink", + "ĠQ uint", + "ĠQu int", + "ĠQui nt", + "> V", + "Ġhistor ians", + "Ġhistorian s", + "Ġhistoria ns", + "Ġhisto rians", + "our met", + "Ġ Monitoring", + "ĠMonitor ing", + "led ger", + "ledge r", + "c ott", + "co tt", + "cot t", + "Ġ ware", + "Ġw are", + "Ġwar e", + "Ġwa re", + "G GLE", + "GG LE", + "c ars", + "ca rs", + "car s", + "ĠM EDIATEK", + "Ġvol upt", + "_ View", + "_V iew", + "H EL", + "HE L", + "( copy", + "(c opy", + "(co py", + "( stats", + "(st ats", + "(stat s", + "Ġch romosome", + "Ġchrom osome", + "ĠCurt is", + "- conf", + "-con f", + "-co nf", + "( asset", + "(as set", + "Ġh vor", + "Ġhv or", + "File System", + "< >();čĊ", + "<>( );čĊ", + "<> ();čĊ", + "o coder", + "oc oder", + "oco der", + "ocode r", + "ĠC annon", + "ĠCan non", + "ĠCann on", + ") x", + "Ġ Smooth", + "ĠSm ooth", + "ĠS AS", + "ĠSA S", + "_ ce", + "_c e", + "ĉ prev", + "ĉp rev", + "ĉpr ev", + "ĉpre v", + "_ movie", + "_m ovie", + "_mov ie", + "_mo vie", + "E c", + "_ wall", + "_w all", + "< Button", + ".ĊĊ", + "/> .ĊĊ", + "/>.Ċ Ċ", + "/>. ĊĊ", + "o genesis", + "ogen esis", + "ogene sis", + "Ġ OPTIONS", + "ĠOPTION S", + "ĠOPT IONS", + "up tools", + "upt ools", + "Ġmilit ant", + "Ġmil itant", + "Ġmili tant", + "Ġex ited", + "Ġexit ed", + "i gar", + "ig ar", + "iga r", + "Ġ COMM", + "ĠCO MM", + "ĠCOM M", + "Ġ Disposable", + "ĠD isposable", + "ĠDis posable", + "ay cast", + "Ġrow span", + "Ġrows pan", + "Ġsyn thes", + "Ġsynth es", + "Ġsynt hes", + "Ġso ndern", + "Ġsond ern", + "Ġ Ċ", + "]- ->Ċ", + "ĠJ acket", + "ĠJack et", + "ĠJac ket", + "ĠJa cket", + "R ATION", + "RA TION", + ".get SelectedItem", + ".getSelected Item", + "- init", + "-in it", + "-i nit", + "Ġ Registers", + "ĠReg isters", + "ĠRegister s", + "_ sep", + "_s ep", + "_se p", + "Ġ Toolkit", + "ĠTool kit", + ". dict", + ".d ict", + ".di ct", + "Ġ xlabel", + "Ġx label", + "Ġxl abel", + "\\ Table", + "t oc", + "to c", + "_ combo", + "_c ombo", + "_com bo", + "_comb o", + "Ġ Compact", + "ĠComp act", + "Ġr ugged", + "Ġrug ged", + "à¥ĩ à¤", + "- management", + "-man agement", + "') }}\">Ċ", + "')}} \">Ċ", + "')}}\" >Ċ", + "')} }\">Ċ", + "')}}\"> Ċ", + "Ġ Stamp", + "ĠSt amp", + "ĠSta mp", + "ĠStam p", + "ı l", + "r ox", + "ro x", + "Ġlandscape s", + "Ġlandsc apes", + "_ NOTE", + "_N OTE", + "_NO TE", + "_NOT E", + "mon ary", + "c ab", + "ca b", + "Ġmo et", + "x af", + "xa f", + "r code", + "rc ode", + "- cli", + "-c li", + "-cl i", + "_ gate", + "_g ate", + "[ event", + "[e vent", + "S PORT", + "SP ORT", + "g ia", + "gi a", + "Ġ SUPER", + "ĠS UPER", + "ĠSU PER", + "ĠSUP ER", + "/ Login", + "_ shutdown", + "_sh utdown", + "int errupt", + "inter rupt", + "Ġpret ending", + "Ġpretend ing", + "Ġf ringe", + "Ġfr inge", + "Ġfri nge", + "ĠR eds", + "ĠRe ds", + "ĠRed s", + "Ġ CUDA", + "ĠC UDA", + "ĠCU DA", + "Ġ UNIX", + "ĠUN IX", + "v it", + "vi t", + "Ġ brig", + "Ġb rig", + "Ġbr ig", + "Ġbri g", + "d rv", + "dr v", + "Ġ Connector", + "ĠConnect or", + "ĠConn ector", + "There fore", + "Ġ lia", + "Ġl ia", + "Ġli a", + "D etection", + "De tection", + "Det ection", + "Detect ion", + "_ actor", + "_a ctor", + "_ac tor", + "_act or", + "Ġtemp file", + "Ġecc entric", + "- role", + "-r ole", + "-ro le", + "Ġp adx", + "Ġpa dx", + "Ġpad x", + "d ent", + "de nt", + "den t", + "West ern", + "Ġ ê·¸", + "Ġê ·¸", + "Ġê· ¸", + "ĠApplication Record", + "Ġcampaign ing", + "_ runner", + "_r unner", + "_run ner", + "ĠC ivic", + "ĠCi vic", + "ĠCiv ic", + "a leigh", + "ale igh", + "Ġdir ekt", + "Ġdire kt", + ".s ul", + "Ġ Ġĉĉĉ", + "ĠĠ ĉĉĉ", + "ĠĠĉ ĉĉ", + "ĠĠĉĉ ĉ", + "a nten", + "an ten", + "ant en", + "ante n", + "Ġ issuer", + "Ġiss uer", + "Ġissue r", + "Ġissu er", + "Ġassert ions", + "Ġassertion s", + "( orig", + "(o rig", + "(or ig", + "AT IO", + "Ġle aned", + "Ġlean ed", + "ä s", + ". DTO", + ".D TO", + "ex plode", + "expl ode", + "explo de", + ". Observable", + ".O bservable", + "Ġstagger ing", + "Ġkidn apped", + "Ġprogram mers", + "Ġprogramme rs", + "Ġprogrammer s", + "Ġprogramm ers", + "ĠIn nov", + "ĠInn ov", + ". parameter", + ".param eter", + "Ġd omination", + "Ġdo mination", + "Ġdom ination", + "Ġdomin ation", + "Ġdomina tion", + "Ġske ptic", + "Ġskept ic", + "Ġ æĺ¯", + "Ġæĺ ¯", + "Ġav oids", + "Ġavoid s", + ". Verify", + ".Ver ify", + "ub by", + "ubb y", + "Ġ ASN", + "ĠA SN", + "ĠAS N", + "Ġform ato", + "Ġformat o", + "Ġforma to", + "ĠBeat les", + "_ brand", + "_b rand", + "_br and", + "Ġin set", + "Ġins et", + "Ġinse t", + "y outu", + "you tu", + "Ġ toc", + "Ġt oc", + "Ġto c", + "- final", + "-f inal", + "-fi nal", + "-fin al", + "Sh owing", + "Show ing", + "ĠD oub", + "ĠDo ub", + "ĠDou b", + "ĠM esa", + "ĠMe sa", + "ĠMes a", + "A dj", + "Ad j", + "_ medium", + "_m edium", + "_med ium", + "Create s", + "Cre ates", + "Creat es", + "( endpoint", + "(end point", + "ĉ UP", + "ĉU P", + "b bie", + "bb ie", + "Ġ stalk", + "Ġs talk", + "Ġst alk", + "Ġsta lk", + "Ġstal k", + ".data bind", + ".datab ind", + ". Scan", + ".S can", + ".Sc an", + "ag ents", + "age nts", + "agent s", + "agen ts", + "$ ,", + "ind ividual", + "+ )/", + "+) /", + "ĉ vm", + "ĉv m", + "( notification", + "(not ification", + "Ġin ex", + "Ġi nex", + "Ġine x", + "Ġ Classification", + "ĠClass ification", + "r eno", + "re no", + "ren o", + "Ġo lig", + "Ġol ig", + "Ġoli g", + "- rated", + "-r ated", + "-rate d", + "-ra ted", + "Ġform ulation", + "Ġformula tion", + "Ġformul ation", + "' ,{", + "', {", + "Ġa cept", + "Ġac ept", + "Ġace pt", + "_ unpack", + "_un pack", + "_ CA", + "_C A", + ". Pow", + ".P ow", + "ĉ im", + "ĉi m", + "Ġal uminium", + "Ġalum inium", + "A NO", + "AN O", + "Ġ xn", + "Ġx n", + "Ġc ómo", + "Ġcó mo", + "Ġ Ingredient", + "ĠIng redient", + "Ġseiz ures", + "Ġseizure s", + "åħ ±", + "ific ador", + "ificado r", + "Ġs iguiente", + "Ġsigu iente", + "ĠIn fragistics", + "Ġd uplicated", + "Ġduplicate d", + "Ġdup licated", + "Ġduplic ated", + "ĠD ee", + "ĠDe e", + "Ġn ø", + "Ġ ACCEPT", + "ĠAC CEPT", + "( crate", + "(c rate", + "(cr ate", + "иÑĤ елÑĮ", + "иÑĤе лÑĮ", + "- less", + "-l ess", + "-le ss", + "Ġ infinity", + "Ġin finity", + "Ġinf inity", + "Ġinfinit y", + "An alyzer", + "Analy zer", + "- Day", + "-D ay", + "r itt", + "ri tt", + "rit t", + "( cin", + "(c in", + "(ci n", + "ĠG y", + "Ġmulti plied", + "Ġmultip lied", + "u chi", + "uch i", + "uc hi", + "ĠBald win", + "/ ip", + "/i p", + "Ġshort cuts", + "Ġshortcut s", + ". ADD", + ".A DD", + ".AD D", + "Ġv igor", + "Ġvi gor", + "Ġvig or", + "_ instruction", + "_in struction", + "_instr uction", + "( ;", + "_ eta", + "_e ta", + "_et a", + "è¿ ŀ", + "utor ials", + "utorial s", + "Ġboost ing", + "b v", + "Ġacknowled ges", + "Ġacknowledge s", + "List ening", + "Listen ing", + "F AQ", + "FA Q", + "; b", + "( (-", + "(( -", + "Ġarchitect s", + "Ġarchit ects", + "Ġz we", + "Ġzw e", + "Ġp uls", + "Ġpul s", + "Ġpu ls", + "Ġget Count", + "ĠgetC ount", + "ver bs", + "verb s", + "ãĢ ľ", + "( Collection", + "(C ollection", + "k re", + "kr e", + "Ġjurisdiction s", + "Ġjuris dictions", + "_ bridge", + "_b ridge", + "_br idge", + "ĠC rack", + "ĠCr ack", + "ĠCra ck", + "Ġ Difficulty", + "ĠDiff iculty", + "K O", + "Res ervation", + "_ requires", + "_re quires", + "_require s", + "T our", + "To ur", + "ãģĹ ãģŁ", + "ãģĹãģ Ł", + ". setCurrent", + ".set Current", + "Ġ ky", + "Ġk y", + "ĠAlb any", + "ĠAlban y", + "Ġ è§", + "Ġè §", + "l ler", + "ll er", + "lle r", + "ag na", + "agn a", + "work ers", + "worker s", + "wor kers", + ". blank", + ".bl ank", + "ĠPr ayer", + "ĠPra yer", + "M IC", + "MI C", + "Ġresil ience", + "Te X", + "Ġ Languages", + "ĠL anguages", + "ĠLanguage s", + "st udy", + "stu dy", + "stud y", + "ĉ curr", + "ĉc urr", + "ĉcur r", + "Ġenzym es", + "Ġenzyme s", + "S lug", + "Sl ug", + "Ġ íĮĮ", + "ĠíĮ Į", + "st ral", + "str al", + "stra l", + "Ġtum ors", + "Ġtumor s", + "Ġseg unda", + "Ġsegu nda", + "= '{", + "=' {", + "in struction", + "instr uction", + "ĠL isp", + "ĠLi sp", + "ĠLis p", + "/ info", + "/in fo", + "Ġ\" {$", + "Ġ\"{ $", + ",: ),", + ",:) ,", + "Ġ gv", + "Ġg v", + "( ErrorMessage", + "(Error Message", + "Ġ '=", + "Ġ' =", + "} -${", + "}- ${", + ". Documents", + ".Document s", + ".Doc uments", + "\" Well", + "\"We ll", + "\"W ell", + "Ġreminis cent", + "Ġg az", + "Ġga z", + "ir opr", + "iro pr", + "e hr", + "eh r", + "Ġsup pressed", + "Ġsuppress ed", + "Ġsupp ressed", + "er sh", + "ers h", + ".scroll To", + "Ġ cadena", + "Ġc adena", + "Ġcad ena", + "Ġcade na", + "Ġgame State", + "ÃŃ m", + "( conv", + "(con v", + "(co nv", + "Ġ Tomorrow", + "ĠTom orrow", + "ĠC CT", + "ĠCC T", + "M ongo", + "Mon go", + "Mo ngo", + "u lg", + "ul g", + ". Camera", + ".C amera", + ". handlers", + ".handle rs", + ".handler s", + ".hand lers", + "m ph", + "mp h", + "Ġ stk", + "Ġs tk", + "Ġst k", + "Ġgen etics", + "Ġgene tics", + "Ġgenetic s", + "AC ING", + "Tr ivia", + "Tri via", + "ĠB am", + "ĠBa m", + "( marker", + "(m arker", + "(mark er", + ". Stretch", + ".St retch", + ".Str etch", + "ĠSun ni", + "ĠB etty", + "ĠBe tty", + "ĠBet ty", + "ĠBett y", + ". tolist", + ".t olist", + ".to list", + "un likely", + ". Rectangle", + ".Rect angle", + "ob solete", + "IL ON", + "inner Text", + "em bourg", + "emb ourg", + "a N", + "ĠV ehicles", + "ĠVehicle s", + "un lock", + ": utf", + "n ob", + "no b", + "Ġ Seeing", + "ĠSe eing", + "ĠSee ing", + "ĠN EVER", + "ĠNE VER", + "Ġ tls", + "Ġt ls", + "Ġtl s", + "Ġf illes", + "Ġfil les", + "Ġfill es", + "Ġfille s", + "Ġbenef ited", + "Ġbenefit ed", + "ĠC lint", + "ĠCl int", + "ĠClin t", + "ĠCli nt", + "*/ ),", + "*/) ,", + ". fold", + ".f old", + "Ġpos ible", + "Ġposi ble", + "A DED", + "AD ED", + "ADE D", + "t house", + "th ouse", + ". DAL", + ".D AL", + "Ġ Odd", + "ĠO dd", + "ĠOd d", + "r okes", + "ro kes", + "roke s", + "rok es", + "ĠS unny", + "ĠSun ny", + "ĠPartial Eq", + "_ Buffer", + "_B uffer", + "ĠL evi", + "ĠLe vi", + "ĠLev i", + "long rightarrow", + "el don", + "eld on", + "eldo n", + "g ages", + "ga ges", + "gage s", + "_ warn", + "_w arn", + "_war n", + ".Create Table", + "ĠD ip", + "ĠDi p", + "_ questions", + "_question s", + "_quest ions", + ". logic", + ".log ic", + "Ġ #\"", + "Ġ# \"", + "={ ()=>", + "={() =>", + "={( )=>", + "Ġ tep", + "Ġt ep", + "Ġte p", + "Ġju icy", + "ì Ĥ¬", + "ìĤ ¬", + "en ko", + "enk o", + "ial ect", + "ia lect", + "iale ct", + "Ù ī", + "Ġon board", + "Ġ æı", + "Ġæ ı", + "ĉ rt", + "ĉr t", + "_ UTF", + "_U TF", + "_UT F", + "ĠQ Action", + "ĠQA ction", + "âĢ ŀ", + "( Component", + "( audio", + "(a udio", + ". hit", + ".h it", + "g te", + "gt e", + "Ġprogram med", + "Ġprogramme d", + "Ġprogramm ed", + "state Params", + "Ġpoly ester", + "f ires", + "fi res", + "fire s", + "fir es", + "by ss", + "] =(", + "]= (", + "_ quality", + "_q uality", + "_qu ality", + "_qual ity", + "Of Day", + "ĠF airy", + "ĠFair y", + "ĠFa iry", + "Ġy elled", + "Ġyell ed", + "o pl", + "op l", + "( userName", + "(user Name", + "Ġ Difference", + "ĠD ifference", + "ĠDiff erence", + "Ġeval uations", + "Ġevaluation s", + "Ġevalu ations", + "iff any", + "Ġcycl ists", + "Ġcyc lists", + "Ġcyclist s", + "Ġ cidade", + "Ġc idade", + "Ġcid ade", + "Ġtext book", + "Ġprof iling", + "Ġprofil ing", + "_ _),", + "__ ),", + "__) ,", + "d ea", + "de a", + ". activate", + ".act ivate", + ".activ ate", + "Ġind ications", + "Ġindic ations", + "Ġindication s", + "Ð ķ", + "Touch UpInside", + "Ġinval uable", + "Ġ MASK", + "ĠM ASK", + "ĠMA SK", + "ĠMAS K", + "Ġcont end", + "Ġconten d", + "Ġconte nd", + "F req", + "Fr eq", + "Fre q", + "Ġrec ruits", + "Ġrecru its", + "Ġrecruit s", + "( interval", + "(int erval", + "(inter val", + "Ġ UserProfile", + "ĠUser Profile", + "Ġ'./ ../", + "Ġ'. /../", + "e du", + "ed u", + "_ Callback", + "_C allback", + "_Call back", + "Ġan alogy", + "Ġanal ogy", + "Ġanalog y", + "Ġana logy", + "ĠT rophy", + "ĠTr ophy", + "ĠTro phy", + "app hire", + "V ideos", + "Video s", + "ĠC her", + "ĠCh er", + "ĠChe r", + "ĠH av", + "ĠHa v", + "âĢ¦ \"", + ". validator", + ".valid ator", + "g fx", + "gf x", + "ĠU Object", + "class names", + "classname s", + "t riangle", + "tr iangle", + "tri angle", + "Ġ Encoder", + "ĠE ncoder", + "ĠEn coder", + "ĠEnc oder", + "ĠEncode r", + ". spy", + ".s py", + ".sp y", + "Ġpred ators", + "Ġpredator s", + "= status", + "=s tatus", + "- safe", + "-s afe", + ": \",Ċ", + ":\" ,Ċ", + ":\", Ċ", + "Ġ Including", + "ĠIn cluding", + "Ġ{ };čĊ", + "Ġ{} ;čĊ", + "Ġ{}; čĊ", + "* cos", + "*c os", + "Ġend ured", + "Ġendure d", + ".sul ake", + "Ġnurs ery", + "Ġnurse ry", + "Ġfrag rance", + "Ġre building", + "Ġrebuild ing", + "Ġ nth", + "Ġn th", + "Ġnt h", + "ĠFr aser", + "ĠFra ser", + ".set Date", + "ĠV ince", + "ĠVi nce", + "ĠVin ce", + "_ REST", + "_RE ST", + "_R EST", + "_RES T", + "Ġvent ilation", + "Ġventil ation", + "æµ ·", + "cri bes", + "cribe s", + ". asm", + ".as m", + ".a sm", + "lp Vtbl", + "ĠA be", + "ĠAb e", + "u isine", + "uis ine", + ", array", + ",a rray", + ",arr ay", + "ĉ className", + "ĉclass Name", + "err als", + "erra ls", + "erral s", + "Ġ 'ĊĊ", + "Ġ' ĊĊ", + "Ġ'Ċ Ċ", + "Check out", + "Ġs olicit", + "Ġso licit", + "Ġsol icit", + "Ġsolic it", + "A ux", + "Au x", + "_ capture", + "_c apture", + "_cap ture", + "Ġr ibs", + "Ġrib s", + "Ġri bs", + "r agon", + "ra gon", + "rag on", + "v iol", + "vi ol", + "vio l", + "to pics", + "top ics", + "topic s", + "Function Flags", + "ĠM arty", + "ĠMar ty", + "ĠMart y", + "b ike", + "bi ke", + "ĠT ucker", + "ĠTu cker", + "( kernel", + "(k ernel", + "Ġ Ops", + "ĠO ps", + "ĠOp s", + "Close Operation", + "/ demo", + "/d emo", + "/de mo", + "i lda", + "il da", + "ild a", + "ĠlÃŃ nea", + "AP PING", + "APP ING", + "Ġsu ites", + "Ġsuit es", + "Ġsuite s", + "Ġsui tes", + ".visit VarInsn", + "u rus", + "ur us", + "uru s", + "Ġ Minute", + "ĠMin ute", + "( manager", + "(m anager", + "(man ager", + "Ġbutter fly", + "Ġa pare", + "Ġap are", + "Ġapar e", + "Ġapa re", + "Ġw olves", + "Ġwol ves", + "J WT", + "ĠS alon", + "ĠSal on", + "ĠSa lon", + "ĉ delay", + "ĉd elay", + "ĉde lay", + "ĉdel ay", + "- eslint", + "-es lint", + "is ations", + "isation s", + ". rpc", + ".r pc", + ") |(", + ")| (", + "ĠSnap chat", + "/ mm", + "/m m", + "M N", + "c eries", + "ce ries", + "cer ies", + ".t extAlignment", + ".text Alignment", + "ĠFrank furt", + "Ġ ado", + "Ġa do", + "Ġad o", + "( newValue", + "(new Value", + "( access", + "(a ccess", + "(ac cess", + "(acc ess", + "( Expression", + "Ġ SignIn", + "ĠSign In", + "ĠHa iti", + "ĠHait i", + "ĠHai ti", + "_ tp", + "_t p", + ". setParameter", + ".set Parameter", + "Min ute", + "Ġmanual s", + "ric anes", + "ricane s", + "rica nes", + "Ġ PTR", + "ĠP TR", + "ĠPT R", + "Ġ Outer", + "ĠO uter", + "ĠOut er", + "ĠOu ter", + "Ġ getline", + "Ġget line", + "oc ations", + "ocation s", + "_ CD", + "_C D", + "ĠL yon", + "ĠLy on", + "/ gui", + "/g ui", + "_ live", + "_l ive", + "_li ve", + "i dan", + "id an", + "ida n", + ". geom", + ".ge om", + ".geo m", + "Ġborder Bottom", + "im uth", + "imu th", + "_ checkpoint", + "_check point", + "Ġm eu", + "Ġme u", + "ĠIr ving", + "Ġpeu vent", + "( MAX", + "(M AX", + "Ġ ARCH", + "ĠAR CH", + "ĠARC H", + "Ġp ov", + "Ġpo v", + ".source forge", + "Ġjam ais", + "Ġ ark", + "Ġa rk", + "Ġar k", + "ĠBaghd ad", + "Ġ CLEAR", + "ĠC LEAR", + "ĠCL EAR", + "Menu Bar", + "Ġtr ois", + "Ġtro is", + "CHED ULE", + "Ġ #čĊ", + "Ġ# čĊ", + "( Call", + "(C all", + "$ order", + "( Material", + "(M aterial", + "(Mat erial", + "Ġencontr ado", + "$ list", + "$l ist", + "ĠMETHOD S", + ". beginTransaction", + ".begin Transaction", + "_M AG", + "_MA G", + "Style Sheet", + "Ġmajor s", + "Ġmaj ors", + "Ġindef initely", + "Ġindefinite ly", + "c leanup", + "clean up", + "Ġhome land", + "Ġhom eland", + "( dto", + "(d to", + "(dt o", + "D ates", + "Date s", + "Da tes", + "Dat es", + "P resentation", + "Present ation", + "Ġ DK", + "ĠD K", + "={` /", + "ĉ Key", + "ĉK ey", + "( Block", + "(B lock", + "_ checkbox", + "_check box", + "ne eds", + "need s", + "nee ds", + "Ġon Complete", + "r ico", + "ri co", + "ric o", + "Ġg leich", + "Ġgle ich", + "Ġ xm", + "Ġx m", + "O OD", + "OO D", + "B etter", + "Bet ter", + "ĠSQL ITE", + ". Book", + ".B ook", + "x ad", + "xa d", + "ĠG one", + "ĠGo ne", + "ĠGon e", + "ĉ dp", + "ĉd p", + "Ġdev otion", + "Ġ stm", + "Ġs tm", + "Ġst m", + "Ġob sess", + "Ġobs ess", + "Ġ Backend", + "ĠBack end", + "Qu eries", + "Que ries", + "I k", + "/ /****************************************************************", + "// ****************************************************************", + "Ġdivide nds", + "Ġdivid ends", + "Ġdividend s", + ".parent Element", + "} \")ĊĊ", + "}\" )ĊĊ", + "}\")Ċ Ċ", + "}\") ĊĊ", + "ĠMaterial PageRoute", + ": num", + ":n um", + "Ġexp lic", + "Ġexpl ic", + "Ġ OL", + "ĠO L", + "l east", + "le ast", + "lea st", + "O ops", + "iment os", + "imento s", + "imen tos", + "Ġins urers", + "Ġinsure rs", + "Ġinsurer s", + "Ġhero ic", + "ĉ fields", + "ĉf ields", + "ĉfield s", + ".img ur", + ".btn Cancel", + "ĠDet ective", + "ĠDetect ive", + "( sm", + "(s m", + "ĠMutable LiveData", + ". lab", + ".l ab", + "( ([", + "(( [", + "Ġha irst", + "Ġhair st", + "Ġhai rst", + "Ġhairs t", + "Ġ Transactions", + "ĠTrans actions", + "ĠTransaction s", + "å¼Ģ å§ĭ", + "Ġ stdClass", + "Ġstd Class", + "u ento", + "uen to", + "uent o", + "G IS", + "GI S", + "_ cod", + "_c od", + "_co d", + "In structions", + "Instruction s", + "Instr uctions", + "C alls", + "Call s", + "Cal ls", + "Pointer Type", + "ĠR w", + "Ġassort ment", + "Ġ DIG", + "ĠD IG", + "ĠDI G", + "+ r", + "_ CERT", + "_C ERT", + "_CE RT", + "Ġinst ability", + "Ġv ib", + "Ġvi b", + "o nas", + "on as", + "ona s", + "Ġr oku", + "Ġro ku", + "Ġrok u", + "ap ellido", + "Ġ angl", + "Ġan gl", + "Ġang l", + "prene ur", + "Ġfl uids", + "Ġfluid s", + "Ġflu ids", + "is ease", + "ise ase", + "Ġd eed", + "Ġde ed", + "Ġdee d", + "qu ist", + "quis t", + "qui st", + "_CONST ANT", + "Ġequ ilibrium", + "_ delegate", + "_de legate", + "ĠQuant um", + "r ei", + "re i", + "Cap abilities", + "rect angle", + "? ><", + "?> <", + "a lien", + "al ien", + "ali en", + "alie n", + "ĠJ ug", + "ĠJu g", + "D NA", + "DN A", + "T ickets", + "Tick ets", + "Ticket s", + "Occ urs", + "ĠH awk", + "ĠHaw k", + "ĠHa wk", + ".setHorizontal Group", + "\\ Collection", + "\\C ollection", + "ff iti", + "ffi ti", + "Ġre arr", + "Ġrear r", + ".setVertical Group", + "Ġc avity", + "Ġcav ity", + "Ġadult e", + "Ġadul te", + "Fac ade", + "Fa cade", + "- wh", + "-w h", + "ĠL OL", + "ĠLO L", + "Ø °", + "Ġgrand parents", + "Sw ift", + "ĉ wx", + "ĉw x", + "æīĢ æľī", + "i fen", + "if en", + "ife n", + "ff set", + "B eyond", + "// }ĊĊ", + "//}Ċ Ċ", + "Ġw ager", + "Ġwa ger", + "Ġwage r", + "Ġwag er", + "Ġ bury", + "Ġb ury", + "Ġbu ry", + "Ġbur y", + "Ġcomm ence", + "Ġcomme nce", + "Ġcommenc e", + "reg istro", + "registr o", + "regist ro", + "s cient", + "sc ient", + "sci ent", + "Ġ Percent", + "ĠPer cent", + "ĠPerc ent", + "Ġд олж", + "Ġдол ж", + "( identifier", + "(id entifier", + "(ident ifier", + ".set Model", + "Ġs eldom", + "Ġsel dom", + "n ton", + "nt on", + "Ġap pliance", + "Ġappl iance", + "a mus", + "am us", + "amu s", + "rys ler", + "Ġpan ties", + "Ġpant ies", + "engu ins", + "enguin s", + "Ġmi mic", + "Ġmim ic", + "Ġon Changed", + "ĠonChange d", + "Ġal coholic", + "Ġalcohol ic", + ".reload Data", + "Ch arge", + "Char ge", + "Ġ Fax", + "ĠF ax", + "ĠFa x", + "Ġj ScrollPane", + "Emp resa", + "Ġsh attered", + "x ba", + "xb a", + "Font s", + "Fo nts", + "? s", + "Ġpost season", + "re tain", + "ret ain", + "reta in", + "_ rates", + "_r ates", + "_rate s", + "_ra tes", + "_rat es", + "Ġ requestCode", + "Ġrequest Code", + ". todo", + ".t odo", + ".to do", + "´ s", + "C HK", + "CH K", + "Ġ Keeping", + "ĠKe eping", + "ĠKeep ing", + "ĠKee ping", + "enge ance", + "Ġvs code", + "IP PING", + "IPP ING", + "Default CloseOperation", + "_ raise", + "_r aise", + "_ra ise", + "ĠO culus", + "ĠOc ulus", + "o grams", + "og rams", + "ogram s", + "ogr ams", + "ogra ms", + "r aj", + "ra j", + "p ci", + "pc i", + "Ġcorros ion", + ". handleSubmit", + ".handle Submit", + "Access ible", + "ĠP iano", + "ĠPi ano", + "l ittle", + "lit tle", + "A CL", + "AC L", + "Äĩ e", + ". unwrap", + ".un wrap", + "ĠCon vers", + "ĠConv ers", + "ĠLe ben", + "ion eer", + "ione er", + "Ġ Merchant", + "ĠM erchant", + "ĠMer chant", + "ĠMerch ant", + "ĠJ orge", + "Ġembr acing", + "Ġ venta", + "Ġv enta", + "Ġvent a", + "Ġven ta", + "á st", + "ás t", + "Ġv iene", + "Ġvi ene", + "Ġvie ne", + "< QString", + "Ċ", + "-g rowing", + "-gr owing", + "-grow ing", + "Ġdeep copy", + "A ck", + "Ac k", + "eg gies", + "egg ies", + "Ġ __(\"", + "Ġ_ _(\"", + "Ġ__ (\"", + "Ġ__( \"", + "Ġn oir", + "Ġno ir", + "Ġnoi r", + "terror ism", + "Ġan them", + "Ġant hem", + "Ġanth em", + "a gency", + "ag ency", + "age ncy", + "agen cy", + "_ PACKAGE", + "_PACK AGE", + "Ġ Closure", + "ĠC losure", + "ĠClo sure", + ". registry", + ".reg istry", + "Ġmamm als", + "Ġmamma ls", + "< L", + "U ICollectionView", + "UI CollectionView", + "ĠLE Ds", + "ĠLED s", + "Ġv olley", + "Ġvol ley", + "Ġvoll ey", + "( Buffer", + "(B uffer", + "_N ATIVE", + "li bc", + "lib c", + "im plode", + "impl ode", + "Scroll Bar", + "ĠMar ion", + "ĠMario n", + "ĠMari on", + ". Contracts", + ".Con tracts", + ".Contract s", + "_ At", + "_A t", + "ĠWe instein", + "ĠWein stein", + "compare To", + "ĠH ose", + "ĠHo se", + "ĠHos e", + "en ity", + "eni ty", + ". createQuery", + ".create Query", + "_ router", + "_r outer", + "_ro uter", + "_route r", + "Ġstim uli", + "Ġ ++)", + "Ġ+ +)", + "Ġ++ )", + "ĠCh amp", + "ĠCha mp", + "ĠCham p", + "ĠBay ern", + "ĠBayer n", + "a ssa", + "as sa", + "ass a", + ". va", + ".v a", + "Ġdistrib utors", + "Ġdistributor s", + "Ġfile private", + "Ġdepart ed", + "c ccc", + "cc cc", + "ccc c", + "@ click", + "@c lick", + "ĠL unch", + "ĠLun ch", + "> L", + "Ġb luetooth", + "Ġbl uetooth", + ". Deep", + ".De ep", + "- standing", + "-st anding", + "á cil", + "ác il", + "áci l", + "Ġro oft", + "Ġroof t", + "Ġ Paths", + "ĠP aths", + "ĠPat hs", + "ĠPath s", + "ĠPa ths", + "_ iterations", + "_iter ations", + "_iteration s", + "Invalid ArgumentException", + ". spi", + ".s pi", + ".sp i", + "Ġ UIAlertAction", + "ĠUIAlert Action", + "u ye", + "uy e", + "sign in", + "sig nin", + ". priority", + ".p riority", + "ĠEs says", + "ĠEss ays", + "ĠEssay s", + "=' {$", + "='{ $", + "Ġ è¿ĶåĽŀ", + "Ġè¿ ĶåĽŀ", + "_ signed", + "_s igned", + "_sign ed", + "_sig ned", + ". persist", + ".p ersist", + "Ġre design", + "Ġred esign", + "Ġrede sign", + "Ġredes ign", + "To Lower", + "ĠNew man", + "= start", + "ĠIsrael is", + "ĠIsraeli s", + "as iswa", + "asis wa", + "S peech", + "Spe ech", + "Ġnum eros", + "Ġnumer os", + "Ġnumero s", + "handle rs", + "hand lers", + "handler s", + "ĠW ong", + "ĠWo ng", + "ĠWon g", + "Ġм еÑĤод", + "ĠмеÑĤ од", + "We ights", + "Weight s", + "ĠGu jar", + "t eil", + "te il", + "ĠNone theless", + "ĠNon etheless", + "_E FFECT", + "Ġ vect", + "Ġv ect", + "Ġve ct", + "Ġvec t", + "ĠO sc", + "ĠOs c", + "Ġco ats", + "Ġcoat s", + "ĠW heat", + "ĠWh eat", + "ĠWhe at", + "Ġge ek", + "Ġgee k", + "Ġ PROPERTY", + "ĠP ROPERTY", + "ĠPRO PERTY", + "w orm", + "wo rm", + "wor m", + "_ constants", + "_con stants", + "_const ants", + "_constant s", + "ĠB oulder", + "ĠBou lder", + "Ġ Parm", + "ĠP arm", + "ĠPar m", + "ĠPa rm", + "c ole", + "co le", + "col e", + "Ġdefault Center", + "ĠRo uge", + "ĠRou ge", + ": A", + "x cf", + "xc f", + "ĠVen ice", + "ĠVe nice", + "m edian", + "med ian", + "medi an", + "media n", + "Ġred emption", + "F resh", + "Fr esh", + "Fre sh", + "Ġco sm", + "Ġcos m", + "Ġ figur", + "Ġfig ur", + "Ġref urb", + "CO PE", + ". cd", + ".c d", + "Ġch ords", + "Ġchord s", + "Ġchor ds", + "ĠS gt", + "Å į", + "V PN", + "VP N", + "Ġ SEND", + "ĠS END", + "ĠSE ND", + "ĠSEN D", + "a inen", + "ain en", + "ai nen", + "aine n", + "_ accounts", + "_account s", + "_ac counts", + "Ġt enth", + "Ġte nth", + "Ġten th", + "Ġtent h", + "Ġdiss olved", + "Ġdissolve d", + "< App", + "", + "Ġ' >", + "Ġlegitim acy", + "Ġ oo", + "Ġo o", + "S linky", + "Sl inky", + "Ġnational s", + "Ġnation als", + ". words", + ".w ords", + ".word s", + "; p", + "t rap", + "tr ap", + "tra p", + "oman ip", + "oma nip", + "Ġc ues", + "Ġcu es", + "Ġcue s", + "Ġgrad uating", + "Ġgradu ating", + "Ġsem aphore", + "\" ]);ĊĊ", + "\"] );ĊĊ", + "\"]) ;ĊĊ", + "\"]);Ċ Ċ", + "\"]); ĊĊ", + "ace y", + "ac ey", + "RE ET", + "REE T", + "G rab", + "Gr ab", + "ĠF elix", + "ĠFe lix", + "ĠFel ix", + "( Id", + "(I d", + "_ neighbors", + "_ne ighbors", + "_neighbor s", + "Ġmeaning less", + "( del", + "(d el", + "(de l", + "Ġj eder", + "Ġje der", + "Ġjed er", + "Ġjede r", + "ĠContent Values", + ". absolute", + ".a bsolute", + ".abs olute", + "/ cl", + "/c l", + "Ġ xb", + "Ġx b", + "d atum", + "dat um", + "Ġtort ured", + "Ġtorture d", + "Ġrub bing", + "Ġru bbing", + "S cores", + "Sc ores", + "Score s", + "ĠðŁĺ ī", + "Ġav ons", + "Ġam sterdam", + "E OS", + "EO S", + "H al", + "Ha l", + "Ġtrust worthy", + "# =", + ".EX TRA", + "Ġm ano", + "Ġman o", + "Ġma no", + "is icing", + "isi cing", + "- support", + "-s upport", + "-sup port", + "ĉ cursor", + "ĉc ursor", + "Ġ Spo", + "ĠS po", + "ĠSp o", + "ai massage", + "aim assage", + "M ission", + "Miss ion", + "[] {\"", + "[]{ \"", + "Ġpr inters", + "Ġprint ers", + "Ġprinter s", + "Ġprin ters", + "G REEN", + "GRE EN", + "GREE N", + "Ġ teg", + "Ġt eg", + "Ġte g", + "Ġabdom inal", + "! ĊĊĊĊĊĊ", + "!ĊĊ ĊĊĊĊ", + "!Ċ ĊĊĊĊĊ", + "!ĊĊĊĊ ĊĊ", + "!ĊĊĊ ĊĊĊ", + ". Short", + ".S hort", + ".Sh ort", + "а зв", + "аз в", + "ĠGi fts", + "ĠGift s", + "} \")", + "}\" )", + "( binding", + "(b inding", + "(bin ding", + "(bind ing", + "x ce", + "xc e", + "âĢ ij", + "in fos", + "info s", + "inf os", + "Form Data", + "Ġ dart", + "Ġd art", + "Ġda rt", + "Ġdar t", + "Ġ elems", + "Ġe lems", + "Ġel ems", + "Ġele ms", + "Ġelem s", + "( inv", + "(i nv", + "(in v", + "Y L", + "t in", + "ti n", + "G ENER", + "GE NER", + "GEN ER", + "á» ¯", + "Ġ Taken", + "ĠT aken", + "ĠTake n", + "ĠTa ken", + "ĠTak en", + "uc kle", + "uck le", + ": e", + "Ġs pectral", + "Ġspect ral", + "Ġspectra l", + ".b aidu", + "/ ');Ċ", + "/' );Ċ", + "/') ;Ċ", + "Ġgre edy", + "Ġgreed y", + "es ion", + "esi on", + ",,,, ,,,,", + "Ġ/ >,Ċ", + "Ġ/> ,Ċ", + "Ġ/>, Ċ", + "Internal ServerError", + "NS NotificationCenter", + "NSNotification Center", + "Ġ Ai", + "ĠA i", + "Ġs pit", + "Ġsp it", + "Ġspi t", + "Ġaug mented", + "Ġaugment ed", + "Ġstandard UserDefaults", + "FIN ITY", + "R ace", + "Ra ce", + ": C", + "ĠRE CORD", + "ĠREC ORD", + "Ġ Highlight", + "ĠHigh light", + "Ġ' `", + "Ġdef icits", + "Ġdeficit s", + "Ġn ei", + "Ġne i", + "Ġresearch ed", + "T a", + "Ġc opp", + "Ġco pp", + "Ġcop p", + ".Get HashCode", + ") :čĊčĊ", + "): čĊčĊ", + "):čĊ čĊ", + "On Click", + "ĠWell ington", + "ĠWel lington", + "Ġrev ival", + "æ¯ Ķ", + "éĹ ®", + "Ġ NSS", + "ĠN SS", + "ĠNS S", + "Ġf orn", + "Ġfor n", + "Ġfo rn", + "Ġin té", + "Ġint é", + "ĠKu wait", + "_ flip", + "_f lip", + "_fl ip", + "_ bo", + "_b o", + "_ \\", + "Ġocc urrences", + "Ġoccurrence s", + "Ġ Scientists", + "ĠScient ists", + "ĠScientist s", + "S RC", + "SR C", + "o gens", + "og ens", + "ogen s", + "oge ns", + "i grant", + "ig rant", + "igr ant", + "RE MOTE", + "REM OTE", + "Ġ SID", + "ĠS ID", + "ĠSI D", + ". opts", + ".op ts", + ".o pts", + ".opt s", + "u ve", + "uv e", + "( )])Ċ", + "() ])Ċ", + "()] )Ċ", + "Ġlibert arian", + "ĠG lide", + "ĠGl ide", + "l esen", + "le sen", + "les en", + "Ġ forme", + "Ġfor me", + "Ġform e", + "ow ania", + "owa nia", + "owan ia", + "Ġannoy ed", + "D efs", + "De fs", + "Def s", + "Ġ Executor", + "ĠExec utor", + "Ġ casts", + "Ġc asts", + "Ġca sts", + "Ġcas ts", + "Ġcast s", + ". setChecked", + ".set Checked", + "Ġ Sharing", + "ĠSh aring", + "ĠSha ring", + "ĠShar ing", + ".Serialize Object", + "Ġ selectors", + "Ġselect ors", + "Ġselector s", + "Ġsel ectors", + "Ġsele ctors", + "_ OTHER", + "_OT HER", + "ë ¯¸", + "ë¯ ¸", + "( super", + "(s uper", + "( OS", + "(O S", + "_ VERIFY", + "_VER IFY", + "id unt", + "< header", + "';Ċ", + "Ġ/> ';Ċ", + "Ġ/>' ;Ċ", + "Ġvid éo", + "Ġvidé o", + "ĠNe gro", + "ĠNeg ro", + "ĠL ords", + "ĠLord s", + "ĠLor ds", + "ĠT ours", + "ĠTo urs", + "ĠTour s", + "ĠTou rs", + "Ġsoft ly", + ". receive", + ".re ceive", + "Ġ ERC", + "ĠE RC", + "ĠER C", + "Ġdata Set", + "B adge", + "Bad ge", + "Ba dge", + "ĉ Event", + "ĉE vent", + "Ġ perl", + "Ġper l", + "Ġpe rl", + "Ġ {}\\", + "Ġ{ }\\", + "Ġ{} \\", + "( sentence", + "(s entence", + "(sent ence", + "Or Update", + "Ġdim inish", + "Ġdimin ish", + "P IN", + "PI N", + "( draw", + "(d raw", + "(dr aw", + ".To DateTime", + ". EqualTo", + ".Equal To", + "( pin", + "(p in", + "(pi n", + "-p encil", + "l uent", + "lu ent", + "lue nt", + "Ġ Caller", + "ĠC aller", + "ĠCal ler", + "ĠCall er", + "ĠCa ller", + "Ġplay ful", + "- '+", + "-' +", + "x ca", + "xc a", + "s wick", + "sw ick", + ") {}Ċ", + "){ }Ċ", + "} :${", + "}: ${", + "ĠM eth", + "ĠMe th", + "ĠMet h", + ". getCell", + ".get Cell", + ".getC ell", + ". break", + ".b reak", + "Ġ ymax", + "Ġy max", + "=' Ċ", + "}`} >Ċ", + "ĠH iro", + "ĠHi ro", + "ĠHir o", + "( TRUE", + "(TR UE", + "as urer", + "asure r", + "asu rer", + "Ġc uer", + "Ġcu er", + "Ġcue r", + "U ber", + "Ub er", + ". Operation", + ".O peration", + ".Op eration", + "Ġ olan", + "Ġo lan", + "Ġol an", + "Ġola n", + "Ġthr illing", + "Ġthrill ing", + "< Response", + "ĠF emin", + "ĠFe min", + "ĠFem in", + "Ġtr aversal", + "Ġtravers al", + "Ġp oc", + "Ġpo c", + "Ġ setStatus", + "Ġset Status", + "de clar", + "dec lar", + "decl ar", + "std afx", + "Ġaddict ive", + "Ġ Btn", + "ĠB tn", + "Ġexplos ives", + "Ġexplosive s", + "ĠCo oking", + "ĠCook ing", + "ĠPl aint", + "ĠPlain t", + "ĠPla int", + "Ġ accumulator", + "Ġaccum ulator", + "Ġ Appointment", + "ĠApp ointment", + ", password", + ",p assword", + "ĠF AR", + "ĠFA R", + "l uet", + "lu et", + "lue t", + "Further more", + "decl spec", + "_ Statics", + "_Static s", + "_St atics", + ". Dictionary", + ".D ictionary", + "\" >'.", + "\"> '.", + "\">' .", + "ĉ valid", + "ĉval id", + "ĉva lid", + "\" \",", + "\"\" ,", + "In strument", + "Instr ument", + "> J", + "Ġno str", + "Ġnos tr", + "Ġnost r", + "ĠR ift", + "ĠRi ft", + "ĠRif t", + "_ Port", + "_P ort", + "Ġve ces", + "Ġvec es", + "[ ['", + "[[ '", + "Ġrall ies", + "- series", + "-s eries", + "-se ries", + "-ser ies", + "Ġ vv", + "Ġv v", + ". uc", + ".u c", + "Ġr tn", + "Ġrt n", + "State Changed", + "( ins", + "(i ns", + "(in s", + "Ġ Cla", + "ĠC la", + "ĠCl a", + "- -----------Ċ", + "-- ----------Ċ", + "---- --------Ċ", + "-------- ----Ċ", + "--- ---------Ċ", + "------------ Ċ", + "----- -------Ċ", + "---------- --Ċ", + "------ ------Ċ", + "----------- -Ċ", + "------- -----Ċ", + "--------- ---Ċ", + "c us", + "cu s", + "Ġ Reload", + "ĠR eload", + "ĠRe load", + "ĠRel oad", + "// ------------------------------------------------------------------------------------------------", + "//---------------------------------------------------------------- --------------------------------", + "//---------------------------------------------------------------------------- --------------------", + "//------------------------------------------------ ------------------------------------------------", + "//-------------------------------- ----------------------------------------------------------------", + "//-------------------------------------------------------------------------------- ----------------", + "//---------------- --------------------------------------------------------------------------------", + ". seconds", + ".se conds", + ".second s", + ".sec onds", + "_ destination", + "_d estination", + "_dest ination", + "Ġscre wed", + "Ġscr ewed", + "Ġscrew ed", + "> c", + "Th ickness", + "Des igner", + "Design er", + "Ġgr ids", + "Ġgrid s", + "Ġgri ds", + "n Äħ", + "( cookie", + "(c ookie", + "(co okie", + "T rip", + "Tr ip", + "Tri p", + "- Mobile", + "-M obile", + "Ġv oll", + "Ġvo ll", + "Ġvol l", + "Ġgen ital", + "Ġconf isc", + "ĠConfeder ate", + "Ġ webView", + "Ġweb View", + "Ġ mise", + "Ġm ise", + "Ġmis e", + "Ġmi se", + "Ġc ler", + "Ġcl er", + "Ġcle r", + "( selection", + "(s election", + "(se lection", + "(select ion", + "(sel ection", + "$ date", + "$d ate", + "Ġsharp en", + "Ġshar pen", + "r agen", + "ra gen", + "rag en", + "rage n", + "And Update", + "Ġre mix", + "Ġrem ix", + "Ġh tons", + "Ġht ons", + "Ġhton s", + "R W", + "M PI", + "MP I", + "Ġretrie val", + "Ġretr ieval", + "Ġrich est", + "Ġri chest", + "Ġric hest", + "Ġriches t", + ". Decode", + ".De code", + ".Dec ode", + ":init Components", + "ĠT Value", + "ĠTV alue", + "S aint", + "Sa int", + "@ include", + "Ġ PERSON", + "ĠPER SON", + ". sep", + ".s ep", + ".se p", + "Ġ LDAP", + "ĠLD AP", + "g ba", + "gb a", + "Ġgro ÃŁe", + "ĠgroÃŁ e", + "Ġreli ably", + "Ġ DFS", + "ĠD FS", + "ĠDF S", + ".get ItemId", + ".getItem Id", + "Ġpré sent", + "Ġprés ent", + ". getToken", + ".get Token", + "Ġch inese", + "Ġchin ese", + "Ġ Meal", + "ĠMe al", + "Y OU", + "YO U", + "\" > >ĊĊ", + "Ġ> >ĊĊ", + "Ġ>> ĊĊ", + "b ower", + "bo wer", + "bow er", + "Ġsw apped", + "Ġswap ped", + "/ install", + "Ġs inks", + "Ġsin ks", + "Ġsink s", + "etr ize", + "etri ze", + "Ġdec lines", + "Ġdecl ines", + "Ġdecline s", + "ĉ mysql", + "ĉm ysql", + "ĉmy sql", + "Ġ CString", + "ĠC String", + "ĠCS tring", + "ĠM otionEvent", + "ĠMotion Event", + ". Language", + ".L anguage", + "R oad", + "Ro ad", + "ÑĤ еÑĢ", + "ÑĤе ÑĢ", + "asc imento", + "' ))->", + "') )->", + "')) ->", + ". about", + ".a bout", + ".ab out", + "( editor", + "(e ditor", + "(ed itor", + "(edit or", + "ĠR atings", + "ĠRa tings", + "ĠRating s", + "ĠRat ings", + "in come", + "inc ome", + "Å¡ e", + ".de queueReusableCell", + "ĠAust rian", + "ĠAustria n", + "ĠAustr ian", + "Ġs ulla", + "Ġsu lla", + "Ġsul la", + "ĠTrib unal", + "Ġ Didn", + "ĠDi dn", + "ĠDid n", + "о ваÑĢ", + "ов аÑĢ", + "ова ÑĢ", + "Ġins pections", + "Ġinspect ions", + "Ġinspection s", + "Ġinsp ections", + "B oss", + "Bo ss", + "Ġcock tails", + "Ġcocktail s", + "Ġapolog ized", + "Ġapologize d", + "_ subplot", + "_sub plot", + "o pal", + "op al", + "opa l", + "+ =(", + "+= (", + "Ġreson ance", + "i bu", + "ib u", + "Ġ 리", + "Ġë ¦¬", + "Ġë¦ ¬", + "r oma", + "ro ma", + "rom a", + "re serve", + "res erve", + "rese rve", + "p ls", + "pl s", + "ĠT ah", + "ĠTa h", + "a xies", + "ax ies", + "O PLE", + "OP LE", + "ĠDar ren", + "ĠZ ombie", + "_ Map", + "_M ap", + "Ġ ])ĊĊ", + "Ġ] )ĊĊ", + "Ġ])Ċ Ċ", + "Ġ]) ĊĊ", + "Ġ Qi", + "ĠQ i", + "ĠS ail", + "ĠSa il", + "ĠSai l", + "Ġrestrict ive", + "Ġeros ion", + "- par", + "-p ar", + "W HITE", + "WH ITE", + "Ġold u", + "Ġol du", + "Ġap erture", + "Ġbit coins", + "Ġbitcoin s", + "text o", + "tex to", + "ĠCom cast", + "Ġtime less", + "Ġtim eless", + "en kins", + "enk ins", + "Ġfe eder", + "Ġfeed er", + "Ġfee der", + "/ tmp", + "/t mp", + "res den", + "+ '_", + "+' _", + ". Destroy", + ".D estroy", + ".De stroy", + "Ġ çok", + "Ġç ok", + "Ġ DOCUMENT", + "ĠD OCUMENT", + "ĠDOC UMENT", + ". lng", + ".l ng", + ". tagName", + ".tag Name", + "Ġk ullan", + "Ġkul lan", + "eg rate", + "egr ate", + "egra te", + "Ġ( *.", + "Ġ(* .", + "ç¼ĸ è¾ij", + "Ġhand shake", + "s oc", + "so c", + "_ geometry", + "_ge ometry", + "_geo metry", + "_geom etry", + "ĠDam ascus", + "Min or", + "Mi nor", + "ĠK afka", + "ĠKaf ka", + "ìĹ ¬", + "Fl orida", + "_ compute", + "_com pute", + "_comp ute", + ". expr", + ".ex pr", + ".exp r", + "Ġ paralle", + "Ġpar alle", + "Ġpara lle", + "ĠD iaz", + "ĠDi az", + "ĠDia z", + "c ir", + "ci r", + "[ target", + "[t arget", + "Ġj oking", + "Ġjo king", + "Ġg lor", + "Ġgl or", + "Ġglo r", + "( setq", + "(set q", + "_ handlers", + "_handler s", + "_handle rs", + "_hand lers", + "H ang", + "Ha ng", + "Han g", + "Ġf err", + "Ġfe rr", + "Ġfer r", + "r iminal", + "rim inal", + "ĉ ĠĠĠĠĉĉ", + "ĉĠĠĠ Ġĉĉ", + "ĉĠ ĠĠĠĉĉ", + "ĉĠĠ ĠĠĉĉ", + "ĉĠĠĠĠ ĉĉ", + "ĉĠĠĠĠĉ ĉ", + "en ties", + "ent ies", + "enti es", + "def ines", + "define s", + "- tax", + "-t ax", + "json p", + "Ġ UPS", + "ĠU PS", + "ĠUP S", + "m etro", + "me tro", + "met ro", + "_ _;Ċ", + "__ ;Ċ", + "__; Ċ", + "ĠUg anda", + "] )):Ċ", + "]) ):Ċ", + "])) :Ċ", + "_ td", + "_t d", + "x ae", + "xa e", + "l w", + ". OS", + ".O S", + "Ġ Logged", + "ĠLog ged", + "a cid", + "ac id", + "aci d", + "ĠM ayo", + "ĠMay o", + "ĠMa yo", + "a spect", + "as pect", + "asp ect", + "Ġvag inal", + "Ġvagina l", + "Ġinitial izing", + "Ġste roids", + "Ġster oids", + "Ġsteroid s", + "f iction", + "fi ction", + "fic tion", + "G RE", + "GR E", + "g end", + "ge nd", + "gen d", + "Ġli abilities", + "Ġ Lets", + "ĠL ets", + "ĠLe ts", + "ĠLet s", + "M ech", + "Me ch", + "( nc", + "(n c", + "( change", + "(ch ange", + "(chan ge", + "Ġconn ectors", + "Ġconnect ors", + "Ġconnector s", + ": k", + "Ġt ast", + "Ġta st", + "Ġtas t", + "! \");ĊĊ", + "!\" );ĊĊ", + "!\");Ċ Ċ", + "!\"); ĊĊ", + "!\") ;ĊĊ", + "th ings", + "thing s", + "thin gs", + "r ophy", + "ro phy", + "rop hy", + "roph y", + "l uetooth", + "lu etooth", + "luet ooth", + "Ġ SignUp", + "ĠSign Up", + ". ctrl", + ".c trl", + ".ct rl", + "Ġthere in", + "Ġther ein", + "or da", + "ord a", + ". escape", + ".e scape", + ".es cape", + "ig ator", + "iga tor", + "Ġpet rol", + "Ġspec imen", + "Ġspeci men", + "Ġdeb uted", + "Ġdebut ed", + "- Pro", + "-P ro", + "Ġcr ises", + "Ġcri ses", + "Ġcris es", + ".add View", + "ëı Ļ", + "- door", + "-d oor", + "-do or", + "Ġm onet", + "Ġmon et", + "Ġmo net", + "Ġm illis", + "Ġmill is", + "Ġmil lis", + "Ġmilli s", + "Ġ vier", + "Ġv ier", + "Ġvi er", + "Ġvie r", + "Internal Enumerator", + "Ġ admins", + "Ġad mins", + "Ġadmin s", + "Ġadm ins", + "ĠL air", + "ĠLa ir", + "z in", + "zi n", + "get Query", + "um bles", + "umb les", + "umble s", + "L IMIT", + "LI MIT", + "ĠV ig", + "ĠVi g", + "_ song", + "_s ong", + "_so ng", + "< Character", + ": :.", + ":: .", + "_ hom", + "_h om", + "_ bp", + "_b p", + "ĠSup ervisor", + "ĠSuper visor", + "ĠSuperv isor", + "sub mission", + "ab ile", + "abil e", + "abi le", + "Ġn oi", + "Ġno i", + "Or Create", + "Ġp eel", + "Ġpe el", + "Ġpee l", + "Ġon Start", + "Ġsent iments", + "Ġsentiment s", + "v ehicles", + "veh icles", + "vehicle s", + "Ġclass rooms", + "Ġclassroom s", + "Ġs zer", + "Ġsz er", + "Ġb ending", + "Ġben ding", + "Ġbend ing", + "Ġlong evity", + "Ġ acl", + "Ġa cl", + "Ġac l", + "ĠAle ppo", + "Ġ UM", + "ĠU M", + "ĠR icht", + "ĠRich t", + "ĠRic ht", + "ĠRi cht", + "Ġmulti processing", + "Ġmultip rocessing", + "DO MAIN", + "DOM AIN", + "\", \"+", + "\",\" +", + "_ YEAR", + "_Y EAR", + "Ġsc rape", + "Ġscr ape", + "Ġscrap e", + "Ġsol itary", + "Ġ\" ]\";Ċ", + "Ġ\"] \";Ċ", + "Ġ\"]\" ;Ċ", + "/ errors", + "/error s", + "ìŀ ¬", + "ľ ëł¥", + "b etter", + "bet ter", + "bett er", + "bette r", + "ĉ number", + "ĉn umber", + "ĉnum ber", + "Ġ LF", + "ĠL F", + "Ġ Across", + "ĠA cross", + "ĠAc ross", + "Pub Med", + "\\ \"\"", + "\\\" \"", + "ĠExcell ence", + "Ġus ando", + "Ġusa ndo", + "ĠU IP", + "ĠUI P", + "Activity Indicator", + "_ VOID", + "_V OID", + "_VO ID", + "Ġbre eds", + "Ġbreed s", + "Ġbree ds", + "ï½ ¥", + "ues tas", + "uest as", + "uesta s", + "ĠTre asure", + "ustr alian", + "ustral ian", + "ustralia n", + "( face", + "(f ace", + "ĠT ennis", + "ĠTen nis", + "ĠTenn is", + "ĉ Int", + "ĉI nt", + "ĉIn t", + "ĠH ansen", + "ĠHan sen", + "ĠHans en", + "ç µ", + ": I", + "Ġ âľĶ", + "Ġâľ Ķ", + "G RAY", + "GR AY", + "GRA Y", + "O USE", + "OU SE", + "OUS E", + "Ġhe pat", + "Ġhep at", + "ł í", + "A IR", + "AI R", + "ó ż", + "Ġ queued", + "Ġque ued", + "Ġqueue d", + "vin cia", + "vi ncia", + "vinc ia", + "ĠCh romium", + "ĠChrom ium", + "Ġcompet ence", + "Ġcompete nce", + "un gal", + "ung al", + "unga l", + "i lli", + "il li", + "ill i", + "Ġget By", + "Ġ Finder", + "ĠF inder", + "ĠFin der", + "ĠFind er", + "ĠFi nder", + "Ġincap able", + "Ġs add", + "Ġsa dd", + "Ġsad d", + "Ġc ites", + "Ġcit es", + "Ġci tes", + "Ġcite s", + "ĠChurch ill", + "S dk", + "More over", + "A spNet", + "As pNet", + "( Float", + "(F loat", + "$ password", + "$p assword", + "Ġ Connor", + "ĠCon nor", + "ĠConn or", + "- session", + "-s ession", + "_ dm", + "_d m", + "* ))", + "*) )", + "Ġde utsch", + "Ġdeut sch", + "Ġ NX", + "ĠN X", + "Ġper ks", + "Ġperk s", + "_ SORT", + "_S ORT", + "_SO RT", + "_TO OL", + "_TOO L", + "_ VISIBLE", + "_V ISIBLE", + "_VIS IBLE", + ". asp", + ".as p", + ".a sp", + "æĪ ĸ", + "ĠBre ath", + "D etect", + "Det ect", + "ĠD uel", + "ĠDu el", + "ĠDue l", + ". cmb", + ".c mb", + ".cm b", + "[ it", + "[i t", + ".Set Bool", + "Ġnarc iss", + "Ġab ide", + "Ġabi de", + "Ġej emplo", + "ĠâĦ ķ", + "Ġm ornings", + "Ġmor nings", + "Ġmorning s", + "Ġcomp utes", + "Ġcomput es", + "Ġcompute s", + ". ssl", + ".s sl", + ".ss l", + "j t", + "Ġm uchos", + "Ġmuch os", + "Ġmu chos", + "Ġmucho s", + "Ġmuc hos", + "_ SS", + "_S S", + "[ end", + "[e nd", + "Ġb asin", + "Ġbas in", + "Ġba sin", + "Ġalg unos", + "Ġalgun os", + "ĠCroat ia", + "line width", + "lin ewidth", + "( tags", + "(t ags", + "(tag s", + "( hidden", + "(h idden", + "ÃŃ cio", + "ÃŃc io", + "Ġa par", + "Ġap ar", + "Ġapa r", + "Ġ ж", + "ĠÐ ¶", + "ä¸ İ", + ". food", + ".f ood", + ".foo d", + "ĠR ural", + "ĠRu ral", + "Ġbread th", + "å½ ±", + "( sess", + "(s ess", + "(se ss", + "+ \")", + "+\" )", + "Ġ Paste", + "ĠP aste", + "ĠPa ste", + "ĠPast e", + "ĠPas te", + "Ġserv idor", + "ĠBit Set", + "ĠT ran", + "ĠTr an", + "ĠTra n", + "l aus", + "la us", + "v ette", + "ve tte", + "vet te", + "e yes", + "ey es", + "eye s", + "Ġ CLICK", + "ĠCL ICK", + "ĠCLI CK", + "ĠV III", + "ĠVI II", + "ĠVII I", + "ĠTur ns", + "ĠTurn s", + "ĠLe Bron", + "ĠM uj", + "ĠMu j", + "Ġ Deg", + "ĠD eg", + "ĠDe g", + "ĠAd ults", + "ĠAdult s", + "_ suite", + "_s uite", + "_su ite", + "process able", + "Ġ PHY", + "ĠP HY", + "ĠPH Y", + "g hest", + "gh est", + ". Fail", + ".F ail", + "ĠS lack", + "ĠSl ack", + "c ej", + "ce j", + "\\ Carbon", + "\\C arbon", + "Ġsuper star", + "Ġsupers tar", + "Ġsuperst ar", + "Ġhold ings", + "Ġholding s", + "Ġhol dings", + "( forms", + "(form s", + "(for ms", + "Ġ' #'", + "Ġ'# '", + "M ultip", + "Multi p", + "Mult ip", + "Mul tip", + "(\" [%", + "(\"[ %", + "- solid", + "-s olid", + "-so lid", + "/ url", + "/u rl", + "- tier", + "-t ier", + "[ length", + "[l ength", + "[len gth", + "Ġ StreamWriter", + "ĠStream Writer", + "ĠMarket place", + "get text", + "gett ext", + "_T ICK", + "_TI CK", + "Ġ Forge", + "ĠF orge", + "ĠFor ge", + "ĠForg e", + "Ġblack jack", + "ĠDO ES", + "ĠDOE S", + "ĠM atters", + "ĠMat ters", + "ĠMatt ers", + "ĠMatter s", + "ĠMatte rs", + "w aves", + "wa ves", + "wave s", + "wav es", + "Ġwhisper ed", + "Ġ lush", + "Ġl ush", + "Ġlu sh", + "ìĺ ¤", + "d igital", + "digit al", + "dig ital", + "Ġw rink", + "Ġwr ink", + "ĠH ogan", + "ĠHo gan", + "ĠHog an", + "Ġrust ic", + "Ġrus tic", + ".Apply Resources", + "ĠH ardy", + "ĠHar dy", + "ĠHard y", + "os omes", + "oso mes", + "osome s", + "A UT", + "AU T", + ". STATE", + ".ST ATE", + "Ġnarr atives", + "Ġnarrative s", + "ĉ store", + "ĉst ore", + "b ib", + "bi b", + "ĉ Scanner", + "ĠC ody", + "ĠCo dy", + "ĠCod y", + "\\ Repositories", + "Ġre union", + "Ġreun ion", + "an dum", + "and um", + "âĢĻ h", + "Ġsn iff", + "NS Bundle", + "Ġcompreh end", + "_ USAGE", + "_US AGE", + "_ occ", + "_o cc", + "_oc c", + "URRE NCY", + "J NI", + "Ġspecial izing", + "Ġ visions", + "Ġv isions", + "Ġvis ions", + "Ġvision s", + "Ġdo lore", + "Ġdol ore", + "Ġdolor e", + "Ġ vá", + "Ġv á", + "ĠChe vy", + "Ġ Styled", + "ĠSt yled", + "ĠStyle d", + "ĠSty led", + "imp act", + "a llen", + "al len", + "all en", + "alle n", + "Ġ kart", + "Ġk art", + "Ġka rt", + "Ġkar t", + "ĠTable t", + "ĠTab let", + "st uff", + "stu ff", + "re esome", + "ree some", + "rees ome", + "а ÑĤоÑĢ", + "аÑĤ оÑĢ", + "аÑĤо ÑĢ", + "//---------------------------------------------------------------- -----------Ċ", + "//- --------------------------------------------------------------------------Ċ", + "_ Admin", + "_Ad min", + "Ġcell phone", + "Ġ autoplay", + "Ġaut oplay", + "Ġauto play", + "Ġautop lay", + "Ġc ambio", + "Ġcam bio", + "Ġcamb io", + "Ġcambi o", + "Ġmar itime", + "Ġmari time", + "_ BOOT", + "_B OOT", + "_BO OT", + "- quarter", + "-qu arter", + "Ġlat ina", + "Ġlatin a", + "ĠAJ AX", + "e quiv", + "equ iv", + "ĠFront ier", + "Ġ XY", + "ĠX Y", + "} ]Ċ", + "}] Ċ", + "ĠR ough", + "ĠRo ugh", + "ĠRou gh", + ". proto", + ".pro to", + ".prot o", + ".pr oto", + "Ġcorrect ness", + "Ġfa cil", + "Ġfac il", + "Ġ Reached", + "ĠRe ached", + "ĠReach ed", + "ãģĿ ãģ®", + "V IS", + "VI S", + ". ps", + ".p s", + "Ġstr ncpy", + "Ġdif fusion", + "Ġdiff usion", + ".start Activity", + "� ��", + "�� �", + "Ġacc omp", + "Ġac comp", + "Ġaccom p", + "AME SPACE", + "AMES PACE", + "imon ials", + "imonial s", + "ĠB last", + "ĠBl ast", + "aby rin", + "Ġd ome", + "Ġdo me", + "Ġdom e", + "Ġext rav", + "Ġextra v", + "Ġextr av", + "Ġ yen", + "Ġy en", + "Ġye n", + "Ġcul inary", + "P RI", + "PR I", + "ĠComm unities", + "ĠCommun ities", + "n id", + "ni d", + "_ operations", + "_oper ations", + "_operation s", + ". hs", + ".h s", + "ĠM ilton", + "ĠMil ton", + "Ġno ises", + "Ġnoise s", + "Ġnoi ses", + "Autoresizing Mask", + "( cid", + "(c id", + "(ci d", + "} ĊĊĊĊĊĊ", + "}Ċ ĊĊĊĊĊ", + "}ĊĊ ĊĊĊĊ", + "}ĊĊĊ ĊĊĊ", + "}ĊĊĊĊ ĊĊ", + "}ĊĊĊĊĊ Ċ", + "] },Ċ", + "]} ,Ċ", + "]}, Ċ", + "Ġ Detection", + "ĠD etection", + "ĠDe tection", + "ĠDet ection", + "ĠDetect ion", + "ta bla", + "tab la", + "tabl a", + "Ġlib erties", + "Ġlibert ies", + "Ġliber ties", + "_D YNAMIC", + "w get", + "wg et", + "ĠT ür", + "ĠP ascal", + "ĠPa scal", + "ĠPas cal", + "Trans parent", + "Del ayed", + "Delay ed", + "] ()", + "]( )", + "ĠHer bert", + "ĠHerb ert", + "< ActionResult", + "", + "}- >", + "Ġpas ado", + "Ġpasa do", + "th ank", + "tha nk", + "than k", + "_ Delete", + "_De lete", + "ĠBr ighton", + "ĠBright on", + "ĠBrig hton", + ", unsigned", + "ä½ľ èĢħ", + "Ġaspir ations", + "Ġaspiration s", + "- how", + "-h ow", + "R ose", + "Ro se", + "Ros e", + "= ((", + "=( (", + "_ needed", + "_ne eded", + "_need ed", + "_ plural", + "_pl ural", + "< Application", + " >ĊĊ", + ">> ĊĊ", + ">>Ċ Ċ", + "Ġsurface d", + "Ġsurf aced", + "Ġìł Ģìŀ¥", + "ĠìłĢ ìŀ¥", + "pl atz", + "plat z", + "pla tz", + "ĉ email", + "ĉe mail", + "ĉem ail", + "cept ors", + "ceptor s", + "cep tors", + "\" >(", + "\"> (", + "Ġe pile", + "Ġep ile", + "è¯ »", + "ĠDe bt", + "ĠDeb t", + "åij Ĭ", + "N OP", + "NO P", + "\" https", + "\"http s", + ": j", + "Form Item", + "_ LICENSE", + "_L ICENSE", + ".get Double", + ".getD ouble", + "ĠAg enda", + "ĠAge nda", + "ĉ finally", + "ĉf inally", + "ĉfinal ly", + "( filters", + "(f ilters", + "(filter s", + "(fil ters", + "( av", + "(a v", + "ç¾ İ", + "A PER", + "AP ER", + "APE R", + "Ġ lava", + "Ġl ava", + "Ġla va", + "Ġlav a", + "еÑĢ ж", + ") )))ĊĊ", + ")) ))ĊĊ", + "))) )ĊĊ", + "))))Ċ Ċ", + ")))) ĊĊ", + "Ġfa ulty", + "Ġfault y", + "_ nm", + "_n m", + "Ġt rava", + "Ġtr ava", + "Ġtra va", + "Ġtrav a", + "( Bitmap", + "(B itmap", + "(Bit map", + "Ġspe eding", + "Ġspeed ing", + "> ').", + ">' ).", + ">') .", + "Ġscreen ed", + "Ġscre ened", + "_ roll", + "_r oll", + "_ro ll", + "ĠMac Book", + "Ġ AUD", + "ĠA UD", + "ĠAU D", + "Ġdiagn ose", + ". Generate", + ".G enerate", + ".Gen erate", + "Ġ ^^", + "Ġ^ ^", + "Ġs trs", + "Ġst rs", + "Ġstr s", + "[ Test", + "[T est", + "Ġr ansom", + "Ġran som", + "ĠDH CP", + "el den", + "eld en", + "Ġinterpret ations", + "Ġinterpretation s", + "( )].", + "() ].", + "()] .", + "flat Map", + "Ġline Height", + "_ mount", + "_m ount", + "_mo unt", + "ĠW izards", + "ĠWizard s", + "Ġsl uts", + "Ġslut s", + "Ġslu ts", + "eh ler", + "o dal", + "od al", + "oda l", + "Ġmilit ia", + "Ġmil itia", + "å ²", + "ear ned", + "earn ed", + "Ġmis ery", + "Ġmise ry", + "Ġmiser y", + "int val", + "f und", + "fun d", + "fu nd", + "Ġh ides", + "Ġhide s", + "Ġhi des", + "Ġhid es", + "Ġdi arr", + "Ġdia rr", + "ĠWes ley", + "Ġ xmm", + "Ġx mm", + "Ġxm m", + "Ġqu em", + "Ġque m", + "Ġq uem", + "ĠAr abs", + "ĠArab s", + "ĠAra bs", + "if th", + "ift h", + "ategor ized", + "ategori zed", + "D isposable", + "Dis posable", + "P ure", + "Pu re", + "_NOT IFY", + "sn ippet", + "ĠGar rett", + "ĠGarr ett", + ". running", + ".r unning", + ".run ning", + ". weights", + ".weight s", + ".we ights", + "Ġ (--", + "Ġ( --", + "Ġ(- -", + "Ġin variant", + "Ġinv ariant", + "äºĭ 件", + "Ġ Allowed", + "ĠAll owed", + "ĠAllow ed", + "d irs", + "dir s", + "di rs", + "Ġpass ions", + "Ġpassion s", + "Ġ lad", + "Ġl ad", + "Ġla d", + "Ġ Flush", + "ĠF lush", + "ĠFl ush", + "ĠFlu sh", + "m enus", + "men us", + "menu s", + ": block", + ":b lock", + "Ġcom pra", + "Ġcomp ra", + "Ġcompr a", + ".ch omp", + "al locator", + "all ocator", + "alloc ator", + "alloca tor", + "Ġcur ated", + "Ġcu rated", + "Ġ Knowing", + "ĠKn owing", + "ĠKnow ing", + "ĠPatt erson", + "Ġt elah", + "Ġte lah", + "Ġtel ah", + "Ġtela h", + "' ex", + "'e x", + "Ġdo omed", + "Ġdoom ed", + "Ġphil anth", + "o tty", + "ot ty", + "ott y", + ". styles", + ".st yles", + ".style s", + "Own ed", + "Ġallerg ies", + "Ġaller gies", + "= params", + "oc ese", + "oce se", + "it elist", + "ite list", + "itel ist", + "iteli st", + "Ġ Sending", + "ĠS ending", + "ĠSen ding", + "ĠSend ing", + "b ef", + "be f", + "or rar", + "orr ar", + "orra r", + "Ġ Não", + "ĠN ão", + "ĠF argo", + "ĠFar go", + "ĠL ub", + "ĠLu b", + "Ġ Combined", + "ĠComb ined", + "ĠCombine d", + "_ given", + "_g iven", + "ĉ ĉĉĉĉĠĠĠĠ", + "ĉĉ ĉĉĉĠĠĠĠ", + "ĉĉĉĉ ĉĠĠĠĠ", + "ĉĉĉ ĉĉĠĠĠĠ", + "ĉĉĉĉĉ ĠĠĠĠ", + "ĉĉĉĉĉĠ ĠĠĠ", + "ĉĉĉĉĉĠĠĠ Ġ", + "ĉĉĉĉĉĠĠ ĠĠ", + "Ġre conciliation", + "Ġreconc iliation", + "Pattern s", + "az ard", + "aza rd", + "azar d", + "Ġbio mass", + "Ġbiom ass", + "ĠH ouses", + "ĠHouse s", + "ĠHo uses", + "ĠHou ses", + "resp uesta", + "c co", + "cc o", + "/ topics", + "/to pics", + "/top ics", + "/topic s", + "ĠY uk", + "ĠYu k", + "Ġweak ened", + "Ġweaken ed", + "_ calendar", + "_c alendar", + "_cal endar", + "Ġmulher es", + "ĠM arl", + "ĠMar l", + "ĠMa rl", + "Ġs ine", + "Ġsi ne", + "Ġsin e", + "ĠT il", + "ĠTi l", + "ĠSo uls", + "ĠSou ls", + "ĠSoul s", + "ĠDe utsche", + "ĠDeutsch e", + "ĠF OLLOW", + "Ġp ipelines", + "Ġpipe lines", + "Ġpipeline s", + "Ġpip elines", + "ĠBever ly", + "_DIP SETTING", + "\" #", + "Ġ Proto", + "ĠPro to", + "ĠPr oto", + "ĠProt o", + ". big", + ".b ig", + ".bi g", + "ĠS avings", + "ĠSav ings", + "ĠSaving s", + "ĠT anz", + "ĠTa nz", + "ĠTan z", + "j un", + "ju n", + "Ġ Gamma", + "ĠG amma", + "ĠGa mma", + "ĠGam ma", + "ĠS add", + "ĠSa dd", + "ĠSad d", + "Ġadv isors", + "Ġadvis ors", + "Ġadvisor s", + "Ġro ast", + "Ġun ters", + "Ġunt ers", + "Ġunter s", + "ud ies", + "udi es", + "_ lon", + "_l on", + "_lo n", + "- pointer", + "-point er", + "-po inter", + "ĠElement Ref", + "\\ Builder", + "example Input", + ". webdriver", + ".web driver", + "data Type", + "Ġ Quite", + "ĠQ uite", + "ĠQu ite", + "ĠQui te", + "ĠQuit e", + "ĠCelt ics", + "ĠCel tics", + "ĠCeltic s", + "u il", + "ui l", + "- defense", + "-def ense", + "b ish", + "bi sh", + "bis h", + "ĠUI Window", + "Ġ Suddenly", + "ĠS uddenly", + ". hot", + ".h ot", + ". reason", + ".re ason", + "Ġg ör", + "Ġgö r", + "A MD", + "AM D", + ". Multi", + ".M ulti", + ".Mult i", + "auth enticated", + "authenticate d", + "reg ions", + "region s", + "; (", + "а ÑĢам", + "аÑĢ ам", + "аÑĢа м", + "ĠKir by", + "$ route", + "$r oute", + "PREC ATED", + "ĠDur ham", + "o wo", + "ow o", + "ĠPer forms", + "ĠPerform s", + "Ġdisreg ard", + "n st", + "ns t", + "ĠP ols", + "ĠPol s", + "ĠPo ls", + "Ġget P", + "\" ]:", + "\"] :", + "-color ed", + "-col ored", + "( Keys", + "(Key s", + "ĠAl leg", + "ĠAll eg", + "ĠAlle g", + "_ modify", + "_mod ify", + "_ loading", + "_lo ading", + "_load ing", + "s trained", + "str ained", + "stra ined", + "strain ed", + "Ġat roc", + "Ġatr oc", + "_p hr", + "_ph r", + "< Sprite", + "", + "c eph", + "ce ph", + "cep h", + ".DateTime Picker", + ". \";ĊĊ", + ".\" ;ĊĊ", + ".\";Ċ Ċ", + ".\"; ĊĊ", + "ĠT ie", + "ĠTi e", + ", item", + ",i tem", + ",it em", + "Ġm enn", + "Ġme nn", + "Ġmen n", + "G as", + "Ga s", + "o cha", + "oc ha", + "och a", + "_ virtual", + "_v irtual", + "Ġmaster piece", + "_ sequences", + "_se quences", + "_sequence s", + "L TE", + "LT E", + "Ġ Submission", + "ĠSub mission", + "C aller", + "Call er", + "Cal ler", + "Ca ller", + "$ \\", + "S port", + "Sp ort", + "Spo rt", + "ag us", + "agu s", + "Constraint Maker", + "Ġco loc", + "Ġcol oc", + "Ġ wig", + "Ġw ig", + "Ġwi g", + "Ġ У", + "ĠÐ £", + "ĉ Array", + "ĉA rray", + "L ooks", + "Lo oks", + "Look s", + "ĠG TA", + "ĠGT A", + ". steps", + ".st eps", + ".step s", + "atch ewan", + "_ ranges", + "_r anges", + "_range s", + "ext Alignment", + "ĠBren nan", + "Ġab straction", + "Ġabs traction", + "Ġabstract ion", + "Ġabst raction", + "uler Angles", + ". misc", + ".m isc", + ".mi sc", + "Ġantib odies", + "Ġex ponential", + "Ġexponent ial", + "Ġ CHANNEL", + "ĠCH ANNEL", + "exp ense", + "' y", + "Ġdetect ives", + "Ġdetective s", + "Ġpur ported", + "Y STEM", + "YS TEM", + "YST EM", + "Ġradio active", + "ĠLat ina", + "ĠLatin a", + ". Encoding", + ".En coding", + ".Enc oding", + ". TAG", + ".T AG", + "x in", + "xi n", + "D egree", + "De gree", + "Deg ree", + "ur acion", + "ura cion", + "p rices", + "pr ices", + "price s", + "pri ces", + "ĠRefer entialAction", + "Ġr arity", + "Ġrar ity", + "Ġp iles", + "Ġpi les", + "Ġpil es", + "Ġpile s", + "g ende", + "ge nde", + "gen de", + "gend e", + "_ projects", + "_project s", + "_proj ects", + "_ globals", + "_g lobals", + "_global s", + "_glob als", + ". startTime", + ".start Time", + "Ġ 구", + "Ġê µ¬", + "Ġêµ ¬", + "SE CTION", + "SEC TION", + "_ publish", + "_p ublish", + "_pub lish", + "F ault", + "Fa ult", + "D DL", + "DD L", + "_ prior", + "_p rior", + "_pr ior", + "_pri or", + "M om", + "Mo m", + "Ġth icker", + "Ġthick er", + "Ġthi cker", + "Ġ sequelize", + "Ġsequ elize", + "Ġsequel ize", + "Ġess entials", + "Ġessential s", + "s tras", + "st ras", + "str as", + "stra s", + "in tr", + "int r", + "> (()", + ">( ()", + ">(( )", + ". management", + ".man agement", + ".manage ment", + "e il", + "ei l", + "éĹ Ń", + "A ware", + "Aw are", + ". City", + ".C ity", + "ĠAr bit", + "ĠArb it", + "_ DM", + "_D M", + "_ keyboard", + "_key board", + "L Object", + "LO bject", + "- webpack", + "-web pack", + "ĠNew port", + "Ġprincipal Column", + "leg ant", + "Ġp allet", + "Ġpal let", + "Ġpall et", + "Ġfract ure", + "Ġfrac ture", + "Ġ gmail", + "Ġg mail", + "Ġgm ail", + ". Meta", + ".M eta", + ".Me ta", + "A bove", + "Ab ove", + ". KeyEvent", + ".Key Event", + "j it", + "ji t", + "_ macro", + "_m acro", + "_mac ro", + "_ma cro", + "_P USH", + "_PUS H", + "á» ©", + "/ controller", + "/control ler", + "åĬł è½½", + "Ġsuperf icial", + "exter ity", + "Ġ mensagem", + "Ġm ensagem", + "Ġmens agem", + "W ind", + "Win d", + "Wi nd", + "i ston", + "is ton", + "ist on", + "isto n", + ".open api", + "и ÑĢов", + "иÑĢ ов", + "Ġ Serializer", + "ĠS erializer", + "ĠSerial izer", + "ĠSerialize r", + "uct ive", + "Ġ zar", + "Ġz ar", + "Ġza r", + "P laces", + "Pl aces", + "Place s", + ". Static", + ".St atic", + ".Stat ic", + "B a", + "Ġin advert", + "ĠIndones ian", + "ĠIndonesia n", + "_I PV", + "_IP V", + "( horizontal", + "(h orizontal", + "Ġ getTitle", + "Ġget Title", + "ide press", + "ĠConsole Color", + "i pers", + "ip ers", + "ipe rs", + "iper s", + "$ out", + "$o ut", + "Ġfest ive", + "Ġeven ings", + "Ġevening s", + "Ġeve nings", + ". GetData", + ".Get Data", + "uit ka", + "ĠManual s", + "us sed", + "uss ed", + "_ Max", + "_M ax", + ". Chat", + ".C hat", + ".Ch at", + "ĠA ircraft", + "ĠAir craft", + "= com", + "=c om", + "F OUND", + "FO UND", + "a pro", + "ap ro", + "apr o", + "Ġtre asures", + "Ġtreasure s", + "_ alive", + "_a live", + "_al ive", + "Ġg adget", + "Ġgad get", + "e king", + "ek ing", + "eki ng", + "Button Down", + "B rowsable", + ".PER MISSION", + "P ASSWORD", + "PASS WORD", + "Ġ HASH", + "ĠH ASH", + "ĠHAS H", + "ĠHA SH", + "f é", + "\\ TestCase", + "\\Test Case", + "LO SS", + "LOS S", + "o thers", + "other s", + "oth ers", + ", J", + "Ġass hole", + "Ġassh ole", + "w erk", + "we rk", + "wer k", + "Ġm ã", + ". ie", + ".i e", + "e vil", + "ev il", + "evi l", + "kont akte", + "/ ///////////////////////////////////////////////////////////////////////////////Ċ", + "/// /////////////////////////////////////////////////////////////////////////////Ċ", + "//////////////////////////////////////////////////////////////////////////// ////Ċ", + "//////////////////////////////////////////////////////////////////////////////// Ċ", + "= sys", + "=s ys", + "ĉ lock", + "ĉl ock", + "ĉloc k", + "-- ;ĊĊ", + "--;Ċ Ċ", + "--; ĊĊ", + "_ FUN", + "_F UN", + "Fill Color", + "ó a", + "p rend", + "pr end", + "pre nd", + "Ġcom pressor", + "Ġcompr essor", + "Ġcompress or", + "M other", + "Mo ther", + "Mot her", + "ĠAr cher", + "ĠArch er", + "ĠArc her", + ". goto", + ".g oto", + ".go to", + "Ġwür de", + "Ġbam boo", + "Ġbamb oo", + "ï¼ İ", + "Ġ Trees", + "ĠT rees", + "ĠTr ees", + "ĠTree s", + "ĠTre es", + "Ġb umper", + "Ġbump er", + "Ġbum per", + "Ġsa usage", + "Ġsau sage", + "ĠEl asticsearch", + "ĠElastic search", + "Ġhor izontally", + "Ġhorizontal ly", + "ĠG ul", + "ĠGu l", + "Im mutable", + "Imm utable", + "Ġ loser", + "Ġl oser", + "Ġlo ser", + "Ġlos er", + "Ġlose r", + "Ġab orted", + "Ġabort ed", + "- demo", + "-d emo", + "-de mo", + "-dem o", + "ĠH atch", + "ĠHat ch", + "Ġ unde", + "Ġu nde", + "Ġun de", + "Ġund e", + "Ġpro cesso", + "Ġprocess o", + "Ġproc esso", + "Ġproces so", + "- call", + "-c all", + "-cal l", + "-ca ll", + "In come", + "Inc ome", + "å ĥ", + "_ returns", + "_return s", + "'] .\"'", + "']. \"'", + "'].\" '", + "( sw", + "(s w", + "C BS", + "CB S", + "am ilies", + "ami lies", + "amil ies", + "ĠYour self", + "ĠYours elf", + "ĠH olt", + "ĠHol t", + "ĠHo lt", + ". MON", + ".M ON", + "ৠĩ", + "ÑĪ е", + "a non", + "an on", + "ano n", + "Ġ FontAwesome", + "ĠFont Awesome", + "pro ducer", + "produ cer", + "prod ucer", + "produce r", + "j r", + "Ġm au", + "Ġma u", + "ĉ inter", + "ĉint er", + "ĉin ter", + "Ġdish onest", + "Ġm agna", + "Ġmag na", + "Ġmagn a", + "ĠColl ective", + "ĠCollect ive", + "Ġvra iment", + "Ġvrai ment", + "Ġcho ix", + "st ay", + "sta y", + "Ġwel ding", + "Ġweld ing", + "r ising", + "ri sing", + "ris ing", + ", min", + ",m in", + "ĠF ate", + "ĠFa te", + "ĠFat e", + "g lob", + "gl ob", + "RGB A", + "RG BA", + "Ġd ette", + "Ġde tte", + "Ġdet te", + "V en", + "Ve n", + "Ġembarrass ment", + ". DELETE", + ".DE LETE", + "g regar", + "greg ar", + "gre gar", + "- render", + "-r ender", + "-re nder", + "-ren der", + "( bucket", + "(b ucket", + "\" >ĊĊĊ", + "\"> ĊĊĊ", + "\">Ċ ĊĊ", + "\">ĊĊ Ċ", + ".wait Key", + "Bus y", + "Bu sy", + "Ġdifferent iation", + "ĠC ST", + "ĠCS T", + ". Constant", + ".Con stant", + ".Cons tant", + "Ġline Number", + "( matches", + "(m atches", + "(match es", + "(mat ches", + "Ġ websocket", + "Ġweb socket", + "Ġwebs ocket", + "Ġbar red", + "Ġbarr ed", + "Ġpued es", + "Ġpu edes", + "Ġpuede s", + "M ono", + "Mon o", + "Mo no", + "C ORE", + "CO RE", + "COR E", + "I ID", + "II D", + "ĠĠ ĠĠčĊčĊ", + "ĠĠĠĠ čĊčĊ", + "ĠĠĠ ĠčĊčĊ", + "ĠĠĠĠčĊ čĊ", + "Ġpúb lico", + "le aning", + "lean ing", + "lea ning", + "Ġclean sing", + "Ġcleans ing", + "Ġc ris", + "Ġcr is", + "Ġcri s", + "ĠDev ils", + "ĠDevil s", + "_ SETTING", + "_SET TING", + "unt ary", + "unta ry", + ". );Ċ", + ".) ;Ċ", + "Ċ ĠĠĠĊ", + "[ curr", + "[c urr", + "[cur r", + "t sy", + "ts y", + "ĠAlex is", + "ĠAle xis", + "r itel", + "ri tel", + "rit el", + "rite l", + "Ġpet roleum", + "Ġpetrol eum", + ".pre processing", + "m atter", + "mat ter", + "For Result", + "- license", + "-l icense", + "Ġtravel lers", + "Ġtrav ellers", + "Ġtraveller s", + "Ġ Dispatcher", + "ĠDispatch er", + "ĠDisp atcher", + "enn ifer", + "Ġdigest ive", + "P ED", + "PE D", + "hib ition", + "hibit ion", + "MAS ConstraintMaker", + "ĠW att", + "ĠWat t", + "ĠWa tt", + "B enef", + "Ben ef", + ".set View", + "d to", + "dt o", + "T EE", + "TE E", + "ĠPel osi", + "_EX TRA", + "_EXT RA", + "Ġmed als", + "Ġmedal s", + "x hr", + "fore cast", + "for ecast", + "Ġn argin", + "Ġnar gin", + "o uns", + "ou ns", + "oun s", + "- fill", + "-f ill", + "-fi ll", + "_CUR SOR", + "Ġsup ervised", + "Ġsuper vised", + "Ġsuperv ised", + "Ġsupervise d", + "Ġt urf", + "Ġtu rf", + "Ġtur f", + "ĠEd gar", + "POS ITION", + "POSIT ION", + "Ġ categoryId", + "Ġcategory Id", + "â ī", + "_ ER", + "_E R", + "ủ a", + "Sh own", + "Show n", + ". ll", + ".l l", + "_POL ICY", + "( ),'", + "() ,'", + "(), '", + "Ġ Prev", + "ĠP rev", + "ĠPr ev", + "ĠPre v", + "ĠString Field", + "ĉ Global", + "ĉG lobal", + "as sed", + "ass ed", + "asse d", + "Through out", + "o stringstream", + ".awt extra", + "Ġsl opes", + "Ġslo pes", + "Ġslope s", + "Ġ Sequential", + "ĠSe quential", + "ĠSequ ential", + "Ġgi orn", + "Ġgio rn", + "Ġ zelf", + "Ġz elf", + "Ġze lf", + "Ġzel f", + "Ġvers atility", + "Ġversa tility", + "le neck", + "len eck", + "lene ck", + ". cgi", + ".c gi", + ".cg i", + "Ġdoub ling", + "Ġdou bling", + "ĠBang kok", + "Ġbu urt", + "Ġusu ário", + "st udio", + "stu dio", + "stud io", + "Ġje unes", + "Ġjeune s", + "Ġjeu nes", + "Ġm uted", + "Ġmut ed", + "Ġmu ted", + "Ġmute d", + "Ġ ips", + "Ġi ps", + "Ġip s", + "_ fraction", + "_f raction", + "_fr action", + "_frac tion", + "& &(", + "&& (", + "Ġst unt", + "Ġstu nt", + "Ġstun t", + "') ;?> čĊ", + "}> čĊ", + "Ġev apor", + "b able", + "ba ble", + "bab le", + "Ġ PRICE", + "ĠPR ICE", + "ĠPRI CE", + "Ġ æ³", + "Ġæ ³", + "lu cent", + "Ġv amp", + "Ġva mp", + "ĠTechn ician", + "Ġunique ness", + "Ġuniqu eness", + "M es", + "Me s", + "ur ban", + "urb an", + ".param etrize", + "ĠRe play", + "ĠRep lay", + "S essions", + "Session s", + "em br", + "emb r", + "- Americans", + "-American s", + "-Americ ans", + "_PRO XY", + "Ġp ian", + "Ġpi an", + "Ġ trie", + "Ġt rie", + "Ġtr ie", + "Ġtri e", + "Ġ Destructor", + "ĠD estructor", + "ĠDe structor", + "Game State", + "ĠI MF", + "ĠIM F", + "c hin", + "ch in", + "chi n", + "Ġ porte", + "Ġp orte", + "Ġport e", + "Ġpor te", + "ĠS wal", + "ĠSw al", + "åŁ İ", + "Sub string", + "i ming", + "im ing", + "imi ng", + "imin g", + "/ Library", + "/L ibrary", + "Ġfright ened", + "w rites", + "write s", + "wr ites", + "Ġrec ursos", + "Ġrecurs os", + "ar Result", + "_INIT IALIZ", + "_INITIAL IZ", + "Ġ Badge", + "ĠB adge", + "ĠBad ge", + "ĠBa dge", + "_ crc", + "_c rc", + "_cr c", + "E ight", + "ĠDIST INCT", + "Ġ thro", + "Ġth ro", + "Ġthr o", + "@ Xml", + "Ġ Legendary", + "ĠLegend ary", + "- twitter", + "-t witter", + "-tw itter", + "_ easy", + "_e asy", + "Ġ +++", + "Ġ+ ++", + "Ġ++ +", + "( DATA", + "(D ATA", + ". Locale", + ".L ocale", + ".Local e", + ".Lo cale", + "Ġk ä", + "Ġn urt", + "Ġnu rt", + "Ġnur t", + "Ġcr uis", + "Ġcru is", + "_ ios", + "_i os", + "_io s", + "Ġs ensing", + "Ġsens ing", + "Ġsen sing", + "_ Line", + "_L ine", + "Ċ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "p ong", + "pon g", + "po ng", + "o leon", + "ol eon", + "ole on", + "Ġwild card", + "çĶ¨æĪ· åIJį", + "Ġbeg ging", + "R od", + "Ro d", + "Ġ Ãİ", + "Ġà İ", + "_ CELL", + "_C ELL", + "_CE LL", + "Research ers", + ". selector", + ".se lector", + ".select or", + ".sel ector", + "_ ing", + "_in g", + "_i ng", + "Ġas piring", + "Ġaspir ing", + "Ġasp iring", + "Ġimm ortal", + "Ġy min", + "_ robot", + "_r obot", + "_ro bot", + "Ġpl ur", + "Ġplu r", + "B TC", + "BT C", + "ĠD ID", + "ĠDI D", + "Ġpier cing", + "* u", + "_ DEFINED", + "_DEF INED", + "_DEFIN ED", + "_DEFINE D", + "ĠT hi", + "ĠTh i", + "i taire", + "it aire", + "ita ire", + "( media", + "(m edia", + "(me dia", + "- ons", + "-on s", + "-o ns", + "Ġch efs", + "Ġche fs", + "Ġchef s", + "Ġ\" *.", + "Ġ\"* .", + "/ AP", + "/A P", + "Ġr azor", + "Ġraz or", + "Ġsearch Data", + "Ġ =&", + "Ġ= &", + "Ġ ãĢĤ", + "ĠãĢ Ĥ", + "Ġm ourn", + "Ġmo urn", + "Ġmou rn", + "Ġmour n", + "t ingham", + "ting ham", + "Ġ oli", + "Ġo li", + "Ġol i", + "ĠVer non", + "ĠVern on", + "_ RS", + "_R S", + "ŀ æĢ§", + "Ġf ácil", + "a ngen", + "an gen", + "ang en", + "ange n", + "ce lain", + "cel ain", + "cela in", + "Ġ ail", + "Ġa il", + "Ġai l", + "l est", + "le st", + "les t", + "ĠQ COMPARE", + "g ain", + "ga in", + "Ġ ε", + "ĠÎ µ", + "ĠK ob", + "ĠKo b", + "Ġ Fault", + "ĠF ault", + "ĠFa ult", + "ĠFaul t", + "_ configs", + "_config s", + "_conf igs", + "ç»ĵ æŀľ", + ". +", + "c alar", + "ca lar", + "cal ar", + "cala r", + "( colors", + "(color s", + "(col ors", + "M ul", + "Mu l", + "_ ART", + "_A RT", + "_AR T", + "Ġexperiment ing", + "er men", + "erm en", + "ĠAng lo", + ".Fixed Single", + "S ea", + "Se a", + "Ġ ctxt", + "Ġc txt", + "Ġctx t", + "Ġct xt", + ". slider", + ".s lider", + ".sl ider", + ".slide r", + "C ollapse", + "Coll apse", + "G rey", + "Gr ey", + "Gre y", + "Ġ fld", + "Ġf ld", + "Ġfl d", + "- proof", + "-p roof", + "-pro of", + ". capacity", + ".cap acity", + "get Parent", + "ĠCom pliance", + "Ġbur gl", + "Ġburg l", + "- rec", + "-r ec", + "-re c", + "Ġover written", + "M U", + "Ġr outers", + "Ġro uters", + "Ġroute rs", + "Ġrout ers", + "Ġrouter s", + "Ġrou ters", + "ĉ Model", + "ĉM odel", + "Ġfantas ies", + "av ian", + "avi an", + "avia n", + "_ prec", + "_p rec", + "_pr ec", + "_pre c", + "ĠSc andin", + "ĠScan din", + "Ġ// <", + "Ġ/ /<", + "/ oct", + "/o ct", + "Ġceremon ies", + "Mon ths", + "Month s", + "Mont hs", + "un dy", + "und y", + "Ġqu ed", + "Ġque d", + "Ġq ued", + "ĠN ou", + "ĠNo u", + "ĠV ibr", + "ĠVi br", + "ĠVib r", + ". rgb", + ".r gb", + "Ġcit rus", + "Ġbr aces", + "Ġbra ces", + "Ġbrace s", + "- uppercase", + "-upper case", + "get Table", + "Ġd opo", + "Ġdo po", + "Ġdop o", + "ĠK err", + "ĠKe rr", + "ĠKer r", + "_ CHILD", + "_CH ILD", + "- cloud", + "-c loud", + "-cl oud", + "ĉ Matrix", + "ĉM atrix", + "ĉMat rix", + "Ġgarden ing", + "Ġgard ening", + "S ing", + "Si ng", + "Sin g", + "al most", + "alm ost", + "Require ments", + "Requirement s", + "ugu ay", + "( Property", + "(P roperty", + "sub scriber", + "subscribe r", + "F AST", + "FA ST", + "re action", + "react ion", + "rea ction", + "( lp", + "(l p", + ") })Ċ", + ")} )Ċ", + ")}) Ċ", + "` ).", + "`) .", + ". wallet", + ".w allet", + ".wall et", + "_ exchange", + "_ex change", + ". Maximum", + ".Max imum", + "Ġ Verb", + "ĠV erb", + "ĠVer b", + "ĠVe rb", + "âĶ ģ", + "( )<", + "() <", + "ï¼Ľ Ċ", + "R OT", + "RO T", + "C ARD", + "CA RD", + "CAR D", + "u bit", + "ub it", + "ubi t", + "{ @", + "_ kel", + "_k el", + "_ke l", + "Ġ Tooltip", + "ĠTo oltip", + "ĠTool tip", + "My SQL", + "Main Activity", + "a rf", + "ar f", + "Ġm align", + "Ġmal ign", + "Ġse inen", + "Ġsein en", + "Ġseine n", + "Ġsei nen", + "ap ist", + "api st", + "apis t", + "Ġ< %", + "Method Impl", + "M il", + "Mi l", + "ĠM ick", + "ĠMi ck", + "ĠMic k", + ". depend", + ".d epend", + ".de pend", + ".dep end", + "< ID", + " >&", + ">> &", + "ĉ ok", + "ĉo k", + "- low", + "-l ow", + "-lo w", + ". usuario", + ".us uario", + "n ested", + "ne sted", + "nes ted", + "nest ed", + "X B", + "OUR S", + "OU RS", + ". BorderColor", + ".Border Color", + "Ġb row", + "Ġbr ow", + "Ġbro w", + "Ġ Ðķ", + "ĠÐ ķ", + "c orr", + "co rr", + "cor r", + "ĠRed skins", + "ĠReds kins", + ".get Tag", + ".get Transaction", + "Ġst igma", + "har dt", + "hard t", + "ĠPlayer Prefs", + "al sy", + "als y", + "uc son", + "ucs on", + "L anguages", + "Language s", + "ĠOl ivia", + "ĠOliv ia", + "Ġt ac", + "Ġta c", + "Ġb li", + "Ġbl i", + "Ġc aval", + "Ġca val", + "Ġcav al", + "Ġconsolid ated", + "Ġconsolidate d", + "Ġper il", + "Ġpe ril", + "Ġperi l", + "Ġd ele", + "Ġde le", + "Ġdel e", + "Ġform ulated", + "Ġformula ted", + "Ġformul ated", + "Ġformulate d", + "Ġhigh ways", + "Ġhighway s", + ". spawn", + ".s pawn", + ".sp awn", + "= =$", + "== $", + "ĠN iet", + "ĠNi et", + "ĠNie t", + "Ġv eggies", + "Ġveg gies", + "y po", + "yp o", + "- rule", + "-r ule", + "ĠV ie", + "ĠVi e", + "/e pl", + "Ġenf ants", + "string Literal", + "Ġtough est", + "Ġtou ghest", + "bu yer", + "buy er", + "Ġcov ariance", + "Ġ ili", + "Ġi li", + "Ġil i", + "ĠSoph ie", + "Ġ BAB", + "ĠB AB", + "ĠBA B", + "Ġ \"),", + "Ġ\" ),", + "Ġ\") ,", + "ĠU k", + "current Index", + "_ userdata", + "_user data", + ". codec", + ".co dec", + ".code c", + ".cod ec", + "ĠPun jab", + "ĠS NP", + "ĠSN P", + "l ol", + "lo l", + "adv ance", + "Ġcom fy", + "Json Ignore", + "Ġfashion able", + "Ġ ICON", + "ĠI CON", + "ĠIC ON", + "ĠICO N", + "Ġ ora", + "Ġo ra", + "Ġor a", + "ĠP ricing", + "ĠPr icing", + "ĠPri cing", + "< num", + " E", + "t ering", + "ter ing", + "te ring", + "teri ng", + "/ screens", + "/s creens", + "/screen s", + "Ġheight ened", + "аÑĢ ÑĤ", + "Author ities", + "_ bbox", + "_b box", + "_bb ox", + "ü nst", + "ün st", + "üns t", + ". fontSize", + ".font Size", + "Ġ BOOLEAN", + "ĠBO OLEAN", + "div ide", + "di vide", + "divid e", + "ĠS loven", + "ĠSl oven", + "ĠSlo ven", + "ĠSlov en", + "u cer", + "uc er", + "uce r", + "Ù Ĵ", + "st ub", + "stu b", + "Ġnavig ating", + ": animated", + "_ NOW", + "_N OW", + "_NO W", + "_ vect", + "_v ect", + "_vec t", + "_ve ct", + "} {Ċ", + "}{ Ċ", + "@ (", + "Ġtele com", + "Ġtel ecom", + "Ġcontract ing", + "Ġcontr acting", + "ĠAss ange", + "Ġextract ing", + "Ġextr acting", + "Ġgr ö", + "c obra", + "co bra", + "cob ra", + ". DIS", + ".D IS", + "Ġc rab", + "Ġcr ab", + "Ġcra b", + "Ġt witch", + "Ġtw itch", + "Ġ verts", + "Ġv erts", + "Ġver ts", + "Ġvert s", + "Ġve rts", + "Ġreject s", + "Ġrej ects", + "ĉ format", + "ĉfor mat", + "ĉform at", + "Ġre generation", + "Ġreg eneration", + ". Sys", + ".S ys", + "s olve", + "sol ve", + "ĉ dialog", + "ĉd ialog", + "s hi", + "sh i", + "m eter", + "me ter", + "met er", + "( best", + "(b est", + "(be st", + "valid ators", + "validator s", + "Ġon wards", + "Ġonward s", + "Ġg uru", + "Ġgu ru", + "Ġmod erator", + "Ġmoder ator", + "ow ied", + "owie d", + "owi ed", + "ex periment", + "r ub", + "ru b", + "Ġ mqtt", + "Ġm qtt", + "Ġmq tt", + "ĠCa ucas", + "Ġnational ism", + "Ġm ange", + "Ġman ge", + "Ġma nge", + "Ġmang e", + "ĉ ImGui", + "/ Edit", + "/E dit", + "Ġ inh", + "Ġin h", + "Ġi nh", + "Ġint ellig", + "Ġintel lig", + "ero kee", + "ĉ export", + "ĉex port", + "ĉexp ort", + "Ġdiscrim inate", + "Ġdiscrimin ate", + "sub tract", + "ĠM oodle", + "ĠMoo dle", + "ĠMood le", + "en ser", + "ens er", + "ense r", + "ĠGu ides", + "ĠGuid es", + "ĠGuide s", + "ĠGui des", + "R AP", + "RA P", + "- hot", + "-h ot", + "_ grp", + "_g rp", + "_gr p", + ". picture", + ".p icture", + ".pic ture", + "X A", + "Ġinit View", + "_ Comm", + "_C omm", + "_Com m", + "Ġoverd ose", + "Ġ +ĊĊ", + "Ġ+ ĊĊ", + "Ġ+Ċ Ċ", + "ĠS ilent", + "ĠSil ent", + "sh ows", + "show s", + "Ġinter polate", + "Ġinterpol ate", + "Ġinterp olate", + "Form ation", + "Format ion", + "Ġb isc", + "Ġbi sc", + "Ġbis c", + "mark ets", + "market s", + "( SC", + "(S C", + "Z e", + "Ġ Networking", + "ĠNetwork ing", + "ĠNet working", + "Ġad renal", + "Ġadr enal", + "ĠG uns", + "ĠGu ns", + "ĠGun s", + "et eor", + "ete or", + "De clared", + "Decl ared", + "Declare d", + "orge town", + "orget own", + "Ġk arena", + "Ġka rena", + "Ġkar ena", + "/ password", + "/p assword", + "/pass word", + "_ addresses", + "_add resses", + "_address es", + "_addr esses", + "IT ERAL", + "ITE RAL", + "ITER AL", + "B uzz", + "Bu zz", + "ĠCon way", + "( case", + "(c ase", + "(ca se", + "P WD", + "PW D", + "he iro", + "hei ro", + "( act", + "(a ct", + "(ac t", + "* *čĊ", + "** čĊ", + "( ));ĊĊĊ", + "() );ĊĊĊ", + "());Ċ ĊĊ", + "()) ;ĊĊĊ", + "());ĊĊ Ċ", + "()); ĊĊĊ", + "Ġa nv", + "Ġan v", + "Ġ ..ĊĊ", + "Ġ. .ĊĊ", + "Ġ.. ĊĊ", + "Ġ..Ċ Ċ", + "( MenuItem", + "(Menu Item", + "( mail", + "(m ail", + "_ sections", + "_s ections", + "_se ctions", + "_section s", + "ĉ net", + "ĉn et", + "Ġp lut", + "Ġpl ut", + "Ġplu t", + "Ġw rench", + "Ġwr ench", + "/ object", + "/o bject", + "ĠI st", + "ĠIs t", + "Ġ VIS", + "ĠV IS", + "ĠVI S", + "/ pub", + "/p ub", + "al ten", + "alt en", + "alte n", + "Ġguitar s", + "Ġguit ars", + "Ġantib iotic", + "Ġantibiot ic", + "ï¼ ĸ", + " ¹", + "Ġ \"+\"", + "Ġ\" +\"", + "Ġ\"+ \"", + "form ula", + "Ġba bes", + "Ġbab es", + "Ġbabe s", + "Ġ Prompt", + "ĠP rompt", + "ĠProm pt", + "Ġe nim", + "Ġen im", + "/ player", + "/p layer", + "/pl ayer", + "/play er", + "ĉ ref", + "ĉr ef", + "ĉre f", + "Ġby Äĩ", + "Ġcons umes", + "Ġconsum es", + "Ġconsume s", + "ĠH ast", + "ĠHas t", + "ĠHa st", + "ĠT ao", + "ĠTa o", + "Ġ '))Ċ", + "Ġ' ))Ċ", + "Ġ') )Ċ", + "Ġc lam", + "Ġcl am", + "Ġcla m", + "Ġthigh s", + "Ġmot if", + "Ġmo tif", + "Api Operation", + "Ġ WL", + "ĠW L", + "get C", + "ĉ flags", + "ĉf lags", + "ĉflag s", + "oint ments", + "ointment s", + "Ġeconomic al", + "Ġeconom ical", + "need le", + "nee dle", + "x ls", + "xl s", + "pr actice", + "ut zer", + "utz er", + "time ofday", + "- output", + "-out put", + "Ġ findById", + "Ġfind ById", + "ĠfindBy Id", + "ĠB uddy", + "ĠBudd y", + "ĠBu ddy", + "ĠBud dy", + "Ðŀ ÑĤ", + "S even", + "Se ven", + "ĠB ark", + "ĠBar k", + "ĠBa rk", + "Ġen voy", + "Ġenv oy", + "_ algorithm", + "_al gorithm", + "åĪ ©", + "Ġball istic", + "ç§ »", + "r ades", + "ra des", + "rad es", + "rade s", + "ĉ doc", + "ĉd oc", + "ĉdo c", + "rodu cing", + "rod ucing", + "ĠE ating", + "ĠEat ing", + "ĠEa ting", + "Un mount", + "/data Tables", + "_ bonus", + "_b onus", + "Ġl itt", + "Ġli tt", + "Ġlit t", + "p ps", + "pp s", + ") localObject", + "pe rf", + "per f", + "Ġ Helvetica", + "ĠHel vetica", + "sh utdown", + "/ ml", + "/m l", + ". tokens", + ".t okens", + ".token s", + "ĠHard core", + ", row", + ",r ow", + "/ bg", + "/b g", + "S caler", + "Sc aler", + "Scale r", + "âĢĶ as", + "âĢĶa s", + "_log its", + "âĢĻ int", + "âĢĻin t", + "âĢĻi nt", + "ĉ App", + "ĉA pp", + "Impl icit", + "Imp licit", + ".F printf", + "E TO", + "ET O", + "Ġ terra", + "Ġt erra", + "Ġter ra", + "Ġterr a", + "Ġpossess ing", + ". rstrip", + ".r strip", + ".rs trip", + ", ),", + ",) ,", + "= yes", + "=y es", + "Ġ Stripe", + "ĠSt ripe", + "ĠStr ipe", + "ĠStrip e", + "? =", + "ne utral", + ". good", + ".g ood", + ".go od", + "Ġk ennen", + "Ġke nnen", + "Ġken nen", + "Ġkenn en", + "ĠS ung", + "ĠSun g", + "ĠSu ng", + "f ault", + "fa ult", + "ystate change", + "Can adian", + "',' \".$", + "ĠM its", + "ĠMi ts", + "ĠMit s", + "æ nd", + "Ġ STRUCT", + "ĠSTR UCT", + "ĠURL WithString", + "ĠCom pass", + "ĠComp ass", + "Ġ --ĊĊ", + "Ġ- -ĊĊ", + "Ġ-- ĊĊ", + "Ġ--Ċ Ċ", + "ĠNS LayoutConstraint", + "| min", + "|m in", + "- adjust", + "-ad just", + "Ġre built", + "Ġreb uilt", + "L IGHT", + "/ se", + "/s e", + "- mount", + "-m ount", + "v pn", + "vp n", + "valid ated", + "validate d", + "( QObject", + "(Q Object", + "Ġign ition", + "ĠChar gers", + "ĠCharg ers", + "ĠCharge rs", + "ĠCharger s", + "RYPT O", + "]initWith Frame", + "Ġ Fluid", + "ĠFl uid", + "ĠFlu id", + "Ġca dre", + "Ġcad re", + "Ġnom inations", + "Ġnomin ations", + "Ġnomination s", + "Ne ill", + "Neil l", + "ĠH ou", + "ĠHo u", + "Ġcurrent s", + "Ġcurr ents", + "_ gene", + "_g ene", + "_gen e", + "_ge ne", + "( inp", + "(i np", + "(in p", + "P aris", + "Par is", + "Pa ris", + "z ÄĻ", + "ag gregate", + "Ġ assoc", + "Ġas soc", + "Ġass oc", + "we eted", + "weet ed", + "er rat", + "err at", + "erra t", + "âĢĵ ĊĊ", + "Ġ' /',Ċ", + "Ġ'/ ',Ċ", + "Ġ'/' ,Ċ", + "Ġ'/', Ċ", + "f ixture", + "fix ture", + "Ġ Highest", + "ĠH ighest", + "ĠHigh est", + "ĠHi ghest", + "amb ient", + "ambi ent", + "Ġ chmod", + "Ġch mod", + "Ġ conte", + "Ġc onte", + "Ġcon te", + "Ġcont e", + "Ġco nte", + "Ġs ensual", + "Ġsens ual", + "Ġgar ment", + "z ers", + "ze rs", + "zer s", + "Ġ Powered", + "ĠP owered", + "ĠPower ed", + "ĠPow ered", + "dom ains", + "domain s", + "R eward", + "Re ward", + "Rew ard", + "i omanip", + "Ġcock pit", + "out file", + "Ġ builtin", + "Ġb uiltin", + "Ġbuilt in", + "Ġins isting", + "Ġinsist ing", + ". vars", + ".v ars", + ".var s", + ".va rs", + "zip code", + "Ġ ����", + "Ġ� ���", + "f ails", + "fa ils", + "fail s", + "Ġconsolid ation", + "_ oid", + "_o id", + "Plan et", + "Plane t", + "Ġ =\",", + "Ġ= \",", + "Ġ=\" ,", + "ĉ el", + "ĉe l", + "U ILT", + "UI LT", + "UIL T", + "ä tz", + "ät z", + "af ari", + "afa ri", + "ĠMc Cl", + "ĠMcC l", + "T imeline", + "Time line", + "Tim eline", + "E sta", + "Est a", + "Es ta", + "Ġ fram", + "Ġf ram", + "Ġfr am", + "Ġfra m", + "Y E", + "Ġcere bral", + "Of Month", + "ĠP regn", + "ĠPre gn", + "Ġкл аÑģÑģ", + "ĠклаÑģ Ñģ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠF res", + "ĠFr es", + "ĠFre s", + "Ap proved", + "Appro ved", + ". Special", + ".S pecial", + ".Spec ial", + ".Sp ecial", + "ĠProte stant", + "ĠProtest ant", + "Ġall ergy", + "Ġallerg y", + "Ġaller gy", + "_ pcm", + "_p cm", + "_pc m", + "ĉ Copyright", + "ĉC opyright", + "Ġsuper Class", + "\" strconv", + "ĠMoh amed", + "Ġ' //", + "Ġ'/ /", + "Fore Color", + "Ar thur", + "Art hur", + "ĠJ ungle", + "ĠJun gle", + "ĠJu ngle", + "ĠJung le", + "Ġve ins", + "Ġvein s", + "S ad", + "Sa d", + "Ġback ups", + "Ġbackup s", + "ĠOp inion", + "û t", + "Ġinter mitt", + "o dyn", + "od yn", + "ody n", + "ĠChrist ina", + "Ġ andre", + "Ġand re", + "Ġan dre", + "Ġevac uation", + "p alette", + "pa lette", + "pal ette", + "h orse", + "hor se", + "ĠRes ident", + "ĠHas san", + "ĠHass an", + ". Nil", + ".N il", + "Ġa isle", + "Ġais le", + "Ġ Growing", + "ĠG rowing", + "ĠGr owing", + "ĠGro wing", + "ĠGrow ing", + "Ġblog info", + "/ sql", + "/s ql", + "_ ioctl", + "_io ctl", + "S caling", + "Sc aling", + "Ġ Monad", + "ĠMon ad", + "ĠMo nad", + "ĠMona d", + "_ cpp", + "_c pp", + "_cp p", + "ĠH utch", + "ĠHut ch", + "ĠApple WebKit", + "Exp ense", + "_ JOB", + "_J OB", + "_JO B", + "Ġpoint less", + "From Body", + "an tal", + "ant al", + "anta l", + "Ġdepict ing", + "Ġ CELL", + "ĠC ELL", + "ĠCE LL", + "ĠCEL L", + "Ġre fin", + "Ġref in", + "ĠC NC", + "ĠCN C", + "ì¹ ĺ", + "_ dimensions", + "_dim ensions", + "_dimension s", + "Ġ SAN", + "ĠS AN", + "ĠSA N", + "Ġ aft", + "Ġa ft", + "Ġaf t", + "Ġfoot steps", + "c coli", + "cc oli", + "cco li", + "_ PHONE", + "_P HONE", + "_PH ONE", + "/ math", + "/m ath", + "/mat h", + "- kind", + "-k ind", + "Ġ Means", + "ĠMe ans", + "ĠMean s", + "ich ael", + "icha el", + ". guna", + ".g una", + "Ġinaug uration", + "Ġinaugur ation", + "-dr iving", + "( delete", + "(de lete", + "(del ete", + "Ġ totalCount", + "Ġtotal Count", + "_ MC", + "_M C", + ". Extension", + ".Ext ension", + "Com mercial", + "Comm ercial", + "Ġz Index", + "< Customer", + "$", + "\"> $", + "Ġe bay", + "Ġeb ay", + "Ġc aptive", + "Ġca ptive", + "Ġcapt ive", + "pl iant", + "ĠCalculate s", + "ĠCalcul ates", + "ĠCalc ulates", + "ol ta", + "olt a", + "es ting", + "est ing", + "esti ng", + "_ revision", + "_re vision", + "_rev ision", + "Ġm ús", + "Ġmú s", + "+ m", + "\",\" \",\"", + "\",\"\", \"", + "WH AT", + "Ġcompass ionate", + "Ġcompassion ate", + "h arga", + "har ga", + "[ random", + "[r andom", + "[rand om", + "Ġ modulo", + "Ġmod ulo", + "( sn", + "(s n", + "Ġoccup ations", + "Ġoccupation s", + "/ ///Ċ", + "// //Ċ", + "//// Ċ", + "/// /Ċ", + "ĉ board", + "ĉb oard", + "ĠB alk", + "ĠBa lk", + "ĠBal k", + "w iÄħ", + "wi Äħ", + "Ġ Wifi", + "ĠW ifi", + "ĠWi fi", + ". Profile", + ".Pro file", + ".Pr ofile", + ": maj", + ":m aj", + "ĉ mat", + "ĉm at", + "LOCK S", + "LOC KS", + "(j Button", + "Ġ ('$", + "Ġ( '$", + "Ġ(' $", + "M ur", + "Mu r", + "æĮ ī", + "b ble", + "bb le", + "Ġ frog", + "Ġf rog", + "Ġfr og", + "Ġfro g", + "- hide", + "-h ide", + "Ġbroad caster", + "Ġbroadcast er", + "ภŀ", + "h aled", + "ha led", + "hal ed", + "Ġam using", + "_ predictions", + "_pre dictions", + "_pred ictions", + "_predict ions", + "_prediction s", + "_ intr", + "_in tr", + "_int r", + "Ġe agle", + "Ġea gle", + "Ġeag le", + "аÑĤ елÑĮ", + "аÑĤе лÑĮ", + "Ġ getList", + "Ġget List", + "ps ilon", + "psi lon", + "Ġcharacter ization", + "AR DS", + "ARD S", + "Ġre location", + "Ġrel ocation", + "Ġreloc ation", + "Ġr ulers", + "Ġrule rs", + "Ġru lers", + "Ġruler s", + "P AY", + "PA Y", + "ĠDef initely", + "_ Action", + "_A ction", + "_Act ion", + "Ġc losures", + "Ġclos ures", + "Ġclosure s", + "Ġf actual", + "Ġfact ual", + "Ġfac tual", + "o dynamic", + "od ynamic", + "odyn amic", + "odynam ic", + "Ġpreca utions", + "Ġprecaution s", + "n iej", + "ni ej", + "nie j", + "ĠPart ies", + "ĠPar ties", + "ĠParti es", + "ĠSub aru", + "ĠSu baru", + "Ġcous ins", + "Ġcousin s", + "ar beit", + ". money", + ".m oney", + ".mo ney", + ".mon ey", + "g unta", + "gun ta", + "( and", + "(a nd", + "(an d", + "get item", + ".Style Priority", + "Ġs lid", + "Ġsl id", + "s ingleton", + "single ton", + "sing leton", + "Ġg arn", + "Ġgar n", + "Ġga rn", + "ĠP AS", + "ĠPA S", + "Ġd azz", + "Ġda zz", + "a ż", + "Ġbog us", + "ĠM og", + "ĠMo g", + "Ġrival ry", + "i sol", + "is ol", + "iso l", + "Ġland marks", + "Ġlandmark s", + "ñ as", + "ña s", + "B ern", + "Be rn", + "Ber n", + "ĠS achs", + "ĠSa chs", + "ĠSac hs", + "ĠSach s", + "Ġ \")ĊĊ", + "Ġ\" )ĊĊ", + "Ġ\") ĊĊ", + "Ġ\")Ċ Ċ", + "Ġhost ility", + "Ġhos tility", + "_m ex", + "_me x", + "m ere", + "mer e", + "me re", + "M ot", + "Mo t", + "p ictureBox", + "picture Box", + "Def ense", + "Ġaffid avit", + "other wise", + ". directory", + ".d irectory", + ".direct ory", + "_ UnityEngine", + "_Un ityEngine", + "- blog", + "-b log", + "-bl og", + ". skin", + ".s kin", + ".sk in", + "p hem", + "ph em", + "phe m", + "Ap ellido", + "er chant", + "[ class", + "[c lass", + "Ġ wart", + "Ġw art", + "Ġwar t", + "Ġwa rt", + ". \"[", + ".\" [", + "a leur", + "al eur", + "ale ur", + "/ back", + "/b ack", + "ĠĠĠĠ ĉĠĠĠ", + "ĠĠĠ ĠĉĠĠĠ", + "ĠĠĠĠĉ ĠĠĠ", + "ĠĠĠĠĉĠ ĠĠ", + "Ġprecip itation", + "Ġob struction", + "Ġobstruct ion", + "Ġp Obj", + "Ġ rupt", + "Ġr upt", + "Ġru pt", + "U CKET", + "UCK ET", + "a ye", + "ay e", + "æİ Ĵ", + "g x", + "Ġe cl", + "Ġec l", + "Ġsecre cy", + "/ Header", + "ĠLe sb", + "ĠLes b", + "Ġ lei", + "Ġl ei", + "Ġle i", + "Ġ Bulletin", + "ĠBull etin", + "ĠBullet in", + "Ġgive away", + ". Home", + ".H ome", + "_ ROOM", + "_R OOM", + "_RO OM", + "\" W", + "Ġco work", + "Ġcow ork", + "_ ra", + "_r a", + "ĠC ycling", + "ĠCy cling", + "ĠCycl ing", + "ĠCyc ling", + "ĠP aw", + "ĠPa w", + "Ġp upil", + "Ġpup il", + "/ arch", + "/a rch", + "/ar ch", + "ĠFile Utils", + "é¦ ĸ", + "r sp", + "rs p", + "Ġfreedom s", + "Ġfreed oms", + "ĠL ear", + "ĠLe ar", + "} `).", + "}` ).", + "Ġbow ls", + "Ġbowl s", + "/ block", + "/b lock", + "/bl ock", + "_ logging", + "_log ging", + "Ġme thane", + "Ġmeth ane", + "Ġh orns", + "Ġhor ns", + "Ġhorn s", + "Ġwonder fully", + "Ġwonderful ly", + "Ġalter ations", + "Ġalteration s", + "Ġex ile", + "l sen", + "ls en", + "lse n", + "_ pause", + "_p ause", + "_pa use", + "_ LANGUAGE", + "_L ANGUAGE", + "_LANG UAGE", + "ĠUS DA", + "ĠUSD A", + "_ mysql", + "_m ysql", + "_my sql", + "_AM OUNT", + "ĠL IFE", + "ĠLI FE", + "Ġyoung sters", + "Ġyoungster s", + "Ġri ots", + "Ġriot s", + "Ġrio ts", + "[ E", + "Ġun forgettable", + ", },Ċ", + "Dis posed", + "Dispose d", + "Disp osed", + "ĠAss assin", + "ĠAssass in", + "U NG", + "UN G", + "ĠNew sp", + "ĠNews p", + "User Service", + ": aload", + ":a load", + "+ ',", + "+' ,", + "Ġsett lers", + "Ġsettle rs", + "Ġscre ams", + "Ġscream s", + "Ġincon venience", + ". Rotate", + ".R otate", + "Ġj ars", + "Ġja rs", + "Ġjar s", + "ĠP uzzle", + "ĠPu zzle", + "Ġm est", + "Ġme st", + "Ġmes t", + "ar si", + "ars i", + "ĠS harma", + "ĠSh arma", + "ĠShar ma", + "| (", + ". ds", + ".d s", + "ĠSa cred", + "ĠSac red", + "ĠSacr ed", + "_ evt", + "_e vt", + "_ev t", + "Ġexp resses", + "Ġexpress es", + "Ġexpr esses", + "Ġexpres ses", + "Ġh och", + "Ġho ch", + "Ġhoc h", + "ĠD uch", + "ĠDu ch", + "ĠDuc h", + ". calls", + ".c alls", + ".call s", + ".cal ls", + "t hr", + "th r", + "ĠShe ffield", + ". AlertDialog", + ".Alert Dialog", + "Ġrad ically", + "Ġradical ly", + "Ġt rous", + "Ġtr ous", + "Ġtro us", + "Ġtrou s", + "Ġprev ailing", + "Ġprevail ing", + "ĠWW II", + "âĢĻ n", + "ens ely", + "ense ly", + "Ġ Yesterday", + "ĠY esterday", + "ĠSir ius", + "ĠSiri us", + "Ġkill ers", + "Ġkil lers", + "Ġkiller s", + "Ġ FFT", + "ĠF FT", + "ĠFF T", + "Ġ oval", + "Ġo val", + "Ġov al", + "' ):čĊ", + "') :čĊ", + "'): čĊ", + "Ġ ìłķë³´", + "Ġìłķ ë³´", + "ou rage", + "our age", + "Ġ Checkbox", + "ĠCheck box", + "Work book", + ". defer", + ".de fer", + ".def er", + "_ floor", + "_f loor", + "_fl oor", + "Ġc ouncill", + "Ġcouncil l", + "Ġnors ke", + "Ġnorsk e", + "m oil", + "mo il", + "o rea", + "or ea", + "ore a", + "Ġmark eted", + "Ġmarket ed", + "_ SUR", + "_S UR", + "_SU R", + "x AA", + "xA A", + "Ġst ained", + "Ġsta ined", + "Ġstain ed", + "e ut", + "eu t", + "ĠM eng", + "ĠMe ng", + "ĠMen g", + "Ġ ieee", + "Ġi eee", + "Ġie ee", + ". extern", + ".ex tern", + ".ext ern", + "e gie", + "eg ie", + "Ġr app", + "Ġrap p", + "Ġra pp", + "ĠPy ongyang", + "' class", + "M ob", + "Mo b", + "Ġinitial Value", + "_ wave", + "_w ave", + "Ġ jab", + "Ġj ab", + "Ġja b", + "Ġmascul ine", + "Ġampl ifier", + "Ġ tty", + "Ġt ty", + "Ġtt y", + "Path Component", + "_ xt", + "_x t", + "ĠG FP", + "ĠGF P", + "/ sec", + "/s ec", + "/se c", + "ĉ dispatch", + "ĉdis patch", + "mark down", + "ĠS chn", + "ĠSc hn", + "ĠSch n", + "b ole", + "bo le", + "bol e", + "· ·", + "mouse move", + "Ġ errMsg", + "Ġerr Msg", + "Ġa sign", + "Ġas ign", + "Ġasi gn", + "_ mono", + "_m ono", + "_mon o", + "_mo no", + "To Selector", + "ĠZ u", + "( Rect", + "(R ect", + "Ġ ErrorCode", + "ĠError Code", + "l atin", + "la tin", + "lat in", + "ang ible", + "angi ble", + "v tk", + "vt k", + "CG Size", + "P okemon", + "Pok emon", + "Ġclass mates", + "Ġat tracts", + "Ġattr acts", + "Ġattract s", + "ĠT atto", + "ĠTat to", + "ul tan", + "ult an", + "ulta n", + "ol óg", + "Ġh alted", + "Ġhal ted", + "Ġhalt ed", + "ठ¨", + "ĠK art", + "ĠKar t", + "ĠKa rt", + "Ġ ue", + "Ġu e", + "_Init Structure", + "_InitStruct ure", + "Test Class", + "ĠAir bnb", + "_ \",", + "_\" ,", + "Ġchar coal", + "Ġ ipc", + "Ġi pc", + "Ġip c", + "Ġ Stretch", + "ĠSt retch", + "ĠStr etch", + ".g lide", + ".gl ide", + "lates AutoresizingMaskIntoConstraints", + "Ġp otion", + "Ġpo tion", + "Ġpot ion", + "ITT LE", + "Ġcount ert", + "Ġcounter t", + "_ hd", + "_h d", + "pre pared", + "prepare d", + "prep ared", + "A ds", + "Ad s", + "ĠV ampire", + "ro bots", + "robot s", + "rob ots", + ".Create Index", + "Status Label", + "Ġt ucked", + "af ür", + "U t", + "Ġswe ater", + "Ġsweat er", + "_ FN", + "_F N", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĉ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĉ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĉ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĉ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġĉ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĉ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĉ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĉ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĉ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĉ", + "at aka", + "ata ka", + "atak a", + "Ġeyeb rows", + "Ġeyebrow s", + "a coes", + "ac oes", + "aco es", + "u den", + "ud en", + "ude n", + ".Linear LayoutManager", + ".LinearLayout Manager", + "Ġs way", + "Ġsw ay", + "Ġmult in", + "Ġmulti n", + "Ġmul tin", + "( ))))Ċ", + "() )))Ċ", + "()) ))Ċ", + "())) )Ċ", + "()))) Ċ", + "Ġ NSUInteger", + "ĠNS UInteger", + "ĠMy Base", + "P artner", + "Part ner", + "uts chen", + "utsch en", + "utsche n", + "ĠC ater", + "ĠCa ter", + "ĠCat er", + ".set BackgroundColor", + ".setBackground Color", + "Ġaccompl ishment", + "Ġaccomplish ment", + "_ problem", + "_pro blem", + "_prob lem", + ".d td", + ".dt d", + "Ġ pageNumber", + "Ġpage Number", + "ĠpageNum ber", + "Ġj ackets", + "Ġjack ets", + "Ġjacket s", + "Ġc ropped", + "Ġcr opped", + "Ġcro pped", + "Ġcrop ped", + "u els", + "ue ls", + "uel s", + "ĠH ep", + "ĠHe p", + "Ġc apped", + "Ġcap ped", + "Ġca pped", + "* Math", + "*M ath", + "_ callbacks", + "_callback s", + "_call backs", + "Ġp ubb", + "Ġpub b", + "Ġpu bb", + "ĠBrun swick", + ". respond", + ".res pond", + ".resp ond", + "[ \"_", + "[\" _", + "Ġbed ding", + "hyth m", + "O X", + "( speed", + "(s peed", + "(sp eed", + "Ġpest icides", + "Ġpestic ides", + "Ġpesticide s", + "Ġ -------", + "Ġ- ------", + "Ġ-- -----", + "Ġ---- ---", + "Ġ--- ----", + "Ġ----- --", + "Ġ------ -", + ". Blue", + ".B lue", + ".Bl ue", + "Ġn oodles", + "Ġnood les", + "ĠG oes", + "ĠGo es", + "Ġs aver", + "Ġsa ver", + "Ġsave r", + "Ġsav er", + "o xy", + "ox y", + "_ completion", + "_com pletion", + "_comp letion", + "ĠSw inger", + "ĠSwing er", + "Ġ getDate", + "Ġget Date", + "Ġm inded", + "Ġmin ded", + "Ġmind ed", + "int egration", + "integr ation", + "ĠLot us", + "( stop", + "(s top", + "(st op", + "(', ');Ċ", + "(',' );Ċ", + "(',') ;Ċ", + "Ġfl oods", + "Ġflo ods", + "Ġflood s", + "Ġ Workflow", + "ĠWork flow", + "Ġe rupted", + "Ġerupt ed", + "M acro", + "Mac ro", + "Ma cro", + "ĠS auce", + "ĠSa uce", + "ĠSau ce", + "Ġ eventName", + "Ġevent Name", + "\\ Input", + "Break ing", + "Bre aking", + "ĉ when", + "ĉw hen", + "_ pw", + "_p w", + "I NDER", + "IN DER", + "IND ER", + "ĠWell ness", + "Ġv oxel", + "Ġvox el", + "ĠM ell", + "ĠMe ll", + "ĠMel l", + "Ġ MEDIA", + "ĠM EDIA", + "ĠMED IA", + "S ENS", + "SE NS", + "SEN S", + "ĠF unds", + "ĠFund s", + "ĠFun ds", + "ĠFu nds", + "ĠM ild", + "ĠMil d", + "ĠMi ld", + "< Array", + "Ċ", + "') ;?>Ċ", + "'); ?>Ċ", + "');?> Ċ", + "Ġtemp ting", + "Ġtempt ing", + "Ġtest ament", + "Ġb ible", + "Ġbi ble", + "Ġbib le", + "Ġconsult ed", + "Ġconsul ted", + "ĠIndex Error", + "è¨ ĺ", + "Ġkey pad", + "Ġke ypad", + "i zzo", + "iz zo", + "izz o", + "( ok", + "(o k", + "Ġwh atsapp", + "Ġwhats app", + "ĠRemote Exception", + "Ġte amed", + "Ġteam ed", + "Ġtea med", + "âĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶ âĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶ", + "» ,", + "Ġ getTime", + "Ġget Time", + "d iag", + "di ag", + "dia g", + "is sy", + "iss y", + "Ġ hed", + "Ġh ed", + "Ġhe d", + "Ġkn ots", + "Ġknot s", + "j om", + "jo m", + "Ġf unnel", + "Ġfun nel", + "-m ails", + "-mail s", + "Ġexp orting", + "Ġexport ing", + "Ġ VL", + "ĠV L", + "ĠK arn", + "ĠKar n", + "ĠKa rn", + "ĠBuddh ism", + "ĠAl lan", + "ĠAll an", + "ĠAlla n", + "_R ADIUS", + "Ġw ording", + "Ġword ing", + "Ġwor ding", + "Ġ Forget", + "ĠF orget", + "ĠFor get", + "ĠForge t", + "ĠForg et", + "ĠCor ona", + "ĠCoron a", + "i phy", + "ip hy", + "iph y", + "Ġlim burg", + "Ġlimb urg", + "ug gy", + "ugg y", + "ĠUser Repository", + "i min", + "im in", + "imi n", + "( ele", + "(e le", + "(el e", + "Ġlabel led", + "Ġlab elled", + "ç¤ ¾", + "ĠH erman", + "ĠHer man", + "ĠHerm an", + ". qq", + ".q q", + "Ġ \"));Ċ", + "Ġ\" ));Ċ", + "Ġ\") );Ċ", + "Ġ\")) ;Ċ", + "ie ber", + ". Translate", + ".Trans late", + "r yn", + "ry n", + "Ġdes env", + "Ġdese nv", + "u md", + "um d", + "Sim ply", + "ĉ mode", + "ĉm ode", + "ĉmod e", + "R pc", + "Rp c", + "ĠVal encia", + "ĠVale ncia", + "Ġstaff ers", + "Ġstaffer s", + "Ġse lv", + "Ġsel v", + "ĠS pike", + "ĠSp ike", + "ĠSpi ke", + "Ġd elic", + "Ġde lic", + "Ġdel ic", + "Ġ eru", + "Ġe ru", + "Ġer u", + "_ DT", + "_D T", + "J udge", + "Jud ge", + "Ju dge", + "á» ķ", + "ĠB asin", + "ĠBa sin", + "ĠBas in", + ". mutable", + ".m utable", + ".mu table", + "\" url", + "Ġtar iff", + "Ġtarif f", + "ĠSlee ve", + "ĠSle eve", + "Ġ flare", + "Ġfl are", + "Ġfla re", + ". dropout", + ".drop out", + "Ġb rides", + "Ġbr ides", + "Ġbri des", + "Ġbride s", + "Ġbrid es", + ") ),čĊ", + ")) ,čĊ", + ")), čĊ", + "_ constraints", + "_con straints", + "_constraint s", + "d estruct", + "de struct", + "Out line", + "Ġdisappe ars", + "Ġdisappear s", + "_ locked", + "_l ocked", + "_lock ed", + "_loc ked", + "ĠNS LocalizedString", + "c ke", + "ck e", + "ĉ null", + "ĉn ull", + "ad resse", + "adr esse", + "adress e", + "Ġt opping", + "Ġto pping", + "Ġtop ping", + "Ġtopp ing", + "ĠJ oker", + "ĠJo ker", + "b ishop", + "bi shop", + "bis hop", + "bish op", + "н оÑģÑĤÑĮ", + "но ÑģÑĤÑĮ", + "ноÑģÑĤ ÑĮ", + "ноÑģ ÑĤÑĮ", + "and ering", + "ander ing", + "ande ring", + "_ amp", + "_a mp", + "_am p", + "= time", + "=t ime", + "_ Space", + "_S pace", + "_P ULL", + "' =", + "Ġant iqu", + "Ġanti qu", + "Ġc ach", + "Ġca ch", + "Ġcac h", + "_ __ĊĊ", + "__ _ĊĊ", + "___ ĊĊ", + "O NES", + "ON ES", + "ONE S", + "о Ñı", + "Ġ unread", + "Ġun read", + "Ġunre ad", + "Ġunr ead", + ". policy", + ".p olicy", + ".pol icy", + "oooo oooo", + "ëŁ ¬", + "Ġ usted", + "Ġu sted", + "Ġus ted", + "Ġust ed", + "ĠR ece", + "ĠRe ce", + "ĠRec e", + "Ġal lem", + "Ġall em", + "Ġalle m", + "ãĥ¼ ãĤ¹", + "ãĥ¼ãĤ ¹", + "ĠThough ts", + "ĠThought s", + "ve illance", + "i strate", + "ist rate", + "istr ate", + "istra te", + "istrat e", + "_ lane", + "_l ane", + "_la ne", + "Ġf amed", + "Ġfam ed", + "Ġfa med", + "Ġfame d", + ". GetName", + ".Get Name", + "Ġsmooth er", + "Ġsmo other", + "Ġ Qualified", + "ĠQual ified", + "a zers", + "az ers", + "aze rs", + "azer s", + "_ geo", + "_g eo", + "_ge o", + "F ax", + "Fa x", + "ĠM inds", + "ĠMin ds", + "ĠMi nds", + "ĠMind s", + "Ġ Raises", + "ĠR aises", + "ĠRa ises", + "ĠRaise s", + "ĠRai ses", + "Ġtrans cripts", + "Ġtran scripts", + "Ġtranscript s", + "Con versation", + "Ġre marked", + "Ġrem arked", + "Ġremark ed", + "Ġremar ked", + "ëĤ ĺ", + "d ling", + "dl ing", + "Ġdeploy ing", + "Ġshared Application", + "Ġ kp", + "Ġk p", + "FontAwesome Icon", + "_ dummy", + "_d ummy", + "re iben", + "reib en", + "rei ben", + "ĠJane iro", + "Dir ections", + "Direction s", + "Direct ions", + "Di rections", + "Dire ctions", + ".get Bean", + ".getB ean", + "s ass", + "sa ss", + "Ġcomm anders", + "Ġcommand ers", + "Ġcommander s", + "Ġcommande rs", + "v ation", + "va tion", + "vat ion", + "error Code", + "ĠAl loy", + "ĠAll oy", + ". localized", + ".local ized", + "Ð ij", + "Ġdish washer", + "Ġ Soup", + "ĠS oup", + "ĠSo up", + "ĠSou p", + "N u", + "_ Default", + "_D efault", + "_De fault", + "_Def ault", + "Ġun even", + "Ġune ven", + "Ġ />\";Ċ", + "Ġ/ >\";Ċ", + "Ġ/> \";Ċ", + "- Based", + "-B ased", + "Ġseam lessly", + "Ġseamless ly", + "- null", + "-n ull", + "Ġ XC", + "ĠX C", + "Ġst ew", + "Ġste w", + "( delay", + "(d elay", + "(de lay", + "(del ay", + "AT ORS", + "ATOR S", + "ATO RS", + "ĠWhe eler", + "ĠWheel er", + "\" H", + "e ast", + "ea st", + ". air", + ".a ir", + ".ai r", + "âĢľ But", + "Object Context", + "success fully", + "successful ly", + "_ land", + "_l and", + "_la nd", + "Ġf olds", + "Ġfol ds", + "Ġfold s", + "Ġfo lds", + "_ COORD", + "_CO ORD", + "Ġsub po", + ".get Address", + ".g etAddress", + "in str", + "ins tr", + "inst r", + "Material s", + "Ñĥ ÑģÑĤ", + "ÑĥÑģ ÑĤ", + "de posit", + "dep osit", + "- last", + "-l ast", + "-la st", + "_ GRAY", + "_G RAY", + "_GR AY", + "_GRA Y", + "= find", + "=f ind", + "Ġmut ant", + "Ġmu tant", + "Ġlesb ienne", + "Ġlesbi enne", + "let cher", + "R OUGH", + "RO UGH", + "ur eka", + "ure ka", + ". capture", + ".c apture", + ".cap ture", + "Ġ enn", + "Ġe nn", + "Ġen n", + "Ġ ([[", + "Ġ( [[", + "Ġ([ [", + "ĠF lu", + "ĠFl u", + "Ġ taskId", + "Ġtask Id", + "ĠHus sein", + "ĠHuss ein", + ". folder", + ".f older", + ".fold er", + "Ġa usterity", + "IST RATION", + "ISTR ATION", + "_ Impl", + "_I mpl", + "注 æĦı", + "Ġdec ree", + "Ġdecre e", + "- chat", + "-c hat", + "-ch at", + "Ġim plication", + "Ġimp lication", + "Ġimpl ication", + "Ġimplic ation", + "Ġgu esses", + "Ġguess es", + "ul kan", + "ulk an", + "An alytics", + "Analy tics", + ". plus", + ".p lus", + ".pl us", + "COM MAND", + "COMM AND", + "е ли", + "ел и", + "» ĊĊ", + "»Ċ Ċ", + "_ SITE", + "_S ITE", + "_SI TE", + "Ġ equalTo", + "Ġequal To", + "Support FragmentManager", + "Ġ Recording", + "ĠRec ording", + "ĠRecord ing", + "å®Į æĪIJ", + "Ġbag gage", + "Ġpitch ers", + "Ġpit chers", + "Ġpitcher s", + "ĠE h", + "o que", + "oq ue", + "ĉ cnt", + "ĉc nt", + "Ġ =>$", + "Ġ= >$", + "Ġ=> $", + "/ foo", + "/f oo", + "I RA", + "IR A", + "ĠSat ellite", + "bo rah", + "bor ah", + "Ġ }}\"Ċ", + "Ġ} }\"Ċ", + "Ġ}} \"Ċ", + "Ġ}}\" Ċ", + "ĠE nds", + "ĠEn ds", + "ĠEnd s", + "ĠS pray", + "ĠSp ray", + "ĠSpr ay", + ", param", + ",p aram", + ". Chrome", + ".Ch rome", + "* q", + "th ought", + "though t", + "ib rated", + "ibr ated", + "ibrate d", + "Ġth ieves", + "Ġbenefici aries", + "En tered", + "Ent ered", + "Enter ed", + "ottes ville", + "otte sville", + "Ġveter in", + "Ġvet erin", + "By ID", + "qu ipe", + "quip e", + "qui pe", + "um ption", + "ump tion", + "umpt ion", + "- unit", + "-un it", + "-u nit", + "Execution Context", + "@ s", + "ĠG iov", + "ĠGi ov", + "ĠGio v", + ". ToolTip", + ".Tool Tip", + "_ friend", + "_f riend", + "( attributes", + "(at tributes", + "(attribute s", + "Ġd umping", + "Ġdump ing", + "Ġdum ping", + "Ġ JC", + "ĠJ C", + "_ DOCUMENT", + "_D OCUMENT", + "_DOC UMENT", + "ĠAr mour", + "ĠArm our", + "( insert", + "(in sert", + "(ins ert", + ". HorizontalAlignment", + ".Horizontal Alignment", + "Ġ Qed", + "ĠQ ed", + "ãģĦ ãģ¾ãģĻ", + "/ git", + "/g it", + "Ġ YYYY", + "ĠY YYY", + "ĠYY YY", + "ĠCar diff", + "ĠCard iff", + "Ġ apa", + "Ġa pa", + "Ġap a", + "org anic", + "organ ic", + "ĠWhere as", + "ĠWhe reas", + "Ġ æĿ", + "Ġæ Ŀ", + "ĠM ia", + "ĠMi a", + "Ġdemol ition", + "Ġs cars", + "Ġsc ars", + "Ġsca rs", + "Ġscar s", + "Ġ pai", + "Ġp ai", + "Ġpa i", + "Ġre tries", + "Ġret ries", + "Ġretrie s", + "Ġretr ies", + "Ġ rq", + "Ġr q", + "ĠD enis", + "ĠDe nis", + "ĠDen is", + "( Utils", + "(Util s", + "Ġallev iate", + "Ġ PIC", + "ĠP IC", + "ĠPI C", + "i due", + "id ue", + "Ġacknowled ging", + "Ġ// ////////////////////////////////", + "Ġ////////////////// ////////////////", + "ç¡® å®ļ", + "Ä «", + "\\ Json", + ". binary", + ".b inary", + ".bin ary", + "Ġx type", + "Ġxt ype", + "sign als", + "signal s", + "Ġ Appearance", + "ĠAp pearance", + "& r", + "} s", + "C i", + "ĠI llum", + "ĠIl lum", + "ĠIll um", + "p orate", + "por ate", + "po rate", + "pora te", + "h og", + "ho g", + "Ġ indexOf", + "Ġindex Of", + "\\ Command", + "_ parallel", + "_par allel", + "ĠSher lock", + "í ĥ", + "Ġ\" \")čĊ", + "Ġ\"\" )čĊ", + "Ġ\"\") čĊ", + "//////////////// ////////////////////////////////////////////////////////////////////////////////", + "//////////////////////////////// ////////////////////////////////////////////////////////////////", + "//////////////////////////////////////////////////////////////// ////////////////////////////////", + "//////////////////////////////////////////////// ////////////////////////////////////////////////", + "//////////////////////////////////////////////////////////////////////////////// ////////////////", + "Ġcritic ize", + "Ġ Soap", + "ĠSo ap", + "Ġ Matcher", + "ĠM atcher", + "ĠMat cher", + "ĠMatch er", + "Ġgr illed", + "Ġgrill ed", + "Ġgrille d", + "* T", + "Ġad ore", + "Ġado re", + "ul ling", + "ull ing", + "Ġje doch", + "Ġjed och", + "_ refs", + "_re fs", + "_r efs", + "_ref s", + "lean up", + "ĠJ AXB", + "ĠJA XB", + "Ġr oses", + "Ġro ses", + "Ġrose s", + "Ġros es", + "ĠL iam", + "ĠLi am", + "ĠLia m", + "size i", + "siz ei", + "Ġget char", + "Ġgetch ar", + "Ġt arde", + "Ġtar de", + "Ġtard e", + "- tooltip", + "-to oltip", + "-tool tip", + "Ġqual ifier", + "Ġ Intermediate", + "ĠInter mediate", + "_ Window", + "_W indow", + "ĠM alta", + "ĠMal ta", + "Dis connect", + "e where", + "ew here", + "C ampo", + "Cam po", + "Camp o", + "Ġirr ational", + "l edo", + "le do", + "led o", + "Ġ DN", + "ĠD N", + "AR GV", + "ARG V", + "Ġout ro", + "Ġou tro", + "Ġoutr o", + "Ġth irteen", + "Jose ph", + "Jos eph", + "M AR", + "MA R", + "/ gl", + "/g l", + "J ess", + "Je ss", + "ĠPsych iat", + "Ġpadding Bottom", + "- loop", + "-l oop", + "-lo op", + "/ fonts", + "/font s", + "_ seen", + "_s een", + "_se en", + "Te ams", + "Team s", + "React DOM", + "( man", + "(m an", + "( xpath", + "(x path", + ". getSimpleName", + ".get SimpleName", + "> (*", + ">( *", + "ĠP vt", + "ĠPv t", + "Ġel ders", + "Ġelder s", + "Ġelde rs", + "Ġ pies", + "Ġp ies", + "Ġpie s", + "Ġpi es", + ".user Agent", + "- region", + "-reg ion", + "ĠGre eks", + "ĠGreek s", + "ĠGree ks", + "( fragment", + "(f ragment", + "(fr agment", + "s tu", + "st u", + "Ġcouncil s", + "Ġst amina", + "Ġsta mina", + "ĠGod dess", + "è ¥¿", + "è¥ ¿", + "Ġphilosoph ers", + "Ġphilosopher s", + "Ġperson e", + "Ġpers one", + "Ġperso ne", + "ĠL ose", + "ĠLo se", + "ĠLos e", + "Ġ CLR", + "ĠC LR", + "ĠCL R", + "Ġ Docs", + "ĠD ocs", + "ĠDo cs", + "ĠDoc s", + "Ġso ak", + "Ġ HOLDER", + "ĠH OLDER", + "ĠHOLD ER", + "ĠHOL DER", + "Ġb ells", + "Ġbel ls", + "Ġbell s", + "hash Code", + "R ATE", + "RA TE", + "_WE IGHT", + "in ous", + "ino us", + "inou s", + "en dra", + "end ra", + "oph obic", + "Ġp rose", + "Ġpro se", + "Ġpr ose", + "Ġpros e", + "Ġf inely", + "Ġfin ely", + "Ġfine ly", + "/ oauth", + "/o auth", + "( space", + "(s pace", + "(sp ace", + "a dge", + "ad ge", + "ĠM ama", + "ĠMa ma", + "ĠMam a", + "Ġstring Buffer", + "Ġst int", + "Ġm isma", + "Ġmis ma", + "Ġmism a", + "Ġvill ains", + "Ġvillain s", + "Ġvilla ins", + "ĠCrime a", + "Ġdipl oma", + "Ġdiplom a", + "Ġпо Ñģл", + "ĠпоÑģ л", + "ĠB ea", + "ĠBe a", + "( join", + "(j oin", + "Ġ íķ´", + "Ġíķ ´", + "CH AT", + "CHA T", + "p ering", + "pe ring", + "per ing", + "peri ng", + "ĠC ros", + "ĠCr os", + "ĠCro s", + "Ġmon keys", + "Ġmonkey s", + "Ġp reds", + "Ġpr eds", + "Ġpre ds", + "Ġpred s", + "y la", + "yl a", + ", ,,", + ",, ,", + "Ġv ibrator", + "Ġvibr ator", + "Ġ NU", + "ĠN U", + "åħ Ī", + "f ant", + "fa nt", + "fan t", + "z et", + "ze t", + "Ġb ietet", + "un ft", + "s worth", + "sw orth", + ". Flow", + ".F low", + ".Fl ow", + "Ġpsych ed", + "Ġpsy ched", + "Ġpsyche d", + "ĠContin ental", + "ĠContinent al", + "> t", + "Ġqu ilt", + "Ġq uilt", + "Ġqui lt", + "Ġquil t", + ". UP", + ".U P", + "Ġexpans ive", + "Dis pose", + "Disp ose", + "( language", + "(l anguage", + "C aps", + "Cap s", + "Ca ps", + "_ ZONE", + "_Z ONE", + "Ġre cycle", + "Ġr ecycle", + "Ġrec ycle", + "Ġrecycl e", + "Ġ Managed", + "ĠMan aged", + "ĠManage d", + "ĠMana ged", + "current Color", + ". broadcast", + ".b roadcast", + "sign In", + ". prom", + ".p rom", + ".pro m", + ".pr om", + "l lu", + "ll u", + "ue blo", + "Ġpun ches", + "Ġpunch es", + "Ġaut omat", + "Ġauto mat", + "Ġautom at", + "Ġassign ing", + "Ġcreate User", + "ĠAl lied", + "ĠAll ied", + "Ġcon ductor", + "Ġconduct or", + "Ġcond uctor", + "Ġconduc tor", + "Ġcondu ctor", + "Ĥ ¨", + "Ġs addle", + "Ġsad dle", + "Ġsadd le", + "Ġ dni", + "Ġd ni", + "Ġdn i", + "o medical", + "omed ical", + "- West", + "-W est", + "Positive Button", + "Ġ italic", + "Ġit alic", + "? [", + "( trigger", + "(tr igger", + "Ġele phants", + "Ġelephant s", + "\":\" \",\"", + "\":\"\" ,\"", + "Ġcal iber", + "raft ed", + "raf ted", + "d igits", + "digit s", + "dig its", + "Ġ marshal", + "Ġm arshal", + "Ġmar shal", + "Ġmarsh al", + "Ġmars hal", + "m illiseconds", + "mill iseconds", + "m arkers", + "mark ers", + "mar kers", + "marker s", + "m om", + "mo m", + "/ place", + "/p lace", + "/pl ace", + "Ġhol istic", + ": t", + "# ,", + "Ġb oto", + "Ġbo to", + "Ġbot o", + "Ġnause a", + "Ġnau sea", + "ĠSh ooting", + "ĠShoot ing", + "ĠSho oting", + "i tech", + "it ech", + "ite ch", + "Ġtext Status", + "< Class", + " ())Ċ", + ">( ))Ċ", + ">() )Ċ", + ">()) Ċ", + "ADD RESS", + "ADDR ESS", + "B ST", + "BS T", + "et zt", + "etz t", + "ĠQ gs", + "S ense", + "Sen se", + "Exception Handler", + "ĠC hu", + "ĠCh u", + ".get OwnProperty", + "Ġexerc ised", + "Ġexercise d", + "i otic", + "io tic", + "iot ic", + "ĠRe leases", + "ĠRelease s", + "Ġp interest", + "o lie", + "ol ie", + "oli e", + "i soft", + "is oft", + "iso ft", + "Ġsequ encing", + "Ġpa dre", + "Ġpad re", + "Ġpadr e", + "] ));čĊ", + "]) );čĊ", + "])) ;čĊ", + "])); čĊ", + "( radius", + "(r adius", + "(rad ius", + ". med", + ".m ed", + ".me d", + "ain ties", + "aint ies", + ".Object Model", + "Ġ emple", + "Ġem ple", + "Ġemp le", + "Ġseg uro", + "Ġsegu ro", + "St ars", + "Star s", + "Ġqual itative", + "le mn", + "lem n", + "á» ±", + "> \").", + ">\" ).", + ">\") .", + "Ġ gx", + "Ġg x", + "- cert", + "-c ert", + "-ce rt", + "ĠA STM", + "ĠAS TM", + "ĠAST M", + "Ġ fullname", + "Ġfull name", + "Ġful lname", + "Ġte lemetry", + "Ġtele metry", + "ĠCamb odia", + "_ ul", + "_u l", + "ĠCl are", + "ĠClar e", + "ĠCla re", + "C USTOM", + "Q C", + "ĠU ns", + "ĠUn s", + "Ġ HTTPS", + "ĠHTTP S", + "ĠPar kinson", + "ĠPark inson", + "ancy box", + "', '.", + "',' .", + "T ue", + "Tu e", + ". getLast", + ".get Last", + "Ġ abi", + "Ġa bi", + "Ġab i", + "Äħ d", + "A st", + "As t", + "Ġ Editing", + "ĠEd iting", + "ĠEdit ing", + ". Unity", + ".Un ity", + ".Unit y", + "j mp", + "jm p", + "Ġm ats", + "Ġmat s", + "Ġma ts", + "Ġshared Preferences", + "Cap tain", + "Capt ain", + ". pageSize", + ".page Size", + "Ġ rtl", + "Ġr tl", + "Ġrt l", + "Ġan meld", + "Runtime Object", + "Ġdem ande", + "Ġdemand e", + "( \";", + "(\" ;", + "se ite", + "sei te", + "- headed", + "-head ed", + "-he aded", + "ĠK ra", + "ĠKr a", + "Ġ FONT", + "ĠF ONT", + "ĠFO NT", + "` \\", + "Class NotFoundException", + ". avg", + ".a vg", + ".av g", + "a tical", + "at ical", + "atic al", + "ati cal", + "atica l", + "A j", + "Ġpermit ting", + "Ġperm itting", + "P roj", + "Pro j", + "Pr oj", + "ERR Q", + "Ġcre ampie", + "Ġcream pie", + "ĠBuy er", + "ĠBu yer", + "- modules", + "-mod ules", + "-module s", + "ĠSunday s", + "ĠSun days", + "ĠSund ays", + "| `Ċ", + "Ġday time", + "Ġ +(", + "Ġ+ (", + "Ġgl itch", + "Ġ Operand", + "ĠOper and", + "ĠOpera nd", + "Ġtox ins", + "Ġtoxin s", + "i nya", + "in ya", + "iny a", + "D NS", + "DN S", + "ĠS as", + "ĠSa s", + "C ake", + "Ca ke", + "ĠNational s", + "ĠNation als", + ". addTo", + ".add To", + "Ġs inking", + "Ġsin king", + "Ġsink ing", + "Ġcompreh ension", + "Ġs cor", + "Ġsc or", + "Ġsco r", + "a gements", + "ag ements", + "age ments", + "agement s", + "agem ents", + "Ġt ard", + "Ġta rd", + "Ġtar d", + "Ġm arching", + "Ġmar ching", + "Ġmarch ing", + "ĠM TV", + "ĠMT V", + "Ġs ane", + "Ġsa ne", + "Ġsan e", + "Create Info", + "Ạ¯", + "Ġend Index", + "ĉ layout", + "ĉl ayout", + "Ġ åIJį", + "ĠåIJ į", + "S ITE", + "SI TE", + "ĠT HERE", + "ĠTHE RE", + "ĠTH ERE", + "Ġ[ {'", + "Ġ[{ '", + "opath ic", + "opa thic", + "Ġtrans mitter", + "Ġtransmit ter", + "/ body", + "/b ody", + "Ġp und", + "Ġpun d", + "Ġpu nd", + "Ġ Closing", + "ĠC losing", + "ĠCl osing", + "ĠClo sing", + "Ġ setattr", + "Ġset attr", + "Ġ bounded", + "Ġb ounded", + "Ġbo unded", + "Ġbound ed", + "At las", + "Atl as", + "s uming", + "sum ing", + "su ming", + "( times", + "(t imes", + "(time s", + "(ti mes", + "p arer", + "par er", + "pare r", + "pa rer", + "y nom", + "yn om", + "fe it", + "Ġf rem", + "Ġfr em", + "Ġfre m", + "- leg", + "-l eg", + "-le g", + "ĠB ras", + "ĠBr as", + "ĠBra s", + "> #", + "Ġì¶ ľëł¥", + "Ġì¶ľ ëł¥", + "Ġ INSTANCE", + "ĠIN STANCE", + "ĠINST ANCE", + "ĠC ouch", + "ĠCo uch", + "ĠCou ch", + "_ hosts", + "_host s", + "lik elihood", + ". Marker", + ".M arker", + ".Mark er", + ".Mar ker", + "ĠM asks", + "ĠMas ks", + "ĠMask s", + "Ġc ereal", + "Ġce real", + "Ġcere al", + "ut ilities", + "util ities", + "Ġelement al", + "Ġele mental", + "Ġelem ental", + "Ġdist orted", + "Ġdistort ed", + "in active", + "c ry", + "cr y", + "W L", + "UPPORT ED", + ". Throws", + ".Th rows", + ".Throw s", + "/ schema", + "/s chema", + "s erie", + "se rie", + "ser ie", + ". \"',", + ".\" ',", + ".\"' ,", + "ĠBened ict", + "ĠBene dict", + "- picker", + "-p icker", + "-pic ker", + "ig gs", + "igg s", + "ĠP irate", + "ĠPi rate", + "ĠPir ate", + "åij¨ æľŁ", + "ĠThe ma", + "ĠTh ema", + "ĠThem a", + "ĠSouth ampton", + "Ġarray With", + "ĠPaul a", + "ĠPa ula", + "Ġpred ictor", + "Ġpredict or", + "Ġpredic tor", + "- Ass", + "-A ss", + ". userid", + ".user id", + ".use rid", + "Ġ peri", + "Ġp eri", + "Ġper i", + "Ġpe ri", + "Ġexagger ated", + "u rate", + "ur ate", + "ura te", + "urat e", + "arse ille", + "ĠCon cent", + "ĠConc ent", + "ĠConce nt", + "ĠP ik", + "ĠPi k", + "Ġ@ _;ĊĊ", + "Ġ@_;Ċ Ċ", + "Ġ@_ ;ĊĊ", + "Ġform ations", + "Ġformat ions", + "Ġformation s", + "Ġden omin", + "Ġdenom in", + "\" />.Ċ", + "\"/ >.Ċ", + "\"/> .Ċ", + "end edor", + "ended or", + "Ġpan cre", + "Ġpanc re", + "Ġ amt", + "Ġa mt", + "Ġam t", + "Ġon Resume", + "on Delete", + "ĠB CH", + "ĠBC H", + ") (\"", + ")( \"", + "m ovement", + "move ment", + "mo vement", + "mov ement", + "Ġpot assium", + "", + "Ġ-- ->", + "Ġ--- >", + "ĠP PC", + "ĠPP C", + "i sz", + "is z", + "ake FromNib", + "Ġ Disp", + "ĠD isp", + "ĠDis p", + "ĠDi sp", + "ĠAth letics", + "ĠAthletic s", + "Ġnight club", + "G OOD", + "GO OD", + ".set Geometry", + "+ [", + "/ send", + "/s end", + "/se nd", + "Ġbin aries", + "Ġr áp", + "Ġrá p", + ": req", + ":r eq", + "-con suming", + "-cons uming", + "er time", + "ert ime", + "erti me", + "UP DATED", + "UPDATE D", + "_ nullable", + "_null able", + "V IN", + "VI N", + "u lia", + "ul ia", + "uli a", + "c yan", + "cy an", + "Ġmisunder standing", + "Ġmisunderstand ing", + "o rical", + "or ical", + "ori cal", + "oric al", + "deg rees", + "degree s", + "Le ading", + "Lead ing", + ". AR", + ".A R", + "ic kest", + "ick est", + "N uevo", + "uf oria", + "Ġgo odies", + "Ġgood ies", + "Ġf ores", + "Ġfor es", + "Ġfore s", + "Ġfo res", + "() <<\"", + "()<< \"", + "()< <\"", + "ad emic", + "ade mic", + "adem ic", + "Action Creators", + "server name", + "( nt", + "(n t", + "db Context", + "Ġair borne", + "Ġexhib itions", + "Ġexhibition s", + "Ġexhibit ions", + "c ele", + "ce le", + "cel e", + "Ġt ela", + "Ġte la", + "Ġtel a", + "< Movie", + "", + "() \">", + "()\" >", + ".set PreferredSize", + "ĠM ID", + "ĠMI D", + "ĠA less", + "ĠAl ess", + "ĠAle ss", + "Ġhorse power", + "Ġa tm", + "Ġat m", + "ĠPack aging", + "Ġc iphertext", + "Ġcipher text", + "Request Method", + "Ġbe iden", + "Ġbei den", + "Ġbeide n", + "è £", + "ĠP OW", + "ĠPO W", + ".Write Header", + "d irector", + "dir ector", + "direct or", + "dire ctor", + "- but", + "-b ut", + "ãģł ãģķãģĦ", + "in cer", + "ince r", + "inc er", + "_ dn", + "_d n", + "! !!!!", + "!! !!!", + "!!! !!", + "!!!! !", + "Ġmanufact ures", + "Ġmanufacture s", + ". TextUtils", + ".Text Utils", + "Ġcon sciously", + "Ġconsc iously", + "Ġconscious ly", + "Ġb ounced", + "Ġbounce d", + "c ulture", + "cul ture", + "cult ure", + "ĠS par", + "ĠSp ar", + "ĠSpa r", + "ĠP iper", + "ĠPi per", + "ĠPipe r", + "ĠPip er", + ". press", + ".p ress", + ".pre ss", + ".pr ess", + ".pres s", + "- owner", + "-o wner", + "Ġe valuator", + "Ġeval uator", + "Ġevalu ator", + "Ġ STREAM", + "ĠST REAM", + ".PictureBox SizeMode", + "Ġsu gars", + "Ġsugar s", + "Ġsug ars", + "Screen Width", + "Ġnext State", + "Ġiv ory", + "Ġbr unch", + "Ġbrun ch", + "d ensity", + "dens ity", + "_ OW", + "_O W", + "ĠCoron avirus", + "ĠC FR", + "ĠCF R", + "b ak", + "ba k", + "\\ Category", + "\\C ategory", + "æķ° ç»Ħ", + "Ġinvoke virtual", + "} ()Ċ", + "}( )Ċ", + "Ġs ujet", + "Ġsu jet", + "- marker", + "-m arker", + "-mark er", + "-mar ker", + "is digit", + "isd igit", + "ĠM obil", + "ĠMo bil", + "ĠMob il", + "ĠJsonRequest Behavior", + "_ REMOTE", + "_RE MOTE", + ".exists Sync", + "Ġrich es", + "Ġri ches", + "Ġric hes", + ".p resenter", + ".present er", + ".pres enter", + "Ġgl Color", + "Ġh anya", + "Ġha nya", + "Ġhan ya", + "Ġfort ress", + "Ġfl ashed", + "Ġflash ed", + "Ġfla shed", + "v iz", + "vi z", + "requ ently", + "requent ly", + "b uat", + "bu at", + "$ con", + "$c on", + "> |", + ". Func", + ".F unc", + "Ġhum orous", + "Ġhumor ous", + "u em", + "ue m", + ". ZERO", + ".Z ERO", + "ĠS TL", + "ĠST L", + "ĠB uk", + "ĠBu k", + "/ sample", + "/s ample", + "ĠG ros", + "ĠGr os", + "ĠGro s", + "Rec ipes", + "Recipe s", + "Ġinf lated", + "Ġinfl ated", + "Ġinflate d", + "Ġsw ung", + ": F", + "F acing", + "Fac ing", + "Fa cing", + ". Theme", + ".Th eme", + ".The me", + "н ик", + "ни к", + "Ġspl endid", + "Ġrequest Id", + ".Center Screen", + "/ autoload", + "/auto load", + "embed ded", + "_ depart", + "_de part", + "_dep art", + "Ġ Ports", + "ĠP orts", + "ĠPort s", + "ĠPo rts", + "ĠPor ts", + "๠ĥ", + "ай д", + "disc ussion", + "_ consum", + "_con sum", + "_cons um", + "Ġsc outs", + "Ġsco uts", + "Ġscout s", + "Ġcol abor", + "Ġcola bor", + ". Stage", + ".St age", + ". nano", + ".n ano", + ".nan o", + "el dorf", + "eld orf", + "eldo rf", + "Ġgem acht", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ċ", + "Ġpolicy makers", + "Ġpolicym akers", + "_P KT", + "_PK T", + ", Th", + ",T h", + "o ky", + "ok y", + "_ UID", + "_U ID", + "_UI D", + "P ing", + "Pin g", + "Pi ng", + "Ġor chest", + "Ġorch est", + "Ġorc hest", + "Ġop tics", + "Ġopt ics", + "Ġoptic s", + "u han", + "uh an", + "ĠX OR", + "ĠXO R", + "Ġespañ ol", + "ĠAd idas", + "r ng", + "rn g", + "m ans", + "man s", + "ma ns", + ".v stack", + "Ġget away", + "Ġh ierarchical", + "Ġhier archical", + "ano ia", + "anoi a", + "ĠBitmap Factory", + "re alm", + "rea lm", + "real m", + "ĉ ap", + "ĉa p", + "_ apps", + "_a pps", + "_app s", + "_ap ps", + "- divider", + "-div ider", + "-di vider", + ". drawer", + ".d rawer", + ".draw er", + "ĠH ARD", + "ĠHA RD", + "ĠHAR D", + "'] ;?>Ċ", + "']; ?>Ċ", + "'];?> Ċ", + "- packed", + "-p acked", + "-pack ed", + "æ² »", + "_STRUCT URE", + "[ Y", + "i Param", + "( eq", + "(e q", + "Ġencompass es", + "Ġ\\ ĊĊ", + "Ġ\\Ċ Ċ", + "- >[", + "-> [", + "& utm", + "g roupon", + "gr oupon", + "group on", + "gro upon", + "st rate", + "str ate", + "stra te", + "D Y", + "om orphic", + "' :[", + "': [", + "Ġgrav itational", + "ĠM icha", + "ĠMich a", + "ĠMi cha", + "ĠMic ha", + "ĠT encent", + "ĠTen cent", + "Ġco ached", + "Ġcoach ed", + "ì¶ ľ", + "Ñĥ менÑĤ", + "Ñĥм енÑĤ", + "/ mobile", + "/m obile", + "Mouse Down", + "b ud", + "bu d", + "ĠY as", + "ĠYa s", + "Ġ Providers", + "ĠPro viders", + "ĠProvid ers", + "ĠProvider s", + "ĠProvide rs", + "ĠProv iders", + "N Z", + "ĉ report", + "ĉre port", + "ĉrep ort", + "err msg", + "Ġimage Path", + "act erial", + "acter ial", + "acteria l", + "ĠM anga", + "ĠMan ga", + "ĠMa nga", + "ĠMang a", + "wick lung", + "( usuario", + "(us uario", + "\" ));čĊčĊ", + "\") );čĊčĊ", + "\")) ;čĊčĊ", + "\"));čĊ čĊ", + "\")); čĊčĊ", + "/ ***", + "/* **", + "/** *", + "Ġorgan ise", + "Ġorganis e", + "Index ed", + "_ QUAL", + "_Q UAL", + "_QU AL", + "( PyObject", + "(Py Object", + "Ġsurrender ed", + "PO CH", + "ĠN OTES", + "ĠNOT ES", + "ĠNO TES", + "ĠNOTE S", + "\\ \\\"", + "\\\\ \"", + "- job", + "-j ob", + "Ġseven ty", + "Ġsevent y", + "Ġsev enty", + "# ###Ċ", + "## ##Ċ", + "#### Ċ", + "### #Ċ", + "ĠMan or", + "ĠMa nor", + "Ġdown right", + "Ġtime frame", + "ins urance", + "che cker", + "check er", + "Ġ SECRET", + "ĠSE CRET", + "ĠSEC RET", + "Ġecho es", + "Ġech oes", + "ĠCar men", + "ĠCarm en", + ".set HorizontalAlignment", + ".setHorizontal Alignment", + "Ġ isChecked", + "Ġis Checked", + "Ġ TOR", + "ĠT OR", + "ĠTO R", + "_ nn", + "_n n", + "( '(", + "(' (", + "Fetch Request", + "ĠPrint ed", + "Fl uid", + "Ġ STACK", + "ĠST ACK", + "ĠSTA CK", + "G ES", + "GE S", + "a igned", + "aign ed", + "i gor", + "ig or", + "igo r", + ". Unknown", + ".Un known", + "C BC", + "CB C", + "ĠCarl son", + ". URI", + ".U RI", + ".UR I", + "Ġp light", + "Ġpl ight", + "/ start", + "/st art", + "/star t", + "ĠPerson nel", + "Ġ PREFIX", + "ĠP REFIX", + "ĠPRE FIX", + "ĠPREF IX", + ", **", + ",* *", + "Ġli mite", + "Ġlimit e", + "Ġlim ite", + "_ heat", + "_h eat", + "_he at", + "% ï¼Į", + "ĠD onne", + "ĠDon ne", + "get Node", + "ĠScient ology", + "Ġc omet", + "Ġcom et", + "Ġco met", + "Ġcome t", + "Ġwen ig", + "A side", + "As ide", + "ĠM PEG", + "ĠMP EG", + "' ?", + "vari ably", + ". endDate", + ".end Date", + "Ġun cont", + "Ġunc ont", + "Ġuncon t", + "Ġ Scores", + "ĠS cores", + "ĠSc ores", + "ĠScore s", + "ĠSco res", + "ĠScor es", + "Ġ LoginForm", + "ĠLogin Form", + ". generated", + ".g enerated", + ".generate d", + ".gener ated", + ", ch", + ",c h", + "- mar", + "-m ar", + "ĠN ed", + "ĠNe d", + "Ġ eventId", + "Ġevent Id", + "+ p", + "ĠS IN", + "ĠSI N", + "/ reset", + "/re set", + "/res et", + ".RE ACT", + "ĠMe ssi", + "ĠMess i", + "ĠMes si", + "_R ANK", + "_RA NK", + ".write File", + "Ġc ripp", + "Ġcr ipp", + "Ġcri pp", + "es thetic", + "est hetic", + "ERS IST", + "Ġreim bursement", + "Ġreimburse ment", + "Current Value", + "Ġu nin", + "Ġun in", + "Ġuni n", + "Down Latch", + "Ġpadding Right", + "Ġst ocked", + "Ġstock ed", + "/ '.", + "/' .", + "Ġre payment", + "Ġrep ayment", + "Ġrepay ment", + "t rak", + "tr ak", + "tra k", + "/ backend", + "/back end", + "Ġиз мен", + "C SR", + "CS R", + "Ġprevent ive", + "Ġpant alla", + "_ trim", + "_t rim", + "_tr im", + "_tri m", + "P edido", + "Ped ido", + "h ospital", + "Ġmanage able", + "route Params", + "text ures", + "texture s", + "tex tures", + ". .....ĊĊ", + ".. ....ĊĊ", + "... ...ĊĊ", + ".... ..ĊĊ", + "..... .ĊĊ", + "...... ĊĊ", + "Ġsé lection", + "Name ValuePair", + "Ġpol lut", + "Ġpoll ut", + "M odes", + "Mode s", + "Mod es", + "Mo des", + "ĠL aud", + "ĠLa ud", + "ĠLau d", + "j ay", + "ja y", + "ĠU rs", + "ĠUr s", + "Ġs igner", + "Ġsign er", + "Ġsig ner", + "Ġ JJ", + "ĠJ J", + "ĠCh erokee", + "_EX ISTS", + "_EXIST S", + "Ġd war", + "Ġdw ar", + "Ġ ($('#", + "Ġ( $('#", + "Ġ($ ('#", + "Ġ($( '#", + "Ġre ef", + "> {$", + ">{ $", + "ĠB aylor", + "ĠBay lor", + "Ġ ModelState", + "ĠModel State", + "- _", + "ĠStruct ures", + "ĠStructure s", + "Ġsou vent", + "Spec ify", + "( pipe", + "(p ipe", + "(pi pe", + "Ġfr acking", + "Ġfrac king", + "ĠG PA", + "ĠGP A", + "Ġb ele", + "Ġbe le", + "Ġbel e", + "ĉ ĉĉĉĉĉĉĠĠĠ", + "ĉĉ ĉĉĉĉĉĠĠĠ", + "ĉĉĉĉ ĉĉĉĠĠĠ", + "ĉĉĉ ĉĉĉĉĠĠĠ", + "ĉĉĉĉĉ ĉĉĠĠĠ", + "ĉĉĉĉĉĉ ĉĠĠĠ", + "ĉĉĉĉĉĉĉ ĠĠĠ", + "ĉĉĉĉĉĉĉĠ ĠĠ", + "ĉĉĉĉĉĉĉĠĠ Ġ", + "ĠMinor ity", + "Ġt ud", + "Ġtu d", + "Ġopen ness", + "ĠIllustr ated", + "Ġoxid ation", + "Ġ NK", + "ĠN K", + "ĉ Update", + "Ġ EMS", + "ĠE MS", + "ĠEM S", + "ĠTe ddy", + "ĠTed dy", + "Ġgener als", + "Ġgen erals", + "Ġgeneral s", + "Ġgenera ls", + "ĉ Mat", + "ĉM at", + "Ġrad ios", + "Ġradio s", + "Ġradi os", + "ĠAnt ique", + "ĠAnti que", + "c onomy", + "con omy", + "conom y", + "cono my", + "ĠSquad ron", + ") ','", + ")', '", + ")' ,'", + "å£ °", + "Ġy oure", + "Ġyou re", + "Ġyour e", + "Ġyo ure", + "ĠMain Page", + "Ġbeh aviours", + "Ġbehaviour s", + "en ght", + "eng ht", + "(@\" %@\",", + "Ġtest case", + "Ġ Compilation", + "ĠComp ilation", + "Ġflav ours", + "Ġflavour s", + "Ġ Extend", + "ĠExt end", + "il lator", + "ill ator", + "illa tor", + "Ġ coh", + "Ġc oh", + "Ġco h", + "Ġs pline", + "Ġsp line", + "Ġspl ine", + "Ġ KG", + "ĠK G", + "- pay", + "-p ay", + "Ġcommun ism", + "ĠBusiness es", + "oc king", + "ock ing", + ". MaxLength", + ".Max Length", + "ass andra", + "qu iring", + "quir ing", + "qui ring", + "a dden", + "ad den", + "add en", + "ĠJ eb", + "ĠJe b", + "_ fault", + "_f ault", + "_fa ult", + "[ file", + "[f ile", + "Ġpromin ence", + "disc iplinary", + "âĢĶ they", + "âĢĶthe y", + "_ extent", + "_ex tent", + "_ext ent", + "Ġ VIC", + "ĠV IC", + "ĠVI C", + "Ġen tails", + "Ġent ails", + "Ġentail s", + ". partner", + ".p artner", + ".part ner", + "Ġhipp oc", + "Le ague", + "çĶ ·", + "w ipe", + "wi pe", + "- spinner", + "-sp inner", + "-spin ner", + "Ġsal ute", + "ĠS urgical", + "ĠSurg ical", + "( outputs", + "(out puts", + "(output s", + "work ed", + "wor ked", + "[ strlen", + "[str len", + "app ointed", + "appoint ed", + "ĠH eg", + "ĠHe g", + "ĠAC PI", + "( [^", + "([ ^", + "u ala", + "ual a", + "ua la", + "_ tol", + "_t ol", + "_to l", + "ĠR it", + "ĠRi t", + ". Payment", + ".P ayment", + ".Pay ment", + "k owski", + "Ġw almart", + "Ġwal mart", + "require ments", + "ĠFIN SEQ", + "_ BACKGROUND", + "_BACK GROUND", + "ĠOs borne", + "( errorMessage", + "(error Message", + "Report ing", + "Rep orting", + "Ġa uctions", + "Ġau ctions", + "Ġauction s", + "Ġcom bos", + "Ġcomb os", + "Ġcombo s", + "ĠNot iced", + "ĠNotice d", + "_ oct", + "_o ct", + "_oc t", + "Ġprim ero", + "Ġprime ro", + "Ġprimer o", + "t aire", + "ta ire", + "_ hr", + "_h r", + "Ġм од", + "Ġмо д", + "Ġcontrad ictory", + "Ġcontradict ory", + "= \"@", + "=\" @", + "ach ines", + "achine s", + "achi nes", + "(opt arg", + "ĠP enguin", + "ĠPeng uin", + "ĠAb bas", + "ĠAbb as", + "Ġsub lime", + "Ġpage able", + "ĠDef ensive", + "Ġdistinct ly", + "ĠAutom atically", + "ĠAutomatic ally", + "Under standing", + "Equality Comparer", + "g ota", + "go ta", + "got a", + "Ġ\" ::", + "Ġ\": :", + "Ġpul ver", + "ĠB attles", + "ĠBattle s", + "ĠBatt les", + "Ġun paralleled", + "T CHA", + "TC HA", + "Ġconstr ued", + "- aff", + "-a ff", + "Ġpre cursor", + "Ġprec ursor", + "-l fs", + "Ġmad uras", + "ĠD aisy", + "ĠDa isy", + "ĠDai sy", + "ĠAr beits", + "ĠArbeit s", + ". Management", + ".Man agement", + "ĉ In", + "ĉI n", + "Ġro bes", + "Ġrob es", + "Ġrobe s", + "Ġsp éc", + "âĢľ (", + "Ġm aternity", + "Ġmat ernity", + "ex tent", + "ext ent", + "Ġ Spacer", + "ĠSp acer", + "ĠSpace r", + "ĠSpa cer", + "Did Appear", + "ĉ us", + "ĉu s", + ".getRequest Dispatcher", + "( cols", + "(c ols", + "(co ls", + "(col s", + "Ġplum met", + "ì ħ", + "Ġ{ ĊĊĊĊ", + "Ġ{Ċ ĊĊĊ", + "Ġ{ĊĊ ĊĊ", + "Ġ{ĊĊĊ Ċ", + "é rica", + "ér ica", + "éri ca", + "éric a", + "Ġ Sizes", + "ĠS izes", + "ĠSize s", + "ĠSi zes", + "ĠSiz es", + ". enum", + ".e num", + ".en um", + ". Highlight", + ".High light", + "Ġ!! }ĊĊĊ", + "Ġ? >ĊĊĊ", + "Ġ?> ĊĊĊ", + "Ġ?>Ċ ĊĊ", + "Ġ?>ĊĊ Ċ", + "W enn", + "We nn", + "Ġcl imax", + "Ġclim ax", + "Ġcli max", + "Ġc rem", + "Ġcr em", + "Ġcre m", + "_ that", + "_t hat", + "_th at", + "[ âĢ¦", + "_ domains", + "_domain s", + "_dom ains", + "_RE PLY", + "Ġcomp leta", + "Ġcomple ta", + "Ġcomplet a", + "Ġcompl eta", + "V EST", + "VE ST", + "VES T", + "_ particle", + "_p article", + "_part icle", + "Ġs op", + "Ġso p", + "Ġfatal ities", + "impl ify", + "imp lify", + "ĠS KF", + "ĠSK F", + "Ġin fusion", + "Ġinf usion", + "ĠJ avier", + "ĠJa vier", + "Ġb allet", + "Ġball et", + "Ġbal let", + "Ġam igo", + "Ġami go", + ". want", + ".w ant", + "Ġcol lagen", + "Ġcoll agen", + "Ġcollage n", + "ĠLaw yer", + ". Statement", + ".St atement", + ".State ment", + ".Stat ement", + ". rt", + ".r t", + "b aar", + "ba ar", + "End Point", + "ĠB ek", + "ĠBe k", + "S HIP", + "SH IP", + "Ġpatri arch", + "ĠA unt", + "ĠAu nt", + "_ TM", + "_T M", + "Ġ mÃŃn", + "Ġm ÃŃn", + "ĠmÃŃ n", + "Ġm astered", + "Ġmaster ed", + "Ġma stered", + "Ġmas tered", + "Ġmast ered", + "W XYZ", + "WX YZ", + "Ġes pos", + "Ġesp os", + "= logging", + "=log ging", + "Ġrighteous ness", + "t orrent", + "tor rent", + "Ġ bst", + "Ġb st", + "Ġbs t", + "_ CHAIN", + "_CH AIN", + "Ġout skirts", + "( rotation", + "(r otation", + "(rot ation", + "Ġ' .')", + "Ġ'. ')", + "Ġ'.' )", + "igr ants", + "igrant s", + "+ lsi", + "+l si", + "ĠCC TV", + "ĠCCT V", + "_PH ASE", + ". azure", + ".a zure", + "_ Process", + "_P rocess", + "_Pro cess", + "v ae", + "va e", + "ĠT ropical", + "ĠAn kara", + "ĠAnk ara", + "image View", + "_RUN NING", + "Ġ* )__", + "Ġ*) __", + "ế n", + "( cli", + "(c li", + "(cl i", + "sc atter", + "Ġs che", + "Ġsc he", + "Ġsch e", + "Reg istrar", + "Registr ar", + "Ġa iring", + "Ġair ing", + "Ġai ring", + "Ġpy plot", + "is ión", + "isi ón", + "/ customer", + "/c ustomer", + "/custom er", + "Ġs implement", + "Ġsim plement", + "Ġsimple ment", + "Ġsimp lement", + "Ġsimpl ement", + "Ġclass y", + "Ġcl assy", + "Ġclas sy", + "ĠD WC", + "ĠDW C", + "ĠBas har", + "ĠBash ar", + "ĠDE VELO", + "ĠV ick", + "ĠVi ck", + "ĠVic k", + "a vail", + "av ail", + "ava il", + "ĠH ö", + "_ extend", + "_ext end", + "dr Fc", + ".is NotBlank", + "Ġpl ais", + "Ġpla is", + "| }Ċ", + "Ġporn ofil", + "Ġporno fil", + "l abs", + "la bs", + "lab s", + "Ġ haus", + "Ġh aus", + "Ġha us", + "Ġorig inating", + "Ġorigin ating", + "Ġsurround s", + "Ġ QUAL", + "ĠQ UAL", + "ĠQU AL", + "m eg", + "me g", + "/ logger", + "/log ger", + "/lo gger", + "[ obj", + "[o bj", + "Ġirres ponsible", + "Ġ PublicKey", + "ĠPublic Key", + "H ONE", + "HO NE", + ": '/", + ":' /", + "i box", + "ib ox", + "ibo x", + "ĠF Vector", + "| {Ċ", + "ata loader", + "atal oader", + "h awks", + "hawk s", + "H DR", + "HD R", + "Ġescal ation", + "ĠPods Dummy", + "e lite", + "el ite", + "eli te", + "Ġpre sup", + "Ġpres up", + "C ached", + "Cache d", + "Ca ched", + "> G", + ". optimizer", + ".opt imizer", + ".optim izer", + ".optimize r", + "Ġ Visible", + "ĠV isible", + "ĠVis ible", + "´ Ģ", + "Ġ nen", + "Ġn en", + "Ġne n", + "Ġ pcs", + "Ġp cs", + "Ġpc s", + "Ġ Idle", + "ĠI dle", + "ĠId le", + "[ Any", + "[A ny", + "Ġkey boards", + "Ġkeyboard s", + "ĠCOMP ONENT", + "Ġtit anium", + "Ġtitan ium", + "( mut", + "(m ut", + "(mu t", + "ĠLed ger", + "Ġprosper ous", + "etro fit", + "_ LL", + "_L L", + "_ patient", + "_p atient", + "_pat ient", + "Ġ pdata", + "Ġp data", + "Ġpd ata", + "Ġ kontakte", + "Ġkont akte", + "Ġkontakt e", + "S wipe", + "Sw ipe", + "Ġcheer ful", + "ĠHond uras", + "\" ][$", + "\"] [$", + "\"][ $", + "Ġhem orrh", + "\" :\"+", + "\": \"+", + "\":\" +", + "Ġ leasing", + "Ġle asing", + "Ġinst alls", + "Ġinstall s", + "Ġinstal ls", + "ĠP ax", + "ĠPa x", + "ĠLog istics", + "ĠLogistic s", + "Ġkin etic", + "ĠP hon", + "ĠPh on", + "_ movement", + "_m ovement", + "_move ment", + "_mov ement", + "_mo vement", + "ĉ bytes", + "ĉbyte s", + "Ġcin co", + "ĠMad ness", + "\" )+", + "\") +", + "Ġ JE", + "ĠJ E", + "_ ij", + "_i j", + "Scene Manager", + "ĠB ust", + "ĠBus t", + "ĠBu st", + "p test", + "pt est", + "pte st", + "a ea", + "ae a", + "Ġb esser", + "Ġbes ser", + "ÃŃ g", + "д ин", + "ди н", + "( tasks", + "(t asks", + "(task s", + "(\" (\"", + "(\"( \"", + "set Type", + "( outfile", + "(out file", + "ĉ reset", + "ĉres et", + "ĉre set", + "Ġ ARC", + "ĠA RC", + "ĠAR C", + "Ġmús ica", + "ĠSh elf", + "ĠShe lf", + "ĠShel f", + "Ġmin Y", + "p ch", + "pc h", + "Ġwe iber", + "Ġwei ber", + "iss or", + "Ġtr ouve", + "Ġtro uve", + "Ġtrou ve", + "ĉ Button", + "ĉB utton", + "Ġre generated", + "Ġreg enerated", + "Ġregenerate d", + "Å £i", + "Å£ i", + "im achinery", + "b locking", + "bl ocking", + "block ing", + ".data Tables", + "_ frac", + "_f rac", + "_fr ac", + "ĠAdv antage", + ".visit Method", + "éĩį æĸ°", + "Ġextra pol", + "Ġextr apol", + "Ġte asing", + "Ġtea sing", + "Ġteas ing", + "ĠH itch", + "ĠHit ch", + "ĠGe ek", + "ĠGee k", + "E SCO", + "ES CO", + "ESC O", + "Ġ wich", + "Ġw ich", + "Ġwi ch", + "ĉ ax", + "ĉa x", + "_ decor", + "_de cor", + "_dec or", + "Ġscreen Width", + "ĠSo phia", + "ĠSoph ia", + "F orgot", + "For got", + "Forg ot", + ". uni", + ".un i", + ".u ni", + "ĠVen ture", + "ĠVent ure", + "_ collision", + "_c ollision", + "_coll ision", + "Ġlaw maker", + "( Edit", + "(E dit", + "b lers", + "ble rs", + "bl ers", + "bler s", + "Ġ getNext", + "Ġget Next", + "âĢĶ you", + "Media Player", + "ĠH orde", + "ĠHor de", + "ĠCongress man", + "obs ervations", + "observ ations", + "observation s", + "ĉ property", + "ĉp roperty", + "ĉprop erty", + "Ġ< --", + "Ġ<- -", + "Created At", + "u byte", + "ub yte", + "uby te", + "Ġquar antine", + "Ġdist ressed", + "Ġdistr essed", + "Ġdistress ed", + "_A PB", + "_AP B", + "ĠGood man", + "ãĤ «", + "Ġrecom end", + "_ PRINTF", + "_PRINT F", + "D ONE", + "DO NE", + "DON E", + "Bind able", + "r strip", + "rs trip", + "rst rip", + "cent aje", + "Ġ Unexpected", + "ĠUn expected", + "ĠS CHOOL", + "ĠProfessional s", + "ĠProfession als", + "ĠGPU s", + "ĠGP Us", + "L esson", + "Le sson", + "Les son", + "Less on", + "Ex clusive", + "Ġat rav", + "Ġatr av", + "ĠD ank", + "ĠDan k", + "ĠDa nk", + "ĠLaw yers", + "ĠLawyer s", + "ĠWal ton", + "ĠWalt on", + "> []", + ">[ ]", + "Ġa loud", + "Ġal oud", + "Ġalo ud", + "=\" ../../../", + "=\"../ ../../", + "=\"../../ ../", + "Ġdeb ating", + "ĠA VG", + "ĠAV G", + "_V OL", + "_VO L", + "/ cgi", + "/c gi", + ". deg", + ".d eg", + ".de g", + ": g", + ".Info f", + ".Inf of", + "Measure Spec", + ". song", + ".s ong", + ".so ng", + ".son g", + "m tree", + "mt ree", + "ul ls", + "ull s", + "J ordan", + "ĠC overs", + "ĠCo vers", + "ĠCover s", + "ĠCov ers", + "ĠCove rs", + "Ġattrib utable", + "Ġj edis", + "Ġje dis", + "Ġjed is", + "iat rics", + "iatric s", + "Ġrot terdam", + "Ġ meld", + "Ġm eld", + "Ġme ld", + "Ġmel d", + "Ġ ContentType", + "ĠContent Type", + "Ġman tle", + "Ġmant le", + "Ġ alice", + "Ġa lice", + "Ġal ice", + "Ġali ce", + "_ duplicate", + "_d uplicate", + "_dup licate", + "/ Internal", + "Ġ filesize", + "Ġfile size", + "Ġfiles ize", + "ĉ fire", + "ĉf ire", + "ĉfi re", + "r ese", + "re se", + "res e", + "on dere", + "ond ere", + "onder e", + "onde re", + "Ġfamiliar ity", + "ĠC rest", + "ĠCr est", + "ĠCre st", + "ĠCres t", + "Ġk arma", + "Ġkar ma", + "Ġtor ino", + "Ġm esa", + "Ġme sa", + "Ġmes a", + "/ temp", + "/t emp", + "Ġc hir", + "Ġch ir", + "Ġchi r", + "Ġ Overflow", + "ĠOver flow", + "Ġten emos", + "u nik", + "un ik", + "uni k", + "N EXT", + "NE XT", + "A lle", + "Al le", + "All e", + "Ġn xt", + "Ġnx t", + "M art", + "Mar t", + "Ma rt", + "Ġ atl", + "Ġa tl", + "Ġat l", + "Ġperiod o", + "Ġperi odo", + "_ you", + "_y ou", + "Ġ} )).", + "Ġ}) ).", + "Ġ})) .", + "int estinal", + ".Adapter View", + "Ġhes itant", + "Ġcompar atively", + "Ġcomparative ly", + ". UInt", + ".U Int", + ".UI nt", + "( viewModel", + "(view Model", + "Ġsang at", + "Ġ Responsive", + "ĠRes ponsive", + "ĠRespons ive", + "ĠZ ack", + "ĠZa ck", + "ĠZac k", + "â ħ", + "J AVA", + "JA VA", + "ĠFull er", + "ĠFu ller", + "ĠFul ler", + "Ġ âĿ¤", + "ĠâĿ ¤", + ". Consumer", + ".Con sumer", + ".Cons umer", + "Ġ ank", + "Ġa nk", + "Ġan k", + "Ġre actors", + "Ġreact ors", + "Ġreactor s", + "f uck", + "fu ck", + "_ rat", + "_r at", + "_ra t", + "Ġsession Factory", + "_ backward", + "_back ward", + "Ġscram bled", + "Ġscramble d", + "ĉ th", + "ĉt h", + "Ġins ensitive", + "Ġch amps", + "Ġcha mps", + "Ġcham ps", + "Ġchamp s", + "Ġ nginx", + "Ġng inx", + "Ġcon hec", + "Ġconhe c", + "ĠJ asper", + "ĠJas per", + ". fm", + ".f m", + "Strict Equal", + "ach sen", + "achs en", + "- Nov", + "-N ov", + "-No v", + "l assen", + "lass en", + "las sen", + ". integration", + ".int egration", + "( lbl", + "(l bl", + "Com pose", + "Comp ose", + "ĠF on", + "ĠFo n", + "à ļ", + "Gr atis", + "ĠL ime", + "ĠLim e", + "ĠLi me", + "ĠAdapter View", + "Ġpoison ed", + "Ġpois oned", + "anch ors", + "anchor s", + "设 计", + "'] ?>\"", + "']?> \"", + "Ġpro cur", + "Ġproc ur", + "It aly", + ". MONTH", + ".MON TH", + "ĠL UA", + "ĠLU A", + "ĠLith uania", + "ĠHe ads", + "ĠHead s", + "_CH UNK", + "ĠP USH", + "ĠPU SH", + "ĠPUS H", + "Aspect Ratio", + "Ġ weg", + "Ġw eg", + "Ġwe g", + "Ġv ids", + "Ġvi ds", + "Ġvid s", + "ĠW ein", + "ĠWe in", + "ĠWei n", + "ĉ INT", + "ĉI NT", + "ĉIN T", + "session Id", + "Ind ustry", + "Ġden ounced", + "JK LM", + "ĠVan essa", + ". Identifier", + ".Id entifier", + "p ropri", + "pro pri", + "prop ri", + "Ġ иг", + "Ġи г", + "Ġté cn", + "Ġtéc n", + "Ġm osaic", + "Ġmos aic", + "Stream Reader", + "- Th", + "-T h", + "f orth", + "for th", + "fort h", + "Ġad herence", + "Ġadher ence", + "Ġadhere nce", + "b ate", + "ba te", + "bat e", + "Ġkn ights", + "Ġknight s", + "s ounds", + "so unds", + "sound s", + "sou nds", + "Ġs alle", + "Ġsa lle", + "Ġsal le", + "O MET", + "OM ET", + "OME T", + "ãĤ¹ ãĥĪ", + "- tm", + "-t m", + "ĠR he", + "ĠRh e", + ".File OutputStream", + "åĪĨ ç±»", + "Ġ ENG", + "ĠE NG", + "ĠEN G", + "h oliday", + "hol iday", + "Ġ Congratulations", + "ĠCong ratulations", + ") (Ċ", + ")( Ċ", + "Ġaggregate s", + "Ġaggreg ates", + "H OOK", + "HO OK", + "e wire", + "ew ire", + "Sen ator", + "Ġembed dings", + "Ġembedding s", + "e py", + "ep y", + "( COM", + "(C OM", + "Ġrob ber", + "ä ter", + "ät er", + "w ang", + "wa ng", + "wan g", + "_ teacher", + "_t eacher", + "_te acher", + "Ġresent ment", + "Ġlett uce", + "er reur", + "err eur", + "erre ur", + "( ic", + "(i c", + "ĠT actical", + "ĠTac tical", + "Ġ Contracts", + "ĠCon tracts", + "ĠContract s", + "ĠContr acts", + "Ġm ænd", + "Ġsit ios", + "Ġsiti os", + "Ġsitio s", + "Ġbast ante", + "Ġnue vos", + "Ġnuevo s", + "ĉN drFc", + "Ġprivate Key", + "uc ch", + "ucc h", + "MM dd", + "Ġ è¾ĵåĩº", + "Ġè¾ĵ åĩº", + "um ba", + "umb a", + "@ foreach", + ": \");ĊĊ", + ":\" );ĊĊ", + ":\");Ċ Ċ", + ":\") ;ĊĊ", + "Ġslip pery", + "ĠKey stone", + "ĠKe ystone", + "ĠKeys tone", + "Ġpione ering", + "Ġpioneer ing", + "_ triangle", + "_t riangle", + "_tr iangle", + "_tri angle", + "( \"Ċ", + "(\" Ċ", + "ĉ ĉĉĉĉĉĉĉĠĠ", + "ĉĉ ĉĉĉĉĉĉĠĠ", + "ĉĉĉĉ ĉĉĉĉĠĠ", + "ĉĉĉ ĉĉĉĉĉĠĠ", + "ĉĉĉĉĉ ĉĉĉĠĠ", + "ĉĉĉĉĉĉ ĉĉĠĠ", + "ĉĉĉĉĉĉĉĉ ĠĠ", + "ĉĉĉĉĉĉĉ ĉĠĠ", + "ĉĉĉĉĉĉĉĉĠ Ġ", + "ĠInt ervention", + "ĠInter vention", + "S CI", + "SC I", + "Ġc JSON", + "Ġter minating", + "Ġterm inating", + "Ġtermin ating", + "ë ¹Ħ", + "ë¹ Ħ", + "Ġbaby s", + "Ġbab ys", + "Sub set", + "Ġ ë¡", + "Ġë ¡", + "Ġseu lement", + "Ġseul ement", + "Ġseule ment", + "Ġm uestra", + "Ġmue stra", + "En tre", + "Ent re", + "Entr e", + "以 ä¸Ĭ", + "n go", + "ng o", + "\" bytes", + "QR ST", + "QRS T", + "Ġy pos", + "Ġyp os", + "person a", + "pers ona", + "Ġ Deploy", + "ĠDe ploy", + "ĠDep loy", + "c ee", + "ce e", + "Ġ à®", + "Ġà ®", + ". goal", + ".go al", + "Ġhabit ats", + "Ġhabitat s", + "Ġ isAdmin", + "Ġis Admin", + "Ġexplo iting", + "Ġexploit ing", + "Ġvent il", + "Ġven til", + "ĠB alls", + "ĠBall s", + "ĠBal ls", + "ا ب", + "Ø§Ø ¨", + "Ġmind fulness", + "Ġmindful ness", + "( kwargs", + "(k wargs", + "Ġre sembling", + "Ġresembl ing", + "Ġch oir", + "Ġcho ir", + "Ġon BackPressed", + "ĠSEC URITY", + "/ gtest", + "/g test", + "Ġjust ices", + "Ġjustice s", + "Ġinteger Value", + "b lah", + "bl ah", + "bla h", + "ĠA im", + "ĠAi m", + "_ finalize", + "_final ize", + "k eh", + "ke h", + "ĠComplex ity", + "Ġaug ust", + "get ElementsByTagName", + "Ġp reach", + "Ġpr each", + "Ġpre ach", + "Ġpron unciation", + "Ġ Trash", + "ĠTr ash", + "ĠTra sh", + "- percent", + "-per cent", + "_PR IV", + "_PRI V", + "ĠH unts", + "ĠHun ts", + "ĠHu nts", + "ĠHunt s", + "ĠC urse", + "ĠCur se", + "u ellen", + "ue llen", + "uel len", + "uelle n", + "uell en", + "Ġheavy weight", + "X i", + "ĉ selected", + "ĉselect ed", + "ĉse lected", + "ĠMcC oy", + "å¼Ĥ 常", + "| =Ċ", + "|= Ċ", + "ĠBattle field", + "Item Image", + "Ġded uctions", + "Ġdeduct ions", + "Ġdeduction s", + "ĠElement al", + "ĠEle mental", + "ĠElem ental", + "( ));//", + "() );//", + "()) ;//", + "()); //", + "ĠBur k", + "ĠBu rk", + "} )čĊčĊ", + "}) čĊčĊ", + "})čĊ čĊ", + "sw ift", + "/ function", + "/f unction", + "Us ually", + "Usu ally", + "_ St", + "_S t", + "_fe ats", + "_feat s", + "Ġ IsValid", + "ĠIs Valid", + "Ġz ad", + "Ġza d", + "Image Context", + "Ġ classname", + "Ġclass name", + "Ġdon ner", + "Ġdonne r", + "Ġdonn er", + "Ġ-- >ĊĊĊ", + "Ġ-->Ċ ĊĊ", + "Ġ--> ĊĊĊ", + "Ġ-->ĊĊ Ċ", + "Ġmotor cycles", + "Ġmotorcycle s", + "+' /'+", + "+'/ '+", + "Ġ setBackground", + "Ġset Background", + "\\ CMS", + "\\C MS", + ". AllArgsConstructor", + ".All ArgsConstructor", + "ĠLex ington", + ". examples", + ".ex amples", + ".example s", + ".exam ples", + "ĠP urs", + "ĠPur s", + "ĠPu rs", + "Push Matrix", + "Ġ================================================= =============", + ".add Target", + "p ora", + "por a", + "po ra", + "Full screen", + "Ġgo of", + "Ġgoo f", + "h len", + "hl en", + "hle n", + "ä ge", + "ĠC URL", + "ĠCUR L", + "ĠCU RL", + "Ġ Interesting", + "ĠInter esting", + "ĠInterest ing", + "Ġretrie ves", + "Ġretrieve s", + "Ġretr ieves", + "_ Obj", + "_O bj", + "in ness", + "inn ess", + "inne ss", + "- ----ĊĊ", + "-- ---ĊĊ", + "---- -ĊĊ", + "--- --ĊĊ", + "----- ĊĊ", + "-----Ċ Ċ", + ".t sv", + ".ts v", + "( IM", + "(I M", + "ĠBr aves", + "ĠBra ves", + "ĠBrave s", + "_ ISR", + "_I SR", + "_IS R", + "o sti", + "os ti", + "ost i", + "á» ĵ", + "ĠEx terior", + "ĠExt erior", + "ĠCourt ney", + "Ġresid ues", + "Ġresidue s", + "T ier", + "Ti er", + ".* ;čĊčĊ", + ".*;čĊ čĊ", + ": black", + ":b lack", + "web View", + "\" path", + "Ġm asa", + "Ġma sa", + "Ġmas a", + "] !='", + "]!= '", + "Ġ Matching", + "ĠM atching", + "ĠMat ching", + "ĠMatch ing", + "d ur", + "du r", + "J vm", + "= context", + "_ RING", + "_R ING", + "Ġpro ponents", + "Ġprop onents", + "ĠQString Literal", + "Ġ inflate", + "Ġin flate", + "Ġinf late", + "Ġinfl ate", + "< Float", + " \">čĊ", + "Ġ?>\" >čĊ", + "Ġ?>\"> čĊ", + "_C OST", + "_CO ST", + "i linear", + "il inear", + "ili near", + "iline ar", + "ilin ear", + "Ġ Workspace", + "ĠWork space", + "ĠWorks pace", + "Ġs pel", + "Ġsp el", + "Ġspe l", + "ag ogue", + "ago gue", + "agog ue", + "ĠMillenn ium", + "ĠPop ulate", + "Ġ nid", + "Ġn id", + "Ġni d", + ".parse Color", + "S olar", + "So lar", + "Sol ar", + "ĠG ad", + "ĠGa d", + "Ġ ì¤ij", + "Ġì ¤ij", + "Ġì¤ ij", + "ĠK amp", + "ĠKa mp", + "ĠKam p", + "ĉ rm", + "ĉr m", + "Ġb enz", + "Ġbe nz", + "Ġben z", + "Ġ Honestly", + "ĠH onestly", + "ĠHonest ly", + "Ġelectro de", + "Ġelectr ode", + "ĠPr airie", + "ĠPra irie", + "Ġ PROFILE", + "ĠPRO FILE", + "ĠPROF ILE", + "ĠOri ental", + "ĠOrient al", + "ĠO LED", + "ĠOL ED", + "/cop yleft", + "awa ii", + "awai i", + "( products", + "(product s", + ") \\<", + ")\\ <", + "- created", + "-c reated", + "-create d", + "-cr eated", + ".Many ToMany", + "\" How", + "\"H ow", + "Ġв Ñĭп", + "ĠвÑĭ п", + "Ġmitochond rial", + "_ testing", + "_t esting", + "_test ing", + "( created", + "(c reated", + "(create d", + "(cr eated", + "Ġ getField", + "Ġget Field", + "_E VAL", + "_EV AL", + "] .\"", + "]. \"", + "ĠF SM", + "ĠFS M", + "ĠR ita", + "ĠRi ta", + "ĠRit a", + "Ġ åıĤæķ°", + "Ġåı Ĥæķ°", + "ĠåıĤ æķ°", + "Ġc ôt", + "Ġcô t", + "ĠIns ight", + "ĉ mysqli", + "ĉm ysqli", + "ĉmysql i", + "_ timing", + "_t iming", + "_tim ing", + "_ti ming", + "I DO", + "ID O", + ") ))))Ċ", + ")) )))Ċ", + "))) ))Ċ", + ")))) )Ċ", + "CO VERY", + "COVER Y", + ". imag", + ".i mag", + ".im ag", + "C DF", + "CD F", + "l ust", + "lu st", + "lus t", + "i ckt", + "ic kt", + "ick t", + "_ FP", + "_F P", + ". ','", + ".' ,'", + ".', '", + "g cc", + "gc c", + "Ġkur z", + "Ġku rz", + "_p wm", + "_pw m", + "Ġodp owied", + "Ġ Barrier", + "ĠBar rier", + "ĠBarr ier", + "/************************************************************************ ***Ċ", + "p ak", + "pa k", + "- Israel", + "ĠRut gers", + "Ġselected Item", + "ĠRam irez", + "F arm", + "Far m", + "Fa rm", + "Ġcal endars", + "Ġcalendar s", + "Ġcalend ars", + "g zip", + "gz ip", + "Ġblock buster", + "ĠPly mouth", + "çľ Į", + "res ponses", + "response s", + "respons es", + ".Dialog Interface", + "- grand", + "-g rand", + "-gr and", + "Ġ getSource", + "Ġget Source", + "ĠgetS ource", + "Ġdej tings", + "Ġdejting s", + "Ġt ieten", + "Ġti eten", + "Ġtie ten", + "Ġcondem nation", + "Ġcondemn ation", + "Ġcontin uar", + "Ġcontinu ar", + "Ġcontinua r", + ".Mock Mvc", + "/ english", + "Ġ MediaPlayer", + "ĠMedia Player", + "com puted", + "comp uted", + "compute d", + "comput ed", + "ĠCl ippers", + "ĠClip pers", + "ĠCli ppers", + "( delegate", + "(de legate", + ". Slf", + ".S lf", + "Ġ ë¡ľ", + "Ġë¡ ľ", + "ĠT ide", + "ĠTi de", + "Ġih rem", + "Ġihr em", + "Ġihre m", + "ĠW an", + "ĠWa n", + "Ñĥ ÑİÑī", + "ÑĥÑİ Ñī", + "} ><", + "}> <", + "Disc ussion", + "Discuss ion", + "Ġw atts", + "Ġwat ts", + "Ġwatt s", + "- minus", + "-m inus", + "-min us", + "ĠJul iet", + "ĠJulie t", + "ĠJuli et", + "éĽ ħ", + "Ġcon cluding", + "Ġconcl uding", + "and scape", + "ands cape", + "Ġúlt ima", + "ĠD ERP", + "ĠDE RP", + "ĠDER P", + "Ġsign Up", + "ĠSecond ly", + "W AIT", + "WA IT", + "l ds", + "ld s", + ". callbacks", + ".call backs", + ".callback s", + "( hour", + "(h our", + "im ators", + "ima tors", + "imator s", + "imat ors", + "vol ent", + "A AF", + "AA F", + "e driver", + "ed river", + "ĠMath ematic", + "< Tuple", + "'", + "Ġ/> '", + "{ j", + "_AB ORT", + "E ther", + "Et her", + "Eth er", + "Ġeduc ator", + "Ġpreca ution", + "Ġfinger tips", + "Ġfingert ips", + "get Var", + "cam atan", + "- debug", + "-de bug", + "ĠR AF", + "ĠRA F", + "[ arg", + "[a rg", + "Ġr aced", + "Ġrace d", + "Ġrac ed", + "Ġra ced", + "Ġts unami", + ".f link", + ".fl ink", + "Ġgl yc", + "Ġgly c", + "u ko", + "uk o", + "Ġ Multiply", + "ĠM ultiply", + "ĠMulti ply", + "ĠMultip ly", + "Ġre distribution", + "Ġred istribution", + "Ġredistrib ution", + "Ġredis tribution", + "A GO", + "AG O", + "Ġ Routine", + "ĠR outine", + "ĠRout ine", + "Ġ opr", + "Ġo pr", + "Ġop r", + "( lower", + "(l ower", + "(low er", + "(lo wer", + "ĠFun ktion", + "ĠFunk tion", + ". dk", + ".d k", + "Ġ egt", + "Ġe gt", + "Ġeg t", + "_B ASIC", + "sys call", + "ĠL SD", + "ĠLS D", + "Ġ Duplicate", + "ĠD uplicate", + "ĠDup licate", + "_ sell", + "_s ell", + "_se ll", + "_sel l", + "Ġerror Handler", + "_ ips", + "_i ps", + "_ip s", + "Ġ erv", + "Ġe rv", + "Ġer v", + "an nie", + "ann ie", + "anni e", + "(resource Name", + "Ġbott led", + "Ġbottle d", + "Ġcraw ling", + "Ġcrawl ing", + "e gment", + "eg ment", + ".set Tag", + "Ġ rss", + "Ġr ss", + "Ġrs s", + "ĠQu arry", + "ĠQuar ry", + "_ exact", + "_ex act", + ". jwt", + ".j wt", + "ĠBo ards", + "ĠBoard s", + "o pi", + "op i", + "Ġn asal", + "Ġna sal", + "Ġnas al", + "Ġ XYZ", + "ĠX YZ", + "ĠXY Z", + ". ud", + ".u d", + "North ern", + "Nor thern", + "Ġact ivating", + "Ġactiv ating", + "e dx", + "ed x", + "ov ah", + "ova h", + "Ġ indx", + "Ġin dx", + "Ġi ndx", + "Ġind x", + "Alert Dialog", + "Ġt ienes", + "Ġti enes", + "Ġtie nes", + "Ġtiene s", + "an nya", + "ann ya", + "anny a", + "_ pan", + "_p an", + "_pa n", + "( decimal", + "(d ecimal", + "(de cimal", + "(dec imal", + ". Dict", + ".D ict", + ".Di ct", + "Ġsubsidi aries", + "Product Name", + "F ew", + "Fe w", + "d ato", + "da to", + "dat o", + "od ied", + "odi ed", + "odie d", + "- under", + "-un der", + "-u nder", + "Ġ ê²ĥ", + "Ġê² ĥ", + "çīĪ æľ¬", + "at ism", + "atis m", + "ati sm", + "[ Math", + "[M ath", + ". '<", + ".' <", + "( infile", + "(in file", + "Ġde notes", + "Ġden otes", + "Ġdenote s", + "$ class", + "$c lass", + "_SEC URITY", + "Ġsew age", + "m elon", + "me lon", + "mel on", + "( Character", + "(Char acter", + "/ github", + "/g ithub", + "/git hub", + "Ġgl aring", + ". Guid", + ".G uid", + "_ sparse", + "_s parse", + "_sp arse", + "Ġ Margin", + "ĠM argin", + "ĠMar gin", + "ĠMarg in", + "_ dns", + "_d ns", + "_dn s", + "Ġme iner", + "Ġmein er", + "Ġmeine r", + "Ġleft ist", + "ĉ loc", + "ĉl oc", + "a bytes", + "aby tes", + "abyte s", + "Ġequipment s", + "Ġequip ments", + "ex po", + "exp o", + "ĠSom erset", + "E K", + "æį ¢", + "Ġlect urer", + "Ġlecture r", + "Ġmem iliki", + "æł ¸", + "ç´ ł", + "p ron", + "pr on", + "pro n", + ": pointer", + "b orrow", + "bor row", + "ĠProt ective", + "ĠProtect ive", + "_ cf", + "_c f", + "Ġ ÐķÑģли", + "ĠÐķ Ñģли", + "b pp", + "bp p", + "' ;ĊĊĊĊ", + "';Ċ ĊĊĊ", + "';ĊĊ ĊĊ", + "'; ĊĊĊĊ", + "';ĊĊĊ Ċ", + "at urally", + "atur ally", + "atural ly", + "_ NAV", + "_N AV", + "Ġpe ptide", + "> d", + "Ġ ifstream", + "Ġif stream", + "Ġi fstream", + "_FACT ORY", + "_FACTOR Y", + "' );//", + "') ;//", + "'); //", + "j oined", + "join ed", + "jo ined", + "m ong", + "mon g", + "mo ng", + "Ġtime spec", + "Ġtimes pec", + "Ġdest abil", + "Ġdesta bil", + "Ġ autop", + "Ġaut op", + "Ġauto p", + "Ġau top", + "- limit", + "-l imit", + "-li mit", + "public ation", + "pub lication", + "ĠD enn", + "ĠDe nn", + "ĠDen n", + ". Memory", + ".M emory", + "( skb", + "(s kb", + "(sk b", + "ĠAna heim", + "_RETURN TRANSFER", + "o ueur", + "ou eur", + "( _('", + "(_ ('", + "l egt", + "le gt", + "leg t", + "ist ingu", + "isting u", + "ĉ priv", + "ĉp riv", + "ĉpr iv", + "Ġredirect s", + "M t", + "Ġal leen", + "Ġall een", + "Ġalle en", + "Ġ PointF", + "ĠPoint F", + "Ġ omin", + "Ġo min", + "Ġom in", + "Ġc itt", + "Ġcit t", + "Ġci tt", + "ĠT age", + "ĠTag e", + "ĠTa ge", + "ĠW alls", + "ĠWall s", + "ĠWal ls", + "á» ī", + "Ġoccup ying", + "Ġoccupy ing", + "x BF", + "xB F", + "r angle", + "ra ngle", + "ran gle", + "rang le", + "Ġrel ational", + "Ġrelation al", + "Ġrelat ional", + "- org", + "-o rg", + "-or g", + "Ġ jpg", + "Ġj pg", + "Ġjp g", + "- derived", + "Ġmal function", + "ĠB enson", + "ĠBen son", + "( scroll", + "(s croll", + "(sc roll", + "Ġ XD", + "ĠX D", + "H oly", + "Ho ly", + "Hol y", + "( commands", + "(command s", + "(comm ands", + "Ġt ipping", + "Ġti pping", + "Ġtip ping", + "Ġpr imitives", + "Ġprim itives", + "Ġprimitive s", + "Ġsex le", + "Call Check", + "Ġ MASTER", + "ĠM ASTER", + "ĠMA STER", + "ĠMAS TER", + "_ TEAM", + "_TE AM", + ".setRequest Header", + "_ specs", + "_sp ecs", + "_spec s", + "Ġs erge", + "Ġser ge", + "Ġserg e", + ". Master", + ".M aster", + ".Ma ster", + "Ġ ims", + "Ġi ms", + "Ġim s", + ".Spring BootTest", + "pay pal", + "ĠW ANT", + "ĠWA NT", + "ĠWAN T", + ". Inst", + ".I nst", + ".In st", + "ĠCar pet", + "ĠCarp et", + "Ġwrong ly", + "( $('.", + "($ ('.", + "($( '.", + "($(' .", + "Ġ bild", + "Ġb ild", + "Ġbi ld", + "Ġbil d", + ". Roll", + ".R oll", + "ĠU rb", + "ĠUr b", + "- can", + "-c an", + "-ca n", + "ãģı ãģłãģķãģĦ", + "ãģıãģł ãģķãģĦ", + "olib eral", + " čĊčĊ", + "Ġ-->čĊ čĊ", + "ĠMa hm", + "ĠMah m", + "} \";ĊĊ", + "}\" ;ĊĊ", + "}\";Ċ Ċ", + "Ġ dq", + "Ġd q", + "ĠPublish ers", + "ĠPublisher s", + "ĠA mpl", + "ĠAm pl", + "ĠAmp l", + "ĠDaniel le", + "ĠDani elle", + "Ġ tern", + "Ġt ern", + "Ġte rn", + "Ġter n", + "èµ ·", + "no ÅĽÄĩ", + "e in", + "ei n", + "ĠAsync Storage", + "u nger", + "un ger", + "ung er", + "unge r", + "ro uw", + "rou w", + "Ġsc issors", + "/ assert", + "/as sert", + ". bucket", + ".b ucket", + "/ archive", + "/a rchive", + "/arch ive", + "_ Man", + "_M an", + "Ġint oler", + "Ġinto ler", + "Ġ ()=>", + "Ġ( )=>", + "Ġ() =>", + "Ġ ÐĴÑĭ", + "ĠÐĴ Ñĭ", + "Ġs ai", + "Ġsa i", + ". xy", + ".x y", + ". \"čĊ", + ".\" čĊ", + "Ġur inary", + "e sub", + "es ub", + "IST ICS", + "ISTIC S", + "Ġ κ", + "ĠÎ º", + "Ġcompl iments", + "Ġcompliment s", + "Ġtypings Japgolly", + "i har", + "ih ar", + "Exp ansion", + "ĠS erving", + "ĠSer ving", + "ĠServ ing", + "_ students", + "_st udents", + "_student s", + "ĠX BOOLE", + "( il", + "(i l", + "Ġ ì²ĺ", + "Ġì² ĺ", + "Ġj ó", + "( tol", + "(t ol", + "(to l", + "( JS", + "(J S", + "ĉ CG", + "ĉC G", + "Ġ DRAW", + "ĠD RAW", + "ĠDR AW", + "t wig", + "tw ig", + "Ġo at", + "Ġoa t", + "_ smooth", + "_sm ooth", + "ĠC SL", + "ĠCS L", + "Ġo sob", + "Ġos ob", + "Ġens uing", + "Ġb anker", + "Ġbank er", + "Ġban ker", + "ĠBack pack", + "_ ping", + "_p ing", + "_pin g", + "_pi ng", + "Ġ wishlist", + "Ġw ishlist", + "Ġwish list", + "= ax", + "=a x", + "ĉ ĠĠĠĊ", + "ĉĠĠĠ Ċ", + "ĉĠ ĠĠĊ", + "ĉĠĠ ĠĊ", + "Dis ney", + "ste ady", + "stead y", + "\" >%", + "\"> %", + "Ġproph ets", + "Ġprophet s", + "Ġ ZX", + "ĠZ X", + "Ġminimal ist", + "Ġminim alist", + ". PLAIN", + ".PL AIN", + "Se attle", + "Seat tle", + ". ordinal", + "Ġ PIPE", + "ĠPI PE", + "Ġret orna", + "Ġretorn a", + "Ġj ugador", + "Ġjug ador", + "ĠB ret", + "ĠBr et", + "ĠBre t", + "ĠâĶ ľ", + "Ġp lush", + "Ġpl ush", + "Ġplus h", + "Ġplu sh", + "UL ATOR", + "ULA TOR", + "S orting", + "Sort ing", + ".grid y", + ".gr idy", + "ect omy", + "_ activ", + "_ac tiv", + "_act iv", + "r ack", + "ra ck", + "rac k", + "Inter active", + "ĠAntar ctica", + "ĠAntarctic a", + "Ġv engeance", + "en so", + "ens o", + "_ known", + "_k nown", + "up plier", + "upp lier", + ". Modules", + ".Mod ules", + ".Module s", + "ĠConnection State", + "éļ IJèĹı", + "éļIJ èĹı", + "@ FindBy", + "Ġ placer", + "Ġpl acer", + "Ġplace r", + "Ġplac er", + "Ġpla cer", + "\\ model", + "< ()>", + "<( )>", + ".is Successful", + ".isSuccess ful", + "- good", + "-g ood", + "-go od", + "b z", + "ĠDr aco", + "ĠDra co", + "Ass istant", + "- extra", + "-ex tra", + "-ext ra", + "аб лиÑĨ", + "Ġhyp ocrisy", + "Ġt st", + "Ġts t", + "ĠA gr", + "ĠAg r", + "$ txt", + "$t xt", + "Ġlog istic", + "l icensed", + "lic ensed", + "license d", + "ĠH of", + "ĠHo f", + "Ġ tat", + "Ġt at", + "Ġta t", + "( iv", + "(i v", + "Ġint oxic", + "Ġinto xic", + "Ġintox ic", + "post Id", + "_ strike", + "_st rike", + "_str ike", + "Ġhum iliation", + "Ġhumili ation", + "p codes", + "pc odes", + "\" sync", + "\"s ync", + "( recipe", + "(rec ipe", + "+ N", + "r ente", + "re nte", + "ren te", + "rent e", + "ĉ Client", + "ĉC lient", + "ycop g", + "ĠZur ich", + "ĠZu rich", + "Ġ Profiles", + "ĠPro files", + "ĠProf iles", + "ĠProfile s", + "C ountries", + "Count ries", + "Ġp ict", + "Ġpi ct", + "Ġpic t", + "Ġroll out", + "requ encies", + "Ġp atched", + "Ġpat ched", + "Ġpatch ed", + "Ġcar tridges", + "Ġcartridge s", + "Ġsh ading", + "Ġsha ding", + "J ar", + "Ja r", + "Ġsalv age", + "ĠT axes", + "ĠTax es", + "ĠTa xes", + "Ġstand by", + "ap oran", + "apor an", + "apo ran", + "E igen", + ". angular", + "Ġ Nested", + "ĠN ested", + "ĠNe sted", + "ĠNest ed", + "ĠNes ted", + "ä º«", + "äº «", + "Ġ isVisible", + "Ġis Visible", + "ĠDw ight", + "_BR ANCH", + ". Delay", + ".D elay", + ".De lay", + "Ġk end", + "Ġke nd", + "Ġken d", + "Ġfacilit ated", + "Ġfacilitate d", + "Ġfacil itated", + ". flatMap", + ".flat Map", + "Ġs anta", + "Ġsan ta", + "Ġsant a", + "ĉ Send", + "ĉS end", + "/ messages", + "/m essages", + "/message s", + "Ġof Type", + "ĉ swap", + "ĉs wap", + "ĉsw ap", + "# plt", + "ĠTur ks", + "ĠTurk s", + "N ES", + "NE S", + "Ġprogress ively", + "Ġprogressive ly", + "ĠRes idence", + "Ġ TREE", + "ĠT REE", + "ĠTR EE", + "ĠTRE E", + "Ġn oen", + "Ġno en", + "Ġnoe n", + "d io", + "di o", + "Ġ nelle", + "Ġn elle", + "Ġne lle", + "Ġnel le", + "Ġnell e", + "Ġso gar", + "Ġsog ar", + "i tti", + "it ti", + "itt i", + "week ly", + "Ġambigu ity", + "_ Settings", + "_S ettings", + "_Set tings", + "W are", + "War e", + "Wa re", + ". neo", + ".n eo", + ".ne o", + "_ DST", + "_D ST", + "_DS T", + "Ġ æĸ¹", + "Ġæĸ ¹", + "p rep", + "pr ep", + "pre p", + "l obby", + "lob by", + "@ email", + "/ movie", + "/m ovie", + "Ġfun kc", + "Ġfunk c", + "Ġ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ċ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĊ", + "ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĊ", + "ÂŃ s", + "Ġguard ians", + "Ġguardian s", + "- pos", + "-p os", + "-po s", + "Ġconfig uring", + "Ġconfigur ing", + "ĠC PS", + "ĠCP S", + "ĠD eus", + "ĠDe us", + "Ġvidé os", + "Ġvidéo s", + "_ empresa", + "_emp resa", + "Ġsl apped", + "Ġsla pped", + "Ġslap ped", + "< Model", + "',Ċ", + "\"> ',Ċ", + "\">' ,Ċ", + "\">', Ċ", + "_X DECREF", + "ĠBuzz Feed", + "_M ARGIN", + "P LOY", + ". small", + ".s mall", + ".sm all", + "Ġm imeType", + "Ġmime Type", + "Ġh olog", + "Ġho log", + "Ġhol og", + "ĉ camera", + "ĉc amera", + "l ias", + "li as", + "lia s", + "Ġsusp ense", + "od ynam", + "ody nam", + "odyn am", + "b au", + "ba u", + "Ġgrave yard", + "_ named", + "_n amed", + "_name d", + "_na med", + "\": \"'", + "\":\" '", + "Ġ ************************************************", + "Ġ******************************** ****************", + "Ġ******** ****************************************", + "Ġ**************** ********************************", + "Ġ************************ ************************", + "Ġ**************************************** ********", + "Ġgame Over", + "Ġ LENGTH", + "ĠLE NGTH", + "ĠLENG TH", + "ĉ screen", + "ĉs creen", + "ĉsc reen", + "Ġdo InBackground", + "_ dependencies", + "_depend encies", + "_dep endencies", + "Ġ rtc", + "Ġr tc", + "Ġrt c", + "/ up", + "/u p", + "_ ROM", + "_R OM", + "_RO M", + "H all", + "Ha ll", + "Hal l", + "Ġdef iciencies", + "( te", + "(t e", + "' #", + "_ equiv", + "_e quiv", + "_equ iv", + "Ġpre order", + "ĠA xe", + "ĠAx e", + "о мÑĥ", + "ом Ñĥ", + ".send File", + "Ġ filt", + "Ġf ilt", + "Ġfil t", + "Ġfi lt", + "Ġ Limits", + "ĠL imits", + "ĠLim its", + "ĠLi mits", + "ĠLimit s", + "ĠCaval iers", + ". discount", + ".dis count", + ".disc ount", + "âĨ IJ", + "ĠW it", + "ĠWi t", + "QRST UV", + "Ġ ij", + "Ġi j", + "Ġt egen", + "Ġte gen", + "Ġteg en", + "Ġ :\",", + "Ġ: \",", + "Ġ:\" ,", + "diff iculty", + "p unkt", + "pun kt", + "punk t", + "ĠEm ails", + "ĠEmail s", + "ch lor", + "chl or", + "( fun", + "(f un", + ". Uint", + ".U int", + ".Ui nt", + "ĠSt all", + "ĠSta ll", + "_ verified", + "_ver ified", + "u D", + "File Type", + "Ġple asures", + "Ġpleasure s", + "Ġpleas ures", + "Ġjud iciary", + "Ġs ham", + "Ġsh am", + "Ġsha m", + "i pur", + "ip ur", + "_ PLUS", + "_PL US", + "of fers", + "off ers", + "offer s", + "( foo", + "(f oo", + "_ GT", + "_G T", + "ĉ core", + "ĉc ore", + "EN TION", + "ENT ION", + "ĠLib eration", + "ĠLiber ation", + "Command Line", + "_ department", + "_de partment", + "_dep artment", + "_depart ment", + ". Ar", + ".A r", + "_ neighbor", + "_ne ighbor", + "Ġ Submitted", + "ĠSub mitted", + "ĠSubmit ted", + "Ġ Ċ", + "\"> -->Ċ", + "Ġdro its", + "Ġdroit s", + "Ġhomosexual s", + "Ġab duction", + "ĉ widget", + "ĉw idget", + "$ headers", + "$header s", + "ĠD AR", + "ĠDA R", + "Ġf la", + "Ġfl a", + "th reat", + "thr eat", + "Ġl ouis", + "Ġlo uis", + "Ġlou is", + ". GetProperty", + ".Get Property", + "\" Just", + "( frames", + "(f rames", + "(frame s", + "(fr ames", + "r yo", + "ry o", + "prof ession", + "| i", + "íķ´ ìĦľ", + "( sv", + "(s v", + "Ġun recognized", + "I onic", + "Io nic", + "Ion ic", + "F ashion", + "Screen State", + "Ġ Incoming", + "ĠIn coming", + "ĠInc oming", + "Not Nil", + "Ġsyn cing", + "Ġsync ing", + "e mie", + "em ie", + "emi e", + "Ġth ermo", + "Ġther mo", + "Ġtherm o", + "_ procs", + "_pro cs", + "_pr ocs", + "_proc s", + "Ġincons istency", + "Ġinconsist ency", + "rel igious", + ". mj", + ".m j", + "Ġperson n", + "Ġpers onn", + "Ġperso nn", + "Ġmoment os", + "Ġmomento s", + "or arily", + "Ġ æĬ", + "Ġæ Ĭ", + "_ne urons", + "Ill ustr", + "im oto", + "imo to", + "i lik", + "il ik", + "ili k", + "ĠW oj", + "ĠWo j", + "Tr ading", + "Trad ing", + "Tra ding", + "Ġapp are", + "Ġap pare", + "Ġappar e", + "Ġentre prises", + "Ġentreprise s", + "a chat", + "ac hat", + "ach at", + "acha t", + "Ġ ¬", + "Ġ ¬", + "Ġne igh", + "Ġnei gh", + "BUTTON DOWN", + "ĠMa her", + "ĠMah er", + "a ghan", + "ag han", + "agh an", + "- hash", + "-h ash", + "-has h", + "\" f", + "Ġclient ele", + "Ġcliente le", + ".add Button", + "ĉ SP", + "ĉS P", + "Q i", + "Ġg rated", + "Ġgr ated", + "Ġgrat ed", + "Ġgra ted", + "Ġgrate d", + "PO SITE", + "POS ITE", + "POSIT E", + ": >", + "ĠH owell", + "ĠHow ell", + "ĠHo well", + "ĠHowe ll", + "ĠCompar ative", + "Ġ ISC", + "ĠI SC", + "ĠIS C", + "ÂŃ i", + "O cean", + "D avis", + "Da vis", + "ĠFil me", + "ĠFilm e", + "W ins", + "Win s", + "Wi ns", + "ĠJ IT", + "oc cer", + "occ er", + "ĠC orm", + "ĠCo rm", + "ĠCor m", + "ENCH MARK", + "rc hive", + "rch ive", + "i cação", + "ic ação", + "ica ção", + "Ġm ata", + "Ġmat a", + "Ġma ta", + "Ġchild birth", + "ĠOption ally", + "ĠOptional ly", + "E ns", + "En s", + "Ġx http", + "Ġel ucid", + "_Osc InitStruct", + ") )):Ċ", + ")) ):Ċ", + "))) :Ċ", + "Ġint uit", + "Ġ Donate", + "ĠDon ate", + "Ġcorre lates", + "Ġcorrel ates", + "Ġcorrelate s", + "> Delete", + "Ġe quipe", + "Ġequ ipe", + "Ġequip e", + "Ġb oca", + "Ġbo ca", + "Ġinf latable", + "Ġinfl atable", + "e rah", + "er ah", + "era h", + "ĠDateTime Kind", + "Ġcal ves", + "\\ Lib", + "\\L ib", + "Ġem lrt", + "ĠTr ilogy", + "ĠTri logy", + "ĠP anc", + "ĠPan c", + "ĠPa nc", + "ĠD uis", + "ĠDu is", + "ĠpelÃŃcul a", + "W ARDS", + "WARD S", + "WAR DS", + "_DE TECT", + "_DET ECT", + "-section al", + "d hcp", + "dh cp", + "For Row", + "- destruct", + "-d estruct", + "-de struct", + "Ġ Presenter", + "ĠP resenter", + "ĠPres enter", + "ĠPresent er", + "/ slick", + "/s lick", + "/sl ick", + ", on", + ",o n", + "ĠCit adel", + "logged in", + "logg edin", + "_ subtype", + "_sub type", + "Ġs igue", + "Ġsi gue", + "Ġsig ue", + "Ġsigu e", + "Ġc uring", + "Ġcur ing", + "Ġcu ring", + "ĠFire wall", + "Ġfluores cence", + "ĠItalian s", + "ĠItalia ns", + "ĠItal ians", + "иÑĤ ÑģÑı", + ". getStyle", + ".get Style", + "In Seconds", + "j ie", + "ji e", + "- Smith", + "-S mith", + "Ġx link", + "Ġxl ink", + "Ġsub missive", + "о нÑĤ", + "он ÑĤ", + "arbon ate", + "ĠF aul", + "ĠFa ul", + "_ goals", + "_go als", + "_goal s", + "ĠCommission ers", + "ĠCommissioner s", + "chart Instance", + "_POST FIELDS", + "Ġmed ial", + "Ġmedia l", + "Ġmedi al", + "Ġm anos", + "Ġman os", + "Ġma nos", + "Ġmano s", + "Ġd elt", + "Ġde lt", + "Ġdel t", + "s vm", + "sv m", + ". Apis", + ".A pis", + ".Api s", + ".Ap is", + "e phy", + "ep hy", + "eph y", + "Ġasym pt", + "Ġapp Delegate", + "Ġimpro bable", + "c ka", + "ck a", + "s imd", + "si md", + "sim d", + "/ Error", + "/E rror", + ". âĢĵ", + "Ġ PTS", + "ĠP TS", + "ĠPT S", + "d eer", + "de er", + "dee r", + "Ġs ina", + "Ġsi na", + "Ġsin a", + "m agnitude", + "ID ADE", + "IDA DE", + "IDAD E", + "'] }'", + "']} '", + "Ġmay ores", + "Ġmayor es", + "Ġmayo res", + "ĉ comment", + "ĉcom ment", + "/ console", + "/con sole", + "\" @", + "v olt", + "vo lt", + "vol t", + ". sell", + ".s ell", + ".se ll", + ".sel l", + "ĠM acy", + "ĠMac y", + "ĠMa cy", + "Ġme lod", + "Ġmel od", + "Ġim ágenes", + "_ chg", + "_c hg", + "_ch g", + "Ġin out", + "Ġi nout", + "id ente", + "ide nte", + "ident e", + "iden te", + ") '),Ċ", + ")' ),Ċ", + ")'), Ċ", + "d ni", + "dn i", + ". blob", + ".b lob", + ".bl ob", + "Ġtyp ography", + "Ġe erie", + "Ġee rie", + "Ġeer ie", + "_ OID", + "_O ID", + "p esan", + "pe san", + "pes an", + "a jan", + "aj an", + "aja n", + "Ġch opping", + "Ġcho pping", + "Ġchop ping", + "Ġbl uff", + "a df", + "ad f", + "_ bases", + "_b ases", + "_base s", + ". Formatter", + ".Form atter", + ".Format ter", + ".For matter", + "Ġ\\ %", + "ĠPage Info", + "Car rier", + "ĠCal ibration", + "c omo", + "com o", + "co mo", + "-b odied", + "Ġfinanc ier", + "Ġ INA", + "ĠI NA", + "ĠIN A", + ". ERR", + ".E RR", + "Ġho odie", + "Ġhood ie", + "ĠS anity", + "ĠSan ity", + "gu arded", + "guard ed", + ".opend aylight", + "IS MATCH", + "ISM ATCH", + "High lights", + "Highlight s", + "ü nk", + "ün k", + "an iem", + "ani em", + "anie m", + "ang ered", + "ange red", + "anger ed", + "assign ments", + "assignment s", + "Ġregistr ado", + "Ġregist rado", + "ĠU PPER", + "ĠUP PER", + "ampil kan", + "a shire", + "as hire", + "ash ire", + "ashi re", + "ĠNik ola", + "ĠNi kola", + "ĠNikol a", + "ĠC FL", + "ĠCF L", + "ĠH DC", + "ĠHD C", + "Ġp oids", + "Ġpo ids", + "Ġpoi ds", + "ĠI Ps", + "ĠIP s", + "Ġprevent ative", + "ips oid", + "i fix", + "if ix", + "ifi x", + ". camel", + ".c amel", + ".ca mel", + ".cam el", + ". ga", + ".g a", + "V olumes", + "Volume s", + "Vol umes", + "- ste", + "-s te", + "-st e", + "Y ahoo", + "Ya hoo", + "_s ibling", + "_si bling", + "H ighest", + "High est", + "Hi ghest", + "opt group", + "Ġkvin na", + "Ġkvinn a", + "âĢĿ ãĢĤĊĊ", + "âĢĿãĢĤ ĊĊ", + "ĠAppl iances", + "Ġ \"><", + "Ġ\" ><", + "Ġ\"> <", + "' )\")Ċ", + "') \")Ċ", + "')\" )Ċ", + "h tt", + "ht t", + "ĠIdent ified", + "Ġpencil s", + "Ġpenc ils", + "Ġmember Id", + "Ġappend String", + ".load Data", + "Ġmock Mvc", + "Ġj ub", + "Ġju b", + "ĠS lut", + "ĠSl ut", + "ĠTai pei", + "st att", + "stat t", + "sta tt", + "P olit", + "Pol it", + "Po lit", + "Ġpart ager", + "Did Change", + "Incre ases", + "Increase s", + ") }.", + ")} .", + "ĠB aba", + "ĠBa ba", + "ĠBab a", + "_CL IP", + "_CLI P", + "[ unit", + "[u nit", + "Ġ клÑİÑĩ", + "Ġк лÑİÑĩ", + "Ġalc uni", + "ĠL ola", + "ĠLo la", + "ĠLol a", + "Ġcl inging", + "Ġclin ging", + "Ġcling ing", + "@ PostMapping", + "( concat", + "(con cat", + "Ġ ssid", + "Ġs sid", + "Ġss id", + "ĠF auc", + "ĠFa uc", + "o kit", + "ok it", + "oki t", + "ĠRecord ed", + "á lez", + "ál ez", + "ále z", + "($ ('<", + "($( '<", + "($(' <", + ".assertIs Not", + "Ġk ali", + "Ġka li", + "Ġkal i", + "V olt", + "Vo lt", + "Vol t", + "Ġwarm ly", + "Ġsc ares", + "Ġsca res", + "Ġscar es", + "Ġscare s", + "g etti", + "get ti", + "ge tti", + "gett i", + "füh rt", + "führ t", + "_ does", + "_d oes", + "_do es", + ". EMAIL", + ".E MAIL", + "im ations", + "imation s", + "imat ions", + "Ġspring fox", + "ĠD ecom", + "ĠDe com", + "ĠDec om", + "ar cy", + "arc y", + "Ġgl itches", + "Ġglitch es", + "ĠM off", + "ĠMo ff", + "ĠV oll", + "ĠVol l", + "ĠVo ll", + ". between", + ".b etween", + "Ġco orden", + "Ġcoord en", + "ĠPart icularly", + "G BP", + "GB P", + "Ġ semble", + "Ġs emble", + "Ġsem ble", + "Ġsembl e", + "East ern", + "_M SB", + "_MS B", + "] ){čĊ", + "]) {čĊ", + "]){ čĊ", + "m organ", + "mo rgan", + "mor gan", + "ĠE VAL", + "ĠEV AL", + "d ere", + "de re", + "der e", + "H OUSE", + "HO USE", + "m oire", + "mo ire", + "ist ique", + "isti que", + "_l stm", + "_lst m", + "_ls tm", + "- commit", + "-com mit", + "-comm it", + "yster ious", + "Ġtw ink", + "Ġtwin k", + "- thumbnails", + "-th umbnails", + "-thumbnail s", + "e nÃŃ", + "en ÃŃ", + ": '',", + ":' ',", + ":'' ,", + "Ġblack out", + "ĠFloor s", + "ĠFlo ors", + "Ġso fas", + "Ġsofa s", + "Ġsof as", + "Ġ oui", + "Ġo ui", + "Ġou i", + "le shoot", + "les hoot", + "lesh oot", + "ĠR aq", + "ĠRa q", + "- abs", + "-a bs", + "-ab s", + "Ġk ra", + "Ġkr a", + "M ining", + "Min ing", + "Mi ning", + "Mini ng", + "s haft", + "sh aft", + "sha ft", + ".set Columns", + ".setColumn s", + "Cl azz", + "Cla zz", + "PRE TTY", + ". playlist", + ".play list", + "éĸ ¢", + "-Sah aran", + "M ING", + "MI NG", + "MIN G", + "ĉ bl", + "ĉb l", + "è® ®", + "j f", + "DO CKER", + "DOC KER", + "hop efully", + "hope fully", + "( ignore", + "(i gnore", + "ĠUsers Controller", + "ĠMitar beiter", + "Ġ LES", + "ĠL ES", + "ĠLE S", + "Ham ilton", + "- metadata", + "-m etadata", + "-meta data", + "Ġ KK", + "ĠK K", + "ikt ig", + "Ġwoll te", + "Ġwol lte", + "egr ator", + "egra tor", + "] bool", + ", current", + ",c urrent", + "Ġvalue Type", + "Ġexcav ation", + "o land", + "ol and", + "ola nd", + "olan d", + "Ġv erv", + "Ġver v", + "Ġve rv", + "/ filepath", + "/file path", + "Auth Provider", + "Ġpro crast", + "ĉ ULONG", + "ĉU LONG", + "_MEM BERS", + "_MEMBER S", + "Ġup lift", + "ĠAut onomous", + "Ġart works", + "Ġartwork s", + "ĠOut reach", + "Ġp ore", + "Ġpo re", + "Ġpor e", + "Home page", + "Dialog Title", + "Ġ Generating", + "ĠG enerating", + "ĠGener ating", + "ĠGene rating", + "P ARSE", + "PAR SE", + "Ġsem anas", + "Ġsemana s", + "Ġhum ano", + "Ġhuman o", + "JSGlobal Scope", + "Ġvo lte", + "Ġvol te", + "Ġvolt e", + "Ġb ella", + "Ġbe lla", + "Ġbel la", + "Ġbell a", + "(is instance", + "Ġp lc", + "Ġpl c", + "\\ Catalog", + "\\C atalog", + "Ġeste emed", + "Ġesteem ed", + "éĽ ·", + "( suffix", + "(s uffix", + "Ġswe eps", + "Ġsweep s", + "ĉ ORDER", + "Ġdo ivent", + "Ġdoi vent", + "ĠS warm", + "ĠSw arm", + "Ġ Compiled", + "ĠComp iled", + "ĠCompile d", + "get Page", + "A DR", + "AD R", + ".R ichTextBox", + "Ġ Naming", + "ĠN aming", + "ĠNa ming", + "ĠNam ing", + "ag ged", + "agg ed", + "ĠG ANG", + "ĠGA NG", + "r asing", + "ra sing", + "ras ing", + "od eled", + "ode led", + "odel ed", + "Ġg ala", + "Ġga la", + "Ġgal a", + "ĠJS Name", + "d df", + "dd f", + "Ġil lust", + "Ġill ust", + "ĠLan sing", + "ĠLans ing", + "[ port", + "[p ort", + "- death", + "-de ath", + "Ġdin heiro", + "ĠE ighth", + "ĠEight h", + "Ġ bian", + "Ġb ian", + "Ġbi an", + "st Ã¥", + "Ġvers ión", + "ĠLinear Gradient", + "ĠH arding", + "ĠHar ding", + "ĠHard ing", + ". *)", + ".* )", + "e czy", + "ec zy", + "ecz y", + "$ header", + "Ġv Ã¥r", + "ĠvÃ¥ r", + "Un checked", + "Ġk oje", + "Ġko je", + "ĠPal adin", + "( ))),", + "() )),", + "()) ),", + "())) ,", + "G iving", + "Gi ving", + "( )})Ċ", + "() })Ċ", + "()} )Ċ", + "Ġd ips", + "Ġdi ps", + "Ġdip s", + "F riendly", + "Friend ly", + "Ġport rays", + "Ġportray s", + "Ġhel ium", + "Ġinsurg ency", + "_ expiry", + "_ex piry", + "_exp iry", + "ĠstringByAppending String", + "Ġa antal", + "Ġaan tal", + "s lope", + "sl ope", + "m ast", + "ma st", + "mas t", + ".get Integer", + ".getInt eger", + "Ġ ########################", + "Ġ######## ################", + "Ġ################ ########", + "Ġ############ ############", + "_PIPE LINE", + "Ġd ensely", + "Ġdense ly", + "Ġdens ely", + "Ġmut ating", + "m idi", + "mi di", + "mid i", + "ĠSe it", + "a yne", + "ay ne", + "NOW LED", + "ĠDes mond", + "ĠF Name", + "ĠFN ame", + "ĠN airobi", + "\\ Context", + "Ġcal cular", + "Ġcalcul ar", + "Ġcalc ular", + "- den", + "-d en", + "-de n", + "Ġ cott", + "Ġc ott", + "Ġco tt", + "Ġcot t", + "] ):čĊ", + "]) :čĊ", + "]): čĊ", + "ĠRecommend ation", + "ĠRo lex", + "ĠRole x", + "ĠRol ex", + "Ġvalidation Result", + ". pat", + ".p at", + ".pa t", + "Ġn Ãły", + "ĠRest Client", + "ĠG PI", + "ĠGP I", + "ĠAshe ville", + "Ġ OSP", + "ĠO SP", + "ĠOS P", + "ĠPER MISSION", + "ÐĶ аÑĤа", + "/ notification", + "/not ification", + "K night", + "Kn ight", + "_ Word", + "_W ord", + "ĠB ender", + "ĠBe nder", + "ĠBen der", + "ĠBend er", + "r anking", + "ran king", + "rank ing", + "Ġpart ida", + "Ġparti da", + "_ reservation", + "_res ervation", + "Ì Ģ", + "Ġm Name", + "Ġg etch", + "Ġget ch", + "Ġb orr", + "Ġbo rr", + "Ġbor r", + "Ġdilig ent", + "Disc uss", + "æŃ£ åľ¨", + "ape ake", + "i oned", + "ion ed", + "io ned", + "ione d", + "-N azi", + ". cum", + ".c um", + "ĠK ron", + "ĠKr on", + "ĠKro n", + "= $('#", + "=$ ('#", + "=$( '#", + "/ single", + "/s ingle", + "Ġerot isch", + "ĠV ib", + "ĠVi b", + "Ġrat ified", + "Ġconcert ed", + "ĠREG ARD", + "Ġdo br", + "Ġdob r", + ".Driver Manager", + "' r", + "Port able", + "Por table", + "ĉ suite", + "ĉs uite", + "Ġrel aciones", + "Ġrelacion es", + "ĠD op", + "ĠDo p", + "emp loi", + "empl oi", + "emplo i", + "D OB", + "DO B", + "Ġcr umbs", + "Ġ xls", + "Ġx ls", + "Ġxl s", + "_ Application", + "_App lication", + "(' :',", + "(': ',", + "Ġ-- ----------------------------------------------------------------------Ċ", + "Ġ---------------------------------------------------------------- --------Ċ", + "Ġ------------------------------------------------------------ ------------Ċ", + "m se", + "ms e", + "Ġb erk", + "Ġbe rk", + "Ġber k", + "Ġ ReturnValue", + "ĠReturn Value", + "ĠB elly", + "ĠBel ly", + "ĠBell y", + "Ġc amar", + "Ġca mar", + "Ġcam ar", + "ĠPe ek", + "ĠPee k", + "el sing", + "els ing", + "Ġnot ifies", + "ĠTr istan", + "ĠTri stan", + "ĠG AR", + "ĠGA R", + "em me", + "emm e", + "ĠElev ated", + "_ CSV", + "_C SV", + "_CS V", + "( chalk", + "(ch alk", + "Ġtw enties", + "ĠSearch Result", + "= search", + "=s earch", + "ĠMix ing", + "ĠMi xing", + "ý t", + "Ġrecru iter", + "Ġrecruit er", + "ĠIDE OGRAPH", + "ĠA go", + "ĠAg o", + "( Operation", + "(O peration", + "(Op eration", + "$ values", + "$value s", + "$val ues", + "Ġworld ly", + "ĠRos enberg", + "ĠRosen berg", + "ĠConfigure Services", + "> ** Ċ", + "...\" >Ċ", + "Ġsn ork", + "Ġsno rk", + "_ opacity", + "_op acity", + "ĠinitWith NibName", + "i ado", + "ia do", + "iad o", + "A AC", + "AA C", + "Ġ ]).", + "Ġ] ).", + "Ġ]) .", + "; z", + "_ paragraph", + "_par agraph", + "_para graph", + "Ġn oses", + "Ġno ses", + "Ġnos es", + "Ġnose s", + "st ands", + "stand s", + "sta nds", + "stan ds", + "i fr", + "if r", + "_m E", + "I raq", + "Ir aq", + ". Predicate", + ".P redicate", + "e naire", + "en aire", + "ena ire", + "] ]];Ċ", + "]] ];Ċ", + "Ġ unidad", + "Ġun idad", + "Ġuni dad", + "Ġretire es", + "Ġretir ees", + "_ hello", + "_h ello", + "Ġ modele", + "Ġmod ele", + "Ġmodel e", + "Ġmode le", + "ĠUITableView Controller", + "ĠUIT ableViewController", + "f write", + "fw rite", + "_ numero", + "_num ero", + "_numer o", + "_ visited", + "_vis ited", + "_visit ed", + "Ġrec ebe", + "Ġrece be", + "( Notification", + "Fant astic", + "_ submenu", + "_sub menu", + "ĠP EM", + "ĠPE M", + "ĠC upertino", + "ĠCup ertino", + "approx imately", + "cl assed", + "class ed", + "clas sed", + ".Read String", + "Ġdomic ile", + "_ PW", + "_P W", + "Ġball park", + "ĠK ale", + "ĠKa le", + "ĠKal e", + "con tra", + "cont ra", + "contr a", + "_ favorite", + "_f avorite", + "/ of", + "/o f", + "Q uite", + "Qu ite", + "Quit e", + "Qui te", + "Ġ OTA", + "ĠO TA", + "ĠOT A", + "Ġacceler ometer", + "di dn", + "did n", + "| ^", + "ĠRohing ya", + "ivi crm", + "ivic rm", + "ann abin", + "anna bin", + "обÑĭ ÑĤи", + "o rado", + "or ado", + "ora do", + "' )+", + "') +", + "Ha unted", + ", ID", + ",I D", + "( UIAlertAction", + "u rv", + "ur v", + "_ bel", + "_b el", + "_be l", + "ĠMex icans", + "ĠMexican s", + "/ terms", + "Ġ Painter", + "ĠP ainter", + "ĠPa inter", + "ĠPaint er", + "ĠPain ter", + "Input Label", + "ĠV inci", + "ĠVin ci", + "ĠRo sie", + "ĠRos ie", + "\\ uc", + "\\u c", + "< Menu", + "", + "Ġ'\" >", + "_ gs", + "_g s", + "Ġcomp il", + "n ard", + "na rd", + "nar d", + "- exc", + "-e xc", + "-ex c", + "Ġrh yme", + "Ġb utto", + "Ġbut to", + "Ġbutt o", + "s ays", + "sa ys", + "say s", + "ant asy", + "anta sy", + "antas y", + "ë ¸", + "Ġcitt Ãł", + "Ġch eg", + "Ġche g", + "Time String", + "Ġpos itivity", + "Ġposit ivity", + "ĠD abei", + "ĠDa bei", + "Ġ wang", + "Ġw ang", + "Ġwa ng", + "Ġwan g", + "Ġes cre", + "Ġesc re", + "\" c", + "ĉ video", + "ĉv ideo", + "Ġ Ranked", + "ĠR anked", + "ĠRank ed", + "ĠRan ked", + ". strings", + ".string s", + ".str ings", + "> >>(", + ">> >(", + ">>> (", + "Ġин ÑĤеÑĢ", + "ĠинÑĤ еÑĢ", + "Ġre sta", + "Ġr esta", + "Ġres ta", + "Ġrest a", + "[: ,:", + "[:, :", + "Ġren dre", + "Ġrend re", + "Ġde ser", + "Ġdes er", + "Ġdese r", + "J os", + "Jo s", + "Ġdis ruptions", + "Ġdisrupt ions", + "Ġdisruption s", + "Ġо пеÑĢ", + "Ġоп еÑĢ", + "s ampling", + "sam pling", + "samp ling", + "sup press", + "Ġcontainer View", + "ĠSeam less", + "Ġ airy", + "Ġa iry", + "Ġair y", + "Ġai ry", + "Ġon load", + ".Window Manager", + "ĠP LA", + "ĠPL A", + "br aco", + "bra co", + ".set PositiveButton", + "Ġp du", + "Ġpd u", + "Ġg si", + "Ġgs i", + "Ġ Cli", + "ĠC li", + "ĠCl i", + "_gr adients", + "_grad ients", + "_gradient s", + "Ñı д", + "ĠWh isper", + "c stdint", + "Ġl äng", + "Ġlä ng", + "Ġform ulations", + "Ġformulation s", + "Ġformul ations", + "é nom", + "én om", + "ourn emouth", + "[ $_", + "[$ _", + "Ġordin arily", + ".set Username", + ".setUser name", + "Ġfacult ies", + "MIT TED", + "/ values", + "/value s", + "Ġwe ir", + "Ġwei r", + "ĠA pt", + "ĠAp t", + "M Z", + "ĉ cf", + "ĉc f", + "u cken", + "uc ken", + "uck en", + "ĉ ĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉ ĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉ ĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉ ĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉ ĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉ ĉĉĉĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉ ĉĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉ ĉĉĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉ ĉĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉ ĉĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉ ĉĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉĉ ĉĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉĉĉ ĉĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉĉĉĉ ĉĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉ ĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉ ĉĉĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉ ĉĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉ ĉĉ", + "ĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉĉ ĉ", + "def ense", + "[ iVar", + "[i Var", + "ĠBusiness Exception", + "Select ors", + "Selector s", + "Sel ectors", + "Sele ctors", + "( coordinates", + "(co ordinates", + "ĠRe sets", + "ĠRes ets", + "ĠReset s", + "ĠDr inks", + "ĠDrink s", + "o leans", + "ole ans", + "olean s", + "(st ypy", + "_ IOC", + "_I OC", + "_IO C", + ". xxx", + ".x xx", + ".xx x", + "ĠS later", + "ĠSl ater", + "ĠSlate r", + "ĠB elize", + "ĠBel ize", + "Ġ /************************************************************************", + "Ġ/ ************************************************************************", + "Ġ/**************************************************************** ********", + "ad din", + "add in", + "_ep isodes", + "_episode s", + "Ġis chem", + "Ġisc hem", + "legal ArgumentException", + "D anny", + "Dan ny", + "Ġ pared", + "Ġp ared", + "Ġpar ed", + "Ġpa red", + "Ġpare d", + ".code haus", + "ĠAs sy", + "ĠAss y", + "ĉ Rect", + "ĉR ect", + "â ŀ", + ". lista", + ".l ista", + ".list a", + ".li sta", + "Ġв аÑĪ", + "Ġва ÑĪ", + "Ġv ets", + "Ġve ts", + "Ġvet s", + "H WND", + "HW ND", + "is oner", + "ison er", + "iso ner", + "Ġ xo", + "Ġx o", + "Ġor ally", + "Ġoral ly", + "Ġ Stmt", + "ĠSt mt", + ".r nn", + "ĠD PI", + "ĠDP I", + "ĠSt rikes", + "ĠStr ikes", + "ĠStrike s", + ".setViewport View", + "Ġèĩª åĬ¨çĶŁæĪIJ", + "Y ELLOW", + "GL enum", + "part ners", + "partner s", + "Ġ Implicit", + "ĠImp licit", + "ĠImpl icit", + "Ġt ako", + "Ġta ko", + "Ġtak o", + "âĢĻ elle", + "âĢĻe lle", + "Ġerm ög", + "total Count", + "G il", + "Gi l", + "ĉ work", + "ĉw ork", + "Ġpr atic", + "Ġpra tic", + "Ġprat ic", + "in ati", + "ina ti", + "a bies", + "ab ies", + "abi es", + "ĠSk inner", + "ĠSkin ner", + "Ġspirit ed", + "Ġspir ited", + "Ġpancre atic", + "Ġh df", + "Ġhd f", + "' em", + "'e m", + "Ġpsych osis", + "Ġpsycho sis", + "o licit", + "ol icit", + "olic it", + "oli cit", + "Ġ\" {\"", + "Ġ\"{ \"", + "_at ual", + "_a tual", + "Ġé lect", + "Ġél ect", + "TE AM", + "Ġd ak", + "Ġda k", + "ĠSW AT", + ". FragmentManager", + ".Fragment Manager", + "Ġprovision ing", + "l ifetime", + "life time", + "lif etime", + "_EXT ENSIONS", + "_EXTENSION S", + "Ġ CASCADE", + "ĠC ASCADE", + "ĠCAS CADE", + "Ġ ![", + "Ġ! [", + "( KP", + "(K P", + "Ġ vem", + "Ġv em", + "Ġve m", + "ĠInter racial", + "ĠInterr acial", + "' ]},Ċ", + "'] },Ċ", + "']} ,Ċ", + "sp acer", + "space r", + "spa cer", + "_ kv", + "_k v", + "W arehouse", + "Ware house", + "R DD", + "RD D", + "_f sm", + "_fs m", + ".Stretch Image", + ", Yes", + ",Y es", + "ĠRefuge e", + "ĠBr inging", + "ĠBring ing", + "Ġv álido", + "Ġvál ido", + ". intersection", + ".inter section", + "Ġsp ooky", + "Ġspo oky", + "_ portal", + "_p ortal", + "_port al", + "_por tal", + "Ġ moth", + "Ġm oth", + "Ġmot h", + "Ġmo th", + "ĠZ odiac", + "ĠSOC IAL", + "M imeType", + "'] }}", + "Ġ----- ->", + "Ġ------ >", + "_ Blue", + "_B lue", + "_Bl ue", + "Ġbot anical", + "Ġfr ags", + "Ġfra gs", + "Ġfrag s", + "Ġfamil ial", + "Ġfamilia l", + "- du", + "-d u", + "Ġse izing", + "Ġseiz ing", + "Ġsei zing", + "( blocks", + "(b locks", + "(block s", + "(bl ocks", + ". rd", + ".r d", + ".check NotNull", + "Ġm iser", + "Ġmis er", + "Ġmi ser", + "Ġmise r", + "Ġmax x", + "Ġma xx", + "ĠK nee", + "ĠKn ee", + "View Item", + "Inner HTML", + "D anger", + "Da nger", + "Dan ger", + "( (__", + "(( __", + "((_ _", + "Ġprz ypad", + "Ġprzy pad", + "create Url", + "* *,", + "** ,", + "ĠDecor ating", + "ATE GY", + "ATEG Y", + "? >/", + "?> /", + ". Designer", + ".Des igner", + ".Design er", + "hex digest", + "ĠEvery where", + "all eries", + "alle ries", + "aller ies", + ".TEXT URE", + ". Blocks", + ".B locks", + ".Bl ocks", + ".Block s", + "z ell", + "ze ll", + "zel l", + "Ġpre ço", + "S uddenly", + "input Email", + "( sync", + "(s ync", + ". bd", + ".b d", + "gold en", + "> ');", + ">' );", + ">') ;", + "ĠDick inson", + "> >(Ċ", + ">> (Ċ", + ">>( Ċ", + "Ġ QUEUE", + "ĠQUE UE", + "Ġ getColumn", + "Ġget Column", + "ĠgetC olumn", + "ĠS AND", + "ĠSA ND", + "ĠSAN D", + ". piece", + ".p iece", + ".pi ece", + "l icer", + "lic er", + "li cer", + "lice r", + "Fl utter", + "Ġget Version", + "Ġresource Id", + "o gl", + "og l", + "ÅĤ aw", + "ÅĤa w", + ". Branch", + ".Br anch", + "ĉ web", + "ĉw eb", + "Ġfr amerate", + "Ġframe rate", + "Ġfram erate", + "P PP", + "PP P", + "Ġf ray", + "Ġfr ay", + "Ġfra y", + "C NT", + "CN T", + "Ġinform atie", + "Ġinformat ie", + "' ]čĊčĊ", + "'] čĊčĊ", + "']čĊ čĊ", + "ne as", + "nea s", + "Header Code", + "Ġ æ¸", + "Ġæ ¸", + "Ġt rg", + "Ġtr g", + "raw types", + "H onda", + "Ho nda", + "Hon da", + "Ġmark eter", + "Ġmarket er", + "Ġ requestData", + "Ġrequest Data", + "Ġ Pg", + "ĠP g", + "ĉ not", + "ĉn ot", + "ĉno t", + "Ġpage Info", + "Ġakt uellen", + "Ġaktu ellen", + "ãģ ķãĤĵ", + "ãģķ ãĤĵ", + "Ġ AMS", + "ĠA MS", + "ĠAM S", + "push ViewController", + "ĉ AL", + "ĉA L", + "Ġv ests", + "Ġve sts", + "Ġvest s", + "Ġves ts", + "p roduce", + "pro duce", + "produ ce", + "prod uce", + "-m ême", + "ĠRah man", + "F unny", + "Fun ny", + "E Z", + "_ Valid", + "_Val id", + "Ġsquad ron", + "Ġ lash", + "Ġl ash", + "Ġla sh", + "Ġlas h", + "Ġ irm", + "Ġi rm", + "Ġir m", + "i asco", + "ias co", + "ĠP aran", + "ĠPar an", + "ĠPa ran", + "ĠPara n", + "Ġpet ites", + "Ġpetite s", + "Ġpetit es", + "ĠDec ay", + "Ġun initialized", + "priv ileged", + "Ġm bedtls", + "å¤ĩ 注", + "Ġ ^.", + "Ġ^ .", + "Ġec static", + "D etroit", + "Det roit", + "Ġp arten", + "Ġpart en", + "Ġpar ten", + "Ġparte n", + "Ġsou venir", + ".get Login", + ".getLog in", + "моÑĤ ÑĢ", + "мо ÑĤÑĢ", + "en ção", + "ĠmÃŃn imo", + "ĠAccess ed", + "ĠAcc essed", + "r ió", + "ri ó", + "M ic", + "Mi c", + "ĠV ocal", + "ĠVo cal", + "ĠVoc al", + ".Set String", + "Ġmens ajes", + "Ġmensaje s", + "åĢ į", + "Ġattr avers", + "ĠA ph", + "ĠAp h", + "Ġ ');čĊ", + "Ġ' );čĊ", + "Ġ') ;čĊ", + "Ġ'); čĊ", + "ü nde", + "ün de", + "ünd e", + "Ġenchant ed", + "Ġench anted", + "ĠRoot State", + "ĠCLOSE D", + "ĉ ĉĉĉĉĉĉĉčĊ", + "ĉĉ ĉĉĉĉĉĉčĊ", + "ĉĉĉĉ ĉĉĉĉčĊ", + "ĉĉĉ ĉĉĉĉĉčĊ", + "ĉĉĉĉĉ ĉĉĉčĊ", + "ĉĉĉĉĉĉ ĉĉčĊ", + "ĉĉĉĉĉĉĉĉ čĊ", + "ĉĉĉĉĉĉĉ ĉčĊ", + "Ġcal iente", + "or ris", + "orr is", + "Ġphysic ists", + "Ġphysicist s", + "h wnd", + "hw nd", + "_ vi", + "_v i", + "Ġráp ido", + "Ġcapital ized", + "Ġcapitalize d", + "ed By", + "Ġmach ining", + "Ġh ubby", + "Ġhub by", + "ĠSt acy", + "ĠSta cy", + ". Bus", + ".B us", + "d rink", + "dr ink", + "H ur", + "Hu r", + "Ġpr opia", + "Ġprop ia", + "Unit Test", + "Ġmiscon ception", + "_ _));Ċ", + "__ ));Ċ", + "__) );Ċ", + "__)) ;Ċ", + "/ dc", + "/d c", + "ĠMay weather", + "_m C", + ". createFrom", + ".create From", + "ĠQ Painter", + "ro psych", + "rops ych", + "inn itus", + "a yas", + "ay as", + "aya s", + "Ġg eg", + "Ġge g", + "( dw", + "(d w", + "Ġus ado", + "Ġusa do", + "Ġtr ickle", + "Ġtrick le", + "Ġann ihil", + "Ġanni hil", + "ĠP asta", + "ĠPa sta", + "ĠPast a", + "ĠPas ta", + "Ġ ++Ċ", + "Ġ+ +Ċ", + "Ġ++ Ċ", + "(Expected Conditions", + ".post Value", + "i cap", + "ic ap", + "ica p", + "ĠDon etsk", + "_ soup", + "_s oup", + "_so up", + "- publish", + "-p ublish", + "ĠP b", + "m entions", + "ment ions", + "mention s", + "AC CEPT", + ". Pull", + ".P ull", + ", âĢĻâĢĻ", + ",âĢĻ âĢĻ", + "Ġret arded", + "Ġretard ed", + "_ ATOM", + "_AT OM", + "ĠTerm inator", + "ĠTermin ator", + "- court", + "-c ourt", + "-co urt", + "ĠCLLocation Coordinate", + "Ġrev erence", + "Ġreve rence", + "Ġrever ence", + "ĠS SC", + "ĠSS C", + "ut ely", + "ute ly", + "ĠW ON", + "ĠG SL", + "ĠGS L", + "f rei", + "fr ei", + "fre i", + ".get Longitude", + ".getLong itude", + "Ġopen FileDialog", + ".B utter", + ".But ter", + "- important", + "-import ant", + "_M ANY", + "_MAN Y", + "_MA NY", + "ĠG ong", + "ĠGo ng", + "ĠGon g", + "âĢľ How", + "Ġg orge", + "Ġgor ge", + "= msg", + "=m sg", + "ĠE zek", + "ĠEz ek", + "create Command", + ": checked", + "Ġinfo graphic", + "Ġinf ographic", + ". WEST", + ".W EST", + "D irs", + "Dir s", + "Di rs", + "Ġgu arda", + "Ġguard a", + "Ġguar da", + "Ġbee tle", + "Ġbeet le", + "< small", + " Loading", + "_ mA", + "_m A", + ".get Random", + "b lings", + "bl ings", + "bling s", + "Ġche eses", + "Ġcheese s", + "Ġchees es", + "t ti", + "tt i", + ". âĢ¢", + "ĠBurg ess", + "ender it", + "ende rit", + ". ',čĊ", + ".' ,čĊ", + ".', čĊ", + "(\" \"+", + "(\"\" +", + "a cb", + "ac b", + "% p", + "index ed", + "inde xed", + "_ predicate", + "_p redicate", + "_pred icate", + "nes ia", + "Ġb ied", + "Ġbi ed", + "ĠC IT", + "ĠCI T", + "( Pos", + "(P os", + "_ radi", + "_r adi", + "_rad i", + "_ra di", + "ä»· æł¼", + "B iz", + "Bi z", + "ĠAdoles cent", + "Ġv iên", + "Ġvi ên", + "c ycl", + "cy cl", + "_ Cancel", + "_C ancel", + "Ġcon clusive", + "Ġconclus ive", + "Ġconcl usive", + "Ġappell ate", + "Ġappel late", + "inform atics", + "S J", + "Ġel ective", + "Ġelect ive", + "role Id", + "Fetch er", + "ĉ Command", + "(\" (%", + "(\"( %", + "Ġf art", + "Ġfa rt", + "Ġfar t", + "I LA", + "IL A", + "get Block", + "A USE", + "AU SE", + "Ġ дан", + "Ġд ан", + "Ġда н", + "ĠAr te", + "ĠArt e", + "Ġnot ifying", + "Ġnotify ing", + "Ġg ele", + "Ġge le", + "Ġgel e", + ". same", + ".s ame", + ".sa me", + ".sam e", + "ĠRe gel", + "ĠReg el", + "Ġ BaÅŁ", + "ĠB aÅŁ", + "ĠBa ÅŁ", + ". creation", + ".c reation", + "Ġ VN", + "ĠV N", + "_ community", + "_comm unity", + "Ġuns ustainable", + "S EX", + "SE X", + "Ġgrid Size", + "res cia", + "avers able", + "(', ')[", + "(',' )[", + "(',') [", + "ĠPh elps", + "á»ķ i", + "ANCE LED", + "ANCEL ED", + "- IS", + "-I S", + ".run ners", + ".runner s", + "ĠSt okes", + "ĠSto kes", + "ĠStoke s", + ". Produ", + ".P rodu", + ".Pro du", + ".Pr odu", + "Ġwh ipping", + "Ġwhip ping", + "_ac quire", + "Ġinvestig ación", + "f ried", + "fr ied", + ".copy With", + "ĠHard cover", + "- Se", + "-S e", + "áŀ¶ áŀ", + "inv itation", + "les ai", + "ĠD orm", + "ĠDo rm", + "ĠDor m", + "ĠÑģпиÑģ ка", + "Ġconcaten ated", + "Ġconcatenate d", + "o phil", + "op hil", + "oph il", + "Ġth inker", + "Ġthink er", + "Ġthin ker", + "/font awesome", + "ĠLe opard", + "ĠLeo pard", + "Ġ\" /\");Ċ", + "Ġ\"/ \");Ċ", + "Ġ\"/\" );Ċ", + "Ġresidual s", + "ĠMicro wave", + "ĠMic rowave", + "Ġcon forme", + "Ġconform e", + "th rop", + "thr op", + "thro p", + "Ġdis emb", + "Ġdi semb", + "Ġdise mb", + "ĠO MG", + "ĠOM G", + "ĠDisc ipline", + "ĠAc robat", + "/ repository", + "/re pository", + "/repos itory", + "d fa", + "df a", + "_ MED", + "_M ED", + "_ME D", + "buf io", + "Ġméth ode", + "_H OLD", + "i asi", + "ia si", + "ias i", + "_ legacy", + "_leg acy", + ") ččĊ", + "æ£ Ģ", + "Get ProcAddress", + "Ġy ay", + "Ġya y", + "ot ence", + "ote nce", + "oten ce", + "order id", + "orde rid", + "- tw", + "-t w", + "Ġd early", + "Ġdear ly", + "In coming", + "Inc oming", + "/ il", + "/i l", + "Ġneuro p", + "Ġneu rop", + "Ġneur op", + "u cz", + "uc z", + ") ;čččĊ", + "); čččĊ", + "ĠInnov ative", + "Ġpro fund", + "Ġprof und", + "ig mat", + "igma t", + "igm at", + "Selection Mode", + "re levant", + ". GO", + ".G O", + "Ġbru ises", + "Ġs ach", + "Ġsa ch", + "Ġsac h", + "o def", + "od ef", + "ode f", + "Ġre imb", + "Ġreim b", + "/ desktop", + "/d esktop", + "- spot", + "-s pot", + "-sp ot", + "un dance", + "und ance", + "unda nce", + "undan ce", + "Ent ropy", + "Entr opy", + "\\ core", + "Ġs uger", + "Ġsu ger", + "Ġsug er", + "Ġ Mvc", + "ĠM vc", + "ĠGN OME", + "_ indx", + "_in dx", + "_i ndx", + "_ind x", + "ĠYY STYPE", + "ĠYYS TYPE", + "ĠMat lab", + "ĠC IF", + "ĠCI F", + "Ġ *))", + "Ġ* ))", + "Ġ*) )", + "Ġproduct List", + "Ġ Alright", + "ĠAl right", + "ace mark", + "ac emark", + "ÑĤ ив", + "ÑĤи в", + "mod ification", + "int ernational", + "inter national", + "intern ational", + "Ġh omers", + "Ġhome rs", + "Ġhom ers", + "Ġho mers", + "Ġhomer s", + "Ġd icts", + "Ġdi cts", + "Ġdict s", + "Ġdic ts", + "ĠQ Font", + ". SQLite", + ".SQL ite", + "Ġtransplant ation", + "ĠMessageBox Button", + "ĠEl ves", + "' ]])Ċ", + "'] ])Ċ", + "']] )Ċ", + "(Q Icon", + "Ġcin emas", + "Ġcinema s", + "Ġcine mas", + "CO ORD", + "- China", + "-Ch ina", + "Ġkh ẩu", + "æĪij çļĦ", + "Ġsk ulls", + "Ġskull s", + "Ġpain staking", + "Ġpains taking", + "f ce", + "fc e", + ".XR Label", + "Ġ specifier", + "Ġspec ifier", + "Ġprefer ring", + "Ġpref erring", + "/ activity", + "( Photo", + "á lt", + "ál t", + ". lot", + ".l ot", + ".lo t", + "' '.", + "'' .", + "an nonce", + "ann once", + "annon ce", + "anno nce", + ".google code", + "- pdf", + "-p df", + "ĠP oke", + "ĠPo ke", + "ĠPok e", + "_ ACL", + "_A CL", + "_AC L", + "Ġend owed", + "dis cover", + "disc over", + ".o mg", + ".om g", + "Ġwood land", + ". Magic", + ".M agic", + "Ġvol ont", + "Not Allowed", + "Ġc have", + "Ġch ave", + "Ġcha ve", + "B MW", + "BM W", + "',' =',", + "','= ',", + "ĠS IX", + "ĠSI X", + "æĪij 们", + "Ġko sher", + "Ġkos her", + "Ġas piration", + "Ġaspir ation", + "Ġasp iration", + "i ntl", + "in tl", + "int l", + "_ref ptr", + "' +Ċ", + "'+ Ċ", + "ment or", + "men tor", + ". club", + ".c lub", + ".cl ub", + "Window State", + ". ARR", + ".A RR", + ".AR R", + "Ġ zza", + "Ġz za", + "Ġzz a", + "Ġmessage Type", + ". equ", + ".e qu", + ".eq u", + "T hor", + "Th or", + "Tho r", + "Ġin just", + "Ġinj ust", + "Ġg ums", + "Ġgu ms", + "Ġgum s", + "Ġborder Side", + "/ ////", + "// ///", + "//// /", + "/// //", + "ĠTrans mit", + "Ġbuf size", + "Ġh ak", + "Ġha k", + "Ġ ellas", + "Ġel las", + "Ġell as", + "Ġella s", + "R ANDOM", + "RAND OM", + "ĉ mc", + "ĉm c", + "Ġp ea", + "Ġpe a", + "e ko", + "ek o", + "document o", + "Ġhyster ia", + "Ġare nas", + "Ġar enas", + "Ġaren as", + "Ġarena s", + "Ġgun men", + "Ġm ike", + "Ġmi ke", + "Ġmik e", + "Ġimp unity", + "at isation", + "atis ation", + "_ Zero", + "_Z ero", + "_COMP ANY", + "ĠG ors", + "ĠGo rs", + "ĠGor s", + "Ġuse Class", + "( redis", + "(r edis", + "(re dis", + "(red is", + "ĠRUN NING", + "ĠB air", + "ĠBa ir", + "ĠBai r", + "ve lte", + "vel te", + "velt e", + "Ġ ','.", + "Ġ', '.", + "Ġ',' .", + "а ÑĤÑĮÑģÑı", + "аÑĤÑĮ ÑģÑı", + "ö st", + "ös t", + "encode URIComponent", + "_ restrict", + "_re strict", + "Ġdec als", + "Ġ Pedido", + "ĠP edido", + "ĠPed ido", + "Ġalter cation", + "Dis plays", + "Display s", + "Disp lays", + "ĠApp licants", + "ĠApplicant s", + "C US", + "CU S", + "Text area", + "ĠAng ola", + ". future", + ".f uture", + "ĠU SHORT", + "ĠUS HORT", + "Ġsuppress ing", + "Ġsupp ressing", + "Ġset zen", + "AP olynomial", + "Ġt och", + "Ġto ch", + "Ġtoc h", + "Ġhall mark", + "Ġ $$$", + "Ġ$ $$", + "Ġ$$ $", + "ĠCHAR SET", + ". rpm", + ".r pm", + "ĠD ich", + "ĠDi ch", + "---- ----------------", + "-------- ------------", + "---------------- ----", + "------------ --------", + "----- ---------------", + "---------- ----------", + "------ --------------", + "----------- ---------", + "------------- -------", + "------- -------------", + "--------- -----------", + "--------------- -----", + "-------------- ------", + "_ parm", + "_p arm", + "_par m", + "_pa rm", + "è¿ ĺ", + "a cciones", + "acc iones", + "acci ones", + "accion es", + "h ait", + "ha it", + "hai t", + "WARD ED", + "WAR DED", + "_ routing", + "_r outing", + "_ro uting", + "ĠN OM", + "ĠNO M", + "Ġen clave", + "ĠL otto", + "ĠLot to", + "ĉ fr", + "ĉf r", + "complex Content", + "ĠBall ard", + "k ube", + "ku be", + "/ win", + "/w in", + ".getColumn Model", + "_RE PLACE", + "Header Value", + "Ġest udiantes", + "Ġ apis", + "Ġa pis", + "Ġap is", + "Ġapi s", + "Ġb pm", + "Ġbp m", + "Ġ TypeName", + "ĠType Name", + "And Get", + "r ita", + "ri ta", + "rit a", + "Pl ans", + "Plan s", + "> Note", + ">N ote", + ">No te", + "Ġfet isch", + "Ġt oned", + "Ġto ned", + "Ġton ed", + "Ġtone d", + "_ goto", + "_g oto", + "_go to", + "on sense", + "ons ense", + "Ġm olds", + "Ġmo lds", + "Ġmol ds", + "Ġmold s", + "Ġinfiltr ation", + "ĠGuerr ero", + "ub bo", + "ubb o", + "c ki", + "ck i", + "( $(\".", + "($ (\".", + "($( \".", + "_ activities", + "_act ivities", + "_activ ities", + "( changes", + "(ch anges", + "(chan ges", + "(change s", + "Ġof App", + "ĠKe pler", + "ĠD emp", + "ĠDe mp", + "ĠDem p", + "ĠCont inent", + "ĠContin ent", + ". Ticks", + ".T icks", + ".Tick s", + "Ġ Unsigned", + "ĠUn signed", + "ĠUns igned", + "ĠJah res", + "ĠJahr es", + "ĠJahre s", + "Ġfresh men", + "ĠArch ived", + "ĠArchive d", + "ĠкоÑĤоÑĢ Ñĭй", + "Ġ' ::", + "Ġ': :", + "T utorial", + "C c", + "Ġtable LayoutPanel", + "from Json", + ". levels", + ".level s", + "_trans ient", + "Ġendors ing", + "Ġ DIC", + "ĠD IC", + "ĠDI C", + "l auf", + "la uf", + "Ġsh red", + "Ġshr ed", + "_E MIT", + "_EM IT", + "ific antly", + "ificant ly", + "A LA", + "AL A", + "/ proto", + "/pro to", + "/pr oto", + "Ġnarr owing", + "Ġnarrow ing", + "Ġnar rowing", + "U tc", + "Ut c", + "F actors", + "Fact ors", + "Factor s", + "Fac tors", + "Fa ctors", + "Ġsent ient", + "æŀ IJ", + "lix ir", + "ĠC ROSS", + "m eteor", + "met eor", + "Ġgr oin", + "Ġgro in", + "Ġ mdb", + "Ġm db", + "Ġmd b", + "ĠRot terdam", + "Ġcom ida", + "ĠOp Code", + "Ġ DefaultValue", + "ĠDefault Value", + "Permissions Result", + "Ġheter ogeneous", + "Ġm oot", + "Ġmo ot", + "Ġmoo t", + "Ġde ceived", + "Ġdece ived", + "Ġdeceive d", + "-in dependent", + "ĠObject OutputStream", + "Ġover power", + ". dup", + ".d up", + "Ġ ldb", + "Ġl db", + "Ġld b", + "Ġdomestic ally", + "Ġdomest ically", + "Ġbe stellen", + "Ġbest ellen", + "Ġbeste llen", + "Ġ lov", + "Ġl ov", + "Ġlo v", + "ĠContract ors", + "ĠContr actors", + "ĠContractor s", + "Tri angles", + "Triangle s", + "Ġfod der", + "Ġfil mes", + "Ġfilm es", + "Ġfilme s", + "ä¼ ģ", + "Ġrev olver", + "Startup Script", + "/ validation", + "ĠResource Type", + "i ÅŁ", + "ĠL az", + "ĠLa z", + "f ef", + "fe f", + "Ġl stm", + "Ġlst m", + "Ġls tm", + "{ *", + ". attachment", + ".attach ment", + ".att achment", + ". hits", + ".h its", + ".hit s", + "e with", + "ew ith", + "D OG", + "DO G", + "Al abama", + "Ġmedium s", + "Ġmedi ums", + ".m Context", + "- cols", + "-c ols", + "-col s", + "-co ls", + "åı ĭ", + ". notice", + ".not ice", + "Ġat tn", + "Ġatt n", + "ĠP acking", + "ĠPac king", + "ĠPack ing", + "Ġ Ln", + "ĠL n", + "_COM PLEX", + "_COMP LEX", + "/ Users", + "/User s", + ".save txt", + ".sav etxt", + "ĠR ounds", + "ĠRo unds", + "ĠRound s", + "ĠRou nds", + "?,?, ?,?,", + "Ġin gl", + "Ġing l", + "Ġ ROC", + "ĠR OC", + "ĠRO C", + "_ female", + "_f emale", + "_fe male", + "ĠSt ard", + "ĠStar d", + "ĠSta rd", + "] ];", + "]] ;", + "Ġwrest lers", + "Ġwrestler s", + "Ġtorrent s", + "Ġs inh", + "Ġsi nh", + "Ġsin h", + " ĊĊ", + "Ċ Ċ", + "ë³ µ", + "s ense", + "sen se", + "how ever", + ". Physics", + ".Ph ysics", + "Inf rastructure", + "ĠS acr", + "ĠSa cr", + "ĠSac r", + "F el", + "Fe l", + "ĠD ISTRIBUT", + "é ments", + "ém ents", + "ément s", + "ĠValid ates", + "ĠValidate s", + "#### ########################################################", + "################################ ############################", + "############ ################################################", + "################################################ ############", + "############################ ################################", + "######################################################## ####", + "Ġ |/", + "Ġ| /", + "Ġe sl", + "Ġes l", + "Ġré seau", + "ĠB ip", + "ĠBi p", + "BY TES", + "BYTE S", + "_W ATER", + "T urning", + "Turn ing", + "Tur ning", + "E LS", + "EL S", + "Ġj uxtap", + "Ġlesb ische", + "ý ch", + "( Unknown", + "(Un known", + "N eo", + "Ne o", + "@ JsonProperty", + "@Json Property", + "Ġal umnos", + "Ġalum nos", + "Ġalumno s", + "ĠRaq qa", + "im ei", + "ime i", + ".get Bounds", + ".getB ounds", + ".Mouse EventHandler", + ".MouseEvent Handler", + "# ######", + "## #####", + "#### ###", + "### ####", + "##### ##", + "###### #", + "Generic Type", + "/ cms", + "/c ms", + "/cm s", + "Ġturn o", + "Ġtur no", + "Ġ мин", + "Ġм ин", + "Ġми н", + "Ġfolk lore", + "ĠE vo", + "ĠEv o", + "Ġconduct ivity", + "Ġle ben", + "Ġgear box", + "- vs", + "-v s", + "Ġ ÏĨ", + "ĠÏ Ĩ", + "Ġdrink ers", + "Ġ conexao", + "Ġcon exao", + "Ġconex ao", + "ĠTe eth", + "ĠTee th", + "Ġget Arguments", + "ĠR AT", + "ĠRA T", + "ent ious", + "enti ous", + "E duc", + "Ed uc", + "+ W", + "ĠInstitution al", + "ĠInstitut ional", + "ĠB ord", + "ĠBo rd", + "ĠBor d", + "is Equal", + "( pwd", + "(p wd", + "Ġign ited", + "Ġignite d", + "ĠR ousse", + "ĠRou sse", + "Ġimpact ful", + "ĠM alk", + "ĠMal k", + "ĠMa lk", + "Ġg eral", + "Ġge ral", + "Ġger al", + "ĠP ivot", + "Ġa zt", + "Ġaz t", + "Ġcsv file", + "ĠR ope", + "ĠRo pe", + "ĠS OLUTION", + "ĠSOL UTION", + "ĠAr bitrary", + "ĠArbit rary", + "Ġl etto", + "Ġlet to", + "Ġlett o", + ".Mouse Adapter", + "Ġ }}}", + "Ġ} }}", + "Ġ}} }", + "ĠSa ilor", + "ĠSail or", + "ĠSai lor", + "d era", + "de ra", + "der a", + "P utting", + "Put ting", + "Ġconcent rates", + "Ġconcentr ates", + "Ġconcentrate s", + "Ġauth Domain", + "âĢĿ çļĦ", + "-f inals", + "-final s", + "-fin als", + ", strlen", + ",str len", + ",st rlen", + "Mu on", + "ĠOrd inary", + "fire fox", + "ĠLa TeX", + "ĠH und", + "ĠHun d", + "ĠHu nd", + "engine ering", + "/ blue", + "/b lue", + "/bl ue", + "ed TextBox", + "(\" \");", + "(\"\" );", + "(\"\") ;", + "ĠC DDL", + "ĠCD DL", + "k ept", + "ke pt", + "Ġ GetString", + "ĠGet String", + "K ir", + "Ki r", + "() ='", + "ĠO CD", + "ĠOC D", + "ant ium", + "anti um", + "$ menu", + "$m enu", + "ĠAppalach ian", + "Secret ary", + "ë¥ ĺ", + "ี ย", + "Sem antic", + "Ġ *[", + "Ġ* [", + "e stone", + "es tone", + "est one", + "esto ne", + "ung kin", + "Max Y", + "- tone", + "-t one", + "-to ne", + "-ton e", + "\" };čĊ", + "\"} ;čĊ", + "_ Part", + "_P art", + "< Member", + "ĊĊ", + "'> ĊĊ", + "'>Ċ Ċ", + "L ic", + "Li c", + "ĠMir age", + "ĠMi rage", + "ĠAssembly FileVersion", + "Te V", + "ĠValue EventListener", + "-s olving", + "T ho", + "Th o", + "rou lette", + "_ WP", + "_W P", + "Ġunint errupted", + "Ġfield Type", + ". Typed", + ".T yped", + ".Type d", + "Ġa mour", + "Ġam our", + "Ġamo ur", + "Ġmock ery", + "Ġmocker y", + "( vol", + "(v ol", + "(vo l", + "ĠSub committee", + "ĠR uf", + "ĠRu f", + "e rox", + "er ox", + "ero x", + ":UIButtonType Custom", + "Ġ Blur", + "ĠBl ur", + "ĠBlu r", + "Ġwy kon", + "n ces", + "nc es", + "nce s", + "ASH BOARD", + "! !\");Ċ", + "!! \");Ċ", + "Ġmurder ers", + "Ġmurderer s", + ". daily", + ".d aily", + ".da ily", + "ĠDI AG", + "j ing", + "ji ng", + "jin g", + "Ġdol phin", + "Ġl òng", + "Ġb ö", + "ĠV ocabulary", + ".St Object", + "' )\">", + "') \">", + "')\" >", + "Ġz un", + "Ġzu n", + "Ġscrim mage", + "tr éal", + "ĠL ig", + "ĠLi g", + "[ vi", + "[v i", + "C ole", + "Col e", + "Co le", + "Ġfrost ing", + ". Players", + ".P layers", + ".Pl ayers", + ".Player s", + ".Play ers", + "- translate", + "-trans late", + "Fe els", + "Feel s", + "Fee ls", + "=\\\" /", + "=\\ \"/", + ".Butter Knife", + "Ġ? >;Ċ", + "Ġ?> ;Ċ", + "Ġ avi", + "Ġa vi", + "Ġav i", + "in nie", + "inn ie", + ". Failure", + ".F ailure", + ".Fail ure", + "Ġsp indle", + "Ġspin dle", + "Configuration Exception", + "_ hop", + "_h op", + "Ġpos ição", + "Ġposi ção", + "Ġ Await", + "ĠA wait", + "ĠAw ait", + "UIImage PickerController", + "ĉ day", + "ĉd ay", + "Ġge nom", + "Ġgen om", + "C ab", + "Ca b", + "ĠÑĢ езÑĥлÑĮÑĤаÑĤ", + "ĠÑĢезÑĥлÑĮÑĤ аÑĤ", + "OR IGINAL", + "Ġejac ulation", + "( tcp", + "(t cp", + "(tc p", + "SE COND", + "SEC OND", + "Ġt onic", + "Ġto nic", + "Ġton ic", + "Ġ ListBox", + "ĠList Box", + "Ġ ĉĉĊ", + "Ġĉ ĉĊ", + "Ġĉĉ Ċ", + "( )>Ċ", + "() >Ċ", + "()> Ċ", + "Ġqu atre", + "Ġquat re", + "Ġqua tre", + "ượ ng", + "with Errors", + ". Maybe", + ".M aybe", + ", âĢ¦", + "token Id", + "_UN DEF", + "Ġfresh ness", + "ĠAmendment s", + "ĠAmend ments", + ".map box", + ". CV", + ".C V", + "( blog", + "(b log", + "(bl og", + "_get time", + ". quest", + ".q uest", + ".qu est", + "s parse", + "sp arse", + "spar se", + "Ġre sale", + "Ġres ale", + "Ġenthusi astically", + "Ġenthusiastic ally", + "Ġenthusiast ically", + "ĠProstit utas", + "W a", + "C argo", + "Car go", + ". Parcelable", + ".Parcel able", + "S ENSOR", + "SEN SOR", + "SENS OR", + "ĠR yu", + "ĠRy u", + "La ughs", + "Laugh s", + "_ Native", + "_N ative", + "/ pg", + "/p g", + "y sts", + "yst s", + "ys ts", + "Ġphot oc", + "Ġphoto c", + "ç® Ģ", + "ad opt", + "ado pt", + ". species", + ".s pecies", + ".sp ecies", + ".spec ies", + "conc iliation", + "Adjust ed", + "Adj usted", + ".Firebase Auth", + "ut tle", + "utt le", + "ord ination", + "ordin ation", + "Ġm unch", + "Ġmun ch", + "ĠS take", + "ĠSt ake", + "ĠSta ke", + ". ping", + ".p ing", + ".pi ng", + ".pin g", + "an ker", + "ank er", + "anke r", + "(QString Literal", + "Ġsub script", + "Ġsubs cript", + "Ġsubscri pt", + "Ġ ĠĉĊ", + "ĠĠ ĉĊ", + "ĠĠĉ Ċ", + "ĠM CC", + "ĠMC C", + "_ Cmd", + "_C md", + "se xy", + "sex y", + "i ou", + "io u", + "ĠM ANY", + "ĠMA NY", + "ĠMAN Y", + "Ġn anny", + "Ġnan ny", + "T RAIN", + "TR AIN", + "TRA IN", + "Ġflour ishing", + "Ġflourish ing", + "ĠW atches", + "ĠWatch es", + "ĠWat ches", + "ĠQ Map", + "ĠF erm", + "ĠFe rm", + "ĠFer m", + "Ġw asm", + "Ġwas m", + "Ġwa sm", + "ĠA bed", + "ĠAb ed", + "ĠAbe d", + "_ UD", + "_U D", + "ĠG lasses", + "ĠGl asses", + "ĠGlass es", + "ĠGlas ses", + "+ v", + "Att end", + ". Chain", + ".Ch ain", + "Ġdec ency", + "Ġdece ncy", + "ĠSup plementary", + "ĠSupplement ary", + "h unter", + "hunt er", + "- txt", + "-t xt", + "Ġ\" }\";Ċ", + "Ġ\"} \";Ċ", + ".set WindowTitle", + "( \"", + "Ġmasc ara", + "( Profile", + "åĬ Łèĥ½", + "åĬŁ èĥ½", + "im ité", + "imit é", + "imi té", + "Ġwild fires", + "Ġwildfire s", + "- ROM", + "-R OM", + ".is On", + "( groupId", + "(group Id", + "Re pair", + "Rep air", + "accum ulate", + "Ġ< \",", + "Ġhand written", + "Ġach eter", + "Ġache ter", + "ĠM GM", + "ĠMG M", + "ĠIr ma", + "-> {_", + "->{ _", + "g ee", + "ge e", + "c riminal", + "cr iminal", + "Ġèĭ¥ è¦ģ", + "Ġmoment arily", + "\" )!=", + "\") !=", + "_ lit", + "_l it", + "_li t", + "Ġexpires In", + ". \").", + ".\" ).", + ".\") .", + "éķ¿ 度", + "Ġfr ække", + "v lc", + "vl c", + "Ġor bs", + "Ġorb s", + ") ,$", + "), $", + "Ġvent ured", + "Ġventure d", + "/ >\\", + "/> \\", + "ch arm", + "char m", + "cha rm", + "N uitka", + "el dig", + "eld ig", + "ato nin", + "aton in", + "W itness", + "- lat", + "-l at", + "-la t", + "Ġset Hidden", + "Ġrel ics", + "Ġreli cs", + "Ġrelic s", + "Ġcons ulate", + "Ġconsul ate", + ". IGNORE", + "\" After", + "\"A fter", + "Ġs etAddress", + "Ġset Address", + "Ġbeste ht", + "Ġ' ')ĊĊ", + "Ġ'' )ĊĊ", + "Ġ'') ĊĊ", + "Ġ'')Ċ Ċ", + ".x axis", + "Ġser ão", + "Ġmis led", + "Ġmi sled", + "_UN IFORM", + "ĠV IA", + "ĠVI A", + "in cr", + "inc r", + "Ġzen ith", + "Ġvis cosity", + "Ġvisc osity", + "Ġthin ly", + ".get SharedPreferences", + ". ErrorCode", + ".Error Code", + "\" ),\"", + "\") ,\"", + "\"), \"", + "ĠMillion en", + "ĠMilli onen", + "Ġ/ >)Ċ", + "Ġ/> )Ċ", + "Scroll Indicator", + "-se eking", + "ĠPOLIT ICO", + "as ca", + "asc a", + "_ rl", + "_r l", + "N avig", + "Nav ig", + "Na vig", + "(full file", + "Ġsol itude", + "Ġ juven", + "Ġju ven", + "Ġha uling", + "Ġhaul ing", + "ĠMac ros", + "ĠMacro s", + "ĠG ry", + "ĠGr y", + "Ġexerc itation", + "ĠATT ACK", + "Tick Count", + "Ġ rites", + "Ġr ites", + "Ġrit es", + "Ġri tes", + "Ġd oe", + "Ġdo e", + "Particle System", + "Ġ slu", + "Ġs lu", + "Ġsl u", + "Window Text", + "Ġ ClassName", + "ĠClass Name", + "Ġs lander", + "Ġsl ander", + "Ġsla nder", + "ĉ Port", + "ĉP ort", + "j ong", + "jo ng", + "jon g", + "? a", + ".D ial", + ".Di al", + "âĢĶ at", + "âĢĶa t", + "$ objPHPExcel", + "$obj PHPExcel", + "Ġso ar", + "E NN", + "EN N", + "appe ared", + "appear ed", + "Ġquot id", + "Ġquo tid", + "e machine", + "em achine", + "ema chine", + "Ġ nip", + "Ġn ip", + "Ġni p", + "Ġmicro time", + "ĠAl ma", + "; !", + "---------------- --------------------------------------------------------------------------------", + "-------------------------------- ----------------------------------------------------------------", + "---------------------------------------------------------------- --------------------------------", + "------------------------------------------------ ------------------------------------------------", + "---------------------------------------------------------------------------- --------------------", + "-------------------------------------------------------------------------------- ----------------", + "-------------------- ----------------------------------------------------------------------------", + "ĠP assage", + "ĠPass age", + "ĠPas sage", + "Ġdump sters", + "Ġdumpster s", + "Ġdumps ters", + "Ġ Exclude", + "ĠEx clude", + "ĠExc lude", + "Ġsuggest ive", + "ĠCircularProgress Indicator", + "_ clr", + "_c lr", + "_cl r", + "Array Type", + "IL LA", + "ILL A", + "Elapsed Time", + "Dr iven", + "Drive n", + "Ġresource Name", + "ĠG arrison", + "ĠGarr ison", + "se rir", + "ser ir", + "- ahead", + "-a head", + "Ġp innacle", + "ĠEs presso", + "S parse", + "Sp arse", + "Ġas says", + "Ġass ays", + "Ġassay s", + "ĠGirl friend", + "i mid", + "im id", + "imi d", + "] ='\\", + "]= '\\", + "]=' \\", + "ONG LONG", + "ONGL ONG", + "Ġportray ing", + "L ane", + "La ne", + "Ġb úsqueda", + "Ġrein forcements", + "Ġreinforce ments", + "Ġreinforcement s", + "ĠSpread sheet", + "ĠArray Collection", + ", arr", + ",a rr", + "light box", + "ic ana", + "ica na", + "ican a", + "< \"", + "build ers", + "builder s", + "K id", + "Ki d", + "ĠMat SnackBar", + "EX PR", + "EXP R", + "od cast", + "ĠFoundation s", + "ĠFound ations", + "Ġ inds", + "Ġin ds", + "Ġi nds", + "Ġind s", + "=' ${", + "='$ {", + "F izz", + "Fi zz", + "- functional", + "-function al", + "( workspace", + "(work space", + "Ġstem med", + "_ patches", + "_p atches", + "_patch es", + "_pat ches", + "ĠJar vis", + "RE ADING", + "READ ING", + "Ġdisrespect ful", + "ĠQ Dom", + "Ġ$ {Ċ", + "Ġ${ Ċ", + "e status", + "es tatus", + "est atus", + "Re ached", + "Reach ed", + "! .ĊĊ", + "!. ĊĊ", + "I LT", + "IL T", + "ĠN DEBUG", + "ĠC ourage", + "ĠCour age", + "ĠCou rage", + "birth date", + "ĠT ing", + "ĠTi ng", + "ĠTin g", + "Ġutil izado", + "Ġutiliz ado", + "Ġutiliza do", + "án chez", + "Out door", + "Ġhand guns", + "Ġhandgun s", + "Ref Count", + "É Ļ", + "r omo", + "ro mo", + "rom o", + "Ġt ts", + "Ġtt s", + ". She", + ".S he", + ".Sh e", + "Ġ Pane", + "ĠP ane", + "ĠPan e", + "ĠPa ne", + "ãĢij, ãĢIJ", + "ĠIO CTL", + "ĠIOC TL", + "/ black", + "/b lack", + "/bl ack", + "in scription", + "ins cription", + "Ġbi opsy", + "Ġbio psy", + "Ġ TimeInterval", + "ĠT imeInterval", + "ĠTime Interval", + ".Test Check", + "ĠGUI Style", + "Ġ Capability", + "ĠCap ability", + "ĠBei trag", + "ĠBeit rag", + "don nees", + "T reatment", + ". backup", + ".back up", + "Ġsign ings", + "Ġsig nings", + "Ġsigning s", + "Ġsignin gs", + "ĠB oca", + "ĠBo ca", + "d rm", + "dr m", + ". MAIN", + ".M AIN", + "Ġgo ede", + "Ġgoed e", + "Ġ Markup", + "ĠMar kup", + "ĠMark up", + "G REE", + "GR EE", + "GRE E", + "ĠBase Service", + ". Creator", + ".C reator", + "Ġj ails", + "Ġja ils", + "Ġjail s", + "ĠK ahn", + "ĠKa hn", + "ĠKah n", + "Ip Address", + "AC HI", + "ACH I", + "Ġin hibited", + "Ġinhib ited", + "Ġinhibit ed", + "Ġ@ $_", + "Ġ@$ _", + "ĠAs sass", + "ĠAss ass", + "Ġenv iado", + "Ġenvi ado", + "Her oes", + "Hero es", + "ÐŁ еÑĢ", + "ĠM aven", + "ĠMa ven", + ". ls", + ".l s", + "Ġ ive", + "Ġi ve", + "Ġiv e", + "| RF", + "|R F", + "Ġresize Mode", + "Ġrum pe", + "_ attachments", + "_attach ments", + "_attachment s", + "T U", + "Ġtact ile", + "Ġtac tile", + "Attempt ing", + "Ġro bin", + "Ġrob in", + "y aw", + "ya w", + "Ġmerc enaries", + "ĠHab itat", + "ĠHabit at", + "end date", + "Ġ oxy", + "Ġo xy", + "Ġox y", + "ĉ Random", + "ĉR andom", + "o hon", + "oh on", + "oho n", + "Is Null", + "ĠValidation Result", + "ãĥ ļ", + "um bed", + "umb ed", + "p pv", + "pp v", + "Ġ arp", + "Ġa rp", + "Ġar p", + "ich ick", + "ichi ck", + "_r nn", + "ĠT FT", + "ĠTF T", + "Tex Image", + "\" On", + "Ġ Sampler", + "ĠS ampler", + "ĠSam pler", + "ĠSample r", + "ĠSamp ler", + "t opl", + "to pl", + "top l", + "Ġj ane", + "Ġja ne", + "Ġjan e", + "y ling", + "yl ing", + "ĠUN ICODE", + "Tab Index", + "< {Ċ", + "<{ Ċ", + "s uspend", + "sus pend", + "uv ian", + ", application", + "ол иÑĩеÑģÑĤво", + "y at", + "ya t", + "e zier", + "ez ier", + "ezi er", + "ĠCH UNK", + "ĠAd ler", + "/ Add", + "/A dd", + "Ġ KeyValue", + "ĠKey Value", + "Ġspos ób", + "S ampling", + "Sam pling", + "ch ers", + "che rs", + "cher s", + "_ AMD", + "_A MD", + "_AM D", + "R u", + ".Must Compile", + "N ation", + "Na tion", + "Nat ion", + "As soc", + "Ass oc", + "Man aging", + "Mana ging", + "ĠEn gl", + "ĠEng l", + "_ GB", + "_G B", + "Ġsucc inct", + "Ġdis liked", + "Ġdislike d", + "ĠI ke", + "ĠIk e", + "Bullet in", + "_ARCH IVE", + "Pro posal", + "Prop osal", + "Ġjog ging", + ".C REATED", + ".CREATE D", + "Ġc hol", + "Ġch ol", + "Ġcho l", + "è£ ħ", + "Į ¨", + "- push", + "-p ush", + "Ġres erva", + "Ġreserv a", + "co rev", + "core v", + "cor ev", + "è tre", + "T HR", + "TH R", + "Ġincompet ence", + "Ġchar isma", + "æĦ Ł", + "Ġ\" ==", + "Ġ\"= =", + "B TN", + "BT N", + "Ġ Locator", + "ĠL ocator", + "ĠLoc ator", + "i vet", + "iv et", + "ive t", + "(' .')Ċ", + "('. ')Ċ", + "('.') Ċ", + "('.' )Ċ", + "Ġfor IndexPath", + "ô me", + "ôm e", + "Ġcapac it", + "w aters", + "wa ters", + "water s", + "wat ers", + "ĠWR ONG", + "h oa", + "ho a", + "ĠM IPS", + "ĠMI PS", + "Ġe miss", + "Ġem iss", + "ĠJacqu eline", + "( cmp", + "(c mp", + "(cm p", + "Ġe ens", + "Ġeen s", + "Ġee ns", + "L eo", + "Le o", + ". timing", + ".t iming", + ".tim ing", + "CLU SION", + "CLUS ION", + "Ġ (\"-", + "Ġ( \"-", + "Ġ(\" -", + "åĵ Ī", + ". kode", + ".k ode", + "ĠUnder t", + "ĠUnd ert", + "Ġbe wild", + "Ġbew ild", + "ĠEs sen", + "ĠEss en", + ". hd", + ".h d", + "Ġren egot", + "Ġm ower", + "Ġmo wer", + "Ġl sp", + "Ġls p", + "Ġpen chant", + "Ġman oe", + "Ġmano e", + "Ġ agli", + "Ġa gli", + "Ġag li", + "Ġre cal", + "Ġr ecal", + "Ġrec al", + "ĠOPER ATION", + "(^ )(", + "Ġ ν", + "ĠÎ ½", + "Ġ Scoped", + "ĠSc oped", + "ĠScope d", + "ĠSco ped", + "Ġ @\"Ċ", + "Ġ@ \"Ċ", + "Ġ@\" Ċ", + "= label", + "=l abel", + "[ loc", + "[l oc", + "I ntl", + "In tl", + "Int l", + "ĠN z", + "table t", + "tab let", + "tabl et", + ". ColumnName", + ".Column Name", + "Ġscreen Size", + "D Bus", + "DB us", + "co oked", + "cook ed", + "- registration", + "-reg istration", + "âĢľ One", + "- non", + "-n on", + "-no n", + "ĠwiÄĻ c", + "Ġc osta", + "Ġco sta", + "Ġcost a", + "Ġcos ta", + ".add Tab", + ". conditions", + ".condition s", + ".cond itions", + "ĠH ess", + "ĠHe ss", + "MEM ORY", + "ĠAval anche", + "() }}Ċ", + "()} }Ċ", + "Ġtri plet", + "Ġtrip let", + "Ġtriple t", + "Ġl abyrinth", + "ĠNode List", + "ĠN YT", + "ĠNY T", + "Ġy eni", + "Ġye ni", + "Ġyen i", + "d ff", + "df f", + ".Html Controls", + "A VIS", + "AV IS", + "/ Math", + "/M ath", + "Ġ memcmp", + "Ġmem cmp", + "ا Ø¡", + "Ø§Ø ¡", + "о ÑģÑĮ", + "оÑģ ÑĮ", + "c rap", + "cr ap", + "( pages", + "(p ages", + "(page s", + "(pa ges", + "Ġl xml", + "Ġlx ml", + "ĠQ DateTime", + "_t cb", + "_tc b", + "Ġ openid", + "Ġopen id", + "Ġsyn aptic", + "ĠM DMA", + "ĠMD MA", + "( slug", + "(s lug", + "(sl ug", + "ig matic", + "igma tic", + "igm atic", + "igmat ic", + "e nor", + "en or", + "eno r", + "Ġcr amped", + "Ġcram ped", + "G OP", + "GO P", + "Ń IJ", + ".is File", + "ĠD ifferential", + "ĠDifferent ial", + "Ġ =\"\";Ċ", + "Ġ=\" \";Ċ", + "ĉ ĉĉĠĠĠĠĉ", + "ĉĉ ĉĠĠĠĠĉ", + "ĉĉĉ ĠĠĠĠĉ", + "ĉĉĉĠĠĠ Ġĉ", + "ĉĉĉĠ ĠĠĠĉ", + "ĉĉĉĠĠ ĠĠĉ", + "ĉĉĉĠĠĠĠ ĉ", + "ĠC ooke", + "ĠCo oke", + "ĠCook e", + "ĉU FUNCTION", + "Ġpersever ance", + "Relative Layout", + "IMPORT ANT", + "Ġe xon", + "Ġex on", + "Ġ он", + "Ġо н", + "i base", + "ib ase", + "iba se", + "( CONT", + "(C ONT", + "(CON T", + "n ovation", + "no vation", + "nov ation", + "nova tion", + "ä½ ķ", + "[ sub", + "[s ub", + "Admin Controller", + "HTTP Header", + "c rear", + "cre ar", + "cr ear", + "ĠN IR", + "ĠNI R", + "ĠDrop DownList", + "Ġval ide", + "Ġvalid e", + "Ġva lide", + "Ġde hydration", + ". ']", + ".' ]", + "( WIN", + "(W IN", + "Ġ ...\\", + "Ġ. ..\\", + "Ġ... \\", + "Ġ.. .\\", + "Ġphoto shop", + "Ġphotos hop", + "ĉ Init", + "ĉI nit", + "ĉIn it", + "_ cou", + "_c ou", + "_co u", + "Ġtime Zone", + "dar win", + "r omatic", + "ro matic", + "rom atic", + "roma tic", + "Navigation ItemSelectedListener", + "b rates", + "br ates", + "bra tes", + "brate s", + "] --;Ċ", + "Ġtraged ies", + "ĠPed iatrics", + "ĠPediatric s", + "SM ART", + "- API", + "-A PI", + "ĠMessage Lookup", + "ĉ vo", + "ĉv o", + "Ġprejud ices", + "Ġprejudice s", + "Ġ mA", + "Ġm A", + "U ps", + "Up s", + "ĠMISS ING", + "ĉ ad", + "ĉa d", + "C ream", + "Cre am", + "Cr eam", + "ĠT b", + "ĠM ona", + "ĠMon a", + "ĠMo na", + "_ ghost", + "_g host", + "ĉ types", + "ĉt ypes", + "ĉtype s", + "ĉtyp es", + "E mb", + "Em b", + "ĠDocument ary", + "' );ĊĊĊĊ", + "') ;ĊĊĊĊ", + "');Ċ ĊĊĊ", + "');ĊĊ ĊĊ", + "'); ĊĊĊĊ", + "');ĊĊĊ Ċ", + "Ġl up", + "Ġlu p", + "_ Reference", + "_Re ference", + "_Ref erence", + "ĠB ATCH", + "ĠBAT CH", + "Ġintertw ined", + "< Cell", + "", + "Ġf oyer", + "Ġfo yer", + "'util isation", + "ĠMü ller", + "ĠFet ish", + "Ġdefault Manager", + "Ġback track", + "B ah", + "Ba h", + "Exp licit", + "Expl icit", + "_ ASCII", + "_A SCII", + "_ASC II", + "Ġm Activity", + "( Msg", + "(M sg", + "Ġ ê²Į", + "Ġê² Į", + "ĠTER MS", + "ĠTERM S", + "ĠAn gie", + "ĠAng ie", + "H SV", + "HS V", + "ĠMos que", + ". Names", + ".N ames", + ".Name s", + "íĬ ¼", + "r este", + "re ste", + "res te", + "rest e", + "_ parms", + "_p arms", + "_par ms", + "_pa rms", + "_parm s", + "Ġg aping", + "Ġgap ing", + "Ġga ping", + "Ġc ropping", + "Ġcr opping", + "Ġcro pping", + "Ġcrop ping", + "Data Frame", + "Ġrespons iveness", + "Ġresponsive ness", + "_ undo", + "_un do", + "_u ndo", + "_ tran", + "_t ran", + "_tr an", + "_tra n", + ". terminate", + ".term inate", + "Ġitalian e", + "Ġitalia ne", + "Ġwalk through", + "Ġattract iveness", + "Ġattractive ness", + "д е", + "_ STS", + "_S TS", + "_ST S", + "_ learn", + "_l earn", + "_le arn", + "Ġchocolate s", + "Ġchocol ates", + "ier archical", + "- thinking", + "-th inking", + "Ġ )))", + "Ġ) ))", + "Ġ)) )", + "ish ments", + "ishment s", + ".Log f", + ".Lo gf", + "ĠT MZ", + "ĠTM Z", + "ĠCan ary", + "f oil", + "fo il", + "ĠV accine", + "ĠVacc ine", + ". vx", + ".v x", + "ĠSur round", + "Inter mediate", + "Ġ iov", + "Ġi ov", + "Ġio v", + "v ais", + "va is", + "' ;\";Ċ", + "'; \";Ċ", + "ï½ŀ ĊĊ", + "éĢģ æĸĻ", + "âĢ¦ it", + "Se ats", + "Sea ts", + "Seat s", + "C lar", + "Cl ar", + "Cla r", + "W ars", + "War s", + "Wa rs", + "ĠHutch inson", + "ĠH asan", + "ĠHas an", + "ĠHa san", + "! ')ĊĊ", + "!' )ĊĊ", + "!')Ċ Ċ", + "ĠRich ie", + "ĠRi chie", + "che iden", + "cheid en", + "( $('", + "($ ('", + "($( '", + "Y ork", + "Yo rk", + "Ġl ids", + "Ġli ds", + "Ġlid s", + "Ġal phanumeric", + "Ġalpha numeric", + "ĠG lock", + "ĠGl ock", + "ĠGlo ck", + ". shapes", + ".sh apes", + ".shape s", + ".sha pes", + "Ġsp arking", + "Ġspark ing", + "Ġspar king", + "_ epsilon", + "_e psilon", + "_eps ilon", + "up licated", + "uplic ated", + "uplicate d", + ". dirty", + ".d irty", + ".dir ty", + "] )==", + "]) ==", + "ĠìľĦ ì¹ĺ", + "Ġs cn", + "Ġsc n", + "Ġ /****************************************************************", + "Ġ/ ****************************************************************", + "_PRE VIEW", + "_ HC", + "_H C", + "ield ing", + "iel ding", + "f gets", + "fg ets", + "ĠAdd ison", + "Ġproduct Service", + "- figure", + "-f igure", + "( retval", + "(ret val", + "z ano", + "za no", + "zan o", + "Ġaut ob", + "Ġauto b", + "ĉ sd", + "ĉs d", + "_ numer", + "_n umer", + "_num er", + "ĠSet LastError", + "ĠF ior", + "ĠFi or", + "ific ance", + "ifica nce", + "Unt itled", + "Ġin field", + "Ġinf ield", + "Ġ{ }));Ċ", + "Ġ{} ));Ċ", + "Ġ{}) );Ċ", + "Ġs pac", + "Ġsp ac", + "Ġspa c", + "Ġr ookies", + "Ġro okies", + "Ġrookie s", + "(des cribing", + "n gen", + "ng en", + "nge n", + "ி à®", + ". rdf", + ".r df", + ".rd f", + ". Mutex", + ".M utex", + "Ġkne eling", + "Ġknee ling", + "Ġ QE", + "ĠQ E", + "set Max", + "Read Stream", + "Ġ ventas", + "Ġvent as", + "Ġven tas", + "Ġventa s", + "s ut", + "su t", + "cm peq", + "cmp eq", + ".WriteAll Text", + "ĠEx perienced", + "ĠExperience d", + "$ __", + "$_ _", + "Ġka um", + "ĠL IS", + "ĠLI S", + "Ġdocument os", + "Ġdocumento s", + "_HE ALTH", + "i contains", + "icon tains", + "icont ains", + "Ġart isans", + "Ġartisan s", + "OW NER", + "OWN ER", + "Ġb linked", + "Ġblink ed", + "get Display", + "Ġt oen", + "Ġto en", + "Ġtoe n", + "Ġrow Num", + "Ġav ril", + "Ġin vis", + "Ġinv is", + "ĠK ear", + "ĠKe ar", + "toBe InTheDocument", + "a pur", + "ap ur", + "Ġr acked", + "Ġrac ked", + "Ġrack ed", + "ĠMc Master", + "ĠMcM aster", + "_ATTR IB", + "H az", + "Ha z", + "Ġfact ura", + "Ġfac tura", + "/ ts", + "/t s", + "ĠÑĢаз меÑĢ", + "ĠÑĢазм еÑĢ", + "Ġ zf", + "Ġz f", + "Ġshort fall", + ". fasta", + ".f asta", + ".fast a", + ".fa sta", + "ĠCONST ANT", + ". managed", + ".man aged", + ".manage d", + "g ems", + "ge ms", + "gem s", + "Shared Pointer", + "Ġbl urry", + "Ġblur ry", + "b rightness", + "bright ness", + "( components", + "(com ponents", + "(component s", + "(comp onents", + "Ġ ...\"ĊĊ", + "Ġ... \"ĊĊ", + "Ġ.. .\"ĊĊ", + "Ġ...\" ĊĊ", + "Ġ...\"Ċ Ċ", + "S ELL", + "SE LL", + "SEL L", + "ĠIllustr ator", + ".get Channel", + "Ġtrou vé", + "y sters", + "yst ers", + "ys ters", + "yster s", + "Ġv ois", + "Ġvo is", + "Ġvoi s", + "ĠL inden", + "ĠLin den", + "ĠLind en", + "Ġem ojis", + "Ġemoji s", + "Ġemo jis", + "Ġb rawl", + "Ġbr awl", + "Ġbra wl", + "ĠM SR", + "ĠMS R", + "ĠE lo", + "ĠEl o", + "ĠCroat ian", + "ĠCroatia n", + "Popup Menu", + "L ewis", + "Le wis", + ". JWT", + ".J WT", + "Ġaston ished", + "B ush", + "Bus h", + "Bu sh", + "( itemId", + "(item Id", + "Ġdet achment", + "Ġdetach ment", + "ĠEn core", + "ĠEnc ore", + "å° Ķ", + "Ġre kl", + "Ġr ekl", + "Ġrek l", + "Ġc ram", + "Ġcr am", + "Ġcra m", + ") $/", + ")$ /", + ".get Host", + "_ recommend", + "_re commend", + "- HT", + "-H T", + "_cal ibration", + "Auth enticate", + ".firebase app", + "UN IX", + "ĉ Camera", + "ĉC amera", + "ĠHE AP", + "I deal", + "Ide al", + ". office", + ".off ice", + "Ġgoof y", + "Ġgoo fy", + "( Symbol", + "(S ymbol", + "Ġjo uer", + "Ġjou er", + "_part itions", + "_partition s", + "Ġrapid ement", + "Ġrapide ment", + "ĠGNU NET", + "ĠGN UNET", + "id User", + "Ġsuper vise", + "Ġsuperv ise", + "( Contact", + "A WN", + "AW N", + "ãģ ĺ", + "Ġna am", + "Ġa ust", + "Ġau st", + "Ġaus t", + "åľ¨ 线", + "_ softmax", + "_soft max", + "Allow Anonymous", + "amm able", + "amma ble", + "RO UTE", + "ROUT E", + "* D", + "Ġ aden", + "Ġa den", + "Ġad en", + "Ġade n", + "ĠCrist ina", + "ĠCrist iano", + "Ġblood stream", + "sub class", + "_ persona", + "_person a", + "CH ILD", + "- know", + "-k now", + "Ġnavigation Options", + "ĠZuk unft", + "ĠPix ar", + "Ty ler", + "Ġunder world", + "Ġsincer ity", + "Ġdisp enser", + "Ġdispens er", + "Ġk ter", + "Ġkt er", + "id ders", + "idd ers", + ".add Node", + "- checked", + "-check ed", + "Ġkey st", + "Ġke yst", + "Ġkeys t", + "ĠW TO", + "ĠWT O", + ". signals", + ".sign als", + ".signal s", + "Ġadvent urer", + "Ġadventure r", + "ĠP ang", + "ĠPan g", + "ĠPa ng", + "\\ R", + "= pos", + "=p os", + "Ġdispens aries", + "ĠClose t", + "ĠClo set", + "(\" {\\\"", + "(\"{ \\\"", + "id eon", + "ide on", + "ideo n", + "Ġnécess aire", + "( )\"Ċ", + "() \"Ċ", + "()\" Ċ", + "_RECE IVED", + "Ġrésult ats", + "Ġm oden", + "Ġmod en", + "Ġmode n", + "Ġmo den", + "ĠIceland ic", + "; d", + ". allowed", + ".all owed", + ".allow ed", + "(new User", + "Ġmerc iless", + ".Wait For", + "Ġday care", + "ĠCon veyor", + "Ġ Ù", + "ا Ù", + "า à¸", + "Ñ Ł", + "ÑŁ ÑŁ", + "Ġ à¸", + "Ġà ¸", + "à¹Ģ à¸", + "i á»", + "ãĢĢ ãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢ", + "Ġ اØ", + "Ġا Ø", + "ॠĪ", + "Ġ ãĢĢ", + "ĠãĢ Ģ", + "Ñ Ĺ", + "i á»ĩ", + "iá» ĩ", + "ÑŁ ÑŁÑŁÑŁ", + "ÑŁÑŁ ÑŁÑŁ", + "ÑŁÑŁÑŁ ÑŁ", + "à¥ĩ à¤Ĥ", + "à¥ĩठĤ", + "Ñĸ д", + "ा र", + "ाठ°", + "ÙĨ د", + "Ñĸ в", + "Ġ ब", + "Ġठ¬", + "Ġ à¤ľ", + "Ġठľ", + "à ¥¤", + "ॠ¤", + "н Ñĸ", + "ठĹ", + "Ġ Ø¢", + "ĠØ ¢", + "Ġ न", + "Ġठ¨", + "Ñ Ķ", + "Ġ ÑĢа", + "ĠÑĢ а", + "Ġ à¤ħ", + "Ġठħ", + "Ñģ ÑĮ", + "Ġ व", + "Ġठµ", + "ÑĨ Ñĸ", + "Ġv á»", + "³ ت", + "Ġ द", + "Ġठ¦", + "n ÄĽ", + "Ġ ल", + "Ġठ²", + "Ġ ãĢĢĠãĢĢ", + "ĠãĢĢ ĠãĢĢ", + "ĠãĢĢĠ ãĢĢ", + "ॠĤ", + "ठ¦", + "à¸Ń à¸ĩ", + "ÙĪ ÙĨ", + "ठµ", + "a ÅŁ", + "๠Ĥ", + "ι κ", + "Ġ र", + "Ġठ°", + "Ġ ви", + "Ġв и", + "à¥į य", + "à¥įठ¯", + "ा न", + "ाठ¨", + "Ġ از", + "Ġا ز", + "ĠØ§Ø ²", + "ا Ùĩ", + "ا٠ĩ", + "Ľ i", + "Ġh á»", + "à¥ĭ à¤Ĥ", + "i ế", + "ĠÄij á»", + "ठ¯", + "Ï į", + "Ġc ủ", + "Ġ بر", + "Ġب ر", + "Ġ ÙħÛĮ", + "ĠÙħ ÛĮ", + "Ġ اÛĮ", + "Ġا ÛĮ", + "Ġ à¤Ĩ", + "ĠठĨ", + "ãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "ि य", + "िठ¯", + "ÑŁÑŁÑŁÑŁ ÑŁÑŁÑŁÑŁ", + "в и", + "ر د", + "н Ñĥ", + "ÙĬ ÙĨ", + "ι α", + "Ġ त", + "Ġठ¤", + "Ñĩ и", + "Ġ à¤ķर", + "Ġà¤ķ र", + "ا ز", + "Ø§Ø ²", + "a ÄŁ", + "Ġ à¤ī", + "Ġठī", + "ठ¬", + "ÏĦ α", + "ت ر", + "Ùĩ ا", + "ร ะ", + "j ÃŃ", + "Î ij", + "а ÑĤи", + "аÑĤ и", + "Ġ à¤Ĺ", + "ĠठĹ", + "Ġ ÑĤа", + "ĠÑĤ а", + "Ú Ĩ", + "ठľ", + "า à¸Ļ", + "าภĻ", + "Ġ à¤Ń", + "ĠठŃ", + "ि à¤ķ", + "िठķ", + "á v", + "Ġ Ú¯", + "Ï İ", + "า ย", + "าภ¢", + "Ġ à¤Ķ", + "ĠठĶ", + "ÅĻ ÃŃ", + "ا ÙĪ", + "ا٠Ī", + "Ġ Ñī", + "ĠÑ ī", + "Ġ à¤Ķर", + "Ġà¤Ķ र", + "ен нÑı", + "Ġ Ú©Ùĩ", + "ĠÚ© Ùĩ", + "ठ¡", + "ÏĦ ο", + "ε ι", + "Ġ à¤ĩ", + "Ġठĩ", + "à¥į त", + "à¥įठ¤", + "ठŁ", + "Û ±", + "Ġ ØĮ", + "ĠØ Į", + "Ïģ ο", + "η ÏĤ", + "ë ¬", + "Ñĸ н", + "i á»ģ", + "iá» ģ", + "i ên", + "iê n", + "Ġ вÑĸд", + "Ġв Ñĸд", + "ĠвÑĸ д", + "d ı", + "ÙĦ ÛĮ", + "Ġ ز", + "ĠØ ²", + "Ïģ α", + "Ġ ÛĮ", + "า à¸ĩ", + "าภĩ", + "Ġth á»", + "Ġ à¹Ģà¸", + "Ġà¹Ģ à¸", + "i á»ĩn", + "iá»ĩ n", + "ا ÙĬ", + "ا٠Ĭ", + "ан нÑı", + "ÑĢ е", + "Î Ł", + "å Ĵ", + "ا Ø´", + "Ø§Ø ´", + "ा ल", + "ाठ²", + "ëħ Ħ", + "Ġ य", + "Ġठ¯", + "Ġ را", + "Ġر ا", + "ठ¼", + "Ñĥ в", + "ÙĪ Ùħ", + "Ġ عÙĦ", + "Ġع ÙĦ", + "ί α", + "à¥Ī à¤Ĥ", + "à¥ģ à¤", + "า ม", + "าภ¡", + "Ġm á»Ļt", + "Ġ à¤ı", + "Ġठı", + "ãĢĢ ãĢĢãĢĢ", + "ãĢĢãĢĢ ãĢĢ", + "Ġ पर", + "Ġप र", + "Ġ اÙĨ", + "Ġا ÙĨ", + "Ġ اÛĮÙĨ", + "Ġا ÛĮÙĨ", + "ĠاÛĮ ÙĨ", + "Ġv Ỽi", + "Ġvá» Ľi", + "Î £", + "ठļ", + "Û °", + "i á»ĥ", + "iá» ĥ", + "า à¸ģ", + "าภģ", + "Î Ļ", + "ا ع", + "Ø§Ø ¹", + "Ñĸ й", + "à¹ģ ล", + "Ùĩ اÛĮ", + "Ùĩا ÛĮ", + "Ñĩ а", + ". :.:", + ".: .:", + ".:. :", + "ÏĦ η", + "Ġ Îij", + "ĠÎ ij", + "ر ÛĮ", + "Ġn gh", + "Ġng h", + "ν α", + "à¹ĥ à¸Ļ", + "ि त", + "िठ¤", + "Ġ και", + "Ġκ αι", + "Ġκα ι", + "ÏĦ ε", + "à¥į à¤Ł", + "à¥įठŁ", + "μ α", + "л Ñĥ", + "ý m", + "ÏĢ ο", + "à¥Ī ।", + "ï¼ ¼", + "ر ÙĬ", + "н иÑħ", + "ни Ñħ", + "Ïģ ι", + "Ù Ģ", + "ÑĢ о", + "Ġ à¤ļ", + "Ġठļ", + "ा त", + "ाठ¤", + "ا ÙĤ", + "ا٠Ĥ", + "Ġ श", + "Ġठ¶", + "ĠÄij á»Ļ", + "ĠÄijá» Ļ", + "é ho", + "iá»ģ u", + "ภ¨", + "Ñĸ лÑĮ", + "Ñĸл ÑĮ", + "uy á»", + "Û ²", + "Ġn Äĥ", + "Ïī ν", + "Ġ ÏĦοÏħ", + "ĠÏĦ οÏħ", + "ĠÏĦο Ïħ", + "к ий", + "ки й", + "í ĸ", + "Ġ Ñīо", + "ĠÑī о", + "à¥į व", + "à¥įठµ", + "Ġ اÙĦØ£", + "ĠاÙĦ Ø£", + "ا ئ", + "Ø§Ø ¦", + "t ı", + "Ġ ÏĦο", + "ĠÏĦ ο", + "¬ ¬", + "Ġ Ø·", + "ĠØ ·", + "Ùħ اÙĨ", + "Ùħا ÙĨ", + "Ġ Îł", + "ĠÎ ł", + "д и", + "ภ¶", + "ि à¤ı", + "िठı", + "ãģ£ ãģŁ", + "ãģ£ãģ Ł", + "ÛĮ Ùħ", + "ÃŃ nh", + "ÃŃn h", + "r av", + "ra v", + "ÄĽ t", + "Î ķ", + "Ġ Ñıк", + "ĠÑı к", + "ç Ĥ", + "à¸Ń à¸Ļ", + "ãģ¦ ãģĦ", + "ि ल", + "िठ²", + "Ñĸ ÑĤ", + "з а", + "á p", + "ठ§", + "Ġ êµ", + "Ġê µ", + "à¹ģ ละ", + "à¹ģล ะ", + "ÃŃ ch", + "ÃŃc h", + "Ġ Ø¢ÙĨ", + "ĠØ¢ ÙĨ", + "ت Ùĩ", + "Ġ Ùħع", + "ĠÙħ ع", + "н ий", + "ни й", + "Æ°á»Ľ c", + "Ġ اÙĦع", + "Ġا ÙĦع", + "ĠاÙĦ ع", + "ر ب", + "ा म", + "ाठ®", + "Ġ رÙĪ", + "Ġر ÙĪ", + "é «", + "ı y", + "Ġh á»į", + "Ġhá» į", + "ÑĤÑĮ ÑģÑı", + "Ġ Îļ", + "ĠÎ ļ", + "Ġ à¤ĩस", + "Ġà¤ĩ स", + "ï¼ ¿", + "Ġ ÚĨ", + "Ġ ÙĪاÙĦ", + "ĠÙĪ اÙĦ", + "ĠÙĪا ÙĦ", + "íķ Ļ", + "ÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁ ÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁ", + "Ġ vý", + "Ġv ý", + "ि स", + "िठ¸", + "ữ ng", + "س ÛĮ", + "Ġ ìĥ", + "Ġì ĥ", + "ा à¤Ĥ", + "ाठĤ", + "ï½ ¤", + "à¹ĩ à¸Ļ", + "Ġ थ", + "Ġठ¥", + "l arak", + "la rak", + "lar ak", + "lara k", + "â y", + "t ÄĽ", + "ν ο", + "Ġ ÙħÙĪ", + "ĠÙħ ÙĪ", + "Ġng Æ°á»Ŀi", + "å ¦", + "ÙĬ د", + "il ir", + "ili r", + "ا ØŃ", + "Ø§Ø Ń", + "Ġ ãĢ", + "Ù ĭ", + "Ġ ÑĢоз", + "ĠÑĢ оз", + "Ġ й", + "ĠÐ ¹", + "Ġd ụ", + "à¹Ģ à¸Ľ", + "à¹ĢภĽ", + "ั à¸ĩ", + "л е", + "ा य", + "ाठ¯", + "ï¿ £", + "ÙĪ اÙĨ", + "ÙĪا ÙĨ", + "Ġth á»ĥ", + "Ġthá» ĥ", + "ã ĥ½", + "ãĥ ½", + "ü ÅŁ", + "ç Ł", + "Ġ ο", + "ĠÎ ¿", + "Ġ Σ", + "ĠÎ £", + "ÛĮ ت", + "ั à¸ģ", + "Î ¤", + "Ġ à¤ıà¤ķ", + "Ġà¤ı à¤ķ", + "Ġ ÙĩÙħ", + "ĠÙĩ Ùħ", + "ìĽ Ķ", + "Ġ Îľ", + "ĠÎ ľ", + "Ġ à¸Ħ", + "ĠภĦ", + "¯ ¸", + "ا رÛĮ", + "ار ÛĮ", + "ि न", + "िठ¨", + "Ġnh ững", + "Ġnh Æ°", + "и ÑĤи", + "иÑĤ и", + "ãĥ³ ãĥ", + "à¹Ģ ร", + "à¹Ģภ£", + "Ġ ÐĽ", + "ĠÐ Ľ", + "ÑĢ Ñĸ", + "á d", + "ü y", + "i ye", + "iy e", + "Ġ Îķ", + "ĠÎ ķ", + "Ġ ส", + "Ġภª", + "Ïĥ η", + "Ġ ë¬", + "Ġë ¬", + "ï »", + "ठ£", + "Î Ĺ", + "ठ¶", + "Ġ ÙħØŃ", + "ĠÙħ ØŃ", + "ÙĦ ÙĬ", + "Ġ με", + "Ġμ ε", + "Ġp ÅĻÃŃ", + "ĠpÅĻ ÃŃ", + "Î Ŀ", + "à¥į ष", + "à¥įठ·", + "t ir", + "ti r", + "ر اÙĨ", + "را ÙĨ", + "ĠÄij á»ĭ", + "ĠÄijá» ĭ", + "Ġ коÑĤ", + "Ġк оÑĤ", + "Ġко ÑĤ", + "к ÑĢа", + "λ ο", + "Ġ ÏĦη", + "ĠÏĦ η", + "Ñī е", + "ÏĦ ικ", + "ÏĦι κ", + "ั à¹ī", + "i ết", + "iế t", + "α ν", + "í Ķ", + "к иÑħ", + "ки Ñħ", + "Ġ поÑģ", + "Ġп оÑģ", + "Ġпо Ñģ", + "t ır", + "tı r", + "à¥į म", + "à¥įठ®", + "ر Ùģ", + "ÄĽ l", + "ठŃ", + "o vé", + "ov é", + "Ġl á»", + "à¹Ħ à¸Ķ", + "ãģª ãģĦ", + "ภ©", + "i á»ĩu", + "iá»ĩ u", + "Î ¾", + "Ġ عÙĦÙī", + "Ġع ÙĦÙī", + "ĠعÙĦ Ùī", + "д Ñĥ", + "Ġdụ ng", + "а ÑĢа", + "аÑĢ а", + "ा द", + "ाठ¦", + "o ž", + "ÙĦ Ùĩ", + "ÙĦ Ùħ", + "н оÑĹ", + "но ÑĹ", + "Û± Û", + "à¸Ĥ à¸Ńà¸ĩ", + "Î ¡", + "à¥Ģ à¤Ĥ", + "Ġ пÑĸд", + "Ġп Ñĸд", + "Ġ फ", + "Ġठ«", + "ภĺ", + "ε ÏĤ", + "ा स", + "ाठ¸", + "à¹ĥ ห", + "о ва", + "ов а", + "ت ÛĮ", + "à¸Ń ย", + "ภį", + "Ġn Äĥm", + "ĠnÄĥ m", + "ÏĦ ι", + "ÙĪ ÛĮ", + "Ġ мÑĸ", + "Ġм Ñĸ", + "Ġ اÙħ", + "Ġا Ùħ", + "ÏĢ ÏĮ", + "Ġ zá", + "Ġz á", + "ठĪ", + "Ġ à¤ĸ", + "Ġठĸ", + "Ġ nÄĽ", + "Ġn ÄĽ", + "c ÃŃ", + "ÙĨ Ú¯", + "Ñģ и", + "Î ¶", + "n á", + "Ŀ i", + "Å ©", + "Ø ¦", + "Ġ اÙĦس", + "Ġا ÙĦس", + "ĠاÙĦ س", + "á»ij c", + "Ạ½", + "ا ج", + "Ø§Ø ¬", + "Ùħ ا", + "êµ Ń", + "о Ñİ", + "د ر", + "à¹Ģ à¸ģ", + "à¹Ģภģ", + "ภł", + "à ¡ng", + "á ng", + "án g", + "íķ ©", + "Ġ ÏĦηÏĤ", + "ĠÏĦ ηÏĤ", + "ĠÏĦη ÏĤ", + "Ġ Ñĸн", + "ĠÑĸ н", + "о ÑĹ", + "à¥ĩ श", + "à¥ĩठ¶", + "ภĭ", + "à¥ĭ à¤Ĺ", + "л Ñĸ", + "Ġp ÅĻed", + "ĠpÅĻ ed", + "ĠpÅĻe d", + "Äį nÃŃ", + "Ġ ка", + "Ġк а", + "Ġ Τ", + "ĠÎ ¤", + "á»Ļ i", + "v ÃŃ", + "ÑĢ Ñı", + "ा à¤ľ", + "ाठľ", + "а Ñħ", + "ि र", + "िठ°", + "า ส", + "าภª", + "d ır", + "dı r", + "Ø ¢", + "Î ļ", + "Ġ ÎŃ", + "ĠÎ Ń", + "Ġt ại", + "iá»ĩ c", + "i ến", + "iế n", + "Ġ غ", + "ĠØ º", + "ا Ø®", + "Ø§Ø ®", + "Ġ اÙĦØŃ", + "Ġا ÙĦØŃ", + "ĠاÙĦ ØŃ", + "Ġ бÑĥ", + "Ġб Ñĥ", + "Ġv á»ģ", + "Ġvá» ģ", + "м Ñĸ", + "Ùħ ÙĦ", + "m Ä±ÅŁ", + "à¸Ľ ระ", + "à¸Ľà¸£ ะ", + "ο Ïį", + "ε ί", + "Ġर ह", + "н им", + "ни м", + "ع د", + "Ġ باÙĦ", + "Ġب اÙĦ", + "Ġبا ÙĦ", + "¤ ij", + "ç ł", + "Ġo lm", + "Ġol m", + "Ïİ Î½", + "Ġh á»įc", + "Ġhá»į c", + "ا ست", + "Ø§Ø ³Øª", + "اس ت", + "า ว", + "าภ§", + "ÙĪ ب", + "Ñĸ Ñı", + "Ġ ÙĩاÛĮ", + "ĠÙĩ اÛĮ", + "ĠÙĩا ÛĮ", + "ë§ Ī", + "ॠĮ", + "Ġ ÄĮ", + "ĠÄ Į", + "ठı", + "ا دÙĩ", + "اد Ùĩ", + "Ġ اÙĪ", + "Ġا ÙĪ", + "н Ñĭм", + "нÑĭ м", + "Ạ±", + "Ùħ ÙĨ", + "iá»ĩ t", + "l aÅŁ", + "la ÅŁ", + "Ñĸ з", + "ÙĪ س", + "Ġl Ãłm", + "ĠlÃł m", + "ĠÄij ến", + "ĠÄijế n", + "प न", + "Ġ ÛĮÚ©", + "ĠÛĮ Ú©", + "Ġ ÙĦÙĦ", + "ĠÙĦ ÙĦ", + "Ġ mÄĽ", + "Ġm ÄĽ", + "Ġ براÛĮ", + "Ġبر اÛĮ", + "ा ह", + "ाठ¹", + "Ġ Ùħر", + "ĠÙħ ر", + "e ç", + "à¸Ń ร", + "ε Ïģ", + "ั à¸Ķ", + "к он", + "ко н", + "n ou", + "no u", + "Ġ год", + "Ġг од", + "ู à¹ī", + "à¹Ģ ล", + "à¹Ģภ¥", + "Ú ĺ", + "ĠÄij á»ĭnh", + "ĠÄijá»ĭ nh", + "ĠÄij ó", + "а нов", + "ан ов", + "ано в", + "Ġ Ùģر", + "ĠÙģ ر", + "ا رد", + "ار د", + "Ñĸ ÑĹ", + "à¸Ħ ร", + "à¥į थ", + "à¥įठ¥", + "c ak", + "ca k", + "ÑĨ ÑĸÑĹ", + "ÑĨÑĸ ÑĹ", + "Ġ ãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢ", + "ĠãĢĢĠ ãĢĢĠãĢĢĠãĢĢ", + "Ùĩ ر", + "ॠī", + "Ġg iá»", + "Ġgi á»", + "í Ĩ", + "âĢĮ ÙĩاÛĮ", + "âĢĮÙĩا ÛĮ", + "à¥ģ र", + "à¥ģठ°", + "Ġ à¸ģ", + "Ġภģ", + "Å Ī", + "æ ¨", + "ÎŁ Î", + "า à¸Ħ", + "าภĦ", + "кÑĢа ÑĹ", + "ả o", + "o ÄŁ", + "Ġ सम", + "Ġस म", + "Ġv iá»ĩc", + "Ġs ẽ", + "Ġ ná", + "Ġn á", + "ÙĬ Ùħ", + "£ p", + "ö y", + "ÙĪ ز", + "Ġ κα", + "Ġκ α", + "Ùħ د", + "n ÃŃm", + "nÃŃ m", + "o vá", + "ov á", + "ा व", + "ाठµ", + "ा ।", + "à¥į स", + "à¥įठ¸", + "ç ·", + "ặ c", + "Ġ à¸ŀ", + "Ġภŀ", + "ï½ Ģ", + "ô i", + "Ġ ợ", + "Ġá» Ł", + "ο ÏĤ", + "Ġtr ên", + "м Ñĥ", + "ÑģÑĮ к", + "ภŁ", + "o vat", + "ov at", + "ova t", + "Ġm á»", + "í ı", + "Ġ во", + "Ġв о", + "ε ν", + "à¥Ĥ र", + "Ú¯ اÙĩ", + "ĠÄij á»Ļng", + "ĠÄijá»Ļ ng", + "Ú© ÙĨ", + "Ñī и", + "Ġ пÑĢа", + "Ġп ÑĢа", + "ĠпÑĢ а", + "ü rk", + "ür k", + "ÙĪ ع", + "ấ p", + "n ý", + "Ġ quan", + "Ġqu an", + "Ġq uan", + "Ġqua n", + "Ñĸ Ñĩ", + "Ġ να", + "Ġν α", + "Ġन ह", + "Ġ Ú©ÙĨ", + "ĠÚ© ÙĨ", + "c ı", + "çĿ Ģ", + "б о", + "Ġ اس", + "Ġا س", + "ĠØ§Ø ³", + "è »", + "ا ÙĨÛĮ", + "اÙĨ ÛĮ", + "à¸ķ ร", + "ÏĦ ά", + "Ġ Ø£ÙĨ", + "ĠØ£ ÙĨ", + "éĤ £", + "Ġ ม", + "Ġภ¡", + "к ÑĤ", + "i ê", + "Ġhá» £p", + "ت Ùħ", + "Ġ بÙĨ", + "Ġب ÙĨ", + "h od", + "ho d", + "ι Ïĥ", + "ห à¸Ļ", + "Ġ ÑĹ", + "ĠÑ Ĺ", + "л ив", + "ли в", + "Ġ کرد", + "ĠÚ© رد", + "Ġکر د", + "Ġ ÙħØ´", + "ĠÙħ Ø´", + "ا Ø·", + "Ø§Ø ·", + "ب ÙĬ", + "Ġ ร", + "Ġภ£", + "د Ùħ", + "ÙĦ اÙħ", + "ÙĦا Ùħ", + "à¹Ī ว", + "Ġ ÙĨÙħ", + "ĠÙĨ Ùħ", + "Ġ æĹ", + "Ġæ Ĺ", + "é ħ", + "н оÑģÑĤ", + "но ÑģÑĤ", + "ноÑģ ÑĤ", + "i á»ĥm", + "iá»ĥ m", + "êµ IJ", + "a yı", + "ay ı", + "Ġ بÙĪد", + "Ġب ÙĪد", + "ĠبÙĪ د", + "Ú¯ ر", + "Ġh iá»ĩn", + "Ġhi á»ĩn", + "ç ³", + "ÑģÑĤ вен", + "ÑģÑĤв ен", + "ÑģÑĤве н", + "Ġà¤ķर न", + "Ġ ÏĦην", + "ĠÏĦ ην", + "ĠÏĦη ν", + "Ġ à¸Ń", + "ĠภŃ", + "Ġ Ùħت", + "ĠÙħ ت", + "ģ n", + "ج Ùħ", + "λ λ", + "Ġ ÑĢе", + "ĠÑĢ е", + "ิ à¸Ķ", + "Ġ اÙĦÙĤ", + "Ġا ÙĦÙĤ", + "ĠاÙĦ ÙĤ", + "α Ïģ", + "Ġ यह", + "Ġय ह", + "n ÃŃch", + "nÃŃ ch", + "ÑĶ ÑĤÑĮÑģÑı", + "Ġ à¸Ĺ", + "ĠภĹ", + "ÛĮ Ø´", + "ÅĻ e", + "Ġn ebo", + "Ġne bo", + "Ġneb o", + "Ġ Ñĩа", + "ĠÑĩ а", + "l ou", + "lo u", + "ÑģÑĤ во", + "ÑģÑĤв о", + "Ġ Ч", + "ĠÐ §", + "à¸Ħ ว", + "Ùĩ Ùħ", + "à¹Ģ à¸Ķ", + "à¹ĢภĶ", + "Ġ à¹ģ", + "Ġ à¹Ĥ", + "Û ³", + "Å© ng", + "Ġ nej", + "Ġn ej", + "Ġne j", + "ÛĮ Ú©", + "Ġs á»Ń", + "Ùģ ر", + "Î ł", + "Ġп ок", + "Ġпо к", + "ĠاÙĦ ÙĨ", + "Ġv Å¡", + "á º«", + "Ạ«", + "Ġnh Ãł", + "ãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ή ÏĤ", + "ο Ïģ", + "Ġ Ïĩ", + "ĠÏ ĩ", + "à¹Ģ à¸Ĺ", + "à¹ĢภĹ", + "Ñĥ лÑĮ", + "Ñĥл ÑĮ", + "ãħ ĩ", + "Ġ yıl", + "Ġy ıl", + "Ġyı l", + "ÑĢ од", + "ÑĢо д", + "ί ν", + "ìĹ Īëĭ¤", + "ìĹĪ ëĭ¤", + "ا ص", + "Ø§Ø µ", + "ĠÄij ầu", + "à¥ĩ à¤ķ", + "à¥ĩठķ", + "ÑĢ ом", + "ÑĢо м", + "ãģĵ ãģ¨", + "Ġ ار", + "Ġا ر", + "ĠØ§Ø ±", + "å¥ ¹", + "Ġ تØŃ", + "Ġت ØŃ", + "Å¡ tÄĽ", + "Å¡t ÄĽ", + "à¥į ल", + "à¥įठ²", + "à¥į à¤ķ", + "à¥įठķ", + "Ġ کار", + "ĠÚ© ار", + "u jÃŃ", + "uj ÃŃ", + "Ġ à¤īन", + "Ġà¤ī न", + "Ġ αÏĢÏĮ", + "Ġα ÏĢÏĮ", + "ĠαÏĢ ÏĮ", + "Ġm Ãł", + "ž ÃŃ", + "Ġ à¸Ī", + "ĠภĪ", + "a lı", + "al ı", + "ठ«", + "Ñĩ еÑģ", + "Ñĩе Ñģ", + "Ġ عÙĨ", + "Ġع ÙĨ", + "æķ Ļ", + "ï¾ Ĩ", + "ि à¤Ĥ", + "िठĤ", + "Ġs á»±", + "в оÑĢ", + "во ÑĢ", + "Ġth á»±c", + "ë į°", + "ëį °", + "ãģ¦ ãģĦãĤĭ", + "ãģ¦ãģĦ ãĤĭ", + "à¹Ī à¸ĩ", + "ت ب", + "Ġnh iá»ģu", + "ĥ n", + "ĠÄij á»ĵ", + "ĠÄijá» ĵ", + "Ġ ห", + "Ġภ«", + "Û µ", + "m ÄĽ", + "ạ t", + "Ġch ÃŃnh", + "ĠchÃŃ nh", + "ĠchÃŃn h", + "μ ÎŃ", + "an ı", + "Ġb á»ĭ", + "ằ ng", + "ÅĻ ed", + "ÅĻe d", + "é Ł", + "á nh", + "án h", + "ÙĢ ÙĢ", + "Ġ Ùħس", + "ĠÙħ س", + "á»ĭ ch", + "Ä ĥn", + "Äĥ n", + "o vánÃŃ", + "ov ánÃŃ", + "ová nÃŃ", + "ován ÃŃ", + "à¹Ī าà¸ĩ", + "à¹Īา à¸ĩ", + "Ġ à¸Ľ", + "ĠภĽ", + "Ġn Æ°á»Ľc", + "Ð ±Ð¾ÑĤ", + "б оÑĤ", + "бо ÑĤ", + "ı yor", + "ıy or", + "ĠØ® ÙĪد", + "ĠØ®ÙĪ د", + "Û ¹", + "Ġ Ùħد", + "ĠÙħ د", + "Ġ üz", + "Ġü z", + "ì ½", + "ÙĪ ÙĤ", + "ë¥ ´", + "л ек", + "ле к", + "Ġc ả", + "ол ог", + "оло г", + "à¹ī à¸Ńà¸ĩ", + "à¹īà¸Ń à¸ĩ", + "m iÅŁ", + "mi ÅŁ", + "à¹ī ว", + "Ä ©", + "Î ľ", + "à¸Ń à¸ģ", + "_ _", + "ठĸ", + "Ġ Я", + "ĠÐ ¯", + "ë ¬´", + "ë¬ ´", + "اÛĮ ÛĮ", + "s ké", + "sk é", + "uy ên", + "e ÅŁ", + "á i", + "ú ng", + "ún g", + "Ãł o", + "Ñĸ Ñģ", + "ç ¶", + "Ġ à¤Ĩप", + "Ġà¤Ĩ प", + "ï º", + "Î Ľ", + "Ġ ê³µ", + "Ġê³ µ", + "Ġ ÐĨ", + "ĠÐ Ĩ", + "Ġà¤ħ पन", + "Ġà¤ħप न", + "ứ ng", + "ÏĮ ÏĤ", + "Ġngh iá»ĩ", + "Ġnghi á»ĩ", + "Ġ اÙĦب", + "Ġا ÙĦب", + "ĠاÙĦ ب", + "à¥ĭ न", + "Ġ à¤Ł", + "ĠठŁ", + "Ġ ìľł", + "Ġìľ ł", + "Ġc Å©ng", + "ĠcÅ© ng", + "Ġà¤ī स", + "Ġ ड", + "Ġठ¡", + "ĠØ´ دÙĩ", + "Ġشد Ùĩ", + "ี à¹ī", + "Û ´", + "ặ t", + "æĸ ¯", + "Ġ ëį", + "Ġë į", + "Ġп л", + "б и", + "ê³ Ħ", + "ο ν", + "Ġç ık", + "Ġçı k", + "Ġbu lun", + "Ġbul un", + "س Ùħ", + "a ç", + "ا ÙĨÙĩ", + "اÙĨ Ùĩ", + "ÛĮ ز", + "l eÅŁ", + "le ÅŁ", + "ắ c", + "ا Ú©", + "Ġस à¤ķ", + "Ġ оÑĢг", + "Ġо ÑĢг", + "ĠоÑĢ г", + "Ġ à¸Ļ", + "ĠภĻ", + "ा थ", + "ाठ¥", + "Ġ ÙħÙĤ", + "ĠÙħ ÙĤ", + "ĠÎĶ E", + "Ñİ ÑĤÑĮ", + "ÑİÑĤ ÑĮ", + "á»Ļ c", + "Ġ η", + "ĠÎ ·", + "s ob", + "so b", + "Ġth eo", + "Ġthe o", + "å ŀ", + "Ġ اÙĦØ´", + "ĠاÙĦ Ø´", + "à¹Ģ à¸ŀ", + "à¹Ģภŀ", + "ÎŃ ÏĤ", + "à¹Ģ à¸Ĥ", + "à¹ĢภĤ", + "å Ļ", + "ि श", + "िठ¶", + "Ġ باز", + "Ġب از", + "Ġبا ز", + "ÑĢ об", + "ÑĢо б", + "Ġγ ια", + "μ ε", + "Ġ باش", + "Ġب اش", + "Ġبا Ø´", + "ा à¤ĩ", + "ाठĩ", + "Ġqu y", + "Ġq uy", + "λ ε", + "ا Ùĥ", + "ا٠ĥ", + "Ġ ÑĢок", + "ĠÑĢ ок", + "Ġ Türk", + "ĠT ürk", + "ĠTür k", + "Ġ Ð¥", + "ĠÐ ¥", + "ÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁ ÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁÑŁ", + "æ ©", + "Ġph ải", + "à¸Ħ วาม", + "à¸Ħว าม", + ": ::", + ":: :", + "l ÃŃ", + "Ġj sou", + "Ġjs ou", + "ÛĮ ÙĦ", + "ál nÃŃ", + "áln ÃŃ", + "Ķ Ķ", + "í ĸī", + "íĸ ī", + "æĥ ³", + "l á", + "Ġ ÏĥÏħ", + "ĠÏĥ Ïħ", + "Ñĭ ва", + "Ñĭв а", + "Ġnh ất", + "à¸Ń ม", + "Û ¸", + "e cek", + "ec ek", + "ece k", + "Ñĸ ÑĢ", + "ÙĪ Ø´", + "λ α", + "Ġ ÎĴ", + "ĠÎ Ĵ", + "о ÑĢа", + "оÑĢ а", + "Ùģ ت", + "e dir", + "ed ir", + "edi r", + "Ñĥ Ñħ", + "ä¸ ĸ", + "ĠУ кÑĢаÑĹ", + "ĠУкÑĢа ÑĹ", + "Ġ íĶ", + "Ġí Ķ", + "ά ν", + "Ġ شر", + "ĠØ´ ر", + "ĠاÙĦ ج", + "е ÑĢед", + "еÑĢ ед", + "еÑĢе д", + "ìĺ ģ", + "Ġh Ãłnh", + "ï¿£ ï¿£", + "м е", + "ÑİÑĤ ÑģÑı", + "ĠØ¥ ÙĦÙī", + "ĠØ¥ÙĦ Ùī", + "ìĹ ħ", + "Ġ تر", + "Ġت ر", + "к ом", + "ко м", + "Ġ شد", + "ĠØ´ د", + "Ġ اÙĦÙĥ", + "Ġا ÙĦÙĥ", + "ĠاÙĦ Ùĥ", + "Ġ ÏĥÏĦο", + "ĠÏĥ ÏĦο", + "à¥į द", + "à¥įठ¦", + "ëł ¤", + "Ñĥ ваннÑı", + "Ñĥв аннÑı", + "Ġth ì", + "ê ´Ģ", + "ê´ Ģ", + "κ ε", + "س ب", + "íĥ Ģ", + "Ġ ï¼ı", + "Ġï¼ ı", + "Ġ à¹ģละ", + "Ġà¹ģ ละ", + "Ġà¹ģล ะ", + "Ġ ÏĮ", + "ĠÏ Į", + "н иÑĨ", + "ни ÑĨ", + "Ġ ÐĿа", + "ĠÐĿ а", + "Ñı в", + "l ü", + "ι ο", + "ÙĨ دÙĩ", + "ÙĨد Ùĩ", + "ÙĦ Ùĥ", + "Ġng Ãły", + "Ġnh ân", + "Ġ ^{", + "Ġ^ {", + "ॠĥ", + "Ġg erek", + "Ġge rek", + "Ġger ek", + "Ġgere k", + "ا رÙĩ", + "ار Ùĩ", + "Ġc Æ¡", + "Ġ à¸ķ", + "Ġภķ", + "æ Ĥ", + "çĶ °", + "à¥Īà¤Ĥ ।", + "ั ว", + "v ÄĽ", + "ö z", + "и ли", + "ил и", + "Ġph áp", + "Ġphá p", + "ê¸ Ī", + "Ġ ÎŁ", + "ĠÎ Ł", + "Ġp ÅĻi", + "ĠpÅĻ i", + "Ġ ìĸ´", + "Ġìĸ ´", + "Ġд ол", + "Ġдо л", + "ÙĪ رد", + "ÙĪر د", + "à¹Ģ ม", + "à¹Ģภ¡", + "Ïĥ ε", + "า à¸Ĺ", + "าภĹ", + "o Ãłi", + "ร ม", + "Û ¶", + "Ġ à¸ļ", + "Ġภļ", + "i yet", + "iy et", + "iye t", + "ÏĦ αι", + "ÏĦα ι", + "ìĦ ł", + "Ġ εÏĢ", + "Ġε ÏĢ", + "ि व", + "िठµ", + "ê¹ Į", + "г а", + "ĠÑģ лÑĥ", + "ĠÑģл Ñĥ", + "Ġh ình", + "Ġ داÙĨ", + "Ġد اÙĨ", + "Ġà¤Ĺ य", + "ÙĬ ا", + "è ij", + "à¤Ĥ त", + "Ġ ساÙĦ", + "Ġس اÙĦ", + "ëł Ī", + "l erin", + "le rin", + "ler in", + "leri n", + "à¥ĩ त", + "à¥ĩठ¤", + ".: .:.:.:", + ".:.: .:.:", + ".:. :.:.:", + ".:.:.: .:", + ".:.:. :.:", + ".:.:.:. :", + "Ġ ëħ", + "Ġë ħ", + "Ġ اÙĦØ¥", + "ĠاÙĦ Ø¥", + "ả ng", + "ản g", + "è Ħ", + "ο λ", + "п ов", + "по в", + "Ġ θ", + "ĠÎ ¸", + "Û ·", + "Ġn ó", + "Ġd Ã¼ÅŁ", + "Ġdü ÅŁ", + "Ġt iế", + "Ġti ế", + "ÙĪ ج", + "Ġj sem", + "Ġjs em", + "Ạ¡ng", + "ạ ng", + "ạn g", + "ãģĤ ãĤĭ", + "à¸Ń à¸ļ", + "ÙĪ ÙĬ", + "à¤ķ र", + "Ġ де", + "Ġд е", + "¯ ¼", + "Ġ но", + "Ġн о", + "ÑĨ Ñĸй", + "ÑĨÑĸ й", + "Ïĥ ÏĦ", + "к ие", + "ки е", + "Ïĥ ει", + "Ïĥε ι", + "ìķ Ī", + "Ġh Æ¡n", + "Ġà¤ķ ह", + "ا ض", + "Ø§Ø ¶", + "ì ¸", + "ãĥ Ł", + "ãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "ãĤĪ ãģĨ", + "ा ,", + "е ÑĢи", + "еÑĢ и", + "ë© °", + "í ĶĦ", + "íĶ Ħ", + "Ġп оÑģÑĤ", + "Ġпо ÑģÑĤ", + "ĠпоÑģ ÑĤ", + "Ø® ر", + "à¥ĭ त", + "â u", + "к ой", + "ко й", + "d aki", + "da ki", + "í ħ", + ": :::::::::::::::", + ":: ::::::::::::::", + ":::: ::::::::::::", + ":::::: ::::::::::", + ":::::::: ::::::::", + "::: :::::::::::::", + "::::: :::::::::::", + "::::::: :::::::::", + "::::::::: :::::::", + ":::::::::: ::::::", + "::::::::::: :::::", + ":::::::::::: ::::", + "::::::::::::: :::", + ":::::::::::::: ::", + "::::::::::::::: :", + "Ġ öz", + "Ġö z", + "ÑĢ аж", + "ÑĢаР¶", + "ÑĢа ж", + "nÃŃ ho", + "ห ล", + "Ġ ÏĥÏĦη", + "ĠÏĥ ÏĦη", + "ĠÄij á»ģ", + "ĠÄijá» ģ", + "Ġk á»", + "i á»ĥn", + "iá» ĥn", + "iá»ĥ n", + "ÅĻ i", + "Ġkter é", + "¢ ħ", + "ü ç", + "ÙĬ Ùģ", + "Ġ lý", + "Ġl ý", + "Ġth á»Ŀi", + "Ġthá» Ŀi", + "Ġthá»Ŀ i", + "Ġ ìĨĮ", + "ĠìĨ Į", + "н ÑĮ", + "Ð Ĩ", + "ÑĤ ÑĢ", + "à¸ĩ าà¸Ļ", + "к оÑĹ", + "ко ÑĹ", + "μ ο", + "Ġs ür", + "Ġsü r", + "uy á»ģn", + "uyá» ģn", + "Ġ Ùħا", + "ĠÙħ ا", + "à¤Ĥ à¤Ĺ", + "ĠÄij á»ĵng", + "ĠÄijá»ĵ ng", + "ò n", + "à¥ģ ल", + "à¥ģठ²", + "à¥į प", + "à¥įठª", + "λ η", + "Ùħ ر", + "п ÑĢи", + "пÑĢ и", + "i yle", + "iy le", + "ा प", + "ाठª", + "Ġà¤ħ न", + "Ġ ÑĶ", + "ĠÑ Ķ", + "Ġy ön", + "Ġyö n", + "ÙĦ Ùģ", + "a dır", + "ad ır", + "adı r", + "á ½", + "Ġ ê³ł", + "Ġê³ ł", + "Ø® ص", + "im iz", + "imi z", + "åľ ĭ", + "Ġ над", + "Ġн ад", + "Ġна д", + "Ġ ÅĻ", + "ĠÅ Ļ", + "н оÑģÑĤÑĸ", + "но ÑģÑĤÑĸ", + "ноÑģÑĤ Ñĸ", + "ноÑģ ÑĤÑĸ", + "Ġ اÙģ", + "Ġا Ùģ", + "а нÑĸ", + "ан Ñĸ", + "à¥ĩ à¤Ł", + "à¥ĩठŁ", + "Ġ ë§IJ", + "Ġë§ IJ", + "ãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "Ġ ìĬ¤", + "ĠìĬ ¤", + "ิ à¸ķ", + "å Ħ", + "ÛĮ Ùĩ", + "о ÑĪ", + "ž it", + "ži t", + "ìĭ ¤", + "à¥Ģ न", + "Ġ î", + "æ¥ Ń", + "à¥ĩ न", + "à¥ĩठ¨", + "Ġ Ø°", + "ĠØ °", + "Ġl oại", + "Ġlo ại", + "à¹Ħ à¸Ľ", + "Ñĸ к", + "Ġ кÑĢа", + "Ġк ÑĢа", + "à¥ĭ र", + "ุ à¸Ķ", + "ĠاÙĦ ر", + "ĠÑģ об", + "ĠÑģо б", + "า à¸Ĭ", + "าภĬ", + "Ġसà¤ķ त", + "Ġ ÎĿ", + "ĠÎ Ŀ", + "ا ÙħÙĩ", + "اÙħ Ùĩ", + "à¹ī าà¸Ļ", + "à¹īา à¸Ļ", + "Ġtr ình", + "Ġtrì nh", + "Ġ اÙĦÙģ", + "Ġا ÙĦÙģ", + "ĠاÙĦ Ùģ", + "Ġ اÙĦد", + "ĠاÙĦ د", + "u nun", + "un un", + "unu n", + "о ÑĤов", + "оÑĤ ов", + "оÑĤо в", + "Æ° ợ", + "Æ°á» Ł", + "ĠÑģ во", + "ĠÑģв о", + "ί αÏĤ", + "ία ÏĤ", + "ấ n", + "ог да", + "à¸Ĺ ย", + "Ġb yl", + "Ġby l", + "ØŃ Ø¯", + "à¸ģ ล", + "ب Ùĩ", + "Ġ vÄĽ", + "Ġv ÄĽ", + "è¢ «", + "Ġ Ø¢Ùħ", + "ĠØ¢ Ùħ", + "ĠÄij iá»ģu", + "å ¨", + "Ġk dy", + "Ġkd y", + "Ġ بÙĪ", + "Ġب ÙĪ", + "ẫ n", + "ìľ ł", + "ा à¤ķ", + "ाठķ", + "k ů", + "Ġtr Æ°á»Ŀng", + "ic ké", + "ick é", + "н иÑı", + "ни Ñı", + "Ġ ÏĢοÏħ", + "ĠÏĢ οÏħ", + "ĠÏĢο Ïħ", + "Æ°á»Ł ng", + "н омÑĥ", + "но мÑĥ", + "ном Ñĥ", + "à¹Ī à¸Ļ", + "ู à¹Ī", + "Ġk ết", + "Ġkế t", + "Ġ ï¼¼", + "Ġï¼ ¼", + "Ġ ìĭł", + "Ġìĭ ł", + "i ç", + "Ġn Äĥng", + "ĠnÄĥ ng", + "Äį ÃŃ", + "ÑĤ Ñı", + "ÑĢ еб", + "ÑĢе б", + "Ùĭ ا", + "Ú¯ ÛĮ", + "ãĥ İ", + "Ġkar ÅŁ", + "в Ñĸ", + "Ġph ần", + "à¸Ī ะ", + "ắ t", + "ر Ø©", + "ิ à¸ĩ", + "ิ à¹Ī", + "ा à¤Ī", + "ाठĪ", + "า à¸ŀ", + "าภŀ", + "ÙĨ ÛĮ", + "ìĹ °", + "b ÄĽ", + "Ġ اÙĦص", + "ĠاÙĦ ص", + "í Ĺ", + "Ġ سر", + "Ġس ر", + "l ara", + "la ra", + "lar a", + "ëĭ ¨", + "Ġ ÙĤر", + "ĠÙĤ ر", + "è İ", + "ب د", + "Ġй ого", + "à¥į ह", + "à¥įठ¹", + "Ġc ách", + "Ġcá ch", + "Ġcác h", + "íķĺ ê³ł", + "Ġ ÏĢÏģο", + "ĠÏĢ Ïģο", + "Ġ تع", + "Ġت ع", + "Ĵ Ī", + "Ġ вод", + "Ġв од", + "Ġво д", + "ç¥ ŀ", + "к им", + "ки м", + "Ġd á»±", + "à¹Ģ ห", + "à¹Ģภ«", + "а на", + "ан а", + "Ġ ï½", + "Ġï ½", + "Ġb aÄŁ", + "Ġba ÄŁ", + "Ġप ह", + "Ġ cao", + "Ġc ao", + "Ġca o", + "Ïģ ÏĮ", + "ÙĨ ج", + "ा à¤ı", + "ाठı", + "Ġ å¹´", + "Ġå¹ ´", + "Ġngh iá»ĩp", + "Ġnghiá»ĩ p", + "Û² Û°", + "к аÑı", + "ка Ñı", + "Ïģ ί", + "Ġ бол", + "Ġб ол", + "Ġбо л", + "Ġgi á", + "Ġ зд", + "Ġз д", + "à¥ĩ ल", + "à¥ĩठ²", + "Ġc ấp", + "à¹Ģ ส", + "à¹Ģภª", + "Ïģ γ", + "Ġ ìĤ", + "Ġì Ĥ", + "d ÄĽ", + "à¥ģ न", + "à¥ģठ¨", + "ì Ī", + "ı lan", + "ıl an", + "л аÑģ", + "ла Ñģ", + "Ġ ว", + "Ġภ§", + "Ġ Ïĥε", + "ĠÏĥ ε", + "Ġ Ø«", + "ĠØ «", + "Ġ Ц", + "ĠÐ ¦", + "çĤ º", + "Ġb üy", + "Ġbü y", + "е ÑĨ", + "å¤ ª", + "Ġब न", + "о гÑĢа", + "ог ÑĢа", + "Ġп ÑĢоÑĤ", + "ĠпÑĢ оÑĤ", + "ĠпÑĢо ÑĤ", + "Ġl ượng", + "Ġd ön", + "Ġdö n", + "ร à¸ĩ", + "а ло", + "ал о", + "Ġ جÙħ", + "Ġج Ùħ", + "à¥Ī ,", + "Ġ 미", + "Ġë ¯¸", + "Ġ ê¹", + "Ġê ¹", + "ÙĪ ت", + "à¥Ģ य", + "à¸Ī าà¸ģ", + "Ġch ất", + "Î ©", + "Ġkh ác", + "Ġkhá c", + "Ġth áng", + "j Å¡ÃŃ", + "ĠÂłĠÂł ĠÂłĠÂłĠÂłĠÂłĠÂłĠÂł", + "ĠÂłĠÂłĠÂłĠÂł ĠÂłĠÂłĠÂłĠÂł", + "ĠÂłĠÂłĠÂłĠÂłĠÂłĠÂł ĠÂłĠÂł", + "á»ij t", + "ห ร", + "Ñĸ л", + "åħ ī", + "å Ĥ", + "ÙĦ Ø©", + "Ġ ê±°", + "Ġê± °", + "о воÑĢ", + "ов оÑĢ", + "ово ÑĢ", + "iá»ĥ u", + "Ġ меÑĤ", + "Ġм еÑĤ", + "а ÑĶ", + "Ġ ÑĩаÑģ", + "ĠÑĩ аÑģ", + "ĠÑĩа Ñģ", + "Ïģ ε", + "ì¹ ´", + "âĢĮ Ø´", + "ë¬ ¼", + "ú c", + "âĢĮ Ùĩا", + "i á»ģn", + "iá» ģn", + "iá»ģ n", + "st av", + "sta v", + "í ŀ", + "ĠÙĨ ظ", + "Ĩ Ĵ", + "Ġ ÏĦα", + "ĠÏĦ α", + "Ġ заб", + "Ġз аб", + "Ġза б", + "Ùĥ Ø©", + "Ġг ÑĢÑĥ", + "ĠгÑĢ Ñĥ", + "в о", + "Ġ Ùħج", + "ĠÙħ ج", + "Ġ sah", + "Ġs ah", + "Ġsa h", + "ب ÙĦ", + "ع Ø©", + "Ñĥ ÑĪ", + "ĠÑĤ ем", + "ĠÑĤе м", + "í ĭ", + "e ck", + "ec k", + "Ïī ÏĤ", + "ÙĬ ت", + "ìĹ Ī", + "ç ĭ", + "Ø° ا", + "ì łĢ", + "ìł Ģ", + "Ġн аÑģ", + "Ġна Ñģ", + "Ġ поÑĩ", + "Ġп оÑĩ", + "Ġпо Ñĩ", + "æł ¡", + "Ï Ī", + "Ñģ кой", + "Ñģк ой", + "Ñģко й", + "ü c", + "ÙĤ ÙĦ", + "Ġп оз", + "Ġпо з", + "Ġ оÑģоб", + "ĠоÑģ об", + "า ล", + "าภ¥", + "н Ñĭми", + "нÑĭ ми", + "нÑĭм и", + "о лод", + "ол од", + "оло д", + "è ¼", + "Ġ دÛĮ", + "Ġد ÛĮ", + "Ġ ÑĥÑģÑĤ", + "ĠÑĥ ÑģÑĤ", + "ĠÑĥÑģ ÑĤ", + "Ġ 무", + "Ġë ¬´", + "Ġë¬ ´", + "ÙĬ س", + "ë° ©", + "à¥į à¤ļ", + "à¥įठļ", + "и ла", + "ил а", + "Ġn ên", + "н ие", + "ни е", + "ι ν", + "lar ını", + "ların ı", + "à¹Ģ à¸Ļ", + "à¹ĢภĻ", + "ÙĨ ت", + "a ģı", + "aÄŁ ı", + "ım ız", + "ımı z", + "ĠاÙĦ Ø®", + "à¹Ģ ว", + "à¹Ģภ§", + "à¥į न", + "à¥įठ¨", + "Ġ Ïħ", + "ĠÏ ħ", + "Ġ íĨ", + "Ġí Ĩ", + "Ạ»", + "ิ à¹Ĥ", + "α ÏĤ", + "м еÑĤ", + "ме ÑĤ", + "Ġ zp", + "Ġz p", + "Ġje ho", + "ี ยà¸Ļ", + "ีย à¸Ļ", + "ÑĦ оÑĢ", + "ın ız", + "ını z", + "k lad", + "kl ad", + "kla d", + "íĮ Į", + "uy á»ĩ", + "uyá» ĩ", + "ι ά", + "Ġ ãĢģ", + "ĠãĢ ģ", + "Ø´ ر", + "æ© Ł", + "Ġ تا", + "Ġت ا", + "Ġ зна", + "Ġз на", + "Ġзн а", + "س تاÙĨ", + "ست اÙĨ", + "à¥ĩ र", + "à¥ĩठ°", + "ë§ ¤", + "ç ĥ", + "Ġ же", + "Ġж е", + "า à¸Ķ", + "าภĶ", + "Ġ ض", + "ĠØ ¶", + "é Ń", + "Ġн аз", + "Ġна з", + "Ġ ÛĮا", + "ĠÛĮ ا", + "e né", + "en é", + "ั ย", + "íĸ Īëĭ¤", + "íĸĪ ëĭ¤", + "Ġ بد", + "Ġب د", + "à¥ģ à¤ķ", + "à¥ģठķ", + "ÑĤ ов", + "ÑĤо в", + "ì° ¨", + "Ùĩ د", + "à¸Ķ ย", + "Ġho ặc", + "Ġ ÐŁÑĢи", + "ĠÐŁ ÑĢи", + "ĠÐŁÑĢ и", + "ÙĨ ا", + "çİ ĭ", + "Ñĥ ваÑĤи", + "Ñĥв аÑĤи", + "Ñĥва ÑĤи", + "à¸ļ ร", + "Ġà¤ķ रत", + "Ġà¤ķर त", + "Ïĥ ηÏĤ", + "Ïĥη ÏĤ", + "Ø ¤", + "éķ ·", + "åħ ĭ", + "Ġ دار", + "Ġد ار", + "ั à¹Ī", + "Æ¡ i", + "า à¸Ī", + "าภĪ", + "ý mi", + "ým i", + "ấ u", + "Ġد ست", + "Ġدس ت", + "k em", + "ke m", + "Ġ оÑģнов", + "ĠоÑģ нов", + "ëª ¨", + "Ïģ ά", + "æ ħ", + "Ġ اب", + "Ġا ب", + "ĠØ§Ø ¨", + "å£ «", + "Ħ ĸ", + "Î Ķ", + "ÙĬ Ùĥ", + "í İ", + "Ġy üz", + "a dı", + "ad ı", + "า à¸ķ", + "าภķ", + "ä» Ģ", + "ìĿ´ ëĭ¤", + "Ġ zv", + "Ġz v", + "Ġ tÄĽ", + "Ġt ÄĽ", + "Ġ íĸ", + "Ġí ĸ", + "ठ¥", + "Ġ लà¤Ĺ", + "Ġल à¤Ĺ", + "ìĺ Ģ", + "Ġ ан", + "Ġа н", + "ç Ĺ", + "ìĹ Ń", + "н ÑĸÑģÑĤÑĮ", + "нÑĸ ÑģÑĤÑĮ", + "нÑĸÑģÑĤ ÑĮ", + "Å ŀ", + "Ġph át", + "Ġphá t", + "ÙĤ Ø©", + "Ġth ế", + "Ġ ï¾", + "Ġï ¾", + "ì² ľ", + "Ġ ìĦł", + "ĠìĦ ł", + "à¹ĥ à¸Ĭ", + "i êu", + "iê u", + "ÄŁ ini", + "ÄŁi ni", + "ÄŁin i", + "ÙĤ د", + "Ġkter ý", + "Ñģ кий", + "Ñģк ий", + "Ñģки й", + "à¥į ड", + "à¥įठ¡", + "t adır", + "ta dır", + "Ġ Ñģм", + "ĠÑģ м", + "ÙĪ Ùģ", + "ا رÙĬ", + "ار ÙĬ", + "å¾ ·", + "ิ ม", + "Ø® ت", + "å¾ Ī", + "Ġ гоÑĢ", + "Ġг оÑĢ", + "ï¼Į æĪij", + "Ġ ìĺģ", + "Ġìĺ ģ", + "Ġ ëıĻ", + "Ġëı Ļ", + "Ñģ а", + "à¹Ģ à¸Ħ", + "à¹ĢภĦ", + "ë ¯¼", + "ë¯ ¼", + "ึ à¹Ī", + "Ġl iên", + "Ġli ên", + "Ġ Ùĩا", + "ĠÙĩ ا", + "ler ini", + "leri ni", + "lerin i", + "Ġ ÑĨе", + "ĠÑĨ е", + "ا ÙĦÛĮ", + "اÙĦ ÛĮ", + "Ġ मह", + "Ġम ह", + "Ġv ụ", + "Ġvá» ¥", + "Ġxu ất", + "ิ à¸ģ", + "ĠпÑĢо ÑĨ", + "Ġ αν", + "Ġα ν", + "ÑĢ им", + "ÑĢи м", + "Ġc ần", + "Ġ иÑħ", + "Ġи Ñħ", + "н оÑİ", + "но Ñİ", + "Ġt ÃŃnh", + "ĠtÃŃ nh", + "ĠtÃŃn h", + "Ġb á»Ļ", + "Ñĸ м", + "Ġnh áºŃn", + "ãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "ÙĬ Ùĩ", + "äº ļ", + "Ġоб ла", + "Ġобл а", + "Ġ à¤ĺ", + "Ġठĺ", + "n ých", + "ný ch", + "æĿ ij", + "ÙĦ س", + "Ġне об", + "ا بة", + "اب Ø©", + "v á", + "ο Ïħν", + "οÏħ ν", + "ÑĢ еÑĤ", + "ÑĢе ÑĤ", + "a sında", + "as ında", + "ası nda", + "Ġ yar", + "Ġy ar", + "Ġya r", + "ĠÄij iá»ĥm", + "ĠÄiji á»ĥm", + "н Ñİ", + "ा à¤Ĺ", + "ाठĹ", + "Ġ Ú©Ø´", + "ĠÚ© Ø´", + "Ñĥ з", + "Ġ à¸Ķ", + "ĠภĶ", + "ả m", + "к ами", + "ка ми", + "кам и", + "Ġ ÎĻ", + "ĠÎ Ļ", + "à¹Ģ à¸ķ", + "à¹Ģภķ", + "Ġl Ỽ", + "Ġlá» Ľ", + "ÙĤ ÛĮ", + "k ou", + "ko u", + "ÙĦ ب", + "и ва", + "ив а", + "æ ĵ", + "Ạ¹", + "κ α", + "ë² ķ", + "èĤ ²", + "á»ij n", + "Ġbel ir", + "íĨ ł", + "ÏĦ ή", + "Ñĭ ÑĪ", + "ãĤ ĥ", + "Ġ або", + "Ġа бо", + "Ġаб о", + "s ký", + "sk ý", + "à¥Ī स", + "Ġп ÑĢоÑģÑĤ", + "ĠпÑĢ оÑģÑĤ", + "ĠпÑĢо ÑģÑĤ", + "ĠпÑĢоÑģ ÑĤ", + "ekt edir", + "ekte dir", + "a ž", + "à¹Ī à¸Ń", + "Ġ оÑģÑĤ", + "Ġо ÑģÑĤ", + "ĠоÑģ ÑĤ", + "Ġb ảo", + "Ġ 大", + "Ġå¤ §", + "Ñĭ м", + "Ġm ů", + "Æ°á»Ľ ng", + "åı Ĺ", + "ÙĪ Ùĩ", + "Ġ Ñĥп", + "ĠÑĥ п", + "Ùĥ ÙĨ", + "Ġ ÏĦÏīν", + "ĠÏĦ Ïīν", + "ëħ ¸", + "Ġ à¸Ĭ", + "ĠภĬ", + "Ġ ÑĤого", + "ĠÑĤ ого", + "ĠÑĤо го", + "Ġ Ш", + "ĠÐ ¨", + "ìĿ´ íĬ¸", + "à¹Ģ à¸Ń", + "à¹ĢภŃ", + "и нÑĥ", + "ин Ñĥ", + "ĺ ħ", + "uy á»ĥn", + "uyá» ĥn", + "í ĴĪ", + "íĴ Ī", + "ạ nh", + "ạn h", + "Ġ ãĥ½", + "Ġãĥ ½", + "ÑĤ обÑĭ", + "ÑĤо бÑĭ", + "Ġt ạo", + "å· Ŀ", + "ĠÄij á»iji", + "Ġ ëıĦ", + "Ġëı Ħ", + "ä¹ ħ", + "Ġ تÙħ", + "Ġت Ùħ", + "а ÑĢи", + "аÑĢ и", + "st vÃŃ", + "Ġc ùng", + "íŀ Ī", + "Ġt arih", + "Ġtar ih", + "ì ¤ij", + "ì¤ ij", + "í Ĥ", + "Ġ دÙĪ", + "Ġد ÙĪ", + "ì ¡", + "а лÑĸ", + "ал Ñĸ", + "ภIJ", + "Ġc òn", + "и ÑĤÑĮÑģÑı", + "иÑĤÑĮ ÑģÑı", + "Ġव ह", + "ÅĻ eb", + "ÅĻe b", + "éĽ »", + "Ġ ми", + "Ġм и", + "o vÄĽ", + "ov ÄĽ", + "Ġd ân", + "ÑĨ ÑĸÑı", + "ÑĨÑĸ Ñı", + "ÛĮ ست", + "ÛĮس ت", + "åŃ ¸", + "Ġ ür", + "Ġü r", + "ص ÙĦ", + "ÑĢ иÑĤ", + "ÑĢи ÑĤ", + "า ห", + "าภ«", + "ãģ¦ ãģĦãģŁ", + "ãģ¦ãģĦ ãģŁ", + "θ η", + "ç ĸ", + "Ø Ł", + "i ÅŁtir", + "iÅŁ tir", + "iÅŁti r", + "ĠУкÑĢаÑĹ Ð½Ð¸", + "ĠУкÑĢаÑĹн и", + "ë° ĺ", + "à¥ĩ à¤ĸ", + "à¥ĩठĸ", + "Ġv á»ĭ", + "Ġvá» ĭ", + "Î ¥", + "Ġ ãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢ ĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢ ĠãĢĢ", + "ĠãĢĢĠ ãĢĢĠãĢĢ", + "Ġb ằng", + "Ġt á»ķ", + "Ġtá» ķ", + "о ли", + "ол и", + "๠Ĩ", + "e zi", + "ez i", + "Ġ ни", + "Ġн и", + "Ġ ÎĽ", + "ĠÎ Ľ", + "Ġr ất", + "μ ÏĢ", + "ж д", + "ा रत", + "ार त", + "Ġu ž", + "à¥ĩ स", + "à¥ĩठ¸", + "ا ÙĨد", + "اÙĨ د", + "Ġb ý", + "à¥ĭ ल", + "d ÄĽl", + "dÄĽ l", + "ìķ ĺ", + "Ġ جد", + "Ġج د", + "å ³", + "ื à¹ī", + "Ġb ản", + "ạ ch", + "ạc h", + "ĠÅŁ ey", + "Ġ Ùĩر", + "ĠÙĩ ر", + "Ġ jen", + "Ġj en", + "Ġje n", + "Ġв Ñĸн", + "ĠвÑĸ н", + "es inde", + "esi nde", + "esin de", + "Ġ हम", + "Ġह म", + "çł Ķ", + "à¸ļ à¸ļ", + "Ġch ức", + "Ġchứ c", + "ึ à¸ĩ", + "m alar", + "ma lar", + "mal ar", + "ĠdeÄŁ il", + "æĿ ±", + "Ġt ác", + "Ġtá c", + "Ġk iÅŁ", + "Ġki ÅŁ", + "Ġt á»±", + "Ġtá» ±", + "à¥į ध", + "à¥įठ§", + "à¸Ļ à¸Ĺ", + "ÎŁ Î¥", + "ÎŁÎ ¥", + "ÑģÑĮ кого", + "ÑģÑĮк ого", + "ÑģÑĮко го", + "Ġ ध", + "Ġठ§", + "Ġ ìĿĺ", + "ĠìĿ ĺ", + "ÙĨ Ø©", + "ü s", + "è «", + "Ġtaraf ından", + "ħ n", + "Ġk inh", + "Ġki nh", + "Ġkin h", + "Ïĥ ι", + "à¥Ģ à¤ķ", + "íı ¬", + "ا ÙħÙĦ", + "اÙħ ÙĦ", + "ĠV iá»ĩt", + "Ġ ÏĦον", + "ĠÏĦ ον", + "ĠÏĦο ν", + "Ġ تÙĨ", + "Ġت ÙĨ", + "Ġà¤ħ ध", + "à¹Ī าà¸Ļ", + "à¹Īา à¸Ļ", + "r ı", + "à¤Ĥ द", + "é ª", + "Ġch úng", + "Ġchú ng", + "г и", + "ÏĦ αν", + "ÏĦα ν", + "Ġд оп", + "Ġдо п", + "н Ñĸй", + "нÑĸ й", + "он алÑĮ", + "она лÑĮ", + "Î ĵ", + "Ġb üyük", + "Ġbü yük", + "Ġbüy ük", + "á ¼", + "à¥Ģ र", + "Ø° Ùĩ", + "Ġ ìķĦìĿ´", + "ĠìķĦ ìĿ´", + "Ġdo anh", + "Ġ ÅĻÃŃ", + "ĠÅĻ ÃŃ", + "ÑĨ Ñı", + "Ġt Æ°", + "Ġ सर", + "Ġस र", + "Ġm ÃŃst", + "ĠmÃŃ st", + "Ġë° ı", + "Ø´ ÙĨ", + "Ñĸ б", + "Ġ ãĢĢãĢĢ", + "ĠãĢĢ ãĢĢ", + "çĻ ½", + "о Ñģп", + "оÑģ п", + "к Ñĸв", + "кÑĸ в", + "Ġt ế", + "ãģ Ń", + "Ġt Ỽi", + "Ġtá» Ľi", + "Ġ ìļ°", + "Ġìļ °", + "æľ ĥ", + "ا ÛĮد", + "اÛĮ د", + "æ §", + "ìł IJ", + "Ġd urum", + "Ġdu rum", + "Ġdur um", + "à¹Ģ à¸Ĭ", + "à¹ĢภĬ", + "à¥Ģ त", + "ĠÙĩ ÙĪ", + "à¥Ĥ प", + "Ġgö re", + "Ġgör e", + "Ġ ÑĢоб", + "ĠÑĢ об", + "Ġth iết", + "Ġthi ết", + "a jÃŃ", + "aj ÃŃ", + "ĠاÛĮ راÙĨ", + "âĢ ı", + "ÑģÑĮ коÑĹ", + "ÑģÑĮк оÑĹ", + "ÑģÑĮко ÑĹ", + "ç ħ", + "Ġ ìĦ¸", + "ĠìĦ ¸", + "á» «", + "Ġ à¸Ĥ", + "ĠภĤ", + "ů m", + "ëŀ Į", + "ι κή", + "ικ ή", + "Ġм ог", + "Ġмо г", + "ÙĨ ÙĬ", + "ãģ ļ", + "ा ब", + "ाठ¬", + "æ ¢", + "ع Ùĩ", + "ÑĶ м", + "Ġ ά", + "ĠÎ ¬", + "οÏħ ÏĤ", + "ز ار", + "زا ر", + "ê± ´", + "s ká", + "sk á", + "Ġ اÙĬ", + "Ġا ÙĬ", + "Ġi lg", + "Ġil g", + "Ġ sı", + "Ġs ı", + "e leri", + "el eri", + "eler i", + "ele ri", + "Ġ ÎĹ", + "ĠÎ Ĺ", + "u yor", + "uy or", + "uyo r", + "ठ·", + "ि म", + "िठ®", + "е ва", + "ев а", + "ä»Ģ ä¹Ī", + "ุ à¹Ī", + "à¹ī าà¸ĩ", + "à¹īา à¸ĩ", + "Ġh iá»ĩu", + "Ġhi á»ĩu", + "Ġ اع", + "Ġا ع", + "ĠØ§Ø ¹", + "Ġö zel", + "Ġöz el", + "ν η", + "ëĦ ¤", + "Ġto Ãłn", + "Ġm oh", + "Ġmo h", + "ĠÑı кÑĸ", + "ĠÑıк Ñĸ", + "ç Ĭ", + "mak tadır", + "makta dır", + "makt adır", + "ت اب", + "تا ب", + "Ġ ÑģÑĥ", + "ĠÑģ Ñĥ", + "Ġ yük", + "Ġy ük", + "Ġ Χ", + "ĠÎ §", + "з на", + "зн а", + "о Ñħ", + "Æ° u", + "à¸Ĺ ร", + "ãħ ĭ", + "Ġkar ÅŁÄ±", + "ĠkarÅŁ ı", + "Ùħ ÛĮ", + "Ġ ÑĨÑĸ", + "ĠÑĨ Ñĸ", + "ا دÛĮ", + "اد ÛĮ", + "à¥Ģ ।", + "Ïģ η", + "л ов", + "ло в", + "å¤ «", + "Ġph ân", + "Ġп оп", + "Ġпо п", + "ç· ļ", + "Ñı н", + "ุ à¸ĵ", + "ÑģÑĤ Ñĥп", + "ίν αι", + "ίνα ι", + "ĠÑĢ окÑĥ", + "ĠÑĢок Ñĥ", + "l arda", + "lar da", + "è» Ĭ", + "Ïģ Ïī", + "ÙĪ اÙĩ", + "ÙĪا Ùĩ", + "è ħ", + "à¥į रत", + "à¥įर त", + "å· ±", + "Ġ ÑĢÑĥ", + "ĠÑĢ Ñĥ", + "Ġth á»ĭ", + "Ġthá» ĭ", + "ĠÄij iá»ĩn", + "ĠÄiji á»ĩn", + "ìĸ ij", + "n ého", + "né ho", + "ส ม", + "ê° ģ", + "a cÃŃ", + "ac ÃŃ", + "Ġг ода", + "Ġгод а", + "k az", + "ka z", + "Ġb öl", + "Ġbö l", + "Ġg ian", + "Ġgi an", + "Ġgia n", + "à¸Ľ ร", + "ï¾ ŀ", + "ั à¸ķ", + "Ġg erç", + "Ġger ç", + "Ġ اج", + "Ġا ج", + "ĠØ§Ø ¬", + "Ġ ή", + "ĠÎ ®", + "Ùij Ùİ", + "Ñģ кого", + "Ñģк ого", + "Ñģко го", + "ÑĢ аÑħ", + "ÑĢа Ñħ", + "Ġ Åł", + "ĠÅ ł", + "Ġ à¤Ľ", + "ĠठĽ", + "о ÑģÑĤÑĸ", + "оÑģ ÑĤÑĸ", + "оÑģÑĤ Ñĸ", + "ë³ ¸", + "ÑģÑĮ кий", + "ÑģÑĮк ий", + "Û± Û¹", + "Û±Û ¹", + "Ñĥ ва", + "Ñĥв а", + "ا ÙĦÙħ", + "اÙĦ Ùħ", + "ĠÙħ ص", + "ëį ĺ", + "b ÃŃ", + "Ġ ÙĪج", + "ĠÙĪ ج", + "ÏĦ ÏĮ", + "e bilir", + "eb ilir", + "Ġt iếp", + "Ġti ếp", + "Ġtiế p", + "é ¤", + "Ġ ä¸Ģ", + "Ġä¸ Ģ", + "ĠÑģ ÑĢед", + "ë Ĥ¨", + "ëĤ ¨", + "ε Ïģι", + "εÏģ ι", + "ا Ø«", + "Ø§Ø «", + "Ñģ ов", + "Ñģо в", + "Ïĩ ε", + "Ġ ë¶Ħ", + "Ġë¶ Ħ", + "Ġta ké", + "Ġtak é", + "Ġd üz", + "Ġdü z", + "Ġ íıī", + "Ġíı ī", + "Ġ اص", + "Ġا ص", + "ĠØ§Ø µ", + "ĠÏĥ ÏĦην", + "ĠÏĥÏĦη ν", + "ë° Ķ", + "Ġh á»Ļi", + "Ġhá»Ļ i", + "ر Ùĩ", + "ب ÛĮ", + "в е", + "Ġا ÙĦØ·", + "ĠاÙĦ Ø·", + "Ġ ÑĢез", + "ĠÑĢ ез", + "ĠÑĢе з", + "ب ار", + "با ر", + "Ġgi ải", + "Ġgiả i", + "ãģ« ãģª", + "ol eÄį", + "ole Äį", + "ठł", + "; :", + "ä½ ı", + "Ú© Ùĩ", + "Ġ Φ", + "ĠÎ ¦", + "Ġ ÑĥÑĩ", + "ĠÑĥ Ñĩ", + "âĹı âĹı", + "ู à¸ģ", + "à¥ĩ व", + "à¥ĩठµ", + "Ïĥ α", + "Ġ اÙĨت", + "Ġا ÙĨت", + "ĠاÙĨ ت", + "Ġв п", + "Ġqu ả", + "e nin", + "en in", + "eni n", + "Ġ êµIJ", + "Ġêµ IJ", + "μ ά", + "Ú© ت", + "ÙĤ Ùĩ", + "Ġ Türkiye", + "ĠTür kiye", + "ĠTürk iye", + "Ġth ức", + "Ġthứ c", + "íĹ ĺ", + "iá»ĩ m", + "Ġत à¤ķ", + "Ġ éĩ", + "Ġé ĩ", + "़ ा", + "ĠØ£ ÙĪ", + "á le", + "ál e", + "ç© ¶", + "ĠÅŁ ekil", + "ĠÅŁek il", + "к ого", + "ко го", + "ког о", + "ÑĪ иÑħ", + "ÑĪи Ñħ", + "ا ÛĮØ´", + "اÛĮ Ø´", + "ت ÙĨ", + "н ей", + "не й", + "à¸Ĺ ำ", + "Ġ Ñıв", + "ĠÑı в", + "ر Ùħ", + "Ġm áy", + "Ġmá y", + "ห ม", + "ı yla", + "ıy la", + "Ġc ầu", + "Ġд об", + "Ġдо б", + "Ġ ìŀ¥", + "Ġìŀ ¥", + "o vý", + "ov ý", + "ι κÏĮ", + "ικ ÏĮ", + "Ġ ãħĩ", + "Ġãħ ĩ", + "Ġ ÑĤеÑĢ", + "ĠÑĤ еÑĢ", + "ĠÑĤе ÑĢ", + "Į Ĵ", + "س ÙĬ", + "Ġol uÅŁ", + "Ġb yla", + "Ġby la", + "Ġbyl a", + "ع ÙĦ", + "Ġ ÙĥاÙĨ", + "ĠÙĥ اÙĨ", + "б оÑĢ", + "бо ÑĢ", + "ì² Ń", + "ãĥ ı", + "u bl", + "ub l", + "Ġ اخ", + "Ġا Ø®", + "ĠØ§Ø ®", + "ÙĦ ÙĪد", + "ÙĦÙĪ د", + "ت ÙĬ", + "l adı", + "la dı", + "lad ı", + "Ġ Ã¶ÄŁ", + "Ġö ÄŁ", + "r uh", + "ru h", + "ç ¿", + "Ġ بعد", + "Ġب عد", + "Ġبع د", + "ÎĻ Îij", + "i dir", + "id ir", + "idi r", + "ãģ« ãģ¯", + "Ġs öy", + "Ġsö y", + "Ġkh ách", + "Ġkhác h", + "Ġkhá ch", + "ÑĨ е", + "Ġ Ø´ÙĪد", + "ĠØ´ ÙĪد", + "ĠØ´ÙĪ د", + "ç ¸", + "Ġ ëħ¸", + "Ġëħ ¸", + "ú p", + "Ġn eden", + "Ġne den", + "Ġned en", + "Ġh óa", + "Ġà¤ī प", + "Ïĥ ειÏĤ", + "Ïĥει ÏĤ", + "æĪ ¿", + "Ġ ³³", + "ĠÂł Âł", + "Ġ ìķĮ", + "Ġì ķĮ", + "Ġìķ Į", + "à¥Ģ ,", + "´ ij", + "ê u", + "ÑĢ ок", + "ÑĢо к", + "à¹Ģ à¸Ī", + "à¹ĢภĪ", + "Ġε ίναι", + "Ġ بÙĦ", + "Ġب ÙĦ", + "Ġ Ñģов", + "ĠÑģ ов", + "ĠÑģо в", + "Ġö nem", + "Ġön em", + "Ġöne m", + "Ġ à¸ĭ", + "Ġภĭ", + "ì§Ģ ë§Į", + "å® ĺ", + "ê² ©", + "ìĦ Ŀ", + "Ġ až", + "Ġa ž", + "Ġd uy", + "Ġdu y", + "ãģ¨ ãģĦ", + "Ø Ľ", + "δ ο", + "θ ε", + "Ùĥ اÙĨ", + "ठ¢", + "ा à¤ĵ", + "ाठĵ", + "Ġd á»ĭch", + "Ġdá»ĭ ch", + "á»Ļ ng", + "á»Ļn g", + "ส ำ", + "Ä ı", + "Ġ ÑĹÑħ", + "ĠÑĹ Ñħ", + "α λ", + "e Äį", + "ç² ¾", + "Ġ зв", + "Ġз в", + "èĩª å·±", + "Ġ اÙĦÙĦÙĩ", + "ĠاÙĦ ÙĦÙĩ", + "ĠاÙĦÙĦ Ùĩ", + "Ġ СÑĤ", + "ĠС ÑĤ", + "Ġ سÙĨÚ¯", + "Ġس ÙĨÚ¯", + "ĠسÙĨ Ú¯", + "Ġ дом", + "Ġд ом", + "Ġдо м", + "г оÑĤов", + "го ÑĤов", + "гоÑĤ ов", + "п овÑĸд", + "пов Ñĸд", + "по вÑĸд", + "Ġ Bá»Ļ", + "ĠB á»Ļ", + "à¥įय à¤ķ", + "Ø· Ø©", + "м ов", + "мо в", + "à¸Ĺ าà¸ĩ", + "ึ à¸ģ", + "Ġ Ñĸз", + "ĠÑĸ з", + "à¥ĭ à¤ľ", + "Ġgö ster", + "Ġ باشد", + "Ġبا شد", + "Ġباش د", + "i leri", + "il eri", + "ile ri", + "iler i", + "ĠÑģ еб", + "Ñī о", + "Ġãħĩ ãħĩ", + "ب ت", + "Ñģ е", + "à¥ĩ à¤ľ", + "à¥ĩठľ", + "Ġl ên", + "Ġ تÙĪ", + "Ġت ÙĪ", + "Ñĸ ÑģÑĤÑĮ", + "ÑĸÑģ ÑĤÑĮ", + "ÑĸÑģÑĤ ÑĮ", + "ï¾Ĩ ï¾Ĩ", + "Ġth Æ°á»Ŀng", + "Ġol duÄŁu", + "Ġoldu ÄŁu", + "ĠolduÄŁ u", + "v ÄĽt", + "vÄĽ t", + "ìĨ į", + "ãģĿ ãģĨ", + "Ġ ìĦ±", + "ĠìĦ ±", + "ë° ľ", + "Ġ à¸ģาร", + "Ġà¸ģ าร", + "Ġ Ø´Ùĩر", + "ĠØ´ Ùĩر", + "ĠØ´Ùĩ ر", + "s led", + "sl ed", + "ả nh", + "ản h", + "æŀ Ĺ", + "l acak", + "la cak", + "lac ak", + "Ġm ình", + "Ú© ÛĮ", + "Ġ à¹ĥà¸Ļ", + "Ġd ùng", + "Ġdù ng", + "Ġм аÑģ", + "Ġма Ñģ", + "ÑĦ ек", + "æ° Ķ", + "é §", + "Ġ اØŃ", + "Ġا ØŃ", + "ĠØ§Ø Ń", + "èµ °", + "ÎĻ Îļ", + "à¥ĩ ।", + "ÑģÑĮ ка", + "ÑģÑĮк а", + "Ġ ÑĩаÑģÑĤ", + "ĠÑĩ аÑģÑĤ", + "ĠÑĩа ÑģÑĤ", + "ĠÑĩаÑģ ÑĤ", + "lar ının", + "ların ın", + "larını n", + "Ġ ê¹Ģ", + "Ġê¹ Ģ", + "ì¸ µ", + "н ими", + "ни ми", + "ним и", + "èª ŀ", + "åĢ ĭ", + "Ġ êµŃ", + "Ġêµ Ń", + "к оÑĢ", + "ко ÑĢ", + "m aya", + "ma ya", + "may a", + "ิ à¹Ĥà¸Ļ", + "ิà¹Ĥ à¸Ļ", + ". ศ", + "Ġh á»ĩ", + "Ġhá» ĩ", + "Ġ تÙĤ", + "Ġت ÙĤ", + "γ κ", + "Ġà¤Ĩप à¤ķ", + "Ñģ ÑĤоÑĢ", + "ÑģÑĤ оÑĢ", + "ĠÄij o", + "Ġch ủ", + "ا ÛĮت", + "اÛĮ ت", + "ĠQu á»ijc", + "г лÑı", + "гл Ñı", + "ãĢĤ ãĢįĊĊ", + "ãĢĤãĢį ĊĊ", + "Ġn Ãło", + "à¸Ń ล", + "æĬ Ĭ", + "ÙĪ رت", + "ÙĪر ت", + "Ġb ude", + "Ġbu de", + "Ġbud e", + "æĽ ¸", + "e lik", + "el ik", + "eli k", + "Ġ جÙĩ", + "Ġج Ùĩ", + "ĠبÙĪ ابة", + "èĬ ±", + "د ار", + "دا ر", + "Ġb ýt", + "Ġbý t", + "Ñĩ е", + "ãĤĵ ãģł", + "ĠÙħ Ø·", + "l ere", + "le re", + "ler e", + "ÎĹ Î£", + "íĺ ķ", + "âĸ į", + "ÄŁ u", + "Ġв з", + "ÙĬ ز", + "ĠÐł оÑģ", + "íĭ °", + "Ġد اش", + "ì§ ij", + "a tı", + "at ı", + "m esi", + "me si", + "mes i", + "ãĤī ãĤĮ", + "ů v", + "r át", + "rá t", + "оÑģ об", + "åIJ Ħ", + "uy á»ĩn", + "uyá»ĩ n", + "åģ ļ", + "ü st", + "üs t", + "éĩ İ", + "α Ïĥ", + "Ġm ặt", + "е лов", + "ел ов", + "ело в", + "åį ļ", + "д ж", + "Ġد ارد", + "Ġدار د", + "Ġf ark", + "Ġfa rk", + "Ġfar k", + "à¹ī วย", + "à¹īว ย", + "о ни", + "он и", + "Ġب Ø®", + "à¥ģ त", + "à¥ģठ¤", + "ĠÄij ây", + "α Ïģα", + "αÏģ α", + "Ġ δια", + "Ġδ ια", + "Ġδι α", + "Ġ è¯", + "Ġè ¯", + "к аÑħ", + "ка Ñħ", + "ch áz", + "z enÃŃ", + "ze nÃŃ", + "zen ÃŃ", + "ÑĢ оп", + "ÑĢо п", + "à¥Ģ म", + "í Ĩµ", + "íĨ µ", + "d ü", + "à¸ł าà¸ŀ", + "Ġ íĬ", + "Ġí Ĭ", + "ÙĪ ا", + "Ġt á»ijt", + "Ġtá»ij t", + "ï¼Ł ãĢįĊĊ", + "ï¼ŁãĢį ĊĊ", + "Ġ æľĪ", + "Ġnh Æ°ng", + "ĠnhÆ° ng", + "Ġne ž", + "à¥ĭ ड", + "ìĹIJ ê²Į", + "à¤Ĥ ड", + "¶ Į", + "Ġ меÑģÑĤ", + "Ġм еÑģÑĤ", + "ा à¤ģ", + "ाठģ", + "ì¦ Ŀ", + "ĠÄij ang", + "ĠÄija ng", + "à¸Ń à¸Ķ", + "í ĽĦ", + "á»į i", + "sk ého", + "ské ho", + "Ġд ок", + "Ġдо к", + "Ġ تص", + "Ġت ص", + "Ġph òng", + "Ġ ê°ķ", + "Ġê° ķ", + "Ġtr Æ°á»Ľc", + "í ijľ", + "Ù Ķ", + "Ġph ÃŃ", + "Ġch á»įn", + "ä¹ IJ", + "ĠÅŁek ilde", + "ĠÅŁekil de", + "Ġ íİ", + "Ġí İ", + "é º", + "ë £¨", + "ë£ ¨", + "à¥Ī ।Ċ", + "à¥Ī। Ċ", + "ÙĪ رÛĮ", + "ÙĪر ÛĮ", + "Ñģ ÑĤÑĢа", + "ÑģÑĤ ÑĢа", + "ÑģÑĤÑĢ а", + "il di", + "ild i", + "Ġα Ïħ", + "в аннÑı", + "ван нÑı", + "ìļ ¸", + ". âĢľĊĊ", + ".âĢľ ĊĊ", + "ĠÑĤак же", + "ëĵ ±", + "е ка", + "ек а", + "æī į", + "Ùħ Ø©", + "Ġph Æ°Æ¡ng", + "é© ¬", + "ãĢĢ ĠãĢĢ", + "ãĢĢĠ ãĢĢ", + "ov ých", + "ový ch", + "ี ยà¸ĩ", + "ีย à¸ĩ", + "ĠT ru", + "ĠTr u", + "е Ñģп", + "еÑģ п", + "st up", + "stu p", + "Ä Į", + "Ġdal Å¡ÃŃ", + "ز ÛĮ", + "Ġ 매", + "Ġë§ ¤", + "Ġ обÑĢаз", + "Ġоб ÑĢаз", + "ĠобÑĢа з", + "Ġaç ık", + "Ġaçı k", + "ê° ķ", + "Ùģ ادÙĩ", + "Ú¯ اÙĨ", + "à¹ī à¸Ļ", + "ẩ n", + "å·¥ ä½ľ", + "Ġ तर", + "Ġत र", + "ÙĬ ع", + "Ġ ãĢĬ", + "ĠãĢ Ĭ", + ", âĢľ", + "Ġ nev", + "Ġn ev", + "Ġne v", + "ั à¸į", + "ÄŁ ını", + "ģın ı", + "Ġ jin", + "Ġj in", + "Ġji n", + "ا خت", + "اخ ت", + "س ر", + "Ġt Ãłi", + "Ġkter á", + "Ġا ÙĦÙĦ", + "ĠاÙĦ ÙĦ", + "ठħ", + "iz met", + "izm et", + "à¥ģ म", + "à¥ģठ®", + "า ะ", + "าภ°", + "Ġ ê·", + "Ġê ·", + "l ıģı", + "lı ģı", + "lıģ ı", + "çı ¾", + "li ÄŁi", + "liÄŁ i", + "êµ °", + "a lık", + "al ık", + "alı k", + "Ġد ÙĪر", + "ĠدÙĪ ر", + "Ġ ìĭ¤", + "Ġìĭ ¤", + "Ġз аÑģ", + "Ġза Ñģ", + "ÙĤ ÙĬ", + "Ġ ứng", + "Ġ ÙĥÙĩ", + "ĠÙĥ Ùĩ", + "ÎŁ Σ", + "ÎŁÎ £", + "è¨ Ń", + "ç Į", + "ãģĦ ãģŁ", + "íĺ Ħ", + "Ġ ÑĤе", + "ĠÑĤ е", + "е ÑĢÑĸ", + "еÑĢ Ñĸ", + "s ız", + "sı z", + "Ġ ý", + "Ġà ½", + "д ов", + "до в", + "Ġ à¤ĩसà¤ķ", + "Ġà¤ĩस à¤ķ", + "г од", + "го д", + "Ġby lo", + "Ġbyl o", + "าà¸Ħ ม", + "е нием", + "ен ием", + "ени ем", + "ение м", + "Ð ¨", + "æľ ¯", + "Ġप हल", + "Ġपह ल", + "Ġ aÅŁ", + "Ġa ÅŁ", + "ि à¤ľ", + "िठľ", + "åĵ ¡", + "в аÑĢ", + "ва ÑĢ", + "à¹ī ำ", + "â ĮĴ", + "ov án", + "ová n", + "Ġgi úp", + "Ð ¥", + "ĠÑģ Ñĥд", + "ĠÑģÑĥ д", + "Ġà¤ķ म", + "ạ m", + "ر س", + "Ġ 人", + "Ġ بÛĮ", + "Ġب ÛĮ", + "Ġà¤īन à¤ķ", + "ë¦ ½", + "áºŃ y", + "Ġv áºŃt", + "л ÑıеÑĤÑģÑı", + "лÑı еÑĤÑģÑı", + "лÑıеÑĤ ÑģÑı", + "Ġs eç", + "Ġse ç", + "Ġ ì½", + "Ġì ½", + "ÑĢ Ñĥж", + "ÑĢÑĥ ж", + "ت ص", + "| :", + "Ġ ëł", + "Ġë ł", + "и ми", + "им и", + "Ġ лÑİб", + "ĠлÑİ Ð±", + "Ġ à¸ľ", + "Ġภľ", + "ï¼Į ä½Ĩ", + "Ġ нав", + "Ġн ав", + "Ġна в", + "âĢ ¬", + "à¹Ī าย", + "à¹Īา ย", + "Ġ رس", + "Ġر س", + "s iniz", + "sin iz", + "ë ¨", + "е ниÑİ", + "ен иÑİ", + "ени Ñİ", + "Ġ ล", + "Ġภ¥", + "ا سÛĮ", + "اس ÛĮ", + "ॠľ", + "ĠÙ¾ ÛĮØ´", + "ĠÙ¾ÛĮ Ø´", + "ί δ", + "Ġ Ù¾ÛĮ", + "ĠÙ¾ ÛĮ", + "еÑĢж ав", + "ठĨ", + "ĠdÃ¼ÅŁ ün", + "å¿ «", + "ÑĢ еÑģ", + "ÑĢе Ñģ", + "åħ «", + "ÑĤ Ñĸ", + "ि à¤Ł", + "िठŁ", + "Ġ ÑĤеÑħ", + "ĠÑĤ еÑħ", + "ĠÑĤе Ñħ", + "ú t", + "ÙĨ Ùĩ", + "Ġ ÙĨØ´", + "ĠÙĨ Ø´", + "çĻ º", + "Ġ ê°¤", + "Ġê° ¤", + "л ед", + "ле д", + "Ġ ëĵ¤", + "Ġëĵ ¤", + "Ġbi lg", + "Ġbil g", + "Ġsp oleÄį", + "Ġspol eÄį", + "Ġspole Äį", + "ĠÄij Æ¡n", + "Ġ à¤īत", + "Ġà¤ī त", + "Ġtr á»ĭ", + "Ġ عÙħ", + "Ġع Ùħ", + "Ġ ।", + "Ġà ¥¤", + "Ġॠ¤", + "Ġú Äį", + "ãģ ¸", + "ว à¸ģ", + "ĠÑģл ÑĥÑĩа", + "ĠÑģлÑĥÑĩ а", + "ĠÑģлÑĥ Ñĩа", + "á» įng", + "á»į ng", + "á»įn g", + "åı Ī", + "и ÑĤÑĥ", + "иÑĤ Ñĥ", + "æľī éĻIJ", + "ë¦ °", + "ëĭ ĺ", + "Ġho ạt", + "ĠìĿ´ ëıĻ", + "з наÑĩ", + "зна Ñĩ", + "зн аÑĩ", + "Ġاست ÙģادÙĩ", + "ĠпÑĢо ÑĨеÑģ", + "ĠпÑĢоÑĨ еÑģ", + "an ın", + "anı n", + "г Ñĥ", + "Ġ اÙĦØ«", + "ĠاÙĦ Ø«", + "æĹ¥ æľ¬", + "ι κά", + "ικ ά", + "ĠÑĹ ÑĹ", + "ì§ ģ", + "i nu", + "in u", + "Ġس از", + "ãĤ ¡", + "ï¾ ī", + "Ġ اÙĤ", + "Ġا ÙĤ", + "Ġk ế", + "ů sob", + "à¹ĩ à¸ģ", + "åIJ §", + "æ¼ Ķ", + "Ñī ие", + "Ñīи е", + "ç Ĩ", + "ÑĮ ого", + "à¥ĭ à¤Ł", + "ا Ù¾", + "ا٠¾", + "å ®¤", + "å® ¤", + "Ġ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "Ġtr iá»ĥn", + "Ġtri á»ĥn", + "Ġt áºŃp", + "é£ Ł", + "ë ¹", + "ĠÑĩеÑĢ ез", + "Ġ ÑĨи", + "ĠÑĨ и", + "Ñģ Ñĥ", + "Ġ нем", + "Ġн ем", + "Ġне м", + "Ġ аÑĢ", + "Ġа ÑĢ", + "Ġ ÙĦا", + "ĠÙĦ ا", + "Ġ ì§Ħ", + "Ġì§ Ħ", + "ç Ł³", + "çŁ ³", + "Ġп ÑĢоб", + "ĠпÑĢ об", + "ĠпÑĢо б", + "Ġ ìĽIJ", + "ĠìĽ IJ", + "ÛĮ ÙĨÛĮ", + "ÛĮÙĨ ÛĮ", + "Ñİ Ñĩи", + "âĢ į", + "Û± Û³", + "Û±Û ³", + "ã Ĥ¬", + "ãĤ ¬", + "çłĶ 究", + "í Ĥ¤", + "íĤ ¤", + "Ġger çek", + "Ġgerç ek", + "ĠØŃ Ø³", + "íĶ ¼", + "èĤ ¡", + "Ġ ÏĦι", + "ĠÏĦ ι", + "ĠvÅ¡ ech", + "ĠvÅ¡e ch", + "Ġv ì", + "ا ÙĨÙĬ", + "اÙĨ ÙĬ", + "ĠÙĩ ست", + "Ġ ëĤ¨", + "Ġë Ĥ¨", + "ĠëĤ ¨", + "ÅĻ ej", + "ÅĻe j", + "е ÑĢг", + "еÑĢ г", + "Ġs öz", + "Ġsö z", + "ĠاÙĦ Ùħت", + "ĠاÙĦÙħ ت", + "Ġch ế", + "á»ĵ i", + "åı ¤", + "âĸį âĸį", + "á»ĵ ng", + "á»ĵn g", + "ãĥ ¢", + "Ġ ди", + "Ġд и", + "ε λ", + "Ġ она", + "Ġо на", + "Ġон а", + "Ġ най", + "Ġн ай", + "Ġна й", + "Ġ _{", + "Ġ_ {", + "п ол", + "по л", + "al iz", + "ali z", + "Ġt Äĥng", + "Ġ dÃŃ", + "Ġd ÃŃ", + "é p", + "Ġ ÙĦÙħ", + "ĠÙĦ Ùħ", + "Ġm ož", + "Ġmo ž", + "Ġng oÃłi", + "è Ĺ", + "Ġ Ñĩем", + "ĠÑĩ ем", + "ĠÄij á»ķ", + "ĠÄijá» ķ", + "е ÑĤа", + "еÑĤ а", + "åı ²", + "ĠÑģ каз", + "ĠÑģк аз", + "ĠÑģка з", + "ãĤ¿ ãĥ¼", + "а нÑĮ", + "ан ÑĮ", + "Ġg öz", + "Ġgö z", + "ë³ Ħ", + "ãģĭ ãģ£ãģŁ", + "Ġ ëįĶ", + "Ġëį Ķ", + "ĠÙĨ ÙĤ", + "Ġ ÑĥÑĩа", + "ĠÑĥ Ñĩа", + "ĠÑĥÑĩ а", + "Ġsa hip", + "Ġsah ip", + "ĠÑģ пе", + "ĠÑģп е", + "ί οÏħ", + "ίο Ïħ", + "ì ½Ķ", + "ì½ Ķ", + "Ġ ëĪ", + "Ġë Ī", + "m am", + "ma m", + "Ġr oce", + "Ġro ce", + "Ġroc e", + "Ġ ÙĨاÙħ", + "ĠÙĨ اÙħ", + "еÑĢ аÑĤÑĥ", + "еÑĢа ÑĤÑĥ", + "ı p", + "ãģĦ ãģ¦", + "Ġ íķĻ", + "Ġíķ Ļ", + "Ġ à¤ĩन", + "Ġà¤ĩ न", + "å ©", + "Ġnh iên", + "a tır", + "at ır", + "atı r", + "ÅĻ enÃŃ", + "ÅĻe nÃŃ", + "ÅĻen ÃŃ", + "د Ø©", + "ãĥª ãĥ¼", + "ล à¸ĩ", + "Ġ éĢ", + "Ġé Ģ", + "Ġ à¹Ģà¸Ľ", + "Ġà¹Ģ à¸Ľ", + "Ġà¹ĢภĽ", + "д Ñĸ", + "ÎŃ Ïģ", + "ìĦ ¤", + "г ÑĢа", + "es ine", + "esi ne", + "esin e", + "Ġ ее", + "Ġе е", + "Ġ iki", + "Ġi ki", + "Ġik i", + "Ġت ج", + "lar ına", + "ları na", + "ların a", + "d ür", + "dü r", + "ĠاÙĦ Ø°", + "Ùħ ت", + "ĠठIJ", + "ि द", + "िठ¦", + "Ġ ë¹", + "Ġë ¹", + "ÑĦоÑĢм а", + "ÑĦоÑĢ ма", + "Ġ они", + "Ġо ни", + "Ġон и", + "г оÑĢ", + "го ÑĢ", + "н еÑģ", + "не Ñģ", + "ìĺĢ ëĭ¤", + "ıl dı", + "Ġ çek", + "Ġç ek", + "Ġ дов", + "Ġд ов", + "Ġдо в", + "د ÛĮ", + "Ġ ÄĮesk", + "ĠÄĮ esk", + "ĠÄĮes k", + "ÑĪ а", + "Ġ ات", + "Ġا ت", + "ĠØ§Ø ª", + "å± ĭ", + "æĸ ¼", + "Ġ práv", + "Ġp ráv", + "Ġpr áv", + "Ġprá v", + "é mu", + "ém u", + "å¸ Ī", + "ãħĭ ãħĭ", + "Ġil gili", + "Ġilg ili", + "Ġilgi li", + "ห ว", + "ठĩ", + "ा ष", + "ाठ·", + "ëŀ ij", + "as yon", + "asy on", + "ÑĨ ÑĮ", + "à¹ģ à¸ķ", + "ợ i", + "Ġв ÑĭÑģ", + "ĠвÑĭ Ñģ", + "ÑĸлÑĮ ки", + "ĠкоÑĤоÑĢ Ñĭе", + "н ики", + "ни ки", + "ник и", + "Ġ اد", + "Ġا د", + "ĠØ§Ø ¯", + "Ġ živ", + "Ġž iv", + "Ġži v", + "Ġα ÏĢο", + "ĠαÏĢ ο", + "ر ض", + "ا Ø©", + "Ø§Ø ©", + "Ġk dyž", + "Ġkdy ž", + "ữ a", + "Ġ ëĮĢíķľ", + "ĠëĮĢ íķľ", + "Ġt ôi", + "Ġtô i", + "Ñĥ ÑĶ", + "ز ر", + "Ġ å¥", + "Ġå ¥", + "ãĥĭ ãĥĭ", + "ب Ø©", + "ÏĦ οÏĤ", + "ÏĦο ÏĤ", + "ÑĨи он", + "Ġ ÙħÙĬ", + "ĠÙħ ÙĬ", + "Ġ Äĥn", + "ĠÄ ĥn", + "à¥ĩ à¤Ĺ", + "à¥ĩठĹ", + "Ġ ÑĢег", + "ĠÑĢ ег", + "ĠÑĢе г", + "ĠlỼ n", + "ì¤ Ģ", + "ìĭ ¬", + "Ġb iết", + "Ġbi ết", + "a ları", + "al arı", + "ala rı", + "alar ı", + "Ùģ ÙĬ", + "ä¸ĸ çķĮ", + "Ġне обÑħодим", + "Ġнеоб Ñħодим", + "à¸Ļ ว", + "ν ÏĦ", + "Ġ ảnh", + "íĸ Ī", + "Ġ वर", + "Ġव र", + "h led", + "hl ed", + "hle d", + "ิ à¸Ī", + "æŃ »", + "ĠاÙĦ تÙĬ", + "ĠاÙĦت ÙĬ", + "н оÑģ", + "но Ñģ", + "p rav", + "pr av", + "pra v", + "Ñı ÑĤи", + "ÑıÑĤ и", + "Ñī а", + "ÙĪ ÙĨÙĩ", + "ÙĪÙĨ Ùĩ", + "Ġ aÄŁ", + "Ġa ÄŁ", + "à¸ŀ ระ", + "à¸ŀร ะ", + "Ġth á»ijng", + "Ġthá» ijng", + "ÑĦ и", + "Ġг олов", + "Ġгол ов", + "Ġk hoa", + "Ġkh oa", + "Ġkho a", + "Ġ ëłĪ", + "Ġëł Ī", + "ãģ Ĵ", + "Ġget ir", + "Ġge tir", + "Ø´ ت", + "ж еннÑı", + "жен нÑı", + "е нÑĸ", + "ен Ñĸ", + "Ġgi ữ", + "Ġgiá» ¯", + "ler inin", + "leri nin", + "lerin in", + "lerini n", + "à¥Ģ व", + "éģ ¸", + "स र", + "ĠÑĩ елов", + "à¥į à¤ľ", + "à¥įठľ", + "ĠбÑĥ ло", + "Ġ اÙĨد", + "Ġا ÙĨد", + "ĠاÙĨ د", + "ั à¸Ļà¸Ĺ", + "ัà¸Ļ à¸Ĺ", + "è® ©", + "Ġq uyá»ģn", + "Ġquy á»ģn", + "ĠØŃ Ø§ÙĦ", + "ì² ĺ", + "Ġ лÑİд", + "ĠлÑİ Ð´", + "Ïģ Ïĩ", + "алÑĮ но", + "ãĢĢ ãĥ½", + "ê¸ ī", + "ãĤ ±", + "ĠÙħ رد", + "ĠÙħر د", + "Ġ ông", + "Ġô ng", + "Ġ اش", + "Ġا Ø´", + "ĠØ§Ø ´", + "大 åѦ", + "ì¦ Ī", + "æĪ ¦", + "e yi", + "ey i", + "Ġ ÐIJн", + "ĠÐIJ н", + "ि प", + "िठª", + "Ġt iêu", + "Ġti êu", + "Ø´ ÛĮ", + "ắ n", + "é ŃĶ", + "éŃ Ķ", + "ãģ¨ ãģĦãģĨ", + "ãģ¨ãģĦ ãģĨ", + "Ġ ìłĢ", + "Ġì łĢ", + "Ġìł Ģ", + "к ÑĤи", + "кÑĤ и", + "Ġ ÙħØŃÙħد", + "ĠÙħØŃ Ùħد", + "Ġ íĨµ", + "Ġí Ĩµ", + "ĠíĨ µ", + "ุ ม", + "åį ¡", + "о ÑĢов", + "оÑĢ ов", + "оÑĢо в", + "к оÑİ", + "ко Ñİ", + "Ġl á»±c", + "å³ ¶", + "Ġ رÙĪز", + "Ġر ÙĪز", + "ĠرÙĪ ز", + "Ñħ Ñĸд", + "Ġh á»ĵ", + "Ġhá» ĵ", + "Ġ ül", + "Ġü l", + "Ġ Ø´Ùħ", + "ĠØ´ Ùħ", + "ÙĨ س", + "ب ÙĪ", + "Ġth êm", + "ạ c", + "åº ľ", + "e chn", + "ec hn", + "ech n", + "Ġ Îļα", + "ĠÎļ α", + "èij Ĺ", + "çľ ¼", + "á h", + "Ġ ι", + "ĠÎ ¹", + "ê¹Į ì§Ģ", + "m az", + "ma z", + "λο γ", + "Ġjs me", + "Ġ á¼", + "Ġá ¼", + "Ġп ÑĢави", + "ĠпÑĢ ави", + "ĠпÑĢав и", + "ĠпÑĢа ви", + "к лад", + "Ġth ủ", + "Ġthá» §", + "s ah", + "sa h", + "ÄŁ it", + "ÄŁi t", + "Ġ ÙģÛĮ", + "ĠÙģ ÛĮ", + "ен но", + "à¥ģ à¤Ľ", + "à¥ģठĽ", + "ãģ »", + "çĻ ¾", + "и ÑĤа", + "иÑĤ а", + "ĠбÑĭ ло", + "ĠбÑĭл о", + "Ġv ys", + "Ġvy s", + "Ġ ì¶ľ", + "Ġì¶ ľ", + "ắ ng", + "ắn g", + "ĠÄij ại", + "ĠÙħ ÙĪرد", + "ĠÙħÙĪ رد", + "ĠÙħÙĪر د", + "е ла", + "ел а", + "Ñĸ ÑĪ", + "л еннÑı", + "лен нÑı", + "æ IJ", + "Ġ нед", + "Ġн ед", + "Ġне д", + "i yat", + "iy at", + "iya t", + "ì ¼", + "Ġol duÄŁunu", + "ĠolduÄŁ unu", + "ĠolduÄŁu nu", + "د اÙĨ", + "دا ÙĨ", + "í Ŀ", + "Ġ سÛĮ", + "Ġس ÛĮ", + "ี à¸ģ", + "ÄĽ st", + "ım ı", + "ä¸ī ä¸ī", + "ãĤ ½", + "ĠÑĤ еп", + "ĠÑĤе п", + "Ġ ÑĢай", + "ĠÑĢ ай", + "ĠÑĢаР¹", + "ĠÑĢа й", + "ा ध", + "ाठ§", + "Ġ ìĤ¬ëŀĮ", + "ĠìĤ¬ ëŀĮ", + "ĠT rung", + "ĠTr ung", + "ĠTru ng", + "ï¼ı ï¼ı", + "Ġt âm", + "Å¡ enÃŃ", + "Å¡e nÃŃ", + "Å¡en ÃŃ", + "ãĥ į", + "Ġ ÏĦοÏħÏĤ", + "ĠÏĦ οÏħÏĤ", + "ĠÏĦοÏħ ÏĤ", + "Ġ нÑĸ", + "Ġн Ñĸ", + "в ид", + "ви д", + "æ ¿", + "Ġ ظ", + "ĠØ ¸", + "ãĥ ¯", + "ì ¢ħ", + "ì¢ ħ", + "в аÑĤи", + "ва ÑĤи", + "ваÑĤ и", + "Ġqu á", + "ภ¤", + "ĠÄij Æ°á»Ŀng", + "à¥ģ द", + "à¥ģठ¦", + "r oj", + "ro j", + "Ġ ÑĥÑģ", + "ĠÑĥ Ñģ", + "é¦ Ļ", + "ì½ ĺ", + "Ġ ÙĪت", + "ĠÙĪ ت", + "ม าà¸ģ", + "มา à¸ģ", + "åĪ ĩ", + "Ġ án", + "Ġá n", + "Ġм ед", + "ìĹIJ ëĬĶ", + "Ġh lav", + "Ġhl av", + "ر ت", + "à¹ĥ à¸Ī", + "æ´ ²", + "Ġ лÑĸ", + "Ġл Ñĸ", + "æ Īĺ", + "æĪ ĺ", + "ÙĪ ÙĨد", + "ÙĪÙĨ د", + "è¶ ³", + "åĭ Ļ", + "çĶ ³", + "Ġ ì±", + "Ġì ±", + "ĠìĿ´ëıĻ íķ©ëĭĪëĭ¤", + "Ñī еÑģÑĤв", + "Ñīе ÑģÑĤв", + "Ġ ë¶Ī", + "Ġë ¶Ī", + "Ġë¶ Ī", + "ÙĦ ÙĪ", + "ü ven", + "èĪ ĩ", + "Ġgi Ỽi", + "Ġgiá» Ľi", + "Ġ ÙĪÙĤ", + "ĠÙĪ ÙĤ", + "Ġê°¤ ë¡ľê·¸", + "Ġ عاÙħ", + "Ġع اÙħ", + "ĺ IJ", + ": ::::", + ":: :::", + ":::: :", + "::: ::", + "Ġ Ñĥд", + "ĠÑĥ д", + "- ÑĤо", + "-ÑĤ о", + "Ġ ÑĦоÑĢ", + "ĠÑĦ оÑĢ", + "и ни", + "ин и", + "ãģĹ ãģĦ", + "ãģĹãģ Ħ", + "Ġê°¤ë¡ľê·¸ ë¡ľ", + "ãģ ³", + "ãĥ© ãĤ¤", + "e ná", + "en á", + "Ġ nez", + "Ġn ez", + "Ġne z", + "Ġönem li", + "Ġ ниÑħ", + "Ġн иÑħ", + "Ġни Ñħ", + "à¤Ĥ स", + "Ġà¤īस à¤ķ", + "à¥įर द", + "Ġn ói", + "Ġnó i", + "Ùĥ ÙĦ", + "ิ ว", + "κ ο", + "à¥ģ à¤ĸ", + "à¥ģठĸ", + "ö yle", + "öy le", + "ά λ", + "ó ng", + "ón g", + "ĠداÙĨ Ø´", + "Ġз б", + "ì »", + "à¸ľ ล", + "ëĵ¤ ìĿ´", + "Ġe tk", + "Ġet k", + "ر ات", + "را ت", + "Ġ εκ", + "Ġε κ", + "ÑĤ ÑĢа", + "ÑĤÑĢ а", + "à¥į तर", + "à¥įत र", + "à¤Ĥ ब", + "Ġм ÑĸÑģ", + "ĠмÑĸ Ñģ", + "æł ¹", + "ãĥ Ļ", + "Ġt á»ī", + "Ġtá» ī", + "à¹Ģ à¸ĭ", + "à¹Ģภĭ", + "ìĪ ł", + "ï¼Į ä¸į", + "ìĺ ¨", + "Ġm ÄĽst", + "ĠmÄĽ st", + "ģ µ", + "a zı", + "az ı", + "r ada", + "ra da", + "rad a", + "ÏĢ α", + "m é", + "ÙĨ اÙħÙĩ", + "ÙĨا ÙħÙĩ", + "ÙĨاÙħ Ùĩ", + "ا ÛĮÙĦ", + "اÛĮ ÙĦ", + "μ η", + "l uk", + "lu k", + "Ùĥ ÙĬ", + "Ġ ï¼ī", + "Ġï¼ ī", + "Ġ деÑĤ", + "Ġд еÑĤ", + "Ġде ÑĤ", + "Ġiç inde", + "Ġiçin de", + "Ġiçi nde", + "Ñı м", + "Ġd Æ°á»", + "ĠdÆ° á»", + "ĠпÑĢед ÑģÑĤав", + "ü re", + "ür e", + "åķ Ĭ", + "ĠÑĤ ÑĢÑĥ", + "ĠÑĤÑĢ Ñĥ", + "es ini", + "esi ni", + "esin i", + "Ġ але", + "Ġа ле", + "Ġал е", + "ãĥ³ ãĥī", + "ãĥ³ãĥ ī", + "à¥ĥ त", + "ε Ïħ", + "à¥ģ à¤Ĩ", + "à¥ģठĨ", + "Ġh iç", + "Ġhi ç", + "çĶ º", + "Ġ Ðĸ", + "ĠÐ ĸ", + "ç ħ§", + "çħ §", + "k á", + "Ġtr á»įng", + "Ġ تش", + "Ġت Ø´", + "ा श", + "ाठ¶", + "ĠÙħ Ø«", + "e tim", + "et im", + "eti m", + "Ġth ấy", + "Ġब ह", + "ع ت", + "ึ à¹ī", + "Ġs ev", + "Ġse v", + "Ñģ ÑĤа", + "ÑģÑĤ а", + "Ġc ứ", + "Ġt iá»ģn", + "Ġti á»ģn", + "à¥Ģ à¤ľ", + "Ñı г", + "ĠоÑĢг ани", + "ĠоÑĢган и", + "Ġб Ñĭл", + "ĠбÑĭ л", + "t ür", + "tü r", + "Ġب ازÛĮ", + "Ġبا زÛĮ", + "Ġباز ÛĮ", + "Ġ ìŀ¬", + "Ġìŀ ¬", + "व र", + "æľīéĻIJ åħ¬åı¸", + "k up", + "ku p", + "Ġ iyi", + "Ġi yi", + "Ġiy i", + "íķĺ ê²Į", + "ãĢĢ l", + "ãĤ· ãĥ§", + "ا رة", + "ار Ø©", + "ส ร", + "Ġt ÃŃch", + "ĠtÃŃ ch", + "Ġ каÑĢ", + "Ġк аÑĢ", + "Ġка ÑĢ", + "и б", + "ĠвÑĸд повÑĸд", + "ĠвÑĸдпов Ñĸд", + "Ġpo dle", + "Ġpod le", + "à¥įर à¤ķ", + "i yon", + "iy on", + "к оном", + "ко ном", + "кон ом", + "Ġ μÎŃ", + "Ġμ ÎŃ", + "Ġп ÑĢоиз", + "ĠпÑĢо из", + "Ġ âĢı", + "ĠâĢ ı", + "m ektedir", + "mekte dir", + "Ω ÎĿ", + "Ġb áo", + "à¸Ī ำ", + "ëį Ķ", + "ë¸ Į", + "Ġs ợ", + "ÛĮ رÛĮ", + "ÛĮر ÛĮ", + "о нÑĥ", + "он Ñĥ", + "ın daki", + "ında ki", + "ınd aki", + "алÑĮ ного", + "алÑĮно го", + "μ β", + "л из", + "ли з", + "Ġjej ich", + "æĸ ½", + "ä¾ ¿", + "l eÅŁtir", + "le ÅŁtir", + "leÅŁ tir", + "ĠÙĪ Ø£", + "Ġस ब", + "l erde", + "ler de", + "Ġ ÚĨÙĩ", + "ĠÚĨ Ùĩ", + "ÏĦ ÎŃ", + "Ġg ì", + "Ġ Ãļ", + "Ġà ļ", + "ĠÑĢаÑģ п", + "ĠÑĢа Ñģп", + "Ġt üm", + "à¹Ģ à¸ĩ", + "à¹Ģภĩ", + "èIJ ½", + "ìĨ ¡", + "à¹Ħ à¸Ĺย", + "m Ä±ÅŁtır", + "mÄ±ÅŁ tır", + "mÄ±ÅŁtı r", + "Ġ ÙĤرار", + "ĠÙĤر ار", + "Ġ à¸Ħาส", + "Ġà¸Ħ าส", + "Ġk ıs", + "Ġkı s", + "о ваниÑı", + "ов аниÑı", + "ова ниÑı", + "овани Ñı", + "ован иÑı", + "ãĤĤ ãģ®", + "د اÙħ", + "دا Ùħ", + "ìľ ¡", + "ol oj", + "olo j", + "ĠпоÑģл е", + "ĠпоÑģ ле", + "Ġ Так", + "ĠТ ак", + "ĠТа к", + "Ġб олее", + "Ġбол ее", + "ĠÄij á»ķi", + "ĠÄijá»ķ i", + "l ak", + "la k", + "í ħĮ", + "íħ Į", + "Ġa yn", + "Ġay n", + "Ñı Ñģ", + "Ġп ог", + "Ġпо г", + "Ġar asında", + "Ġaras ında", + "Ġara sında", + "Ġarası nda", + "Ī ¬", + "à¥Ĥ ल", + "Ġ ανα", + "Ġα να", + "Ġαν α", + "Ġq uyết", + "Ġquy ết", + "Ġthu á»Ļc", + "Ġd ün", + "Ġdü n", + "Ġp ÅĻes", + "ĠpÅĻ es", + "ĠpÅĻe s", + "ÑĦ Ñĸ", + "Ġ å¸", + "Ġå ¸", + "ا ÙĦÙĬ", + "اÙĦ ÙĬ", + "Ġп овеÑĢ", + "Ġпо веÑĢ", + "Ġпов еÑĢ", + "Ñĩ ина", + "Ñĩи на", + "Ñĩин а", + "s ko", + "sk o", + "çµ IJ", + "Ø ¡", + "Ġ гÑĢа", + "Ġг ÑĢа", + "ĠгÑĢ а", + "о ÑĤи", + "оÑĤ и", + "Ġqu á»ijc", + "ÑĨ Ñĸв", + "ÑĨÑĸ в", + "l endir", + "len dir", + "lendi r", + "в Ñĸд", + "вÑĸ д", + "Ġж иÑĤ", + "ü yor", + "üy or", + "ï¼Į ä»ĸ", + "lar ında", + "ları nda", + "ların da", + "Ġu yg", + "Ġuy g", + "Ġtr ÃŃ", + "Ġ Ø´ÙĨ", + "ĠØ´ ÙĨ", + "ا بÙĦ", + "اب ÙĦ", + "æ· ±", + "Âł p", + "Ñģ каÑı", + "Ñģк аÑı", + "Ñģка Ñı", + "о ÑĤа", + "оÑĤ а", + "ÙĪ Ø·", + "Ġ اط", + "Ġا Ø·", + "ĠØ§Ø ·", + "ä¾ Ĩ", + "Ġз аÑĤ", + "Ġза ÑĤ", + "Ġ име", + "Ġи ме", + "Ġим е", + "à¹Ģà¸Ĺ ศ", + "ëĭ ´", + "n ÄĽnÃŃ", + "nÄĽ nÃŃ", + "nÄĽn ÃŃ", + "Ñĥ лÑı", + "Ñĥл Ñı", + "- п", + "å ĺ", + "Ġв ип", + "Ġви п", + "аÑĢа кÑĤ", + "à¹Ģ à¸ļ", + "à¹Ģภļ", + "ç¦ ı", + "Ïģ Ïİ", + "س Ùĩ", + "à¥Į र", + "Ġdi ÄŁer", + "à¹Ĥ à¸Ķย", + "à¹Ĥà¸Ķ ย", + "ĠÑģп оÑģоб", + "ĠÑģпоÑģ об", + "åį ·", + "è ĸ", + "а нÑĤ", + "ан ÑĤ", + "Ñİ ÑĤÑĮÑģÑı", + "ÑİÑĤÑĮ ÑģÑı", + "ĠÑį ÑĤом", + "ĠÑįÑĤ ом", + "ĠÑįÑĤо м", + "Ġ ï½Ģ", + "Ġï½ Ģ", + "ส าม", + "ì m", + "ĠÑĪ к", + "Ġ à¸Ľà¸£à¸°", + "Ġà¸Ľ ระ", + "Ġà¸Ľà¸£ ะ", + "़ à¥Ģ", + "e kl", + "ek l", + "m uÅŁ", + "mu ÅŁ", + "ĠÑĤак ож", + "ÙĪ سط", + "ÙĪس Ø·", + "Ġ Äįi", + "ĠÄį i", + "ี à¸Ļ", + "ÛĮ ÙĨÙĩ", + "ÛĮÙĨ Ùĩ", + "ÄĽ k", + "å½ ¼", + "le rine", + "ler ine", + "leri ne", + "lerin e", + "ĠÄij ất", + "à¥ģ à¤ı", + "à¥ģठı", + "ол оÑģ", + "оло Ñģ", + "Ġ å°ı", + "Ġå° ı", + "ز ÙĬØ©", + "زÙĬ Ø©", + "Ġв ла", + "à¥Ģ ल", + "Ġ etti", + "Ġe tti", + "Ġet ti", + "Ġett i", + "ĠÑģ оÑģÑĤав", + "ĠÑģо ÑģÑĤав", + "ĠÑģоÑģÑĤ ав", + "ÙĦ اÙĦ", + "ÙĦا ÙĦ", + "Ġ çİ", + "Ġç İ", + "ĠpÅĻÃŃ pad", + "ëŁ °", + "ุ à¸ģ", + "Ġ Ñĩи", + "ĠÑĩ и", + "å ħį", + "åħ į", + "n ÄĽjÅ¡ÃŃ", + "nÄĽ jÅ¡ÃŃ", + "ิ ล", + "åį Ģ", + "s kých", + "sk ých", + "ský ch", + "า ศ", + "าภ¨", + "åIJ Ĺ", + "Ġ íĺĦ", + "Ġíĺ Ħ", + "Ġal ın", + "å§ Ķ", + "à¸ŀ ร", + "až d", + "Ġб ÑĸлÑĮ", + "ĠбÑĸ лÑĮ", + "ĠбÑĸл ÑĮ", + "à¹Ī วà¸Ļ", + "à¹Īว à¸Ļ", + "o og", + "oo g", + "a cı", + "ac ı", + "l ıģ", + "lı ÄŁ", + "Ġk hu", + "Ġkh u", + "Ġh izmet", + "Ġ éĽ", + "Ġé Ľ", + "Ġ Îĺ", + "ĠÎ ĺ", + "Ġde ÄŁer", + "ĠdeÄŁ er", + "åħ Ń", + "Ġ دÙĩ", + "Ġد Ùĩ", + "Ġn ÄĽk", + "ĠnÄĽ k", + "à¸Ħ à¸Ļ", + "е ÑĤÑĮ", + "еÑĤ ÑĮ", + "ب اÙĨ", + "با ÙĨ", + "ÏĦ ική", + "ÏĦικ ή", + "ÏĦι κή", + "ĠÄij á»ĭa", + "ĠÄijá»ĭ a", + "Ġ Công", + "ĠC ông", + "íĮ IJ", + "Ġк огда", + "ĠÚ© ÙĨد", + "ĠÚ©ÙĨ د", + "ãģ§ ãģį", + "ĠÏĢ εÏģι", + "ĠÏĢεÏģ ι", + "ĠÏĢε Ïģι", + "lar dan", + "larda n", + "Ġ зем", + "Ġз ем", + "ت ÙĪاÙĨ", + "تÙĪ اÙĨ", + "è³ ĩ", + "li kle", + "lik le", + "Ġt ụ", + "Ġtá» ¥", + "Ġd ẫn", + "Ġn ay", + "Ġna y", + "Ġ ÑģÑĤоÑĢ", + "ĠÑģ ÑĤоÑĢ", + "ĠÑģÑĤ оÑĢ", + "ĠÑģÑĤо ÑĢ", + "ĠØ´ Ùħا", + "ĠØ´Ùħ ا", + "Ø« ر", + "Ġd edi", + "Ġde di", + "Ġded i", + "к ое", + "ко е", + "ë ijIJ", + "ëij IJ", + "ÑĨ ев", + "ÑĨе в", + "ج Ùĩ", + "Ġm ůže", + "Ġmů že", + "Ġmůž e", + "à¥ģ प", + "à¥ģठª", + "à¥įर म", + "Ġ taÅŁ", + "Ġt aÅŁ", + "Ġta ÅŁ", + "оÑĢ ÑĤ", + "γ Ïģα", + "çĻ ¼", + "า à¸ļ", + "าภļ", + "iá» ħn", + "iá»ħ n", + "ĠÙħ ست", + "ĠÙħس ت", + "л екÑģ", + "ле кÑģ", + "лек Ñģ", + "Ġ prav", + "Ġp rav", + "Ġpr av", + "Ġpra v", + "Ġд оÑģ", + "Ġдо Ñģ", + "Ġd Ä±ÅŁ", + "Ġ zem", + "Ġz em", + "Ġze m", + "Ġg iao", + "Ġgi ao", + "Ġgia o", + "Ġv last", + "Ġvl ast", + "Ġvlas t", + "ĠÑį ÑĤого", + "ĠÑįÑĤ ого", + "ĠÑįÑĤо го", + "ï½ °", + "ว à¸ĩ", + "ÑĢ ой", + "ÑĢо й", + "Ġbir lik", + "e ný", + "en ý", + "Ġ ëĭ¨", + "Ġëĭ ¨", + "ов ани", + "ова ни", + "ован и", + "é£ İ", + "íı ī", + "Ġz ah", + "Ġza h", + "б а", + "åĬ ©", + "éĢ ²", + "ê ¶Į", + "Ġd iye", + "Ġdi ye", + "Ġdiy e", + "à¤Ĥ à¤ķ", + "Ġch uyá»ĥn", + "Ġ ìĹŃ", + "ĠìĹ Ń", + "Ġ ÑĤÑĢи", + "ĠÑĤ ÑĢи", + "ĠÑĤÑĢ и", + "Ġö nce", + "Ġön ce", + "Ġönc e", + "ï¼Į è¿Ļ", + "o ại", + "л еÑĤ", + "ле ÑĤ", + "ĠÏĥ Ïħν", + "ĠÏĥÏħ ν", + "l ád", + "lá d", + "ç e", + "t ü", + "Ġ Äįást", + "ĠÄį ást", + "ĠÄįá st", + "Ġ εν", + "Ġε ν", + "Ġb iá»ĩt", + "Ġ é«", + "Ġé «", + "à¥ĭ à¤ķ", + "ÙĦ ات", + "ÙĦا ت", + "ب اÙĦ", + "با ÙĦ", + "e cies", + "ec ies", + "eci es", + "Ġ ëĭ¹", + "Ġëĭ ¹", + "à¸Ĭ à¸Ļ", + "ÏĦ αÏĤ", + "ÏĦα ÏĤ", + "à¥į ण", + "à¥įठ£", + "u jÃŃcÃŃ", + "uj ÃŃcÃŃ", + "ujÃŃ cÃŃ", + "Äį et", + "Äįe t", + "Ġп об", + "Ġпо б", + "ÙĪ ار", + "ÙĪا ر", + "i yas", + "iy as", + "iya s", + "Ġd ruh", + "Ġdr uh", + "Ġdru h", + "د د", + "ÏĮ ν", + "ÑĢ ен", + "ÑĢе н", + "า รà¸ĸ", + "าร à¸ĸ", + "ä½ İ", + "ìķ ½", + "ÑĢ оз", + "ÑĢо з", + "ëĬĶ ëį°", + "ãĤĵ ãģª", + "Äį enÃŃ", + "Äįe nÃŃ", + "Äįen ÃŃ", + "**** ********", + "******** ****", + "****** ******", + "***** *******", + "******* *****", + "Ġ Ρ", + "ĠÎ ¡", + "ĠÑĤ омÑĥ", + "ĠÑĤо мÑĥ", + "ĠÑĤом Ñĥ", + "ร à¸ģ", + "à¥ģ स", + "à¥ģठ¸", + "ä¹ Ŀ", + "å°± æĺ¯", + "£ i", + "éĺ ²", + "Ùĥ ر", + "ĠÑį ÑĤи", + "ĠÑįÑĤ и", + "ĠÚ© Ø´ÙĪر", + "ĠÚ©Ø´ ÙĪر", + "Ġ ê°IJ", + "Ġê° IJ", + "Ġ ад", + "Ġа д", + "Ġ داد", + "Ġد اد", + "éģ İ", + "Ù «", + "Ġl áºŃp", + "Ġ اÙĦÙĩ", + "Ġا ÙĦÙĩ", + "ĠاÙĦ Ùĩ", + "æľ Ľ", + "Ġ تÙĩ", + "Ġت Ùĩ", + "ì§ Ī", + "ãģ§ ãģĤãĤĭ", + "ãģ§ãģĤ ãĤĭ", + "Ġ меж", + "Ġм еж", + "ĠÑĢ езÑĥлÑĮÑĤ", + "ĠÑĢез ÑĥлÑĮÑĤ", + "ç į", + "е мÑĥ", + "ем Ñĥ", + "Ġ تÙĪاÙĨ", + "Ġت ÙĪاÙĨ", + "ĠتÙĪ اÙĨ", + "Ġ راÙĩ", + "Ġر اÙĩ", + "Ġرا Ùĩ", + "ãĥ¼ ãĥł", + "ãĥ¼ãĥ ł", + "åĦ ¿", + "å± ŀ", + "б Ñĭ", + "á ¿", + "à¸Ħ ล", + "à¥ĭ à¤Ī", + "üt ün", + "à¤Ĺ र", + "ìķĺ ëĭ¤", + "âĪ §", + "Ġ ì°¨", + "Ġì° ¨", + "çµ Ħ", + "μα ÏĦα", + "ุ à¸Ļ", + "Ġ ÑĤом", + "ĠÑĤ ом", + "ĠÑĤо м", + "еÑĢ в", + "Îij Σ", + "ĠiÅŁ lem", + "ع Ùħ", + "ë ĥ", + "ãĥ Ħ", + "ا Ùģت", + "اÙģ ت", + "åĬ ŀ", + "Ġ nes", + "Ġn es", + "Ġne s", + "av aÅŁ", + "ava ÅŁ", + "ĠÙĨ ÛĮز", + "ĠÙĨÛĮ ز", + "å¼ º", + "Ġ éĻ", + "Ġé Ļ", + "Ñĸн нÑı", + "æ² ³", + "á ÅĻ", + "æĿ IJ", + "ĠØ£ ÙĬ", + "Ġ ì¹´", + "Ġì¹ ´", + "Ġn enÃŃ", + "Ġne nÃŃ", + "Ġnen ÃŃ", + "Ġ ÙĪÙħ", + "ĠÙĪ Ùħ", + "Ġ Ú©Ùħ", + "ĠÚ© Ùħ", + "i ếu", + "iế u", + "Ġ æ°", + "Ġæ °", + "åĮ »", + "Ġz or", + "Ġzo r", + "ί Ïĥ", + "ि ध", + "िठ§", + "Ġп оказ", + "Ġпо каз", + "Ġпок аз", + "Ġпока з", + "ह र", + "Ġiç er", + "ØŃ Ø©", + "ि à¤ĸ", + "िठĸ", + "а да", + "ад а", + "تر ÛĮÙĨ", + "ترÛĮ ÙĨ", + "Ġ bao", + "Ġb ao", + "Ġba o", + "Ġx ã", + "à¹Ģ à¸Ħร", + "à¹Ģà¸Ħ ร", + "Ġngh Ä©", + "à¹ģ à¸ļà¸ļ", + "à¹ģà¸ļ à¸ļ", + "ĠdoÄŁ ru", + "ĠdoÄŁr u", + "Ñĸ ÑĤи", + "ÑĸÑĤ и", + "Ġ بÙĬÙĨ", + "Ġب ÙĬÙĨ", + "ĠبÙĬ ÙĨ", + "Ġ леÑĤ", + "Ġл еÑĤ", + "ا غ", + "Ø§Ø º", + "ÛĮ Ú©ÛĮ", + "ÛĮÚ© ÛĮ", + "r áv", + "rá v", + "à¥į âĢį", + "âĢĻ nin", + "âĢĻn in", + "Ġ ย", + "Ġภ¢", + "åį Ĭ", + "Ġк оли", + "Ġкол и", + "Ġко ли", + "Ġtr ợ", + "éĿ Ĵ", + "ëŀ Ģ", + "Ġ ë¨", + "Ġë ¨", + "Ġ ÙĪر", + "ĠÙĪ ر", + "ï¾ Ĭ", + "è§ Ĥ", + "Ġ пи", + "Ġп и", + "н Ñĥв", + "нÑĥ в", + "il mesi", + "ilm esi", + "س تÙĩ", + "ست Ùĩ", + "Ġд еÑĢжав", + "ĠдеÑĢж ав", + "å® ĥ", + "åĪ ¥", + "ëħ Ģ", + "л ÑģÑı", + "à¤Ĥ ध", + "Ġ ÑĤи", + "ĠÑĤ и", + "ĠpÅĻ ip", + "ĠpÅĻi p", + "п и", + "á» ĵn", + "á»ĵ n", + "о ваÑĤÑĮ", + "ов аÑĤÑĮ", + "ова ÑĤÑĮ", + "ìĿ´ ëĿ¼", + "æľ Ŀ", + "Ġ ëĺIJ", + "Ġë ĺIJ", + "Ġëĺ IJ", + "ĠÎŃ Î½Î±", + "ĠÎŃν α", + "ãģ¾ ãģ§", + "ج اÙħ", + "جا Ùħ", + "Ġ ëĬ", + "Ġë Ĭ", + "н Ñĸв", + "нÑĸ в", + "ÏĢ οÏħ", + "ÏĢο Ïħ", + "Ġ زÙħاÙĨ", + "Ġز ÙħاÙĨ", + "ĠزÙħ اÙĨ", + "æĽ ²", + "Ġ ÙħÙĩ", + "ĠÙħ Ùĩ", + "ëł ¨", + "ä¸ ĥ", + "ãģ¨ ãģĹãģ¦", + "l abilir", + "la bilir", + "lab ilir", + "о же", + "ож е", + "å¤ ľ", + "ĠнÑĥж но", + "å½ ©", + "çĪ ±", + "Ġho Ãłn", + "ün ü", + "Ġ ëĦ¤", + "ĠëĦ ¤", + "Ġ جÙĨ", + "Ġج ÙĨ", + "Ġn ÄĽj", + "ĠnÄĽ j", + "к ими", + "ки ми", + "ким и", + "Ġa ynı", + "Ġayn ı", + "Ġ ÙĥÙĦ", + "ĠÙĥ ÙĦ", + "Ġnh au", + "Ạ³", + "ÙĬ ات", + "ÙĬا ت", + "Ġm ezi", + "Ġme zi", + "Ġmez i", + "Ġ ÑĢек", + "ĠÑĢ ек", + "ĠÑĢе к", + "Ġ tür", + "Ġt ür", + "Ġ говоÑĢ", + "Ġг овоÑĢ", + "Ġfaz la", + "åĩ Ĩ", + "ÑĪ ий", + "ÑĪи й", + "ÐŁ ÑĢи", + "ÐŁÑĢ и", + "ÑĢ оÑģÑĤ", + "ÑĢоÑģ ÑĤ", + "ÑĢо ÑģÑĤ", + "ĠоÑĢг ан", + "ĠоÑĢ ган", + "n ým", + "ný m", + "Ġ ÑĢод", + "ĠÑĢ од", + "Ġ ÙĪÛĮ", + "ĠÙĪ ÛĮ", + "ic ký", + "ick ý", + "ë¦ ¼", + "ï½ ²", + "æĢ İ", + "ĠÙĩ ذا", + "ĠÑĩ аÑģÑĤи", + "ĠÑĩа ÑģÑĤи", + "ĠÑĩаÑģ ÑĤи", + "ĠÑĩаÑģÑĤ и", + "ÃŃ r", + "á»ĩ nh", + "á»ĩn h", + "Ġ íĹ", + "Ġí Ĺ", + "ê »", + "lu ž", + "ÃŃ l", + "c ÃŃch", + "cÃŃ ch", + "å® Ł", + "ãģł ãģ£ãģŁ", + "ÙĬ رة", + "ÙĬر Ø©", + "Ġv Äĥn", + "æ¸ ¯", + "Ġ ÏĦιÏĤ", + "ĠÏĦι ÏĤ", + "ا رت", + "ار ت", + "Ġv ấn", + "âĶģâĶģ âĶģâĶģ", + "å¯ ¾", + "Ïģ ÎŃ", + "Ġг одÑĥ", + "Ġгод Ñĥ", + "Ġ سب", + "Ġس ب", + "ا رات", + "ار ات", + "ارا ت", + "е лей", + "ел ей", + "еле й", + "Ġз аÑħ", + "Ġза Ñħ", + "Ġ важ", + "Ġв аж", + "Ġва ж", + "Ġt á»īnh", + "Ġtá» īnh", + "Ġtá»ī nh", + "ا بع", + "اب ع", + "Ġ à¤ľà¤¬", + "Ġà¤ľ ब", + "Ġà¤IJ स", + "Ġ дÑĥ", + "Ġд Ñĥ", + "Ġ é«ĺ", + "Ġé «ĺ", + "Ġé« ĺ", + "ê² ł", + "н ее", + "не е", + "ï½ Į", + "Ġм ал", + "Ġма л", + "è¾ ¹", + "ãģł ãģij", + "à¹ī ร", + "ÙĤ Ø·", + "Ġb ên", + "Ġs eb", + "Ġse b", + "ĠØ® ÙĪاÙĩ", + "ĠØ®ÙĪ اÙĩ", + "s iz", + "si z", + "Ġol ur", + "Ġ ëĶ°", + "ĠëĶ °", + "Ġ ì¢ĭ", + "Ġì¢ ĭ", + "Ġs vÄĽt", + "Ġsv ÄĽt", + "ĠsvÄĽ t", + "ic ká", + "ick á", + "á» ¹", + "Ġqu ản", + "Ġquả n", + "Ġ иÑģ", + "Ġи Ñģ", + "Ġz aÄį", + "Ġza Äį", + "ื à¸Ńà¸Ļ", + "ืà¸Ń à¸Ļ", + "ÑĶ Ñİ", + "ि ष", + "िठ·", + "ç Ĭ¶", + "çĬ ¶", + "Ïĥ μ", + "ั ส", + "ó c", + "Ġ беÑĢ", + "Ġб еÑĢ", + "Ġ íĿ", + "Ġí Ŀ", + ";: ;:", + "Ġ پس", + "ĠÙ¾ س", + "Ġ ëijIJ", + "Ġë ijIJ", + "Ġëij IJ", + "н иÑĩ", + "ни Ñĩ", + "Ġо ÑĩенÑĮ", + "ĠоÑĩ енÑĮ", + "ĠìķĦìĿ´ ì½ĺ", + "Ġ θα", + "Ġθ α", + "Ġв ÑģÑĤ", + "ĠвÑģ ÑĤ", + "ا دة", + "اد Ø©", + "Ġdev am", + "ื à¸Ńà¸ĩ", + "ืà¸Ń à¸ĩ", + "ĠлÑİ Ð´Ð¸", + "ĠлÑİд и", + "ìĺ Ī", + "á»± a", + "Ñı Ñħ", + "âĢĮ اÛĮ", + "Ġ سÙĪ", + "Ġس ÙĪ", + "å° ¼", + "Ġth ứ", + "Ġthá» ©", + "m eye", + "me ye", + "mey e", + "Ġ èµ", + "Ġè µ", + "èī ¯", + "ĠdeÄŁ iÅŁ", + "ÑĪ Ñĸ", + "Ġtr ợ", + "ĠâĢİ #", + "çĹ ħ", + "ìĽ Į", + "Ġk de", + "Ġkd e", + "Î §", + "æ ¤", + "ĠÑħ аÑĢакÑĤ", + "æ ĩ", + "Ġb iến", + "Ġbi ến", + "ÙĤ ع", + "åŁ Ł", + "Ġн еп", + "Ġне п", + "Ġd ů", + "Ġп иÑĤ", + "Ġпи ÑĤ", + "ĠÑĤ ÑĢеб", + "ĠÑĤÑĢ еб", + "ا زÛĮ", + "از ÛĮ", + "Ġ طر", + "ĠØ· ر", + "Ġ ÙħÙĦ", + "ĠÙħ ÙĦ", + "Ġt ham", + "Ġth am", + "Ġtha m", + "Ġ ÙĪجÙĪد", + "ĠÙĪج ÙĪد", + "Ġs vé", + "Ġsv é", + "é§ ħ", + "ا ÛĮÙĨ", + "اÛĮ ÙĨ", + "Ġt iên", + "Ġti ên", + "s tru", + "st ru", + "str u", + "Ġv áºŃy", + "ü ne", + "ün e", + "Ġ à¹Ģม", + "Ġà¹Ģ ม", + "Ġà¹Ģภ¡", + "Ġr ằng", + "а ÑĤÑĥ", + "аÑĤ Ñĥ", + "äº ij", + "н иÑĤ", + "ни ÑĤ", + "ä¼ Ĭ", + "ÙĪ ص", + "Ġ éĿ", + "Ġé Ŀ", + "ĠпÑĢоб лем", + "d eki", + "de ki", + "dek i", + "** ************", + "******** ******", + "****** ********", + "******* *******", + "************ **", + "ò a", + "ĠÄijá»ģ u", + "ãĤĮ ãģŁ", + "ا رس", + "ار س", + "ãģª ãģı", + "ا ÙĤع", + "اÙĤ ع", + "è» į", + "Ùĥ Ùħ", + "Äį as", + "Ġk ỳ", + "Ġká» ³", + "Ø´ Ùħ", + "à¥ĩ ड", + "à¥ĩठ¡", + "éĺ ¿", + "Ġje jÃŃ", + "Ġjej ÃŃ", + "Ġ æĻ", + "Ġæ Ļ", + "Ġ Ä°ÅŁ", + "ĠÄ° ÅŁ", + "ar dım", + "ard ım", + "Ġसम य", + "Ġ ÐĿо", + "ĠÐĿ о", + "i lerin", + "il erin", + "ile rin", + "iler in", + "ileri n", + "Ġع بد", + "Ġعب د", + "n ÃŃk", + "nÃŃ k", + "ĠØ´ Ú©ÙĨ", + "ĠØ´Ú© ÙĨ", + "ิ à¸Ĺย", + "ิà¸Ĺ ย", + "á» ħ", + "ÑĢ ез", + "ÑĢе з", + "Ġch ứng", + "Ġchứ ng", + "Ġ :.", + "Ġ: .", + "Ġ पत", + "Ġप त", + "Ġž ivot", + "Ġživ ot", + "å¢ ĥ", + "« a", + "Ġt rung", + "Ġtr ung", + "ни кÑĸв", + "ник Ñĸв", + "ĠاÙĦ ÙħÙĨ", + "ĠاÙĦÙħ ÙĨ", + "ĠÑĢ аÑģÑģ", + "ĠÑĢаÑģ Ñģ", + "Ġ жив", + "Ġж ив", + "Ġз акон", + "Ġза кон", + "Ġзак он", + "Ġзако н", + "Ġ 목", + "Ġëª ©", + "Ġz áv", + "Ġzá v", + "Ġh akk", + "Ġha kk", + "Ġhak k", + "ä» ¤", + "ĠÑı кий", + "ĠÑıк ий", + "Ġ بÙĬ", + "Ġب ÙĬ", + "λ ÎŃ", + "oc uk", + "ocu k", + "Ġ Ñİ", + "ĠÑ İ", + "à¸ģ ว", + "Ġ اÙĨÚ¯", + "Ġا ÙĨÚ¯", + "ĠاÙĨ Ú¯", + "à¥ģ à¤Ĥ", + "à¥ģठĤ", + "Ġ nám", + "Ġn ám", + "Ġná m", + "á»ķ ng", + "Ġж ел", + "Ġже л", + "ĠÄij ặc", + "Äį it", + "Äįi t", + "Ġ ê±´", + "Ġê± ´", + "Ġب ÛĮØ´", + "ĠبÛĮ Ø´", + "кÑĢаÑĹ Ð½", + "Ġ ÙĪÙĩ", + "ĠÙĪ Ùĩ", + "н еннÑı", + "нен нÑı", + "Ġ à¹Ģà¸ŀ", + "Ġà¹Ģ à¸ŀ", + "Ġà¹Ģภŀ", + "о мен", + "ом ен", + "Ġl ần", + "Ġ عÙħÙĦ", + "Ġع ÙħÙĦ", + "ĠعÙħ ÙĦ", + "Ġî ģµ", + "Ä ŀ", + "ÑĸÑģ лÑı", + "Æ° ng", + "ा फ", + "ाठ«", + "à¸Ĺ à¸ĺ", + "д ен", + "де н", + "ĠÑī об", + "ĠÑīо б", + "Ñĩ ив", + "Ñĩи в", + "ılı r", + "ıl ır", + "ا عات", + "اع ات", + "j ÃŃcÃŃ", + "jÃŃ cÃŃ", + "ë² ¨", + "ÚĨ Ùĩ", + "ا رج", + "ار ج", + "ĠÙ¾ رÙĪ", + "Ġپر ÙĪ", + "Ġо дин", + "Ġод ин", + "Ġоди н", + "л ин", + "ли н", + "б Ñĥ", + "Ġसर à¤ķ", + "åĢ Ļ", + "ë¶Ģ íĦ°", + "à¥Īà¤Ĥ ,", + "å ´", + "à¹Ĥ ล", + "Ġv Å¡ak", + "ĠvÅ¡ ak", + "Ġоп ÑĢед", + "ì ±", + "æ ½", + "Ġdá»± ng", + "p ráv", + "pr áv", + "ิ ส", + "Ġnh iá»ĩm", + "Ġil iÅŁ", + "Ġili ÅŁ", + "Ġе Ñīе", + "Ġje Å¡tÄĽ", + "Ġ ÑĢаÑģÑĤ", + "ĠÑĢ аÑģÑĤ", + "ĠÑĢаÑģ ÑĤ", + "ĠÑĢа ÑģÑĤ", + "ภ®", + "à¤Ĥ à¤Ł", + "âĢĮ Ú©", + "Ġ بÛĮÙĨ", + "Ġب ÛĮÙĨ", + "ĠبÛĮ ÙĨ", + "o vou", + "ov ou", + "ovo u", + "æĻ ®", + "ί εÏĤ", + "о ÑĢоÑĪ", + "оÑĢ оÑĪ", + "оÑĢо ÑĪ", + "Ġol mak", + "Ġolm ak", + "Ġolma k", + "Ġst át", + "di ÄŁi", + "Ġt ình", + "Ġ dÄĽ", + "Ġd ÄĽ", + "ĠÚ¯ رÙģ", + "Ġگر Ùģ", + "Ïĥ ο", + "Ġ ÑĥÑĤ", + "ĠÑĥ ÑĤ", + "íķĻ êµIJ", + "ั à¸IJ", + "า à¸Ń", + "าภŃ", + "ĠÄij ặt", + "Ġмог ÑĥÑĤ", + "ĠмогÑĥ ÑĤ", + "ë° °", + "t ik", + "ti k", + "ª ½", + "li ÄŁ", + "ÏĢ ε", + "Ġ èĢ", + "Ġè Ģ", + "k ü", + "ad ece", + "ade ce", + "κ ÏĮ", + "Ġ дÑĸ", + "Ġд Ñĸ", + "ầ m", + "çĦ¡ ãģĹ", + "Û²Û° Û±", + "èµ Ľ", + "оÑģ Ñĥд", + "Ġ ìķĪëĤ´", + "ĠìķĪ ëĤ´", + "Ġ ÐĶж", + "ĠÐĶ ж", + "åº §", + "ic kých", + "ick ých", + "ický ch", + "Ġ ìłģ", + "Ġì łģ", + "Ġìł ģ", + "à¥ĩ ,", + "ov ého", + "ové ho", + "Ġv ẫn", + "Ġbirlik te", + "Ġर à¤ĸ", + "Ġ ÙĨÙĩ", + "ĠÙĨ Ùĩ", + "ÙĤ ر", + "प र", + "e tÃŃ", + "et ÃŃ", + "Ġ ÑĤÑĭ", + "ĠÑĤ Ñĭ", + "Ģ ìĿ´", + "Ġà¤ħ ल", + "Ġм оже", + "Ġмож е", + "Ġмо же", + "ãĤ ´", + "Ġs tran", + "Ġst ran", + "Ġstr an", + "Ġstra n", + "Ø· ر", + "è¿Ļ 个", + "Ġ بع", + "Ġب ع", + "åĨ Ľ", + "ek tir", + "ekt ir", + "Ġh Æ°á»Ľng", + "ÙĨ اÙĨ", + "ÙĨا ÙĨ", + "Ġठij", + "Ġà ¤ij", + "ÏĮ ÏĦη", + "о Ñģк", + "оÑģ к", + "åį ĥ", + "as ına", + "ası na", + "Ġ Ø´Ùĩ", + "ĠØ´ Ùĩ", + "Ġ деÑĢ", + "Ġд еÑĢ", + "Ġде ÑĢ", + "ĠÙħ خت", + "ĠÙħØ® ت", + "Ġ ØŃÙĤ", + "ĠØŃ ÙĤ", + "ãĥ ¾", + "س اÙĨ", + "Ġc ung", + "Ġcu ng", + "ко ÑĢиÑģÑĤ", + "коÑĢ иÑģÑĤ", + "ÏĦ ικά", + "ÏĦικ ά", + "ÏĦι κά", + "Ġв она", + "Ġво на", + "ب ا", + "ãģķ ãĤĮãģŁ", + "ãģķãĤĮ ãģŁ", + "n out", + "no ut", + "nou t", + "Ġ ı", + "ĠÄ ±", + "è§ ī", + "ĠÃ¶ÄŁ ren", + "Ġ ì½Ķ", + "Ġì ½Ķ", + "Ġì½ Ķ", + "å¸ ¦", + "Ñģ лов", + "Ñģл ов", + "Ġε ÏĢι", + "ĠεÏĢ ι", + "ê° IJ", + "ĠÙħ رب", + "ĠÙħر ب", + "ĠÙģÛĮ ÙĦÙħ", + "Ġк ÑĢов", + "Ġ ëį°", + "Ġë į°", + "Ġëį °", + "ा ण", + "ाठ£", + "Ġel ekt", + "Ġele kt", + "Ġelek t", + "Ġ наÑĢод", + "Ġн аÑĢод", + "Ġна ÑĢод", + "ĠнаÑĢ од", + "ÛĮ دÙĩ", + "ÛĮد Ùĩ", + "ç´ Ħ", + "Ġп ÑĢоÑĦ", + "ĠпÑĢ оÑĦ", + "ĠпÑĢо ÑĦ", + "Ïģ οÏĤ", + "Ïģο ÏĤ", + "Ġ ãħ", + "ä¸į æĺ¯", + "Ġ à¤ľà¤¨", + "Ġà¤ľ न", + "ั ล", + "Ġص ÙĪرت", + "ĠصÙĪر ت", + "ãĥ ľ", + "Ġà¤Ĺ à¤Ī", + "ÄŁi tim", + "ÄŁit im", + "ÑģÑĮ киÑħ", + "ÑģÑĮк иÑħ", + "Ġ лег", + "Ġл ег", + "Ġت ÙĪÙĦ", + "ĠتÙĪ ÙĦ", + "Ġ ìļ´", + "Ġìļ ´", + "ع ر", + "Ġm Ãłu", + "ĠmÃł u", + "г ов", + "го в", + "æ³ ¢", + "in deki", + "ind eki", + "inde ki", + "ìłģ ìĿ¸", + "ấ m", + "Ġ íĻķ", + "ĠíĻ ķ", + "Ġب اÛĮد", + "Ġبا ÛĮد", + "ĠباÛĮ د", + "à¹Į à¸Ĺ", + "Ġk endi", + "Ġken di", + "Ġkend i", + "ี ว", + "ิ à¸ģาร", + "ิà¸ģ าร", + "ิà¸ģา ร", + "ĠÚ© ردÙĩ", + "Ġکرد Ùĩ", + "Ġکر دÙĩ", + "å· ´", + "ठģ", + "ร าà¸Ĭ", + "à¥į श", + "à¥įठ¶", + "Ġ ÐĶлÑı", + "ĠÐĶ лÑı", + "å¥ ĩ", + "ĠÑĥ ÑģÑĤанов", + "ĠÑĥÑģÑĤ анов", + "ĠÑĥÑģÑĤан ов", + "й ÑĤе", + "ãĤ ĩ", + "ά Ïģ", + "Ġ Ю", + "ĠÐ ®", + "Ġlu áºŃt", + "ãĢ ī", + "è´ ¨", + "د ا", + "Ġdü zen", + "Ġdüz en", + "ส à¸Ļ", + "ÑĢ он", + "ÑĢо н", + "d ıģı", + "dı ģı", + "dıģ ı", + "âĢĻ da", + "âĢĻd a", + "Ġfark lı", + "Ñħ ов", + "Ñħо в", + "l án", + "lá n", + "Ñĩ аÑģ", + "Ñĩа Ñģ", + "Ñĩ ин", + "Ñĩи н", + "Ġ ì°¸", + "Ġì° ¸", + "ì ´Ī", + "ì´ Ī", + "ÑĨ ип", + "ÑĨи п", + "ç ¹", + "éĸ Ģ", + "ж а", + "ÑĢ ован", + "ÑĢов ан", + "ÑĢо ван", + "ÑĢова н", + "à¸ĵ ะ", + "ÙĦÙĬ زÙĬØ©", + "Ïĩ ει", + "Ïĩε ι", + "à¥Ī .", + "к Ñģп", + "кÑģ п", + "ا ÙĪر", + "اÙĪ ر", + "Ġng uyên", + "Ġnguy ên", + "ãģ« ãĤĪ", + "à¥ĩ म", + "à¥ĩठ®", + "Ïĥ ÏĦε", + "ÏĥÏĦ ε", + "ت ÙĪ", + "Äį ek", + "Äįe k", + "ÑĨ Ñĭ", + "Ġ 물", + "Ġë¬ ¼", + "Ñį ÑĤ", + "Ġka zan", + "Ġkaz an", + "Ùģ س", + "e hir", + "eh ir", + "в ÑĸÑĤ", + "вÑĸ ÑĤ", + "Ġد ÙĪÙĦ", + "ĠدÙĪ ÙĦ", + "Ġ ëĵľ", + "Ġëĵ ľ", + "Ġà¤ļ ल", + "е ÑģÑĤва", + "еÑģÑĤв а", + "еÑģÑĤ ва", + "δ α", + "Ġб Ñĥв", + "ĠбÑĥ в", + "Ġ ÐĿе", + "ĠÐĿ е", + "ØŃ Ø±", + "огÑĢа ÑĦ", + "Ġroz hod", + "Ġrozh od", + "Ġви коÑĢиÑģÑĤ", + "Ġвико ÑĢиÑģÑĤ", + "Ġy êu", + "λ οÏĤ", + "λο ÏĤ", + "Ú© س", + "Ġ شب", + "ĠØ´ ب", + "ิ ษ", + "æ¯ į", + "Ġд оÑĢ", + "Ġдо ÑĢ", + "Ġngh á»ĩ", + "Ġt rang", + "Ġtr ang", + "Ġtra ng", + "Ġtran g", + "à¥ĩ द", + "à¥ĩठ¦", + "Ġt ìm", + "Ñĩ но", + "Ġ اÙħا", + "Ġا Ùħا", + "ĠاÙħ ا", + "éģ ĭ", + "Ú© ر", + "k é", + "Ġ vÄĽt", + "Ġv ÄĽt", + "ĠvÄĽ t", + "Ġн аÑģÑĤ", + "Ġна ÑģÑĤ", + "ĠнаÑģ ÑĤ", + "Ġ æ±", + "Ġæ ±", + "Ġ åĽ½", + "ĠåĽ ½", + "Ġgi ảm", + "Ġgiả m", + "ا دÙĬ", + "اد ÙĬ", + "ëĤ ľ", + "ë¡ ł", + "Ġ 、", + "Ġï½ ¤", + "Ġд енÑĮ", + "Ġде нÑĮ", + "Ġден ÑĮ", + "ÑĨ ÑĸÑİ", + "ÑĨÑĸ Ñİ", + "Ġh ạn", + "Ġhạ n", + "ẳ ng", + "ẳn g", + "λ ή", + "e yen", + "ey en", + "eye n", + "ä¸ Ķ", + "æŃ ¦", + "ĠÑĦ ак", + "à¹Ī à¸Ńà¸Ļ", + "à¹Īà¸Ń à¸Ļ", + "Ġ οι", + "Ġο ι", + "ز Ùħ", + "ãģĹ ãģ¦ãģĦãĤĭ", + "ãģĹãģ¦ ãģĦãĤĭ", + "ãģĹãģ¦ãģĦ ãĤĭ", + "л ива", + "ли ва", + "лив а", + "âĢķ âĢķ", + "Ġ öl", + "Ġö l", + "Ġ à¤ĵ", + "Ġठĵ", + "Ñģ ÑĤÑĸ", + "ÑģÑĤ Ñĸ", + "à¸ģ รรม", + "à¸ģร รม", + "Ġt ục", + "Ġtụ c", + "Ġgö rün", + "Ġgör ün", + "ãģĹ ãģ¾", + "ãģĹãģ ¾", + "Ġ ì¦", + "Ġì ¦", + "é ¦¬", + "é¦ ¬", + "Ġмож на", + "Ġ Ú©ÙĦ", + "ĠÚ© ÙĦ", + "Ġ ÑĨенÑĤ", + "ĠÑĨ енÑĤ", + "ĠÑĨе нÑĤ", + "ĠÑĨен ÑĤ", + "Ġ ìĻ¸", + "ĠìĻ ¸", + "Î ĺ", + "ç ĩ", + "Ġg elen", + "Ġge len", + "Ġgel en", + "Ġgele n", + "Ġ اÙĬÙĨ", + "Ġا ÙĬÙĨ", + "ĠاÙĬ ÙĨ", + "ĠØ¢ ب", + "Ġà¤Ĩ य", + "ัà¸ģ ษ", + "Ñģ им", + "Ñģи м", + "Ġб олÑĮÑĪ", + "ĠболÑĮ ÑĪ", + "Ġм н", + "о ди", + "од и", + "ĠÄ° l", + "Ġ à¤Ĩर", + "Ġà¤Ĩ र", + "е ÑĤе", + "еÑĤ е", + "ÑĨ иÑİ", + "ÑĨи Ñİ", + "áºŃ u", + "Ġt iếng", + "Ġtiế ng", + "Ġtiến g", + "ë ¶ģ", + "ë¶ ģ", + "æ§ ĺ", + "Ġн аÑĪ", + "Ġна ÑĪ", + "ม า", + "âĢĻ ın", + "âĢĻı n", + "ãĥĥ ãĥĹ", + "ÙĪ جÙĩ", + "ÙĪج Ùĩ", + "Ġ ØŃد", + "ĠØŃ Ø¯", + "á vá", + "áv á", + "ر ÙĪØ´", + "رÙĪ Ø´", + "Ġ дейÑģÑĤв", + "Ġд ейÑģÑĤв", + "ãģ£ ãģ¦ãģĦãĤĭ", + "ãģ£ãģ¦ ãģĦãĤĭ", + "ãģ£ãģ¦ãģĦ ãĤĭ", + "Ïģ ή", + "Ġ üst", + "Ġü st", + "Ġt iết", + "Ġti ết", + "Ġtiế t", + "ac aÄŁ", + "aca ÄŁ", + "Ġ ÐŁÐ¾", + "ĠÐŁ о", + "é Ĭ", + "ë¨ ¸", + "c hod", + "ch od", + "cho d", + "ĠØ¢Ùħ ÙĪز", + "ãģŁ ãĤģ", + "Ġch uyên", + "Ġuy gu", + "Ġuyg u", + "н ÑĸÑģÑĤ", + "нÑĸ ÑģÑĤ", + "ë ´", + "æİ §", + "Ñĥ ÑİÑĤÑĮ", + "ÑĥÑİ ÑĤÑĮ", + "ÑĥÑİÑĤ ÑĮ", + "Äį i", + "ãģ ¹", + "à¥Ĥ न", + "æĹ ©", + "ãĥĩ ãĤ£", + "è Ĵ", + "ĠØ´ خص", + "ĠÑħ оÑĤ", + "ĠÚ©ÙĨ ÛĮد", + "г л", + "à¸Ń à¸Ńà¸ģ", + "à¸Ńà¸Ń à¸ģ", + "éĢ Ļ", + "Ġز ÛĮر", + "ĠزÛĮ ر", + "íķ Ń", + "ĠÃĸ z", + "åij ³", + "ØŃ Ø¯Ø©", + "ØŃد Ø©", + "Ġk ažd", + "Ġ ÑĨвеÑĤ", + "ĠÑĨ веÑĤ", + "Ġ ç¾", + "Ġç ¾", + "Ġк ож", + "Ġко ж", + "Ġ ÐŃÑĤо", + "ĠÐŃ ÑĤо", + "ÑıÑĤ елÑĮ", + "ла ÑģÑĮ", + "лаÑģ ÑĮ", + "âĢĮ Ø´ÙĪد", + "âĢĮØ´ ÙĪد", + "μ ι", + "Ġ æ²", + "Ġæ ²", + "Ġs üre", + "Ġsü re", + "Ġsür e", + "ล ะ", + "éħ Ĵ", + "ึà¸ģ ษ", + "λ λά", + "λλ ά", + "ç ij", + "Ġ ìĥĪ", + "Ġìĥ Ī", + "Ġस ह", + "ĠH Ãł", + "리 ê³ł", + "ص ر", + "Ġ æĬķ", + "ĠæĬ ķ", + "éł Ń", + "Ġb á»ĩnh", + "ĠìĥĿ ê°ģ", + "Ġà¤ħ à¤Ń", + "ê³µ ì§Ģ", + "ì Ķ", + "á» Ŀi", + "á»Ŀ i", + "ç ŃĶ", + "çŃ Ķ", + "Ġb Ãłi", + "ĠbÃł i", + "о дÑĸ", + "од Ñĸ", + "า à¸Ĥ", + "าภĤ", + "ни ков", + "ник ов", + "Ġdön em", + "Ġdö nem", + "ว ม", + "ãĥĨ ãĤ£", + "ा रण", + "ार ण", + "о ги", + "ог и", + "Ġk iá»ĥm", + "Ġki á»ĥm", + "о ÑĦ", + "äº Ī", + "åĨ ³", + "ا ÙĦات", + "اÙĦ ات", + "اÙĦا ت", + "Ġn ếu", + "Ġ cest", + "Ġc est", + "Ġce st", + "Ġces t", + "ز Ø´", + "Ùİ ÙĦ", + "Ġت Ø£", + "ĠÄij ạo", + "Ïį ν", + "Ġв нÑĥ", + "Ġ جاÙħ", + "Ġج اÙħ", + "Ġجا Ùħ", + "i vnÃŃ", + "iv nÃŃ", + "Ġìŀ ĪìĬµëĭĪëĭ¤", + "ĠìŀĪ ìĬµëĭĪëĭ¤", + "Ï Ĭ", + "æĦ Ľ", + "ãĥ Ľ", + "м Ñĸн", + "мÑĸ н", + "Ġt ÃŃm", + "ĠtÃŃ m", + "ằ m", + "ê· ł", + "äº ķ", + "Ġx ây", + "Ġ ìĽĶ", + "ĠìĽ Ķ", + "е лен", + "ел ен", + "еле н", + "Ġ à¹Ĥà¸Ķย", + "Ġà¹Ĥ à¸Ķย", + "ا ÙĦÙĩ", + "اÙĦ Ùĩ", + "Ġb ất", + "á»ĵ m", + "âĢĮ Ú¯", + "ÙĪ رة", + "ÙĪر Ø©", + "ب ات", + "با ت", + "Ġb án", + "ẫ u", + "اÙĨ ÙĪÙĨ", + "اÙĨÙĪ ÙĨ", + "Ġzá kon", + "á ž", + "ì¶ Ķ", + "à¹ģ à¸ģ", + "ãĤį ãģĨ", + "ÑĢ оÑĤ", + "ÑĢо ÑĤ", + "ç ĵ", + "Ġв они", + "Ġво ни", + "Ġx ác", + "Ġ دÛĮگر", + "ĠدÛĮ گر", + "ÏĢ οι", + "ÏĢο ι", + "Ġне Ñģк", + "ĠнеÑģ к", + "ر سÛĮ", + "رس ÛĮ", + "Ġ ëĿ¼", + "Ġë Ŀ¼", + "ت ÙĦ", + "λ ά", + "ĠÑıв лÑıеÑĤÑģÑı", + "ä¾ Ŀ", + "Ġ åħ¬", + "Ġåħ ¬", + "Ĺ i", + "Ġ íĬ¹", + "ĠíĬ ¹", + "Ùĥ ÙĪÙĨ", + "ÙĥÙĪ ÙĨ", + "ắ p", + "جÙħ ÙĪع", + "ÏĨ οÏģ", + "ÏĨο Ïģ", + "е ло", + "ел о", + "Ġg üven", + "Ġgü ven", + "Ġм ай", + "Ġма й", + "ĠÑģ оз", + "ĠÑģо з", + "à¸ģ ระ", + "à¸ģร ะ", + "Ġا سÙĦاÙħ", + "Ġاس ÙĦاÙħ", + "Ġ Ñīе", + "ĠÑī е", + "Ġs á»ijng", + "Ġsá»ij ng", + "à¥į ब", + "à¥įठ¬", + "Ú© ار", + "کا ر", + "Ġthu áºŃt", + "Ġ nÃŃ", + "Ġn ÃŃ", + "第 ä¸Ģ", + "è¦ ĸ", + "à¹Ģà¸ģ ม", + "ا ÙĬØ©", + "اÙĬ Ø©", + "Ġ ÎĪ", + "ĠÎ Ī", + "ãĤ ¶", + "ĠÙħ ÙĪÙĤع", + "ĠÙħÙĪ ÙĤع", + "Ġ åĴ", + "Ġå Ĵ", + "è¡ ĵ", + "Ġ Ðŀд", + "ĠÐŀ д", + "Ġ ä¸ī", + "Ġä¸ ī", + "ler inde", + "leri nde", + "lerin de", + "ĠÑģв оÑĹ", + "ĠÑģво ÑĹ", + "à¥Ģ à¤ı", + "Ġth Æ°Æ¡ng", + "Ïĥ ÏĦο", + "ÏĥÏĦ ο", + "Ġ غÙĬر", + "Ġغ ÙĬر", + "Ġ پر", + "ĠÙ¾ ر", + "ĠÑģеб е", + "Ġв к", + "Ġk hai", + "Ġkh ai", + "ãĤ Ģ", + "ĠÙĨ ظر", + "ĠÙĨظ ر", + "Ġдок Ñĥм", + "à¹ĩ à¸ļ", + "Ġ íķľêµŃ", + "Ġíķľ êµŃ", + "ï½ ī", + "å·¥ ç¨ĭ", + "Ġ ÙĪÙĦ", + "ĠÙĪ ÙĦ", + "ØŃ ÙĬ", + "Ġп ла", + "Ġпл а", + "Ġ Ä°stanbul", + "ĠÄ° stanbul", + "âĢĻ de", + "âĢĻd e", + "а лÑģÑı", + "ал ÑģÑı", + "ĠØ¢ÙĨ Ùĩا", + "Ġ اÙĩ", + "Ġا Ùĩ", + "Ġ ê´Ģ리", + "Ġê´Ģ 리", + "Ġ anh", + "Ġa nh", + "Ġan h", + "Å¡ ÃŃm", + "Å¡ÃŃ m", + "lar la", + "ï¼ Ŀ", + "n ostÃŃ", + "no stÃŃ", + "nost ÃŃ", + "nos tÃŃ", + "ÑģÑĤ ве", + "ÑģÑĤв е", + "ÛĮ Ùģ", + "Ġ گرد", + "ĠÚ¯ رد", + "Ġگر د", + "ãĤĮ ãĤĭ", + "Ġv á»±", + "Ġvá» ±", + "ÄĽ nÃŃ", + "ÄĽn ÃŃ", + "Ġgö rev", + "Ġgör ev", + "Ġgöre v", + "Ġyıl ında", + "Ġyılı nda", + "Ġyı lında", + "Ġl ợi", + "Ġlá» £i", + "Ġan lam", + "Ġп ÑĢовод", + "ĠпÑĢо вод", + "ĠпÑĢов од", + "ÑĨ Ñİ", + "Ġ åī", + "Ġå ī", + "Ġë§ İ", + "ÑĢ аÑģ", + "ÑĢа Ñģ", + "Ġ Ž", + "ĠÅ ½", + "Ú© اÙĨ", + "کا ÙĨ", + "Ð Ļ", + "ãģ£ ãģ¨", + "ãģ£ãģ ¨", + "Ú© ÙĦ", + "า ยà¸Ļ", + "าย à¸Ļ", + "ع اÙĦ", + "عا ÙĦ", + "Ġ ký", + "Ġk ý", + "ĠмаÑĤ еÑĢи", + "Ġма ÑĤеÑĢи", + "ê» ĺ", + "ıl ması", + "μ ÎŃν", + "μÎŃ Î½", + "ĠÙĨ ÙħÛĮ", + "ĠÙĨÙħ ÛĮ", + "Ġcu á»Ļc", + "Ġδ εν", + "Ġδε ν", + "å¹ ²", + "_ ___", + "__ __", + "___ _", + "à¥Ģ à¤Ł", + "Ġçık ar", + "Ġçı kar", + "Ġkon uÅŁ", + "Ġkonu ÅŁ", + "иÑĤ елÑĮно", + "иÑĤелÑĮ но", + "lan tı", + "lant ı", + "à¹Ħ ล", + "å¾ ĭ", + "Ġ íĶ¼", + "ĠíĶ ¼", + "ìĻ ¸", + "Ġs áng", + "éģ Ķ", + "о жд", + "ож д", + "Ġ آخر", + "ĠØ¢ خر", + "il ece", + "ile ce", + "à¥Ī न", + "Ġ jedn", + "Ġj edn", + "Ġje dn", + "Ġjed n", + "ĠÑģпе ÑĨи", + "´ Ŀ", + "Ġ Úĺ", + "Ġ ãĢĤĊ", + "ĠãĢĤ Ċ", + "èģ Į", + "Ġ ÙĨÛĮ", + "ĠÙĨ ÛĮ", + "ÑĤ оÑĢа", + "ÑĤо ÑĢа", + "ÑĤоÑĢ а", + "λ ι", + "Ġ ÙĪب", + "ĠÙĪ ب", + "iÅŁ im", + "iÅŁi m", + "ç» ´", + "ãĢĢ i", + "Ġm ua", + "Ġmu a", + "Ġj iž", + "Ġji ž", + "è¶ Ĭ", + "ãĤĴ è¦ĭ", + "Ġn á»Ļi", + "à¥į à¤Ĺ", + "à¥įठĹ", + "ç¨ ®", + "Ġ ãĢĢãĢĢãĢĢ", + "ĠãĢĢ ãĢĢãĢĢ", + "ĠãĢĢãĢĢ ãĢĢ", + "à¹ĥ หม", + "à¹ĥห ม", + "Ġ ÎĨ", + "ĠÎ Ĩ", + "ÙĨ دÛĮ", + "ÙĨد ÛĮ", + "ĠÑģ Ñĩ", + "Ġl á»ĩ", + "Ġlá» ĩ", + "l ub", + "lu b", + "еÑĢ ÑĤ", + "Ġ اطÙĦ", + "Ġا Ø·ÙĦ", + "Ġاط ÙĦ", + "ĠÑģ еÑĢед", + "ĠÑģеÑĢ ед", + "Ġ éģ", + "Ġé ģ", + "Ġз ал", + "Ġза л", + "ÙĨ ÛĮÙĨ", + "ÙĨÛĮ ÙĨ", + "çŁ¥ éģĵ", + "Ø¢ ÙĨ", + "Ġ кап", + "Ġк ап", + "Ġка п", + "Ġ à¹Ħม", + "Ġà¹Ħ ม", + "ů vod", + "ův od", + "ĠÙ¾ اÛĮ", + "Ġپا ÛĮ", + "ÑĤ ÑĢи", + "ÑĤÑĢ и", + "Ġi ht", + "Ġih t", + "๠Ĭ", + "Ġв ÑģÑĸ", + "ĠвÑģ Ñĸ", + "Ġt hay", + "Ġth ay", + "Ġtha y", + "å Ĩµ", + "åĨ µ", + "Ġ عÙĨÙĪاÙĨ", + "ĠعÙĨ ÙĪاÙĨ", + "Ġ Î¥", + "ĠÎ ¥", + "ภĿ", + "ε ÏĦαι", + "εÏĦ αι", + "iyor du", + "ï¼Į èĢĮ", + "çļĦ 人", + "Ġ सà¤Ń", + "Ġस à¤Ń", + "à¹ī à¸Ńย", + "à¹īà¸Ń ย", + "ι κο", + "ικ ο", + "ãĤĵ ãģ§", + "ì¡ ±", + "ÙĨج ÙĦÙĬزÙĬØ©", + "Ġž ád", + "ÑĢ ави", + "ÑĢа ви", + "ÑĢав и", + "γ γ", + "æµ ĭ", + "о ÑĨÑĸ", + "ãĢĢ ãĢĢĠãĢĢ", + "ãĢĢãĢĢ ĠãĢĢ", + "ãĢĢãĢĢĠ ãĢĢ", + "Ġतर ह", + "Ġ ëĨ", + "Ġë Ĩ", + "à¥Ģ à¤ļ", + "à¹Ī ม", + "Ġg á»ĵm", + "Ġk iá»ĩn", + "Ġki á»ĩn", + "è· Ł", + "Î ¦", + "es inin", + "esi nin", + "esini n", + "esin in", + "é ¥", + "é« Ķ", + "о Ñĩно", + "оÑĩ но", + "र ण", + "æĺ ¥", + "ç¶ ĵ", + "Ġ بار", + "Ġب ار", + "Ġبا ر", + "ê· ¼", + "éĻ ħ", + "Ġ سÙĬ", + "Ġس ÙĬ", + "Ñģ ÑĥÑĤ", + "ÑģÑĥ ÑĤ", + "ì µľ", + "å± ħ", + "ĠÄį esk", + "ĠÄįe sk", + "Îij ÎĿ", + "Ġd iá»ĩn", + "Ġdi á»ĩn", + "Ġ εί", + "Ġε ί", + "à¸ĩ à¸Ĺ", + "ãĤ ©", + "Ġv á»±c", + "Ġvá»± c", + "в ав", + "ва в", + "t ıģı", + "tı ģı", + "tıģ ı", + "Ġ ëªħ", + "Ġëª ħ", + "η ν", + "в иÑĤ", + "ви ÑĤ", + "Ġ Ø£Ùĥ", + "ĠØ£ Ùĥ", + "Ġп ÑĢоп", + "ĠпÑĢ оп", + "ĠпÑĢо п", + "r ak", + "ra k", + "ÑĢ аÑĤи", + "ÑĢа ÑĤи", + "ÑĢаÑĤ и", + "ĠÄij ánh", + "ĠÄijá nh", + "ÑĢ еп", + "ÑĢе п", + "ê ´ij", + "ê´ ij", + "е ÑĨÑĮ", + "еÑĨ ÑĮ", + "Ġब त", + "Ġ åĮĹ", + "ĠåĮ Ĺ", + "Ġs át", + "l edi", + "le di", + "led i", + "ìłģ ìľ¼ë¡ľ", + "ů j", + "Û° Û°", + "Ġnas ıl", + "Ġ ÙĪس", + "ĠÙĪ س", + "Ġ εξ", + "Ġε ξ", + "в Ñĭ", + "ç½ Ĺ", + "ارÛĮ Ø®", + "à¸Ľ ล", + "ί κ", + "Ġ ê¸Ī", + "Ġê¸ Ī", + "åĩ ł", + "å¼ ·", + "è¿ Ķ", + "Ġnh á»ı", + "å¾ Ģ", + "Ġда же", + "Ġç ev", + "к Ñĸ", + "Ġ Ø£Ùħ", + "ĠØ£ Ùħ", + "ี ส", + "ส ามารà¸ĸ", + "สาม ารà¸ĸ", + "Ġ ÐĦ", + "ĠÐ Ħ", + "Ñħод иÑĤ", + "ë ĸ", + "Ġtr uyá»ģn", + "Ġtruy á»ģn", + "Ġ ÑģÑĤан", + "ĠÑģÑĤ ан", + "ĠÑģÑĤа н", + "ëĵ¤ ìĿĢ", + "ا ÙĦت", + "اÙĦ ت", + "़ à¥ĩ", + "Ġ à¤ħब", + "Ġà¤ħ ब", + "æķ ¸", + "Ġд ÑĸÑı", + "ĠдÑĸ Ñı", + "ĠÙħ تر", + "ĠÙħت ر", + "Ġ ë¸", + "Ġë ¸", + "ï¾ į", + "Ġ ê³¼", + "Ġê³ ¼", + "Ġ زÛĮ", + "Ġز ÛĮ", + "ëŁ ¼", + "Ġ ÐŁÐµÑĢ", + "ĠÐŁ еÑĢ", + "Ġs ık", + "Ġsı k", + "н оÑģÑĤÑĮÑİ", + "ноÑģÑĤÑĮ Ñİ", + "ноÑģÑĤ ÑĮÑİ", + "Ġ eden", + "Ġe den", + "Ġed en", + "ا در", + "اد ر", + "ã Ħ", + "Ġ леÑĩ", + "Ġл еÑĩ", + "ĠÙĩ Ø°Ùĩ", + "ض ÙĪع", + "ضÙĪ ع", + "ĠìķĦ ëĭĪ", + "ĠìķĦëĭ Ī", + "ir ket", + "irk et", + "Ġ اگر", + "Ġا گر", + "ĠÑħ оÑĩ", + "Ġб ан", + "Ġба н", + "íĶ Į", + "æĢİ ä¹Ī", + "è Ľ", + "Ġब à¤ļ", + "ĠÚ© تاب", + "çī Į", + "Ġд ва", + "Ġдв а", + "ج ر", + "Ġп ÑĢоÑģÑĤо", + "ĠпÑĢоÑģÑĤ о", + "ĠпÑĢоÑģ ÑĤо", + "Ġà¤Ĩ व", + "Ġm ức", + "į ¼", + "Ġ jÃŃ", + "Ġj ÃŃ", + "íİ ĺ", + "Ġt amam", + "Ġta mam", + "Ġtam am", + "åĪ Ľ", + "ภĴ", + "п еÑĩ", + "пе Ñĩ", + "à¥ĭ स", + "Ġ Ñģем", + "ĠÑģ ем", + "Ġt Æ°Æ¡ng", + "ä¸ ģ", + "ī ´", + "Ġ ÑĢоÑģ", + "ĠÑĢ оÑģ", + "Ġ маÑĶ", + "Ġм аÑĶ", + "Ġма ÑĶ", + "æŃ Į", + "Ġ داÙĨÙĦÙĪد", + "ĠداÙĨ ÙĦÙĪد", + "ĠL oÃłi", + "ĠLo Ãłi", + "Ġed ilm", + "Ġedi lm", + "Ġedil m", + "Ġk onu", + "Ġko nu", + "Ġkon u", + "ĠاÙĦ Ùħر", + "ĠاÙĦÙħ ر", + "Ġu laÅŁ", + "Ġul aÅŁ", + "Ġyük sek", + "ο ι", + "Ùİ ÙĨ", + "Ġ bÄĽ", + "Ġb ÄĽ", + "ãĤ·ãĥ§ ãĥ³", + "ï¿£  ̄ ̄ ̄", + " ̄ ̄  ̄ ̄", + " ̄ ̄ ̄ ï¿£", + "Ġg üç", + "Ġgü ç", + "Ġ اÙĪÙĦ", + "Ġا ÙĪÙĦ", + "ĠاÙĪ ÙĦ", + "Ġ ма", + "Ġм а", + "Ġب خش", + "Ġبخ Ø´", + "ा à¤ĸ", + "ाठĸ", + "Ġв иÑģ", + "Ġви Ñģ", + "ž enÃŃ", + "že nÃŃ", + "žen ÃŃ", + "Ġz působ", + "Ġzp ůsob", + "z nam", + "zn am", + "Ġ رÙĪÛĮ", + "Ġر ÙĪÛĮ", + "ĠرÙĪ ÛĮ", + "åĭ Ŀ", + "। Ċ", + "ÙĦ ÙĤ", + "Ġж из", + "ÑĢ Ñĸв", + "ÑĢÑĸ в", + "ĠÑĥ пÑĢав", + "ĠÑĥп ÑĢав", + "Ġph á»ij", + "ic ros", + "icro s", + "Ġ à¹ģà¸ķ", + "Ġà¹ģ à¸ķ", + "Ġ ë°ķ", + "Ġë° ķ", + "ÙĪ ات", + "ÙĪا ت", + "ï¼Į ä¸Ģ", + "ан Ñģ", + "ç´ ļ", + "ย à¸Ļ", + "à¹ģ à¸Ĥ", + "Ġgi áo", + "Ġgiá o", + "äºĮ äºĮ", + "Ġ Ä°s", + "ĠÄ° s", + "ìĬ ¹", + "Ġo lacak", + "Ġol acak", + "Ġola cak", + "Ġ Các", + "ĠC ác", + "Ġ ÑĢÑĥб", + "ĠÑĢ Ñĥб", + "ĠÑĢÑĥ б", + "ẹ p", + "ÄŁ iniz", + "ÄŁini z", + "ÄŁin iz", + "ãģª ãģ©", + "Ġ моÑĢ", + "Ġм оÑĢ", + "Ġмо ÑĢ", + "ĠÑģ дел", + "ÙĦ ÙħاÙĨ", + "ÙĦÙħ اÙĨ", + "n ém", + "né m", + "å° į", + "Ġd ne", + "Ġdn e", + "ì¶ľ ìŀ¥", + "ع ب", + ": ::::::", + ":: :::::", + ":::: :::", + ":::::: :", + "::: ::::", + "::::: ::", + "Î Ĵ", + "e ket", + "ek et", + "Ġ ÑĢеÑĪ", + "ĠÑĢ еÑĪ", + "ĠÑĢе ÑĪ", + "è Ī¬", + "èĪ ¬", + "Ġ íĻĶ", + "ĠíĻ Ķ", + "ص د", + "Ġ маÑĢ", + "Ġм аÑĢ", + "Ġма ÑĢ", + "Ñı ж", + "Ø´ ار", + "ãģ ²", + "Ġ اÙĦÙĬ", + "Ġا ÙĦÙĬ", + "ĠاÙĦ ÙĬ", + "Ù į", + "à¤Ĥ à¤ľ", + "м Ñĭ", + "Ġka rar", + "Ġkar ar", + "Ġkara r", + "ÙĦÛĮ سÛĮ", + "ÙĦÛĮس ÛĮ", + "า à¸ĵ", + "าภĵ", + "ç¾ ¤", + "Ġol ması", + "Ġolm ası", + "Ġolma sı", + "Ġhaz ır", + "γÏģα ÏĨ", + "¯ u", + "в ол", + "во л", + "ĠÑģ ÑĤаÑĢ", + "ĠÑģÑĤ аÑĢ", + "ĠÑģÑĤа ÑĢ", + "o vala", + "ov ala", + "ova la", + "oval a", + "Ġв озмож", + "Ġвоз мож", + "Ġ дав", + "Ġд ав", + "Ġда в", + "é¢ ¨", + "ر ا", + "Ġдоп ом", + "ê² ĥ", + "Ġ ìĺ¬", + "Ġìĺ ¬", + "Ġ åİ", + "Ġå İ", + "Ġ 못", + "Ġëª »", + "u ç", + "í ļ", + "l ük", + "lü k", + "ä¸Ń å¿ĥ", + "Ġ दर", + "Ġद र", + "Ġ âĹĨ", + "ĠâĹ Ĩ", + "Ġt ay", + "Ġta y", + "Ġب سÛĮ", + "Ġبس ÛĮ", + "Ġ ÏĥÏĦα", + "ĠÏĥ ÏĦα", + "ĠÙħ Ø®", + "Ñı Ñī", + "å· ®", + "ภī", + "ëł ¹", + "à¹ĥà¸Ļ à¸ģาร", + "Ġ ÙĩÙĨ", + "ĠÙĩ ÙĨ", + "ãģ ¶", + "л Ñĸд", + "лÑĸ д", + "å į°", + "åį °", + "Ġs ao", + "Ġsa o", + "ÅĻ ad", + "리 ëĬĶ", + "Ñģ лед", + "Ñģл ед", + "åĶ ®", + "Ġ |:", + "Ġ| :", + "æķĻ èĤ²", + "Ġм ол", + "Ġмо л", + "ĠÙĩ ÙĬ", + "ë ģ", + "Ġ кÑĥлÑĮ", + "Ġк ÑĥлÑĮ", + "ĠкÑĥ лÑĮ", + "' nin", + "'n in", + "Ġ خر", + "ĠØ® ر", + "Ġge nel", + "Ġgen el", + "Ġgene l", + "Ġt á»Ń", + "Ġtá» Ń", + "Ġkur ul", + "Ġkuru l", + "ен ÑĤи", + "енÑĤ и", + "à¥ĭ à¤ľà¤¨", + "à¥ĭà¤ľ न", + "è¿Ļ æł·", + "Ġм Ñĸж", + "ĠмÑĸ ж", + "Ġngh iá»ĩm", + "Ġnghiá»ĩ m", + "ĠÏĢ ολ", + "ĠÏĢο λ", + "æĭ Ľ", + "Ġà¤Ĺ à¤ı", + "ầ y", + "Ġc ảm", + "Ġcả m", + "ç´ °", + "rı ca", + "Ġ عÙĦÛĮ", + "Ġع ÙĦÛĮ", + "ĠعÙĦ ÛĮ", + "ิ à¹ī", + "h ur", + "hu r", + "Ġch Æ°a", + "Ñĥ ÑĶÑĤÑĮÑģÑı", + "ÑĥÑĶ ÑĤÑĮÑģÑı", + "ãģ© ãģĨ", + "Ñĥ л", + "ิ ร", + "Ġ æľī", + "ä¼ ¼", + "ÑĦ еÑĢ", + "ÑįÑĤ омÑĥ", + "æĹ ħ", + "ĠÙħ ÙĪج", + "ĠÙħÙĪ ج", + "Ġ 본", + "Ġë³ ¸", + "Ġgi á»Ŀ", + "Ġgiá» Ŀ", + "Ġk iến", + "Ġki ến", + "à¹Ī วย", + "à¹Īว ย", + "Ġd üny", + "Ġdü ny", + "Ġdün y", + "Ġ زÙħ", + "Ġز Ùħ", + "о вÑĸ", + "ов Ñĸ", + "ĠÑĨ ÑĮого", + "ิ à¸ļ", + "Ġ ìĨIJ", + "ĠìĨ IJ", + "èIJ ¥", + "Ġ ÑĢÑĸз", + "ĠÑĢ Ñĸз", + "Ġh á»Ĺ", + "Ġhá» Ĺ", + "ÑĢ Ñĸб", + "ÑĢÑĸ б", + "Ġ ãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢ", + "ĠãĢĢĠ ãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ìľ¼ ë©°", + "äºĨ ä¸Ģ", + "ĠÙĤ بÙĦ", + "ĠÙĤب ÙĦ", + "é¾ Ļ", + "Ġ گذ", + "ĠÚ¯ Ø°", + "Ġ ÙĤد", + "ĠÙĤ د", + "ãģª ãģĭãģ£ãģŁ", + "Ġ à¹Ģร", + "Ġà¹Ģ ร", + "Ġà¹Ģภ£", + "å¸ Į", + "ĠÑģ Ñħ", + "Ġг ÑĢом", + "ĠгÑĢ ом", + "ĠгÑĢо м", + "åĽ ¢", + "Ġ ì§ij", + "Ġì§ ij", + "Ġ лÑĥÑĩ", + "Ġл ÑĥÑĩ", + "åħ µ", + "Ġ ÐŀÑĤ", + "ĠÐŀ ÑĤ", + "Ġmu á»ijn", + "ãģĺ ãĤĥ", + "o vnÃŃ", + "ov nÃŃ", + "ë©´ ìĦľ", + "ë³ Ģ", + "Ġн еб", + "Ġне б", + "Ñģ ии", + "Ñģи и", + "ÙĨ Ùħ", + "ÄŁ in", + "ÄŁi n", + "Ġt oho", + "Ġto ho", + "Ġtoh o", + "en iz", + "eni z", + "ب اش", + "با Ø´", + "ĠÑģ лÑĥж", + "ĠÑģл Ñĥж", + "ĠÑģлÑĥ ж", + "Ġb ợi", + "Ġüzer e", + "Ġüz ere", + "Ġs adece", + "Ġsad ece", + "ĠÏĢ αÏģ", + "ĠÏĢα Ïģ", + "³³³³³³³³ ³³³³³³³³", + "³³³³³³³ ³³³³³³³³³", + "³³³³³ ³³³³³³³³³³³", + "³³³³³³³³³ ³³³³³³³", + "³³³³³³³³³³³ ³³³³³", + "èĮ ĥ", + "ÏĦ ικÏĮ", + "ÏĦικ ÏĮ", + "ÏĦι κÏĮ", + "Ġ äºĮ", + "ãĤĪãģĨ ãģ«", + "è ŀ", + "ãģ® ãģ¯", + "Ġ ÑĥкÑĢаÑĹн", + "ĠÑĥ кÑĢаÑĹн", + "Ġb ắt", + "в ан", + "ва н", + "Ġ ÑģÑĤÑĢа", + "ĠÑģ ÑĤÑĢа", + "ĠÑģÑĤ ÑĢа", + "ĠÑģÑĤÑĢ а", + "è¡ Ģ", + "nu tÃŃ", + "nut ÃŃ", + "o kt", + "ok t", + "รà¸ĩ à¹Ģร", + "Ġ صÙģ", + "Ġص Ùģ", + "åħ ļ", + "ÏĦ ί", + "ï¼ģ ãĢįĊĊ", + "ï¼ģãĢį ĊĊ", + "ĠÑĤем п", + "ĠÑĤе мп", + "é¡ Į", + "Ġs luž", + "Ġslu ž", + "Ñĥ ков", + "Ñĥк ов", + "Ġngh Ä©a", + "ĠnghÄ© a", + "çĶ ²", + "Ġd á»ħ", + "о ви", + "ов и", + "ÏĦ Ïħ", + "ر ÛĮÚ©", + "رÛĮ Ú©", + "ĠA nh", + "ĠAn h", + "ĠвÑģ его", + "ĠвÑģе го", + "âĢĮ Ú©ÙĨ", + "âĢĮÚ© ÙĨ", + "te ÅĻÃŃ", + "Ġm ục", + "Ùĩ ÙĨÚ¯", + "ÙĩÙĨ Ú¯", + "Ġ ÐŁÐ¾Ñģ", + "ĠÐŁ оÑģ", + "ĠÐŁÐ¾ Ñģ", + "Úĺ Ùĩ", + "ĠاÙĦ غ", + "æĿ ¾", + "y sl", + "ys l", + "Ġyap ılan", + "Ġyapı lan", + "Ġyapıl an", + "çĪ ¶", + "Ġm ạnh", + "ر اÙĩ", + "را Ùĩ", + "à¸Ķ à¸ĩ", + "o Äį", + "ë§ IJ", + "åł Ĥ", + "м аÑĤ", + "ма ÑĤ", + "Ġ eÅŁ", + "Ġe ÅŁ", + "ÙĪÙħ ات", + "Ġس اخت", + "åĽł 为", + "Ġп ÑĢий", + "ĠпÑĢ ий", + "ĠпÑĢи й", + "ıl mÄ±ÅŁ", + "é¤ ¨", + "ุ à¸ĩ", + "Ġ ëģ", + "Ġë ģ", + "à¸ķ าม", + "à¸ķา ม", + "åIJ ī", + "μ ή", + "Ġ æľ¬", + "Ġzá klad", + "ت ØŃ", + "è¾ ¼", + "Ġв Ñĸй", + "ĠвÑĸ й", + "ĠÙħÙĨ Ø·", + "Ġto án", + "к аÑĢ", + "ка ÑĢ", + "Ġ ÐĹа", + "ĠÐĹ Ð°", + "ĠпÑĢи мен", + "ĠпÑĢим ен", + "ãĤĭ ãģ¨", + "ั à¸Ĺ", + "ÛĮ س", + "ĠاÙĨ جاÙħ", + "ĠاÙĨج اÙħ", + "Ġع ÙĦÙĬ", + "ĠعÙĦ ÙĬ", + "़ ि", + "e ných", + "en ých", + "ený ch", + "ĠL iên", + "ĠLi ên", + "Ġ па", + "Ġп а", + "éļ Ĭ", + "Ġmo hou", + "Ġmoh ou", + "Ġк ÑĸлÑĮ", + "Ġ Το", + "ĠΤ ο", + "ا ÙĦب", + "اÙĦ ب", + "ÎŃ Î½", + "Ġna bÃŃ", + "Ġnab ÃŃ", + "ç i", + "ler den", + "lerde n", + "Ġth anh", + "Ġthan h", + "Ġtha nh", + "Ġb ütün", + "Ġ åŁ", + "Ġå Ł", + "ì¸ ł", + "Ġz at", + "Ġza t", + "ÙĬ ÙĪ", + "Ġμ ια", + "uy ết", + "Ñij н", + "åĪ Ĵ", + "ли во", + "лив о", + "à¹Ī à¸Ńà¸ĩ", + "à¹Īà¸Ń à¸ĩ", + "ä»ĸ 们", + "Ġб аг", + "Ġба г", + "ि à¤Ń", + "िठŃ", + "ĠÑĤ ам", + "ĠÑĤа м", + "Ġп ÑĢеп", + "ĠпÑĢ еп", + "ĠпÑĢе п", + "ิ à¸Ĭ", + "âĢĻ Ñıз", + "âĢĻÑı з", + "ĠPh ân", + "ж ен", + "же н", + "à¥Ī à¤ķ", + "ĠÑģлÑĥÑĩа е", + "Ġ .:", + "Ġ. :", + "åѦ æł¡", + "Ä° N", + "ç¾ ©", + "ĠÑģ ÑĤо", + "ĠÑģÑĤ о", + "Ġ हर", + "Ġह र", + "Ïħ ν", + "Ġx em", + "Ġxe m", + "Ġб ÑĥÑĤи", + "ĠбÑĥ ÑĤи", + "Ñģ иÑĤ", + "Ñģи ÑĤ", + "çª ģ", + "à¥į à¤Ľ", + "à¥įठĽ", + "åij ¢", + "ï¼Į ä¹Ł", + "e nÄĽ", + "en ÄĽ", + "Ġ κά", + "Ġκ ά", + "iy orum", + "iyor um", + "ĠÚ¯ Ùģت", + "âĹıâĹı âĹıâĹı", + "ั ม", + "Ġ Ðļон", + "ĠÐļ он", + "ĠÐļо н", + "н оÑĪ", + "но ÑĪ", + "ниÑĨ ÑĤ", + "ü zel", + "üz el", + "s ÃŃ", + "å¸ «", + "ص ÙĪÙĦ", + "çĥ Ń", + "ĠÄij ủ", + "ĠÄijá» §", + "ãĤ ®", + "æķ ħ", + "ĠÅ¡ kol", + "ĠÅ¡k ol", + "Ñĩ ен", + "Ñĩе н", + "à¹Ģ ย", + "à¹Ģภ¢", + "à¸Ļ à¸Ļ", + "ÙĢ ÙĢÙĢÙĢ", + "ÙĢÙĢ ÙĢÙĢ", + "ÙĢÙĢÙĢ ÙĢ", + "Ġ üç", + "Ġü ç", + "å¿ µ", + "ãĥª ãĤ¢", + "Ġ íĻĺ", + "ĠíĻ ĺ", + "Ġ éĩij", + "Ġéĩ ij", + "çı Ń", + "Ġ Ñģклад", + "ĠÑģ клад", + "ĠÑģк лад", + "Ñı ми", + "Ñıм и", + "ü f", + "Ġh ã", + "ĠÄIJ ại", + " Ĥ", + "åĦ ª", + "Ġbul unan", + "Ġbulun an", + "ĠاÙĦ ÙħØŃ", + "ĠاÙĦÙħ ØŃ", + "æĪ ı", + "Ġ è©", + "Ġè ©", + "Ġн оÑĢм", + "ĠноÑĢ м", + "Ġchu ẩn", + "Ġз аÑģÑĤ", + "Ġза ÑģÑĤ", + "ĠзаÑģ ÑĤ", + "Ġ vÃŃce", + "ĠvÃŃ ce", + "ĠvÃŃc e", + "Ð ĸ", + "Ġà¤Ĩ ध", + "Ġ Äįas", + "ĠÄį as", + "Ġ боÑĢ", + "Ġб оÑĢ", + "Ġбо ÑĢ", + "Ïģ ια", + "Ïģι α", + "ĠÙħ اÙĩ", + "ĠÙħا Ùĩ", + "Ġ íħ", + "Ġí ħ", + "ÅĻ el", + "ÅĻe l", + "Ñı ви", + "Ñıв и", + "ÏĦ εÏĤ", + "ÏĦε ÏĤ", + "i nÄĽ", + "in ÄĽ", + "Ġп еÑĢе", + "ĠпеÑĢ е", + "éķ ĩ", + "à¥įठŀ", + "Ġ éĺ", + "Ġé ĺ", + "à¹Ī าว", + "à¹Īา ว", + "ร ร", + "Ġ سÙĩ", + "Ġس Ùĩ", + "в али", + "ва ли", + "вал и", + "çķ Ļ", + "ĠÑĦ Ñĥнк", + "ĠÑĦÑĥн к", + "Ġ íĸī", + "Ġí ĸī", + "Ġíĸ ī", + "Ùģ Ùĩ", + "çĶŁ æ´»", + "èģ ŀ", + "o kud", + "ok ud", + "oku d", + "Ġ ìĤ´", + "ĠìĤ ´", + "ı zı", + "ız ı", + "Ġпо лÑĥ", + "Ġпол Ñĥ", + "ï¼Į ä½ł", + "Ø´ اÙĨ", + "æ± º", + "б ÑĢÑı", + "оÑģÑĥд аÑĢ", + "Ġo yun", + "Ġoy un", + "а нии", + "ан ии", + "ани и", + "Ġp rů", + "Ġpr ů", + "Ġn áv", + "Ġná v", + "Ġм енÑı", + "Ġмен Ñı", + "Ġìŀ ĺ", + "Ġ Ä°n", + "ĠÄ° n", + "Ġth ÃŃch", + "ĠthÃŃ ch", + "ĠÄij ảm", + "åľ Ĵ", + "Ġв же", + "Ġl oÃłi", + "Ġlo Ãłi", + "Ġ Ðŀн", + "ĠÐŀ н", + "м еÑģÑĤ", + "ме ÑģÑĤ", + "Ġ ξ", + "ĠÎ ¾", + "ãĢ ħ", + "Ġch iế", + "Ġchi ế", + "Ñĩ Ñĸ", + "Ġ íijľ", + "Ġí ijľ", + "ëĭ ¬", + "Ġ ëĭ¬", + "Ġëĭ ¬", + "à¥Ģ ड", + "ÑĢ алÑĮ", + "ÑĢа лÑĮ", + "ÑĢал ÑĮ", + "d ik", + "di k", + "Ġ íĨł", + "ĠíĨ ł", + "ëŁ ī", + "Ġ صÙĨ", + "Ġص ÙĨ", + "Ġs tej", + "Ġst ej", + "Ġste j", + "Ġа кÑĤив", + "Ġак ÑĤив", + "ĠакÑĤ ив", + "ĠакÑĤи в", + "Ġ é¦", + "Ġé ¦", + "Ġ à¹Ħà¸Ķ", + "Ġà¹Ħ à¸Ķ", + "æĬĢ æľ¯", + "Ġp rostÅĻed", + "Ġpro stÅĻed", + "Ġprost ÅĻed", + "å® ³", + "ãģ IJ", + "Ġol uÅŁtur", + "ĠoluÅŁ tur", + "e lop", + "el op", + "elo p", + "ãģ¡ ãĤĥ", + "éĥ İ", + "ض ا", + "Ġ خط", + "ĠØ® Ø·", + "ë° ķ", + "е ÑģÑı", + "еÑģ Ñı", + "ĠÙĩ ÛĮ", + "н ад", + "на д", + "Ġng Ãłnh", + "ÑĢ ÑĥÑĪ", + "ÑĢÑĥ ÑĪ", + "ãģĦ ãģĦ", + "Ġü rün", + "Ġür ün", + "à¸Ń à¸ķ", + "à¥ĭ प", + "Ġs ayı", + "Ġsa yı", + "Ġsay ı", + "à¥Ģ स", + "е ниÑħ", + "ен иÑħ", + "ени Ñħ", + "Ġ Ñģим", + "ĠÑģ им", + "ĠÑģи м", + "à¥Ģ द", + "å¤ ī", + "à¹Ī วม", + "à¹Īว ม", + "Ġ à¹Ģà¸Ĥ", + "Ġà¹Ģ à¸Ĥ", + "Ġà¹ĢภĤ", + "å·² ç»ı", + "а ÑĤо", + "аÑĤ о", + "ĠÑĢай он", + "í ĥĿ", + "íĥ Ŀ", + "Ġ ÑĤÑĢа", + "ĠÑĤ ÑĢа", + "ĠÑĤÑĢ а", + "l ayan", + "la yan", + "lay an", + "ế p", + "ा à¤Ł", + "ाठŁ", + "Ø® اب", + "人 æ°ij", + "å® Ŀ", + "è Ĩ", + "èª į", + "n aÄį", + "na Äį", + "Ġî ł", + "ĠÐļ и", + "ĠbaÅŁ ka", + "ĠbaÅŁk a", + "c ů", + "ض ع", + "èĪ ª", + "ี ม", + "Ñĭ ми", + "Ñĭм и", + "ÎĻ Σ", + "Ġشر کت", + "ย ว", + "Ġmus ÃŃ", + "Ġmu sÃŃ", + "Ġн ал", + "Ġна л", + "ี à¸Ĺ", + "Ġ áp", + "Ġá p", + "ร าย", + "æ² ¹", + "l eme", + "le me", + "lem e", + "Ġ मन", + "Ġम न", + "à¹Ħ à¸Ł", + "а ÑĤив", + "аÑĤ ив", + "аÑĤи в", + "¸ ı", + "èŃ °", + "Ïĥ ÏĦα", + "ÏĥÏĦ α", + "íĸ ¥", + "е ÑĤÑĥ", + "еÑĤ Ñĥ", + "ĠÑģв Ñıз", + "ĠÑģвÑı з", + "ед еÑĢа", + "ĠØ® ارج", + "า ษ", + "าภ©", + "âĢĮ Ù¾", + "Ñĸ г", + "é¡ ŀ", + "Ġkh ả", + "ĠÑģ пÑĢав", + "ĠÑģп ÑĢав", + "è¡ Ĺ", + "ãĥķ ãĤ¡", + "ãĥķãĤ ¡", + "Ġм еждÑĥ", + "Ġмеж дÑĥ", + "Ñĥ ли", + "Ñĥл и", + "Ġب زر", + "ÑĨ ен", + "ÑĨе н", + "Ġek onom", + "د ÙĨ", + "ا ÙħÛĮ", + "اÙħ ÛĮ", + "าส à¸ķร", + "ĠnÄĽ kol", + "ĠnÄĽk ol", + "g ün", + "з и", + "ĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂł ĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂł", + "ç¦ »", + "Ġtr Æ°á»Łng", + "ı i", + "íİ ¸", + "Ġ ÑĢеб", + "ĠÑĢ еб", + "ĠÑĢе б", + "åº ķ", + "Ġت ارÛĮØ®", + "н има", + "ни ма", + "ним а", + "Ġth ân", + "аÑĤ елÑĮно", + "аÑĤелÑĮ но", + "ĠاÙĦ Ø°ÙĬ", + "ĠاÙĦØ° ÙĬ", + "ÙĪ ÙĨÛĮ", + "ÙĪÙĨ ÛĮ", + "Ġ éĥ", + "Ġé ĥ", + "Ġb ình", + "Ġbì nh", + "ικ ήÏĤ", + "ική ÏĤ", + "à¸ŀ ล", + "تÙħ اع", + "ĠPr aha", + "ĠPra ha", + "Ġ ÑģÑĤав", + "ĠÑģÑĤ ав", + "ĠÑģÑĤа в", + "د ÙĬد", + "دÙĬ د", + "Ġgi ữa", + "Ġgiữ a", + "ĠпÑĢо вед", + "ĠпÑĢов ед", + "Âł k", + "ÙĨد Ú¯ÛĮ", + "ÑĨ ий", + "ÑĨи й", + "ç Ĵ", + "ĠاÙĦ Ø£Ùħ", + "ĠاÙĦØ£ Ùħ", + "Ġ è´", + "Ġè ´", + "Ø¥ ÙĨجÙĦÙĬزÙĬØ©", + "ĠìŀĪ ìĹĪëĭ¤", + "ĠìŀĪìĹĪ ëĭ¤", + "ç ·¨", + "ç· ¨", + "ัà¸Ļ à¸ĺ", + "ĠÑĢок Ñĸв", + "Ġc áo", + "Ġcá o", + "Ġkh ó", + "Ġ ÙĨÙĪع", + "ĠÙĨ ÙĪع", + "ĠÙĨÙĪ ع", + "س ÙĦ", + "Ġ ÑĥÑģлов", + "ĠÑĥ Ñģлов", + "ĠÑĥÑģл ов", + "ĠÑĥÑģ лов", + "Ġcứ u", + "ов ого", + "ово го", + "ि à¤Ĺ", + "िठĹ", + "Ķ ëĭ¤", + "æĿ İ", + "Ġbö lg", + "Ġböl g", + "Ġn gu", + "Ġng u", + "Ġh ữu", + "Ġhá» ¯u", + "н ии", + "ни и", + "ìł Ī", + "Ġп ÑĢом", + "ĠпÑĢ ом", + "ĠпÑĢо м", + "åı Į", + "Ġd Æ°á»Ľi", + "ĠdÆ°á» Ľi", + "ĠdÆ° Ỽi", + "Ð ®", + "ÙĬ Ø´", + "æ¸ ©", + "ëı ħ", + "Ġз мÑĸ", + "Ġзм Ñĸ", + "θη κε", + "ĠbaÄŁ lı", + "Ġüzer inde", + "Ġ تغ", + "Ġت غ", + "Ġп ÑĢогÑĢа", + "ĠпÑĢ огÑĢа", + "ĠпÑĢо гÑĢа", + "ĠпÑĢог ÑĢа", + "i ž", + "Ġ ç¥", + "Ġç ¥", + "Ġy ardım", + "Ġyard ım", + "Ġyar dım", + "ÂĢ ÂĢ", + "ÂĢ Ģ", + "Ġ Ñĥв", + "ĠÑĥ в", + "Ġ rů", + "Ġr ů", + "Ġch iến", + "Ġchi ến", + "Ġchiế n", + "ν οÏĤ", + "νο ÏĤ", + "ãģ¨ ãģª", + "ا ÙĨت", + "اÙĨ ت", + "è° ·", + "ÃŃ sk", + "ÃŃs k", + "is inde", + "isi nde", + "isin de", + "Ġд ог", + "Ġдо г", + "è¿ ½", + "Ġп ÑĢоÑĤив", + "ĠпÑĢо ÑĤив", + "ĠпÑĢоÑĤ ив", + "ĠпÑĢоÑĤи в", + "Ïģ οÏħ", + "Ïģο Ïħ", + "ãģ® ãģĭ", + "Ġb azı", + "Ġba zı", + "Ġbaz ı", + "ı rak", + "ır ak", + "à¥ĩ ष", + "à¥ĩठ·", + "ĠÙħ شار", + "ĠÙħØ´ ار", + "Ġ ìĸij", + "Ġìĸ ij", + "Ġ нез", + "Ġн ез", + "Ġне з", + "Ġ Ø°ÙĦÙĥ", + "ĠØ° ÙĦÙĥ", + "èª ¿", + "åĤ Ļ", + "ĠÑĤ ÑĢан", + "ĠÑĤÑĢ ан", + "ĠÑĤÑĢа н", + "ĠÏĢ αÏģα", + "ĠÏĢαÏģ α", + "ĠÏĢα Ïģα", + "ÛĮ Ùħت", + "ÛĮÙħ ت", + "Ġt iến", + "Ġti ến", + "Ġtiế n", + "ĠÙĩ ÙħÙĩ", + "ĠÙĩÙħ Ùĩ", + "e fon", + "ef on", + "» .ĊĊ", + "». ĊĊ", + "».Ċ Ċ", + "Ġ ÙĨد", + "ĠÙĨ د", + "ج ÙĦ", + "Ġد ادÙĩ", + "Ġداد Ùĩ", + "Ġ вед", + "Ġв ед", + "Ġве д", + "Ġ sın", + "Ġs ın", + "Ġsı n", + "ĠÑģ вÑĸÑĤ", + "ĠÑģв ÑĸÑĤ", + "e lerin", + "el erin", + "eler in", + "ele rin", + "eleri n", + "âĪ ¨", + "Ġy ür", + "д ан", + "да н", + "Ġ ÐŀÑģ", + "ĠÐŀ Ñģ", + "Ġh ạng", + "Ġhạn g", + "Ġhạ ng", + "è® ¸", + "Ïĥ ÏĦη", + "ÏĥÏĦ η", + "uy ến", + "Ġн аб", + "Ġна б", + "Ġ оÑħ", + "Ġо Ñħ", + "Ïĥ Ïī", + "Ġby ly", + "Ġbyl y", + "Ñģ киÑħ", + "Ñģк иÑħ", + "Ñģки Ñħ", + "l amak", + "la mak", + "lam ak", + "lama k", + "и ÑĤоÑĢ", + "иÑĤ оÑĢ", + "Ġy atır", + "Ġya tır", + "Ġyat ır", + "ĠпÑĢоиз вод", + "Ġ جÙħع", + "Ġج Ùħع", + "ĠجÙħ ع", + "Å ł", + "æıIJ ä¾Ľ", + "Ġpr vnÃŃ", + "Ġprv nÃŃ", + "Ġα ÏĢ", + "íĻ ©", + "ĠпÑĢа кÑĤи", + "ler inden", + "lerin den", + "lerinde n", + "ĠнеобÑħодим о", + "åº ·", + "Ùİ Ø§", + "Ġ سÙĨ", + "Ġس ÙĨ", + "Ä° L", + "Ġ ê´ij", + "Ġê ´ij", + "Ġê´ ij", + "Ġ PÅĻ", + "ĠP ÅĻ", + "ç ŀ", + "ĠÑĤемп еÑĢаÑĤÑĥ", + "Ġka bul", + "Ġkab ul", + "Ġbu dou", + "Ġbud ou", + "ÑĨÑĸ оналÑĮ", + "ÑĨÑĸон алÑĮ", + "ï½ ľ", + "Ġç ocuk", + "Ġçocu k", + "ĠÑĤ ÑĸлÑĮки", + "b yt", + "by t", + "ãĥ ¤", + "ĠÑģÑĤ аÑĤ", + "ĠÑģÑĤа ÑĤ", + "Ġ æĿ±", + "ĠæĿ ±", + "le žit", + "اس طة", + "ุ ร", + "i êm", + "iê m", + "ĠкÑĥлÑĮ ÑĤÑĥ", + "Ġ пон", + "Ġп он", + "Ġпо н", + "Ä© nh", + "åĸ ľ", + "н ев", + "не в", + "ÑĶ н", + "ĠÑģо оÑĤ", + "ë Ŀ", + "çĪ ¾", + "Ġtu á»ķi", + "k anı", + "kan ı", + "สำ หร", + "ا عت", + "اع ت", + "ãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "д еÑĢж", + "деÑĢ ж", + "Ġоб лаÑģÑĤи", + "Ġобла ÑģÑĤи", + "ĠоблаÑģ ÑĤи", + "ĠоблаÑģÑĤ и", + "Ġобл аÑģÑĤи", + "Ġv ừa", + "Ġvá» «a", + "Ġ ÙħÙħ", + "ĠÙħ Ùħ", + "à¸ģ ำ", + "à¹ģ ม", + "iver sit", + "ivers it", + "à¹ģ ส", + "æ¬ §", + "l anan", + "la nan", + "lan an", + "ÙĬ ÙĨØ©", + "ÙĬÙĨ Ø©", + "س Ø©", + "ĠлÑİд ей", + "ร รม", + "รร ม", + "Ġ ì±Ħ", + "Ġì± Ħ", + "Ġ 天", + "Ġå¤ ©", + "ен нÑĭÑħ", + "à¹ģ ห", + "Ġs práv", + "Ġsp ráv", + "Ġspr áv", + "èŃ ¦", + "ï¼ ľ", + "ั à¸Ĵ", + "il ecek", + "ile cek", + "ilece k", + "Ġ æŁ", + "Ġæ Ł", + "Ġ èĭ±", + "Ġèĭ ±", + "ĠÑħ оÑĢоÑĪ", + "ëł ĩ", + "Û² Û°Û°", + "Û²Û° Û°", + "æĬ ¤", + "Ġl ã", + "ÅĻÃŃ zenÃŃ", + "ÅĻÃŃz enÃŃ", + "ĠتÙĪÙĦ ÛĮد", + "éļ Ľ", + "ãĤĮ ãģ°", + "á Å¡", + "ارÙĬ Ø®", + "æĶ »", + "Ġkho ảng", + "Ġkhoản g", + "éĻ į", + "о ван", + "ов ан", + "ова н", + "Ġg ây", + "âĢĻn ın", + "Ø£ ÙĨ", + "m iÅŁtir", + "mi ÅŁtir", + "miÅŁ tir", + "miÅŁti r", + "Ġs ức", + "Ġsứ c", + "к ÑĥÑģ", + "кÑĥ Ñģ", + "Ġüzer ine", + "ÄŁ ü", + "ا بر", + "اب ر", + "ï¼Į å°±", + "Ì £", + "Ġ ëıĮ", + "Ġëı Į", + "Ġtr á»±c", + "æĶ¶ å½ķ", + "æī ¿", + "ĠN á»Ļi", + "Ġ çĻ¾", + "ĠçĻ ¾", + "ÑĪ ÑĮ", + "ج Ø©", + "ë² ł", + "ठī", + "à ¸ı", + "ภı", + "Ġü lk", + "Ġül k", + "ĠÙĩست ÙĨد", + "ัà¸ļ à¸ģาร", + "ĠÑı ка", + "ĠÑıк а", + "ã İ", + "Ġ Як", + "ĠЯ к", + "Ġг де", + "t iv", + "ti v", + "ãĢ Ī", + "лÑİ Ñĩа", + "лÑİÑĩ а", + "ा ।Ċ", + "ा। Ċ", + "Ġ ÙħاÙĨ", + "ĠÙħ اÙĨ", + "ĠÙħا ÙĨ", + "Ġd lou", + "Ġdl ou", + "Ġ ãĥķ", + "Ġãĥ ķ", + "ठĽ", + "Ġph ục", + "Ġphụ c", + "a kat", + "ak at", + "aka t", + "Ð ¬", + "as ını", + "ĠæĬķ 稿", + "ÑĢ ев", + "ÑĢе в", + "Ġv yt", + "Ġvy t", + "Ġz mÄĽ", + "Ġzm ÄĽ", + "ÏĦ Ïī", + "è ¬", + "Ġ Ñĥм", + "ĠÑĥ м", + "Ġuz un", + "Ġp roti", + "Ġpro ti", + "Ġpr oti", + "Ġprot i", + "ĠÑģо ÑģÑĤоÑı", + "ĠÑģоÑģÑĤ оÑı", + "ัà¸Ĵ à¸Ļ", + "a tik", + "at ik", + "ati k", + "Ġ à¸ł", + "Ġภł", + "Ġà¤Ĩ द", + "lar ından", + "ların dan", + "larında n", + "æĢ ¥", + "ãĥ¼ ãĤ¯", + "ãĥ¼ãĤ ¯", + "ĠÙĦ ÙĦÙħ", + "ĠÙĦÙĦ Ùħ", + "Ùģ تÙĩ", + "Ùģت Ùĩ", + ". :.", + ".: .", + "üç ük", + "ол ева", + "à¹Į Ċ", + "ĠпеÑĢ ев", + "ĠпеÑĢе в", + "ĠÙĨ سب", + "ĠÙĨس ب", + "е леннÑı", + "ел еннÑı", + "елен нÑı", + "' ın", + "'ı n", + "ν Ïī", + "è¡ £", + "Ġ دÙĬ", + "Ġد ÙĬ", + "åį ĩ", + "Ġbel irt", + "Ġbelir t", + "Ġ /:", + "Ġ/ :", + "èij ī", + "Ġv yh", + "Ġvy h", + "çļĦ ä¸Ģ", + "èĥ Į", + "Ġ ìĹ´", + "ĠìĹ ´", + "о ла", + "ол а", + "Ġ تب", + "Ġت ب", + "á ci", + "ác i", + "ा à¤ī", + "ाठī", + "ภİ", + "çĶ ¢", + "à¥Ī ल", + "Ġ ÙĤØ·", + "ĠÙĤ Ø·", + "ëĦ Ī", + "ắ m", + "ÑĢ Ñıд", + "ÑĢÑı д", + "Ġph ụ", + "ĠÙĪ اÙĤع", + "ĠÙĪا ÙĤع", + "Ġm erk", + "Ġme rk", + "Ġmer k", + "Ġch á»ijng", + "å¯ Ł", + "ا بط", + "اب Ø·", + "us unda", + "usu nda", + "Ġод на", + "ž el", + "že l", + "ĠÑģ Ñĥм", + "ĠÑģÑĥ м", + "Ġph ù", + "Ġ ζ", + "ĠÎ ¶", + "Ġz av", + "Ġza v", + "e dn", + "ed n", + "Ġp otÅĻeb", + "Ġpot ÅĻeb", + "ĠÚ©ÙĨ ÙĨد", + "ĠÑĢ азв", + "ĠÑĢаз в", + "ĠÑĢа зв", + "¿ ł", + "ĠاÙĦ ز", + "Ġm ÄĽl", + "ĠmÄĽ l", + "Ġ ÑģÑĤанов", + "ĠÑģÑĤ анов", + "ĠÑģÑĤан ов", + "ĠÑģÑĤа нов", + "Ġ درÛĮ", + "Ġد رÛĮ", + "Ġدر ÛĮ", + "Ġt ượng", + "ã ģµ", + "ãģ µ", + "Ġд ви", + "Ġдв и", + "ÑĮ Ñı", + "è £½", + "è£ ½", + "Ġ تÙĦ", + "Ġت ÙĦ", + "Å¡ Å¥", + "ãģª ãĤī", + "Ġà¤ķ à¤Ī", + "Å¡ i", + "âĢĮ است", + "Ġk ỹ", + "Ġká» ¹", + "ë§ Ŀ", + "Ġà¤Ĩ à¤ľ", + "ãĥ ´", + "Ġb á»ı", + "du ÄŁu", + "duÄŁ u", + "Ġ æ¯", + "Ġæ ¯", + "п еÑĢ", + "пе ÑĢ", + "ا ÙĦÙĬØ©", + "اÙĦ ÙĬØ©", + "اÙĦÙĬ Ø©", + "æīĢ 以", + "åħ °", + "Ġ oran", + "Ġo ran", + "Ġor an", + "Ġora n", + "Ġ íŀ", + "Ġí ŀ", + "Ïĥ ία", + "Ïĥί α", + "Ġph ủ", + "ĠбÑĭ ла", + "ĠбÑĭл а", + "Ñĩ ива", + "Ñĩи ва", + "Ñĩив а", + "Ġ ê°Ħ", + "Ġê° Ħ", + "о лÑĸ", + "ол Ñĸ", + "Ùĥ ت", + "å ħ§", + "åħ §", + "à¥Ĥ à¤Ł", + "Ġ ëĸ", + "Ġë ĸ", + "Ġ ÙĦÙĩ", + "ĠÙĦ Ùĩ", + "ëłĪ ìĿ´", + "Ġh ız", + "å¤ ı", + "ĠæĬķ稿 æĹ¥", + "éļ ¾", + "ĵ °", + "г лÑıд", + "глÑı д", + "гл Ñıд", + "ì n", + "Ġ меÑĢ", + "Ġм еÑĢ", + "Ġ ãĢij", + "ĠãĢ ij", + "Ġ обÑī", + "Ġоб Ñī", + "um hur", + "çł ´", + "л иÑģÑĮ", + "ли ÑģÑĮ", + "sp ÄĽ", + "ر ÙĬÙĤ", + "رÙĬ ÙĤ", + "Ġ تÙģ", + "Ġت Ùģ", + "Ġا ÙĦÙĪ", + "ĠاÙĦ ÙĪ", + "çµ ±", + "а лоÑģÑĮ", + "ал оÑģÑĮ", + "ало ÑģÑĮ", + "Ġm ô", + "Ġv á»ĩ", + "Ġvá» ĩ", + "Ġ δι", + "Ġδ ι", + "Ġ зн", + "Ġз н", + "Ġ بØŃ", + "Ġب ØŃ", + "ت Ùī", + "Ġ ì§ģ", + "Ġì§ ģ", + "Ġvel mi", + "uyá» ħn", + "Ġph ạm", + "ÑģÑĤв ом", + "ÑģÑĤво м", + "ĠÙĪ اÙĦÙħ", + "ĠÙĪاÙĦ Ùħ", + "ĠÙĪا ÙĦÙħ", + "ĠбÑĭ ли", + "ĠбÑĭл и", + "ا Ø°", + "Ø§Ø °", + "ÄĽ ÅĻ", + "â Ħĸ", + "âĦ ĸ", + "Ġп олож", + "Ġпо лож", + "Ġпол ож", + "า à¸ģาร", + "าà¸ģ าร", + "ĠÄį lán", + "Îķ Ρ", + "Ġ ìĤ°", + "ĠìĤ °", + "β α", + "Ġ æĹ¥æľ¬", + "ĠæĹ¥ æľ¬", + "ز د", + "ĠÙĨ ÛĮست", + "ĠÙĨÛĮ ست", + "Ġha yat", + "Ġhay at", + "Ġhaya t", + "ç¢ º", + "à¹Ģ วล", + "à¹Ģว ล", + "ĠCh ÃŃnh", + "ĠChÃŃ nh", + "ï¼Į æĺ¯", + "ĠÙĪ اØŃ", + "ĠÙĪا ØŃ", + "èı ¯", + "Ġή ÏĦαν", + "Ġx á»Ń", + "ĠÄį erv", + "ĠÄįer v", + "ĠÄįe rv", + "ĠÙħد ÛĮر", + "é Ĩ", + "ĠëĪ Ī", + "ç» Ń", + "Ġt ên", + "ìĸ ¸", + "Ġort aya", + "Ġorta ya", + "Ġ жен", + "Ġж ен", + "Ġже н", + "Ġn Æ¡i", + "ен нÑĭе", + "ÑĦ екÑĤив", + "ÑĦек ÑĤив", + "íĿ ¬", + "Ġkh á»ı", + "ĠÄij a", + "os yal", + "osy al", + "à¸Ľà¸£à¸° à¹Ģà¸Ĺศ", + "Ġo dst", + "Ġod st", + "Ġ à¸ĸ", + "Ġภĸ", + "Ġο ÏĢο", + "æĶ¿ åºľ", + "Ġb Ãłn", + "ĠbÃł n", + "ĠG iá»", + "ĠGi á»", + "Ġold uk", + "Ġol duk", + "Ġoldu k", + "о вание", + "ов ание", + "ова ние", + "овани е", + "ован ие", + "à¸Ń ส", + "Ġ нев", + "Ġн ев", + "Ġне в", + "ÏĦ Ïģο", + "ÏĦÏģ ο", + "Ġ ìĨį", + "ĠìĨ į", + "k ı", + "Ġब ड", + "Ġ ÏħÏĢ", + "ĠÏħ ÏĢ", + "Ġ Vý", + "ĠV ý", + "ï¾ Ħ", + "çŃ ĸ", + "ε ÏĨ", + "Ġ åħ¨", + "Ġåħ ¨", + "ĠÙģ رÙĪØ´", + "ĠÙģر ÙĪØ´", + "ĠÙģرÙĪ Ø´", + "ÙĤÛĮ ÙĤ", + "ä¼ģ ä¸ļ", + "ε Ïį", + "èĻ Ł", + "Ġa yr", + "Ġay r", + "ض ÙĪ", + "Å¡ el", + "Å¡e l", + "Ġп ÑĸÑģлÑı", + "ĠпÑĸÑģ лÑı", + "Ñĸй Ñģ", + "é¢ Ĩ", + "Ú© تر", + "کت ر", + "л Ñĥб", + "лÑĥ б", + "è« ĸ", + "æ° ¸", + "ез пеÑĩ", + "Ġ кам", + "Ġк ам", + "Ġка м", + "ع داد", + "عد اد", + "ê±° ëŀĺ", + "ู à¸ĩ", + "ĠتÙĩ راÙĨ", + "Ġ ëĦĪ", + "ĠëĦ Ī", + "ÑĢ ив", + "ÑĢи в", + "Ġ ÑĤоÑĢ", + "ĠÑĤ оÑĢ", + "ĠÑĤо ÑĢ", + "ا Ùī", + "ا٠ī", + "' Ñıз", + "'Ñı з", + "ÙIJ ÙĬ", + "Ġkh ÃŃ", + "Ġ ÑĪÑĤ", + "ĠÑĪ ÑĤ", + "Ġ ξε", + "ĠÎľ ε", + "Ġb iri", + "Ġbi ri", + "Ġbir i", + "è ĩ´", + "èĩ ´", + "Ñĥ вав", + "Ñĥв ав", + "Ñĥва в", + "ãģĪ ãĤĭ", + "Ġд иÑģ", + "Ġди Ñģ", + "а ÑİÑĤ", + "аÑİ ÑĤ", + "ص ب", + "åĿ ĩ", + "о лÑİ", + "ол Ñİ", + "èĭ ¥", + "Ġ اث", + "Ġا Ø«", + "ĠØ§Ø «", + "s ou", + "so u", + "åIJ ĥ", + "ãģ® ãģł", + "ub lik", + "ubl ik", + "л ей", + "ле й", + "Âł m", + "Ġíıī ê·ł", + "ạ y", + "ε ÏĢ", + "t ık", + "tı k", + "Ġv yu", + "Ġvy u", + "ع ÙĪد", + "Ġд оз", + "Ġдо з", + "Ġl á»ĭch", + "è³ ª", + "à¥ģ à¤Ī", + "à¥ģठĪ", + "ั à¸ŀ", + "Ġt ém", + "Ġté m", + "Ġ kaç", + "Ġk aç", + "Ġka ç", + "Ġc ái", + "Ġcá i", + "Ġ μα", + "Ġμ α", + "âĢ¦âĢ¦ ãĢįĊĊ", + "í Ī¬", + "ر ÙĪÙĩ", + "رÙĪ Ùĩ", + "Ġ rych", + "Ġr ych", + "Ġry ch", + "Îij Τ", + "Ġ ÑĢÑĸв", + "ĠÑĢ Ñĸв", + "ë³ ij", + "åģ ¥", + "Ġzd rav", + "Ġ عدد", + "Ġع دد", + "Ġعد د", + "èį ī", + "δ ια", + "δι α", + "Ġv áºŃn", + "Ñĭ ÑĤ", + "Ġкол иÑĩ", + "Ġко лиÑĩ", + "Ġколи Ñĩ", + "ÏĮ ÏĦε", + "Ġb ırak", + "Ġ ØŃÙħ", + "ĠØŃ Ùħ", + "Ġch á»ĭ", + "é» Ħ", + "ĠاÙĦÙħت ØŃدة", + "ื à¸Ńà¸ģ", + "ืà¸Ń à¸ģ", + "Ġз али", + "Ġза ли", + "Ġзал и", + "Ġnh anh", + "âĢĮ تÙĪاÙĨ", + "ëĿ ½", + "Ġت ÙĪسط", + "ĠتÙĪ سط", + "ĠتÙĪس Ø·", + "è¦ģ æ±Ĥ", + "а лÑĥ", + "ал Ñĥ", + "ün kü", + "ünk ü", + "ãģª ãĤĵ", + "Ġ Trong", + "ĠT rong", + "ĠTr ong", + "ĠTro ng", + "à¸Ļ ะ", + "åij ¼", + "Ġ ÙĬÙħ", + "ĠÙĬ Ùħ", + "и ки", + "ик и", + "ĠÑĤ ÑĥÑĤ", + "ĠÑĤÑĥ ÑĤ", + "Ġya ÅŁam", + "ĠyaÅŁ am", + "Ġm á»įi", + "é ĽĦ", + "éĽ Ħ", + "ĠØŃ Ø¶", + "Ġав ÑĤом", + "ĠавÑĤ ом", + "Ġसब स", + "Ġy ếu", + "ãĤ¹ ãĤ¿", + "Ïĩ ή", + "Ñĸ Ñİ", + "è ĺ", + "ิ ย", + "Ġm ev", + "Ġme v", + "ick ého", + "ické ho", + "ि ह", + "िठ¹", + "åŃ £", + "θ ή", + "Ġब ढ", + "ĠاÙĦ Ùħس", + "ĠاÙĦÙħ س", + "ÏĦ οÏħ", + "ÏĦο Ïħ", + "ek li", + "ekl i", + "Ġде ÑĢев", + "ĠдеÑĢ ев", + "å¸ Ń", + "æ² Ļ", + "ãģ« ãĤĤ", + "Ġo blast", + "Ġob last", + "Ġobl ast", + "Ġh á»Ļ", + "Ġhá» Ļ", + "Ġ å¹³", + "Ġå¹ ³", + ".:.:.:.: .:.:.:.:", + ".:.:.:. :.:.:.:.:", + "Ġ éĸ", + "Ġé ĸ", + "Ġ جز", + "Ġج ز", + "ĠÙĩÙħ ÚĨ", + "ä¸ ¦", + "ÑĨ еп", + "ÑĨе п", + "ा Ċ", + "ä¸Ń çļĦ", + "'n ın", + "Ġ íķĺëĬĶ", + "Ġíķĺ ëĬĶ", + "ÑĶ ÑĹ", + "Ġ بش", + "Ġب Ø´", + "åį ´", + "ä¹ ł", + "ĠاطÙĦ اعات", + "ĠاطÙĦاع ات", + "Ġ ë²ł", + "Ġë² ł", + "Ġکرد ÙĨ", + "Ġکر دÙĨ", + "ा ड", + "ाठ¡", + "Ġà¤ħ र", + "ĠH á»į", + "ĠHá» į", + "ĠгÑĢом ад", + "Ġ ست", + "ĠØ ³Øª", + "Ġس ت", + "ÏĦι ÏĤ", + "Ġan cak", + "Ġanc ak", + "Ġ ог", + "Ġо г", + "Ġk teÅĻÃŃ", + "Ġ æ¬", + "Ġæ ¬", + "Ġ Ngh", + "ĠN gh", + "ĠNg h", + "Ġt edy", + "Ġte dy", + "Ġted y", + "Ġ ÏĢο", + "ĠÏĢ ο", + "Ġqu ân", + "Ġб Ñĥли", + "ĠбÑĥ ли", + "è¯ Ĩ", + "Ġt ừng", + "Ġtá» «ng", + "Ġtừ ng", + "人 çļĦ", + "ี à¸ģาร", + "ีà¸ģ าร", + "Ġκα ÏĦα", + "Ġpo uze", + "Ġpou ze", + "¡ ng", + "ĠØ¢ ر", + "Ġ ÑĤÑĥ", + "ĠÑĤ Ñĥ", + "Ġt á»·", + "Ġtá» ·", + "ĠD anh", + "ĠDan h", + "ĠDa nh", + "о ном", + "он ом", + "Ñģ ий", + "Ñģи й", + "Ġ à¹Ģà¸Ķ", + "Ġà¹Ģ à¸Ķ", + "Ġà¹ĢภĶ", + "£ ¨", + "Å¡ k", + "ãĥĥ ãĥī", + "ar dır", + "ard ır", + "Ġyö net", + "Ġyön et", + "Ñĥ вали", + "Ñĥв али", + "Ñĥва ли", + "åħĪ çĶŁ", + "Ġ ÐIJÑĢ", + "ĠÐIJ ÑĢ", + "Ġprot ože", + "Ġproto že", + "Ġ íģ¬", + "Ġíģ ¬", + "Ġjed not", + "Ġjedn ot", + "Ġjedno t", + "Ġt ý", + "éĩ ĩ", + "Ġ หร", + "Ġห ร", + "Ġ åľ°", + "Ġåľ °", + "çº ¢", + "Ġм олод", + "Ġмол од", + "Ġмо лод", + "iên g", + "iê ng", + "ĠÏĮ ÏĦι", + "Ġد اشتÙĩ", + "Ġداش تÙĩ", + "Ġداشت Ùĩ", + "Ġuy gun", + "Ġuyg un", + "Ġuygu n", + "Ġоп еÑĢа", + "ĠопеÑĢ а", + "åı «", + "Ġ ап", + "Ġа п", + "Ġ кÑĥÑĢ", + "Ġк ÑĥÑĢ", + "ĠкÑĥ ÑĢ", + "ا عة", + "اع Ø©", + "un uz", + "unu z", + "Ġ ìĤ¬ì§Ħ", + "ĠìĤ¬ ì§Ħ", + "Ġv ô", + "ç ok", + "ço k", + "Ġ èģ", + "Ġè ģ", + "ÑĤе ÑĢеÑģ", + "ÑĤеÑĢ еÑģ", + "Ġ استاÙĨ", + "Ġا ستاÙĨ", + "Ġاست اÙĨ", + "Ġاس تاÙĨ", + "а лаÑģÑĮ", + "ала ÑģÑĮ", + "à¥ģ व", + "à¥ģठµ", + "á» ³", + "Ġl Æ°u", + "Ġ Та", + "ĠТ а", + "Ġl á»±a", + "' ÑĶ", + "Ġ üy", + "Ġü y", + "Ġ ÛĮÚ©ÛĮ", + "ĠÛĮ Ú©ÛĮ", + "ĠÛĮÚ© ÛĮ", + "æ ¾", + "н ем", + "не м", + "Ġ خاÙĨ", + "ĠØ® اÙĨ", + "ĠÑį лек", + "ÙĤ اÙĦ", + "л ок", + "ло к", + "ĠÄij ẹp", + "à¥ī ल", + "Ġm ůž", + "Ġmů ž", + "ëĭ¤ ëĬĶ", + "Ġ íķĺëĤĺ", + "Ġíķĺ ëĤĺ", + "ÙĦ ت", + "çİ° åľ¨", + "м о", + "Ïħ Ïĥ", + "ãģŁ ãģ¡", + "ĠìłĦ ìĦ¸", + "à¥į à¤Łà¤°", + "à¥įà¤Ł र", + "ع ات", + "عا ت", + "د ÙĪ", + "ä¿ º", + "æ¥ ½", + "æ£ ®", + "Ġл иÑģÑĤ", + "Ġли ÑģÑĤ", + "δ ι", + "å¯ Į", + "ĠÄij Æ°a", + "в еÑģÑĤи", + "ве ÑģÑĤи", + "веÑģÑĤ и", + "д о", + "ан нÑĸ", + "Ġü ret", + "Ġür et", + "Ġg á»įi", + "ĠÑģ воÑİ", + "ĠÑģв оÑİ", + "ĠÑģво Ñİ", + "á» «ng", + "ừ ng", + "Ġt ất", + "äºļ æ´²", + "á ce", + "ác e", + "N Ãį", + "Ġ ÑĢÑĭ", + "ĠÑĢ Ñĭ", + "æ» ¡", + "Ïģ εÏĤ", + "Ïģε ÏĤ", + "åħį è´¹", + "л оÑĤ", + "ло ÑĤ", + "æĻ º", + "Ġα γ", + "Ġà¤ħ म", + "Ġ ç´", + "Ġç ´", + "о до", + "од о", + "Ñħ и", + "Ġngu á»ĵn", + "éĥ¨ åĪĨ", + "в аÑĤ", + "ва ÑĤ", + "ĠÑĤ еб", + "ĠÑĤе б", + "з аÑĨÑĸÑĹ", + "за ÑĨÑĸÑĹ", + "Ġ ÐŁÑĢо", + "ĠÐŁ ÑĢо", + "ĠÐŁÑĢ о", + "ع ÛĮ", + "Ġ ÙĪÙĬ", + "ĠÙĪ ÙĬ", + "ëŀ ľ", + "Ġne by", + "Ġneb y", + "Ġج دÛĮد", + "Ġجد ÛĮد", + "ÄŁ imiz", + "ÄŁim iz", + "£ ½", + "Ġà¤Ĩ त", + "Ġà¤Ń र", + "æī ĺ", + "å®ī åħ¨", + "Ġëĵ¤ ìĸ´", + "ب رد", + "بر د", + "Ġê²ĥ ìĿ´", + "äº ²", + "æ° ı", + "ал Ñĸз", + "алÑĸ з", + "l ack", + "la ck", + "lac k", + "ĠÙħخت ÙĦÙģ", + "ا ÙĨÙĬØ©", + "اÙĨ ÙĬØ©", + "اÙĨÙĬ Ø©", + "Ġ ì²Ń", + "Ġì² Ń", + "Ġ виÑĤ", + "Ġв иÑĤ", + "Ġви ÑĤ", + "Ġhar eket", + "Ġhare ket", + "Ġharek et", + "é ¨", + "à¸Ļ ำ", + "Ġب رخ", + "Ġبر Ø®", + "å£ ²", + "Ñĩ ай", + "Ñĩа й", + "Ġan lat", + "Ġà¤ħ व", + "ĠاÙģ ز", + "Ġh ết", + "ĠÚĨ ÙĨد", + "éĹ ľ", + "пÑĢи ÑĶм", + "g ı", + "Ġk omp", + "Ġkom p", + "Ġko mp", + "Ġl Ỽp", + "ĠlỼ p", + "Ġm á»Ĺi", + "Ġmá» Ĺi", + "à¸Ľà¸£à¸° à¸ģ", + "Ġ haf", + "Ġh af", + "Ġha f", + "Ġ eder", + "Ġe der", + "Ġed er", + "Ġзд оÑĢов", + "à¥Ĥ म", + "ëł ¸", + "Ġo nun", + "Ġon un", + "Ġonu n", + "ĠÙħر دÙħ", + "ĠÙħرد Ùħ", + "ĠÐľ аÑĢ", + "ĠÐľÐ° ÑĢ", + "Ġìĸ´ ëĸ", + "м ан", + "ма н", + "Ġ ÑģилÑĮ", + "ĠÑģ илÑĮ", + "ĠÑģи лÑĮ", + "ĠÑģил ÑĮ", + "ç¶ ²", + "ë¸ Ķ", + "л ÑıеÑĤ", + "лÑı еÑĤ", + "ĠнеÑģк олÑĮко", + "ĠнеÑģколÑĮ ко", + "l andır", + "land ır", + "lan dır", + "landı r", + "Ġв д", + "ĠÙĨ ÙĪ", + "ãģ İ", + "ÑĤ ин", + "ÑĤи н", + "ت Ø´", + "а ний", + "ан ий", + "ани й", + "Ġt ÅĻ", + "Ñģ иÑħ", + "Ñģи Ñħ", + "л ом", + "ло м", + "æŃ ©", + "ãİ ¡", + "Ġ ØŃر", + "ĠØŃ Ø±", + "æĭ į", + "e nou", + "en ou", + "eno u", + "Ġв ели", + "Ġвел и", + "Ġве ли", + "Ġ δη", + "Ġδ η", + "s ka", + "sk a", + "主 è¦ģ", + "ا ÙģØ©", + "اÙģ Ø©", + "ĠболÑĮ ÑĪе", + "ĠболÑĮÑĪ е", + "ิ ศ", + "çĽ Ĭ", + "ĠÙģ ÙĤØ·", + "ĠÙģÙĤ Ø·", + "å¨ ģ", + "Ġh Æ°á»Łng", + "ĠD oÄŁ", + "ĠDo ÄŁ", + "Ġd Ãłi", + "Ġ гоÑĤов", + "Ġг оÑĤов", + "ĠгоÑĤ ов", + "Ġв ам", + "Ġва м", + "âĢ ī", + "ा à¤ļ", + "ाठļ", + "åħ ¸", + "à¹ĥ หà¸į", + "à¹ĥห à¸į", + "Ġ ç«", + "Ġç «", + "ekt ör", + "Ġв ел", + "Ġве л", + "Ġ ÙĦÙĪ", + "ĠÙĦ ÙĪ", + "Ø´ تÙĩ", + "شت Ùĩ", + "æĺ ¾", + "ả y", + "à¹Ĥ ม", + "Ġt á»ķng", + "Ġtá»ķ ng", + "Ġtá»ķn g", + "ĠповеÑĢ Ñħ", + "ÑĹ Ð²", + "Ġph ép", + "çļ ĩ", + "Ġп оÑĢÑıд", + "Ġпо ÑĢÑıд", + "ĠпоÑĢ Ñıд", + "ĠÑģооÑĤ веÑĤ", + "ठĿ", + "ĠÑģеб Ñı", + "Ġ ëĤł", + "ĠëĤ ł", + "Ġб Ñĥла", + "ĠбÑĥ ла", + "à¹ī าย", + "à¹īา ย", + "Ġ ãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢ ãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢ ãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢ ãĢĢ", + "ĠÙħ جÙħÙĪع", + "ï¼Į 以", + "Ġب ÙĪدÙĩ", + "ĠبÙĪد Ùĩ", + "ĠبÙĪ دÙĩ", + "μ ÏĮ", + "Ġ íݸ", + "Ġíİ ¸", + "eÅŁ it", + "Ñİ Ñīие", + "ÑİÑī ие", + "Ñİ ÑīиÑħ", + "ÑİÑī иÑħ", + "åŁº éĩij", + "Ġت ØŃت", + "ĠتØŃ Øª", + "Ġв лаÑģ", + "Ġвла Ñģ", + "ler le", + "ãĤ ²", + "ëĬ ĺ", + "è ĵ", + "m anın", + "man ın", + "manı n", + "ìŀ Ī", + "Ġz ast", + "Ġza st", + "Ġzas t", + "ĠÑĩелов ек", + "à¥ĩ ब", + "à¥ĩठ¬", + "p eÄį", + "pe Äį", + "Ġبر ÙĨاÙħÙĩ", + "Ġs lov", + "Ġsl ov", + "Ġslo v", + "ĠnÄĽ jak", + "ĠnÄĽj ak", + "ê· ľ", + "à¥ĩ ह", + "à¥ĩठ¹", + "èĹ ¤", + "ĠبÛĮ شتر", + "ĠبÛĮØ´ تر", + "il iz", + "ili z", + "Ġ ëĶĶ", + "Ġë ĶĶ", + "ĠëĶ Ķ", + "ا زÙĩ", + "از Ùĩ", + "ت د", + "Ġe tm", + "Ġet m", + "Ġëĭ¤ 른", + "Ġ vů", + "Ġv ů", + "å° Ħ", + "Ġк лаÑģ", + "Ġкл аÑģ", + "Ġкла Ñģ", + "в ÑĢоп", + "æ´ ¾", + "ĠÄij ình", + "Ñĥ ÑİÑĤ", + "ÑĥÑİ ÑĤ", + "Ñĥ еÑĤÑģÑı", + "ÑĥеÑĤ ÑģÑı", + "éľ ²", + "Ġ ÑģкоÑĢ", + "ĠÑģ коÑĢ", + "ĠÑģк оÑĢ", + "Ġв аÑģ", + "Ġва Ñģ", + "íķĺ ìĺĢëĭ¤", + "íķĺìĺĢ ëĭ¤", + "Ġ داشت", + "Ġد اشت", + "Ġداش ت", + "Ġ çĦ", + "Ġç Ħ", + "Ġ 西", + "Ġè ¥¿", + "Ġκα ÏĦά", + "ॠ¦", + "ìĹ Ĩ", + "Ġ خدÙħ", + "ĠØ® دÙħ", + "Ġخد Ùħ", + "ا سÙħ", + "اس Ùħ", + "Îij Ρ", + "ĠA ma", + "ĠAm a", + "å¥ ¥", + "Ġبزر Ú¯", + "Ġ ÐĴÑĸн", + "ĠÐĴ Ñĸн", + "Ġ Åĺ", + "ĠÅ ĺ", + "Ġ à¸Īาà¸ģ", + "Ġà¸Ī าà¸ģ", + "ĠÑħаÑĢакÑĤ еÑĢ", + "ĠÄij á»Ļi", + "ĠÄijá»Ļ i", + "ĠÑĢоз виÑĤ", + "ĠÑĢозви ÑĤ", + "ĠпÑĢоÑĦ еÑģ", + "Ġкон ÑĤÑĢ", + "ĠконÑĤ ÑĢ", + "ÎŁ ÎĽ", + "ÎŁÎ Ľ", + "Ġm inh", + "Ġmin h", + "Ġmi nh", + "ä¼ ij", + "ì ª½", + "Ġch Æ¡i", + "з аÑĨии", + "за ÑĨии", + "ĠдÑĸÑı лÑĮ", + "ë Ĩ", + "Ġn gay", + "Ġng ay", + "Ġnga y", + "à¥Ĥ à¤Ĥ", + "Ġiht iy", + "éĽ ª", + "Ġ ê´Ģ리ìŀIJ", + "Ġê´Ģ리 ìŀIJ", + "Ġc ụ", + "Ġ ì§Ī", + "Ġì§ Ī", + "ÙĬ Ø«", + "ặ p", + "ÙĪ اع", + "ÙĪا ع", + "ãģĤ ãģ£ãģŁ", + "Ġ çľ", + "Ġç ľ", + "Ġ ìļ°ë¦¬", + "Ġìļ° 리", + "à¹Ī à¸ĩà¸Ĥ", + "à¹Īà¸ĩ à¸Ĥ", + "Ġ çŃ", + "Ġç Ń", + ") ØĮ", + "Ãł m", + "ÙĦ ÛĮÙĦ", + "ÙĦÛĮ ÙĦ", + "Ġ 걸", + "Ġê± ¸", + "алÑĮ ниÑħ", + "æŶ åĢĻ", + "un dan", + "und an", + "unda n", + "Ġ Gün", + "ĠG ün", + "ĠGü n", + "Ġ topl", + "Ġt opl", + "Ġto pl", + "Ġtop l", + "ĠÑĢек омен", + "ĠاÙĨت خاب", + "Ãł u", + "Äį ka", + "ë° Ģ", + "Ġк ÑĢаÑģ", + "ĠкÑĢа Ñģ", + "л оп", + "ло п", + "å¼ µ", + "ĠاÙĦ Ùħع", + "ĠاÙĦÙħ ع", + "m ÃŃn", + "mÃŃ n", + "Ġv iết", + "Ġvi ết", + "Ġ ê°ĻìĿĢ", + "Ġê°Ļ ìĿĢ", + "ut eÄį", + "ute Äį", + "Ġ nech", + "Ġn ech", + "Ġne ch", + "Ġnec h", + "çµ Ĥ", + "ãģª ãģĮ", + "ay ın", + "ayı n", + "Ġ Äįin", + "ĠÄį in", + "ĠÄįi n", + "ch ázÃŃ", + "cház ÃŃ", + "اÙģ ظ", + "ÑĢ оваÑĤÑĮ", + "ÑĢов аÑĤÑĮ", + "ÑĢо ваÑĤÑĮ", + "ÑĢова ÑĤÑĮ", + "à¹Ħ ร", + "Ġ ãĤ¤", + "ĠãĤ ¤", + "Ġзаб олева", + "Ġ å±±", + "Ġå± ±", + "Ġka dın", + "Ġkad ın", + "ÏĦ ηÏĤ", + "ÏĦη ÏĤ", + "а лиÑģÑĮ", + "ал иÑģÑĮ", + "али ÑģÑĮ", + "Ġh ük", + "åĵ ¥", + "Ġп еÑĢи", + "ĠпеÑĢ и", + "ÅĻ ád", + "Ġà¤ħ स", + "Ġ ÑģÑĤвоÑĢ", + "ĠÑģÑĤ воÑĢ", + "ĠÙĪ ÛĮÚ©ÛĮ", + "ĠÙĪÛĮ Ú©ÛĮ", + "Ġ ì¡", + "Ġì ¡", + "Ġc á»Ńa", + "Ġcá»Ń a", + "Ġh iá»ĥu", + "游 æĪı", + "ÑĮ омÑĥ", + "Ġg ó", + "Ġt oh", + "Ġto h", + "Ġб ла", + "Ġбл а", + "Ġ åij", + "Ġå ij", + "Ġп ло", + "Ġпл о", + "и ÑĪ", + "ĠÄij ấu", + "s kou", + "sk ou", + "sko u", + "ãĤĪ ãĤĬ", + "ู à¸Ľ", + "Ġr á»ĵi", + "оп ÑĢоÑģ", + "н олог", + "ĠÑĤ ÑĢав", + "ĠÑĤÑĢ ав", + "ĠÑĤÑĢа в", + "ĠWay back", + "Ġ à¹Ĩ", + "ĠÑĥ ÑĩаÑģÑĤ", + "ĠÑĥÑĩ аÑģÑĤ", + "ĠÑĥÑĩа ÑģÑĤ", + "ĠÑĥÑĩаÑģ ÑĤ", + "ĠпÑĢеп аÑĢа", + "Ġd ạng", + "ĠÃľ n", + "à¹Ħล à¸Ļ", + "Ġد اخ", + "Ġs Æ¡", + "Ġk oy", + "Ġko y", + "ëĿ¼ ê³ł", + "ĠÄij úng", + "à¥ĩà¤Ĥ ,", + "Ġgeç ir", + "ĠÑıк Ñīо", + "Ñģ ÑĤÑĢо", + "ÑģÑĤ ÑĢо", + "ÑģÑĤÑĢ о", + "ен ÑĤов", + "енÑĤ ов", + "Ñĸ ж", + "к ÑĥÑİ", + "кÑĥ Ñİ", + "Ġe ÄŁitim", + "ĠeÄŁit im", + "à¥įर स", + "Ġ Сп", + "ĠС п", + "ا تÛĮ", + "ات ÛĮ", + "ãģij ãĤĭ", + "ÏĦ Ïīν", + "ÏĦÏī ν", + "Ġ км", + "Ġк м", + "âĸįâĸį âĸįâĸį", + "j ist", + "ji st", + "jis t", + "ÑĤ ак", + "ÑĤа к", + "Ġ åIJįåīį", + "ĠåIJį åīį", + "é¡ Ķ", + "л Ñĭ", + "Ġkh ảo", + "Ġkhả o", + "âĢĻ Ñı", + "ĠÙħ ÙĦÛĮ", + "ĠÙħÙĦ ÛĮ", + "l ož", + "lo ž", + "Ġ ìĸ¸", + "Ġìĸ ¸", + "Ġg ần", + "Ġ à¤ľà¤°", + "Ġà¤ľ र", + "ब र", + "Îķ Σ", + "า à¸Ľ", + "าภĽ", + "Ġn ás", + "Ġná s", + "form ace", + "forma ce", + "Ġet mek", + "Ġetm ek", + "Ġetme k", + "в еÑģÑĤ", + "ве ÑģÑĤ", + "ìĸ´ ìļĶ", + "Ġत थ", + "ĠÑģ ек", + "ξ η", + "æ¯ Ľ", + "B ir", + "Bi r", + "Ġ ìŀĦ", + "Ġìŀ Ħ", + "Ġv ardır", + "Ġvar dır", + "Ġvardı r", + "ÙĪ اÙĦ", + "ÙĪا ÙĦ", + "Ä° R", + "ov ané", + "ova né", + "ovan é", + "н аÑĢод", + "на ÑĢод", + "наÑĢ од", + "à¸Ħ ำ", + "e mek", + "em ek", + "eme k", + "ĠÎķ ÏĢ", + "Ġ ÅĻe", + "ĠÅĻ e", + "ãģ¾ ãģĽ", + "uyá»ĩ t", + "Ġ ìĸ¼", + "Ġìĸ ¼", + "r ů", + "Ġ onu", + "Ġo nu", + "Ġon u", + "à¹Ģà¸ķ à¸Ńร", + "од аÑĢ", + "ода ÑĢ", + "ز Ùĩ", + "Ġk av", + "Ġka v", + "о нÑĭ", + "он Ñĭ", + "Ġв еÑģ", + "Ġве Ñģ", + "ìĤ¬ ì§Ģ", + "Ġг ла", + "à Ŀ", + "ĠÙĤ ÛĮÙħت", + "çķ ¥", + "à¸ĸ าà¸Ļ", + "Äį il", + "Äįi l", + "Ġ ä¸ĩ", + "Ġä¸ ĩ", + "è¾ ĥ", + "åħ ħ", + "Ġ ÑĢед", + "ĠÑĢ ед", + "ĠÑĢе д", + "ม ห", + "am ilia", + "ami lia", + "amil ia", + "à¥ĩ à¤ķर", + "à¥ĩà¤ķ र", + "Ġt á»iji", + "Ġtá»ij i", + "Ùģ ÛĮ", + "ÑĢ ÑĸÑĪ", + "ÑĢÑĸ ÑĪ", + "ìķ ł", + "à¸Ļ ส", + "à¸Ī ร", + "à¥ĩ शन", + "à¥ĩश न", + "ĠÙħÙĪ ضÙĪع", + "æī ¹", + "Ġob sah", + "Ġobs ah", + "Ġнав Ñĩ", + "Ġdes tek", + "Ġdest ek", + "Ġdeste k", + "Ġ zas", + "Ġz as", + "Ġza s", + "å ĵį", + "åĵ į", + "üm üz", + "ümü z", + "Ġ çŁ", + "Ġç Ł", + "Ġ è¨", + "Ġè ¨", + "Ù ¬", + "ç» Ī", + "Ġz de", + "Ġzd e", + "Ġz áp", + "Ġzá p", + "à¥Ĥ सर", + "à¥Ĥस र", + "ìĿ´ ì§Ģ", + "çļ ®", + "l om", + "lo m", + "ॠ§", + "ÙĦ اÙĤ", + "ÙĦا ÙĤ", + "à¸Ļ à¸ķ", + "íĮ ħ", + "л ада", + "ла да", + "лад а", + "m asına", + "mas ına", + "ması na", + "ãģ® ãģ§", + "ëĵ¤ ìĿĦ", + "Ġн аг", + "Ġна г", + "m asını", + "mas ını", + "ãĤ Ŀ", + "ın ıf", + "ını f", + "åĽ ´", + "Ġböl üm", + "å¥ ĸ", + "æ¨ Ļ", + "ÙĦ اØŃ", + "ÙĦا ØŃ", + "Ġг оÑģÑĥдаÑĢ", + "داÙĨ ÙĦÙĪد", + "Ġп оÑĤÑĢеб", + "ĠпоÑĤ ÑĢеб", + "ĠÑĢ оÑĨÑĸ", + "о га", + "ог а", + "ĠÑģлед ÑĥеÑĤ", + "Ġп аÑĢа", + "ĠпаÑĢ а", + "Ġпа ÑĢа", + "é ¼", + "ãģį ãģŁ", + "ί ζ", + "Ġb á»ij", + "ÑĤ Ñĸв", + "ÑĤÑĸ в", + "ï¼Į 她", + "f amilia", + "éł ħ", + "Ġد ÙĦ", + "Ġs kup", + "Ġsk up", + "Ġsku p", + "еÑĩ ение", + "ãģĵãģ¨ ãģĮ", + "à¥Ģ ब", + "ุ ล", + "¨ ë¶Ģ", + "ĠاÙĦع رب", + "Ġ ç¾İ", + "Ġç¾ İ", + "ĠاÙĦ ÙħÙĪ", + "ĠاÙĦÙħ ÙĪ", + "Ġ Ø¥ÙĨ", + "ĠØ¥ ÙĨ", + "Ġná sled", + "Ġnás led", + "Ġt omu", + "Ġto mu", + "Ġtom u", + "Î Ħ", + "Ġз ави", + "Ġза ви", + "Ġзав и", + "Ġn hu", + "Ġnh u", + "ĠpÅĻed stav", + "ìłķ ë³´", + "o kol", + "ok ol", + "oko l", + "Ġк ÑĢи", + "a du", + "ad u", + "Ġ каÑĤ", + "Ġк аÑĤ", + "Ġка ÑĤ", + "Ġ ÑįÑĦ", + "ĠÑį ÑĦ", + "в ал", + "ва л", + "m ayı", + "ma yı", + "may ı", + "ĠÑĩаÑģ ÑĤо", + "ĠÑĩаÑģÑĤ о", + "Ġtr anh", + "Ġtra nh", + "Ġtran h", + "ائ ÙĦ", + "ãĤĪãģĨ ãģª", + "Ġp oh", + "Ġpo h", + "ìĥģ ìľĦ", + "Ġs ắc", + "Ùĥ س", + "Ġ мÑĥ", + "Ġм Ñĥ", + ". ::", + ".: :", + "ë Ī", + "» Ċ", + "Ġ ÙĨÚ¯", + "ĠÙĨ Ú¯", + "ÙIJ ÙĨ", + "н иком", + "ни ком", + "ник ом", + "Ñħ а", + "Ġ μοÏħ", + "Ġμ οÏħ", + "Ġμο Ïħ", + "ĠNg uyá»ħn", + "ĠвÑĭ Ñģок", + "ĠвÑĭÑģ ок", + "Ġ ÐŁÐ¾Ð´", + "ĠÐŁ од", + "ĠÐŁÐ¾ д", + "ĠпÑĢи ÑĢод", + "à¥ĭ ध", + "िà¤ķ ल", + "и ÑĢа", + "иÑĢ а", + "ëĭ¤ ê³ł", + "Ġm ajÃŃ", + "Ġma jÃŃ", + "Ġmaj ÃŃ", + "Ġv ùng", + "Ġtarih inde", + "Ġtarihi nde", + "Ġ ваÑĢ", + "Ġв аÑĢ", + "Ġва ÑĢ", + "н иÑĤÑĮ", + "ни ÑĤÑĮ", + "ниÑĤ ÑĮ", + "ει ÏĤ", + "Ġ åĩº", + "Ġåĩ º", + "dy ž", + "ÏĦ Ïİν", + "ÏĦÏİ Î½", + "ä½ĵ èĤ²", + "Ġ à¹Ģว", + "Ġà¹Ģ ว", + "Ġà¹Ģภ§", + "Ġà¤ħ à¤ļ", + "Ġ اÙĨÚ¯ÙĦÛĮسÛĮ", + "ĠاÙĨÚ¯ ÙĦÛĮسÛĮ", + "à¥įय म", + "Ġgel iÅŁ", + "æ¹ ĸ", + "Ġ اک", + "Ġا Ú©", + "Ġп лан", + "Ġпл ан", + "Ġпла н", + "k yt", + "ky t", + "ا بÛĮ", + "اب ÛĮ", + "κ ι", + "Ġc hung", + "Ġch ung", + "Ġchu ng", + "ान à¤ķ", + "s ı", + "Ġt inh", + "Ġti nh", + "Ġtin h", + "ĠÑģÑĤ ол", + "ĠÑģÑĤо л", + "ÑģÑĤ ÑĢÑĥ", + "ÑģÑĤÑĢ Ñĥ", + "Ġли ÑĪе", + "ĠлиÑĪ е", + "Ġви ÑĢоб", + "il miÅŁ", + "ilm iÅŁ", + "Ġ зÑĸ", + "Ġз Ñĸ", + "ç» Ĩ", + "åĢ Ĵ", + "ãĤ· ãĥ£", + "åŃ ©", + "Ġ à¹Ĥรà¸ĩà¹Ģร", + "Ġà¹Ĥ รà¸ĩà¹Ģร", + "Ġà¹Ĥรà¸ĩ à¹Ģร", + "íĻ ľ", + "ĠбÑĥд е", + "ĠбÑĥ де", + "Ġyak laÅŁ", + "èĩª åĪĨ", + "Ġ ÙģÙĪ", + "ĠÙģ ÙĪ", + "С Т", + "Ġso run", + "Ġsor un", + "Ġsoru n", + "à¹Ģ à¸ł", + "à¹Ģภł", + "Ġc ô", + "в иÑĩ", + "ви Ñĩ", + "ëĵ¤ ìĿĺ", + "Ġtr iá»ĩu", + "Ġtri á»ĩu", + "Ġr õ", + "Ġ ãģ«", + "ÄŁ im", + "ÄŁi m", + "iyor uz", + "è ľ", + "à¥įर व", + "Ġس Ù¾", + "Ġ ìĦľìļ¸", + "ĠìĦľ ìļ¸", + "δ ε", + "еÑĢ ÑĪ", + "Ġ أس", + "ĠØ£ س", + "äº ŀ", + "è¯ į", + "п ÑĤом", + "ฤ ษ", + "Ġساز ÙħاÙĨ", + "Ġlu ôn", + "Ùĩ ÙĪر", + "c ü", + "аÑĤ кÑĥ", + "Ġo labilir", + "Ġol abilir", + "Ġolab ilir", + "Ġola bilir", + "Ġ ìĹ°êµ¬", + "ĠìĹ° 구", + "ен ной", + "енно й", + "Ġ æĪij", + "ĠæĪ ij", + "Ġ него", + "Ġн его", + "Ġне го", + "Ġнег о", + "Ġ. **************", + "ิ à¸ĺ", + "Ġ ãĤ·", + "ĠãĤ ·", + "ت Ùģ", + "ÐŁ ÑĢо", + "ÐŁÑĢ о", + "Ġhakk ında", + "Ġhakkı nda", + "Äį nÄĽ", + "ĠM ỹ", + "é ½", + "ĠÏĥ ÏĦον", + "ĠÏĥÏĦο ν", + "Ġ âm", + "Ġâ m", + "§ ظ", + "ĠÅŁ irket", + "æĥħ åĨµ", + "ĠØ¢ÙħÙĪز Ø´", + "λ εÏħ", + "λε Ïħ", + "Ùħ Ùĩ", + "è¦ ı", + "ãģ¨ æĢĿ", + "Ġ ÙĪع", + "ĠÙĪ ع", + "ÏĪ η", + "Ïģ οÏį", + "Ïģο Ïį", + "Ġ ÂłĊ", + "ĠÂł Ċ", + "δ η", + "ÑĪ ов", + "åĪ ¤", + "Ġm ắt", + "æĭ ¿", + "à¸Ļ à¸Ķ", + "éĻ Ħ", + "à¹ī ม", + "ĠÄij ạt", + "Ġg üzel", + "Ġgü zel", + "m Ã¼ÅŁ", + "Ðŀ ÐĴ", + "çĭ ¬", + "리 를", + "Ġп лаÑĤ", + "Ġпл аÑĤ", + "Ġпла ÑĤ", + "Ġngh á»ĭ", + "ĠÑĤак иÑħ", + "ĠÑĤа киÑħ", + "б иÑĢа", + "би ÑĢа", + "Ġн ек", + "Ġне к", + "ÑģÑĮ кÑĸ", + "ÑģÑĮк Ñĸ", + "رÙĬ اض", + "o nu", + "on u", + "à¥ĭ म", + "ĠGi Ỽi", + "ĠGiá» Ľi", + "èŀ į", + "é ²", + "ĠGe nel", + "ĠGen el", + "ĠGene l", + "åĬ ¿", + "Ġ вÑĸ", + "Ġв Ñĸ", + "å§ IJ", + "è© ¦", + "ĠжиÑĤ ÑĤÑı", + "Ġ ìĺ¨", + "Ġìĺ ¨", + "åĩº æĿ¥", + "Ġt á»ij", + "Ġtá» ij", + "Ġl ao", + "Ġla o", + "ί ο", + "ĠÎł α", + "н иÑĤелÑĮ", + "ниÑĤ елÑĮ", + "ниÑĤе лÑĮ", + "éļ İ", + "Ġви кон", + "Ġвик он", + "Ġвико н", + "ĠÙģ عاÙĦ", + "ĠÙģع اÙĦ", + "à¹Ģ ศ", + "à¹Ģภ¨", + "ÏĮ γ", + "ĠоÑĢгани з", + "ĠоÑĢган из", + "Ġ емÑĥ", + "Ġе мÑĥ", + "Ġем Ñĥ", + "Ġ ÙĬع", + "ĠÙĬ ع", + "ĠÙħ ب", + "ाल य", + "ĠÎľ ÏĢ", + "é ¸", + "ù a", + "ê¸ ¸", + "Ġ ÄIJiá»ģu", + "ĠÄIJ iá»ģu", + "ε ίο", + "εί ο", + "äº ī", + "ượ t", + "ÑĢа зÑĥ", + "ÑĢаз Ñĥ", + "ĠоÑĤ ÑĢим", + "ĠоÑĤÑĢи м", + "Ġ طب", + "ĠØ· ب", + "Ġ 以", + "æĸ Ĺ", + "ë° ±", + "à¤ĩ स", + "ë§Į ìĽIJ", + "ãĢģ ãģĿãģ®", + "ĠëķĮ 문", + "ĠØ¢ ÛĮ", + "С Ðł", + "ض ÙĦ", + "æ ĵį", + "æĵ į", + "k azy", + "ka zy", + "kaz y", + "ส ว", + "â ng", + "ân g", + "à¤Ĥ à¤Ń", + "н ÑĸÑĩ", + "нÑĸ Ñĩ", + "ั à¸ĩà¸ģ", + "ัà¸ĩ à¸ģ", + "Ġبر رسÛĮ", + "ر دÙĩ", + "رد Ùĩ", + "Ġm ẫu", + "à¹Ī วà¸ĩ", + "à¹Īว à¸ĩ", + "ĠداÙĨØ´ گاÙĩ", + "d ıģ", + "dı ÄŁ", + "ĠT á»ķng", + "ĠTá»ķ ng", + "第 äºĮ", + "c ÃŃm", + "cÃŃ m", + "Ġb öyle", + "Ġbö yle", + "ë ¶Ī", + "ë¶ Ī", + "ĠÙħÙĨ ابع", + "à¥ĥ ष", + "е ÑĤÑĭ", + "еÑĤ Ñĭ", + "åĨ ·", + "åĽ Ń", + "Ġت ÙĪجÙĩ", + "ĠتÙĪ جÙĩ", + "åĪ »", + "æŀ ģ", + "à¤Ł न", + "л ан", + "ла н", + "Ġ íĥĢ", + "Ġíĥ Ģ", + "ä½ IJ", + "Ġ обÑĭ", + "Ġо бÑĭ", + "Ġоб Ñĭ", + "å¸ Ŀ", + "ì» ¤", + "å® Ī", + "èµ· æĿ¥", + "Ġ ãĥ¬", + "Ġãĥ ¬", + "çİ ī", + "à¹Ģ หล", + "à¹Ģห ล", + "и не", + "ин е", + "ห าร", + "หา ร", + "éļ ı", + "Ġг аз", + "ĠاÙĦ عÙħÙĦ", + "ĠاÙĦع ÙħÙĦ", + "ĠاÙĦعÙħ ÙĦ", + "à¥ģ à¤Ŀ", + "à¥ģठĿ", + "Ïģ ιο", + "Ïģι ο", + "Ġv ám", + "Ġvá m", + "Ġع ÙĨد", + "ĠعÙĨ د", + "ÙĨد گاÙĨ", + "ï¼Į éĤ£", + "Ġна Ñħод", + "á no", + "án o", + "ÛĮ اÙĨ", + "ÛĮا ÙĨ", + "ĠØ£ ع", + "Ġ ÑĢади", + "ĠÑĢ ади", + "ĠÑĢа ди", + "ĠÑĢад и", + "Ġм ене", + "Ġмен е", + "Ġú da", + "Ïĩ ν", + "ÑĥлÑı ÑĢ", + "à¥Ģ प", + "Ġpou žÃŃ", + "Ġ ä¸", + "ĠÙĤ اÙĨÙĪÙĨ", + "ι κοÏį", + "ικ οÏį", + "ικο Ïį", + "á y", + "Ġç öz", + "ÏĦ Ïģ", + "ÙĨ اÙħ", + "ÙĨا Ùħ", + "ุ à¸ķ", + "åĵ ª", + "ÙĬ ب", + "ä¹ °", + "ÐĶ лÑı", + "Ġ ëłĪ벨", + "ĠëłĪ 벨", + "ุ à¸ļ", + "н ÑĥÑĤи", + "нÑĥ ÑĤи", + "нÑĥÑĤ и", + "è½ »", + "ĠÎľ α", + "Ġ è¦", + "Ġè ¦", + "аÑĤ ков", + "Ġ ëĪĦ", + "ĠëĪ Ħ", + "Ġt uyá»ĥn", + "Ġtuy á»ĥn", + "Ùİ Ùħ", + "ĠвÑĭ пол", + "ĠвÑĭп ол", + "Ġst udi", + "Ġstud i", + "Ġstu di", + "ĠpÅĻ ek", + "ĠpÅĻe k", + "Ġз ам", + "Ġза м", + "Ġmat eri", + "Ġma teri", + "Ġmate ri", + "Ġmater i", + "åİ ĭ", + "Ġ ал", + "Ġа л", + "Ġ à¸ļร", + "Ġà¸ļ ร", + "Ø· ØŃ", + "ĠÙħر Ú©", + "Ġ ìĭ¬", + "Ġìĭ ¬", + "ĠÙĤ ابÙĦ", + "ĠÙĤاب ÙĦ", + "ĠÐIJ ле", + "ĠÐIJл е", + "ın tı", + "Ġ å»", + "Ġå »", + "Ä° K", + "ëħĦ ëıĦ", + "Ñĭ ваÑĤÑĮ", + "Ñĭв аÑĤÑĮ", + "Ñĭва ÑĤÑĮ", + "Ġdev let", + "社 ä¼ļ", + "ëĤ ł", + "Ġko lay", + "Ġkol ay", + "Ġkola y", + "ĠÑĢазв иÑĤи", + "ĠÑĢазви ÑĤи", + "а ди", + "ад и", + "ئ ÙĬس", + "a dıģı", + "ad ıģı", + "adı ģı", + "adıģ ı", + "Îij ÎĽ", + "Ġ hoa", + "Ġh oa", + "Ġho a", + "Ġ ศ", + "Ġภ¨", + "ı ÅŁtır", + "Ä±ÅŁ tır", + "ÑĢ Ñİ", + "Ġк аÑĩе", + "Ġка Ñĩе", + "¼ åIJĪ", + "åħ ´", + "Ġ ê·¸ëŁ¬", + "Ġê·¸ 룬", + "Ġм ÑĸÑģÑĤ", + "ĠмÑĸ ÑģÑĤ", + "ĠмÑĸÑģ ÑĤ", + "Ġм не", + "Ġмн е", + "ãĥ¼ ãĤº", + "ãĥ¼ãĤ º", + "ç§ Ģ", + "Ġع ÙĦÙĬÙĩ", + "ĠعÙĦ ÙĬÙĩ", + "ĠعÙĦÙĬ Ùĩ", + "Ġ ìĭľê°Ħ", + "Ġìĭľ ê°Ħ", + "Ġà¤ĺ र", + "Ġ Ñĥг", + "ĠÑĥ г", + "åıij å±ķ", + "ı ÅŁÄ±", + "Ä±ÅŁ ı", + "Ġ ìĪľ", + "ĠìĪ ľ", + "Ġ íĻľ", + "ĠíĻ ľ", + "æ¡ £", + "Ġn okt", + "Ġno kt", + "Ġnok t", + "l ém", + "lé m", + "ен нÑĭй", + "Ġب Ùħ", + "à¥ĩ य", + "à¥ĩठ¯", + "о дав", + "од ав", + "ода в", + "à¹Ĥ ร", + "ï¼Į æľī", + "ا ÙĬات", + "اÙĬ ات", + "اÙĬا ت", + "ا ÛĮÙĩ", + "اÛĮ Ùĩ", + "Ġà¤īप य", + "Ġs mÄĽ", + "Ġsm ÄĽ", + "Ø´ د", + "Ш ÐIJ", + "Ġا ÙħاÙħ", + "ĠاÙħ اÙħ", + "ĠاÙħا Ùħ", + "æ¿ Ģ", + "Ġho ạch", + "об ÑĢаз", + "обÑĢаР·", + "à¥ĭ ह", + "ĠÑĢеб ен", + "иÑĤ елÑı", + "иÑĤе лÑı", + "ãģªãģĮ ãĤī", + "س اÙĦ", + "Ġ à¸Īำ", + "Ġà¸Ī ำ", + "Ġ خاص", + "ĠØ® اص", + "Ġg eri", + "Ġge ri", + "Ġger i", + "ठĺ", + "Ġ ìº", + "Ġì º", + "à¹ģ à¸Ĺ", + "âĢĮ ÛĮ", + "Ú¯ رÛĮ", + "گر ÛĮ", + "ا Ùħبر", + "اÙħ بر", + "ÑĪ Ñĥ", + "Ġp hong", + "Ġph ong", + "Ġphon g", + "и мо", + "им о", + "п а", + "Ġ ìµľê³ł", + "Ġìµľ ê³ł", + "Ġ нам", + "Ġн ам", + "Ġна м", + "o stÃŃ", + "os tÃŃ", + "ost ÃŃ", + "is ini", + "isi ni", + "isin i", + "Ġд Ñĥже", + "ĠдÑĥ же", + "Ñģ ком", + "Ñģк ом", + "Ñģко м", + "ĠпÑĢод Ñĥк", + "ÏĮ ÏĦηÏĦα", + "ÏĮÏĦη ÏĦα", + "a ln", + "al n", + "is ine", + "isi ne", + "isin e", + "è¿ ľ", + "алÑĮ ной", + "алÑĮно й", + "त र", + "t ıģ", + "tı ÄŁ", + "Ġë Ĵ", + "è¿ĺ æĺ¯", + "ĠÙħ Ø«ÙĦ", + "ĠÙħØ« ÙĦ", + "ìľ ¨", + "ï¾ ĺ", + "åĪ ¸", + "ç ¶ļ", + "ç¶ ļ", + "ج اد", + "جا د", + "Ġ кÑĥ", + "Ġк Ñĥ", + "åĢ ij", + "o vu", + "ov u", + "Ġs Ä©", + "Ġ ìłIJ", + "Ġìł IJ", + "ĠÑĥ ÑĢов", + "ि à¤ļ", + "िठļ", + "ov ali", + "ova li", + "oval i", + "Ġ ÙĪÙĨ", + "ĠÙĪ ÙĨ", + "Ġ ìĿĮ", + "ĠìĿ Į", + "Ġк г", + "า à¸ĺ", + "าภĺ", + "ÏĦ Ïģα", + "ÏĦÏģ α", + "ž dy", + "à¹Į à¸ķ", + "Ġ nÄĽm", + "ĠnÄĽ m", + "Ġ Це", + "ĠЦ е", + "n oho", + "no ho", + "Ġëĭ¤ ìĭľ", + "Ġté to", + "Ġb iá»ĥu", + "ĠY ön", + "Ġpr áce", + "Ġprá ce", + "à¥ī र", + "Ġch ÃŃ", + "ов ой", + "ово й", + "Ġm ợ", + "Ġmá» Ł", + "èª ª", + "Ïİ ÏĤ", + "в олÑı", + "во лÑı", + "вол Ñı", + "ãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "å¯ ¦", + "é» ŀ", + "Ġà¤ı व", + "Ïħ να", + "Ïħν α", + "å² ¡", + "kh ông", + "ĠpÅĻÃŃpad ÄĽ", + "å Ĺ", + "Ġبد ÙĪÙĨ", + "Ïĥ κε", + "Ïĥκ ε", + "Ġdik kat", + "ĠAn cak", + "ĠAnc ak", + "Ġt iá»ĩn", + "Ġti á»ĩn", + "éĿ Ļ", + "Ġ ìĿ¼ë°ĺ", + "ĠìĿ¼ ë°ĺ", + "ĠÄį len", + "ìķ ħ", + "ा à¤ĩन", + "ाà¤ĩ न", + "ãģ£ ãģ¦ãģĦãģŁ", + "ãģ£ãģ¦ ãģĦãģŁ", + "ãģ£ãģ¦ãģĦ ãģŁ", + "ĠìĿ´ ìļ©", + "ÙĪ ÙħÛĮ", + "ÙĪÙħ ÛĮ", + "i ná", + "in á", + "ặ ng", + "ặn g", + "Ïİ Ïģα", + "ÙĨ ÙĬØ©", + "ÙĨÙĬ Ø©", + "в аж", + "ва ж", + "è İ·", + "èİ ·", + "å© ļ", + "ĠÅŁ u", + "Ġ ãģĬ", + "Ġد رب", + "Ġدر ب", + "Ġd iá»ħn", + "ÅĻ eba", + "ÅĻe ba", + "ÅĻeb a", + "as ının", + "asını n", + "ç½ij ç«Ļ", + "н ÑĮого", + "нÑĮ ого", + "нÑĮо го", + "ĠاÙĦØ£ ÙĪÙĦ", + "ικ ÎŃÏĤ", + "Ġz ÃŃsk", + "о ло", + "ол о", + "ĠÑį ÑĤоÑĤ", + "ĠÑįÑĤ оÑĤ", + "ĠÑįÑĤо ÑĤ", + "Ġp okud", + "Ġpo kud", + "Ġpok ud", + "è² »", + "е ÑĢÑĸв", + "еÑĢ Ñĸв", + "еÑĢÑĸ в", + "ãĥķ ãĤ£", + "ãĥķãĤ £", + "иÑĤÑĥ а", + "Ġv yd", + "Ġvy d", + "о лож", + "ол ож", + "оло ж", + "л ÑıÑĤÑĮ", + "лÑı ÑĤÑĮ", + "ÙĤ Ùħ", + "æ´ ĭ", + "æ§ ĭ", + "Ġغ ÛĮر", + "Ġ stÅĻed", + "Ġst ÅĻed", + "ĠstÅĻ ed", + "ظ ر", + "Ġhiç bir", + "θ εί", + "θε ί", + "z nik", + "zn ik", + "д Ñĭ", + "l uv", + "lu v", + "ĠÙħ ؤ", + "ĠÚ¯ رÙĪÙĩ", + "Ġگر ÙĪÙĩ", + "Ġ ï¼īĊ", + "Ġï¼ī Ċ", + "t eri", + "ter i", + "te ri", + "ĠÏħ ÏĢο", + "ĠÏħÏĢ ο", + "v oj", + "vo j", + "Ġبع ض", + "Ġb ilin", + "Ġbi lin", + "Ġbil in", + "Ġ رÙĪØ´", + "Ġر ÙĪØ´", + "ĠرÙĪ Ø´", + "Ġоб Ñıз", + "Ġ ï»", + "Ġï »", + "س ÙĨ", + "Ġ ÏĢα", + "ĠÏĢ α", + "í į¼", + "Ġt ÃŃn", + "ĠtÃŃ n", + "Ġ ´", + "Ġ ´", + "ìĤ¬ ìĿ´íĬ¸", + "ìĤ¬ìĿ´ íĬ¸", + "Ġ podob", + "Ġpo dob", + "Ġpod ob", + "Ñī ее", + "Ñīе е", + "Ġ åįĹ", + "Ġåį Ĺ", + "Ġb ych", + "Ġby ch", + "о зи", + "оз и", + "ĠV Äĥn", + "ØŃ Ùĩ", + "åѦ éĻ¢", + "ĠÅĻ ekl", + "ĠÅĻe kl", + "ĠÅĻek l", + "립 ëĭĪëĭ¤", + "Ġп ÑĢоÑģ", + "ĠпÑĢ оÑģ", + "ĠпÑĢо Ñģ", + "κ ά", + "ĠbaÅŁ ladı", + "ủ y", + "Ñİ Ð´Ð¶", + "ाà¤ı à¤Ĺ", + "à¤Ĥ à¤ļ", + "Ġ ê´Ģ볨", + "Ġê´Ģ 볨", + "Ġв опÑĢоÑģ", + "ĠÑģÑĤ аÑĤÑĮ", + "ĠÑģÑĤаÑĤ ÑĮ", + "ĠÑģÑĤа ÑĤÑĮ", + "Ġy atırım", + "Ġyatır ım", + "н Ñĥла", + "нÑĥ ла", + "нÑĥл а", + "ر اÙģ", + "را Ùģ", + "Ġç eÅŁit", + "Ġà¤ī द", + "å¤ ®", + "Ġпо Ñıв", + "åĽ½ 家", + "ĠÑģооÑĤвеÑĤ ÑģÑĤв", + "ìķ ¡", + "ĠØ® ÙĪاÙĩد", + "ĠØ®ÙĪاÙĩ د", + "ĠØ®ÙĪ اÙĩد", + "Å¡ Å¡ÃŃ", + "Âł п", + "ĠNh Ãł", + "' '''", + "'' ''", + "''' '", + "ï½ ¨", + "à ħ", + "Ġ ïº", + "Ġï º", + "ĠØ¢Ùħ رÛĮÚ©", + "lar ımız", + "larım ız", + "ج ا", + "Ùģ ÙĤ", + "Ġ á»", + "Ġá »", + "Ġ ìķł", + "Ġìķ ł", + "Ġز باÙĨ", + "ĠÑĤ воÑĢ", + "ĠÑĤв оÑĢ", + "н иÑĩеÑģ", + "ни ÑĩеÑģ", + "ниÑĩ еÑģ", + "Ġк ни", + "Ø® داÙħ", + "à¸Ł ร", + "Ġ ì¹ĺ", + "Ġì¹ ĺ", + "ว าม", + "ĠÙħ ÙĩÙħ", + "ĠÙħÙĩ Ùħ", + "Ġs tol", + "Ġst ol", + "Ġsto l", + "Ġed ilen", + "Ġedi len", + "Ġedil en", + "Ġ pek", + "Ġp ek", + "Ġpe k", + "اÙĨ ات", + "اÙĨا ت", + "алÑĮ нÑĸ", + "Ġнеоб ÑħÑĸд", + "à¹Ħ ว", + "Ġश र", + "Ġ íĮIJ", + "ĠíĮ IJ", + "Ò ij", + "Ġ ним", + "Ġн им", + "Ġни м", + "Ġ à¸ĺ", + "Ġภĺ", + "æĺ ł", + "äº Ĵ", + "ĠbaÅŁ ar", + "ž i", + "Ġм ног", + "Ġмн ог", + "l endi", + "len di", + "á vajÃŃ", + "áv ajÃŃ", + "n ict", + "ni ct", + "nic t", + "Ġд Ñĥм", + "ĠдÑĥ м", + "éĻ ©", + "Ïĥ Ïĥ", + "i ky", + "ik y", + "алÑĮ нÑĭй", + "Ġ ÙħÙĨت", + "ĠÙħ ÙĨت", + "ĠÙħÙĨ ت", + "å® ®", + "- за", + "-з а", + "еÑĢ к", + "å¡ Ķ", + "Ġμε ÏĦα", + "oÄŁ un", + "oÄŁu n", + "ÎĹ Îľ", + "à¥Īà¤Ĥ ।Ċ", + "à¥Īà¤Ĥ। Ċ", + "Äį ky", + "å¹³ åı°", + "à¥ĭ श", + "Ġ ona", + "Ġo na", + "Ġon a", + "Ġ bec", + "Ġb ec", + "Ġbe c", + "ì ¢", + "Ġc ây", + "Ġcâ y", + "k ün", + "kü n", + "Ġ à¤Ī", + "ĠठĪ", + "Ġr á»Ļng", + "еÑĢ б", + "å¹ ¸", + "ï¾ IJ", + "ĠпÑĸд пÑĢиÑĶм", + "çĶ £", + "Ġ ÏĦε", + "ĠÏĦ ε", + "ĠÙĨÙĤ Ø´", + "о виÑħ", + "ов иÑħ", + "ови Ñħ", + "ĠÙģ Ùī", + "Ðļ ак", + "Ùİ Ø±", + "Ġ Щ", + "ĠÐ ©", + "алÑĮ нÑĭÑħ", + "Ġk üçük", + "èŃ ·", + "æĭ ħ", + "i caret", + "ic aret", + "ica ret", + "icare t", + "Ġ رÙģت", + "Ġر Ùģت", + "ĠرÙģ ت", + "Ġод ного", + "Ġодно го", + "ÑĪ им", + "ÑĪи м", + "Ġ бÑĸ", + "Ġб Ñĸ", + "Ġuygu lam", + "Ġ æĭ", + "Ġæ ĭ", + "ä½ Ľ", + "u cu", + "uc u", + "d ÃŃ", + "Å ĺ", + "ئ Ø©", + "ê± ¸", + "Ù Į", + "Ġ ÎłÏģο", + "ĠÎł Ïģο", + "Ġye rine", + "Ġyer ine", + "Ġyeri ne", + "ĠÑĸн ÑĦоÑĢма", + "Ġ å¤ĸ", + "Ġå¤ ĸ", + "ä» ķ", + "н ав", + "на в", + "a rası", + "ar ası", + "ara sı", + "aras ı", + "à¸Ńà¸Ļ à¹Ħลà¸Ļ", + "ا شت", + "اش ت", + "ز ÙĬ", + "æ© ĭ", + "Ġ ãĤ«", + "ĠãĤ «", + "èĥ½ åĬĽ", + "å¥ Ĺ", + "Ġpro h", + "Ġpr oh", + "Ġп ÑĢава", + "ĠпÑĢ ава", + "ĠпÑĢав а", + "ĠпÑĢа ва", + "Ỽ p", + "Ġ à¸Ĥà¸Ńà¸ĩ", + "Ġà¸Ĥ à¸Ńà¸ĩ", + "Ġ ë´", + "Ġë ´", + "Ġl úc", + "Ġ éķ", + "Ġé ķ", + "ب ÙĪد", + "بÙĪ د", + "r upa", + "ru pa", + "rup a", + "ا زÙħ", + "از Ùħ", + "Ġ кан", + "Ġк ан", + "Ġка н", + "ılı m", + "ıl ım", + "Ġ Ùĩد", + "ĠÙĩ د", + "ãĢĢ ĠãĢĢĠãĢĢ", + "ãĢĢĠãĢĢ ĠãĢĢ", + "ãĢĢĠ ãĢĢĠãĢĢ", + "Ñĭ ваеÑĤ", + "Ñĭв аеÑĤ", + "Ñĭва еÑĤ", + "Ø® اÙĨÙĩ", + "خاÙĨ Ùĩ", + "Ñĥ кÑĤ", + "Ñĥк ÑĤ", + "ĠçĻ¾ 度", + "ĠnÄĽ co", + "е мон", + "ем он", + "емо н", + "Ġà¤ħ प", + "Ġ ÎĮ", + "ĠÎ Į", + "ün ün", + "ünü n", + "æĸĩ åĮĸ", + "ä¹ İ", + "ä¸Ĭ çļĦ", + "ÙĦ ÙĬÙħ", + "ÙĦÙĬ Ùħ", + "ĠtÄĽ ch", + "ا سب", + "اس ب", + "âĢĻ ÑĶ", + "Ġ Ú¯ÛĮ", + "ĠÚ¯ ÛĮ", + "Ġ ê·¼", + "Ġê· ¼", + "Ġtr ẻ", + "μÎŃ Î½Î¿", + "μÎŃν ο", + "ãģĵãģ¨ ãĤĴ", + "ìĿ´ ëĤĺ", + "åĸ Ħ", + "Ġtr ả", + "åĪĨ æŀIJ", + "Ġ dÄĽl", + "Ġd ÄĽl", + "ĠdÄĽ l", + "Ñĥ Ñģка", + "ÑĥÑģ ка", + "ÑĥÑģк а", + "Ġм ного", + "Ġмн ого", + "Ġмног о", + "à¥Ī र", + "μα ÏĦοÏĤ", + "μαÏĦο ÏĤ", + "Ġm ÃŃsto", + "ĠmÃŃ sto", + "ĠmÃŃst o", + "Ġ ê°ģ", + "Ġê° ģ", + "Ġп ÑĢог", + "ĠпÑĢ ог", + "ĠпÑĢо г", + "b aÅŁ", + "ba ÅŁ", + "а йÑĤе", + "ай ÑĤе", + "айÑĤ е", + "Ġc á»ķ", + "å¿ ľ", + "ï¼ģ Ċ", + "ç ı", + "Ġbir çok", + "Ġ íĺķ", + "Ġíĺ ķ", + "çµ Į", + "ĠEv rop", + "ĠÑģ оÑĨÑĸ", + "ĠÑģо ÑĨÑĸ", + "ä»ĸ çļĦ", + "Ġ μÏĢο", + "Ġμ ÏĢο", + "ĠμÏĢ ο", + "å¥ Ī", + "Ġ Ú¯ÙĦ", + "ĠÚ¯ ÙĦ", + "ÙĪ ÙĦØ©", + "ÙĪÙĦ Ø©", + "æµ İ", + "Ġ Ú©ÙĪ", + "ĠÚ© ÙĪ", + "± ä¹IJ", + "ãģĹ ãģı", + "ãģĹãģ ı", + "çº ³", + "ÑģÑĤв енно", + "ÑģÑĤвен но", + "éĽ ¢", + "ा .", + "Ġgerçek leÅŁtir", + "ĠgerçekleÅŁ tir", + "Ġ kır", + "Ġk ır", + "Ġkı r", + "ì ³", + "Ġг оÑģп", + "å¹ ķ", + "ìĦ ¼", + "» .Ċ", + "». Ċ", + "к ÑĥÑĢ", + "кÑĥ ÑĢ", + "Ġ رÛĮ", + "Ġر ÛĮ", + "æĽ ¾", + "ÙĪ رÙĬ", + "ÙĪر ÙĬ", + "лекÑģ анд", + "ص Ùģ", + "Ġc ảnh", + "Ġcả nh", + "å± Ĥ", + "ãĤ Ĩ", + "Ġ تس", + "Ġت س", + "ì° ½", + "기 를", + "Ġ à¹Ģà¸Ħ", + "Ġà¹Ģ à¸Ħ", + "Ġà¹ĢภĦ", + "çŁ Ń", + "Ġ ÑģÑĤÑĢо", + "ĠÑģ ÑĤÑĢо", + "ĠÑģÑĤ ÑĢо", + "ĠÑģÑĤÑĢ о", + "ĠÏĥ ÏĦιÏĤ", + "ĠÏĥÏĦι ÏĤ", + "à¥įय व", + "Ġع ÙĦÙħ", + "ĠعÙĦ Ùħ", + "ĠÑģ иÑĤÑĥа", + "ĠÑī одо", + "ĠÑīо до", + "åIJ Ľ", + "Ùħ س", + "ĠоÑĤ кÑĢÑĭ", + "ĠоÑĤк ÑĢÑĭ", + "Ġsp oj", + "Ġspo j", + "ĠÄij Äĥng", + "Ġs avaÅŁ", + "Ġsav aÅŁ", + "ี ร", + "sk ém", + "ské m", + "Ġ è¡Į", + "Ġè¡ Į", + "é ¹", + "Ġ ÙĬÙħÙĥÙĨ", + "ĠÙĬÙħ ÙĥÙĨ", + "о вано", + "ов ано", + "ова но", + "ован о", + "Ġп ÑĢавилÑĮ", + "ĠпÑĢав илÑĮ", + "ĠпÑĢави лÑĮ", + "ĠпÑĢавил ÑĮ", + "Ġchiế c", + "èĪ ¹", + "éĵ ¶", + "ĠоÑĤ д", + "Ġ ìĿĢ", + "ĠìĿ Ģ", + "íħ Ķ", + "Ġ Nej", + "ĠN ej", + "ĠNe j", + "о не", + "он е", + "Ġk ız", + "Ġkı z", + "олог иÑĩеÑģ", + "Ġ кÑĢаÑĹ", + "ĠкÑĢа ÑĹ", + "à¸ļ à¸Ńล", + "æ¥ ¼", + "Ġت ÙħاÙħ", + "ĠتÙħ اÙħ", + "Ġب ÛĮÙħ", + "ĠبÛĮ Ùħ", + "ĠÑģ Ñĥб", + "ĠÑģÑĥ б", + "v ý", + "Ñģ кие", + "Ñģк ие", + "Ñģки е", + "ëĮĢ ë¡ľ", + "ëĮ Ģë¡ľ", + "???? ????", + "abilir siniz", + "ан Ñģов", + "анÑģ ов", + "代 表", + "Ġ매 매", + "олог ÑĸÑĩ", + "μ αν", + "μα ν", + "ак Ñģим", + "акÑģ им", + "ãĤ¤ ãĥ«", + "Ġt ải", + "Ġtả i", + "Ùħ ÙĪ", + "å® Ĺ", + "n em", + "ne m", + "Ġkho ản", + "Ġ паÑĤ", + "Ġп аÑĤ", + "Ġпа ÑĤ", + "ан ÑĤа", + "анÑĤ а", + "Ġпом оÑī", + "Ġ vod", + "Ġv od", + "Ġvo d", + "Ġkay nak", + "Ġkayn ak", + "Ïĥ ÏĨ", + "à¥Ĥ त", + "du ÄŁ", + "а ÑĤиÑģÑı", + "аÑĤи ÑģÑı", + "Ġ ç¥ŀ", + "Ġç¥ ŀ", + "ĠÑģ лова", + "ĠÑģл ова", + "ĠÑģлов а", + "ĠÑģло ва", + "ÑĢÑĥ кÑĤÑĥ", + "ÑĢÑĥк ÑĤÑĥ", + "ÑĢÑĥкÑĤ Ñĥ", + "ĠmÄĽ sÃŃ", + "Ùı Ùħ", + "зна Ñĩа", + "знаÑĩ а", + "Ġ èī", + "Ġè ī", + "åѦ çĶŁ", + "æ´ ¥", + "Ùİ ÙĬ", + "è§ Ī", + "Ġ å®ī", + "Ġå® ī", + "Ġgör Ã¼ÅŁ", + "ál nÄĽ", + "áln ÄĽ", + "ĠëĶ° ëĿ¼", + "ĠÙħ ÙĪجÙĪد", + "ĠÙħÙĪج ÙĪد", + "ĠÄij ứ", + "ĠÄijá» ©", + "ĠçalÄ±ÅŁ malar", + "ĠçalÄ±ÅŁma lar", + "ĠÑı киÑħ", + "ĠÑıк иÑħ", + "Ġاج تÙħاع", + "μ εν", + "με ν", + "èİ ī", + "ç§ ¯", + "ì¶ ķ", + "à¥į शन", + "à¥įश न", + "Ġx ét", + "Ġв ÑĤоÑĢ", + "ĠвÑĤ оÑĢ", + "çİ ©", + "Âł ÐĿ", + "ÑĪ ие", + "ÑĪи е", + "о ÑĢи", + "оÑĢ и", + "Ø£ س", + "Ġthu á»ijc", + "ëĭĪ ê¹Į", + "ë ķĮ", + "ÑĢ Ñĥп", + "ÑĢÑĥ п", + "Ñģ ÑıÑĤ", + "ÑģÑı ÑĤ", + "з Ñĭ", + "ĠÑģ меÑĢ", + "ĠÑģм еÑĢ", + "Ġv yb", + "Ġvy b", + "ĠìĿ´ ìĥģ", + "à¤ļ न", + "Ġgel di", + "Ġgeld i", + "Û± Û°", + "Û±Û °", + "ικ Ïİν", + "ĠÄIJ ức", + "Ġд оÑģÑĤаÑĤ", + "ĠдоÑģÑĤ аÑĤ", + "Ġö nc", + "Ġön c", + "è¦ ª", + "Ġ adı", + "Ġa dı", + "Ġad ı", + "un ca", + "unc a", + "ĠاÙĦ تر", + "ĠاÙĦت ر", + "çķ ¶", + "ĠФ едеÑĢа", + "ĠФед еÑĢа", + "лÑı ÑİÑĤÑģÑı", + "лÑıÑİÑĤ ÑģÑı", + "ĠÙĥ اÙĨت", + "ĠÙĥاÙĨ ت", + "æİ ¢", + "Ġ Ñĥб", + "ĠÑĥ б", + "Ġ κο", + "Ġκ ο", + "ाà¤ĩ à¤Ł", + "з н", + "Ġm ôi", + "Ġmô i", + "Ġ ãĤµ", + "ĠãĤ µ", + "Ġна вÑĸ", + "Ġнав Ñĸ", + "ç» ¼åIJĪ", + "Ġмин ÑĥÑĤ", + "Ġми нÑĥÑĤ", + "ĠминÑĥ ÑĤ", + "d ık", + "dı k", + "ÑĢ Ñĥд", + "ÑĢÑĥ д", + "åľ ĸ", + "ê° ¤", + "ĠÄijo Ãłn", + "è ¤", + "à¥į वर", + "à¥įव र", + "ĠÃľn iversit", + "а но", + "ан о", + "éĽ ¨", + "ĠvÅ¡ech ny", + "Ġëĭ¤ ìĿĮ", + "ĠC umhur", + "ĠCum hur", + "Ġм Ñĥз", + "ĠмÑĥ з", + "a ÅŁtır", + "aÅŁ tır", + "Ġ ê±°ëŀĺ", + "Ġê±° ëŀĺ", + "Ġ é¡", + "Ġé ¡", + "žit ÃŃ", + "ži tÃŃ", + "Ġ à¸Ł", + "ĠภŁ", + "Ġthu ế", + "Ġм Ñĥж", + "ĠмÑĥ ж", + "ĠÎij ν", + "Ġد ÙĪÙħ", + "ĠدÙĪ Ùħ", + "ĠÑģ ин", + "ĠÑģи н", + "Ġ ÏīÏĤ", + "ĠÏī ÏĤ", + "m eler", + "me ler", + "mel er", + "Ġ poÄį", + "Ġp oÄį", + "Ġpo Äį", + "Ġколи Ñĩе", + "ĠколиÑĩ е", + "ĠK Äį", + "è³ ½", + "ĠоÑģ Ñĸб", + "åı ¥", + "ĠB öl", + "à¸ĺ รรม", + "Ġc ạnh", + "å° ĩ", + "Ġ ноÑģ", + "Ġн оÑģ", + "Ġно Ñģ", + "èĦ ¸", + "Ġgel ir", + "о ÑĢон", + "оÑĢ он", + "оÑĢо н", + "à¥įर à¤Ń", + "ç» ĩ", + "ุ à¹ī", + "ाम ल", + "Ġc âu", + "Ġcâ u", + "Ñij ÑĤ", + "Ġ :|", + "Ġ: |", + "ãĤĮ ãģ¦", + "Ġpos led", + "Ġpo sled", + "ãĤ¹ ãĥĨ", + "ÑĸлÑĮ ÑĪ", + "ен ÑĤÑĭ", + "енÑĤ Ñĭ", + "Ø® دÙħ", + "Ġباش گاÙĩ", + "Ġth Æ°", + "á vánÃŃ", + "áv ánÃŃ", + "ává nÃŃ", + "ëĬ IJ", + "ĠØ£ ØŃ", + "ر اد", + "را د", + "ĠبسÛĮ ار", + "åĪ° äºĨ", + "\" ;\"", + "\"; \"", + "å° İ", + "Ġ ör", + "Ġö r", + "à¸Ĭ าà¸ķ", + "g enus", + "gen us", + "Ġya kın", + "Ġyak ın", + "Ġ ÃŃt", + "ĠÃŃ t", + "reg num", + "regn um", + "Ġf iyat", + "Ġfi yat", + "н ÑĸÑħ", + "нÑĸ Ñħ", + "åľ° æĸ¹", + "Ġbil gi", + "Ġbilg i", + "к ам", + "ка м", + "Ġs pol", + "Ġsp ol", + "Ġspo l", + "ائ ÙĬ", + "Ġ ÙĬÙĨ", + "ĠÙĬ ÙĨ", + "า หาร", + "าห าร", + "Ġب Ú¯", + "é ĺħ", + "éĺ ħ", + "ĠاÙĦ شر", + "ĠاÙĦØ´ ر", + " ģ", + "ĠÑĸн ÑĪиÑħ", + "ĠÑĸнÑĪ иÑħ", + "Ġtr ạng", + "çģ £", + "Ġc á»±c", + "к ан", + "ка н", + "èĭ ı", + "à Ķ", + "Ġl á»Ŀi", + "Ġlá» Ŀi", + "Ñı Ñĩ", + "Ġ ÙĪØŃ", + "ĠÙĪ ØŃ", + "ìĪ ľ", + "Å ¸", + "Ġв оÑģп", + "Ġво Ñģп", + "ĠвоÑģ п", + "ì¡ Į", + "Äį nÃŃch", + "ÄįnÃŃ ch", + "Ø® رÙī", + "خر Ùī", + "ائ ÙĬØ©", + "ائÙĬ Ø©", + "Ġsu ất", + "æĩ ī", + "ا ØŃÛĮ", + "اØŃ ÛĮ", + "Ġn áz", + "Ġná z", + "è¿Ļ ç§į", + "Ġзаб езпеÑĩ", + "Ġ ЧеÑĢ", + "ĠЧ еÑĢ", + "Ġзд ÑĸйÑģ", + "åı ¦", + "æĭ ¬", + "à¥ģ ष", + "à¥ģठ·", + "μ ÏĨ", + "ëĥ IJ", + "Ðķ Ñģли", + "é ¬", + "Ġ íĥľ", + "Ġíĥ ľ", + "Ġ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "Ġм л", + "å´ İ", + "Ùģ ع", + "Ġ ÙĤدر", + "ĠÙĤ در", + "ĠÙĤد ر", + "Ġv á»ijn", + "å¦ ¹", + "Ġ ÐĿаÑģ", + "ĠÐĿ аÑģ", + "ĠÐĿа Ñģ", + "à¥į फ", + "à¥įठ«", + "ãĤ¸ ãĥ£", + "Ġm ı", + "ен Ñģ", + "б Ñĥд", + "бÑĥ д", + "ĠØŃ ØªÙī", + "Ġ ì²´", + "Ġì² ´", + "ĠÑĸ ÑģÑĤоÑĢ", + "ĠÑĸÑģ ÑĤоÑĢ", + "Ġgi ấy", + "γ οÏģ", + "γο Ïģ", + "ëIJĺ ìĸ´", + "Ġ íĤ", + "Ġí Ĥ", + "ĠÐŀд на", + "ĠÙĨ ÙħÙĪد", + "ĠÙĨÙħ ÙĪد", + "Ġвип ад", + "ĠìŀIJ ìĭł", + "Ġj ste", + "Ġjs te", + "Ġ ëĵ±ë¡Ŀ", + "Ġëĵ± ë¡Ŀ", + "ek ten", + "ekt en", + "ekte n", + "ĠÑĢ еÑĩ", + "ĠÑĢе Ñĩ", + "r odnÃŃ", + "rod nÃŃ", + "س تر", + "ست ر", + "ı t", + "ä¹ħ ä¹ħ", + "ĠØ® ÙĦاÙĦ", + "ĠØ®ÙĦ اÙĦ", + "Ġ ç¦", + "Ġç ¦", + "u luk", + "ul uk", + "ulu k", + "l enen", + "le nen", + "len en", + "lene n", + "i lip", + "il ip", + "ili p", + "è´ ¢", + "Ġà¤ħ à¤ķ", + "ĠY ıl", + "Ġ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "Ġ à¤Ŀ", + "ĠठĿ", + "ĠB ình", + "Ġol muÅŁ", + "Ġolm uÅŁ", + "اÙĦ Ø¥ÙĨجÙĦÙĬزÙĬØ©", + "اÙĦØ¥ ÙĨجÙĦÙĬزÙĬØ©", + "м енно", + "мен но", + "aln ız", + "Ġ شرÙĥØ©", + "Ġشر ÙĥØ©", + "Ġس ÙĨØ©", + "ĠسÙĨ Ø©", + "è´ Ł", + "ä½ľ åĵģ", + "Ġ ìķ½", + "Ġìķ ½", + "ĠдÑĢÑĥг иÑħ", + "ĠbaÄŁ lantı", + "о дÑĥ", + "од Ñĥ", + "çļĦ æĺ¯", + "ั à¸Ļà¸Ķ", + "ัà¸Ļ à¸Ķ", + "ĠкоÑĤоÑĢ ÑĭÑħ", + "ĠاÙĦ ÙĪÙĦ", + "ĠاÙĦÙĪ ÙĦ", + "ê¸Ģ ìĥģìľĦ", + "ĠÏĢ εÏģ", + "ĠÏĢε Ïģ", + "리 ìķĦ", + "i bar", + "ib ar", + "iba r", + "Ġ èĥ", + "Ġè ĥ", + "ãģŁ ãģĦ", + "á j", + "ĠìľĦ íķ´", + "? âĢľĊĊ", + "?âĢľ ĊĊ", + "Ġ íİĺ", + "Ġíİ ĺ", + "Ġ ней", + "Ġн ей", + "Ġне й", + "ĠÐĹ Ð°Ðº", + "ĠÐĹа к", + "Ġ ÐĴÑĸд", + "ĠÐĴ Ñĸд", + "е лÑĸ", + "ел Ñĸ", + "è¯ ¾", + "åī ¯", + "m adan", + "ma dan", + "mad an", + "mada n", + "æľ «", + "ĠÏĢ ÏģÏĮ", + "Ġп ÑģиÑħ", + "Ġ ÑĤÑĸ", + "ĠÑĤ Ñĸ", + "Ùĥ ات", + "Ġvys ok", + "ê´Ģ 리", + "ül tür", + "ült ür", + "Ġ à¹Ģà¸Ń", + "Ġà¹Ģ à¸Ń", + "Ġà¹ĢภŃ", + "Ġ íķ©", + "Ġíķ ©", + "çĿ £", + "Ġ ÑĢиÑģ", + "ĠÑĢ иÑģ", + "е ÑĢÑĮ", + "еÑĢ ÑĮ", + "ĠÚ© ÙĦÛĮ", + "ĠÚ©ÙĦ ÛĮ", + "Ġ ãĥŀ", + "Ġãĥ ŀ", + "Ġph ÃŃa", + "ĠphÃŃ a", + "å «", + "ا Ú¯", + "Ġ é¢", + "Ġé ¢", + "ĠÙĨ Ùģر", + "ĠÙĨÙģ ر", + "Ġ جاÙĨ", + "Ġج اÙĨ", + "Ġجا ÙĨ", + "Ġ yas", + "Ġy as", + "Ġya s", + "ж ениÑı", + "же ниÑı", + "жен иÑı", + "ĠлÑĥÑĩ ÑĪе", + "Ġ çº", + "Ġç º", + "Ġ мон", + "Ġм он", + "Ġмо н", + "Ġت Ø®", + "Ġ Ø´ÛĮ", + "ĠØ´ ÛĮ", + "Ġн екоÑĤоÑĢ", + "Ġнек оÑĤоÑĢ", + "алÑĮ нÑĭе", + "Ġob chod", + "Ġíķ¨ ê»ĺ", + "Ġr iêng", + "ãģķ ãĤĮãĤĭ", + "ãģķãĤĮ ãĤĭ", + "о кÑĥ", + "ок Ñĥ", + "ĠС ШÐIJ", + "ë§ ģ", + "Ġ Nếu", + "ĠN ếu", + "ĠA ÄŁ", + "Ġд веÑĢ", + "Ġдв еÑĢ", + "Ġдве ÑĢ", + "à¥ĭ ष", + "Ġkh iến", + "Ġkhi ến", + "н его", + "не го", + "ì± ħ", + "ั à¸ķร", + "ัà¸ķ ร", + "m alı", + "ma lı", + "mal ı", + "Ġ ÙĬا", + "ĠÙĬ ا", + "ç§ij æĬĢ", + "ื à¸Ļ", + "ห มาย", + "หม าย", + "Ġ خص", + "ĠØ® ص", + "åĨ ľ", + "ÃŃ me", + "ÃŃm e", + "ĠÑįÑĤ ой", + "ĠÑįÑĤо й", + "Ġ ìĹħ", + "ĠìĹ ħ", + "Ġ ä¹", + "ä¼ ¯", + "' ´", + "Ùħ ÙĬÙĦ", + "ÙħÙĬ ÙĦ", + "à¸Ń à¸ĩà¸Ħ", + "à¸Ńà¸ĩ à¸Ħ", + "k ová", + "ko vá", + "kov á", + "è¿Ļ ä¹Ī", + "ãĢĤ æĪij", + "ìĹIJ ìĦľëĬĶ", + "ìĹIJìĦľ ëĬĶ", + "Ġ ìļ©", + "Ġìļ ©", + "ë¹Ħ ìĬ¤", + "Ġ ì¦Ŀ", + "Ġì¦ Ŀ", + "IT TE", + "ITT E", + "Ġ모 ëĵł", + "ĠspoleÄį nosti", + "ĠspoleÄįnost i", + "Ġв ик", + "Ġви к", + "Ġt ÅĻÃŃ", + "ĠtÅĻ ÃŃ", + "é ³", + "Ġ Ø®ÛĮ", + "ĠØ® ÛĮ", + "Ġp ož", + "Ġpo ž", + "Ġиме еÑĤ", + "Ġd ÄĽt", + "ĠdÄĽ t", + "ĠÙħد ÙĦ", + "Ġ мо", + "Ġм о", + "åį ı", + "e nÃŃm", + "en ÃŃm", + "enÃŃ m", + "é ī", + "ا ظ", + "Ø§Ø ¸", + "Ġ teÅŁ", + "Ġt eÅŁ", + "Ġte ÅŁ", + "Ġ veÅĻej", + "Ġve ÅĻej", + "L IC", + "LI C", + "ì§Ģ ëĬĶ", + "Ñĭ ваÑİÑĤ", + "Ñĭв аÑİÑĤ", + "Ñĭва ÑİÑĤ", + "ĠоÑĢг анÑĸ", + "ĠоÑĢган Ñĸ", + "nÃŃ mi", + "nÃŃm i", + "θ ÎŃ", + "ãĤ¯ ãĥ©", + "ãĥ¼ ãĥ³", + "ãĥ¼ãĥ ³", + "ли ÑģÑı", + "i mdi", + "im di", + "imd i", + "æ Ĩ", + "ïº İ", + "Ġìļ´ ìĺģ", + "κ αν", + "κα ν", + "Ġ ë³µ", + "Ġë³ µ", + "Ġ ÐĨн", + "ĠÐĨ н", + "p lication", + "pl ication", + "t ah", + "ta h", + "Ġ ÐIJв", + "ĠÐIJ в", + "Ġc á»Ļng", + "алÑĮ ноÑĹ", + "алÑĮно ÑĹ", + "Ġد ÙĪرÙĩ", + "ĠدÙĪ رÙĩ", + "ĠدÙĪر Ùĩ", + "à¥įर य", + "Ġ Ø®ÙĪ", + "ĠØ® ÙĪ", + "Ġв ÑĢа", + "Ø¥ ÙĨ", + "èĤ ī", + "Ġo yn", + "Ġoy n", + "ĠT Æ°", + "ĠÙĩ ÙħاÙĨ", + "ĠÙĩÙħ اÙĨ", + "ĠбÑĸлÑĮ ÑĪе", + "ĠбÑĸлÑĮÑĪ е", + "æĮ ¯", + "ا ÙħØ©", + "اÙħ Ø©", + "å º«", + "åº «", + "Ġ ÑĢеж", + "ĠÑĢ еж", + "ĠÑĢе ж", + "Ġدار ÙĨد", + "ÑĢ ий", + "ÑĢи й", + "Ġ æĮ", + "Ġæ Į", + "Ġson uç", + "Ġsonu ç", + "Ġt ả", + "ั à¸ĩà¸Ħ", + "ัà¸ĩ à¸Ħ", + "ë° Ľ", + "Ġ мом", + "Ġм ом", + "Ġмо м", + "ви Ñĩай", + "виÑĩ ай", + ". à¸Ħ", + "Ġ à¤Ĩà¤Ī", + "Ġà¤Ĩ à¤Ī", + "åģ ĩ", + "Ġpos kyt", + "Ġpo skyt", + "ĠÑģ Ñĥп", + "ĠÑģÑĥ п", + "ıyor du", + "а ле", + "ал е", + "и ÑĨ", + "Ġ θÎŃ", + "Ġθ ÎŃ", + "ãĤĩ ãģĨ", + "ĠÑģв ой", + "ĠÑģво й", + "ม à¸Ļ", + "Ġn ữa", + "Ġnữ a", + "v oÅĻ", + "vo ÅĻ", + "ا سÙĬ", + "اس ÙĬ", + "éĴ ±", + "ãģĹ ãģ¦ãģĦãģŁ", + "ãģĹãģ¦ ãģĦãģŁ", + "ãģĹãģ¦ãģĦ ãģŁ", + "ĠÄij ầy", + "ا ÙĬر", + "اÙĬ ر", + "Ġar aÅŁtır", + "Ġara ÅŁtır", + "ì £", + "ãģ¨ ãģ¯", + "ĠÑģ поÑĢ", + "ĠÑģп оÑĢ", + "Ġê° Ģìŀ¥", + "Ġê°Ģ ìŀ¥", + "è¼ ī", + "âĸ ¡", + "Ġ ìĻĦ", + "ĠìĻ Ħ", + "оÑĢ аÑı", + "оÑĢа Ñı", + "Ïģ εί", + "Ïģε ί", + "ĠÑį ÑĤа", + "ĠÑįÑĤ а", + "ë©´ ìłģ", + "ìĿ´ ìĬ¤", + "ä½ ³", + "æĻ ļ", + "Ġk val", + "Ġkv al", + "Ġn á»ķi", + "ÑĤ ами", + "ÑĤа ми", + "Ġпол ÑĸÑĤи", + "ĠполÑĸ ÑĤи", + "Ġ Ä°ng", + "ĠÄ° ng", + "ĠÄ°n g", + "нÑĸ ÑģÑĤÑİ", + "нÑĸÑģÑĤ Ñİ", + "Ġ à¹Ģà¸ģ", + "Ġà¹Ģ à¸ģ", + "Ġà¹Ģภģ", + "Ġ 민", + "Ġë ¯¼", + "è Ķ", + "Ïģ ία", + "Ïģί α", + "æİ Ī", + "Ġ çĤ", + "Ġç Ĥ", + "ĠÙĨÙħ اÛĮ", + "Ġ ìŀ¡", + "Ġìŀ ¡", + "æŀ ¶", + "اب ÙĤ", + "Ñģ он", + "Ñģо н", + "ен ного", + "енно го", + "ĠÙħ ÛĮÙĦÛĮ", + "ĠÙħÛĮ ÙĦÛĮ", + "ĠÙħÛĮÙĦ ÛĮ", + "Ġk urum", + "Ġkur um", + "Ġku rum", + "Ġkuru m", + "à¹Į ส", + "Ġ ì´Ŀ", + "Ġì ´Ŀ", + "Ġì´ Ŀ", + "ĠnÄĽk olik", + "ĠnÄĽkol ik", + "Ġ ÙĢ", + "ĠÙ Ģ", + "ĠзаÑģÑĤ оÑģ", + "à¸Ķ à¸Ļ", + "ÙĨ داÙĨ", + "ÙĨد اÙĨ", + "ÙĨدا ÙĨ", + "ĠJ ap", + "ĠJa p", + "éĥ ¡", + "à¥į à¤Ń", + "à¥įठŃ", + "Ġ à¹Ģà¸Ĭ", + "Ġà¹Ģ à¸Ĭ", + "Ġà¹ĢภĬ", + "Ġ âĢ«", + "ĠâĢ «", + "é£ ŀ", + "o vatel", + "ov atel", + "ova tel", + "ovat el", + "ĠÑĩа ÑģÑĤÑĮ", + "ĠÑĩаÑģ ÑĤÑĮ", + "ĠÑĩаÑģÑĤ ÑĮ", + "Ġb á»ķ", + "ãĤ¯ ãĥª", + "ิ à¹Į", + "Ġвид е", + "Ġви де", + "v ail", + "va il", + "Ì ī", + "ÄŁ inde", + "ÄŁi nde", + "ÄŁin de", + "ãģ¨ ãĤĤ", + "âĢĮÚ© ÙĨد", + "âĢĮÚ©ÙĨ د", + "Ġ ëħĦ", + "Ġëħ Ħ", + "Ġ اÙĤتص", + "ĠاÙĤ تص", + "ï½ Ĺ", + "Ïģ ιÏĥ", + "Ïģι Ïĥ", + "з д", + "èĻ ½", + "Ġth oại", + "Ġtho ại", + "Ġ ÙĪز", + "ĠÙĪ ز", + "Ġ mÃŃt", + "Ġm ÃŃt", + "ĠmÃŃ t", + "ĠÑħ олод", + "ĠÑħол од", + "Ġ кÑĥп", + "Ġк Ñĥп", + "ĠкÑĥ п", + "а ниÑħ", + "ан иÑħ", + "ани Ñħ", + "Ġnh ìn", + "ãģĭ ãģª", + "Ġ Ðļом", + "ĠÐļ ом", + "ĠÐļо м", + "ÏĦ εÏģ", + "ÏĦε Ïģ", + "ï¼Į åıª", + "Ġol up", + "Ġhá» ıi", + "ë ij", + "ĠnÄĽk ter", + "i sÃŃ", + "is ÃŃ", + "ĠвикоÑĢиÑģÑĤ ов", + "ìŀ ¡", + "Ġà¤ķ ल", + "Ġìľł ìłĢ", + "ĠпÑĢ иб", + "ĠпÑĢи б", + "èĭ ¦", + "Ġ мов", + "Ġм ов", + "Ġмо в", + "Ġ หà¸Ļ", + "Ġห à¸Ļ", + "ëIJĺ ëĬĶ", + "о ко", + "ок о", + "Ġоб еÑģп", + "Ġk ez", + "Ġke z", + "л ÑıÑħ", + "лÑı Ñħ", + "ĠпÑĢо иÑģ", + "Ġпо вин", + "Ġпов ин", + "ĠÐļ оÑĢ", + "ĠÐļо ÑĢ", + "ì¼ Ģ", + "Ġ Ñģи", + "ĠÑģ и", + "Ġ ä¹ĭ", + "Ġä¹ ĭ", + "ĠâĢĶ Ċ", + "ÑģÑĥÑĤ ÑģÑĤв", + "ç °", + "Ġ à¤ł", + "Ġठł", + "н аÑĤ", + "на ÑĤ", + "Ġs uy", + "Ġsu y", + "Ġ ÑģÑĭ", + "ĠÑģ Ñĭ", + "ĠÙĨ شاÙĨ", + "ĠÙĨØ´ اÙĨ", + "Ġна пÑĢав", + "Ġнап ÑĢав", + "ĠÑĨ ÑĮомÑĥ", + "æĺ¯ ä¸Ģ", + "Ġm üm", + "Ġmü m", + "ÑĶ мо", + "ÑĶм о", + "ĠاسÙĦاÙħ ÛĮ", + "Ġza manda", + "Ġzam anda", + "Ġzaman da", + "ÙĪ ÙħاÙĨ", + "ÙĪÙħ اÙĨ", + "ا ÙĦØŃ", + "اÙĦ ØŃ", + "Å¡t ÄĽnÃŃ", + "Å¡tÄĽ nÃŃ", + "Ġ Ðļак", + "ĠÐļ ак", + "ĠÐļа к", + "¤ íĶĦ", + "¤í ĶĦ", + "ĠÙ¾ رد", + "Ġپر د", + "C ác", + "ε ια", + "ει α", + "Ġ جÙĪ", + "Ġج ÙĪ", + "ĠÄijo ạn", + "Ġà¤ĩ त", + "Ġз ан", + "Ġза н", + "ĠÙħÙĨØ· ÙĤÙĩ", + "ĠÙħ عÙĦ", + "ĠÙħع ÙĦ", + "Ġdo kon", + "Ġdok on", + "åIJ ¸", + "ic kou", + "ick ou", + "å° ģ", + "Ġк иÑģ", + "Ġки Ñģ", + "ัà¸ĩ หว", + "i species", + "is pecies", + "isp ecies", + "Ġнап ÑĢÑı", + "æº ĸ", + "Ġà¤ľ ल", + "à¹Ģ à¸ī", + "à¹Ģภī", + "L AR", + "LA R", + "ĠÑĥÑģлов иÑı", + "ĠWiki species", + "ĠWik ispecies", + "ระ à¸Ķ", + "Ġ mey", + "Ġm ey", + "Ġme y", + "ãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "à¹ĩ à¸Ī", + "å¾ Ĵ", + "t ach", + "ta ch", + "u muz", + "um uz", + "umu z", + "κ η", + "à Ĭ", + "Ġ ün", + "Ġü n", + "ĠB ITTE", + "ĠBIT TE", + "ĠÙħ ربع", + "ĠÙħر بع", + "ĠÙħرب ع", + "ãĤ· ãĥ¥", + "िस à¤ķ", + "Ø· ÙĪر", + "Ġв оÑģ", + "Ġво Ñģ", + "ï¾ Ł", + "Ġy ayın", + "Ġyay ın", + "ãģĭ ãĤĬ", + "л иÑı", + "ли Ñı", + "Ġп ÑĢин", + "ĠпÑĢ ин", + "ĠпÑĢи н", + "ij ng", + "ĠÙĨ Ø®", + "Ġl ze", + "Ġlz e", + "à¥įष ण", + "Ġ бо", + "Ġб о", + "Ġ ê¸Ģ", + "Ġê¸ Ģ", + "Ġgel iÅŁtir", + "ĠgeliÅŁ tir", + "à¸Ľà¸£à¸° à¸Ĭ", + "å½ ¡", + "Ġ ãĤª", + "ĠãĤ ª", + "ãģĪ ãģ¦", + "н ÑĥÑĤÑĮ", + "нÑĥ ÑĤÑĮ", + "нÑĥÑĤ ÑĮ", + "Ġ ç½", + "Ġç ½", + "Ġ маг", + "Ġм аг", + "Ġма г", + "ãģ« ãģ¤", + "н оÑģÑĤей", + "ноÑģÑĤ ей", + "Ġ ÙĦÙĬ", + "ĠÙĦ ÙĬ", + "æĢ ª", + "ÑıÑĤ ÑģÑı", + "ภij", + "िय म", + "Ġ ãĢİ", + "ĠãĢ İ", + "ÑĢ ÑĮ", + "Ġm ạng", + "t ım", + "tı m", + "ĠпеÑĢи од", + "о гÑĥ", + "ог Ñĥ", + "ĠкоÑĤоÑĢ аÑı", + "ĠкоÑĤ оÑĢаÑı", + "리 ê°Ģ", + "Ġãħ ¡", + "Ġج اÛĮ", + "Ġجا ÛĮ", + "ĠпоÑĤ ÑĢÑĸб", + "Å¡ en", + "Å¡e n", + "à¸Ń ะ", + "ب ع", + "ØŁ Ċ", + "Ġ ë°©ë²ķ", + "Ġë°© ë²ķ", + "Ġ гоÑĢод", + "Ġг оÑĢод", + "ĠгоÑĢ од", + "Ġ Ðĺн", + "ĠÐĺ н", + "Ġ оказ", + "Ġо каз", + "Ġок аз", + "ر ÙĪز", + "رÙĪ ز", + "Ġili ÅŁk", + "ĠiliÅŁ k", + "å® £", + "f orman", + "form an", + "for man", + "forma n", + "a daÅŁ", + "ad aÅŁ", + "ada ÅŁ", + "ÙĬ ÙĦØ©", + "ÙĬÙĦ Ø©", + "ĠÐļ аÑĢ", + "ĠÐļа ÑĢ", + "Ġm ất", + "æħ ĭ", + "м п", + "à¹Ĥ à¸Ļ", + "ĠØŃÙĤ ÙĪÙĤ", + "Ġд нÑı", + "ĠëĴ ¤", + "ा à¤ķर", + "ाà¤ķ र", + "ì²ĺ ëŁ¼", + "âĢĮ Ø¢", + "h angi", + "han gi", + "hang i", + "è¡Į æĶ¿", + "al iyet", + "ali yet", + "Ġ ì²ľ", + "Ġì² ľ", + "ĠY ap", + "ĠYa p", + "à¹Ĥ รà¸ĩ", + "à¹Ĥร à¸ĩ", + "ì§Ģ ëħ¸", + "Ùİ Ùij", + "Îij ÎĻ", + "á na", + "án a", + "an dır", + "and ır", + "ระ à¸ļà¸ļ", + "ระà¸ļ à¸ļ", + "oÄŁ lu", + "า à¸Īะ", + "าà¸Ī ะ", + "ẩ y", + "ا ÙĪÙĦ", + "اÙĪ ÙĦ", + "ĠмаÑĤ еÑĢÑĸ", + "ÎŁ ÎĿ", + "ÎŁÎ Ŀ", + "Ġin formace", + "Ġinform ace", + "ت ع", + "à¸ļ à¸Ļ", + "ĠÄĮesk é", + "ĠÄĮes ké", + "Ġte mel", + "Ġtem el", + ":::::::::::::::: ::::::::::::::::", + "Ġ chia", + "Ġch ia", + "Ġchi a", + "- Ñģ", + "н еÑĢг", + "не ÑĢг", + "неÑĢ г", + "Ġì° ¾", + "ÑĢ ид", + "ÑĢи д", + "л оÑģÑĮ", + "ло ÑģÑĮ", + "ز ÙĦ", + "ê°Ģ ëĬĶ", + "a né", + "an é", + "Ġнав ÑĸÑĤÑĮ", + "ĠнавÑĸ ÑĤÑĮ", + "ä¸ĵ ä¸ļ", + "Ġ 경기", + "Ġê²½ 기", + "Ġp ÅĻev", + "ĠpÅĻ ev", + "ĠpÅĻe v", + "е ÑĤи", + "еÑĤ и", + "Ġ íĶĮ", + "ĠíĶ Į", + "н ÑıÑĤ", + "нÑı ÑĤ", + "à¥ģ श", + "à¥ģठ¶", + "лÑİ Ð´", + "в иÑī", + "ви Ñī", + "å° ¾", + "çļĦ äºĭ", + "Ġ ëIJľ", + "Ġë IJľ", + "ĠëIJ ľ", + "ر ÙĪÙģ", + "رÙĪ Ùģ", + "Ġ 女", + "Ġå¥ ³", + "κ ή", + "Ġ Tuy", + "ĠT uy", + "ĠTu y", + "Ġê²ĥ ìĿĦ", + "Ġb unu", + "Ġbu nu", + "Ġbun u", + "ĠÑĢаз лиÑĩ", + "ĠD ün", + "ãĤŃ ãĥ£", + "ÑĢ ÑĥÑģ", + "ÑĢÑĥ Ñģ", + "Ġ мм", + "Ġм м", + "l oven", + "lo ven", + "love n", + "lov en", + "Ġot ev", + "n oloj", + "ES Ä°", + "ü p", + "Ġ èĤ", + "Ġè Ĥ", + "ικ ÏĮÏĤ", + "ικÏĮ ÏĤ", + "ض اء", + "ضا Ø¡", + "Ġ пеÑĩ", + "Ġп еÑĩ", + "ÅĻÃŃ klad", + "ãģĵ ãĤį", + "Å¡ tÃŃ", + "Å¡t ÃŃ", + "Ġبر Ú¯", + "ãģĮ ãģĤãĤĭ", + "Ñĸ ÑģÑĤ", + "ÑĸÑģ ÑĤ", + "à¥ī à¤ķ", + "ÏĢ η", + "ĠاÙĦÙħ ست", + "ĠاÙĦÙħس ت", + "Ġз ай", + "Ġза й", + "Ġch Æ°Æ¡ng", + "о ÑĤÑĥ", + "оÑĤ Ñĥ", + "Ġ Сам", + "ĠС ам", + "Å¡ et", + "Å¡e t", + "ĠìŀĪ ìĹĪ", + "ĠÙģ ار", + "Ñĸ он", + "ãĥĹ ãĥŃ", + "Ġnh iá»ĩt", + "in izi", + "ini zi", + "iniz i", + "Ġc ož", + "Ġco ž", + "Ġà¤Ĩ न", + "Ġsyst ém", + "ر ÙĪع", + "رÙĪ ع", + "a yet", + "ay et", + "aye t", + "ĠÙģر ÙĩÙĨÚ¯", + "Ġ è¶", + "Ġè ¶", + "èģ ·", + "è§Ĥ çľĭ", + "н ок", + "но к", + "à¸IJ าà¸Ļ", + "êµIJ ìľ¡", + "k la", + "kl a", + "ãĤģ ãģ¦", + "Îķ ÎĻ", + "åĿ Ĺ", + "Ġsk uteÄį", + "à¥Ĥ à¤ľ", + "ãģij ãģ¦", + "N GC", + "NG C", + "Ġ åĢ", + "Ġå Ģ", + "ĠÑĢоз п", + "nÃŃ ků", + "nÃŃk ů", + "ãĥ³ ãĤ¹", + "ĠÐĴ еÑĢ", + "Ġyüz de", + "Ġ미 êµŃ", + "ĠÙħ Ùī", + "д еÑĢ", + "де ÑĢ", + "а ва", + "ав а", + "Ġmerk ez", + "į ng", + "Ġ ìĤ¼", + "ĠìĤ ¼", + "ĠÑĢоб оÑĤи", + "ĠÑĢобоÑĤ и", + "Ġ нÑĮого", + "Ġн ÑĮого", + "Ġ економ", + "Ġе коном", + "Ġек оном", + "ĠÑĩелов ека", + "ĠÑĩеловек а", + "Ġ à¸ŀระ", + "Ġà¸ŀ ระ", + "Ġà¸ŀร ะ", + "ãĥ Ĵ", + "ãģ£ ãģ¦ãģĦ", + "ãģ£ãģ¦ ãģĦ", + "ä¼ Ĺ", + "ĠпÑĢод ÑĥкÑĤ", + "ĠпÑĢодÑĥк ÑĤ", + "Ġy anı", + "Ġyan ı", + "à¥Ģव न", + "Ġc áºŃp", + "ĠAv rupa", + "ा à¤Ń", + "ाठŃ", + "ĠìłĦ ìļ©", + "æķ £", + "ĠìľĦ íķľ", + "Ñħод иÑĤÑĮ", + "ÑħодиÑĤ ÑĮ", + "Ġsın ır", + "ü cret", + "üc ret", + "s uz", + "su z", + "æ¨ Ĥ", + "Ġ ì°½", + "Ġì° ½", + "Ïģ ίοÏħ", + "Ïģί οÏħ", + "åĪ ļ", + "Ø® ÙĦ", + "ëłĩ ê²Į", + "ج د", + "Ġμ αÏĤ", + "Ġμα ÏĤ", + "áºŃ m", + "k ara", + "ka ra", + "kar a", + "ãĤ« ãĥ¼", + "Ġkter ou", + "ìĽ ¨", + "ÑĦи ÑĨи", + "oÄŁ raf", + "Ġна пÑĢи", + "Ġнап ÑĢи", + "ãģij ãģ©", + "Ġ éļ", + "Ġé ļ", + "ت باÙĦ", + "تب اÙĦ", + "ëŁ ½", + "ìĶ ¨", + "íĮĮ ìĿ¼", + "Ïĩ α", + "Ġuz ak", + "Ġd òng", + "Ġг олоÑģ", + "Ġгол оÑģ", + "Ïĥ ÏĦή", + "ÏĥÏĦ ή", + "ι λ", + "Ø· Ùģ", + "Ġê·¸ ëħĢ", + "ãĤ¿ ãĤ¤", + "ا ÙĨÚ¯", + "اÙĨ Ú¯", + "i nou", + "in ou", + "ino u", + "л он", + "ло н", + "à¹ĩ ม", + "Ġब द", + "Ġkon usunda", + "Ġkonusu nda", + "Ġkonus unda", + "Ġn âng", + "ãģ¾ãģĽ ãĤĵ", + "Ñĥ ÑİÑĤÑĮÑģÑı", + "ÑĥÑİ ÑĤÑĮÑģÑı", + "ÑĥÑİÑĤÑĮ ÑģÑı", + "åŁ ¹", + "ен ко", + "ìł ij", + "Ġ ÑĤов", + "ĠÑĤ ов", + "ĠÑĤо в", + "Ġt ÅĻeba", + "ĠtÅĻ eba", + "ز اÙĨ", + "زا ÙĨ", + "is yon", + "isy on", + "Ġ ген", + "Ġг ен", + "Ġге н", + "Ġ Pokud", + "ĠP okud", + "ĠPo kud", + "ĠPok ud", + "âĢĮ اÙĨد", + "âĢĮاÙĨ د", + "Ġг ÑĢÑĥд", + "ĠгÑĢÑĥ д", + "ĠгÑĢ Ñĥд", + "Ġ خرÛĮد", + "Ġخر ÛĮد", + "λ λα", + "λλ α", + "Ġp ÅĻÃŃm", + "ĠpÅĻ ÃŃm", + "ĠpÅĻÃŃ m", + "Ġ æ³ķ", + "Ġæ³ ķ", + "Ġز ÙĨدگÛĮ", + "ĠزÙĨد Ú¯ÛĮ", + "ạ p", + "Ġ íĬ¸", + "ĠíĬ ¸", + "ĠÄij á»Ļc", + "ĠÄijá»Ļ c", + "Ġê·¸ ë¦¬ê³ł", + "Ġ그리 ê³ł", + "н из", + "ни з", + "Ġ ÙĬÙĤ", + "ĠÙĬ ÙĤ", + "l aÅŁtır", + "la ÅŁtır", + "laÅŁ tır", + "ĠпÑĢав о", + "ĠпÑĢа во", + "Ñĥ Ñģк", + "ÑĥÑģ к", + "å° ½", + "Ġप ड", + "éĵ ģ", + "Ġ ì·¨", + "Ġì ·¨", + "ĠاÙĦ بÙĬ", + "ĠاÙĦب ÙĬ", + " ¸", + "ิม à¸ŀ", + "Ġs vÄĽ", + "Ġsv ÄĽ", + "Ġб ал", + "Ġба л", + "Ġm ôn", + "Ġmô n", + "ĠD ữ", + "ĠØ´ دÙĨ", + "Ġشد ÙĨ", + "Ġ ÙģÙĦ", + "ĠÙģ ÙĦ", + "Ġv znik", + "Ġvz nik", + "Ġch ứ", + "ĠÑģÑĤ ÑĢÑĥкÑĤÑĥ", + "ç¸ £", + "ĠH oa", + "ĠHo a", + "í ĮĢ", + "íĮ Ģ", + "Ġ ÑĢÑĸÑĪ", + "ĠÑĢ ÑĸÑĪ", + "Ġвоз дÑĥ", + "олÑĮ ÑĪ", + "οÏħ με", + "ู à¸Ļ", + "Ġп ÑĢид", + "ĠпÑĢ ид", + "ĠпÑĢи д", + "il mek", + "ilm ek", + "ĠاÙĦ ÙĤر", + "ĠاÙĦÙĤ ر", + "Į ĵ", + "Ġ uç", + "Ġu ç", + "å¨ ĺ", + "ec ektir", + "ecek tir", + "Ġ íħĮ", + "Ġí ħĮ", + "Ġíħ Į", + "Ġ εÏħ", + "Ġε Ïħ", + "Ġh òa", + "Ïģ Ïħ", + "ึà¸ģษ า", + "ĠÑĤеÑħ нолог", + "ú i", + "Ġbilg iler", + "Ġbilgi ler", + "Ġ ÙĤاÙĦ", + "ĠÙĤ اÙĦ", + "e dl", + "ed l", + "z nám", + "zn ám", + "á ly", + "ál y", + "åºĶ 该", + "алÑĮ ний", + "аÑĤ елÑı", + "аÑĤе лÑı", + "à¸Ļ วà¸Ļ", + "à¸Ļว à¸Ļ", + "Ġ ÐŁÐ¾Ð»", + "ĠÐŁ ол", + "ĠÐŁÐ¾ л", + "à¸ŀ à¸Ļ", + "ç¤ ¼", + "Ġt asar", + "Ġta sar", + "Ġtas ar", + "ĠÑĤ ой", + "ĠÑĤо й", + "Ġм еÑģÑı", + "Ġ иÑģк", + "Ġи Ñģк", + "ĠиÑģ к", + "Ġप द", + "γ ή", + "ا ختÙĩ", + "اخ تÙĩ", + "اخت Ùĩ", + "è¿Ļ éĩĮ", + "Ġch á»īnh", + "Ġchá»ī nh", + "ĠÙĤ سÙħ", + "Ùİ Ùĩ", + "er li", + "åĽ½ éĻħ", + "il iyor", + "ili yor", + "ĠØ´Ùĩر ستاÙĨ", + "Ġve lk", + "Ġvel k", + "åĽ º", + "Ġб ÑĸлÑĮÑĪ", + "ĠбÑĸлÑĮ ÑĪ", + "ãĥ¼ ãĥĹ", + "ãĥ¼ãĥ Ĺ", + "æŁ IJ", + "ì§ ľ", + "ĠÄĮ R", + "Ġд ек", + "Ġде к", + "ر بÛĮ", + "رب ÛĮ", + "о виÑĩ", + "ов иÑĩ", + "ови Ñĩ", + "Ġkap sam", + "Ġkaps am", + "ĠÙĦ Ø£", + "Ġ анÑĤи", + "Ġан ÑĤи", + "Ġ ücret", + "Ġü cret", + "ê² ¬", + "о ÑĢож", + "оÑĢ ож", + "оÑĢо ж", + "ÛĮ ÙħÛĮ", + "ÛĮÙħ ÛĮ", + "è© ķ", + "Ġ ë§ŀ", + "Ġë§ ŀ", + "Ġ ÑĢÑıд", + "ĠÑĢ Ñıд", + "ĠÑĢÑı д", + "ĠÙĩÙħ راÙĩ", + "â r", + "ا بت", + "اب ت", + "ĠиÑģполÑĮзов аÑĤÑĮ", + "ĠиÑģполÑĮз оваÑĤÑĮ", + "к Ñģ", + "âī ¡", + "Ġo lay", + "Ġol ay", + "Ġola y", + "èį ¯", + "Ġo prav", + "Ġop rav", + "Ġopr av", + "Ġدرب ارÙĩ", + "Ġ ä¸ŃåĽ½", + "Ġä¸Ń åĽ½", + "и лÑģÑı", + "ил ÑģÑı", + "åį «", + "ĠاÙĦ است", + "ĠاÙĦاس ت", + "ÙĪÛĮ ÛĮ", + "ÑĢ еÑĪ", + "ÑĢе ÑĪ", + "Ġ ÙĨس", + "ĠÙĨ س", + "ãĢĤ åľ¨", + "Ġ ÙĦØŃ", + "ĠÙĦ ØŃ", + "Ġko run", + "Ġkor un", + "ĠÙģ رد", + "ĠÙģر د", + "Ġо боÑĢ", + "Ġоб оÑĢ", + "Ġобо ÑĢ", + "е ÑĪÑĮ", + "еÑĪ ÑĮ", + "Ġpod mÃŃn", + "Ġ ë¬¸ìłľ", + "Ġ문 ìłľ", + "ĠdeÄŁer lendir", + "ä¸į åIJĮ", + "æ¶ ²", + "ा हर", + "ाह र", + "íļ į", + "à¥į à¤ł", + "à¥įठł", + "и ÑĤиÑģÑı", + "иÑĤи ÑģÑı", + "ا ÙĦع", + "اÙĦ ع", + "Ġd vÄĽ", + "Ġdv ÄĽ", + "ĠпеÑĢ ек", + "ĠпеÑĢе к", + "Ġ åħĥ", + "Ġåħ ĥ", + "Ġ aras", + "Ġa ras", + "Ġar as", + "Ġara s", + "Ġalt ında", + "Ġaltın da", + "Ġaltı nda", + "Ġв за", + "Ġвз а", + "æĴ ĥ", + "Ġmil yon", + "Ġ åѦ", + "ĠåŃ ¦", + "Ġв аÑĢи", + "ĠваÑĢ и", + "Ġва ÑĢи", + "ĠاÙĦع اÙĦÙħ", + "' Ñı", + "ÙĪ ÛĮس", + "ÙĪÛĮ س", + "Ġмож ÑĥÑĤÑĮ", + "ãģij ãģŁ", + "ìĿ´ ìĹĪëĭ¤", + "ìĿ´ìĹĪ ëĭ¤", + "ο Ïįν", + "οÏį ν", + "Ġ éŁ", + "Ġé Ł", + "Ġpost up", + "Ġpo stup", + "ü yük", + "üy ük", + "åĪ Ĭ", + "Ġ ÙĤب", + "ĠÙĤ ب", + "Ġاص ÙĦÛĮ", + "ĠاصÙĦ ÛĮ", + "ÙĪ Ùī", + "Ġrep ublik", + "Ġ ÐĻ", + "ĠÐ Ļ", + "ģ m", + "Ġб ел", + "ा -", + "Ñģ кое", + "Ñģк ое", + "Ñģко е", + "Ġcu á»iji", + "è² ·", + "ี ยว", + "ีย ว", + "éĩį è¦ģ", + "ู ม", + "ĠÑĢозвиÑĤ кÑĥ", + "Ġ ë°±", + "Ġë° ±", + "åĥ ¹", + "Ġ åīį", + "Ġåī į", + "à¹Ħ à¸ĭ", + "ãĢĮ âĢ¦âĢ¦", + "à¥Į त", + "Ú© رد", + "کر د", + "Ġza ÅĻÃŃzenÃŃ", + "ส าร", + "Ġle tech", + "Ġlet ech", + "l emek", + "le mek", + "lem ek", + "leme k", + "人 ãģ®", + "Ġd ưỡng", + "ĠdÆ°á» ¡ng", + "ت ÙĤ", + "Ġ åĵ", + "Ġå ĵ", + "åħ »", + "Ġ ëıħ", + "Ġëı ħ", + "Ġ 루", + "Ġë £¨", + "Ġë£ ¨", + "Ø° ÙĦÙĥ", + "Ġ ìĿ¼ë³¸", + "ĠìĿ¼ 본", + "ĠAy rıca", + "ĠÙ¾ Úĺ", + "is inin", + "isi nin", + "isin in", + "isini n", + "Ġìĭ ¶", + "Ú¯ ÛĮرÛĮ", + "Ú¯ÛĮ رÛĮ", + "Ú¯ÛĮر ÛĮ", + "خص ص", + "³ ç´°", + "ĠмаÑĤеÑĢи ал", + "k ové", + "ko vé", + "kov é", + "ë§ ī", + "ãģķ ãģĽ", + "ĠÑĤак ой", + "ĠÑĤа кой", + "Ġtr áºŃn", + "Ġ лиÑĨ", + "Ġл иÑĨ", + "Ġли ÑĨ", + "Ġ åĽĽ", + "ĠåĽ Ľ", + "Ñĩ Ñĥ", + "Ġ æ°´", + "Ġæ° ´", + "Ġdo lay", + "Ġdol ay", + "å½ ¹", + "ÑĢ ива", + "ÑĢи ва", + "ÑĢив а", + "Ġг ÑĢÑĥпп", + "ĠгÑĢÑĥ пп", + "ĠгÑĢÑĥп п", + "Ġmüm kün", + "л ена", + "лен а", + "ле на", + "ëĿ¼ ëĬĶ", + "åĪ© çĶ¨", + "Ġr ahat", + "Ġra hat", + "ï¼ıï¼ı ï¼ıï¼ı", + "æģ ©", + "Ġ íķŃ", + "Ġíķ Ń", + "Ġ íĴ", + "Ġí Ĵ", + "Ġ ìĬ¹", + "ĠìĬ ¹", + "Ġch ân", + "Ġ ãĤ¨", + "ĠãĤ ¨", + "Ġжиз ни", + "çĸ ij", + "ãĢĤ ä»ĸ", + "리 ìĬ¤", + "Ñĩ иÑħ", + "Ñĩи Ñħ", + "Ġ é¦ĸ", + "Ġé¦ ĸ", + "ÄĽ r", + "Ġй омÑĥ", + "Ġth áºŃt", + "Ġìķ ŀ", + "c ih", + "ci h", + "س ÙĦاÙħ", + "سÙĦ اÙħ", + "Ġs iyas", + "Ġsi yas", + "Ġ íĸĪ", + "Ġíĸ Ī", + "Ġк оÑĪ", + "Ġко ÑĪ", + "Ïĥ αν", + "Ïĥα ν", + "ÙĬ اÙĨ", + "ÙĬا ÙĨ", + "Ġd ö", + "ाह त", + "о ÑĢод", + "оÑĢ од", + "оÑĢо д", + "о ваÑı", + "ов аÑı", + "ова Ñı", + "ÑĨи оналÑĮ", + "ÑĨион алÑĮ", + "ائ Ùĩ", + "Ġà¤ĸ र", + "ĠÄij á»Ŀi", + "ĠÄijá» Ŀi", + "ä¸į ä¼ļ", + "Ùĥ ز", + "ี à¸Ħวาม", + "ีà¸Ħ วาม", + "l ıyor", + "lı yor", + "à¥ĭ द", + "Ġ 충", + "Ġì¶ ©", + "Ġc á»ij", + "à¹Ĥ à¸ķ", + "Ġε ÏĢί", + "ĠεÏĢ ί", + "ĠпÑĢ Ñıм", + "æ³ °", + "ا ÙĦØ©", + "اÙĦ Ø©", + "j ÃŃm", + "jÃŃ m", + "Ġ би", + "Ġб и", + "Å¡ em", + "Å¡e m", + "ĠH á»Ļi", + "à¸Ħ รà¸ĩ", + "à¸Ħร à¸ĩ", + "Ġh uyá»ĩn", + "Ġhuy á»ĩn", + "ç¯ Ģ", + "l iÅ¡", + "li Å¡", + "ĠجÙĩ ت", + "ç§ ĭ", + "ĠÑĨ ел", + "ĠÑĨе л", + "Ġ лÑĸÑĤ", + "Ġл ÑĸÑĤ", + "ĠлÑĸ ÑĤ", + "Ġ æ·", + "Ġæ ·", + "ж Ñĥ", + "ãģĪ ãģŁ", + "ë´ ī", + "Ġ 머", + "Ġë¨ ¸", + "åł´ åIJĪ", + "éĿ ©", + "ãĥª ãĥ³", + "ег да", + "Ġbe nim", + "Ġben im", + "Ġbeni m", + "çĽ Ł", + "ãģ® ä¸Ń", + "åĿ IJ", + "ĠÃľniversit esi", + "Ġko ÅŁ", + "Ġп ож", + "Ġпо ж", + "iá»ĩ p", + "ĠpÅĻ ij", + "ĠpÅĻi j", + "ëŀ ¨", + "ĠاÙĦ أس", + "ĠاÙĦØ£ س", + "ár nÃŃ", + "iế m", + "Ġ èĬ", + "Ġè Ĭ", + "Ġ δε", + "Ġδ ε", + "å¨ ±ä¹IJ", + "Ġ Æ°u", + "Ġ çĦ¡", + "ĠçĦ ¡", + "Ġг ÑĢи", + "ĠгÑĢ и", + "Ġпо ÑįÑĤомÑĥ", + "ĠÄij óng", + "ĠÄijó ng", + "ĠÄijón g", + "ج اÙĨ", + "جا ÙĨ", + "Ġngh iên", + "Ġnghi ên", + "Ġا ÙĦاÙĨ", + "ĠاÙĦ اÙĨ", + "ÑĪ ей", + "ÑĪе й", + "à¹ģ รà¸ģ", + "ĠÚĨ Ùĩار", + "ĠÚĨÙĩ ار", + "Ñİ Ñīий", + "ÑİÑī ий", + "ÏĮ Ïģ", + "Ġ رÙħ", + "Ġر Ùħ", + "ì² ł", + "Ġدست گاÙĩ", + "Ġ دÛĮد", + "Ġد ÛĮد", + "ĠدÛĮ د", + "ãĥĥãĤ¯ ãĤ¹", + "ा मन", + "ाम न", + "ĠTh Ãłnh", + "Ġth ẩm", + "Ġc Ãłng", + "ĠcÃł ng", + "Ġdön Ã¼ÅŁ", + "ĠпÑĢи гоÑĤов", + "ĠпÑĢиг оÑĤов", + "Ġk iÅŁi", + "Ġki ÅŁi", + "ĠkiÅŁ i", + "ØŃ Øª", + "Ġ ë²ķ", + "Ġë² ķ", + "é£ Ľ", + "Ġit ibar", + "Ġг лав", + "Ġгла в", + "Ġor tam", + "Ġort am", + "Ġorta m", + "Ġm add", + "Ġma dd", + "Ġmad d", + "Ġ оÑģÑĤав", + "Ġо ÑģÑĤав", + "ĠоÑģÑĤ ав", + "ĠÙģÙĪ تباÙĦ", + "ĠÙģÙĪت باÙĦ", + "Ġan laÅŁ", + "l eyen", + "le yen", + "ley en", + "ç ´Ģ", + "ç´ Ģ", + "Ġ é£", + "Ġé £", + "/ lo", + "/l o", + "Ùħ ÙĪÙĦ", + "ÙħÙĪ ÙĦ", + "Ġд ÑĥÑħ", + "ĠдÑĥ Ñħ", + "Ġ ÙĦب", + "ĠÙĦ ب", + "л ег", + "ле г", + "Ġgö nder", + "Ġgön der", + "ÙĬ Ø·", + "Ġ สำ", + "Ġส ำ", + "Ġv ás", + "Ġvá s", + "ĠÐŁ еÑĤ", + "а лоÑģÑı", + "ало ÑģÑı", + "ì ¿ł", + "ì¿ ł", + "éĻ ½", + "åĸ ®", + "èĪ ŀ", + "н Ñĥл", + "нÑĥ л", + "ÄŁ ine", + "ÄŁi ne", + "ÄŁin e", + "Ġ ghi", + "Ġg hi", + "Ġgh i", + "Ġ çµ", + "Ġç µ", + "ÙĬ ÙĨÙĬ", + "ÙĬÙĨ ÙĬ", + "Å ½", + "Ġhük üm", + "ĠD Ä±ÅŁ", + "ĠÎŃ Ïĩει", + "ĠÎŃÏĩ ει", + "Ġ Ñģка", + "ĠÑģ ка", + "ĠÑģк а", + "Ġ ÑĤим", + "ĠÑĤ им", + "ĠÑĤи м", + "Ġп оÑģÑĤав", + "Ġпо ÑģÑĤав", + "ĠпоÑģÑĤ ав", + "à¸Ļ าà¸Ķ", + "à¸Ļา à¸Ķ", + "d ül", + "dü l", + "Ġd va", + "Ġdv a", + "Ġ à¸Ħà¸Ļ", + "Ġà¸Ħ à¸Ļ", + "Ġchá»ĭ u", + "Ġ èı", + "Ġè ı", + "à¹ģส à¸Ķà¸ĩ", + "æ° £", + "Ġ íĪ¬", + "Ġí Ī¬", + "Ġ Ñĩин", + "ĠÑĩ ин", + "ĠÑĩи н", + "ãģ« ãģĬ", + "ен ноÑģÑĤи", + "енно ÑģÑĤи", + "ÐIJ ÐĿ", + "Ġh emen", + "Ġhe men", + "Ġhem en", + "Ġ ait", + "Ġa it", + "Ġai t", + "Ġ à¤Ĭ", + "ĠठĬ", + "æī §", + "ĠA BD", + "ĠAB D", + "Ġκα θ", + "æ´ Ľ", + "ãĤ¢ ãĥ«", + "à¹ī าà¸Ĺ", + "à¹īา à¸Ĺ", + "ÅĻ ez", + "ÅĻe z", + "d ÄĽji", + "dÄĽ ji", + "Ġt á»ĭch", + "еннÑı м", + "Ġв ÑģÑĤанов", + "ĠвÑģÑĤ анов", + "ĠاÙĦ بر", + "ĠاÙĦب ر", + "ÙĪÙħ تر", + "k ách", + "ká ch", + "åº Ĭ", + "л Ñĥж", + "лÑĥ ж", + "Ġ تد", + "Ġت د", + "ä¸ ½", + "ر Ø®", + "à¤Ĥ à¤ĸ", + "èĩªå·± çļĦ", + "å®ĺ ç½ij", + "- Ñı", + "à¹ĩ à¸Ķ", + "èĦ ļ", + "Ġ çķ", + "Ġç ķ", + "Ġiçer isinde", + "Ġb iá»ĥn", + "Ġbi á»ĥn", + "Ġ à¸ģล", + "Ġà¸ģ ล", + "Ġy aÄŁ", + "Ġya ÄŁ", + "Ġ æ´", + "Ġæ ´", + "Ġ бÑĢа", + "Ġб ÑĢа", + "ع ار", + "عا ر", + "æĪ °", + "à¥Ģ Ċ", + "Ġlé Äį", + "a ların", + "alar ın", + "aları n", + "Ġ Îĸ", + "ĠÎ ĸ", + "а ÑĢÑı", + "аÑĢ Ñı", + "ãģĿ ãĤĵãģª", + "ÅĪ uje", + "ãĢĢ Ġ", + "ĠsaÄŁ lık", + "Ġдо ÑģлÑĸд", + "ĠдоÑģ лÑĸд", + "ÃŃ Å¡", + "à¥įर श", + "à¥ī न", + "Ġgi ả", + "بÙĪ اسطة", + "å® ģ", + "Ġs oud", + "Ġso ud", + "Ġsou d", + "Ġк ÑĤо", + "e sel", + "es el", + "ese l", + "Ġп ам", + "Ġпа м", + "Ġ ÂłĠ", + "ĠÂł Ġ", + "ĠÄį lov", + "æ· ·", + "ห à¸į", + "ĠOs man", + "æ ¦Ĥ", + "æ¦ Ĥ", + "Ġ åĭ", + "Ġå ĭ", + "ï¼Į åħ¶", + "Ġ à¸Ħร", + "Ġà¸Ħ ร", + "Ġmá» ģm", + "Ġ ÑģоÑĢ", + "ĠÑģ оÑĢ", + "ĠÑģо ÑĢ", + "çĨ ±", + "Ġthu ê", + "ر ج", + "à¹Ĥล à¸ģ", + "Ġ íķĺê³ł", + "Ġíķĺ ê³ł", + "ÙĬ دة", + "ÙĬد Ø©", + "ĠaÅŁ aģı", + "Ġk á»ĥ", + "Ġká» ĥ", + "à¸ķ ำ", + "λ ει", + "λε ι", + "çļĦ è¯Ŀ", + "æ± ł", + "ĠÑģ ÑĤен", + "ĠÑģÑĤ ен", + "Ġin cel", + "Ġinc el", + "Ġince l", + "åº Ń", + "ÑĤ оÑĩ", + "ÑĤо Ñĩ", + "Ġprob lém", + "Ġprobl ém", + "ÏĦ Ïĥ", + "à¹ī à¸Ńà¸Ļ", + "à¹īà¸Ń à¸Ļ", + "ë³´ ëĭ¤", + "Ġà¤Ĩ à¤Ĺ", + "ν αÏĤ", + "να ÏĤ", + "ãģĦ ãĤĭ", + "Ġd ục", + "Ġdụ c", + "Ġtoho to", + "Ġtoh oto", + "ëIJĺ ìĹĪëĭ¤", + "ëIJĺìĹĪ ëĭ¤", + "T J", + "Ġви знаÑĩ", + "ĠB unun", + "ĠBu nun", + "ĠBun un", + "ĠBunu n", + "à¤Ĥ बर", + "à¤Ĥब र", + "ĠÙĩÙħÚĨ ÙĨÛĮÙĨ", + "Ġб Ñİдж", + "Ñĥ ÑĢг", + "ÑĥÑĢ г", + "äº ®", + "Ġμε γ", + "Ġtop lum", + "Ġtopl um", + "ãģ£ ãģ", + "о ÑĤо", + "оÑĤ о", + ": |", + "éĿŀ 常", + "ิ à¸Ĺà¸ĺ", + "ิà¸Ĺ à¸ĺ", + "éģ ķ", + "âĢĮÙ¾ دÛĮ", + "Ġз ÑĢоб", + "à¹Į à¸Ķ", + "Ġдолж ен", + "Ġдол жен", + "ĠmÄĽ sta", + "ĠmÄĽst a", + "ÛĮ Ø´Ùĩ", + "ÛĮØ´ Ùĩ", + "v atel", + "va tel", + "vat el", + "Ġprov oz", + "Ġ inan", + "Ġin an", + "Ġi nan", + "à¤Ĥ प", + "Ġpar ç", + "ÑĢ аÑģÑĤ", + "ÑĢа ÑģÑĤ", + "ÑĢаÑģ ÑĤ", + "üm ü", + "Ġgi á»ijng", + "Ġgiá» ijng", + "æ¬ ¢", + "Ø« ÙĬر", + "ĠB akan", + "ĠBa kan", + "ĠBak an", + "Ġ âĪ¨", + "ĠâĪ ¨", + "Ġ باÙĨ", + "Ġب اÙĨ", + "Ġبا ÙĨ", + "Û± Û¸", + "Û±Û ¸", + "ãĤĤ ãģĨ", + "land ı", + "lan dı", + "Ġyen iden", + "Ġyeni den", + "ÑĨ енÑĤ", + "ÑĨе нÑĤ", + "ÑĨен ÑĤ", + "Ġде ÑıÑĤелÑĮ", + "Ð ©", + "Ġ rov", + "Ġr ov", + "Ġro v", + "å®Į åħ¨", + "ĠK ỳ", + "s lu", + "sl u", + "Ġl ấy", + "é¤ IJ", + "ĠÑĩ олов", + "ä¼ Ŀ", + "ĠbaÅŁ v", + "å° Ī", + "ê³ ¡", + "ãĢģ ãģĿãĤĮ", + "Ġ PÅĻÃŃ", + "ĠP ÅĻÃŃ", + "ĠPÅĻ ÃŃ", + "д ем", + "де м", + "ĠпÑĢо ек", + "ร à¸ĸ", + "建 设", + "Ġмож лив", + "æ® º", + "ãģ¡ãĤĥ ãĤĵ", + "æķ ij", + "ĠÄį ty", + "ĠÄįt y", + "é¦ Ĩ", + "о ÑĢÑĥ", + "оÑĢ Ñĥ", + "Ġ æĦ", + "Ġæ Ħ", + "Ġk ÃŃch", + "λ οÏħ", + "λο Ïħ", + "ãģĦ ãģ¤", + "Ġc Äĥn", + "ĠcÄĥ n", + "Ạµ", + "Ġel de", + "éº »", + "ÄŁ e", + "Ġdo bÄĽ", + "Ġdob ÄĽ", + "ा यर", + "ाय र", + "Ġ ãĥı", + "Ġãĥ ı", + "н ен", + "не н", + "Ġmůže te", + "Ġmůž ete", + "Ġна ÑģÑĤÑĥп", + "ĠнаÑģÑĤ Ñĥп", + "ìĭľ ê°Ħ", + "ĠÑģим пÑĤом", + "Ġ ÏĥÏį", + "ĠÏĥ Ïį", + "Ġ سÙĦ", + "Ġس ÙĦ", + "ε κ", + "ร à¸ĵ", + "á te", + "át e", + "ek ler", + "ekl er", + "ĠвÑĢем ени", + "ĠвÑĢемен и", + "âĢĮ ÙĩاÛĮÛĮ", + "âĢĮÙĩاÛĮ ÛĮ", + "ãģĬ ãĤĬ", + "ж и", + "Ñĭ ваеÑĤÑģÑı", + "Ñĭв аеÑĤÑģÑı", + "Ñĭва еÑĤÑģÑı", + "ÑĭваеÑĤ ÑģÑı", + "Ùħ اÙĨÛĮ", + "ÙħاÙĨ ÛĮ", + "Ùħا ÙĨÛĮ", + "à¸ķ ล", + "Ġ صد", + "Ġص د", + "Ġ вол", + "Ġв ол", + "Ġво л", + "ìĬ Ī", + "ĠÙĥ Ùħا", + "ĠÙĥÙħ ا", + "Ġnh ằm", + "èģ ¯", + "ov acÃŃ", + "ova cÃŃ", + "Ġë§Į ëĵ¤", + "ÙĪ Ù¾", + "Ġ ë¸Į", + "Ġë¸ Į", + "ب ÙĬØ©", + "بÙĬ Ø©", + "u yla", + "uy la", + "л ено", + "лен о", + "ле но", + "èĮ ¶", + "ÑĢ ей", + "ÑĢе й", + "Ġk li", + "Ġkl i", + "Ġüzer inden", + "Ġüzerinde n", + "н еÑĤ", + "не ÑĤ", + "r aÄį", + "ra Äį", + "ĠпÑĢа ÑĨÑİ", + "Ġed iyor", + "Ġedi yor", + "ãģı ãģł", + "Ġ Äįast", + "ĠÄį ast", + "ĠÄįas t", + "i yi", + "iy i", + "éĬ Ģ", + "Ġd ù", + "Ùİ Ø¨", + "ÙĪ ÙĬØ©", + "ÙĪÙĬ Ø©", + "å ª", + "Ġs ınıf", + "Ġsın ıf", + "Ġس اعت", + "Ġ ราย", + "Ġร าย", + "Ġза Ñıв", + "Ġg ặp", + "à¸Ń ว", + "ĠØ« Ùħ", + "ĠZ á", + "ĠвÑĸд к", + "i zik", + "iz ik", + "izi k", + "Ġm ón", + "Ġmó n", + "Ġпов ÑĭÑĪ", + "Ġ à¸ļาà¸Ĺ", + "Ġà¸ļ าà¸Ĺ", + "ĠÑģ ил", + "ĠÑģи л", + "æĥħ åł±", + "Âł t", + "ĠÐľ оÑģк", + "Ġê²ĥ ìĿ´ëĭ¤", + "Ġê²ĥìĿ´ ëĭ¤", + "Ġ çIJ", + "Ġç IJ", + "ĠÙħدÛĮر ÛĮت", + "ов оÑĹ", + "ово ÑĹ", + "Τ ο", + "çº ª", + "нÑĸ ÑĪе", + "нÑĸÑĪ е", + "Ġ ÐĽÑİ", + "ĠÐĽ Ñİ", + "η Ïĥη", + "ĠÙĨسب ت", + "ĠÙĨس بت", + "m uz", + "mu z", + "ร ว", + "ãĢģ ãģĤ", + "Ġбол ез", + "Ġtr ách", + "ãĥ ¦", + "à¹Ģà¸Ĥ า", + "Ġê·¸ ëĬĶ", + "ب رÛĮ", + "بر ÛĮ", + "æł ª", + "ëĿ¼ ìĿ´", + "Ġ íĮ¨", + "Ġí Į¨", + "ĠíĮ ¨", + "íĬ ¹", + "ľ ´", + "ि ड", + "िठ¡", + "ÑĢо ме", + "ÑĢом е", + "è® ²", + "Ġ ÑĤон", + "ĠÑĤ он", + "ĠÑĤо н", + "Ñģ Ñĸ", + "Ġ ç®", + "Ġç ®", + "åıĸ ãĤĬ", + "ì° °", + "Ġ ÙĪÙĦÛĮ", + "ĠÙĪ ÙĦÛĮ", + "ĠÙĪÙĦ ÛĮ", + "Ġس Ø·ØŃ", + "èı ľ", + "н ами", + "на ми", + "нам и", + "T ürk", + "åİ Ĥ", + "Ġf inan", + "Ġfin an", + "Ġfi nan", + "ãģ« ãģªãĤĭ", + "ãģ«ãģª ãĤĭ", + "Ġ oby", + "Ġo by", + "Ġob y", + "T rong", + "Tr ong", + "Tro ng", + "Ġv yp", + "Ġvy p", + "à¥ģ ड", + "à¥ģठ¡", + "ìŀIJ ê°Ģ", + "Ġ æīĢ", + "Ġæī Ģ", + "ÐĹ Ð°", + "um lu", + "uml u", + "ëĵ Ŀ", + "Ġм енÑĸ", + "Ġмен Ñĸ", + "ол ниÑĤелÑĮ", + "олн иÑĤелÑĮ", + "Ġú Äįin", + "ĠúÄį in", + "Ġb unun", + "Ġbu nun", + "Ġbun un", + "Ġbunu n", + "ĠÐłÐ¾Ñģ Ñģии", + "в ÑģÑı", + "Ġн Ñĸж", + "ĠнÑĸ ж", + "ิà¸Ķ à¸ķ", + "غ Ø©", + "Ä ļ", + "Ġ سÙħ", + "Ġس Ùħ", + "Ġ Ðĺз", + "ĠÐĺ з", + "à¥ĩ प", + "à¥ĩठª", + "大 çļĦ", + "ì¹ ľ", + "Ġ иÑģÑĤ", + "Ġи ÑģÑĤ", + "ĠиÑģ ÑĤ", + "Ġкон ÑģÑĤÑĢÑĥк", + "Û± Û²", + "Û±Û ²", + "â l", + "Ġ ÑĪиÑĢ", + "ĠÑĪ иÑĢ", + "ĠÑĪи ÑĢ", + "ï¼ ł", + "Ġar tık", + "Ġart ık", + "æŁ ĵ", + "ä¹ ¡", + "ÃŃ te", + "ÃŃt e", + "ĠNh áºŃt", + "ĠÎĶ η", + "Ġöl ç", + "êµ ´", + "о Ñıн", + "оÑı н", + "ëĵ± ë¡Ŀ", + "Ġng ân", + "Ġ бÑĥдÑĮ", + "ĠбÑĥд ÑĮ", + "ÎŁ Ρ", + "ÎŁÎ ¡", + "ì ´", + "Ùħ ÙĪد", + "ÙħÙĪ د", + "ν ον", + "νο ν", + "Îķ ÎĿ", + "çij ŀ", + "ĠÅĻ ek", + "ĠÅĻe k", + "- âĢIJ", + "ĠM erk", + "ĠMe rk", + "ĠMer k", + "Ġоп ÑĢедел", + "ĠопÑĢед ел", + "Ïģ ιν", + "Ïģι ν", + "л аб", + "ла б", + "ëĦ¤ ìļĶ", + "Ġб лиз", + "Ġбл из", + "Ġбли з", + "Ġph á»iji", + "Ġphá»ij i", + "Ġдолж нÑĭ", + "ĠÑį кÑģп", + "ĠÑįк Ñģп", + "à¸ļ à¸Ĺ", + "à¸Ľà¸£à¸° ส", + "ĠÙ¾Úĺ ÙĪÙĩ", + "Ġ íķľëĭ¤", + "Ġíķľ ëĭ¤", + "ÏĦ οÏį", + "ÏĦο Ïį", + "Ùĩ ÙĨ", + "Ġд од", + "Ġдо д", + "Ġk ayı", + "Ġka yı", + "Ġkay ı", + "Ł ģ", + "Ñģ иÑı", + "Ñģи Ñı", + "à¤Ĥ तर", + "à¤Ĥत र", + "Ġpod nik", + "e vi", + "ev i", + "ÛĮ ÛĮر", + "Т ак", + "Та к", + "к оп", + "ко п", + "н аÑħ", + "на Ñħ", + "ا سÙĩ", + "اس Ùĩ", + "à¸ĵ à¸ij", + "Ġk há", + "Ġkh á", + "Ġy arat", + "Ġya rat", + "Ġyar at", + "ĠاÛĮÙĨ Ú©Ùĩ", + "Ø· بÙĬ", + "طب ÙĬ", + "Ġs ır", + "Ġsı r", + "ĠØ¢ÙħرÛĮÚ© ا", + "Ġ बल", + "Ġब ल", + "k aç", + "ka ç", + "Ġ åı¯", + "Ġåı ¯", + "Ġ åħ¶", + "Ġåħ ¶", + ". ***", + ".* **", + "л ÑĸннÑı", + "лÑĸн нÑı", + "ä¹ ±", + "o q", + "æ ¦", + "ãĤ ¼", + "Ġf ır", + "Ġk ê", + "Ġìłľ ê³µ", + "Ġ Ïĥη", + "ĠÏĥ η", + "а нÑĭ", + "ан Ñĭ", + "н ова", + "но ва", + "нов а", + "à¸Ĭ าย", + "ĠØ· ÙĪÙĦ", + "à¥Ī य", + "Ġ ì¹ľ", + "Ġì¹ ľ", + "ìĤ ´", + "Ġп Ñĸв", + "Ġlu áºŃn", + "Ġà¤ī म", + "åº ĥ", + "à¹ĩ à¸Ńà¸ķ", + "Ġس اÛĮت", + "л Ñıн", + "лÑı н", + "ĠíķĦ ìļĶ", + "Ġgör ül", + "ĠÑĤеÑĢ иÑĤоÑĢ", + "ĠÙĨ ØŃ", + "е ма", + "ем а", + "Ġmn oh", + "Ġ ãģ¯", + "غ ÙĬر", + "ĠÑģдел аÑĤÑĮ", + "ç ģµ", + "çģ µ", + "Ġ ÐłÐ°Ð·", + "ĠÐł аз", + "ĠÐłÐ° з", + "Ġг еÑĢ", + "Ġге ÑĢ", + "γ μα", + "íķĺ ë©´", + "ĠdeÄŁ iÅŁtir", + "ĠdeÄŁiÅŁ tir", + "ãĥ³ ãĥĨ", + "ãĥ³ãĥ Ĩ", + "å¸Ĥ åľº", + "个 人", + "ìĥ Ī", + "ì¹ ¨", + "èī º", + "ÙĤ ت", + "ĠÚ¯ رÙģتÙĩ", + "ĠگرÙģ تÙĩ", + "Ġگر ÙģتÙĩ", + "ĠگرÙģت Ùĩ", + "Ġ çİĭ", + "Ġçİ ĭ", + "ĠاÙĦ Ø°Ùĩ", + "ĠاÙĦØ° Ùĩ", + "λ Ïħ", + "à¤ľ र", + "Ġв ним", + "ë¦ Ń", + "ิ à¸Ĺ", + "Ġ شاÙĩ", + "ĠØ´ اÙĩ", + "æĬķ èµĦ", + "æĿIJ æĸĻ", + "ĠÙĨ Ùģ", + "èª ¬", + "æĬ Ĺ", + "Ġ аб", + "Ġа б", + "iy eti", + "iye ti", + "iyet i", + "ç¾ ħ", + "ÑĢ Ñĸз", + "ÑĢÑĸ з", + "Ġ สม", + "Ġส ม", + "i cÃŃ", + "ic ÃŃ", + "к ÑĥваннÑı", + "кÑĥ ваннÑı", + "Ġ ìķ¼", + "Ġìķ ¼", + "Ġ è½", + "Ġè ½", + "âĢ «", + "Ġ διά", + "Ġδ ιά", + "Ġδι ά", + "Ġд еп", + "Ġде п", + "ãĥ¼ ãĤ¿", + "ãĥ¼ãĤ ¿", + "Ġob jev", + "Ġobj ev", + "mé na", + "Ġbe lg", + "Ġbel g", + "Ġ æ¥", + "Ġæ ¥", + "Ġn á»ģn", + "Ġг ол", + "Ġpost av", + "Ġpo stav", + "Ġت Ú©", + "Ð «", + "ĠпÑĸд ÑĤ", + "ĠоÑĤ ноÑĪ", + "Ġп ÑĢив", + "ĠпÑĢ ив", + "ĠпÑĢи в", + "Ġ åŁº", + "ĠåŁ º", + "Ġн али", + "Ġна ли", + "Ġнал и", + "ů ž", + "Ġ yat", + "Ġy at", + "Ġya t", + "ÅŁ a", + "ÏĦ ήÏĤ", + "ÏĦή ÏĤ", + "ÑĨ ем", + "ÑĨе м", + "次 æķ°", + "Ġb Ãł", + "ÙĪ Ùĥ", + "Ġ íĶĦë¡ľ", + "ĠíĶĦ ë¡ľ", + "ĠPh áp", + "Ġ êµ°", + "Ġêµ °", + "è³ ŀ", + "Ġoch ran", + "Ġgere kir", + "Ġgerek ir", + "Ġ íļ", + "Ġí ļ", + "à¸ļ ล", + "á me", + "ám e", + "Ġ بÛĮر", + "Ġب ÛĮر", + "ĠبÛĮ ر", + "à¸Ĥ าย", + "ов аний", + "ова ний", + "овани й", + "ован ий", + "Ġmož né", + "âĶģâĶģâĶģâĶģ âĶģâĶģâĶģâĶģ", + "á lu", + "ál u", + "н ÑĤ", + "¦ æĥħ", + "à¹ģ รม", + "ĠÑĦ Ñĸн", + "ĠÄ° ç", + "à¹Ī à¸Ńย", + "à¹Īà¸Ń ย", + "ê² ¨", + "Ġh edef", + "Ġhe def", + "Ġhed ef", + "ĠاÙĦ ÙħØ´", + "ĠاÙĦÙħ Ø´", + "à¹ī าม", + "à¹īา ม", + "å¯ Ħ", + "Ġ ëĭµ", + "Ġëĭ µ", + "Ġ ô", + "Ġà ´", + "ла ÑģÑı", + "лаÑģ Ñı", + "Ä° T", + "à¸Ķ ำ", + "Ġher hangi", + "Ġger eken", + "Ġgere ken", + "Ġgerek en", + "е ÑĢеж", + "еÑĢ еж", + "еÑĢе ж", + "ÙĪ Ø©", + "ĠpÅĻ est", + "ĠpÅĻes t", + "ĠpÅĻe st", + "ç§ij åѦ", + "оÑģÑĤ аÑĤ", + "ün den", + "ünd en", + "ünde n", + "åĮħ æĭ¬", + "Ġد Ùĩد", + "ĠدÙĩ د", + "ÑĪ иÑģÑĮ", + "ÑĪи ÑģÑĮ", + "н еÑĢ", + "не ÑĢ", + "Ñĸ дом", + "Ñĸд ом", + "Ġb iç", + "Ġbi ç", + "ìĭ Ń", + "Ġhod not", + "Ġze mÄĽ", + "Ġzem ÄĽ", + "ĠاÛĮ جاد", + "Ġy ine", + "Ġyi ne", + "ि ण", + "िठ£", + "ĠاÙĦ بÙĦ", + "ĠاÙĦب ÙĦ", + "ĠN ÄĽ", + "Ġpol ož", + "Ġpo lož", + "Ġpolo ž", + "éĺħ 读", + "å¸ ģ", + "å¼ Ł", + "ξ ε", + "Ġ Má»Ļt", + "ĠM á»Ļt", + "ç £", + "Û±Û³ Û¹", + "ĠØ¢ ز", + "ãģ ŀ", + "Ġм еÑħ", + "ย ม", + "Ġ æ¨", + "Ġæ ¨", + "Ġo tur", + "Ġot ur", + "Ġd ầu", + "Ġ ëĭ¤ìļ´", + "Ġëĭ¤ ìļ´", + "çĮ «", + "Ġ Có", + "ĠC ó", + "Ġli dÃŃ", + "Ġlid ÃŃ", + "Ġark adaÅŁ", + "Ġα λλά", + "é¡ »", + "ĠÙĩ ÙħÛĮÙĨ", + "ĠÙĩÙħ ÛĮÙĨ", + "è» ¢", + "Ġ âĹĭ", + "ĠâĹ ĭ", + "ëıĦ ë¡Ŀ", + " ĥ", + "âĢĮØ´ دÙĩ", + "âĢĮشد Ùĩ", + "ĠØŃ ÙĬØ«", + "ĠØŃÙĬ Ø«", + "Ġnh óm", + "Ïĥ Ïĩ", + "ĠÑĤÑĢан Ñģп", + "ĠÑĤÑĢанÑģ п", + "Ġtan ım", + "Ġtanı m", + "ç´ į", + "Ġba his", + "Ġbah is", + "ä¸ ¾", + "Ġин ÑĦоÑĢма", + "ĠинÑĦоÑĢм а", + "ĠÑģ лож", + "ĠÑģл ож", + "ĠÑģло ж", + "Ġk raj", + "Ġkr aj", + "Ġkra j", + "Ġ ØŃÙĦ", + "ĠØŃ ÙĦ", + "Ġ ãĥĸ", + "Ġãĥ ĸ", + "ĠÙĨ ÙĤÙĦ", + "ĠÙĨÙĤ ÙĦ", + "Ġ ÐłÐ¾Ð·", + "ĠÐł оз", + "ĠÎij Ïħ", + "lar dı", + "ĠÙ¾ اس", + "Ġپا س", + "Ġ ìĭĿ", + "Ġìĭ Ŀ", + "ĠìłĦìļ© ë©´ìłģ", + "ĠاÙĦ سÙĬ", + "ĠاÙĦس ÙĬ", + "با شد", + "باش د", + "ศ าสà¸ķร", + "Ġk öy", + "Ġkö y", + "Ġ rok", + "Ġr ok", + "Ġro k", + "Ġ 죽", + "Ġì £½", + "Ġì£ ½", + "ĠÑģ ог", + "ĠÑģо г", + "Ġch ú", + "éĺ ª", + "ĠÄįást i", + "ĠÄįá sti", + "Ġз веÑĢ", + "Ġзв еÑĢ", + "Ġ низ", + "Ġн из", + "Ġни з", + "ĠÃ¶ÄŁ ret", + "Ġ ãĥİ", + "Ġãĥ İ", + "п е", + "çĴ °", + "Ġ èª", + "Ġè ª", + "ÙĪ ÙĦÙĩ", + "ÙĪÙĦ Ùĩ", + "Ä° M", + "/ REC", + "/R EC", + "å¡ ŀ", + "ĠÐĴ и", + "/l oose", + "/lo ose", + "Ġп оÑħ", + "Ġпо Ñħ", + "Ġgen iÅŁ", + "Ġth iá»ĩn", + "Ġthi á»ĩn", + "ti ÄŁi", + "Ñĩ ие", + "Ñĩи е", + "о нд", + "он д", + "Ġп ÑĢиÑģ", + "ĠпÑĢ иÑģ", + "ĠпÑĢи Ñģ", + "áz ky", + "ĠDev let", + "ç¦ ģ", + "Ġ аг", + "Ġа г", + "i lere", + "il ere", + "ile re", + "iler e", + "ин кÑĥ", + "Ġvar dı", + "ãĢĢ ãĢĢãĢĢĠãĢĢ", + "ãĢĢãĢĢ ãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢ ĠãĢĢ", + "Ġë ĨĴ", + "ĠëĨ Ĵ", + "à¤Ĥ पन", + "à¤Ĥप न", + "Ġözel lik", + "éļ ľ", + "ìĸ´ ìĦľ", + "ر ÙĬÙĥ", + "رÙĬ Ùĥ", + "ÙĪ بÛĮ", + "ÙĪب ÛĮ", + "ãĥ³ ãĥĢ", + "ãĥ³ãĥ Ģ", + "í Į¨", + "íĮ ¨", + "Ġसम à¤Ŀ", + "ï¾Ĩï¾Ĩ ï¾Ĩï¾Ĩ", + "Ġ ÙģÙĨ", + "ĠÙģ ÙĨ", + "ॠĿ", + "Ġuv eden", + "ÑĪ ими", + "ÑĪи ми", + "ÑĪим и", + "Ġ à¹Ģล", + "Ġà¹Ģ ล", + "Ġà¹Ģภ¥", + "Ġ 문ìĿĺ", + "Ġ문 ìĿĺ", + "ĠØŃ Ø±Ùģ", + "ĠØŃر Ùģ", + "Ġ عب", + "Ġع ب", + "ãĥ¬ ãĥĵ", + "Ġ æŃ£", + "ĠæŃ £", + "ĠëĺIJ ëĬĶ", + "ĠÚ©ÙĨ ÙĨدÙĩ", + "ĠÚ©ÙĨÙĨد Ùĩ", + "Ġα ÏħÏĦÏĮ", + "ĠαÏħ ÏĦÏĮ", + "Ġ 길", + "Ġê¸ ¸", + "Ġif ade", + "Ġi fade", + "Ġifad e", + "Ġyap mak", + "ãĥķ ãĤ©", + "ãĥķãĤ ©", + "Ġm ẹ", + "Ġst rán", + "Ġstr án", + "Ġs vou", + "Ġsv ou", + "Ġsvo u", + "Ġv ždy", + "Ġtek rar", + "ิ à¸į", + "Ġ ìĵ°", + "Ġì ĵ°", + "Ġìĵ °", + "o ÄŁu", + "oÄŁ u", + "Ġ Ú©ÛĮÙĦ", + "ĠÚ© ÛĮÙĦ", + "ĠÚ©ÛĮ ÙĦ", + "и вÑģÑı", + "ив ÑģÑı", + "Ġë§IJ íĸĪëĭ¤", + "ä¸ Ŀ", + "à¤ı स", + "ĠÑģÑĤ ÑĢаÑħ", + "ĠÑģÑĤÑĢ аÑħ", + "ĠÑģÑĤÑĢа Ñħ", + "Ġsou Äįas", + "Ġê·¸ 룰", + "Ġ mÃ¼ÅŁ", + "Ġm Ã¼ÅŁ", + "Ġmü ÅŁ", + "λ οÏį", + "λο Ïį", + "γ Ïī", + "Ġt Æ°á»Łng", + "Ġ å·¥", + "Ġå· ¥", + "Ġ اسÙħ", + "Ġا سÙħ", + "Ġاس Ùħ", + "ÑĢ Ñĸм", + "ÑĢÑĸ м", + "à¹Ģ à¸Ľà¸¥", + "à¹Ģà¸Ľ ล", + "Ġ³³ Ġ³³", + "Ùĩ اÛĮÛĮ", + "ÙĩاÛĮ ÛĮ", + "å¯ º", + "Ġس رÛĮ", + "Ġسر ÛĮ", + "Ġк ваÑĢ", + "Ġкв аÑĢ", + "ĠØ´Ùħ ارÙĩ", + "ĠØ´Ùħا رÙĩ", + "Ġ صØŃ", + "Ġص ØŃ", + "о ÑģÑĤав", + "оÑģÑĤ ав", + "ॠ¨", + "Ġ à¸Ħวาม", + "Ġà¸Ħ วาม", + "í ĥģ", + "íĥ ģ", + "éĢ Ĥ", + "ب ØŃ", + "ĠdeÄŁiÅŁ ik", + "éĮ ²", + "е ди", + "ед и", + "Ġ okol", + "Ġo kol", + "Ġok ol", + "ĠÑģ оп", + "ĠÑģо п", + "Ġol mayan", + "Ġolm ayan", + "Ġolma yan", + "çŃ ij", + "Û± Û´", + "Û±Û ´", + "Ġ inclu", + "Ġinc lu", + "Ġincl u", + "Ġ ê²ĮìŀĦ", + "Ġê²Į ìŀĦ", + "ÛĮ ستÙħ", + "ÛĮست Ùħ", + "ÛĮس تÙħ", + "Ġ ç©", + "Ġç ©", + "ĠاÙĦÙĪÙĦ اÙĬات", + "il mektedir", + "ilm ektedir", + "à Į", + "Ùİ Ø¹", + "ĠaÄŁ ır", + "è¡ Ľ", + "Ġe ski", + "Ġes ki", + "Ġesk i", + "ê° Ŀ", + "본 ëĭ¤", + "人 åijĺ", + "Úĺ ÛĮ", + "Ġ ç¨", + "Ġç ¨", + "Ġм еÑģÑĤо", + "ĠмеÑģÑĤ о", + "v ů", + "à¥įर ह", + "ĠØ· رØŃ", + "Ġطر ØŃ", + "Ġا بÙĨ", + "Ġاب ÙĨ", + "Ġh iss", + "Ġhis s", + "Ġhi ss", + "о ÑĢÑıд", + "оÑĢ Ñıд", + "Ġد Ùģ", + "ÑĢ иÑģÑĤ", + "ÑĢи ÑģÑĤ", + "ÑĢиÑģ ÑĤ", + "à¸Ĭ ม", + "д еÑĤ", + "де ÑĤ", + "à¹Ģ หม", + "à¹Ģห ม", + "ë§Ī ìĤ¬ì§Ģ", + ": .:.:", + ":. :.:", + ":.: .:", + "éħ ¸", + "Ġα ÏģÏĩ", + "ĠαÏģ Ïĩ", + "Ġn ữ", + "ĠпоÑģ ад", + "l um", + "lu m", + "ì º", + "ãģ§ãģį ãĤĭ", + "ìĸ µ", + "ĠاÙĦ Ùħد", + "ĠاÙĦÙħ د", + "н Ñĸм", + "нÑĸ м", + "ر اÙĤ", + "را ÙĤ", + "Ġ ãĥĪ", + "Ġãĥ Ī", + "Ġod povÄĽ", + "Ġodp ovÄĽ", + "Ġbir bir", + "Ġh ãy", + "Ġhã y", + "о вий", + "ов ий", + "ови й", + "æ® ĭ", + "éĥ½ æĺ¯", + "è¿ ª", + "Ġa raç", + "Ġar aç", + "Ġara ç", + "ен ÑĤÑĸв", + "енÑĤ Ñĸв", + "æĬ ±", + "d ál", + "ĠÄIJ ông", + "Ġhe sap", + "Ġhes ap", + "Ġا ÙĨساÙĨ", + "ĠاÙĨ ساÙĨ", + "ĠÙĬ ÙĪÙħ", + "ĠÙĬÙĪ Ùħ", + "ĠÙĨ ÙĪر", + "ĠÙĨÙĪ ر", + "åī ĩ", + "çĹ Ľ", + "Ġ ÙĨÙĬ", + "ĠÙĨ ÙĬ", + "алÑĮ на", + "تب اط", + "ल ब", + "Ġkom un", + "Ġko mun", + "Ġs nad", + "Ġsn ad", + "Ġsna d", + "åĽ £", + "ر ÙĬد", + "رÙĬ د", + "elop ment", + "Ġ иÑİ", + "Ġи Ñİ", + "à¥Ģ .", + "Ġkıs a", + "Ġkı sa", + "ĠdeÄŁil dir", + "ĠdeÄŁildi r", + "à¹ī าร", + "à¹īา ร", + "Ġsv ého", + "Ġsvé ho", + "Ġobl asti", + "Ġoblast i", + "ÑĪ ли", + "à¹Ģà¸Ĺ à¸ŀ", + "ÑĢ еÑĤÑĮ", + "ÑĢе ÑĤÑĮ", + "ÑĢеÑĤ ÑĮ", + "о во", + "ов о", + "Ġ íĤ¤", + "Ġí Ĥ¤", + "ĠíĤ ¤", + "át ky", + "ĠاÙĦ Ùģر", + "ĠاÙĦÙģ ر", + "èĺ Ń", + "ÏĦ ον", + "ÏĦο ν", + "ĠÑģÑĤ оиÑĤ", + "ĠÑģÑĤо иÑĤ", + "Ùħ ØŃ", + "Ġ à¹Ħ", + "Ġà ¹Ħ", + "ĠÑĤе бе", + "ĠÑĤеб е", + "íģ ´", + "Ġm ÄĽla", + "ĠmÄĽ la", + "ĠmÄĽl a", + "æݧ åĪ¶", + "ĠCh ủ", + "ìĬ ¨", + "ÐIJ Т", + "ا جع", + "اج ع", + "ìĻ ķ", + "ç© ¿", + "ол ее", + "ห ลาย", + "หล าย", + "Ġd vou", + "Ġdv ou", + "Ġ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "ุ à¸Ĥ", + "Ġb oz", + "Ġbo z", + "ิ à¸Ļà¸Ħ", + "ิà¸Ļ à¸Ħ", + "å¤ Ł", + "Ġfa aliyet", + "ĠÄį ÃŃs", + "ãģ» ãģ©", + "Ġ :/", + "Ġ: /", + "к ÑĸÑģÑĤÑĮ", + "кÑĸ ÑģÑĤÑĮ", + "Ġ ì¤Ģ", + "Ġì¤ Ģ", + "Ïģ αÏĤ", + "Ïģα ÏĤ", + "Ġод но", + "æ ¢ħ", + "æ¢ ħ", + "Ñĥб ли", + "н оз", + "но з", + "à¹Į ม", + "Ġvý rob", + "Ġvýro b", + "Ġ κÏħ", + "Ġκ Ïħ", + "ÅĻ ev", + "ÅĻe v", + "Âł B", + "ů že", + "ůž e", + "ä¼ļ 社", + "ι β", + "ÑĢ ованиÑı", + "ÑĢов аниÑı", + "ÑĢо ваниÑı", + "ÑĢован иÑı", + "ÑĢова ниÑı", + "Ġc ev", + "Ġce v", + "ìĽ Ģ", + "ál nÃŃch", + "áln ÃŃch", + "álnÃŃ ch", + "Ġ ÑĢав", + "ĠÑĢ ав", + "ĠÑĢаР²", + "ĠÑĢа в", + "ç´ §", + "åĢ Ł", + "Ġ ÑŁ", + "ĠÑ Ł", + "ÙĪ ÙĨÙĬ", + "ÙĪÙĨ ÙĬ", + "о зÑı", + "оз Ñı", + "Ġз ов", + "Ġk olem", + "Ġko lem", + "Ġkol em", + "Ġkole m", + "민 êµŃ", + "ç¿ Ĵ", + "Ġzam ÄĽst", + "Ġ ìłij", + "Ġìł ij", + "Ġ زÙĨ", + "Ġز ÙĨ", + "ĠØ£ Ùģ", + "Ġ 먹", + "Ġë¨ ¹", + "Ġtom to", + "Ġ 첨ë¶Ģ", + "Ġì² ¨ë¶Ģ", + "s age", + "sa ge", + "ä¸į è¿ĩ", + "е год", + "ег од", + "его д", + "ÑĢ ож", + "ÑĢо ж", + "ĠпÑĢоÑĨ ед", + "à¹Į à¸Ļ", + "san ız", + "âĢŀ Ø·", + "æ´» åĬ¨", + "о Ñĩки", + "оÑĩ ки", + "ë³´ 기", + "åŁº æľ¬", + "- Ñħ", + "ло ÑģÑı", + "ĠÙĩÛĮ ÚĨ", + "ìĹ Ķ", + "Ñĩ ного", + "Ñĩно го", + "Ġ à¤Ĺर", + "Ġà¤Ĺ र", + "Ġà¤ħ à¤Ĺ", + "ãħĭãħĭ ãħĭãħĭ", + "Ġ ãĤ¸", + "ĠãĤ ¸", + "ا سة", + "اس Ø©", + "åĬ ĩ", + "à¹ī à¸ĩ", + "Ġ 커", + "Ġì» ¤", + "n ými", + "ný mi", + "ným i", + "ãĥ¬ ãĤ¹", + "åĭ Ĵ", + "Ġобла ÑģÑĤÑĸ", + "ĠоблаÑģ ÑĤÑĸ", + "ĠоблаÑģÑĤ Ñĸ", + "ĠдÑĸÑıлÑĮ ноÑģÑĤÑĸ", + "ãĥ¬ ãĤ¤", + "Ïĩ αν", + "Ïĩα ν", + "à¹Ī าส", + "à¹Īา ส", + "ĠФ ÑĢан", + "Ùĩ ÙĦ", + "l ardır", + "lar dır", + "lardı r", + "ØŃ Ø§Øª", + "ů st", + "Ġв одÑĭ", + "Ġво дÑĭ", + "Ġвод Ñĭ", + "ĠدÙĪ ÙĦت", + "ĠدÙĪÙĦ ت", + "ĠÑģпе ÑĨÑĸ", + "Ġth ất", + "à¸Ń าหาร", + "éł ĺ", + "Ġter cih", + "ĠÏĢÏģο Ïĥ", + "Ġ ÅĻÃŃzenÃŃ", + "ĠÅĻÃŃ zenÃŃ", + "è§ī å¾Ĺ", + "Ġd nes", + "Ġdn es", + "Ġdne s", + "е Ñĩно", + "еÑĩ но", + "ãĥ ĺ", + "Ġدار اÛĮ", + "ĠÅŁ art", + "ĠÅŁar t", + "ë² ¤", + "Ġ ë¶ģ", + "Ġë ¶ģ", + "Ġë¶ ģ", + "е Ñı", + "н ÑıÑĤÑĮ", + "нÑı ÑĤÑĮ", + "нÑıÑĤ ÑĮ", + "Ġk vÄĽt", + "Ġkv ÄĽt", + "Ġتغ ÛĮÛĮر", + "é¾ į", + "Ġر ÙĨÚ¯", + "ï¼Į åı¯", + "Ġp iyas", + "Ġpi yas", + "Ġuyg ulan", + "Ġuygu lan", + "Ùİ Ø©", + "ب ÙĬر", + "بÙĬ ر", + "и ваÑĤÑĮ", + "ив аÑĤÑĮ", + "ива ÑĤÑĮ", + "Ġ íĹĪ", + "ĠíĹ Ī", + "ä¸ ¶", + "è¿Ļ äºĽ", + "Ġ گر", + "ĠÚ¯ ر", + "ç½ ª", + "ä¸Ģ æł·", + "Ġ ãĥª", + "Ġãĥ ª", + "Ġв ой", + "Ġво й", + "Ġs osyal", + "Ġsos yal", + "ุ à¸Ĺà¸ĺ", + "ุà¸Ĺ à¸ĺ", + "หม à¸Ķ", + "ç» Ŀ", + "ĠاÙĦ جÙħ", + "ĠاÙĦج Ùħ", + "ĠØ« بت", + "Ġج ÙĨÚ¯", + "ĠجÙĨ Ú¯", + "л ении", + "лен ии", + "ле нии", + "в аÑı", + "ва Ñı", + "Ġв оÑĤ", + "Ġво ÑĤ", + "ä¼ ¤", + "Ġ หล", + "Ġห ล", + "ĠÙħÙĤ اÙĦÙĩ", + "мÑĸ нÑĸ", + "мÑĸн Ñĸ", + "ìĺ ¬", + "Ñĩ ий", + "Ñĩи й", + "ĠÙħ Ú©", + "à¹Ĥ à¸Ľà¸£", + "à¹Ĥà¸Ľ ร", + "k rv", + "kr v", + "Ġ ÃŃch", + "ĠÃŃ ch", + "Ïī Ïĥη", + "ек ÑĤоÑĢ", + "екÑĤ оÑĢ", + "Я к", + "Ġp ÃŃs", + "ĠÃĸ zel", + "ĠÃĸz el", + "Ġt Æ°á»Ľng", + "Ġ ÐĶо", + "ĠÐĶ о", + "δ ιο", + "δι ο", + "ู à¸Ķ", + "Ġt ük", + "رÛĮ ÙĤ", + ". ÐĴ", + "Ġ åIJĪ", + "ĠåIJ Ī", + "ä¿ Ĥ", + "Ġob dob", + "Ġist edi", + "ÑĪ ла", + "æľī ä¸Ģ", + "Ġвк лÑİÑĩа", + "ĠвклÑİÑĩ а", + "ĠتØŃ ÙĤÛĮÙĤ", + "Ġ ÙĪÙĥ", + "ĠÙĪ Ùĥ", + "Ġ èĪ", + "Ġè Ī", + "Æ Ĵ", + "μ εÏģ", + "με Ïģ", + "Ġ åģ", + "Ġå ģ", + "Ġ ìĹĨëĬĶ", + "ĠìĹĨ ëĬĶ", + "Âł d", + "ĠB ắc", + "à¸ģล าà¸ĩ", + "ĠÑĩ Ñĥв", + "Ġc ấu", + "ĠH á»ĵ", + "ĠHá» ĵ", + "ĠÙģ اÛĮÙĦ", + "ÏĦη γοÏģ", + "ç± į", + "Ġ بت", + "Ġب ت", + "ĠобÑĢаз ом", + "æ± ī", + "èĦ ij", + "Ġgi ản", + "Ġgiả n", + "ε Ïģγ", + "εÏģ γ", + "ĠÐľ Ñĸ", + "èĻ½ çĦ¶", + "Ġ Khi", + "ĠK hi", + "ĠKh i", + "Ñĩ ини", + "Ñĩи ни", + "Ñĩин и", + "Ġà¤ħ à¤Ĺर", + "Ġà¤ħà¤Ĺ र", + "íķĺ ë©°", + "ë² Ķ", + "ãģ ģ", + "в иÑħ", + "ви Ñħ", + "ĠвÑģ егда", + "Ġ ç¶", + "Ġç ¶", + "ÑģÑĤв енной", + "ÑģÑĤвен ной", + "ÑģÑĤвенно й", + "Ġyük sel", + "æ¸ ¬", + "Ġsı ras", + "Ġsır as", + "Ġsıra s", + "ĠÏĢ ÏģÏİ", + "èĢ ³", + "ا ÛĮر", + "اÛĮ ر", + "د ÙĪد", + "دÙĪ د", + "ĠAl man", + "ĠAlma n", + "Ġver di", + "Ġverd i", + "ĠاÙĦ Ùħج", + "ĠاÙĦÙħ ج", + "ĠاÙĦ تع", + "ĠاÙĦت ع", + "ص Ø©", + "Ġsı ra", + "Ġsır a", + "Äį in", + "Äįi n", + "Ġп еÑĢÑĪ", + "ĠпеÑĢ ÑĪ", + "æĬ ĺ", + "ç© į", + "ĠÑĤ об", + "ĠÑĤо б", + "Ġ ï¾ī", + "Ġï¾ ī", + "ภ¬", + "æĿ Ģ", + "iy di", + "ี à¸ŀ", + "çĵ ¦", + "ĠавÑĤом об", + "ä¸Ń æĸĩ", + "à¥Ĥ द", + "ĠbÄĽ hem", + "Ġ PÅĻed", + "ĠP ÅĻed", + "ĠPÅĻ ed", + "ãģĵ ãģĨ", + "ั à¸Ī", + "Ġ ï½Į", + "Ġï½ Į", + "Ġ ÙĩاÙĬ", + "ĠÙĩ اÙĬ", + "ĠÙĩا ÙĬ", + "Ġs ạch", + "æĸ¹ éĿ¢", + "çķ °", + "ÑĥÑĢ н", + "Ġvý sled", + "Ġth ần", + "ï¼Į æīĢ以", + "Ñĥ ка", + "Ñĥк а", + "íķĺ ëĭ¤", + "Ġ बर", + "Ġब र", + "Ġж Ñĸн", + "Äį nÃŃho", + "ÄįnÃŃ ho", + "Ġ ãģĮ", + "ab ı", + "v ánÃŃ", + "vá nÃŃ", + "æ´ Ĺ", + "Ġи ÑģÑĤоÑĢ", + "ĠиÑģ ÑĤоÑĢ", + "ĠиÑģÑĤ оÑĢ", + "ìĿ´ íĦ°", + "Ġе лек", + "а лаÑģÑı", + "ала ÑģÑı", + "Ġ znám", + "Ġz nám", + "Ġzn ám", + "ĠØ· رÙģ", + "Ġطر Ùģ", + "Ġs ektör", + "ê¹ Ģ", + "ÙĪ ÙĤع", + "ÙĪÙĤ ع", + "ĠÙħ Ùĥ", + "ÑĢе жд", + "ÑĢеж д", + "Ġk nih", + "Ġkn ih", + "Ġت عداد", + "Ġتع داد", + "Ġتعد اد", + "åį ł", + "ÑģÑĮ ке", + "ÑģÑĮк е", + "Ġ çĶµ", + "京 éĥ½", + "Ġر اÛĮ", + "Ġرا ÛĮ", + "g ın", + "gı n", + "ĠÙĨ ظاÙħ", + "ĠÙĨظ اÙħ", + "ĠÎł ολ", + "ĠÎłÎ¿ λ", + "ä¸Ģ èĪ¬", + "Ġst ále", + "Ġstál e", + "ĠиÑģ Ñģлед", + "Ġz práv", + "Ġzp ráv", + "Ġ ÑĩиÑģÑĤ", + "ĠÑĩ иÑģÑĤ", + "ĠÑĩиÑģ ÑĤ", + "ĠÑĩи ÑģÑĤ", + "ãĥ¼ ãĥŀ", + "ãĥ¼ãĥ ŀ", + "Ðŀ Ñģ", + "ÑģÑĮ комÑĥ", + "ÑģÑĮк омÑĥ", + "ÑģÑĮко мÑĥ", + "ĠpÅĻi prav", + "ĠpÅĻip rav", + "ëĮĢ íĸī", + "Ġh alk", + "Ġha lk", + "Ġhal k", + "çĪ Ĩ", + "ãĢģ ãģĬ", + "ï¼Ł âĢĿĊĊ", + "ï¼ŁâĢĿ ĊĊ", + "éĢ ı", + "ç« ŀ", + "ни ÑĨÑĮ", + "ниÑĨ ÑĮ", + "çĽ ĺ", + "à¹Ģ à¸Ńà¸ĩ", + "à¹Ģà¸Ń à¸ĩ", + "ì Łģ", + "à¥ĩव ल", + "ä¹ĭ åIJİ", + "ãĥ« ãĥĪ", + "Ġ stru", + "Ġs tru", + "Ġst ru", + "Ġstr u", + "Ġ _", + "Ġï¼ ¿", + "Îķ ÎĽ", + "h le", + "hl e", + "ĠÙĨ ÙĪØ´", + "ĠÙĨÙĪ Ø´", + "ìĿ µ", + "ĠÙħ Ùģ", + "æĪĸ èĢħ", + "Ġö ld", + "Ġöl d", + "éĢ Ķ", + "ãĥ³ ãĥĹ", + "ãĥ³ãĥ Ĺ", + "íĺ ¼", + "Ġu ÄŁ", + "ĠÄij á", + "Ġvlast nÃŃ", + "ĠÙħج ÙĦس", + "åį Ķ", + "ÏĦ ικήÏĤ", + "ÏĦικ ήÏĤ", + "ÏĦική ÏĤ", + "Ġpo vin", + "Ġpov in", + "ů l", + "ĠاÙĦ ØŃÙĬ", + "ĠاÙĦØŃ ÙĬ", + "Ġsm lou", + "ãĥĥ ãĥģ", + "Ġ ÙĥÙĨ", + "ĠÙĥ ÙĨ", + "Ġch ấp", + "èIJ ¬", + "ج ب", + "? âĢľ", + "д ав", + "да в", + "ร วม", + "รว ม", + "Ùİ Ø¯", + "ĠاÙĦد ÙĪÙĦ", + "ĠëĦ¤ ìĿ´íĬ¸", + "Ġà¤Ĩ स", + "ظ ÙĬÙģ", + "ãĥ¼ ãĥ©", + "ãĥ¼ãĥ ©", + "ãģł ãĤįãģĨ", + "ĠÙĪاØŃ Ø¯", + "ĠÙĪا ØŃد", + "ر ÙĪس", + "رÙĪ س", + "Ġzákon a", + "ĠпеÑĢ еб", + "ĠпеÑĢе б", + "à¥Ģ -", + "à¹Ī à¹Ħà¸Ķ", + "为 äºĨ", + "ÎĻ ÎĿ", + "ĠìĽĶ ìĦ¸", + "ส à¸Ńà¸ĩ", + "Ġ æīĭ", + "Ġæī ĭ", + "Ġ ÐĴÑģе", + "ĠÐĴ Ñģе", + "ĠÐĴÑģ е", + "à¹Ĥ ย", + "Ġkal dır", + "Ġkaldı r", + "ÏĦ ÎŃÏĤ", + "ÏĦÎŃ ÏĤ", + "Ġ ï¿£", + "Ġ íĸĪëĭ¤", + "Ġíĸ Īëĭ¤", + "ĠíĸĪ ëĭ¤", + "ãĤģ ãģŁ", + "Ġ Äįer", + "ĠÄį er", + "ĠÄįe r", + "c ela", + "ce la", + "cel a", + "üs ü", + "ê³ ³", + "ìĹIJ ëıĦ", + "ز Ø©", + "ãģª ãĤĭ", + "ÙĪ ÛĮÙĨ", + "ÙĪÛĮ ÙĨ", + "çī Ľ", + "Ġ voj", + "Ġv oj", + "Ġvo j", + "Ġ ëĬIJ", + "ĠëĬ IJ", + "Ġ ÙĥÙħ", + "ĠÙĥ Ùħ", + "æ³ ī", + "з Ñı", + "è£ Ŀ", + "ĠØ¢ ÙĦ", + "Ġ ανά", + "Ġα νά", + "Ġαν ά", + "Âł ÐĴ", + "Ġyap ıl", + "Ġyapı l", + "æı Ľ", + "ĠÑģ ÑĥÑīеÑģÑĤв", + "ĠÑģÑĥ ÑīеÑģÑĤв", + "ĠÑģÑĥÑīе ÑģÑĤв", + "Ġn á»iji", + "ÙĪ ئ", + "ĠëĦ¤ìĿ´íĬ¸ ìĺ¨", + "Ġpolit ik", + "Å¡ ka", + "Å¡k a", + "ebilir siniz", + "ld kf", + "Ñĥб лÑĸ", + "Ġe oq", + "Ġeo q", + "ĠÙħØŃ ØµÙĪÙĦ", + "krv ldkf", + "Ġeoq krvldkf", + "Ïĥε Ïīν", + "بÙĦ غ", + "Įĵ ê¸Ģ", + "ĠÑģ ÑĢок", + "ĠU y", + "ĠN ÄĽk", + "ĠNÄĽ k", + "Ġ див", + "Ġд ив", + "Ġди в", + "ãĤµ ãĤ¤", + "Ġ ìĤ¬ìĿ´", + "ĠìĤ¬ ìĿ´", + "Ġ éĹ", + "Ġé Ĺ", + "Ġб аÑĤÑĮ", + "Ġба ÑĤÑĮ", + "Ġп еÑĢÑĸ", + "ĠпеÑĢ Ñĸ", + " ĸ", + "交 éĢļ", + "ен з", + "ÙĪ ست", + "ÙĪس ت", + "ีย à¸ļ", + "Ġ à¸Īะ", + "Ġà¸Ī ะ", + "ë¡ Ģ", + "üf us", + "Ùij ÙIJ", + "ç¸ ½", + "ัà¸Ķ ส", + "ê² Ģ", + "ĠÑĤ иÑħ", + "ĠÑĤи Ñħ", + "ĠØ¢ زÙħ", + "Ġآز Ùħ", + "Ġ اض", + "Ġا ض", + "ĠØ§Ø ¶", + "ì ¡´", + "ì¡ ´", + "ÙĴ ت", + "æĪ ¸", + "ĠìŀĪ ìĿĦ", + "Ġ çĶ·", + "Ñī Ñĸ", + "о ма", + "ом а", + "ĠاÙģز اÛĮØ´", + "Ġ Thông", + "ĠTh ông", + "ĠاجتÙħاع ÛĮ", + "е лÑİ", + "ел Ñİ", + "ĠÑħоÑĢоÑĪ о", + "à¸ł าษ", + "Ġ rám", + "Ġr ám", + "Ġrá m", + "å¾ ¡", + "ãĥ¼ ãĥĦ", + "ãĥ¼ãĥ Ħ", + "ĠL Ỽp", + "Ġ Ø´ÙĬ", + "ĠØ´ ÙĬ", + "Ġh iá»ĥm", + "Ġhi á»ĥm", + "θ ν", + "ο ÏħÏĥ", + "οÏħ Ïĥ", + "å¾ ©", + "Ġú zem", + "à¹ģ à¸ľ", + "å ·¨", + "å· ¨", + "à¸Ī à¸Ļ", + "Ú¯ راÙĨ", + "گر اÙĨ", + "Ġت ÛĮÙħ", + "ĠتÛĮ Ùħ", + "Ġ ilet", + "Ġi let", + "Ġil et", + "Ġile t", + "า à¸Ĥà¸Ńà¸ĩ", + "าà¸Ĥ à¸Ńà¸ĩ", + "Ġ تÙĪر", + "Ġت ÙĪر", + "ĠتÙĪ ر", + "Ġдо говоÑĢ", + "Ġдог овоÑĢ", + "Ġдогов оÑĢ", + "Ġt ento", + "Ġten to", + "Ġtent o", + "в Ñĥ", + "Ġз ада", + "Ġза да", + "Ġзад а", + "Ġstole tÃŃ", + "Ġstol etÃŃ", + "Âł Ġ", + "âĢĮ اÙĦ", + "Ë ĺ", + "ÅŁ iv", + "ÅŁi v", + "н ÑıÑĤи", + "нÑı ÑĤи", + "нÑıÑĤ и", + "ãĤī ãĤĮãģŁ", + "ãĤīãĤĮ ãģŁ", + "ĠS b", + "ĠاÙĦÙħ ص", + "ĠУкÑĢаÑĹ Ð½Ñĸ", + "ĠУкÑĢаÑĹн Ñĸ", + "ĠØ´ Ú©", + "iế ng", + "iến g", + "ÑĮ ÑĤе", + "è° ¢", + "ĠÙħ تÙĨ", + "ĠÙħت ÙĨ", + "Ġ ÑĢад", + "ĠÑĢ ад", + "ĠÑĢаР´", + "ĠÑĢа д", + "ĠÙħÙĪ اد", + "ì± Ħ", + "é¡ ¶", + "Ġbo ÅŁ", + "ت ÙĪر", + "تÙĪ ر", + "ĠÄij áng", + "ĠÄijá ng", + "Ġkit ap", + "Ġki tap", + "Ġkita p", + "Ġho din", + "Ġhod in", + "Ġtarih i", + "ãĤĦ ãĤĭ", + "Ñģ ÑĤеÑĢ", + "ÑģÑĤ еÑĢ", + "ÑģÑĤе ÑĢ", + "Ġ Ñħод", + "ĠÑħ од", + "в ание", + "ва ние", + "ван ие", + "ĠоÑģ вÑĸ", + "ĠÑģиÑģÑĤем Ñĭ", + "़ न", + "Ïĩ ο", + "Ġ åı°", + "Ġåı °", + "o ÅĻ", + "ç»ı æµİ", + "Ġ ä½ľ", + "Ġthu áºŃn", + "Ľ Ī", + "Ġy alnız", + "a let", + "al et", + "ale t", + "ì¦Ŀ ê¸Ī", + "Ġза Ñī", + "Ġе кÑģп", + "Ġек Ñģп", + "âĦĸ âĦĸ", + "Ġ ãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢ", + "ĠãĢĢĠ ãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ĠÚ¯ ÙĪØ´", + "ĠÚ¯ÙĪ Ø´", + "ãģ« åħ¥", + "Ġu dÄĽl", + "Ġud ÄĽl", + "Ġ áº", + "Ġá º", + "à¤Ĩ à¤Ī", + "âĢĮ دÙĩ", + "âĢĮد Ùĩ", + "æĤ ª", + "Ġtr ò", + "æļ Ĺ", + "λλ ην", + "λλη ν", + "ĠпÑĢи зна", + "ĠпÑĢиз на", + "Ġس ÛĮستÙħ", + "ĠسÛĮ ستÙħ", + "Ġà¤ħ त", + "è o", + "è¿ İ", + "Ġз Ñĥб", + "ĠзаÑģ об", + "Ġس Ùģ", + "ĠÙħاÙĨ ÙĨد", + "Ø® Ø´", + "v ajÃŃ", + "va jÃŃ", + "nit ÅĻ", + "æ¯ Ĵ", + "æ¤ į", + "Ġgir iÅŁ", + "ĠÄij áp", + "ĠÄijá p", + "@ n", + "ов аÑĢи", + "оваÑĢ и", + "ова ÑĢи", + "ĠØ® دا", + "Ġخد ا", + "Ġv ÄĽtÅ¡", + "ĠvÄĽt Å¡", + "ĠΣ Ïħ", + "Ùģ Ø©", + "аннÑı м", + "ĠÑĩ лен", + "æĶ¯ æĮģ", + "å¨ ľ", + "lar arası", + "lara rası", + "Ρ Îij", + "Ġz iy", + "Ġzi y", + "Ġ êµIJìľ¡", + "ĠêµIJ ìľ¡", + "Ġh á»ĵi", + "Ġhá»ĵ i", + "าà¸Ħ าร", + "าà¸Ħา ร", + "im leri", + "imler i", + "è³ ¼", + "ĠجÙĩ اÙĨ", + "ĠÑĢоз мÑĸ", + "Ñħ Ñĸв", + "γ ε", + "æ¨ ª", + "ÎĻ ÎijΣ", + "ÎĻÎij Σ", + "ç¶ Ń", + "Ġbi raz", + "Ġbir az", + "ĠÑĤак ого", + "ĠÑĤа кого", + "íĥ Ħ", + "ĠбÑĥд ÑĥÑĤ", + "ĠбÑĥ дÑĥÑĤ", + "ĠбÑĥдÑĥ ÑĤ", + "ĠÑĪ вид", + "Ġ неÑģ", + "Ġн еÑģ", + "Ġне Ñģ", + "ĠÙħ عÙĦÙĪÙħات", + "ĠÙħعÙĦ ÙĪÙħات", + "à¥ĩ यर", + "à¥ĩय र", + "Ġдв ÑĥÑħ", + "å¿ħ è¦ģ", + "å§ Ĩ", + "Ġpo hled", + "Ġpoh led", + "ìĬ¤ íĦ°", + "Ġ åįģ", + "Ġåį ģ", + "ĠØ£ ب", + "веÑĢ дж", + "веÑĢд ж", + "Ġà¤ľ म", + "ल त", + "åľ° åĮº", + "Ġ |[", + "Ġ| [", + "Ġв меÑģÑĤ", + "ĠÚ© اÙħ", + "Ġ ãĥIJ", + "Ġãĥ IJ", + "ãĥ¼ ãĥĸ", + "ãĥ¼ãĥ ĸ", + "ãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "Ġ ìĥģíĴĪ", + "Ġìĥģ íĴĪ", + "à¹Ģล ย", + "Äį né", + "ĠÑģÑĢед ÑģÑĤва", + "ĠÑģÑĢедÑģÑĤв а", + "Ġ ÑĤаб", + "ĠÑĤ аб", + "ĠÑĤа б", + "Ġ Ùħار", + "ĠÙħ ار", + "ĠÙħا ر", + "Ġ hled", + "Ġh led", + "Ġhl ed", + "д аÑĤ", + "да ÑĤ", + "ÙĪ ÛĮد", + "ÙĪÛĮ د", + "Ġ ãĥ©", + "Ġãĥ ©", + "ĠØ® د", + "è¤ ĩ", + "ç§ ĺ", + "Ġ برد", + "Ġب رد", + "Ġبر د", + "ĠÏĥ αÏĤ", + "Ïİ ÏĥειÏĤ", + "æĿ ¯", + "λ Ïį", + "å® ¿", + "Ġ ëĤľ", + "ĠëĤ ľ", + "ï» Ł", + "Ġözel likle", + "Ġözellik le", + "Ġкон Ñģ", + "ĠÙħ غ", + "ع ÙĬ", + "à¹Į à¸ģ", + "Ġ ÙĬت", + "ĠÙĬ ت", + "ĠÙħ شاÙĩ", + "ĠÙħØ´ اÙĩ", + "ĠTh anh", + "ĠThan h", + "ा à¤ľà¤¨", + "à¤¾à¤ľ न", + "¥ ¤", + "Ġv lá", + "Ġvl á", + "ĠÙģ ض", + "Τ ÎĻÎļ", + "Ġна Ñĥков", + "ĠнаÑĥк ов", + "е лем", + "ел ем", + "еле м", + "Ġd Ãłng", + "ĠгоÑģп одаÑĢ", + "Âł S", + "и ÑĩеÑģкиÑħ", + "иÑĩеÑģ киÑħ", + "иÑĩеÑģки Ñħ", + "ĠتÙĨ Ùĩا", + "à¤ľ न", + "Ġп ан", + "Ġпа н", + "åĨ ł", + "Ġ ëĤĺëĬĶ", + "ĠëĤĺ ëĬĶ", + "t ÃŃ", + "ä¸Ģ èµ·", + "Ġlã nh", + "Âł v", + "ov ým", + "ový m", + "ز ب", + "ĠجÙħع ÛĮت", + "Ġ æµ·", + "Ġæµ ·", + "ĠоÑģ ÑĥÑīеÑģÑĤв", + "à £i", + "ã i", + "ائ ر", + "Ġ ë³ij", + "Ġë³ ij", + "á»ĭ nh", + "Ġs á»Ńa", + "Ġsá»Ń a", + "à¥ĩà¤Ĥ ।", + "ÄĽ jÅ¡ÃŃ", + "ÄĽj Å¡ÃŃ", + "Ġд ÑĸÑĤ", + "ĠдÑĸ ÑĤ", + "Ġ æĥ", + "Ġæ ĥ", + "mÄ±ÅŁ tı", + "ر ØŃ", + "Ġì§Ģ ê¸Ī", + "å¦ »", + "âĹ ĭ", + "Ġ ì§ĢìĹŃ", + "Ġì§Ģ ìĹŃ", + "ÙĴ ÙĨ", + "Ġur Äįit", + "ĠurÄį it", + "ÙĴ Ùħ", + "z ÃŃ", + "è ķ", + "Ġ Ø´ÙĪر", + "ĠØ´ ÙĪر", + "ĠØ´ÙĪ ر", + "Ġ Không", + "ĠKh ông", + "ÛĮ زÛĮ", + "ÛĮز ÛĮ", + "Ġз г", + "Ġв не", + "Ġpr ávÄĽ", + "Ġprá vÄĽ", + "Ġpráv ÄĽ", + "è« ĭ", + "ا ÙĬت", + "اÙĬ ت", + "ั à¸ģร", + "ัà¸ģ ร", + "Ġolduk ça", + "ãĤģ ãĤĭ", + "ĠT ây", + "ëĿ¼ ìĿ¸", + "èĻ ķ", + "Ġs Æ°", + "Ġ ник", + "Ġн ик", + "Ġни к", + "Ù ł", + "اش ÛĮÙĨ", + "اشÛĮ ÙĨ", + "e lerde", + "el erde", + "eler de", + "ìĭľ ìķĦ", + "Ġ Ñĥмов", + "ĠÑĥ мов", + "ĠÑĥм ов", + "ĠçalÄ±ÅŁ an", + "Ġ ë¸Ķ", + "Ġë¸ Ķ", + "ĠÑĤак им", + "ĠÑĤа ким", + "ÑĢ ин", + "ÑĢи н", + "Ġ Ø®ÙĦ", + "ĠØ® ÙĦ", + "a yd", + "ay d", + "Ġ ãĥ¡", + "Ġãĥ ¡", + "ей ÑĩаÑģ", + "Ġdo prav", + "Ġdop rav", + "ãģĵ ãģ¨ãģ¯", + "ãģĵãģ¨ ãģ¯", + "Ġ ì¶Ķì²ľ", + "Ġì¶Ķ ì²ľ", + "å» ¶", + "Ġ kı", + "Ġk ı", + "åı ¶", + "ÑĢ иг", + "ÑĢи г", + "íħ ľ", + "çĶ³ åįļ", + "Ġ веÑĤ", + "Ġв еÑĤ", + "Ġве ÑĤ", + "ĠпомоÑī ÑĮÑİ", + "ĠاÙģ راد", + "ĠاÙģر اد", + "ÏĢ ει", + "ÏĢε ι", + "à¹Ģ สร", + "à¹Ģส ร", + "Ġgi ám", + "Ġgiá m", + "é İ", + "h las", + "hl as", + "man ız", + "manı z", + "ан гл", + "анг л", + "Ġmu ž", + "Âł K", + "ÑĢед иÑĤ", + "ÑĢеди ÑĤ", + "设 å¤ĩ", + "ι Ïĥμ", + "ιÏĥ μ", + "Ġc ải", + "Ġcả i", + "Ġ éĢļ", + "ĠéĢ ļ", + "Ġ Ùĥار", + "ĠÙĥ ار", + "Ġпод об", + "ĠмеÑĤ ал", + "ĠÑģам е", + "л ÑĥÑĩ", + "лÑĥ Ñĩ", + "åĤ ³", + "ĠÙĪÙĩ ÙĪ", + "Ġ éĩį", + "Ġéĩ į", + "в ий", + "ви й", + "æ³ ģ", + "Ġ æĿİ", + "ĠæĿ İ", + "ĠiliÅŁ kin", + "ĠiliÅŁk in", + "Ġεί Ïĩε", + "çĬ ¯", + "ÅĻej mÄĽ", + "èŃ ĺ", + "ç¨ ±", + "μ μα", + "μμ α", + "Ġ ÙĦÛĮ", + "ĠÙĦ ÛĮ", + "Ùĩ اÙĬ", + "Ùĩا ÙĬ", + "Ġ опиÑģ", + "Ġо пиÑģ", + "Ġоп иÑģ", + "Ú¯ رد", + "گر د", + "Ġг ÑĢ", + "ĠAnimal ia", + "ĠAnim alia", + "ÐŁ о", + "Ġb óng", + "ĠдеÑĤ ей", + "Ġl âu", + "Ġ æķĻ", + "Ġæķ Ļ", + "Ġпо ÑıÑģ", + "ĠاÙĦ Ø¢", + "ั à¸Ļà¸ķ", + "ัà¸Ļ à¸ķ", + "Ġд ев", + "Ġде в", + "Ġ ÑĨей", + "ĠÑĨ ей", + "ĠÑĨе й", + "ÑĮ в", + "æĥ ł", + "m aları", + "ma ları", + "mal arı", + "malar ı", + "im ler", + "à¥Ī ।ĊĊ", + "à¥Ī। ĊĊ", + "à¥Ī।Ċ Ċ", + "Ġ ном", + "Ġн ом", + "Ġно м", + "z v", + "Ġ à¸ģร", + "Ġà¸ģ ร", + "Ġpay laÅŁ", + "Âł s", + "ि सम", + "िस म", + "ÑģÑĤв еннÑĭÑħ", + "ÑģÑĤвен нÑĭÑħ", + "st oup", + "sto up", + "о нÑĸ", + "он Ñĸ", + "s tÃŃ", + "st ÃŃ", + "ĠØŃ Ú©", + "ĠÚ¯ رÙģت", + "ĠگرÙģ ت", + "Ġگر Ùģت", + "าà¸Ħ า", + "д Ñı", + "ÙĦ اث", + "ÙĦا Ø«", + "Ġzdrav ot", + "ä¸Ĭ ãģĴ", + "ãģ ¼", + "e lere", + "el ere", + "eler e", + "ele re", + "ظ Ùħ", + "ĠÑģ веÑĤ", + "ĠÑģв еÑĤ", + "о ÑĢг", + "оÑĢ г", + "ç« ¥", + "ĠпеÑĢ еп", + "ĠпеÑĢе п", + "Ġम द", + "а за", + "аз а", + "å¦Ĥ ä½ķ", + "ÑģÑĮ кÑĸй", + "ÑģÑĮк Ñĸй", + "ÑģÑĮкÑĸ й", + "Ġb Æ°á»Ľc", + "Ġger ekli", + "Ġgerek li", + "大 家", + "Ġtr ái", + "éģ ©", + "ä¸Ń 央", + "Ġph ản", + "Ġع رض", + "ĠÙĥ تاب", + "æĭ ©", + "ÑĪ его", + "ÑĪе го", + "å¸ ®", + "ĠÙĨÛĮ از", + "è¿ ·", + "ุ à¸Ľ", + "ิ à¸Ľ", + "Ġد Ø®", + "ÏĦ ικÎŃÏĤ", + "ÏĦικ ÎŃÏĤ", + "ĠU z", + "Ġت ÙĪÙħاÙĨ", + "ĠتÙĪ ÙħاÙĨ", + "ĠتÙĪÙħ اÙĨ", + "ĠÙĪ اÙĦØ£", + "ĠÙĪاÙĦ Ø£", + "ÅĻ es", + "ÅĻe s", + "Ñij м", + "Ġ å¸Ĥ", + "Ġå¸ Ĥ", + "ĠÑĤ оже", + "ĠÑĤо же", + "Ġy apan", + "Ġya pan", + "Ġyap an", + "å½¼ 女", + "ĠÙħ در", + "ĠÙħد ر", + "¶ ģ", + "Ġ æŶ", + "ĠæĹ ¶", + "à¹Ģ à¸ĺ", + "à¹Ģภĺ", + "Ġ ÙħاÙĦ", + "ĠÙħ اÙĦ", + "ĠÙħا ÙĦ", + "ĠB üyük", + "ĠBü yük", + "Ġ ÙĦت", + "ĠÙĦ ت", + "å° ļ", + "d eme", + "de me", + "dem e", + "ü b", + "ĠÑħ Ñĥд", + "Ġlé ka", + "çĽ Ľ", + "缴 æİ¥", + "ниÑĨÑĤ ва", + "ĠпÑĢи Ñĩин", + "ĠпÑĢиÑĩ ин", + "е ÑĢап", + "еÑĢ ап", + "еÑĢа п", + "ĠÑģозд а", + "ĠÑģоз да", + "æ ¢°", + "æ¢ °", + "Ġm üz", + "Ġmü z", + "ç³» åĪĹ", + "o uz", + "ou z", + "Ġà¤ĵ र", + "ÑĢ ÑĥÑĩ", + "ÑĢÑĥ Ñĩ", + "Ġ á½", + "Ġá ½", + "μÎŃ Î½Î±", + "μÎŃν α", + "ĠпÑĢед меÑĤ", + "Ġ å²", + "Ġå ²", + "ãĥ³ ãĥģ", + "ãĥ³ãĥ ģ", + "μÎŃ Î½Î·", + "μÎŃν η", + "л Ñĥг", + "лÑĥ г", + "Âł n", + "ĠT arih", + "ĠTar ih", + "Ġ ãĢĪ", + "ĠãĢ Ī", + "Ġb ana", + "Ġban a", + "Ġba na", + "Ġ cÃŃ", + "Ġc ÃŃ", + "Ġvý kon", + "åĽł æѤ", + "Ġt ÅĻi", + "ĠtÅĻ i", + "า à¸ĭ", + "าภĭ", + "v ailable", + "vail able", + "Ġ istem", + "Ġis tem", + "Ġi stem", + "Ġist em", + "ãĥ¥ ãĥ¼", + "Ðķ ÐĿ", + "Ġ гаÑĢ", + "Ġг аÑĢ", + "οÏħ λ", + "ॠĽ", + "ĠÙĪ ضع", + "ส ะ", + "è· Ŀ", + "ĠØŃ Ùģ", + "ิà¸Ĺย าล", + "ิà¸Ĺยา ล", + "她 çļĦ", + "н ÑĸÑĪ", + "нÑĸ ÑĪ", + "ж ение", + "же ние", + "жен ие", + "기 ìĹIJ", + "Ġ éĺ¿", + "Ġéĺ ¿", + "ĠÙħ ارس", + "ĠÙħا رس", + "ĠÙħار س", + "ĠçeÅŁit li", + "Ġ ÅŁehir", + "ĠÅŁ ehir", + "ĠÅŁeh ir", + "á tor", + "át or", + "à¹ī à¸Ĺ", + "ìĿ´ ëĬĶ", + "Ġ è²", + "Ġè ²", + "é¡ į", + "ç ĻĤ", + "çĻ Ĥ", + "Ġ ниÑĩ", + "Ġн иÑĩ", + "Ġни Ñĩ", + "Ġ ê°Ģì§Ģ", + "Ġê°Ģ ì§Ģ", + "ä¼ ¦", + "r án", + "rá n", + "o stat", + "os tat", + "ost at", + "osta t", + "Ġ ÙĦÙĥ", + "ĠÙĦ Ùĥ", + "è º", + "ĠNg Ãłnh", + "Ġस द", + "æľ Ĺ", + "çĦ¶ åIJİ", + "ãĤ¸ ãĤ§", + "л еÑĢ", + "ле ÑĢ", + "ĠÐŀ на", + "ĠÐŀн а", + "س ÙĪÙĨ", + "سÙĪ ÙĨ", + "Ïģ ον", + "Ïģο ν", + "ĠدرÛĮ اÙģت", + "ĠدرÛĮا Ùģت", + "à¸Ń à¸Ńà¸Ļà¹Ħลà¸Ļ", + "Ġ dál", + "Ġd ál", + "Ġdá l", + "ĠмÑĸÑģ ÑĨе", + "Ġд ней", + "Ġ اÙĦات", + "Ġا ÙĦات", + "ĠاÙĦ ات", + "Ġरह त", + "ï¼Į 对", + "è³ĩ æĸĻ", + "ä»» ä½ķ", + "é Ħ", + "t aj", + "ta j", + "β ά", + "Ġна до", + "Ġнад о", + "ĠÑģÑĤ Ñĥд", + "ĠÅŁ eh", + "ัà¸į à¸į", + "à¥ĭ ब", + "ãĥ© ãĥ¼", + "Û± Ûµ", + "Û±Û µ", + "e pt", + "ep t", + "Ġbil dir", + "Ġbild ir", + "ส à¸ĸาà¸Ļ", + "สà¸ĸ าà¸Ļ", + "е ÑĤÑĮÑģÑı", + "еÑĤÑĮ ÑģÑı", + "sk ým", + "ský m", + "Ġобла ÑģÑĤÑĮ", + "ĠоблаÑģ ÑĤÑĮ", + "ĠоблаÑģÑĤ ÑĮ", + "Ġìŀ ł", + "ĠG ör", + "ĠGö r", + "Ġd ayan", + "Ġday an", + "Ġda yan", + "ĠÛĮ اد", + "ĠÛĮا د", + "çĶŁ 产", + "íĺ ij", + "å¾ ģ", + "Ġ اجر", + "Ġا جر", + "Ġاج ر", + "Ġп ÑĢе", + "ĠпÑĢ е", + "ä¸īä¸ī ä¸īä¸ī", + "åŁİ å¸Ĥ", + "Ġ пÑĢимеÑĢ", + "ĠпÑĢ имеÑĢ", + "ĠпÑĢи меÑĢ", + "ĠпÑĢим еÑĢ", + "Äį ást", + "èģ ĺ", + "ĠÙħرب ÙĪØ·", + "æŀ ļ", + "åĪ Ģ", + "æŁ¥ çľĭ", + "Ġ모 ëijIJ", + "ìŀIJ ë£Į", + "- 、", + "Ġê°Ļ ìĿ´", + "Ġ ì¡´", + "Ġì ¡´", + "Ġì¡ ´", + "е гоÑĢ", + "ег оÑĢ", + "его ÑĢ", + "e dik", + "ed ik", + "edi k", + "и мÑĥ", + "им Ñĥ", + "ĠAr th", + "ĠArt h", + "åºĶ çĶ¨", + "m iÅŁti", + "miÅŁ ti", + "Ġkhá»ı e", + "Ġ Ñĸд", + "ĠÑĸ д", + "λ λη", + "λλ η", + "â h", + "м аг", + "ма г", + "éļ Ĩ", + "ĠвнÑĥ ÑĤÑĢ", + "ĠвнÑĥÑĤ ÑĢ", + "Ġ بط", + "Ġب Ø·", + "( æĹ¥", + "Ä° Y", + "л ик", + "ли к", + "ĠB ản", + "Ġت ÙĪس", + "ĠتÙĪ س", + "़ त", + "a mak", + "am ak", + "ama k", + "åķı é¡Į", + "ĠÑģам оÑģÑĤ", + "ĠÑģамо ÑģÑĤ", + "ï¼¼ Ċ", + "Ġ ç¦ı", + "Ġç¦ ı", + "Ù ¡", + "Ġ ÑĦоÑĢми", + "ĠÑĦоÑĢм и", + "ĠÑĦоÑĢ ми", + "Ġ ÑĢозÑĥм", + "ĠÑĢоз Ñĥм", + "ĠÙħ طاÙĦ", + "ĠÙħØ· اÙĦ", + "ä¹Ł æĺ¯", + "ç¾İ åĽ½", + "ëĵľ 립ëĭĪëĭ¤", + "Ġl Ä©nh", + "ĠпоÑĤ омÑĥ", + "ĠпоÑĤом Ñĥ", + "Ñı бÑĢÑı", + "Ñıб ÑĢÑı", + "æ¼ «", + "Ġng oại", + "à¸Ń ำ", + "ÙĬ ÙĨا", + "ÙĬÙĨ ا", + "Ġm lad", + "Ġml ad", + "Ïĥ ÏĦά", + "ÏĥÏĦ ά", + "ا تر", + "ات ر", + "주 ìĿĺ", + "ен нÑĸ", + "о за", + "оз а", + "ÙĤ ات", + "ĠÐĴ аÑģ", + "è® Ń", + "é IJ", + "Ñĥ ÑİÑĩи", + "ÑĥÑİ Ñĩи", + "Ġ کر", + "ĠÚ© ر", + "Ġ .|", + "Ġ. |", + "Ġgen ç", + "è© ²", + "ä» ģ", + "о дÑĭ", + "од Ñĭ", + "ĠØ£ ÙĪÙĦ", + "ĠØ£ÙĪ ÙĦ", + "Ġ ìĤ¬íļĮ", + "ĠìĤ¬ íļĮ", + "Ġ à¹Ģส", + "Ġà¹Ģ ส", + "Ġà¹Ģภª", + "ĠëķĮ문 ìĹIJ", + "âĢĮ ب", + "Ġли ÑĪÑĮ", + "ĠлиÑĪ ÑĮ", + "Ġи менно", + "Ġим енно", + "m adı", + "ma dı", + "mad ı", + "Ġ éĤ", + "Ġé Ĥ", + "ĠÙĪ ارد", + "ĠÙĪا رد", + "Ġtak ım", + "Ġ à¹Ģห", + "Ġà¹Ģ ห", + "Ġà¹Ģภ«", + "Ġ à¸Ńย", + "Ġà¸Ń ย", + "Ġkon usu", + "Ġkonu su", + "Ġkonus u", + "Ø® ÙĪ", + "ĠÑģ ид", + "ĠÑģи д", + "èµ ¤", + "о ÑıÑĤелÑĮ", + "оÑıÑĤ елÑĮ", + "ëĭ µ", + "ε Ïī", + "Ñĸ Ñħ", + "Ġय द", + "ĠÚ© ÛĮÙģ", + "ĠÚ©ÛĮ Ùģ", + "μ οÏĤ", + "μο ÏĤ", + "Ġal dı", + "Ġald ı", + "Ġ íĻį", + "ĠíĻ į", + "к Ñĥп", + "кÑĥ п", + "ĠÙĨÙħ اÛĮØ´", + "ĠÙĨÙħاÛĮ Ø´", + "ãģ ¥", + "Ġ íķ©ëĭĪëĭ¤", + "Ġíķ ©ëĭĪëĭ¤", + "Ġíķ© ëĭĪëĭ¤", + "Ġë Įĵê¸Ģ", + "б оÑĢа", + "бо ÑĢа", + "боÑĢ а", + "éī Ħ", + "Ġ à¹Ģà¸Ī", + "Ġà¹Ģ à¸Ī", + "Ġà¹ĢภĪ", + "à¹ī à¸ģ", + "§ Ø·", + "ر بÙĩ", + "رب Ùĩ", + "Ġ Ñĥз", + "ĠÑĥ з", + "Ġм аÑİÑĤÑĮ", + "Ġма ÑİÑĤÑĮ", + "Ġby li", + "Ġbyl i", + "ี à¸ķ", + "Ġ ì§ĢìĽIJ", + "Ġì§Ģ ìĽIJ", + "èĩª çĦ¶", + "ù y", + "Ġç aÄŁ", + "Ġça ÄŁ", + "е дин", + "ед ин", + "еди н", + "ë ī´", + "åį ±", + "Ġпоз волÑı", + "Ġпозвол Ñı", + "ØŃ Ø§Ø¯", + "ĠÑĩ его", + "ีย ร", + "Ġyön tem", + "Ġ ders", + "Ġd ers", + "Ġde rs", + "Ġder s", + "Ġ ÑģÑĤоÑı", + "ĠÑģÑĤ оÑı", + "ĠÑģÑĤо Ñı", + "Ġк ÑĢÑĥп", + "Ġ ð", + "Ġдом аÑĪ", + "Ġдома ÑĪ", + "е нд", + "ен д", + "ç» §", + "ĠÄij ô", + "Ġch tÄĽ", + "计 åĪĴ", + "ÎŃ Î±", + "Ġdob ÅĻe", + "ส à¸Ńà¸ļ", + "е ление", + "ел ение", + "еле ние", + "елен ие", + "ĠÄij ông", + "ĠÄijô ng", + "ãģ¾ ãĤĬ", + "Ġboy unca", + "à¥ģ à¤Ĺ", + "à¥ģठĹ", + "ĠÑĦ из", + "ãĤ³ ãĥ³", + "Ġde ney", + "Ġden ey", + "ÑĩеÑģ киÑħ", + "Ñĩе ÑģкиÑħ", + "ÑĩеÑģки Ñħ", + "λ ον", + "λο ν", + "以 åıĬ", + "ا ÙĪت", + "اÙĪ ت", + "Âł ³³³³", + "³³ ³³³", + "³³³³ Âł", + "³³³ ³³", + "Ġ ì¤Ħ", + "Ġì¤ Ħ", + "ि फ", + "िठ«", + "ĠÑĤ ол", + "ĠÑĤо л", + "ĠëĤ´ ê°Ģ", + "âĸ ı", + "Ġp há", + "Ġph á", + "ĠÑģп Ñĸв", + "Ġ جÙħÙĬع", + "ĠجÙħ ÙĬع", + "Ġb ezpeÄį", + "Ġbez peÄį", + "Ġ æĹł", + "ĠæĹ ł", + "Ġv Å¡e", + "ĠvÅ¡ e", + "ÑģÑĤ вÑĥ", + "ÑģÑĤв Ñĥ", + "d ust", + "du st", + "o Å¡", + "Ġت ارÙĬØ®", + "ا ØŃØ©", + "اØŃ Ø©", + "ĠÙħشار ÙĥØ©", + "Ġ ακ", + "Ġα κ", + "ั à¸Ļà¸Ļ", + "ัà¸Ļ à¸Ļ", + "éģ Ĭ", + "Ġ ÑģоÑĤ", + "ĠÑģ оÑĤ", + "ĠÑģо ÑĤ", + "Ġ каз", + "Ġк аз", + "Ġка з", + "ĠÑĤ еÑĩение", + "ĠÑĤеÑĩ ение", + "ê¸ ´", + "acak tır", + "ê±° ëĤĺ", + "ี ยม", + "ีย ม", + "ĠÑģ ÑĥÑħ", + "ĠÑģÑĥ Ñħ", + "ĠëĦĪ 무", + "ãģı ãĤĭ", + "ĠкоÑĤоÑĢ ой", + "ا ÙĤØ©", + "اÙĤ Ø©", + "y ıl", + "yı l", + "ãĤ» ãĥĥãĥĪ", + "ĠÑį лем", + "æģ IJ", + "ÙĨ اء", + "ÙĨا Ø¡", + "åħ ©", + "Ġte Äı", + "ä¸ ¥", + "Ġì§Ī 문", + "Ġ 为", + "Ġä¸ º", + "ìĭľ íĹĺ", + "Ġп ÑĢок", + "ĠпÑĢ ок", + "ĠпÑĢо к", + "u jeme", + "uj eme", + "uje me", + "ü cü", + "üc ü", + "ĠاÙĦÙħ غ", + "ĠØŃ Ø³Ø§Ø¨", + "ĠØŃس اب", + "ãģĹ ãģ¦ãģĦ", + "ãģĹãģ¦ ãģĦ", + "к ова", + "ко ва", + "ков а", + "ĠÄij Ãło", + "Ġп ÑĢиз", + "ĠпÑĢ из", + "ĠпÑĢи з", + "ĠÙĪ ÙħÙĨ", + "ĠÙĪÙħ ÙĨ", + "Ġ оÑĢ", + "Ġо ÑĢ", + "à¸ģ à¸ķ", + "а ÑĦ", + "Ġ à¸ŀร", + "Ġà¸ŀ ร", + "ÑĨи ей", + "æ ª", + "Ġ působ", + "Ġp ůsob", + "Ġpů sob", + "åŃ© åŃIJ", + "Ġb ánh", + "Ġbán h", + "ĠÑĦоÑĢм Ñĥ", + "ĠÑĦоÑĢ мÑĥ", + "Ġ á»ķ", + "Ġá» ķ", + "Ġмен ее", + "Ġмене е", + "à¹ī าห", + "à¹īา ห", + "ни ÑĨа", + "ниÑĨ а", + "ี Ċ", + "Ġв олоÑģ", + "Ġвол оÑģ", + "Ġار ائÙĩ", + "第 ä¸ī", + "ëIJĺ ìĹĪ", + "Ġkıs m", + "Ġkı sm", + "ãĥ¼ ãĥĬ", + "ãĥ¼ãĥ Ĭ", + "ler imiz", + "ÙĨ ÙĬÙĨ", + "ÙĨÙĬ ÙĨ", + "Ġ NgÆ°á»Ŀi", + "ĠNg Æ°á»Ŀi", + "ĠоÑĤ дел", + "ĠоÑĤд ел", + "çļĦ æŶåĢĻ", + "о нов", + "он ов", + "Äį an", + "i zm", + "iz m", + "ĠÑģоб ой", + "à¹ĩ à¸ķ", + "Ġ ÑģлÑĸд", + "ĠÑģ лÑĸд", + "ĠÑģл Ñĸд", + "Ġ à¤ľà¤¹", + "Ġà¤ľ ह", + "ï¼Į æĪij们", + "ï¼ĮæĪij 们", + "ãĢĤ ãģĿãģ®", + "ÏĢ ÏīÏĤ", + "çĨ Ł", + "ภ¯", + "ëĦ IJ", + "æľ ĭ", + "Ġë¹Ħ ë°Ģ", + "ëį ķ", + "Ġm Ãłn", + "ĠmÃł n", + "ìĿ´ ê³ł", + "ëŀľ ëĵľ", + "éĤ Ħ", + "Ä±ÅŁ ık", + "Ä±ÅŁÄ± k", + "Ġ 个", + "Ġä¸ ª", + "Ġn ád", + "Ġná d", + "б ÑĢа", + "æĮĩ å®ļ", + "lar ıyla", + "ları yla", + "ĠÐŀ ни", + "ĠÐŀн и", + "Ġ hra", + "Ġh ra", + "Ġhr a", + "ĠÑĢе ÑĨеп", + "ĠÐłÐ¾Ñģ Ñģий", + "å½± åĵį", + "Ġ Když", + "ĠK dyž", + "ĠÃ¶ÄŁ renc", + "ĠÃ¶ÄŁren c", + "åī µ", + "Ġ jist", + "Ġj ist", + "Ġji st", + "èĪ Ī", + "è§ ¦", + "åıij çİ°", + "ม าย", + "มา ย", + "er ken", + "erk en", + "Ġзд еÑģÑĮ", + "ĠÙħس ئ", + "@n ate", + "ĠëĤ´ ìļ©", + "Ġnab ÃŃd", + "ĠnabÃŃ d", + "Û Ģ", + "Ġмо менÑĤ", + "Ġмом енÑĤ", + "ãģł ãģĮ", + "ί δα", + "ίδ α", + "T ak", + "Ta k", + "Ġ ë³´ê³ł", + "Ġë³´ ê³ł", + ": ::::::::", + ":: :::::::", + ":::: :::::", + ":::::: :::", + ":::::::: :", + "::: ::::::", + "::::: ::::", + "::::::: ::", + "ÄŁ men", + "Ġпо меÑī", + "Ġпом еÑī", + "ãģ«ãģ¤ ãģĦãģ¦", + "ĠÙģ ÙĪÙĤ", + "ĠÙģÙĪ ÙĤ", + "Ġع ضÙĪ", + "ĠÙħ ÛĮاÙĨ", + "ĠÙħÛĮ اÙĨ", + "Ġm üc", + "Ġmü c", + "ĠпÑĢо Ñıв", + "ÑĩеÑģ ки", + "Ñĩе Ñģки", + "ãģł ãģĭãĤī", + "éĤ ¦", + "Ġ ë¶ĦìĦĿ", + "Ġë¶Ħ ìĦĿ", + "éŁ ©", + "į ¨", + "ĠD aha", + "ĠDa ha", + "ĠDah a", + "Ġ κÏĮ", + "Ġκ ÏĮ", + "Ġна Ñĩина", + "ĠнаÑĩ ина", + "ĠÐŁ оÑĤ", + "ĠÐŁÐ¾ ÑĤ", + "Ïĥκε Ïħ", + "Ïĥκ εÏħ", + "Ġ ÑĢан", + "ĠÑĢ ан", + "ĠÑĢаР½", + "ĠÑĢа н", + "ÙĪ ÙĬس", + "ÙĪÙĬ س", + ": :::::::::", + ":: ::::::::", + ":::: ::::::", + ":::::: ::::", + ":::::::: ::", + "::: :::::::", + "::::: :::::", + "::::::: :::", + "::::::::: :", + "Û±Û¹ Û¹", + "Ġard ından", + "à¹Ĥ à¸Ķ", + "ا راÙĨ", + "ار اÙĨ", + "ارا ÙĨ", + "د اد", + "دا د", + "Ġqu ý", + "ĠØ£Ùĥ ثر", + "âĹ Ĩ", + "ĠØ£ خرÙī", + "Ġأخ رÙī", + "Ġë§Ī ìĿĮ", + "ë¦ ´", + "Ġ عÙĦÙĪÙħ", + "ĠعÙĦ ÙĪÙħ", + "Ġe ÄŁ", + "воÑĢ Ñİ", + "во ÑĢÑİ", + "Ġ ãĥĹ", + "Ġãĥ Ĺ", + "Ñĥ ÑĩаÑģ", + "ÑĥÑĩ аÑģ", + "ÑĥÑĩа Ñģ", + "Ġب Ø£", + "ÏĨ ο", + "ни ками", + "ник ами", + "ника ми", + "никам и", + "à¹ĥ à¸ķ", + "Äįet nÄĽ", + "à¸ļ าà¸ĩ", + "çī Ļ", + "ãĥª ãĤ«", + "í Ĵ", + "åĩº çīĪ", + "γ ι", + "ãĢĤ ãģĿãĤĮ", + "Ġy ani", + "Ġya ni", + "Ġyan i", + "l ech", + "le ch", + "lec h", + "ĠLu áºŃt", + "çļĦ ãģª", + "Ġneden iyle", + "Ġnedeni yle", + "d ej", + "de j", + "ĠÑģов еÑĢÑĪ", + "Ġph á»ķ", + "ıs ından", + "ısında n", + "Ġch ắc", + "d eÅŁ", + "de ÅŁ", + "Ġком ан", + "Ġко ман", + "æĽ ¿", + "Ġp lán", + "Ġpl án", + "Ġplá n", + "Ġd ữ", + "ĠêµŃ ê°Ģ", + "Ġta kip", + "Ġtak ip", + "Ġth ủy", + "Ġthủ y", + "Ñģ лÑĸд", + "Ñģл Ñĸд", + "âī §", + "ĠI IC", + "ĠII C", + "θ Ïħ", + "á vat", + "áv at", + "Ġ Ñģок", + "ĠÑģ ок", + "ĠÑģо к", + "Ġб агаÑĤо", + "Ġбаг аÑĤо", + "ĠбагаÑĤ о", + ";:;: ;:;:", + "Ïģ ιοÏĤ", + "Ïģι οÏĤ", + "Ïģιο ÏĤ", + "il miÅŁtir", + "ilm iÅŁtir", + "ilmiÅŁ tir", + "Ġ znam", + "Ġz nam", + "Ġzn am", + "Ġ Τα", + "ĠΤ α", + "a maz", + "am az", + "ama z", + "à¹ģ à¸ŀ", + "ãĥģ ãĥ£", + "Ġkullan ı", + "æĶ¾ éĢģ", + "д н", + "ĠÙĪ اب", + "ĠÙĪا ب", + "Ġtr ắng", + "Ñģ Ñıг", + "ÑģÑı г", + "Ġار تباط", + "Ġв Ñħод", + "å·ŀ å¸Ĥ", + "Ġ सत", + "Ġस त", + "Ñĩ аеÑĤÑģÑı", + "Ñĩа еÑĤÑģÑı", + "ÑĩаеÑĤ ÑģÑı", + "íĮĮ íĬ¸", + "Ġ Những", + "ĠNh ững", + "ä¸į åı¯", + "å± Ĭ", + "Ġ ãĤŃ", + "ĠãĤ Ń", + "ار ÙĩاÛĮ", + "ارÙĩ اÛĮ", + "Ġar ÅŁiv", + "Ġ اÙĦÙī", + "Ġا ÙĦÙī", + "ĠاÙĦ Ùī", + "ाय à¤ķ", + "ãģĹ ãĤĩãģĨ", + "ãģĹãĤĩ ãģĨ", + "Ġ ulus", + "Ġu lus", + "Ġul us", + "al axy", + "ala xy", + "기 ê°Ģ", + "ãİ¡ (", + "μά ÏĦÏīν", + "è n", + "ù i", + "Ġна ÑģÑĤоÑı", + "ĠнаÑģÑĤ оÑı", + "ĠС в", + "ĠоÑģ оби", + "ĠоÑģоб и", + "к ово", + "ко во", + "ков о", + "ĠÑĢеб енка", + "ĠÑĢебен ка", + "ĠÑĤ Ñıж", + "ĠÑĤÑı ж", + "Ġxu á»ijng", + "Ġ ê¶Į", + "Ġê ¶Į", + "о год", + "ог од", + "ого д", + "Ġ ấy", + "è² ł", + "ว à¸Ļ", + "Ġ stanov", + "Ġsta nov", + "Ġstan ov", + "Ġk rál", + "Ġkr ál", + "Ġà¤ĩ सल", + "Ġà¤ĩस ल", + "e be", + "eb e", + "å® ¾", + "ĠдоÑģÑĤаÑĤ оÑĩно", + "II IK", + "III K", + "ÏĢ ά", + "Ġbir kaç", + "ĠاÙĦ ÙħÙĤ", + "ĠاÙĦÙħ ÙĤ", + "ãĥ ¶", + "ĠBaÅŁ kanı", + "ĠBaÅŁkan ı", + "Ġ첨ë¶Ģ íĮĮìĿ¼", + "Ġya rar", + "Ġyar ar", + "äº ¡", + "Ġ ÏĢÏĮ", + "ĠÏĢ ÏĮ", + "Âł Ñģ", + "δ ή", + "e lerini", + "eler ini", + "eleri ni", + "elerin i", + "Ġs uç", + "Ġsu ç", + "Ġд ома", + "Ġдо ма", + "Ġдом а", + "Ġна ÑĢÑĥÑĪ", + "ĠнаÑĢ ÑĥÑĪ", + "Ġ ί", + "ĠÎ ¯", + "Ġê·¸ ìĿĺ", + "çĶµ å½±", + "ا بÙĩ", + "اب Ùĩ", + "к омÑĥ", + "ко мÑĥ", + "ком Ñĥ", + "Ġत ब", + "à¥Ī à¤ł", + "Ġ모 ì§ij", + "Ġ æ±Ł", + "Ġæ± Ł", + "Ġê²ĥ ìĿĢ", + "ον ÏĦαι", + "ĠاÙĦ رÙĬاض", + "è¨ ±", + "Ġhal inde", + "Ġاش ارÙĩ", + "Ġ кÑĢÑĭ", + "Ġк ÑĢÑĭ", + "л ений", + "лен ий", + "ле ний", + "lu ÄŁ", + "Ġdo bu", + "Ġdob u", + "s ik", + "si k", + "à¥ģ à¤Ł", + "à¥ģठŁ", + "Ġ кÑĸн", + "Ġк Ñĸн", + "ãģ¨ ãģį", + "à¥Ĥ स", + "æħ ¢", + "ĠdÄ±ÅŁ ında", + "ĠdÄ±ÅŁÄ± nda", + "ç· ı", + "Ġ bÃŃ", + "Ġb ÃŃ", + "ĠCL IIIK", + "ĠIIC III", + "Ġh erk", + "Ġhe rk", + "Ġher k", + "ãĤı ãģĽ", + "Ġ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "Âł ³³³³³", + "³³ ³³³³", + "³³³³ ³³", + "³³³ ³³³", + "³³³³³ Âł", + "اÙĦ د", + "Ġdav ran", + "Äį er", + "Äįe r", + "Ġ ØŁ", + "ĠØ Ł", + "ãģĺãĤĥ ãģªãģĦ", + "Ġd air", + "Ġda ir", + "Ġdai r", + "Ġî ¥¤", + "ั à¸ĩส", + "ัà¸ĩ ส", + "Ġ ëĭ´", + "Ġëĭ ´", + "å¾ ŀ", + "ĠÑįÑĤ иÑħ", + "ĠÑįÑĤи Ñħ", + "è¯ º", + "á» ·", + "е ÑĢиÑģÑĤи", + "еÑĢи ÑģÑĤи", + "ов ÑĭÑħ", + "Ġ ãĥĩ", + "Ġãĥ ĩ", + "ض ÙĬ", + "Ġà¤ī à¤ł", + "Ġnap ÅĻÃŃklad", + "è ´Ŀ", + "è´ Ŀ", + "Ġ Å¡k", + "ĠÅ¡ k", + "ĠبÙĪد ÙĨد", + "ĠبÙĪدÙĨ د", + "vů li", + "éģ ĩ", + "Ġз най", + "Ġзна й", + "Ġзн ай", + "ĠT ham", + "ĠTh am", + "r ani", + "ra ni", + "ran i", + "ا ØŃت", + "اØŃ Øª", + "Ø´ Ùĩ", + "мÑĸнÑĸ ÑģÑĤÑĢа", + "๠ĭ", + "ĠÎij να", + "ĠÎijν α", + "à¥ĭ à¤ļ", + "ç»Ħ ç»ĩ", + "ÑģÑĤ иÑĤ", + "ÑģÑĤи ÑĤ", + "im li", + "åIJį çĦ¡ãģĹãģķãĤĵ", + "åIJįçĦ¡ãģĹ ãģķãĤĵ", + "Ùij Ø©", + "θ μ", + "о лоÑĤ", + "ол оÑĤ", + "оло ÑĤ", + "ย à¸ĩ", + "ãĤī ãĤĮãĤĭ", + "ãĤīãĤĮ ãĤĭ", + "Ġ лиÑĩ", + "Ġл иÑĩ", + "Ġли Ñĩ", + "ов Ñĭе", + "éĢ ĥ", + "Ġ 广", + "Ġå¹ ¿", + "ìĬ ¬", + "Ùħ ÛĮÙĨ", + "ÙħÛĮ ÙĨ", + "ĠìłĦ ì²´", + "ĠÎŃ Ïĩ", + "Ġ ì±ħ", + "Ġì± ħ", + "Ġ hlas", + "Ġh las", + "Ġhl as", + "е кÑĤив", + "ек ÑĤив", + "екÑĤ ив", + "екÑĤи в", + "ĠÏĢ λη", + "lu ÄŁu", + "luÄŁ u", + "好 çļĦ", + "ĠÚĨ ÙĪÙĨ", + "ĠB eled", + "ĠBe led", + "ĠBel ed", + "Ġen gel", + "Ġeng el", + "нÑı Ñı", + "ĠyaÅŁ an", + "Ñĩ ниÑħ", + "ار ÙĬØ©", + "ارÙĬ Ø©", + "म त", + "ãĥĭãĥĭ ãĥĭãĥĭ", + "åĭ ¢", + "Ġ åĨħ", + "ĠåĨ ħ", + "Ġíı¬ íķ¨", + "Ġоб Ñģ", + "Ġth ấp", + "Ġd ây", + "ãĥĸ ãĥ©", + "а ÑĤÑĭ", + "аÑĤ Ñĭ", + "ĠÑģво ей", + "ĠÑģвое й", + "ãĤī ãģªãģĦ", + "åıij çĶŁ", + "e rece", + "er ece", + "ere ce", + "Ġod bor", + "Ġв неÑģ", + "Ġвне Ñģ", + "ĠÄIJ ảng", + "ĠëıĮ ìķĦ", + "ÄĽ li", + "ÄĽl i", + "ı sında", + "ıs ında", + "ısı nda", + "Ġबद ल", + "v nÃŃ", + "vn ÃŃ", + "ãģ® ãģ«", + "Ġпо ÑĤом", + "ĠпоÑĤ ом", + "im de", + "imd e", + "a lama", + "al ama", + "ala ma", + "alam a", + "âĢ ª", + "Ġstej nÄĽ", + "е ÑĢе", + "еÑĢ е", + "éĴ ¢", + "æľº æŀĦ", + "Ġ è³", + "Ġè ³", + "åĶ ±", + "Ġ ëħ¸ì¶ľ", + "Ġëħ¸ ì¶ľ", + "Ġли бо", + "âĢ Ĭ", + "Ġc ez", + "Ġce z", + "ro mÄĽ", + "rom ÄĽ", + "ί Ïīν", + "ÏĨ ή", + "Ġ íĻ©", + "ĠíĻ ©", + "Ġdlou h", + "éª ¨", + "åħ¬ éĩĮ", + "ä¼ ¸", + "Ġ ãĥij", + "Ġãĥ ij", + "ä» Ļ", + "Ġol madı", + "Ġolm adı", + "Ġolma dı", + "е лиÑĩ", + "ел иÑĩ", + "ели Ñĩ", + "ожд ениÑı", + "Ġsöy ledi", + "Ġsöyl edi", + "á tek", + "át ek", + "áte k", + "ìĥ µ", + "ย วà¸ģ", + "ยว à¸ģ", + "Ġ 鼻", + "ĠéĽ »", + "Ġп ев", + "ĠдÑĢÑĥг ие", + "át ku", + "Ġع ÙĪ", + "ov ána", + "ová na", + "ován a", + "ض ر", + "Ġëģ Ŀ", + "ĠíĨµ íķ´", + "Î ĸ", + "Ġv ur", + "Ġvu r", + "åĨ ²", + "Ġп ÑĢек", + "ĠпÑĢ ек", + "ĠпÑĢе к", + "Ġप à¤ķ", + "Ġ à¹Ģà¸Ĺ", + "Ġà¹Ģ à¸Ĺ", + "Ġà¹ĢภĹ", + "ãģ¨ ãģĭ", + "ع ÙĨ", + "å® ĩ", + "ÏĦ ζ", + "Ġn ằm", + "ĠÑģ воб", + "ĠÑģв об", + "ĠÑģво б", + "Ġδ Ïį", + "çĸ Ĺ", + "- й", + "é¦Ļ 港", + "ت ا", + "Ïĥι μο", + "íķ Ħ", + "Ġ 详æĥħ", + "Ġè¯ ¦æĥħ", + "ä¸ ¡", + "Ùİ Ø§ÙĦ", + "Ùİا ÙĦ", + "ĠTr Æ°á»Ŀng", + "e ného", + "en ého", + "ené ho", + "ĠÑĢекомен дÑĥ", + "ÛĮ رÙĩ", + "ÛĮر Ùĩ", + "า à¸ĸ", + "าภĸ", + "ĠÚ© اÙħÙĦ", + "ĠکاÙħ ÙĦ", + "ب Ø·", + "ز ÛĮÙĨÙĩ", + "زÛĮ ÙĨÙĩ", + "Ġдолж на", + "Ġë§İ ìĿĢ", + "âĹıâĹıâĹıâĹı âĹıâĹıâĹıâĹı", + "lep Å¡ÃŃ", + "ал ог", + "ало г", + "ãĤª ãĥ³", + "Ġ ë³Ħ", + "Ġë³ Ħ", + "ı rı", + "ır ı", + "ĠجاÙħ عÙĩ", + "ĠجاÙħع Ùĩ", + "æĽ ľ", + "o jÃŃ", + "oj ÃŃ", + "ĠÑĪ лÑıÑħ", + "Ġhız lı", + "Ġ خصÙĪص", + "Ġخص ÙĪص", + "ÐIJ ÑĢ", + "å ľĺ", + "åľ ĺ", + "Ġжив оÑĤ", + "é ±", + "Ġng ữ", + "Ġv òng", + "èİ «", + "Ġза Ñħод", + "ĠзаÑħ од", + "ìĻ Ħ", + "ĠÑģлед ÑĥÑİÑī", + "éĹ »", + "Ñij ÑĢ", + "Ġch vÃŃ", + "èĥ ľ", + "ãģª ãģĹ", + "Ġtek noloj", + "Ġtekn oloj", + "ej ména", + "Ġ ìłĪ", + "Ġìł Ī", + "ì³ IJ", + "æĻ® éĢļ", + "Ġvý ro", + "Ġay rı", + "Ġayr ı", + "Ġп ÑĢев", + "ĠпÑĢ ев", + "ĠпÑĢе в", + "Ġgó p", + "à¹Ĥ à¸ģ", + "à¸Ĺำ à¹ĥห", + "åı İ", + "åĺ ī", + "Ġte lev", + "Ġtele v", + "Ġtel ev", + "ãģ¨ ãģĵãĤį", + "ëı Į", + "ph yl", + "phy l", + "ร าะ", + "Ġ çĪ", + "Ġç Ī", + "ÑģÑĤ иÑĤÑĥ", + "ÑģÑĤи ÑĤÑĥ", + "ÑģÑĤиÑĤ Ñĥ", + "ï¼Į è¿ĺ", + "ĠÎij γ", + "Äį ku", + "æı ´", + "ाय त", + "æı ı", + "ãĤĤ ãģĹ", + "ĠпеÑĢ еÑģ", + "ĠпеÑĢе Ñģ", + "Ġìĺģ íĻĶ", + "id la", + "idl a", + "åİ ħ", + "ï¼ı :", + "ت رÛĮ", + "تر ÛĮ", + "à¸Ľ à¸ı", + "ĠнаÑģ еленнÑı", + "Ġam aç", + "Ġama ç", + "Ġk do", + "Ġkd o", + "Ġиз веÑģÑĤ", + "ÑĪ иÑĢ", + "ÑĪи ÑĢ", + "ì£ ł", + "Å¡ it", + "Å¡i t", + "Ġt á»ijc", + "Ġtá»ij c", + "ìŀIJ ìĿĺ", + "Ñĩ аÑĤ", + "Ñĩа ÑĤ", + "åı ĥ", + "éĽ ¶", + "å° º", + "Ġ indir", + "Ġin dir", + "Ġind ir", + "Ġна ÑĨÑĸоналÑĮ", + "Ġx anh", + "Ġxa nh", + "ÛĮ دÛĮ", + "ÛĮد ÛĮ", + "Ġин ÑĤеÑĢеÑģ", + "ĠинÑĤеÑĢ еÑģ", + "ĠØ¢ سÛĮ", + "Ġآس ÛĮ", + "éĤ£ 个", + "Ġb ilm", + "Ġbi lm", + "Ġbil m", + "а не", + "ан е", + "ĠtÄĽch to", + "Ñĩ ик", + "Ñĩи к", + "Ġдо Ñħод", + "èĤ¡ 份", + "åħ³ ç³»", + "ãģ«ãģª ãģ£ãģŁ", + "ĠпÑĢед пÑĢи", + "Ġgeç en", + "Ġب ÙĤ", + "Ġvý znam", + "Ġ à¹Ģà¸Ħร", + "Ġà¹Ģ à¸Ħร", + "Ġà¹Ģà¸Ħ ร", + "ĠÑħ ÑĤо", + "Ø´ ÙĬ", + "åıĤ åĬł", + "ÑģÑĤв енного", + "ÑģÑĤвен ного", + "ÑģÑĤвенно го", + "ÑĤ ÑĢон", + "ÑĤÑĢ он", + "ÑĤÑĢо н", + "ÂĢÂĢ ÂĢÂĢ", + "æ¢ Ŀ", + "б ав", + "ба в", + "Û± Û¶", + "Û±Û ¶", + "é¡ º", + "Ġj az", + "Ġja z", + "ĠاÙĦ ÙħÙĦ", + "ĠاÙĦÙħ ÙĦ", + "Ġا ثر", + "Ġاث ر", + "ĠпÑĢи вод", + "ĠпÑĢив од", + "а нÑĥ", + "ан Ñĥ", + "à¥ģ à¤Ń", + "à¥ģठŃ", + "æĹ §", + "ÑĮ е", + "ส ล", + "л ÑıÑİÑĤ", + "лÑı ÑİÑĤ", + "ว à¸Ķ", + "Æ° Ỽi", + "Æ°á» Ľi", + "Æ°á»Ľ i", + "ÙĬ ÙħØ©", + "ÙĬÙħ Ø©", + "ãĤ¯ ãĥŃ", + "л ий", + "ли й", + "γ Ïģά", + "Ġper forman", + "Ġperform an", + "Ġperf orman", + "Ġperfor man", + "è¯ ī", + "ä½ł çļĦ", + "ìħ Ķ", + "н ениÑı", + "не ниÑı", + "нен иÑı", + "á»Ń i", + "ÙĪ زÛĮ", + "ÙĪز ÛĮ", + "éŁ ¿", + "à¥Ī द", + "Ġëª ¸", + "Ġe ser", + "Ġes er", + "Ġese r", + "ĠÙģعاÙĦ ÛĮت", + "нÑĸ веÑĢ", + "нÑĸв еÑĢ", + "κ Ïģα", + "è¨ ¼", + "Ġn emoc", + "Ġnem oc", + "Ġyardım cı", + "Ġ çī¹", + "Ġçī ¹", + "Ġ коп", + "Ġк оп", + "Ġко п", + "ĠÐľ ож", + "़ à¤ķ", + "Ġ ëľ", + "Ġë ľ", + "ĠÑĢе ак", + "Ġp ozor", + "Ġpoz or", + "Âł ÐIJ", + "Ġ ÙĬÙĥ", + "ĠÙĬ Ùĥ", + "ĠÑģ ад", + "Ġ åħ«", + "Ġåħ «", + "Ġп олÑĮз", + "ĠполÑĮ з", + "Ġra ÄŁmen", + "ter nÃŃ", + "tern ÃŃ", + "s iyon", + "si yon", + "Ñģ ÑıÑĩ", + "ÑģÑı Ñĩ", + "ov aný", + "ova ný", + "ovan ý", + "ĠëĮĢíķľ 민êµŃ", + "ĠвÑĸд б", + "ĠÐIJ нд", + "ĠÐIJн д", + "st va", + "éĮ Ħ", + "Ġ ëij", + "Ġë ij", + "ิ à¸Ħ", + "j ÃŃt", + "jÃŃ t", + "Ġkullan ıcı", + "Ġkullanı cı", + "Ġ æŁ¥çľĭ", + "ĠæŁ¥ çľĭ", + "Ùģ ÙĦ", + "Ġ ЯкÑīо", + "ĠЯк Ñīо", + "çľĭ åĪ°", + "ÑĢ еÑħ", + "ÑĢе Ñħ", + "ĠاÙĦع ربÙĬØ©", + "ĠاÙĦعرب ÙĬØ©", + "ĠاÙĦعربÙĬ Ø©", + "ë¡ľê·¸ ëŀ¨", + "Ġब à¤ľ", + "Ġп ÑĢип", + "ĠпÑĢ ип", + "ĠпÑĢи п", + "Ġs chop", + "Ġsc hop", + "Ġsch op", + "Ġscho p", + "Ġب اÙĦا", + "Ġبا ÙĦا", + "ĠباÙĦ ا", + "å® ħ", + "Ġا ÙĦÙħÙĩ", + "ĠاÙĦ ÙħÙĩ", + "ĠاÙĦÙħ Ùĩ", + "α να", + "αν α", + "à¥ĭ व", + "åģ ´", + "å¼Ģ åıij", + "Ùħ اÙĦ", + "Ùħا ÙĦ", + "Ġ धर", + "Ġध र", + "Ġda hil", + "Ġdah il", + "Ġdahi l", + "ãĢģ ãģĵãģ®", + "ัà¸Ī à¸Ī", + "Ñģп ÑĸлÑĮ", + "Ġà¤ķ प", + "Ġв еÑĩ", + "Ġве Ñĩ", + "Ġвид а", + "Ġви да", + "ĠÙħ عÙĨ", + "ĠÙħع ÙĨ", + "ĠоÑĤ ли", + "i á»ħ", + "iá» ħ", + "л иÑĪ", + "ли ÑĪ", + "Ġ ÐŁÐ¾Ñģле", + "ĠÐŁÐ¾Ñģ ле", + "ãģĵ ãģĵ", + "Ġk ültür", + "Ġ جر", + "Ġج ر", + "Ġ æ¼", + "Ġæ ¼", + "èĩ º", + "Ġmev cut", + "Ù¾ ÛĮ", + "ĠاÙĦ سÙĦاÙħ", + "ĠاÙĦس ÙĦاÙħ", + "иÑĤ елей", + "иÑĤе лей", + "Ġ ÑĢоÑģÑĤ", + "ĠÑĢ оÑģÑĤ", + "ĠÑĢоÑģ ÑĤ", + "Ġed il", + "Ġedi l", + "Ġ å·²", + "Ġå· ²", + "ç²¾ åĵģ", + "ä» ħ", + "âĢĻ ye", + "âĢĻy e", + "à¥Īà¤Ĥ .", + "Ġ åĨĨ", + "ĠåĨ Ĩ", + "ëĪ Ħ", + "Ġ ìĻķ", + "ĠìĻ ķ", + "æĺ Ń", + "ĠÎļ ο", + "m eden", + "med en", + "me den", + "Ġo lab", + "Ġol ab", + "Ġola b", + "ĠÚ© ÙĪد", + "ĠÚ©ÙĪ د", + "à¸Ħ าส", + "ен наÑı", + "æĬ ¼", + "yl ül", + "Ġsev iy", + "Ġd ÄĽti", + "ĠdÄĽ ti", + "ĠdÄĽt i", + "âĢ¬ Ċ", + "Ġع ز", + "Ġu á»ijng", + "Ġس رÙħ", + "Ġسر Ùħ", + "е не", + "ен е", + "Ġмал енÑĮ", + "Ġ вÑĸдом", + "Ġв Ñĸдом", + "ĠвÑĸд ом", + "ĠвÑĸ дом", + "ั à¸ļà¸Ĺ", + "ัà¸ļ à¸Ĺ", + "ĠTh ái", + "Ġà¤Ĩव श", + "rove ÅĪ", + "çĽ £", + "ĠÑı зÑĭ", + "ĠO y", + "å£ ģ", + "в аÑĤÑĮ", + "ва ÑĤÑĮ", + "ваÑĤ ÑĮ", + "л адÑĥ", + "ла дÑĥ", + "лад Ñĥ", + "ا صÙĦ", + "اص ÙĦ", + "ot ÅĻeb", + "د ÙĬØ«", + "دÙĬ Ø«", + "íı °", + "νο μ", + "г оÑĢод", + "го ÑĢод", + "гоÑĢ од", + "Ġm uh", + "Ġmu h", + "âĢĻ l", + "ÑģÑĤ воÑĢ", + "ÑģÑĤв оÑĢ", + "ÑģÑĤво ÑĢ", + "åħ Ħ", + "Ðķ Ðł", + "Ø· ÙĦ", + "éľ ĩ", + "Ùİ Øª", + "Ġb lÃŃ", + "Ġbl ÃŃ", + "Ġed ildi", + "Ġedil di", + "éĿ ł", + "äºĮ åįģ", + "æĹ Ĺ", + "Ġç iz", + "ĠÄij ảo", + "Ġo pat", + "Ġop at", + "o ÄŁan", + "oÄŁ an", + "ë² Į", + "Ġ éł", + "Ġé ł", + "Ġseb ep", + "Ġsebe p", + "Ñĥ ÑĤи", + "ÑĥÑĤ и", + "åĪ º", + "Ø· ب", + "ev Å¡ÃŃm", + "c hop", + "ch op", + "cho p", + "çĶ ļ", + "Ġngh á»ģ", + "Ġп аÑĢÑĤ", + "ĠпаÑĢ ÑĤ", + "ุ à¸Ħ", + "Ú© ÛĮÙĦ", + "Ú©ÛĮ ÙĦ", + "d um", + "du m", + "Ġor tak", + "Ġort ak", + "Ġorta k", + "ãģŁ ãģĹ", + "Ġoby vatel", + "Ġv ých", + "Ġvý ch", + "Ġv eren", + "Ġver en", + "Ġve ren", + "Ġvere n", + "Ġв еÑģÑĮ", + "ĠвеÑģ ÑĮ", + "Ġве ÑģÑĮ", + "ĠÐĶ а", + "Ġ íķĺì§Ģë§Į", + "Ġíķĺ ì§Ģë§Į", + "Ġíķĺì§Ģ ë§Į", + "å¦Ĥ æѤ", + "Ġमह त", + "ัà¸ĩà¸ģ ฤษ", + "ãĢĤ è¿Ļ", + "Ġ гал", + "Ġг ал", + "Ġsa nat", + "Ġsan at", + "Ġsana t", + "éł Ĩ", + "ĠÑģам о", + "å Ľ°", + "åĽ °", + "ี à¸Ń", + "ĠBaÅŁ kan", + "ÏĦ οÏħÏĤ", + "ÏĦοÏħ ÏĤ", + "Ġyap tıģı", + "Ġyaptı ģı", + "Ġyaptıģ ı", + "ÅĻ it", + "ÅĻi t", + "ĠÑģ ÑĸлÑĮ", + "ान त", + "Ġ ÙĨت", + "ĠÙĨ ت", + "Ġkh Äĥn", + "à¸Ĭ à¸Ļะ", + "à¸Ĭà¸Ļ ะ", + "м ини", + "ми ни", + "мин и", + "ãĥ¬ ãĥ¼", + "ë Ĥ¬", + "ëĤ ¬", + "éħĴ åºĹ", + "ĠاÙĦÙĬ ÙĪÙħ", + "ä¹ Ĺ", + "à¸Ħรà¸ĩ à¸ģาร", + "Ùģ اÙĤ", + "Ġ à¤ıस", + "Ġà¤ı स", + "Ġ æ¡", + "Ġæ ¡", + "Ú¯ Ø°", + "Ġà¤ĩ ल", + "е лениÑı", + "ел ениÑı", + "еле ниÑı", + "елен иÑı", + "à¸ģ รà¸ĵ", + "à¸ģร à¸ĵ", + "举 西", + "ÎŁ Îľ", + "ÎŁÎ ľ", + "Ġm áºŃt", + "Ġs nÃŃ", + "Ġsn ÃŃ", + " IJ", + "à¹Ģร า", + "íķ´ ìķ¼", + "Ġ ìĦľë¹ĦìĬ¤", + "ĠìĦľ ë¹ĦìĬ¤", + "Ġداخ ÙĦ", + "Ġth ắng", + "íĥ Ī", + "а вÑģÑı", + "ав ÑģÑı", + "Ġ Ñĸм", + "ĠÑĸ м", + "ا Ùħت", + "اÙħ ت", + "Ġ ÙĪÙĤت", + "ĠÙĪ ÙĤت", + "ĠÙĪÙĤ ت", + "à¥Ĥ à¤ģ", + "Ġ èIJ", + "Ġè IJ", + "Ġ سÙĦاÙħ", + "Ġس ÙĦاÙħ", + "ĠسÙĦ اÙħ", + "Ġvz dÄĽl", + "å¸Į æľĽ", + "åŃĺ æ¡£", + "Ġ à¸Ĺำ", + "Ġà¸Ĺ ำ", + "ĠвÑĸй ÑģÑĮ", + "а ÑĢан", + "аÑĢ ан", + "аÑĢа н", + "ĠÑĢ Ñĸк", + "Ġп иÑģÑĮ", + "Ġпи ÑģÑĮ", + "ĠпиÑģ ÑĮ", + "Ġá¼ IJ", + "기 ëıĦ", + "ĠпоÑģÑĤ оÑıн", + "Ġ åĮĹ京", + "ĠåĮĹ äº¬", + "ĠNÄĽ m", + "Ø´ ÙĨاÙħÙĩ", + "Ø´ÙĨ اÙħÙĩ", + "Ġdal Å¡ÃŃch", + "ĠdalÅ¡ÃŃ ch", + "Ġب اع", + "Ġبا ع", + "Ġpo hy", + "Ġpoh y", + "ا ÙĦÙģ", + "اÙĦ Ùģ", + "à¸ŀ วà¸ģ", + "é ĭ", + "Ġ cih", + "Ġc ih", + "Ġci h", + "Ù ¢", + "ä¸ ´", + "ãĤ¯ ãĥĪ", + "п нÑı", + "Ġ дал", + "Ġд ал", + "Ġда л", + "ÙĴ ر", + "ãĢĢ ãĢĢĠãĢĢĠãĢĢ", + "ãĢĢãĢĢ ĠãĢĢĠãĢĢ", + "ãĢĢãĢĢĠãĢĢ ĠãĢĢ", + "ãĢĢãĢĢĠ ãĢĢĠãĢĢ", + "æĬ¥ åijĬ", + "ÙĪ دÛĮ", + "ÙĪد ÛĮ", + "á» £i", + "ợ i", + "ÑĨ ÑĸÑĶÑİ", + "ÑĨÑĸ ÑĶÑİ", + "Ġ ãĥĢ", + "Ġãĥ Ģ", + "ĠÑģÑĤ еп", + "r až", + "ra ž", + "ĠS aÄŁ", + "ĠSa ÄŁ", + "Ġt uyến", + "Ġtuy ến", + "Ġal mak", + "Ġalma k", + "Ġalm ak", + "Ġзаболева ниÑı", + "Ġ ÏĥÏĩ", + "ĠÏĥ Ïĩ", + "Ġ íĭ", + "Ġí ĭ", + "Ġв им", + "Ġви м", + "ç¡ ¬", + "Ġ äºĶ", + "Ġi kinci", + "Ġik inci", + "ุ à¸į", + "ส าว", + "ĠìĦ¸ ê³Ħ", + "ĠÙħ ØŃÙĦ", + "ĠÙħØŃ ÙĦ", + "ระ หว", + "Ġelek tron", + "Ġelekt ron", + "Ġelektr on", + "Ġh ại", + "Ġhạ i", + "æĹ ¢", + "Ġ íĸ¥", + "Ġíĸ ¥", + "Ġji né", + "Ġjin é", + "Ġng he", + "Ġngh e", + "æij ©", + "ĠÑģо бÑĸ", + "ĠÑģоб Ñĸ", + "Æ ¯", + "ÑĤ ÑĥÑĢ", + "ÑĤÑĥ ÑĢ", + "æ±½ 车", + "Ø´ اÙĩ", + "Ġd Ãłnh", + "ä¸ ¹", + "ä»Ĭ æĹ¥", + "ãĥIJ ãĥ¼", + "в аниÑı", + "ва ниÑı", + "ван иÑı", + "Ġ ساÙħ", + "Ġس اÙħ", + "çݯ å¢ĥ", + "ĠاÙĦ ÙħÙĨت", + "ĠاÙĦÙħ ÙĨت", + "ĠاÙĦÙħÙĨ ت", + "ĠÑģеÑĢ д", + "éģ ł", + "ε ÏĦ", + "Ġав ÑĤ", + "าà¸ĩ ว", + "Ġvz tah", + "ru ž", + "алÑĮ наÑı", + "алÑĮна Ñı", + "Ġطر اØŃÛĮ", + "à¹Ĥรà¸ĩ à¹ģรม", + "ĠÄį asto", + "ĠÄįas to", + "ĠÄįast o", + "Ġ ê¼", + "Ġê ¼", + "Ïĥ ÏĦÏĮ", + "ÏĥÏĦ ÏĮ", + "Ġbu rada", + "Ġbur ada", + "ĠÄ° z", + "Ġ ê·¸ëŀĺ", + "Ġê·¸ ëŀĺ", + "å² Ľ", + "ĠØ´ ÙĪÙĨد", + "ĠØ´ÙĪ ÙĨد", + "Å¡ ek", + "Å¡e k", + "Ġ ìĿ´ìķ¼", + "ĠìĿ´ ìķ¼", + "ãĤĮ ãģªãģĦ", + "ê· ¹", + "la mÄ±ÅŁ", + "lam Ä±ÅŁ", + "ä» į", + "cház et", + "cháze t", + "Ġ ÑģÑĥÑĤ", + "ĠÑģ ÑĥÑĤ", + "ĠÑģÑĥ ÑĤ", + "æĹł æ³ķ", + "æµ ¦", + "ÄĽ la", + "ÄĽl a", + "à¹ĥà¸Ļ à¸Ĭ", + "Ġc ân", + "Ġcâ n", + "ÎŁ Îĵ", + "ÎŁÎ ĵ", + "Ġz vý", + "Ġzv ý", + "ĠÙ¾ ار", + "Ġپا ر", + "Ġк лÑĸ", + "Ġкл Ñĸ", + "Ġn ové", + "Ġno vé", + "Ġnov é", + "çĶ ĺ", + "ë¹ ł", + "m á", + "Ġ Ñģол", + "ĠÑģ ол", + "ĠÑģо л", + "à¤ķ रण", + "à¤ķर ण", + "н оÑĩ", + "но Ñĩ", + "Ġ fik", + "Ġf ik", + "Ġfi k", + "Ġà¤ľ à¤Ĺ", + "à¹ĩ à¸Ļà¸ķ", + "à¹ĩà¸Ļ à¸ķ", + "ĠÙħ تØŃ", + "ĠÙħت ØŃ", + "Ġph iên", + "Ġphi ên", + "Ġol sun", + "Ġк аб", + "Ġка б", + "Ġh út", + "èĦ ±", + "Ġ åĸ", + "Ġå ĸ", + "ĠH ải", + "Ġ tÄĽÅ¾", + "Ġt ÄĽÅ¾", + "ĠtÄĽ ž", + "Ġth ái", + "Ġ تاب", + "Ġت اب", + "Ġتا ب", + "- ÐŁ", + "Ø« ار", + "çĨ Ĭ", + "Ġ ними", + "Ġн ими", + "Ġни ми", + "Ġним и", + "Ġzp rac", + "Ġत ह", + "Ġм акÑģим", + "Ġмак Ñģим", + "m eyi", + "me yi", + "mey i", + "ĠÑģ оÑĨи", + "ĠÑģо ÑĨи", + "æ² Ĵ", + "ĠìķĬ ëĬĶ", + "_ _", + "åķ ¦", + "ĠاÙĨ ÙĪاع", + "æļ ´", + "ä¸Ĭ æµ·", + "åħ· æľī", + "à¥ģ ब", + "à¥ģठ¬", + "ìķ Ļ", + "Ġíģ °", + "Ġíŀ ĺ", + "Ġtr ánh", + "ि यन", + "िय न", + "ãģ¾ ãģ¾", + "п оÑĩ", + "по Ñĩ", + "m ÄĽr", + "mÄĽ r", + "å³ °", + "ĠÙħ صر", + "ĠÙħص ر", + "ĠÑįÑĦ ÑĦекÑĤив", + "ĠÑįÑĦÑĦек ÑĤив", + "Ġ çı", + "Ġç ı", + "ler iyle", + "leri yle", + "âĪ ļ", + "Ġ ì¶ķ", + "Ġì¶ ķ", + "Ġ ê²Įìĭľ", + "Ġê²Į ìĭľ", + "ìĿ ij", + "Ġ poÅĻád", + "Ġpo ÅĻád", + "Ġشب Ú©Ùĩ", + "اÙĩ Ø´", + "ĠخدÙħ ات", + "Ġna Å¡e", + "ĠnaÅ¡ e", + "ν οÏį", + "νο Ïį", + "Ġyön elik", + "Ġk ork", + "Ġko rk", + "Ġkor k", + "ا ÙĩÙħ", + "اÙĩ Ùħ", + "è° Ī", + "Ġ μη", + "Ġμ η", + "Ġd olar", + "Ġdo lar", + "Ġdol ar", + "çµ ¦", + "ĠÎķ Ïħ", + "Ġobdob ÃŃ", + "Ġ μÏĮ", + "Ġμ ÏĮ", + "à¹Ģ à¸Ńà¸ģ", + "à¹Ģà¸Ń à¸ģ", + "Ġپاس Ø®", + "è¡ ¥", + "ا عد", + "اع د", + "ãĤī ãģĦ", + "ÎŃ Î»", + "и ÑĤÑĭ", + "иÑĤ Ñĭ", + "Ġ ëħ¼", + "Ġëħ ¼", + "Ġ^{ [", + "ί γ", + "æł ij", + "l ında", + "lı nda", + "ĠìŬ 룬", + "£ £", + "ÅĻ il", + "ÅĻi l", + "Ġав ÑĤоÑĢ", + "ĠавÑĤ оÑĢ", + "ÏĦ ικÏĮÏĤ", + "ÏĦικ ÏĮÏĤ", + "ÏĦικÏĮ ÏĤ", + "u dur", + "ud ur", + "udu r", + "Ġc Æ°", + "Ġk ıy", + "Ġkı y", + "Ñģ ем", + "Ñģе м", + "ĠØ£ بÙĪ", + "Ġأب ÙĪ", + "ÏĦ ικÏİν", + "ÏĦικ Ïİν", + "Û± Û·", + "Û±Û ·", + "è² ¸", + "Ġп ÑĢож", + "ĠпÑĢ ож", + "ĠпÑĢо ж", + "ün cü", + "Ġ нÑĸÑĩ", + "Ġн ÑĸÑĩ", + "ĠнÑĸ Ñĩ", + "Ġ मत", + "Ġम त", + "ãģķ ãĤĮãģ¦ãģĦãĤĭ", + "ãģķãĤĮ ãģ¦ãģĦãĤĭ", + "ãģķãĤĮãģ¦ ãģĦãĤĭ", + "ا صر", + "اص ر", + "Ġع ÙĤ", + "ĠкаÑĩе ÑģÑĤве", + "ĠÐĵ еÑĢ", + "ĠÐĵе ÑĢ", + "åº Ĩ", + "Ù ¹", + "a larda", + "al arda", + "alar da", + "ĠÙ¾ رس", + "Ġپر س", + "и ÑĩеÑģкой", + "иÑĩеÑģ кой", + "Ġp him", + "Ġph im", + "Ġphi m", + "ί νη", + "ίν η", + "ä¸ĩ åĨĨ", + "i lerini", + "iler ini", + "ileri ni", + "ilerin i", + "ãĢģ 大", + "Ġo lsa", + "Ġol sa", + "æł¹ æį®", + "âĢĮ س", + "ĠTh ủ", + "r oje", + "ro je", + "roj e", + "нÑĮ оÑĹ", + "нÑĮо ÑĹ", + "Ġs lou", + "Ġsl ou", + "Ġslo u", + "ี ฬ", + "ıy orum", + "ıyor um", + "ÄĽ j", + "Ġ خبر", + "ĠØ® بر", + "è® Ĭ", + "Ġ 缸", + "ĠçĽ ¸", + "e lerinin", + "eler inin", + "eleri nin", + "elerin in", + "elerini n", + "íķĻ ëħĦëıĦ", + "íķĻëħĦ ëıĦ", + "ÑĩеÑģ кие", + "Ñĩе Ñģкие", + "ÑĩеÑģки е", + "ĠÅŁ ekl", + "ĠÅŁek l", + "Ġز ÙħاÙĨÛĮ", + "ĠزÙħاÙĨ ÛĮ", + "ĠزÙħ اÙĨÛĮ", + "Ġ xin", + "Ġx in", + "Ġxi n", + "ัà¸ģ à¸ĩาà¸Ļ", + "ĠE kim", + "ĠEk im", + "æĦ ¿", + "Ġод ной", + "Ġодно й", + "ν ή", + "æľĢ æĸ°", + "ĩ ¼", + "Ġн иж", + "Ġни ж", + "Ġ ë³¼", + "Ġë³ ¼", + "è· ij", + "Ġна пиÑģ", + "Ġнап иÑģ", + "èģ ĸ", + "Ġ âĢĮ", + "ĠâĢ Į", + "æłĩ åĩĨ", + "Ġv rát", + "Ġvr át", + "ĠV ì", + "Ġ ÙģراÙĨ", + "ĠÙģ راÙĨ", + "ĠÙģر اÙĨ", + "æĿ¥ çļĦ", + "å§ ¿", + "Ñħ Ñĥ", + "ĠبÛĮر ÙĪÙĨ", + "Ġд ÑĥÑĪ", + "ĠдÑĥ ÑĪ", + "в аÑİÑĤ", + "ва ÑİÑĤ", + "Ġs ebe", + "Ġse be", + "Ġseb e", + "é» ĺ", + "Ġkay ıt", + "Ġkayı t", + "Ïģ θ", + "ãģ¨ ãģ®", + "ĠпÑĢоÑĨ еÑģÑģ", + "ĠпÑĢоÑĨеÑģ Ñģ", + "æĮģ ãģ¡", + "Ñĸ на", + "Ñĸн а", + "Ġ ÑĤоÑĤ", + "ĠÑĤ оÑĤ", + "ĠÑĤо ÑĤ", + "ĠÑĤак ие", + "ĠÑĤа кие", + "The o", + "Th eo", + "ĠÙĨ ÛĮر", + "ĠÙĨÛĮ ر", + "ÑĨ Ñĥ", + "Ġay ak", + "à¸Ļ à¸Ń", + "Ġsit esinde", + "Ġsites inde", + "Ġsitesi nde", + "ĠÚ©ÙĨ ÛĮÙħ", + "ĠÑģ оÑħ", + "ĠÑģо Ñħ", + "Ġम à¤ľ", + "Ġol uyor", + "ç½ij åĿĢ", + "ĠÙ¾ زش", + "ĠE ylül", + "d Ã¼ÄŁ", + "dü ÄŁ", + "Ġبر Ø®ÛĮ", + "Ġبرخ ÛĮ", + "ĠÙħع رÙģ", + "Ġ obec", + "Ġo bec", + "Ġob ec", + "Ġobe c", + "ĠçalÄ±ÅŁ ma", + "Ġçal Ä±ÅŁma", + "ìĦ¼ íĦ°", + "ĠÑģво ÑĶ", + "оÑģÑĤ ей", + ": ::::::::::", + ":: :::::::::", + ":::: :::::::", + ":::::: :::::", + ":::::::: :::", + "::: ::::::::", + "::::: ::::::", + "::::::: ::::", + "::::::::: ::", + ":::::::::: :", + "Ġ алÑĮ", + "Ġа лÑĮ", + "Ġал ÑĮ", + "ç« Ł", + "Ġباش ÙĨد", + "اÙĦ Ø«", + "Ġнай б", + "Ġп ока", + "Ġпо ка", + "Ġпок а", + "Î ŀ", + "ĠÙĪ Ø¥", + "Ġ Ø®ÙĪاÙĨ", + "ĠØ® ÙĪاÙĨ", + "ĠØ®ÙĪ اÙĨ", + "à¥ģप य", + "Ġ à¹ĥห", + "ĠбÑĭ ÑģÑĤÑĢо", + "Ġth á»Ń", + "Ġthá» Ń", + "ëģ ¼", + "Ġ å¤ļ", + "Ġå¤ ļ", + "两 个", + "ม à¸ķ", + "ز ارش", + "زار Ø´", + "زا رش", + "Ġ ëŁ", + "Ġë Ł", + "य ह", + "Ñī ина", + "Ñīи на", + "Ñīин а", + "ầ ng", + "ần g", + "ï½Ĺ ï½Ĺ", + "à¹Ģà¸ŀ ลà¸ĩ", + "à¹Ģà¸ŀล à¸ĩ", + "tv rt", + "ĠÑĸн ÑĪÑĸ", + "ĠÑĸнÑĪ Ñĸ", + "λ εί", + "λε ί", + "Ġv iá»ĩn", + "Ġvi á»ĩn", + "ij ¸", + "Ġ çĻ½", + "ĠçĻ ½", + "Ùİ ÙĪ", + "Ġch ứa", + "Ġchứ a", + "st vo", + "ĠdoÄŁ r", + "Ġ iler", + "Ġi ler", + "Ġil er", + "Ġile r", + "à¥ĭ ,", + "à¹ĥà¸Ļ à¸Ľ", + "Ġر ÙĪست", + "ĠرÙĪ ست", + "ÙĪ ÙĦÙĪ", + "ÙĪÙĦ ÙĪ", + "Å¡ lo", + "ал иÑģÑĤ", + "али ÑģÑĤ", + "åħ± åĴĮ", + "à¸ŀ ย", + "Ġ ìĻĢ", + "ĠìĻ Ģ", + "ÙĦ ÙĬÙĦ", + "ÙĦÙĬ ÙĦ", + "ĠÑı кого", + "ĠÑıк ого", + "е ÑģÑĤÑĮ", + "еÑģ ÑĤÑĮ", + "еÑģÑĤ ÑĮ", + "ĠÑĦ ин", + "ĠØ£ ÙĨÙĩ", + "ĠØ£ÙĨ Ùĩ", + "ĠMü dür", + "ĠÎĶ ια", + "ĠÎĶι α", + "ĠÑĤ ел", + "ĠÑĤе л", + "ि ,", + "Ñĥ ки", + "Ñĥк и", + "ĠÐł Ф", + "ĠMay ıs", + "à¹Ī à¸Ńม", + "à¹Īà¸Ń ม", + "ar ken", + "ark en", + "æĢ ķ", + "ب ÛĮÙĨ", + "بÛĮ ÙĨ", + "ÑĤ аÑħ", + "ÑĤа Ñħ", + "e bo", + "eb o", + "ë³´ ì¦Ŀê¸Ī", + "ĠÙ¾ ÙĦ", + "Ġг Ñĥб", + "Ġв клÑİÑĩ", + "Ġвк лÑİÑĩ", + "æĶ¿ æ²»", + "Ġε ÏĢιÏĥ", + "ĠεÏĢ ιÏĥ", + "ĠεÏĢι Ïĥ", + "ĠÙģار سÛĮ", + "ĠÙģارس ÛĮ", + "èŃ ī", + "ÏĨ η", + "( éĩij", + "ศ ร", + "åī §", + "âĢĻ ya", + "âĢĻy a", + "å¹´ 度", + "ĠÙĨ رÙħ", + "Ùĥ ÙĪÙħ", + "ÙĥÙĪ Ùħ", + "è¢ ĭ", + "Ġneden le", + "à¹īà¸Ńà¸ĩ à¸ģาร", + "à¹īà¸Ńà¸ĩà¸ģ าร", + "ãĢĮ ãģĤ", + "Ġп оÑģÑĤÑĥп", + "Ġпо ÑģÑĤÑĥп", + "ĠпоÑģÑĤ Ñĥп", + "ìľĦ ìĽIJ", + "åį ĺ", + "èİ ±", + "Ġum ož", + "p ok", + "po k", + "Ñĥ ÑģÑĤи", + "ÑĥÑģ ÑĤи", + "ÑĥÑģÑĤ и", + "Ġ éħ", + "Ġé ħ", + "ĠÑĦ Ñĸз", + "å» £", + "ิ หาร", + "Ġж ÑĥÑĢн", + "ĠдÑĸÑĤ ей", + "Ñĥ ÑİÑīие", + "ÑĥÑİ Ñīие", + "ÑĥÑİÑī ие", + "ä»Ĭ 天", + "ìĿ´ ëĿ¼ê³ł", + "ìĿ´ëĿ¼ ê³ł", + "ç² ī", + "èĴ Ļ", + "ĠDün ya", + "ĠDüny a", + "егод нÑı", + "Ġm imo", + "Ġmi mo", + "Ġmim o", + "Ġ вин", + "Ġв ин", + "Ġви н", + "ãģĿ ãģĵ", + "æ¯ ķ", + "ĠØ£ Ø®", + "Ġ åIJĮ", + "ĠåIJ Į", + "س اÙĨÛĮ", + "ساÙĨ ÛĮ", + "Ġ kah", + "Ġk ah", + "Ġka h", + "ि यर", + "िय र", + "ÏĢ οÏĤ", + "ÏĢο ÏĤ", + "j ez", + "je z", + "ÙĬ ج", + "ĠsaÄŁ lay", + "ا جÙĩ", + "اج Ùĩ", + "Ġ çł", + "Ġç ł", + "ï ľ", + "Ġج ست", + "Ġt ức", + "Æ° Æ¡i", + "Æ°Æ¡ i", + "Ø´ Ùģ", + "ส à¸ķ", + "Ġ ÑĢеÑģ", + "ĠÑĢ еÑģ", + "ĠÑĢе Ñģ", + "Ġ å£", + "Ġå £", + "Ġbi zim", + "Ġbiz im", + "Ġbizi m", + "Ġ ê·Ģ", + "Ġê· Ģ", + "ि ब", + "िठ¬", + "ë¡ľ ìļ´", + "ĠÑģ ÑĤал", + "ĠÑģÑĤ ал", + "ĠÑģÑĤа л", + "Ġ ÑĢÑĥÑģ", + "ĠÑĢ ÑĥÑģ", + "ĠÑĢÑĥ Ñģ", + "ĠO cak", + "ĠOc ak", + "åľ £", + "Ġ úÄįast", + "Ġú Äįast", + "ĠúÄį ast", + "ive rz", + "iver z", + "ëĤĺ ëĬĶ", + "о ÑĢоÑĤ", + "оÑĢ оÑĤ", + "оÑĢо ÑĤ", + "Ñĩ инÑĭ", + "Ñĩи нÑĭ", + "Ñĩин Ñĭ", + "Ġihtiy aç", + "ÐĿ Ðŀ", + "ĠÐĿ ов", + "ĠÐĿо в", + "ีย à¸Ķ", + "ĠпоÑĤÑĢÑĸб но", + "Ú¯ ز", + "ĠÑģказ ал", + "ĠG ia", + "ĠGi a", + "m esini", + "mes ini", + "mesi ni", + "Ġbulun ur", + "æ¸ ¡", + "г оÑĤ", + "го ÑĤ", + "Ġh uku", + "Ġhu ku", + "ëĦ ·", + "ã Ĩ", + "Ġ اÙĥ", + "Ġا Ùĥ", + "Ġد ÙĦÛĮÙĦ", + "ĠدÙĦ ÛĮÙĦ", + "Ġ اساس", + "Ġا ساس", + "Ġاس اس", + "ìĹ° 구", + "ĠÎĺ ε", + "Ġس ÙĪر", + "ĠسÙĪ ر", + "Ġ ì¢Ģ", + "Ġì¢ Ģ", + "ĠاÙĦ در", + "ĠاÙĦد ر", + "ĠÑģÑĤÑĢо иÑĤелÑĮ", + "Ġ Ñĥк", + "ĠÑĥ к", + "ĠìĻ ľ", + "е лик", + "ел ик", + "ели к", + "O VID", + "OV ID", + "Ġt emiz", + "Ġtem iz", + "äº ¦", + "Ġth iếu", + "Ġthi ếu", + "Ġп ÑĥÑĤ", + "ĠпÑĥ ÑĤ", + "Ñİ Ñīей", + "ÑİÑī ей", + "Ġur Äį", + "Ġ ÄIJây", + "ĠÄIJ ây", + "æ¥ µ", + "μ οÏħ", + "μο Ïħ", + "Ġ à¹Ģà¸Ļ", + "Ġà¹Ģ à¸Ļ", + "Ġà¹ĢภĻ", + "е веÑĢ", + "ев еÑĢ", + "Âł ÐĶ", + "ì ´Ŀ", + "ì´ Ŀ", + "è¶ £", + "Ġà¤ħ लà¤Ĺ", + "Ġà¤ħल à¤Ĺ", + "Æ°á»Ŀ n", + "Ġ ãĥŃ", + "Ġãĥ Ń", + "Ġ ê³³", + "Ġê³ ³", + "é² ģ", + "Ġرس ÛĮد", + "身 ä½ĵ", + "ั à¸ĵà¸ij", + "y nÃŃ", + "yn ÃŃ", + "ج ات", + "جا ت", + "ì§Ģ 를", + "न ल", + "ì ķĮ", + "ìķ Į", + "Ñĸ п", + "Ġv Ãłng", + "ĠvÃł ng", + "Ġпл оÑī", + "Ġпло Ñī", + "оз мож", + "åī ²", + "Ġth ảo", + "л ади", + "ла ди", + "лад и", + "Ġ åĿ", + "Ġå Ŀ", + "ĠÐľ и", + "Ġдел аÑĤÑĮ", + "Ġдела ÑĤÑĮ", + "é ij", + "Ġh uy", + "Ġhu y", + "ا ÛĮØ·", + "اÛĮ Ø·", + "Ġпов ÑĤоÑĢ", + "ü len", + "ül en", + "üle n", + "Ġ ÙĪÙģ", + "ĠÙĪ Ùģ", + "ĠÙĬ تÙħ", + "ĠÙĬت Ùħ", + "ĠÑĢеж им", + "Ġ ìºIJ", + "Ġìº IJ", + "ĠÃĩ ünkü", + "ع دد", + "عد د", + "ни веÑĢ", + "нив еÑĢ", + "ĠÐĿ ик", + "å¸ ĸ", + "Ïį ÏĢ", + "an lar", + "س تÛĮ", + "ست ÛĮ", + "Ġbulun maktadır", + "à¹ģ à¸ļ", + "v ek", + "ve k", + "Ġгла за", + "Ġглаз а", + "å¹ ħ", + "Ġúda j", + "Ġг ÑĢо", + "ĠгÑĢ о", + "Ġкон кÑĥÑĢ", + "Ġd ůležit", + "Ġdů ležit", + "Ġ Ø·ÙĪر", + "ĠØ· ÙĪر", + "à¸ĺ าà¸Ļ", + "ĠÙĦ ÙĥÙĨ", + "ĠÙĦÙĥ ÙĨ", + "ر ÙĤ", + "Ðļ ÐIJ", + "Ġ éĿĴ", + "ĠéĿ Ĵ", + "Ġ ìĤ¬ëŀij", + "ĠìĤ¬ ëŀij", + "ĠÑħ воÑĢ", + "ĠÑħв оÑĢ", + "s unuz", + "sun uz", + "ĠÙħØ´ خص", + "éĻ ¸", + "Ġ ढ", + "Ġठ¢", + "Ġv az", + "Ġva z", + "交 æĺĵ", + "ĠÑĤеÑĢ ÑĢиÑĤ", + "ÑĩеÑģ кой", + "Ñĩе Ñģкой", + "ี à¹Ĥ", + "rop oda", + "ıl dıģı", + "ıldı ģı", + "Ġ ëī´", + "Ġë ī´", + "íķĻ 기", + "ë³´ íĹĺ", + "Ġз аÑĤем", + "ĠзаÑĤ ем", + "Âł в", + "ãĥ¼ ãĥĨ", + "ãĥ¼ãĥ Ĩ", + "Ġ ÐŀÑģнов", + "ĠÐŀÑģ нов", + "ãĨ į", + "Ġد ع", + "ÐŁ оÑģ", + "ÐŁÐ¾ Ñģ", + "æ² ī", + "Ġ лож", + "Ġл ож", + "çĶµ åŃIJ", + "Ġ رد", + "Ġر د", + "ĠÑģ ÑĢазÑĥ", + "e jte", + "ej te", + "Ġà¤ij फ", + "Ġt Ãłu", + "ÃŃ k", + "lan ması", + "lanma sı", + "к аÑĤ", + "ка ÑĤ", + "าà¸ģ าศ", + "ãĤ¢ ãĤ¤", + "ÏĦ ιο", + "ÏĦι ο", + "Ġ å§", + "Ġå §", + "प त", + "E Y", + "Ġj mé", + "Ġjm é", + "Ġod kazy", + "Ġê°ľ ìĿ¸", + "éģ ¿", + "bÄĽ h", + "Ðł Ðŀ", + "çĥ Ī", + "Ġza rar", + "Ġzar ar", + "Ú¯ ÙĪÙĨÙĩ", + "Ú¯ÙĪ ÙĨÙĩ", + "Ġtr ì", + "Ġm ại", + "ен нÑĭм", + "ĠÑį коном", + "ĠÑįк оном", + "éĽ £", + "Ġ íĦ", + "Ġí Ħ", + "æİ ī", + "Ġs oru", + "Ġso ru", + "Ġsor u", + "ĠФедеÑĢа ÑĨии", + "ĠÑģиÑģÑĤем и", + "æĸĻ çĦ¡æĸĻ", + "Ġà¤ķ à¤Ń", + "ĠÙĩ ÙĨد", + "ĠÙĩÙĨ د", + "ุà¸ĩ à¹Ģà¸Ĺà¸ŀ", + "ĠOsman lı", + "ĠпÑĢод олж", + "Ġ ÙĪÙĦا", + "ĠÙĪ ÙĦا", + "ĠÙĪÙĦ ا", + "ĠÄįlán ku", + "Ġa dım", + "Ġad ım", + "Ġadı m", + "ĠÏĢ αÏģά", + "ĠÏĢαÏģ ά", + "ĠÏĢα Ïģά", + "Ġzá ÅĻÃŃ", + "Ġ à¸Īำà¸ģ", + "Ġà¸Īำ à¸ģ", + "Ġп ен", + "m enin", + "me nin", + "men in", + "meni n", + "Ġìĺ¤ ëĬĺ", + "em iz", + "emi z", + "οÏį ÏĤ", + "- स", + "íķĺ ìĭľ", + "ĠÑħ ви", + "ĠÑħв и", + "ãĤ° ãĥ©", + "Ġп оÑĪ", + "Ġпо ÑĪ", + "ĠÐŀдна ко", + "ĠÐŀднак о", + "Ñĸд но", + "íĺ ľ", + "Ñī ими", + "Ñīи ми", + "Ñīим и", + "èĥ ¸", + "ĠÄ° lk", + "ĠÄ°l k", + "m ey", + "me y", + "Ġз да", + "Ġзд а", + "κ λη", + "а лом", + "ал ом", + "ало м", + "à¹Ģศ ษ", + "ا ÙĨا", + "اÙĨ ا", + "Ġ ÎŁÎ¹", + "ĠÎŁ ι", + "Ġ åıĮ", + "Ġåı Į", + "ี à¸Ĥ", + "Ġ بس", + "Ġب س", + "è§Ħ å®ļ", + "i say", + "is ay", + "isa y", + "uk arı", + "uka rı", + "æµģ éĩı", + "v ÃŃm", + "vÃŃ m", + "λ Ïİ", + "ä¹ Ļ", + "Ġल ड", + "ĠÙĨد ارد", + "ĠÙĨدار د", + "е ÑĢом", + "еÑĢ ом", + "еÑĢо м", + "Ġsır asında", + "Ġsıras ında", + "Ġsıra sında", + "Ġr Äĥng", + "Æ¡ m", + "Ġl ạnh", + "Ġlạ nh", + "ठĥ", + "à¥ģ ण", + "à¥ģठ£", + "uz ey", + "uze y", + "Ġ Ñĥва", + "ĠÑĥ ва", + "ĠÑĥв а", + "vÄĽ d", + "Ñĭ Ñģ", + "Ġ κι", + "Ġκ ι", + "Ñ ķ", + "ÛĮ ا", + "à¸ĩ à¸Ħ", + "ph ylum", + "phy lum", + "phyl um", + "Ġber aber", + "ี à¸Ķ", + "æµ ®", + "ा सन", + "ास न", + "o vice", + "ov ice", + "ovic e", + "ovi ce", + "è¦ §", + "Ġस फ", + "å°ij 女", + "ан ÑĤи", + "анÑĤ и", + "é¨ ĵ", + "Ġso át", + "é¬ ¼", + "lan mÄ±ÅŁ", + "Ġb ếp", + "ÙIJ ÙĦ", + "Ġsay ısı", + "Ġsayı sı", + "ĠÙĤ دÙħ", + "ĠÙĤد Ùħ", + "à¥Ī म", + "ह म", + "ĠÑĢ Ñĥки", + "ĠÑĢÑĥ ки", + "ĠÑĢÑĥк и", + "ĠصÙģ ØŃÙĩ", + "Å¡ ky", + "Å¡k y", + "é» Ĵ", + "èģ ļ", + "ãģĭ ãģ«", + "Ġs âu", + "ед аг", + "ĠÑģÑĤоÑĢ онÑĭ", + "ĠÑģÑĤоÑĢон Ñĭ", + "Ġ ruk", + "Ġr uk", + "Ġru k", + "âĢĮ âĢĮ", + "ĠØ¢ ÙĪر", + "Ġع دÙħ", + "Ġعد Ùħ", + "õ i", + "ãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "Ġبا زار", + "Ġباز ار", + "Ġe deb", + "Ġed eb", + "Ġv ÄįetnÄĽ", + "оп аÑģ", + "Ġн ег", + "Ġне г", + "m ayan", + "ma yan", + "may an", + "maya n", + "к оÑģÑĤÑĮ", + "ко ÑģÑĤÑĮ", + "Ġsv ůj", + "ÄŁ ında", + "ģı nda", + "ģın da", + "Ø° ÛĮر", + "M á»Ļt", + "Ð Ħ", + "Ġyap tı", + "ि थ", + "िठ¥", + "ĠÙħ Ùĩر", + "ĠÙħÙĩ ر", + "Ġд оÑģÑĤи", + "Ġдо ÑģÑĤи", + "ĠдоÑģÑĤ и", + "ĠдоÑģ ÑĤи", + "Ġ صÙĪر", + "Ġص ÙĪر", + "m esine", + "mes ine", + "mesi ne", + "ĠD ân", + "ä¸Ģ ä¸ĭ", + "çį İ", + "ĠÐľ иÑħ", + "ĠÐľÐ¸ Ñħ", + "Ġо Ñĩи", + "ĠоÑĩ и", + "ãĤ¦ ãĤ§", + "Ġ ÑĸÑģ", + "ĠÑĸ Ñģ", + "Ġgi ác", + "Ġgiá c", + "åľ¨çº¿ è§Ĥçľĭ", + "Ġاد اÙħÙĩ", + "ÑĨ ов", + "ÑĨо в", + "Ġ комÑĥ", + "Ġк омÑĥ", + "Ġком Ñĥ", + "Ġко мÑĥ", + "ĠÄ°ng iliz", + "Ġг ÑĢаж", + "ĠгÑĢа ж", + "ĠгÑĢ аж", + "ãģ¦ ãĤĤ", + "Ġch ữ", + "олÑĮ кÑĥ", + "m ÄĽt", + "mÄĽ t", + "Ñıг ом", + "Ñĩ аÑģÑĤ", + "Ñĩа ÑģÑĤ", + "ÑĩаÑģ ÑĤ", + "ìĸ ¼", + "Ġkh óa", + "Ġkhó a", + "ĠÐIJ д", + "ĠØ¢ ÙĤ", + "Ġkurul uÅŁ", + "ά ζ", + "Ġж ов", + "Ġв ÑģÑĤÑĢе", + "ĠвÑģÑĤ ÑĢе", + "ĠÙĪ ÙĦÙĥ", + "ĠÙĪÙĦ Ùĥ", + "Ġt uyá»ĩt", + "y ı", + "Ġ ÐĴо", + "ĠÐĴ о", + "Ġv á»įng", + "Ġvá» įng", + "ع ÙĬØ©", + "عÙĬ Ø©", + "Ġop ÄĽt", + "ا ÙĬد", + "اÙĬ د", + "à¥Ī .Ċ", + "à¥Ī. Ċ", + "ĠÑģ ами", + "ĠÑģам и", + "åª Ĵ", + "Ġsv ých", + "ĠëĤĺ íĥĢ", + "ìĨ IJ", + "Ġ ÙĦع", + "ĠÙĦ ع", + "Ġet kin", + "Ġetk in", + "Ġetki n", + "ĠN á", + "Ġsou tÄĽ", + "Ġsout ÄĽ", + "층 ìĿĺ", + "Ġ çŃī", + "ĠçŃ ī", + "Ġر سÙħ", + "Ġرس Ùħ", + "Ġ خاÙĨÙĩ", + "ĠØ® اÙĨÙĩ", + "ĠخاÙĨ Ùĩ", + "Ġ 家", + "Ġå® ¶", + "iá» ģm", + "iá»ģ m", + "ëħ IJ", + "ê° Ī", + "ì° ©", + "ž il", + "ži l", + "ÑģÑĤиÑĤ ÑĥÑĤ", + "ÑģÑĤиÑĤÑĥ ÑĤ", + "or uÄį", + "oru Äį", + "ĠØ¥ ذا", + "Ġإذ ا", + "à¹Ħ à¸Ĥ", + "ี à¸Ĭ", + "ÑĢ аб", + "ÑĢаР±", + "ÑĢа б", + "íķĻ ìĥĿ", + "Ġ ìī", + "Ġì ī", + "r nek", + "rn ek", + "rne k", + "Ġاست خداÙħ", + "ãĢĢ ĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢĠãĢĢ ĠãĢĢĠãĢĢ", + "ãĢĢĠãĢĢĠãĢĢ ĠãĢĢ", + "ãĢĢĠ ãĢĢĠãĢĢĠãĢĢ", + "Ġв Ñģем", + "ĠвÑģ ем", + "ĠвÑģе м", + "Ġìłķ ëıĦ", + "Ġvy j", + "éĢ ±", + "алÑĮ ное", + "алÑĮно е", + "Ġch uyá»ĩn", + "ì§Ģ ìĽIJ", + "i lerine", + "ile rine", + "iler ine", + "ileri ne", + "ilerin e", + "ĠìķĦ 무", + "Ġок оло", + "ाव न", + "à¸Ļ า", + "о пÑĢи", + "оп ÑĢи", + "d rž", + "dr ž", + "ĠÑģÑĥ ÑģпÑĸлÑĮ", + "Ġب Ùĥ", + "u ky", + "uk y", + "Ġ ÏĩÏī", + "ĠÏĩ Ïī", + "Ġtu ần", + "nict vÃŃ", + "Ġ ÙĩدÙģ", + "ĠÙĩد Ùģ", + "Ġch iá»ģu", + "ÎĹ ÎĿ", + "å°ı å§IJ", + "íķĺ ìĺĢ", + "Ġk las", + "Ġkl as", + "Ġkla s", + "á»Ļ n", + "ĠìĿ´ íĽĦ", + "ÙĨ اÙħج", + "ÙĨا Ùħج", + "ÙĨاÙħ ج", + "Äį ast", + "Äįas t", + "ĠاÙĦ خاص", + "ĠاÙĦØ® اص", + "l Ä±ÅŁ", + "lı ÅŁ", + "Ġع Ùħر", + "ĠعÙħ ر", + "ãĢį Ċ", + "иб олее", + "ãĤĬ ãģ®", + "ãħ ł", + "ä¹Ł ä¸į", + "к ÑĢеÑĤ", + "Ġ ìĶ", + "Ġì Ķ", + "ÏĦ ια", + "ÏĦι α", + "ĠÑĥпÑĢав лÑĸннÑı", + "æ² ¢", + "Ġk esin", + "Ġke sin", + "Ġkes in", + "ì¡Į ëĭ¤", + "머 ëĭĪ", + "羣 çļĦ", + "Ġbak ım", + "æĿ± 京", + "¾ ¸", + "ÙħÙĦ ÙĥØ©", + "оÑĤ ÑĢеб", + "d ın", + "dı n", + "Ġ PÅĻi", + "ĠP ÅĻi", + "ĠPÅĻ i", + "Ġm ÄĽli", + "ĠmÄĽ li", + "ĠmÄĽl i", + "Ġδη μο", + "å ¯¸", + "å¯ ¸", + "ĠÙĪ ÙĥاÙĨ", + "ĠÙĪÙĥ اÙĨ", + "Ġप ढ", + "ĠвеÑĢ Ñħ", + "Ġе Ñij", + "C ách", + "Các h", + "ä½ľ 为", + "ĠÐļ ол", + "ĠÐļо л", + "Ġ ве", + "Ġв е", + "Ġ деÑĢж", + "Ġд еÑĢж", + "ĠдеÑĢ ж", + "em oc", + "emo c", + "ãģ¸ ãģ®", + "Ġ аÑĢÑħ", + "ĠаÑĢ Ñħ", + "Ġk iếm", + "Ġ æĺİ", + "Ġæĺ İ", + "ĠлÑİд ини", + "ĠлÑİди ни", + "ë ·", + "ĠÙĪ اÙĦت", + "ĠÙĪاÙĦ ت", + "ĠÙĪا ÙĦت", + "Ġ è°", + "Ġè °", + "çģ ¯", + "íĻ ķ", + "Ġ구 매", + "Ġ ç§ij", + "Ġç§ ij", + "it nÃŃ", + "и ÑĩеÑģкие", + "иÑĩеÑģ кие", + "иÑĩеÑģки е", + "ĠÙĨ Ùģس", + "ĠÙĨÙģ س", + "Ġت ÙĦÙģ", + "ĠتÙĦ Ùģ", + "ا ÙģÛĮ", + "اÙģ ÛĮ", + "ĠØŃ Ø³ÙĨ", + "ĠØŃس ÙĨ", + "âĸ¡ âĸ¡", + "ý vá", + "ýv á", + "ÄŁ ın", + "ģı n", + "ıyor uz", + "ĠCh ÃŃ", + "ĠÙ¾ÚĺÙĪÙĩ Ø´", + "Ġ ÏĦÎŃ", + "ĠÏĦ ÎŃ", + "ĠÏĥ Ïĩε", + "ĠÏĥÏĩ ε", + "о леÑĤ", + "ол еÑĤ", + "α ιδ", + "αι δ", + "Ġh ạt", + "Ġhạ t", + "à¸ł าà¸Ħ", + "åĨ °", + "Ġrych le", + "it eli", + "ite li", + "itel i", + "Âł z", + "ย à¸ģ", + "æ¨ ¹", + "Ġج ÙĪاÙĨ", + "ĠجÙĪ اÙĨ", + "æĺ Į", + "Ġü retim", + "Ġür etim", + "Ġüret im", + "ระ à¸ļ", + "à¸Ľà¸£à¸° ม", + "ά Ïĥ", + "å² ©", + "ĠÑĥ ÑģÑĤÑĢой", + "ĠÑĥÑģÑĤ ÑĢой", + "Ġver ilen", + "Ġveri len", + "ich ni", + "ĠpÅĻÃŃ mo", + "ĠpÅĻÃŃm o", + "ĠاÙĦØ°Ùĩ اب", + "ì½ ľ", + "æľ ±", + "Ġس Ø®", + "Ñĸ ла", + "Ñĸл а", + "Ñĥ ма", + "Ñĥм а", + "ห า", + "ÛĮ دا", + "ÛĮد ا", + "å² ¸", + "ä¸Ģ å®ļ", + "Ġ ä¼ļ", + "Ġ ÐŁÑĸд", + "ĠÐŁ Ñĸд", + "Ġ ÑĩиÑĤ", + "ĠÑĩ иÑĤ", + "ĠÑĩи ÑĤ", + "и Ñİ", + "Ġ ÐĹап", + "ĠÐĹ Ð°Ð¿", + "ĠÐĹа п", + "ÑĤ иÑı", + "ÑĤи Ñı", + "Ġ ê°ľë°ľ", + "Ġê°ľ ë°ľ", + "ĠÑĤе оÑĢ", + "Ñı ÑģÑĮ", + "ÑıÑģ ÑĮ", + "ĠpÅĻÃŃ prav", + "( åľŁ", + "Ùħ ÙĬ", + "ĠpÅĻed evÅ¡ÃŃm", + "ĠTem muz", + "Ġпод деÑĢж", + "Ġнед оÑģÑĤаÑĤ", + "ĠìĿ´ ìľł", + "Ġkhá»ı i", + "ĠاÙĦ تØŃ", + "ĠاÙĦت ØŃ", + "ĠÙħÙħ Ú©ÙĨ", + "Ġv hod", + "Ġvh od", + "ев ой", + "ево й", + "о вал", + "ов ал", + "ова л", + "Ġн алеж", + "Ġна леж", + "Ġнал еж", + "ï¼¼ :", + "ย ะ", + "ĠÙħ اشÛĮÙĨ", + "Ġg á»Ńi", + "al ım", + "alı m", + "Ġìµľ ìłĢ", + "Ùij Ùĩ", + "á»Ļ p", + "à¥Ģ ।Ċ", + "à¥Ģ। Ċ", + "Ġ пиÑģ", + "Ġп иÑģ", + "Ġпи Ñģ", + "Ġ вÑģÑı", + "Ġв ÑģÑı", + "ĠвÑģ Ñı", + "Ñĩ ем", + "Ñĩе м", + "o zenÃŃ", + "oz enÃŃ", + "oze nÃŃ", + "Ġ äºļæ´²", + "Ġäºļ æ´²", + "е ÑĢалÑĮ", + "еÑĢ алÑĮ", + "еÑĢа лÑĮ", + "기 ëĬĶ", + "Ġп ÑĢез", + "ĠпÑĢ ез", + "ĠпÑĢе з", + "ĠعÙħ ÙĪÙħÛĮ", + "и ÑĩниÑħ", + "иÑĩ ниÑħ", + "Ġ æ²³", + "Ġæ² ³", + "od nÃŃ", + "åıª æĺ¯", + "Ġpo dp", + "Ġpod p", + "à¹īà¸Ńà¸ĩ à¸ŀ", + "ाय द", + "ाà¤ĩ ल", + "ล à¸Ķ", + "ĠÑĢÑĸÑĪ еннÑı", + "Ġ ÑĤÑĥÑĢ", + "ĠÑĤ ÑĥÑĢ", + "ĠÑĤÑĥ ÑĢ", + "ÑģÑĮ кÑĥ", + "ÑģÑĮк Ñĥ", + "Ġsal dır", + "ĠÐĽ ÑĮв", + "ãĢģ Ċ", + "ĠÙ¾ÛĮ ÙĪÙĨد", + "åѦ ä¹ł", + "λ Ïī", + "o vit", + "ov it", + "ovi t", + "ü le", + "ül e", + "女 æĢ§", + " Ł", + "e mez", + "em ez", + "eme z", + "Ġh ale", + "Ġha le", + "Ġhal e", + "âī ¦", + "ĠÎķ κ", + "ÏĦηγοÏģ ία", + "k ý", + "ìĦ± ìĿĦ", + "Ġt ým", + "Ġtý m", + "à¥ĩ -", + "Ġz ejména", + "æĻ ¶", + "Ġn gon", + "Ġng on", + "ãĢı ĊĊ", + "软 件", + "éĤ£ ä¹Ī", + "ĠкваÑĢ ÑĤи", + "ĠÙħÙĨ ظ", + "on ec", + "one c", + "Ġг ли", + "à¥ģर à¤ķ", + "ĠS okol", + "ĠSo kol", + "ĠSok ol", + "Ġ ä¿Ŀ", + "д ив", + "ди в", + "ál nÃŃm", + "áln ÃŃm", + "álnÃŃ m", + "ac aģı", + "aca ģı", + "acaÄŁ ı", + "a ÅŁa", + "aÅŁ a", + "ĠÙħ اÙĦÛĮ", + "ĠÙħا ÙĦÛĮ", + "ĠÙħاÙĦ ÛĮ", + "ĠÃĸ n", + "иÑĤ ели", + "иÑĤе ли", + "ĠØ® رد", + "Ġخر د", + "Ġkullan ıl", + "Ġkullanı l", + "Ġ ÙħÛĮÙĦ", + "ĠÙħ ÛĮÙĦ", + "ĠÙħÛĮ ÙĦ", + "Ġ íļ¨", + "Ġíļ ¨", + "ã n", + "Ġ rost", + "Ġr ost", + "Ġro st", + "Ġros t", + "Ġëĸ ł", + "u bat", + "ub at", + "uba t", + "Ġ åıĤ", + "Ġåı Ĥ", + "Ġبر اÙĬ", + "Ġм енÑĮ", + "Ġмен ÑĮ", + "ั à¸Ħร", + "ัà¸Ħ ร", + "Ġпом ог", + "ĠØŃض ÙĪر", + "Ġthá»ĭ t", + "ä¹ ³", + "Ġ ìĭłì²Ń", + "Ġìĭł ì²Ń", + "Ġíĺ Ħìŀ¬", + "ĠíĺĦ ìŀ¬", + "Ġ ë¹ł", + "Ġë¹ ł", + "вÑĢоп ей", + "Ġne jen", + "Ġnej en", + "Ñĸ ка", + "Ñĸк а", + "Ġ ìļ¸", + "Ġìļ ¸", + "ĠÙħ بار", + "ĠÙħب ار", + "Ġ Äįek", + "ĠÄį ek", + "ĠÄįe k", + "Ġk alk", + "Ġka lk", + "Ġkal k", + "Ġ amac", + "Ġa mac", + "Ġam ac", + "Ġama c", + "اد ت", + "ĠÙħ اسÙĩ", + "ĠÙħا سÙĩ", + "Ġarasında ki", + "Ġaras ındaki", + "Ġб еÑģ", + "ĠоÑĤд елÑĮ", + "ĠоÑĤдел ÑĮ", + "á½ ¶", + "ĠΤ ζ", + "v yk", + "vy k", + "ج ÙĨ", + "» ê²Į", + "ĠниÑĩ его", + "ĠØ´ اÙħÙĦ", + "ĠÑĥÑģловиÑı Ñħ", + "la ması", + "lam ası", + "lama sı", + "è½ ī", + "ç¾ ½", + "Ġж ид", + "ĠоÑĤ ноÑģ", + "ĠздÑĸйÑģ нÑİ", + "Ġ VỼi", + "ĠV Ỽi", + "ÙĪ ÙĦÛĮ", + "ÙĪÙĦ ÛĮ", + "Ġt isÃŃ", + "Ġti sÃŃ", + "ĠÏĩ ÏģÏĮ", + "Ġprac ovnÃŃ", + "Ġpracov nÃŃ", + "ĠÙĬ ÙĥÙĪÙĨ", + "ĠÙĬÙĥ ÙĪÙĨ", + "Ġb eÅŁ", + "Ġbe ÅŁ", + "ج ز", + "ั à¸ļร", + "ัà¸ļ ร", + "ĠYön et", + "Ġشر اÛĮØ·", + "ĠتÙĪس عÙĩ", + "çĹ ĩ", + "à¸ĩ à¹Ģà¸Ľ", + "ä¸Ģ 次", + "ĠÐłÐ¾ÑģÑģий Ñģкой", + "æľĢ é«ĺ", + "Ġsp olu", + "Ġspo lu", + "Ġspol u", + "д аеÑĤÑģÑı", + "да еÑĤÑģÑı", + "даеÑĤ ÑģÑı", + "Ñĸ ÑĤÑĥ", + "ÑĸÑĤ Ñĥ", + "Ġоб ÑĢаÑĤ", + "ĠобÑĢа ÑĤ", + "e nek", + "en ek", + "ene k", + "Ġ mek", + "Ġm ek", + "Ġme k", + "å¦ Ī", + "Ġдоп олниÑĤелÑĮ", + "Ġ ç²", + "Ġç ²", + "ĠÙĦ ÙĦت", + "ĠÙĦÙĦ ت", + "ĠHaz iran", + "æ¸ Ī", + "à¹Į à¸Ĥà¸Ńà¸ĩ", + "ĠÑĦ он", + "Ġê²ĥ ìľ¼ë¡ľ", + "Ġnh é", + "Ġbu gün", + "Ġbug ün", + "ov ém", + "ové m", + "Ġза веÑĢ", + "Ġзав еÑĢ", + "Ġд виг", + "Ġдв иг", + "Ġдви г", + "ä¼ Ļ", + "Ġnu ôi", + "меÑĢ ик", + "ме ÑĢик", + "ĠÙĨÙħ ÙĪÙĨÙĩ", + "èį ·", + "Ñĥ вала", + "Ñĥв ала", + "Ñĥва ла", + "ç¿ »", + "Ġs ân", + "ог оÑİ", + "ого Ñİ", + "ا سÙĬØ©", + "اس ÙĬØ©", + "اسÙĬ Ø©", + "Ñĥн кÑĤ", + "Ñĥнк ÑĤ", + "á nÃŃm", + "án ÃŃm", + "ánÃŃ m", + "ен ное", + "енно е", + "Ġph út", + "Ġ मर", + "Ġम र", + "ĠاÙĦ ÙĪØ·", + "ĠاÙĦÙĪ Ø·", + "Ġлег ко", + "Ġ ãĢĭ", + "ĠãĢ ĭ", + "ë¡ľ ëĵľ", + "ĠKas ım", + "ÙĬ ÙĦÙĬ", + "ÙĬÙĦ ÙĬ", + "ĠbaÄŁlantı lar", + "ĠÑĤ ÑĢÑĥд", + "ĠÑĤÑĢ Ñĥд", + "ĠÑĤÑĢÑĥ д", + "Ø· Ùĩ", + "Ġk vůli", + "ÑģÑĤ оÑı", + "Ġsat Ä±ÅŁ", + "Ġh áºŃu", + "ĠبÙĩ ترÛĮÙĨ", + "ĠبÙĩتر ÛĮÙĨ", + "ĠÑģ елÑĮ", + "ĠÑģел ÑĮ", + "ั à¸Ļว", + "ัà¸Ļ ว", + "o su", + "os u", + "य न", + "åĽ ³", + "ι δ", + "ÛĮ تÛĮ", + "ÛĮت ÛĮ", + "ĠQu áºŃn", + "Ġ ей", + "Ġе й", + "à¹Ģว ลา", + "à¹Ģวล า", + "ìĬ¤ íĥĢ", + "ìĤ¬ 를", + "Ġا ÙĩÙĦ", + "ĠاÙĩ ÙĦ", + "η γ", + "Ġk á»·", + "Ġká» ·", + "Ġ наÑĤ", + "Ġн аÑĤ", + "Ġна ÑĤ", + "âĢ ¡", + "Ñĸ ÑĩниÑħ", + "ÑĸÑĩ ниÑħ", + "ĠÑĢазвиÑĤи Ñı", + "ĠÑĢазви ÑĤиÑı", + "e cial", + "ec ial", + "eci al", + "ĠÑħ озÑı", + "в аеÑĤ", + "ва еÑĤ", + "ĠÄIJ á»Ļ", + "ĠÄIJá» Ļ", + "Ġ éĵ", + "Ġé ĵ", + "Ġok am", + "ĠвÑģ ÑĸÑħ", + "ĠвÑģÑĸ Ñħ", + "ĠPr aze", + "ĠPra ze", + "ë¥ ł", + "ι κα", + "ικ α", + "æ¬ ²", + "Ġgerçek leÅŁ", + "ç¥ ĸ", + "Ġод ним", + "Âł M", + "Ġre nk", + "Ġr enk", + "Ġren k", + "Ġल à¤ķ", + "ãĥķ ãĤ§", + "ãĥķãĤ §", + "ĠÙĨ زد", + "å¹ »", + "Ġúzem ÃŃ", + "æı ¡", + "а лиÑģÑı", + "али ÑģÑı", + "Ġ ÃĶ", + "Ġà Ķ", + "Ġy orum", + "Ġyo rum", + "ĠÏĢ ÏģÏī", + "ãĥ³ ãĥĩ", + "ãĥ³ãĥ ĩ", + "éĸĭ å§ĭ", + "ãĥ¼ ãĥª", + "ãĥ¼ãĥ ª", + "Ġìĸ¼ êµ´", + "Û± Û±", + "Û±Û ±", + "lü ÄŁÃ¼", + "lÃ¼ÄŁ ü", + "ÙĨ Ø´", + "à¹Ī ำ", + "èĽ ĭ", + "ĠØ£ د", + "ĠW illi", + "ĠWill i", + "ĠWil li", + "ĠWi lli", + "èª ²", + "Ġsür dür", + "ĠEx ternÃŃ", + "Ġp ůvod", + "Ġpů vod", + "ĠØ® اÙĨÙĪ", + "ĠخاÙĨ ÙĪ", + "ĠкоÑĤоÑĢ ое", + "Ġm ohl", + "Ġmo hl", + "Ġmoh l", + "Ġs tÄĽ", + "Ġst ÄĽ", + "åĩ ı", + "ìĤ ¼", + "aban cı", + "à¹ģ à¸Ļ", + "สำ à¸Ħ", + "æĤ £", + "ab ilece", + "abil ece", + "abile ce", + "éĺ³ åŁİ", + "Îij Îļ", + "Ġch ữa", + "Ġchữ a", + "ĠìķĦ ëĭ", + "طبÙĬ ÙĤ", + "طب ÙĬÙĤ", + "ÎĻ ÎŁÎ¥", + "ÎĻÎŁ Î¥", + "ÑĢ ование", + "ÑĢов ание", + "ÑĢо вание", + "ÑĢован ие", + "ÑĢова ние", + "åĩ ½", + "Ġ ì¼", + "Ġì ¼", + "ÑĢ оÑĦ", + "ÑĢо ÑĦ", + "à¹ĩ à¸Ļส", + "à¹ĩà¸Ļ ส", + "Ġ ãĤ¦", + "ĠãĤ ¦", + "ï¼ļ ãĢĮ", + "á»ĭ a", + "Ġ hPa", + "Ġh Pa", + "m anı", + "man ı", + "ál nÃŃho", + "álnÃŃ ho", + "ÙĪ تÛĮ", + "ÙĪت ÛĮ", + "ĠлеÑĩ ениÑı", + "j te", + "jt e", + "- д", + "åħ¨ åĽ½", + "ĠбÑĥд Ñĸв", + "Ġz atÃŃm", + "Ġzat ÃŃm", + "Ġ öyle", + "Ġö yle", + "ìĿ´ ê°Ģ", + "s tal", + "st al", + "sta l", + "i vatel", + "iv atel", + "ivate l", + "iva tel", + "Ġ æľª", + "Ġpož ad", + "ĠÑģ ни", + "Ġpos lednÃŃ", + "Ġposled nÃŃ", + "ĠÑģÑĤ анд", + "ĠÑģÑĤан д", + "ĠÑģÑĤа нд", + "à¥Ģ à¤ıम", + "à¥Ģà¤ı म", + "Ġ عکس", + "Ġع کس", + "ÑĢ иÑı", + "ÑĢи Ñı", + "ã y", + "á»ĭ p", + "Ġo kul", + "Ġok ul", + "Ġoku l", + "à¸ĩ หมà¸Ķ", + "Ġвоз ник", + "m ÃŃ", + "ç§ Ł", + "ĠÄij á»ijc", + "Ġp odÃŃ", + "Ġpo dÃŃ", + "Ġpod ÃŃ", + "ĠÅĻÃŃ j", + "ĠÑĤак Ñĸ", + "ĠÑĤа кÑĸ", + "à¸ļ าà¸Ĺ", + "Ġ 보기", + "Ġë³´ 기", + "ล า", + "еÑģ ÑĤо", + "еÑģÑĤ о", + "Ġ çĶ¨", + "и нÑĭ", + "ин Ñĭ", + "ĠÑĢ ÑĥÑħ", + "ĠÑĢÑĥ Ñħ", + "ĠÑĢаÑģп олож", + "Ñī еннÑı", + "Ġc á»Ń", + "à¹ī à¸ļร", + "à¥įयव स", + "ï¾ ļ", + "Ġд алÑĮ", + "Ġда лÑĮ", + "Ġдал ÑĮ", + "Ġض د", + "ÙĦ ÙĬØ©", + "ÙĦÙĬ Ø©", + "ĠкоÑĤоÑĢ ого", + "Ġd ve", + "Ġdv e", + "Ġnh ạc", + "ÑĦ Ñĸка", + "ÑĦÑĸ ка", + "ÑĦÑĸк а", + "à¥Ī à¤Ł", + "èĩª çĶ±", + "Ġпо ÑĢÑĥÑĪ", + "ĠпоÑĢ ÑĥÑĪ", + "æľĭ åıĭ", + "Ġd ört", + "Ġdö rt", + "ĠÑĢаÑģп ÑĢоÑģÑĤ", + "ãģ§ ãģ¯ãģªãģĦ", + "ãģ§ãģ¯ ãģªãģĦ", + "ĠпеÑĢ ег", + "ĠпеÑĢе г", + "Ġ ánh", + "Ġá nh", + "Ġán h", + "ĠV ÃŃ", + "ظ Ù¹", + "à¥į रण", + "à¥įर ण", + "Ġb ilim", + "Ġbi lim", + "Ġbil im", + "Ġlid é", + "Ġd ÃŃky", + "ĠdÃŃ ky", + "ĠÄIJ á»ĵng", + "Ġ εÏģγ", + "Ġε Ïģγ", + "Ġzn ovu", + "Ïĥ ια", + "Ïĥι α", + "Ñ ŀ", + "स à¤Ń", + "e kk", + "ek k", + "Ġμε ÏĦά", + "ÑģÑĤ иÑĩ", + "ÑģÑĤи Ñĩ", + "ÛĮ ÙĨÚ¯", + "ÛĮÙĨ Ú¯", + "ĠÑıв лÑıÑİÑĤÑģÑı", + "Ġ 建", + "Ġå» º", + "Ïĥ Ïĥα", + "ÏĥÏĥ α", + "ав лива", + "à¸ģ รม", + "à¸ģร ม", + "ç¬ Ķ", + "Ġ ге", + "Ġг е", + "Ġ رÙĩ", + "Ġر Ùĩ", + "Ġм ел", + "Ġна пÑĢимеÑĢ", + "ĠнапÑĢи меÑĢ", + "Ġм ик", + "Ġми к", + "ĠاÙĦس ÙĥاÙĨ", + "æ¤ ľ", + "ĠÐļ ÑĢа", + "Ġv Ãłi", + "ĠvÃł i", + "ائ Ùħ", + "ĠÏĩ Ïģή", + "leÅŁ me", + "Ġ jas", + "Ġj as", + "Ġja s", + "ê²Į ìŀĦ", + "Ġm aç", + "Ġma ç", + "Ġì§Ħ íĸī", + "à¥ĩद न", + "Ġvů bec", + "ĠÙĦ ÙĨ", + "è« ĩ", + "âī¡ âī¡", + "л ением", + "ление м", + "лен ием", + "ле нием", + "ع ÙĨÛĮ", + "عÙĨ ÛĮ", + "ãĥŀ ãĥ³", + "Ä° Z", + "ĠÃĸ ÄŁ", + "ĠìŬ ìŀIJ", + "y Å¡", + "Ġ ÑģÑĤа", + "ĠÑģ ÑĤа", + "ĠÑģÑĤ а", + "Ġ สำหร", + "Ġสำ หร", + "Ġन व", + "ãĢĤ ä½Ĩ", + "олÑĮ но", + "Ġyan ında", + "Ġyanı nda", + "è² ´", + "Ġjednot liv", + "Ġ åİŁ", + "Ġåİ Ł", + "éłħ 缮", + "Ġमद द", + "리 ìĹIJ", + "ĠÙħ اÙĬ", + "ĠÙħا ÙĬ", + "ĠÑĩ еÑĢв", + "ĠÑĩеÑĢ в", + "Ġd áv", + "Ġdá v", + "ÙĦ ÛĮÙĩ", + "ÙĦÛĮ Ùĩ", + "? #", + "Äį nÃŃm", + "ÄįnÃŃ m", + "ÑĢ ег", + "ÑĢе г", + "ĠпÑĢимен Ñı", + "ĠпÑĢим енÑı", + "ãĤĬ ãģ¨", + "ê° Ļ", + "Ġtop lam", + "Ġtopl am", + "i leÅŁ", + "il eÅŁ", + "ile ÅŁ", + "Ġk ategor", + "ÑĤ ал", + "ÑĤа л", + "ãģ«ãĤĪ ãĤĭ", + "Ġdom ác", + "Ġ ê·ľ", + "Ġê· ľ", + "ĠÙĩ زار", + "ĠpÅĻÃŃ stup", + "ĠpÅĻÃŃst up", + "ı lıyor", + "ılı yor", + "ıl ıyor", + "ж ди", + "жд и", + "ĠD Æ°Æ¡ng", + "ĠPh áºŃt", + "Ġç ünkü", + "구 ê¸ĢìĥģìľĦ", + "ov aných", + "ova ných", + "ovan ých", + "ovaný ch", + "Ġع Ø´", + "Ġà¤ķर à¤ķ", + "ž ÃŃt", + "žÃŃ t", + "Ġ vÄĽtÅ¡ÃŃ", + "ĠvÄĽt Å¡ÃŃ", + "ĠvÄĽtÅ¡ ÃŃ", + "ĠاÙħ کاÙĨ", + "Ġn ông", + "Ġz ám", + "Ġzá m", + "à¥Į न", + "е каÑĢ", + "ек аÑĢ", + "ека ÑĢ", + "Âł Т", + "k ami", + "ka mi", + "ĠÑĢеÑģ ÑĥÑĢ", + "п оÑģ", + "по Ñģ", + "Ùİ ÙĤ", + "ί λ", + "Ġ سازÛĮ", + "Ġس ازÛĮ", + "Ġساز ÛĮ", + "Ġçık an", + "Ġçı kan", + "ĠdÃŃ tÄĽ", + "Ġتص ÙĪ", + "ç¯ ĩ", + "н д", + "Ġrám ci", + "h ong", + "ho ng", + "hon g", + "Ġ ÑģÑĸм", + "ĠÑģ Ñĸм", + "s ak", + "sa k", + "к еÑĤ", + "ке ÑĤ", + "д Ñĸл", + "дÑĸ л", + "ç¹ Ķ", + "Ġth Æ°á»Łng", + "Ġне ÑĹ", + "з Ñĸ", + "ÅĻ ÃŃd", + "ÅĻÃŃ d", + "ित न", + "à¤ı à¤ķ", + "Ġs ữa", + "ĠÙħ رØŃ", + "ĠÙħر ØŃ", + "é ŀ", + "Ġc Æ°á»Ŀng", + ": .:", + ":. :", + "ÑĤ ен", + "ÑĤе н", + "èī ¦", + "Ġkh ợi", + "Ġ 기ì¤Ģ", + "Ġ기 ì¤Ģ", + "lan ır", + "彩 票", + "ض ÛĮ", + "Ġuz av", + "Ġb oh", + "Ġbo h", + "è m", + "Ġ æ£", + "Ġæ £", + "n ici", + "ni ci", + "nic i", + "( çģ«", + "åħ³ äºİ", + "Ñĸ ÑĩнÑĸ", + "ÑĸÑĩ нÑĸ", + "à¸ģ ารà¸ĵ", + "à¸ģาร à¸ĵ", + "Ġì² «", + "ÑĢ ÑĥеÑĤ", + "ÑĢÑĥ еÑĤ", + "ĠarÅŁiv lendi", + "ÑĤ им", + "ÑĤи м", + "า à¸ł", + "าภł", + "Ġبر ابر", + "Ġ à¹Ģà¸ĭ", + "Ġà¹Ģ à¸ĭ", + "Ġà¹Ģภĭ", + "ĠÄij êm", + "è· ³", + "Ġyön etim", + "Ġyönet im", + "Ġ éķ·", + "Ġéķ ·", + "ãĥĨ ãĥ¬ãĥĵ", + "м аÑĤи", + "ма ÑĤи", + "маÑĤ и", + "è´£ ä»»", + "ick ým", + "ický m", + "è ¸", + "à¹Ģห à¸ķ", + "ëł Į", + "Ġ رÙĬ", + "Ġر ÙĬ", + "ĠвÑĭ дел", + "åĩº çİ°", + "Ġп еÑģ", + "Ġì¢ĭ ìĿĢ", + "Ġà¤ī सन", + "Ġà¤īस न", + "ĠAr alık", + "ĠAra lık", + "ĠÑĩа ÑģÑĥ", + "ĠÑĩаÑģ Ñĥ", + "l ava", + "la va", + "lav a", + "Ġ ï½ŀ", + "Ġï½ ŀ", + "æģ ĭ", + "د ÛĮد", + "دÛĮ د", + "âĢĻ den", + "âĢĻd en", + "âĢĻde n", + "Ġ åĪĿ", + "ĠåĪ Ŀ", + "ÙĪ دة", + "ÙĪد Ø©", + "Ñĩ или", + "Ñĩи ли", + "Ñĩил и", + "ĠÑħаÑĢакÑĤ еÑĢиÑģÑĤи", + "ا ستاÙĨ", + "اس تاÙĨ", + "است اÙĨ", + "द र", + "ĠبÙĪد ÙĨ", + "ĠبÙĪ دÙĨ", + "Ġп алÑĮ", + "Ġпа лÑĮ", + "Ġпал ÑĮ", + "ĠÑĤ ÑĢади", + "ĠÑĤÑĢ ади", + "ĠÑĤÑĢа ди", + "Ġд еÑı", + "Ġде Ñı", + "Ġ خش", + "ĠØ® Ø´", + "Ġpok raÄį", + "Ġ구 ê¸Ģ", + "к овÑĸ", + "ко вÑĸ", + "ков Ñĸ", + "Ġ tık", + "Ġt ık", + "Ġh ấp", + "Ġza lož", + "Ġzal ož", + "१ à¥", + "Ġëĭµ ë³Ģ", + "м еÑĪ", + "ме ÑĪ", + "íļ ¨", + "Ġspol up", + "Ġspolu p", + "Ë Ĩ", + "è¾ ¦", + "Ġg á»Ĺ", + "Ġ å®ļ", + "Ġå® ļ", + "ĵ n", + "as ından", + "asında n", + "- ı", + "ĠбеÑĢ ез", + "大 åѸ", + "Ġз нов", + "Ġзн ов", + "ĠHo Ãłng", + "Ġد ÙĪÙĨ", + "ĠدÙĪ ÙĨ", + "Ġan lay", + "ĠÙĪ زار", + "ĠÙĪز ار", + "ĠعÙĦ ÙħÛĮ", + "ĠعÙĦÙħ ÛĮ", + "è£ ľ", + "Ġdü nya", + "Ġdün ya", + "Ġdüny a", + "Ġза лиÑĪ", + "Ġзал иÑĪ", + "Ġзали ÑĪ", + "д аеÑĤ", + "да еÑĤ", + "ν ε", + "и ÑĩеÑģкого", + "иÑĩеÑģ кого", + "ìĬ¤ íħľ", + "ĠÐij еÑĢ", + "Ġ дж", + "Ġд ж", + "Ġ опаÑģ", + "Ġоп аÑģ", + "ÏĨ α", + "Ġzv lá", + "Ġt ô", + "б еÑĢ", + "бе ÑĢ", + "ĠÎľ αÏģ", + "Ġξα Ïģ", + "ti ÄŁini", + "tiÄŁi ni", + "ãĥ¬ ãĥ³", + "ĠK ho", + "ĠKh o", + "ĠÑĸн ÑĪ", + "Ġ ï¿¥", + "ì° ¬", + "ï½ ¡", + "Ġ ноÑĩ", + "Ġн оÑĩ", + "Ġно Ñĩ", + "è¨ Ĭ", + "ÄĽ ti", + "ÄĽt i", + "å¿ Ļ", + "Ġکرد ÙĨد", + "ĠکردÙĨ د", + "ĠÄij ẩy", + "ĠÑģказ ав", + "ëĥ ¥", + "å± ¬", + "Ġश हर", + "ĠÚ©Ùħ Ú©", + "Âł ÐŁ", + "ın ca", + "нÑĸвеÑĢ ÑģиÑĤ", + "Ġ Ú¯ÙĪÙĨÙĩ", + "ĠÚ¯ ÙĪÙĨÙĩ", + "ĠÚ¯ÙĪ ÙĨÙĩ", + "ĠTop lam", + "ĠiÅŁ aret", + "ä½ł 们", + "Ġd erece", + "Ġde rece", + "Ġder ece", + "Ġdere ce", + "Ġderec e", + "ĠìĤ¬ ìĭ¤", + "Ġ ìŀIJ기", + "ĠìŀIJ 기", + "å®ŀ çİ°", + "çĶŁ çī©", + "ãģ® ä¸Ģ", + "Ġ ÑĢом", + "ĠÑĢ ом", + "ÙĪ زÙĩ", + "ÙĪز Ùĩ", + "Ġ ãģ¨", + "íĻ į", + "ÙĬ ÙĤ", + "Ġ åIJįçĦ¡ãģĹãģķãĤĵ", + "ĠåIJį çĦ¡ãģĹãģķãĤĵ", + "ĠåIJįçĦ¡ãģĹ ãģķãĤĵ", + "ĠÙ¾ ÛĮر", + "ĠÙ¾ÛĮ ر", + "Ġпол ез", + "ì¶ ©", + "ĠкоÑĢ п", + "IJ ëĭ¤", + "á» «a", + "ừ a", + "Îķ Τ", + "Ġжел ез", + "ãģ£ãģ ±", + "Ġx uyên", + "Ġ ë¥", + "Ġë ¥", + "à¥ĩ ।Ċ", + "à¥ĩ। Ċ", + "ĠÑģÑĤ али", + "ĠÑģÑĤал и", + "ĠÑģÑĤа ли", + "Ġpomoc ÃŃ", + "Ġdurum da", + "Ġп ÑĢоÑĪ", + "ĠпÑĢ оÑĪ", + "ĠпÑĢо ÑĪ", + "l enÃŃ", + "le nÃŃ", + "len ÃŃ", + "β ολ", + "βο λ", + "Ġ æĸĩç«ł", + "Ġæĸĩ ç«ł", + "tÄĽ z", + "d ÃŃl", + "dÃŃ l", + "Ġdruh é", + "ĠÑĤ огда", + "Ġh rá", + "Ġhr á", + "о ÑĤÑĮ", + "оÑĤ ÑĮ", + "า à¸ģร", + "าà¸ģ ร", + "Ġتص Ùħ", + "ĠÙħد ت", + "ка дем", + "Ġpat ÅĻÃŃ", + "ä¹ĭ åīį", + "س بة", + "سب Ø©", + "Ġпо кÑĢÑĭ", + "Ġпок ÑĢÑĭ", + "Ġn áp", + "Ġná p", + "Ġ_ {}", + "Ġ_{ }", + "ëĵ± íķĻêµIJ", + "ĠØ¥ ÙĦÙĬ", + "ĠØ¥ÙĦ ÙĬ", + "Ġöz g", + "çļ Ĩ", + "Ġhay van", + "ĠN isan", + "ĠNi san", + "غ از", + "Ġت ت", + "ĠдÑĥ Ñħов", + "ĠдÑĥÑħ ов", + "ĠÐŁÐ¾ ÑįÑĤомÑĥ", + "ÑĮ огод", + "ÑĮого д", + "Ġk uÅŁ", + "Ġku ÅŁ", + "Ġà¤ĩ सम", + "Ġà¤ĩस म", + "ج ÛĮ", + "Ġ ãĤ¿", + "ĠãĤ ¿", + "Ġв кÑĥÑģ", + "Ġвк ÑĥÑģ", + "ĠвкÑĥ Ñģ", + "ç Ģ", + "ĠвÑĭ ÑĪе", + "âĢĻ dan", + "âĢĻd an", + "âĢĻda n", + "ĠاØŃ Ùħد", + "Ġtal ep", + "Ġta lep", + "Ġtale p", + "Ġ ÏĪ", + "ĠÏ Ī", + "Ġdol ayı", + "Ġdolay ı", + "ĠÚ¯ زارش", + "б ол", + "бо л", + "ĠاÛĮÙĨ تر", + "ÑĢ оÑĩ", + "ÑĢо Ñĩ", + ") âĢı", + "Ġ ëIJł", + "ĠëIJ ł", + "Ġk oup", + "Ġko up", + "Ġkou p", + "( æľĪ", + "é± ¼", + "Ġ огÑĢа", + "Ġо гÑĢа", + "Ġог ÑĢа", + "ĠÑĢаз м", + "ĠÑĢа зм", + "Ġت ست", + "Ġتس ت", + "ĠpÅĻÃŃ slu", + "í ĽĪ", + "ĠëĮĢ íķ´", + "à¹ģ à¸Ľ", + "ан нÑĭе", + "аннÑĭ е", + "ĠìĿ¸ íĦ°", + "Ġkullan ılan", + "Ġkullanı lan", + "Ġkullanıl an", + "Ġz tr", + "æĬĢ è¡ĵ", + "ि à¤Ľ", + "िठĽ", + "ĠاÙĦÙħ ؤ", + "ov aly", + "ova ly", + "oval y", + "us tos", + "ust os", + "usto s", + "Ġö rg", + "Ġör g", + "Ġ 太", + "Ġå¤ ª", + "ε ιο", + "ει ο", + "Ġ uÄį", + "Ġu Äį", + "ĠØ´ Ú©ÙĦ", + "ĠØ´Ú© ÙĦ", + "建 çŃij", + "Ġch ạy", + "ĠÏĩ Ïģη", + "н ÑĥÑĤ", + "нÑĥ ÑĤ", + "Ġباع Ø«", + "ĠNÄĽk ter", + "ÑĥÑĤ ÑĤÑı", + "ãģ§ãģĻ ãģĭ", + "Ġsay ılı", + "Ġsayı lı", + "им оÑģÑĤÑĮ", + "имо ÑģÑĤÑĮ", + "ĠпиÑĤ аннÑı", + "Ġk ÃŃnh", + "Ġh ran", + "Ġhr an", + "Ġhra n", + "ok rat", + "Ġed ilir", + "Ġedil ir", + "Ġà¤ķह त", + "Ġp aci", + "Ġpa ci", + "Ġpac i", + "ाल न", + "Ġи де", + "Ġид е", + "ĠZ em", + "ĠZe m", + "Ġsluž by", + "ÑģÑĤв еннÑĭй", + "ÑģÑĤвен нÑĭй", + "ĠØ¢ ÙĨاÙĨ", + "ĠØ¢ÙĨ اÙĨ", + "ĠÑĤ оваÑĢи", + "ĠÑĤоваÑĢ и", + "ĠÑĤов аÑĢи", + "ĠتØŃ ÙħÙĬÙĦ", + "ĠY ük", + "Ġк аÑĤегоÑĢ", + "ĠкаÑĤ егоÑĢ", + "íĭ Ģ", + "Ġк оÑģ", + "Ġко Ñģ", + "Ġ обов", + "Ġо бов", + "Ġоб ов", + "Ġобо в", + "ĠprostÅĻed ÃŃ", + "ĠÑģ оÑģ", + "ĠÑģо Ñģ", + "ĠÐIJ лекÑģанд", + "ĠÐIJлекÑģ анд", + "Ġ à¹Ģà¸Ĥà¸ķ", + "Ġà¹Ģà¸Ĥ à¸ķ", + "å¿ħ é¡»", + "ั à¸Ĭ", + "ĠÙĦ د", + "ãĢģ ä¸Ģ", + "ĠÎľ ÎŃ", + "Ñĥ ваÑĤиÑģÑı", + "Ñĥв аÑĤиÑģÑı", + "ÑĥваÑĤи ÑģÑı", + "Ñĥва ÑĤиÑģÑı", + "æķ ı", + "ãĥ¼ ãĥIJ", + "ãĥ¼ãĥ IJ", + "اÙĦ ÙĦÙĩ", + "Ġب Ùĩا", + "ĠبÙĩ ا", + "åĸ ¶", + "è´ µ", + "æĸ¹ åIJij", + "Ġ ì¸", + "Ġì ¸", + "Ġ ÙĨاÙħÙĩ", + "ĠÙĨ اÙħÙĩ", + "ĠÙĨاÙħ Ùĩ", + "ÑĮ ко", + "Ġv ody", + "Ġvo dy", + "Ġvod y", + "v ÃŃc", + "vÃŃ c", + "à¹ģ à¸Ī", + "Ġع ÙĦÛĮÙĩ", + "ĠعÙĦ ÛĮÙĩ", + "ĠعÙĦÛĮ Ùĩ", + "à¹ģ รà¸ĩ", + "ί να", + "ίν α", + "ãģ ¬", + "Ġ Ðŀп", + "ĠÐŀ п", + "Ġsay f", + "ï¼Į çĶ±", + "ä¼ ´", + "ĠÑĥд об", + "ãģ¾ ãģł", + "Ġне пÑĢи", + "Ġнеп ÑĢи", + " İ", + "à¤¾à¤ľ प", + "pl nÄĽ", + "Ġ ìĹĦ", + "ĠìĹ Ħ", + "Ġrů zn", + "Ġrůz n", + "Ġx ếp", + "ãĥĸ ãĥ«", + "ĠзаÑħ иÑģÑĤ", + "ĠÙħص رÙģ", + "ĠÙħصر Ùģ", + "ĠvÅ¡ech no", + "ãģ® ãģĬ", + "ĠTh á»ĭ", + "Ġm ùa", + "¿ IJ", + "ĠпÑĢин ÑĨип", + "ĠاÙĨ ÙĤÙĦ", + "г аÑĢ", + "га ÑĢ", + "Ġmož nost", + "ÙĤ ÙĬÙĤ", + "ÙĤÙĬ ÙĤ", + "Ġotev ÅĻ", + "Ġ fak", + "Ġf ak", + "Ġfa k", + "Ġng uy", + "Ġngu y", + "б ов", + "бо в", + "l acaÄŁ", + "lac aÄŁ", + "ا طر", + "اط ر", + "ãģ« ãĤĪãĤĬ", + "ãģ«ãĤĪ ãĤĬ", + "æĺ¯ åľ¨", + "Ġt ầng", + "ìĿ¸ ìĿ´", + "a ÅĻ", + "ç ¢°", + "ç¢ °", + "ÏĮ με", + "Ġ ê°Ī", + "Ġê° Ī", + "ĠØ£ ØŃد", + "ĠØ£ØŃ Ø¯", + "غ راÙģ", + "غر اÙģ", + "ĠÙĬ ØŃ", + "ï½ §", + "ĠاÙĦØŃÙĬ اة", + "Ġ lep", + "Ġl ep", + "Ġle p", + "Ġ ฮ", + "Ġภ®", + "t ae", + "ta e", + "Ġl Æ°Æ¡ng", + "è½ ®", + "Ġз мÑĸн", + "ĠзмÑĸ н", + "Ġзм Ñĸн", + "ĠÐļи ÑĹв", + "ĠмÑĸ ÑģÑı", + "ĠмÑĸÑģ Ñı", + "к ав", + "ка в", + "à¸ķ ะ", + "Ġm noho", + "Ġmn oho", + "Ġmnoh o", + "ĠNgh á»ĭ", + "èĻ İ", + "Ġ ãĥŁ", + "Ġãĥ Ł", + "Ġp ráci", + "Ġpr áci", + "Ġprá ci", + "Ġg á»ijc", + "ĠY eni", + "ĠYe ni", + "ĠYen i", + "ا ضÙĬ", + "اض ÙĬ", + "Ġ èij", + "Ġè ij", + "Ġк ла", + "Ġкл а", + "ı ng", + "ÏĦ εί", + "ÏĦε ί", + "Ġb eni", + "Ġbe ni", + "Ġben i", + "Ġ عد", + "Ġع د", + "Ġ aktu", + "Ġak tu", + "Ġakt u", + "ĠÙĪ ÙĤد", + "ĠÙĪÙĤ د", + "Ġпод гоÑĤов", + "Ġgi ai", + "Ġgia i", + "( æ°´", + "Ġs aç", + "Ġsa ç", + "ĠÙħÙĨ اسب", + "ĠÙħÙĨاس ب", + "âĸ ĭ", + "ÙIJ Ùĩ", + "é į", + "à¸Ń à¸Ĺ", + "ĠسÛĮ اسÛĮ", + "o lit", + "ol it", + "oli t", + "ĠاÙĦ جز", + "ĠاÙĦج ز", + "Ø· ÙĦب", + "Ø·ÙĦ ب", + "Ġ sey", + "Ġs ey", + "Ġse y", + "e rence", + "er ence", + "ere nce", + "eren ce", + "ì´ Į", + "ĠвнÑĥÑĤÑĢ ен", + "ĠвнÑĥÑĤ ÑĢен", + "Ġ à¸Ļาย", + "Ġà¸Ļ าย", + "ĠìķĬ ìķĺëĭ¤", + "ĠìķĬìķĺ ëĭ¤", + "o lik", + "ol ik", + "oli k", + "æľĢ åIJİ", + "ä» ª", + "Ġ ÑĢÑĸд", + "ĠÑĢ Ñĸд", + "è¼ ĥ", + "Ġ باب", + "Ġب اب", + "Ġبا ب", + "Ñĥ ди", + "Ñĥд и", + "Ġ ÑģÑĤÑĥп", + "ĠÑģÑĤ Ñĥп", + "ĠÄij ứng", + "ĠÄijứ ng", + "ĠÅŁ öyle", + "Ġ íķĻìĥĿ", + "ĠíķĻ ìĥĿ", + "Ġв лаÑģÑĤи", + "Ġвла ÑģÑĤи", + "ĠвлаÑģ ÑĤи", + "Ġh ãng", + "Ġhã ng", + "à¹ī าว", + "à¹īา ว", + "ĠÚ© اÙĩØ´", + "Ġ ëĵ¯", + "Ġëĵ ¯", + "ĠجÙħ ÙĦÙĩ", + "Ġد کتر", + "ad olu", + "ado lu", + "adol u", + "Ġت بد", + "Ġتب د", + "ظ اÙħ", + "Ġz naÄį", + "Ġzn aÄį", + "Ġد ÙĨÛĮ", + "ĠدÙĨ ÛĮ", + "Ġs ạn", + "å¼ ±", + "ÏĢ ι", + "Ġ çIJĨ", + "ĠçIJ Ĩ", + "Ġ ÙģصÙĦ", + "ĠÙģ صÙĦ", + "и нг", + "ин г", + "Ðļ Ðŀ", + "ĠС ов", + "ĠСо в", + "Ġziy aret", + "Ġ دÙħ", + "Ġد Ùħ", + "ç« ¹", + "Ġsah ibi", + "is ayar", + "isa yar", + "isay ar", + "ÄŁ a", + "ĠпеÑĢÑĸ од", + "Ġs na", + "Ġsn a", + "( æľ¨", + "Ġ нее", + "Ġн ее", + "Ġне е", + "ĠÑĦак ÑĤоÑĢ", + "ĠÑĦакÑĤ оÑĢ", + "м еж", + "ме ж", + "åº Ħ", + "r áž", + "rá ž", + "ок ÑĢем", + "Ġž al", + "ิ à¹Ģศษ", + "è± ª", + "ou cÃŃ", + "ĠU lus", + "ĠUl us", + "Ġtak že", + "ا ÙĪÙĨ", + "اÙĪ ÙĨ", + "н иÑĤи", + "ни ÑĤи", + "ниÑĤ и", + "нÑĮ о", + "ëį ¸", + "Ġ Ùĥرة", + "ĠÙĥ رة", + "ĠÙĥر Ø©", + "åľ ³", + "ĠArth ropoda", + "ĠÑĤ одÑĸ", + "ĠÑĤо дÑĸ", + "Ġدر صد", + "ุ รà¸ģ", + "ุร à¸ģ", + "ĠÑģв ого", + "ĠÑģво го", + "说 éģĵ", + "Ġc ánh", + "Ġcá nh", + "Ġcán h", + "æĵ Ĭ", + "Ġ ä¸ĭè½½", + "Ġä¸ĭ è½½", + "èī ¾", + "Ġnik dy", + "Ø® Ø·", + "ĠÑģ ейÑĩаÑģ", + "ÙĪ ÙĬÙĦ", + "ÙĪÙĬ ÙĦ", + "a met", + "am et", + "ame t", + "문 ìĿĺ", + "ĠE ÄŁitim", + "大 ä¼ļ", + "Ġb ÅĻez", + "за ÑĨÑĸÑı", + "Ġty to", + "н ай", + "на й", + "غ Ùħ", + "Ġ é©", + "Ġé ©", + "计 ç®Ĺ", + "Türk iye", + "Ġmn ož", + "åIJĪ ä½ľ", + "æľį åĭĻ", + "Ġkažd ý", + "ĠÑİ ÑĢид", + "Ġ βα", + "Ġβ α", + "à¥Ĥ à¤ļ", + "åIJĮ ãģĺ", + "Ġ çĭ", + "Ġç ĭ", + "ί ÏĦ", + "ÙĪÛĮ ÙĨت", + "ÙĪÛĮÙĨ ت", + "ا ÙĨس", + "اÙĨ س", + "æľĢ 大", + "Ġ Từ", + "ĠT ừ", + "éŃĶ æ³ķ", + "Ġб ли", + "Ġбл и", + "ĠÑĤак ое", + "ĠÑĤа кое", + "ãģ ľ", + "ãĢĢ ĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢ", + "ãĢĢĠ ãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢ", + "ìĿ´ ë©°", + "ĠÙĤسÙħ ت", + "Ġ оÑĨÑĸ", + "Ġо ÑĨÑĸ", + "н икÑĥ", + "ни кÑĥ", + "ник Ñĥ", + "Ġ Bạn", + "ĠB ạn", + "ĠоÑĢг анÑĸз", + "ĠоÑĢган Ñĸз", + "ĠоÑĢганÑĸ з", + "ü ph", + "üp h", + "Ġ izin", + "Ġi zin", + "Ġiz in", + "Ġ ï¾Ĭ", + "Ġï¾ Ĭ", + "εί ÏĤ", + "à¸ĩ à¹ģà¸ķ", + "ãģ¡ ãĤī", + "ва жа", + "важ а", + "Ġ 欧", + "Ġæ¬ §", + "ι Ïİ", + "ÏĢ ÎŃ", + "Ġк ÑĢеп", + "ĠÑĨ иÑħ", + "ĠÑĨи Ñħ", + "æĦŁ ãģĺ", + "çķ «", + "Ùĥ ÙĪ", + "е мо", + "ем о", + "ž en", + "že n", + "å¹³ æĸ¹", + "ĠÙħجÙħÙĪع Ùĩ", + "ĠÑģво и", + "Ġ ãĦ", + "à¸Ľà¸£à¸°à¸ģ à¸Ńà¸ļ", + "ĠпÑĢ оÑĤи", + "ĠпÑĢо ÑĤи", + "ĠпÑĢоÑĤ и", + "ÙĪ ÛĮÙĩ", + "ÙĪÛĮ Ùĩ", + "认 为", + "ÏĨ ÎŃ", + "и ÑĩеÑģкий", + "иÑĩеÑģ кий", + "иÑĩеÑģки й", + "æ¥ ļ", + "Ġп ап", + "Ġпа п", + "δ Ïģο", + "Ġkullan ım", + "Ġkullanı m", + "Ġz bo", + "Ġzb o", + "Ġú spÄĽ", + "Ġ Ùħز", + "ĠÙħ ز", + "ĠF ak", + "ĠFa k", + "елÑĮ зÑı", + "æ´» åĭķ", + "ĠÐŁ ÑĢав", + "ĠÐŁÑĢ ав", + "ĠÐŁÑĢа в", + "¦ y", + "åĥ ķ", + "æij ĺ", + "Ġر ئ", + "Ġ ÏĨοÏģ", + "ĠÏĨ οÏģ", + "м иÑĤ", + "ми ÑĤ", + "Ġt icaret", + "Ġti caret", + "Ġtic aret", + "æ³ķ å¾ĭ", + "å¹´ 代", + "ìĪ Ļ", + "å ¿ł", + "å¿ ł", + "à¹ĩ à¸Ļà¸Ĺ", + "à¹ĩà¸Ļ à¸Ĺ", + "Ġ Ñĥж", + "ĠÑĥ ж", + "ĠÙħتØŃ Ø¯Ùĩ", + "Ġtr á»Ŀi", + "Ġ رØŃ", + "Ġر ØŃ", + "ĠÚ©ÙĪ ÚĨ", + "ĠопÑĢед елен", + "ĠопÑĢедел ен", + "ĠزÙħ ÛĮÙĨÙĩ", + "ĠزÙħÛĮÙĨ Ùĩ", + "Ġn óng", + "Ġnó ng", + "Ġng ủ", + "Nh ững", + "Ġк иÑĪ", + "Ġки ÑĪ", + "Ġ jde", + "Ġj de", + "Ġjd e", + "Ġ ä¸Ĭæµ·", + "Ġä¸Ĭ æµ·", + "åĭ ĩ", + "Ġt anı", + "Ġtan ı", + "à¹Į à¹ģละ", + "à¹Įà¹ģ ละ", + "ĠÑĢа ÑģÑĤвоÑĢ", + "ĠÑĢаÑģÑĤ воÑĢ", + "ĠÑģÑĢед ÑģÑĤв", + "Ġc án", + "Ġcá n", + "Ġsyst ému", + "Ġsystém u", + "ÛĮ Ø·", + "ĠÑģиÑģÑĤем а", + "Ġ ëŀ", + "Ġë ŀ", + "Ġ ÑĩеÑĤ", + "ĠÑĩ еÑĤ", + "éĥ¨ éŨ", + "å¸ °", + "Ġm illet", + "Ġmill et", + "Ġmil let", + "ĠÎķ λλά", + "à¥ĩà¤ĸ न", + "Ġrepublik y", + "ÑĢ ами", + "ÑĢа ми", + "ÑĢам и", + "Ġसम स", + "Ġaç ısından", + "اد ÙĦ", + "Ġб еÑģп", + "ĠбеÑģ п", + "ãĥ» âĶģ", + "åľ Ń", + "o cu", + "oc u", + "k ánÃŃ", + "ká nÃŃ", + "ÙĪ رش", + "ÙĪر Ø´", + "ëŀ µ", + "Ġ çģ", + "Ġç ģ", + "è° ģ", + "Ġs ám", + "Ġν εÏĨ", + "Ġνε ÏĨ", + "b ilir", + "bil ir", + "ĠmÃŃst ÄĽ", + "Ġ žen", + "Ġž en", + "Ġže n", + "Ġil ç", + "Ġ ë§ģ", + "Ġë§ ģ", + "ãĢij Ċ", + "ĠÙħÙĪ ارد", + "ĠاÙĦ Ø´ÙĬ", + "ĠاÙĦØ´ ÙĬ", + "Ġ기 ë¡Ŀ", + "Ġt ady", + "Ġta dy", + "Ġtad y", + "à¸Ń าà¸Ī", + "ĠÑģ ÑĦ", + "ĠspoleÄį nost", + "Ġtém atu", + "Ùħ اÙħ", + "Ùħا Ùħ", + "Ùħ ع", + "Ġ леж", + "Ġл еж", + "ĠÚĨ Ø´Ùħ", + "ĠiÅŁ let", + "ĠÙĨس Ø®", + "ä¼ °", + "ãģį ãģª", + "ãĢ ĥ", + "å² Ĺ", + "Ġ åŃIJ", + "Ġå ŃIJ", + "ĠåŃ IJ", + "Ġb ảng", + "Ġbản g", + "çĮ ®", + "Ġc ứng", + "Ġcứ ng", + "Ġк ÑĢай", + "ĠкÑĢа й", + "Ġ èĭ±è¯Ń", + "Ġèĭ± è¯Ń", + "Ðł ÐIJ", + "ز ÙĨ", + "èĥ ŀ", + "Ġsür eç", + "Ġsüre ç", + "ãĥķ ãĥĪ", + "ĠкÑĸлÑĮ ка", + "ne ÄŁin", + "neÄŁi n", + "ov ány", + "ová ny", + "ován y", + "л Ñĸн", + "лÑĸ н", + "Ġvý raz", + "ĠÑģÑĩ иÑĤа", + "ĠÑģÑĩиÑĤ а", + "ĠпÑĢав ило", + "ĠпÑĢави ло", + "ĠпÑĢавил о", + "ĠиÑģполÑĮз Ñĥ", + "Ġk éo", + "Ġké o", + "ĠyaklaÅŁ ık", + "ĠÙĪاب ستÙĩ", + "ов аÑĤелÑĮ", + "Ġ ì²ł", + "Ġì² ł", + "ĠاÙĦ عاÙħ", + "ĠاÙĦع اÙħ", + "åĿ ı", + "Ġ à¸ī", + "Ġภī", + "ĠS Æ¡n", + "λ ιο", + "λι ο", + "ì¶Ķ ì²ľ", + "Ġsluž eb", + "ĠдеÑıÑĤелÑĮ ноÑģÑĤи", + "з м", + "Ġп ози", + "Ġпо зи", + "Ġпоз и", + ".; .;", + "ĠпÑĢоиÑģ ÑħодиÑĤ", + "าย à¹ĥà¸Ļ", + "çļĦ ãģ«", + "Ġà¤ĩस स", + "о меÑĤ", + "ом еÑĤ", + "Ġ αÏģ", + "Ġα Ïģ", + "ा à¤Ĺर", + "ाà¤Ĺ र", + "i cÃŃch", + "ic ÃŃch", + "icÃŃ ch", + "Ġpolož ky", + "ê³ ¨", + "æĥ Ĭ", + "Ġö ner", + "Ġön er", + "Ġöne r", + "Ġx ảy", + "ĠÙĨظ رÛĮ", + "ĠÙĨظر ÛĮ", + "Ġngh á»ī", + "Ġ à¸ľà¸¥", + "Ġà¸ľ ล", + "ĠÑĢ олÑĮ", + "ĠÑĢ емон", + "ĠÑĢе мон", + "ص ÙĪر", + "V ý", + "ĠS á»ij", + "ĠÑģ ÑĥÑĩаÑģ", + "ĠÑģÑĥ ÑĩаÑģ", + "ห ย", + "ĠاÙĤ داÙħ", + "Ġer kek", + "Ġerk ek", + "Ġ èį", + "Ġè į", + "ĠÄij ôi", + "ĠÄijô i", + "Ġкон кÑĢеÑĤ", + "æ¬ Ĭ", + "Ġ 缮", + "ĠçĽ ®", + "ÙĪ Ú©", + "lı kla", + "lık la", + "Ġp azar", + "Ġpa zar", + "Ġpaz ar", + "ά νÏī", + "άν Ïī", + "Ñĥ ÑģÑĤа", + "ÑĥÑģ ÑĤа", + "ÑĥÑģÑĤ а", + "ãģª ãģŁ", + "Ġ ÙĩÙĨÚ¯", + "ĠÙĩ ÙĨÚ¯", + "ĠÙĩÙĨ Ú¯", + "Ю ÐĽ", + "Ġв елик", + "Ġвели к", + "Ġвел ик", + "Ġве лик", + "Ġnh Ỽ", + "Ġ ìĭľíĹĺ", + "Ġìĭľ íĹĺ", + ") ìĿĺ", + "Ùĥ Ùĩ", + "Ġ à¹ģล", + "Ġà¹ģ ล", + "Û² Ûµ", + "Ġار ساÙĦ", + "Ġ окÑĢем", + "Ġок ÑĢем", + "ά ÏĤ", + "ĠвÑĭ Ñħод", + "vÄĽt Å¡ÃŃ", + "ĠØ· رÛĮÙĤ", + "Ġк оÑĢоÑĤ", + "ĠкоÑĢ оÑĤ", + "Ġко ÑĢоÑĤ", + "н ÑĶ", + "ãĤĬ ãģ«", + "Ġ ä¹Ł", + "Ġä¹ Ł", + "ØŃ Øµ", + "ع ÙħاÙĦ", + "عÙħ اÙĦ", + "oloj ik", + "oloji k", + "Ġر ابط", + "Ġرا بط", + "çª Ĺ", + "Ġg iz", + "Ġgi z", + "Ġch ết", + "Ġchế t", + "æ¨ £", + "ส à¸ĩ", + "ÙĪ تر", + "ÙĪت ر", + "ĠÑı кÑĥ", + "ĠÑıк Ñĥ", + "çı¾ åľ¨", + "ĠоÑĤ ÑģÑĥÑĤÑģÑĤв", + "Ġ ê´ijê³ł", + "Ġê´ij ê³ł", + "Ñĸ ки", + "Ñĸк и", + "åĢ ¤", + "è® ¢", + "Ġ dle", + "Ġd le", + "Ġdl e", + "Ġ åł", + "Ġå ł", + "æ¨ ©", + "è® ¯", + "åĶ IJ", + "Ġ âĸ²", + "Ġâĸ ²", + "Ġli stop", + "Ġlist op", + "Ġlis top", + "Ġdat ové", + "Ġdato vé", + "ÏĦ ÏĮÏĤ", + "ÏĦÏĮ ÏĤ", + "Ġ оз", + "Ġо з", + "δ ÏĮ", + "èĴ Ĥ", + "Û³ Û°", + "ãĥª ãĥ¼ãĤº", + "ãĥªãĥ¼ ãĤº", + "ĠÙħر کز", + "ĠÙħرک ز", + "ĠпÑĸдÑĤ ÑĢим", + "ĠÑģ ез", + "é¡ ĺ", + "Ġol acaktır", + "Ġolacak tır", + "æº Ģ", + "ĠÏĢεÏģι ο", + "ĠÏĢεÏģ ιο", + "ĠÏĢε Ïģιο", + "ÑĦ а", + "ÏĦ ηÏĥη", + "ÏĦη Ïĥη", + "ç» ĥ", + "Ðŀ д", + "δ Ïħ", + "âĦ ĥ", + "Ġl ắp", + "ĠëĦ ĺ", + "Ø· اÙĨ", + "ĠÙ¾ ÙĨج", + "ĠÙ¾ÙĨ ج", + "ت اÙĨ", + "تا ÙĨ", + "i lerinin", + "iler inin", + "ileri nin", + "ilerin in", + "ilerini n", + "à Ī", + "ĠØ® ÙĪØ´", + "ĠØ®ÙĪ Ø´", + "Ġ ìĬ¬", + "ĠìĬ ¬", + "ĠاÙĦر ئÙĬس", + "ẵ n", + "Ġ شار", + "ĠØ´ ار", + "e ru", + "er u", + "ж ив", + "жи в", + "à¸Ļ าย", + "à¸Ļา ย", + "Ġs ẻ", + "Ġà¤ī à¤ļ", + "ãģ« ãģĭ", + "ç¡ Ģ", + "Ġyür üt", + "ĠС еÑĢг", + "ĠСеÑĢ г", + "Ġ каÑģ", + "Ġк аÑģ", + "Ġка Ñģ", + "ĠÐij ог", + "Ġìĸ´ëĸ »ê²Į", + "Ġ çŁ³", + "Ġç Ł³", + "ĠçŁ ³", + "Ġöl dür", + "Ġöld ür", + "л Ñĸв", + "лÑĸ в", + "Ġho Ãłng", + "ĠhoÃłn g", + "Ġb á»Ļt", + "Ġbá»Ļ t", + "çŀ ¬", + "Ġ 침", + "Ġì¹ ¨", + "N ếu", + "Ġne vy", + "Ġnev y", + "Ġ ìľ¤", + "Ġìľ ¤", + "Ġsou Äįást", + "ıs ıyla", + "ısı yla", + "Ġtük et", + "b ou", + "bo u", + "Ġд во", + "Ġдв о", + "س Ø·", + "å½ĵ çĦ¶", + "ãĥ ¨", + "Ġ زادÙĩ", + "Ġز ادÙĩ", + "Ġزاد Ùĩ", + "Ġ éĥ¨", + "Ġéĥ ¨", + "Ġر ÙĪØŃ", + "ĠرÙĪ ØŃ", + "Ġ ï¼į", + "Ġï¼ į", + "ĠмÑĸÑģ ÑĨев", + "ĠмÑĸÑģÑĨе в", + "θ εν", + "θε ν", + "ภĨ", + "л енÑĸ", + "лен Ñĸ", + "ле нÑĸ", + "çį ²", + "ĠH OH", + "ĠHO H", + "s ın", + "sı n", + "ิ à¸ķร", + "ิà¸ķ ร", + "è² ¡", + "ĠpÅĻ id", + "ĠpÅĻi d", + "à¹Ģ หà¸Ļ", + "à¹Ģห à¸Ļ", + "l ý", + "è¨Ģ èijī", + "ठĵ", + "âĸįâĸįâĸįâĸį âĸįâĸįâĸįâĸį", + "ب اب", + "با ب", + "ãĥ¼ ãĥķ", + "ãĥ¼ãĥ ķ", + "м оÑĢ", + "мо ÑĢ", + "è¿ĩ ç¨ĭ", + "Ġ ãĥĽ", + "Ġãĥ Ľ", + "ĠK inh", + "ĠKi nh", + "ĠKin h", + "íķľ êµŃ", + "Ġìĸ´ëĸ ¤", + "Ġв лиÑı", + "Ġf ayd", + "Ġfa yd", + "Ġص ÙĨع", + "ĠصÙĨ ع", + "Ġal ır", + "Ġet tiÄŁi", + "Ġetti ÄŁi", + "ά κ", + "im izin", + "imi zin", + "imiz in", + "imizi n", + "ัà¸ļ à¸ľ", + "Ġзем елÑĮ", + "ÙĬÙĦ اد", + "ÙĬÙĦا د", + "æ¶ ¨", + "çı ł", + "ĠØ£ غ", + "Ġz ku", + "Ġzk u", + "âĢŀ A", + "า à¸ķร", + "าà¸ķ ร", + "a yi", + "ay i", + "ãĥ© ãĤ¹", + "и ло", + "ил о", + "ĠÄij á»į", + "ĠÄijá» į", + ". Îķ", + "ë ľ", + "ĠμÏĢο Ïģεί", + "å¸ ¶", + "Ġar tır", + "Ġart ır", + "า à¸į", + "าภį", + "å¿ ĺ", + "ta lya", + "tal ya", + "Ġpoz dÄĽji", + "ĠpozdÄĽ ji", + "Ġnep ÅĻ", + "Ġ æ¹", + "Ġæ ¹", + "اÙĩ ÛĮ", + "Ġsat ın", + "Ġ ë²Į", + "Ġë² Į", + "ج ÙĪ", + "ä¸Ģ 缴", + "ìķĦ ìļĶ", + "Âł P", + "Ġ ØĽ", + "ĠØ Ľ", + "Ġп ал", + "Ġпа л", + "表 æĥħ", + "Ġc anlı", + "Ġcan lı", + "æĪIJ 为", + "ÙĪ ÙĨا", + "ÙĪÙĨ ا", + "Ġ âĢ¯", + "ĠâĢ ¯", + "à¸ģำ ล", + "åį ĸ", + "Ġ αÏĥ", + "Ġα Ïĥ", + "и нок", + "ин ок", + "а мп", + "ам п", + "ล à¸Ńà¸ĩ", + "ÙĤ ÙĤ", + "ĠпÑĢо Ñħод", + "ĠпÑĢоÑħ од", + "ãĤĦãĤĭ 夫", + "Ïĩ η", + "è² ¨", + "ĠÙģ ÙĬÙĩ", + "ĠÙģÙĬ Ùĩ", + "ÙĬ رÙĬ", + "ÙĬر ÙĬ", + "Ġвне ÑĪ", + "Ġk arak", + "Ġka rak", + "Ġkar ak", + "Ġkara k", + "Ø« ÙĦ", + "Ùĩ ÙĪرÛĮ", + "ÙĩÙĪر ÛĮ", + "اÙĪر Ù¾", + "ĠÄij á»ı", + "ĠÄijá» ı", + "ji Å¡tÄĽnÃŃ", + "jiÅ¡tÄĽ nÃŃ", + "ت بر", + "تب ر", + "Ġê·¸ ê²ĥ", + "Ġg ül", + "Ġgü l", + "Ġпо кÑĥп", + "Ġпок Ñĥп", + "l ilik", + "li lik", + "lili k", + "lil ik", + "Ġz da", + "Ġzd a", + "åīį ãģ«", + "ĠÙħÙĩ ÙĨد", + "Ġ ÎijÎĿ", + "ĠÎij ÎĿ", + "ĠÚ©ÛĮÙĦ ÙĪÙħتر", + "Ġp ÅĻeh", + "ĠpÅĻ eh", + "ĠpÅĻe h", + "а леж", + "ал еж", + "але ж", + "Ġka yn", + "Ġkay n", + "è® ¿", + "Ġì¤ij êµŃ", + "ĠÑĪиÑĢ ок", + "ĠÑĪи ÑĢок", + "ĠÙħشار کت", + "âĢ Ĥ", + "Ġ íŤ", + "ĠíĹ ¤", + "Ġìłľ íĴĪ", + "ĠØ´ ÛĮر", + "ĠØ´ÛĮ ر", + "es inden", + "esinde n", + "esin den", + "ÑĢ ÑĸÑĩ", + "ÑĢÑĸ Ñĩ", + "èı ²", + "Ñģ коÑĢ", + "Ñģк оÑĢ", + "Ñģко ÑĢ", + "e tik", + "et ik", + "eti k", + "า à¸ľ", + "าภľ", + "ĠØ· بÛĮ", + "Ġطب ÛĮ", + "κ ÎŃ", + "ĠìŀĪ ìĸ´", + "Ġ dek", + "Ġd ek", + "Ġde k", + "ÑĢ Ñĸй", + "ÑĢÑĸ й", + "å ĨĴ", + "åĨ Ĵ", + "nÃŃ ci", + "® ¤", + "ĠÙħر تب", + "Ġy azı", + "Ġya zı", + "Ġyaz ı", + "üs lü", + "ìľ¼ ëĤĺ", + "e lerine", + "eler ine", + "ele rine", + "eleri ne", + "elerin e", + "Ġy oÄŁun", + "Ġб ак", + "Ġба к", + "ÎĻ ÎŁ", + "ά λÏħ", + "άλ Ïħ", + "ç´ Ļ", + "ĠÑĢÑĥ ками", + "ĠÑĢÑĥк ами", + "Ġçöz üm", + "ìłķ ìĿĦ", + "Ġgüç lü", + "λ ÏĮ", + "Ġb elli", + "Ġbe lli", + "Ġbel li", + "Ġbell i", + "ÃŃ Å¡e", + "ÃŃÅ¡ e", + "ĠÏĮ ÏĢÏīÏĤ", + "Ġna Å¡", + "Ġp ár", + "Ġpá r", + "ÑĪ ÑĤ", + "Ġ ìĨ¡", + "ĠìĨ ¡", + "à¥Ĥ रत", + "à¥Ĥर त", + "ĠÏĢολ Ïį", + "ĠÏĢο λÏį", + "ç° ¡", + "èĤ ¯", + "æ¹ ¾", + "Ġ äºĭ", + "Ġब स", + "Ġ무 ë£Į", + "д ина", + "дин а", + "ди на", + "èª °", + "л еж", + "ле ж", + "Ġú ÅĻad", + "ĠоÑģвÑĸ ÑĤи", + "ĠоÑģвÑĸÑĤ и", + "ĠвÑĸд Ñĩ", + "ĠпÑĢи знаÑĩ", + "ĠпÑĢизна Ñĩ", + "ĠпÑĢиз наÑĩ", + "çĶ³ 请", + "' ya", + "'y a", + "ä¿ Ĭ", + "Ġ ÙĬÙĪÙĨ", + "ĠÙĬ ÙĪÙĨ", + "ĠÙĬÙĪ ÙĨ", + "Ġس ع", + "Ġ ÐĶаÑĤа", + "ĠÐĶ аÑĤа", + "ĠÐĶа ÑĤа", + "è¨Ģ ãģĨ", + "ĠØŃ ØªÛĮ", + "ĠJi ÅĻÃŃ", + "ĠÐ¥ аÑĢ", + "éĻ Ī", + "à¹Ī าà¸Īะ", + "à¹Īา à¸Īะ", + "Ġsay esinde", + "ĠÑĤÑĢеб а", + "ê°Ģ ì§Ģ", + "Ġy emek", + "Ġye mek", + "Ġyem ek", + "Ġyeme k", + "è¦ ļ", + "ặ n", + "ãĢĢ ãĢĢãĢĢãĢĢĠãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ĠãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢĠãĢĢ", + "Ġ 举", + "Ġä¸ ľ", + "Ġ ÙĪا", + "ĠÙĪ ا", + "ĠÙħ ÙĪس", + "ĠÙħÙĪ س", + "Ġком анд", + "Ġкоман д", + "Ġseç im", + "Ñĩ еннÑı", + "Ñĩен нÑı", + "Ġtot iž", + "Ġr á»Ńa", + "ı a", + "Ø¢ Ùħ", + "ÑĨ Ñĸон", + "ÑĨÑĸ он", + ": :::::::::::", + ":: ::::::::::", + ":::: ::::::::", + ":::::: ::::::", + ":::::::: ::::", + "::: :::::::::", + "::::: :::::::", + "::::::: :::::", + "::::::::: :::", + ":::::::::: ::", + "::::::::::: :", + "ÐĿ ÐIJ", + "ı za", + "ız a", + "h end", + "he nd", + "hen d", + "Ġफ र", + "ัà¸Ķ à¸ģาร", + "Ġ Cách", + "ĠC ách", + "ĠCác h", + "ĠпоÑĤ Ñĸм", + "Ġá¼ Ģ", + "ا ÙĦا", + "اÙĦ ا", + "á» ¡", + "ر ÛĮÙħ", + "رÛĮ Ùħ", + "å® «", + "Ġز ÙħÛĮÙĨ", + "ĠزÙħ ÛĮÙĨ", + "ÑĢ еÑģÑĤ", + "ÑĢе ÑģÑĤ", + "ÑĢеÑģ ÑĤ", + "б аÑĩ", + "ба Ñĩ", + "Ùĩر ست", + "н ог", + "но г", + "ï¼Į 大", + "ĠëĺIJ íķľ", + "Ġz ůst", + "Ġzů st", + "ĠÐĴ она", + "ĠÐĴо на", + "å¤ĩ 份", + "Ġ اÙģت", + "Ġا Ùģت", + "ĠاÙģ ت", + "o je", + "oj e", + "Ñģк ÑĸлÑĮки", + "Ġnh ẹ", + "Ġк еÑĢÑĸв", + "ĠкеÑĢ Ñĸв", + "á¿ ¦", + "æĸ¹ æ¡Ī", + "з аÑĨиÑı", + "за ÑĨиÑı", + "ĠвÑĸдповÑĸд но", + "ĠвÑĸдпов Ñĸдно", + "ãĤ¤ ãĤ¹", + "г ал", + "га л", + "ĠобÑĭ Ñĩно", + "ĠобÑĭÑĩ но", + "اÙĪرپ ÙĪÛĮÙĨت", + "å® ľ", + "l osti", + "lo sti", + "los ti", + "lost i", + "è¿Ľ åħ¥", + "uyor du", + "벤 íĬ¸", + "æīĭ ãĤĴ", + "ÐŁ од", + "ÐŁÐ¾ д", + "ĠÙħØŃ Ø¯ÙĪد", + "Ġ Ø¢Ùħد", + "ĠØ¢ Ùħد", + "ĠØ¢Ùħ د", + "ar akter", + "arak ter", + "çļĦ 大", + "Ġsı cak", + "l ant", + "la nt", + "lan t", + "Ġd ấu", + "ĠÙĨ Ú©", + "èĢħ ãģ®", + "Ġkend ini", + "Ġkendi ni", + "Ġп аÑĨи", + "Ġпа ÑĨи", + "Ġ 기íĥĢ", + "Ġ기 íĥĢ", + "ĠвмеÑģÑĤ е", + "в аеÑĤÑģÑı", + "ва еÑĤÑģÑı", + "ваеÑĤ ÑģÑı", + "Ġ ë§ī", + "Ġë§ ī", + "ĠchvÃŃ li", + "Ø® ÛĮ", + "ÙĦ ع", + "n ÃŃky", + "nÃŃ ky", + "nÃŃk y", + "、 :", + "ëIJľ ëĭ¤", + "ì§ ķ", + "Ġк вÑĸÑĤ", + "Ġкв ÑĸÑĤ", + "¨ ìĸ´", + "l iž", + "li ž", + "Ġë¹Ħë°Ģ ê¸Ģ", + "Ġkh á»iji", + "Ġ ë°©ìĨ¡", + "Ġë°© ìĨ¡", + "e chan", + "ec han", + "ech an", + "echa n", + "Ġзакон одав", + "Ġа кÑĤ", + "Ġак ÑĤ", + "문 ìłľ", + "ĠN ó", + "Ġ çĤ¹", + "Ġç Ĥ¹", + "ĠçĤ ¹", + "hled em", + "hle dem", + "ĠÑģво ÑĹÑħ", + "ĠÑģвоÑĹ Ñħ", + "Ġر ÙĤÙħ", + "ĠرÙĤ Ùħ", + "æĽ ¼", + "ि वर", + "िव र", + "åİ ļ", + "ĠÐļ од", + "ĠÐļо д", + "à¤Ń à¤Ĺ", + "ìŀIJ ëĬĶ", + "à¸Ļ ม", + "Ñĥ Ñģа", + "ÑĥÑģ а", + "Ġg ünü", + "Ġgün ü", + "ĠÄij ÃŃch", + "Ġtr ữ", + "å ·»", + "å· »", + "éĵ¶ è¡Į", + "ØŃ ÙĨ", + "è® ¨", + "γ Ïĩ", + "á½ ¸", + "a larında", + "alar ında", + "aları nda", + "aların da", + "Ġk af", + "Ġka f", + "ÙĪ اج", + "ÙĪا ج", + "ĠиÑģ клÑİÑĩ", + "ĠиÑģк лÑİÑĩ", + "Ġnh iá»ħ", + "á»į t", + "ĠìĽ ¹", + "Ġ éĿ¢", + "ĠéĿ ¢", + "ãģ® ãģĮ", + "Ġм ало", + "Ġмал о", + "Ġма ло", + "Ñĸ лÑĸ", + "Ñĸл Ñĸ", + "Ġ biên", + "Ġb iên", + "Ġbi ên", + "n ému", + "né mu", + "ném u", + "пÑĢи меÑĢ", + "пÑĢ имеÑĢ", + "âĸł âĸł", + "Ġk amp", + "Ġka mp", + "Ġkam p", + "Ġ веÑī", + "Ġв еÑī", + "Ġве Ñī", + "Äį em", + "Äįe m", + "à¥ģ ध", + "à¥ģठ§", + "æŁ »", + "ت ÙĪÙĨ", + "تÙĪ ÙĨ", + "åıª æľī", + "ãģ¯ ãģĦ", + "Ġ รวม", + "Ġร วม", + "ãĤ ŀ", + "ãģĻ ãĤĭãģ¨", + "ãģĻãĤĭ ãģ¨", + "å¾Ī å¤ļ", + "à¹Ī à¸ķ", + "ĠsvÄĽt a", + "ĠsvÄĽ ta", + "Ġ ê°Ģ격", + "Ġê°Ģ 격", + "Ú¯ Ùĩ", + "an daÅŁ", + "and aÅŁ", + "anda ÅŁ", + "ãĥª ãĤ¹", + "Ïī μα", + "ĠØ® ÙĪب", + "ĠØ®ÙĪ ب", + "ç´ ħ", + "Ñĩ иÑģ", + "Ñĩи Ñģ", + "ì¢ Į", + "ĠØŃض رت", + "Ġви ÑĢÑĸÑĪ", + "Ù¾ ر", + "Ġtý d", + "Ġkon tro", + "Ġkont ro", + "д ейÑģÑĤв", + "ãģŁãĤģ ãģ«", + "ì ī", + "мини ÑģÑĤÑĢа", + "мин иÑģÑĤÑĢа", + "âĢ ¯", + "åī ij", + "ни ÑĨÑĸ", + "ниÑĨ Ñĸ", + "å¦ ĩ", + "Ġ лиÑĪ", + "Ġл иÑĪ", + "Ġли ÑĪ", + "ãģ£ ãģ¦ãĤĭ", + "ãģ£ãģ¦ ãĤĭ", + "на ÑĢÑĥж", + "наÑĢ Ñĥж", + "Ñī иÑħ", + "Ñīи Ñħ", + "ÏĦ οκ", + "ÏĦο κ", + "ov áno", + "ová no", + "ován o", + "تر ÙĦ", + "ÑĢ ек", + "ÑĢе к", + "غ ات", + "Ġ omez", + "Ġo mez", + "Ġom ez", + "ì ĵ°", + "ĠÃľ l", + "ï½ Ĵ", + "lı ģını", + "lıģ ını", + "lıģın ı", + "Ġv ượt", + "Ġb ÄĽÅ¾", + "ĠbÄĽ ž", + "Ãľ R", + "Ġ ãĥ¾", + "Ġãĥ ¾", + "ĠdoÄŁ al", + "Ġh atır", + "Ġha tır", + "Ġhat ır", + "Ġsv ým", + "ì§Ģ ëıĦ", + "à¹Ģà¸ł à¸Ĺ", + "Ġv ay", + "Ġva y", + "Ġ æĻĤ", + "Ġæ ĻĤ", + "ĠæĻ Ĥ", + "à¥įव प", + "Ġp lo", + "Ġpl o", + "é¢Ħ è§Ī", + "Ġçık tı", + "Ġ دÙĨ", + "Ġد ÙĨ", + "n ánÃŃ", + "ná nÃŃ", + "ê· Ģ", + "íĺ Ģ", + "à¸ŀ à¸ļ", + "m uÅŁtur", + "muÅŁ tur", + "å®ĺ æĸ¹", + "ĠíĶĦ ë¡ľê·¸ëŀ¨", + "éĢŁ 度", + "ler dir", + "lerdi r", + "ÑĩеÑģ кого", + "Ñĩе Ñģкого", + "ĠÄ°n san", + "âĶ ĥ", + "Ġà¤ĩत न", + "С Ð¡Ðł", + "Ġا Ùħر", + "ĠاÙħ ر", + "Ġkö tü", + "Ùģ Ø´", + "Ġb oj", + "Ġbo j", + "ĠÑĨÑĸ ÑĶÑĹ", + "Ġsöy lem", + "Ġsöyl em", + "ни ÑĨÑĭ", + "ниÑĨ Ñĭ", + "ãĢĤ 她", + "âĢĿ .Ċ", + "âĢĿ. Ċ", + "Ġm ilion", + "Ġmil ion", + "Ġmi lion", + "Ġmili on", + "Ġson unda", + "Ġsonu nda", + "з Ñĥ", + "à¥į मà¤ķ", + "à¥įम à¤ķ", + "人 åı£", + "n ÄĽÅ¾", + "nÄĽ ž", + "ĠÑģ моÑĤ", + "ĠÑģм оÑĤ", + "Ġкомп лекÑģ", + "Ġкомплек Ñģ", + "Ġзави Ñģим", + "Ġиме ÑİÑĤ", + "Ġl ạc", + "Ġlạ c", + "Ġ hangi", + "Ġh angi", + "Ġhang i", + "Ġhan gi", + "ëĶ ©", + "åĬ ³", + "ĠvÄĽ ci", + "ĠvÄĽc i", + "е ÑĢов", + "еÑĢ ов", + "еÑĢо в", + "κ Ïģι", + "Ġdur umu", + "Ġdurum u", + "Ġ بÙĪاسطة", + "ĠبÙĪ اسطة", + "ĠØ£ بÙĬ", + "Ġأب ÙĬ", + "ĠAÄŁ ustos", + "ε Ïĩ", + "Ġд иÑĤи", + "Ġди ÑĤи", + "ĠдиÑĤ и", + "ÑĦ ика", + "ÑĦи ка", + "ÑĦик а", + "Ġ NÄĥm", + "ĠN Äĥm", + "Ġ 기ìĪł", + "Ġ기 ìĪł", + "Ġhlav nÃŃ", + "ä¿ ĥ", + "Ġलà¤Ĺ त", + "ĠO br", + "ĠOb r", + ". ย", + "ко вод", + "ков од", + "ково д", + "o pis", + "op is", + "opi s", + "Ġ ãĥī", + "Ġãĥ ī", + "Ġبش ÙĥÙĦ", + "н ием", + "ни ем", + "ние м", + "Ġtém ÄĽÅĻ", + "ĠاÙĦ ØŃر", + "ĠاÙĦØŃ Ø±", + "ĠÙĦ ازÙħ", + "ĠÙĦا زÙħ", + "Ġm ái", + "Ġmá i", + "i liÄŁi", + "ili ÄŁi", + "ë³ ¼", + "Ġy ık", + "Ġyı k", + "ç½ ²", + "ÑĢ ава", + "ÑĢа ва", + "ÑĢав а", + "Ñī ин", + "Ñīи н", + "ãģ« 対", + "ç²¾ ç¥ŀ", + "à¹ī ส", + "Ġtem sil", + "à Ĩ", + "ìķ Ķ", + "ĠпÑĢавилÑĮ но", + "ÑĢ оÑİ", + "ÑĢо Ñİ", + "Û±Û³ Û¸", + "è© ŀ", + "اء Ø©", + "ÙĪ ارÙĩ", + "ÙĪا رÙĩ", + "ÙĪار Ùĩ", + "ï¼ ħ", + "ĠÐľ ик", + "ĠÐľÐ¸ к", + "æģ ¶", + "æı Ĵ", + "ा पन", + "ाप न", + "ĠÚ©ÛĮÙģ ÛĮت", + "ĠT Ãłi", + "Ġt iá»ĥu", + "ov alo", + "ova lo", + "oval o", + "çĿ ¡", + "Ñĩ ил", + "Ñĩи л", + "Ġ лиÑĤ", + "Ġл иÑĤ", + "Ġли ÑĤ", + "λεÏħ ÏĦα", + "Ġ окон", + "Ġо кон", + "Ġок он", + ": :|", + ":: |", + "в ала", + "ва ла", + "вал а", + "ĠÙħرک زÛĮ", + "ĠÙħرکز ÛĮ", + "Ġ alÄ±ÅŁ", + "Ġa lÄ±ÅŁ", + "Ġal Ä±ÅŁ", + "Ġдолж но", + "Ġдол жно", + "æĻĤ 代", + "Ġ sert", + "Ġs ert", + "Ġse rt", + "Ġser t", + "е ÑĤом", + "еÑĤ ом", + "ัà¸Ļ ย", + "åģ ·", + "Ġ vÃŃc", + "Ġv ÃŃc", + "ĠvÃŃ c", + "ĠÑħ оÑĤÑı", + "ĠÑħоÑĤ Ñı", + "a larını", + "alar ını", + "aların ı", + "len mesi", + "lenme si", + "ãĥ³ ãĥIJ", + "ãĥ³ãĥ IJ", + "Ġëª ĩ", + "Ġá» ¦y", + "ĠاÙĦ کتر", + "vy Å¡Å¡ÃŃ", + "è² ¬", + "주 ìĭľ", + "á ÅĻe", + "áÅĻ e", + "Ġy ere", + "Ġye re", + "Ġyer e", + "ãĤ¢ ãĥ³", + "ĠاÙĦس عÙĪد", + "ĠØ¢ Ø´", + "Ġch óng", + "Ġchó ng", + "Ġ è»", + "Ġè »", + "г аÑĶ", + "га ÑĶ", + "Ġ ãģĤ", + "ç¨ ³", + "δ εÏĤ", + "δε ÏĤ", + "缮 çļĦ", + "Ġce vap", + "Ġcev ap", + "Ñģ ÑĤе", + "ÑģÑĤ е", + "é¡ ¿", + "म न", + "é¡ ¾", + "Ġк ÑĢедиÑĤ", + "ĠÙħس تÙĤ", + "ĠÙħست ÙĤ", + "Ġ миÑĤ", + "Ġм иÑĤ", + "Ġми ÑĤ", + "Ġt á»ĵn", + "Ġtá» ĵn", + "Ġ جÙĦ", + "Ġج ÙĦ", + "Ä© a", + "ĠاÙĦع ÙĦÙħ", + "ĠاÙĦعÙĦ Ùħ", + "á ků", + "ák ů", + "Ġ íķĻêµIJ", + "ĠíķĻ êµIJ", + "à¸Ĺ à¸Ńà¸ĩ", + "ห à¸Ļà¸Ķ", + "หà¸Ļ à¸Ķ", + "ĠлÑĸÑĤ еÑĢаÑĤÑĥ", + "ëIJ ł", + "ά ÏģÏĩ", + "άÏģ Ïĩ", + "ĠÙĤد رت", + "ĠÙĤدر ت", + "à¸Ļ าà¸ĩ", + "à¸Ļา à¸ĩ", + "Ġa rac", + "Ġar ac", + "Ġara c", + "Ġj ÃŃd", + "ĠjÃŃ d", + "Ġtür lü", + "íĶ ½", + "er siz", + "ers iz", + "е ним", + "ен им", + "ени м", + "Ġyüz yıl", + "Ġ ãģĦ", + "ĠÎļ Ïħ", + "Ġ æļ", + "Ġæ ļ", + "Ġp ůj", + "Ġpů j", + "Ġt á»Ļi", + "Ġth iên", + "Ġthi ên", + "Ä° S", + "Ġth úc", + "Ġthú c", + "æĹ ģ", + "ìŀIJ ìĿ¸", + "Ġöl üm", + "ر ÛĮÙģ", + "رÛĮ Ùģ", + "ÑĢ еж", + "ÑĢе ж", + "ص اÙĦ", + "ر ÙģØ©", + "رÙģ Ø©", + "i ếp", + "iế p", + "Ñı ÑĤиÑı", + "ÑıÑĤ иÑı", + "ÑıÑĤи Ñı", + "Ġpou žit", + "á tu", + "át u", + "为 ä»Ģä¹Ī", + "ì ģ", + "Ġ krát", + "Ġk rát", + "Ġkr át", + "ĠپرÙĪ ÚĺÙĩ", + "Ġrozhod nutÃŃ", + "ĠÑĥ нивеÑĢ", + "Ñĸй но", + "Ġ åij¨", + "Ġåij ¨", + "Ġk iá»ĥu", + "缮 åīį", + "ä¿ Ħ", + "ÏĦ οι", + "ÏĦο ι", + "ÑĦеÑĢ ен", + "uÅŁ tur", + "Ġ nÃŃm", + "Ġn ÃŃm", + "ĠnÃŃ m", + "âĢĮ Ø®", + "Ġ ủy", + "Ġ ÑģÑĤаÑĤи", + "ĠÑģÑĤ аÑĤи", + "ĠÑģÑĤаÑĤ и", + "ĠÑģÑĤа ÑĤи", + "ÑĩеÑģ кий", + "Ñĩе Ñģкий", + "ÑĩеÑģки й", + "Ġj estli", + "Ġjest li", + "ĠÙ¾ ÙĨ", + "Ġob ce", + "ĠجÙĩ اÙĨÛĮ", + "ĠجÙĩاÙĨ ÛĮ", + "едаг ог", + "ãģ§ ãģ®", + "Ġbu á»Ļc", + "ì¹´ ì§Ģëħ¸", + "à¹ĩ à¸Ħ", + "ĠÄį tvrt", + "Ġ ника", + "Ġн ика", + "Ġни ка", + "Ġник а", + "Ġвп лив", + "Ġд иÑĢ", + "Ġди ÑĢ", + "ĠÑģоб ÑģÑĤвен", + "Ġë§İ ìĿ´", + "æ¾ ³", + "ÑĢ Ñĥб", + "ÑĢÑĥ б", + "æ£ ĭ", + "声 éŁ³", + "ä¹ ĥ", + "تÛĮ جÙĩ", + "å¹ ¼", + "o nya", + "on ya", + "ony a", + "ĠPlan tae", + "ĠPlant ae", + "Ч ÑĤо", + "æIJ Ń", + "ä½ľ çĶ¨", + "ìħ ¨", + "Ġк ÑĢÑĥг", + "Ġ ÙĪÙģÙĬ", + "ĠÙĪ ÙģÙĬ", + "ĠÙĪÙģ ÙĬ", + "Ġ ï¼ŀ", + "Ġï¼ ŀ", + "ÑĪ ки", + "Âł Ðľ", + "ا Ø´ÛĮ", + "اش ÛĮ", + "ĠÅŀ ubat", + "ĠÅŀu bat", + "Ġع شر", + "Ġعش ر", + "l if", + "li f", + "Ġpou žitÃŃ", + "Ġpoužit ÃŃ", + "íĨ ¡", + "Ġб лок", + "Ġбл ок", + "èĢ ¶", + "ู ร", + "Ġv üc", + "Ø´ ÙĪد", + "Ø´ÙĪ د", + "и ма", + "им а", + "ни ÑĨип", + "ниÑĨ ип", + "ìĿ´ ëĵľ", + "Ġ âĢIJ", + "ĠâĢ IJ", + "Ġ назнаÑĩ", + "Ġна знаÑĩ", + "Ġназ наÑĩ", + "Ġназна Ñĩ", + "Ġstr any", + "Ġstran y", + "Ġstra ny", + "æ® ¿", + "ĠاÙĦ رÙĪ", + "ĠاÙĦر ÙĪ", + "çº ¸", + "åĪ ij", + "ï¼Į ä»İ", + "Ġ ë©´", + "Ġë© ´", + "ĠпÑĢовед еннÑı", + "Ġh ava", + "Ġha va", + "Ġhav a", + "ĠìĹĨ ìĹĪëĭ¤", + "ĠìĹĨìĹĪ ëĭ¤", + "å¢ŀ åĬł", + "Ú ¾", + "ç¼ º", + "Ġع بار", + "Ġعب ار", + "Ġt ắc", + "Ġin ÅŁa", + "er se", + "ers e", + "ر ÙĬب", + "رÙĬ ب", + "Ġá»ķ n", + "Ø£ Ø©", + "ĠÏĢολ ι", + "ĠÏĢο λι", + "Ġm ắc", + "Ñģ ол", + "Ñģо л", + "æ´ ŀ", + "- го", + "-г о", + "ç¨ĭ 度", + "ĠвикоÑĢиÑģÑĤ аннÑı", + "âĢŀ ظ", + "e lerinde", + "eler inde", + "eleri nde", + "elerin de", + "ĠNh Æ°ng", + "ĠNhÆ° ng", + "st ÅĻed", + "Ġhasta lık", + "Ġhast alık", + "à¹ī à¹Ģà¸Ľ", + "Ġd efa", + "Ġde fa", + "Ġdef a", + "Ġ زÙĬ", + "Ġز ÙĬ", + "اط ÙĤ", + "Ġп ÑĢой", + "ĠпÑĢ ой", + "ĠпÑĢо й", + "Ġок ÑĢÑĥг", + "ν ια", + "νι α", + "l adu", + "la du", + "lad u", + "k oli", + "ko li", + "kol i", + "Ġ oÄŁ", + "Ġo ÄŁ", + "Ġви Ñģок", + "ĠвиÑģ ок", + "Ð ĩ", + "çĽ ĸ", + "ãĤı ãģij", + "ãĥ¼ ãĥģ", + "ãĥ¼ãĥ ģ", + "æ¡ ¥", + "ĠÅ¡kol y", + "ĠÅ¡k oly", + "i tom", + "it om", + "ito m", + "Ġت ØŃص", + "ĠتØŃ Øµ", + "a lara", + "al ara", + "ala ra", + "alar a", + "Ġк ал", + "Ġка л", + "ĠпÑĢи Ñħод", + "Ġ é¦ĸ页", + "Ġé¦ĸ 页", + " į", + "ĠÛĮ عÙĨÛĮ", + "Ġt ùy", + "Ģ ë¡ľ", + "볤 ê³ł", + "á ze", + "áz e", + "Ġ ек", + "Ġе к", + "èħ ¹", + "ĠF akat", + "ĠFa kat", + "ĠFak at", + "п о", + "ĠÄij á»įc", + "ĠÄijá»į c", + "å Īĺ", + "åĪ ĺ", + "áz al", + "ÑĤ он", + "ÑĤо н", + "Ú¯ ÙĪ", + "ä¸ Ī", + "ìĹ ¼", + "ĠÙĦÙĦ Ø£", + "ĠE ÄŁer", + "åħ±åĴĮ åĽ½", + "Ø° ر", + "Ġd aÄŁ", + "Ġda ÄŁ", + "è¡Į ä¸ļ", + "ê±°ëŀĺ ê°Ģ", + "è´Ł è´£", + "C ông", + "ĠÑĦ илÑĮ", + "ĠÑĦил ÑĮ", + "Ġ аÑģ", + "Ġа Ñģ", + "Ġch ẳng", + "ним аÑĤÑĮ", + "нима ÑĤÑĮ", + "Ġif ad", + "Ġi fad", + "Ġ ìħ", + "Ġì ħ", + "çĪ µ", + "ĠÅĻe Å¡enÃŃ", + "åĽ½ 产", + "Ġкак ой", + "Ġка кой", + "Ġम ध", + "ĠY ar", + "ĠYa r", + "ob raz", + "obra z", + "Ġon emoc", + "Ġ âĤ", + "Ġâ Ĥ", + "åİŁ åĽł", + "ĠÙĥ رد", + "ĠÙĥر د", + "Ġآز اد", + "Ġad lı", + "ĠH izmet", + "ãĥ¼ ãĥij", + "ãĥ¼ãĥ ij", + "ÙĨ سÙĬØ©", + "ÙĨس ÙĬØ©", + "Ġв нÑĥÑĤ", + "ĠвнÑĥ ÑĤ", + "Ġd ále", + "Ġdál e", + "Ġdá le", + "Îķ Î¥", + "Ġ ÑĥÑħ", + "ĠÑĥ Ñħ", + "Ġ ÑĢев", + "ĠÑĢ ев", + "ĠÑĢе в", + "Ġ меÑĪ", + "Ġм еÑĪ", + "ĠkoÅŁ ul", + "ĠاÛĮ راÙĨÛĮ", + "ĠاÛĮراÙĨ ÛĮ", + "éĺ µ", + "Ġ ëıĻìķĪ", + "ĠëıĻ ìķĪ", + "à¹Ģ à¸Ł", + "à¹ĢภŁ", + "ëłĪ 벨", + "è¨Ń è¨Ī", + "p rak", + "pr ak", + "pra k", + "p oÄį", + "po Äį", + "اع دة", + "اعد Ø©", + "Ġas ker", + "Ġask er", + "ĠÙĪÛĮ ÚĺÙĩ", + "ĠÙĪÛĮÚĺ Ùĩ", + "ĠТ еÑĢ", + "ĠТе ÑĢ", + "mak ta", + "makt a", + "ĠÄįty ÅĻ", + "Âł С", + "âĢĮÚ©ÙĨ ÙĨد", + "ï¼Į 並", + "ĠÑĢоÑģ Ñĸй", + "Ġu nut", + "Ġun ut", + "è¿Ļ ä¸Ģ", + "o pak", + "op ak", + "opa k", + "èĢ IJ", + "Ġз амеÑĤ", + "Ġза меÑĤ", + "Ġзам еÑĤ", + "à¹Į ล", + "ب ÙĨ", + "Ġ 몰", + "Ġëª °", + "Ġins anlar", + "Ġinsan lar", + "åı¯ æĺ¯", + "æ¢ ¦", + "к од", + "ко д", + "èĽ Ľ", + "kl adnÃŃ", + "klad nÃŃ", + "ÑĢов од", + "ÑĢо вод", + "ĠмÑĸ ÑģÑĤа", + "ĠмÑĸÑģ ÑĤа", + "ĠмÑĸÑģÑĤ а", + "åĩº äºĨ", + "Ġп аÑģ", + "Ġпа Ñģ", + "о бов", + "об ов", + "Ú¯ اÙĩÛĮ", + "گاÙĩ ÛĮ", + "в ин", + "ви н", + "à¥įर ध", + "Ġком пон", + "Ġкомп он", + "Ġ аÑĤ", + "Ġа ÑĤ", + "Ġa det", + "Ġad et", + "Ġade t", + "Ġ ãĥģ", + "Ġãĥ ģ", + "ĠØ° ات", + "ĠØŃ ÙĪ", + "Ġtro chu", + "à¹ģ หà¸Ļ", + "à¹ģห à¸Ļ", + "Ġзав жди", + "ĠPart isi", + "ĠParti si", + "ĠS avaÅŁ", + "ĠSav aÅŁ", + "Ġs ÃŃd", + "ĠsÃŃ d", + "Ġ Ñģон", + "ĠÑģ он", + "ĠÑģо н", + "ر ÙĬÙģ", + "رÙĬ Ùģ", + "Ġz cela", + "åĺ ´", + "ĠÑĦ ÑĥÑĤ", + "il erek", + "ile rek", + "iler ek", + "ilere k", + "m alıdır", + "malı dır", + "Ġd á»±a", + "Ġdá»± a", + "à¸Ĺำ à¸ĩาà¸Ļ", + "ĠÙĪÙĦ ÙĥÙĨ", + "ĠÙĪÙĦÙĥ ÙĨ", + "ãģª ãĤĵãģł", + "ãģªãĤĵ ãģł", + "ĠÚ© ÙħÛĮ", + "ĠÚ©Ùħ ÛĮ", + "Ġléka ÅĻ", + "Ïģ Ïį", + "ج Ùħع", + "جÙħ ع", + "ın ızı", + "ını zı", + "ınız ı", + "ĠAn adolu", + "ãģ«ãĤĪ ãģ£ãģ¦", + "Ġê·¸ëŁ¬ ëĤĺ", + "Ġ íĮĶ", + "ĠíĮ Ķ", + "Ñĸ ÑĤÑĮ", + "ÑĸÑĤ ÑĮ", + "Ġ ¦", + "Ġ ¦", + "ä¸į è¦ģ", + "à¸ĸ ม", + "Ġ ÙĬد", + "ĠÙĬ د", + "ĠpÅĻ ep", + "ĠpÅĻe p", + "Ġ è¦ģ", + "Ġè¦ ģ", + "ĠпÑĢо екÑĤ", + "ĠпÑĢоек ÑĤ", + "ĠÑĢе ги", + "ĠÑĢег и", + "Ġd ạy", + "к ового", + "ков ого", + "ково го", + "Ġ ıs", + "Ġı s", + "ĠK ı", + "ĠÙģÙĬ Ùĩا", + "ĠÙģÙĬÙĩ ا", + "ÛĮ ات", + "ÛĮا ت", + "ĠÑģÑĤ ала", + "ĠÑģÑĤал а", + "ĠÑģÑĤа ла", + "æĬ ľ", + "Ñĥ ÑĢа", + "ÑĥÑĢ а", + "ĠÙ¾ اÛĮاÙĨ", + "ĠپاÛĮ اÙĨ", + "Ġپا ÛĮاÙĨ", + "Ġitibar en", + "а нÑĸÑĹ", + "ан ÑĸÑĹ", + "анÑĸ ÑĹ", + "Ġо ÑĦоÑĢм", + "л еÑĩ", + "ле Ñĩ", + "ε ξ", + "æĶ¿ çŃĸ", + "Ġ ç½ij", + "Ġç½ ij", + "å Ĥ¬", + "åĤ ¬", + "ĠìĿ´ 룰", + "Ġkar deÅŁ", + "Ñİ Ñīего", + "ÑİÑī его", + "л ки", + "ĠاÛĮ اÙĦات", + "ت Ùĩا", + "تÙĩ ا", + "Ġпод Ñħод", + "ĠØŃ ÙĪÙĦ", + "ĠØŃÙĪ ÙĦ", + "ĠÑģов ÑĢем", + "íĿ ¥", + "Ġ 詳細", + "Ġè© ³ç´°", + "ı yı", + "ıy ı", + "ĠتÙĤ ÙĪ", + "æ¯Ķ è¾ĥ", + "Ġαν ÏĦι", + "Ġ ΣΤ", + "ĠΣ Τ", + "ji Å¡Å¥", + "yn ı", + "Ġpo cházet", + "- Ðļ", + "Ġзав д", + "Ùİ Ø³", + "ç»ĵ æŀĦ", + "Ùħ ار", + "Ùħا ر", + "ν οι", + "νο ι", + "ĠÎł εÏģι", + "ĠγεÏģ ι", + "èĩ £", + "Ġna cházÃŃ", + "Ġnach ázÃŃ", + "ÏĦ Ïİ", + "à¥įय त", + "u yu", + "uy u", + "æķ Ĺ", + "e bi", + "eb i", + "Ġë°Ķ ë¡ľ", + "ĠгÑĢ н", + "ĠاÙĦ اس", + "Ġorg án", + "Ġ edin", + "Ġe din", + "Ġed in", + "Ġedi n", + "åŁ ĥ", + "à¹ģ à¸Ħ", + "ĠØŃ Ø¯ÙĪد", + "ĠØŃد ÙĪد", + "ĠдÑĢÑĥг ой", + "ĠдÑĢÑĥго й", + "оÑģ ков", + "оÑģк ов", + "ĠS ợ", + "ĠpÅĻ ib", + "ĠpÅĻi b", + "ä¿Ŀ æĬ¤", + "Ùħ بر", + "Ġ ãĥĨ", + "Ġãĥ Ĩ", + "Ġd oz", + "Ġdo z", + "op tera", + "opt era", + "ิล à¸Ľ", + "د ارÛĮ", + "دار ÛĮ", + "دا رÛĮ", + "æĦŁ è§ī", + "代 çIJĨ", + "ÙĨ دا", + "ÙĨد ا", + "ا ÙĬا", + "اÙĬ ا", + "ص ÙĨ", + "Ġce lé", + "Ġcel é", + "Ġ è©ķ", + "Ġè© ķ", + "à¸ĩ à¸Ļ", + "Ġ leh", + "Ġl eh", + "Ġle h", + "èİ· å¾Ĺ", + "ãĢĢ ï¾ī", + "ĠìĦł ìĪĺ", + "르 ëĬĶ", + "à¤Ĩ र", + "å§Ķ åijĺ", + "æĹł çłģ", + "Ġ è·", + "Ġè ·", + "Ġza jÃŃm", + "Ġzaj ÃŃm", + "ec ké", + "eck é", + "æ µľ", + "æµ ľ", + "ĠÑĥ нÑĸвеÑĢÑģиÑĤ", + "ĠбÑİдж еÑĤ", + "à¥ĩ .", + "Ġv stup", + "Ġ оÑī", + "Ġо Ñī", + "Ġ åľĭ", + "Ġåľ ĭ", + "ä¸ģ 缮", + "Ġв едÑĮ", + "Ġвед ÑĮ", + "Ġë§IJ ìĿĦ", + "Ġtek nik", + "Ġtekn ik", + "ãĢĢ ï½Į", + "ãĢĢï½ Į", + "ĠпÑĸд виÑī", + "ĠÑģвÑıз и", + "ĠÑģвÑı зи", + "Ġتر جÙħ", + " ī", + "ĠÄij âu", + "Ñĸ Ñĩного", + "ÑĸÑĩ ного", + "å°ij å¹´", + "e cta", + "ect a", + "ec ta", + "ि लत", + "िल त", + "ι οÏĤ", + "ιο ÏĤ", + "ãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "t eg", + "te g", + "á» īnh", + "á»ī nh", + "¯ ¿", + "Ġne bu", + "Ġneb u", + "ÙĬ ÙĬÙĨ", + "о ÑıÑĤ", + "оÑı ÑĤ", + "é¤ Ĭ", + "ĠاÙĤتص ادÛĮ", + "ĠاÙĤتصاد ÛĮ", + "âĢĻ nun", + "âĢĻn un", + "ĠÐĴ Ñĸк", + "Ġng Äĥn", + "ëĮĢ íķĻêµIJ", + "ëĮĢíķĻ êµIJ", + "é ı", + "़ र", + "ا باÙĨ", + "اب اÙĨ", + "Ùİ Ùĥ", + "Ġet kil", + "Ġetk il", + "Ġetki l", + "Ġch ắn", + "Ġë°ľ ìĥĿ", + "Ġtam amen", + "Ġtamam en", + "ĠÙħØŃ ÛĮØ·", + "ü lü", + "ül ü", + "åģ¥ 康", + "ĠÑĢаÑģÑĤ ениÑı", + "ÏĢο ί", + "Ġ è¶ħ", + "Ġè¶ ħ", + "á Äį", + "ĠìĻ¸ ë¶Ģ", + "ĠØ® ÛĮÙĦÛĮ", + "ĠØ®ÛĮ ÙĦÛĮ", + "Ġد ÙĪست", + "ĠدÙĪ ست", + "à¹Ģà¸Ĥ à¸ķ", + "Ġk alan", + "Ġka lan", + "Ġkal an", + "ë¨ ¼", + "a vÄĽ", + "av ÄĽ", + "문 íĻĶ", + "Ġди аг", + "ĠÙĨ ÙĪÙĬس", + "ĠÙĨÙĪ ÙĬس", + "íķ ij", + "à¸ŀ าะ", + "ëĭ¤ ê°Ģ", + "Ġn iá»ĩm", + "Ġس ÙĪÙħ", + "ĠسÙĪ Ùħ", + "- м", + "à¸Ķำ à¹Ģà¸Ļ", + "à¹ĩ ว", + "ãĢĤ ãģĵãģ®", + "ç¯ ī", + "Width Space", + "Zero WidthSpace", + "ائ ÙħØ©", + "ائÙħ Ø©", + "à¹Ħà¸ĭ à¸ķ", + "ä¸ĭè½½ 次æķ°", + "ä¼¼ ä¹İ", + "ĠÑĤ в", + "Ġzá kaz", + "Ġج دا", + "Ġجد ا", + "Ġg ider", + "Ġgi der", + "Ġgid er", + "ãĥ¼ ãĥĵ", + "ãĥ¼ãĥ ĵ", + "n ů", + "Ġë§ģ íģ¬", + "ĠdÃ¼ÅŁ ük", + "Ñĥ нок", + "Ñĥн ок", + "Ġt óc", + "ĠÑĤ ÑĢÑĥб", + "ĠÑĤÑĢ Ñĥб", + "ĠÑĤÑĢÑĥ б", + "о кÑģ", + "ок Ñģ", + "Ġtr ải", + "Ġtrả i", + "Ġm iá»ħn", + "Ġth Æ°á»Ľc", + "Ġnh áºŃt", + "Âł D", + "m asının", + "mas ının", + "masını n", + "è¼ ª", + "ĠÎĿ ο", + "er ç", + "Ġdok once", + "Ġdokon ce", + "ĠG üven", + "ĠGü ven", + "ov aná", + "ova ná", + "ovan á", + "е зд", + "ез д", + "Ñĸ нÑĮ", + "Ñĸн ÑĮ", + "èģ ²", + "اÙĦ Ø£", + "ï¼Į ä½Ĩæĺ¯", + "ï¼Įä½Ĩ æĺ¯", + "Ġпол ноÑģÑĤÑĮÑİ", + "Port ály", + "ĠØŃ Ø§Ùģظ", + "à¥Ĥ à¤ķ", + "ÑĢ Ñĥн", + "ÑĢÑĥ н", + "人 çī©", + "Ġa çı", + "Ġaç ı", + "Ġp oru", + "Ġpo ru", + "Ġpor u", + "er iod", + "eri od", + "ĠAmer ika", + "ĠAmerik a", + "çĩ Ł", + "Ġ رÙĪد", + "Ġر ÙĪد", + "ĠرÙĪ د", + "ĠкÑĢов и", + "ÙĪ ÙĤت", + "ÙĪÙĤ ت", + "éĺ ¶", + "ãĥ»âĶģ ãĥ»âĶģ", + "ر ÙĬÙħ", + "رÙĬ Ùħ", + "åİĨ åı²", + "ä¸ ¸", + "Ġзн овÑĥ", + "Ġзнов Ñĥ", + "ĠÑģво его", + "ĠÑģвое го", + "бÑĥд ÑĮ", + "ĠØŃ Ø¬Ùħ", + "ĠØŃج Ùħ", + "ĠδÏį ο", + "ìķĪ ëĤ´", + "Ġ ãģ§", + "à¹Ī ะ", + "Ùij Ùı", + "çµIJ æŀľ", + "âĢĻ i", + "à¹Į ,", + "åŃĺ äºİ", + "Ġरà¤ĸ न", + "ĠسرÙħ اÛĮÙĩ", + "Ġг лÑĥб", + "ĠглÑĥ б", + "ĠÑĢаз Ñĸ", + "ĠÑĢа зÑĸ", + "Ñĩ нÑĸ", + "ï¼Į åıĪ", + "c ısı", + "cı sı", + "æľī åħ³", + "ãĤ» ãĥ³", + "èIJ ¨", + "ĠGi áo", + "ĠGiá o", + "ĠاÙĦØ« اÙĨÙĬ", + "ĠÑĢаз ом", + "Ġ ÑĤÑĢо", + "ĠÑĤ ÑĢо", + "ĠÑĤÑĢ о", + "Ġaçık lam", + "åĨ³ å®ļ", + "à¸Ń à¸Ľ", + "åĶ ¯", + "ĠÅŁ ark", + "ĠÅŁar k", + "Ġsist emi", + "Ġsistem i", + "Ġto prak", + "Ġtop rak", + "èĢĥ ãģĪ", + "Ġпоп ÑĥлÑıÑĢ", + "Ġ ëĨį", + "ĠëĨ į", + "ا ÙĬÙĨ", + "اÙĬ ÙĨ", + "स म", + "Ġ ÂĢ", + "Ġ Ģ", + "Ġed erek", + "Ġeder ek", + "Ġg ec", + "Ġge c", + "ìĤ¬ ìĹħ", + "ĠÑĢ оки", + "ĠÑĢок и", + "ĠбеÑĢ ем", + "ĠخاÙĨÙĪ ادÙĩ", + "Ġ èµ·", + "Ġèµ ·", + "Ġ ЧÑĤо", + "ĠЧ ÑĤо", + "Ġo bÄĽ", + "Ġob ÄĽ", + "и нÑĸ", + "ин Ñĸ", + "ìĿ´ ìĹĪ", + "ĠIn di", + "ĠInd i", + "Ġд иÑĤ", + "Ġди ÑĤ", + "ãĥ¶ æľĪ", + "Ġнем ного", + "Ġzáklad ÄĽ", + "à¹Ĥ à¸Ħ", + "ĠÑģам ого", + "ĠÑģамо го", + "Ġب ØŃØ«", + "ĠبØŃ Ø«", + "Ġ æ¶", + "Ġæ ¶", + "ов ж", + "Ġоб ÑĢаÑī", + "ĠобÑĢа Ñī", + "à Ĵ", + "ว รร", + "วร ร", + "à¤Ĥ श", + "ĠоÑĩ еÑĢед", + "ĠÙģ رز", + "ĠÙģر ز", + "ëĮĢ íķľ", + "Ġs izin", + "Ġsi zin", + "Ġsiz in", + "Ġsizi n", + "ر Ùģت", + "رÙģ ت", + "Ñİ Ñīим", + "ÑİÑī им", + "æ» ij", + "a vir", + "av ir", + "avi r", + "ĠÙĪ صÙĦ", + "ĠÙĪص ÙĦ", + "Ġqu ay", + "Ġqua y", + "Ġг ип", + "ÑĢ ениÑı", + "ÑĢе ниÑı", + "ÑĢен иÑı", + "à¥į वत", + "à¥įव त", + "ιν Ïīν", + "à¤ľ ह", + "Ġh Æ¡i", + "Ġpo važ", + "Ġpov až", + "Ġع رب", + "м енÑĤа", + "мен ÑĤа", + "менÑĤ а", + "Ġо ÑģÑĤан", + "ĠоÑģÑĤ ан", + "ä¹ĭ éĹ´", + "a cÃŃch", + "ac ÃŃch", + "acÃŃ ch", + "ĠÑģказ ала", + "ĠÑģказал а", + "ìĿ´ ëĿ¼ëĬĶ", + "ìĿ´ëĿ¼ ëĬĶ", + "ĠØ´ اخ", + "Ġëĭ¹ ìĭł", + "ar lar", + "arl ar", + "Ġмл н", + "åĨ ¬", + ". :.:.:", + ".: .:.:", + ".:.: .:", + ".:. :.:", + ".:.:. :", + "Ġ θε", + "Ġθ ε", + "Ġher kes", + "Ġherk es", + "л Ñıд", + "лÑı д", + "ا Ùħا", + "اÙħ ا", + "Ġë ŃIJ", + "Ïĥιμο ÏĢοι", + "Ġ obraz", + "Ġob raz", + "Ġobr az", + "Ġobra z", + "غ اÙĦ", + "B Æ°á»Ľc", + "å° Ĭ", + "ìŀIJ 를", + "æĢ Ĵ", + "οÏħ Ïģγ", + "å¼ķ ãģį", + "Ġkon uda", + "Ġkonu da", + "ĠاÙĦت ج", + "Ġ krit", + "Ġk rit", + "Ġkr it", + "å¿ į", + "ĠìłĦìĦ¸ ê°Ģ", + "г овоÑĢ", + "го воÑĢ", + "гов оÑĢ", + "Ġist iyor", + "о ки", + "ок и", + "ĠобеÑģп еÑĩ", + "ĠобеÑģпе Ñĩ", + "Ġay rıca", + "Ġayrı ca", + "à¹Ģ à¸ľ", + "à¹Ģภľ", + "а ÑĢод", + "аÑĢ од", + "Ä° Åŀ", + "ĠجÙħ ÙĩÙĪرÛĮ", + "ĠجÙħÙĩÙĪر ÛĮ", + "ĠÑģво иÑħ", + "ĠÑģвои Ñħ", + "Ġprov ád", + "Ġ ÑĢам", + "ĠÑĢ ам", + "ĠÑĢаР¼", + "ĠÑĢа м", + "ĠÙĤ ض", + "л иÑĤелÑĮ", + "лиÑĤ елÑĮ", + "ãĤ± ãĥĥãĥĪ", + "оÑģ оÑĦ", + "Ġर हन", + "Ġरह न", + "k ový", + "ko vý", + "kov ý", + "ì° ¸", + "γ κα", + "γκ α", + "λ οι", + "λο ι", + "μ ÏĢο", + "μÏĢ ο", + "ĠÄij au", + "ĠÄija u", + "н иÑİ", + "ни Ñİ", + "Ġman žel", + "Ġ íĺ¼", + "Ġíĺ ¼", + "ĠÑĤ иÑģ", + "ĠÑĤи Ñģ", + "ãĥĨ ãĥ«", + "ab ilecek", + "abil ecek", + "abile cek", + "abilece k", + "н ин", + "ни н", + "à¸ģรรม à¸ģาร", + "éł IJ", + "Ġph ê", + "j edn", + "je dn", + "jed n", + "交 æµģ", + "Ġвним ание", + "об ÑĢеÑĤ", + "Ġжиз нÑĮ", + "ÑĢи ÑģÑĤи", + "ÑĢиÑģÑĤ и", + "ÑĢиÑģ ÑĤи", + "à¥Ī à¤ļ", + "Ġyüz den", + "Ġyüzde n", + "Ġg iy", + "Ġgi y", + "éļ Ķ", + "ä» ²", + "Ġ èĻ", + "Ġè Ļ", + "ĠP arti", + "ĠPart i", + "ĠPar ti", + "Ġ éĸ¢", + "Ġéĸ ¢", + "ัà¸ļ ส", + "Ġnej lepÅ¡ÃŃ", + "Ùİ Ùī", + "ĠìĿ´ ìłľ", + "Ġc ắt", + "ÑĢоз Ñĥм", + "Ġnej sou", + "l ÃŃd", + "lÃŃ d", + "θ ο", + "à¹ĩ à¸ĩ", + "ĠÑģп ÑĢоÑģ", + "ma mÄ±ÅŁ", + "mam Ä±ÅŁ", + "Ġ 쪽", + "Ġì ª½", + "ا ÙģÙĤ", + "اÙģ ÙĤ", + "ÑĨÑĸй ниÑħ", + "Ġ é¦Ļ", + "Ġé¦ Ļ", + "ĠÙħÛĮÙĦÛĮ ÙĪÙĨ", + "å¤ ¢", + "ĠÙģ Ùĩرست", + "r ý", + "Ġпо вÑĸдом", + "Ġпов Ñĸдом", + "ec eÄŁi", + "ece ÄŁi", + "ĠзабезпеÑĩ еннÑı", + " Ķ", + "ãģĹ ãģªãģĦ", + "åŁº ç¡Ģ", + "ĠÚĨ ÙĨÛĮÙĨ", + "ĠÑĢоз ÑĢоб", + "ä¸Ģ äºĽ", + "ãĥ³ ãģ®", + "ĠпÑĢа ÑĨÑĸв", + "ĠпÑĢаÑĨÑĸ в", + "å¾Ĺ åĪ°", + "Ġt ấn", + "åŃĺæ¡£ å¤ĩ份", + "Ġ íĻĪ", + "ĠíĻ Ī", + "Ġ à¸Ķาว", + "Ġà¸Ķ าว", + "ìĭ ±", + "л ина", + "ли на", + "лин а", + "ĠвоÑģп ал", + "ÄŁ inden", + "ÄŁin den", + "ÄŁinde n", + "аÑĤ елей", + "аÑĤе лей", + "r ž", + "ĠÑĦ Ñĥн", + "ĠÐIJ л", + "ĠпоÑĩ ÑĤи", + "о вÑĸд", + "ов Ñĸд", + "овÑĸ д", + "ا عب", + "اع ب", + "าะ ห", + "Ġвоз ÑĢаÑģÑĤ", + "ิà¸ĩ ห", + "ĠÙģ ÙĦس", + "ĠÙģÙĦ س", + "ĠÅ¡ est", + "à¸Ĭ าว", + "Ġ 골", + "Ġê³ ¨", + "Ġ oÄį", + "Ġo Äį", + "ãĤ¸ ãĥ§", + "к оÑģÑĤи", + "ко ÑģÑĤи", + "éĽĨ åĽ¢", + "æ± ĩ", + "ĠpÅĻÃŃ liÅ¡", + "Ġ ìĿij", + "ĠìĿ ij", + "ди ви", + "див и", + "ĠдокÑĥм енÑĤа", + "ĠдокÑĥменÑĤ а", + "ĠCh âu", + "Ġm áu", + "Ġmá u", + "Ġkh ô", + "à ķ", + "Ñī ий", + "Ñīи й", + "Ġs ẵn", + "Ġкон ÑĦ", + "Ġз ÑĥÑģÑĤ", + "åĽŀ çŃĶ", + "Ġ коÑĢиÑģÑĤ", + "ĠкоÑĢ иÑģÑĤ", + "Ġко ÑĢиÑģÑĤ", + "ĠÏĢεÏģ ί", + "ĠÏĢε Ïģί", + "ä¸ °", + "Ġm ạch", + "ан к", + "ä¸ĭ æĿ¥", + "èµĦ æĸĻ", + "ย à¸Ńà¸Ķ", + "ĠÏĢ ιο", + "à¹ī à¸ĩาà¸Ļ", + "à¹īà¸ĩ าà¸Ļ", + "Ġum ÃŃst", + "æ½ ®", + "çªģ çĦ¶", + "Ġk ultur", + "Ġkul tur", + "ĠاÙĦ صÙģ", + "ĠاÙĦص Ùģ", + "a larının", + "alar ının", + "aların ın", + "alarını n", + "ĠÎĶη μο", + "Ġвикон аннÑı", + "Ġвико наннÑı", + "ï½ ¿", + "Ġбез опаÑģ", + "ĠÑģ аÑħ", + "Ġn oh", + "Ġno h", + "à¹ĥ à¸ļ", + "éĥ½ å¸Ĥ", + "ÅŁ am", + "ÅŁa m", + "б ÑĥÑĤ", + "бÑĥ ÑĤ", + "Ġ모 ìĬµ", + "Ġв аг", + "Ġва г", + "çIJĨ 解", + "Ġekonom ik", + "Ġkh ắc", + "Ġs vat", + "Ġsv at", + "лиÑĪ ком", + "ัà¸ĩ à¸Īาà¸ģ", + "iz yon", + "èĥ½ å¤Ł", + "ί νει", + "ίν ει", + " Ĭ", + "ì¦ Į", + "Ġ ÙĩاÛĮÛĮ", + "ĠÙĩ اÛĮÛĮ", + "ĠÙĩاÛĮ ÛĮ", + "ĠkiÅŁ iler", + "ĠkiÅŁi ler", + "Ġк леÑĤ", + "Ġкл еÑĤ", + "Ġкле ÑĤ", + "íĺ ģ", + "à¥ĥ द", + "i Å¡", + "ëĶĶ ìĺ¤", + "ÙĬ راÙĨ", + "ÙĬر اÙĨ", + "ÙĬرا ÙĨ", + "ĠÐĿ Ñĥ", + "à¸Ń à¸Ļà¸Ĺ", + "à¸Ńà¸Ļ à¸Ĺ", + "ĠÑģ оÑĩ", + "ĠÑģо Ñĩ", + "Ġist eyen", + "ĠS ez", + "ĠSe z", + "Ġ ãĤ»", + "ĠãĤ »", + "ĠA ç", + "âĢĮ ÙĨ", + "ĠÑĤ оп", + "ĠÑĤо п", + "ĠÑĤеÑĢÑĢиÑĤ оÑĢ", + "a cılık", + "acı lık", + "Ġод нÑĥ", + "Ġv eri", + "Ġver i", + "Ġve ri", + "ĠÚ© د", + "ĠÚ¯ ÙģتÙĩ", + "ĠÚ¯Ùģت Ùĩ", + "Ġcin sel", + "Ġcins el", + "олог ии", + "ĠpÅĻed mÄĽt", + "à¤Ĥ à¤ĺ", + "Ġ 空", + "Ġç© º", + "γ α", + "' ye", + "'y e", + "ت رة", + "تر Ø©", + "Ġd ÅĻÃŃ", + "ĠH Ãłn", + "ĠHÃł n", + "Ġر شتÙĩ", + "Ġv idea", + "Ġvi dea", + "Ġvid ea", + "Ġvide a", + "Ġ ног", + "Ġн ог", + "Ġно г", + "æ ·»", + "æ· »", + "è¿ĺ æľī", + "ÙĨ در", + "ÙĨد ر", + "Ġy erde", + "Ġyer de", + "Ġk ent", + "Ġke nt", + "Ġken t", + "à¸ļ าล", + "Ġд еÑģÑı", + "Ġде ÑģÑı", + "ä¸ļ åĬ¡", + "Ġоб ÑĬек", + "ĠобÑĬ ек", + "ĠвнÑĥÑĤÑĢ ÑĸÑĪ", + "ĠвнÑĥÑĤ ÑĢÑĸÑĪ", + "k ola", + "ko la", + "kol a", + "eb nÃŃ", + "ี ล", + "Ġ ,.", + "Ġ, .", + "ĠмÑĸж наÑĢод", + "ãģªãĤĵ ãģ¦", + "ĠS öz", + "Ġ chod", + "Ġc hod", + "Ġch od", + "Ġcho d", + "Ġtr úc", + "Ġtrú c", + "ìļĶ ìĿ¼", + "Ġph áºŃn", + "Ñģ ка", + "Ñģк а", + "ĠÑħ лоп", + "Ñģ ким", + "Ñģк им", + "Ñģки м", + "Ġka pit", + "Ġkap it", + "ëĵ¤ ìĹIJê²Į", + "Ġb Ãło", + "ĠbÃł o", + "lı ģın", + "lıģı n", + "lıģ ın", + "Ä° ÅŁ", + "Äį nÃŃk", + "ÄįnÃŃ k", + "Ġ NgoÃłi", + "ĠNg oÃłi", + "Ġب ÛĮاÙĨ", + "ĠبÛĮ اÙĨ", + "Ġpro Äį", + "Ġpr oÄį", + "ĠпÑĢоÑĤ Ñıгом", + "åĢ ī", + "е Ñİ", + "Ġ νο", + "Ġν ο", + "ëĿ¼ ëıĦ", + "ì ·¨", + "Ġви Ñıв", + "Ġпо над", + "Ġпон ад", + "Ġжов ÑĤ", + "Ġ æ¯Ķ", + "Ġæ¯ Ķ", + "Ġd oby", + "Ġdo by", + "Ġdob y", + "л ам", + "ла м", + "Ñij л", + "Ġ ÑĢаÑħ", + "ĠÑĢ аÑħ", + "ĠÑĢа Ñħ", + "Ġвоз ника", + "Ġвозник а", + "ниÑĨÑĤ во", + "å± ¤", + "ĠоÑĤ лиÑĩ", + "ĠоÑĤли Ñĩ", + "çĤ İ", + "é£ ¯", + "Ġživ ota", + "Ġživot a", + "at ör", + "Ġce lý", + "Ġcel ý", + "Ġ aday", + "Ġa day", + "Ġad ay", + "Ġada y", + "ر ÙĬÙĥÙĬ", + "رÙĬ ÙĥÙĬ", + "رÙĬÙĥ ÙĬ", + "Ġب ص", + "m eyen", + "me yen", + "meye n", + "mey en", + "ìļ° ìĬ¤", + "ب ÙĪÙĦ", + "بÙĪ ÙĦ", + "Ġ озна", + "Ġо зна", + "Ġоз на", + "é º¼", + "éº ¼", + "æĵ ļ", + "Ġz kou", + "Ġzk ou", + "ëĤĺ ìļĶ", + "Ġk ry", + "Ġkr y", + "Ġnem oh", + "Ġvyu žÃŃ", + "Ġ æľ¨", + "Ġад мÑĸнÑĸÑģÑĤÑĢа", + "ا Ùĩا", + "اÙĩ ا", + "à¹ĥ à¸ģล", + "____ ____", + "Ġ гоÑĤ", + "Ġг оÑĤ", + "ĠدÛĮ گرÛĮ", + "ĠدÛĮگر ÛĮ", + "Ġл екаÑĢ", + "è§ Ģ", + "Ġ íĺij", + "Ġíĺ ij", + "ĠB öyle", + "ist rov", + "istr ov", + "istro v", + "女 åŃIJ", + "Ġпоп еÑĢед", + "ĠÙĨÙĪÙĬس ÙĨدÙĩ", + "ÙĴ ÙĦ", + "ĠÐŁ ав", + "Ġö rnek", + "Ġör nek", + "Ġп ÑĢик", + "ĠпÑĢ ик", + "ĠпÑĢи к", + "Ġ ÑĪи", + "ĠÑĪ и", + "üslü man", + "ĠÙħÙĤ ابÙĦ", + "åįģ äºĮ", + "Ġb ekl", + "Ġbe kl", + "Ġbek l", + "Ġver ir", + "Ġve rir", + "Ġveri r", + "ÙĪ Ø°", + "ض Ø©", + "ÑĢо ÑĤив", + "ÑĢоÑĤ ив", + "æĮ ij", + ". .:", + ".. :", + "Ġخارج ÙĬØ©", + "a dık", + "ad ık", + "adı k", + "ĠÐŁ оÑĩ", + "ĠÐŁÐ¾ Ñĩ", + "ĠÑħÑĥд ож", + "客 æĪ·", + "μ ον", + "μο ν", + "ek tiv", + "ekt iv", + "Ġt vá", + "Ġtv á", + "Û² Û²", + "Ġl á»įc", + "Ġо но", + "Ġон о", + "ÑĨ иÑĤ", + "ÑĨи ÑĤ", + "ĠÐĴ Ñģ", + "Ġ å¢", + "Ġå ¢", + "æµ ª", + "а ÑĢÑĸ", + "аÑĢ Ñĸ", + "Ġsür ekli", + "Ġ stra", + "Ġs tra", + "Ġst ra", + "Ġstr a", + "Ġb ize", + "Ġbi ze", + "Ġbiz e", + "Ġtes pit", + "Ġch âu", + "ĠاÙĦ ض", + "à¹īà¸Ń à¸ĩà¸ģ", + "à¹īà¸Ńà¸ĩ à¸ģ", + "Ġ èĢħ", + "ĠèĢ ħ", + "ĠH á»", + "Ġкажд Ñĭй", + "а Ñİ", + "à¸Ļ à¸Ħร", + "à¸Ļà¸Ħ ร", + "à¸Ĺ ะ", + "ĠÙħر اجع", + "ĠÙħراج ع", + "Ġha line", + "Ġhal ine", + "δ οÏĤ", + "δο ÏĤ", + "e ÄŁi", + "ĠÙħÛĮ زاÙĨ", + "Ġ ÙĩÙĦ", + "ĠÙĩ ÙĦ", + "Ġb olest", + "Ġbo lest", + "Ġbol est", + "Ġ åľŁ", + "Ġåľ Ł", + "Ġu zman", + "Ġuz man", + "ÑĢ ог", + "ÑĢо г", + "確 èªį", + "ĠÑĢÑĸз ниÑħ", + "Ġза кÑĢÑĭ", + "Ġзак ÑĢÑĭ", + "лÑĥ ги", + "лÑĥг и", + "ĠÑģо веÑĤ", + "ĠÑģов еÑĤ", + "id di", + "idd i", + "åIJĪ ãĤıãģĽ", + "Ġ åIJī", + "ĠåIJ ī", + "Ġk iá»ĩm", + "ë² ½", + "ĠÙħع ÙħÙĪÙĦ", + "ĠопÑĢед елÑı", + "ĠопÑĢедел Ñı", + "Ġmik tar", + "Ġ ìŀIJëıĻ", + "ĠìŀIJ ëıĻ", + "Ġil aç", + "л оÑĩ", + "ло Ñĩ", + "Ġy ılı", + "Ġyıl ı", + "Ġyı lı", + "Ġ ÄIJá»ĥ", + "ĠÄIJ á»ĥ", + "ĠÄIJá» ĥ", + "Ġab ych", + "Ġaby ch", + "Ġrek lam", + "Ġrekl am", + "Ġv ypad", + "Ġvy pad", + "Ġvyp ad", + "Ġна ÑĥÑĩ", + "à¹Ģà¸Ħร าะห", + "Ġ ä»ĸ", + "p ovÄĽ", + "po vÄĽ", + "ï¼Į 让", + "ç¥ Ŀ", + "ا ÙĪÙĨد", + "اÙĪ ÙĨد", + "اÙĪÙĨ د", + "Ġ: |:", + "Ġ:| :", + "Ġre ž", + "Ġvyb av", + "ìľ ¤", + "æŃ ´", + "огÑĢаÑĦ иÑı", + "ez peÄį", + "ezpe Äį", + "± n", + "о вÑĥ", + "ов Ñĥ", + "Ġд Ñĥма", + "ĠдÑĥ ма", + "ĠдÑĥм а", + "Ġjedn odu", + "Ġjedno du", + "о Ñīи", + "оÑī и", + "ĠÙħ شتر", + "ĠÙħØ´ تر", + "è¦ ³", + "Ġyok tur", + "Ġyoktu r", + "Ġob Äįan", + "ĠTr ần", + "ım sız", + "α ιν", + "αι ν", + " Į", + "ر ÛĮاÙĨ", + "رÛĮ اÙĨ", + "ĠJe ho", + "ĠJeh o", + "ĠاÙĦ Ø¢ÙĨ", + "ĠاÙĦØ¢ ÙĨ", + "ÑģÑĮ ким", + "ÑģÑĮк им", + "Ġk dyby", + "Ġkdy by", + "ĠbaÅŁ ına", + "Ġprez ident", + "Ġ Viá»ĩc", + "ĠV iá»ĩc", + "åħ ¼", + "à¥Į à¤ľ", + "Ġ매매 ê°Ģ", + "模 å¼ı", + "nÃŃ mu", + "nÃŃm u", + "Ġ åĤ", + "Ġå Ĥ", + "Ġ deniz", + "Ġd eniz", + "Ġden iz", + "ĺ èĽĽ", + "Ġ èĢĮ", + "ĠèĢ Į", + "ÙĪ ØŃ", + "Ñĭ п", + "Ġâĸ ¼", + "n ul", + "nu l", + "ĠS ev", + "ĠSe v", + "Ġ ruh", + "Ġr uh", + "Ġru h", + "Ġh ạ", + "Ġ Ñıн", + "ĠÑı н", + "Ġ기 본", + "Ġv elik", + "Ġve lik", + "Ġvel ik", + "ĠT ân", + "и лиÑģÑĮ", + "ил иÑģÑĮ", + "или ÑģÑĮ", + "ĠÑħ ÑĢа", + "åĤ ·", + "Ġà¤Ĩ à¤ı", + "Ġn ynÃŃ", + "Ġny nÃŃ", + "» ØĮ", + "ĠØ´ ع", + "æĿ Ĥ", + "Ġм ÑĭÑĪ", + "ĠмÑĭ ÑĪ", + "ãģĻ ãģIJ", + "Ġ ê³µì§Ģ", + "Ġê³µ ì§Ģ", + "Ġt á»Ļc", + "ãĥ¼ ãĥĩ", + "ãĥ¼ãĥ ĩ", + "ĠÑģ ело", + "ĠÑģел о", + "Ġا عÙĦاÙħ", + "Ġاع ÙĦاÙħ", + "ĠÅŁ imdi", + "ĠÅŁi mdi", + "ĠاÙĦÙħ ÙĬÙĦاد", + "ĠاÙĨÙĤÙĦ اب", + "Ġشخص ÙĬØ©", + "ĠK ür", + "ĠKü r", + "Ġ вÑĸÑĤ", + "Ġв ÑĸÑĤ", + "ĠвÑĸ ÑĤ", + "ĠاÙĨد ازÙĩ", + "Ġм оÑī", + "Ġмо Ñī", + "t ernet", + "ter net", + "tern et", + "ĠαÏħ ÏĦή", + "ĠÑĢоз ÑĤа", + "Ġв ив", + "Ġви в", + "l ej", + "le j", + "Ġ 表", + "Ġè¡ ¨", + "ÏĥÏĥ ÏĮÏĦε", + "ĠÙĬ ست", + "ĠÙĬس ت", + "Ġм аÑĪ", + "Ġма ÑĪ", + "åĿ ļ", + "Ġком наÑĤ", + "า หล", + "าห ล", + "Ġ çĻ¼", + "ĠçĻ ¼", + "ĠاÙĪÙĦ ÛĮÙĨ", + "è¿IJ åĬ¨", + "Ġп ÑĥнкÑĤ", + "ĠпÑĥнк ÑĤ", + "ĠоÑģоб енно", + "Ġм ам", + "Ġма м", + "ç» ©", + " ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄", + "алÑĮ нÑĭм", + "ĠЦ енÑĤ", + "ĠЦе нÑĤ", + "- Ðľ", + "ç· Ĵ", + "Ġह à¤ľ", + "о ÑĤÑĭ", + "оÑĤ Ñĭ", + "ãĤ¤ ãĥī", + "د ارة", + "دار Ø©", + "دا رة", + "ãģ¨ ãģĹãģŁ", + "ั à¸ŀย", + "ัà¸ŀ ย", + "Ġot áz", + "Ġдопом огоÑİ", + "à¹ģละ à¸ģาร", + "ĠÑĤÑĢанÑģп оÑĢÑĤ", + "ĠÑĤÑĢанÑģпоÑĢ ÑĤ", + "ĠÙĤر Ø¢ÙĨ", + "Ġ 第ä¸Ģ", + "Ġ第 ä¸Ģ", + "Ġм ил", + "Ġми л", + "Ġng ôi", + "Ġl inh", + "Ġli nh", + "Ġlin h", + "ĠNh ân", + "ÑĮогод нÑĸ", + "æĢ Ģ", + "à¹ī าส", + "à¹īา ส", + ".:: .::", + "Ġbi rey", + "Ġbir ey", + "æĢĿ ãģĦ", + "à¹ĥ à¸Ķ", + "веÑĢ д", + "ве ÑĢд", + "Ġlistop adu", + "Ġ à¹ģม", + "Ġà¹ģ ม", + "г е", + "Ġк ÑĥÑħ", + "ĠкÑĥ Ñħ", + "Ġ íĻľëıĻ", + "ĠíĻľ ëıĻ", + "Ġ èİ", + "Ġè İ", + "ĠÐIJ лÑĮ", + "ĠÐIJл ÑĮ", + "íļĮ ìĿĺ", + "ĠÏĢ Ïģα", + "Ġv ui", + "Ġvu i", + "ว ร", + "à¤Ĥ व", + "Ġg ece", + "Ġge ce", + "Ġgec e", + "ç« ¶", + "Ġk uv", + "Ġku v", + "м еÑī", + "ме Ñī", + "ĠÑĤеп еÑĢÑĮ", + "ĠÑĤепеÑĢ ÑĮ", + "à¸Ń à¹Ģม", + "åĪ¶ 度", + "ĠÑĤ ÑĢеÑĤ", + "ĠÑĤÑĢ еÑĤ", + "ĠÙĨ تÛĮجÙĩ", + "ä»ĺ ãģį", + "Ġ ï¾ŀ", + "Ġï¾ ŀ", + "Ġ Ñĩого", + "ĠÑĩ ого", + "âĢIJ -", + "ĠÅĻÃŃ ká", + "à¸ĩ à¹ĥà¸Ļ", + "ĠnÄĽkol ika", + "ĠnÄĽkolik a", + "Ġb una", + "Ġbu na", + "Ġbun a", + "ï¼Į åŃĺäºİ", + "ล ำ", + "ãĢģ ãģ¨", + "Ġn á»Ļp", + "ĠاÙĦ جÙĨ", + "ĠاÙĦج ÙĨ", + "ĠÎł αν", + "Ġγα ν", + "Ðŀ Ðł", + "Ġدخ تر", + "Ġúda je", + "Ġúdaj e", + "Ġ å¼ł", + "Ġå¼ ł", + "r etim", + "re tim", + "ret im", + "s ınız", + "sın ız", + "ĠÙĩÙĨ اÙĥ", + "ĠÙĩÙĨا Ùĥ", + "ÐĽ Ь", + "æķ ¬", + "Îij Îľ", + "页éĿ¢ åŃĺæ¡£å¤ĩ份", + "ìĤ¬ ê°Ģ", + "Ġt rest", + "Ġtr est", + "Ġtre st", + "Ġtres t", + "v iÄį", + "vi Äį", + "ĠÙ¾ ÛĮدا", + "ĠÙ¾ÛĮ دا", + "ζ ε", + "ĠÐŁ ов", + "ĠÐŁÐ¾ в", + "ÙĦÙħ ات", + "o rex", + "or ex", + "ore x", + "è¬ Ľ", + "ĠвÑĸдк ÑĢиÑĤ", + "м аÑħ", + "ма Ñħ", + "ĠÑĩиÑģ ле", + "ت بار", + "تب ار", + "ĠÎŃ Îº", + "ìķĦ íĮĮíĬ¸", + "r avel", + "ra vel", + "rav el", + "α Ïĥία", + "αÏĥ ία", + "a Äį", + "Ġ à¤ıन", + "Ġà¤ı न", + "ละ à¹Ģà¸Ń", + "Ġз алеж", + "Ġза леж", + "Ġзал еж", + "Ġ æģ", + "Ġæ ģ", + "Ġмож еÑĤе", + "ĠможеÑĤ е", + "Ġможе ÑĤе", + "Ġпо вед", + "Ġпов ед", + "ĠبسÛĮ ارÛĮ", + "ĠبسÛĮار ÛĮ", + "Ġ poÄįet", + "Ġpo Äįet", + "ĠpoÄį et", + "ر بع", + "رب ع", + "e lez", + "el ez", + "ele z", + "ا ÙĪرÛĮ", + "اÙĪ رÛĮ", + "اÙĪر ÛĮ", + "Ġba ÅŁk", + "ĠbaÅŁ k", + "å° Ĥ", + "Ġhal de", + "æĭ Ł", + "S au", + "Sa u", + "о ÑĨи", + "ี à¸Ħ", + "Ġв лади", + "Ġвла ди", + "Ġвлад и", + "ÙIJ Ùħ", + "k ud", + "ku d", + "à¥Ĥ ब", + "å§Ķ åĵ¡", + "า รà¸ĵ", + "าร à¸ĵ", + "o rů", + "or ů", + "Ġ ÙħÙĪÙĦ", + "ĠÙħ ÙĪÙĦ", + "ĠÙħÙĪ ÙĦ", + "Ġ byt", + "Ġb yt", + "Ġby t", + "ĠpÅĻÃŃslu Å¡", + "èĭ± è¯Ń", + "éĢ IJ", + "Ġvel ké", + "Ġvelk é", + "Ġà¤Ĩ श", + "Ġph iếu", + "Ġphi ếu", + "à¹ĥ ส", + "Ġاس Ù¾", + "Ġzbo žÃŃ", + "ãģĵ ãĤĵãģª", + "ãģĵãĤĵ ãģª", + "ĠÙĪÙĩ ÙĬ", + "ĠÑĥÑĩа ÑģÑĤÑĮ", + "ĠÑĥÑĩаÑģÑĤ ÑĮ", + "ĠÑĥÑĩаÑģ ÑĤÑĮ", + "à¸Īำ à¸Ļวà¸Ļ", + "Ġتر Ú©", + "åįģ åĪĨ", + "ÎŁ Îł", + "ÎŁÎ ł", + "κ ολ", + "κο λ", + "Ġf akat", + "Ġfa kat", + "Ġfak at", + "Ġch á»Ĺ", + "éĢļ çŁ¥", + "Ġв одÑĥ", + "Ġво дÑĥ", + "Ġвод Ñĥ", + "ĠÎļα ÏĦηγοÏģία", + "aca ģını", + "acaÄŁ ını", + "л ого", + "ло го", + "ĠmÃ¼ÅŁ ter", + "Ġj ednou", + "Ġjed nou", + "Ġjedn ou", + "Ġjedno u", + "Ġб аÑĢ", + "Ġба ÑĢ", + "i dae", + "id ae", + "ida e", + "d ım", + "dı m", + "è¾ ²", + "åIJ ¹", + "ëIJ ©ëĭĪëĭ¤", + "ĠÅŁekl inde", + "e ným", + "en ým", + "ený m", + "ëĵ ¯", + "i tÄĽ", + "it ÄĽ", + "Ġк олÑĮ", + "Ġкол ÑĮ", + "Ġко лÑĮ", + "ëĮĢ íķĻ", + "ĠÃĸ r", + "Ġ ê½", + "Ġê ½", + "ĠUB ND", + "Ġh ik", + "Ġhi k", + "ãĤī ãģĹãģĦ", + "ãĤīãģĹ ãģĦ", + "åĩº åĵģ", + "C ó", + "Ġ Îŀ", + "ĠÎ ŀ", + "Ġ åħ¥", + "Ġåħ ¥", + "ĠNg uyên", + "ĠÙ¾ ÙĪØ´", + "лÑı ÑĶ", + "ĠØ¢ غاز", + "Ġnhiá»ħ m", + "d ivid", + "div id", + "di vid", + "ç ĺ", + "ا ÙģتÙĩ", + "اÙģ تÙĩ", + "اÙģت Ùĩ", + "а меÑĤ", + "ам еÑĤ", + "нÑĥ лÑģÑı", + "нÑĥл ÑģÑı", + "ä¼ģ æ¥Ń", + "ÑĢоб ÑĸÑĤ", + "dü ÄŁÃ¼", + "dÃ¼ÄŁ ü", + "Ġ کاÙĨ", + "ĠÚ© اÙĨ", + "à¸Ń à¸ĩà¸Ĺ", + "à¸Ńà¸ĩ à¸Ĺ", + "й н", + "Ġpoh yb", + "Ġpohy b", + "Ġb iá»ĩn", + "Ġbi á»ĩn", + "Ġ ï¼Ľ", + "Ġï¼ Ľ", + "Ùħ ÙĨد", + "ÙħÙĨ د", + "Ġà¤Ĩ à¤ķ", + "ĠÄįlov ÄĽk", + "ĠÄįlovÄĽ k", + "ãĤĴè¦ĭ ãĤĭ", + "ë· °", + "ĠÑĥв елиÑĩ", + "ĠÑĥвели Ñĩ", + "Ġ ê´", + "Ġê ´", + "Ġyan lÄ±ÅŁ", + "éº ¦", + "Ġå¤ĸ éĥ¨", + "ÏĦ οÏħÏģγ", + "ÏĦοÏħ Ïģγ", + "Ġп ÑĢоÑĩ", + "ĠпÑĢ оÑĩ", + "ĠпÑĢо Ñĩ", + "ĠÑĢÑĥ ковод", + "çĽ ¤", + "èľ ĺèĽĽ", + "å®ī è£ħ", + "ĠУ кÑĢа", + "Ġtart Ä±ÅŁ", + "ÑĤ аж", + "ÑĤа ж", + "ĠoluÅŁ an", + "ĠRus ya", + "Ġк лÑĥб", + "Ġкл Ñĥб", + "ĠклÑĥ б", + "ĠÎł Ρ", + "alı dır", + "k ın", + "kı n", + "ĠзмÑĸ ни", + "ĠзмÑĸн и", + "leÅŁ ik", + "еÑĢ п", + "об Ñīе", + "обÑī е", + "Ġqu áºŃn", + "Ġप श", + "ãĤĴ åıĹ", + "à¹Ģล à¸Ĥ", + "ا ضر", + "اض ر", + "Ġuž ivatel", + "λ ία", + "λί α", + "ĠÐĴ они", + "ĠÐĴо ни", + "ุà¸Ķ à¸Ĺ", + "ĠV Ãł", + "ãĥ³ ãĤ¿", + ") ëĬĶ", + "æ¸ Ľ", + "Ġ μÏĢ", + "Ġμ ÏĢ", + "å· §", + "ĠÑĪ кол", + "ĠÑĪк ол", + "Ġì²ĺ ìĿĮ", + "ัà¸ģ à¸Ķ", + "æ® Ĭ", + "Ġnh á»Ŀ", + "ĠοÏĢο ία", + "à¹ģ à¸Ļว", + "à¹ģà¸Ļ ว", + "меÑĢик ан", + "nÃŃ ka", + "nÃŃk a", + "Ġíĺ¸ íħĶ", + "سب ب", + "à¸ĩ ม", + "ìŀĪ ëĬĶ", + "غ Ø·", + "Ùı ÙĦ", + "¹ æŀľ", + "Ñĩ Ñĸв", + "ÑĩÑĸ в", + "ÑĪ аÑı", + "ÑĪа Ñı", + "ĠØ¥ ÙĦا", + "ĠØ¥ÙĦ ا", + "خص ÙĪص", + "ll ll", + "ĠÑį ÑĤим", + "ĠÑįÑĤ им", + "ĠÑįÑĤи м", + "Ġz vÃŃ", + "Ġzv ÃŃ", + "Ġqu án", + "Ġquá n", + "à¸Ļ à¸ģ", + "Ġп олов", + "Ġпо лов", + "Ġпол ов", + "Ġ æ·±", + "Ġæ· ±", + "Ġm iá»ģn", + "Ġmi á»ģn", + "人 éĸĵ", + "Ġз им", + "Ġmey dana", + "е ÑĦ", + "Ġb á»ģn", + "Ġbá»ģ n", + "ز ÙĬد", + "زÙĬ د", + "ĠÐł еÑģп", + "ĠÐłÐµ Ñģп", + "ÎĻ ΣΤ", + "ÎĻΣ Τ", + "Ġ æĶ¶", + "ĠæĶ ¶", + "r aya", + "ra ya", + "ray a", + "ĠتÙĪ اÙĨد", + "ĠتÙĪاÙĨ د", + "Ġ ister", + "Ġis ter", + "Ġi ster", + "Ġist er", + "Ġ ë°Ģ", + "Ġë° Ģ", + "ĠмеÑħ ани", + "Ġ à¸ķำ", + "Ġà¸ķ ำ", + "Ġд ека", + "Ġде ка", + "Ġдек а", + "à¤Ĥ à¤Ĺल", + "à¤Ĥà¤Ĺ ल", + "ãĥ¼ ãĤ«ãĥ¼", + "Ġnep ÅĻÃŃ", + "ĠnepÅĻ ÃŃ", + "ĠÑģ ÑĩиÑĤ", + "ĠÑģÑĩ иÑĤ", + "Ġο μά", + "Ġç ift", + "ب ÛĮÙĨÛĮ", + "بÛĮ ÙĨÛĮ", + "بÛĮÙĨ ÛĮ", + "m eleri", + "me leri", + "mel eri", + "meler i", + "Ġвоз дейÑģÑĤв", + "d ou", + "do u", + "ìĥģ ìĿĦ", + "ĠÐĴ олод", + "ĠÐĴо лод", + "ĠÐĴол од", + "ε β", + "ÐĿ Ðĺ", + "Ñı к", + "Ïį ÏĦε", + "з ано", + "за но", + "len ir", + "c elik", + "ce lik", + "cel ik", + "ĠÑģоÑģÑĤав лÑıеÑĤ", + "ι αÏĤ", + "ια ÏĤ", + "ĠÐĵ оÑĢ", + "ä¹ĭ ä¸Ģ", + "Ïĥμ ÏĮÏĤ", + "ÏĥμÏĮ ÏĤ", + "ãģ« éĸ¢", + "Ġв Ñĩ", + "Ġп оÑģк", + "Ġпо Ñģк", + "ĠпоÑģ к", + "è¼ ¯", + "à¥Ģ श", + "ĠØ¢ ثار", + "à¸Ħวาม ร", + "Ġ един", + "Ġе дин", + "Ġеди н", + "íħ IJ", + "å¹³ æĪIJ", + "ĠkiÅŁ inin", + "ĠkiÅŁi nin", + "ãĤ² ãĥ¼ãĥł", + "à¥įत व", + "Ġkapsam ında", + "Ġak tar", + "Ġakt ar", + "Ġtr ừ", + "Ġر شد", + "Ġна каз", + "Ġнак аз", + "ر ÙĬÙĦ", + "رÙĬ ÙĦ", + "à¸Ń à¸Ħ", + "Ġگذ شتÙĩ", + "Ġ æ°ij", + "Ġæ° ij", + "ĠÑĤеб Ñı", + "s por", + "sp or", + "spo r", + "Ñİ ÑīаÑı", + "ÑİÑī аÑı", + "окÑĢем а", + "в ад", + "ва д", + "ĠCh úng", + "ĠزÛĮ ادÛĮ", + "ĠزÛĮاد ÛĮ", + "е ного", + "ен ого", + "ено го", + "ĠÚ© سÛĮ", + "à ŀ", + "Ġad ına", + "Ġadı na", + "Ñĥ да", + "Ñĥд а", + "Ñĸ ÑĶ", + "аÑĤ ели", + "аÑĤе ли", + "Ġnáv Å¡tÄĽ", + "çĶ¨ äºİ", + "ĠپرÙĪ ÙĨدÙĩ", + "ĠÙĨ بÙĪد", + "ĠÙĨب ÙĪد", + "س ات", + "ìĹ ĺ", + "ãģ£ ãģ¦ãĤĤ", + "ãģ£ãģ¦ ãĤĤ", + "Ġ çī©", + "Ġçī ©", + "Ðĺ з", + "åĪ ·", + "Ġ íľ´", + "Ġí ľ´", + "ĠоÑģоб лив", + "ãģĹ ãģ¾ãģ£ãģŁ", + "ãģĹãģ¾ ãģ£ãģŁ", + "a ydı", + "ay dı", + "ayd ı", + "åĩº çļĦ", + "ĠìķĦëĭĪ ëĿ¼", + "ıs ını", + "à¸Ĺาà¸ĩ à¸ģาร", + "Ġzv uky", + "Ġ 管", + "Ġç® ¡", + "âĸĭ âĸĭ", + "ĠÑĤ елеÑĦ", + "ĠÑĤел еÑĦ", + "Ġн елÑĮзÑı", + "ãĥ« ãģ®", + "Ïĥ ÏĢ", + "Ġ ç³", + "Ġç ³", + "åł ¡", + "ÑĨ Ñĥз", + "ÑĨÑĥ з", + "رÙĬ ÙĤØ©", + "رÙĬÙĤ Ø©", + "à¤¿à¤Ľ ल", + "è² ©", + "ĠУ кÑĢаÑĹн", + "ĠУкÑĢаÑĹ Ð½", + "ĠÙħسئ ÙĪÙĦ", + "Ġо ÑĩÑĸ", + "ĠоÑĩ Ñĸ", + "æľĢ å¾Į", + "Ġзна Ñİ", + "Ġзн аÑİ", + "à¹ī à¸Ļà¸Ĺ", + "à¹īà¸Ļ à¸Ĺ", + "ĠÑĤ еÑĢап", + "ĠÑĤеÑĢ ап", + "ĠÑĤе ÑĢап", + "ĠÑģп ок", + "ĠØ®ÙĪد رÙĪ", + "éĺ »", + "Ġdüz ey", + "ä¸Ģ åĢĭ", + "ا ÙģÙĩ", + "اÙģ Ùĩ", + "à¤Ĥ य", + "èµĦ 产", + "继 ç»Ń", + "ĠÑģ лаб", + "ĠÑģл аб", + "æĦı æĢĿ", + "ĠíĻĺ ìĤ°", + "ĠÑı ÑĢ", + "Ġd ůvod", + "Ġdů vod", + "çĿ Ľ", + "تÛĮ ب", + "ĠÙĪ ÛĮر", + "ĠÙĪÛĮ ر", + "ĠÙĩ زÛĮÙĨÙĩ", + "Ġben zer", + "Ġbenz er", + "ĠÙħ ادÙĩ", + "ĠÙħا دÙĩ", + "ĠÙħاد Ùĩ", + "à¥Į à¤ķ", + "Ġ à¹Ģà¸ķ", + "Ġà¹Ģ à¸ķ", + "Ġà¹Ģภķ", + "ãĤĪ ãģı", + "ид енÑĤ", + "èĭ± èªŀ", + "е ÑĢÑĭ", + "еÑĢ Ñĭ", + "Ġê¸Ī ìķ¡", + "Ġ ãĥ¼", + "Ġãĥ ¼", + "Ġ ëį¤íĶĦ", + "Ġëį ¤íĶĦ", + "ÑĢ аÑĤÑĮ", + "ÑĢа ÑĤÑĮ", + "ÑĢаÑĤ ÑĮ", + "Ġ åįķ", + "Ġåį ķ", + "à¹Ģà¸ī à¸ŀาะ", + "Ġ æĶ¿", + "ĠæĶ ¿", + "Ġà¤Ĩ म", + "Ġз ни", + "Ġзн и", + "Ġ ëĿ¼ìĿ´", + "ĠëĿ¼ ìĿ´", + "æİ Į", + "çIJĨ çĶ±", + "Ġ اغ", + "Ġا غ", + "ĠØ§Ø º", + "ĠÑģ иг", + "ĠÑģи г", + "Ġе ÑĦекÑĤив", + "ĠÐŁ ÑĢед", + "ĠÐŁÑĢ ед", + "ãĥ´ ãĤ£", + "Ġви ко", + "Ġвик о", + "Ġt vrd", + "Ġtv rd", + "ëĤ´ 기", + "ãĥĭ ãĤ¢", + "ĠÙħشاÙĩ دÙĩ", + "Ġस à¤ļ", + "l Ã¼ÄŁ", + "lü ÄŁ", + "è¯ģ åĪ¸", + "Ġs iêu", + "Ġsi êu", + "Ġ оÑĤв", + "ĠоÑĤ в", + "Ġvyt voÅĻ", + "ĠØŃ ÙħÙĦ", + "ĠØŃÙħ ÙĦ", + "ĠÑĦ ÑĢан", + "à¹ī à¸Ķ", + "åĮ» éĻ¢", + "Ġв лад", + "Ġвла д", + "غ ÙĦ", + "建 ç«ĭ", + "os loven", + "osl oven", + "и лаÑģÑĮ", + "ила ÑģÑĮ", + "عÙĦ ÙĪÙħات", + "عÙĦÙĪÙħ ات", + "Ġ ترÛĮÙĨ", + "Ġتر ÛĮÙĨ", + "ÎŃ Ïģει", + "ÎŃÏģ ει", + "Ġb áºŃt", + "ĠÙħØ´ Ú©", + "Ġر ئÙĬس", + "Ġرئ ÙĬس", + "Ġìłľ ìŀij", + "γ η", + "Ġн Ñĸк", + "ĠнÑĸ к", + "Ġ구 ìĦ±", + "ĠÄij en", + "Ġà¤ļ र", + "Ġgeç miÅŁ", + "äºĨ 解", + "Ġл еÑģ", + "Ġqu anh", + "Ġqua nh", + "Ġquan h", + "ãĢĮ æĪij", + "ĠNÄĽkter á", + "ëŀ į", + "Ãħ Ÿ", + "à¤Ĥ दर", + "à¤Ĥद र", + "ìķĦ ìĿ´", + "å°ij ãģĹ", + "ĠØ´Ùĩر ÛĮ", + "ĠØ´Ùĩ رÛĮ", + "κ ÏĦη", + "ĠâĹ Ħ", + "Ġ Ùĥس", + "ĠÙĥ س", + "è· Į", + "à ı", + "å·¥ åħ·", + "åĬ ĥ", + "p om", + "po m", + "ĠнавÑĩ аннÑı", + "Ġ رج", + "Ġر ج", + "ÑĢ ÑĥеÑĤÑģÑı", + "ÑĢÑĥ еÑĤÑģÑı", + "ÑĢÑĥеÑĤ ÑģÑı", + "Ġν ÎŃ", + "ÛĮÙĨ Ú©", + "à¹Ĥ à¸ĭ", + "åĭ ¤", + "ãģĹãģ¾ ãģĨ", + "ĠÑģ оглаÑģ", + "ĠÑģог лаÑģ", + "éĩij èŀį", + "ç »¿", + "ç» ¿", + "ĠС ан", + "æķ µ", + "Ġпо вÑĸÑĤ", + "Ġпов ÑĸÑĤ", + "Ġпом оÑīи", + "ĠпомоÑī и", + "ãĥ¡ ãĥªãĤ«", + "ãĤ· ãĤ¢", + "ĠÏĢ ÏģοÏĤ", + "ĠÏĢÏģο ÏĤ", + "èĪª 空", + "ĠваÑĢи анÑĤ", + "ĠваÑĢиан ÑĤ", + "Ġyalnız ca", + "ç³» çµ±", + "ĠÙģ ÙĪر", + "ĠÙģÙĪ ر", + "оÑĩ ной", + "оÑĩно й", + "à¹Ģว à¸Ńร", + "ĠкÑĥлÑĮ ÑĤÑĥÑĢ", + "ĠкÑĥлÑĮÑĤÑĥ ÑĢ", + "Ïĩ ι", + "ÄįÃŃ ta", + " ĵ", + "人 ãģĮ", + "κ οÏį", + "κο Ïį", + "ĠÑĢе ÑĶ", + "Ġв ÑģÑİ", + "ĠвÑģ Ñİ", + "éº Ĺ", + "Ġز ÙĨاÙĨ", + "ĠزÙĨ اÙĨ", + "çĭ Ĥ", + "Ġ หม", + "Ġห ม", + "Ġx úc", + "åħ Ĵ", + "ÄŁ inin", + "ÄŁi nin", + "ÄŁini n", + "ÄŁin in", + "åĸľ 欢", + "ĠÑģÑĤ ад", + "ĠÑģÑĤа д", + "iy esi", + "iye si", + "ìļ ±", + "è Ŀ", + "Ġ kus", + "Ġk us", + "Ġku s", + "ÏĦ ολ", + "ÏĦο λ", + "г Ñĸв", + "Ñĸ ли", + "Ñĸл и", + "ãģĦ ãĤĦ", + "é© Ĺ", + "ont rol", + "ا ÙĦÙĥ", + "اÙĦ Ùĥ", + "к овиÑħ", + "ко виÑħ", + "ков иÑħ", + "ĠÑģÑĤ ало", + "ĠÑģÑĤал о", + "ĠÑģÑĤа ло", + "ĠÎł αÏģα", + "Ġγα Ïģα", + "ĠγαÏģ α", + "Ġ chy", + "Ġc hy", + "Ġch y", + "Ġcih az", + "ĩ ´", + "ìŀ¥ ìĿ´", + "a ceae", + "ace ae", + "acea e", + "Ø´ Ùĩر", + "Ø´Ùĩ ر", + "ил аннÑı", + "çļĦ å°ı", + "Ġth ụ", + "Ġthá» ¥", + "ÙĪ ÙĨت", + "ÙĪÙĨ ت", + "л оÑĢ", + "ло ÑĢ", + "ãĤĴ æĮģ", + "ĠÎĶ ι", + "Ġ 羣", + "Ġçľ Ł", + "ÐĽ Ðŀ", + "é½ IJ", + "çİ Ħ", + "ا ÙĪÙĩ", + "اÙĪ Ùĩ", + "Ġи нÑĤ", + "Ġин ÑĤ", + "à¥Ģ à¤Łà¤°", + "à¥Ģà¤Ł र", + "Ġ обÑīе", + "Ġоб Ñīе", + "ĠобÑī е", + "Ġдеп ÑĥÑĤ", + "μÎŃν εÏĤ", + "ĠÙĥ ÙĬÙģ", + "ع ÙħÙĦ", + "عÙħ ÙĦ", + "ï¼Į å¦Ĥæŀľ", + "ï¼Įå¦Ĥ æŀľ", + "Ġин ÑĦек", + "i tele", + "it ele", + "ite le", + "itel e", + "Ġ ãĢĢãĢĢĠãĢĢ", + "ĠãĢĢ ãĢĢĠãĢĢ", + "ĠãĢĢãĢĢ ĠãĢĢ", + "ãĤ¤ ãĥ³ãĥĪ", + "ãĤ¤ãĥ³ ãĥĪ", + "л ÑĸÑĤ", + "лÑĸ ÑĤ", + "Ġ ÑģÑİ", + "ĠÑģ Ñİ", + "Ġz ase", + "Ġza se", + "Ġzas e", + "d ech", + "de ch", + "dec h", + "е ко", + "ек о", + "è® ĵ", + "åı ¬", + "з ем", + "Îł Îij", + "Ġvz du", + "า à¸Īาà¸ģ", + "าà¸Ī าà¸ģ", + "ko liv", + "kol iv", + "koli v", + "zk um", + "èģ Ĭ", + "Ġì±Ħ ìļ©", + "๠į", + "Ġ asp", + "Ġa sp", + "Ġas p", + "Û² Û´", + "ìĿ¸ ëį°", + "ĠkarÅŁÄ± laÅŁ", + "ï¼Į åı¯ä»¥", + "ï¼Įåı¯ 以", + "Ġà¤ĩन à¤ķ", + "Ġ ìĬ¤íĥĢ", + "ĠìĬ¤ íĥĢ", + "éĥ¨ å±ĭ", + "åĪ¶ ä½ľ", + "ãĥ¼ ãĤ·ãĥ§ãĥ³", + "ον ÏĦαÏĤ", + "γ ο", + "Ġìŀij ìĦ±", + "èij £", + "oz ÅĻejmÄĽ", + "ĠÑĢезÑĥлÑĮÑĤаÑĤ е", + "ĠÑĢезÑĥлÑĮÑĤ аÑĤе", + "ĠIns ecta", + "Ġs kon", + "Ġsk on", + "o tu", + "ot u", + "Ġp ÄĽt", + "ĠpÄĽ t", + "Ñģ ÑĮого", + "ÑģÑĮ ого", + "ĠÄ°s lam", + "Ġl á»ħ", + "Ġlá» ħ", + "ä¸Ń åľĭ", + "ĠÐľÑĸ нÑĸÑģÑĤ", + "åIJĪ åIJĮ", + "asy onu", + "asyon u", + "ож еÑĤ", + "оже ÑĤ", + "èĩª åĬ¨", + "ÑģÑĮ коÑİ", + "ÑģÑĮк оÑİ", + "ÑģÑĮко Ñİ", + "ĠkiÅŁ isel", + "ĠkiÅŁi sel", + "ÏĦ ικοÏį", + "ÏĦικ οÏį", + "ÏĦι κοÏį", + "ÏĦικο Ïį", + "Ġ ÑĥÑĩаÑģ", + "ĠÑĥ ÑĩаÑģ", + "ĠÑĥÑĩ аÑģ", + "ĠÑĥÑĩа Ñģ", + "ıl mÄ±ÅŁtır", + "ılmÄ±ÅŁ tır", + "ĠÑı ке", + "ĠÑıк е", + "Ñī инÑĭ", + "Ñīи нÑĭ", + "Ñīин Ñĭ", + "м аÑĢ", + "ма ÑĢ", + "Ġso udu", + "Ġsou du", + "Ġsoud u", + "Âł Я", + "Ġд ÑĢÑĥ", + "ĠдÑĢ Ñĥ", + "ãģ¡ ãĤĩ", + "à¥ĭ à¥ľ", + "ï¾ ij", + "Ġ ÏĦÏĮ", + "ĠÏĦ ÏĮ", + "Ġ ضر", + "Ġض ر", + "l áš", + "lá Å¡", + "Ġд Ñĸв", + "ĠдÑĸ в", + "Ġج دÙĬد", + "Ġجد ÙĬد", + "Ġнеб олÑĮÑĪ", + "ĠнеболÑĮ ÑĪ", + "éģ Ń", + "ç» į", + "ĠKur ulu", + "ĠKurul u", + "ÑģÑĤÑĢ ÑĥменÑĤ", + "ÑģÑĤÑĢÑĥ менÑĤ", + "è¿Ļ æĺ¯", + "ìĻ Ķëĭ¤", + "ìĻĶ ëĭ¤", + "м елÑĮ", + "ме лÑĮ", + "Ġ ä¼Ĭ", + "ủ ng", + "ĠзавиÑģим оÑģÑĤи", + "ëį ¤íĶĦ", + "çĩ ĥ", + "è¿ĩ åİ»", + "ĠзаÑģÑĤоÑģ ÑĥваннÑı", + "Ġداخ ÙĦÛĮ", + "ĠداخÙĦ ÛĮ", + "Ñī Ñij", + "ĠÂłĠÂł ĠÂłĠÂłĠÂłĠÂł", + "ĠÂłĠÂłĠÂłĠÂł ĠÂłĠÂł", + "ïº ®", + "ĠاÙĦÙħ ÙħÙĦÙĥØ©", + "s ında", + "sı nda", + "sın da", + "è³ Ģ", + "å± ı", + "Ġ ê¿", + "Ġê ¿", + "Ġdo ktor", + "Ġdok tor", + "ĠÙĤ اب", + "ĠS ist", + "ĠSi st", + "ĠмеÑģÑĤ е", + "ĠÑģоÑħ ÑĢа", + "ا شتÙĩ", + "اش تÙĩ", + "اشت Ùĩ", + "Ġ æľŁ", + "ĠпоÑģк олÑĮкÑĥ", + "Ġp ev", + "Ġpe v", + "ا گر", + "اگ ر", + "Ùħ ز", + "Ġض ÙħÙĨ", + "ॠ©", + "g esi", + "ge si", + "ges i", + "a ÄŁa", + "aÄŁ a", + "解 åĨ³", + "ëħ¸ ì¶ľ", + "Ġl uyá»ĩn", + "Ġкон ÑĤак", + "ĠконÑĤ ак", + "ภº", + "Ġ NgÃły", + "ĠNg Ãły", + "Ġvý stav", + "Ġth uyết", + "اÛĮ ع", + "Ġ: /:", + "Ġ:/ :", + "Ġph ạt", + "ĠÎij ÏĢÏĮ", + "ĠÎijÏĢ ÏĮ", + "Ġ muz", + "Ġm uz", + "Ġmu z", + "Ġ ìĥī", + "Ġìĥ ī", + "ĠÃĩ in", + "Ġکار برد", + "Ġکاربر د", + "ائ د", + "ب اد", + "با د", + "à¥į तम", + "à¥įत म", + "Ġ ëijĺ", + "Ġëij ĺ", + "Ġм оз", + "Ġмо з", + "Å¡ ÃŃch", + "Å¡ÃŃ ch", + "Ġ มห", + "Ġม ห", + "ĠØ¢ س", + "ĠÑģ лиÑĪком", + "èĥ ¡", + "è£ ģ", + "æĪ »", + "ĠìĦ¤ ëªħ", + "Ġo tom", + "Ġot om", + "Ġoto m", + "Ġलà¤Ĺ à¤Ńà¤Ĺ", + "à¸ĩ à¸ģ", + "ا بد", + "اب د", + "à¸Ļ าม", + "à¸Ļา ม", + "èĤ ©", + "Ġشد ÙĨد", + "ĠشدÙĨ د", + "ãģĿãģ® ä»ĸ", + "ad lo", + "ÄĽ n", + "ĠÙĦ Ùĩا", + "ĠÙĦÙĩ ا", + "Ġмин им", + "Ġми ним", + "Ġd ÅĻev", + "ĠTh iên", + "ĠThi ên", + "ëŀ Ļ", + "en gin", + "eng in", + "à¥Ģ मत", + "à¥Ģम त", + "ĠÑĥп оÑĤÑĢеб", + "âĢĮ تر", + "Ġç¥ŀ 马", + "ov ánÃŃm", + "ová nÃŃm", + "ovánÃŃ m", + "ován ÃŃm", + "Ġд ело", + "Ġдел о", + "Ġде ло", + "Ġ ç¼ĸ", + "Ġç¼ ĸ", + "ĠاÙĦ ظ", + "Ġ вий", + "Ġв ий", + "Ġви й", + "а ÑĤом", + "аÑĤ ом", + "аÑĤо м", + "åħ¬ åijĬ", + "ĠÄij em", + "ãĤ· ãĥªãĥ¼ãĤº", + "ä¸ĭ çļĦ", + "l ası", + "la sı", + "las ı", + "ĠвÑĭ боÑĢ", + "ĠвÑĭб оÑĢ", + "ÑĤ оÑĤ", + "ÑĤо ÑĤ", + "ëıĦ ë³Ħ", + "ĠÑĥ ÑģÑĤан", + "ĠÑĥÑģÑĤ ан", + "Ġ íŀĪ", + "Ġíŀ Ī", + "лÑĥ аÑĤа", + "Ġth ác", + "а нием", + "ан ием", + "ани ем", + "ание м", + "ов аÑĤÑĮÑģÑı", + "ова ÑĤÑĮÑģÑı", + "оваÑĤÑĮ ÑģÑı", + "ÑĤ ÑĶ", + "ÐŃ ÑĤо", + "ï¼Į è¦ģ", + "ĠV z", + "ĠØŃ ÙĪزÙĩ", + "ĠØŃÙĪ زÙĩ", + "- к", + "V Ỽi", + "ent ů", + "Ġbulun duÄŁu", + "Ġbulundu ÄŁu", + "ر ÙĪØ·", + "رÙĪ Ø·", + "ĠÑĹ Ð¹", + "Ġçev r", + "Ġ ÅĻed", + "ĠÅĻ ed", + "ĠÅĻe d", + "Ġس اختÙĩ", + "Ġساخت Ùĩ", + "åĬŀ æ³ķ", + "Ġ ÙĤÙĦ", + "ĠÙĤ ÙĦ", + "i ÅŁi", + "iÅŁ i", + "ï¼Ŀ ï¼Ŀ", + "س اس", + "Ġúdaj ů", + "å ¬", + "æį Ł", + "á ct", + "ác t", + "ĠÎij ÏĢ", + "çĪ ·", + "Ġ ÅĻád", + "ĠÅĻ ád", + "Ġl á»Ĺi", + "Ġlá» Ĺi", + "Ġlá»Ĺ i", + "on tent", + "ont ent", + "onte nt", + "ĠÙħ Ø°", + "ol oji", + "olo ji", + "oloj i", + "Ġپرد اخت", + "à¹ī าà¸ŀ", + "à¹īา à¸ŀ", + "ĠдейÑģÑĤв иÑı", + "Ġmnož stvÃŃ", + "ìķĪ ë§Ī", + "åģ ¶", + "Ġ ÃĶng", + "ĠÃĶ ng", + "Ġdak ika", + "hen dis", + "hend is", + "Ġb ác", + "å¯ ¶", + "à¹ĩà¸ģ หà¸į", + "noc enÃŃ", + "ĠErd oÄŁan", + ": ::::::::::::", + ":: :::::::::::", + ":::: :::::::::", + ":::::: :::::::", + ":::::::: :::::", + "::: ::::::::::", + "::::: ::::::::", + "::::::: ::::::", + "::::::::: ::::", + ":::::::::: :::", + "::::::::::: ::", + ":::::::::::: :", + "аÑĤ ем", + "аÑĤе м", + "d ız", + "dı z", + "ĠØ£ÙĬ ضا", + "ĠØ£ÙĬض ا", + "ĠÑįÑĦ ÑĦек", + "ãĤĮ ãģ¦ãģĦãĤĭ", + "ãĤĮãģ¦ ãģĦãĤĭ", + "ĠbaÅŁv uru", + "ĠbaÅŁvur u", + "ά νει", + "άν ει", + "ĠÏĦε λεÏħÏĦα", + "Ġê²Ģ ìĥī", + "ĠÚ©ÙĨ ترÙĦ", + "Ġ शà¤ķ", + "Ġश à¤ķ", + "å¼ ¹", + "Ġol muÅŁtur", + "Ġolm uÅŁtur", + "ĠolmuÅŁ tur", + "Ġв ÑģÑĤÑĥп", + "ĠвÑģÑĤ Ñĥп", + "Ñĩ ила", + "Ñĩи ла", + "Ñĩил а", + "ย า", + "ĠØ£ØŃ Ùħد", + "os lav", + "osl av", + "ĠÑĩа Ñģов", + "ĠÑĩаÑģ ов", + "Ġzá kladnÃŃ", + "Ġzáklad nÃŃ", + "Ġस व", + "д он", + "до н", + "ĠÅĻÃŃj na", + "κ οÏħ", + "κο Ïħ", + "éĢģ æĸĻçĦ¡æĸĻ", + "éĢģæĸĻ çĦ¡æĸĻ", + "Ïĥ ίαÏĤ", + "Ïĥία ÏĤ", + "Ïĥί αÏĤ", + "ãĤ´ ãĥª", + "Ġв иб", + "Ġви б", + "å½ Ĵ", + "Ġназ ад", + "ĠçĻ¾åº¦ æĶ¶å½ķ", + "á» Ĩ", + "Ġkal dı", + "ì¼ ľ", + "Ġ íıŃ", + "Ġíı Ń", + "ĠÑĩи ном", + "ĠÑĩин ом", + "è ¹", + "Ñı л", + "ĠÑĢаз дел", + "ĠÑĢазд ел", + "d G", + "ĠT ento", + "ĠTen to", + "ĠTent o", + "Ñı ÑĤÑĮÑģÑı", + "ÑıÑĤÑĮ ÑģÑı", + "éĿ¢ çļĦ", + "ĠÎķ ÏĢι", + "ĠÎķÏĢ ι", + "ê° ij", + "Ġk èm", + "ни ÑĨÑı", + "ниÑĨ Ñı", + "çĸ «", + "éĽ Ļ", + "ĠÙħر Ùĥز", + "Ġна Ñĥк", + "å¢ Ĺ", + "ĠÑĤе пеÑĢ", + "ĠÑĤеп еÑĢ", + "ा à¤ł", + "ाठł", + "à¹ĩà¸ļ à¹Ħà¸ĭà¸ķ", + "μβ ÏģίοÏħ", + "ĠÑĦÑĸн анÑģов", + "ĠÑĦÑĸнанÑģ ов", + "Ñĸ ÑĶÑİ", + "ÑĸÑĶ Ñİ", + "Ïģ ίζ", + "Ïģί ζ", + "ì¤ Ħ", + "ĠباÙĨ Ú©", + "t ul", + "tu l", + "li ÄŁini", + "liÄŁi ni", + "liÄŁ ini", + "liÄŁin i", + "ĠпозволÑı еÑĤ", + "Ġпозвол ÑıеÑĤ", + "Ïĥ ί", + "Ġ ìĽĥ", + "ĠìĽ ĥ", + "à¹Į à¸Ħ", + "Ġpol ov", + "Ġpo lov", + "Ġpolo v", + "ìŀ¥ ìĿĦ", + "is té", + "ist é", + "ĠС Ð¡Ð¡Ðł", + "á hl", + "áh l", + "è ¥", + "Ġкомп лек", + "à¸Ĥ à¸Ļาà¸Ķ", + "ั ศ", + "ν αν", + "να ν", + "Ġç¥ŀ马 æĶ¶å½ķ", + "ìĭľ ìĺ¤", + "Ġé¦ĸ页 第", + "ĠçĻ¾åº¦ æµģéĩı", + "åij¨ æĶ¶å½ķ", + "Ġh atta", + "Ġhat ta", + "ÐĴ Ñĸд", + "ĠвÑĭ ÑģÑĤÑĥп", + "Ú© ارÛĮ", + "کار ÛĮ", + "کا رÛĮ", + "K hi", + "Kh i", + "Ġì°¾ ìķĦ", + "Ġn ặng", + "éĨ «", + "ĠV Å¡", + "ĠпеÑĢ ен", + "ĠпеÑĢе н", + "л ава", + "ла ва", + "лав а", + "ÙĬ ÙħÙĬ", + "ÙĬÙħ ÙĬ", + "Ġvat andaÅŁ", + "Ġ ιÏĥÏĦο", + "Ġι ÏĥÏĦο", + "Ġ à¸ĵ", + "Ġภĵ", + "स ल", + "г ен", + "ге н", + "Ġ بÙĪر", + "Ġب ÙĪر", + "ĠبÙĪ ر", + "âĢĮدÙĩ د", + "âĢĮد Ùĩد", + "l ıklı", + "lık lı", + "Ġ strate", + "Ġst rate", + "Ġstr ate", + "Ġstrat e", + "Ġstra te", + "ب ÙĪر", + "بÙĪ ر", + "ãĢģ ãĤ¢", + "Ġson uc", + "Ġsonu c", + "Ġна иболее", + "- в", + "Ġвод ой", + "oj enÃŃ", + "oje nÃŃ", + "Ġغ رب", + "Ġغر ب", + "Ġb eri", + "Ġbe ri", + "Ġber i", + "a dÄĽ", + "ad ÄĽ", + "Ġd ovol", + "Ġdo vol", + "Ġdov ol", + "âĢĮÚ©ÙĨ ÙĨدگاÙĨ", + "âĢĮÚ©ÙĨÙĨد گاÙĨ", + "ãģķ ãĤī", + "ãĥ³ ãĤº", + "ãĤ« ãĥ«", + "om etr", + "ome tr", + "omet r", + "åĩ Ģ", + "ĠÙģ ÙĪÙĦ", + "ĠÙģÙĪ ÙĦ", + "ĠÙħ ÙĪسÛĮ", + "ĠÙħÙĪ سÛĮ", + "ĠÙħÙĪس ÛĮ", + "ĠاÙĦÙħغ رب", + "e cko", + "ec ko", + "eck o", + "ÙĢÙĢÙĢÙĢ ÙĢÙĢÙĢÙĢ", + "ê°Ģ 격", + "ÑĢ ÑĥÑĤ", + "ÑĢÑĥ ÑĤ", + "Ġ ë¶Ģë¶Ħ", + "Ġë¶Ģ ë¶Ħ", + "ĠpÅĻed pis", + "Ġoprav du", + "еÑĤ иÑĩ", + "еÑĤи Ñĩ", + "à¹Ĥ à¸Ħรà¸ĩà¸ģาร", + "æ ħ§", + "æħ §", + "æĭ ľ", + "س Ùĥ", + "ìŀ¡ ëĭ´", + "à¸Ľà¸£à¸°à¸¡ าà¸ĵ", + "è´¨ éĩı", + "Ġголов Ñĥ", + "Ġгол овÑĥ", + "л ениÑİ", + "лен иÑİ", + "ле ниÑİ", + "Ġन à¤ı", + "Ġprojekt u", + "ا Ùģر", + "اÙģ ر", + "at ivnÃŃ", + "ati vnÃŃ", + "ativ nÃŃ", + "ÎŃ Î½ÏĦ", + "ÎŃν ÏĦ", + "ãĥī ãĥ©", + "Ġted av", + "ê ¼", + "à¸Ľà¸£à¸°à¸ģ าศ", + "Ġt uto", + "Ġtu to", + "Ġtut o", + "Ġch iếu", + "Ġchi ếu", + "Ġchiế u", + "Ġv yz", + "Ġvy z", + "ÑĢ оÑĪ", + "ÑĢо ÑĪ", + "åıĸ å¾Ĺ", + "Ġм иÑģÑĤ", + "Ġми ÑģÑĤ", + "ĠмиÑģ ÑĤ", + "ĠÑģлÑĥÑĩа ÑıÑħ", + "Ġغ Ø°", + "ĠÑĥ клад", + "ĠÑĥк лад", + "ĠÑĥÑģÑĤанов лен", + "Ġtes lim", + "Ġ ãĢį", + "ĠãĢ į", + "Ġ è£", + "Ġè £", + "æ¯ «", + "éĬĢ è¡Į", + "e cts", + "ect s", + "ec ts", + "k emiz", + "kem iz", + "ν ηÏĤ", + "νη ÏĤ", + "è¾ º", + "Ġп ÑĢем", + "ĠпÑĢ ем", + "ĠпÑĢе м", + "Ġson ucu", + "Ġsonuc u", + "Ġsonu cu", + "P okud", + "Po kud", + "Pok ud", + "ĠÐŀÑģ об", + "è¾ Ľ", + "è¼ ¸", + "ë³´ ê³ł", + "à¸ļ à¸Ħ", + "ãĢĤ ãĢį", + "ा ।ĊĊ", + "ा। ĊĊ", + "ा।Ċ Ċ", + "ĠÑģамоÑģÑĤ оÑıÑĤелÑĮ", + "ÙĦ ÛĮت", + "ÙĦÛĮ ت", + "λ εκ", + "λε κ", + "ĠÑĢай она", + "ĠÑĢайон а", + "ÑĮ и", + "à¹Ī าà¸Ĺ", + "à¹Īา à¸Ĺ", + "Ġ à¸Ľà¸£à¸°à¹Ģà¸Ĺศ", + "Ġà¸Ľà¸£à¸° à¹Ģà¸Ĺศ", + "ม à¸Ń", + "ا Ùĩر", + "اÙĩ ر", + "Ġви боÑĢ", + "Ġвиб оÑĢ", + "ÑİÑĩи ÑģÑĮ", + "Ġp ovol", + "Ġpo vol", + "Ġpov ol", + "a base", + "ab ase", + "aba se", + "âĢ³ N", + "Ú© ÙĪ", + "ĠУкÑĢаÑĹ Ð½Ð°", + "ĠУкÑĢа ÑĹна", + "ĠУкÑĢаÑĹн а", + "sta nov", + "stan ov", + "ĠÑĥÑĩ аÑģÑĤи", + "ĠÑĥÑĩа ÑģÑĤи", + "ĠÑĥÑĩаÑģÑĤ и", + "ĠÑĥÑĩаÑģ ÑĤи", + "Ġh lad", + "Ġhl ad", + "ĠÑĢаÑģÑģ каз", + "ãģ¿ ãģŁãģĦ", + "á½ °", + "Ġ åĽŀ", + "ĠåĽ ŀ", + "Ġ Æ°Æ¡ng", + "α Ïģά", + "αÏģ ά", + "Ø® ب", + "æį ķ", + "ÃŃ ÅĻ", + "Ġ سÛĮÙĨ", + "Ġس ÛĮÙĨ", + "ĠسÛĮ ÙĨ", + "Âł in", + "ĠM ÄĽst", + "æķĻ åѦ", + "ĠоÑģоб иÑģÑĤ", + "ĠоÑģоби ÑģÑĤ", + "u ji", + "uj i", + "çĶ» åĥı", + "ĠداÙĨ Ø´ÙĨاÙħÙĩ", + "ĠداÙĨØ´ ÙĨاÙħÙĩ", + "ìĿ´ ìķ¼", + "Ġзап иÑĤ", + "ĠÑģво ими", + "ĠÑģвои ми", + "ĠÑģвоим и", + "Û²Û° Û²", + "ï¼Į å°Ĩ", + "ãĥ¼ ãģ®", + "Ġth ÃŃ", + "ĠÙħت ÙĪسط", + "à¥ĩ Ċ", + "å¤ļ å°ij", + "ï¼Į çĦ¶åIJİ", + "íĹ Ī", + "Ġ à¤Ńà¤Ĺ", + "Ġà¤Ń à¤Ĺ", + "Ġ åı·", + "Ġåı ·", + "Ġt eor", + "Ġte or", + "å Ĥ¨", + "åĤ ¨", + "Ġ ÑĢÑĸÑĩ", + "ĠÑĢ ÑĸÑĩ", + "ĠÑģÑĤаÑĤ ÑĤÑĸ", + "Ġرابط Ùĩ", + "Ġ ï¼ľ", + "Ġï¼ ľ", + "ب اØŃ", + "با ØŃ", + "ิà¸Ļ à¸Ĺาà¸ĩ", + "ิà¸Ļà¸Ĺ าà¸ĩ", + "à¥ĩà¤Ĥ Ċ", + "ائ ÙĤ", + "ĠاÙĦج دÙĬد", + "l iÄį", + "li Äį", + "ا ØŃÙĦ", + "اØŃ ÙĦ", + "mé nÄĽ", + "Ġb ầu", + "ĠÐĴ ал", + "Ġб лагод", + "Ġбла год", + "Ġблаг од", + "еÑĤ елÑĮ", + "еÑĤе лÑĮ", + "å¹³ åĿĩ", + "м ин", + "ми н", + "Ġsü rec", + "Ġsür ec", + "Ġsüre c", + "Ġза вод", + "Ġзав од", + "èį IJ", + "ÑĤ ий", + "ÑĤи й", + "л об", + "ло б", + "Ġ вок", + "Ġв ок", + "Ġво к", + "l adıģı", + "la dıģı", + "lad ıģı", + "ladı ģı", + "ladıģ ı", + "اÙĬ ÙĬ", + "ê²ł ìĬµëĭĪëĭ¤", + "Ġamac ıyla", + "Ġamacı yla", + "ï¼Į åĽłä¸º", + "ï¼ĮåĽł 为", + "ãģ§ ãģĤãģ£ãģŁ", + "ãģ§ãģĤ ãģ£ãģŁ", + "ĠØ´ رÙĪع", + "Ġشر ÙĪع", + "æŁ Ķ", + "' nun", + "'n un", + "о кол", + "ок ол", + "око л", + "Ġc iddi", + "Ġcid di", + "Ġb ụ", + "Ġyap ılacak", + "Ġyapı lacak", + "Ġyapıl acak", + "ĠÑĩÑĥв ÑģÑĤв", + "ìĤ¬ ìĿĺ", + "à¸Ń à¸Ļà¸Ķ", + "à¸Ńà¸Ļ à¸Ķ", + "ΊΤ", + "Ġëĭ¤ ìĸij", + "ëĭ¤ ë©´", + "im izi", + "imi zi", + "imiz i", + "ä¹ Ĥ", + "ãģ² ãģ¨", + "Ġ éĿŀ", + "ĠéĿ ŀ", + "âĢĮپدÛĮ ا", + "ä¹ ĺ", + "ãĥĬ ãĥ«", + "ĠпÑĸдпÑĢиÑĶм ÑģÑĤва", + "ĠпÑĸдпÑĢиÑĶмÑģÑĤв а", + "๠ij", + "è¿ Ŀ", + "ĠÙħ ÙĨÙĩ", + "ĠÙħÙĨ Ùĩ", + "ÑĢ ик", + "ÑĢи к", + "а ÑĢÑĸв", + "аÑĢ Ñĸв", + "аÑĢÑĸ в", + "Ġ кого", + "Ġк ого", + "Ġко го", + "ĠÙĤ ص", + "Ġ æĿ¥", + "ĠæĿ ¥", + "ĠPh òng", + "Ġ ово", + "Ġо во", + "Ġов о", + "ĠпеÑĢ ева", + "ĠпеÑĢе ва", + "ĠпеÑĢев а", + "é£ ²", + "à¤Ĥ à¤Łà¤°", + "à¤Ĥà¤Ł र", + "ÙĬ را", + "ÙĬر ا", + "il diÄŁi", + "ildi ÄŁi", + "e tin", + "et in", + "eti n", + "Ïĩε ία", + "Ïĩεί α", + "Ġzah rani", + "ÙĪ جد", + "ÙĪج د", + "Ġ ç¯", + "Ġç ¯", + "าร ย", + "Ġза ко", + "Ġзак о", + "ĠتÙĤ س", + "ãĤ¹ ãĤ¿ãĥ¼", + "ãĤ¹ãĤ¿ ãĥ¼", + "æĿ °", + "Ġ ãĤ°", + "ĠãĤ °", + "Ġ é»Ħ", + "Ġé» Ħ", + "Ġ Ðļогда", + "ĠÐļ огда", + "ॠ«", + "Ġ 次", + "Ġæ¬ ¡", + "ĠвÑĭ ÑĢаж", + "Ġch Äĥm", + "лÑı ÑĶÑĤÑĮÑģÑı", + "лÑıÑĶ ÑĤÑĮÑģÑı", + "د ÙĩÙħ", + "دÙĩ Ùħ", + "Ġv rch", + "Ġvr ch", + "çº Į", + "п оÑĢ", + "по ÑĢ", + "Ġm aÄŁ", + "Ġma ÄŁ", + "å¾Ĵ æŃ©", + "po dob", + "pod ob", + "ะ à¹ģ", + "éģ¸ æīĭ", + "å¸ ¯", + "Ġse bou", + "Ġseb ou", + "in ize", + "ini ze", + "iniz e", + "ĠÐľ ак", + "ĠÐľÐ° к", + "Ġ æĻ®", + "ĠæĻ ®", + "ĠÏħÏĢ άÏģÏĩ", + "ĠÄIJ Ãł", + "ĠBr no", + "Ġ Å¡ÃŃ", + "ĠÅ¡ ÃŃ", + "اÙĦ ص", + "Ġngh iêm", + "Ġnghi êm", + "Ġon ları", + "Ġonlar ı", + "Ġu žÃŃ", + "Ġuž ÃŃ", + "èĩªåĪĨ ãģ®", + "ĠнаÑħод иÑĤÑģÑı", + "Ġj si", + "Ġjs i", + "Ġस मर", + "Ġसम र", + "ĠÏĨ Ïī", + "Û±Û¹ Û¸", + "Ġà¤ľà¤Ĺ ह", + "éŃ ļ", + "ìĿ¸ ê°Ģ", + "ÄIJ iá»ģu", + "ĠØ£ عÙĦاÙħ", + "Ġأع ÙĦاÙħ", + "à¥ĩà¤Ĥ ।Ċ", + "à¥ĩà¤Ĥ। Ċ", + "å½¢ æĪIJ", + "Ġ ikt", + "Ġi kt", + "Ġik t", + "Ġzd roj", + "ĠAmer ik", + "Ρ Îĵ", + "à¸ĩ ส", + "ĠíĴ Ģ", + "Ñģол ÑİÑĤ", + "ÙĪ ÙĬت", + "ÙĪÙĬ ت", + "Ġgörün tü", + "ан нÑĭÑħ", + "аннÑĭ Ñħ", + "ĠØ£ ÙĤ", + "Ġ миÑĢ", + "Ġм иÑĢ", + "Ġми ÑĢ", + "å« Į", + "Ġm á»iji", + "Ġd erin", + "Ġde rin", + "Ġder in", + "é ĴĪ", + "éĴ Ī", + "Ġма ÑĪи", + "ĠмаÑĪ и", + "ì¸ ¡", + "ĠجÙĨ ÙĪب", + "ĠÑģ ло", + "ĠÑģл о", + "ãĢĤ ä¸Ģ", + "ени ÑıÑħ", + "ениÑı Ñħ", + "ĠÑĩолов Ñĸк", + "Ġy ana", + "Ġya na", + "Ġyan a", + "Ġо кÑĤ", + "Ġок ÑĤ", + "Ġ неÑĢ", + "Ġн еÑĢ", + "Ġне ÑĢ", + "æĪ ¶", + "н ÑĮомÑĥ", + "нÑĮ омÑĥ", + "нÑĮо мÑĥ", + "ĠÑĸ мен", + "ĠÑĸм ен", + "ãĤı ãģŁãģĹ", + "ĠÎĵ ια", + "ĠÎĵι α", + "ãĢģ ç§ģ", + "Ġ kou", + "Ġk ou", + "Ġko u", + "ĠÑĨ еÑĢк", + "ĠÑĨеÑĢ к", + "lay arak", + "ãĢ ĩ", + "ا ÙĦس", + "اÙĦ س", + "Âł T", + "Ġд ÑĢÑĥж", + "ĠдÑĢÑĥ ж", + "ĠдÑĢ Ñĥж", + "Ġд воÑĢ", + "Ġдв оÑĢ", + "Ġдво ÑĢ", + "λ ί", + "ĠëĨ Ģ", + "Ġte plot", + "Ġtep lot", + "Ùģ ات", + "б Ñĸ", + "Ġgüven lik", + "Ġgüvenli k", + "n ÄĽn", + "nÄĽ n", + "è© ©", + "Ġinsan ların", + "Ġinsanlar ın", + "ĠìĦ¤ ì¹ĺ", + "èĵ Ŀ", + "a vatel", + "av atel", + "ava tel", + "j ev", + "je v", + "ĠÚĨ را", + "Ġgerek iyor", + "ãĥĥ ãĤ°", + "ĠÃĩ ok", + "Ġ ÙĪجÙĩ", + "ĠÙĪ جÙĩ", + "ĠÙĪج Ùĩ", + "Ġ Ñĥли", + "ĠÑĥ ли", + "ĠÑĥл и", + " ij", + "åij Ģ", + "ĠоÑĢгани заÑĨии", + "ĠоÑĢганиз аÑĨии", + "ĠоÑĢганиза ÑĨии", + "ĠÑĸÑģ нÑĥ", + "Ġneb ude", + "Ġnebu de", + "Ġë° ¤", + "ä¸Ĭ ãģĮ", + "Ġध न", + "ĠرÙĪ ابط", + "γγ ελ", + "Ġдо ÑģÑıг", + "ĠдоÑģ Ñıг", + "ĠاÙĦÙĤ دÙħ", + "ĠاÙĦÙĤد Ùħ", + "Ġзна Ñħод", + "ĠÄįÃŃs lo", + "ÅŁ k", + "ĠاÙĦد ÙĬÙĨ", + "Ġgün lük", + "ÙĥÙĬ ÙĬÙģ", + "ÎŃ Ïģα", + "ÎŃÏģ α", + "à¸ķ รว", + "à¸ķร ว", + "Ġнали Ñĩи", + "ا ÙħÛĮÙĨ", + "اÙħ ÛĮÙĨ", + "اÙħÛĮ ÙĨ", + "Ġμ ικ", + "Ġdönem de", + "à¹Ī à¸Ĺ", + "æĥ ij", + "à¥ĭà¤Ĥ ,", + "Ñĩ Ñı", + "ãģ¾ ãĤĭ", + "ĠاÙĦ تÙĨ", + "ĠاÙĦت ÙĨ", + "ÑĢ аг", + "ÑĢаР³", + "ÑĢа г", + "ëĵ¤ ê³¼", + "Ń Ķ", + "ĠÙħÙĨ Ùĩا", + "ĠÙħÙĨÙĩ ا", + "ĠTh ế", + "éIJ µ", + "Ġ ï¾Ħ", + "Ġï¾ Ħ", + "ĠاÙĦØ¥ سÙĦاÙħ", + "ãĤ¦ ãĤ¹", + "ÙĬ دÙĬ", + "ÙĬد ÙĬ", + "Ġ å¾Ĺ", + "Ġå¾ Ĺ", + "Ġза ÑĢаз", + "ãĤ¸ ãĥ¥", + "Ġت عد", + "Ġتع د", + "i ÃŃ", + "Ġç ocu", + "oz ici", + "Ġ ë²Ķ", + "Ġë² Ķ", + "ĠØ¢Ùħ دÙĩ", + "ĠØ¢Ùħد Ùĩ", + "ÑĦ ик", + "ÑĦи к", + "Ġпо ÑģÑĤанов", + "ĠпоÑģÑĤ анов", + "Ġkrál ov", + "¨ ¨", + "Ġì¤ij ìļĶ", + "ĠG Wei", + "ĠGW ei", + "Ġvý voj", + "Ġboy ut", + "Ġ nek", + "Ġn ek", + "Ġne k", + "ا ÙĩاÛĮ", + "اÙĩ اÛĮ", + "اÙĩا ÛĮ", + "Ġst ranÄĽ", + "Ġstran ÄĽ", + "Ġstra nÄĽ", + "и ем", + "ие м", + "Ġпо ÑĢаж", + "ĠпоÑĢ аж", + "à¥įर दर", + "à¥įरद र", + "é¡Ķ ãĤĴ", + "ĠY üz", + "Ġо знаÑĩа", + "Ġозна Ñĩа", + "à¹ģล à¸Ļà¸Ķ", + "Ġب ÙĩرÙĩ", + "ĠبÙĩ رÙĩ", + "ен ÑĤÑĥ", + "енÑĤ Ñĥ", + "ĠÐĿ ад", + "ĠÐĿа д", + "ĠÐŁ олÑĮ", + "ĠÐŁÐ¾ лÑĮ", + "ĠÐŁÐ¾Ð» ÑĮ", + "ãĥĹ ãĥª", + "á¿ ¶", + "âĢĮپدÛĮ اÛĮ", + "âĢĮپدÛĮا ÛĮ", + "ĠÙ¾ اÙĪرپÙĪÛĮÙĨت", + "ิà¸ģ า", + "Ġε νÏİ", + "Ġεν Ïİ", + "Ġس اÛĮر", + "éģ º", + "ãĢģ ä»Ĭ", + "ĠL ê", + "äºĭ æĥħ", + "ĠY er", + "ĠYe r", + "èħ °", + "ĠاÙĦر سÙħ", + "ĠاÙĦÙħ ÙĪÙĤع", + "ĠاÙĦÙħÙĪ ÙĤع", + "Ġh Ãłm", + "Ġд ÑĢев", + "ĠдÑĢ ев", + "á tel", + "át el", + "áte l", + "ĠвÑģ Ñij", + "ìĺ ¥", + "ĠM ec", + "ĠMe c", + "ãĤ Ľ", + "Ġص اد", + "ĠÚ¯ ردد", + "Ġگرد د", + "Ġگر دد", + "Ġkr ás", + "èĮĥ åĽ´", + "a larına", + "alar ına", + "aları na", + "aların a", + "èĻ ļ", + "ĠØ¢ ÙĪرد", + "ĠØ¢ÙĪر د", + "ç¼ ĵ", + "ิ à¸ŀ", + "Ġ ãĥĭ", + "Ġãĥ ĭ", + "Ġ æĢ§", + "ĠæĢ §", + "ĠÙħÙĨ Ø°", + "ç· ´", + "Ġ ê¶ģ", + "Ġê ¶ģ", + "в аем", + "ва ем", + "Ġζ Ïī", + "Ġn avr", + "Ġna vr", + "Ġnav r", + "Ïĥ ÏĦαÏĥη", + "ÏĥÏĦα Ïĥη", + "Ġر Ø£", + "Ġd opl", + "Ġdo pl", + "Ġdop l", + "_ __", + "__ _", + "çĶļ èĩ³", + "Äį el", + "Äįe l", + "æĦı åij³", + "ç¥ Ń", + "à ĺ", + "ÑģÑĤв еннÑĭе", + "ÑģÑĤвен нÑĭе", + "è£ ¡", + "Ġ ãĢī", + "ĠãĢ ī", + "ĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢ", + "ĠãĢĢĠ ãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "Ġ вал", + "Ġв ал", + "Ġва л", + "Ġ ẩm", + "Ġd iyor", + "Ġdi yor", + "Ġdiy or", + "à¸Ńà¸ĩ à¸Īาà¸ģ", + "ĠPh ó", + "ĠÐĵ е", + "ĠвеÑĢ еÑģ", + "Ġве ÑĢеÑģ", + "Ġk onz", + "Ġko nz", + "Ġkon z", + "ر ز", + "ĠÑģоб оÑİ", + "Ġεκ εί", + "ìĺģ ìĸ´", + "i ag", + "ia g", + "ĠÑģ енÑĤ", + "Ġn ấu", + "Ġja ké", + "Ġjak é", + "Ġro zh", + "Ġroz h", + "Ġб ог", + "Ġбо г", + "ÙĨ اد", + "ÙĨا د", + "ĠاÙħ ÙĪر", + "à¹Į à¸ģาร", + "à¹Įà¸ģ าร", + "ĠY aÅŁ", + "ĠYa ÅŁ", + "é Ī", + "åķ ª", + "Ġon ay", + "Ġona y", + "ìĹ ĩ", + "o mu", + "om u", + "ÑĨ Ñĸйного", + "ÑĨÑĸй ного", + "ÑĨÑĸйно го", + "ĠÑģ ал", + "ĠΣ Ïħν", + "ĠΣÏħ ν", + "Ġsav un", + "å¦ Ļ", + "à¸Īะ ม", + "ãĤ¹ ãĤ¯", + "Ġd osy", + "Ġdo sy", + "Ġdos y", + "ľ ĺ", + "ë¨ ¹", + "Ġmin ul", + "Ġmi nul", + "ãĢĭ Ċ", + "åģ ı", + "ĠÐļ аÑĤ", + "ĠÐļа ÑĤ", + "Ġed ilmesi", + "Ġedilm esi", + "Ġedil mesi", + "ÑĨÑĸ ÑĶн", + "ìĦ± ìĿ´", + "åĸ Ķ", + "Ġв ÑĸÑĢ", + "ĠвÑĸ ÑĢ", + "è¯ ij", + "ाà¤ĩ ड", + "ĠÙĪÙĤ تÛĮ", + "ĠÙĪÙĤت ÛĮ", + "ÄIJ á»ĥ", + "Ġ vyÅ¡Å¡ÃŃ", + "Ġvy Å¡Å¡ÃŃ", + "Äį ila", + "Äįi la", + "Äįil a", + "а дÑĥ", + "ад Ñĥ", + "çī¹ åĪ¥", + "ĠìĿ¸ 기", + "u jÃŃcÃŃch", + "ujÃŃ cÃŃch", + "ujÃŃcÃŃ ch", + "ĠPo dle", + "ĠPod le", + "Ġy avaÅŁ", + "Ļ æ±Ł", + "Ġka yb", + "Ġkay b", + "åĬ ª", + "ç´ ¹", + "Ġоб ÑĢабоÑĤ", + "ĠобÑĢа боÑĤ", + "Ġм аÑı", + "Ġма Ñı", + "Ġ åıĬ", + "Ġåı Ĭ", + "æİ¥ åıĹ", + "ÙĨ تÛĮ", + "ÙĨت ÛĮ", + "Ġ ÏĩÏİ", + "ĠÏĩ Ïİ", + "ÑĤ ÑĢо", + "ÑĤÑĢ о", + "Ġu yar", + "Ġuy ar", + "ĠعÙħÙĦ کرد", + "Ġо ÑĨен", + "ĠмеÑģÑĤ а", + "à¸ķ ลาà¸Ķ", + "à¸ķล าà¸Ķ", + "Ùħ ÙĤ", + "ild ren", + "Ġзави ÑģиÑĤ", + "Âł ĠÂł", + "ÂłĠ Âł", + "Ġm ožná", + "Ġmož ná", + "æĺŃ åĴĮ", + "ır ken", + "к ин", + "ки н", + "åĿ Ĥ", + "ÏĦ Ïĥι", + "ÏĦÏĥ ι", + "ĠÑĩ Ñĥд", + "Ðļ он", + "is lav", + "isl av", + "ĠÐļ ÑĢаÑģ", + "ĠÐļÑĢа Ñģ", + "N ej", + "Ne j", + "Âł b", + "r of", + "ro f", + "Ġ ileri", + "Ġi leri", + "Ġil eri", + "Ġile ri", + "Ġiler i", + "ĠÐŀ ÑĢ", + "ĠCh á»ī", + "Ġn üfus", + "ĠÑĸ нÑĤ", + "ĠÑĸн ÑĤ", + "! âĢľ", + "Ġन र", + "主 ä¹ī", + "ĠتÙĨ ظ", + "ův odu", + "ůvod u", + "ĠгоÑĢ ода", + "ĠгоÑĢод а", + "Ġk ural", + "Ġkur al", + "Ġku ral", + "Ġj edin", + "Ġje din", + "Ġjed in", + "ÑĢ аÑĤег", + "ÑĢаÑĤ ег", + "åĢ º", + "Ġzpůsob em", + "ìĿ¸ ìĿĺ", + "Ġ ÙĨب", + "ĠÙĨ ب", + "ĠN ga", + "ĠNg a", + "ĠÐĿ ай", + "ĠÐĿа й", + "ĠاÙģ زار", + "ĠاÙģز ار", + "нÑĥ вÑģÑı", + "нÑĥв ÑģÑı", + "Ġдв оÑħ", + "Ġдво Ñħ", + "Ġro zp", + "Ġroz p", + "ε ίοÏħ", + "εί οÏħ", + "είο Ïħ", + "Ġο ικο", + "Ġοι κο", + "ĠG eç", + "ĠGe ç", + " Ĺ", + "Ġch iếm", + "Ġchiế m", + "ĠÑĢаÑģпÑĢоÑģÑĤ ÑĢан", + "Ġh Æ°Æ¡ng", + "èĩª åĭķ", + "ĠÙħÙĪ ÙģÙĤ", + "æĮ ¥", + "ï¼ģ âĢĿĊĊ", + "ï¼ģâĢĿ ĊĊ", + "Ïģο ÏĨοÏģ", + "èı Į", + "ãĥ´ ãĤ¡", + "欧 ç¾İ", + "ĠÑĤеп ло", + "ãģĤ ãģĤ", + "ãĤ¦ ãĥ³", + "ĠÅŁ eyi", + "ĠÅŁey i", + "Ġs üt", + "Ġsü t", + "ãģ¹ ãģ¦", + "ãĥ³ ãĥij", + "ãĥ³ãĥ ij", + "μÎŃν Ïīν", + "Ġgenel likle", + "Ġدر ÙħاÙĨ", + "Ù ª", + "Ġak ıl", + "ĠÐľ Ñĭ", + "Ġet miÅŁ", + "Ġetm iÅŁ", + "Å¡ la", + "Ġвозмож ноÑģÑĤÑĮ", + "Ġвозможно ÑģÑĤÑĮ", + "Ġgün cel", + "Ġná ro", + "å½¢ å¼ı", + "Ġα ÏĢοÏĦε", + "ĠαÏĢο ÏĦε", + "ĠмÑĸÑģ ÑĨÑı", + "Ġ رض", + "Ġر ض", + "ä¸į çŁ¥éģĵ", + "ä¸įçŁ¥ éģĵ", + "r ava", + "ra va", + "rav a", + "ĠÎļ ά", + "ิà¸Ļ à¸Ĺร", + "ิà¸Ļà¸Ĺ ร", + "Ġли ÑģÑĤÑĮ", + "ĠлиÑģÑĤ ÑĮ", + "èĨ ľ", + "ãģ«ãģª ãĤĬ", + "Ġ æĿ¾", + "ĠæĿ ¾", + "å® ı", + "Ġм иÑģ", + "Ġми Ñģ", + "át nÃŃ", + "Ġyıl lık", + "ĠMerk ezi", + "ĠMerkez i", + "Ġiç eri", + "Ġiçer i", + "ÅĻ ÃŃž", + "ÅĻÃŃ Å¾", + "Ġp ÅĻe", + "ĠpÅĻ e", + "Ïĩ Ïģι", + "Ġ åįĥ", + "Ġåį ĥ", + "Ġs rp", + "Ġsr p", + "à¹Ĥ à¸Ĺร", + "à¹Ĥà¸Ĺ ร", + "ĠK rál", + "ĠKr ál", + ". Σ", + "á val", + "áv al", + "l éd", + "lé d", + "Ġ λα", + "Ġλ α", + "ี ยวà¸ģ", + "ีย วà¸ģ", + "ียว à¸ģ", + "ãģı ãģª", + "ĠvÅ¡ ichni", + "ĠпÑĢед оÑģÑĤав", + "ì ¿", + "Ġ 구ê¸ĢìĥģìľĦ", + "Ġ구 ê¸ĢìĥģìľĦ", + "Ġ구ê¸Ģ ìĥģìľĦ", + "Ġà¤īप लब", + "в оз", + "во з", + "ĠëħĦ ëıĦë³Ħ", + "、 _", + "à¸ļ รร", + "à¸ļร ร", + "ĠÑģв ÑĸÑĤÑĥ", + "ĠÑģвÑĸÑĤ Ñĥ", + "ĠÑĢÑĥб лей", + "len me", + "lÃŃ Äį", + "ÏĦ ει", + "ÏĦε ι", + "Ġ åı¤", + "Ġåı ¤", + "ĠObr ázky", + "Ġìĺģ íĸ¥", + "ĠгÑĢаж дан", + "í Ĥ¹", + "íĤ ¹", + "Ġsahip tir", + "Ġп оÑĩаÑĤкÑĥ", + "ĠпоÑĩ аÑĤкÑĥ", + "ĠØ£ÙĬ ض", + "ĠÑĤоÑĢ гов", + "Ġgel ecek", + "Ġgele cek", + "Ġ 문íĻĶ", + "Ġ문 íĻĶ", + "ik leri", + "ikler i", + "ĠнеобÑħÑĸд но", + "Ġ äºij", + "o vol", + "ov ol", + "ovo l", + "Ġद ल", + "ĠìķĬ ê³ł", + "Ġм г", + "Ġz jist", + "an lı", + "ั à¸ĩà¸Ļ", + "ัà¸ĩ à¸Ļ", + "ÑĢа Ñħов", + "ÑĢаÑħ ов", + "ι νη", + "ιν η", + "Ġп лоÑĤ", + "Ġпл оÑĤ", + "Ġпло ÑĤ", + "Ġn itel", + "Ġni tel", + "Ġnit el", + "ìĬ¤ íģ¬", + "ĠSon ra", + "ĠÑģ боÑĢ", + "ĠÑģб оÑĢ", + "Ġ ÏĥοÏħ", + "ĠÏĥ οÏħ", + "Ġol mam", + "Ġolm am", + "Ġolma m", + "Ġan aliz", + "Ġanal iz", + "à¹Į ว", + "Ġm ỹ", + "Ġmá» ¹", + "ce ae", + "cea e", + "Ġ ден", + "Ġд ен", + "Ġде н", + "веÑĢ жд", + "веÑĢж д", + "Ạ¢", + "ãģĵ ãģ¨ãĤĤ", + "ãģĵãģ¨ ãĤĤ", + "ìĤ¬ íķŃ", + "è¨Ģ ãģ£ãģŁ", + "Ġ ì¹´ì§Ģëħ¸", + "Ġì¹´ ì§Ģëħ¸", + "ÑĢ иÑĤи", + "ÑĢи ÑĤи", + "ÑĢиÑĤ и", + "Ġch ce", + "Ġçev ir", + "ÛĮ ÛĮÙĨ", + "ä¼ļ è®®", + "ัม à¸ŀ", + "Ġ åĦ", + "Ġå Ħ", + "ĠÙ¾ در", + "å¼ı ä¼ļ社", + "Ġ ÑĨен", + "ĠÑĨ ен", + "ĠÑĨе н", + "ิ à¸ĸ", + "Ġji nak", + "Ġjin ak", + "Ġб лÑİ", + "Ġбл Ñİ", + "и ÑĨин", + "иÑĨ ин", + "ÙĴ Ùĩ", + "Ú© ÙĪر", + "Ú©ÙĪ ر", + "Ġ ìķħ", + "Ġìķ ħ", + "e ksiyon", + "ek siyon", + "eks iyon", + "ĠÑģ веÑĢ", + "ĠÑģв еÑĢ", + "ĠобÑĢаз ованиÑı", + "Ġ ãĥĻ", + "Ġãĥ Ļ", + "æľī 人", + "Ġbilg ileri", + "Ġbilgi leri", + "Ġbilgiler i", + "Ġh ầu", + "еÑĢ Ñĸг", + "еÑĢÑĸ г", + "Ġva Å¡e", + "Ġn edir", + "Ġne dir", + "Ġned ir", + "ä¸į å¾Ĺ", + "ĠbaÅŁar ılı", + "ĠbaÅŁarı lı", + "Ġkay bet", + "Ġkayb et", + "å© ·", + "ĠÐĿ ав", + "ĠÐĿа в", + "Ġê´Ģ íķľ", + "Ñģ ÑĤÑİ", + "ÑģÑĤ Ñİ", + "å®ŀ éĻħ", + "k lady", + "kl ady", + "klad y", + "kla dy", + "д аÑĤÑĮ", + "да ÑĤÑĮ", + "даÑĤ ÑĮ", + "r aç", + "ra ç", + "Ġkuv vet", + "à¸ģาร à¸Ĺ", + "å ļ", + "Ġ ÑĢеп", + "ĠÑĢ еп", + "ĠÑĢе п", + "Ġ à¸Ŀ", + "ĠภĿ", + "ĠDi ÄŁer", + "íĶĦ íĬ¸", + "Ġnej vÄĽtÅ¡ÃŃ", + "Ġìłģ ìļ©", + "Ġonemoc nÄĽnÃŃ", + "а ка", + "ак а", + "Ðł аз", + "ĠÙģ Ø¥ÙĨ", + "ãĤµ ãĤ¤ãĤº", + "ãĤµãĤ¤ ãĤº", + "Ġv lád", + "Ġvl ád", + "Ġvlá d", + "Ġr ady", + "Ġrad y", + "Ġra dy", + "ãĢģ ãģĵãĤĮ", + "ÑģÑĤв ие", + "lı ÄŁa", + "lıģ a", + "å ŃĶ", + "åŃ Ķ", + "Ġ áo", + "Ġá o", + "à¸Ń าà¸ģาศ", + "Ġ à¤ıम", + "Ġà¤ı म", + "δ αÏĤ", + "δα ÏĤ", + "Ġа пÑĢ", + "Ġап ÑĢ", + "æİ Ľ", + "Ġ ç«ĭ", + "Ġç« ĭ", + "âĸı âĸı", + "ĠС м", + "Ġne má", + "Ġnem á", + "Ġ è¢", + "Ġè ¢", + "νο μα", + "νομ α", + "ĠÙģ رÙĪد", + "ĠÙģر ÙĪد", + "ĠÙģرÙĪ د", + "Ġül ke", + "Ġülk e", + "Ġ æĺŁ", + "Ġæĺ Ł", + "ั à¸Ļà¸ģ", + "ัà¸Ļ à¸ģ", + "ãģķãĤĵ ãģ®", + "eÅŁ il", + "ÄŁ iz", + "ÄŁi z", + "ĠÐij оÑĢ", + "Ġt ầm", + "ει ÏĦοÏħÏģγ", + "Ġ γÏģα", + "Ġγ Ïģα", + "à¥įष à¤ķ", + "Ġv ẻ", + "Ġkend isine", + "Ġkendisi ne", + "ĠìķĮ ê³ł", + "Ġêµ Ńìłľ", + "ĠêµŃ ìłľ", + "ĠnÄĽk do", + "Ġ ÛĮÙĩ", + "ĠÛĮ Ùĩ", + "Ġکار بر", + "ãĥĻ ãĥ«", + "ï» ´", + "Ġt uyên", + "Ġtuy ên", + "Ġç at", + "Ġça t", + "âĢIJ âĢIJ", + " ı", + "Ġ ìĤ¬ìĹħ", + "ĠìĤ¬ ìĹħ", + "é ĨĴ", + "éĨ Ĵ", + "æıIJ é«ĺ", + "æ· ¡", + "Ġ ÄŁ", + "ĠÄ Ł", + "èĸ ¦", + "ãĢĭ ï¼Ī", + "æ¡ ĥ", + "ìĹ Ħ", + "Ġ æŀĹ", + "Ġæŀ Ĺ", + "Ä Ĥ", + "ĠÄĮ ech", + "α ιο", + "αι ο", + "ĠØ· رÙĬÙĤ", + "Ġطر ÙĬÙĤ", + "Ġзав еÑĢÑĪ", + "ĠзавеÑĢ ÑĪ", + "تÙĪ بر", + "ĠØŃ Ø¬", + "ĠÎŃÏĩ οÏħν", + "¿ ÃĤ", + "Ġd ÄĽtÃŃ", + "ĠdÄĽ tÃŃ", + "ĠdÄĽt ÃŃ", + "Ġiç ine", + "Ġiçin e", + "Ġiçi ne", + "ĠCh úa", + "ан нÑĭй", + "аннÑĭ й", + "ĠÙĪÛĮ Úĺ", + "Ġna stav", + "Ġnast av", + "ıs ına", + "ısı na", + "ĠÑĹ Ð¼", + "п он", + "по н", + "е нÑı", + "ен Ñı", + "ĠÙĪ ظ", + "Ú¯ ÙĦ", + "หล วà¸ĩ", + "Ġza stav", + "Ġzast av", + "а кон", + "ак он", + "³³³³³³³³³³³³³³³³ ³³³³³³³³³³³³³³³³", + "ĠK ır", + "ĠKı r", + "çµ ¶", + "ĠоÑĢганÑĸ заÑĨÑĸÑĹ", + "ĠоÑĢганÑĸз аÑĨÑĸÑĹ", + "ĠоÑĢганÑĸза ÑĨÑĸÑĹ", + "ãģŁ ãĤĬ", + "Ø° ÙĬ", + "Ġर à¤ķ", + "amp iyon", + "Ġ æ¸ħ", + "Ġæ¸ ħ", + "çľ¼ çĿĽ", + "Ġìķ ĬìĿĢ", + "ĠìķĬ ìĿĢ", + "é¹ ¿", + "Ġ å¿ĥ", + "Ġå¿ ĥ", + "ĠпÑĢек ÑĢаÑģ", + "ĠÑģ егоднÑı", + "Ġ सल", + "Ġस ल", + "ĠÏħ ÏĢÏĮ", + "ĠÏħÏĢ ÏĮ", + "ĠÐķ го", + "ĠÐĽ и", + "ãĤ¨ ãĥ«", + "Ġл ÑİÑĤ", + "ĠлÑİ ÑĤ", + "é¥ °", + "Ġvz dál", + "¯ ÃĤ", + "Ġна Ñıв", + "Ġتش Ú©ÛĮÙĦ", + "Ġس ÙĪÛĮ", + "ĠسÙĪ ÛĮ", + "Ġt ái", + "Ġtá i", + "Ġk apı", + "Ġkap ı", + "ĠsvÄĽt ÄĽ", + "ĠsvÄĽ tÄĽ", + "δ ÏĮν", + "δÏĮ ν", + "æ¼ ¢", + "ì į¨", + "ĠbaÅŁv ur", + "ÑĢ ина", + "ÑĢи на", + "ÑĢин а", + "Ġk elim", + "Ġke lim", + "Ġkel im", + "аÑĤ ок", + "аÑĤо к", + "Ġκά θε", + "ĠYük sek", + "à¹ĩà¸Ļ à¸ľ", + "éł Ĥ", + "åIJĮ æĻĤ", + "ÅŁ tır", + "ÅŁt ır", + "ว à¸ĩศ", + "วà¸ĩ ศ", + "o ty", + "ot y", + "Ġ ارد", + "Ġا رد", + "Ġار د", + "ĠìŀIJìĭł ìĿĺ", + "ĠÑıн ва", + "üyor du", + "æĿ ¨", + "ĠâĢĵ Ċ", + "ï¼Į å®ĥ", + "е йн", + "ей н", + "ĠпеÑĢ еÑĤ", + "ĠпеÑĢе ÑĤ", + "ĠdeÄŁiÅŁik lik", + "ĠогÑĢа ниÑĩ", + "ìĦľ ìļ¸", + "Ġgel iyor", + "ĠÙ¾ Ø°ÛĮر", + "åĵ ²", + "ey in", + "eyi n", + "Ġëı Ī", + "Ġun iverz", + "Ġh ned", + "Ġhn ed", + "Ġt áºŃn", + "vo ÅĻÃŃ", + "voÅĻ ÃŃ", + "Ġn iên", + "Ġni ên", + "dÄĽ podob", + "ìĤ¬ íļĮ", + "ãģĮ ãģĤãĤĬ", + "ĠÑģ ÑĸÑĩ", + "' '\"", + "'' \"", + "Ġtop lantı", + "ĠÑģ ÑĩеÑĤ", + "ĠÑģÑĩ еÑĤ", + "åĩĨ å¤ĩ", + "ан ÑĸÑı", + "анÑĸ Ñı", + "Ġ zel", + "Ġz el", + "Ġze l", + "v ala", + "val a", + "va la", + "Ġа пп", + "Ġап п", + "ĠاÙĦÙħ ÙĦÙĥ", + "ĠاÙĦÙħÙĦ Ùĥ", + "Ġho ÅŁ", + "ĠÐĵ ен", + "ĠÐĵе н", + "ÑĤ аб", + "ÑĤа б", + "ĠÄĮesk o", + "ĠÄĮes ko", + "Ġмай же", + "ĠmÄĽ sto", + "ĠmÄĽst o", + "yo nel", + "yon el", + "ê±° 리", + "Ġìĺ¨ ëĿ¼ìĿ¸", + "ç´ ¯", + "Ġde rec", + "Ġder ec", + "Ġdere c", + "Ġок ÑĢÑĥж", + "Ġy abancı", + "Ġ íĦ°", + "ĠíĦ °", + "Ġ èµĦ", + "Ġèµ Ħ", + "ÎĻÎļ ÎĹ", + "Ġп Ñĭ", + "Ġv ÄĽn", + "ĠvÄĽ n", + "и нки", + "ин ки", + "ụ p", + "æľº 械", + "ĠìķĮ 볤", + "ëħ ķ", + "Ġ λÏĮγ", + "Ġλ ÏĮγ", + "e yn", + "ey n", + "Ġ ëIJĺìĹĪëĭ¤", + "ĠëIJĺ ìĹĪëĭ¤", + "ĠëIJĺìĹĪ ëĭ¤", + "æ± ¡", + "Ġve dle", + "Ġved le", + "ĠÙĥ تب", + "ë§ ¨", + "ĠÙħÙĤ اÙĪ", + "å¹´ ãģ«", + "ाà¤ĩ à¤ķ", + "ĠÑģÑĤ оÑģ", + "ĠÑģÑĤо Ñģ", + "ĠÏĥ ÏĦοÏħÏĤ", + "м еÑĤÑĮ", + "ме ÑĤÑĮ", + "меÑĤ ÑĮ", + "Ġes as", + "Ġesa s", + "ëIJĺ ê³ł", + "ĠkvÄĽt na", + "Ġ éľ", + "Ġé ľ", + "d ük", + "dü k", + "åŁ ·", + "è ªĮ", + "èª Į", + "Ġm luv", + "Ġml uv", + "ĠпÑĢи нÑı", + "ĠпÑĢин Ñı", + "Ġpo té", + "Ġpot é", + "ĠÚ© ÙĨÙħ", + "ĠÚ©ÙĨ Ùħ", + "ĠпÑĢед лож", + "ĠÐľÐ¾Ñģк ва", + "ï¼Į å¦Ĥ", + "Ġsv ém", + "Ġsvé m", + "Ġا ÙħÙĨ", + "ĠاÙħ ÙĨ", + "ส าย", + "ĠÑĥм енÑĮ", + "Ġ ãģĵãģ®", + "åī Ĥ", + "ĠÑģ еÑĢÑĮ", + "ĠÑģеÑĢ ÑĮ", + "Ġm á»ĩ", + "Ġmá» ĩ", + "Ġ ä¹Ŀ", + "Ġä¹ Ŀ", + "Ġза кÑĸн", + "Ġзак Ñĸн", + "Ġв елиÑĩ", + "Ġвели Ñĩ", + "Ġвел иÑĩ", + "Ġве лиÑĩ", + "Ġкон ÑĤÑĢа", + "ĠконÑĤ ÑĢа", + "ĠконÑĤÑĢ а", + "ĠS osyal", + "Ġy ukarı", + "Ġد ÙĪب", + "ĠدÙĪ ب", + "ä¾ §", + "Ġза мен", + "Ġзам ен", + "ï» ®", + "Ġso bÄĽ", + "Ġsob ÄĽ", + "ĠТак же", + "Ð İ", + "ε δ", + "Ùħ ارÛĮ", + "Ùħا رÛĮ", + "Ùħار ÛĮ", + "ξ ι", + "ì¹ Ń", + "Ġп лаÑģÑĤи", + "Ġпл аÑģÑĤи", + "Ġпла ÑģÑĤи", + "Ïĥ οÏħν", + "Ïĥο Ïħν", + "ÏĥοÏħ ν", + "èľĺèĽĽ è¯į", + "ÙĪ ÛĮزÛĮ", + "ÙĪÛĮ زÛĮ", + "Ġnap ÅĻ", + "ĠÑĤип а", + "ĠÑĤи па", + "à¥Ĥ à¤Ľ", + "ĠÅŁ ah", + "л ÑıÑĤи", + "лÑı ÑĤи", + "ب ÛĮر", + "بÛĮ ر", + "ระ ยะ", + "ĠболÑĮ ÑĪин", + "ĠболÑĮÑĪ ин", + "ÏĦη ÏĦα", + "Ġíıī ê°Ģ", + "Ġpro jev", + "Ġproj ev", + "Ġproje v", + "ò i", + "Ġк нÑı", + "ÏĨ εÏģ", + "е ÑĢÑĥ", + "еÑĢ Ñĥ", + "Ñį н", + "ĠعÙħ ÙĦÛĮ", + "ĠعÙħÙĦ ÛĮ", + "à¤ł न", + "ãĥ³ ãĤ¯", + "ĠìķĦ ëŀĺ", + "Î Ī", + "Ġب است", + "Ġبا ست", + "Ġ تÙĥ", + "Ġت Ùĥ", + "a ÄįnÃŃ", + "aÄį nÃŃ", + "ĠлÑĸ кÑĥваннÑı", + "ĠлÑĸк ÑĥваннÑı", + "à¸Ħ à¹Ĥà¸Ļ", + "Ġ èĥ½", + "Ġè ĥ½", + "Ġèĥ ½", + "θ λη", + "len miÅŁ", + "Ġl á»Ļ", + "Ġlá» Ļ", + "Ġsi lah", + "Ġsil ah", + "ĠA ustr", + "ĠAust r", + "ĠAus tr", + "ĠAu str", + "ØŃ ÙĤ", + ".*** .***", + "ì ©", + "Ġg Ãł", + "Ġباز بÛĮÙĨÛĮ", + "ĠÄij Ãłn", + "ÃŃ ky", + "ÃŃk y", + "ĠÎķ ν", + "ض Ùħ", + "å§ ĵ", + "Ġ ÙĨÙĪÛĮس", + "ĠÙĨ ÙĪÛĮس", + "ĠÙĨÙĪ ÛĮس", + "Ġskup iny", + "Ġس ÛĮد", + "ĠسÛĮ د", + "Ġal dıģı", + "Ġald ıģı", + "Ġaldı ģı", + "m eli", + "me li", + "mel i", + "в иж", + "ви ж", + "ì¹ĺ ëĬĶ", + "ов аÑħ", + "ова Ñħ", + "Ġ æ©", + "Ġæ ©", + "Ø´ÙĨ اسÛĮ", + "Ø´ÙĨاس ÛĮ", + "Ġn imi", + "Ġni mi", + "Ġnim i", + "ĠÐĵ ÑĢи", + "íĹ Į", + "Ġк в", + "éŁ ĵ", + "Ġ íĽĦ기", + "ĠíĽĦ 기", + "Ġ stÅĻÃŃ", + "Ġst ÅĻÃŃ", + "ĠstÅĻ ÃŃ", + "ĠкÑĸлÑĮ кÑĸÑģÑĤÑĮ", + "ĠBakan lıģı", + "ĠменÑĮ ÑĪе", + "ا ÙĪÛĮ", + "اÙĪ ÛĮ", + "Ġار ÙĪÙ¾", + "Ġ èī²", + "Ġèī ²", + "ĠÚ©ÙĪÚĨ Ú©", + "ĠA ynı", + "Ġ äºĨ", + "Ġس Ùģر", + "ĠسÙģ ر", + "ĠÑĤе аÑĤ", + "Ġ vÄĽd", + "ĠvÄĽ d", + "а ÑĢов", + "аÑĢ ов", + "Ġоб меж", + "ĠìķĬ ìķĺ", + "追 åĬł", + "éł Ī", + "dÄĽ lenÃŃ", + "dÄĽl enÃŃ", + "dÄĽlen ÃŃ", + "Ġk ims", + "Ġki ms", + "Ġkim s", + "Ġ èı²", + "Ġèı ²", + "Ġг ÑĢÑĥн", + "ĠгÑĢÑĥ н", + "ĠгÑĢ Ñĥн", + "ĠØ¢ ÙĦÙħاÙĨ", + "ĠØ¢ÙĦ ÙħاÙĨ", + "Ġав г", + "ĠÑī оÑģÑĮ", + "ĠÑīо ÑģÑĮ", + "Ġ å¾·", + "Ġå¾ ·", + "ĠÐĿа ÑĨÑĸоналÑĮ", + "æĪIJ ç«ĭ", + "ูà¸Ļ ย", + "ãĥ¼ ãĥ«ãĥī", + "ãĥ¼ãĥ« ãĥī", + "éĽ ²", + "ĠT á»ķ", + "cı lık", + "ĠAlma nya", + "ĠAlman ya", + "Ġov Å¡em", + " ĭ", + "ĠÏĩÏģη ÏĥιμοÏĢοι", + "Ġörg üt", + "िस स", + "èĹ Ŀ", + "ĠGi ải", + "Ġsv ob", + "Ġsvo b", + "Ġrůzn ých", + "Ġrůz ných", + "Ġsmlou vy", + "ÑĢ еÑģÑģ", + "ÑĢеÑģ Ñģ", + "ี à¹Ģà¸Ķ", + "ĠاÙħ رÙĪز", + "ĠاÙħر ÙĪز", + "ãĤ ħ", + "åĿ ¦", + "à¹ī à¸Ħ", + "Ġ каж", + "Ġк аж", + "Ġка ж", + "å¼ Ĺ", + "Ñĩ ноÑĹ", + "Ñĩно ÑĹ", + "åľ Ī", + "ĠØ¢ ÙĩÙĨÚ¯", + "ëª °", + "Ġ æº", + "Ġæ º", + "Ġ èĦ", + "Ġè Ħ", + "ä¸Ģ æŃ¥", + "оÑĩ ка", + "Ġpro stor", + "Ġpros tor", + "Ġprost or", + "Ġng ắn", + "Ġ ç·", + "Ġç ·", + "н аÑĢ", + "на ÑĢ", + "Ġà¤ľ व", + "ĠнаÑĩ алÑĮ", + "Ġне дел", + "Ġнед ел", + "ĠÑģиÑģÑĤем Ñĥ", + "ج ÙĬ", + "اد ات", + "ادا ت", + "Ġ æ¢", + "Ġæ ¢", + "ĠجاÙħ عة", + "ĠجاÙħع Ø©", + "Ġ ä»İ", + "Ġà¤ħ फ", + "èĸ Ħ", + "Ġب اÙĤ", + "Ġبا ÙĤ", + "ب ÙĬع", + "بÙĬ ع", + "ãģķ ãĤĮãģ¦", + "ãģķãĤĮ ãģ¦", + "ĠÃĩ alÄ±ÅŁ", + "Ø®ÙĪ است", + "ãĥĥ ãĤ·ãĥ¥", + "ĠØŃ Ø³ÛĮÙĨ", + "ĠØŃس ÛĮÙĨ", + "Ġоб наÑĢÑĥж", + "в Ñĸдом", + "вÑĸ дом", + "вÑĸд ом", + "Ġh ôm", + "л анд", + "ла нд", + "лан д", + "Ġव à¤ľà¤¹", + "س ÙĬÙĨ", + "سÙĬ ÙĨ", + "æł ı", + "Ġna vÃŃc", + "Ġnav ÃŃc", + "ãĤµ ãĤ¤ãĥĪ", + "ãĤµãĤ¤ ãĥĪ", + "ĠÑı комÑĥ", + "ĠÑıк омÑĥ", + "Ġí Ľ", + "ĠY ani", + "ĠYan i", + "ĠYa ni", + "ãĤĵ ãģ§ãģĻ", + "ãĤĵãģ§ ãģĻ", + "Ġг ÑĢÑĥп", + "ĠгÑĢÑĥ п", + "ĠгÑĢ Ñĥп", + "Äį ný", + "ÑĨ ик", + "ÑĨи к", + "ÙĪ ÙĬر", + "ÙĪÙĬ ر", + "Ġ Xã", + "ĠX ã", + "Ġf yz", + "Ġfy z", + "Ġ ï½ī", + "Ġï½ ī", + "âĢĮ ترÛĮÙĨ", + "âĢĮتر ÛĮÙĨ", + "à¤Ł à¤ķ", + "ÑĦоÑĢм и", + "ÑĦоÑĢ ми", + "ĠO yun", + "ĠOy un", + "åł´ æīĢ", + "ØŃ Ø«", + "ĠìķĮ ìķĦ", + "ÑĢав илÑĮ", + "ÑĢави лÑĮ", + "ï¼Į âĢĿ", + "b oru", + "bo ru", + "bor u", + "ĠK ullan", + "ĠKul lan", + "ĠKay nak", + "Ġê° ĸ", + "ç´ Ķ", + "ï¼Į æ¯ı", + "ÎĹ Î¡", + "Ġp ůl", + "Ġpů l", + "Ġг оÑģÑĤ", + "ر ÙĪÙħ", + "رÙĪ Ùħ", + "ï¼Į åį³", + "Û² Û³", + "ĠÙĨØ® ست", + "ĠÚ© سب", + "Ġ à¹Ģà¸ļ", + "Ġà¹Ģ à¸ļ", + "Ġà¹Ģภļ", + "Ġy azar", + "Ġya zar", + "Ġyaz ar", + "j ekt", + "je kt", + "à¹Ĥล ย", + "Ġдоб ÑĢе", + "Ġپزش Ú©ÛĮ", + "ĠتÙĩ ÛĮÙĩ", + "ç¾İ åľĭ", + "но ÑģÑıÑĤ", + "ноÑģ ÑıÑĤ", + "ноÑģÑı ÑĤ", + "ëłĪ ìĬ¤", + "åĹ ¯", + "Ġr Ãłng", + "ĠÎķ ξ", + "а ÑĤаÑĢ", + "аÑĤ аÑĢ", + "аÑĤа ÑĢ", + "k ova", + "ko va", + "kov a", + "ĠÅŁey ler", + "Ø® اص", + "ĠìķĪ ìłĦ", + "Ñī ей", + "Ñīе й", + "Ġë° Ŀ", + "âĢĮتÙĪاÙĨ د", + "ãģĪ ãģ°", + "Ġv ữ", + "Ġvá» ¯", + "ĠÑģ ама", + "ĠÑģам а", + "ĠобоÑĢ Ñĥд", + "Ġобо ÑĢÑĥд", + "âĢĮ باشد", + "à¹Į à¸Ń", + "Ġdet ay", + "æĤ ²", + " Ī", + "ãĤ¦ ãĤ£", + "ĠпÑĢав ила", + "ĠпÑĢави ла", + "ĠпÑĢавил а", + "kr ét", + "à¹Į ร", + "åĮ ¹", + "Ġ åħį", + "Ġå ħį", + "Ġåħ į", + "ĠÑģилÑĮ но", + "ĠиÑģ ÑĤоÑĩ", + "ĠиÑģÑĤ оÑĩ", + "ĠsaÄŁ lar", + "Ġ æѦ", + "ĠæŃ ¦", + "íĸ ĪìĬµëĭĪëĭ¤", + "íĸĪ ìĬµëĭĪëĭ¤", + "Kh ông", + "à¹Īาà¸ĩ à¹Ĩ", + "Û° Û°Û°", + "Û°Û° Û°", + "Ġ رÙĤ", + "Ġر ÙĤ", + "âĢĻ ÑıÑĤ", + "âĢĻÑı ÑĤ", + "åĽ ²", + "à¹ģ à¸Ķà¸ĩ", + "Ġžád né", + "c ouz", + "co uz", + "cou z", + "à ĭ", + "ĠпÑĸд гоÑĤов", + "Ġ ëĮĢíķĻ", + "ĠëĮĢ íķĻ", + "Ġdüny anın", + "èĢģ å¸Ī", + "èģĮ ä¸ļ", + "Ġy eri", + "Ġye ri", + "Ġyer i", + "à¥ĭ à¤ķर", + "à¥ĭà¤ķ र", + "ĠبÙĩ تر", + "ëĭĪ ìķĦ", + "ìĿĮ ìĿĦ", + "Ġ æĮĩ", + "ĠæĮ ĩ", + "ãĢį ï¼Ī", + "ĠÑģооÑĤвеÑĤÑģÑĤв ии", + "æĬ ĵ", + "à¹Ĥ à¸Ĺ", + "Ġtr á»ĵng", + "ĠпÑĢа ÑĨÑĸ", + "Ġ ëĨĵ", + "ĠëĨ ĵ", + "à¤ĩ न", + "Ġìłķ ë§IJ", + "ãĢ ķ", + "Ġc áºŃn", + "åĸ Ŀ", + "Ġê³Ħ ìĨį", + "Ġ ä¸İ", + "Ġä¸ İ", + "å¥ ı", + "Ġع اÙĦÙħ", + "Ġvys vÄĽt", + "Ġдо ÑĢог", + "ĠдоÑĢ ог", + "Ġн еÑĢв", + "ĠнеÑĢ в", + "Ġб еÑĤ", + "Ġп ÑĢиÑĤ", + "ĠпÑĢ иÑĤ", + "ĠпÑĢи ÑĤ", + "ов Ñĭй", + "å· ¡", + "Ùģ اع", + "Ðļ Ðĺ", + "à¸ķ รวà¸Ī", + "à¸ķรว à¸Ī", + "ĠÐľ ай", + "ĠÐľÐ° й", + "ëıĦ ë¡ľ", + "Ġz lat", + "ĠsaÄŁ lam", + "Ïģ αν", + "Ïģα ν", + "à¸Ĭ ร", + "å¹´ ãģ®", + "à¸Ħ รà¸Ńà¸ĩ", + "à¸Ħร à¸Ńà¸ĩ", + " ħ", + "Ġho á", + "Ġдов олÑĮно", + "Ġol maz", + "Ġolm az", + "Ġolma z", + "ĠpodmÃŃn ky", + "ĠÑħозÑı й", + "æĻ ´", + "ÑĢ ова", + "ÑĢов а", + "ÑĢо ва", + "Ġl ược", + "ान न", + "Ġкап иÑĤ", + "ĠÚĺ اÙĨ", + "æľī äºĽ", + "ĠповеÑĢÑħ ноÑģÑĤи", + "ĠÑĨ Ñĸн", + "ĠÑĨÑĸ н", + "ü yle", + "üy le", + "Ġj azy", + "Ġja zy", + "Ġjaz y", + "ĠPh ú", + "Ġ सन", + "Ġस न", + "åĩº åĶ®", + "Âł д", + "Ġ ãĤ¯", + "ĠãĤ ¯", + "çĶ± äºİ", + "à¥į पत", + "à¥įप त", + "ĠاÙĦØ® اÙħ", + "Ġاص ÙĦاØŃ", + "ĠاصÙĦ اØŃ", + "Ġ تÛĮ", + "Ġت ÛĮ", + "Ġt ato", + "Ġta to", + "Ġtat o", + "å¹ ¹", + "æ³ ½", + "à¸Ńà¸ģ à¸Īาà¸ģ", + "Ñĥ лÑİ", + "Ñĥл Ñİ", + "Ġв Ñģп", + "ĠвÑģ п", + "m ekte", + "me kte", + "mek te", + "à¥Ģ फ", + "ĠÚĺ ÙĪئ", + "Ġl á»ĩnh", + "Ġlá»ĩ nh", + "âĢĮ کرد", + "âĢĮÚ© رد", + "íı¬ ì¸ł", + "an ki", + "ank i", + "Ġëĵ±ë¡Ŀ ëĮĢíĸī", + "Ġ ãĤĿ", + "ĠãĤ Ŀ", + "Ġار زش", + "Ġارز Ø´", + "Ġth ú", + "Ġ ấn", + "è¡Į 为", + "ĠÑģ нова", + "ê ¾¸", + "Ġsou hlas", + "Ġв озв", + "Ġвоз в", + "Ġво зв", + "ÏģÎŃ ÏĢει", + "ĠнÑĸ Ñĩого", + "ĠнÑĸÑĩ ого", + "н ож", + "но ж", + "ÑĤ ик", + "ÑĤи к", + "ãģ© ãģĵ", + "ĠоÑģнов е", + "ãĤ ¥", + "à¸Ľà¸£à¸° à¸Īำ", + "Ġ à¸Ĺà¸Ńà¸ĩ", + "Ġà¸Ĺ à¸Ńà¸ĩ", + "Ġek sik", + "Ġeks ik", + "ĠÙĦ Ø¥", + "ãģĭ ãģ®", + "Ġ ãģª", + "- प", + "Ïģ ει", + "Ïģε ι", + "ĠìłĦ 문", + "า à¸ģล", + "าà¸ģ ล", + "β ε", + "íĬ¹ ë³Ħ", + "íķĺ ë©´ìĦľ", + "íķĺë©´ ìĦľ", + "à¸Ħà¹Ĥà¸Ļ à¹Ĥลย", + "Ġ 好", + "Ġå¥ ½", + "Ġy ayım", + "Ġyay ım", + "ë§Į ëĤ¨", + "ĠкиÑģ лоÑĤ", + "ĠкиÑģл оÑĤ", + "ĠÑį неÑĢг", + "çĸ ¾", + "Ġد Ø´", + "Ġsor uml", + "Ġsoru ml", + "Ġза клад", + "Ġзак лад", + "à¸Ĭ à¸Ńà¸ļ", + "ĠÙģرÙĩÙĨÚ¯ ÛĮ", + "Ġà¤ı ल", + "Ġë¹Ħ êµIJ", + "l erce", + "ler ce", + "Ġ Ø·ÙĦب", + "ĠØ· ÙĦب", + "ĠØ·ÙĦ ب", + "ãģ« ãģĹãģ¦", + "ĠÑı коÑĹ", + "ĠÑıк оÑĹ", + "ĠاÙĦب تÙĩ", + "ĠÐľ аÑĤ", + "ĠÐľÐ° ÑĤ", + "åį ĵ", + "Ġ åħ¬åı¸", + "Ġåħ¬ åı¸", + "Ġsöy ley", + "Ġsöyl ey", + "ĠìĥĪ ë¡ľìļ´", + "ĠÑĦ аÑĢ", + "Ġalt ına", + "Ġaltın a", + "Ġaltı na", + "Ġsta vu", + "Ġstav u", + "âĢĻ ı", + "al izace", + "aliz ace", + "Ġви ÑģÑĤÑĥп", + "æķĻ å¸Ī", + "à¥Ģ à¤ıस", + "à¥Ģà¤ı स", + "o dÄĽ", + "od ÄĽ", + "ĠÑĨ Ñĸл", + "ĠÑĨÑĸ л", + "ĠëĮĢ ìĥģ", + "ĠкоÑĤоÑĢ ом", + "ĠкоÑĤ оÑĢом", + "Ġظ رÙģ", + "éİ ®", + "اÙģ ÙĬØ©", + "اÙģÙĬ Ø©", + "Ġ ìĹĨìĿ´", + "ĠìĹĨ ìĿ´", + "ĠμÏĮ νο", + "ĠC Æ¡", + "å¯ »", + "ÏĦ ιÏĥ", + "ÏĦι Ïĥ", + "Ġ ãĤĦ", + "ĠãĤ Ħ", + "Ġjed noho", + "Ġjedn oho", + "Ġjedno ho", + "ا ا", + "Ø§Ø §", + "et ler", + "Ġव स", + "ĠÑĢазлиÑĩ нÑĭÑħ", + "Ġج غراÙģ", + "Ġth ừa", + "Ġthá» «a", + "ĠгÑĢомад Ñıн", + "ॠ°", + "ĠاÙĦØ£ Ø®", + "Ġнаг ÑĢÑĥз", + "ç¸ ¾", + "à¥Ĥ ह", + "ĠпÑĢÑıм о", + "â Ĭ", + "ĠاÙĦØ£ÙĪÙĦ Ùī", + "æĸ° èģŀ", + "Ġìĥģ íĻ©", + "it esi", + "ite si", + "ites i", + "ëį° ìĿ´íĬ¸", + "æŃ ·", + "ï¼ĮèĢĮ ä¸Ķ", + "ãģ¯ ãģļ", + "产 çĶŁ", + "æ°Ĺ ãģĮ", + "y slu", + "ys lu", + "ysl u", + "ìĸ´ ëĤĺ", + "ا Ú©Ùħ", + "اک Ùħ", + "âĢ ĥ", + ") ìĿĢ", + "Ġجست ارÙĩاÛĮ", + "ÙĪ Ø«", + "ãħ İ", + "Ġkav ram", + "v ál", + "vá l", + "æľ Ń", + "æĤ ł", + "ìħ Ģ", + "h rad", + "hr ad", + "hra d", + "Ġت ÙĥÙĪÙĨ", + "ĠتÙĥ ÙĪÙĨ", + "ĠH òa", + "å¹´ çļĦ", + "Ġç arp", + "Ġça rp", + "Ġy olu", + "Ġyo lu", + "Ġyol u", + "Ġdub na", + "ĠÐĴ елик", + "ĠÐĴели к", + "Ġt ôn", + "Ġtô n", + "æ ķĮ", + "æķ Į", + "Ġc oi", + "Ġco i", + "Ġnak onec", + "ĠÑį ÑĤÑĥ", + "ĠÑįÑĤ Ñĥ", + "íĨµ ëł¹", + "ÑĪ ел", + "ÑĪе л", + "Ġneb yl", + "Ġneby l", + "in ç", + "ب اÙĦØ¥ÙĨجÙĦÙĬزÙĬØ©", + "باÙĦ Ø¥ÙĨجÙĦÙĬزÙĬØ©", + "ï¼ ¡", + "о нÑĮ", + "он ÑĮ", + "Ġне маÑĶ", + "Ġнем аÑĶ", + "Ġê³ł ê°Ŀ", + "ĠÙĤ طع", + "ĠÙĤØ· ع", + "ĠÑĤеÑĢиÑĤоÑĢ ÑĸÑĹ", + "人 ãģ¯", + "ĠΣ α", + "éĤ£ äºĽ", + "ãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "ios per", + "í Ĥ¨", + "íĤ ¨", + "r aki", + "ra ki", + "rak i", + "اÛĮ ج", + "Âł C", + "Ġан алÑĸз", + "ãĤı ãĤĬ", + "ĠìķĦëĭ Į", + "ĠاÙĦعÙħÙĦ ÙĬØ©", + "ĠاÙĦعÙħ ÙĦÙĬØ©", + "l ament", + "la ment", + "lam ent", + "é» ¨", + "u jÃŃcÃŃm", + "ujÃŃ cÃŃm", + "ujÃŃcÃŃ m", + "Ġr ẻ", + "ä¸į åĪ°", + "Ġrez erv", + "ĠاÙĦØ° ÙĬÙĨ", + "ĠاÙĦØ°ÙĬ ÙĨ", + "æĭ ¥", + "Ðĺ н", + "Ġतह त", + "r esi", + "re si", + "res i", + "Ġ ãĥ¢", + "Ġãĥ ¢", + "л ев", + "ле в", + "ãĢĢ r", + "Ġ ä»Ĭ", + "Ġö dem", + "Ġpot rav", + "ĠêµIJ ìĪĺ", + "ÑĢ еди", + "ÑĢед и", + "ÑĢе ди", + "ĠÎļ ÎijÎĻ", + "Ġ наÑĩала", + "ĠнаÑĩ ала", + "Ġиз б", + "ĠbÅĻez na", + "Ġle dna", + "Ġled na", + "ÑĢ ÑĥÑİÑĤ", + "ÑĢÑĥ ÑİÑĤ", + "Ġ моÑĤ", + "Ġм оÑĤ", + "Ġмо ÑĤ", + "åıĹ åĪ°", + "ĠÑĢÑĥ кÑĥ", + "ĠÑĢÑĥк Ñĥ", + "Ỽ m", + "ad ele", + "ade le", + "adel e", + "ĠÑĢоз глÑı", + "åħ IJ", + "Ġر ÙĪاÙĨ", + "ĠرÙĪ اÙĨ", + "а ков", + "ак ов", + "Ñĥ ÑĢÑĭ", + "ÑĥÑĢ Ñĭ", + "Ġaz al", + "ĠÑĥ кÑĢа", + "ĠÑĥк ÑĢа", + "пи он", + "ĠÄįlov ÄĽ", + "äºĮäºĮ äºĮäºĮ", + "ا بÙĬ", + "اب ÙĬ", + "Ġas lında", + "ë¹ Ī", + "Ġв ÑĢаÑĩ", + "ĠвÑĢа Ñĩ", + "ë£ ¹", + "Ġген еÑĢа", + "à¸ģาร ส", + "ĠÑģов Ñģем", + "ÙĪ ÙĦا", + "ÙĪÙĦ ا", + "Ġश ब", + "ाà¤ĸ ण", + "ست اÙĨÛĮ", + "ستاÙĨ ÛĮ", + "æĬ ½", + "Ġrů z", + "ĠíĮIJ 매", + "à¸ģาร à¸ķ", + "ائ ÛĮ", + "a sal", + "as al", + "asa l", + "ĠÑĢабоÑĤ Ñĥ", + "ĠÑĢаб оÑĤÑĥ", + "ĠÑĢабо ÑĤÑĥ", + "à¥ĭल न", + "Ġ 马", + "Ġé© ¬", + "Ġl ai", + "Ġla i", + "ó i", + "v ap", + "va p", + "ëħĦ ìĹIJëĬĶ", + "ëħĦìĹIJ ëĬĶ", + "ĠпеÑĢед баÑĩ", + "Ġп леÑĩ", + "Ġпл еÑĩ", + "id det", + "idd et", + "ĠÑĩ оÑĢ", + "i yan", + "iy an", + "iya n", + "ãĢĢ ãĢĢãĢĢãĢĢãĢĢĠãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢ ĠãĢĢ", + "ĠØŃر ÙģÙĩ", + "ĠØŃرÙģ Ùĩ", + "大 éĺª", + "Ñĩ ого", + "Ġ ки", + "Ġк и", + "ا ÙĪÙĬ", + "اÙĪ ÙĬ", + "ĠbaÅŁ lan", + "Ġmerk ezi", + "Ġmerkez i", + "© ©", + "Ġر است", + "Ġرا ست", + "Ġ ëĬĶ", + "ĠëĬ Ķ", + "ĠÑģ ÑĢав", + "ĠвнÑĥ ÑĤÑĢи", + "ĠвнÑĥÑĤÑĢ и", + "ĠвнÑĥÑĤ ÑĢи", + "ãĢĢ ãĥİ", + "åĿ Ľ", + "Ġв ÑĤ", + ": :/", + ":: /", + "Ġsöz leÅŁ", + "Ġver diÄŁi", + "Ġverdi ÄŁi", + "ิ ยม", + "ิย ม", + "ĠÐŁ ÑĢоÑĤ", + "ĠÐŁÑĢ оÑĤ", + "ĠÐŁÑĢо ÑĤ", + "Ùĥ ار", + "Ġب ÙĨدÛĮ", + "ĠبÙĨ دÛĮ", + "ĠبÙĨد ÛĮ", + "Ùı ÙĪ", + "缴 æĴŃ", + "ĠÙħ ÙĦÙĬ", + "ĠÙħÙĦ ÙĬ", + "Ġnut né", + "ะà¹ģ à¸Ļà¸Ļ", + "ĠM ã", + "Ġ ì´", + "Ġì ´", + "à¹Ī าม", + "à¹Īา ม", + "м оÑģ", + "мо Ñģ", + "Ġпо Ñıви", + "ĠпоÑıв и", + "Ġn ghi", + "Ġng hi", + "Ġngh i", + "Ġ ëIJĺëĬĶ", + "ĠëIJĺ ëĬĶ", + "Ñģ клад", + "Ñģк лад", + "à¤Ĺ ल", + "ĠC á»Ļng", + "çŁ¥ è¯Ĩ", + "Ġ taj", + "Ġt aj", + "Ġta j", + "Ġع بر", + "Ġعب ر", + "éĻĦ è¿ij", + "ü ÄŁ", + "Ġê³µ ê³ł", + "è£ ķ", + "âĢĮ Ø´ÙĨ", + "âĢĮØ´ ÙĨ", + "Ġgerç ekten", + "Ġgerçek ten", + "n un", + "nu n", + "Ùħ Ø´", + "ê°Ģ ëĬ¥", + "ãĥ© ãĥ³ãĥī", + "ãĥ©ãĥ³ ãĥī", + "ay acak", + "aya cak", + "åįģ ä¸Ģ", + "ĠB ảo", + "Ġyet erli", + "Ġyeter li", + "ž iv", + "ži v", + "ĠÙĬÙĨ اÙĬر", + "Ġb ýval", + "Ġbý val", + "ìĽĶ ê¹Įì§Ģ", + "Ġn ợ", + "Ġ ê´Ģê³Ħ", + "Ġê´Ģ ê³Ħ", + "Ġ íĿ¬", + "ĠíĿ ¬", + "а ÑİÑĤÑĮ", + "аÑİÑĤ ÑĮ", + "аÑİ ÑĤÑĮ", + "Ġgö tür", + "Ġваж но", + "Ġва жно", + "æµ ©", + "ĠìĿ¼ ë¶Ģ", + "ÑĨÑĸй ний", + "ëł¥ ìĿĦ", + "Ġл еÑĩение", + "ĠлеÑĩ ение", + "éĸ¢ ä¿Ĥ", + "ĠT üm", + "ìĻ Ķ", + "éģ Ĺ", + "ĠD ön", + "Ġ ÑģпÑĸлÑĮ", + "ĠÑģп ÑĸлÑĮ", + "ĠÑģпÑĸл ÑĮ", + "ãĥģ ãĤ§", + "н ÑıеÑĤÑģÑı", + "нÑı еÑĤÑģÑı", + "нÑıеÑĤ ÑģÑı", + "il tere", + "ilter e", + "ilt ere", + "Ġ íĮĢ", + "Ġí ĮĢ", + "ĠíĮ Ģ", + "è¨Ń å®ļ", + "Ġro din", + "Ġrod in", + "Ġrodi n", + "ĠاÙĤتص اد", + "алÑĮ не", + "à¥į à¤ķर", + "à¥įà¤ķ र", + "Ġvý bÄĽ", + "Ġteh lik", + "âĶ IJ", + "Ġ çĶ°", + "Ïģί ÏĤ", + "iy el", + "iye l", + "Ġth iá»ĩu", + "Ġthi á»ĩu", + "ÏĪ ηÏĤ", + "ÏĪη ÏĤ", + "Ġд ве", + "Ġдв е", + "ĠEl ekt", + "ĠEle kt", + "à¸ģ à¸İ", + "о ÑĢÑĥж", + "оÑĢ Ñĥж", + "оÑĢÑĥ ж", + "a ÅŁÄ±", + "aÅŁ ı", + "è© ³ç´°", + "Ġات ÙģاÙĤ", + "Ġg ắn", + "æ²Ĵ æľī", + "ĠÙħطاÙĦ عÙĩ", + "ÏĦ ιν", + "ÏĦι ν", + "Ġok res", + "Ñ ľ", + "ê° Ķëĭ¤", + "Ðł оз", + "å¾ĭ 宾", + "ï¼ī ï¼Ī", + "Ġìļ´ìĺģ ìŀIJ", + "ãĤ« ãĥĨ", + "l aÄį", + "la Äį", + "à¥ĩब स", + "Ġo Äįi", + "ĠoÄį i", + "- б", + "e lerden", + "eler den", + "elerde n", + "k ových", + "kov ých", + "kový ch", + "ĠÄ°z mir", + "สม าà¸Ĭ", + "lad atel", + "Ġ æ»", + "Ġæ »", + "éĶĢ åĶ®", + "ĠдоÑģлÑĸд женнÑı", + "ĠлÑĸ каÑĢ", + "ĠлÑĸка ÑĢ", + "ĠлÑĸк аÑĢ", + "Ġодна ко", + "ĠV ác", + "Ġ è«", + "Ġè «", + "éĢ² è¡Į", + "以 å¤ĸ", + "é³ ¥", + "Ġ ÙĨج", + "ĠÙĨ ج", + "ĠbaÅŁ kan", + "ĠbaÅŁka n", + "ĠbaÅŁk an", + "Ġopat ÅĻenÃŃ", + "ا رش", + "ار Ø´", + "ض اÙģØ©", + "ضا ÙģØ©", + "ãĤ¹ ãĥ¬", + "ή ν", + "ÄĽ tÃŃ", + "ÄĽt ÃŃ", + "ว ย", + "Ġرس ÙĪÙĦ", + "ÅĻ ich", + "ÅĻi ch", + "ĠpÅĻ ih", + "ĠpÅĻi h", + "ÑĮ ми", + "çĦ¶ èĢĮ", + "Ġth ẳng", + "l amaz", + "la maz", + "lam az", + "lama z", + "ÙĢ ÙĢÙĢ", + "ÙĢÙĢ ÙĢ", + "Ġì°¸ ìŬ", + "ĠÙĨÙĪ شتÙĩ", + "ĠÙĨÙĪØ´ تÙĩ", + "ĠÑģÑĤ ек", + "ãģ® ãģ¿", + "ĠÙĪ اÙĦع", + "ĠÙĪاÙĦ ع", + "ĠÙĪا ÙĦع", + "æķ ¢", + "à¥Ģà¤Ĥ ,", + "ÐŀÑģ нов", + "им оÑģÑĤи", + "имо ÑģÑĤи", + "ĠÄĮesk á", + "ĠÄĮes ká", + "Ñĸ Ñĩний", + "ÑĸÑĩ ний", + "าม ารà¸ĸ", + "ekk ür", + "Âł h", + "ι κη", + "ικ η", + "Ġتع ÛĮÛĮÙĨ", + "к оÑģÑĤÑĸ", + "ко ÑģÑĤÑĸ", + "ĠMust afa", + "Ġì¦ ī", + "ãģ§ ãģĤãĤĬ", + "ãģ§ãģĤ ãĤĬ", + "å·¥ ä¸ļ", + "ov ÃŃd", + "ovÃŃ d", + "ÐĿ о", + "Ġس پس", + "Ġسپ س", + "Ú¯ÛĮ رد", + "Ú¯ÛĮر د", + "Ġп едагог", + "Ġ کارÛĮ", + "ĠÚ© ارÛĮ", + "Ġکار ÛĮ", + "ĠÑĪ ÑĤÑĥ", + "ĠÑĪÑĤ Ñĥ", + "æĮ Ĥ", + "Ø¢ Ùħد", + "Ø¢Ùħ د", + "羣 æĺ¯", + "Ġ ابت", + "Ġا بت", + "Ġاب ت", + "Ġرئ ÛĮس", + "Ġد ÛĮÙĨ", + "ĠدÛĮ ÙĨ", + "ÏĪ ε", + "Ġse zon", + "Ġsez on", + "Ġ çĨ", + "Ġç Ĩ", + "स न", + "ãĥ» ãĤ¢", + "Ġ åħŃ", + "Ġåħ Ń", + "Ġ è±", + "Ġè ±", + "Ġìłľ 목", + "ĠÙħ عد", + "ĠÙħع د", + "ĠÙģ ÙĤد", + "ĠÙģÙĤ د", + "éĤ Ĭ", + "Ω Σ", + "Ġ å¡", + "Ġå ¡", + "Ġob vyk", + "ĠìĿ´ ëłĩê²Į", + "ĠбоÑĢ оÑĤÑĮ", + "Û² Û±", + "Ġ á»ijng", + "Ġá» ijng", + "è¯ Ĺ", + "Ġ ÄIJá»iji", + "ĠÄIJ á»iji", + "ĠбеÑĢез нÑı", + "Ġs oÄŁ", + "Ġso ÄŁ", + "Ġ ï¾į", + "Ġï¾ į", + "ãĤĴ ãģ¤", + "ãģĹ ãĤĥ", + "еÑĢ еÑĩ", + "еÑĢе Ñĩ", + "ãĢĢ ãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢãĢĢ ĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢãĢĢĠãĢĢ ĠãĢĢĠãĢĢ", + "ãĢĢãĢĢĠãĢĢĠãĢĢ ĠãĢĢ", + "ãĢĢãĢĢĠ ãĢĢĠãĢĢĠãĢĢ", + "æĪ ª", + "ĠاÙĦسعÙĪد ÙĬØ©", + "ĠëĤ¨ ìŀIJ", + "ĠAng iosper", + "???????? ????????", + "Ġpr ům", + "Ġprů m", + "ĠплоÑī ад", + "Ġ ÏĦÏģα", + "ĠÏĦ Ïģα", + "д аÑİÑĤ", + "да ÑİÑĤ", + "Ġsı nav", + "Ġsın av", + "Ġm ặc", + "æ°´ å¹³", + "Ġви глÑı", + "Ġвиг лÑı", + "Ġn ást", + "Ġná st", + "Ġnás t", + "ĠобÑĭ Ñĩ", + "ĠìĿ´ìķ¼ 기", + "ë¹ Ľ", + "ĠB aÄŁ", + "ĠBa ÄŁ", + "ĠاÙĦØ« اÙĦØ«", + "Ġser vis", + "Ġserv is", + "Ġservi s", + "Ġ 룬", + "ĠëŁ ¬", + "ом ина", + "ί θ", + "Ġ Ấ", + "ĠẠ¤", + "ê²½ 기", + "Ġì¡ ¸", + "ี à¸ļ", + "Ġà¤ĺ à¤Łà¤¨", + "Ġ à¸Ļาà¸ĩ", + "Ġà¸Ļ าà¸ĩ", + ". Îł", + "ìķ ķ", + "r ün", + "Ġon ların", + "Ġonları n", + "Ġonlar ın", + "Ġзб ÑĸлÑĮÑĪ", + "à¹ģ à¸Ł", + "ĠìŬ 기", + "Ġ ëĮĢíijľ", + "ĠëĮĢ íijľ", + "ĠÑģи лÑĥ", + "ĠÑģил Ñĥ", + "à¹Ĥ à¸Ľ", + "Ġت ÙĤد", + "ĠتÙĤ د", + "ĠÐŁ ом", + "ĠÐŁÐ¾ м", + "ĠмаÑģ ла", + "Ġ ìĺģìĥģ", + "Ġìĺģ ìĥģ", + "н ение", + "не ние", + "нен ие", + "λα μβ", + "ĠB yl", + "ĠBy l", + "æĬ µ", + "æİ ª", + "Ġκαθ ÏİÏĤ", + "m ızı", + "æĸ° çļĦ", + "éĩį è¤ĩ", + "ั à¸Ľ", + "çŃ Ĩ", + "ĠÑĤ ка", + "ĠзнаÑĩ еннÑı", + "Ġзна ÑĩеннÑı", + "л аÑĤи", + "ла ÑĤи", + "лаÑĤ и", + "Ġv liv", + "Ġvl iv", + "ÐIJ н", + "ĠÚĨ اپ", + "ĠпиÑĤ анÑĮ", + ": ï½ī", + "æķĻ æİĪ", + "Ġì¹ľ 구", + "Ġtr ao", + "Ġtra o", + "à¥įयà¤ķ त", + "ุà¸Ħ à¸Ħล", + "ĠرÙĪ Ø´ÙĨ", + "ĠرÙĪØ´ ÙĨ", + "ĠعÙĦÙĬ Ùĩا", + "ĠعÙĦÙĬÙĩ ا", + "ãĢģ ãģĦ", + "ëħĦ ìĹIJ", + "éĢ Ĩ", + "Ġмаг аз", + "ï¾ŀ ï¾ŀ", + "Ġs ice", + "Ġsi ce", + "Ġsic e", + "âĢĻ te", + "âĢĻt e", + "ĠاÙĦÙĦ غة", + "á u", + "èĩª 身", + "Ġng Å©", + "ĠÑģк ладÑĥ", + "ĠÑģклад Ñĥ", + "Ġz ru", + "Ġtr uy", + "Ġ ilan", + "Ġi lan", + "Ġil an", + "ĠÙ¾ اÛĮÙĩ", + "ĠپاÛĮ Ùĩ", + "Ġپا ÛĮÙĩ", + ": :::::::::::::", + ":: ::::::::::::", + ":::: ::::::::::", + ":::::: ::::::::", + ":::::::: ::::::", + "::: :::::::::::", + "::::: :::::::::", + "::::::: :::::::", + "::::::::: :::::", + ":::::::::: ::::", + "::::::::::: :::", + ":::::::::::: ::", + "::::::::::::: :", + "f ak", + "fa k", + "ÑĤ еÑħ", + "ÑĤе Ñħ", + "Ġt aky", + "Ġta ky", + "Ġtak y", + "Ġìĸ¸ ìĸ´", + "ed enÃŃ", + "eden ÃŃ", + "ede nÃŃ", + "Ġà¤ļ लत", + "Ġà¤ļल त", + "Ġë°° ìļ°", + "Ġjmé no", + "ĠÙĦ Ø£ÙĨ", + "ĠÙĦØ£ ÙĨ", + "α νά", + "αν ά", + "к ÑĥлÑĮ", + "кÑĥ лÑĮ", + "кÑĥл ÑĮ", + "ĠØŃÙģ ظ", + "ĠآزÙħ ÙĪÙĨ", + "иÑĤелÑĮ нÑĭе", + "ĠÐŀ лекÑģанд", + "èį £", + "Ġà¤ľà¤¬ à¤ķ", + "Ġr odi", + "Ġro di", + "Ġrod i", + "Ġبرخ ÙĪرد", + "Ġhaf ta", + "Ġhaft a", + "λ ικά", + "λι κά", + "λικ ά", + "à¸ķ à¸Ļ", + "ĠбеÑĢ ег", + "αν δ", + "- С", + "Ġprav idel", + "ĠбÑĸ лÑı", + "ĠбÑĸл Ñı", + "íĴ į", + "ĠпÑĢед ÑĥÑģ", + "ĠмÑĥ ниÑĨип", + "åĮĸ åѦ", + "ĠتÙħ اس", + "Ġà¤ī ल", + "Ðĵ Ðŀ", + "غ ر", + "r adan", + "ra dan", + "rad an", + "rada n", + "ĠëĤĺ ìĺ¤", + "è¨ Ĥ", + "à¹Ģà¸ĺ à¸Ń", + "âĢĮ سÛĮ", + "âĢĮس ÛĮ", + "ĠобÑıз аÑĤелÑĮно", + "ĠобÑıзаÑĤелÑĮ но", + "о ÑĤе", + "оÑĤ е", + "à¹Į à¸Ĭ", + "çĶ¨ çļĦ", + "Ġalt ın", + "Ġaltı n", + "ĠÑģоÑĤ ÑĢÑĥд", + "Ñĸ нки", + "Ñĸн ки", + "озмож но", + "Î IJ", + "ë¹ Į", + " ķ", + "ĠÑĤ оÑĩно", + "ĠÑĤо Ñĩно", + "ĠÑĤоÑĩ но", + "Ġj men", + "Ġjm en", + "اÙĦ ÛĮا", + "اÙĦÛĮ ا", + "èĪ į", + "ch odu", + "cho du", + "chod u", + "ê³ ¤", + "ick ém", + "ické m", + "ĠÙħ ÙĪر", + "ĠÙħÙĪ ر", + "ãĥª ãĥ³ãĤ¯", + "ãĥªãĥ³ ãĤ¯", + "Ġa ÅŁam", + "ĠaÅŁ am", + "Ġ иÑĤ", + "Ġи ÑĤ", + "Ġन य", + "Ġ μο", + "Ġμ ο", + "éķ ľ", + "ĠبÙĨ ابر", + "ĠبÙĨا بر", + "Ġت خصص", + "Ġส à¸ŀ", + "ĠпÑĢоÑĦеÑģ Ñģи", + "Ġp uan", + "Ġpu an", + "ĠÙģر ÙħاÙĨ", + "ĠÙģرÙħ اÙĨ", + "ëĮĢ íļĮ", + "Ġп ÑıÑĤ", + "ĠÙħ ÙĪب", + "ĠÙħÙĪ ب", + "ĠvÄĽ ku", + "Ġ ëĥ", + "Ġë ĥ", + "ec ký", + "eck ý", + "ĠìĪĺ ëıĦ", + "Ġth ao", + "Ġtha o", + "Ġk apat", + "Ġka pat", + "Ġkap at", + "ĠзаÑħ воÑĢÑİ", + "Ġ åħī", + "Ġåħ ī", + "ر اÙĨÛĮ", + "راÙĨ ÛĮ", + "را ÙĨÛĮ", + "éĢł æĪIJ", + "ĠÑģв Ñĸй", + "ĠдоÑģ иÑĤÑĮ", + "Ġmil yar", + "Ġener ji", + "Ġenerj i", + "Ġк ип", + "Ġки п", + "Ġì¢ĭ ìķĦ", + "Ġب Ø¥", + "ê²Į ìĭľ", + "ĠL Æ°u", + "ĠÙħÙĨظ ÙĪر", + "Ïī μά", + "ζ ί", + "ım da", + "Ġ ìĿ´ë¥¼", + "ĠìĿ´ 를", + "๠Ĵ", + "Ġв важ", + "Ġвв аж", + "Ġga zet", + "Ġgaze t", + "Ġgaz et", + "à¥įत न", + "à¹īำ หà¸Ļ", + "åľŁ åľ°", + "Ġसद स", + "ت بة", + "تب Ø©", + "Ġpo ÄįÃŃta", + "Ġìĭľ ìĬ¤íħľ", + "ร à¸Ħ", + "Ġed ecek", + "ĠتØŃ ÙĦÛĮÙĦ", + "æĮī çħ§", + "åĿ ª", + "Ġê·¸ ê°Ģ", + "ت ÙĩÙħ", + "تÙĩ Ùħ", + "Ġб аж", + "Ġба ж", + "ا Ùģع", + "اÙģ ع", + "éĢļ 常", + "ĠТ и", + "γ νÏī", + "ì¹ Ļ", + "Ġznam ená", + "ï¼¼ ï¼¼", + "α ÏĢÏĮ", + "åĨĻ 羣", + "Ġ ï¼¼Ċ", + "Ġï¼¼ Ċ", + "åĬł å·¥", + "èĤ¡ä»½ æľīéĻIJåħ¬åı¸", + "Ñı ÑĤий", + "ÑıÑĤ ий", + "ÑıÑĤи й", + "Ġh âl", + "Ġç ab", + "Ġça b", + "ĠØŃ Ø§Ø¶Ø±", + "P ÅĻ", + "ĠاÙĦ تÙĤ", + "ĠاÙĦت ÙĤ", + "ξ ηÏĤ", + "ξη ÏĤ", + "б е", + "Ġkh ám", + "Ġkhá m", + "Ġ âĮĴ", + "Ġâ ĮĴ", + "Ġ éķ¿", + "Ġéķ ¿", + "Ġ âĢ¦Ċ", + "ĠâĢ¦ Ċ", + "द म", + "ĠSt udi", + "ĠStud i", + "Ġk odu", + "Ġko du", + "Ġkod u", + "Ġkom unik", + "Ġkomun ik", + "Ġkat kı", + "n ete", + "ne te", + "net e", + "Ġr apor", + "Ġrap or", + "Ġra por", + "éĨ ´", + "ãĤī ãģĽ", + "ĠнеÑģк олÑĮ", + "Ġhá»į p", + "ï¿£  ̄ ̄", + " ̄ ̄ ï¿£", + "º ¼", + "è£ Ĥ", + "ед ÑĮ", + "Ġا ÙĦاØŃ", + "ĠاÙĦ اØŃ", + "l adık", + "la dık", + "lad ık", + "ladı k", + "Ġfot oÄŁraf", + "æĹ¥ ãģ®", + "ĠØŃ Ø§ÙĦت", + "ĠØŃاÙĦ ت", + "ĠØ« ÙĦاث", + "а ÑĤов", + "аÑĤ ов", + "аÑĤо в", + "ey se", + "Ġê°IJ ìĤ¬", + "á že", + "áž e", + "Ġн ада", + "Ġна да", + "Ġнад а", + "Ġà¤ķ हन", + "Ġà¤ķह न", + "Ġ ãĥĿ", + "Ġãĥ Ŀ", + "ãģ« ãģĤãĤĭ", + "ãģ«ãģª ãģ£ãģ¦", + "ÙĪ دÙĩ", + "ÙĪد Ùĩ", + "Ġpo Å¡k", + "太 éĺ³åŁİ", + "ç»ı éªĮ", + "æĴŃ æĶ¾", + "Ġma jet", + "Ġmaj et", + "Ñħ о", + "ĠÑĤ еÑģÑĤ", + "ĠÑĤе ÑģÑĤ", + "ï¼ı Ċ", + "Ïĥε ÏĦε", + "ĠТ омÑĥ", + "ĠТо мÑĥ", + "ĠТом Ñĥ", + "Ùİ ØŃ", + "ĠìŀĪ ìľ¼ë©°", + "Ġза знаÑĩ", + "éļ IJ", + "Ġд ÑĸÑĹ", + "ĠдÑĸ ÑĹ", + "к ÑĤив", + "кÑĤ ив", + "кÑĤи в", + "ÙĪ ÙģÙĬ", + "ÙĪÙģ ÙĬ", + "Ġt á»Ŀ", + "Ġtá» Ŀ", + "à¸¹à¸Ľ à¹ģà¸ļà¸ļ", + "ĠÑĢ едак", + "ĠÑĢед ак", + "Ġa teÅŁ", + "Ġat eÅŁ", + "Ġate ÅŁ", + "Ġkh iá»ĥn", + "Ġkhi á»ĥn", + "ü ny", + "ün y", + "ี ยà¸ģ", + "ีย à¸ģ", + "ĠÑĩа Ñīе", + "Ġt uy", + "Ġtu y", + "γ Ïīν", + "γÏī ν", + "ร à¸Ńà¸ļ", + "Ġtr ùng", + "à¹ģà¸Ĺ à¸Ļ", + "Ġα κÏĮ", + "Ġακ ÏĮ", + "ĠÐĴеÑĢ Ñħов", + "à¹ĥ à¸Ļส", + "à¹ĥà¸Ļ ส", + "ãĢģ ä½ķ", + "åĩ ¦", + "Ġ ç»ı", + "Ġç» ı", + "æ¨ ĵ", + "اÙĨÚ¯ ÙĦÛĮسÛĮ", + "Ġ lepÅ¡ÃŃ", + "Ġlep Å¡ÃŃ", + "Ġ å¼Ģå§ĭ", + "Ġå¼Ģ å§ĭ", + "éĻ º", + "ĠÑĩ еÑĤÑĭ", + "ĠÑĩеÑĤ Ñĭ", + "ĠС еÑĢ", + "оÑİ Ð·", + "Ġx ung", + "Ġxu ng", + "åĵģ çīĮ", + "Ġìĥģ íĥľ", + "ĠÙĨ صب", + "ĠÙĨص ب", + "ĠÑĩ омÑĥ", + "Ġتر Ú©ÛĮ", + "Ġترک ÛĮ", + "- ли", + "o vÃŃ", + "ov ÃŃ", + "Ġا ÙĨج", + "ĠاÙĨ ج", + "çµ ¡", + "Ġت ÙĪص", + "ĠتÙĪ ص", + "Ġ ì¿ł", + "Ġì ¿ł", + "Ġvar sa", + "Ġva rsa", + "Ġvars a", + "ĠÑĢаз ÑĢабоÑĤ", + "à¸Ĥ à¸Ńà¸ĩà¸Ħ", + "à¸Ĥà¸Ńà¸ĩ à¸Ħ", + "éŃ Ĥ", + "Ġà¤Ĭ पर", + "æĿ¥ 说", + "ĠÑĨенÑĤ ÑĢалÑĮ", + "ĠÑĨенÑĤÑĢ алÑĮ", + "ĠÑĨенÑĤÑĢа лÑĮ", + "ĠTak ım", + "Ġon lar", + "Ġسر عت", + "好 åĥı", + "Ġbu á»ķi", + "ĠÐij ел", + "Âł c", + "Ø£ ت", + "à¸Ĥ à¸ĵะ", + "ãģ« åĩº", + "Ġ+ **************", + "ÏĦη κε", + "ا جر", + "اج ر", + "Ġ âĢ²", + "ĠâĢ ²", + "ãĥ¼ ãĥ¬", + "ãĥ¼ãĥ ¬", + "é¥ Ń", + "Ġج ÙĦس", + "ĠجÙĦ س", + "Ġب ستÙĩ", + "Ġبس تÙĩ", + "ว าà¸ĩ", + "Ġ βά", + "Ġβ ά", + "Ġа меÑĢикан", + "ĠPr emi", + "ĠPre mi", + "ĠPrem i", + "m ae", + "ma e", + "ĠÑģ ÑĢеди", + "ĠÑģÑĢед и", + "Ạł", + "Ġв ÑĢед", + "ãĢĤ èĢĮ", + "åĴ ²", + "Ġê³µ ê°ľ", + "èĤ ¥", + "з виÑĩай", + "Ġpro cent", + "Ġproc ent", + "и лоÑģÑĮ", + "ил оÑģÑĮ", + "ило ÑģÑĮ", + "श न", + "é łģ", + "éł ģ", + "е кÑĤи", + "ек ÑĤи", + "екÑĤ и", + "د اشت", + "دا شت", + "íķĻ íļĮ", + "ãĢĢ ãĢĢãĢĢĠãĢĢĠãĢĢ", + "ãĢĢãĢĢ ãĢĢĠãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢ ĠãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢĠãĢĢ ĠãĢĢ", + "ĠÙħد ÙĬÙĨØ©", + "िल न", + "Ġ èĹ", + "Ġè Ĺ", + "м иÑĢ", + "ми ÑĢ", + "Ġн оÑĢ", + "Ġно ÑĢ", + "Ġ íķĺì§Ģ", + "Ġíķĺ ì§Ģ", + "в еÑī", + "ве Ñī", + "nÄĽ m", + "е ÑĢами", + "еÑĢ ами", + "еÑĢа ми", + "Ġpra cov", + "Ġprac ov", + "ĠبÙĬ اÙĨات", + "ĠÏĥ Ïįν", + "ĠÏĥÏį ν", + "Ġج Ø°", + "ãģĦ ãģ§", + "ĠB ÃŃ", + "è± Ĩ", + "Ġh mot", + "Ġhm ot", + "il eceÄŁi", + "ilece ÄŁi", + "Ġت اث", + "Ġتا Ø«", + "è´ ´", + "Ġ ê¸ī", + "Ġê¸ ī", + "Ġm ysl", + "Ġmy sl", + "Ġmys l", + "ĠìĿ´ íķ´", + "Ġ기 ëĬ¥", + "ĠТ ам", + "ĠТа м", + "ĠнаÑģ елениÑı", + "ĠM ez", + "ĠMe z", + "Ġ모 르", + "íĻĶ 를", + "ĠÙĨسخ Ùĩ", + "ĠتÙĦ ÙĪÛĮزÛĮ", + "ĠÄįerv na", + "Æ°á» ¡ng", + "ص ØŃ", + "ĠÑĤ ÑĢен", + "ĠÑĤÑĢ ен", + "Õ ¡", + "Ġce lou", + "Ġcel ou", + "Å© i", + "ìĹĨ ìĿ´", + "nÃŃ ku", + "nÃŃk u", + "Ġprogram u", + "à¥į पन", + "à¥įप न", + "Ġп ÑĢеж", + "ĠпÑĢ еж", + "ĠпÑĢе ж", + "ا رب", + "ار ب", + "æľŁ éĸĵ", + "Ġ μά", + "Ġμ ά", + "ëįĶ ëĭĪ", + "ụ n", + "ĠпеÑĢ еÑģÑĤ", + "ĠпеÑĢе ÑģÑĤ", + "ĠпеÑĢеÑģ ÑĤ", + "对 äºİ", + "è¿IJ è¡Į", + "ĠÑĤ ан", + "ĠÑĤа н", + "Ġ ìĤ¬ìĿ´íĬ¸", + "ĠìĤ¬ ìĿ´íĬ¸", + "ĠìĤ¬ìĿ´ íĬ¸", + "ĠQu ảng", + "ĠQuản g", + "Ġst ojÃŃ", + "Ġsto jÃŃ", + "ãĥŃ ãĥ¼", + "Ú¯ ار", + "Ġе неÑĢг", + "Ġkter ým", + "Ġkterý m", + "ĠпÑĢи мÑĸ", + "ĠпÑĢим Ñĸ", + "ĠкаÑĢÑĤ и", + "ĠкаÑĢ ÑĤи", + "Ġz engin", + "Ġzen gin", + "ï¼Į åĨį", + "Ġت رب", + "Ġتر ب", + "ĠÑĨенÑĤ ÑĢ", + "ĠÑĨен ÑĤÑĢ", + "ĠsaÄŁ lamak", + "ĠsaÄŁlam ak", + "ëĭ Ŀ", + "ãģ® åŃIJ", + "Ġ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "ĠãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "Ġs Æ¡n", + "ĠsÆ¡ n", + "z ı", + "ÑĤ аки", + "ÑĤа ки", + "ÑĤак и", + "ÄĽ stÃŃ", + "ÄĽst ÃŃ", + "Ġ à¥", + "Ġà ¥", + "é ®", + "åŁ¹ è®Ń", + "Ġ ìĶ¨", + "ĠìĶ ¨", + "Ġbel ki", + "ĠìĿ´ 벤íĬ¸", + "ëĶĶ ìĸ´", + "Ġs Ãłn", + "ни кам", + "ник ам", + "ника м", + "a lim", + "al im", + "ali m", + "対 å¿ľ", + "ĠS á»±", + "éģĵ è·¯", + "é«ĺ æ¸ħ", + "Ġd õi", + "ĠÙĦ ÙĢ", + "Ġ èĤ¡", + "ĠèĤ ¡", + "ν ι", + "âĢŀ J", + "' nde", + "'n de", + "Îij Îĵ", + "ãģ¨ ãģªãĤĭ", + "ãģ¨ãģª ãĤĭ", + "çĪ ¸", + "ع ÙĦÛĮ", + "عÙĦ ÛĮ", + "Ïģι ÏĥÏĦ", + "ÏģιÏĥ ÏĦ", + "Ġe ÄŁit", + "ĠeÄŁ it", + "Ġзов нÑĸÑĪ", + "Ġп ÑĢим", + "ĠпÑĢ им", + "ĠпÑĢи м", + "س Ùħبر", + "سÙħ بر", + "ĠmÄĽst ÄĽ", + "ĠÏĢεÏģι ÏĥÏĥÏĮÏĦε", + "ÐIJ Ðł", + "æĦŁ åĪ°", + "Ġ문 ìĦľ", + "ãģĭ ãĤĭ", + "ÙĤÙĬ ÙĤØ©", + "ÙĤÙĬÙĤ Ø©", + "Ġв ÑĤÑĢа", + "ĠвÑĤ ÑĢа", + "Ġ à¸Ńำ", + "Ġà¸Ń ำ", + "Ñģ кÑĥÑİ", + "Ñģк ÑĥÑİ", + "د ÙĩاÛĮ", + "دÙĩ اÛĮ", + "ĠÄ° st", + "ĠÄ°s t", + "ĠÐĹ Ð°Ð²", + "ĠÐĹа в", + "Ġ éĥ½", + "Ġé ĥ½", + "Ġéĥ ½", + "ÑĪ ем", + "ÑĪе м", + "Ġе ÑīÑij", + "ĠÐľÐ¸Ñħ ай", + "ĠÑĥпÑĢав лениÑı", + "л еннÑĭе", + "лен нÑĭе", + "ĠzaÄį al", + "æ¡ Į", + "Ġп Ñĸз", + "л ÑıÑĤÑĮÑģÑı", + "лÑı ÑĤÑĮÑģÑı", + "лÑıÑĤÑĮ ÑģÑı", + "Ġ ìŀIJë£Į", + "ĠìŀIJ ë£Į", + "ãĢĢ ãĢĢĠ", + "ãĢĢãĢĢ Ġ", + "ĠK ral", + "ĠKr al", + "ĠKra l", + "èĪ ī", + "Ġà¤Ń व", + "Ġ Ø®Ùħ", + "ĠØ® Ùħ", + "Ġа кадем", + "Ġ isten", + "Ġis ten", + "Ġi sten", + "Ġist en", + "ĠиÑģ кÑĥÑģ", + "ĠиÑģк ÑĥÑģ", + "ĠعÙĨد Ùħا", + "Ġا ÙĦاÙħ", + "ĠاÙĦ اÙħ", + "is mus", + "ism us", + "ismu s", + "Ġayr ıntı", + "Ġ Що", + "ĠЩ о", + "ĠÙĩ ÙĪØ´", + "ĠÙĩÙĪ Ø´", + "د ÙĪاج", + "دÙĪ اج", + "л аж", + "ла ж", + "ĠÚ©ÙĨ ار", + "Âł R", + "æĢ§ çļĦ", + "Ñģ Ñĸм", + "ÑģÑĸ м", + "ĠM üz", + "ĠMü z", + "ÑĢ овиÑĩ", + "ÑĢов иÑĩ", + "ÑĢо виÑĩ", + "Ġ Ω", + "ĠÎ ©", + "Ġìĸ´ ëĶĶ", + "س ÙħØ©", + "سÙħ Ø©", + "Ġ ÑĢÑı", + "ĠÑĢ Ñı", + "Ġt Æ°Æ¡i", + "ĠtÆ° Æ¡i", + "ĠÑĢаÑģ Ñħод", + "åı° çģ£", + "ĠاÙĦ ÙĪÙĤت", + "ĠاÙĦÙĪ ÙĤت", + "بر اÛĮ", + "ĠзÑĢоб иÑĤи", + "Ġб ÑĥÑĢ", + "ĠбÑĥ ÑĢ", + "ĠÄįin nosti", + "ĠÄįinnost i", + "Ġص اØŃ", + "ĠصÙĨ عت", + "ĠصÙĨع ت", + "Ġ Ø·ÙĦ", + "ĠØ· ÙĦ", + "ξ Ïį", + "ĠtisÃŃ c", + "ĠFr ansa", + "ĠFran sa", + "ì¦ ĺ", + "è» ½", + "Ñ ĺ", + "ÏĮÏĦη ÏĦαÏĤ", + "ÏĮÏĦηÏĦα ÏĤ", + "ĠM illet", + "ĠMill et", + "ĠMil let", + "ãĢĢ ãĥ¾", + "ĠпÑĢ ием", + "ĠпÑĢи ем", + "ĠترجÙħ Ùĩ", + "Ġس ÙĪد", + "ĠسÙĪ د", + "ĠsouÄįást ÃŃ", + "ÐĶ о", + "Ġtr ụ", + "足 çIJĥ", + "à¸Ľ à¸ģ", + "Ġu stanov", + "ÎŁ ÎĻ", + "ÎŁÎ Ļ", + "Ðŀ н", + "Ġн еж", + "Ġне ж", + "к ог", + "ко г", + "ä¸Ģ çĤ¹", + "Ġد ÙĪراÙĨ", + "ĠدÙĪ راÙĨ", + "ĠدÙĪر اÙĨ", + "å½± éŁ¿", + "el idir", + "eli dir", + "âĢŀ N", + "es iyle", + "esi yle", + "ÑĢем енно", + "ÑĢе менно", + "Ġilet iÅŁim", + "ม à¹Ģà¸ķ", + "以 åīį", + "ãĥĭ ãĥ¼", + "鼻 話", + "à¹Ĥ à¸ŀ", + "ov ky", + "Ġза мÑĸ", + "Ġзам Ñĸ", + "Ġव à¤ķ", + " Ļ", + "ĠвÑĸй ни", + "Ġol madıģı", + "Ġolm adıģı", + "Ġolmadı ģı", + "Ġolma dıģı", + "æ¢ ģ", + "ĠТ еп", + "ĠТе п", + "nÄĽ te", + "nÄĽt e", + "èħ ķ", + "ìĤ¬ ëĬĶ", + "m amak", + "ma mak", + "mam ak", + "Ġc iz", + "Ġci z", + "æ£ Ĵ", + "Ġ ï¼ı:", + "Ġï¼ı :", + "éģĭ åĭķ", + "ĠÙĩ ÙĨا", + "ĠÙĩÙĨ ا", + "Ġ ê°ij", + "Ġê° ij", + "ĠÙĩÙĨÚ¯ اÙħ", + "ĠuÄŁ ra", + "å½ ¦", + "Ġob jekt", + "Ġobj ekt", + "ãģ¨ ãģĻãĤĭ", + "åĽ½ åĨħ", + "ĠдеÑĢжав и", + "ĠдеÑĢж ави", + "Ġ èĮ", + "Ġè Į", + "Ġulus lararası", + "Ù £", + "Ġmut lak", + "Ġз обов", + "Ġ γεν", + "Ġγ εν", + "Ġγε ν", + "à¹Ħà¸Ł à¸Ł", + "Ġözg ür", + "íĦ ¸", + "Ġвипад кÑĥ", + "Ġà¤ķ ब", + "ĠاÙĦ خط", + "ĠاÙĦØ® Ø·", + "θη καν", + "ï¼Į æĬĬ", + "ÑıÑĤ ÑĤÑı", + "Ġolmadı ģını", + "Ġolma dıģını", + "Âłk W", + "ĠnÄĽkter ých", + "ãĥĩ ãĥ«", + "æ¤į çī©", + "μι λοÏĤ", + "ÐIJÑĢ ÑħÑĸв", + "ĠТ о", + "èĸ ¬", + "ÑģÑĤв иÑı", + "Ġ Ø®ÙĪاست", + "ĠØ®ÙĪ است", + "олог ÑĸÑĹ", + "ÙĪ اÙĩد", + "ÙĪاÙĩ د", + "ÙĪا Ùĩد", + "Ġ нак", + "Ġн ак", + "Ġна к", + "ĠкоÑĤоÑĢ ÑĥÑİ", + "Ġद à¤ķ", + "âĢŀ M", + "λ ια", + "λι α", + "æŃ ²", + "第 åĽĽ", + "à¤¾à¤ľ स", + "Ġ( «", + "Ġth ẻ", + "、 Ċ", + "ç£ ģ", + "Ġ ÙĦÙĤ", + "ĠÙĦ ÙĤ", + "Ġ ìķĶ", + "Ġìķ Ķ", + "Ġн ового", + "Ġнов ого", + "ĠìķĦ 주", + "Ġ ëIJĺìĸ´", + "ĠëIJĺ ìĸ´", + "Ġo lun", + "Ġol un", + "à ¾", + "Ġkar iy", + "Ġkari y", + "ĠØŃ Ø³Ø¨", + "ĠØŃس ب", + "ĠìĿĺ 미", + ". Ðľ", + "Ġoz naÄį", + "ÙĦ سÙĦ", + "ÙĦس ÙĦ", + "ĠÐĴ ид", + "ĠÐĴи д", + "ë¡ľ ëĤĺ", + "à¥įà¤Ł म", + "í ľ´", + "Ġbilg isayar", + "ìĿ¸ ì§Ģ", + "Ġв ов", + "Ġво в", + "nict vÃŃm", + "nictvÃŃ m", + "า à¸Ńย", + "าà¸Ń ย", + "Ġشخص ÛĮ", + "п Ñĸон", + "æľ¬ å½ĵ", + "Ġب ÙĢ", + "ĠмаÑģ ло", + "ĠPh át", + "Ġ ба", + "Ġб а", + "алÑĮ номÑĥ", + "алÑĮно мÑĥ", + "алÑĮном Ñĥ", + "社 åĮº", + "Ġ Ò", + ": ::|", + ":: :|", + "::: |", + "ê ´", + "Ġ ä¸ĥ", + "Ġä¸ ĥ", + "ĠÙĪ اÙĦد", + "ĠÙĪاÙĦ د", + "ни ке", + "ник е", + "à¸Ń ลล", + "à¸Ńล ล", + "Ġyer leÅŁ", + "Ġkom bin", + "Ġkomb in", + "u Å¡", + "Ġо ÑĤÑĢи", + "ĠоÑĤ ÑĢи", + "ä¹ Į", + "iÅŁ ti", + "Ġs óng", + "Ġsó ng", + "λ ηÏĤ", + "λη ÏĤ", + "Ġк ÑĥÑĢÑģ", + "ĠкÑĥÑĢ Ñģ", + "à¹Ī าà¸Ħ", + "à¹Īา à¸Ħ", + "Ġ ÙĬس", + "ĠÙĬ س", + "Ġ داÙħ", + "Ġد اÙħ", + "çĴ° å¢ĥ", + "Ñĩ енко", + "Ñĩен ко", + "ãĢį ãģ®", + "ĠmÃŃ sta", + "ĠmÃŃst a", + "ĠÑĦ оÑĤ", + "ĠpÅĻÃŃ zn", + "ĠÑĢ аза", + "ĠÑĢаз а", + "ĠÑĢа за", + "ç´ «", + "lá da", + "lád a", + "ĠÑģпеÑĨи алиÑģÑĤ", + "ĠبÛĮ ÙħارÛĮ", + "ĠبÛĮÙħ ارÛĮ", + "ĠبÛĮÙħار ÛĮ", + "Ġëĵ £", + "çĭ Ĺ", + "ÙĪ ÙĪ", + "ан ÑĸÑĤ", + "анÑĸ ÑĤ", + "ĠدÙĨ باÙĦ", + "ĠÙħجÙħÙĪع Ø©", + "ÃŃ na", + "ÃŃn a", + "ĠH alk", + "ĠHa lk", + "ĠHal k", + "á jem", + "áj em", + "enÃŃ ze", + "Ġim z", + "« ng", + "Ġ ÎķÎł", + "ĠÎķ Îł", + "ĠÙħ Ùĩد", + "ĠÙħÙĩ د", + "ìľĦìĽIJ íļĮ", + "Ġìľł íĺķ", + "ाप स", + "Ġje ž", + "ан Ñĸз", + "анÑĸ з", + "иÑĤ ай", + "иÑĤа й", + "á¿ ĸ", + "ir ler", + "irl er", + "기 ê°Ħ", + "Ġ воÑĢ", + "Ġв оÑĢ", + "Ġво ÑĢ", + "Ġ Ïİ", + "ĠÏ İ", + "Ġpo zn", + "Ġpoz n", + "Ġ ساÙĨ", + "Ġس اÙĨ", + "å ¯¿", + "å¯ ¿", + "æĸ¯ çī¹", + "Ġtu rist", + "Ġtur ist", + "ĠìŀIJ ìľł", + "à¥Ģ à¤ĸ", + "μ με", + "μμ ε", + "an sı", + "ans ı", + "ìĨĮ ëħĦ", + "Ġted avi", + "Ġtedav i", + "Ñĩ еÑģÑĤва", + "Ñĩе ÑģÑĤва", + "å£ ĵ", + "о ве", + "ов е", + "ï¼Į çľĭ", + "ĠпоÑģл Ñĥг", + "ĠпоÑģ лÑĥг", + "ĠÑĤÑĢ анÑģ", + "ĠÑĤÑĢан Ñģ", + "Ġz áz", + "Ġzá z", + "æĪ ´", + "Ġм она", + "Ġмон а", + "Ġмо на", + "ิ à¹Ģà¸Ħราะห", + "ĠÙĨ ÛĮÙħ", + "ĠÙĨÛĮ Ùħ", + "ĠìĤ¬ëŀĮ ìĿ´", + "a hat", + "ah at", + "aha t", + "Ïħ κ", + "ĠоÑĤ каз", + "ĠоÑĤк аз", + "ĠÐĴолод ими", + "ĠС к", + "िà¤ķ त", + "å¦ ĸ", + "Ġëĭ¤ìļ´ ë¡ľëĵľ", + "ìĺģ ìĥģ", + "Ġन à¤Ī", + "c ete", + "ce te", + "ĠгÑĢи б", + "ĠгÑĢ иб", + "ece ÄŁini", + "eceÄŁi ni", + "Ġç oÄŁu", + "ĠçoÄŁ u", + "ĠмаÑĤеÑĢи ала", + "ĠмаÑĤеÑĢиал а", + "ứ t", + "Ġz aten", + "Ġza ten", + "Ġzat en", + "ĠF RA", + "ĠFR A", + "ĠBir liÄŁi", + "Ġs itesi", + "Ġsit esi", + "Ġsite si", + "Ġsites i", + "Ġ åĶ", + "Ġå Ķ", + "ĠÐĴ ол", + "ĠÐĴо л", + "Âł PS", + "ÂłP S", + "ा लत", + "ाल त", + "Ġ баÑĩ", + "Ġб аÑĩ", + "Ġба Ñĩ", + "алÑĸ заÑĨÑĸÑĹ", + "алÑĸз аÑĨÑĸÑĹ", + "ĠS lov", + "ĠSl ov", + "ĠSlo v", + "ç³ ĸ", + "ĠговоÑĢ иÑĤ", + "Ġв вед", + "Ġвв ед", + "ุà¸ķ à¸ļà¸Ńล", + "ãģĨ ãģ¡", + "Ġyap tık", + "Ġyaptı k", + "Ġìłķ ì¹ĺ", + "ê°ľ 를", + "à¥Ī सल", + "à¥Īस ल", + "ج ÙĬÙĦ", + "جÙĬ ÙĦ", + "ĠзаÑģÑĤоÑģ ов", + "è¿ «", + "ĠKur ul", + "ĠNas ıl", + "ĠнапÑĢÑı м", + "Ġ ä½į", + "à¹Į à¸ļ", + "Ġ éģĵ", + "Ġéģ ĵ", + "Ġни же", + "Ġниж е", + "Ġк оÑģÑĤ", + "Ġко ÑģÑĤ", + "ĠкоÑģ ÑĤ", + "ظ Ùĩر", + "ظÙĩ ر", + "Т а", + "ì§ Ŀ", + "Ġön ünde", + "ж Ñĸ", + "Ġاجر اÛĮ", + "Ġاجرا ÛĮ", + "ĠоÑĢган Ñĸв", + "ĠоÑĢганÑĸ в", + "v ise", + "vis e", + "vi se", + "Ġ ìĿĦ", + "ĠìĿ Ħ", + "à¸ķ รà¸ĩ", + "à¸ķร à¸ĩ", + "Ú©ÙĨ ÙĪÙĨ", + "Ġdlou ho", + "Ġdlouh o", + "Ðŀ ÐĿ", + "Ġ ìľ¡", + "Ġìľ ¡", + "缮 æłĩ", + "ë¯ Ģë¡ľ", + "ï¼ıï¼ıï¼ıï¼ı ï¼ıï¼ıï¼ıï¼ı", + "ĠпоÑĩ емÑĥ", + "æķħ äºĭ", + "ÑĤ еÑģÑĮ", + "ÑĤе ÑģÑĮ", + "ĠÙĤ ÙĦب", + "ĠÙĤÙĦ ب", + "Ġت جÙĩ", + "Ġتج Ùĩ", + "i lendir", + "il endir", + "ilen dir", + "Ġи гÑĢа", + "Ġиг ÑĢа", + "ĠÐĶ он", + "ĠÐĶо н", + "ĠpÅĻÃŃ jem", + "è¦ Ĩ", + "С п", + "- ни", + "on se", + "ons e", + "и ной", + "ин ой", + "о Ñĩного", + "оÑĩ ного", + "оÑĩно го", + "ا ساÙĨ", + "اس اÙĨ", + "ĠполÑĥÑĩ иÑĤÑĮ", + "ĠполÑĥ ÑĩиÑĤÑĮ", + "ÑĤ ап", + "ÑĤа п", + "ĠL ý", + "ĠÃĤ u", + "Ġh üc", + "e bek", + "eb ek", + "ebe k", + "ĠY ayın", + "æĹ ĭ", + "ัà¸Ļ à¸Ĺร", + "ัà¸Ļà¸Ĺ ร", + "Ġвикон ав", + "Ġвико нав", + "Ġs ông", + "à¥ģ à¤ľ", + "à¥ģठľ", + "ĠÐĹ Ð°Ð³", + "ĠÐĹа г", + "¤ ëĭ¤", + "Ġc Å©", + "ĠÚ¯ رÙħ", + "Ġگر Ùħ", + "ä¼ ı", + "ãģ« ãģĻãĤĭ", + "- Ф", + "Ġ ÙĤÙħ", + "ĠÙĤ Ùħ", + "Ġo lacaÄŁ", + "Ġol acaÄŁ", + "æĿ¥ äºĨ", + "æĭĽ èģĺ", + "ĠÐĿаÑģ еленнÑı", + "Ġ ìĺģìĸ´", + "Ġìĺģ ìĸ´", + "Ġ æѤ", + "ĠæŃ ¤", + "Ġب دÙĨ", + "Ġبد ÙĨ", + "Û² Û¸", + "оÑĢ аÑĤив", + "оÑĢа ÑĤив", + "ï¼ ³", + "Ġneby lo", + "Ġnebyl o", + "ĠÑĥ ÑĩиÑĤ", + "ĠÑĥÑĩ иÑĤ", + "æĿ ľ", + "Ġд анÑĸ", + "Ġда нÑĸ", + "Ġдан Ñĸ", + "Ġsp otÅĻeb", + "Ġspot ÅĻeb", + "ãĥ¼ ãĥĨãĤ£", + "ãĥ¼ãĥĨ ãĤ£", + "ен нÑĥÑİ", + "ê¹Į ìļĶ", + "v em", + "ve m", + "P ÅĻÃŃ", + "PÅĻ ÃŃ", + "Ġy andan", + "Ġyan dan", + "é¼ ĵ", + "Ġدست ÙĪر", + "Ġدس تÙĪر", + "Ġhaf if", + "h ů", + "Ġv áž", + "Ġvá ž", + "ĠìķĦ ì§ģ", + "Ùı ر", + "Ġ ла", + "Ġл а", + "ëł ī", + "า à¸Ľà¸£à¸°", + "à¸²à¸Ľ ระ", + "lık lar", + "lıkla r", + "ĠÑģÑĤанд аÑĢÑĤ", + "à¸Ń à¹ĥห", + "å¥ ´", + "ĠоÑĤ п", + "âĪ ł", + "ãĥ¼ ãĥĢ", + "ãĥ¼ãĥ Ģ", + "ch áze", + "cház e", + "Ġê·¸ ëłĩê²Į", + "Ġê·¸ëłĩ ê²Į", + "os tel", + "ost el", + "oste l", + "Ġгал Ñĥз", + "â k", + "еÑĨ ÑĤ", + "ëŀij ìĬ¤", + "ĠÄį ist", + "ĠÄįi st", + "ÑĢ ана", + "ÑĢа на", + "ÑĢан а", + "Ġv ững", + "Ġvữ ng", + "Ġs eni", + "Ġse ni", + "Ġsen i", + "Ġg óc", + "Ġgó c", + "ÏĨ ÏĮ", + "á nu", + "án u", + "Ġ öt", + "Ġö t", + "Ġs óc", + "Ġsó c", + "ãģĦ ãģ®", + "ĠÑģк лада", + "ĠÑģклад а", + "ÐIJÑĢÑħÑĸв овано", + "ĠìĿ´ ë²Ī", + "ãĤ¹ ãģ®", + "il ebilir", + "ile bilir", + "ï½Ģ ãĥ½", + "ีย à¸į", + "Ġκα ὶ", + "Ġë ¯¿", + "æĽ´ å¤ļ", + "ıs ının", + "ısını n", + "ĠGi ám", + "ĠGiá m", + "æŃ£ å¼ı", + "Ïĥ μÏĮ", + "Ïĥμ ÏĮ", + "Ġarch it", + "Ġarc hit", + "Ġ ï½²", + "Ġï½ ²", + "Ñĩ аÑİÑĤÑģÑı", + "Ñĩа ÑİÑĤÑģÑı", + "ÑĩаÑİÑĤ ÑģÑı", + "ë²Ħ ì§Ģ", + "ãĤ¤ ãĥ¤", + "é«ĺ æł¡", + "è¨ ³", + "ĠÙħ ÛĮÚ©", + "ĠÙħÛĮ Ú©", + "Ġ æĥħ", + "Ġæĥ ħ", + "Ġ pha", + "Ġp ha", + "Ġph a", + "太 éĥİ", + "à¸ŀระ ราà¸Ĭ", + "ÙĤ ÙĬØ©", + "ÙĤÙĬ Ø©", + "ĠÑĥ лÑĥÑĩ", + "ĠÑĥл ÑĥÑĩ", + "ÑģÑĤв ÑĥеÑĤ", + "ÑģÑĤвÑĥ еÑĤ", + "Ġk eÅŁ", + "Ġke ÅŁ", + "é«ĺ çŃī", + "Ġs Ỽm", + "Ïģ κε", + "Ïģκ ε", + "μ οÏģ", + "μο Ïģ", + "Ġzá stup", + "o zÃŃ", + "oz ÃŃ", + "Ġm ili", + "Ġmil i", + "Ġmi li", + "Ġмог ли", + "Ġз ÑĢозÑĥм", + "Ġباش ÛĮد", + "Ġak ci", + "Ġд ÑĢа", + "ĠдÑĢ а", + "Ġα Ïģι", + "ĠαÏģ ι", + "ãģĭ ãĤīãģ®", + "ãģĭãĤī ãģ®", + "å¯ Ĵ", + "ĠZ aman", + "ĠZa man", + "ĠZam an", + "ĠÑĸ де", + "ĠÑĸд е", + "Ġ ãĢĢĠ", + "ĠãĢĢ Ġ", + "Ġk lu", + "Ġkl u", + "ak lı", + "à¥ĩ à¤ļ", + "à¥ĩठļ", + "ĠÑģвоб од", + "س اÙħ", + "Ġ ов", + "Ġо в", + "Ġu byt", + "Ġub yt", + "éĩĩ çĶ¨", + "Ġdavran Ä±ÅŁ", + "ĠnabÃŃ zÃŃ", + "ĠÐij Ñĥд", + "Ġ Ïī", + "ĠÏ ī", + "ĠاÙĦ رØŃ", + "ĠاÙĦر ØŃ", + "ั à¸ķà¸Ļ", + "ัà¸ķ à¸Ļ", + "и ме", + "им е", + "Ġت ÙĦÙĥ", + "ĠتÙĦ Ùĥ", + "ت Ùħع", + "تÙħ ع", + "Ġад миниÑģÑĤÑĢа", + "Ġzor unda", + "Ġzorun da", + "ĠÙĨ سبة", + "ĠÙĨسب Ø©", + "ĠÙĨس بة", + "ĠصÙĨع تÛĮ", + "ĠصÙĨعت ÛĮ", + "ĠÑĦÑĥн да", + "éı ¡", + "Ġpo tom", + "Ġpot om", + "Ġп ÑĢеÑģÑĤ", + "ĠпÑĢ еÑģÑĤ", + "ĠпÑĢе ÑģÑĤ", + "ĠпÑĢеÑģ ÑĤ", + "Ġsı rada", + "Ġsır ada", + "Ġsıra da", + "Ġ ayar", + "Ġa yar", + "Ġay ar", + "ا ÙĤÙĦ", + "اÙĤ ÙĦ", + "æº ª", + "ĠØ¢ÙĤ اÛĮ", + "ĠпеÑĢе Ñħод", + "ĠпÑĢакÑĤи ÑĩеÑģки", + "é» ĥ", + "ĠÑĥ Ñħод", + "ĠÑĥÑħ од", + "ĠÙħ تÙģ", + "ĠÙħت Ùģ", + "Ġsiyas i", + "Ġпо ÑĤен", + "ĠпоÑĤ ен", + "Ùİ Ùģ", + "ĠÐĽ Ñĥ", + "ĠконÑĤÑĢ олÑĮ", + "ĠÑģказ аÑĤÑĮ", + "à¥Ģ à¤ķरण", + "à¥Ģà¤ķ रण", + "åħ¨ çIJĥ", + "Û² Û¶", + "Ġt oto", + "Ġto to", + "Ġtot o", + "Ġ ÙĪد", + "ĠÙĪ د", + "ãĤ¿ãĤ¤ ãĥĹ", + "åľ į", + "å¼ķ çĶ¨", + "ï¼ £", + "èĬ ¸", + "ä»ĭ ç»į", + "ĠÑĤеÑĢÑĢиÑĤоÑĢ ии", + "æĹ¥ ãģ«", + "m ÃŃt", + "mÃŃ t", + "am ız", + "amı z", + "ìĿ´ ìĸ´", + "Ġyar Ä±ÅŁ", + "Ġyarı ÅŁ", + "Ġg üc", + "Ġgü c", + "Ġ Ïĩα", + "ĠÏĩ α", + "ัà¸Ļย ายà¸Ļ", + "ãĤĴ è¡Į", + "Ġm illi", + "Ġmill i", + "Ġmil li", + "Ġmi lli", + "Ġ çı¾", + "Ġçı ¾", + "K dyž", + "m azon", + "ma zon", + "maz on", + "ë³´ ëĤ´ê¸°", + "ĠÑĤÑĢÑĥ дов", + "ĠÑĤÑĢÑĥд ов", + "é£ ¾", + "Ġви ник", + "Ġвин ик", + "ĠÙĪز ارت", + "ĠÙĪزار ت", + "éĩĮ çļĦ", + "м аз", + "ма з", + "ĠR US", + "ĠRU S", + "е кÑĤÑĥ", + "ек ÑĤÑĥ", + "екÑĤ Ñĥ", + "Ġع اش", + "Ġk once", + "Ġko nce", + "Ġkon ce", + "ãĤĪãģĨ ãģ§ãģĻ", + "Ġмал ÑĭÑĪ", + "m eni", + "me ni", + "men i", + "е Ñģа", + "еÑģ а", + "ا ضÛĮ", + "اض ÛĮ", + "Ġb rat", + "Ġbr at", + "Ġbra t", + "ĠвÑĸд ноÑģ", + "θ εÏģ", + "θε Ïģ", + "ĠЧ ем", + "æij ĩ", + "ĠÙħ ادر", + "ĠÙħا در", + "ĠÙħاد ر", + "çĶ¨ åĵģ", + "ĠÙħØŃ Ø§Ùģظ", + "Ġm yÅ¡", + "Ġmy Å¡", + "ج ع", + "Ġis im", + "Ġi sim", + "Ġisi m", + "æ³ Ĭ", + "ıl maz", + "ĠÎĽ α", + "å¯ ©", + "Ġay ır", + "е ними", + "ен ими", + "ени ми", + "еним и", + "à¥ĩह तर", + "åľ Ĩ", + "ãģ¾ ãģ£ãģŁ", + "çĶ¢ åĵģ", + "ĠÑĸнÑĦоÑĢма ÑĨÑĸÑĹ", + "Ġt ủ", + "Ġtá» §", + "สม à¸ļ", + "Ġst ÅĻ", + "Ġë°ľ íijľ", + "а ÑĢÑĮ", + "аÑĢ ÑĮ", + "ĠC ao", + "ĠCa o", + "Ρ ÎĻ", + "à¸ģาร à¸Ī", + "Ġпод Ñĥм", + "ä»ķ äºĭ", + "ĠÐļ ÑĢоме", + "Ġ ìĹĶ", + "ĠìĹ Ķ", + "Ġ Ñĥда", + "ĠÑĥ да", + "ĠÑĥд а", + "ĠавÑĤом аÑĤи", + "Ġ à¸Ħà¸ĵะ", + "Ġà¸Ħ à¸ĵะ", + "ĠK iÅŁ", + "ĠKi ÅŁ", + "ĠÑģоÑģÑĤоÑı ние", + "l isi", + "li si", + "lis i", + "Ġëĸ ¨ìĸ´", + "oot ball", + "Ġ íį¼", + "Ġí į¼", + "Ġ лим", + "Ġл им", + "Ġли м", + "Ġç erç", + "ÙĪÙĦ ÙĬÙĪ", + "ÙĪÙĦÙĬ ÙĪ", + "Ġs lož", + "Ġsl ož", + "Ġslo ž", + "Ġ 먼", + "Ġë¨ ¼", + "ร à¸Ńà¸ĩ", + "ÑĪ ее", + "ÑĪе е", + "âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦ âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦âĢ¦", + "ãģĵ ãģ¡ãĤī", + "о ÑĢÑĭ", + "оÑĢ Ñĭ", + "çĥ Ł", + "Âł F", + "а ного", + "ан ого", + "ано го", + "Ø« ÛĮر", + "çı į", + "å¸Ĥ åł´", + "vÄĽ dom", + "vÄĽd om", + "ì² ¨ë¶Ģ", + "ĠìĤ¬ ê±´", + "ï¾ Į", + "à¹ĥ à¸Ļว", + "à¹ĥà¸Ļ ว", + "Ġzvlá Å¡t", + "ÏĦ εÏħ", + "ÏĦε Ïħ", + "Ġкак ие", + "Ġка кие", + "ÏĨοÏģ ά", + "ÏĨο Ïģά", + "åĦ Ħ", + "Ġzp ÄĽt", + "íķľ íħĮ", + "Ġz vol", + "Ġzv ol", + "Ġ çĹ", + "Ġç Ĺ", + "ÑĢа нениÑı", + "ÑĢан ениÑı", + "ĠسÛĮ است", + "ĠÐļ оли", + "ĠÐļол и", + "ĠÐļо ли", + "ĠоÑĢганиз ма", + "ĠоÑĢганизм а", + "ĠÑıнва ÑĢÑı", + "Ġد ادÙĨ", + "Ġداد ÙĨ", + "п ÑĢа", + "пÑĢ а", + "ï¼Į ä»ĸ们", + "ï¼Įä»ĸ 们", + "æijĺ è¦ģ", + "Ġqu ần", + "ÙĬ ÙĪÙĨ", + "ÙĬÙĪ ÙĨ", + "Ġви Ñħов", + "Âł à¹Ģà¸Ķ", + "Ġ елем", + "Ġе лем", + "eb ilecek", + "Ġд оÑĩ", + "Ġдо Ñĩ", + "Ġб лаг", + "Ġбл аг", + "Ġбла г", + "ĠÑı й", + "ad nÃŃ", + "Ġzá roveÅĪ", + "en stvÃŃ", + "âĢĮ اÙĨ", + "ãģķãĤĵ ãģ¯", + "/ |", + "ĠاÙĦع اÙħØ©", + "ĠاÙĦعاÙħ Ø©", + "éł ¼", + "Ġخدا ÙĪÙĨد", + "Ġخد اÙĪÙĨد", + "н ам", + "на м", + "ĠÑģ лиз", + "ĠÑģл из", + "æ¶ ī", + "ร ษ", + "e ÅŁtir", + "eÅŁ tir", + "ĠÙĨ دار", + "ĠÙĨد ار", + "ร าà¸Ħ", + "è¨Ģ ãĤı", + "Ġ èŃ", + "Ġè Ń", + "Ġк ÑĢиÑĤ", + "ĠкÑĢи ÑĤ", + "ĠвоздÑĥ Ñħа", + "ĠвоздÑĥÑħ а", + "Ġà¤Ĺ त", + "Ġprá vo", + "Ġpráv o", + "à¥ĭष ण", + "Ġs ắp", + "íı Ń", + "Ġص رÙģ", + "ĠراÛĮ گاÙĨ", + "ĠоÑĤ к", + "ëĨ ĵ", + "ĠÑģек ÑĢеÑĤ", + "Ä° n", + "on avir", + "ona vir", + "ĠV ys", + "ĠVy s", + "ĠbaÅŁ lat", + "ĠMu ham", + "ĠлиÑģÑĤ оп", + "ĠT icaret", + "ĠTi caret", + "ĠTic aret", + "Ġad landır", + "ĠÐĶ миÑĤ", + "Ïĥμ οÏį", + "Ïĥμο Ïį", + "ä¾ µ", + "ìĭľ ëĬĶ", + "à¹ģà¸Ľ ลà¸ĩ", + "ın ıza", + "ını za", + "ınız a", + "- г", + "и ÑĩноÑĹ", + "иÑĩ ноÑĹ", + "иÑĩно ÑĹ", + "Ñĥ ÑĢи", + "ÑĥÑĢ и", + "U Z", + "ìĽ ł", + "Ġتبد ÛĮÙĦ", + "æ º«", + "æº «", + "ĠÑĢам каÑħ", + "Ġn ét", + "Ġné t", + "æ² ¿", + "Ġroz Å¡ÃŃ", + "Ġस प", + "ĠÑĤак е", + "ĠÑĤа ке", + "ÑĢ аÑĩ", + "ÑĢа Ñĩ", + "ĠاÙĦ ÙĤد", + "ĠاÙĦÙĤ د", + "íķĻ ê³¼", + "Ñĥв аннÑıм", + "ÑĥваннÑı м", + "Ġm ám", + "Ġmá m", + "ë¡ ¯", + "á½ IJ", + "Ġet kili", + "Ġetk ili", + "Ġetkil i", + "Ġetki li", + "Ġار تÙģ", + "Ġtechn olog", + "Ġtechno log", + "Ġ ì½ĺ", + "Ġì½ ĺ", + "Ġت ÙĥÙĬÙĬÙģ", + "ĠpÅĻ ece", + "ĠpÅĻe ce", + "家 åºŃ", + "Ġ ãģı", + "âĶ ´", + "íģ ¼", + "ĠÎľ ά", + "à¹Ģ à¸ķร", + "à¹Ģà¸ķ ร", + "ĠÑģÑĤанов иÑĤÑģÑı", + "ç«ĭ ãģ¡", + "Ġ éĸĭ", + "Ġéĸ ĭ", + "ĠÄ° yi", + "ĠnÄĽkter é", + "ĠÑĢоб оÑĤ", + "ĠÄIJ Æ°á»Ŀng", + "ĠاÙĦ اج", + "Ġsp eci", + "Ġspec i", + "Ġspe ci", + "çī¹ åĪ«", + "åŃ Ŀ", + "âĢĮ گذ", + "âĢĮÚ¯ Ø°", + "a lıģı", + "al ıģı", + "alı ģı", + "Ġм иÑĢа", + "Ġми ÑĢа", + "ĠмиÑĢ а", + "í İĺìĿ´ì§Ģ", + "íİĺ ìĿ´ì§Ģ", + "Ø® Ùģ", + "ãĤª ãĥª", + "Ġس ÛĮÙħ", + "ĠسÛĮ Ùħ", + "Ġìĸ´ ëĬIJ", + "алÑĮ нÑĥ", + "Ñĩ ний", + "ümüz de", + "æĻº èĥ½", + "ý n", + "ĠتÙĤÙĪ ÛĮت", + "Ġп ÑĢиг", + "ĠпÑĢ иг", + "ĠпÑĢи г", + "ĠгÑĢÑĥпп Ñĭ", + "am ı", + "γ οÏį", + "γο Ïį", + "оÑĢ ÑĤÑĥ", + "оÑĢÑĤ Ñĥ", + "ĠG iang", + "ĠGi ang", + "ĠGian g", + "ĠGia ng", + "ÅĻ en", + "ÅĻe n", + "Ġokol ÃŃ", + "产 ä¸ļ", + "Ġ зм", + "Ġз м", + "Ġ é¾", + "Ġé ¾", + "ÙĬ ار", + "ÙĬا ر", + "ĠاÙĦØ´ÙĬ Ø®", + "иÑĤелÑĮ нÑĭй", + "Ġ اÙĩÙħ", + "Ġا ÙĩÙħ", + "ĠاÙĩ Ùħ", + "ĠباÙĦ رÙĬاض", + "ĠÙ¾ÛĮ اÙħ", + "Ġk redi", + "Ġkr edi", + "Ġkre di", + "Ġkred i", + "ĠA rap", + "ĠAr ap", + "ĠAra p", + "Ġ ÑĢаб", + "ĠÑĢ аб", + "ĠÑĢаР±", + "ĠÑĢа б", + "ĠнекоÑĤоÑĢ ÑĭÑħ", + "ĠØŃاÙģظ Ùĩ", + "иÑĤелÑĮ ного", + "иÑĤелÑĮно го", + "Ġgerek mektedir", + "ĠD eniz", + "ĠDen iz", + "ĠتÙĦ اش", + "st agram", + "sta gram", + "stag ram", + "áv ky", + "åĬł åħ¥", + "oz or", + "ozo r", + "Ġdurum unda", + "Ġdurumu nda", + "Ġíıī ëĭ¹", + "Ġ ë´ī", + "Ġë´ ī", + "Ġp enÄĽ", + "Ġpe nÄĽ", + "Ġpen ÄĽ", + "Ú¯ اÙĨÛĮ", + "گاÙĨ ÛĮ", + "ĠK up", + "ĠKu p", + "Ġ ÑĨеÑĢ", + "ĠÑĨ еÑĢ", + "ĠÑĨе ÑĢ", + "ul ması", + "âij ł", + "ĠÑģÑĸÑĩ нÑı", + "ım ıza", + "ımız a", + "ımı za", + "å®ļ çļĦ", + "Âł ÑĤ", + "åĬŀ åħ¬", + "ìľ¼ ëĭĪ", + "ĠاÙĦ Ø¥ÙĨ", + "ĠاÙĦØ¥ ÙĨ", + "Ġ çĥ", + "Ġç ĥ", + "ãĢį ï¼Į", + "ÑĹ Ð½Ð°", + "ĠпÑĢигоÑĤов лениÑı", + "Ð ħ", + "ĠÑģ олн", + "ĠÑģол н", + "Ġë¶Ģ ìĤ°", + "æħ ¶", + "ãĤ ¾", + "v oje", + "vo je", + "voj e", + "ÛĮ دÙĨ", + "ÛĮد ÙĨ", + "ìĥĿ ëĭĺ", + "ç¹ ģ", + "á du", + "ád u", + ": ::::::::::::::", + ":: :::::::::::::", + ":::: :::::::::::", + ":::::: :::::::::", + ":::::::: :::::::", + "::: ::::::::::::", + "::::: ::::::::::", + "::::::: ::::::::", + "::::::::: ::::::", + ":::::::::: :::::", + "::::::::::: ::::", + ":::::::::::: :::", + "::::::::::::: ::", + ":::::::::::::: :", + "س ÙĨÚ¯", + "سÙĨ Ú¯", + "éĶ ĭ", + "Ġ звиÑĩай", + "Ġз виÑĩай", + "å§Ķåijĺ ä¼ļ", + "ĠμÎŃ Ïĥα", + "ĠÑĢ ождениÑı", + "æĪIJ 人", + "Ġ dÃŃl", + "Ġd ÃŃl", + "ĠdÃŃ l", + "ĠÐĶ об", + "ĠÐĶо б", + "Ġ à¹ĥà¸Ĭ", + "ÏĢ ί", + "g amber", + "gam ber", + "ĠÙĪÛĮÚĺ Ú¯ÛĮ", + "Ġ èĬ±", + "ĠèĬ ±", + "Ġb Ãły", + "ĠbÃł y", + "ĠжовÑĤ нÑı", + "åħ¬ å¼Ģ", + "ĠÑĤ оÑĩки", + "ĠÑĤо Ñĩки", + "ĠÑĤоÑĩ ки", + "ãģĤ ãģ®", + "а лÑĸв", + "ал Ñĸв", + "алÑĸ в", + "Ġch arakter", + "Ġchar akter", + "ĠÎĴ α", + "Ġzku Å¡en", + "Ġà¤Ńà¤Ĺ व", + "Ñĩ ика", + "Ñĩи ка", + "Ñĩик а", + "à¥Ģà¤Ĥ ।", + "è£ ı", + "åijĬ è¯ī", + "iy atı", + "iya tı", + "iyat ı", + "ĠÑĨ елÑĮ", + "ĠÑĨе лÑĮ", + "ĠÑĨел ÑĮ", + "Ġ ìĬĪ", + "ĠìĬ Ī", + "а ÑĢд", + "аÑĢ д", + "ĠÃľl ke", + "Ġpro since", + "Ġpros ince", + "ĠÙĨ گاÙĩ", + "ĠÙĨÚ¯ اÙĩ", + "ãĢĮ ãģĬ", + "ÎŁ Τ", + "ÎŁÎ ¤", + "ìĦľ ëĬĶ", + "ÙĪ گر", + "ض اÙĨ", + "ضا ÙĨ", + "Ġdů sled", + "çIJ ´", + "à¸ķำ à¹ģหà¸Ļ", + "к ÑĤÑĸв", + "кÑĤ Ñĸв", + "lád á", + "á¿ Ĩ", + "ĠD oÄŁu", + "ĠDo ÄŁu", + "ĠDoÄŁ u", + "ãģij ãĤĮãģ°", + "缮 ãĤĴ", + "Ġ 缴", + "ĠçĽ ´", + "æ Ľ°", + "æĽ °", + "ĠвÑĤоÑĢ ой", + "Ġг лÑĥ", + "ĠìĿ ½", + "기 ì¤Ģ", + "Ġma dde", + "Ġmad de", + "Ġmadd e", + "Ġjed né", + "Ġjedn é", + "Ġо ÑĦÑĸ", + "ìĭĿ ìĿĦ", + "Ġch út", + "Ġchú t", + "åĩº ãģĹãģŁ", + "åĩºãģĹ ãģŁ", + "и ÑĩеÑģкаÑı", + "иÑĩеÑģ каÑı", + "Ġ лок", + "Ġл ок", + "Ġal tı", + "Ġalt ı", + "ëĵľ ëĬĶ", + "ey gamber", + "ĠÑģв ое", + "ĠÑģво е", + "ĠtaÅŁ ım", + "ĠÑĤо Ñīо", + "Ġgeç ti", + "Ġpr emi", + "Ġpre mi", + "Ġprem i", + "ĠMeh met", + "ï¼Į åĽłæѤ", + "ï¼ĮåĽł æѤ", + "ί κη", + "ίκ η", + "Ġönce ki", + "Ġönc eki", + "Ġ à¤ķन", + "Ġà¤ķ न", + "ĠÑĤемп еÑĢаÑĤÑĥÑĢа", + "ĠÑĤемпеÑĢаÑĤÑĥ ÑĢа", + "éĺ ´", + "Ġìĸ¼ ë§Ī", + "Ø´ ب", + "á ky", + "ák y", + "ãĢĢ V", + "воÑĢ еннÑı", + "l asyon", + "las yon", + "Ġд оказ", + "Ġдо каз", + "Ġдок аз", + "Ġëľ »", + "Ġоб лиÑĩ", + "Ġобл иÑĩ", + "ÎĻ ÎijÎļ", + "ÎĻÎij Îļ", + "Ġ ÑĢазд", + "ĠÑĢаз д", + "ĠÑĢа зд", + "ï¼Į 为", + "å® ½", + "Ġk orum", + "Ġko rum", + "Ġkor um", + "åķĬ åķĬ", + "ĠÅĻe kla", + "ĠÅĻekl a", + "ĠÅĻek la", + "ãĥĹ ãĥ¬", + "Ġв аÑĢÑĤ", + "ĠваÑĢ ÑĤ", + "ĠпÑĢоблем Ñĭ", + "Ġ ä½ł", + "Ġth Æ¡m", + "Ġta kové", + "Ġtak ové", + "Ġtako vé", + "л енÑĭ", + "лен Ñĭ", + "ле нÑĭ", + "Ġ åĪ¶", + "ĠåĪ ¶", + "Ġji ných", + "Ġjin ých", + "Ġjiný ch", + "ĠÙĨ ص", + "ĠгÑĢÑĥд нÑı", + "Ġ ãģĹ", + "иÑĤелÑĮ ной", + "иÑĤелÑĮно й", + "ĠاØŃ ØªÙħ", + "Ñİ ÑĢ", + "ÏĨ Ïħ", + "Ġ Ø´ÙħاÙĦÛĮ", + "ĠØ´Ùħ اÙĦÛĮ", + "ĠØ´Ùħا ÙĦÛĮ", + "ĠØ´ÙħاÙĦ ÛĮ", + "Ġ ì»´", + "Ġì» ´", + "acaÄŁ ız", + "acaģı z", + "ì§Ģ ë§ī", + "ĠÑĦин анÑģов", + "Ġ ê·¹", + "Ġê· ¹", + "ĠÚĨ ÛĮزÛĮ", + "ĠÚĨÛĮز ÛĮ", + "à¥Ģ à¤Ľ", + "ص ات", + "ान म", + "Ġв озможно", + "Ġвозмож но", + "è¨ İ", + "çĦ ¦", + "ĠاÙĦبÙĦ د", + "Ġ çĶ³åįļ", + "ç¥ ¥", + "Ġë°Ķ ëĿ¼", + "Ú¯ ÛĮر", + "Ú¯ÛĮ ر", + "Ûµ Û°", + "μι οÏħÏģγ", + "ĠpÅĻed sed", + "ç»ı èIJ¥", + "å§ ij", + "e mey", + "em ey", + "eme y", + "ĠÙĨ ÙĪÙģ", + "ĠÙĨÙĪ Ùģ", + "å¾ ½", + "Ġprá va", + "Ġpráv a", + "Ġво обÑīе", + "Ġ íĭ°", + "Ġíĭ °", + "Ġب Ø£ÙĨ", + "Ġبأ ÙĨ", + "ĠFr anti", + "ĠFran ti", + "ĠP aÅŁa", + "ĠPa ÅŁa", + "ĠÙ¾ ست", + "Ġپس ت", + "k ân", + "ĠÑģиг н", + "Ġd ần", + "æ IJľ", + "æIJ ľ", + "Ġr oky", + "Ġro ky", + "Ġrok y", + "Ùĥ ÙĪر", + "ÙĥÙĪ ر", + "ĠÎĶ ή", + "али заÑĨии", + "ализ аÑĨии", + "ализа ÑĨии", + "ä¼ł å¥ĩ", + "ı da", + "lÃŃ b", + "ĠÑĢÑĸв нÑı", + "Ġн оÑı", + "Ġно Ñı", + "bÄĽ hu", + "bÄĽh u", + "ิà¸ĩห าà¸Ħม", + "ï¼Į åį´", + "Ġ ÑĩеÑģ", + "ĠÑĩ еÑģ", + "lan mÄ±ÅŁtır", + "lanmÄ±ÅŁ tır", + "Ġ Æ°á»Ľc", + "áv acÃŃ", + "ีฬ า", + "δ ÎŃ", + "âĢĮØ´ ÙĪÙĨد", + "Ġ ÑĢобÑĸÑĤ", + "ĠÑĢоб ÑĸÑĤ", + "Ġ å·´", + "Ġå· ´", + "ĠM ev", + "ĠMe v", + "ĠÙħرØŃ ÙĦÙĩ", + "Ġвз ÑĢоÑģ", + "ç½ ļ", + "Ġب اÙĦÙħ", + "Ġبا ÙĦÙħ", + "ĠباÙĦ Ùħ", + "Ġиз гоÑĤов", + "ĠS por", + "ĠSp or", + "ĠSpo r", + "åĦ Ģ", + "ĠاÙĦ Ø£ÙĨ", + "ĠاÙĦØ£ ÙĨ", + "à¹Īา à¸ĩà¸ģ", + "à¹Īาà¸ĩ à¸ģ", + "л аÑģÑĤи", + "ла ÑģÑĤи", + "лаÑģ ÑĤи", + "ÎŁ Îļ", + "ÎŁÎ ļ", + "Ġ Ú©ÛĮ", + "ĠÚ© ÛĮ", + "åij½ 令", + "ØŃ Ø¯Ø«", + "ØŃد Ø«", + "ÙĬ ÙĥÙĬ", + "ÙĬÙĥ ÙĬ", + "ĠпеÑĢв Ñĭй", + "ãĤ¹ ãĤ³", + "ĠÅ¡ pat", + "ĠÅ¡p at", + "Ġnik do", + "ั à¸ĩม", + "ัà¸ĩ ม", + "èµ «", + "æĺ ¨", + "Ġв Ñĥли", + "ĠвÑĥл и", + "ĠÐļ а", + "à¹Ī ละ", + "Ġsa mot", + "Ġsam ot", + "Ġsamo t", + "ĠобеÑģп е", + "ĠÙħعرÙģ ÛĮ", + "ĠÙħØŃصÙĪÙĦ ات", + "в анов", + "ва нов", + "ван ов", + "вано в", + "ĠÙħستÙĤ ÛĮÙħ", + "å¢ Ļ", + "Âł Ðļ", + "Ġд оÑĤ", + "Ġдо ÑĤ", + "z im", + "zi m", + "ÙIJ ر", + "Ġ Ø´ÙĪ", + "ĠØ´ ÙĪ", + "åľ¨ åľ°", + "Ġ çİ°", + "Ġçİ °", + "Ġ åĮĸ", + "ĠåĮ ĸ", + "ز ÙĪ", + "Ġyay gın", + "Ġо ÑĢиг", + "ĠоÑĢ иг", + "Ùı ÙĨ", + "Ġev rop", + "Ġ ï½ľ", + "Ġï½ ľ", + "Ġëħ¸ì¶ľ ëĵ±ë¡Ŀ", + "åĩ Ŀ", + "л еннÑĭÑħ", + "лен нÑĭÑħ", + "Ġje nom", + "Ġjen om", + "Ġ ЧÑĤобÑĭ", + "ĠЧ ÑĤобÑĭ", + "ĠЧÑĤо бÑĭ", + "ĠìĹĨ ëĭ¤", + "ĠìŬ ìĦ±", + "Ġres mi", + "im álnÃŃ", + "缮 ãģ®", + "s ian", + "si an", + "-ни бÑĥдÑĮ", + "ο κ", + "çĭ¬ ç«ĭ", + "ÅŁ ehir", + "åIJ IJ", + "åĪ¶ éĢł", + "Ġ ÎĶεν", + "ĠÎĶ εν", + "ĠÎĶε ν", + "ãĥĭ ãĥ¥", + "иÑĤелÑĮ нÑĭÑħ", + "Ġ ÙĥاÙħ", + "ĠÙĥ اÙħ", + "Ïģ κ", + "Ġr au", + "Ġra u", + "ĠÑģм еÑĢÑĤи", + "ĠÑģмеÑĢ ÑĤи", + "ĠÏĮ ÏĦαν", + "Ġ Tại", + "ĠT ại", + "Ġ رب", + "Ġر ب", + "ε νο", + "εν ο", + "ر دد", + "رد د", + "Ġ à¸ģระ", + "Ġà¸ģ ระ", + "Ġà¸ģร ะ", + "Ïĥ μο", + "Ïĥμ ο", + "Ġ æ¼Ķ", + "Ġæ¼ Ķ", + "ิà¸Ī à¸ģรรม", + "ĠÑĢаз ви", + "ĠÑĢазв и", + "ãĤ¹ ãĥļ", + "Ñĸ ÑĩноÑĹ", + "ÑĸÑĩ ноÑĹ", + "lá Å¡enÃŃ", + "láš enÃŃ", + "اب عة", + "ابع Ø©", + "ov ými", + "ový mi", + "ovým i", + "а нг", + "ан г", + "Ġкап ÑĸÑĤ", + "ãĢģ âĢĭ", + "íĸĪ ëįĺ", + "ĠÑĥ ÑģÑĸ", + "ĠÑĥÑģ Ñĸ", + "ย าว", + "ยา ว", + "Ø£ Ùħ", + "ãĥ© ãĥĥãĤ¯", + "Ġë ķ", + "ĠسÙĨ ÙĪات", + "ĠÑģÑĤаÑĤ ÑĮи", + "ĠÑģÑĤаÑĤÑĮ и", + "ÑĹ Ñħ", + "Ïģο Ïĩή", + "ĠØ£Ùĥ تÙĪبر", + "lan ma", + "Ġmal zem", + "ç £¨", + "ç£ ¨", + "Ġб окÑĥ", + "Ġбо кÑĥ", + "Ġбок Ñĥ", + "åŃĹ å¹ķ", + "ĠоÑĢганÑĸ за", + "ĠоÑĢганÑĸз а", + "ãĥ© ãĤ¤ãĥ³", + "ãĥ©ãĤ¤ ãĥ³", + "ĠÙħع دÙĨ", + "ĠÙħعد ÙĨ", + "çĶ· åŃIJ", + "Ġ æĤ", + "Ġæ Ĥ", + "Ạ¾", + "Ġmez iná", + "Ġmezi ná", + "и ваÑİÑĤ", + "ив аÑİÑĤ", + "ива ÑİÑĤ", + "ĠطبÛĮ عÛĮ", + "èĻ ij", + "à¤Ł र", + "Ġпод Ñģ", + "ĠÅŁ aÅŁ", + "à¸Ļ à¹Ĩ", + "ĠÅ¡ p", + "v ÄĽÅĻ", + "vÄĽ ÅĻ", + "з ÑĮ", + "ëĿ¼ ë§Ī", + "ุ à¸ĺ", + "âĢ¦ Ø·", + "리 ì§Ģ", + "âĦĸâĦĸ âĦĸâĦĸ", + "Ġb ức", + "ĠSp oj", + "ĠSpo j", + "ĠиÑģполÑĮзов ани", + "ĠиÑģполÑĮз овани", + "å·¦ åı³", + "en ler", + "ĠоÑī ÑĥÑī", + "Ġоб лÑĸ", + "Ġобл Ñĸ", + "ظ ËĨ", + "ÙĦ ÛĮس", + "ÙĦÛĮ س", + "æıIJ åįĩ", + "ĠговоÑĢ иÑĤÑĮ", + "ĠговоÑĢиÑĤ ÑĮ", + "Ġk ür", + "Ġkü r", + "Ġλ ειÏĦοÏħÏģγ", + "ла га", + "лаг а", + "ĠÑģÑĥ дÑĥ", + "ĠÑģÑĥд Ñĥ", + "Ġ 측", + "Ġì¸ ¡", + "θε Ïĥη", + "Ġ нен", + "Ġн ен", + "Ġне н", + "Ġbiç imde", + "Ġbiçim de", + "ÑĨÑĸй ноÑĹ", + "ÑĨÑĸйно ÑĹ", + "à¹Ģà¸Ħ ย", + "ĠDal Å¡ÃŃ", + "Ġи меÑĤÑĮ", + "Ġим еÑĤÑĮ", + "Ġиме ÑĤÑĮ", + "èĭ Ĺ", + "ĠÙħع رÙĪÙģ", + "Ġt ạp", + "Ġm eÅŁ", + "Ġme ÅŁ", + "Âł N", + "оÑĢ они", + "оÑĢон и", + "оÑĢо ни", + "ع Ùģ", + "à¹Ĥ รà¸ĩà¹Ģร", + "à¹Ĥรà¸ĩ à¹Ģร", + "âĶ ¬", + "Ġ à¹Ģà¸ŀราะ", + "Ġà¹Ģà¸ŀ ราะ", + "Ġèı² å¾ĭ宾", + "ÑģÑĤв енное", + "ÑģÑĤвен ное", + "ÑģÑĤвенно е", + "Ġاز دÙĪاج", + "ĠÑĦ ев", + "éł »", + "Ġ สล", + "Ġส ล", + "à¸ķ à¸Ńà¸Ļ", + "Ġ 기ê°Ħ", + "Ġ기 ê°Ħ", + "ä½ ©", + "ÏĦ ην", + "ÏĦη ν", + "ëĤ¬ ëĭ¤", + "ĠQ uy", + "ĠQu y", + "Ġë¶ Ļ", + "ĠС Ñĥд", + "и ж", + "Ġ à¹Ģà¸ģม", + "Ġà¹Ģà¸ģ ม", + "ĠÑģв ÑıÑĤ", + "ĠÑģвÑı ÑĤ", + "et ooth", + "eto oth", + "ε Ïģο", + "εÏģ ο", + "ÙĦ ÙħØ©", + "ÙĦÙħ Ø©", + "Ø´ ÙĪر", + "Ø´ÙĪ ر", + "Ġd omu", + "Ġdo mu", + "Ġdom u", + "èį Ĵ", + "m î", + "ëıĦ 를", + "ĠÑĢекомендÑĥ еÑĤÑģÑı", + "Ġsonra sında", + "Ġsonrası nda", + "Ġд нÑĸв", + "Ġç al", + "Ġça l", + "ãĤ«ãĥĨ ãĤ´ãĥª", + "Ġ еж", + "Ġе ж", + "Ġìķ ī", + "èī² çļĦ", + "âĢĻ nde", + "âĢĻn de", + "Ġ ÏĢÏīÏĤ", + "ĠÏĢ ÏīÏĤ", + "ĠÑĩеÑĤ веÑĢ", + "k ili", + "ki li", + "kil i", + "æĢ§ èĥ½", + "اد ÙĬØ©", + "ادÙĬ Ø©", + "çº ¯", + "ĠاÙĦ تش", + "ĠاÙĦت Ø´", + "ĠÑĤ ела", + "ĠÑĤе ла", + "ĠÑĤел а", + "Ġоб ÑĬем", + "ĠобÑĬ ем", + "å²Ĺ ä½į", + "Ġkon krét", + "Ġa rada", + "Ġar ada", + "Ġara da", + "ìĭľ ìĹIJ", + "Ġor anı", + "Ġoran ı", + "ر Ùĥ", + "ÐĽ ÐIJ", + "Ġ ménÄĽ", + "Ġmé nÄĽ", + "ج ÙĪÛĮ", + "جÙĪ ÛĮ", + "Ġv ợ", + "Ġvá» £", + "ĠAngiosper mae", + "èĥ İ", + "Ġh ôn", + "äºĭ æ¥Ń", + "ĠоÑĤ веÑĢ", + "ĠоÑĤв еÑĢ", + "Ġs rd", + "Ġsr d", + "Å¡ li", + "ส à¸ģ", + "æ¼ ı", + "ĠØ´ رØŃ", + "Ġشر ØŃ", + "ÑĨ Ñıми", + "ÑĨÑı ми", + "Ġs lav", + "Ġsl av", + "Ġsla v", + "Ġc eny", + "Ġce ny", + "Ġcen y", + "à¸Ń à¹Ģร", + "Ġ ÙĪÙĦد", + "ĠÙĪÙĦ د", + "Ġк оÑĢа", + "ĠкоÑĢ а", + "Ġко ÑĢа", + "Ġб ÑĢон", + ": .:.:.:.:", + ":.:.: .:.:", + ":.: .:.:.:", + "Ġne mus", + "Ġnem us", + "è¿Ļ æł·çļĦ", + "è¿Ļæł· çļĦ", + "Ġبر ÙĨاÙħج", + "Ġú plnÄĽ", + "ีà¸Ļ าà¸Ħม", + "Ġë°Ľ ìķĦ", + "με Ïģα", + "μεÏģ α", + "ç¼ ©", + "Ġn ắm", + "ĠобÑĬ ÑıÑģ", + "ĠконÑĤÑĢ олÑİ", + "á vajÃŃcÃŃ", + "ávajÃŃ cÃŃ", + "Ġk um", + "Ġku m", + "çĶ· 人", + "Ġv nitÅĻ", + "Ġب دÙĩ", + "Ġبد Ùĩ", + "Ġأب رÙĬÙĦ", + "人æ°ij åħ±åĴĮåĽ½", + "Ġyap ılır", + "Ġyapıl ır", + "Ġna Å¡ÃŃ", + "ĠnaÅ¡ ÃŃ", + "ãĥ¼ ãĥŃ", + "ãĥ¼ãĥ Ń", + "Ġt ạm", + "Ġhen üz", + "Ġz emi", + "Ġze mi", + "Ġzem i", + "Ġkh áng", + "Ġkhá ng", + "åħ¬ åħ±", + "Ġ èĢģ", + "ĠèĢ ģ", + "ĠعÙĪ اÙħÙĦ", + "Âł V", + "à¹ī à¹ģà¸ģ", + "άν ÏĦα", + "ĠÑĤÑĢав нÑı", + "Ġη μÎŃ", + "è´ ¸", + "ส à¸Ķ", + "Ġس Ùħت", + "ĠسÙħ ت", + "ĠØ® اک", + "ĠÑĤак ий", + "ĠÑĤа кий", + "Ġet tik", + "Ġett ik", + "Ġetti k", + "ĠÏĮ λ", + "Ġп оли", + "Ġпо ли", + "Ġпол и", + "Ġ нож", + "Ġн ож", + "Ġно ж", + "غ اÙĨ", + "ÙĨ دÙĬ", + "ÙĨد ÙĬ", + "ĠÄįty ÅĻi", + "ĠÄįtyÅĻ i", + "ĠPh Æ°Æ¡ng", + "ĠÙĪر زش", + "ĠÙĪرز Ø´", + "ãģĦ ãģĭ", + "r vé", + "rv é", + "Ġतर फ", + "Ġन à¤Ĺर", + "m asında", + "ma sında", + "mas ında", + "ması nda", + "е виÑĩ", + "ев иÑĩ", + "еви Ñĩ", + "ve ÅĻej", + "ä¿Ŀ æĮģ", + "æĬĢ èĥ½", + "æݨ èįIJ", + "l âm", + "Ġ Ïį", + "ĠÏ į", + "å¢ŀ éķ¿", + "Ġاص ÙģÙĩ", + "ĠÐĹак онÑĥ", + "ĠÐŁ ÑĢез", + "ĠÐŁÑĢ ез", + "Ġpod por", + "Ġpodp or", + "기 íĥĢ", + "Ġ íıIJ", + "Ġíı IJ", + "Ġ ëĭĪ", + "Ġëĭ Ī", + "lar ınız", + "ların ız", + "larını z", + "ãĥĸ ãĥŃ", + "ĠÑĦÑĢан ÑĨÑĥз", + "ãĥĬ ãĥ¼", + "Ġb eled", + "Ġbe led", + "Ġbel ed", + "Ġbele d", + "ัà¸Ļว าà¸Ħม", + "ĠÙģ رÙĪ", + "ĠÙģر ÙĪ", + "ÑĦ ÑĢов", + "ĠìĿ´ 룬", + "ượ u", + "Ġê³µ ìĭĿ", + "Ġbird en", + "Ġbir den", + "Ġз елен", + "Ġзел ен", + "çĴ ĥ", + "Ġh á»ĵng", + "Ġhá»ĵ ng", + "ĠÅ¡ kola", + "ĠÅ¡kol a", + "ĠÅ¡k ola", + "ĠÑģам ом", + "ĠÑģамо м", + "an lık", + "anlı k", + "空 éĹ´", + "åįĹ çľģ", + "л еÑĢг", + "ле ÑĢг", + "леÑĢ г", + "Ñĸз неÑģ", + "Âł A", + "ãĢį ãĤĴ", + "Ġkend ine", + "Ġkendi ne", + "Ġ اÙĪÙĨ", + "Ġا ÙĪÙĨ", + "ĠاÙĪ ÙĨ", + "ãĢ Ķ", + "ĠΣ Ïį", + "à¹Ģ à¸Ħล", + "à¹Ģà¸Ħ ล", + "å¥ ¶", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "Ġú Äįet", + "ĠúÄį et", + "Ñĥ ла", + "Ñĥл а", + "éĢļ ä¿¡", + "Ġì¦ IJ", + ". čĊĊ", + ".čĊ Ċ", + "ĠÐľ ед", + "ا عÙĬ", + "اع ÙĬ", + "Ġjeho ž", + "ĠGü ney", + "ĠGün ey", + "ĠÎij ÏĢο", + "ĠÎijÏĢ ο", + "Ġп олÑĸ", + "Ġпо лÑĸ", + "Ġпол Ñĸ", + "ü me", + "üm e", + "ho dob", + "hod ob", + "ĠÎĿ α", + "ĠØ¢ ÙĦات", + "ĠØ¢ÙĦ ات", + "ĠpÅĻ iz", + "ĠpÅĻi z", + "Ġt avs", + "Ġta vs", + "Ġtav s", + "Ġتب ÙĦÛĮ", + "ãĥ³ ãĥĶ", + "ãĥ³ãĥ Ķ", + "Ø® رج", + "خر ج", + "Ġак кÑĥ", + "Ġú prav", + "ĠاØŃ Ø³Ø§Ø³", + "ì¹´ ëĿ¼", + "ı mızı", + "ım ızı", + "ımız ı", + "ımı zı", + "Ġд окÑĥменÑĤ", + "Ġдок ÑĥменÑĤ", + "ĠдокÑĥм енÑĤ", + "Ġ اصÙĦ", + "Ġا صÙĦ", + "Ġاص ÙĦ", + "ظ Ùĩ", + "ĠìĿ¸ ê°Ħ", + "Ġج رÛĮاÙĨ", + "Ġجر ÛĮاÙĨ", + "Î¥ ÎĿ", + "ÑĩеÑģ каÑı", + "Ñĩе ÑģкаÑı", + "ÙĬ ÙĨÙĬØ©", + "ÙĬÙĨ ÙĬØ©", + "ÙĬÙĨÙĬ Ø©", + "åĴ ¨", + "æĹħ 游", + "Ġ à¸Īำà¸Ļวà¸Ļ", + "Ġà¸Īำ à¸Ļวà¸Ļ", + "Ġ анг", + "Ġа нг", + "Ġан г", + "Ïħ Ïĩ", + "èĻ «", + "ĠÙħ ÙĤر", + "ĠÙħÙĤ ر", + "ĠÙħÙĪسÛĮ ÙĤÛĮ", + "ut ut", + "ĠÐĽ е", + "ĠÐŁ ÑĸÑģлÑı", + "ãĤŃ ãĥ¼", + "ุล าà¸Ħม", + "åĩ ¡", + "ÏĢ οÏį", + "ÏĢο Ïį", + "ĠÃĸ dül", + "Ïĥ κ", + "Ġ ÑĨÑİ", + "ĠÑĨ Ñİ", + "Ñĭ ваÑı", + "Ñĭв аÑı", + "Ñĭва Ñı", + "ï½ŀ ï½ŀ", + "ĠØ´ ÙħاÙĦ", + "ĠØ´Ùħ اÙĦ", + "ĠØ´Ùħا ÙĦ", + "è¿ ħ", + "ĠبÙĦ Ú©Ùĩ", + "çİ Ľ", + "Ġì§Ģ ëĤĺ", + "ĠÙģ کر", + "ĠÑģÑĤеп ени", + "Ġна Ñĥки", + "ĠнаÑĥк и", + "çī© çIJĨ", + "ÄĽ le", + "ÄĽl e", + "Ġо ÑģкÑĸлÑĮки", + "ĠкÑĥлÑĮÑĤÑĥ ÑĢи", + "ĠкÑĥлÑĮÑĤÑĥÑĢ и", + "èĢĥ è¯ķ", + "Ġmateri ál", + "ĠÑģÑĤ воÑĢеннÑı", + "ĠÑģÑĤвоÑĢ еннÑı", + "Ġà¤ħ द", + "æıIJ åĩº", + "Ġè©ķ 価", + "ÙĴ د", + "Ġë§Įëĵ¤ ìĸ´", + "duÄŁu nu", + "duÄŁ unu", + "ÙĬ ÙĨÙĩ", + "ÙĬÙĨ Ùĩ", + "åĵ ¦", + "оÑĩ нÑĭÑħ", + "ĠÙħ ض", + "is mu", + "ism u", + "Ġ Ñĩай", + "ĠÑĩ ай", + "ĠÑĩа й", + "ÙĪ رÙĪب", + "ÙĪر ÙĪب", + "Ġ англ", + "Ġан гл", + "Ġанг л", + "oÄŁun luk", + "ĠпÑĢед пол", + "ĠÎŃ ÏīÏĤ", + "ส à¸ĸ", + "ĠÎķλλά δα", + "ĠBi lg", + "ĠBil g", + "Ġ بات", + "Ġب ات", + "Ġبا ت", + "ĠÐĽÑĮв Ñĸв", + "Ġyap ılması", + "Ġyapıl ması", + "æ£Ģ æŁ¥", + "æķ° åѦ", + "Ġ :.:", + "Ġ: .:", + "Ġ:. :", + "Ġ çİ©", + "Ġçİ ©", + "Îļ α", + "à¹Ģà¸Ĺ à¸Ħà¹Ĥà¸Ļà¹Ĥลย", + "Ġساخت ÙħاÙĨ", + "ĠìĨĮ 리", + "é¼ »", + "Ġs mr", + "Ġsm r", + "Ġëĭ¤ìĸij íķľ", + "Ġjed nánÃŃ", + "Ġjedn ánÃŃ", + "Ġjedná nÃŃ", + "Ġserv isi", + "Ġservi si", + "Ġservis i", + "Ġey lem", + "Ġм али", + "Ġмал и", + "Ġма ли", + "Ġvý hod", + "éĻ¤ äºĨ", + "ĠпоÑĢÑıд кÑĥ", + "Ġn ový", + "Ġno vý", + "Ġnov ý", + "å¤ ķ", + "ĠнекоÑĤоÑĢ Ñĭе", + "Ġ^ {}", + "Ġ^{ }", + "γÏī γ", + "Ñĥ ÑĪки", + "ÑĥÑĪ ки", + "Ġp sik", + "Ġps ik", + "Ġpsi k", + "ĠíĶĦ 리", + "Ø´ اء", + "Ġ ван", + "Ġв ан", + "Ġва н", + "Ġس ÙĥاÙĨ", + "ç¢ ¼", + "ĠÎľ η", + "ĠÑĥÑĢов енÑĮ", + "ãĤµ ãĥ¼", + "ĠاÙĦب ØŃر", + "Ġd nÃŃ", + "Ġdn ÃŃ", + "à¸ģาร ศ", + "e diÄŁi", + "edi ÄŁi", + "Ġbelir li", + "Ùĭ ØĮ", + "ĠzamÄĽst nan", + "ĠzamÄĽstn an", + "æŁ ±", + "ا ÙģÙĬ", + "اÙģ ÙĬ", + "Ġh ải", + "æĢĿ æĥ³", + "Ġn eler", + "Ġne ler", + "Ġnel er", + "Ġرس ÙħÛĮ", + "ĠرسÙħ ÛĮ", + "Ñģ еÑĢ", + "Ñģе ÑĢ", + "ãģĵãģ¨ ãģ§", + "ĠZá kladnÃŃ", + "л ова", + "ло ва", + "лов а", + "к ÑĤÑĥ", + "кÑĤ Ñĥ", + "ÙĪس Ùģ", + "Ñĸб лÑĸ", + "Ì Ĥ", + "ÑĢ д", + "éĻ ³", + "æį ·", + "ĠyaÅŁ ayan", + "à¥ģ à¤ļ", + "à¥ģठļ", + "ÑĸÑĤ ÑĤÑı", + "Ġb á»ģ", + "ëĤĺ ëĿ¼", + "Ġм ÑıÑģ", + "Ġ{ [%", + "Ġ{[ %", + "θ α", + "Ġдоз волÑı", + "Ġдозвол Ñı", + "Ġ åIJĦ", + "ĠåIJ Ħ", + "ĠÐŁ еÑĢв", + "ĠÐŁÐµÑĢ в", + "ĠSaÄŁ lık", + "ÑģÑĤоÑĢ иÑı", + "Ġbun lar", + "Ġs á»ķ", + "़ à¥į", + "Ġ åĪ©", + "ĠåĪ ©", + "ĠÑģ поÑģ", + "ĠÑģп оÑģ", + "Ġyap tır", + "Ġyaptı r", + "Ġt Æ°á»Ŀng", + "ÙĪ ÙĨØ©", + "ÙĪÙĨ Ø©", + "Ġ еп", + "Ġе п", + "ãģ§ãģį ãģªãģĦ", + "Ùģ تÙħ", + "Ùģت Ùħ", + "ĠÐĵ ол", + "íķĺ ì§Ģë§Į", + "íķĺì§Ģ ë§Į", + "Ġì§Ħ ì§ľ", + "Ġob jedn", + "Ġobj edn", + "Ġизмен ениÑı", + "女 人", + "Ġпл ани", + "Ġпла ни", + "Ġплан и", + "ĠFak ült", + "Ġt zv", + "Ġtz v", + "ĠобÑıз аÑĤелÑĮ", + "Ġблиз ÑĮко", + "r ası", + "ra sı", + "ras ı", + "ĠεÏĢί ÏĥηÏĤ", + "ĠÑĦак ÑĤи", + "ĠÑĦакÑĤ и", + "ĠÄIJ ặc", + "ĠAlt ın", + "л иÑĤ", + "ли ÑĤ", + "Ġл ÑĸÑģ", + "ĠлÑĸ Ñģ", + "çī §", + "Ġп ÑĥÑģÑĤ", + "ĠпÑĥ ÑģÑĤ", + "Ġком ÑĸÑģ", + "ä¿Ŀ éļľ", + "åħ· ä½ĵ", + "- ÑĤ", + "Ġtr hu", + "Ġtrh u", + "Ġâī Ī", + "Ġдека бÑĢÑı", + "ĠÑĦоÑĢм Ñĭ", + "ĠÑĦоÑĢ мÑĭ", + "Ng oÃłi", + "Ġdo hod", + "رÙĬ ÙĥÙĬØ©", + "رÙĬÙĥ ÙĬØ©", + "رÙĬÙĥÙĬ Ø©", + "ĠØ¢ÙħÙĪز Ø´ÛĮ", + "ĠØ¢ÙħÙĪزش ÛĮ", + "ĠzajÃŃm av", + "Ġkat ılım", + "Ġkatıl ım", + "ä¸ ĺ", + "Ġko num", + "Ġkon um", + "Ġkonu m", + "Ġм оÑĩ", + "Ġмо Ñĩ", + "ãĥ³ ãĥķ", + "ãĥ³ãĥ ķ", + "диви дÑĥ", + "Ġ äºļ", + "Ġ æĴ", + "Ġæ Ĵ", + "γÏģά ÏĨ", + "ãĥIJ ãĤ¹", + "Ġп Ñĥнк", + "ĠBir leÅŁik", + "Ġqu en", + "Ġque n", + "Ġq uen", + "Ġв каз", + "Ġвк аз", + "à¥ĩ शà¤ķ", + "à¥ĩश à¤ķ", + "ĠY unan", + "ĠYu nan", + "ĠYun an", + "ãģł ãģ¨", + "Û±Û¹ Û·", + "á ty", + "át y", + "Ġ ÙĪص", + "ĠÙĪ ص", + "Ġнег аÑĤив", + "ãģ¤ ãģ®", + "Ġ åĬ¨", + "ĠåĬ ¨", + "ãĥį ãĥĥãĥĪ", + "Ġд Ñĸй", + "ĠдÑĸ й", + "ĠbaÅŁ ında", + "Ġtr Æ°ng", + "Ġm akin", + "Ġma kin", + "Ġmak in", + "Ġ æĦĽ", + "ĠæĦ Ľ", + "м еÑĩ", + "ме Ñĩ", + "Ġ è¿ij", + "Ġè¿ ij", + "ÙĤ در", + "ÙĤد ر", + "Ġاست اÙĨد", + "ĠاستاÙĨ د", + "Ġinform acÃŃ", + "ार à¤ķ", + "è¬ Ŀ", + "ÑĢаб аÑĤ", + "Ġ çŃĶ", + "Ġç ŃĶ", + "ĠçŃ Ķ", + "Ġ èĩ³", + "Ġèĩ ³", + "Ġп олÑĮ", + "Ġпо лÑĮ", + "Ġпол ÑĮ", + "ĠÙĩÙĨ ر", + "ëĮĢ ë¹Ħ", + "Ġخارج ÛĮ", + "r act", + "ra ct", + "rac t", + "ãĢĤ ãģĵãĤĮ", + "ĠØ´ÙĪر اÛĮ", + "л енно", + "лен но", + "Ġh isset", + "Ġhis set", + "Ġhiss et", + "Ġc Ãłi", + "ĠcÃł i", + "ĠÑĦ оÑĤо", + "ĠÑĦоÑĤ о", + "æģ Ĵ", + "Ġмед иÑĨин", + "Ġмеди ÑĨин", + "ÑģÑĤ вÑĸ", + "ÑģÑĤв Ñĸ", + "ĠاÙĦ عÙĦ", + "ĠاÙĦع ÙĦ", + "ĠпиÑģÑĮ мен", + "ãĢĤ ãģ¾ãģŁ", + "Ġvlast nÄĽ", + "Ġп ода", + "Ġпо да", + "Ġпод а", + "Ïģ οι", + "Ïģο ι", + "Ġ ìĦĿ", + "ĠìĦ Ŀ", + "ĠìĿ¼ ìĿ´", + "Ġ ìĽĮ", + "ĠìĽ Į", + "ок Ñģи", + "окÑģ и", + "Ġos oby", + "Ġosob y", + "ÐŁÐ¾Ñģ ле", + "ĠÑĸÑģÑĤоÑĢ ÑĸÑĹ", + "ع ÙĦÙī", + "عÙĦ Ùī", + "н ка", + "ت Ùħبر", + "تÙħ بر", + "à¥ĩ हर", + "à¥ĩह र", + "ĠJ ana", + "ĠJan a", + "ĠJa na", + "ÙĦ ÙĬات", + "ÙĦÙĬ ات", + "ĠмаÑĢ ÑĤа", + "ĠÐļи ÑĶ", + "ĠÑĢоб оÑĤÑĥ", + "ĠÑĢобоÑĤ Ñĥ", + "Ġnh ấn", + "и Ñģлов", + "иÑģ лов", + "ëŁ Ń", + "Ġo dv", + "Ġod v", + "ĠT á»īnh", + "âĢľ ê·¸", + "ãģ» ãģĨ", + "é² ľ", + "м еÑĨÑĮ", + "ме ÑĨÑĮ", + "า ศาสà¸ķร", + "าศ าสà¸ķร", + "à¥ģ à¤ĵ", + "à¥ģठĵ", + "ิ à¸Ļà¸Ĺ", + "ิà¸Ļ à¸Ĺ", + "m ada", + "ma da", + "mad a", + "ز اÙħ", + "زا Ùħ", + "ĠÙĥ بÙĬر", + "å®ŀ æĸ½", + "ze ÅĪ", + "Ġl ái", + "Ġlá i", + "Ïĥ μα", + "Ïĥμ α", + "ا سات", + "اس ات", + "ÑĦ ÑĤ", + "è° ±", + "çĮ ľ", + "Ġpro bÃŃ", + "Ġprob ÃŃ", + "æľĢ è¿ij", + "ÑĢ ад", + "ÑĢаР´", + "ÑĢа д", + "ãĤ½ ãĥ³", + "Ġ клад", + "Ġк лад", + "Ġкл ад", + "Ġкла д", + "à¥ľ à¤ķ", + "é v", + "ล าย", + "ลา ย", + "èİ İ", + "ĠμÎŃ ÏĩÏģι", + "Ġ кÑĥÑģ", + "Ġк ÑĥÑģ", + "ĠкÑĥ Ñģ", + "Ġ íĻĺê²½", + "ĠíĻĺ ê²½", + "Ñĩ оÑĹ", + "åıĺ åĮĸ", + "Ġب تÙĪاÙĨ", + "Ġبت ÙĪاÙĨ", + "Ġt ắt", + "Ġgöster en", + "а лÑİ", + "ал Ñİ", + "Ġкоман ди", + "Ġкоманд и", + "Ġ 컨", + "Ġì» ¨", + "Ñĥ нд", + "Ñĥн д", + "Ġج ÙĦÙĪ", + "ĠجÙĦ ÙĪ", + "åŃIJ çļĦ", + "ĠÑģ б", + "ĠÐł аÑģ", + "ĠÐłÐ° Ñģ", + "P CP", + "PC P", + "ĠCumhur baÅŁ", + "од аÑĤелÑĮ", + "ÃŃ sto", + "ÃŃs to", + "ÃŃst o", + "Ġo znám", + "Ġoz nám", + "ãĥ¼ ãĥĭ", + "ãĥ¼ãĥ ĭ", + "Ġok uy", + "Ġoku y", + "o phy", + "op hy", + "oph y", + "า à¸Ļà¸Ħร", + "าà¸Ļ à¸Ħร", + "ĠÎķ θν", + "ay ım", + "ayı m", + "Ùİ Ø£", + "æİ ¡", + "Ġfunk ce", + "Ġfunkc e", + "æļ ĸ", + "Ø· ار", + "ĠÐĿ аг", + "ĠÐĿа г", + "Ġ ä¸ĩåĨĨ", + "Ġä¸ĩ åĨĨ", + "Ġ íĴį", + "ĠíĴ į", + "Ġ ä½ı", + "Ġ ï¼İ", + "Ġï¼ İ", + "Ñĭ ваÑİÑĤÑģÑı", + "Ñĭв аÑİÑĤÑģÑı", + "Ñĭва ÑİÑĤÑģÑı", + "ÑĭваÑİÑĤ ÑģÑı", + "ĠP la", + "ĠPl a", + "ا ÙĬÙĦ", + "اÙĬ ÙĦ", + "Ġ무 ìĹĩ", + "Ġкон еÑĩно", + "к м", + "à¤Ĥ पर", + "à¤Ĥप र", + "Ġ ìłķë¶Ģ", + "Ġìłķ ë¶Ģ", + "ĠëĤ´ 볤", + "ãĤ° ãĥ«", + "çģ °", + "Ġc yk", + "Ġcy k", + "Ġжел Ñĥд", + "ĠëĨĴ ìĿĢ", + "çĶŁ åij½", + "æµ ´", + "Ġart Ä±ÅŁ", + "Ġ Ðĩ", + "ĠÐ ĩ", + "ï¼ ²", + "e kim", + "ek im", + "eki m", + "ĠÑĦ едеÑĢа", + "ĠвеÑĢеÑģ нÑı", + "н иÑĤе", + "ни ÑĤе", + "ниÑĤ е", + "ĠÄ°ÅŁ te", + "ĠÙĪضع ÛĮت", + "ãģķ ãģ¾", + "ĠtÅĻ etÃŃ", + "ĠtÅĻet ÃŃ", + "u luÄŁ", + "ulu ÄŁ", + "ĠCumhur iyet", + "ä¼ Ł", + "Ġ ë§Ŀ", + "Ġë§ Ŀ", + "Ġver mek", + "Ġverm ek", + "Ġn alez", + "Ġna lez", + "Ġnal ez", + "Ġnale z", + "çĵ ¶", + "Ġd iÅŁ", + "Ġdi ÅŁ", + "ĠH á»ĵng", + "ĠHá»ĵ ng", + "غ ÙĬرة", + "غÙĬر Ø©", + "å© Ĩ", + "н ив", + "ни в", + "Ġr út", + "' nda", + "'n da", + "Ġh roz", + "Ġhr oz", + "à¥ī प", + "Ġза коном", + "Ġзак оном", + "Ġзакон ом", + "Ġзако ном", + "Ġjed nu", + "Ġjedn u", + "ĠKa dın", + "ĠKad ın", + "in dir", + "ind ir", + "indi r", + "س ازÛĮ", + "åĮº åŁŁ", + "ĠkonuÅŁ tu", + "Ġز ÙĨد", + "ĠزÙĨ د", + "ा ĊĊ", + "ाĊ Ċ", + "ĠÐIJ з", + "à¸ĩ à¸Ĥà¸Ńà¸ĩ", + "à¸ĩà¸Ĥ à¸Ńà¸ĩ", + "ĠÑģвой ÑģÑĤва", + "Ġìŀij íĴĪ", + "пе ки", + "Ġ å°±", + "Ġå° ±", + "ев ого", + "ево го", + "ĠtaÅŁ ıy", + "ĠÙħÙĨ Ø·ÙĤØ©", + "ĠÙħÙĨØ· ÙĤØ©", + "ĠÃĩ ocuk", + "Û² Û·", + "ĠÏĥÏħ μÏĢ", + "é£Ł åĵģ", + "h á", + "ï¼ ¯", + "ÙĦ ÙħÙĩ", + "ÙĦÙħ Ùĩ", + "ãģ¨ãģª ãģ£ãģŁ", + "о ÑĢÑĸ", + "оÑĢ Ñĸ", + "° }", + "ĠtaÅŁ ın", + "çŁ ¿", + "ĠÑĩаÑģÑĤ ини", + "ĠÑĩаÑģÑĤи ни", + "ĠدÙĬ سÙħبر", + "Ġ èī¯", + "Ġèī ¯", + "st ÅĻÃŃ", + "Ġ ÑĨик", + "ĠÑĨ ик", + "ĠÑĨи к", + "âĢķâĢķ âĢķâĢķ", + "ĠÄ°ng iltere", + "ĠÑģÑĤ ÑĢаÑĤег", + "ĠÑģÑĤÑĢ аÑĤег", + "ÃĦ Ÿ", + "и Ñĩного", + "иÑĩ ного", + "иÑĩно го", + "ÃŃ rk", + "ÃŃr k", + "ĠÎij Ïģ", + "! âĢľĊĊ", + "!âĢľ ĊĊ", + "Ġ 깨", + "Ġê¹ ¨", + "à¥ģà¤Ĩ त", + "ĠدÙĨÛĮ ا", + "ĠدÙĨ ÛĮا", + "l ÃŃn", + "lÃŃ n", + "Ġà¤ķ ड", + "ĠÙħ بت", + "ĠÙħب ت", + "ем ÑĭÑħ", + "о би", + "об и", + "ย à¸Ļà¸ķ", + "ยà¸Ļ à¸ķ", + "à¤Ĥध न", + "ÚĨ ÛĮ", + "Ġ çŁ¥", + "Ġç Ł¥", + "ĠçŁ ¥", + "ĠXu ân", + "a daki", + "ad aki", + "ada ki", + "Ġ orta", + "Ġor ta", + "Ġort a", + "æł¹ æľ¬", + "åħ± åIJĮ", + "н ений", + "не ний", + "нен ий", + "ب ÙĬرة", + "بÙĬ رة", + "بÙĬر Ø©", + "çŃ ĭ", + "ïº Ķ", + "âĢĮ ÙĩاÙĬ", + "âĢĮÙĩا ÙĬ", + "Ġö deme", + "Ġödem e", + "ĠØ¢ÙĨ ÚĨÙĩ", + "Ġза Ñıви", + "ĠзаÑıв и", + "ĠÙĨÙĤ Ø´Ùĩ", + "ĠÙĨÙĤØ´ Ùĩ", + "Ġ ç³»", + "Ġç ³»", + "Ġç³ »", + "à¥ĭ ।", + "Ġì§Ģ ìłķ", + "Ġin sp", + "Ġins p", + "Ġ ÑĤен", + "ĠÑĤ ен", + "ĠÑĤе н", + "Ġت Ø·", + "Ġqu ảng", + "Ġquả ng", + "Ġquản g", + "åī £", + "ãģı ãģ®", + "ĠÑĨ им", + "ĠÑĨи м", + "k ovi", + "ko vi", + "kov i", + "i yah", + "iy ah", + "iya h", + "Ġ ëIJľëĭ¤", + "ĠëIJľ ëĭ¤", + "ص Ùĩ", + "ĠÄij u", + "Ġsu á»ijt", + "ı ma", + "ım a", + "ì§Ģ ê³ł", + "Ì ĥ", + "à¸ļ าย", + "ĠCert if", + "ĠCer tif", + "ĠÑĥÑģ ÑĸÑħ", + "ĠÑĥÑģÑĸ Ñħ", + "à¸ķะ ว", + "εί ÏĦε", + "Ġ č", + "Ġмож ливÑĸÑģÑĤÑĮ", + "Ġможлив ÑĸÑģÑĤÑĮ", + "Ġ -âĢIJ", + "Ġ- âĢIJ", + "Ġ íĺ¹", + "Ġíĺ ¹", + "ìĤ¬ ì§Ħ", + "Ġд аниÑħ", + "Ġда ниÑħ", + "Ġдан иÑħ", + "Ġzah áj", + "주 ëĬĶ", + "Ġг ид", + "n iž", + "ni ž", + "Ġ^{ °}", + "Ġk ro", + "Ġkr o", + "Äį en", + "Äįe n", + "ÏĨ ι", + "ımız da", + "Ġ æ¹ĸ", + "Ġæ¹ ĸ", + "Ġпов ÑĢежд", + "Ġì¡´ ìŀ¬", + "à¸Ļ าà¸Ļ", + "à¸Ļา à¸Ļ", + "μÎŃ Î½Î¿ÏĤ", + "μÎŃν οÏĤ", + "μÎŃνο ÏĤ", + "æ½ ľ", + "ï¼Į 使", + "Ġd osp", + "Ġdo sp", + "Ġdos p", + "Ġl iá»ģn", + "Ġli á»ģn", + "ัà¸ļ à¸Ħวาม", + "ัà¸ļà¸Ħ วาม", + "ĠÑĢабоÑĤ е", + "ĠÑĢаб оÑĤе", + "ĠÑĢабо ÑĤе", + "Ġмай бÑĥÑĤ", + "à¹Ģà¸ģ ษ", + "B aÅŁ", + "Ba ÅŁ", + "Ġ æĿ±äº¬", + "ĠæĿ± 京", + "наÑĩ ала", + "δ ει", + "δε ι", + "à¥Ī प", + "Ñĸ мÑĸ", + "Ñĸм Ñĸ", + "Ġf izik", + "Ġfi zik", + "Ġfiz ik", + "ว ล", + "ä¼ į", + "Ġ à¸Ĭà¸Ļะ", + "Ġà¸Ĭ à¸Ļะ", + "' ÑıÑĤ", + "'Ñı ÑĤ", + "н ил", + "ни л", + "и нов", + "ин ов", + "ĠÄijo án", + "รว à¸Ī", + "f et", + "fe t", + "à¹Į à¹Ĥ", + "Ġ маÑĤи", + "Ġм аÑĤи", + "ĠмаÑĤ и", + "Ġма ÑĤи", + "é¨ İ", + "Ðļ Т", + "à¹Ģส à¸Ļà¸Ń", + "à¹Ģสà¸Ļ à¸Ń", + "Ġм ав", + "Ġма в", + "lı ģına", + "lıģı na", + "lıģ ına", + "lıģın a", + "Ġпо Ñĩина", + "ĠпоÑĩ ина", + "ู à¸ķร", + "ูà¸ķ ร", + "ÑĨ еÑĢ", + "ÑĨе ÑĢ", + "uj ete", + "uje te", + "ujet e", + "Ġtah min", + "Ġвим ог", + "า à¸Ł", + "าภŁ", + "е дж", + "ед ж", + "ÏĦ εÏį", + "ÏĦε Ïį", + "ad la", + "ĠÄij Æ°Æ¡ng", + "Ġد استاÙĨ", + "Ġbas ın", + "Ġba sın", + "ĠÑħ в", + "Ġ reak", + "Ġre ak", + "ĠоÑĤ меÑĤ", + "æ³ ¥", + "Ġm áte", + "Ġmá te", + "Ġmát e", + "Ġzo run", + "Ġzor un", + "ãģ¨æĢĿ ãģĨ", + "Ġدر جة", + "ĠвÑĸд ÑģÑĥÑĤ", + "Ġع اÙħÙĦ", + "ĠعاÙħ ÙĦ", + "èĶ µ", + "Ġson raki", + "Ġsonra ki", + "Ġmoh li", + "Ġmohl i", + "и ваеÑĤ", + "ив аеÑĤ", + "ива еÑĤ", + "ĠпÑĸд ÑģÑĤав", + "Ġost rov", + "Ġostr ov", + "ान व", + "âĢŀ P", + "Ġви знаÑĩа", + "ĠвизнаÑĩ а", + "Ġprav dÄĽpodob", + "Ġz az", + "Ġza z", + "ìĿ´ 를", + "Ġдж еÑĢ", + "ĠÐł ад", + "ĠÐłÐ° д", + "ĠÑģеÑĢÑĮ ез", + "Ġ дем", + "Ġд ем", + "Ġде м", + "ÏĢ ή", + "ĠÐĦ вÑĢоп", + "ĠÐĦв ÑĢоп", + "ĠÄįesk é", + "ĠÄįe ské", + "ï¾ ı", + "Ġ ØŃÙĬ", + "ĠØŃ ÙĬ", + "ì¼ ĢìĿ´", + "ì¼Ģ ìĿ´", + "ĠØ® ÙĪÙĨ", + "ĠØ®ÙĪ ÙĨ", + "Âł L", + "ãģĦ ãģ«", + "из неÑģ", + "ĠÙħ ÙĤاÙħ", + "ĠÙħÙĤ اÙħ", + "ĠاÙĦ ØŃÙĦ", + "ĠاÙĦØŃ ÙĦ", + "ëĨ į", + "ĠØ¢ ÛĮا", + "ĠØ¢ÛĮ ا", + "ç¿ ¼", + "ï¼ ½", + "æ¸ IJ", + "ли вÑĸ", + "лив Ñĸ", + "ãģĦ ãģ¦ãģĦãĤĭ", + "ãģĦãģ¦ ãģĦãĤĭ", + "Ġ ÎijÎł", + "ĠÎij Îł", + "ĠиÑģполÑĮз ÑĥеÑĤÑģÑı", + "ĠиÑģполÑĮзÑĥ еÑĤÑģÑı", + "Ġm át", + "Ġmá t", + "Ġμε γά", + "Ġμεγ ά", + "ëħ ¼", + "æµ· éģĵ", + "ĠÙħØ´Ú© ÙĦات", + "ĠÙħØ´Ú©ÙĦ ات", + "Ñĩ на", + "'; ';", + "Ġ μία", + "Ġμ ία", + "Ïģ Ïİν", + "ÏģÏİ Î½", + "Ġby ste", + "ĠÑįлек ÑĤÑĢи", + "ĠÑįлекÑĤÑĢ и", + "ĠY ardım", + "ĠYard ım", + "ĠYar dım", + "Ġh át", + "Ġhá t", + "ĠÐĶ еÑĢжав", + ". С", + "Ġo rada", + "Ġor ada", + "Ġora da", + "Ġal anı", + "Ġalan ı", + "åľ° åŁŁ", + "ĠدÙĩ ÙĨد", + "мен ÑĪ", + "ĠоÑĢг анов", + "ĠоÑĢган ов", + "Ġع ص", + "ู à¸ĩส", + "ูà¸ĩ ส", + "ĠØ´ عر", + "Ġشع ر", + "Ġìĸ »", + "Ġά λλ", + "Ġάλ λ", + "Ġg ói", + "Ġgó i", + "ĠÙĨ اØŃ", + "å¼ ĺ", + "à¥įथ ल", + "i lim", + "il im", + "ili m", + "ëIJĺ ì§Ģ", + "Ġкон ÑĨе", + "ĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂł ĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂł", + "Ġì¤Ģ ë¹Ħ", + "Ġostat nÃŃ", + "Ġvlá dy", + "Ġvlád y", + "ĠÑģо биÑĢа", + "ĠÑģоб иÑĢа", + "ĠìĹŃ ìĤ¬", + "à¹ģ à¸ģรม", + "à¹ģà¸ģ รม", + ". ï¼ı", + "Ùı ÙĪÙĨ", + "ÙıÙĪ ÙĨ", + "Ù¾ س", + "ĠW ikip", + "ĠWi kip", + "ĠWiki p", + "ĠWik ip", + "Ġ æ¾", + "Ġæ ¾", + "Ġж аÑĢ", + "容 æĺĵ", + "ĠprostÅĻed nictvÃŃm", + "Ġž eny", + "Ġže ny", + "Ġžen y", + "Ġèı²å¾ĭ宾 çĶ³åįļ", + "а ÑİÑĤÑģÑı", + "аÑİÑĤ ÑģÑı", + "Ġm iêu", + "Ġmi êu", + "Ġp enÃŃze", + "δ ιά", + "δι ά", + "ol dur", + "old ur", + "ĠпÑĢимеÑĢ но", + "ĠìŀĪ ê³ł", + "à¸ĩ à¸Ńย", + "к овий", + "ко вий", + "ков ий", + ". ÎŁ", + "à¹ĥ à¸Ħร", + "çĭ ł", + "ĠÐŁ Ñĸв", + "æĶ¹ éĿ©", + "ĠÐĿаÑģ еление", + "Å¡et ÅĻ", + "ÙĴ ب", + "Ġ âĶĢ", + "ĠâĶ Ģ", + "غ ÙĬÙĦ", + "ĠдÑĸÑıлÑĮ нÑĸÑģÑĤÑĮ", + "ĠÙĦ ÙĬس", + "ĠÙĦÙĬ س", + "Ġìĭľ ìŀ¥", + "ãĥŁ ãĥ¥", + "ĠÚ© ÙĪت", + "ĠÚ©ÙĪ ت", + "ĠÎĵ ι", + "ิ à¹Ģว", + "e ktor", + "ek tor", + "ekt or", + "ĠбÑĥд Ñĥ", + "ĠбÑĥ дÑĥ", + "но важ", + "нов аж", + "нова ж", + "Ñī аеÑĤÑģÑı", + "Ñīа еÑĤÑģÑı", + "Ġng ôn", + "ĠvÄĽ c", + "å¾ IJ", + "à¸Ńà¹Ģม ร", + "ัà¸į à¸Ĭ", + "ĠиÑģполÑĮз ÑĥÑİÑĤ", + "ĠиÑģполÑĮзÑĥ ÑİÑĤ", + "r ubu", + "ru bu", + "rub u", + "Ġnh á»±a", + "ãģĮ ãģĬ", + "ĠÐĵ аÑĢ", + "о ÑĢе", + "оÑĢ е", + "Ġз олоÑĤ", + "æ Ł³", + "æŁ ³", + "Ġ ÙĬØ´", + "ĠÙĬ Ø´", + "Ġповин нÑĸ", + "اÙĤ تص", + "ÙĦ ØŃ", + "ĠокÑĤ ÑıбÑĢÑı", + "ĠnÄĽk dy", + "Ġо бÑĢа", + "Ġоб ÑĢа", + "ست Ú¯ÛĮ", + "符 åIJĪ", + "Ġth iá»ĥu", + "æĺ¯ ä»Ģä¹Ī", + "Ġro zs", + "Ġroz s", + "ì½ľ 걸", + "Ġк аÑĦ", + "Ġка ÑĦ", + "åIJĮ æŃ¥", + "ì¼ ĵ", + "ÏĢ ÏĦÏħ", + "à¸ł ายà¹ĥà¸Ļ", + "ι ÏĥÏĦή", + "ιÏĥ ÏĦή", + "ĠدÙĪÙĦ ار", + "ĠÙħا ÙĬÙĪ", + "ĠÙħاÙĬ ÙĪ", + "Ġ peÄį", + "Ġp eÄį", + "Ġpe Äį", + "ัà¸ļ ม", + "ÎĻ ÎĶ", + "ı ydı", + "ıy dı", + "ัà¸ģ à¸Ĺ", + "à¸Ľà¸£à¸° à¸ĸม", + "κ αι", + "κα ι", + "Ġpro dej", + "Ġprod ej", + "ĠиÑİ Ð»Ñı", + "Ġv Å©", + "é© ±", + "Ġh vÄĽ", + "Ġhv ÄĽ", + "æĥ³ è¦ģ", + "ç¯ Ħ", + "ç ak", + "ça k", + "Ġм Ñıг", + "ım ın", + "ımı n", + "Ġdisp ozici", + "Ġu kaz", + "Ġuk az", + "r acak", + "ra cak", + "rac ak", + "Ġболез ни", + "ว à¹Ĥม", + "Ġз ел", + "ĠÐĴ ики", + "ĠÐĴи ки", + "ĠÐĴик и", + "ĠÐł од", + "ูà¸ģ à¸Ħ", + "í ij¸", + "Ġth ải", + "ĠbaÄŁ ımsız", + "ĠÑĢоÑģ Ñģий", + "ĠÐļ ам", + "ĠÐļа м", + "ĠиÑģполÑĮзов аниÑı", + "ĠиÑģполÑĮз ованиÑı", + "ĠиÑģполÑĮзовани Ñı", + "ĠØŃ Ø°", + "Âł ³³³³³³³³", + "³³ ³³³³³³³", + "³³³³ ³³³³³", + "³³³ ³³³³³³", + "³³³³³³³³ Âł", + "³³³³³³³ ³³", + "³³³³³ ³³³³", + "³³³³³³ ³³³", + "ĠاÙĨت ÙĤاÙĦ", + "Ġаб ÑģолÑİÑĤ", + "Ġ Ä±ÅŁÄ±k", + "ĠÄ±ÅŁÄ± k", + "ÏĦο γÏģαÏĨ", + "ĠболÑĮÑĪ ой", + "Ġعب ارت", + "Ġعبار ت", + "ÃŃ Å¾", + "Ġدر ست", + "Ġدرس ت", + "ĠÑģл ово", + "ĠÑģлов о", + "ĠÑģло во", + "à¥Ī Ċ", + "ب ÙĪب", + "بÙĪ ب", + "ĠÐĴ оÑĤ", + "ĠÐĴо ÑĤ", + "ว à¹Ħà¸Ľ", + "Ġbil inen", + "Ġbilin en", + "Ġ ÙĤÙĬ", + "ĠÙĤ ÙĬ", + "Ġbun ların", + "Ġbunlar ın", + "Ġbunları n", + "Ùij ت", + "Ġbas it", + "Ġba sit", + "ë¦ ¿", + "ائ رة", + "ائر Ø©", + "Ġp ů", + "Ġed ilmiÅŁ", + "Ġedilm iÅŁ", + "Ġedil miÅŁ", + "Ġ ä½IJ", + "ĠYön etim", + "ĠYönet im", + "Ùħ ÛĮر", + "ÙħÛĮ ر", + "Ġsp ou", + "Ġspo u", + "æ·± åľ³", + "Ġвза ÑĶм", + "ÎĻ ÎĽ", + "Ð ĥ", + "ĠдеÑĢжав ноÑĹ", + "Ġ mrt", + "Ġm rt", + "Ġmr t", + "ĠDe mir", + "ĠDem ir", + "é» İ", + "ĠÑĢег ÑĥлÑıÑĢ", + "Ġник огда", + "å¼ ¾", + "à¥ī ड", + "Ġг лаз", + "Ġгла з", + "ĠÙħÛĮ Ú©ÙĨ", + "ĠÙħÛĮÚ© ÙĨ", + "éĻIJ å®ļ", + "Ġнав к", + "Ġпод ÑĤ", + "ĠتصÙĪ ÛĮر", + "ĠاÙĦØŃ Ø¯ÙĬØ«", + "Ġdo Å¡lo", + "нÑİ Ñİ", + "ĠÑģ Ñħод", + "ĠÑģÑħ од", + "Ø· ÙĤØ©", + "ĠÑģенÑĤ ÑıбÑĢÑı", + "çī¹ æ®Ĭ", + "à¸ģาร à¹ģà¸Ĥ", + "á zd", + "áz d", + "ÑĶ ÑĤе", + "ĠΣ ε", + "ĠÙĦ ÙĥÙĦ", + "ĠÙĦÙĥ ÙĦ", + "åIJį åŃĹ", + "اÙĨ ÛĮا", + "اÙĨÛĮ ا", + "Ġc ins", + "Ġcin s", + "Ġci ns", + "기 ìĹħ", + "Ġ éŁ³", + "Ġé Ł³", + "ĠéŁ ³", + "éł ĥ", + "ย าย", + "ยา ย", + "ìļ ķ", + "ĠvÃŃ tÄĽz", + "à¥įर ब", + "Ġشر ÙĤÛĮ", + "ĠشرÙĤ ÛĮ", + "ĠbezpeÄį nost", + "Ġçerç ev", + "Ġ 맼", + "Ġë§ Ľ", + "c ky", + "ck y", + "ĵ ¨", + "ĠÑĥм оваÑħ", + "ĠÑĥмов аÑħ", + "л иÑħ", + "ли Ñħ", + "m eniz", + "men iz", + "meni z", + "Ġب Ú¯ÛĮر", + "Ġبگ ÛĮر", + "ÙĨ Ùī", + "Ġ à¸ģารà¹ģà¸Ĥ", + "Ġà¸ģาร à¹ģà¸Ĥ", + "ι Ïĥε", + "ιÏĥ ε", + "âĢ³ E", + "Ġdönem inde", + "리 ì¹´", + "Ġ åĪ°", + "ĠåĪ °", + "Ġhu kuk", + "Ġhuku k", + "а ÑĤоÑĢа", + "аÑĤ оÑĢа", + "аÑĤоÑĢ а", + "аÑĤо ÑĢа", + "ĠاÙĦ عÙĨ", + "ĠاÙĦع ÙĨ", + "ïº ĺ", + "ün üz", + "ünü z", + "Ñģ оÑĤ", + "Ñģо ÑĤ", + "ุ ษ", + "Ġd Æ°Æ¡ng", + "ov ny", + "Ġ ÑĦоÑĢма", + "ĠÑĦоÑĢм а", + "ĠÑĦоÑĢ ма", + "ãģĹ ãģ®", + "ãģĹãģ ®", + "ز ÙĬز", + "زÙĬ ز", + "ĠاÙĦÙĨ اس", + "Ġ Ñĩим", + "ĠÑĩ им", + "ĠÑĩи м", + "大 人", + "Ú¯ ÙĬ", + "ĠÐĵ оÑģп", + "é¢Ĩ 导", + "Ġn inh", + "Ġni nh", + "Ġnin h", + "Ġร าà¸Ħา", + "Ġราà¸Ħ า", + "ÙĤ اء", + "ìī ¬", + "ĠìĿ´ ìłĦ", + "ĠÃ¶ÄŁret men", + "ĠÑĨвеÑĤ а", + "ен ноÑģÑĤÑĮ", + "енно ÑģÑĤÑĮ", + "大 ãģį", + "ĠмиÑģÑĤ еÑĨÑĤ", + "ر ÙĪت", + "رÙĪ ت", + "p oÅĪ", + "po ÅĪ", + "ĠÅŀ irket", + "ĠкÑĢаÑģ ив", + "ĠÑĢеÑģ ÑĥÑĢÑģ", + "ĠÑĢеÑģÑĥÑĢ Ñģ", + "ä¹ ¾", + "Ġ ÙģÙĩ", + "ĠÙģ Ùĩ", + "ĠY Ãĸ", + "èĬ ³", + "μ ÏīÏĤ", + "ÄĽ ji", + "ÄĽj i", + "Ġв лаж", + "Ġвла ж", + "ĠÑĥв ели", + "ا ذا", + "اذ ا", + "ãĢĤ å¦Ĥæŀľ", + "ĠпÑĢи ÑģÑĥÑĤÑģÑĤв", + "ĠẤ n", + "æĢ ĸ", + "ĠÐľ еÑĤ", + "Ġje dna", + "Ġjed na", + "Ġjedn a", + "Ġc ục", + "Ġcụ c", + "ĠاÙĨت شار", + "Ġз окÑĢема", + "и ÑĩеÑģки", + "иÑĩеÑģ ки", + "ĠкÑĢаÑĹ Ð½Ð¸", + "ĠкÑĢаÑĹн и", + "и ÑĢÑĥ", + "иÑĢ Ñĥ", + "ĠÑĸн ÑĤеÑĢ", + "ĠÑĸнÑĤ еÑĢ", + "Ġан алог", + "Ñ Ľ", + "ี à¸ĭ", + "н Ñĥли", + "нÑĥ ли", + "нÑĥл и", + "ĠN inh", + "ĠNi nh", + "ĠNin h", + "еÑĢ аÑĤоÑĢ", + "еÑĢа ÑĤоÑĢ", + "Ġr uce", + "Ġru ce", + "ĠÑĪ кÑĸ", + "ĠÑĪк Ñĸ", + "تر ÙĨت", + "Ġson rası", + "Ġsonra sı", + "Ġ æį", + "Ġæ į", + "ÑĨен ÑĤÑĢа", + "ÑĨенÑĤ ÑĢа", + "Ġà¸Ńำ à¹Ģà¸ł", + "Ø· ÙĬ", + "ï¼Į å½ĵ", + "ĠÑĤ ÑĢеÑħ", + "ĠÑĤÑĢ еÑħ", + "Âł H", + "æ´ ª", + "ãĥ³ ãĥĦ", + "ãĥ³ãĥ Ħ", + "ĠвÑĸдповÑĸд алÑĮ", + "âĢĻ daki", + "âĢĻd aki", + "âĢĻda ki", + "á ÅĻi", + "áÅĻ i", + "ĠpÅĻ em", + "ĠpÅĻe m", + "t uk", + "tu k", + "ĠÙģر ÙħÙĪد", + "ĠÙģرÙħ ÙĪد", + "Ġ ìĿ¸ì¦Ŀ", + "ĠìĿ¸ ì¦Ŀ", + "สำ à¸Ļ", + "ìĥģ ìĿĺ", + "ÅĻ ÃŃm", + "ÅĻÃŃ m", + "æ¾ ¤", + "Ġ ÑĢей", + "ĠÑĢ ей", + "ĠÑĢе й", + "ĠлÑİб ой", + "u jte", + "uj te", + "ë³µ ì§Ģ", + "Ġ درس", + "Ġد رس", + "Ġدر س", + "ĠÐĴ лади", + "ĠÑģво им", + "ĠÑģвои м", + "ĠìĿ¸íĦ° ëĦ·", + "è± Ĭ", + "Ġн алог", + "Ġнал ог", + "ãĤĪ ãģ³", + "ĠØ® اطر", + "Ġ ìŀħëĭĪëĭ¤", + "Ġìŀħ ëĭĪëĭ¤", + "ãĢĤ ãģĹãģĭãģĹ", + "л аг", + "ла г", + "å° ĸ", + "ëĭ ¥", + "ìĬ¤ ëĬĶ", + "ìĭł ì²Ń", + "ãĥĩ ãĥ¼ãĤ¿", + "ĠÑĥÑĢов нÑı", + "Ġ무 ìĬ¨", + "ĠاÙĦØ£ رض", + "à¹ī à¸ķ", + "Ỽ t", + "ĠÙĨÛĮ رÙĪ", + "ĠÙĨÛĮر ÙĪ", + "å¢ ¨", + "ãĤ¶ ãĥ¼", + "r uba", + "ru ba", + "rub a", + "ĠÙĨØ´ دÙĩ", + "и лÑı", + "ил Ñı", + "a cÃŃm", + "ac ÃŃm", + "acÃŃ m", + "ãĥ© ãĤ¯", + "X H", + "Ġس رد", + "Ġسر د", + "Ġद स", + "t ember", + "tem ber", + "ĠDoÄŁ um", + "ĠDoÄŁu m", + "ĠпÑĢ оÑĢ", + "ĠпÑĢо ÑĢ", + "θ οÏĤ", + "θο ÏĤ", + "ĠiÅŁ e", + "à¸Ń à¸Ł", + "л аÑĪ", + "ла ÑĪ", + "اص ÙĦÙĩ", + "اصÙĦ Ùĩ", + "l ivÄĽ", + "li vÄĽ", + "liv ÄĽ", + "ë¶Ģ ë¶Ħ", + "н ак", + "на к", + "åįģ ä¸ī", + "ส าห", + "à¸Ľà¸£à¸°à¹Ģà¸Ĺศ à¹Ħà¸Ĺย", + "ãĤŃ ãĥ³ãĤ°", + "ĠмеÑĤ оÑİ", + "Ġkullan arak", + "âij ¡", + "ÛĮز ات", + "ĠÙħÙĪب اÛĮÙĦ", + "ĠзнаÑĩ иÑĤ", + "Ġзна ÑĩиÑĤ", + "Ġorgan izace", + "Ġorganiz ace", + "ÑĢ ии", + "ÑĢи и", + "ov na", + "Ġ ê²½ìłľ", + "Ġê²½ ìłľ", + "ãĢģ å½¼", + "Ġम स", + "Ġ à¹Ĥà¸Ľà¸£", + "Ġà¹Ĥ à¸Ľà¸£", + "L ARI", + "LA RI", + "LAR I", + "æĩ Ĥ", + "Ġ ва", + "Ġв а", + "ĠÙĥ ÙĨت", + "ĠÙĥÙĨ ت", + "ĠÑĢабоÑĤ а", + "ĠÑĢаб оÑĤа", + "ĠÑĢабо ÑĤа", + "Âł ĠÂłĠÂł", + "ÂłĠ ÂłĠÂł", + "ÂłĠÂł ĠÂł", + "好 äºĨ", + "ĠzamÄĽst n", + "ж енÑĮ", + "же нÑĮ", + "жен ÑĮ", + "Ġu kon", + "Ġuk on", + "nÄĽ né", + "nÄĽn é", + "Ġ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "ĠاÙĦخاص Ø©", + "ĠÄį asu", + "ĠÄįas u", + "å°ı 说", + "ĠØŃر کت", + "æij Ħ", + "Ïĩ Ïī", + "ĠÑģв еж", + "æĸ° éĹ»", + "Ġ ìĭ±", + "Ġìĭ ±", + "Ġe ÄŁer", + "ĠeÄŁ er", + "Ġsitu ace", + "Ġ ç·¨", + "Ġç ·¨", + "Ġç· ¨", + "f ik", + "fi k", + "ë§ Īëĭ¤", + "ë§Ī ëĭ¤", + "Îķ Îļ", + "Ġê°ľ ìµľ", + "Ġc Ãł", + "ا دث", + "اد Ø«", + "Ġsay ıda", + "Ġsayı da", + "ĠØ£ ÙģضÙĦ", + "ĠØ£Ùģ ضÙĦ", + "æ³ķ éĻ¢", + "Ġ .,", + "Ġ. ,", + "ĠTh Æ°Æ¡ng", + "Ïģ ÏĮÏĤ", + "ÏģÏĮ ÏĤ", + "ãģĹ ãĤĪãģĨ", + "Ç İ", + "æ ij¸", + "æij ¸", + "Ġ éĻ³", + "ĠéĻ ³", + "¥ IJ", + "ฤ à¸Ķ", + "Ġgi ảng", + "Ġgiả ng", + "Ġgiản g", + "ĠлÑİ Ð±Ð¾Ð²", + "ĠлÑİб ов", + "Ġek ran", + "о пиÑģ", + "оп иÑģ", + "еж дÑĥ", + "Ġназ ва", + "æĭ ĵ", + "ı f", + "à¹Ī à¸ģ", + "и ÑĩнÑĸ", + "иÑĩ нÑĸ", + "Ġ ê³Ħíļį", + "Ġê³Ħ íļį", + "à¸ł าà¸Ħม", + "à¸łà¸²à¸Ħ ม", + "Ġ اپ", + "Ġا Ù¾", + "리 ìĿĺ", + "ãģ§ãģĻ ãģĮ", + "Ġkon ci", + "Ġکار خاÙĨÙĩ", + "Ġ ä½ķ", + "ĠÑĤ ва", + "ĠÑĤв а", + "ĠÐŁ оÑģÑĤ", + "ĠÐŁÐ¾ ÑģÑĤ", + "ĠÐŁÐ¾Ñģ ÑĤ", + "ĠапÑĢ елÑı", + "ĠاÙĦع راÙĤ", + "ä¸Ń åįİ", + "à¹ĩ à¸Ńà¸ģ", + "à¥įत à¤ķ", + "Ġz ájem", + "Ġzá jem", + "Ġدر جÙĩ", + "Ġब à¥ľ", + "ĠÑģÑĤ ÑĢан", + "ĠÑģÑĤÑĢ ан", + "ĠÑģÑĤÑĢа н", + "èѦ å¯Ł", + "Ġyer leÅŁtir", + "ĠyerleÅŁ tir", + "ĠV Å©", + "ç¾İ åħĥ", + "Ġì¡° ê¸Ī", + "Ġ รà¸Ńà¸ĩ", + "Ġร à¸Ńà¸ĩ", + "Ġak adem", + "Ġaka dem", + "à¸Ħ à¸ĵะ", + "Ġpoz it", + "Ġkon eÄį", + "Ġkone Äį", + "è°ĥ æŁ¥", + "Ġ ãģĭ", + "ĠÄįerv ence", + "ĠOd kazy", + "ĠëıĦ ìĭľ", + "ั สà¸Ķ", + "ัส à¸Ķ", + "Ġg ái", + "ĠÐł об", + "Ġб оÑı", + "Ġбо Ñı", + "æī ©", + "å¼Ģ å±ķ", + "a nik", + "an ik", + "ani k", + "Ġvy ž", + "ĠbaÅŁ lay", + "Ġbak Ä±ÅŁ", + "ek ce", + "ÑģÑĤ ика", + "ÑģÑĤи ка", + "еÑĢа ÑĤÑĥÑĢа", + "еÑĢаÑĤÑĥ ÑĢа", + "Ġë¶Ħ ë¥ĺ", + "ĠPo Äįet", + "od áÅĻ", + "ëĭĺ ìĿĺ", + "Ġk lid", + "Ġkl id", + "Ġkli d", + "Û² Û¹", + "ĠÚĨ ÛĮز", + "m ür", + "Ġs ứ", + "ÙĬا ÙĨØ©", + "ÙĬاÙĨ Ø©", + "åĬ ±", + "Ġ oku", + "Ġo ku", + "Ġok u", + "Ġв оди", + "Ġво ди", + "Ġвод и", + "ĠزÛĮر ا", + "ĠزÛĮ را", + "大 åĪ©", + "ĠÙĦ ÛĮÙĨÚ©", + "ĠÙĬ جب", + "ĠÙĬج ب", + "Ùħ ÛĮÙĦ", + "ÙħÛĮ ÙĦ", + "ĠÏĥ ÏĦÏģα", + "æĻ ĵ", + "ิ สà¸ķ", + "ิส à¸ķ", + "ĠÅŁ iddet", + "ĠÑĢекомен да", + "Ġpožad av", + "Ġп ÑĸÑģ", + "åħ¬ å¼ı", + "Ġ Ú¯ÛĮرÛĮ", + "ĠÚ¯ ÛĮرÛĮ", + "ĠÚ¯ÛĮ رÛĮ", + "ĠÚ¯ÛĮر ÛĮ", + "к ÑĤа", + "кÑĤ а", + "ĠÙħÙĨ اطÙĤ", + "Ġfirm y", + "Ġfir my", + "Ġ à¹Ħà¸Ľ", + "Ġà¹Ħ à¸Ľ", + "Ġ ÎŃÏģγ", + "ĠÎŃ Ïģγ", + "å¿« éĢŁ", + "ãģĮ ãģªãģĦ", + "н еÑģÑĤи", + "не ÑģÑĤи", + "неÑģ ÑĤи", + "Ġ ç²¾", + "Ġç² ¾", + "ÑĢ ади", + "ÑĢа ди", + "ÑĢад и", + "ãĤĴ ãģĭ", + "ïº ª", + "ky nÄĽ", + "Ġह त", + "t ak", + "ta k", + "ĠÙĬÙĪÙĨ ÙĬÙĪ", + "ö ÄŁ", + "Ġ ÑĢÑĥк", + "ĠÑĢ Ñĥк", + "ĠÑĢÑĥ к", + "åľĭ éļĽ", + "Ñİ ÑģÑĮ", + "Ġдав но", + "Ġp opis", + "Ġpop is", + "Ġpo pis", + "ĠB Ä°L", + "ĠÙĨ ÙĤد", + "ĠÙĨÙĤ د", + "ĠÑģп ож", + "ÑĨион нÑĭÑħ", + "ĠÑĪ п", + "Ñĥ ÑİÑīиÑħ", + "ÑĥÑİ ÑīиÑħ", + "ÑĥÑİÑī иÑħ", + "ĠвоздÑĥ Ñħ", + "ÑĤ ие", + "ÑĤи е", + "ĠU ž", + "ÏĮ δ", + "à¸ģร าà¸Ħม", + "Ġalan ında", + "Ġalanı nda", + "Ġs ắt", + "ãĥIJ ãĤ¤", + "Ng Ãły", + "Ġ ë¹Į", + "Ġë¹ Į", + "ï¼ī ãģ¯", + "Ġ ä¿¡", + "Ðķ С", + "ĠT ato", + "ĠTa to", + "ĠTat o", + "Ġún ora", + "e rap", + "er ap", + "era p", + "Ä ł", + "ĠT áºŃp", + "Ġкомп ании", + "ãĥ© ãĤ¤ãĥĪ", + "ãĥ©ãĤ¤ ãĥĪ", + "éľĢ æ±Ĥ", + "Ġت ÙĪÙĤ", + "ĠتÙĪ ÙĤ", + "âĢĻ âĢĻ", + "ëŀį ëĭĪëĭ¤", + "ĠквÑĸÑĤ нÑı", + "Ġoyun cu", + "ÂĢÂĢÂĢÂĢ ÂĢÂĢÂĢÂĢ", + "åĨ Ĭ", + "Ġyap mÄ±ÅŁ", + "ัà¸ĩ à¹Ħม", + "Ġзап аÑħ", + "á la", + "ál a", + "ĠÑĤеÑħ ниÑĩеÑģ", + "Ġ ØŃص", + "ĠØŃ Øµ", + "ร à¸Ķ", + "å¼ Ħ", + "ĠÚ¯ÛĮ اÙĩ", + "اÙĩ رة", + "اÙĩر Ø©", + "Ġà¤ı ड", + "ним аеÑĤ", + "нима еÑĤ", + "ا دÙĨ", + "اد ÙĨ", + "Îľ Îij", + "Ġ 社", + "Ġç¤ ¾", + "аÑĢ Ñĩ", + "ت ز", + "æ¶ ¦", + "in izin", + "ini zin", + "iniz in", + "inizi n", + "Ġbey az", + "Ġ بÙĪÙĦ", + "Ġب ÙĪÙĦ", + "ĠبÙĪ ÙĦ", + "åĿ ¡", + "ãģ® ãĤĪãģĨãģ«", + "Ġyap tıģ", + "Ġyaptı ÄŁ", + "Ġd aģı", + "Ġda ģı", + "ĠdaÄŁ ı", + "ĠbaÅŁ arı", + "ĠbaÅŁar ı", + "Ġ ÏĢά", + "ĠÏĢ ά", + "ĠпÑĢод аж", + "B á»Ļ", + "Ġत त", + "Ġpod stat", + "Ġpods tat", + "Ġ æµģ", + "Ġæµ ģ", + "Ġzdrav ÃŃ", + "Ġ ç¡", + "Ġç ¡", + "Ġ opak", + "Ġo pak", + "Ġop ak", + "Ġhá»į a", + "æĭ Ķ", + "Ñĥ жд", + "Ñĥж д", + "Ġtr ứng", + "ÙĪر ÙĬØ©", + "ÙĪرÙĬ Ø©", + "Ñĭ л", + "um suz", + "ums uz", + "Ġ سبب", + "Ġسب ب", + "许 å¤ļ", + "å®ŀ éªĮ", + "Ġб оли", + "Ġбол и", + "Ġбо ли", + "Ġd uyá»ĩt", + "áºŃ c", + "ĠÐij ез", + "ĠبÙĦ ÙĨد", + "м м", + "ÑĢ ел", + "ÑĢе л", + "N Ä°", + "Ġ ãĥ¯", + "Ġãĥ ¯", + "éĭ ¼", + "ĠÑģв Ñı", + "Ġ åIJİ", + "ĠåIJ İ", + "Ġmu ht", + "Ġmuh t", + "ĠпÑĢоблем и", + "ĠÑĤÑıж ел", + "ĠС ем", + "ฤษ à¸łà¸²à¸Ħม", + "à¹Ī าà¸ķ", + "à¹Īา à¸ķ", + "ör ü", + "üy orum", + "üyor um", + "ĠاÙĦØ£ ØŃ", + "ĠÑģÑĤÑĢ аÑĪ", + "ĠÑģÑĤÑĢа ÑĪ", + "h oo", + "ho o", + "ध र", + "Ġt lak", + "Ġtl ak", + "Ġsrp na", + "ifik ace", + "Ġ reh", + "Ġre h", + "Ġr eh", + "Ġм инÑĥ", + "Ġмин Ñĥ", + "Ġми нÑĥ", + "ãĢĢ j", + "ĠгÑĢÑĥ пи", + "ĠгÑĢÑĥп и", + "Ġ άλ", + "Ġά λ", + "Ġolur sa", + "λογ ία", + "ĠÐĴ ик", + "ĠÐĴи к", + "Ġmüc adel", + "Ġz ávÄĽ", + "Ġzá vÄĽ", + "Ġzáv ÄĽ", + "ĠÑĦев ÑĢа", + "Äį ná", + "à¹Į à¹Ģà¸ĭ", + "ĠÙĦ ÙĦØŃ", + "ĠÙĦÙĦ ØŃ", + "ÑĢ ип", + "ÑĢи п", + "Ġб Ñĥк", + "ĠбÑĥ к", + "ãģĪ ãģªãģĦ", + "Ġpo rad", + "Ġpor ad", + "Ġsa mostat", + "Ġsam ostat", + "Ġsamo stat", + "Ġt esis", + "Ġte sis", + "Ġtes is", + "اب ÙĤÙĩ", + "ابÙĤ Ùĩ", + "Ġجد ÙĬدة", + "ĠجدÙĬد Ø©", + "éĢ Ĵ", + "âĶģ âĶ", + "س ÛĮÙĨ", + "سÛĮ ÙĨ", + "Ġgerek tiÄŁini", + "ียà¸Ļ à¸ļ", + "è¨Ģ ãģ£ãģ¦", + "ĠÑĸн ÑĤеÑĢеÑģ", + "ĠÑĸнÑĤеÑĢ еÑģ", + "ĠÑı ким", + "ĠÑıк им", + "Ġ æĢ»", + "ĠæĢ »", + "k ovou", + "ko vou", + "kov ou", + "Ġd emek", + "Ġde mek", + "Ġdem ek", + "اÙĨ ÙĬا", + "اÙĨÙĬ ا", + "Ġdom ů", + "Å¡ nÃŃ", + "ate ÅĻ", + "åĢ «", + "δο Ïĥη", + "Ġ 기ìĹħ", + "Ġ기 ìĹħ", + "åĶ ĩ", + "ì¹ ł", + "Ñĸ дÑĥ", + "Ñĸд Ñĥ", + "린 ìĿ´", + "æľĢ åĪĿ", + "è ¸ı", + "è¸ ı", + "æĥ³ åĪ°", + "à¥į बर", + "à¥įब र", + "Ġ ìŀĶ", + "Ġìŀ Ķ", + "ĠÑĢаз нÑĭÑħ", + "k rom", + "kr om", + "ι αν", + "ια ν", + "Ġд ÑĢÑĥз", + "ĠдÑĢÑĥ з", + "ĠдÑĢ Ñĥз", + "ä »¿", + "ä» ¿", + "Ġê·¸ ëłĩ", + "Ġд алÑĸ", + "Ġда лÑĸ", + "Ġдал Ñĸ", + "æķĪ æŀľ", + "Ġह व", + "è¼ Ŀ", + "Ġì°¸ ê³ł", + "Ġ ìĨĶ", + "ĠìĨ Ķ", + "Ġz nal", + "Ġzn al", + "ĠпеÑĢ Ñģ", + "ÙIJ Ùij", + "ĠÑĤ еж", + "ĠÑĤе ж", + "åĭ Ł", + "ι θ", + "Äį ů", + "Ġe kip", + "Ġek ip", + "Ġk hung", + "Ġkh ung", + "Ġkhu ng", + "éĹ ĺ", + "ĠتصÙħ ÛĮÙħ", + "о иÑĤ", + "ĠÑħ ол", + "æĬ ŀ", + "a mam", + "am am", + "ama m", + "Ġâĸ ³", + "ãģ ĩ", + "Ġع ÙĨÙĩ", + "ĠعÙĨ Ùĩ", + "Ġì°¸ ê°Ģ", + "ĠÎļ ÏĮ", + "åı¤ å±ĭ", + "к овоÑĹ", + "ков оÑĹ", + "ково ÑĹ", + "ศ à¸Ī", + "олог иÑı", + "ĠÙħØ« بت", + "ĠÐļÑĢа ÑĹна", + "ĠмеÑģÑı ÑĨев", + "Ġalın an", + "ĠÏĢÏģα γμα", + "Ġ ìŀ¡ëĭ´", + "Ġìŀ¡ ëĭ´", + "Ġп лод", + "Ġпл од", + "Ġпло д", + "ĠÑĤка ни", + "ÑģÑĭ лки", + "ÑģÑĭл ки", + "سط س", + "ra nÄĽ", + "ran ÄĽ", + "к аж", + "ка ж", + "е маÑĤи", + "ем аÑĤи", + "ема ÑĤи", + "Ġز ÛĮست", + "ĠزÛĮ ست", + "æ¿ Ł", + "Ġpop lat", + "Ġpo plat", + "γ ÎŃν", + "íĨł íĨł", + "Ġt ây", + "Ġìµľ ê·¼", + "ãĥ© ãĥ³ãĤ¹", + "ãĥ©ãĥ³ ãĤ¹", + "Ġgün eÅŁ", + "Ġ ÙģÙĤ", + "ĠÙģ ÙĤ", + "ĠsaÄŁ layan", + "ĠsaÄŁlay an", + "ĠØŃ Ø²Ø¨", + "à¥ģल न", + "ĠB ilim", + "ĠBi lim", + "ĠBil im", + "ĠB atı", + "ĠBa tı", + "ĠBat ı", + "æł· çļĦ", + "δ ικ", + "δι κ", + "α ÏģίοÏħ", + "αÏģ ίοÏħ", + "Ġ ìĽĢ", + "ĠìĽ Ģ", + "Ġl á»Ńa", + "ÙĨ ÙĪع", + "çİ ²", + "а ном", + "ан ом", + "ано м", + "Ġst átnÃŃ", + "Ġstát nÃŃ", + "Ġ äºİ", + "Ġm ùi", + "ĠÄij á»Ļt", + "ĠÄijá»Ļ t", + "æ² ĥ", + "åħ¬ åľĴ", + "ĠÑģ ÑĮогоднÑĸ", + "но Ñģи", + "ноÑģ и", + "Z a", + "Ġд ли", + "ĠÏĥÏħν ÎŃ", + "ĠV á»ĭ", + "m av", + "ma v", + "ĠM üslüman", + "/ ï¼ı", + "ĠзаÑī иÑĤ", + "é ĸī", + "éĸ ī", + "Ġ çģ«", + "Ġçģ «", + "Ġ å·Ŀ", + "Ġå· Ŀ", + "Ġ аж", + "Ġа ж", + "è¿ĩ æĿ¥", + "à¸Ĺ าà¸Ļ", + "ĠAr aÅŁtır", + "ĠAra ÅŁtır", + "Õ¡ Õ", + "Ġpo mÄĽr", + "Ġpom ÄĽr", + "Ġd ům", + "Ġdů m", + "å¦ ®", + "Ġhlav nÄĽ", + "Ġfin ans", + "Ġfinan s", + "Ġ γνÏī", + "Ġγ νÏī", + "ÏĥÏĦη μα", + "ï¼Į çĶ¨", + "ìĭŃ ìĭľìĺ¤", + "ĠÙħ ثاÙĦ", + "ĠÙħØ« اÙĦ", + "- Ðij", + "ÑĨÑĸй нÑĸ", + "Ġد ستÙĩ", + "Ġدست Ùĩ", + "Ġدس تÙĩ", + "à¥ī स", + "ÑĢ Ñĸп", + "ÑĢÑĸ п", + "ĠpÅĻi pom", + "ĠpÅĻip om", + "Ġ ÙĪÙĦÙĬ", + "ĠÙĪ ÙĦÙĬ", + "ĠÙĪÙĦ ÙĬ", + "ĠÙĪ زÙĨ", + "ĠÙĪز ÙĨ", + "Ġelekt rik", + "Ġelektr ik", + "ĠQu ân", + "i vé", + "iv é", + "Ġl ẽ", + "ç®Ģ åįķ", + "Ġon lara", + "Ġonlar a", + "оÑģ лав", + "ìĭľ íĤ¤", + "ëª ¬", + "ĠÙħÙĤ دار", + "ĠÙħÙĤد ار", + "ĠOr ta", + "ĠOrt a", + "ĠS eç", + "ĠSe ç", + "ĠÙĨÙĪÙģ Ùħبر", + "ุà¸Ļ ายà¸Ļ", + "ĠÑĥм ови", + "ĠÑĥмов и", + "Ġपर म", + "Ġ strom", + "Ġst rom", + "Ġstr om", + "Ġstro m", + "ĠкÑĢа Ñīе", + "ç§ ¦", + "缸 æīĭ", + "鼻 è¦ĸ", + "Ġuygu lama", + "Ġuygulam a", + "Ġ ÑĢиз", + "ĠÑĢ из", + "æĪ ²", + "य र", + "ĠH lav", + "Ġ ìĭ¸", + "Ġìĭ ¸", + "Ġли пнÑı", + "ÅĪ ujÃŃ", + "ÑĢ из", + "ÑĢи з", + "é«ĺ éĢŁ", + "缸 å½ĵ", + "k enin", + "ke nin", + "ken in", + "Ġо ÑģÑĤанов", + "ĠоÑģÑĤ анов", + "ĠоÑģÑĤан ов", + "Ġbit k", + "Ġbi tk", + "ova ného", + "ovan ého", + "ované ho", + "ĠÐľ аÑĢи", + "ĠÐľÐ°ÑĢ и", + "ĠÐľÐ° ÑĢи", + "èµ ¶", + "ì½ ©", + "Ġölç ü", + "ĠС еÑĢед", + "ĠСеÑĢ ед", + "ĠTh á»Ŀi", + "Ïī να", + "Ïīν α", + "ÙĪ بة", + "ÙĪب Ø©", + "Ġch ụp", + "âĢĮ د", + "Ġch áy", + "ĠÐĴ ели", + "Ġоб ÑģÑĤ", + "ĠобÑģ ÑĤ", + "Ġìĭľ ì¦Į", + "د ÙħØ©", + "دÙħ Ø©", + "п од", + "по д", + "l ue", + "lu e", + "ĠдÑĸ лÑıн", + "ĠÙ¾ ÙĪست", + "ĠاÙĦ ÙĨس", + "ĠاÙĦÙĨ س", + "èĤ Į", + "ìĪĺ 를", + "Ġú rov", + "ĠÙħØ´ Ú©ÙĦ", + "ĠÙħØ´Ú© ÙĦ", + "éĩįè¤ĩ éĩįè¤ĩ", + "н ез", + "не з", + "Ġdop oruÄį", + "Ġtas arım", + "Ġtasar ım", + "íģ¬ 기", + "ìĿ´ ìħĺ", + "Ġde set", + "Ġdes et", + "Ġdese t", + "ĠÙħرتب Ø·", + "ัà¸Ĵ à¸Ļา", + "ัà¸Ĵà¸Ļ า", + "' ı", + "Ñĩ ки", + "ĠìŀĪ ëįĺ", + "ÑĪ ка", + "n ám", + "ná m", + "ÑģÑĤ ÑĢов", + "ÑģÑĤÑĢ ов", + "ÑģÑĤÑĢо в", + "à¥į सर", + "à¥įस र", + "нÑĥ лаÑģÑĮ", + "нÑĥла ÑģÑĮ", + "ãģ¡ãĤĩ ãģ£ãģ¨", + "Ġ å¦", + "Ġå ¦", + "γ ÏĮ", + "Ġ é»ij", + "Ġé» ij", + "X em", + "Ġt á»ĩ", + "Ġtá» ĩ", + "ĠëĮĢ íĨµëł¹", + "기 ê´Ģ", + "æīį èĥ½", + "è¯Ń è¨Ģ", + "ed eyse", + "ĠТ Ñĭ", + "ĠÑģо един", + "ĠìĹĨ ìĬµëĭĪëĭ¤", + "Ñı ÑİÑĤ", + "à¹ģ หล", + "à¹ģห ล", + "Ġì§Ģ ë°©", + "Ġosob nÃŃ", + "ÛĮ ÙĦÛĮ", + "ÛĮÙĦ ÛĮ", + "Ġавг ÑĥÑģÑĤа", + "Ñī ик", + "Ñīи к", + "Ġvý Å¡e", + "g th", + "gt h", + "ĠÏĢ αν", + "ĠÏĢα ν", + "ج ار", + "جا ر", + "Ġвид ов", + "Ġви дов", + "ìĿ´ ìĬĪ", + "ĠÐij аÑĢ", + "ĠÏĮ ÏĢοÏħ", + "æ¤ ħ", + "Ġع اÙĦÛĮ", + "ĠQ uyết", + "ĠQuy ết", + "Ãľ M", + "ãĥĿ ãĤ¤ãĥ³ãĥĪ", + "Ġ ê¹Į", + "Ġê¹ Į", + "Ġкан ди", + "k ového", + "kov ého", + "kové ho", + "ĠMerk ez", + "Ġy iy", + "Ġyi y", + "ĠpÅĻÃŃ spÄĽ", + "ĠÑĤемпеÑĢаÑĤÑĥ ÑĢÑĭ", + "ĠÙ¾ ÙĬ", + "ฤ ศà¸Ī", + "è°ĥ çĶ¨", + "ĠÑģÑĤоÑĢ онÑĥ", + "ĠÑģÑĤоÑĢон Ñĥ", + "à¹ī à¸Ĭ", + "好 ãģį", + ". Åŀ", + "Ġп ÑĢоз", + "ĠпÑĢ оз", + "ĠпÑĢо з", + "ÙĨت اج", + "鼻 åŃIJ", + ".: .:.", + ".:.: .", + ".:. :.", + "è¨ ĵ", + "и ÑĩеÑģкое", + "иÑĩеÑģ кое", + "Ġн оги", + "Ġно ги", + "Ġног и", + "Ġ λÎŃ", + "Ġλ ÎŃ", + "Ġsık ıntı", + "Ġê°Ģ 족", + "ĠتÙĨ ظÙĬÙģ", + "ĠتÙĨظ ÙĬÙģ", + "Ġö dül", + "ĠaÅŁaģı daki", + "Ġž elez", + "Ġže lez", + "ĠاÙĦع دÙĬد", + "غ ÙĨ", + "Ġокон Ñĩ", + "ÑĢем Ñı", + "ÑĢе мÑı", + "L Ä°", + "Ġne jd", + "Ġnej d", + "Ġ ÏĢλα", + "ĠÏĢ λα", + "Ñģ ко", + "Ñģк о", + "Ġ ìĪĻ", + "ĠìĪ Ļ", + "ĠÙ¾ ÙĪÙĦ", + "θεν ήÏĤ", + "Ġ주 ìļĶ", + "Ġ æĬ¥", + "ĠæĬ ¥", + "ĠÙħ Ùħا", + "ĠÙħÙħ ا", + "Ðł Ð¡Ðł", + "ĠÑĢа дÑĸ", + "ĠÑĢад Ñĸ", + "ä¸Ģ ç§į", + "é¾ Ħ", + "Ġsö yl", + "Ġsöy l", + "Ïģκε ια", + "Ïģκ εια", + "Ġзем лÑĸ", + "Ġve Äįer", + "g eç", + "ge ç", + "س تÙħ", + "ست Ùħ", + "Ġse fer", + "ĠÑģ вÑĸд", + "ĠÑģв Ñĸд", + "ï»Ł ï»", + "а лов", + "ал ов", + "ало в", + "ìĬ¤ 를", + "âī ¥", + "ĠتÙĦ ÙģÙĨ", + "ĠتÙĦÙģ ÙĨ", + "åİ» äºĨ", + "़ à¥ĭà¤Ĥ", + "़à¥ĭ à¤Ĥ", + "ĠÑĦоÑĢм е", + "ĠÑĦоÑĢ ме", + "d üm", + "dü m", + "åħ ģ", + "ÑĢ ап", + "ÑĢаР¿", + "ÑĢа п", + "ĠV Æ°Æ¡ng", + "à¸Ńะ à¹Ħร", + "ัà¸ģษ à¸ĵ", + "Ġ åį³", + "Ġåį ³", + "ĠاÙĦ رÙħ", + "ĠاÙĦر Ùħ", + "ĠзаÑħиÑģÑĤ Ñĥ", + "° E", + "o dÃŃ", + "od ÃŃ", + "Ġव न", + "ĠÄij èn", + "Ġ åıĹ", + "Ġåı Ĺ", + "èIJ½ ãģ¡", + "Ġ zim", + "Ġz im", + "Ġzi m", + "리 ì¦Ī", + "èĪ Ĵ", + "Ġзб ÑĸÑĢ", + "Ġ ä»·æł¼", + "ĠлÑİ Ð´Ð¸Ð½Ð°", + "ĠлÑİд ина", + "ĠлÑİди на", + "ĠÐŁÐ¾Ñģ иланнÑı", + "и Ñī", + "ĠÎ ¨", + "ิà¸ģ ายà¸Ļ", + "ิà¸ģา ยà¸Ļ", + "Ġbu dete", + "Ġbud ete", + "Ġbude te", + "Ġз ÑĢоÑģÑĤ", + "Ġ vyk", + "Ġv yk", + "Ġvy k", + "ĠÐĹ ÐµÐ¼", + "ĠиÑİ Ð½Ñı", + "ĠmÄĽ lo", + "ĠmÄĽl o", + "ÙĦ اÙģ", + "ÙĦا Ùģ", + "Ġ ÙĪØ´", + "ĠÙĪ Ø´", + "ĠÑģп ÑĢави", + "ĠÑģпÑĢав и", + "ãģĻ ãģİ", + "ĠгÑĢа дÑĥ", + "ĠгÑĢ адÑĥ", + "R oz", + "Ro z", + "ι νή", + "ιν ή", + "Ġch á»ĵng", + "ä¸Ģ åį·", + "Ġ Xem", + "ĠX em", + "ĠÑģимв ол", + "ĠÑģим вол", + "Ġod mÃŃt", + "ĠÑĢÑıд ом", + "ĠÑĢÑı дом", + "ĠÑĩеÑĢв нÑı", + "à¸ģระ à¸Ĺ", + "人 人", + "æ°Ĺ æĮģãģ¡", + "un daki", + "und aki", + "unda ki", + "åľĭ 家", + "εÏģ μαν", + "Ġ лÑĮ", + "Ġл ÑĮ", + "ĠN üfus", + "Ġм еÑĢе", + "ĠмеÑĢ е", + "بر اÙĬر", + "н аннÑı", + "Ġ наÑĢ", + "Ġн аÑĢ", + "Ġна ÑĢ", + "Ġt ấm", + "æĸ½ å·¥", + "é¡ ¯", + "Ġh è", + "æĺİ çĻ½", + "Ġдо гов", + "Ġдог ов", + "ĠÙģ رÙħ", + "ĠÙģر Ùħ", + "èĢ Ĺ", + "ìĬ¤ ìĿĺ", + "ìĦ¸ ëĮĢ", + "è¯ ļ", + "Ġнеб олÑĮ", + "Ġ à¸Ľà¸£à¸°à¸ģ", + "Ġà¸Ľà¸£à¸° à¸ģ", + "Ġì¹ ¼", + "Ġov liv", + "Ġ NGC", + "ĠN GC", + "ĠNG C", + "ãĢĤ ä¸į", + "ا ÙĦÙī", + "اÙĦ Ùī", + "æī £", + ". ÐIJ", + "ÑĢа ÑģÑĤа", + "ÑĢаÑģ ÑĤа", + "ÑĢаÑģÑĤ а", + "ĠÃĩ ev", + "ãģ£ ãģ¡", + "ãģ£ãģ ¡", + "ï¼Į éĥ½", + "Ġrov nÄĽÅ¾", + "ĠÏĩÏģÏĮ νια", + "Ġì¡° ìĦł", + "ĠØ¢ باد", + "Ġآب اد", + "ĠÐľ аÑģ", + "ĠÐľÐ° Ñģ", + "çĻ¼ å±ķ", + "ä» Ķ", + "Ġkend isini", + "Ġkendisi ni", + "à¹Īà¸Ńà¸ĩ à¹Ģà¸Ĺ", + "ĠV ÄĽ", + "Ġr ượu", + "Ġm áme", + "Ġmá me", + "Ġmám e", + "ĠоÑĩеÑĢед ÑĮ", + "Ġسب تÙħبر", + "Ġб ок", + "Ġбо к", + "ì§Ģ ìĹŃ", + "Ġتا Ø«ÛĮر", + "Ġتاث ÛĮر", + "Ġl isans", + "Ġli sans", + "Ġlis ans", + "Ġger ektir", + "Ġgerek tir", + "Ġs izi", + "Ġsi zi", + "Ġsiz i", + "Ñĸ но", + "Ñĸн о", + "ĠM Ã¼ÅŁ", + "ĠMü ÅŁ", + "ãģı ãĤīãģĦ", + "ãģıãĤī ãģĦ", + "Ġза клÑİÑĩ", + "Ġзак лÑİÑĩ", + "ãģĵãģ¨ ãģ«", + "è¨Ģ ãģĦ", + "ãĢģ å°ı", + "Ġet mektedir", + "Ġetm ektedir", + "åł± åijĬ", + "Ġkar Ä±ÅŁ", + "Ġоб лад", + "Ġобла д", + "Ġобл ад", + "å¥ ij", + "ra cat", + "rac at", + "ĠارتÙģ اع", + "μ αι", + "μα ι", + "íĶ Ī", + "ĠÙĪ ÙĦÙħ", + "ĠÙĪÙĦ Ùħ", + "ëĬĶ ì§Ģ", + "lom ou", + "Ġли ÑĨа", + "ĠлиÑĨ а", + "ĠìĿĮ ìķħ", + "Ġhod nÄĽ", + "èĭ± æĸĩ", + " Ħ", + "à¹ī าà¸Ĥà¸Ńà¸ĩ", + "à¹īา à¸Ĥà¸Ńà¸ĩ", + "Ġê³Ħ ìķ½", + "åIJĦ ç§į", + "ĠÙħر Ú¯", + "éĶ ģ", + "Ġन द", + "ãĥĭ ãĥ¡", + "Ġ ем", + "Ġе м", + "Ġe leÅŁtir", + "Ġel eÅŁtir", + "Ġele ÅŁtir", + "Ġ íĬ¹ë³Ħ", + "ĠíĬ¹ ë³Ħ", + "ĠÎ¥ ÏĢο", + "Å¡ ker", + "Å¡k er", + "L ERÄ°", + "LER Ä°", + "æ² Ī", + "l ikleri", + "lik leri", + "likle ri", + "likler i", + "ĠÙħÙĩÙĨد سÛĮ", + "ĠbaÄŁ ır", + "dı ģını", + "dıģ ını", + "ĠاÙĦ تد", + "ĠاÙĦت د", + "à¸¸à¸Ľ à¸ģรà¸ĵ", + "ĠÑģлед ÑĥÑİÑīие", + "ĠÑģледÑĥÑİÑī ие", + "Ġì§ģ ìłij", + "å° ¤", + "ĠоÑģнов Ñĸ", + "Ġt ÄĽla", + "ĠtÄĽ la", + "ĠtÄĽl a", + "Ġп ак", + "Ġпа к", + "iz ace", + "iza ce", + "Ġná rod", + "Ġnáro d", + "a ný", + "an ý", + "ĠÑį п", + "Ġüç üncü", + "Î¥ Ρ", + "éĨ´ éĨ´", + "à¹Ģà¸ģ à¸Ńร", + "âĢĮاÙĨ بار", + "ç¶ Ļ", + "Îij Îł", + "ı lıģı", + "ılı ģı", + "ıl ıģı", + "ılıģ ı", + "ĠÃľ rün", + "Ġдоз вол", + "Ġ íĥĪ", + "Ġíĥ Ī", + "Ġà¤ĵ वर", + "è« ¸", + "èĺ ĩ", + "ĠпÑĢоÑģÑĤ ÑĢан", + "éĿĴ å¹´", + "ãģ® æĸ¹", + "ĠÚĨ Ú¯ÙĪÙĨÙĩ", + "ÙĦ Ø·", + "âĢľ æĪij", + "Ġëĭ¤ìļ´ ë°Ľ", + "ा .Ċ", + "ा. Ċ", + "Ġmüc adele", + "Ġmücadel e", + "Ġc ÃŃt", + "ĠcÃŃ t", + "à¹Īวม à¸ģ", + "ÄŁ ına", + "ģı na", + "ģın a", + "ê°ľ ë°ľ", + "ĠÏĢ αιδ", + "ĠÏĢα ιδ", + "ĠÏĢαι δ", + "ض اÛĮ", + "ضا ÛĮ", + "Ġbor ç", + "íĬ ľ", + "ĠخدÙħ ت", + "Ġخد Ùħت", + "Ġu dál", + "Ġud ál", + "Ġ виг", + "Ġв иг", + "Ġви г", + "Ġ ë°°ìĨ¡", + "Ġë°° ìĨ¡", + "å¹ ¾", + "Ùİ Ø¬", + "Ġ ìĹĺ", + "ĠìĹ ĺ", + "çĢ ¬", + "ï Ģ", + "ĠÎij θή", + "пÑĢи клад", + "ĠпÑĢи Ñĩина", + "ĠпÑĢиÑĩин а", + "ĠпÑĢиÑĩ ина", + "ĠÙģ شار", + "æ »¿", + "æ» ¿", + "Ġd ostat", + "Ġdo stat", + "Ġdos tat", + "Ġdost at", + "Ġ졸 ìĹħ", + "Ġا رز", + "Ġار ز", + "ÙĪÙĦ ÙĪج", + "ÙĪÙĦÙĪ ج", + "س ÙĪ", + "æĺł çĶ»", + "Ġth ôi", + "Ġ ³³³", + "ĠÂł ³³", + "Ġ³³ Âł", + "à¹ģ à¸Ļะ", + "à¹ģà¸Ļ ะ", + "è¨Ń åĤĻ", + "Ġмног ие", + "ÑĤ оÑĦ", + "ÑĤо ÑĦ", + "i Å¡tÄĽ", + "iÅ¡ tÄĽ", + "à¤Ĺ ढ", + "Ġин дивидÑĥ", + "Ġ ìĥĿíĻľ", + "ĠìĥĿ íĻľ", + "Ġзов ÑģÑĸм", + "íĥ ķ", + "çľ ł", + "ĠêµŃ ëĤ´", + "e ptal", + "ep tal", + "ept al", + "r aci", + "ra ci", + "rac i", + "è¡ ¡", + "ãĦ ·", + "ĠSt ÅĻed", + "اÙĦ ÙĬا", + "اÙĦÙĬ ا", + "Σ Τ", + "Ľ °", + "ãĥī ãĥ«", + "á zÃŃ", + "áz ÃŃ", + "Ġа Ñģп", + "ĠаÑģ п", + "ĠdÄ±ÅŁ arı", + "ĠвиÑĢоб ниÑĨÑĤва", + "e za", + "ez a", + "ï¼Į ä¸įè¿ĩ", + "ï¼Įä¸į è¿ĩ", + "çĥ ¦", + "ãĥ³ ãĤ°ãĥ«", + "ãĥ³ãĤ° ãĥ«", + "Ġroz voj", + "ĠÙħÙĨت شر", + "ĠÑĥÑĤ еп", + "Ġد ÙĬÙĨ", + "ĠدÙĬ ÙĨ", + "ĠзаÑģоб Ñĸв", + "Ng Æ°á»Ŀi", + "ãĤ· ãĥ¼", + "ĠFran sız", + "ÎĻ Τ", + "ائ Ùģ", + "ι Ïĩ", + "ี à¹Ģม", + "à¥į मन", + "à¥įम न", + "à¥įम à¤ļ", + "Ġس عر", + "Ġسع ر", + "ï¾ Ŀ", + "ë°© ë²ķ", + "ĠС о", + "Ġà¤ĸ बर", + "ìĨĮ ê°ľ", + "Ġsl ova", + "Ġslo va", + "Ġslov a", + "Q PCP", + "QP CP", + "ĠK ız", + "ĠKı z", + "Ø· ÙģاÙĦ", + "Ø·Ùģ اÙĦ", + "Ġк оÑĢм", + "ĠкоÑĢ м", + "ĠìĹħ ëį°ìĿ´íĬ¸", + "es poÅĪ", + "esp oÅĪ", + "à¸Ķ าว", + "à¸Ķา ว", + "о ÑĢом", + "оÑĢ ом", + "оÑĢо м", + "ĠгÑĢа ÑĦ", + "ĠгÑĢ аÑĦ", + "Ġп ÑĸÑĪ", + "Ġ ë¿IJ", + "Ġë ¿IJ", + "ý v", + "С ам", + "Ġk rev", + "Ġkr ev", + "Ġkre v", + "ĠB unu", + "ĠBu nu", + "ĠBun u", + "Ġz obraz", + "Ġسخ ÙĨ", + "Ġ æĶ¯", + "ĠæĶ ¯", + "лÑİ Ð±", + "Ùİ Ø§ÙĨ", + "Ùİا ÙĨ", + "маÑĤ ÑĢива", + "λ εÏį", + "λε Ïį", + "Ġпо Ñħод", + "ĠпоÑħ од", + "Ġг ÑĢе", + "ĠгÑĢ е", + "çľĭ çĿĢ", + "à¸Īำ à¸ģ", + "ัà¸ĩà¸Ħ ม", + "Ġseç enek", + "Ä° stanbul", + "ĠвÑĸд мов", + "m iyor", + "mi yor", + "Ġm ụn", + "ìĿ´ ìĹIJ", + "ĠNh Æ°", + "Âł tom", + "Âłt om", + "lık ları", + "lıkla rı", + "lıklar ı", + "Âł Äij", + "ãĥ» ãĥŀ", + "Ġ Ùģت", + "ĠÙģ ت", + "ĠFakült esi", + "ìłĦ íŀĪ", + "éª ij", + "Ġìŀij ìĿĢ", + "ç¼ ĺ", + "ìº IJ", + "Ġmü zik", + "Ġmüz ik", + "а лÑĭ", + "ал Ñĭ", + "Ġp ozem", + "Ġpo zem", + "Ġpoz em", + "çĥ §", + "Ġ 常", + "Ġå¸ ¸", + "Å¡ il", + "Å¡i l", + "à¤Ĩ प", + "à¸ģำ หà¸Ļà¸Ķ", + "Ġگرد Ø´", + "λ ιά", + "λι ά", + "Ġö den", + "åıª è¦ģ", + "ĠÄIJ o", + "Ġstrat ej", + "Ġstra tej", + "Ġstrate j", + "ĠÙĩ تÙĦ", + "ÙĤ Ùģ", + "Ġkullan ılır", + "Ġkullanıl ır", + "ĠÑģп оÑģÑĤ", + "ĠÑģпоÑģ ÑĤ", + "ĠnÄĽ ho", + "ĠÐŁ еÑĢед", + "ĠÐŁÐµÑĢ ед", + "Ġиз меÑĢ", + "] ]>", + "]] >", + "ĠнÑĸк оли", + "Ġha yal", + "Ġhay al", + "Ġhaya l", + "Ġдод аÑĤков", + "Ġन à¤ķ", + "Ġins anın", + "Ġinsan ın", + "ุม à¸łà¸²à¸ŀ", + "ograf ie", + "в об", + "во б", + "ĠاÙĨ ساÙĨÛĮ", + "ĠاÙĨساÙĨ ÛĮ", + "Ġm ük", + "Ġmü k", + "ĠÑĥ меÑĢ", + "ĠÑĥм еÑĢ", + "оÑĩ нÑĭе", + "ëıĦ ìĿĺ", + "Ġ ara", + "Ġa ra", + "Ġar a", + "Ġë¹ ¨", + "Ġκ Ïį", + "л ой", + "ло й", + "Ñģи он", + "Ġroz dÃŃl", + "ay ıf", + "ayı f", + "ĠÙĪاØŃ Ø¯Ø©", + "ĠÙĪاØŃد Ø©", + "ĠÙĪا ØŃدة", + "о ÑĢалÑĮ", + "оÑĢ алÑĮ", + "оÑĢа лÑĮ", + "Ġpo chop", + "Ġpoc hop", + "éļ ¨", + "à¹īà¸Ń à¸ĩà¸Ļ", + "à¹īà¸Ńà¸ĩ à¸Ļ", + "Ġ ÙĪاÙĨ", + "ĠÙĪ اÙĨ", + "ĠÙĪا ÙĨ", + "Îľ ε", + "Ġ μον", + "Ġμ ον", + "Ġμο ν", + "Ñĥ ÑĪка", + "ÑĥÑĪ ка", + "or dum", + "ord um", + "æ¸ħ æ¥ļ", + "ĠDe ÄŁ", + "ÏĢ Ïģο", + "ĠÙĪاÙĦ تÙĬ", + "ĠÙĪاÙĦت ÙĬ", + "Ġp okus", + "Ġpo kus", + "Ġpok us", + "íĽĦ 기", + "é¥ ®", + "æĹħ è¡Į", + "Ġжен Ñīин", + "ĠdoÄŁru dan", + "Ġ Ñıб", + "ĠÑı б", + "Ġza ÄįÃŃ", + "ĠzaÄį ÃŃ", + "Ġë³´ ìŬ", + "- CP", + "-C P", + "åIJ ¨", + "à¥ĭ à¤ĸ", + "ÑĢ огÑĢа", + "ÑĢо гÑĢа", + "ÑĢог ÑĢа", + "ler di", + "ìĬ ´", + "Ùı ÙĪا", + "ÙıÙĪ ا", + "Ġustanov enÃŃ", + "Ġд оÑģÑĤав", + "Ġдо ÑģÑĤав", + "ĠдоÑģÑĤ ав", + "Ġfır sat", + "ĠاÙĦÙħÙĩ ÙĨØ©", + "ĠвеÑī еÑģÑĤва", + "ĠвеÑīеÑģÑĤв а", + "Ġн еÑģп", + "Ġне Ñģп", + "ĠнеÑģ п", + "ĠاÙĦکتر ÙĪÙĨ", + "t aÅŁ", + "ta ÅŁ", + "æĪ Ĵ", + "Ġy urt", + "Ġyu rt", + "Ġgir di", + "ĠÐļ Ñĥб", + "Ġ 를", + "Ġë¥ ¼", + "ุ à¹Į", + "ãģĿãģĨ ãģª", + "à¹ī Ċ", + "ĠвÑĭ бÑĢа", + "ĠвÑĭб ÑĢа", + "k ovÄĽ", + "ko vÄĽ", + "kov ÄĽ", + "ĠS iz", + "ĠSi z", + "Ġ گاÙĩ", + "ĠÚ¯ اÙĩ", + "ĠЧ аÑģ", + "Ġзг Ñĸдно", + ". ÐŁ", + "å§ Ĭ", + "ĠÐļ ÑĥÑĢ", + "ĠìĿĺ íķ´", + "Ġet raf", + "Ġк аÑĪ", + "Ġка ÑĪ", + "ĠØ· ÛĮ", + "ξ ει", + "ξε ι", + "ç² Ĵ", + "ĠØ¢ Ø°", + "Ġböl ge", + "Ġbölg e", + "Ġम à¤ľà¤¬", + "Ġà¤®à¤ľ ब", + "ÙIJ Ùĥ", + "Ġvál ky", + "ãģł ãĤĪ", + "Ġmes aj", + "Ġmesa j", + "ĠpÅĻ ist", + "ĠpÅĻi st", + "Ġtyp u", + "Ġty pu", + "ĠкиÑĪ еÑĩ", + "ãĤī ãģ®", + "Ġkend isi", + "Ġkendi si", + "ĠвÑĸдб Ñĥва", + "ĠвÑĸдбÑĥ ва", + "ä¾ ¯", + "Ġди за", + "ãĢĢ Ċ", + "ĠпÑĢоÑĨеÑģ Ñĥ", + "ĠÑįлек ÑĤÑĢ", + "_P US", + "Ġмног иÑħ", + "Ġk ém", + "Ġké m", + "æŀ ª", + "çİ° 代", + "Ġ éħį", + "Ġé ħį", + "Ġéħ į", + "ë¡ Ń", + "ÑĤи ÑģÑı", + "Ġl ục", + "ĠÙĪ اÙĦØŃ", + "ĠÙĪاÙĦ ØŃ", + "ĠÙĪا ÙĦØŃ", + "p tal", + "pt al", + "pta l", + "ẵ ng", + "ẵn g", + "ÏĢ λ", + "Ġd olu", + "Ġdo lu", + "Ġdol u", + "Ġt òa", + "Ġин огда", + "ĠпоÑĢÑıд ок", + "Як Ñīо", + "âĶ ĺ", + "Ġغ ربÛĮ", + "Ġغرب ÛĮ", + "Ġغر بÛĮ", + "移 åĬ¨", + "ยà¸Ļ à¸ķร", + "ยà¸Ļà¸ķ ร", + "H DATA", + "HD ATA", + "_PUSH DATA", + "_PUS HDATA", + "ĠØ« ابت", + "åĮħ åIJ«", + "ĠÏĢ ÏģÎŃÏĢει", + "़ à¥ĭ", + "åIJį åīį", + "ÑĤ еÑĢи", + "ÑĤе ÑĢи", + "ÑĤеÑĢ и", + "ï½ ¯", + "Ġ åħĪ", + "Ġåħ Ī", + "н ед", + "не д", + "Ïģ οÏįν", + "Ïģο Ïįν", + "ÏģοÏį ν", + "в ей", + "ве й", + "èĤ ĸ", + "ĠÅĻed itel", + "Ġth ép", + "Ġthé p", + "ĠÙĩ ÙģتÙĩ", + "ĠÙĩÙģت Ùĩ", + "ĠдÑĢÑĥг а", + "ĠдÑĢÑĥ га", + "ER Ä°", + "Ġ Ả", + "ĠẠ¢", + "ĠпеÑĢ еÑĢ", + "ĠпеÑĢе ÑĢ", + "Ġж еÑģÑĤ", + "Ġже ÑģÑĤ", + "ĠÄij ẳng", + "ç¦ ®", + "алÑĮ ном", + "алÑĮно м", + "िष य", + "ид енÑĤа", + "иденÑĤ а", + "Ġآخر ÛĮÙĨ", + "Ġ æĵ", + "Ġæ ĵ", + "Ġ มหาว", + "Ġมห าว", + "ĠлÑİ ÑĤого", + "ĠлÑİÑĤ ого", + "Ġб ÑĸзнеÑģ", + "gı ç", + "Ġng á»ĵi", + "оÑĩ нÑĭй", + "Ġo Äįek", + "ĠoÄį ek", + "ĠÙħ رة", + "ĠÙħر Ø©", + "Ġt var", + "Ġtv ar", + "Ġsam ozÅĻejmÄĽ", + "ĠBeled iye", + "Ġв ода", + "Ġво да", + "Ġвод а", + "Ġ Ú¯ÛĮرد", + "ĠÚ¯ÛĮ رد", + "ĠÚ¯ÛĮر د", + "Ġг одÑĭ", + "Ġгод Ñĭ", + "ãģ« è¡Į", + "æĺ¯ æĪij", + "ÑĪ или", + "ÑĪи ли", + "Ġ åĽ½äº§", + "ĠåĽ½ 产", + "ủ i", + "ĠбÑĥд ÑĥÑĤÑĮ", + "ĠбÑĥдÑĥÑĤ ÑĮ", + "ĠбÑĥдÑĥ ÑĤÑĮ", + "ĠÑĢай онÑĥ", + "ĠÑĢайон Ñĥ", + "Ġì ĵ", + "ĠÙĪ اس", + "ĠÙĪا س", + "ĠاÛĮ شاÙĨ", + "ενο δο", + "Ġнез алеж", + "ĠÙ¾ شت", + "Ġپش ت", + "Ġgir iÅŁim", + "ĠgiriÅŁ im", + "Ġд еле", + "Ġдел е", + "Ġде ле", + "ĠاصÙģÙĩ اÙĨ", + "à¸Ķ วà¸ģ", + "ĠاÙĦ ÙĤÙĬ", + "ĠاÙĦÙĤ ÙĬ", + "à¹Į à¸Ī", + "ëª »", + "Ġd ru", + "Ġdr u", + "è¿ ¹", + "ад женнÑı", + "адж еннÑı", + "Ùģ ÙĨ", + "Ïĩ οÏĤ", + "Ïĩο ÏĤ", + "à¹Ĥ à¸Ī", + "e yle", + "ey le", + "å¡ ij", + "Ġu prav", + "Ġup rav", + "Ġз даÑĤ", + "Ġзд аÑĤ", + "Ġзда ÑĤ", + "Ġvid ÄĽt", + "Ġ à¸Ľà¸£", + "Ġà¸Ľ ร", + "Ġ ÑĦеÑĢ", + "ĠÑĦ еÑĢ", + "ÐĨ н", + "Ġ ìµľìĭł", + "Ġìµľ ìĭł", + "l oha", + "lo ha", + "loh a", + "ĠиÑģп ÑĭÑĤ", + "Ġ avan", + "Ġa van", + "Ġav an", + "Ġava n", + "γ οÏħ", + "γο Ïħ", + "ĠGi ấy", + "ãĤ»ãĥ³ ãĤ¿ãĥ¼", + "éģ į", + "е ÑĢаÑħ", + "еÑĢ аÑħ", + "еÑĢа Ñħ", + "Ġê°Ģ ì§Ģê³ł", + "Ġê°Ģì§Ģ ê³ł", + "Ġ ид", + "Ġи д", + "Ġmnoh em", + "æ£Ģ æµĭ", + "Ġet me", + "Ġetm e", + "Ġ تÙħر", + "Ġت Ùħر", + "ĠتÙħ ر", + "ĠbaÅŁ layan", + "ĠbaÅŁlay an", + "ãģı ãĤĮ", + "à¹ĩà¸Ļ à¸ģาร", + "ĠÑħаÑĢакÑĤеÑĢ из", + "Ġanlam ına", + "Ùı Ùĩ", + "ĠÑģеÑĢ пнÑı", + "çķª çµĦ", + "Ġ msgid", + "Ġmsg id", + "Ġms gid", + "Ġzv ÃŃÅĻ", + "ĠzvÃŃ ÅĻ", + "ĠíļĮ ìĽIJ", + "Ġya par", + "Ġyap ar", + "ä¼ĺ åĬ¿", + "ен нÑĭми", + "еннÑĭм и", + "ĠØ£ Ø«", + "ì² Ļ", + "Ġji ného", + "Ġjin ého", + "Ġjiné ho", + "Ġد Ùģاع", + "ĠدÙģ اع", + "ĠØŃÚ© ÙĪÙħ", + "Ġr izik", + "Ġri zik", + "ά λι", + "άλ ι", + "à¸ĩ à¸Ĥ", + "èµ ¢", + "Ġ ÎķÎĽ", + "ĠÎķ ÎĽ", + "Ġok um", + "Ġoku m", + "æĶ¶ åħ¥", + "ĠÚĨ ÛĮÙĨ", + "æľī çļĦ", + "ÑĨ ами", + "ÑĨа ми", + "d ÄĽnÃŃ", + "dÄĽ nÃŃ", + "ĠкоÑĢ аб", + "Ġко ÑĢаб", + "ĠкоÑĢа б", + "Ġa landa", + "Ġal anda", + "Ġalan da", + "ส à¸Ļาม", + "สà¸Ļ าม", + "ï¼ī ãģ®", + "ı sız", + "ıs ız", + "ısı z", + "ÙĬ ÙĬر", + "Ùĥ ÙĬØ©", + "ÙĥÙĬ Ø©", + "Ġnebo Å¥", + "Ġbit ir", + "Ġbi tir", + "Ġ ãĥľ", + "Ġãĥ ľ", + "Ùij ا", + "ï¼ Ĩ", + "ĠاÙĦت ارÙĬØ®", + "มห าà¸Ļà¸Ħร", + "at ürk", + "ãĤ¹ãĥĨ ãĥł", + "θή κη", + "Ġ καν", + "Ġκ αν", + "Ġκα ν", + "ĠS ür", + "ĠSü r", + "Ġd Ä±ÅŁÄ±", + "ĠdÄ±ÅŁ ı", + "Ġk ancel", + "Ġkan cel", + "ĠÙ¾ خش", + "h Pa", + "ĠÄį t", + "ĠпÑĢ оÑħ", + "ĠпÑĢо Ñħ", + "à¹ī à¸Ī", + "Ġê±° ìķ¼", + "ĠдеÑĢжав ного", + "èĤ¡ 举", + "ìĿ´ íģ¬", + "Ùĥ تÙĪر", + "Ùĥت ÙĪر", + "ĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢ", + "ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢ", + "è¨ º", + "Ġب Ùħا", + "ĠبÙħ ا", + "ĠноÑĢм аÑĤив", + "ç iler", + "çi ler", + "à¸ĩ ศ", + "éĽĨ ä¸Ń", + "ÑĢ иÑģ", + "ÑĢи Ñģ", + "Ñĩ аÑĶ", + "Ñĩа ÑĶ", + "li ÄŁin", + "liÄŁi n", + "liÄŁ in", + "ãĥ¼ ãĤ¿ãĥ¼", + "ãĥ¼ãĤ¿ ãĥ¼", + "а ÑĢаÑĤ", + "аÑĢ аÑĤ", + "аÑĢа ÑĤ", + "åĬĽ éĩı", + "ĠÑģÑħ ем", + "åħ¥ åı£", + "离 å¼Ģ", + "ÏģοÏĨοÏģ ίεÏĤ", + "ĠÐĹ Ð°ÑĤем", + "ĠkarÅŁ ısında", + "ĠkarÅŁÄ± sında", + "ĠاÙĨت ظ", + "ï½ Ĭ", + "Ġ eÅŁit", + "ĠeÅŁ it", + "Ġyaz ılı", + "Ġyazı lı", + "Ðļ ом", + "ا زÙĬ", + "از ÙĬ", + "Ġki mse", + "Ġkim se", + "Ġkims e", + "ÑĢа Ñīи", + "ÑĢаÑī и", + "ัà¸ģ ส", + "Ġkan un", + "Ġka nun", + "Ġ ëIJĺìĹĪ", + "ĠëIJĺ ìĹĪ", + "Ġι ÏĥÏĩ", + "Ġм еди", + "Ġмед и", + "æ° §", + "ï¼Į åħ¶ä¸Ń", + "ï¼Įåħ¶ ä¸Ń", + "Ġyok tu", + "Ġ ãĤ½", + "ĠãĤ ½", + "ĠпÑĢи обÑĢеÑĤ", + "ÙĪ ÛĮØ´", + "ÙĪÛĮ Ø´", + "ãħł ãħł", + "Ġکرد Ùħ", + "Ġکر دÙħ", + "Ġdu var", + "Ġ ç¸", + "Ġç ¸", + "ıs ır", + "ısı r", + "Ġïº į", + "ĠÐłÐ¾Ñģ ÑģиÑı", + "à¹ī à¹ĥà¸Ļ", + "Ġ iÅŁi", + "Ġi ÅŁi", + "ĠiÅŁ i", + "d ol", + "do l", + "ĠÙħØŃ ÙħÙĪد", + "ĠÑģам ÑĭÑħ", + "ĠبÙĨابر اÛĮÙĨ", + "ãĤĮ ãģ©", + "ุà¸ķ สาห", + ". »", + "ู à¸Ĭ", + "ĠT ep", + "ĠTe p", + "ãģı ãĤĵ", + "Ġ å¸ĥ", + "Ġå¸ ĥ", + "Ġत ल", + "Ġs erm", + "Ġse rm", + "Ġser m", + "λ ÏĮγ", + "λÏĮ γ", + "ĠÅŀ imdi", + "Ġà¤ľà¤¨ त", + "- ÐĴ", + "è¨ ª", + "ĠвÑĸд пов", + "ิ à¸Ļà¸Ķ", + "ิà¸Ļ à¸Ķ", + "ι ÏĥμÏĮÏĤ", + "ιÏĥμ ÏĮÏĤ", + "Ω Τ", + "âĨĴ âĨĴ", + "ικο ί", + "ĠÑģп ÑĢава", + "ĠÑģпÑĢав а", + "æľº åħ³", + "Ġ ÃĿ", + "Ġà Ŀ", + "Ġм ова", + "Ġмо ва", + "Ġмов а", + "Ġмог ла", + "Ġд лиÑĤелÑĮ", + "ãģĹ ãģ¦ãĤĤ", + "ãģĹãģ¦ ãĤĤ", + "Ġβ Ïģί", + "Ġж од", + "éĹ ª", + "ĠмÑĸ ÑģÑĮкоÑĹ", + "η Ïģε", + "çł Ĥ", + "Ġkter ých", + "Ġkterý ch", + "ĠÐĵ олов", + "ĠÐĵол ов", + "Ġh á»Ļp", + "Ġhá»Ļ p", + "Ġpa nÃŃ", + "Ġpan ÃŃ", + "تÙħ اد", + " ľ", + "åįģ åħŃ", + "κ οÏĤ", + "κο ÏĤ", + "ев ÑĭÑħ", + "æĭ Ĵ", + "ĠÑģÑĤ оÑĢон", + "ĠÑģÑĤоÑĢ он", + "ĠÑģÑĤо ÑĢон", + "Ġph óng", + "ĠÑĥлÑĥÑĩ ÑĪ", + "m rt", + "mr t", + "m par", + "mp ar", + "ĠS lav", + "ĠSl av", + "Ġ kov", + "Ġk ov", + "Ġko v", + "ìĿ¸ ìĿĢ", + "Ġ åºĶ", + "Ġåº Ķ", + "ั à¸ļà¸Ħ", + "ัà¸ļ à¸Ħ", + "Ġk ì", + "Ġa Å¥", + "ÅĻ ÃŃt", + "ÅĻÃŃ t", + "ì° Į", + "Ùħ ÙĨت", + "ÙħÙĨ ت", + "ıyor lar", + "æŃ£ 常", + "н ÑıÑĤÑĤÑı", + "нÑıÑĤ ÑĤÑı", + "r acÃŃ", + "ra cÃŃ", + "rac ÃŃ", + "ĠпиÑĤ аниÑı", + "à¸Īะ à¹Ģà¸Ľ", + "ĠاÙĦÙĩ ÙĨد", + "ĠD ost", + "ĠDo st", + "ĠDos t", + "ĠÐĴаÑģ илÑĮ", + "Ġ íĥĦ", + "Ġíĥ Ħ", + "Ġn ạn", + "à¹Īà¸Ń à¹Ħà¸Ľ", + "رÙĪ ض", + "± ظ", + "Ġbych om", + "à¸Ļ วย", + "à¸Ļว ย", + "ãģł ãģ£ãģ¦", + "ĠÐĺ Ñģп", + "ĠÐĺÑģ п", + "à¸Ħร à¸ļ", + "Ġ สà¸ĸาà¸Ļ", + "Ġส à¸ĸาà¸Ļ", + "ĠëĤ ®", + "j iÅ¡tÄĽ", + "ji Å¡tÄĽ", + "ĠÙģ ÙĪت", + "ĠÙģÙĪ ت", + "ĠCh Æ°Æ¡ng", + "ĠìĿ´ 루", + "ĠpÅĻÃŃ tom", + "t ual", + "tu al", + "b ette", + "be tte", + "bet te", + "bett e", + "Ġsa bah", + "Ġsab ah", + "μ ί", + "Ġm á»ĩnh", + "Ġmá»ĩ nh", + "ãģ® ãģłãĤįãģĨ", + "ãģ®ãģł ãĤįãģĨ", + "Ġzam ÄĽÅĻ", + "åįģ äºĶ", + "ĠìķĬ ìĿĦ", + "اÙĨ ÙĪ", + "е нÑĥ", + "ен Ñĥ", + "ĠÑĥ год", + "ĠÑĥг од", + "ĠV Æ°á»Ŀn", + "Ġëĵ± ìĿĦ", + "Ġbelirt ilen", + "æŁ Ħ", + "Ġtek lif", + "¬ Ĥ", + "Ġпод аÑĤков", + "ĠاÙĦ ÙĨÙĩ", + "ĠاÙĦÙĨ Ùĩ", + "ï¼ ´", + "ìĽ ĥ", + "Ġ हल", + "Ġह ल", + "Ġ имÑĥ", + "Ġи мÑĥ", + "Ġим Ñĥ", + "ĠкоÑĤоÑĢ Ñĭм", + "ï¼Į 以åıĬ", + "ï¼Į以 åıĬ", + "ĠÑĤаб ли", + "ा :", + "Ġب رج", + "Ġبر ج", + "ĠÎŃ Î½Î±Î½", + "ĠÎŃνα ν", + "ĠÎŃν αν", + "ĠÙĬ ÙĪÙĦÙĬÙĪ", + "ý Å¡", + "Ġ ÙĬج", + "ĠÙĬ ج", + "ĠÑĤÑĢо Ñħи", + "æŀ Ŀ", + "Ġd Ãły", + "ĠBur ada", + "ĠBu rada", + "ĠÏĥÏħ μβ", + "ĠÎij ÏģÏĩ", + "ĠÎijÏģ Ïĩ", + "Ġsoci álnÃŃ", + "Ġ Ú¯ÙĪ", + "ĠÚ¯ ÙĪ", + "Ġyan ıt", + "Ġyanı t", + "ãģ¯ ãģªãģĦ", + "ãģ® ä¸Ĭ", + "Ġn úi", + "ĠرÙģت ار", + "ĠÙħ رات", + "ĠÙħر ات", + "ز ÙħاÙĨ", + "زÙħ اÙĨ", + "าà¸Ī ารย", + "ĠÑĩиÑģ лÑĸ", + "Ġس ÙĨت", + "ĠسÙĨ ت", + "ĠÃĸzel likle", + "ì ĩ¼", + "ìĩ ¼", + "ĠÄį ÃŃm", + "AD DE", + "ADD E", + "ãģ® ãĤĪãģĨãģª", + "ÙĪÙĦÙĪ ÚĺÛĮ", + "ĠíĻľ ìļ©", + "ãĢģ ãģ©ãģĨ", + "ĠÎł ÏģÏī", + "çĻ» åł´", + "Ġнад аннÑı", + "Ġм еÑĢеж", + "ĠмеÑĢ еж", + "ĠмеÑĢе ж", + "Ġ ìĿµ", + "ĠìĿ µ", + "jÃŃ cÃŃch", + "jÃŃcÃŃ ch", + "it ou", + "ito u", + "ÙĤ ÙĪÙĦ", + "Ùħ ج", + "Ġب ÙĨد", + "ĠبÙĨ د", + "Ġön üne", + "Ġ ï½°", + "Ġï½ °", + "з в", + "Ġе ÑģÑĤе", + "Ðł Ðĺ", + "ÑĢ ол", + "ÑĢо л", + "a yla", + "ay la", + "Ġк лÑĥ", + "Ġкл Ñĥ", + "æݨ èĸ¦", + "ĠÑĢоз ÑĢаÑħ", + "Ġ ìĥģëĭ´", + "Ġìĥģ ëĭ´", + "ĠÙĨ سÙħØ©", + "ĠÙĨس ÙħØ©", + "Ġви Ñħод", + "à¥Ģ à¤Ĩà¤Ī", + "ĠпÑĢи ÑģÑĤÑĥп", + "ÙĴ ع", + "ĠteÅŁ ekkür", + "дÑı ки", + "Ġfi kir", + "Ġfik ir", + "ัศ à¸Ļ", + "ĠآزÙħ اÛĮØ´", + "Ġb izi", + "Ġbi zi", + "Ġbiz i", + "ÏĨ αÏģ", + "ÏĨα Ïģ", + "æľª æĿ¥", + "æIJ º", + "Ġδ Ïħνα", + "ĠδÏħ να", + "Ġ رÙĪÙħ", + "Ġر ÙĪÙħ", + "ĠرÙĪ Ùħ", + "Ġb undan", + "Ġbund an", + "Ġbun dan", + "ĠÙĤ اÙĦب", + "ĠÙĤاÙĦ ب", + "Ġ haft", + "Ġh aft", + "Ġha ft", + "Ġhaf t", + "å¿ ½", + "ĠÐľ оÑĢ", + "Ġzá pas", + "Ġzáp as", + "Ġ ë¹Ľ", + "Ġë¹ Ľ", + "å» ·", + "äºĪ ç´Ħ", + "Ġkh uyến", + "Ġ ÎijÎĵ", + "ĠÎij Îĵ", + "Ġìŀij ìĹħ", + "ड र", + "Ġjednodu ch", + "à¥ī म", + "ĠdeÄŁ ildi", + "ĠdeÄŁil di", + "Ġk olo", + "Ġko lo", + "Ġkol o", + "Ġد ÙĤÛĮ", + "л ами", + "ла ми", + "лам и", + "ĠH á»įc", + "ĠHá»į c", + "Ġप स", + "ĠÎł ÏģÏĮ", + "ĠâĹ ij", + "Ġ наÑģлÑĸд", + "Ġна ÑģлÑĸд", + "ĠнаÑģ лÑĸд", + "Ġ диви", + "Ġди ви", + "Ġдив и", + "ĠpÅĻes nÄĽ", + "ĠТак им", + "ĠТа ким", + "Ġru kou", + "Ġruk ou", + "ä¸Ģ åĪĩ", + "ĠÑģ пÑĢи", + "ĠÑģп ÑĢи", + "en ské", + "ens ké", + "æĹ ¦", + "ĠÙĤ ÙĨ", + "Ġú stav", + "िश त", + "à¹Į )", + "ĠT rang", + "ĠTr ang", + "ĠTra ng", + "ĠTran g", + "Ġmoh la", + "Ġmohl a", + "ĠÎķ λλην", + "Ġп оки", + "Ġпо ки", + "Ġпок и", + "ĠØ¢ Ùħار", + "ĠØ¢Ùħ ار", + "åIJ ¾", + "ĠÑĢ еÑģп", + "ĠÑĢе Ñģп", + "ĠÑĢеÑģ п", + "Ġta kdir", + "Ġtak dir", + "Ġrahat sız", + "éŁ³ ä¹IJ", + "Ġ âĶĥ", + "ĠâĶ ĥ", + "i lis", + "il is", + "ili s", + "ĠÙĪ اÙĦØ¥", + "ĠÙĪاÙĦ Ø¥", + "å® Ļ", + "Ñĥ мов", + "Ñĥм ов", + "ĠÐĽ иÑĤ", + "ĠÐĽÐ¸ ÑĤ", + ": :::|", + ":: ::|", + ":::: |", + "::: :|", + "åħ ½", + "ĠÙĨزد ÛĮÚ©", + "е лÑĸв", + "ел Ñĸв", + "елÑĸ в", + "θ οÏįν", + "θο Ïįν", + "ìĹIJìĦľ ëıĦ", + "èµĦ æł¼", + "çIJĨ 论", + "ĠKe mal", + "ĠKem al", + "Ġк еÑĢ", + "ษ ายà¸Ļ", + "Ġ åįİ", + "Ġåį İ", + ") ìĹIJ", + "Ġ ëĬĺ", + "ĠëĬ ĺ", + "ãĥĿ ãĥ¼ãĥĪ", + "ĠÐĹ Ð´", + "اص ÙĬÙĦ", + "Ġk atı", + "Ġka tı", + "Ġkat ı", + "ãĤĤãģĹ ãĤĮãģªãģĦ", + "Ġкажд ого", + "Ġ дÑĢ", + "Ġд ÑĢ", + "Ġfut bol", + "ÙĦ ÙĬÙģ", + "ÙĦÙĬ Ùģ", + "Ġì§Ģ ëĤľ", + "ĠÙ¾ÛĮØ´ ÙĨÙĩ", + "ü lük", + "ül ük", + "ülü k", + "Ġ à¸ķำà¸ļล", + "Ġà¸ķำ à¸ļล", + "Ġb áºŃc", + "Ġ åĽł", + "ĠåĽ ł", + "ik ler", + "Ïģ ιά", + "Ïģι ά", + "Ġв важа", + "Ġвваж а", + "Ġvy pl", + "Ġvyp l", + "Ġв низ", + "í Ģ", + "çľ ¾", + "ĠÑģ ила", + "ĠÑģи ла", + "ĠÑģил а", + "ĠналиÑĩи и", + "Ġع راÙĤ", + "ĠاÙĦÙħ Ùĥ", + "å°± ä¼ļ", + "Ġм Ñĸг", + "ĠмÑĸ г", + "ĠÎĮ μιλοÏĤ", + "Ñī его", + "Ñīе го", + "Ġíĸī ìłķ", + "Âł mph", + "Âłm ph", + "Ġma lé", + "Ġmal é", + "ĠÛĮ اÙģتÙĩ", + "ĠÛĮا ÙģتÙĩ", + "ĠÛĮاÙģت Ùĩ", + "Ġmn oha", + "Ġmnoh a", + "γ ά", + "Ġпо ÑģÑĤÑĢо", + "ĠпоÑģ ÑĤÑĢо", + "ĠпоÑģÑĤ ÑĢо", + "ĠاÙĦÙħ ÙĪس", + "ĠاÙĦÙħÙĪ س", + "Ġol ma", + "Ġolm a", + "ëī´ ìĬ¤", + "Ġt utar", + "Ġtu tar", + "Ġtut ar", + "ãĥ¼ãĥĵ ãĤ¹", + "à¥įथ न", + "-ли бо", + "æ¥Ń åĭĻ", + "ĠоÑģоб ливо", + "ĠоÑģоблив о", + "è® Ģ", + "ÙģÙĩ ÙĪÙħ", + "Ġk ẻ", + "Ġ Å¡tÄĽ", + "ĠÅ¡ tÄĽ", + "ĠÅ¡t ÄĽ", + "Ġc ầm", + "ĠÄįlán ky", + "ĠÄIJ iá»ĩn", + "( =", + "OV Ãģ", + "ul du", + "uld u", + "a ft", + "af t", + "Ġl ãi", + "Ġlã i", + "Ġd oldur", + "Ġdol dur", + "³³ ³³³³³³³³³", + "³³³³ ³³³³³³³", + "³³³ ³³³³³³³³", + "³³³³³³³³ ³³³", + "³³³³³³³ ³³³³", + "³³³³³ ³³³³³³", + "³³³³³³ ³³³³³", + "³³³³³³³³³ ³³", + "β ι", + "ãģ£ãģ¦ ãģįãģŁ", + "ì¶ľìŀ¥ ìķĪë§Ī", + "å¯ Ŀ", + "Ġë¶Ģ íĥģ", + "ĠاÙĦ اخ", + "Ġγ Ïħνα", + "à¤ı म", + "à¥Į ल", + "ع ادة", + "عا دة", + "عاد Ø©", + "Ġ κοÏħ", + "Ġκ οÏħ", + "Ġκο Ïħ", + "ĠÙħØ· رØŃ", + "ĠÑĩелов еÑĩ", + "Ġn umar", + "Ġnum ar", + "Ġnu mar", + "Ġnuma r", + "Ġ дина", + "Ġд ина", + "Ġди на", + "ÏĦ ÏģÎŃ", + "ÏĦÏģ ÎŃ", + "λ ικ", + "λι κ", + "Ġдол го", + "Ġnh iêu", + "ĠвоÑģ ÑģÑĤанов", + "ap ı", + "Ġ kanı", + "Ġk anı", + "Ġkan ı", + "ĠK ế", + "ãĤī ãģļ", + "Ġhar ek", + "Ġha rek", + "Ġhare k", + "ãģłãģij ãģ§", + "æ» ħ", + "Ġo hled", + "Ġoh led", + "е ÑĢим", + "еÑĢ им", + "еÑĢи м", + "ĠØŃ ÙĬÙĨ", + "ĠØŃÙĬ ÙĨ", + "ĠÙĤ Ùĩر", + "Ġब à¥Ŀ", + "اپ ÛĮÙħ", + "è¶ħ è¿ĩ", + "Ġ æħ", + "Ġæ ħ", + "Ġت Ùģس", + "ĠتÙģ س", + "as ıyla", + "ası yla", + "б иÑĤ", + "би ÑĤ", + "ĠØŃ Ø§Ø¬", + "ĠÑĤÑĢеб ованиÑı", + "Ġ æݨ", + "Ġæİ ¨", + "Ġ ç±³", + "Ġç± ³", + "ãĤ³ ãĥ¼ãĥī", + "ĠÑĥ Ñģи", + "ĠÑĥÑģ и", + "Ġاخ ÙĦاÙĤ", + "Ġdo stup", + "Ġdost up", + "Ġع ÙĦاÙĤ", + "ĠعÙĦ اÙĤ", + "िव स", + "Ġ оди", + "Ġо ди", + "Ġод и", + "t ej", + "te j", + "Ġthá» ıa", + "ัà¸ģษ à¸ĵะ", + "ัà¸ģษà¸ĵ ะ", + "ĠÑĢаÑģ к", + "ĠÑĢа Ñģк", + "ĠÐĿ аÑĢод", + "ĠÐĿа ÑĢод", + "Ġза кÑĥп", + "Ġзак Ñĥп", + "o že", + "ož e", + "Ġاج را", + "Ġاجر ا", + "ê´ij ê³ł", + "аÑĢÑĤ ам", + "Ġп еÑĢеж", + "ĠпеÑĢ еж", + "ĠпеÑĢе ж", + "èij£ äºĭ", + "ĠÑı коÑģÑĤÑĸ", + "ĠÑıк оÑģÑĤÑĸ", + "Ġв Ñĥл", + "м он", + "мо н", + "Ġch lap", + "Ġ ÑįÑĤомÑĥ", + "ĠÑįÑĤ омÑĥ", + "ĠÑįÑĤо мÑĥ", + "ĠÑįÑĤом Ñĥ", + "а ÑĤÑĸ", + "аÑĤ Ñĸ", + "Ġ íĴĪ", + "Ġí ĴĪ", + "ĠíĴ Ī", + "è¡Ĺ éģĵ", + "س د", + "ÙĪ رÙĩ", + "ÙĪر Ùĩ", + "ĠزÛĮ اد", + "åľ¨çº¿ è§Ĩé¢ij", + "ا ÙĪÙĬØ©", + "اÙĪ ÙĬØ©", + "اÙĪÙĬ Ø©", + "ï¼Į å°±æĺ¯", + "ï¼Įå°± æĺ¯", + "e lerinden", + "eler inden", + "elerin den", + "elerinde n", + "ÑĢ ажд", + "ÑĢа жд", + "ÑĢаж д", + "Ġп озд", + "Ġпо зд", + "Ġпоз д", + "Ġзна ÑĤÑĮ", + "Ġзн аÑĤÑĮ", + "ัà¸ļ สà¸Ļ", + "ัà¸ļส à¸Ļ", + "à¥ĩà¤ĸ त", + "Ġ æĽ°", + "Ġæ Ľ°", + "ĠæĽ °", + "ê³¼ ìłķ", + "é® ®", + "ĠV iá»ĩn", + "ĠVi á»ĩn", + "Ġd voj", + "Ġdv oj", + "ίν εÏĦαι", + "Ġosob nÃŃch", + "ĠosobnÃŃ ch", + "Ġ âĢª", + "ĠâĢ ª", + "éĻ µ", + "ĠØ®ÙĪد Ø´", + "ĠاÙĨ ر", + "ĠпÑĢоÑĦеÑģÑģи оналÑĮ", + "k ám", + "ká m", + "ĠÙħ ÙĥاÙĨ", + "ĠÙħÙĥ اÙĨ", + "ĠاÙĦØ£ د", + "Ġ ê³µë¶Ģ", + "Ġê³µ ë¶Ģ", + "ĠÄij ức", + "ĠÄijứ c", + "ĠCumhur iyeti", + "ĠCumhuriyet i", + "åĩº ãģĹ", + "д ами", + "да ми", + "дам и", + "ĠìĪĺ ìĥģ", + "ĠÙģ براÙĬر", + "Ġsü resi", + "Ġsür esi", + "Ġsüre si", + "Ġب ج", + "Ġ æĶ¾", + "ĠæĶ ¾", + "ØŃ ÛĮ", + "çłĶ究 æīĢ", + "åĩºçīĪ 社", + "ĠÙħÙĪ تÙĪر", + "&& &&", + "ĠпеÑĢ ей", + "ĠпеÑĢе й", + "Ġ ìĦłê±°", + "ĠìĦł ê±°", + "ĠúspÄĽ Å¡", + "ار Ú©", + "Ġet tir", + "Ġett ir", + "Ġetti r", + "Ġ ì¶ľìŀ¥", + "Ġì¶ľ ìŀ¥", + "ĠKa nun", + "ĠKan un", + "ĠÑĥменÑĮ ÑĪ", + "ĠзаÑĤ веÑĢдж", + "ĠاÙĦد ÙĪÙĦÙĬ", + "ĠاÙĦدÙĪÙĦ ÙĬ", + "Ġ ãĥĵ", + "Ġãĥ ĵ", + "ĠB azı", + "ĠBa zı", + "ĠBaz ı", + "åŃIJ ãģ®", + "åĩ ¯", + "Ġse beb", + "Ġseb eb", + "Ġsebe b", + "Ġ åħ±", + "Ġåħ ±", + "Ġd nů", + "Ġdn ů", + "ä½į äºİ", + "ĠZ d", + "æī ±", + "Ġتج ربÙĩ", + "ÃĶ NG", + "Ġìĺ¬ ëĿ¼", + "Ïī ÏĦεÏģ", + "ĠÑģ вид", + "ĠÑģв ид", + "ĠÑģви д", + "æ¯Ķ èµĽ", + "ãģ« åIJij", + "ìľĦ 를", + "ãģĹ ãģ¾ãģĹãģŁ", + "ãģĹãģ¾ ãģĹãģŁ", + "Ġd á»ĭ", + "ĠÐł ÑĥÑģ", + "Ġv á»ı", + "Ġvá» ı", + "à¤Ĥड ल", + "Ġп иÑī", + "Ġпи Ñī", + "Ġsmr ti", + "Ġsmrt i", + "à¸Īาà¸ģ à¸ģาร", + "ĠÑģаÑħ аÑĢ", + "Ġtho át", + "ج ÙħØ©", + "جÙħ Ø©", + "Ġпоз вол", + "ĠاÙĦØ« اÙĨÙĬØ©", + "ĠاÙĦثاÙĨÙĬ Ø©", + "ز ادÙĩ", + "زا دÙĩ", + "ãĢģ ä¸Ń", + "ή μεÏģα", + "æ¦ ľ", + "l acaģı", + "lac aģı", + "lacaÄŁ ı", + "Ġна ÑĪиÑħ", + "ĠнаÑĪ иÑħ", + "ìĶ Ģ", + "ĠÐĺ ÑģÑĤоÑĢиÑı", + "ün deki", + "ünd eki", + "ünde ki", + "ĠпеÑĢ ел", + "ĠпеÑĢе л", + "Ġ목 ìĨĮ", + "ĠÑģÑĤаÑĤ ÑĥÑģ", + "о вали", + "ов али", + "ова ли", + "овал и", + "ÅĻ az", + "ĠдÑĢÑĥг ого", + "ĠдÑĢÑĥго го", + "ÙĥÙĪÙħ Ø©", + "ÙĥÙĪ ÙħØ©", + "Ñĩ иÑģÑĤ", + "Ñĩи ÑģÑĤ", + "ÑĩиÑģ ÑĤ", + "μ μ", + "åıį åºĶ", + "ic ari", + "ica ri", + "ĠÙ¾ اک", + "Ġپا Ú©", + "алÑĮ ним", + "ĠB una", + "ĠBu na", + "ĠBun a", + "и ÑĤив", + "иÑĤ ив", + "иÑĤи в", + "ÑĦ ÑĢа", + "ãĥ¼ ãĥĸãĥ«", + "ãĥ¼ãĥĸ ãĥ«", + "ĠÑĤоб ÑĤо", + "룬 ìĬ¤", + "ĠاÙĦ اع", + "åħ¬ éĸĭ", + "å¥ ī", + "ÙĪÙĦ د", + "åIJį çĦ¡ãģĹ", + "æ°ij 主", + "à¥ģ à¤ľà¤°", + "à¥ģà¤ľ र", + "ìĤ¬ 무", + "Ġön celik", + "Ġönce lik", + "Ġönc elik", + "Ġ å¨", + "Ġå ¨", + "Ñı б", + "çľ ī", + "à¥įव य", + "ĠH ình", + "çļĦ åľ°æĸ¹", + "çļĦåľ° æĸ¹", + "ĠاÙĦ تس", + "ĠاÙĦت س", + "ä¸Ī 夫", + "Ġп ÑĥблÑĸ", + "ĠnÄĽjak é", + "ÄIJ á»iji", + "ĠÑģоÑģÑĤоÑı ниÑı", + "à¥Ģ )", + "ĠÄij áºŃu", + "j ed", + "je d", + "ê ¶ģ", + "Ġs enin", + "Ġse nin", + "Ġsen in", + "Ġseni n", + "ĠH óa", + "âĻ ł", + "лÑı ÑİÑĤÑĮ", + "лÑıÑİÑĤ ÑĮ", + "éĹ ²", + "ìĿ¸ íĬ¸", + "ت بÙĩ", + "تب Ùĩ", + "Ġरà¤ĸ त", + "ĠÑģлов ами", + "ĠÑģлова ми", + "ĠÑģло вами", + "Ġطب ÙĤ", + "Ġuy du", + "ุà¸ĩà¹Ģà¸Ĺà¸ŀ มหาà¸Ļà¸Ħร", + "ĠSan at", + "ĠSa nat", + "à¹ī าà¸Ĭ", + "à¹īา à¸Ĭ", + "Ġкни ж", + "Ìģ c", + "ا Ùħج", + "اÙħ ج", + "δ Ïİ", + "Å ®", + "Ġb inh", + "Ġbi nh", + "Ġbin h", + "è¾ Ĩ", + "n eÄŁi", + "ne ÄŁi", + "Ø· ÙĨ", + "å¸ ķ", + "Ġ ìĩ¼", + "Ġì ĩ¼", + "оÑģ ÑĢед", + "ĠοÏĢο ίο", + "k ır", + "kı r", + "à¥Ī श", + "Ġ à¸ĩาà¸Ļ", + "Ġà¸ĩ าà¸Ļ", + "Ġd ruž", + "Ġdru ž", + "em atik", + "ema tik", + "emat ik", + "a dıģ", + "ad ıģ", + "adı ÄŁ", + "è¾ ŀ", + "ĠpoužÃŃ vá", + "Ġkur tar", + "ĠsaÄŁ lan", + "ãĢı ï¼Ī", + "Ġmůže me", + "Ġmůž eme", + "Ġ باد", + "Ġب اد", + "Ġبا د", + "æľŁ éĹ´", + "ا تÙģ", + "ات Ùģ", + "Ġyaz ılım", + "Ġyazılı m", + "ĠìĹ° ê²°", + "ÙĬ ÙģØ©", + "ÙĬÙģ Ø©", + "Ġ emin", + "Ġe min", + "Ġem in", + "ĠнеÑģколÑĮ киÑħ", + "Û´ Û°", + "å¯ §", + "ί ζει", + "ίζ ει", + "Ġd él", + "Ġdé l", + "ver iÅŁ", + "価 æł¼", + "Ġاست اد", + "Ġал ког", + ".H CM", + "ί οÏĤ", + "ίο ÏĤ", + "α κ", + "Ø· ع", + "ãģ£ ãģį", + "ãģ£ãģ į", + "Ñı еÑĤÑģÑı", + "ÑıеÑĤ ÑģÑı", + "л ика", + "ли ка", + "лик а", + "Ġ ÑĨÑı", + "ĠÑĨ Ñı", + "Ġë§Ī ì§Ģë§ī", + "ĠаÑĢ ми", + "Ġγ λÏİ", + "E NÃį", + "EN Ãį", + "ë ®¤", + "ŃIJ ï¸ı", + "Ġ æ¯ı", + "Ġæ¯ ı", + "Ġ æĸ¼", + "Ġæĸ ¼", + "Ġκα λÏį", + "ĠТ ом", + "ĠТо м", + "ul ur", + "ulu r", + "Ġak ce", + "ĠÙħÙĪ جب", + "ĠÙħÙĪج ب", + "e siz", + "es iz", + "esi z", + "н Ñıв", + "нÑı в", + "алÑĮ нÑĥÑİ", + "алÑĮнÑĥ Ñİ", + "ал ÑĸÑģÑĤ", + "алÑĸ ÑģÑĤ", + "Ġв аÑĢÑĸ", + "ĠваÑĢ Ñĸ", + "Ġва ÑĢÑĸ", + "ĠÙħؤ س", + "ĠÙħ اÛĮÙĦ", + "ĠÙħا ÛĮÙĦ", + "ĠμεÏĦα ξÏį", + "åĩº ãģĻ", + "Ġv á»Ŀi", + "Ġvá» Ŀi", + "ëŁ ´", + "ï¼ ĭ", + "æ¯ İ", + "Ġt abi", + "Ġtab i", + "Ġta bi", + "âĤ ĥ", + "æ£ĭ çīĮ", + "Ġ ÃIJ", + "Ġà IJ", + "ĠпÑĢоÑĦеÑģ Ñĸй", + "Ñĥв аннÑĸ", + "Îľ Îł", + "Ġж ил", + "Úĺ ÙĨ", + "л ÑĥÑĪ", + "лÑĥ ÑĪ", + "á½ ´", + "о веÑĢ", + "ов еÑĢ", + "ове ÑĢ", + "è¾¼ ãģ¿", + "ĠÐľ акÑģим", + "ĠÐľÐ°Ðº Ñģим", + "Ġвз глÑıд", + "Ġн аÑĤÑĥ", + "Ġна ÑĤÑĥ", + "ĠнаÑĤ Ñĥ", + "म à¤ķ", + "ĠÑħ ими", + "ĠÑĢозÑĤа ÑĪ", + "ÙĪ راÙĨ", + "ÙĪر اÙĨ", + "ÙĪرا ÙĨ", + "ĠØ´Ùĩر ÙĩاÛĮ", + "æ© Łèĥ½", + "æ©Ł èĥ½", + "Ø® Ø°", + "ĠÑģво ÑĶÑĹ", + "ĠÑģвоÑĶ ÑĹ", + "н ÑıеÑĤ", + "нÑı еÑĤ", + "Ġgh ế", + "ĠpÅĻed ch", + "ÑĶ ÑĪ", + "огÑĢаÑĦ ÑĸÑı", + "Ġ à¸Ĺำà¹ĥห", + "Ġà¸Ĺำ à¹ĥห", + "åĿ Ĭ", + "Ïģ Ïīν", + "ÏģÏī ν", + "า ระ", + "าร ะ", + "ĠK ết", + "ĠKế t", + "Ġch ặt", + "Ġ éĻĪ", + "ĠéĻ Ī", + "ĠdÄĽ lat", + "ĠdÄĽl at", + "ĠбÑĥд ÑĥÑī", + "ĠбÑĥдÑĥ Ñī", + "ĠAç ık", + "æłª å¼ıä¼ļ社", + "ĠÐŁ аÑĢ", + "ĠK hu", + "ĠKh u", + "ãĢģ æĸ°", + "Ġб ой", + "Ġбо й", + "ë§Ī íĬ¸", + "ĠÑģоп ÑĢов", + "س اب", + "н иÑģÑĤ", + "ни ÑģÑĤ", + "å¼ ĥ", + "Ġ Ø´ÙĨاس", + "ĠØ´ÙĨ اس", + "ен ном", + "енно м", + "Ġ 项", + "Ġé¡ ¹", + "èīº æľ¯", + "о зем", + "оз ем", + "ĠÑĢеÑĪ ениÑı", + "l ady", + "la dy", + "lad y", + "ĠвÑģ ей", + "ĠвÑģе й", + "æĶ» åĩ»", + "Ġê²° ìłķ", + "ãĢĢ ï¾ŀ", + "Ġê°IJ ëıħ", + "- ÐIJ", + "Ġm ÃŃr", + "ĠmÃŃ r", + "à¥ģप à¤ı", + "нÑĸ ÑĨип", + "б ом", + "бо м", + "Ġ Å¡t", + "ĠÅ¡ t", + "éľ į", + "ĠÑĢеÑĪ ение", + "Ġдиаг ноÑģÑĤи", + "i par", + "ip ar", + "ipa r", + "ا ÛĮز", + "اÛĮ ز", + "ã ng", + "ãn g", + "ั วร", + "ัว ร", + "ĠÑĨ аÑĢ", + "Ġs ly", + "Ġsl y", + "ν Ïİ", + "ĠK uzey", + "رÛĮ ب", + "Ġc enu", + "Ġce nu", + "Ġcen u", + "Ġcert if", + "Ġcer tif", + "ĠÑĤ ÑĢеÑĤÑĮ", + "ĠÑĤÑĢ еÑĤÑĮ", + "ĠÑĤÑĢеÑĤ ÑĮ", + "ิà¸Ķ à¸Ĥ", + "Ġпа ÑĨÑĸÑĶн", + "ÅĻ iv", + "ÅĻi v", + "èĦ Ĥ", + "¢ °", + "ĠPh ần", + "ĠмеÑĤод и", + "ĠмеÑĤ оди", + "Ạ¤", + "ìĨ Ķ", + "åIJĮ åѦ", + "Ġ åĢĭ", + "ĠåĢ ĭ", + "моÑĤ ÑĢÑı", + "моÑĤÑĢ Ñı", + "Ġuv ád", + "Û±Û¹ Û¶", + "éģ¸ æĬŀ", + "! »", + "ë ĺIJ", + "ĠÛĮ ÙĪتÛĮ", + "ĠاÙĦØŃ Ø±Ø¨", + "ĠاÙĦØŃر ب", + "олог ÑĸÑı", + "n ila", + "ni la", + "nil a", + "ĠÄij ảng", + "á zi", + "áz i", + "ÑĢ оÑī", + "ÑĢо Ñī", + "Ġort adan", + "Ġorta dan", + "Ġاخ بار", + "Ġà¤ħ à¤ľ", + "Ġ매 ìļ°", + "Ġп ой", + "Ġпо й", + "Ġ جÙĬ", + "Ġج ÙĬ", + "к ÑĥваÑĤи", + "кÑĥ ваÑĤи", + "Ġá» ŀ", + "Ġب شر", + "Ġبش ر", + "Ġ ÙĥÙĬÙĦ", + "ĠÙĥ ÙĬÙĦ", + "Ñī еÑģÑĤво", + "Ñīе ÑģÑĤво", + "ÑīеÑģÑĤв о", + "ĠìŬ íĸī", + "ا ÙħÙĬ", + "اÙħ ÙĬ", + "в ÑĸлÑĮ", + "вÑĸ лÑĮ", + "ĠPr vnÃŃ", + "Ġ ÙĪسÛĮ", + "ĠÙĪ سÛĮ", + "ĠÙĪس ÛĮ", + "ĠÄIJ á»", + "æĪ¿ éĹ´", + "åľ¨çº¿ éĺħ读", + "æķ ·", + "Ġt rai", + "Ġtr ai", + "Ġtra i", + "ä¿ Ĺ", + "ĠÑģамоÑģÑĤоÑıÑĤелÑĮ но", + "ĠÑĤÑĢеб ÑĥеÑĤÑģÑı", + "ĠÑĤÑĢебÑĥеÑĤ ÑģÑı", + "δ Ïģα", + "ĠÑĢеÑĩ ов", + "Ġв Ñĸк", + "ĠвÑĸ к", + "Ġ ÑĢÑĥÑĩ", + "ĠÑĢ ÑĥÑĩ", + "ĠÑĢÑĥ Ñĩ", + "å¥ §", + "ĠolduÄŁ una", + "ĠolduÄŁu na", + "ев Ñĭе", + "Ġ à¸Ħล", + "Ġà¸Ħ ล", + "ا ÙĦÙĤ", + "اÙĦ ÙĤ", + "ĠÑĸм енÑĸ", + "ĠÑĸмен Ñĸ", + "æĶ» æĴĥ", + "ĠÑĥнивеÑĢ ÑģиÑĤ", + "Ġth Äĥm", + "ĠлиÑģÑĤоп ада", + "२ ०", + "Ø® ÙĬ", + "Îķ Îł", + "Ġart tır", + "Ġس خت", + "Ġسخ ت", + "ï¼Ī æĺŃåĴĮ", + "ĠÎŁ Ïħ", + "и ваниÑı", + "ив аниÑı", + "ива ниÑı", + "Ġstav eb", + "âħ ¥", + "γÏī γή", + "γÏīγ ή", + "Ù ©", + "ĠиÑģÑģлед ованиÑı", + "åĢĭ 人", + "Ġëĭ¤ìļ´ë°Ľ 기", + "ĠÏĦ ελ", + "ĠÏĦε λ", + "° N", + "ĠباÙĦ ÙĨ", + "à¹Į à¸ŀ", + "Ġnem ůže", + "Ġголов а", + "Ġгол ова", + "à¹Į à¹ģ", + "æ¢ ¯", + " ĺ", + "δ ηÏĤ", + "δη ÏĤ", + "ìĿ¸ ì¦Ŀ", + "l ayın", + "lay ın", + "á½ ·", + "ĠÙĨت اÛĮج", + "ĠÑģоб лÑİд", + "Ġдви жениÑı", + "Ġдвиж ениÑı", + "ì Į", + "Ġ povÄĽ", + "Ġp ovÄĽ", + "Ġpo vÄĽ", + "Ġpov ÄĽ", + "Ġ ìłĦìĹIJ", + "ĠìłĦ ìĹIJ", + "å¦Ĥ ä¸ĭ", + "ĠاÙĦÙħ در", + "ĠاÙĦÙħد ر", + "ï¼Į æĪĸ", + "ا را", + "ار ا", + "æ°ij æĹı", + "Ġب رÙĤ", + "Ġبر ÙĤ", + "Ġзап аÑģ", + "à¸Ļ à¹ĥà¸Ī", + "é f", + "Ġ à¸Łà¸£", + "Ġà¸Ł ร", + "Ġë³´ ëĤ´", + "Ġ 欧ç¾İ", + "Ġ欧 ç¾İ", + "- ÑĤаки", + "-ÑĤ аки", + "é© ļ", + "ÑĢ ÑĸÑı", + "ÑĢÑĸ Ñı", + "æŁ ı", + "ĠповÑĸÑĤ ÑĢÑı", + "çµĦ ç¹Ķ", + "d aÅŁ", + "da ÅŁ", + "Ġहम ल", + "ĠÑĢеÑĶ ÑģÑĤÑĢа", + "ά β", + "ĠÎł ο", + "Ġê·¸ 림", + "Ñĩ аÑİÑĤ", + "Ñĩа ÑİÑĤ", + "à¸ĩ à¸ķ", + "íĥ ĢìĿ´", + "íĥĢ ìĿ´", + "æī ¬", + "Ġpo jist", + "Ġpoj ist", + "Ġ çłĶ", + "Ġçł Ķ", + "Ġ åıĸ", + "Ġåı ĸ", + "Ġüzer indeki", + "Ġüzerinde ki", + "j Å¡ÃŃch", + "jÅ¡ÃŃ ch", + "à¥Ģद व", + "æª ¢", + "ĠмаÑĤеÑĢи алов", + "ĠмаÑĤеÑĢиал ов", + "и ваннÑı", + "ив аннÑı", + "Ġ å°Ĩ", + "Ġå° Ĩ", + "л л", + "Ġнаб лÑİд", + "ĠнаблÑİ Ð´", + "ĠG öz", + "ĠGö z", + "Ġв зÑı", + "Ġвз Ñı", + "çĶµ è§Ĩ", + "Ġв ак", + "Ġва к", + "ç¿ Ķ", + "Ġвза им", + "Ġg itti", + "Ġgi tti", + "Ġgit ti", + "it eleri", + "ite leri", + "itel eri", + "itele ri", + "ä»· åĢ¼", + "ĠاÙĦ تص", + "ĠاÙĦت ص", + "िन à¤ķ", + "éĢļ ãĤĬ", + "ĠÑģ ÑĦеÑĢ", + "ĠÑģÑĦ еÑĢ", + "çĻº 売", + "âĿ ¤", + "ĠÚ¯ÙĪØ´ ÛĮ", + "ĠÚ¯ÙĪ Ø´ÛĮ", + "аг аÑĤо", + "ĠÏĥÏħ γκ", + "ав иÑģ", + "ави Ñģ", + "æĤ£ èĢħ", + "ĠØ® اÙħ", + "ÎĻÎļ ÎĹΣ", + "ÎĻÎļÎĹ Î£", + "ınız da", + "pan ÄĽl", + "pa nÄĽl", + "ĠÄIJ á»ĭa", + "à¹ģละ ส", + "Ġ ãĤĤ", + "ĠãĤ Ĥ", + "Ġsonuc unda", + "Ġsonucu nda", + "ìĿ į", + "e less", + "el ess", + "ele ss", + "ĠN ha", + "ĠNh a", + "Ġzak áz", + "Ġв оÑģÑĤ", + "Ġво ÑģÑĤ", + "ĠвоÑģ ÑĤ", + "ĠvzdÄĽl ávánÃŃ", + "- ม", + "Ġmet rů", + "ĠپاÛĮ ÛĮÙĨ", + "Ġپا ÛĮÛĮÙĨ", + "ĠÑĢаÑģÑĤ ение", + "Ġmu á»iji", + "èµĦ éĩij", + "ĠÅŁ üph", + "ÙĬ ÙĦÙħ", + "ÙĬÙĦ Ùħ", + "ĠdÃ¼ÅŁÃ¼n c", + "Ġк Ñĸм", + "ĠÏĩÏī ÏģίÏĤ", + "áz ev", + "áze v", + "ĠDe ÄŁer", + "ĠDeÄŁ er", + "å·¥ æ¥Ń", + "Ġر Ùħز", + "ĠرÙħ ز", + "Ġal espoÅĪ", + "ĠпÑĢе ÑģÑĤÑĥп", + "ĠпÑĢеÑģÑĤ Ñĥп", + "ĠعÙĦ اÙĪÙĩ", + "Ġme rak", + "Ġmer ak", + "à¹Į :", + "çİ° åľº", + "ÑĨ веÑĤ", + "Ġप à¥ľ", + "Ġëĭ¤ìĿĮ ê³¼", + "u dic", + "ud ic", + "udi c", + "ĠL ep", + "ĠLe p", + "Ġод нÑĸ", + "Ġa larak", + "Ġal arak", + "å®ī æİĴ", + "Ġ à¸Ĥà¸Ļาà¸Ķ", + "Ġà¸Ĥ à¸Ļาà¸Ķ", + "re zent", + "rez ent", + "is inden", + "isin den", + "isinde n", + "ر ÙĪÛĮ", + "رÙĪ ÛĮ", + "Ġp lu", + "Ġpl u", + "ç«ĭ ãģ¦", + "Ñĭ ваниÑı", + "Ñĭв аниÑı", + "Ñĭва ниÑı", + "Ġr ast", + "Ġra st", + "Ġras t", + "Ġdüzen lem", + "je zd", + "jez d", + "Ġве ÑīеÑģÑĤв", + "ĠвеÑī еÑģÑĤв", + "ĠдиÑĢ екÑĤоÑĢ", + "ÑĦ ÑĦ", + "t ainment", + "tain ment", + "ĠاÙĦ ÙĪز", + "ĠاÙĦÙĪ ز", + "l anda", + "land a", + "la nda", + "lan da", + "ĠÙĨÚ¯ Ùĩد", + "ĠпÑĢоÑĤив оп", + "ãģ£ ãģı", + "ãģ£ãģ ı", + "ãģ¨ãģª ãĤĬ", + "Ġë°ľ 견", + "i ctor", + "ic tor", + "ict or", + "ãĤ¸ ãĤª", + "ÎŁ Φ", + "ÎŁÎ ¦", + "ĠÑģклад Ñĸ", + "Ġob sahuje", + "Ġobsah uje", + "ĠUkr a", + "ĠUk ra", + "æķ ¦", + "ĠÏĩ αÏģα", + "ĠÏĩα Ïģα", + "ĠÑĢег Ñĥли", + "俺 ãģ¯", + "ัà¸ķ ว", + "éĦ ī", + "Ġب اÛĮ", + "Ġبا ÛĮ", + "éĬ ·", + "ĠN ẵng", + "л од", + "ло д", + "ا رÙģ", + "ار Ùģ", + "æ´ ģ", + "ĠëıĻ ìĿ¼", + "ÑĤив ного", + "âĶģâĶģâĶģâĶģâĶģâĶģâĶģâĶģ âĶģâĶģâĶģâĶģâĶģâĶģâĶģâĶģ", + "Ġ- :-", + "Ġ-: -", + "ì» ¬", + "ĠÑĪ аг", + "ìłĦ ìŀIJ", + "çļĦ äºĭæĥħ", + "çļĦäºĭ æĥħ", + "ĠÑĢег Ñĸ", + "िय ल", + "ĠÐĿ аз", + "ĠÐĿа з", + "ĠÐĻ ого", + "ĠÐł ом", + "ĠÃĸr neÄŁin", + "Ġп ÑĢеÑģ", + "ĠпÑĢ еÑģ", + "ĠпÑĢе Ñģ", + "u luÄŁu", + "ulu ÄŁu", + "uluÄŁ u", + "Ġза дов", + "Ġзад ов", + "ÅĻ eh", + "ÅĻe h", + "æ¯ķ ä¸ļ", + "Ġth áºŃp", + "ëĤ ¸", + "Ġdlou hodob", + "Ġdlouho dob", + "дÑĸ лÑĥ", + "дÑĸл Ñĥ", + "a lat", + "al at", + "ala t", + "ä» °", + "о ком", + "ок ом", + "око м", + "ĠÑĦ ÑĸлÑĮ", + "ĠÑĦÑĸл ÑĮ", + "ĠNg ân", + "Ġ ترÙĥ", + "Ġت رÙĥ", + "Ġتر Ùĥ", + "ĠÑĤ Ñī", + "ر ÙĪد", + "رÙĪ د", + "ç uk", + "çu k", + "ra nÃŃ", + "ran ÃŃ", + "Ġdo laÅŁ", + "Ġdol aÅŁ", + "ĠQ uang", + "ĠQu ang", + "ĠpÅĻed pok", + "Ġnám ÄĽstÃŃ", + "ой Ñĩив", + "çĭ Ģ", + "Ġб изнеÑģ", + "ãģŁ ãģı", + "ĠìĿ¸ ì²ľ", + "о ÑĢо", + "оÑĢ о", + "ĠKü rt", + "ĠKür t", + "ê·¸ 룬", + "ÑĨ аÑĤÑĮ", + "ÑĨа ÑĤÑĮ", + "ĠB ên", + "Ġ acı", + "Ġa cı", + "Ġac ı", + "Ú© Ø´", + "ï¼Ī å¹³æĪIJ", + "Ġ èģĶ", + "Ġèģ Ķ", + ") ãĢģ", + "d iler", + "di ler", + "Ñĩ иÑĤÑĮ", + "ÑĩиÑĤ ÑĮ", + "Ñĩи ÑĤÑĮ", + "Ư á»", + "éĻ ¶", + "il eceÄŁini", + "ilece ÄŁini", + "ileceÄŁi ni", + "Ġv Å¡em", + "ĠvÅ¡ em", + "ĠvÅ¡e m", + "å¼Ģ å¥ĸ", + "è§Ħ 模", + "ul muÅŁ", + "Ġ åĪĺ", + "Ġå Īĺ", + "ĠåĪ ĺ", + "е о", + "еР¾", + "ĠпеÑĢев ÑĸÑĢ", + "åĪĨ åĪ«", + "Ġjed ná", + "Ġjedn á", + "li ÄŁe", + "liÄŁ e", + "ĠرÙħ ضاÙĨ", + "ık lı", + "ıkl ı", + "Ùĩ ÙĢ", + "éĩį çĤ¹", + "Ñĩ иваеÑĤÑģÑı", + "Ñĩи ваеÑĤÑģÑı", + "Ñĩив аеÑĤÑģÑı", + "Ñĩива еÑĤÑģÑı", + "ë¡ľ ìĦľ", + "ÏĦ εÏģο", + "ÏĦε Ïģο", + "ÏĦεÏģ ο", + "åľ° ä¸ĭ", + "д наннÑı", + "дн аннÑı", + "Ġng ược", + "ॠª", + "ĠÎij λ", + "Ġa lacak", + "Ġal acak", + "Ġ à¹Ģà¸ĩ", + "Ġà¹Ģ à¸ĩ", + "Ġà¹Ģภĩ", + "اÛĮ ÙĨد", + "اÛĮÙĨ د", + "Ġh Ãłi", + "ÑĢо из", + "ĠЧ и", + "Ġ ÑıÑģ", + "ĠÑı Ñģ", + "خر ÛĮد", + "Ġhu deb", + "Ġhud eb", + "åľ §", + "Ġ ìĦ¼", + "ĠìĦ ¼", + "åĶ¯ ä¸Ģ", + "Ġ вÑĸлÑĮ", + "Ġв ÑĸлÑĮ", + "ĠвÑĸ лÑĮ", + "ĠباÙĦ اتر", + "ĠباÙĦا تر", + "à¸Ńà¸ģ าส", + "Ġ Tôi", + "ĠT ôi", + "ม à¸Ĥ", + "o mor", + "om or", + "omo r", + "ĠO lomou", + "Ġx ong", + "Ġxo ng", + "Ġdomác ÃŃ", + "Ġ اختÛĮ", + "Ġاخ تÛĮ", + "Ġاخت ÛĮ", + "ĠÑĤеÑħ нÑĸÑĩ", + "ĠÑĤеÑħнÑĸ Ñĩ", + "ĠiÅŁ te", + "à¥Į द", + "Ġнад еж", + "Ø®ÛĮ ص", + "åĬª åĬĽ", + "ĠتجÙĩ ÛĮزات", + "Ġv ole", + "Ġvo le", + "Ġvol e", + "k inci", + "kin ci", + "Ġhes ab", + "ĠÑģ еÑģÑĤ", + "Ú© ا", + "ÑĤеÑĢ н", + "ร รà¸Ħ", + "รร à¸Ħ", + "åıĤ èĢĥ", + "ĠÐļ аб", + "ĠÐļа б", + "ĠÄ° mpar", + "Ġnáv rh", + "Ġnávr h", + "åĴ¨ 询", + "à¸ĸ าม", + "Ġye rel", + "Ġyer el", + "Ġyere l", + "ĠÃĸ l", + "çĮ Ľ", + "ĠاÙĦÙĪØ· ÙĨÙĬ", + "Ġ ìĿ´ìĸ´", + "ĠìĿ´ ìĸ´", + "ิà¸Ĺย าศาสà¸ķร", + "ิà¸Ĺยา ศาสà¸ķร", + "ĠA ÅŁ", + "Ġзем лÑİ", + "ĠдомаÑĪ ниÑħ", + "ĠÑĥ веÑĢ", + "ĠÑĥв еÑĢ", + "A LI", + "AL I", + "г ан", + "га н", + "Ġ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "Ġdo stan", + "Ġdos tan", + "Ġdost an", + "ez pe", + "ãģĭ ãģĦ", + "ر ÙģتÙĩ", + "رÙģ تÙĩ", + "رÙģت Ùĩ", + "Ġм ÑĥÑģ", + "ĠмÑĥ Ñģ", + "à¹Į à¸Ł", + "è¦ º", + "али за", + "ализ а", + "ĠÑĥÑĩ ÑĢежд", + "ĠÚ© اÙĦ", + "Ġetk isi", + "Ġetki si", + "ä½Ĩ æĺ¯", + "Ġsou vis", + "ĠSav aÅŁÄ±", + "ĠSavaÅŁ ı", + "Ġب سبب", + "ÎŁ ι", + "ÎŁÎ ¹", + "è ļ", + "Ġ æ®", + "Ġæ ®", + "Ġìĺģ êµŃ", + "ا سÛĮÙĪÙĨ", + "اسÛĮ ÙĪÙĨ", + "ĠاÙĦات ØŃاد", + "Ġ глÑı", + "Ġг лÑı", + "à¹ĩà¸ģ à¸ĭ", + "Ġج ÙĪÙĨ", + "ĠجÙĪ ÙĨ", + "ĠاÙĦرسÙħ ÙĬ", + "Âł G", + "ĠÑĤо бÑĸ", + "ĠÑĤоб Ñĸ", + " ĩ", + "Ġ ëĮĢíĸī", + "ĠëĮĢ íĸī", + "çĬ¶ æħĭ", + "Ġê·¸ ëĥ¥", + "Ġи мп", + "Ġим п", + "ĠتÙĨظ ÛĮÙħ", + "ÙĦ اÛĮÙĨ", + "ÙĦا ÛĮÙĨ", + "ÑģÑĤв еннÑĭм", + "ÑģÑĤвен нÑĭм", + "о пол", + "оп ол", + "ر ÙĪج", + "رÙĪ ج", + "Ġ à¸ĩ", + "Ġภĩ", + "Ġ çĤº", + "ĠçĤ º", + "ĠUlus lararası", + "à¥Į à¤Ĥ", + "ãĢģ ãģĿãģĨ", + "Ġس ادÙĩ", + "ÎŃ Î±ÏĤ", + "ÎŃα ÏĤ", + "Ġà¤Ĩ ल", + "- ÑĦ", + "ĠÎłÎ¿Î» ι", + "ĠÎłÎ¿ λι", + "Ġно ÑıбÑĢÑı", + "ĠноÑı бÑĢÑı", + "ÙĪ ÙĦÙĬ", + "ÙĪÙĦ ÙĬ", + "æĽľ æĹ¥", + "æĮģ ç»Ń", + "Ġê¼ Ń", + "ece ÄŁiz", + "eceÄŁi z", + "ĠÛĮ اÙģت", + "ĠÛĮا Ùģت", + "Ġ åı¸", + "Ġåı ¸", + "ाà¤Ĺ त", + "Ġ æķħ", + "Ġæķ ħ", + "Ġал леÑĢг", + "Ġt uz", + "Ġtu z", + "еÑĢ ÑĤи", + "еÑĢÑĤ и", + "Ġth ầu", + "ãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢĠãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ĠãĢĢ", + "- à¤ħ", + "Ġим мÑĥ", + "ÑĢ ай", + "ÑĢаР¹", + "ÑĢа й", + "主 義", + "ĠbaÅŁ lar", + "Ġä¸Ĭ 涨", + "ع ا", + "ĠÎĻ Ïī", + "ียà¸ĩ à¹ĥหม", + "ĠاÙĦÙħد ÙĬÙĨØ©", + "Ñģ ÑĮко", + "ÑģÑĮ ко", + "ÑģÑĮк о", + "ĠتارÛĮØ® ÛĮ", + "at ÃŃm", + "âĢļ Ø·", + "Ø¢ خر", + "ĠëĦ £", + "ĠÙĨÙħ اÛĮد", + "ĠÙĨÙħاÛĮ د", + "ãģķãĤĵ ãģĮ", + "Ġb ò", + "Ġ à¸ķาม", + "Ġà¸ķ าม", + "ë³´ ìķĺëĭ¤", + "а ÑĤÑĸв", + "аÑĤ Ñĸв", + "аÑĤÑĸ в", + "ĠÑĦ ил", + "Ġkısm ı", + "iá»ĩ ng", + "iá»ĩn g", + "Ġay dın", + "éģķ ãģĦ", + "е ви", + "ев и", + "Ġ å¾®", + "Ġå¾ ®", + "( íģ¬ê¸°", + "Ġ Ú¯ÛĮر", + "ĠÚ¯ ÛĮر", + "ĠÚ¯ÛĮ ر", + "ìķĦ ìĦľ", + "Ġδη μιοÏħÏģγ", + "ãģ«ãģĬ ãģĦãģ¦", + "ĠÃľ NÄ°", + "и ÑĤом", + "иÑĤ ом", + "ع ÙĦاÙħ", + "عÙĦ اÙħ", + "åIJİ çļĦ", + "Ġp lá", + "Ġpl á", + "à¸Ľà¸£à¸° à¹Ĥย", + "ç¢ İ", + "Ġ éĺ²", + "Ġéĺ ²", + "ëĬ Ķëĭ¤", + "ëĬĶ ëĭ¤", + "Ġ æĹ¥æľŁ", + "ĠæĹ¥ æľŁ", + "Ġgeç erli", + "л аÑĤÑĭ", + "ла ÑĤÑĭ", + "лаÑĤ Ñĭ", + "Ġmutlak a", + "ÙĪ غ", + "à¹Ģ ฮ", + "à¹Ģภ®", + "Ġï» £", + "e deki", + "ed eki", + "ede ki", + "à¹Į à¹Ģà¸Ļ", + "Ġнайб ÑĸлÑĮÑĪ", + "ĠнайбÑĸлÑĮ ÑĪ", + "ï¼ Ĭ", + "Ġ à¹Ĥรà¸ĩ", + "Ġà¹Ĥ รà¸ĩ", + "Ġfot bal", + "Ġ éĢģ", + "ĠéĢ ģ", + "âĢĮاÙĦ ÙħÙĦ", + "Ïīμά ÏĦιο", + "Ġú kol", + "åįļ 士", + "d ub", + "du b", + "ı lıģ", + "ılı ÄŁ", + "ıl ıģ", + "ëĵľ 를", + "çĭ IJ", + "α λλ", + "αλ λ", + "æŃ» 亡", + "ĠпÑĢед поÑĩ", + "çµ µ", + "Ġм ÑĥзÑĭ", + "ĠмÑĥ зÑĭ", + "ĠмÑĥз Ñĭ", + "еÑĢÑĤ в", + "ĠÙĥ ÙĨد", + "ĠÙĥÙĨ د", + "Ġu lož", + "Ġul ož", + "ÎŁÎ¥ ÎĽ", + "g ili", + "gi li", + "gil i", + "üs tü", + "üst ü", + "н ки", + "ĠÙĤ ÙĪاÙĨ", + "ι ακ", + "ια κ", + "ĠÅŁ er", + "ĠкиÑģ л", + "Ġки Ñģл", + "Ùģ ضÙĦ", + "ĠÐIJ ÑĦ", + "γ εν", + "γε ν", + "Ġdo stal", + "Ġdos tal", + "Ġdost al", + "ĠsaÄŁ lıklı", + "ĠsaÄŁlık lı", + "家 æĹı", + "ÄIJ T", + "е ÑĢин", + "еÑĢ ин", + "еÑĢи н", + "ĠìĿ´ëŁ¬ íķľ", + "Ġdüny ada", + "Ġdünya da", + "Ġnh ắc", + "Âł ÂłĊ", + "³³ Ċ", + "ν ηÏĥη", + "νη Ïĥη", + "γÏģα μμα", + "Ġtak son", + "ĠTürk çe", + "ĠÙģراÙĨ سÙĩ", + "天 åłĤ", + "æº ¶", + "Ġ oto", + "Ġo to", + "Ġot o", + "èµ µ", + "ch yb", + "chy b", + "Ġ å¾Ĵ", + "Ġå¾ Ĵ", + "ÏĦ Ïį", + "áh nout", + "à¥į पर", + "à¥įप र", + "Ġv las", + "Ġvl as", + "Ġíļ¨ ê³¼", + "Ġt hang", + "Ġth ang", + "Ġthan g", + "Ġtha ng", + "Ġol masına", + "Ġolm asına", + "Ġolması na", + "ĠпоÑĢÑĥÑĪ еннÑı", + "Ġqu ỹ", + "ĠíĿ IJ", + "ĠìĪ ¨", + "Ġ ë²Ī째", + "Ġë²Ī 째", + "ẹ n", + "Ġз год", + "Ġзг од", + "Ġ تز", + "Ġت ز", + "Ġاخ تص", + "Ġاخت ص", + "ĠзÑĥÑģÑĤ ÑĢÑĸ", + "Ġt ặng", + "ῶ ν", + "Ġ ì½ľ", + "Ġì½ ľ", + "ов аниÑħ", + "ова ниÑħ", + "овани Ñħ", + "ован иÑħ", + "âĢĮ شد", + "âĢĮØ´ د", + "Ġa raya", + "Ġar aya", + "Ġara ya", + "Ġaray a", + "r ové", + "ro vé", + "rov é", + "Ġاخ تÙĦ", + "Ġاخت ÙĦ", + "ли вий", + "лив ий", + "Ġات ØŃاد", + "Ġak ÅŁam", + "ĠÚ©ÙĦ اس", + "ãĤ¢ ãĥĥãĥĹ", + "Ġz ih", + "Ġzi h", + "å ĩĮ", + "åĩ Į", + "å±± å¸Ĥ", + "Ġçev res", + "Ġçevr es", + "Ġçevre s", + "Ġог ÑĢом", + "ĠØ¢ دÙħ", + "ĠtÄĽ lo", + "ĠtÄĽl o", + "ï¼Į æľ¬", + "ĠÚĺاÙĨ ÙĪÛĮÙĩ", + "Ġkr aje", + "Ġkra je", + "Ġkraj e", + "μ ία", + "μί α", + "èħ ¿", + "âĢŀ To", + "決 å®ļ", + "ì ĩ", + "Ġ éĴ", + "Ġé Ĵ", + "ĠΣ ÏĦα", + "ĠجÙħ ÙĩÙĪر", + "ĠGen ç", + "r ám", + "rá m", + "ĠÐł ез", + "ĠÐłÐµ з", + "Ġvyt vá", + "ĠпÑĢоизвод ÑģÑĤва", + "ĠÙħ Ø°Ùĩ", + "ĠÙħØ° Ùĩ", + "Ġihtiy ac", + "ãĤ¯ ãĤ»", + "Ġn êu", + "å¾ ³", + "Ġ ëĵĿ", + "Ġëĵ Ŀ", + "н аÑĩе", + "на Ñĩе", + "наÑĩ е", + "ĠÏĥÏħ μμε", + "ÏĨ Ïīν", + "в авÑģÑı", + "ва вÑģÑı", + "вав ÑģÑı", + "Ġви ÑĤами", + "ĠвиÑĤ ами", + "Ìģ t", + "Ġfinan ÄįnÃŃ", + "åıĬ åħ¶", + "âĢ ħ", + "çĭ ¼", + "ัà¸ļ à¸ķ", + "ãģĽ ãĤĭ", + "ÎĻÎļ ÎŁ", + "λ λι", + "λλ ι", + "ÑĤ оÑİ", + "ÑĤо Ñİ", + "ا عÙĬØ©", + "اع ÙĬØ©", + "اعÙĬ Ø©", + "vÃŃ ce", + "vÃŃc e", + "о нÑĸв", + "он Ñĸв", + "онÑĸ в", + "ì£ Ħ", + "å» ł", + "ĠØ´ÙĬ Ø¡", + "ĠТ ем", + "ĠТе м", + "Ġاب زار", + "ĠTH PT", + "γ γÏģαÏĨ", + "ĠëĮĢ íķ´ìĦľ", + "ĠëĮĢíķ´ ìĦľ", + "ĠPh ạm", + "ÑĨион ной", + "| /", + "Ġ ãĤ¸ãĥ£", + "ĠãĤ¸ ãĥ£", + "ÑĮ ÑİÑĤ", + "ÑĮÑİ ÑĤ", + "Ñĥ зÑĭ", + "Ñĥз Ñĭ", + "ĠÙħ اد", + "ĠÙħا د", + "ĠmÄĽ ly", + "ĠmÄĽl y", + "Ġ çĪ±", + "ĠçĪ ±", + "Ġr ád", + "Ġrá d", + "à¸Ħว à¸ļà¸Ħ", + "à¥Ī ?", + "Ġl idi", + "Ġli di", + "Ġlid i", + "m amız", + "mam ız", + "Ġ à¹ģà¸ģ", + "Ġà¹ģ à¸ģ", + "ãĤ¯ ãĤ·ãĥ§ãĥ³", + "à¸Ńำ à¸Ļวย", + "es át", + "Ġv iêm", + "Ġvi êm", + "è¡Į åĬ¨", + "มาà¸ģ à¸ģว", + "ĠØ®ÙĪ اب", + "Ġser best", + "ÅĻÃŃ z", + "ĠíĺĦ ëĮĢ", + "ãĢĮ ãģĿãģĨ", + "çĤ ¸", + "om ik", + "omi k", + "ĠÄ° ran", + "Ġer iÅŁ", + "ĠÑģ ела", + "ĠÑģел а", + "Ġار زÛĮ", + "Ġارز ÛĮ", + "ãĥĪ ãĥª", + "ĠB ÄĽ", + "е кÑĥ", + "ек Ñĥ", + "Ч ÑĤобÑĭ", + "ЧÑĤо бÑĭ", + "Ġanlam da", + "Îij Îĺ", + "ĠLINE AR", + "ĠLIN EAR", + "æľī çĤ¹", + "ÑĤ аÑĢ", + "ÑĤа ÑĢ", + "it ler", + "itle r", + "Ġn ÃŃž", + "ĠnÃŃ Å¾", + "ĠС ÑģÑĭлки", + "å ¶", + "Ġв пол", + "Ġвп ол", + "ĠدÙĤÛĮ ÙĤÙĩ", + "ĠدÙĤÛĮÙĤ Ùĩ", + "Ġ ä½ĵ", + "ر Ùī", + "ëĶ °", + "Ġà¤ķ व", + "Ġж иÑĢ", + "æij Ĩ", + "Ġì¤ij ìĭ¬", + "Ġк Ñĥб", + "ĠкÑĥ б", + "Ġz lep", + "ĠÑĢÑĭ б", + "é³ ´", + "à¹ģà¸ľ à¸Ļ", + "Ġ íĢ", + "Ġí Ģ", + "ĠÐĿ еÑĤ", + "ĠÐĿе ÑĤ", + "ž itÄĽ", + "žit ÄĽ", + "ži tÄĽ", + "Ġb Äĥng", + "ĠH ava", + "ĠHa va", + "ĠHav a", + "Ġ모 ëį¸", + "ĠH ãy", + "ĠìĿ´ ê²ĥ", + "Ġìĥģ ìĦ¸", + "me miÅŁ", + "mem iÅŁ", + "ĠθÎŃ Ïĥη", + "ण न", + "ĠskuteÄį nÄĽ", + "ĠTarih i", + "Ġtext u", + "Ġtex tu", + "ï¼Į éĢĻ", + "ĠاÛĮÙĨتر ÙĨتÛĮ", + "ĠÙ¾ اد", + "Ġپا د", + "ิà¸Ļ à¸ģาร", + "ĠNg á»įc", + "ĠÑĢоб иÑĤи", + "íĸĪ ê³ł", + "Ġम ण", + "ÐĽ Ðĺ", + "Ġпо ÑĤеÑĢ", + "ĠпоÑĤ еÑĢ", + "Ñģ ом", + "Ñģо м", + "ĠاÙĪ ÙĦÛĮÙĩ", + "ĠاÙĪÙĦ ÛĮÙĩ", + "éĽ ij", + "ĠGi á", + "Ġk anal", + "Ġkan al", + "Ġka nal", + "Ġavant aj", + "Ġavan taj", + "Ġr yb", + "Ġry b", + "Ø® تÙĩ", + "خت Ùĩ", + "ĠÙĪ رÙĪد", + "ĠÙĪر ÙĪد", + "ÐĴ ÑĤ", + "Ïī Ïĥε", + "기 ë¡ľ", + "ĠÐĽ Ñĸ", + "Ġt ảng", + "Ġtả ng", + "Ġص ÙĦÙī", + "ĠÑĥ лÑĭ", + "ĠÑĥл Ñĭ", + "Ġcu á»ijn", + "ĠÐIJ нг", + "ĠÐIJн г", + "Ġد اÙĪ", + "ĠÑĪлÑıÑħ ом", + "ĠÄįlovÄĽk a", + "ĠÄįlovÄĽ ka", + "d ete", + "de te", + "det e", + "ÑĬ ем", + "à¹Į à¹ĥà¸Ļ", + "à¤ķ न", + "åĪ ¤æĸŃ", + "åĪ¤ æĸŃ", + "ĸ ìĹIJ", + "ÏĦ ÏīÏĥη", + "ÏĦÏī Ïĥη", + "ĠÙģÙĨ اÙĪرÛĮ", + "ĠyaÅŁ ında", + "ĠÏĥÏĩ ÎŃ", + "Ġ yı", + "Ġy ı", + "Ġp ÅĻen", + "ĠpÅĻ en", + "ĠpÅĻe n", + "ĠÑĦоÑĢм ÑĥваннÑı", + "ĠÑĦоÑĢмÑĥ ваннÑı", + "ü mÃ¼ÅŁ", + "üm Ã¼ÅŁ", + "ümü ÅŁ", + "Ġ δο", + "Ġδ ο", + "ımız ın", + "ımızı n", + "Ġ é¢Ħ", + "Ġé¢ Ħ", + "оÑģÑĤ ÑĮÑİ", + "оÑģÑĤÑĮ Ñİ", + "ĠоÑĤкÑĢÑĭ ÑĤ", + "Ġأغ سطس", + "ĠA sp", + "ĠAs p", + "ĠÑĥ зн", + "ĠÑĥз н", + "ĠÙĪ است", + "ĠÙĪا ست", + "ĠÙĪاس ت", + "e lerle", + "eler le", + "èķ ī", + "Ġت Ú©ÙĨ", + "Ġتک ÙĨ", + "Ñĥ мÑĥ", + "Ñĥм Ñĥ", + "à¹Į à¸ĭ", + "ाद न", + "ĠâĢĭ âĢĭâĢĭ", + "ĠâĢĭâĢĭ âĢĭ", + "Ġa lıyor", + "Ġal ıyor", + "Ġî ¡", + "Ùħ دة", + "Ùħد Ø©", + "Ġ Ïĥει", + "ĠÏĥ ει", + "ĠÏĥε ι", + "Ġ è¿Ļ", + "Ġè¿ Ļ", + "ĠÅŀ ehir", + "ен ÑĤами", + "енÑĤ ами", + "енÑĤа ми", + "ãĤ¿ ãĥ«", + "ห าย", + "หา ย", + "ай ÑĤ", + "Ġh arc", + "Ġhar c", + "Ġha rc", + "ãĢĤ ãģĬ", + "Ġتأ Ø«ÛĮر", + "า à¸Ĭà¸Ļ", + "าà¸Ĭ à¸Ļ", + "Ġth áºŃm", + "Ġ æ¿", + "Ġæ ¿", + "Ġm Å©i", + "Ġprv nÃŃm", + "ĠprvnÃŃ m", + "Ġбаг аÑĤÑĮ", + "ĠбагаÑĤ ÑĮ", + "ãģķãĤī ãģ«", + "b iên", + "bi ên", + "åºĶ å½ĵ", + "ìĿ´ ë²Ħ", + "Ġpou žÃŃt", + "ĠpoužÃŃ t", + "Ġokam ž", + "e sin", + "es in", + "esi n", + "v ÄĽl", + "vÄĽ l", + "Ġ ضÙĪ", + "Ġض ÙĪ", + "è» Ł", + "- з", + "à¥Ī त", + "è¨Ī ç®Ĺ", + "r abilir", + "ra bilir", + "rab ilir", + "ĠÐłÐ¾Ñģ ÑĸÑĹ", + "Ġpla tÃŃ", + "Ġplat ÃŃ", + "Ġdosp ÄĽl", + "Ġر ضا", + "Ġرض ا", + "Ġn ového", + "Ġnov ého", + "Ġnové ho", + "Ġна ÑĨионалÑĮ", + "ĠÐIJ б", + "ãģĮ ãģĤãģ£ãģŁ", + "Ġ ë¹Ī", + "Ġë¹ Ī", + "âĢĮ Ùħ", + "å±ŀ äºİ", + "Ġt ane", + "Ġta ne", + "Ġtan e", + "ÙĬ اÙĩ", + "ÙĬا Ùĩ", + "Ġ βο", + "Ġβ ο", + "Ġ ëĬ¥", + "ĠëĬ ¥", + "ãĥĩãĤ£ ãĥ¼ãĤ¹", + "Ġ Ø°Ùĥر", + "ĠØ° Ùĥر", + "Ġobvyk le", + "Ġbir inci", + "ĠاÙĦ زر", + "ĠاÙĦز ر", + "ìĿ´ ë¹Ħ", + "ĠØ¥ د", + "ĠE kon", + "ĠEk on", + "ÐŁ ол", + "ÐŁÐ¾ л", + "ĠвеÑĢ оÑıÑĤ", + "Ġyarar lan", + "Ġа ÑĢом", + "ĠаÑĢ ом", + "Ġ éĦ", + "Ġé Ħ", + "Ġ iddi", + "Ġid di", + "i Äįka", + "iÄį ka", + "struk ce", + "mÃ¼ÅŁ tür", + "Ïħ ÏĦÏĮ", + "ë¡ ±", + "Ġal maktadır", + "Ġalmak tadır", + "ени Ñıми", + "ениÑı ми", + "ียà¸Ļ ร", + "à¹ĩ à¸Ļว", + "à¹ĩà¸Ļ ว", + "и кÑĥ", + "ик Ñĥ", + "е нка", + "ен ка", + "âĢĻ yi", + "âĢĻy i", + "Ġpo hod", + "Ġpoh od", + "Ġ زر", + "Ġز ر", + "Ġx ấu", + "Ġ à¸łà¸²à¸©", + "Ġà¸ł าษ", + "Âł Ðŀ", + "Ġ δικ", + "Ġδ ικ", + "Ġδι κ", + "Ġназ ива", + "åıª èĥ½", + "大 éĩı", + "ĠÄij ế", + "Ġ 第äºĮ", + "Ġ第 äºĮ", + "ĠkiÅŁ ilerin", + "ĠkiÅŁi lerin", + "ĠkiÅŁiler in", + "Ġdob ré", + "Ġdobr é", + "é© ¾", + "Ġdůležit é", + "ë¡ ¤", + "μÎŃ Î½Î¿Ïħ", + "μÎŃν οÏħ", + "μÎŃνο Ïħ", + "Ġtr ú", + "Ġbiç im", + "Ġ ÐĿÐIJ", + "ĠÐĿ ÐIJ", + "Ġ å¾Į", + "Ġå¾ Į", + "Ġdu yg", + "Ġduy g", + "åŀ Ĥ", + "ÐĨ ÐĨ", + "Ġet meye", + "Ġetm eye", + "Ġetme ye", + "ĠÙĦب اس", + "Ġд вÑĸ", + "Ġдв Ñĸ", + "Ġ 긴", + "Ġê¸ ´", + "ÑĨ Ñĸйно", + "ÑĨÑĸй но", + "κ ÏĦή", + "ï½ Ŀ", + "ĠÑĦевÑĢа лÑı", + "å¯ «", + "Ġ 겨", + "Ġê² ¨", + "Ġyıl larda", + "Ġyıllar da", + "Ġз Ñĥп", + "Ġobchod nÃŃ", + "Ġاض اÙģÙĩ", + "в еÑĢж", + "веÑĢ ж", + "Ġ æłĩ", + "Ġæł ĩ", + "ج اج", + "جا ج", + "Ġر ÙĪسÛĮ", + "ĠرÙĪ سÛĮ", + "Ġstand art", + "Ġstan dart", + "é ru", + "ér u", + ") ìĿĦ", + "д екÑģ", + "де кÑģ", + "Ġ âĪļ", + "ĠâĪ ļ", + "ĠÄ°ngiliz ce", + "èĬ Ŀ", + "身 ä¸Ĭ", + "ØŁ ØŁ", + "Ġm ẽ", + "Îij ÎĶ", + "енÑģ ив", + "âĢĻ ta", + "âĢĻt a", + "à¹ī าà¸ģ", + "à¹īา à¸ģ", + "ÎŁÎĽ ÎŁÎĵ", + "ä»ĺ ãģij", + "Ġs Ãłng", + "ĠsÃłn g", + "Ġह à¤Ł", + "ÑĭÑĪ лен", + "ĠØ® طر", + "Ġخط ر", + "Ġнай ÑĤи", + "缸 ä¿¡", + "Ïī δ", + "ठĶ", + "Ġdo pad", + "Ġdop ad", + "à¹Ħà¸Ł ล", + "æ ģµ", + "æģ µ", + "í Ĥ¬", + "íĤ ¬", + "Ä±ÅŁ ma", + "ãģı ãĤĮãģŁ", + "ãģıãĤĮ ãģŁ", + "Ġnap rost", + "ĠÑģоÑģÑĤав е", + "Ġ ÙĪسط", + "ĠÙĪ سط", + "ĠÙĪس Ø·", + "๠ķ", + "éĸĭ çĻº", + "ĠдеÑĢ ева", + "ĠдеÑĢев а", + "- ÐĶ", + "à¸ĩ à¸Ĭ", + "ิà¸ķ ย", + "ĠاÙĦÙĤ اÙĨÙĪÙĨ", + "ãĤ¹ ãĤ«", + "l ÃŃž", + "lÃŃ Å¾", + "Ġан ализ", + "Ġproblém y", + "æĸĩ åѦ", + "çĹħ éĻ¢", + "Ñģ ед", + "Ñģе д", + "ï¼Į å°ı", + "Ġعش ÙĤ", + "ãģ° ãģĭãĤĬ", + "Ġع ÙĤد", + "ĠعÙĤ د", + "ØŃ ÙĬØ©", + "ØŃÙĬ Ø©", + "Ġë°Ķ ëŀįëĭĪëĭ¤", + "inc lu", + "incl u", + "Ġ ëĵľë¦½ëĭĪëĭ¤", + "Ġëĵľ 립ëĭĪëĭ¤", + "åį« çĶŁ", + "Ġвид Ñĥ", + "Ġви дÑĥ", + "ุ à¸ļาล", + "ุà¸ļ าล", + "ÑĢ ÑĥкÑĤ", + "ÑĢÑĥ кÑĤ", + "ÑĢÑĥк ÑĤ", + "ĠоÑģ вÑĸÑĤ", + "ĠоÑģвÑĸ ÑĤ", + "Ġvel ký", + "Ġvelk ý", + "Ġch tÄĽl", + "ĠchtÄĽ l", + "æīĵ å¼Ģ", + "Ġзакон одаÑĤелÑĮ", + "ан Ñģи", + "анÑģ и", + "ì¶ ĺ", + "ĠÙħر اج", + "åģľ æŃ¢", + "Ġво но", + "ìłķ ìĿ´", + "Ġroz sah", + "Ġrozs ah", + "Ġ æĻ´", + "ĠæĻ ´", + "Ġza jist", + "Ġzaj ist", + "Âł м", + "tı ģını", + "tıģ ını", + "Ġhizmet i", + ". Îij", + "ĠÙħعÙħÙĪÙĦ ا", + "Ġ ži", + "Ġž i", + "Ġg á»įn", + "èĮ Ĥ", + "Ġh uz", + "Ġhu z", + "ζ ει", + "ζε ι", + "à¥ī à¤Ł", + "Ġиз дел", + "ìŀ ĸ", + "ĠëĶ° 른", + "Ġk ia", + "Ġki a", + "Ġz nÄĽnÃŃ", + "Ġzn ÄĽnÃŃ", + "ĠоÑĢгани за", + "ĠоÑĢганиз а", + "از ات", + "Ġrež im", + "Ġв енÑĤи", + "b ách", + "Ġод номÑĥ", + "Ġодно мÑĥ", + "Ġодном Ñĥ", + "Ġkit ab", + "Ġki tab", + "Ġkita b", + "Ġfran couz", + "Ġfranc ouz", + "ĠØ£ ÙĦ", + "Ġس رÙĪ", + "Ġسر ÙĪ", + "Ùij ÙĦ", + "Ġ ман", + "Ġм ан", + "Ġма н", + "ë° į", + "Ġк Ñĥда", + "ĠкÑĥ да", + "Ùı س", + "ãĢĤ æѤ", + "ا شة", + "اش Ø©", + "à¸Ĥà¸Ńà¸ĩ à¸ľ", + "主 ä»»", + "ив ÑĪи", + "Ġà¸ģ รà¸ģ", + "Ġà¸ģร à¸ģ", + "ек Ñģи", + "екÑģ и", + "иÑĤ еÑĤ", + "иÑĤе ÑĤ", + "ĠØ£ ÙĦÙģ", + "ĠØ£ÙĦ Ùģ", + "а ними", + "ан ими", + "ани ми", + "ãĥļ ãĥ¼ãĤ¸", + "ĠпÑĢав ил", + "ĠпÑĢави л", + "åªĴ ä½ĵ", + "Ñİ Ñīее", + "ÑİÑī ее", + "ä¸Ģ 人", + "β ο", + "ìĭ ¸", + "о зна", + "оз на", + "å¤ī æĽ´", + "ĠÙħØ´ Ùĩد", + "æ³ķ 人", + "ĠBa kanı", + "ĠBak anı", + "ĠBakan ı", + "ĠÑħоÑĩ а", + "Ġα ξ", + "Ġver ilm", + "Ġveri lm", + "Ġk onus", + "Ġkon us", + "Ġkonu s", + "με νη", + "μεν η", + "Ġ 馬", + "Ġé ¦¬", + "Ġé¦ ¬", + "Ġìĭ¤ ìłľ", + "Ġjed no", + "Ġjedn o", + "Ġб аб", + "Ġба б", + "åĥ į", + "æĺ¯ ä¸Ģ个", + "æĺ¯ä¸Ģ 个", + "- е", + "ĠpÅĻek vap", + "à¸Ń à¸ŀ", + "ĠY ol", + "ĠYo l", + "ĠÑĥÑģÑĤан авлива", + "ê² ¼", + "Ġ 件", + "اÙĦ Ø´", + "Ġоб ÑĥÑĩ", + "åĺ Ľ", + "ĠÑħоÑĩ Ñĥ", + "ĠÐķ в", + "ÑĦ оÑĢÑĤ", + "ÑĦоÑĢ ÑĤ", + "Ġर न", + "âĢŀ V", + "èľ ľ", + "Ġd oma", + "Ġdo ma", + "Ġdom a", + "æĶ¯ æı´", + "Ġ اخت", + "Ġا خت", + "Ġاخ ت", + "å¾ ª", + "à¥Ĥ à¤ļन", + "à¥Ĥà¤ļ न", + "ा हन", + "ाह न", + "Ġ å¤ı", + "Ġå¤ ı", + "ĠاÙĦØ£ Ùħر", + "ĠاÙĦØ£Ùħ ر", + "ĠбеÑĢем енноÑģÑĤи", + "ĠTh á»±c", + "é£İ éĻ©", + "Ġül kemiz", + "Ġülk emiz", + "çķª åı·", + "ÑģÑĤ ÑĢе", + "ÑģÑĤÑĢ е", + "ÑĪ ло", + "ĠصاØŃ Ø¨", + "ι νε", + "ιν ε", + "ĠK ıs", + "ĠKı s", + "ĠPr ahy", + "ĠPra hy", + "æ¹ ¿", + "Ġv ým", + "Ġvý m", + "çĽ Ĵ", + "ÎŁ ÎĶ", + "ÎŁÎ Ķ", + "ãģł ãģª", + "ĠpÅĻÃŃ ležit", + "Ġìĸ¸ ìłľ", + "ĠÑĪвид ко", + "Ġsitu aci", + "åħĥ ç´ł", + "Ä°T ESÄ°", + "ĠV ak", + "ĠVa k", + "Ġner edeyse", + "i iii", + "ii ii", + "iii i", + "ÑĢа зд", + "ÑĢаз д", + "Ġп олиÑĤ", + "Ġпо лиÑĤ", + "Ġпол иÑĤ", + "Ġполи ÑĤ", + "Ġп огод", + "Ġпо год", + "Ġпог од", + "ĠпÑĢоÑĨеÑģ Ñģе", + "ĠпÑĢоÑĨеÑģÑģ е", + "Ġмен ÑĪе", + "äºĮ 人", + "ĠÙħÙĪ اط", + "Ġp ÅĻik", + "ĠpÅĻ ik", + "ĠpÅĻi k", + "è· ¡", + "Ġs erg", + "Ġse rg", + "Ġser g", + "ĠÑĢаÑģ ÑģÑĤоÑı", + "и Ñĩно", + "иÑĩ но", + "ĠÎĶ ÎĹÎľ", + "¨ Ø·", + "ص بØŃ", + "صب ØŃ", + "สะ à¸Ķวà¸ģ", + "د رÛĮ", + "در ÛĮ", + "k ům", + "ků m", + "ç§ģ ãģ¯", + "Ġt vor", + "Ġtv or", + "à¥įव व", + "Ġp ÅĻiv", + "ĠpÅĻ iv", + "ĠpÅĻi v", + "Ġ íı´", + "Ġíı ´", + "Ġst átu", + "Ġstát u", + "Ġed ilmiÅŁtir", + "Ġedilm iÅŁtir", + "Ġedil miÅŁtir", + "ĠedilmiÅŁ tir", + "ØŃ Ùħ", + "Ġб ÑĥÑħ", + "ĠбÑĥ Ñħ", + "สำ à¹Ģร", + "ĠتÙĪ ضÛĮ", + "ãģĿãĤĮ ãģ¯", + "Ġà¤ħव ध", + "é ŀĭ", + "éŀ ĭ", + "âĤ¬ Ċ", + "Ġ éº", + "Ġé º", + "ĠÄĮ es", + "Ġpop rvé", + "ï¼Į åĽł", + "Ġal mÄ±ÅŁ", + "Ġalm Ä±ÅŁ", + "l al", + "la l", + "ĠØ® ÙĪبÛĮ", + "ĠØ®ÙĪ بÛĮ", + "ĠØ®ÙĪب ÛĮ", + "Ġκ οÏģ", + "Ġκο Ïģ", + "ìļ´ ëıĻ", + "m ayın", + "may ın", + "mayı n", + "Ġak tif", + "Ġakt if", + "ĠاÙĨج ÙħÙĨ", + "ĠÑģ ÑĤак", + "ĠÑģÑĤ ак", + "ĠÑģÑĤа к", + "ĠÑģÑĤ аÑĢа", + "ĠÑģÑĤаÑĢ а", + "ĠÑģÑĤа ÑĢа", + "ÙĦ ÙģØ©", + "ÙĦÙģ Ø©", + "Ġparç ası", + "ĠкоÑĢп ÑĥÑģ", + "ãĢģ é«ĺ", + "! ..", + "!. .", + "ĠÎł ÎijÎĿ", + "ĠÙĩÙĨ ÙĪز", + "ion álnÃŃ", + "Ġprá vnÃŃ", + "Ġpráv nÃŃ", + " Ŀ", + "Ġت ÛĮر", + "ĠتÛĮ ر", + "Ġ åŁİ", + "ĠåŁ İ", + "Ġзг ад", + "Ġsaldır ı", + "æŁ¥çľĭ æijĺè¦ģ", + "é« ª", + "Ùģ صÙĦ", + "ãģĻ ãģ¹ãģ¦", + "е во", + "ев о", + "ê´Ģ리 ìŀIJ", + "Ġìĺ Ĩ", + "udic ots", + "ÙĪر ÙĨ", + "Ġcel kem", + "ãĤ¤ ãĤº", + "ìĬ¤ ê°Ģ", + "販 売", + "ĠíĮĮìĿ¼ 첨ë¶Ģ", + "ë ¢°", + "Ġe nergie", + "Ġenerg ie", + "Ġener gie", + "es idir", + "esi dir", + "Ġm iá»ĩng", + "éĻ ·", + "Ġг аÑĢа", + "ĠгаÑĢ а", + "Ġb iliyor", + "Ġbil iyor", + "çį² å¾Ĺ", + "еÑĤ еÑĢб", + "à¹Īา à¹Ģà¸Ľ", + "Ġμα ζί", + "Ġzprac ovánÃŃ", + "Ñģ м", + "Ġh ala", + "Ġha la", + "Ġhal a", + "Ġز ÙĪج", + "ĠвÑĸд нов", + "à¹Ģหม าะ", + "ĠÐłÐµÑģп Ñĥбли", + "åĩºåĵģ èĢħ", + "Ñī ини", + "Ñīи ни", + "Ñīин и", + "ัà¸Ļ à¹Ģà¸Ľ", + "Ġtý den", + "Ġtýd en", + "Ġب ÙĬت", + "ĠبÙĬ ت", + "Ñģ комÑĥ", + "Ñģк омÑĥ", + "Ñģком Ñĥ", + "Ñģко мÑĥ", + "ĠÙĩÙĪ اپÛĮÙħ", + "оÑģ нов", + "é¸ Ł", + "Ġsou krom", + "Ġfa iz", + "Ġdem ok", + "Ġdemo k", + "Ġkter ém", + "Ġkteré m", + "Ġëħ ¹", + "л аÑĩ", + "ла Ñĩ", + "ĠоÑĤвеÑĤ ÑģÑĤвен", + "Ġ ï¼¼:", + "Ġï¼¼ :", + "Ġ λο", + "Ġλ ο", + "ÄĮ esk", + "ê°Ģ ìļĶ", + "Ġ ãĥĬ", + "Ġãĥ Ĭ", + "Ġnhu áºŃn", + "ĠÑģ или", + "ĠÑģи ли", + "ĠÑģил и", + "ĠÐľ он", + "Ġç ap", + "Ġça p", + "ĠRow Box", + "Ġм аÑģÑĤ", + "ĠмаÑģ ÑĤ", + "Ġма ÑģÑĤ", + "ĠÐľ а", + "ĠдÑĢÑĥг о", + "ĠдÑĢÑĥ го", + "ĠØ£ Ø´", + "ë°© ìĨ¡", + "ĠпÑĸд пиÑģ", + "èĩ ¨", + "åī ©", + "Ġh iá»ĥn", + "Ġhi á»ĥn", + "ĠÙĤر ارد", + "ĠÙĤرار د", + "ist rat", + "istr at", + "istra t", + "ÐŁ Ñĸд", + "ÏĦε Ïģα", + "ÏĦεÏģ α", + "Ġpoz dÄĽ", + "ĠbaÅŁ ta", + "夫 人", + "л ини", + "ли ни", + "лин и", + "Ġка ÑĩеÑģÑĤва", + "ĠкаÑĩе ÑģÑĤва", + "Ġkur tul", + "Ġ ì¢Į", + "Ġì¢ Į", + "ãģ«ãģĬ ãģijãĤĭ", + "åľ° åįĢ", + "ĠÑĩа Ñģом", + "ĠÑĩаÑģ ом", + "ìµľ ê³ł", + "Ġn gang", + "Ġng ang", + "Ġnga ng", + "ا Ùĩد", + "اÙĩ د", + "ĠШ ев", + "ĠpÅĻ itom", + "ĠpÅĻi tom", + "Ġch ấm", + "ĠÐľ еÑģÑĤо", + "ĠÑģовеÑĢÑĪ енно", + "ÃŃ cÃŃ", + "ÃŃc ÃŃ", + "Ń å·ŀ", + "åĪĽ æĸ°", + "äºĶ æľĪ", + "Ġا عÙħاÙĦ", + "Ġاع ÙħاÙĦ", + "Ġвозмож ноÑģÑĤи", + "Ġвозможно ÑģÑĤи", + "ĠпÑĢод овж", + "n ÄĽt", + "nÄĽ t", + "ĠÐĿа пÑĢимеÑĢ", + "ĠاÙĦ دÙħ", + "ĠاÙĦد Ùħ", + "Ġ à¹ģà¸ļà¸ļ", + "Ġà¹ģ à¸ļà¸ļ", + "çĶŁ çļĦ", + "ĠÑħ аÑĢÑĩ", + "ĠSon uç", + "Ġrůzn é", + "Ġrůz né", + "Ġ اذ", + "Ġا Ø°", + "ĠØ§Ø °", + "à¸ķ à¸Ńà¸ļ", + "P ÅĻed", + "PÅĻ ed", + "ĠдеÑĢев Ñıн", + "ë´ IJ", + "ĠëĬIJ ëĤ", + "جÙħ ÙĬع", + "ĠBöyle ce", + "èµ ı", + "Ġب سÙĬ", + "Ġبس ÙĬ", + "ĠÃĩ aÄŁ", + "Ġت اÛĮ", + "Ġتا ÛĮ", + "Ġnej vyÅ¡Å¡ÃŃ", + "èĸ ©", + "Ïĩε δÏĮν", + "Ġëĵ± ìĿĺ", + "e yh", + "ey h", + "æĸĻ çIJĨ", + "ا تÙĩ", + "ات Ùĩ", + "æī «", + "Ġ å©", + "Ġå ©", + "ĠпÑĢи вед", + "ĠпÑĢив ед", + "æī ¶", + "Ġ 견", + "Ġê² ¬", + "Ġا ÙħÛĮر", + "ĠاÙħ ÛĮر", + "ाय ल", + "æ¡ ij", + "à¸Ļ à¹Ģà¸ķ", + "ила кÑĤи", + "家 ä¼Ļ", + "Ġbulun uyor", + "y sa", + "ys a", + " Ĩ", + "ĠB Ä°R", + "íĨ ¤", + "à¤Ĥà¤Ĺ à¤łà¤¨", + "ÎĶ εν", + "à¥Į à¤ķर", + "à¥Įà¤ķ र", + "éĸĵ ãģ«", + "Ġм об", + "Ġмо б", + "ĠMo rav", + "ĠMor av", + "è§Ħ åĪĴ", + "ĠÑģвÑĸÑĤ Ñĸ", + "ul ts", + "ult s", + "Ġze mÃŃ", + "Ġzem ÃŃ", + "Âł ĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂłĠÂł", + "ÂłĠÂłĠÂł ĠÂłĠÂłĠÂłĠÂłĠÂłĠÂł", + "ĠÐŁ оп", + "ĠÐŁÐ¾ п", + "ãģĤ ãģĴ", + "Ġpom oci", + "Ġpomoc i", + "ĠзмÑĸ ÑģÑĤ", + "Ġзм ÑĸÑģÑĤ", + "主 人", + "ĠS ı", + "ãĥĽ ãĥĨãĥ«", + "ĠÑĥва гÑĥ", + "å» ³", + "à¹Ģม à¸ķร", + "est li", + "Ġlo ạt", + "ãĤ¢ ãĥ¼", + "ĠÎĶ ε", + "Ġbun ları", + "Ġbunlar ı", + "Ġ çĤ¹åĩ»", + "ĠçĤ¹ åĩ»", + "Ġ BÃłi", + "ĠB Ãłi", + "ĠBÃł i", + "Ġ ä¸ĸ", + "Ġä¸ ĸ", + "Ġê³ł ê°ľë¥¼", + "ĠÐŃ ÑĤоÑĤ", + "ĠÐŃÑĤо ÑĤ", + "Ġmem nun", + "Ġ ।Ċ", + "Ġ। Ċ", + "ĠиÑģÑĤоÑĢ ии", + "Ġ ì°©", + "Ġì° ©", + "१ ९", + "१ॠ¯", + "ĠÐŀд нак", + "ĠÐŀдна к", + "Ġv ede", + "Ġve de", + "Ġved e", + "ÏĨ ÎŃÏģει", + "ÏĨÎŃ Ïģει", + "â b", + "çĬ¶ åĨµ", + "åįı è®®", + "Ġ ê°Ŀ", + "Ġê° Ŀ", + "е вид", + "ев ид", + "еви д", + "j mu", + "jm u", + "Ġколи ÑĩеÑģÑĤва", + "ĠколиÑĩ еÑģÑĤва", + "ĠколиÑĩе ÑģÑĤва", + "à Ľ", + "i Äįe", + "iÄį e", + "Ġfirm alar", + "Ġfir malar", + "Ġfirma lar", + "èĢ Ģ", + "к Ñĸн", + "кÑĸ н", + "ĠêµŃ 민", + "Ġ목 ë¡Ŀ", + "ĠÎļ αÏģ", + "ĠÎļα Ïģ", + "Ġhis sed", + "Ġhiss ed", + "ï¼ «", + "Ġ Tên", + "ĠT ên", + "ĠÑĤÑĭ ÑģÑıÑĩ", + "ØŃÙĬ ØŃ", + "Ġвпол не", + "ĠS ınıf", + "ĠSın ıf", + "Ġμ ην", + "Ġμη ν", + "Ġ íij¸", + "Ġí ij¸", + "ĠاÙĦ طبÙĬ", + "ĠاÙĦØ· بÙĬ", + "ĠاÙĦطب ÙĬ", + "ĠزÛĮ ب", + "Ġп Ñĥ", + "Ġp raž", + "Ġpr až", + "Ġpra ž", + "ìĹĨ ëĬĶ", + "θ ÏģÏī", + "Ġi çi", + "Ġiç i", + "Ġб Ñĸл", + "ĠбÑĸ л", + "Ðł Ñij", + "Ġì¶ķ 구", + "Ġl ạ", + "Ġ ãĥķãĤ¡", + "Ġãĥķ ãĤ¡", + "Ġ èĸ", + "Ġè ĸ", + "μα ÏĦο", + "éĩij å±ŀ", + "á li", + "ál i", + "ĠÙģ Ø£", + "ĠKar lov", + "ĠKarl ov", + "ĠZ áp", + "ĠZá p", + "ãĥª ãĥ³ãĤ°", + "ãĥªãĥ³ ãĤ°", + "ab ilmek", + "abil mek", + "ĠС и", + "Ġc ÃŃrk", + "ĠcÃŃ rk", + "Ġk á»ĭp", + "Ġà¤ij नल", + "ĠÙĪ ØŃدة", + "ĠÙĪØŃ Ø¯Ø©", + "ãĥĭ ãĥĥãĤ¯", + "Ġn Æ°á»Ľng", + "Ġа кÑĤÑĥ", + "Ġак ÑĤÑĥ", + "ĠакÑĤ Ñĥ", + "å¸Ŀ åĽ½", + "Ġn ázev", + "Ġnáz ev", + "ĠÑĢемон ÑĤ", + "ĠÑĢ инкÑĥ", + "ĠÏĢ άνÏī", + "ĠÏĢά νÏī", + "ÏĦ ικο", + "ÏĦικ ο", + "ÏĦι κο", + "ĠìĤ¼ ìĦ±", + "ĠÑģимпÑĤом Ñĭ", + "ĠÑĢа нÑĸÑĪе", + "ĠJ á", + "ĠÑģÑĩиÑĤа еÑĤÑģÑı", + "ĠÑģÑĩиÑĤ аеÑĤÑģÑı", + "Ġп оÑĢÑĸв", + "Ġпо ÑĢÑĸв", + "ĠпоÑĢ Ñĸв", + "ĠÐľ ал", + "ĠÐľÐ° л", + "éĿ¢ 积", + "ĠÙĦ غ", + "Ġج Ø´ÙĨ", + "Ġнед ели", + "Ġнедел и", + "Ġì¦Ŀ ê°Ģ", + "ãĨį ëıĻ", + "Ġl ượt", + "ĠÄIJ á»ĭnh", + "Ġ à¸Ńà¸Ńà¸Ļà¹Ħลà¸Ļ", + "Ġà¸Ń à¸Ńà¸Ļà¹Ħลà¸Ļ", + "Ġyap arak", + "Ġyapar ak", + "ĠÄij ai", + "ĠÄija i", + "Ġо ÑĦиÑĨи", + "Ġε μÏĢ", + "ξ ειÏĤ", + "ξει ÏĤ", + "Ġкон ÑĦеÑĢен", + "Ġ arası", + "Ġa rası", + "Ġar ası", + "Ġaras ı", + "Ġara sı", + "à¸ķ า", + "Ġ ë´IJ", + "Ġë´ IJ", + "о вана", + "ов ана", + "ова на", + "ован а", + "ì§Ģ ê°Ģ", + "ĠV ám", + "ि à¤ľà¤¨", + "à¤¿à¤ľ न", + "Ġ ç¼ĸè¾ij", + "Ġç¼ĸ è¾ij", + "ζ ÏĮ", + "ĠÏĦ ÏģÏĮ", + "Ġücret siz", + "ĠکاÙħ ÙĦا", + "ĠکاÙħÙĦ ا", + ": ::/", + ":: :/", + "::: /", + "à¹Į ĊĊ", + "à¹ĮĊ Ċ", + "Ġéĸ¢ éĢ£", + "Ġ kara", + "Ġk ara", + "Ġka ra", + "Ġkar a", + "Ġбез пеки", + "ĠzmÄĽ ny", + "ĠzmÄĽn y", + "Ġê¿ Ī", + "v rd", + "vr d", + "li ÄŁine", + "liÄŁi ne", + "liÄŁ ine", + "liÄŁin e", + "ĠاÙĨتخاب ات", + "ĠдоÑģ вÑĸд", + "Ġkter ého", + "Ġkteré ho", + "ен ÑĤом", + "енÑĤ ом", + "ê³µ ë¶Ģ", + "ìł Ŀ", + "Ġë§Į 족", + "Ġ æij", + "Ġæ ij", + "åĩº åı£", + "建 è®®", + "о ÑĤÑı", + "оÑĤ Ñı", + "Ġ Òij", + "ĠÒ ij", + "íĶĦ ë¡ľ", + "Ġg ió", + "Ġgi ó", + "ãĤ· ãĤ§", + "Ġλ εÏĢ", + "íķĺ 볤", + "Ġyok sa", + "Ġist ih", + "ï¼ ¶", + "ĠاÙĦ عÙħ", + "ĠاÙĦع Ùħ", + "Ġکار گرد", + "à¹Ģà¸ŀ ราะ", + "Ġn ových", + "Ġnov ých", + "Ġnový ch", + "ĠÑģ на", + "Ġs ana", + "Ġsa na", + "Ġsan a", + "व त", + "Ä±ÅŁ man", + "Ä±ÅŁma n", + "åı¦ å¤ĸ", + "ì¶ľìŀ¥ ìĥµ", + "å© ¦", + "ĠкоÑĪ ÑĤÑĸв", + "ĠÙĪاÙĦ ÙĨ", + "Ġب اÙĦØ¥", + "ĠباÙĦ Ø¥", + "Ġ æĬĢ", + "ĠæĬ Ģ", + "Ġмн оже", + "à¥Ĥ ड", + "ĠC ục", + "Ġe vet", + "Ġev et", + "Ġeve t", + "èģĶ åIJĪ", + "Ġ³³Ġ³³ Ġ³³Ġ³³", + "çļĦ å¿ĥ", + "Ġd áng", + "Ġdá ng", + "Ġdán g", + "اÛĮ سÙĩ", + "Ġ erken", + "Ġer ken", + "Ġerk en", + "æ³ ¡", + "ائ ب", + "Ġyap ıldı", + "Ġyapıl dı", + "ĠQu ản", + "æŶ 代", + "ìĽ ¨ìĸ´", + "ìĽ¨ ìĸ´", + "Ġг ÑĸÑĢ", + "ok oj", + "oko j", + "Ùĥ رة", + "Ùĥر Ø©", + "Ñİ Ðº", + "Ġvý j", + "Ġhod iny", + "Ġhodin y", + "Ġелек ÑĤÑĢон", + "m ıyor", + "ĠìŀĪ ëĭ¤ëĬĶ", + "ĠìŀĪëĭ¤ ëĬĶ", + "à¹ī à¹ī", + "иÑĤелÑĮ ное", + "иÑĤелÑĮно е", + "Ġyıl lar", + "Äı te", + "ĠÄįin nost", + "ุà¸ĵ à¸łà¸²à¸ŀ", + "í ĵ¨", + "н г", + "ู รà¸ĵ", + "ูร à¸ĵ", + "ĠпоÑĢÑıд ке", + "Ġëĭ¹ ìĭľ", + "ĠÐľ оÑģков", + "ĠÐľÐ¾Ñģк ов", + "Ġk red", + "Ġkr ed", + "Ġkre d", + "u rum", + "ur um", + "uru m", + "Ġ ÑĤÑı", + "ĠÑĤ Ñı", + "Ú© ÙĨاÙĨ", + "Ú©ÙĨ اÙĨ", + "д ии", + "ди и", + "ÑĢи мÑĸн", + "ÑĢим Ñĸн", + "ĠоÑĢгани зм", + "ĠоÑĢганиз м", + "Ġ éĽĨ", + "ĠéĽ Ĩ", + "ι ÏĥÏĦο", + "ιÏĥ ÏĦο", + "ä¿¡ çĶ¨", + "åįģ åĽĽ", + "à¹Ī à¹ĥà¸Ĭ", + "ĠÑĥ вид", + "ĠÑĥв ид", + "ัà¸ĩ à¸ģล", + "ัà¸ĩà¸ģ ล", + "åı¦ ä¸Ģ", + "ãĥ« ãĥķ", + "ัà¸ļ à¸Ľà¸£", + "ĠÃľ st", + "説 æĺİ", + "в ай", + "ва й", + "а Ñĩе", + "аÑĩ е", + "æ¬ £", + "Ġkat ıl", + "Ġkatı l", + "ĠC em", + "ĠCe m", + "ĠاÙĦ جÙĩ", + "ĠاÙĦج Ùĩ", + "Ġг ÑĢÑĥз", + "ĠгÑĢÑĥ з", + "ĠгÑĢ Ñĥз", + "Ġза ÑģÑĤав", + "ĠзаÑģÑĤ ав", + "cı lar", + "ĠÑħоÑĤ ел", + "Ġs nÃŃm", + "Ġsn ÃŃm", + "ĠsnÃŃ m", + "ï¼Į 被", + "Ġ виÑī", + "Ġв иÑī", + "Ġви Ñī", + "Ġdem okrat", + "Ġdemok rat", + "à¥ĩ à¤Łà¤°", + "à¥ĩà¤Ł र", + "åij¨ å¹´", + "Ġod pad", + "Ġodp ad", + "Ġda ÅĪ", + "Ġ 代", + "à¹ĩ à¸Ļà¸Ń", + "à¹ĩà¸Ļ à¸Ń", + "ĠÑģк олÑĮко", + "Ġα ÏĨ", + "ĠpÅĻes vÄĽd", + "Ġ åĵģ", + "Ġåĵ ģ", + "ĠинÑĦоÑĢм аÑĨии", + "ĠинÑĦоÑĢма ÑĨии", + "çĽ Ĺ", + "ãģ¾ ãģ¨", + "ĠÑģам ов", + "ĠÑģамо в", + "Ġpo cit", + "Ġpoc it", + "Ġíݸ ì§ij", + "ĠÑģм еÑģÑĮ", + "Ġpo jiÅ¡tÄĽnÃŃ", + "ãģ® ãĤĤ", + "à¹Ī าà¸ģาร", + "à¹Īา à¸ģาร", + "à¹Īาà¸ģ าร", + "ĠÛĮ ÙĪÙĨ", + "Ġ기 ìĸµ", + "ick ými", + "ický mi", + "ickým i", + "a lace", + "al ace", + "ala ce", + "鼻 å½±", + "Ñİ Ð²Ð°Ð½Ð½Ñı", + "缸 åIJĮ", + "Ġ ãĢĥ", + "ĠãĢ ĥ", + "ĠдокÑĥм енÑĤÑĸв", + "ĠдокÑĥменÑĤ Ñĸв", + "ï¼ ¹", + "åĪ° åºķ", + "ó z", + "ĠAh met", + "ĠÙħس اØŃت", + "Ġhl avou", + "Ġhlav ou", + "ül ebilir", + "üle bilir", + "ãĢĤ ä½ł", + "à¹ĩà¸ģ à¸Ĭาย", + "¤ ¤", + "Ġ æĦı", + "ĠæĦ ı", + "Ġch áºŃm", + ". д", + "Ġ cca", + "Ġc ca", + "Ġcc a", + "Ġol umsuz", + " ŀ", + "çĬ ¬", + "ĠпоÑģÑĤоÑıн но", + "Ġ.************** Ċ", + "Ġا ستر", + "Ġاست ر", + "Ġاس تر", + "ĠдалÑĮ ней", + "ů r", + "ä¿Ŀ èŃ·", + "боÑĢ аÑĤоÑĢ", + "боÑĢа ÑĤоÑĢ", + "à ·", + "Ïĥ ÏĦαν", + "ÏĥÏĦ αν", + "ÏĥÏĦα ν", + "ĠÙģ ÙĬÙĦÙħ", + "ĠÙģÙĬ ÙĦÙħ", + "ç ek", + "çe k", + "ìŀIJ 기", + "Ġ æ¥Ń", + "Ġæ¥ Ń", + "н Ñĸп", + "нÑĸ п", + "èī ĩ", + "Ġm oci", + "Ġmo ci", + "Ġmoc i", + "ìľ µ", + "리 ê·¸", + "ĠÐļ о", + "éĤ£ éĩĮ", + "ĠС ÑĤаÑĢ", + "ĠСÑĤ аÑĢ", + "ĠСÑĤа ÑĢ", + "ĠتÙĪاÙĨ ÛĮد", + "Ġng uyá»ĩn", + "Ġnguy á»ĩn", + "Ġ สามารà¸ĸ", + "Ġส ามารà¸ĸ", + "Ñĸ Ñĩна", + "ÑĸÑĩ на", + "Ġ 被", + "Ġè¢ «", + "ุà¸ķสาห à¸ģรรม", + "Ġع صر", + "Ġعص ر", + "ĠÃľNÄ° VERS", + "Ġteh dy", + "ĠÙĪصÙĦ ات", + "ĠÙĪص ÙĦات", + "ä¿Ŀ è¯ģ", + "ĠE udicots", + "ĠÎł ÎŃ", + "建 è¨Ń", + "ĠìłĦ êµŃ", + "Ġ ØŃÛĮ", + "ĠØŃ ÛĮ", + "ãĤ¤ ãĥĦ", + "ĠØŃ Ø§ØµÙĦ", + "ĠجÙĨ ÙĪبÛĮ", + "ĠجÙĨÙĪب ÛĮ", + "ãĢģ æĹ¥æľ¬", + "à Ļ", + "Ġ à¸Ĺาà¸ĩ", + "Ġà¸Ĺ าà¸ĩ", + "ĠÙĨØŃ ÙĪ", + "اÙĩ ÙĬÙħ", + "å¾Į ãģ«", + "à¸Īะ à¹Ħà¸Ķ", + "åĩł 个", + "à¥ģ à¤ģ", + "à¥ģठģ", + "ëĮĢ ìĿĺ", + "Ġl Ãłn", + "ĠlÃł n", + "ìĽĶ ë¶ĢíĦ°", + "Æ ł", + "Ġ еди", + "Ġе ди", + "Ġs pis", + "Ġsp is", + "Ġspi s", + "æľī ä»Ģä¹Ī", + "Ġneb yla", + "Ġneby la", + "Ġnebyl a", + "Ġíķ´ ìĻ¸", + "ë¡ľ ë¶ĢíĦ°", + "аÑĢ Ñħ", + "l ili", + "li li", + "lil i", + "Ġíķĺ 루", + "ma ması", + "mam ası", + "Ñĩ аеÑĤ", + "Ñĩа еÑĤ", + "ĠØŃ Ø§ÙĦØ©", + "ĠØŃاÙĦ Ø©", + "ĠBöl üm", + "缸 éĹľ", + "ĠдÑĢÑĥг ими", + "ĠдÑĢÑĥгим и", + "çĽ£ çĿ£", + "à¥Ī à¤ľ", + "Ġعبد اÙĦÙĦÙĩ", + "ĠعبداÙĦ ÙĦÙĩ", + "Ġ è¿ŀ", + "Ġè¿ ŀ", + "ĠÐľ ин", + "ĠÐľÐ¸ н", + "Ġê¸ °ëĭ¤", + "Ġ기 ëĭ¤", + "Ġê³µ 격", + "è¡Į åĭķ", + "ा मà¤ķ", + "ाम à¤ķ", + "æ±Ĥ è´Ń", + "模 åŀĭ", + "Ñģ оÑĢ", + "Ñģо ÑĢ", + "r ane", + "ra ne", + "ran e", + "à¹ĩà¸Ī à¸ŀระ", + "ĠÙħس ÛĮر", + "è£ħ ç½®", + "ìķ ¤", + "nÄĽ jÅ¡ÃŃch", + "nÄĽjÅ¡ÃŃ ch", + "αλ ÏįÏĦε", + "ĠH akk", + "ĠHa kk", + "ĠHak k", + "访 éĹ®", + "ĠÑĤ еÑĩ", + "ĠÑĤе Ñĩ", + "ĠL á»ĭch", + "Ġدش ÙħÙĨ", + "Î Į", + "Ġ ÏĢε", + "ĠÏĢ ε", + "Ġза мов", + "Ġзам ов", + "Ġb irim", + "Ġbi rim", + "Ġbir im", + "Ġbiri m", + "ãĤ· ãĤ¹ãĥĨãĥł", + "ĠÏĢÏģο ÏĬ", + "Ĭ ìĿĢ", + "в иг", + "ви г", + "Ġëıħ ìĿ¼", + "ĠÑĢев олÑİ", + "Ġ é¦Ļ港", + "Ġé¦Ļ 港", + "Ġ lez", + "Ġl ez", + "Ġle z", + "ĠبÛĮ Ùħار", + "ĠبÛĮÙħ ار", + "Ġduy gu", + "Ġduyg u", + "Ġë Ľ°", + "Ġa macı", + "Ġam acı", + "Ġama cı", + "Ġamac ı", + "à¥įय प", + "ĠìŀIJ ìĦ¸", + "اÙĪ ÛĮر", + "اÙĪÛĮ ر", + "Ġs pole", + "Ġsp ole", + "Ġspo le", + "Ġspol e", + "Ãĸ L", + "Ġ جع", + "Ġج ع", + "ÙĦ ÛĮÙħ", + "ÙĦÛĮ Ùħ", + "ãģªãģ© ãģ®", + "à¸Ľà¸£à¸°à¸ª à¸ļ", + "ĠnaÅ¡ ich", + "ĠпÑĢедÑģÑĤав лÑıеÑĤ", + "Ġзд об", + "Ġo bou", + "Ġob ou", + "Ø® ÙĪاÙĨ", + "Ø®ÙĪ اÙĨ", + "ãĥ¬ ãĥĥãĥĪ", + "о дейÑģÑĤв", + "од ейÑģÑĤв", + "Ú© رÛĮ", + "کر ÛĮ", + "Ġات اÙĤ", + "ĠÑįкÑģп лÑĥаÑĤа", + "ï½ ¢", + "ĠÙĦÙĦ Ø¥", + "ĠاÙĦÙĨ ظاÙħ", + "ĠíĶĦ ëŀijìĬ¤", + "ıs ıt", + "ısı t", + "åŃ Ļ", + "Ġžád ný", + "ÙĤ Ùī", + "ัà¸ģ à¹Ģร", + "Ġë²ł ìĬ¤íĬ¸", + "Ġ ãĥ«", + "Ġãĥ «", + "åı Ķ", + "n ické", + "nic ké", + "nick é", + "Ġε ιÏĥ", + "Ġει Ïĥ", + "ãĥ« ãĥī", + "Ġدار Ùħ", + "Ġг ем", + "Ġге м", + "Ġ åѸ", + "ĠåŃ ¸", + "ान सà¤Ń", + "ानस à¤Ń", + "али зи", + "ализ и", + "ов анÑĸ", + "ова нÑĸ", + "ован Ñĸ", + "Ġо бо", + "Ġоб о", + "ìłĦ ìĹIJ", + "ĠS inh", + "ĠSi nh", + "ĠSin h", + "Ġ ÙĨع", + "ĠÙĨ ع", + "Ġоб лаÑģ", + "Ġобла Ñģ", + "Ġобл аÑģ", + "Ïħ ÏĢ", + "èĥ ¶", + "Ġaz alt", + "Ġazal t", + "åħ¨ éĿ¢", + "ĠK romÄĽ", + "ĠKro mÄĽ", + "ĠC z", + "æĬ¥ åIJį", + "Ġnásled ujÃŃcÃŃ", + "Ġна пÑĢиклад", + "ĠнапÑĢи клад", + "ãģª ãģijãĤĮãģ°", + "à¸Ń าย", + "çľĭ çľĭ", + "Ġà¸ģร à¸ģà¸İ", + "Ġà¸ģรà¸ģ à¸İ", + "ed nou", + "edn ou", + "ا زÙĦ", + "از ÙĦ", + "ãĢģ æľ¬", + "е Ñģи", + "еÑģ и", + "Ġta rz", + "Ġtar z", + "ãĢĢ ï¾Ĭ", + "Ġroz um", + "ãĤ« ãĥ¼ãĥī", + "ãĤ«ãĥ¼ ãĥī", + "Ġà¤ĩ à¤ķ", + "Ġpros tÄĽ", + "Ġprost ÄĽ", + "ĠÎĵ κ", + "ç© ´", + "ĠH ük", + "la vÃŃ", + "lav ÃŃ", + "ê ¿", + "é¸ ¡", + "Ġвозник аеÑĤ", + "Ġвозника еÑĤ", + "ÑŁ ÑŁÑŁ", + "ÑŁÑŁ ÑŁ", + "Ġпо нима", + "Ġпон има", + "ÐŁ Ðŀ", + "ãģĶãģĸ ãģĦãģ¾ãģĻ", + "ãģ ħ", + "Ġtr val", + "Ġдал еко", + "ĠÙĨ ÙĬز", + "ĠÙĨÙĬ ز", + "ĠвÑĭ Ñıв", + "ิà¸Ĺย า", + "ิà¸Ĺ ยา", + "Ġl á»Ĺ", + "Ġlá» Ĺ", + "à¹Ģ สà¸Ļ", + "à¹Ģส à¸Ļ", + "ĠÑģÑĤ енÑĭ", + "ĠÑģÑĤен Ñĭ", + "à¥įड ल", + "Ġjednotliv ých", + "ĠпÑĢиб лиз", + "i kat", + "ik at", + "ika t", + "Ġп одав", + "Ġпо дав", + "Ġпод ав", + "Ġпода в", + "ر ÛĮز", + "رÛĮ ز", + "ĠØ¢ÙĨ جا", + "社 æľĥ", + "Ġà¤ľà¤¨ वर", + "Ġa ile", + "Ġai le", + "Ġail e", + "ี à¸Ľ", + "Ġ èħ", + "Ġè ħ", + "ãģ§ ãģĹãĤĩãģĨ", + "С Ðŀ", + "ãĢģ ãĢĬ", + "ìĿ¼ 본", + "ov anou", + "ova nou", + "ovan ou", + "ν ÏĮ", + "å± ¥", + "ع ÙĦÙĤ", + "عÙĦ ÙĤ", + "Ġìī ½", + "Ġгли б", + "Ġê²ĥ ìŀħëĭĪëĭ¤", + "ĠнеобÑħодим оÑģÑĤи", + "ĠнеобÑħодимо ÑģÑĤи", + "Ġتخصص ÛĮ", + "ا سر", + "اس ر", + "ï¼Į 说", + "ĠÐĿ Ñĸ", + "Ġvy rob", + "ÑĪ ÑĥÑİ", + "ÑĪÑĥ Ñİ", + "æĪ¿ å±ĭ", + "Âł ÐĹ", + "à¹Ģ à¸ŀล", + "à¹Ģà¸ŀ ล", + "åĨħ éĥ¨", + "ĠدÙĦ ار", + "Ġп ÑĤи", + "Å¡ ti", + "Å¡t i", + "ĠaraÅŁtır ma", + "Ġзна ком", + "Ġε λλην", + "Ġ ấm", + "ÑĢ ак", + "ÑĢаРº", + "ÑĢа к", + "ãĤŃ ãĥ¥", + "Ġth áºŃn", + "èŃ ľ", + "ëªħ ìĿĺ", + "Ġy eter", + "Ġyet er", + "Ġye ter", + "Ġна Ñģлед", + "ĠнаÑģ лед", + "ĠÐļ ан", + "ĠÐļа н", + "ĠвÑĭ биÑĢа", + "ĠвÑĭб иÑĢа", + "ĠΣ Ïĩ", + "ĠÑĤеÑĢ мÑĸн", + "Ġ æ´»", + "Ġæ´ »", + "ĠاÙĦ تÙģ", + "ĠاÙĦت Ùģ", + "ĠJ apon", + "ĠJa pon", + "ĠJap on", + "éĤ ª", + "ë¶Ħ ìĦĿ", + "Ġли ÑĨо", + "ĠлиÑĨ о", + "Ġm ê", + "à¸Ħ วร", + "à¸Ħว ร", + "Ġà¤ħ à¤Ĺल", + "Ġà¤ħà¤Ĺ ल", + "ĠÙĩ ج", + "룬 ìļ´", + "Ġвой нÑĭ", + "اÙĪر زÛĮ", + "ĠÑģп ÑĢÑı", + "çĦ ¼", + "è¢ ĸ", + "Ġiç eren", + "Ġiçer en", + "Ġëħ¸ ëŀĺ", + "ĠЧеÑĢ ез", + "ÙĪج ÙĪد", + "Ñı ÑĤие", + "ÑıÑĤ ие", + "ÑıÑĤи е", + "à¸Ńลล าร", + "è ·¨", + "è· ¨", + "ĠM illi", + "ĠMill i", + "ĠMil li", + "ĠMi lli", + "件 äºĭ", + "Ġ æľĿ", + "βολ ή", + "βο λή", + "Ġ ков", + "Ġк ов", + "Ġко в", + "ĠØ´Ùĩ ÛĮد", + "ä¸ĭ åİ»", + "Ġìłķ ìĭł", + "оÑĩ кÑĥ", + "ï¼Į 便", + "γ κε", + "γκ ε", + "ĠÙħ باش", + "ĠÙħب اش", + "Ġay ında", + "Ġ ä»»", + "ÑģÑĤоÑĢ ÑĸÑı", + "ä¸Ń åѦ", + "ç¸ ®", + "ĠÑĦ Ñĸл", + "ãĢģ ãĤĦ", + "Ġ æĺ¥", + "Ġæĺ ¥", + "Ġter ör", + "Ġповин ен", + "Ġmilion ů", + "ĠÙģ ارس", + "ĠÙģار س", + "Ġв вод", + "Ġвв од", + "Ø· اÙĦ", + "Ġê¶ģ ê¸Ī", + "Ġuk áz", + "çĶ ľ", + "æļ Ĥ", + "ص ت", + "Ðļ огда", + "Ġम ल", + "ά να", + "άν α", + "Ġдок ÑĤоÑĢ", + "Ġком мÑĥ", + "ĠпÑĸд Ñģ", + "Ġà¸ģรà¸ģà¸İ าà¸Ħม", + "Âł г", + "Ġö ne", + "Ġön e", + "ĠÄIJ á»ģ", + "ĠÄIJá» ģ", + "äºĭ åĭĻ", + "Ġs rov", + "Ġsr ov", + "Ġ άν", + "Ġά ν", + "ëıĦ ê°Ģ", + "acaÄŁ ım", + "acaģı m", + "к ол", + "ко л", + "Ġb á»ĵi", + "Ġپرد از", + "Ġ ä¸ļ", + "Ġä¸ ļ", + "ëĭ¤ ìļ´", + "Ġп ÑĢедел", + "ĠпÑĢед ел", + "ĠпÑĢе дел", + "ĠÑĦедеÑĢа лÑĮ", + "ĠاÙĦ Ø£Ùĥ", + "ĠاÙĦØ£ Ùĥ", + "ãĢĢ ãĢĢãĢĢãĢĢĠãĢĢĠãĢĢ", + "ãĢĢãĢĢ ãĢĢãĢĢĠãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢ ĠãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢ ãĢĢĠãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢãĢĢĠãĢĢ ĠãĢĢ", + "Ġtr ấn", + "Ġд лин", + "Ġдли н", + "ĠÑĸ мп", + "ĠÑĸм п", + "ĠsmÄĽ rem", + "° ëĭ¤", + "Ġr ừng", + "ici álnÃŃ", + "è¡ Ĩ", + "μ ιο", + "μι ο", + "Ġاد ارÙĩ", + "ĠÑĤ ÑĢÑĮ", + "ĠÑĤÑĢ ÑĮ", + "ĠÄ° li", + "ĠÄ°l i", + "มà¸Ļ à¸ķร", + "à¥įव à¤ļ", + "е ÑĢо", + "еÑĢ о", + "ĠK UR", + "sk ými", + "ský mi", + "ským i", + "δ ί", + "u tin", + "ut in", + "uti n", + "Ġver iler", + "Ġveri ler", + "สà¸ĸาà¸Ļ à¸Ĺ", + "ĠзаÑħод Ñĸв", + "ĠÙģرÙĪد گاÙĩ", + "Ġ çĶ±", + "ู à¹ģล", + "éĥ ij", + "ĠJ ako", + "ĠJa ko", + "ĠJak o", + "ĠÑĢазвиÑĤи е", + "ĠÑĢазви ÑĤие", + "à¤ī न", + "ÙĬ دا", + "ÙĬد ا", + "Ġà¸ŀ à¸¤à¸©à¸łà¸²à¸Ħม", + "물 ìĿĦ", + "ë łĢ", + "ëł Ģ", + "- ÐĽ", + "ãĢĤ ãģĤ", + "Ġпод в", + "ï¼ī ï¼ļ", + "论 åĿĽ", + "ائ ع", + "ãĤĴ ãģĻãĤĭ", + "ĠØ£ ص", + "Ñĩ ики", + "Ñĩи ки", + "Ñĩик и", + "ĠÑģÑĤ ил", + "ley ici", + "Ñģ илÑĮ", + "Ñģи лÑĮ", + "Ġbulun du", + "ĠÑģеÑĢед ови", + "à¤Ĥ र", + "ĠاÛĮÙĨ جا", + "åľŃ åľŃ", + "ĠmyÅ¡ len", + "ĠÑĢозвиÑĤ ок", + "Ġiy ileÅŁ", + "Ġiyi leÅŁ", + "Ġв Ñĸз", + "ĠвÑĸ з", + "ëĤĺ 무", + "æĦı è§ģ", + "ι ÏĥÏĦη", + "ιÏĥ ÏĦη", + "ãĥĥ ãĥĦ", + "äºĭ æķħ", + "m adıģı", + "ma dıģı", + "mad ıģı", + "madı ģı", + "Ġà¤ħ पर", + "Ġà¤ħप र", + "ĠÚĨ رخ", + "Ġп лав", + "Ġпл ав", + "Ġпла в", + "以 æĿ¥", + "Ġë© Ģ", + "T uy", + "Tu y", + "ãĥ¼ ãĥį", + "ãĥ¼ãĥ į", + "Ġиз ÑĥÑĩ", + "ĠstÅĻed nÃŃ", + "课 ç¨ĭ", + "Ġê·¸ëħĢ ëĬĶ", + "ĠдоговоÑĢ Ñĥ", + "Ġдогов оÑĢÑĥ", + "ĠÄij á»ĭch", + "ĠÄijá»ĭ ch", + "Ġkar arı", + "Ġkarar ı", + "Ġkara rı", + "åIJ ´", + "Ùĥ اÙħ", + "ĠпоÑĤ ол", + "в ок", + "во к", + "ĠD üz", + "Τ α", + "å µ", + "âĢĻ na", + "âĢĻn a", + "а дж", + "ад ж", + "ĠdÅĻÃŃ ve", + "æ¢ ¨", + "ĠAv ust", + "åĬĽ ãĤĴ", + "à¹Ģ à¸ģล", + "à¹Ģà¸ģ ล", + "Ġпоб ед", + "Ġп ÑĢиÑĩ", + "ĠпÑĢ иÑĩ", + "ĠпÑĢи Ñĩ", + "ĠÐij Ñĸ", + "åŃ ¤", + "ĠÐł ег", + "ĠÐłÐµ г", + "Ġyet iÅŁ", + "Ġн еÑİ", + "Ġне Ñİ", + "Ġb ÃŃl", + "ĠbÃŃ l", + "ìĹĨ ìĿĮ", + "ĠÄ° talya", + "ÐĴ Ñģе", + "å¾Į ãģ®", + "Ġje jÃŃm", + "Ġjej ÃŃm", + "ĠjejÃŃ m", + "ĠвиглÑı дÑĸ", + "о гÑĢад", + "ог ÑĢад", + "огÑĢа д", + "Ġbo hat", + "Ġboh at", + "Ġ åħĭ", + "Ġåħ ĭ", + "ĠдиÑĤи ни", + "ĠдиÑĤ ини", + "лÑı ÑĤоÑĢ", + "ма га", + "маг а", + "ëĭĪ ìĬ¤", + "ĠÐł ади", + "ĠÐłÐ°Ð´ и", + "ĠÐłÐ° ди", + "ÏĢ οÏħÏģγ", + "ÏĢοÏħ Ïģγ", + "& ZeroWidthSpace", + "Ġ struk", + "Ġst ruk", + "Ġstr uk", + "Ġstru k", + "æIJ ŀ", + "Ġ ãģĿãģ®ä»ĸ", + "ìĿ¸ ìĿĦ", + "ĠпÑĢо веÑģÑĤи", + "ĠпÑĢов еÑģÑĤи", + "漫 çĶ»", + "Ġçİ© 家", + "ĠÙĪ رز", + "ĠÙĪر ز", + "ĠÑģвоÑĹ Ð¼", + "ĠL RV", + "ĠLR V", + "ิà¸ķ à¸ł", + "स त", + "ĠíĿ Ķ", + "âĹıâĹıâĹıâĹıâĹıâĹıâĹıâĹı âĹıâĹıâĹıâĹıâĹıâĹıâĹıâĹı", + "Ġt voÅĻÃŃ", + "ĠtvoÅĻ ÃŃ", + "Ġ ÐŁÐŀ", + "ĠÐŁ Ðŀ", + "é«ĺ 度", + ".h wp", + ".hw p", + "à¸ķำ à¸ļล", + "Ġد س", + "ìĪĺ ê°Ģ", + "ìĶ ©", + "ï¼ī ãĢĤĊ", + "ï¼īãĢĤ Ċ", + "æĭ ³", + "Ġl ô", + "ĠK ültür", + "اط عة", + "Ġku chy", + "Ġst roj", + "Ġstr oj", + "Ġstro j", + "μ ενο", + "με νο", + "μεν ο", + "ĠконÑģÑĤÑĢÑĥк ÑĨии", + "å°ı åѦ", + "Ġ åįļ", + "Ġåį ļ", + "Ġ èĢĥ", + "ĠèĢ ĥ", + "Ġas ıl", + "æĪij åĢij", + "خر اج", + "ĠO nun", + "ĠOn un", + "Ġ ç¾İåĽ½", + "Ġç¾İ åĽ½", + "à¥Ĥ बर", + "à¥Ĥब र", + "Ġmu ži", + "Ġmuž i", + "å§ «", + "Ġв б", + "Ġдо ме", + "Ġдом е", + "Ġ ам", + "Ġа м", + "Ġk uru", + "Ġkur u", + "Ġku ru", + "æ± Ĺ", + "l ediÄŁi", + "le diÄŁi", + "ledi ÄŁi", + "Ġv ẽ", + "å¾ ĵ", + "ĠгÑĥб еÑĢ", + "ĠÑģÑĤанов иÑĤÑĮ", + "ĠzemÄĽ dÄĽl", + "ÙĦ ÙĦ", + "Ġr amen", + "Ġra men", + "Ġram en", + "Ġprů bÄĽhu", + "Ġb lok", + "Ġbl ok", + "Ġblo k", + "ý val", + "ýv al", + "v ou", + "vo u", + "ν ά", + "ëĶĶ ìĭľ", + "ÑĨион нÑĭе", + "Ġê²Įìĭľ íĮIJ", + "ãĥ³ ãĥĩãĤ£", + "ãĥ³ãĥĩ ãĤ£", + "ä¸Ģ 级", + "и Ñĩа", + "иÑĩ а", + "ĠسرÛĮ اÙĦ", + "i lin", + "il in", + "ili n", + "ा यन", + "ाय न", + "ÙĨ ÙĪÛĮس", + "ĠÐĶ и", + "Ġاد بÛĮ", + "ĠÑĥ дов", + "ĠÑĥд ов", + "ĠÐĹ Ð°Ð¼", + "ĠÐĹа м", + "à¥ģà¤Ń व", + "Ñģ ок", + "Ñģо к", + "ĠÑĢай оне", + "ĠÑĢайон е", + "Ġ EK", + "ĠE K", + "æĤ ī", + "Ġsor umlu", + "Ġsoruml u", + "Ġzv yÅ¡", + "à¹Ģà¸ĭ à¸Ńร", + "in áÅĻ", + "iná ÅĻ", + "Ġu drž", + "Ġud rž", + "но вид", + "нов ид", + "ĠspoleÄį nÄĽ", + "Ġspole ÄįnÄĽ", + "æĪIJ äºĨ", + "ï¼ ¤", + "ัà¸ŀ à¸Ĺ", + "а ÑĪа", + "аÑĪ а", + "ĠÙĨ ادÙĬ", + "à¹ĥ à¸Ļà¸Ĺ", + "à¹ĥà¸Ļ à¸Ĺ", + "å¡ ļ", + "Ġس Ú©", + "ãĥģ ãĥ¥", + "ĠмаÑĢ ÑĪ", + "а леннÑı", + "ал еннÑı", + "ĠØŃÙħ اÛĮت", + "ãĥ³ ãĤ¸", + "รษ à¸IJ", + "Ġк ÑĢем", + "ĠK ažd", + "ê ½", + "Ġpar lament", + "Ġparl ament", + "ĠÅŁ un", + "ĠÅŁu n", + "Ġk ys", + "Ġky s", + "ÏĦ ÏĤ", + "ê°ľ ìĿĺ", + "Ġve lice", + "Ġvel ice", + "Ġce stu", + "Ġces tu", + "Ġcest u", + "ظ Ø©", + "è¯ Ĭ", + "Ġ út", + "Ġú t", + "ĠØ® ÙĪر", + "ĠØ®ÙĪ ر", + "ĠТ е", + "Ġобла ÑģÑĤ", + "ĠоблаÑģ ÑĤ", + "Ġобл аÑģÑĤ", + "à¹Ī à¸Ńà¸ķ", + "à¹Īà¸Ń à¸ķ", + "ĠAc adem", + "ĠAcad em", + "ãĢĤ æľ¬", + "Ġ 風", + "Ġé¢ ¨", + "Ñģ ен", + "Ñģе н", + "ãĥ¢ ãĥĩãĥ«", + "Ġзавд аннÑı", + "ãģ¾ ãĤĮ", + "моÑĤ ÑĢеÑĤÑĮ", + "моÑĤÑĢ еÑĤÑĮ", + "Ġkh á»ķ", + "à¹Ī ร", + "د رس", + "در س", + "ĠÄĮesk osloven", + "Ġ 计", + "Ġè® ¡", + "ĠÑĤак ом", + "ĠÑĤа ком", + "ĠÙĦ اعب", + "ĠÙĦا عب", + "ĠMuham med", + "ĠÙħ ÙĦÙģ", + "ĠÙħÙĦ Ùģ", + "ĠÙĪس ÙĦÙħ", + "ãĤ·ãĥ£ ãĥ«", + "Ġо кÑĢа", + "Ġок ÑĢа", + "à¥ģ मत", + "à¥ģम त", + "ĠëĪĦ 구", + "Ġned eni", + "Ġneden i", + "ĠëĤł ì§ľ", + "/ km", + "/k m", + "Ġд емон", + "Ġде мон", + "Ġдем он", + "ĠصÙĨ اÛĮع", + "m asından", + "mas ından", + "masında n", + "åīį ãģ®", + "æĪIJ 绩", + "ल à¤Ĺ", + "Ġ åĮħ", + "ĠåĮ ħ", + "à¸Ńà¸ģà¸Īาà¸ģ à¸Ļ", + "ا دا", + "اد ا", + "Ġay lık", + "ĠÙħ ÙĤد", + "ĠÙħÙĤ د", + "Ġönemli dir", + "ĠìĪľ ê°Ħ", + "Ġd inh", + "Ġdi nh", + "Ġdin h", + "Ġná kup", + "ist ické", + "istic ké", + "åº Ł", + "ìĬ¤ íĨł", + "Ġd ny", + "Ġdn y", + "ĠìŀĪ ëıĦë¡Ŀ", + "ìĽIJ ìĿĺ", + "ãĥķ ãĥ¬", + "p oz", + "po z", + "Ġ ев", + "Ġе в", + "ĠdÃ¼ÅŁ ür", + "à¥įर à¤ļ", + "Ġê²° íĺ¼", + "Ġ ÑĨенÑĤÑĢа", + "ĠÑĨенÑĤ ÑĢа", + "ĠÑĨен ÑĤÑĢа", + "ĠÑĨенÑĤÑĢ а", + "åŁ ĭ", + "ï¿£ ï½Ģ", + "æѦ åĻ¨", + "à¹Īาà¸Ļ มา", + "Ġर व", + "Ùij د", + "μÎŃ Î½Î¿Î¹", + "μÎŃν οι", + "μÎŃνο ι", + "Ġë§IJ ìĶĢ", + "Ġpo ÅĻad", + "Ġب غ", + "ĠÏĮ λα", + "ĠÏĮλ α", + "à¹ī à¹Ħà¸Ĥ", + "à¹Ģà¸ģ าะ", + "Ġb ạc", + "Ġd á", + "d ÄĽla", + "dÄĽ la", + "dÄĽl a", + "Ġt eb", + "Ġte b", + "Ġk èo", + "ãĤı ãĤĮ", + "Ġist iyorum", + "Ġistiyor um", + "λ ήÏĤ", + "λή ÏĤ", + "ÐIJ в", + "Ġa sla", + "Ġas la", + "Ġperform ans", + "Ġperfor mans", + "Ġperforman s", + "ĠVác lav", + "Ïģ ίαÏĤ", + "Ïģί αÏĤ", + "Ïģία ÏĤ", + "Ġ tÄĽl", + "Ġt ÄĽl", + "ĠtÄĽ l", + "æĮ Ļ", + "о ба", + "об а", + "ãģij ãĤĮãģ©", + "ĠëĶ ¸", + "ÙĪ اء", + "ÙĪا Ø¡", + "ĠÚ©ÙĪد کاÙĨ", + "ĠÚ©ÙĪدک اÙĨ", + "Ġп лиÑĤ", + "Ġпл иÑĤ", + "Ġ bilir", + "Ġb ilir", + "Ġbil ir", + "Ñĥ же", + "Ñĥж е", + "ÏĦÎŃ Î»Îµ", + "Ġà¤Ĩ à¤ķर", + "Ġà¤Ĩà¤ķ र", + "ĠÑĤÑĢ Ñĥда", + "ĠÑĤÑĢÑĥ да", + "ĠÑĤÑĢÑĥд а", + "Ġدر ÛĮا", + "ĠدرÛĮ ا", + "Ì §", + "Ġng á»įt", + "ÙĨس ا", + "а ÑģÑĤи", + "аÑģ ÑĤи", + "аÑģÑĤ и", + "ï½ £", + "Âł на", + "ем Ñĭе", + "Ġس عÙĪد", + "Ġسع ÙĪد", + "Ġ alım", + "Ġal ım", + "è´ «", + "åĪ° çļĦ", + "Ġkesin likle", + "Ġzá sad", + "Ġ ìĬ¤íĬ¸", + "ĠìĬ¤ íĬ¸", + "Ġd ahi", + "Ġda hi", + "Ġdah i", + "t é", + "åįģ åħ«", + "Ġz ayıf", + "Ø° ار", + "ذا ر", + "Ġا ÙĬراÙĨ", + "ĠاÙĬ راÙĨ", + "Ġhod nocenÃŃ", + "D ST", + "DS T", + "Ġìĸ ĺ", + "æĺ ĩ", + "éĻ £", + "Ġк ле", + "Ġкл е", + "Ġu plat", + "Ġup lat", + "ĠاÙĦتع ÙĦÙĬÙħ", + "ÏĢοί ηÏĥη", + "ек ÑĤоÑĢа", + "екÑĤ оÑĢа", + "екÑĤоÑĢ а", + "Ġë§IJ ìĿ´", + "ĠÙģ رÙĬÙĤ", + "ĠÙģر ÙĬÙĤ", + "帮 åĬ©", + "çĶŁ ãģį", + "åĨħ ãģ®", + "èģĶ 缣", + "г ÑĢад", + "гÑĢа д", + "Ġch uyến", + "ãĤĤ ãĤĬ", + "ĠÑĩаÑģÑĤ ина", + "ĠÑĩаÑģÑĤи на", + "ãģª ãģıãģª", + "ãģªãģı ãģª", + "ÑĶ в", + "ĠÑĦ аÑħ", + "k uk", + "ku k", + "çĶ· æĢ§", + "ĠÙħÛĮÙĦ ادÛĮ", + "Ġb eden", + "Ġbe den", + "Ġbed en", + "ê°Ģ 를", + "म र", + "Ġìĸ´ 머ëĭĪ", + "èģĶ ç½ij", + "Âł mi", + "Âłm i", + "Ġzah rn", + "æ² ĸ", + "Ġkhu ẩn", + "Ġo práv", + "Ġop ráv", + "Ġopr áv", + "ाह à¤ķ", + "ĠÚ©ÙĪت اÙĩ", + "Ġо бол", + "Ġоб ол", + "Ġобо л", + "Ġph úc", + "r ánÃŃ", + "rá nÃŃ", + "rán ÃŃ", + "à¥įर थ", + "æݪ æĸ½", + "Ġв олод", + "Ġво лод", + "Ġвол од", + "Ġsp ÃŃÅ¡e", + "Ġm Æ¡", + "ÑĬ ек", + "ng ör", + "à¤ī त", + "k siyon", + "ks iyon", + "ksi yon", + "а ÑĤе", + "аÑĤ е", + "Ġجز Ø¡", + "áv ka", + "ÐĴ С", + "laÅŁ ma", + "Ġ ç¿", + "Ġç ¿", + "à¸Ń าà¸Ĭ", + "ни ÑĨÑĥ", + "ниÑĨ Ñĥ", + "Ġ หาà¸ģ", + "Ġห าà¸ģ", + "ãģĭ ãģĹ", + "íı ´", + "Ġг аÑĢан", + "ĠгаÑĢ ан", + "ĠгаÑĢа н", + "Ġ Ïĥαν", + "ĠÏĥ αν", + "Ġдобав иÑĤÑĮ", + "ĠÑĢаз ÑĢеÑĪ", + "á ¾", + "æĺ¯ ä¸ª", + "μ ÎŃÏĤ", + "μÎŃ ÏĤ", + "ĠÄ°mpar ator", + "æ¨Ļ æºĸ", + "Ñģ ÑĤÑĭ", + "ÑģÑĤ Ñĭ", + "Ġg ücü", + "Ġgü cü", + "Ġgüc ü", + "Ġ íĥĢìĿ´", + "Ġíĥ ĢìĿ´", + "ĠíĥĢ ìĿ´", + "Ġ åħ¶ä»ĸ", + "Ġåħ¶ ä»ĸ", + "Ġt ông", + "Ġtô ng", + "Ġtôn g", + "Ġv edenÃŃ", + "Ġved enÃŃ", + "Ġvede nÃŃ", + "ëĵľ ë¡ľ", + "Ġm esel", + "Ġme sel", + "Ġmes el", + "Ġ Äįe", + "ĠÄį e", + "j de", + "jd e", + "Ïģ εια", + "Ïģε ια", + "Ïģει α", + "ãĤĪ ãģŃ", + "Ðł ÐĿ", + "è·Ŀ 离", + "ĠÙĤ ائÙħØ©", + "า à¸ļาล", + "าà¸ļ าล", + "ĠÑģай ÑĤÑĸ", + "Ġर स", + "ĠÙĤر ÙĨ", + "Ġná vr", + "Ġnáv r", + "Ú© Ùħ", + "çļĦ æīĭ", + "Ġsor unu", + "Ġsorun u", + "Ġsoru nu", + "/N ÄIJ", + "nut ÃŃm", + "nutÃŃ m", + "ĠØ® ÙĪرد", + "ĠØ®ÙĪ رد", + "ĠØ®ÙĪر د", + "Ġng á»Ŀ", + "Ġ: .|", + "Ġ:. |", + "Ġbudou c", + "i Äįky", + "iÄį ky", + "Ġد رد", + "Ġدر د", + "ÑĢо ниÑĩеÑģ", + "ÑĢон иÑĩеÑģ", + "ç¾ Ĭ", + "ĠìķĦ ë²Ħì§Ģ", + "ĠKan unu", + "ĠKanun u", + "ĠпÑĢивод иÑĤ", + "άλÏħ ÏĪηÏĤ", + "ĠVlad im", + "Ġal ıp", + "Ġе ÑĤап", + "Ġà¤Ĺ लत", + "ĠراÙĩ ÙĨÙħ", + "Ġpoz isyon", + "Ġgö ç", + "èµ ŀ", + "Ġм ой", + "Ġмо й", + "ĠÎł ά", + "Ġ ìĪł", + "ĠìĪ ł", + "ĠØ¢ÛĮ ÙĨدÙĩ", + "a ná", + "an á", + "举 çľģ", + "ĠÙħت عدد", + "Ġ åįĬ", + "Ġåį Ĭ", + "ãĢĢ ãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢãĢĢ ĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢãĢĢĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢãĢĢĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢ", + "ãĢĢãĢĢĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢ", + "ãĢĢãĢĢĠ ãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "Ġth á»Ŀ", + "Ġthá» Ŀ", + "Ġвд ÑĢÑĥг", + "п аÑĤ", + "па ÑĤ", + "ĠпÑĢовед ениÑı", + "ÙĨ ز", + "ĠاÙĦب ØŃØ«", + "æģ ¢", + "Ġbak tı", + "Ġ è·¯", + "Ġè· ¯", + "Ġзаболева ний", + "ĠÐķ вÑĢоп", + "ĠÐķв ÑĢоп", + "Ġtarih li", + "ê¹ ¨", + "ĠÚ© ÙĪÙĩ", + "ĠÚ©ÙĪ Ùĩ", + "Ġìĸ´ 볤", + "Ġtit ul", + "Ġti tul", + "Ġvyd ánÃŃ", + "éĺ¶ æ®µ", + "à¸Īะ à¸ķ", + "Ġм оÑı", + "Ġмо Ñı", + "ĠкоÑĢ ол", + "Ġко ÑĢол", + "Ġб анк", + "Ġбан к", + "วรร à¸ĵ", + "วร รà¸ĵ", + "ĠÙĥس ارة", + "ĠK hoa", + "ĠKh oa", + "ĠKho a", + "ĠÑĥнÑĸвеÑĢÑģиÑĤ еÑĤ", + "ãģ«éĸ¢ ãģĻãĤĭ", + "r uary", + "ru ary", + "Ġ à¸Ĥาย", + "Ġà¸Ĥ าย", + "Ġsv az", + "ĠØ´ رÙĤ", + "Ġشر ÙĤ", + "Ġд ÑĭÑħ", + "Ġиз бав", + "Ġизб ав", + "ĠÑı кÑĸй", + "ĠÑıк Ñĸй", + "ĠÑıкÑĸ й", + "ĠÎľ ον", + "Ġg ön", + "Ġgö n", + "ĠUkr aj", + "ĠUk raj", + "ĠUkra j", + "ัà¸Ļ à¸Ńà¸Ńà¸ģ", + "ัà¸Ļà¸Ń à¸Ńà¸ģ", + "Ġม à¸ģราà¸Ħม", + "и ÑĤов", + "иÑĤ ов", + "Ġanal ý", + "Ġana lý", + "ĠоÑĤ меÑĩ", + "Ġبر اÙī", + "âĪ ı", + "ัà¸ģ à¸ģ", + "æĭ¥ æľī", + "ĠÑĸнÑĪ ого", + "Ġкомп анÑĸÑĹ", + "Ġk ÅĻes", + "ĠÑĢаб оÑĩ", + "ĠÑĢабо Ñĩ", + "a dÃŃ", + "ad ÃŃ", + "ìł ł", + "à¹Ħ หà¸Ļ", + "à¥ģब ह", + "âĢĻ deki", + "âĢĻd eki", + "âĢĻde ki", + "çħ ¤", + "ĠпаÑĢ Ñĥ", + "Ġпа ÑĢÑĥ", + "ìĦ Ń", + "Ġнеп оÑģÑĢед", + "ĠÄ° b", + "Ġà¸ŀ ฤศà¸Ī", + "íĭ ´", + "Ġ ëłĪìĿ´", + "ĠëłĪ ìĿ´", + "ĠTh á»ķ", + "Ñı еÑĤ", + "ائ ج", + "» çĴĥ", + "ÐĴ Ðŀ", + "åĸ Ĭ", + "Ġ 第ä¸ī", + "Ġ第 ä¸ī", + "Ġвок ÑĢÑĥг", + "Ñĩ енÑĮ", + "Ñĩе нÑĮ", + "Ñĩен ÑĮ", + "Ġolan ak", + "Ġola nak", + "t ura", + "tu ra", + "tur a", + "Ġ ÙħÙĬÙĦ", + "ĠÙħ ÙĬÙĦ", + "ĠÙħÙĬ ÙĦ", + "ey di", + "ĠÙħد ÙĬر", + "Ġnel ze", + "ัว à¸Ńย", + "ìħ ľ", + "Ġhlav u", + "Ġkor uy", + "ÑĨ ин", + "ÑĨи н", + "ĠдиÑģ ÑĨип", + "ĠÙħ اÙĨد", + "ĠÙħا ÙĨد", + "ĠÙħاÙĨ د", + "Ġпод ÑĢоб", + "Т Ðŀ", + "ÙĤر ار", + "à¹ģà¸Ļะ à¸Ļำ", + "문 ìĿĦ", + "æĮ¯ ãĤĬ", + "P ÅĻi", + "PÅĻ i", + "Ġy ên", + "श à¤ķ", + "Âł je", + "ĠÐļон ÑģÑĤиÑĤÑĥ", + "à¥ģ ह", + "à¥ģठ¹", + "ĠÙ¾ ا", + "ìĨĮ 를", + "Ġд ела", + "Ġдел а", + "Ġде ла", + "к ид", + "ки д", + "à¹Ĥ à¸Ĭ", + "커 ìĬ¤", + "dÄĽ len", + "dÄĽl en", + "à¤Ķ र", + "äºİ æĺ¯", + "ĠÙĩÙħ ÛĮØ´Ùĩ", + "ĠbaÅŁ lam", + "Ġ ìĽ¨", + "ĠìĽ ¨", + "Ġden eyim", + "Ġdeney im", + "Ġü ye", + "Ġüy e", + "Ġ νÏĮ", + "Ġν ÏĮ", + "Ġà¤ĸ ड", + "n ÄĽl", + "nÄĽ l", + "ĠÑģÑĦ еÑĢÑĸ", + "ĠÑģÑĦеÑĢ Ñĸ", + "à¸Ńà¸Ķ à¸ł", + "ä¸Ģ å¹´", + "Ġvur gu", + "Äŀ Ä°", + "âĢĻ Ċ", + "ĠÑĸн ÑĪими", + "ĠÑĸнÑĪ ими", + "Ġз менÑĪ", + "Ġठĭ", + "Ġв ека", + "Ġве ка", + "ĠØŃÚ©ÙĪÙħ ت", + "ĠتÙħ اÙħÛĮ", + "ĠتÙħاÙħ ÛĮ", + "Ġs mrt", + "Ġsm rt", + "Ġsmr t", + "Ġh ủy", + "Ġyap ılmÄ±ÅŁ", + "Ġyapıl mÄ±ÅŁ", + "à¹ī à¸ľ", + "ĠY en", + "ĠYe n", + "Ġ Ñĥл", + "ĠÑĥ л", + "ĠS vÄĽt", + "ĠSv ÄĽt", + "ั à¸Ħ", + "ĠmÄĽsÃŃ ců", + "д енÑĤи", + "ден ÑĤи", + "Ġ ï¾ĺ", + "Ġï¾ ĺ", + "Ġпол иÑĤи", + "Ġполи ÑĤи", + "ĠполиÑĤ и", + "s kyt", + "sk yt", + "sky t", + "ä¹Ł æľī", + "Ġê°Ļ ìĬµëĭĪëĭ¤", + "Ġê·¸ëŀĺ ìĦľ", + "ÏĦε Ïģη", + "ÏĦεÏģ η", + "Ñĩ еÑĢ", + "Ñĩе ÑĢ", + "ĠÃľNÄ°VERS Ä°TESÄ°", + "ส à¸ł", + "Ġ สร", + "Ġส ร", + "ान द", + "ĠaÅŁ ırı", + "λ ίοÏħ", + "λί οÏħ", + "Ġ ÙĦÙģ", + "ĠÙĦ Ùģ", + "ÃŃ nu", + "ÃŃn u", + "à¸Ń าร", + "ÑĤ ÑĥÑĢа", + "ÑĤÑĥ ÑĢа", + "ÑĤÑĥÑĢ а", + "ĠÄįesk ých", + "ĠÄįe ských", + "ĠÄįeský ch", + "Ġph ức", + "以 为", + "ÏģÏī ÏĢα", + "ĠاÙĨر ÚĺÛĮ", + "» )", + "a lardan", + "alar dan", + "alarda n", + "ĠÑģÑĤ воÑĢÑİ", + "ĠÑģÑĤвоÑĢ Ñİ", + "Ġt ráv", + "Ġtr áv", + "ॠ¬", + "ãģĬ ãĤĪãģ³", + "ïľ ĭ", + "ad il", + "adi l", + "ĠΤ ι", + "Ġ ëIJ©ëĭĪëĭ¤", + "ĠëIJ ©ëĭĪëĭ¤", + "Ġε μÏĨ", + "Ġ구 ì¡°", + "ìĹŃ ìĭľ", + "ĠاÙĦ جاÙħ", + "ĠاÙĦج اÙħ", + "主 é¢ĺ", + "ãĤ¹ ãĥĿ", + "Ġ ìĹŃìĭľ", + "ĠìĹŃ ìĭľ", + "ĠÚ©Ùħ تر", + "ĠSp oleÄį", + "ол оÑĪ", + "оло ÑĪ", + "ĠSur iye", + "Ч еÑĢ", + "æĪĺ æĸĹ", + "Ġz ávis", + "Ġzá vis", + "Ġzáv is", + "æĽ¸ 館", + "Ġmus el", + "Ġmu sel", + "Ġmuse l", + "Ġ çĿ", + "Ġç Ŀ", + "Ùħ Ùħ", + "ĠاÙĦØ® ارج", + "Ġ ÐĵÐŀ", + "ĠÐĵ Ðŀ", + "ĠваÑĢ ÑĤо", + "ĠваÑĢÑĤ о", + "Ïģα β", + "Ġपह à¤ļ", + "ub lice", + "ublic e", + "ubl ice", + "ÑĨион ного", + "è Į¨", + "èĮ ¨", + "ĠدÙģ تر", + "Ġ Ùģس", + "ĠÙģ س", + "Ġन à¤ľà¤°", + "t arı", + "ta rı", + "tar ı", + "Ġоб ÑĢоб", + "ĠÐł а", + "ĠاÙĦ صÙĨ", + "ĠاÙĦص ÙĨ", + "Ø´ Ø©", + "ĠìĹĨ ìĹĪ", + "ož ná", + "æľĢ çµĤ", + "Ù ¥", + "r ech", + "re ch", + "rec h", + "ĠاÙĦØ£ سر", + "ĠاÙĦأس ر", + "Ġм ови", + "Ġмо ви", + "Ġмов и", + "Ġì¡° êµIJ", + "Ñĸ меÑĩ", + "Ñĸм еÑĩ", + "ãĥ¯ ãĥ¼", + "б ÑĥÑĢг", + "бÑĥ ÑĢг", + "Ġس ÙĦس", + "ĠسÙĦ س", + "åѦ ä¼ļ", + "Ġ ë¦", + "Ġë ¦", + "åħĭ æĸ¯", + "æĸĩ çĮ®", + "Ġx Æ°Æ¡ng", + "Ġyo lc", + "Ġyol c", + "Ġ ìĤ¬ë¬´", + "ĠìĤ¬ 무", + "ãĤı ãģļ", + "ĠÑĢаÑģÑĤ ений", + "ĠÙģ ضاÛĮ", + "ĠÙģض اÛĮ", + "Ġna opak", + "Ġnao pak", + "ĠпÑĢи вÑĭ", + "ĠпÑĢив Ñĭ", + "Ġد ÛĮدÙĩ", + "ĠدÛĮ دÙĩ", + "ĠدÛĮد Ùĩ", + "à¸ģาร à¹ĥà¸Ĭ", + "Ġ åŀ", + "Ġå ŀ", + "çij Ł", + "以 åIJİ", + "ĠpÅĻib liž", + "ĠdÃ¼ÅŁ man", + "Ġt emin", + "Ġte min", + "Ġtem in", + "ĠÑĥÑģл Ñĥг", + "ĠÑĥÑģ лÑĥг", + "Ġद ब", + "ĠìĥĪ ê¸Ģ", + "ĠÑĥÑģÑĤÑĢой ÑģÑĤва", + "ĠТ ÑĥÑĤ", + "ÏĦ ίοÏħ", + "ÏĦί οÏħ", + "ĠÄ°s lâm", + "Ù ¤", + "åıĤ ä¸İ", + "Ġк ÑĥÑģÑĤ", + "ĠкÑĥ ÑģÑĤ", + "ĠкÑĥÑģ ÑĤ", + "éĻIJ åĪ¶", + "ت ÙĬÙĨ", + "تÙĬ ÙĨ", + "ĠоÑģÑĤ аннÑĸ", + "ĠоÑģÑĤан нÑĸ", + "ic ations", + "ication s", + "ا Ú©ÛĮ", + "اک ÛĮ", + "но ÑģÑı", + "ноÑģ Ñı", + "ÄŁ an", + "ÄŁa n", + "ãģı ãĤĮãĤĭ", + "ãģıãĤĮ ãĤĭ", + "Ġyap ıyor", + "Ġyapı yor", + "Ġê°ķ ëĤ¨", + "Ùħ ÙĬÙħ", + "ÙħÙĬ Ùħ", + "æ ŃIJ", + "æŃ IJ", + "Ġر ع", + "Ġb oÄŁ", + "Ġbo ÄŁ", + "ĠиÑģ Ñħод", + "èª ł", + "æł· åŃIJ", + "Ġbu deme", + "Ġbud eme", + "Ġbude me", + "ĠÑģ еÑĤ", + "ι ÏĥμοÏį", + "ιÏĥμ οÏį", + "Ġ å¾ĴæŃ©", + "Ġå¾Ĵ æŃ©", + "u álnÃŃ", + "ĠاÙĦع ÙĤ", + "Ġسب Ú©", + "ĠاÙĦØ£ خرÙī", + "ĠاÙĦأخ رÙī", + "E FA", + "EF A", + "åĽº å®ļ", + "Ġ ãĤ¬", + "ĠãĤ ¬", + "ĠìŀIJ ìĹ°", + "ยว à¸Ĥ", + "ب س", + "un ma", + "Ġза ним", + "Ġзан им", + "à¹ĥà¸Ļ ร", + "èĢĥ èĻij", + "æ·· åIJĪ", + "å° ĭ", + "Ġçık Ä±ÅŁ", + "Ġm aliyet", + "Ġmal iyet", + "éľ Ĭ", + "ãģŁãĤģ ãģ®", + "ĠÙ¾ Ø´", + "Ġз лоÑĩ", + "Ġvý Å¡i", + "Ġsch vál", + "ĠÙĨÙħ ÙĪدÙĩ", + "ĠÙĨÙħÙĪد Ùĩ", + "Î Ĩ", + "Ġz ách", + "Ġzá ch", + "Ġ Ïĥκ", + "ĠÏĥ κ", + "ãĤ¹ ãĥŀ", + "ĠÙħس ائÙĦ", + "ĠاÙĦاج تÙħاع", + "åľ° çĤ¹", + "ا ÛĮاÙĨ", + "اÛĮ اÙĨ", + "ĠÐŀ к", + "ê¸ Ķ", + "e lease", + "el ease", + "ele ase", + "Ġطب ÙĤÙĩ", + "ĠطبÙĤ Ùĩ", + "éij ij", + "Ġì½Ķ ë¡ľëĤĺ", + "é¼ ł", + "大 åħ¨", + "ĠпÑĢи веÑģÑĤи", + "ĠпÑĢив еÑģÑĤи", + "Ġاب تد", + "Ġابت د", + "리 ë¡ľ", + "ĠÑģÑĤÑĢ анÑĭ", + "ĠÑģÑĤÑĢа нÑĭ", + "ĠÑģÑĤÑĢан Ñĭ", + "ĠzatÃŃm co", + "Ġh uyết", + "Ġhuy ết", + "سÛĮ ÙĪÙĨ", + "Ġsor du", + "âĢĮ رس", + "ĠÑĦ ÑĢон", + "Ġed ip", + "Ġedi p", + "ÙĨ Ú¯ÛĮ", + "ÙĨÚ¯ ÛĮ", + "Ġк иÑĢ", + "Ġки ÑĢ", + "Ġ íķ´ìķ¼", + "Ġíķ´ ìķ¼", + "ì» ´", + "ÑĨик лоп", + "ĠпÑĢимен ениÑı", + "Ġоб л", + "éļ ª", + "Ġk romÄĽ", + "Ġkro mÄĽ", + "æł¸ å¿ĥ", + "ra him", + "rah im", + "о ÑĢд", + "оÑĢ д", + "Ġl Ãłnh", + "ĠlÃł nh", + "ĠlÃłn h", + "Ġо ÑģÑĤÑĢов", + "ĠоÑģÑĤ ÑĢов", + "; |", + "b uz", + "bu z", + "Ġ ÏĦÏģο", + "ĠÏĦ Ïģο", + "ĠÐĴ аÑĢ", + "æī İ", + "ı lÄ±ÅŁ", + "ılı ÅŁ", + "ıl Ä±ÅŁ", + "éĿ¢ ç©į", + "身 份", + "é¢Ĩ åŁŁ", + "ĠاÙĦÙĤر ÙĨ", + "Ġ пÑĢиклад", + "ĠпÑĢи клад", + "ĠпÑĢик лад", + "ãĥģ ãĥ¼ãĥł", + "Ġสà¸ŀ à¸Ľ", + "Ġо ÑĩиÑģÑĤ", + "ĠоÑĩ иÑģÑĤ", + "ĠоÑĩи ÑģÑĤ", + "Ġмил ли", + "а ÑĨÑĸÑĹ", + "ี à¹Ģà¸Ń", + "Ġt anın", + "Ġtan ın", + "Ġtanı n", + "çĪ¶ 亲", + "Ġmsg str", + "Ġmsgs tr", + "ĠØ´ ÛĮÙħÛĮ", + "ĠØ´ÛĮ ÙħÛĮ", + "ĠÙģر اÙĩÙħ", + "Ġ 맥", + "Ġë§ ¥", + "ãĢĤ å½ĵ", + "Ġкон ÑĨенÑĤÑĢа", + "êµIJ íļĮ", + "ãĤī ãĤĮãģ¦", + "ãĤīãĤĮ ãģ¦", + "Ġya sak", + "Ġyas ak", + "ĠÐij ол", + "Ġ æ¾³", + "Ġæ¾ ³", + "çĩ ķ", + "Ġ جا", + "Ġج ا", + "ëij ĺ", + "Ġدر Ø®ÙĪاست", + "ĠmÃŃst nÃŃ", + "ÂĤ ÃĮ", + "Ġbas kı", + "Ġu çak", + "Ġuç ak", + "ä» ĵ", + "Ġìľł ì§Ģ", + "Ġп оба", + "Ġпо ба", + "Ġпоб а", + "Ġz eptal", + "Ġze ptal", + "ç»Ļ æĪij", + "ĠAt atürk", + "ĠÙħÙĨ اس", + "Ñ Ĵ", + "Ġar acı", + "Ġarac ı", + "Ġara cı", + "лÑİ ÑĶ", + "Ġnit elik", + "Ġnitel ik", + "ĠM ezi", + "ĠMe zi", + "ĠMez i", + "ĠÎŃ Î½Î±ÏĤ", + "ĠÎŃνα ÏĤ", + "ĠÎŃν αÏĤ", + "Ïİν ÏĦαÏĤ", + "v až", + "va ž", + "Ġk uzey", + "Ġ ÏİÏģα", + "ĠÏİ Ïģα", + "ĠÑĢоз пов", + "ĠÑĢозп ов", + "à¹Ī าà¸ģ", + "à¹Īา à¸ģ", + "ãĢģ ä¸ī", + "ĠÑģÑĤ аÑĢи", + "ĠÑģÑĤаÑĢ и", + "ĠÑģÑĤа ÑĢи", + "Ġhak kı", + "Ġhakk ı", + "ĠØ¢Ùħ ادÙĩ", + "íĮ Ķ", + "о мÑĸ", + "ом Ñĸ", + "Ġ âĢł", + "ĠâĢ ł", + "ãģĭ ãĤı", + "ãĢĮ ä½ł", + "æ³ķ åĽ½", + "ÙIJ ÙĬÙĨ", + "ÙIJÙĬ ÙĨ", + "æī ķ", + "н или", + "ни ли", + "нил и", + "ĠÑĥÑģÑĤанов ки", + "Ġl ông", + "Ġlô ng", + "त म", + "ÙĪ ÙĨÙĬØ©", + "ÙĪÙĨ ÙĬØ©", + "ÙĪÙĨÙĬ Ø©", + "ÙĬ تÙĬ", + "ÙĬت ÙĬ", + "Ġê²Įìĭľ 물", + "Ġve Å¡ker", + "ÎŃ Ïģγ", + "ÎŃÏģ γ", + "ĠÑĥ Ñģе", + "ĠÑĥÑģ е", + "Ġk ıl", + "Ġkı l", + "Ġil gi", + "Ġilg i", + "μ Ïīν", + "Ġз вÑĸлÑĮ", + "Ġзв ÑĸлÑĮ", + "Ġön lem", + "à¸ģà¸İ หมาย", + "ĠH iá»ĩp", + "Ġг оÑĢм", + "ĠгоÑĢ м", + "лÑı ÑİÑĤÑĮÑģÑı", + "лÑıÑİÑĤÑĮ ÑģÑı", + "la maya", + "lam aya", + "lama ya", + "ĠÑģпоÑģоб ом", + "ãģ¸ ãģ¨", + "ç¦ģ æŃ¢", + "ĠÑĢаÑħ Ñĥнок", + "ĠоÑĤвеÑĢ ÑģÑĤи", + ".: .:.:.", + ".:.: .:.", + ".:.:.: .", + ".:.:. :.", + "Ġmü da", + "о наÑħ", + "он аÑħ", + "она Ñħ", + "Ì£ c", + "Ġyap acak", + "Ġн азвание", + "Ġназ вание", + "Ġназва ние", + "对 æĸ¹", + "ëĮĢ íijľ", + "çĪ Ń", + "в ана", + "ва на", + "ван а", + "ह न", + "ĠпÑĢоблем а", + "Ġжен ÑīинÑĭ", + "ĠженÑīин Ñĭ", + "èŀ º", + "Ġhosp odáÅĻ", + "ĠСÑĤ еп", + "ĠodpovÄĽ d", + "ĠS á»Ń", + "e view", + "ev iew", + "evi ew", + "åĩł ä¹İ", + "çŁ ¢", + "æĿ¥ ãģŁ", + "Ġп олоÑģ", + "Ġпол оÑģ", + "ĠÑģ ел", + "å± Ĩ", + "ĠпеÑĢв ой", + "ĠпÑĢоÑĨеÑģ Ñģа", + "ĠпÑĢоÑĨеÑģÑģ а", + "ãĢĢ ãĤĿ", + "ت اÙħبر", + "تا Ùħبر", + "и лаÑģÑı", + "ила ÑģÑı", + "ï¼Į æĹł", + "ĠвлаÑģ ноÑģÑĤÑĸ", + "íķĺ ìŀIJ", + "аÑĤ ки", + "ĠB Ãł", + "ĠK arel", + "ĠKar el", + "ĠKa rel", + "ĠKare l", + "è· µ", + "ر ÛĮÙĩ", + "رÛĮ Ùĩ", + "ĠëĤĺ 를", + "ĠобеÑģпеÑĩ ива", + "ĠобеÑģпе Ñĩива", + "à¥įर पत", + "ãģĹ ãĤĩ", + "åį Ĵ", + "Ġ 奥", + "Ġå¥ ¥", + "ĠпÑĢ оÑĤе", + "ĠпÑĢо ÑĤе", + "ĠпÑĢоÑĤ е", + "Ġ æĭĽ", + "Ġæĭ Ľ", + "ĠСÑĤ ÑĢана", + "ĠÑĢабоÑĤ аÑĤÑĮ", + "ĠÑĢабоÑĤа ÑĤÑĮ", + "Ġتش Ø®ÛĮص", + "ек ÑģÑĥ", + "екÑģ Ñĥ", + "Ġ 리그", + "Ġ리 ê·¸", + "Ġص اÙĦØŃ", + "ĠbaÅŁ lamÄ±ÅŁ", + "ĠbaÅŁlam Ä±ÅŁ", + "ĠÙ¾ÛĮ اÙħبر", + "ĠÙ¾ÛĮاÙħ بر", + "ز ا", + "Ġм аÑģÑģ", + "ĠмаÑģ Ñģ", + "ĠÎł αÏģ", + "Ġγα Ïģ", + "ëĿ¼ íĶ¼", + "Ġy arı", + "Ġya rı", + "Ġyar ı", + "ĠÑĤип Ñĥ", + "Ðŀ п", + "ãģij ãģªãģĦ", + "e mem", + "em em", + "eme m", + "ĠnÄĽ mu", + "ĠnÄĽm u", + "ĠÙĨ شر", + "ĠÙĨØ´ ر", + "ĠÎijθή να", + "Ùģ راÙĨ", + "Ùģر اÙĨ", + "Ġ 網", + "Ġç¶ ²", + "ĠпÑĢом иÑģлов", + "ĠBu gün", + "ĠBug ün", + "ìŀ Ķ", + "ĠжÑĸн ок", + "Ġ à¸Ľà¸£à¸°à¹Ģà¸łà¸Ĺ", + "Ġà¸Ľà¸£à¸° à¹Ģà¸łà¸Ĺ", + "ĠвикоÑĢиÑģÑĤов ÑĥваÑĤи", + "ĠТ им", + "ĠТи м", + ") 를", + "еж аÑĤÑĮ", + "Ġs ona", + "Ġso na", + "Ġson a", + "Ø´ÙĨ بÙĩ", + "Ġnich ž", + "åī Ľ", + "ĠÙģ تØŃ", + "ĠÙģت ØŃ", + "ĠÙħÙĤ دÙħ", + "ĠÙħÙĤد Ùħ", + "ĠGüven lik", + "e um", + "eu m", + "ç»ı è¿ĩ", + "è·Ŀ éĽ¢", + "Âł не", + "Ġا صÙĪÙĦ", + "Ġاص ÙĪÙĦ", + "ĠzaÄį átku", + "ิà¹Ģว à¸ĵ", + "Ġà¤ķ à¤Ł", + "Ġk riz", + "Ġkr iz", + "Ġp án", + "Ġpá n", + "ĠбоÑĢ ÑĮ", + "Ġбо ÑĢÑĮ", + "ظ ÙħØ©", + "ظÙħ Ø©", + "Ġê²½ ë¶ģ", + "ĠاÙĦÙĬ ÙħÙĨ", + "ĠاÙĦعرب ÙĬ", + "Ġh lub", + "Ġhl ub", + "Ġch á»Ŀ", + "è¥ ²", + "ëĵľ 리", + "ãĥĸ ãĥª", + "ĠÑģÑĤол ÑĸÑĤÑĤÑı", + "ر بÙĬØ©", + "رب ÙĬØ©", + "Ġ æ°¸", + "Ġæ° ¸", + "Ġê±° ìĿĺ", + "Ġβ αÏĥ", + "Ġβα Ïĥ", + "Ġa rz", + "Ġar z", + "ãĥ¢ ãĥ³", + "ĠÑĢÑĸв енÑĮ", + "ä¸į çŁ¥", + "导 èĩ´", + "ا ÙĬØ´", + "اÙĬ Ø´", + "ĠпÑĢев ÑĭÑĪ", + "Ġп н", + "ĠÎĴ ÏģοÏĩή", + "Ġ 身", + "Ġè º«", + "ĠÄIJ ầu", + "ĠÏĮ μÏīÏĤ", + "j ÃŃž", + "jÃŃ Å¾", + "Ġλ ίγ", + "ĠÑĪк оли", + "ĠÑĪкол и", + "ãģ£ãģ± ãģĦ", + "z dy", + "zd y", + "Ġê³ §", + "t eÅŁ", + "te ÅŁ", + "ÑĢ еÑī", + "ÑĢе Ñī", + "κ ει", + "κε ι", + "sah uje", + "Ġà¤īस स", + "ĠTan rı", + "ä¸į 好", + "éĥ Ń", + "ĠвÑĭ глÑıд", + "Ġç oÄŁ", + "Ġин ÑģÑĤÑĢÑĥменÑĤ", + "r ej", + "re j", + "èĪ Į", + "ãģĭ ãĤīãģªãģĦ", + "ãģĭãĤī ãģªãģĦ", + "ĠнепÑĢи ÑıÑĤ", + "Ġк ÑĢоме", + "ζ η", + "Ġл ог", + "ा वर", + "ाव र", + "ëħķ íķĺìĦ¸ìļĶ", + "ाह रण", + "ाहर ण", + "Ġgüven ilir", + "T ại", + "ĠØ´Ùĩر د", + "ĠØ´Ùĩ رد", + "ĠΤ ε", + "о ÑĢаз", + "оÑĢ аз", + "оÑĢа з", + "Ġl Ãłng", + "ĠlÃł ng", + "ĠlÃłn g", + "ï¼ ©", + "æĬķ 注", + "Ġsiyas et", + "ÐĽ Ñİ", + "Ġt ÅĻet", + "ĠtÅĻ et", + "ĠÏĢÏģÏİ ÏĦη", + "ĠÑĥлÑĭ б", + "ĠL âm", + "ÑĥлÑĮÑĤ а", + "ÑĥлÑĮ ÑĤа", + "åŁº åľ°", + "Ġskup ina", + "æ°¸ ä¹ħ", + "лÑĥ гов", + "лÑĥг ов", + "Ġ ÑĨÑĸй", + "ĠÑĨ Ñĸй", + "ĠÑĨÑĸ й", + "ĠP oh", + "ĠPo h", + "i д", + "ĠTr uy", + "ĠTru y", + "çļĦ ä¸Ģ个", + "çļĦä¸Ģ 个", + "ë²Ħ ìłĦ", + "Ġx ứ", + "à¸ĩ à¹ģรà¸ģ", + "à¸Ħ à¸Ńม", + "Ġelektron ik", + "ĠaÄŁ aç", + "Ġà¤ľ य", + "ĠповеÑĢÑħ ноÑģÑĤÑĮ", + "ĠاÙĩÙħ ÛĮت", + "ли виÑħ", + "лив иÑħ", + "ĠolduÄŁ undan", + "ï¼ī :", + "ÑĨи ÑıÑħ", + "ÑĨиÑı Ñħ", + "製 ä½ľ", + "à¸Ĺ รà¸ĩ", + "à¸Ĺร à¸ĩ", + "ey im", + "eyi m", + "Ġná klad", + "c ilik", + "ci lik", + "cil ik", + "ĠÐĵ лав", + "ĠUy gu", + "ĠÑĢег ÑĥлÑİ", + "à¤Ĥ à¤ľà¤¨", + "à¤Ĥà¤ľ न", + "Ġkayn aģı", + "à¹ī าà¸Ń", + "à¹īา à¸Ń", + "Ġgör mek", + "ĠíĮ ¬", + "Ġ å®Į", + "Ġå® Į", + "Ø« ÙħاÙĨ", + "ĠÑĤак аÑı", + "ĠÑĤа каÑı", + "ĠÑĤака Ñı", + "Ġне из", + "Ġzpráv y", + "ĠاÙĦØ´ خص", + "Ġìĺ¤ íĽĦ", + "ĠاÙĦ طب", + "ĠاÙĦØ· ب", + "atır ım", + "ر ÙĬر", + "رÙĬ ر", + "ĠÙħع ÙħارÛĮ", + "Ãľ RK", + "ÃľR K", + "ĠÒ IJ", + "ĠìĦ ¬", + "æīĭ ãģ«", + "Ġë³Ģ íĻĶ", + "u lace", + "ul ace", + "ula ce", + "Ġs ợ", + "ÑĢ иÑĩ", + "ÑĢи Ñĩ", + "มห าว", + "Ġk â", + "ĠÑģп ÑĢоб", + "Ùĩ رÙĩ", + "Ùĩر Ùĩ", + "ाध न", + "ĠÏĢ αι", + "ĠÏĢα ι", + "ب عد", + "بع د", + "ĠاÙĦ تÙĪ", + "ĠاÙĦت ÙĪ", + "ç»ı çIJĨ", + "p ůsob", + "æ¬ ł", + "ĠзаÑħвоÑĢÑİ Ð²Ð°Ð½Ð½Ñı", + "Ø® Ø©", + "ÚĨ ار", + "Ġboz uk", + "] âĢı", + "ĠSoc orro", + "Ġ hrad", + "Ġh rad", + "Ġhr ad", + "Ġhra d", + "над леж", + "ĠÑĥÑĩаÑģÑĤ ие", + "ĠÑĥÑĩаÑģ ÑĤие", + "ĠÑĥÑĩаÑģÑĤи е", + "å¤ī ãĤı", + "Ġy ans", + "Ġya ns", + "Ġyan s", + "ĠØ¥ ÙĦ", + "Ø® بر", + "خب ر", + "ÑĨиклоп ед", + "ι Ïİν", + "ιÏİ Î½", + "Ïĥ ÏĦÏģο", + "ÏĥÏĦ Ïģο", + "Ġb anka", + "Ġbank a", + "Ġban ka", + "ĠsoÄŁ uk", + "Ġün lü", + "é¢ ľ", + "Ġر Ùģع", + "ĠرÙģ ع", + "çIJ ³", + "ĠÑģоÑģÑĤоÑı нии", + "ν ονÏĦαÏĤ", + "νον ÏĦαÏĤ", + "Ġа кÑĤи", + "Ġак ÑĤи", + "ĠакÑĤ и", + "ĠÏĢολ Ïħ", + "ĠÏĢο λÏħ", + "Ġм оÑĹ", + "Ġмо ÑĹ", + "Ġ æł¼", + "Ġæł ¼", + "ç² Ĺ", + "ĠÑģлÑĥÑĩ ай", + "ĠÑģлÑĥ Ñĩай", + "ĠÑģлÑĥÑĩа й", + "ìĿ¼ ìĹIJ", + "ĠÑĤÑĢеб ÑĥеÑĤ", + "Ġ åıĤèĢĥ", + "ĠåıĤ èĢĥ", + "an gl", + "ang l", + "am ik", + "ami k", + "Ġ Ä°Åŀ", + "ĠÄ° Åŀ", + "æ¹ ¯", + "ĠÄij áo", + "ĠÄijá o", + "ละ à¸Ħร", + "Ñģ о", + "Âł ob", + "Ġk lim", + "Ġkl im", + "Ġkli m", + "èĥ Ĩ", + "ìĥĿ íĻľ", + "ãĥij ãĥ³", + "- ब", + "Ġк ад", + "Ġка д", + "à¹Ī สามารà¸ĸ", + "ĠÙħس ÙĦÙħاÙĨ", + "ç¿ °", + "ĠB ütün", + "ĠK raj", + "ĠKr aj", + "ĠKra j", + "ĠпеÑĢ Ñģп", + "ĠпеÑĢÑģ п", + "Ġener j", + "ãģķ ãģĽãĤĭ", + "ãģķãģĽ ãĤĭ", + "è¾¾ åĪ°", + "ा à¤Ĭ", + "ाठĬ", + "ĠگرÙģ تÙĨ", + "ĠگرÙģت ÙĨ", + "ÑĪ кÑĥ", + "ĠÐŁ ло", + "ÃŃ ny", + "ÃŃn y", + "ĠH ra", + "ĠÚĨ ÙĨاÙĨ", + "Ġ à¹Ħà¸Ĺย", + "Ġà¹Ħ à¸Ĺย", + "vise jÃŃcÃŃ", + "Û³ Û³", + "ĠÐľÑĸнÑĸÑģÑĤ еÑĢ", + "à¹Ĥ à¸Ń", + "ĠدÙĩ ÛĮد", + "æ¯Ķ ä¾ĭ", + "Ïĥι εÏį", + "Ç IJ", + "ãĢģ ãģª", + "Ġत स", + "ĠÄ° t", + "ĠìłĦ ìŁģ", + "à¹Ģ à¸Īร", + "à¹Ģà¸Ī ร", + "Ġelek tr", + "Ġelekt r", + "Ġd Æ°", + "â ĶĶ", + "âĶ Ķ", + "Ġ ìĥ¤", + "Ġìĥ ¤", + "ä» ®", + "à¸ģาร à¹Ģล", + "Ġм ÑĥлÑĮ", + "ĠмÑĥ лÑĮ", + "Ġ 度", + "Ġåº ¦", + "ĠH uyá»ĩn", + "в ен", + "ве н", + "Ġl Æ°á»Ľi", + "Ġprovoz u", + "Ñĥ ÑĢÑĥ", + "ÑĥÑĢ Ñĥ", + "ÑĢ ÑĸÑĹ", + "ÑĢÑĸ ÑĹ", + "Ġçocu ÄŁ", + "ัà¸IJ à¸ļาล", + "ÙĦ ÙĬÙĩ", + "ÙĦÙĬ Ùĩ", + "Ġ[âĢ¦] ...Ċ", + "åİŁ å§ĭ", + "Ġs klad", + "Ġsk lad", + "Ġskl ad", + "Ġسپ تاÙħبر", + "ĠTom áš", + "Ġس ÙĪاÙĦ", + "ĠسÙĪ اÙĦ", + "çģ Ń", + "ãĤĵ ãģ©", + "на знаÑĩ", + "ĠÄij Ä©a", + "ĠudÄĽl at", + "Ġà¤Ĩ दम", + "Ġà¤Ĩद म", + "ï¼ ¬", + "ι νÏĮ", + "ιν ÏĮ", + "iÅŁ leri", + "ÄIJ ây", + "Ġرس اÙĨÙĩ", + "ع اÙħ", + "عا Ùħ", + "ãĥ¼ãĥij ãĥ¼", + "Ġdo prov", + "Ġdop rov", + "ĠмÑĸÑģ ÑĤо", + "ĠмÑĸÑģÑĤ о", + "ï¼ ¥", + "ел Ñĸг", + "елÑĸ г", + "ائ ز", + "ä¸į äºĨ", + "ĠÐIJлекÑģанд ÑĢ", + "ĠвÑĢем ен", + "Ġdve ÅĻe", + "Ġch ảy", + "Ġ otel", + "Ġo tel", + "Ġot el", + "èĤ¯ å®ļ", + "ĠÑĥÑĤ веÑĢжд", + "ĠÐļом п", + "ĠÐļо мп", + "Ġ ëĤĺëĿ¼", + "ĠëĤĺ ëĿ¼", + "ĠвÑĸдбÑĥва ÑĶÑĤÑĮÑģÑı", + "ãĢģ ãĢİ", + "ĠkarÅŁÄ± lık", + "Ġl ẫn", + "çħ Ļ", + "ع کس", + "å¼ ¥", + "Ġte cr", + "Ġtec r", + "Ġne od", + "Ġneo d", + "æĪIJ çĤº", + "åħ¥ ãĤĬ", + "ĠÐŁ ÑĢод", + "ĠÐŁÑĢ од", + "ĠÐŁÑĢо д", + "ĠÏĢ Ïģά", + "ื à¸Ńà¸Ķ", + "ืà¸Ń à¸Ķ", + "ÑģÑĤ аÑĤи", + "ÑģÑĤа ÑĤи", + "е ноÑĹ", + "ен оÑĹ", + "ено ÑĹ", + "Ñĩи Ñģл", + "ÑĩиÑģ л", + "羣 æŃ£", + "Ġ ราà¸Ħ", + "Ġร าà¸Ħ", + "Ñĥ ÑĢе", + "ÑĥÑĢ е", + "ĠØ´ اÙĩد", + "ĠشاÙĩ د", + "ا عر", + "اع ر", + "Ġê²½ íĹĺ", + "à¸Ļ à¸Ħ", + "ãĥį ãĥ«", + "ÏĢοÏħ λοÏĤ", + "Ġम à¤Ī", + "ìĬ¤ ì½Ķ", + "itel né", + "å¼Ģ æĶ¾", + "ç į¨", + "çį ¨", + "ĠpÅĻ ech", + "ĠpÅĻe ch", + "ú Äįast", + "å¢ ĵ", + "Ġ å½±", + "Ġå½ ±", + "ÙĨ ساÙĨ", + "ÙĨس اÙĨ", + "ÙĨسا ÙĨ", + "Ġд вад", + "Ġдв ад", + "Ġдва д", + "Ġи деÑĤ", + "Ġиде ÑĤ", + "Ġид еÑĤ", + "Ġпод клÑİÑĩ", + "Ġподк лÑİÑĩ", + "íĬ¹ë³Ħ ìĭľ", + "B Ãłi", + "Å¡ ku", + "Å¡k u", + "i lerden", + "iler den", + "åıĺ å¾Ĺ", + "ëıĻ ìķĪ", + "Ġpostup nÄĽ", + "ĠиÑĤ ог", + "Ġd ůvodu", + "Ġdůvod u", + "siz lik", + "ÙĦ اÙĨ", + "ÙĦا ÙĨ", + "éĤ£ ç§į", + "ĠÑĩа Ñģа", + "ĠÑĩаÑģ а", + "ä¸į æĸŃ", + "ĠØ®ÛĮ اباÙĨ", + "ĠاÙĦد اخ", + "ĠÑģÑĤоÑĢ Ñĸн", + "Ġì¶ľ ìĹ°", + "æ² Ł", + "Ġh ry", + "Ġhr y", + "ĠG Ãľ", + "ĠìĿ¸ 구", + "l ied", + "li ed", + "lie d", + "Ġع اÙĦÙĬØ©", + "ĠпÑĢед ваÑĢ", + "ан ной", + "åı¥ è¯Ŀ", + "éł ĵ", + "ë°Ķ ìĿ¼", + "ï¼ı /", + "ĠÙħخت صات", + "ëŀ «", + "ĠçalÄ±ÅŁ maları", + "ĠçalÄ±ÅŁmalar ı", + "ĠçalÄ±ÅŁma ları", + "Ġrepublik a", + "Ġ ì³", + "Ġì ³", + "ा )", + "Ġê±´ ê°ķ", + "Ġê³µ ëıĻ", + "èħ ¦", + "ĠìĦľ ë¡ľ", + "ĠпÑĢовод иÑĤÑĮ", + "ĠдейÑģÑĤв иÑĤелÑĮно", + "v eç", + "ve ç", + "Ø« اÙĦ", + "Ġgöster ir", + "ır lar", + "ĠÑģам Ñĭм", + "á lo", + "ál o", + "é¢ij 次", + "à¥Ī à¤Ĺ", + "ا دÙħ", + "اد Ùħ", + "çĮ ª", + "ĠS ản", + "Ġ çı", + "Ġç ı", + "Ġl ety", + "Ġle ty", + "Ġlet y", + "Ġrep ublice", + "Ġrepublic e", + "æĿ¥ èĩª", + "Ġv ết", + "Ġbi rik", + "Ġbir ik", + "Ġbiri k", + "Ġm ekt", + "Ġme kt", + "Ġmek t", + "ĠاÙĦ ÙĪÙģ", + "ĠاÙĦÙĪ Ùģ", + "Ġj ich", + "Ġji ch", + "ä¸Ģ 覧", + "éľ² åĩº", + "ĠH iá»ĩn", + "ĠHi á»ĩn", + "Ġd iá»ĩt", + "ĠÑħ ÑĢиÑģÑĤи", + "åĪļ æīį", + "k ate", + "ka te", + "kat e", + "Ġb azen", + "Ġba zen", + "Ġbaz en", + "ĠurÄįit ÄĽ", + "ĠurÄį itÄĽ", + "Ġumož ÅĪuje", + "é¡ĺ ãģĦ", + "/Q ÄIJ", + "Ġmen Å¡ÃŃ", + "ÏĥκεÏħ ή", + "ĠÑĨеÑĢк ов", + "ĠÑĨеÑĢ ков", + "Ġ è´Ń", + "Ġè´ Ń", + "ок ÑĢаÑĤи", + "ĠÑĢоз к", + "α νοÏħ", + "αν οÏħ", + "Ġyön etic", + "Ġyönet ic", + "Ġol madan", + "Ġolm adan", + "Ġolma dan", + "åĨľ ä¸ļ", + "Ġë°Ķ ëŀĮ", + "çĵ ľ", + "ÑĪ аеÑĤÑģÑı", + "ÑĪа еÑĤÑģÑı", + "ĠÐļ оÑģÑĤ", + "ĠÐļо ÑģÑĤ", + "ĠÙħ عت", + "ĠÙħع ت", + "Ġ à¸ŀล", + "Ġà¸ŀ ล", + "ĠÙħتÙģ اÙĪت", + "ãĤī ãģı", + "èĪ Ĺ", + "Ġتع رÛĮÙģ", + "éīĦ éģĵ", + "Ġpé Äįe", + "ì» µ", + "Ġпод ÑĢаз", + "Ġбан кÑĥ", + "Ġбанк Ñĥ", + "Ä°S Ä°", + "æ¡ IJ", + "à¹Ĥ รà¸Ħ", + "à¹Ĥร à¸Ħ", + "ĠØŃØ° Ùģ", + "Ġ ë£", + "Ġë £", + "л иж", + "ли ж", + "Ġ ìĤ°ìĹħ", + "ĠìĤ° ìĹħ", + "ĠпÑĢи ÑĩинÑĭ", + "ĠпÑĢиÑĩин Ñĭ", + "ĠпÑĢиÑĩ инÑĭ", + "Ġна зна", + "Ġназ на", + "ãĥª ãĤ¹ãĥĪ", + "ãĥªãĤ¹ ãĥĪ", + "ìłķ ë¶Ģ", + "Ïĥ ÏĨα", + "ÏĥÏĨ α", + "å¦ ĥ", + "Ġголов и", + "Ġгол ови", + "ëIJĺìĹĪ ìĬµëĭĪëĭ¤", + "Ġεν ÏĮÏĤ", + "ãĤ¤ ãĥ³ãĤ¿", + "ãĤ¤ãĥ³ ãĤ¿", + "Ġs lun", + "Ġsl un", + "Ġslu n", + "ëł ´", + "ĠÑģÑĥÑīеÑģÑĤв ÑĥеÑĤ", + "ĠÑģÑĥÑīе ÑģÑĤвÑĥеÑĤ", + "з аб", + "за б", + "æĽ´ åĬł", + "Ġблагод аÑĢÑı", + "ĠëĮĢ 구", + "è¾ ħ", + "ห าà¸ģ", + "หา à¸ģ", + "Ġ æİ¥", + "Ġæİ ¥", + "ëĮĢ 를", + "人 ç±»", + "j eme", + "je me", + "jem e", + "åĪĨ å¸ĥ", + "ìŀ¥ ìĿĢ", + "Ġдопом оги", + "ìĻĦ ë£Į", + "o sy", + "os y", + "èĭ± éĽĦ", + "Ġ ÙĦس", + "ĠÙĦ س", + "म ह", + "Ġ à¸ģำ", + "Ġà¸ģ ำ", + "Ġداش تÙĨ", + "Ġداشت ÙĨ", + "Ń ìłľ", + "Ä° ng", + "Ä°n g", + "ĠTh Æ°á»Ŀng", + "íĻ Ģ", + "Ñį ÑĦ", + "íķ´ ìļĶ", + "ĠÐľ Ñĸж", + "ĠÐľÑĸ ж", + "еÑĢÑĸ га", + "еÑĢÑĸг а", + "Ġε á¼", + "à¹ģ สà¸ĩ", + "à¹ģส à¸ĩ", + "ãĥĢ ãĤ¤", + "Ġc esty", + "Ġce sty", + "Ġces ty", + "Ġcest y", + "Ġpr ázd", + "Ġprá zd", + "第 ä¸Ģ次", + "第ä¸Ģ 次", + "ĠÙĩÙħ سر", + "Ġz ev", + "Ġze v", + "Âł E", + "ĠBeled iyesi", + "ĠBelediye si", + "ĠпÑĢоп ози", + "Ġanlay Ä±ÅŁ", + "Âł Ùħ", + "ĠÑĢаÑģÑģ ÑĩиÑĤ", + "ĠاÙĦØ£Ùħ رÙĬÙĥÙĬØ©", + "ĠاÙĦØ£ÙħرÙĬÙĥÙĬ Ø©", + "Ġž ena", + "Ġže na", + "Ġžen a", + "d eniz", + "den iz", + "Ġn oci", + "Ġno ci", + "Ġnoc i", + "Ġst ál", + "ุ ย", + "주 ìĨĮ", + "Ġз еÑĢ", + "Ġ ìĨĮê°ľ", + "ĠìĨĮ ê°ľ", + "Ġkh ẳng", + "at ıcı", + "atı cı", + "ÄĽ ž", + "ĠÑĩ ÑĥÑĤÑĮ", + "Ġc áºŃu", + "ĠاطÙĦ اع", + "æµ ħ", + "Ġst rav", + "Ġstr av", + "Ġstra v", + "ĠSan ayi", + "Ġ طبÙĬ", + "ĠØ· بÙĬ", + "Ġطب ÙĬ", + "Ġhız la", + "Ïİ Î½Î±", + "Ïİν α", + "à¤¿à¤ľ ल", + "ÙħØŃ Ùħد", + "à¸ļ à¸ģ", + "Ġvzdál en", + "ĠÑĤак ими", + "ĠÑĤа кими", + "ĠÑĤаким и", + "ãĢĤ ãģĿãģĹãģ¦", + "Ġka lp", + "Ġkal p", + "Ġкож ного", + "Ðł µ", + "ÙĦع اب", + "ĠÙħ ÙĪÙĨ", + "ĠÙħÙĪ ÙĨ", + "ĠìĿ¼ ìĿĦ", + "Ġ ë°ĶìĿ´", + "Ġë°Ķ ìĿ´", + "Ġme kan", + "Ġmek an", + "ĠجاÙħ ع", + "Ġجا Ùħع", + "ĠÙĨ Ùģت", + "ĠÙĨÙģ ت", + "ĠاÙĦ سÙħ", + "ĠاÙĦس Ùħ", + "л ÑĭÑħ", + "лÑĭ Ñħ", + "èĥĮ æĻ¯", + "Ġê²ĥ ëıĦ", + "ĠìĤ´ ìķĦ", + "y dı", + "yd ı", + "Ġна веÑĢ", + "Ġнав еÑĢ", + "åŃIJ ãģ¯", + "l uluk", + "lu luk", + "Ġhá»Ĺ n", + "Ġ Ø´Ùģ", + "ĠØ´ Ùģ", + "Ġع ÙĦت", + "ĠعÙĦ ت", + "à¸Ħร าม", + "ĠÎļ ÏįÏĢ", + "Ġà¹Ģม ษายà¸Ļ", + "ÙĨد ÙĤ", + "ĠÑĥ ÑģÑĤÑĢа", + "ĠÑĥÑģÑĤ ÑĢа", + "ĠÑĥÑģ ÑĤÑĢа", + "ĠÎĵ εν", + "ĠÐĨ ван", + "ĠP hong", + "ĠPh ong", + "ĠPhon g", + "家 çļĦ", + "ĠÐIJ лекÑģ", + "ĠÐIJле кÑģ", + "ĠÐIJл екÑģ", + "Ġзб еÑĢÑĸг", + "ĠÅŁark ı", + "ĠÅŁar kı", + "ĠظرÙģ ÛĮت", + "ĠÙħ عÙĨÛĮ", + "ĠÙħع ÙĨÛĮ", + "ĠÙħعÙĨ ÛĮ", + "Ġ лов", + "Ġл ов", + "ĠìĤ ¶", + "èħ IJ", + "Ġ å¯Į", + "Ġå¯ Į", + "E RG", + "ER G", + "ĠÑģÑĤо имоÑģÑĤÑĮ", + "ÅĻ et", + "ÅĻe t", + "à¥ī य", + "à¹Ī าร", + "à¹Īา ร", + "ĠارÙĪÙ¾ ا", + "Ġб ÑĢоÑģ", + "ĠоÑĤ ноÑģÑıÑĤ", + "ĠоÑĤноÑģ ÑıÑĤ", + "ĠÎŁ κ", + "ÑĨÑĮ кий", + "ÏĬ κ", + "ãģĤãĤĬ ãģ¾ãģĽãĤĵ", + "ĠÑĥ ник", + "ĠÄij iá»ĥn", + "ĠÄiji á»ĥn", + "Ġvý zkum", + "Ġh ứ", + "Ġhá» ©", + "Ġ ÙĪات", + "ĠÙĪ ات", + "ĠÙĪا ت", + "Ġ å¹³æĸ¹", + "Ġå¹³ æĸ¹", + "Ïħ μ", + "ãĤĴ 使", + "εί ÏĦαι", + "两 人", + "Ġ åĮ»", + "ĠåĮ »", + "ÑĢаÑĤ иÑĤÑĮ", + "ÑĢаÑĤи ÑĤÑĮ", + "ĠاÙĦ اÙĨت", + "ĠاÙĦاÙĨ ت", + "ãģ® 人", + "ر Ø´", + "ĠТ ÑĥÑĢ", + "r nÄĽ", + "rn ÄĽ", + "天 天", + "ม าร", + "มา ร", + "Ġort alama", + "Ġorta lama", + "ĠпеÑĢе пиÑģ", + "ĠпеÑĢеп иÑģ", + "ĠìĥĿ ìĤ°", + "å¿ Ĩ", + "í ĩ´", + "ï¼Į 该", + "éĮ ¢", + "ÏĢα ίδ", + "ĠмеÑĢ опÑĢи", + "Ġг ÑĢав", + "ĠгÑĢа в", + "ĠгÑĢ ав", + "ÃĶ ng", + "Ġ æ¤", + "Ġæ ¤", + "ĠاÙĦد ÙĪÙĦØ©", + "ĠاÙĦدÙĪÙĦ Ø©", + "Ġ оÑģÑĮ", + "Ġо ÑģÑĮ", + "ĠоÑģ ÑĮ", + "å¥ Ķ", + "Ġgüven li", + "íķĺ ìĭł", + "Ġ éĬ", + "Ġé Ĭ", + "éŁ³ æ¨Ĥ", + "Ġmed ya", + "Ġب ÙĨا", + "ĠبÙĨ ا", + "а ма", + "ам а", + "Ġ ãĤŃãĥ£", + "ĠãĤŃ ãĥ£", + "èĹ ¥", + "l arım", + "lar ım", + "ları m", + "ĠT iếng", + "iyor lar", + "ï¼ ¢", + "æĶ Ŀ", + "Ñĸй ÑģÑĮкоÑĹ", + "Ġyet iÅŁtir", + "ĠyetiÅŁ tir", + "ĠÙ¾ سر", + "Ġپس ر", + "ãĤī ãģĹ", + " ļ", + "ìĥ ¤", + "à¸Ķ าห", + "à¸Ķา ห", + "ĠتØŃص ÛĮÙĦ", + "Ġб енз", + "éģ £", + "Ġнаб лÑİ", + "ä½ĵ ç³»", + "ãĥ¯ ãĤ¤ãĥĪ", + "Âł ÂłĠ", + "³³ Ġ", + "书 è®°", + "ĠMü hendis", + "p lor", + "pl or", + "l az", + "la z", + "лÑı ли", + "Ġpom áh", + "Ġб лиж", + "Ġбл иж", + "Ġбли ж", + "ĠÑĩиÑģ ла", + "Ġubyt ovánÃŃ", + "ÑĢаÑĤ но", + "Ġtr Äĥm", + "Ġاب راÙĩ", + "át ka", + "Ġiç indeki", + "Ġiçin deki", + "Ġiçinde ki", + "ั à¸ļà¸Ļ", + "ัà¸ļ à¸Ļ", + "ĠاÙħ ÛĮد", + "n ave", + "na ve", + "nav e", + "e cut", + "ec ut", + "å°± åľ¨", + "Ġt radi", + "Ġtr adi", + "Ġtrad i", + "Ġtra di", + "Ø· ÙĦÙĤ", + "Ø·ÙĦ ÙĤ", + "ãĤ¦ ãĤ©", + "Ġkhu ôn", + "ìĬ¤ ë¡ľ", + "ÏĦ ÎŃÏģα", + "ÏĦÎŃ Ïģα", + "ĠÏĥ κο", + "ĠÏĥκ ο", + "ë§ Ľ", + "ĠÙģ ÙĨÛĮ", + "ĠÙģÙĨ ÛĮ", + "à¹Į à¹Ģà¸ŀ", + "ĠاÙĦع ظ", + "Ġth ôn", + "기 ìĿĺ", + "Ġภ¿", + "Ñĥ ÑİÑĤÑģÑı", + "ÑĥÑİÑĤ ÑģÑı", + "ĠÙħ کاÙĨ", + "ĠÙħÚ© اÙĨ", + "Ġ âĹİ", + "ĠâĹ İ", + "Ġ çľģ", + "Ġçľ ģ", + "Ġ åį¡", + "Ġåį ¡", + "ĠпеÑĢ ÑĪий", + "ĠпеÑĢÑĪ ий", + "ĠíĽĦ ë³´", + "Ġآر اÙħ", + "ãģĮ ãģĦ", + "ย าà¸Ļ", + "ยา à¸Ļ", + "μ ει", + "με ι", + "ĠM áy", + "Ġz ů", + "Ġpodp oru", + "Ġpodpor u", + "ì» ¨", + "Ñģ ÑĤÑĢи", + "ÑģÑĤ ÑĢи", + "ÑģÑĤÑĢ и", + "ÏĢ ÏĦÏīÏĥη", + "Ф ÐĽ", + "åĵª éĩĮ", + "ĠпеÑĢв ÑĥÑİ", + "Ġyer inde", + "Ġyeri nde", + "ĠزÛĮ با", + "ĠزÛĮب ا", + "Ġodst ran", + "à¥Ģ à¤Ĺ", + "ĠÑĢÑĸз нÑĸ", + "Ïģ ηÏĥη", + "Ïģη Ïĥη", + "âĢĮاÙĦÙħÙĦ ÙĦÛĮ", + "ع اد", + "عا د", + "à¥įप ष", + "ÑŁ N", + "ï½ Ľ", + "ãĥ¼ ãĥľ", + "ãĥ¼ãĥ ľ", + "è´Ń ä¹°", + "ĠìĿ¸ê¸° ê¸Ģ", + "ĠÙħÛĮ Ø´ÙĪد", + "ĠбезопаÑģ ноÑģÑĤи", + "ĠνεÏĨ οκ", + "ãģ« ãģ¨", + "ĠÑĨеÑĢк ви", + "ت Ùĥ", + "ĠH Ãłng", + "ĠHÃł ng", + "ĠHÃłn g", + "ĠÙĦ ÙĦس", + "ĠÙĦÙĦ س", + "ĠνεÏĨοκ άλÏħÏĪηÏĤ", + "r aman", + "ra man", + "ram an", + "rama n", + "Ġvy vol", + "n iÄį", + "ni Äį", + "ر اÙĨÙĩ", + "راÙĨ Ùĩ", + "را ÙĨÙĩ", + "Ġp eÅŁ", + "Ġpe ÅŁ", + "ãĥ« ãĤ¯", + "å´ ĩ", + "Ġim kân", + "åĮ» çĸĹ", + "Ġप à¥Ŀ", + "άν νηÏĤ", + "Ġ جÛĮ", + "Ġج ÛĮ", + "Ġp roje", + "Ġpro je", + "Ġpr oje", + "Ġproj e", + "Ġül kenin", + "Ġülk enin", + "Ġülke nin", + "ĠK ew", + "ĠKe w", + "ĠاÙĦÙħ Ùģ", + "Ø£ Ùĥ", + "çĻº 表", + "Ġ δÏħ", + "Ġδ Ïħ", + "Ġ åĽ½å®¶", + "ĠåĽ½ 家", + "ĠKiÅŁ isel", + "ãĥ³ ãĤ¬", + "Ġzpráv a", + "V iá»ĩc", + "e rif", + "er if", + "eri f", + "Ġstrán ky", + "éļ ł", + "è¼ ķ", + "к оз", + "ко з", + "Ġस à¤ľ", + "Ùĩد اÙģ", + "l oub", + "lo ub", + "lou b", + "à¸łà¸²à¸ŀ ยà¸Ļà¸ķร", + "Ġíķł ìĿ¸", + "ĠÄIJ Ãło", + "ĠÄIJÃł o", + "ĠÙĨاØŃ ÛĮÙĩ", + "(= )", + "ĠÅŀ ampiyon", + "Ġp iÅŁ", + "Ġpi ÅŁ", + "Ġ Ø°Ùĩ", + "ĠØ° Ùĩ", + "ॠ¯", + "ĠÑģÑĢед ÑģÑĤво", + "ĠÑģÑĢедÑģÑĤв о", + "Ġ à¹Ģวลา", + "Ġà¹Ģว ลา", + "ĠÑĩ Ñĥж", + "Ġver ileri", + "Ġveri leri", + "Ġveriler i", + "ĠÚ© ارت", + "Ġکار ت", + "а ви", + "ав и", + "Ġà¤ķर व", + "Ġres tau", + "Ġrest au", + "Ġresta u", + "ê°ľ ìĽĶ", + "Ġм иÑĢов", + "Ġми ÑĢов", + "ĠмиÑĢ ов", + "ì° ®", + "ĠnÄĽjak ý", + "Ġses siz", + "Ġsess iz", + "اء ات", + "ĠÐĹ Ð°Ñħ", + "ĠÐĹа Ñħ", + "Ñı ÑīиÑħ", + "ÑıÑī иÑħ", + "п ÑĢ", + "Ġпод алÑĮ", + "Ġпода лÑĮ", + "ĠопÑĢедел иÑĤÑĮ", + "ॠŃ", + "Ġ رÙģ", + "Ġر Ùģ", + "幸 ç¦ı", + "à »", + "Ġ vÄĽdom", + "ĠvÄĽ dom", + "ĠvÄĽd om", + "ĠÑģвид еÑĤелÑĮ", + "ĠÎĵ οÏħ", + "ılıģı yla", + "ılıģ ıyla", + "çĻ» éĮ²", + "Ġä¸ĭ è·Į", + "Ġп лÑİ", + "Ġпл Ñİ", + "н од", + "но д", + "ĠØ£ جÙĦ", + "Ġأج ÙĦ", + "Ġà¤ķ थ", + "éĥ½ ä¸į", + "Ġs ene", + "Ġse ne", + "Ġsen e", + "Ġp ÄĽ", + "è¨Ī åĬĥ", + "Ġа Ñĥд", + "Ġод ном", + "Ġодно м", + "Ġ ä¸ĩåħĥ", + "Ġä¸ĩ åħĥ", + "ĠÙĪ Ùħا", + "ĠÙĪÙħ ا", + "ĠÐĶ ÑĢÑĥг", + "èµ· ãģĵ", + "в аÑİÑĤÑģÑı", + "ва ÑİÑĤÑģÑı", + "ваÑİÑĤ ÑģÑı", + "л аÑĤÑĥ", + "ла ÑĤÑĥ", + "лаÑĤ Ñĥ", + "Ġ تÙĪÙĨ", + "Ġت ÙĪÙĨ", + "ĠتÙĪ ÙĨ", + "Ñī аÑı", + "Ñīа Ñı", + "ή λ", + "ĠÐŁ ÑĢа", + "ĠÐŁÑĢ а", + "Ġاست رات", + "Ġاستر ات", + "ิà¸Ļ à¹Ģà¸Ķ", + "à¥įà¤Ĺ त", + "Âł з", + "Ġп олоÑĤ", + "Ġпо лоÑĤ", + "Ġпол оÑĤ", + "æ® ĸ", + "æ¡ Ĩ", + "ĠS istem", + "ĠSi stem", + "ĠSist em", + "Ġr uku", + "Ġru ku", + "Ġruk u", + "ãĥĥ ãĤ«ãĥ¼", + "ĠобÑıз ан", + "Ġkö ÅŁ", + "Ġad ını", + "Ø´Ùħ اÙĦÛĮ", + "na ÄįenÃŃ", + "naÄį enÃŃ", + "Ġ .ï¼ı", + "Ġ. ï¼ı", + "Ġ å®ĺ", + "Ġå® ĺ", + "Ġtoplum sal", + "èª ¤", + "ĠبÙĩ بÙĪد", + "ÑģÑĤв еннаÑı", + "ÑģÑĤвен наÑı", + "ĠØ¢ Ù¾", + "ĠجÙĦ سÙĩ", + "ĠجÙĦس Ùĩ", + "ãĢĢ ï½", + "åĵ Ń", + "æīĢ å±ŀ", + "æĴ ®", + "ì¢ Ģ", + "Ġ ει", + "Ġε ι", + "ì¹ĺ 를", + "Ġ ê³¼ìłķ", + "Ġê³¼ ìłķ", + "u uml", + "uum l", + "uu ml", + "δ ά", + "Ġ زد", + "Ġز د", + "ìĽIJ ìĿĦ", + "ĠvÄĽ cÃŃ", + "ĠvÄĽc ÃŃ", + "د Ø«", + "Ġs anki", + "Ġsan ki", + "Ġsank i", + "åĥı æĺ¯", + "л аÑĢа", + "ла ÑĢа", + "ìĤ¬ ìĿ´", + "ãĤı ãĤĮãģŁ", + "ãĤıãĤĮ ãģŁ", + "ĠÄij ón", + "ĠÄijó n", + "åIJ¯ åĬ¨", + "Ġgi Ãłnh", + "ĠgiÃł nh", + "Ġkır mızı", + "Ø® Ùħ", + "æIJ į", + "åĪĩ ãĤĬ", + "ãĤµ ãĥ¼ãĥĵãĤ¹", + "Ùĩ ار", + "Ùĩا ر", + "Ø° Ùĥر", + "о ÑĢоз", + "оÑĢ оз", + "оÑĢо з", + "à¥Īà¤Ĥ ।ĊĊ", + "à¥Īà¤Ĥ। ĊĊ", + "à¥Īà¤Ĥ।Ċ Ċ", + "ĠíĻĪ íİĺìĿ´ì§Ģ", + "ĠÙĥ بÙĬرة", + "ĠÙĥبÙĬر Ø©", + "н ина", + "ни на", + "нин а", + "íķĺ ìļ°", + "å¼ķçĶ¨ é¢ij次", + "ॠ®", + "ĠбаÑĤÑĮ кÑĸв", + "à¸Ł à¸Ńร", + "ี .", + "ìłĿ íĬ¸", + "éĺħ读 次æķ°", + "Ġit ir", + "Ġi tir", + "ÑĪ ин", + "ÑĪи н", + "ĠV áºŃy", + "çĤ ®", + "ла год", + "лаг од", + "Ø´ÙĨ اس", + "á» IJ", + "ĠÑı год", + "Ġì¤ij ìķĻ", + "ر ÙĬØ·", + "رÙĬ Ø·", + "ĠìĪĺ íĸī", + "Ġ ä¸ĢèĪ¬", + "Ġä¸Ģ èĪ¬", + "ĠÑħви лин", + "ĠÐľÐ¾Ð¶ но", + "ĠнаÑĩ але", + "Ġод нов", + "Ġодно в", + "ĠÃľ ç", + "ÑĨион нÑĭй", + "Ġ ìļķ", + "Ġìļ ķ", + "æ¼ Ĥ", + "å² ³", + "ت دÙī", + "تد Ùī", + "κ ηÏĤ", + "κη ÏĤ", + "âĢĻ nda", + "âĢĻn da", + "ï¼IJ ï¼IJ", + "èª ī", + "é§ħ å¾ĴæŃ©", + "ĠÙģرز ÙĨد", + "åħ¬ è·¯", + "α ÏĥίαÏĤ", + "αÏĥ ίαÏĤ", + "αÏĥία ÏĤ", + "าà¸ĵ าà¸Ī", + "ëij ¥", + "Ġ ÏĢοι", + "ĠÏĢ οι", + "ĠÏĢο ι", + "Ġب داÙĨ", + "Ġبد اÙĨ", + "к ап", + "ка п", + "ĠìŀĪ ëĬĶëį°", + "ĠìŀĪëĬĶ ëį°", + "ï¼Į æѤ", + "à¸Ľà¸£à¸°à¹Ĥย à¸Ĭà¸Ļ", + "ĠÚ©Ø´ÙĪر ÙĩاÛĮ", + "ุ ส", + "ãģ¹ ãģį", + "ĠÑģам Ñĭй", + "Ġп лÑı", + "Ġпл Ñı", + "Ġб ед", + "人 æīį", + "ส หร", + "ู à¸ķ", + "Ġkullan ımı", + "Ġkullanım ı", + "íķĻ ëħĦ", + "æ²» çĸĹ", + "ãĢĤ ä¸įè¿ĩ", + "ãĢĤä¸į è¿ĩ", + "æ£ ļ", + "ëĤ¨ ëıĦ", + "ĠØ¢ تش", + "Ïĩ ÎŃÏĤ", + "Ġfunk ci", + "Ġfunkc i", + "н ообÑĢаз", + "но обÑĢаз", + "à¥ĭ फ", + "Ġk aps", + "Ġka ps", + "Ġkap s", + "าษ à¸İ", + "( ع", + "ï¼Į åĬł", + "à¹Ĭ à¸ģ", + "ĠÙĩ Ø´", + "Ġدر ÙĪÙĨ", + "Ġ меÑĩ", + "Ġм еÑĩ", + "ĠпÑĢеж де", + "à¹Ī ย", + "Ġار شد", + "า à¹Ģล", + "æ¯Ķ è¼ĥ", + "ĠØ° کر", + "Ġ æĿ¡", + "ĠæĿ ¡", + "Ð Ĭ", + "Ñĥ кÑĢаÑĹн", + "ÙĬÙĨ ات", + "ÙĬÙĨا ت", + "ì¢ ĭ", + "д иÑı", + "ди Ñı", + "ÏĦ Ïģι", + "ÏĦÏģ ι", + "ĠÐļ аз", + "ĠÐļа з", + "ÙĤ ÙĦاÙĦ", + "ÙĤÙĦ اÙĦ", + "_ ,,", + "_, ,", + "ĠÚĨ ت", + "ĠìĿ¼ ìłķ", + "ĠÐŁ ÑĢоÑĦ", + "ĠÐŁÑĢ оÑĦ", + "ĠÐŁÑĢо ÑĦ", + "æ³ Ľ", + "Ġdruh ý", + "Ñĩ Ñĥк", + "ÑĩÑĥ к", + "l edik", + "le dik", + "led ik", + "ledi k", + "Ġhey ec", + "Ñĭ вал", + "Ñĭв ал", + "Ñĭва л", + "ĠD üny", + "ĠDün y", + "Ġ çĻº", + "ĠçĻ º", + "ĠpÅĻ átel", + "β άλ", + "βά λ", + "Ġ غر", + "Ġغ ر", + "ëĭ¨ ì²´", + "ìĽ¨ ëĶĶìĭľ", + "ÑĢаÑī ениÑı", + "н ÑĨиклопед", + "Ġpodnik atel", + "Ġìĭł ìŀħ", + "ĠÙģر Ø¢", + "и лиÑģÑı", + "или ÑģÑı", + "Ġol umlu", + "à¥įष मत", + "ĠÙħت خصص", + "й ом", + "ؤ اÙĦ", + "ĠÐĿ аÑĤ", + "ĠÐĿа ÑĤ", + "ìĺ¤ ëĬĶ", + "ĠMüdür lÃ¼ÄŁÃ¼", + "ĠH Ãłnh", + "ĠHÃł nh", + "ĠHÃłn h", + "Ġس ابÙĤ", + "ï¼ī çļĦ", + "ĠQu ý", + "lád ánÃŃ", + "ládá nÃŃ", + "Ġ ìļ´ëıĻ", + "Ġìļ´ ëıĻ", + "ĠÐĺ Ñħ", + "è« ¾", + "lıģ ının", + "lıģını n", + "lıģın ın", + "l il", + "li l", + "u Äį", + "ĠÑĩем пÑĸон", + "ÑĤ ож", + "ÑĤо ж", + "Ġ ä½Ľ", + "ни ÑĨе", + "ниÑĨ е", + "ĠпеÑĢв ого", + "Ġ Ñģом", + "ĠÑģ ом", + "ĠÑģо м", + "Ïĩ Ïİ", + "ÅĻ ik", + "ÅĻi k", + "иÑĤелÑĮ ÑģÑĤва", + "ĠÄ° ki", + "Ġask eri", + "Ġasker i", + "c isi", + "ci si", + "cis i", + "Ġjed nÃŃm", + "Ġjedn ÃŃm", + "Ġsta nice", + "Ġstan ice", + "èĤ¡ 票", + "à¸ľ ม", + "T ừ", + "Å¡ ak", + "ÏĦ ία", + "ÏĦί α", + "м ами", + "ма ми", + "ãģĮ åĩº", + "μο ί", + "м аÑĶ", + "ма ÑĶ", + "ëł¥ ìĿ´", + "ãĤĦ ãģ£ãģ¦", + "Ġ å¼µ", + "Ġå¼ µ", + "ØĮ Ċ", + "Ġ »Ċ", + "Ġ» Ċ", + "ا جات", + "اج ات", + "á½ ³", + "æĻĤ ãģ®", + "Ġп окол", + "Ġпо кол", + "Ġпок ол", + "ÑĸÑĤ еÑĤ", + "Ġíķ´ ê²°", + "Ġde dim", + "Ġded im", + "Ġdedi m", + "ĠÑĤ веÑĢд", + "Ġжен Ñīина", + "ĠженÑīин а", + "ед ини", + "еди ни", + "един и", + "ĠÙ¾ ÛĮÚ©", + "ĠÙ¾ÛĮ Ú©", + "iver site", + "ivers ite", + "iversit e", + "ĠآسÛĮ اب", + "ĠÑħаÑĢакÑĤеÑĢиÑģÑĤи ки", + "ĠØ£ÙĨ Ùĩا", + "ĠØ£ÙĨÙĩ ا", + "ĠÑĥкÑĢаÑĹн ÑģÑĮкоÑĹ", + "ĠاختÙĦ اÙģ", + "Ġاخت ÙĦاÙģ", + "Ġt ez", + "Ġte z", + "Ïģ εÏħ", + "Ïģε Ïħ", + "Ġkon umu", + "Ġkonu mu", + "Ġkonum u", + "ĠÑĤеÑħ нÑĸ", + "м Ñĸв", + "мÑĸ в", + "èĬ ¯", + "ĠÏĥ ελ", + "ĠÏĥε λ", + "Ä ¢", + "μ ιÏĥ", + "μι Ïĥ", + "ี à¹īĊ", + "ีà¹ī Ċ", + "Ġm ne", + "Ġmn e", + "ĠоÑĤв еÑĩ", + "ĠÎ ī", + "Ġ éĩİ", + "Ġéĩ İ", + "Ġg ấp", + "ĠпÑĢодÑĥк ÑĤÑĭ", + "ĠпÑĢодÑĥкÑĤ Ñĭ", + "ĠС ÑĢед", + "Ñĸл лÑı", + "à¸ļ à¸Ńà¸ģ", + "ĠtÅĻÃŃ dy", + "Ġth á»ķ", + "Ġthá» ķ", + "ãĥĩãĤ£ ãĤ¢", + "ÏĢοι η", + "ν ει", + "νε ι", + "æĪij们 çļĦ", + "Ġprofes yonel", + "ĠRa kou", + "ĠRak ou", + "Ġвид но", + "Ġz by", + "Ġzb y", + "ĠØŃ Ø§ÙĦÛĮ", + "ĠØŃاÙĦ ÛĮ", + "Ġ é£Ł", + "Ġé£ Ł", + "ĠL Ãłm", + "ĠÚ¯ ست", + "ĠТ ип", + "ĠТи п", + "θ ι", + "á vis", + "áv is", + "ÙIJ ب", + "åı¯èĥ½ æĢ§", + "ĠÑģем ей", + "ãĤī ãĤĮãģ¦ãģĦãĤĭ", + "ãĤīãĤĮ ãģ¦ãģĦãĤĭ", + "ãĤīãĤĮãģ¦ ãģĦãĤĭ", + "ìĥģ íĴĪ", + "Ġ οÏħ", + "Ġο Ïħ", + "Ġà¤ħà¤Ĺ स", + "о лом", + "ол ом", + "оло м", + "γ ον", + "γο ν", + "ĠÑģв ÑıÑī", + "ĠÑģвÑı Ñī", + "æĵ ¦", + "Ïĥ ÏĦηκε", + "ÏĥÏĦη κε", + "èĢħ çļĦ", + "- à¤ķ", + "ÑĤ ии", + "ÑĤи и", + "ĠвизнаÑĩ еннÑı", + "åıij åĩº", + "д аÑħ", + "да Ñħ", + "ĠмоÑĢ Ñı", + "Ġмо ÑĢÑı", + "æī¾ åĪ°", + "ÙĦ ÙĪب", + "ÙĦÙĪ ب", + "èĬ Ļ", + "ĠÑĦак ÑĤ", + "æ¯į 亲", + "id lo", + "idl o", + "ĠSt ad", + "ĠSta d", + "Ñį й", + "ìĽIJ ìĿ´", + "à¤ı न", + "æķ´ 个", + "Ġf ık", + "ĠÙħ ات", + "ĠÙħا ت", + "ÏĢ ον", + "ÏĢο ν", + "Ġê²½ 기ëıĦ", + "Ġ경기 ëıĦ", + "Ġα δ", + "Ġvz pom", + "Ġn á»ĵi", + "ĠÙĨÙĤ اط", + "ожд ение", + "Ġз алÑĸз", + "Ġзал Ñĸз", + "Ġr ủi", + "è¾ °", + ".:.:.:.:.:.:.:.: .:.:.:.:.:.:.:.:", + "ĠM Ãľ", + "Ġk ari", + "Ġka ri", + "Ġkar i", + "ĠÑģ обÑĭ", + "ĠÑģо бÑĭ", + "ĠÑģоб Ñĭ", + "ìĸ´ ì§Ħ", + "ر ÙĬس", + "رÙĬ س", + "u bu", + "ub u", + "ĠØ® ÙĦÙģ", + "ĠØ®ÙĦ Ùģ", + "ظٹ Ø·", + "æĿ ī", + "Ġ æĻ®éĢļ", + "ĠæĻ® éĢļ", + "ĠÙħÙĪاط ÙĨØ©", + "ĠÑģÑĤ анÑĥ", + "ĠÑģÑĤан Ñĥ", + "ĠÑģÑĤа нÑĥ", + "Ġê·¸ëħĢ ìĿĺ", + "ĠÙĦ Ùĥرة", + "ĠÙĦÙĥ رة", + "Ġo sm", + "Ġos m", + "ĠÑĥ ÑĢож", + "е га", + "ег а", + "Ġf else", + "Ġfe lse", + "Ġfel se", + "æĢĿ èĢĥ", + "ãĢĮ ãģĪ", + "Ġн овиÑħ", + "Ġнов иÑħ", + "Ġно виÑħ", + "๠IJ", + "ü ml", + "üm l", + "ĠíĶ¼ íķ´", + "ìĿ¼ ë°ĺ", + "Ġtür ü", + "ĠмÑĸ ÑģÑĤÑĸ", + "ĠмÑĸÑģ ÑĤÑĸ", + "ĠмÑĸÑģÑĤ Ñĸ", + "Ġkažd é", + "ĠÙħس جد", + "ấ c", + "ĠÙģ Ú©ÛĮ", + "Ġ yasal", + "Ġy asal", + "Ġya sal", + "Ġyas al", + "å°± ç®Ĺ", + "ĠоблиÑĩ ÑĩÑı", + "ĠÙĦ دÙĬ", + "ĠÙĦد ÙĬ", + "ا بات", + "اب ات", + "ĠÑģп аÑģ", + "êµ° ìļĶ", + "Ġп ад", + "Ġпа д", + "Ġб ÑĢаÑĤ", + "ĠбÑĢа ÑĤ", + "éĩį 大", + "Ġdüzen lenen", + "G ün", + "Ġaplik ace", + "à¸Ń ห", + "Ġ çħ", + "Ġç ħ", + "ĠÑģоÑģÑĤ оиÑĤ", + "è¯Ħ ä»·", + "ĠD uy", + "ĠDu y", + "Ø· اÙĤ", + "ĠпÑĢид еÑĤÑģÑı", + "Ġt olik", + "Ġto lik", + "Ġtol ik", + "Ġob rov", + "Ġobr ov", + "ĠpÅĻip oj", + "Ġ Ä±ÅŁÄ±", + "Ġı ÅŁÄ±", + "Ú¯ ÙĪÛĮ", + "Ú¯ÙĪ ÛĮ", + "æľŁ å¾ħ", + "ип лом", + "Ġ ince", + "Ġin ce", + "Ġi nce", + "Ġinc e", + "ĠС об", + "ĠСо б", + "ен ÑĮÑİ", + "енÑĮ Ñİ", + "è§Ĵ èī²", + "Ġ à¸ķร", + "Ġà¸ķ ร", + "Ġb ại", + "Ġê°ĢëĬ¥ íķľ", + "ĠblÃŃ zk", + "Ġt ách", + "Ġtá ch", + "Ġtác h", + "Ġвид Ñĭ", + "Ġви дÑĭ", + "и Ñĩна", + "иÑĩ на", + "Ġvyž ad", + "ĠìĨIJ ìĿĦ", + "ĠÐĿ ÑĸмеÑĩ", + "ĠÐĿÑĸ меÑĩ", + "åŁº äºİ", + "ĠÐļ ÑĢи", + "Ġعز ÛĮز", + "t iler", + "til er", + "ti ler", + "tile r", + "е вÑĸ", + "ев Ñĸ", + "Ġmož nosti", + "Ġmožnost i", + "ب از", + "با ز", + "ĠìĤ¬ ë§Ŀ", + "Ġz ÅĻejmÄĽ", + "íĹ ¤", + "Ġürün leri", + "ĠÎł λη", + "а ки", + "ак и", + "ãĤĴ éĸĭ", + "a nou", + "an ou", + "ano u", + "åĽ½ ãģ®", + "ĠyaÅŁ anan", + "ĠyaÅŁan an", + "ĠÑģ евеÑĢ", + "Ġ æ©Ł", + "Ġæ© Ł", + "มาà¸ģ มาย", + "Ġíijľ íĺĦ", + "ร ส", + "Ġض ربÙĩ", + "Ġضر بÙĩ", + "ĠE vet", + "ĠEv et", + "ĠEve t", + "æĨ ¶", + "Ġد ÙĤÛĮÙĤ", + "ĠدÙĤÛĮ ÙĤ", + "Ġвозник нов", + "ìľł 머", + "Ġíijľ ìĭľ", + "ÛĮ Ø´ÙĨ", + "ÛĮØ´ ÙĨ", + "ãĥĹ ãĥ©", + "ÑĤ Ñİ", + "ÙĪ سÛĮ", + "ÙĪس ÛĮ", + ") ìĿ´", + "è¯ģ æĺİ", + "ãģ§ãģį ãģ¾ãģĻ", + "ìĪĺ ìĿĺ", + "çĸ Ĩ", + "ĠÙħ ÙģÙĩÙĪÙħ", + "оÑĩ аÑĤкÑĥ", + "ाल à¤ķ", + "æ¡ Ĥ", + "ĠоÑħ оÑĢони", + "ĠارزÛĮ ابÛĮ", + "Ġìµľ ëĮĢ", + "Ġtho ải", + "ĠЦенÑĤ ÑĢалÑĮ", + "Ġ çķĻ", + "Ġçķ Ļ", + "à¸Ľà¸£à¸° à¹Ģà¸łà¸Ĺ", + "æµ· å¤ĸ", + "ĠÅŀ u", + "íĻľ ëıĻ", + "ĠdvÄĽ ma", + "istrov stvÃŃ", + "Ġarac ılıģıyla", + "Ġtr á»Ļn", + "» :", + "íĭ ±", + "ĠÙĦÛĮ Ú¯", + ". Ðļ", + "ĠÙħÙĤ اÛĮسÙĩ", + "Ġв мÑĸ", + "ر ÙĪب", + "رÙĪ ب", + "ĠاÙĦ Ø´Ùħ", + "ĠاÙĦØ´ Ùħ", + "Ġden nÄĽ", + "Ġdenn ÄĽ", + "Ñĥ Ñĩа", + "ÑĥÑĩ а", + "åħ ¹", + "Ñī им", + "Ñīи м", + "ĠíĬ¹ íŀĪ", + "ĠاستاÙĨد ارد", + "à¥Ģ ध", + "ãĤ¸ ãĤ¢", + "à¹ĩ à¹ĩ", + "иÑģ Ñģ", + "Ġkazan ç", + "ĠzÃŃsk al", + "åĽŀ æĿ¥", + "Ġп ÑıÑĤÑĮ", + "ĠпÑıÑĤ ÑĮ", + "ĠÄij ãi", + "ĠÄijã i", + "Ġ ÙĪرد", + "ĠÙĪ رد", + "ĠÙĪر د", + "Ġ ìķķ", + "Ġìķ ķ", + "ุ à¸Ĺร", + "ุà¸Ĺ ร", + "åĬ¨ çī©", + "Ġp ublik", + "Ġpub lik", + "Ġpubli k", + "æĪIJ æľ¬", + "æĪIJ åijĺ", + "ãĤ¤ ãĤ¯", + "شر ÙĥØ©", + "á¿Ĩ ÏĤ", + "Ġy ola", + "Ġyo la", + "Ġyol a", + "üyor uz", + "Ġк ÑĥÑĢи", + "ĠкÑĥÑĢ и", + "ĠкÑĥ ÑĢи", + "ĠпоÑħ ож", + "Ġìłľ ê°Ģ", + "िय त", + "ائ ÙĦØ©", + "ائÙĦ Ø©", + "Ġ ãģ¾", + "़ à¥ĩà¤Ĥ", + "़à¥ĩ à¤Ĥ", + "ÑģÑĮ кими", + "ÑģÑĮк ими", + "ÑģÑĮким и", + "âĢľ ä½ł", + "imiz de", + "ìµľ ìĭł", + "Ạ¬", + "è Ł", + "à¸Ħ รà¸Ńà¸ļ", + "à¸Ħร à¸Ńà¸ļ", + "ãĢĢ ãĢĢãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢãĢĢ ãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢ ĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢĠãĢĢ ĠãĢĢĠãĢĢ", + "ãĢĢãĢĢãĢĢĠãĢĢĠãĢĢ ĠãĢĢ", + "ت غ", + "ĠVÅ¡ ech", + "à¸±à¸Ľ à¸Ķาห", + "Ġa td", + "Ġat d", + "в оÑİ", + "во Ñİ", + "Ġyap ım", + "Ġyapı m", + "olog ické", + "ologic ké", + "Ġп лен", + "Ġпл ен", + "Ġlaz ım", + "r ung", + "ru ng", + "run g", + "ìĦľ ê´Ģ", + "Ġji ný", + "Ġjin ý", + "Ġtr òn", + "Ġtrò n", + "ĠполÑĸÑĤи ки", + "ا ÙĥÙħ", + "اÙĥ Ùħ", + "دÛĮ گر", + "à¥Īà¤Ĥ .Ċ", + "à¥Īà¤Ĥ. Ċ", + "Ġ اÙĩد", + "Ġا Ùĩد", + "ĠاÙĩ د", + "Ġ ãĥį", + "Ġãĥ į", + "ĠпÑĢодÑĥк ÑĤов", + "ĠпÑĢодÑĥкÑĤ ов", + "æĤ Ł", + "ĠpÅĻÃŃpad ech", + "ĠzaÄį ala", + "ĠzaÄįal a", + "åħ¥ ãĤĮ", + "ĠÑĢÑĸв нÑĸ", + "æĦŁ æĥħ", + "ĠΧ α", + "ì £½", + "ì£ ½", + "ิà¸Ī ารà¸ĵ", + "Âł б", + "Ñĸ ÑĹв", + "ÑĸÑĹ Ð²", + "ب Ø´", + "çļĦ éĹ®é¢ĺ", + "Ġza stup", + "Ġzast up", + "볤 ìļĶ", + "ãģ§ãģĻ ãģŃ", + "âĢĮ داÙĨ", + "âĢĮد اÙĨ", + "ï¼Į æĤ¨", + "Ġu vÄĽdom", + "ãģ¦ ãĤĭ", + "ìĤ¬ ëŀĮ", + "l un", + "lu n", + "éĽĨ åIJĪ", + "ë§ ¹", + "Ġž id", + "Ġži d", + "ठĬ", + "Ġt rp", + "Ġtr p", + "л ениÑħ", + "лен иÑħ", + "ле ниÑħ", + "_ __", + "__ _", + "Ðľ Ðŀ", + "å¼ ĭ", + "λÎŃ Î¿Î½", + "ĠÄij òi", + "Ġк ÑĢок", + "lay ıcı", + "ì¶ľìŀ¥ ë§ĪìĤ¬ì§Ģ", + "åij Ī", + "éľ ŀ", + "Ġпо глÑıд", + "Ġпог лÑıд", + "ت رÙĥ", + "تر Ùĥ", + "ĠتÙģ اÙĪت", + "Ġ å®®", + "Ġå® ®", + "ĠدÙĪر بÛĮÙĨ", + "æĶ¾ åľ¨", + "ĠÑģлÑĥÑĩа ев", + "ĠÑģлÑĥÑĩае в", + "ĠÏħÏĢ ηÏģε", + "ë§ ŀ", + "ãģĻ ãģĻ", + "ê²ł ëĭ¤", + "ราย à¸ģาร", + "ĠÏĢ Ïģιν", + "ĠÑģ меÑĪ", + "ĠÑģм еÑĪ", + "å§ ī", + "Ġvýsled ky", + "Ġpot vr", + "åıij è¡Į", + "Ġt úi", + "Ġtú i", + "ĠìĤ¬ ëĿ¼", + "ç«Ļ åľ¨", + "Ġja ký", + "Ġjak ý", + "Ġ à¸ļาà¸ĩ", + "Ġà¸ļ าà¸ĩ", + "Ġdik kate", + "Ġdikkat e", + "Ġدر Ø¢Ùħد", + "æİĴ åIJį", + "r álnÃŃ", + "rál nÃŃ", + "ê³¼ ìĿĺ", + "ä½ µ", + "о лаг", + "ол аг", + "ола г", + "is iyle", + "isi yle", + "Ġ æ½", + "Ġæ ½", + "Ġ तम", + "Ġत म", + "Ġd ij", + "Ġdi j", + "Ġnh ánh", + "ĠR ek", + "ĠRe k", + "设 æĸ½", + "ĠpodmÃŃn ek", + "并 ä¸į", + "к ÑĥÑĤ", + "кÑĥ ÑĤ", + "Ġê³ł 볤", + "çļĦ å£°éŁ³", + "æĪĺ äºī", + "д аÑı", + "да Ñı", + "Ġê´Ģ ìĭ¬", + "ĠÑĦÑĸн анÑģ", + "ĠK öy", + "ĠKö y", + "Ġж ал", + "ĠÑģлÑĥж би", + "м ена", + "мен а", + "ме на", + "ت ÙĬار", + "تÙĬ ار", + "ĠÑĩем пион", + "ÏĢ ιÏĥ", + "ÏĢι Ïĥ", + "landır ma", + "mak tan", + "makta n", + "makt an", + "Ġ 丶", + "Ġä¸ ¶", + "à¹Ī à¸Ńส", + "à¹Īà¸Ń ส", + "ĠmÃ¼ÅŁ teri", + "ĠmÃ¼ÅŁter i", + "Ġص ÙĨد", + "ĠصÙĨ د", + "Ġet mesi", + "Ġetm esi", + "Ġetme si", + "Ġп оÑĢÑĤ", + "ĠпоÑĢ ÑĤ", + "ν ονÏĦαι", + "νον ÏĦαι", + "Ġ ãħĭãħĭ", + "ĠK AR", + "ĠKA R", + "Ġ uch", + "Ġu ch", + "Ġuc h", + "ĠØ® ÙĦÙĤ", + "ĠØ®ÙĦ ÙĤ", + "าษà¸İ ร", + "æŃ ¡", + "Ġи мени", + "Ġим ени", + "Ġиме ни", + "ãģł ãģijãģ©", + "ãģłãģij ãģ©", + "Ġìĭ¤ ìĭľ", + "ÏĥÏī ÏĢ", + "Ġ ì£", + "Ġì £", + "t ÄĽÅ¾", + "tÄĽ ž", + "Ġözel likleri", + "Ġözellik leri", + "Ġözellikle ri", + "Ġب Ù¾", + "Ġиз обÑĢаж", + "ÙĬÙħ ÙĥÙĨ", + "Ġ ãĥĶ", + "Ġãĥ Ķ", + "ĠÐĶ ив", + "ĠÐĶи в", + "ĠØ¥ ÙĬ", + "Ùĥ ÙĬÙĦ", + "ÙĥÙĬ ÙĦ", + "ĠÅŁ ik", + "ĠÅŁi k", + "Ġà¤Ĩ à¤ĸ", + "lar ınızı", + "ların ızı", + "larını zı", + "larınız ı", + "ĠвÑĸд ÑĢÑĸз", + "ĠÑĢоб оÑĤа", + "ĠÑĢобоÑĤ а", + "Ġta rif", + "Ġtar if", + "Ġ اÙĪت", + "Ġا ÙĪت", + "ĠاÙĪ ت", + "ın ma", + "é£Ł ãģ¹", + "Ġuzav ÅĻ", + "ë£ ¸", + "çĽij çĿ£", + "Ġ: ï¼¼", + "θ Ïħν", + "θÏħ ν", + "à¸Ķ ร", + "a larından", + "alar ından", + "aların dan", + "alarında n", + "èĩª æĭį", + "Ġro ÄįnÃŃ", + "ाà¤ĩ व", + "Ġ ÙĥÙĪر", + "ĠÙĥ ÙĪر", + "ĠÏĦ αιν", + "ĠÏĦα ιν", + "ĠÑĸн див", + "r ve", + "rv e", + "ĠνεÏĨ ÏİÏĥειÏĤ", + "Ġb á»ijn", + "Ġbá»ij n", + "Ġ å¿«", + "Ġå¿ «", + "ĠÑģ олÑĮ", + "ĠÑģо лÑĮ", + "ĠÑģол ÑĮ", + "li ÄŁinde", + "liÄŁi nde", + "liÄŁ inde", + "liÄŁin de", + "िन à¤Ł", + "a htar", + "ah tar", + "Ġneb ezpeÄį", + "æĹ¢ çĦ¶", + "ĠëĮĢ ìłĦ", + "ĠÙĨÚ¯Ùĩد ارÛĮ", + "ĠzÃŃsk at", + "Ġнали Ñĩие", + "ĠналиÑĩи е", + "Ġ aks", + "Ġa ks", + "Ġak s", + "ï¼ī ãĢĤĊĊ", + "ï¼īãĢĤ ĊĊ", + "ï¼īãĢĤĊ Ċ", + "Ġrod iny", + "Ġrodin y", + "Ġrodi ny", + "Ġза ÑħÑĸд", + "ĠзаÑħ Ñĸд", + "å¾® ç¬ij", + "ÂłÐĶ а", + "r adu", + "ra du", + "rad u", + "ī nh", + "p les", + "pl es", + "ple s", + "ĠK ons", + "ĠKon s", + "ĠKo ns", + "ิ à¹Ĥล", + "ิà¹Ĥ ล", + "ĠاÙĦ ÙĪص", + "ĠاÙĦÙĪ ص", + "åIJ¬ åĪ°", + "ĠÑģпоÑĢ ÑĤив", + "ĠÑģ айÑĤе", + "ĠÑģай ÑĤе", + "Ġ اظ", + "Ġا ظ", + "ĠØ§Ø ¸", + "lar ındaki", + "ların daki", + "larında ki", + "Ġtá»ķ n", + "ÐĿ ÐĨ", + "Ġned ost", + "ĠÑĤоÑĢ гÑĸв", + "Ġ اÛĮت", + "Ġا ÛĮت", + "ĠاÛĮ ت", + "Ġاختص اص", + "ĠÃľ y", + "ĠS adece", + "ĠSad ece", + "ĠÙħØ® رÙĪØ·", + "Ä ģn", + "Äģ n", + "ç esi", + "çe si", + "Ġ çĬ", + "Ġç Ĭ", + "ãĤĤ ãģ£ãģ¨", + "Ġ éŁĵ", + "ĠéŁ ĵ", + "èµ ĸ", + "ĠполÑĥÑĩ ениÑı", + "Ġë ĺ", + "âĢĻ ÑĹ", + "b ÃŃr", + "bÃŃ r", + "Ġб ÑĸблÑĸ", + "ĠD á»±", + "же неÑĢ", + "жен еÑĢ", + "ç½ij åĪĬ", + "Ġल à¥ľà¤ķ", + "ĠÑĥÑĩ нÑĸв", + "èĪ °", + "ĠÃĸÄŁ ren", + "Ġ ola", + "Ġo la", + "Ġol a", + "Ġ। âĢĿĊĊ", + "ระ à¹Ģà¸ļ", + "á½ ²", + "Ġ رز", + "Ġر ز", + "е и", + "еР¸", + "Ñı Ñĩи", + "ÑıÑĩ и", + "ØŃ Ø¨", + "æĴ ¤", + "ãģ¾ãģŁ ãģ¯", + "б ина", + "би на", + "бин а", + "ĠÎł εÏģ", + "ĠоÑĤноÑģ иÑĤÑģÑı", + "åīį çļĦ", + "Ġ Å¡Å¥", + "ĠÅ¡ Å¥", + "Ġyıl da", + "Ġyı lda", + ": ::::|", + ":: :::|", + ":::: :|", + "::: ::|", + "::::: |", + "us til", + "ust il", + "اÙĦ Ø¥", + "ĠsouÄįas né", + "ĠÙĨÛĮ رÙĪÛĮ", + "ĠÙĨÛĮر ÙĪÛĮ", + "ĠÙĨÛĮرÙĪ ÛĮ", + "ÑĩеÑģ кое", + "Ñĩе Ñģкое", + "ظ Ùģ", + "ĠÙ¾ÛĮØ´ ÛĮÙĨÙĩ", + "Ġع ÙģØ´", + "Ġrost lin", + "ç½ijåĪĬ ä¸ĭ载次æķ°", + "ĠпÑĢигоÑĤов иÑĤÑĮ", + "ãĥ Į", + "ĠÙĪ Ùħع", + "ĠÙĪÙħ ع", + "Ġb ecer", + "Ġbe cer", + "Ġbec er", + "Ġ ãĤ±", + "ĠãĤ ±", + "Ïĩ ήÏĤ", + "Ïĩή ÏĤ", + "о ÑģÑĤÑĥп", + "оÑģÑĤ Ñĥп", + "Ġë°ľ 매", + "Ñĸй ного", + "Ñĸйно го", + "Ġh rd", + "Ġhr d", + "ĠпÑĢепаÑĢа ÑĤÑĭ", + "ĠÙģ رض", + "ĠÙģر ض", + "ĠTy to", + "Ġ кÑĢаÑĹн", + "ĠкÑĢаÑĹ Ð½", + "Ġز اد", + "Ġikt idar", + "ì§ ĵ", + "Ùij ر", + "ÑĢÑı дÑĥ", + "ÑĢÑıд Ñĥ", + "к Ñĸй", + "кÑĸ й", + "âĶ £", + "Ġко жи", + "Ġкож и", + "Ġت ازÙĩ", + "Ġتا زÙĩ", + "o bec", + "ob ec", + "obe c", + "in ae", + "ina e", + "Ġvyj ád", + "Ġ رÙģتÙĩ", + "Ġر ÙģتÙĩ", + "ĠرÙģت Ùĩ", + "ĠرÙģ تÙĩ", + "Щ о", + "ĠBy lo", + "ĠByl o", + "оÑĤ в", + "ĠденÑĮ ги", + "é§ Ĩ", + "Ġма ÑĪин", + "ĠмаÑĪ ин", + "ĠмаÑĪи н", + "ĠØ£ ج", + "ì´Ī ëĵ±íķĻêµIJ", + "dı ģında", + "dıģı nda", + "dıģ ında", + "б аÑģ", + "ба Ñģ", + "Ġ æł¹", + "Ġæł ¹", + "ÎijÎĿ Τ", + "ÙĴ ØŃ", + "Ġjejich ž", + "ìĹIJìĦľ ìĿĺ", + "Ġад же", + "Ġì ı", + "Ïĥ οÏħ", + "Ïĥο Ïħ", + "et leri", + "etler i", + "Ġبعد ÛĮ", + "Ġبع دÛĮ", + "ĠìŀIJëıĻ ì°¨", + "ิà¸į à¸į", + "Ġt isk", + "Ġti sk", + "ãĥ¼ ãĤ¹ãĥĪ", + "ãĥ¼ãĤ¹ ãĥĪ", + "Ġमत लब", + "ê³Ħ íļį", + "ãĤ¦ ãĥĪ", + "Ġ à¹Ģมà¸ķร", + "Ġà¹Ģม à¸ķร", + "Ġop siyon", + "Ġops iyon", + "ĠÑĢав но", + "ĠبÛĮ ÙħÙĩ", + "ĠبÛĮÙħ Ùĩ", + "Ġ먼 ìłĢ", + "иÑĤелÑĮ нÑĭм", + "ĠнÑĸ би", + "Ġде ÑģÑıÑĤ", + "ĠдеÑģÑı ÑĤ", + "ĠÑģиÑĤÑĥа ÑĨии", + "еÑĢ ÑĪе", + "еÑĢÑĪ е", + "Ä ¾", + "ุ à¸ķร", + "ุà¸ķ ร", + "Ġyönet imi", + "Ġyönetim i", + "éIJ ĺ", + "ĠÙħÛĮ تÙĪاÙĨ", + "Ġز ÙĨدÙĩ", + "ĠزÙĨ دÙĩ", + "ĠزÙĨد Ùĩ", + "ãĥŃ ãĥ³", + "ĠK BS", + "ĠKB S", + "ìĦľ ë¹ĦìĬ¤", + "ï» ł", + "eck ého", + "ecké ho", + "ĠÙĤابÙĦ ÛĮت", + "ĠÙĤاب ÙĦÛĮت", + "ãĢĤ ä»Ĭ", + "ÃŃ nÄĽ", + "ÃŃn ÄĽ", + "ĠÑģм ог", + "ĠÑģл ÑĭÑĪ", + "ÙĴ Ùģ", + "po ÅĻád", + "елÑĮ но", + "Ġεί Ïĩαν", + "-ÐŁ еÑĤеÑĢб", + "ĠCh iến", + "ĠChi ến", + "é ry", + "ér y", + "ĠÑĸн ÑģÑĤиÑĤÑĥÑĤ", + "ç»Ĩ èĥŀ", + "Ñĭ ÑŁN", + "Ġv ua", + "Ġvu a", + "Ġà¤ħ श", + "ÑĢоÑģ ÑĤо", + "ÑĢоÑģÑĤ о", + "Ġvů Äįi", + "ë ¿IJ", + "Ġl iá»ĩt", + "Ġíķ µ", + "Ġ اÙģر", + "Ġا Ùģر", + "ĠاÙģ ر", + "ĠTek nik", + "Ġr oli", + "Ġro li", + "Ġrol i", + "Ġпоп ÑĭÑĤ", + "аÑĤ кÑĸв", + "Ġün iversit", + "аÑĤ оÑĢÑĭ", + "аÑĤоÑĢ Ñĭ", + "аÑĤо ÑĢÑĭ", + "ÑİÑīиÑħ ÑģÑı", + "Ġت ض", + "лÑİ ÑĩаеÑĤÑģÑı", + "лÑİÑĩ аеÑĤÑģÑı", + "лÑİÑĩа еÑĤÑģÑı", + "Ġíĸī ë³µ", + "Ġayrıntı lı", + "ĠкиÑĢ п", + "æĭ ¼", + "ëģ Ķ", + "л аÑĤа", + "ла ÑĤа", + "лаÑĤ а", + "Ġkho án", + "Ġhâl â", + "Ïĥ Ïħ", + "ог лаÑģ", + "æİ¥ çĿĢ", + "éĿ© åij½", + "Ġp ÅĻeb", + "ĠpÅĻ eb", + "ĠpÅĻe b", + "à¹Ģà¸ī ล", + "ĠاÙĦÙħÙĦ ÙĦÛĮ", + "åł Ĩ", + "íı IJ", + "à¸ķล à¸Ńà¸Ķ", + "° С", + "ìĤ¬ ëŀij", + "Ġг иб", + "ë²Ī 째", + "æĶ¹ åıĺ", + "表 çİ°", + "и ÑĩеÑģким", + "иÑĩеÑģ ким", + "иÑĩеÑģки м", + "สม à¹Ģà¸Ķ", + "å±ħ æ°ij", + " Ľ", + "ĠìķĦìĿ´ ëĶĶ", + "ĠмеждÑĥ наÑĢод", + "Ġy em", + "Ġye m", + "Ġm ül", + "Ġmü l", + "Ġا ÛĮست", + "ĠاÛĮ ست", + "Ġ ãĥ´", + "Ġãĥ ´", + "ัà¸Ļ à¹Ħà¸Ķ", + "à¥Ģ ण", + "åħ¶ å®ŀ", + "Ġgel enek", + "Ġgele nek", + "Ġgelen ek", + "ë¶ģ ëıĦ", + "à¹ī าà¸ķ", + "à¹īา à¸ķ", + "Ġ ìī¬", + "Ġìī ¬", + "Ġ ÏĢÎŃ", + "ĠÏĢ ÎŃ", + "ĠÙĥ اÙħÙĦ", + "ĠÙĥاÙħ ÙĦ", + "Ġتع ÙħÛĮر", + "è¨ ´", + "ë¹ Ļ", + "iy im", + "iyi m", + "å° ¿", + "éĤ£ æł·", + "êµŃ ìĿĺ", + "ãģĹãģ¦ ãģĬãĤĬ", + "Ġ niž", + "Ġn iž", + "Ġni ž", + "Ġκ ον", + "Ġκο ν", + "à¹Ī าà¸Ń", + "à¹Īา à¸Ń", + "Ġ γε", + "Ġγ ε", + "ĠС евеÑĢ", + "edi álnÃŃ", + "ãģŁãģ¡ ãģ®", + "m ayacak", + "may acak", + "maya cak", + "Ñ Ļ", + "ĠÑĥ гл", + "ĠÑĥг л", + "Ġk apas", + "Ġka pas", + "Ġkap as", + "Ñĥв алиÑģÑı", + "Ñĥва лиÑģÑı", + "Ñĥвали ÑģÑı", + "ĠмеÑģÑı ÑĨа", + "á» ¯u", + "ữ u", + "ิ ลล", + "ิล ล", + "ãĤĪãĤĬ ãĤĤ", + "à¥ĩ ण", + "à¥ĩठ£", + "Ġ 客", + "Ġå® ¢", + "ĠdeÄŁ erli", + "ĠdeÄŁer li", + "ÙĪ از", + "ÙĪا ز", + "ี à¸Ńย", + "ีà¸Ń ย", + "Ġ åıĪ", + "Ġåı Ī", + "Ġ à¸Ķร", + "Ġà¸Ķ ร", + "ĠÙĨ اب", + "ĠتÙĦÙĪÛĮزÛĮ ÙĪÙĨ", + "Ġol anlar", + "Ġolan lar", + "ä¼ĺ ç§Ģ", + "Ùĥ اÙĦ", + "ĠдеÑģÑı ÑĤи", + "ĠдеÑģÑıÑĤ и", + "m án", + "má n", + "ĠÑĢ анÑĮ", + "ĠÑĢа нÑĮ", + "ĠÑĢан ÑĮ", + "Ġìłľ ì¶ľ", + "è³ ¢", + "а бо", + "аб о", + "Ġtechn ik", + "Ġtech nik", + "ĠK iá»ĥm", + "ĠKi á»ĥm", + "t eki", + "te ki", + "tek i", + "á ¹", + "Ġm nÄĽ", + "Ġmn ÄĽ", + "Ġê³µ ê°Ħ", + "ĠM ek", + "ĠMe k", + "Ġاع تÙħاد", + "à¹Į à¹Ħà¸Ķ", + "ε ÏģÏĮ", + "εÏģ ÏĮ", + "ĠÑĥд аÑĢ", + "ĠÑĥда ÑĢ", + "оÑĩ ÑĮ", + "æ¦Ĥ 念", + "ÑĢ ал", + "ÑĢаР»", + "ÑĢа л", + "алÑĮ нÑĭми", + "алÑĮнÑĭм и", + "à¥ģर स", + "r áci", + "rá ci", + "Ġ ÙĤÙĪÙĦ", + "ĠÙĤ ÙĪÙĦ", + "Ġद व", + "ĠпÑĢав да", + "Ġ å¿ħ", + "Ġå¿ ħ", + "Ġdos ud", + "нÑĥ ÑĤÑĮÑģÑı", + "нÑĥÑĤÑĮ ÑģÑı", + "N Äĥm", + "à¸ĺ à¸Ļ", + "Ġdok un", + "Ġ åľ¨çº¿", + "Ġåľ¨ 线", + "ู à¹Ħ", + "ụ y", + "Ġн овÑĭÑħ", + "Ġнов ÑĭÑħ", + "Ġmez un", + "ĠC ần", + "à¸ģาร à¸ŀ", + "ĠìĺĪ ìłķ", + "Ïĥ ή", + "à¹Īà¸Ļ à¹Ģà¸ģม", + "ĠÙĪ اÙĦس", + "ĠÙĪاÙĦ س", + "ĠÙĪا ÙĦس", + "ãĥ³ ãĥĨãĤ£", + "ãĥ³ãĥĨ ãĤ£", + "çľĭ è§ģ", + "Ġس اÙĦÙħ", + "ĠساÙĦ Ùħ", + "ĠбагаÑĤÑĮ оÑħ", + "ĠÄij Ãłi", + "Ġد ستÛĮ", + "Ġدست ÛĮ", + "Ġدس تÛĮ", + "à¸ŀ à¸Ń", + "еп ÑĤи", + "ĠìłĦ íĻĶ", + "æĻĤ ãģ«", + "ĠSe znam", + "ĠSez nam", + "мÑĸ нÑĥ", + "мÑĸн Ñĥ", + "; ?#", + "à¥Ģ सर", + "à¥Ģस र", + "ĠÚĨ ÛĮست", + "νο ια", + "νοι α", + "ั à¸Ļà¸Ń", + "ัà¸Ļ à¸Ń", + "Ġ à¸Ħำ", + "Ġà¸Ħ ำ", + "Ġë³´ íĺ¸", + "Ġid dia", + "Ġiddi a", + "Ġβ ιβ", + "é«ĺ ä¸Ń", + "Ù ¨", + "ÐĴ аж", + "ĠиÑģп олн", + "ÑĪ ÑĤов", + "ÑĪÑĤ ов", + "ĠT aÅŁ", + "ĠTa ÅŁ", + "ìĽ ħ", + "åĬ ¹", + "Ġ åıĥ", + "Ġåı ĥ", + "Ġprost oru", + "Ġprostor u", + "ĠÑģп ад", + "е ÑĢина", + "еÑĢ ина", + "еÑĢи на", + "еÑĢин а", + "ĠpÅĻek lad", + "ĠpÅĻe klad", + "Å¡ ov", + "ĠÙģ ÙĩÙħ", + "ĠÙģÙĩ Ùħ", + "æĬ ij", + "Ġابت دا", + "Ġابتد ا", + "ãĤĴ ãģĬ", + "l ikler", + "lik ler", + "likle r", + "ĠÙħ اÙĥ", + "ĠÙħا Ùĥ", + "Ġko nut", + "Ġkon ut", + "Ġkonu t", + "ĠداÙĨØ´ جÙĪÛĮ", + "Ġоп ÑĤим", + "Ġб Ñĥма", + "ĠбÑĥ ма", + "ĠлÑİд Ñıм", + "Ġл Ñĸка", + "ĠлÑĸ ка", + "ĠлÑĸк а", + "ĠÑĢоз повÑĸд", + "ĠÑĢозп овÑĸд", + "ĠÑĢозпов Ñĸд", + "nes enÃŃ", + "Ġ à¸łà¸²à¸ŀ", + "Ġà¸ł าà¸ŀ", + "и Ñĩний", + "иÑĩ ний", + "ا Ø·ÙĦ", + "اط ÙĦ", + "Ñİ Ñīими", + "ÑİÑī ими", + "ÑİÑīим и", + "ãģı ãģ¨", + "éŃ ¯", + "ĠجÙĨ سÛĮ", + "Ðĺ Т", + "र ल", + "ĠÚ©ÙĪد Ú©", + "о лиÑĤ", + "ол иÑĤ", + "оли ÑĤ", + "ĠÑģÑĤÑĢÑĥкÑĤÑĥ ÑĢ", + "ve kili", + "vek ili", + "Ġब य", + "Ġgel miÅŁ", + "िर फ", + "Ġнай кÑĢа", + "ĠÐĶж он", + "Ġ ãĥĹãĥŃ", + "ĠãĥĹ ãĥŃ", + "ĠyaÅŁ lı", + "Ġkar Ä±ÅŁtır", + "ĠkarÄ±ÅŁ tır", + "ĠvÄĽtÅ¡ inou", + "Ġvaz geç", + "à¹ī าà¸Ħ", + "à¹īา à¸Ħ", + "lendir me", + "Ġ ç¨ĭ", + "Ġç¨ ĭ", + "说 è¯Ŀ", + "ĠíķĦìļĶ íķľ", + "aÅĻ ilo", + "Ġle žÃŃ", + "ĠAmer ikan", + "ĠAmerika n", + "ĠAmerik an", + "ãĤĦ ãģĻ", + "va jÃŃcÃŃ", + "vajÃŃ cÃŃ", + "ÐĿ Я", + "ĠìĹĦ ë§Ī", + "Ġ åĥ", + "Ġå ĥ", + "r ál", + "rá l", + "Ġç ay", + "Ġça y", + "tu ÄŁ", + "ุà¸į าà¸ķ", + "ĠÑģ лив", + "ĠÑģл ив", + "ν οÏħ", + "νο Ïħ", + "ĠO v", + "ĠC HP", + "ĠCH P", + "ĠZe mÄĽ", + "ĠZem ÄĽ", + "ĠÄįesk ý", + "ĠÄįe ský", + "ĠTh ánh", + "иÑĤелÑĮ ноÑģÑĤÑĮ", + "иÑĤелÑĮно ÑģÑĤÑĮ", + "æĦı ä¹ī", + "à¥įरम ण", + "Ġди амеÑĤ", + "Ġk lin", + "Ġkl in", + "Ġkli n", + "Ġ کرÛĮ", + "ĠÚ© رÛĮ", + "Ġکر ÛĮ", + "ãģ§ãģ¯ ãģªãģı", + "飯 åºĹ", + "Ġk ênh", + "Ġkê nh", + "ĠÑĢанÑĮ ÑĪе", + "ãĤĴ ãģĹãģŁ", + "ĠпÑĢи боÑĢ", + "ĠпÑĢиб оÑĢ", + "Ġà¤ĸ तर", + "Ġ yu", + "Ġy u", + "é§ IJ", + "ĠÑĢ або", + "ĠÑĢа бо", + "ĠÑĢаб о", + "ĠС ÐłÐ¡Ðł", + "èĬ ¬", + "ž ila", + "ži la", + "žil a", + "еÑĢ ÑĤа", + "еÑĢÑĤ а", + "и ÑģÑĤÑĢа", + "иÑģ ÑĤÑĢа", + "иÑģÑĤ ÑĢа", + "Ġкни ги", + "ĠFranc ie", + "ĠFran cie", + "ĠÚĺ اپ", + "ĠÎļ οÏħ", + "ĠÎļο Ïħ", + "ัว à¹Ģà¸Ńà¸ĩ", + "Ġl ắng", + "Ġ нами", + "Ġн ами", + "Ġна ми", + "Ġнам и", + "Ġпод ой", + "д ÑĢом", + "дÑĢ ом", + "o bus", + "ob us", + "ÐĴ Ñĸн", + "Ġst alo", + "Ġsta lo", + "Ġstal o", + "Ġà¤ı à¤ľ", + "ĠL inh", + "ĠLin h", + "ĠLi nh", + "ebilir iz", + "Ġзав ÑĤÑĢа", + "μ εÏģο", + "με Ïģο", + "μεÏģ ο", + "Ġ ÎŃν", + "ĠÎŃ Î½", + "ÑıÑĤ но", + "Ġд оÑĢож", + "Ġдо ÑĢож", + "ĠдоÑĢ ож", + "åıĤ çħ§", + "Ïĥ ιο", + "Ïĥι ο", + "à¹ī à¹Ģà¸ģ", + "a ných", + "an ých", + "aný ch", + "ç· ł", + "Ġ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ", + "ĠãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢãĢĢ ãĢĢ", + "åĬĽ çļĦ", + "ĠS ır", + "ĠSı r", + "Ġ ì§ĢëıĦ", + "Ġì§Ģ ëıĦ", + "ç· Ĭ", + "ĠpoÄį tu", + "ï¼Į ä¸İ", + "ä¸ĸ ç´Ģ", + "ем ого", + "емо го", + "Ġhus us", + "Ġhu sus", + "Ġölçü de", + "Ġtr ục", + "Ġtrụ c", + "à¸Ľà¸¥ à¸Ńà¸Ķà¸ł", + "Âłp ÅĻÃŃ", + "ĠBöl gesi", + "м ом", + "мо м", + "ãģ« ãģ¦", + "Ġ쪽 ì§Ģ", + "ÄĽt Å¡", + "ĠìĦ± ê³µ", + "र त", + "ur du", + "urd u", + "ĠìĽĢ ì§ģ", + "ÑŁ ÐŃ", + "nÃŃ kem", + "nÃŃk em", + "ĠskuteÄį nosti", + "Ġ даÑĤ", + "Ġд аÑĤ", + "Ġда ÑĤ", + "n eum", + "ne um", + "ĠÑĤаб леÑĤ", + "j vu", + "Ġs edm", + "Ġse dm", + "Ġsed m", + "س ÙĬØ©", + "سÙĬ Ø©", + "ĠкоÑĢ об", + "Ġко ÑĢоб", + "em mel", + "emm el", + "emme l", + "ãģ¤ ãģij", + "é¦Ļ èķī", + "Ġشخص ÛĮت", + "ĠشخصÛĮ ت", + "ä¸Ĭ äºĨ", + "ÙĪ را", + "ÙĪر ا", + "ĠаÑĤ моÑģ", + "Ġ лей", + "Ġл ей", + "Ġz prav", + "Ġzp rav", + "Ġëķ ħ", + "ู à¸Ĺ", + "Ġ اسر", + "Ġا سر", + "Ġاس ر", + "ĠAy dın", + "ĠعÙħ ÙĦÙĬØ©", + "ĠعÙħÙĦ ÙĬØ©", + "Ġд ÑĸÑĶ", + "ĠдÑĸ ÑĶ", + "Ġd ök", + "Ġdö k", + "Ġफ ल", + "ĠìĤ¬ëŀĮ ëĵ¤ìĿ´", + "ĠнаÑĤÑĥ ÑĢалÑĮ", + "æŁ ľ", + "温 度", + "Ġk les", + "Ġkl es", + "Ġkle s", + "Ġин веÑģÑĤи", + "s üz", + "æĴ °", + "Ġ ãĤ¢ãĥ«", + "ĠãĤ¢ ãĥ«", + "Ġ èĴ", + "Ġè Ĵ", + "ад ки", + "Ġk lÃŃÄį", + "Ïĩ εί", + "Ïĩε ί", + "ĠTh iết", + "ĠThi ết", + "ĠسرÛĮ ع", + "ĠÏĢεÏģιο Ïĩή", + "ÙĪ ÙĤÙģ", + "ÙĪÙĤ Ùģ", + "Ïģ ÏīÏĥη", + "ÏģÏī Ïĥη", + "ĠسÙĦ اÙħت", + "ĠسÙĦاÙħ ت", + "ëĵ¤ ëıĦ", + "ĠveÅĻej né", + "Ġvi tam", + "Ġvit am", + "Ġvita m", + "ĠبازÛĮ گر", + "ĠÑĢеÑĨеп ÑĤ", + "ĠìľĦ íķ´ìĦľ", + "ĠìľĦíķ´ ìĦľ", + "ĠØ£Ùĥ بر", + "Ġk üt", + "Ġkü t", + "민 주", + "Ġté ž", + "Ġ å¼ķ", + "Ġå¼ ķ", + "ÑĩаÑģ но", + "çļĦ åľ°", + "Ġarchit ekt", + "Ġбак ÑĤеÑĢ", + "Ġ ãģį", + "Ġ одеÑĢж", + "Ġо деÑĢж", + "Ġод еÑĢж", + "Ġتج ارÛĮ", + "éĿ Ī", + "Ġre cep", + "Ġrec ep", + "Ġrece p", + "é© ¶", + "Ġد ÙĩÙĩ", + "ĠدÙĩ Ùĩ", + "è² Į", + "çµIJ å©ļ", + "ılı ç", + "ãģĭãĤī ãģ¯", + "å¿ĥ éĩĮ", + "æĬķ è³ĩ", + "è² Ŀ", + "ĠкÑĥлÑĮÑĤÑĥ ÑĢÑĭ", + "ĠкÑĥлÑĮÑĤÑĥÑĢ Ñĭ", + "Ġ å°ij", + "Ġå° ij", + "à¹ģ à¸ŀร", + "à¹ģà¸ŀ ร", + "γ κÏĮ", + "γκ ÏĮ", + "ar ım", + "arı m", + "Ġاس اسÛĮ", + "Ġاساس ÛĮ", + "Ġposled nÃŃch", + "ĠposlednÃŃ ch", + "ĠÙħ ÙħÙĨ", + "ĠÙħÙħ ÙĨ", + "Ġпоз иÑĤив", + "Ġпози ÑĤив", + "ìł ¤", + "Ñĥ вавÑģÑı", + "Ñĥв авÑģÑı", + "Ñĥва вÑģÑı", + "Ñĥвав ÑģÑı", + "Ġجز ئ", + "ìĿ´ ìŀIJ", + "Ġин ÑģÑĤÑĢÑĥк", + "Ġη λεκ", + "Ġde mir", + "Ġdem ir", + "Ġdemi r", + "ä¸Ńæĸĩ åŃĹå¹ķ", + "Ġعاش ÙĤ", + "Ġب اÙĦÙĤ", + "Ġبا ÙĦÙĤ", + "ĠباÙĦ ÙĤ", + "Ġ maz", + "Ġm az", + "Ġma z", + "ά νι", + "άν ι", + "Ġ dÃ¼ÄŁ", + "Ġd Ã¼ÄŁ", + "Ġdü ÄŁ", + "Ġ κÏģα", + "Ġκ Ïģα", + "ĠбÑĥд ÑĤо", + "ç¦ı åĪ©", + "ĠпÑĢед назнаÑĩ", + "Ùħ ÙĦØ©", + "ÙħÙĦ Ø©", + "ĠбÑĥд инкÑĥ", + "Å¥ an", + "íķ Ģ", + "ç´¹ ä»ĭ", + "Ú© ز", + "ĠкаÑĦ ед", + "ãģ« è¦ĭ", + "าà¸ķร à¸IJาà¸Ļ", + "ë¡ľ ëĬĶ", + "i vÄĽ", + "iv ÄĽ", + "èĥ½ æºIJ", + "ï¼Į åħ¨", + "ĠÑĥ див", + "ĠÑĥд ив", + "Ġë§Į ëĤĺ", + "ÐĴ ÐIJ", + "ĠG ür", + "ĠGü r", + "ĠдÑĢÑĥг им", + "Ïĥ Ïį", + "Ġ oÄŁlu", + "ĠoÄŁ lu", + "Ġê°Ģ ê¹Į", + "ĠзнаÑĩ иÑĤелÑĮно", + "ĠзнаÑĩиÑĤ елÑĮно", + "о зÑĸ", + "оз Ñĸ", + "Ġm á»±c", + "ĠB eÅŁ", + "ĠBe ÅŁ", + "Ġ jezd", + "Ġje zd", + "á vÄĽ", + "áv ÄĽ", + "ÏĦη Ïĥε", + "ãģ¦ãģĦ ãģªãģĦ", + "ĠСв ÑıÑĤ", + "Ġम श", + "ĠΤ οÏħ", + "ĠΤο Ïħ", + "声 ãĤĴ", + "ĠÑģам ое", + "ĠÑģамо е", + "Ġ åĮº", + "ĠåĮ º", + "ĠìĤ¬ëŀĮ ìĿĢ", + "ĠÙħ ÙĦت", + "ĠÙħÙĦ ت", + "Ġj oker", + "Ġjo ker", + "Ġjoke r", + "Ġne ob", + "Ġneo b", + "ĠÑĤ ака", + "ĠÑĤак а", + "ĠÑĤа ка", + "ĠÙĩ Ùģت", + "Ġδε δο", + "ĠзаÑħ оп", + "ĠاÙĦÙħ خت", + "ез да", + "езд а", + "Ġíķľ ë²Ī", + "Ġع اÙħØ©", + "ĠعاÙħ Ø©", + "Ġdo state", + "Ġdost ate", + "Ġdostat e", + "Ġp lav", + "Ġpl av", + "Ġpla v", + "楽 ãģĹ", + ".;.; .;.;", + "в аÑĶ", + "ва ÑĶ", + "Ġbụ i", + "ĠÄij ỡ", + "ĠÄijá» ¡", + "Ġmys lÃŃ", + "Ġmysl ÃŃ", + "ĠÙĨ ار", + "Ġn út", + "Ġм ала", + "Ġмал а", + "Ġма ла", + "Τ Ρ", + "ĠاÙĦرÙħ زÙĬØ©", + "la dım", + "lad ım", + "ladı m", + "ä¸Ģ ç·Ĵ", + "ĠiÅŁ ç", + "l ivé", + "li vé", + "liv é", + "르 ê²Į", + "ан наÑı", + "ظËĨ Ø·", + "Ġd ừng", + "ÙĦÙĥ تر", + "çŃĶ æ¡Ī", + "ĠÙħÙĪÙĤع ÛĮت", + "ĠÑĸн озем", + "ĠиÑģ Ñĩ", + "Ġнеп ÑĢавилÑĮ", + "b akan", + "ba kan", + "bak an", + "Ġ çīĪ", + "Ġçī Ī", + "ен нÑİ", + "à¸ĩ à¹Ģศ", + "à¸Ħวาม à¸Ħ", + "% .Ċ", + "%. Ċ", + "à¹Ī à¹Ģà¸Ľ", + "ĠØ¢ بÛĮ", + "Ġآب ÛĮ", + "Ġst áty", + "Ġstát y", + "Ġتر تÛĮب", + "Äįem ž", + "Ġ é¹", + "Ġé ¹", + "Ġ ÙģاÙĦ", + "ĠÙģ اÙĦ", + "Ġbelir len", + "ĠâĨ ĺ", + "èĩ³ å°ij", + "ĠBun lar", + "Ġ ä¸ĵ", + "Ġä¸ ĵ", + "ĠÙħØŃ Ø§Ø³", + "ĠìĦľ ë²Ħ", + "Ġc anh", + "Ġcan h", + "Ġca nh", + "ĠпÑĢоÑĤ Ñıж", + "ĠнÑĸ меÑĨÑĮ", + "à¥Īà¤ł à¤ķ", + "ëĭ ī", + "Ġна неÑģ", + "Ġвоз ÑĢаÑģÑĤа", + "ĠвозÑĢаÑģÑĤ а", + "Ġ[âĢ¦ ]Ċ", + "Ġ[âĢ¦] Ċ", + ". à¸ŀ", + "ิ ศาสà¸ķร", + "ิศ าสà¸ķร", + "çģ ½", + "ê°Ļ ìĿĢ", + "ล à¸ĩà¸Ĺ", + "ลà¸ĩ à¸Ĺ", + "ãĤ± ãĥ¼ãĤ¹", + "Ġ ãĤ¢ãĤ¤", + "ĠãĤ¢ ãĤ¤", + "Ñģ Ñİ", + "ĠÙĦ ر", + "ãģĭ ãģ£ãģ¦", + "Ġ기 ë°ĺ", + "Ġ !:", + "Ġ! :", + "ĠÑģ ÑĬ", + "Ġ Ø´ÙĨاسÛĮ", + "ĠØ´ÙĨ اسÛĮ", + "ĠØ´ÙĨاس ÛĮ", + "ĠìķĦ 침", + "Ġعب اس", + "Ġ à¸ķà¸Ńà¸Ļ", + "Ġà¸ķ à¸Ńà¸Ļ", + "ĠмеÑĤал ли", + "ÑĪ ила", + "ÑĪи ла", + "Ġpod rob", + "Ġpodr ob", + "ÑĸÑģ но", + "Ġ 赤", + "Ġèµ ¤", + "c iler", + "ci ler", + "cil er", + "o zem", + "oz em", + "oze m", + "ĠоÑģнов нÑĭÑħ", + "Âł à¤ķ", + "à¸ĸ à¸Ļà¸Ļ", + "ан ÑĤаж", + "анÑĤ аж", + "анÑĤа ж", + "ĠD ÃŃky", + "Ġگذ ارÛĮ", + "æľº ä¼ļ", + "οÏħ λίοÏħ", + "οÏħλ ίοÏħ", + "оÑĩ ек", + "Ġнап иÑĤ", + "ĠبÛĮØ´ ترÛĮ", + "ĠبÛĮشتر ÛĮ", + "ä¾ į", + "ĠاÙĦ ÙħÙħ", + "ĠاÙĦÙħ Ùħ", + "ÙĪز ÙĬع", + "Ġgöz lem", + "è°ĥ æķ´", + "Âłm iles", + "Âłmi les", + "Ġk oc", + "Ġko c", + "ัà¸į ห", + "æ³ ³", + "ĠÎij γγ", + "ĠÎijγ γ", + "ĠÙĨÙħ از", + "ุ à¸Ĺ", + "ãĥı ãĤ¤", + "Ġth ù", + "к ÑĥлÑı", + "кÑĥ лÑı", + "кÑĥл Ñı", + "ĠпÑĥÑĤ ем", + "èĩº çģ£", + "Ġver gi", + "Ġverg i", + "åł´åIJĪ ãģ¯", + "ĠÑĤÑĢÑĮ оÑħ", + "Ġë³´ ë©´", + "âĸ ²", + "Ïħ γ", + "ĠдоÑĤ ÑĢим", + "æľ µ", + "Ġum ÄĽnÃŃ", + "èī¯ ãģĦ", + "Âł à¸Ļาà¸ĩ", + "Ðİ ÑĭÑŁN", + "ä¸ī 个", + "ียร à¸ķ", + "ï¼Į åIJĮæŶ", + "ĠÑĢозÑĢаÑħ Ñĥн", + "ĠD ers", + "ĠDe rs", + "ĠDer s", + "ãģª ãģ®", + "Ġê·¸ 를", + "d ikleri", + "dik leri", + "Ġhay ata", + "Ġhaya ta", + "Ġhayat a", + "è§Ħ èĮĥ", + "ç»ĵ åIJĪ", + "Ġs cé", + "Ġsc é", + "Ġc Æ¡m", + "ĠcÆ¡ m", + "åѸ éĻ¢", + "ĠÐĦ в", + "ĠÄįlán ek", + "ĠдоÑģÑĤ иг", + "ĠдоÑģÑĤи г", + "ा à¤ĩस", + "ाà¤ĩ स", + "εÏħ Ïĥη", + "éģ© çĶ¨", + "Ïĥ ον", + "Ïĥο ν", + "ıl maktadır", + "ëªħ ìĿĦ", + "ı b", + "Ġstar Å¡ÃŃ", + "Ġch ÃŃn", + "ĠchÃŃ n", + "ä¸Ģ 个人", + "ä¸Ģ个 人", + "ĠFranti Å¡ek", + "n ÄĽji", + "nÄĽ ji", + "ï» ¨", + "ĠÙĦÙĦ د", + "Ġp okoj", + "Ġpok oj", + "Ġj ih", + "Ġji h", + "ãĢį ãĢĤ", + "Ġعبد اÙĦ", + "ãĤĵãģ§ ãģĦãĤĭ", + "Ġмод елÑĮ", + "ĠteÅŁ kil", + "ĠÄĮ er", + "à¹Ģà¸Ķ à¸Ńร", + "' na", + "'n a", + "λο γή", + "λογ ή", + "Ġ kola", + "Ġk ola", + "Ġko la", + "Ġkol a", + "ãĥĢ ãĥ¼", + "иÑĤ елем", + "иÑĤе лем", + "ĠÏĥÏħ νο", + "ĠÏĥÏħν ο", + "ĠK urum", + "ĠKur um", + "ĠKu rum", + "Ġsnad no", + "ĠاÙĦÙĤر Ø¢ÙĨ", + "ĠV á»ģ", + "é«ĺ ãģĦ", + "Ġyıl dız", + "Ġbir isi", + "Ġbiri si", + "Ġkh úc", + "ÙĪ ÛĮÙĦ", + "ÙĪÛĮ ÙĦ", + "æľĢ ä½³", + "Ġส าà¸Ĥ", + "ĠÐŁ ок", + "ĠÐŁÐ¾ к", + "âī ł", + "à¹Ĥà¸Ľà¸£ à¹ģà¸ģรม", + "à¥įय यन", + "èij ¡", + "Ġn ovÄĽ", + "Ġno vÄĽ", + "Ġnov ÄĽ", + "ay ıp", + "ayı p", + "ĠSing ap", + "ĠSin gap", + "è° ĵ", + "ãĤ¶ ãĤ¤ãĥ³", + "Ġн овÑĭе", + "Ġнов Ñĭе", + "Ġh ảo", + "Ġ èŤ", + "ĠèĹ ¤", + "ãĥ³ ãĥĸ", + "ãĥ³ãĥ ĸ", + "Âł ĊĊ", + "ÂłĊ Ċ", + "θ εια", + "θε ια", + "Ġпоп ада", + "ĠëĶĶ ìŀIJìĿ¸", + "Ġداشت ÙĨد", + "ĠداشتÙĨ د", + "ĠØ´ÙĨ اختÙĩ", + "Ïĥ μαÏĦα", + "Ïĥμα ÏĦα", + "å¹³æĸ¹ åħ¬éĩĮ", + "Ġg öl", + "Ġgö l", + "ек оÑĤоÑĢ", + "еко ÑĤоÑĢ", + "Ġm álo", + "Ġmá lo", + "Ġاج ازÙĩ", + "Ú© اراÙĨ", + "کار اÙĨ", + "کا راÙĨ", + "ĠпÑĸдпÑĢиÑĶм ÑģÑĤв", + "ä¸ī å¹´", + "ĠسÙģ ÛĮد", + "ĠμÎŃ ÏģοÏĤ", + "ÐĻ ÐĻ", + "Ġh Æ°", + "س ÙĪب", + "سÙĪ ب", + "ĠÙĦ ذا", + "Ġnem ovit", + "Ġd ÃŃv", + "ĠdÃŃ v", + "Ä° s", + "¶ ¶", + "Ġph Æ°á»Ŀng", + "ĠÙĨØŃ ÙĪÙĩ", + "ĠÙĨØŃÙĪ Ùĩ", + "Ð ĭ", + "Ġz byt", + "Ġzb yt", + "Ġzby t", + "ed ii", + "edi i", + "n ech", + "ne ch", + "ĠадмÑĸнÑĸÑģÑĤÑĢа ÑĤив", + "Ġne vÄĽ", + "Ġnev ÄĽ", + "Ġ ож", + "Ġо ж", + "ĠÄIJ ó", + "à¸Ľà¸£à¸° ว", + "Ġvhod né", + "Ġum ÄĽl", + "ĠÑĢазлиÑĩ нÑĭе", + "ĠpÅĻi roz", + "Ġبخ Ø´ÛĮ", + "Ġبخش ÛĮ", + "ãģ® 大", + "ĠاÙĦ ÙĥÙĩ", + "ĠاÙĦÙĥ Ùĩ", + "ec ká", + "eck á", + "Ġzorun lu", + "ĠÐľÐ¸Ðº ола", + "Ġ amel", + "Ġa mel", + "Ġam el", + "к овÑĭе", + "ков Ñĭе", + ": :::/", + ":: ::/", + ":::: /", + "::: :/", + "ä¸įåIJĮ çļĦ", + "ĠÙĪÙĥ اÙĨت", + "ĠÙĪÙĥاÙĨ ت", + "à¸Ń à¸Ń", + "lá sil", + "ĠпÑĢедпол аг", + "ï½ ±", + "Ġ νε", + "Ġν ε", + "Ġн овÑĭй", + "Ġнов Ñĭй", + "Ġìĺģíĸ¥ ìĿĦ", + "Ġê°Ģ ì§Ħ", + "åĥ ħ", + "Y D", + "Ġب اغ", + "Ġبا غ", + "ĠØ´Ú© ست", + "Ġgü ney", + "Ġgün ey", + "и ÑģÑĮ", + "иÑģ ÑĮ", + "ãģĭ ãģªãģĦ", + "ãģĭãģª ãģĦ", + "ĠT òa", + "Ġگرد ÛĮد", + "Ġگر دÛĮد", + "ØŃ ÙĦ", + "lu vÃŃ", + "luv ÃŃ", + "v éd", + "vé d", + "Ġìĺ ·", + "Ġε ÏĢα", + "ĠεÏĢ α", + "ĠÑĤи ÑģÑıÑĩ", + "ĠÑĤиÑģ ÑıÑĩ", + "Ġê½ ĥ", + "ĠP US", + "ĠPU S", + "ĠдÑĥм кÑĥ", + "Ġ âĢĿĊ", + "ĠâĢĿ Ċ", + "ĠìĬ¤ íı¬ì¸ł", + "Ùĩ Ùĩ", + "Ġg ắng", + "Ġgắn g", + "ิ à¸łà¸²à¸ŀ", + "éĩĮ éĿ¢", + "br ıs", + "Ġz áb", + "Ġzá b", + "κ αÏĤ", + "κα ÏĤ", + "ĠåıĮ 线", + "ล ล", + "ĠÄIJ Ãłi", + "ĠÄIJÃł i", + "åѸ æł¡", + "ĠÑĢаÑģп ÑĢед", + "ĠÑģÑĤан еÑĤ", + "ĠÑģÑĤа неÑĤ", + "Ġл ак", + "Ġла к", + "Ġпод к", + "Ġg ören", + "Ġgö ren", + "Ġgör en", + "Ġgöre n", + "르 ê³ł", + "ĠÑĦ ÑĢÑĥкÑĤ", + "íĵ¨ íĦ°", + "ãģĻ ãĤĮãģ°", + "ãĤĴ ä½ľ", + "à¸Ńà¸Ńà¸ģ à¹ģà¸ļà¸ļ", + "Ġku lak", + "Ġkul ak", + "ĠíĶĮ ëłĪìĿ´", + "ĠØŃ Ø¯ÙĬØ«", + "ĠØŃد ÙĬØ«", + "ãģĨ ãĤĵ", + "Ġм Ñĸк", + "ĠмÑĸ к", + "à¤ĩस à¤ķ", + "ĠÑĥ ÑĤоÑĩ", + "ĠÑĥÑĤ оÑĩ", + "ĠÙĥ Ø«ÙĬر", + "ĠY ine", + "ĠYi ne", + "ĠYin e", + "ัว หà¸Ļ", + "н ÑĸÑĹ", + "нÑĸ ÑĹ", + "åį ¢", + "Ñĥ Ñģлов", + "ÑĥÑģ лов", + "ìĽĮ íģ¬", + "Ġà¤ħ à¤ĸ", + "ĠÑĨ Ñĸка", + "ĠÑĨÑĸ ка", + "ìĦł ìĿĦ", + "ĠØ£ ر", + "гал ÑĤеÑĢ", + "angl icky", + "ĠÑģ оÑģÑĥд", + "ĠÑģоÑģ Ñĥд", + "ĠÑĥ Ñıв", + "ĠпÑĢодÑĥк ÑĨÑĸÑĹ", + "Ġc hua", + "Ġch ua", + "Ġchu a", + "Ġd án", + "Ġdá n", + "ाम à¤Ĺ", + "ئ ت", + "ĠФ ед", + "Ġh rom", + "Ġhr om", + "íķ´ ë³´", + "ĠØ¢ÙĨ ÙĦاÛĮÙĨ", + "- пÑĢав", + "-п ÑĢав", + "Ġì¤ijìļĶ íķľ", + "Ġв кÑĥ", + "Ġвк Ñĥ", + "Ġ 大éĺª", + "Ġ大 éĺª", + "Ġt erk", + "Ġte rk", + "Ġter k", + "Ġпод Ñĸб", + "ĠвÑĸд вÑĸд", + "à¥Į à¤Ł", + "è³ £", + "Ġب تÙĨ", + "Ġبت ÙĨ", + "Ġبع ضÛĮ", + "Ġبعض ÛĮ", + "ãģª ãģĬ", + "ä»ĸ åĢij", + "Ġtavs iye", + "ĠM ısır", + "ĠØ¥ Ø°", + "Ġ æIJ", + "Ġæ IJ", + "íķĺ ëĤĺ", + "ĠÙĪ Ø®", + "ãĢĢ ĠãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢĠ ãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ", + "ãĢĢĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢĠãĢĢ", + "ãĢĢĠãĢĢĠãĢĢĠãĢĢĠãĢĢ ĠãĢĢ", + "Ġta kový", + "Ġtak ový", + "Ġtako vý", + "Ġबन न", + "Ġз ÑĢениÑı", + "ĠÙĪ ÙģÙĤ", + "ĠÙĪÙģ ÙĤ", + "ë¹Ħ ìķĦ", + "Ġпом ожеÑĤ", + "åĮĹ å¸Ĥ", + "dık ları", + "Ġ éĵģ", + "Ġéĵ ģ", + "Ġakt uálnÃŃ", + "Ġaktu álnÃŃ", + "Ġв в", + "ãĤĤ ãģªãģĦ", + "íĨµ ìĭł", + "ÏĦα Ïĥη", + "Ġìĥģ ëĮĢ", + "Ġ æł¡", + "Ġæł ¡", + "ãĢĤ éĤ£", + "ĠرÙĪسÛĮ Ùĩ", + "Ġtelev izyon", + "å¹´ é¾Ħ", + "ĠÐijоÑĢ иÑģ", + "리 ìĸ´", + "Ġz veÅĻej", + "ж но", + "ĠÐŀ ÑģÑĤ", + "ĠÐŀÑģ ÑĤ", + "ĠмÑĥж Ñĩин", + "Ġy eÅŁil", + "ĠСов еÑĤ", + "ĠСо веÑĤ", + "ĠB ÃĸL", + "ĠТак ож", + "Ġob nov", + "ĠпÑĢи надлеж", + "ĠвиÑģ нов", + "Ø· Ùħ", + "ĠìĹĨ ìĸ´", + "ĠM ùa", + "ä½ı å®ħ", + "åĮ» åѦ", + "Ġна ÑĢез", + "ĠнаÑĢ ез", + "ãĥĭ ï¾Ĩ", + "ĠM ặt", + "Ġvu ông", + "ä¸Ģ åĮº", + "ĠẢ nh", + "ÑĢ иÑĦ", + "ÑĢи ÑĦ", + "ä¿Ŀ éĻ©", + "ĠÏĩÏģή Ïĥη", + "åIJĮ æĦı", + "Ġ æīĵ", + "Ġæī ĵ", + "e tÄĽ", + "et ÄĽ", + "ĠÙĪ Ø°ÙĦÙĥ", + "ĠÑĤ иж", + "ĠÑĤи ж", + "ĠÎŁ ικο", + "ĠÎŁÎ¹ κο", + "ĠмÑĸÑģ ÑĨÑĸ", + "ĠÑĢебен ок", + "ĠÅŀ ah", + "عÙĦ ÙĪÙħ", + "l adıģ", + "la dıģ", + "lad ıģ", + "ladı ÄŁ", + "Ġg iden", + "Ġgi den", + "Ġgid en", + "лив оÑģÑĤÑĸ", + "ливо ÑģÑĤÑĸ", + "ÙĴ س", + "ĠT HB", + "ĠTH B", + "Ġmes lek", + "Âł ÐĿе", + "ÂłÐĿ е", + "μÏĨ Ïīνα", + "Ġ ÙĪاج", + "ĠÙĪ اج", + "ĠÙĪا ج", + "на ÑģлÑĸд", + "æĺŁ æľŁ", + "ÐĶ ж", + "ĠÑĢабоÑĤ аеÑĤ", + "ĠÑĢабоÑĤа еÑĤ", + "Ġs ánh", + "ìļ° 리", + "Ġا بÙĪ", + "Ġاب ÙĪ", + "çļĦ æĥħ", + "ĠìĻ¸ êµŃ", + "Ġk abil", + "Ġka bil", + "Ġkab il", + "еÑĢв Ñĭе", + "Ġgi Ãłu", + "ĠgiÃł u", + "Ġt á»ı", + "Ġtá» ı", + "Âł Ðij", + "å®Į æķ´", + "Ġmuž ů", + "ĠpomÄĽr nÄĽ", + "ĠÙħ خصÙĪص", + "ĠÐĶ ем", + "ãĤı ãĤĮãĤĭ", + "ãĤıãĤĮ ãĤĭ", + "ĠпÑĢи бÑĭ", + "ĠпÑĢиб Ñĭ", + "ĠکاÙħ Ù¾ÛĮ", + "ï¼ Ń", + "Ġt rh", + "Ġtr h", + "ĠÐij олÑĮÑĪ", + "´ :", + "и ваеÑĤÑģÑı", + "ив аеÑĤÑģÑı", + "ива еÑĤÑģÑı", + "иваеÑĤ ÑģÑı", + "Ġ ìĤ¬íķŃ", + "ĠìĤ¬ íķŃ", + "è¿Ľ ä¸ĢæŃ¥", + "ÑĨ ей", + "ÑĨе й", + "ãģ¾ ãģļ", + "аÑĤ елем", + "аÑĤе лем", + "éĮ ¯", + "Ġžal ob", + "ÑĨ ез", + "ÑĨе з", + "и нÑĥв", + "ин Ñĥв", + "инÑĥ в", + "Ġver ze", + "Ġve rze", + "Ġverz e", + "åĽŀ åĪ°", + "Ġd ược", + "ائ ÙĬÙĦ", + "ائÙĬ ÙĦ", + "sto upil", + "stoup il", + "论 æĸĩ", + "ĠÐŁ аÑĢи", + "ĠÐŁÐ°ÑĢ и", + "Ġдек оÑĢаÑĤив", + "اخ تÛĮ", + "اخت ÛĮ", + "ĠÑģÑĤ ÑĢем", + "ĠÑģÑĤÑĢ ем", + "ãĥ»âĶģãĥ»âĶģ ãĥ»âĶģãĥ»âĶģ", + "ĠÑģам ой", + "ĠÑģамо й", + "Ñĩ ÑĤо", + "ìĥģ ëĭ´", + "âī ¤", + "ÑĤ ого", + "ÑĤо го", + "ëIJ ¨", + "ı lacak", + "ıl acak", + "ä¸Ń ãģ«", + "ĠÏħÏĢάÏģÏĩ οÏħν", + "ĠвÑĸд бÑĥ", + "ĠвÑĸдб Ñĥ", + "çİ »çĴĥ", + "Ġвп еÑĢед", + "ĠPl zeÅĪ", + "Ú¯ اب", + "à¹Ģศ รษà¸IJ", + "ï¼Į æľĢ", + "Ùħ ÙĨÛĮ", + "ÙħÙĨ ÛĮ", + "çħ§ çīĩ", + "缮 å½ķ", + "ÑĢиÑĤ ÑĤÑı", + "âĢĮ اش", + "Ġ ëĮĢíļĮ", + "ĠëĮĢ íļĮ", + "ĠÅĻ adu", + "- ÑĤеÑħ", + "-ÑĤ еÑħ", + "Ġ ÙĬÙĪ", + "ĠÙĬ ÙĪ", + "Ġ à¹ģà¸ŀ", + "Ġà¹ģ à¸ŀ", + "ا ÙĥÙĨ", + "اÙĥ ÙĨ", + "Ġ기 ìŀIJ", + "Ġг Ñĸд", + "Ġìļ° 리ëĬĶ", + "Ġìļ°ë¦¬ ëĬĶ", + "Ø´ ÙħارÛĮ", + "Ø´Ùħ ارÛĮ", + "Ġt icari", + "Ġtic ari", + "âij ¢", + "ĠاÙĦ بد", + "ĠاÙĦب د", + "ĠÑĢаÑģ Ñĩ", + "Ġ اÙĦÛĮ", + "Ġا ÙĦÛĮ", + "ĠاÙĦ ÛĮ", + "Ġsü rede", + "Ġsür ede", + "Ġsüre de", + "Ġاع تر", + "Ġпо нÑıÑĤÑĮ", + "Ġпон ÑıÑĤÑĮ", + "γ κο", + "γκ ο", + "ï¼Į æ¯Ķ", + "ĠS eb", + "ĠSe b", + "Ġìĭł ê·ľ", + "æĶ¶ çĽĬ", + "ĠÙ¾ÛĮØ´ÙĨÙĩ اد", + "Îľ ÎijΤ", + "ÎľÎij Τ", + "ë°Ķ ìĿ´", + "ä¾Ľ åºĶ", + "б ин", + "би н", + "人 æ°Ĺ", + "ãģı ãĤī", + "Ġsk vÄĽl", + "Ġëĵ± ìŀ¥", + "æĭħ å½ĵ", + "Ġim kan", + "æ Ļ¨", + "æĻ ¨", + "ï¼Į çİ°åľ¨", + "Ġsrd ce", + "ìĤ° ìĹħ", + "Ġмод ели", + "æľ¬å½ĵ ãģ«", + "а нка", + "ан ка", + "анк а", + "Ġyür üy", + "ĠоÑĩ евид", + "ĠØŃ Ø³ÙĬÙĨ", + "ĠØŃس ÙĬÙĨ", + "Ñī аÑİÑĤ", + "Ñīа ÑİÑĤ", + "lé dl", + "léd l", + "ÑĨ о", + "ĠcÃŃ sa", + "ãģĭ ãģij", + "èĹ į", + "ĠØ®ÙĪاÙĩ ÙĨد", + "Ġmu že", + "Ġmuž e", + "Ġна коп", + "Ġнак оп", + "di ÄŁini", + "diÄŁi ni", + "er seniz", + "ers eniz", + "ersen iz", + "ĠпÑĢаÑĨÑĸв никÑĸв", + "д лÑı", + "Ġα ÏĥÏĦ", + "ĠαÏĥ ÏĦ", + "æ¶Ī è´¹", + "Ġ è¨Ģ", + "Ġè¨ Ģ", + "Ġb át", + "ĠØ´ ÙĥÙĦ", + "ĠÑģп иÑĢ", + "ÏĢο ÏĦε", + "Ġس اÙĦÙĩ", + "ĠساÙĦ Ùĩ", + "e kil", + "ek il", + "eki l", + "à¹ģ à¸Ĭม", + "ĠÏĥ ÏĦι", + "ĠÙħ Ø·ÙĦب", + "ĠÙħØ· ÙĦب", + "Ġìłķ ì±ħ", + "ê´Ģ ê³Ħ", + "å¹¹ ç·ļ", + "Ġ 京", + "éĢļ éģİ", + "ĠدÛĮ گراÙĨ", + "ĠدÛĮگر اÙĨ", + "ĠØ£ Ùħا", + "ĠØ£Ùħ ا", + "æĺ¯ ä¸į", + "ĠëĮĢ ëĭµ", + "ĠE rk", + "ĠEr k", + "p erty", + "per ty", + "pert y", + "ĠнаÑĩина еÑĤ", + "Ġê·¸ 리", + "ë£ ¡", + "ĠìĽ¹ ìĤ¬ìĿ´íĬ¸", + "ार न", + "æĦı è¯Ĩ", + "ĠС ÐŁ", + "Ġب اÙĬد", + "Ġبا ÙĬد", + "Ġbakım ından", + "/ TT", + "/T T", + "ĠÙģ اصÙĦÙĩ", + "ĠÙħØ« ÙĦا", + "ĠÙħØ«ÙĦ ا", + "Ġк вад", + "Ġкв ад", + "ĠØ´ اÛĮد", + "ĠuÄį itel", + "çĪ ½", + "Ġعرض Ùĩ", + "Ġ 交", + "ĠÑĩ еÑģÑĤÑĮ", + "ĠÑĩеÑģ ÑĤÑĮ", + "à¥Ī ?Ċ", + "à¥Ī? Ċ", + "ĠخاÙĨ Ùħ", + "et iyle", + "eti yle", + "Ġε γκα", + "ĠÑģÑĥ Ñīе", + "ĠìĿ¼ ìĸ´", + "ĠÐĽ ени", + "ĠÐĽÐµ ни", + "Ġ 声", + "Ġå£ °", + "á lie", + "ál ie", + "áli e", + "ãĥ¡ ãĥ¼ãĤ¸", + "à¥Ģ तर", + "à¥Ģत र", + "г алÑĸ", + "га лÑĸ", + "гал Ñĸ", + "ĠмÑĸ нÑĸм", + "ĠE ÅŁ", + "ĠпÑĢоиз оÑĪ", + "ÐĿ аÑģ", + "ÐĿа Ñģ", + "Ġب ÙĨÛĮ", + "ĠبÙĨ ÛĮ", + "让 æĪij", + "ĠпоÑģÑĤ еп", + "ĠìļĶ 구", + "ılı p", + "ıl ıp", + "Ġج ÙĪر", + "ĠجÙĪ ر", + "ĠëĮĢ ë¶Ģë¶Ħ", + "à¹ĩ à¸ķาม", + "à¹ĩà¸ķ าม", + "ĠÑĦ аÑģ", + "Ġìłķ ê·ľ", + "ла менÑĤ", + "лам енÑĤ", + "ÄŁ en", + "ÄŁe n", + "à¥ĩà¤Ĥ ĊĊ", + "à¥ĩà¤ĤĊ Ċ", + "ĠÐĺ ванов", + "ĠØŃ Ú©Ùħ", + "ĠØŃÚ© Ùħ", + "Ġ ï¾ļ", + "Ġï¾ ļ", + "ï¼ »", + "Ġne vid", + "Ġnev id", + "Ġла боÑĢаÑĤоÑĢ", + "à¸ŀย าà¸ļาล", + "Ġed iyorum", + "Ġediyor um", + "Ġhl avy", + "Ġhlav y", + "ĠEvrop ské", + "Ġph ái", + "Ġphá i", + "ãĥĵ ãĥ¼", + "ê´ij ìĹŃìĭľ", + "äº ľ", + "ØŃد اث", + "ĠпÑĢоÑĦ илакÑĤи", + "ro stÅĻed", + "rost ÅĻed", + "Ġм алÑĮ", + "Ġмал ÑĮ", + "Ġма лÑĮ", + "Ġmü dür", + "ا ساس", + "اس اس", + "ĠгалÑĥз Ñĸ", + "ี à¸Ł", + "Ġغذ اÛĮÛĮ", + "åŃIJ ä¾Ľ", + "Ġbah sed", + "ĠKrál ové", + "åį »", + "Ġ %,", + "Ġ% ,", + "ç½Ĺ æĸ¯", + "ë ļ", + "Ġ çij", + "Ġç ij", + "Ġξε ÏĦα", + "ĠÐŃ ÑĤи", + "ĠíĨµ íķ©", + "Ġاک تبر", + "ĠmÄĽsÃŃ ce", + "ìĪĺ ë¡ľ", + "ÑĦ Ñĸк", + "ÑĦÑĸ к", + "ĠÐĴ оз", + "ĠÐĴо з", + "ÑĩеÑģ ким", + "Ñĩе Ñģким", + "ÑĩеÑģки м", + "ìļ´ ëĵľ", + "Ġná klady", + "Ġnáklad y", + "ĠпоÑĤ ÑĢап", + "ĠÑĢÑĥ каÑħ", + "ĠÑĢÑĥк аÑħ", + "ι λο", + "ιλ ο", + "ĠG ül", + "ĠGü l", + "ë© ĺ", + "à¹ī ย", + "m akt", + "ma kt", + "mak t", + "ãĥ³ ãĥIJãĥ¼", + "ãĥ³ãĥIJ ãĥ¼", + "Ġн ÑĸÑı", + "ĠнÑĸ Ñı", + "ĠоÑĤ ÑĤен", + "m esinin", + "mes inin", + "mesi nin", + "mesini n", + "ĠвÑģп ом", + "Ġ ìĿ´ëĬĶ", + "ĠìĿ´ ëĬĶ", + "dy by", + "ãĤ¿ ãĥ³", + "âĹ İ", + "à¹īา หà¸Ļ", + "à¹īาห à¸Ļ", + "اد Ú¯ÛĮ", + "Ïĩ ία", + "Ġsna žÃŃ", + "Ġà¤ļ à¤ķ", + "μή μα", + "Ġ Ùĥر", + "ĠÙĥ ر", + "Ġκ οι", + "Ġκο ι", + "éĢ ¸", + "Ġne ust", + "Ġneu st", + "ĠÙĨظ اÙħÛĮ", + "ĠÙĨظاÙħ ÛĮ", + "åįļ çī©", + "Ġ ë²½", + "Ġë² ½", + "á½ ±", + "Ġì¶ľ ìĭľ", + "Ġar má", + "Ġarm á", + "ĠÙĩÙħ کارÛĮ", + "çļĦ æĥħåĨµ", + "çļĦæĥħ åĨµ", + "ÙĤ اÙħ", + "ÙĤ ب", + "Ġ éĤ£", + "ĠéĤ £", + "Ġë§ ¡", + "Ġo lası", + "Ġol ası", + "Ġola sı", + "β ÎŃÏģ", + "ä½ķ ãģĭ", + "ĠÑĥÑĩ еб", + "Ġв Ñĥз", + "Ġبر گز", + "Ġبرگ ز", + "' yi", + "'y i", + "Ġп ÑĢазд", + "ĠпÑĢа зд", + "ĠÐŀ ÑĢг", + "ĠÐŀÑĢ г", + "Ġ 并", + "Ġå¹ ¶", + "ĠÑģ ви", + "ĠÑģв и", + "ĠÙħÛĮ داÙĨ", + "ĠnaÅ¡e ho", + "ĠBA Åŀ", + "å» Ĭ", + "Ì Ī", + "ãģĵ ãģĿ", + "à¹ĩà¸Ļ à¸ŀ", + "οÏģ ειο", + "Ġбаг аÑĤ", + "γ ει", + "γε ι", + "μ είο", + "με ίο", + "à¹Īà¸ĩ à¸Ĭาà¸ķ", + "ĠHizmet leri", + "ĠAfr ika", + "ĠAf rika", + "Ġted bir", + ", 、", + "ä¸ī 级", + "ÐİÑĭÑŁN ÐİÑĭÑŁN", + "ĠÐļ ÑĢÑĸм", + "Ġa ray", + "Ġar ay", + "Ġara y", + "Ġböyle ce", + "к оÑĤ", + "ко ÑĤ", + "éĻ °", + "åĽ½ éļĽ", + "t ÄĽl", + "tÄĽ l", + "Ġp olis", + "Ġpol is", + "Ġpo lis", + "Ġu vol", + "Ġuv ol", + "ĠìĪĺ ê°ķ", + "çĶµ èĦij", + "Ġs ami", + "Ġsa mi", + "Ġsam i", + "Ġشاخ Ùĩ", + "Ġв ÑģÑĮого", + "ĠвÑģ ÑĮого", + "ĠØŃد اÙĤÙĦ", + "Ġ iken", + "Ġi ken", + "Ġik en", + "ãĤ¯ãĥ© ãĥĸ", + "Ġzá vod", + "Ġzáv od", + "ब ल", + "ë°° ìĨ¡", + "éĩĩ è´Ń", + "ëł ¬", + "Ġ ।ĊĊ", + "Ġ। ĊĊ", + "Ġ।Ċ Ċ", + "Ġê°ģ ê°ģ", + "Ġм ак", + "Ġма к", + "Ïģα Ïĥη", + "ĠiÅŁlem i", + "ãģĹ ãģ¦ãģĦãģ¾ãģĻ", + "ãģĹãģ¦ ãģĦãģ¾ãģĻ", + "ãģĹãģ¦ãģĦ ãģ¾ãģĻ", + "ĠP ek", + "ĠPe k", + "Ñİ Ð½", + "Ġvel kou", + "Ġvelk ou", + "åĬŀ çIJĨ", + "å®ĥ 们", + "Ġ èIJ¬", + "ĠèIJ ¬", + "ĠнаÑĢод Ñĥ", + "ĠнаÑĢ одÑĥ", + "Ġch ó", + "ĠH iç", + "ĠHi ç", + "Û³ Ûµ", + "Ġ รà¸Ńà¸ļ", + "Ġร à¸Ńà¸ļ", + "Û³ Û¶", + "à¸Ĥ ว", + "ä½į æĸ¼", + "ĠС ÑĤа", + "ĠСÑĤ а", + "ั à¸Ļม", + "ัà¸Ļ ม", + "ाप à¤ķ", + "ĠÑĥ ÑĢок", + "ãĤ¢ ãĥ¡ãĥªãĤ«", + "Ġз мож", + "Ġзм ож", + "sk ému", + "ské mu", + "ském u", + "Ġ è»Ĭ", + "Ġè» Ĭ", + "ĠاختÛĮ ار", + "ĠP Åĺ", + "л Ñıв", + "лÑı в", + "Ġ маз", + "Ġм аз", + "Ġма з", + "Ġözel liÄŁi", + "åij¼ ãģ°", + "Ġbir inin", + "Ġbiri nin", + "Ġод не", + "Ì Ĩ", + "ä»ĸ ãģ®", + "建 ç¯ī", + "поÑģ еÑĢед", + "ห ลà¸Ķ", + "หล à¸Ķ", + "å¤ļ ãģĦ", + "ÏĦή ÏĥειÏĤ", + "Ġر ÙĪÙĨد", + "ĠرÙĪ ÙĨد", + "èģ ½", + "ì¤ij ìĹIJ", + "ìĬ¤ íĭ°", + "Ġз вÑĸÑĤ", + "Ġзв ÑĸÑĤ", + "ĠаÑĢ ÑĤи", + "Ġc Æ°á»Ŀi", + "ĠcÆ° á»Ŀi", + "ın dır", + "ınd ır", + "Ġг олод", + "Ġгол од", + "ا زد", + "از د", + "à¹Īาว ว", + "ãĥ¡ ãĥ©", + "عÙĨ ÙĪاÙĨ", + "% )Ċ", + "%) Ċ", + "ĠÑħолод илÑĮ", + "人 们", + "C Ä°", + "ÐĹ Ð°Ð¿", + "ÐĹа п", + "ĠpÅĻ isp", + "ĠpÅĻi sp", + "Ġdurum larda", + "ÑĢ Ñĸд", + "ÑĢÑĸ д", + "Âł У", + "Ġε ÏĨαÏģ", + "Ġs prav", + "Ġsp rav", + "Ġspr av", + "ĠоÑĤÑĢим аннÑı", + "ï¼Į 没æľī", + "о вала", + "ов ала", + "ова ла", + "овал а", + "Ġng ại", + "ãĢĤ 大", + "Ġ даеÑĤ", + "Ġд аеÑĤ", + "Ġда еÑĤ", + "ĠpÃŃs em", + "ÑĨ ÑıÑĤÑĮ", + "ÑĨÑı ÑĤÑĮ", + "ov nÄĽ", + "ë¦ ī", + "Ġê² ģ", + "Ñģ ÑĤин", + "ÑģÑĤ ин", + "ÑģÑĤи н", + "ĠS ayı", + "ĠSa yı", + "ĠSay ı", + "ãĢĭ çļĦ", + "Ġyol uyla", + "Ġyolu yla", + "елеÑĦ он", + "Ġr áno", + "Ġrá no", + "Ġíĸī ëıĻ", + "ĠاÙĦخاÙħ سة", + "Ġповин на", + "ÅĻ ila", + "ÅĻi la", + "ÅĻil a", + "Ġà¤ļ रण", + "Ġà¤ļर ण", + "Ġبرگ زار", + "Ġبرگز ار", + "ìļ´ ëį°", + "à¹Ģà¸Ľ à¸Ńร", + "Ġdal eko", + "led nÃŃ", + "åIJį 稱", + "лив ÑĸÑģÑĤÑĮ", + "ливÑĸ ÑģÑĤÑĮ", + "Ġ몸 ìĿĦ", + "о ÑĢÑĸв", + "оÑĢ Ñĸв", + "оÑĢÑĸ в", + "Ц е", + "بد Ø£", + "ë°ĺ 기", + "k rát", + "kr át", + "ä¸į 足", + "Ġolduk ları", + "len iyor", + "Ġìĭľ íĸī", + "ĠпÑĢи нимаÑĤÑĮ", + "à¸Ĥà¸Ńà¸ĩ ร", + "ÏĪ ει", + "ÏĪε ι", + "Ġ ẩn", + "ت س", + "ĠÑĤ ай", + "ĠÑĤа й", + "Ġнев озможно", + "åıĬ ãģ³", + "r oti", + "ro ti", + "rot i", + "ï½ Ń", + "д ом", + "до м", + "ой но", + "å£ Ĭ", + "说 çļĦ", + "Ġsk oro", + "ni ÄįnÃŃ", + "niÄį nÃŃ", + "ĠProf es", + "ĠÑħ ÑĢониÑĩеÑģ", + "Ġ주 문", + "ĠZ n", + "ĠÑģ лой", + "ĠÑģл ой", + "ĠÑģло й", + "Îł Ïģο", + "æĮĩ æķ°", + "ĠпеÑĢ еÑĪ", + "ĠпеÑĢе ÑĪ", + "à¥ģà¤ķ स", + "Ġê°Ģ ìłķ", + "Ġ íķĺë©´", + "Ġíķĺ ë©´", + "Û±Û¹ Û´", + "к Ñĥл", + "кÑĥ л", + "ÙĬ ÙĦا", + "ÙĬÙĦ ا", + "ĠدÙĪب ارÙĩ", + "| l", + "ĠÐľ Ñĥ", + "н ила", + "ни ла", + "нил а", + "ãģ¦ ãģĦãģ¾ãģĻ", + "ãģ¦ãģĦ ãģ¾ãģĻ", + "m acı", + "ma cı", + "mac ı", + "ãģŁ ãģ¡ãģ¯", + "ãģŁãģ¡ ãģ¯", + "ĠاÙĦÙĥ تاب", + "移 åĭķ", + "λ μ", + "_ ï¼ı", + "Ġê°Ģ ìŀħ", + "èħ ¾", + "ĠпÑĢез иденÑĤ", + "Ġë¶Ħ ìķ¼", + "a hy", + "ah y", + "Å¡et ÅĻenÃŃ", + "Å¡etÅĻ enÃŃ", + "éĵ º", + "ĠpÅĻÃŃ ro", + "Ðķ Т", + "ĠìļĶ ì²Ń", + "Ġmoh lo", + "Ġmohl o", + "å¿ĥ çIJĨ", + "Ġvysok é", + "& uuml", + "ÏĦ ικα", + "ÏĦικ α", + "ÏĦι κα", + "ìĹħ ì²´", + "ãģ§ ãģĤ", + "ราย à¸ĩาà¸Ļ", + "ĠpÅĻÃŃspÄĽ v", + "Ġet miÅŁtir", + "Ġetm iÅŁtir", + "ĠetmiÅŁ tir", + "她 们", + "ÏĢ λα", + "ÏĢλ α", + "ứ a", + "Ġ 说", + "Ġè¯ ´", + "ĠÑģо Ñģед", + "ĠÑģоÑģ ед", + "åĩ ī", + "ĠÐł е", + "åİŁ æĿ¥", + "ĠÐIJÑĢ Ñħ", + "ب ÙĬÙĨ", + "بÙĬ ÙĨ", + "åľ° 说", + "Ġ ört", + "Ġö rt", + "Ġör t", + "ĠΣ εÏĢ", + "ĠΣε ÏĢ", + "ÂŃ ÙĩاÛĮ", + "ĠاÙĦ اÙĤتص", + "å°½ 管", + "ÑĤ Ñĭй", + "ÑĤÑĭ й", + "t ains", + "ta ins", + "tain s", + "ÙĢ ÙĦ", + "ç§ijæĬĢ æľīéĻIJåħ¬åı¸", + "æı ®", + "ัà¸ķ à¸ĸ", + "á»Ĺ ng", + "ล าà¸Ķ", + "ลา à¸Ķ", + "æļ ®", + "ĠÙĨÙģ سÙĩ", + "ĠÙĨÙģس Ùĩ", + "Ġ çľĭ", + "Ġçľ ĭ", + "Ġ ãģ¿", + "Ġt arım", + "Ġtar ım", + "Û±Û¹ Ûµ", + "ĠÎ Ĭ", + "Ġkom plex", + "Ġkomple x", + "Ġkomp lex", + "ĠNh Ä©", + "è´¹ çĶ¨", + "Ġکاربر اÙĨ", + "ÅĪ ovánÃŃ", + "Ġ ků", + "Ġk ů", + "д ап", + "да п", + "Îķ Χ", + "ê·¸ ëŀĺ", + "Ġdön dü", + "人 åĵ¡", + "ĠT iá»ĥu", + "ĠÙĪÛĮر اÛĮØ´", + "Ġö ngör", + "ĠÙĪ غÙĬر", + "ĠÑģ кÑĢÑĭ", + "ĠÑģк ÑĢÑĭ", + "âĢIJ '", + "Ġ немÑĥ", + "Ġн емÑĥ", + "Ġне мÑĥ", + "Ġнем Ñĥ", + "ĠH á»ĩ", + "ĠHá» ĩ", + "Ġdüzen li", + "ĠsoutÄĽ že", + "ãĢģ ãĥŀ", + "ÏĦο μα", + "ÄĽ lÃŃ", + "ÄĽl ÃŃ", + "ĠØ£ ÙĦÙħاÙĨ", + "ĠØ£ÙĦ ÙħاÙĨ", + "çł ²", + "Ġtr Ãł", + "Ġ ä¸ĸçķĮ", + "Ġä¸ĸ çķĮ", + "ay ız", + "ayı z", + "ım lı", + "ĠاÙĦØ£ Ùģ", + "íķĺ ëĬĶëį°", + "íķĺëĬĶ ëį°", + "в ано", + "ва но", + "ван о", + "ĠpÅĻi Äįemž", + "Ùĥ ÙĬب", + "ÙĥÙĬ ب", + "ĠмаÑĤ емаÑĤи", + "м ени", + "мен и", + "ме ни", + "ĠпÑĢо екÑĤÑĥ", + "ĠпÑĢоек ÑĤÑĥ", + "ĠпÑĢоекÑĤ Ñĥ", + "ี à¹Ĥà¸Ń", + "ีà¹Ĥ à¸Ń", + "о Ñĥ", + "ĠاÙĦ شرÙĥØ©", + "ĠاÙĦشر ÙĥØ©", + "æ³ £", + "ÙĪÙĤ ÙĬت", + "ÑĪ ив", + "ÑĪи в", + "Ġperson el", + "Ġpersone l", + "Ġperso nel", + "Ø´ تر", + "شت ر", + "à¸Ķ า", + "Ġë ª½", + "Ġëª ½", + "åĿIJ åľ¨", + "о ке", + "ок е", + "Ġë§Ī ë²ķ", + "ĠØ£ ÙĨا", + "ĠØ£ÙĨ ا", + "ëł µ", + "ĠÙħب اÙĨÛĮ", + "èĭ ¹æŀľ", + "Ġ ศร", + "Ġศ ร", + "ĠÐĽ ÑĥÑĩ", + "ĠÐĽÑĥ Ñĩ", + "ÎŁ ΥΣ", + "ÎŁÎ¥ Σ", + "ĠÄį á", + "ãģĽ ãģ¦", + "Ġk Ä±ÅŁ", + "Ġkı ÅŁ", + "ÑĪ ев", + "ÑĪе в", + "æĮĩ 导", + "à¹ģละ ม", + "Ġvol eb", + "Ġvole b", + "ĠÑģи лÑĭ", + "ĠÑģил Ñĭ", + "Ġdruh ou", + "Ġdru hou", + "Ġ ì°¬", + "Ġì° ¬", + "ĠìŀĪ ìĿĮ", + "Î¥ Σ", + "ä¸į å®ī", + "Ġ ìĹĨìĿĮ", + "ĠìĹĨ ìĿĮ", + "Ġde term", + "Ġdet erm", + "Ġdeter m", + "ĠاÙĦÙħ عÙĦÙĪÙħات", + "íĺ ¹", + "âĻ ¡", + "à¥įब न", + "Ġخش Ú©", + "ĠN ová", + "ĠNo vá", + "ĠNov á", + "ĠÑĦÑĥнда менÑĤ", + "ĠпÑĢогÑĢам и", + "ĠпÑĢогÑĢа ми", + "ĠпÑĢог ÑĢами", + "ĠعÙĦ ÙĬÙĥ", + "ĠعÙĦÙĬ Ùĥ", + "। ĊĊ", + "।Ċ Ċ", + "Ġver iyor", + "Ġveri yor", + "Ġ ÑĶв", + "ĠÑĶ в", + "ĠìŀĪ ëĭ¤ê³ł", + "ĠìŀĪëĭ¤ ê³ł", + "ĠاÙĦØ£Ùħ رÙĬÙĥÙĬ", + "ĠاÙĦØ£Ùħر ÙĬÙĥÙĬ", + "Ġå¤ĸéĥ¨ ãĥªãĥ³ãĤ¯", + "Ġ ä¿®", + "Ġп ÑĥÑĤи", + "ĠпÑĥÑĤ и", + "ĠпÑĥ ÑĤи", + "Ġο Ïģγ", + "ĠоÑģнов ном", + "Ġ наÑĢÑĥж", + "Ġна ÑĢÑĥж", + "ĠнаÑĢ Ñĥж", + "Ġми ÑĢе", + "ĠмиÑĢ е", + "o vÄĽt", + "ov ÄĽt", + "ovÄĽ t", + "Ġíĥ IJ", + "Ġsok ak", + "Ġspolup ráci", + "ÐĶ Ðļ", + "Ġ åĺ", + "Ġå ĺ", + "âĸįâĸįâĸįâĸįâĸįâĸįâĸįâĸį âĸįâĸįâĸįâĸįâĸįâĸįâĸįâĸį", + "Ġ ³³³³", + "ĠÂł ³³³", + "Ġ³³ ³³", + "Ġ³³³ Âł", + "Ġhay ır", + "Ġ ìĻĶ", + "ĠìĻ Ķ", + "æĤ¨ çļĦ", + "æĮ º", + "Ġ 민주", + "Ġ민 주", + "Ġhot elu", + "Ġhotel u", + "ี à¸ľ", + "ìŀIJ ëıĻ", + "ä¼¼ çļĦ", + "ÎŃν ÏĦÏģο", + "ÎŃνÏĦ Ïģο", + "Ø´ ÙĪ", + "Ġ é¤", + "Ġé ¤", + "Ġ λι", + "Ġλ ι", + "Ġol maktadır", + "Ġolmak tadır", + "ĠоÑģ веÑī", + "Ġв ина", + "Ġви на", + "Ġвин а", + "Ġخاص Ø©", + "r ana", + "ra na", + "ran a", + "γÏģα ÏĨή", + "γÏģαÏĨ ή", + "ÑĨ еÑģ", + "ÑĨе Ñģ", + "ĠdoÄŁru lt", + "ĠdoÄŁr ult", + "ĠÙĤرار داد", + "ĠÙĤرارد اد", + "ĠÐļ ал", + "ĠÐļа л", + "ê²½ ìłľ", + "Ïĩ ÏĮ", + "Ñĥ ÑİÑīий", + "ÑĥÑİ Ñīий", + "ÑĥÑİÑī ий", + "ëĭ ĺìĿ´", + "ëĭĺ ìĿ´", + "ë Į", + "л аз", + "ла з", + "Ġng ừng", + "i sku", + "is ku", + "isk u", + "ìĦł ê±°", + "ĠÑįлек ÑĤÑĢон", + "ĠÑįлекÑĤÑĢ он", + "ĠV oj", + "ĠVo j", + "н Ñıми", + "нÑı ми", + "ĠÙĪ Ø£ÙĨ", + "ĠÙĪØ£ ÙĨ", + "äº Ń", + "绣 计", + "ĠÅŁ iÅŁ", + "ĠÅŁi ÅŁ", + "ãĢį çļĦ", + "æŃ ¯", + "Ġкол лек", + "Ġд виж", + "Ġдв иж", + "Ġдви ж", + "Ġn á»Ńa", + "Äįas ÃŃ", + "Ġs onu", + "Ġso nu", + "Ġson u", + "ĠмеÑħ анÑĸз", + "ž ený", + "že ný", + "žen ý", + "Ġза ÑģÑĤÑĥп", + "ĠзаÑģÑĤ Ñĥп", + "ê´Ģ 볨", + "ĠÑĤоваÑĢ Ñĸв", + "ĠÑĤов аÑĢÑĸв", + "Ġ ì¼ĢìĿ´", + "Ġì¼ ĢìĿ´", + "à¥ģà¤Ĺ त", + "Ġzá sob", + "мов ÑĸÑĢ", + "u fac", + "uf ac", + "ů ležit", + "Ġви гоÑĤов", + "Ġвиг оÑĤов", + "ĠاÙĦÙĨ ÙĪ", + "Ġع اÙħا", + "ĠعاÙħ ا", + "æģ ¨", + "ĠìĿ´ë¯¸ ì§Ģ", + "Ġt voÅĻ", + "Ġtv oÅĻ", + "Ġvyu žitÃŃ", + "Ġgel iÅŁim", + "ĠgeliÅŁ im", + "ì³ ¤ëĭ¤", + "หà¸Ļ à¸Ńà¸ĩ", + "ĠìĿ¸ ìłķ", + "à¥į दर", + "à¥įद र", + "ĠпеÑĢед а", + "ĠпеÑĢе да", + "ĠздÑĸйÑģ неннÑı", + "ÙĨ ع", + "è¡£ æľį", + "Ġl oa", + "Ġlo a", + "íĻ Ī", + "èĭ± åĽ½", + "ĠD ruh", + "ĠDr uh", + "Ø® اÙĨ", + "д ам", + "да м", + "аÑĤелÑĮ нÑĭÑħ", + "θ ÏģÏİ", + "ĠØ£ Ùħر", + "ĠØ£Ùħ ر", + "ĠÅĻ ada", + "Ġbul uÅŁ", + "ĠÑĤÑĢанÑģп оÑĢ", + "ĠÑĤÑĢанÑģ поÑĢ", + "ĠÙĤ تÙĦ", + "ĠTa rif", + "ĠTar if", + "R us", + "Ru s", + "ĠзаÑģ Ñĸд", + "ĠÄ° h", + "l eyin", + "ley in", + "Ġvy rá", + "ĠD ÄĽ", + "иб ли", + "a vou", + "av ou", + "avo u", + "ĠÐĵеÑĢ м", + "н емÑĥ", + "не мÑĥ", + "нем Ñĥ", + "Ġкон ÑĨеп", + "ĠконÑĨе п", + "ĠÙĤ ادر", + "Ġsou bor", + "Ġl á»iji", + "Ġ çµIJ", + "Ġçµ IJ", + "л еннÑĭй", + "лен нÑĭй", + "κ Ïħ", + "Ġдопом аг", + "à¸ŀวà¸ģ à¹Ģà¸Ĥ", + "Ġqu ang", + "Ġq uang", + "Ġqua ng", + "Ġquan g", + "ĠØ· ÙĦا", + "ĠØ·ÙĦ ا", + "Ġ éĩĮ", + "Ġé ĩĮ", + "Ġéĩ Į", + "ĠÙĨÙħÙĪد ار", + "ĠÅŁ ar", + "ĠÑģп Ñĸл", + "ÂŃ n", + "ì§Ģ ìļĶ", + "åīį å¾Ģ", + "åħ³ éĶ®", + "å®ŀ åľ¨", + "éŁ³ 楽", + "ĠÙħسئ ÙĦÙĩ", + "Ġy eme", + "Ġye me", + "Ġyem e", + "ĠÑĪ аÑħ", + "기 ìĪł", + "Ġ สำà¸Ļ", + "Ġสำ à¸Ļ", + "ĠÙĪرزش ÛĮ", + "ĠÙĪرز Ø´ÛĮ", + "ãģĹ ãģŁãĤī", + "ãģĹãģŁ ãĤī", + "ί ÏĥÏī", + "ίÏĥ Ïī", + "о кон", + "ок он", + "око н", + "ãģŁ ãĤī", + "ĠØ¥ ÙĦÙĬÙĩ", + "ĠØ¥ÙĦÙĬ Ùĩ", + "ĠØ¥ÙĦ ÙĬÙĩ", + "Ġآذ رب", + "Ġr á»Ŀi", + "Ġod ak", + "Ġм огÑĥ", + "Ġмог Ñĥ", + "Ġмо гÑĥ", + "ĠÚ¯ ÙĨ", + "è² ¼", + "ed la", + "edl a", + "Ġоп ÑĭÑĤ", + "la maktadır", + "lamak tadır", + "å°¼ äºļ", + "éĥ½ ä¼ļ", + "ĠÎĺε ÏĥÏĥα", + "Ġв ог", + "Ġво г", + "ç»Ī äºİ", + "ĠÑĥÑĢов не", + "Ġv lak", + "Ġvl ak", + "ĠØ¢ ÙĦØ©", + "ĠØ¢ÙĦ Ø©", + "Ġε ιδ", + "Ġει δ", + "â ĩ", + "д ÑĥÑĤ", + "дÑĥ ÑĤ", + "Ñĸ нг", + "Ñĸн г", + "ĠØ£Ùħ رÙĬÙĥÙĬ", + "ĠØ£Ùħر ÙĬÙĥÙĬ", + "از ÙĨد", + "Ġب اÙĦØ£", + "ĠباÙĦ Ø£", + "Ġत न", + "Ġkay det", + "룬 리", + "Ġ drž", + "Ġd rž", + "Ġdr ž", + "Ġп енÑģ", + "Ġпен Ñģ", + "ĠpÅĻÃŃ Äį", + "ĠТ олÑĮко", + "Ġб аÑĤаÑĢ", + "Ġба ÑĤаÑĢ", + "éĵģ è·¯", + "ĠÙ¾ÛĮ ÚĨ", + "ĠÎĵ εÏī", + "ĠαÏħ ÏĦά", + "Äŀ I", + "ĠакÑĤив но", + "ÎĹ ÎľÎij", + "ÎĹÎľ Îij", + "Ġvar lık", + "Ġ åıª", + "Ġåı ª", + "ĠзаÑī иÑĤÑĭ", + "ĠзаÑīиÑĤ Ñĭ", + "л им", + "ли м", + "ĠÙħشاÙĩ دة", + "и ком", + "ик ом", + "Ġì¡° ìĤ¬", + "о ген", + "ог ен", + "Ġm ấy", + "g ii", + "gi i", + "èĽ ĩ", + "ĠØ® ÙĪÛĮØ´", + "ĠØ®ÙĪ ÛĮØ´", + "Ġn ová", + "Ġno vá", + "Ġnov á", + "к овой", + "ков ой", + "ково й", + "Ġkan ıt", + "Ġkanı t", + "éĿ¢ è®®", + "ĠرÙĪست ا", + "ìĸ´ ê°Ģ", + "ĠоÑĤноÑĪ ениÑı", + "Ġhodnot y", + "ÙĪ رات", + "ÙĪر ات", + "ÙĪرا ت", + "ĠpÅĻ ÃŃst", + "ĠpÅĻÃŃ st", + "Ġth á»į", + "Ġthá» į", + "Ġçık art", + "Ġçıkar t", + "Ġçı kart", + "о обÑĢаз", + "Ġnem ÄĽl", + "Âł ro", + "ĠدÙĪÙĦ تÛĮ", + "ĠدÙĪÙĦت ÛĮ", + "ี ,", + "ä¸Ģ 度", + "ia omi", + "iao mi", + "åĹ İ", + "Ùı ع", + "ĠваÑĢи ан", + "Ġpod aÅĻilo", + "ĠëĤĺ ê°Ģ", + "èIJ¥ ä¸ļ", + "ĠабÑģолÑİÑĤ но", + "Ġë¸Į ëĿ¼", + "ĠгоÑĢ из", + "a ģın", + "aÄŁ ın", + "aģı n", + "Ġyer ini", + "Ġyeri ni", + "à¹īา à¸Ļà¸Ķ", + "à¹īาà¸Ļ à¸Ķ", + "æIJ ¬", + "Ġb alık", + "Ġbal ık", + "Ġba lık", + "ĠÅŁ ans", + "认 è¯Ĩ", + "Ġistedi ÄŁiniz", + "Ġjist ÄĽ", + "Ġ ìĪĺê°Ģ", + "ĠìĪĺ ê°Ģ", + "ï¼Į ä¸Ĭ", + "à¤ľ ब", + "Ġви Ñıви", + "ĠвиÑıв и", + "ë§ ¥", + "ãģĹ ãģ¦ãĤĭ", + "ãģĹãģ¦ ãĤĭ", + "ÙĬÙĥ ا", + "ĠH üs", + "c ının", + "Ġश त", + "ĠÑĢаÑģп олаг", + "ĠÑģпÑĢав ж", + "ืà¸Ń à¸ĸ", + "ĠвеÑĢ ÑĤик", + "Ġvy stav", + "ĠÑĢе алÑĸзаÑĨÑĸÑĹ", + "в ами", + "ва ми", + "ãĤ¹ ãĥĨãĤ£", + "ãĤ¹ãĥĨ ãĤ£", + "ëħ ģ", + "ĠÑĢе ÑĩÑĸ", + "ĠÑĢеÑĩ Ñĸ", + "Ùģ اÙĦ", + "िà¤ķ à¤Ł", + "ĠвозÑĢаÑģÑĤ е", + "к аÑģ", + "ка Ñģ", + "ĠÐĺ Ñģ", + "Ġл Ñĸк", + "ĠлÑĸ к", + "ĠÏĥη μαν", + "м енÑĤÑĥ", + "мен ÑĤÑĥ", + "менÑĤ Ñĥ", + "н ÑıÑİÑĤ", + "нÑı ÑİÑĤ", + "æŁ ´", + "Ġθ εÏī", + "Ġθε Ïī", + "çĬ¯ 罪", + "ĠÙĤ طر", + "ĠÙĤØ· ر", + "ÐĶ ÐIJ", + "- |", + "Ġ ÑģÑĤÑĸ", + "ĠÑģ ÑĤÑĸ", + "ĠÑģÑĤ Ñĸ", + "Ġu yum", + "Ġuy um", + "Ġpot ÅĻeba", + "ĠpotÅĻeb a", + "ĠعÙħÙĦ ÛĮات", + "ĠعÙħÙĦÛĮ ات", + "å¥ ª", + "ا خر", + "اخ ر", + "ĠÚ© ساÙĨÛĮ", + "ت Ùħر", + "تÙħ ر", + "ÑĮ еÑĢ", + "ÑĮе ÑĢ", + "ĠN ez", + "ĠNe z", + "íļĮ ìĤ¬", + "ĠBank ası", + "е гÑĢа", + "ег ÑĢа", + "à¸Ĥà¸ĵะ à¸Ĺ", + "åIJĪ æł¼", + "ĠìŬ룬 ë¶Ħ", + "y asal", + "ya sal", + "yas al", + "Ġ è¡ĮæĶ¿", + "Ġè¡Į æĶ¿", + "åĬ ī", + "dık tan", + "ãĤ¢ãĥ« ãĥIJ", + "ĠاÛĮÙĨ ÚĨ", + "Ġdij ital", + "å° ĺ", + "ĠÑĢаз меÑī", + "ĠÑĢазм еÑī", + "ĠкÑĸлÑĮ коÑģÑĤÑĸ", + "ĠEv ropy", + "ĠEvrop y", + "ĠÑĢоз ви", + "ÑİÑī ÑĥÑİ", + "Ġ ong", + "Ġo ng", + "Ġon g", + "Ġhe psi", + "Ġhep si", + "v ailability", + "vail ability", + "Ġتص ÙħÙĬÙħ", + "ĠتصÙħ ÙĬÙħ", + "Ñĥ йÑĤе", + "Ñĥй ÑĤе", + "ह ल", + "ĠÅ¡ iro", + "Ġp ás", + "Ġpá s", + ";; ;;;;", + ";;;; ;;", + ";;; ;;;", + "éħį åIJĪ", + "ĠاÙĦعاÙĦÙħ ÙĬØ©", + "ÐĴ о", + "h af", + "ha f", + "l áv", + "lá v", + "Ġb ì", + "Ġm ůj", + "Ġmů j", + "ê»ĺ ìĦľ", + "ÂłB f", + "ĠÑģпÑĢоÑģ ил", + "âĢĮÚ©ÙĨ ÙĨدÙĩ", + "âĢĮÚ©ÙĨÙĨد Ùĩ", + "ÙĨد ÙĬØ©", + "ÙĨدÙĬ Ø©", + "çī¹ èī²", + "Ġìķ ¨", + "ุษ ย", + "ĠФ оÑĢ", + "пиÑģ ок", + "пи Ñģок", + "u žel", + "ım lar", + "çĬ¶ æ³ģ", + "Ġãĥ¬ ãĥĩãĤ£ãĥ¼ãĤ¹", + "Ñħ ови", + "Ñħов и", + "Ñħо ви", + "ÂłK Äį", + "Ñĩ им", + "Ñĩи м", + "Ġت ÙĪÙħ", + "ĠتÙĪ Ùħ", + "à¹Ģà¸ģษ à¸ķร", + "Ġìĭ± ê¸Ģ", + "Ùħ ارات", + "Ùħا رات", + "Ùħار ات", + "ê nh", + "ên h", + "ĠÅĻ id", + "æĬ ¬", + "Ñģ иÑİ", + "Ñģи Ñİ", + "æħ İ", + "Ġçev re", + "Ġçevr e", + "ãĥĪ ãĥ«", + "Ġyıl dır", + "Ġzá znam", + "Ġzáz nam", + "æľº åľº", + "Ġпо ÑĶ", + "ĠвÑĭ ÑĢаÑīи", + "Ġ Ùģع", + "ĠÙģ ع", + "ë »", + "Ġدار ÛĮÙħ", + "ï¼Į æĽ´", + "Ġзем ли", + "اب ÙĤات", + "ابÙĤ ات", + "Ġm á»Ŀi", + "Ġmá» Ŀi", + "k ých", + "ký ch", + "ÙĦ اة", + "ÙĦا Ø©", + "å¸ ½", + "بر اÙĩÙĬÙħ", + "Ġпо баÑĩ", + "Ġпоб аÑĩ", + "Ġпоба Ñĩ", + "ाà¤ĩ म", + "à¹Īาà¸ĩ à¸Ľà¸£à¸°à¹Ģà¸Ĺศ", + "ĠìĦ¸ ìĥģ", + "Ġпомог аеÑĤ", + "ĠÏĦÏĮ Ïĥο", + "æĸ ·", + "ĠÙģر اÙĪ", + "à¹Ħà¸Ľ ย", + "erg isi", + "Ġ éĻIJ", + "ĠéĻ IJ", + ". xz", + ".x z", + "ĠÑģл ÑĥÑħ", + "ĠÑģлÑĥ Ñħ", + "е коном", + "ек оном", + "еко ном", + "ĠNh ất", + "± Ø·", + "ĠëĪĪ ìĿĦ", + "Ġ íļĮìĤ¬", + "ĠíļĮ ìĤ¬", + "Ñ ĵ", + "Ġ åIJįçĦ¡ãģĹ", + "ĠåIJį çĦ¡ãģĹ", + "Ġομά δα", + "ĩ Į", + "li ÄŁinin", + "liÄŁi nin", + "liÄŁ inin", + "liÄŁini n", + "liÄŁin in", + "ع اÙĨ", + "عا ÙĨ", + "Ġز ÙĨÛĮ", + "ĠزÙĨ ÛĮ", + "T ôi", + "Ġet ki", + "Ġetk i", + "ĠìĹ° ëĿ½", + "Ġкон ÑĨа", + "è° ĭ", + "Ġзем лÑı", + "íĻĺ ê²½", + "ĠÙħÚ© اÙĨÛĮ", + "ĠÙħکاÙĨ ÛĮ", + "çĸ ²", + "Ġ ç¢", + "Ġç ¢", + "Ġkur ulan", + "Ġkurul an", + "Ġkuru lan", + "ؤ ÙĪÙĦ", + "د Ùī", + "ĠاÙĦÙħÙĨ Ø·ÙĤØ©", + "Ġn ắng", + "ÐŁ Ðļ", + "ол ай", + "ола й", + "Y K", + "åij Ĩ", + "λ αν", + "λα ν", + "西 çľģ", + "ĠÎĴ αÏĥ", + "ĠÎĴα Ïĥ", + "ĠíĻķ ìĭ¤", + "Z D", + "п Ñĸд", + "Ġ наÑĩе", + "Ġн аÑĩе", + "Ġна Ñĩе", + "ĠнаÑĩ е", + "Ġ ÏĦά", + "ĠÏĦ ά", + "å½ »", + "âĢŀ D", + "Ġ èĩº", + "Ġèĩ º", + "Ġна ÑĪей", + "ĠнаÑĪ ей", + "ĠtÃŃm to", + "Ġت سÙħ", + "Ġتس Ùħ", + "Ïģθ Ïģο", + "令 人", + "ĠP azar", + "ĠPa zar", + "ĠPaz ar", + "ãĤĵ ãģ¨", + "ç«ĭ åĪ»", + "Âģ @", + "Ġb ắc", + "ìĬ¤ íħĮ", + "Ġkadın lar", + "fig ur", + "ãģ¤ ãģ¶", + "Ġæµ Ļæ±Ł", + "Ġдек ÑĸлÑĮ", + "è¡ Ŀ", + "ยà¸Ļ à¹ģà¸Ľà¸¥à¸ĩ", + "o let", + "ol et", + "ole t", + "Ġned ok", + "n amen", + "name n", + "na men", + "nam en", + "åħĦ å¼Ł", + "ืà¸Ń à¸Ĥ", + "èĤ ĥ", + "Ġb üny", + "Ġbü ny", + "ĠÑĢад Ñıн", + "ãĢģ äºĮ", + "ан нÑİ", + "Ġ æīĭæľº", + "Ġæīĭ æľº", + "ĠоÑģ лож", + "Ġо глÑı", + "Ġог лÑı", + "Ġسب ز", + "Ġaktiv it", + "Ġà¤ı प", + "ç« ľ", + "Ġd iren", + "Ġdi ren", + "Ġdir en", + "Ġdire n", + "i в", + "ĠY atırım", + "ÑĨÑĸй на", + "Ġдо мов", + "Ġдом ов", + "ẳ n", + "ĠC oÄŁraf", + "Ùģ ÙĪ", + "æ°Ĺ ãģ«åħ¥", + "ç§ģ ãģ®", + "ï½ į", + "à¥Į ड", + "ĠÐĵÑĢи гоÑĢ", + "ĠP eygamber", + "ĠPey gamber", + "Ġα γα", + "Ġαγ α", + "Ġef ekt", + "ĠìŀĪ ìĸ´ìĦľ", + "ĠìŀĪìĸ´ ìĦľ", + "ĠплаÑĤ еж", + "ĠT rab", + "ĠTr ab", + "ĠTra b", + "o very", + "ov ery", + "ove ry", + "over y", + "âĢ¦âĢ¦ ãĢĤ", + "Ġyap maya", + "Ġнайб ÑĸлÑĮ", + "ĠÙħÙĨ زÙĦ", + "ÙĪ ÙĬÙĥ", + "ÙĪÙĬ Ùĥ", + "ıl dıģında", + "ıldı ģında", + "ıldıģı nda", + "ĠpÅĻÃŃpad nÄĽ", + "ĠμÏĢο ÏģοÏį", + "Ġëĵľ ëĿ¼ë§Ī", + "Ġë°© 문", + "ĠС им", + "ĠСи м", + "Ú© ات", + "کا ت", + "е ком", + "ек ом", + "еко м", + "ر ÙĬع", + "رÙĬ ع", + "Ùĩد Ùģ", + "æĹı èĩªæ²»", + "Ġzm ÄĽn", + "ĠzmÄĽ n", + "Ġв клад", + "Ġвк лад", + "Ġ بÙĦغ", + "ĠبÙĦ غ", + "Ġ ç§ĭ", + "Ġç§ ĭ", + "N gh", + "Ng h", + "Ġend iÅŁ", + "ĠCumhurbaÅŁ kanı", + "ĠK af", + "ĠKa f", + "Ġ à¹ģหล", + "Ġà¹ģ หล", + "Ġmut lu", + "ĠÑģ иÑĢ", + "ĠÑģи ÑĢ", + "Ġг Ñĥм", + "æ¿ ĥ", + "çĤ ī", + "ĠB áo", + "à¥Ĥ ष", + "Ġìłķ íĻķ", + "ान स", + "ï» ¤", + "наÑģлÑĸд ок", + "po Äįet", + "poÄį et", + "ë§ĮìĽIJ ìŀħëĭĪëĭ¤", + "ĠìĦľìļ¸ íĬ¹ë³Ħìĭľ", + "Îķ ÎĻΣ", + "ÎķÎĻ Σ", + "ุม à¸Ĭà¸Ļ", + "Ġм ÑĸлÑĮ", + "ĠмÑĸ лÑĮ", + "æ ħĮ", + "æħ Į", + "Ïĥκε ÏĦαι", + "Ïĥκ εÏĦαι", + "Ġ ãĢľ", + "ĠãĢ ľ", + "Ġkal iteli", + "ĠÑģмеÑĢ ÑĤÑĮ", + "è¼ Ķ", + "Ġ биÑĤ", + "Ġб иÑĤ", + "Ġби ÑĤ", + "ĠΣ ÏĦο", + "à¸ĩà¹Ģศ ส", + "åİŁ æľ¬", + "Ġk nÃŃ", + "Ġkn ÃŃ", + "äºĴ èģĶç½ij", + "ĠÑĩеловеÑĩ еÑģ", + "çŃ Ĵ", + "à¸Īำ หà¸Ļ", + "åĩº åİ»", + "ãĤ¢ ãĥĭãĥ¡", + "å±ķ 示", + "r ych", + "ry ch", + "à¤ħ ब", + "o ÅĪ", + "jÃŃ cÃŃm", + "jÃŃcÃŃ m", + "ا ØŃØ«", + "اØŃ Ø«", + "ĠÙĪاÙĤع ÛĮ", + "ĠФедеÑĢа лÑĮ", + "ĠФед еÑĢалÑĮ", + "Ñģ ам", + "Ñģа м", + "Ġ ìĺ¥", + "Ġìĺ ¥", + "åľ° çIJĥ", + "Ġs uyu", + "Ġsu yu", + "Ġsuy u", + "s eniz", + "sen iz", + "à¥ī फ", + "Ġê°Ļ ëĭ¤", + "ĠпÑĢизна ÑĩеннÑı", + "ĠпÑĢизнаÑĩ еннÑı", + "ĠS ın", + "ĠSı n", + "ĠاÙħÙĨ ÛĮت", + "Ġl átky", + "ĠÐij и", + "Ġsür eci", + "Ġsüre ci", + "Ġsürec i", + "·· ··", + "Ġê²½ ì°°", + "Ġк алÑĮ", + "Ġка лÑĮ", + "Ġкал ÑĮ", + "Ġник ÑĤо", + "Ùij Ùħ", + "ĠدÙĬ گر", + "Ġalın ması", + "л еннÑĸ", + "лен нÑĸ", + "ิว à¹Ģà¸ķà¸Ńร", + "à¸Ľà¸ģ à¸Ħรà¸Ńà¸ĩ", + "Ġзаконодав ÑģÑĤва", + "ãĢĢ ãĤ¤", + "Ġëħ¸ íķĺìļ°", + "ĠD Ã¼ÅŁ", + "Ġг ÑĥÑģÑĤ", + "ĠÐĴ аÑĪ", + "ĠاÙħ تÛĮ", + "Ġpar amet", + "Ġparam et", + "Ġpara met", + "ĠÎłÎ±Î½ εÏĢ", + "à¹Į à¸ģร", + "à¹Įà¸ģ ร", + "ζ α", + "ĠëįĶ ìļ±", + "ÙĪ ÙĦات", + "ÙĪÙĦ ات", + "ÙĪÙĦا ت", + "в аÑĤиÑģÑı", + "ва ÑĤиÑģÑı", + "ваÑĤи ÑģÑı", + "Ġk ök", + "Ġkö k", + "ÙĨ ب", + "ĠвÑĭÑģок ой", + "ãĥ¼ ãĥ¼", + "ãĥ¼ãĥ ¼", + "éĶ ¦" + ] + } +} \ No newline at end of file diff --git a/comfy/text_encoders/llama_tokenizer/tokenizer_config.json b/comfy/text_encoders/llama_tokenizer/tokenizer_config.json new file mode 100644 index 00000000..0b336f5a --- /dev/null +++ b/comfy/text_encoders/llama_tokenizer/tokenizer_config.json @@ -0,0 +1,2095 @@ +{ + "add_bos_token": true, + "add_eos_token": false, + "add_prefix_space": null, + "added_tokens_decoder": { + "128000": { + "content": "<|begin_of_text|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128001": { + "content": "<|end_of_text|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128002": { + "content": "<|reserved_special_token_0|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128003": { + "content": "<|reserved_special_token_1|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128004": { + "content": "<|reserved_special_token_2|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128005": { + "content": "<|reserved_special_token_3|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128006": { + "content": "<|start_header_id|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128007": { + "content": "<|end_header_id|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128008": { + "content": "<|reserved_special_token_4|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128009": { + "content": "<|eot_id|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128010": { + "content": "<|reserved_special_token_5|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128011": { + "content": "<|reserved_special_token_6|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128012": { + "content": "<|reserved_special_token_7|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128013": { + "content": "<|reserved_special_token_8|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128014": { + "content": "<|reserved_special_token_9|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128015": { + "content": "<|reserved_special_token_10|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128016": { + "content": "<|reserved_special_token_11|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128017": { + "content": "<|reserved_special_token_12|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128018": { + "content": "<|reserved_special_token_13|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128019": { + "content": "<|reserved_special_token_14|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128020": { + "content": "<|reserved_special_token_15|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128021": { + "content": "<|reserved_special_token_16|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128022": { + "content": "<|reserved_special_token_17|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128023": { + "content": "<|reserved_special_token_18|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128024": { + "content": "<|reserved_special_token_19|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128025": { + "content": "<|reserved_special_token_20|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128026": { + "content": "<|reserved_special_token_21|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128027": { + "content": "<|reserved_special_token_22|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128028": { + "content": "<|reserved_special_token_23|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128029": { + "content": "<|reserved_special_token_24|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128030": { + "content": "<|reserved_special_token_25|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128031": { + "content": "<|reserved_special_token_26|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128032": { + "content": "<|reserved_special_token_27|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128033": { + "content": "<|reserved_special_token_28|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128034": { + "content": "<|reserved_special_token_29|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128035": { + "content": "<|reserved_special_token_30|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128036": { + "content": "<|reserved_special_token_31|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128037": { + "content": "<|reserved_special_token_32|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128038": { + "content": "<|reserved_special_token_33|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128039": { + "content": "<|reserved_special_token_34|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128040": { + "content": "<|reserved_special_token_35|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128041": { + "content": "<|reserved_special_token_36|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128042": { + "content": "<|reserved_special_token_37|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128043": { + "content": "<|reserved_special_token_38|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128044": { + "content": "<|reserved_special_token_39|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128045": { + "content": "<|reserved_special_token_40|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128046": { + "content": "<|reserved_special_token_41|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128047": { + "content": "<|reserved_special_token_42|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128048": { + "content": "<|reserved_special_token_43|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128049": { + "content": "<|reserved_special_token_44|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128050": { + "content": "<|reserved_special_token_45|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128051": { + "content": "<|reserved_special_token_46|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128052": { + "content": "<|reserved_special_token_47|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128053": { + "content": "<|reserved_special_token_48|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128054": { + "content": "<|reserved_special_token_49|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128055": { + "content": "<|reserved_special_token_50|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128056": { + "content": "<|reserved_special_token_51|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128057": { + "content": "<|reserved_special_token_52|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128058": { + "content": "<|reserved_special_token_53|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128059": { + "content": "<|reserved_special_token_54|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128060": { + "content": "<|reserved_special_token_55|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128061": { + "content": "<|reserved_special_token_56|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128062": { + "content": "<|reserved_special_token_57|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128063": { + "content": "<|reserved_special_token_58|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128064": { + "content": "<|reserved_special_token_59|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128065": { + "content": "<|reserved_special_token_60|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128066": { + "content": "<|reserved_special_token_61|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128067": { + "content": "<|reserved_special_token_62|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128068": { + "content": "<|reserved_special_token_63|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128069": { + "content": "<|reserved_special_token_64|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128070": { + "content": "<|reserved_special_token_65|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128071": { + "content": "<|reserved_special_token_66|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128072": { + "content": "<|reserved_special_token_67|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128073": { + "content": "<|reserved_special_token_68|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128074": { + "content": "<|reserved_special_token_69|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128075": { + "content": "<|reserved_special_token_70|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128076": { + "content": "<|reserved_special_token_71|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128077": { + "content": "<|reserved_special_token_72|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128078": { + "content": "<|reserved_special_token_73|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128079": { + "content": "<|reserved_special_token_74|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128080": { + "content": "<|reserved_special_token_75|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128081": { + "content": "<|reserved_special_token_76|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128082": { + "content": "<|reserved_special_token_77|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128083": { + "content": "<|reserved_special_token_78|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128084": { + "content": "<|reserved_special_token_79|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128085": { + "content": "<|reserved_special_token_80|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128086": { + "content": "<|reserved_special_token_81|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128087": { + "content": "<|reserved_special_token_82|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128088": { + "content": "<|reserved_special_token_83|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128089": { + "content": "<|reserved_special_token_84|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128090": { + "content": "<|reserved_special_token_85|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128091": { + "content": "<|reserved_special_token_86|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128092": { + "content": "<|reserved_special_token_87|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128093": { + "content": "<|reserved_special_token_88|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128094": { + "content": "<|reserved_special_token_89|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128095": { + "content": "<|reserved_special_token_90|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128096": { + "content": "<|reserved_special_token_91|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128097": { + "content": "<|reserved_special_token_92|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128098": { + "content": "<|reserved_special_token_93|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128099": { + "content": "<|reserved_special_token_94|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128100": { + "content": "<|reserved_special_token_95|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128101": { + "content": "<|reserved_special_token_96|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128102": { + "content": "<|reserved_special_token_97|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128103": { + "content": "<|reserved_special_token_98|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128104": { + "content": "<|reserved_special_token_99|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128105": { + "content": "<|reserved_special_token_100|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128106": { + "content": "<|reserved_special_token_101|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128107": { + "content": "<|reserved_special_token_102|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128108": { + "content": "<|reserved_special_token_103|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128109": { + "content": "<|reserved_special_token_104|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128110": { + "content": "<|reserved_special_token_105|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128111": { + "content": "<|reserved_special_token_106|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128112": { + "content": "<|reserved_special_token_107|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128113": { + "content": "<|reserved_special_token_108|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128114": { + "content": "<|reserved_special_token_109|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128115": { + "content": "<|reserved_special_token_110|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128116": { + "content": "<|reserved_special_token_111|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128117": { + "content": "<|reserved_special_token_112|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128118": { + "content": "<|reserved_special_token_113|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128119": { + "content": "<|reserved_special_token_114|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128120": { + "content": "<|reserved_special_token_115|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128121": { + "content": "<|reserved_special_token_116|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128122": { + "content": "<|reserved_special_token_117|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128123": { + "content": "<|reserved_special_token_118|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128124": { + "content": "<|reserved_special_token_119|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128125": { + "content": "<|reserved_special_token_120|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128126": { + "content": "<|reserved_special_token_121|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128127": { + "content": "<|reserved_special_token_122|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128128": { + "content": "<|reserved_special_token_123|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128129": { + "content": "<|reserved_special_token_124|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128130": { + "content": "<|reserved_special_token_125|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128131": { + "content": "<|reserved_special_token_126|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128132": { + "content": "<|reserved_special_token_127|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128133": { + "content": "<|reserved_special_token_128|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128134": { + "content": "<|reserved_special_token_129|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128135": { + "content": "<|reserved_special_token_130|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128136": { + "content": "<|reserved_special_token_131|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128137": { + "content": "<|reserved_special_token_132|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128138": { + "content": "<|reserved_special_token_133|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128139": { + "content": "<|reserved_special_token_134|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128140": { + "content": "<|reserved_special_token_135|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128141": { + "content": "<|reserved_special_token_136|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128142": { + "content": "<|reserved_special_token_137|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128143": { + "content": "<|reserved_special_token_138|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128144": { + "content": "<|reserved_special_token_139|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128145": { + "content": "<|reserved_special_token_140|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128146": { + "content": "<|reserved_special_token_141|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128147": { + "content": "<|reserved_special_token_142|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128148": { + "content": "<|reserved_special_token_143|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128149": { + "content": "<|reserved_special_token_144|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128150": { + "content": "<|reserved_special_token_145|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128151": { + "content": "<|reserved_special_token_146|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128152": { + "content": "<|reserved_special_token_147|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128153": { + "content": "<|reserved_special_token_148|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128154": { + "content": "<|reserved_special_token_149|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128155": { + "content": "<|reserved_special_token_150|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128156": { + "content": "<|reserved_special_token_151|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128157": { + "content": "<|reserved_special_token_152|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128158": { + "content": "<|reserved_special_token_153|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128159": { + "content": "<|reserved_special_token_154|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128160": { + "content": "<|reserved_special_token_155|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128161": { + "content": "<|reserved_special_token_156|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128162": { + "content": "<|reserved_special_token_157|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128163": { + "content": "<|reserved_special_token_158|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128164": { + "content": "<|reserved_special_token_159|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128165": { + "content": "<|reserved_special_token_160|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128166": { + "content": "<|reserved_special_token_161|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128167": { + "content": "<|reserved_special_token_162|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128168": { + "content": "<|reserved_special_token_163|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128169": { + "content": "<|reserved_special_token_164|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128170": { + "content": "<|reserved_special_token_165|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128171": { + "content": "<|reserved_special_token_166|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128172": { + "content": "<|reserved_special_token_167|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128173": { + "content": "<|reserved_special_token_168|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128174": { + "content": "<|reserved_special_token_169|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128175": { + "content": "<|reserved_special_token_170|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128176": { + "content": "<|reserved_special_token_171|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128177": { + "content": "<|reserved_special_token_172|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128178": { + "content": "<|reserved_special_token_173|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128179": { + "content": "<|reserved_special_token_174|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128180": { + "content": "<|reserved_special_token_175|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128181": { + "content": "<|reserved_special_token_176|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128182": { + "content": "<|reserved_special_token_177|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128183": { + "content": "<|reserved_special_token_178|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128184": { + "content": "<|reserved_special_token_179|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128185": { + "content": "<|reserved_special_token_180|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128186": { + "content": "<|reserved_special_token_181|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128187": { + "content": "<|reserved_special_token_182|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128188": { + "content": "<|reserved_special_token_183|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128189": { + "content": "<|reserved_special_token_184|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128190": { + "content": "<|reserved_special_token_185|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128191": { + "content": "<|reserved_special_token_186|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128192": { + "content": "<|reserved_special_token_187|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128193": { + "content": "<|reserved_special_token_188|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128194": { + "content": "<|reserved_special_token_189|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128195": { + "content": "<|reserved_special_token_190|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128196": { + "content": "<|reserved_special_token_191|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128197": { + "content": "<|reserved_special_token_192|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128198": { + "content": "<|reserved_special_token_193|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128199": { + "content": "<|reserved_special_token_194|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128200": { + "content": "<|reserved_special_token_195|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128201": { + "content": "<|reserved_special_token_196|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128202": { + "content": "<|reserved_special_token_197|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128203": { + "content": "<|reserved_special_token_198|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128204": { + "content": "<|reserved_special_token_199|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128205": { + "content": "<|reserved_special_token_200|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128206": { + "content": "<|reserved_special_token_201|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128207": { + "content": "<|reserved_special_token_202|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128208": { + "content": "<|reserved_special_token_203|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128209": { + "content": "<|reserved_special_token_204|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128210": { + "content": "<|reserved_special_token_205|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128211": { + "content": "<|reserved_special_token_206|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128212": { + "content": "<|reserved_special_token_207|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128213": { + "content": "<|reserved_special_token_208|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128214": { + "content": "<|reserved_special_token_209|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128215": { + "content": "<|reserved_special_token_210|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128216": { + "content": "<|reserved_special_token_211|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128217": { + "content": "<|reserved_special_token_212|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128218": { + "content": "<|reserved_special_token_213|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128219": { + "content": "<|reserved_special_token_214|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128220": { + "content": "<|reserved_special_token_215|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128221": { + "content": "<|reserved_special_token_216|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128222": { + "content": "<|reserved_special_token_217|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128223": { + "content": "<|reserved_special_token_218|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128224": { + "content": "<|reserved_special_token_219|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128225": { + "content": "<|reserved_special_token_220|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128226": { + "content": "<|reserved_special_token_221|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128227": { + "content": "<|reserved_special_token_222|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128228": { + "content": "<|reserved_special_token_223|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128229": { + "content": "<|reserved_special_token_224|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128230": { + "content": "<|reserved_special_token_225|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128231": { + "content": "<|reserved_special_token_226|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128232": { + "content": "<|reserved_special_token_227|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128233": { + "content": "<|reserved_special_token_228|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128234": { + "content": "<|reserved_special_token_229|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128235": { + "content": "<|reserved_special_token_230|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128236": { + "content": "<|reserved_special_token_231|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128237": { + "content": "<|reserved_special_token_232|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128238": { + "content": "<|reserved_special_token_233|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128239": { + "content": "<|reserved_special_token_234|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128240": { + "content": "<|reserved_special_token_235|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128241": { + "content": "<|reserved_special_token_236|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128242": { + "content": "<|reserved_special_token_237|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128243": { + "content": "<|reserved_special_token_238|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128244": { + "content": "<|reserved_special_token_239|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128245": { + "content": "<|reserved_special_token_240|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128246": { + "content": "<|reserved_special_token_241|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128247": { + "content": "<|reserved_special_token_242|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128248": { + "content": "<|reserved_special_token_243|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128249": { + "content": "<|reserved_special_token_244|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128250": { + "content": "<|reserved_special_token_245|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128251": { + "content": "<|reserved_special_token_246|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128252": { + "content": "<|reserved_special_token_247|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128253": { + "content": "<|reserved_special_token_248|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128254": { + "content": "<|reserved_special_token_249|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128255": { + "content": "<|reserved_special_token_250|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128256": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128257": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "128258": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + } + }, + "bos_token": "<|begin_of_text|>", + "chat_template": "{% set loop_messages = messages %}{% for message in loop_messages %}{% set content = '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' %}{% if loop.index0 == 0 %}{% set content = bos_token + content %}{% endif %}{{ content }}{% endfor %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\n' }}", + "clean_up_tokenization_spaces": true, + "eos_token": "<|end_of_text|>", + "legacy": true, + "model_input_names": [ + "input_ids", + "attention_mask" + ], + "model_max_length": 1000000000000000019884624838656, + "pad_token": "", + "padding_side": "right", + "processor_class": "LlavaProcessor", + "tokenizer_class": "LlamaTokenizer", + "unk_token": "", + "use_default_system_prompt": false +} diff --git a/comfy/text_encoders/lt.py b/comfy/text_encoders/lt.py new file mode 100644 index 00000000..5c2ce583 --- /dev/null +++ b/comfy/text_encoders/lt.py @@ -0,0 +1,18 @@ +from comfy import sd1_clip +import os +from transformers import T5TokenizerFast +import comfy.text_encoders.genmo + +class T5XXLTokenizer(sd1_clip.SDTokenizer): + def __init__(self, embedding_directory=None, tokenizer_data={}): + tokenizer_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "t5_tokenizer") + super().__init__(tokenizer_path, embedding_directory=embedding_directory, pad_with_end=False, embedding_size=4096, embedding_key='t5xxl', tokenizer_class=T5TokenizerFast, has_start_token=False, pad_to_max_length=False, max_length=99999999, min_length=128) #pad to 128? + + +class LTXVT5Tokenizer(sd1_clip.SD1Tokenizer): + def __init__(self, embedding_directory=None, tokenizer_data={}): + super().__init__(embedding_directory=embedding_directory, tokenizer_data=tokenizer_data, clip_name="t5xxl", tokenizer=T5XXLTokenizer) + + +def ltxv_te(*args, **kwargs): + return comfy.text_encoders.genmo.mochi_te(*args, **kwargs) diff --git a/comfy/text_encoders/pixart_t5.py b/comfy/text_encoders/pixart_t5.py new file mode 100644 index 00000000..d56d57f1 --- /dev/null +++ b/comfy/text_encoders/pixart_t5.py @@ -0,0 +1,42 @@ +import os + +from comfy import sd1_clip +import comfy.text_encoders.t5 +import comfy.text_encoders.sd3_clip +from comfy.sd1_clip import gen_empty_tokens + +from transformers import T5TokenizerFast + +class T5XXLModel(comfy.text_encoders.sd3_clip.T5XXLModel): + def __init__(self, **kwargs): + super().__init__(**kwargs) + + def gen_empty_tokens(self, special_tokens, *args, **kwargs): + # PixArt expects the negative to be all pad tokens + special_tokens = special_tokens.copy() + special_tokens.pop("end") + return gen_empty_tokens(special_tokens, *args, **kwargs) + +class PixArtT5XXL(sd1_clip.SD1ClipModel): + def __init__(self, device="cpu", dtype=None, model_options={}): + super().__init__(device=device, dtype=dtype, name="t5xxl", clip_model=T5XXLModel, model_options=model_options) + +class T5XXLTokenizer(sd1_clip.SDTokenizer): + def __init__(self, embedding_directory=None, tokenizer_data={}): + tokenizer_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "t5_tokenizer") + super().__init__(tokenizer_path, embedding_directory=embedding_directory, pad_with_end=False, embedding_size=4096, embedding_key='t5xxl', tokenizer_class=T5TokenizerFast, has_start_token=False, pad_to_max_length=False, max_length=99999999, min_length=1) # no padding + +class PixArtTokenizer(sd1_clip.SD1Tokenizer): + def __init__(self, embedding_directory=None, tokenizer_data={}): + super().__init__(embedding_directory=embedding_directory, tokenizer_data=tokenizer_data, clip_name="t5xxl", tokenizer=T5XXLTokenizer) + +def pixart_te(dtype_t5=None, t5xxl_scaled_fp8=None): + class PixArtTEModel_(PixArtT5XXL): + def __init__(self, device="cpu", dtype=None, model_options={}): + if t5xxl_scaled_fp8 is not None and "t5xxl_scaled_fp8" not in model_options: + model_options = model_options.copy() + model_options["t5xxl_scaled_fp8"] = t5xxl_scaled_fp8 + if dtype is None: + dtype = dtype_t5 + super().__init__(device=device, dtype=dtype, model_options=model_options) + return PixArtTEModel_ diff --git a/comfy/text_encoders/spiece_tokenizer.py b/comfy/text_encoders/spiece_tokenizer.py index 73739553..cbaa99ba 100644 --- a/comfy/text_encoders/spiece_tokenizer.py +++ b/comfy/text_encoders/spiece_tokenizer.py @@ -1,4 +1,3 @@ -import os import torch class SPieceTokenizer: diff --git a/comfy/text_encoders/t5.py b/comfy/text_encoders/t5.py index a1420c6c..38d8d523 100644 --- a/comfy/text_encoders/t5.py +++ b/comfy/text_encoders/t5.py @@ -172,7 +172,6 @@ class T5LayerSelfAttention(torch.nn.Module): # self.dropout = nn.Dropout(config.dropout_rate) def forward(self, x, mask=None, past_bias=None, optimized_attention=None): - normed_hidden_states = self.layer_norm(x) output, past_bias = self.SelfAttention(self.layer_norm(x), mask=mask, past_bias=past_bias, optimized_attention=optimized_attention) # x = x + self.dropout(attention_output) x += output @@ -209,6 +208,11 @@ class T5Stack(torch.nn.Module): intermediate = None optimized_attention = optimized_attention_for_device(x.device, mask=attention_mask is not None, small_input=True) past_bias = None + + if intermediate_output is not None: + if intermediate_output < 0: + intermediate_output = len(self.block) + intermediate_output + for i, l in enumerate(self.block): x, past_bias = l(x, mask, past_bias, optimized_attention) if i == intermediate_output: diff --git a/comfy/utils.py b/comfy/utils.py index 06c81107..ea666ae5 100644 --- a/comfy/utils.py +++ b/comfy/utils.py @@ -26,6 +26,8 @@ import numpy as np from PIL import Image import logging import itertools +from torch.nn.functional import interpolate +from einops import rearrange def load_torch_file(ckpt, safe_load=False, device=None): if device is None: @@ -46,7 +48,13 @@ def load_torch_file(ckpt, safe_load=False, device=None): if "state_dict" in pl_sd: sd = pl_sd["state_dict"] else: - sd = pl_sd + if len(pl_sd) == 1: + key = list(pl_sd.keys())[0] + sd = pl_sd[key] + if not isinstance(sd, dict): + sd = pl_sd + else: + sd = pl_sd return sd def save_torch_file(sd, ckpt, metadata=None): @@ -316,10 +324,18 @@ MMDIT_MAP_BLOCK = { ("context_block.mlp.fc1.weight", "ff_context.net.0.proj.weight"), ("context_block.mlp.fc2.bias", "ff_context.net.2.bias"), ("context_block.mlp.fc2.weight", "ff_context.net.2.weight"), + ("context_block.attn.ln_q.weight", "attn.norm_added_q.weight"), + ("context_block.attn.ln_k.weight", "attn.norm_added_k.weight"), ("x_block.adaLN_modulation.1.bias", "norm1.linear.bias"), ("x_block.adaLN_modulation.1.weight", "norm1.linear.weight"), ("x_block.attn.proj.bias", "attn.to_out.0.bias"), ("x_block.attn.proj.weight", "attn.to_out.0.weight"), + ("x_block.attn.ln_q.weight", "attn.norm_q.weight"), + ("x_block.attn.ln_k.weight", "attn.norm_k.weight"), + ("x_block.attn2.proj.bias", "attn2.to_out.0.bias"), + ("x_block.attn2.proj.weight", "attn2.to_out.0.weight"), + ("x_block.attn2.ln_q.weight", "attn2.norm_q.weight"), + ("x_block.attn2.ln_k.weight", "attn2.norm_k.weight"), ("x_block.mlp.fc1.bias", "ff.net.0.proj.bias"), ("x_block.mlp.fc1.weight", "ff.net.0.proj.weight"), ("x_block.mlp.fc2.bias", "ff.net.2.bias"), @@ -349,6 +365,12 @@ def mmdit_to_diffusers(mmdit_config, output_prefix=""): key_map["{}add_k_proj.{}".format(k, end)] = (qkv, (0, offset, offset)) key_map["{}add_v_proj.{}".format(k, end)] = (qkv, (0, offset * 2, offset)) + k = "{}.attn2.".format(block_from) + qkv = "{}.x_block.attn2.qkv.{}".format(block_to, end) + key_map["{}to_q.{}".format(k, end)] = (qkv, (0, 0, offset)) + key_map["{}to_k.{}".format(k, end)] = (qkv, (0, offset, offset)) + key_map["{}to_v.{}".format(k, end)] = (qkv, (0, offset * 2, offset)) + for k in MMDIT_MAP_BLOCK: key_map["{}.{}".format(block_from, k[1])] = "{}.{}".format(block_to, k[0]) @@ -364,6 +386,77 @@ def mmdit_to_diffusers(mmdit_config, output_prefix=""): return key_map +PIXART_MAP_BASIC = { + ("csize_embedder.mlp.0.weight", "adaln_single.emb.resolution_embedder.linear_1.weight"), + ("csize_embedder.mlp.0.bias", "adaln_single.emb.resolution_embedder.linear_1.bias"), + ("csize_embedder.mlp.2.weight", "adaln_single.emb.resolution_embedder.linear_2.weight"), + ("csize_embedder.mlp.2.bias", "adaln_single.emb.resolution_embedder.linear_2.bias"), + ("ar_embedder.mlp.0.weight", "adaln_single.emb.aspect_ratio_embedder.linear_1.weight"), + ("ar_embedder.mlp.0.bias", "adaln_single.emb.aspect_ratio_embedder.linear_1.bias"), + ("ar_embedder.mlp.2.weight", "adaln_single.emb.aspect_ratio_embedder.linear_2.weight"), + ("ar_embedder.mlp.2.bias", "adaln_single.emb.aspect_ratio_embedder.linear_2.bias"), + ("x_embedder.proj.weight", "pos_embed.proj.weight"), + ("x_embedder.proj.bias", "pos_embed.proj.bias"), + ("y_embedder.y_embedding", "caption_projection.y_embedding"), + ("y_embedder.y_proj.fc1.weight", "caption_projection.linear_1.weight"), + ("y_embedder.y_proj.fc1.bias", "caption_projection.linear_1.bias"), + ("y_embedder.y_proj.fc2.weight", "caption_projection.linear_2.weight"), + ("y_embedder.y_proj.fc2.bias", "caption_projection.linear_2.bias"), + ("t_embedder.mlp.0.weight", "adaln_single.emb.timestep_embedder.linear_1.weight"), + ("t_embedder.mlp.0.bias", "adaln_single.emb.timestep_embedder.linear_1.bias"), + ("t_embedder.mlp.2.weight", "adaln_single.emb.timestep_embedder.linear_2.weight"), + ("t_embedder.mlp.2.bias", "adaln_single.emb.timestep_embedder.linear_2.bias"), + ("t_block.1.weight", "adaln_single.linear.weight"), + ("t_block.1.bias", "adaln_single.linear.bias"), + ("final_layer.linear.weight", "proj_out.weight"), + ("final_layer.linear.bias", "proj_out.bias"), + ("final_layer.scale_shift_table", "scale_shift_table"), +} + +PIXART_MAP_BLOCK = { + ("scale_shift_table", "scale_shift_table"), + ("attn.proj.weight", "attn1.to_out.0.weight"), + ("attn.proj.bias", "attn1.to_out.0.bias"), + ("mlp.fc1.weight", "ff.net.0.proj.weight"), + ("mlp.fc1.bias", "ff.net.0.proj.bias"), + ("mlp.fc2.weight", "ff.net.2.weight"), + ("mlp.fc2.bias", "ff.net.2.bias"), + ("cross_attn.proj.weight" ,"attn2.to_out.0.weight"), + ("cross_attn.proj.bias" ,"attn2.to_out.0.bias"), +} + +def pixart_to_diffusers(mmdit_config, output_prefix=""): + key_map = {} + + depth = mmdit_config.get("depth", 0) + offset = mmdit_config.get("hidden_size", 1152) + + for i in range(depth): + block_from = "transformer_blocks.{}".format(i) + block_to = "{}blocks.{}".format(output_prefix, i) + + for end in ("weight", "bias"): + s = "{}.attn1.".format(block_from) + qkv = "{}.attn.qkv.{}".format(block_to, end) + key_map["{}to_q.{}".format(s, end)] = (qkv, (0, 0, offset)) + key_map["{}to_k.{}".format(s, end)] = (qkv, (0, offset, offset)) + key_map["{}to_v.{}".format(s, end)] = (qkv, (0, offset * 2, offset)) + + s = "{}.attn2.".format(block_from) + q = "{}.cross_attn.q_linear.{}".format(block_to, end) + kv = "{}.cross_attn.kv_linear.{}".format(block_to, end) + + key_map["{}to_q.{}".format(s, end)] = q + key_map["{}to_k.{}".format(s, end)] = (kv, (0, 0, offset)) + key_map["{}to_v.{}".format(s, end)] = (kv, (0, offset, offset)) + + for k in PIXART_MAP_BLOCK: + key_map["{}.{}".format(block_from, k[1])] = "{}.{}".format(block_to, k[0]) + + for k in PIXART_MAP_BASIC: + key_map[k[1]] = "{}{}".format(output_prefix, k[0]) + + return key_map def auraflow_to_diffusers(mmdit_config, output_prefix=""): n_double_layers = mmdit_config.get("n_double_layers", 0) @@ -609,7 +702,7 @@ def get_attr(obj, attr): def bislerp(samples, width, height): def slerp(b1, b2, r): '''slerps batches b1, b2 according to ratio r, batches should be flat e.g. NxC''' - + c = b1.shape[-1] #norms @@ -634,16 +727,16 @@ def bislerp(samples, width, height): res *= (b1_norms * (1.0-r) + b2_norms * r).expand(-1,c) #edge cases for same or polar opposites - res[dot > 1 - 1e-5] = b1[dot > 1 - 1e-5] + res[dot > 1 - 1e-5] = b1[dot > 1 - 1e-5] res[dot < 1e-5 - 1] = (b1 * (1.0-r) + b2 * r)[dot < 1e-5 - 1] return res - + def generate_bilinear_data(length_old, length_new, device): coords_1 = torch.arange(length_old, dtype=torch.float32, device=device).reshape((1,1,1,-1)) coords_1 = torch.nn.functional.interpolate(coords_1, size=(1, length_new), mode="bilinear") ratios = coords_1 - coords_1.floor() coords_1 = coords_1.to(torch.int64) - + coords_2 = torch.arange(length_old, dtype=torch.float32, device=device).reshape((1,1,1,-1)) + 1 coords_2[:,:,:,-1] -= 1 coords_2 = torch.nn.functional.interpolate(coords_2, size=(1, length_new), mode="bilinear") @@ -654,7 +747,7 @@ def bislerp(samples, width, height): samples = samples.float() n,c,h,w = samples.shape h_new, w_new = (height, width) - + #linear w ratios, coords_1, coords_2 = generate_bilinear_data(w, w_new, samples.device) coords_1 = coords_1.expand((n, c, h, -1)) @@ -729,7 +822,7 @@ def get_tiled_scale_steps(width, height, tile_x, tile_y, overlap): return rows * cols @torch.inference_mode() -def tiled_scale_multidim(samples, function, tile=(64, 64), overlap = 8, upscale_amount = 4, out_channels = 3, output_device="cpu", pbar = None): +def tiled_scale_multidim(samples, function, tile=(64, 64), overlap=8, upscale_amount=4, out_channels=3, output_device="cpu", downscale=False, index_formulas=None, pbar=None): dims = len(tile) if not (isinstance(upscale_amount, (tuple, list))): @@ -738,6 +831,12 @@ def tiled_scale_multidim(samples, function, tile=(64, 64), overlap = 8, upscale_ if not (isinstance(overlap, (tuple, list))): overlap = [overlap] * dims + if index_formulas is None: + index_formulas = upscale_amount + + if not (isinstance(index_formulas, (tuple, list))): + index_formulas = [index_formulas] * dims + def get_upscale(dim, val): up = upscale_amount[dim] if callable(up): @@ -745,10 +844,38 @@ def tiled_scale_multidim(samples, function, tile=(64, 64), overlap = 8, upscale_ else: return up * val + def get_downscale(dim, val): + up = upscale_amount[dim] + if callable(up): + return up(val) + else: + return val / up + + def get_upscale_pos(dim, val): + up = index_formulas[dim] + if callable(up): + return up(val) + else: + return up * val + + def get_downscale_pos(dim, val): + up = index_formulas[dim] + if callable(up): + return up(val) + else: + return val / up + + if downscale: + get_scale = get_downscale + get_pos = get_downscale_pos + else: + get_scale = get_upscale + get_pos = get_upscale_pos + def mult_list_upscale(a): out = [] for i in range(len(a)): - out.append(round(get_upscale(i, a[i]))) + out.append(round(get_scale(i, a[i]))) return out output = torch.empty([samples.shape[0], out_channels] + mult_list_upscale(samples.shape[2:]), device=output_device) @@ -766,23 +893,25 @@ def tiled_scale_multidim(samples, function, tile=(64, 64), overlap = 8, upscale_ out = torch.zeros([s.shape[0], out_channels] + mult_list_upscale(s.shape[2:]), device=output_device) out_div = torch.zeros([s.shape[0], out_channels] + mult_list_upscale(s.shape[2:]), device=output_device) - positions = [range(0, s.shape[d+2], tile[d] - overlap[d]) if s.shape[d+2] > tile[d] else [0] for d in range(dims)] + positions = [range(0, s.shape[d+2] - overlap[d], tile[d] - overlap[d]) if s.shape[d+2] > tile[d] else [0] for d in range(dims)] for it in itertools.product(*positions): s_in = s upscaled = [] for d in range(dims): - pos = max(0, min(s.shape[d + 2] - (overlap[d] + 1), it[d])) + pos = max(0, min(s.shape[d + 2] - overlap[d], it[d])) l = min(tile[d], s.shape[d + 2] - pos) s_in = s_in.narrow(d + 2, pos, l) - upscaled.append(round(get_upscale(d, pos))) + upscaled.append(round(get_pos(d, pos))) ps = function(s_in).to(output_device) mask = torch.ones_like(ps) for d in range(2, dims + 2): - feather = round(get_upscale(d - 2, overlap[d - 2])) + feather = round(get_scale(d - 2, overlap[d - 2])) + if feather >= mask.shape[d]: + continue for t in range(feather): a = (t + 1) / feather mask.narrow(d, t, 1).mul_(a) @@ -804,7 +933,7 @@ def tiled_scale_multidim(samples, function, tile=(64, 64), overlap = 8, upscale_ return output def tiled_scale(samples, function, tile_x=64, tile_y=64, overlap = 8, upscale_amount = 4, out_channels = 3, output_device="cpu", pbar = None): - return tiled_scale_multidim(samples, function, (tile_y, tile_x), overlap, upscale_amount, out_channels, output_device, pbar) + return tiled_scale_multidim(samples, function, (tile_y, tile_x), overlap=overlap, upscale_amount=upscale_amount, out_channels=out_channels, output_device=output_device, pbar=pbar) PROGRESS_BAR_ENABLED = True def set_progress_bar_enabled(enabled): @@ -834,3 +963,65 @@ class ProgressBar: def update(self, value): self.update_absolute(self.current + value) + +def reshape_mask(input_mask, output_shape): + dims = len(output_shape) - 2 + + if dims == 1: + scale_mode = "linear" + + if dims == 2: + input_mask = input_mask.reshape((-1, 1, input_mask.shape[-2], input_mask.shape[-1])) + scale_mode = "bilinear" + + if dims == 3: + if len(input_mask.shape) < 5: + input_mask = input_mask.reshape((1, 1, -1, input_mask.shape[-2], input_mask.shape[-1])) + scale_mode = "trilinear" + + mask = torch.nn.functional.interpolate(input_mask, size=output_shape[2:], mode=scale_mode) + if mask.shape[1] < output_shape[1]: + mask = mask.repeat((1, output_shape[1]) + (1,) * dims)[:,:output_shape[1]] + mask = repeat_to_batch_size(mask, output_shape[0]) + return mask + +def upscale_dit_mask(mask: torch.Tensor, img_size_in, img_size_out): + hi, wi = img_size_in + ho, wo = img_size_out + # if it's already the correct size, no need to do anything + if (hi, wi) == (ho, wo): + return mask + if mask.ndim == 2: + mask = mask.unsqueeze(0) + if mask.ndim != 3: + raise ValueError(f"Got a mask of shape {list(mask.shape)}, expected [b, q, k] or [q, k]") + txt_tokens = mask.shape[1] - (hi * wi) + # quadrants of the mask + txt_to_txt = mask[:, :txt_tokens, :txt_tokens] + txt_to_img = mask[:, :txt_tokens, txt_tokens:] + img_to_img = mask[:, txt_tokens:, txt_tokens:] + img_to_txt = mask[:, txt_tokens:, :txt_tokens] + + # convert to 1d x 2d, interpolate, then back to 1d x 1d + txt_to_img = rearrange (txt_to_img, "b t (h w) -> b t h w", h=hi, w=wi) + txt_to_img = interpolate(txt_to_img, size=img_size_out, mode="bilinear") + txt_to_img = rearrange (txt_to_img, "b t h w -> b t (h w)") + # this one is hard because we have to do it twice + # convert to 1d x 2d, interpolate, then to 2d x 1d, interpolate, then 1d x 1d + img_to_img = rearrange (img_to_img, "b hw (h w) -> b hw h w", h=hi, w=wi) + img_to_img = interpolate(img_to_img, size=img_size_out, mode="bilinear") + img_to_img = rearrange (img_to_img, "b (hk wk) hq wq -> b (hq wq) hk wk", hk=hi, wk=wi) + img_to_img = interpolate(img_to_img, size=img_size_out, mode="bilinear") + img_to_img = rearrange (img_to_img, "b (hq wq) hk wk -> b (hk wk) (hq wq)", hq=ho, wq=wo) + # convert to 2d x 1d, interpolate, then back to 1d x 1d + img_to_txt = rearrange (img_to_txt, "b (h w) t -> b t h w", h=hi, w=wi) + img_to_txt = interpolate(img_to_txt, size=img_size_out, mode="bilinear") + img_to_txt = rearrange (img_to_txt, "b t h w -> b (h w) t") + + # reassemble the mask from blocks + out = torch.cat([ + torch.cat([txt_to_txt, txt_to_img], dim=2), + torch.cat([img_to_txt, img_to_img], dim=2)], + dim=1 + ) + return out diff --git a/comfy_execution/graph.py b/comfy_execution/graph.py index 0b5bf189..59b42b74 100644 --- a/comfy_execution/graph.py +++ b/comfy_execution/graph.py @@ -54,8 +54,8 @@ class DynamicPrompt: def get_original_prompt(self): return self.original_prompt -def get_input_info(class_def, input_name): - valid_inputs = class_def.INPUT_TYPES() +def get_input_info(class_def, input_name, valid_inputs=None): + valid_inputs = valid_inputs or class_def.INPUT_TYPES() input_info = None input_category = None if "required" in valid_inputs and input_name in valid_inputs["required"]: @@ -131,7 +131,7 @@ class TopologicalSort: if (include_lazy or not is_lazy) and not self.is_cached(from_node_id): node_ids.append(from_node_id) links.append((from_node_id, from_socket, unique_id)) - + for link in links: self.add_strong_link(*link) diff --git a/comfy_execution/validation.py b/comfy_execution/validation.py new file mode 100644 index 00000000..cec105fc --- /dev/null +++ b/comfy_execution/validation.py @@ -0,0 +1,39 @@ +from __future__ import annotations + + +def validate_node_input( + received_type: str, input_type: str, strict: bool = False +) -> bool: + """ + received_type and input_type are both strings of the form "T1,T2,...". + + If strict is True, the input_type must contain the received_type. + For example, if received_type is "STRING" and input_type is "STRING,INT", + this will return True. But if received_type is "STRING,INT" and input_type is + "INT", this will return False. + + If strict is False, the input_type must have overlap with the received_type. + For example, if received_type is "STRING,BOOLEAN" and input_type is "STRING,INT", + this will return True. + + Supports pre-union type extension behaviour of ``__ne__`` overrides. + """ + # If the types are exactly the same, we can return immediately + # Use pre-union behaviour: inverse of `__ne__` + if not received_type != input_type: + return True + + # Not equal, and not strings + if not isinstance(received_type, str) or not isinstance(input_type, str): + return False + + # Split the type strings into sets for comparison + received_types = set(t.strip() for t in received_type.split(",")) + input_types = set(t.strip() for t in input_type.split(",")) + + if strict: + # In strict mode, all received types must be in the input types + return received_types.issubset(input_types) + else: + # In non-strict mode, there must be at least one type in common + return len(received_types.intersection(input_types)) > 0 diff --git a/comfy_extras/chainner_models/model_loading.py b/comfy_extras/chainner_models/model_loading.py index d48bc238..1bec4476 100644 --- a/comfy_extras/chainner_models/model_loading.py +++ b/comfy_extras/chainner_models/model_loading.py @@ -1,5 +1,6 @@ +import logging from spandrel import ModelLoader def load_state_dict(state_dict): - print("WARNING: comfy_extras.chainner_models is deprecated and has been replaced by the spandrel library.") + logging.warning("comfy_extras.chainner_models is deprecated and has been replaced by the spandrel library.") return ModelLoader().load_from_state_dict(state_dict).eval() diff --git a/comfy_extras/nodes_advanced_samplers.py b/comfy_extras/nodes_advanced_samplers.py index 820c250e..5fbb096f 100644 --- a/comfy_extras/nodes_advanced_samplers.py +++ b/comfy_extras/nodes_advanced_samplers.py @@ -2,8 +2,7 @@ import comfy.samplers import comfy.utils import torch import numpy as np -from tqdm.auto import trange, tqdm -import math +from tqdm.auto import trange @torch.no_grad() diff --git a/comfy_extras/nodes_align_your_steps.py b/comfy_extras/nodes_align_your_steps.py index 3ffe5318..8d856d0e 100644 --- a/comfy_extras/nodes_align_your_steps.py +++ b/comfy_extras/nodes_align_your_steps.py @@ -24,7 +24,7 @@ class AlignYourStepsScheduler: def INPUT_TYPES(s): return {"required": {"model_type": (["SD1", "SDXL", "SVD"], ), - "steps": ("INT", {"default": 10, "min": 10, "max": 10000}), + "steps": ("INT", {"default": 10, "min": 1, "max": 10000}), "denoise": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.01}), } } diff --git a/comfy_extras/nodes_audio.py b/comfy_extras/nodes_audio.py index e5cc4dff..3cb918e0 100644 --- a/comfy_extras/nodes_audio.py +++ b/comfy_extras/nodes_audio.py @@ -8,6 +8,7 @@ import json import struct import random import hashlib +import node_helpers from comfy.cli_args import args class EmptyLatentAudio: @@ -29,6 +30,27 @@ class EmptyLatentAudio: latent = torch.zeros([batch_size, 64, length], device=self.device) return ({"samples":latent, "type": "audio"}, ) +class ConditioningStableAudio: + @classmethod + def INPUT_TYPES(s): + return {"required": {"positive": ("CONDITIONING", ), + "negative": ("CONDITIONING", ), + "seconds_start": ("FLOAT", {"default": 0.0, "min": 0.0, "max": 1000.0, "step": 0.1}), + "seconds_total": ("FLOAT", {"default": 47.0, "min": 0.0, "max": 1000.0, "step": 0.1}), + }} + + RETURN_TYPES = ("CONDITIONING","CONDITIONING") + RETURN_NAMES = ("positive", "negative") + + FUNCTION = "append" + + CATEGORY = "conditioning" + + def append(self, positive, negative, seconds_start, seconds_total): + positive = node_helpers.conditioning_set_values(positive, {"seconds_start": seconds_start, "seconds_total": seconds_total}) + negative = node_helpers.conditioning_set_values(negative, {"seconds_start": seconds_start, "seconds_total": seconds_total}) + return (positive, negative) + class VAEEncodeAudio: @classmethod def INPUT_TYPES(s): @@ -225,4 +247,5 @@ NODE_CLASS_MAPPINGS = { "SaveAudio": SaveAudio, "LoadAudio": LoadAudio, "PreviewAudio": PreviewAudio, + "ConditioningStableAudio": ConditioningStableAudio, } diff --git a/comfy_extras/nodes_clip_sdxl.py b/comfy_extras/nodes_clip_sdxl.py index 3087b917..14269caf 100644 --- a/comfy_extras/nodes_clip_sdxl.py +++ b/comfy_extras/nodes_clip_sdxl.py @@ -1,4 +1,3 @@ -import torch from nodes import MAX_RESOLUTION class CLIPTextEncodeSDXLRefiner: @@ -17,21 +16,21 @@ class CLIPTextEncodeSDXLRefiner: def encode(self, clip, ascore, width, height, text): tokens = clip.tokenize(text) - cond, pooled = clip.encode_from_tokens(tokens, return_pooled=True) - return ([[cond, {"pooled_output": pooled, "aesthetic_score": ascore, "width": width,"height": height}]], ) + return (clip.encode_from_tokens_scheduled(tokens, add_dict={"aesthetic_score": ascore, "width": width, "height": height}), ) class CLIPTextEncodeSDXL: @classmethod def INPUT_TYPES(s): return {"required": { + "clip": ("CLIP", ), "width": ("INT", {"default": 1024.0, "min": 0, "max": MAX_RESOLUTION}), "height": ("INT", {"default": 1024.0, "min": 0, "max": MAX_RESOLUTION}), "crop_w": ("INT", {"default": 0, "min": 0, "max": MAX_RESOLUTION}), "crop_h": ("INT", {"default": 0, "min": 0, "max": MAX_RESOLUTION}), "target_width": ("INT", {"default": 1024.0, "min": 0, "max": MAX_RESOLUTION}), "target_height": ("INT", {"default": 1024.0, "min": 0, "max": MAX_RESOLUTION}), - "text_g": ("STRING", {"multiline": True, "dynamicPrompts": True}), "clip": ("CLIP", ), - "text_l": ("STRING", {"multiline": True, "dynamicPrompts": True}), "clip": ("CLIP", ), + "text_g": ("STRING", {"multiline": True, "dynamicPrompts": True}), + "text_l": ("STRING", {"multiline": True, "dynamicPrompts": True}), }} RETURN_TYPES = ("CONDITIONING",) FUNCTION = "encode" @@ -47,8 +46,7 @@ class CLIPTextEncodeSDXL: tokens["l"] += empty["l"] while len(tokens["l"]) > len(tokens["g"]): tokens["g"] += empty["g"] - cond, pooled = clip.encode_from_tokens(tokens, return_pooled=True) - return ([[cond, {"pooled_output": pooled, "width": width, "height": height, "crop_w": crop_w, "crop_h": crop_h, "target_width": target_width, "target_height": target_height}]], ) + return (clip.encode_from_tokens_scheduled(tokens, add_dict={"width": width, "height": height, "crop_w": crop_w, "crop_h": crop_h, "target_width": target_width, "target_height": target_height}), ) NODE_CLASS_MAPPINGS = { "CLIPTextEncodeSDXLRefiner": CLIPTextEncodeSDXLRefiner, diff --git a/comfy_extras/nodes_compositing.py b/comfy_extras/nodes_compositing.py index 48fe5e3d..2f994fa1 100644 --- a/comfy_extras/nodes_compositing.py +++ b/comfy_extras/nodes_compositing.py @@ -1,4 +1,3 @@ -import numpy as np import torch import comfy.utils from enum import Enum diff --git a/comfy_extras/nodes_flux.py b/comfy_extras/nodes_flux.py index b690432b..2ae23f73 100644 --- a/comfy_extras/nodes_flux.py +++ b/comfy_extras/nodes_flux.py @@ -18,10 +18,7 @@ class CLIPTextEncodeFlux: tokens = clip.tokenize(clip_l) tokens["t5xxl"] = clip.tokenize(t5xxl)["t5xxl"] - output = clip.encode_from_tokens(tokens, return_pooled=True, return_dict=True) - cond = output.pop("cond") - output["guidance"] = guidance - return ([[cond, output]], ) + return (clip.encode_from_tokens_scheduled(tokens, add_dict={"guidance": guidance}), ) class FluxGuidance: @classmethod diff --git a/comfy_extras/nodes_gits.py b/comfy_extras/nodes_gits.py index 7bfae4ce..47b1dd04 100644 --- a/comfy_extras/nodes_gits.py +++ b/comfy_extras/nodes_gits.py @@ -162,7 +162,7 @@ NOISE_LEVELS = { [14.61464119, 7.49001646, 5.85520077, 4.45427561, 3.46139455, 2.84484982, 2.19988537, 1.72759056, 1.36964464, 1.08895338, 0.86115354, 0.69515091, 0.54755926, 0.43325692, 0.34370604, 0.25053367, 0.17026083, 0.09824532, 0.02916753], [14.61464119, 11.54541874, 7.49001646, 5.85520077, 4.45427561, 3.46139455, 2.84484982, 2.19988537, 1.72759056, 1.36964464, 1.08895338, 0.86115354, 0.69515091, 0.54755926, 0.43325692, 0.34370604, 0.25053367, 0.17026083, 0.09824532, 0.02916753], [14.61464119, 11.54541874, 7.49001646, 5.85520077, 4.45427561, 3.46139455, 2.84484982, 2.19988537, 1.72759056, 1.36964464, 1.08895338, 0.89115214, 0.72133851, 0.59516323, 0.4783645, 0.38853383, 0.29807833, 0.22545385, 0.17026083, 0.09824532, 0.02916753], - ], + ], 1.15: [ [14.61464119, 0.83188516, 0.02916753], [14.61464119, 1.84880662, 0.59516323, 0.02916753], @@ -246,7 +246,7 @@ NOISE_LEVELS = { [14.61464119, 5.85520077, 2.84484982, 1.72759056, 1.162866, 0.83188516, 0.64427125, 0.52423614, 0.43325692, 0.36617002, 0.32104823, 0.27464288, 0.25053367, 0.22545385, 0.19894916, 0.17026083, 0.13792117, 0.09824532, 0.02916753], [14.61464119, 5.85520077, 2.84484982, 1.78698075, 1.24153244, 0.92192322, 0.72133851, 0.57119018, 0.45573691, 0.38853383, 0.34370604, 0.29807833, 0.27464288, 0.25053367, 0.22545385, 0.19894916, 0.17026083, 0.13792117, 0.09824532, 0.02916753], [14.61464119, 5.85520077, 2.84484982, 1.78698075, 1.24153244, 0.92192322, 0.72133851, 0.57119018, 0.4783645, 0.41087446, 0.36617002, 0.32104823, 0.29807833, 0.27464288, 0.25053367, 0.22545385, 0.19894916, 0.17026083, 0.13792117, 0.09824532, 0.02916753], - ], + ], 1.35: [ [14.61464119, 0.69515091, 0.02916753], [14.61464119, 0.95350921, 0.34370604, 0.02916753], diff --git a/comfy_extras/nodes_hooks.py b/comfy_extras/nodes_hooks.py new file mode 100644 index 00000000..9d9d4837 --- /dev/null +++ b/comfy_extras/nodes_hooks.py @@ -0,0 +1,745 @@ +from __future__ import annotations +from typing import TYPE_CHECKING, Union +import logging +import torch +from collections.abc import Iterable + +if TYPE_CHECKING: + from comfy.sd import CLIP + +import comfy.hooks +import comfy.sd +import comfy.utils +import folder_paths + +########################################### +# Mask, Combine, and Hook Conditioning +#------------------------------------------ +class PairConditioningSetProperties: + NodeId = 'PairConditioningSetProperties' + NodeName = 'Cond Pair Set Props' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "positive_NEW": ("CONDITIONING", ), + "negative_NEW": ("CONDITIONING", ), + "strength": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 10.0, "step": 0.01}), + "set_cond_area": (["default", "mask bounds"],), + }, + "optional": { + "mask": ("MASK", ), + "hooks": ("HOOKS",), + "timesteps": ("TIMESTEPS_RANGE",), + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("CONDITIONING", "CONDITIONING") + RETURN_NAMES = ("positive", "negative") + CATEGORY = "advanced/hooks/cond pair" + FUNCTION = "set_properties" + + def set_properties(self, positive_NEW, negative_NEW, + strength: float, set_cond_area: str, + mask: torch.Tensor=None, hooks: comfy.hooks.HookGroup=None, timesteps: tuple=None): + final_positive, final_negative = comfy.hooks.set_conds_props(conds=[positive_NEW, negative_NEW], + strength=strength, set_cond_area=set_cond_area, + mask=mask, hooks=hooks, timesteps_range=timesteps) + return (final_positive, final_negative) + +class PairConditioningSetPropertiesAndCombine: + NodeId = 'PairConditioningSetPropertiesAndCombine' + NodeName = 'Cond Pair Set Props Combine' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "positive": ("CONDITIONING", ), + "negative": ("CONDITIONING", ), + "positive_NEW": ("CONDITIONING", ), + "negative_NEW": ("CONDITIONING", ), + "strength": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 10.0, "step": 0.01}), + "set_cond_area": (["default", "mask bounds"],), + }, + "optional": { + "mask": ("MASK", ), + "hooks": ("HOOKS",), + "timesteps": ("TIMESTEPS_RANGE",), + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("CONDITIONING", "CONDITIONING") + RETURN_NAMES = ("positive", "negative") + CATEGORY = "advanced/hooks/cond pair" + FUNCTION = "set_properties" + + def set_properties(self, positive, negative, positive_NEW, negative_NEW, + strength: float, set_cond_area: str, + mask: torch.Tensor=None, hooks: comfy.hooks.HookGroup=None, timesteps: tuple=None): + final_positive, final_negative = comfy.hooks.set_conds_props_and_combine(conds=[positive, negative], new_conds=[positive_NEW, negative_NEW], + strength=strength, set_cond_area=set_cond_area, + mask=mask, hooks=hooks, timesteps_range=timesteps) + return (final_positive, final_negative) + +class ConditioningSetProperties: + NodeId = 'ConditioningSetProperties' + NodeName = 'Cond Set Props' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "cond_NEW": ("CONDITIONING", ), + "strength": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 10.0, "step": 0.01}), + "set_cond_area": (["default", "mask bounds"],), + }, + "optional": { + "mask": ("MASK", ), + "hooks": ("HOOKS",), + "timesteps": ("TIMESTEPS_RANGE",), + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("CONDITIONING",) + CATEGORY = "advanced/hooks/cond single" + FUNCTION = "set_properties" + + def set_properties(self, cond_NEW, + strength: float, set_cond_area: str, + mask: torch.Tensor=None, hooks: comfy.hooks.HookGroup=None, timesteps: tuple=None): + (final_cond,) = comfy.hooks.set_conds_props(conds=[cond_NEW], + strength=strength, set_cond_area=set_cond_area, + mask=mask, hooks=hooks, timesteps_range=timesteps) + return (final_cond,) + +class ConditioningSetPropertiesAndCombine: + NodeId = 'ConditioningSetPropertiesAndCombine' + NodeName = 'Cond Set Props Combine' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "cond": ("CONDITIONING", ), + "cond_NEW": ("CONDITIONING", ), + "strength": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 10.0, "step": 0.01}), + "set_cond_area": (["default", "mask bounds"],), + }, + "optional": { + "mask": ("MASK", ), + "hooks": ("HOOKS",), + "timesteps": ("TIMESTEPS_RANGE",), + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("CONDITIONING",) + CATEGORY = "advanced/hooks/cond single" + FUNCTION = "set_properties" + + def set_properties(self, cond, cond_NEW, + strength: float, set_cond_area: str, + mask: torch.Tensor=None, hooks: comfy.hooks.HookGroup=None, timesteps: tuple=None): + (final_cond,) = comfy.hooks.set_conds_props_and_combine(conds=[cond], new_conds=[cond_NEW], + strength=strength, set_cond_area=set_cond_area, + mask=mask, hooks=hooks, timesteps_range=timesteps) + return (final_cond,) + +class PairConditioningCombine: + NodeId = 'PairConditioningCombine' + NodeName = 'Cond Pair Combine' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "positive_A": ("CONDITIONING",), + "negative_A": ("CONDITIONING",), + "positive_B": ("CONDITIONING",), + "negative_B": ("CONDITIONING",), + }, + } + + EXPERIMENTAL = True + RETURN_TYPES = ("CONDITIONING", "CONDITIONING") + RETURN_NAMES = ("positive", "negative") + CATEGORY = "advanced/hooks/cond pair" + FUNCTION = "combine" + + def combine(self, positive_A, negative_A, positive_B, negative_B): + final_positive, final_negative = comfy.hooks.set_conds_props_and_combine(conds=[positive_A, negative_A], new_conds=[positive_B, negative_B],) + return (final_positive, final_negative,) + +class PairConditioningSetDefaultAndCombine: + NodeId = 'PairConditioningSetDefaultCombine' + NodeName = 'Cond Pair Set Default Combine' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "positive": ("CONDITIONING",), + "negative": ("CONDITIONING",), + "positive_DEFAULT": ("CONDITIONING",), + "negative_DEFAULT": ("CONDITIONING",), + }, + "optional": { + "hooks": ("HOOKS",), + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("CONDITIONING", "CONDITIONING") + RETURN_NAMES = ("positive", "negative") + CATEGORY = "advanced/hooks/cond pair" + FUNCTION = "set_default_and_combine" + + def set_default_and_combine(self, positive, negative, positive_DEFAULT, negative_DEFAULT, + hooks: comfy.hooks.HookGroup=None): + final_positive, final_negative = comfy.hooks.set_default_conds_and_combine(conds=[positive, negative], new_conds=[positive_DEFAULT, negative_DEFAULT], + hooks=hooks) + return (final_positive, final_negative) + +class ConditioningSetDefaultAndCombine: + NodeId = 'ConditioningSetDefaultCombine' + NodeName = 'Cond Set Default Combine' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "cond": ("CONDITIONING",), + "cond_DEFAULT": ("CONDITIONING",), + }, + "optional": { + "hooks": ("HOOKS",), + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("CONDITIONING",) + CATEGORY = "advanced/hooks/cond single" + FUNCTION = "set_default_and_combine" + + def set_default_and_combine(self, cond, cond_DEFAULT, + hooks: comfy.hooks.HookGroup=None): + (final_conditioning,) = comfy.hooks.set_default_conds_and_combine(conds=[cond], new_conds=[cond_DEFAULT], + hooks=hooks) + return (final_conditioning,) + +class SetClipHooks: + NodeId = 'SetClipHooks' + NodeName = 'Set CLIP Hooks' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "clip": ("CLIP",), + "apply_to_conds": ("BOOLEAN", {"default": True}), + "schedule_clip": ("BOOLEAN", {"default": False}) + }, + "optional": { + "hooks": ("HOOKS",) + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("CLIP",) + CATEGORY = "advanced/hooks/clip" + FUNCTION = "apply_hooks" + + def apply_hooks(self, clip: 'CLIP', schedule_clip: bool, apply_to_conds: bool, hooks: comfy.hooks.HookGroup=None): + if hooks is not None: + clip = clip.clone() + if apply_to_conds: + clip.apply_hooks_to_conds = hooks + clip.patcher.forced_hooks = hooks.clone() + clip.use_clip_schedule = schedule_clip + if not clip.use_clip_schedule: + clip.patcher.forced_hooks.set_keyframes_on_hooks(None) + clip.patcher.register_all_hook_patches(hooks.get_dict_repr(), comfy.hooks.EnumWeightTarget.Clip) + return (clip,) + +class ConditioningTimestepsRange: + NodeId = 'ConditioningTimestepsRange' + NodeName = 'Timesteps Range' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "start_percent": ("FLOAT", {"default": 0.0, "min": 0.0, "max": 1.0, "step": 0.001}), + "end_percent": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.001}) + }, + } + + EXPERIMENTAL = True + RETURN_TYPES = ("TIMESTEPS_RANGE", "TIMESTEPS_RANGE", "TIMESTEPS_RANGE") + RETURN_NAMES = ("TIMESTEPS_RANGE", "BEFORE_RANGE", "AFTER_RANGE") + CATEGORY = "advanced/hooks" + FUNCTION = "create_range" + + def create_range(self, start_percent: float, end_percent: float): + return ((start_percent, end_percent), (0.0, start_percent), (end_percent, 1.0)) +#------------------------------------------ +########################################### + + +########################################### +# Create Hooks +#------------------------------------------ +class CreateHookLora: + NodeId = 'CreateHookLora' + NodeName = 'Create Hook LoRA' + def __init__(self): + self.loaded_lora = None + + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "lora_name": (folder_paths.get_filename_list("loras"), ), + "strength_model": ("FLOAT", {"default": 1.0, "min": -20.0, "max": 20.0, "step": 0.01}), + "strength_clip": ("FLOAT", {"default": 1.0, "min": -20.0, "max": 20.0, "step": 0.01}), + }, + "optional": { + "prev_hooks": ("HOOKS",) + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("HOOKS",) + CATEGORY = "advanced/hooks/create" + FUNCTION = "create_hook" + + def create_hook(self, lora_name: str, strength_model: float, strength_clip: float, prev_hooks: comfy.hooks.HookGroup=None): + if prev_hooks is None: + prev_hooks = comfy.hooks.HookGroup() + prev_hooks.clone() + + if strength_model == 0 and strength_clip == 0: + return (prev_hooks,) + + lora_path = folder_paths.get_full_path("loras", lora_name) + lora = None + if self.loaded_lora is not None: + if self.loaded_lora[0] == lora_path: + lora = self.loaded_lora[1] + else: + temp = self.loaded_lora + self.loaded_lora = None + del temp + + if lora is None: + lora = comfy.utils.load_torch_file(lora_path, safe_load=True) + self.loaded_lora = (lora_path, lora) + + hooks = comfy.hooks.create_hook_lora(lora=lora, strength_model=strength_model, strength_clip=strength_clip) + return (prev_hooks.clone_and_combine(hooks),) + +class CreateHookLoraModelOnly(CreateHookLora): + NodeId = 'CreateHookLoraModelOnly' + NodeName = 'Create Hook LoRA (MO)' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "lora_name": (folder_paths.get_filename_list("loras"), ), + "strength_model": ("FLOAT", {"default": 1.0, "min": -20.0, "max": 20.0, "step": 0.01}), + }, + "optional": { + "prev_hooks": ("HOOKS",) + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("HOOKS",) + CATEGORY = "advanced/hooks/create" + FUNCTION = "create_hook_model_only" + + def create_hook_model_only(self, lora_name: str, strength_model: float, prev_hooks: comfy.hooks.HookGroup=None): + return self.create_hook(lora_name=lora_name, strength_model=strength_model, strength_clip=0, prev_hooks=prev_hooks) + +class CreateHookModelAsLora: + NodeId = 'CreateHookModelAsLora' + NodeName = 'Create Hook Model as LoRA' + + def __init__(self): + # when not None, will be in following format: + # (ckpt_path: str, weights_model: dict, weights_clip: dict) + self.loaded_weights = None + + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "ckpt_name": (folder_paths.get_filename_list("checkpoints"), ), + "strength_model": ("FLOAT", {"default": 1.0, "min": -20.0, "max": 20.0, "step": 0.01}), + "strength_clip": ("FLOAT", {"default": 1.0, "min": -20.0, "max": 20.0, "step": 0.01}), + }, + "optional": { + "prev_hooks": ("HOOKS",) + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("HOOKS",) + CATEGORY = "advanced/hooks/create" + FUNCTION = "create_hook" + + def create_hook(self, ckpt_name: str, strength_model: float, strength_clip: float, + prev_hooks: comfy.hooks.HookGroup=None): + if prev_hooks is None: + prev_hooks = comfy.hooks.HookGroup() + prev_hooks.clone() + + ckpt_path = folder_paths.get_full_path("checkpoints", ckpt_name) + weights_model = None + weights_clip = None + if self.loaded_weights is not None: + if self.loaded_weights[0] == ckpt_path: + weights_model = self.loaded_weights[1] + weights_clip = self.loaded_weights[2] + else: + temp = self.loaded_weights + self.loaded_weights = None + del temp + + if weights_model is None: + out = comfy.sd.load_checkpoint_guess_config(ckpt_path, output_vae=True, output_clip=True, embedding_directory=folder_paths.get_folder_paths("embeddings")) + weights_model = comfy.hooks.get_patch_weights_from_model(out[0]) + weights_clip = comfy.hooks.get_patch_weights_from_model(out[1].patcher if out[1] else out[1]) + self.loaded_weights = (ckpt_path, weights_model, weights_clip) + + hooks = comfy.hooks.create_hook_model_as_lora(weights_model=weights_model, weights_clip=weights_clip, + strength_model=strength_model, strength_clip=strength_clip) + return (prev_hooks.clone_and_combine(hooks),) + +class CreateHookModelAsLoraModelOnly(CreateHookModelAsLora): + NodeId = 'CreateHookModelAsLoraModelOnly' + NodeName = 'Create Hook Model as LoRA (MO)' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "ckpt_name": (folder_paths.get_filename_list("checkpoints"), ), + "strength_model": ("FLOAT", {"default": 1.0, "min": -20.0, "max": 20.0, "step": 0.01}), + }, + "optional": { + "prev_hooks": ("HOOKS",) + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("HOOKS",) + CATEGORY = "advanced/hooks/create" + FUNCTION = "create_hook_model_only" + + def create_hook_model_only(self, ckpt_name: str, strength_model: float, + prev_hooks: comfy.hooks.HookGroup=None): + return self.create_hook(ckpt_name=ckpt_name, strength_model=strength_model, strength_clip=0.0, prev_hooks=prev_hooks) +#------------------------------------------ +########################################### + + +########################################### +# Schedule Hooks +#------------------------------------------ +class SetHookKeyframes: + NodeId = 'SetHookKeyframes' + NodeName = 'Set Hook Keyframes' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "hooks": ("HOOKS",), + }, + "optional": { + "hook_kf": ("HOOK_KEYFRAMES",), + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("HOOKS",) + CATEGORY = "advanced/hooks/scheduling" + FUNCTION = "set_hook_keyframes" + + def set_hook_keyframes(self, hooks: comfy.hooks.HookGroup, hook_kf: comfy.hooks.HookKeyframeGroup=None): + if hook_kf is not None: + hooks = hooks.clone() + hooks.set_keyframes_on_hooks(hook_kf=hook_kf) + return (hooks,) + +class CreateHookKeyframe: + NodeId = 'CreateHookKeyframe' + NodeName = 'Create Hook Keyframe' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "strength_mult": ("FLOAT", {"default": 1.0, "min": -20.0, "max": 20.0, "step": 0.01}), + "start_percent": ("FLOAT", {"default": 0.0, "min": 0.0, "max": 1.0, "step": 0.001}), + }, + "optional": { + "prev_hook_kf": ("HOOK_KEYFRAMES",), + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("HOOK_KEYFRAMES",) + RETURN_NAMES = ("HOOK_KF",) + CATEGORY = "advanced/hooks/scheduling" + FUNCTION = "create_hook_keyframe" + + def create_hook_keyframe(self, strength_mult: float, start_percent: float, prev_hook_kf: comfy.hooks.HookKeyframeGroup=None): + if prev_hook_kf is None: + prev_hook_kf = comfy.hooks.HookKeyframeGroup() + prev_hook_kf = prev_hook_kf.clone() + keyframe = comfy.hooks.HookKeyframe(strength=strength_mult, start_percent=start_percent) + prev_hook_kf.add(keyframe) + return (prev_hook_kf,) + +class CreateHookKeyframesInterpolated: + NodeId = 'CreateHookKeyframesInterpolated' + NodeName = 'Create Hook Keyframes Interp.' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "strength_start": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 10.0, "step": 0.001}, ), + "strength_end": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 10.0, "step": 0.001}, ), + "interpolation": (comfy.hooks.InterpolationMethod._LIST, ), + "start_percent": ("FLOAT", {"default": 0.0, "min": 0.0, "max": 1.0, "step": 0.001}), + "end_percent": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.001}), + "keyframes_count": ("INT", {"default": 5, "min": 2, "max": 100, "step": 1}), + "print_keyframes": ("BOOLEAN", {"default": False}), + }, + "optional": { + "prev_hook_kf": ("HOOK_KEYFRAMES",), + }, + } + + EXPERIMENTAL = True + RETURN_TYPES = ("HOOK_KEYFRAMES",) + RETURN_NAMES = ("HOOK_KF",) + CATEGORY = "advanced/hooks/scheduling" + FUNCTION = "create_hook_keyframes" + + def create_hook_keyframes(self, strength_start: float, strength_end: float, interpolation: str, + start_percent: float, end_percent: float, keyframes_count: int, + print_keyframes=False, prev_hook_kf: comfy.hooks.HookKeyframeGroup=None): + if prev_hook_kf is None: + prev_hook_kf = comfy.hooks.HookKeyframeGroup() + prev_hook_kf = prev_hook_kf.clone() + percents = comfy.hooks.InterpolationMethod.get_weights(num_from=start_percent, num_to=end_percent, length=keyframes_count, + method=comfy.hooks.InterpolationMethod.LINEAR) + strengths = comfy.hooks.InterpolationMethod.get_weights(num_from=strength_start, num_to=strength_end, length=keyframes_count, method=interpolation) + + is_first = True + for percent, strength in zip(percents, strengths): + guarantee_steps = 0 + if is_first: + guarantee_steps = 1 + is_first = False + prev_hook_kf.add(comfy.hooks.HookKeyframe(strength=strength, start_percent=percent, guarantee_steps=guarantee_steps)) + if print_keyframes: + logging.info(f"Hook Keyframe - start_percent:{percent} = {strength}") + return (prev_hook_kf,) + +class CreateHookKeyframesFromFloats: + NodeId = 'CreateHookKeyframesFromFloats' + NodeName = 'Create Hook Keyframes From Floats' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "floats_strength": ("FLOATS", {"default": -1, "min": -1, "step": 0.001, "forceInput": True}), + "start_percent": ("FLOAT", {"default": 0.0, "min": 0.0, "max": 1.0, "step": 0.001}), + "end_percent": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.001}), + "print_keyframes": ("BOOLEAN", {"default": False}), + }, + "optional": { + "prev_hook_kf": ("HOOK_KEYFRAMES",), + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("HOOK_KEYFRAMES",) + RETURN_NAMES = ("HOOK_KF",) + CATEGORY = "advanced/hooks/scheduling" + FUNCTION = "create_hook_keyframes" + + def create_hook_keyframes(self, floats_strength: Union[float, list[float]], + start_percent: float, end_percent: float, + prev_hook_kf: comfy.hooks.HookKeyframeGroup=None, print_keyframes=False): + if prev_hook_kf is None: + prev_hook_kf = comfy.hooks.HookKeyframeGroup() + prev_hook_kf = prev_hook_kf.clone() + if type(floats_strength) in (float, int): + floats_strength = [float(floats_strength)] + elif isinstance(floats_strength, Iterable): + pass + else: + raise Exception(f"floats_strength must be either an iterable input or a float, but was{type(floats_strength).__repr__}.") + percents = comfy.hooks.InterpolationMethod.get_weights(num_from=start_percent, num_to=end_percent, length=len(floats_strength), + method=comfy.hooks.InterpolationMethod.LINEAR) + + is_first = True + for percent, strength in zip(percents, floats_strength): + guarantee_steps = 0 + if is_first: + guarantee_steps = 1 + is_first = False + prev_hook_kf.add(comfy.hooks.HookKeyframe(strength=strength, start_percent=percent, guarantee_steps=guarantee_steps)) + if print_keyframes: + logging.info(f"Hook Keyframe - start_percent:{percent} = {strength}") + return (prev_hook_kf,) +#------------------------------------------ +########################################### + + +class SetModelHooksOnCond: + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "conditioning": ("CONDITIONING",), + "hooks": ("HOOKS",), + }, + } + + EXPERIMENTAL = True + RETURN_TYPES = ("CONDITIONING",) + CATEGORY = "advanced/hooks/manual" + FUNCTION = "attach_hook" + + def attach_hook(self, conditioning, hooks: comfy.hooks.HookGroup): + return (comfy.hooks.set_hooks_for_conditioning(conditioning, hooks),) + + +########################################### +# Combine Hooks +#------------------------------------------ +class CombineHooks: + NodeId = 'CombineHooks2' + NodeName = 'Combine Hooks [2]' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + }, + "optional": { + "hooks_A": ("HOOKS",), + "hooks_B": ("HOOKS",), + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("HOOKS",) + CATEGORY = "advanced/hooks/combine" + FUNCTION = "combine_hooks" + + def combine_hooks(self, + hooks_A: comfy.hooks.HookGroup=None, + hooks_B: comfy.hooks.HookGroup=None): + candidates = [hooks_A, hooks_B] + return (comfy.hooks.HookGroup.combine_all_hooks(candidates),) + +class CombineHooksFour: + NodeId = 'CombineHooks4' + NodeName = 'Combine Hooks [4]' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + }, + "optional": { + "hooks_A": ("HOOKS",), + "hooks_B": ("HOOKS",), + "hooks_C": ("HOOKS",), + "hooks_D": ("HOOKS",), + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("HOOKS",) + CATEGORY = "advanced/hooks/combine" + FUNCTION = "combine_hooks" + + def combine_hooks(self, + hooks_A: comfy.hooks.HookGroup=None, + hooks_B: comfy.hooks.HookGroup=None, + hooks_C: comfy.hooks.HookGroup=None, + hooks_D: comfy.hooks.HookGroup=None): + candidates = [hooks_A, hooks_B, hooks_C, hooks_D] + return (comfy.hooks.HookGroup.combine_all_hooks(candidates),) + +class CombineHooksEight: + NodeId = 'CombineHooks8' + NodeName = 'Combine Hooks [8]' + @classmethod + def INPUT_TYPES(s): + return { + "required": { + }, + "optional": { + "hooks_A": ("HOOKS",), + "hooks_B": ("HOOKS",), + "hooks_C": ("HOOKS",), + "hooks_D": ("HOOKS",), + "hooks_E": ("HOOKS",), + "hooks_F": ("HOOKS",), + "hooks_G": ("HOOKS",), + "hooks_H": ("HOOKS",), + } + } + + EXPERIMENTAL = True + RETURN_TYPES = ("HOOKS",) + CATEGORY = "advanced/hooks/combine" + FUNCTION = "combine_hooks" + + def combine_hooks(self, + hooks_A: comfy.hooks.HookGroup=None, + hooks_B: comfy.hooks.HookGroup=None, + hooks_C: comfy.hooks.HookGroup=None, + hooks_D: comfy.hooks.HookGroup=None, + hooks_E: comfy.hooks.HookGroup=None, + hooks_F: comfy.hooks.HookGroup=None, + hooks_G: comfy.hooks.HookGroup=None, + hooks_H: comfy.hooks.HookGroup=None): + candidates = [hooks_A, hooks_B, hooks_C, hooks_D, hooks_E, hooks_F, hooks_G, hooks_H] + return (comfy.hooks.HookGroup.combine_all_hooks(candidates),) +#------------------------------------------ +########################################### + +node_list = [ + # Create + CreateHookLora, + CreateHookLoraModelOnly, + CreateHookModelAsLora, + CreateHookModelAsLoraModelOnly, + # Scheduling + SetHookKeyframes, + CreateHookKeyframe, + CreateHookKeyframesInterpolated, + CreateHookKeyframesFromFloats, + # Combine + CombineHooks, + CombineHooksFour, + CombineHooksEight, + # Attach + ConditioningSetProperties, + ConditioningSetPropertiesAndCombine, + PairConditioningSetProperties, + PairConditioningSetPropertiesAndCombine, + ConditioningSetDefaultAndCombine, + PairConditioningSetDefaultAndCombine, + PairConditioningCombine, + SetClipHooks, + # Other + ConditioningTimestepsRange, +] +NODE_CLASS_MAPPINGS = {} +NODE_DISPLAY_NAME_MAPPINGS = {} + +for node in node_list: + NODE_CLASS_MAPPINGS[node.NodeId] = node + NODE_DISPLAY_NAME_MAPPINGS[node.NodeId] = node.NodeName diff --git a/comfy_extras/nodes_hunyuan.py b/comfy_extras/nodes_hunyuan.py index b03eaf6a..d6408269 100644 --- a/comfy_extras/nodes_hunyuan.py +++ b/comfy_extras/nodes_hunyuan.py @@ -1,3 +1,8 @@ +import nodes +import torch +import comfy.model_management + + class CLIPTextEncodeHunyuanDiT: @classmethod def INPUT_TYPES(s): @@ -15,11 +20,25 @@ class CLIPTextEncodeHunyuanDiT: tokens = clip.tokenize(bert) tokens["mt5xl"] = clip.tokenize(mt5xl)["mt5xl"] - output = clip.encode_from_tokens(tokens, return_pooled=True, return_dict=True) - cond = output.pop("cond") - return ([[cond, output]], ) + return (clip.encode_from_tokens_scheduled(tokens), ) +class EmptyHunyuanLatentVideo: + @classmethod + def INPUT_TYPES(s): + return {"required": { "width": ("INT", {"default": 848, "min": 16, "max": nodes.MAX_RESOLUTION, "step": 16}), + "height": ("INT", {"default": 480, "min": 16, "max": nodes.MAX_RESOLUTION, "step": 16}), + "length": ("INT", {"default": 25, "min": 1, "max": nodes.MAX_RESOLUTION, "step": 4}), + "batch_size": ("INT", {"default": 1, "min": 1, "max": 4096})}} + RETURN_TYPES = ("LATENT",) + FUNCTION = "generate" + + CATEGORY = "latent/video" + + def generate(self, width, height, length, batch_size=1): + latent = torch.zeros([batch_size, 16, ((length - 1) // 4) + 1, height // 8, width // 8], device=comfy.model_management.intermediate_device()) + return ({"samples":latent}, ) NODE_CLASS_MAPPINGS = { "CLIPTextEncodeHunyuanDiT": CLIPTextEncodeHunyuanDiT, + "EmptyHunyuanLatentVideo": EmptyHunyuanLatentVideo, } diff --git a/comfy_extras/nodes_hypertile.py b/comfy_extras/nodes_hypertile.py index 227133f3..b366117c 100644 --- a/comfy_extras/nodes_hypertile.py +++ b/comfy_extras/nodes_hypertile.py @@ -35,8 +35,6 @@ class HyperTile: CATEGORY = "model_patches/unet" def patch(self, model, tile_size, swap_size, max_depth, scale_depth): - model_channels = model.model.model_config.unet_config["model_channels"] - latent_tile_size = max(32, tile_size) // 8 self.temp = None diff --git a/comfy_extras/nodes_load_3d.py b/comfy_extras/nodes_load_3d.py new file mode 100644 index 00000000..3560ab78 --- /dev/null +++ b/comfy_extras/nodes_load_3d.py @@ -0,0 +1,143 @@ +import nodes +import folder_paths +import os + +def normalize_path(path): + return path.replace('\\', '/') + +class Load3D(): + @classmethod + def INPUT_TYPES(s): + input_dir = os.path.join(folder_paths.get_input_directory(), "3d") + + os.makedirs(input_dir, exist_ok=True) + + files = [normalize_path(os.path.join("3d", f)) for f in os.listdir(input_dir) if f.endswith(('.gltf', '.glb', '.obj', '.mtl', '.fbx', '.stl'))] + + return {"required": { + "model_file": (sorted(files), {"file_upload": True}), + "image": ("LOAD_3D", {}), + "width": ("INT", {"default": 1024, "min": 1, "max": 4096, "step": 1}), + "height": ("INT", {"default": 1024, "min": 1, "max": 4096, "step": 1}), + "show_grid": ([True, False],), + "camera_type": (["perspective", "orthographic"],), + "view": (["front", "right", "top", "isometric"],), + "material": (["original", "normal", "wireframe", "depth"],), + "bg_color": ("STRING", {"default": "#000000", "multiline": False}), + "light_intensity": ("INT", {"default": 10, "min": 1, "max": 20, "step": 1}), + "up_direction": (["original", "-x", "+x", "-y", "+y", "-z", "+z"],), + "fov": ("INT", {"default": 75, "min": 10, "max": 150, "step": 1}), + }} + + RETURN_TYPES = ("IMAGE", "MASK", "STRING") + RETURN_NAMES = ("image", "mask", "mesh_path") + + FUNCTION = "process" + EXPERIMENTAL = True + + CATEGORY = "3d" + + def process(self, model_file, image, **kwargs): + if isinstance(image, dict): + image_path = folder_paths.get_annotated_filepath(image['image']) + mask_path = folder_paths.get_annotated_filepath(image['mask']) + + load_image_node = nodes.LoadImage() + output_image, ignore_mask = load_image_node.load_image(image=image_path) + ignore_image, output_mask = load_image_node.load_image(image=mask_path) + + return output_image, output_mask, model_file, + else: + # to avoid the format is not dict which will happen the FE code is not compatibility to core, + # we need to this to double-check, it can be removed after merged FE into the core + image_path = folder_paths.get_annotated_filepath(image) + load_image_node = nodes.LoadImage() + output_image, output_mask = load_image_node.load_image(image=image_path) + return output_image, output_mask, model_file, + +class Load3DAnimation(): + @classmethod + def INPUT_TYPES(s): + input_dir = os.path.join(folder_paths.get_input_directory(), "3d") + + os.makedirs(input_dir, exist_ok=True) + + files = [normalize_path(os.path.join("3d", f)) for f in os.listdir(input_dir) if f.endswith(('.gltf', '.glb', '.fbx'))] + + return {"required": { + "model_file": (sorted(files), {"file_upload": True}), + "image": ("LOAD_3D_ANIMATION", {}), + "width": ("INT", {"default": 1024, "min": 1, "max": 4096, "step": 1}), + "height": ("INT", {"default": 1024, "min": 1, "max": 4096, "step": 1}), + "show_grid": ([True, False],), + "camera_type": (["perspective", "orthographic"],), + "view": (["front", "right", "top", "isometric"],), + "material": (["original", "normal", "wireframe", "depth"],), + "bg_color": ("STRING", {"default": "#000000", "multiline": False}), + "light_intensity": ("INT", {"default": 10, "min": 1, "max": 20, "step": 1}), + "up_direction": (["original", "-x", "+x", "-y", "+y", "-z", "+z"],), + "animation_speed": (["0.1", "0.5", "1", "1.5", "2"], {"default": "1"}), + "fov": ("INT", {"default": 75, "min": 10, "max": 150, "step": 1}), + }} + + RETURN_TYPES = ("IMAGE", "MASK", "STRING") + RETURN_NAMES = ("image", "mask", "mesh_path") + + FUNCTION = "process" + EXPERIMENTAL = True + + CATEGORY = "3d" + + def process(self, model_file, image, **kwargs): + if isinstance(image, dict): + image_path = folder_paths.get_annotated_filepath(image['image']) + mask_path = folder_paths.get_annotated_filepath(image['mask']) + + load_image_node = nodes.LoadImage() + output_image, ignore_mask = load_image_node.load_image(image=image_path) + ignore_image, output_mask = load_image_node.load_image(image=mask_path) + + return output_image, output_mask, model_file, + else: + image_path = folder_paths.get_annotated_filepath(image) + load_image_node = nodes.LoadImage() + output_image, output_mask = load_image_node.load_image(image=image_path) + return output_image, output_mask, model_file, + +class Preview3D(): + @classmethod + def INPUT_TYPES(s): + return {"required": { + "model_file": ("STRING", {"default": "", "multiline": False}), + "show_grid": ([True, False],), + "camera_type": (["perspective", "orthographic"],), + "view": (["front", "right", "top", "isometric"],), + "material": (["original", "normal", "wireframe", "depth"],), + "bg_color": ("STRING", {"default": "#000000", "multiline": False}), + "light_intensity": ("INT", {"default": 10, "min": 1, "max": 20, "step": 1}), + "up_direction": (["original", "-x", "+x", "-y", "+y", "-z", "+z"],), + "fov": ("INT", {"default": 75, "min": 10, "max": 150, "step": 1}), + }} + + OUTPUT_NODE = True + RETURN_TYPES = () + + CATEGORY = "3d" + + FUNCTION = "process" + EXPERIMENTAL = True + + def process(self, model_file, **kwargs): + return {"ui": {"model_file": [model_file]}, "result": ()} + +NODE_CLASS_MAPPINGS = { + "Load3D": Load3D, + "Load3DAnimation": Load3DAnimation, + "Preview3D": Preview3D +} + +NODE_DISPLAY_NAME_MAPPINGS = { + "Load3D": "Load 3D", + "Load3DAnimation": "Load 3D - Animation", + "Preview3D": "Preview 3D" +} diff --git a/comfy_extras/nodes_lt.py b/comfy_extras/nodes_lt.py new file mode 100644 index 00000000..dec91241 --- /dev/null +++ b/comfy_extras/nodes_lt.py @@ -0,0 +1,184 @@ +import nodes +import node_helpers +import torch +import comfy.model_management +import comfy.model_sampling +import math + +class EmptyLTXVLatentVideo: + @classmethod + def INPUT_TYPES(s): + return {"required": { "width": ("INT", {"default": 768, "min": 64, "max": nodes.MAX_RESOLUTION, "step": 32}), + "height": ("INT", {"default": 512, "min": 64, "max": nodes.MAX_RESOLUTION, "step": 32}), + "length": ("INT", {"default": 97, "min": 1, "max": nodes.MAX_RESOLUTION, "step": 8}), + "batch_size": ("INT", {"default": 1, "min": 1, "max": 4096})}} + RETURN_TYPES = ("LATENT",) + FUNCTION = "generate" + + CATEGORY = "latent/video/ltxv" + + def generate(self, width, height, length, batch_size=1): + latent = torch.zeros([batch_size, 128, ((length - 1) // 8) + 1, height // 32, width // 32], device=comfy.model_management.intermediate_device()) + return ({"samples": latent}, ) + + +class LTXVImgToVideo: + @classmethod + def INPUT_TYPES(s): + return {"required": {"positive": ("CONDITIONING", ), + "negative": ("CONDITIONING", ), + "vae": ("VAE",), + "image": ("IMAGE",), + "width": ("INT", {"default": 768, "min": 64, "max": nodes.MAX_RESOLUTION, "step": 32}), + "height": ("INT", {"default": 512, "min": 64, "max": nodes.MAX_RESOLUTION, "step": 32}), + "length": ("INT", {"default": 97, "min": 9, "max": nodes.MAX_RESOLUTION, "step": 8}), + "batch_size": ("INT", {"default": 1, "min": 1, "max": 4096}), + "image_noise_scale": ("FLOAT", {"default": 0.15, "min": 0, "max": 1.0, "step": 0.01, "tooltip": "Amount of noise to apply on conditioning image latent."}) + }} + + RETURN_TYPES = ("CONDITIONING", "CONDITIONING", "LATENT") + RETURN_NAMES = ("positive", "negative", "latent") + + CATEGORY = "conditioning/video_models" + FUNCTION = "generate" + + def generate(self, positive, negative, image, vae, width, height, length, batch_size, image_noise_scale): + pixels = comfy.utils.common_upscale(image.movedim(-1, 1), width, height, "bilinear", "center").movedim(1, -1) + encode_pixels = pixels[:, :, :, :3] + t = vae.encode(encode_pixels) + positive = node_helpers.conditioning_set_values(positive, {"guiding_latent": t, "guiding_latent_noise_scale": image_noise_scale}) + negative = node_helpers.conditioning_set_values(negative, {"guiding_latent": t, "guiding_latent_noise_scale": image_noise_scale}) + + latent = torch.zeros([batch_size, 128, ((length - 1) // 8) + 1, height // 32, width // 32], device=comfy.model_management.intermediate_device()) + latent[:, :, :t.shape[2]] = t + return (positive, negative, {"samples": latent}, ) + + +class LTXVConditioning: + @classmethod + def INPUT_TYPES(s): + return {"required": {"positive": ("CONDITIONING", ), + "negative": ("CONDITIONING", ), + "frame_rate": ("FLOAT", {"default": 25.0, "min": 0.0, "max": 1000.0, "step": 0.01}), + }} + RETURN_TYPES = ("CONDITIONING", "CONDITIONING") + RETURN_NAMES = ("positive", "negative") + FUNCTION = "append" + + CATEGORY = "conditioning/video_models" + + def append(self, positive, negative, frame_rate): + positive = node_helpers.conditioning_set_values(positive, {"frame_rate": frame_rate}) + negative = node_helpers.conditioning_set_values(negative, {"frame_rate": frame_rate}) + return (positive, negative) + + +class ModelSamplingLTXV: + @classmethod + def INPUT_TYPES(s): + return {"required": { "model": ("MODEL",), + "max_shift": ("FLOAT", {"default": 2.05, "min": 0.0, "max": 100.0, "step":0.01}), + "base_shift": ("FLOAT", {"default": 0.95, "min": 0.0, "max": 100.0, "step":0.01}), + }, + "optional": {"latent": ("LATENT",), } + } + + RETURN_TYPES = ("MODEL",) + FUNCTION = "patch" + + CATEGORY = "advanced/model" + + def patch(self, model, max_shift, base_shift, latent=None): + m = model.clone() + + if latent is None: + tokens = 4096 + else: + tokens = math.prod(latent["samples"].shape[2:]) + + x1 = 1024 + x2 = 4096 + mm = (max_shift - base_shift) / (x2 - x1) + b = base_shift - mm * x1 + shift = (tokens) * mm + b + + sampling_base = comfy.model_sampling.ModelSamplingFlux + sampling_type = comfy.model_sampling.CONST + + class ModelSamplingAdvanced(sampling_base, sampling_type): + pass + + model_sampling = ModelSamplingAdvanced(model.model.model_config) + model_sampling.set_parameters(shift=shift) + m.add_object_patch("model_sampling", model_sampling) + + return (m, ) + + +class LTXVScheduler: + @classmethod + def INPUT_TYPES(s): + return {"required": + {"steps": ("INT", {"default": 20, "min": 1, "max": 10000}), + "max_shift": ("FLOAT", {"default": 2.05, "min": 0.0, "max": 100.0, "step":0.01}), + "base_shift": ("FLOAT", {"default": 0.95, "min": 0.0, "max": 100.0, "step":0.01}), + "stretch": ("BOOLEAN", { + "default": True, + "tooltip": "Stretch the sigmas to be in the range [terminal, 1]." + }), + "terminal": ( + "FLOAT", + { + "default": 0.1, "min": 0.0, "max": 0.99, "step": 0.01, + "tooltip": "The terminal value of the sigmas after stretching." + }, + ), + }, + "optional": {"latent": ("LATENT",), } + } + + RETURN_TYPES = ("SIGMAS",) + CATEGORY = "sampling/custom_sampling/schedulers" + + FUNCTION = "get_sigmas" + + def get_sigmas(self, steps, max_shift, base_shift, stretch, terminal, latent=None): + if latent is None: + tokens = 4096 + else: + tokens = math.prod(latent["samples"].shape[2:]) + + sigmas = torch.linspace(1.0, 0.0, steps + 1) + + x1 = 1024 + x2 = 4096 + mm = (max_shift - base_shift) / (x2 - x1) + b = base_shift - mm * x1 + sigma_shift = (tokens) * mm + b + + power = 1 + sigmas = torch.where( + sigmas != 0, + math.exp(sigma_shift) / (math.exp(sigma_shift) + (1 / sigmas - 1) ** power), + 0, + ) + + # Stretch sigmas so that its final value matches the given terminal value. + if stretch: + non_zero_mask = sigmas != 0 + non_zero_sigmas = sigmas[non_zero_mask] + one_minus_z = 1.0 - non_zero_sigmas + scale_factor = one_minus_z[-1] / (1.0 - terminal) + stretched = 1.0 - (one_minus_z / scale_factor) + sigmas[non_zero_mask] = stretched + + return (sigmas,) + + +NODE_CLASS_MAPPINGS = { + "EmptyLTXVLatentVideo": EmptyLTXVLatentVideo, + "LTXVImgToVideo": LTXVImgToVideo, + "ModelSamplingLTXV": ModelSamplingLTXV, + "LTXVConditioning": LTXVConditioning, + "LTXVScheduler": LTXVScheduler, +} diff --git a/comfy_extras/nodes_mahiro.py b/comfy_extras/nodes_mahiro.py new file mode 100644 index 00000000..8fcdfba7 --- /dev/null +++ b/comfy_extras/nodes_mahiro.py @@ -0,0 +1,41 @@ +import torch +import torch.nn.functional as F + +class Mahiro: + @classmethod + def INPUT_TYPES(s): + return {"required": {"model": ("MODEL",), + }} + RETURN_TYPES = ("MODEL",) + RETURN_NAMES = ("patched_model",) + FUNCTION = "patch" + CATEGORY = "_for_testing" + DESCRIPTION = "Modify the guidance to scale more on the 'direction' of the positive prompt rather than the difference between the negative prompt." + def patch(self, model): + m = model.clone() + def mahiro_normd(args): + scale: float = args['cond_scale'] + cond_p: torch.Tensor = args['cond_denoised'] + uncond_p: torch.Tensor = args['uncond_denoised'] + #naive leap + leap = cond_p * scale + #sim with uncond leap + u_leap = uncond_p * scale + cfg = args["denoised"] + merge = (leap + cfg) / 2 + normu = torch.sqrt(u_leap.abs()) * u_leap.sign() + normm = torch.sqrt(merge.abs()) * merge.sign() + sim = F.cosine_similarity(normu, normm).mean() + simsc = 2 * (sim+1) + wm = (simsc*cfg + (4-simsc)*leap) / 4 + return wm + m.set_model_sampler_post_cfg_function(mahiro_normd) + return (m, ) + +NODE_CLASS_MAPPINGS = { + "Mahiro": Mahiro +} + +NODE_DISPLAY_NAME_MAPPINGS = { + "Mahiro": "Mahiro is so cute that she deserves a better guidance function!! (。・ω・。)", +} diff --git a/comfy_extras/nodes_mask.py b/comfy_extras/nodes_mask.py index 29589b4a..63fd13b9 100644 --- a/comfy_extras/nodes_mask.py +++ b/comfy_extras/nodes_mask.py @@ -305,7 +305,7 @@ class FeatherMask: output[:, -y, :] *= feather_rate return (output,) - + class GrowMask: @classmethod def INPUT_TYPES(cls): @@ -316,7 +316,7 @@ class GrowMask: "tapered_corners": ("BOOLEAN", {"default": True}), }, } - + CATEGORY = "mask" RETURN_TYPES = ("MASK",) diff --git a/comfy_extras/nodes_mochi.py b/comfy_extras/nodes_mochi.py index 4cbbea09..1c474faa 100644 --- a/comfy_extras/nodes_mochi.py +++ b/comfy_extras/nodes_mochi.py @@ -3,9 +3,6 @@ import torch import comfy.model_management class EmptyMochiLatentVideo: - def __init__(self): - self.device = comfy.model_management.intermediate_device() - @classmethod def INPUT_TYPES(s): return {"required": { "width": ("INT", {"default": 848, "min": 16, "max": nodes.MAX_RESOLUTION, "step": 16}), @@ -15,10 +12,10 @@ class EmptyMochiLatentVideo: RETURN_TYPES = ("LATENT",) FUNCTION = "generate" - CATEGORY = "latent/mochi" + CATEGORY = "latent/video" def generate(self, width, height, length, batch_size=1): - latent = torch.zeros([batch_size, 12, ((length - 1) // 6) + 1, height // 8, width // 8], device=self.device) + latent = torch.zeros([batch_size, 12, ((length - 1) // 6) + 1, height // 8, width // 8], device=comfy.model_management.intermediate_device()) return ({"samples":latent}, ) NODE_CLASS_MAPPINGS = { diff --git a/comfy_extras/nodes_model_advanced.py b/comfy_extras/nodes_model_advanced.py index 918e6085..285dbf53 100644 --- a/comfy_extras/nodes_model_advanced.py +++ b/comfy_extras/nodes_model_advanced.py @@ -1,4 +1,3 @@ -import folder_paths import comfy.sd import comfy.model_sampling import comfy.latent_formats @@ -26,8 +25,8 @@ class X0(comfy.model_sampling.EPS): class ModelSamplingDiscreteDistilled(comfy.model_sampling.ModelSamplingDiscrete): original_timesteps = 50 - def __init__(self, model_config=None): - super().__init__(model_config) + def __init__(self, model_config=None, zsnr=None): + super().__init__(model_config, zsnr=zsnr) self.skip_steps = self.num_timesteps // self.original_timesteps @@ -51,25 +50,6 @@ class ModelSamplingDiscreteDistilled(comfy.model_sampling.ModelSamplingDiscrete) return log_sigma.exp().to(timestep.device) -def rescale_zero_terminal_snr_sigmas(sigmas): - alphas_cumprod = 1 / ((sigmas * sigmas) + 1) - alphas_bar_sqrt = alphas_cumprod.sqrt() - - # Store old values. - alphas_bar_sqrt_0 = alphas_bar_sqrt[0].clone() - alphas_bar_sqrt_T = alphas_bar_sqrt[-1].clone() - - # Shift so the last timestep is zero. - alphas_bar_sqrt -= (alphas_bar_sqrt_T) - - # Scale so the first timestep is back to the old value. - alphas_bar_sqrt *= alphas_bar_sqrt_0 / (alphas_bar_sqrt_0 - alphas_bar_sqrt_T) - - # Convert alphas_bar_sqrt to betas - alphas_bar = alphas_bar_sqrt**2 # Revert sqrt - alphas_bar[-1] = 4.8973451890853435e-08 - return ((1 - alphas_bar) / alphas_bar) ** 0.5 - class ModelSamplingDiscrete: @classmethod def INPUT_TYPES(s): @@ -100,9 +80,7 @@ class ModelSamplingDiscrete: class ModelSamplingAdvanced(sampling_base, sampling_type): pass - model_sampling = ModelSamplingAdvanced(model.model.model_config) - if zsnr: - model_sampling.set_sigmas(rescale_zero_terminal_snr_sigmas(model_sampling.sigmas)) + model_sampling = ModelSamplingAdvanced(model.model.model_config, zsnr=zsnr) m.add_object_patch("model_sampling", model_sampling) return (m, ) @@ -262,7 +240,6 @@ class ModelSamplingContinuousV: def patch(self, model, sampling, sigma_max, sigma_min): m = model.clone() - latent_format = None sigma_data = 1.0 if sampling == "v_prediction": sampling_type = comfy.model_sampling.V_PREDICTION diff --git a/comfy_extras/nodes_model_downscale.py b/comfy_extras/nodes_model_downscale.py index 15ffc4c8..49420dee 100644 --- a/comfy_extras/nodes_model_downscale.py +++ b/comfy_extras/nodes_model_downscale.py @@ -1,4 +1,3 @@ -import torch import comfy.utils class PatchModelAddDownscale: diff --git a/comfy_extras/nodes_model_merging_model_specific.py b/comfy_extras/nodes_model_merging_model_specific.py index 0e847192..7cd8f98b 100644 --- a/comfy_extras/nodes_model_merging_model_specific.py +++ b/comfy_extras/nodes_model_merging_model_specific.py @@ -75,6 +75,34 @@ class ModelMergeSD3_2B(comfy_extras.nodes_model_merging.ModelMergeBlocks): return {"required": arg_dict} + +class ModelMergeAuraflow(comfy_extras.nodes_model_merging.ModelMergeBlocks): + CATEGORY = "advanced/model_merging/model_specific" + + @classmethod + def INPUT_TYPES(s): + arg_dict = { "model1": ("MODEL",), + "model2": ("MODEL",)} + + argument = ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.01}) + + arg_dict["init_x_linear."] = argument + arg_dict["positional_encoding"] = argument + arg_dict["cond_seq_linear."] = argument + arg_dict["register_tokens"] = argument + arg_dict["t_embedder."] = argument + + for i in range(4): + arg_dict["double_layers.{}.".format(i)] = argument + + for i in range(32): + arg_dict["single_layers.{}.".format(i)] = argument + + arg_dict["modF."] = argument + arg_dict["final_linear."] = argument + + return {"required": arg_dict} + class ModelMergeFlux1(comfy_extras.nodes_model_merging.ModelMergeBlocks): CATEGORY = "advanced/model_merging/model_specific" @@ -124,11 +152,58 @@ class ModelMergeSD35_Large(comfy_extras.nodes_model_merging.ModelMergeBlocks): return {"required": arg_dict} +class ModelMergeMochiPreview(comfy_extras.nodes_model_merging.ModelMergeBlocks): + CATEGORY = "advanced/model_merging/model_specific" + + @classmethod + def INPUT_TYPES(s): + arg_dict = { "model1": ("MODEL",), + "model2": ("MODEL",)} + + argument = ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.01}) + + arg_dict["pos_frequencies."] = argument + arg_dict["t_embedder."] = argument + arg_dict["t5_y_embedder."] = argument + arg_dict["t5_yproj."] = argument + + for i in range(48): + arg_dict["blocks.{}.".format(i)] = argument + + arg_dict["final_layer."] = argument + + return {"required": arg_dict} + +class ModelMergeLTXV(comfy_extras.nodes_model_merging.ModelMergeBlocks): + CATEGORY = "advanced/model_merging/model_specific" + + @classmethod + def INPUT_TYPES(s): + arg_dict = { "model1": ("MODEL",), + "model2": ("MODEL",)} + + argument = ("FLOAT", {"default": 1.0, "min": 0.0, "max": 1.0, "step": 0.01}) + + arg_dict["patchify_proj."] = argument + arg_dict["adaln_single."] = argument + arg_dict["caption_projection."] = argument + + for i in range(28): + arg_dict["transformer_blocks.{}.".format(i)] = argument + + arg_dict["scale_shift_table"] = argument + arg_dict["proj_out."] = argument + + return {"required": arg_dict} + NODE_CLASS_MAPPINGS = { "ModelMergeSD1": ModelMergeSD1, "ModelMergeSD2": ModelMergeSD1, #SD1 and SD2 have the same blocks "ModelMergeSDXL": ModelMergeSDXL, "ModelMergeSD3_2B": ModelMergeSD3_2B, + "ModelMergeAuraflow": ModelMergeAuraflow, "ModelMergeFlux1": ModelMergeFlux1, "ModelMergeSD35_Large": ModelMergeSD35_Large, + "ModelMergeMochiPreview": ModelMergeMochiPreview, + "ModelMergeLTXV": ModelMergeLTXV, } diff --git a/comfy_extras/nodes_morphology.py b/comfy_extras/nodes_morphology.py index 071521d8..b1372b8c 100644 --- a/comfy_extras/nodes_morphology.py +++ b/comfy_extras/nodes_morphology.py @@ -46,4 +46,4 @@ NODE_CLASS_MAPPINGS = { NODE_DISPLAY_NAME_MAPPINGS = { "Morphology": "ImageMorphology", -} \ No newline at end of file +} diff --git a/comfy_extras/nodes_perpneg.py b/comfy_extras/nodes_perpneg.py index 762c4022..6c6f7176 100644 --- a/comfy_extras/nodes_perpneg.py +++ b/comfy_extras/nodes_perpneg.py @@ -64,7 +64,7 @@ class Guider_PerpNeg(comfy.samplers.CFGGuider): def predict_noise(self, x, timestep, model_options={}, seed=None): # in CFGGuider.predict_noise, we call sampling_function(), which uses cfg_function() to compute pos & neg # but we'd rather do a single batch of sampling pos, neg, and empty, so we call calc_cond_batch([pos,neg,empty]) directly - + positive_cond = self.conds.get("positive", None) negative_cond = self.conds.get("negative", None) empty_cond = self.conds.get("empty_negative_prompt", None) @@ -73,7 +73,7 @@ class Guider_PerpNeg(comfy.samplers.CFGGuider): comfy.samplers.calc_cond_batch(self.inner_model, [positive_cond, negative_cond, empty_cond], x, timestep, model_options) cfg_result = perp_neg(x, noise_pred_pos, noise_pred_neg, noise_pred_empty, self.neg_scale, self.cfg) - # normally this would be done in cfg_function, but we skipped + # normally this would be done in cfg_function, but we skipped # that for efficiency: we can compute the noise predictions in # a single call to calc_cond_batch() (rather than two) # so we replicate the hook here diff --git a/comfy_extras/nodes_photomaker.py b/comfy_extras/nodes_photomaker.py index 95d24dd2..d358ed6d 100644 --- a/comfy_extras/nodes_photomaker.py +++ b/comfy_extras/nodes_photomaker.py @@ -16,6 +16,7 @@ VISION_CONFIG_DICT = { "patch_size": 14, "projection_dim": 768, "hidden_act": "quick_gelu", + "model_type": "clip_vision_model", } class MLP(nn.Module): diff --git a/comfy_extras/nodes_pixart.py b/comfy_extras/nodes_pixart.py new file mode 100644 index 00000000..c7209c46 --- /dev/null +++ b/comfy_extras/nodes_pixart.py @@ -0,0 +1,24 @@ +from nodes import MAX_RESOLUTION + +class CLIPTextEncodePixArtAlpha: + @classmethod + def INPUT_TYPES(s): + return {"required": { + "width": ("INT", {"default": 1024.0, "min": 0, "max": MAX_RESOLUTION}), + "height": ("INT", {"default": 1024.0, "min": 0, "max": MAX_RESOLUTION}), + # "aspect_ratio": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 10.0, "step": 0.01}), + "text": ("STRING", {"multiline": True, "dynamicPrompts": True}), "clip": ("CLIP", ), + }} + + RETURN_TYPES = ("CONDITIONING",) + FUNCTION = "encode" + CATEGORY = "advanced/conditioning" + DESCRIPTION = "Encodes text and sets the resolution conditioning for PixArt Alpha. Does not apply to PixArt Sigma." + + def encode(self, clip, width, height, text): + tokens = clip.tokenize(text) + return (clip.encode_from_tokens_scheduled(tokens, add_dict={"width": width, "height": height}),) + +NODE_CLASS_MAPPINGS = { + "CLIPTextEncodePixArtAlpha": CLIPTextEncodePixArtAlpha, +} diff --git a/comfy_extras/nodes_rebatch.py b/comfy_extras/nodes_rebatch.py index 3010fbd4..e29cb9ed 100644 --- a/comfy_extras/nodes_rebatch.py +++ b/comfy_extras/nodes_rebatch.py @@ -40,7 +40,7 @@ class LatentRebatch: return slices, indexable[num * batch_size:] else: return slices, None - + @staticmethod def slice_batch(batch, num, batch_size): result = [LatentRebatch.get_slices(x, num, batch_size) for x in batch] @@ -81,7 +81,7 @@ class LatentRebatch: if current_batch[0].shape[0] > batch_size: num = current_batch[0].shape[0] // batch_size sliced, remainder = self.slice_batch(current_batch, num, batch_size) - + for i in range(num): output_list.append({'samples': sliced[0][i], 'noise_mask': sliced[1][i], 'batch_index': sliced[2][i]}) diff --git a/comfy_extras/nodes_sag.py b/comfy_extras/nodes_sag.py index 5e15b99e..1bd8d736 100644 --- a/comfy_extras/nodes_sag.py +++ b/comfy_extras/nodes_sag.py @@ -57,12 +57,24 @@ def create_blur_map(x0, attn, sigma=3.0, threshold=1.0): attn = attn.reshape(b, -1, hw1, hw2) # Global Average Pool mask = attn.mean(1, keepdim=False).sum(1, keepdim=False) > threshold - ratio = 2**(math.ceil(math.sqrt(lh * lw / hw1)) - 1).bit_length() - mid_shape = [math.ceil(lh / ratio), math.ceil(lw / ratio)] + + total = mask.shape[-1] + x = round(math.sqrt((lh / lw) * total)) + xx = None + for i in range(0, math.floor(math.sqrt(total) / 2)): + for j in [(x + i), max(1, x - i)]: + if total % j == 0: + xx = j + break + if xx is not None: + break + + x = xx + y = total // x # Reshape mask = ( - mask.reshape(b, *mid_shape) + mask.reshape(b, x, y) .unsqueeze(1) .type(attn.dtype) ) diff --git a/comfy_extras/nodes_sd3.py b/comfy_extras/nodes_sd3.py index 4d664093..d75b29e6 100644 --- a/comfy_extras/nodes_sd3.py +++ b/comfy_extras/nodes_sd3.py @@ -3,24 +3,29 @@ import comfy.sd import comfy.model_management import nodes import torch -import re +import comfy_extras.nodes_slg + + class TripleCLIPLoader: @classmethod def INPUT_TYPES(s): - return {"required": { "clip_name1": (folder_paths.get_filename_list("clip"), ), "clip_name2": (folder_paths.get_filename_list("clip"), ), "clip_name3": (folder_paths.get_filename_list("clip"), ) + return {"required": { "clip_name1": (folder_paths.get_filename_list("text_encoders"), ), "clip_name2": (folder_paths.get_filename_list("text_encoders"), ), "clip_name3": (folder_paths.get_filename_list("text_encoders"), ) }} RETURN_TYPES = ("CLIP",) FUNCTION = "load_clip" CATEGORY = "advanced/loaders" + DESCRIPTION = "[Recipes]\n\nsd3: clip-l, clip-g, t5" + def load_clip(self, clip_name1, clip_name2, clip_name3): - clip_path1 = folder_paths.get_full_path_or_raise("clip", clip_name1) - clip_path2 = folder_paths.get_full_path_or_raise("clip", clip_name2) - clip_path3 = folder_paths.get_full_path_or_raise("clip", clip_name3) + clip_path1 = folder_paths.get_full_path_or_raise("text_encoders", clip_name1) + clip_path2 = folder_paths.get_full_path_or_raise("text_encoders", clip_name2) + clip_path3 = folder_paths.get_full_path_or_raise("text_encoders", clip_name3) clip = comfy.sd.load_clip(ckpt_paths=[clip_path1, clip_path2, clip_path3], embedding_directory=folder_paths.get_folder_paths("embeddings")) return (clip,) + class EmptySD3LatentImage: def __init__(self): self.device = comfy.model_management.intermediate_device() @@ -39,6 +44,7 @@ class EmptySD3LatentImage: latent = torch.zeros([batch_size, 16, height // 8, width // 8], device=self.device) return ({"samples":latent}, ) + class CLIPTextEncodeSD3: @classmethod def INPUT_TYPES(s): @@ -76,8 +82,7 @@ class CLIPTextEncodeSD3: tokens["l"] += empty["l"] while len(tokens["l"]) > len(tokens["g"]): tokens["g"] += empty["g"] - cond, pooled = clip.encode_from_tokens(tokens, return_pooled=True) - return ([[cond, {"pooled_output": pooled}]], ) + return (clip.encode_from_tokens_scheduled(tokens), ) class ControlNetApplySD3(nodes.ControlNetApplyAdvanced): @@ -95,7 +100,8 @@ class ControlNetApplySD3(nodes.ControlNetApplyAdvanced): CATEGORY = "conditioning/controlnet" DEPRECATED = True -class SkipLayerGuidanceSD3: + +class SkipLayerGuidanceSD3(comfy_extras.nodes_slg.SkipLayerGuidanceDiT): ''' Enhance guidance towards detailed dtructure by having another set of CFG negative with skipped layers. Inspired by Perturbed Attention Guidance (https://arxiv.org/abs/2403.17377) @@ -110,47 +116,12 @@ class SkipLayerGuidanceSD3: "end_percent": ("FLOAT", {"default": 0.15, "min": 0.0, "max": 1.0, "step": 0.001}) }} RETURN_TYPES = ("MODEL",) - FUNCTION = "skip_guidance" + FUNCTION = "skip_guidance_sd3" CATEGORY = "advanced/guidance" - - def skip_guidance(self, model, layers, scale, start_percent, end_percent): - if layers == "" or layers == None: - return (model, ) - # check if layer is comma separated integers - def skip(args, extra_args): - return args - - model_sampling = model.get_model_object("model_sampling") - sigma_start = model_sampling.percent_to_sigma(start_percent) - sigma_end = model_sampling.percent_to_sigma(end_percent) - - def post_cfg_function(args): - model = args["model"] - cond_pred = args["cond_denoised"] - cond = args["cond"] - cfg_result = args["denoised"] - sigma = args["sigma"] - x = args["input"] - model_options = args["model_options"].copy() - - for layer in layers: - model_options = comfy.model_patcher.set_model_options_patch_replace(model_options, skip, "dit", "double_block", layer) - model_sampling.percent_to_sigma(start_percent) - - sigma_ = sigma[0].item() - if scale > 0 and sigma_ >= sigma_end and sigma_ <= sigma_start: - (slg,) = comfy.samplers.calc_cond_batch(model, [cond], x, sigma, model_options) - cfg_result = cfg_result + (cond_pred - slg) * scale - return cfg_result - - layers = re.findall(r'\d+', layers) - layers = [int(i) for i in layers] - m = model.clone() - m.set_model_sampler_post_cfg_function(post_cfg_function) - - return (m, ) + def skip_guidance_sd3(self, model, layers, scale, start_percent, end_percent): + return self.skip_guidance(model=model, scale=scale, start_percent=start_percent, end_percent=end_percent, double_layers=layers) NODE_CLASS_MAPPINGS = { diff --git a/comfy_extras/nodes_slg.py b/comfy_extras/nodes_slg.py new file mode 100644 index 00000000..2fa09e25 --- /dev/null +++ b/comfy_extras/nodes_slg.py @@ -0,0 +1,84 @@ +import comfy.model_patcher +import comfy.samplers +import re + + +class SkipLayerGuidanceDiT: + ''' + Enhance guidance towards detailed dtructure by having another set of CFG negative with skipped layers. + Inspired by Perturbed Attention Guidance (https://arxiv.org/abs/2403.17377) + Original experimental implementation for SD3 by Dango233@StabilityAI. + ''' + @classmethod + def INPUT_TYPES(s): + return {"required": {"model": ("MODEL", ), + "double_layers": ("STRING", {"default": "7, 8, 9", "multiline": False}), + "single_layers": ("STRING", {"default": "7, 8, 9", "multiline": False}), + "scale": ("FLOAT", {"default": 3.0, "min": 0.0, "max": 10.0, "step": 0.1}), + "start_percent": ("FLOAT", {"default": 0.01, "min": 0.0, "max": 1.0, "step": 0.001}), + "end_percent": ("FLOAT", {"default": 0.15, "min": 0.0, "max": 1.0, "step": 0.001}), + "rescaling_scale": ("FLOAT", {"default": 0.0, "min": 0.0, "max": 10.0, "step": 0.01}), + }} + RETURN_TYPES = ("MODEL",) + FUNCTION = "skip_guidance" + EXPERIMENTAL = True + + DESCRIPTION = "Generic version of SkipLayerGuidance node that can be used on every DiT model." + + CATEGORY = "advanced/guidance" + + def skip_guidance(self, model, scale, start_percent, end_percent, double_layers="", single_layers="", rescaling_scale=0): + # check if layer is comma separated integers + def skip(args, extra_args): + return args + + model_sampling = model.get_model_object("model_sampling") + sigma_start = model_sampling.percent_to_sigma(start_percent) + sigma_end = model_sampling.percent_to_sigma(end_percent) + + double_layers = re.findall(r'\d+', double_layers) + double_layers = [int(i) for i in double_layers] + + single_layers = re.findall(r'\d+', single_layers) + single_layers = [int(i) for i in single_layers] + + if len(double_layers) == 0 and len(single_layers) == 0: + return (model, ) + + def post_cfg_function(args): + model = args["model"] + cond_pred = args["cond_denoised"] + cond = args["cond"] + cfg_result = args["denoised"] + sigma = args["sigma"] + x = args["input"] + model_options = args["model_options"].copy() + + for layer in double_layers: + model_options = comfy.model_patcher.set_model_options_patch_replace(model_options, skip, "dit", "double_block", layer) + + for layer in single_layers: + model_options = comfy.model_patcher.set_model_options_patch_replace(model_options, skip, "dit", "single_block", layer) + + model_sampling.percent_to_sigma(start_percent) + + sigma_ = sigma[0].item() + if scale > 0 and sigma_ >= sigma_end and sigma_ <= sigma_start: + (slg,) = comfy.samplers.calc_cond_batch(model, [cond], x, sigma, model_options) + cfg_result = cfg_result + (cond_pred - slg) * scale + if rescaling_scale != 0: + factor = cond_pred.std() / cfg_result.std() + factor = rescaling_scale * factor + (1 - rescaling_scale) + cfg_result *= factor + + return cfg_result + + m = model.clone() + m.set_model_sampler_post_cfg_function(post_cfg_function) + + return (m, ) + + +NODE_CLASS_MAPPINGS = { + "SkipLayerGuidanceDiT": SkipLayerGuidanceDiT, +} diff --git a/comfy_extras/nodes_tomesd.py b/comfy_extras/nodes_tomesd.py index ce7b32c7..9f77c06f 100644 --- a/comfy_extras/nodes_tomesd.py +++ b/comfy_extras/nodes_tomesd.py @@ -40,9 +40,8 @@ def bipartite_soft_matching_random2d(metric: torch.Tensor, return do_nothing, do_nothing gather = mps_gather_workaround if metric.device.type == "mps" else torch.gather - + with torch.no_grad(): - hsy, wsx = h // sy, w // sx # For each sy by sx kernel, randomly assign one token to be dst and the rest src @@ -50,7 +49,7 @@ def bipartite_soft_matching_random2d(metric: torch.Tensor, rand_idx = torch.zeros(hsy, wsx, 1, device=metric.device, dtype=torch.int64) else: rand_idx = torch.randint(sy*sx, size=(hsy, wsx, 1), device=metric.device) - + # The image might not divide sx and sy, so we need to work on a view of the top left if the idx buffer instead idx_buffer_view = torch.zeros(hsy, wsx, sy*sx, device=metric.device, dtype=torch.int64) idx_buffer_view.scatter_(dim=2, index=rand_idx, src=-torch.ones_like(rand_idx, dtype=rand_idx.dtype)) @@ -99,7 +98,7 @@ def bipartite_soft_matching_random2d(metric: torch.Tensor, def merge(x: torch.Tensor, mode="mean") -> torch.Tensor: src, dst = split(x) n, t1, c = src.shape - + unm = gather(src, dim=-2, index=unm_idx.expand(n, t1 - r, c)) src = gather(src, dim=-2, index=src_idx.expand(n, r, c)) dst = dst.scatter_reduce(-2, dst_idx.expand(n, r, c), src, reduce=mode) diff --git a/comfy_extras/nodes_upscale_model.py b/comfy_extras/nodes_upscale_model.py index 6ba3e404..04c94834 100644 --- a/comfy_extras/nodes_upscale_model.py +++ b/comfy_extras/nodes_upscale_model.py @@ -1,4 +1,3 @@ -import os import logging from spandrel import ModelLoader, ImageModelDescriptor from comfy import model_management diff --git a/comfy_extras/nodes_webcam.py b/comfy_extras/nodes_webcam.py index 32a0ba2f..31eddb2d 100644 --- a/comfy_extras/nodes_webcam.py +++ b/comfy_extras/nodes_webcam.py @@ -30,4 +30,4 @@ NODE_CLASS_MAPPINGS = { NODE_DISPLAY_NAME_MAPPINGS = { "WebcamCapture": "Webcam Capture", -} \ No newline at end of file +} diff --git a/comfyui_screenshot.png b/comfyui_screenshot.png deleted file mode 100644 index 73272eae..00000000 Binary files a/comfyui_screenshot.png and /dev/null differ diff --git a/custom_nodes/websocket_image_save.py b/custom_nodes/websocket_image_save.py index 09fe1bde..15f87f9f 100644 --- a/custom_nodes/websocket_image_save.py +++ b/custom_nodes/websocket_image_save.py @@ -1,7 +1,5 @@ -from PIL import Image, ImageOps -from io import BytesIO +from PIL import Image import numpy as np -import struct import comfy.utils import time diff --git a/execution.py b/execution.py index 6c386341..2c979205 100644 --- a/execution.py +++ b/execution.py @@ -16,7 +16,7 @@ import comfy.model_management from comfy_execution.graph import get_input_info, ExecutionList, DynamicPrompt, ExecutionBlocker from comfy_execution.graph_utils import is_link, GraphBuilder from comfy_execution.caching import HierarchicalCache, LRUCache, CacheKeySetInputSignature, CacheKeySetID -from comfy.cli_args import args +from comfy_execution.validation import validate_node_input class ExecutionResult(Enum): SUCCESS = 0 @@ -62,7 +62,7 @@ class IsChangedCache: class CacheSet: def __init__(self, lru_size=None): if lru_size is None or lru_size == 0: - self.init_classic_cache() + self.init_classic_cache() else: self.init_lru_cache(lru_size) self.all = [self.outputs, self.ui, self.objects] @@ -93,7 +93,7 @@ def get_input_data(inputs, class_def, unique_id, outputs=None, dynprompt=None, e missing_keys = {} for x in inputs: input_data = inputs[x] - input_type, input_category, input_info = get_input_info(class_def, x) + input_type, input_category, input_info = get_input_info(class_def, x, valid_inputs) def mark_missing(): missing_keys[x] = True input_data_all[x] = (None,) @@ -138,17 +138,22 @@ def _map_node_over_list(obj, input_data_all, func, allow_interrupt=False, execut max_len_input = 0 else: max_len_input = max(len(x) for x in input_data_all.values()) - + # get a slice of inputs, repeat last input when list isn't long enough def slice_dict(d, i): return {k: v[i if len(v) > i else -1] for k, v in d.items()} - + results = [] - def process_inputs(inputs, index=None): + def process_inputs(inputs, index=None, input_is_list=False): if allow_interrupt: nodes.before_node_execution() execution_block = None for k, v in inputs.items(): + if input_is_list: + for e in v: + if isinstance(e, ExecutionBlocker): + v = e + break if isinstance(v, ExecutionBlocker): execution_block = execution_block_cb(v) if execution_block_cb else v break @@ -160,10 +165,10 @@ def _map_node_over_list(obj, input_data_all, func, allow_interrupt=False, execut results.append(execution_block) if input_is_list: - process_inputs(input_data_all, 0) + process_inputs(input_data_all, 0, input_is_list=input_is_list) elif max_len_input == 0: process_inputs({}) - else: + else: for i in range(max_len_input): input_dict = slice_dict(input_data_all, i) process_inputs(input_dict, i) @@ -191,7 +196,6 @@ def merge_result_data(results, obj): return output def get_output_data(obj, input_data_all, execution_block_cb=None, pre_execute_cb=None): - results = [] uis = [] subgraph_results = [] @@ -221,14 +225,14 @@ def get_output_data(obj, input_data_all, execution_block_cb=None, pre_execute_cb r = tuple([r] * len(obj.RETURN_TYPES)) results.append(r) subgraph_results.append((None, r)) - + if has_subgraph: output = subgraph_results elif len(results) > 0: output = merge_result_data(results, obj) else: output = [] - ui = dict() + ui = dict() if len(uis) > 0: ui = {k: [y for x in uis for y in x[k]] for k in uis[0].keys()} return output, ui, has_subgraph @@ -480,7 +484,7 @@ class PromptExecutor: if self.caches.outputs.get(node_id) is not None: cached_nodes.append(node_id) - comfy.model_management.cleanup_models(keep_clone_weights_loaded=True) + comfy.model_management.cleanup_models_gc() self.add_message("execution_cached", { "nodes": cached_nodes, "prompt_id": prompt_id}, broadcast=False) @@ -527,7 +531,6 @@ class PromptExecutor: comfy.model_management.unload_all_models() - def validate_inputs(prompt, item, validated): unique_id = item if unique_id in validated: @@ -552,7 +555,7 @@ def validate_inputs(prompt, item, validated): received_types = {} for x in valid_inputs: - type_input, input_category, extra_info = get_input_info(obj_class, x) + type_input, input_category, extra_info = get_input_info(obj_class, x, class_inputs) assert extra_info is not None if x not in inputs: if input_category == "required": @@ -589,8 +592,8 @@ def validate_inputs(prompt, item, validated): r = nodes.NODE_CLASS_MAPPINGS[o_class_type].RETURN_TYPES received_type = r[val[1]] received_types[x] = received_type - if 'input_types' not in validate_function_inputs and received_type != type_input: - details = f"{x}, {received_type} != {type_input}" + if 'input_types' not in validate_function_inputs and not validate_node_input(received_type, type_input): + details = f"{x}, received_type({received_type}) mismatch input_type({type_input})" error = { "type": "return_type_mismatch", "message": "Return type mismatch between linked nodes", @@ -761,7 +764,7 @@ def validate_prompt(prompt): if 'class_type' not in prompt[x]: error = { "type": "invalid_prompt", - "message": f"Cannot execute because a node is missing the class_type property.", + "message": "Cannot execute because a node is missing the class_type property.", "details": f"Node ID '#{x}'", "extra_info": {} } diff --git a/fix_torch.py b/fix_torch.py index e350f5c7..ce117b63 100644 --- a/fix_torch.py +++ b/fix_torch.py @@ -5,20 +5,24 @@ import ctypes import logging -torch_spec = importlib.util.find_spec("torch") -for folder in torch_spec.submodule_search_locations: - lib_folder = os.path.join(folder, "lib") - test_file = os.path.join(lib_folder, "fbgemm.dll") - dest = os.path.join(lib_folder, "libomp140.x86_64.dll") - if os.path.exists(dest): - break - - with open(test_file, 'rb') as f: - contents = f.read() - if b"libomp140.x86_64.dll" not in contents: +def fix_pytorch_libomp(): + """ + Fix PyTorch libomp DLL issue on Windows by copying the correct DLL file if needed. + """ + torch_spec = importlib.util.find_spec("torch") + for folder in torch_spec.submodule_search_locations: + lib_folder = os.path.join(folder, "lib") + test_file = os.path.join(lib_folder, "fbgemm.dll") + dest = os.path.join(lib_folder, "libomp140.x86_64.dll") + if os.path.exists(dest): break - try: - mydll = ctypes.cdll.LoadLibrary(test_file) - except FileNotFoundError as e: - logging.warning("Detected pytorch version with libomp issue, patching.") - shutil.copyfile(os.path.join(lib_folder, "libiomp5md.dll"), dest) + + with open(test_file, "rb") as f: + contents = f.read() + if b"libomp140.x86_64.dll" not in contents: + break + try: + ctypes.cdll.LoadLibrary(test_file) + except FileNotFoundError: + logging.warning("Detected pytorch version with libomp issue, patching.") + shutil.copyfile(os.path.join(lib_folder, "libiomp5md.dll"), dest) diff --git a/folder_paths.py b/folder_paths.py index 01ae821d..3542d2ed 100644 --- a/folder_paths.py +++ b/folder_paths.py @@ -4,7 +4,7 @@ import os import time import mimetypes import logging -from typing import Set, List, Dict, Tuple, Literal +from typing import Literal from collections.abc import Collection supported_pt_extensions: set[str] = {'.ckpt', '.pt', '.bin', '.pth', '.safetensors', '.pkl', '.sft'} @@ -18,7 +18,7 @@ folder_names_and_paths["configs"] = ([os.path.join(models_dir, "configs")], [".y folder_names_and_paths["loras"] = ([os.path.join(models_dir, "loras")], supported_pt_extensions) folder_names_and_paths["vae"] = ([os.path.join(models_dir, "vae")], supported_pt_extensions) -folder_names_and_paths["clip"] = ([os.path.join(models_dir, "clip")], supported_pt_extensions) +folder_names_and_paths["text_encoders"] = ([os.path.join(models_dir, "text_encoders"), os.path.join(models_dir, "clip")], supported_pt_extensions) folder_names_and_paths["diffusion_models"] = ([os.path.join(models_dir, "unet"), os.path.join(models_dir, "diffusion_models")], supported_pt_extensions) folder_names_and_paths["clip_vision"] = ([os.path.join(models_dir, "clip_vision")], supported_pt_extensions) folder_names_and_paths["style_models"] = ([os.path.join(models_dir, "style_models")], supported_pt_extensions) @@ -58,7 +58,7 @@ class CacheHelper: if not self.active: return default return self.cache.get(key, default) - + def set(self, key: str, value: tuple[list[str], dict[str, float], float]) -> None: if self.active: self.cache[key] = value @@ -81,7 +81,8 @@ extension_mimetypes_cache = { } def map_legacy(folder_name: str) -> str: - legacy = {"unet": "diffusion_models"} + legacy = {"unet": "diffusion_models", + "clip": "text_encoders"} return legacy.get(folder_name, folder_name) if not os.path.exists(input_directory): @@ -132,7 +133,7 @@ def get_directory_by_type(type_name: str) -> str | None: return get_input_directory() return None -def filter_files_content_types(files: List[str], content_types: Literal["image", "video", "audio"]) -> List[str]: +def filter_files_content_types(files: list[str], content_types: Literal["image", "video", "audio"]) -> list[str]: """ Example: files = os.listdir(folder_paths.get_input_directory()) @@ -199,10 +200,17 @@ def add_model_folder_path(folder_name: str, full_folder_path: str, is_default: b global folder_names_and_paths folder_name = map_legacy(folder_name) if folder_name in folder_names_and_paths: - if is_default: - folder_names_and_paths[folder_name][0].insert(0, full_folder_path) + paths, _exts = folder_names_and_paths[folder_name] + if full_folder_path in paths: + if is_default and paths[0] != full_folder_path: + # If the path to the folder is not the first in the list, move it to the beginning. + paths.remove(full_folder_path) + paths.insert(0, full_folder_path) else: - folder_names_and_paths[folder_name][0].append(full_folder_path) + if is_default: + paths.insert(0, full_folder_path) + else: + paths.append(full_folder_path) else: folder_names_and_paths[folder_name] = ([full_folder_path], set()) @@ -297,7 +305,7 @@ def cached_filename_list_(folder_name: str) -> tuple[list[str], dict[str, float] strong_cache = cache_helper.get(folder_name) if strong_cache is not None: return strong_cache - + global filename_list_cache global folder_names_and_paths folder_name = map_legacy(folder_name) diff --git a/latent_preview.py b/latent_preview.py index ae9211a2..07f9cc68 100644 --- a/latent_preview.py +++ b/latent_preview.py @@ -1,7 +1,5 @@ import torch from PIL import Image -import struct -import numpy as np from comfy.cli_args import args, LatentPreviewMethod from comfy.taesd.taesd import TAESD import comfy.model_management @@ -47,7 +45,12 @@ class Latent2RGBPreviewer(LatentPreviewer): if self.latent_rgb_factors_bias is not None: self.latent_rgb_factors_bias = self.latent_rgb_factors_bias.to(dtype=x0.dtype, device=x0.device) - latent_image = torch.nn.functional.linear(x0[0].permute(1, 2, 0), self.latent_rgb_factors, bias=self.latent_rgb_factors_bias) + if x0.ndim == 5: + x0 = x0[0, :, 0] + else: + x0 = x0[0] + + latent_image = torch.nn.functional.linear(x0.movedim(0, -1), self.latent_rgb_factors, bias=self.latent_rgb_factors_bias) # latent_image = x0[0].permute(1, 2, 0) @ self.latent_rgb_factors return preview_to_image(latent_image) diff --git a/main.py b/main.py index c2321086..c5c9f4e0 100644 --- a/main.py +++ b/main.py @@ -7,9 +7,51 @@ import folder_paths import time from comfy.cli_args import args from app.logger import setup_logger +import itertools +import utils.extra_config +import logging + +if __name__ == "__main__": + #NOTE: These do not do anything on core ComfyUI which should already have no communication with the internet, they are for custom nodes. + os.environ['HF_HUB_DISABLE_TELEMETRY'] = '1' + os.environ['DO_NOT_TRACK'] = '1' -setup_logger(log_level=args.verbose) +setup_logger(log_level=args.verbose, use_stdout=args.log_stdout) + +def apply_custom_paths(): + # extra model paths + extra_model_paths_config_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "extra_model_paths.yaml") + if os.path.isfile(extra_model_paths_config_path): + utils.extra_config.load_extra_path_config(extra_model_paths_config_path) + + if args.extra_model_paths_config: + for config_path in itertools.chain(*args.extra_model_paths_config): + utils.extra_config.load_extra_path_config(config_path) + + # --output-directory, --input-directory, --user-directory + if args.output_directory: + output_dir = os.path.abspath(args.output_directory) + logging.info(f"Setting output directory to: {output_dir}") + folder_paths.set_output_directory(output_dir) + + # These are the default folders that checkpoints, clip and vae models will be saved to when using CheckpointSave, etc.. nodes + folder_paths.add_model_folder_path("checkpoints", os.path.join(folder_paths.get_output_directory(), "checkpoints")) + folder_paths.add_model_folder_path("clip", os.path.join(folder_paths.get_output_directory(), "clip")) + folder_paths.add_model_folder_path("vae", os.path.join(folder_paths.get_output_directory(), "vae")) + folder_paths.add_model_folder_path("diffusion_models", + os.path.join(folder_paths.get_output_directory(), "diffusion_models")) + folder_paths.add_model_folder_path("loras", os.path.join(folder_paths.get_output_directory(), "loras")) + + if args.input_directory: + input_dir = os.path.abspath(args.input_directory) + logging.info(f"Setting input directory to: {input_dir}") + folder_paths.set_input_directory(input_dir) + + if args.user_directory: + user_dir = os.path.abspath(args.user_directory) + logging.info(f"Setting user directory to: {user_dir}") + folder_paths.set_user_directory(user_dir) def execute_prestartup_script(): @@ -21,7 +63,7 @@ def execute_prestartup_script(): spec.loader.exec_module(module) return True except Exception as e: - print(f"Failed to execute startup-script: {script_path} / {e}") + logging.error(f"Failed to execute startup-script: {script_path} / {e}") return False if args.disable_all_custom_nodes: @@ -43,27 +85,25 @@ def execute_prestartup_script(): success = execute_script(script_path) node_prestartup_times.append((time.perf_counter() - time_before, module_path, success)) if len(node_prestartup_times) > 0: - print("\nPrestartup times for custom nodes:") + logging.info("\nPrestartup times for custom nodes:") for n in sorted(node_prestartup_times): if n[2]: import_message = "" else: import_message = " (PRESTARTUP FAILED)" - print("{:6.1f} seconds{}:".format(n[0], import_message), n[1]) - print() + logging.info("{:6.1f} seconds{}: {}".format(n[0], import_message, n[1])) + logging.info("") +apply_custom_paths() execute_prestartup_script() # Main code import asyncio -import itertools import shutil import threading import gc -import logging -import utils.extra_config if os.name == "nt": logging.getLogger("xformers").addFilter(lambda record: 'A matching Triton is not available' not in record.getMessage()) @@ -71,8 +111,13 @@ if os.name == "nt": if __name__ == "__main__": if args.cuda_device is not None: os.environ['CUDA_VISIBLE_DEVICES'] = str(args.cuda_device) + os.environ['HIP_VISIBLE_DEVICES'] = str(args.cuda_device) logging.info("Set cuda device to: {}".format(args.cuda_device)) + if args.oneapi_device_selector is not None: + os.environ['ONEAPI_DEVICE_SELECTOR'] = args.oneapi_device_selector + logging.info("Set oneapi device selector to: {}".format(args.oneapi_device_selector)) + if args.deterministic: if 'CUBLAS_WORKSPACE_CONFIG' not in os.environ: os.environ['CUBLAS_WORKSPACE_CONFIG'] = ":4096:8" @@ -81,7 +126,8 @@ if __name__ == "__main__": if args.windows_standalone_build: try: - import fix_torch + from fix_torch import fix_pytorch_libomp + fix_pytorch_libomp() except: pass @@ -104,8 +150,10 @@ def cuda_malloc_warning(): if cuda_malloc_warning: logging.warning("\nWARNING: this card most likely does not support cuda-malloc, if you get \"CUDA error\" please run ComfyUI with: --disable-cuda-malloc\n") -def prompt_worker(q, server): - e = execution.PromptExecutor(server, lru_size=args.cache_lru) + +def prompt_worker(q, server_instance): + current_time: float = 0.0 + e = execution.PromptExecutor(server_instance, lru_size=args.cache_lru) last_gc_collect = 0 need_gc = False gc_collect_interval = 10.0 @@ -120,7 +168,7 @@ def prompt_worker(q, server): item, item_id = queue_item execution_start_time = time.perf_counter() prompt_id = item[1] - server.last_prompt_id = prompt_id + server_instance.last_prompt_id = prompt_id e.execute(item[2], prompt_id, item[3], item[4]) need_gc = True @@ -130,8 +178,8 @@ def prompt_worker(q, server): status_str='success' if e.success else 'error', completed=e.success, messages=e.status_messages)) - if server.client_id is not None: - server.send_sync("executing", { "node": None, "prompt_id": prompt_id }, server.client_id) + if server_instance.client_id is not None: + server_instance.send_sync("executing", {"node": None, "prompt_id": prompt_id}, server_instance.client_id) current_time = time.perf_counter() execution_time = current_time - execution_start_time @@ -153,27 +201,30 @@ def prompt_worker(q, server): if need_gc: current_time = time.perf_counter() if (current_time - last_gc_collect) > gc_collect_interval: - comfy.model_management.cleanup_models() gc.collect() comfy.model_management.soft_empty_cache() last_gc_collect = current_time need_gc = False -async def run(server, address='', port=8188, verbose=True, call_on_start=None): + +async def run(server_instance, address='', port=8188, verbose=True, call_on_start=None): addresses = [] for addr in address.split(","): addresses.append((addr, port)) - await asyncio.gather(server.start_multi_address(addresses, call_on_start), server.publish_loop()) + await asyncio.gather( + server_instance.start_multi_address(addresses, call_on_start, verbose), server_instance.publish_loop() + ) -def hijack_progress(server): +def hijack_progress(server_instance): def hook(value, total, preview_image): comfy.model_management.throw_exception_if_processing_interrupted() - progress = {"value": value, "max": total, "prompt_id": server.last_prompt_id, "node": server.last_node_id} + progress = {"value": value, "max": total, "prompt_id": server_instance.last_prompt_id, "node": server_instance.last_node_id} - server.send_sync("progress", progress, server.client_id) + server_instance.send_sync("progress", progress, server_instance.client_id) if preview_image is not None: - server.send_sync(BinaryEventTypes.UNENCODED_PREVIEW_IMAGE, preview_image, server.client_id) + server_instance.send_sync(BinaryEventTypes.UNENCODED_PREVIEW_IMAGE, preview_image, server_instance.client_id) + comfy.utils.set_progress_bar_global_hook(hook) @@ -183,7 +234,11 @@ def cleanup_temp(): shutil.rmtree(temp_dir, ignore_errors=True) -if __name__ == "__main__": +def start_comfyui(asyncio_loop=None): + """ + Starts the ComfyUI server using the provided asyncio event loop or creates a new one. + Returns the event loop, server instance, and a function to start the server asynchronously. + """ if args.temp_directory: temp_dir = os.path.join(os.path.abspath(args.temp_directory), "temp") logging.info(f"Setting temp directory to: {temp_dir}") @@ -197,49 +252,20 @@ if __name__ == "__main__": except: pass - loop = asyncio.new_event_loop() - asyncio.set_event_loop(loop) - server = server.PromptServer(loop) - q = execution.PromptQueue(server) - - extra_model_paths_config_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "extra_model_paths.yaml") - if os.path.isfile(extra_model_paths_config_path): - utils.extra_config.load_extra_path_config(extra_model_paths_config_path) - - if args.extra_model_paths_config: - for config_path in itertools.chain(*args.extra_model_paths_config): - utils.extra_config.load_extra_path_config(config_path) + if not asyncio_loop: + asyncio_loop = asyncio.new_event_loop() + asyncio.set_event_loop(asyncio_loop) + prompt_server = server.PromptServer(asyncio_loop) + q = execution.PromptQueue(prompt_server) nodes.init_extra_nodes(init_custom_nodes=not args.disable_all_custom_nodes) cuda_malloc_warning() - server.add_routes() - hijack_progress(server) + prompt_server.add_routes() + hijack_progress(prompt_server) - threading.Thread(target=prompt_worker, daemon=True, args=(q, server,)).start() - - if args.output_directory: - output_dir = os.path.abspath(args.output_directory) - logging.info(f"Setting output directory to: {output_dir}") - folder_paths.set_output_directory(output_dir) - - #These are the default folders that checkpoints, clip and vae models will be saved to when using CheckpointSave, etc.. nodes - folder_paths.add_model_folder_path("checkpoints", os.path.join(folder_paths.get_output_directory(), "checkpoints")) - folder_paths.add_model_folder_path("clip", os.path.join(folder_paths.get_output_directory(), "clip")) - folder_paths.add_model_folder_path("vae", os.path.join(folder_paths.get_output_directory(), "vae")) - folder_paths.add_model_folder_path("diffusion_models", os.path.join(folder_paths.get_output_directory(), "diffusion_models")) - folder_paths.add_model_folder_path("loras", os.path.join(folder_paths.get_output_directory(), "loras")) - - if args.input_directory: - input_dir = os.path.abspath(args.input_directory) - logging.info(f"Setting input directory to: {input_dir}") - folder_paths.set_input_directory(input_dir) - - if args.user_directory: - user_dir = os.path.abspath(args.user_directory) - logging.info(f"Setting user directory to: {user_dir}") - folder_paths.set_user_directory(user_dir) + threading.Thread(target=prompt_worker, daemon=True, args=(q, prompt_server,)).start() if args.quick_test_for_ci: exit(0) @@ -256,9 +282,19 @@ if __name__ == "__main__": webbrowser.open(f"{scheme}://{address}:{port}") call_on_start = startup_server + async def start_all(): + await prompt_server.setup() + await run(prompt_server, address=args.listen, port=args.port, verbose=not args.dont_print_server, call_on_start=call_on_start) + + # Returning these so that other code can integrate with the ComfyUI loop and server + return asyncio_loop, prompt_server, start_all + + +if __name__ == "__main__": + # Running directly, just start ComfyUI. + event_loop, _, start_all_func = start_comfyui() try: - loop.run_until_complete(server.setup()) - loop.run_until_complete(run(server, address=args.listen, port=args.port, verbose=not args.dont_print_server, call_on_start=call_on_start)) + event_loop.run_until_complete(start_all_func()) except KeyboardInterrupt: logging.info("\nStopped server") diff --git a/model_filemanager/__init__.py b/model_filemanager/__init__.py deleted file mode 100644 index b7ac1625..00000000 --- a/model_filemanager/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -# model_manager/__init__.py -from .download_models import download_model, DownloadModelStatus, DownloadStatusType, create_model_path, check_file_exists, track_download_progress, validate_filename diff --git a/model_filemanager/download_models.py b/model_filemanager/download_models.py deleted file mode 100644 index 6722b6e1..00000000 --- a/model_filemanager/download_models.py +++ /dev/null @@ -1,234 +0,0 @@ -#NOTE: This was an experiment and WILL BE REMOVED -from __future__ import annotations -import aiohttp -import os -import traceback -import logging -from folder_paths import folder_names_and_paths, get_folder_paths -import re -from typing import Callable, Any, Optional, Awaitable, Dict -from enum import Enum -import time -from dataclasses import dataclass - - -class DownloadStatusType(Enum): - PENDING = "pending" - IN_PROGRESS = "in_progress" - COMPLETED = "completed" - ERROR = "error" - - -@dataclass -class DownloadModelStatus(): - status: str - progress_percentage: float - message: str - already_existed: bool = False - - def __init__(self, status: DownloadStatusType, progress_percentage: float, message: str, already_existed: bool): - self.status = status.value # Store the string value of the Enum - self.progress_percentage = progress_percentage - self.message = message - self.already_existed = already_existed - - def to_dict(self) -> Dict[str, Any]: - return { - "status": self.status, - "progress_percentage": self.progress_percentage, - "message": self.message, - "already_existed": self.already_existed - } - - -async def download_model(model_download_request: Callable[[str], Awaitable[aiohttp.ClientResponse]], - model_name: str, - model_url: str, - model_directory: str, - folder_path: str, - progress_callback: Callable[[str, DownloadModelStatus], Awaitable[Any]], - progress_interval: float = 1.0) -> DownloadModelStatus: - """ - Download a model file from a given URL into the models directory. - - Args: - model_download_request (Callable[[str], Awaitable[aiohttp.ClientResponse]]): - A function that makes an HTTP request. This makes it easier to mock in unit tests. - model_name (str): - The name of the model file to be downloaded. This will be the filename on disk. - model_url (str): - The URL from which to download the model. - model_directory (str): - The subdirectory within the main models directory where the model - should be saved (e.g., 'checkpoints', 'loras', etc.). - progress_callback (Callable[[str, DownloadModelStatus], Awaitable[Any]]): - An asynchronous function to call with progress updates. - folder_path (str); - Path to which model folder should be used as the root. - - Returns: - DownloadModelStatus: The result of the download operation. - """ - if not validate_filename(model_name): - return DownloadModelStatus( - DownloadStatusType.ERROR, - 0, - "Invalid model name", - False - ) - - if not model_directory in folder_names_and_paths: - return DownloadModelStatus( - DownloadStatusType.ERROR, - 0, - "Invalid or unrecognized model directory. model_directory must be a known model type (eg 'checkpoints'). If you are seeing this error for a custom model type, ensure the relevant custom nodes are installed and working.", - False - ) - - if not folder_path in get_folder_paths(model_directory): - return DownloadModelStatus( - DownloadStatusType.ERROR, - 0, - f"Invalid folder path '{folder_path}', does not match the list of known directories ({get_folder_paths(model_directory)}). If you're seeing this in the downloader UI, you may need to refresh the page.", - False - ) - - file_path = create_model_path(model_name, folder_path) - existing_file = await check_file_exists(file_path, model_name, progress_callback) - if existing_file: - return existing_file - - try: - logging.info(f"Downloading {model_name} from {model_url}") - status = DownloadModelStatus(DownloadStatusType.PENDING, 0, f"Starting download of {model_name}", False) - await progress_callback(model_name, status) - - response = await model_download_request(model_url) - if response.status != 200: - error_message = f"Failed to download {model_name}. Status code: {response.status}" - logging.error(error_message) - status = DownloadModelStatus(DownloadStatusType.ERROR, 0, error_message, False) - await progress_callback(model_name, status) - return DownloadModelStatus(DownloadStatusType.ERROR, 0, error_message, False) - - return await track_download_progress(response, file_path, model_name, progress_callback, progress_interval) - - except Exception as e: - logging.error(f"Error in downloading model: {e}") - return await handle_download_error(e, model_name, progress_callback) - - -def create_model_path(model_name: str, folder_path: str) -> tuple[str, str]: - os.makedirs(folder_path, exist_ok=True) - file_path = os.path.join(folder_path, model_name) - - # Ensure the resulting path is still within the base directory - abs_file_path = os.path.abspath(file_path) - abs_base_dir = os.path.abspath(folder_path) - if os.path.commonprefix([abs_file_path, abs_base_dir]) != abs_base_dir: - raise Exception(f"Invalid model directory: {folder_path}/{model_name}") - - return file_path - - -async def check_file_exists(file_path: str, - model_name: str, - progress_callback: Callable[[str, DownloadModelStatus], Awaitable[Any]] - ) -> Optional[DownloadModelStatus]: - if os.path.exists(file_path): - status = DownloadModelStatus(DownloadStatusType.COMPLETED, 100, f"{model_name} already exists", True) - await progress_callback(model_name, status) - return status - return None - - -async def track_download_progress(response: aiohttp.ClientResponse, - file_path: str, - model_name: str, - progress_callback: Callable[[str, DownloadModelStatus], Awaitable[Any]], - interval: float = 1.0) -> DownloadModelStatus: - try: - total_size = int(response.headers.get('Content-Length', 0)) - downloaded = 0 - last_update_time = time.time() - - async def update_progress(): - nonlocal last_update_time - progress = (downloaded / total_size) * 100 if total_size > 0 else 0 - status = DownloadModelStatus(DownloadStatusType.IN_PROGRESS, progress, f"Downloading {model_name}", False) - await progress_callback(model_name, status) - last_update_time = time.time() - - temp_file_path = file_path + '.tmp' - with open(temp_file_path, 'wb') as f: - chunk_iterator = response.content.iter_chunked(8192) - while True: - try: - chunk = await chunk_iterator.__anext__() - except StopAsyncIteration: - break - f.write(chunk) - downloaded += len(chunk) - - if time.time() - last_update_time >= interval: - await update_progress() - - os.rename(temp_file_path, file_path) - - await update_progress() - - logging.info(f"Successfully downloaded {model_name}. Total downloaded: {downloaded}") - status = DownloadModelStatus(DownloadStatusType.COMPLETED, 100, f"Successfully downloaded {model_name}", False) - await progress_callback(model_name, status) - - return status - except Exception as e: - logging.error(f"Error in track_download_progress: {e}") - logging.error(traceback.format_exc()) - return await handle_download_error(e, model_name, progress_callback) - - -async def handle_download_error(e: Exception, - model_name: str, - progress_callback: Callable[[str, DownloadModelStatus], Any] - ) -> DownloadModelStatus: - error_message = f"Error downloading {model_name}: {str(e)}" - status = DownloadModelStatus(DownloadStatusType.ERROR, 0, error_message, False) - await progress_callback(model_name, status) - return status - - -def validate_filename(filename: str)-> bool: - """ - Validate a filename to ensure it's safe and doesn't contain any path traversal attempts. - - Args: - filename (str): The filename to validate - - Returns: - bool: True if the filename is valid, False otherwise - """ - if not filename.lower().endswith(('.sft', '.safetensors')): - return False - - # Check if the filename is empty, None, or just whitespace - if not filename or not filename.strip(): - return False - - # Check for any directory traversal attempts or invalid characters - if any(char in filename for char in ['..', '/', '\\', '\n', '\r', '\t', '\0']): - return False - - # Check if the filename starts with a dot (hidden file) - if filename.startswith('.'): - return False - - # Use a whitelist of allowed characters - if not re.match(r'^[a-zA-Z0-9_\-. ]+$', filename): - return False - - # Ensure the filename isn't too long - if len(filename) > 255: - return False - - return True diff --git a/models/text_encoders/put_text_encoder_files_here b/models/text_encoders/put_text_encoder_files_here new file mode 100644 index 00000000..e69de29b diff --git a/new_updater.py b/new_updater.py index a49e0877..9a203acd 100644 --- a/new_updater.py +++ b/new_updater.py @@ -32,4 +32,4 @@ def update_windows_updater(): except: pass shutil.copy(bat_path, dest_bat_path) - print("Updated the windows standalone package updater.") + print("Updated the windows standalone package updater.") # noqa: T201 diff --git a/nodes.py b/nodes.py index c81a0af1..1b796ced 100644 --- a/nodes.py +++ b/nodes.py @@ -1,3 +1,4 @@ +from __future__ import annotations import torch import os @@ -10,7 +11,7 @@ import time import random import logging -from PIL import Image, ImageOps, ImageSequence, ImageFile +from PIL import Image, ImageOps, ImageSequence from PIL.PngImagePlugin import PngInfo import numpy as np @@ -24,6 +25,7 @@ import comfy.sample import comfy.sd import comfy.utils import comfy.controlnet +from comfy.comfy_types import IO, ComfyNodeABC, InputTypeDict import comfy.clip_vision @@ -44,16 +46,16 @@ def interrupt_processing(value=True): MAX_RESOLUTION=16384 -class CLIPTextEncode: +class CLIPTextEncode(ComfyNodeABC): @classmethod - def INPUT_TYPES(s): + def INPUT_TYPES(s) -> InputTypeDict: return { "required": { - "text": ("STRING", {"multiline": True, "dynamicPrompts": True, "tooltip": "The text to be encoded."}), - "clip": ("CLIP", {"tooltip": "The CLIP model used for encoding the text."}) + "text": (IO.STRING, {"multiline": True, "dynamicPrompts": True, "tooltip": "The text to be encoded."}), + "clip": (IO.CLIP, {"tooltip": "The CLIP model used for encoding the text."}) } } - RETURN_TYPES = ("CONDITIONING",) + RETURN_TYPES = (IO.CONDITIONING,) OUTPUT_TOOLTIPS = ("A conditioning containing the embedded text used to guide the diffusion model.",) FUNCTION = "encode" @@ -62,9 +64,8 @@ class CLIPTextEncode: def encode(self, clip, text): tokens = clip.tokenize(text) - output = clip.encode_from_tokens(tokens, return_pooled=True, return_dict=True) - cond = output.pop("cond") - return ([[cond, output]], ) + return (clip.encode_from_tokens_scheduled(tokens), ) + class ConditioningCombine: @classmethod @@ -268,8 +269,8 @@ class VAEDecode: @classmethod def INPUT_TYPES(s): return { - "required": { - "samples": ("LATENT", {"tooltip": "The latent to be decoded."}), + "required": { + "samples": ("LATENT", {"tooltip": "The latent to be decoded."}), "vae": ("VAE", {"tooltip": "The VAE model used for decoding the latent."}) } } @@ -290,15 +291,34 @@ class VAEDecodeTiled: @classmethod def INPUT_TYPES(s): return {"required": {"samples": ("LATENT", ), "vae": ("VAE", ), - "tile_size": ("INT", {"default": 512, "min": 320, "max": 4096, "step": 64}) + "tile_size": ("INT", {"default": 512, "min": 64, "max": 4096, "step": 32}), + "overlap": ("INT", {"default": 64, "min": 0, "max": 4096, "step": 32}), + "temporal_size": ("INT", {"default": 64, "min": 8, "max": 4096, "step": 4, "tooltip": "Only used for video VAEs: Amount of frames to decode at a time."}), + "temporal_overlap": ("INT", {"default": 8, "min": 4, "max": 4096, "step": 4, "tooltip": "Only used for video VAEs: Amount of frames to overlap."}), }} RETURN_TYPES = ("IMAGE",) FUNCTION = "decode" CATEGORY = "_for_testing" - def decode(self, vae, samples, tile_size): - return (vae.decode_tiled(samples["samples"], tile_x=tile_size // 8, tile_y=tile_size // 8, ), ) + def decode(self, vae, samples, tile_size, overlap=64, temporal_size=64, temporal_overlap=8): + if tile_size < overlap * 4: + overlap = tile_size // 4 + if temporal_size < temporal_overlap * 2: + temporal_overlap = temporal_overlap // 2 + temporal_compression = vae.temporal_compression_decode() + if temporal_compression is not None: + temporal_size = max(2, temporal_size // temporal_compression) + temporal_overlap = max(1, min(temporal_size // 2, temporal_overlap // temporal_compression)) + else: + temporal_size = None + temporal_overlap = None + + compression = vae.spacial_compression_decode() + images = vae.decode_tiled(samples["samples"], tile_x=tile_size // compression, tile_y=tile_size // compression, overlap=overlap // compression, tile_t=temporal_size, overlap_t=temporal_overlap) + if len(images.shape) == 5: #Combine batches + images = images.reshape(-1, images.shape[-3], images.shape[-2], images.shape[-1]) + return (images, ) class VAEEncode: @classmethod @@ -317,16 +337,19 @@ class VAEEncodeTiled: @classmethod def INPUT_TYPES(s): return {"required": {"pixels": ("IMAGE", ), "vae": ("VAE", ), - "tile_size": ("INT", {"default": 512, "min": 320, "max": 4096, "step": 64}) + "tile_size": ("INT", {"default": 512, "min": 64, "max": 4096, "step": 64}), + "overlap": ("INT", {"default": 64, "min": 0, "max": 4096, "step": 32}), + "temporal_size": ("INT", {"default": 64, "min": 8, "max": 4096, "step": 4, "tooltip": "Only used for video VAEs: Amount of frames to encode at a time."}), + "temporal_overlap": ("INT", {"default": 8, "min": 4, "max": 4096, "step": 4, "tooltip": "Only used for video VAEs: Amount of frames to overlap."}), }} RETURN_TYPES = ("LATENT",) FUNCTION = "encode" CATEGORY = "_for_testing" - def encode(self, vae, pixels, tile_size): - t = vae.encode_tiled(pixels[:,:,:,:3], tile_x=tile_size, tile_y=tile_size, ) - return ({"samples":t}, ) + def encode(self, vae, pixels, tile_size, overlap, temporal_size=64, temporal_overlap=8): + t = vae.encode_tiled(pixels[:,:,:,:3], tile_x=tile_size, tile_y=tile_size, overlap=overlap, tile_t=temporal_size, overlap_t=temporal_overlap) + return ({"samples": t}, ) class VAEEncodeForInpaint: @classmethod @@ -376,6 +399,7 @@ class InpaintModelConditioning: "vae": ("VAE", ), "pixels": ("IMAGE", ), "mask": ("MASK", ), + "noise_mask": ("BOOLEAN", {"default": True, "tooltip": "Add a noise mask to the latent so sampling will only happen within the mask. Might improve results or completely break things depending on the model."}), }} RETURN_TYPES = ("CONDITIONING","CONDITIONING","LATENT") @@ -384,7 +408,7 @@ class InpaintModelConditioning: CATEGORY = "conditioning/inpaint" - def encode(self, positive, negative, pixels, vae, mask): + def encode(self, positive, negative, pixels, vae, mask, noise_mask=True): x = (pixels.shape[1] // 8) * 8 y = (pixels.shape[2] // 8) * 8 mask = torch.nn.functional.interpolate(mask.reshape((-1, 1, mask.shape[-2], mask.shape[-1])), size=(pixels.shape[1], pixels.shape[2]), mode="bilinear") @@ -408,7 +432,8 @@ class InpaintModelConditioning: out_latent = {} out_latent["samples"] = orig_latent - out_latent["noise_mask"] = mask + if noise_mask: + out_latent["noise_mask"] = mask out = [] for conditioning in [positive, negative]: @@ -525,13 +550,13 @@ class CheckpointLoaderSimple: @classmethod def INPUT_TYPES(s): return { - "required": { + "required": { "ckpt_name": (folder_paths.get_filename_list("checkpoints"), {"tooltip": "The name of the checkpoint (model) to load."}), } } RETURN_TYPES = ("MODEL", "CLIP", "VAE") - OUTPUT_TOOLTIPS = ("The model used for denoising latents.", - "The CLIP model used for encoding text prompts.", + OUTPUT_TOOLTIPS = ("The model used for denoising latents.", + "The CLIP model used for encoding text prompts.", "The VAE model used for encoding and decoding images to and from latent space.") FUNCTION = "load_checkpoint" @@ -608,7 +633,7 @@ class LoraLoader: @classmethod def INPUT_TYPES(s): return { - "required": { + "required": { "model": ("MODEL", {"tooltip": "The diffusion model the LoRA will be applied to."}), "clip": ("CLIP", {"tooltip": "The CLIP model the LoRA will be applied to."}), "lora_name": (folder_paths.get_filename_list("loras"), {"tooltip": "The name of the LoRA."}), @@ -616,7 +641,7 @@ class LoraLoader: "strength_clip": ("FLOAT", {"default": 1.0, "min": -100.0, "max": 100.0, "step": 0.01, "tooltip": "How strongly to modify the CLIP model. This value can be negative."}), } } - + RETURN_TYPES = ("MODEL", "CLIP") OUTPUT_TOOLTIPS = ("The modified diffusion model.", "The modified CLIP model.") FUNCTION = "load_lora" @@ -634,9 +659,7 @@ class LoraLoader: if self.loaded_lora[0] == lora_path: lora = self.loaded_lora[1] else: - temp = self.loaded_lora self.loaded_lora = None - del temp if lora is None: lora = comfy.utils.load_torch_file(lora_path, safe_load=True) @@ -888,15 +911,20 @@ class UNETLoader: class CLIPLoader: @classmethod def INPUT_TYPES(s): - return {"required": { "clip_name": (folder_paths.get_filename_list("clip"), ), - "type": (["stable_diffusion", "stable_cascade", "sd3", "stable_audio", "mochi"], ), + return {"required": { "clip_name": (folder_paths.get_filename_list("text_encoders"), ), + "type": (["stable_diffusion", "stable_cascade", "sd3", "stable_audio", "mochi", "ltxv", "pixart"], ), + }, + "optional": { + "device": (["default", "cpu"], {"advanced": True}), }} RETURN_TYPES = ("CLIP",) FUNCTION = "load_clip" CATEGORY = "advanced/loaders" - def load_clip(self, clip_name, type="stable_diffusion"): + DESCRIPTION = "[Recipes]\n\nstable_diffusion: clip-l\nstable_cascade: clip-g\nsd3: t5 / clip-g / clip-l\nstable_audio: t5\nmochi: t5" + + def load_clip(self, clip_name, type="stable_diffusion", device="default"): if type == "stable_cascade": clip_type = comfy.sd.CLIPType.STABLE_CASCADE elif type == "sd3": @@ -905,36 +933,55 @@ class CLIPLoader: clip_type = comfy.sd.CLIPType.STABLE_AUDIO elif type == "mochi": clip_type = comfy.sd.CLIPType.MOCHI + elif type == "ltxv": + clip_type = comfy.sd.CLIPType.LTXV + elif type == "pixart": + clip_type = comfy.sd.CLIPType.PIXART else: clip_type = comfy.sd.CLIPType.STABLE_DIFFUSION - clip_path = folder_paths.get_full_path_or_raise("clip", clip_name) - clip = comfy.sd.load_clip(ckpt_paths=[clip_path], embedding_directory=folder_paths.get_folder_paths("embeddings"), clip_type=clip_type) + model_options = {} + if device == "cpu": + model_options["load_device"] = model_options["offload_device"] = torch.device("cpu") + + clip_path = folder_paths.get_full_path_or_raise("text_encoders", clip_name) + clip = comfy.sd.load_clip(ckpt_paths=[clip_path], embedding_directory=folder_paths.get_folder_paths("embeddings"), clip_type=clip_type, model_options=model_options) return (clip,) class DualCLIPLoader: @classmethod def INPUT_TYPES(s): - return {"required": { "clip_name1": (folder_paths.get_filename_list("clip"), ), - "clip_name2": (folder_paths.get_filename_list("clip"), ), - "type": (["sdxl", "sd3", "flux"], ), + return {"required": { "clip_name1": (folder_paths.get_filename_list("text_encoders"), ), + "clip_name2": (folder_paths.get_filename_list("text_encoders"), ), + "type": (["sdxl", "sd3", "flux", "hunyuan_video"], ), + }, + "optional": { + "device": (["default", "cpu"], {"advanced": True}), }} RETURN_TYPES = ("CLIP",) FUNCTION = "load_clip" CATEGORY = "advanced/loaders" - def load_clip(self, clip_name1, clip_name2, type): - clip_path1 = folder_paths.get_full_path_or_raise("clip", clip_name1) - clip_path2 = folder_paths.get_full_path_or_raise("clip", clip_name2) + DESCRIPTION = "[Recipes]\n\nsdxl: clip-l, clip-g\nsd3: clip-l, clip-g / clip-l, t5 / clip-g, t5\nflux: clip-l, t5" + + def load_clip(self, clip_name1, clip_name2, type, device="default"): + clip_path1 = folder_paths.get_full_path_or_raise("text_encoders", clip_name1) + clip_path2 = folder_paths.get_full_path_or_raise("text_encoders", clip_name2) if type == "sdxl": clip_type = comfy.sd.CLIPType.STABLE_DIFFUSION elif type == "sd3": clip_type = comfy.sd.CLIPType.SD3 elif type == "flux": clip_type = comfy.sd.CLIPType.FLUX + elif type == "hunyuan_video": + clip_type = comfy.sd.CLIPType.HUNYUAN_VIDEO - clip = comfy.sd.load_clip(ckpt_paths=[clip_path1, clip_path2], embedding_directory=folder_paths.get_folder_paths("embeddings"), clip_type=clip_type) + model_options = {} + if device == "cpu": + model_options["load_device"] = model_options["offload_device"] = torch.device("cpu") + + clip = comfy.sd.load_clip(ckpt_paths=[clip_path1, clip_path2], embedding_directory=folder_paths.get_folder_paths("embeddings"), clip_type=clip_type, model_options=model_options) return (clip,) class CLIPVisionLoader: @@ -956,15 +1003,19 @@ class CLIPVisionEncode: @classmethod def INPUT_TYPES(s): return {"required": { "clip_vision": ("CLIP_VISION",), - "image": ("IMAGE",) + "image": ("IMAGE",), + "crop": (["center", "none"],) }} RETURN_TYPES = ("CLIP_VISION_OUTPUT",) FUNCTION = "encode" CATEGORY = "conditioning" - def encode(self, clip_vision, image): - output = clip_vision.encode_image(image) + def encode(self, clip_vision, image, crop): + crop_image = True + if crop != "center": + crop_image = False + output = clip_vision.encode_image(image, crop=crop_image) return (output,) class StyleModelLoader: @@ -989,19 +1040,59 @@ class StyleModelApply: return {"required": {"conditioning": ("CONDITIONING", ), "style_model": ("STYLE_MODEL", ), "clip_vision_output": ("CLIP_VISION_OUTPUT", ), + "strength": ("FLOAT", {"default": 1.0, "min": 0.0, "max": 10.0, "step": 0.001}), + "strength_type": (["multiply", "attn_bias"], ), }} RETURN_TYPES = ("CONDITIONING",) FUNCTION = "apply_stylemodel" CATEGORY = "conditioning/style_model" - def apply_stylemodel(self, clip_vision_output, style_model, conditioning): + def apply_stylemodel(self, conditioning, style_model, clip_vision_output, strength, strength_type): cond = style_model.get_cond(clip_vision_output).flatten(start_dim=0, end_dim=1).unsqueeze(dim=0) - c = [] + if strength_type == "multiply": + cond *= strength + + n = cond.shape[1] + c_out = [] for t in conditioning: - n = [torch.cat((t[0], cond), dim=1), t[1].copy()] - c.append(n) - return (c, ) + (txt, keys) = t + keys = keys.copy() + if strength_type == "attn_bias" and strength != 1.0: + # math.log raises an error if the argument is zero + # torch.log returns -inf, which is what we want + attn_bias = torch.log(torch.Tensor([strength])) + # get the size of the mask image + mask_ref_size = keys.get("attention_mask_img_shape", (1, 1)) + n_ref = mask_ref_size[0] * mask_ref_size[1] + n_txt = txt.shape[1] + # grab the existing mask + mask = keys.get("attention_mask", None) + # create a default mask if it doesn't exist + if mask is None: + mask = torch.zeros((txt.shape[0], n_txt + n_ref, n_txt + n_ref), dtype=torch.float16) + # convert the mask dtype, because it might be boolean + # we want it to be interpreted as a bias + if mask.dtype == torch.bool: + # log(True) = log(1) = 0 + # log(False) = log(0) = -inf + mask = torch.log(mask.to(dtype=torch.float16)) + # now we make the mask bigger to add space for our new tokens + new_mask = torch.zeros((txt.shape[0], n_txt + n + n_ref, n_txt + n + n_ref), dtype=torch.float16) + # copy over the old mask, in quandrants + new_mask[:, :n_txt, :n_txt] = mask[:, :n_txt, :n_txt] + new_mask[:, :n_txt, n_txt+n:] = mask[:, :n_txt, n_txt:] + new_mask[:, n_txt+n:, :n_txt] = mask[:, n_txt:, :n_txt] + new_mask[:, n_txt+n:, n_txt+n:] = mask[:, n_txt:, n_txt:] + # now fill in the attention bias to our redux tokens + new_mask[:, :n_txt, n_txt:n_txt+n] = attn_bias + new_mask[:, n_txt+n:, n_txt:n_txt+n] = attn_bias + keys["attention_mask"] = new_mask.to(txt.device) + keys["attention_mask_img_shape"] = mask_ref_size + + c_out.append([torch.cat((txt, cond), dim=1), keys]) + + return (c_out,) class unCLIPConditioning: @classmethod @@ -1085,7 +1176,7 @@ class EmptyLatentImage: @classmethod def INPUT_TYPES(s): return { - "required": { + "required": { "width": ("INT", {"default": 512, "min": 16, "max": MAX_RESOLUTION, "step": 8, "tooltip": "The width of the latent images in pixels."}), "height": ("INT", {"default": 512, "min": 16, "max": MAX_RESOLUTION, "step": 8, "tooltip": "The height of the latent images in pixels."}), "batch_size": ("INT", {"default": 1, "min": 1, "max": 4096, "tooltip": "The number of latent images in the batch."}) @@ -1134,7 +1225,7 @@ class LatentFromBatch: else: s["batch_index"] = samples["batch_index"][batch_index:batch_index + length] return (s,) - + class RepeatLatentBatch: @classmethod def INPUT_TYPES(s): @@ -1149,7 +1240,7 @@ class RepeatLatentBatch: def repeat(self, samples, amount): s = samples.copy() s_in = samples["samples"] - + s["samples"] = s_in.repeat((amount, 1,1,1)) if "noise_mask" in samples and samples["noise_mask"].shape[0] > 1: masks = samples["noise_mask"] @@ -1559,15 +1650,15 @@ class LoadImage: FUNCTION = "load_image" def load_image(self, image): image_path = folder_paths.get_annotated_filepath(image) - + img = node_helpers.pillow(Image.open, image_path) - + output_images = [] output_masks = [] w, h = None, None excluded_formats = ['MPO'] - + for i in ImageSequence.Iterator(img): i = node_helpers.pillow(ImageOps.exif_transpose, i) @@ -1578,10 +1669,10 @@ class LoadImage: if len(output_images) == 0: w = image.size[0] h = image.size[1] - + if image.size[0] != w or image.size[1] != h: continue - + image = np.array(image).astype(np.float32) / 255.0 image = torch.from_numpy(image)[None,] if 'A' in i.getbands(): @@ -1957,6 +2048,12 @@ NODE_DISPLAY_NAME_MAPPINGS = { "ImageInvert": "Invert Image", "ImagePadForOutpaint": "Pad Image for Outpainting", "ImageBatch": "Batch Images", + "ImageCrop": "Image Crop", + "ImageBlend": "Image Blend", + "ImageBlur": "Image Blur", + "ImageQuantize": "Image Quantize", + "ImageSharpen": "Image Sharpen", + "ImageScaleToTotalPixels": "Scale Image to Total Pixels", # _for_testing "VAEDecodeTiled": "VAE Decode (Tiled)", "VAEEncodeTiled": "VAE Encode (Tiled)", @@ -1964,6 +2061,9 @@ NODE_DISPLAY_NAME_MAPPINGS = { EXTENSION_WEB_DIRS = {} +# Dictionary of successfully loaded module names and associated directories. +LOADED_MODULE_DIRS = {} + def get_module_name(module_path: str) -> str: """ @@ -2005,6 +2105,8 @@ def load_custom_node(module_path: str, ignore=set(), module_parent="custom_nodes sys.modules[module_name] = module module_spec.loader.exec_module(module) + LOADED_MODULE_DIRS[module_name] = os.path.abspath(module_dir) + if hasattr(module, "WEB_DIRECTORY") and getattr(module, "WEB_DIRECTORY") is not None: web_dir = os.path.abspath(os.path.join(module_dir, getattr(module, "WEB_DIRECTORY"))) if os.path.isdir(web_dir): @@ -2097,6 +2199,7 @@ def init_builtin_extra_nodes(): "nodes_stable3d.py", "nodes_sdupscale.py", "nodes_photomaker.py", + "nodes_pixart.py", "nodes_cond.py", "nodes_morphology.py", "nodes_stable_cascade.py", @@ -2117,6 +2220,11 @@ def init_builtin_extra_nodes(): "nodes_lora_extract.py", "nodes_torch_compile.py", "nodes_mochi.py", + "nodes_slg.py", + "nodes_mahiro.py", + "nodes_lt.py", + "nodes_hooks.py", + "nodes_load_3d.py", ] import_failed = [] @@ -2145,5 +2253,5 @@ def init_extra_nodes(init_custom_nodes=True): else: logging.warning("Please do a: pip install -r requirements.txt") logging.warning("") - + return import_failed diff --git a/notebooks/comfyui_colab.ipynb b/notebooks/comfyui_colab.ipynb index b1ed4ac9..5560b5ff 100644 --- a/notebooks/comfyui_colab.ipynb +++ b/notebooks/comfyui_colab.ipynb @@ -1,329 +1,322 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "aaaaaaaaaa" - }, - "source": [ - "Git clone the repo and install the requirements. (ignore the pip errors about protobuf)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "bbbbbbbbbb" - }, - "outputs": [], - "source": [ - "#@title Environment Setup\n", - "\n", - "from pathlib import Path\n", - "\n", - "OPTIONS = {}\n", - "\n", - "USE_GOOGLE_DRIVE = False #@param {type:\"boolean\"}\n", - "UPDATE_COMFY_UI = True #@param {type:\"boolean\"}\n", - "WORKSPACE = 'ComfyUI'\n", - "OPTIONS['USE_GOOGLE_DRIVE'] = USE_GOOGLE_DRIVE\n", - "OPTIONS['UPDATE_COMFY_UI'] = UPDATE_COMFY_UI\n", - "\n", - "if OPTIONS['USE_GOOGLE_DRIVE']:\n", - " !echo \"Mounting Google Drive...\"\n", - " %cd /\n", - " \n", - " from google.colab import drive\n", - " drive.mount('/content/drive')\n", - "\n", - " WORKSPACE = \"/content/drive/MyDrive/ComfyUI\"\n", - " %cd /content/drive/MyDrive\n", - "\n", - "![ ! -d $WORKSPACE ] && echo -= Initial setup ComfyUI =- && git clone https://github.com/comfyanonymous/ComfyUI\n", - "%cd $WORKSPACE\n", - "\n", - "if OPTIONS['UPDATE_COMFY_UI']:\n", - " !echo -= Updating ComfyUI =-\n", - " !git pull\n", - "\n", - "!echo -= Install dependencies =-\n", - "!pip install xformers!=0.0.18 -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu121 --extra-index-url https://download.pytorch.org/whl/cu118 --extra-index-url https://download.pytorch.org/whl/cu117" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "cccccccccc" - }, - "source": [ - "Download some models/checkpoints/vae or custom comfyui nodes (uncomment the commands for the ones you want)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "dddddddddd" - }, - "outputs": [], - "source": [ - "# Checkpoints\n", - "\n", - "### SDXL\n", - "### I recommend these workflow examples: https://comfyanonymous.github.io/ComfyUI_examples/sdxl/\n", - "\n", - "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors -P ./models/checkpoints/\n", - "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors -P ./models/checkpoints/\n", - "\n", - "# SDXL ReVision\n", - "#!wget -c https://huggingface.co/comfyanonymous/clip_vision_g/resolve/main/clip_vision_g.safetensors -P ./models/clip_vision/\n", - "\n", - "# SD1.5\n", - "!wget -c https://huggingface.co/Comfy-Org/stable-diffusion-v1-5-archive/resolve/main/v1-5-pruned-emaonly-fp16.safetensors -P ./models/checkpoints/\n", - "\n", - "# SD2\n", - "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.safetensors -P ./models/checkpoints/\n", - "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors -P ./models/checkpoints/\n", - "\n", - "# Some SD1.5 anime style\n", - "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors -P ./models/checkpoints/\n", - "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors -P ./models/checkpoints/\n", - "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A3_orangemixs.safetensors -P ./models/checkpoints/\n", - "#!wget -c https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-fp16-pruned.safetensors -P ./models/checkpoints/\n", - "\n", - "# Waifu Diffusion 1.5 (anime style SD2.x 768-v)\n", - "#!wget -c https://huggingface.co/waifu-diffusion/wd-1-5-beta3/resolve/main/wd-illusion-fp16.safetensors -P ./models/checkpoints/\n", - "\n", - "\n", - "# unCLIP models\n", - "#!wget -c https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP/resolve/main/illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors -P ./models/checkpoints/\n", - "#!wget -c https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP/resolve/main/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors -P ./models/checkpoints/\n", - "\n", - "\n", - "# VAE\n", - "!wget -c https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -P ./models/vae/\n", - "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -P ./models/vae/\n", - "#!wget -c https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt -P ./models/vae/\n", - "\n", - "\n", - "# Loras\n", - "#!wget -c https://civitai.com/api/download/models/10350 -O ./models/loras/theovercomer8sContrastFix_sd21768.safetensors #theovercomer8sContrastFix SD2.x 768-v\n", - "#!wget -c https://civitai.com/api/download/models/10638 -O ./models/loras/theovercomer8sContrastFix_sd15.safetensors #theovercomer8sContrastFix SD1.x\n", - "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors -P ./models/loras/ #SDXL offset noise lora\n", - "\n", - "\n", - "# T2I-Adapter\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth -P ./models/controlnet/\n", - "\n", - "# T2I Styles Model\n", - "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth -P ./models/style_models/\n", - "\n", - "# CLIPVision model (needed for styles model)\n", - "#!wget -c https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/pytorch_model.bin -O ./models/clip_vision/clip_vit14.bin\n", - "\n", - "\n", - "# ControlNet\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors -P ./models/controlnet/\n", - "\n", - "# ControlNet SDXL\n", - "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-canny-rank256.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-depth-rank256.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors -P ./models/controlnet/\n", - "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors -P ./models/controlnet/\n", - "\n", - "# Controlnet Preprocessor nodes by Fannovel16\n", - "#!cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n", - "\n", - "\n", - "# GLIGEN\n", - "#!wget -c https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors/resolve/main/gligen_sd14_textbox_pruned_fp16.safetensors -P ./models/gligen/\n", - "\n", - "\n", - "# ESRGAN upscale model\n", - "#!wget -c https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P ./models/upscale_models/\n", - "#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth -P ./models/upscale_models/\n", - "#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth -P ./models/upscale_models/\n", - "\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kkkkkkkkkkkkkkk" - }, - "source": [ - "### Run ComfyUI with cloudflared (Recommended Way)\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "jjjjjjjjjjjjjj" - }, - "outputs": [], - "source": [ - "!wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb\n", - "!dpkg -i cloudflared-linux-amd64.deb\n", - "\n", - "import subprocess\n", - "import threading\n", - "import time\n", - "import socket\n", - "import urllib.request\n", - "\n", - "def iframe_thread(port):\n", - " while True:\n", - " time.sleep(0.5)\n", - " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", - " result = sock.connect_ex(('127.0.0.1', port))\n", - " if result == 0:\n", - " break\n", - " sock.close()\n", - " print(\"\\nComfyUI finished loading, trying to launch cloudflared (if it gets stuck here cloudflared is having issues)\\n\")\n", - "\n", - " p = subprocess.Popen([\"cloudflared\", \"tunnel\", \"--url\", \"http://127.0.0.1:{}\".format(port)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n", - " for line in p.stderr:\n", - " l = line.decode()\n", - " if \"trycloudflare.com \" in l:\n", - " print(\"This is the URL to access ComfyUI:\", l[l.find(\"http\"):], end='')\n", - " #print(l, end='')\n", - "\n", - "\n", - "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", - "\n", - "!python main.py --dont-print-server" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "kkkkkkkkkkkkkk" - }, - "source": [ - "### Run ComfyUI with localtunnel\n", - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "jjjjjjjjjjjjj" - }, - "outputs": [], - "source": [ - "!npm install -g localtunnel\n", - "\n", - "import subprocess\n", - "import threading\n", - "import time\n", - "import socket\n", - "import urllib.request\n", - "\n", - "def iframe_thread(port):\n", - " while True:\n", - " time.sleep(0.5)\n", - " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", - " result = sock.connect_ex(('127.0.0.1', port))\n", - " if result == 0:\n", - " break\n", - " sock.close()\n", - " print(\"\\nComfyUI finished loading, trying to launch localtunnel (if it gets stuck here localtunnel is having issues)\\n\")\n", - "\n", - " print(\"The password/enpoint ip for localtunnel is:\", urllib.request.urlopen('https://ipv4.icanhazip.com').read().decode('utf8').strip(\"\\n\"))\n", - " p = subprocess.Popen([\"lt\", \"--port\", \"{}\".format(port)], stdout=subprocess.PIPE)\n", - " for line in p.stdout:\n", - " print(line.decode(), end='')\n", - "\n", - "\n", - "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", - "\n", - "!python main.py --dont-print-server" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gggggggggg" - }, - "source": [ - "### Run ComfyUI with colab iframe (use only in case the previous way with localtunnel doesn't work)\n", - "\n", - "You should see the ui appear in an iframe. If you get a 403 error, it's your firefox settings or an extension that's messing things up.\n", - "\n", - "If you want to open it in another window use the link.\n", - "\n", - "Note that some UI features like live image previews won't work because the colab iframe blocks websockets." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "hhhhhhhhhh" - }, - "outputs": [], - "source": [ - "import threading\n", - "import time\n", - "import socket\n", - "def iframe_thread(port):\n", - " while True:\n", - " time.sleep(0.5)\n", - " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", - " result = sock.connect_ex(('127.0.0.1', port))\n", - " if result == 0:\n", - " break\n", - " sock.close()\n", - " from google.colab import output\n", - " output.serve_kernel_port_as_iframe(port, height=1024)\n", - " print(\"to open it in a window you can open this link here:\")\n", - " output.serve_kernel_port_as_window(port)\n", - "\n", - "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", - "\n", - "!python main.py --dont-print-server" - ] - } - ], - "metadata": { - "accelerator": "GPU", - "colab": { - "provenance": [] - }, - "gpuClass": "standard", - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "aaaaaaaaaa" + }, + "source": [ + "Git clone the repo and install the requirements. (ignore the pip errors about protobuf)" + ] }, - "nbformat": 4, - "nbformat_minor": 0 + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "bbbbbbbbbb" + }, + "outputs": [], + "source": [ + "#@title Environment Setup\n", + "\n", + "\n", + "OPTIONS = {}\n", + "\n", + "USE_GOOGLE_DRIVE = False #@param {type:\"boolean\"}\n", + "UPDATE_COMFY_UI = True #@param {type:\"boolean\"}\n", + "WORKSPACE = 'ComfyUI'\n", + "OPTIONS['USE_GOOGLE_DRIVE'] = USE_GOOGLE_DRIVE\n", + "OPTIONS['UPDATE_COMFY_UI'] = UPDATE_COMFY_UI\n", + "\n", + "if OPTIONS['USE_GOOGLE_DRIVE']:\n", + " !echo \"Mounting Google Drive...\"\n", + " %cd /\n", + " \n", + " from google.colab import drive\n", + " drive.mount('/content/drive')\n", + "\n", + " WORKSPACE = \"/content/drive/MyDrive/ComfyUI\"\n", + " %cd /content/drive/MyDrive\n", + "\n", + "![ ! -d $WORKSPACE ] && echo -= Initial setup ComfyUI =- && git clone https://github.com/comfyanonymous/ComfyUI\n", + "%cd $WORKSPACE\n", + "\n", + "if OPTIONS['UPDATE_COMFY_UI']:\n", + " !echo -= Updating ComfyUI =-\n", + " !git pull\n", + "\n", + "!echo -= Install dependencies =-\n", + "!pip install xformers!=0.0.18 -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu121 --extra-index-url https://download.pytorch.org/whl/cu118 --extra-index-url https://download.pytorch.org/whl/cu117" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "cccccccccc" + }, + "source": [ + "Download some models/checkpoints/vae or custom comfyui nodes (uncomment the commands for the ones you want)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "dddddddddd" + }, + "outputs": [], + "source": [ + "# Checkpoints\n", + "\n", + "### SDXL\n", + "### I recommend these workflow examples: https://comfyanonymous.github.io/ComfyUI_examples/sdxl/\n", + "\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors -P ./models/checkpoints/\n", + "\n", + "# SDXL ReVision\n", + "#!wget -c https://huggingface.co/comfyanonymous/clip_vision_g/resolve/main/clip_vision_g.safetensors -P ./models/clip_vision/\n", + "\n", + "# SD1.5\n", + "!wget -c https://huggingface.co/Comfy-Org/stable-diffusion-v1-5-archive/resolve/main/v1-5-pruned-emaonly-fp16.safetensors -P ./models/checkpoints/\n", + "\n", + "# SD2\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors -P ./models/checkpoints/\n", + "\n", + "# Some SD1.5 anime style\n", + "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A3_orangemixs.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/Linaqruf/anything-v3.0/resolve/main/anything-v3-fp16-pruned.safetensors -P ./models/checkpoints/\n", + "\n", + "# Waifu Diffusion 1.5 (anime style SD2.x 768-v)\n", + "#!wget -c https://huggingface.co/waifu-diffusion/wd-1-5-beta3/resolve/main/wd-illusion-fp16.safetensors -P ./models/checkpoints/\n", + "\n", + "\n", + "# unCLIP models\n", + "#!wget -c https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP/resolve/main/illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors -P ./models/checkpoints/\n", + "#!wget -c https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP/resolve/main/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors -P ./models/checkpoints/\n", + "\n", + "\n", + "# VAE\n", + "!wget -c https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors -P ./models/vae/\n", + "#!wget -c https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt -P ./models/vae/\n", + "#!wget -c https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt -P ./models/vae/\n", + "\n", + "\n", + "# Loras\n", + "#!wget -c https://civitai.com/api/download/models/10350 -O ./models/loras/theovercomer8sContrastFix_sd21768.safetensors #theovercomer8sContrastFix SD2.x 768-v\n", + "#!wget -c https://civitai.com/api/download/models/10638 -O ./models/loras/theovercomer8sContrastFix_sd15.safetensors #theovercomer8sContrastFix SD1.x\n", + "#!wget -c https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors -P ./models/loras/ #SDXL offset noise lora\n", + "\n", + "\n", + "# T2I-Adapter\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth -P ./models/controlnet/\n", + "\n", + "# T2I Styles Model\n", + "#!wget -c https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth -P ./models/style_models/\n", + "\n", + "# CLIPVision model (needed for styles model)\n", + "#!wget -c https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/pytorch_model.bin -O ./models/clip_vision/clip_vit14.bin\n", + "\n", + "\n", + "# ControlNet\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors -P ./models/controlnet/\n", + "\n", + "# ControlNet SDXL\n", + "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-canny-rank256.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-depth-rank256.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors -P ./models/controlnet/\n", + "#!wget -c https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors -P ./models/controlnet/\n", + "\n", + "# Controlnet Preprocessor nodes by Fannovel16\n", + "#!cd custom_nodes && git clone https://github.com/Fannovel16/comfy_controlnet_preprocessors; cd comfy_controlnet_preprocessors && python install.py\n", + "\n", + "\n", + "# GLIGEN\n", + "#!wget -c https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors/resolve/main/gligen_sd14_textbox_pruned_fp16.safetensors -P ./models/gligen/\n", + "\n", + "\n", + "# ESRGAN upscale model\n", + "#!wget -c https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P ./models/upscale_models/\n", + "#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth -P ./models/upscale_models/\n", + "#!wget -c https://huggingface.co/sberbank-ai/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth -P ./models/upscale_models/\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kkkkkkkkkkkkkkk" + }, + "source": [ + "### Run ComfyUI with cloudflared (Recommended Way)\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "jjjjjjjjjjjjjj" + }, + "outputs": [], + "source": [ + "!wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb\n", + "!dpkg -i cloudflared-linux-amd64.deb\n", + "\n", + "import subprocess\n", + "import threading\n", + "import time\n", + "import socket\n", + "import urllib.request\n", + "\n", + "def iframe_thread(port):\n", + " while True:\n", + " time.sleep(0.5)\n", + " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", + " result = sock.connect_ex(('127.0.0.1', port))\n", + " if result == 0:\n", + " break\n", + " sock.close()\n", + " print(\"\\nComfyUI finished loading, trying to launch cloudflared (if it gets stuck here cloudflared is having issues)\\n\")\n", + "\n", + " p = subprocess.Popen([\"cloudflared\", \"tunnel\", \"--url\", \"http://127.0.0.1:{}\".format(port)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)\n", + " for line in p.stderr:\n", + " l = line.decode()\n", + " if \"trycloudflare.com \" in l:\n", + " print(\"This is the URL to access ComfyUI:\", l[l.find(\"http\"):], end='')\n", + " #print(l, end='')\n", + "\n", + "\n", + "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", + "\n", + "!python main.py --dont-print-server" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kkkkkkkkkkkkkk" + }, + "source": [ + "### Run ComfyUI with localtunnel\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "jjjjjjjjjjjjj" + }, + "outputs": [], + "source": [ + "!npm install -g localtunnel\n", + "\n", + "import threading\n", + "\n", + "def iframe_thread(port):\n", + " while True:\n", + " time.sleep(0.5)\n", + " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", + " result = sock.connect_ex(('127.0.0.1', port))\n", + " if result == 0:\n", + " break\n", + " sock.close()\n", + " print(\"\\nComfyUI finished loading, trying to launch localtunnel (if it gets stuck here localtunnel is having issues)\\n\")\n", + "\n", + " print(\"The password/enpoint ip for localtunnel is:\", urllib.request.urlopen('https://ipv4.icanhazip.com').read().decode('utf8').strip(\"\\n\"))\n", + " p = subprocess.Popen([\"lt\", \"--port\", \"{}\".format(port)], stdout=subprocess.PIPE)\n", + " for line in p.stdout:\n", + " print(line.decode(), end='')\n", + "\n", + "\n", + "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", + "\n", + "!python main.py --dont-print-server" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "gggggggggg" + }, + "source": [ + "### Run ComfyUI with colab iframe (use only in case the previous way with localtunnel doesn't work)\n", + "\n", + "You should see the ui appear in an iframe. If you get a 403 error, it's your firefox settings or an extension that's messing things up.\n", + "\n", + "If you want to open it in another window use the link.\n", + "\n", + "Note that some UI features like live image previews won't work because the colab iframe blocks websockets." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "hhhhhhhhhh" + }, + "outputs": [], + "source": [ + "import threading\n", + "def iframe_thread(port):\n", + " while True:\n", + " time.sleep(0.5)\n", + " sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n", + " result = sock.connect_ex(('127.0.0.1', port))\n", + " if result == 0:\n", + " break\n", + " sock.close()\n", + " from google.colab import output\n", + " output.serve_kernel_port_as_iframe(port, height=1024)\n", + " print(\"to open it in a window you can open this link here:\")\n", + " output.serve_kernel_port_as_window(port)\n", + "\n", + "threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()\n", + "\n", + "!python main.py --dont-print-server" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "provenance": [] + }, + "gpuClass": "standard", + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } diff --git a/ruff.toml b/ruff.toml new file mode 100644 index 00000000..660831f2 --- /dev/null +++ b/ruff.toml @@ -0,0 +1,14 @@ +# Disable all rules by default +lint.ignore = ["ALL"] + +# Enable specific rules +lint.select = [ + "S307", # suspicious-eval-usage + "T201", # print-usage + "W", + # The "F" series in Ruff stands for "Pyflakes" rules, which catch various Python syntax errors and undefined names. + # See all rules here: https://docs.astral.sh/ruff/rules/#pyflakes-f + "F", +] + +exclude = ["*.ipynb"] diff --git a/script_examples/basic_api_example.py b/script_examples/basic_api_example.py index bc8ad713..c916e6cb 100644 --- a/script_examples/basic_api_example.py +++ b/script_examples/basic_api_example.py @@ -1,6 +1,5 @@ import json -from urllib import request, parse -import random +from urllib import request #This is the ComfyUI api prompt format. diff --git a/server.py b/server.py index ada6d90c..ceb5e83b 100644 --- a/server.py +++ b/server.py @@ -29,7 +29,8 @@ import comfy.model_management import node_helpers from app.frontend_management import FrontendManager from app.user_manager import UserManager -from model_filemanager import download_model, DownloadModelStatus +from app.model_manager import ModelFileManager +from app.custom_node_manager import CustomNodeManager from typing import Optional from api_server.routes.internal.internal_routes import InternalRoutes @@ -152,7 +153,9 @@ class PromptServer(): mimetypes.types_map['.js'] = 'application/javascript; charset=utf-8' self.user_manager = UserManager() - self.internal_routes = InternalRoutes() + self.model_file_manager = ModelFileManager() + self.custom_node_manager = CustomNodeManager() + self.internal_routes = InternalRoutes(self) self.supports = ["custom_nodes_from_web"] self.prompt_queue = None self.loop = loop @@ -221,7 +224,7 @@ class PromptServer(): def get_embeddings(self): embeddings = folder_paths.get_filename_list("embeddings") return web.json_response(list(map(lambda a: os.path.splitext(a)[0], embeddings))) - + @routes.get("/models") def list_model_types(request): model_types = list(folder_paths.folder_names_and_paths.keys()) @@ -265,7 +268,7 @@ class PromptServer(): def compare_image_hash(filepath, image): hasher = node_helpers.hasher() - + # function to compare hashes of two images to see if it already exists, fix to #3465 if os.path.exists(filepath): a = hasher() @@ -459,7 +462,21 @@ class PromptServer(): return web.Response(body=alpha_buffer.read(), content_type='image/png', headers={"Content-Disposition": f"filename=\"{filename}\""}) else: - return web.FileResponse(file, headers={"Content-Disposition": f"filename=\"{filename}\""}) + # Get content type from mimetype, defaulting to 'application/octet-stream' + content_type = mimetypes.guess_type(filename)[0] or 'application/octet-stream' + + # For security, force certain extensions to download instead of display + file_extension = os.path.splitext(filename)[1].lower() + if file_extension in {'.html', '.htm', '.js', '.css'}: + content_type = 'application/octet-stream' # Forces download + + return web.FileResponse( + file, + headers={ + "Content-Disposition": f"filename=\"{filename}\"", + "Content-Type": content_type + } + ) return web.Response(status=404) @@ -562,7 +579,7 @@ class PromptServer(): for x in nodes.NODE_CLASS_MAPPINGS: try: out[x] = node_info(x) - except Exception as e: + except Exception: logging.error(f"[ERROR] An error occurred while retrieving information for the '{x}' node.") logging.error(traceback.format_exc()) return web.json_response(out) @@ -583,7 +600,7 @@ class PromptServer(): return web.json_response(self.prompt_queue.get_history(max_items=max_items)) @routes.get("/history/{prompt_id}") - async def get_history(request): + async def get_history_prompt_id(request): prompt_id = request.match_info.get("prompt_id", None) return web.json_response(self.prompt_queue.get_history(prompt_id=prompt_id)) @@ -598,8 +615,6 @@ class PromptServer(): @routes.post("/prompt") async def post_prompt(request): logging.info("got prompt") - resp_code = 200 - out_string = "" json_data = await request.json() json_data = self.trigger_on_prompt(json_data) @@ -676,36 +691,6 @@ class PromptServer(): self.prompt_queue.delete_history_item(id_to_delete) return web.Response(status=200) - - # Internal route. Should not be depended upon and is subject to change at any time. - # TODO(robinhuang): Move to internal route table class once we refactor PromptServer to pass around Websocket. - # NOTE: This was an experiment and WILL BE REMOVED - @routes.post("/internal/models/download") - async def download_handler(request): - async def report_progress(filename: str, status: DownloadModelStatus): - payload = status.to_dict() - payload['download_path'] = filename - await self.send_json("download_progress", payload) - - data = await request.json() - url = data.get('url') - model_directory = data.get('model_directory') - folder_path = data.get('folder_path') - model_filename = data.get('model_filename') - progress_interval = data.get('progress_interval', 1.0) # In seconds, how often to report download progress. - - if not url or not model_directory or not model_filename or not folder_path: - return web.json_response({"status": "error", "message": "Missing URL or folder path or filename"}, status=400) - - session = self.client_session - if session is None: - logging.error("Client session is not initialized") - return web.Response(status=500) - - task = asyncio.create_task(download_model(lambda url: session.get(url), model_filename, url, model_directory, folder_path, report_progress, progress_interval)) - await task - - return web.json_response(task.result().to_dict()) async def setup(self): timeout = aiohttp.ClientTimeout(total=None) # no timeout @@ -713,6 +698,8 @@ class PromptServer(): def add_routes(self): self.user_manager.add_routes(self.routes) + self.model_file_manager.add_routes(self.routes) + self.custom_node_manager.add_routes(self.routes, self.app, nodes.LOADED_MODULE_DIRS.items()) self.app.add_subapp('/internal', self.internal_routes.get_app()) # Prefix every route with /api for easier matching for delegation. @@ -729,10 +716,9 @@ class PromptServer(): self.app.add_routes(api_routes) self.app.add_routes(self.routes) + # Add routes from web extensions. for name, dir in nodes.EXTENSION_WEB_DIRS.items(): - self.app.add_routes([ - web.static('/extensions/' + urllib.parse.quote(name), dir), - ]) + self.app.add_routes([web.static('/extensions/' + name, dir)]) self.app.add_routes([ web.static('/', self.web_root), @@ -821,7 +807,7 @@ class PromptServer(): async def start(self, address, port, verbose=True, call_on_start=None): await self.start_multi_address([(address, port)], call_on_start=call_on_start) - async def start_multi_address(self, addresses, call_on_start=None): + async def start_multi_address(self, addresses, call_on_start=None, verbose=True): runner = web.AppRunner(self.app, access_log=None) await runner.setup() ssl_ctx = None @@ -832,7 +818,8 @@ class PromptServer(): keyfile=args.tls_keyfile) scheme = "https" - logging.info("Starting server\n") + if verbose: + logging.info("Starting server\n") for addr in addresses: address = addr[0] port = addr[1] @@ -848,7 +835,8 @@ class PromptServer(): else: address_print = address - logging.info("To see the GUI go to: {}://{}:{}".format(scheme, address_print, port)) + if verbose: + logging.info("To see the GUI go to: {}://{}:{}".format(scheme, address_print, port)) if call_on_start is not None: call_on_start(scheme, self.address, self.port) @@ -860,8 +848,8 @@ class PromptServer(): for handler in self.on_prompt_handlers: try: json_data = handler(json_data) - except Exception as e: - logging.warning(f"[ERROR] An error occurred during the on_prompt_handler processing") + except Exception: + logging.warning("[ERROR] An error occurred during the on_prompt_handler processing") logging.warning(traceback.format_exc()) return json_data diff --git a/tests-unit/app_test/custom_node_manager_test.py b/tests-unit/app_test/custom_node_manager_test.py new file mode 100644 index 00000000..89598de8 --- /dev/null +++ b/tests-unit/app_test/custom_node_manager_test.py @@ -0,0 +1,40 @@ +import pytest +from aiohttp import web +from unittest.mock import patch +from app.custom_node_manager import CustomNodeManager + +pytestmark = ( + pytest.mark.asyncio +) # This applies the asyncio mark to all test functions in the module + +@pytest.fixture +def custom_node_manager(): + return CustomNodeManager() + +@pytest.fixture +def app(custom_node_manager): + app = web.Application() + routes = web.RouteTableDef() + custom_node_manager.add_routes(routes, app, [("ComfyUI-TestExtension1", "ComfyUI-TestExtension1")]) + app.add_routes(routes) + return app + +async def test_get_workflow_templates(aiohttp_client, app, tmp_path): + client = await aiohttp_client(app) + # Setup temporary custom nodes file structure with 1 workflow file + custom_nodes_dir = tmp_path / "custom_nodes" + example_workflows_dir = custom_nodes_dir / "ComfyUI-TestExtension1" / "example_workflows" + example_workflows_dir.mkdir(parents=True) + template_file = example_workflows_dir / "workflow1.json" + template_file.write_text('') + + with patch('folder_paths.folder_names_and_paths', { + 'custom_nodes': ([str(custom_nodes_dir)], None) + }): + response = await client.get('/workflow_templates') + assert response.status == 200 + workflows_dict = await response.json() + assert isinstance(workflows_dict, dict) + assert "ComfyUI-TestExtension1" in workflows_dict + assert isinstance(workflows_dict["ComfyUI-TestExtension1"], list) + assert workflows_dict["ComfyUI-TestExtension1"][0] == "workflow1" diff --git a/tests-unit/app_test/model_manager_test.py b/tests-unit/app_test/model_manager_test.py new file mode 100644 index 00000000..ae59206f --- /dev/null +++ b/tests-unit/app_test/model_manager_test.py @@ -0,0 +1,62 @@ +import pytest +import base64 +import json +import struct +from io import BytesIO +from PIL import Image +from aiohttp import web +from unittest.mock import patch +from app.model_manager import ModelFileManager + +pytestmark = ( + pytest.mark.asyncio +) # This applies the asyncio mark to all test functions in the module + +@pytest.fixture +def model_manager(): + return ModelFileManager() + +@pytest.fixture +def app(model_manager): + app = web.Application() + routes = web.RouteTableDef() + model_manager.add_routes(routes) + app.add_routes(routes) + return app + +async def test_get_model_preview_safetensors(aiohttp_client, app, tmp_path): + img = Image.new('RGB', (100, 100), 'white') + img_byte_arr = BytesIO() + img.save(img_byte_arr, format='PNG') + img_byte_arr.seek(0) + img_b64 = base64.b64encode(img_byte_arr.getvalue()).decode('utf-8') + + safetensors_file = tmp_path / "test_model.safetensors" + header_bytes = json.dumps({ + "__metadata__": { + "ssmd_cover_images": json.dumps([img_b64]) + } + }).encode('utf-8') + length_bytes = struct.pack(' bool: + if self == "*" or value == "*": + return False + if self == "LONGER_THAN_2": + return not len(value) > 2 + raise TypeError("This is a class for unit tests only.") + + +def test_ne_override(): + """Test ``__ne__`` any override""" + any = NotEqualsOverrideTest("*") + invalid_type = "INVALID_TYPE" + obj = object() + assert validate_node_input(any, any) + assert validate_node_input(any, invalid_type) + assert validate_node_input(any, obj) + assert validate_node_input(any, {}) + assert validate_node_input(any, []) + assert validate_node_input(any, [1, 2, 3]) + + +def test_ne_custom_override(): + """Test ``__ne__`` custom override""" + special = NotEqualsOverrideTest("LONGER_THAN_2") + + assert validate_node_input(special, special) + assert validate_node_input(special, "*") + assert validate_node_input(special, "INVALID_TYPE") + assert validate_node_input(special, [1, 2, 3]) + + # Should fail + assert not validate_node_input(special, [1, 2]) + assert not validate_node_input(special, "TY") + + +@pytest.mark.parametrize( + "received,input_type,strict,expected", + [ + ("STRING", "STRING", False, True), + ("STRING,INT", "STRING,INT", False, True), + ("STRING", "STRING,INT", True, True), + ("STRING,INT", "STRING", True, False), + ("BOOLEAN", "STRING,INT", False, False), + ("STRING,BOOLEAN", "STRING,INT", False, True), + ], +) +def test_parametrized_cases(received, input_type, strict, expected): + """Parametrized test cases for various scenarios""" + assert validate_node_input(received, input_type, strict) == expected diff --git a/tests-unit/folder_paths_test/filter_by_content_types_test.py b/tests-unit/folder_paths_test/filter_by_content_types_test.py index 5574789e..423677a6 100644 --- a/tests-unit/folder_paths_test/filter_by_content_types_test.py +++ b/tests-unit/folder_paths_test/filter_by_content_types_test.py @@ -6,8 +6,8 @@ from folder_paths import filter_files_content_types @pytest.fixture(scope="module") def file_extensions(): return { - 'image': ['gif', 'heif', 'ico', 'jpeg', 'jpg', 'png', 'pnm', 'ppm', 'svg', 'tiff', 'webp', 'xbm', 'xpm'], - 'audio': ['aif', 'aifc', 'aiff', 'au', 'flac', 'm4a', 'mp2', 'mp3', 'ogg', 'snd', 'wav'], + 'image': ['gif', 'heif', 'ico', 'jpeg', 'jpg', 'png', 'pnm', 'ppm', 'svg', 'tiff', 'webp', 'xbm', 'xpm'], + 'audio': ['aif', 'aifc', 'aiff', 'au', 'flac', 'm4a', 'mp2', 'mp3', 'ogg', 'snd', 'wav'], 'video': ['avi', 'm2v', 'm4v', 'mkv', 'mov', 'mp4', 'mpeg', 'mpg', 'ogv', 'qt', 'webm', 'wmv'] } @@ -49,4 +49,4 @@ def test_handles_no_extension(): def test_handles_no_files(): files = [] - assert filter_files_content_types(files, ["image", "audio", "video"]) == [] \ No newline at end of file + assert filter_files_content_types(files, ["image", "audio", "video"]) == [] diff --git a/tests-unit/prompt_server_test/download_models_test.py b/tests-unit/prompt_server_test/download_models_test.py deleted file mode 100644 index 128dfeb9..00000000 --- a/tests-unit/prompt_server_test/download_models_test.py +++ /dev/null @@ -1,337 +0,0 @@ -import pytest -import tempfile -import aiohttp -from aiohttp import ClientResponse -import itertools -import os -from unittest.mock import AsyncMock, patch, MagicMock -from model_filemanager import download_model, track_download_progress, create_model_path, check_file_exists, DownloadStatusType, DownloadModelStatus, validate_filename -import folder_paths - -@pytest.fixture -def temp_dir(): - with tempfile.TemporaryDirectory() as tmpdirname: - yield tmpdirname - -class AsyncIteratorMock: - """ - A mock class that simulates an asynchronous iterator. - This is used to mimic the behavior of aiohttp's content iterator. - """ - def __init__(self, seq): - # Convert the input sequence into an iterator - self.iter = iter(seq) - - def __aiter__(self): - # This method is called when 'async for' is used - return self - - async def __anext__(self): - # This method is called for each iteration in an 'async for' loop - try: - return next(self.iter) - except StopIteration: - # This is the asynchronous equivalent of StopIteration - raise StopAsyncIteration - -class ContentMock: - """ - A mock class that simulates the content attribute of an aiohttp ClientResponse. - This class provides the iter_chunked method which returns an async iterator of chunks. - """ - def __init__(self, chunks): - # Store the chunks that will be returned by the iterator - self.chunks = chunks - - def iter_chunked(self, chunk_size): - # This method mimics aiohttp's content.iter_chunked() - # For simplicity in testing, we ignore chunk_size and just return our predefined chunks - return AsyncIteratorMock(self.chunks) - -@pytest.mark.asyncio -async def test_download_model_success(temp_dir): - mock_response = AsyncMock(spec=aiohttp.ClientResponse) - mock_response.status = 200 - mock_response.headers = {'Content-Length': '1000'} - # Create a mock for content that returns an async iterator directly - chunks = [b'a' * 500, b'b' * 300, b'c' * 200] - mock_response.content = ContentMock(chunks) - - mock_make_request = AsyncMock(return_value=mock_response) - mock_progress_callback = AsyncMock() - - time_values = itertools.count(0, 0.1) - - fake_paths = {'checkpoints': ([temp_dir], folder_paths.supported_pt_extensions)} - - with patch('model_filemanager.create_model_path', return_value=('models/checkpoints/model.sft', 'model.sft')), \ - patch('model_filemanager.check_file_exists', return_value=None), \ - patch('folder_paths.folder_names_and_paths', fake_paths), \ - patch('time.time', side_effect=time_values): # Simulate time passing - - result = await download_model( - mock_make_request, - 'model.sft', - 'http://example.com/model.sft', - 'checkpoints', - temp_dir, - mock_progress_callback - ) - - # Assert the result - assert isinstance(result, DownloadModelStatus) - assert result.message == 'Successfully downloaded model.sft' - assert result.status == 'completed' - assert result.already_existed is False - - # Check progress callback calls - assert mock_progress_callback.call_count >= 3 # At least start, one progress update, and completion - - # Check initial call - mock_progress_callback.assert_any_call( - 'model.sft', - DownloadModelStatus(DownloadStatusType.PENDING, 0, "Starting download of model.sft", False) - ) - - # Check final call - mock_progress_callback.assert_any_call( - 'model.sft', - DownloadModelStatus(DownloadStatusType.COMPLETED, 100, "Successfully downloaded model.sft", False) - ) - - mock_file_path = os.path.join(temp_dir, 'model.sft') - assert os.path.exists(mock_file_path) - with open(mock_file_path, 'rb') as mock_file: - assert mock_file.read() == b''.join(chunks) - os.remove(mock_file_path) - - # Verify request was made - mock_make_request.assert_called_once_with('http://example.com/model.sft') - -@pytest.mark.asyncio -async def test_download_model_url_request_failure(temp_dir): - # Mock dependencies - mock_response = AsyncMock(spec=ClientResponse) - mock_response.status = 404 # Simulate a "Not Found" error - mock_get = AsyncMock(return_value=mock_response) - mock_progress_callback = AsyncMock() - - fake_paths = {'checkpoints': ([temp_dir], folder_paths.supported_pt_extensions)} - - # Mock the create_model_path function - with patch('model_filemanager.create_model_path', return_value='/mock/path/model.safetensors'), \ - patch('model_filemanager.check_file_exists', return_value=None), \ - patch('folder_paths.folder_names_and_paths', fake_paths): - # Call the function - result = await download_model( - mock_get, - 'model.safetensors', - 'http://example.com/model.safetensors', - 'checkpoints', - temp_dir, - mock_progress_callback - ) - - # Assert the expected behavior - assert isinstance(result, DownloadModelStatus) - assert result.status == 'error' - assert result.message == 'Failed to download model.safetensors. Status code: 404' - assert result.already_existed is False - - # Check that progress_callback was called with the correct arguments - mock_progress_callback.assert_any_call( - 'model.safetensors', - DownloadModelStatus( - status=DownloadStatusType.PENDING, - progress_percentage=0, - message='Starting download of model.safetensors', - already_existed=False - ) - ) - mock_progress_callback.assert_called_with( - 'model.safetensors', - DownloadModelStatus( - status=DownloadStatusType.ERROR, - progress_percentage=0, - message='Failed to download model.safetensors. Status code: 404', - already_existed=False - ) - ) - - # Verify that the get method was called with the correct URL - mock_get.assert_called_once_with('http://example.com/model.safetensors') - -@pytest.mark.asyncio -async def test_download_model_invalid_model_subdirectory(): - mock_make_request = AsyncMock() - mock_progress_callback = AsyncMock() - - result = await download_model( - mock_make_request, - 'model.sft', - 'http://example.com/model.sft', - '../bad_path', - '../bad_path', - mock_progress_callback - ) - - # Assert the result - assert isinstance(result, DownloadModelStatus) - assert result.message.startswith('Invalid or unrecognized model directory') - assert result.status == 'error' - assert result.already_existed is False - -@pytest.mark.asyncio -async def test_download_model_invalid_folder_path(): - mock_make_request = AsyncMock() - mock_progress_callback = AsyncMock() - - result = await download_model( - mock_make_request, - 'model.sft', - 'http://example.com/model.sft', - 'checkpoints', - 'invalid_path', - mock_progress_callback - ) - - # Assert the result - assert isinstance(result, DownloadModelStatus) - assert result.message.startswith("Invalid folder path") - assert result.status == 'error' - assert result.already_existed is False - -def test_create_model_path(tmp_path, monkeypatch): - model_name = "model.safetensors" - folder_path = os.path.join(tmp_path, "mock_dir") - - file_path = create_model_path(model_name, folder_path) - - assert file_path == os.path.join(folder_path, "model.safetensors") - assert os.path.exists(os.path.dirname(file_path)) - - with pytest.raises(Exception, match="Invalid model directory"): - create_model_path("../path_traversal.safetensors", folder_path) - - with pytest.raises(Exception, match="Invalid model directory"): - create_model_path("/etc/some_root_path", folder_path) - - -@pytest.mark.asyncio -async def test_check_file_exists_when_file_exists(tmp_path): - file_path = tmp_path / "existing_model.sft" - file_path.touch() # Create an empty file - - mock_callback = AsyncMock() - - result = await check_file_exists(str(file_path), "existing_model.sft", mock_callback) - - assert result is not None - assert result.status == "completed" - assert result.message == "existing_model.sft already exists" - assert result.already_existed is True - - mock_callback.assert_called_once_with( - "existing_model.sft", - DownloadModelStatus(DownloadStatusType.COMPLETED, 100, "existing_model.sft already exists", already_existed=True) - ) - -@pytest.mark.asyncio -async def test_check_file_exists_when_file_does_not_exist(tmp_path): - file_path = tmp_path / "non_existing_model.sft" - - mock_callback = AsyncMock() - - result = await check_file_exists(str(file_path), "non_existing_model.sft", mock_callback) - - assert result is None - mock_callback.assert_not_called() - -@pytest.mark.asyncio -async def test_track_download_progress_no_content_length(temp_dir): - mock_response = AsyncMock(spec=aiohttp.ClientResponse) - mock_response.headers = {} # No Content-Length header - chunks = [b'a' * 500, b'b' * 500] - mock_response.content.iter_chunked.return_value = AsyncIteratorMock(chunks) - - mock_callback = AsyncMock() - - full_path = os.path.join(temp_dir, 'model.sft') - - result = await track_download_progress( - mock_response, full_path, 'model.sft', - mock_callback, interval=0.1 - ) - - assert result.status == "completed" - - assert os.path.exists(full_path) - with open(full_path, 'rb') as f: - assert f.read() == b''.join(chunks) - os.remove(full_path) - - # Check that progress was reported even without knowing the total size - mock_callback.assert_any_call( - 'model.sft', - DownloadModelStatus(DownloadStatusType.IN_PROGRESS, 0, "Downloading model.sft", already_existed=False) - ) - -@pytest.mark.asyncio -async def test_track_download_progress_interval(temp_dir): - mock_response = AsyncMock(spec=aiohttp.ClientResponse) - mock_response.headers = {'Content-Length': '1000'} - chunks = [b'a' * 100] * 10 - mock_response.content.iter_chunked.return_value = AsyncIteratorMock(chunks) - - mock_callback = AsyncMock() - mock_open = MagicMock(return_value=MagicMock()) - - # Create a mock time function that returns incremental float values - mock_time = MagicMock() - mock_time.side_effect = [i * 0.5 for i in range(30)] # This should be enough for 10 chunks - - full_path = os.path.join(temp_dir, 'model.sft') - - with patch('time.time', mock_time): - await track_download_progress( - mock_response, full_path, 'model.sft', - mock_callback, interval=1.0 - ) - - assert os.path.exists(full_path) - with open(full_path, 'rb') as f: - assert f.read() == b''.join(chunks) - os.remove(full_path) - - # Assert that progress was updated at least 3 times (start, at least one interval, and end) - assert mock_callback.call_count >= 3, f"Expected at least 3 calls, but got {mock_callback.call_count}" - - # Verify the first and last calls - first_call = mock_callback.call_args_list[0] - assert first_call[0][1].status == "in_progress" - # Allow for some initial progress, but it should be less than 50% - assert 0 <= first_call[0][1].progress_percentage < 50, f"First call progress was {first_call[0][1].progress_percentage}%" - - last_call = mock_callback.call_args_list[-1] - assert last_call[0][1].status == "completed" - assert last_call[0][1].progress_percentage == 100 - -@pytest.mark.parametrize("filename, expected", [ - ("valid_model.safetensors", True), - ("valid_model.sft", True), - ("valid model.safetensors", True), # Test with space - ("UPPERCASE_MODEL.SAFETENSORS", True), - ("model_with.multiple.dots.pt", False), - ("", False), # Empty string - ("../../../etc/passwd", False), # Path traversal attempt - ("/etc/passwd", False), # Absolute path - ("\\windows\\system32\\config\\sam", False), # Windows path - (".hidden_file.pt", False), # Hidden file - ("invalid.ckpt", False), # Invalid character - ("invalid?.ckpt", False), # Another invalid character - ("very" * 100 + ".safetensors", False), # Too long filename - ("\nmodel_with_newline.pt", False), # Newline character - ("model_with_emoji😊.pt", False), # Emoji in filename -]) -def test_validate_filename(filename, expected): - assert validate_filename(filename) == expected diff --git a/tests-unit/prompt_server_test/user_manager_test.py b/tests-unit/prompt_server_test/user_manager_test.py index 936c6bd2..7e523cbf 100644 --- a/tests-unit/prompt_server_test/user_manager_test.py +++ b/tests-unit/prompt_server_test/user_manager_test.py @@ -14,7 +14,7 @@ def user_manager(tmp_path): um = UserManager() um.get_request_user_filepath = lambda req, file, **kwargs: os.path.join( tmp_path, file - ) + ) if file else tmp_path return um @@ -80,9 +80,7 @@ async def test_listuserdata_split_path(aiohttp_client, app, tmp_path): client = await aiohttp_client(app) resp = await client.get("/userdata?dir=test_dir&recurse=true&split=true") assert resp.status == 200 - assert await resp.json() == [ - ["subdir/file1.txt", "subdir", "file1.txt"] - ] + assert await resp.json() == [["subdir/file1.txt", "subdir", "file1.txt"]] async def test_listuserdata_invalid_directory(aiohttp_client, app): @@ -118,3 +116,116 @@ async def test_listuserdata_normalized_separator(aiohttp_client, app, tmp_path): assert "/" in result[0]["path"] # Ensure forward slash is used assert "\\" not in result[0]["path"] # Ensure backslash is not present assert result[0]["path"] == "subdir/file1.txt" + + +async def test_post_userdata_new_file(aiohttp_client, app, tmp_path): + client = await aiohttp_client(app) + content = b"test content" + resp = await client.post("/userdata/test.txt", data=content) + + assert resp.status == 200 + assert await resp.text() == '"test.txt"' + + # Verify file was created with correct content + with open(tmp_path / "test.txt", "rb") as f: + assert f.read() == content + + +async def test_post_userdata_overwrite_existing(aiohttp_client, app, tmp_path): + # Create initial file + with open(tmp_path / "test.txt", "w") as f: + f.write("initial content") + + client = await aiohttp_client(app) + new_content = b"updated content" + resp = await client.post("/userdata/test.txt", data=new_content) + + assert resp.status == 200 + assert await resp.text() == '"test.txt"' + + # Verify file was overwritten + with open(tmp_path / "test.txt", "rb") as f: + assert f.read() == new_content + + +async def test_post_userdata_no_overwrite(aiohttp_client, app, tmp_path): + # Create initial file + with open(tmp_path / "test.txt", "w") as f: + f.write("initial content") + + client = await aiohttp_client(app) + resp = await client.post("/userdata/test.txt?overwrite=false", data=b"new content") + + assert resp.status == 409 + + # Verify original content unchanged + with open(tmp_path / "test.txt", "r") as f: + assert f.read() == "initial content" + + +async def test_post_userdata_full_info(aiohttp_client, app, tmp_path): + client = await aiohttp_client(app) + content = b"test content" + resp = await client.post("/userdata/test.txt?full_info=true", data=content) + + assert resp.status == 200 + result = await resp.json() + assert result["path"] == "test.txt" + assert result["size"] == len(content) + assert "modified" in result + + +async def test_move_userdata(aiohttp_client, app, tmp_path): + # Create initial file + with open(tmp_path / "source.txt", "w") as f: + f.write("test content") + + client = await aiohttp_client(app) + resp = await client.post("/userdata/source.txt/move/dest.txt") + + assert resp.status == 200 + assert await resp.text() == '"dest.txt"' + + # Verify file was moved + assert not os.path.exists(tmp_path / "source.txt") + with open(tmp_path / "dest.txt", "r") as f: + assert f.read() == "test content" + + +async def test_move_userdata_no_overwrite(aiohttp_client, app, tmp_path): + # Create source and destination files + with open(tmp_path / "source.txt", "w") as f: + f.write("source content") + with open(tmp_path / "dest.txt", "w") as f: + f.write("destination content") + + client = await aiohttp_client(app) + resp = await client.post("/userdata/source.txt/move/dest.txt?overwrite=false") + + assert resp.status == 409 + + # Verify files remain unchanged + with open(tmp_path / "source.txt", "r") as f: + assert f.read() == "source content" + with open(tmp_path / "dest.txt", "r") as f: + assert f.read() == "destination content" + + +async def test_move_userdata_full_info(aiohttp_client, app, tmp_path): + # Create initial file + with open(tmp_path / "source.txt", "w") as f: + f.write("test content") + + client = await aiohttp_client(app) + resp = await client.post("/userdata/source.txt/move/dest.txt?full_info=true") + + assert resp.status == 200 + result = await resp.json() + assert result["path"] == "dest.txt" + assert result["size"] == len("test content") + assert "modified" in result + + # Verify file was moved + assert not os.path.exists(tmp_path / "source.txt") + with open(tmp_path / "dest.txt", "r") as f: + assert f.read() == "test content" diff --git a/tests-unit/server/routes/internal_routes_test.py b/tests-unit/server/routes/internal_routes_test.py index 2d2b43bd..68c84665 100644 --- a/tests-unit/server/routes/internal_routes_test.py +++ b/tests-unit/server/routes/internal_routes_test.py @@ -8,7 +8,7 @@ from folder_paths import models_dir, user_directory, output_directory @pytest.fixture def internal_routes(): - return InternalRoutes() + return InternalRoutes(None) @pytest.fixture def aiohttp_client_factory(aiohttp_client, internal_routes): @@ -89,9 +89,9 @@ async def test_routes_added_to_app(aiohttp_client_factory, internal_routes): client = await aiohttp_client_factory() try: resp = await client.get('/files') - print(f"Response received: status {resp.status}") + print(f"Response received: status {resp.status}") # noqa: T201 except Exception as e: - print(f"Exception occurred during GET request: {e}") + print(f"Exception occurred during GET request: {e}") # noqa: T201 raise assert resp.status != 404, "Route /files does not exist" @@ -102,7 +102,7 @@ async def test_file_service_initialization(): # Create a mock instance mock_file_service_instance = MagicMock(spec=FileService) MockFileService.return_value = mock_file_service_instance - internal_routes = InternalRoutes() + internal_routes = InternalRoutes(None) # Check if FileService was initialized with the correct parameters MockFileService.assert_called_once_with({ @@ -112,4 +112,4 @@ async def test_file_service_initialization(): }) # Verify that the file_service attribute of InternalRoutes is set - assert internal_routes.file_service == mock_file_service_instance \ No newline at end of file + assert internal_routes.file_service == mock_file_service_instance diff --git a/tests-unit/server/services/file_service_test.py b/tests-unit/server/services/file_service_test.py index 5650452a..09c3efc9 100644 --- a/tests-unit/server/services/file_service_test.py +++ b/tests-unit/server/services/file_service_test.py @@ -20,9 +20,9 @@ def test_list_files_valid_directory(file_service, mock_file_system_ops): {"name": "file1.txt", "path": "file1.txt", "type": "file", "size": 100}, {"name": "dir1", "path": "dir1", "type": "directory"} ] - + result = file_service.list_files("models") - + assert len(result) == 2 assert result[0]["name"] == "file1.txt" assert result[1]["name"] == "dir1" @@ -35,9 +35,9 @@ def test_list_files_invalid_directory(file_service): def test_list_files_empty_directory(file_service, mock_file_system_ops): mock_file_system_ops.walk_directory.return_value = [] - + result = file_service.list_files("models") - + assert len(result) == 0 mock_file_system_ops.walk_directory.assert_called_once_with("/path/to/models") @@ -46,9 +46,9 @@ def test_list_files_all_allowed_directories(file_service, mock_file_system_ops, mock_file_system_ops.walk_directory.return_value = [ {"name": f"file_{directory_key}.txt", "path": f"file_{directory_key}.txt", "type": "file", "size": 100} ] - + result = file_service.list_files(directory_key) - + assert len(result) == 1 assert result[0]["name"] == f"file_{directory_key}.txt" - mock_file_system_ops.walk_directory.assert_called_once_with(f"/path/to/{directory_key}") \ No newline at end of file + mock_file_system_ops.walk_directory.assert_called_once_with(f"/path/to/{directory_key}") diff --git a/tests-unit/server/utils/file_operations_test.py b/tests-unit/server/utils/file_operations_test.py index 5a2a8371..2a45cc47 100644 --- a/tests-unit/server/utils/file_operations_test.py +++ b/tests-unit/server/utils/file_operations_test.py @@ -16,18 +16,18 @@ def temp_directory(tmp_path): def test_walk_directory(temp_directory): result: List[FileSystemItem] = FileSystemOperations.walk_directory(str(temp_directory)) - + assert len(result) == 5 # 2 directories and 3 files - + files = [item for item in result if item['type'] == 'file'] dirs = [item for item in result if item['type'] == 'directory'] - + assert len(files) == 3 assert len(dirs) == 2 - + file_names = {file['name'] for file in files} assert file_names == {'file1.txt', 'file2.txt', 'file3.txt'} - + dir_names = {dir['name'] for dir in dirs} assert dir_names == {'dir1', 'dir2'} diff --git a/tests-unit/utils/extra_config_test.py b/tests-unit/utils/extra_config_test.py index ef772d40..143e1f2e 100644 --- a/tests-unit/utils/extra_config_test.py +++ b/tests-unit/utils/extra_config_test.py @@ -57,8 +57,8 @@ def mock_yaml_safe_load(mock_yaml_content): def test_load_extra_model_paths_expands_userpath( mock_file, monkeypatch, - mock_add_model_folder_path, - mock_expanduser, + mock_add_model_folder_path, + mock_expanduser, mock_yaml_safe_load, mock_expanded_home ): @@ -75,10 +75,10 @@ def test_load_extra_model_paths_expands_userpath( ] assert mock_add_model_folder_path.call_count == len(expected_calls) - + # Check if add_model_folder_path was called with the correct arguments for actual_call, expected_call in zip(mock_add_model_folder_path.call_args_list, expected_calls): - assert actual_call.args[0] == expected_call[0] + assert actual_call.args[0] == expected_call[0] assert os.path.normpath(actual_call.args[1]) == os.path.normpath(expected_call[1]) # Normalize and check the path to check on multiple OS. assert actual_call.args[2] == expected_call[2] @@ -97,7 +97,7 @@ def test_load_extra_model_paths_expands_appdata( yaml_config_with_appdata, mock_yaml_content_appdata ): - # Set the mock_file to return yaml with appdata as a variable + # Set the mock_file to return yaml with appdata as a variable mock_file.return_value.read.return_value = yaml_config_with_appdata # Attach mocks @@ -117,7 +117,7 @@ def test_load_extra_model_paths_expands_appdata( ] assert mock_add_model_folder_path.call_count == len(expected_calls) - + # Check the base path variable was expanded for actual_call, expected_call in zip(mock_add_model_folder_path.call_args_list, expected_calls): assert actual_call.args == expected_call diff --git a/tests/compare/test_quality.py b/tests/compare/test_quality.py index 92a2d5a8..01c19054 100644 --- a/tests/compare/test_quality.py +++ b/tests/compare/test_quality.py @@ -22,7 +22,7 @@ def ssim_score(img0: np.ndarray, img1: np.ndarray) -> Tuple[float, np.ndarray]: # rescale the difference image to 0-255 range diff = (diff * 255).astype("uint8") return score, diff - + # Metrics must return a tuple of (score, diff_image) METRICS = {"ssim": ssim_score} METRICS_PASS_THRESHOLD = {"ssim": 0.95} @@ -32,7 +32,7 @@ class TestCompareImageMetrics: @fixture(scope="class") def test_file_names(self, args_pytest): test_dir = args_pytest['test_dir'] - fnames = self.gather_file_basenames(test_dir) + fnames = self.gather_file_basenames(test_dir) yield fnames del fnames @@ -64,13 +64,13 @@ class TestCompareImageMetrics: image_list = [[Image.open(file) for file in files] for files in image_file_list] grid = self.image_grid(image_list) grid.save(os.path.join(grid_dir, f"{metric_dir}_{score:.3f}_{file}")) - + # Tests run for each baseline file name @fixture() def fname(self, baseline_fname): yield baseline_fname del baseline_fname - + def test_directories_not_empty(self, args_pytest): baseline_dir = args_pytest['baseline_dir'] test_dir = args_pytest['test_dir'] @@ -84,7 +84,7 @@ class TestCompareImageMetrics: file_match = self.find_file_match(baseline_file_path, file_paths) assert file_match is not None, f"Could not find a file in {args_pytest['test_dir']} with matching metadata to {baseline_file_path}" - # For a baseline image file, finds the corresponding file name in test_dir and + # For a baseline image file, finds the corresponding file name in test_dir and # compares the images using the metrics in METRICS @pytest.mark.parametrize("metric", METRICS.keys()) def test_pipeline_compare( @@ -98,7 +98,7 @@ class TestCompareImageMetrics: test_dir = args_pytest['test_dir'] metrics_output_file = args_pytest['metrics_file'] img_output_dir = args_pytest['img_output_dir'] - + baseline_file_path = os.path.join(baseline_dir, fname) # Find file match @@ -108,7 +108,7 @@ class TestCompareImageMetrics: # Run metrics sample_baseline = self.read_img(baseline_file_path) sample_secondary = self.read_img(test_file) - + score, metric_img = METRICS[metric](sample_baseline, sample_secondary) metric_status = score > METRICS_PASS_THRESHOLD[metric] @@ -140,7 +140,7 @@ class TestCompareImageMetrics: w, h = img_list[0][0].size grid = Image.new('RGB', size=(cols*w, rows*h)) - + for i, row in enumerate(img_list): for j, img in enumerate(row): grid.paste(img, box=(j*w, i*h)) @@ -170,7 +170,7 @@ class TestCompareImageMetrics: img = Image.open(fname) img.load() return img.info['prompt'] - + def find_file_match(self, baseline_file: str, file_paths: List[str]): # Find a file in file_paths with matching metadata to baseline_file baseline_prompt = self.read_file_prompt(baseline_file) @@ -181,7 +181,7 @@ class TestCompareImageMetrics: # Find file match # Reorder test_file_names so that the file with matching name is first - # This is an optimization because matching file names are more likely + # This is an optimization because matching file names are more likely # to have matching metadata if they were generated with the same script basename = os.path.basename(baseline_file) file_path_basenames = [os.path.basename(f) for f in file_paths] @@ -192,4 +192,4 @@ class TestCompareImageMetrics: for f in file_paths: test_file_prompt = self.read_file_prompt(f) if baseline_prompt == test_file_prompt: - return f \ No newline at end of file + return f diff --git a/tests/conftest.py b/tests/conftest.py index 1a35880a..4e30eb58 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -21,14 +21,14 @@ def args_pytest(pytestconfig): def pytest_collection_modifyitems(items): # Modifies items so tests run in the correct order - + LAST_TESTS = ['test_quality'] # Move the last items to the end last_items = [] for test_name in LAST_TESTS: for item in items.copy(): - print(item.module.__name__, item) + print(item.module.__name__, item) # noqa: T201 if item.module.__name__ == test_name: last_items.append(item) items.remove(item) diff --git a/tests/inference/test_execution.py b/tests/inference/test_execution.py index 3909ca68..5cda5c1a 100644 --- a/tests/inference/test_execution.py +++ b/tests/inference/test_execution.py @@ -40,8 +40,8 @@ class ComfyClient: def __init__(self): self.test_name = "" - def connect(self, - listen:str = '127.0.0.1', + def connect(self, + listen:str = '127.0.0.1', port:Union[str,int] = 8188, client_id: str = str(uuid.uuid4()) ): @@ -125,7 +125,7 @@ class TestExecution: def _server(self, args_pytest, request): # Start server pargs = [ - 'python','main.py', + 'python','main.py', '--output-directory', args_pytest["output_dir"], '--listen', args_pytest["listen"], '--port', str(args_pytest["port"]), @@ -134,7 +134,7 @@ class TestExecution: use_lru, lru_size = request.param if use_lru: pargs += ['--cache-lru', str(lru_size)] - print("Running server with args:", pargs) + print("Running server with args:", pargs) # noqa: T201 p = subprocess.Popen(pargs) yield p.kill() @@ -150,8 +150,8 @@ class TestExecution: try: comfy_client.connect(listen=listen, port=port) except ConnectionRefusedError as e: - print(e) - print(f"({i+1}/{n_tries}) Retrying...") + print(e) # noqa: T201 + print(f"({i+1}/{n_tries}) Retrying...") # noqa: T201 else: break return comfy_client @@ -368,7 +368,7 @@ class TestExecution: g.node("SaveImage", images=mix1.out(0)) g.node("SaveImage", images=mix2.out(0)) g.remove_node("removeme") - + client.run(g) # Add back in the missing node to make sure the error doesn't break the server @@ -512,7 +512,7 @@ class TestExecution: int_list = g.node("TestMakeListNode", value1=int1.out(0), value2=int2.out(0), value3=int3.out(0)) compare = g.node("TestIntConditions", a=int_list.out(0), b=2, operation="==") blocker = g.node("TestExecutionBlocker", input=image_list.out(0), block=compare.out(0), verbose=False) - + list_output = g.node("TestMakeListNode", value1=blocker.out(0)) output = g.node("PreviewImage", images=list_output.out(0)) diff --git a/tests/inference/test_inference.py b/tests/inference/test_inference.py index 2e11778f..7e4a206c 100644 --- a/tests/inference/test_inference.py +++ b/tests/inference/test_inference.py @@ -1,6 +1,5 @@ from copy import deepcopy from io import BytesIO -from urllib import request import numpy import os from PIL import Image @@ -24,7 +23,7 @@ These tests generate and save images through a range of parameters """ class ComfyGraph: - def __init__(self, + def __init__(self, graph: dict, sampler_nodes: list[str], ): @@ -44,12 +43,12 @@ class ComfyGraph: # sets the sampler name for the sampler nodes (eg. base and refiner) for node in self.sampler_nodes: self.graph[node]['inputs']['sampler_name'] = sampler_name - + def set_scheduler(self, scheduler:str): # sets the sampler name for the sampler nodes (eg. base and refiner) for node in self.sampler_nodes: self.graph[node]['inputs']['scheduler'] = scheduler - + def set_filename_prefix(self, prefix:str): # sets the filename prefix for the save nodes for node in self.graph: @@ -60,8 +59,8 @@ class ComfyGraph: class ComfyClient: # From examples/websockets_api_example.py - def connect(self, - listen:str = '127.0.0.1', + def connect(self, + listen:str = '127.0.0.1', port:Union[str,int] = 8188, client_id: str = str(uuid.uuid4()) ): @@ -153,7 +152,7 @@ class TestInference: def _server(self, args_pytest): # Start server p = subprocess.Popen([ - 'python','main.py', + 'python','main.py', '--output-directory', args_pytest["output_dir"], '--listen', args_pytest["listen"], '--port', str(args_pytest["port"]), @@ -172,8 +171,8 @@ class TestInference: try: comfy_client.connect(listen=listen, port=port) except ConnectionRefusedError as e: - print(e) - print(f"({i+1}/{n_tries}) Retrying...") + print(e) # noqa: T201 + print(f"({i+1}/{n_tries}) Retrying...") # noqa: T201 else: break return comfy_client @@ -186,7 +185,7 @@ class TestInference: @fixture(scope="class", params=comfy_graph_list, ids=comfy_graph_ids, autouse=True) def _client_graph(self, request, args_pytest, _server) -> (ComfyClient, ComfyGraph): comfy_graph = request.param - + # Start client comfy_client = self.start_client(args_pytest["listen"], args_pytest["port"]) @@ -202,7 +201,7 @@ class TestInference: def client(self, _client_graph): client = _client_graph[0] yield client - + @fixture def comfy_graph(self, _client_graph): # avoid mutating the graph diff --git a/tests/inference/testing_nodes/testing-pack/specific_tests.py b/tests/inference/testing_nodes/testing-pack/specific_tests.py index dd810023..9d05ab14 100644 --- a/tests/inference/testing_nodes/testing-pack/specific_tests.py +++ b/tests/inference/testing_nodes/testing-pack/specific_tests.py @@ -87,7 +87,7 @@ class TestCustomIsChanged: def custom_is_changed(self, image, should_change=False): return (image,) - + @classmethod def IS_CHANGED(cls, should_change=False, *args, **kwargs): if should_change: @@ -112,7 +112,7 @@ class TestIsChangedWithConstants: def custom_is_changed(self, image, value): return (image * value,) - + @classmethod def IS_CHANGED(cls, image, value): if image is None: diff --git a/tests/inference/testing_nodes/testing-pack/util.py b/tests/inference/testing_nodes/testing-pack/util.py index ca116c16..17741c5f 100644 --- a/tests/inference/testing_nodes/testing-pack/util.py +++ b/tests/inference/testing_nodes/testing-pack/util.py @@ -145,7 +145,7 @@ class TestAccumulationGetLengthNode: def accumlength(self, accumulation): return (len(accumulation['accum']),) - + @VariantSupport() class TestAccumulationGetItemNode: def __init__(self): @@ -168,7 +168,7 @@ class TestAccumulationGetItemNode: def get_item(self, accumulation, index): return (accumulation['accum'][index],) - + @VariantSupport() class TestAccumulationSetItemNode: def __init__(self): @@ -259,7 +259,7 @@ class TestForLoopOpen: graph = GraphBuilder() if "initial_value0" in kwargs: remaining = kwargs["initial_value0"] - while_open = graph.node("TestWhileLoopOpen", condition=remaining, initial_value0=remaining, **{(f"initial_value{i}"): kwargs.get(f"initial_value{i}", None) for i in range(1, NUM_FLOW_SOCKETS)}) + graph.node("TestWhileLoopOpen", condition=remaining, initial_value0=remaining, **{(f"initial_value{i}"): kwargs.get(f"initial_value{i}", None) for i in range(1, NUM_FLOW_SOCKETS)}) outputs = [kwargs.get(f"initial_value{i}", None) for i in range(1, NUM_FLOW_SOCKETS)] return { "result": tuple(["stub", remaining] + outputs), diff --git a/utils/extra_config.py b/utils/extra_config.py index 90876590..415db042 100644 --- a/utils/extra_config.py +++ b/utils/extra_config.py @@ -24,5 +24,8 @@ def load_extra_path_config(yaml_path): full_path = y if base_path is not None: full_path = os.path.join(base_path, full_path) + elif not os.path.isabs(full_path): + yaml_dir = os.path.dirname(os.path.abspath(yaml_path)) + full_path = os.path.abspath(os.path.join(yaml_dir, y)) logging.info("Adding extra search path {} {}".format(x, full_path)) folder_paths.add_model_folder_path(x, full_path, is_default) diff --git a/web/assets/BaseViewTemplate-CsEJhGbv.js b/web/assets/BaseViewTemplate-CsEJhGbv.js new file mode 100644 index 00000000..d254b402 --- /dev/null +++ b/web/assets/BaseViewTemplate-CsEJhGbv.js @@ -0,0 +1,23 @@ +import { d as defineComponent, o as openBlock, f as createElementBlock, J as renderSlot, T as normalizeClass } from "./index-C4Fk50Nx.js"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "BaseViewTemplate", + props: { + dark: { type: Boolean, default: false } + }, + setup(__props) { + const props = __props; + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", { + class: normalizeClass(["font-sans w-screen h-screen flex items-center justify-center pointer-events-auto overflow-auto", [ + props.dark ? "text-neutral-300 bg-neutral-900 dark-theme" : "text-neutral-900 bg-neutral-300" + ]]) + }, [ + renderSlot(_ctx.$slots, "default") + ], 2); + }; + } +}); +export { + _sfc_main as _ +}; +//# sourceMappingURL=BaseViewTemplate-CsEJhGbv.js.map diff --git a/web/assets/DownloadGitView-DP1MIWYX.js b/web/assets/DownloadGitView-DP1MIWYX.js new file mode 100644 index 00000000..fff3e743 --- /dev/null +++ b/web/assets/DownloadGitView-DP1MIWYX.js @@ -0,0 +1,58 @@ +var __defProp = Object.defineProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +import { d as defineComponent, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, bW as useRouter } from "./index-C4Fk50Nx.js"; +import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js"; +const _hoisted_1 = { class: "max-w-screen-sm flex flex-col gap-8 p-8 bg-[url('/assets/images/Git-Logo-White.svg')] bg-no-repeat bg-right-top bg-origin-padding" }; +const _hoisted_2 = { class: "mt-24 text-4xl font-bold text-red-500" }; +const _hoisted_3 = { class: "space-y-4" }; +const _hoisted_4 = { class: "text-xl" }; +const _hoisted_5 = { class: "text-xl" }; +const _hoisted_6 = { class: "text-m" }; +const _hoisted_7 = { class: "flex gap-4 flex-row-reverse" }; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "DownloadGitView", + setup(__props) { + const openGitDownloads = /* @__PURE__ */ __name(() => { + window.open("https://git-scm.com/downloads/", "_blank"); + }, "openGitDownloads"); + const skipGit = /* @__PURE__ */ __name(() => { + console.warn("pushing"); + const router = useRouter(); + router.push("install"); + }, "skipGit"); + return (_ctx, _cache) => { + return openBlock(), createBlock(_sfc_main$1, null, { + default: withCtx(() => [ + createBaseVNode("div", _hoisted_1, [ + createBaseVNode("h1", _hoisted_2, toDisplayString(_ctx.$t("downloadGit.title")), 1), + createBaseVNode("div", _hoisted_3, [ + createBaseVNode("p", _hoisted_4, toDisplayString(_ctx.$t("downloadGit.message")), 1), + createBaseVNode("p", _hoisted_5, toDisplayString(_ctx.$t("downloadGit.instructions")), 1), + createBaseVNode("p", _hoisted_6, toDisplayString(_ctx.$t("downloadGit.warning")), 1) + ]), + createBaseVNode("div", _hoisted_7, [ + createVNode(unref(script), { + label: _ctx.$t("downloadGit.gitWebsite"), + icon: "pi pi-external-link", + "icon-pos": "right", + onClick: openGitDownloads, + severity: "primary" + }, null, 8, ["label"]), + createVNode(unref(script), { + label: _ctx.$t("downloadGit.skip"), + icon: "pi pi-exclamation-triangle", + onClick: skipGit, + severity: "secondary" + }, null, 8, ["label"]) + ]) + ]) + ]), + _: 1 + }); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=DownloadGitView-DP1MIWYX.js.map diff --git a/web/assets/ExtensionPanel-CxijYN47.js b/web/assets/ExtensionPanel-CxijYN47.js new file mode 100644 index 00000000..6cf7706c --- /dev/null +++ b/web/assets/ExtensionPanel-CxijYN47.js @@ -0,0 +1,183 @@ +var __defProp = Object.defineProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +import { d as defineComponent, ab as ref, cn as FilterMatchMode, cs as useExtensionStore, a as useSettingStore, m as onMounted, c as computed, o as openBlock, k as createBlock, M as withCtx, N as createVNode, co as SearchBox, j as unref, bZ as script, H as createBaseVNode, f as createElementBlock, E as renderList, X as toDisplayString, aE as createTextVNode, F as Fragment, l as script$1, I as createCommentVNode, aI as script$3, bO as script$4, c4 as script$5, cp as _sfc_main$1 } from "./index-C4Fk50Nx.js"; +import { s as script$2, a as script$6 } from "./index-CK0rrCYF.js"; +import "./index-lMQBwSDj.js"; +import "./index-B7ycxfFq.js"; +const _hoisted_1 = { class: "flex justify-end" }; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "ExtensionPanel", + setup(__props) { + const filters = ref({ + global: { value: "", matchMode: FilterMatchMode.CONTAINS } + }); + const extensionStore = useExtensionStore(); + const settingStore = useSettingStore(); + const editingEnabledExtensions = ref({}); + onMounted(() => { + extensionStore.extensions.forEach((ext) => { + editingEnabledExtensions.value[ext.name] = extensionStore.isExtensionEnabled(ext.name); + }); + }); + const changedExtensions = computed(() => { + return extensionStore.extensions.filter( + (ext) => editingEnabledExtensions.value[ext.name] !== extensionStore.isExtensionEnabled(ext.name) + ); + }); + const hasChanges = computed(() => { + return changedExtensions.value.length > 0; + }); + const updateExtensionStatus = /* @__PURE__ */ __name(() => { + const editingDisabledExtensionNames = Object.entries( + editingEnabledExtensions.value + ).filter(([_, enabled]) => !enabled).map(([name]) => name); + settingStore.set("Comfy.Extension.Disabled", [ + ...extensionStore.inactiveDisabledExtensionNames, + ...editingDisabledExtensionNames + ]); + }, "updateExtensionStatus"); + const enableAllExtensions = /* @__PURE__ */ __name(() => { + extensionStore.extensions.forEach((ext) => { + if (extensionStore.isExtensionReadOnly(ext.name)) return; + editingEnabledExtensions.value[ext.name] = true; + }); + updateExtensionStatus(); + }, "enableAllExtensions"); + const disableAllExtensions = /* @__PURE__ */ __name(() => { + extensionStore.extensions.forEach((ext) => { + if (extensionStore.isExtensionReadOnly(ext.name)) return; + editingEnabledExtensions.value[ext.name] = false; + }); + updateExtensionStatus(); + }, "disableAllExtensions"); + const disableThirdPartyExtensions = /* @__PURE__ */ __name(() => { + extensionStore.extensions.forEach((ext) => { + if (extensionStore.isCoreExtension(ext.name)) return; + editingEnabledExtensions.value[ext.name] = false; + }); + updateExtensionStatus(); + }, "disableThirdPartyExtensions"); + const applyChanges = /* @__PURE__ */ __name(() => { + window.location.reload(); + }, "applyChanges"); + const menu = ref(); + const contextMenuItems = [ + { + label: "Enable All", + icon: "pi pi-check", + command: enableAllExtensions + }, + { + label: "Disable All", + icon: "pi pi-times", + command: disableAllExtensions + }, + { + label: "Disable 3rd Party", + icon: "pi pi-times", + command: disableThirdPartyExtensions, + disabled: !extensionStore.hasThirdPartyExtensions + } + ]; + return (_ctx, _cache) => { + return openBlock(), createBlock(_sfc_main$1, { + value: "Extension", + class: "extension-panel" + }, { + header: withCtx(() => [ + createVNode(SearchBox, { + modelValue: filters.value["global"].value, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => filters.value["global"].value = $event), + placeholder: _ctx.$t("g.searchExtensions") + "..." + }, null, 8, ["modelValue", "placeholder"]), + hasChanges.value ? (openBlock(), createBlock(unref(script), { + key: 0, + severity: "info", + "pt:text": "w-full", + class: "max-h-96 overflow-y-auto" + }, { + default: withCtx(() => [ + createBaseVNode("ul", null, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(changedExtensions.value, (ext) => { + return openBlock(), createElementBlock("li", { + key: ext.name + }, [ + createBaseVNode("span", null, toDisplayString(unref(extensionStore).isExtensionEnabled(ext.name) ? "[-]" : "[+]"), 1), + createTextVNode(" " + toDisplayString(ext.name), 1) + ]); + }), 128)) + ]), + createBaseVNode("div", _hoisted_1, [ + createVNode(unref(script$1), { + label: _ctx.$t("g.reloadToApplyChanges"), + onClick: applyChanges, + outlined: "", + severity: "danger" + }, null, 8, ["label"]) + ]) + ]), + _: 1 + })) : createCommentVNode("", true) + ]), + default: withCtx(() => [ + createVNode(unref(script$6), { + value: unref(extensionStore).extensions, + stripedRows: "", + size: "small", + filters: filters.value + }, { + default: withCtx(() => [ + createVNode(unref(script$2), { + header: _ctx.$t("g.extensionName"), + sortable: "", + field: "name" + }, { + body: withCtx((slotProps) => [ + createTextVNode(toDisplayString(slotProps.data.name) + " ", 1), + unref(extensionStore).isCoreExtension(slotProps.data.name) ? (openBlock(), createBlock(unref(script$3), { + key: 0, + value: "Core" + })) : createCommentVNode("", true) + ]), + _: 1 + }, 8, ["header"]), + createVNode(unref(script$2), { pt: { + headerCell: "flex items-center justify-end", + bodyCell: "flex items-center justify-end" + } }, { + header: withCtx(() => [ + createVNode(unref(script$1), { + icon: "pi pi-ellipsis-h", + text: "", + severity: "secondary", + onClick: _cache[1] || (_cache[1] = ($event) => menu.value.show($event)) + }), + createVNode(unref(script$4), { + ref_key: "menu", + ref: menu, + model: contextMenuItems + }, null, 512) + ]), + body: withCtx((slotProps) => [ + createVNode(unref(script$5), { + disabled: unref(extensionStore).isExtensionReadOnly(slotProps.data.name), + modelValue: editingEnabledExtensions.value[slotProps.data.name], + "onUpdate:modelValue": /* @__PURE__ */ __name(($event) => editingEnabledExtensions.value[slotProps.data.name] = $event, "onUpdate:modelValue"), + onChange: updateExtensionStatus + }, null, 8, ["disabled", "modelValue", "onUpdate:modelValue"]) + ]), + _: 1 + }) + ]), + _: 1 + }, 8, ["value", "filters"]) + ]), + _: 1 + }); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=ExtensionPanel-CxijYN47.js.map diff --git a/web/assets/ExtensionPanel-DZLYjWBj.js b/web/assets/ExtensionPanel-DZLYjWBj.js deleted file mode 100644 index 36e944c3..00000000 --- a/web/assets/ExtensionPanel-DZLYjWBj.js +++ /dev/null @@ -1,103 +0,0 @@ -var __defProp = Object.defineProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { d as defineComponent, bK as useExtensionStore, u as useSettingStore, r as ref, o as onMounted, q as computed, g as openBlock, h as createElementBlock, i as createVNode, y as withCtx, z as unref, bL as script$1, A as createBaseVNode, x as createBlock, M as Fragment, N as renderList, am as toDisplayString, ap as createTextVNode, j as createCommentVNode, D as script$4 } from "./index-CgU1oKZt.js"; -import { s as script, a as script$2, b as script$3 } from "./index-DBWDcZsl.js"; -import "./index-DYEEBf64.js"; -const _hoisted_1 = { class: "extension-panel" }; -const _hoisted_2 = { class: "mt-4" }; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "ExtensionPanel", - setup(__props) { - const extensionStore = useExtensionStore(); - const settingStore = useSettingStore(); - const editingEnabledExtensions = ref({}); - onMounted(() => { - extensionStore.extensions.forEach((ext) => { - editingEnabledExtensions.value[ext.name] = extensionStore.isExtensionEnabled(ext.name); - }); - }); - const changedExtensions = computed(() => { - return extensionStore.extensions.filter( - (ext) => editingEnabledExtensions.value[ext.name] !== extensionStore.isExtensionEnabled(ext.name) - ); - }); - const hasChanges = computed(() => { - return changedExtensions.value.length > 0; - }); - const updateExtensionStatus = /* @__PURE__ */ __name(() => { - const editingDisabledExtensionNames = Object.entries( - editingEnabledExtensions.value - ).filter(([_, enabled]) => !enabled).map(([name]) => name); - settingStore.set("Comfy.Extension.Disabled", [ - ...extensionStore.inactiveDisabledExtensionNames, - ...editingDisabledExtensionNames - ]); - }, "updateExtensionStatus"); - const applyChanges = /* @__PURE__ */ __name(() => { - window.location.reload(); - }, "applyChanges"); - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", _hoisted_1, [ - createVNode(unref(script$2), { - value: unref(extensionStore).extensions, - stripedRows: "", - size: "small" - }, { - default: withCtx(() => [ - createVNode(unref(script), { - field: "name", - header: _ctx.$t("extensionName"), - sortable: "" - }, null, 8, ["header"]), - createVNode(unref(script), { pt: { - bodyCell: "flex items-center justify-end" - } }, { - body: withCtx((slotProps) => [ - createVNode(unref(script$1), { - modelValue: editingEnabledExtensions.value[slotProps.data.name], - "onUpdate:modelValue": /* @__PURE__ */ __name(($event) => editingEnabledExtensions.value[slotProps.data.name] = $event, "onUpdate:modelValue"), - onChange: updateExtensionStatus - }, null, 8, ["modelValue", "onUpdate:modelValue"]) - ]), - _: 1 - }) - ]), - _: 1 - }, 8, ["value"]), - createBaseVNode("div", _hoisted_2, [ - hasChanges.value ? (openBlock(), createBlock(unref(script$3), { - key: 0, - severity: "info" - }, { - default: withCtx(() => [ - createBaseVNode("ul", null, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(changedExtensions.value, (ext) => { - return openBlock(), createElementBlock("li", { - key: ext.name - }, [ - createBaseVNode("span", null, toDisplayString(unref(extensionStore).isExtensionEnabled(ext.name) ? "[-]" : "[+]"), 1), - createTextVNode(" " + toDisplayString(ext.name), 1) - ]); - }), 128)) - ]) - ]), - _: 1 - })) : createCommentVNode("", true), - createVNode(unref(script$4), { - label: _ctx.$t("reloadToApplyChanges"), - icon: "pi pi-refresh", - onClick: applyChanges, - disabled: !hasChanges.value, - text: "", - fluid: "", - severity: "danger" - }, null, 8, ["label", "disabled"]) - ]) - ]); - }; - } -}); -export { - _sfc_main as default -}; -//# sourceMappingURL=ExtensionPanel-DZLYjWBj.js.map diff --git a/web/assets/ExtensionPanel-DZLYjWBj.js.map b/web/assets/ExtensionPanel-DZLYjWBj.js.map deleted file mode 100644 index eabe9cba..00000000 --- a/web/assets/ExtensionPanel-DZLYjWBj.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ExtensionPanel-DZLYjWBj.js","sources":["../../src/components/dialog/content/setting/ExtensionPanel.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;;AAmDA,UAAM,iBAAiB;AACvB,UAAM,eAAe;AAEf,UAAA,2BAA2B,IAA6B,CAAA,CAAE;AAEhE,cAAU,MAAM;AACC,qBAAA,WAAW,QAAQ,CAAC,QAAQ;AACzC,iCAAyB,MAAM,IAAI,IAAI,IACrC,eAAe,mBAAmB,IAAI,IAAI;AAAA,MAAA,CAC7C;AAAA,IAAA,CACF;AAEK,UAAA,oBAAoB,SAAS,MAAM;AACvC,aAAO,eAAe,WAAW;AAAA,QAC/B,CAAC,QACC,yBAAyB,MAAM,IAAI,IAAI,MACvC,eAAe,mBAAmB,IAAI,IAAI;AAAA,MAAA;AAAA,IAC9C,CACD;AAEK,UAAA,aAAa,SAAS,MAAM;AACzB,aAAA,kBAAkB,MAAM,SAAS;AAAA,IAAA,CACzC;AAED,UAAM,wBAAwB,6BAAM;AAClC,YAAM,gCAAgC,OAAO;AAAA,QAC3C,yBAAyB;AAAA,MAExB,EAAA,OAAO,CAAC,CAAC,GAAG,OAAO,MAAM,CAAC,OAAO,EACjC,IAAI,CAAC,CAAC,IAAI,MAAM,IAAI;AAEvB,mBAAa,IAAI,4BAA4B;AAAA,QAC3C,GAAG,eAAe;AAAA,QAClB,GAAG;AAAA,MAAA,CACJ;AAAA,IAAA,GAV2B;AAa9B,UAAM,eAAe,6BAAM;AAEzB,aAAO,SAAS;IAAO,GAFJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/GraphView-Bx1-rDWO.css b/web/assets/GraphView-CIRWBKTm.css similarity index 64% rename from web/assets/GraphView-Bx1-rDWO.css rename to web/assets/GraphView-CIRWBKTm.css index 93521667..59d1b3d1 100644 --- a/web/assets/GraphView-Bx1-rDWO.css +++ b/web/assets/GraphView-CIRWBKTm.css @@ -1,96 +1,88 @@ -.group-title-editor.node-title-editor[data-v-fc3f26e3] { +.comfy-menu-hamburger[data-v-5661bed0] { + pointer-events: auto; + position: fixed; + z-index: 9999; +} + +[data-v-e50caa15] .p-splitter-gutter { + pointer-events: auto; +} +[data-v-e50caa15] .p-splitter-gutter:hover,[data-v-e50caa15] .p-splitter-gutter[data-p-gutter-resizing='true'] { + transition: background-color 0.2s ease 300ms; + background-color: var(--p-primary-color); +} +.side-bar-panel[data-v-e50caa15] { + background-color: var(--bg-color); + pointer-events: auto; +} +.bottom-panel[data-v-e50caa15] { + background-color: var(--bg-color); + pointer-events: auto; +} +.splitter-overlay[data-v-e50caa15] { + pointer-events: none; + border-style: none; + background-color: transparent; +} +.splitter-overlay-root[data-v-e50caa15] { + position: absolute; + top: 0px; + left: 0px; + height: 100%; + width: 100%; + + /* Set it the same as the ComfyUI menu */ + /* Note: Lite-graph DOM widgets have the same z-index as the node id, so + 999 should be sufficient to make sure splitter overlays on node's DOM + widgets */ + z-index: 999; +} + +.p-buttongroup-vertical[data-v-cf40dd39] { + display: flex; + flex-direction: column; + border-radius: var(--p-button-border-radius); + overflow: hidden; + border: 1px solid var(--p-panel-border-color); +} +.p-buttongroup-vertical .p-button[data-v-cf40dd39] { + margin: 0; + border-radius: 0; +} + +.node-tooltip[data-v-46859edf] { + background: var(--comfy-input-bg); + border-radius: 5px; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.4); + color: var(--input-text); + font-family: sans-serif; + left: 0; + max-width: 30vw; + padding: 4px 8px; + position: absolute; + top: 0; + transform: translate(5px, calc(-100% - 5px)); + white-space: pre-wrap; + z-index: 99999; +} + +.group-title-editor.node-title-editor[data-v-12d3fd12] { z-index: 9999; padding: 0.25rem; } -[data-v-fc3f26e3] .editable-text { +[data-v-12d3fd12] .editable-text { width: 100%; height: 100%; } -[data-v-fc3f26e3] .editable-text input { +[data-v-12d3fd12] .editable-text input { width: 100%; height: 100%; /* Override the default font size */ font-size: inherit; } -.side-bar-button-icon { - font-size: var(--sidebar-icon-size) !important; -} -.side-bar-button-selected .side-bar-button-icon { - font-size: var(--sidebar-icon-size) !important; - font-weight: bold; -} - -.side-bar-button[data-v-caa3ee9c] { - width: var(--sidebar-width); - height: var(--sidebar-width); - border-radius: 0; -} -.comfyui-body-left .side-bar-button.side-bar-button-selected[data-v-caa3ee9c], -.comfyui-body-left .side-bar-button.side-bar-button-selected[data-v-caa3ee9c]:hover { - border-left: 4px solid var(--p-button-text-primary-color); -} -.comfyui-body-right .side-bar-button.side-bar-button-selected[data-v-caa3ee9c], -.comfyui-body-right .side-bar-button.side-bar-button-selected[data-v-caa3ee9c]:hover { - border-right: 4px solid var(--p-button-text-primary-color); -} - -:root { - --sidebar-width: 64px; - --sidebar-icon-size: 1.5rem; -} -:root .small-sidebar { - --sidebar-width: 40px; - --sidebar-icon-size: 1rem; -} - -.side-tool-bar-container[data-v-b6bfc188] { - display: flex; - flex-direction: column; - align-items: center; - - pointer-events: auto; - - width: var(--sidebar-width); - height: 100%; - - background-color: var(--comfy-menu-bg); - color: var(--fg-color); -} -.side-tool-bar-end[data-v-b6bfc188] { - align-self: flex-end; - margin-top: auto; -} - -.p-splitter-gutter { - pointer-events: auto; -} -.gutter-hidden { - display: none !important; -} - -.side-bar-panel[data-v-b9df3042] { - background-color: var(--bg-color); - pointer-events: auto; -} -.splitter-overlay[data-v-b9df3042] { - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - background-color: transparent; - pointer-events: none; - /* Set it the same as the ComfyUI menu */ - /* Note: Lite-graph DOM widgets have the same z-index as the node id, so - 999 should be sufficient to make sure splitter overlays on node's DOM - widgets */ - z-index: 999; - border: none; -} - -[data-v-37f672ab] .highlight { +[data-v-5741c9ae] .highlight { background-color: var(--p-primary-color); color: var(--p-primary-contrast-color); font-weight: bold; @@ -99,32 +91,6 @@ margin: -0.125rem 0.125rem; } -.comfy-vue-node-search-container[data-v-2d409367] { - display: flex; - width: 100%; - min-width: 26rem; - align-items: center; - justify-content: center; -} -.comfy-vue-node-search-container[data-v-2d409367] * { - pointer-events: auto; -} -.comfy-vue-node-preview-container[data-v-2d409367] { - position: absolute; - left: -350px; - top: 50px; -} -.comfy-vue-node-search-box[data-v-2d409367] { - z-index: 10; - flex-grow: 1; -} -._filter-button[data-v-2d409367] { - z-index: 10; -} -._dialog[data-v-2d409367] { - min-width: 26rem; -} - .invisible-dialog-root { width: 60%; min-width: 24rem; @@ -143,53 +109,107 @@ align-items: flex-start !important; } -.node-tooltip[data-v-79ec8c53] { - background: var(--comfy-input-bg); - border-radius: 5px; - box-shadow: 0 0 5px rgba(0, 0, 0, 0.4); - color: var(--input-text); - font-family: sans-serif; - left: 0; - max-width: 30vw; - padding: 4px 8px; - position: absolute; - top: 0; - transform: translate(5px, calc(-100% - 5px)); - white-space: pre-wrap; - z-index: 99999; +.side-bar-button-icon { + font-size: var(--sidebar-icon-size) !important; +} +.side-bar-button-selected .side-bar-button-icon { + font-size: var(--sidebar-icon-size) !important; + font-weight: bold; } -.p-buttongroup-vertical[data-v-444d3768] { - display: flex; - flex-direction: column; - border-radius: var(--p-button-border-radius); - overflow: hidden; - border: 1px solid var(--p-panel-border-color); -} -.p-buttongroup-vertical .p-button[data-v-444d3768] { - margin: 0; +.side-bar-button[data-v-6ab4daa6] { + width: var(--sidebar-width); + height: var(--sidebar-width); border-radius: 0; } +.comfyui-body-left .side-bar-button.side-bar-button-selected[data-v-6ab4daa6], +.comfyui-body-left .side-bar-button.side-bar-button-selected[data-v-6ab4daa6]:hover { + border-left: 4px solid var(--p-button-text-primary-color); +} +.comfyui-body-right .side-bar-button.side-bar-button-selected[data-v-6ab4daa6], +.comfyui-body-right .side-bar-button.side-bar-button-selected[data-v-6ab4daa6]:hover { + border-right: 4px solid var(--p-button-text-primary-color); +} -[data-v-84e785b8] .p-togglebutton::before { - display: none +:root { + --sidebar-width: 64px; + --sidebar-icon-size: 1.5rem; } -[data-v-84e785b8] .p-togglebutton { - position: relative; - flex-shrink: 0; - border-radius: 0px; +:root .small-sidebar { + --sidebar-width: 40px; + --sidebar-icon-size: 1rem; +} + +.side-tool-bar-container[data-v-37d8d7b4] { + display: flex; + flex-direction: column; + align-items: center; + + pointer-events: auto; + + width: var(--sidebar-width); + height: 100%; + + background-color: var(--comfy-menu-secondary-bg); + color: var(--fg-color); + box-shadow: var(--bar-shadow); +} +.side-tool-bar-end[data-v-37d8d7b4] { + align-self: flex-end; + margin-top: auto; +} + +[data-v-b9328350] .p-inputtext { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.comfyui-queue-button[data-v-7f4f551b] .p-splitbutton-dropdown { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.actionbar[data-v-915e5456] { + pointer-events: all; + position: fixed; + z-index: 1000; +} +.actionbar.is-docked[data-v-915e5456] { + position: static; + border-style: none; background-color: transparent; - padding-left: 0.5rem; - padding-right: 0.5rem + padding: 0px; } -[data-v-84e785b8] .p-togglebutton.p-togglebutton-checked { - border-bottom-width: 2px; - border-bottom-color: var(--p-button-text-primary-color) +.actionbar.is-dragging[data-v-915e5456] { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; } -[data-v-84e785b8] .p-togglebutton-checked .close-button,[data-v-84e785b8] .p-togglebutton:hover .close-button { - visibility: visible +[data-v-915e5456] .p-panel-content { + padding: 0.25rem; } -.status-indicator[data-v-84e785b8] { +.is-docked[data-v-915e5456] .p-panel-content { + padding: 0px; +} +[data-v-915e5456] .p-panel-header { + display: none; +} + +.top-menubar[data-v-6fecd137] .p-menubar-item-link svg { + display: none; +} +[data-v-6fecd137] .p-menubar-submenu.dropdown-direction-up { + top: auto; + bottom: 100%; + flex-direction: column-reverse; +} +.keybinding-tag[data-v-6fecd137] { + background: var(--p-content-hover-background); + border-color: var(--p-content-border-color); + border-style: solid; +} + +.status-indicator[data-v-8d011a31] { position: absolute; font-weight: 700; font-size: 1.5rem; @@ -197,64 +217,36 @@ left: 50%; transform: translate(-50%, -50%) } -[data-v-84e785b8] .p-togglebutton:hover .status-indicator { + +[data-v-d485c044] .p-togglebutton::before { display: none } -[data-v-84e785b8] .p-togglebutton .close-button { +[data-v-d485c044] .p-togglebutton { + position: relative; + flex-shrink: 0; + border-radius: 0px; + background-color: transparent; + padding: 0px +} +[data-v-d485c044] .p-togglebutton.p-togglebutton-checked { + border-bottom-width: 2px; + border-bottom-color: var(--p-button-text-primary-color) +} +[data-v-d485c044] .p-togglebutton-checked .close-button,[data-v-d485c044] .p-togglebutton:hover .close-button { + visibility: visible +} +[data-v-d485c044] .p-togglebutton:hover .status-indicator { + display: none +} +[data-v-d485c044] .p-togglebutton .close-button { visibility: hidden } -.top-menubar[data-v-9646ca0a] .p-menubar-item-link svg { - display: none; -} -[data-v-9646ca0a] .p-menubar-submenu.dropdown-direction-up { - top: auto; - bottom: 100%; - flex-direction: column-reverse; -} -.keybinding-tag[data-v-9646ca0a] { - background: var(--p-content-hover-background); - border-color: var(--p-content-border-color); - border-style: solid; -} - -[data-v-713442be] .p-inputtext { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.comfyui-queue-button[data-v-2b80bf74] .p-splitbutton-dropdown { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.actionbar[data-v-2e54db00] { - pointer-events: all; - position: fixed; - z-index: 1000; -} -.actionbar.is-docked[data-v-2e54db00] { - position: static; - border-style: none; - background-color: transparent; - padding: 0px; -} -.actionbar.is-dragging[data-v-2e54db00] { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} -[data-v-2e54db00] .p-panel-content { - padding: 0.25rem; -} -[data-v-2e54db00] .p-panel-header { - display: none; -} - -.comfyui-menu[data-v-b13fdc92] { +.comfyui-menu[data-v-878b63b8] { width: 100vw; background: var(--comfy-menu-bg); color: var(--fg-color); + box-shadow: var(--bar-shadow); font-family: Arial, Helvetica, sans-serif; font-size: 0.8em; box-sizing: border-box; @@ -263,13 +255,16 @@ grid-column: 1/-1; max-height: 90vh; } -.comfyui-menu.dropzone[data-v-b13fdc92] { +.comfyui-menu.dropzone[data-v-878b63b8] { background: var(--p-highlight-background); } -.comfyui-menu.dropzone-active[data-v-b13fdc92] { +.comfyui-menu.dropzone-active[data-v-878b63b8] { background: var(--p-highlight-background-focus); } -.comfyui-logo[data-v-b13fdc92] { +[data-v-878b63b8] .p-menubar-item-label { + line-height: revert; +} +.comfyui-logo[data-v-878b63b8] { font-size: 1.2em; -webkit-user-select: none; -moz-user-select: none; diff --git a/web/assets/GraphView-DmeOoKWv.js.map b/web/assets/GraphView-DmeOoKWv.js.map deleted file mode 100644 index fc267956..00000000 --- a/web/assets/GraphView-DmeOoKWv.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"GraphView-DmeOoKWv.js","sources":["../../src/components/graph/TitleEditor.vue","../../node_modules/primevue/overlaybadge/style/index.mjs","../../node_modules/primevue/overlaybadge/index.mjs","../../src/components/sidebar/SidebarIcon.vue","../../src/components/sidebar/SidebarThemeToggleIcon.vue","../../src/components/sidebar/SidebarSettingsToggleIcon.vue","../../src/components/sidebar/SideToolbar.vue","../../node_modules/primevue/splitter/style/index.mjs","../../node_modules/primevue/splitter/index.mjs","../../node_modules/primevue/splitterpanel/style/index.mjs","../../node_modules/primevue/splitterpanel/index.mjs","../../src/components/LiteGraphCanvasSplitterOverlay.vue","../../node_modules/primevue/autocomplete/style/index.mjs","../../node_modules/primevue/autocomplete/index.mjs","../../src/components/primevueOverride/AutoCompletePlus.vue","../../src/components/searchbox/NodeSearchItem.vue","../../src/components/searchbox/NodeSearchBox.vue","../../src/types/litegraphTypes.ts","../../src/components/searchbox/NodeSearchBoxPopover.vue","../../src/components/graph/NodeTooltip.vue","../../node_modules/primevue/buttongroup/style/index.mjs","../../node_modules/primevue/buttongroup/index.mjs","../../src/components/graph/GraphCanvasMenu.vue","../../src/components/graph/GraphCanvas.vue","../../node_modules/primevue/toast/style/index.mjs","../../node_modules/primevue/toast/index.mjs","../../src/components/toast/GlobalToast.vue","../../src/components/dialog/UnloadWindowConfirmDialog.vue","../../src/components/BrowserTabTitle.vue","../../src/components/topbar/WorkflowTabs.vue","../../node_modules/primevue/menubar/style/index.mjs","../../node_modules/primevue/menubar/index.mjs","../../src/components/topbar/CommandMenubar.vue","../../node_modules/primevue/panel/style/index.mjs","../../node_modules/primevue/panel/index.mjs","../../node_modules/primevue/tieredmenu/style/index.mjs","../../node_modules/primevue/tieredmenu/index.mjs","../../node_modules/primevue/splitbutton/style/index.mjs","../../node_modules/primevue/splitbutton/index.mjs","../../src/components/actionbar/BatchCountEdit.vue","../../src/components/actionbar/ComfyQueueButton.vue","../../src/components/actionbar/ComfyActionbar.vue","../../src/components/topbar/TopMenubar.vue","../../src/services/autoQueueService.ts","../../src/views/GraphView.vue"],"sourcesContent":["\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-overlaybadge {\\n position: relative;\\n}\\n\\n.p-overlaybadge .p-badge {\\n position: absolute;\\n top: 0;\\n right: 0;\\n transform: translate(50%, -50%);\\n transform-origin: 100% 0;\\n margin: 0;\\n outline-width: \".concat(dt('overlaybadge.outline.width'), \";\\n outline-style: solid;\\n outline-color: \").concat(dt('overlaybadge.outline.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: 'p-overlaybadge'\n};\nvar OverlayBadgeStyle = BaseStyle.extend({\n name: 'overlaybadge',\n theme: theme,\n classes: classes\n});\n\nexport { OverlayBadgeStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import Badge from 'primevue/badge';\nimport OverlayBadgeStyle from 'primevue/overlaybadge/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, renderSlot, createVNode } from 'vue';\n\nvar script$1 = {\n name: 'OverlayBadge',\n \"extends\": Badge,\n style: OverlayBadgeStyle,\n provide: function provide() {\n return {\n $pcOverlayBadge: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'OverlayBadge',\n \"extends\": script$1,\n inheritAttrs: false,\n components: {\n Badge: Badge\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_Badge = resolveComponent(\"Badge\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\"), createVNode(_component_Badge, mergeProps(_ctx.$props, {\n pt: _ctx.ptm('pcBadge')\n }), null, 16, [\"pt\"])], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n\n\n","\n\n\n","\n\n\n","\n\n\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-splitter {\\n display: flex;\\n flex-wrap: nowrap;\\n border: 1px solid \".concat(dt('splitter.border.color'), \";\\n background: \").concat(dt('splitter.background'), \";\\n border-radius: \").concat(dt('border.radius.md'), \";\\n color: \").concat(dt('splitter.color'), \";\\n}\\n\\n.p-splitter-vertical {\\n flex-direction: column;\\n}\\n\\n.p-splitter-gutter {\\n flex-grow: 0;\\n flex-shrink: 0;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n z-index: 1;\\n background: \").concat(dt('splitter.gutter.background'), \";\\n}\\n\\n.p-splitter-gutter-handle {\\n border-radius: \").concat(dt('splitter.handle.border.radius'), \";\\n background: \").concat(dt('splitter.handle.background'), \";\\n transition: outline-color \").concat(dt('splitter.transition.duration'), \", box-shadow \").concat(dt('splitter.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-splitter-gutter-handle:focus-visible {\\n box-shadow: \").concat(dt('splitter.handle.focus.ring.shadow'), \";\\n outline: \").concat(dt('splitter.handle.focus.ring.width'), \" \").concat(dt('splitter.handle.focus.ring.style'), \" \").concat(dt('splitter.handle.focus.ring.color'), \";\\n outline-offset: \").concat(dt('splitter.handle.focus.ring.offset'), \";\\n}\\n\\n.p-splitter-horizontal.p-splitter-resizing {\\n cursor: col-resize;\\n user-select: none;\\n}\\n\\n.p-splitter-vertical.p-splitter-resizing {\\n cursor: row-resize;\\n user-select: none;\\n}\\n\\n.p-splitter-horizontal > .p-splitter-gutter > .p-splitter-gutter-handle {\\n height: \").concat(dt('splitter.handle.size'), \";\\n width: 100%;\\n}\\n\\n.p-splitter-vertical > .p-splitter-gutter > .p-splitter-gutter-handle {\\n width: \").concat(dt('splitter.handle.size'), \";\\n height: 100%;\\n}\\n\\n.p-splitter-horizontal > .p-splitter-gutter {\\n cursor: col-resize;\\n}\\n\\n.p-splitter-vertical > .p-splitter-gutter {\\n cursor: row-resize;\\n}\\n\\n.p-splitterpanel {\\n flex-grow: 1;\\n overflow: hidden;\\n}\\n\\n.p-splitterpanel-nested {\\n display: flex;\\n}\\n\\n.p-splitterpanel .p-splitter {\\n flex-grow: 1;\\n border: 0 none;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-splitter p-component', 'p-splitter-' + props.layout];\n },\n gutter: 'p-splitter-gutter',\n gutterHandle: 'p-splitter-gutter-handle'\n};\nvar inlineStyles = {\n root: function root(_ref3) {\n var props = _ref3.props;\n return [{\n display: 'flex',\n 'flex-wrap': 'nowrap'\n }, props.layout === 'vertical' ? {\n 'flex-direction': 'column'\n } : ''];\n }\n};\nvar SplitterStyle = BaseStyle.extend({\n name: 'splitter',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { SplitterStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getVNodeProp } from '@primevue/core/utils';\nimport { getWidth, getHeight, getOuterWidth, getOuterHeight } from '@primeuix/utils/dom';\nimport { isArray } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SplitterStyle from 'primevue/splitter/style';\nimport { openBlock, createElementBlock, mergeProps, Fragment, renderList, createBlock, resolveDynamicComponent, createElementVNode, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseSplitter',\n \"extends\": BaseComponent,\n props: {\n layout: {\n type: String,\n \"default\": 'horizontal'\n },\n gutterSize: {\n type: Number,\n \"default\": 4\n },\n stateKey: {\n type: String,\n \"default\": null\n },\n stateStorage: {\n type: String,\n \"default\": 'session'\n },\n step: {\n type: Number,\n \"default\": 5\n }\n },\n style: SplitterStyle,\n provide: function provide() {\n return {\n $pcSplitter: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'Splitter',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['resizestart', 'resizeend', 'resize'],\n dragging: false,\n mouseMoveListener: null,\n mouseUpListener: null,\n touchMoveListener: null,\n touchEndListener: null,\n size: null,\n gutterElement: null,\n startPos: null,\n prevPanelElement: null,\n nextPanelElement: null,\n nextPanelSize: null,\n prevPanelSize: null,\n panelSizes: null,\n prevPanelIndex: null,\n timer: null,\n data: function data() {\n return {\n prevSize: null\n };\n },\n mounted: function mounted() {\n var _this = this;\n if (this.panels && this.panels.length) {\n var initialized = false;\n if (this.isStateful()) {\n initialized = this.restoreState();\n }\n if (!initialized) {\n var children = _toConsumableArray(this.$el.children).filter(function (child) {\n return child.getAttribute('data-pc-name') === 'splitterpanel';\n });\n var _panelSizes = [];\n this.panels.map(function (panel, i) {\n var panelInitialSize = panel.props && panel.props.size ? panel.props.size : null;\n var panelSize = panelInitialSize || 100 / _this.panels.length;\n _panelSizes[i] = panelSize;\n children[i].style.flexBasis = 'calc(' + panelSize + '% - ' + (_this.panels.length - 1) * _this.gutterSize + 'px)';\n });\n this.panelSizes = _panelSizes;\n this.prevSize = parseFloat(_panelSizes[0]).toFixed(4);\n }\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.clear();\n this.unbindMouseListeners();\n },\n methods: {\n isSplitterPanel: function isSplitterPanel(child) {\n return child.type.name === 'SplitterPanel';\n },\n onResizeStart: function onResizeStart(event, index, isKeyDown) {\n this.gutterElement = event.currentTarget || event.target.parentElement;\n this.size = this.horizontal ? getWidth(this.$el) : getHeight(this.$el);\n if (!isKeyDown) {\n this.dragging = true;\n this.startPos = this.layout === 'horizontal' ? event.pageX || event.changedTouches[0].pageX : event.pageY || event.changedTouches[0].pageY;\n }\n this.prevPanelElement = this.gutterElement.previousElementSibling;\n this.nextPanelElement = this.gutterElement.nextElementSibling;\n if (isKeyDown) {\n this.prevPanelSize = this.horizontal ? getOuterWidth(this.prevPanelElement, true) : getOuterHeight(this.prevPanelElement, true);\n this.nextPanelSize = this.horizontal ? getOuterWidth(this.nextPanelElement, true) : getOuterHeight(this.nextPanelElement, true);\n } else {\n this.prevPanelSize = 100 * (this.horizontal ? getOuterWidth(this.prevPanelElement, true) : getOuterHeight(this.prevPanelElement, true)) / this.size;\n this.nextPanelSize = 100 * (this.horizontal ? getOuterWidth(this.nextPanelElement, true) : getOuterHeight(this.nextPanelElement, true)) / this.size;\n }\n this.prevPanelIndex = index;\n this.$emit('resizestart', {\n originalEvent: event,\n sizes: this.panelSizes\n });\n this.$refs.gutter[index].setAttribute('data-p-gutter-resizing', true);\n this.$el.setAttribute('data-p-resizing', true);\n },\n onResize: function onResize(event, step, isKeyDown) {\n var newPos, newPrevPanelSize, newNextPanelSize;\n if (isKeyDown) {\n if (this.horizontal) {\n newPrevPanelSize = 100 * (this.prevPanelSize + step) / this.size;\n newNextPanelSize = 100 * (this.nextPanelSize - step) / this.size;\n } else {\n newPrevPanelSize = 100 * (this.prevPanelSize - step) / this.size;\n newNextPanelSize = 100 * (this.nextPanelSize + step) / this.size;\n }\n } else {\n if (this.horizontal) newPos = event.pageX * 100 / this.size - this.startPos * 100 / this.size;else newPos = event.pageY * 100 / this.size - this.startPos * 100 / this.size;\n newPrevPanelSize = this.prevPanelSize + newPos;\n newNextPanelSize = this.nextPanelSize - newPos;\n }\n if (this.validateResize(newPrevPanelSize, newNextPanelSize)) {\n this.prevPanelElement.style.flexBasis = 'calc(' + newPrevPanelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n this.nextPanelElement.style.flexBasis = 'calc(' + newNextPanelSize + '% - ' + (this.panels.length - 1) * this.gutterSize + 'px)';\n this.panelSizes[this.prevPanelIndex] = newPrevPanelSize;\n this.panelSizes[this.prevPanelIndex + 1] = newNextPanelSize;\n this.prevSize = parseFloat(newPrevPanelSize).toFixed(4);\n }\n this.$emit('resize', {\n originalEvent: event,\n sizes: this.panelSizes\n });\n },\n onResizeEnd: function onResizeEnd(event) {\n if (this.isStateful()) {\n this.saveState();\n }\n this.$emit('resizeend', {\n originalEvent: event,\n sizes: this.panelSizes\n });\n this.$refs.gutter.forEach(function (gutter) {\n return gutter.setAttribute('data-p-gutter-resizing', false);\n });\n this.$el.setAttribute('data-p-resizing', false);\n this.clear();\n },\n repeat: function repeat(event, index, step) {\n this.onResizeStart(event, index, true);\n this.onResize(event, step, true);\n },\n setTimer: function setTimer(event, index, step) {\n var _this2 = this;\n if (!this.timer) {\n this.timer = setInterval(function () {\n _this2.repeat(event, index, step);\n }, 40);\n }\n },\n clearTimer: function clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n },\n onGutterKeyUp: function onGutterKeyUp() {\n this.clearTimer();\n this.onResizeEnd();\n },\n onGutterKeyDown: function onGutterKeyDown(event, index) {\n switch (event.code) {\n case 'ArrowLeft':\n {\n if (this.layout === 'horizontal') {\n this.setTimer(event, index, this.step * -1);\n }\n event.preventDefault();\n break;\n }\n case 'ArrowRight':\n {\n if (this.layout === 'horizontal') {\n this.setTimer(event, index, this.step);\n }\n event.preventDefault();\n break;\n }\n case 'ArrowDown':\n {\n if (this.layout === 'vertical') {\n this.setTimer(event, index, this.step * -1);\n }\n event.preventDefault();\n break;\n }\n case 'ArrowUp':\n {\n if (this.layout === 'vertical') {\n this.setTimer(event, index, this.step);\n }\n event.preventDefault();\n break;\n }\n }\n },\n onGutterMouseDown: function onGutterMouseDown(event, index) {\n this.onResizeStart(event, index);\n this.bindMouseListeners();\n },\n onGutterTouchStart: function onGutterTouchStart(event, index) {\n this.onResizeStart(event, index);\n this.bindTouchListeners();\n event.preventDefault();\n },\n onGutterTouchMove: function onGutterTouchMove(event) {\n this.onResize(event);\n event.preventDefault();\n },\n onGutterTouchEnd: function onGutterTouchEnd(event) {\n this.onResizeEnd(event);\n this.unbindTouchListeners();\n event.preventDefault();\n },\n bindMouseListeners: function bindMouseListeners() {\n var _this3 = this;\n if (!this.mouseMoveListener) {\n this.mouseMoveListener = function (event) {\n return _this3.onResize(event);\n };\n document.addEventListener('mousemove', this.mouseMoveListener);\n }\n if (!this.mouseUpListener) {\n this.mouseUpListener = function (event) {\n _this3.onResizeEnd(event);\n _this3.unbindMouseListeners();\n };\n document.addEventListener('mouseup', this.mouseUpListener);\n }\n },\n bindTouchListeners: function bindTouchListeners() {\n var _this4 = this;\n if (!this.touchMoveListener) {\n this.touchMoveListener = function (event) {\n return _this4.onResize(event.changedTouches[0]);\n };\n document.addEventListener('touchmove', this.touchMoveListener);\n }\n if (!this.touchEndListener) {\n this.touchEndListener = function (event) {\n _this4.resizeEnd(event);\n _this4.unbindTouchListeners();\n };\n document.addEventListener('touchend', this.touchEndListener);\n }\n },\n validateResize: function validateResize(newPrevPanelSize, newNextPanelSize) {\n if (newPrevPanelSize > 100 || newPrevPanelSize < 0) return false;\n if (newNextPanelSize > 100 || newNextPanelSize < 0) return false;\n var prevPanelMinSize = getVNodeProp(this.panels[this.prevPanelIndex], 'minSize');\n if (this.panels[this.prevPanelIndex].props && prevPanelMinSize && prevPanelMinSize > newPrevPanelSize) {\n return false;\n }\n var newPanelMinSize = getVNodeProp(this.panels[this.prevPanelIndex + 1], 'minSize');\n if (this.panels[this.prevPanelIndex + 1].props && newPanelMinSize && newPanelMinSize > newNextPanelSize) {\n return false;\n }\n return true;\n },\n unbindMouseListeners: function unbindMouseListeners() {\n if (this.mouseMoveListener) {\n document.removeEventListener('mousemove', this.mouseMoveListener);\n this.mouseMoveListener = null;\n }\n if (this.mouseUpListener) {\n document.removeEventListener('mouseup', this.mouseUpListener);\n this.mouseUpListener = null;\n }\n },\n unbindTouchListeners: function unbindTouchListeners() {\n if (this.touchMoveListener) {\n document.removeEventListener('touchmove', this.touchMoveListener);\n this.touchMoveListener = null;\n }\n if (this.touchEndListener) {\n document.removeEventListener('touchend', this.touchEndListener);\n this.touchEndListener = null;\n }\n },\n clear: function clear() {\n this.dragging = false;\n this.size = null;\n this.startPos = null;\n this.prevPanelElement = null;\n this.nextPanelElement = null;\n this.prevPanelSize = null;\n this.nextPanelSize = null;\n this.gutterElement = null;\n this.prevPanelIndex = null;\n },\n isStateful: function isStateful() {\n return this.stateKey != null;\n },\n getStorage: function getStorage() {\n switch (this.stateStorage) {\n case 'local':\n return window.localStorage;\n case 'session':\n return window.sessionStorage;\n default:\n throw new Error(this.stateStorage + ' is not a valid value for the state storage, supported values are \"local\" and \"session\".');\n }\n },\n saveState: function saveState() {\n if (isArray(this.panelSizes)) {\n this.getStorage().setItem(this.stateKey, JSON.stringify(this.panelSizes));\n }\n },\n restoreState: function restoreState() {\n var _this5 = this;\n var storage = this.getStorage();\n var stateString = storage.getItem(this.stateKey);\n if (stateString) {\n this.panelSizes = JSON.parse(stateString);\n var children = _toConsumableArray(this.$el.children).filter(function (child) {\n return child.getAttribute('data-pc-name') === 'splitterpanel';\n });\n children.forEach(function (child, i) {\n child.style.flexBasis = 'calc(' + _this5.panelSizes[i] + '% - ' + (_this5.panels.length - 1) * _this5.gutterSize + 'px)';\n });\n return true;\n }\n return false;\n }\n },\n computed: {\n panels: function panels() {\n var _this6 = this;\n var panels = [];\n this.$slots[\"default\"]().forEach(function (child) {\n if (_this6.isSplitterPanel(child)) {\n panels.push(child);\n } else if (child.children instanceof Array) {\n child.children.forEach(function (nestedChild) {\n if (_this6.isSplitterPanel(nestedChild)) {\n panels.push(nestedChild);\n }\n });\n }\n });\n return panels;\n },\n gutterStyle: function gutterStyle() {\n if (this.horizontal) return {\n width: this.gutterSize + 'px'\n };else return {\n height: this.gutterSize + 'px'\n };\n },\n horizontal: function horizontal() {\n return this.layout === 'horizontal';\n },\n getPTOptions: function getPTOptions() {\n var _this$$parentInstance;\n return {\n context: {\n nested: (_this$$parentInstance = this.$parentInstance) === null || _this$$parentInstance === void 0 ? void 0 : _this$$parentInstance.nestedState\n }\n };\n }\n }\n};\n\nvar _hoisted_1 = [\"onMousedown\", \"onTouchstart\", \"onTouchmove\", \"onTouchend\"];\nvar _hoisted_2 = [\"aria-orientation\", \"aria-valuenow\", \"onKeydown\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root'),\n \"data-p-resizing\": false\n }, _ctx.ptmi('root', $options.getPTOptions)), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.panels, function (panel, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: i\n }, [(openBlock(), createBlock(resolveDynamicComponent(panel), {\n tabindex: \"-1\"\n })), i !== $options.panels.length - 1 ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref_for: true,\n ref: \"gutter\",\n \"class\": _ctx.cx('gutter'),\n role: \"separator\",\n tabindex: \"-1\",\n onMousedown: function onMousedown($event) {\n return $options.onGutterMouseDown($event, i);\n },\n onTouchstart: function onTouchstart($event) {\n return $options.onGutterTouchStart($event, i);\n },\n onTouchmove: function onTouchmove($event) {\n return $options.onGutterTouchMove($event, i);\n },\n onTouchend: function onTouchend($event) {\n return $options.onGutterTouchEnd($event, i);\n },\n \"data-p-gutter-resizing\": false\n }, _ctx.ptm('gutter')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('gutterHandle'),\n tabindex: \"0\",\n style: [$options.gutterStyle],\n \"aria-orientation\": _ctx.layout,\n \"aria-valuenow\": $data.prevSize,\n onKeyup: _cache[0] || (_cache[0] = function () {\n return $options.onGutterKeyUp && $options.onGutterKeyUp.apply($options, arguments);\n }),\n onKeydown: function onKeydown($event) {\n return $options.onGutterKeyDown($event, i);\n },\n ref_for: true\n }, _ctx.ptm('gutterHandle')), null, 16, _hoisted_2)], 16, _hoisted_1)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance;\n return ['p-splitterpanel', {\n 'p-splitterpanel-nested': instance.isNested\n }];\n }\n};\nvar SplitterPanelStyle = BaseStyle.extend({\n name: 'splitterpanel',\n classes: classes\n});\n\nexport { SplitterPanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport SplitterPanelStyle from 'primevue/splitterpanel/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseSplitterPanel',\n \"extends\": BaseComponent,\n props: {\n size: {\n type: Number,\n \"default\": null\n },\n minSize: {\n type: Number,\n \"default\": null\n }\n },\n style: SplitterPanelStyle,\n provide: function provide() {\n return {\n $pcSplitterPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'SplitterPanel',\n \"extends\": script$1,\n inheritAttrs: false,\n data: function data() {\n return {\n nestedState: null\n };\n },\n computed: {\n isNested: function isNested() {\n var _this = this;\n return this.$slots[\"default\"]().some(function (child) {\n _this.nestedState = child.type.name === 'Splitter' ? true : null;\n return _this.nestedState;\n });\n },\n getPTOptions: function getPTOptions() {\n return {\n context: {\n nested: this.isNested\n }\n };\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"container\",\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root', $options.getPTOptions)), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n\n\n","import { isNotEmpty } from '@primeuix/utils/object';\nimport BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-autocomplete {\\n display: inline-flex;\\n}\\n\\n.p-autocomplete-loader {\\n position: absolute;\\n top: 50%;\\n margin-top: -0.5rem;\\n right: \".concat(dt('autocomplete.padding.x'), \";\\n}\\n\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-loader {\\n right: calc(\").concat(dt('autocomplete.dropdown.width'), \" + \").concat(dt('autocomplete.padding.x'), \");\\n}\\n\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input {\\n flex: 1 1 auto;\\n width: 1%;\\n}\\n\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input,\\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input-multiple {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n\\n.p-autocomplete-dropdown {\\n cursor: pointer;\\n display: inline-flex;\\n cursor: pointer;\\n user-select: none;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n position: relative;\\n width: \").concat(dt('autocomplete.dropdown.width'), \";\\n border-top-right-radius: \").concat(dt('autocomplete.dropdown.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('autocomplete.dropdown.border.radius'), \";\\n background: \").concat(dt('autocomplete.dropdown.background'), \";\\n border: 1px solid \").concat(dt('autocomplete.dropdown.border.color'), \";\\n border-left: 0 none;\\n color: \").concat(dt('autocomplete.dropdown.color'), \";\\n transition: background \").concat(dt('autocomplete.transition.duration'), \", color \").concat(dt('autocomplete.transition.duration'), \", border-color \").concat(dt('autocomplete.transition.duration'), \", outline-color \").concat(dt('autocomplete.transition.duration'), \", box-shadow \").concat(dt('autocomplete.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-autocomplete-dropdown:not(:disabled):hover {\\n background: \").concat(dt('autocomplete.dropdown.hover.background'), \";\\n border-color: \").concat(dt('autocomplete.dropdown.hover.border.color'), \";\\n color: \").concat(dt('autocomplete.dropdown.hover.color'), \";\\n}\\n\\n.p-autocomplete-dropdown:not(:disabled):active {\\n background: \").concat(dt('autocomplete.dropdown.active.background'), \";\\n border-color: \").concat(dt('autocomplete.dropdown.active.border.color'), \";\\n color: \").concat(dt('autocomplete.dropdown.active.color'), \";\\n}\\n\\n.p-autocomplete-dropdown:focus-visible {\\n box-shadow: \").concat(dt('autocomplete.dropdown.focus.ring.shadow'), \";\\n outline: \").concat(dt('autocomplete.dropdown.focus.ring.width'), \" \").concat(dt('autocomplete.dropdown.focus.ring.style'), \" \").concat(dt('autocomplete.dropdown.focus.ring.color'), \";\\n outline-offset: \").concat(dt('autocomplete.dropdown.focus.ring.offset'), \";\\n}\\n\\n.p-autocomplete .p-autocomplete-overlay {\\n min-width: 100%;\\n}\\n\\n.p-autocomplete-overlay {\\n position: absolute;\\n overflow: auto;\\n top: 0;\\n left: 0;\\n background: \").concat(dt('autocomplete.overlay.background'), \";\\n color: \").concat(dt('autocomplete.overlay.color'), \";\\n border: 1px solid \").concat(dt('autocomplete.overlay.border.color'), \";\\n border-radius: \").concat(dt('autocomplete.overlay.border.radius'), \";\\n box-shadow: \").concat(dt('autocomplete.overlay.shadow'), \";\\n}\\n\\n.p-autocomplete-list {\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('autocomplete.list.gap'), \";\\n padding: \").concat(dt('autocomplete.list.padding'), \";\\n}\\n\\n.p-autocomplete-option {\\n cursor: pointer;\\n white-space: nowrap;\\n position: relative;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n padding: \").concat(dt('autocomplete.option.padding'), \";\\n border: 0 none;\\n color: \").concat(dt('autocomplete.option.color'), \";\\n background: transparent;\\n transition: background \").concat(dt('autocomplete.transition.duration'), \", color \").concat(dt('autocomplete.transition.duration'), \", border-color \").concat(dt('autocomplete.transition.duration'), \";\\n border-radius: \").concat(dt('autocomplete.option.border.radius'), \";\\n}\\n\\n.p-autocomplete-option:not(.p-autocomplete-option-selected):not(.p-disabled).p-focus {\\n background: \").concat(dt('autocomplete.option.focus.background'), \";\\n color: \").concat(dt('autocomplete.option.focus.color'), \";\\n}\\n\\n.p-autocomplete-option-selected {\\n background: \").concat(dt('autocomplete.option.selected.background'), \";\\n color: \").concat(dt('autocomplete.option.selected.color'), \";\\n}\\n\\n.p-autocomplete-option-selected.p-focus {\\n background: \").concat(dt('autocomplete.option.selected.focus.background'), \";\\n color: \").concat(dt('autocomplete.option.selected.focus.color'), \";\\n}\\n\\n.p-autocomplete-option-group {\\n margin: 0;\\n padding: \").concat(dt('autocomplete.option.group.padding'), \";\\n color: \").concat(dt('autocomplete.option.group.color'), \";\\n background: \").concat(dt('autocomplete.option.group.background'), \";\\n font-weight: \").concat(dt('autocomplete.option.group.font.weight'), \";\\n}\\n\\n.p-autocomplete-input-multiple {\\n margin: 0;\\n list-style-type: none;\\n cursor: text;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n padding: calc(\").concat(dt('autocomplete.padding.y'), \" / 2) \").concat(dt('autocomplete.padding.x'), \";\\n gap: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n color: \").concat(dt('autocomplete.color'), \";\\n background: \").concat(dt('autocomplete.background'), \";\\n border: 1px solid \").concat(dt('autocomplete.border.color'), \";\\n border-radius: \").concat(dt('autocomplete.border.radius'), \";\\n width: 100%;\\n transition: background \").concat(dt('autocomplete.transition.duration'), \", color \").concat(dt('autocomplete.transition.duration'), \", border-color \").concat(dt('autocomplete.transition.duration'), \", outline-color \").concat(dt('autocomplete.transition.duration'), \", box-shadow \").concat(dt('autocomplete.transition.duration'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('autocomplete.shadow'), \";\\n}\\n\\n.p-autocomplete:not(.p-disabled):hover .p-autocomplete-input-multiple {\\n border-color: \").concat(dt('autocomplete.hover.border.color'), \";\\n}\\n\\n.p-autocomplete:not(.p-disabled).p-focus .p-autocomplete-input-multiple {\\n border-color: \").concat(dt('autocomplete.focus.border.color'), \";\\n box-shadow: \").concat(dt('autocomplete.focus.ring.shadow'), \";\\n outline: \").concat(dt('autocomplete.focus.ring.width'), \" \").concat(dt('autocomplete.focus.ring.style'), \" \").concat(dt('autocomplete.focus.ring.color'), \";\\n outline-offset: \").concat(dt('autocomplete.focus.ring.offset'), \";\\n}\\n\\n.p-autocomplete.p-invalid .p-autocomplete-input-multiple {\\n border-color: \").concat(dt('autocomplete.invalid.border.color'), \";\\n}\\n\\n.p-variant-filled.p-autocomplete-input-multiple {\\n background: \").concat(dt('autocomplete.filled.background'), \";\\n}\\n\\n.p-autocomplete:not(.p-disabled).p-focus .p-variant-filled.p-autocomplete-input-multiple {\\n background: \").concat(dt('autocomplete.filled.focus.background'), \";\\n}\\n\\n.p-autocomplete.p-disabled .p-autocomplete-input-multiple {\\n opacity: 1;\\n background: \").concat(dt('autocomplete.disabled.background'), \";\\n color: \").concat(dt('autocomplete.disabled.color'), \";\\n}\\n\\n.p-autocomplete-chip.p-chip {\\n padding-top: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n padding-bottom: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n border-radius: \").concat(dt('autocomplete.chip.border.radius'), \";\\n}\\n\\n.p-autocomplete-input-multiple:has(.p-autocomplete-chip) {\\n padding-left: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n padding-right: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n}\\n\\n.p-autocomplete-chip-item.p-focus .p-autocomplete-chip {\\n background: \").concat(dt('inputchips.chip.focus.background'), \";\\n color: \").concat(dt('inputchips.chip.focus.color'), \";\\n}\\n\\n.p-autocomplete-input-chip {\\n flex: 1 1 auto;\\n display: inline-flex;\\n padding-top: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n padding-bottom: calc(\").concat(dt('autocomplete.padding.y'), \" / 2);\\n}\\n\\n.p-autocomplete-input-chip input {\\n border: 0 none;\\n outline: 0 none;\\n background: transparent;\\n margin: 0;\\n padding: 0;\\n box-shadow: none;\\n border-radius: 0;\\n width: 100%;\\n font-family: inherit;\\n font-feature-settings: inherit;\\n font-size: 1rem;\\n color: inherit;\\n}\\n\\n.p-autocomplete-input-chip input::placeholder {\\n color: \").concat(dt('autocomplete.placeholder.color'), \";\\n}\\n\\n.p-autocomplete-empty-message {\\n padding: \").concat(dt('autocomplete.empty.message.padding'), \";\\n}\\n\\n.p-autocomplete-fluid {\\n display: flex;\\n}\\n\\n.p-autocomplete-fluid:has(.p-autocomplete-dropdown) .p-autocomplete-input {\\n width: 1%;\\n}\\n\");\n};\nvar inlineStyles = {\n root: {\n position: 'relative'\n }\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-autocomplete p-component p-inputwrapper', {\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-focus': instance.focused,\n 'p-inputwrapper-filled': props.modelValue || isNotEmpty(instance.inputValue),\n 'p-inputwrapper-focus': instance.focused,\n 'p-autocomplete-open': instance.overlayVisible,\n 'p-autocomplete-fluid': instance.hasFluid\n }];\n },\n pcInput: 'p-autocomplete-input',\n inputMultiple: function inputMultiple(_ref3) {\n var props = _ref3.props,\n instance = _ref3.instance;\n return ['p-autocomplete-input-multiple', {\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.$primevue.config.inputStyle === 'filled' || instance.$primevue.config.inputVariant === 'filled'\n }];\n },\n chipItem: function chipItem(_ref4) {\n var instance = _ref4.instance,\n i = _ref4.i;\n return ['p-autocomplete-chip-item', {\n 'p-focus': instance.focusedMultipleOptionIndex === i\n }];\n },\n pcChip: 'p-autocomplete-chip',\n chipIcon: 'p-autocomplete-chip-icon',\n inputChip: 'p-autocomplete-input-chip',\n loader: 'p-autocomplete-loader',\n dropdown: 'p-autocomplete-dropdown',\n overlay: 'p-autocomplete-overlay p-component',\n list: 'p-autocomplete-list',\n optionGroup: 'p-autocomplete-option-group',\n option: function option(_ref5) {\n var instance = _ref5.instance,\n _option = _ref5.option,\n i = _ref5.i,\n getItemOptions = _ref5.getItemOptions;\n return ['p-autocomplete-option', {\n 'p-autocomplete-option-selected': instance.isSelected(_option),\n 'p-focus': instance.focusedOptionIndex === instance.getOptionIndex(i, getItemOptions),\n 'p-disabled': instance.isOptionDisabled(_option)\n }];\n },\n emptyMessage: 'p-autocomplete-empty-message'\n};\nvar AutoCompleteStyle = BaseStyle.extend({\n name: 'autocomplete',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { AutoCompleteStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { focus, addStyle, relativePosition, getOuterWidth, absolutePosition, isTouchDevice, findSingle } from '@primeuix/utils/dom';\nimport { resolveFieldData, isEmpty, isNotEmpty, equals, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { UniqueComponentId, ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport Chip from 'primevue/chip';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AutoCompleteStyle from 'primevue/autocomplete/style';\nimport { resolveComponent, resolveDirective, openBlock, createElementBlock, mergeProps, createBlock, normalizeClass, normalizeStyle, createCommentVNode, Fragment, renderList, renderSlot, createVNode, withCtx, createElementVNode, resolveDynamicComponent, toDisplayString, Transition, createSlots, createTextVNode, withDirectives } from 'vue';\n\nvar script$1 = {\n name: 'BaseAutoComplete',\n \"extends\": BaseComponent,\n props: {\n modelValue: null,\n suggestions: {\n type: Array,\n \"default\": null\n },\n optionLabel: null,\n optionDisabled: null,\n optionGroupLabel: null,\n optionGroupChildren: null,\n scrollHeight: {\n type: String,\n \"default\": '14rem'\n },\n dropdown: {\n type: Boolean,\n \"default\": false\n },\n dropdownMode: {\n type: String,\n \"default\": 'blank'\n },\n multiple: {\n type: Boolean,\n \"default\": false\n },\n loading: {\n type: Boolean,\n \"default\": false\n },\n variant: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n placeholder: {\n type: String,\n \"default\": null\n },\n dataKey: {\n type: String,\n \"default\": null\n },\n minLength: {\n type: Number,\n \"default\": 1\n },\n delay: {\n type: Number,\n \"default\": 300\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n forceSelection: {\n type: Boolean,\n \"default\": false\n },\n completeOnFocus: {\n type: Boolean,\n \"default\": false\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n panelStyle: {\n type: Object,\n \"default\": null\n },\n panelClass: {\n type: [String, Object],\n \"default\": null\n },\n overlayStyle: {\n type: Object,\n \"default\": null\n },\n overlayClass: {\n type: [String, Object],\n \"default\": null\n },\n dropdownIcon: {\n type: String,\n \"default\": null\n },\n dropdownClass: {\n type: [String, Object],\n \"default\": null\n },\n loader: {\n type: String,\n \"default\": null\n },\n loadingIcon: {\n type: String,\n \"default\": null\n },\n removeTokenIcon: {\n type: String,\n \"default\": null\n },\n chipIcon: {\n type: String,\n \"default\": null\n },\n virtualScrollerOptions: {\n type: Object,\n \"default\": null\n },\n autoOptionFocus: {\n type: Boolean,\n \"default\": false\n },\n selectOnFocus: {\n type: Boolean,\n \"default\": false\n },\n focusOnHover: {\n type: Boolean,\n \"default\": true\n },\n searchLocale: {\n type: String,\n \"default\": undefined\n },\n searchMessage: {\n type: String,\n \"default\": null\n },\n selectionMessage: {\n type: String,\n \"default\": null\n },\n emptySelectionMessage: {\n type: String,\n \"default\": null\n },\n emptySearchMessage: {\n type: String,\n \"default\": null\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n typeahead: {\n type: Boolean,\n \"default\": true\n },\n ariaLabel: {\n type: String,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n fluid: {\n type: Boolean,\n \"default\": null\n }\n },\n style: AutoCompleteStyle,\n provide: function provide() {\n return {\n $pcAutoComplete: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _typeof$1(o) { \"@babel/helpers - typeof\"; return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$1(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'AutoComplete',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'item-select', 'item-unselect', 'option-select', 'option-unselect', 'dropdown-click', 'clear', 'complete', 'before-show', 'before-hide', 'show', 'hide'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n outsideClickListener: null,\n resizeListener: null,\n scrollHandler: null,\n overlay: null,\n virtualScroller: null,\n searchTimeout: null,\n dirty: false,\n data: function data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n focusedMultipleOptionIndex: -1,\n overlayVisible: false,\n searching: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n suggestions: function suggestions() {\n if (this.searching) {\n this.show();\n this.focusedOptionIndex = this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.searching = false;\n }\n this.autoUpdateModel();\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n },\n updated: function updated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex: function getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel: function getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue: function getOptionValue(option) {\n return option; // TODO: The 'optionValue' properties can be added.\n },\n getOptionRenderKey: function getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTOptions: function getPTOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled: function isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup: function isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel: function getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren: function getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset: function getAriaPosInset(index) {\n var _this = this;\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter(function (option) {\n return _this.isOptionGroup(option);\n }).length : index) + 1;\n },\n show: function show(isFocus) {\n this.$emit('before-show');\n this.dirty = true;\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n isFocus && focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n hide: function hide(isFocus) {\n var _this2 = this;\n var _hide = function _hide() {\n _this2.$emit('before-hide');\n _this2.dirty = isFocus;\n _this2.overlayVisible = false;\n _this2.clicked = false;\n _this2.focusedOptionIndex = -1;\n isFocus && focus(_this2.multiple ? _this2.$refs.focusInput : _this2.$refs.focusInput.$el);\n };\n setTimeout(function () {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus: function onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n if (!this.dirty && this.completeOnFocus) {\n this.search(event, event.target.value, 'focus');\n }\n this.dirty = true;\n this.focused = true;\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.overlayVisible && this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : -1;\n this.scrollInView(this.focusedOptionIndex);\n }\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.dirty = false;\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'Backspace':\n this.onBackspaceKey(event);\n break;\n }\n this.clicked = false;\n },\n onInput: function onInput(event) {\n var _this3 = this;\n if (this.typeahead) {\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n var query = event.target.value;\n if (!this.multiple) {\n this.updateModel(event, query);\n }\n if (query.length === 0) {\n this.hide();\n this.$emit('clear');\n } else {\n if (query.length >= this.minLength) {\n this.focusedOptionIndex = -1;\n this.searchTimeout = setTimeout(function () {\n _this3.search(event, query, 'input');\n }, this.delay);\n } else {\n this.hide();\n }\n }\n }\n },\n onChange: function onChange(event) {\n var _this4 = this;\n if (this.forceSelection) {\n var valid = false;\n\n // when forceSelection is on, prevent called twice onOptionSelect()\n if (this.visibleOptions && !this.multiple) {\n var value = this.multiple ? this.$refs.focusInput.value : this.$refs.focusInput.$el.value;\n var matchedValue = this.visibleOptions.find(function (option) {\n return _this4.isOptionMatched(option, value || '');\n });\n if (matchedValue !== undefined) {\n valid = true;\n !this.isSelected(matchedValue) && this.onOptionSelect(event, matchedValue);\n }\n }\n if (!valid) {\n if (this.multiple) this.$refs.focusInput.value = '';else this.$refs.focusInput.$el.value = '';\n this.$emit('clear');\n !this.multiple && this.updateModel(event, null);\n }\n }\n },\n onMultipleContainerFocus: function onMultipleContainerFocus() {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n this.focused = true;\n },\n onMultipleContainerBlur: function onMultipleContainerBlur() {\n this.focusedMultipleOptionIndex = -1;\n this.focused = false;\n },\n onMultipleContainerKeyDown: function onMultipleContainerKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n switch (event.code) {\n case 'ArrowLeft':\n this.onArrowLeftKeyOnMultiple(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKeyOnMultiple(event);\n break;\n case 'Backspace':\n this.onBackspaceKeyOnMultiple(event);\n break;\n }\n },\n onContainerClick: function onContainerClick(event) {\n this.clicked = true;\n if (this.disabled || this.searching || this.loading || this.isInputClicked(event) || this.isDropdownClicked(event)) {\n return;\n }\n if (!this.overlay || !this.overlay.contains(event.target)) {\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n }\n },\n onDropdownClick: function onDropdownClick(event) {\n var query = undefined;\n if (this.overlayVisible) {\n this.hide(true);\n } else {\n var target = this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el;\n focus(target);\n query = target.value;\n if (this.dropdownMode === 'blank') this.search(event, '', 'dropdown');else if (this.dropdownMode === 'current') this.search(event, query, 'dropdown');\n }\n this.$emit('dropdown-click', {\n originalEvent: event,\n query: query\n });\n },\n onOptionSelect: function onOptionSelect(event, option) {\n var isHide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var value = this.getOptionValue(option);\n if (this.multiple) {\n this.$refs.focusInput.value = '';\n if (!this.isSelected(option)) {\n this.updateModel(event, [].concat(_toConsumableArray(this.modelValue || []), [value]));\n }\n } else {\n this.updateModel(event, value);\n }\n this.$emit('item-select', {\n originalEvent: event,\n value: option\n });\n this.$emit('option-select', {\n originalEvent: event,\n value: option\n });\n isHide && this.hide(true);\n },\n onOptionMouseMove: function onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onOverlayClick: function onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown: function onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n }\n },\n onArrowDownKey: function onArrowDownKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n if (!this.overlayVisible) {\n return;\n }\n if (event.altKey) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var target = event.currentTarget;\n this.focusedOptionIndex = -1;\n if (this.multiple) {\n if (isEmpty(target.value) && this.hasSelectedOption) {\n focus(this.$refs.multiContainer);\n this.focusedMultipleOptionIndex = this.modelValue.length;\n } else {\n event.stopPropagation(); // To prevent onArrowLeftKeyOnMultiple method\n }\n }\n },\n onArrowRightKey: function onArrowRightKey(event) {\n this.focusedOptionIndex = -1;\n this.multiple && event.stopPropagation(); // To prevent onArrowRightKeyOnMultiple method\n },\n onHomeKey: function onHomeKey(event) {\n var currentTarget = event.currentTarget;\n var len = currentTarget.value.length;\n currentTarget.setSelectionRange(0, event.shiftKey ? len : 0);\n this.focusedOptionIndex = -1;\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n var currentTarget = event.currentTarget;\n var len = currentTarget.value.length;\n currentTarget.setSelectionRange(event.shiftKey ? 0 : len, len);\n this.focusedOptionIndex = -1;\n event.preventDefault();\n },\n onPageUpKey: function onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey: function onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (!this.typeahead) {\n if (this.multiple) {\n this.updateModel(event, [].concat(_toConsumableArray(this.modelValue || []), [event.target.value]));\n this.$refs.focusInput.value = '';\n }\n } else {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.hide();\n }\n }\n },\n onEscapeKey: function onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n },\n onTabKey: function onTabKey(event) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.overlayVisible && this.hide();\n },\n onBackspaceKey: function onBackspaceKey(event) {\n if (this.multiple) {\n if (isNotEmpty(this.modelValue) && !this.$refs.focusInput.value) {\n var removedValue = this.modelValue[this.modelValue.length - 1];\n var newValue = this.modelValue.slice(0, -1);\n this.$emit('update:modelValue', newValue);\n this.$emit('item-unselect', {\n originalEvent: event,\n value: removedValue\n });\n this.$emit('option-unselect', {\n originalEvent: event,\n value: removedValue\n });\n }\n event.stopPropagation(); // To prevent onBackspaceKeyOnMultiple method\n }\n },\n onArrowLeftKeyOnMultiple: function onArrowLeftKeyOnMultiple() {\n this.focusedMultipleOptionIndex = this.focusedMultipleOptionIndex < 1 ? 0 : this.focusedMultipleOptionIndex - 1;\n },\n onArrowRightKeyOnMultiple: function onArrowRightKeyOnMultiple() {\n this.focusedMultipleOptionIndex++;\n if (this.focusedMultipleOptionIndex > this.modelValue.length - 1) {\n this.focusedMultipleOptionIndex = -1;\n focus(this.$refs.focusInput);\n }\n },\n onBackspaceKeyOnMultiple: function onBackspaceKeyOnMultiple(event) {\n if (this.focusedMultipleOptionIndex !== -1) {\n this.removeOption(event, this.focusedMultipleOptionIndex);\n }\n },\n onOverlayEnter: function onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, {\n position: 'absolute',\n top: '0',\n left: '0'\n });\n this.alignOverlay();\n },\n onOverlayAfterEnter: function onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.$emit('show');\n },\n onOverlayLeave: function onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave: function onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay: function alignOverlay() {\n var target = this.multiple ? this.$refs.multiContainer : this.$refs.focusInput.$el;\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, target);\n } else {\n this.overlay.style.minWidth = getOuterWidth(target) + 'px';\n absolutePosition(this.overlay, target);\n }\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this5 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n if (_this5.overlayVisible && _this5.overlay && _this5.isOutsideClicked(event)) {\n _this5.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener: function bindScrollListener() {\n var _this6 = this;\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, function () {\n if (_this6.overlayVisible) {\n _this6.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this7 = this;\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this7.overlayVisible && !isTouchDevice()) {\n _this7.hide();\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isOutsideClicked: function isOutsideClicked(event) {\n return !this.overlay.contains(event.target) && !this.isInputClicked(event) && !this.isDropdownClicked(event);\n },\n isInputClicked: function isInputClicked(event) {\n if (this.multiple) return event.target === this.$refs.multiContainer || this.$refs.multiContainer.contains(event.target);else return event.target === this.$refs.focusInput.$el;\n },\n isDropdownClicked: function isDropdownClicked(event) {\n return this.$refs.dropdownButton ? event.target === this.$refs.dropdownButton || this.$refs.dropdownButton.contains(event.target) : false;\n },\n isOptionMatched: function isOptionMatched(option, value) {\n var _this$getOptionLabel;\n return this.isValidOption(option) && ((_this$getOptionLabel = this.getOptionLabel(option)) === null || _this$getOptionLabel === void 0 ? void 0 : _this$getOptionLabel.toLocaleLowerCase(this.searchLocale)) === value.toLocaleLowerCase(this.searchLocale);\n },\n isValidOption: function isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption: function isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isEquals: function isEquals(value1, value2) {\n return equals(value1, value2, this.equalityKey);\n },\n isSelected: function isSelected(option) {\n var _this8 = this;\n var optionValue = this.getOptionValue(option);\n return this.multiple ? (this.modelValue || []).some(function (value) {\n return _this8.isEquals(value, optionValue);\n }) : this.isEquals(this.modelValue, this.getOptionValue(option));\n },\n findFirstOptionIndex: function findFirstOptionIndex() {\n var _this9 = this;\n return this.visibleOptions.findIndex(function (option) {\n return _this9.isValidOption(option);\n });\n },\n findLastOptionIndex: function findLastOptionIndex() {\n var _this10 = this;\n return findLastIndex(this.visibleOptions, function (option) {\n return _this10.isValidOption(option);\n });\n },\n findNextOptionIndex: function findNextOptionIndex(index) {\n var _this11 = this;\n var matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex(function (option) {\n return _this11.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex: function findPrevOptionIndex(index) {\n var _this12 = this;\n var matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), function (option) {\n return _this12.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex: function findSelectedOptionIndex() {\n var _this13 = this;\n return this.hasSelectedOption ? this.visibleOptions.findIndex(function (option) {\n return _this13.isValidSelectedOption(option);\n }) : -1;\n },\n findFirstFocusedOptionIndex: function findFirstFocusedOptionIndex() {\n var selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex: function findLastFocusedOptionIndex() {\n var selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n search: function search(event, query, source) {\n //allow empty string but not undefined or null\n if (query === undefined || query === null) {\n return;\n }\n\n //do not search blank values on input change\n if (source === 'input' && query.trim().length === 0) {\n return;\n }\n this.searching = true;\n this.$emit('complete', {\n originalEvent: event,\n query: query\n });\n },\n removeOption: function removeOption(event, index) {\n var _this14 = this;\n var removedOption = this.modelValue[index];\n var value = this.modelValue.filter(function (_, i) {\n return i !== index;\n }).map(function (option) {\n return _this14.getOptionValue(option);\n });\n this.updateModel(event, value);\n this.$emit('item-unselect', {\n originalEvent: event,\n value: removedOption\n });\n this.$emit('option-unselect', {\n originalEvent: event,\n value: removedOption\n });\n this.dirty = true;\n focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);\n },\n changeFocusedOptionIndex: function changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\n }\n }\n },\n scrollInView: function scrollInView() {\n var _this15 = this;\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n this.$nextTick(function () {\n var id = index !== -1 ? \"\".concat(_this15.id, \"_\").concat(index) : _this15.focusedOptionId;\n var element = findSingle(_this15.list, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n } else if (!_this15.virtualScrollerDisabled) {\n _this15.virtualScroller && _this15.virtualScroller.scrollToIndex(index !== -1 ? index : _this15.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel: function autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel: function updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', {\n originalEvent: event,\n value: value\n });\n },\n flatOptions: function flatOptions(options) {\n var _this16 = this;\n return (options || []).reduce(function (result, option, index) {\n result.push({\n optionGroup: option,\n group: true,\n index: index\n });\n var optionGroupChildren = _this16.getOptionGroupChildren(option);\n optionGroupChildren && optionGroupChildren.forEach(function (o) {\n return result.push(o);\n });\n return result;\n }, []);\n },\n overlayRef: function overlayRef(el) {\n this.overlay = el;\n },\n listRef: function listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef: function virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions: function visibleOptions() {\n return this.optionGroupLabel ? this.flatOptions(this.suggestions) : this.suggestions || [];\n },\n inputValue: function inputValue() {\n if (isNotEmpty(this.modelValue)) {\n if (_typeof$1(this.modelValue) === 'object') {\n var label = this.getOptionLabel(this.modelValue);\n return label != null ? label : this.modelValue;\n } else {\n return this.modelValue;\n }\n } else {\n return '';\n }\n },\n hasSelectedOption: function hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n equalityKey: function equalityKey() {\n return this.dataKey; // TODO: The 'optionValue' properties can be added.\n },\n searchResultMessageText: function searchResultMessageText() {\n return isNotEmpty(this.visibleOptions) && this.overlayVisible ? this.searchMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptySearchMessageText;\n },\n searchMessageText: function searchMessageText() {\n return this.searchMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptySearchMessageText: function emptySearchMessageText() {\n return this.emptySearchMessage || this.$primevue.config.locale.emptySearchMessage || '';\n },\n selectionMessageText: function selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText: function emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText: function selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', this.multiple ? this.modelValue.length : '1') : this.emptySelectionMessageText;\n },\n listAriaLabel: function listAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.listLabel : undefined;\n },\n focusedOptionId: function focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? \"\".concat(this.id, \"_\").concat(this.focusedOptionIndex) : null;\n },\n focusedMultipleOptionId: function focusedMultipleOptionId() {\n return this.focusedMultipleOptionIndex !== -1 ? \"\".concat(this.id, \"_multiple_option_\").concat(this.focusedMultipleOptionIndex) : null;\n },\n ariaSetSize: function ariaSetSize() {\n var _this17 = this;\n return this.visibleOptions.filter(function (option) {\n return !_this17.isOptionGroup(option);\n }).length;\n },\n virtualScrollerDisabled: function virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n panelId: function panelId() {\n return this.id + '_panel';\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n InputText: InputText,\n VirtualScroller: VirtualScroller,\n Portal: Portal,\n ChevronDownIcon: ChevronDownIcon,\n SpinnerIcon: SpinnerIcon,\n Chip: Chip\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"aria-activedescendant\"];\nvar _hoisted_2 = [\"id\", \"aria-label\", \"aria-setsize\", \"aria-posinset\"];\nvar _hoisted_3 = [\"id\", \"placeholder\", \"tabindex\", \"disabled\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"aria-invalid\"];\nvar _hoisted_4 = [\"disabled\", \"aria-expanded\", \"aria-controls\"];\nvar _hoisted_5 = [\"id\"];\nvar _hoisted_6 = [\"id\", \"aria-label\"];\nvar _hoisted_7 = [\"id\"];\nvar _hoisted_8 = [\"id\", \"aria-label\", \"aria-selected\", \"aria-disabled\", \"aria-setsize\", \"aria-posinset\", \"onClick\", \"onMousemove\", \"data-p-selected\", \"data-p-focus\", \"data-p-disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_InputText = resolveComponent(\"InputText\");\n var _component_Chip = resolveComponent(\"Chip\");\n var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n var _component_VirtualScroller = resolveComponent(\"VirtualScroller\");\n var _component_Portal = resolveComponent(\"Portal\");\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"container\",\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root'),\n onClick: _cache[11] || (_cache[11] = function () {\n return $options.onContainerClick && $options.onContainerClick.apply($options, arguments);\n })\n }, _ctx.ptmi('root')), [!_ctx.multiple ? (openBlock(), createBlock(_component_InputText, {\n key: 0,\n ref: \"focusInput\",\n id: _ctx.inputId,\n type: \"text\",\n \"class\": normalizeClass([_ctx.cx('pcInput'), _ctx.inputClass]),\n style: normalizeStyle(_ctx.inputStyle),\n value: $options.inputValue,\n placeholder: _ctx.placeholder,\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n fluid: $options.hasFluid,\n disabled: _ctx.disabled,\n invalid: _ctx.invalid,\n variant: _ctx.variant,\n autocomplete: \"off\",\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-autocomplete\": \"list\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $options.panelId,\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n onFocus: $options.onFocus,\n onBlur: $options.onBlur,\n onKeydown: $options.onKeyDown,\n onInput: $options.onInput,\n onChange: $options.onChange,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcInput')\n }, null, 8, [\"id\", \"class\", \"style\", \"value\", \"placeholder\", \"tabindex\", \"fluid\", \"disabled\", \"invalid\", \"variant\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"onFocus\", \"onBlur\", \"onKeydown\", \"onInput\", \"onChange\", \"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), _ctx.multiple ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 1,\n ref: \"multiContainer\",\n \"class\": _ctx.cx('inputMultiple'),\n tabindex: \"-1\",\n role: \"listbox\",\n \"aria-orientation\": \"horizontal\",\n \"aria-activedescendant\": $data.focused ? $options.focusedMultipleOptionId : undefined,\n onFocus: _cache[5] || (_cache[5] = function () {\n return $options.onMultipleContainerFocus && $options.onMultipleContainerFocus.apply($options, arguments);\n }),\n onBlur: _cache[6] || (_cache[6] = function () {\n return $options.onMultipleContainerBlur && $options.onMultipleContainerBlur.apply($options, arguments);\n }),\n onKeydown: _cache[7] || (_cache[7] = function () {\n return $options.onMultipleContainerKeyDown && $options.onMultipleContainerKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('inputMultiple')), [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.modelValue, function (option, i) {\n return openBlock(), createElementBlock(\"li\", mergeProps({\n key: \"\".concat(i, \"_\").concat($options.getOptionLabel(option)),\n id: $data.id + '_multiple_option_' + i,\n \"class\": _ctx.cx('chipItem', {\n i: i\n }),\n role: \"option\",\n \"aria-label\": $options.getOptionLabel(option),\n \"aria-selected\": true,\n \"aria-setsize\": _ctx.modelValue.length,\n \"aria-posinset\": i + 1,\n ref_for: true\n }, _ctx.ptm('chipItem')), [renderSlot(_ctx.$slots, \"chip\", mergeProps({\n \"class\": _ctx.cx('pcChip'),\n value: option,\n index: i,\n removeCallback: function removeCallback(event) {\n return $options.removeOption(event, i);\n },\n ref_for: true\n }, _ctx.ptm('pcChip')), function () {\n return [createVNode(_component_Chip, {\n \"class\": normalizeClass(_ctx.cx('pcChip')),\n label: $options.getOptionLabel(option),\n removeIcon: _ctx.chipIcon || _ctx.removeTokenIcon,\n removable: \"\",\n unstyled: _ctx.unstyled,\n onRemove: function onRemove($event) {\n return $options.removeOption($event, i);\n },\n pt: _ctx.ptm('pcChip')\n }, {\n removeicon: withCtx(function () {\n return [renderSlot(_ctx.$slots, _ctx.$slots.chipicon ? 'chipicon' : 'removetokenicon', {\n \"class\": normalizeClass(_ctx.cx('chipIcon')),\n index: i,\n removeCallback: function removeCallback(event) {\n return $options.removeOption(event, i);\n }\n })];\n }),\n _: 2\n }, 1032, [\"class\", \"label\", \"removeIcon\", \"unstyled\", \"onRemove\", \"pt\"])];\n })], 16, _hoisted_2);\n }), 128)), createElementVNode(\"li\", mergeProps({\n \"class\": _ctx.cx('inputChip'),\n role: \"option\"\n }, _ctx.ptm('inputChip')), [createElementVNode(\"input\", mergeProps({\n ref: \"focusInput\",\n id: _ctx.inputId,\n type: \"text\",\n style: _ctx.inputStyle,\n \"class\": _ctx.inputClass,\n placeholder: _ctx.placeholder,\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n disabled: _ctx.disabled,\n autocomplete: \"off\",\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-autocomplete\": \"list\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $data.id + '_list',\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n \"aria-invalid\": _ctx.invalid || undefined,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[1] || (_cache[1] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onKeydown: _cache[2] || (_cache[2] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n }),\n onInput: _cache[3] || (_cache[3] = function () {\n return $options.onInput && $options.onInput.apply($options, arguments);\n }),\n onChange: _cache[4] || (_cache[4] = function () {\n return $options.onChange && $options.onChange.apply($options, arguments);\n })\n }, _ctx.ptm('input')), null, 16, _hoisted_3)], 16)], 16, _hoisted_1)) : createCommentVNode(\"\", true), $data.searching || _ctx.loading ? renderSlot(_ctx.$slots, _ctx.$slots.loader ? 'loader' : 'loadingicon', {\n key: 2,\n \"class\": normalizeClass(_ctx.cx('loader'))\n }, function () {\n return [_ctx.loader || _ctx.loadingIcon ? (openBlock(), createElementBlock(\"i\", mergeProps({\n key: 0,\n \"class\": ['pi-spin', _ctx.cx('loader'), _ctx.loader, _ctx.loadingIcon],\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('loader')), null, 16)) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('loader'),\n spin: \"\",\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('loader')), null, 16, [\"class\"]))];\n }) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, _ctx.$slots.dropdown ? 'dropdown' : 'dropdownbutton', {\n toggleCallback: function toggleCallback(event) {\n return $options.onDropdownClick(event);\n }\n }, function () {\n return [_ctx.dropdown ? (openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n ref: \"dropdownButton\",\n type: \"button\",\n \"class\": [_ctx.cx('dropdown'), _ctx.dropdownClass],\n disabled: _ctx.disabled,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $options.panelId,\n onClick: _cache[8] || (_cache[8] = function () {\n return $options.onDropdownClick && $options.onDropdownClick.apply($options, arguments);\n })\n }, _ctx.ptm('dropdown')), [renderSlot(_ctx.$slots, \"dropdownicon\", {\n \"class\": normalizeClass(_ctx.dropdownIcon)\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.dropdownIcon ? 'span' : 'ChevronDownIcon'), mergeProps({\n \"class\": _ctx.dropdownIcon\n }, _ctx.ptm('dropdownIcon')), null, 16, [\"class\"]))];\n })], 16, _hoisted_4)) : createCommentVNode(\"\", true)];\n }), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenSearchResult'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.searchResultMessageText), 17), createVNode(_component_Portal, {\n appendTo: _ctx.appendTo\n }, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-connected-overlay\",\n onEnter: $options.onOverlayEnter,\n onAfterEnter: $options.onOverlayAfterEnter,\n onLeave: $options.onOverlayLeave,\n onAfterLeave: $options.onOverlayAfterLeave\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [$data.overlayVisible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.overlayRef,\n id: $options.panelId,\n \"class\": [_ctx.cx('overlay'), _ctx.panelClass, _ctx.overlayClass],\n style: _objectSpread(_objectSpread(_objectSpread({}, _ctx.panelStyle), _ctx.overlayStyle), {}, {\n 'max-height': $options.virtualScrollerDisabled ? _ctx.scrollHeight : ''\n }),\n onClick: _cache[9] || (_cache[9] = function () {\n return $options.onOverlayClick && $options.onOverlayClick.apply($options, arguments);\n }),\n onKeydown: _cache[10] || (_cache[10] = function () {\n return $options.onOverlayKeyDown && $options.onOverlayKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('overlay')), [renderSlot(_ctx.$slots, \"header\", {\n value: _ctx.modelValue,\n suggestions: $options.visibleOptions\n }), createVNode(_component_VirtualScroller, mergeProps({\n ref: $options.virtualScrollerRef\n }, _ctx.virtualScrollerOptions, {\n style: {\n height: _ctx.scrollHeight\n },\n items: $options.visibleOptions,\n tabindex: -1,\n disabled: $options.virtualScrollerDisabled,\n pt: _ctx.ptm('virtualScroller')\n }), createSlots({\n content: withCtx(function (_ref) {\n var styleClass = _ref.styleClass,\n contentRef = _ref.contentRef,\n items = _ref.items,\n getItemOptions = _ref.getItemOptions,\n contentStyle = _ref.contentStyle,\n itemSize = _ref.itemSize;\n return [createElementVNode(\"ul\", mergeProps({\n ref: function ref(el) {\n return $options.listRef(el, contentRef);\n },\n id: $data.id + '_list',\n \"class\": [_ctx.cx('list'), styleClass],\n style: contentStyle,\n role: \"listbox\",\n \"aria-label\": $options.listAriaLabel\n }, _ctx.ptm('list')), [(openBlock(true), createElementBlock(Fragment, null, renderList(items, function (option, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getOptionRenderKey(option, $options.getOptionIndex(i, getItemOptions))\n }, [$options.isOptionGroup(option) ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n \"class\": _ctx.cx('optionGroup'),\n role: \"option\",\n ref_for: true\n }, _ctx.ptm('optionGroup')), [renderSlot(_ctx.$slots, \"optiongroup\", {\n option: option.optionGroup,\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createTextVNode(toDisplayString($options.getOptionGroupLabel(option.optionGroup)), 1)];\n })], 16, _hoisted_7)) : withDirectives((openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n \"class\": _ctx.cx('option', {\n option: option,\n i: i,\n getItemOptions: getItemOptions\n }),\n role: \"option\",\n \"aria-label\": $options.getOptionLabel(option),\n \"aria-selected\": $options.isSelected(option),\n \"aria-disabled\": $options.isOptionDisabled(option),\n \"aria-setsize\": $options.ariaSetSize,\n \"aria-posinset\": $options.getAriaPosInset($options.getOptionIndex(i, getItemOptions)),\n onClick: function onClick($event) {\n return $options.onOptionSelect($event, option);\n },\n onMousemove: function onMousemove($event) {\n return $options.onOptionMouseMove($event, $options.getOptionIndex(i, getItemOptions));\n },\n \"data-p-selected\": $options.isSelected(option),\n \"data-p-focus\": $data.focusedOptionIndex === $options.getOptionIndex(i, getItemOptions),\n \"data-p-disabled\": $options.isOptionDisabled(option),\n ref_for: true\n }, $options.getPTOptions(option, getItemOptions, i, 'option')), [renderSlot(_ctx.$slots, \"option\", {\n option: option,\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createTextVNode(toDisplayString($options.getOptionLabel(option)), 1)];\n })], 16, _hoisted_8)), [[_directive_ripple]])], 64);\n }), 128)), !items || items && items.length === 0 ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('emptyMessage'),\n role: \"option\"\n }, _ctx.ptm('emptyMessage')), [renderSlot(_ctx.$slots, \"empty\", {}, function () {\n return [createTextVNode(toDisplayString($options.searchResultMessageText), 1)];\n })], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_6)];\n }),\n _: 2\n }, [_ctx.$slots.loader ? {\n name: \"loader\",\n fn: withCtx(function (_ref2) {\n var options = _ref2.options;\n return [renderSlot(_ctx.$slots, \"loader\", {\n options: options\n })];\n }),\n key: \"0\"\n } : undefined]), 1040, [\"style\", \"items\", \"disabled\", \"pt\"]), renderSlot(_ctx.$slots, \"footer\", {\n value: _ctx.modelValue,\n suggestions: $options.visibleOptions\n }), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenSelectedMessage'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.selectedMessageText), 17)], 16, _hoisted_5)) : createCommentVNode(\"\", true)];\n }),\n _: 3\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 3\n }, 8, [\"appendTo\"])], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n","\n\n\n\n\n","\n\n\n\n\n","// @ts-strict-ignore\nimport type {\n ConnectingLink,\n LGraphNode,\n Vector2,\n INodeInputSlot,\n INodeOutputSlot,\n INodeSlot\n} from '@comfyorg/litegraph'\nimport type { ISlotType } from '@comfyorg/litegraph'\nimport { LiteGraph } from '@comfyorg/litegraph'\n\nexport class ConnectingLinkImpl implements ConnectingLink {\n node: LGraphNode\n slot: number\n input: INodeInputSlot | null\n output: INodeOutputSlot | null\n pos: Vector2\n\n constructor(\n node: LGraphNode,\n slot: number,\n input: INodeInputSlot | null,\n output: INodeOutputSlot | null,\n pos: Vector2\n ) {\n this.node = node\n this.slot = slot\n this.input = input\n this.output = output\n this.pos = pos\n }\n\n static createFromPlainObject(obj: ConnectingLink) {\n return new ConnectingLinkImpl(\n obj.node,\n obj.slot,\n obj.input,\n obj.output,\n obj.pos\n )\n }\n\n get type(): ISlotType | null {\n const result = this.input ? this.input.type : this.output.type\n return result === -1 ? null : result\n }\n\n /**\n * Which slot type is release and need to be reconnected.\n * - 'output' means we need a new node's outputs slot to connect with this link\n */\n get releaseSlotType(): 'input' | 'output' {\n return this.output ? 'input' : 'output'\n }\n\n connectTo(newNode: LGraphNode) {\n const newNodeSlots =\n this.releaseSlotType === 'output' ? newNode.outputs : newNode.inputs\n if (!newNodeSlots) return\n\n const newNodeSlot = newNodeSlots.findIndex((slot: INodeSlot) =>\n LiteGraph.isValidConnection(slot.type, this.type)\n )\n\n if (newNodeSlot === -1) {\n console.warn(\n `Could not find slot with type ${this.type} on node ${newNode.title}. This should never happen`\n )\n return\n }\n\n if (this.releaseSlotType === 'input') {\n this.node.connect(this.slot, newNode, newNodeSlot)\n } else {\n newNode.connect(newNodeSlot, this.node, this.slot)\n }\n }\n}\n\nexport type CanvasDragAndDropData = {\n type: 'add-node'\n data: T\n}\n","\n\n\n\n\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n _ref.dt;\n return \"\\n.p-buttongroup .p-button {\\n margin: 0;\\n}\\n\\n.p-buttongroup .p-button:not(:last-child),\\n.p-buttongroup .p-button:not(:last-child):hover {\\n border-right: 0 none;\\n}\\n\\n.p-buttongroup .p-button:not(:first-of-type):not(:last-of-type) {\\n border-radius: 0;\\n}\\n\\n.p-buttongroup .p-button:first-of-type:not(:only-of-type) {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n\\n.p-buttongroup .p-button:last-of-type:not(:only-of-type) {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n\\n.p-buttongroup .p-button:focus {\\n position: relative;\\n z-index: 1;\\n}\\n\";\n};\nvar classes = {\n root: 'p-buttongroup p-component'\n};\nvar ButtonGroupStyle = BaseStyle.extend({\n name: 'buttongroup',\n theme: theme,\n classes: classes\n});\n\nexport { ButtonGroupStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport ButtonGroupStyle from 'primevue/buttongroup/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseButtonGroup',\n \"extends\": BaseComponent,\n style: ButtonGroupStyle,\n provide: function provide() {\n return {\n $pcButtonGroup: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ButtonGroup',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"group\"\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-toast {\\n width: \".concat(dt('toast.width'), \";\\n white-space: pre-line;\\n word-break: break-word;\\n}\\n\\n.p-toast-message {\\n margin: 0 0 1rem 0;\\n}\\n\\n.p-toast-message-icon {\\n flex-shrink: 0;\\n font-size: \").concat(dt('toast.icon.size'), \";\\n width: \").concat(dt('toast.icon.size'), \";\\n height: \").concat(dt('toast.icon.size'), \";\\n}\\n\\n.p-toast-message-content {\\n display: flex;\\n align-items: flex-start;\\n padding: \").concat(dt('toast.content.padding'), \";\\n gap: \").concat(dt('toast.content.gap'), \";\\n}\\n\\n.p-toast-message-text {\\n flex: 1 1 auto;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('toast.text.gap'), \";\\n}\\n\\n.p-toast-summary {\\n font-weight: \").concat(dt('toast.summary.font.weight'), \";\\n font-size: \").concat(dt('toast.summary.font.size'), \";\\n}\\n\\n.p-toast-detail {\\n font-weight: \").concat(dt('toast.detail.font.weight'), \";\\n font-size: \").concat(dt('toast.detail.font.size'), \";\\n}\\n\\n.p-toast-close-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n position: relative;\\n cursor: pointer;\\n background: transparent;\\n transition: background \").concat(dt('toast.transition.duration'), \", color \").concat(dt('toast.transition.duration'), \", outline-color \").concat(dt('toast.transition.duration'), \", box-shadow \").concat(dt('toast.transition.duration'), \";\\n outline-color: transparent;\\n color: inherit;\\n width: \").concat(dt('toast.close.button.width'), \";\\n height: \").concat(dt('toast.close.button.height'), \";\\n border-radius: \").concat(dt('toast.close.button.border.radius'), \";\\n margin: -25% 0 0 0;\\n right: -25%;\\n padding: 0;\\n border: none;\\n user-select: none;\\n}\\n\\n.p-toast-message-info,\\n.p-toast-message-success,\\n.p-toast-message-warn,\\n.p-toast-message-error,\\n.p-toast-message-secondary,\\n.p-toast-message-contrast {\\n border-width: \").concat(dt('toast.border.width'), \";\\n border-style: solid;\\n backdrop-filter: blur(\").concat(dt('toast.blur'), \");\\n border-radius: \").concat(dt('toast.border.radius'), \";\\n}\\n\\n.p-toast-close-icon {\\n font-size: \").concat(dt('toast.close.icon.size'), \";\\n width: \").concat(dt('toast.close.icon.size'), \";\\n height: \").concat(dt('toast.close.icon.size'), \";\\n}\\n\\n.p-toast-close-button:focus-visible {\\n outline-width: \").concat(dt('focus.ring.width'), \";\\n outline-style: \").concat(dt('focus.ring.style'), \";\\n outline-offset: \").concat(dt('focus.ring.offset'), \";\\n}\\n\\n.p-toast-message-info {\\n background: \").concat(dt('toast.info.background'), \";\\n border-color: \").concat(dt('toast.info.border.color'), \";\\n color: \").concat(dt('toast.info.color'), \";\\n box-shadow: \").concat(dt('toast.info.shadow'), \";\\n}\\n\\n.p-toast-message-info .p-toast-detail {\\n color: \").concat(dt('toast.info.detail.color'), \";\\n}\\n\\n.p-toast-message-info .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.info.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.info.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-info .p-toast-close-button:hover {\\n background: \").concat(dt('toast.info.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-success {\\n background: \").concat(dt('toast.success.background'), \";\\n border-color: \").concat(dt('toast.success.border.color'), \";\\n color: \").concat(dt('toast.success.color'), \";\\n box-shadow: \").concat(dt('toast.success.shadow'), \";\\n}\\n\\n.p-toast-message-success .p-toast-detail {\\n color: \").concat(dt('toast.success.detail.color'), \";\\n}\\n\\n.p-toast-message-success .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.success.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.success.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-success .p-toast-close-button:hover {\\n background: \").concat(dt('toast.success.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-warn {\\n background: \").concat(dt('toast.warn.background'), \";\\n border-color: \").concat(dt('toast.warn.border.color'), \";\\n color: \").concat(dt('toast.warn.color'), \";\\n box-shadow: \").concat(dt('toast.warn.shadow'), \";\\n}\\n\\n.p-toast-message-warn .p-toast-detail {\\n color: \").concat(dt('toast.warn.detail.color'), \";\\n}\\n\\n.p-toast-message-warn .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.warn.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.warn.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-warn .p-toast-close-button:hover {\\n background: \").concat(dt('toast.warn.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-error {\\n background: \").concat(dt('toast.error.background'), \";\\n border-color: \").concat(dt('toast.error.border.color'), \";\\n color: \").concat(dt('toast.error.color'), \";\\n box-shadow: \").concat(dt('toast.error.shadow'), \";\\n}\\n\\n.p-toast-message-error .p-toast-detail {\\n color: \").concat(dt('toast.error.detail.color'), \";\\n}\\n\\n.p-toast-message-error .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.error.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.error.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-error .p-toast-close-button:hover {\\n background: \").concat(dt('toast.error.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-secondary {\\n background: \").concat(dt('toast.secondary.background'), \";\\n border-color: \").concat(dt('toast.secondary.border.color'), \";\\n color: \").concat(dt('toast.secondary.color'), \";\\n box-shadow: \").concat(dt('toast.secondary.shadow'), \";\\n}\\n\\n.p-toast-message-secondary .p-toast-detail {\\n color: \").concat(dt('toast.secondary.detail.color'), \";\\n}\\n\\n.p-toast-message-secondary .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.secondary.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.secondary.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-secondary .p-toast-close-button:hover {\\n background: \").concat(dt('toast.secondary.close.button.hover.background'), \";\\n}\\n\\n.p-toast-message-contrast {\\n background: \").concat(dt('toast.contrast.background'), \";\\n border-color: \").concat(dt('toast.contrast.border.color'), \";\\n color: \").concat(dt('toast.contrast.color'), \";\\n box-shadow: \").concat(dt('toast.contrast.shadow'), \";\\n}\\n\\n.p-toast-message-contrast .p-toast-detail {\\n color: \").concat(dt('toast.contrast.detail.color'), \";\\n}\\n\\n.p-toast-message-contrast .p-toast-close-button:focus-visible {\\n outline-color: \").concat(dt('toast.contrast.close.button.focus.ring.color'), \";\\n box-shadow: \").concat(dt('toast.contrast.close.button.focus.ring.shadow'), \";\\n}\\n\\n.p-toast-message-contrast .p-toast-close-button:hover {\\n background: \").concat(dt('toast.contrast.close.button.hover.background'), \";\\n}\\n\\n.p-toast-top-center {\\n transform: translateX(-50%);\\n}\\n\\n.p-toast-bottom-center {\\n transform: translateX(-50%);\\n}\\n\\n.p-toast-center {\\n min-width: 20vw;\\n transform: translate(-50%, -50%);\\n}\\n\\n.p-toast-message-enter-from {\\n opacity: 0;\\n transform: translateY(50%);\\n}\\n\\n.p-toast-message-leave-from {\\n max-height: 1000px;\\n}\\n\\n.p-toast .p-toast-message.p-toast-message-leave-to {\\n max-height: 0;\\n opacity: 0;\\n margin-bottom: 0;\\n overflow: hidden;\\n}\\n\\n.p-toast-message-enter-active {\\n transition: transform 0.3s, opacity 0.3s;\\n}\\n\\n.p-toast-message-leave-active {\\n transition: max-height 0.45s cubic-bezier(0, 1, 0, 1), opacity 0.3s, margin-bottom 0.3s;\\n}\\n\");\n};\n\n// Position\nvar inlineStyles = {\n root: function root(_ref2) {\n var position = _ref2.position;\n return {\n position: 'fixed',\n top: position === 'top-right' || position === 'top-left' || position === 'top-center' ? '20px' : position === 'center' ? '50%' : null,\n right: (position === 'top-right' || position === 'bottom-right') && '20px',\n bottom: (position === 'bottom-left' || position === 'bottom-right' || position === 'bottom-center') && '20px',\n left: position === 'top-left' || position === 'bottom-left' ? '20px' : position === 'center' || position === 'top-center' || position === 'bottom-center' ? '50%' : null\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n var props = _ref3.props;\n return ['p-toast p-component p-toast-' + props.position];\n },\n message: function message(_ref4) {\n var props = _ref4.props;\n return ['p-toast-message', {\n 'p-toast-message-info': props.message.severity === 'info' || props.message.severity === undefined,\n 'p-toast-message-warn': props.message.severity === 'warn',\n 'p-toast-message-error': props.message.severity === 'error',\n 'p-toast-message-success': props.message.severity === 'success',\n 'p-toast-message-secondary': props.message.severity === 'secondary',\n 'p-toast-message-contrast': props.message.severity === 'contrast'\n }];\n },\n messageContent: 'p-toast-message-content',\n messageIcon: function messageIcon(_ref5) {\n var props = _ref5.props;\n return ['p-toast-message-icon', _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, props.infoIcon, props.message.severity === 'info'), props.warnIcon, props.message.severity === 'warn'), props.errorIcon, props.message.severity === 'error'), props.successIcon, props.message.severity === 'success')];\n },\n messageText: 'p-toast-message-text',\n summary: 'p-toast-summary',\n detail: 'p-toast-detail',\n closeButton: 'p-toast-close-button',\n closeIcon: 'p-toast-close-icon'\n};\nvar ToastStyle = BaseStyle.extend({\n name: 'toast',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { ToastStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { setAttribute } from '@primeuix/utils/dom';\nimport { isEmpty } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport Portal from 'primevue/portal';\nimport ToastEventBus from 'primevue/toasteventbus';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ToastStyle from 'primevue/toast/style';\nimport CheckIcon from '@primevue/icons/check';\nimport ExclamationTriangleIcon from '@primevue/icons/exclamationtriangle';\nimport InfoCircleIcon from '@primevue/icons/infocircle';\nimport TimesIcon from '@primevue/icons/times';\nimport TimesCircleIcon from '@primevue/icons/timescircle';\nimport Ripple from 'primevue/ripple';\nimport { resolveDirective, openBlock, createElementBlock, mergeProps, createBlock, resolveDynamicComponent, Fragment, createElementVNode, toDisplayString, normalizeProps, withDirectives, createCommentVNode, resolveComponent, withCtx, createVNode, TransitionGroup, renderList } from 'vue';\n\nvar script$2 = {\n name: 'BaseToast',\n \"extends\": BaseComponent,\n props: {\n group: {\n type: String,\n \"default\": null\n },\n position: {\n type: String,\n \"default\": 'top-right'\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n breakpoints: {\n type: Object,\n \"default\": null\n },\n closeIcon: {\n type: String,\n \"default\": undefined\n },\n infoIcon: {\n type: String,\n \"default\": undefined\n },\n warnIcon: {\n type: String,\n \"default\": undefined\n },\n errorIcon: {\n type: String,\n \"default\": undefined\n },\n successIcon: {\n type: String,\n \"default\": undefined\n },\n closeButtonProps: {\n type: null,\n \"default\": null\n }\n },\n style: ToastStyle,\n provide: function provide() {\n return {\n $pcToast: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$1 = {\n name: 'ToastMessage',\n hostName: 'Toast',\n \"extends\": BaseComponent,\n emits: ['close'],\n closeTimeout: null,\n props: {\n message: {\n type: null,\n \"default\": null\n },\n templates: {\n type: Object,\n \"default\": null\n },\n closeIcon: {\n type: String,\n \"default\": null\n },\n infoIcon: {\n type: String,\n \"default\": null\n },\n warnIcon: {\n type: String,\n \"default\": null\n },\n errorIcon: {\n type: String,\n \"default\": null\n },\n successIcon: {\n type: String,\n \"default\": null\n },\n closeButtonProps: {\n type: null,\n \"default\": null\n }\n },\n mounted: function mounted() {\n var _this = this;\n if (this.message.life) {\n this.closeTimeout = setTimeout(function () {\n _this.close({\n message: _this.message,\n type: 'life-end'\n });\n }, this.message.life);\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.clearCloseTimeout();\n },\n methods: {\n close: function close(params) {\n this.$emit('close', params);\n },\n onCloseClick: function onCloseClick() {\n this.clearCloseTimeout();\n this.close({\n message: this.message,\n type: 'close'\n });\n },\n clearCloseTimeout: function clearCloseTimeout() {\n if (this.closeTimeout) {\n clearTimeout(this.closeTimeout);\n this.closeTimeout = null;\n }\n }\n },\n computed: {\n iconComponent: function iconComponent() {\n return {\n info: !this.infoIcon && InfoCircleIcon,\n success: !this.successIcon && CheckIcon,\n warn: !this.warnIcon && ExclamationTriangleIcon,\n error: !this.errorIcon && TimesCircleIcon\n }[this.message.severity];\n },\n closeAriaLabel: function closeAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.close : undefined;\n }\n },\n components: {\n TimesIcon: TimesIcon,\n InfoCircleIcon: InfoCircleIcon,\n CheckIcon: CheckIcon,\n ExclamationTriangleIcon: ExclamationTriangleIcon,\n TimesCircleIcon: TimesCircleIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nfunction _typeof$1(o) { \"@babel/helpers - typeof\"; return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$1(o); }\nfunction ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$1(e, r, t) { return (r = _toPropertyKey$1(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$1(t) { var i = _toPrimitive$1(t, \"string\"); return \"symbol\" == _typeof$1(i) ? i : i + \"\"; }\nfunction _toPrimitive$1(t, r) { if (\"object\" != _typeof$1(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$1(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"aria-label\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": [_ctx.cx('message'), $props.message.styleClass],\n role: \"alert\",\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\"\n }, _ctx.ptm('message')), [$props.templates.container ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.container), {\n key: 0,\n message: $props.message,\n closeCallback: $options.onCloseClick\n }, null, 8, [\"message\", \"closeCallback\"])) : (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('messageContent'), $props.message.contentStyleClass]\n }, _ctx.ptm('messageContent')), [!$props.templates.message ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [(openBlock(), createBlock(resolveDynamicComponent($props.templates.messageicon ? $props.templates.messageicon : $props.templates.icon ? $props.templates.icon : $options.iconComponent && $options.iconComponent.name ? $options.iconComponent : 'span'), mergeProps({\n \"class\": _ctx.cx('messageIcon')\n }, _ctx.ptm('messageIcon')), null, 16, [\"class\"])), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('messageText')\n }, _ctx.ptm('messageText')), [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('summary')\n }, _ctx.ptm('summary')), toDisplayString($props.message.summary), 17), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('detail')\n }, _ctx.ptm('detail')), toDisplayString($props.message.detail), 17)], 16)], 64)) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.message), {\n key: 1,\n message: $props.message\n }, null, 8, [\"message\"])), $props.message.closable !== false ? (openBlock(), createElementBlock(\"div\", normalizeProps(mergeProps({\n key: 2\n }, _ctx.ptm('buttonContainer'))), [withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n \"class\": _ctx.cx('closeButton'),\n type: \"button\",\n \"aria-label\": $options.closeAriaLabel,\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onCloseClick && $options.onCloseClick.apply($options, arguments);\n }),\n autofocus: \"\"\n }, _objectSpread$1(_objectSpread$1({}, $props.closeButtonProps), _ctx.ptm('closeButton'))), [(openBlock(), createBlock(resolveDynamicComponent($props.templates.closeicon || 'TimesIcon'), mergeProps({\n \"class\": [_ctx.cx('closeIcon'), $props.closeIcon]\n }, _ctx.ptm('closeIcon')), null, 16, [\"class\"]))], 16, _hoisted_1)), [[_directive_ripple]])], 16)) : createCommentVNode(\"\", true)], 16))], 16);\n}\n\nscript$1.render = render$1;\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar messageIdx = 0;\nvar script = {\n name: 'Toast',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['close', 'life-end'],\n data: function data() {\n return {\n messages: []\n };\n },\n styleElement: null,\n mounted: function mounted() {\n ToastEventBus.on('add', this.onAdd);\n ToastEventBus.on('remove', this.onRemove);\n ToastEventBus.on('remove-group', this.onRemoveGroup);\n ToastEventBus.on('remove-all-groups', this.onRemoveAllGroups);\n if (this.breakpoints) {\n this.createStyle();\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.destroyStyle();\n if (this.$refs.container && this.autoZIndex) {\n ZIndex.clear(this.$refs.container);\n }\n ToastEventBus.off('add', this.onAdd);\n ToastEventBus.off('remove', this.onRemove);\n ToastEventBus.off('remove-group', this.onRemoveGroup);\n ToastEventBus.off('remove-all-groups', this.onRemoveAllGroups);\n },\n methods: {\n add: function add(message) {\n if (message.id == null) {\n message.id = messageIdx++;\n }\n this.messages = [].concat(_toConsumableArray(this.messages), [message]);\n },\n remove: function remove(params) {\n var index = this.messages.findIndex(function (m) {\n return m.id === params.message.id;\n });\n if (index !== -1) {\n this.messages.splice(index, 1);\n this.$emit(params.type, {\n message: params.message\n });\n }\n },\n onAdd: function onAdd(message) {\n if (this.group == message.group) {\n this.add(message);\n }\n },\n onRemove: function onRemove(message) {\n this.remove({\n message: message,\n type: 'close'\n });\n },\n onRemoveGroup: function onRemoveGroup(group) {\n if (this.group === group) {\n this.messages = [];\n }\n },\n onRemoveAllGroups: function onRemoveAllGroups() {\n this.messages = [];\n },\n onEnter: function onEnter() {\n this.$refs.container.setAttribute(this.attributeSelector, '');\n if (this.autoZIndex) {\n ZIndex.set('modal', this.$refs.container, this.baseZIndex || this.$primevue.config.zIndex.modal);\n }\n },\n onLeave: function onLeave() {\n var _this = this;\n if (this.$refs.container && this.autoZIndex && isEmpty(this.messages)) {\n setTimeout(function () {\n ZIndex.clear(_this.$refs.container);\n }, 200);\n }\n },\n createStyle: function createStyle() {\n if (!this.styleElement && !this.isUnstyled) {\n var _this$$primevue;\n this.styleElement = document.createElement('style');\n this.styleElement.type = 'text/css';\n setAttribute(this.styleElement, 'nonce', (_this$$primevue = this.$primevue) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.config) === null || _this$$primevue === void 0 || (_this$$primevue = _this$$primevue.csp) === null || _this$$primevue === void 0 ? void 0 : _this$$primevue.nonce);\n document.head.appendChild(this.styleElement);\n var innerHTML = '';\n for (var breakpoint in this.breakpoints) {\n var breakpointStyle = '';\n for (var styleProp in this.breakpoints[breakpoint]) {\n breakpointStyle += styleProp + ':' + this.breakpoints[breakpoint][styleProp] + '!important;';\n }\n innerHTML += \"\\n @media screen and (max-width: \".concat(breakpoint, \") {\\n .p-toast[\").concat(this.attributeSelector, \"] {\\n \").concat(breakpointStyle, \"\\n }\\n }\\n \");\n }\n this.styleElement.innerHTML = innerHTML;\n }\n },\n destroyStyle: function destroyStyle() {\n if (this.styleElement) {\n document.head.removeChild(this.styleElement);\n this.styleElement = null;\n }\n }\n },\n computed: {\n attributeSelector: function attributeSelector() {\n return UniqueComponentId();\n }\n },\n components: {\n ToastMessage: script$1,\n Portal: Portal\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_ToastMessage = resolveComponent(\"ToastMessage\");\n var _component_Portal = resolveComponent(\"Portal\");\n return openBlock(), createBlock(_component_Portal, null, {\n \"default\": withCtx(function () {\n return [createElementVNode(\"div\", mergeProps({\n ref: \"container\",\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root', true, {\n position: _ctx.position\n })\n }, _ctx.ptmi('root')), [createVNode(TransitionGroup, mergeProps({\n name: \"p-toast-message\",\n tag: \"div\",\n onEnter: $options.onEnter,\n onLeave: $options.onLeave\n }, _objectSpread({}, _ctx.ptm('transition'))), {\n \"default\": withCtx(function () {\n return [(openBlock(true), createElementBlock(Fragment, null, renderList($data.messages, function (msg) {\n return openBlock(), createBlock(_component_ToastMessage, {\n key: msg.id,\n message: msg,\n templates: _ctx.$slots,\n closeIcon: _ctx.closeIcon,\n infoIcon: _ctx.infoIcon,\n warnIcon: _ctx.warnIcon,\n errorIcon: _ctx.errorIcon,\n successIcon: _ctx.successIcon,\n closeButtonProps: _ctx.closeButtonProps,\n unstyled: _ctx.unstyled,\n onClose: _cache[0] || (_cache[0] = function ($event) {\n return $options.remove($event);\n }),\n pt: _ctx.pt\n }, null, 8, [\"message\", \"templates\", \"closeIcon\", \"infoIcon\", \"warnIcon\", \"errorIcon\", \"successIcon\", \"closeButtonProps\", \"unstyled\", \"pt\"]);\n }), 128))];\n }),\n _: 1\n }, 16, [\"onEnter\", \"onLeave\"])], 16)];\n }),\n _: 1\n });\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-menubar {\\n display: flex;\\n align-items: center;\\n background: \".concat(dt('menubar.background'), \";\\n border: 1px solid \").concat(dt('menubar.border.color'), \";\\n border-radius: \").concat(dt('menubar.border.radius'), \";\\n color: \").concat(dt('menubar.color'), \";\\n padding: \").concat(dt('menubar.padding'), \";\\n gap: \").concat(dt('menubar.gap'), \";\\n}\\n\\n.p-menubar-start,\\n.p-megamenu-end {\\n display: flex;\\n align-items: center;\\n}\\n\\n.p-menubar-root-list,\\n.p-menubar-submenu {\\n display: flex;\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n outline: 0 none;\\n}\\n\\n.p-menubar-root-list {\\n align-items: center;\\n flex-wrap: wrap;\\n gap: \").concat(dt('menubar.gap'), \";\\n}\\n\\n.p-menubar-root-list > .p-menubar-item > .p-menubar-item-content {\\n border-radius: \").concat(dt('menubar.base.item.border.radius'), \";\\n}\\n\\n.p-menubar-root-list > .p-menubar-item > .p-menubar-item-content > .p-menubar-item-link {\\n padding: \").concat(dt('menubar.base.item.padding'), \";\\n}\\n\\n.p-menubar-item-content {\\n transition: background \").concat(dt('menubar.transition.duration'), \", color \").concat(dt('menubar.transition.duration'), \";\\n border-radius: \").concat(dt('menubar.item.border.radius'), \";\\n color: \").concat(dt('menubar.item.color'), \";\\n}\\n\\n.p-menubar-item-link {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n text-decoration: none;\\n overflow: hidden;\\n position: relative;\\n color: inherit;\\n padding: \").concat(dt('menubar.item.padding'), \";\\n gap: \").concat(dt('menubar.item.gap'), \";\\n user-select: none;\\n outline: 0 none;\\n}\\n\\n.p-menubar-item-label {\\n line-height: 1;\\n}\\n\\n.p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.color'), \";\\n}\\n\\n.p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.color'), \";\\n margin-left: auto;\\n font-size: \").concat(dt('menubar.submenu.icon.size'), \";\\n width: \").concat(dt('menubar.submenu.icon.size'), \";\\n height: \").concat(dt('menubar.submenu.icon.size'), \";\\n}\\n\\n.p-menubar-item.p-focus > .p-menubar-item-content {\\n color: \").concat(dt('menubar.item.focus.color'), \";\\n background: \").concat(dt('menubar.item.focus.background'), \";\\n}\\n\\n.p-menubar-item.p-focus > .p-menubar-item-content .p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item.p-focus > .p-menubar-item-content .p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover {\\n color: \").concat(dt('menubar.item.focus.color'), \";\\n background: \").concat(dt('menubar.item.focus.background'), \";\\n}\\n\\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover .p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover .p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.focus.color'), \";\\n}\\n\\n.p-menubar-item-active > .p-menubar-item-content {\\n color: \").concat(dt('menubar.item.active.color'), \";\\n background: \").concat(dt('menubar.item.active.background'), \";\\n}\\n\\n.p-menubar-item-active > .p-menubar-item-content .p-menubar-item-icon {\\n color: \").concat(dt('menubar.item.icon.active.color'), \";\\n}\\n\\n.p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\\n color: \").concat(dt('menubar.submenu.icon.active.color'), \";\\n}\\n\\n.p-menubar-submenu {\\n display: none;\\n position: absolute;\\n min-width: 12.5rem;\\n z-index: 1;\\n background: \").concat(dt('menubar.submenu.background'), \";\\n border: 1px solid \").concat(dt('menubar.submenu.border.color'), \";\\n border-radius: \").concat(dt('menubar.border.radius'), \";\\n box-shadow: \").concat(dt('menubar.submenu.shadow'), \";\\n color: \").concat(dt('menubar.submenu.color'), \";\\n flex-direction: column;\\n padding: \").concat(dt('menubar.submenu.padding'), \";\\n gap: \").concat(dt('menubar.submenu.gap'), \";\\n}\\n\\n.p-menubar-submenu .p-menubar-separator {\\n border-top: 1px solid \").concat(dt('menubar.separator.border.color'), \";\\n}\\n\\n.p-menubar-submenu .p-menubar-item {\\n position: relative;\\n}\\n\\n .p-menubar-submenu > .p-menubar-item-active > .p-menubar-submenu {\\n display: block;\\n left: 100%;\\n top: 0;\\n}\\n\\n.p-menubar-end {\\n margin-left: auto;\\n align-self: center;\\n}\\n\\n.p-menubar-button {\\n display: none;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n width: \").concat(dt('menubar.mobile.button.size'), \";\\n height: \").concat(dt('menubar.mobile.button.size'), \";\\n position: relative;\\n color: \").concat(dt('menubar.mobile.button.color'), \";\\n border: 0 none;\\n background: transparent;\\n border-radius: \").concat(dt('menubar.mobile.button.border.radius'), \";\\n transition: background \").concat(dt('menubar.transition.duration'), \", color \").concat(dt('menubar.transition.duration'), \", outline-color \").concat(dt('menubar.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-menubar-button:hover {\\n color: \").concat(dt('menubar.mobile.button.hover.color'), \";\\n background: \").concat(dt('menubar.mobile.button.hover.background'), \";\\n}\\n\\n.p-menubar-button:focus-visible {\\n box-shadow: \").concat(dt('menubar.mobile.button.focus.ring.shadow'), \";\\n outline: \").concat(dt('menubar.mobile.button.focus.ring.width'), \" \").concat(dt('menubar.mobile.button.focus.ring.style'), \" \").concat(dt('menubar.mobile.button.focus.ring.color'), \";\\n outline-offset: \").concat(dt('menubar.mobile.button.focus.ring.offset'), \";\\n}\\n\\n.p-menubar-mobile {\\n position: relative;\\n}\\n\\n.p-menubar-mobile .p-menubar-button {\\n display: flex;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list {\\n position: absolute;\\n display: none;\\n width: 100%;\\n padding: \").concat(dt('menubar.submenu.padding'), \";\\n background: \").concat(dt('menubar.submenu.background'), \";\\n border: 1px solid \").concat(dt('menubar.submenu.border.color'), \";\\n box-shadow: \").concat(dt('menubar.submenu.shadow'), \";\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content {\\n border-radius: \").concat(dt('menubar.item.border.radius'), \";\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content > .p-menubar-item-link {\\n padding: \").concat(dt('menubar.item.padding'), \";\\n}\\n\\n.p-menubar-mobile-active .p-menubar-root-list {\\n display: flex;\\n flex-direction: column;\\n top: 100%;\\n left: 0;\\n z-index: 1;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list .p-menubar-item {\\n width: 100%;\\n position: static;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list .p-menubar-separator {\\n border-top: 1px solid \").concat(dt('menubar.separator.border.color'), \";\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content .p-menubar-submenu-icon {\\n margin-left: auto;\\n transition: transform 0.2s;\\n}\\n\\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\\n transform: rotate(-180deg);\\n}\\n\\n.p-menubar-mobile .p-menubar-submenu .p-menubar-submenu-icon {\\n transition: transform 0.2s;\\n transform: rotate(90deg);\\n}\\n\\n.p-menubar-mobile .p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\\n transform: rotate(-90deg);\\n}\\n\\n.p-menubar-mobile .p-menubar-submenu {\\n width: 100%;\\n position: static;\\n box-shadow: none;\\n border: 0 none;\\n padding-left: \").concat(dt('menubar.submenu.mobile.indent'), \";\\n}\\n\");\n};\nvar inlineStyles = {\n submenu: function submenu(_ref2) {\n var instance = _ref2.instance,\n processedItem = _ref2.processedItem;\n return {\n display: instance.isItemActive(processedItem) ? 'flex' : 'none'\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n var instance = _ref3.instance;\n return ['p-menubar p-component', {\n 'p-menubar-mobile': instance.queryMatches,\n 'p-menubar-mobile-active': instance.mobileActive\n }];\n },\n start: 'p-menubar-start',\n button: 'p-menubar-button',\n rootList: 'p-menubar-root-list',\n item: function item(_ref4) {\n var instance = _ref4.instance,\n processedItem = _ref4.processedItem;\n return ['p-menubar-item', {\n 'p-menubar-item-active': instance.isItemActive(processedItem),\n 'p-focus': instance.isItemFocused(processedItem),\n 'p-disabled': instance.isItemDisabled(processedItem)\n }];\n },\n itemContent: 'p-menubar-item-content',\n itemLink: 'p-menubar-item-link',\n itemIcon: 'p-menubar-item-icon',\n itemLabel: 'p-menubar-item-label',\n submenuIcon: 'p-menubar-submenu-icon',\n submenu: 'p-menubar-submenu',\n separator: 'p-menubar-separator',\n end: 'p-menubar-end'\n};\nvar MenubarStyle = BaseStyle.extend({\n name: 'menubar',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { MenubarStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport { focus, findSingle, isTouchDevice } from '@primeuix/utils/dom';\nimport { resolve, isNotEmpty, isPrintableCharacter, isEmpty, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport BarsIcon from '@primevue/icons/bars';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MenubarStyle from 'primevue/menubar/style';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveComponent, resolveDirective, openBlock, createElementBlock, Fragment, renderList, createElementVNode, withDirectives, createBlock, resolveDynamicComponent, normalizeClass, createCommentVNode, toDisplayString, normalizeStyle, renderSlot, createVNode, normalizeProps, guardReactiveProps } from 'vue';\n\nvar script$2 = {\n name: 'BaseMenubar',\n \"extends\": BaseComponent,\n props: {\n model: {\n type: Array,\n \"default\": null\n },\n buttonProps: {\n type: null,\n \"default\": null\n },\n breakpoint: {\n type: String,\n \"default\": '960px'\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: MenubarStyle,\n provide: function provide() {\n return {\n $pcMenubar: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$1 = {\n name: 'MenubarSub',\n hostName: 'Menubar',\n \"extends\": BaseComponent,\n emits: ['item-mouseenter', 'item-click', 'item-mousemove'],\n props: {\n items: {\n type: Array,\n \"default\": null\n },\n root: {\n type: Boolean,\n \"default\": false\n },\n popup: {\n type: Boolean,\n \"default\": false\n },\n mobileActive: {\n type: Boolean,\n \"default\": false\n },\n templates: {\n type: Object,\n \"default\": null\n },\n level: {\n type: Number,\n \"default\": 0\n },\n menuId: {\n type: String,\n \"default\": null\n },\n focusedItemId: {\n type: String,\n \"default\": null\n },\n activeItemPath: {\n type: Object,\n \"default\": null\n }\n },\n list: null,\n methods: {\n getItemId: function getItemId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key);\n },\n getItemKey: function getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp: function getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel: function getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId: function getItemLabelId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key, \"_label\");\n },\n getPTOptions: function getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index: index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem),\n level: this.level\n }\n });\n },\n isItemActive: function isItemActive(processedItem) {\n return this.activeItemPath.some(function (path) {\n return path.key === processedItem.key;\n });\n },\n isItemVisible: function isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled: function isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused: function isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup: function isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onItemClick: function onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', {\n originalEvent: event,\n item: processedItem.item\n });\n this.$emit('item-click', {\n originalEvent: event,\n processedItem: processedItem,\n isFocus: true\n });\n },\n onItemMouseEnter: function onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n onItemMouseMove: function onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n getAriaPosInset: function getAriaPosInset(index) {\n return index - this.calculateAriaSetSize.slice(0, index).length + 1;\n },\n getMenuItemProps: function getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps({\n \"class\": this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n }, this.getPTOptions(processedItem, index, 'itemLink')),\n icon: mergeProps({\n \"class\": [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n }, this.getPTOptions(processedItem, index, 'itemIcon')),\n label: mergeProps({\n \"class\": this.cx('itemLabel')\n }, this.getPTOptions(processedItem, index, 'itemLabel')),\n submenuicon: mergeProps({\n \"class\": this.cx('submenuIcon')\n }, this.getPTOptions(processedItem, index, 'submenuIcon'))\n };\n }\n },\n computed: {\n calculateAriaSetSize: function calculateAriaSetSize() {\n var _this = this;\n return this.items.filter(function (processedItem) {\n return _this.isItemVisible(processedItem) && _this.getItemProp(processedItem, 'separator');\n });\n },\n getAriaSetSize: function getAriaSetSize() {\n var _this2 = this;\n return this.items.filter(function (processedItem) {\n return _this2.isItemVisible(processedItem) && !_this2.getItemProp(processedItem, 'separator');\n }).length;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon,\n AngleDownIcon: AngleDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1$1 = [\"id\", \"aria-label\", \"aria-disabled\", \"aria-expanded\", \"aria-haspopup\", \"aria-level\", \"aria-setsize\", \"aria-posinset\", \"data-p-active\", \"data-p-focused\", \"data-p-disabled\"];\nvar _hoisted_2 = [\"onClick\", \"onMouseenter\", \"onMousemove\"];\nvar _hoisted_3 = [\"href\", \"target\"];\nvar _hoisted_4 = [\"id\"];\nvar _hoisted_5 = [\"id\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_MenubarSub = resolveComponent(\"MenubarSub\", true);\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"ul\", mergeProps({\n \"class\": $props.level === 0 ? _ctx.cx('rootList') : _ctx.cx('submenu')\n }, $props.level === 0 ? _ctx.ptm('rootList') : _ctx.ptm('submenu')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.items, function (processedItem, index) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getItemKey(processedItem)\n }, [$options.isItemVisible(processedItem) && !$options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('item', {\n processedItem: processedItem\n }), $options.getItemProp(processedItem, 'class')],\n role: \"menuitem\",\n \"aria-label\": $options.getItemLabel(processedItem),\n \"aria-disabled\": $options.isItemDisabled(processedItem) || undefined,\n \"aria-expanded\": $options.isItemGroup(processedItem) ? $options.isItemActive(processedItem) : undefined,\n \"aria-haspopup\": $options.isItemGroup(processedItem) && !$options.getItemProp(processedItem, 'to') ? 'menu' : undefined,\n \"aria-level\": $props.level + 1,\n \"aria-setsize\": $options.getAriaSetSize,\n \"aria-posinset\": $options.getAriaPosInset(index),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'item'), {\n \"data-p-active\": $options.isItemActive(processedItem),\n \"data-p-focused\": $options.isItemFocused(processedItem),\n \"data-p-disabled\": $options.isItemDisabled(processedItem)\n }), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('itemContent'),\n onClick: function onClick($event) {\n return $options.onItemClick($event, processedItem);\n },\n onMouseenter: function onMouseenter($event) {\n return $options.onItemMouseEnter($event, processedItem);\n },\n onMousemove: function onMousemove($event) {\n return $options.onItemMouseMove($event, processedItem);\n },\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemContent')), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock(\"a\", mergeProps({\n key: 0,\n href: $options.getItemProp(processedItem, 'url'),\n \"class\": _ctx.cx('itemLink'),\n target: $options.getItemProp(processedItem, 'target'),\n tabindex: \"-1\",\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLink')), [$props.templates.itemicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.itemicon), {\n key: 0,\n item: processedItem.item,\n \"class\": normalizeClass(_ctx.cx('itemIcon'))\n }, null, 8, [\"item\", \"class\"])) : $options.getItemProp(processedItem, 'icon') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('itemIcon'), $options.getItemProp(processedItem, 'icon')],\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemIcon')), null, 16)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n id: $options.getItemLabelId(processedItem),\n \"class\": _ctx.cx('itemLabel'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLabel')), toDisplayString($options.getItemLabel(processedItem)), 17, _hoisted_4), $options.getItemProp(processedItem, 'items') ? (openBlock(), createElementBlock(Fragment, {\n key: 2\n }, [$props.templates.submenuicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.submenuicon), {\n key: 0,\n root: $props.root,\n active: $options.isItemActive(processedItem),\n \"class\": normalizeClass(_ctx.cx('submenuIcon'))\n }, null, 8, [\"root\", \"active\", \"class\"])) : (openBlock(), createBlock(resolveDynamicComponent($props.root ? 'AngleDownIcon' : 'AngleRightIcon'), mergeProps({\n key: 1,\n \"class\": _ctx.cx('submenuIcon'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'submenuIcon')), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true)], 16, _hoisted_3)), [[_directive_ripple]]) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), {\n key: 1,\n item: processedItem.item,\n root: $props.root,\n hasSubmenu: $options.getItemProp(processedItem, 'items'),\n label: $options.getItemLabel(processedItem),\n props: $options.getMenuItemProps(processedItem, index)\n }, null, 8, [\"item\", \"root\", \"hasSubmenu\", \"label\", \"props\"]))], 16, _hoisted_2), $options.isItemVisible(processedItem) && $options.isItemGroup(processedItem) ? (openBlock(), createBlock(_component_MenubarSub, {\n key: 0,\n id: $options.getItemId(processedItem) + '_list',\n menuId: $props.menuId,\n role: \"menu\",\n style: normalizeStyle(_ctx.sx('submenu', true, {\n processedItem: processedItem\n })),\n focusedItemId: $props.focusedItemId,\n items: processedItem.items,\n mobileActive: $props.mobileActive,\n activeItemPath: $props.activeItemPath,\n templates: $props.templates,\n level: $props.level + 1,\n \"aria-labelledby\": $options.getItemLabelId(processedItem),\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onItemClick: _cache[0] || (_cache[0] = function ($event) {\n return _ctx.$emit('item-click', $event);\n }),\n onItemMouseenter: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('item-mouseenter', $event);\n }),\n onItemMousemove: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('item-mousemove', $event);\n })\n }, null, 8, [\"id\", \"menuId\", \"style\", \"focusedItemId\", \"items\", \"mobileActive\", \"activeItemPath\", \"templates\", \"level\", \"aria-labelledby\", \"pt\", \"unstyled\"])) : createCommentVNode(\"\", true)], 16, _hoisted_1$1)) : createCommentVNode(\"\", true), $options.isItemVisible(processedItem) && $options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $options.getItemId(processedItem),\n \"class\": [_ctx.cx('separator'), $options.getItemProp(processedItem, 'class')],\n style: $options.getItemProp(processedItem, 'style'),\n role: \"separator\",\n ref_for: true\n }, _ctx.ptm('separator')), null, 16, _hoisted_5)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16);\n}\n\nscript$1.render = render$1;\n\nvar script = {\n name: 'Menubar',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['focus', 'blur'],\n matchMediaListener: null,\n data: function data() {\n return {\n id: this.$attrs.id,\n mobileActive: false,\n focused: false,\n focusedItemInfo: {\n index: -1,\n level: 0,\n parentKey: ''\n },\n activeItemPath: [],\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItemPath: function activeItemPath(newPath) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n outsideClickListener: null,\n container: null,\n menubar: null,\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n this.bindMatchMediaListener();\n },\n beforeUnmount: function beforeUnmount() {\n this.mobileActive = false;\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n if (this.container) {\n ZIndex.clear(this.container);\n }\n this.container = null;\n },\n methods: {\n getItemProp: function getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel: function getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled: function isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible: function isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup: function isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator: function isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel: function getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup: function isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle: function toggle(event) {\n var _this = this;\n if (this.mobileActive) {\n this.mobileActive = false;\n ZIndex.clear(this.menubar);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndex.set('menu', this.menubar, this.$primevue.config.zIndex.menu);\n setTimeout(function () {\n _this.show();\n }, 1);\n }\n this.bindOutsideClickListener();\n event.preventDefault();\n },\n show: function show() {\n focus(this.menubar);\n },\n hide: function hide(event, isFocus) {\n var _this2 = this;\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(function () {\n focus(_this2.$refs.menubutton);\n }, 0);\n }\n this.activeItemPath = [];\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n isFocus && focus(this.menubar);\n this.dirty = false;\n },\n onFocus: function onFocus(event) {\n this.focused = true;\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : {\n index: this.findFirstFocusedItemIndex(),\n level: 0,\n parentKey: ''\n };\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n var metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'Space':\n this.onSpaceKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n break;\n }\n },\n onItemChange: function onItemChange(event) {\n var processedItem = event.processedItem,\n isFocus = event.isFocus;\n if (isEmpty(processedItem)) return;\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey,\n items = processedItem.items;\n var grouped = isNotEmpty(items);\n var activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== parentKey && p.parentKey !== key;\n });\n grouped && activeItemPath.push(processedItem);\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.activeItemPath = activeItemPath;\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n },\n onItemClick: function onItemClick(event) {\n var originalEvent = event.originalEvent,\n processedItem = event.processedItem;\n var grouped = this.isProccessedItemGroup(processedItem);\n var root = isEmpty(processedItem.parent);\n var selected = this.isSelected(processedItem);\n if (selected) {\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey;\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return key !== p.key && key.startsWith(p.key);\n });\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.dirty = !root;\n focus(this.menubar);\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n var rootProcessedItem = root ? processedItem : this.activeItemPath.find(function (p) {\n return p.parentKey === '';\n });\n this.hide(originalEvent);\n this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);\n this.mobileActive = false;\n focus(this.menubar);\n }\n }\n },\n onItemMouseEnter: function onItemMouseEnter(event) {\n if (this.dirty) {\n this.onItemChange(event);\n }\n },\n onItemMouseMove: function onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n menuButtonClick: function menuButtonClick(event) {\n this.toggle(event);\n },\n menuButtonKeydown: function menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n },\n onArrowDownKey: function onArrowDownKey(event) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var root = processedItem ? isEmpty(processedItem.parent) : null;\n if (root) {\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n this.onArrowRightKey(event);\n }\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n }\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n var _this3 = this;\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var root = isEmpty(processedItem.parent);\n if (root) {\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n var itemIndex = this.findLastItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n }\n } else {\n var parentItem = this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n });\n if (this.focusedItemInfo.index === 0) {\n this.focusedItemInfo = {\n index: -1,\n parentKey: parentItem ? parentItem.parentKey : ''\n };\n this.searchValue = '';\n this.onArrowLeftKey(event);\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== _this3.focusedItemInfo.parentKey;\n });\n } else {\n var _itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n this.changeFocusedItemIndex(event, _itemIndex);\n }\n }\n event.preventDefault();\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var _this4 = this;\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var parentItem = processedItem ? this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n }) : null;\n if (parentItem) {\n this.onItemChange({\n originalEvent: event,\n processedItem: parentItem\n });\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== _this4.focusedItemInfo.parentKey;\n });\n event.preventDefault();\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowRightKey: function onArrowRightKey(event) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var parentItem = processedItem ? this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n }) : null;\n if (parentItem) {\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n this.onArrowDownKey(event);\n }\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onHomeKey: function onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(\"\".concat(this.focusedItemId), \"\\\"]\"));\n var anchorElement = element && findSingle(element, 'a[data-pc-section=\"itemlink\"]');\n anchorElement ? anchorElement.click() : element && element.click();\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey: function onEscapeKey(event) {\n if (this.focusedItemInfo.level !== 0) {\n var _focusedItemInfo = this.focusedItemInfo;\n this.hide(event, false);\n this.focusedItemInfo = {\n index: Number(_focusedItemInfo.parentKey.split('_')[0]),\n level: 0,\n parentKey: ''\n };\n }\n event.preventDefault();\n },\n onTabKey: function onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.hide();\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this5 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n var isOutsideContainer = _this5.container && !_this5.container.contains(event.target);\n var isOutsideTarget = !(_this5.target && (_this5.target === event.target || _this5.target.contains(event.target)));\n if (isOutsideContainer && isOutsideTarget) {\n _this5.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this6 = this;\n if (!this.resizeListener) {\n this.resizeListener = function (event) {\n if (!isTouchDevice()) {\n _this6.hide(event, true);\n }\n _this6.mobileActive = false;\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener: function bindMatchMediaListener() {\n var _this7 = this;\n if (!this.matchMediaListener) {\n var query = matchMedia(\"(max-width: \".concat(this.breakpoint, \")\"));\n this.query = query;\n this.queryMatches = query.matches;\n this.matchMediaListener = function () {\n _this7.queryMatches = query.matches;\n _this7.mobileActive = false;\n };\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener: function unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched: function isItemMatched(processedItem) {\n var _this$getProccessedIt;\n return this.isValidItem(processedItem) && ((_this$getProccessedIt = this.getProccessedItemLabel(processedItem)) === null || _this$getProccessedIt === void 0 ? void 0 : _this$getProccessedIt.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase()));\n },\n isValidItem: function isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem: function isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected: function isSelected(processedItem) {\n return this.activeItemPath.some(function (p) {\n return p.key === processedItem.key;\n });\n },\n findFirstItemIndex: function findFirstItemIndex() {\n var _this8 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this8.isValidItem(processedItem);\n });\n },\n findLastItemIndex: function findLastItemIndex() {\n var _this9 = this;\n return findLastIndex(this.visibleItems, function (processedItem) {\n return _this9.isValidItem(processedItem);\n });\n },\n findNextItemIndex: function findNextItemIndex(index) {\n var _this10 = this;\n var matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex(function (processedItem) {\n return _this10.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex: function findPrevItemIndex(index) {\n var _this11 = this;\n var matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), function (processedItem) {\n return _this11.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex: function findSelectedItemIndex() {\n var _this12 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this12.isValidSelectedItem(processedItem);\n });\n },\n findFirstFocusedItemIndex: function findFirstFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex: function findLastFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems: function searchItems(event, _char) {\n var _this13 = this;\n this.searchValue = (this.searchValue || '') + _char;\n var itemIndex = -1;\n var matched = false;\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this13.isItemMatched(processedItem);\n });\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this13.isItemMatched(processedItem);\n }) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex(function (processedItem) {\n return _this13.isItemMatched(processedItem);\n });\n }\n if (itemIndex !== -1) {\n matched = true;\n }\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(function () {\n _this13.searchValue = '';\n _this13.searchTimeout = null;\n }, 500);\n return matched;\n },\n changeFocusedItemIndex: function changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView: function scrollInView() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n var id = index !== -1 ? \"\".concat(this.id, \"_\").concat(index) : this.focusedItemId;\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n },\n createProcessedItems: function createProcessedItems(items) {\n var _this14 = this;\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var processedItems = [];\n items && items.forEach(function (item, index) {\n var key = (parentKey !== '' ? parentKey + '_' : '') + index;\n var newItem = {\n item: item,\n index: index,\n level: level,\n key: key,\n parent: parent,\n parentKey: parentKey\n };\n newItem['items'] = _this14.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n return processedItems;\n },\n containerRef: function containerRef(el) {\n this.container = el;\n },\n menubarRef: function menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems: function processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems: function visibleItems() {\n var _this15 = this;\n var processedItem = this.activeItemPath.find(function (p) {\n return p.key === _this15.focusedItemInfo.parentKey;\n });\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemId: function focusedItemId() {\n return this.focusedItemInfo.index !== -1 ? \"\".concat(this.id).concat(isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : '', \"_\").concat(this.focusedItemInfo.index) : null;\n }\n },\n components: {\n MenubarSub: script$1,\n BarsIcon: BarsIcon\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"aria-haspopup\", \"aria-expanded\", \"aria-controls\", \"aria-label\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_BarsIcon = resolveComponent(\"BarsIcon\");\n var _component_MenubarSub = resolveComponent(\"MenubarSub\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: $options.containerRef,\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [_ctx.$slots.start ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('start')\n }, _ctx.ptm('start')), [renderSlot(_ctx.$slots, \"start\")], 16)) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, _ctx.$slots.button ? 'button' : 'menubutton', {\n id: $data.id,\n \"class\": normalizeClass(_ctx.cx('button')),\n toggleCallback: function toggleCallback(event) {\n return $options.menuButtonClick(event);\n }\n }, function () {\n var _ctx$$primevue$config;\n return [_ctx.model && _ctx.model.length > 0 ? (openBlock(), createElementBlock(\"a\", mergeProps({\n key: 0,\n ref: \"menubutton\",\n role: \"button\",\n tabindex: \"0\",\n \"class\": _ctx.cx('button'),\n \"aria-haspopup\": _ctx.model.length && _ctx.model.length > 0 ? true : false,\n \"aria-expanded\": $data.mobileActive,\n \"aria-controls\": $data.id,\n \"aria-label\": (_ctx$$primevue$config = _ctx.$primevue.config.locale.aria) === null || _ctx$$primevue$config === void 0 ? void 0 : _ctx$$primevue$config.navigation,\n onClick: _cache[0] || (_cache[0] = function ($event) {\n return $options.menuButtonClick($event);\n }),\n onKeydown: _cache[1] || (_cache[1] = function ($event) {\n return $options.menuButtonKeydown($event);\n })\n }, _objectSpread(_objectSpread({}, _ctx.buttonProps), _ctx.ptm('button'))), [renderSlot(_ctx.$slots, _ctx.$slots.buttonicon ? 'buttonicon' : 'menubuttonicon', {}, function () {\n return [createVNode(_component_BarsIcon, normalizeProps(guardReactiveProps(_ctx.ptm('buttonicon'))), null, 16)];\n })], 16, _hoisted_1)) : createCommentVNode(\"\", true)];\n }), createVNode(_component_MenubarSub, {\n ref: $options.menubarRef,\n id: $data.id + '_list',\n role: \"menubar\",\n items: $options.processedItems,\n templates: _ctx.$slots,\n root: true,\n mobileActive: $data.mobileActive,\n tabindex: \"0\",\n \"aria-activedescendant\": $data.focused ? $options.focusedItemId : undefined,\n menuId: $data.id,\n focusedItemId: $data.focused ? $options.focusedItemId : undefined,\n activeItemPath: $data.activeItemPath,\n level: 0,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onFocus: $options.onFocus,\n onBlur: $options.onBlur,\n onKeydown: $options.onKeyDown,\n onItemClick: $options.onItemClick,\n onItemMouseenter: $options.onItemMouseEnter,\n onItemMousemove: $options.onItemMouseMove\n }, null, 8, [\"id\", \"items\", \"templates\", \"mobileActive\", \"aria-activedescendant\", \"menuId\", \"focusedItemId\", \"activeItemPath\", \"aria-labelledby\", \"aria-label\", \"pt\", \"unstyled\", \"onFocus\", \"onBlur\", \"onKeydown\", \"onItemClick\", \"onItemMouseenter\", \"onItemMousemove\"]), _ctx.$slots.end ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('end')\n }, _ctx.ptm('end')), [renderSlot(_ctx.$slots, \"end\")], 16)) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-panel {\\n border: 1px solid \".concat(dt('panel.border.color'), \";\\n border-radius: \").concat(dt('panel.border.radius'), \";\\n background: \").concat(dt('panel.background'), \";\\n color: \").concat(dt('panel.color'), \";\\n}\\n\\n.p-panel-header {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n padding: \").concat(dt('panel.header.padding'), \";\\n background: \").concat(dt('panel.header.background'), \";\\n color: \").concat(dt('panel.header.color'), \";\\n border-style: solid;\\n border-width: \").concat(dt('panel.header.border.width'), \";\\n border-color: \").concat(dt('panel.header.border.color'), \";\\n border-radius: \").concat(dt('panel.header.border.radius'), \";\\n}\\n\\n.p-panel-toggleable .p-panel-header {\\n padding: \").concat(dt('panel.toggleable.header.padding'), \";\\n}\\n\\n.p-panel-title {\\n line-height: 1;\\n font-weight: \").concat(dt('panel.title.font.weight'), \";\\n}\\n\\n.p-panel-content {\\n padding: \").concat(dt('panel.content.padding'), \";\\n}\\n\\n.p-panel-footer {\\n padding: \").concat(dt('panel.footer.padding'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-panel p-component', {\n 'p-panel-toggleable': props.toggleable\n }];\n },\n header: 'p-panel-header',\n title: 'p-panel-title',\n headerActions: 'p-panel-header-actions',\n pcToggleButton: 'p-panel-toggle-button',\n contentContainer: 'p-panel-content-container',\n content: 'p-panel-content',\n footer: 'p-panel-footer'\n};\nvar PanelStyle = BaseStyle.extend({\n name: 'panel',\n theme: theme,\n classes: classes\n});\n\nexport { PanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport MinusIcon from '@primevue/icons/minus';\nimport PlusIcon from '@primevue/icons/plus';\nimport Button from 'primevue/button';\nimport Ripple from 'primevue/ripple';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport PanelStyle from 'primevue/panel/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, createElementVNode, renderSlot, normalizeClass, toDisplayString, createCommentVNode, createBlock, withCtx, resolveDynamicComponent, createVNode, Transition, withDirectives, vShow } from 'vue';\n\nvar script$1 = {\n name: 'BasePanel',\n \"extends\": BaseComponent,\n props: {\n header: String,\n toggleable: Boolean,\n collapsed: Boolean,\n toggleButtonProps: {\n type: Object,\n \"default\": function _default() {\n return {\n severity: 'secondary',\n text: true,\n rounded: true\n };\n }\n }\n },\n style: PanelStyle,\n provide: function provide() {\n return {\n $pcPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Panel',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:collapsed', 'toggle'],\n data: function data() {\n return {\n id: this.$attrs.id,\n d_collapsed: this.collapsed\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n collapsed: function collapsed(newValue) {\n this.d_collapsed = newValue;\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n },\n methods: {\n toggle: function toggle(event) {\n this.d_collapsed = !this.d_collapsed;\n this.$emit('update:collapsed', this.d_collapsed);\n this.$emit('toggle', {\n originalEvent: event,\n value: this.d_collapsed\n });\n },\n onKeyDown: function onKeyDown(event) {\n if (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') {\n this.toggle(event);\n event.preventDefault();\n }\n }\n },\n computed: {\n buttonAriaLabel: function buttonAriaLabel() {\n return this.toggleButtonProps && this.toggleButtonProps.ariaLabel ? this.toggleButtonProps.ariaLabel : this.header;\n }\n },\n components: {\n PlusIcon: PlusIcon,\n MinusIcon: MinusIcon,\n Button: Button\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1 = [\"id\"];\nvar _hoisted_2 = [\"id\", \"aria-labelledby\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_Button = resolveComponent(\"Button\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('header')\n }, _ctx.ptm('header')), [renderSlot(_ctx.$slots, \"header\", {\n id: $data.id + '_header',\n \"class\": normalizeClass(_ctx.cx('title'))\n }, function () {\n return [_ctx.header ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n id: $data.id + '_header',\n \"class\": _ctx.cx('title')\n }, _ctx.ptm('title')), toDisplayString(_ctx.header), 17, _hoisted_1)) : createCommentVNode(\"\", true)];\n }), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('headerActions')\n }, _ctx.ptm('headerActions')), [renderSlot(_ctx.$slots, \"icons\"), _ctx.toggleable ? (openBlock(), createBlock(_component_Button, mergeProps({\n key: 0,\n id: $data.id + '_header',\n \"class\": _ctx.cx('pcToggleButton'),\n \"aria-label\": $options.buttonAriaLabel,\n \"aria-controls\": $data.id + '_content',\n \"aria-expanded\": !$data.d_collapsed,\n unstyled: _ctx.unstyled,\n onClick: $options.toggle,\n onKeydown: $options.onKeyDown\n }, _ctx.toggleButtonProps, {\n pt: _ctx.ptm('pcToggleButton')\n }), {\n icon: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, _ctx.$slots.toggleicon ? 'toggleicon' : 'togglericon', {\n collapsed: $data.d_collapsed\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent($data.d_collapsed ? 'PlusIcon' : 'MinusIcon'), mergeProps({\n \"class\": slotProps[\"class\"]\n }, _ctx.ptm('pcToggleButton')['icon']), null, 16, [\"class\"]))];\n })];\n }),\n _: 3\n }, 16, [\"id\", \"class\", \"aria-label\", \"aria-controls\", \"aria-expanded\", \"unstyled\", \"onClick\", \"onKeydown\", \"pt\"])) : createCommentVNode(\"\", true)], 16)], 16), createVNode(Transition, mergeProps({\n name: \"p-toggleable-content\"\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [withDirectives(createElementVNode(\"div\", mergeProps({\n id: $data.id + '_content',\n \"class\": _ctx.cx('contentContainer'),\n role: \"region\",\n \"aria-labelledby\": $data.id + '_header'\n }, _ctx.ptm('contentContainer')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('content')\n }, _ctx.ptm('content')), [renderSlot(_ctx.$slots, \"default\")], 16), _ctx.$slots.footer ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('footer')\n }, _ctx.ptm('footer')), [renderSlot(_ctx.$slots, \"footer\")], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_2), [[vShow, !$data.d_collapsed]])];\n }),\n _: 3\n }, 16)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tieredmenu {\\n background: \".concat(dt('tieredmenu.background'), \";\\n color: \").concat(dt('tieredmenu.color'), \";\\n border: 1px solid \").concat(dt('tieredmenu.border.color'), \";\\n border-radius: \").concat(dt('tieredmenu.border.radius'), \";\\n min-width: 12.5rem;\\n}\\n\\n.p-tieredmenu-root-list,\\n.p-tieredmenu-submenu {\\n margin: 0;\\n padding: \").concat(dt('tieredmenu.list.padding'), \";\\n list-style: none;\\n outline: 0 none;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('tieredmenu.list.gap'), \";\\n}\\n\\n.p-tieredmenu-submenu {\\n position: absolute;\\n min-width: 100%;\\n z-index: 1;\\n background: \").concat(dt('tieredmenu.background'), \";\\n color: \").concat(dt('tieredmenu.color'), \";\\n border: 1px solid \").concat(dt('tieredmenu.border.color'), \";\\n border-radius: \").concat(dt('tieredmenu.border.radius'), \";\\n box-shadow: \").concat(dt('tieredmenu.shadow'), \";\\n}\\n\\n.p-tieredmenu-item {\\n position: relative;\\n}\\n\\n.p-tieredmenu-item-content {\\n transition: background \").concat(dt('tieredmenu.transition.duration'), \", color \").concat(dt('tieredmenu.transition.duration'), \";\\n border-radius: \").concat(dt('tieredmenu.item.border.radius'), \";\\n color: \").concat(dt('tieredmenu.item.color'), \";\\n}\\n\\n.p-tieredmenu-item-link {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n text-decoration: none;\\n overflow: hidden;\\n position: relative;\\n color: inherit;\\n padding: \").concat(dt('tieredmenu.item.padding'), \";\\n gap: \").concat(dt('tieredmenu.item.gap'), \";\\n user-select: none;\\n outline: 0 none;\\n}\\n\\n.p-tieredmenu-item-label {\\n line-height: 1;\\n}\\n\\n.p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.color'), \";\\n}\\n\\n.p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.color'), \";\\n margin-left: auto;\\n font-size: \").concat(dt('tieredmenu.submenu.icon.size'), \";\\n width: \").concat(dt('tieredmenu.submenu.icon.size'), \";\\n height: \").concat(dt('tieredmenu.submenu.icon.size'), \";\\n}\\n\\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content {\\n color: \").concat(dt('tieredmenu.item.focus.color'), \";\\n background: \").concat(dt('tieredmenu.item.focus.background'), \";\\n}\\n\\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content .p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content .p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover {\\n color: \").concat(dt('tieredmenu.item.focus.color'), \";\\n background: \").concat(dt('tieredmenu.item.focus.background'), \";\\n}\\n\\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover .p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover .p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.focus.color'), \";\\n}\\n\\n.p-tieredmenu-item-active > .p-tieredmenu-item-content {\\n color: \").concat(dt('tieredmenu.item.active.color'), \";\\n background: \").concat(dt('tieredmenu.item.active.background'), \";\\n}\\n\\n.p-tieredmenu-item-active > .p-tieredmenu-item-content .p-tieredmenu-item-icon {\\n color: \").concat(dt('tieredmenu.item.icon.active.color'), \";\\n}\\n\\n.p-tieredmenu-item-active > .p-tieredmenu-item-content .p-tieredmenu-submenu-icon {\\n color: \").concat(dt('tieredmenu.submenu.icon.active.color'), \";\\n}\\n\\n.p-tieredmenu-separator {\\n border-top: 1px solid \").concat(dt('tieredmenu.separator.border.color'), \";\\n}\\n\\n.p-tieredmenu-overlay {\\n box-shadow: \").concat(dt('tieredmenu.shadow'), \";\\n}\\n\\n.p-tieredmenu-enter-from,\\n.p-tieredmenu-leave-active {\\n opacity: 0;\\n}\\n\\n.p-tieredmenu-enter-active {\\n transition: opacity 250ms;\\n}\\n\");\n};\nvar inlineStyles = {\n submenu: function submenu(_ref2) {\n var instance = _ref2.instance,\n processedItem = _ref2.processedItem;\n return {\n display: instance.isItemActive(processedItem) ? 'flex' : 'none'\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n _ref3.instance;\n var props = _ref3.props;\n return ['p-tieredmenu p-component', {\n 'p-tieredmenu-overlay': props.popup\n }];\n },\n start: 'p-tieredmenu-start',\n rootList: 'p-tieredmenu-root-list',\n item: function item(_ref4) {\n var instance = _ref4.instance,\n processedItem = _ref4.processedItem;\n return ['p-tieredmenu-item', {\n 'p-tieredmenu-item-active': instance.isItemActive(processedItem),\n 'p-focus': instance.isItemFocused(processedItem),\n 'p-disabled': instance.isItemDisabled(processedItem)\n }];\n },\n itemContent: 'p-tieredmenu-item-content',\n itemLink: 'p-tieredmenu-item-link',\n itemIcon: 'p-tieredmenu-item-icon',\n itemLabel: 'p-tieredmenu-item-label',\n submenuIcon: 'p-tieredmenu-submenu-icon',\n submenu: 'p-tieredmenu-submenu',\n separator: 'p-tieredmenu-separator',\n end: 'p-tieredmenu-end'\n};\nvar TieredMenuStyle = BaseStyle.extend({\n name: 'tieredmenu',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { TieredMenuStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId, ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport { nestedPosition, focus, findSingle, addStyle, absolutePosition, getOuterWidth, isTouchDevice } from '@primeuix/utils/dom';\nimport { resolve, isNotEmpty, isPrintableCharacter, isEmpty, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TieredMenuStyle from 'primevue/tieredmenu/style';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveComponent, resolveDirective, openBlock, createBlock, Transition, withCtx, createElementBlock, Fragment, renderList, createElementVNode, withDirectives, resolveDynamicComponent, normalizeClass, createCommentVNode, toDisplayString, normalizeStyle, createVNode, renderSlot } from 'vue';\n\nvar script$2 = {\n name: 'BaseTieredMenu',\n \"extends\": BaseComponent,\n props: {\n popup: {\n type: Boolean,\n \"default\": false\n },\n model: {\n type: Array,\n \"default\": null\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: TieredMenuStyle,\n provide: function provide() {\n return {\n $pcTieredMenu: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$1 = {\n name: 'TieredMenuSub',\n hostName: 'TieredMenu',\n \"extends\": BaseComponent,\n emits: ['item-click', 'item-mouseenter', 'item-mousemove'],\n container: null,\n props: {\n menuId: {\n type: String,\n \"default\": null\n },\n focusedItemId: {\n type: String,\n \"default\": null\n },\n items: {\n type: Array,\n \"default\": null\n },\n visible: {\n type: Boolean,\n \"default\": false\n },\n level: {\n type: Number,\n \"default\": 0\n },\n templates: {\n type: Object,\n \"default\": null\n },\n activeItemPath: {\n type: Object,\n \"default\": null\n },\n tabindex: {\n type: Number,\n \"default\": 0\n }\n },\n methods: {\n getItemId: function getItemId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key);\n },\n getItemKey: function getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp: function getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel: function getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId: function getItemLabelId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key, \"_label\");\n },\n getPTOptions: function getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index: index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem)\n }\n });\n },\n isItemActive: function isItemActive(processedItem) {\n return this.activeItemPath.some(function (path) {\n return path.key === processedItem.key;\n });\n },\n isItemVisible: function isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled: function isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused: function isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup: function isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onEnter: function onEnter() {\n nestedPosition(this.container, this.level);\n },\n onItemClick: function onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', {\n originalEvent: event,\n item: processedItem.item\n });\n this.$emit('item-click', {\n originalEvent: event,\n processedItem: processedItem,\n isFocus: true\n });\n },\n onItemMouseEnter: function onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n onItemMouseMove: function onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n getAriaSetSize: function getAriaSetSize() {\n var _this = this;\n return this.items.filter(function (processedItem) {\n return _this.isItemVisible(processedItem) && !_this.getItemProp(processedItem, 'separator');\n }).length;\n },\n getAriaPosInset: function getAriaPosInset(index) {\n var _this2 = this;\n return index - this.items.slice(0, index).filter(function (processedItem) {\n return _this2.isItemVisible(processedItem) && _this2.getItemProp(processedItem, 'separator');\n }).length + 1;\n },\n getMenuItemProps: function getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps({\n \"class\": this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n }, this.getPTOptions(processedItem, index, 'itemLink')),\n icon: mergeProps({\n \"class\": [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n }, this.getPTOptions(processedItem, index, 'itemIcon')),\n label: mergeProps({\n \"class\": this.cx('itemLabel')\n }, this.getPTOptions(processedItem, index, 'itemLabel')),\n submenuicon: mergeProps({\n \"class\": this.cx('submenuIcon')\n }, this.getPTOptions(processedItem, index, 'submenuIcon'))\n };\n },\n containerRef: function containerRef(el) {\n this.container = el;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1$1 = [\"tabindex\"];\nvar _hoisted_2 = [\"id\", \"aria-label\", \"aria-disabled\", \"aria-expanded\", \"aria-haspopup\", \"aria-level\", \"aria-setsize\", \"aria-posinset\", \"data-p-active\", \"data-p-focused\", \"data-p-disabled\"];\nvar _hoisted_3 = [\"onClick\", \"onMouseenter\", \"onMousemove\"];\nvar _hoisted_4 = [\"href\", \"target\"];\nvar _hoisted_5 = [\"id\"];\nvar _hoisted_6 = [\"id\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_AngleRightIcon = resolveComponent(\"AngleRightIcon\");\n var _component_TieredMenuSub = resolveComponent(\"TieredMenuSub\", true);\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createBlock(Transition, mergeProps({\n name: \"p-tieredmenu\",\n onEnter: $options.onEnter\n }, _ctx.ptm('menu.transition')), {\n \"default\": withCtx(function () {\n return [($props.level === 0 ? true : $props.visible) ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 0,\n ref: $options.containerRef,\n \"class\": $props.level === 0 ? _ctx.cx('rootList') : _ctx.cx('submenu'),\n tabindex: $props.tabindex\n }, $props.level === 0 ? _ctx.ptm('rootList') : _ctx.ptm('submenu')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.items, function (processedItem, index) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getItemKey(processedItem)\n }, [$options.isItemVisible(processedItem) && !$options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('item', {\n processedItem: processedItem\n }), $options.getItemProp(processedItem, 'class')],\n role: \"menuitem\",\n \"aria-label\": $options.getItemLabel(processedItem),\n \"aria-disabled\": $options.isItemDisabled(processedItem) || undefined,\n \"aria-expanded\": $options.isItemGroup(processedItem) ? $options.isItemActive(processedItem) : undefined,\n \"aria-haspopup\": $options.isItemGroup(processedItem) && !$options.getItemProp(processedItem, 'to') ? 'menu' : undefined,\n \"aria-level\": $props.level + 1,\n \"aria-setsize\": $options.getAriaSetSize(),\n \"aria-posinset\": $options.getAriaPosInset(index),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'item'), {\n \"data-p-active\": $options.isItemActive(processedItem),\n \"data-p-focused\": $options.isItemFocused(processedItem),\n \"data-p-disabled\": $options.isItemDisabled(processedItem)\n }), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('itemContent'),\n onClick: function onClick($event) {\n return $options.onItemClick($event, processedItem);\n },\n onMouseenter: function onMouseenter($event) {\n return $options.onItemMouseEnter($event, processedItem);\n },\n onMousemove: function onMousemove($event) {\n return $options.onItemMouseMove($event, processedItem);\n },\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemContent')), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock(\"a\", mergeProps({\n key: 0,\n href: $options.getItemProp(processedItem, 'url'),\n \"class\": _ctx.cx('itemLink'),\n target: $options.getItemProp(processedItem, 'target'),\n tabindex: \"-1\",\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLink')), [$props.templates.itemicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.itemicon), {\n key: 0,\n item: processedItem.item,\n \"class\": normalizeClass(_ctx.cx('itemIcon'))\n }, null, 8, [\"item\", \"class\"])) : $options.getItemProp(processedItem, 'icon') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('itemIcon'), $options.getItemProp(processedItem, 'icon')],\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemIcon')), null, 16)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n id: $options.getItemLabelId(processedItem),\n \"class\": _ctx.cx('itemLabel'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'itemLabel')), toDisplayString($options.getItemLabel(processedItem)), 17, _hoisted_5), $options.getItemProp(processedItem, 'items') ? (openBlock(), createElementBlock(Fragment, {\n key: 2\n }, [$props.templates.submenuicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.submenuicon), mergeProps({\n key: 0,\n \"class\": _ctx.cx('submenuIcon'),\n active: $options.isItemActive(processedItem),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'submenuIcon')), null, 16, [\"class\", \"active\"])) : (openBlock(), createBlock(_component_AngleRightIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('submenuIcon'),\n ref_for: true\n }, $options.getPTOptions(processedItem, index, 'submenuIcon')), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true)], 16, _hoisted_4)), [[_directive_ripple]]) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), {\n key: 1,\n item: processedItem.item,\n hasSubmenu: $options.getItemProp(processedItem, 'items'),\n label: $options.getItemLabel(processedItem),\n props: $options.getMenuItemProps(processedItem, index)\n }, null, 8, [\"item\", \"hasSubmenu\", \"label\", \"props\"]))], 16, _hoisted_3), $options.isItemVisible(processedItem) && $options.isItemGroup(processedItem) ? (openBlock(), createBlock(_component_TieredMenuSub, {\n key: 0,\n id: $options.getItemId(processedItem) + '_list',\n style: normalizeStyle(_ctx.sx('submenu', true, {\n processedItem: processedItem\n })),\n \"aria-labelledby\": $options.getItemLabelId(processedItem),\n role: \"menu\",\n menuId: $props.menuId,\n focusedItemId: $props.focusedItemId,\n items: processedItem.items,\n templates: $props.templates,\n activeItemPath: $props.activeItemPath,\n level: $props.level + 1,\n visible: $options.isItemActive(processedItem) && $options.isItemGroup(processedItem),\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onItemClick: _cache[0] || (_cache[0] = function ($event) {\n return _ctx.$emit('item-click', $event);\n }),\n onItemMouseenter: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('item-mouseenter', $event);\n }),\n onItemMousemove: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('item-mousemove', $event);\n })\n }, null, 8, [\"id\", \"style\", \"aria-labelledby\", \"menuId\", \"focusedItemId\", \"items\", \"templates\", \"activeItemPath\", \"level\", \"visible\", \"pt\", \"unstyled\"])) : createCommentVNode(\"\", true)], 16, _hoisted_2)) : createCommentVNode(\"\", true), $options.isItemVisible(processedItem) && $options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('separator'), $options.getItemProp(processedItem, 'class')],\n role: \"separator\",\n ref_for: true\n }, _ctx.ptm('separator')), null, 16, _hoisted_6)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16, _hoisted_1$1)) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 16, [\"onEnter\"]);\n}\n\nscript$1.render = render$1;\n\nvar script = {\n name: 'TieredMenu',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['focus', 'blur', 'before-show', 'before-hide', 'hide', 'show'],\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n target: null,\n container: null,\n menubar: null,\n searchTimeout: null,\n searchValue: null,\n data: function data() {\n return {\n id: this.$attrs.id,\n focused: false,\n focusedItemInfo: {\n index: -1,\n level: 0,\n parentKey: ''\n },\n activeItemPath: [],\n visible: !this.popup,\n submenuVisible: false,\n dirty: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItemPath: function activeItemPath(newPath) {\n if (!this.popup) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n this.target = null;\n this.container = null;\n },\n methods: {\n getItemProp: function getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel: function getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled: function isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible: function isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup: function isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator: function isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel: function getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup: function isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle: function toggle(event) {\n this.visible ? this.hide(event, true) : this.show(event);\n },\n show: function show(event, isFocus) {\n if (this.popup) {\n this.$emit('before-show');\n this.visible = true;\n this.target = this.target || event.currentTarget;\n this.relatedTarget = event.relatedTarget || null;\n }\n isFocus && focus(this.menubar);\n },\n hide: function hide(event, isFocus) {\n if (this.popup) {\n this.$emit('before-hide');\n this.visible = false;\n }\n this.activeItemPath = [];\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n isFocus && focus(this.relatedTarget || this.target || this.menubar);\n this.dirty = false;\n },\n onFocus: function onFocus(event) {\n this.focused = true;\n if (!this.popup) {\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : {\n index: this.findFirstFocusedItemIndex(),\n level: 0,\n parentKey: ''\n };\n }\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n var metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'Space':\n this.onSpaceKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n break;\n }\n },\n onItemChange: function onItemChange(event) {\n var processedItem = event.processedItem,\n isFocus = event.isFocus;\n if (isEmpty(processedItem)) return;\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey,\n items = processedItem.items;\n var grouped = isNotEmpty(items);\n var activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== parentKey && p.parentKey !== key;\n });\n if (grouped) {\n activeItemPath.push(processedItem);\n this.submenuVisible = true;\n }\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.activeItemPath = activeItemPath;\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n },\n onOverlayClick: function onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n },\n onItemClick: function onItemClick(event) {\n var originalEvent = event.originalEvent,\n processedItem = event.processedItem;\n var grouped = this.isProccessedItemGroup(processedItem);\n var root = isEmpty(processedItem.parent);\n var selected = this.isSelected(processedItem);\n if (selected) {\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey;\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return key !== p.key && key.startsWith(p.key);\n });\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.dirty = !root;\n focus(this.menubar);\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n var rootProcessedItem = root ? processedItem : this.activeItemPath.find(function (p) {\n return p.parentKey === '';\n });\n this.hide(originalEvent);\n this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);\n focus(this.menubar);\n }\n }\n },\n onItemMouseEnter: function onItemMouseEnter(event) {\n if (this.dirty) {\n this.onItemChange(event);\n }\n },\n onItemMouseMove: function onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n onArrowDownKey: function onArrowDownKey(event) {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.popup && this.hide(event, true);\n event.preventDefault();\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var _this = this;\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var parentItem = this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n });\n var root = isEmpty(processedItem.parent);\n if (!root) {\n this.focusedItemInfo = {\n index: -1,\n parentKey: parentItem ? parentItem.parentKey : ''\n };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== _this.focusedItemInfo.parentKey;\n });\n event.preventDefault();\n },\n onArrowRightKey: function onArrowRightKey(event) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n event.preventDefault();\n },\n onHomeKey: function onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(\"\".concat(this.focusedItemId), \"\\\"]\"));\n var anchorElement = element && findSingle(element, '[data-pc-section=\"itemlink\"]');\n anchorElement ? anchorElement.click() : element && element.click();\n if (!this.popup) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n }\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey: function onEscapeKey(event) {\n if (this.popup || this.focusedItemInfo.level !== 0) {\n var _focusedItemInfo = this.focusedItemInfo;\n this.hide(event, false);\n this.focusedItemInfo = {\n index: Number(_focusedItemInfo.parentKey.split('_')[0]),\n level: 0,\n parentKey: ''\n };\n this.popup && focus(this.target);\n }\n event.preventDefault();\n },\n onTabKey: function onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.hide();\n },\n onEnter: function onEnter(el) {\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n addStyle(el, {\n position: 'absolute',\n top: '0',\n left: '0'\n });\n this.alignOverlay();\n focus(this.menubar);\n this.scrollInView();\n },\n onAfterEnter: function onAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.$emit('show');\n },\n onLeave: function onLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.$emit('hide');\n this.container = null;\n this.dirty = false;\n },\n onAfterLeave: function onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay: function alignOverlay() {\n absolutePosition(this.container, this.target);\n var targetWidth = getOuterWidth(this.target);\n if (targetWidth > getOuterWidth(this.container)) {\n this.container.style.minWidth = getOuterWidth(this.target) + 'px';\n }\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this2 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n var isOutsideContainer = _this2.container && !_this2.container.contains(event.target);\n var isOutsideTarget = _this2.popup ? !(_this2.target && (_this2.target === event.target || _this2.target.contains(event.target))) : true;\n if (isOutsideContainer && isOutsideTarget) {\n _this2.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener: function bindScrollListener() {\n var _this3 = this;\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, function (event) {\n _this3.hide(event, true);\n });\n }\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this4 = this;\n if (!this.resizeListener) {\n this.resizeListener = function (event) {\n if (!isTouchDevice()) {\n _this4.hide(event, true);\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n isItemMatched: function isItemMatched(processedItem) {\n var _this$getProccessedIt;\n return this.isValidItem(processedItem) && ((_this$getProccessedIt = this.getProccessedItemLabel(processedItem)) === null || _this$getProccessedIt === void 0 ? void 0 : _this$getProccessedIt.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase()));\n },\n isValidItem: function isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem: function isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected: function isSelected(processedItem) {\n return this.activeItemPath.some(function (p) {\n return p.key === processedItem.key;\n });\n },\n findFirstItemIndex: function findFirstItemIndex() {\n var _this5 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this5.isValidItem(processedItem);\n });\n },\n findLastItemIndex: function findLastItemIndex() {\n var _this6 = this;\n return findLastIndex(this.visibleItems, function (processedItem) {\n return _this6.isValidItem(processedItem);\n });\n },\n findNextItemIndex: function findNextItemIndex(index) {\n var _this7 = this;\n var matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex(function (processedItem) {\n return _this7.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex: function findPrevItemIndex(index) {\n var _this8 = this;\n var matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), function (processedItem) {\n return _this8.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex: function findSelectedItemIndex() {\n var _this9 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this9.isValidSelectedItem(processedItem);\n });\n },\n findFirstFocusedItemIndex: function findFirstFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex: function findLastFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems: function searchItems(event, _char) {\n var _this10 = this;\n this.searchValue = (this.searchValue || '') + _char;\n var itemIndex = -1;\n var matched = false;\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n });\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n }) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n });\n }\n if (itemIndex !== -1) {\n matched = true;\n }\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(function () {\n _this10.searchValue = '';\n _this10.searchTimeout = null;\n }, 500);\n return matched;\n },\n changeFocusedItemIndex: function changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView: function scrollInView() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n var id = index !== -1 ? \"\".concat(this.id, \"_\").concat(index) : this.focusedItemId;\n var element = findSingle(this.menubar, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n },\n createProcessedItems: function createProcessedItems(items) {\n var _this11 = this;\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var processedItems = [];\n items && items.forEach(function (item, index) {\n var key = (parentKey !== '' ? parentKey + '_' : '') + index;\n var newItem = {\n item: item,\n index: index,\n level: level,\n key: key,\n parent: parent,\n parentKey: parentKey\n };\n newItem['items'] = _this11.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n return processedItems;\n },\n containerRef: function containerRef(el) {\n this.container = el;\n },\n menubarRef: function menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems: function processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems: function visibleItems() {\n var _this12 = this;\n var processedItem = this.activeItemPath.find(function (p) {\n return p.key === _this12.focusedItemInfo.parentKey;\n });\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemId: function focusedItemId() {\n return this.focusedItemInfo.index !== -1 ? \"\".concat(this.id).concat(isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : '', \"_\").concat(this.focusedItemInfo.index) : null;\n }\n },\n components: {\n TieredMenuSub: script$1,\n Portal: Portal\n }\n};\n\nvar _hoisted_1 = [\"id\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_TieredMenuSub = resolveComponent(\"TieredMenuSub\");\n var _component_Portal = resolveComponent(\"Portal\");\n return openBlock(), createBlock(_component_Portal, {\n appendTo: _ctx.appendTo,\n disabled: !_ctx.popup\n }, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-connected-overlay\",\n onEnter: $options.onEnter,\n onAfterEnter: $options.onAfterEnter,\n onLeave: $options.onLeave,\n onAfterLeave: $options.onAfterLeave\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [$data.visible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.containerRef,\n id: $data.id,\n \"class\": _ctx.cx('root'),\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onOverlayClick && $options.onOverlayClick.apply($options, arguments);\n })\n }, _ctx.ptmi('root')), [_ctx.$slots.start ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('start')\n }, _ctx.ptm('start')), [renderSlot(_ctx.$slots, \"start\")], 16)) : createCommentVNode(\"\", true), createVNode(_component_TieredMenuSub, {\n ref: $options.menubarRef,\n id: $data.id + '_list',\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n role: \"menubar\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-disabled\": _ctx.disabled || undefined,\n \"aria-orientation\": \"vertical\",\n \"aria-activedescendant\": $data.focused ? $options.focusedItemId : undefined,\n menuId: $data.id,\n focusedItemId: $data.focused ? $options.focusedItemId : undefined,\n items: $options.processedItems,\n templates: _ctx.$slots,\n activeItemPath: $data.activeItemPath,\n level: 0,\n visible: $data.submenuVisible,\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onFocus: $options.onFocus,\n onBlur: $options.onBlur,\n onKeydown: $options.onKeyDown,\n onItemClick: $options.onItemClick,\n onItemMouseenter: $options.onItemMouseEnter,\n onItemMousemove: $options.onItemMouseMove\n }, null, 8, [\"id\", \"tabindex\", \"aria-label\", \"aria-labelledby\", \"aria-disabled\", \"aria-activedescendant\", \"menuId\", \"focusedItemId\", \"items\", \"templates\", \"activeItemPath\", \"visible\", \"pt\", \"unstyled\", \"onFocus\", \"onBlur\", \"onKeydown\", \"onItemClick\", \"onItemMouseenter\", \"onItemMousemove\"]), _ctx.$slots.end ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('end')\n }, _ctx.ptm('end')), [renderSlot(_ctx.$slots, \"end\")], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_1)) : createCommentVNode(\"\", true)];\n }),\n _: 3\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 3\n }, 8, [\"appendTo\", \"disabled\"]);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-splitbutton {\\n display: inline-flex;\\n position: relative;\\n border-radius: \".concat(dt('splitbutton.border.radius'), \";\\n}\\n\\n.p-splitbutton-button {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n border-right: 0 none;\\n}\\n\\n.p-splitbutton-button:focus-visible,\\n.p-splitbutton-dropdown:focus-visible {\\n z-index: 1;\\n}\\n\\n.p-splitbutton-button:not(:disabled):hover,\\n.p-splitbutton-button:not(:disabled):active {\\n border-right: 0 none;\\n}\\n\\n.p-splitbutton-dropdown {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n\\n.p-splitbutton .p-menu {\\n min-width: 100%;\\n}\\n\\n.p-splitbutton-fluid {\\n display: flex;\\n}\\n\\n.p-splitbutton-rounded .p-splitbutton-dropdown {\\n border-top-right-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n}\\n\\n.p-splitbutton-rounded .p-splitbutton-button {\\n border-top-left-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n border-bottom-left-radius: \").concat(dt('splitbutton.rounded.border.radius'), \";\\n}\\n\\n.p-splitbutton-raised {\\n box-shadow: \").concat(dt('splitbutton.raised.shadow'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-splitbutton p-component', {\n 'p-splitbutton-raised': props.raised,\n 'p-splitbutton-rounded': props.rounded,\n 'p-splitbutton-fluid': instance.hasFluid\n }];\n },\n pcButton: 'p-splitbutton-button',\n pcDropdown: 'p-splitbutton-dropdown'\n};\nvar SplitButtonStyle = BaseStyle.extend({\n name: 'splitbutton',\n theme: theme,\n classes: classes\n});\n\nexport { SplitButtonStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { isEmpty } from '@primeuix/utils/object';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport Button from 'primevue/button';\nimport TieredMenu from 'primevue/tieredmenu';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SplitButtonStyle from 'primevue/splitbutton/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, createVNode, createSlots, withCtx, renderSlot, normalizeClass, createElementVNode, createBlock, resolveDynamicComponent } from 'vue';\n\nvar script$1 = {\n name: 'BaseSplitButton',\n \"extends\": BaseComponent,\n props: {\n label: {\n type: String,\n \"default\": null\n },\n icon: {\n type: String,\n \"default\": null\n },\n model: {\n type: Array,\n \"default\": null\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n fluid: {\n type: Boolean,\n \"default\": null\n },\n \"class\": {\n type: null,\n \"default\": null\n },\n style: {\n type: null,\n \"default\": null\n },\n buttonProps: {\n type: null,\n \"default\": null\n },\n menuButtonProps: {\n type: null,\n \"default\": null\n },\n menuButtonIcon: {\n type: String,\n \"default\": undefined\n },\n dropdownIcon: {\n type: String,\n \"default\": undefined\n },\n severity: {\n type: String,\n \"default\": null\n },\n raised: {\n type: Boolean,\n \"default\": false\n },\n rounded: {\n type: Boolean,\n \"default\": false\n },\n text: {\n type: Boolean,\n \"default\": false\n },\n outlined: {\n type: Boolean,\n \"default\": false\n },\n size: {\n type: String,\n \"default\": null\n },\n plain: {\n type: Boolean,\n \"default\": false\n }\n },\n style: SplitButtonStyle,\n provide: function provide() {\n return {\n $pcSplitButton: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'SplitButton',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['click'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n data: function data() {\n return {\n id: this.$attrs.id,\n isExpanded: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n mounted: function mounted() {\n var _this = this;\n this.id = this.id || UniqueComponentId();\n this.$watch('$refs.menu.visible', function (newValue) {\n _this.isExpanded = newValue;\n });\n },\n methods: {\n onDropdownButtonClick: function onDropdownButtonClick(event) {\n if (event) {\n event.preventDefault();\n }\n this.$refs.menu.toggle({\n currentTarget: this.$el,\n relatedTarget: this.$refs.button.$el\n });\n this.isExpanded = this.$refs.menu.visible;\n },\n onDropdownKeydown: function onDropdownKeydown(event) {\n if (event.code === 'ArrowDown' || event.code === 'ArrowUp') {\n this.onDropdownButtonClick();\n event.preventDefault();\n }\n },\n onDefaultButtonClick: function onDefaultButtonClick(event) {\n if (this.isExpanded) {\n this.$refs.menu.hide(event);\n }\n this.$emit('click', event);\n }\n },\n computed: {\n containerClass: function containerClass() {\n return [this.cx('root'), this[\"class\"]];\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n PVSButton: Button,\n PVSMenu: TieredMenu,\n ChevronDownIcon: ChevronDownIcon\n }\n};\n\nvar _hoisted_1 = [\"data-p-severity\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_PVSButton = resolveComponent(\"PVSButton\");\n var _component_PVSMenu = resolveComponent(\"PVSMenu\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": $options.containerClass,\n style: _ctx.style\n }, _ctx.ptmi('root'), {\n \"data-p-severity\": _ctx.severity\n }), [createVNode(_component_PVSButton, mergeProps({\n type: \"button\",\n \"class\": _ctx.cx('pcButton'),\n label: _ctx.label,\n disabled: _ctx.disabled,\n severity: _ctx.severity,\n text: _ctx.text,\n icon: _ctx.icon,\n outlined: _ctx.outlined,\n size: _ctx.size,\n fluid: _ctx.fluid,\n \"aria-label\": _ctx.label,\n onClick: $options.onDefaultButtonClick\n }, _ctx.buttonProps, {\n pt: _ctx.ptm('pcButton'),\n unstyled: _ctx.unstyled\n }), createSlots({\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"default\")];\n }),\n _: 2\n }, [_ctx.$slots.icon ? {\n name: \"icon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"icon\", {\n \"class\": normalizeClass(slotProps[\"class\"])\n }, function () {\n return [createElementVNode(\"span\", mergeProps({\n \"class\": [_ctx.icon, slotProps[\"class\"]]\n }, _ctx.ptm('pcButton')['icon'], {\n \"data-pc-section\": \"buttonicon\"\n }), null, 16)];\n })];\n }),\n key: \"0\"\n } : undefined]), 1040, [\"class\", \"label\", \"disabled\", \"severity\", \"text\", \"icon\", \"outlined\", \"size\", \"fluid\", \"aria-label\", \"onClick\", \"pt\", \"unstyled\"]), createVNode(_component_PVSButton, mergeProps({\n ref: \"button\",\n type: \"button\",\n \"class\": _ctx.cx('pcDropdown'),\n disabled: _ctx.disabled,\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": $data.isExpanded,\n \"aria-controls\": $data.id + '_overlay',\n onClick: $options.onDropdownButtonClick,\n onKeydown: $options.onDropdownKeydown,\n severity: _ctx.severity,\n text: _ctx.text,\n outlined: _ctx.outlined,\n size: _ctx.size,\n unstyled: _ctx.unstyled\n }, _ctx.menuButtonProps, {\n pt: _ctx.ptm('pcDropdown')\n }), {\n icon: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, _ctx.$slots.dropdownicon ? 'dropdownicon' : 'menubuttonicon', {\n \"class\": normalizeClass(slotProps[\"class\"])\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.menuButtonIcon || _ctx.dropdownIcon ? 'span' : 'ChevronDownIcon'), mergeProps({\n \"class\": [_ctx.dropdownIcon || _ctx.menuButtonIcon, slotProps[\"class\"]]\n }, _ctx.ptm('pcDropdown')['icon'], {\n \"data-pc-section\": \"menubuttonicon\"\n }), null, 16, [\"class\"]))];\n })];\n }),\n _: 3\n }, 16, [\"class\", \"disabled\", \"aria-expanded\", \"aria-controls\", \"onClick\", \"onKeydown\", \"severity\", \"text\", \"outlined\", \"size\", \"unstyled\", \"pt\"]), createVNode(_component_PVSMenu, {\n ref: \"menu\",\n id: $data.id + '_overlay',\n model: _ctx.model,\n popup: true,\n autoZIndex: _ctx.autoZIndex,\n baseZIndex: _ctx.baseZIndex,\n appendTo: _ctx.appendTo,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcMenu')\n }, createSlots({\n _: 2\n }, [_ctx.$slots.menuitemicon ? {\n name: \"itemicon\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"menuitemicon\", {\n item: slotProps.item,\n \"class\": normalizeClass(slotProps[\"class\"])\n })];\n }),\n key: \"0\"\n } : undefined, _ctx.$slots.item ? {\n name: \"item\",\n fn: withCtx(function (slotProps) {\n return [renderSlot(_ctx.$slots, \"item\", {\n item: slotProps.item,\n hasSubmenu: slotProps.hasSubmenu,\n label: slotProps.label,\n props: slotProps.props\n })];\n }),\n key: \"1\"\n } : undefined]), 1032, [\"id\", \"model\", \"autoZIndex\", \"baseZIndex\", \"appendTo\", \"unstyled\", \"pt\"])], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import {\n useQueueSettingsStore,\n useQueuePendingTaskCountStore\n} from '@/stores/queueStore'\nimport { app } from '@/scripts/app'\nimport { api } from '@/scripts/api'\n\nexport function setupAutoQueueHandler() {\n const queueCountStore = useQueuePendingTaskCountStore()\n const queueSettingsStore = useQueueSettingsStore()\n\n let graphHasChanged = false\n let internalCount = 0 // Use an internal counter here so it is instantly updated when re-queuing\n api.addEventListener('graphChanged', () => {\n if (queueSettingsStore.mode === 'change') {\n if (internalCount) {\n graphHasChanged = true\n } else {\n graphHasChanged = false\n app.queuePrompt(0, queueSettingsStore.batchCount)\n internalCount++\n }\n }\n })\n\n queueCountStore.$subscribe(\n () => {\n internalCount = queueCountStore.count\n if (!internalCount && !app.lastExecutionError) {\n if (\n queueSettingsStore.mode === 'instant' ||\n (queueSettingsStore.mode === 'change' && graphHasChanged)\n ) {\n graphHasChanged = false\n app.queuePrompt(0, queueSettingsStore.batchCount)\n }\n }\n },\n { detached: true }\n )\n}\n","\n\n\n"],"names":["theme","classes","script$1","Badge","provide","script","render","item","inlineStyles","root","BaseComponent","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","panels","_hoisted_1","_hoisted_2","createElementVNode","data","getPTOptions","_typeof$1","o","mounted","beforeUnmount","option","_hide","InputText","VirtualScroller","Portal","ChevronDownIcon","SpinnerIcon","Chip","_typeof","ownKeys","r","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","onRemove","ref","_sfc_main","AutoComplete","suggestions","search","comfyApp","repeat","widget","script$2","InfoCircleIcon","CheckIcon","ExclamationTriangleIcon","TimesCircleIcon","TimesIcon","render$1","message","getAriaPosInset","AngleRightIcon","AngleDownIcon","_hoisted_1$1","$attrsId","getItemProp","getItemLabel","isItemDisabled","isItemVisible","isItemGroup","show","hide","onFocus","onBlur","onKeyDown","activeItemPath","onItemClick","onItemMouseEnter","onItemMouseMove","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onEnterKey","onEscapeKey","onTabKey","bindOutsideClickListener","unbindOutsideClickListener","bindResizeListener","unbindResizeListener","isSelected","scrollInView","processedItems","BarsIcon","toggle","PlusIcon","MinusIcon","Button","submenu","getItemId","getItemKey","getItemLabelId","isItemActive","isItemFocused","onEnter","getAriaSetSize","getMenuItemProps","containerRef","isItemSeparator","getProccessedItemLabel","isProccessedItemGroup","onItemChange","onOverlayClick","onSpaceKey","onLeave","alignOverlay","bindScrollListener","unbindScrollListener","isItemMatched","isValidItem","isValidSelectedItem","findFirstItemIndex","findLastItemIndex","findNextItemIndex","findPrevItemIndex","findSelectedItemIndex","findFirstFocusedItemIndex","findLastFocusedItemIndex","searchItems","changeFocusedItemIndex","createProcessedItems","menubarRef","visibleItems","focusedItemId","hasFluid","TieredMenu","clamp"],"mappings":";;;;;;;AAwBA,UAAM,eAAe;AAEf,UAAA,YAAY,IAAI,KAAK;AACrB,UAAA,cAAc,IAAI,EAAE;AAC1B,UAAM,aAAa,IAAmB;AAAA,MACpC,UAAU;AAAA,MACV,MAAM;AAAA,MACN,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,UAAU;AAAA,IAAA,CACX;AAED,UAAM,mBAAmB;AACzB,UAAM,cAAc;AACd,UAAA,0BAA0B,IAAI,IAAI;AAElC,UAAA,SAAS,wBAAC,aAAqB;AACnC,UAAI,iBAAiB,qBAAqB,SAAS,KAAA,MAAW,IAAI;AAC/C,yBAAA,kBAAkB,QAAQ,SAAS,KAAK;AACrD,YAAA,MAAM,eAAe,MAAM,IAAI;AAAA,MACrC;AACA,gBAAU,QAAQ;AAClB,uBAAiB,oBAAoB;AACzB,kBAAA,OAAQ,mBAAmB,wBAAwB;AAAA,IAAA,GAPlD;AAUf;AAAA,MACE,MAAM,iBAAiB;AAAA,MACvB,CAAC,WAAW;AACV,YAAI,WAAW,MAAM;AACnB;AAAA,QACF;AACA,oBAAY,QAAQ,OAAO;AAC3B,kBAAU,QAAQ;AACM,gCAAA,QAAQ,YAAY,OAAQ;AACpD,oBAAY,OAAQ,mBAAmB;AAEvC,YAAI,kBAAkB,aAAa;AACjC,gBAAM,QAAQ;AACd,gBAAM,CAAC,GAAG,CAAC,IAAI,MAAM;AACrB,gBAAM,CAAC,GAAG,CAAC,IAAI,MAAM;AAEf,gBAAA,CAAC,MAAM,GAAG,IAAI,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACxC,qBAAA,MAAM,OAAO,GAAG,IAAI;AACpB,qBAAA,MAAM,MAAM,GAAG,GAAG;AAE7B,gBAAM,QAAQ,IAAI,IAAI,OAAO,GAAG;AAChC,gBAAM,SAAS,MAAM,cAAc,IAAI,OAAO,GAAG;AACtC,qBAAA,MAAM,QAAQ,GAAG,KAAK;AACtB,qBAAA,MAAM,SAAS,GAAG,MAAM;AAEnC,gBAAM,WAAW,MAAM,YAAY,IAAI,OAAO,GAAG;AACtC,qBAAA,MAAM,WAAW,GAAG,QAAQ;AAAA,QAAA,WAC9B,kBAAkB,YAAY;AACvC,gBAAM,OAAO;AACb,gBAAM,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY;AAChC,gBAAM,cAAc,KAAK;AACzB,gBAAM,eAAe,UAAU;AAEzB,gBAAA,CAAC,MAAM,GAAG,IAAI,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACxC,qBAAA,MAAM,OAAO,GAAG,IAAI;AACpB,qBAAA,MAAM,MAAM,GAAG,GAAG;AAE7B,gBAAM,QAAQ,cAAc,IAAI,OAAO,GAAG;AAC1C,gBAAM,SAAS,eAAe,IAAI,OAAO,GAAG;AACjC,qBAAA,MAAM,QAAQ,GAAG,KAAK;AACtB,qBAAA,MAAM,SAAS,GAAG,MAAM;AACnC,gBAAM,WAAW,KAAK,IAAI,OAAO,GAAG;AACzB,qBAAA,MAAM,WAAW,GAAG,QAAQ;AAAA,QACzC;AAAA,MACF;AAAA,IAAA;AAGI,UAAA,qBAAqB,wBAAC,UAAgC;AAC1D,UAAI,CAAC,aAAa,IAAI,oCAAoC,GAAG;AAC3D;AAAA,MACF;AAEI,UAAA,MAAM,OAAO,YAAY,sBAAsB;AAC3C,cAAA,QAAqB,MAAM,OAAO;AACxC,cAAM,CAAC,GAAG,CAAC,IAAI,MAAM;AAEf,cAAA,IAAI,MAAM,OAAO;AAEjB,cAAA,YAAY,EAAE,UAAU;AAE1B,YAAA,YAAY,MAAM,aAAa;AACjC;AAAA,QACF;AAEA,yBAAiB,oBAAoB;AAAA,MACvC;AAAA,IAAA,GAlByB;AAqB3B,UAAM,YAA4B;AAAA,MAChC,MAAM;AAAA,MACN,YAAY,MAAkB;AAE5B,cAAM,mBAAmB,KAAK;AAEzB,aAAA,sBAAsB,SAAU,MAAkB,MAAa;AAClE,cAAI,CAAC,aAAa,IAAI,mCAAmC,GAAG;AAC1D;AAAA,UACF;AAEA,2BAAiB,oBAAoB;AAGjC,cAAA,OAAO,qBAAqB,YAAY;AAC1C,6BAAiB,KAAK,MAAM,GAAG,GAAG,IAAI;AAAA,UACxC;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA;AAGF,cAAU,MAAM;AACL,eAAA,iBAAiB,oBAAoB,kBAAkB;AAChE,UAAI,kBAAkB,SAAS;AAAA,IAAA,CAChC;AAED,gBAAY,MAAM;AACP,eAAA,oBAAoB,oBAAoB,kBAAkB;AAAA,IAAA,CACpE;;;;;;;;;;;;;;;;;ACjJD,IAAIA,UAAQ,gCAAS,MAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,+OAA+O,OAAO,GAAG,4BAA4B,GAAG,mDAAmD,EAAE,OAAO,GAAG,4BAA4B,GAAG,QAAQ;AACvY,GAHY;AAIZ,IAAIC,YAAU;AAAA,EACZ,MAAM;AACR;AACA,IAAI,oBAAoB,UAAU,OAAO;AAAA,EACvC,MAAM;AAAA,EACN,OAAOD;AAAAA,EACP,SAASC;AACX,CAAC;ACTD,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWC;AAAAA,EACX,OAAO;AAAA,EACP,SAAS,gCAASC,WAAU;AAC1B,WAAO;AAAA,MACL,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIC,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWH;AAAAA,EACX,cAAc;AAAA,EACd,YAAY;AAAA,IACV,OAAOC;AAAAA,EACR;AACH;AAEA,SAASG,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,mBAAmB,iBAAiB,OAAO;AAC/C,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,MAAM;AAAA,EAC3B,GAAK,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,GAAG,YAAY,kBAAkB,WAAW,KAAK,QAAQ;AAAA,IAChH,IAAI,KAAK,IAAI,SAAS;AAAA,EAC1B,CAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE;AAC5B;AAPSA;AASTD,SAAO,SAASC;;;;;;;;;;;;;;;;;;;;;ACHhB,UAAM,QAAQ;AAiBd,UAAM,OAAO;AACb,UAAM,eAAe;AAAA,MAAS,MAC5B,OAAO,MAAM,cAAc,aACvB,MAAM,UAAe,KAAA,KACrB,MAAM;AAAA,IAAA;AAEZ,UAAM,kBAAkB,SAAS,MAAM,CAAC,CAAC,aAAa,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvC3D,UAAM,eAAe;AACrB,UAAM,eAAe,SAAS,MAAM,aAAa,IAAI,oBAAoB,CAAC;AAC1E,UAAM,OAAO;AAAA,MAAS,MACpB,aAAa,UAAU,UAAU,eAAe;AAAA,IAAA;AAGlD,UAAM,eAAe;AACrB,UAAM,cAAc,6BAAM;AACxB,mBAAa,QAAQ,mBAAmB;AAAA,IAAA,GADtB;;;;;;;;;;;;;;ACPpB,UAAM,cAAc;AACpB,UAAM,cAAc,6BAAM;AACxB,kBAAY,WAAW;AAAA,QACrB,iBAAiB;AAAA,QACjB,WAAW;AAAA,MAAA,CACZ;AAAA,IAAA,GAJiB;;;;;;;;;;;;;;;;;;;;ACoCpB,UAAM,iBAAiB;AACvB,UAAM,eAAe;AAErB,UAAM,iBAAiB;AAAA,MAAS,MAC9B,aAAa,IAAI,wBAAwB,MAAM,SAC3C,uBACA;AAAA,IAAA;AAGN,UAAM,UAAU;AAAA,MACd,MAAM,aAAa,IAAI,oBAAoB,MAAM;AAAA,IAAA;AAGnD,UAAM,OAAO,SAAS,MAAM,eAAe,eAAgB,CAAA;AAC3D,UAAM,cAAc,SAAS,MAAM,eAAe,WAAW,gBAAgB;AACvE,UAAA,iBAAiB,wBAAC,KAAgC,OAAoB;AAC1E,UAAI,OAAO,EAAE;AAAA,IAAA,GADQ;AAGjB,UAAA,aAAa,wBAACC,UAA8B;AACjC,qBAAA,WAAW,iBAAiBA,MAAK,EAAE;AAAA,IAAA,GADjC;AAGnB,oBAAgB,MAAM;AACf,WAAA,MAAM,QAAQ,CAAC,QAAQ;AAC1B,YAAI,IAAI,SAAS,YAAY,IAAI,SAAS;AACxC,cAAI,QAAQ;AAAA,QACd;AAAA,MAAA,CACD;AAAA,IAAA,CACF;AAED,UAAM,kBAAkB;AAClB,UAAA,sBAAsB,wBAAC,QAA6B;AACxD,YAAM,aAAa,gBAAgB;AAAA,QACjC,8BAA8B,IAAI,EAAE;AAAA,MAAA;AAEtC,aAAO,aAAa,KAAK,WAAW,MAAM,SAAU,CAAA,MAAM;AAAA,IAAA,GAJhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChF5B,IAAIP,UAAQ,gCAASA,OAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,sFAAsF,OAAO,GAAG,uBAAuB,GAAG,qBAAqB,EAAE,OAAO,GAAG,qBAAqB,GAAG,wBAAwB,EAAE,OAAO,GAAG,kBAAkB,GAAG,gBAAgB,EAAE,OAAO,GAAG,gBAAgB,GAAG,+OAA+O,EAAE,OAAO,GAAG,4BAA4B,GAAG,0DAA0D,EAAE,OAAO,GAAG,+BAA+B,GAAG,qBAAqB,EAAE,OAAO,GAAG,4BAA4B,GAAG,mCAAmC,EAAE,OAAO,GAAG,8BAA8B,GAAG,eAAe,EAAE,OAAO,GAAG,8BAA8B,GAAG,sGAAsG,EAAE,OAAO,GAAG,mCAAmC,GAAG,kBAAkB,EAAE,OAAO,GAAG,kCAAkC,GAAG,GAAG,EAAE,OAAO,GAAG,kCAAkC,GAAG,GAAG,EAAE,OAAO,GAAG,kCAAkC,GAAG,yBAAyB,EAAE,OAAO,GAAG,mCAAmC,GAAG,uSAAuS,EAAE,OAAO,GAAG,sBAAsB,GAAG,gHAAgH,EAAE,OAAO,GAAG,sBAAsB,GAAG,uXAAuX;AACxlE,GAHY;AAIZ,IAAIC,YAAU;AAAA,EACZ,MAAM,gCAAS,KAAK,OAAO;AACzB,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,0BAA0B,gBAAgB,MAAM,MAAM;AAAA,EAC/D,GAHK;AAAA,EAIN,QAAQ;AAAA,EACR,cAAc;AAChB;AACA,IAAIO,iBAAe;AAAA,EACjB,MAAM,gCAASC,MAAK,OAAO;AACzB,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC;AAAA,MACN,SAAS;AAAA,MACT,aAAa;AAAA,IACnB,GAAO,MAAM,WAAW,aAAa;AAAA,MAC/B,kBAAkB;AAAA,IACnB,IAAG,EAAE;AAAA,EACP,GARK;AASR;AACA,IAAI,gBAAgB,UAAU,OAAO;AAAA,EACnC,MAAM;AAAA,EACN,OAAOT;AAAAA,EACP,SAASC;AAAAA,EACT,cAAcO;AAChB,CAAC;ACvBD,IAAIN,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWQ;AAAAA,EACX,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASN,WAAU;AAC1B,WAAO;AAAA,MACL,aAAa;AAAA,MACb,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,SAASO,qBAAmB,GAAG;AAAE,SAAOC,qBAAmB,CAAC,KAAKC,mBAAiB,CAAC,KAAKC,8BAA4B,CAAC,KAAKC,qBAAoB;AAAG;AAAxIJ;AACT,SAASI,uBAAqB;AAAE,QAAM,IAAI,UAAU,sIAAsI;AAAI;AAArLA;AACT,SAASD,8BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAOE,oBAAkB,GAAG,CAAC;AAAG,QAAI,IAAI,CAAA,EAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,oBAAkB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAjXF;AACT,SAASD,mBAAiB,GAAG;AAAE,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAAI;AAAxIA;AACT,SAASD,qBAAmB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAOI,oBAAkB,CAAC;AAAI;AAA5EJ;AACT,SAASI,oBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAAS,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,IAAK,GAAE,CAAC,IAAI,EAAE,CAAC;AAAG,SAAO;AAAI;AAA3IA;AACT,IAAIX,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWH;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,eAAe,aAAa,QAAQ;AAAA,EAC5C,UAAU;AAAA,EACV,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,MAAM;AAAA,EACN,eAAe;AAAA,EACf,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,OAAO;AAAA,EACP,MAAM,gCAAS,OAAO;AACpB,WAAO;AAAA,MACL,UAAU;AAAA,IAChB;AAAA,EACG,GAJK;AAAA,EAKN,SAAS,gCAAS,UAAU;AAC1B,QAAI,QAAQ;AACZ,QAAI,KAAK,UAAU,KAAK,OAAO,QAAQ;AACrC,UAAI,cAAc;AAClB,UAAI,KAAK,cAAc;AACrB,sBAAc,KAAK;MACpB;AACD,UAAI,CAAC,aAAa;AAChB,YAAI,WAAWS,qBAAmB,KAAK,IAAI,QAAQ,EAAE,OAAO,SAAU,OAAO;AAC3E,iBAAO,MAAM,aAAa,cAAc,MAAM;AAAA,QACxD,CAAS;AACD,YAAI,cAAc,CAAA;AAClB,aAAK,OAAO,IAAI,SAAU,OAAO,GAAG;AAClC,cAAI,mBAAmB,MAAM,SAAS,MAAM,MAAM,OAAO,MAAM,MAAM,OAAO;AAC5E,cAAI,YAAY,oBAAoB,MAAM,MAAM,OAAO;AACvD,sBAAY,CAAC,IAAI;AACjB,mBAAS,CAAC,EAAE,MAAM,YAAY,UAAU,YAAY,UAAU,MAAM,OAAO,SAAS,KAAK,MAAM,aAAa;AAAA,QACtH,CAAS;AACD,aAAK,aAAa;AAClB,aAAK,WAAW,WAAW,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC;AAAA,MACrD;AAAA,IACF;AAAA,EACF,GAtBQ;AAAA,EAuBT,eAAe,gCAAS,gBAAgB;AACtC,SAAK,MAAK;AACV,SAAK,qBAAoB;AAAA,EAC1B,GAHc;AAAA,EAIf,SAAS;AAAA,IACP,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,aAAO,MAAM,KAAK,SAAS;AAAA,IAC5B,GAFgB;AAAA,IAGjB,eAAe,gCAAS,cAAc,OAAO,OAAO,WAAW;AAC7D,WAAK,gBAAgB,MAAM,iBAAiB,MAAM,OAAO;AACzD,WAAK,OAAO,KAAK,aAAa,SAAS,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG;AACrE,UAAI,CAAC,WAAW;AACd,aAAK,WAAW;AAChB,aAAK,WAAW,KAAK,WAAW,eAAe,MAAM,SAAS,MAAM,eAAe,CAAC,EAAE,QAAQ,MAAM,SAAS,MAAM,eAAe,CAAC,EAAE;AAAA,MACtI;AACD,WAAK,mBAAmB,KAAK,cAAc;AAC3C,WAAK,mBAAmB,KAAK,cAAc;AAC3C,UAAI,WAAW;AACb,aAAK,gBAAgB,KAAK,aAAa,cAAc,KAAK,kBAAkB,IAAI,IAAI,eAAe,KAAK,kBAAkB,IAAI;AAC9H,aAAK,gBAAgB,KAAK,aAAa,cAAc,KAAK,kBAAkB,IAAI,IAAI,eAAe,KAAK,kBAAkB,IAAI;AAAA,MACtI,OAAa;AACL,aAAK,gBAAgB,OAAO,KAAK,aAAa,cAAc,KAAK,kBAAkB,IAAI,IAAI,eAAe,KAAK,kBAAkB,IAAI,KAAK,KAAK;AAC/I,aAAK,gBAAgB,OAAO,KAAK,aAAa,cAAc,KAAK,kBAAkB,IAAI,IAAI,eAAe,KAAK,kBAAkB,IAAI,KAAK,KAAK;AAAA,MAChJ;AACD,WAAK,iBAAiB;AACtB,WAAK,MAAM,eAAe;AAAA,QACxB,eAAe;AAAA,QACf,OAAO,KAAK;AAAA,MACpB,CAAO;AACD,WAAK,MAAM,OAAO,KAAK,EAAE,aAAa,0BAA0B,IAAI;AACpE,WAAK,IAAI,aAAa,mBAAmB,IAAI;AAAA,IAC9C,GAvBc;AAAA,IAwBf,UAAU,gCAAS,SAAS,OAAO,MAAM,WAAW;AAClD,UAAI,QAAQ,kBAAkB;AAC9B,UAAI,WAAW;AACb,YAAI,KAAK,YAAY;AACnB,6BAAmB,OAAO,KAAK,gBAAgB,QAAQ,KAAK;AAC5D,6BAAmB,OAAO,KAAK,gBAAgB,QAAQ,KAAK;AAAA,QACtE,OAAe;AACL,6BAAmB,OAAO,KAAK,gBAAgB,QAAQ,KAAK;AAC5D,6BAAmB,OAAO,KAAK,gBAAgB,QAAQ,KAAK;AAAA,QAC7D;AAAA,MACT,OAAa;AACL,YAAI,KAAK,WAAY,UAAS,MAAM,QAAQ,MAAM,KAAK,OAAO,KAAK,WAAW,MAAM,KAAK;AAAA,YAAU,UAAS,MAAM,QAAQ,MAAM,KAAK,OAAO,KAAK,WAAW,MAAM,KAAK;AACvK,2BAAmB,KAAK,gBAAgB;AACxC,2BAAmB,KAAK,gBAAgB;AAAA,MACzC;AACD,UAAI,KAAK,eAAe,kBAAkB,gBAAgB,GAAG;AAC3D,aAAK,iBAAiB,MAAM,YAAY,UAAU,mBAAmB,UAAU,KAAK,OAAO,SAAS,KAAK,KAAK,aAAa;AAC3H,aAAK,iBAAiB,MAAM,YAAY,UAAU,mBAAmB,UAAU,KAAK,OAAO,SAAS,KAAK,KAAK,aAAa;AAC3H,aAAK,WAAW,KAAK,cAAc,IAAI;AACvC,aAAK,WAAW,KAAK,iBAAiB,CAAC,IAAI;AAC3C,aAAK,WAAW,WAAW,gBAAgB,EAAE,QAAQ,CAAC;AAAA,MACvD;AACD,WAAK,MAAM,UAAU;AAAA,QACnB,eAAe;AAAA,QACf,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GA1BS;AAAA,IA2BV,aAAa,gCAAS,YAAY,OAAO;AACvC,UAAI,KAAK,cAAc;AACrB,aAAK,UAAS;AAAA,MACf;AACD,WAAK,MAAM,aAAa;AAAA,QACtB,eAAe;AAAA,QACf,OAAO,KAAK;AAAA,MACpB,CAAO;AACD,WAAK,MAAM,OAAO,QAAQ,SAAU,QAAQ;AAC1C,eAAO,OAAO,aAAa,0BAA0B,KAAK;AAAA,MAClE,CAAO;AACD,WAAK,IAAI,aAAa,mBAAmB,KAAK;AAC9C,WAAK,MAAK;AAAA,IACX,GAbY;AAAA,IAcb,QAAQ,gCAAS,OAAO,OAAO,OAAO,MAAM;AAC1C,WAAK,cAAc,OAAO,OAAO,IAAI;AACrC,WAAK,SAAS,OAAO,MAAM,IAAI;AAAA,IAChC,GAHO;AAAA,IAIR,UAAU,gCAAS,SAAS,OAAO,OAAO,MAAM;AAC9C,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,OAAO;AACf,aAAK,QAAQ,YAAY,WAAY;AACnC,iBAAO,OAAO,OAAO,OAAO,IAAI;AAAA,QACjC,GAAE,EAAE;AAAA,MACN;AAAA,IACF,GAPS;AAAA,IAQV,YAAY,gCAAS,aAAa;AAChC,UAAI,KAAK,OAAO;AACd,sBAAc,KAAK,KAAK;AACxB,aAAK,QAAQ;AAAA,MACd;AAAA,IACF,GALW;AAAA,IAMZ,eAAe,gCAAS,gBAAgB;AACtC,WAAK,WAAU;AACf,WAAK,YAAW;AAAA,IACjB,GAHc;AAAA,IAIf,iBAAiB,gCAAS,gBAAgB,OAAO,OAAO;AACtD,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK,aACH;AACE,cAAI,KAAK,WAAW,cAAc;AAChC,iBAAK,SAAS,OAAO,OAAO,KAAK,OAAO,EAAE;AAAA,UAC3C;AACD,gBAAM,eAAc;AACpB;AAAA,QACD;AAAA,QACH,KAAK,cACH;AACE,cAAI,KAAK,WAAW,cAAc;AAChC,iBAAK,SAAS,OAAO,OAAO,KAAK,IAAI;AAAA,UACtC;AACD,gBAAM,eAAc;AACpB;AAAA,QACD;AAAA,QACH,KAAK,aACH;AACE,cAAI,KAAK,WAAW,YAAY;AAC9B,iBAAK,SAAS,OAAO,OAAO,KAAK,OAAO,EAAE;AAAA,UAC3C;AACD,gBAAM,eAAc;AACpB;AAAA,QACD;AAAA,QACH,KAAK,WACH;AACE,cAAI,KAAK,WAAW,YAAY;AAC9B,iBAAK,SAAS,OAAO,OAAO,KAAK,IAAI;AAAA,UACtC;AACD,gBAAM,eAAc;AACpB;AAAA,QACD;AAAA,MACJ;AAAA,IACF,GAnCgB;AAAA,IAoCjB,mBAAmB,gCAAS,kBAAkB,OAAO,OAAO;AAC1D,WAAK,cAAc,OAAO,KAAK;AAC/B,WAAK,mBAAkB;AAAA,IACxB,GAHkB;AAAA,IAInB,oBAAoB,gCAAS,mBAAmB,OAAO,OAAO;AAC5D,WAAK,cAAc,OAAO,KAAK;AAC/B,WAAK,mBAAkB;AACvB,YAAM,eAAc;AAAA,IACrB,GAJmB;AAAA,IAKpB,mBAAmB,gCAAS,kBAAkB,OAAO;AACnD,WAAK,SAAS,KAAK;AACnB,YAAM,eAAc;AAAA,IACrB,GAHkB;AAAA,IAInB,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,WAAK,YAAY,KAAK;AACtB,WAAK,qBAAoB;AACzB,YAAM,eAAc;AAAA,IACrB,GAJiB;AAAA,IAKlB,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,mBAAmB;AAC3B,aAAK,oBAAoB,SAAU,OAAO;AACxC,iBAAO,OAAO,SAAS,KAAK;AAAA,QACtC;AACQ,iBAAS,iBAAiB,aAAa,KAAK,iBAAiB;AAAA,MAC9D;AACD,UAAI,CAAC,KAAK,iBAAiB;AACzB,aAAK,kBAAkB,SAAU,OAAO;AACtC,iBAAO,YAAY,KAAK;AACxB,iBAAO,qBAAoB;AAAA,QACrC;AACQ,iBAAS,iBAAiB,WAAW,KAAK,eAAe;AAAA,MAC1D;AAAA,IACF,GAfmB;AAAA,IAgBpB,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,mBAAmB;AAC3B,aAAK,oBAAoB,SAAU,OAAO;AACxC,iBAAO,OAAO,SAAS,MAAM,eAAe,CAAC,CAAC;AAAA,QACxD;AACQ,iBAAS,iBAAiB,aAAa,KAAK,iBAAiB;AAAA,MAC9D;AACD,UAAI,CAAC,KAAK,kBAAkB;AAC1B,aAAK,mBAAmB,SAAU,OAAO;AACvC,iBAAO,UAAU,KAAK;AACtB,iBAAO,qBAAoB;AAAA,QACrC;AACQ,iBAAS,iBAAiB,YAAY,KAAK,gBAAgB;AAAA,MAC5D;AAAA,IACF,GAfmB;AAAA,IAgBpB,gBAAgB,gCAAS,eAAe,kBAAkB,kBAAkB;AAC1E,UAAI,mBAAmB,OAAO,mBAAmB,EAAG,QAAO;AAC3D,UAAI,mBAAmB,OAAO,mBAAmB,EAAG,QAAO;AAC3D,UAAI,mBAAmB,aAAa,KAAK,OAAO,KAAK,cAAc,GAAG,SAAS;AAC/E,UAAI,KAAK,OAAO,KAAK,cAAc,EAAE,SAAS,oBAAoB,mBAAmB,kBAAkB;AACrG,eAAO;AAAA,MACR;AACD,UAAI,kBAAkB,aAAa,KAAK,OAAO,KAAK,iBAAiB,CAAC,GAAG,SAAS;AAClF,UAAI,KAAK,OAAO,KAAK,iBAAiB,CAAC,EAAE,SAAS,mBAAmB,kBAAkB,kBAAkB;AACvG,eAAO;AAAA,MACR;AACD,aAAO;AAAA,IACR,GAZe;AAAA,IAahB,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,KAAK,mBAAmB;AAC1B,iBAAS,oBAAoB,aAAa,KAAK,iBAAiB;AAChE,aAAK,oBAAoB;AAAA,MAC1B;AACD,UAAI,KAAK,iBAAiB;AACxB,iBAAS,oBAAoB,WAAW,KAAK,eAAe;AAC5D,aAAK,kBAAkB;AAAA,MACxB;AAAA,IACF,GATqB;AAAA,IAUtB,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,KAAK,mBAAmB;AAC1B,iBAAS,oBAAoB,aAAa,KAAK,iBAAiB;AAChE,aAAK,oBAAoB;AAAA,MAC1B;AACD,UAAI,KAAK,kBAAkB;AACzB,iBAAS,oBAAoB,YAAY,KAAK,gBAAgB;AAC9D,aAAK,mBAAmB;AAAA,MACzB;AAAA,IACF,GATqB;AAAA,IAUtB,OAAO,gCAAS,QAAQ;AACtB,WAAK,WAAW;AAChB,WAAK,OAAO;AACZ,WAAK,WAAW;AAChB,WAAK,mBAAmB;AACxB,WAAK,mBAAmB;AACxB,WAAK,gBAAgB;AACrB,WAAK,gBAAgB;AACrB,WAAK,gBAAgB;AACrB,WAAK,iBAAiB;AAAA,IACvB,GAVM;AAAA,IAWP,YAAY,gCAAS,aAAa;AAChC,aAAO,KAAK,YAAY;AAAA,IACzB,GAFW;AAAA,IAGZ,YAAY,gCAAS,aAAa;AAChC,cAAQ,KAAK,cAAY;AAAA,QACvB,KAAK;AACH,iBAAO,OAAO;AAAA,QAChB,KAAK;AACH,iBAAO,OAAO;AAAA,QAChB;AACE,gBAAM,IAAI,MAAM,KAAK,eAAe,0FAA0F;AAAA,MACjI;AAAA,IACF,GATW;AAAA,IAUZ,WAAW,gCAAS,YAAY;AAC9B,UAAI,QAAQ,KAAK,UAAU,GAAG;AAC5B,aAAK,WAAU,EAAG,QAAQ,KAAK,UAAU,KAAK,UAAU,KAAK,UAAU,CAAC;AAAA,MACzE;AAAA,IACF,GAJU;AAAA,IAKX,cAAc,gCAAS,eAAe;AACpC,UAAI,SAAS;AACb,UAAI,UAAU,KAAK;AACnB,UAAI,cAAc,QAAQ,QAAQ,KAAK,QAAQ;AAC/C,UAAI,aAAa;AACf,aAAK,aAAa,KAAK,MAAM,WAAW;AACxC,YAAI,WAAWA,qBAAmB,KAAK,IAAI,QAAQ,EAAE,OAAO,SAAU,OAAO;AAC3E,iBAAO,MAAM,aAAa,cAAc,MAAM;AAAA,QACxD,CAAS;AACD,iBAAS,QAAQ,SAAU,OAAO,GAAG;AACnC,gBAAM,MAAM,YAAY,UAAU,OAAO,WAAW,CAAC,IAAI,UAAU,OAAO,OAAO,SAAS,KAAK,OAAO,aAAa;AAAA,QAC7H,CAAS;AACD,eAAO;AAAA,MACR;AACD,aAAO;AAAA,IACR,GAfa;AAAA,EAgBf;AAAA,EACD,UAAU;AAAA,IACR,QAAQ,gCAAS,SAAS;AACxB,UAAI,SAAS;AACb,UAAIM,UAAS,CAAA;AACb,WAAK,OAAO,SAAS,EAAG,EAAC,QAAQ,SAAU,OAAO;AAChD,YAAI,OAAO,gBAAgB,KAAK,GAAG;AACjC,UAAAA,QAAO,KAAK,KAAK;AAAA,QAC3B,WAAmB,MAAM,oBAAoB,OAAO;AAC1C,gBAAM,SAAS,QAAQ,SAAU,aAAa;AAC5C,gBAAI,OAAO,gBAAgB,WAAW,GAAG;AACvC,cAAAA,QAAO,KAAK,WAAW;AAAA,YACxB;AAAA,UACb,CAAW;AAAA,QACF;AAAA,MACT,CAAO;AACD,aAAOA;AAAA,IACR,GAfO;AAAA,IAgBR,aAAa,gCAAS,cAAc;AAClC,UAAI,KAAK,WAAY,QAAO;AAAA,QAC1B,OAAO,KAAK,aAAa;AAAA,MAC1B;AAAA,UAAM,QAAO;AAAA,QACZ,QAAQ,KAAK,aAAa;AAAA,MAClC;AAAA,IACK,GANY;AAAA,IAOb,YAAY,gCAAS,aAAa;AAChC,aAAO,KAAK,WAAW;AAAA,IACxB,GAFW;AAAA,IAGZ,cAAc,gCAAS,eAAe;AACpC,UAAI;AACJ,aAAO;AAAA,QACL,SAAS;AAAA,UACP,SAAS,wBAAwB,KAAK,qBAAqB,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB;AAAA,QACtI;AAAA,MACT;AAAA,IACK,GAPa;AAAA,EAQf;AACH;AAEA,IAAIC,eAAa,CAAC,eAAe,gBAAgB,eAAe,YAAY;AAC5E,IAAIC,eAAa,CAAC,oBAAoB,iBAAiB,WAAW;AAClE,SAASb,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,OAAO,KAAK,GAAG,MAAM;AAAA,IACrB,mBAAmB;AAAA,EACvB,GAAK,KAAK,KAAK,QAAQ,SAAS,YAAY,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,SAAS,QAAQ,SAAU,OAAO,GAAG;AAClJ,WAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,MAC/C,KAAK;AAAA,IACN,GAAE,EAAE,UAAW,GAAE,YAAY,wBAAwB,KAAK,GAAG;AAAA,MAC5D,UAAU;AAAA,IACX,CAAA,IAAI,MAAM,SAAS,OAAO,SAAS,KAAK,aAAa,mBAAmB,OAAO,WAAW;AAAA,MACzF,KAAK;AAAA,MACL,SAAS;AAAA,MACT,KAAK;AAAA,MACL,SAAS,KAAK,GAAG,QAAQ;AAAA,MACzB,MAAM;AAAA,MACN,UAAU;AAAA,MACV,aAAa,gCAAS,YAAY,QAAQ;AACxC,eAAO,SAAS,kBAAkB,QAAQ,CAAC;AAAA,MAC5C,GAFY;AAAA,MAGb,cAAc,gCAAS,aAAa,QAAQ;AAC1C,eAAO,SAAS,mBAAmB,QAAQ,CAAC;AAAA,MAC7C,GAFa;AAAA,MAGd,aAAa,gCAAS,YAAY,QAAQ;AACxC,eAAO,SAAS,kBAAkB,QAAQ,CAAC;AAAA,MAC5C,GAFY;AAAA,MAGb,YAAY,gCAAS,WAAW,QAAQ;AACtC,eAAO,SAAS,iBAAiB,QAAQ,CAAC;AAAA,MAC3C,GAFW;AAAA,MAGZ,0BAA0B;AAAA,IAChC,GAAO,KAAK,IAAI,QAAQ,CAAC,GAAG,CAACc,gBAAmB,OAAO,WAAW;AAAA,MAC5D,SAAS,KAAK,GAAG,cAAc;AAAA,MAC/B,UAAU;AAAA,MACV,OAAO,CAAC,SAAS,WAAW;AAAA,MAC5B,oBAAoB,KAAK;AAAA,MACzB,iBAAiB,MAAM;AAAA,MACvB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,eAAO,SAAS,iBAAiB,SAAS,cAAc,MAAM,UAAU,SAAS;AAAA,MACzF;AAAA,MACM,WAAW,gCAAS,UAAU,QAAQ;AACpC,eAAO,SAAS,gBAAgB,QAAQ,CAAC;AAAA,MAC1C,GAFU;AAAA,MAGX,SAAS;AAAA,IACf,GAAO,KAAK,IAAI,cAAc,CAAC,GAAG,MAAM,IAAID,YAAU,CAAC,GAAG,IAAID,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,EAC3G,CAAA,GAAG,GAAG,KAAK,EAAE;AAChB;AA7CSZ;AA+CTD,SAAO,SAASC;ACxbhB,IAAIL,YAAU;AAAA,EACZ,MAAM,gCAASQ,MAAK,MAAM;AACxB,QAAI,WAAW,KAAK;AACpB,WAAO,CAAC,mBAAmB;AAAA,MACzB,0BAA0B,SAAS;AAAA,IACzC,CAAK;AAAA,EACF,GALK;AAMR;AACA,IAAI,qBAAqB,UAAU,OAAO;AAAA,EACxC,MAAM;AAAA,EACN,SAASR;AACX,CAAC;ACTD,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWQ;AAAAA,EACX,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASN,WAAU;AAC1B,WAAO;AAAA,MACL,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIC,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWH;AAAAA,EACX,cAAc;AAAA,EACd,MAAM,gCAASmB,QAAO;AACpB,WAAO;AAAA,MACL,aAAa;AAAA,IACnB;AAAA,EACG,GAJK;AAAA,EAKN,UAAU;AAAA,IACR,UAAU,gCAAS,WAAW;AAC5B,UAAI,QAAQ;AACZ,aAAO,KAAK,OAAO,SAAS,EAAC,EAAG,KAAK,SAAU,OAAO;AACpD,cAAM,cAAc,MAAM,KAAK,SAAS,aAAa,OAAO;AAC5D,eAAO,MAAM;AAAA,MACrB,CAAO;AAAA,IACF,GANS;AAAA,IAOV,cAAc,gCAASC,gBAAe;AACpC,aAAO;AAAA,QACL,SAAS;AAAA,UACP,QAAQ,KAAK;AAAA,QACd;AAAA,MACT;AAAA,IACK,GANa;AAAA,EAOf;AACH;AAEA,SAAShB,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,MAAM;AAAA,EACxB,GAAE,KAAK,KAAK,QAAQ,SAAS,YAAY,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,CAAC,GAAG,EAAE;AACxF;AALSA;AAOTD,SAAO,SAASC;;;;AC3BhB,UAAM,eAAe;AACrB,UAAM,kBAAkB;AAAA,MAA2B,MACjD,aAAa,IAAI,wBAAwB;AAAA,IAAA;AAG3C,UAAM,sBAAsB;AAAA,MAC1B,MAAM,kBAAoB,EAAA,WAAW,qBAAqB;AAAA,IAAA;AAEtD,UAAA,cAAc,SAAS,MAAM;AAC1B,aAAA,oBAAoB,QAAQ,KAAK;AAAA,IAAA,CACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxCD,IAAIN,UAAQ,gCAASA,OAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,+JAA+J,OAAO,GAAG,wBAAwB,GAAG,kGAAkG,EAAE,OAAO,GAAG,6BAA6B,GAAG,KAAK,EAAE,OAAO,GAAG,wBAAwB,GAAG,0kBAA0kB,EAAE,OAAO,GAAG,6BAA6B,GAAG,kCAAkC,EAAE,OAAO,GAAG,qCAAqC,GAAG,qCAAqC,EAAE,OAAO,GAAG,qCAAqC,GAAG,qBAAqB,EAAE,OAAO,GAAG,kCAAkC,GAAG,2BAA2B,EAAE,OAAO,GAAG,oCAAoC,GAAG,0CAA0C,EAAE,OAAO,GAAG,6BAA6B,GAAG,gCAAgC,EAAE,OAAO,GAAG,kCAAkC,GAAG,UAAU,EAAE,OAAO,GAAG,kCAAkC,GAAG,iBAAiB,EAAE,OAAO,GAAG,kCAAkC,GAAG,kBAAkB,EAAE,OAAO,GAAG,kCAAkC,GAAG,eAAe,EAAE,OAAO,GAAG,kCAAkC,GAAG,4GAA4G,EAAE,OAAO,GAAG,wCAAwC,GAAG,uBAAuB,EAAE,OAAO,GAAG,0CAA0C,GAAG,gBAAgB,EAAE,OAAO,GAAG,mCAAmC,GAAG,4EAA4E,EAAE,OAAO,GAAG,yCAAyC,GAAG,uBAAuB,EAAE,OAAO,GAAG,2CAA2C,GAAG,gBAAgB,EAAE,OAAO,GAAG,oCAAoC,GAAG,oEAAoE,EAAE,OAAO,GAAG,yCAAyC,GAAG,kBAAkB,EAAE,OAAO,GAAG,wCAAwC,GAAG,GAAG,EAAE,OAAO,GAAG,wCAAwC,GAAG,GAAG,EAAE,OAAO,GAAG,wCAAwC,GAAG,yBAAyB,EAAE,OAAO,GAAG,yCAAyC,GAAG,oMAAoM,EAAE,OAAO,GAAG,iCAAiC,GAAG,gBAAgB,EAAE,OAAO,GAAG,4BAA4B,GAAG,2BAA2B,EAAE,OAAO,GAAG,mCAAmC,GAAG,wBAAwB,EAAE,OAAO,GAAG,oCAAoC,GAAG,qBAAqB,EAAE,OAAO,GAAG,6BAA6B,GAAG,yJAAyJ,EAAE,OAAO,GAAG,uBAAuB,GAAG,kBAAkB,EAAE,OAAO,GAAG,2BAA2B,GAAG,+LAA+L,EAAE,OAAO,GAAG,6BAA6B,GAAG,qCAAqC,EAAE,OAAO,GAAG,2BAA2B,GAAG,8DAA8D,EAAE,OAAO,GAAG,kCAAkC,GAAG,UAAU,EAAE,OAAO,GAAG,kCAAkC,GAAG,iBAAiB,EAAE,OAAO,GAAG,kCAAkC,GAAG,wBAAwB,EAAE,OAAO,GAAG,mCAAmC,GAAG,kHAAkH,EAAE,OAAO,GAAG,sCAAsC,GAAG,gBAAgB,EAAE,OAAO,GAAG,iCAAiC,GAAG,6DAA6D,EAAE,OAAO,GAAG,yCAAyC,GAAG,gBAAgB,EAAE,OAAO,GAAG,oCAAoC,GAAG,qEAAqE,EAAE,OAAO,GAAG,+CAA+C,GAAG,gBAAgB,EAAE,OAAO,GAAG,0CAA0C,GAAG,uEAAuE,EAAE,OAAO,GAAG,mCAAmC,GAAG,gBAAgB,EAAE,OAAO,GAAG,iCAAiC,GAAG,qBAAqB,EAAE,OAAO,GAAG,sCAAsC,GAAG,sBAAsB,EAAE,OAAO,GAAG,uCAAuC,GAAG,wNAAwN,EAAE,OAAO,GAAG,wBAAwB,GAAG,QAAQ,EAAE,OAAO,GAAG,wBAAwB,GAAG,mBAAmB,EAAE,OAAO,GAAG,wBAAwB,GAAG,qBAAqB,EAAE,OAAO,GAAG,oBAAoB,GAAG,qBAAqB,EAAE,OAAO,GAAG,yBAAyB,GAAG,2BAA2B,EAAE,OAAO,GAAG,2BAA2B,GAAG,wBAAwB,EAAE,OAAO,GAAG,4BAA4B,GAAG,kDAAkD,EAAE,OAAO,GAAG,kCAAkC,GAAG,UAAU,EAAE,OAAO,GAAG,kCAAkC,GAAG,iBAAiB,EAAE,OAAO,GAAG,kCAAkC,GAAG,kBAAkB,EAAE,OAAO,GAAG,kCAAkC,GAAG,eAAe,EAAE,OAAO,GAAG,kCAAkC,GAAG,sDAAsD,EAAE,OAAO,GAAG,qBAAqB,GAAG,qGAAqG,EAAE,OAAO,GAAG,iCAAiC,GAAG,uGAAuG,EAAE,OAAO,GAAG,iCAAiC,GAAG,qBAAqB,EAAE,OAAO,GAAG,gCAAgC,GAAG,kBAAkB,EAAE,OAAO,GAAG,+BAA+B,GAAG,GAAG,EAAE,OAAO,GAAG,+BAA+B,GAAG,GAAG,EAAE,OAAO,GAAG,+BAA+B,GAAG,yBAAyB,EAAE,OAAO,GAAG,gCAAgC,GAAG,wFAAwF,EAAE,OAAO,GAAG,mCAAmC,GAAG,6EAA6E,EAAE,OAAO,GAAG,gCAAgC,GAAG,uHAAuH,EAAE,OAAO,GAAG,sCAAsC,GAAG,wGAAwG,EAAE,OAAO,GAAG,kCAAkC,GAAG,gBAAgB,EAAE,OAAO,GAAG,6BAA6B,GAAG,+DAA+D,EAAE,OAAO,GAAG,wBAAwB,GAAG,mCAAmC,EAAE,OAAO,GAAG,wBAAwB,GAAG,6BAA6B,EAAE,OAAO,GAAG,iCAAiC,GAAG,6FAA6F,EAAE,OAAO,GAAG,wBAAwB,GAAG,kCAAkC,EAAE,OAAO,GAAG,wBAAwB,GAAG,yFAAyF,EAAE,OAAO,GAAG,kCAAkC,GAAG,gBAAgB,EAAE,OAAO,GAAG,6BAA6B,GAAG,8GAA8G,EAAE,OAAO,GAAG,wBAAwB,GAAG,mCAAmC,EAAE,OAAO,GAAG,wBAAwB,GAAG,yYAAyY,EAAE,OAAO,GAAG,gCAAgC,GAAG,wDAAwD,EAAE,OAAO,GAAG,oCAAoC,GAAG,4JAA4J;AAC5xR,GAHY;AAIZ,IAAIQ,iBAAe;AAAA,EACjB,MAAM;AAAA,IACJ,UAAU;AAAA,EACX;AACH;AACA,IAAIP,YAAU;AAAA,EACZ,MAAM,gCAASQ,MAAK,OAAO;AACzB,QAAI,WAAW,MAAM,UACnB,QAAQ,MAAM;AAChB,WAAO,CAAC,6CAA6C;AAAA,MACnD,cAAc,MAAM;AAAA,MACpB,aAAa,MAAM;AAAA,MACnB,WAAW,SAAS;AAAA,MACpB,yBAAyB,MAAM,cAAc,WAAW,SAAS,UAAU;AAAA,MAC3E,wBAAwB,SAAS;AAAA,MACjC,uBAAuB,SAAS;AAAA,MAChC,wBAAwB,SAAS;AAAA,IACvC,CAAK;AAAA,EACF,GAZK;AAAA,EAaN,SAAS;AAAA,EACT,eAAe,gCAAS,cAAc,OAAO;AAC3C,QAAI,QAAQ,MAAM,OAChB,WAAW,MAAM;AACnB,WAAO,CAAC,iCAAiC;AAAA,MACvC,oBAAoB,MAAM,UAAU,MAAM,YAAY,WAAW,SAAS,UAAU,OAAO,eAAe,YAAY,SAAS,UAAU,OAAO,iBAAiB;AAAA,IACvK,CAAK;AAAA,EACF,GANc;AAAA,EAOf,UAAU,gCAAS,SAAS,OAAO;AACjC,QAAI,WAAW,MAAM,UACnB,IAAI,MAAM;AACZ,WAAO,CAAC,4BAA4B;AAAA,MAClC,WAAW,SAAS,+BAA+B;AAAA,IACzD,CAAK;AAAA,EACF,GANS;AAAA,EAOV,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,aAAa;AAAA,EACb,QAAQ,gCAAS,OAAO,OAAO;AAC7B,QAAI,WAAW,MAAM,UACnB,UAAU,MAAM,QAChB,IAAI,MAAM,GACV,iBAAiB,MAAM;AACzB,WAAO,CAAC,yBAAyB;AAAA,MAC/B,kCAAkC,SAAS,WAAW,OAAO;AAAA,MAC7D,WAAW,SAAS,uBAAuB,SAAS,eAAe,GAAG,cAAc;AAAA,MACpF,cAAc,SAAS,iBAAiB,OAAO;AAAA,IACrD,CAAK;AAAA,EACF,GAVO;AAAA,EAWR,cAAc;AAChB;AACA,IAAI,oBAAoB,UAAU,OAAO;AAAA,EACvC,MAAM;AAAA,EACN,OAAOT;AAAAA,EACP,SAASC;AAAAA,EACT,cAAcO;AAChB,CAAC;ACnDD,IAAIN,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWQ;AAAAA,EACX,OAAO;AAAA,IACL,YAAY;AAAA,IACZ,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,wBAAwB;AAAA,MACtB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,uBAAuB;AAAA,MACrB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASN,WAAU;AAC1B,WAAO;AAAA,MACL,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,SAASmB,YAAU,GAAG;AAAE;AAA2B,SAAOA,cAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUC,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAID,YAAU,CAAC;AAAI;AAA3TA;AACT,SAASZ,qBAAmB,GAAG;AAAE,SAAOC,qBAAmB,CAAC,KAAKC,mBAAiB,CAAC,KAAKC,8BAA4B,CAAC,KAAKC,qBAAoB;AAAG;AAAxIJ;AACT,SAASI,uBAAqB;AAAE,QAAM,IAAI,UAAU,sIAAsI;AAAI;AAArLA;AACT,SAASD,8BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAOE,oBAAkB,GAAG,CAAC;AAAG,QAAI,IAAI,CAAA,EAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAIA,oBAAkB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAjXF;AACT,SAASD,mBAAiB,GAAG;AAAE,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAAI;AAAxIA;AACT,SAASD,qBAAmB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAOI,oBAAkB,CAAC;AAAI;AAA5EJ;AACT,SAASI,oBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAAS,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,IAAK,GAAE,CAAC,IAAI,EAAE,CAAC;AAAG,SAAO;AAAI;AAA3IA;AACT,IAAIX,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWH;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,qBAAqB,UAAU,SAAS,QAAQ,eAAe,iBAAiB,iBAAiB,mBAAmB,kBAAkB,SAAS,YAAY,eAAe,eAAe,QAAQ,MAAM;AAAA,EAC/M,QAAQ;AAAA,IACN,UAAU;AAAA,MACR,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,sBAAsB;AAAA,EACtB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,OAAO;AAAA,EACP,MAAM,gCAASmB,QAAO;AACpB,WAAO;AAAA,MACL,IAAI,KAAK,OAAO;AAAA,MAChB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,oBAAoB;AAAA,MACpB,4BAA4B;AAAA,MAC5B,gBAAgB;AAAA,MAChB,WAAW;AAAA,IACjB;AAAA,EACG,GAVK;AAAA,EAWN,OAAO;AAAA,IACL,aAAa,gCAAS,SAAS,UAAU;AACvC,WAAK,KAAK,YAAY;IACvB,GAFY;AAAA,IAGb,aAAa,gCAAS,cAAc;AAClC,UAAI,KAAK,WAAW;AAClB,aAAK,KAAI;AACT,aAAK,qBAAqB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,gCAAgC;AAC7G,aAAK,YAAY;AAAA,MAClB;AACD,WAAK,gBAAe;AAAA,IACrB,GAPY;AAAA,EAQd;AAAA,EACD,SAAS,gCAASI,WAAU;AAC1B,SAAK,KAAK,KAAK,MAAM,kBAAiB;AACtC,SAAK,gBAAe;AAAA,EACrB,GAHQ;AAAA,EAIT,SAAS,gCAAS,UAAU;AAC1B,QAAI,KAAK,gBAAgB;AACvB,WAAK,aAAY;AAAA,IAClB;AAAA,EACF,GAJQ;AAAA,EAKT,eAAe,gCAASC,iBAAgB;AACtC,SAAK,2BAA0B;AAC/B,SAAK,qBAAoB;AACzB,QAAI,KAAK,eAAe;AACtB,WAAK,cAAc;AACnB,WAAK,gBAAgB;AAAA,IACtB;AACD,QAAI,KAAK,SAAS;AAChB,aAAO,MAAM,KAAK,OAAO;AACzB,WAAK,UAAU;AAAA,IAChB;AAAA,EACF,GAXc;AAAA,EAYf,SAAS;AAAA,IACP,gBAAgB,gCAAS,eAAe,OAAO,IAAI;AACjD,aAAO,KAAK,0BAA0B,QAAQ,MAAM,GAAG,KAAK,EAAE,OAAO;AAAA,IACtE,GAFe;AAAA,IAGhB,gBAAgB,gCAAS,eAAeC,SAAQ;AAC9C,aAAO,KAAK,cAAc,iBAAiBA,SAAQ,KAAK,WAAW,IAAIA;AAAA,IACxE,GAFe;AAAA,IAGhB,gBAAgB,gCAAS,eAAeA,SAAQ;AAC9C,aAAOA;AAAA,IACR,GAFe;AAAA,IAGhB,oBAAoB,gCAAS,mBAAmBA,SAAQ,OAAO;AAC7D,cAAQ,KAAK,UAAU,iBAAiBA,SAAQ,KAAK,OAAO,IAAI,KAAK,eAAeA,OAAM,KAAK,MAAM;AAAA,IACtG,GAFmB;AAAA,IAGpB,cAAc,gCAASL,cAAaK,SAAQ,aAAa,OAAO,KAAK;AACnE,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,UAAU,KAAK,WAAWA,OAAM;AAAA,UAChC,SAAS,KAAK,uBAAuB,KAAK,eAAe,OAAO,WAAW;AAAA,UAC3E,UAAU,KAAK,iBAAiBA,OAAM;AAAA,QACvC;AAAA,MACT,CAAO;AAAA,IACF,GARa;AAAA,IASd,kBAAkB,gCAAS,iBAAiBA,SAAQ;AAClD,aAAO,KAAK,iBAAiB,iBAAiBA,SAAQ,KAAK,cAAc,IAAI;AAAA,IAC9E,GAFiB;AAAA,IAGlB,eAAe,gCAAS,cAAcA,SAAQ;AAC5C,aAAO,KAAK,oBAAoBA,QAAO,eAAeA,QAAO;AAAA,IAC9D,GAFc;AAAA,IAGf,qBAAqB,gCAAS,oBAAoB,aAAa;AAC7D,aAAO,iBAAiB,aAAa,KAAK,gBAAgB;AAAA,IAC3D,GAFoB;AAAA,IAGrB,wBAAwB,gCAAS,uBAAuB,aAAa;AACnE,aAAO,iBAAiB,aAAa,KAAK,mBAAmB;AAAA,IAC9D,GAFuB;AAAA,IAGxB,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,UAAI,QAAQ;AACZ,cAAQ,KAAK,mBAAmB,QAAQ,KAAK,eAAe,MAAM,GAAG,KAAK,EAAE,OAAO,SAAUA,SAAQ;AACnG,eAAO,MAAM,cAAcA,OAAM;AAAA,MACzC,CAAO,EAAE,SAAS,SAAS;AAAA,IACtB,GALgB;AAAA,IAMjB,MAAM,gCAAS,KAAK,SAAS;AAC3B,WAAK,MAAM,aAAa;AACxB,WAAK,QAAQ;AACb,WAAK,iBAAiB;AACtB,WAAK,qBAAqB,KAAK,uBAAuB,KAAK,KAAK,qBAAqB,KAAK,kBAAkB,KAAK,4BAA6B,IAAG;AACjJ,iBAAW,MAAM,KAAK,WAAW,KAAK,MAAM,aAAa,KAAK,MAAM,WAAW,GAAG;AAAA,IACnF,GANK;AAAA,IAON,MAAM,gCAAS,KAAK,SAAS;AAC3B,UAAI,SAAS;AACb,UAAI,QAAQ,gCAASC,SAAQ;AAC3B,eAAO,MAAM,aAAa;AAC1B,eAAO,QAAQ;AACf,eAAO,iBAAiB;AACxB,eAAO,UAAU;AACjB,eAAO,qBAAqB;AAC5B,mBAAW,MAAM,OAAO,WAAW,OAAO,MAAM,aAAa,OAAO,MAAM,WAAW,GAAG;AAAA,MAChG,GAPkB;AAQZ,iBAAW,WAAY;AACrB;MACD,GAAE,CAAC;AAAA,IACL,GAbK;AAAA,IAcN,SAAS,gCAAS,QAAQ,OAAO;AAC/B,UAAI,KAAK,UAAU;AAEjB;AAAA,MACD;AACD,UAAI,CAAC,KAAK,SAAS,KAAK,iBAAiB;AACvC,aAAK,OAAO,OAAO,MAAM,OAAO,OAAO,OAAO;AAAA,MAC/C;AACD,WAAK,QAAQ;AACb,WAAK,UAAU;AACf,UAAI,KAAK,gBAAgB;AACvB,aAAK,qBAAqB,KAAK,uBAAuB,KAAK,KAAK,qBAAqB,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,4BAA2B,IAAK;AACxK,aAAK,aAAa,KAAK,kBAAkB;AAAA,MAC1C;AACD,WAAK,MAAM,SAAS,KAAK;AAAA,IAC1B,GAfQ;AAAA,IAgBT,QAAQ,gCAAS,OAAO,OAAO;AAC7B,WAAK,QAAQ;AACb,WAAK,UAAU;AACf,WAAK,qBAAqB;AAC1B,WAAK,MAAM,QAAQ,KAAK;AAAA,IACzB,GALO;AAAA,IAMR,WAAW,gCAAS,UAAU,OAAO;AACnC,UAAI,KAAK,UAAU;AACjB,cAAM,eAAc;AACpB;AAAA,MACD;AACD,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,aAAa,KAAK;AACvB;AAAA,QACF,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,gBAAgB,KAAK;AAC1B;AAAA,QACF,KAAK;AACH,eAAK,UAAU,KAAK;AACpB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AACH,eAAK,cAAc,KAAK;AACxB;AAAA,QACF,KAAK;AACH,eAAK,YAAY,KAAK;AACtB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,eAAK,WAAW,KAAK;AACrB;AAAA,QACF,KAAK;AACH,eAAK,YAAY,KAAK;AACtB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,MACH;AACD,WAAK,UAAU;AAAA,IAChB,GA7CU;AAAA,IA8CX,SAAS,gCAAS,QAAQ,OAAO;AAC/B,UAAI,SAAS;AACb,UAAI,KAAK,WAAW;AAClB,YAAI,KAAK,eAAe;AACtB,uBAAa,KAAK,aAAa;AAAA,QAChC;AACD,YAAI,QAAQ,MAAM,OAAO;AACzB,YAAI,CAAC,KAAK,UAAU;AAClB,eAAK,YAAY,OAAO,KAAK;AAAA,QAC9B;AACD,YAAI,MAAM,WAAW,GAAG;AACtB,eAAK,KAAI;AACT,eAAK,MAAM,OAAO;AAAA,QAC5B,OAAe;AACL,cAAI,MAAM,UAAU,KAAK,WAAW;AAClC,iBAAK,qBAAqB;AAC1B,iBAAK,gBAAgB,WAAW,WAAY;AAC1C,qBAAO,OAAO,OAAO,OAAO,OAAO;AAAA,YACjD,GAAe,KAAK,KAAK;AAAA,UACzB,OAAiB;AACL,iBAAK,KAAI;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,IACF,GAxBQ;AAAA,IAyBT,UAAU,gCAAS,SAAS,OAAO;AACjC,UAAI,SAAS;AACb,UAAI,KAAK,gBAAgB;AACvB,YAAI,QAAQ;AAGZ,YAAI,KAAK,kBAAkB,CAAC,KAAK,UAAU;AACzC,cAAI,QAAQ,KAAK,WAAW,KAAK,MAAM,WAAW,QAAQ,KAAK,MAAM,WAAW,IAAI;AACpF,cAAI,eAAe,KAAK,eAAe,KAAK,SAAUD,SAAQ;AAC5D,mBAAO,OAAO,gBAAgBA,SAAQ,SAAS,EAAE;AAAA,UAC7D,CAAW;AACD,cAAI,iBAAiB,QAAW;AAC9B,oBAAQ;AACR,aAAC,KAAK,WAAW,YAAY,KAAK,KAAK,eAAe,OAAO,YAAY;AAAA,UAC1E;AAAA,QACF;AACD,YAAI,CAAC,OAAO;AACV,cAAI,KAAK,SAAU,MAAK,MAAM,WAAW,QAAQ;AAAA,cAAQ,MAAK,MAAM,WAAW,IAAI,QAAQ;AAC3F,eAAK,MAAM,OAAO;AAClB,WAAC,KAAK,YAAY,KAAK,YAAY,OAAO,IAAI;AAAA,QAC/C;AAAA,MACF;AAAA,IACF,GAtBS;AAAA,IAuBV,0BAA0B,gCAAS,2BAA2B;AAC5D,UAAI,KAAK,UAAU;AAEjB;AAAA,MACD;AACD,WAAK,UAAU;AAAA,IAChB,GANyB;AAAA,IAO1B,yBAAyB,gCAAS,0BAA0B;AAC1D,WAAK,6BAA6B;AAClC,WAAK,UAAU;AAAA,IAChB,GAHwB;AAAA,IAIzB,4BAA4B,gCAAS,2BAA2B,OAAO;AACrE,UAAI,KAAK,UAAU;AACjB,cAAM,eAAc;AACpB;AAAA,MACD;AACD,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,yBAAyB,KAAK;AACnC;AAAA,QACF,KAAK;AACH,eAAK,0BAA0B,KAAK;AACpC;AAAA,QACF,KAAK;AACH,eAAK,yBAAyB,KAAK;AACnC;AAAA,MACH;AAAA,IACF,GAhB2B;AAAA,IAiB5B,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,WAAK,UAAU;AACf,UAAI,KAAK,YAAY,KAAK,aAAa,KAAK,WAAW,KAAK,eAAe,KAAK,KAAK,KAAK,kBAAkB,KAAK,GAAG;AAClH;AAAA,MACD;AACD,UAAI,CAAC,KAAK,WAAW,CAAC,KAAK,QAAQ,SAAS,MAAM,MAAM,GAAG;AACzD,cAAM,KAAK,WAAW,KAAK,MAAM,aAAa,KAAK,MAAM,WAAW,GAAG;AAAA,MACxE;AAAA,IACF,GARiB;AAAA,IASlB,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,UAAI,QAAQ;AACZ,UAAI,KAAK,gBAAgB;AACvB,aAAK,KAAK,IAAI;AAAA,MACtB,OAAa;AACL,YAAI,SAAS,KAAK,WAAW,KAAK,MAAM,aAAa,KAAK,MAAM,WAAW;AAC3E,cAAM,MAAM;AACZ,gBAAQ,OAAO;AACf,YAAI,KAAK,iBAAiB,QAAS,MAAK,OAAO,OAAO,IAAI,UAAU;AAAA,iBAAW,KAAK,iBAAiB,UAAW,MAAK,OAAO,OAAO,OAAO,UAAU;AAAA,MACrJ;AACD,WAAK,MAAM,kBAAkB;AAAA,QAC3B,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GAdgB;AAAA,IAejB,gBAAgB,gCAAS,eAAe,OAAOA,SAAQ;AACrD,UAAI,SAAS,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AACjF,UAAI,QAAQ,KAAK,eAAeA,OAAM;AACtC,UAAI,KAAK,UAAU;AACjB,aAAK,MAAM,WAAW,QAAQ;AAC9B,YAAI,CAAC,KAAK,WAAWA,OAAM,GAAG;AAC5B,eAAK,YAAY,OAAO,CAAE,EAAC,OAAOhB,qBAAmB,KAAK,cAAc,CAAA,CAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AAAA,QACtF;AAAA,MACT,OAAa;AACL,aAAK,YAAY,OAAO,KAAK;AAAA,MAC9B;AACD,WAAK,MAAM,eAAe;AAAA,QACxB,eAAe;AAAA,QACf,OAAOgB;AAAA,MACf,CAAO;AACD,WAAK,MAAM,iBAAiB;AAAA,QAC1B,eAAe;AAAA,QACf,OAAOA;AAAA,MACf,CAAO;AACD,gBAAU,KAAK,KAAK,IAAI;AAAA,IACzB,GApBe;AAAA,IAqBhB,mBAAmB,gCAAS,kBAAkB,OAAO,OAAO;AAC1D,UAAI,KAAK,cAAc;AACrB,aAAK,yBAAyB,OAAO,KAAK;AAAA,MAC3C;AAAA,IACF,GAJkB;AAAA,IAKnB,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,sBAAgB,KAAK,iBAAiB;AAAA,QACpC,eAAe;AAAA,QACf,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACF,GALe;AAAA,IAMhB,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,YAAY,KAAK;AACtB;AAAA,MACH;AAAA,IACF,GANiB;AAAA,IAOlB,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,UAAI,CAAC,KAAK,gBAAgB;AACxB;AAAA,MACD;AACD,UAAI,cAAc,KAAK,uBAAuB,KAAK,KAAK,oBAAoB,KAAK,kBAAkB,IAAI,KAAK,UAAU,KAAK,qBAAoB,IAAK,KAAK;AACzJ,WAAK,yBAAyB,OAAO,WAAW;AAChD,YAAM,eAAc;AAAA,IACrB,GAPe;AAAA,IAQhB,cAAc,gCAAS,aAAa,OAAO;AACzC,UAAI,CAAC,KAAK,gBAAgB;AACxB;AAAA,MACD;AACD,UAAI,MAAM,QAAQ;AAChB,YAAI,KAAK,uBAAuB,IAAI;AAClC,eAAK,eAAe,OAAO,KAAK,eAAe,KAAK,kBAAkB,CAAC;AAAA,QACxE;AACD,aAAK,kBAAkB,KAAK;AAC5B,cAAM,eAAc;AAAA,MAC5B,OAAa;AACL,YAAI,cAAc,KAAK,uBAAuB,KAAK,KAAK,oBAAoB,KAAK,kBAAkB,IAAI,KAAK,UAAU,KAAK,oBAAmB,IAAK,KAAK;AACxJ,aAAK,yBAAyB,OAAO,WAAW;AAChD,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GAfa;AAAA,IAgBd,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,UAAI,SAAS,MAAM;AACnB,WAAK,qBAAqB;AAC1B,UAAI,KAAK,UAAU;AACjB,YAAI,QAAQ,OAAO,KAAK,KAAK,KAAK,mBAAmB;AACnD,gBAAM,KAAK,MAAM,cAAc;AAC/B,eAAK,6BAA6B,KAAK,WAAW;AAAA,QAC5D,OAAe;AACL,gBAAM,gBAAe;AAAA,QACtB;AAAA,MACF;AAAA,IACF,GAXe;AAAA,IAYhB,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,WAAK,qBAAqB;AAC1B,WAAK,YAAY,MAAM;IACxB,GAHgB;AAAA,IAIjB,WAAW,gCAAS,UAAU,OAAO;AACnC,UAAI,gBAAgB,MAAM;AAC1B,UAAI,MAAM,cAAc,MAAM;AAC9B,oBAAc,kBAAkB,GAAG,MAAM,WAAW,MAAM,CAAC;AAC3D,WAAK,qBAAqB;AAC1B,YAAM,eAAc;AAAA,IACrB,GANU;AAAA,IAOX,UAAU,gCAAS,SAAS,OAAO;AACjC,UAAI,gBAAgB,MAAM;AAC1B,UAAI,MAAM,cAAc,MAAM;AAC9B,oBAAc,kBAAkB,MAAM,WAAW,IAAI,KAAK,GAAG;AAC7D,WAAK,qBAAqB;AAC1B,YAAM,eAAc;AAAA,IACrB,GANS;AAAA,IAOV,aAAa,gCAAS,YAAY,OAAO;AACvC,WAAK,aAAa,CAAC;AACnB,YAAM,eAAc;AAAA,IACrB,GAHY;AAAA,IAIb,eAAe,gCAAS,cAAc,OAAO;AAC3C,WAAK,aAAa,KAAK,eAAe,SAAS,CAAC;AAChD,YAAM,eAAc;AAAA,IACrB,GAHc;AAAA,IAIf,YAAY,gCAAS,WAAW,OAAO;AACrC,UAAI,CAAC,KAAK,WAAW;AACnB,YAAI,KAAK,UAAU;AACjB,eAAK,YAAY,OAAO,CAAE,EAAC,OAAOhB,qBAAmB,KAAK,cAAc,CAAE,CAAA,GAAG,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC;AAClG,eAAK,MAAM,WAAW,QAAQ;AAAA,QAC/B;AAAA,MACT,OAAa;AACL,YAAI,CAAC,KAAK,gBAAgB;AACxB,eAAK,qBAAqB;AAC1B,eAAK,eAAe,KAAK;AAAA,QACnC,OAAe;AACL,cAAI,KAAK,uBAAuB,IAAI;AAClC,iBAAK,eAAe,OAAO,KAAK,eAAe,KAAK,kBAAkB,CAAC;AAAA,UACxE;AACD,eAAK,KAAI;AAAA,QACV;AAAA,MACF;AAAA,IACF,GAjBW;AAAA,IAkBZ,aAAa,gCAAS,YAAY,OAAO;AACvC,WAAK,kBAAkB,KAAK,KAAK,IAAI;AACrC,YAAM,eAAc;AAAA,IACrB,GAHY;AAAA,IAIb,UAAU,gCAAS,SAAS,OAAO;AACjC,UAAI,KAAK,uBAAuB,IAAI;AAClC,aAAK,eAAe,OAAO,KAAK,eAAe,KAAK,kBAAkB,CAAC;AAAA,MACxE;AACD,WAAK,kBAAkB,KAAK;IAC7B,GALS;AAAA,IAMV,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,UAAI,KAAK,UAAU;AACjB,YAAI,WAAW,KAAK,UAAU,KAAK,CAAC,KAAK,MAAM,WAAW,OAAO;AAC/D,cAAI,eAAe,KAAK,WAAW,KAAK,WAAW,SAAS,CAAC;AAC7D,cAAI,WAAW,KAAK,WAAW,MAAM,GAAG,EAAE;AAC1C,eAAK,MAAM,qBAAqB,QAAQ;AACxC,eAAK,MAAM,iBAAiB;AAAA,YAC1B,eAAe;AAAA,YACf,OAAO;AAAA,UACnB,CAAW;AACD,eAAK,MAAM,mBAAmB;AAAA,YAC5B,eAAe;AAAA,YACf,OAAO;AAAA,UACnB,CAAW;AAAA,QACF;AACD,cAAM,gBAAe;AAAA,MACtB;AAAA,IACF,GAjBe;AAAA,IAkBhB,0BAA0B,gCAAS,2BAA2B;AAC5D,WAAK,6BAA6B,KAAK,6BAA6B,IAAI,IAAI,KAAK,6BAA6B;AAAA,IAC/G,GAFyB;AAAA,IAG1B,2BAA2B,gCAAS,4BAA4B;AAC9D,WAAK;AACL,UAAI,KAAK,6BAA6B,KAAK,WAAW,SAAS,GAAG;AAChE,aAAK,6BAA6B;AAClC,cAAM,KAAK,MAAM,UAAU;AAAA,MAC5B;AAAA,IACF,GAN0B;AAAA,IAO3B,0BAA0B,gCAAS,yBAAyB,OAAO;AACjE,UAAI,KAAK,+BAA+B,IAAI;AAC1C,aAAK,aAAa,OAAO,KAAK,0BAA0B;AAAA,MACzD;AAAA,IACF,GAJyB;AAAA,IAK1B,gBAAgB,gCAAS,eAAe,IAAI;AAC1C,aAAO,IAAI,WAAW,IAAI,KAAK,UAAU,OAAO,OAAO,OAAO;AAC9D,eAAS,IAAI;AAAA,QACX,UAAU;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,MACd,CAAO;AACD,WAAK,aAAY;AAAA,IAClB,GARe;AAAA,IAShB,qBAAqB,gCAAS,sBAAsB;AAClD,WAAK,yBAAwB;AAC7B,WAAK,mBAAkB;AACvB,WAAK,mBAAkB;AACvB,WAAK,MAAM,MAAM;AAAA,IAClB,GALoB;AAAA,IAMrB,gBAAgB,gCAAS,iBAAiB;AACxC,WAAK,2BAA0B;AAC/B,WAAK,qBAAoB;AACzB,WAAK,qBAAoB;AACzB,WAAK,MAAM,MAAM;AACjB,WAAK,UAAU;AAAA,IAChB,GANe;AAAA,IAOhB,qBAAqB,gCAAS,oBAAoB,IAAI;AACpD,aAAO,MAAM,EAAE;AAAA,IAChB,GAFoB;AAAA,IAGrB,cAAc,gCAAS,eAAe;AACpC,UAAI,SAAS,KAAK,WAAW,KAAK,MAAM,iBAAiB,KAAK,MAAM,WAAW;AAC/E,UAAI,KAAK,aAAa,QAAQ;AAC5B,yBAAiB,KAAK,SAAS,MAAM;AAAA,MAC7C,OAAa;AACL,aAAK,QAAQ,MAAM,WAAW,cAAc,MAAM,IAAI;AACtD,yBAAiB,KAAK,SAAS,MAAM;AAAA,MACtC;AAAA,IACF,GARa;AAAA,IASd,0BAA0B,gCAAS,2BAA2B;AAC5D,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,sBAAsB;AAC9B,aAAK,uBAAuB,SAAU,OAAO;AAC3C,cAAI,OAAO,kBAAkB,OAAO,WAAW,OAAO,iBAAiB,KAAK,GAAG;AAC7E,mBAAO,KAAI;AAAA,UACZ;AAAA,QACX;AACQ,iBAAS,iBAAiB,SAAS,KAAK,oBAAoB;AAAA,MAC7D;AAAA,IACF,GAVyB;AAAA,IAW1B,4BAA4B,gCAAS,6BAA6B;AAChE,UAAI,KAAK,sBAAsB;AAC7B,iBAAS,oBAAoB,SAAS,KAAK,oBAAoB;AAC/D,aAAK,uBAAuB;AAAA,MAC7B;AAAA,IACF,GAL2B;AAAA,IAM5B,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,eAAe;AACvB,aAAK,gBAAgB,IAAI,8BAA8B,KAAK,MAAM,WAAW,WAAY;AACvF,cAAI,OAAO,gBAAgB;AACzB,mBAAO,KAAI;AAAA,UACZ;AAAA,QACX,CAAS;AAAA,MACF;AACD,WAAK,cAAc;IACpB,GAVmB;AAAA,IAWpB,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,KAAK,eAAe;AACtB,aAAK,cAAc;MACpB;AAAA,IACF,GAJqB;AAAA,IAKtB,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,gBAAgB;AACxB,aAAK,iBAAiB,WAAY;AAChC,cAAI,OAAO,kBAAkB,CAAC,iBAAiB;AAC7C,mBAAO,KAAI;AAAA,UACZ;AAAA,QACX;AACQ,eAAO,iBAAiB,UAAU,KAAK,cAAc;AAAA,MACtD;AAAA,IACF,GAVmB;AAAA,IAWpB,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,KAAK,gBAAgB;AACvB,eAAO,oBAAoB,UAAU,KAAK,cAAc;AACxD,aAAK,iBAAiB;AAAA,MACvB;AAAA,IACF,GALqB;AAAA,IAMtB,kBAAkB,gCAAS,iBAAiB,OAAO;AACjD,aAAO,CAAC,KAAK,QAAQ,SAAS,MAAM,MAAM,KAAK,CAAC,KAAK,eAAe,KAAK,KAAK,CAAC,KAAK,kBAAkB,KAAK;AAAA,IAC5G,GAFiB;AAAA,IAGlB,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,UAAI,KAAK,SAAU,QAAO,MAAM,WAAW,KAAK,MAAM,kBAAkB,KAAK,MAAM,eAAe,SAAS,MAAM,MAAM;AAAA,UAAO,QAAO,MAAM,WAAW,KAAK,MAAM,WAAW;AAAA,IAC7K,GAFe;AAAA,IAGhB,mBAAmB,gCAAS,kBAAkB,OAAO;AACnD,aAAO,KAAK,MAAM,iBAAiB,MAAM,WAAW,KAAK,MAAM,kBAAkB,KAAK,MAAM,eAAe,SAAS,MAAM,MAAM,IAAI;AAAA,IACrI,GAFkB;AAAA,IAGnB,iBAAiB,gCAAS,gBAAgBgB,SAAQ,OAAO;AACvD,UAAI;AACJ,aAAO,KAAK,cAAcA,OAAM,OAAO,uBAAuB,KAAK,eAAeA,OAAM,OAAO,QAAQ,yBAAyB,SAAS,SAAS,qBAAqB,kBAAkB,KAAK,YAAY,OAAO,MAAM,kBAAkB,KAAK,YAAY;AAAA,IAC3P,GAHgB;AAAA,IAIjB,eAAe,gCAAS,cAAcA,SAAQ;AAC5C,aAAO,WAAWA,OAAM,KAAK,EAAE,KAAK,iBAAiBA,OAAM,KAAK,KAAK,cAAcA,OAAM;AAAA,IAC1F,GAFc;AAAA,IAGf,uBAAuB,gCAAS,sBAAsBA,SAAQ;AAC5D,aAAO,KAAK,cAAcA,OAAM,KAAK,KAAK,WAAWA,OAAM;AAAA,IAC5D,GAFsB;AAAA,IAGvB,UAAU,gCAAS,SAAS,QAAQ,QAAQ;AAC1C,aAAO,OAAO,QAAQ,QAAQ,KAAK,WAAW;AAAA,IAC/C,GAFS;AAAA,IAGV,YAAY,gCAAS,WAAWA,SAAQ;AACtC,UAAI,SAAS;AACb,UAAI,cAAc,KAAK,eAAeA,OAAM;AAC5C,aAAO,KAAK,YAAY,KAAK,cAAc,IAAI,KAAK,SAAU,OAAO;AACnE,eAAO,OAAO,SAAS,OAAO,WAAW;AAAA,MACjD,CAAO,IAAI,KAAK,SAAS,KAAK,YAAY,KAAK,eAAeA,OAAM,CAAC;AAAA,IAChE,GANW;AAAA,IAOZ,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,SAAS;AACb,aAAO,KAAK,eAAe,UAAU,SAAUA,SAAQ;AACrD,eAAO,OAAO,cAAcA,OAAM;AAAA,MAC1C,CAAO;AAAA,IACF,GALqB;AAAA,IAMtB,qBAAqB,gCAAS,sBAAsB;AAClD,UAAI,UAAU;AACd,aAAO,cAAc,KAAK,gBAAgB,SAAUA,SAAQ;AAC1D,eAAO,QAAQ,cAAcA,OAAM;AAAA,MAC3C,CAAO;AAAA,IACF,GALoB;AAAA,IAMrB,qBAAqB,gCAAS,oBAAoB,OAAO;AACvD,UAAI,UAAU;AACd,UAAI,qBAAqB,QAAQ,KAAK,eAAe,SAAS,IAAI,KAAK,eAAe,MAAM,QAAQ,CAAC,EAAE,UAAU,SAAUA,SAAQ;AACjI,eAAO,QAAQ,cAAcA,OAAM;AAAA,MAC3C,CAAO,IAAI;AACL,aAAO,qBAAqB,KAAK,qBAAqB,QAAQ,IAAI;AAAA,IACnE,GANoB;AAAA,IAOrB,qBAAqB,gCAAS,oBAAoB,OAAO;AACvD,UAAI,UAAU;AACd,UAAI,qBAAqB,QAAQ,IAAI,cAAc,KAAK,eAAe,MAAM,GAAG,KAAK,GAAG,SAAUA,SAAQ;AACxG,eAAO,QAAQ,cAAcA,OAAM;AAAA,MAC3C,CAAO,IAAI;AACL,aAAO,qBAAqB,KAAK,qBAAqB;AAAA,IACvD,GANoB;AAAA,IAOrB,yBAAyB,gCAAS,0BAA0B;AAC1D,UAAI,UAAU;AACd,aAAO,KAAK,oBAAoB,KAAK,eAAe,UAAU,SAAUA,SAAQ;AAC9E,eAAO,QAAQ,sBAAsBA,OAAM;AAAA,MACnD,CAAO,IAAI;AAAA,IACN,GALwB;AAAA,IAMzB,6BAA6B,gCAAS,8BAA8B;AAClE,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,IAAI,KAAK,qBAAoB,IAAK;AAAA,IAC1D,GAH4B;AAAA,IAI7B,4BAA4B,gCAAS,6BAA6B;AAChE,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,IAAI,KAAK,oBAAmB,IAAK;AAAA,IACzD,GAH2B;AAAA,IAI5B,QAAQ,gCAAS,OAAO,OAAO,OAAO,QAAQ;AAE5C,UAAI,UAAU,UAAa,UAAU,MAAM;AACzC;AAAA,MACD;AAGD,UAAI,WAAW,WAAW,MAAM,KAAM,EAAC,WAAW,GAAG;AACnD;AAAA,MACD;AACD,WAAK,YAAY;AACjB,WAAK,MAAM,YAAY;AAAA,QACrB,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GAfO;AAAA,IAgBR,cAAc,gCAAS,aAAa,OAAO,OAAO;AAChD,UAAI,UAAU;AACd,UAAI,gBAAgB,KAAK,WAAW,KAAK;AACzC,UAAI,QAAQ,KAAK,WAAW,OAAO,SAAU,GAAG,GAAG;AACjD,eAAO,MAAM;AAAA,MACrB,CAAO,EAAE,IAAI,SAAUA,SAAQ;AACvB,eAAO,QAAQ,eAAeA,OAAM;AAAA,MAC5C,CAAO;AACD,WAAK,YAAY,OAAO,KAAK;AAC7B,WAAK,MAAM,iBAAiB;AAAA,QAC1B,eAAe;AAAA,QACf,OAAO;AAAA,MACf,CAAO;AACD,WAAK,MAAM,mBAAmB;AAAA,QAC5B,eAAe;AAAA,QACf,OAAO;AAAA,MACf,CAAO;AACD,WAAK,QAAQ;AACb,YAAM,KAAK,WAAW,KAAK,MAAM,aAAa,KAAK,MAAM,WAAW,GAAG;AAAA,IACxE,GAnBa;AAAA,IAoBd,0BAA0B,gCAAS,yBAAyB,OAAO,OAAO;AACxE,UAAI,KAAK,uBAAuB,OAAO;AACrC,aAAK,qBAAqB;AAC1B,aAAK,aAAY;AACjB,YAAI,KAAK,eAAe;AACtB,eAAK,eAAe,OAAO,KAAK,eAAe,KAAK,GAAG,KAAK;AAAA,QAC7D;AAAA,MACF;AAAA,IACF,GARyB;AAAA,IAS1B,cAAc,gCAAS,eAAe;AACpC,UAAI,UAAU;AACd,UAAI,QAAQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAChF,WAAK,UAAU,WAAY;AACzB,YAAI,KAAK,UAAU,KAAK,GAAG,OAAO,QAAQ,IAAI,GAAG,EAAE,OAAO,KAAK,IAAI,QAAQ;AAC3E,YAAI,UAAU,WAAW,QAAQ,MAAM,UAAW,OAAO,IAAI,IAAK,CAAC;AACnE,YAAI,SAAS;AACX,kBAAQ,kBAAkB,QAAQ,eAAe;AAAA,YAC/C,OAAO;AAAA,YACP,QAAQ;AAAA,UACpB,CAAW;AAAA,QACX,WAAmB,CAAC,QAAQ,yBAAyB;AAC3C,kBAAQ,mBAAmB,QAAQ,gBAAgB,cAAc,UAAU,KAAK,QAAQ,QAAQ,kBAAkB;AAAA,QACnH;AAAA,MACT,CAAO;AAAA,IACF,GAfa;AAAA,IAgBd,iBAAiB,gCAAS,kBAAkB;AAC1C,UAAI,KAAK,iBAAiB,KAAK,mBAAmB,CAAC,KAAK,mBAAmB;AACzE,aAAK,qBAAqB,KAAK;AAC/B,aAAK,eAAe,MAAM,KAAK,eAAe,KAAK,kBAAkB,GAAG,KAAK;AAAA,MAC9E;AAAA,IACF,GALgB;AAAA,IAMjB,aAAa,gCAAS,YAAY,OAAO,OAAO;AAC9C,WAAK,MAAM,qBAAqB,KAAK;AACrC,WAAK,MAAM,UAAU;AAAA,QACnB,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GANY;AAAA,IAOb,aAAa,gCAAS,YAAY,SAAS;AACzC,UAAI,UAAU;AACd,cAAQ,WAAW,IAAI,OAAO,SAAU,QAAQA,SAAQ,OAAO;AAC7D,eAAO,KAAK;AAAA,UACV,aAAaA;AAAA,UACb,OAAO;AAAA,UACP;AAAA,QACV,CAAS;AACD,YAAI,sBAAsB,QAAQ,uBAAuBA,OAAM;AAC/D,+BAAuB,oBAAoB,QAAQ,SAAU,GAAG;AAC9D,iBAAO,OAAO,KAAK,CAAC;AAAA,QAC9B,CAAS;AACD,eAAO;AAAA,MACR,GAAE,CAAE,CAAA;AAAA,IACN,GAdY;AAAA,IAeb,YAAY,gCAAS,WAAW,IAAI;AAClC,WAAK,UAAU;AAAA,IAChB,GAFW;AAAA,IAGZ,SAAS,gCAAS,QAAQ,IAAI,YAAY;AACxC,WAAK,OAAO;AACZ,oBAAc,WAAW,EAAE;AAAA,IAC5B,GAHQ;AAAA,IAIT,oBAAoB,gCAAS,mBAAmB,IAAI;AAClD,WAAK,kBAAkB;AAAA,IACxB,GAFmB;AAAA,EAGrB;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,mBAAmB,KAAK,YAAY,KAAK,WAAW,IAAI,KAAK,eAAe;IACzF,GAFe;AAAA,IAGhB,YAAY,gCAAS,aAAa;AAChC,UAAI,WAAW,KAAK,UAAU,GAAG;AAC/B,YAAIJ,YAAU,KAAK,UAAU,MAAM,UAAU;AAC3C,cAAI,QAAQ,KAAK,eAAe,KAAK,UAAU;AAC/C,iBAAO,SAAS,OAAO,QAAQ,KAAK;AAAA,QAC9C,OAAe;AACL,iBAAO,KAAK;AAAA,QACb;AAAA,MACT,OAAa;AACL,eAAO;AAAA,MACR;AAAA,IACF,GAXW;AAAA,IAYZ,mBAAmB,gCAAS,oBAAoB;AAC9C,aAAO,WAAW,KAAK,UAAU;AAAA,IAClC,GAFkB;AAAA,IAGnB,aAAa,gCAAS,cAAc;AAClC,aAAO,KAAK;AAAA,IACb,GAFY;AAAA,IAGb,yBAAyB,gCAAS,0BAA0B;AAC1D,aAAO,WAAW,KAAK,cAAc,KAAK,KAAK,iBAAiB,KAAK,kBAAkB,WAAW,OAAO,KAAK,eAAe,MAAM,IAAI,KAAK;AAAA,IAC7I,GAFwB;AAAA,IAGzB,mBAAmB,gCAAS,oBAAoB;AAC9C,aAAO,KAAK,iBAAiB,KAAK,UAAU,OAAO,OAAO,iBAAiB;AAAA,IAC5E,GAFkB;AAAA,IAGnB,wBAAwB,gCAAS,yBAAyB;AACxD,aAAO,KAAK,sBAAsB,KAAK,UAAU,OAAO,OAAO,sBAAsB;AAAA,IACtF,GAFuB;AAAA,IAGxB,sBAAsB,gCAAS,uBAAuB;AACpD,aAAO,KAAK,oBAAoB,KAAK,UAAU,OAAO,OAAO,oBAAoB;AAAA,IAClF,GAFqB;AAAA,IAGtB,2BAA2B,gCAAS,4BAA4B;AAC9D,aAAO,KAAK,yBAAyB,KAAK,UAAU,OAAO,OAAO,yBAAyB;AAAA,IAC5F,GAF0B;AAAA,IAG3B,qBAAqB,gCAAS,sBAAsB;AAClD,aAAO,KAAK,oBAAoB,KAAK,qBAAqB,WAAW,OAAO,KAAK,WAAW,KAAK,WAAW,SAAS,GAAG,IAAI,KAAK;AAAA,IAClI,GAFoB;AAAA,IAGrB,eAAe,gCAAS,gBAAgB;AACtC,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,YAAY;AAAA,IAC1F,GAFc;AAAA,IAGf,iBAAiB,gCAAS,kBAAkB;AAC1C,aAAO,KAAK,uBAAuB,KAAK,GAAG,OAAO,KAAK,IAAI,GAAG,EAAE,OAAO,KAAK,kBAAkB,IAAI;AAAA,IACnG,GAFgB;AAAA,IAGjB,yBAAyB,gCAAS,0BAA0B;AAC1D,aAAO,KAAK,+BAA+B,KAAK,GAAG,OAAO,KAAK,IAAI,mBAAmB,EAAE,OAAO,KAAK,0BAA0B,IAAI;AAAA,IACnI,GAFwB;AAAA,IAGzB,aAAa,gCAAS,cAAc;AAClC,UAAI,UAAU;AACd,aAAO,KAAK,eAAe,OAAO,SAAUI,SAAQ;AAClD,eAAO,CAAC,QAAQ,cAAcA,OAAM;AAAA,MACrC,CAAA,EAAE;AAAA,IACJ,GALY;AAAA,IAMb,yBAAyB,gCAAS,0BAA0B;AAC1D,aAAO,CAAC,KAAK;AAAA,IACd,GAFwB;AAAA,IAGzB,SAAS,gCAAS,UAAU;AAC1B,aAAO,KAAK,KAAK;AAAA,IAClB,GAFQ;AAAA,IAGT,UAAU,gCAAS,WAAW;AAC5B,aAAO,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,WAAW,KAAK;AAAA,IACrD,GAFS;AAAA,EAGX;AAAA,EACD,YAAY;AAAA,IACV,WAAWE;AAAAA,IACX,iBAAiBC;AAAAA,IACjB,QAAQC;AAAAA,IACR,iBAAiBC;AAAAA,IACjB,aAAaC;AAAAA,IACb,MAAMC;AAAAA,EACP;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,SAASC,UAAQ,GAAG;AAAE;AAA2B,SAAOA,YAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUX,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAIW,UAAQ,CAAC;AAAI;AAArTA;AACT,SAASC,UAAQ,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUC,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAtPD;AACT,SAASE,gBAAc,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAIF,UAAQ,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUC,IAAG;AAAEE,wBAAgB,GAAGF,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAID,UAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUC,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAA9aC;AACT,SAASC,kBAAgB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA3KD;AACT,SAASC,iBAAe,GAAG;AAAE,MAAI,IAAIC,eAAa,GAAG,QAAQ;AAAG,SAAO,YAAYN,UAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApGK;AACT,SAASC,eAAa,GAAG,GAAG;AAAE,MAAI,YAAYN,UAAQ,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAYA,UAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAnTM;AACT,IAAIvB,eAAa,CAAC,uBAAuB;AACzC,IAAIC,eAAa,CAAC,MAAM,cAAc,gBAAgB,eAAe;AACrE,IAAIuB,eAAa,CAAC,MAAM,eAAe,YAAY,YAAY,cAAc,mBAAmB,iBAAiB,iBAAiB,yBAAyB,cAAc;AACzK,IAAIC,eAAa,CAAC,YAAY,iBAAiB,eAAe;AAC9D,IAAIC,eAAa,CAAC,IAAI;AACtB,IAAIC,eAAa,CAAC,MAAM,YAAY;AACpC,IAAIC,eAAa,CAAC,IAAI;AACtB,IAAIC,eAAa,CAAC,MAAM,cAAc,iBAAiB,iBAAiB,gBAAgB,iBAAiB,WAAW,eAAe,mBAAmB,gBAAgB,iBAAiB;AACvL,SAASzC,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,MAAI,kBAAkB,iBAAiB,MAAM;AAC7C,MAAI,yBAAyB,iBAAiB,aAAa;AAC3D,MAAI,6BAA6B,iBAAiB,iBAAiB;AACnE,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,OAAO,KAAK,GAAG,MAAM;AAAA,IACrB,SAAS,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,WAAY;AAC/C,aAAO,SAAS,oBAAoB,SAAS,iBAAiB,MAAM,UAAU,SAAS;AAAA,IAC7F;AAAA,EACG,GAAE,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,YAAY,aAAa,YAAY,sBAAsB;AAAA,IACvF,KAAK;AAAA,IACL,KAAK;AAAA,IACL,IAAI,KAAK;AAAA,IACT,MAAM;AAAA,IACN,SAAS,eAAe,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,UAAU,CAAC;AAAA,IAC7D,OAAO,eAAe,KAAK,UAAU;AAAA,IACrC,OAAO,SAAS;AAAA,IAChB,aAAa,KAAK;AAAA,IAClB,UAAU,CAAC,KAAK,WAAW,KAAK,WAAW;AAAA,IAC3C,OAAO,SAAS;AAAA,IAChB,UAAU,KAAK;AAAA,IACf,SAAS,KAAK;AAAA,IACd,SAAS,KAAK;AAAA,IACd,cAAc;AAAA,IACd,MAAM;AAAA,IACN,cAAc,KAAK;AAAA,IACnB,mBAAmB,KAAK;AAAA,IACxB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,iBAAiB,MAAM;AAAA,IACvB,iBAAiB,SAAS;AAAA,IAC1B,yBAAyB,MAAM,UAAU,SAAS,kBAAkB;AAAA,IACpE,SAAS,SAAS;AAAA,IAClB,QAAQ,SAAS;AAAA,IACjB,WAAW,SAAS;AAAA,IACpB,SAAS,SAAS;AAAA,IAClB,UAAU,SAAS;AAAA,IACnB,UAAU,KAAK;AAAA,IACf,IAAI,KAAK,IAAI,SAAS;AAAA,EAC1B,GAAK,MAAM,GAAG,CAAC,MAAM,SAAS,SAAS,SAAS,eAAe,YAAY,SAAS,YAAY,WAAW,WAAW,cAAc,mBAAmB,iBAAiB,iBAAiB,yBAAyB,WAAW,UAAU,aAAa,WAAW,YAAY,YAAY,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,GAAG,KAAK,YAAY,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,IAC7X,KAAK;AAAA,IACL,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,eAAe;AAAA,IAChC,UAAU;AAAA,IACV,MAAM;AAAA,IACN,oBAAoB;AAAA,IACpB,yBAAyB,MAAM,UAAU,SAAS,0BAA0B;AAAA,IAC5E,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,4BAA4B,SAAS,yBAAyB,MAAM,UAAU,SAAS;AAAA,IAC7G;AAAA,IACI,QAAQ,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC5C,aAAO,SAAS,2BAA2B,SAAS,wBAAwB,MAAM,UAAU,SAAS;AAAA,IAC3G;AAAA,IACI,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC/C,aAAO,SAAS,8BAA8B,SAAS,2BAA2B,MAAM,UAAU,SAAS;AAAA,IACjH;AAAA,EACA,GAAK,KAAK,IAAI,eAAe,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,KAAK,YAAY,SAAUqB,SAAQ,GAAG;AACpI,WAAO,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,MACtD,KAAK,GAAG,OAAO,GAAG,GAAG,EAAE,OAAO,SAAS,eAAeA,OAAM,CAAC;AAAA,MAC7D,IAAI,MAAM,KAAK,sBAAsB;AAAA,MACrC,SAAS,KAAK,GAAG,YAAY;AAAA,QAC3B;AAAA,MACR,CAAO;AAAA,MACD,MAAM;AAAA,MACN,cAAc,SAAS,eAAeA,OAAM;AAAA,MAC5C,iBAAiB;AAAA,MACjB,gBAAgB,KAAK,WAAW;AAAA,MAChC,iBAAiB,IAAI;AAAA,MACrB,SAAS;AAAA,IACf,GAAO,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,QAAQ,WAAW;AAAA,MACpE,SAAS,KAAK,GAAG,QAAQ;AAAA,MACzB,OAAOA;AAAA,MACP,OAAO;AAAA,MACP,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,eAAO,SAAS,aAAa,OAAO,CAAC;AAAA,MACtC,GAFe;AAAA,MAGhB,SAAS;AAAA,IACV,GAAE,KAAK,IAAI,QAAQ,CAAC,GAAG,WAAY;AAClC,aAAO,CAAC,YAAY,iBAAiB;AAAA,QACnC,SAAS,eAAe,KAAK,GAAG,QAAQ,CAAC;AAAA,QACzC,OAAO,SAAS,eAAeA,OAAM;AAAA,QACrC,YAAY,KAAK,YAAY,KAAK;AAAA,QAClC,WAAW;AAAA,QACX,UAAU,KAAK;AAAA,QACf,UAAU,gCAASqB,UAAS,QAAQ;AAClC,iBAAO,SAAS,aAAa,QAAQ,CAAC;AAAA,QACvC,GAFS;AAAA,QAGV,IAAI,KAAK,IAAI,QAAQ;AAAA,MAC7B,GAAS;AAAA,QACD,YAAY,QAAQ,WAAY;AAC9B,iBAAO,CAAC,WAAW,KAAK,QAAQ,KAAK,OAAO,WAAW,aAAa,mBAAmB;AAAA,YACrF,SAAS,eAAe,KAAK,GAAG,UAAU,CAAC;AAAA,YAC3C,OAAO;AAAA,YACP,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,qBAAO,SAAS,aAAa,OAAO,CAAC;AAAA,YACtC,GAFe;AAAA,UAGjB,CAAA,CAAC;AAAA,QACZ,CAAS;AAAA,QACD,GAAG;AAAA,MACX,GAAS,MAAM,CAAC,SAAS,SAAS,cAAc,YAAY,YAAY,IAAI,CAAC,CAAC;AAAA,IAC9E,CAAK,CAAC,GAAG,IAAI7B,YAAU;AAAA,EACpB,CAAA,GAAG,GAAG,IAAIC,gBAAmB,MAAM,WAAW;AAAA,IAC7C,SAAS,KAAK,GAAG,WAAW;AAAA,IAC5B,MAAM;AAAA,EACV,GAAK,KAAK,IAAI,WAAW,CAAC,GAAG,CAACA,gBAAmB,SAAS,WAAW;AAAA,IACjE,KAAK;AAAA,IACL,IAAI,KAAK;AAAA,IACT,MAAM;AAAA,IACN,OAAO,KAAK;AAAA,IACZ,SAAS,KAAK;AAAA,IACd,aAAa,KAAK;AAAA,IAClB,UAAU,CAAC,KAAK,WAAW,KAAK,WAAW;AAAA,IAC3C,UAAU,KAAK;AAAA,IACf,cAAc;AAAA,IACd,MAAM;AAAA,IACN,cAAc,KAAK;AAAA,IACnB,mBAAmB,KAAK;AAAA,IACxB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,iBAAiB,MAAM;AAAA,IACvB,iBAAiB,MAAM,KAAK;AAAA,IAC5B,yBAAyB,MAAM,UAAU,SAAS,kBAAkB;AAAA,IACpE,gBAAgB,KAAK,WAAW;AAAA,IAChC,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,WAAW,SAAS,QAAQ,MAAM,UAAU,SAAS;AAAA,IAC3E;AAAA,IACI,QAAQ,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC5C,aAAO,SAAS,UAAU,SAAS,OAAO,MAAM,UAAU,SAAS;AAAA,IACzE;AAAA,IACI,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC/C,aAAO,SAAS,aAAa,SAAS,UAAU,MAAM,UAAU,SAAS;AAAA,IAC/E;AAAA,IACI,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,WAAW,SAAS,QAAQ,MAAM,UAAU,SAAS;AAAA,IAC3E;AAAA,IACI,UAAU,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC9C,aAAO,SAAS,YAAY,SAAS,SAAS,MAAM,UAAU,SAAS;AAAA,IAC7E;AAAA,EACG,GAAE,KAAK,IAAI,OAAO,CAAC,GAAG,MAAM,IAAIsB,YAAU,CAAC,GAAG,EAAE,CAAC,GAAG,IAAIxB,YAAU,KAAK,mBAAmB,IAAI,IAAI,GAAG,MAAM,aAAa,KAAK,UAAU,WAAW,KAAK,QAAQ,KAAK,OAAO,SAAS,WAAW,eAAe;AAAA,IAC7M,KAAK;AAAA,IACL,SAAS,eAAe,KAAK,GAAG,QAAQ,CAAC;AAAA,EAC7C,GAAK,WAAY;AACb,WAAO,CAAC,KAAK,UAAU,KAAK,eAAe,aAAa,mBAAmB,KAAK,WAAW;AAAA,MACzF,KAAK;AAAA,MACL,SAAS,CAAC,WAAW,KAAK,GAAG,QAAQ,GAAG,KAAK,QAAQ,KAAK,WAAW;AAAA,MACrE,eAAe;AAAA,IAChB,GAAE,KAAK,IAAI,QAAQ,CAAC,GAAG,MAAM,EAAE,MAAM,UAAW,GAAE,YAAY,wBAAwB,WAAW;AAAA,MAChG,KAAK;AAAA,MACL,SAAS,KAAK,GAAG,QAAQ;AAAA,MACzB,MAAM;AAAA,MACN,eAAe;AAAA,IACrB,GAAO,KAAK,IAAI,QAAQ,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE;AAAA,EAC9C,CAAA,IAAI,mBAAmB,IAAI,IAAI,GAAG,WAAW,KAAK,QAAQ,KAAK,OAAO,WAAW,aAAa,kBAAkB;AAAA,IAC/G,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,aAAO,SAAS,gBAAgB,KAAK;AAAA,IACtC,GAFe;AAAA,EAGpB,GAAK,WAAY;AACb,WAAO,CAAC,KAAK,YAAY,UAAW,GAAE,mBAAmB,UAAU,WAAW;AAAA,MAC5E,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,KAAK,aAAa;AAAA,MACjD,UAAU,KAAK;AAAA,MACf,iBAAiB;AAAA,MACjB,iBAAiB,MAAM;AAAA,MACvB,iBAAiB,SAAS;AAAA,MAC1B,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,eAAO,SAAS,mBAAmB,SAAS,gBAAgB,MAAM,UAAU,SAAS;AAAA,MAC7F;AAAA,IACA,GAAO,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,gBAAgB;AAAA,MACjE,SAAS,eAAe,KAAK,YAAY;AAAA,IAC/C,GAAO,WAAY;AACb,aAAO,EAAE,aAAa,YAAY,wBAAwB,KAAK,eAAe,SAAS,iBAAiB,GAAG,WAAW;AAAA,QACpH,SAAS,KAAK;AAAA,MACtB,GAAS,KAAK,IAAI,cAAc,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;IACvD,CAAK,CAAC,GAAG,IAAIyB,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,EACxD,CAAG,GAAGvB,gBAAmB,QAAQ,WAAW;AAAA,IACxC,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS;AAAA,EACb,GAAK,KAAK,IAAI,oBAAoB,GAAG;AAAA,IACjC,4BAA4B;AAAA,EAChC,CAAG,GAAG,gBAAgB,SAAS,uBAAuB,GAAG,EAAE,GAAG,YAAY,mBAAmB;AAAA,IACzF,UAAU,KAAK;AAAA,EACnB,GAAK;AAAA,IACD,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,YAAY,YAAY,WAAW;AAAA,QACzC,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,QACvB,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,MACxB,GAAE,KAAK,IAAI,YAAY,CAAC,GAAG;AAAA,QAC1B,WAAW,QAAQ,WAAY;AAC7B,iBAAO,CAAC,MAAM,kBAAkB,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,YAChF,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,IAAI,SAAS;AAAA,YACb,SAAS,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,YAAY,KAAK,YAAY;AAAA,YAChE,OAAOkB,gBAAcA,gBAAcA,gBAAc,CAAE,GAAE,KAAK,UAAU,GAAG,KAAK,YAAY,GAAG,CAAA,GAAI;AAAA,cAC7F,cAAc,SAAS,0BAA0B,KAAK,eAAe;AAAA,YACnF,CAAa;AAAA,YACD,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,qBAAO,SAAS,kBAAkB,SAAS,eAAe,MAAM,UAAU,SAAS;AAAA,YACjG;AAAA,YACY,WAAW,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,WAAY;AACjD,qBAAO,SAAS,oBAAoB,SAAS,iBAAiB,MAAM,UAAU,SAAS;AAAA,YACrG;AAAA,UACA,GAAa,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,UAAU;AAAA,YAC1D,OAAO,KAAK;AAAA,YACZ,aAAa,SAAS;AAAA,UAClC,CAAW,GAAG,YAAY,4BAA4B,WAAW;AAAA,YACrD,KAAK,SAAS;AAAA,UAC1B,GAAa,KAAK,wBAAwB;AAAA,YAC9B,OAAO;AAAA,cACL,QAAQ,KAAK;AAAA,YACd;AAAA,YACD,OAAO,SAAS;AAAA,YAChB,UAAU;AAAA,YACV,UAAU,SAAS;AAAA,YACnB,IAAI,KAAK,IAAI,iBAAiB;AAAA,UAC/B,CAAA,GAAG,YAAY;AAAA,YACd,SAAS,QAAQ,SAAU,MAAM;AAC/B,kBAAI,aAAa,KAAK,YACpB,aAAa,KAAK,YAClB,QAAQ,KAAK,OACb,iBAAiB,KAAK,gBACtB,eAAe,KAAK,cACpB,WAAW,KAAK;AAClB,qBAAO,CAAClB,gBAAmB,MAAM,WAAW;AAAA,gBAC1C,KAAK,gCAAS6B,KAAI,IAAI;AACpB,yBAAO,SAAS,QAAQ,IAAI,UAAU;AAAA,gBACvC,GAFI;AAAA,gBAGL,IAAI,MAAM,KAAK;AAAA,gBACf,SAAS,CAAC,KAAK,GAAG,MAAM,GAAG,UAAU;AAAA,gBACrC,OAAO;AAAA,gBACP,MAAM;AAAA,gBACN,cAAc,SAAS;AAAA,cACvC,GAAiB,KAAK,IAAI,MAAM,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,SAAUtB,SAAQ,GAAG;AACjH,uBAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,kBAC/C,KAAK,SAAS,mBAAmBA,SAAQ,SAAS,eAAe,GAAG,cAAc,CAAC;AAAA,gBACrG,GAAmB,CAAC,SAAS,cAAcA,OAAM,KAAK,aAAa,mBAAmB,MAAM,WAAW;AAAA,kBACrF,KAAK;AAAA,kBACL,IAAI,MAAM,KAAK,MAAM,SAAS,eAAe,GAAG,cAAc;AAAA,kBAC9D,OAAO;AAAA,oBACL,QAAQ,WAAW,WAAW,OAAO;AAAA,kBACtC;AAAA,kBACD,SAAS,KAAK,GAAG,aAAa;AAAA,kBAC9B,MAAM;AAAA,kBACN,SAAS;AAAA,gBAC3B,GAAmB,KAAK,IAAI,aAAa,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,eAAe;AAAA,kBACnE,QAAQA,QAAO;AAAA,kBACf,OAAO,SAAS,eAAe,GAAG,cAAc;AAAA,gBAClE,GAAmB,WAAY;AACb,yBAAO,CAAC,gBAAgB,gBAAgB,SAAS,oBAAoBA,QAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AAAA,gBAC/G,CAAiB,CAAC,GAAG,IAAImB,YAAU,KAAK,gBAAgB,aAAa,mBAAmB,MAAM,WAAW;AAAA,kBACvF,KAAK;AAAA,kBACL,IAAI,MAAM,KAAK,MAAM,SAAS,eAAe,GAAG,cAAc;AAAA,kBAC9D,OAAO;AAAA,oBACL,QAAQ,WAAW,WAAW,OAAO;AAAA,kBACtC;AAAA,kBACD,SAAS,KAAK,GAAG,UAAU;AAAA,oBACzB,QAAQnB;AAAA,oBACR;AAAA,oBACA;AAAA,kBACpB,CAAmB;AAAA,kBACD,MAAM;AAAA,kBACN,cAAc,SAAS,eAAeA,OAAM;AAAA,kBAC5C,iBAAiB,SAAS,WAAWA,OAAM;AAAA,kBAC3C,iBAAiB,SAAS,iBAAiBA,OAAM;AAAA,kBACjD,gBAAgB,SAAS;AAAA,kBACzB,iBAAiB,SAAS,gBAAgB,SAAS,eAAe,GAAG,cAAc,CAAC;AAAA,kBACpF,SAAS,gCAAS,QAAQ,QAAQ;AAChC,2BAAO,SAAS,eAAe,QAAQA,OAAM;AAAA,kBAC9C,GAFQ;AAAA,kBAGT,aAAa,gCAAS,YAAY,QAAQ;AACxC,2BAAO,SAAS,kBAAkB,QAAQ,SAAS,eAAe,GAAG,cAAc,CAAC;AAAA,kBACrF,GAFY;AAAA,kBAGb,mBAAmB,SAAS,WAAWA,OAAM;AAAA,kBAC7C,gBAAgB,MAAM,uBAAuB,SAAS,eAAe,GAAG,cAAc;AAAA,kBACtF,mBAAmB,SAAS,iBAAiBA,OAAM;AAAA,kBACnD,SAAS;AAAA,gBACV,GAAE,SAAS,aAAaA,SAAQ,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,UAAU;AAAA,kBACjG,QAAQA;AAAA,kBACR,OAAO,SAAS,eAAe,GAAG,cAAc;AAAA,gBAClE,GAAmB,WAAY;AACb,yBAAO,CAAC,gBAAgB,gBAAgB,SAAS,eAAeA,OAAM,CAAC,GAAG,CAAC,CAAC;AAAA,gBAC9F,CAAiB,CAAC,GAAG,IAAIoB,YAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE;AAAA,cACnD,CAAA,GAAG,GAAG,IAAI,CAAC,SAAS,SAAS,MAAM,WAAW,KAAK,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,gBACnG,KAAK;AAAA,gBACL,SAAS,KAAK,GAAG,cAAc;AAAA,gBAC/B,MAAM;AAAA,cACP,GAAE,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,CAAA,GAAI,WAAY;AAC9E,uBAAO,CAAC,gBAAgB,gBAAgB,SAAS,uBAAuB,GAAG,CAAC,CAAC;AAAA,cAC7F,CAAe,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAIF,YAAU,CAAC;AAAA,YACxE,CAAa;AAAA,YACD,GAAG;AAAA,UACf,GAAa,CAAC,KAAK,OAAO,SAAS;AAAA,YACvB,MAAM;AAAA,YACN,IAAI,QAAQ,SAAU,OAAO;AAC3B,kBAAI,UAAU,MAAM;AACpB,qBAAO,CAAC,WAAW,KAAK,QAAQ,UAAU;AAAA,gBACxC;AAAA,cACD,CAAA,CAAC;AAAA,YAChB,CAAa;AAAA,YACD,KAAK;AAAA,UACN,IAAG,MAAS,CAAC,GAAG,MAAM,CAAC,SAAS,SAAS,YAAY,IAAI,CAAC,GAAG,WAAW,KAAK,QAAQ,UAAU;AAAA,YAC9F,OAAO,KAAK;AAAA,YACZ,aAAa,SAAS;AAAA,UAClC,CAAW,GAAGzB,gBAAmB,QAAQ,WAAW;AAAA,YACxC,MAAM;AAAA,YACN,aAAa;AAAA,YACb,SAAS;AAAA,UACrB,GAAa,KAAK,IAAI,uBAAuB,GAAG;AAAA,YACpC,4BAA4B;AAAA,UAC7B,CAAA,GAAG,gBAAgB,SAAS,mBAAmB,GAAG,EAAE,CAAC,GAAG,IAAIwB,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,QAClH,CAAS;AAAA,QACD,GAAG;AAAA,MACX,GAAS,IAAI,CAAC,WAAW,gBAAgB,WAAW,cAAc,CAAC,CAAC;AAAA,IACpE,CAAK;AAAA,IACD,GAAG;AAAA,EACJ,GAAE,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE;AAC1B;AAvUStC;AAyUTD,SAAO,SAASC;ACzzChB,MAAK4C,cAAU;AAAA,EACb,MAAM;AAAA,EACN,SAASC;AAAAA,EACT,OAAO,CAAC,wBAAwB;AAAA,EAChC,UAAU;AACR,QAAI,OAAOA,SAAa,YAAY,YAAY;AAC9CA,eAAa,QAAQ,KAAK,IAAI;AAAA,IAChC;AAGA,SAAK;AAAA,MACH,MAAM,KAAK;AAAA,MACX,CAAC,QAAQ,WAAW;AAElB,aAAK,MAAM,0BAA0B,MAAM;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AACF;;;;;;;;;;;;;;;;;;;;;;;;ACuCA,UAAM,eAAe;AACrB,UAAM,eAAe;AAAA,MAAS,MAC5B,aAAa,IAAI,sCAAsC;AAAA,IAAA;AAEzD,UAAM,aAAa;AAAA,MAAS,MAC1B,aAAa,IAAI,oCAAoC;AAAA,IAAA;AAEvD,UAAM,oBAAoB;AAAA,MAAS,MACjC,aAAa,IAAI,2CAA2C;AAAA,IAAA;AAE9D,UAAM,qBAAqB;AAC3B,UAAM,gBAAgB;AAAA,MAAS,MAC7B,mBAAmB,iBAAiB,MAAM,OAAO;AAAA,IAAA;AAGnD,UAAM,oBAAoB;AAC1B,UAAM,eAAe;AAAA,MAAS,MAC5B,kBAAkB,aAAa,MAAM,OAAO;AAAA,IAAA;AAG9C,UAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFd,UAAM,eAAe;AACf,UAAA,EAAE,MAAM;AAEd,UAAM,oBAAoB;AAAA,MAAS,MACjC,aAAa,IAAI,qCAAqC;AAAA,IAAA;AAGxD,UAAM,QAAQ;AAUR,UAAA,0BAA0B,IAAI,KAAK;AACzC,UAAM,UAAU,mCAAmC,KAAK,OAAA,CAAQ;AAC1D,UAAAC,eAAc,IAAwB,CAAA,CAAE;AACxC,UAAA,oBAAoB,IAA6B,IAAI;AACrD,UAAA,eAAe,IAAI,EAAE;AACrB,UAAA,cAAc,SAAS,MAAM;AACjC,aAAO,MAAM,QAAQ,WAAW,IAAI,EAAE,aAAa,IAAI,QAAQ;AAAA,IAAA,CAChE;AAED,UAAM,eAAe;AACrB,UAAM,qBAAqB;AACrB,UAAAC,UAAS,wBAAC,UAAkB;AAChC,YAAM,eAAe,UAAU,MAAM,MAAM,QAAQ,WAAW;AAC9D,mBAAa,QAAQ;AACT,MAAAD,aAAA,QAAQ,eAChB,mBAAmB,cACnB;AAAA,QACE,GAAG,aAAa,kBAAkB,WAAW,OAAO,MAAM,SAAS;AAAA,UACjE,OAAO,MAAM;AAAA,QAAA,CACd;AAAA,MAAA;AAAA,IACH,GATS;AAYf,UAAM,OAAO;AAEb,UAAM,eAAe,6BAAM;AACnB,YAAA,eAAe,SAAS,eAAe,OAAO;AACpD,UAAI,cAAc;AAChB,qBAAa,KAAK;AAClB,qBAAa,MAAM;AAAA,MACrB;AAAA,IAAA,GALmB;AAQrB,cAAU,YAAY;AAChB,UAAA,cAAc,wBAAC,mBAAmC;AACtD,8BAAwB,QAAQ;AAChC,WAAK,aAAa,cAAc;AACnB;IAAA,GAHK;AAKd,UAAA,iBAAiB,wBAAC,OAAc,mBAAmC;AACvE,YAAM,gBAAgB;AACtB,YAAM,eAAe;AACrB,WAAK,gBAAgB,cAAc;AACtB;IAAA,GAJQ;AAMjB,UAAA,qBAAqB,wBAAC,UAAkB;AAC5C,UAAI,UAAU,IAAI;AAChB,0BAAkB,QAAQ;AAC1B;AAAA,MACF;AACM,YAAA,QAAQA,aAAY,MAAM,KAAK;AACrC,wBAAkB,QAAQ;AAAA,IAAA,GAND;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjIpB,MAAM,mBAA6C;AAAA,SAAA;AAAA;AAAA;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YACE,MACA,MACA,OACA,QACA,KACA;AACA,SAAK,OAAO;AACZ,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK,SAAS;AACd,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,OAAO,sBAAsB,KAAqB;AAChD,WAAO,IAAI;AAAA,MACT,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EAER;AAAA,EAEA,IAAI,OAAyB;AAC3B,UAAM,SAAS,KAAK,QAAQ,KAAK,MAAM,OAAO,KAAK,OAAO;AACnD,WAAA,WAAW,KAAK,OAAO;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,kBAAsC;AACjC,WAAA,KAAK,SAAS,UAAU;AAAA,EACjC;AAAA,EAEA,UAAU,SAAqB;AAC7B,UAAM,eACJ,KAAK,oBAAoB,WAAW,QAAQ,UAAU,QAAQ;AAChE,QAAI,CAAC,aAAc;AAEnB,UAAM,cAAc,aAAa;AAAA,MAAU,CAAC,SAC1C,UAAU,kBAAkB,KAAK,MAAM,KAAK,IAAI;AAAA,IAAA;AAGlD,QAAI,gBAAgB,IAAI;AACd,cAAA;AAAA,QACN,iCAAiC,KAAK,IAAI,YAAY,QAAQ,KAAK;AAAA,MAAA;AAErE;AAAA,IACF;AAEI,QAAA,KAAK,oBAAoB,SAAS;AACpC,WAAK,KAAK,QAAQ,KAAK,MAAM,SAAS,WAAW;AAAA,IAAA,OAC5C;AACL,cAAQ,QAAQ,aAAa,KAAK,MAAM,KAAK,IAAI;AAAA,IACnD;AAAA,EACF;AACF;;;;AC7BA,UAAM,eAAe;AAEf,UAAA,UAAU,IAAI,KAAK;AACnB,UAAA,cAAc,IAAI,IAAI;AACtB,UAAA,eAAe,IAAiC,IAAI;AAC1D,UAAM,qBAAqB,6BAAwB;AAC7C,UAAA,aAAa,UAAU,MAAM;AACxB,eAAA,CAAC,KAAK,GAAG;AAAA,MAClB;AAEM,YAAA,gBAAgB,aAAa,MAAM,OAAO;AAEhD,aAAO,CAAC,cAAc,SAAS,cAAc,OAAO;AAAA,IAAA,GAP3B;AASrB,UAAA,cAAc,IAAsB,CAAA,CAAE;AACtC,UAAA,YAAY,wBAAC,WAA2B;AAChC,kBAAA,MAAM,KAAK,MAAM;AAAA,IAAA,GADb;AAGZ,UAAA,eAAe,wBAAC,WAA2B;AACnC,kBAAA,QAAQ,YAAY,MAAM;AAAA,QACpC,CAAC,MAAM,MAAM,CAAC,MAAM,MAAM,MAAM;AAAA,MAAA;AAAA,IAClC,GAHmB;AAKrB,UAAM,eAAe,6BAAM;AACzB,kBAAY,QAAQ;IAAC,GADF;AAGrB,UAAM,cAAc,6BAAM;AACxB,cAAQ,QAAQ;AAAA,IAAA,GADE;AAId,UAAA,UAAU,wBAAC,YAA8B;AACvC,YAAA,OAAO,IAAI,eAAe,SAAS,EAAE,KAAK,sBAAsB;AAEhE,YAAA,cAAc,aAAa,MAAM;AACnC,UAAA,YAAY,YAAY,iBAAiB;AAC3C,oBAAY,mBAAmB,MAAM,QAAQ,CAAC,SAAyB;AACrE,6BAAmB,sBAAsB,IAAI,EAAE,UAAU,IAAI;AAAA,QAAA,CAC9D;AAAA,MACH;AAKA,aAAO,WAAW,MAAM;AACV;SACX,GAAG;AAAA,IAAA,GAfQ;AAkBhB,UAAM,sBAAsB;AAAA,MAC1B,MAAM,aAAa,IAAI,yBAAyB,MAAM;AAAA,IAAA;AAElD,UAAA,gBAAgB,wBAAC,MAA4B;AACjD,UAAI,oBAAoB,OAAO;AAC7B,YAAI,EAAE,OAAO,eAAe,gBAAgB,SAAS;AACnD,qBAAW,MAAM;AACf,6BAAiB,CAAC;AAAA,aACjB,GAAG;AAAA,QAAA,OACD;AACL,2BAAiB,CAAC;AAAA,QACpB;AAAA,MAAA,OACK;AACL,oBAAY,OAAO,cAAc,EAAE,OAAO,aAA2B;AAAA,MACvE;AAAA,IAAA,GAXoB;AActB,UAAM,eAAe;AACf,UAAA,mBAAmB,wBAAC,MAA4B;AAChD,UAAA,EAAE,OAAO,oBAAoB;AACzB,cAAA,QAAQ,EAAE,OAAO,mBAAmB;AACtC,YAAA,MAAM,WAAW,GAAG;AACtB,kBAAQ,KAAK,uDAAuD;AACpE;AAAA,QACF;AACA,cAAM,YAAY,mBAAmB,sBAAsB,MAAM,CAAC,CAAC;AAC7D,cAAA,SAAS,aAAa,kBAAkB;AAAA,UAC5C,UAAU;AAAA,QAAA;AAEZ,cAAM,WAAW,UAAU;AACjB,kBAAA,CAAC,QAAQ,QAAQ,CAAC;AAAA,MAC9B;AAEA,cAAQ,QAAQ;AAChB,mBAAa,QAAQ;AAGrB,kBAAY,QAAQ;AACpB,iBAAW,MAAM;AACf,oBAAY,QAAQ;AAAA,SACnB,GAAG;AAAA,IAAA,GAtBiB;AAyBnB,UAAA,kBAAkB,wBAAC,MAA4B;AAC7C,YAAA,QAAQ,EAAE,OAAO,mBAAmB;AACtC,UAAA,MAAM,WAAW,GAAG;AACtB,gBAAQ,KAAK,uDAAuD;AACpE;AAAA,MACF;AAEA,YAAM,YAAY,mBAAmB,sBAAsB,MAAM,CAAC,CAAC;AAC7D,YAAA,aAAa,EAAE,OAAO;AAC5B,YAAM,gBAAgB;AAAA,QACpB,GAAG;AAAA,QACH,iBAAiB;AAAA,QACjB,eAAe,6BAAM,cAAc,CAAC,GAArB;AAAA,MAAqB;AAEtC,YAAM,oBAAoB,UAAU,SAChC,EAAE,UAAU,UAAU,MAAM,UAAU,UAAU,WAChD,EAAE,QAAQ,UAAU,MAAM,QAAQ,UAAU;AAChD,kBAAY,OAAO,mBAAmB;AAAA,QACpC,GAAG;AAAA,QACH,GAAG;AAAA,MAAA,CACJ;AAAA,IAAA,GApBqB;AAwBxB,UAAM,cAAc;AACpB,gBAAY,MAAM;AAChB,UAAI,YAAY,QAAQ;AACtB,kBAAU,mCAAmC;AAC7C,oBAAY,OAAO,kBAAkB;AAAA,MACvC;AAAA,IAAA,CACD;AAEK,UAAA,qBAAqB,wBAAC,MAA4B;AAClD,UAAA,EAAE,OAAO,YAAY,sBAAsB;AAC7C,sBAAc,CAAC;AAAA,MACN,WAAA,EAAE,OAAO,YAAY,iBAAiB;AAC/C,iCAAyB,CAAC;AAAA,MACjB,WAAA,EAAE,OAAO,YAAY,sBAAsB;AAC9C,cAAA,QAAQ,EAAE,OAAO;AACvB,cAAM,CAAC,GAAG,CAAC,IAAI,MAAM;AAErB,cAAM,YAAY,EAAE,OAAO,cAAc,UAAU;AAE/C,YAAA,YAAY,MAAM,aAAa;AACjC,wBAAc,CAAC;AAAA,QACjB;AAAA,MACF;AAAA,IAAA,GAdyB;AAiBrB,UAAA,oBAAoB,SAAS,MAAM;AAChC,aAAA,aAAa,IAAI,0BAA0B;AAAA,IAAA,CACnD;AAEK,UAAA,yBAAyB,SAAS,MAAM;AACrC,aAAA,aAAa,IAAI,+BAA+B;AAAA,IAAA,CACxD;AAEK,UAAA,2BAA2B,wBAAC,MAA4B;AACtD,YAAA,gBAAgB,EAAE,OAAO;AAC/B,YAAM,eAAe,cAAc;AAEnC,YAAM,SAAS,eACX,uBAAuB,QACvB,kBAAkB;AACtB,cAAQ,QAAQ;AAAA,QACd,KAAK,yBAAyB;AAC5B,wBAAc,CAAC;AACf;AAAA,QACF,KAAK,yBAAyB;AAC5B,0BAAgB,CAAC;AACjB;AAAA,QACF,KAAK,yBAAyB;AAAA,QAC9B;AACE;AAAA,MACJ;AAAA,IAAA,GAjB+B;AAoBjC,cAAU,MAAM;AACL,eAAA,iBAAiB,oBAAoB,kBAAkB;AAAA,IAAA,CACjE;AAED,gBAAY,MAAM;AACP,eAAA,oBAAoB,oBAAoB,kBAAkB;AAAA,IAAA,CACpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7MG,QAAA;AACJ,UAAM,eAAe;AACrB,UAAM,aAAa;AACb,UAAA,cAAc,IAAI,EAAE;AAC1B,UAAM,OAAO;AACb,UAAM,MAAM;AAEZ,UAAM,mBAAmB,6BAAM;AACvB,YAAA,OAAOE,IAAS,OAAO;AACzB,UAAA,CAAC,KAAK,QAAS;AAEb,YAAA,WAAWA,IAAS,OAAO;AACjC,YAAM,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC;AAClC,YAAM,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC;AAEvB,iBAAA,KAAK,KAAK,SAAS;AAC5B,YAAI,aAAqB;AACzB,YAAI,EAAE,aAAa;AACjB;AAAE,WAAA,aAAa,YAAY,IAAI,EAAE,YAAY,KAAK,KAAK,CAAC,CAAC;AAAA,QAAA,OACpD;AACL,wBAAe,EAAyB,SAAS,KAAK,KAAK,CAAC;AAC5D,yBAAe,UAAU;AAAA,QAC3B;AAEA,YACE,EAAE,WAAW,UACb,KAAK,KACL,KAAK,cAAc,MACnB,KAAK,EAAE,UACP,KAAK,EAAE,SAAS,cAChB;AACO,iBAAA;AAAA,QACT;AAAA,MACF;AAAA,IAAA,GA1BuB;AA6BnB,UAAA,cAAc,6BAAO,YAAY,QAAQ,MAA3B;AAEd,UAAA,cAAc,8BAAO,YAAuC;AAChE,UAAI,CAAC,QAAS;AAEd,WAAK,QAAQA,IAAS,OAAO,MAAM,CAAC,IAAI;AACxC,UAAI,QAAQA,IAAS,OAAO,MAAM,CAAC,IAAI;AACvC,kBAAY,QAAQ;AAEpB,YAAM,SAAS;AAET,YAAA,OAAO,WAAW,MAAM,sBAAsB;AAChD,UAAA,KAAK,QAAQ,OAAO,YAAY;AAClC,aAAK,QAAQA,IAAS,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;AAAA,MACvD;AAEI,UAAA,KAAK,MAAM,GAAG;AAChB,YAAI,QAAQA,IAAS,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS;AAAA,MACvD;AAAA,IAAA,GAhBkB;AAmBpB,UAAM,SAAS,6BAAM;AACb,YAAA,EAAE,OAAW,IAAAA;AACnB,YAAM,OAAO,OAAO;AACpB,UAAI,CAAC,KAAM;AAEX,YAAM,OAAO,KAAK;AAClB,YAAM,UAAU,aAAa,eAAe,KAAK,IAAI;AAGnD,UAAA,KAAK,eAAe,UAAU,YAC9B,OAAO,YAAY,CAAC,IAAI,KAAK,IAAI,CAAC,GAClC;AACO,eAAA,YAAY,QAAQ,WAAW;AAAA,MACxC;AAEI,UAAA,KAAK,OAAO,UAAW;AAE3B,YAAM,YAAY,OAAO;AAAA,QACvB;AAAA,QACA,OAAO,YAAY,CAAC;AAAA,QACpB,OAAO,YAAY,CAAC;AAAA,QACpB,CAAC,GAAG,CAAC;AAAA,MAAA;AAEP,UAAI,cAAc,IAAI;AACpB,cAAM,YAAY,KAAK,OAAO,SAAS,EAAE;AACzC,eAAO,YAAY,QAAQ,MAAM,SAAS,SAAS,GAAG,OAAO;AAAA,MAC/D;AAEA,YAAM,aAAa,OAAO;AAAA,QACxB;AAAA,QACA,OAAO,YAAY,CAAC;AAAA,QACpB,OAAO,YAAY,CAAC;AAAA,QACpB,CAAC,GAAG,CAAC;AAAA,MAAA;AAEP,UAAI,eAAe,IAAI;AACrB,eAAO,YAAY,QAAQ,OAAO,MAAM,UAAU,GAAG,OAAO;AAAA,MAC9D;AAEA,YAAM,SAAS;AAEX,UAAA,UAAU,CAAC,OAAO,SAAS;AACtB,eAAA;AAAA,UACL,OAAO,WAAW,QAAQ,MAAM,SAAS,OAAO,IAAI,GAAG;AAAA,QAAA;AAAA,MAE3D;AAAA,IAAA,GA5Ca;AA+CT,UAAA,cAAc,wBAAC,MAAkB;AACzB;AACZ,mBAAa,WAAW;AAEnB,UAAA,EAAE,OAAgB,aAAa,SAAU;AAChC,oBAAA,OAAO,WAAW,QAAQ,GAAG;AAAA,IAAA,GALzB;AAQH,qBAAA,QAAQ,aAAa,WAAW;AAChC,qBAAA,QAAQ,SAAS,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjI7C,IAAItD,UAAQ,gCAASA,OAAM,MAAM;AAC/B,OAAK;AACL,SAAO;AACT,GAHY;AAIZ,IAAIC,YAAU;AAAA,EACZ,MAAM;AACR;AACA,IAAI,mBAAmB,UAAU,OAAO;AAAA,EACtC,MAAM;AAAA,EACN,OAAOD;AAAAA,EACP,SAASC;AACX,CAAC;ACTD,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWQ;AAAAA,EACX,OAAO;AAAA,EACP,SAAS,gCAASN,WAAU;AAC1B,WAAO;AAAA,MACL,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIC,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWH;AAAAA,EACX,cAAc;AAChB;AAEA,SAASI,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,SAAO,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,IACxD,SAAS,KAAK,GAAG,MAAM;AAAA,IACvB,MAAM;AAAA,EACP,GAAE,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,CAAC,GAAG,EAAE;AACjE;AALSA;AAOTD,SAAO,SAASC;;;;ACgCV,UAAA,EAAE,MAAM;AACd,UAAM,eAAe;AACrB,UAAM,cAAc;AACpB,UAAM,eAAe;AAErB,UAAM,aAAa;AAAA,MACjB,MAAM,aAAa,IAAI,sBAAsB,MAAM,UAAU;AAAA,IAAA;AAG/D,QAAI,WAA0B;AACxB,UAAAiD,UAAS,wBAAC,YAAoB;AAClC,UAAI,SAAU;AACd,YAAM,MAAM,6BAAM,aAAa,QAAQ,OAAO,GAAlC;AACR;AACO,iBAAA,OAAO,YAAY,KAAK,GAAG;AAAA,IAAA,GAJzB;AAMf,UAAM,aAAa,6BAAM;AACvB,UAAI,UAAU;AACZ,sBAAc,QAAQ;AACX,mBAAA;AAAA,MACb;AAAA,IAAA,GAJiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BnB,UAAM,OAAO;AACP,UAAA,YAAY,IAA8B,IAAI;AACpD,UAAM,eAAe;AACrB,UAAM,eAAe;AACrB,UAAM,iBAAiB;AACvB,UAAM,cAAc;AACpB,UAAM,mBAAmB;AACzB,UAAM,kBAAkB;AAAA,MACtB,MAAM,aAAa,IAAI,kBAAkB,MAAM;AAAA,IAAA;AAEjD,UAAM,oBAAoB;AAAA,MAAS,MACjC,aAAa,IAAI,wBAAwB;AAAA,IAAA;AAE3C,UAAM,iBAAiB,SAAS,MAAM,aAAa,IAAI,sBAAsB,CAAC;AAE9E,gBAAY,MAAM;AACV,YAAA,oBAAoB,aAAa,IAAI,wBAAwB;AACnE,UAAI,YAAY,QAAQ;AACtB,oBAAY,OAAO,YAAY;AAAA,MACjC;AAAA,IAAA,CACD;AAED,gBAAY,MAAM;AACV,YAAA,YAAY,aAAa,IAAI,uBAAuB;AAC1D,UAAI,YAAY,QAAQ;AACtB,oBAAY,OAAO,aAAa;AAAA,MAClC;AAAA,IAAA,CACD;AAED,gBAAY,MAAM;AACH,mBAAA,iBAAiB,aAAa,IAAI,2BAA2B;AAAA,IAAA,CAC3E;AAED,gBAAY,MAAM;AAChB,mBAAa,mBAAmB,aAAa;AAAA,QAC3C;AAAA,MAAA;AAAA,IACF,CACD;AAED,gBAAY,MAAM;AACV,YAAA,oBAAoB,aAAa,IAAI,iCAAiC;AACtE,YAAA,YAAY,SAAS,iBAAiB,gCAAgC;AAElE,gBAAA,QAAQ,CAAC,aAAkC;AACnD,iBAAS,aAAa;AAEtB,iBAAS,MAAM;AACf,iBAAS,KAAK;AAAA,MAAA,CACf;AAAA,IAAA,CACF;AAED,gBAAY,MAAM;AACZ,UAAA,CAAC,YAAY,OAAQ;AAErB,UAAA,YAAY,OAAO,iBAAiB;AAC1B,oBAAA,OAAO,OAAO,MAAM,SAAS;AACzC;AAAA,MACF;AAEI,UAAA,YAAY,OAAO,WAAW;AACpB,oBAAA,OAAO,OAAO,MAAM,SAAS;AACzC;AAAA,MACF;AAEY,kBAAA,OAAO,OAAO,MAAM,SAAS;AAAA,IAAA,CAC1C;AAEqB,0BAAA,MAAM,UAAU,OAAO;AAAA,MAC3C,QAAQ,wBAAC,UAAU;AACX,cAAA,MAAM,MAAM,SAAS,QAAQ;AAC7B,cAAA,UAAU,MAAM,OAAO;AAEzB,YAAA,QAAQ,SAAS,sBAAsB;AACzC,gBAAM,OAAO,QAAQ;AACjB,cAAA,KAAK,gBAAgB,kBAAkB;AACzC,kBAAM,UAAU,KAAK;AAGf,kBAAA,MAAMD,IAAS,qBAAqB;AAAA,cACxC,IAAI,UAAU;AAAA,cACd,IAAI;AAAA,YAAA,CACL;AACDA,gBAAS,eAAe,SAAS,EAAE,IAAK,CAAA;AAAA,UAAA,WAC/B,KAAK,gBAAgB,eAAe;AAC7C,kBAAM,QAAQ,KAAK;AACb,kBAAA,MAAMA,IAAS,qBAAqB,CAAC,IAAI,SAAS,IAAI,OAAO,CAAC;AAC9D,kBAAA,YAAYA,IAAS,MAAM,aAAa,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC5D,gBAAI,iBAA2C;AAC/C,gBAAI,kBAAqC;AACzC,gBAAI,WAAW;AACb,oBAAM,YAAY,iBAAiB;AAAA,gBACjC,MAAM;AAAA,cAAA;AAER,yBAAW,YAAY,WAAW;AAChC,oBAAI,SAAS,QAAQ,SAAS,UAAU,YAAY;AAChC,oCAAA;AACD,mCAAA;AAAA,gBACnB;AAAA,cACF;AAAA,YACF;AACA,gBAAI,CAAC,iBAAiB;AACpB,oBAAM,WAAW,iBAAiB,gBAAgB,MAAM,SAAS;AACjE,kBAAI,UAAU;AACM,kCAAAA,IAAS,eAAe,SAAS,SAAS;AAAA,kBAC1D;AAAA,gBAAA,CACD;AACgB,iCAAA;AAAA,cACnB;AAAA,YACF;AACA,gBAAI,iBAAiB;AACb,oBAAA,SAAS,gBAAgB,QAAQ;AAAA,gBACrC,CAACE,YAAWA,QAAO,SAAS,eAAe;AAAA,cAAA;AAE7C,kBAAI,QAAQ;AACV,uBAAO,QAAQ,MAAM;AAAA,cACvB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF,GAnDQ;AAAA,IAmDR,CACD;AAED,cAAU,YAAY;AAGpB,aAAO,WAAW,IAAI;AACtB,aAAO,QAAQ,IAAI;AACnB,aAAO,OAAO,IAAI;AAClB,aAAO,YAAY,IAAI;AACvB,aAAO,aAAa,IAAI;AACxB,aAAO,cAAc,IAAI;AACzB,aAAO,cAAc,IAAI;AACzB,aAAO,aAAa,IAAI;AACxB,aAAO,aAAa,IAAI;AAExBF,UAAS,cAAc;AAEvB,qBAAe,UAAU;AACnB,YAAAA,IAAS,MAAM,UAAU,KAAK;AACpC,kBAAY,SAASA,IAAS;AAC9B,qBAAe,UAAU;AAEzB,aAAO,KAAK,IAAIA;AACT,aAAA,OAAO,IAAIA,IAAS;AAE3B,WAAK,OAAO;AAAA,IAAA,CACb;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClMD,SAASnB,UAAQ,GAAG;AAAE;AAA2B,SAAOA,YAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUX,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAIW,UAAQ,CAAC;AAAI;AAArTA;AACT,SAASI,kBAAgB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA3KD;AACT,SAASC,iBAAe,GAAG;AAAE,MAAI,IAAIC,eAAa,GAAG,QAAQ;AAAG,SAAO,YAAYN,UAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApGK;AACT,SAASC,eAAa,GAAG,GAAG;AAAE,MAAI,YAAYN,UAAQ,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAYA,UAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAnTM;AACT,IAAIzC,UAAQ,gCAASA,OAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,4BAA4B,OAAO,GAAG,aAAa,GAAG,kLAAkL,EAAE,OAAO,GAAG,iBAAiB,GAAG,gBAAgB,EAAE,OAAO,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,OAAO,GAAG,iBAAiB,GAAG,qGAAqG,EAAE,OAAO,GAAG,uBAAuB,GAAG,cAAc,EAAE,OAAO,GAAG,mBAAmB,GAAG,kHAAkH,EAAE,OAAO,GAAG,gBAAgB,GAAG,+CAA+C,EAAE,OAAO,GAAG,2BAA2B,GAAG,oBAAoB,EAAE,OAAO,GAAG,yBAAyB,GAAG,8CAA8C,EAAE,OAAO,GAAG,0BAA0B,GAAG,oBAAoB,EAAE,OAAO,GAAG,wBAAwB,GAAG,8OAA8O,EAAE,OAAO,GAAG,2BAA2B,GAAG,UAAU,EAAE,OAAO,GAAG,2BAA2B,GAAG,kBAAkB,EAAE,OAAO,GAAG,2BAA2B,GAAG,eAAe,EAAE,OAAO,GAAG,2BAA2B,GAAG,sEAAsE,EAAE,OAAO,GAAG,0BAA0B,GAAG,iBAAiB,EAAE,OAAO,GAAG,2BAA2B,GAAG,wBAAwB,EAAE,OAAO,GAAG,kCAAkC,GAAG,iSAAiS,EAAE,OAAO,GAAG,oBAAoB,GAAG,yDAAyD,EAAE,OAAO,GAAG,YAAY,GAAG,yBAAyB,EAAE,OAAO,GAAG,qBAAqB,GAAG,gDAAgD,EAAE,OAAO,GAAG,uBAAuB,GAAG,gBAAgB,EAAE,OAAO,GAAG,uBAAuB,GAAG,iBAAiB,EAAE,OAAO,GAAG,uBAAuB,GAAG,oEAAoE,EAAE,OAAO,GAAG,kBAAkB,GAAG,wBAAwB,EAAE,OAAO,GAAG,kBAAkB,GAAG,yBAAyB,EAAE,OAAO,GAAG,mBAAmB,GAAG,mDAAmD,EAAE,OAAO,GAAG,uBAAuB,GAAG,uBAAuB,EAAE,OAAO,GAAG,yBAAyB,GAAG,gBAAgB,EAAE,OAAO,GAAG,kBAAkB,GAAG,qBAAqB,EAAE,OAAO,GAAG,mBAAmB,GAAG,8DAA8D,EAAE,OAAO,GAAG,yBAAyB,GAAG,0FAA0F,EAAE,OAAO,GAAG,0CAA0C,GAAG,qBAAqB,EAAE,OAAO,GAAG,2CAA2C,GAAG,+EAA+E,EAAE,OAAO,GAAG,0CAA0C,GAAG,sDAAsD,EAAE,OAAO,GAAG,0BAA0B,GAAG,uBAAuB,EAAE,OAAO,GAAG,4BAA4B,GAAG,gBAAgB,EAAE,OAAO,GAAG,qBAAqB,GAAG,qBAAqB,EAAE,OAAO,GAAG,sBAAsB,GAAG,iEAAiE,EAAE,OAAO,GAAG,4BAA4B,GAAG,6FAA6F,EAAE,OAAO,GAAG,6CAA6C,GAAG,qBAAqB,EAAE,OAAO,GAAG,8CAA8C,GAAG,kFAAkF,EAAE,OAAO,GAAG,6CAA6C,GAAG,mDAAmD,EAAE,OAAO,GAAG,uBAAuB,GAAG,uBAAuB,EAAE,OAAO,GAAG,yBAAyB,GAAG,gBAAgB,EAAE,OAAO,GAAG,kBAAkB,GAAG,qBAAqB,EAAE,OAAO,GAAG,mBAAmB,GAAG,8DAA8D,EAAE,OAAO,GAAG,yBAAyB,GAAG,0FAA0F,EAAE,OAAO,GAAG,0CAA0C,GAAG,qBAAqB,EAAE,OAAO,GAAG,2CAA2C,GAAG,+EAA+E,EAAE,OAAO,GAAG,0CAA0C,GAAG,oDAAoD,EAAE,OAAO,GAAG,wBAAwB,GAAG,uBAAuB,EAAE,OAAO,GAAG,0BAA0B,GAAG,gBAAgB,EAAE,OAAO,GAAG,mBAAmB,GAAG,qBAAqB,EAAE,OAAO,GAAG,oBAAoB,GAAG,+DAA+D,EAAE,OAAO,GAAG,0BAA0B,GAAG,2FAA2F,EAAE,OAAO,GAAG,2CAA2C,GAAG,qBAAqB,EAAE,OAAO,GAAG,4CAA4C,GAAG,gFAAgF,EAAE,OAAO,GAAG,2CAA2C,GAAG,wDAAwD,EAAE,OAAO,GAAG,4BAA4B,GAAG,uBAAuB,EAAE,OAAO,GAAG,8BAA8B,GAAG,gBAAgB,EAAE,OAAO,GAAG,uBAAuB,GAAG,qBAAqB,EAAE,OAAO,GAAG,wBAAwB,GAAG,mEAAmE,EAAE,OAAO,GAAG,8BAA8B,GAAG,+FAA+F,EAAE,OAAO,GAAG,+CAA+C,GAAG,qBAAqB,EAAE,OAAO,GAAG,gDAAgD,GAAG,oFAAoF,EAAE,OAAO,GAAG,+CAA+C,GAAG,uDAAuD,EAAE,OAAO,GAAG,2BAA2B,GAAG,uBAAuB,EAAE,OAAO,GAAG,6BAA6B,GAAG,gBAAgB,EAAE,OAAO,GAAG,sBAAsB,GAAG,qBAAqB,EAAE,OAAO,GAAG,uBAAuB,GAAG,kEAAkE,EAAE,OAAO,GAAG,6BAA6B,GAAG,8FAA8F,EAAE,OAAO,GAAG,8CAA8C,GAAG,qBAAqB,EAAE,OAAO,GAAG,+CAA+C,GAAG,mFAAmF,EAAE,OAAO,GAAG,8CAA8C,GAAG,stBAAstB;AAC5lP,GAHY;AAMZ,IAAIQ,iBAAe;AAAA,EACjB,MAAM,gCAASC,MAAK,OAAO;AACzB,QAAI,WAAW,MAAM;AACrB,WAAO;AAAA,MACL,UAAU;AAAA,MACV,KAAK,aAAa,eAAe,aAAa,cAAc,aAAa,eAAe,SAAS,aAAa,WAAW,QAAQ;AAAA,MACjI,QAAQ,aAAa,eAAe,aAAa,mBAAmB;AAAA,MACpE,SAAS,aAAa,iBAAiB,aAAa,kBAAkB,aAAa,oBAAoB;AAAA,MACvG,MAAM,aAAa,cAAc,aAAa,gBAAgB,SAAS,aAAa,YAAY,aAAa,gBAAgB,aAAa,kBAAkB,QAAQ;AAAA,IAC1K;AAAA,EACG,GATK;AAUR;AACA,IAAIR,YAAU;AAAA,EACZ,MAAM,gCAASQ,MAAK,OAAO;AACzB,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,iCAAiC,MAAM,QAAQ;AAAA,EACxD,GAHK;AAAA,EAIN,SAAS,gCAAS,QAAQ,OAAO;AAC/B,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,mBAAmB;AAAA,MACzB,wBAAwB,MAAM,QAAQ,aAAa,UAAU,MAAM,QAAQ,aAAa;AAAA,MACxF,wBAAwB,MAAM,QAAQ,aAAa;AAAA,MACnD,yBAAyB,MAAM,QAAQ,aAAa;AAAA,MACpD,2BAA2B,MAAM,QAAQ,aAAa;AAAA,MACtD,6BAA6B,MAAM,QAAQ,aAAa;AAAA,MACxD,4BAA4B,MAAM,QAAQ,aAAa;AAAA,IAC7D,CAAK;AAAA,EACF,GAVQ;AAAA,EAWT,gBAAgB;AAAA,EAChB,aAAa,gCAAS,YAAY,OAAO;AACvC,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,wBAAwB8B,kBAAgBA,kBAAgBA,kBAAgBA,kBAAgB,IAAI,MAAM,UAAU,MAAM,QAAQ,aAAa,MAAM,GAAG,MAAM,UAAU,MAAM,QAAQ,aAAa,MAAM,GAAG,MAAM,WAAW,MAAM,QAAQ,aAAa,OAAO,GAAG,MAAM,aAAa,MAAM,QAAQ,aAAa,SAAS,CAAC;AAAA,EAC3T,GAHY;AAAA,EAIb,aAAa;AAAA,EACb,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,WAAW;AACb;AACA,IAAI,aAAa,UAAU,OAAO;AAAA,EAChC,MAAM;AAAA,EACN,OAAOvC;AAAAA,EACP,SAASC;AAAAA,EACT,cAAcO;AAChB,CAAC;ACxCD,IAAIiD,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAW/C;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASN,WAAU;AAC1B,WAAO;AAAA,MACL,UAAU;AAAA,MACV,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWQ;AAAAA,EACX,OAAO,CAAC,OAAO;AAAA,EACf,cAAc;AAAA,EACd,OAAO;AAAA,IACL,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS,gCAASe,WAAU;AAC1B,QAAI,QAAQ;AACZ,QAAI,KAAK,QAAQ,MAAM;AACrB,WAAK,eAAe,WAAW,WAAY;AACzC,cAAM,MAAM;AAAA,UACV,SAAS,MAAM;AAAA,UACf,MAAM;AAAA,QAChB,CAAS;AAAA,MACT,GAAS,KAAK,QAAQ,IAAI;AAAA,IACrB;AAAA,EACF,GAVQ;AAAA,EAWT,eAAe,gCAASC,iBAAgB;AACtC,SAAK,kBAAiB;AAAA,EACvB,GAFc;AAAA,EAGf,SAAS;AAAA,IACP,OAAO,gCAAS,MAAM,QAAQ;AAC5B,WAAK,MAAM,SAAS,MAAM;AAAA,IAC3B,GAFM;AAAA,IAGP,cAAc,gCAAS,eAAe;AACpC,WAAK,kBAAiB;AACtB,WAAK,MAAM;AAAA,QACT,SAAS,KAAK;AAAA,QACd,MAAM;AAAA,MACd,CAAO;AAAA,IACF,GANa;AAAA,IAOd,mBAAmB,gCAAS,oBAAoB;AAC9C,UAAI,KAAK,cAAc;AACrB,qBAAa,KAAK,YAAY;AAC9B,aAAK,eAAe;AAAA,MACrB;AAAA,IACF,GALkB;AAAA,EAMpB;AAAA,EACD,UAAU;AAAA,IACR,eAAe,gCAAS,gBAAgB;AACtC,aAAO;AAAA,QACL,MAAM,CAAC,KAAK,YAAYgC;AAAAA,QACxB,SAAS,CAAC,KAAK,eAAeC;AAAAA,QAC9B,MAAM,CAAC,KAAK,YAAYC;AAAAA,QACxB,OAAO,CAAC,KAAK,aAAaC;AAAAA,MAClC,EAAQ,KAAK,QAAQ,QAAQ;AAAA,IACxB,GAPc;AAAA,IAQf,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,UAAU,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,KAAK,QAAQ;AAAA,IACtF,GAFe;AAAA,EAGjB;AAAA,EACD,YAAY;AAAA,IACV,WAAWC;AAAAA,IACX,gBAAgBJ;AAAAA,IAChB,WAAWC;AAAAA,IACX,yBAAyBC;AAAAA,IACzB,iBAAiBC;AAAAA,EAClB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,SAAS,UAAU,GAAG;AAAE;AAA2B,SAAO,YAAY,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUrC,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,UAAU,CAAC;AAAI;AAA3T;AACT,SAAS,UAAU,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUa,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAxP;AACT,SAAS,gBAAgB,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,UAAU,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,wBAAkB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,UAAU,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAAtb;AACT,SAAS,kBAAkB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,iBAAiB,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA/K;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,IAAI,eAAe,GAAG,QAAQ;AAAG,SAAO,YAAY,UAAU,CAAC,IAAI,IAAI,IAAI;AAAK;AAA1G;AACT,SAAS,eAAe,GAAG,GAAG;AAAE,MAAI,YAAY,UAAU,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,UAAU,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAzT;AACT,IAAInB,eAAa,CAAC,YAAY;AAC9B,SAAS6C,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,CAAC,KAAK,GAAG,SAAS,GAAG,OAAO,QAAQ,UAAU;AAAA,IACvD,MAAM;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,EACnB,GAAK,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,UAAU,aAAa,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,SAAS,GAAG;AAAA,IACpI,KAAK;AAAA,IACL,SAAS,OAAO;AAAA,IAChB,eAAe,SAAS;AAAA,EACzB,GAAE,MAAM,GAAG,CAAC,WAAW,eAAe,CAAC,MAAM,aAAa,mBAAmB,OAAO,WAAW;AAAA,IAC9F,KAAK;AAAA,IACL,SAAS,CAAC,KAAK,GAAG,gBAAgB,GAAG,OAAO,QAAQ,iBAAiB;AAAA,EACtE,GAAE,KAAK,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,UAAU,WAAW,aAAa,mBAAmB,UAAU;AAAA,IACtG,KAAK;AAAA,EACN,GAAE,EAAE,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,cAAc,OAAO,UAAU,cAAc,OAAO,UAAU,OAAO,OAAO,UAAU,OAAO,SAAS,iBAAiB,SAAS,cAAc,OAAO,SAAS,gBAAgB,MAAM,GAAG,WAAW;AAAA,IACvQ,SAAS,KAAK,GAAG,aAAa;AAAA,EAC/B,GAAE,KAAK,IAAI,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI3C,gBAAmB,OAAO,WAAW;AAAA,IACvF,SAAS,KAAK,GAAG,aAAa;AAAA,EAClC,GAAK,KAAK,IAAI,aAAa,CAAC,GAAG,CAACA,gBAAmB,QAAQ,WAAW;AAAA,IAClE,SAAS,KAAK,GAAG,SAAS;AAAA,EAC3B,GAAE,KAAK,IAAI,SAAS,CAAC,GAAG,gBAAgB,OAAO,QAAQ,OAAO,GAAG,EAAE,GAAGA,gBAAmB,OAAO,WAAW;AAAA,IAC1G,SAAS,KAAK,GAAG,QAAQ;AAAA,EAC7B,GAAK,KAAK,IAAI,QAAQ,CAAC,GAAG,gBAAgB,OAAO,QAAQ,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,UAAW,GAAE,YAAY,wBAAwB,OAAO,UAAU,OAAO,GAAG;AAAA,IAC9J,KAAK;AAAA,IACL,SAAS,OAAO;AAAA,EACpB,GAAK,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,QAAQ,aAAa,SAAS,UAAW,GAAE,mBAAmB,OAAO,eAAe,WAAW;AAAA,IAC/H,KAAK;AAAA,EACN,GAAE,KAAK,IAAI,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,UAAW,GAAE,mBAAmB,UAAU,WAAW;AAAA,IACtG,SAAS,KAAK,GAAG,aAAa;AAAA,IAC9B,MAAM;AAAA,IACN,cAAc,SAAS;AAAA,IACvB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,aAAO,SAAS,gBAAgB,SAAS,aAAa,MAAM,UAAU,SAAS;AAAA,IACrF;AAAA,IACI,WAAW;AAAA,EACf,GAAK,gBAAgB,gBAAgB,IAAI,OAAO,gBAAgB,GAAG,KAAK,IAAI,aAAa,CAAC,CAAC,GAAG,EAAE,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,aAAa,WAAW,GAAG,WAAW;AAAA,IACpM,SAAS,CAAC,KAAK,GAAG,WAAW,GAAG,OAAO,SAAS;AAAA,EACjD,GAAE,KAAK,IAAI,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC,GAAI,IAAIF,YAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE;AAC/I;AAxCS6C;AA0CT7D,WAAS,SAAS6D;AAElB,SAAS,mBAAmB,GAAG;AAAE,SAAO,mBAAmB,CAAC,KAAK,iBAAiB,CAAC,KAAK,4BAA4B,CAAC,KAAK,mBAAoB;AAAG;AAAxI;AACT,SAAS,qBAAqB;AAAE,QAAM,IAAI,UAAU,sIAAsI;AAAI;AAArL;AACT,SAAS,4BAA4B,GAAG,GAAG;AAAE,MAAI,GAAG;AAAE,QAAI,YAAY,OAAO,EAAG,QAAO,kBAAkB,GAAG,CAAC;AAAG,QAAI,IAAI,CAAA,EAAG,SAAS,KAAK,CAAC,EAAE,MAAM,GAAG,EAAE;AAAG,WAAO,aAAa,KAAK,EAAE,gBAAgB,IAAI,EAAE,YAAY,OAAO,UAAU,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC,IAAI,gBAAgB,KAAK,2CAA2C,KAAK,CAAC,IAAI,kBAAkB,GAAG,CAAC,IAAI;AAAA,EAAO;AAAI;AAAjX;AACT,SAAS,iBAAiB,GAAG;AAAE,MAAI,eAAe,OAAO,UAAU,QAAQ,EAAE,OAAO,QAAQ,KAAK,QAAQ,EAAE,YAAY,EAAG,QAAO,MAAM,KAAK,CAAC;AAAI;AAAxI;AACT,SAAS,mBAAmB,GAAG;AAAE,MAAI,MAAM,QAAQ,CAAC,EAAG,QAAO,kBAAkB,CAAC;AAAI;AAA5E;AACT,SAAS,kBAAkB,GAAG,GAAG;AAAE,GAAC,QAAQ,KAAK,IAAI,EAAE,YAAY,IAAI,EAAE;AAAS,WAAS,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,IAAK,GAAE,CAAC,IAAI,EAAE,CAAC;AAAG,SAAO;AAAI;AAA3I;AACT,IAAI,aAAa;AACjB,IAAI1D,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWoD;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,SAAS,UAAU;AAAA,EAC3B,MAAM,gCAASpC,QAAO;AACpB,WAAO;AAAA,MACL,UAAU,CAAE;AAAA,IAClB;AAAA,EACG,GAJK;AAAA,EAKN,cAAc;AAAA,EACd,SAAS,gCAASI,WAAU;AAC1B,kBAAc,GAAG,OAAO,KAAK,KAAK;AAClC,kBAAc,GAAG,UAAU,KAAK,QAAQ;AACxC,kBAAc,GAAG,gBAAgB,KAAK,aAAa;AACnD,kBAAc,GAAG,qBAAqB,KAAK,iBAAiB;AAC5D,QAAI,KAAK,aAAa;AACpB,WAAK,YAAW;AAAA,IACjB;AAAA,EACF,GARQ;AAAA,EAST,eAAe,gCAASC,iBAAgB;AACtC,SAAK,aAAY;AACjB,QAAI,KAAK,MAAM,aAAa,KAAK,YAAY;AAC3C,aAAO,MAAM,KAAK,MAAM,SAAS;AAAA,IAClC;AACD,kBAAc,IAAI,OAAO,KAAK,KAAK;AACnC,kBAAc,IAAI,UAAU,KAAK,QAAQ;AACzC,kBAAc,IAAI,gBAAgB,KAAK,aAAa;AACpD,kBAAc,IAAI,qBAAqB,KAAK,iBAAiB;AAAA,EAC9D,GATc;AAAA,EAUf,SAAS;AAAA,IACP,KAAK,gCAAS,IAAIsC,UAAS;AACzB,UAAIA,SAAQ,MAAM,MAAM;AACtB,QAAAA,SAAQ,KAAK;AAAA,MACd;AACD,WAAK,WAAW,CAAE,EAAC,OAAO,mBAAmB,KAAK,QAAQ,GAAG,CAACA,QAAO,CAAC;AAAA,IACvE,GALI;AAAA,IAML,QAAQ,gCAAS,OAAO,QAAQ;AAC9B,UAAI,QAAQ,KAAK,SAAS,UAAU,SAAU,GAAG;AAC/C,eAAO,EAAE,OAAO,OAAO,QAAQ;AAAA,MACvC,CAAO;AACD,UAAI,UAAU,IAAI;AAChB,aAAK,SAAS,OAAO,OAAO,CAAC;AAC7B,aAAK,MAAM,OAAO,MAAM;AAAA,UACtB,SAAS,OAAO;AAAA,QAC1B,CAAS;AAAA,MACF;AAAA,IACF,GAVO;AAAA,IAWR,OAAO,gCAAS,MAAMA,UAAS;AAC7B,UAAI,KAAK,SAASA,SAAQ,OAAO;AAC/B,aAAK,IAAIA,QAAO;AAAA,MACjB;AAAA,IACF,GAJM;AAAA,IAKP,UAAU,gCAAS,SAASA,UAAS;AACnC,WAAK,OAAO;AAAA,QACV,SAASA;AAAA,QACT,MAAM;AAAA,MACd,CAAO;AAAA,IACF,GALS;AAAA,IAMV,eAAe,gCAAS,cAAc,OAAO;AAC3C,UAAI,KAAK,UAAU,OAAO;AACxB,aAAK,WAAW;MACjB;AAAA,IACF,GAJc;AAAA,IAKf,mBAAmB,gCAAS,oBAAoB;AAC9C,WAAK,WAAW;IACjB,GAFkB;AAAA,IAGnB,SAAS,gCAAS,UAAU;AAC1B,WAAK,MAAM,UAAU,aAAa,KAAK,mBAAmB,EAAE;AAC5D,UAAI,KAAK,YAAY;AACnB,eAAO,IAAI,SAAS,KAAK,MAAM,WAAW,KAAK,cAAc,KAAK,UAAU,OAAO,OAAO,KAAK;AAAA,MAChG;AAAA,IACF,GALQ;AAAA,IAMT,SAAS,gCAAS,UAAU;AAC1B,UAAI,QAAQ;AACZ,UAAI,KAAK,MAAM,aAAa,KAAK,cAAc,QAAQ,KAAK,QAAQ,GAAG;AACrE,mBAAW,WAAY;AACrB,iBAAO,MAAM,MAAM,MAAM,SAAS;AAAA,QACnC,GAAE,GAAG;AAAA,MACP;AAAA,IACF,GAPQ;AAAA,IAQT,aAAa,gCAAS,cAAc;AAClC,UAAI,CAAC,KAAK,gBAAgB,CAAC,KAAK,YAAY;AAC1C,YAAI;AACJ,aAAK,eAAe,SAAS,cAAc,OAAO;AAClD,aAAK,aAAa,OAAO;AACzB,qBAAa,KAAK,cAAc,UAAU,kBAAkB,KAAK,eAAe,QAAQ,oBAAoB,WAAW,kBAAkB,gBAAgB,YAAY,QAAQ,oBAAoB,WAAW,kBAAkB,gBAAgB,SAAS,QAAQ,oBAAoB,SAAS,SAAS,gBAAgB,KAAK;AAC1T,iBAAS,KAAK,YAAY,KAAK,YAAY;AAC3C,YAAI,YAAY;AAChB,iBAAS,cAAc,KAAK,aAAa;AACvC,cAAI,kBAAkB;AACtB,mBAAS,aAAa,KAAK,YAAY,UAAU,GAAG;AAClD,+BAAmB,YAAY,MAAM,KAAK,YAAY,UAAU,EAAE,SAAS,IAAI;AAAA,UAChF;AACD,uBAAa,2DAA2D,OAAO,YAAY,4CAA4C,EAAE,OAAO,KAAK,mBAAmB,uCAAuC,EAAE,OAAO,iBAAiB,kFAAkF;AAAA,QAC5T;AACD,aAAK,aAAa,YAAY;AAAA,MAC/B;AAAA,IACF,GAjBY;AAAA,IAkBb,cAAc,gCAAS,eAAe;AACpC,UAAI,KAAK,cAAc;AACrB,iBAAS,KAAK,YAAY,KAAK,YAAY;AAC3C,aAAK,eAAe;AAAA,MACrB;AAAA,IACF,GALa;AAAA,EAMf;AAAA,EACD,UAAU;AAAA,IACR,mBAAmB,gCAAS,oBAAoB;AAC9C,aAAO,kBAAiB;AAAA,IACzB,GAFkB;AAAA,EAGpB;AAAA,EACD,YAAY;AAAA,IACV,cAAc9D;AAAAA,IACd,QAAQ6B;AAAAA,EACT;AACH;AAEA,SAASI,UAAQ,GAAG;AAAE;AAA2B,SAAOA,YAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUX,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAIW,UAAQ,CAAC;AAAI;AAArTA;AACT,SAASC,UAAQ,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUC,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAtPD;AACT,SAASE,gBAAc,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAIF,UAAQ,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUC,IAAG;AAAEE,wBAAgB,GAAGF,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAID,UAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUC,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAA9aC;AACT,SAASC,kBAAgB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAIC,iBAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA3KD;AACT,SAASC,iBAAe,GAAG;AAAE,MAAI,IAAIC,eAAa,GAAG,QAAQ;AAAG,SAAO,YAAYN,UAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApGK;AACT,SAASC,eAAa,GAAG,GAAG;AAAE,MAAI,YAAYN,UAAQ,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAYA,UAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAnTM;AACT,SAASnC,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,0BAA0B,iBAAiB,cAAc;AAC7D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,YAAY,mBAAmB,MAAM;AAAA,IACvD,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAACc,gBAAmB,OAAO,WAAW;AAAA,QAC3C,KAAK;AAAA,QACL,SAAS,KAAK,GAAG,MAAM;AAAA,QACvB,OAAO,KAAK,GAAG,QAAQ,MAAM;AAAA,UAC3B,UAAU,KAAK;AAAA,QACzB,CAAS;AAAA,MACT,GAAS,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,YAAY,iBAAiB,WAAW;AAAA,QAC9D,MAAM;AAAA,QACN,KAAK;AAAA,QACL,SAAS,SAAS;AAAA,QAClB,SAAS,SAAS;AAAA,MAC1B,GAASkB,gBAAc,CAAA,GAAI,KAAK,IAAI,YAAY,CAAC,CAAC,GAAG;AAAA,QAC7C,WAAW,QAAQ,WAAY;AAC7B,iBAAO,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,MAAM,UAAU,SAAU,KAAK;AACrG,mBAAO,UAAS,GAAI,YAAY,yBAAyB;AAAA,cACvD,KAAK,IAAI;AAAA,cACT,SAAS;AAAA,cACT,WAAW,KAAK;AAAA,cAChB,WAAW,KAAK;AAAA,cAChB,UAAU,KAAK;AAAA,cACf,UAAU,KAAK;AAAA,cACf,WAAW,KAAK;AAAA,cAChB,aAAa,KAAK;AAAA,cAClB,kBAAkB,KAAK;AAAA,cACvB,UAAU,KAAK;AAAA,cACf,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,uBAAO,SAAS,OAAO,MAAM;AAAA,cAC7C;AAAA,cACc,IAAI,KAAK;AAAA,YACV,GAAE,MAAM,GAAG,CAAC,WAAW,aAAa,aAAa,YAAY,YAAY,aAAa,eAAe,oBAAoB,YAAY,IAAI,CAAC;AAAA,UACvJ,CAAW,GAAG,GAAG;QACjB,CAAS;AAAA,QACD,GAAG;AAAA,MACX,GAAS,IAAI,CAAC,WAAW,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC;AAAA,IAC1C,CAAK;AAAA,IACD,GAAG;AAAA,EACP,CAAG;AACH;AA1CShC;AA4CTD,SAAO,SAASC;;;;ACjYhB,UAAM,QAAQ;AACd,UAAM,aAAa;AACnB,UAAM,eAAe;AAErB;AAAA,MACE,MAAM,WAAW;AAAA,MACjB,CAAC,gBAAgB;AACX,YAAA,YAAY,WAAW,GAAG;AAC5B;AAAA,QACF;AAEY,oBAAA,QAAQ,CAAC0D,aAAY;AAC/B,gBAAM,IAAIA,QAAO;AAAA,QAAA,CAClB;AACD,mBAAW,gBAAgB;MAC7B;AAAA,MACA,EAAE,MAAM,KAAK;AAAA,IAAA;AAGf;AAAA,MACE,MAAM,WAAW;AAAA,MACjB,CAAC,qBAAqB;AAChB,YAAA,iBAAiB,WAAW,GAAG;AACjC;AAAA,QACF;AAEiB,yBAAA,QAAQ,CAACA,aAAY;AACpC,gBAAM,OAAOA,QAAO;AAAA,QAAA,CACrB;AACD,mBAAW,mBAAmB;MAChC;AAAA,MACA,EAAE,MAAM,KAAK;AAAA,IAAA;AAGf;AAAA,MACE,MAAM,WAAW;AAAA,MACjB,CAAC,cAAc;AACb,YAAI,WAAW;AACb,gBAAM,gBAAgB;AACtB,qBAAW,qBAAqB;AAAA,QAClC;AAAA,MACF;AAAA,IAAA;AAGF,aAAS,sBAAsB;AAC7B,YAAM,eACJ,SAAS,eAAe,qBAAqB,KAAK,mBAAmB;AACvE,YAAM,OAAO,SACV,cAAc,yBAAyB,EACvC,sBAAsB;AACzB,mBAAa,cAAc;AAAA;AAAA,aAEhB,KAAK,MAAM,EAAE;AAAA,eACX,OAAO,cAAc,KAAK,OAAO,KAAK,SAAS,EAAE;AAAA;AAAA;AAAA,IAGhE;AAZS;AAcT,aAAS,qBAAqB;AACtB,YAAA,QAAQ,SAAS,cAAc,OAAO;AAC5C,YAAM,KAAK;AACF,eAAA,KAAK,YAAY,KAAK;AACxB,aAAA;AAAA,IACT;AALS;AAOT;AAAA,MACE,MAAM,aAAa,IAAI,kBAAkB;AAAA,MACzC,MAAM,SAAS,mBAAmB;AAAA,MAClC,EAAE,WAAW,KAAK;AAAA,IAAA;AAEpB;AAAA,MACE,MAAM,aAAa,IAAI,wBAAwB;AAAA,MAC/C,MAAM,SAAS,mBAAmB;AAAA,MAClC,EAAE,WAAW,KAAK;AAAA,IAAA;;;;;;;;;ACrEpB,UAAM,eAAe;AAEf,UAAA,qBAAqB,wBAAC,UAA6B;AACnD,UAAA,aAAa,IAAI,iCAAiC,GAAG;AACvD,cAAM,eAAe;AACd,eAAA;AAAA,MACT;AACO,aAAA;AAAA,IAAA,GALkB;AAQ3B,cAAU,MAAM;AACP,aAAA,iBAAiB,gBAAgB,kBAAkB;AAAA,IAAA,CAC3D;AAED,oBAAgB,MAAM;AACb,aAAA,oBAAoB,gBAAgB,kBAAkB;AAAA,IAAA,CAC9D;;;;;;AClBD,MAAM,gBAAgB;AACtB,MAAM,eAAe;;;;AAErB,UAAM,iBAAiB;AACvB,UAAM,gBAAgB;AAAA,MAAS,MAC7B,eAAe,SAAS,KAAK,IAAI,eAAe,iBAAiB;AAAA,IAAA;AAGnE,UAAM,eAAe;AACrB,UAAM,kBAAkB;AAAA,MACtB,MAAM,aAAa,IAAI,kBAAkB,MAAM;AAAA,IAAA;AAGjD,UAAM,gBAAgB;AACtB,UAAM,gBAAgB;AAAA,MAAS,MAC7B,cAAc,gBAAgB,UAAU,OAAO;AAAA,IAAA;AAE3C,UAAA,mBAAmB,SAAS,MAAM;AAChC,YAAA,eAAe,cAAc,gBAAgB;AACnD,aAAO,eACH,cAAc,QAAQ,eAAe,eACrC;AAAA,IAAA,CACL;AAED,UAAM,qBAAqB;AAAA,MAAS,MAClC,eAAe,iBAAiB,eAAe,wBAC3C,GAAG,cAAc,KAAK,IAAI,eAAe,qBAAqB,MAAM,eAAe,cAAc,IAAI,KACrG;AAAA,IAAA;AAGN,UAAM,gBAAgB;AAAA,MACpB,MACE,cAAc,SACb,gBAAgB,QAAQ,iBAAiB,QAAQ;AAAA,IAAA;AAGtD,UAAM,QAAQ,SAAS,MAAM,mBAAmB,SAAS,cAAc,KAAK;AAC5E,aAAS,KAAK;;;;;;;;;;;;;;;;;;;ACVd,UAAM,QAAQ;AAId,UAAM,gBAAgB;AAQhB,UAAA,mBAAmB,wBAAC,cAA6C;AAAA,MACrE,OAAO,SAAS;AAAA,MAChB,SAAS,SAAS;AAAA,MAClB,OAAO,SAAS;AAAA,MAChB,SAAS,SAAS;AAAA,IAAA,IAJK;AAOzB,UAAM,mBAAmB,wBAACrC,YACxB,cAAc,eAAeA,QAAO,KAAK,GADlB;AAGzB,UAAM,UAAU;AAAA,MAA2B,MACzC,cAAc,cAAc,IAAI,gBAAgB;AAAA,IAAA;AAElD,UAAM,mBAAmB;AAAA,MAAgC,MACvD,cAAc,iBACV,iBAAiB,cAAc,cAA+B,IAC9D;AAAA,IAAA;AAEA,UAAA,mBAAmB,wBAACA,YAA2B;AAEnD,UAAI,CAACA,SAAQ;AACX;AAAA,MACF;AAEA,UAAI,iBAAiB,OAAO,UAAUA,QAAO,OAAO;AAClD;AAAA,MACF;AAEM,YAAA,WAAW,iBAAiBA,OAAM;AACxC,eAAS,KAAK;AAAA,IAAA,GAXS;AAcnB,UAAA,kBAAkB,wBAACA,YAA2B;AAC5C,YAAA,WAAW,iBAAiBA,OAAM;AACpC,UAAA,gBAAgB,cAAc,QAAQ;AAAA,IAAA,GAFpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClFxB,IAAI3B,UAAQ,gCAASA,OAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,iFAAiF,OAAO,GAAG,oBAAoB,GAAG,2BAA2B,EAAE,OAAO,GAAG,sBAAsB,GAAG,wBAAwB,EAAE,OAAO,GAAG,uBAAuB,GAAG,gBAAgB,EAAE,OAAO,GAAG,eAAe,GAAG,kBAAkB,EAAE,OAAO,GAAG,iBAAiB,GAAG,cAAc,EAAE,OAAO,GAAG,aAAa,GAAG,wUAAwU,EAAE,OAAO,GAAG,aAAa,GAAG,iGAAiG,EAAE,OAAO,GAAG,iCAAiC,GAAG,kHAAkH,EAAE,OAAO,GAAG,2BAA2B,GAAG,gEAAgE,EAAE,OAAO,GAAG,6BAA6B,GAAG,UAAU,EAAE,OAAO,GAAG,6BAA6B,GAAG,wBAAwB,EAAE,OAAO,GAAG,4BAA4B,GAAG,gBAAgB,EAAE,OAAO,GAAG,oBAAoB,GAAG,oNAAoN,EAAE,OAAO,GAAG,sBAAsB,GAAG,cAAc,EAAE,OAAO,GAAG,kBAAkB,GAAG,8IAA8I,EAAE,OAAO,GAAG,yBAAyB,GAAG,gDAAgD,EAAE,OAAO,GAAG,4BAA4B,GAAG,4CAA4C,EAAE,OAAO,GAAG,2BAA2B,GAAG,gBAAgB,EAAE,OAAO,GAAG,2BAA2B,GAAG,iBAAiB,EAAE,OAAO,GAAG,2BAA2B,GAAG,0EAA0E,EAAE,OAAO,GAAG,0BAA0B,GAAG,qBAAqB,EAAE,OAAO,GAAG,+BAA+B,GAAG,+FAA+F,EAAE,OAAO,GAAG,+BAA+B,GAAG,kGAAkG,EAAE,OAAO,GAAG,kCAAkC,GAAG,yFAAyF,EAAE,OAAO,GAAG,0BAA0B,GAAG,qBAAqB,EAAE,OAAO,GAAG,+BAA+B,GAAG,8GAA8G,EAAE,OAAO,GAAG,+BAA+B,GAAG,iHAAiH,EAAE,OAAO,GAAG,kCAAkC,GAAG,yEAAyE,EAAE,OAAO,GAAG,2BAA2B,GAAG,qBAAqB,EAAE,OAAO,GAAG,gCAAgC,GAAG,8FAA8F,EAAE,OAAO,GAAG,gCAAgC,GAAG,iGAAiG,EAAE,OAAO,GAAG,mCAAmC,GAAG,uIAAuI,EAAE,OAAO,GAAG,4BAA4B,GAAG,2BAA2B,EAAE,OAAO,GAAG,8BAA8B,GAAG,wBAAwB,EAAE,OAAO,GAAG,uBAAuB,GAAG,qBAAqB,EAAE,OAAO,GAAG,wBAAwB,GAAG,gBAAgB,EAAE,OAAO,GAAG,uBAAuB,GAAG,+CAA+C,EAAE,OAAO,GAAG,yBAAyB,GAAG,cAAc,EAAE,OAAO,GAAG,qBAAqB,GAAG,+EAA+E,EAAE,OAAO,GAAG,gCAAgC,GAAG,qZAAqZ,EAAE,OAAO,GAAG,4BAA4B,GAAG,iBAAiB,EAAE,OAAO,GAAG,4BAA4B,GAAG,yCAAyC,EAAE,OAAO,GAAG,6BAA6B,GAAG,2EAA2E,EAAE,OAAO,GAAG,qCAAqC,GAAG,gCAAgC,EAAE,OAAO,GAAG,6BAA6B,GAAG,UAAU,EAAE,OAAO,GAAG,6BAA6B,GAAG,kBAAkB,EAAE,OAAO,GAAG,6BAA6B,GAAG,iFAAiF,EAAE,OAAO,GAAG,mCAAmC,GAAG,qBAAqB,EAAE,OAAO,GAAG,wCAAwC,GAAG,6DAA6D,EAAE,OAAO,GAAG,yCAAyC,GAAG,kBAAkB,EAAE,OAAO,GAAG,wCAAwC,GAAG,GAAG,EAAE,OAAO,GAAG,wCAAwC,GAAG,GAAG,EAAE,OAAO,GAAG,wCAAwC,GAAG,yBAAyB,EAAE,OAAO,GAAG,yCAAyC,GAAG,mPAAmP,EAAE,OAAO,GAAG,yBAAyB,GAAG,qBAAqB,EAAE,OAAO,GAAG,4BAA4B,GAAG,2BAA2B,EAAE,OAAO,GAAG,8BAA8B,GAAG,qBAAqB,EAAE,OAAO,GAAG,wBAAwB,GAAG,mHAAmH,EAAE,OAAO,GAAG,4BAA4B,GAAG,oIAAoI,EAAE,OAAO,GAAG,sBAAsB,GAAG,iWAAiW,EAAE,OAAO,GAAG,gCAAgC,GAAG,yuBAAyuB,EAAE,OAAO,GAAG,+BAA+B,GAAG,QAAQ;AACxkP,GAHY;AAIZ,IAAIQ,iBAAe;AAAA,EACjB,SAAS,gCAAS,QAAQ,OAAO;AAC/B,QAAI,WAAW,MAAM,UACnB,gBAAgB,MAAM;AACxB,WAAO;AAAA,MACL,SAAS,SAAS,aAAa,aAAa,IAAI,SAAS;AAAA,IAC/D;AAAA,EACG,GANQ;AAOX;AACA,IAAIP,YAAU;AAAA,EACZ,MAAM,gCAASQ,MAAK,OAAO;AACzB,QAAI,WAAW,MAAM;AACrB,WAAO,CAAC,yBAAyB;AAAA,MAC/B,oBAAoB,SAAS;AAAA,MAC7B,2BAA2B,SAAS;AAAA,IAC1C,CAAK;AAAA,EACF,GANK;AAAA,EAON,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,MAAM,gCAAS,KAAK,OAAO;AACzB,QAAI,WAAW,MAAM,UACnB,gBAAgB,MAAM;AACxB,WAAO,CAAC,kBAAkB;AAAA,MACxB,yBAAyB,SAAS,aAAa,aAAa;AAAA,MAC5D,WAAW,SAAS,cAAc,aAAa;AAAA,MAC/C,cAAc,SAAS,eAAe,aAAa;AAAA,IACzD,CAAK;AAAA,EACF,GARK;AAAA,EASN,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,KAAK;AACP;AACA,IAAI,eAAe,UAAU,OAAO;AAAA,EAClC,MAAM;AAAA,EACN,OAAOT;AAAAA,EACP,SAASC;AAAAA,EACT,cAAcO;AAChB,CAAC;ACrCD,IAAIiD,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAW/C;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASN,WAAU;AAC1B,WAAO;AAAA,MACL,YAAY;AAAA,MACZ,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWQ;AAAAA,EACX,OAAO,CAAC,mBAAmB,cAAc,gBAAgB;AAAA,EACzD,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,MAAM;AAAA,EACN,SAAS;AAAA,IACP,WAAW,gCAAS,UAAU,eAAe;AAC3C,aAAO,GAAG,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,cAAc,GAAG;AAAA,IAC5D,GAFU;AAAA,IAGX,YAAY,gCAAS,WAAW,eAAe;AAC7C,aAAO,KAAK,UAAU,aAAa;AAAA,IACpC,GAFW;AAAA,IAGZ,aAAa,gCAAS,YAAY,eAAe,MAAM,QAAQ;AAC7D,aAAO,iBAAiB,cAAc,OAAO,QAAQ,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI;AAAA,IAC1F,GAFY;AAAA,IAGb,cAAc,gCAAS,aAAa,eAAe;AACjD,aAAO,KAAK,YAAY,eAAe,OAAO;AAAA,IAC/C,GAFa;AAAA,IAGd,gBAAgB,gCAAS,eAAe,eAAe;AACrD,aAAO,GAAG,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,cAAc,KAAK,QAAQ;AAAA,IACtE,GAFe;AAAA,IAGhB,cAAc,gCAASY,cAAa,eAAe,OAAO,KAAK;AAC7D,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,MAAM,cAAc;AAAA,UACpB;AAAA,UACA,QAAQ,KAAK,aAAa,aAAa;AAAA,UACvC,SAAS,KAAK,cAAc,aAAa;AAAA,UACzC,UAAU,KAAK,eAAe,aAAa;AAAA,UAC3C,OAAO,KAAK;AAAA,QACb;AAAA,MACT,CAAO;AAAA,IACF,GAXa;AAAA,IAYd,cAAc,gCAAS,aAAa,eAAe;AACjD,aAAO,KAAK,eAAe,KAAK,SAAU,MAAM;AAC9C,eAAO,KAAK,QAAQ,cAAc;AAAA,MAC1C,CAAO;AAAA,IACF,GAJa;AAAA,IAKd,eAAe,gCAAS,cAAc,eAAe;AACnD,aAAO,KAAK,YAAY,eAAe,SAAS,MAAM;AAAA,IACvD,GAFc;AAAA,IAGf,gBAAgB,gCAAS,eAAe,eAAe;AACrD,aAAO,KAAK,YAAY,eAAe,UAAU;AAAA,IAClD,GAFe;AAAA,IAGhB,eAAe,gCAAS,cAAc,eAAe;AACnD,aAAO,KAAK,kBAAkB,KAAK,UAAU,aAAa;AAAA,IAC3D,GAFc;AAAA,IAGf,aAAa,gCAAS,YAAY,eAAe;AAC/C,aAAO,WAAW,cAAc,KAAK;AAAA,IACtC,GAFY;AAAA,IAGb,aAAa,gCAAS,YAAY,OAAO,eAAe;AACtD,WAAK,YAAY,eAAe,WAAW;AAAA,QACzC,eAAe;AAAA,QACf,MAAM,cAAc;AAAA,MAC5B,CAAO;AACD,WAAK,MAAM,cAAc;AAAA,QACvB,eAAe;AAAA,QACf;AAAA,QACA,SAAS;AAAA,MACjB,CAAO;AAAA,IACF,GAVY;AAAA,IAWb,kBAAkB,gCAAS,iBAAiB,OAAO,eAAe;AAChE,WAAK,MAAM,mBAAmB;AAAA,QAC5B,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GALiB;AAAA,IAMlB,iBAAiB,gCAAS,gBAAgB,OAAO,eAAe;AAC9D,WAAK,MAAM,kBAAkB;AAAA,QAC3B,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GALgB;AAAA,IAMjB,iBAAiB,gCAAS2C,iBAAgB,OAAO;AAC/C,aAAO,QAAQ,KAAK,qBAAqB,MAAM,GAAG,KAAK,EAAE,SAAS;AAAA,IACnE,GAFgB;AAAA,IAGjB,kBAAkB,gCAAS,iBAAiB,eAAe,OAAO;AAChE,aAAO;AAAA,QACL,QAAQ,WAAW;AAAA,UACjB,SAAS,KAAK,GAAG,UAAU;AAAA,UAC3B,UAAU;AAAA,UACV,eAAe;AAAA,QAChB,GAAE,KAAK,aAAa,eAAe,OAAO,UAAU,CAAC;AAAA,QACtD,MAAM,WAAW;AAAA,UACf,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,KAAK,YAAY,eAAe,MAAM,CAAC;AAAA,QACvE,GAAE,KAAK,aAAa,eAAe,OAAO,UAAU,CAAC;AAAA,QACtD,OAAO,WAAW;AAAA,UAChB,SAAS,KAAK,GAAG,WAAW;AAAA,QAC7B,GAAE,KAAK,aAAa,eAAe,OAAO,WAAW,CAAC;AAAA,QACvD,aAAa,WAAW;AAAA,UACtB,SAAS,KAAK,GAAG,aAAa;AAAA,QAC/B,GAAE,KAAK,aAAa,eAAe,OAAO,aAAa,CAAC;AAAA,MACjE;AAAA,IACK,GAjBiB;AAAA,EAkBnB;AAAA,EACD,UAAU;AAAA,IACR,sBAAsB,gCAAS,uBAAuB;AACpD,UAAI,QAAQ;AACZ,aAAO,KAAK,MAAM,OAAO,SAAU,eAAe;AAChD,eAAO,MAAM,cAAc,aAAa,KAAK,MAAM,YAAY,eAAe,WAAW;AAAA,MACjG,CAAO;AAAA,IACF,GALqB;AAAA,IAMtB,gBAAgB,gCAAS,iBAAiB;AACxC,UAAI,SAAS;AACb,aAAO,KAAK,MAAM,OAAO,SAAU,eAAe;AAChD,eAAO,OAAO,cAAc,aAAa,KAAK,CAAC,OAAO,YAAY,eAAe,WAAW;AAAA,MAC7F,CAAA,EAAE;AAAA,IACJ,GALe;AAAA,EAMjB;AAAA,EACD,YAAY;AAAA,IACV,gBAAgBC;AAAAA,IAChB,eAAeC;AAAAA,EAChB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,IAAIC,iBAAe,CAAC,MAAM,cAAc,iBAAiB,iBAAiB,iBAAiB,cAAc,gBAAgB,iBAAiB,iBAAiB,kBAAkB,iBAAiB;AAC9L,IAAIjD,eAAa,CAAC,WAAW,gBAAgB,aAAa;AAC1D,IAAIuB,eAAa,CAAC,QAAQ,QAAQ;AAClC,IAAIC,eAAa,CAAC,IAAI;AACtB,IAAIC,eAAa,CAAC,IAAI;AACtB,SAASmB,WAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,wBAAwB,iBAAiB,cAAc,IAAI;AAC/D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,IACtD,SAAS,OAAO,UAAU,IAAI,KAAK,GAAG,UAAU,IAAI,KAAK,GAAG,SAAS;AAAA,EACtE,GAAE,OAAO,UAAU,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,OAAO,SAAU,eAAe,OAAO;AAClL,WAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,MAC/C,KAAK,SAAS,WAAW,aAAa;AAAA,IACvC,GAAE,CAAC,SAAS,cAAc,aAAa,KAAK,CAAC,SAAS,YAAY,eAAe,WAAW,KAAK,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,MACjJ,KAAK;AAAA,MACL,IAAI,SAAS,UAAU,aAAa;AAAA,MACpC,OAAO,SAAS,YAAY,eAAe,OAAO;AAAA,MAClD,SAAS,CAAC,KAAK,GAAG,QAAQ;AAAA,QACxB;AAAA,MACD,CAAA,GAAG,SAAS,YAAY,eAAe,OAAO,CAAC;AAAA,MAChD,MAAM;AAAA,MACN,cAAc,SAAS,aAAa,aAAa;AAAA,MACjD,iBAAiB,SAAS,eAAe,aAAa,KAAK;AAAA,MAC3D,iBAAiB,SAAS,YAAY,aAAa,IAAI,SAAS,aAAa,aAAa,IAAI;AAAA,MAC9F,iBAAiB,SAAS,YAAY,aAAa,KAAK,CAAC,SAAS,YAAY,eAAe,IAAI,IAAI,SAAS;AAAA,MAC9G,cAAc,OAAO,QAAQ;AAAA,MAC7B,gBAAgB,SAAS;AAAA,MACzB,iBAAiB,SAAS,gBAAgB,KAAK;AAAA,MAC/C,SAAS;AAAA,IACV,GAAE,SAAS,aAAa,eAAe,OAAO,MAAM,GAAG;AAAA,MACtD,iBAAiB,SAAS,aAAa,aAAa;AAAA,MACpD,kBAAkB,SAAS,cAAc,aAAa;AAAA,MACtD,mBAAmB,SAAS,eAAe,aAAa;AAAA,IACzD,CAAA,GAAG,CAAC3C,gBAAmB,OAAO,WAAW;AAAA,MACxC,SAAS,KAAK,GAAG,aAAa;AAAA,MAC9B,SAAS,gCAAS,QAAQ,QAAQ;AAChC,eAAO,SAAS,YAAY,QAAQ,aAAa;AAAA,MAClD,GAFQ;AAAA,MAGT,cAAc,gCAAS,aAAa,QAAQ;AAC1C,eAAO,SAAS,iBAAiB,QAAQ,aAAa;AAAA,MACvD,GAFa;AAAA,MAGd,aAAa,gCAAS,YAAY,QAAQ;AACxC,eAAO,SAAS,gBAAgB,QAAQ,aAAa;AAAA,MACtD,GAFY;AAAA,MAGb,SAAS;AAAA,IACf,GAAO,SAAS,aAAa,eAAe,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,UAAU,OAAO,gBAAgB,UAAW,GAAE,mBAAmB,KAAK,WAAW;AAAA,MACxJ,KAAK;AAAA,MACL,MAAM,SAAS,YAAY,eAAe,KAAK;AAAA,MAC/C,SAAS,KAAK,GAAG,UAAU;AAAA,MAC3B,QAAQ,SAAS,YAAY,eAAe,QAAQ;AAAA,MACpD,UAAU;AAAA,MACV,SAAS;AAAA,IACf,GAAO,SAAS,aAAa,eAAe,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,UAAU,YAAY,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,QAAQ,GAAG;AAAA,MACtK,KAAK;AAAA,MACL,MAAM,cAAc;AAAA,MACpB,SAAS,eAAe,KAAK,GAAG,UAAU,CAAC;AAAA,IACjD,GAAO,MAAM,GAAG,CAAC,QAAQ,OAAO,CAAC,KAAK,SAAS,YAAY,eAAe,MAAM,KAAK,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,MAClI,KAAK;AAAA,MACL,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,SAAS,YAAY,eAAe,MAAM,CAAC;AAAA,MAC1E,SAAS;AAAA,IACf,GAAO,SAAS,aAAa,eAAe,OAAO,UAAU,CAAC,GAAG,MAAM,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAGA,gBAAmB,QAAQ,WAAW;AAAA,MAC5I,IAAI,SAAS,eAAe,aAAa;AAAA,MACzC,SAAS,KAAK,GAAG,WAAW;AAAA,MAC5B,SAAS;AAAA,IACf,GAAO,SAAS,aAAa,eAAe,OAAO,WAAW,CAAC,GAAG,gBAAgB,SAAS,aAAa,aAAa,CAAC,GAAG,IAAIuB,YAAU,GAAG,SAAS,YAAY,eAAe,OAAO,KAAK,UAAS,GAAI,mBAAmB,UAAU;AAAA,MAC9N,KAAK;AAAA,IACN,GAAE,CAAC,OAAO,UAAU,eAAe,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,WAAW,GAAG;AAAA,MAClH,KAAK;AAAA,MACL,MAAM,OAAO;AAAA,MACb,QAAQ,SAAS,aAAa,aAAa;AAAA,MAC3C,SAAS,eAAe,KAAK,GAAG,aAAa,CAAC;AAAA,IACpD,GAAO,MAAM,GAAG,CAAC,QAAQ,UAAU,OAAO,CAAC,MAAM,UAAW,GAAE,YAAY,wBAAwB,OAAO,OAAO,kBAAkB,gBAAgB,GAAG,WAAW;AAAA,MAC1J,KAAK;AAAA,MACL,SAAS,KAAK,GAAG,aAAa;AAAA,MAC9B,SAAS;AAAA,IACf,GAAO,SAAS,aAAa,eAAe,OAAO,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAID,YAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,KAAK,UAAW,GAAE,YAAY,wBAAwB,OAAO,UAAU,IAAI,GAAG;AAAA,MACjP,KAAK;AAAA,MACL,MAAM,cAAc;AAAA,MACpB,MAAM,OAAO;AAAA,MACb,YAAY,SAAS,YAAY,eAAe,OAAO;AAAA,MACvD,OAAO,SAAS,aAAa,aAAa;AAAA,MAC1C,OAAO,SAAS,iBAAiB,eAAe,KAAK;AAAA,IACtD,GAAE,MAAM,GAAG,CAAC,QAAQ,QAAQ,cAAc,SAAS,OAAO,CAAC,EAAE,GAAG,IAAIvB,YAAU,GAAG,SAAS,cAAc,aAAa,KAAK,SAAS,YAAY,aAAa,KAAK,aAAa,YAAY,uBAAuB;AAAA,MAChN,KAAK;AAAA,MACL,IAAI,SAAS,UAAU,aAAa,IAAI;AAAA,MACxC,QAAQ,OAAO;AAAA,MACf,MAAM;AAAA,MACN,OAAO,eAAe,KAAK,GAAG,WAAW,MAAM;AAAA,QAC7C;AAAA,MACR,CAAO,CAAC;AAAA,MACF,eAAe,OAAO;AAAA,MACtB,OAAO,cAAc;AAAA,MACrB,cAAc,OAAO;AAAA,MACrB,gBAAgB,OAAO;AAAA,MACvB,WAAW,OAAO;AAAA,MAClB,OAAO,OAAO,QAAQ;AAAA,MACtB,mBAAmB,SAAS,eAAe,aAAa;AAAA,MACxD,IAAI,KAAK;AAAA,MACT,UAAU,KAAK;AAAA,MACf,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACvD,eAAO,KAAK,MAAM,cAAc,MAAM;AAAA,MAC9C;AAAA,MACM,kBAAkB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC5D,eAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,MACnD;AAAA,MACM,iBAAiB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC3D,eAAO,KAAK,MAAM,kBAAkB,MAAM;AAAA,MAClD;AAAA,IACA,GAAO,MAAM,GAAG,CAAC,MAAM,UAAU,SAAS,iBAAiB,SAAS,gBAAgB,kBAAkB,aAAa,SAAS,mBAAmB,MAAM,UAAU,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAIiD,cAAY,KAAK,mBAAmB,IAAI,IAAI,GAAG,SAAS,cAAc,aAAa,KAAK,SAAS,YAAY,eAAe,WAAW,KAAK,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,MAC/X,KAAK;AAAA,MACL,IAAI,SAAS,UAAU,aAAa;AAAA,MACpC,SAAS,CAAC,KAAK,GAAG,WAAW,GAAG,SAAS,YAAY,eAAe,OAAO,CAAC;AAAA,MAC5E,OAAO,SAAS,YAAY,eAAe,OAAO;AAAA,MAClD,MAAM;AAAA,MACN,SAAS;AAAA,IACV,GAAE,KAAK,IAAI,WAAW,CAAC,GAAG,MAAM,IAAIxB,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,EACtF,CAAA,GAAG,GAAG,KAAK,EAAE;AAChB;AAhHSmB;AAkHT7D,WAAS,SAAS6D;AAElB,IAAI1D,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWoD;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,SAAS,MAAM;AAAA,EACvB,oBAAoB;AAAA,EACpB,MAAM,gCAASpC,QAAO;AACpB,WAAO;AAAA,MACL,IAAI,KAAK,OAAO;AAAA,MAChB,cAAc;AAAA,MACd,SAAS;AAAA,MACT,iBAAiB;AAAA,QACf,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,MACD,gBAAgB,CAAE;AAAA,MAClB,OAAO;AAAA,MACP,OAAO;AAAA,MACP,cAAc;AAAA,IACpB;AAAA,EACG,GAfK;AAAA,EAgBN,OAAO;AAAA,IACL,aAAa,gCAASgD,UAAS,UAAU;AACvC,WAAK,KAAK,YAAY;IACvB,GAFY;AAAA,IAGb,gBAAgB,gCAAS,eAAe,SAAS;AAC/C,UAAI,WAAW,OAAO,GAAG;AACvB,aAAK,yBAAwB;AAC7B,aAAK,mBAAkB;AAAA,MAC/B,OAAa;AACL,aAAK,2BAA0B;AAC/B,aAAK,qBAAoB;AAAA,MAC1B;AAAA,IACF,GARe;AAAA,EASjB;AAAA,EACD,sBAAsB;AAAA,EACtB,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS,gCAAS5C,WAAU;AAC1B,SAAK,KAAK,KAAK,MAAM,kBAAiB;AACtC,SAAK,uBAAsB;AAAA,EAC5B,GAHQ;AAAA,EAIT,eAAe,gCAASC,iBAAgB;AACtC,SAAK,eAAe;AACpB,SAAK,2BAA0B;AAC/B,SAAK,qBAAoB;AACzB,SAAK,yBAAwB;AAC7B,QAAI,KAAK,WAAW;AAClB,aAAO,MAAM,KAAK,SAAS;AAAA,IAC5B;AACD,SAAK,YAAY;AAAA,EAClB,GATc;AAAA,EAUf,SAAS;AAAA,IACP,aAAa,gCAAS4C,aAAY/D,OAAM,MAAM;AAC5C,aAAOA,QAAO,QAAQA,MAAK,IAAI,CAAC,IAAI;AAAA,IACrC,GAFY;AAAA,IAGb,cAAc,gCAASgE,cAAahE,OAAM;AACxC,aAAO,KAAK,YAAYA,OAAM,OAAO;AAAA,IACtC,GAFa;AAAA,IAGd,gBAAgB,gCAASiE,gBAAejE,OAAM;AAC5C,aAAO,KAAK,YAAYA,OAAM,UAAU;AAAA,IACzC,GAFe;AAAA,IAGhB,eAAe,gCAASkE,eAAclE,OAAM;AAC1C,aAAO,KAAK,YAAYA,OAAM,SAAS,MAAM;AAAA,IAC9C,GAFc;AAAA,IAGf,aAAa,gCAASmE,aAAYnE,OAAM;AACtC,aAAO,WAAW,KAAK,YAAYA,OAAM,OAAO,CAAC;AAAA,IAClD,GAFY;AAAA,IAGb,iBAAiB,gCAAS,gBAAgBA,OAAM;AAC9C,aAAO,KAAK,YAAYA,OAAM,WAAW;AAAA,IAC1C,GAFgB;AAAA,IAGjB,wBAAwB,gCAAS,uBAAuB,eAAe;AACrE,aAAO,gBAAgB,KAAK,aAAa,cAAc,IAAI,IAAI;AAAA,IAChE,GAFuB;AAAA,IAGxB,uBAAuB,gCAAS,sBAAsB,eAAe;AACnE,aAAO,iBAAiB,WAAW,cAAc,KAAK;AAAA,IACvD,GAFsB;AAAA,IAGvB,QAAQ,gCAAS,OAAO,OAAO;AAC7B,UAAI,QAAQ;AACZ,UAAI,KAAK,cAAc;AACrB,aAAK,eAAe;AACpB,eAAO,MAAM,KAAK,OAAO;AACzB,aAAK,KAAI;AAAA,MACjB,OAAa;AACL,aAAK,eAAe;AACpB,eAAO,IAAI,QAAQ,KAAK,SAAS,KAAK,UAAU,OAAO,OAAO,IAAI;AAClE,mBAAW,WAAY;AACrB,gBAAM,KAAI;AAAA,QACX,GAAE,CAAC;AAAA,MACL;AACD,WAAK,yBAAwB;AAC7B,YAAM,eAAc;AAAA,IACrB,GAfO;AAAA,IAgBR,MAAM,gCAASoE,QAAO;AACpB,YAAM,KAAK,OAAO;AAAA,IACnB,GAFK;AAAA,IAGN,MAAM,gCAASC,MAAK,OAAO,SAAS;AAClC,UAAI,SAAS;AACb,UAAI,KAAK,cAAc;AACrB,aAAK,eAAe;AACpB,mBAAW,WAAY;AACrB,gBAAM,OAAO,MAAM,UAAU;AAAA,QAC9B,GAAE,CAAC;AAAA,MACL;AACD,WAAK,iBAAiB;AACtB,WAAK,kBAAkB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AACM,iBAAW,MAAM,KAAK,OAAO;AAC7B,WAAK,QAAQ;AAAA,IACd,GAhBK;AAAA,IAiBN,SAAS,gCAASC,SAAQ,OAAO;AAC/B,WAAK,UAAU;AACf,WAAK,kBAAkB,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB;AAAA,QAChF,OAAO,KAAK,0BAA2B;AAAA,QACvC,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AACM,WAAK,MAAM,SAAS,KAAK;AAAA,IAC1B,GARQ;AAAA,IAST,QAAQ,gCAASC,QAAO,OAAO;AAC7B,WAAK,UAAU;AACf,WAAK,kBAAkB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AACM,WAAK,cAAc;AACnB,WAAK,QAAQ;AACb,WAAK,MAAM,QAAQ,KAAK;AAAA,IACzB,GAVO;AAAA,IAWR,WAAW,gCAASC,WAAU,OAAO;AACnC,UAAI,UAAU,MAAM,WAAW,MAAM;AACrC,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,aAAa,KAAK;AACvB;AAAA,QACF,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,gBAAgB,KAAK;AAC1B;AAAA,QACF,KAAK;AACH,eAAK,UAAU,KAAK;AACpB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AACH,eAAK,WAAW,KAAK;AACrB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,eAAK,WAAW,KAAK;AACrB;AAAA,QACF,KAAK;AACH,eAAK,YAAY,KAAK;AACtB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAEH;AAAA,QACF;AACE,cAAI,CAAC,WAAW,qBAAqB,MAAM,GAAG,GAAG;AAC/C,iBAAK,YAAY,OAAO,MAAM,GAAG;AAAA,UAClC;AACD;AAAA,MACH;AAAA,IACF,GA/CU;AAAA,IAgDX,cAAc,gCAAS,aAAa,OAAO;AACzC,UAAI,gBAAgB,MAAM,eACxB,UAAU,MAAM;AAClB,UAAI,QAAQ,aAAa,EAAG;AAC5B,UAAI,QAAQ,cAAc,OACxB,MAAM,cAAc,KACpB,QAAQ,cAAc,OACtB,YAAY,cAAc,WAC1B,QAAQ,cAAc;AACxB,UAAI,UAAU,WAAW,KAAK;AAC9B,UAAIC,kBAAiB,KAAK,eAAe,OAAO,SAAU,GAAG;AAC3D,eAAO,EAAE,cAAc,aAAa,EAAE,cAAc;AAAA,MAC5D,CAAO;AACD,iBAAWA,gBAAe,KAAK,aAAa;AAC5C,WAAK,kBAAkB;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,MACR;AACM,WAAK,iBAAiBA;AACtB,kBAAY,KAAK,QAAQ;AACzB,iBAAW,MAAM,KAAK,OAAO;AAAA,IAC9B,GAtBa;AAAA,IAuBd,aAAa,gCAASC,aAAY,OAAO;AACvC,UAAI,gBAAgB,MAAM,eACxB,gBAAgB,MAAM;AACxB,UAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,UAAIxE,SAAO,QAAQ,cAAc,MAAM;AACvC,UAAI,WAAW,KAAK,WAAW,aAAa;AAC5C,UAAI,UAAU;AACZ,YAAI,QAAQ,cAAc,OACxB,MAAM,cAAc,KACpB,QAAQ,cAAc,OACtB,YAAY,cAAc;AAC5B,aAAK,iBAAiB,KAAK,eAAe,OAAO,SAAU,GAAG;AAC5D,iBAAO,QAAQ,EAAE,OAAO,IAAI,WAAW,EAAE,GAAG;AAAA,QACtD,CAAS;AACD,aAAK,kBAAkB;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,QACV;AACQ,aAAK,QAAQ,CAACA;AACd,cAAM,KAAK,OAAO;AAAA,MAC1B,OAAa;AACL,YAAI,SAAS;AACX,eAAK,aAAa,KAAK;AAAA,QACjC,OAAe;AACL,cAAI,oBAAoBA,SAAO,gBAAgB,KAAK,eAAe,KAAK,SAAU,GAAG;AACnF,mBAAO,EAAE,cAAc;AAAA,UACnC,CAAW;AACD,eAAK,KAAK,aAAa;AACvB,eAAK,uBAAuB,eAAe,oBAAoB,kBAAkB,QAAQ,EAAE;AAC3F,eAAK,eAAe;AACpB,gBAAM,KAAK,OAAO;AAAA,QACnB;AAAA,MACF;AAAA,IACF,GAlCY;AAAA,IAmCb,kBAAkB,gCAASyE,kBAAiB,OAAO;AACjD,UAAI,KAAK,OAAO;AACd,aAAK,aAAa,KAAK;AAAA,MACxB;AAAA,IACF,GAJiB;AAAA,IAKlB,iBAAiB,gCAASC,iBAAgB,OAAO;AAC/C,UAAI,KAAK,SAAS;AAChB,aAAK,uBAAuB,OAAO,MAAM,cAAc,KAAK;AAAA,MAC7D;AAAA,IACF,GAJgB;AAAA,IAKjB,iBAAiB,gCAAS,gBAAgB,OAAO;AAC/C,WAAK,OAAO,KAAK;AAAA,IAClB,GAFgB;AAAA,IAGjB,mBAAmB,gCAAS,kBAAkB,OAAO;AACnD,OAAC,MAAM,SAAS,WAAW,MAAM,SAAS,iBAAiB,MAAM,SAAS,YAAY,KAAK,gBAAgB,KAAK;AAAA,IACjH,GAFkB;AAAA,IAGnB,gBAAgB,gCAASC,gBAAe,OAAO;AAC7C,UAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,UAAI3E,SAAO,gBAAgB,QAAQ,cAAc,MAAM,IAAI;AAC3D,UAAIA,QAAM;AACR,YAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,YAAI,SAAS;AACX,eAAK,aAAa;AAAA,YAChB,eAAe;AAAA,YACf;AAAA,UACZ,CAAW;AACD,eAAK,kBAAkB;AAAA,YACrB,OAAO;AAAA,YACP,WAAW,cAAc;AAAA,UACrC;AACU,eAAK,gBAAgB,KAAK;AAAA,QAC3B;AAAA,MACT,OAAa;AACL,YAAI,YAAY,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,0BAAyB;AACvI,aAAK,uBAAuB,OAAO,SAAS;AAAA,MAC7C;AACD,YAAM,eAAc;AAAA,IACrB,GArBe;AAAA,IAsBhB,cAAc,gCAAS4E,cAAa,OAAO;AACzC,UAAI,SAAS;AACb,UAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,UAAI5E,SAAO,QAAQ,cAAc,MAAM;AACvC,UAAIA,QAAM;AACR,YAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,YAAI,SAAS;AACX,eAAK,aAAa;AAAA,YAChB,eAAe;AAAA,YACf;AAAA,UACZ,CAAW;AACD,eAAK,kBAAkB;AAAA,YACrB,OAAO;AAAA,YACP,WAAW,cAAc;AAAA,UACrC;AACU,cAAI,YAAY,KAAK;AACrB,eAAK,uBAAuB,OAAO,SAAS;AAAA,QAC7C;AAAA,MACT,OAAa;AACL,YAAI,aAAa,KAAK,eAAe,KAAK,SAAU,GAAG;AACrD,iBAAO,EAAE,QAAQ,cAAc;AAAA,QACzC,CAAS;AACD,YAAI,KAAK,gBAAgB,UAAU,GAAG;AACpC,eAAK,kBAAkB;AAAA,YACrB,OAAO;AAAA,YACP,WAAW,aAAa,WAAW,YAAY;AAAA,UAC3D;AACU,eAAK,cAAc;AACnB,eAAK,eAAe,KAAK;AACzB,eAAK,iBAAiB,KAAK,eAAe,OAAO,SAAU,GAAG;AAC5D,mBAAO,EAAE,cAAc,OAAO,gBAAgB;AAAA,UAC1D,CAAW;AAAA,QACX,OAAe;AACL,cAAI,aAAa,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,yBAAwB;AACvI,eAAK,uBAAuB,OAAO,UAAU;AAAA,QAC9C;AAAA,MACF;AACD,YAAM,eAAc;AAAA,IACrB,GAtCa;AAAA,IAuCd,gBAAgB,gCAAS6E,gBAAe,OAAO;AAC7C,UAAI,SAAS;AACb,UAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,UAAI,aAAa,gBAAgB,KAAK,eAAe,KAAK,SAAU,GAAG;AACrE,eAAO,EAAE,QAAQ,cAAc;AAAA,MAChC,CAAA,IAAI;AACL,UAAI,YAAY;AACd,aAAK,aAAa;AAAA,UAChB,eAAe;AAAA,UACf,eAAe;AAAA,QACzB,CAAS;AACD,aAAK,iBAAiB,KAAK,eAAe,OAAO,SAAU,GAAG;AAC5D,iBAAO,EAAE,cAAc,OAAO,gBAAgB;AAAA,QACxD,CAAS;AACD,cAAM,eAAc;AAAA,MAC5B,OAAa;AACL,YAAI,YAAY,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,yBAAwB;AACtI,aAAK,uBAAuB,OAAO,SAAS;AAC5C,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GApBe;AAAA,IAqBhB,iBAAiB,gCAASC,iBAAgB,OAAO;AAC/C,UAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,UAAI,aAAa,gBAAgB,KAAK,eAAe,KAAK,SAAU,GAAG;AACrE,eAAO,EAAE,QAAQ,cAAc;AAAA,MAChC,CAAA,IAAI;AACL,UAAI,YAAY;AACd,YAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,YAAI,SAAS;AACX,eAAK,aAAa;AAAA,YAChB,eAAe;AAAA,YACf;AAAA,UACZ,CAAW;AACD,eAAK,kBAAkB;AAAA,YACrB,OAAO;AAAA,YACP,WAAW,cAAc;AAAA,UACrC;AACU,eAAK,eAAe,KAAK;AAAA,QAC1B;AAAA,MACT,OAAa;AACL,YAAI,YAAY,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,0BAAyB;AACvI,aAAK,uBAAuB,OAAO,SAAS;AAC5C,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GAvBgB;AAAA,IAwBjB,WAAW,gCAASC,WAAU,OAAO;AACnC,WAAK,uBAAuB,OAAO,KAAK,mBAAoB,CAAA;AAC5D,YAAM,eAAc;AAAA,IACrB,GAHU;AAAA,IAIX,UAAU,gCAASC,UAAS,OAAO;AACjC,WAAK,uBAAuB,OAAO,KAAK,kBAAmB,CAAA;AAC3D,YAAM,eAAc;AAAA,IACrB,GAHS;AAAA,IAIV,YAAY,gCAASC,YAAW,OAAO;AACrC,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,YAAI,UAAU,WAAW,KAAK,SAAS,UAAW,OAAO,GAAG,OAAO,KAAK,aAAa,GAAG,IAAK,CAAC;AAC9F,YAAI,gBAAgB,WAAW,WAAW,SAAS,+BAA+B;AAClF,wBAAgB,cAAc,MAAK,IAAK,WAAW,QAAQ;AAC3D,YAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,YAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,SAAC,YAAY,KAAK,gBAAgB,QAAQ,KAAK,0BAAyB;AAAA,MACzE;AACD,YAAM,eAAc;AAAA,IACrB,GAVW;AAAA,IAWZ,YAAY,gCAAS,WAAW,OAAO;AACrC,WAAK,WAAW,KAAK;AAAA,IACtB,GAFW;AAAA,IAGZ,aAAa,gCAASC,aAAY,OAAO;AACvC,UAAI,KAAK,gBAAgB,UAAU,GAAG;AACpC,YAAI,mBAAmB,KAAK;AAC5B,aAAK,KAAK,OAAO,KAAK;AACtB,aAAK,kBAAkB;AAAA,UACrB,OAAO,OAAO,iBAAiB,UAAU,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,UACtD,OAAO;AAAA,UACP,WAAW;AAAA,QACrB;AAAA,MACO;AACD,YAAM,eAAc;AAAA,IACrB,GAXY;AAAA,IAYb,UAAU,gCAASC,UAAS,OAAO;AACjC,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,YAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,YAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,SAAC,WAAW,KAAK,aAAa;AAAA,UAC5B,eAAe;AAAA,UACf;AAAA,QACV,CAAS;AAAA,MACF;AACD,WAAK,KAAI;AAAA,IACV,GAVS;AAAA,IAWV,0BAA0B,gCAASC,4BAA2B;AAC5D,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,sBAAsB;AAC9B,aAAK,uBAAuB,SAAU,OAAO;AAC3C,cAAI,qBAAqB,OAAO,aAAa,CAAC,OAAO,UAAU,SAAS,MAAM,MAAM;AACpF,cAAI,kBAAkB,EAAE,OAAO,WAAW,OAAO,WAAW,MAAM,UAAU,OAAO,OAAO,SAAS,MAAM,MAAM;AAC/G,cAAI,sBAAsB,iBAAiB;AACzC,mBAAO,KAAI;AAAA,UACZ;AAAA,QACX;AACQ,iBAAS,iBAAiB,SAAS,KAAK,oBAAoB;AAAA,MAC7D;AAAA,IACF,GAZyB;AAAA,IAa1B,4BAA4B,gCAASC,8BAA6B;AAChE,UAAI,KAAK,sBAAsB;AAC7B,iBAAS,oBAAoB,SAAS,KAAK,oBAAoB;AAC/D,aAAK,uBAAuB;AAAA,MAC7B;AAAA,IACF,GAL2B;AAAA,IAM5B,oBAAoB,gCAASC,sBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,gBAAgB;AACxB,aAAK,iBAAiB,SAAU,OAAO;AACrC,cAAI,CAAC,cAAa,GAAI;AACpB,mBAAO,KAAK,OAAO,IAAI;AAAA,UACxB;AACD,iBAAO,eAAe;AAAA,QAChC;AACQ,eAAO,iBAAiB,UAAU,KAAK,cAAc;AAAA,MACtD;AAAA,IACF,GAXmB;AAAA,IAYpB,sBAAsB,gCAASC,wBAAuB;AACpD,UAAI,KAAK,gBAAgB;AACvB,eAAO,oBAAoB,UAAU,KAAK,cAAc;AACxD,aAAK,iBAAiB;AAAA,MACvB;AAAA,IACF,GALqB;AAAA,IAMtB,wBAAwB,gCAAS,yBAAyB;AACxD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,oBAAoB;AAC5B,YAAI,QAAQ,WAAW,eAAe,OAAO,KAAK,YAAY,GAAG,CAAC;AAClE,aAAK,QAAQ;AACb,aAAK,eAAe,MAAM;AAC1B,aAAK,qBAAqB,WAAY;AACpC,iBAAO,eAAe,MAAM;AAC5B,iBAAO,eAAe;AAAA,QAChC;AACQ,aAAK,MAAM,iBAAiB,UAAU,KAAK,kBAAkB;AAAA,MAC9D;AAAA,IACF,GAZuB;AAAA,IAaxB,0BAA0B,gCAAS,2BAA2B;AAC5D,UAAI,KAAK,oBAAoB;AAC3B,aAAK,MAAM,oBAAoB,UAAU,KAAK,kBAAkB;AAChE,aAAK,qBAAqB;AAAA,MAC3B;AAAA,IACF,GALyB;AAAA,IAM1B,eAAe,gCAAS,cAAc,eAAe;AACnD,UAAI;AACJ,aAAO,KAAK,YAAY,aAAa,OAAO,wBAAwB,KAAK,uBAAuB,aAAa,OAAO,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,kBAAmB,EAAC,WAAW,KAAK,YAAY,kBAAmB,CAAA;AAAA,IAClQ,GAHc;AAAA,IAIf,aAAa,gCAAS,YAAY,eAAe;AAC/C,aAAO,CAAC,CAAC,iBAAiB,CAAC,KAAK,eAAe,cAAc,IAAI,KAAK,CAAC,KAAK,gBAAgB,cAAc,IAAI,KAAK,KAAK,cAAc,cAAc,IAAI;AAAA,IACzJ,GAFY;AAAA,IAGb,qBAAqB,gCAAS,oBAAoB,eAAe;AAC/D,aAAO,KAAK,YAAY,aAAa,KAAK,KAAK,WAAW,aAAa;AAAA,IACxE,GAFoB;AAAA,IAGrB,YAAY,gCAASC,YAAW,eAAe;AAC7C,aAAO,KAAK,eAAe,KAAK,SAAU,GAAG;AAC3C,eAAO,EAAE,QAAQ,cAAc;AAAA,MACvC,CAAO;AAAA,IACF,GAJW;AAAA,IAKZ,oBAAoB,gCAAS,qBAAqB;AAChD,UAAI,SAAS;AACb,aAAO,KAAK,aAAa,UAAU,SAAU,eAAe;AAC1D,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO;AAAA,IACF,GALmB;AAAA,IAMpB,mBAAmB,gCAAS,oBAAoB;AAC9C,UAAI,SAAS;AACb,aAAO,cAAc,KAAK,cAAc,SAAU,eAAe;AAC/D,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO;AAAA,IACF,GALkB;AAAA,IAMnB,mBAAmB,gCAAS,kBAAkB,OAAO;AACnD,UAAI,UAAU;AACd,UAAI,mBAAmB,QAAQ,KAAK,aAAa,SAAS,IAAI,KAAK,aAAa,MAAM,QAAQ,CAAC,EAAE,UAAU,SAAU,eAAe;AAClI,eAAO,QAAQ,YAAY,aAAa;AAAA,MAChD,CAAO,IAAI;AACL,aAAO,mBAAmB,KAAK,mBAAmB,QAAQ,IAAI;AAAA,IAC/D,GANkB;AAAA,IAOnB,mBAAmB,gCAAS,kBAAkB,OAAO;AACnD,UAAI,UAAU;AACd,UAAI,mBAAmB,QAAQ,IAAI,cAAc,KAAK,aAAa,MAAM,GAAG,KAAK,GAAG,SAAU,eAAe;AAC3G,eAAO,QAAQ,YAAY,aAAa;AAAA,MAChD,CAAO,IAAI;AACL,aAAO,mBAAmB,KAAK,mBAAmB;AAAA,IACnD,GANkB;AAAA,IAOnB,uBAAuB,gCAAS,wBAAwB;AACtD,UAAI,UAAU;AACd,aAAO,KAAK,aAAa,UAAU,SAAU,eAAe;AAC1D,eAAO,QAAQ,oBAAoB,aAAa;AAAA,MACxD,CAAO;AAAA,IACF,GALsB;AAAA,IAMvB,2BAA2B,gCAAS,4BAA4B;AAC9D,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,IAAI,KAAK,mBAAkB,IAAK;AAAA,IACxD,GAH0B;AAAA,IAI3B,0BAA0B,gCAAS,2BAA2B;AAC5D,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,IAAI,KAAK,kBAAiB,IAAK;AAAA,IACvD,GAHyB;AAAA,IAI1B,aAAa,gCAAS,YAAY,OAAO,OAAO;AAC9C,UAAI,UAAU;AACd,WAAK,eAAe,KAAK,eAAe,MAAM;AAC9C,UAAI,YAAY;AAChB,UAAI,UAAU;AACd,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,oBAAY,KAAK,aAAa,MAAM,KAAK,gBAAgB,KAAK,EAAE,UAAU,SAAU,eAAe;AACjG,iBAAO,QAAQ,cAAc,aAAa;AAAA,QACpD,CAAS;AACD,oBAAY,cAAc,KAAK,KAAK,aAAa,MAAM,GAAG,KAAK,gBAAgB,KAAK,EAAE,UAAU,SAAU,eAAe;AACvH,iBAAO,QAAQ,cAAc,aAAa;AAAA,QAC3C,CAAA,IAAI,YAAY,KAAK,gBAAgB;AAAA,MAC9C,OAAa;AACL,oBAAY,KAAK,aAAa,UAAU,SAAU,eAAe;AAC/D,iBAAO,QAAQ,cAAc,aAAa;AAAA,QACpD,CAAS;AAAA,MACF;AACD,UAAI,cAAc,IAAI;AACpB,kBAAU;AAAA,MACX;AACD,UAAI,cAAc,MAAM,KAAK,gBAAgB,UAAU,IAAI;AACzD,oBAAY,KAAK;MAClB;AACD,UAAI,cAAc,IAAI;AACpB,aAAK,uBAAuB,OAAO,SAAS;AAAA,MAC7C;AACD,UAAI,KAAK,eAAe;AACtB,qBAAa,KAAK,aAAa;AAAA,MAChC;AACD,WAAK,gBAAgB,WAAW,WAAY;AAC1C,gBAAQ,cAAc;AACtB,gBAAQ,gBAAgB;AAAA,MACzB,GAAE,GAAG;AACN,aAAO;AAAA,IACR,GAlCY;AAAA,IAmCb,wBAAwB,gCAAS,uBAAuB,OAAO,OAAO;AACpE,UAAI,KAAK,gBAAgB,UAAU,OAAO;AACxC,aAAK,gBAAgB,QAAQ;AAC7B,aAAK,aAAY;AAAA,MAClB;AAAA,IACF,GALuB;AAAA,IAMxB,cAAc,gCAASC,gBAAe;AACpC,UAAI,QAAQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAChF,UAAI,KAAK,UAAU,KAAK,GAAG,OAAO,KAAK,IAAI,GAAG,EAAE,OAAO,KAAK,IAAI,KAAK;AACrE,UAAI,UAAU,WAAW,KAAK,SAAS,UAAW,OAAO,IAAI,IAAK,CAAC;AACnE,UAAI,SAAS;AACX,gBAAQ,kBAAkB,QAAQ,eAAe;AAAA,UAC/C,OAAO;AAAA,UACP,QAAQ;AAAA,QAClB,CAAS;AAAA,MACF;AAAA,IACF,GAVa;AAAA,IAWd,sBAAsB,gCAAS,qBAAqB,OAAO;AACzD,UAAI,UAAU;AACd,UAAI,QAAQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAChF,UAAI,SAAS,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AACjF,UAAI,YAAY,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AACpF,UAAIC,kBAAiB,CAAA;AACrB,eAAS,MAAM,QAAQ,SAAU5F,OAAM,OAAO;AAC5C,YAAI,OAAO,cAAc,KAAK,YAAY,MAAM,MAAM;AACtD,YAAI,UAAU;AAAA,UACZ,MAAMA;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACV;AACQ,gBAAQ,OAAO,IAAI,QAAQ,qBAAqBA,MAAK,OAAO,QAAQ,GAAG,SAAS,GAAG;AACnF,QAAA4F,gBAAe,KAAK,OAAO;AAAA,MACnC,CAAO;AACD,aAAOA;AAAA,IACR,GApBqB;AAAA,IAqBtB,cAAc,gCAAS,aAAa,IAAI;AACtC,WAAK,YAAY;AAAA,IAClB,GAFa;AAAA,IAGd,YAAY,gCAAS,WAAW,IAAI;AAClC,WAAK,UAAU,KAAK,GAAG,MAAM;AAAA,IAC9B,GAFW;AAAA,EAGb;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,KAAK,qBAAqB,KAAK,SAAS,CAAE,CAAA;AAAA,IAClD,GAFe;AAAA,IAGhB,cAAc,gCAAS,eAAe;AACpC,UAAI,UAAU;AACd,UAAI,gBAAgB,KAAK,eAAe,KAAK,SAAU,GAAG;AACxD,eAAO,EAAE,QAAQ,QAAQ,gBAAgB;AAAA,MACjD,CAAO;AACD,aAAO,gBAAgB,cAAc,QAAQ,KAAK;AAAA,IACnD,GANa;AAAA,IAOd,eAAe,gCAAS,gBAAgB;AACtC,aAAO,KAAK,gBAAgB,UAAU,KAAK,GAAG,OAAO,KAAK,EAAE,EAAE,OAAO,WAAW,KAAK,gBAAgB,SAAS,IAAI,MAAM,KAAK,gBAAgB,YAAY,IAAI,GAAG,EAAE,OAAO,KAAK,gBAAgB,KAAK,IAAI;AAAA,IACxM,GAFc;AAAA,EAGhB;AAAA,EACD,YAAY;AAAA,IACV,YAAYjG;AAAAA,IACZ,UAAUkG;AAAAA,EACX;AACH;AAEA,SAAS,QAAQ,GAAG;AAAE;AAA2B,SAAO,UAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAU5E,IAAG;AAAE,WAAO,OAAOA;AAAA,MAAO,SAAUA,IAAG;AAAE,WAAOA,MAAK,cAAc,OAAO,UAAUA,GAAE,gBAAgB,UAAUA,OAAM,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAE,GAAI,QAAQ,CAAC;AAAI;AAArT;AACT,SAAS,QAAQ,GAAG,GAAG;AAAE,MAAI,IAAI,OAAO,KAAK,CAAC;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,IAAI,OAAO,sBAAsB,CAAC;AAAG,UAAM,IAAI,EAAE,OAAO,SAAUa,IAAG;AAAE,aAAO,OAAO,yBAAyB,GAAGA,EAAC,EAAE;AAAA,IAAW,CAAE,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EAAE;AAAG,SAAO;AAAI;AAAtP;AACT,SAAS,cAAc,GAAG;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,IAAI,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAE;AAAE,QAAI,IAAI,QAAQ,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAUA,IAAG;AAAE,sBAAgB,GAAGA,IAAG,EAAEA,EAAC,CAAC;AAAA,IAAI,CAAA,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,QAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUA,IAAG;AAAE,aAAO,eAAe,GAAGA,IAAG,OAAO,yBAAyB,GAAGA,EAAC,CAAC;AAAA,IAAE,CAAE;AAAA,EAAI;AAAC,SAAO;AAAI;AAA9a;AACT,SAAS,gBAAgB,GAAG,GAAG,GAAG;AAAE,UAAQ,IAAI,eAAe,CAAC,MAAM,IAAI,OAAO,eAAe,GAAG,GAAG,EAAE,OAAO,GAAG,YAAY,MAAI,cAAc,MAAI,UAAU,KAAI,CAAA,IAAI,EAAE,CAAC,IAAI,GAAG;AAAI;AAA3K;AACT,SAAS,eAAe,GAAG;AAAE,MAAI,IAAI,aAAa,GAAG,QAAQ;AAAG,SAAO,YAAY,QAAQ,CAAC,IAAI,IAAI,IAAI;AAAK;AAApG;AACT,SAAS,aAAa,GAAG,GAAG;AAAE,MAAI,YAAY,QAAQ,CAAC,KAAK,CAAC,EAAG,QAAO;AAAG,MAAI,IAAI,EAAE,OAAO,WAAW;AAAG,MAAI,WAAW,GAAG;AAAE,QAAI,IAAI,EAAE,KAAK,GAAG,KAAK,SAAS;AAAG,QAAI,YAAY,QAAQ,CAAC,EAAG,QAAO;AAAG,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAI;AAAC,UAAQ,aAAa,IAAI,SAAS,QAAQ,CAAC;AAAI;AAAnT;AACT,IAAInB,eAAa,CAAC,iBAAiB,iBAAiB,iBAAiB,YAAY;AACjF,SAASZ,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,sBAAsB,iBAAiB,UAAU;AACrD,MAAI,wBAAwB,iBAAiB,YAAY;AACzD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,KAAK,SAAS;AAAA,IACd,SAAS,KAAK,GAAG,MAAM;AAAA,EACxB,GAAE,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,SAAS,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IAC7F,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,OAAO;AAAA,EACzB,GAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,OAAO,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAG,WAAW,KAAK,QAAQ,KAAK,OAAO,SAAS,WAAW,cAAc;AAAA,IACpK,IAAI,MAAM;AAAA,IACV,SAAS,eAAe,KAAK,GAAG,QAAQ,CAAC;AAAA,IACzC,gBAAgB,gCAAS,eAAe,OAAO;AAC7C,aAAO,SAAS,gBAAgB,KAAK;AAAA,IACtC,GAFe;AAAA,EAGpB,GAAK,WAAY;AACb,QAAI;AACJ,WAAO,CAAC,KAAK,SAAS,KAAK,MAAM,SAAS,KAAK,UAAW,GAAE,mBAAmB,KAAK,WAAW;AAAA,MAC7F,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,KAAK,GAAG,QAAQ;AAAA,MACzB,iBAAiB,KAAK,MAAM,UAAU,KAAK,MAAM,SAAS,IAAI,OAAO;AAAA,MACrE,iBAAiB,MAAM;AAAA,MACvB,iBAAiB,MAAM;AAAA,MACvB,eAAe,wBAAwB,KAAK,UAAU,OAAO,OAAO,UAAU,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB;AAAA,MACxJ,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACnD,eAAO,SAAS,gBAAgB,MAAM;AAAA,MAC9C;AAAA,MACM,WAAW,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACrD,eAAO,SAAS,kBAAkB,MAAM;AAAA,MAChD;AAAA,IACA,GAAO,cAAc,cAAc,CAAA,GAAI,KAAK,WAAW,GAAG,KAAK,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,KAAK,OAAO,aAAa,eAAe,kBAAkB,CAAA,GAAI,WAAY;AAC7K,aAAO,CAAC,YAAY,qBAAqB,eAAe,mBAAmB,KAAK,IAAI,YAAY,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC;AAAA,IACpH,CAAK,CAAC,GAAG,IAAIY,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,EACxD,CAAG,GAAG,YAAY,uBAAuB;AAAA,IACrC,KAAK,SAAS;AAAA,IACd,IAAI,MAAM,KAAK;AAAA,IACf,MAAM;AAAA,IACN,OAAO,SAAS;AAAA,IAChB,WAAW,KAAK;AAAA,IAChB,MAAM;AAAA,IACN,cAAc,MAAM;AAAA,IACpB,UAAU;AAAA,IACV,yBAAyB,MAAM,UAAU,SAAS,gBAAgB;AAAA,IAClE,QAAQ,MAAM;AAAA,IACd,eAAe,MAAM,UAAU,SAAS,gBAAgB;AAAA,IACxD,gBAAgB,MAAM;AAAA,IACtB,OAAO;AAAA,IACP,mBAAmB,KAAK;AAAA,IACxB,cAAc,KAAK;AAAA,IACnB,IAAI,KAAK;AAAA,IACT,UAAU,KAAK;AAAA,IACf,SAAS,SAAS;AAAA,IAClB,QAAQ,SAAS;AAAA,IACjB,WAAW,SAAS;AAAA,IACpB,aAAa,SAAS;AAAA,IACtB,kBAAkB,SAAS;AAAA,IAC3B,iBAAiB,SAAS;AAAA,EAC3B,GAAE,MAAM,GAAG,CAAC,MAAM,SAAS,aAAa,gBAAgB,yBAAyB,UAAU,iBAAiB,kBAAkB,mBAAmB,cAAc,MAAM,YAAY,WAAW,UAAU,aAAa,eAAe,oBAAoB,iBAAiB,CAAC,GAAG,KAAK,OAAO,OAAO,UAAS,GAAI,mBAAmB,OAAO,WAAW;AAAA,IAC/U,KAAK;AAAA,IACL,SAAS,KAAK,GAAG,KAAK;AAAA,EAC1B,GAAK,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,KAAK,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AACjG;AAhESZ;AAkETD,SAAO,SAASC;;;;;;;;;;;ACp9BhB,UAAM,eAAe;AACrB,UAAM,oBAAoB;AAAA,MAAS,MACjC,aAAa,IAAI,kBAAkB,MAAM,QAAQ,SAAS;AAAA,IAAA;AAG5D,UAAM,iBAAiB;AACvB,UAAM,QAAQ,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxC7B,IAAIN,UAAQ,gCAASA,OAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,uCAAuC,OAAO,GAAG,oBAAoB,GAAG,wBAAwB,EAAE,OAAO,GAAG,qBAAqB,GAAG,qBAAqB,EAAE,OAAO,GAAG,kBAAkB,GAAG,gBAAgB,EAAE,OAAO,GAAG,aAAa,GAAG,6HAA6H,EAAE,OAAO,GAAG,sBAAsB,GAAG,qBAAqB,EAAE,OAAO,GAAG,yBAAyB,GAAG,gBAAgB,EAAE,OAAO,GAAG,oBAAoB,GAAG,iDAAiD,EAAE,OAAO,GAAG,2BAA2B,GAAG,uBAAuB,EAAE,OAAO,GAAG,2BAA2B,GAAG,wBAAwB,EAAE,OAAO,GAAG,4BAA4B,GAAG,8DAA8D,EAAE,OAAO,GAAG,iCAAiC,GAAG,kEAAkE,EAAE,OAAO,GAAG,yBAAyB,GAAG,2CAA2C,EAAE,OAAO,GAAG,uBAAuB,GAAG,0CAA0C,EAAE,OAAO,GAAG,sBAAsB,GAAG,QAAQ;AAChmC,GAHY;AAIZ,IAAIC,YAAU;AAAA,EACZ,MAAM,gCAASQ,MAAK,OAAO;AACzB,QAAI,QAAQ,MAAM;AAClB,WAAO,CAAC,uBAAuB;AAAA,MAC7B,sBAAsB,MAAM;AAAA,IAClC,CAAK;AAAA,EACF,GALK;AAAA,EAMN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,QAAQ;AACV;AACA,IAAI,aAAa,UAAU,OAAO;AAAA,EAChC,MAAM;AAAA,EACN,OAAOT;AAAAA,EACP,SAASC;AACX,CAAC;AChBD,IAAIC,aAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWQ;AAAAA,EACX,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,WAAW,gCAAS,WAAW;AAC7B,eAAO;AAAA,UACL,UAAU;AAAA,UACV,MAAM;AAAA,UACN,SAAS;AAAA,QACnB;AAAA,MACO,GANU;AAAA,IAOZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASN,WAAU;AAC1B,WAAO;AAAA,MACL,UAAU;AAAA,MACV,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIC,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAWH;AAAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,oBAAoB,QAAQ;AAAA,EACpC,MAAM,gCAASmB,QAAO;AACpB,WAAO;AAAA,MACL,IAAI,KAAK,OAAO;AAAA,MAChB,aAAa,KAAK;AAAA,IACxB;AAAA,EACG,GALK;AAAA,EAMN,OAAO;AAAA,IACL,aAAa,gCAASgD,UAAS,UAAU;AACvC,WAAK,KAAK,YAAY;IACvB,GAFY;AAAA,IAGb,WAAW,gCAAS,UAAU,UAAU;AACtC,WAAK,cAAc;AAAA,IACpB,GAFU;AAAA,EAGZ;AAAA,EACD,SAAS,gCAAS5C,WAAU;AAC1B,SAAK,KAAK,KAAK,MAAM,kBAAiB;AAAA,EACvC,GAFQ;AAAA,EAGT,SAAS;AAAA,IACP,QAAQ,gCAAS4E,QAAO,OAAO;AAC7B,WAAK,cAAc,CAAC,KAAK;AACzB,WAAK,MAAM,oBAAoB,KAAK,WAAW;AAC/C,WAAK,MAAM,UAAU;AAAA,QACnB,eAAe;AAAA,QACf,OAAO,KAAK;AAAA,MACpB,CAAO;AAAA,IACF,GAPO;AAAA,IAQR,WAAW,gCAAStB,WAAU,OAAO;AACnC,UAAI,MAAM,SAAS,WAAW,MAAM,SAAS,iBAAiB,MAAM,SAAS,SAAS;AACpF,aAAK,OAAO,KAAK;AACjB,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GALU;AAAA,EAMZ;AAAA,EACD,UAAU;AAAA,IACR,iBAAiB,gCAAS,kBAAkB;AAC1C,aAAO,KAAK,qBAAqB,KAAK,kBAAkB,YAAY,KAAK,kBAAkB,YAAY,KAAK;AAAA,IAC7G,GAFgB;AAAA,EAGlB;AAAA,EACD,YAAY;AAAA,IACV,UAAUuB;AAAAA,IACV,WAAWC;AAAAA,IACX,QAAQC;AAAAA,EACT;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,IAAItF,eAAa,CAAC,IAAI;AACtB,IAAIC,eAAa,CAAC,MAAM,iBAAiB;AACzC,SAASb,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,KAAK,GAAG,MAAM;AAAA,EAC3B,GAAK,KAAK,KAAK,MAAM,CAAC,GAAG,CAACc,gBAAmB,OAAO,WAAW;AAAA,IAC3D,SAAS,KAAK,GAAG,QAAQ;AAAA,EAC7B,GAAK,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,UAAU;AAAA,IACzD,IAAI,MAAM,KAAK;AAAA,IACf,SAAS,eAAe,KAAK,GAAG,OAAO,CAAC;AAAA,EAC5C,GAAK,WAAY;AACb,WAAO,CAAC,KAAK,UAAU,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,MACxE,KAAK;AAAA,MACL,IAAI,MAAM,KAAK;AAAA,MACf,SAAS,KAAK,GAAG,OAAO;AAAA,IAC9B,GAAO,KAAK,IAAI,OAAO,CAAC,GAAG,gBAAgB,KAAK,MAAM,GAAG,IAAIF,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,EACxG,CAAG,GAAGE,gBAAmB,OAAO,WAAW;AAAA,IACvC,SAAS,KAAK,GAAG,eAAe;AAAA,EACpC,GAAK,KAAK,IAAI,eAAe,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,OAAO,GAAG,KAAK,cAAc,UAAW,GAAE,YAAY,mBAAmB,WAAW;AAAA,IAC1I,KAAK;AAAA,IACL,IAAI,MAAM,KAAK;AAAA,IACf,SAAS,KAAK,GAAG,gBAAgB;AAAA,IACjC,cAAc,SAAS;AAAA,IACvB,iBAAiB,MAAM,KAAK;AAAA,IAC5B,iBAAiB,CAAC,MAAM;AAAA,IACxB,UAAU,KAAK;AAAA,IACf,SAAS,SAAS;AAAA,IAClB,WAAW,SAAS;AAAA,EACxB,GAAK,KAAK,mBAAmB;AAAA,IACzB,IAAI,KAAK,IAAI,gBAAgB;AAAA,EACjC,CAAG,GAAG;AAAA,IACF,MAAM,QAAQ,SAAU,WAAW;AACjC,aAAO,CAAC,WAAW,KAAK,QAAQ,KAAK,OAAO,aAAa,eAAe,eAAe;AAAA,QACrF,WAAW,MAAM;AAAA,MACzB,GAAS,WAAY;AACb,eAAO,EAAE,aAAa,YAAY,wBAAwB,MAAM,cAAc,aAAa,WAAW,GAAG,WAAW;AAAA,UAClH,SAAS,UAAU,OAAO;AAAA,QAC3B,GAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC;AAAA,MAC7D,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,GAAG;AAAA,EACJ,GAAE,IAAI,CAAC,MAAM,SAAS,cAAc,iBAAiB,iBAAiB,YAAY,WAAW,aAAa,IAAI,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,YAAY,YAAY,WAAW;AAAA,IAChM,MAAM;AAAA,EACP,GAAE,KAAK,IAAI,YAAY,CAAC,GAAG;AAAA,IAC1B,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,eAAeA,gBAAmB,OAAO,WAAW;AAAA,QAC1D,IAAI,MAAM,KAAK;AAAA,QACf,SAAS,KAAK,GAAG,kBAAkB;AAAA,QACnC,MAAM;AAAA,QACN,mBAAmB,MAAM,KAAK;AAAA,MACtC,GAAS,KAAK,IAAI,kBAAkB,CAAC,GAAG,CAACA,gBAAmB,OAAO,WAAW;AAAA,QACtE,SAAS,KAAK,GAAG,SAAS;AAAA,MAClC,GAAS,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,SAAS,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,UAAU,aAAa,mBAAmB,OAAO,WAAW;AAAA,QAC1I,KAAK;AAAA,QACL,SAAS,KAAK,GAAG,QAAQ;AAAA,MAC1B,GAAE,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,QAAQ,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAID,YAAU,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC;AAAA,IACxJ,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,EAAE,CAAC,GAAG,EAAE;AACb;AA1DSb;AA4DTD,SAAO,SAASC;;;;;;;;;;;;;;;;;;;;;;;;ACrJhB,IAAIN,UAAQ,gCAASA,OAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,sCAAsC,OAAO,GAAG,uBAAuB,GAAG,gBAAgB,EAAE,OAAO,GAAG,kBAAkB,GAAG,2BAA2B,EAAE,OAAO,GAAG,yBAAyB,GAAG,wBAAwB,EAAE,OAAO,GAAG,0BAA0B,GAAG,mHAAmH,EAAE,OAAO,GAAG,yBAAyB,GAAG,4GAA4G,EAAE,OAAO,GAAG,qBAAqB,GAAG,mHAAmH,EAAE,OAAO,GAAG,uBAAuB,GAAG,gBAAgB,EAAE,OAAO,GAAG,kBAAkB,GAAG,2BAA2B,EAAE,OAAO,GAAG,yBAAyB,GAAG,wBAAwB,EAAE,OAAO,GAAG,0BAA0B,GAAG,qBAAqB,EAAE,OAAO,GAAG,mBAAmB,GAAG,uHAAuH,EAAE,OAAO,GAAG,gCAAgC,GAAG,UAAU,EAAE,OAAO,GAAG,gCAAgC,GAAG,wBAAwB,EAAE,OAAO,GAAG,+BAA+B,GAAG,gBAAgB,EAAE,OAAO,GAAG,uBAAuB,GAAG,uNAAuN,EAAE,OAAO,GAAG,yBAAyB,GAAG,cAAc,EAAE,OAAO,GAAG,qBAAqB,GAAG,oJAAoJ,EAAE,OAAO,GAAG,4BAA4B,GAAG,mDAAmD,EAAE,OAAO,GAAG,+BAA+B,GAAG,4CAA4C,EAAE,OAAO,GAAG,8BAA8B,GAAG,gBAAgB,EAAE,OAAO,GAAG,8BAA8B,GAAG,iBAAiB,EAAE,OAAO,GAAG,8BAA8B,GAAG,gFAAgF,EAAE,OAAO,GAAG,6BAA6B,GAAG,qBAAqB,EAAE,OAAO,GAAG,kCAAkC,GAAG,wGAAwG,EAAE,OAAO,GAAG,kCAAkC,GAAG,2GAA2G,EAAE,OAAO,GAAG,qCAAqC,GAAG,+FAA+F,EAAE,OAAO,GAAG,6BAA6B,GAAG,qBAAqB,EAAE,OAAO,GAAG,kCAAkC,GAAG,uHAAuH,EAAE,OAAO,GAAG,kCAAkC,GAAG,0HAA0H,EAAE,OAAO,GAAG,qCAAqC,GAAG,+EAA+E,EAAE,OAAO,GAAG,8BAA8B,GAAG,qBAAqB,EAAE,OAAO,GAAG,mCAAmC,GAAG,uGAAuG,EAAE,OAAO,GAAG,mCAAmC,GAAG,0GAA0G,EAAE,OAAO,GAAG,sCAAsC,GAAG,+DAA+D,EAAE,OAAO,GAAG,mCAAmC,GAAG,mDAAmD,EAAE,OAAO,GAAG,mBAAmB,GAAG,0JAA0J;AACp7H,GAHY;AAIZ,IAAI,eAAe;AAAA,EACjB,SAAS,gCAASyG,SAAQ,OAAO;AAC/B,QAAI,WAAW,MAAM,UACnB,gBAAgB,MAAM;AACxB,WAAO;AAAA,MACL,SAAS,SAAS,aAAa,aAAa,IAAI,SAAS;AAAA,IAC/D;AAAA,EACG,GANQ;AAOX;AACA,IAAIxG,YAAU;AAAA,EACZ,MAAM,gCAASQ,MAAK,OAAO;AACzB,UAAM;AACJ,QAAI,QAAQ,MAAM;AACpB,WAAO,CAAC,4BAA4B;AAAA,MAClC,wBAAwB,MAAM;AAAA,IACpC,CAAK;AAAA,EACF,GANK;AAAA,EAON,OAAO;AAAA,EACP,UAAU;AAAA,EACV,MAAM,gCAASF,MAAK,OAAO;AACzB,QAAI,WAAW,MAAM,UACnB,gBAAgB,MAAM;AACxB,WAAO,CAAC,qBAAqB;AAAA,MAC3B,4BAA4B,SAAS,aAAa,aAAa;AAAA,MAC/D,WAAW,SAAS,cAAc,aAAa;AAAA,MAC/C,cAAc,SAAS,eAAe,aAAa;AAAA,IACzD,CAAK;AAAA,EACF,GARK;AAAA,EASN,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,KAAK;AACP;AACA,IAAI,kBAAkB,UAAU,OAAO;AAAA,EACrC,MAAM;AAAA,EACN,OAAOP;AAAAA,EACP,SAASC;AAAAA,EACT;AACF,CAAC;ACpCD,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWS;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASN,YAAU;AAC1B,WAAO;AAAA,MACL,eAAe;AAAA,MACf,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAIF,aAAW;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,WAAWQ;AAAAA,EACX,OAAO,CAAC,cAAc,mBAAmB,gBAAgB;AAAA,EACzD,WAAW;AAAA,EACX,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACT,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,WAAW,gCAASgG,WAAU,eAAe;AAC3C,aAAO,GAAG,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,cAAc,GAAG;AAAA,IAC5D,GAFU;AAAA,IAGX,YAAY,gCAASC,YAAW,eAAe;AAC7C,aAAO,KAAK,UAAU,aAAa;AAAA,IACpC,GAFW;AAAA,IAGZ,aAAa,gCAASrC,aAAY,eAAe,MAAM,QAAQ;AAC7D,aAAO,iBAAiB,cAAc,OAAO,QAAQ,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI;AAAA,IAC1F,GAFY;AAAA,IAGb,cAAc,gCAASC,cAAa,eAAe;AACjD,aAAO,KAAK,YAAY,eAAe,OAAO;AAAA,IAC/C,GAFa;AAAA,IAGd,gBAAgB,gCAASqC,gBAAe,eAAe;AACrD,aAAO,GAAG,OAAO,KAAK,QAAQ,GAAG,EAAE,OAAO,cAAc,KAAK,QAAQ;AAAA,IACtE,GAFe;AAAA,IAGhB,cAAc,gCAAStF,cAAa,eAAe,OAAO,KAAK;AAC7D,aAAO,KAAK,IAAI,KAAK;AAAA,QACnB,SAAS;AAAA,UACP,MAAM,cAAc;AAAA,UACpB;AAAA,UACA,QAAQ,KAAK,aAAa,aAAa;AAAA,UACvC,SAAS,KAAK,cAAc,aAAa;AAAA,UACzC,UAAU,KAAK,eAAe,aAAa;AAAA,QAC5C;AAAA,MACT,CAAO;AAAA,IACF,GAVa;AAAA,IAWd,cAAc,gCAASuF,cAAa,eAAe;AACjD,aAAO,KAAK,eAAe,KAAK,SAAU,MAAM;AAC9C,eAAO,KAAK,QAAQ,cAAc;AAAA,MAC1C,CAAO;AAAA,IACF,GAJa;AAAA,IAKd,eAAe,gCAASpC,eAAc,eAAe;AACnD,aAAO,KAAK,YAAY,eAAe,SAAS,MAAM;AAAA,IACvD,GAFc;AAAA,IAGf,gBAAgB,gCAASD,gBAAe,eAAe;AACrD,aAAO,KAAK,YAAY,eAAe,UAAU;AAAA,IAClD,GAFe;AAAA,IAGhB,eAAe,gCAASsC,eAAc,eAAe;AACnD,aAAO,KAAK,kBAAkB,KAAK,UAAU,aAAa;AAAA,IAC3D,GAFc;AAAA,IAGf,aAAa,gCAASpC,aAAY,eAAe;AAC/C,aAAO,WAAW,cAAc,KAAK;AAAA,IACtC,GAFY;AAAA,IAGb,SAAS,gCAASqC,WAAU;AAC1B,qBAAe,KAAK,WAAW,KAAK,KAAK;AAAA,IAC1C,GAFQ;AAAA,IAGT,aAAa,gCAAS9B,aAAY,OAAO,eAAe;AACtD,WAAK,YAAY,eAAe,WAAW;AAAA,QACzC,eAAe;AAAA,QACf,MAAM,cAAc;AAAA,MAC5B,CAAO;AACD,WAAK,MAAM,cAAc;AAAA,QACvB,eAAe;AAAA,QACf;AAAA,QACA,SAAS;AAAA,MACjB,CAAO;AAAA,IACF,GAVY;AAAA,IAWb,kBAAkB,gCAASC,kBAAiB,OAAO,eAAe;AAChE,WAAK,MAAM,mBAAmB;AAAA,QAC5B,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GALiB;AAAA,IAMlB,iBAAiB,gCAASC,iBAAgB,OAAO,eAAe;AAC9D,WAAK,MAAM,kBAAkB;AAAA,QAC3B,eAAe;AAAA,QACf;AAAA,MACR,CAAO;AAAA,IACF,GALgB;AAAA,IAMjB,gBAAgB,gCAAS6B,kBAAiB;AACxC,UAAI,QAAQ;AACZ,aAAO,KAAK,MAAM,OAAO,SAAU,eAAe;AAChD,eAAO,MAAM,cAAc,aAAa,KAAK,CAAC,MAAM,YAAY,eAAe,WAAW;AAAA,MAC3F,CAAA,EAAE;AAAA,IACJ,GALe;AAAA,IAMhB,iBAAiB,gCAAS/C,iBAAgB,OAAO;AAC/C,UAAI,SAAS;AACb,aAAO,QAAQ,KAAK,MAAM,MAAM,GAAG,KAAK,EAAE,OAAO,SAAU,eAAe;AACxE,eAAO,OAAO,cAAc,aAAa,KAAK,OAAO,YAAY,eAAe,WAAW;AAAA,MACnG,CAAO,EAAE,SAAS;AAAA,IACb,GALgB;AAAA,IAMjB,kBAAkB,gCAASgD,kBAAiB,eAAe,OAAO;AAChE,aAAO;AAAA,QACL,QAAQ,WAAW;AAAA,UACjB,SAAS,KAAK,GAAG,UAAU;AAAA,UAC3B,UAAU;AAAA,UACV,eAAe;AAAA,QAChB,GAAE,KAAK,aAAa,eAAe,OAAO,UAAU,CAAC;AAAA,QACtD,MAAM,WAAW;AAAA,UACf,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,KAAK,YAAY,eAAe,MAAM,CAAC;AAAA,QACvE,GAAE,KAAK,aAAa,eAAe,OAAO,UAAU,CAAC;AAAA,QACtD,OAAO,WAAW;AAAA,UAChB,SAAS,KAAK,GAAG,WAAW;AAAA,QAC7B,GAAE,KAAK,aAAa,eAAe,OAAO,WAAW,CAAC;AAAA,QACvD,aAAa,WAAW;AAAA,UACtB,SAAS,KAAK,GAAG,aAAa;AAAA,QAC/B,GAAE,KAAK,aAAa,eAAe,OAAO,aAAa,CAAC;AAAA,MACjE;AAAA,IACK,GAjBiB;AAAA,IAkBlB,cAAc,gCAASC,cAAa,IAAI;AACtC,WAAK,YAAY;AAAA,IAClB,GAFa;AAAA,EAGf;AAAA,EACD,YAAY;AAAA,IACV,gBAAgBhD;AAAAA,EACjB;AAAA,EACD,YAAY;AAAA,IACV,QAAQ;AAAA,EACT;AACH;AAEA,IAAIE,iBAAe,CAAC,UAAU;AAC9B,IAAIjD,eAAa,CAAC,MAAM,cAAc,iBAAiB,iBAAiB,iBAAiB,cAAc,gBAAgB,iBAAiB,iBAAiB,kBAAkB,iBAAiB;AAC5L,IAAI,aAAa,CAAC,WAAW,gBAAgB,aAAa;AAC1D,IAAI,aAAa,CAAC,QAAQ,QAAQ;AAClC,IAAI,aAAa,CAAC,IAAI;AACtB,IAAI,aAAa,CAAC,IAAI;AACtB,SAAS,SAAS,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC/D,MAAI,4BAA4B,iBAAiB,gBAAgB;AACjE,MAAI,2BAA2B,iBAAiB,iBAAiB,IAAI;AACrE,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAW,GAAE,YAAY,YAAY,WAAW;AAAA,IACrD,MAAM;AAAA,IACN,SAAS,SAAS;AAAA,EACnB,GAAE,KAAK,IAAI,iBAAiB,CAAC,GAAG;AAAA,IAC/B,WAAW,QAAQ,WAAY;AAC7B,aAAO,EAAE,OAAO,UAAU,IAAI,OAAO,OAAO,YAAY,UAAW,GAAE,mBAAmB,MAAM,WAAW;AAAA,QACvG,KAAK;AAAA,QACL,KAAK,SAAS;AAAA,QACd,SAAS,OAAO,UAAU,IAAI,KAAK,GAAG,UAAU,IAAI,KAAK,GAAG,SAAS;AAAA,QACrE,UAAU,OAAO;AAAA,MAClB,GAAE,OAAO,UAAU,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,EAAE,UAAU,IAAI,GAAG,mBAAmB,UAAU,MAAM,WAAW,OAAO,OAAO,SAAU,eAAe,OAAO;AAClL,eAAO,UAAS,GAAI,mBAAmB,UAAU;AAAA,UAC/C,KAAK,SAAS,WAAW,aAAa;AAAA,QACvC,GAAE,CAAC,SAAS,cAAc,aAAa,KAAK,CAAC,SAAS,YAAY,eAAe,WAAW,KAAK,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,UACjJ,KAAK;AAAA,UACL,IAAI,SAAS,UAAU,aAAa;AAAA,UACpC,OAAO,SAAS,YAAY,eAAe,OAAO;AAAA,UAClD,SAAS,CAAC,KAAK,GAAG,QAAQ;AAAA,YACxB;AAAA,UACD,CAAA,GAAG,SAAS,YAAY,eAAe,OAAO,CAAC;AAAA,UAChD,MAAM;AAAA,UACN,cAAc,SAAS,aAAa,aAAa;AAAA,UACjD,iBAAiB,SAAS,eAAe,aAAa,KAAK;AAAA,UAC3D,iBAAiB,SAAS,YAAY,aAAa,IAAI,SAAS,aAAa,aAAa,IAAI;AAAA,UAC9F,iBAAiB,SAAS,YAAY,aAAa,KAAK,CAAC,SAAS,YAAY,eAAe,IAAI,IAAI,SAAS;AAAA,UAC9G,cAAc,OAAO,QAAQ;AAAA,UAC7B,gBAAgB,SAAS,eAAgB;AAAA,UACzC,iBAAiB,SAAS,gBAAgB,KAAK;AAAA,UAC/C,SAAS;AAAA,QACV,GAAE,SAAS,aAAa,eAAe,OAAO,MAAM,GAAG;AAAA,UACtD,iBAAiB,SAAS,aAAa,aAAa;AAAA,UACpD,kBAAkB,SAAS,cAAc,aAAa;AAAA,UACtD,mBAAmB,SAAS,eAAe,aAAa;AAAA,QACzD,CAAA,GAAG,CAACC,gBAAmB,OAAO,WAAW;AAAA,UACxC,SAAS,KAAK,GAAG,aAAa;AAAA,UAC9B,SAAS,gCAAS,QAAQ,QAAQ;AAChC,mBAAO,SAAS,YAAY,QAAQ,aAAa;AAAA,UAClD,GAFQ;AAAA,UAGT,cAAc,gCAAS,aAAa,QAAQ;AAC1C,mBAAO,SAAS,iBAAiB,QAAQ,aAAa;AAAA,UACvD,GAFa;AAAA,UAGd,aAAa,gCAAS,YAAY,QAAQ;AACxC,mBAAO,SAAS,gBAAgB,QAAQ,aAAa;AAAA,UACtD,GAFY;AAAA,UAGb,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,eAAe,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,UAAU,OAAO,gBAAgB,UAAW,GAAE,mBAAmB,KAAK,WAAW;AAAA,UACxJ,KAAK;AAAA,UACL,MAAM,SAAS,YAAY,eAAe,KAAK;AAAA,UAC/C,SAAS,KAAK,GAAG,UAAU;AAAA,UAC3B,QAAQ,SAAS,YAAY,eAAe,QAAQ;AAAA,UACpD,UAAU;AAAA,UACV,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,eAAe,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,UAAU,YAAY,UAAS,GAAI,YAAY,wBAAwB,OAAO,UAAU,QAAQ,GAAG;AAAA,UACtK,KAAK;AAAA,UACL,MAAM,cAAc;AAAA,UACpB,SAAS,eAAe,KAAK,GAAG,UAAU,CAAC;AAAA,QACrD,GAAW,MAAM,GAAG,CAAC,QAAQ,OAAO,CAAC,KAAK,SAAS,YAAY,eAAe,MAAM,KAAK,UAAW,GAAE,mBAAmB,QAAQ,WAAW;AAAA,UAClI,KAAK;AAAA,UACL,SAAS,CAAC,KAAK,GAAG,UAAU,GAAG,SAAS,YAAY,eAAe,MAAM,CAAC;AAAA,UAC1E,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,eAAe,OAAO,UAAU,CAAC,GAAG,MAAM,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAGA,gBAAmB,QAAQ,WAAW;AAAA,UAC5I,IAAI,SAAS,eAAe,aAAa;AAAA,UACzC,SAAS,KAAK,GAAG,WAAW;AAAA,UAC5B,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,eAAe,OAAO,WAAW,CAAC,GAAG,gBAAgB,SAAS,aAAa,aAAa,CAAC,GAAG,IAAI,UAAU,GAAG,SAAS,YAAY,eAAe,OAAO,KAAK,UAAS,GAAI,mBAAmB,UAAU;AAAA,UAC9N,KAAK;AAAA,QACN,GAAE,CAAC,OAAO,UAAU,eAAe,UAAW,GAAE,YAAY,wBAAwB,OAAO,UAAU,WAAW,GAAG,WAAW;AAAA,UAC7H,KAAK;AAAA,UACL,SAAS,KAAK,GAAG,aAAa;AAAA,UAC9B,QAAQ,SAAS,aAAa,aAAa;AAAA,UAC3C,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,eAAe,OAAO,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,UAAW,GAAE,YAAY,2BAA2B,WAAW;AAAA,UAChK,KAAK;AAAA,UACL,SAAS,KAAK,GAAG,aAAa;AAAA,UAC9B,SAAS;AAAA,QACnB,GAAW,SAAS,aAAa,eAAe,OAAO,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAI,UAAU,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,KAAK,UAAW,GAAE,YAAY,wBAAwB,OAAO,UAAU,IAAI,GAAG;AAAA,UACjP,KAAK;AAAA,UACL,MAAM,cAAc;AAAA,UACpB,YAAY,SAAS,YAAY,eAAe,OAAO;AAAA,UACvD,OAAO,SAAS,aAAa,aAAa;AAAA,UAC1C,OAAO,SAAS,iBAAiB,eAAe,KAAK;AAAA,QAC/D,GAAW,MAAM,GAAG,CAAC,QAAQ,cAAc,SAAS,OAAO,CAAC,EAAE,GAAG,IAAI,UAAU,GAAG,SAAS,cAAc,aAAa,KAAK,SAAS,YAAY,aAAa,KAAK,UAAS,GAAI,YAAY,0BAA0B;AAAA,UAC3M,KAAK;AAAA,UACL,IAAI,SAAS,UAAU,aAAa,IAAI;AAAA,UACxC,OAAO,eAAe,KAAK,GAAG,WAAW,MAAM;AAAA,YAC7C;AAAA,UACZ,CAAW,CAAC;AAAA,UACF,mBAAmB,SAAS,eAAe,aAAa;AAAA,UACxD,MAAM;AAAA,UACN,QAAQ,OAAO;AAAA,UACf,eAAe,OAAO;AAAA,UACtB,OAAO,cAAc;AAAA,UACrB,WAAW,OAAO;AAAA,UAClB,gBAAgB,OAAO;AAAA,UACvB,OAAO,OAAO,QAAQ;AAAA,UACtB,SAAS,SAAS,aAAa,aAAa,KAAK,SAAS,YAAY,aAAa;AAAA,UACnF,IAAI,KAAK;AAAA,UACT,UAAU,KAAK;AAAA,UACf,aAAa,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AACvD,mBAAO,KAAK,MAAM,cAAc,MAAM;AAAA,UAClD;AAAA,UACU,kBAAkB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC5D,mBAAO,KAAK,MAAM,mBAAmB,MAAM;AAAA,UACvD;AAAA,UACU,iBAAiB,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,SAAU,QAAQ;AAC3D,mBAAO,KAAK,MAAM,kBAAkB,MAAM;AAAA,UACtD;AAAA,QACA,GAAW,MAAM,GAAG,CAAC,MAAM,SAAS,mBAAmB,UAAU,iBAAiB,SAAS,aAAa,kBAAkB,SAAS,WAAW,MAAM,UAAU,CAAC,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAID,YAAU,KAAK,mBAAmB,IAAI,IAAI,GAAG,SAAS,cAAc,aAAa,KAAK,SAAS,YAAY,eAAe,WAAW,KAAK,UAAS,GAAI,mBAAmB,MAAM,WAAW;AAAA,UACxX,KAAK;AAAA,UACL,IAAI,SAAS,UAAU,aAAa;AAAA,UACpC,OAAO,SAAS,YAAY,eAAe,OAAO;AAAA,UAClD,SAAS,CAAC,KAAK,GAAG,WAAW,GAAG,SAAS,YAAY,eAAe,OAAO,CAAC;AAAA,UAC5E,MAAM;AAAA,UACN,SAAS;AAAA,QACV,GAAE,KAAK,IAAI,WAAW,CAAC,GAAG,MAAM,IAAI,UAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE;AAAA,MAC7F,CAAO,GAAG,GAAG,EAAG,GAAE,IAAIiD,cAAY,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,IACnE,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,IAAI,CAAC,SAAS,CAAC;AACpB;AA3HS;AA6HTlE,WAAS,SAAS;AAElB,IAAIG,WAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAW;AAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,SAAS,QAAQ,eAAe,eAAe,QAAQ,MAAM;AAAA,EACrE,sBAAsB;AAAA,EACtB,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,SAAS;AAAA,EACT,eAAe;AAAA,EACf,aAAa;AAAA,EACb,MAAM,gCAASgB,QAAO;AACpB,WAAO;AAAA,MACL,IAAI,KAAK,OAAO;AAAA,MAChB,SAAS;AAAA,MACT,iBAAiB;AAAA,QACf,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACZ;AAAA,MACD,gBAAgB,CAAE;AAAA,MAClB,SAAS,CAAC,KAAK;AAAA,MACf,gBAAgB;AAAA,MAChB,OAAO;AAAA,IACb;AAAA,EACG,GAdK;AAAA,EAeN,OAAO;AAAA,IACL,aAAa,gCAASgD,UAAS,UAAU;AACvC,WAAK,KAAK,YAAY;IACvB,GAFY;AAAA,IAGb,gBAAgB,gCAASW,gBAAe,SAAS;AAC/C,UAAI,CAAC,KAAK,OAAO;AACf,YAAI,WAAW,OAAO,GAAG;AACvB,eAAK,yBAAwB;AAC7B,eAAK,mBAAkB;AAAA,QACjC,OAAe;AACL,eAAK,2BAA0B;AAC/B,eAAK,qBAAoB;AAAA,QAC1B;AAAA,MACF;AAAA,IACF,GAVe;AAAA,EAWjB;AAAA,EACD,SAAS,gCAASvD,WAAU;AAC1B,SAAK,KAAK,KAAK,MAAM,kBAAiB;AAAA,EACvC,GAFQ;AAAA,EAGT,eAAe,gCAASC,iBAAgB;AACtC,SAAK,2BAA0B;AAC/B,SAAK,qBAAoB;AACzB,QAAI,KAAK,eAAe;AACtB,WAAK,cAAc;AACnB,WAAK,gBAAgB;AAAA,IACtB;AACD,QAAI,KAAK,aAAa,KAAK,YAAY;AACrC,aAAO,MAAM,KAAK,SAAS;AAAA,IAC5B;AACD,SAAK,SAAS;AACd,SAAK,YAAY;AAAA,EAClB,GAZc;AAAA,EAaf,SAAS;AAAA,IACP,aAAa,gCAAS4C,aAAY/D,OAAM,MAAM;AAC5C,aAAOA,QAAO,QAAQA,MAAK,IAAI,CAAC,IAAI;AAAA,IACrC,GAFY;AAAA,IAGb,cAAc,gCAASgE,cAAahE,OAAM;AACxC,aAAO,KAAK,YAAYA,OAAM,OAAO;AAAA,IACtC,GAFa;AAAA,IAGd,gBAAgB,gCAASiE,gBAAejE,OAAM;AAC5C,aAAO,KAAK,YAAYA,OAAM,UAAU;AAAA,IACzC,GAFe;AAAA,IAGhB,eAAe,gCAASkE,eAAclE,OAAM;AAC1C,aAAO,KAAK,YAAYA,OAAM,SAAS,MAAM;AAAA,IAC9C,GAFc;AAAA,IAGf,aAAa,gCAASmE,aAAYnE,OAAM;AACtC,aAAO,WAAW,KAAK,YAAYA,OAAM,OAAO,CAAC;AAAA,IAClD,GAFY;AAAA,IAGb,iBAAiB,gCAAS4G,iBAAgB5G,OAAM;AAC9C,aAAO,KAAK,YAAYA,OAAM,WAAW;AAAA,IAC1C,GAFgB;AAAA,IAGjB,wBAAwB,gCAAS6G,wBAAuB,eAAe;AACrE,aAAO,gBAAgB,KAAK,aAAa,cAAc,IAAI,IAAI;AAAA,IAChE,GAFuB;AAAA,IAGxB,uBAAuB,gCAASC,uBAAsB,eAAe;AACnE,aAAO,iBAAiB,WAAW,cAAc,KAAK;AAAA,IACvD,GAFsB;AAAA,IAGvB,QAAQ,gCAAShB,QAAO,OAAO;AAC7B,WAAK,UAAU,KAAK,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK,KAAK;AAAA,IACxD,GAFO;AAAA,IAGR,MAAM,gCAAS1B,MAAK,OAAO,SAAS;AAClC,UAAI,KAAK,OAAO;AACd,aAAK,MAAM,aAAa;AACxB,aAAK,UAAU;AACf,aAAK,SAAS,KAAK,UAAU,MAAM;AACnC,aAAK,gBAAgB,MAAM,iBAAiB;AAAA,MAC7C;AACD,iBAAW,MAAM,KAAK,OAAO;AAAA,IAC9B,GARK;AAAA,IASN,MAAM,gCAASC,MAAK,OAAO,SAAS;AAClC,UAAI,KAAK,OAAO;AACd,aAAK,MAAM,aAAa;AACxB,aAAK,UAAU;AAAA,MAChB;AACD,WAAK,iBAAiB;AACtB,WAAK,kBAAkB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AACM,iBAAW,MAAM,KAAK,iBAAiB,KAAK,UAAU,KAAK,OAAO;AAClE,WAAK,QAAQ;AAAA,IACd,GAbK;AAAA,IAcN,SAAS,gCAASC,SAAQ,OAAO;AAC/B,WAAK,UAAU;AACf,UAAI,CAAC,KAAK,OAAO;AACf,aAAK,kBAAkB,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB;AAAA,UAChF,OAAO,KAAK,0BAA2B;AAAA,UACvC,OAAO;AAAA,UACP,WAAW;AAAA,QACrB;AAAA,MACO;AACD,WAAK,MAAM,SAAS,KAAK;AAAA,IAC1B,GAVQ;AAAA,IAWT,QAAQ,gCAASC,QAAO,OAAO;AAC7B,WAAK,UAAU;AACf,WAAK,kBAAkB;AAAA,QACrB,OAAO;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,MACnB;AACM,WAAK,cAAc;AACnB,WAAK,QAAQ;AACb,WAAK,MAAM,QAAQ,KAAK;AAAA,IACzB,GAVO;AAAA,IAWR,WAAW,gCAASC,WAAU,OAAO;AACnC,UAAI,KAAK,UAAU;AACjB,cAAM,eAAc;AACpB;AAAA,MACD;AACD,UAAI,UAAU,MAAM,WAAW,MAAM;AACrC,cAAQ,MAAM,MAAI;AAAA,QAChB,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,aAAa,KAAK;AACvB;AAAA,QACF,KAAK;AACH,eAAK,eAAe,KAAK;AACzB;AAAA,QACF,KAAK;AACH,eAAK,gBAAgB,KAAK;AAC1B;AAAA,QACF,KAAK;AACH,eAAK,UAAU,KAAK;AACpB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AACH,eAAK,WAAW,KAAK;AACrB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AACH,eAAK,WAAW,KAAK;AACrB;AAAA,QACF,KAAK;AACH,eAAK,YAAY,KAAK;AACtB;AAAA,QACF,KAAK;AACH,eAAK,SAAS,KAAK;AACnB;AAAA,QACF,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAEH;AAAA,QACF;AACE,cAAI,CAAC,WAAW,qBAAqB,MAAM,GAAG,GAAG;AAC/C,iBAAK,YAAY,OAAO,MAAM,GAAG;AAAA,UAClC;AACD;AAAA,MACH;AAAA,IACF,GAnDU;AAAA,IAoDX,cAAc,gCAASuC,cAAa,OAAO;AACzC,UAAI,gBAAgB,MAAM,eACxB,UAAU,MAAM;AAClB,UAAI,QAAQ,aAAa,EAAG;AAC5B,UAAI,QAAQ,cAAc,OACxB,MAAM,cAAc,KACpB,QAAQ,cAAc,OACtB,YAAY,cAAc,WAC1B,QAAQ,cAAc;AACxB,UAAI,UAAU,WAAW,KAAK;AAC9B,UAAItC,kBAAiB,KAAK,eAAe,OAAO,SAAU,GAAG;AAC3D,eAAO,EAAE,cAAc,aAAa,EAAE,cAAc;AAAA,MAC5D,CAAO;AACD,UAAI,SAAS;AACX,QAAAA,gBAAe,KAAK,aAAa;AACjC,aAAK,iBAAiB;AAAA,MACvB;AACD,WAAK,kBAAkB;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,MACR;AACM,WAAK,iBAAiBA;AACtB,kBAAY,KAAK,QAAQ;AACzB,iBAAW,MAAM,KAAK,OAAO;AAAA,IAC9B,GAzBa;AAAA,IA0Bd,gBAAgB,gCAASuC,gBAAe,OAAO;AAC7C,sBAAgB,KAAK,iBAAiB;AAAA,QACpC,eAAe;AAAA,QACf,QAAQ,KAAK;AAAA,MACrB,CAAO;AAAA,IACF,GALe;AAAA,IAMhB,aAAa,gCAAStC,aAAY,OAAO;AACvC,UAAI,gBAAgB,MAAM,eACxB,gBAAgB,MAAM;AACxB,UAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,UAAIxE,SAAO,QAAQ,cAAc,MAAM;AACvC,UAAI,WAAW,KAAK,WAAW,aAAa;AAC5C,UAAI,UAAU;AACZ,YAAI,QAAQ,cAAc,OACxB,MAAM,cAAc,KACpB,QAAQ,cAAc,OACtB,YAAY,cAAc;AAC5B,aAAK,iBAAiB,KAAK,eAAe,OAAO,SAAU,GAAG;AAC5D,iBAAO,QAAQ,EAAE,OAAO,IAAI,WAAW,EAAE,GAAG;AAAA,QACtD,CAAS;AACD,aAAK,kBAAkB;AAAA,UACrB;AAAA,UACA;AAAA,UACA;AAAA,QACV;AACQ,aAAK,QAAQ,CAACA;AACd,cAAM,KAAK,OAAO;AAAA,MAC1B,OAAa;AACL,YAAI,SAAS;AACX,eAAK,aAAa,KAAK;AAAA,QACjC,OAAe;AACL,cAAI,oBAAoBA,SAAO,gBAAgB,KAAK,eAAe,KAAK,SAAU,GAAG;AACnF,mBAAO,EAAE,cAAc;AAAA,UACnC,CAAW;AACD,eAAK,KAAK,aAAa;AACvB,eAAK,uBAAuB,eAAe,oBAAoB,kBAAkB,QAAQ,EAAE;AAC3F,gBAAM,KAAK,OAAO;AAAA,QACnB;AAAA,MACF;AAAA,IACF,GAjCY;AAAA,IAkCb,kBAAkB,gCAASyE,kBAAiB,OAAO;AACjD,UAAI,KAAK,OAAO;AACd,aAAK,aAAa,KAAK;AAAA,MACxB;AAAA,IACF,GAJiB;AAAA,IAKlB,iBAAiB,gCAASC,iBAAgB,OAAO;AAC/C,UAAI,KAAK,SAAS;AAChB,aAAK,uBAAuB,OAAO,MAAM,cAAc,KAAK;AAAA,MAC7D;AAAA,IACF,GAJgB;AAAA,IAKjB,gBAAgB,gCAASC,gBAAe,OAAO;AAC7C,UAAI,YAAY,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,0BAAyB;AACvI,WAAK,uBAAuB,OAAO,SAAS;AAC5C,YAAM,eAAc;AAAA,IACrB,GAJe;AAAA,IAKhB,cAAc,gCAASC,cAAa,OAAO;AACzC,UAAI,MAAM,QAAQ;AAChB,YAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,cAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,cAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,WAAC,WAAW,KAAK,aAAa;AAAA,YAC5B,eAAe;AAAA,YACf;AAAA,UACZ,CAAW;AAAA,QACF;AACD,aAAK,SAAS,KAAK,KAAK,OAAO,IAAI;AACnC,cAAM,eAAc;AAAA,MAC5B,OAAa;AACL,YAAI,YAAY,KAAK,gBAAgB,UAAU,KAAK,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,KAAK,yBAAwB;AACtI,aAAK,uBAAuB,OAAO,SAAS;AAC5C,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GAjBa;AAAA,IAkBd,gBAAgB,gCAASC,gBAAe,OAAO;AAC7C,UAAI,QAAQ;AACZ,UAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,UAAI,aAAa,KAAK,eAAe,KAAK,SAAU,GAAG;AACrD,eAAO,EAAE,QAAQ,cAAc;AAAA,MACvC,CAAO;AACD,UAAI7E,SAAO,QAAQ,cAAc,MAAM;AACvC,UAAI,CAACA,QAAM;AACT,aAAK,kBAAkB;AAAA,UACrB,OAAO;AAAA,UACP,WAAW,aAAa,WAAW,YAAY;AAAA,QACzD;AACQ,aAAK,cAAc;AACnB,aAAK,eAAe,KAAK;AAAA,MAC1B;AACD,WAAK,iBAAiB,KAAK,eAAe,OAAO,SAAU,GAAG;AAC5D,eAAO,EAAE,cAAc,MAAM,gBAAgB;AAAA,MACrD,CAAO;AACD,YAAM,eAAc;AAAA,IACrB,GAnBe;AAAA,IAoBhB,iBAAiB,gCAAS8E,iBAAgB,OAAO;AAC/C,UAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,UAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,UAAI,SAAS;AACX,aAAK,aAAa;AAAA,UAChB,eAAe;AAAA,UACf;AAAA,QACV,CAAS;AACD,aAAK,kBAAkB;AAAA,UACrB,OAAO;AAAA,UACP,WAAW,cAAc;AAAA,QACnC;AACQ,aAAK,cAAc;AACnB,aAAK,eAAe,KAAK;AAAA,MAC1B;AACD,YAAM,eAAc;AAAA,IACrB,GAhBgB;AAAA,IAiBjB,WAAW,gCAASC,WAAU,OAAO;AACnC,WAAK,uBAAuB,OAAO,KAAK,mBAAoB,CAAA;AAC5D,YAAM,eAAc;AAAA,IACrB,GAHU;AAAA,IAIX,UAAU,gCAASC,UAAS,OAAO;AACjC,WAAK,uBAAuB,OAAO,KAAK,kBAAmB,CAAA;AAC3D,YAAM,eAAc;AAAA,IACrB,GAHS;AAAA,IAIV,YAAY,gCAASC,YAAW,OAAO;AACrC,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,YAAI,UAAU,WAAW,KAAK,SAAS,UAAW,OAAO,GAAG,OAAO,KAAK,aAAa,GAAG,IAAK,CAAC;AAC9F,YAAI,gBAAgB,WAAW,WAAW,SAAS,8BAA8B;AACjF,wBAAgB,cAAc,MAAK,IAAK,WAAW,QAAQ;AAC3D,YAAI,CAAC,KAAK,OAAO;AACf,cAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,cAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,WAAC,YAAY,KAAK,gBAAgB,QAAQ,KAAK,0BAAyB;AAAA,QACzE;AAAA,MACF;AACD,YAAM,eAAc;AAAA,IACrB,GAZW;AAAA,IAaZ,YAAY,gCAAS8B,YAAW,OAAO;AACrC,WAAK,WAAW,KAAK;AAAA,IACtB,GAFW;AAAA,IAGZ,aAAa,gCAAS7B,aAAY,OAAO;AACvC,UAAI,KAAK,SAAS,KAAK,gBAAgB,UAAU,GAAG;AAClD,YAAI,mBAAmB,KAAK;AAC5B,aAAK,KAAK,OAAO,KAAK;AACtB,aAAK,kBAAkB;AAAA,UACrB,OAAO,OAAO,iBAAiB,UAAU,MAAM,GAAG,EAAE,CAAC,CAAC;AAAA,UACtD,OAAO;AAAA,UACP,WAAW;AAAA,QACrB;AACQ,aAAK,SAAS,MAAM,KAAK,MAAM;AAAA,MAChC;AACD,YAAM,eAAc;AAAA,IACrB,GAZY;AAAA,IAab,UAAU,gCAASC,UAAS,OAAO;AACjC,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,YAAI,gBAAgB,KAAK,aAAa,KAAK,gBAAgB,KAAK;AAChE,YAAI,UAAU,KAAK,sBAAsB,aAAa;AACtD,SAAC,WAAW,KAAK,aAAa;AAAA,UAC5B,eAAe;AAAA,UACf;AAAA,QACV,CAAS;AAAA,MACF;AACD,WAAK,KAAI;AAAA,IACV,GAVS;AAAA,IAWV,SAAS,gCAASmB,SAAQ,IAAI;AAC5B,UAAI,KAAK,YAAY;AACnB,eAAO,IAAI,QAAQ,IAAI,KAAK,aAAa,KAAK,UAAU,OAAO,OAAO,IAAI;AAAA,MAC3E;AACD,eAAS,IAAI;AAAA,QACX,UAAU;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,MACd,CAAO;AACD,WAAK,aAAY;AACjB,YAAM,KAAK,OAAO;AAClB,WAAK,aAAY;AAAA,IAClB,GAZQ;AAAA,IAaT,cAAc,gCAAS,eAAe;AACpC,WAAK,yBAAwB;AAC7B,WAAK,mBAAkB;AACvB,WAAK,mBAAkB;AACvB,WAAK,MAAM,MAAM;AAAA,IAClB,GALa;AAAA,IAMd,SAAS,gCAASU,WAAU;AAC1B,WAAK,2BAA0B;AAC/B,WAAK,qBAAoB;AACzB,WAAK,qBAAoB;AACzB,WAAK,MAAM,MAAM;AACjB,WAAK,YAAY;AACjB,WAAK,QAAQ;AAAA,IACd,GAPQ;AAAA,IAQT,cAAc,gCAAS,aAAa,IAAI;AACtC,UAAI,KAAK,YAAY;AACnB,eAAO,MAAM,EAAE;AAAA,MAChB;AAAA,IACF,GAJa;AAAA,IAKd,cAAc,gCAASC,gBAAe;AACpC,uBAAiB,KAAK,WAAW,KAAK,MAAM;AAC5C,UAAI,cAAc,cAAc,KAAK,MAAM;AAC3C,UAAI,cAAc,cAAc,KAAK,SAAS,GAAG;AAC/C,aAAK,UAAU,MAAM,WAAW,cAAc,KAAK,MAAM,IAAI;AAAA,MAC9D;AAAA,IACF,GANa;AAAA,IAOd,0BAA0B,gCAAS7B,4BAA2B;AAC5D,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,sBAAsB;AAC9B,aAAK,uBAAuB,SAAU,OAAO;AAC3C,cAAI,qBAAqB,OAAO,aAAa,CAAC,OAAO,UAAU,SAAS,MAAM,MAAM;AACpF,cAAI,kBAAkB,OAAO,QAAQ,EAAE,OAAO,WAAW,OAAO,WAAW,MAAM,UAAU,OAAO,OAAO,SAAS,MAAM,MAAM,MAAM;AACpI,cAAI,sBAAsB,iBAAiB;AACzC,mBAAO,KAAI;AAAA,UACZ;AAAA,QACX;AACQ,iBAAS,iBAAiB,SAAS,KAAK,oBAAoB;AAAA,MAC7D;AAAA,IACF,GAZyB;AAAA,IAa1B,4BAA4B,gCAASC,8BAA6B;AAChE,UAAI,KAAK,sBAAsB;AAC7B,iBAAS,oBAAoB,SAAS,KAAK,oBAAoB;AAC/D,aAAK,uBAAuB;AAAA,MAC7B;AAAA,IACF,GAL2B;AAAA,IAM5B,oBAAoB,gCAAS6B,sBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,eAAe;AACvB,aAAK,gBAAgB,IAAI,8BAA8B,KAAK,QAAQ,SAAU,OAAO;AACnF,iBAAO,KAAK,OAAO,IAAI;AAAA,QACjC,CAAS;AAAA,MACF;AACD,WAAK,cAAc;IACpB,GARmB;AAAA,IASpB,sBAAsB,gCAASC,wBAAuB;AACpD,UAAI,KAAK,eAAe;AACtB,aAAK,cAAc;MACpB;AAAA,IACF,GAJqB;AAAA,IAKtB,oBAAoB,gCAAS7B,sBAAqB;AAChD,UAAI,SAAS;AACb,UAAI,CAAC,KAAK,gBAAgB;AACxB,aAAK,iBAAiB,SAAU,OAAO;AACrC,cAAI,CAAC,cAAa,GAAI;AACpB,mBAAO,KAAK,OAAO,IAAI;AAAA,UACxB;AAAA,QACX;AACQ,eAAO,iBAAiB,UAAU,KAAK,cAAc;AAAA,MACtD;AAAA,IACF,GAVmB;AAAA,IAWpB,sBAAsB,gCAASC,wBAAuB;AACpD,UAAI,KAAK,gBAAgB;AACvB,eAAO,oBAAoB,UAAU,KAAK,cAAc;AACxD,aAAK,iBAAiB;AAAA,MACvB;AAAA,IACF,GALqB;AAAA,IAMtB,eAAe,gCAAS6B,eAAc,eAAe;AACnD,UAAI;AACJ,aAAO,KAAK,YAAY,aAAa,OAAO,wBAAwB,KAAK,uBAAuB,aAAa,OAAO,QAAQ,0BAA0B,SAAS,SAAS,sBAAsB,kBAAmB,EAAC,WAAW,KAAK,YAAY,kBAAmB,CAAA;AAAA,IAClQ,GAHc;AAAA,IAIf,aAAa,gCAASC,aAAY,eAAe;AAC/C,aAAO,CAAC,CAAC,iBAAiB,CAAC,KAAK,eAAe,cAAc,IAAI,KAAK,CAAC,KAAK,gBAAgB,cAAc,IAAI,KAAK,KAAK,cAAc,cAAc,IAAI;AAAA,IACzJ,GAFY;AAAA,IAGb,qBAAqB,gCAASC,qBAAoB,eAAe;AAC/D,aAAO,KAAK,YAAY,aAAa,KAAK,KAAK,WAAW,aAAa;AAAA,IACxE,GAFoB;AAAA,IAGrB,YAAY,gCAAS9B,YAAW,eAAe;AAC7C,aAAO,KAAK,eAAe,KAAK,SAAU,GAAG;AAC3C,eAAO,EAAE,QAAQ,cAAc;AAAA,MACvC,CAAO;AAAA,IACF,GAJW;AAAA,IAKZ,oBAAoB,gCAAS+B,sBAAqB;AAChD,UAAI,SAAS;AACb,aAAO,KAAK,aAAa,UAAU,SAAU,eAAe;AAC1D,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO;AAAA,IACF,GALmB;AAAA,IAMpB,mBAAmB,gCAASC,qBAAoB;AAC9C,UAAI,SAAS;AACb,aAAO,cAAc,KAAK,cAAc,SAAU,eAAe;AAC/D,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO;AAAA,IACF,GALkB;AAAA,IAMnB,mBAAmB,gCAASC,mBAAkB,OAAO;AACnD,UAAI,SAAS;AACb,UAAI,mBAAmB,QAAQ,KAAK,aAAa,SAAS,IAAI,KAAK,aAAa,MAAM,QAAQ,CAAC,EAAE,UAAU,SAAU,eAAe;AAClI,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO,IAAI;AACL,aAAO,mBAAmB,KAAK,mBAAmB,QAAQ,IAAI;AAAA,IAC/D,GANkB;AAAA,IAOnB,mBAAmB,gCAASC,mBAAkB,OAAO;AACnD,UAAI,SAAS;AACb,UAAI,mBAAmB,QAAQ,IAAI,cAAc,KAAK,aAAa,MAAM,GAAG,KAAK,GAAG,SAAU,eAAe;AAC3G,eAAO,OAAO,YAAY,aAAa;AAAA,MAC/C,CAAO,IAAI;AACL,aAAO,mBAAmB,KAAK,mBAAmB;AAAA,IACnD,GANkB;AAAA,IAOnB,uBAAuB,gCAASC,yBAAwB;AACtD,UAAI,SAAS;AACb,aAAO,KAAK,aAAa,UAAU,SAAU,eAAe;AAC1D,eAAO,OAAO,oBAAoB,aAAa;AAAA,MACvD,CAAO;AAAA,IACF,GALsB;AAAA,IAMvB,2BAA2B,gCAASC,6BAA4B;AAC9D,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,IAAI,KAAK,mBAAkB,IAAK;AAAA,IACxD,GAH0B;AAAA,IAI3B,0BAA0B,gCAASC,4BAA2B;AAC5D,UAAI,gBAAgB,KAAK;AACzB,aAAO,gBAAgB,IAAI,KAAK,kBAAiB,IAAK;AAAA,IACvD,GAHyB;AAAA,IAI1B,aAAa,gCAASC,aAAY,OAAO,OAAO;AAC9C,UAAI,UAAU;AACd,WAAK,eAAe,KAAK,eAAe,MAAM;AAC9C,UAAI,YAAY;AAChB,UAAI,UAAU;AACd,UAAI,KAAK,gBAAgB,UAAU,IAAI;AACrC,oBAAY,KAAK,aAAa,MAAM,KAAK,gBAAgB,KAAK,EAAE,UAAU,SAAU,eAAe;AACjG,iBAAO,QAAQ,cAAc,aAAa;AAAA,QACpD,CAAS;AACD,oBAAY,cAAc,KAAK,KAAK,aAAa,MAAM,GAAG,KAAK,gBAAgB,KAAK,EAAE,UAAU,SAAU,eAAe;AACvH,iBAAO,QAAQ,cAAc,aAAa;AAAA,QAC3C,CAAA,IAAI,YAAY,KAAK,gBAAgB;AAAA,MAC9C,OAAa;AACL,oBAAY,KAAK,aAAa,UAAU,SAAU,eAAe;AAC/D,iBAAO,QAAQ,cAAc,aAAa;AAAA,QACpD,CAAS;AAAA,MACF;AACD,UAAI,cAAc,IAAI;AACpB,kBAAU;AAAA,MACX;AACD,UAAI,cAAc,MAAM,KAAK,gBAAgB,UAAU,IAAI;AACzD,oBAAY,KAAK;MAClB;AACD,UAAI,cAAc,IAAI;AACpB,aAAK,uBAAuB,OAAO,SAAS;AAAA,MAC7C;AACD,UAAI,KAAK,eAAe;AACtB,qBAAa,KAAK,aAAa;AAAA,MAChC;AACD,WAAK,gBAAgB,WAAW,WAAY;AAC1C,gBAAQ,cAAc;AACtB,gBAAQ,gBAAgB;AAAA,MACzB,GAAE,GAAG;AACN,aAAO;AAAA,IACR,GAlCY;AAAA,IAmCb,wBAAwB,gCAASC,wBAAuB,OAAO,OAAO;AACpE,UAAI,KAAK,gBAAgB,UAAU,OAAO;AACxC,aAAK,gBAAgB,QAAQ;AAC7B,aAAK,aAAY;AAAA,MAClB;AAAA,IACF,GALuB;AAAA,IAMxB,cAAc,gCAAStC,gBAAe;AACpC,UAAI,QAAQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAChF,UAAI,KAAK,UAAU,KAAK,GAAG,OAAO,KAAK,IAAI,GAAG,EAAE,OAAO,KAAK,IAAI,KAAK;AACrE,UAAI,UAAU,WAAW,KAAK,SAAS,UAAW,OAAO,IAAI,IAAK,CAAC;AACnE,UAAI,SAAS;AACX,gBAAQ,kBAAkB,QAAQ,eAAe;AAAA,UAC/C,OAAO;AAAA,UACP,QAAQ;AAAA,QAClB,CAAS;AAAA,MACF;AAAA,IACF,GAVa;AAAA,IAWd,sBAAsB,gCAASuC,sBAAqB,OAAO;AACzD,UAAI,UAAU;AACd,UAAI,QAAQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAChF,UAAI,SAAS,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AACjF,UAAI,YAAY,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AACpF,UAAItC,kBAAiB,CAAA;AACrB,eAAS,MAAM,QAAQ,SAAU5F,OAAM,OAAO;AAC5C,YAAI,OAAO,cAAc,KAAK,YAAY,MAAM,MAAM;AACtD,YAAI,UAAU;AAAA,UACZ,MAAMA;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACV;AACQ,gBAAQ,OAAO,IAAI,QAAQ,qBAAqBA,MAAK,OAAO,QAAQ,GAAG,SAAS,GAAG;AACnF,QAAA4F,gBAAe,KAAK,OAAO;AAAA,MACnC,CAAO;AACD,aAAOA;AAAA,IACR,GApBqB;AAAA,IAqBtB,cAAc,gCAASe,cAAa,IAAI;AACtC,WAAK,YAAY;AAAA,IAClB,GAFa;AAAA,IAGd,YAAY,gCAASwB,YAAW,IAAI;AAClC,WAAK,UAAU,KAAK,GAAG,MAAM;AAAA,IAC9B,GAFW;AAAA,EAGb;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAASvC,kBAAiB;AACxC,aAAO,KAAK,qBAAqB,KAAK,SAAS,CAAE,CAAA;AAAA,IAClD,GAFe;AAAA,IAGhB,cAAc,gCAASwC,gBAAe;AACpC,UAAI,UAAU;AACd,UAAI,gBAAgB,KAAK,eAAe,KAAK,SAAU,GAAG;AACxD,eAAO,EAAE,QAAQ,QAAQ,gBAAgB;AAAA,MACjD,CAAO;AACD,aAAO,gBAAgB,cAAc,QAAQ,KAAK;AAAA,IACnD,GANa;AAAA,IAOd,eAAe,gCAASC,iBAAgB;AACtC,aAAO,KAAK,gBAAgB,UAAU,KAAK,GAAG,OAAO,KAAK,EAAE,EAAE,OAAO,WAAW,KAAK,gBAAgB,SAAS,IAAI,MAAM,KAAK,gBAAgB,YAAY,IAAI,GAAG,EAAE,OAAO,KAAK,gBAAgB,KAAK,IAAI;AAAA,IACxM,GAFc;AAAA,EAGhB;AAAA,EACD,YAAY;AAAA,IACV,eAAe1I;AAAAA,IACf,QAAQ6B;AAAAA,EACT;AACH;AAEA,IAAIb,eAAa,CAAC,IAAI;AACtB,SAASZ,SAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,2BAA2B,iBAAiB,eAAe;AAC/D,MAAI,oBAAoB,iBAAiB,QAAQ;AACjD,SAAO,UAAS,GAAI,YAAY,mBAAmB;AAAA,IACjD,UAAU,KAAK;AAAA,IACf,UAAU,CAAC,KAAK;AAAA,EACpB,GAAK;AAAA,IACD,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,YAAY,YAAY,WAAW;AAAA,QACzC,MAAM;AAAA,QACN,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,QACvB,SAAS,SAAS;AAAA,QAClB,cAAc,SAAS;AAAA,MACxB,GAAE,KAAK,IAAI,YAAY,CAAC,GAAG;AAAA,QAC1B,WAAW,QAAQ,WAAY;AAC7B,iBAAO,CAAC,MAAM,WAAW,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,YACzE,KAAK;AAAA,YACL,KAAK,SAAS;AAAA,YACd,IAAI,MAAM;AAAA,YACV,SAAS,KAAK,GAAG,MAAM;AAAA,YACvB,SAAS,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,WAAY;AAC7C,qBAAO,SAAS,kBAAkB,SAAS,eAAe,MAAM,UAAU,SAAS;AAAA,YACjG;AAAA,UACW,GAAE,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,SAAS,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,YAC7F,KAAK;AAAA,YACL,SAAS,KAAK,GAAG,OAAO;AAAA,UACpC,GAAa,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,OAAO,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,GAAG,YAAY,0BAA0B;AAAA,YACpI,KAAK,SAAS;AAAA,YACd,IAAI,MAAM,KAAK;AAAA,YACf,UAAU,CAAC,KAAK,WAAW,KAAK,WAAW;AAAA,YAC3C,MAAM;AAAA,YACN,cAAc,KAAK;AAAA,YACnB,mBAAmB,KAAK;AAAA,YACxB,iBAAiB,KAAK,YAAY;AAAA,YAClC,oBAAoB;AAAA,YACpB,yBAAyB,MAAM,UAAU,SAAS,gBAAgB;AAAA,YAClE,QAAQ,MAAM;AAAA,YACd,eAAe,MAAM,UAAU,SAAS,gBAAgB;AAAA,YACxD,OAAO,SAAS;AAAA,YAChB,WAAW,KAAK;AAAA,YAChB,gBAAgB,MAAM;AAAA,YACtB,OAAO;AAAA,YACP,SAAS,MAAM;AAAA,YACf,IAAI,KAAK;AAAA,YACT,UAAU,KAAK;AAAA,YACf,SAAS,SAAS;AAAA,YAClB,QAAQ,SAAS;AAAA,YACjB,WAAW,SAAS;AAAA,YACpB,aAAa,SAAS;AAAA,YACtB,kBAAkB,SAAS;AAAA,YAC3B,iBAAiB,SAAS;AAAA,UACtC,GAAa,MAAM,GAAG,CAAC,MAAM,YAAY,cAAc,mBAAmB,iBAAiB,yBAAyB,UAAU,iBAAiB,SAAS,aAAa,kBAAkB,WAAW,MAAM,YAAY,WAAW,UAAU,aAAa,eAAe,oBAAoB,iBAAiB,CAAC,GAAG,KAAK,OAAO,OAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,YACvW,KAAK;AAAA,YACL,SAAS,KAAK,GAAG,KAAK;AAAA,UAClC,GAAa,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,KAAK,CAAC,GAAG,EAAE,KAAK,mBAAmB,IAAI,IAAI,CAAC,GAAG,IAAIY,YAAU,KAAK,mBAAmB,IAAI,IAAI,CAAC;AAAA,QACtJ,CAAS;AAAA,QACD,GAAG;AAAA,MACX,GAAS,IAAI,CAAC,WAAW,gBAAgB,WAAW,cAAc,CAAC,CAAC;AAAA,IACpE,CAAK;AAAA,IACD,GAAG;AAAA,EACJ,GAAE,GAAG,CAAC,YAAY,UAAU,CAAC;AAChC;AA9DSZ;AAgETD,SAAO,SAASC;AChgChB,IAAIN,SAAQ,gCAASA,QAAM,MAAM;AAC/B,MAAI,KAAK,KAAK;AACd,SAAO,8FAA8F,OAAO,GAAG,2BAA2B,GAAG,ioBAAioB,EAAE,OAAO,GAAG,mCAAmC,GAAG,qCAAqC,EAAE,OAAO,GAAG,mCAAmC,GAAG,sFAAsF,EAAE,OAAO,GAAG,mCAAmC,GAAG,oCAAoC,EAAE,OAAO,GAAG,mCAAmC,GAAG,mDAAmD,EAAE,OAAO,GAAG,2BAA2B,GAAG,QAAQ;AAC5tC,GAHY;AAIZ,IAAI,UAAU;AAAA,EACZ,MAAM,gCAASS,OAAK,OAAO;AACzB,QAAI,WAAW,MAAM,UACnB,QAAQ,MAAM;AAChB,WAAO,CAAC,6BAA6B;AAAA,MACnC,wBAAwB,MAAM;AAAA,MAC9B,yBAAyB,MAAM;AAAA,MAC/B,uBAAuB,SAAS;AAAA,IACtC,CAAK;AAAA,EACF,GARK;AAAA,EASN,UAAU;AAAA,EACV,YAAY;AACd;AACA,IAAI,mBAAmB,UAAU,OAAO;AAAA,EACtC,MAAM;AAAA,EACN,OAAOT;AAAA,EACP;AACF,CAAC;ACdD,IAAI,WAAW;AAAA,EACb,MAAM;AAAA,EACN,WAAWU;AAAAA,EACX,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACV,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,SAAS;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,OAAO;AAAA,EACP,SAAS,gCAASN,YAAU;AAC1B,WAAO;AAAA,MACL,gBAAgB;AAAA,MAChB,iBAAiB;AAAA,IACvB;AAAA,EACG,GALQ;AAMX;AAEA,IAAI,SAAS;AAAA,EACX,MAAM;AAAA,EACN,WAAW;AAAA,EACX,cAAc;AAAA,EACd,OAAO,CAAC,OAAO;AAAA,EACf,QAAQ;AAAA,IACN,UAAU;AAAA,MACR,WAAW;AAAA,IACZ;AAAA,EACF;AAAA,EACD,MAAM,gCAASiB,QAAO;AACpB,WAAO;AAAA,MACL,IAAI,KAAK,OAAO;AAAA,MAChB,YAAY;AAAA,IAClB;AAAA,EACG,GALK;AAAA,EAMN,OAAO;AAAA,IACL,aAAa,gCAASgD,UAAS,UAAU;AACvC,WAAK,KAAK,YAAY;IACvB,GAFY;AAAA,EAGd;AAAA,EACD,SAAS,gCAAS5C,WAAU;AAC1B,QAAI,QAAQ;AACZ,SAAK,KAAK,KAAK,MAAM,kBAAiB;AACtC,SAAK,OAAO,sBAAsB,SAAU,UAAU;AACpD,YAAM,aAAa;AAAA,IACzB,CAAK;AAAA,EACF,GANQ;AAAA,EAOT,SAAS;AAAA,IACP,uBAAuB,gCAAS,sBAAsB,OAAO;AAC3D,UAAI,OAAO;AACT,cAAM,eAAc;AAAA,MACrB;AACD,WAAK,MAAM,KAAK,OAAO;AAAA,QACrB,eAAe,KAAK;AAAA,QACpB,eAAe,KAAK,MAAM,OAAO;AAAA,MACzC,CAAO;AACD,WAAK,aAAa,KAAK,MAAM,KAAK;AAAA,IACnC,GATsB;AAAA,IAUvB,mBAAmB,gCAAS,kBAAkB,OAAO;AACnD,UAAI,MAAM,SAAS,eAAe,MAAM,SAAS,WAAW;AAC1D,aAAK,sBAAqB;AAC1B,cAAM,eAAc;AAAA,MACrB;AAAA,IACF,GALkB;AAAA,IAMnB,sBAAsB,gCAAS,qBAAqB,OAAO;AACzD,UAAI,KAAK,YAAY;AACnB,aAAK,MAAM,KAAK,KAAK,KAAK;AAAA,MAC3B;AACD,WAAK,MAAM,SAAS,KAAK;AAAA,IAC1B,GALqB;AAAA,EAMvB;AAAA,EACD,UAAU;AAAA,IACR,gBAAgB,gCAAS,iBAAiB;AACxC,aAAO,CAAC,KAAK,GAAG,MAAM,GAAG,KAAK,OAAO,CAAC;AAAA,IACvC,GAFe;AAAA,IAGhB,UAAU,gCAASoH,YAAW;AAC5B,aAAO,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,WAAW,KAAK;AAAA,IACrD,GAFS;AAAA,EAGX;AAAA,EACD,YAAY;AAAA,IACV,WAAWrC;AAAAA,IACX,SAASsC;AAAAA,IACT,iBAAiB9G;AAAAA,EAClB;AACH;AAEA,IAAId,eAAa,CAAC,iBAAiB;AACnC,SAAS,OAAO,MAAM,QAAQ,QAAQ,QAAQ,OAAO,UAAU;AAC7D,MAAI,uBAAuB,iBAAiB,WAAW;AACvD,MAAI,qBAAqB,iBAAiB,SAAS;AACnD,SAAO,UAAW,GAAE,mBAAmB,OAAO,WAAW;AAAA,IACvD,SAAS,SAAS;AAAA,IAClB,OAAO,KAAK;AAAA,EAChB,GAAK,KAAK,KAAK,MAAM,GAAG;AAAA,IACpB,mBAAmB,KAAK;AAAA,EACzB,CAAA,GAAG,CAAC,YAAY,sBAAsB,WAAW;AAAA,IAChD,MAAM;AAAA,IACN,SAAS,KAAK,GAAG,UAAU;AAAA,IAC3B,OAAO,KAAK;AAAA,IACZ,UAAU,KAAK;AAAA,IACf,UAAU,KAAK;AAAA,IACf,MAAM,KAAK;AAAA,IACX,MAAM,KAAK;AAAA,IACX,UAAU,KAAK;AAAA,IACf,MAAM,KAAK;AAAA,IACX,OAAO,KAAK;AAAA,IACZ,cAAc,KAAK;AAAA,IACnB,SAAS,SAAS;AAAA,EACtB,GAAK,KAAK,aAAa;AAAA,IACnB,IAAI,KAAK,IAAI,UAAU;AAAA,IACvB,UAAU,KAAK;AAAA,EAChB,CAAA,GAAG,YAAY;AAAA,IACd,WAAW,QAAQ,WAAY;AAC7B,aAAO,CAAC,WAAW,KAAK,QAAQ,SAAS,CAAC;AAAA,IAChD,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,CAAC,KAAK,OAAO,OAAO;AAAA,IACrB,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,QAAQ;AAAA,QACtC,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAClD,GAAS,WAAY;AACb,eAAO,CAACE,gBAAmB,QAAQ,WAAW;AAAA,UAC5C,SAAS,CAAC,KAAK,MAAM,UAAU,OAAO,CAAC;AAAA,QACxC,GAAE,KAAK,IAAI,UAAU,EAAE,MAAM,GAAG;AAAA,UAC/B,mBAAmB;AAAA,QAC7B,CAAS,GAAG,MAAM,EAAE,CAAC;AAAA,MACd,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACT,IAAM,MAAS,CAAC,GAAG,MAAM,CAAC,SAAS,SAAS,YAAY,YAAY,QAAQ,QAAQ,YAAY,QAAQ,SAAS,cAAc,WAAW,MAAM,UAAU,CAAC,GAAG,YAAY,sBAAsB,WAAW;AAAA,IACvM,KAAK;AAAA,IACL,MAAM;AAAA,IACN,SAAS,KAAK,GAAG,YAAY;AAAA,IAC7B,UAAU,KAAK;AAAA,IACf,iBAAiB;AAAA,IACjB,iBAAiB,MAAM;AAAA,IACvB,iBAAiB,MAAM,KAAK;AAAA,IAC5B,SAAS,SAAS;AAAA,IAClB,WAAW,SAAS;AAAA,IACpB,UAAU,KAAK;AAAA,IACf,MAAM,KAAK;AAAA,IACX,UAAU,KAAK;AAAA,IACf,MAAM,KAAK;AAAA,IACX,UAAU,KAAK;AAAA,EACnB,GAAK,KAAK,iBAAiB;AAAA,IACvB,IAAI,KAAK,IAAI,YAAY;AAAA,EAC7B,CAAG,GAAG;AAAA,IACF,MAAM,QAAQ,SAAU,WAAW;AACjC,aAAO,CAAC,WAAW,KAAK,QAAQ,KAAK,OAAO,eAAe,iBAAiB,kBAAkB;AAAA,QAC5F,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAClD,GAAS,WAAY;AACb,eAAO,EAAE,UAAS,GAAI,YAAY,wBAAwB,KAAK,kBAAkB,KAAK,eAAe,SAAS,iBAAiB,GAAG,WAAW;AAAA,UAC3I,SAAS,CAAC,KAAK,gBAAgB,KAAK,gBAAgB,UAAU,OAAO,CAAC;AAAA,QACvE,GAAE,KAAK,IAAI,YAAY,EAAE,MAAM,GAAG;AAAA,UACjC,mBAAmB;AAAA,QACpB,CAAA,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAC;AAAA,MACzB,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,GAAG;AAAA,EACP,GAAK,IAAI,CAAC,SAAS,YAAY,iBAAiB,iBAAiB,WAAW,aAAa,YAAY,QAAQ,YAAY,QAAQ,YAAY,IAAI,CAAC,GAAG,YAAY,oBAAoB;AAAA,IACjL,KAAK;AAAA,IACL,IAAI,MAAM,KAAK;AAAA,IACf,OAAO,KAAK;AAAA,IACZ,OAAO;AAAA,IACP,YAAY,KAAK;AAAA,IACjB,YAAY,KAAK;AAAA,IACjB,UAAU,KAAK;AAAA,IACf,UAAU,KAAK;AAAA,IACf,IAAI,KAAK,IAAI,QAAQ;AAAA,EACtB,GAAE,YAAY;AAAA,IACb,GAAG;AAAA,EACP,GAAK,CAAC,KAAK,OAAO,eAAe;AAAA,IAC7B,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,gBAAgB;AAAA,QAC9C,MAAM,UAAU;AAAA,QAChB,SAAS,eAAe,UAAU,OAAO,CAAC;AAAA,MAC3C,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACN,IAAG,QAAW,KAAK,OAAO,OAAO;AAAA,IAChC,MAAM;AAAA,IACN,IAAI,QAAQ,SAAU,WAAW;AAC/B,aAAO,CAAC,WAAW,KAAK,QAAQ,QAAQ;AAAA,QACtC,MAAM,UAAU;AAAA,QAChB,YAAY,UAAU;AAAA,QACtB,OAAO,UAAU;AAAA,QACjB,OAAO,UAAU;AAAA,MAClB,CAAA,CAAC;AAAA,IACR,CAAK;AAAA,IACD,KAAK;AAAA,EACT,IAAM,MAAS,CAAC,GAAG,MAAM,CAAC,MAAM,SAAS,cAAc,cAAc,YAAY,YAAY,IAAI,CAAC,CAAC,GAAG,IAAIF,YAAU;AACpH;AA1GS;AA4GT,OAAO,SAAS;AC3OhB,MAAM,gBAAgB;;;;;;;AANtB,UAAM,QAAQ;AAId,UAAM,qBAAqB;AAC3B,UAAM,EAAE,WAAA,IAAe,YAAY,kBAAkB;AAGrD,UAAM,eAAe;AACrB,UAAM,gBAAgB;AAAA,MAAS,MAC7B,aAAa,IAAI,mCAAmC;AAAA,IAAA;AAGhD,UAAA,cAAc,wBAAC,cAAuB;AACtC,UAAA;AACJ,UAAI,WAAW;AACP,cAAA,gBAAgB,WAAW,QAAQ;AACzC,mBAAW,gBAAgB;AAAA,MAAA,OACtB;AACC,cAAA,gBAAgB,WAAW,QAAQ;AAC9B,mBAAA,KAAK,MAAM,gBAAgB,CAAC;AAAA,MACzC;AAEA,iBAAW,QAAQ;AAAA,IAAA,GAVD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACcpB,UAAM,iBAAiB;AACjB,UAAA,kBAAkB,YAAY,8BAAA,CAA+B;AACnE,UAAM,EAAE,MAAM,UAAA,IAAc,YAAY,sBAAuB,CAAA;AAEzD,UAAA,EAAE,MAAM;AACd,UAAM,0BAA2D;AAAA,MAC/D,UAAU;AAAA,QACR,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS,EAAE,sBAAsB;AAAA,QACjC,SAAS,6BAAM;AACb,oBAAU,QAAQ;AAAA,QACpB,GAFS;AAAA,MAGX;AAAA,MACA,SAAS;AAAA,QACP,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS,EAAE,qBAAqB;AAAA,QAChC,SAAS,6BAAM;AACb,oBAAU,QAAQ;AAAA,QACpB,GAFS;AAAA,MAGX;AAAA,MACA,QAAQ;AAAA,QACN,KAAK;AAAA,QACL,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAS,EAAE,oBAAoB;AAAA,QAC/B,SAAS,6BAAM;AACb,oBAAU,QAAQ;AAAA,QACpB,GAFS;AAAA,MAGX;AAAA,IAAA;AAGF,UAAM,0BAA0B;AAAA,MAC9B,MAAM,wBAAwB,UAAU,KAAK;AAAA,IAAA;AAE/C,UAAM,qBAAqB;AAAA,MAAS,MAClC,OAAO,OAAO,uBAAuB;AAAA,IAAA;AAGvC,UAAM,kBAAkB,SAAS,MAAM,CAAC,CAAC,gBAAgB,MAAM,KAAK;AACpE,UAAM,kBAAkB,SAAS,MAAM,gBAAgB,MAAM,QAAQ,CAAC;AAEtE,UAAM,eAAe;AACf,UAAA,cAAc,wBAAC,MAAkB;AAC/B,YAAA,YAAY,EAAE,WAAW,2BAA2B;AAC1D,mBAAa,QAAQ,SAAS;AAAA,IAAA,GAFZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC+DpB,MAAM,mBAAmB;;;;AAvIzB,UAAM,gBAAgB;AACtB,UAAM,eAAe;AAErB,UAAM,UAAU;AAAA,MACd,MAAM,cAAc,IAAI,kBAAkB,MAAM;AAAA,IAAA;AAG5C,UAAA,WAAW,IAAwB,IAAI;AACvC,UAAA,gBAAgB,IAAwB,IAAI;AAC5C,UAAA,WAAW,gBAAgB,6BAA6B,KAAK;AAC7D,UAAA,iBAAiB,gBAAgB,+BAA+B;AAAA,MACpE,GAAG;AAAA,MACH,GAAG;AAAA,IAAA,CACJ;AACK,UAAA;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,aAAa,UAAU;AAAA,MACzB,cAAc,EAAE,GAAG,GAAG,GAAG,EAAE;AAAA,MAC3B,QAAQ;AAAA,MACR,kBAAkB,SAAS;AAAA,IAAA,CAC5B;AAGD;AAAA,MACE,CAAC,GAAG,CAAC;AAAA,MACL,CAAC,CAAC,MAAM,IAAI,MAAM;AAChB,uBAAe,QAAQ,EAAE,GAAG,MAAM,GAAG;MACvC;AAAA,MACA,EAAE,UAAU,IAAI;AAAA,IAAA;AAIlB,UAAM,qBAAqB,6BAAM;AAC/B,UAAI,EAAE,UAAU,KAAK,EAAE,UAAU,GAAG;AAClC;AAAA,MACF;AACA,UAAI,eAAe,MAAM,MAAM,KAAK,eAAe,MAAM,MAAM,GAAG;AAC9D,UAAA,QAAQ,eAAe,MAAM;AAC7B,UAAA,QAAQ,eAAe,MAAM;AACV;AACrB;AAAA,MACF;AACA,UAAI,SAAS,OAAO;AAClB,cAAM,cAAc,OAAO;AAC3B,cAAM,eAAe,OAAO;AACtB,cAAA,YAAY,SAAS,MAAM;AAC3B,cAAA,aAAa,SAAS,MAAM;AAE9B,YAAA,cAAc,KAAK,eAAe,GAAG;AACvC;AAAA,QACF;AAEE,UAAA,SAAS,cAAc,aAAa;AACpC,UAAA,QAAQ,eAAe,aAAa;AACjB;MACvB;AAAA,IAAA,GAvByB;AAyB3B,cAAU,kBAAkB;AACtB,UAAA,SAAS,CAAC,eAAe;AAC7B,UAAI,YAAY;AACd,iBAAS,kBAAkB;AAAA,MAC7B;AAAA,IAAA,CACD;AAED,UAAM,gBAAgB,IAAI;AAAA,MACxB,GAAG,EAAE;AAAA,MACL,GAAG,EAAE;AAAA,MACL,aAAa,OAAO;AAAA,MACpB,cAAc,OAAO;AAAA,IAAA,CACtB;AACD,UAAM,uBAAuB,6BAAM;AACjC,oBAAc,QAAQ;AAAA,QACpB,GAAG,EAAE;AAAA,QACL,GAAG,EAAE;AAAA,QACL,aAAa,OAAO;AAAA,QACpB,cAAc,OAAO;AAAA,MAAA;AAAA,IACvB,GAN2B;AAQ7B;AAAA,MACE;AAAA,MACA,CAAC,kBAAkB;AACjB,YAAI,CAAC,eAAe;AAEG;QACvB;AAAA,MACF;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGpB,UAAM,qBAAqB,6BAAM;AAC/B,UAAI,SAAS,OAAO;AAClB,cAAM,cAAc,OAAO;AAC3B,cAAM,eAAe,OAAO;AACtB,cAAA,YAAY,SAAS,MAAM;AAC3B,cAAA,aAAa,SAAS,MAAM;AAGlC,cAAM,gBACJ,cAAc,MAAM,eAAe,cAAc,MAAM,IAAI;AAC7D,cAAM,iBACJ,cAAc,MAAM,gBAAgB,cAAc,MAAM,IAAI;AAGxD,cAAA,cAAc,gBAAgB,cAAc,MAAM;AAClD,cAAA,eAAe,iBAAiB,cAAc,MAAM;AAG1D,YAAI,aAAa;AACf,YAAE,QACA,eAAe,cAAc,MAAM,cAAc,cAAc,MAAM;AAAA,QAAA,OAClE;AACH,YAAA,QAAQ,cAAc,MAAM;AAAA,QAChC;AAEA,YAAI,cAAc;AAChB,YAAE,QACA,gBACC,cAAc,MAAM,eAAe,cAAc,MAAM;AAAA,QAAA,OACrD;AACH,YAAA,QAAQ,cAAc,MAAM;AAAA,QAChC;AAGA,UAAE,QAAQ6H,cAAAA,MAAM,EAAE,OAAO,GAAG,cAAc,SAAS;AACnD,UAAE,QAAQA,cAAAA,MAAM,EAAE,OAAO,GAAG,eAAe,UAAU;AAAA,MACvD;AAAA,IAAA,GApCyB;AAuCV,qBAAA,QAAQ,UAAU,kBAAkB;AAE/C,UAAA,aAAa,OAAmC,YAAY;AAC5D,UAAA,gBAAgB,mBAAmB,UAAU;AAE7C,UAAA,2BAA2B,SAAS,MAAM;AAC1C,UAAA,CAAC,SAAS,OAAO;AACZ,eAAA;AAAA,MACT;AACA,YAAM,EAAE,OAAW,IAAA,SAAS,MAAM,sBAAsB;AAClD,YAAA,kBAAkB,EAAE,QAAQ;AAC5B,YAAA,gBAAgB,cAAc,OAAO;AAE3C,YAAM,gBACJ,KAAK,IAAI,iBAAiB,aAAa,IACvC,KAAK,IAAI,EAAE,OAAO,cAAc,IAAI,KAAK;AAC3C,aAAO,gBAAgB;AAAA,IAAA,CACxB;AAEK,UAAA,YAAY,CAAC,kBAAkB;AACnC,UAAI,CAAC,eAAe;AAElB,iBAAS,QAAQ,yBAAyB;AAAA,MAAA,OACrC;AAEL,iBAAS,QAAQ;AAAA,MACnB;AAAA,IAAA,CACD;AAEK,UAAA,WAAW,YAAoB,SAAS;AACxC,UAAA,CAAC,YAAY,wBAAwB,GAAG,CAAC,CAAC,UAAU,WAAW,MAAM;AACzE,eAAS,KAAK,mBAAmB;AAAA,QAC/B,YAAY;AAAA,QACZ,eAAe;AAAA,MAAA,CAChB;AAAA,IAAA,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnLD,UAAM,eAAe;AACrB,UAAM,uBAAuB;AAAA,MAAS,MACpC,aAAa,IAAI,qCAAqC;AAAA,IAAA;AAExD,UAAM,kBAAkB;AAAA,MACtB,MAAM,aAAa,IAAI,kBAAkB,MAAM;AAAA,IAAA;AAEjD,UAAM,iBAAiB;AAAA,MAAS,MAC9B,aAAa,IAAI,kBAAkB,MAAM,QACrC,sBACA;AAAA,IAAA;AAGA,UAAA,YAAY,IAA2B,IAAI;AAEjD,cAAU,MAAM;AACd,UAAI,UAAU,OAAO;AACnB,kBAAU,MAAM,YAAY,IAAI,KAAK,OAAO;AAAA,MAC9C;AAAA,IAAA,CACD;AAEK,UAAA,aAAa,IAA2B,IAAI;AAClD,YAAQ,cAAc,UAAU;AAC1B,UAAA,WAAW,YAAoB,SAAS;AACxC,UAAA,aAAa,IAAI,KAAK;AACtB,UAAA,cAAc,IAAI,KAAK;AACpB,aAAA,GAAG,CAAC,OAAe,YAAiB;AAC3C,UAAI,UAAU,mBAAmB;AAC/B,mBAAW,QAAQ,QAAQ;AACf,oBAAA,QAAQ,QAAQ,iBAAiB,QAAQ;AAAA,MACvD;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtDM,SAAS,wBAAwB;AACtC,QAAM,kBAAkB;AACxB,QAAM,qBAAqB;AAE3B,MAAI,kBAAkB;AACtB,MAAI,gBAAgB;AAChB,MAAA,iBAAiB,gBAAgB,MAAM;AACrC,QAAA,mBAAmB,SAAS,UAAU;AACxC,UAAI,eAAe;AACC,0BAAA;AAAA,MAAA,OACb;AACa,0BAAA;AACd,YAAA,YAAY,GAAG,mBAAmB,UAAU;AAChD;AAAA,MACF;AAAA,IACF;AAAA,EAAA,CACD;AAEe,kBAAA;AAAA,IACd,MAAM;AACJ,sBAAgB,gBAAgB;AAChC,UAAI,CAAC,iBAAiB,CAAC,IAAI,oBAAoB;AAC7C,YACE,mBAAmB,SAAS,aAC3B,mBAAmB,SAAS,YAAY,iBACzC;AACkB,4BAAA;AACd,cAAA,YAAY,GAAG,mBAAmB,UAAU;AAAA,QAClD;AAAA,MACF;AAAA,IACF;AAAA,IACA,EAAE,UAAU,KAAK;AAAA,EAAA;AAErB;AAjCgB;;;;ACgCM;AAEhB,UAAA,EAAE,MAAM;AACd,UAAM,QAAQ;AACd,UAAM,eAAe;AACrB,UAAM,iBAAiB;AAEvB,UAAM/I,UAAQ,SAAiB,MAAM,aAAa,IAAI,oBAAoB,CAAC;AAE3E;AAAA,MACEA;AAAA,MACA,CAAC,aAAa;AACZ,cAAM,mBAAmB;AACzB,cAAM,cAAc,aAAa;AACjC,YAAI,aAAa;AACN,mBAAA,KAAK,UAAU,IAAI,gBAAgB;AAAA,QAAA,OACvC;AACI,mBAAA,KAAK,UAAU,OAAO,gBAAgB;AAAA,QACjD;AAAA,MACF;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGpB,gBAAY,MAAM;AACV,YAAA,WAAW,aAAa,IAAI,+BAA+B;AACjE,eAAS,gBAAgB,MAAM;AAAA,QAC7B;AAAA,QACA,GAAG,QAAQ;AAAA,MAAA;AAAA,IACb,CACD;AAED,gBAAY,MAAM;AACV,YAAA,UAAU,aAAa,IAAI,gCAAgC;AACjE,eAAS,gBAAgB,MAAM;AAAA,QAC7B;AAAA,QACA,GAAG,OAAO;AAAA,MAAA;AAAA,IACZ,CACD;AAED,gBAAY,MAAM;AACV,YAAA,SAAS,aAAa,IAAI,cAAc;AAC9C,UAAI,QAAQ;AACL,aAAA,OAAO,OAAO,QAAQ;AAAA,MAC7B;AAAA,IAAA,CACD;AAED,gBAAY,MAAM;AACV,YAAA,aAAa,aAAa,IAAI,kBAAkB;AACtD,UAAI,eAAe,YAAY;AAC7B,YAAI,GAAG,cAAc,MAAM,eAAe,SAAS;AACnD,YAAI,GAAG;MAAoB,OACtB;AACL,YAAI,GAAG,cAAc,MAAM,YAAY,WAAW,MAAM;AAAA,MAC1D;AAAA,IAAA,CACD;AAED,UAAM,OAAO,6BAAM;AACJ,mBAAA,YAAY,IAAI,GAAG,QAAQ;AACxC,yBAAA,EAAqB;AACrB,yBAAA,EAAqB;AACrB,UAAI,mBAAmB;IAAkB,GAJ9B;AAOb,UAAM,6BAA6B;AAC7B,UAAA,WAAW,wBAAC,MAA0C;AAC1D,iCAA2B,OAAO,CAAC;AAAA,IAAA,GADpB;AAIjB,UAAM,sBAA2C;AAAA,MAC/C,UAAU;AAAA,MACV,SAAS,EAAE,cAAc;AAAA,IAAA;AAG3B,UAAM,iBAAiB,6BAAM;AAC3B,YAAM,OAAO,mBAAmB;AAChC,YAAM,IAAI,mBAAmB;AAAA,IAAA,GAFR;AAKvB,UAAM,gBAAgB,6BAAM;AAC1B,YAAM,OAAO,mBAAmB;AAChC,YAAM,IAAI;AAAA,QACR,UAAU;AAAA,QACV,SAAS,EAAE,aAAa;AAAA,QACxB,MAAM;AAAA,MAAA,CACP;AAAA,IAAA,GANmB;AAStB,UAAM,gBAAgB;AACtB,UAAM,wBAAwB;AAC9B,QAAI,gBAAgB,iBAAiB;AACrC,QAAI,gBAAgB,gBAAgB;AACpC,QAAI,gBAAgB,wBAAwB;AAE5C,cAAU,MAAM;AACV,UAAA,iBAAiB,UAAU,QAAQ;AACnC,UAAA,iBAAiB,gBAAgB,cAAc;AAC/C,UAAA,iBAAiB,eAAe,aAAa;AACjD,qBAAe,oBAAoB;AAE/B,UAAA;AACG;eACE,GAAG;AACF,gBAAA,MAAM,mCAAmC,CAAC;AAAA,MACpD;AAAA,IAAA,CACD;AAED,oBAAgB,MAAM;AAChB,UAAA,oBAAoB,UAAU,QAAQ;AACtC,UAAA,oBAAoB,gBAAgB,cAAc;AAClD,UAAA,oBAAoB,eAAe,aAAa;AACpD,qBAAe,sBAAsB;AAAA,IAAA,CACtC;AAED,UAAM,eAAe,6BAAM;AACzB;AAAA,QACE,MAAM;AAGJ,6BAAA,EAAqB;AAGrB,+BAAA,EAAuB;AAKP,4BAAE,kBAAkB,4BAA4B,EAAE;AAGlE,gCAAA,EAAwB;QAC1B;AAAA,QACA,EAAE,SAAS,IAAK;AAAA,MAAA;AAAA,IAClB,GAnBmB;;;;;;;;;;;;","x_google_ignoreList":[1,2,7,8,9,10,12,13,20,21,24,25,30,31,33,34,35,36,37,38]} \ No newline at end of file diff --git a/web/assets/GraphView-DmeOoKWv.js b/web/assets/GraphView-DswvqURL.js similarity index 72% rename from web/assets/GraphView-DmeOoKWv.js rename to web/assets/GraphView-DswvqURL.js index 8cc8320c..14d9f192 100644 --- a/web/assets/GraphView-DmeOoKWv.js +++ b/web/assets/GraphView-DswvqURL.js @@ -1,356 +1,117 @@ var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { d as defineComponent, u as useSettingStore, r as ref, a as useTitleEditorStore, b as useCanvasStore, w as watch, L as LGraphGroup, c as app, e as LGraphNode, o as onMounted, f as onUnmounted, g as openBlock, h as createElementBlock, i as createVNode, E as EditableText, n as normalizeStyle, j as createCommentVNode, k as LiteGraph, _ as _export_sfc, B as BaseStyle, s as script$c, l as resolveComponent, m as mergeProps, p as renderSlot, q as computed, t as resolveDirective, v as withDirectives, x as createBlock, y as withCtx, z as unref, A as createBaseVNode, C as normalizeClass, D as script$d, F as useCommandStore, G as useDialogStore, S as SettingDialogHeader, H as SettingDialogContent, I as useWorkspaceStore, J as onBeforeUnmount, K as useKeybindingStore, M as Fragment, N as renderList, T as Teleport, O as resolveDynamicComponent, P as pushScopeId, Q as popScopeId, R as script$e, U as getWidth, V as getHeight, W as getOuterWidth, X as getOuterHeight, Y as getVNodeProp, Z as isArray, $ as vShow, a0 as isNotEmpty, a1 as UniqueComponentId, a2 as ZIndex, a3 as resolveFieldData, a4 as focus, a5 as OverlayEventBus, a6 as isEmpty, a7 as addStyle, a8 as relativePosition, a9 as absolutePosition, aa as ConnectedOverlayScrollHandler, ab as isTouchDevice, ac as equals, ad as findLastIndex, ae as findSingle, af as script$f, ag as script$g, ah as script$h, ai as script$i, aj as script$j, ak as script$k, al as Ripple, am as toDisplayString, an as Transition, ao as createSlots, ap as createTextVNode, aq as useNodeFrequencyStore, ar as useNodeBookmarkStore, as as highlightQuery, at as script$l, au as formatNumberWithSuffix, av as NodeSourceType, aw as useI18n, ax as useNodeDefStore, ay as NodePreview, az as NodeSearchFilter, aA as script$m, aB as SearchFilterChip, aC as watchEffect, aD as toRaw, aE as LinkReleaseTriggerAction, aF as useEventListener, aG as nextTick, aH as markRaw, aI as useModelToNodeStore, aJ as usePragmaticDroppable, aK as ComfyNodeDefImpl, aL as ComfyModelDef, aM as LGraph, aN as LLink, aO as DragAndScale, aP as LGraphCanvas, aQ as ContextMenu, aR as LGraphBadge, aS as script$o, aT as script$q, aU as script$r, aV as normalizeProps, aW as ToastEventBus, aX as setAttribute, aY as TransitionGroup, aZ as useToast, a_ as useToastStore, a$ as useExecutionStore, b0 as useWorkflowStore, b1 as useTitle, b2 as withModifiers, b3 as script$s, b4 as resolve, b5 as script$t, b6 as script$u, b7 as isPrintableCharacter, b8 as guardReactiveProps, b9 as useMenuItemStore, ba as script$x, bb as nestedPosition, bc as useQueueSettingsStore, bd as storeToRefs, be as isRef, bf as script$y, bg as useQueuePendingTaskCountStore, bh as useLocalStorage, bi as useDraggable, bj as watchDebounced, bk as inject, bl as useElementBounding, bm as script$z, bn as lodashExports, bo as useEventBus, bp as provide, bq as api, br as i18n, bs as useWorkflowBookmarkStore, bt as useSidebarTabStore } from "./index-CgU1oKZt.js"; -import { s as script$n, a as script$p, b as script$v, c as script$w } from "./index-DYEEBf64.js"; -const _sfc_main$m = /* @__PURE__ */ defineComponent({ - __name: "TitleEditor", +import { d as defineComponent, u as useExecutionStore, c as computed, a as useSettingStore, b as useWorkflowStore, e as useTitle, o as openBlock, f as createElementBlock, g as useWorkspaceStore, w as watchEffect, h as app, r as resolveDirective, i as withDirectives, v as vShow, j as unref, k as createBlock, n as normalizeStyle, s as showNativeMenu, l as script$d, _ as _export_sfc, m as onMounted, p as onBeforeUnmount, B as BaseStyle, q as script$e, t as getWidth, x as getHeight, y as getOuterWidth, z as getOuterHeight, A as getVNodeProp, C as isArray, D as mergeProps, F as Fragment, E as renderList, G as resolveDynamicComponent, H as createBaseVNode, I as createCommentVNode, J as renderSlot, K as useSidebarTabStore, L as useBottomPanelStore, M as withCtx, N as createVNode, O as getAttribute, P as findSingle, Q as focus, R as equals, S as Ripple, T as normalizeClass, U as getOffset, V as script$f, W as script$g, X as toDisplayString, Y as script$h, Z as markRaw, $ as defineStore, a0 as shallowRef, a1 as useI18n, a2 as useCommandStore, a3 as LiteGraph, a4 as useColorPaletteStore, a5 as watch, a6 as useNodeDefStore, a7 as BadgePosition, a8 as LGraphBadge, a9 as _, aa as NodeBadgeMode, ab as ref, ac as useEventListener, ad as nextTick, ae as st, af as normalizeI18nKey, ag as LGraphGroup, ah as LGraphNode, ai as EditableText, aj as isNotEmpty, ak as UniqueComponentId, al as ZIndex, am as resolveFieldData, an as OverlayEventBus, ao as isEmpty, ap as addStyle, aq as relativePosition, ar as absolutePosition, as as ConnectedOverlayScrollHandler, at as isTouchDevice, au as findLastIndex, av as script$i, aw as script$j, ax as script$k, ay as script$l, az as script$m, aA as script$n, aB as resolveComponent, aC as Transition, aD as createSlots, aE as createTextVNode, aF as useNodeFrequencyStore, aG as useNodeBookmarkStore, aH as highlightQuery, aI as script$o, aJ as formatNumberWithSuffix, aK as NodeSourceType, aL as pushScopeId, aM as popScopeId, aN as NodePreview, aO as NodeSearchFilter, aP as script$p, aQ as SearchFilterChip, aR as useLitegraphService, aS as storeToRefs, aT as isRef, aU as toRaw, aV as LinkReleaseTriggerAction, aW as script$q, aX as useUserStore, aY as useDialogStore, aZ as SettingDialogHeader, a_ as SettingDialogContent, a$ as useKeybindingStore, b0 as Teleport, b1 as LinkMarkerShape, b2 as useModelToNodeStore, b3 as CanvasPointer, b4 as IS_CONTROL_WIDGET, b5 as updateControlWidgetLabel, b6 as useColorPaletteService, b7 as setStorageValue, b8 as api, b9 as usePragmaticDroppable, ba as LGraph, bb as LLink, bc as DragAndScale, bd as LGraphCanvas, be as ContextMenu, bf as ChangeTracker, bg as useWorkflowService, bh as ComfyNodeDefImpl, bi as ComfyModelDef, bj as script$r, bk as script$s, bl as script$t, bm as script$u, bn as script$v, bo as normalizeProps, bp as ToastEventBus, bq as setAttribute, br as TransitionGroup, bs as useToast, bt as useToastStore, bu as resolve, bv as nestedPosition, bw as script$w, bx as isPrintableCharacter, by as useQueueSettingsStore, bz as script$x, bA as useQueuePendingTaskCountStore, bB as useLocalStorage, bC as useDraggable, bD as watchDebounced, bE as inject, bF as useElementBounding, bG as lodashExports, bH as useEventBus, bI as script$z, bJ as guardReactiveProps, bK as useMenuItemStore, bL as usePragmaticDraggable, bM as withModifiers, bN as script$B, bO as script$C, bP as provide, bQ as script$D, bR as useDialogService, bS as LGraphEventMode, bT as useQueueStore, bU as i18n, bV as useModelStore } from "./index-C4Fk50Nx.js"; +import { s as script$y } from "./index-hdfnBvYs.js"; +import { s as script$A } from "./index-lMQBwSDj.js"; +import { u as useKeybindingService } from "./keybindingService-D48fkLBy.js"; +import { u as useServerConfigStore } from "./serverConfigStore-BawYAb1j.js"; +import "./index-B7ycxfFq.js"; +const DEFAULT_TITLE = "ComfyUI"; +const TITLE_SUFFIX = " - ComfyUI"; +const _sfc_main$t = /* @__PURE__ */ defineComponent({ + __name: "BrowserTabTitle", setup(__props) { - const settingStore = useSettingStore(); - const showInput = ref(false); - const editedTitle = ref(""); - const inputStyle = ref({ - position: "fixed", - left: "0px", - top: "0px", - width: "200px", - height: "20px", - fontSize: "12px" - }); - const titleEditorStore = useTitleEditorStore(); - const canvasStore = useCanvasStore(); - const previousCanvasDraggable = ref(true); - const onEdit = /* @__PURE__ */ __name((newValue) => { - if (titleEditorStore.titleEditorTarget && newValue.trim() !== "") { - titleEditorStore.titleEditorTarget.title = newValue.trim(); - app.graph.setDirtyCanvas(true, true); - } - showInput.value = false; - titleEditorStore.titleEditorTarget = null; - canvasStore.canvas.allow_dragcanvas = previousCanvasDraggable.value; - }, "onEdit"); - watch( - () => titleEditorStore.titleEditorTarget, - (target) => { - if (target === null) { - return; - } - editedTitle.value = target.title; - showInput.value = true; - previousCanvasDraggable.value = canvasStore.canvas.allow_dragcanvas; - canvasStore.canvas.allow_dragcanvas = false; - if (target instanceof LGraphGroup) { - const group = target; - const [x, y] = group.pos; - const [w, h] = group.size; - const [left, top] = app.canvasPosToClientPos([x, y]); - inputStyle.value.left = `${left}px`; - inputStyle.value.top = `${top}px`; - const width = w * app.canvas.ds.scale; - const height = group.titleHeight * app.canvas.ds.scale; - inputStyle.value.width = `${width}px`; - inputStyle.value.height = `${height}px`; - const fontSize = group.font_size * app.canvas.ds.scale; - inputStyle.value.fontSize = `${fontSize}px`; - } else if (target instanceof LGraphNode) { - const node = target; - const [x, y] = node.getBounding(); - const canvasWidth = node.width; - const canvasHeight = LiteGraph.NODE_TITLE_HEIGHT; - const [left, top] = app.canvasPosToClientPos([x, y]); - inputStyle.value.left = `${left}px`; - inputStyle.value.top = `${top}px`; - const width = canvasWidth * app.canvas.ds.scale; - const height = canvasHeight * app.canvas.ds.scale; - inputStyle.value.width = `${width}px`; - inputStyle.value.height = `${height}px`; - const fontSize = 12 * app.canvas.ds.scale; - inputStyle.value.fontSize = `${fontSize}px`; - } - } + const executionStore = useExecutionStore(); + const executionText = computed( + () => executionStore.isIdle ? "" : `[${executionStore.executionProgress}%]` ); - const canvasEventHandler = /* @__PURE__ */ __name((event) => { - if (!settingStore.get("Comfy.Group.DoubleClickTitleToEdit")) { + const settingStore = useSettingStore(); + const betaMenuEnabled = computed( + () => settingStore.get("Comfy.UseNewMenu") !== "Disabled" + ); + const workflowStore = useWorkflowStore(); + const isUnsavedText = computed( + () => workflowStore.activeWorkflow?.isModified || !workflowStore.activeWorkflow?.isPersisted ? " *" : "" + ); + const workflowNameText = computed(() => { + const workflowName = workflowStore.activeWorkflow?.filename; + return workflowName ? isUnsavedText.value + workflowName + TITLE_SUFFIX : DEFAULT_TITLE; + }); + const nodeExecutionTitle = computed( + () => executionStore.executingNode && executionStore.executingNodeProgress ? `${executionText.value}[${executionStore.executingNodeProgress}%] ${executionStore.executingNode.type}` : "" + ); + const workflowTitle = computed( + () => executionText.value + (betaMenuEnabled.value ? workflowNameText.value : DEFAULT_TITLE) + ); + const title = computed(() => nodeExecutionTitle.value || workflowTitle.value); + useTitle(title); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div"); + }; + } +}); +const _sfc_main$s = /* @__PURE__ */ defineComponent({ + __name: "MenuHamburger", + setup(__props) { + const workspaceState = useWorkspaceStore(); + const settingStore = useSettingStore(); + const exitFocusMode = /* @__PURE__ */ __name(() => { + workspaceState.focusMode = false; + }, "exitFocusMode"); + watchEffect(() => { + if (settingStore.get("Comfy.UseNewMenu") !== "Disabled") { return; } - if (event.detail.subType === "group-double-click") { - const group = event.detail.group; - const [x, y] = group.pos; - const e = event.detail.originalEvent; - const relativeY = e.canvasY - y; - if (relativeY > group.titleHeight) { - return; - } - titleEditorStore.titleEditorTarget = group; + if (workspaceState.focusMode) { + app.ui.menuContainer.style.display = "none"; + } else { + app.ui.menuContainer.style.display = "block"; } - }, "canvasEventHandler"); - const extension = { - name: "Comfy.NodeTitleEditor", - nodeCreated(node) { - const originalCallback = node.onNodeTitleDblClick; - node.onNodeTitleDblClick = function(e, ...args) { - if (!settingStore.get("Comfy.Node.DoubleClickTitleToEdit")) { - return; - } - titleEditorStore.titleEditorTarget = this; - if (typeof originalCallback === "function") { - originalCallback.call(this, e, ...args); - } - }; - } - }; - onMounted(() => { - document.addEventListener("litegraph:canvas", canvasEventHandler); - app.registerExtension(extension); }); - onUnmounted(() => { - document.removeEventListener("litegraph:canvas", canvasEventHandler); - }); - return (_ctx, _cache) => { - return showInput.value ? (openBlock(), createElementBlock("div", { - key: 0, - class: "group-title-editor node-title-editor", - style: normalizeStyle(inputStyle.value) - }, [ - createVNode(EditableText, { - isEditing: showInput.value, - modelValue: editedTitle.value, - onEdit - }, null, 8, ["isEditing", "modelValue"]) - ], 4)) : createCommentVNode("", true); - }; - } -}); -const TitleEditor = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-fc3f26e3"]]); -var theme$8 = /* @__PURE__ */ __name(function theme(_ref) { - var dt = _ref.dt; - return "\n.p-overlaybadge {\n position: relative;\n}\n\n.p-overlaybadge .p-badge {\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n transform-origin: 100% 0;\n margin: 0;\n outline-width: ".concat(dt("overlaybadge.outline.width"), ";\n outline-style: solid;\n outline-color: ").concat(dt("overlaybadge.outline.color"), ";\n}\n"); -}, "theme"); -var classes$9 = { - root: "p-overlaybadge" -}; -var OverlayBadgeStyle = BaseStyle.extend({ - name: "overlaybadge", - theme: theme$8, - classes: classes$9 -}); -var script$1$9 = { - name: "OverlayBadge", - "extends": script$c, - style: OverlayBadgeStyle, - provide: /* @__PURE__ */ __name(function provide2() { - return { - $pcOverlayBadge: this, - $parentInstance: this - }; - }, "provide") -}; -var script$b = { - name: "OverlayBadge", - "extends": script$1$9, - inheritAttrs: false, - components: { - Badge: script$c - } -}; -function render$d(_ctx, _cache, $props, $setup, $data, $options) { - var _component_Badge = resolveComponent("Badge"); - return openBlock(), createElementBlock("div", mergeProps({ - "class": _ctx.cx("root") - }, _ctx.ptmi("root")), [renderSlot(_ctx.$slots, "default"), createVNode(_component_Badge, mergeProps(_ctx.$props, { - pt: _ctx.ptm("pcBadge") - }), null, 16, ["pt"])], 16); -} -__name(render$d, "render$d"); -script$b.render = render$d; -const _sfc_main$l = /* @__PURE__ */ defineComponent({ - __name: "SidebarIcon", - props: { - icon: String, - selected: Boolean, - tooltip: { - type: String, - default: "" - }, - class: { - type: String, - default: "" - }, - iconBadge: { - type: [String, Function], - default: "" - } - }, - emits: ["click"], - setup(__props, { emit: __emit }) { - const props = __props; - const emit = __emit; - const overlayValue = computed( - () => typeof props.iconBadge === "function" ? props.iconBadge() || "" : props.iconBadge + const menuSetting = computed(() => settingStore.get("Comfy.UseNewMenu")); + const positionCSS = computed( + () => ( + // 'Bottom' menuSetting shows the hamburger button in the bottom right corner + // 'Disabled', 'Top' menuSetting shows the hamburger button in the top right corner + menuSetting.value === "Bottom" ? { bottom: "0px", right: "0px" } : { top: "0px", right: "0px" } + ) ); - const shouldShowBadge = computed(() => !!overlayValue.value); return (_ctx, _cache) => { const _directive_tooltip = resolveDirective("tooltip"); return withDirectives((openBlock(), createBlock(unref(script$d), { - class: normalizeClass(props.class), + class: "comfy-menu-hamburger", + style: normalizeStyle(positionCSS.value), + icon: "pi pi-bars", + severity: "secondary", text: "", - pt: { - root: { - class: `side-bar-button ${props.selected ? "p-button-primary side-bar-button-selected" : "p-button-secondary"}`, - "aria-label": props.tooltip - } - }, - onClick: _cache[0] || (_cache[0] = ($event) => emit("click", $event)) - }, { - icon: withCtx(() => [ - shouldShowBadge.value ? (openBlock(), createBlock(unref(script$b), { - key: 0, - value: overlayValue.value - }, { - default: withCtx(() => [ - createBaseVNode("i", { - class: normalizeClass(props.icon + " side-bar-button-icon") - }, null, 2) - ]), - _: 1 - }, 8, ["value"])) : (openBlock(), createElementBlock("i", { - key: 1, - class: normalizeClass(props.icon + " side-bar-button-icon") - }, null, 2)) - ]), - _: 1 - }, 8, ["class", "pt"])), [ - [_directive_tooltip, { value: props.tooltip, showDelay: 300, hideDelay: 300 }] + size: "large", + onClick: exitFocusMode, + onContextmenu: unref(showNativeMenu) + }, null, 8, ["style", "onContextmenu"])), [ + [vShow, unref(workspaceState).focusMode], + [_directive_tooltip, { value: _ctx.$t("menu.showMenu"), showDelay: 300 }] ]); }; } }); -const SidebarIcon = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-caa3ee9c"]]); -const _sfc_main$k = /* @__PURE__ */ defineComponent({ - __name: "SidebarThemeToggleIcon", +const MenuHamburger = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-5661bed0"]]); +const _sfc_main$r = /* @__PURE__ */ defineComponent({ + __name: "UnloadWindowConfirmDialog", setup(__props) { const settingStore = useSettingStore(); - const currentTheme = computed(() => settingStore.get("Comfy.ColorPalette")); - const icon = computed( - () => currentTheme.value !== "light" ? "pi pi-moon" : "pi pi-sun" - ); - const commandStore = useCommandStore(); - const toggleTheme = /* @__PURE__ */ __name(() => { - commandStore.execute("Comfy.ToggleTheme"); - }, "toggleTheme"); - return (_ctx, _cache) => { - return openBlock(), createBlock(SidebarIcon, { - icon: icon.value, - onClick: toggleTheme, - tooltip: _ctx.$t("sideToolbar.themeToggle"), - class: "comfy-vue-theme-toggle" - }, null, 8, ["icon", "tooltip"]); - }; - } -}); -const _sfc_main$j = /* @__PURE__ */ defineComponent({ - __name: "SidebarSettingsToggleIcon", - setup(__props) { - const dialogStore = useDialogStore(); - const showSetting = /* @__PURE__ */ __name(() => { - dialogStore.showDialog({ - headerComponent: SettingDialogHeader, - component: SettingDialogContent - }); - }, "showSetting"); - return (_ctx, _cache) => { - return openBlock(), createBlock(SidebarIcon, { - icon: "pi pi-cog", - class: "comfy-settings-btn", - onClick: showSetting, - tooltip: _ctx.$t("settings") - }, null, 8, ["tooltip"]); - }; - } -}); -const _withScopeId$6 = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-b6bfc188"), n = n(), popScopeId(), n), "_withScopeId$6"); -const _hoisted_1$g = { class: "side-tool-bar-end" }; -const _hoisted_2$d = { - key: 0, - class: "sidebar-content-container h-full overflow-y-auto overflow-x-hidden" -}; -const _sfc_main$i = /* @__PURE__ */ defineComponent({ - __name: "SideToolbar", - setup(__props) { - const workspaceStore = useWorkspaceStore(); - const settingStore = useSettingStore(); - const teleportTarget = computed( - () => settingStore.get("Comfy.Sidebar.Location") === "left" ? ".comfyui-body-left" : ".comfyui-body-right" - ); - const isSmall = computed( - () => settingStore.get("Comfy.Sidebar.Size") === "small" - ); - const tabs = computed(() => workspaceStore.getSidebarTabs()); - const selectedTab = computed(() => workspaceStore.sidebarTab.activeSidebarTab); - const mountCustomTab = /* @__PURE__ */ __name((tab, el) => { - tab.render(el); - }, "mountCustomTab"); - const onTabClick = /* @__PURE__ */ __name((item3) => { - workspaceStore.sidebarTab.toggleSidebarTab(item3.id); - }, "onTabClick"); - onBeforeUnmount(() => { - tabs.value.forEach((tab) => { - if (tab.type === "custom" && tab.destroy) { - tab.destroy(); - } - }); + const handleBeforeUnload = /* @__PURE__ */ __name((event) => { + if (settingStore.get("Comfy.Window.UnloadConfirmation")) { + event.preventDefault(); + return true; + } + return void 0; + }, "handleBeforeUnload"); + onMounted(() => { + window.addEventListener("beforeunload", handleBeforeUnload); + }); + onBeforeUnmount(() => { + window.removeEventListener("beforeunload", handleBeforeUnload); }); - const keybindingStore = useKeybindingStore(); - const getTabTooltipSuffix = /* @__PURE__ */ __name((tab) => { - const keybinding = keybindingStore.getKeybindingByCommandId( - `Workspace.ToggleSidebarTab.${tab.id}` - ); - return keybinding ? ` (${keybinding.combo.toString()})` : ""; - }, "getTabTooltipSuffix"); return (_ctx, _cache) => { - return openBlock(), createElementBlock(Fragment, null, [ - (openBlock(), createBlock(Teleport, { to: teleportTarget.value }, [ - createBaseVNode("nav", { - class: normalizeClass("side-tool-bar-container" + (isSmall.value ? " small-sidebar" : "")) - }, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(tabs.value, (tab) => { - return openBlock(), createBlock(SidebarIcon, { - key: tab.id, - icon: tab.icon, - iconBadge: tab.iconBadge, - tooltip: tab.tooltip + getTabTooltipSuffix(tab), - selected: tab.id === selectedTab.value?.id, - class: normalizeClass(tab.id + "-tab-button"), - onClick: /* @__PURE__ */ __name(($event) => onTabClick(tab), "onClick") - }, null, 8, ["icon", "iconBadge", "tooltip", "selected", "class", "onClick"]); - }), 128)), - createBaseVNode("div", _hoisted_1$g, [ - createVNode(_sfc_main$k), - createVNode(_sfc_main$j) - ]) - ], 2) - ], 8, ["to"])), - selectedTab.value ? (openBlock(), createElementBlock("div", _hoisted_2$d, [ - selectedTab.value.type === "vue" ? (openBlock(), createBlock(resolveDynamicComponent(selectedTab.value.component), { key: 0 })) : (openBlock(), createElementBlock("div", { - key: 1, - ref: /* @__PURE__ */ __name((el) => { - if (el) - mountCustomTab( - selectedTab.value, - el - ); - }, "ref") - }, null, 512)) - ])) : createCommentVNode("", true) - ], 64); + return openBlock(), createElementBlock("div"); }; } }); -const SideToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-b6bfc188"]]); -var theme$7 = /* @__PURE__ */ __name(function theme2(_ref) { +var theme$7 = /* @__PURE__ */ __name(function theme(_ref) { var dt = _ref.dt; return "\n.p-splitter {\n display: flex;\n flex-wrap: nowrap;\n border: 1px solid ".concat(dt("splitter.border.color"), ";\n background: ").concat(dt("splitter.background"), ";\n border-radius: ").concat(dt("border.radius.md"), ";\n color: ").concat(dt("splitter.color"), ";\n}\n\n.p-splitter-vertical {\n flex-direction: column;\n}\n\n.p-splitter-gutter {\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n background: ").concat(dt("splitter.gutter.background"), ";\n}\n\n.p-splitter-gutter-handle {\n border-radius: ").concat(dt("splitter.handle.border.radius"), ";\n background: ").concat(dt("splitter.handle.background"), ";\n transition: outline-color ").concat(dt("splitter.transition.duration"), ", box-shadow ").concat(dt("splitter.transition.duration"), ";\n outline-color: transparent;\n}\n\n.p-splitter-gutter-handle:focus-visible {\n box-shadow: ").concat(dt("splitter.handle.focus.ring.shadow"), ";\n outline: ").concat(dt("splitter.handle.focus.ring.width"), " ").concat(dt("splitter.handle.focus.ring.style"), " ").concat(dt("splitter.handle.focus.ring.color"), ";\n outline-offset: ").concat(dt("splitter.handle.focus.ring.offset"), ";\n}\n\n.p-splitter-horizontal.p-splitter-resizing {\n cursor: col-resize;\n user-select: none;\n}\n\n.p-splitter-vertical.p-splitter-resizing {\n cursor: row-resize;\n user-select: none;\n}\n\n.p-splitter-horizontal > .p-splitter-gutter > .p-splitter-gutter-handle {\n height: ").concat(dt("splitter.handle.size"), ";\n width: 100%;\n}\n\n.p-splitter-vertical > .p-splitter-gutter > .p-splitter-gutter-handle {\n width: ").concat(dt("splitter.handle.size"), ";\n height: 100%;\n}\n\n.p-splitter-horizontal > .p-splitter-gutter {\n cursor: col-resize;\n}\n\n.p-splitter-vertical > .p-splitter-gutter {\n cursor: row-resize;\n}\n\n.p-splitterpanel {\n flex-grow: 1;\n overflow: hidden;\n}\n\n.p-splitterpanel-nested {\n display: flex;\n}\n\n.p-splitterpanel .p-splitter {\n flex-grow: 1;\n border: 0 none;\n}\n"); }, "theme"); -var classes$8 = { +var classes$a = { root: /* @__PURE__ */ __name(function root(_ref2) { var props = _ref2.props; return ["p-splitter p-component", "p-splitter-" + props.layout]; @@ -372,10 +133,10 @@ var inlineStyles$4 = { var SplitterStyle = BaseStyle.extend({ name: "splitter", theme: theme$7, - classes: classes$8, + classes: classes$a, inlineStyles: inlineStyles$4 }); -var script$1$8 = { +var script$1$a = { name: "BaseSplitter", "extends": script$e, props: { @@ -401,7 +162,7 @@ var script$1$8 = { } }, style: SplitterStyle, - provide: /* @__PURE__ */ __name(function provide3() { + provide: /* @__PURE__ */ __name(function provide2() { return { $pcSplitter: this, $parentInstance: this @@ -438,9 +199,9 @@ function _arrayLikeToArray$2(r, a) { return n; } __name(_arrayLikeToArray$2, "_arrayLikeToArray$2"); -var script$a = { +var script$c = { name: "Splitter", - "extends": script$1$8, + "extends": script$1$a, inheritAttrs: false, emits: ["resizestart", "resizeend", "resize"], dragging: false, @@ -781,9 +542,9 @@ var script$a = { }, "getPTOptions") } }; -var _hoisted_1$f = ["onMousedown", "onTouchstart", "onTouchmove", "onTouchend"]; -var _hoisted_2$c = ["aria-orientation", "aria-valuenow", "onKeydown"]; -function render$c(_ctx, _cache, $props, $setup, $data, $options) { +var _hoisted_1$m = ["onMousedown", "onTouchstart", "onTouchmove", "onTouchend"]; +var _hoisted_2$j = ["aria-orientation", "aria-valuenow", "onKeydown"]; +function render$j(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("div", mergeProps({ "class": _ctx.cx("root"), style: _ctx.sx("root"), @@ -822,16 +583,16 @@ function render$c(_ctx, _cache, $props, $setup, $data, $options) { onKeyup: _cache[0] || (_cache[0] = function() { return $options.onGutterKeyUp && $options.onGutterKeyUp.apply($options, arguments); }), - onKeydown: /* @__PURE__ */ __name(function onKeydown($event) { + onKeydown: /* @__PURE__ */ __name(function onKeydown2($event) { return $options.onGutterKeyDown($event, i); }, "onKeydown"), ref_for: true - }, _ctx.ptm("gutterHandle")), null, 16, _hoisted_2$c)], 16, _hoisted_1$f)) : createCommentVNode("", true)], 64); + }, _ctx.ptm("gutterHandle")), null, 16, _hoisted_2$j)], 16, _hoisted_1$m)) : createCommentVNode("", true)], 64); }), 128))], 16); } -__name(render$c, "render$c"); -script$a.render = render$c; -var classes$7 = { +__name(render$j, "render$j"); +script$c.render = render$j; +var classes$9 = { root: /* @__PURE__ */ __name(function root3(_ref) { var instance = _ref.instance; return ["p-splitterpanel", { @@ -841,9 +602,9 @@ var classes$7 = { }; var SplitterPanelStyle = BaseStyle.extend({ name: "splitterpanel", - classes: classes$7 + classes: classes$9 }); -var script$1$7 = { +var script$1$9 = { name: "BaseSplitterPanel", "extends": script$e, props: { @@ -857,16 +618,16 @@ var script$1$7 = { } }, style: SplitterPanelStyle, - provide: /* @__PURE__ */ __name(function provide4() { + provide: /* @__PURE__ */ __name(function provide3() { return { $pcSplitterPanel: this, $parentInstance: this }; }, "provide") }; -var script$9 = { +var script$b = { name: "SplitterPanel", - "extends": script$1$7, + "extends": script$1$9, inheritAttrs: false, data: /* @__PURE__ */ __name(function data2() { return { @@ -890,15 +651,15 @@ var script$9 = { }, "getPTOptions") } }; -function render$b(_ctx, _cache, $props, $setup, $data, $options) { +function render$i(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("div", mergeProps({ ref: "container", "class": _ctx.cx("root") }, _ctx.ptmi("root", $options.getPTOptions)), [renderSlot(_ctx.$slots, "default")], 16); } -__name(render$b, "render$b"); -script$9.render = render$b; -const _sfc_main$h = /* @__PURE__ */ defineComponent({ +__name(render$i, "render$i"); +script$b.render = render$i; +const _sfc_main$q = /* @__PURE__ */ defineComponent({ __name: "LiteGraphCanvasSplitterOverlay", setup(__props) { const settingStore = useSettingStore(); @@ -906,18 +667,24 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({ () => settingStore.get("Comfy.Sidebar.Location") ); const sidebarPanelVisible = computed( - () => useWorkspaceStore().sidebarTab.activeSidebarTab !== null + () => useSidebarTabStore().activeSidebarTab !== null + ); + const bottomPanelVisible = computed( + () => useBottomPanelStore().bottomPanelVisible + ); + const activeSidebarTabId = computed( + () => useSidebarTabStore().activeSidebarTabId ); - const gutterClass = computed(() => { - return sidebarPanelVisible.value ? "" : "gutter-hidden"; - }); return (_ctx, _cache) => { - return openBlock(), createBlock(unref(script$a), { - class: "splitter-overlay", - "pt:gutter": gutterClass.value + return openBlock(), createBlock(unref(script$c), { + class: "splitter-overlay-root splitter-overlay", + "pt:gutter": sidebarPanelVisible.value ? "" : "hidden", + key: activeSidebarTabId.value, + stateKey: activeSidebarTabId.value, + stateStorage: "local" }, { default: withCtx(() => [ - sidebarLocation.value === "left" ? withDirectives((openBlock(), createBlock(unref(script$9), { + sidebarLocation.value === "left" ? withDirectives((openBlock(), createBlock(unref(script$b), { key: 0, class: "side-bar-panel", minSize: 10, @@ -930,16 +697,37 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({ }, 512)), [ [vShow, sidebarPanelVisible.value] ]) : createCommentVNode("", true), - createVNode(unref(script$9), { - class: "graph-canvas-panel relative", - size: 100 - }, { + createVNode(unref(script$b), { size: 100 }, { default: withCtx(() => [ - renderSlot(_ctx.$slots, "graph-canvas-panel", {}, void 0, true) + createVNode(unref(script$c), { + class: "splitter-overlay max-w-full", + layout: "vertical", + "pt:gutter": bottomPanelVisible.value ? "" : "hidden", + stateKey: "bottom-panel-splitter", + stateStorage: "local" + }, { + default: withCtx(() => [ + createVNode(unref(script$b), { class: "graph-canvas-panel relative" }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "graph-canvas-panel", {}, void 0, true) + ]), + _: 3 + }), + withDirectives(createVNode(unref(script$b), { class: "bottom-panel" }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "bottom-panel", {}, void 0, true) + ]), + _: 3 + }, 512), [ + [vShow, bottomPanelVisible.value] + ]) + ]), + _: 3 + }, 8, ["pt:gutter"]) ]), _: 3 }), - sidebarLocation.value === "right" ? withDirectives((openBlock(), createBlock(unref(script$9), { + sidebarLocation.value === "right" ? withDirectives((openBlock(), createBlock(unref(script$b), { key: 1, class: "side-bar-panel", minSize: 10, @@ -954,12 +742,1019 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({ ]) : createCommentVNode("", true) ]), _: 3 - }, 8, ["pt:gutter"]); + }, 8, ["pt:gutter", "stateKey"]); }; } }); -const LiteGraphCanvasSplitterOverlay = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-b9df3042"]]); -var theme$6 = /* @__PURE__ */ __name(function theme3(_ref) { +const LiteGraphCanvasSplitterOverlay = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-e50caa15"]]); +var classes$8 = { + root: /* @__PURE__ */ __name(function root4(_ref) { + var instance = _ref.instance, props = _ref.props; + return ["p-tab", { + "p-tab-active": instance.active, + "p-disabled": props.disabled + }]; + }, "root") +}; +var TabStyle = BaseStyle.extend({ + name: "tab", + classes: classes$8 +}); +var script$1$8 = { + name: "BaseTab", + "extends": script$e, + props: { + value: { + type: [String, Number], + "default": void 0 + }, + disabled: { + type: Boolean, + "default": false + }, + as: { + type: [String, Object], + "default": "BUTTON" + }, + asChild: { + type: Boolean, + "default": false + } + }, + style: TabStyle, + provide: /* @__PURE__ */ __name(function provide4() { + return { + $pcTab: this, + $parentInstance: this + }; + }, "provide") +}; +var script$a = { + name: "Tab", + "extends": script$1$8, + inheritAttrs: false, + inject: ["$pcTabs", "$pcTabList"], + methods: { + onFocus: /* @__PURE__ */ __name(function onFocus() { + this.$pcTabs.selectOnFocus && this.changeActiveValue(); + }, "onFocus"), + onClick: /* @__PURE__ */ __name(function onClick() { + this.changeActiveValue(); + }, "onClick"), + onKeydown: /* @__PURE__ */ __name(function onKeydown(event) { + switch (event.code) { + case "ArrowRight": + this.onArrowRightKey(event); + break; + case "ArrowLeft": + this.onArrowLeftKey(event); + break; + case "Home": + this.onHomeKey(event); + break; + case "End": + this.onEndKey(event); + break; + case "PageDown": + this.onPageDownKey(event); + break; + case "PageUp": + this.onPageUpKey(event); + break; + case "Enter": + case "NumpadEnter": + case "Space": + this.onEnterKey(event); + break; + } + }, "onKeydown"), + onArrowRightKey: /* @__PURE__ */ __name(function onArrowRightKey(event) { + var nextTab = this.findNextTab(event.currentTarget); + nextTab ? this.changeFocusedTab(event, nextTab) : this.onHomeKey(event); + event.preventDefault(); + }, "onArrowRightKey"), + onArrowLeftKey: /* @__PURE__ */ __name(function onArrowLeftKey(event) { + var prevTab = this.findPrevTab(event.currentTarget); + prevTab ? this.changeFocusedTab(event, prevTab) : this.onEndKey(event); + event.preventDefault(); + }, "onArrowLeftKey"), + onHomeKey: /* @__PURE__ */ __name(function onHomeKey(event) { + var firstTab = this.findFirstTab(); + this.changeFocusedTab(event, firstTab); + event.preventDefault(); + }, "onHomeKey"), + onEndKey: /* @__PURE__ */ __name(function onEndKey(event) { + var lastTab = this.findLastTab(); + this.changeFocusedTab(event, lastTab); + event.preventDefault(); + }, "onEndKey"), + onPageDownKey: /* @__PURE__ */ __name(function onPageDownKey(event) { + this.scrollInView(this.findLastTab()); + event.preventDefault(); + }, "onPageDownKey"), + onPageUpKey: /* @__PURE__ */ __name(function onPageUpKey(event) { + this.scrollInView(this.findFirstTab()); + event.preventDefault(); + }, "onPageUpKey"), + onEnterKey: /* @__PURE__ */ __name(function onEnterKey(event) { + this.changeActiveValue(); + event.preventDefault(); + }, "onEnterKey"), + findNextTab: /* @__PURE__ */ __name(function findNextTab(tabElement) { + var selfCheck = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; + var element = selfCheck ? tabElement : tabElement.nextElementSibling; + return element ? getAttribute(element, "data-p-disabled") || getAttribute(element, "data-pc-section") === "inkbar" ? this.findNextTab(element) : findSingle(element, '[data-pc-name="tab"]') : null; + }, "findNextTab"), + findPrevTab: /* @__PURE__ */ __name(function findPrevTab(tabElement) { + var selfCheck = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; + var element = selfCheck ? tabElement : tabElement.previousElementSibling; + return element ? getAttribute(element, "data-p-disabled") || getAttribute(element, "data-pc-section") === "inkbar" ? this.findPrevTab(element) : findSingle(element, '[data-pc-name="tab"]') : null; + }, "findPrevTab"), + findFirstTab: /* @__PURE__ */ __name(function findFirstTab() { + return this.findNextTab(this.$pcTabList.$refs.content.firstElementChild, true); + }, "findFirstTab"), + findLastTab: /* @__PURE__ */ __name(function findLastTab() { + return this.findPrevTab(this.$pcTabList.$refs.content.lastElementChild, true); + }, "findLastTab"), + changeActiveValue: /* @__PURE__ */ __name(function changeActiveValue() { + this.$pcTabs.updateValue(this.value); + }, "changeActiveValue"), + changeFocusedTab: /* @__PURE__ */ __name(function changeFocusedTab(event, element) { + focus(element); + this.scrollInView(element); + }, "changeFocusedTab"), + scrollInView: /* @__PURE__ */ __name(function scrollInView(element) { + var _element$scrollIntoVi; + element === null || element === void 0 || (_element$scrollIntoVi = element.scrollIntoView) === null || _element$scrollIntoVi === void 0 || _element$scrollIntoVi.call(element, { + block: "nearest" + }); + }, "scrollInView") + }, + computed: { + active: /* @__PURE__ */ __name(function active() { + var _this$$pcTabs; + return equals((_this$$pcTabs = this.$pcTabs) === null || _this$$pcTabs === void 0 ? void 0 : _this$$pcTabs.d_value, this.value); + }, "active"), + id: /* @__PURE__ */ __name(function id() { + var _this$$pcTabs2; + return "".concat((_this$$pcTabs2 = this.$pcTabs) === null || _this$$pcTabs2 === void 0 ? void 0 : _this$$pcTabs2.id, "_tab_").concat(this.value); + }, "id"), + ariaControls: /* @__PURE__ */ __name(function ariaControls() { + var _this$$pcTabs3; + return "".concat((_this$$pcTabs3 = this.$pcTabs) === null || _this$$pcTabs3 === void 0 ? void 0 : _this$$pcTabs3.id, "_tabpanel_").concat(this.value); + }, "ariaControls"), + attrs: /* @__PURE__ */ __name(function attrs() { + return mergeProps(this.asAttrs, this.a11yAttrs, this.ptmi("root", this.ptParams)); + }, "attrs"), + asAttrs: /* @__PURE__ */ __name(function asAttrs() { + return this.as === "BUTTON" ? { + type: "button", + disabled: this.disabled + } : void 0; + }, "asAttrs"), + a11yAttrs: /* @__PURE__ */ __name(function a11yAttrs() { + return { + id: this.id, + tabindex: this.active ? this.$pcTabs.tabindex : -1, + role: "tab", + "aria-selected": this.active, + "aria-controls": this.ariaControls, + "data-pc-name": "tab", + "data-p-disabled": this.disabled, + "data-p-active": this.active, + onFocus: this.onFocus, + onKeydown: this.onKeydown + }; + }, "a11yAttrs"), + ptParams: /* @__PURE__ */ __name(function ptParams() { + return { + context: { + active: this.active + } + }; + }, "ptParams") + }, + directives: { + ripple: Ripple + } +}; +function render$h(_ctx, _cache, $props, $setup, $data, $options) { + var _directive_ripple = resolveDirective("ripple"); + return !_ctx.asChild ? withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({ + key: 0, + "class": _ctx.cx("root"), + onClick: $options.onClick + }, $options.attrs), { + "default": withCtx(function() { + return [renderSlot(_ctx.$slots, "default")]; + }), + _: 3 + }, 16, ["class", "onClick"])), [[_directive_ripple]]) : renderSlot(_ctx.$slots, "default", { + key: 1, + "class": normalizeClass(_ctx.cx("root")), + active: $options.active, + a11yAttrs: $options.a11yAttrs, + onClick: $options.onClick + }); +} +__name(render$h, "render$h"); +script$a.render = render$h; +var classes$7 = { + root: "p-tablist", + content: /* @__PURE__ */ __name(function content(_ref) { + var instance = _ref.instance; + return ["p-tablist-content", { + "p-tablist-viewport": instance.$pcTabs.scrollable + }]; + }, "content"), + tabList: "p-tablist-tab-list", + activeBar: "p-tablist-active-bar", + prevButton: "p-tablist-prev-button p-tablist-nav-button", + nextButton: "p-tablist-next-button p-tablist-nav-button" +}; +var TabListStyle = BaseStyle.extend({ + name: "tablist", + classes: classes$7 +}); +var script$1$7 = { + name: "BaseTabList", + "extends": script$e, + props: {}, + style: TabListStyle, + provide: /* @__PURE__ */ __name(function provide5() { + return { + $pcTabList: this, + $parentInstance: this + }; + }, "provide") +}; +var script$9 = { + name: "TabList", + "extends": script$1$7, + inheritAttrs: false, + inject: ["$pcTabs"], + data: /* @__PURE__ */ __name(function data3() { + return { + isPrevButtonEnabled: false, + isNextButtonEnabled: true + }; + }, "data"), + resizeObserver: void 0, + watch: { + showNavigators: /* @__PURE__ */ __name(function showNavigators(newValue) { + newValue ? this.bindResizeObserver() : this.unbindResizeObserver(); + }, "showNavigators"), + activeValue: { + flush: "post", + handler: /* @__PURE__ */ __name(function handler() { + this.updateInkBar(); + }, "handler") + } + }, + mounted: /* @__PURE__ */ __name(function mounted2() { + var _this = this; + this.$nextTick(function() { + _this.updateInkBar(); + }); + if (this.showNavigators) { + this.updateButtonState(); + this.bindResizeObserver(); + } + }, "mounted"), + updated: /* @__PURE__ */ __name(function updated() { + this.showNavigators && this.updateButtonState(); + }, "updated"), + beforeUnmount: /* @__PURE__ */ __name(function beforeUnmount2() { + this.unbindResizeObserver(); + }, "beforeUnmount"), + methods: { + onScroll: /* @__PURE__ */ __name(function onScroll(event) { + this.showNavigators && this.updateButtonState(); + event.preventDefault(); + }, "onScroll"), + onPrevButtonClick: /* @__PURE__ */ __name(function onPrevButtonClick() { + var content2 = this.$refs.content; + var width = getWidth(content2); + var pos = content2.scrollLeft - width; + content2.scrollLeft = pos <= 0 ? 0 : pos; + }, "onPrevButtonClick"), + onNextButtonClick: /* @__PURE__ */ __name(function onNextButtonClick() { + var content2 = this.$refs.content; + var width = getWidth(content2) - this.getVisibleButtonWidths(); + var pos = content2.scrollLeft + width; + var lastPos = content2.scrollWidth - width; + content2.scrollLeft = pos >= lastPos ? lastPos : pos; + }, "onNextButtonClick"), + bindResizeObserver: /* @__PURE__ */ __name(function bindResizeObserver() { + var _this2 = this; + this.resizeObserver = new ResizeObserver(function() { + return _this2.updateButtonState(); + }); + this.resizeObserver.observe(this.$refs.list); + }, "bindResizeObserver"), + unbindResizeObserver: /* @__PURE__ */ __name(function unbindResizeObserver() { + var _this$resizeObserver; + (_this$resizeObserver = this.resizeObserver) === null || _this$resizeObserver === void 0 || _this$resizeObserver.unobserve(this.$refs.list); + this.resizeObserver = void 0; + }, "unbindResizeObserver"), + updateInkBar: /* @__PURE__ */ __name(function updateInkBar() { + var _this$$refs = this.$refs, content2 = _this$$refs.content, inkbar = _this$$refs.inkbar, tabs = _this$$refs.tabs; + var activeTab = findSingle(content2, '[data-pc-name="tab"][data-p-active="true"]'); + if (this.$pcTabs.isVertical()) { + inkbar.style.height = getOuterHeight(activeTab) + "px"; + inkbar.style.top = getOffset(activeTab).top - getOffset(tabs).top + "px"; + } else { + inkbar.style.width = getOuterWidth(activeTab) + "px"; + inkbar.style.left = getOffset(activeTab).left - getOffset(tabs).left + "px"; + } + }, "updateInkBar"), + updateButtonState: /* @__PURE__ */ __name(function updateButtonState() { + var _this$$refs2 = this.$refs, list = _this$$refs2.list, content2 = _this$$refs2.content; + var scrollLeft = content2.scrollLeft, scrollTop = content2.scrollTop, scrollWidth = content2.scrollWidth, scrollHeight = content2.scrollHeight, offsetWidth = content2.offsetWidth, offsetHeight = content2.offsetHeight; + var _ref = [getWidth(content2), getHeight(content2)], width = _ref[0], height = _ref[1]; + if (this.$pcTabs.isVertical()) { + this.isPrevButtonEnabled = scrollTop !== 0; + this.isNextButtonEnabled = list.offsetHeight >= offsetHeight && parseInt(scrollTop) !== scrollHeight - height; + } else { + this.isPrevButtonEnabled = scrollLeft !== 0; + this.isNextButtonEnabled = list.offsetWidth >= offsetWidth && parseInt(scrollLeft) !== scrollWidth - width; + } + }, "updateButtonState"), + getVisibleButtonWidths: /* @__PURE__ */ __name(function getVisibleButtonWidths() { + var _this$$refs3 = this.$refs, prevBtn = _this$$refs3.prevBtn, nextBtn = _this$$refs3.nextBtn; + return [prevBtn, nextBtn].reduce(function(acc, el) { + return el ? acc + getWidth(el) : acc; + }, 0); + }, "getVisibleButtonWidths") + }, + computed: { + templates: /* @__PURE__ */ __name(function templates() { + return this.$pcTabs.$slots; + }, "templates"), + activeValue: /* @__PURE__ */ __name(function activeValue() { + return this.$pcTabs.d_value; + }, "activeValue"), + showNavigators: /* @__PURE__ */ __name(function showNavigators2() { + return this.$pcTabs.scrollable && this.$pcTabs.showNavigators; + }, "showNavigators"), + prevButtonAriaLabel: /* @__PURE__ */ __name(function prevButtonAriaLabel() { + return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : void 0; + }, "prevButtonAriaLabel"), + nextButtonAriaLabel: /* @__PURE__ */ __name(function nextButtonAriaLabel() { + return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : void 0; + }, "nextButtonAriaLabel") + }, + components: { + ChevronLeftIcon: script$f, + ChevronRightIcon: script$g + }, + directives: { + ripple: Ripple + } +}; +var _hoisted_1$l = ["aria-label", "tabindex"]; +var _hoisted_2$i = ["aria-orientation"]; +var _hoisted_3$g = ["aria-label", "tabindex"]; +function render$g(_ctx, _cache, $props, $setup, $data, $options) { + var _directive_ripple = resolveDirective("ripple"); + return openBlock(), createElementBlock("div", mergeProps({ + ref: "list", + "class": _ctx.cx("root") + }, _ctx.ptmi("root")), [$options.showNavigators && $data.isPrevButtonEnabled ? withDirectives((openBlock(), createElementBlock("button", mergeProps({ + key: 0, + ref: "prevButton", + "class": _ctx.cx("prevButton"), + "aria-label": $options.prevButtonAriaLabel, + tabindex: $options.$pcTabs.tabindex, + onClick: _cache[0] || (_cache[0] = function() { + return $options.onPrevButtonClick && $options.onPrevButtonClick.apply($options, arguments); + }) + }, _ctx.ptm("prevButton"), { + "data-pc-group-section": "navigator" + }), [(openBlock(), createBlock(resolveDynamicComponent($options.templates.previcon || "ChevronLeftIcon"), mergeProps({ + "aria-hidden": "true" + }, _ctx.ptm("prevIcon")), null, 16))], 16, _hoisted_1$l)), [[_directive_ripple]]) : createCommentVNode("", true), createBaseVNode("div", mergeProps({ + ref: "content", + "class": _ctx.cx("content"), + onScroll: _cache[1] || (_cache[1] = function() { + return $options.onScroll && $options.onScroll.apply($options, arguments); + }) + }, _ctx.ptm("content")), [createBaseVNode("div", mergeProps({ + ref: "tabs", + "class": _ctx.cx("tabList"), + role: "tablist", + "aria-orientation": $options.$pcTabs.orientation || "horizontal" + }, _ctx.ptm("tabList")), [renderSlot(_ctx.$slots, "default"), createBaseVNode("span", mergeProps({ + ref: "inkbar", + "class": _ctx.cx("activeBar"), + role: "presentation", + "aria-hidden": "true" + }, _ctx.ptm("activeBar")), null, 16)], 16, _hoisted_2$i)], 16), $options.showNavigators && $data.isNextButtonEnabled ? withDirectives((openBlock(), createElementBlock("button", mergeProps({ + key: 1, + ref: "nextButton", + "class": _ctx.cx("nextButton"), + "aria-label": $options.nextButtonAriaLabel, + tabindex: $options.$pcTabs.tabindex, + onClick: _cache[2] || (_cache[2] = function() { + return $options.onNextButtonClick && $options.onNextButtonClick.apply($options, arguments); + }) + }, _ctx.ptm("nextButton"), { + "data-pc-group-section": "navigator" + }), [(openBlock(), createBlock(resolveDynamicComponent($options.templates.nexticon || "ChevronRightIcon"), mergeProps({ + "aria-hidden": "true" + }, _ctx.ptm("nextIcon")), null, 16))], 16, _hoisted_3$g)), [[_directive_ripple]]) : createCommentVNode("", true)], 16); +} +__name(render$g, "render$g"); +script$9.render = render$g; +const _sfc_main$p = /* @__PURE__ */ defineComponent({ + __name: "ExtensionSlot", + props: { + extension: {} + }, + setup(__props) { + const props = __props; + const mountCustomExtension = /* @__PURE__ */ __name((extension, el) => { + extension.render(el); + }, "mountCustomExtension"); + onBeforeUnmount(() => { + if (props.extension.type === "custom" && props.extension.destroy) { + props.extension.destroy(); + } + }); + return (_ctx, _cache) => { + return _ctx.extension.type === "vue" ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.extension.component), { key: 0 })) : (openBlock(), createElementBlock("div", { + key: 1, + ref: /* @__PURE__ */ __name((el) => { + if (el) + mountCustomExtension( + props.extension, + el + ); + }, "ref") + }, null, 512)); + }; + } +}); +const _hoisted_1$k = { class: "flex flex-col h-full" }; +const _hoisted_2$h = { class: "w-full flex justify-between" }; +const _hoisted_3$f = { class: "tabs-container" }; +const _hoisted_4$5 = { class: "font-bold" }; +const _hoisted_5$4 = { class: "flex-grow h-0" }; +const _sfc_main$o = /* @__PURE__ */ defineComponent({ + __name: "BottomPanel", + setup(__props) { + const bottomPanelStore = useBottomPanelStore(); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", _hoisted_1$k, [ + createVNode(unref(script$h), { + value: unref(bottomPanelStore).activeBottomPanelTabId, + "onUpdate:value": _cache[1] || (_cache[1] = ($event) => unref(bottomPanelStore).activeBottomPanelTabId = $event) + }, { + default: withCtx(() => [ + createVNode(unref(script$9), { "pt:tabList": "border-none" }, { + default: withCtx(() => [ + createBaseVNode("div", _hoisted_2$h, [ + createBaseVNode("div", _hoisted_3$f, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(unref(bottomPanelStore).bottomPanelTabs, (tab) => { + return openBlock(), createBlock(unref(script$a), { + key: tab.id, + value: tab.id, + class: "p-3 border-none" + }, { + default: withCtx(() => [ + createBaseVNode("span", _hoisted_4$5, toDisplayString(tab.title.toUpperCase()), 1) + ]), + _: 2 + }, 1032, ["value"]); + }), 128)) + ]), + createVNode(unref(script$d), { + class: "justify-self-end", + icon: "pi pi-times", + severity: "secondary", + size: "small", + text: "", + onClick: _cache[0] || (_cache[0] = ($event) => unref(bottomPanelStore).bottomPanelVisible = false) + }) + ]) + ]), + _: 1 + }) + ]), + _: 1 + }, 8, ["value"]), + createBaseVNode("div", _hoisted_5$4, [ + unref(bottomPanelStore).bottomPanelVisible && unref(bottomPanelStore).activeBottomPanelTab ? (openBlock(), createBlock(_sfc_main$p, { + key: 0, + extension: unref(bottomPanelStore).activeBottomPanelTab + }, null, 8, ["extension"])) : createCommentVNode("", true) + ]) + ]); + }; + } +}); +const _hoisted_1$j = { + viewBox: "0 0 1024 1024", + width: "1.2em", + height: "1.2em" +}; +const _hoisted_2$g = /* @__PURE__ */ createBaseVNode("path", { + fill: "currentColor", + d: "M921.088 103.232L584.832 889.024L465.52 544.512L121.328 440.48zM1004.46.769c-6.096 0-13.52 1.728-22.096 5.36L27.708 411.2c-34.383 14.592-36.56 42.704-4.847 62.464l395.296 123.584l129.36 403.264c9.28 15.184 20.496 22.72 31.263 22.72c11.936 0 23.296-9.152 31.04-27.248l408.272-953.728C1029.148 16.368 1022.86.769 1004.46.769" +}, null, -1); +const _hoisted_3$e = [ + _hoisted_2$g +]; +function render$f(_ctx, _cache) { + return openBlock(), createElementBlock("svg", _hoisted_1$j, [..._hoisted_3$e]); +} +__name(render$f, "render$f"); +const __unplugin_components_1$2 = markRaw({ name: "simple-line-icons-cursor", render: render$f }); +const _hoisted_1$i = { + viewBox: "0 0 24 24", + width: "1.2em", + height: "1.2em" +}; +const _hoisted_2$f = /* @__PURE__ */ createBaseVNode("path", { + fill: "currentColor", + d: "M10.05 23q-.75 0-1.4-.337T7.575 21.7L1.2 12.375l.6-.575q.475-.475 1.125-.55t1.175.3L7 13.575V4q0-.425.288-.712T8 3t.713.288T9 4v13.425l-3.7-2.6l3.925 5.725q.125.2.35.325t.475.125H17q.825 0 1.413-.587T19 19V5q0-.425.288-.712T20 4t.713.288T21 5v14q0 1.65-1.175 2.825T17 23zM11 12V2q0-.425.288-.712T12 1t.713.288T13 2v10zm4 0V3q0-.425.288-.712T16 2t.713.288T17 3v9zm-2.85 4.5" +}, null, -1); +const _hoisted_3$d = [ + _hoisted_2$f +]; +function render$e(_ctx, _cache) { + return openBlock(), createElementBlock("svg", _hoisted_1$i, [..._hoisted_3$d]); +} +__name(render$e, "render$e"); +const __unplugin_components_0$2 = markRaw({ name: "material-symbols-pan-tool-outline", render: render$e }); +var theme$6 = /* @__PURE__ */ __name(function theme2(_ref) { + _ref.dt; + return "\n.p-buttongroup .p-button {\n margin: 0;\n}\n\n.p-buttongroup .p-button:not(:last-child),\n.p-buttongroup .p-button:not(:last-child):hover {\n border-right: 0 none;\n}\n\n.p-buttongroup .p-button:not(:first-of-type):not(:last-of-type) {\n border-radius: 0;\n}\n\n.p-buttongroup .p-button:first-of-type:not(:only-of-type) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.p-buttongroup .p-button:last-of-type:not(:only-of-type) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.p-buttongroup .p-button:focus {\n position: relative;\n z-index: 1;\n}\n"; +}, "theme"); +var classes$6 = { + root: "p-buttongroup p-component" +}; +var ButtonGroupStyle = BaseStyle.extend({ + name: "buttongroup", + theme: theme$6, + classes: classes$6 +}); +var script$1$6 = { + name: "BaseButtonGroup", + "extends": script$e, + style: ButtonGroupStyle, + provide: /* @__PURE__ */ __name(function provide6() { + return { + $pcButtonGroup: this, + $parentInstance: this + }; + }, "provide") +}; +var script$8 = { + name: "ButtonGroup", + "extends": script$1$6, + inheritAttrs: false +}; +function render$d(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("span", mergeProps({ + "class": _ctx.cx("root"), + role: "group" + }, _ctx.ptmi("root")), [renderSlot(_ctx.$slots, "default")], 16); +} +__name(render$d, "render$d"); +script$8.render = render$d; +const useTitleEditorStore = defineStore("titleEditor", () => { + const titleEditorTarget = shallowRef(null); + return { + titleEditorTarget + }; +}); +const useCanvasStore = defineStore("canvas", () => { + const canvas = shallowRef(null); + return { + canvas + }; +}); +const _sfc_main$n = /* @__PURE__ */ defineComponent({ + __name: "GraphCanvasMenu", + setup(__props) { + const { t } = useI18n(); + const commandStore = useCommandStore(); + const canvasStore = useCanvasStore(); + const settingStore = useSettingStore(); + const linkHidden = computed( + () => settingStore.get("Comfy.LinkRenderMode") === LiteGraph.HIDDEN_LINK + ); + let interval = null; + const repeat2 = /* @__PURE__ */ __name((command) => { + if (interval) return; + const cmd = /* @__PURE__ */ __name(() => commandStore.execute(command), "cmd"); + cmd(); + interval = window.setInterval(cmd, 100); + }, "repeat"); + const stopRepeat = /* @__PURE__ */ __name(() => { + if (interval) { + clearInterval(interval); + interval = null; + } + }, "stopRepeat"); + return (_ctx, _cache) => { + const _component_i_material_symbols58pan_tool_outline = __unplugin_components_0$2; + const _component_i_simple_line_icons58cursor = __unplugin_components_1$2; + const _directive_tooltip = resolveDirective("tooltip"); + return openBlock(), createBlock(unref(script$8), { class: "p-buttongroup-vertical absolute bottom-[10px] right-[10px] z-[1000] pointer-events-auto" }, { + default: withCtx(() => [ + withDirectives(createVNode(unref(script$d), { + severity: "secondary", + icon: "pi pi-plus", + onMousedown: _cache[0] || (_cache[0] = ($event) => repeat2("Comfy.Canvas.ZoomIn")), + onMouseup: stopRepeat + }, null, 512), [ + [ + _directive_tooltip, + unref(t)("graphCanvasMenu.zoomIn"), + void 0, + { left: true } + ] + ]), + withDirectives(createVNode(unref(script$d), { + severity: "secondary", + icon: "pi pi-minus", + onMousedown: _cache[1] || (_cache[1] = ($event) => repeat2("Comfy.Canvas.ZoomOut")), + onMouseup: stopRepeat + }, null, 512), [ + [ + _directive_tooltip, + unref(t)("graphCanvasMenu.zoomOut"), + void 0, + { left: true } + ] + ]), + withDirectives(createVNode(unref(script$d), { + severity: "secondary", + icon: "pi pi-expand", + onClick: _cache[2] || (_cache[2] = () => unref(commandStore).execute("Comfy.Canvas.FitView")) + }, null, 512), [ + [ + _directive_tooltip, + unref(t)("graphCanvasMenu.fitView"), + void 0, + { left: true } + ] + ]), + withDirectives((openBlock(), createBlock(unref(script$d), { + severity: "secondary", + onClick: _cache[3] || (_cache[3] = () => unref(commandStore).execute("Comfy.Canvas.ToggleLock")) + }, { + icon: withCtx(() => [ + unref(canvasStore).canvas?.read_only ? (openBlock(), createBlock(_component_i_material_symbols58pan_tool_outline, { key: 0 })) : (openBlock(), createBlock(_component_i_simple_line_icons58cursor, { key: 1 })) + ]), + _: 1 + })), [ + [ + _directive_tooltip, + unref(t)( + "graphCanvasMenu." + (unref(canvasStore).canvas?.read_only ? "panMode" : "selectMode") + ) + " (Space)", + void 0, + { left: true } + ] + ]), + withDirectives(createVNode(unref(script$d), { + severity: "secondary", + icon: linkHidden.value ? "pi pi-eye-slash" : "pi pi-eye", + onClick: _cache[4] || (_cache[4] = () => unref(commandStore).execute("Comfy.Canvas.ToggleLinkVisibility")), + "data-testid": "toggle-link-visibility-button" + }, null, 8, ["icon"]), [ + [ + _directive_tooltip, + unref(t)("graphCanvasMenu.toggleLinkVisibility"), + void 0, + { left: true } + ] + ]) + ]), + _: 1 + }); + }; + } +}); +const GraphCanvasMenu = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-cf40dd39"]]); +const _sfc_main$m = /* @__PURE__ */ defineComponent({ + __name: "NodeBadge", + setup(__props) { + const settingStore = useSettingStore(); + const colorPaletteStore = useColorPaletteStore(); + const nodeSourceBadgeMode = computed( + () => settingStore.get("Comfy.NodeBadge.NodeSourceBadgeMode") + ); + const nodeIdBadgeMode = computed( + () => settingStore.get("Comfy.NodeBadge.NodeIdBadgeMode") + ); + const nodeLifeCycleBadgeMode = computed( + () => settingStore.get("Comfy.NodeBadge.NodeLifeCycleBadgeMode") + ); + watch([nodeSourceBadgeMode, nodeIdBadgeMode, nodeLifeCycleBadgeMode], () => { + app.graph?.setDirtyCanvas(true, true); + }); + const nodeDefStore = useNodeDefStore(); + function badgeTextVisible(nodeDef, badgeMode) { + return !(badgeMode === NodeBadgeMode.None || nodeDef?.isCoreNode && badgeMode === NodeBadgeMode.HideBuiltIn); + } + __name(badgeTextVisible, "badgeTextVisible"); + onMounted(() => { + app.registerExtension({ + name: "Comfy.NodeBadge", + nodeCreated(node) { + node.badgePosition = BadgePosition.TopRight; + const badge = computed(() => { + const nodeDef = nodeDefStore.fromLGraphNode(node); + return new LGraphBadge({ + text: _.truncate( + [ + badgeTextVisible(nodeDef, nodeIdBadgeMode.value) ? `#${node.id}` : "", + badgeTextVisible(nodeDef, nodeLifeCycleBadgeMode.value) ? nodeDef?.nodeLifeCycleBadgeText ?? "" : "", + badgeTextVisible(nodeDef, nodeSourceBadgeMode.value) ? nodeDef?.nodeSource?.badgeText ?? "" : "" + ].filter((s) => s.length > 0).join(" "), + { + length: 31 + } + ), + fgColor: colorPaletteStore.completedActivePalette.colors.litegraph_base.BADGE_FG_COLOR, + bgColor: colorPaletteStore.completedActivePalette.colors.litegraph_base.BADGE_BG_COLOR + }); + }); + node.badges.push(() => badge.value); + } + }); + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div"); + }; + } +}); +const _sfc_main$l = /* @__PURE__ */ defineComponent({ + __name: "NodeTooltip", + setup(__props) { + let idleTimeout; + const nodeDefStore = useNodeDefStore(); + const tooltipRef = ref(); + const tooltipText = ref(""); + const left = ref(); + const top = ref(); + const hideTooltip = /* @__PURE__ */ __name(() => tooltipText.value = null, "hideTooltip"); + const showTooltip = /* @__PURE__ */ __name(async (tooltip) => { + if (!tooltip) return; + left.value = app.canvas.mouse[0] + "px"; + top.value = app.canvas.mouse[1] + "px"; + tooltipText.value = tooltip; + await nextTick(); + const rect = tooltipRef.value.getBoundingClientRect(); + if (rect.right > window.innerWidth) { + left.value = app.canvas.mouse[0] - rect.width + "px"; + } + if (rect.top < 0) { + top.value = app.canvas.mouse[1] + rect.height + "px"; + } + }, "showTooltip"); + const onIdle = /* @__PURE__ */ __name(() => { + const { canvas } = app; + const node = canvas.node_over; + if (!node) return; + const ctor = node.constructor; + const nodeDef = nodeDefStore.nodeDefsByName[node.type]; + if (ctor.title_mode !== LiteGraph.NO_TITLE && canvas.graph_mouse[1] < node.pos[1]) { + return showTooltip(nodeDef.description); + } + if (node.flags?.collapsed) return; + const inputSlot = canvas.isOverNodeInput( + node, + canvas.graph_mouse[0], + canvas.graph_mouse[1], + [0, 0] + ); + if (inputSlot !== -1) { + const inputName = node.inputs[inputSlot].name; + const translatedTooltip = st( + `nodeDefs.${normalizeI18nKey(node.type)}.inputs.${normalizeI18nKey(inputName)}.tooltip`, + nodeDef.inputs.getInput(inputName)?.tooltip + ); + return showTooltip(translatedTooltip); + } + const outputSlot = canvas.isOverNodeOutput( + node, + canvas.graph_mouse[0], + canvas.graph_mouse[1], + [0, 0] + ); + if (outputSlot !== -1) { + const translatedTooltip = st( + `nodeDefs.${normalizeI18nKey(node.type)}.outputs.${outputSlot}.tooltip`, + nodeDef.outputs.all?.[outputSlot]?.tooltip + ); + return showTooltip(translatedTooltip); + } + const widget = app.canvas.getWidgetAtCursor(); + if (widget && !widget.element) { + const translatedTooltip = st( + `nodeDefs.${normalizeI18nKey(node.type)}.inputs.${normalizeI18nKey(widget.name)}.tooltip`, + nodeDef.inputs.getInput(widget.name)?.tooltip + ); + return showTooltip(widget.tooltip ?? translatedTooltip); + } + }, "onIdle"); + const onMouseMove = /* @__PURE__ */ __name((e) => { + hideTooltip(); + clearTimeout(idleTimeout); + if (e.target.nodeName !== "CANVAS") return; + idleTimeout = window.setTimeout(onIdle, 500); + }, "onMouseMove"); + useEventListener(window, "mousemove", onMouseMove); + useEventListener(window, "click", hideTooltip); + return (_ctx, _cache) => { + return tooltipText.value ? (openBlock(), createElementBlock("div", { + key: 0, + ref_key: "tooltipRef", + ref: tooltipRef, + class: "node-tooltip", + style: normalizeStyle({ left: left.value, top: top.value }) + }, toDisplayString(tooltipText.value), 5)) : createCommentVNode("", true); + }; + } +}); +const NodeTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-46859edf"]]); +const _sfc_main$k = /* @__PURE__ */ defineComponent({ + __name: "TitleEditor", + setup(__props) { + const settingStore = useSettingStore(); + const showInput = ref(false); + const editedTitle = ref(""); + const inputStyle = ref({ + position: "fixed", + left: "0px", + top: "0px", + width: "200px", + height: "20px", + fontSize: "12px" + }); + const titleEditorStore = useTitleEditorStore(); + const canvasStore = useCanvasStore(); + const previousCanvasDraggable = ref(true); + const onEdit = /* @__PURE__ */ __name((newValue) => { + if (titleEditorStore.titleEditorTarget && newValue.trim() !== "") { + titleEditorStore.titleEditorTarget.title = newValue.trim(); + app.graph.setDirtyCanvas(true, true); + } + showInput.value = false; + titleEditorStore.titleEditorTarget = null; + canvasStore.canvas.allow_dragcanvas = previousCanvasDraggable.value; + }, "onEdit"); + watch( + () => titleEditorStore.titleEditorTarget, + (target) => { + if (target === null) { + return; + } + editedTitle.value = target.title; + showInput.value = true; + previousCanvasDraggable.value = canvasStore.canvas.allow_dragcanvas; + canvasStore.canvas.allow_dragcanvas = false; + if (target instanceof LGraphGroup) { + const group = target; + const [x, y] = group.pos; + const [w, h] = group.size; + const [left, top] = app.canvasPosToClientPos([x, y]); + inputStyle.value.left = `${left}px`; + inputStyle.value.top = `${top}px`; + const width = w * app.canvas.ds.scale; + const height = group.titleHeight * app.canvas.ds.scale; + inputStyle.value.width = `${width}px`; + inputStyle.value.height = `${height}px`; + const fontSize = group.font_size * app.canvas.ds.scale; + inputStyle.value.fontSize = `${fontSize}px`; + } else if (target instanceof LGraphNode) { + const node = target; + const [x, y] = node.getBounding(); + const canvasWidth = node.width; + const canvasHeight = LiteGraph.NODE_TITLE_HEIGHT; + const [left, top] = app.canvasPosToClientPos([x, y]); + inputStyle.value.left = `${left}px`; + inputStyle.value.top = `${top}px`; + const width = canvasWidth * app.canvas.ds.scale; + const height = canvasHeight * app.canvas.ds.scale; + inputStyle.value.width = `${width}px`; + inputStyle.value.height = `${height}px`; + const fontSize = 12 * app.canvas.ds.scale; + inputStyle.value.fontSize = `${fontSize}px`; + } + } + ); + const canvasEventHandler = /* @__PURE__ */ __name((event) => { + if (event.detail.subType === "group-double-click") { + if (!settingStore.get("Comfy.Group.DoubleClickTitleToEdit")) { + return; + } + const group = event.detail.group; + const [x, y] = group.pos; + const e = event.detail.originalEvent; + const relativeY = e.canvasY - y; + if (relativeY <= group.titleHeight) { + titleEditorStore.titleEditorTarget = group; + } + } else if (event.detail.subType === "node-double-click") { + if (!settingStore.get("Comfy.Node.DoubleClickTitleToEdit")) { + return; + } + const node = event.detail.node; + const [x, y] = node.pos; + const e = event.detail.originalEvent; + const relativeY = e.canvasY - y; + if (relativeY <= 0) { + titleEditorStore.titleEditorTarget = node; + } + } + }, "canvasEventHandler"); + useEventListener(document, "litegraph:canvas", canvasEventHandler); + return (_ctx, _cache) => { + return showInput.value ? (openBlock(), createElementBlock("div", { + key: 0, + class: "group-title-editor node-title-editor", + style: normalizeStyle(inputStyle.value) + }, [ + createVNode(EditableText, { + isEditing: showInput.value, + modelValue: editedTitle.value, + onEdit + }, null, 8, ["isEditing", "modelValue"]) + ], 4)) : createCommentVNode("", true); + }; + } +}); +const TitleEditor = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-12d3fd12"]]); +const useSearchBoxStore = defineStore("searchBox", () => { + const visible = ref(false); + function toggleVisible() { + visible.value = !visible.value; + } + __name(toggleVisible, "toggleVisible"); + return { + visible, + toggleVisible + }; +}); +class ConnectingLinkImpl { + static { + __name(this, "ConnectingLinkImpl"); + } + constructor(node, slot, input, output, pos, afterRerouteId) { + this.node = node; + this.slot = slot; + this.input = input; + this.output = output; + this.pos = pos; + this.afterRerouteId = afterRerouteId; + } + static createFromPlainObject(obj) { + return new ConnectingLinkImpl( + obj.node, + obj.slot, + obj.input, + obj.output, + obj.pos, + obj.afterRerouteId + ); + } + get type() { + const result = this.input ? this.input.type : this.output?.type ?? null; + return result === -1 ? null : result; + } + /** + * Which slot type is release and need to be reconnected. + * - 'output' means we need a new node's outputs slot to connect with this link + */ + get releaseSlotType() { + return this.output ? "input" : "output"; + } + connectTo(newNode) { + const newNodeSlots = this.releaseSlotType === "output" ? newNode.outputs : newNode.inputs; + if (!newNodeSlots) return; + const newNodeSlot = newNodeSlots.findIndex( + (slot) => LiteGraph.isValidConnection(slot.type, this.type) + ); + if (newNodeSlot === -1) { + console.warn( + `Could not find slot with type ${this.type} on node ${newNode.title}. This should never happen` + ); + return; + } + if (this.releaseSlotType === "input") { + this.node.connect(this.slot, newNode, newNodeSlot, this.afterRerouteId); + } else { + newNode.connect(newNodeSlot, this.node, this.slot, this.afterRerouteId); + } + } +} +var theme$5 = /* @__PURE__ */ __name(function theme3(_ref) { var dt = _ref.dt; return "\n.p-autocomplete {\n display: inline-flex;\n}\n\n.p-autocomplete-loader {\n position: absolute;\n top: 50%;\n margin-top: -0.5rem;\n right: ".concat(dt("autocomplete.padding.x"), ";\n}\n\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-loader {\n right: calc(").concat(dt("autocomplete.dropdown.width"), " + ").concat(dt("autocomplete.padding.x"), ");\n}\n\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input {\n flex: 1 1 auto;\n width: 1%;\n}\n\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input,\n.p-autocomplete:has(.p-autocomplete-dropdown) .p-autocomplete-input-multiple {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.p-autocomplete-dropdown {\n cursor: pointer;\n display: inline-flex;\n cursor: pointer;\n user-select: none;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n width: ").concat(dt("autocomplete.dropdown.width"), ";\n border-top-right-radius: ").concat(dt("autocomplete.dropdown.border.radius"), ";\n border-bottom-right-radius: ").concat(dt("autocomplete.dropdown.border.radius"), ";\n background: ").concat(dt("autocomplete.dropdown.background"), ";\n border: 1px solid ").concat(dt("autocomplete.dropdown.border.color"), ";\n border-left: 0 none;\n color: ").concat(dt("autocomplete.dropdown.color"), ";\n transition: background ").concat(dt("autocomplete.transition.duration"), ", color ").concat(dt("autocomplete.transition.duration"), ", border-color ").concat(dt("autocomplete.transition.duration"), ", outline-color ").concat(dt("autocomplete.transition.duration"), ", box-shadow ").concat(dt("autocomplete.transition.duration"), ";\n outline-color: transparent;\n}\n\n.p-autocomplete-dropdown:not(:disabled):hover {\n background: ").concat(dt("autocomplete.dropdown.hover.background"), ";\n border-color: ").concat(dt("autocomplete.dropdown.hover.border.color"), ";\n color: ").concat(dt("autocomplete.dropdown.hover.color"), ";\n}\n\n.p-autocomplete-dropdown:not(:disabled):active {\n background: ").concat(dt("autocomplete.dropdown.active.background"), ";\n border-color: ").concat(dt("autocomplete.dropdown.active.border.color"), ";\n color: ").concat(dt("autocomplete.dropdown.active.color"), ";\n}\n\n.p-autocomplete-dropdown:focus-visible {\n box-shadow: ").concat(dt("autocomplete.dropdown.focus.ring.shadow"), ";\n outline: ").concat(dt("autocomplete.dropdown.focus.ring.width"), " ").concat(dt("autocomplete.dropdown.focus.ring.style"), " ").concat(dt("autocomplete.dropdown.focus.ring.color"), ";\n outline-offset: ").concat(dt("autocomplete.dropdown.focus.ring.offset"), ";\n}\n\n.p-autocomplete .p-autocomplete-overlay {\n min-width: 100%;\n}\n\n.p-autocomplete-overlay {\n position: absolute;\n overflow: auto;\n top: 0;\n left: 0;\n background: ").concat(dt("autocomplete.overlay.background"), ";\n color: ").concat(dt("autocomplete.overlay.color"), ";\n border: 1px solid ").concat(dt("autocomplete.overlay.border.color"), ";\n border-radius: ").concat(dt("autocomplete.overlay.border.radius"), ";\n box-shadow: ").concat(dt("autocomplete.overlay.shadow"), ";\n}\n\n.p-autocomplete-list {\n margin: 0;\n padding: 0;\n list-style-type: none;\n display: flex;\n flex-direction: column;\n gap: ").concat(dt("autocomplete.list.gap"), ";\n padding: ").concat(dt("autocomplete.list.padding"), ";\n}\n\n.p-autocomplete-option {\n cursor: pointer;\n white-space: nowrap;\n position: relative;\n overflow: hidden;\n display: flex;\n align-items: center;\n padding: ").concat(dt("autocomplete.option.padding"), ";\n border: 0 none;\n color: ").concat(dt("autocomplete.option.color"), ";\n background: transparent;\n transition: background ").concat(dt("autocomplete.transition.duration"), ", color ").concat(dt("autocomplete.transition.duration"), ", border-color ").concat(dt("autocomplete.transition.duration"), ";\n border-radius: ").concat(dt("autocomplete.option.border.radius"), ";\n}\n\n.p-autocomplete-option:not(.p-autocomplete-option-selected):not(.p-disabled).p-focus {\n background: ").concat(dt("autocomplete.option.focus.background"), ";\n color: ").concat(dt("autocomplete.option.focus.color"), ";\n}\n\n.p-autocomplete-option-selected {\n background: ").concat(dt("autocomplete.option.selected.background"), ";\n color: ").concat(dt("autocomplete.option.selected.color"), ";\n}\n\n.p-autocomplete-option-selected.p-focus {\n background: ").concat(dt("autocomplete.option.selected.focus.background"), ";\n color: ").concat(dt("autocomplete.option.selected.focus.color"), ";\n}\n\n.p-autocomplete-option-group {\n margin: 0;\n padding: ").concat(dt("autocomplete.option.group.padding"), ";\n color: ").concat(dt("autocomplete.option.group.color"), ";\n background: ").concat(dt("autocomplete.option.group.background"), ";\n font-weight: ").concat(dt("autocomplete.option.group.font.weight"), ";\n}\n\n.p-autocomplete-input-multiple {\n margin: 0;\n list-style-type: none;\n cursor: text;\n overflow: hidden;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n padding: calc(").concat(dt("autocomplete.padding.y"), " / 2) ").concat(dt("autocomplete.padding.x"), ";\n gap: calc(").concat(dt("autocomplete.padding.y"), " / 2);\n color: ").concat(dt("autocomplete.color"), ";\n background: ").concat(dt("autocomplete.background"), ";\n border: 1px solid ").concat(dt("autocomplete.border.color"), ";\n border-radius: ").concat(dt("autocomplete.border.radius"), ";\n width: 100%;\n transition: background ").concat(dt("autocomplete.transition.duration"), ", color ").concat(dt("autocomplete.transition.duration"), ", border-color ").concat(dt("autocomplete.transition.duration"), ", outline-color ").concat(dt("autocomplete.transition.duration"), ", box-shadow ").concat(dt("autocomplete.transition.duration"), ";\n outline-color: transparent;\n box-shadow: ").concat(dt("autocomplete.shadow"), ";\n}\n\n.p-autocomplete:not(.p-disabled):hover .p-autocomplete-input-multiple {\n border-color: ").concat(dt("autocomplete.hover.border.color"), ";\n}\n\n.p-autocomplete:not(.p-disabled).p-focus .p-autocomplete-input-multiple {\n border-color: ").concat(dt("autocomplete.focus.border.color"), ";\n box-shadow: ").concat(dt("autocomplete.focus.ring.shadow"), ";\n outline: ").concat(dt("autocomplete.focus.ring.width"), " ").concat(dt("autocomplete.focus.ring.style"), " ").concat(dt("autocomplete.focus.ring.color"), ";\n outline-offset: ").concat(dt("autocomplete.focus.ring.offset"), ";\n}\n\n.p-autocomplete.p-invalid .p-autocomplete-input-multiple {\n border-color: ").concat(dt("autocomplete.invalid.border.color"), ";\n}\n\n.p-variant-filled.p-autocomplete-input-multiple {\n background: ").concat(dt("autocomplete.filled.background"), ";\n}\n\n.p-autocomplete:not(.p-disabled).p-focus .p-variant-filled.p-autocomplete-input-multiple {\n background: ").concat(dt("autocomplete.filled.focus.background"), ";\n}\n\n.p-autocomplete.p-disabled .p-autocomplete-input-multiple {\n opacity: 1;\n background: ").concat(dt("autocomplete.disabled.background"), ";\n color: ").concat(dt("autocomplete.disabled.color"), ";\n}\n\n.p-autocomplete-chip.p-chip {\n padding-top: calc(").concat(dt("autocomplete.padding.y"), " / 2);\n padding-bottom: calc(").concat(dt("autocomplete.padding.y"), " / 2);\n border-radius: ").concat(dt("autocomplete.chip.border.radius"), ";\n}\n\n.p-autocomplete-input-multiple:has(.p-autocomplete-chip) {\n padding-left: calc(").concat(dt("autocomplete.padding.y"), " / 2);\n padding-right: calc(").concat(dt("autocomplete.padding.y"), " / 2);\n}\n\n.p-autocomplete-chip-item.p-focus .p-autocomplete-chip {\n background: ").concat(dt("inputchips.chip.focus.background"), ";\n color: ").concat(dt("inputchips.chip.focus.color"), ";\n}\n\n.p-autocomplete-input-chip {\n flex: 1 1 auto;\n display: inline-flex;\n padding-top: calc(").concat(dt("autocomplete.padding.y"), " / 2);\n padding-bottom: calc(").concat(dt("autocomplete.padding.y"), " / 2);\n}\n\n.p-autocomplete-input-chip input {\n border: 0 none;\n outline: 0 none;\n background: transparent;\n margin: 0;\n padding: 0;\n box-shadow: none;\n border-radius: 0;\n width: 100%;\n font-family: inherit;\n font-feature-settings: inherit;\n font-size: 1rem;\n color: inherit;\n}\n\n.p-autocomplete-input-chip input::placeholder {\n color: ").concat(dt("autocomplete.placeholder.color"), ";\n}\n\n.p-autocomplete-empty-message {\n padding: ").concat(dt("autocomplete.empty.message.padding"), ";\n}\n\n.p-autocomplete-fluid {\n display: flex;\n}\n\n.p-autocomplete-fluid:has(.p-autocomplete-dropdown) .p-autocomplete-input {\n width: 1%;\n}\n"); }, "theme"); @@ -968,8 +1763,8 @@ var inlineStyles$3 = { position: "relative" } }; -var classes$6 = { - root: /* @__PURE__ */ __name(function root4(_ref2) { +var classes$5 = { + root: /* @__PURE__ */ __name(function root5(_ref2) { var instance = _ref2.instance, props = _ref2.props; return ["p-autocomplete p-component p-inputwrapper", { "p-disabled": props.disabled, @@ -1014,11 +1809,11 @@ var classes$6 = { }; var AutoCompleteStyle = BaseStyle.extend({ name: "autocomplete", - theme: theme$6, - classes: classes$6, + theme: theme$5, + classes: classes$5, inlineStyles: inlineStyles$3 }); -var script$1$6 = { +var script$1$5 = { name: "BaseAutoComplete", "extends": script$e, props: { @@ -1201,7 +1996,7 @@ var script$1$6 = { } }, style: AutoCompleteStyle, - provide: /* @__PURE__ */ __name(function provide5() { + provide: /* @__PURE__ */ __name(function provide7() { return { $pcAutoComplete: this, $parentInstance: this @@ -1247,9 +2042,9 @@ function _arrayLikeToArray$1(r, a) { return n; } __name(_arrayLikeToArray$1, "_arrayLikeToArray$1"); -var script$8 = { +var script$7 = { name: "AutoComplete", - "extends": script$1$6, + "extends": script$1$5, inheritAttrs: false, emits: ["update:modelValue", "change", "focus", "blur", "item-select", "item-unselect", "option-select", "option-unselect", "dropdown-click", "clear", "complete", "before-show", "before-hide", "show", "hide"], inject: { @@ -1264,7 +2059,7 @@ var script$8 = { virtualScroller: null, searchTimeout: null, dirty: false, - data: /* @__PURE__ */ __name(function data3() { + data: /* @__PURE__ */ __name(function data4() { return { id: this.$attrs.id, clicked: false, @@ -1288,16 +2083,16 @@ var script$8 = { this.autoUpdateModel(); }, "suggestions") }, - mounted: /* @__PURE__ */ __name(function mounted2() { + mounted: /* @__PURE__ */ __name(function mounted3() { this.id = this.id || UniqueComponentId(); this.autoUpdateModel(); }, "mounted"), - updated: /* @__PURE__ */ __name(function updated() { + updated: /* @__PURE__ */ __name(function updated2() { if (this.overlayVisible) { this.alignOverlay(); } }, "updated"), - beforeUnmount: /* @__PURE__ */ __name(function beforeUnmount2() { + beforeUnmount: /* @__PURE__ */ __name(function beforeUnmount3() { this.unbindOutsideClickListener(); this.unbindResizeListener(); if (this.scrollHandler) { @@ -1370,7 +2165,7 @@ var script$8 = { _hide(); }, 0); }, "hide"), - onFocus: /* @__PURE__ */ __name(function onFocus(event) { + onFocus: /* @__PURE__ */ __name(function onFocus2(event) { if (this.disabled) { return; } @@ -1599,7 +2394,7 @@ var script$8 = { event.preventDefault(); } }, "onArrowUpKey"), - onArrowLeftKey: /* @__PURE__ */ __name(function onArrowLeftKey(event) { + onArrowLeftKey: /* @__PURE__ */ __name(function onArrowLeftKey2(event) { var target = event.currentTarget; this.focusedOptionIndex = -1; if (this.multiple) { @@ -1611,33 +2406,33 @@ var script$8 = { } } }, "onArrowLeftKey"), - onArrowRightKey: /* @__PURE__ */ __name(function onArrowRightKey(event) { + onArrowRightKey: /* @__PURE__ */ __name(function onArrowRightKey2(event) { this.focusedOptionIndex = -1; this.multiple && event.stopPropagation(); }, "onArrowRightKey"), - onHomeKey: /* @__PURE__ */ __name(function onHomeKey(event) { + onHomeKey: /* @__PURE__ */ __name(function onHomeKey2(event) { var currentTarget = event.currentTarget; var len = currentTarget.value.length; currentTarget.setSelectionRange(0, event.shiftKey ? len : 0); this.focusedOptionIndex = -1; event.preventDefault(); }, "onHomeKey"), - onEndKey: /* @__PURE__ */ __name(function onEndKey(event) { + onEndKey: /* @__PURE__ */ __name(function onEndKey2(event) { var currentTarget = event.currentTarget; var len = currentTarget.value.length; currentTarget.setSelectionRange(event.shiftKey ? 0 : len, len); this.focusedOptionIndex = -1; event.preventDefault(); }, "onEndKey"), - onPageUpKey: /* @__PURE__ */ __name(function onPageUpKey(event) { + onPageUpKey: /* @__PURE__ */ __name(function onPageUpKey2(event) { this.scrollInView(0); event.preventDefault(); }, "onPageUpKey"), - onPageDownKey: /* @__PURE__ */ __name(function onPageDownKey(event) { + onPageDownKey: /* @__PURE__ */ __name(function onPageDownKey2(event) { this.scrollInView(this.visibleOptions.length - 1); event.preventDefault(); }, "onPageDownKey"), - onEnterKey: /* @__PURE__ */ __name(function onEnterKey(event) { + onEnterKey: /* @__PURE__ */ __name(function onEnterKey2(event) { if (!this.typeahead) { if (this.multiple) { this.updateModel(event, [].concat(_toConsumableArray$1(this.modelValue || []), [event.target.value])); @@ -1868,7 +2663,7 @@ var script$8 = { removeOption: /* @__PURE__ */ __name(function removeOption(event, index) { var _this14 = this; var removedOption = this.modelValue[index]; - var value = this.modelValue.filter(function(_, i) { + var value = this.modelValue.filter(function(_2, i) { return i !== index; }).map(function(option2) { return _this14.getOptionValue(option2); @@ -1894,12 +2689,12 @@ var script$8 = { } } }, "changeFocusedOptionIndex"), - scrollInView: /* @__PURE__ */ __name(function scrollInView() { + scrollInView: /* @__PURE__ */ __name(function scrollInView2() { var _this15 = this; var index = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : -1; this.$nextTick(function() { - var id = index !== -1 ? "".concat(_this15.id, "_").concat(index) : _this15.focusedOptionId; - var element = findSingle(_this15.list, 'li[id="'.concat(id, '"]')); + var id2 = index !== -1 ? "".concat(_this15.id, "_").concat(index) : _this15.focusedOptionId; + var element = findSingle(_this15.list, 'li[id="'.concat(id2, '"]')); if (element) { element.scrollIntoView && element.scrollIntoView({ block: "nearest", @@ -2015,12 +2810,12 @@ var script$8 = { }, "hasFluid") }, components: { - InputText: script$f, - VirtualScroller: script$g, - Portal: script$h, - ChevronDownIcon: script$i, - SpinnerIcon: script$j, - Chip: script$k + InputText: script$i, + VirtualScroller: script$j, + Portal: script$k, + ChevronDownIcon: script$l, + SpinnerIcon: script$m, + Chip: script$n }, directives: { ripple: Ripple @@ -2078,15 +2873,15 @@ function _toPrimitive$4(t, r) { return ("string" === r ? String : Number)(t); } __name(_toPrimitive$4, "_toPrimitive$4"); -var _hoisted_1$e = ["aria-activedescendant"]; -var _hoisted_2$b = ["id", "aria-label", "aria-setsize", "aria-posinset"]; -var _hoisted_3$9 = ["id", "placeholder", "tabindex", "disabled", "aria-label", "aria-labelledby", "aria-expanded", "aria-controls", "aria-activedescendant", "aria-invalid"]; +var _hoisted_1$h = ["aria-activedescendant"]; +var _hoisted_2$e = ["id", "aria-label", "aria-setsize", "aria-posinset"]; +var _hoisted_3$c = ["id", "placeholder", "tabindex", "disabled", "aria-label", "aria-labelledby", "aria-expanded", "aria-controls", "aria-activedescendant", "aria-invalid"]; var _hoisted_4$4 = ["disabled", "aria-expanded", "aria-controls"]; var _hoisted_5$3 = ["id"]; var _hoisted_6$2 = ["id", "aria-label"]; var _hoisted_7$1 = ["id"]; var _hoisted_8$1 = ["id", "aria-label", "aria-selected", "aria-disabled", "aria-setsize", "aria-posinset", "onClick", "onMousemove", "data-p-selected", "data-p-focus", "data-p-disabled"]; -function render$a(_ctx, _cache, $props, $setup, $data, $options) { +function render$c(_ctx, _cache, $props, $setup, $data, $options) { var _component_InputText = resolveComponent("InputText"); var _component_Chip = resolveComponent("Chip"); var _component_SpinnerIcon = resolveComponent("SpinnerIcon"); @@ -2191,7 +2986,7 @@ function render$a(_ctx, _cache, $props, $setup, $data, $options) { }), _: 2 }, 1032, ["class", "label", "removeIcon", "unstyled", "onRemove", "pt"])]; - })], 16, _hoisted_2$b); + })], 16, _hoisted_2$e); }), 128)), createBaseVNode("li", mergeProps({ "class": _ctx.cx("inputChip"), role: "option" @@ -2229,7 +3024,7 @@ function render$a(_ctx, _cache, $props, $setup, $data, $options) { onChange: _cache[4] || (_cache[4] = function() { return $options.onChange && $options.onChange.apply($options, arguments); }) - }, _ctx.ptm("input")), null, 16, _hoisted_3$9)], 16)], 16, _hoisted_1$e)) : createCommentVNode("", true), $data.searching || _ctx.loading ? renderSlot(_ctx.$slots, _ctx.$slots.loader ? "loader" : "loadingicon", { + }, _ctx.ptm("input")), null, 16, _hoisted_3$c)], 16)], 16, _hoisted_1$h)) : createCommentVNode("", true), $data.searching || _ctx.loading ? renderSlot(_ctx.$slots, _ctx.$slots.loader ? "loader" : "loadingicon", { key: 2, "class": normalizeClass(_ctx.cx("loader")) }, function() { @@ -2358,7 +3153,7 @@ function render$a(_ctx, _cache, $props, $setup, $data, $options) { "aria-disabled": $options.isOptionDisabled(option2), "aria-setsize": $options.ariaSetSize, "aria-posinset": $options.getAriaPosInset($options.getOptionIndex(i, getItemOptions)), - onClick: /* @__PURE__ */ __name(function onClick($event) { + onClick: /* @__PURE__ */ __name(function onClick2($event) { return $options.onOptionSelect($event, option2); }, "onClick"), onMousemove: /* @__PURE__ */ __name(function onMousemove($event) { @@ -2409,15 +3204,15 @@ function render$a(_ctx, _cache, $props, $setup, $data, $options) { _: 3 }, 8, ["appendTo"])], 16); } -__name(render$a, "render$a"); -script$8.render = render$a; -const _sfc_main$g = { +__name(render$c, "render$c"); +script$7.render = render$c; +const _sfc_main$j = { name: "AutoCompletePlus", - extends: script$8, + extends: script$7, emits: ["focused-option-changed"], mounted() { - if (typeof script$8.mounted === "function") { - script$8.mounted.call(this); + if (typeof script$7.mounted === "function") { + script$7.mounted.call(this); } this.$watch( () => this.focusedOptionIndex, @@ -2427,10 +3222,10 @@ const _sfc_main$g = { ); } }; -const _withScopeId$5 = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-37f672ab"), n = n(), popScopeId(), n), "_withScopeId$5"); -const _hoisted_1$d = { class: "option-container flex justify-between items-center px-2 py-0 cursor-pointer overflow-hidden w-full" }; -const _hoisted_2$a = { class: "option-display-name font-semibold flex flex-col" }; -const _hoisted_3$8 = { key: 0 }; +const _withScopeId$5 = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-5741c9ae"), n = n(), popScopeId(), n), "_withScopeId$5"); +const _hoisted_1$g = { class: "option-container flex justify-between items-center px-2 py-0 cursor-pointer overflow-hidden w-full" }; +const _hoisted_2$d = { class: "option-display-name font-semibold flex flex-col" }; +const _hoisted_3$b = { key: 0 }; const _hoisted_4$3 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ createBaseVNode("i", { class: "pi pi-bookmark-fill text-sm mr-1" }, null, -1)); const _hoisted_5$2 = [ _hoisted_4$3 @@ -2443,7 +3238,7 @@ const _hoisted_9 = { class: "option-category font-light text-sm text-gray-400 overflow-hidden text-ellipsis whitespace-nowrap" }; const _hoisted_10 = { class: "option-badges" }; -const _sfc_main$f = /* @__PURE__ */ defineComponent({ +const _sfc_main$i = /* @__PURE__ */ defineComponent({ __name: "NodeSearchItem", props: { nodeDef: {}, @@ -2470,15 +3265,15 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({ ); const props = __props; return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", _hoisted_1$d, [ - createBaseVNode("div", _hoisted_2$a, [ + return openBlock(), createElementBlock("div", _hoisted_1$g, [ + createBaseVNode("div", _hoisted_2$d, [ createBaseVNode("div", null, [ - isBookmarked.value ? (openBlock(), createElementBlock("span", _hoisted_3$8, _hoisted_5$2)) : createCommentVNode("", true), + isBookmarked.value ? (openBlock(), createElementBlock("span", _hoisted_3$b, _hoisted_5$2)) : createCommentVNode("", true), createBaseVNode("span", { innerHTML: unref(highlightQuery)(_ctx.nodeDef.display_name, _ctx.currentQuery) }, null, 8, _hoisted_6$1), _hoisted_7, - showIdName.value ? (openBlock(), createBlock(unref(script$l), { + showIdName.value ? (openBlock(), createBlock(unref(script$o), { key: 1, severity: "secondary" }, { @@ -2493,22 +3288,22 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({ showCategory.value ? (openBlock(), createElementBlock("div", _hoisted_9, toDisplayString(_ctx.nodeDef.category.replaceAll("/", " > ")), 1)) : createCommentVNode("", true) ]), createBaseVNode("div", _hoisted_10, [ - _ctx.nodeDef.experimental ? (openBlock(), createBlock(unref(script$l), { + _ctx.nodeDef.experimental ? (openBlock(), createBlock(unref(script$o), { key: 0, - value: _ctx.$t("experimental"), + value: _ctx.$t("g.experimental"), severity: "primary" }, null, 8, ["value"])) : createCommentVNode("", true), - _ctx.nodeDef.deprecated ? (openBlock(), createBlock(unref(script$l), { + _ctx.nodeDef.deprecated ? (openBlock(), createBlock(unref(script$o), { key: 1, - value: _ctx.$t("deprecated"), + value: _ctx.$t("g.deprecated"), severity: "danger" }, null, 8, ["value"])) : createCommentVNode("", true), - showNodeFrequency.value && nodeFrequency.value > 0 ? (openBlock(), createBlock(unref(script$l), { + showNodeFrequency.value && nodeFrequency.value > 0 ? (openBlock(), createBlock(unref(script$o), { key: 2, value: unref(formatNumberWithSuffix)(nodeFrequency.value, { roundToInt: true }), severity: "secondary" }, null, 8, ["value"])) : createCommentVNode("", true), - _ctx.nodeDef.nodeSource.type !== unref(NodeSourceType).Unknown ? (openBlock(), createBlock(unref(script$k), { + _ctx.nodeDef.nodeSource.type !== unref(NodeSourceType).Unknown ? (openBlock(), createBlock(unref(script$n), { key: 3, class: "text-sm font-light" }, { @@ -2522,16 +3317,15 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({ }; } }); -const NodeSearchItem = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-37f672ab"]]); -const _withScopeId$4 = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-2d409367"), n = n(), popScopeId(), n), "_withScopeId$4"); -const _hoisted_1$c = { class: "comfy-vue-node-search-container" }; -const _hoisted_2$9 = { +const NodeSearchItem = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-5741c9ae"]]); +const _hoisted_1$f = { class: "comfy-vue-node-search-container flex justify-center items-center w-full min-w-96 pointer-events-auto" }; +const _hoisted_2$c = { key: 0, - class: "comfy-vue-node-preview-container" + class: "comfy-vue-node-preview-container absolute left-[-350px] top-[50px]" }; -const _hoisted_3$7 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("h3", null, "Add node filter condition", -1)); +const _hoisted_3$a = /* @__PURE__ */ createBaseVNode("h3", null, "Add node filter condition", -1); const _hoisted_4$2 = { class: "_dialog-body" }; -const _sfc_main$e = /* @__PURE__ */ defineComponent({ +const _sfc_main$h = /* @__PURE__ */ defineComponent({ __name: "NodeSearchBox", props: { filters: {}, @@ -2551,7 +3345,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({ const hoveredSuggestion = ref(null); const currentQuery = ref(""); const placeholder = computed(() => { - return props.filters.length === 0 ? t("searchNodes") + "..." : ""; + return props.filters.length === 0 ? t("g.searchNodes") + "..." : ""; }); const nodeDefStore = useNodeDefStore(); const nodeFrequencyStore = useNodeFrequencyStore(); @@ -2565,11 +3359,12 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({ ]; }, "search"); const emit = __emit; + let inputElement = null; const reFocusInput = /* @__PURE__ */ __name(() => { - const inputElement = document.getElementById(inputId); + inputElement ??= document.getElementById(inputId); if (inputElement) { inputElement.blur(); - inputElement.focus(); + nextTick(() => inputElement?.focus()); } }, "reFocusInput"); onMounted(reFocusInput); @@ -2593,8 +3388,8 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({ hoveredSuggestion.value = value; }, "setHoverSuggestion"); return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", _hoisted_1$c, [ - enableNodePreview.value ? (openBlock(), createElementBlock("div", _hoisted_2$9, [ + return openBlock(), createElementBlock("div", _hoisted_1$f, [ + enableNodePreview.value ? (openBlock(), createElementBlock("div", _hoisted_2$c, [ hoveredSuggestion.value ? (openBlock(), createBlock(NodePreview, { nodeDef: hoveredSuggestion.value, key: hoveredSuggestion.value?.name || "" @@ -2603,16 +3398,16 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({ createVNode(unref(script$d), { icon: "pi pi-filter", severity: "secondary", - class: "_filter-button", + class: "filter-button z-10", onClick: _cache[0] || (_cache[0] = ($event) => nodeSearchFilterVisible.value = true) }), - createVNode(unref(script$m), { + createVNode(unref(script$p), { visible: nodeSearchFilterVisible.value, "onUpdate:visible": _cache[1] || (_cache[1] = ($event) => nodeSearchFilterVisible.value = $event), - class: "_dialog" + class: "min-w-96" }, { header: withCtx(() => [ - _hoisted_3$7 + _hoisted_3$a ]), default: withCtx(() => [ createBaseVNode("div", _hoisted_4$2, [ @@ -2621,9 +3416,9 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({ ]), _: 1 }, 8, ["visible"]), - createVNode(_sfc_main$g, { + createVNode(_sfc_main$j, { "model-value": props.filters, - class: "comfy-vue-node-search-box", + class: "comfy-vue-node-search-box z-10 flex-grow", scrollHeight: "40vh", placeholder: placeholder.value, "input-id": inputId, @@ -2648,12 +3443,13 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({ }, null, 8, ["nodeDef", "currentQuery"]) ]), chip: withCtx(({ value }) => [ - createVNode(SearchFilterChip, { + (openBlock(), createBlock(SearchFilterChip, { + key: `${value[0].id}-${value[1]}`, onRemove: /* @__PURE__ */ __name(($event) => onRemoveFilter($event, value), "onRemove"), text: value[1], badge: value[0].invokeSequence.toUpperCase(), "badge-class": value[0].invokeSequence + "-badge" - }, null, 8, ["onRemove", "text", "badge", "badge-class"]) + }, null, 8, ["onRemove", "text", "badge", "badge-class"])) ]), _: 1 }, 8, ["model-value", "placeholder", "suggestions", "loading"]) @@ -2661,72 +3457,17 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({ }; } }); -const NodeSearchBox = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-2d409367"]]); -class ConnectingLinkImpl { - static { - __name(this, "ConnectingLinkImpl"); - } - node; - slot; - input; - output; - pos; - constructor(node, slot, input, output, pos) { - this.node = node; - this.slot = slot; - this.input = input; - this.output = output; - this.pos = pos; - } - static createFromPlainObject(obj) { - return new ConnectingLinkImpl( - obj.node, - obj.slot, - obj.input, - obj.output, - obj.pos - ); - } - get type() { - const result = this.input ? this.input.type : this.output.type; - return result === -1 ? null : result; - } - /** - * Which slot type is release and need to be reconnected. - * - 'output' means we need a new node's outputs slot to connect with this link - */ - get releaseSlotType() { - return this.output ? "input" : "output"; - } - connectTo(newNode) { - const newNodeSlots = this.releaseSlotType === "output" ? newNode.outputs : newNode.inputs; - if (!newNodeSlots) return; - const newNodeSlot = newNodeSlots.findIndex( - (slot) => LiteGraph.isValidConnection(slot.type, this.type) - ); - if (newNodeSlot === -1) { - console.warn( - `Could not find slot with type ${this.type} on node ${newNode.title}. This should never happen` - ); - return; - } - if (this.releaseSlotType === "input") { - this.node.connect(this.slot, newNode, newNodeSlot); - } else { - newNode.connect(newNodeSlot, this.node, this.slot); - } - } -} -const _sfc_main$d = /* @__PURE__ */ defineComponent({ +const _sfc_main$g = /* @__PURE__ */ defineComponent({ __name: "NodeSearchBoxPopover", setup(__props) { const settingStore = useSettingStore(); - const visible = ref(false); + const litegraphService = useLitegraphService(); + const { visible } = storeToRefs(useSearchBoxStore()); const dismissable = ref(true); const triggerEvent = ref(null); const getNewNodeLocation = /* @__PURE__ */ __name(() => { - if (triggerEvent.value === null) { - return [100, 100]; + if (!triggerEvent.value) { + return litegraphService.getCanvasCenter(); } const originalEvent = triggerEvent.value.detail.originalEvent; return [originalEvent.canvasX, originalEvent.canvasY]; @@ -2747,9 +3488,11 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({ visible.value = false; }, "closeDialog"); const addNode = /* @__PURE__ */ __name((nodeDef) => { - const node = app.addNodeOnGraph(nodeDef, { pos: getNewNodeLocation() }); - const eventDetail = triggerEvent.value.detail; - if (eventDetail.subType === "empty-release") { + const node = litegraphService.addNodeOnGraph(nodeDef, { + pos: getNewNodeLocation() + }); + const eventDetail = triggerEvent.value?.detail; + if (eventDetail && eventDetail.subType === "empty-release") { eventDetail.linkReleaseContext.links.forEach((link) => { ConnectingLinkImpl.createFromPlainObject(link).connectTo(node); }); @@ -2762,8 +3505,9 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({ () => settingStore.get("Comfy.NodeSearchBoxImpl") === "default" ); const showSearchBox = /* @__PURE__ */ __name((e) => { + const detail = e.detail; if (newSearchBoxEnabled.value) { - if (e.detail.originalEvent?.pointerType === "touch") { + if (detail.originalEvent?.pointerType === "touch") { setTimeout(() => { showNewSearchBox(e); }, 128); @@ -2771,12 +3515,12 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({ showNewSearchBox(e); } } else { - canvasStore.canvas.showSearchBox(e.detail.originalEvent); + canvasStore.canvas.showSearchBox(detail.originalEvent); } }, "showSearchBox"); const nodeDefStore = useNodeDefStore(); const showNewSearchBox = /* @__PURE__ */ __name((e) => { - if (e.detail.linkReleaseContext) { + if (e.detail.subType === "empty-release") { const links = e.detail.linkReleaseContext.links; if (links.length === 0) { console.warn("Empty release with no links! This should never happen"); @@ -2786,7 +3530,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({ const filter = nodeDefStore.nodeSearchService.getFilterById( firstLink.releaseSlotType ); - const dataType = firstLink.type; + const dataType = firstLink.type.toString(); addFilter([filter, dataType]); } visible.value = true; @@ -2797,6 +3541,9 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({ }, 300); }, "showNewSearchBox"); const showContextMenu = /* @__PURE__ */ __name((e) => { + if (e.detail.subType !== "empty-release") { + return; + } const links = e.detail.linkReleaseContext.links; if (links.length === 0) { console.warn("Empty release with no links! This should never happen"); @@ -2809,7 +3556,15 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({ allow_searchbox: true, showSearchBox: /* @__PURE__ */ __name(() => showSearchBox(e), "showSearchBox") }; - const connectionOptions = firstLink.output ? { nodeFrom: firstLink.node, slotFrom: firstLink.output } : { nodeTo: firstLink.node, slotTo: firstLink.input }; + const connectionOptions = firstLink.output ? { + nodeFrom: firstLink.node, + slotFrom: firstLink.output, + afterRerouteId: firstLink.afterRerouteId + } : { + nodeTo: firstLink.node, + slotTo: firstLink.input, + afterRerouteId: firstLink.afterRerouteId + }; canvasStore.canvas.showConnectionMenu({ ...connectionOptions, ...commonOptions @@ -2843,8 +3598,8 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({ return settingStore.get("Comfy.LinkRelease.ActionShift"); }); const handleCanvasEmptyRelease = /* @__PURE__ */ __name((e) => { - const originalEvent = e.detail.originalEvent; - const shiftPressed = originalEvent.shiftKey; + const detail = e.detail; + const shiftPressed = detail.originalEvent.shiftKey; const action = shiftPressed ? linkReleaseActionShift.value : linkReleaseAction.value; switch (action) { case LinkReleaseTriggerAction.SEARCH_BOX: @@ -2858,17 +3613,12 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({ break; } }, "handleCanvasEmptyRelease"); - onMounted(() => { - document.addEventListener("litegraph:canvas", canvasEventHandler); - }); - onUnmounted(() => { - document.removeEventListener("litegraph:canvas", canvasEventHandler); - }); + useEventListener(document, "litegraph:canvas", canvasEventHandler); return (_ctx, _cache) => { return openBlock(), createElementBlock("div", null, [ - createVNode(unref(script$m), { - visible: visible.value, - "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => visible.value = $event), + createVNode(unref(script$p), { + visible: unref(visible), + "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => isRef(visible) ? visible.value = $event : null), modal: "", "dismissable-mask": dismissable.value, onHide: clearFilters, @@ -2888,7 +3638,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({ } }, { container: withCtx(() => [ - createVNode(NodeSearchBox, { + createVNode(_sfc_main$h, { filters: nodeFilters.value, onAddFilter: addFilter, onRemoveFilter: removeFilter, @@ -2901,287 +3651,912 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({ }; } }); -const _sfc_main$c = /* @__PURE__ */ defineComponent({ - __name: "NodeTooltip", - setup(__props) { - let idleTimeout; - const nodeDefStore = useNodeDefStore(); - const tooltipRef = ref(); - const tooltipText = ref(""); - const left = ref(); - const top = ref(); - const getHoveredWidget = /* @__PURE__ */ __name(() => { - const node = app.canvas.node_over; - if (!node.widgets) return; - const graphPos = app.canvas.graph_mouse; - const x = graphPos[0] - node.pos[0]; - const y = graphPos[1] - node.pos[1]; - for (const w of node.widgets) { - let widgetWidth, widgetHeight; - if (w.computeSize) { - ; - [widgetWidth, widgetHeight] = w.computeSize(node.size[0]); - } else { - widgetWidth = w.width || node.size[0]; - widgetHeight = LiteGraph.NODE_WIDGET_HEIGHT; - } - if (w.last_y !== void 0 && x >= 6 && x <= widgetWidth - 12 && y >= w.last_y && y <= w.last_y + widgetHeight) { - return w; - } - } - }, "getHoveredWidget"); - const hideTooltip = /* @__PURE__ */ __name(() => tooltipText.value = null, "hideTooltip"); - const showTooltip = /* @__PURE__ */ __name(async (tooltip) => { - if (!tooltip) return; - left.value = app.canvas.mouse[0] + "px"; - top.value = app.canvas.mouse[1] + "px"; - tooltipText.value = tooltip; - await nextTick(); - const rect = tooltipRef.value.getBoundingClientRect(); - if (rect.right > window.innerWidth) { - left.value = app.canvas.mouse[0] - rect.width + "px"; - } - if (rect.top < 0) { - top.value = app.canvas.mouse[1] + rect.height + "px"; - } - }, "showTooltip"); - const onIdle = /* @__PURE__ */ __name(() => { - const { canvas } = app; - const node = canvas.node_over; - if (!node) return; - const ctor = node.constructor; - const nodeDef = nodeDefStore.nodeDefsByName[node.type]; - if (ctor.title_mode !== LiteGraph.NO_TITLE && canvas.graph_mouse[1] < node.pos[1]) { - return showTooltip(nodeDef.description); - } - if (node.flags?.collapsed) return; - const inputSlot = canvas.isOverNodeInput( - node, - canvas.graph_mouse[0], - canvas.graph_mouse[1], - [0, 0] - ); - if (inputSlot !== -1) { - const inputName = node.inputs[inputSlot].name; - return showTooltip(nodeDef.input.getInput(inputName)?.tooltip); - } - const outputSlot = canvas.isOverNodeOutput( - node, - canvas.graph_mouse[0], - canvas.graph_mouse[1], - [0, 0] - ); - if (outputSlot !== -1) { - return showTooltip(nodeDef.output.all?.[outputSlot]?.tooltip); - } - const widget = getHoveredWidget(); - if (widget && !widget.element) { - return showTooltip( - widget.tooltip ?? nodeDef.input.getInput(widget.name)?.tooltip - ); - } - }, "onIdle"); - const onMouseMove = /* @__PURE__ */ __name((e) => { - hideTooltip(); - clearTimeout(idleTimeout); - if (e.target.nodeName !== "CANVAS") return; - idleTimeout = window.setTimeout(onIdle, 500); - }, "onMouseMove"); - useEventListener(window, "mousemove", onMouseMove); - useEventListener(window, "click", hideTooltip); - return (_ctx, _cache) => { - return tooltipText.value ? (openBlock(), createElementBlock("div", { - key: 0, - ref_key: "tooltipRef", - ref: tooltipRef, - class: "node-tooltip", - style: normalizeStyle({ left: left.value, top: top.value }) - }, toDisplayString(tooltipText.value), 5)) : createCommentVNode("", true); - }; - } -}); -const NodeTooltip = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-79ec8c53"]]); -const _hoisted_1$b = { - viewBox: "0 0 1024 1024", - width: "1.2em", - height: "1.2em" -}; -const _hoisted_2$8 = /* @__PURE__ */ createBaseVNode("path", { - fill: "currentColor", - d: "M921.088 103.232L584.832 889.024L465.52 544.512L121.328 440.48zM1004.46.769c-6.096 0-13.52 1.728-22.096 5.36L27.708 411.2c-34.383 14.592-36.56 42.704-4.847 62.464l395.296 123.584l129.36 403.264c9.28 15.184 20.496 22.72 31.263 22.72c11.936 0 23.296-9.152 31.04-27.248l408.272-953.728C1029.148 16.368 1022.86.769 1004.46.769" -}, null, -1); -const _hoisted_3$6 = [ - _hoisted_2$8 -]; -function render$9(_ctx, _cache) { - return openBlock(), createElementBlock("svg", _hoisted_1$b, [..._hoisted_3$6]); -} -__name(render$9, "render$9"); -const __unplugin_components_1 = markRaw({ name: "simple-line-icons-cursor", render: render$9 }); -const _hoisted_1$a = { - viewBox: "0 0 24 24", - width: "1.2em", - height: "1.2em" -}; -const _hoisted_2$7 = /* @__PURE__ */ createBaseVNode("path", { - fill: "currentColor", - d: "M10.05 23q-.75 0-1.4-.337T7.575 21.7L1.2 12.375l.6-.575q.475-.475 1.125-.55t1.175.3L7 13.575V4q0-.425.288-.712T8 3t.713.288T9 4v13.425l-3.7-2.6l3.925 5.725q.125.2.35.325t.475.125H17q.825 0 1.413-.587T19 19V5q0-.425.288-.712T20 4t.713.288T21 5v14q0 1.65-1.175 2.825T17 23zM11 12V2q0-.425.288-.712T12 1t.713.288T13 2v10zm4 0V3q0-.425.288-.712T16 2t.713.288T17 3v9zm-2.85 4.5" -}, null, -1); -const _hoisted_3$5 = [ - _hoisted_2$7 -]; -function render$8(_ctx, _cache) { - return openBlock(), createElementBlock("svg", _hoisted_1$a, [..._hoisted_3$5]); -} -__name(render$8, "render$8"); -const __unplugin_components_0$1 = markRaw({ name: "material-symbols-pan-tool-outline", render: render$8 }); -var theme$5 = /* @__PURE__ */ __name(function theme4(_ref) { - _ref.dt; - return "\n.p-buttongroup .p-button {\n margin: 0;\n}\n\n.p-buttongroup .p-button:not(:last-child),\n.p-buttongroup .p-button:not(:last-child):hover {\n border-right: 0 none;\n}\n\n.p-buttongroup .p-button:not(:first-of-type):not(:last-of-type) {\n border-radius: 0;\n}\n\n.p-buttongroup .p-button:first-of-type:not(:only-of-type) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.p-buttongroup .p-button:last-of-type:not(:only-of-type) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.p-buttongroup .p-button:focus {\n position: relative;\n z-index: 1;\n}\n"; +var theme$4 = /* @__PURE__ */ __name(function theme4(_ref) { + var dt = _ref.dt; + return "\n.p-overlaybadge {\n position: relative;\n}\n\n.p-overlaybadge .p-badge {\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n transform-origin: 100% 0;\n margin: 0;\n outline-width: ".concat(dt("overlaybadge.outline.width"), ";\n outline-style: solid;\n outline-color: ").concat(dt("overlaybadge.outline.color"), ";\n}\n"); }, "theme"); -var classes$5 = { - root: "p-buttongroup p-component" +var classes$4 = { + root: "p-overlaybadge" }; -var ButtonGroupStyle = BaseStyle.extend({ - name: "buttongroup", - theme: theme$5, - classes: classes$5 +var OverlayBadgeStyle = BaseStyle.extend({ + name: "overlaybadge", + theme: theme$4, + classes: classes$4 }); -var script$1$5 = { - name: "BaseButtonGroup", - "extends": script$e, - style: ButtonGroupStyle, - provide: /* @__PURE__ */ __name(function provide6() { +var script$1$4 = { + name: "OverlayBadge", + "extends": script$q, + style: OverlayBadgeStyle, + provide: /* @__PURE__ */ __name(function provide8() { return { - $pcButtonGroup: this, + $pcOverlayBadge: this, $parentInstance: this }; }, "provide") }; -var script$7 = { - name: "ButtonGroup", - "extends": script$1$5, - inheritAttrs: false +var script$6 = { + name: "OverlayBadge", + "extends": script$1$4, + inheritAttrs: false, + components: { + Badge: script$q + } }; -function render$7(_ctx, _cache, $props, $setup, $data, $options) { - return openBlock(), createElementBlock("span", mergeProps({ - "class": _ctx.cx("root"), - role: "group" - }, _ctx.ptmi("root")), [renderSlot(_ctx.$slots, "default")], 16); +function render$b(_ctx, _cache, $props, $setup, $data, $options) { + var _component_Badge = resolveComponent("Badge"); + return openBlock(), createElementBlock("div", mergeProps({ + "class": _ctx.cx("root") + }, _ctx.ptmi("root")), [renderSlot(_ctx.$slots, "default"), createVNode(_component_Badge, mergeProps(_ctx.$props, { + pt: _ctx.ptm("pcBadge") + }), null, 16, ["pt"])], 16); } -__name(render$7, "render$7"); -script$7.render = render$7; -const _sfc_main$b = /* @__PURE__ */ defineComponent({ - __name: "GraphCanvasMenu", - setup(__props) { - const { t } = useI18n(); - const commandStore = useCommandStore(); - const canvasStore = useCanvasStore(); - const settingStore = useSettingStore(); - const linkHidden = computed( - () => settingStore.get("Comfy.LinkRenderMode") === LiteGraph.HIDDEN_LINK +__name(render$b, "render$b"); +script$6.render = render$b; +const _sfc_main$f = /* @__PURE__ */ defineComponent({ + __name: "SidebarIcon", + props: { + icon: String, + selected: Boolean, + tooltip: { + type: String, + default: "" + }, + class: { + type: String, + default: "" + }, + iconBadge: { + type: [String, Function], + default: "" + } + }, + emits: ["click"], + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const overlayValue = computed( + () => typeof props.iconBadge === "function" ? props.iconBadge() || "" : props.iconBadge ); - let interval = null; - const repeat2 = /* @__PURE__ */ __name((command) => { - if (interval) return; - const cmd = /* @__PURE__ */ __name(() => commandStore.execute(command), "cmd"); - cmd(); - interval = window.setInterval(cmd, 100); - }, "repeat"); - const stopRepeat = /* @__PURE__ */ __name(() => { - if (interval) { - clearInterval(interval); - interval = null; - } - }, "stopRepeat"); + const shouldShowBadge = computed(() => !!overlayValue.value); return (_ctx, _cache) => { - const _component_i_material_symbols58pan_tool_outline = __unplugin_components_0$1; - const _component_i_simple_line_icons58cursor = __unplugin_components_1; const _directive_tooltip = resolveDirective("tooltip"); - return openBlock(), createBlock(unref(script$7), { class: "p-buttongroup-vertical absolute bottom-[10px] right-[10px] z-[1000] pointer-events-auto" }, { - default: withCtx(() => [ - withDirectives(createVNode(unref(script$d), { - severity: "secondary", - icon: "pi pi-plus", - onMousedown: _cache[0] || (_cache[0] = ($event) => repeat2("Comfy.Canvas.ZoomIn")), - onMouseup: stopRepeat - }, null, 512), [ - [ - _directive_tooltip, - unref(t)("graphCanvasMenu.zoomIn"), - void 0, - { left: true } - ] - ]), - withDirectives(createVNode(unref(script$d), { - severity: "secondary", - icon: "pi pi-minus", - onMousedown: _cache[1] || (_cache[1] = ($event) => repeat2("Comfy.Canvas.ZoomOut")), - onMouseup: stopRepeat - }, null, 512), [ - [ - _directive_tooltip, - unref(t)("graphCanvasMenu.zoomOut"), - void 0, - { left: true } - ] - ]), - withDirectives(createVNode(unref(script$d), { - severity: "secondary", - icon: "pi pi-expand", - onClick: _cache[2] || (_cache[2] = () => unref(commandStore).execute("Comfy.Canvas.ResetView")) - }, null, 512), [ - [ - _directive_tooltip, - unref(t)("graphCanvasMenu.resetView"), - void 0, - { left: true } - ] - ]), - withDirectives((openBlock(), createBlock(unref(script$d), { - severity: "secondary", - onClick: _cache[3] || (_cache[3] = () => unref(commandStore).execute("Comfy.Canvas.ToggleLock")) + return withDirectives((openBlock(), createBlock(unref(script$d), { + class: normalizeClass(props.class), + text: "", + pt: { + root: { + class: `side-bar-button ${props.selected ? "p-button-primary side-bar-button-selected" : "p-button-secondary"}`, + "aria-label": props.tooltip + } + }, + onClick: _cache[0] || (_cache[0] = ($event) => emit("click", $event)) + }, { + icon: withCtx(() => [ + shouldShowBadge.value ? (openBlock(), createBlock(unref(script$6), { + key: 0, + value: overlayValue.value }, { - icon: withCtx(() => [ - unref(canvasStore).canvas?.read_only ? (openBlock(), createBlock(_component_i_material_symbols58pan_tool_outline, { key: 0 })) : (openBlock(), createBlock(_component_i_simple_line_icons58cursor, { key: 1 })) + default: withCtx(() => [ + createBaseVNode("i", { + class: normalizeClass(props.icon + " side-bar-button-icon") + }, null, 2) ]), _: 1 - })), [ - [ - _directive_tooltip, - unref(t)( - "graphCanvasMenu." + (unref(canvasStore).canvas?.read_only ? "panMode" : "selectMode") - ) + " (Space)", - void 0, - { left: true } - ] - ]), - withDirectives(createVNode(unref(script$d), { - severity: "secondary", - icon: linkHidden.value ? "pi pi-eye-slash" : "pi pi-eye", - onClick: _cache[4] || (_cache[4] = () => unref(commandStore).execute("Comfy.Canvas.ToggleLinkVisibility")), - "data-testid": "toggle-link-visibility-button" - }, null, 8, ["icon"]), [ - [ - _directive_tooltip, - unref(t)("graphCanvasMenu.toggleLinkVisibility"), - void 0, - { left: true } - ] - ]) + }, 8, ["value"])) : (openBlock(), createElementBlock("i", { + key: 1, + class: normalizeClass(props.icon + " side-bar-button-icon") + }, null, 2)) ]), _: 1 - }); + }, 8, ["class", "pt"])), [ + [_directive_tooltip, { value: props.tooltip, showDelay: 300, hideDelay: 300 }] + ]); }; } }); -const GraphCanvasMenu = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-444d3768"]]); +const SidebarIcon = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-6ab4daa6"]]); +const _sfc_main$e = /* @__PURE__ */ defineComponent({ + __name: "SidebarLogoutIcon", + setup(__props) { + const { t } = useI18n(); + const userStore = useUserStore(); + const tooltip = computed( + () => `${t("sideToolbar.logout")} (${userStore.currentUser?.username})` + ); + const logout = /* @__PURE__ */ __name(() => { + userStore.logout(); + window.location.reload(); + }, "logout"); + return (_ctx, _cache) => { + return openBlock(), createBlock(SidebarIcon, { + icon: "pi pi-sign-out", + tooltip: tooltip.value, + onClick: logout + }, null, 8, ["tooltip"]); + }; + } +}); +const _sfc_main$d = /* @__PURE__ */ defineComponent({ + __name: "SidebarSettingsToggleIcon", + setup(__props) { + const dialogStore = useDialogStore(); + const showSetting = /* @__PURE__ */ __name(() => { + dialogStore.showDialog({ + key: "global-settings", + headerComponent: SettingDialogHeader, + component: SettingDialogContent + }); + }, "showSetting"); + return (_ctx, _cache) => { + return openBlock(), createBlock(SidebarIcon, { + icon: "pi pi-cog", + class: "comfy-settings-btn", + onClick: showSetting, + tooltip: _ctx.$t("g.settings") + }, null, 8, ["tooltip"]); + }; + } +}); +const _sfc_main$c = /* @__PURE__ */ defineComponent({ + __name: "SidebarThemeToggleIcon", + setup(__props) { + const settingStore = useSettingStore(); + const currentTheme = computed(() => settingStore.get("Comfy.ColorPalette")); + const icon = computed( + () => currentTheme.value !== "light" ? "pi pi-moon" : "pi pi-sun" + ); + const commandStore = useCommandStore(); + const toggleTheme = /* @__PURE__ */ __name(() => { + commandStore.execute("Comfy.ToggleTheme"); + }, "toggleTheme"); + return (_ctx, _cache) => { + return openBlock(), createBlock(SidebarIcon, { + icon: icon.value, + onClick: toggleTheme, + tooltip: _ctx.$t("sideToolbar.themeToggle"), + class: "comfy-vue-theme-toggle" + }, null, 8, ["icon", "tooltip"]); + }; + } +}); +const _withScopeId$4 = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-37d8d7b4"), n = n(), popScopeId(), n), "_withScopeId$4"); +const _hoisted_1$e = { class: "side-tool-bar-end" }; +const _hoisted_2$b = { + key: 0, + class: "sidebar-content-container h-full overflow-y-auto overflow-x-hidden" +}; +const _sfc_main$b = /* @__PURE__ */ defineComponent({ + __name: "SideToolbar", + setup(__props) { + const workspaceStore = useWorkspaceStore(); + const settingStore = useSettingStore(); + const userStore = useUserStore(); + const teleportTarget = computed( + () => settingStore.get("Comfy.Sidebar.Location") === "left" ? ".comfyui-body-left" : ".comfyui-body-right" + ); + const isSmall = computed( + () => settingStore.get("Comfy.Sidebar.Size") === "small" + ); + const tabs = computed(() => workspaceStore.getSidebarTabs()); + const selectedTab = computed(() => workspaceStore.sidebarTab.activeSidebarTab); + const onTabClick = /* @__PURE__ */ __name((item3) => { + workspaceStore.sidebarTab.toggleSidebarTab(item3.id); + }, "onTabClick"); + const keybindingStore = useKeybindingStore(); + const getTabTooltipSuffix = /* @__PURE__ */ __name((tab) => { + const keybinding = keybindingStore.getKeybindingByCommandId( + `Workspace.ToggleSidebarTab.${tab.id}` + ); + return keybinding ? ` (${keybinding.combo.toString()})` : ""; + }, "getTabTooltipSuffix"); + return (_ctx, _cache) => { + return openBlock(), createElementBlock(Fragment, null, [ + (openBlock(), createBlock(Teleport, { to: teleportTarget.value }, [ + createBaseVNode("nav", { + class: normalizeClass("side-tool-bar-container" + (isSmall.value ? " small-sidebar" : "")) + }, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(tabs.value, (tab) => { + return openBlock(), createBlock(SidebarIcon, { + key: tab.id, + icon: tab.icon, + iconBadge: tab.iconBadge, + tooltip: tab.tooltip + getTabTooltipSuffix(tab), + selected: tab.id === selectedTab.value?.id, + class: normalizeClass(tab.id + "-tab-button"), + onClick: /* @__PURE__ */ __name(($event) => onTabClick(tab), "onClick") + }, null, 8, ["icon", "iconBadge", "tooltip", "selected", "class", "onClick"]); + }), 128)), + createBaseVNode("div", _hoisted_1$e, [ + unref(userStore).isMultiUserServer ? (openBlock(), createBlock(_sfc_main$e, { key: 0 })) : createCommentVNode("", true), + createVNode(_sfc_main$c), + createVNode(_sfc_main$d) + ]) + ], 2) + ], 8, ["to"])), + selectedTab.value ? (openBlock(), createElementBlock("div", _hoisted_2$b, [ + createVNode(_sfc_main$p, { extension: selectedTab.value }, null, 8, ["extension"]) + ])) : createCommentVNode("", true) + ], 64); + }; + } +}); +const SideToolbar = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-37d8d7b4"]]); +const CORE_SETTINGS = [ + { + id: "Comfy.Validation.Workflows", + name: "Validate workflows", + type: "boolean", + defaultValue: true + }, + { + id: "Comfy.NodeSearchBoxImpl", + category: ["Comfy", "Node Search Box", "Implementation"], + experimental: true, + name: "Node search box implementation", + type: "combo", + options: ["default", "litegraph (legacy)"], + defaultValue: "default" + }, + { + id: "Comfy.LinkRelease.Action", + category: ["LiteGraph", "LinkRelease", "Action"], + name: "Action on link release (No modifier)", + type: "combo", + options: Object.values(LinkReleaseTriggerAction), + defaultValue: LinkReleaseTriggerAction.CONTEXT_MENU + }, + { + id: "Comfy.LinkRelease.ActionShift", + category: ["LiteGraph", "LinkRelease", "ActionShift"], + name: "Action on link release (Shift)", + type: "combo", + options: Object.values(LinkReleaseTriggerAction), + defaultValue: LinkReleaseTriggerAction.SEARCH_BOX + }, + { + id: "Comfy.NodeSearchBoxImpl.NodePreview", + category: ["Comfy", "Node Search Box", "NodePreview"], + name: "Node preview", + tooltip: "Only applies to the default implementation", + type: "boolean", + defaultValue: true + }, + { + id: "Comfy.NodeSearchBoxImpl.ShowCategory", + category: ["Comfy", "Node Search Box", "ShowCategory"], + name: "Show node category in search results", + tooltip: "Only applies to the default implementation", + type: "boolean", + defaultValue: true + }, + { + id: "Comfy.NodeSearchBoxImpl.ShowIdName", + category: ["Comfy", "Node Search Box", "ShowIdName"], + name: "Show node id name in search results", + tooltip: "Only applies to the default implementation", + type: "boolean", + defaultValue: false + }, + { + id: "Comfy.NodeSearchBoxImpl.ShowNodeFrequency", + category: ["Comfy", "Node Search Box", "ShowNodeFrequency"], + name: "Show node frequency in search results", + tooltip: "Only applies to the default implementation", + type: "boolean", + defaultValue: false + }, + { + id: "Comfy.Sidebar.Location", + category: ["Appearance", "Sidebar", "Location"], + name: "Sidebar location", + type: "combo", + options: ["left", "right"], + defaultValue: "left" + }, + { + id: "Comfy.Sidebar.Size", + category: ["Appearance", "Sidebar", "Size"], + name: "Sidebar size", + type: "combo", + options: ["normal", "small"], + defaultValue: /* @__PURE__ */ __name(() => window.innerWidth < 1600 ? "small" : "normal", "defaultValue") + }, + { + id: "Comfy.TextareaWidget.FontSize", + category: ["Appearance", "Node Widget", "TextareaWidget", "FontSize"], + name: "Textarea widget font size", + type: "slider", + defaultValue: 10, + attrs: { + min: 8, + max: 24 + } + }, + { + id: "Comfy.TextareaWidget.Spellcheck", + category: ["Comfy", "Node Widget", "TextareaWidget", "Spellcheck"], + name: "Textarea widget spellcheck", + type: "boolean", + defaultValue: false + }, + { + id: "Comfy.Workflow.SortNodeIdOnSave", + name: "Sort node IDs when saving workflow", + type: "boolean", + defaultValue: false + }, + { + id: "Comfy.Graph.CanvasInfo", + category: ["LiteGraph", "Canvas", "CanvasInfo"], + name: "Show canvas info on bottom left corner (fps, etc.)", + type: "boolean", + defaultValue: true + }, + { + id: "Comfy.Node.ShowDeprecated", + name: "Show deprecated nodes in search", + tooltip: "Deprecated nodes are hidden by default in the UI, but remain functional in existing workflows that use them.", + type: "boolean", + defaultValue: false + }, + { + id: "Comfy.Node.ShowExperimental", + name: "Show experimental nodes in search", + tooltip: "Experimental nodes are marked as such in the UI and may be subject to significant changes or removal in future versions. Use with caution in production workflows", + type: "boolean", + defaultValue: true + }, + { + id: "Comfy.Node.Opacity", + category: ["Appearance", "Node", "Opacity"], + name: "Node opacity", + type: "slider", + defaultValue: 1, + attrs: { + min: 0.01, + max: 1, + step: 0.01 + } + }, + { + id: "Comfy.Workflow.ShowMissingNodesWarning", + name: "Show missing nodes warning", + type: "boolean", + defaultValue: true + }, + { + id: "Comfy.Workflow.ShowMissingModelsWarning", + name: "Show missing models warning", + type: "boolean", + defaultValue: false, + experimental: true + }, + { + id: "Comfy.Graph.ZoomSpeed", + category: ["LiteGraph", "Canvas", "ZoomSpeed"], + name: "Canvas zoom speed", + type: "slider", + defaultValue: 1.1, + attrs: { + min: 1.01, + max: 2.5, + step: 0.01 + } + }, + // Bookmarks are stored in the settings store. + // Bookmarks are in format of category/display_name. e.g. "conditioning/CLIPTextEncode" + { + id: "Comfy.NodeLibrary.Bookmarks", + name: "Node library bookmarks with display name (deprecated)", + type: "hidden", + defaultValue: [], + deprecated: true + }, + { + id: "Comfy.NodeLibrary.Bookmarks.V2", + name: "Node library bookmarks v2 with unique name", + type: "hidden", + defaultValue: [] + }, + // Stores mapping from bookmark folder name to its customization. + { + id: "Comfy.NodeLibrary.BookmarksCustomization", + name: "Node library bookmarks customization", + type: "hidden", + defaultValue: {} + }, + // Hidden setting used by the queue for how to fit images + { + id: "Comfy.Queue.ImageFit", + name: "Queue image fit", + type: "hidden", + defaultValue: "cover" + }, + { + id: "Comfy.GroupSelectedNodes.Padding", + category: ["LiteGraph", "Group", "Padding"], + name: "Group selected nodes padding", + type: "slider", + defaultValue: 10, + attrs: { + min: 0, + max: 100 + } + }, + { + id: "Comfy.Node.DoubleClickTitleToEdit", + category: ["LiteGraph", "Node", "DoubleClickTitleToEdit"], + name: "Double click node title to edit", + type: "boolean", + defaultValue: true + }, + { + id: "Comfy.Group.DoubleClickTitleToEdit", + category: ["LiteGraph", "Group", "DoubleClickTitleToEdit"], + name: "Double click group title to edit", + type: "boolean", + defaultValue: true + }, + { + id: "Comfy.Window.UnloadConfirmation", + name: "Show confirmation when closing window", + type: "boolean", + defaultValue: false + }, + { + id: "Comfy.TreeExplorer.ItemPadding", + category: ["Appearance", "Tree Explorer", "ItemPadding"], + name: "Tree explorer item padding", + type: "slider", + defaultValue: 2, + attrs: { + min: 0, + max: 8, + step: 1 + } + }, + { + id: "Comfy.ModelLibrary.AutoLoadAll", + name: "Automatically load all model folders", + tooltip: "If true, all folders will load as soon as you open the model library (this may cause delays while it loads). If false, root level model folders will only load once you click on them.", + type: "boolean", + defaultValue: false + }, + { + id: "Comfy.ModelLibrary.NameFormat", + name: "What name to display in the model library tree view", + tooltip: 'Select "filename" to render a simplified view of the raw filename (without directory or ".safetensors" extension) in the model list. Select "title" to display the configurable model metadata title.', + type: "combo", + options: ["filename", "title"], + defaultValue: "title" + }, + { + id: "Comfy.Locale", + name: "Language", + type: "combo", + options: [ + { value: "en", text: "English" }, + { value: "zh", text: "中文" }, + { value: "ru", text: "Русский" }, + { value: "ja", text: "日本語" }, + { value: "ko", text: "한국어" }, + { value: "fr", text: "Français" } + ], + defaultValue: /* @__PURE__ */ __name(() => navigator.language.split("-")[0] || "en", "defaultValue") + }, + { + id: "Comfy.NodeBadge.NodeSourceBadgeMode", + category: ["LiteGraph", "Node", "NodeSourceBadgeMode"], + name: "Node source badge mode", + type: "combo", + options: Object.values(NodeBadgeMode), + defaultValue: NodeBadgeMode.HideBuiltIn + }, + { + id: "Comfy.NodeBadge.NodeIdBadgeMode", + category: ["LiteGraph", "Node", "NodeIdBadgeMode"], + name: "Node ID badge mode", + type: "combo", + options: [NodeBadgeMode.None, NodeBadgeMode.ShowAll], + defaultValue: NodeBadgeMode.ShowAll + }, + { + id: "Comfy.NodeBadge.NodeLifeCycleBadgeMode", + category: ["LiteGraph", "Node", "NodeLifeCycleBadgeMode"], + name: "Node life cycle badge mode", + type: "combo", + options: [NodeBadgeMode.None, NodeBadgeMode.ShowAll], + defaultValue: NodeBadgeMode.ShowAll + }, + { + id: "Comfy.ConfirmClear", + category: ["Comfy", "Workflow", "ConfirmClear"], + name: "Require confirmation when clearing workflow", + type: "boolean", + defaultValue: true + }, + { + id: "Comfy.PromptFilename", + category: ["Comfy", "Workflow", "PromptFilename"], + name: "Prompt for filename when saving workflow", + type: "boolean", + defaultValue: true + }, + /** + * file format for preview + * + * format;quality + * + * ex) + * webp;50 -> webp, quality 50 + * jpeg;80 -> rgb, jpeg, quality 80 + * + * @type {string} + */ + { + id: "Comfy.PreviewFormat", + category: ["LiteGraph", "Node Widget", "PreviewFormat"], + name: "Preview image format", + tooltip: "When displaying a preview in the image widget, convert it to a lightweight image, e.g. webp, jpeg, webp;50, etc.", + type: "text", + defaultValue: "" + }, + { + id: "Comfy.DisableSliders", + category: ["LiteGraph", "Node Widget", "DisableSliders"], + name: "Disable node widget sliders", + type: "boolean", + defaultValue: false + }, + { + id: "Comfy.DisableFloatRounding", + category: ["LiteGraph", "Node Widget", "DisableFloatRounding"], + name: "Disable default float widget rounding.", + tooltip: "(requires page reload) Cannot disable round when round is set by the node in the backend.", + type: "boolean", + defaultValue: false + }, + { + id: "Comfy.FloatRoundingPrecision", + category: ["LiteGraph", "Node Widget", "FloatRoundingPrecision"], + name: "Float widget rounding decimal places [0 = auto].", + tooltip: "(requires page reload)", + type: "slider", + attrs: { + min: 0, + max: 6, + step: 1 + }, + defaultValue: 0 + }, + { + id: "Comfy.EnableTooltips", + category: ["LiteGraph", "Node", "EnableTooltips"], + name: "Enable Tooltips", + type: "boolean", + defaultValue: true + }, + { + id: "Comfy.DevMode", + name: "Enable dev mode options (API save, etc.)", + type: "boolean", + defaultValue: false, + onChange: /* @__PURE__ */ __name((value) => { + const element = document.getElementById("comfy-dev-save-api-button"); + if (element) { + element.style.display = value ? "flex" : "none"; + } + }, "onChange") + }, + { + id: "Comfy.UseNewMenu", + category: ["Comfy", "Menu", "UseNewMenu"], + defaultValue: "Top", + name: "Use new menu", + type: "combo", + options: ["Disabled", "Top", "Bottom"], + migrateDeprecatedValue: /* @__PURE__ */ __name((value) => { + if (value === "Floating") { + return "Top"; + } + return value; + }, "migrateDeprecatedValue") + }, + { + id: "Comfy.Workflow.WorkflowTabsPosition", + name: "Opened workflows position", + type: "combo", + options: ["Sidebar", "Topbar"], + defaultValue: "Topbar" + }, + { + id: "Comfy.Graph.CanvasMenu", + category: ["LiteGraph", "Canvas", "CanvasMenu"], + name: "Show graph canvas menu", + type: "boolean", + defaultValue: true + }, + { + id: "Comfy.QueueButton.BatchCountLimit", + name: "Batch count limit", + tooltip: "The maximum number of tasks added to the queue at one button click", + type: "number", + defaultValue: 100, + versionAdded: "1.3.5" + }, + { + id: "Comfy.Keybinding.UnsetBindings", + name: "Keybindings unset by the user", + type: "hidden", + defaultValue: [], + versionAdded: "1.3.7" + }, + { + id: "Comfy.Keybinding.NewBindings", + name: "Keybindings set by the user", + type: "hidden", + defaultValue: [], + versionAdded: "1.3.7" + }, + { + id: "Comfy.Extension.Disabled", + name: "Disabled extension names", + type: "hidden", + defaultValue: [], + versionAdded: "1.3.11" + }, + { + id: "Comfy.Validation.NodeDefs", + name: "Validate node definitions (slow)", + type: "boolean", + tooltip: "Recommended for node developers. This will validate all node definitions on startup.", + defaultValue: false, + versionAdded: "1.3.14" + }, + { + id: "Comfy.LinkRenderMode", + category: ["LiteGraph", "Graph", "LinkRenderMode"], + name: "Link Render Mode", + defaultValue: 2, + type: "combo", + options: [ + { value: LiteGraph.STRAIGHT_LINK, text: "Straight" }, + { value: LiteGraph.LINEAR_LINK, text: "Linear" }, + { value: LiteGraph.SPLINE_LINK, text: "Spline" }, + { value: LiteGraph.HIDDEN_LINK, text: "Hidden" } + ] + }, + { + id: "Comfy.Node.AutoSnapLinkToSlot", + category: ["LiteGraph", "Node", "AutoSnapLinkToSlot"], + name: "Auto snap link to node slot", + tooltip: "When dragging a link over a node, the link automatically snap to a viable input slot on the node", + type: "boolean", + defaultValue: true, + versionAdded: "1.3.29" + }, + { + id: "Comfy.Node.SnapHighlightsNode", + category: ["LiteGraph", "Node", "SnapHighlightsNode"], + name: "Snap highlights node", + tooltip: "When dragging a link over a node with viable input slot, highlight the node", + type: "boolean", + defaultValue: true, + versionAdded: "1.3.29" + }, + { + id: "Comfy.Node.BypassAllLinksOnDelete", + category: ["LiteGraph", "Node", "BypassAllLinksOnDelete"], + name: "Keep all links when deleting nodes", + tooltip: "When deleting a node, attempt to reconnect all of its input and output links (bypassing the deleted node)", + type: "boolean", + defaultValue: true, + versionAdded: "1.3.40" + }, + { + id: "Comfy.Node.MiddleClickRerouteNode", + category: ["LiteGraph", "Node", "MiddleClickRerouteNode"], + name: "Middle-click creates a new Reroute node", + type: "boolean", + defaultValue: true, + versionAdded: "1.3.42" + }, + { + id: "Comfy.RerouteBeta", + category: ["LiteGraph", "RerouteBeta"], + name: "Opt-in to the reroute beta test", + tooltip: "Enables the new native reroutes.\n\nReroutes can be added by holding alt and dragging from a link line, or on the link menu.\n\nDisabling this option is non-destructive - reroutes are hidden.", + experimental: true, + type: "boolean", + defaultValue: false, + versionAdded: "1.3.42" + }, + { + id: "Comfy.Graph.LinkMarkers", + category: ["LiteGraph", "Link", "LinkMarkers"], + name: "Link midpoint markers", + defaultValue: LinkMarkerShape.Circle, + type: "combo", + options: [ + { value: LinkMarkerShape.None, text: "None" }, + { value: LinkMarkerShape.Circle, text: "Circle" }, + { value: LinkMarkerShape.Arrow, text: "Arrow" } + ], + versionAdded: "1.3.42" + }, + { + id: "Comfy.DOMClippingEnabled", + category: ["LiteGraph", "Node", "DOMClippingEnabled"], + name: "Enable DOM element clipping (enabling may reduce performance)", + type: "boolean", + defaultValue: true + }, + { + id: "Comfy.Graph.CtrlShiftZoom", + category: ["LiteGraph", "Canvas", "CtrlShiftZoom"], + name: "Enable fast-zoom shortcut (Ctrl + Shift + Drag)", + type: "boolean", + defaultValue: true, + versionAdded: "1.4.0" + }, + { + id: "Comfy.Pointer.ClickDrift", + category: ["LiteGraph", "Pointer", "ClickDrift"], + name: "Pointer click drift (maximum distance)", + tooltip: "If the pointer moves more than this distance while holding a button down, it is considered dragging (rather than clicking).\n\nHelps prevent objects from being unintentionally nudged if the pointer is moved whilst clicking.", + experimental: true, + type: "slider", + attrs: { + min: 0, + max: 20, + step: 1 + }, + defaultValue: 6, + versionAdded: "1.4.3" + }, + { + id: "Comfy.Pointer.ClickBufferTime", + category: ["LiteGraph", "Pointer", "ClickBufferTime"], + name: "Pointer click drift delay", + tooltip: "After pressing a pointer button down, this is the maximum time (in milliseconds) that pointer movement can be ignored for.\n\nHelps prevent objects from being unintentionally nudged if the pointer is moved whilst clicking.", + experimental: true, + type: "slider", + attrs: { + min: 0, + max: 1e3, + step: 25 + }, + defaultValue: 150, + versionAdded: "1.4.3" + }, + { + id: "Comfy.Pointer.DoubleClickTime", + category: ["LiteGraph", "Pointer", "DoubleClickTime"], + name: "Double click interval (maximum)", + tooltip: "The maximum time in milliseconds between the two clicks of a double-click. Increasing this value may assist if double-clicks are sometimes not registered.", + type: "slider", + attrs: { + min: 100, + max: 1e3, + step: 50 + }, + defaultValue: 300, + versionAdded: "1.4.3" + }, + { + id: "Comfy.SnapToGrid.GridSize", + category: ["LiteGraph", "Canvas", "GridSize"], + name: "Snap to grid size", + type: "slider", + attrs: { + min: 1, + max: 500 + }, + tooltip: "When dragging and resizing nodes while holding shift they will be aligned to the grid, this controls the size of that grid.", + defaultValue: LiteGraph.CANVAS_GRID_SIZE + }, + // Keep the 'pysssss.SnapToGrid' setting id so we don't need to migrate setting values. + // Using a new setting id can cause existing users to lose their existing settings. + { + id: "pysssss.SnapToGrid", + category: ["LiteGraph", "Canvas", "AlwaysSnapToGrid"], + name: "Always snap to grid", + type: "boolean", + defaultValue: false, + versionAdded: "1.3.13" + }, + { + id: "Comfy.Server.ServerConfigValues", + name: "Server config values for frontend display", + tooltip: "Server config values used for frontend display only", + type: "hidden", + // Mapping from server config id to value. + defaultValue: {}, + versionAdded: "1.4.8" + }, + { + id: "Comfy.Server.LaunchArgs", + name: "Server launch arguments", + tooltip: "These are the actual arguments that are passed to the server when it is launched.", + type: "hidden", + defaultValue: {}, + versionAdded: "1.4.8" + }, + { + id: "Comfy.Queue.MaxHistoryItems", + name: "Queue history size", + tooltip: "The maximum number of tasks that show in the queue history.", + type: "slider", + attrs: { + min: 16, + max: 256, + step: 16 + }, + defaultValue: 64, + versionAdded: "1.4.12" + }, + { + id: "LiteGraph.Canvas.MaximumFps", + name: "Maxium FPS", + tooltip: "The maximum frames per second that the canvas is allowed to render. Caps GPU usage at the cost of smoothness. If 0, the screen refresh rate is used. Default: 0", + type: "slider", + attrs: { + min: 0, + max: 120 + }, + defaultValue: 0, + versionAdded: "1.5.1" + }, + { + id: "Comfy.EnableWorkflowViewRestore", + category: ["Comfy", "Workflow", "EnableWorkflowViewRestore"], + name: "Save and restore canvas position and zoom level in workflows", + type: "boolean", + defaultValue: true, + versionModified: "1.5.4" + }, + { + id: "Comfy.Workflow.ConfirmDelete", + name: "Show confirmation when deleting workflows", + type: "boolean", + defaultValue: true, + versionAdded: "1.5.6" + }, + { + id: "Comfy.ColorPalette", + name: "The active color palette id", + type: "hidden", + defaultValue: "dark", + versionModified: "1.6.7", + migrateDeprecatedValue(value) { + return value.startsWith("custom_") ? value.replace("custom_", "") : value; + } + }, + { + id: "Comfy.CustomColorPalettes", + name: "Custom color palettes", + type: "hidden", + defaultValue: {}, + versionModified: "1.6.7" + }, + { + id: "Comfy.WidgetControlMode", + category: ["Comfy", "Node Widget", "WidgetControlMode"], + name: "Widget control mode", + tooltip: "Controls when widget values are updated (randomize/increment/decrement), either before the prompt is queued or after.", + type: "combo", + defaultValue: "after", + options: ["before", "after"], + versionModified: "1.6.10" + } +]; const _sfc_main$a = /* @__PURE__ */ defineComponent({ __name: "GraphCanvas", emits: ["ready"], setup(__props, { emit: __emit }) { const emit = __emit; const canvasRef = ref(null); + const litegraphService = useLitegraphService(); const settingStore = useSettingStore(); const nodeDefStore = useNodeDefStore(); const workspaceStore = useWorkspaceStore(); @@ -3206,6 +4581,24 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({ canvasStore.canvas.zoom_speed = zoomSpeed; } }); + watchEffect(() => { + LiteGraph.snaps_for_comfy = settingStore.get("Comfy.Node.AutoSnapLinkToSlot"); + }); + watchEffect(() => { + LiteGraph.snap_highlights_node = settingStore.get( + "Comfy.Node.SnapHighlightsNode" + ); + }); + watchEffect(() => { + LGraphNode.keepAllLinksOnBypass = settingStore.get( + "Comfy.Node.BypassAllLinksOnDelete" + ); + }); + watchEffect(() => { + LiteGraph.middle_click_slot_add_default_node = settingStore.get( + "Comfy.Node.MiddleClickRerouteNode" + ); + }); watchEffect(() => { nodeDefStore.showDeprecated = settingStore.get("Comfy.Node.ShowDeprecated"); }); @@ -3224,17 +4617,106 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({ }); }); watchEffect(() => { - if (!canvasStore.canvas) return; - if (canvasStore.canvas.dragging_canvas) { - canvasStore.canvas.canvas.style.cursor = "grabbing"; - return; + const linkRenderMode = settingStore.get("Comfy.LinkRenderMode"); + if (canvasStore.canvas) { + canvasStore.canvas.links_render_mode = linkRenderMode; + canvasStore.canvas.setDirty( + /* fg */ + false, + /* bg */ + true + ); } - if (canvasStore.canvas.read_only) { - canvasStore.canvas.canvas.style.cursor = "grab"; - return; - } - canvasStore.canvas.canvas.style.cursor = "default"; }); + watchEffect(() => { + const linkMarkerShape = settingStore.get("Comfy.Graph.LinkMarkers"); + const { canvas } = canvasStore; + if (canvas) { + canvas.linkMarkerShape = linkMarkerShape; + canvas.setDirty(false, true); + } + }); + watchEffect(() => { + const reroutesEnabled = settingStore.get("Comfy.RerouteBeta"); + const { canvas } = canvasStore; + if (canvas) { + canvas.reroutesEnabled = reroutesEnabled; + canvas.setDirty(false, true); + } + }); + watchEffect(() => { + const maximumFps = settingStore.get("LiteGraph.Canvas.MaximumFps"); + const { canvas } = canvasStore; + if (canvas) canvas.maximumFps = maximumFps; + }); + watchEffect(() => { + CanvasPointer.doubleClickTime = settingStore.get( + "Comfy.Pointer.DoubleClickTime" + ); + }); + watchEffect(() => { + CanvasPointer.bufferTime = settingStore.get("Comfy.Pointer.ClickBufferTime"); + }); + watchEffect(() => { + CanvasPointer.maxClickDrift = settingStore.get("Comfy.Pointer.ClickDrift"); + }); + watchEffect(() => { + LiteGraph.CANVAS_GRID_SIZE = settingStore.get("Comfy.SnapToGrid.GridSize"); + }); + watchEffect(() => { + LiteGraph.alwaysSnapToGrid = settingStore.get("pysssss.SnapToGrid"); + }); + watch( + () => settingStore.get("Comfy.WidgetControlMode"), + () => { + if (!canvasStore.canvas) return; + for (const n of app.graph.nodes) { + if (!n.widgets) continue; + for (const w of n.widgets) { + if (w[IS_CONTROL_WIDGET]) { + updateControlWidgetLabel(w); + if (w.linkedWidgets) { + for (const l of w.linkedWidgets) { + updateControlWidgetLabel(l); + } + } + } + } + } + app.graph.setDirtyCanvas(true); + } + ); + const colorPaletteService = useColorPaletteService(); + const colorPaletteStore = useColorPaletteStore(); + watch( + [() => canvasStore.canvas, () => settingStore.get("Comfy.ColorPalette")], + ([canvas, currentPaletteId]) => { + if (!canvas) return; + colorPaletteService.loadColorPalette(currentPaletteId); + } + ); + watch( + () => colorPaletteStore.activePaletteId, + (newValue) => { + settingStore.set("Comfy.ColorPalette", newValue); + } + ); + const workflowStore = useWorkflowStore(); + const persistCurrentWorkflow = /* @__PURE__ */ __name(() => { + const workflow = JSON.stringify(app.serializeGraph()); + localStorage.setItem("workflow", workflow); + if (api.clientId) { + sessionStorage.setItem(`workflow:${api.clientId}`, workflow); + } + }, "persistCurrentWorkflow"); + watchEffect(() => { + if (workflowStore.activeWorkflow) { + const workflow = workflowStore.activeWorkflow; + setStorageValue("Comfy.PreviousWorkflow", workflow.key); + persistCurrentWorkflow(); + } + }); + api.addEventListener("graphChanged", persistCurrentWorkflow); usePragmaticDroppable(() => canvasRef.value, { onDrop: /* @__PURE__ */ __name((event) => { const loc = event.location.current.input; @@ -3247,7 +4729,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({ loc.clientX - 20, loc.clientY ]); - app.addNodeOnGraph(nodeDef, { pos }); + litegraphService.addNodeOnGraph(nodeDef, { pos }); } else if (node.data instanceof ComfyModelDef) { const model = node.data; const pos = app.clientPosToCanvasPos([loc.clientX, loc.clientY]); @@ -3268,9 +4750,12 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({ if (!targetGraphNode) { const provider = modelToNodeStore.getNodeProvider(model.directory); if (provider) { - targetGraphNode = app.addNodeOnGraph(provider.nodeDef, { - pos - }); + targetGraphNode = litegraphService.addNodeOnGraph( + provider.nodeDef, + { + pos + } + ); targetProvider = provider; } } @@ -3286,6 +4771,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({ } }, "onDrop") }); + const comfyAppReady = ref(false); onMounted(async () => { window["LiteGraph"] = LiteGraph; window["LGraph"] = LGraph; @@ -3298,20 +4784,40 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({ window["LGraphBadge"] = LGraphBadge; app.vueAppReady = true; workspaceStore.spinner = true; + ChangeTracker.init(app); + await settingStore.loadSettingValues(); + CORE_SETTINGS.forEach((setting) => { + settingStore.addSetting(setting); + }); await app.setup(canvasRef.value); canvasStore.canvas = app.canvas; + canvasStore.canvas.render_canvas_border = false; workspaceStore.spinner = false; window["app"] = app; window["graph"] = app.graph; + comfyAppReady.value = true; + colorPaletteStore.customPalettes = settingStore.get( + "Comfy.CustomColorPalettes" + ); + watch( + () => settingStore.get("Comfy.Locale"), + async () => { + await useCommandStore().execute("Comfy.RefreshNodeDefinitions"); + useWorkflowService().reloadCurrentWorkflow(); + } + ); emit("ready"); }); return (_ctx, _cache) => { return openBlock(), createElementBlock(Fragment, null, [ (openBlock(), createBlock(Teleport, { to: ".graph-canvas-container" }, [ - betaMenuEnabled.value ? (openBlock(), createBlock(LiteGraphCanvasSplitterOverlay, { key: 0 }, { + comfyAppReady.value && betaMenuEnabled.value && !unref(workspaceStore).focusMode ? (openBlock(), createBlock(LiteGraphCanvasSplitterOverlay, { key: 0 }, { "side-bar-panel": withCtx(() => [ createVNode(SideToolbar) ]), + "bottom-panel": withCtx(() => [ + createVNode(_sfc_main$o) + ]), "graph-canvas-panel": withCtx(() => [ canvasMenuEnabled.value ? (openBlock(), createBlock(GraphCanvasMenu, { key: 0 })) : createCommentVNode("", true) ]), @@ -3326,8 +4832,9 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({ tabindex: "1" }, null, 512) ])), - createVNode(_sfc_main$d), - tooltipEnabled.value ? (openBlock(), createBlock(NodeTooltip, { key: 0 })) : createCommentVNode("", true) + createVNode(_sfc_main$g), + tooltipEnabled.value ? (openBlock(), createBlock(NodeTooltip, { key: 0 })) : createCommentVNode("", true), + createVNode(_sfc_main$m) ], 64); }; } @@ -3361,12 +4868,12 @@ function _toPrimitive$3(t, r) { return ("string" === r ? String : Number)(t); } __name(_toPrimitive$3, "_toPrimitive$3"); -var theme$4 = /* @__PURE__ */ __name(function theme5(_ref) { +var theme$3 = /* @__PURE__ */ __name(function theme5(_ref) { var dt = _ref.dt; return "\n.p-toast {\n width: ".concat(dt("toast.width"), ";\n white-space: pre-line;\n word-break: break-word;\n}\n\n.p-toast-message {\n margin: 0 0 1rem 0;\n}\n\n.p-toast-message-icon {\n flex-shrink: 0;\n font-size: ").concat(dt("toast.icon.size"), ";\n width: ").concat(dt("toast.icon.size"), ";\n height: ").concat(dt("toast.icon.size"), ";\n}\n\n.p-toast-message-content {\n display: flex;\n align-items: flex-start;\n padding: ").concat(dt("toast.content.padding"), ";\n gap: ").concat(dt("toast.content.gap"), ";\n}\n\n.p-toast-message-text {\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n gap: ").concat(dt("toast.text.gap"), ";\n}\n\n.p-toast-summary {\n font-weight: ").concat(dt("toast.summary.font.weight"), ";\n font-size: ").concat(dt("toast.summary.font.size"), ";\n}\n\n.p-toast-detail {\n font-weight: ").concat(dt("toast.detail.font.weight"), ";\n font-size: ").concat(dt("toast.detail.font.size"), ";\n}\n\n.p-toast-close-button {\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n cursor: pointer;\n background: transparent;\n transition: background ").concat(dt("toast.transition.duration"), ", color ").concat(dt("toast.transition.duration"), ", outline-color ").concat(dt("toast.transition.duration"), ", box-shadow ").concat(dt("toast.transition.duration"), ";\n outline-color: transparent;\n color: inherit;\n width: ").concat(dt("toast.close.button.width"), ";\n height: ").concat(dt("toast.close.button.height"), ";\n border-radius: ").concat(dt("toast.close.button.border.radius"), ";\n margin: -25% 0 0 0;\n right: -25%;\n padding: 0;\n border: none;\n user-select: none;\n}\n\n.p-toast-message-info,\n.p-toast-message-success,\n.p-toast-message-warn,\n.p-toast-message-error,\n.p-toast-message-secondary,\n.p-toast-message-contrast {\n border-width: ").concat(dt("toast.border.width"), ";\n border-style: solid;\n backdrop-filter: blur(").concat(dt("toast.blur"), ");\n border-radius: ").concat(dt("toast.border.radius"), ";\n}\n\n.p-toast-close-icon {\n font-size: ").concat(dt("toast.close.icon.size"), ";\n width: ").concat(dt("toast.close.icon.size"), ";\n height: ").concat(dt("toast.close.icon.size"), ";\n}\n\n.p-toast-close-button:focus-visible {\n outline-width: ").concat(dt("focus.ring.width"), ";\n outline-style: ").concat(dt("focus.ring.style"), ";\n outline-offset: ").concat(dt("focus.ring.offset"), ";\n}\n\n.p-toast-message-info {\n background: ").concat(dt("toast.info.background"), ";\n border-color: ").concat(dt("toast.info.border.color"), ";\n color: ").concat(dt("toast.info.color"), ";\n box-shadow: ").concat(dt("toast.info.shadow"), ";\n}\n\n.p-toast-message-info .p-toast-detail {\n color: ").concat(dt("toast.info.detail.color"), ";\n}\n\n.p-toast-message-info .p-toast-close-button:focus-visible {\n outline-color: ").concat(dt("toast.info.close.button.focus.ring.color"), ";\n box-shadow: ").concat(dt("toast.info.close.button.focus.ring.shadow"), ";\n}\n\n.p-toast-message-info .p-toast-close-button:hover {\n background: ").concat(dt("toast.info.close.button.hover.background"), ";\n}\n\n.p-toast-message-success {\n background: ").concat(dt("toast.success.background"), ";\n border-color: ").concat(dt("toast.success.border.color"), ";\n color: ").concat(dt("toast.success.color"), ";\n box-shadow: ").concat(dt("toast.success.shadow"), ";\n}\n\n.p-toast-message-success .p-toast-detail {\n color: ").concat(dt("toast.success.detail.color"), ";\n}\n\n.p-toast-message-success .p-toast-close-button:focus-visible {\n outline-color: ").concat(dt("toast.success.close.button.focus.ring.color"), ";\n box-shadow: ").concat(dt("toast.success.close.button.focus.ring.shadow"), ";\n}\n\n.p-toast-message-success .p-toast-close-button:hover {\n background: ").concat(dt("toast.success.close.button.hover.background"), ";\n}\n\n.p-toast-message-warn {\n background: ").concat(dt("toast.warn.background"), ";\n border-color: ").concat(dt("toast.warn.border.color"), ";\n color: ").concat(dt("toast.warn.color"), ";\n box-shadow: ").concat(dt("toast.warn.shadow"), ";\n}\n\n.p-toast-message-warn .p-toast-detail {\n color: ").concat(dt("toast.warn.detail.color"), ";\n}\n\n.p-toast-message-warn .p-toast-close-button:focus-visible {\n outline-color: ").concat(dt("toast.warn.close.button.focus.ring.color"), ";\n box-shadow: ").concat(dt("toast.warn.close.button.focus.ring.shadow"), ";\n}\n\n.p-toast-message-warn .p-toast-close-button:hover {\n background: ").concat(dt("toast.warn.close.button.hover.background"), ";\n}\n\n.p-toast-message-error {\n background: ").concat(dt("toast.error.background"), ";\n border-color: ").concat(dt("toast.error.border.color"), ";\n color: ").concat(dt("toast.error.color"), ";\n box-shadow: ").concat(dt("toast.error.shadow"), ";\n}\n\n.p-toast-message-error .p-toast-detail {\n color: ").concat(dt("toast.error.detail.color"), ";\n}\n\n.p-toast-message-error .p-toast-close-button:focus-visible {\n outline-color: ").concat(dt("toast.error.close.button.focus.ring.color"), ";\n box-shadow: ").concat(dt("toast.error.close.button.focus.ring.shadow"), ";\n}\n\n.p-toast-message-error .p-toast-close-button:hover {\n background: ").concat(dt("toast.error.close.button.hover.background"), ";\n}\n\n.p-toast-message-secondary {\n background: ").concat(dt("toast.secondary.background"), ";\n border-color: ").concat(dt("toast.secondary.border.color"), ";\n color: ").concat(dt("toast.secondary.color"), ";\n box-shadow: ").concat(dt("toast.secondary.shadow"), ";\n}\n\n.p-toast-message-secondary .p-toast-detail {\n color: ").concat(dt("toast.secondary.detail.color"), ";\n}\n\n.p-toast-message-secondary .p-toast-close-button:focus-visible {\n outline-color: ").concat(dt("toast.secondary.close.button.focus.ring.color"), ";\n box-shadow: ").concat(dt("toast.secondary.close.button.focus.ring.shadow"), ";\n}\n\n.p-toast-message-secondary .p-toast-close-button:hover {\n background: ").concat(dt("toast.secondary.close.button.hover.background"), ";\n}\n\n.p-toast-message-contrast {\n background: ").concat(dt("toast.contrast.background"), ";\n border-color: ").concat(dt("toast.contrast.border.color"), ";\n color: ").concat(dt("toast.contrast.color"), ";\n box-shadow: ").concat(dt("toast.contrast.shadow"), ";\n}\n\n.p-toast-message-contrast .p-toast-detail {\n color: ").concat(dt("toast.contrast.detail.color"), ";\n}\n\n.p-toast-message-contrast .p-toast-close-button:focus-visible {\n outline-color: ").concat(dt("toast.contrast.close.button.focus.ring.color"), ";\n box-shadow: ").concat(dt("toast.contrast.close.button.focus.ring.shadow"), ";\n}\n\n.p-toast-message-contrast .p-toast-close-button:hover {\n background: ").concat(dt("toast.contrast.close.button.hover.background"), ";\n}\n\n.p-toast-top-center {\n transform: translateX(-50%);\n}\n\n.p-toast-bottom-center {\n transform: translateX(-50%);\n}\n\n.p-toast-center {\n min-width: 20vw;\n transform: translate(-50%, -50%);\n}\n\n.p-toast-message-enter-from {\n opacity: 0;\n transform: translateY(50%);\n}\n\n.p-toast-message-leave-from {\n max-height: 1000px;\n}\n\n.p-toast .p-toast-message.p-toast-message-leave-to {\n max-height: 0;\n opacity: 0;\n margin-bottom: 0;\n overflow: hidden;\n}\n\n.p-toast-message-enter-active {\n transition: transform 0.3s, opacity 0.3s;\n}\n\n.p-toast-message-leave-active {\n transition: max-height 0.45s cubic-bezier(0, 1, 0, 1), opacity 0.3s, margin-bottom 0.3s;\n}\n"); }, "theme"); var inlineStyles$2 = { - root: /* @__PURE__ */ __name(function root5(_ref2) { + root: /* @__PURE__ */ __name(function root6(_ref2) { var position = _ref2.position; return { position: "fixed", @@ -3377,8 +4884,8 @@ var inlineStyles$2 = { }; }, "root") }; -var classes$4 = { - root: /* @__PURE__ */ __name(function root6(_ref3) { +var classes$3 = { + root: /* @__PURE__ */ __name(function root7(_ref3) { var props = _ref3.props; return ["p-toast p-component p-toast-" + props.position]; }, "root"), @@ -3406,8 +4913,8 @@ var classes$4 = { }; var ToastStyle = BaseStyle.extend({ name: "toast", - theme: theme$4, - classes: classes$4, + theme: theme$3, + classes: classes$3, inlineStyles: inlineStyles$2 }); var script$2$2 = { @@ -3460,14 +4967,14 @@ var script$2$2 = { } }, style: ToastStyle, - provide: /* @__PURE__ */ __name(function provide7() { + provide: /* @__PURE__ */ __name(function provide9() { return { $pcToast: this, $parentInstance: this }; }, "provide") }; -var script$1$4 = { +var script$1$3 = { name: "ToastMessage", hostName: "Toast", "extends": script$e, @@ -3507,7 +5014,7 @@ var script$1$4 = { "default": null } }, - mounted: /* @__PURE__ */ __name(function mounted3() { + mounted: /* @__PURE__ */ __name(function mounted4() { var _this = this; if (this.message.life) { this.closeTimeout = setTimeout(function() { @@ -3518,7 +5025,7 @@ var script$1$4 = { }, this.message.life); } }, "mounted"), - beforeUnmount: /* @__PURE__ */ __name(function beforeUnmount3() { + beforeUnmount: /* @__PURE__ */ __name(function beforeUnmount4() { this.clearCloseTimeout(); }, "beforeUnmount"), methods: { @@ -3542,10 +5049,10 @@ var script$1$4 = { computed: { iconComponent: /* @__PURE__ */ __name(function iconComponent() { return { - info: !this.infoIcon && script$n, - success: !this.successIcon && script$o, - warn: !this.warnIcon && script$p, - error: !this.errorIcon && script$q + info: !this.infoIcon && script$r, + success: !this.successIcon && script$s, + warn: !this.warnIcon && script$t, + error: !this.errorIcon && script$u }[this.message.severity]; }, "iconComponent"), closeAriaLabel: /* @__PURE__ */ __name(function closeAriaLabel() { @@ -3553,11 +5060,11 @@ var script$1$4 = { }, "closeAriaLabel") }, components: { - TimesIcon: script$r, - InfoCircleIcon: script$n, - CheckIcon: script$o, - ExclamationTriangleIcon: script$p, - TimesCircleIcon: script$q + TimesIcon: script$v, + InfoCircleIcon: script$r, + CheckIcon: script$s, + ExclamationTriangleIcon: script$t, + TimesCircleIcon: script$u }, directives: { ripple: Ripple @@ -3615,7 +5122,7 @@ function _toPrimitive$1(t, r) { return ("string" === r ? String : Number)(t); } __name(_toPrimitive$1, "_toPrimitive$1"); -var _hoisted_1$9 = ["aria-label"]; +var _hoisted_1$d = ["aria-label"]; function render$1$2(_ctx, _cache, $props, $setup, $data, $options) { var _directive_ripple = resolveDirective("ripple"); return openBlock(), createElementBlock("div", mergeProps({ @@ -3655,10 +5162,10 @@ function render$1$2(_ctx, _cache, $props, $setup, $data, $options) { autofocus: "" }, _objectSpread$1(_objectSpread$1({}, $props.closeButtonProps), _ctx.ptm("closeButton"))), [(openBlock(), createBlock(resolveDynamicComponent($props.templates.closeicon || "TimesIcon"), mergeProps({ "class": [_ctx.cx("closeIcon"), $props.closeIcon] - }, _ctx.ptm("closeIcon")), null, 16, ["class"]))], 16, _hoisted_1$9)), [[_directive_ripple]])], 16)) : createCommentVNode("", true)], 16))], 16); + }, _ctx.ptm("closeIcon")), null, 16, ["class"]))], 16, _hoisted_1$d)), [[_directive_ripple]])], 16)) : createCommentVNode("", true)], 16))], 16); } __name(render$1$2, "render$1$2"); -script$1$4.render = render$1$2; +script$1$3.render = render$1$2; function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } @@ -3690,18 +5197,18 @@ function _arrayLikeToArray(r, a) { } __name(_arrayLikeToArray, "_arrayLikeToArray"); var messageIdx = 0; -var script$6 = { +var script$5 = { name: "Toast", "extends": script$2$2, inheritAttrs: false, emits: ["close", "life-end"], - data: /* @__PURE__ */ __name(function data4() { + data: /* @__PURE__ */ __name(function data5() { return { messages: [] }; }, "data"), styleElement: null, - mounted: /* @__PURE__ */ __name(function mounted4() { + mounted: /* @__PURE__ */ __name(function mounted5() { ToastEventBus.on("add", this.onAdd); ToastEventBus.on("remove", this.onRemove); ToastEventBus.on("remove-group", this.onRemoveGroup); @@ -3710,7 +5217,7 @@ var script$6 = { this.createStyle(); } }, "mounted"), - beforeUnmount: /* @__PURE__ */ __name(function beforeUnmount4() { + beforeUnmount: /* @__PURE__ */ __name(function beforeUnmount5() { this.destroyStyle(); if (this.$refs.container && this.autoZIndex) { ZIndex.clear(this.$refs.container); @@ -3802,8 +5309,8 @@ var script$6 = { }, "attributeSelector") }, components: { - ToastMessage: script$1$4, - Portal: script$h + ToastMessage: script$1$3, + Portal: script$k } }; function _typeof$2(o) { @@ -3858,7 +5365,7 @@ function _toPrimitive$2(t, r) { return ("string" === r ? String : Number)(t); } __name(_toPrimitive$2, "_toPrimitive$2"); -function render$6(_ctx, _cache, $props, $setup, $data, $options) { +function render$a(_ctx, _cache, $props, $setup, $data, $options) { var _component_ToastMessage = resolveComponent("ToastMessage"); var _component_Portal = resolveComponent("Portal"); return openBlock(), createBlock(_component_Portal, null, { @@ -3901,8 +5408,8 @@ function render$6(_ctx, _cache, $props, $setup, $data, $options) { _: 1 }); } -__name(render$6, "render$6"); -script$6.render = render$6; +__name(render$a, "render$a"); +script$5.render = render$a; const _sfc_main$9 = /* @__PURE__ */ defineComponent({ __name: "GlobalToast", setup(__props) { @@ -3973,145 +5480,99 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({ { immediate: true } ); return (_ctx, _cache) => { - return openBlock(), createBlock(unref(script$6)); + return openBlock(), createBlock(unref(script$5)); }; } }); -const _sfc_main$8 = /* @__PURE__ */ defineComponent({ - __name: "UnloadWindowConfirmDialog", - setup(__props) { - const settingStore = useSettingStore(); - const handleBeforeUnload = /* @__PURE__ */ __name((event) => { - if (settingStore.get("Comfy.Window.UnloadConfirmation")) { - event.preventDefault(); - return true; - } - return void 0; - }, "handleBeforeUnload"); - onMounted(() => { - window.addEventListener("beforeunload", handleBeforeUnload); - }); - onBeforeUnmount(() => { - window.removeEventListener("beforeunload", handleBeforeUnload); - }); - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div"); - }; - } -}); -const DEFAULT_TITLE = "ComfyUI"; -const TITLE_SUFFIX = " - ComfyUI"; -const _sfc_main$7 = /* @__PURE__ */ defineComponent({ - __name: "BrowserTabTitle", - setup(__props) { - const executionStore = useExecutionStore(); - const executionText = computed( - () => executionStore.isIdle ? "" : `[${executionStore.executionProgress}%]` - ); - const settingStore = useSettingStore(); - const betaMenuEnabled = computed( - () => settingStore.get("Comfy.UseNewMenu") !== "Disabled" - ); - const workflowStore = useWorkflowStore(); - const isUnsavedText = computed( - () => workflowStore.activeWorkflow?.unsaved ? " *" : "" - ); - const workflowNameText = computed(() => { - const workflowName = workflowStore.activeWorkflow?.name; - return workflowName ? isUnsavedText.value + workflowName + TITLE_SUFFIX : DEFAULT_TITLE; - }); - const nodeExecutionTitle = computed( - () => executionStore.executingNode && executionStore.executingNodeProgress ? `${executionText.value}[${executionStore.executingNodeProgress}%] ${executionStore.executingNode.type}` : "" - ); - const workflowTitle = computed( - () => executionText.value + (betaMenuEnabled.value ? workflowNameText.value : DEFAULT_TITLE) - ); - const title = computed(() => nodeExecutionTitle.value || workflowTitle.value); - useTitle(title); - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div"); - }; - } -}); -const _withScopeId$3 = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-84e785b8"), n = n(), popScopeId(), n), "_withScopeId$3"); -const _hoisted_1$8 = { class: "workflow-label text-sm max-w-[150px] truncate inline-block" }; -const _hoisted_2$6 = { class: "relative" }; -const _hoisted_3$4 = { - key: 0, - class: "status-indicator" +const _hoisted_1$c = { + viewBox: "0 0 24 24", + width: "1.2em", + height: "1.2em" }; -const _sfc_main$6 = /* @__PURE__ */ defineComponent({ - __name: "WorkflowTabs", - props: { - class: {} - }, - setup(__props) { - const props = __props; - const workflowStore = useWorkflowStore(); - const workflowToOption = /* @__PURE__ */ __name((workflow) => ({ - label: workflow.name, - tooltip: workflow.path, - value: workflow.key, - unsaved: workflow.unsaved - }), "workflowToOption"); - const optionToWorkflow = /* @__PURE__ */ __name((option2) => workflowStore.workflowLookup[option2.value], "optionToWorkflow"); - const options = computed( - () => workflowStore.openWorkflows.map(workflowToOption) - ); - const selectedWorkflow = computed( - () => workflowStore.activeWorkflow ? workflowToOption(workflowStore.activeWorkflow) : null - ); - const onWorkflowChange = /* @__PURE__ */ __name((option2) => { - if (!option2) { - return; - } - if (selectedWorkflow.value?.value === option2.value) { - return; - } - const workflow = optionToWorkflow(option2); - workflow.load(); - }, "onWorkflowChange"); - const onCloseWorkflow = /* @__PURE__ */ __name((option2) => { - const workflow = optionToWorkflow(option2); - app.workflowManager.closeWorkflow(workflow); - }, "onCloseWorkflow"); - return (_ctx, _cache) => { - const _directive_tooltip = resolveDirective("tooltip"); - return openBlock(), createBlock(unref(script$s), { - class: normalizeClass(["workflow-tabs bg-transparent flex flex-wrap", props.class]), - modelValue: selectedWorkflow.value, - "onUpdate:modelValue": onWorkflowChange, - options: options.value, - optionLabel: "label", - dataKey: "value" - }, { - option: withCtx(({ option: option2 }) => [ - withDirectives((openBlock(), createElementBlock("span", _hoisted_1$8, [ - createTextVNode(toDisplayString(option2.label), 1) - ])), [ - [_directive_tooltip, option2.tooltip] - ]), - createBaseVNode("div", _hoisted_2$6, [ - option2.unsaved ? (openBlock(), createElementBlock("span", _hoisted_3$4, "•")) : createCommentVNode("", true), - createVNode(unref(script$d), { - class: "close-button p-0 w-auto", - icon: "pi pi-times", - text: "", - severity: "secondary", - size: "small", - onClick: withModifiers(($event) => onCloseWorkflow(option2), ["stop"]) - }, null, 8, ["onClick"]) - ]) - ]), - _: 1 - }, 8, ["class", "modelValue", "options"]); - }; - } -}); -const WorkflowTabs = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-84e785b8"]]); -var theme$3 = /* @__PURE__ */ __name(function theme6(_ref) { +const _hoisted_2$a = /* @__PURE__ */ createBaseVNode("path", { + fill: "none", + stroke: "currentColor", + "stroke-linecap": "round", + "stroke-linejoin": "round", + "stroke-width": "2", + d: "M6 4v16m4-16l10 8l-10 8z" +}, null, -1); +const _hoisted_3$9 = [ + _hoisted_2$a +]; +function render$9(_ctx, _cache) { + return openBlock(), createElementBlock("svg", _hoisted_1$c, [..._hoisted_3$9]); +} +__name(render$9, "render$9"); +const __unplugin_components_3 = markRaw({ name: "lucide-step-forward", render: render$9 }); +const _hoisted_1$b = { + viewBox: "0 0 24 24", + width: "1.2em", + height: "1.2em" +}; +const _hoisted_2$9 = /* @__PURE__ */ createBaseVNode("path", { + fill: "none", + stroke: "currentColor", + "stroke-linecap": "round", + "stroke-linejoin": "round", + "stroke-width": "2", + d: "m13 19l9-7l-9-7zM2 19l9-7l-9-7z" +}, null, -1); +const _hoisted_3$8 = [ + _hoisted_2$9 +]; +function render$8(_ctx, _cache) { + return openBlock(), createElementBlock("svg", _hoisted_1$b, [..._hoisted_3$8]); +} +__name(render$8, "render$8"); +const __unplugin_components_2 = markRaw({ name: "lucide-fast-forward", render: render$8 }); +const _hoisted_1$a = { + viewBox: "0 0 24 24", + width: "1.2em", + height: "1.2em" +}; +const _hoisted_2$8 = /* @__PURE__ */ createBaseVNode("path", { + fill: "none", + stroke: "currentColor", + "stroke-linecap": "round", + "stroke-linejoin": "round", + "stroke-width": "2", + d: "m6 3l14 9l-14 9z" +}, null, -1); +const _hoisted_3$7 = [ + _hoisted_2$8 +]; +function render$7(_ctx, _cache) { + return openBlock(), createElementBlock("svg", _hoisted_1$a, [..._hoisted_3$7]); +} +__name(render$7, "render$7"); +const __unplugin_components_1$1 = markRaw({ name: "lucide-play", render: render$7 }); +const _hoisted_1$9 = { + viewBox: "0 0 24 24", + width: "1.2em", + height: "1.2em" +}; +const _hoisted_2$7 = /* @__PURE__ */ createBaseVNode("g", { + fill: "none", + stroke: "currentColor", + "stroke-linecap": "round", + "stroke-linejoin": "round", + "stroke-width": "2" +}, [ + /* @__PURE__ */ createBaseVNode("path", { d: "M16 12H3m13 6H3m7-12H3m18 12V8a2 2 0 0 0-2-2h-5" }), + /* @__PURE__ */ createBaseVNode("path", { d: "m16 8l-2-2l2-2" }) +], -1); +const _hoisted_3$6 = [ + _hoisted_2$7 +]; +function render$6(_ctx, _cache) { + return openBlock(), createElementBlock("svg", _hoisted_1$9, [..._hoisted_3$6]); +} +__name(render$6, "render$6"); +const __unplugin_components_0$1 = markRaw({ name: "lucide-list-start", render: render$6 }); +var theme$2 = /* @__PURE__ */ __name(function theme6(_ref) { var dt = _ref.dt; - return "\n.p-menubar {\n display: flex;\n align-items: center;\n background: ".concat(dt("menubar.background"), ";\n border: 1px solid ").concat(dt("menubar.border.color"), ";\n border-radius: ").concat(dt("menubar.border.radius"), ";\n color: ").concat(dt("menubar.color"), ";\n padding: ").concat(dt("menubar.padding"), ";\n gap: ").concat(dt("menubar.gap"), ";\n}\n\n.p-menubar-start,\n.p-megamenu-end {\n display: flex;\n align-items: center;\n}\n\n.p-menubar-root-list,\n.p-menubar-submenu {\n display: flex;\n margin: 0;\n padding: 0;\n list-style: none;\n outline: 0 none;\n}\n\n.p-menubar-root-list {\n align-items: center;\n flex-wrap: wrap;\n gap: ").concat(dt("menubar.gap"), ";\n}\n\n.p-menubar-root-list > .p-menubar-item > .p-menubar-item-content {\n border-radius: ").concat(dt("menubar.base.item.border.radius"), ";\n}\n\n.p-menubar-root-list > .p-menubar-item > .p-menubar-item-content > .p-menubar-item-link {\n padding: ").concat(dt("menubar.base.item.padding"), ";\n}\n\n.p-menubar-item-content {\n transition: background ").concat(dt("menubar.transition.duration"), ", color ").concat(dt("menubar.transition.duration"), ";\n border-radius: ").concat(dt("menubar.item.border.radius"), ";\n color: ").concat(dt("menubar.item.color"), ";\n}\n\n.p-menubar-item-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n color: inherit;\n padding: ").concat(dt("menubar.item.padding"), ";\n gap: ").concat(dt("menubar.item.gap"), ";\n user-select: none;\n outline: 0 none;\n}\n\n.p-menubar-item-label {\n line-height: 1;\n}\n\n.p-menubar-item-icon {\n color: ").concat(dt("menubar.item.icon.color"), ";\n}\n\n.p-menubar-submenu-icon {\n color: ").concat(dt("menubar.submenu.icon.color"), ";\n margin-left: auto;\n font-size: ").concat(dt("menubar.submenu.icon.size"), ";\n width: ").concat(dt("menubar.submenu.icon.size"), ";\n height: ").concat(dt("menubar.submenu.icon.size"), ";\n}\n\n.p-menubar-item.p-focus > .p-menubar-item-content {\n color: ").concat(dt("menubar.item.focus.color"), ";\n background: ").concat(dt("menubar.item.focus.background"), ";\n}\n\n.p-menubar-item.p-focus > .p-menubar-item-content .p-menubar-item-icon {\n color: ").concat(dt("menubar.item.icon.focus.color"), ";\n}\n\n.p-menubar-item.p-focus > .p-menubar-item-content .p-menubar-submenu-icon {\n color: ").concat(dt("menubar.submenu.icon.focus.color"), ";\n}\n\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover {\n color: ").concat(dt("menubar.item.focus.color"), ";\n background: ").concat(dt("menubar.item.focus.background"), ";\n}\n\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover .p-menubar-item-icon {\n color: ").concat(dt("menubar.item.icon.focus.color"), ";\n}\n\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover .p-menubar-submenu-icon {\n color: ").concat(dt("menubar.submenu.icon.focus.color"), ";\n}\n\n.p-menubar-item-active > .p-menubar-item-content {\n color: ").concat(dt("menubar.item.active.color"), ";\n background: ").concat(dt("menubar.item.active.background"), ";\n}\n\n.p-menubar-item-active > .p-menubar-item-content .p-menubar-item-icon {\n color: ").concat(dt("menubar.item.icon.active.color"), ";\n}\n\n.p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\n color: ").concat(dt("menubar.submenu.icon.active.color"), ";\n}\n\n.p-menubar-submenu {\n display: none;\n position: absolute;\n min-width: 12.5rem;\n z-index: 1;\n background: ").concat(dt("menubar.submenu.background"), ";\n border: 1px solid ").concat(dt("menubar.submenu.border.color"), ";\n border-radius: ").concat(dt("menubar.border.radius"), ";\n box-shadow: ").concat(dt("menubar.submenu.shadow"), ";\n color: ").concat(dt("menubar.submenu.color"), ";\n flex-direction: column;\n padding: ").concat(dt("menubar.submenu.padding"), ";\n gap: ").concat(dt("menubar.submenu.gap"), ";\n}\n\n.p-menubar-submenu .p-menubar-separator {\n border-top: 1px solid ").concat(dt("menubar.separator.border.color"), ";\n}\n\n.p-menubar-submenu .p-menubar-item {\n position: relative;\n}\n\n .p-menubar-submenu > .p-menubar-item-active > .p-menubar-submenu {\n display: block;\n left: 100%;\n top: 0;\n}\n\n.p-menubar-end {\n margin-left: auto;\n align-self: center;\n}\n\n.p-menubar-button {\n display: none;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: ").concat(dt("menubar.mobile.button.size"), ";\n height: ").concat(dt("menubar.mobile.button.size"), ";\n position: relative;\n color: ").concat(dt("menubar.mobile.button.color"), ";\n border: 0 none;\n background: transparent;\n border-radius: ").concat(dt("menubar.mobile.button.border.radius"), ";\n transition: background ").concat(dt("menubar.transition.duration"), ", color ").concat(dt("menubar.transition.duration"), ", outline-color ").concat(dt("menubar.transition.duration"), ";\n outline-color: transparent;\n}\n\n.p-menubar-button:hover {\n color: ").concat(dt("menubar.mobile.button.hover.color"), ";\n background: ").concat(dt("menubar.mobile.button.hover.background"), ";\n}\n\n.p-menubar-button:focus-visible {\n box-shadow: ").concat(dt("menubar.mobile.button.focus.ring.shadow"), ";\n outline: ").concat(dt("menubar.mobile.button.focus.ring.width"), " ").concat(dt("menubar.mobile.button.focus.ring.style"), " ").concat(dt("menubar.mobile.button.focus.ring.color"), ";\n outline-offset: ").concat(dt("menubar.mobile.button.focus.ring.offset"), ";\n}\n\n.p-menubar-mobile {\n position: relative;\n}\n\n.p-menubar-mobile .p-menubar-button {\n display: flex;\n}\n\n.p-menubar-mobile .p-menubar-root-list {\n position: absolute;\n display: none;\n width: 100%;\n padding: ").concat(dt("menubar.submenu.padding"), ";\n background: ").concat(dt("menubar.submenu.background"), ";\n border: 1px solid ").concat(dt("menubar.submenu.border.color"), ";\n box-shadow: ").concat(dt("menubar.submenu.shadow"), ";\n}\n\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content {\n border-radius: ").concat(dt("menubar.item.border.radius"), ";\n}\n\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content > .p-menubar-item-link {\n padding: ").concat(dt("menubar.item.padding"), ";\n}\n\n.p-menubar-mobile-active .p-menubar-root-list {\n display: flex;\n flex-direction: column;\n top: 100%;\n left: 0;\n z-index: 1;\n}\n\n.p-menubar-mobile .p-menubar-root-list .p-menubar-item {\n width: 100%;\n position: static;\n}\n\n.p-menubar-mobile .p-menubar-root-list .p-menubar-separator {\n border-top: 1px solid ").concat(dt("menubar.separator.border.color"), ";\n}\n\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content .p-menubar-submenu-icon {\n margin-left: auto;\n transition: transform 0.2s;\n}\n\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\n transform: rotate(-180deg);\n}\n\n.p-menubar-mobile .p-menubar-submenu .p-menubar-submenu-icon {\n transition: transform 0.2s;\n transform: rotate(90deg);\n}\n\n.p-menubar-mobile .p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\n transform: rotate(-90deg);\n}\n\n.p-menubar-mobile .p-menubar-submenu {\n width: 100%;\n position: static;\n box-shadow: none;\n border: 0 none;\n padding-left: ").concat(dt("menubar.submenu.mobile.indent"), ";\n}\n"); + return "\n.p-tieredmenu {\n background: ".concat(dt("tieredmenu.background"), ";\n color: ").concat(dt("tieredmenu.color"), ";\n border: 1px solid ").concat(dt("tieredmenu.border.color"), ";\n border-radius: ").concat(dt("tieredmenu.border.radius"), ";\n min-width: 12.5rem;\n}\n\n.p-tieredmenu-root-list,\n.p-tieredmenu-submenu {\n margin: 0;\n padding: ").concat(dt("tieredmenu.list.padding"), ";\n list-style: none;\n outline: 0 none;\n display: flex;\n flex-direction: column;\n gap: ").concat(dt("tieredmenu.list.gap"), ";\n}\n\n.p-tieredmenu-submenu {\n position: absolute;\n min-width: 100%;\n z-index: 1;\n background: ").concat(dt("tieredmenu.background"), ";\n color: ").concat(dt("tieredmenu.color"), ";\n border: 1px solid ").concat(dt("tieredmenu.border.color"), ";\n border-radius: ").concat(dt("tieredmenu.border.radius"), ";\n box-shadow: ").concat(dt("tieredmenu.shadow"), ";\n}\n\n.p-tieredmenu-item {\n position: relative;\n}\n\n.p-tieredmenu-item-content {\n transition: background ").concat(dt("tieredmenu.transition.duration"), ", color ").concat(dt("tieredmenu.transition.duration"), ";\n border-radius: ").concat(dt("tieredmenu.item.border.radius"), ";\n color: ").concat(dt("tieredmenu.item.color"), ";\n}\n\n.p-tieredmenu-item-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n color: inherit;\n padding: ").concat(dt("tieredmenu.item.padding"), ";\n gap: ").concat(dt("tieredmenu.item.gap"), ";\n user-select: none;\n outline: 0 none;\n}\n\n.p-tieredmenu-item-label {\n line-height: 1;\n}\n\n.p-tieredmenu-item-icon {\n color: ").concat(dt("tieredmenu.item.icon.color"), ";\n}\n\n.p-tieredmenu-submenu-icon {\n color: ").concat(dt("tieredmenu.submenu.icon.color"), ";\n margin-left: auto;\n font-size: ").concat(dt("tieredmenu.submenu.icon.size"), ";\n width: ").concat(dt("tieredmenu.submenu.icon.size"), ";\n height: ").concat(dt("tieredmenu.submenu.icon.size"), ";\n}\n\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content {\n color: ").concat(dt("tieredmenu.item.focus.color"), ";\n background: ").concat(dt("tieredmenu.item.focus.background"), ";\n}\n\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content .p-tieredmenu-item-icon {\n color: ").concat(dt("tieredmenu.item.icon.focus.color"), ";\n}\n\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content .p-tieredmenu-submenu-icon {\n color: ").concat(dt("tieredmenu.submenu.icon.focus.color"), ";\n}\n\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover {\n color: ").concat(dt("tieredmenu.item.focus.color"), ";\n background: ").concat(dt("tieredmenu.item.focus.background"), ";\n}\n\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover .p-tieredmenu-item-icon {\n color: ").concat(dt("tieredmenu.item.icon.focus.color"), ";\n}\n\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover .p-tieredmenu-submenu-icon {\n color: ").concat(dt("tieredmenu.submenu.icon.focus.color"), ";\n}\n\n.p-tieredmenu-item-active > .p-tieredmenu-item-content {\n color: ").concat(dt("tieredmenu.item.active.color"), ";\n background: ").concat(dt("tieredmenu.item.active.background"), ";\n}\n\n.p-tieredmenu-item-active > .p-tieredmenu-item-content .p-tieredmenu-item-icon {\n color: ").concat(dt("tieredmenu.item.icon.active.color"), ";\n}\n\n.p-tieredmenu-item-active > .p-tieredmenu-item-content .p-tieredmenu-submenu-icon {\n color: ").concat(dt("tieredmenu.submenu.icon.active.color"), ";\n}\n\n.p-tieredmenu-separator {\n border-top: 1px solid ").concat(dt("tieredmenu.separator.border.color"), ";\n}\n\n.p-tieredmenu-overlay {\n box-shadow: ").concat(dt("tieredmenu.shadow"), ";\n}\n\n.p-tieredmenu-enter-from,\n.p-tieredmenu-leave-active {\n opacity: 0;\n}\n\n.p-tieredmenu-enter-active {\n transition: opacity 250ms;\n}\n"); }, "theme"); var inlineStyles$1 = { submenu: /* @__PURE__ */ __name(function submenu(_ref2) { @@ -4121,55 +5582,70 @@ var inlineStyles$1 = { }; }, "submenu") }; -var classes$3 = { - root: /* @__PURE__ */ __name(function root7(_ref3) { - var instance = _ref3.instance; - return ["p-menubar p-component", { - "p-menubar-mobile": instance.queryMatches, - "p-menubar-mobile-active": instance.mobileActive +var classes$2 = { + root: /* @__PURE__ */ __name(function root8(_ref3) { + _ref3.instance; + var props = _ref3.props; + return ["p-tieredmenu p-component", { + "p-tieredmenu-overlay": props.popup }]; }, "root"), - start: "p-menubar-start", - button: "p-menubar-button", - rootList: "p-menubar-root-list", + start: "p-tieredmenu-start", + rootList: "p-tieredmenu-root-list", item: /* @__PURE__ */ __name(function item(_ref4) { var instance = _ref4.instance, processedItem = _ref4.processedItem; - return ["p-menubar-item", { - "p-menubar-item-active": instance.isItemActive(processedItem), + return ["p-tieredmenu-item", { + "p-tieredmenu-item-active": instance.isItemActive(processedItem), "p-focus": instance.isItemFocused(processedItem), "p-disabled": instance.isItemDisabled(processedItem) }]; }, "item"), - itemContent: "p-menubar-item-content", - itemLink: "p-menubar-item-link", - itemIcon: "p-menubar-item-icon", - itemLabel: "p-menubar-item-label", - submenuIcon: "p-menubar-submenu-icon", - submenu: "p-menubar-submenu", - separator: "p-menubar-separator", - end: "p-menubar-end" + itemContent: "p-tieredmenu-item-content", + itemLink: "p-tieredmenu-item-link", + itemIcon: "p-tieredmenu-item-icon", + itemLabel: "p-tieredmenu-item-label", + submenuIcon: "p-tieredmenu-submenu-icon", + submenu: "p-tieredmenu-submenu", + separator: "p-tieredmenu-separator", + end: "p-tieredmenu-end" }; -var MenubarStyle = BaseStyle.extend({ - name: "menubar", - theme: theme$3, - classes: classes$3, +var TieredMenuStyle = BaseStyle.extend({ + name: "tieredmenu", + theme: theme$2, + classes: classes$2, inlineStyles: inlineStyles$1 }); var script$2$1 = { - name: "BaseMenubar", + name: "BaseTieredMenu", "extends": script$e, props: { + popup: { + type: Boolean, + "default": false + }, model: { type: Array, "default": null }, - buttonProps: { - type: null, - "default": null + appendTo: { + type: [String, Object], + "default": "body" }, - breakpoint: { - type: String, - "default": "960px" + autoZIndex: { + type: Boolean, + "default": true + }, + baseZIndex: { + type: Number, + "default": 0 + }, + disabled: { + type: Boolean, + "default": false + }, + tabindex: { + type: Number, + "default": 0 }, ariaLabelledby: { type: String, @@ -4180,44 +5656,21 @@ var script$2$1 = { "default": null } }, - style: MenubarStyle, - provide: /* @__PURE__ */ __name(function provide8() { + style: TieredMenuStyle, + provide: /* @__PURE__ */ __name(function provide10() { return { - $pcMenubar: this, + $pcTieredMenu: this, $parentInstance: this }; }, "provide") }; -var script$1$3 = { - name: "MenubarSub", - hostName: "Menubar", +var script$1$2 = { + name: "TieredMenuSub", + hostName: "TieredMenu", "extends": script$e, - emits: ["item-mouseenter", "item-click", "item-mousemove"], + emits: ["item-click", "item-mouseenter", "item-mousemove"], + container: null, props: { - items: { - type: Array, - "default": null - }, - root: { - type: Boolean, - "default": false - }, - popup: { - type: Boolean, - "default": false - }, - mobileActive: { - type: Boolean, - "default": false - }, - templates: { - type: Object, - "default": null - }, - level: { - type: Number, - "default": 0 - }, menuId: { type: String, "default": null @@ -4226,12 +5679,31 @@ var script$1$3 = { type: String, "default": null }, + items: { + type: Array, + "default": null + }, + visible: { + type: Boolean, + "default": false + }, + level: { + type: Number, + "default": 0 + }, + templates: { + type: Object, + "default": null + }, activeItemPath: { type: Object, "default": null + }, + tabindex: { + type: Number, + "default": 0 } }, - list: null, methods: { getItemId: /* @__PURE__ */ __name(function getItemId(processedItem) { return "".concat(this.menuId, "_").concat(processedItem.key); @@ -4255,8 +5727,7 @@ var script$1$3 = { index, active: this.isItemActive(processedItem), focused: this.isItemFocused(processedItem), - disabled: this.isItemDisabled(processedItem), - level: this.level + disabled: this.isItemDisabled(processedItem) } }); }, "getPTOptions"), @@ -4277,6 +5748,9 @@ var script$1$3 = { isItemGroup: /* @__PURE__ */ __name(function isItemGroup(processedItem) { return isNotEmpty(processedItem.items); }, "isItemGroup"), + onEnter: /* @__PURE__ */ __name(function onEnter2() { + nestedPosition(this.container, this.level); + }, "onEnter"), onItemClick: /* @__PURE__ */ __name(function onItemClick(event, processedItem) { this.getItemProp(processedItem, "command", { originalEvent: event, @@ -4300,8 +5774,17 @@ var script$1$3 = { processedItem }); }, "onItemMouseMove"), + getAriaSetSize: /* @__PURE__ */ __name(function getAriaSetSize() { + var _this = this; + return this.items.filter(function(processedItem) { + return _this.isItemVisible(processedItem) && !_this.getItemProp(processedItem, "separator"); + }).length; + }, "getAriaSetSize"), getAriaPosInset: /* @__PURE__ */ __name(function getAriaPosInset2(index) { - return index - this.calculateAriaSetSize.slice(0, index).length + 1; + var _this2 = this; + return index - this.items.slice(0, index).filter(function(processedItem) { + return _this2.isItemVisible(processedItem) && _this2.getItemProp(processedItem, "separator"); + }).length + 1; }, "getAriaPosInset"), getMenuItemProps: /* @__PURE__ */ __name(function getMenuItemProps(processedItem, index) { return { @@ -4320,160 +5803,166 @@ var script$1$3 = { "class": this.cx("submenuIcon") }, this.getPTOptions(processedItem, index, "submenuIcon")) }; - }, "getMenuItemProps") - }, - computed: { - calculateAriaSetSize: /* @__PURE__ */ __name(function calculateAriaSetSize() { - var _this = this; - return this.items.filter(function(processedItem) { - return _this.isItemVisible(processedItem) && _this.getItemProp(processedItem, "separator"); - }); - }, "calculateAriaSetSize"), - getAriaSetSize: /* @__PURE__ */ __name(function getAriaSetSize() { - var _this2 = this; - return this.items.filter(function(processedItem) { - return _this2.isItemVisible(processedItem) && !_this2.getItemProp(processedItem, "separator"); - }).length; - }, "getAriaSetSize") + }, "getMenuItemProps"), + containerRef: /* @__PURE__ */ __name(function containerRef(el) { + this.container = el; + }, "containerRef") }, components: { - AngleRightIcon: script$t, - AngleDownIcon: script$u + AngleRightIcon: script$w }, directives: { ripple: Ripple } }; -var _hoisted_1$1$2 = ["id", "aria-label", "aria-disabled", "aria-expanded", "aria-haspopup", "aria-level", "aria-setsize", "aria-posinset", "data-p-active", "data-p-focused", "data-p-disabled"]; -var _hoisted_2$5 = ["onClick", "onMouseenter", "onMousemove"]; -var _hoisted_3$3 = ["href", "target"]; -var _hoisted_4$1 = ["id"]; +var _hoisted_1$1$2 = ["tabindex"]; +var _hoisted_2$6 = ["id", "aria-label", "aria-disabled", "aria-expanded", "aria-haspopup", "aria-level", "aria-setsize", "aria-posinset", "data-p-active", "data-p-focused", "data-p-disabled"]; +var _hoisted_3$5 = ["onClick", "onMouseenter", "onMousemove"]; +var _hoisted_4$1 = ["href", "target"]; var _hoisted_5$1 = ["id"]; +var _hoisted_6 = ["id"]; function render$1$1(_ctx, _cache, $props, $setup, $data, $options) { - var _component_MenubarSub = resolveComponent("MenubarSub", true); + var _component_AngleRightIcon = resolveComponent("AngleRightIcon"); + var _component_TieredMenuSub = resolveComponent("TieredMenuSub", true); var _directive_ripple = resolveDirective("ripple"); - return openBlock(), createElementBlock("ul", mergeProps({ - "class": $props.level === 0 ? _ctx.cx("rootList") : _ctx.cx("submenu") - }, $props.level === 0 ? _ctx.ptm("rootList") : _ctx.ptm("submenu")), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.items, function(processedItem, index) { - return openBlock(), createElementBlock(Fragment, { - key: $options.getItemKey(processedItem) - }, [$options.isItemVisible(processedItem) && !$options.getItemProp(processedItem, "separator") ? (openBlock(), createElementBlock("li", mergeProps({ - key: 0, - id: $options.getItemId(processedItem), - style: $options.getItemProp(processedItem, "style"), - "class": [_ctx.cx("item", { - processedItem - }), $options.getItemProp(processedItem, "class")], - role: "menuitem", - "aria-label": $options.getItemLabel(processedItem), - "aria-disabled": $options.isItemDisabled(processedItem) || void 0, - "aria-expanded": $options.isItemGroup(processedItem) ? $options.isItemActive(processedItem) : void 0, - "aria-haspopup": $options.isItemGroup(processedItem) && !$options.getItemProp(processedItem, "to") ? "menu" : void 0, - "aria-level": $props.level + 1, - "aria-setsize": $options.getAriaSetSize, - "aria-posinset": $options.getAriaPosInset(index), - ref_for: true - }, $options.getPTOptions(processedItem, index, "item"), { - "data-p-active": $options.isItemActive(processedItem), - "data-p-focused": $options.isItemFocused(processedItem), - "data-p-disabled": $options.isItemDisabled(processedItem) - }), [createBaseVNode("div", mergeProps({ - "class": _ctx.cx("itemContent"), - onClick: /* @__PURE__ */ __name(function onClick($event) { - return $options.onItemClick($event, processedItem); - }, "onClick"), - onMouseenter: /* @__PURE__ */ __name(function onMouseenter($event) { - return $options.onItemMouseEnter($event, processedItem); - }, "onMouseenter"), - onMousemove: /* @__PURE__ */ __name(function onMousemove($event) { - return $options.onItemMouseMove($event, processedItem); - }, "onMousemove"), - ref_for: true - }, $options.getPTOptions(processedItem, index, "itemContent")), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock("a", mergeProps({ - key: 0, - href: $options.getItemProp(processedItem, "url"), - "class": _ctx.cx("itemLink"), - target: $options.getItemProp(processedItem, "target"), - tabindex: "-1", - ref_for: true - }, $options.getPTOptions(processedItem, index, "itemLink")), [$props.templates.itemicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.itemicon), { - key: 0, - item: processedItem.item, - "class": normalizeClass(_ctx.cx("itemIcon")) - }, null, 8, ["item", "class"])) : $options.getItemProp(processedItem, "icon") ? (openBlock(), createElementBlock("span", mergeProps({ - key: 1, - "class": [_ctx.cx("itemIcon"), $options.getItemProp(processedItem, "icon")], - ref_for: true - }, $options.getPTOptions(processedItem, index, "itemIcon")), null, 16)) : createCommentVNode("", true), createBaseVNode("span", mergeProps({ - id: $options.getItemLabelId(processedItem), - "class": _ctx.cx("itemLabel"), - ref_for: true - }, $options.getPTOptions(processedItem, index, "itemLabel")), toDisplayString($options.getItemLabel(processedItem)), 17, _hoisted_4$1), $options.getItemProp(processedItem, "items") ? (openBlock(), createElementBlock(Fragment, { - key: 2 - }, [$props.templates.submenuicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.submenuicon), { - key: 0, - root: $props.root, - active: $options.isItemActive(processedItem), - "class": normalizeClass(_ctx.cx("submenuIcon")) - }, null, 8, ["root", "active", "class"])) : (openBlock(), createBlock(resolveDynamicComponent($props.root ? "AngleDownIcon" : "AngleRightIcon"), mergeProps({ - key: 1, - "class": _ctx.cx("submenuIcon"), - ref_for: true - }, $options.getPTOptions(processedItem, index, "submenuIcon")), null, 16, ["class"]))], 64)) : createCommentVNode("", true)], 16, _hoisted_3$3)), [[_directive_ripple]]) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), { - key: 1, - item: processedItem.item, - root: $props.root, - hasSubmenu: $options.getItemProp(processedItem, "items"), - label: $options.getItemLabel(processedItem), - props: $options.getMenuItemProps(processedItem, index) - }, null, 8, ["item", "root", "hasSubmenu", "label", "props"]))], 16, _hoisted_2$5), $options.isItemVisible(processedItem) && $options.isItemGroup(processedItem) ? (openBlock(), createBlock(_component_MenubarSub, { - key: 0, - id: $options.getItemId(processedItem) + "_list", - menuId: $props.menuId, - role: "menu", - style: normalizeStyle(_ctx.sx("submenu", true, { - processedItem - })), - focusedItemId: $props.focusedItemId, - items: processedItem.items, - mobileActive: $props.mobileActive, - activeItemPath: $props.activeItemPath, - templates: $props.templates, - level: $props.level + 1, - "aria-labelledby": $options.getItemLabelId(processedItem), - pt: _ctx.pt, - unstyled: _ctx.unstyled, - onItemClick: _cache[0] || (_cache[0] = function($event) { - return _ctx.$emit("item-click", $event); - }), - onItemMouseenter: _cache[1] || (_cache[1] = function($event) { - return _ctx.$emit("item-mouseenter", $event); - }), - onItemMousemove: _cache[2] || (_cache[2] = function($event) { - return _ctx.$emit("item-mousemove", $event); - }) - }, null, 8, ["id", "menuId", "style", "focusedItemId", "items", "mobileActive", "activeItemPath", "templates", "level", "aria-labelledby", "pt", "unstyled"])) : createCommentVNode("", true)], 16, _hoisted_1$1$2)) : createCommentVNode("", true), $options.isItemVisible(processedItem) && $options.getItemProp(processedItem, "separator") ? (openBlock(), createElementBlock("li", mergeProps({ - key: 1, - id: $options.getItemId(processedItem), - "class": [_ctx.cx("separator"), $options.getItemProp(processedItem, "class")], - style: $options.getItemProp(processedItem, "style"), - role: "separator", - ref_for: true - }, _ctx.ptm("separator")), null, 16, _hoisted_5$1)) : createCommentVNode("", true)], 64); - }), 128))], 16); + return openBlock(), createBlock(Transition, mergeProps({ + name: "p-tieredmenu", + onEnter: $options.onEnter + }, _ctx.ptm("menu.transition")), { + "default": withCtx(function() { + return [($props.level === 0 ? true : $props.visible) ? (openBlock(), createElementBlock("ul", mergeProps({ + key: 0, + ref: $options.containerRef, + "class": $props.level === 0 ? _ctx.cx("rootList") : _ctx.cx("submenu"), + tabindex: $props.tabindex + }, $props.level === 0 ? _ctx.ptm("rootList") : _ctx.ptm("submenu")), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.items, function(processedItem, index) { + return openBlock(), createElementBlock(Fragment, { + key: $options.getItemKey(processedItem) + }, [$options.isItemVisible(processedItem) && !$options.getItemProp(processedItem, "separator") ? (openBlock(), createElementBlock("li", mergeProps({ + key: 0, + id: $options.getItemId(processedItem), + style: $options.getItemProp(processedItem, "style"), + "class": [_ctx.cx("item", { + processedItem + }), $options.getItemProp(processedItem, "class")], + role: "menuitem", + "aria-label": $options.getItemLabel(processedItem), + "aria-disabled": $options.isItemDisabled(processedItem) || void 0, + "aria-expanded": $options.isItemGroup(processedItem) ? $options.isItemActive(processedItem) : void 0, + "aria-haspopup": $options.isItemGroup(processedItem) && !$options.getItemProp(processedItem, "to") ? "menu" : void 0, + "aria-level": $props.level + 1, + "aria-setsize": $options.getAriaSetSize(), + "aria-posinset": $options.getAriaPosInset(index), + ref_for: true + }, $options.getPTOptions(processedItem, index, "item"), { + "data-p-active": $options.isItemActive(processedItem), + "data-p-focused": $options.isItemFocused(processedItem), + "data-p-disabled": $options.isItemDisabled(processedItem) + }), [createBaseVNode("div", mergeProps({ + "class": _ctx.cx("itemContent"), + onClick: /* @__PURE__ */ __name(function onClick2($event) { + return $options.onItemClick($event, processedItem); + }, "onClick"), + onMouseenter: /* @__PURE__ */ __name(function onMouseenter($event) { + return $options.onItemMouseEnter($event, processedItem); + }, "onMouseenter"), + onMousemove: /* @__PURE__ */ __name(function onMousemove($event) { + return $options.onItemMouseMove($event, processedItem); + }, "onMousemove"), + ref_for: true + }, $options.getPTOptions(processedItem, index, "itemContent")), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock("a", mergeProps({ + key: 0, + href: $options.getItemProp(processedItem, "url"), + "class": _ctx.cx("itemLink"), + target: $options.getItemProp(processedItem, "target"), + tabindex: "-1", + ref_for: true + }, $options.getPTOptions(processedItem, index, "itemLink")), [$props.templates.itemicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.itemicon), { + key: 0, + item: processedItem.item, + "class": normalizeClass(_ctx.cx("itemIcon")) + }, null, 8, ["item", "class"])) : $options.getItemProp(processedItem, "icon") ? (openBlock(), createElementBlock("span", mergeProps({ + key: 1, + "class": [_ctx.cx("itemIcon"), $options.getItemProp(processedItem, "icon")], + ref_for: true + }, $options.getPTOptions(processedItem, index, "itemIcon")), null, 16)) : createCommentVNode("", true), createBaseVNode("span", mergeProps({ + id: $options.getItemLabelId(processedItem), + "class": _ctx.cx("itemLabel"), + ref_for: true + }, $options.getPTOptions(processedItem, index, "itemLabel")), toDisplayString($options.getItemLabel(processedItem)), 17, _hoisted_5$1), $options.getItemProp(processedItem, "items") ? (openBlock(), createElementBlock(Fragment, { + key: 2 + }, [$props.templates.submenuicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.submenuicon), mergeProps({ + key: 0, + "class": _ctx.cx("submenuIcon"), + active: $options.isItemActive(processedItem), + ref_for: true + }, $options.getPTOptions(processedItem, index, "submenuIcon")), null, 16, ["class", "active"])) : (openBlock(), createBlock(_component_AngleRightIcon, mergeProps({ + key: 1, + "class": _ctx.cx("submenuIcon"), + ref_for: true + }, $options.getPTOptions(processedItem, index, "submenuIcon")), null, 16, ["class"]))], 64)) : createCommentVNode("", true)], 16, _hoisted_4$1)), [[_directive_ripple]]) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), { + key: 1, + item: processedItem.item, + hasSubmenu: $options.getItemProp(processedItem, "items"), + label: $options.getItemLabel(processedItem), + props: $options.getMenuItemProps(processedItem, index) + }, null, 8, ["item", "hasSubmenu", "label", "props"]))], 16, _hoisted_3$5), $options.isItemVisible(processedItem) && $options.isItemGroup(processedItem) ? (openBlock(), createBlock(_component_TieredMenuSub, { + key: 0, + id: $options.getItemId(processedItem) + "_list", + style: normalizeStyle(_ctx.sx("submenu", true, { + processedItem + })), + "aria-labelledby": $options.getItemLabelId(processedItem), + role: "menu", + menuId: $props.menuId, + focusedItemId: $props.focusedItemId, + items: processedItem.items, + templates: $props.templates, + activeItemPath: $props.activeItemPath, + level: $props.level + 1, + visible: $options.isItemActive(processedItem) && $options.isItemGroup(processedItem), + pt: _ctx.pt, + unstyled: _ctx.unstyled, + onItemClick: _cache[0] || (_cache[0] = function($event) { + return _ctx.$emit("item-click", $event); + }), + onItemMouseenter: _cache[1] || (_cache[1] = function($event) { + return _ctx.$emit("item-mouseenter", $event); + }), + onItemMousemove: _cache[2] || (_cache[2] = function($event) { + return _ctx.$emit("item-mousemove", $event); + }) + }, null, 8, ["id", "style", "aria-labelledby", "menuId", "focusedItemId", "items", "templates", "activeItemPath", "level", "visible", "pt", "unstyled"])) : createCommentVNode("", true)], 16, _hoisted_2$6)) : createCommentVNode("", true), $options.isItemVisible(processedItem) && $options.getItemProp(processedItem, "separator") ? (openBlock(), createElementBlock("li", mergeProps({ + key: 1, + id: $options.getItemId(processedItem), + style: $options.getItemProp(processedItem, "style"), + "class": [_ctx.cx("separator"), $options.getItemProp(processedItem, "class")], + role: "separator", + ref_for: true + }, _ctx.ptm("separator")), null, 16, _hoisted_6)) : createCommentVNode("", true)], 64); + }), 128))], 16, _hoisted_1$1$2)) : createCommentVNode("", true)]; + }), + _: 1 + }, 16, ["onEnter"]); } __name(render$1$1, "render$1$1"); -script$1$3.render = render$1$1; -var script$5 = { - name: "Menubar", +script$1$2.render = render$1$1; +var script$4 = { + name: "TieredMenu", "extends": script$2$1, inheritAttrs: false, - emits: ["focus", "blur"], - matchMediaListener: null, - data: /* @__PURE__ */ __name(function data5() { + emits: ["focus", "blur", "before-show", "before-hide", "hide", "show"], + outsideClickListener: null, + scrollHandler: null, + resizeListener: null, + target: null, + container: null, + menubar: null, + searchTimeout: null, + searchValue: null, + data: /* @__PURE__ */ __name(function data6() { return { id: this.$attrs.id, - mobileActive: false, focused: false, focusedItemInfo: { index: -1, @@ -4481,9 +5970,9 @@ var script$5 = { parentKey: "" }, activeItemPath: [], - dirty: false, - query: null, - queryMatches: false + visible: !this.popup, + submenuVisible: false, + dirty: false }; }, "data"), watch: { @@ -4491,30 +5980,31 @@ var script$5 = { this.id = newValue || UniqueComponentId(); }, "$attrsId"), activeItemPath: /* @__PURE__ */ __name(function activeItemPath(newPath) { - if (isNotEmpty(newPath)) { - this.bindOutsideClickListener(); - this.bindResizeListener(); - } else { - this.unbindOutsideClickListener(); - this.unbindResizeListener(); + if (!this.popup) { + if (isNotEmpty(newPath)) { + this.bindOutsideClickListener(); + this.bindResizeListener(); + } else { + this.unbindOutsideClickListener(); + this.unbindResizeListener(); + } } }, "activeItemPath") }, - outsideClickListener: null, - container: null, - menubar: null, - mounted: /* @__PURE__ */ __name(function mounted5() { + mounted: /* @__PURE__ */ __name(function mounted6() { this.id = this.id || UniqueComponentId(); - this.bindMatchMediaListener(); }, "mounted"), - beforeUnmount: /* @__PURE__ */ __name(function beforeUnmount5() { - this.mobileActive = false; + beforeUnmount: /* @__PURE__ */ __name(function beforeUnmount6() { this.unbindOutsideClickListener(); this.unbindResizeListener(); - this.unbindMatchMediaListener(); - if (this.container) { + if (this.scrollHandler) { + this.scrollHandler.destroy(); + this.scrollHandler = null; + } + if (this.container && this.autoZIndex) { ZIndex.clear(this.container); } + this.target = null; this.container = null; }, "beforeUnmount"), methods: { @@ -4543,31 +6033,21 @@ var script$5 = { return processedItem && isNotEmpty(processedItem.items); }, "isProccessedItemGroup"), toggle: /* @__PURE__ */ __name(function toggle(event) { - var _this = this; - if (this.mobileActive) { - this.mobileActive = false; - ZIndex.clear(this.menubar); - this.hide(); - } else { - this.mobileActive = true; - ZIndex.set("menu", this.menubar, this.$primevue.config.zIndex.menu); - setTimeout(function() { - _this.show(); - }, 1); - } - this.bindOutsideClickListener(); - event.preventDefault(); + this.visible ? this.hide(event, true) : this.show(event); }, "toggle"), - show: /* @__PURE__ */ __name(function show2() { - focus(this.menubar); + show: /* @__PURE__ */ __name(function show2(event, isFocus) { + if (this.popup) { + this.$emit("before-show"); + this.visible = true; + this.target = this.target || event.currentTarget; + this.relatedTarget = event.relatedTarget || null; + } + isFocus && focus(this.menubar); }, "show"), hide: /* @__PURE__ */ __name(function hide2(event, isFocus) { - var _this2 = this; - if (this.mobileActive) { - this.mobileActive = false; - setTimeout(function() { - focus(_this2.$refs.menubutton); - }, 0); + if (this.popup) { + this.$emit("before-hide"); + this.visible = false; } this.activeItemPath = []; this.focusedItemInfo = { @@ -4575,16 +6055,18 @@ var script$5 = { level: 0, parentKey: "" }; - isFocus && focus(this.menubar); + isFocus && focus(this.relatedTarget || this.target || this.menubar); this.dirty = false; }, "hide"), - onFocus: /* @__PURE__ */ __name(function onFocus2(event) { + onFocus: /* @__PURE__ */ __name(function onFocus3(event) { this.focused = true; - this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { - index: this.findFirstFocusedItemIndex(), - level: 0, - parentKey: "" - }; + if (!this.popup) { + this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { + index: this.findFirstFocusedItemIndex(), + level: 0, + parentKey: "" + }; + } this.$emit("focus", event); }, "onFocus"), onBlur: /* @__PURE__ */ __name(function onBlur2(event) { @@ -4599,6 +6081,10 @@ var script$5 = { this.$emit("blur", event); }, "onBlur"), onKeyDown: /* @__PURE__ */ __name(function onKeyDown2(event) { + if (this.disabled) { + event.preventDefault(); + return; + } var metaKey = event.metaKey || event.ctrlKey; switch (event.code) { case "ArrowDown": @@ -4653,7 +6139,10 @@ var script$5 = { var activeItemPath3 = this.activeItemPath.filter(function(p) { return p.parentKey !== parentKey && p.parentKey !== key; }); - grouped && activeItemPath3.push(processedItem); + if (grouped) { + activeItemPath3.push(processedItem); + this.submenuVisible = true; + } this.focusedItemInfo = { index, level, @@ -4663,6 +6152,12 @@ var script$5 = { grouped && (this.dirty = true); isFocus && focus(this.menubar); }, "onItemChange"), + onOverlayClick: /* @__PURE__ */ __name(function onOverlayClick2(event) { + OverlayEventBus.emit("overlay-click", { + originalEvent: event, + target: this.target + }); + }, "onOverlayClick"), onItemClick: /* @__PURE__ */ __name(function onItemClick2(event) { var originalEvent = event.originalEvent, processedItem = event.processedItem; var grouped = this.isProccessedItemGroup(processedItem); @@ -4689,7 +6184,6 @@ var script$5 = { }); this.hide(originalEvent); this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1); - this.mobileActive = false; focus(this.menubar); } } @@ -4704,1361 +6198,12 @@ var script$5 = { this.changeFocusedItemIndex(event, event.processedItem.index); } }, "onItemMouseMove"), - menuButtonClick: /* @__PURE__ */ __name(function menuButtonClick(event) { - this.toggle(event); - }, "menuButtonClick"), - menuButtonKeydown: /* @__PURE__ */ __name(function menuButtonKeydown(event) { - (event.code === "Enter" || event.code === "NumpadEnter" || event.code === "Space") && this.menuButtonClick(event); - }, "menuButtonKeydown"), onArrowDownKey: /* @__PURE__ */ __name(function onArrowDownKey2(event) { - var processedItem = this.visibleItems[this.focusedItemInfo.index]; - var root11 = processedItem ? isEmpty(processedItem.parent) : null; - if (root11) { - var grouped = this.isProccessedItemGroup(processedItem); - if (grouped) { - this.onItemChange({ - originalEvent: event, - processedItem - }); - this.focusedItemInfo = { - index: -1, - parentKey: processedItem.key - }; - this.onArrowRightKey(event); - } - } else { - var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex(); - this.changeFocusedItemIndex(event, itemIndex); - } - event.preventDefault(); - }, "onArrowDownKey"), - onArrowUpKey: /* @__PURE__ */ __name(function onArrowUpKey2(event) { - var _this3 = this; - var processedItem = this.visibleItems[this.focusedItemInfo.index]; - var root11 = isEmpty(processedItem.parent); - if (root11) { - var grouped = this.isProccessedItemGroup(processedItem); - if (grouped) { - this.onItemChange({ - originalEvent: event, - processedItem - }); - this.focusedItemInfo = { - index: -1, - parentKey: processedItem.key - }; - var itemIndex = this.findLastItemIndex(); - this.changeFocusedItemIndex(event, itemIndex); - } - } else { - var parentItem = this.activeItemPath.find(function(p) { - return p.key === processedItem.parentKey; - }); - if (this.focusedItemInfo.index === 0) { - this.focusedItemInfo = { - index: -1, - parentKey: parentItem ? parentItem.parentKey : "" - }; - this.searchValue = ""; - this.onArrowLeftKey(event); - this.activeItemPath = this.activeItemPath.filter(function(p) { - return p.parentKey !== _this3.focusedItemInfo.parentKey; - }); - } else { - var _itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex(); - this.changeFocusedItemIndex(event, _itemIndex); - } - } - event.preventDefault(); - }, "onArrowUpKey"), - onArrowLeftKey: /* @__PURE__ */ __name(function onArrowLeftKey2(event) { - var _this4 = this; - var processedItem = this.visibleItems[this.focusedItemInfo.index]; - var parentItem = processedItem ? this.activeItemPath.find(function(p) { - return p.key === processedItem.parentKey; - }) : null; - if (parentItem) { - this.onItemChange({ - originalEvent: event, - processedItem: parentItem - }); - this.activeItemPath = this.activeItemPath.filter(function(p) { - return p.parentKey !== _this4.focusedItemInfo.parentKey; - }); - event.preventDefault(); - } else { - var itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex(); - this.changeFocusedItemIndex(event, itemIndex); - event.preventDefault(); - } - }, "onArrowLeftKey"), - onArrowRightKey: /* @__PURE__ */ __name(function onArrowRightKey2(event) { - var processedItem = this.visibleItems[this.focusedItemInfo.index]; - var parentItem = processedItem ? this.activeItemPath.find(function(p) { - return p.key === processedItem.parentKey; - }) : null; - if (parentItem) { - var grouped = this.isProccessedItemGroup(processedItem); - if (grouped) { - this.onItemChange({ - originalEvent: event, - processedItem - }); - this.focusedItemInfo = { - index: -1, - parentKey: processedItem.key - }; - this.onArrowDownKey(event); - } - } else { - var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex(); - this.changeFocusedItemIndex(event, itemIndex); - event.preventDefault(); - } - }, "onArrowRightKey"), - onHomeKey: /* @__PURE__ */ __name(function onHomeKey2(event) { - this.changeFocusedItemIndex(event, this.findFirstItemIndex()); - event.preventDefault(); - }, "onHomeKey"), - onEndKey: /* @__PURE__ */ __name(function onEndKey2(event) { - this.changeFocusedItemIndex(event, this.findLastItemIndex()); - event.preventDefault(); - }, "onEndKey"), - onEnterKey: /* @__PURE__ */ __name(function onEnterKey2(event) { - if (this.focusedItemInfo.index !== -1) { - var element = findSingle(this.menubar, 'li[id="'.concat("".concat(this.focusedItemId), '"]')); - var anchorElement = element && findSingle(element, 'a[data-pc-section="itemlink"]'); - anchorElement ? anchorElement.click() : element && element.click(); - var processedItem = this.visibleItems[this.focusedItemInfo.index]; - var grouped = this.isProccessedItemGroup(processedItem); - !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex()); - } - event.preventDefault(); - }, "onEnterKey"), - onSpaceKey: /* @__PURE__ */ __name(function onSpaceKey(event) { - this.onEnterKey(event); - }, "onSpaceKey"), - onEscapeKey: /* @__PURE__ */ __name(function onEscapeKey2(event) { - if (this.focusedItemInfo.level !== 0) { - var _focusedItemInfo = this.focusedItemInfo; - this.hide(event, false); - this.focusedItemInfo = { - index: Number(_focusedItemInfo.parentKey.split("_")[0]), - level: 0, - parentKey: "" - }; - } - event.preventDefault(); - }, "onEscapeKey"), - onTabKey: /* @__PURE__ */ __name(function onTabKey2(event) { - if (this.focusedItemInfo.index !== -1) { - var processedItem = this.visibleItems[this.focusedItemInfo.index]; - var grouped = this.isProccessedItemGroup(processedItem); - !grouped && this.onItemChange({ - originalEvent: event, - processedItem - }); - } - this.hide(); - }, "onTabKey"), - bindOutsideClickListener: /* @__PURE__ */ __name(function bindOutsideClickListener2() { - var _this5 = this; - if (!this.outsideClickListener) { - this.outsideClickListener = function(event) { - var isOutsideContainer = _this5.container && !_this5.container.contains(event.target); - var isOutsideTarget = !(_this5.target && (_this5.target === event.target || _this5.target.contains(event.target))); - if (isOutsideContainer && isOutsideTarget) { - _this5.hide(); - } - }; - document.addEventListener("click", this.outsideClickListener); - } - }, "bindOutsideClickListener"), - unbindOutsideClickListener: /* @__PURE__ */ __name(function unbindOutsideClickListener2() { - if (this.outsideClickListener) { - document.removeEventListener("click", this.outsideClickListener); - this.outsideClickListener = null; - } - }, "unbindOutsideClickListener"), - bindResizeListener: /* @__PURE__ */ __name(function bindResizeListener2() { - var _this6 = this; - if (!this.resizeListener) { - this.resizeListener = function(event) { - if (!isTouchDevice()) { - _this6.hide(event, true); - } - _this6.mobileActive = false; - }; - window.addEventListener("resize", this.resizeListener); - } - }, "bindResizeListener"), - unbindResizeListener: /* @__PURE__ */ __name(function unbindResizeListener2() { - if (this.resizeListener) { - window.removeEventListener("resize", this.resizeListener); - this.resizeListener = null; - } - }, "unbindResizeListener"), - bindMatchMediaListener: /* @__PURE__ */ __name(function bindMatchMediaListener() { - var _this7 = this; - if (!this.matchMediaListener) { - var query = matchMedia("(max-width: ".concat(this.breakpoint, ")")); - this.query = query; - this.queryMatches = query.matches; - this.matchMediaListener = function() { - _this7.queryMatches = query.matches; - _this7.mobileActive = false; - }; - this.query.addEventListener("change", this.matchMediaListener); - } - }, "bindMatchMediaListener"), - unbindMatchMediaListener: /* @__PURE__ */ __name(function unbindMatchMediaListener() { - if (this.matchMediaListener) { - this.query.removeEventListener("change", this.matchMediaListener); - this.matchMediaListener = null; - } - }, "unbindMatchMediaListener"), - isItemMatched: /* @__PURE__ */ __name(function isItemMatched(processedItem) { - var _this$getProccessedIt; - return this.isValidItem(processedItem) && ((_this$getProccessedIt = this.getProccessedItemLabel(processedItem)) === null || _this$getProccessedIt === void 0 ? void 0 : _this$getProccessedIt.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase())); - }, "isItemMatched"), - isValidItem: /* @__PURE__ */ __name(function isValidItem(processedItem) { - return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item); - }, "isValidItem"), - isValidSelectedItem: /* @__PURE__ */ __name(function isValidSelectedItem(processedItem) { - return this.isValidItem(processedItem) && this.isSelected(processedItem); - }, "isValidSelectedItem"), - isSelected: /* @__PURE__ */ __name(function isSelected2(processedItem) { - return this.activeItemPath.some(function(p) { - return p.key === processedItem.key; - }); - }, "isSelected"), - findFirstItemIndex: /* @__PURE__ */ __name(function findFirstItemIndex() { - var _this8 = this; - return this.visibleItems.findIndex(function(processedItem) { - return _this8.isValidItem(processedItem); - }); - }, "findFirstItemIndex"), - findLastItemIndex: /* @__PURE__ */ __name(function findLastItemIndex() { - var _this9 = this; - return findLastIndex(this.visibleItems, function(processedItem) { - return _this9.isValidItem(processedItem); - }); - }, "findLastItemIndex"), - findNextItemIndex: /* @__PURE__ */ __name(function findNextItemIndex(index) { - var _this10 = this; - var matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex(function(processedItem) { - return _this10.isValidItem(processedItem); - }) : -1; - return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index; - }, "findNextItemIndex"), - findPrevItemIndex: /* @__PURE__ */ __name(function findPrevItemIndex(index) { - var _this11 = this; - var matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), function(processedItem) { - return _this11.isValidItem(processedItem); - }) : -1; - return matchedItemIndex > -1 ? matchedItemIndex : index; - }, "findPrevItemIndex"), - findSelectedItemIndex: /* @__PURE__ */ __name(function findSelectedItemIndex() { - var _this12 = this; - return this.visibleItems.findIndex(function(processedItem) { - return _this12.isValidSelectedItem(processedItem); - }); - }, "findSelectedItemIndex"), - findFirstFocusedItemIndex: /* @__PURE__ */ __name(function findFirstFocusedItemIndex() { - var selectedIndex = this.findSelectedItemIndex(); - return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex; - }, "findFirstFocusedItemIndex"), - findLastFocusedItemIndex: /* @__PURE__ */ __name(function findLastFocusedItemIndex() { - var selectedIndex = this.findSelectedItemIndex(); - return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex; - }, "findLastFocusedItemIndex"), - searchItems: /* @__PURE__ */ __name(function searchItems(event, _char) { - var _this13 = this; - this.searchValue = (this.searchValue || "") + _char; - var itemIndex = -1; - var matched = false; - if (this.focusedItemInfo.index !== -1) { - itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex(function(processedItem) { - return _this13.isItemMatched(processedItem); - }); - itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex(function(processedItem) { - return _this13.isItemMatched(processedItem); - }) : itemIndex + this.focusedItemInfo.index; - } else { - itemIndex = this.visibleItems.findIndex(function(processedItem) { - return _this13.isItemMatched(processedItem); - }); - } - if (itemIndex !== -1) { - matched = true; - } - if (itemIndex === -1 && this.focusedItemInfo.index === -1) { - itemIndex = this.findFirstFocusedItemIndex(); - } - if (itemIndex !== -1) { - this.changeFocusedItemIndex(event, itemIndex); - } - if (this.searchTimeout) { - clearTimeout(this.searchTimeout); - } - this.searchTimeout = setTimeout(function() { - _this13.searchValue = ""; - _this13.searchTimeout = null; - }, 500); - return matched; - }, "searchItems"), - changeFocusedItemIndex: /* @__PURE__ */ __name(function changeFocusedItemIndex(event, index) { - if (this.focusedItemInfo.index !== index) { - this.focusedItemInfo.index = index; - this.scrollInView(); - } - }, "changeFocusedItemIndex"), - scrollInView: /* @__PURE__ */ __name(function scrollInView2() { - var index = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : -1; - var id = index !== -1 ? "".concat(this.id, "_").concat(index) : this.focusedItemId; - var element = findSingle(this.menubar, 'li[id="'.concat(id, '"]')); - if (element) { - element.scrollIntoView && element.scrollIntoView({ - block: "nearest", - inline: "start" - }); - } - }, "scrollInView"), - createProcessedItems: /* @__PURE__ */ __name(function createProcessedItems(items) { - var _this14 = this; - var level = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; - var parent = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; - var parentKey = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : ""; - var processedItems3 = []; - items && items.forEach(function(item3, index) { - var key = (parentKey !== "" ? parentKey + "_" : "") + index; - var newItem = { - item: item3, - index, - level, - key, - parent, - parentKey - }; - newItem["items"] = _this14.createProcessedItems(item3.items, level + 1, newItem, key); - processedItems3.push(newItem); - }); - return processedItems3; - }, "createProcessedItems"), - containerRef: /* @__PURE__ */ __name(function containerRef(el) { - this.container = el; - }, "containerRef"), - menubarRef: /* @__PURE__ */ __name(function menubarRef(el) { - this.menubar = el ? el.$el : void 0; - }, "menubarRef") - }, - computed: { - processedItems: /* @__PURE__ */ __name(function processedItems() { - return this.createProcessedItems(this.model || []); - }, "processedItems"), - visibleItems: /* @__PURE__ */ __name(function visibleItems() { - var _this15 = this; - var processedItem = this.activeItemPath.find(function(p) { - return p.key === _this15.focusedItemInfo.parentKey; - }); - return processedItem ? processedItem.items : this.processedItems; - }, "visibleItems"), - focusedItemId: /* @__PURE__ */ __name(function focusedItemId() { - return this.focusedItemInfo.index !== -1 ? "".concat(this.id).concat(isNotEmpty(this.focusedItemInfo.parentKey) ? "_" + this.focusedItemInfo.parentKey : "", "_").concat(this.focusedItemInfo.index) : null; - }, "focusedItemId") - }, - components: { - MenubarSub: script$1$3, - BarsIcon: script$v - } -}; -function _typeof(o) { - "@babel/helpers - typeof"; - return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { - return typeof o2; - } : function(o2) { - return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; - }, _typeof(o); -} -__name(_typeof, "_typeof"); -function ownKeys(e, r) { - var t = Object.keys(e); - if (Object.getOwnPropertySymbols) { - var o = Object.getOwnPropertySymbols(e); - r && (o = o.filter(function(r2) { - return Object.getOwnPropertyDescriptor(e, r2).enumerable; - })), t.push.apply(t, o); - } - return t; -} -__name(ownKeys, "ownKeys"); -function _objectSpread(e) { - for (var r = 1; r < arguments.length; r++) { - var t = null != arguments[r] ? arguments[r] : {}; - r % 2 ? ownKeys(Object(t), true).forEach(function(r2) { - _defineProperty(e, r2, t[r2]); - }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) { - Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); - }); - } - return e; -} -__name(_objectSpread, "_objectSpread"); -function _defineProperty(e, r, t) { - return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; -} -__name(_defineProperty, "_defineProperty"); -function _toPropertyKey(t) { - var i = _toPrimitive(t, "string"); - return "symbol" == _typeof(i) ? i : i + ""; -} -__name(_toPropertyKey, "_toPropertyKey"); -function _toPrimitive(t, r) { - if ("object" != _typeof(t) || !t) return t; - var e = t[Symbol.toPrimitive]; - if (void 0 !== e) { - var i = e.call(t, r || "default"); - if ("object" != _typeof(i)) return i; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return ("string" === r ? String : Number)(t); -} -__name(_toPrimitive, "_toPrimitive"); -var _hoisted_1$7 = ["aria-haspopup", "aria-expanded", "aria-controls", "aria-label"]; -function render$5(_ctx, _cache, $props, $setup, $data, $options) { - var _component_BarsIcon = resolveComponent("BarsIcon"); - var _component_MenubarSub = resolveComponent("MenubarSub"); - return openBlock(), createElementBlock("div", mergeProps({ - ref: $options.containerRef, - "class": _ctx.cx("root") - }, _ctx.ptmi("root")), [_ctx.$slots.start ? (openBlock(), createElementBlock("div", mergeProps({ - key: 0, - "class": _ctx.cx("start") - }, _ctx.ptm("start")), [renderSlot(_ctx.$slots, "start")], 16)) : createCommentVNode("", true), renderSlot(_ctx.$slots, _ctx.$slots.button ? "button" : "menubutton", { - id: $data.id, - "class": normalizeClass(_ctx.cx("button")), - toggleCallback: /* @__PURE__ */ __name(function toggleCallback(event) { - return $options.menuButtonClick(event); - }, "toggleCallback") - }, function() { - var _ctx$$primevue$config; - return [_ctx.model && _ctx.model.length > 0 ? (openBlock(), createElementBlock("a", mergeProps({ - key: 0, - ref: "menubutton", - role: "button", - tabindex: "0", - "class": _ctx.cx("button"), - "aria-haspopup": _ctx.model.length && _ctx.model.length > 0 ? true : false, - "aria-expanded": $data.mobileActive, - "aria-controls": $data.id, - "aria-label": (_ctx$$primevue$config = _ctx.$primevue.config.locale.aria) === null || _ctx$$primevue$config === void 0 ? void 0 : _ctx$$primevue$config.navigation, - onClick: _cache[0] || (_cache[0] = function($event) { - return $options.menuButtonClick($event); - }), - onKeydown: _cache[1] || (_cache[1] = function($event) { - return $options.menuButtonKeydown($event); - }) - }, _objectSpread(_objectSpread({}, _ctx.buttonProps), _ctx.ptm("button"))), [renderSlot(_ctx.$slots, _ctx.$slots.buttonicon ? "buttonicon" : "menubuttonicon", {}, function() { - return [createVNode(_component_BarsIcon, normalizeProps(guardReactiveProps(_ctx.ptm("buttonicon"))), null, 16)]; - })], 16, _hoisted_1$7)) : createCommentVNode("", true)]; - }), createVNode(_component_MenubarSub, { - ref: $options.menubarRef, - id: $data.id + "_list", - role: "menubar", - items: $options.processedItems, - templates: _ctx.$slots, - root: true, - mobileActive: $data.mobileActive, - tabindex: "0", - "aria-activedescendant": $data.focused ? $options.focusedItemId : void 0, - menuId: $data.id, - focusedItemId: $data.focused ? $options.focusedItemId : void 0, - activeItemPath: $data.activeItemPath, - level: 0, - "aria-labelledby": _ctx.ariaLabelledby, - "aria-label": _ctx.ariaLabel, - pt: _ctx.pt, - unstyled: _ctx.unstyled, - onFocus: $options.onFocus, - onBlur: $options.onBlur, - onKeydown: $options.onKeyDown, - onItemClick: $options.onItemClick, - onItemMouseenter: $options.onItemMouseEnter, - onItemMousemove: $options.onItemMouseMove - }, null, 8, ["id", "items", "templates", "mobileActive", "aria-activedescendant", "menuId", "focusedItemId", "activeItemPath", "aria-labelledby", "aria-label", "pt", "unstyled", "onFocus", "onBlur", "onKeydown", "onItemClick", "onItemMouseenter", "onItemMousemove"]), _ctx.$slots.end ? (openBlock(), createElementBlock("div", mergeProps({ - key: 1, - "class": _ctx.cx("end") - }, _ctx.ptm("end")), [renderSlot(_ctx.$slots, "end")], 16)) : createCommentVNode("", true)], 16); -} -__name(render$5, "render$5"); -script$5.render = render$5; -const _withScopeId$2 = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-9646ca0a"), n = n(), popScopeId(), n), "_withScopeId$2"); -const _hoisted_1$6 = ["href"]; -const _hoisted_2$4 = { class: "p-menubar-item-label" }; -const _hoisted_3$2 = { - key: 1, - class: "ml-auto border border-surface rounded text-muted text-xs p-1 keybinding-tag" -}; -const _sfc_main$5 = /* @__PURE__ */ defineComponent({ - __name: "CommandMenubar", - setup(__props) { - const settingStore = useSettingStore(); - const dropdownDirection = computed( - () => settingStore.get("Comfy.UseNewMenu") === "Top" ? "down" : "up" - ); - const menuItemsStore = useMenuItemStore(); - const items = menuItemsStore.menuItems; - return (_ctx, _cache) => { - return openBlock(), createBlock(unref(script$5), { - model: unref(items), - class: "top-menubar border-none p-0 bg-transparent", - pt: { - rootList: "gap-0 flex-nowrap w-auto", - submenu: `dropdown-direction-${dropdownDirection.value}`, - item: "relative" - } - }, { - item: withCtx(({ item: item3, props }) => [ - createBaseVNode("a", mergeProps({ class: "p-menubar-item-link" }, props.action, { - href: item3.url, - target: "_blank" - }), [ - item3.icon ? (openBlock(), createElementBlock("span", { - key: 0, - class: normalizeClass(["p-menubar-item-icon", item3.icon]) - }, null, 2)) : createCommentVNode("", true), - createBaseVNode("span", _hoisted_2$4, toDisplayString(item3.label), 1), - item3?.comfyCommand?.keybinding ? (openBlock(), createElementBlock("span", _hoisted_3$2, toDisplayString(item3.comfyCommand.keybinding.combo.toString()), 1)) : createCommentVNode("", true) - ], 16, _hoisted_1$6) - ]), - _: 1 - }, 8, ["model", "pt"]); - }; - } -}); -const CommandMenubar = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-9646ca0a"]]); -var theme$2 = /* @__PURE__ */ __name(function theme7(_ref) { - var dt = _ref.dt; - return "\n.p-panel {\n border: 1px solid ".concat(dt("panel.border.color"), ";\n border-radius: ").concat(dt("panel.border.radius"), ";\n background: ").concat(dt("panel.background"), ";\n color: ").concat(dt("panel.color"), ";\n}\n\n.p-panel-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: ").concat(dt("panel.header.padding"), ";\n background: ").concat(dt("panel.header.background"), ";\n color: ").concat(dt("panel.header.color"), ";\n border-style: solid;\n border-width: ").concat(dt("panel.header.border.width"), ";\n border-color: ").concat(dt("panel.header.border.color"), ";\n border-radius: ").concat(dt("panel.header.border.radius"), ";\n}\n\n.p-panel-toggleable .p-panel-header {\n padding: ").concat(dt("panel.toggleable.header.padding"), ";\n}\n\n.p-panel-title {\n line-height: 1;\n font-weight: ").concat(dt("panel.title.font.weight"), ";\n}\n\n.p-panel-content {\n padding: ").concat(dt("panel.content.padding"), ";\n}\n\n.p-panel-footer {\n padding: ").concat(dt("panel.footer.padding"), ";\n}\n"); -}, "theme"); -var classes$2 = { - root: /* @__PURE__ */ __name(function root8(_ref2) { - var props = _ref2.props; - return ["p-panel p-component", { - "p-panel-toggleable": props.toggleable - }]; - }, "root"), - header: "p-panel-header", - title: "p-panel-title", - headerActions: "p-panel-header-actions", - pcToggleButton: "p-panel-toggle-button", - contentContainer: "p-panel-content-container", - content: "p-panel-content", - footer: "p-panel-footer" -}; -var PanelStyle = BaseStyle.extend({ - name: "panel", - theme: theme$2, - classes: classes$2 -}); -var script$1$2 = { - name: "BasePanel", - "extends": script$e, - props: { - header: String, - toggleable: Boolean, - collapsed: Boolean, - toggleButtonProps: { - type: Object, - "default": /* @__PURE__ */ __name(function _default() { - return { - severity: "secondary", - text: true, - rounded: true - }; - }, "_default") - } - }, - style: PanelStyle, - provide: /* @__PURE__ */ __name(function provide9() { - return { - $pcPanel: this, - $parentInstance: this - }; - }, "provide") -}; -var script$4 = { - name: "Panel", - "extends": script$1$2, - inheritAttrs: false, - emits: ["update:collapsed", "toggle"], - data: /* @__PURE__ */ __name(function data6() { - return { - id: this.$attrs.id, - d_collapsed: this.collapsed - }; - }, "data"), - watch: { - "$attrs.id": /* @__PURE__ */ __name(function $attrsId3(newValue) { - this.id = newValue || UniqueComponentId(); - }, "$attrsId"), - collapsed: /* @__PURE__ */ __name(function collapsed(newValue) { - this.d_collapsed = newValue; - }, "collapsed") - }, - mounted: /* @__PURE__ */ __name(function mounted6() { - this.id = this.id || UniqueComponentId(); - }, "mounted"), - methods: { - toggle: /* @__PURE__ */ __name(function toggle2(event) { - this.d_collapsed = !this.d_collapsed; - this.$emit("update:collapsed", this.d_collapsed); - this.$emit("toggle", { - originalEvent: event, - value: this.d_collapsed - }); - }, "toggle"), - onKeyDown: /* @__PURE__ */ __name(function onKeyDown3(event) { - if (event.code === "Enter" || event.code === "NumpadEnter" || event.code === "Space") { - this.toggle(event); - event.preventDefault(); - } - }, "onKeyDown") - }, - computed: { - buttonAriaLabel: /* @__PURE__ */ __name(function buttonAriaLabel() { - return this.toggleButtonProps && this.toggleButtonProps.ariaLabel ? this.toggleButtonProps.ariaLabel : this.header; - }, "buttonAriaLabel") - }, - components: { - PlusIcon: script$w, - MinusIcon: script$x, - Button: script$d - }, - directives: { - ripple: Ripple - } -}; -var _hoisted_1$5 = ["id"]; -var _hoisted_2$3 = ["id", "aria-labelledby"]; -function render$4(_ctx, _cache, $props, $setup, $data, $options) { - var _component_Button = resolveComponent("Button"); - return openBlock(), createElementBlock("div", mergeProps({ - "class": _ctx.cx("root") - }, _ctx.ptmi("root")), [createBaseVNode("div", mergeProps({ - "class": _ctx.cx("header") - }, _ctx.ptm("header")), [renderSlot(_ctx.$slots, "header", { - id: $data.id + "_header", - "class": normalizeClass(_ctx.cx("title")) - }, function() { - return [_ctx.header ? (openBlock(), createElementBlock("span", mergeProps({ - key: 0, - id: $data.id + "_header", - "class": _ctx.cx("title") - }, _ctx.ptm("title")), toDisplayString(_ctx.header), 17, _hoisted_1$5)) : createCommentVNode("", true)]; - }), createBaseVNode("div", mergeProps({ - "class": _ctx.cx("headerActions") - }, _ctx.ptm("headerActions")), [renderSlot(_ctx.$slots, "icons"), _ctx.toggleable ? (openBlock(), createBlock(_component_Button, mergeProps({ - key: 0, - id: $data.id + "_header", - "class": _ctx.cx("pcToggleButton"), - "aria-label": $options.buttonAriaLabel, - "aria-controls": $data.id + "_content", - "aria-expanded": !$data.d_collapsed, - unstyled: _ctx.unstyled, - onClick: $options.toggle, - onKeydown: $options.onKeyDown - }, _ctx.toggleButtonProps, { - pt: _ctx.ptm("pcToggleButton") - }), { - icon: withCtx(function(slotProps) { - return [renderSlot(_ctx.$slots, _ctx.$slots.toggleicon ? "toggleicon" : "togglericon", { - collapsed: $data.d_collapsed - }, function() { - return [(openBlock(), createBlock(resolveDynamicComponent($data.d_collapsed ? "PlusIcon" : "MinusIcon"), mergeProps({ - "class": slotProps["class"] - }, _ctx.ptm("pcToggleButton")["icon"]), null, 16, ["class"]))]; - })]; - }), - _: 3 - }, 16, ["id", "class", "aria-label", "aria-controls", "aria-expanded", "unstyled", "onClick", "onKeydown", "pt"])) : createCommentVNode("", true)], 16)], 16), createVNode(Transition, mergeProps({ - name: "p-toggleable-content" - }, _ctx.ptm("transition")), { - "default": withCtx(function() { - return [withDirectives(createBaseVNode("div", mergeProps({ - id: $data.id + "_content", - "class": _ctx.cx("contentContainer"), - role: "region", - "aria-labelledby": $data.id + "_header" - }, _ctx.ptm("contentContainer")), [createBaseVNode("div", mergeProps({ - "class": _ctx.cx("content") - }, _ctx.ptm("content")), [renderSlot(_ctx.$slots, "default")], 16), _ctx.$slots.footer ? (openBlock(), createElementBlock("div", mergeProps({ - key: 0, - "class": _ctx.cx("footer") - }, _ctx.ptm("footer")), [renderSlot(_ctx.$slots, "footer")], 16)) : createCommentVNode("", true)], 16, _hoisted_2$3), [[vShow, !$data.d_collapsed]])]; - }), - _: 3 - }, 16)], 16); -} -__name(render$4, "render$4"); -script$4.render = render$4; -const _hoisted_1$4 = { - viewBox: "0 0 24 24", - width: "1.2em", - height: "1.2em" -}; -const _hoisted_2$2 = /* @__PURE__ */ createBaseVNode("g", { - fill: "none", - stroke: "currentColor", - "stroke-linecap": "round", - "stroke-linejoin": "round", - "stroke-width": "2" -}, [ - /* @__PURE__ */ createBaseVNode("path", { d: "M16 12H3m13 6H3m7-12H3m18 12V8a2 2 0 0 0-2-2h-5" }), - /* @__PURE__ */ createBaseVNode("path", { d: "m16 8l-2-2l2-2" }) -], -1); -const _hoisted_3$1 = [ - _hoisted_2$2 -]; -function render$3(_ctx, _cache) { - return openBlock(), createElementBlock("svg", _hoisted_1$4, [..._hoisted_3$1]); -} -__name(render$3, "render$3"); -const __unplugin_components_0 = markRaw({ name: "lucide-list-start", render: render$3 }); -var theme$1 = /* @__PURE__ */ __name(function theme8(_ref) { - var dt = _ref.dt; - return "\n.p-tieredmenu {\n background: ".concat(dt("tieredmenu.background"), ";\n color: ").concat(dt("tieredmenu.color"), ";\n border: 1px solid ").concat(dt("tieredmenu.border.color"), ";\n border-radius: ").concat(dt("tieredmenu.border.radius"), ";\n min-width: 12.5rem;\n}\n\n.p-tieredmenu-root-list,\n.p-tieredmenu-submenu {\n margin: 0;\n padding: ").concat(dt("tieredmenu.list.padding"), ";\n list-style: none;\n outline: 0 none;\n display: flex;\n flex-direction: column;\n gap: ").concat(dt("tieredmenu.list.gap"), ";\n}\n\n.p-tieredmenu-submenu {\n position: absolute;\n min-width: 100%;\n z-index: 1;\n background: ").concat(dt("tieredmenu.background"), ";\n color: ").concat(dt("tieredmenu.color"), ";\n border: 1px solid ").concat(dt("tieredmenu.border.color"), ";\n border-radius: ").concat(dt("tieredmenu.border.radius"), ";\n box-shadow: ").concat(dt("tieredmenu.shadow"), ";\n}\n\n.p-tieredmenu-item {\n position: relative;\n}\n\n.p-tieredmenu-item-content {\n transition: background ").concat(dt("tieredmenu.transition.duration"), ", color ").concat(dt("tieredmenu.transition.duration"), ";\n border-radius: ").concat(dt("tieredmenu.item.border.radius"), ";\n color: ").concat(dt("tieredmenu.item.color"), ";\n}\n\n.p-tieredmenu-item-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n color: inherit;\n padding: ").concat(dt("tieredmenu.item.padding"), ";\n gap: ").concat(dt("tieredmenu.item.gap"), ";\n user-select: none;\n outline: 0 none;\n}\n\n.p-tieredmenu-item-label {\n line-height: 1;\n}\n\n.p-tieredmenu-item-icon {\n color: ").concat(dt("tieredmenu.item.icon.color"), ";\n}\n\n.p-tieredmenu-submenu-icon {\n color: ").concat(dt("tieredmenu.submenu.icon.color"), ";\n margin-left: auto;\n font-size: ").concat(dt("tieredmenu.submenu.icon.size"), ";\n width: ").concat(dt("tieredmenu.submenu.icon.size"), ";\n height: ").concat(dt("tieredmenu.submenu.icon.size"), ";\n}\n\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content {\n color: ").concat(dt("tieredmenu.item.focus.color"), ";\n background: ").concat(dt("tieredmenu.item.focus.background"), ";\n}\n\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content .p-tieredmenu-item-icon {\n color: ").concat(dt("tieredmenu.item.icon.focus.color"), ";\n}\n\n.p-tieredmenu-item.p-focus > .p-tieredmenu-item-content .p-tieredmenu-submenu-icon {\n color: ").concat(dt("tieredmenu.submenu.icon.focus.color"), ";\n}\n\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover {\n color: ").concat(dt("tieredmenu.item.focus.color"), ";\n background: ").concat(dt("tieredmenu.item.focus.background"), ";\n}\n\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover .p-tieredmenu-item-icon {\n color: ").concat(dt("tieredmenu.item.icon.focus.color"), ";\n}\n\n.p-tieredmenu-item:not(.p-disabled) > .p-tieredmenu-item-content:hover .p-tieredmenu-submenu-icon {\n color: ").concat(dt("tieredmenu.submenu.icon.focus.color"), ";\n}\n\n.p-tieredmenu-item-active > .p-tieredmenu-item-content {\n color: ").concat(dt("tieredmenu.item.active.color"), ";\n background: ").concat(dt("tieredmenu.item.active.background"), ";\n}\n\n.p-tieredmenu-item-active > .p-tieredmenu-item-content .p-tieredmenu-item-icon {\n color: ").concat(dt("tieredmenu.item.icon.active.color"), ";\n}\n\n.p-tieredmenu-item-active > .p-tieredmenu-item-content .p-tieredmenu-submenu-icon {\n color: ").concat(dt("tieredmenu.submenu.icon.active.color"), ";\n}\n\n.p-tieredmenu-separator {\n border-top: 1px solid ").concat(dt("tieredmenu.separator.border.color"), ";\n}\n\n.p-tieredmenu-overlay {\n box-shadow: ").concat(dt("tieredmenu.shadow"), ";\n}\n\n.p-tieredmenu-enter-from,\n.p-tieredmenu-leave-active {\n opacity: 0;\n}\n\n.p-tieredmenu-enter-active {\n transition: opacity 250ms;\n}\n"); -}, "theme"); -var inlineStyles = { - submenu: /* @__PURE__ */ __name(function submenu2(_ref2) { - var instance = _ref2.instance, processedItem = _ref2.processedItem; - return { - display: instance.isItemActive(processedItem) ? "flex" : "none" - }; - }, "submenu") -}; -var classes$1 = { - root: /* @__PURE__ */ __name(function root9(_ref3) { - _ref3.instance; - var props = _ref3.props; - return ["p-tieredmenu p-component", { - "p-tieredmenu-overlay": props.popup - }]; - }, "root"), - start: "p-tieredmenu-start", - rootList: "p-tieredmenu-root-list", - item: /* @__PURE__ */ __name(function item2(_ref4) { - var instance = _ref4.instance, processedItem = _ref4.processedItem; - return ["p-tieredmenu-item", { - "p-tieredmenu-item-active": instance.isItemActive(processedItem), - "p-focus": instance.isItemFocused(processedItem), - "p-disabled": instance.isItemDisabled(processedItem) - }]; - }, "item"), - itemContent: "p-tieredmenu-item-content", - itemLink: "p-tieredmenu-item-link", - itemIcon: "p-tieredmenu-item-icon", - itemLabel: "p-tieredmenu-item-label", - submenuIcon: "p-tieredmenu-submenu-icon", - submenu: "p-tieredmenu-submenu", - separator: "p-tieredmenu-separator", - end: "p-tieredmenu-end" -}; -var TieredMenuStyle = BaseStyle.extend({ - name: "tieredmenu", - theme: theme$1, - classes: classes$1, - inlineStyles -}); -var script$2 = { - name: "BaseTieredMenu", - "extends": script$e, - props: { - popup: { - type: Boolean, - "default": false - }, - model: { - type: Array, - "default": null - }, - appendTo: { - type: [String, Object], - "default": "body" - }, - autoZIndex: { - type: Boolean, - "default": true - }, - baseZIndex: { - type: Number, - "default": 0 - }, - disabled: { - type: Boolean, - "default": false - }, - tabindex: { - type: Number, - "default": 0 - }, - ariaLabelledby: { - type: String, - "default": null - }, - ariaLabel: { - type: String, - "default": null - } - }, - style: TieredMenuStyle, - provide: /* @__PURE__ */ __name(function provide10() { - return { - $pcTieredMenu: this, - $parentInstance: this - }; - }, "provide") -}; -var script$1$1 = { - name: "TieredMenuSub", - hostName: "TieredMenu", - "extends": script$e, - emits: ["item-click", "item-mouseenter", "item-mousemove"], - container: null, - props: { - menuId: { - type: String, - "default": null - }, - focusedItemId: { - type: String, - "default": null - }, - items: { - type: Array, - "default": null - }, - visible: { - type: Boolean, - "default": false - }, - level: { - type: Number, - "default": 0 - }, - templates: { - type: Object, - "default": null - }, - activeItemPath: { - type: Object, - "default": null - }, - tabindex: { - type: Number, - "default": 0 - } - }, - methods: { - getItemId: /* @__PURE__ */ __name(function getItemId2(processedItem) { - return "".concat(this.menuId, "_").concat(processedItem.key); - }, "getItemId"), - getItemKey: /* @__PURE__ */ __name(function getItemKey2(processedItem) { - return this.getItemId(processedItem); - }, "getItemKey"), - getItemProp: /* @__PURE__ */ __name(function getItemProp3(processedItem, name, params) { - return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : void 0; - }, "getItemProp"), - getItemLabel: /* @__PURE__ */ __name(function getItemLabel3(processedItem) { - return this.getItemProp(processedItem, "label"); - }, "getItemLabel"), - getItemLabelId: /* @__PURE__ */ __name(function getItemLabelId2(processedItem) { - return "".concat(this.menuId, "_").concat(processedItem.key, "_label"); - }, "getItemLabelId"), - getPTOptions: /* @__PURE__ */ __name(function getPTOptions5(processedItem, index, key) { - return this.ptm(key, { - context: { - item: processedItem.item, - index, - active: this.isItemActive(processedItem), - focused: this.isItemFocused(processedItem), - disabled: this.isItemDisabled(processedItem) - } - }); - }, "getPTOptions"), - isItemActive: /* @__PURE__ */ __name(function isItemActive2(processedItem) { - return this.activeItemPath.some(function(path) { - return path.key === processedItem.key; - }); - }, "isItemActive"), - isItemVisible: /* @__PURE__ */ __name(function isItemVisible3(processedItem) { - return this.getItemProp(processedItem, "visible") !== false; - }, "isItemVisible"), - isItemDisabled: /* @__PURE__ */ __name(function isItemDisabled3(processedItem) { - return this.getItemProp(processedItem, "disabled"); - }, "isItemDisabled"), - isItemFocused: /* @__PURE__ */ __name(function isItemFocused2(processedItem) { - return this.focusedItemId === this.getItemId(processedItem); - }, "isItemFocused"), - isItemGroup: /* @__PURE__ */ __name(function isItemGroup3(processedItem) { - return isNotEmpty(processedItem.items); - }, "isItemGroup"), - onEnter: /* @__PURE__ */ __name(function onEnter2() { - nestedPosition(this.container, this.level); - }, "onEnter"), - onItemClick: /* @__PURE__ */ __name(function onItemClick3(event, processedItem) { - this.getItemProp(processedItem, "command", { - originalEvent: event, - item: processedItem.item - }); - this.$emit("item-click", { - originalEvent: event, - processedItem, - isFocus: true - }); - }, "onItemClick"), - onItemMouseEnter: /* @__PURE__ */ __name(function onItemMouseEnter3(event, processedItem) { - this.$emit("item-mouseenter", { - originalEvent: event, - processedItem - }); - }, "onItemMouseEnter"), - onItemMouseMove: /* @__PURE__ */ __name(function onItemMouseMove3(event, processedItem) { - this.$emit("item-mousemove", { - originalEvent: event, - processedItem - }); - }, "onItemMouseMove"), - getAriaSetSize: /* @__PURE__ */ __name(function getAriaSetSize2() { - var _this = this; - return this.items.filter(function(processedItem) { - return _this.isItemVisible(processedItem) && !_this.getItemProp(processedItem, "separator"); - }).length; - }, "getAriaSetSize"), - getAriaPosInset: /* @__PURE__ */ __name(function getAriaPosInset3(index) { - var _this2 = this; - return index - this.items.slice(0, index).filter(function(processedItem) { - return _this2.isItemVisible(processedItem) && _this2.getItemProp(processedItem, "separator"); - }).length + 1; - }, "getAriaPosInset"), - getMenuItemProps: /* @__PURE__ */ __name(function getMenuItemProps2(processedItem, index) { - return { - action: mergeProps({ - "class": this.cx("itemLink"), - tabindex: -1, - "aria-hidden": true - }, this.getPTOptions(processedItem, index, "itemLink")), - icon: mergeProps({ - "class": [this.cx("itemIcon"), this.getItemProp(processedItem, "icon")] - }, this.getPTOptions(processedItem, index, "itemIcon")), - label: mergeProps({ - "class": this.cx("itemLabel") - }, this.getPTOptions(processedItem, index, "itemLabel")), - submenuicon: mergeProps({ - "class": this.cx("submenuIcon") - }, this.getPTOptions(processedItem, index, "submenuIcon")) - }; - }, "getMenuItemProps"), - containerRef: /* @__PURE__ */ __name(function containerRef2(el) { - this.container = el; - }, "containerRef") - }, - components: { - AngleRightIcon: script$t - }, - directives: { - ripple: Ripple - } -}; -var _hoisted_1$1$1 = ["tabindex"]; -var _hoisted_2$1 = ["id", "aria-label", "aria-disabled", "aria-expanded", "aria-haspopup", "aria-level", "aria-setsize", "aria-posinset", "data-p-active", "data-p-focused", "data-p-disabled"]; -var _hoisted_3 = ["onClick", "onMouseenter", "onMousemove"]; -var _hoisted_4 = ["href", "target"]; -var _hoisted_5 = ["id"]; -var _hoisted_6 = ["id"]; -function render$1(_ctx, _cache, $props, $setup, $data, $options) { - var _component_AngleRightIcon = resolveComponent("AngleRightIcon"); - var _component_TieredMenuSub = resolveComponent("TieredMenuSub", true); - var _directive_ripple = resolveDirective("ripple"); - return openBlock(), createBlock(Transition, mergeProps({ - name: "p-tieredmenu", - onEnter: $options.onEnter - }, _ctx.ptm("menu.transition")), { - "default": withCtx(function() { - return [($props.level === 0 ? true : $props.visible) ? (openBlock(), createElementBlock("ul", mergeProps({ - key: 0, - ref: $options.containerRef, - "class": $props.level === 0 ? _ctx.cx("rootList") : _ctx.cx("submenu"), - tabindex: $props.tabindex - }, $props.level === 0 ? _ctx.ptm("rootList") : _ctx.ptm("submenu")), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.items, function(processedItem, index) { - return openBlock(), createElementBlock(Fragment, { - key: $options.getItemKey(processedItem) - }, [$options.isItemVisible(processedItem) && !$options.getItemProp(processedItem, "separator") ? (openBlock(), createElementBlock("li", mergeProps({ - key: 0, - id: $options.getItemId(processedItem), - style: $options.getItemProp(processedItem, "style"), - "class": [_ctx.cx("item", { - processedItem - }), $options.getItemProp(processedItem, "class")], - role: "menuitem", - "aria-label": $options.getItemLabel(processedItem), - "aria-disabled": $options.isItemDisabled(processedItem) || void 0, - "aria-expanded": $options.isItemGroup(processedItem) ? $options.isItemActive(processedItem) : void 0, - "aria-haspopup": $options.isItemGroup(processedItem) && !$options.getItemProp(processedItem, "to") ? "menu" : void 0, - "aria-level": $props.level + 1, - "aria-setsize": $options.getAriaSetSize(), - "aria-posinset": $options.getAriaPosInset(index), - ref_for: true - }, $options.getPTOptions(processedItem, index, "item"), { - "data-p-active": $options.isItemActive(processedItem), - "data-p-focused": $options.isItemFocused(processedItem), - "data-p-disabled": $options.isItemDisabled(processedItem) - }), [createBaseVNode("div", mergeProps({ - "class": _ctx.cx("itemContent"), - onClick: /* @__PURE__ */ __name(function onClick($event) { - return $options.onItemClick($event, processedItem); - }, "onClick"), - onMouseenter: /* @__PURE__ */ __name(function onMouseenter($event) { - return $options.onItemMouseEnter($event, processedItem); - }, "onMouseenter"), - onMousemove: /* @__PURE__ */ __name(function onMousemove($event) { - return $options.onItemMouseMove($event, processedItem); - }, "onMousemove"), - ref_for: true - }, $options.getPTOptions(processedItem, index, "itemContent")), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock("a", mergeProps({ - key: 0, - href: $options.getItemProp(processedItem, "url"), - "class": _ctx.cx("itemLink"), - target: $options.getItemProp(processedItem, "target"), - tabindex: "-1", - ref_for: true - }, $options.getPTOptions(processedItem, index, "itemLink")), [$props.templates.itemicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.itemicon), { - key: 0, - item: processedItem.item, - "class": normalizeClass(_ctx.cx("itemIcon")) - }, null, 8, ["item", "class"])) : $options.getItemProp(processedItem, "icon") ? (openBlock(), createElementBlock("span", mergeProps({ - key: 1, - "class": [_ctx.cx("itemIcon"), $options.getItemProp(processedItem, "icon")], - ref_for: true - }, $options.getPTOptions(processedItem, index, "itemIcon")), null, 16)) : createCommentVNode("", true), createBaseVNode("span", mergeProps({ - id: $options.getItemLabelId(processedItem), - "class": _ctx.cx("itemLabel"), - ref_for: true - }, $options.getPTOptions(processedItem, index, "itemLabel")), toDisplayString($options.getItemLabel(processedItem)), 17, _hoisted_5), $options.getItemProp(processedItem, "items") ? (openBlock(), createElementBlock(Fragment, { - key: 2 - }, [$props.templates.submenuicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.submenuicon), mergeProps({ - key: 0, - "class": _ctx.cx("submenuIcon"), - active: $options.isItemActive(processedItem), - ref_for: true - }, $options.getPTOptions(processedItem, index, "submenuIcon")), null, 16, ["class", "active"])) : (openBlock(), createBlock(_component_AngleRightIcon, mergeProps({ - key: 1, - "class": _ctx.cx("submenuIcon"), - ref_for: true - }, $options.getPTOptions(processedItem, index, "submenuIcon")), null, 16, ["class"]))], 64)) : createCommentVNode("", true)], 16, _hoisted_4)), [[_directive_ripple]]) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), { - key: 1, - item: processedItem.item, - hasSubmenu: $options.getItemProp(processedItem, "items"), - label: $options.getItemLabel(processedItem), - props: $options.getMenuItemProps(processedItem, index) - }, null, 8, ["item", "hasSubmenu", "label", "props"]))], 16, _hoisted_3), $options.isItemVisible(processedItem) && $options.isItemGroup(processedItem) ? (openBlock(), createBlock(_component_TieredMenuSub, { - key: 0, - id: $options.getItemId(processedItem) + "_list", - style: normalizeStyle(_ctx.sx("submenu", true, { - processedItem - })), - "aria-labelledby": $options.getItemLabelId(processedItem), - role: "menu", - menuId: $props.menuId, - focusedItemId: $props.focusedItemId, - items: processedItem.items, - templates: $props.templates, - activeItemPath: $props.activeItemPath, - level: $props.level + 1, - visible: $options.isItemActive(processedItem) && $options.isItemGroup(processedItem), - pt: _ctx.pt, - unstyled: _ctx.unstyled, - onItemClick: _cache[0] || (_cache[0] = function($event) { - return _ctx.$emit("item-click", $event); - }), - onItemMouseenter: _cache[1] || (_cache[1] = function($event) { - return _ctx.$emit("item-mouseenter", $event); - }), - onItemMousemove: _cache[2] || (_cache[2] = function($event) { - return _ctx.$emit("item-mousemove", $event); - }) - }, null, 8, ["id", "style", "aria-labelledby", "menuId", "focusedItemId", "items", "templates", "activeItemPath", "level", "visible", "pt", "unstyled"])) : createCommentVNode("", true)], 16, _hoisted_2$1)) : createCommentVNode("", true), $options.isItemVisible(processedItem) && $options.getItemProp(processedItem, "separator") ? (openBlock(), createElementBlock("li", mergeProps({ - key: 1, - id: $options.getItemId(processedItem), - style: $options.getItemProp(processedItem, "style"), - "class": [_ctx.cx("separator"), $options.getItemProp(processedItem, "class")], - role: "separator", - ref_for: true - }, _ctx.ptm("separator")), null, 16, _hoisted_6)) : createCommentVNode("", true)], 64); - }), 128))], 16, _hoisted_1$1$1)) : createCommentVNode("", true)]; - }), - _: 1 - }, 16, ["onEnter"]); -} -__name(render$1, "render$1"); -script$1$1.render = render$1; -var script$3 = { - name: "TieredMenu", - "extends": script$2, - inheritAttrs: false, - emits: ["focus", "blur", "before-show", "before-hide", "hide", "show"], - outsideClickListener: null, - scrollHandler: null, - resizeListener: null, - target: null, - container: null, - menubar: null, - searchTimeout: null, - searchValue: null, - data: /* @__PURE__ */ __name(function data7() { - return { - id: this.$attrs.id, - focused: false, - focusedItemInfo: { - index: -1, - level: 0, - parentKey: "" - }, - activeItemPath: [], - visible: !this.popup, - submenuVisible: false, - dirty: false - }; - }, "data"), - watch: { - "$attrs.id": /* @__PURE__ */ __name(function $attrsId4(newValue) { - this.id = newValue || UniqueComponentId(); - }, "$attrsId"), - activeItemPath: /* @__PURE__ */ __name(function activeItemPath2(newPath) { - if (!this.popup) { - if (isNotEmpty(newPath)) { - this.bindOutsideClickListener(); - this.bindResizeListener(); - } else { - this.unbindOutsideClickListener(); - this.unbindResizeListener(); - } - } - }, "activeItemPath") - }, - mounted: /* @__PURE__ */ __name(function mounted7() { - this.id = this.id || UniqueComponentId(); - }, "mounted"), - beforeUnmount: /* @__PURE__ */ __name(function beforeUnmount6() { - this.unbindOutsideClickListener(); - this.unbindResizeListener(); - if (this.scrollHandler) { - this.scrollHandler.destroy(); - this.scrollHandler = null; - } - if (this.container && this.autoZIndex) { - ZIndex.clear(this.container); - } - this.target = null; - this.container = null; - }, "beforeUnmount"), - methods: { - getItemProp: /* @__PURE__ */ __name(function getItemProp4(item3, name) { - return item3 ? resolve(item3[name]) : void 0; - }, "getItemProp"), - getItemLabel: /* @__PURE__ */ __name(function getItemLabel4(item3) { - return this.getItemProp(item3, "label"); - }, "getItemLabel"), - isItemDisabled: /* @__PURE__ */ __name(function isItemDisabled4(item3) { - return this.getItemProp(item3, "disabled"); - }, "isItemDisabled"), - isItemVisible: /* @__PURE__ */ __name(function isItemVisible4(item3) { - return this.getItemProp(item3, "visible") !== false; - }, "isItemVisible"), - isItemGroup: /* @__PURE__ */ __name(function isItemGroup4(item3) { - return isNotEmpty(this.getItemProp(item3, "items")); - }, "isItemGroup"), - isItemSeparator: /* @__PURE__ */ __name(function isItemSeparator2(item3) { - return this.getItemProp(item3, "separator"); - }, "isItemSeparator"), - getProccessedItemLabel: /* @__PURE__ */ __name(function getProccessedItemLabel2(processedItem) { - return processedItem ? this.getItemLabel(processedItem.item) : void 0; - }, "getProccessedItemLabel"), - isProccessedItemGroup: /* @__PURE__ */ __name(function isProccessedItemGroup2(processedItem) { - return processedItem && isNotEmpty(processedItem.items); - }, "isProccessedItemGroup"), - toggle: /* @__PURE__ */ __name(function toggle3(event) { - this.visible ? this.hide(event, true) : this.show(event); - }, "toggle"), - show: /* @__PURE__ */ __name(function show3(event, isFocus) { - if (this.popup) { - this.$emit("before-show"); - this.visible = true; - this.target = this.target || event.currentTarget; - this.relatedTarget = event.relatedTarget || null; - } - isFocus && focus(this.menubar); - }, "show"), - hide: /* @__PURE__ */ __name(function hide3(event, isFocus) { - if (this.popup) { - this.$emit("before-hide"); - this.visible = false; - } - this.activeItemPath = []; - this.focusedItemInfo = { - index: -1, - level: 0, - parentKey: "" - }; - isFocus && focus(this.relatedTarget || this.target || this.menubar); - this.dirty = false; - }, "hide"), - onFocus: /* @__PURE__ */ __name(function onFocus3(event) { - this.focused = true; - if (!this.popup) { - this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { - index: this.findFirstFocusedItemIndex(), - level: 0, - parentKey: "" - }; - } - this.$emit("focus", event); - }, "onFocus"), - onBlur: /* @__PURE__ */ __name(function onBlur3(event) { - this.focused = false; - this.focusedItemInfo = { - index: -1, - level: 0, - parentKey: "" - }; - this.searchValue = ""; - this.dirty = false; - this.$emit("blur", event); - }, "onBlur"), - onKeyDown: /* @__PURE__ */ __name(function onKeyDown4(event) { - if (this.disabled) { - event.preventDefault(); - return; - } - var metaKey = event.metaKey || event.ctrlKey; - switch (event.code) { - case "ArrowDown": - this.onArrowDownKey(event); - break; - case "ArrowUp": - this.onArrowUpKey(event); - break; - case "ArrowLeft": - this.onArrowLeftKey(event); - break; - case "ArrowRight": - this.onArrowRightKey(event); - break; - case "Home": - this.onHomeKey(event); - break; - case "End": - this.onEndKey(event); - break; - case "Space": - this.onSpaceKey(event); - break; - case "Enter": - case "NumpadEnter": - this.onEnterKey(event); - break; - case "Escape": - this.onEscapeKey(event); - break; - case "Tab": - this.onTabKey(event); - break; - case "PageDown": - case "PageUp": - case "Backspace": - case "ShiftLeft": - case "ShiftRight": - break; - default: - if (!metaKey && isPrintableCharacter(event.key)) { - this.searchItems(event, event.key); - } - break; - } - }, "onKeyDown"), - onItemChange: /* @__PURE__ */ __name(function onItemChange2(event) { - var processedItem = event.processedItem, isFocus = event.isFocus; - if (isEmpty(processedItem)) return; - var index = processedItem.index, key = processedItem.key, level = processedItem.level, parentKey = processedItem.parentKey, items = processedItem.items; - var grouped = isNotEmpty(items); - var activeItemPath3 = this.activeItemPath.filter(function(p) { - return p.parentKey !== parentKey && p.parentKey !== key; - }); - if (grouped) { - activeItemPath3.push(processedItem); - this.submenuVisible = true; - } - this.focusedItemInfo = { - index, - level, - parentKey - }; - this.activeItemPath = activeItemPath3; - grouped && (this.dirty = true); - isFocus && focus(this.menubar); - }, "onItemChange"), - onOverlayClick: /* @__PURE__ */ __name(function onOverlayClick2(event) { - OverlayEventBus.emit("overlay-click", { - originalEvent: event, - target: this.target - }); - }, "onOverlayClick"), - onItemClick: /* @__PURE__ */ __name(function onItemClick4(event) { - var originalEvent = event.originalEvent, processedItem = event.processedItem; - var grouped = this.isProccessedItemGroup(processedItem); - var root11 = isEmpty(processedItem.parent); - var selected = this.isSelected(processedItem); - if (selected) { - var index = processedItem.index, key = processedItem.key, level = processedItem.level, parentKey = processedItem.parentKey; - this.activeItemPath = this.activeItemPath.filter(function(p) { - return key !== p.key && key.startsWith(p.key); - }); - this.focusedItemInfo = { - index, - level, - parentKey - }; - this.dirty = !root11; - focus(this.menubar); - } else { - if (grouped) { - this.onItemChange(event); - } else { - var rootProcessedItem = root11 ? processedItem : this.activeItemPath.find(function(p) { - return p.parentKey === ""; - }); - this.hide(originalEvent); - this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1); - focus(this.menubar); - } - } - }, "onItemClick"), - onItemMouseEnter: /* @__PURE__ */ __name(function onItemMouseEnter4(event) { - if (this.dirty) { - this.onItemChange(event); - } - }, "onItemMouseEnter"), - onItemMouseMove: /* @__PURE__ */ __name(function onItemMouseMove4(event) { - if (this.focused) { - this.changeFocusedItemIndex(event, event.processedItem.index); - } - }, "onItemMouseMove"), - onArrowDownKey: /* @__PURE__ */ __name(function onArrowDownKey3(event) { var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex(); this.changeFocusedItemIndex(event, itemIndex); event.preventDefault(); }, "onArrowDownKey"), - onArrowUpKey: /* @__PURE__ */ __name(function onArrowUpKey3(event) { + onArrowUpKey: /* @__PURE__ */ __name(function onArrowUpKey2(event) { if (event.altKey) { if (this.focusedItemInfo.index !== -1) { var processedItem = this.visibleItems[this.focusedItemInfo.index]; @@ -6134,10 +6279,10 @@ var script$3 = { } event.preventDefault(); }, "onEnterKey"), - onSpaceKey: /* @__PURE__ */ __name(function onSpaceKey2(event) { + onSpaceKey: /* @__PURE__ */ __name(function onSpaceKey(event) { this.onEnterKey(event); }, "onSpaceKey"), - onEscapeKey: /* @__PURE__ */ __name(function onEscapeKey3(event) { + onEscapeKey: /* @__PURE__ */ __name(function onEscapeKey2(event) { if (this.popup || this.focusedItemInfo.level !== 0) { var _focusedItemInfo = this.focusedItemInfo; this.hide(event, false); @@ -6150,7 +6295,7 @@ var script$3 = { } event.preventDefault(); }, "onEscapeKey"), - onTabKey: /* @__PURE__ */ __name(function onTabKey3(event) { + onTabKey: /* @__PURE__ */ __name(function onTabKey2(event) { if (this.focusedItemInfo.index !== -1) { var processedItem = this.visibleItems[this.focusedItemInfo.index]; var grouped = this.isProccessedItemGroup(processedItem); @@ -6200,7 +6345,7 @@ var script$3 = { this.container.style.minWidth = getOuterWidth(this.target) + "px"; } }, "alignOverlay"), - bindOutsideClickListener: /* @__PURE__ */ __name(function bindOutsideClickListener3() { + bindOutsideClickListener: /* @__PURE__ */ __name(function bindOutsideClickListener2() { var _this2 = this; if (!this.outsideClickListener) { this.outsideClickListener = function(event) { @@ -6213,7 +6358,7 @@ var script$3 = { document.addEventListener("click", this.outsideClickListener); } }, "bindOutsideClickListener"), - unbindOutsideClickListener: /* @__PURE__ */ __name(function unbindOutsideClickListener3() { + unbindOutsideClickListener: /* @__PURE__ */ __name(function unbindOutsideClickListener2() { if (this.outsideClickListener) { document.removeEventListener("click", this.outsideClickListener); this.outsideClickListener = null; @@ -6233,7 +6378,7 @@ var script$3 = { this.scrollHandler.unbindScrollListener(); } }, "unbindScrollListener"), - bindResizeListener: /* @__PURE__ */ __name(function bindResizeListener3() { + bindResizeListener: /* @__PURE__ */ __name(function bindResizeListener2() { var _this4 = this; if (!this.resizeListener) { this.resizeListener = function(event) { @@ -6244,68 +6389,68 @@ var script$3 = { window.addEventListener("resize", this.resizeListener); } }, "bindResizeListener"), - unbindResizeListener: /* @__PURE__ */ __name(function unbindResizeListener3() { + unbindResizeListener: /* @__PURE__ */ __name(function unbindResizeListener2() { if (this.resizeListener) { window.removeEventListener("resize", this.resizeListener); this.resizeListener = null; } }, "unbindResizeListener"), - isItemMatched: /* @__PURE__ */ __name(function isItemMatched2(processedItem) { + isItemMatched: /* @__PURE__ */ __name(function isItemMatched(processedItem) { var _this$getProccessedIt; return this.isValidItem(processedItem) && ((_this$getProccessedIt = this.getProccessedItemLabel(processedItem)) === null || _this$getProccessedIt === void 0 ? void 0 : _this$getProccessedIt.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase())); }, "isItemMatched"), - isValidItem: /* @__PURE__ */ __name(function isValidItem2(processedItem) { + isValidItem: /* @__PURE__ */ __name(function isValidItem(processedItem) { return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item); }, "isValidItem"), - isValidSelectedItem: /* @__PURE__ */ __name(function isValidSelectedItem2(processedItem) { + isValidSelectedItem: /* @__PURE__ */ __name(function isValidSelectedItem(processedItem) { return this.isValidItem(processedItem) && this.isSelected(processedItem); }, "isValidSelectedItem"), - isSelected: /* @__PURE__ */ __name(function isSelected3(processedItem) { + isSelected: /* @__PURE__ */ __name(function isSelected2(processedItem) { return this.activeItemPath.some(function(p) { return p.key === processedItem.key; }); }, "isSelected"), - findFirstItemIndex: /* @__PURE__ */ __name(function findFirstItemIndex2() { + findFirstItemIndex: /* @__PURE__ */ __name(function findFirstItemIndex() { var _this5 = this; return this.visibleItems.findIndex(function(processedItem) { return _this5.isValidItem(processedItem); }); }, "findFirstItemIndex"), - findLastItemIndex: /* @__PURE__ */ __name(function findLastItemIndex2() { + findLastItemIndex: /* @__PURE__ */ __name(function findLastItemIndex() { var _this6 = this; return findLastIndex(this.visibleItems, function(processedItem) { return _this6.isValidItem(processedItem); }); }, "findLastItemIndex"), - findNextItemIndex: /* @__PURE__ */ __name(function findNextItemIndex2(index) { + findNextItemIndex: /* @__PURE__ */ __name(function findNextItemIndex(index) { var _this7 = this; var matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex(function(processedItem) { return _this7.isValidItem(processedItem); }) : -1; return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index; }, "findNextItemIndex"), - findPrevItemIndex: /* @__PURE__ */ __name(function findPrevItemIndex2(index) { + findPrevItemIndex: /* @__PURE__ */ __name(function findPrevItemIndex(index) { var _this8 = this; var matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), function(processedItem) { return _this8.isValidItem(processedItem); }) : -1; return matchedItemIndex > -1 ? matchedItemIndex : index; }, "findPrevItemIndex"), - findSelectedItemIndex: /* @__PURE__ */ __name(function findSelectedItemIndex2() { + findSelectedItemIndex: /* @__PURE__ */ __name(function findSelectedItemIndex() { var _this9 = this; return this.visibleItems.findIndex(function(processedItem) { return _this9.isValidSelectedItem(processedItem); }); }, "findSelectedItemIndex"), - findFirstFocusedItemIndex: /* @__PURE__ */ __name(function findFirstFocusedItemIndex2() { + findFirstFocusedItemIndex: /* @__PURE__ */ __name(function findFirstFocusedItemIndex() { var selectedIndex = this.findSelectedItemIndex(); return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex; }, "findFirstFocusedItemIndex"), - findLastFocusedItemIndex: /* @__PURE__ */ __name(function findLastFocusedItemIndex2() { + findLastFocusedItemIndex: /* @__PURE__ */ __name(function findLastFocusedItemIndex() { var selectedIndex = this.findSelectedItemIndex(); return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex; }, "findLastFocusedItemIndex"), - searchItems: /* @__PURE__ */ __name(function searchItems2(event, _char) { + searchItems: /* @__PURE__ */ __name(function searchItems(event, _char) { var _this10 = this; this.searchValue = (this.searchValue || "") + _char; var itemIndex = -1; @@ -6340,7 +6485,7 @@ var script$3 = { }, 500); return matched; }, "searchItems"), - changeFocusedItemIndex: /* @__PURE__ */ __name(function changeFocusedItemIndex2(event, index) { + changeFocusedItemIndex: /* @__PURE__ */ __name(function changeFocusedItemIndex(event, index) { if (this.focusedItemInfo.index !== index) { this.focusedItemInfo.index = index; this.scrollInView(); @@ -6348,8 +6493,8 @@ var script$3 = { }, "changeFocusedItemIndex"), scrollInView: /* @__PURE__ */ __name(function scrollInView3() { var index = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : -1; - var id = index !== -1 ? "".concat(this.id, "_").concat(index) : this.focusedItemId; - var element = findSingle(this.menubar, 'li[id="'.concat(id, '"]')); + var id2 = index !== -1 ? "".concat(this.id, "_").concat(index) : this.focusedItemId; + var element = findSingle(this.menubar, 'li[id="'.concat(id2, '"]')); if (element) { element.scrollIntoView && element.scrollIntoView({ block: "nearest", @@ -6357,7 +6502,7 @@ var script$3 = { }); } }, "scrollInView"), - createProcessedItems: /* @__PURE__ */ __name(function createProcessedItems2(items) { + createProcessedItems: /* @__PURE__ */ __name(function createProcessedItems(items) { var _this11 = this; var level = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; var parent = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; @@ -6378,35 +6523,35 @@ var script$3 = { }); return processedItems3; }, "createProcessedItems"), - containerRef: /* @__PURE__ */ __name(function containerRef3(el) { + containerRef: /* @__PURE__ */ __name(function containerRef2(el) { this.container = el; }, "containerRef"), - menubarRef: /* @__PURE__ */ __name(function menubarRef2(el) { + menubarRef: /* @__PURE__ */ __name(function menubarRef(el) { this.menubar = el ? el.$el : void 0; }, "menubarRef") }, computed: { - processedItems: /* @__PURE__ */ __name(function processedItems2() { + processedItems: /* @__PURE__ */ __name(function processedItems() { return this.createProcessedItems(this.model || []); }, "processedItems"), - visibleItems: /* @__PURE__ */ __name(function visibleItems2() { + visibleItems: /* @__PURE__ */ __name(function visibleItems() { var _this12 = this; var processedItem = this.activeItemPath.find(function(p) { return p.key === _this12.focusedItemInfo.parentKey; }); return processedItem ? processedItem.items : this.processedItems; }, "visibleItems"), - focusedItemId: /* @__PURE__ */ __name(function focusedItemId2() { + focusedItemId: /* @__PURE__ */ __name(function focusedItemId() { return this.focusedItemInfo.index !== -1 ? "".concat(this.id).concat(isNotEmpty(this.focusedItemInfo.parentKey) ? "_" + this.focusedItemInfo.parentKey : "", "_").concat(this.focusedItemInfo.index) : null; }, "focusedItemId") }, components: { - TieredMenuSub: script$1$1, - Portal: script$h + TieredMenuSub: script$1$2, + Portal: script$k } }; -var _hoisted_1$3 = ["id"]; -function render$2(_ctx, _cache, $props, $setup, $data, $options) { +var _hoisted_1$8 = ["id"]; +function render$5(_ctx, _cache, $props, $setup, $data, $options) { var _component_TieredMenuSub = resolveComponent("TieredMenuSub"); var _component_Portal = resolveComponent("Portal"); return openBlock(), createBlock(_component_Portal, { @@ -6461,7 +6606,7 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) { }, null, 8, ["id", "tabindex", "aria-label", "aria-labelledby", "aria-disabled", "aria-activedescendant", "menuId", "focusedItemId", "items", "templates", "activeItemPath", "visible", "pt", "unstyled", "onFocus", "onBlur", "onKeydown", "onItemClick", "onItemMouseenter", "onItemMousemove"]), _ctx.$slots.end ? (openBlock(), createElementBlock("div", mergeProps({ key: 1, "class": _ctx.cx("end") - }, _ctx.ptm("end")), [renderSlot(_ctx.$slots, "end")], 16)) : createCommentVNode("", true)], 16, _hoisted_1$3)) : createCommentVNode("", true)]; + }, _ctx.ptm("end")), [renderSlot(_ctx.$slots, "end")], 16)) : createCommentVNode("", true)], 16, _hoisted_1$8)) : createCommentVNode("", true)]; }), _: 3 }, 16, ["onEnter", "onAfterEnter", "onLeave", "onAfterLeave"])]; @@ -6469,14 +6614,14 @@ function render$2(_ctx, _cache, $props, $setup, $data, $options) { _: 3 }, 8, ["appendTo", "disabled"]); } -__name(render$2, "render$2"); -script$3.render = render$2; -var theme9 = /* @__PURE__ */ __name(function theme10(_ref) { +__name(render$5, "render$5"); +script$4.render = render$5; +var theme$1 = /* @__PURE__ */ __name(function theme7(_ref) { var dt = _ref.dt; return "\n.p-splitbutton {\n display: inline-flex;\n position: relative;\n border-radius: ".concat(dt("splitbutton.border.radius"), ";\n}\n\n.p-splitbutton-button {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-right: 0 none;\n}\n\n.p-splitbutton-button:focus-visible,\n.p-splitbutton-dropdown:focus-visible {\n z-index: 1;\n}\n\n.p-splitbutton-button:not(:disabled):hover,\n.p-splitbutton-button:not(:disabled):active {\n border-right: 0 none;\n}\n\n.p-splitbutton-dropdown {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.p-splitbutton .p-menu {\n min-width: 100%;\n}\n\n.p-splitbutton-fluid {\n display: flex;\n}\n\n.p-splitbutton-rounded .p-splitbutton-dropdown {\n border-top-right-radius: ").concat(dt("splitbutton.rounded.border.radius"), ";\n border-bottom-right-radius: ").concat(dt("splitbutton.rounded.border.radius"), ";\n}\n\n.p-splitbutton-rounded .p-splitbutton-button {\n border-top-left-radius: ").concat(dt("splitbutton.rounded.border.radius"), ";\n border-bottom-left-radius: ").concat(dt("splitbutton.rounded.border.radius"), ";\n}\n\n.p-splitbutton-raised {\n box-shadow: ").concat(dt("splitbutton.raised.shadow"), ";\n}\n"); }, "theme"); -var classes = { - root: /* @__PURE__ */ __name(function root10(_ref2) { +var classes$1 = { + root: /* @__PURE__ */ __name(function root9(_ref2) { var instance = _ref2.instance, props = _ref2.props; return ["p-splitbutton p-component", { "p-splitbutton-raised": props.raised, @@ -6489,10 +6634,10 @@ var classes = { }; var SplitButtonStyle = BaseStyle.extend({ name: "splitbutton", - theme: theme9, - classes + theme: theme$1, + classes: classes$1 }); -var script$1 = { +var script$1$1 = { name: "BaseSplitButton", "extends": script$e, props: { @@ -6589,9 +6734,9 @@ var script$1 = { }; }, "provide") }; -var script = { +var script$3 = { name: "SplitButton", - "extends": script$1, + "extends": script$1$1, inheritAttrs: false, emits: ["click"], inject: { @@ -6599,18 +6744,18 @@ var script = { "default": null } }, - data: /* @__PURE__ */ __name(function data8() { + data: /* @__PURE__ */ __name(function data7() { return { id: this.$attrs.id, isExpanded: false }; }, "data"), watch: { - "$attrs.id": /* @__PURE__ */ __name(function $attrsId5(newValue) { + "$attrs.id": /* @__PURE__ */ __name(function $attrsId3(newValue) { this.id = newValue || UniqueComponentId(); }, "$attrsId") }, - mounted: /* @__PURE__ */ __name(function mounted8() { + mounted: /* @__PURE__ */ __name(function mounted7() { var _this = this; this.id = this.id || UniqueComponentId(); this.$watch("$refs.menu.visible", function(newValue) { @@ -6651,12 +6796,12 @@ var script = { }, components: { PVSButton: script$d, - PVSMenu: script$3, - ChevronDownIcon: script$i + PVSMenu: script$4, + ChevronDownIcon: script$l } }; -var _hoisted_1$2 = ["data-p-severity"]; -function render(_ctx, _cache, $props, $setup, $data, $options) { +var _hoisted_1$7 = ["data-p-severity"]; +function render$4(_ctx, _cache, $props, $setup, $data, $options) { var _component_PVSButton = resolveComponent("PVSButton"); var _component_PVSMenu = resolveComponent("PVSMenu"); return openBlock(), createElementBlock("div", mergeProps({ @@ -6761,12 +6906,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) { })]; }), key: "1" - } : void 0]), 1032, ["id", "model", "autoZIndex", "baseZIndex", "appendTo", "unstyled", "pt"])], 16, _hoisted_1$2); + } : void 0]), 1032, ["id", "model", "autoZIndex", "baseZIndex", "appendTo", "unstyled", "pt"])], 16, _hoisted_1$7); } -__name(render, "render"); -script.render = render; +__name(render$4, "render$4"); +script$3.render = render$4; const minQueueCount = 1; -const _sfc_main$4 = /* @__PURE__ */ defineComponent({ +const _sfc_main$8 = /* @__PURE__ */ defineComponent({ __name: "BatchCountEdit", props: { class: { default: "" } @@ -6783,7 +6928,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({ let newCount; if (increment) { const originalCount = batchCount.value - 1; - newCount = originalCount * 2; + newCount = Math.min(originalCount * 2, maxQueueCount.value); } else { const originalCount = batchCount.value + 1; newCount = Math.floor(originalCount / 2); @@ -6795,7 +6940,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({ return withDirectives((openBlock(), createElementBlock("div", { class: normalizeClass(["batch-count", props.class]) }, [ - createVNode(unref(script$y), { + createVNode(unref(script$x), { class: "w-14", modelValue: unref(batchCount), "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(batchCount) ? batchCount.value = $event : null), @@ -6829,21 +6974,20 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({ }; } }); -const BatchCountEdit = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-713442be"]]); -const _withScopeId$1 = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-2b80bf74"), n = n(), popScopeId(), n), "_withScopeId$1"); -const _hoisted_1$1 = { class: "queue-button-group flex" }; -const _sfc_main$3 = /* @__PURE__ */ defineComponent({ +const BatchCountEdit = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-b9328350"]]); +const _withScopeId$3 = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-7f4f551b"), n = n(), popScopeId(), n), "_withScopeId$3"); +const _hoisted_1$6 = { class: "queue-button-group flex" }; +const _sfc_main$7 = /* @__PURE__ */ defineComponent({ __name: "ComfyQueueButton", setup(__props) { const workspaceStore = useWorkspaceStore(); const queueCountStore = storeToRefs(useQueuePendingTaskCountStore()); const { mode: queueMode } = storeToRefs(useQueueSettingsStore()); const { t } = useI18n(); - const queueModeMenuItemLookup = { + const queueModeMenuItemLookup = computed(() => ({ disabled: { key: "disabled", - label: "Queue", - icon: "pi pi-play", + label: t("menu.queue"), tooltip: t("menu.disabledTooltip"), command: /* @__PURE__ */ __name(() => { queueMode.value = "disabled"; @@ -6851,8 +6995,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({ }, instant: { key: "instant", - label: "Queue (Instant)", - icon: "pi pi-forward", + label: `${t("menu.queue")} (${t("menu.instant")})`, tooltip: t("menu.instantTooltip"), command: /* @__PURE__ */ __name(() => { queueMode.value = "instant"; @@ -6860,19 +7003,18 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({ }, change: { key: "change", - label: "Queue (Change)", - icon: "pi pi-step-forward-alt", - tooltip: t("menu.changeTooltip"), + label: `${t("menu.queue")} (${t("menu.onChange")})`, + tooltip: t("menu.onChangeTooltip"), command: /* @__PURE__ */ __name(() => { queueMode.value = "change"; }, "command") } - }; + })); const activeQueueModeMenuItem = computed( - () => queueModeMenuItemLookup[queueMode.value] + () => queueModeMenuItemLookup.value[queueMode.value] ); const queueModeMenuItems = computed( - () => Object.values(queueModeMenuItemLookup) + () => Object.values(queueModeMenuItemLookup.value) ); const executingPrompt = computed(() => !!queueCountStore.count.value); const hasPendingTasks = computed(() => queueCountStore.count.value > 1); @@ -6882,28 +7024,30 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({ commandStore.execute(commandId); }, "queuePrompt"); return (_ctx, _cache) => { - const _component_i_lucide58list_start = __unplugin_components_0; + const _component_i_lucide58list_start = __unplugin_components_0$1; + const _component_i_lucide58play = __unplugin_components_1$1; + const _component_i_lucide58fast_forward = __unplugin_components_2; + const _component_i_lucide58step_forward = __unplugin_components_3; const _directive_tooltip = resolveDirective("tooltip"); - return openBlock(), createElementBlock("div", _hoisted_1$1, [ - withDirectives((openBlock(), createBlock(unref(script), { + return openBlock(), createElementBlock("div", _hoisted_1$6, [ + withDirectives((openBlock(), createBlock(unref(script$3), { class: "comfyui-queue-button", label: activeQueueModeMenuItem.value.label, severity: "primary", + size: "small", onClick: queuePrompt, model: queueModeMenuItems.value, "data-testid": "queue-button" }, { icon: withCtx(() => [ - unref(workspaceStore).shiftDown ? (openBlock(), createBlock(_component_i_lucide58list_start, { key: 0 })) : (openBlock(), createElementBlock("i", { - key: 1, - class: normalizeClass(activeQueueModeMenuItem.value.icon) - }, null, 2)) + unref(workspaceStore).shiftDown ? (openBlock(), createBlock(_component_i_lucide58list_start, { key: 0 })) : unref(queueMode) === "disabled" ? (openBlock(), createBlock(_component_i_lucide58play, { key: 1 })) : unref(queueMode) === "instant" ? (openBlock(), createBlock(_component_i_lucide58fast_forward, { key: 2 })) : unref(queueMode) === "change" ? (openBlock(), createBlock(_component_i_lucide58step_forward, { key: 3 })) : createCommentVNode("", true) ]), item: withCtx(({ item: item3 }) => [ withDirectives(createVNode(unref(script$d), { label: item3.label, icon: item3.icon, severity: item3.key === unref(queueMode) ? "primary" : "secondary", + size: "small", text: "" }, null, 8, ["label", "icon", "severity"]), [ [_directive_tooltip, item3.tooltip] @@ -6919,7 +7063,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({ ] ]), createVNode(BatchCountEdit), - createVNode(unref(script$7), { class: "execution-actions flex flex-nowrap" }, { + createVNode(unref(script$8), { class: "execution-actions flex flex-nowrap" }, { default: withCtx(() => [ withDirectives(createVNode(unref(script$d), { icon: "pi pi-times", @@ -6956,13 +7100,12 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({ }; } }); -const ComfyQueueButton = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-2b80bf74"]]); +const ComfyQueueButton = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-7f4f551b"]]); const overlapThreshold = 20; -const _sfc_main$2 = /* @__PURE__ */ defineComponent({ +const _sfc_main$6 = /* @__PURE__ */ defineComponent({ __name: "ComfyActionbar", setup(__props) { const settingsStore = useSettingStore(); - const commandStore = useCommandStore(); const visible = computed( () => settingsStore.get("Comfy.UseNewMenu") !== "Disabled" ); @@ -7048,19 +7191,33 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({ const screenHeight = window.innerHeight; const menuWidth = panelRef.value.offsetWidth; const menuHeight = panelRef.value.offsetHeight; + const distanceLeft = lastDragState.value.x; const distanceRight = lastDragState.value.windowWidth - (lastDragState.value.x + menuWidth); + const distanceTop = lastDragState.value.y; const distanceBottom = lastDragState.value.windowHeight - (lastDragState.value.y + menuHeight); - const anchorRight = distanceRight < lastDragState.value.x; - const anchorBottom = distanceBottom < lastDragState.value.y; - if (anchorRight) { - x.value = screenWidth - (lastDragState.value.windowWidth - lastDragState.value.x); + const distances = [ + { edge: "left", distance: distanceLeft }, + { edge: "right", distance: distanceRight }, + { edge: "top", distance: distanceTop }, + { edge: "bottom", distance: distanceBottom } + ]; + const closestEdge = distances.reduce( + (min, curr) => curr.distance < min.distance ? curr : min + ); + const verticalRatio = lastDragState.value.y / lastDragState.value.windowHeight; + const horizontalRatio = lastDragState.value.x / lastDragState.value.windowWidth; + if (closestEdge.edge === "left") { + x.value = closestEdge.distance; + y.value = verticalRatio * screenHeight; + } else if (closestEdge.edge === "right") { + x.value = screenWidth - menuWidth - closestEdge.distance; + y.value = verticalRatio * screenHeight; + } else if (closestEdge.edge === "top") { + x.value = horizontalRatio * screenWidth; + y.value = closestEdge.distance; } else { - x.value = lastDragState.value.x; - } - if (anchorBottom) { - y.value = screenHeight - (lastDragState.value.windowHeight - lastDragState.value.y); - } else { - y.value = lastDragState.value.y; + x.value = horizontalRatio * screenWidth; + y.value = screenHeight - menuHeight - closestEdge.distance; } x.value = lodashExports.clamp(x.value, 0, screenWidth - menuWidth); y.value = lodashExports.clamp(y.value, 0, screenHeight - menuHeight); @@ -7094,8 +7251,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({ }); }); return (_ctx, _cache) => { - const _directive_tooltip = resolveDirective("tooltip"); - return openBlock(), createBlock(unref(script$4), { + return openBlock(), createBlock(unref(script$y), { class: normalizeClass(["actionbar w-fit", { "is-dragging": unref(isDragging), "is-docked": unref(isDocked) }]), style: normalizeStyle(unref(style)) }, { @@ -7110,29 +7266,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({ ref_key: "dragHandleRef", ref: dragHandleRef }, null, 512), - createVNode(ComfyQueueButton), - createVNode(unref(script$z), { - layout: "vertical", - class: "mx-1" - }), - createVNode(unref(script$7), { class: "flex flex-nowrap" }, { - default: withCtx(() => [ - withDirectives(createVNode(unref(script$d), { - icon: "pi pi-refresh", - severity: "secondary", - text: "", - onClick: _cache[0] || (_cache[0] = () => unref(commandStore).execute("Comfy.RefreshNodeDefinitions")) - }, null, 512), [ - [ - _directive_tooltip, - _ctx.$t("menu.refresh"), - void 0, - { bottom: true } - ] - ]) - ]), - _: 1 - }) + createVNode(ComfyQueueButton) ], 512) ]), _: 1 @@ -7140,13 +7274,1424 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({ }; } }); -const Actionbar = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-2e54db00"]]); -const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-b13fdc92"), n = n(), popScopeId(), n), "_withScopeId"); +const Actionbar = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-915e5456"]]); +const _hoisted_1$5 = { + viewBox: "0 0 24 24", + width: "1.2em", + height: "1.2em" +}; +const _hoisted_2$5 = /* @__PURE__ */ createBaseVNode("path", { + fill: "currentColor", + d: "M5 21q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h14q.825 0 1.413.588T21 5v14q0 .825-.587 1.413T19 21zm0-5v3h14v-3zm0-2h14V5H5zm0 2v3z" +}, null, -1); +const _hoisted_3$4 = [ + _hoisted_2$5 +]; +function render$3(_ctx, _cache) { + return openBlock(), createElementBlock("svg", _hoisted_1$5, [..._hoisted_3$4]); +} +__name(render$3, "render$3"); +const __unplugin_components_1 = markRaw({ name: "material-symbols-dock-to-bottom-outline", render: render$3 }); +const _hoisted_1$4 = { + viewBox: "0 0 24 24", + width: "1.2em", + height: "1.2em" +}; +const _hoisted_2$4 = /* @__PURE__ */ createBaseVNode("path", { + fill: "currentColor", + d: "M5 21q-.825 0-1.412-.587T3 19V5q0-.825.588-1.412T5 3h14q.825 0 1.413.588T21 5v14q0 .825-.587 1.413T19 21zm0-7h14V5H5z" +}, null, -1); +const _hoisted_3$3 = [ + _hoisted_2$4 +]; +function render$2(_ctx, _cache) { + return openBlock(), createElementBlock("svg", _hoisted_1$4, [..._hoisted_3$3]); +} +__name(render$2, "render$2"); +const __unplugin_components_0 = markRaw({ name: "material-symbols-dock-to-bottom", render: render$2 }); +const _sfc_main$5 = /* @__PURE__ */ defineComponent({ + __name: "BottomPanelToggleButton", + setup(__props) { + const bottomPanelStore = useBottomPanelStore(); + return (_ctx, _cache) => { + const _component_i_material_symbols58dock_to_bottom = __unplugin_components_0; + const _component_i_material_symbols58dock_to_bottom_outline = __unplugin_components_1; + const _directive_tooltip = resolveDirective("tooltip"); + return withDirectives((openBlock(), createBlock(unref(script$d), { + severity: "secondary", + text: "", + onClick: unref(bottomPanelStore).toggleBottomPanel + }, { + icon: withCtx(() => [ + unref(bottomPanelStore).bottomPanelVisible ? (openBlock(), createBlock(_component_i_material_symbols58dock_to_bottom, { key: 0 })) : (openBlock(), createBlock(_component_i_material_symbols58dock_to_bottom_outline, { key: 1 })) + ]), + _: 1 + }, 8, ["onClick"])), [ + [vShow, unref(bottomPanelStore).bottomPanelTabs.length > 0], + [_directive_tooltip, { value: _ctx.$t("menu.toggleBottomPanel"), showDelay: 300 }] + ]); + }; + } +}); +var theme8 = /* @__PURE__ */ __name(function theme9(_ref) { + var dt = _ref.dt; + return "\n.p-menubar {\n display: flex;\n align-items: center;\n background: ".concat(dt("menubar.background"), ";\n border: 1px solid ").concat(dt("menubar.border.color"), ";\n border-radius: ").concat(dt("menubar.border.radius"), ";\n color: ").concat(dt("menubar.color"), ";\n padding: ").concat(dt("menubar.padding"), ";\n gap: ").concat(dt("menubar.gap"), ";\n}\n\n.p-menubar-start,\n.p-megamenu-end {\n display: flex;\n align-items: center;\n}\n\n.p-menubar-root-list,\n.p-menubar-submenu {\n display: flex;\n margin: 0;\n padding: 0;\n list-style: none;\n outline: 0 none;\n}\n\n.p-menubar-root-list {\n align-items: center;\n flex-wrap: wrap;\n gap: ").concat(dt("menubar.gap"), ";\n}\n\n.p-menubar-root-list > .p-menubar-item > .p-menubar-item-content {\n border-radius: ").concat(dt("menubar.base.item.border.radius"), ";\n}\n\n.p-menubar-root-list > .p-menubar-item > .p-menubar-item-content > .p-menubar-item-link {\n padding: ").concat(dt("menubar.base.item.padding"), ";\n}\n\n.p-menubar-item-content {\n transition: background ").concat(dt("menubar.transition.duration"), ", color ").concat(dt("menubar.transition.duration"), ";\n border-radius: ").concat(dt("menubar.item.border.radius"), ";\n color: ").concat(dt("menubar.item.color"), ";\n}\n\n.p-menubar-item-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n color: inherit;\n padding: ").concat(dt("menubar.item.padding"), ";\n gap: ").concat(dt("menubar.item.gap"), ";\n user-select: none;\n outline: 0 none;\n}\n\n.p-menubar-item-label {\n line-height: 1;\n}\n\n.p-menubar-item-icon {\n color: ").concat(dt("menubar.item.icon.color"), ";\n}\n\n.p-menubar-submenu-icon {\n color: ").concat(dt("menubar.submenu.icon.color"), ";\n margin-left: auto;\n font-size: ").concat(dt("menubar.submenu.icon.size"), ";\n width: ").concat(dt("menubar.submenu.icon.size"), ";\n height: ").concat(dt("menubar.submenu.icon.size"), ";\n}\n\n.p-menubar-item.p-focus > .p-menubar-item-content {\n color: ").concat(dt("menubar.item.focus.color"), ";\n background: ").concat(dt("menubar.item.focus.background"), ";\n}\n\n.p-menubar-item.p-focus > .p-menubar-item-content .p-menubar-item-icon {\n color: ").concat(dt("menubar.item.icon.focus.color"), ";\n}\n\n.p-menubar-item.p-focus > .p-menubar-item-content .p-menubar-submenu-icon {\n color: ").concat(dt("menubar.submenu.icon.focus.color"), ";\n}\n\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover {\n color: ").concat(dt("menubar.item.focus.color"), ";\n background: ").concat(dt("menubar.item.focus.background"), ";\n}\n\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover .p-menubar-item-icon {\n color: ").concat(dt("menubar.item.icon.focus.color"), ";\n}\n\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover .p-menubar-submenu-icon {\n color: ").concat(dt("menubar.submenu.icon.focus.color"), ";\n}\n\n.p-menubar-item-active > .p-menubar-item-content {\n color: ").concat(dt("menubar.item.active.color"), ";\n background: ").concat(dt("menubar.item.active.background"), ";\n}\n\n.p-menubar-item-active > .p-menubar-item-content .p-menubar-item-icon {\n color: ").concat(dt("menubar.item.icon.active.color"), ";\n}\n\n.p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\n color: ").concat(dt("menubar.submenu.icon.active.color"), ";\n}\n\n.p-menubar-submenu {\n display: none;\n position: absolute;\n min-width: 12.5rem;\n z-index: 1;\n background: ").concat(dt("menubar.submenu.background"), ";\n border: 1px solid ").concat(dt("menubar.submenu.border.color"), ";\n border-radius: ").concat(dt("menubar.border.radius"), ";\n box-shadow: ").concat(dt("menubar.submenu.shadow"), ";\n color: ").concat(dt("menubar.submenu.color"), ";\n flex-direction: column;\n padding: ").concat(dt("menubar.submenu.padding"), ";\n gap: ").concat(dt("menubar.submenu.gap"), ";\n}\n\n.p-menubar-submenu .p-menubar-separator {\n border-top: 1px solid ").concat(dt("menubar.separator.border.color"), ";\n}\n\n.p-menubar-submenu .p-menubar-item {\n position: relative;\n}\n\n .p-menubar-submenu > .p-menubar-item-active > .p-menubar-submenu {\n display: block;\n left: 100%;\n top: 0;\n}\n\n.p-menubar-end {\n margin-left: auto;\n align-self: center;\n}\n\n.p-menubar-button {\n display: none;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: ").concat(dt("menubar.mobile.button.size"), ";\n height: ").concat(dt("menubar.mobile.button.size"), ";\n position: relative;\n color: ").concat(dt("menubar.mobile.button.color"), ";\n border: 0 none;\n background: transparent;\n border-radius: ").concat(dt("menubar.mobile.button.border.radius"), ";\n transition: background ").concat(dt("menubar.transition.duration"), ", color ").concat(dt("menubar.transition.duration"), ", outline-color ").concat(dt("menubar.transition.duration"), ";\n outline-color: transparent;\n}\n\n.p-menubar-button:hover {\n color: ").concat(dt("menubar.mobile.button.hover.color"), ";\n background: ").concat(dt("menubar.mobile.button.hover.background"), ";\n}\n\n.p-menubar-button:focus-visible {\n box-shadow: ").concat(dt("menubar.mobile.button.focus.ring.shadow"), ";\n outline: ").concat(dt("menubar.mobile.button.focus.ring.width"), " ").concat(dt("menubar.mobile.button.focus.ring.style"), " ").concat(dt("menubar.mobile.button.focus.ring.color"), ";\n outline-offset: ").concat(dt("menubar.mobile.button.focus.ring.offset"), ";\n}\n\n.p-menubar-mobile {\n position: relative;\n}\n\n.p-menubar-mobile .p-menubar-button {\n display: flex;\n}\n\n.p-menubar-mobile .p-menubar-root-list {\n position: absolute;\n display: none;\n width: 100%;\n padding: ").concat(dt("menubar.submenu.padding"), ";\n background: ").concat(dt("menubar.submenu.background"), ";\n border: 1px solid ").concat(dt("menubar.submenu.border.color"), ";\n box-shadow: ").concat(dt("menubar.submenu.shadow"), ";\n}\n\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content {\n border-radius: ").concat(dt("menubar.item.border.radius"), ";\n}\n\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content > .p-menubar-item-link {\n padding: ").concat(dt("menubar.item.padding"), ";\n}\n\n.p-menubar-mobile-active .p-menubar-root-list {\n display: flex;\n flex-direction: column;\n top: 100%;\n left: 0;\n z-index: 1;\n}\n\n.p-menubar-mobile .p-menubar-root-list .p-menubar-item {\n width: 100%;\n position: static;\n}\n\n.p-menubar-mobile .p-menubar-root-list .p-menubar-separator {\n border-top: 1px solid ").concat(dt("menubar.separator.border.color"), ";\n}\n\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content .p-menubar-submenu-icon {\n margin-left: auto;\n transition: transform 0.2s;\n}\n\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\n transform: rotate(-180deg);\n}\n\n.p-menubar-mobile .p-menubar-submenu .p-menubar-submenu-icon {\n transition: transform 0.2s;\n transform: rotate(90deg);\n}\n\n.p-menubar-mobile .p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\n transform: rotate(-90deg);\n}\n\n.p-menubar-mobile .p-menubar-submenu {\n width: 100%;\n position: static;\n box-shadow: none;\n border: 0 none;\n padding-left: ").concat(dt("menubar.submenu.mobile.indent"), ";\n}\n"); +}, "theme"); +var inlineStyles = { + submenu: /* @__PURE__ */ __name(function submenu2(_ref2) { + var instance = _ref2.instance, processedItem = _ref2.processedItem; + return { + display: instance.isItemActive(processedItem) ? "flex" : "none" + }; + }, "submenu") +}; +var classes = { + root: /* @__PURE__ */ __name(function root10(_ref3) { + var instance = _ref3.instance; + return ["p-menubar p-component", { + "p-menubar-mobile": instance.queryMatches, + "p-menubar-mobile-active": instance.mobileActive + }]; + }, "root"), + start: "p-menubar-start", + button: "p-menubar-button", + rootList: "p-menubar-root-list", + item: /* @__PURE__ */ __name(function item2(_ref4) { + var instance = _ref4.instance, processedItem = _ref4.processedItem; + return ["p-menubar-item", { + "p-menubar-item-active": instance.isItemActive(processedItem), + "p-focus": instance.isItemFocused(processedItem), + "p-disabled": instance.isItemDisabled(processedItem) + }]; + }, "item"), + itemContent: "p-menubar-item-content", + itemLink: "p-menubar-item-link", + itemIcon: "p-menubar-item-icon", + itemLabel: "p-menubar-item-label", + submenuIcon: "p-menubar-submenu-icon", + submenu: "p-menubar-submenu", + separator: "p-menubar-separator", + end: "p-menubar-end" +}; +var MenubarStyle = BaseStyle.extend({ + name: "menubar", + theme: theme8, + classes, + inlineStyles +}); +var script$2 = { + name: "BaseMenubar", + "extends": script$e, + props: { + model: { + type: Array, + "default": null + }, + buttonProps: { + type: null, + "default": null + }, + breakpoint: { + type: String, + "default": "960px" + }, + ariaLabelledby: { + type: String, + "default": null + }, + ariaLabel: { + type: String, + "default": null + } + }, + style: MenubarStyle, + provide: /* @__PURE__ */ __name(function provide12() { + return { + $pcMenubar: this, + $parentInstance: this + }; + }, "provide") +}; +var script$1 = { + name: "MenubarSub", + hostName: "Menubar", + "extends": script$e, + emits: ["item-mouseenter", "item-click", "item-mousemove"], + props: { + items: { + type: Array, + "default": null + }, + root: { + type: Boolean, + "default": false + }, + popup: { + type: Boolean, + "default": false + }, + mobileActive: { + type: Boolean, + "default": false + }, + templates: { + type: Object, + "default": null + }, + level: { + type: Number, + "default": 0 + }, + menuId: { + type: String, + "default": null + }, + focusedItemId: { + type: String, + "default": null + }, + activeItemPath: { + type: Object, + "default": null + } + }, + list: null, + methods: { + getItemId: /* @__PURE__ */ __name(function getItemId2(processedItem) { + return "".concat(this.menuId, "_").concat(processedItem.key); + }, "getItemId"), + getItemKey: /* @__PURE__ */ __name(function getItemKey2(processedItem) { + return this.getItemId(processedItem); + }, "getItemKey"), + getItemProp: /* @__PURE__ */ __name(function getItemProp3(processedItem, name, params) { + return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : void 0; + }, "getItemProp"), + getItemLabel: /* @__PURE__ */ __name(function getItemLabel3(processedItem) { + return this.getItemProp(processedItem, "label"); + }, "getItemLabel"), + getItemLabelId: /* @__PURE__ */ __name(function getItemLabelId2(processedItem) { + return "".concat(this.menuId, "_").concat(processedItem.key, "_label"); + }, "getItemLabelId"), + getPTOptions: /* @__PURE__ */ __name(function getPTOptions5(processedItem, index, key) { + return this.ptm(key, { + context: { + item: processedItem.item, + index, + active: this.isItemActive(processedItem), + focused: this.isItemFocused(processedItem), + disabled: this.isItemDisabled(processedItem), + level: this.level + } + }); + }, "getPTOptions"), + isItemActive: /* @__PURE__ */ __name(function isItemActive2(processedItem) { + return this.activeItemPath.some(function(path) { + return path.key === processedItem.key; + }); + }, "isItemActive"), + isItemVisible: /* @__PURE__ */ __name(function isItemVisible3(processedItem) { + return this.getItemProp(processedItem, "visible") !== false; + }, "isItemVisible"), + isItemDisabled: /* @__PURE__ */ __name(function isItemDisabled3(processedItem) { + return this.getItemProp(processedItem, "disabled"); + }, "isItemDisabled"), + isItemFocused: /* @__PURE__ */ __name(function isItemFocused2(processedItem) { + return this.focusedItemId === this.getItemId(processedItem); + }, "isItemFocused"), + isItemGroup: /* @__PURE__ */ __name(function isItemGroup3(processedItem) { + return isNotEmpty(processedItem.items); + }, "isItemGroup"), + onItemClick: /* @__PURE__ */ __name(function onItemClick3(event, processedItem) { + this.getItemProp(processedItem, "command", { + originalEvent: event, + item: processedItem.item + }); + this.$emit("item-click", { + originalEvent: event, + processedItem, + isFocus: true + }); + }, "onItemClick"), + onItemMouseEnter: /* @__PURE__ */ __name(function onItemMouseEnter3(event, processedItem) { + this.$emit("item-mouseenter", { + originalEvent: event, + processedItem + }); + }, "onItemMouseEnter"), + onItemMouseMove: /* @__PURE__ */ __name(function onItemMouseMove3(event, processedItem) { + this.$emit("item-mousemove", { + originalEvent: event, + processedItem + }); + }, "onItemMouseMove"), + getAriaPosInset: /* @__PURE__ */ __name(function getAriaPosInset3(index) { + return index - this.calculateAriaSetSize.slice(0, index).length + 1; + }, "getAriaPosInset"), + getMenuItemProps: /* @__PURE__ */ __name(function getMenuItemProps2(processedItem, index) { + return { + action: mergeProps({ + "class": this.cx("itemLink"), + tabindex: -1, + "aria-hidden": true + }, this.getPTOptions(processedItem, index, "itemLink")), + icon: mergeProps({ + "class": [this.cx("itemIcon"), this.getItemProp(processedItem, "icon")] + }, this.getPTOptions(processedItem, index, "itemIcon")), + label: mergeProps({ + "class": this.cx("itemLabel") + }, this.getPTOptions(processedItem, index, "itemLabel")), + submenuicon: mergeProps({ + "class": this.cx("submenuIcon") + }, this.getPTOptions(processedItem, index, "submenuIcon")) + }; + }, "getMenuItemProps") + }, + computed: { + calculateAriaSetSize: /* @__PURE__ */ __name(function calculateAriaSetSize() { + var _this = this; + return this.items.filter(function(processedItem) { + return _this.isItemVisible(processedItem) && _this.getItemProp(processedItem, "separator"); + }); + }, "calculateAriaSetSize"), + getAriaSetSize: /* @__PURE__ */ __name(function getAriaSetSize2() { + var _this2 = this; + return this.items.filter(function(processedItem) { + return _this2.isItemVisible(processedItem) && !_this2.getItemProp(processedItem, "separator"); + }).length; + }, "getAriaSetSize") + }, + components: { + AngleRightIcon: script$w, + AngleDownIcon: script$z + }, + directives: { + ripple: Ripple + } +}; +var _hoisted_1$1$1 = ["id", "aria-label", "aria-disabled", "aria-expanded", "aria-haspopup", "aria-level", "aria-setsize", "aria-posinset", "data-p-active", "data-p-focused", "data-p-disabled"]; +var _hoisted_2$3 = ["onClick", "onMouseenter", "onMousemove"]; +var _hoisted_3$2 = ["href", "target"]; +var _hoisted_4 = ["id"]; +var _hoisted_5 = ["id"]; +function render$1(_ctx, _cache, $props, $setup, $data, $options) { + var _component_MenubarSub = resolveComponent("MenubarSub", true); + var _directive_ripple = resolveDirective("ripple"); + return openBlock(), createElementBlock("ul", mergeProps({ + "class": $props.level === 0 ? _ctx.cx("rootList") : _ctx.cx("submenu") + }, $props.level === 0 ? _ctx.ptm("rootList") : _ctx.ptm("submenu")), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.items, function(processedItem, index) { + return openBlock(), createElementBlock(Fragment, { + key: $options.getItemKey(processedItem) + }, [$options.isItemVisible(processedItem) && !$options.getItemProp(processedItem, "separator") ? (openBlock(), createElementBlock("li", mergeProps({ + key: 0, + id: $options.getItemId(processedItem), + style: $options.getItemProp(processedItem, "style"), + "class": [_ctx.cx("item", { + processedItem + }), $options.getItemProp(processedItem, "class")], + role: "menuitem", + "aria-label": $options.getItemLabel(processedItem), + "aria-disabled": $options.isItemDisabled(processedItem) || void 0, + "aria-expanded": $options.isItemGroup(processedItem) ? $options.isItemActive(processedItem) : void 0, + "aria-haspopup": $options.isItemGroup(processedItem) && !$options.getItemProp(processedItem, "to") ? "menu" : void 0, + "aria-level": $props.level + 1, + "aria-setsize": $options.getAriaSetSize, + "aria-posinset": $options.getAriaPosInset(index), + ref_for: true + }, $options.getPTOptions(processedItem, index, "item"), { + "data-p-active": $options.isItemActive(processedItem), + "data-p-focused": $options.isItemFocused(processedItem), + "data-p-disabled": $options.isItemDisabled(processedItem) + }), [createBaseVNode("div", mergeProps({ + "class": _ctx.cx("itemContent"), + onClick: /* @__PURE__ */ __name(function onClick2($event) { + return $options.onItemClick($event, processedItem); + }, "onClick"), + onMouseenter: /* @__PURE__ */ __name(function onMouseenter($event) { + return $options.onItemMouseEnter($event, processedItem); + }, "onMouseenter"), + onMousemove: /* @__PURE__ */ __name(function onMousemove($event) { + return $options.onItemMouseMove($event, processedItem); + }, "onMousemove"), + ref_for: true + }, $options.getPTOptions(processedItem, index, "itemContent")), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock("a", mergeProps({ + key: 0, + href: $options.getItemProp(processedItem, "url"), + "class": _ctx.cx("itemLink"), + target: $options.getItemProp(processedItem, "target"), + tabindex: "-1", + ref_for: true + }, $options.getPTOptions(processedItem, index, "itemLink")), [$props.templates.itemicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.itemicon), { + key: 0, + item: processedItem.item, + "class": normalizeClass(_ctx.cx("itemIcon")) + }, null, 8, ["item", "class"])) : $options.getItemProp(processedItem, "icon") ? (openBlock(), createElementBlock("span", mergeProps({ + key: 1, + "class": [_ctx.cx("itemIcon"), $options.getItemProp(processedItem, "icon")], + ref_for: true + }, $options.getPTOptions(processedItem, index, "itemIcon")), null, 16)) : createCommentVNode("", true), createBaseVNode("span", mergeProps({ + id: $options.getItemLabelId(processedItem), + "class": _ctx.cx("itemLabel"), + ref_for: true + }, $options.getPTOptions(processedItem, index, "itemLabel")), toDisplayString($options.getItemLabel(processedItem)), 17, _hoisted_4), $options.getItemProp(processedItem, "items") ? (openBlock(), createElementBlock(Fragment, { + key: 2 + }, [$props.templates.submenuicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.submenuicon), { + key: 0, + root: $props.root, + active: $options.isItemActive(processedItem), + "class": normalizeClass(_ctx.cx("submenuIcon")) + }, null, 8, ["root", "active", "class"])) : (openBlock(), createBlock(resolveDynamicComponent($props.root ? "AngleDownIcon" : "AngleRightIcon"), mergeProps({ + key: 1, + "class": _ctx.cx("submenuIcon"), + ref_for: true + }, $options.getPTOptions(processedItem, index, "submenuIcon")), null, 16, ["class"]))], 64)) : createCommentVNode("", true)], 16, _hoisted_3$2)), [[_directive_ripple]]) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), { + key: 1, + item: processedItem.item, + root: $props.root, + hasSubmenu: $options.getItemProp(processedItem, "items"), + label: $options.getItemLabel(processedItem), + props: $options.getMenuItemProps(processedItem, index) + }, null, 8, ["item", "root", "hasSubmenu", "label", "props"]))], 16, _hoisted_2$3), $options.isItemVisible(processedItem) && $options.isItemGroup(processedItem) ? (openBlock(), createBlock(_component_MenubarSub, { + key: 0, + id: $options.getItemId(processedItem) + "_list", + menuId: $props.menuId, + role: "menu", + style: normalizeStyle(_ctx.sx("submenu", true, { + processedItem + })), + focusedItemId: $props.focusedItemId, + items: processedItem.items, + mobileActive: $props.mobileActive, + activeItemPath: $props.activeItemPath, + templates: $props.templates, + level: $props.level + 1, + "aria-labelledby": $options.getItemLabelId(processedItem), + pt: _ctx.pt, + unstyled: _ctx.unstyled, + onItemClick: _cache[0] || (_cache[0] = function($event) { + return _ctx.$emit("item-click", $event); + }), + onItemMouseenter: _cache[1] || (_cache[1] = function($event) { + return _ctx.$emit("item-mouseenter", $event); + }), + onItemMousemove: _cache[2] || (_cache[2] = function($event) { + return _ctx.$emit("item-mousemove", $event); + }) + }, null, 8, ["id", "menuId", "style", "focusedItemId", "items", "mobileActive", "activeItemPath", "templates", "level", "aria-labelledby", "pt", "unstyled"])) : createCommentVNode("", true)], 16, _hoisted_1$1$1)) : createCommentVNode("", true), $options.isItemVisible(processedItem) && $options.getItemProp(processedItem, "separator") ? (openBlock(), createElementBlock("li", mergeProps({ + key: 1, + id: $options.getItemId(processedItem), + "class": [_ctx.cx("separator"), $options.getItemProp(processedItem, "class")], + style: $options.getItemProp(processedItem, "style"), + role: "separator", + ref_for: true + }, _ctx.ptm("separator")), null, 16, _hoisted_5)) : createCommentVNode("", true)], 64); + }), 128))], 16); +} +__name(render$1, "render$1"); +script$1.render = render$1; +var script = { + name: "Menubar", + "extends": script$2, + inheritAttrs: false, + emits: ["focus", "blur"], + matchMediaListener: null, + data: /* @__PURE__ */ __name(function data8() { + return { + id: this.$attrs.id, + mobileActive: false, + focused: false, + focusedItemInfo: { + index: -1, + level: 0, + parentKey: "" + }, + activeItemPath: [], + dirty: false, + query: null, + queryMatches: false + }; + }, "data"), + watch: { + "$attrs.id": /* @__PURE__ */ __name(function $attrsId4(newValue) { + this.id = newValue || UniqueComponentId(); + }, "$attrsId"), + activeItemPath: /* @__PURE__ */ __name(function activeItemPath2(newPath) { + if (isNotEmpty(newPath)) { + this.bindOutsideClickListener(); + this.bindResizeListener(); + } else { + this.unbindOutsideClickListener(); + this.unbindResizeListener(); + } + }, "activeItemPath") + }, + outsideClickListener: null, + container: null, + menubar: null, + mounted: /* @__PURE__ */ __name(function mounted8() { + this.id = this.id || UniqueComponentId(); + this.bindMatchMediaListener(); + }, "mounted"), + beforeUnmount: /* @__PURE__ */ __name(function beforeUnmount7() { + this.mobileActive = false; + this.unbindOutsideClickListener(); + this.unbindResizeListener(); + this.unbindMatchMediaListener(); + if (this.container) { + ZIndex.clear(this.container); + } + this.container = null; + }, "beforeUnmount"), + methods: { + getItemProp: /* @__PURE__ */ __name(function getItemProp4(item3, name) { + return item3 ? resolve(item3[name]) : void 0; + }, "getItemProp"), + getItemLabel: /* @__PURE__ */ __name(function getItemLabel4(item3) { + return this.getItemProp(item3, "label"); + }, "getItemLabel"), + isItemDisabled: /* @__PURE__ */ __name(function isItemDisabled4(item3) { + return this.getItemProp(item3, "disabled"); + }, "isItemDisabled"), + isItemVisible: /* @__PURE__ */ __name(function isItemVisible4(item3) { + return this.getItemProp(item3, "visible") !== false; + }, "isItemVisible"), + isItemGroup: /* @__PURE__ */ __name(function isItemGroup4(item3) { + return isNotEmpty(this.getItemProp(item3, "items")); + }, "isItemGroup"), + isItemSeparator: /* @__PURE__ */ __name(function isItemSeparator2(item3) { + return this.getItemProp(item3, "separator"); + }, "isItemSeparator"), + getProccessedItemLabel: /* @__PURE__ */ __name(function getProccessedItemLabel2(processedItem) { + return processedItem ? this.getItemLabel(processedItem.item) : void 0; + }, "getProccessedItemLabel"), + isProccessedItemGroup: /* @__PURE__ */ __name(function isProccessedItemGroup2(processedItem) { + return processedItem && isNotEmpty(processedItem.items); + }, "isProccessedItemGroup"), + toggle: /* @__PURE__ */ __name(function toggle2(event) { + var _this = this; + if (this.mobileActive) { + this.mobileActive = false; + ZIndex.clear(this.menubar); + this.hide(); + } else { + this.mobileActive = true; + ZIndex.set("menu", this.menubar, this.$primevue.config.zIndex.menu); + setTimeout(function() { + _this.show(); + }, 1); + } + this.bindOutsideClickListener(); + event.preventDefault(); + }, "toggle"), + show: /* @__PURE__ */ __name(function show3() { + focus(this.menubar); + }, "show"), + hide: /* @__PURE__ */ __name(function hide3(event, isFocus) { + var _this2 = this; + if (this.mobileActive) { + this.mobileActive = false; + setTimeout(function() { + focus(_this2.$refs.menubutton); + }, 0); + } + this.activeItemPath = []; + this.focusedItemInfo = { + index: -1, + level: 0, + parentKey: "" + }; + isFocus && focus(this.menubar); + this.dirty = false; + }, "hide"), + onFocus: /* @__PURE__ */ __name(function onFocus4(event) { + this.focused = true; + this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { + index: this.findFirstFocusedItemIndex(), + level: 0, + parentKey: "" + }; + this.$emit("focus", event); + }, "onFocus"), + onBlur: /* @__PURE__ */ __name(function onBlur3(event) { + this.focused = false; + this.focusedItemInfo = { + index: -1, + level: 0, + parentKey: "" + }; + this.searchValue = ""; + this.dirty = false; + this.$emit("blur", event); + }, "onBlur"), + onKeyDown: /* @__PURE__ */ __name(function onKeyDown3(event) { + var metaKey = event.metaKey || event.ctrlKey; + switch (event.code) { + case "ArrowDown": + this.onArrowDownKey(event); + break; + case "ArrowUp": + this.onArrowUpKey(event); + break; + case "ArrowLeft": + this.onArrowLeftKey(event); + break; + case "ArrowRight": + this.onArrowRightKey(event); + break; + case "Home": + this.onHomeKey(event); + break; + case "End": + this.onEndKey(event); + break; + case "Space": + this.onSpaceKey(event); + break; + case "Enter": + case "NumpadEnter": + this.onEnterKey(event); + break; + case "Escape": + this.onEscapeKey(event); + break; + case "Tab": + this.onTabKey(event); + break; + case "PageDown": + case "PageUp": + case "Backspace": + case "ShiftLeft": + case "ShiftRight": + break; + default: + if (!metaKey && isPrintableCharacter(event.key)) { + this.searchItems(event, event.key); + } + break; + } + }, "onKeyDown"), + onItemChange: /* @__PURE__ */ __name(function onItemChange2(event) { + var processedItem = event.processedItem, isFocus = event.isFocus; + if (isEmpty(processedItem)) return; + var index = processedItem.index, key = processedItem.key, level = processedItem.level, parentKey = processedItem.parentKey, items = processedItem.items; + var grouped = isNotEmpty(items); + var activeItemPath3 = this.activeItemPath.filter(function(p) { + return p.parentKey !== parentKey && p.parentKey !== key; + }); + grouped && activeItemPath3.push(processedItem); + this.focusedItemInfo = { + index, + level, + parentKey + }; + this.activeItemPath = activeItemPath3; + grouped && (this.dirty = true); + isFocus && focus(this.menubar); + }, "onItemChange"), + onItemClick: /* @__PURE__ */ __name(function onItemClick4(event) { + var originalEvent = event.originalEvent, processedItem = event.processedItem; + var grouped = this.isProccessedItemGroup(processedItem); + var root11 = isEmpty(processedItem.parent); + var selected = this.isSelected(processedItem); + if (selected) { + var index = processedItem.index, key = processedItem.key, level = processedItem.level, parentKey = processedItem.parentKey; + this.activeItemPath = this.activeItemPath.filter(function(p) { + return key !== p.key && key.startsWith(p.key); + }); + this.focusedItemInfo = { + index, + level, + parentKey + }; + this.dirty = !root11; + focus(this.menubar); + } else { + if (grouped) { + this.onItemChange(event); + } else { + var rootProcessedItem = root11 ? processedItem : this.activeItemPath.find(function(p) { + return p.parentKey === ""; + }); + this.hide(originalEvent); + this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1); + this.mobileActive = false; + focus(this.menubar); + } + } + }, "onItemClick"), + onItemMouseEnter: /* @__PURE__ */ __name(function onItemMouseEnter4(event) { + if (this.dirty) { + this.onItemChange(event); + } + }, "onItemMouseEnter"), + onItemMouseMove: /* @__PURE__ */ __name(function onItemMouseMove4(event) { + if (this.focused) { + this.changeFocusedItemIndex(event, event.processedItem.index); + } + }, "onItemMouseMove"), + menuButtonClick: /* @__PURE__ */ __name(function menuButtonClick(event) { + this.toggle(event); + }, "menuButtonClick"), + menuButtonKeydown: /* @__PURE__ */ __name(function menuButtonKeydown(event) { + (event.code === "Enter" || event.code === "NumpadEnter" || event.code === "Space") && this.menuButtonClick(event); + }, "menuButtonKeydown"), + onArrowDownKey: /* @__PURE__ */ __name(function onArrowDownKey3(event) { + var processedItem = this.visibleItems[this.focusedItemInfo.index]; + var root11 = processedItem ? isEmpty(processedItem.parent) : null; + if (root11) { + var grouped = this.isProccessedItemGroup(processedItem); + if (grouped) { + this.onItemChange({ + originalEvent: event, + processedItem + }); + this.focusedItemInfo = { + index: -1, + parentKey: processedItem.key + }; + this.onArrowRightKey(event); + } + } else { + var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex(); + this.changeFocusedItemIndex(event, itemIndex); + } + event.preventDefault(); + }, "onArrowDownKey"), + onArrowUpKey: /* @__PURE__ */ __name(function onArrowUpKey3(event) { + var _this3 = this; + var processedItem = this.visibleItems[this.focusedItemInfo.index]; + var root11 = isEmpty(processedItem.parent); + if (root11) { + var grouped = this.isProccessedItemGroup(processedItem); + if (grouped) { + this.onItemChange({ + originalEvent: event, + processedItem + }); + this.focusedItemInfo = { + index: -1, + parentKey: processedItem.key + }; + var itemIndex = this.findLastItemIndex(); + this.changeFocusedItemIndex(event, itemIndex); + } + } else { + var parentItem = this.activeItemPath.find(function(p) { + return p.key === processedItem.parentKey; + }); + if (this.focusedItemInfo.index === 0) { + this.focusedItemInfo = { + index: -1, + parentKey: parentItem ? parentItem.parentKey : "" + }; + this.searchValue = ""; + this.onArrowLeftKey(event); + this.activeItemPath = this.activeItemPath.filter(function(p) { + return p.parentKey !== _this3.focusedItemInfo.parentKey; + }); + } else { + var _itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex(); + this.changeFocusedItemIndex(event, _itemIndex); + } + } + event.preventDefault(); + }, "onArrowUpKey"), + onArrowLeftKey: /* @__PURE__ */ __name(function onArrowLeftKey4(event) { + var _this4 = this; + var processedItem = this.visibleItems[this.focusedItemInfo.index]; + var parentItem = processedItem ? this.activeItemPath.find(function(p) { + return p.key === processedItem.parentKey; + }) : null; + if (parentItem) { + this.onItemChange({ + originalEvent: event, + processedItem: parentItem + }); + this.activeItemPath = this.activeItemPath.filter(function(p) { + return p.parentKey !== _this4.focusedItemInfo.parentKey; + }); + event.preventDefault(); + } else { + var itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex(); + this.changeFocusedItemIndex(event, itemIndex); + event.preventDefault(); + } + }, "onArrowLeftKey"), + onArrowRightKey: /* @__PURE__ */ __name(function onArrowRightKey4(event) { + var processedItem = this.visibleItems[this.focusedItemInfo.index]; + var parentItem = processedItem ? this.activeItemPath.find(function(p) { + return p.key === processedItem.parentKey; + }) : null; + if (parentItem) { + var grouped = this.isProccessedItemGroup(processedItem); + if (grouped) { + this.onItemChange({ + originalEvent: event, + processedItem + }); + this.focusedItemInfo = { + index: -1, + parentKey: processedItem.key + }; + this.onArrowDownKey(event); + } + } else { + var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex(); + this.changeFocusedItemIndex(event, itemIndex); + event.preventDefault(); + } + }, "onArrowRightKey"), + onHomeKey: /* @__PURE__ */ __name(function onHomeKey4(event) { + this.changeFocusedItemIndex(event, this.findFirstItemIndex()); + event.preventDefault(); + }, "onHomeKey"), + onEndKey: /* @__PURE__ */ __name(function onEndKey4(event) { + this.changeFocusedItemIndex(event, this.findLastItemIndex()); + event.preventDefault(); + }, "onEndKey"), + onEnterKey: /* @__PURE__ */ __name(function onEnterKey4(event) { + if (this.focusedItemInfo.index !== -1) { + var element = findSingle(this.menubar, 'li[id="'.concat("".concat(this.focusedItemId), '"]')); + var anchorElement = element && findSingle(element, 'a[data-pc-section="itemlink"]'); + anchorElement ? anchorElement.click() : element && element.click(); + var processedItem = this.visibleItems[this.focusedItemInfo.index]; + var grouped = this.isProccessedItemGroup(processedItem); + !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex()); + } + event.preventDefault(); + }, "onEnterKey"), + onSpaceKey: /* @__PURE__ */ __name(function onSpaceKey2(event) { + this.onEnterKey(event); + }, "onSpaceKey"), + onEscapeKey: /* @__PURE__ */ __name(function onEscapeKey3(event) { + if (this.focusedItemInfo.level !== 0) { + var _focusedItemInfo = this.focusedItemInfo; + this.hide(event, false); + this.focusedItemInfo = { + index: Number(_focusedItemInfo.parentKey.split("_")[0]), + level: 0, + parentKey: "" + }; + } + event.preventDefault(); + }, "onEscapeKey"), + onTabKey: /* @__PURE__ */ __name(function onTabKey3(event) { + if (this.focusedItemInfo.index !== -1) { + var processedItem = this.visibleItems[this.focusedItemInfo.index]; + var grouped = this.isProccessedItemGroup(processedItem); + !grouped && this.onItemChange({ + originalEvent: event, + processedItem + }); + } + this.hide(); + }, "onTabKey"), + bindOutsideClickListener: /* @__PURE__ */ __name(function bindOutsideClickListener3() { + var _this5 = this; + if (!this.outsideClickListener) { + this.outsideClickListener = function(event) { + var isOutsideContainer = _this5.container && !_this5.container.contains(event.target); + var isOutsideTarget = !(_this5.target && (_this5.target === event.target || _this5.target.contains(event.target))); + if (isOutsideContainer && isOutsideTarget) { + _this5.hide(); + } + }; + document.addEventListener("click", this.outsideClickListener); + } + }, "bindOutsideClickListener"), + unbindOutsideClickListener: /* @__PURE__ */ __name(function unbindOutsideClickListener3() { + if (this.outsideClickListener) { + document.removeEventListener("click", this.outsideClickListener); + this.outsideClickListener = null; + } + }, "unbindOutsideClickListener"), + bindResizeListener: /* @__PURE__ */ __name(function bindResizeListener3() { + var _this6 = this; + if (!this.resizeListener) { + this.resizeListener = function(event) { + if (!isTouchDevice()) { + _this6.hide(event, true); + } + _this6.mobileActive = false; + }; + window.addEventListener("resize", this.resizeListener); + } + }, "bindResizeListener"), + unbindResizeListener: /* @__PURE__ */ __name(function unbindResizeListener3() { + if (this.resizeListener) { + window.removeEventListener("resize", this.resizeListener); + this.resizeListener = null; + } + }, "unbindResizeListener"), + bindMatchMediaListener: /* @__PURE__ */ __name(function bindMatchMediaListener() { + var _this7 = this; + if (!this.matchMediaListener) { + var query = matchMedia("(max-width: ".concat(this.breakpoint, ")")); + this.query = query; + this.queryMatches = query.matches; + this.matchMediaListener = function() { + _this7.queryMatches = query.matches; + _this7.mobileActive = false; + }; + this.query.addEventListener("change", this.matchMediaListener); + } + }, "bindMatchMediaListener"), + unbindMatchMediaListener: /* @__PURE__ */ __name(function unbindMatchMediaListener() { + if (this.matchMediaListener) { + this.query.removeEventListener("change", this.matchMediaListener); + this.matchMediaListener = null; + } + }, "unbindMatchMediaListener"), + isItemMatched: /* @__PURE__ */ __name(function isItemMatched2(processedItem) { + var _this$getProccessedIt; + return this.isValidItem(processedItem) && ((_this$getProccessedIt = this.getProccessedItemLabel(processedItem)) === null || _this$getProccessedIt === void 0 ? void 0 : _this$getProccessedIt.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase())); + }, "isItemMatched"), + isValidItem: /* @__PURE__ */ __name(function isValidItem2(processedItem) { + return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item); + }, "isValidItem"), + isValidSelectedItem: /* @__PURE__ */ __name(function isValidSelectedItem2(processedItem) { + return this.isValidItem(processedItem) && this.isSelected(processedItem); + }, "isValidSelectedItem"), + isSelected: /* @__PURE__ */ __name(function isSelected3(processedItem) { + return this.activeItemPath.some(function(p) { + return p.key === processedItem.key; + }); + }, "isSelected"), + findFirstItemIndex: /* @__PURE__ */ __name(function findFirstItemIndex2() { + var _this8 = this; + return this.visibleItems.findIndex(function(processedItem) { + return _this8.isValidItem(processedItem); + }); + }, "findFirstItemIndex"), + findLastItemIndex: /* @__PURE__ */ __name(function findLastItemIndex2() { + var _this9 = this; + return findLastIndex(this.visibleItems, function(processedItem) { + return _this9.isValidItem(processedItem); + }); + }, "findLastItemIndex"), + findNextItemIndex: /* @__PURE__ */ __name(function findNextItemIndex2(index) { + var _this10 = this; + var matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex(function(processedItem) { + return _this10.isValidItem(processedItem); + }) : -1; + return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index; + }, "findNextItemIndex"), + findPrevItemIndex: /* @__PURE__ */ __name(function findPrevItemIndex2(index) { + var _this11 = this; + var matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), function(processedItem) { + return _this11.isValidItem(processedItem); + }) : -1; + return matchedItemIndex > -1 ? matchedItemIndex : index; + }, "findPrevItemIndex"), + findSelectedItemIndex: /* @__PURE__ */ __name(function findSelectedItemIndex2() { + var _this12 = this; + return this.visibleItems.findIndex(function(processedItem) { + return _this12.isValidSelectedItem(processedItem); + }); + }, "findSelectedItemIndex"), + findFirstFocusedItemIndex: /* @__PURE__ */ __name(function findFirstFocusedItemIndex2() { + var selectedIndex = this.findSelectedItemIndex(); + return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex; + }, "findFirstFocusedItemIndex"), + findLastFocusedItemIndex: /* @__PURE__ */ __name(function findLastFocusedItemIndex2() { + var selectedIndex = this.findSelectedItemIndex(); + return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex; + }, "findLastFocusedItemIndex"), + searchItems: /* @__PURE__ */ __name(function searchItems2(event, _char) { + var _this13 = this; + this.searchValue = (this.searchValue || "") + _char; + var itemIndex = -1; + var matched = false; + if (this.focusedItemInfo.index !== -1) { + itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex(function(processedItem) { + return _this13.isItemMatched(processedItem); + }); + itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex(function(processedItem) { + return _this13.isItemMatched(processedItem); + }) : itemIndex + this.focusedItemInfo.index; + } else { + itemIndex = this.visibleItems.findIndex(function(processedItem) { + return _this13.isItemMatched(processedItem); + }); + } + if (itemIndex !== -1) { + matched = true; + } + if (itemIndex === -1 && this.focusedItemInfo.index === -1) { + itemIndex = this.findFirstFocusedItemIndex(); + } + if (itemIndex !== -1) { + this.changeFocusedItemIndex(event, itemIndex); + } + if (this.searchTimeout) { + clearTimeout(this.searchTimeout); + } + this.searchTimeout = setTimeout(function() { + _this13.searchValue = ""; + _this13.searchTimeout = null; + }, 500); + return matched; + }, "searchItems"), + changeFocusedItemIndex: /* @__PURE__ */ __name(function changeFocusedItemIndex2(event, index) { + if (this.focusedItemInfo.index !== index) { + this.focusedItemInfo.index = index; + this.scrollInView(); + } + }, "changeFocusedItemIndex"), + scrollInView: /* @__PURE__ */ __name(function scrollInView4() { + var index = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : -1; + var id2 = index !== -1 ? "".concat(this.id, "_").concat(index) : this.focusedItemId; + var element = findSingle(this.menubar, 'li[id="'.concat(id2, '"]')); + if (element) { + element.scrollIntoView && element.scrollIntoView({ + block: "nearest", + inline: "start" + }); + } + }, "scrollInView"), + createProcessedItems: /* @__PURE__ */ __name(function createProcessedItems2(items) { + var _this14 = this; + var level = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; + var parent = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + var parentKey = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : ""; + var processedItems3 = []; + items && items.forEach(function(item3, index) { + var key = (parentKey !== "" ? parentKey + "_" : "") + index; + var newItem = { + item: item3, + index, + level, + key, + parent, + parentKey + }; + newItem["items"] = _this14.createProcessedItems(item3.items, level + 1, newItem, key); + processedItems3.push(newItem); + }); + return processedItems3; + }, "createProcessedItems"), + containerRef: /* @__PURE__ */ __name(function containerRef3(el) { + this.container = el; + }, "containerRef"), + menubarRef: /* @__PURE__ */ __name(function menubarRef2(el) { + this.menubar = el ? el.$el : void 0; + }, "menubarRef") + }, + computed: { + processedItems: /* @__PURE__ */ __name(function processedItems2() { + return this.createProcessedItems(this.model || []); + }, "processedItems"), + visibleItems: /* @__PURE__ */ __name(function visibleItems2() { + var _this15 = this; + var processedItem = this.activeItemPath.find(function(p) { + return p.key === _this15.focusedItemInfo.parentKey; + }); + return processedItem ? processedItem.items : this.processedItems; + }, "visibleItems"), + focusedItemId: /* @__PURE__ */ __name(function focusedItemId2() { + return this.focusedItemInfo.index !== -1 ? "".concat(this.id).concat(isNotEmpty(this.focusedItemInfo.parentKey) ? "_" + this.focusedItemInfo.parentKey : "", "_").concat(this.focusedItemInfo.index) : null; + }, "focusedItemId") + }, + components: { + MenubarSub: script$1, + BarsIcon: script$A + } +}; +function _typeof(o) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) { + return typeof o2; + } : function(o2) { + return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2; + }, _typeof(o); +} +__name(_typeof, "_typeof"); +function ownKeys(e, r) { + var t = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var o = Object.getOwnPropertySymbols(e); + r && (o = o.filter(function(r2) { + return Object.getOwnPropertyDescriptor(e, r2).enumerable; + })), t.push.apply(t, o); + } + return t; +} +__name(ownKeys, "ownKeys"); +function _objectSpread(e) { + for (var r = 1; r < arguments.length; r++) { + var t = null != arguments[r] ? arguments[r] : {}; + r % 2 ? ownKeys(Object(t), true).forEach(function(r2) { + _defineProperty(e, r2, t[r2]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) { + Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2)); + }); + } + return e; +} +__name(_objectSpread, "_objectSpread"); +function _defineProperty(e, r, t) { + return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e; +} +__name(_defineProperty, "_defineProperty"); +function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; +} +__name(_toPropertyKey, "_toPropertyKey"); +function _toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); +} +__name(_toPrimitive, "_toPrimitive"); +var _hoisted_1$3 = ["aria-haspopup", "aria-expanded", "aria-controls", "aria-label"]; +function render(_ctx, _cache, $props, $setup, $data, $options) { + var _component_BarsIcon = resolveComponent("BarsIcon"); + var _component_MenubarSub = resolveComponent("MenubarSub"); + return openBlock(), createElementBlock("div", mergeProps({ + ref: $options.containerRef, + "class": _ctx.cx("root") + }, _ctx.ptmi("root")), [_ctx.$slots.start ? (openBlock(), createElementBlock("div", mergeProps({ + key: 0, + "class": _ctx.cx("start") + }, _ctx.ptm("start")), [renderSlot(_ctx.$slots, "start")], 16)) : createCommentVNode("", true), renderSlot(_ctx.$slots, _ctx.$slots.button ? "button" : "menubutton", { + id: $data.id, + "class": normalizeClass(_ctx.cx("button")), + toggleCallback: /* @__PURE__ */ __name(function toggleCallback(event) { + return $options.menuButtonClick(event); + }, "toggleCallback") + }, function() { + var _ctx$$primevue$config; + return [_ctx.model && _ctx.model.length > 0 ? (openBlock(), createElementBlock("a", mergeProps({ + key: 0, + ref: "menubutton", + role: "button", + tabindex: "0", + "class": _ctx.cx("button"), + "aria-haspopup": _ctx.model.length && _ctx.model.length > 0 ? true : false, + "aria-expanded": $data.mobileActive, + "aria-controls": $data.id, + "aria-label": (_ctx$$primevue$config = _ctx.$primevue.config.locale.aria) === null || _ctx$$primevue$config === void 0 ? void 0 : _ctx$$primevue$config.navigation, + onClick: _cache[0] || (_cache[0] = function($event) { + return $options.menuButtonClick($event); + }), + onKeydown: _cache[1] || (_cache[1] = function($event) { + return $options.menuButtonKeydown($event); + }) + }, _objectSpread(_objectSpread({}, _ctx.buttonProps), _ctx.ptm("button"))), [renderSlot(_ctx.$slots, _ctx.$slots.buttonicon ? "buttonicon" : "menubuttonicon", {}, function() { + return [createVNode(_component_BarsIcon, normalizeProps(guardReactiveProps(_ctx.ptm("buttonicon"))), null, 16)]; + })], 16, _hoisted_1$3)) : createCommentVNode("", true)]; + }), createVNode(_component_MenubarSub, { + ref: $options.menubarRef, + id: $data.id + "_list", + role: "menubar", + items: $options.processedItems, + templates: _ctx.$slots, + root: true, + mobileActive: $data.mobileActive, + tabindex: "0", + "aria-activedescendant": $data.focused ? $options.focusedItemId : void 0, + menuId: $data.id, + focusedItemId: $data.focused ? $options.focusedItemId : void 0, + activeItemPath: $data.activeItemPath, + level: 0, + "aria-labelledby": _ctx.ariaLabelledby, + "aria-label": _ctx.ariaLabel, + pt: _ctx.pt, + unstyled: _ctx.unstyled, + onFocus: $options.onFocus, + onBlur: $options.onBlur, + onKeydown: $options.onKeyDown, + onItemClick: $options.onItemClick, + onItemMouseenter: $options.onItemMouseEnter, + onItemMousemove: $options.onItemMouseMove + }, null, 8, ["id", "items", "templates", "mobileActive", "aria-activedescendant", "menuId", "focusedItemId", "activeItemPath", "aria-labelledby", "aria-label", "pt", "unstyled", "onFocus", "onBlur", "onKeydown", "onItemClick", "onItemMouseenter", "onItemMousemove"]), _ctx.$slots.end ? (openBlock(), createElementBlock("div", mergeProps({ + key: 1, + "class": _ctx.cx("end") + }, _ctx.ptm("end")), [renderSlot(_ctx.$slots, "end")], 16)) : createCommentVNode("", true)], 16); +} +__name(render, "render"); +script.render = render; +const _withScopeId$2 = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-6fecd137"), n = n(), popScopeId(), n), "_withScopeId$2"); +const _hoisted_1$2 = ["href"]; +const _hoisted_2$2 = { class: "p-menubar-item-label" }; +const _hoisted_3$1 = { + key: 1, + class: "ml-auto border border-surface rounded text-muted text-xs p-1 keybinding-tag" +}; +const _sfc_main$4 = /* @__PURE__ */ defineComponent({ + __name: "CommandMenubar", + setup(__props) { + const settingStore = useSettingStore(); + const dropdownDirection = computed( + () => settingStore.get("Comfy.UseNewMenu") === "Top" ? "down" : "up" + ); + const menuItemsStore = useMenuItemStore(); + const { t } = useI18n(); + const translateMenuItem = /* @__PURE__ */ __name((item3) => { + const label = typeof item3.label === "function" ? item3.label() : item3.label; + const translatedLabel = label ? t(`menuLabels.${normalizeI18nKey(label)}`, label) : void 0; + return { + ...item3, + label: translatedLabel, + items: item3.items?.map(translateMenuItem) + }; + }, "translateMenuItem"); + const translatedItems = computed( + () => menuItemsStore.menuItems.map(translateMenuItem) + ); + return (_ctx, _cache) => { + return openBlock(), createBlock(unref(script), { + model: translatedItems.value, + class: "top-menubar border-none p-0 bg-transparent", + pt: { + rootList: "gap-0 flex-nowrap w-auto", + submenu: `dropdown-direction-${dropdownDirection.value}`, + item: "relative" + } + }, { + item: withCtx(({ item: item3, props }) => [ + createBaseVNode("a", mergeProps({ class: "p-menubar-item-link" }, props.action, { + href: item3.url, + target: "_blank" + }), [ + item3.icon ? (openBlock(), createElementBlock("span", { + key: 0, + class: normalizeClass(["p-menubar-item-icon", item3.icon]) + }, null, 2)) : createCommentVNode("", true), + createBaseVNode("span", _hoisted_2$2, toDisplayString(item3.label), 1), + item3?.comfyCommand?.keybinding ? (openBlock(), createElementBlock("span", _hoisted_3$1, toDisplayString(item3.comfyCommand.keybinding.combo.toString()), 1)) : createCommentVNode("", true) + ], 16, _hoisted_1$2) + ]), + _: 1 + }, 8, ["model", "pt"]); + }; + } +}); +const CommandMenubar = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-6fecd137"]]); +const _withScopeId$1 = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-8d011a31"), n = n(), popScopeId(), n), "_withScopeId$1"); +const _hoisted_1$1 = { class: "workflow-label text-sm max-w-[150px] truncate inline-block" }; +const _hoisted_2$1 = { class: "relative" }; +const _hoisted_3 = { + key: 0, + class: "status-indicator" +}; +const _sfc_main$3 = /* @__PURE__ */ defineComponent({ + __name: "WorkflowTab", + props: { + class: {}, + workflowOption: {} + }, + setup(__props) { + const props = __props; + const workspaceStore = useWorkspaceStore(); + const workflowStore = useWorkflowStore(); + const workflowTabRef = ref(null); + const closeWorkflows = /* @__PURE__ */ __name(async (options) => { + for (const opt of options) { + if (!await useWorkflowService().closeWorkflow(opt.workflow, { + warnIfUnsaved: !workspaceStore.shiftDown + })) { + break; + } + } + }, "closeWorkflows"); + const onCloseWorkflow = /* @__PURE__ */ __name((option2) => { + closeWorkflows([option2]); + }, "onCloseWorkflow"); + const tabGetter = /* @__PURE__ */ __name(() => workflowTabRef.value, "tabGetter"); + usePragmaticDraggable(tabGetter, { + getInitialData: /* @__PURE__ */ __name(() => { + return { + workflowKey: props.workflowOption.workflow.key + }; + }, "getInitialData") + }); + usePragmaticDroppable(tabGetter, { + getData: /* @__PURE__ */ __name(() => { + return { + workflowKey: props.workflowOption.workflow.key + }; + }, "getData"), + onDrop: /* @__PURE__ */ __name((e) => { + const fromIndex = workflowStore.openWorkflows.findIndex( + (wf) => wf.key === e.source.data.workflowKey + ); + const toIndex = workflowStore.openWorkflows.findIndex( + (wf) => wf.key === e.location.current.dropTargets[0]?.data.workflowKey + ); + if (fromIndex !== toIndex) { + workflowStore.reorderWorkflows(fromIndex, toIndex); + } + }, "onDrop") + }); + return (_ctx, _cache) => { + const _directive_tooltip = resolveDirective("tooltip"); + return openBlock(), createElementBlock("div", mergeProps({ + class: "flex p-2 gap-2 workflow-tab", + ref_key: "workflowTabRef", + ref: workflowTabRef + }, _ctx.$attrs), [ + withDirectives((openBlock(), createElementBlock("span", _hoisted_1$1, [ + createTextVNode(toDisplayString(_ctx.workflowOption.workflow.filename), 1) + ])), [ + [ + _directive_tooltip, + _ctx.workflowOption.workflow.key, + void 0, + { bottom: true } + ] + ]), + createBaseVNode("div", _hoisted_2$1, [ + !unref(workspaceStore).shiftDown && (_ctx.workflowOption.workflow.isModified || !_ctx.workflowOption.workflow.isPersisted) ? (openBlock(), createElementBlock("span", _hoisted_3, "•")) : createCommentVNode("", true), + createVNode(unref(script$d), { + class: "close-button p-0 w-auto", + icon: "pi pi-times", + text: "", + severity: "secondary", + size: "small", + onClick: _cache[0] || (_cache[0] = withModifiers(($event) => onCloseWorkflow(_ctx.workflowOption), ["stop"])) + }) + ]) + ], 16); + }; + } +}); +const WorkflowTab = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-8d011a31"]]); +const _sfc_main$2 = /* @__PURE__ */ defineComponent({ + __name: "WorkflowTabs", + props: { + class: {} + }, + setup(__props) { + const props = __props; + const { t } = useI18n(); + const workspaceStore = useWorkspaceStore(); + const workflowStore = useWorkflowStore(); + const workflowService = useWorkflowService(); + const rightClickedTab = ref(null); + const menu = ref(); + const workflowToOption = /* @__PURE__ */ __name((workflow) => ({ + value: workflow.path, + workflow + }), "workflowToOption"); + const options = computed( + () => workflowStore.openWorkflows.map(workflowToOption) + ); + const selectedWorkflow = computed( + () => workflowStore.activeWorkflow ? workflowToOption(workflowStore.activeWorkflow) : null + ); + const onWorkflowChange = /* @__PURE__ */ __name((option2) => { + if (!option2) { + return; + } + if (selectedWorkflow.value?.value === option2.value) { + return; + } + workflowService.openWorkflow(option2.workflow); + }, "onWorkflowChange"); + const closeWorkflows = /* @__PURE__ */ __name(async (options2) => { + for (const opt of options2) { + if (!await workflowService.closeWorkflow(opt.workflow, { + warnIfUnsaved: !workspaceStore.shiftDown + })) { + break; + } + } + }, "closeWorkflows"); + const onCloseWorkflow = /* @__PURE__ */ __name((option2) => { + closeWorkflows([option2]); + }, "onCloseWorkflow"); + const showContextMenu = /* @__PURE__ */ __name((event, option2) => { + rightClickedTab.value = option2; + menu.value.show(event); + }, "showContextMenu"); + const contextMenuItems = computed(() => { + const tab = rightClickedTab.value; + if (!tab) return []; + const index = options.value.findIndex((v) => v.workflow === tab.workflow); + return [ + { + label: t("tabMenu.duplicateTab"), + command: /* @__PURE__ */ __name(() => { + workflowService.duplicateWorkflow(tab.workflow); + }, "command") + }, + { + separator: true + }, + { + label: t("tabMenu.closeTab"), + command: /* @__PURE__ */ __name(() => onCloseWorkflow(tab), "command") + }, + { + label: t("tabMenu.closeTabsToLeft"), + command: /* @__PURE__ */ __name(() => closeWorkflows(options.value.slice(0, index)), "command"), + disabled: index <= 0 + }, + { + label: t("tabMenu.closeTabsToRight"), + command: /* @__PURE__ */ __name(() => closeWorkflows(options.value.slice(index + 1)), "command"), + disabled: index === options.value.length - 1 + }, + { + label: t("tabMenu.closeOtherTabs"), + command: /* @__PURE__ */ __name(() => closeWorkflows([ + ...options.value.slice(index + 1), + ...options.value.slice(0, index) + ]), "command"), + disabled: options.value.length <= 1 + } + ]; + }); + const commandStore = useCommandStore(); + return (_ctx, _cache) => { + return openBlock(), createElementBlock(Fragment, null, [ + createVNode(unref(script$B), { + class: normalizeClass(["workflow-tabs bg-transparent inline", props.class]), + modelValue: selectedWorkflow.value, + "onUpdate:modelValue": onWorkflowChange, + options: options.value, + optionLabel: "label", + dataKey: "value" + }, { + option: withCtx(({ option: option2 }) => [ + createVNode(WorkflowTab, { + onContextmenu: /* @__PURE__ */ __name(($event) => showContextMenu($event, option2), "onContextmenu"), + onMouseup: withModifiers(($event) => onCloseWorkflow(option2), ["middle"]), + "workflow-option": option2 + }, null, 8, ["onContextmenu", "onMouseup", "workflow-option"]) + ]), + _: 1 + }, 8, ["class", "modelValue", "options"]), + createVNode(unref(script$d), { + class: "new-blank-workflow-button", + icon: "pi pi-plus", + text: "", + severity: "secondary", + onClick: _cache[0] || (_cache[0] = () => unref(commandStore).execute("Comfy.NewBlankWorkflow")) + }), + createVNode(unref(script$C), { + ref_key: "menu", + ref: menu, + model: contextMenuItems.value + }, null, 8, ["model"]) + ], 64); + }; + } +}); +const WorkflowTabs = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-d485c044"]]); +const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-878b63b8"), n = n(), popScopeId(), n), "_withScopeId"); const _hoisted_1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createBaseVNode("h1", { class: "comfyui-logo mx-2" }, "ComfyUI", -1)); const _hoisted_2 = { class: "flex-grow" }; const _sfc_main$1 = /* @__PURE__ */ defineComponent({ __name: "TopMenubar", setup(__props) { + const workspaceState = useWorkspaceStore(); const settingStore = useSettingStore(); const workflowTabsPosition = computed( () => settingStore.get("Comfy.Workflow.WorkflowTabsPosition") @@ -7175,6 +8720,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({ } }); return (_ctx, _cache) => { + const _directive_tooltip = resolveDirective("tooltip"); return openBlock(), createBlock(Teleport, { to: teleportTarget.value }, [ withDirectives(createBaseVNode("div", { ref_key: "topMenuRef", @@ -7183,7 +8729,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({ }, [ _hoisted_1, createVNode(CommandMenubar), - createVNode(unref(script$z), { + createVNode(unref(script$D), { layout: "vertical", class: "mx-2" }), @@ -7195,15 +8741,993 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({ ref_key: "menuRight", ref: menuRight }, null, 512), - createVNode(Actionbar) + createVNode(Actionbar), + createVNode(_sfc_main$5), + withDirectives(createVNode(unref(script$d), { + icon: "pi pi-bars", + severity: "secondary", + text: "", + onClick: _cache[0] || (_cache[0] = ($event) => unref(workspaceState).focusMode = true), + onContextmenu: unref(showNativeMenu) + }, null, 8, ["onContextmenu"]), [ + [_directive_tooltip, { value: _ctx.$t("menu.hideMenu"), showDelay: 300 }] + ]) ], 2), [ - [vShow, betaMenuEnabled.value] + [vShow, betaMenuEnabled.value && !unref(workspaceState).focusMode] ]) ], 8, ["to"]); }; } }); -const TopMenubar = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-b13fdc92"]]); +const TopMenubar = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-878b63b8"]]); +var LatentPreviewMethod = /* @__PURE__ */ ((LatentPreviewMethod2) => { + LatentPreviewMethod2["NoPreviews"] = "none"; + LatentPreviewMethod2["Auto"] = "auto"; + LatentPreviewMethod2["Latent2RGB"] = "latent2rgb"; + LatentPreviewMethod2["TAESD"] = "taesd"; + return LatentPreviewMethod2; +})(LatentPreviewMethod || {}); +var LogLevel = /* @__PURE__ */ ((LogLevel2) => { + LogLevel2["DEBUG"] = "DEBUG"; + LogLevel2["INFO"] = "INFO"; + LogLevel2["WARNING"] = "WARNING"; + LogLevel2["ERROR"] = "ERROR"; + LogLevel2["CRITICAL"] = "CRITICAL"; + return LogLevel2; +})(LogLevel || {}); +var HashFunction = /* @__PURE__ */ ((HashFunction2) => { + HashFunction2["MD5"] = "md5"; + HashFunction2["SHA1"] = "sha1"; + HashFunction2["SHA256"] = "sha256"; + HashFunction2["SHA512"] = "sha512"; + return HashFunction2; +})(HashFunction || {}); +var AutoLaunch = /* @__PURE__ */ ((AutoLaunch2) => { + AutoLaunch2["Auto"] = "auto"; + AutoLaunch2["Disable"] = "disable"; + AutoLaunch2["Enable"] = "enable"; + return AutoLaunch2; +})(AutoLaunch || {}); +var CudaMalloc = /* @__PURE__ */ ((CudaMalloc2) => { + CudaMalloc2["Auto"] = "auto"; + CudaMalloc2["Disable"] = "disable"; + CudaMalloc2["Enable"] = "enable"; + return CudaMalloc2; +})(CudaMalloc || {}); +var FloatingPointPrecision = /* @__PURE__ */ ((FloatingPointPrecision2) => { + FloatingPointPrecision2["AUTO"] = "auto"; + FloatingPointPrecision2["FP64"] = "fp64"; + FloatingPointPrecision2["FP32"] = "fp32"; + FloatingPointPrecision2["FP16"] = "fp16"; + FloatingPointPrecision2["BF16"] = "bf16"; + FloatingPointPrecision2["FP8E4M3FN"] = "fp8_e4m3fn"; + FloatingPointPrecision2["FP8E5M2"] = "fp8_e5m2"; + return FloatingPointPrecision2; +})(FloatingPointPrecision || {}); +var CrossAttentionMethod = /* @__PURE__ */ ((CrossAttentionMethod2) => { + CrossAttentionMethod2["Auto"] = "auto"; + CrossAttentionMethod2["Split"] = "split"; + CrossAttentionMethod2["Quad"] = "quad"; + CrossAttentionMethod2["Pytorch"] = "pytorch"; + return CrossAttentionMethod2; +})(CrossAttentionMethod || {}); +var VramManagement = /* @__PURE__ */ ((VramManagement2) => { + VramManagement2["Auto"] = "auto"; + VramManagement2["GPUOnly"] = "gpu-only"; + VramManagement2["HighVram"] = "highvram"; + VramManagement2["NormalVram"] = "normalvram"; + VramManagement2["LowVram"] = "lowvram"; + VramManagement2["NoVram"] = "novram"; + VramManagement2["CPU"] = "cpu"; + return VramManagement2; +})(VramManagement || {}); +const WEB_ONLY_CONFIG_ITEMS = [ + // Launch behavior + { + id: "auto-launch", + name: "Automatically opens in the browser on startup", + category: ["Launch"], + type: "combo", + options: Object.values(AutoLaunch), + defaultValue: AutoLaunch.Auto, + getValue: /* @__PURE__ */ __name((value) => { + switch (value) { + case AutoLaunch.Auto: + return {}; + case AutoLaunch.Enable: + return { + ["auto-launch"]: true + }; + case AutoLaunch.Disable: + return { + ["disable-auto-launch"]: true + }; + } + }, "getValue") + } +]; +const SERVER_CONFIG_ITEMS = [ + // Network settings + { + id: "listen", + name: "Host: The IP address to listen on", + category: ["Network"], + type: "text", + defaultValue: "127.0.0.1" + }, + { + id: "port", + name: "Port: The port to listen on", + category: ["Network"], + type: "number", + // The default launch port for desktop app is 8000 instead of 8188. + defaultValue: 8e3 + }, + { + id: "tls-keyfile", + name: "TLS Key File: Path to TLS key file for HTTPS", + category: ["Network"], + type: "text", + defaultValue: "" + }, + { + id: "tls-certfile", + name: "TLS Certificate File: Path to TLS certificate file for HTTPS", + category: ["Network"], + type: "text", + defaultValue: "" + }, + { + id: "enable-cors-header", + name: 'Enable CORS header: Use "*" for all origins or specify domain', + category: ["Network"], + type: "text", + defaultValue: "" + }, + { + id: "max-upload-size", + name: "Maximum upload size (MB)", + category: ["Network"], + type: "number", + defaultValue: 100 + }, + // CUDA settings + { + id: "cuda-device", + name: "CUDA device index to use", + category: ["CUDA"], + type: "number", + defaultValue: null + }, + { + id: "cuda-malloc", + name: "Use CUDA malloc for memory allocation", + category: ["CUDA"], + type: "combo", + options: Object.values(CudaMalloc), + defaultValue: CudaMalloc.Auto, + getValue: /* @__PURE__ */ __name((value) => { + switch (value) { + case CudaMalloc.Auto: + return {}; + case CudaMalloc.Enable: + return { + ["cuda-malloc"]: true + }; + case CudaMalloc.Disable: + return { + ["disable-cuda-malloc"]: true + }; + } + }, "getValue") + }, + // Precision settings + { + id: "global-precision", + name: "Global floating point precision", + category: ["Inference"], + type: "combo", + options: [ + FloatingPointPrecision.AUTO, + FloatingPointPrecision.FP32, + FloatingPointPrecision.FP16 + ], + defaultValue: FloatingPointPrecision.AUTO, + tooltip: "Global floating point precision", + getValue: /* @__PURE__ */ __name((value) => { + switch (value) { + case FloatingPointPrecision.AUTO: + return {}; + case FloatingPointPrecision.FP32: + return { + ["force-fp32"]: true + }; + case FloatingPointPrecision.FP16: + return { + ["force-fp16"]: true + }; + default: + return {}; + } + }, "getValue") + }, + // UNET precision + { + id: "unet-precision", + name: "UNET precision", + category: ["Inference"], + type: "combo", + options: [ + FloatingPointPrecision.AUTO, + FloatingPointPrecision.FP64, + FloatingPointPrecision.FP32, + FloatingPointPrecision.FP16, + FloatingPointPrecision.BF16, + FloatingPointPrecision.FP8E4M3FN, + FloatingPointPrecision.FP8E5M2 + ], + defaultValue: FloatingPointPrecision.AUTO, + tooltip: "UNET precision", + getValue: /* @__PURE__ */ __name((value) => { + switch (value) { + case FloatingPointPrecision.AUTO: + return {}; + default: + return { + [`${value.toLowerCase()}-unet`]: true + }; + } + }, "getValue") + }, + // VAE settings + { + id: "vae-precision", + name: "VAE precision", + category: ["Inference"], + type: "combo", + options: [ + FloatingPointPrecision.AUTO, + FloatingPointPrecision.FP16, + FloatingPointPrecision.FP32, + FloatingPointPrecision.BF16 + ], + defaultValue: FloatingPointPrecision.AUTO, + tooltip: "VAE precision", + getValue: /* @__PURE__ */ __name((value) => { + switch (value) { + case FloatingPointPrecision.AUTO: + return {}; + default: + return { + [`${value.toLowerCase()}-vae`]: true + }; + } + }, "getValue") + }, + { + id: "cpu-vae", + name: "Run VAE on CPU", + category: ["Inference"], + type: "boolean", + defaultValue: false + }, + // Text Encoder settings + { + id: "text-encoder-precision", + name: "Text Encoder precision", + category: ["Inference"], + type: "combo", + options: [ + FloatingPointPrecision.AUTO, + FloatingPointPrecision.FP8E4M3FN, + FloatingPointPrecision.FP8E5M2, + FloatingPointPrecision.FP16, + FloatingPointPrecision.FP32 + ], + defaultValue: FloatingPointPrecision.AUTO, + tooltip: "Text Encoder precision", + getValue: /* @__PURE__ */ __name((value) => { + switch (value) { + case FloatingPointPrecision.AUTO: + return {}; + default: + return { + [`${value.toLowerCase()}-text-enc`]: true + }; + } + }, "getValue") + }, + // Memory and performance settings + { + id: "force-channels-last", + name: "Force channels-last memory format", + category: ["Memory"], + type: "boolean", + defaultValue: false + }, + { + id: "directml", + name: "DirectML device index", + category: ["Memory"], + type: "number", + defaultValue: null + }, + { + id: "disable-ipex-optimize", + name: "Disable IPEX optimization", + category: ["Memory"], + type: "boolean", + defaultValue: false + }, + // Preview settings + { + id: "preview-method", + name: "Method used for latent previews", + category: ["Preview"], + type: "combo", + options: Object.values(LatentPreviewMethod), + defaultValue: LatentPreviewMethod.NoPreviews + }, + { + id: "preview-size", + name: "Size of preview images", + category: ["Preview"], + type: "slider", + defaultValue: 512, + attrs: { + min: 128, + max: 2048, + step: 128 + } + }, + // Cache settings + { + id: "cache-classic", + name: "Use classic cache system", + category: ["Cache"], + type: "boolean", + defaultValue: false + }, + { + id: "cache-lru", + name: "Use LRU caching with a maximum of N node results cached.", + category: ["Cache"], + type: "number", + defaultValue: null, + tooltip: "May use more RAM/VRAM." + }, + // Attention settings + { + id: "cross-attention-method", + name: "Cross attention method", + category: ["Attention"], + type: "combo", + options: Object.values(CrossAttentionMethod), + defaultValue: CrossAttentionMethod.Auto, + getValue: /* @__PURE__ */ __name((value) => { + switch (value) { + case CrossAttentionMethod.Auto: + return {}; + default: + return { + [`use-${value.toLowerCase()}-cross-attention`]: true + }; + } + }, "getValue") + }, + { + id: "disable-xformers", + name: "Disable xFormers optimization", + type: "boolean", + defaultValue: false + }, + { + id: "force-upcast-attention", + name: "Force attention upcast", + category: ["Attention"], + type: "boolean", + defaultValue: false + }, + { + id: "dont-upcast-attention", + name: "Prevent attention upcast", + category: ["Attention"], + type: "boolean", + defaultValue: false + }, + // VRAM management + { + id: "vram-management", + name: "VRAM management mode", + category: ["Memory"], + type: "combo", + options: Object.values(VramManagement), + defaultValue: VramManagement.Auto, + getValue: /* @__PURE__ */ __name((value) => { + switch (value) { + case VramManagement.Auto: + return {}; + default: + return { + [value]: true + }; + } + }, "getValue") + }, + { + id: "reserve-vram", + name: "Reserved VRAM (GB)", + category: ["Memory"], + type: "number", + defaultValue: null, + tooltip: "Set the amount of vram in GB you want to reserve for use by your OS/other software. By default some amount is reverved depending on your OS." + }, + // Misc settings + { + id: "default-hashing-function", + name: "Default hashing function for model files", + type: "combo", + options: Object.values(HashFunction), + defaultValue: HashFunction.SHA256 + }, + { + id: "disable-smart-memory", + name: "Disable smart memory management", + tooltip: "Force ComfyUI to aggressively offload to regular ram instead of keeping models in vram when it can.", + category: ["Memory"], + type: "boolean", + defaultValue: false + }, + { + id: "deterministic", + name: "Make pytorch use slower deterministic algorithms when it can.", + type: "boolean", + defaultValue: false, + tooltip: "Note that this might not make images deterministic in all cases." + }, + { + id: "fast", + name: "Enable some untested and potentially quality deteriorating optimizations.", + type: "boolean", + defaultValue: false + }, + { + id: "dont-print-server", + name: "Don't print server output to console.", + type: "boolean", + defaultValue: false + }, + { + id: "disable-metadata", + name: "Disable saving prompt metadata in files.", + type: "boolean", + defaultValue: false + }, + { + id: "disable-all-custom-nodes", + name: "Disable loading all custom nodes.", + type: "boolean", + defaultValue: false + }, + { + id: "log-level", + name: "Logging verbosity level", + type: "combo", + options: Object.values(LogLevel), + defaultValue: LogLevel.INFO, + getValue: /* @__PURE__ */ __name((value) => { + return { + verbose: value + }; + }, "getValue") + }, + // Directories + { + id: "input-directory", + name: "Input directory", + category: ["Directories"], + type: "text", + defaultValue: "" + }, + { + id: "output-directory", + name: "Output directory", + category: ["Directories"], + type: "text", + defaultValue: "" + } +]; +function useCoreCommands() { + const workflowService = useWorkflowService(); + const workflowStore = useWorkflowStore(); + const dialogService = useDialogService(); + const getTracker = /* @__PURE__ */ __name(() => workflowStore.activeWorkflow?.changeTracker, "getTracker"); + const getSelectedNodes = /* @__PURE__ */ __name(() => { + const selectedNodes = app.canvas.selected_nodes; + const result = []; + if (selectedNodes) { + for (const i in selectedNodes) { + const node = selectedNodes[i]; + result.push(node); + } + } + return result; + }, "getSelectedNodes"); + const toggleSelectedNodesMode = /* @__PURE__ */ __name((mode) => { + getSelectedNodes().forEach((node) => { + if (node.mode === mode) { + node.mode = LGraphEventMode.ALWAYS; + } else { + node.mode = mode; + } + }); + }, "toggleSelectedNodesMode"); + return [ + { + id: "Comfy.NewBlankWorkflow", + icon: "pi pi-plus", + label: "New Blank Workflow", + menubarLabel: "New", + function: /* @__PURE__ */ __name(() => workflowService.loadBlankWorkflow(), "function") + }, + { + id: "Comfy.OpenWorkflow", + icon: "pi pi-folder-open", + label: "Open Workflow", + menubarLabel: "Open", + function: /* @__PURE__ */ __name(() => { + app.ui.loadFile(); + }, "function") + }, + { + id: "Comfy.LoadDefaultWorkflow", + icon: "pi pi-code", + label: "Load Default Workflow", + function: /* @__PURE__ */ __name(() => workflowService.loadDefaultWorkflow(), "function") + }, + { + id: "Comfy.SaveWorkflow", + icon: "pi pi-save", + label: "Save Workflow", + menubarLabel: "Save", + function: /* @__PURE__ */ __name(async () => { + const workflow = useWorkflowStore().activeWorkflow; + if (!workflow) return; + await workflowService.saveWorkflow(workflow); + }, "function") + }, + { + id: "Comfy.SaveWorkflowAs", + icon: "pi pi-save", + label: "Save Workflow As", + menubarLabel: "Save As", + function: /* @__PURE__ */ __name(async () => { + const workflow = useWorkflowStore().activeWorkflow; + if (!workflow) return; + await workflowService.saveWorkflowAs(workflow); + }, "function") + }, + { + id: "Comfy.ExportWorkflow", + icon: "pi pi-download", + label: "Export Workflow", + menubarLabel: "Export", + function: /* @__PURE__ */ __name(() => { + workflowService.exportWorkflow("workflow", "workflow"); + }, "function") + }, + { + id: "Comfy.ExportWorkflowAPI", + icon: "pi pi-download", + label: "Export Workflow (API Format)", + menubarLabel: "Export (API)", + function: /* @__PURE__ */ __name(() => { + workflowService.exportWorkflow("workflow_api", "output"); + }, "function") + }, + { + id: "Comfy.Undo", + icon: "pi pi-undo", + label: "Undo", + function: /* @__PURE__ */ __name(async () => { + await getTracker()?.undo?.(); + }, "function") + }, + { + id: "Comfy.Redo", + icon: "pi pi-refresh", + label: "Redo", + function: /* @__PURE__ */ __name(async () => { + await getTracker()?.redo?.(); + }, "function") + }, + { + id: "Comfy.ClearWorkflow", + icon: "pi pi-trash", + label: "Clear Workflow", + function: /* @__PURE__ */ __name(() => { + const settingStore = useSettingStore(); + if (!settingStore.get("Comfy.ComfirmClear") || confirm("Clear workflow?")) { + app.clean(); + app.graph.clear(); + api.dispatchCustomEvent("graphCleared"); + } + }, "function") + }, + { + id: "Comfy.Canvas.ResetView", + icon: "pi pi-expand", + label: "Reset View", + function: /* @__PURE__ */ __name(() => { + app.resetView(); + }, "function") + }, + { + id: "Comfy.OpenClipspace", + icon: "pi pi-clipboard", + label: "Clipspace", + function: /* @__PURE__ */ __name(() => { + app.openClipspace(); + }, "function") + }, + { + id: "Comfy.RefreshNodeDefinitions", + icon: "pi pi-refresh", + label: "Refresh Node Definitions", + function: /* @__PURE__ */ __name(async () => { + await app.refreshComboInNodes(); + }, "function") + }, + { + id: "Comfy.Interrupt", + icon: "pi pi-stop", + label: "Interrupt", + function: /* @__PURE__ */ __name(async () => { + await api.interrupt(); + useToastStore().add({ + severity: "info", + summary: "Interrupted", + detail: "Execution has been interrupted", + life: 1e3 + }); + }, "function") + }, + { + id: "Comfy.ClearPendingTasks", + icon: "pi pi-stop", + label: "Clear Pending Tasks", + function: /* @__PURE__ */ __name(async () => { + await useQueueStore().clear(["queue"]); + useToastStore().add({ + severity: "info", + summary: "Confirmed", + detail: "Pending tasks deleted", + life: 3e3 + }); + }, "function") + }, + { + id: "Comfy.BrowseTemplates", + icon: "pi pi-folder-open", + label: "Browse Templates", + function: /* @__PURE__ */ __name(() => { + dialogService.showTemplateWorkflowsDialog(); + }, "function") + }, + { + id: "Comfy.Canvas.ZoomIn", + icon: "pi pi-plus", + label: "Zoom In", + function: /* @__PURE__ */ __name(() => { + const ds = app.canvas.ds; + ds.changeScale( + ds.scale * 1.1, + ds.element ? [ds.element.width / 2, ds.element.height / 2] : void 0 + ); + app.canvas.setDirty(true, true); + }, "function") + }, + { + id: "Comfy.Canvas.ZoomOut", + icon: "pi pi-minus", + label: "Zoom Out", + function: /* @__PURE__ */ __name(() => { + const ds = app.canvas.ds; + ds.changeScale( + ds.scale / 1.1, + ds.element ? [ds.element.width / 2, ds.element.height / 2] : void 0 + ); + app.canvas.setDirty(true, true); + }, "function") + }, + { + id: "Comfy.Canvas.FitView", + icon: "pi pi-expand", + label: "Fit view to selected nodes", + function: /* @__PURE__ */ __name(() => { + if (app.canvas.empty) { + useToastStore().add({ + severity: "error", + summary: "Empty canvas", + life: 3e3 + }); + return; + } + app.canvas.fitViewToSelectionAnimated(); + }, "function") + }, + { + id: "Comfy.Canvas.ToggleLock", + icon: "pi pi-lock", + label: "Canvas Toggle Lock", + function: /* @__PURE__ */ __name(() => { + app.canvas["read_only"] = !app.canvas["read_only"]; + }, "function") + }, + { + id: "Comfy.Canvas.ToggleLinkVisibility", + icon: "pi pi-eye", + label: "Canvas Toggle Link Visibility", + versionAdded: "1.3.6", + function: (() => { + const settingStore = useSettingStore(); + let lastLinksRenderMode = LiteGraph.SPLINE_LINK; + return () => { + const currentMode = settingStore.get("Comfy.LinkRenderMode"); + if (currentMode === LiteGraph.HIDDEN_LINK) { + settingStore.set("Comfy.LinkRenderMode", lastLinksRenderMode); + } else { + lastLinksRenderMode = currentMode; + settingStore.set("Comfy.LinkRenderMode", LiteGraph.HIDDEN_LINK); + } + }; + })() + }, + { + id: "Comfy.QueuePrompt", + icon: "pi pi-play", + label: "Queue Prompt", + versionAdded: "1.3.7", + function: /* @__PURE__ */ __name(() => { + const batchCount = useQueueSettingsStore().batchCount; + app.queuePrompt(0, batchCount); + }, "function") + }, + { + id: "Comfy.QueuePromptFront", + icon: "pi pi-play", + label: "Queue Prompt (Front)", + versionAdded: "1.3.7", + function: /* @__PURE__ */ __name(() => { + const batchCount = useQueueSettingsStore().batchCount; + app.queuePrompt(-1, batchCount); + }, "function") + }, + { + id: "Comfy.ShowSettingsDialog", + icon: "pi pi-cog", + label: "Show Settings Dialog", + versionAdded: "1.3.7", + function: /* @__PURE__ */ __name(() => { + dialogService.showSettingsDialog(); + }, "function") + }, + { + id: "Comfy.Graph.GroupSelectedNodes", + icon: "pi pi-sitemap", + label: "Group Selected Nodes", + versionAdded: "1.3.7", + function: /* @__PURE__ */ __name(() => { + const { canvas } = app; + if (!canvas.selectedItems?.size) { + useToastStore().add({ + severity: "error", + summary: "Nothing to group", + detail: "Please select the nodes (or other groups) to create a group for", + life: 3e3 + }); + return; + } + const group = new LGraphGroup(); + const padding = useSettingStore().get( + "Comfy.GroupSelectedNodes.Padding" + ); + group.resizeTo(canvas.selectedItems, padding); + canvas.graph.add(group); + useTitleEditorStore().titleEditorTarget = group; + }, "function") + }, + { + id: "Workspace.NextOpenedWorkflow", + icon: "pi pi-step-forward", + label: "Next Opened Workflow", + versionAdded: "1.3.9", + function: /* @__PURE__ */ __name(() => { + workflowService.loadNextOpenedWorkflow(); + }, "function") + }, + { + id: "Workspace.PreviousOpenedWorkflow", + icon: "pi pi-step-backward", + label: "Previous Opened Workflow", + versionAdded: "1.3.9", + function: /* @__PURE__ */ __name(() => { + workflowService.loadPreviousOpenedWorkflow(); + }, "function") + }, + { + id: "Comfy.Canvas.ToggleSelectedNodes.Mute", + icon: "pi pi-volume-off", + label: "Mute/Unmute Selected Nodes", + versionAdded: "1.3.11", + function: /* @__PURE__ */ __name(() => { + toggleSelectedNodesMode(LGraphEventMode.NEVER); + }, "function") + }, + { + id: "Comfy.Canvas.ToggleSelectedNodes.Bypass", + icon: "pi pi-shield", + label: "Bypass/Unbypass Selected Nodes", + versionAdded: "1.3.11", + function: /* @__PURE__ */ __name(() => { + toggleSelectedNodesMode(LGraphEventMode.BYPASS); + }, "function") + }, + { + id: "Comfy.Canvas.ToggleSelectedNodes.Pin", + icon: "pi pi-pin", + label: "Pin/Unpin Selected Nodes", + versionAdded: "1.3.11", + function: /* @__PURE__ */ __name(() => { + getSelectedNodes().forEach((node) => { + node.pin(!node.pinned); + }); + }, "function") + }, + { + id: "Comfy.Canvas.ToggleSelected.Pin", + icon: "pi pi-pin", + label: "Pin/Unpin Selected Items", + versionAdded: "1.3.33", + function: /* @__PURE__ */ __name(() => { + for (const item3 of app.canvas.selectedItems) { + if (item3 instanceof LGraphNode || item3 instanceof LGraphGroup) { + item3.pin(!item3.pinned); + } + } + }, "function") + }, + { + id: "Comfy.Canvas.ToggleSelectedNodes.Collapse", + icon: "pi pi-minus", + label: "Collapse/Expand Selected Nodes", + versionAdded: "1.3.11", + function: /* @__PURE__ */ __name(() => { + getSelectedNodes().forEach((node) => { + node.collapse(); + }); + }, "function") + }, + { + id: "Comfy.ToggleTheme", + icon: "pi pi-moon", + label: "Toggle Theme (Dark/Light)", + versionAdded: "1.3.12", + function: /* @__PURE__ */ (() => { + let previousDarkTheme = "dark"; + const isDarkMode = /* @__PURE__ */ __name((themeId) => themeId !== "light", "isDarkMode"); + return () => { + const settingStore = useSettingStore(); + const currentTheme = settingStore.get("Comfy.ColorPalette"); + if (isDarkMode(currentTheme)) { + previousDarkTheme = currentTheme; + settingStore.set("Comfy.ColorPalette", "light"); + } else { + settingStore.set("Comfy.ColorPalette", previousDarkTheme); + } + }; + })() + }, + { + id: "Workspace.ToggleBottomPanel", + icon: "pi pi-list", + label: "Toggle Bottom Panel", + versionAdded: "1.3.22", + function: /* @__PURE__ */ __name(() => { + useBottomPanelStore().toggleBottomPanel(); + }, "function") + }, + { + id: "Workspace.ToggleFocusMode", + icon: "pi pi-eye", + label: "Toggle Focus Mode", + versionAdded: "1.3.27", + function: /* @__PURE__ */ __name(() => { + useWorkspaceStore().toggleFocusMode(); + }, "function") + }, + { + id: "Comfy.Graph.FitGroupToContents", + icon: "pi pi-expand", + label: "Fit Group To Contents", + versionAdded: "1.4.9", + function: /* @__PURE__ */ __name(() => { + for (const group of app.canvas.selectedItems) { + if (group instanceof LGraphGroup) { + group.recomputeInsideNodes(); + const padding = useSettingStore().get( + "Comfy.GroupSelectedNodes.Padding" + ); + group.resizeTo(group.children, padding); + app.graph.change(); + } + } + }, "function") + }, + { + id: "Comfy.Help.OpenComfyUIIssues", + icon: "pi pi-github", + label: "Open ComfyUI Issues", + menubarLabel: "ComfyUI Issues", + versionAdded: "1.5.5", + function: /* @__PURE__ */ __name(() => { + window.open( + "https://github.com/comfyanonymous/ComfyUI/issues", + "_blank" + ); + }, "function") + }, + { + id: "Comfy.Help.OpenComfyUIDocs", + icon: "pi pi-info-circle", + label: "Open ComfyUI Docs", + menubarLabel: "ComfyUI Docs", + versionAdded: "1.5.5", + function: /* @__PURE__ */ __name(() => { + window.open("https://docs.comfy.org/", "_blank"); + }, "function") + }, + { + id: "Comfy.Help.OpenComfyOrgDiscord", + icon: "pi pi-discord", + label: "Open Comfy-Org Discord", + menubarLabel: "Comfy-Org Discord", + versionAdded: "1.5.5", + function: /* @__PURE__ */ __name(() => { + window.open("https://www.comfy.org/discord", "_blank"); + }, "function") + }, + { + id: "Workspace.SearchBox.Toggle", + icon: "pi pi-search", + label: "Toggle Search Box", + versionAdded: "1.5.7", + function: /* @__PURE__ */ __name(() => { + useSearchBoxStore().toggleVisible(); + }, "function") + }, + { + id: "Comfy.Help.AboutComfyUI", + icon: "pi pi-info-circle", + label: "Open About ComfyUI", + menubarLabel: "About ComfyUI", + versionAdded: "1.6.4", + function: /* @__PURE__ */ __name(() => { + dialogService.showSettingsDialog("about"); + }, "function") + }, + { + id: "Comfy.DuplicateWorkflow", + icon: "pi pi-clone", + label: "Duplicate Current Workflow", + versionAdded: "1.6.15", + function: /* @__PURE__ */ __name(() => { + workflowService.duplicateWorkflow(workflowStore.activeWorkflow); + }, "function") + } + ]; +} +__name(useCoreCommands, "useCoreCommands"); function setupAutoQueueHandler() { const queueCountStore = useQueuePendingTaskCountStore(); const queueSettingsStore = useQueueSettingsStore(); @@ -7242,9 +9766,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ const toast = useToast(); const settingStore = useSettingStore(); const executionStore = useExecutionStore(); - const theme11 = computed(() => settingStore.get("Comfy.ColorPalette")); + const theme10 = computed(() => settingStore.get("Comfy.ColorPalette")); watch( - theme11, + theme10, (newTheme) => { const DARK_THEME_CLASS = "dark-theme"; const isDarkTheme = newTheme !== "light"; @@ -7279,16 +9803,24 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ watchEffect(() => { const useNewMenu = settingStore.get("Comfy.UseNewMenu"); if (useNewMenu === "Disabled") { - app.ui.menuContainer.style.removeProperty("display"); + app.ui.menuContainer.style.setProperty("display", "block"); app.ui.restoreMenuPosition(); } else { app.ui.menuContainer.style.setProperty("display", "none"); } }); + watchEffect(() => { + useQueueStore().maxHistoryItems = settingStore.get( + "Comfy.Queue.MaxHistoryItems" + ); + }); const init = /* @__PURE__ */ __name(() => { - settingStore.addSettings(app.ui.settings); - useKeybindingStore().loadCoreKeybindings(); + const coreCommands = useCoreCommands(); + useCommandStore().registerCommands(coreCommands); + useMenuItemStore().registerCoreMenuCommands(); + useKeybindingService().registerCoreKeybindings(); useSidebarTabStore().registerCoreSidebarTabs(); + useBottomPanelStore().registerCoreBottomPanelTabs(); app.extensionManager = useWorkspaceStore(); }, "init"); const queuePendingTaskCountStore = useQueuePendingTaskCountStore(); @@ -7297,7 +9829,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ }, "onStatus"); const reconnectingMessage = { severity: "error", - summary: t("reconnecting") + summary: t("g.reconnecting") }; const onReconnecting = /* @__PURE__ */ __name(() => { toast.remove(reconnectingMessage); @@ -7307,15 +9839,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ toast.remove(reconnectingMessage); toast.add({ severity: "success", - summary: t("reconnected"), + summary: t("g.reconnected"), life: 2e3 }); }, "onReconnected"); - const workflowStore = useWorkflowStore(); - const workflowBookmarkStore = useWorkflowBookmarkStore(); - app.workflowManager.executionStore = executionStore; - app.workflowManager.workflowStore = workflowStore; - app.workflowManager.workflowBookmarkStore = workflowBookmarkStore; onMounted(() => { api.addEventListener("status", onStatus); api.addEventListener("reconnecting", onReconnecting); @@ -7333,11 +9860,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ api.removeEventListener("reconnected", onReconnected); executionStore.unbindExecutionEvents(); }); + useEventListener(window, "keydown", useKeybindingService().keybindHandler); const onGraphReady = /* @__PURE__ */ __name(() => { requestIdleCallback( () => { - useKeybindingStore().loadUserKeybindings(); - useNodeBookmarkStore().migrateLegacyBookmarks(); + useKeybindingService().registerUserKeybindings(); + useServerConfigStore().loadServerConfig( + SERVER_CONFIG_ITEMS, + settingStore.get("Comfy.Server.ServerConfigValues") + ); + useModelStore().loadModelFolders(); useNodeDefStore().nodeSearchService.endsWithFilterStartSequence(""); useNodeFrequencyStore().loadNodeFrequencies(); }, @@ -7349,8 +9881,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ createVNode(TopMenubar), createVNode(_sfc_main$a, { onReady: onGraphReady }), createVNode(_sfc_main$9), - createVNode(_sfc_main$8), - createVNode(_sfc_main$7) + createVNode(_sfc_main$r), + createVNode(_sfc_main$t), + createVNode(MenuHamburger) ], 64); }; } @@ -7358,4 +9891,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ export { _sfc_main as default }; -//# sourceMappingURL=GraphView-DmeOoKWv.js.map +//# sourceMappingURL=GraphView-DswvqURL.js.map diff --git a/web/assets/InstallView-AV2llYNm.js b/web/assets/InstallView-AV2llYNm.js new file mode 100644 index 00000000..0b455d93 --- /dev/null +++ b/web/assets/InstallView-AV2llYNm.js @@ -0,0 +1,1288 @@ +var __defProp = Object.defineProperty; +var __name = (target, value2) => __defProp(target, "name", { value: value2, configurable: true }); +import { B as BaseStyle, q as script$6, o as openBlock, f as createElementBlock, D as mergeProps, c1 as findIndexInList, c2 as find, aB as resolveComponent, k as createBlock, G as resolveDynamicComponent, M as withCtx, H as createBaseVNode, X as toDisplayString, J as renderSlot, I as createCommentVNode, T as normalizeClass, P as findSingle, F as Fragment, aC as Transition, i as withDirectives, v as vShow, ak as UniqueComponentId, d as defineComponent, ab as ref, c3 as useModel, N as createVNode, j as unref, c4 as script$7, bQ as script$8, bM as withModifiers, aP as script$9, a1 as useI18n, c as computed, aI as script$a, aE as createTextVNode, c0 as electronAPI, m as onMounted, r as resolveDirective, av as script$b, c5 as script$c, c6 as script$d, l as script$e, bZ as script$f, c7 as MigrationItems, w as watchEffect, E as renderList, c8 as script$g, bW as useRouter, aL as pushScopeId, aM as popScopeId, aU as toRaw, _ as _export_sfc } from "./index-C4Fk50Nx.js"; +import { _ as _sfc_main$5 } from "./BaseViewTemplate-CsEJhGbv.js"; +var classes$4 = { + root: /* @__PURE__ */ __name(function root(_ref) { + var instance = _ref.instance; + return ["p-step", { + "p-step-active": instance.active, + "p-disabled": instance.isStepDisabled + }]; + }, "root"), + header: "p-step-header", + number: "p-step-number", + title: "p-step-title" +}; +var StepStyle = BaseStyle.extend({ + name: "step", + classes: classes$4 +}); +var script$2$2 = { + name: "StepperSeparator", + hostName: "Stepper", + "extends": script$6 +}; +function render$1$2(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("span", mergeProps({ + "class": _ctx.cx("separator") + }, _ctx.ptm("separator")), null, 16); +} +__name(render$1$2, "render$1$2"); +script$2$2.render = render$1$2; +var script$1$4 = { + name: "BaseStep", + "extends": script$6, + props: { + value: { + type: [String, Number], + "default": void 0 + }, + disabled: { + type: Boolean, + "default": false + }, + asChild: { + type: Boolean, + "default": false + }, + as: { + type: [String, Object], + "default": "DIV" + } + }, + style: StepStyle, + provide: /* @__PURE__ */ __name(function provide() { + return { + $pcStep: this, + $parentInstance: this + }; + }, "provide") +}; +var script$5 = { + name: "Step", + "extends": script$1$4, + inheritAttrs: false, + inject: { + $pcStepper: { + "default": null + }, + $pcStepList: { + "default": null + }, + $pcStepItem: { + "default": null + } + }, + data: /* @__PURE__ */ __name(function data() { + return { + isSeparatorVisible: false + }; + }, "data"), + mounted: /* @__PURE__ */ __name(function mounted() { + if (this.$el && this.$pcStepList) { + var index = findIndexInList(this.$el, find(this.$pcStepper.$el, '[data-pc-name="step"]')); + var stepLen = find(this.$pcStepper.$el, '[data-pc-name="step"]').length; + this.isSeparatorVisible = index !== stepLen - 1; + } + }, "mounted"), + methods: { + getPTOptions: /* @__PURE__ */ __name(function getPTOptions(key) { + var _ptm = key === "root" ? this.ptmi : this.ptm; + return _ptm(key, { + context: { + active: this.active, + disabled: this.isStepDisabled + } + }); + }, "getPTOptions"), + onStepClick: /* @__PURE__ */ __name(function onStepClick() { + this.$pcStepper.updateValue(this.activeValue); + }, "onStepClick") + }, + computed: { + active: /* @__PURE__ */ __name(function active() { + return this.$pcStepper.isStepActive(this.activeValue); + }, "active"), + activeValue: /* @__PURE__ */ __name(function activeValue() { + var _this$$pcStepItem; + return !!this.$pcStepItem ? (_this$$pcStepItem = this.$pcStepItem) === null || _this$$pcStepItem === void 0 ? void 0 : _this$$pcStepItem.value : this.value; + }, "activeValue"), + isStepDisabled: /* @__PURE__ */ __name(function isStepDisabled() { + return !this.active && (this.$pcStepper.isStepDisabled() || this.disabled); + }, "isStepDisabled"), + id: /* @__PURE__ */ __name(function id() { + var _this$$pcStepper; + return "".concat((_this$$pcStepper = this.$pcStepper) === null || _this$$pcStepper === void 0 ? void 0 : _this$$pcStepper.id, "_step_").concat(this.activeValue); + }, "id"), + ariaControls: /* @__PURE__ */ __name(function ariaControls() { + var _this$$pcStepper2; + return "".concat((_this$$pcStepper2 = this.$pcStepper) === null || _this$$pcStepper2 === void 0 ? void 0 : _this$$pcStepper2.id, "_steppanel_").concat(this.activeValue); + }, "ariaControls"), + a11yAttrs: /* @__PURE__ */ __name(function a11yAttrs() { + return { + root: { + role: "presentation", + "aria-current": this.active ? "step" : void 0, + "data-pc-name": "step", + "data-pc-section": "root", + "data-p-disabled": this.disabled, + "data-p-active": this.active + }, + header: { + id: this.id, + role: "tab", + taindex: this.disabled ? -1 : void 0, + "aria-controls": this.ariaControls, + "data-pc-section": "header", + disabled: this.disabled, + onClick: this.onStepClick + } + }; + }, "a11yAttrs") + }, + components: { + StepperSeparator: script$2$2 + } +}; +var _hoisted_1$5 = ["id", "tabindex", "aria-controls", "disabled"]; +function render$4(_ctx, _cache, $props, $setup, $data, $options) { + var _component_StepperSeparator = resolveComponent("StepperSeparator"); + return !_ctx.asChild ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({ + key: 0, + "class": _ctx.cx("root"), + "aria-current": $options.active ? "step" : void 0, + role: "presentation", + "data-p-active": $options.active, + "data-p-disabled": $options.isStepDisabled + }, $options.getPTOptions("root")), { + "default": withCtx(function() { + return [createBaseVNode("button", mergeProps({ + id: $options.id, + "class": _ctx.cx("header"), + role: "tab", + type: "button", + tabindex: $options.isStepDisabled ? -1 : void 0, + "aria-controls": $options.ariaControls, + disabled: $options.isStepDisabled, + onClick: _cache[0] || (_cache[0] = function() { + return $options.onStepClick && $options.onStepClick.apply($options, arguments); + }) + }, $options.getPTOptions("header")), [createBaseVNode("span", mergeProps({ + "class": _ctx.cx("number") + }, $options.getPTOptions("number")), toDisplayString($options.activeValue), 17), createBaseVNode("span", mergeProps({ + "class": _ctx.cx("title") + }, $options.getPTOptions("title")), [renderSlot(_ctx.$slots, "default")], 16)], 16, _hoisted_1$5), $data.isSeparatorVisible ? (openBlock(), createBlock(_component_StepperSeparator, { + key: 0 + })) : createCommentVNode("", true)]; + }), + _: 3 + }, 16, ["class", "aria-current", "data-p-active", "data-p-disabled"])) : renderSlot(_ctx.$slots, "default", { + key: 1, + "class": normalizeClass(_ctx.cx("root")), + active: $options.active, + value: _ctx.value, + a11yAttrs: $options.a11yAttrs, + activateCallback: $options.onStepClick + }); +} +__name(render$4, "render$4"); +script$5.render = render$4; +var classes$3 = { + root: "p-steplist" +}; +var StepListStyle = BaseStyle.extend({ + name: "steplist", + classes: classes$3 +}); +var script$1$3 = { + name: "BaseStepList", + "extends": script$6, + style: StepListStyle, + provide: /* @__PURE__ */ __name(function provide2() { + return { + $pcStepList: this, + $parentInstance: this + }; + }, "provide") +}; +var script$4 = { + name: "StepList", + "extends": script$1$3, + inheritAttrs: false +}; +function render$3(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", mergeProps({ + "class": _ctx.cx("root") + }, _ctx.ptmi("root")), [renderSlot(_ctx.$slots, "default")], 16); +} +__name(render$3, "render$3"); +script$4.render = render$3; +var classes$2 = { + root: /* @__PURE__ */ __name(function root2(_ref) { + var instance = _ref.instance; + return ["p-steppanel", { + "p-steppanel-active": instance.isVertical && instance.active + }]; + }, "root"), + content: "p-steppanel-content" +}; +var StepPanelStyle = BaseStyle.extend({ + name: "steppanel", + classes: classes$2 +}); +var script$2$1 = { + name: "StepperSeparator", + hostName: "Stepper", + "extends": script$6 +}; +function render$1$1(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("span", mergeProps({ + "class": _ctx.cx("separator") + }, _ctx.ptm("separator")), null, 16); +} +__name(render$1$1, "render$1$1"); +script$2$1.render = render$1$1; +var script$1$2 = { + name: "BaseStepPanel", + "extends": script$6, + props: { + value: { + type: [String, Number], + "default": void 0 + }, + asChild: { + type: Boolean, + "default": false + }, + as: { + type: [String, Object], + "default": "DIV" + } + }, + style: StepPanelStyle, + provide: /* @__PURE__ */ __name(function provide3() { + return { + $pcStepPanel: this, + $parentInstance: this + }; + }, "provide") +}; +var script$3 = { + name: "StepPanel", + "extends": script$1$2, + inheritAttrs: false, + inject: { + $pcStepper: { + "default": null + }, + $pcStepItem: { + "default": null + }, + $pcStepList: { + "default": null + } + }, + data: /* @__PURE__ */ __name(function data2() { + return { + isSeparatorVisible: false + }; + }, "data"), + mounted: /* @__PURE__ */ __name(function mounted2() { + if (this.$el) { + var _this$$pcStepItem, _this$$pcStepList; + var stepElements = find(this.$pcStepper.$el, '[data-pc-name="step"]'); + var stepPanelEl = findSingle(this.isVertical ? (_this$$pcStepItem = this.$pcStepItem) === null || _this$$pcStepItem === void 0 ? void 0 : _this$$pcStepItem.$el : (_this$$pcStepList = this.$pcStepList) === null || _this$$pcStepList === void 0 ? void 0 : _this$$pcStepList.$el, '[data-pc-name="step"]'); + var stepPanelIndex = findIndexInList(stepPanelEl, stepElements); + this.isSeparatorVisible = this.isVertical && stepPanelIndex !== stepElements.length - 1; + } + }, "mounted"), + methods: { + getPTOptions: /* @__PURE__ */ __name(function getPTOptions2(key) { + var _ptm = key === "root" ? this.ptmi : this.ptm; + return _ptm(key, { + context: { + active: this.active + } + }); + }, "getPTOptions"), + updateValue: /* @__PURE__ */ __name(function updateValue(val) { + this.$pcStepper.updateValue(val); + }, "updateValue") + }, + computed: { + active: /* @__PURE__ */ __name(function active2() { + var _this$$pcStepItem2, _this$$pcStepper; + var activeValue3 = !!this.$pcStepItem ? (_this$$pcStepItem2 = this.$pcStepItem) === null || _this$$pcStepItem2 === void 0 ? void 0 : _this$$pcStepItem2.value : this.value; + return activeValue3 === ((_this$$pcStepper = this.$pcStepper) === null || _this$$pcStepper === void 0 ? void 0 : _this$$pcStepper.d_value); + }, "active"), + isVertical: /* @__PURE__ */ __name(function isVertical() { + return !!this.$pcStepItem; + }, "isVertical"), + activeValue: /* @__PURE__ */ __name(function activeValue2() { + var _this$$pcStepItem3; + return this.isVertical ? (_this$$pcStepItem3 = this.$pcStepItem) === null || _this$$pcStepItem3 === void 0 ? void 0 : _this$$pcStepItem3.value : this.value; + }, "activeValue"), + id: /* @__PURE__ */ __name(function id2() { + var _this$$pcStepper2; + return "".concat((_this$$pcStepper2 = this.$pcStepper) === null || _this$$pcStepper2 === void 0 ? void 0 : _this$$pcStepper2.id, "_steppanel_").concat(this.activeValue); + }, "id"), + ariaControls: /* @__PURE__ */ __name(function ariaControls2() { + var _this$$pcStepper3; + return "".concat((_this$$pcStepper3 = this.$pcStepper) === null || _this$$pcStepper3 === void 0 ? void 0 : _this$$pcStepper3.id, "_step_").concat(this.activeValue); + }, "ariaControls"), + a11yAttrs: /* @__PURE__ */ __name(function a11yAttrs2() { + return { + id: this.id, + role: "tabpanel", + "aria-controls": this.ariaControls, + "data-pc-name": "steppanel", + "data-p-active": this.active + }; + }, "a11yAttrs") + }, + components: { + StepperSeparator: script$2$1 + } +}; +function render$2(_ctx, _cache, $props, $setup, $data, $options) { + var _component_StepperSeparator = resolveComponent("StepperSeparator"); + return $options.isVertical ? (openBlock(), createElementBlock(Fragment, { + key: 0 + }, [!_ctx.asChild ? (openBlock(), createBlock(Transition, mergeProps({ + key: 0, + name: "p-toggleable-content" + }, _ctx.ptm("transition")), { + "default": withCtx(function() { + return [withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({ + id: $options.id, + "class": _ctx.cx("root"), + role: "tabpanel", + "aria-controls": $options.ariaControls + }, $options.getPTOptions("root")), { + "default": withCtx(function() { + return [$data.isSeparatorVisible ? (openBlock(), createBlock(_component_StepperSeparator, { + key: 0 + })) : createCommentVNode("", true), createBaseVNode("div", mergeProps({ + "class": _ctx.cx("content") + }, $options.getPTOptions("content")), [renderSlot(_ctx.$slots, "default", { + active: $options.active, + activateCallback: /* @__PURE__ */ __name(function activateCallback(val) { + return $options.updateValue(val); + }, "activateCallback") + })], 16)]; + }), + _: 3 + }, 16, ["id", "class", "aria-controls"])), [[vShow, $options.active]])]; + }), + _: 3 + }, 16)) : renderSlot(_ctx.$slots, "default", { + key: 1, + active: $options.active, + a11yAttrs: $options.a11yAttrs, + activateCallback: /* @__PURE__ */ __name(function activateCallback(val) { + return $options.updateValue(val); + }, "activateCallback") + })], 64)) : (openBlock(), createElementBlock(Fragment, { + key: 1 + }, [!_ctx.asChild ? withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({ + key: 0, + id: $options.id, + "class": _ctx.cx("root"), + role: "tabpanel", + "aria-controls": $options.ariaControls + }, $options.getPTOptions("root")), { + "default": withCtx(function() { + return [renderSlot(_ctx.$slots, "default", { + active: $options.active, + activateCallback: /* @__PURE__ */ __name(function activateCallback(val) { + return $options.updateValue(val); + }, "activateCallback") + })]; + }), + _: 3 + }, 16, ["id", "class", "aria-controls"])), [[vShow, $options.active]]) : _ctx.asChild && $options.active ? renderSlot(_ctx.$slots, "default", { + key: 1, + active: $options.active, + a11yAttrs: $options.a11yAttrs, + activateCallback: /* @__PURE__ */ __name(function activateCallback(val) { + return $options.updateValue(val); + }, "activateCallback") + }) : createCommentVNode("", true)], 64)); +} +__name(render$2, "render$2"); +script$3.render = render$2; +var classes$1 = { + root: "p-steppanels" +}; +var StepPanelsStyle = BaseStyle.extend({ + name: "steppanels", + classes: classes$1 +}); +var script$1$1 = { + name: "BaseStepPanels", + "extends": script$6, + style: StepPanelsStyle, + provide: /* @__PURE__ */ __name(function provide4() { + return { + $pcStepPanels: this, + $parentInstance: this + }; + }, "provide") +}; +var script$2 = { + name: "StepPanels", + "extends": script$1$1, + inheritAttrs: false +}; +function render$1(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", mergeProps({ + "class": _ctx.cx("root") + }, _ctx.ptmi("root")), [renderSlot(_ctx.$slots, "default")], 16); +} +__name(render$1, "render$1"); +script$2.render = render$1; +var theme = /* @__PURE__ */ __name(function theme2(_ref) { + var dt = _ref.dt; + return "\n.p-steplist {\n position: relative;\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: 0;\n padding: 0;\n list-style-type: none;\n overflow-x: auto;\n}\n\n.p-step {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n gap: ".concat(dt("stepper.step.gap"), ";\n padding: ").concat(dt("stepper.step.padding"), ";\n}\n\n.p-step:last-of-type {\n flex: initial;\n}\n\n.p-step-header {\n border: 0 none;\n display: inline-flex;\n align-items: center;\n text-decoration: none;\n cursor: pointer;\n transition: background ").concat(dt("stepper.transition.duration"), ", color ").concat(dt("stepper.transition.duration"), ", border-color ").concat(dt("stepper.transition.duration"), ", outline-color ").concat(dt("stepper.transition.duration"), ", box-shadow ").concat(dt("stepper.transition.duration"), ";\n border-radius: ").concat(dt("stepper.step.header.border.radius"), ";\n outline-color: transparent;\n background: transparent;\n padding: ").concat(dt("stepper.step.header.padding"), ";\n gap: ").concat(dt("stepper.step.header.gap"), ";\n}\n\n.p-step-header:focus-visible {\n box-shadow: ").concat(dt("stepper.step.header.focus.ring.shadow"), ";\n outline: ").concat(dt("stepper.step.header.focus.ring.width"), " ").concat(dt("stepper.step.header.focus.ring.style"), " ").concat(dt("stepper.step.header.focus.ring.color"), ";\n outline-offset: ").concat(dt("stepper.step.header.focus.ring.offset"), ";\n}\n\n.p-stepper.p-stepper-readonly .p-step {\n cursor: auto;\n}\n\n.p-step-title {\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n color: ").concat(dt("stepper.step.title.color"), ";\n font-weight: ").concat(dt("stepper.step.title.font.weight"), ";\n transition: background ").concat(dt("stepper.transition.duration"), ", color ").concat(dt("stepper.transition.duration"), ", border-color ").concat(dt("stepper.transition.duration"), ", box-shadow ").concat(dt("stepper.transition.duration"), ", outline-color ").concat(dt("stepper.transition.duration"), ";\n}\n\n.p-step-number {\n display: flex;\n align-items: center;\n justify-content: center;\n color: ").concat(dt("stepper.step.number.color"), ";\n border: 2px solid ").concat(dt("stepper.step.number.border.color"), ";\n background: ").concat(dt("stepper.step.number.background"), ";\n min-width: ").concat(dt("stepper.step.number.size"), ";\n height: ").concat(dt("stepper.step.number.size"), ";\n line-height: ").concat(dt("stepper.step.number.size"), ";\n font-size: ").concat(dt("stepper.step.number.font.size"), ";\n z-index: 1;\n border-radius: ").concat(dt("stepper.step.number.border.radius"), ";\n position: relative;\n font-weight: ").concat(dt("stepper.step.number.font.weight"), ';\n}\n\n.p-step-number::after {\n content: " ";\n position: absolute;\n width: 100%;\n height: 100%;\n border-radius: ').concat(dt("stepper.step.number.border.radius"), ";\n box-shadow: ").concat(dt("stepper.step.number.shadow"), ";\n}\n\n.p-step-active .p-step-header {\n cursor: default;\n}\n\n.p-step-active .p-step-number {\n background: ").concat(dt("stepper.step.number.active.background"), ";\n border-color: ").concat(dt("stepper.step.number.active.border.color"), ";\n color: ").concat(dt("stepper.step.number.active.color"), ";\n}\n\n.p-step-active .p-step-title {\n color: ").concat(dt("stepper.step.title.active.color"), ";\n}\n\n.p-step:not(.p-disabled):focus-visible {\n outline: ").concat(dt("focus.ring.width"), " ").concat(dt("focus.ring.style"), " ").concat(dt("focus.ring.color"), ";\n outline-offset: ").concat(dt("focus.ring.offset"), ";\n}\n\n.p-step:has(~ .p-step-active) .p-stepper-separator {\n background: ").concat(dt("stepper.separator.active.background"), ";\n}\n\n.p-stepper-separator {\n flex: 1 1 0;\n background: ").concat(dt("stepper.separator.background"), ";\n width: 100%;\n height: ").concat(dt("stepper.separator.size"), ";\n transition: background ").concat(dt("stepper.transition.duration"), ", color ").concat(dt("stepper.transition.duration"), ", border-color ").concat(dt("stepper.transition.duration"), ", box-shadow ").concat(dt("stepper.transition.duration"), ", outline-color ").concat(dt("stepper.transition.duration"), ";\n}\n\n.p-steppanels {\n padding: ").concat(dt("stepper.steppanels.padding"), ";\n}\n\n.p-steppanel {\n background: ").concat(dt("stepper.steppanel.background"), ";\n color: ").concat(dt("stepper.steppanel.color"), ";\n}\n\n.p-stepper:has(.p-stepitem) {\n display: flex;\n flex-direction: column;\n}\n\n.p-stepitem {\n display: flex;\n flex-direction: column;\n flex: initial;\n}\n\n.p-stepitem.p-stepitem-active {\n flex: 1 1 auto;\n}\n\n.p-stepitem .p-step {\n flex: initial;\n}\n\n.p-stepitem .p-steppanel-content {\n width: 100%;\n padding: ").concat(dt("stepper.steppanel.padding"), ";\n}\n\n.p-stepitem .p-steppanel {\n display: flex;\n flex: 1 1 auto;\n}\n\n.p-stepitem .p-stepper-separator {\n flex: 0 0 auto;\n width: ").concat(dt("stepper.separator.size"), ";\n height: auto;\n margin: ").concat(dt("stepper.separator.margin"), ";\n position: relative;\n left: calc(-1 * ").concat(dt("stepper.separator.size"), ");\n}\n\n.p-stepitem:has(~ .p-stepitem-active) .p-stepper-separator {\n background: ").concat(dt("stepper.separator.active.background"), ";\n}\n\n.p-stepitem:last-of-type .p-steppanel {\n padding-inline-start: ").concat(dt("stepper.step.number.size"), ";\n}\n"); +}, "theme"); +var classes = { + root: /* @__PURE__ */ __name(function root3(_ref2) { + var props = _ref2.props; + return ["p-stepper p-component", { + "p-readonly": props.linear + }]; + }, "root"), + separator: "p-stepper-separator" +}; +var StepperStyle = BaseStyle.extend({ + name: "stepper", + theme, + classes +}); +var script$1 = { + name: "BaseStepper", + "extends": script$6, + props: { + value: { + type: [String, Number], + "default": void 0 + }, + linear: { + type: Boolean, + "default": false + } + }, + style: StepperStyle, + provide: /* @__PURE__ */ __name(function provide5() { + return { + $pcStepper: this, + $parentInstance: this + }; + }, "provide") +}; +var script = { + name: "Stepper", + "extends": script$1, + inheritAttrs: false, + emits: ["update:value"], + data: /* @__PURE__ */ __name(function data3() { + return { + id: this.$attrs.id, + d_value: this.value + }; + }, "data"), + watch: { + "$attrs.id": /* @__PURE__ */ __name(function $attrsId(newValue) { + this.id = newValue || UniqueComponentId(); + }, "$attrsId"), + value: /* @__PURE__ */ __name(function value(newValue) { + this.d_value = newValue; + }, "value") + }, + mounted: /* @__PURE__ */ __name(function mounted3() { + this.id = this.id || UniqueComponentId(); + }, "mounted"), + methods: { + updateValue: /* @__PURE__ */ __name(function updateValue2(newValue) { + if (this.d_value !== newValue) { + this.d_value = newValue; + this.$emit("update:value", newValue); + } + }, "updateValue"), + isStepActive: /* @__PURE__ */ __name(function isStepActive(value2) { + return this.d_value === value2; + }, "isStepActive"), + isStepDisabled: /* @__PURE__ */ __name(function isStepDisabled2() { + return this.linear; + }, "isStepDisabled") + } +}; +function render(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("div", mergeProps({ + "class": _ctx.cx("root"), + role: "tablist" + }, _ctx.ptmi("root")), [_ctx.$slots.start ? renderSlot(_ctx.$slots, "start", { + key: 0 + }) : createCommentVNode("", true), renderSlot(_ctx.$slots, "default"), _ctx.$slots.end ? renderSlot(_ctx.$slots, "end", { + key: 1 + }) : createCommentVNode("", true)], 16); +} +__name(render, "render"); +script.render = render; +const _hoisted_1$4 = { class: "flex flex-col gap-6 w-[600px]" }; +const _hoisted_2$4 = { class: "flex flex-col gap-4" }; +const _hoisted_3$4 = { class: "text-2xl font-semibold text-neutral-100" }; +const _hoisted_4$4 = { class: "text-neutral-400 my-0" }; +const _hoisted_5$3 = { class: "flex flex-col bg-neutral-800 p-4 rounded-lg" }; +const _hoisted_6$3 = { class: "flex items-center gap-4" }; +const _hoisted_7$3 = { class: "flex-1" }; +const _hoisted_8$3 = { class: "text-lg font-medium text-neutral-100" }; +const _hoisted_9$3 = { class: "text-sm text-neutral-400 mt-1" }; +const _hoisted_10$3 = { class: "flex items-center gap-4" }; +const _hoisted_11$3 = { class: "flex-1" }; +const _hoisted_12$3 = { class: "text-lg font-medium text-neutral-100" }; +const _hoisted_13$2 = { class: "text-sm text-neutral-400 mt-1" }; +const _hoisted_14$2 = { class: "text-neutral-300" }; +const _hoisted_15$2 = { class: "font-medium mb-2" }; +const _hoisted_16$2 = { class: "list-disc pl-6 space-y-1" }; +const _hoisted_17$2 = { class: "font-medium mt-4 mb-2" }; +const _hoisted_18$2 = { class: "list-disc pl-6 space-y-1" }; +const _sfc_main$4 = /* @__PURE__ */ defineComponent({ + __name: "DesktopSettingsConfiguration", + props: { + "autoUpdate": { required: true }, + "autoUpdateModifiers": {}, + "allowMetrics": { required: true }, + "allowMetricsModifiers": {} + }, + emits: ["update:autoUpdate", "update:allowMetrics"], + setup(__props) { + const showDialog = ref(false); + const autoUpdate = useModel(__props, "autoUpdate"); + const allowMetrics = useModel(__props, "allowMetrics"); + const showMetricsInfo = /* @__PURE__ */ __name(() => { + showDialog.value = true; + }, "showMetricsInfo"); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", _hoisted_1$4, [ + createBaseVNode("div", _hoisted_2$4, [ + createBaseVNode("h2", _hoisted_3$4, toDisplayString(_ctx.$t("install.desktopAppSettings")), 1), + createBaseVNode("p", _hoisted_4$4, toDisplayString(_ctx.$t("install.desktopAppSettingsDescription")), 1) + ]), + createBaseVNode("div", _hoisted_5$3, [ + createBaseVNode("div", _hoisted_6$3, [ + createBaseVNode("div", _hoisted_7$3, [ + createBaseVNode("h3", _hoisted_8$3, toDisplayString(_ctx.$t("install.settings.autoUpdate")), 1), + createBaseVNode("p", _hoisted_9$3, toDisplayString(_ctx.$t("install.settings.autoUpdateDescription")), 1) + ]), + createVNode(unref(script$7), { + modelValue: autoUpdate.value, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => autoUpdate.value = $event) + }, null, 8, ["modelValue"]) + ]), + createVNode(unref(script$8)), + createBaseVNode("div", _hoisted_10$3, [ + createBaseVNode("div", _hoisted_11$3, [ + createBaseVNode("h3", _hoisted_12$3, toDisplayString(_ctx.$t("install.settings.allowMetrics")), 1), + createBaseVNode("p", _hoisted_13$2, toDisplayString(_ctx.$t("install.settings.allowMetricsDescription")), 1), + createBaseVNode("a", { + href: "#", + class: "text-sm text-blue-400 hover:text-blue-300 mt-1 inline-block", + onClick: withModifiers(showMetricsInfo, ["prevent"]) + }, toDisplayString(_ctx.$t("install.settings.learnMoreAboutData")), 1) + ]), + createVNode(unref(script$7), { + modelValue: allowMetrics.value, + "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => allowMetrics.value = $event) + }, null, 8, ["modelValue"]) + ]) + ]), + createVNode(unref(script$9), { + visible: showDialog.value, + "onUpdate:visible": _cache[2] || (_cache[2] = ($event) => showDialog.value = $event), + modal: "", + header: _ctx.$t("install.settings.dataCollectionDialog.title") + }, { + default: withCtx(() => [ + createBaseVNode("div", _hoisted_14$2, [ + createBaseVNode("h4", _hoisted_15$2, toDisplayString(_ctx.$t("install.settings.dataCollectionDialog.whatWeCollect")), 1), + createBaseVNode("ul", _hoisted_16$2, [ + createBaseVNode("li", null, toDisplayString(_ctx.$t("install.settings.dataCollectionDialog.errorReports")), 1), + createBaseVNode("li", null, toDisplayString(_ctx.$t("install.settings.dataCollectionDialog.systemInfo")), 1) + ]), + createBaseVNode("h4", _hoisted_17$2, toDisplayString(_ctx.$t("install.settings.dataCollectionDialog.whatWeDoNotCollect")), 1), + createBaseVNode("ul", _hoisted_18$2, [ + createBaseVNode("li", null, toDisplayString(_ctx.$t("install.settings.dataCollectionDialog.personalInformation")), 1), + createBaseVNode("li", null, toDisplayString(_ctx.$t("install.settings.dataCollectionDialog.workflowContents")), 1), + createBaseVNode("li", null, toDisplayString(_ctx.$t("install.settings.dataCollectionDialog.fileSystemInformation")), 1), + createBaseVNode("li", null, toDisplayString(_ctx.$t( + "install.settings.dataCollectionDialog.customNodeConfigurations" + )), 1) + ]) + ]) + ]), + _: 1 + }, 8, ["visible", "header"]) + ]); + }; + } +}); +const _imports_0 = "" + new URL("images/nvidia-logo.svg", import.meta.url).href; +const _imports_1 = "" + new URL("images/apple-mps-logo.png", import.meta.url).href; +const _imports_2 = "" + new URL("images/manual-configuration.svg", import.meta.url).href; +const _hoisted_1$3 = { class: "flex flex-col gap-6 w-[600px] h-[30rem] select-none" }; +const _hoisted_2$3 = { class: "grow flex flex-col gap-4 text-neutral-300" }; +const _hoisted_3$3 = { class: "text-2xl font-semibold text-neutral-100" }; +const _hoisted_4$3 = { class: "m-1 text-neutral-400" }; +const _hoisted_5$2 = /* @__PURE__ */ createBaseVNode("img", { + class: "m-12", + alt: "NVIDIA logo", + width: "196", + height: "32", + src: _imports_0 +}, null, -1); +const _hoisted_6$2 = [ + _hoisted_5$2 +]; +const _hoisted_7$2 = /* @__PURE__ */ createBaseVNode("img", { + class: "rounded-lg hover-brighten", + alt: "Apple Metal Performance Shaders Logo", + width: "292", + ratio: "", + src: _imports_1 +}, null, -1); +const _hoisted_8$2 = [ + _hoisted_7$2 +]; +const _hoisted_9$2 = /* @__PURE__ */ createBaseVNode("img", { + class: "m-12", + alt: "Manual configuration", + width: "196", + src: _imports_2 +}, null, -1); +const _hoisted_10$2 = [ + _hoisted_9$2 +]; +const _hoisted_11$2 = { + key: 0, + class: "m-1" +}; +const _hoisted_12$2 = { + key: 1, + class: "m-1" +}; +const _hoisted_13$1 = { + key: 2, + class: "text-neutral-300" +}; +const _hoisted_14$1 = { class: "m-1" }; +const _hoisted_15$1 = { key: 3 }; +const _hoisted_16$1 = { class: "m-1" }; +const _hoisted_17$1 = { class: "m-1" }; +const _hoisted_18$1 = { + for: "cpu-mode", + class: "select-none" +}; +const _sfc_main$3 = /* @__PURE__ */ defineComponent({ + __name: "GpuPicker", + props: { + "device": { + required: true + }, + "deviceModifiers": {} + }, + emits: ["update:device"], + setup(__props) { + const { t } = useI18n(); + const cpuMode = computed({ + get: /* @__PURE__ */ __name(() => selected.value === "cpu", "get"), + set: /* @__PURE__ */ __name((value2) => { + selected.value = value2 ? "cpu" : null; + }, "set") + }); + const selected = useModel(__props, "device"); + const electron = electronAPI(); + const platform = electron.getPlatform(); + const pickGpu = /* @__PURE__ */ __name((value2) => { + const newValue = selected.value === value2 ? null : value2; + selected.value = newValue; + }, "pickGpu"); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", _hoisted_1$3, [ + createBaseVNode("div", _hoisted_2$3, [ + createBaseVNode("h2", _hoisted_3$3, toDisplayString(_ctx.$t("install.gpuSelection.selectGpu")), 1), + createBaseVNode("p", _hoisted_4$3, toDisplayString(_ctx.$t("install.gpuSelection.selectGpuDescription")) + ": ", 1), + createBaseVNode("div", { + class: normalizeClass(["flex gap-2 text-center transition-opacity", { selected: selected.value }]) + }, [ + unref(platform) !== "darwin" ? (openBlock(), createElementBlock("div", { + key: 0, + class: normalizeClass(["gpu-button", { selected: selected.value === "nvidia" }]), + role: "button", + onClick: _cache[0] || (_cache[0] = ($event) => pickGpu("nvidia")) + }, _hoisted_6$2, 2)) : createCommentVNode("", true), + unref(platform) === "darwin" ? (openBlock(), createElementBlock("div", { + key: 1, + class: normalizeClass(["gpu-button", { selected: selected.value === "mps" }]), + role: "button", + onClick: _cache[1] || (_cache[1] = ($event) => pickGpu("mps")) + }, _hoisted_8$2, 2)) : createCommentVNode("", true), + createBaseVNode("div", { + class: normalizeClass(["gpu-button", { selected: selected.value === "unsupported" }]), + role: "button", + onClick: _cache[2] || (_cache[2] = ($event) => pickGpu("unsupported")) + }, _hoisted_10$2, 2) + ], 2), + selected.value === "nvidia" ? (openBlock(), createElementBlock("p", _hoisted_11$2, [ + createVNode(unref(script$a), { + icon: "pi pi-check", + severity: "success", + value: "CUDA" + }), + createTextVNode(" " + toDisplayString(_ctx.$t("install.gpuSelection.nvidiaDescription")), 1) + ])) : createCommentVNode("", true), + selected.value === "mps" ? (openBlock(), createElementBlock("p", _hoisted_12$2, [ + createVNode(unref(script$a), { + icon: "pi pi-check", + severity: "success", + value: "MPS" + }), + createTextVNode(" " + toDisplayString(_ctx.$t("install.gpuSelection.mpsDescription")), 1) + ])) : createCommentVNode("", true), + selected.value === "unsupported" ? (openBlock(), createElementBlock("div", _hoisted_13$1, [ + createBaseVNode("p", _hoisted_14$1, [ + createVNode(unref(script$a), { + icon: "pi pi-exclamation-triangle", + severity: "warn", + value: unref(t)("icon.exclamation-triangle") + }, null, 8, ["value"]), + createTextVNode(" " + toDisplayString(_ctx.$t("install.gpuSelection.customSkipsPython")), 1) + ]), + createBaseVNode("ul", null, [ + createBaseVNode("li", null, [ + createBaseVNode("strong", null, toDisplayString(_ctx.$t("install.gpuSelection.customComfyNeedsPython")), 1) + ]), + createBaseVNode("li", null, toDisplayString(_ctx.$t("install.gpuSelection.customManualVenv")), 1), + createBaseVNode("li", null, toDisplayString(_ctx.$t("install.gpuSelection.customInstallRequirements")), 1), + createBaseVNode("li", null, toDisplayString(_ctx.$t("install.gpuSelection.customMayNotWork")), 1) + ]) + ])) : createCommentVNode("", true), + selected.value === "cpu" ? (openBlock(), createElementBlock("div", _hoisted_15$1, [ + createBaseVNode("p", _hoisted_16$1, [ + createVNode(unref(script$a), { + icon: "pi pi-exclamation-triangle", + severity: "warn", + value: unref(t)("icon.exclamation-triangle") + }, null, 8, ["value"]), + createTextVNode(" " + toDisplayString(_ctx.$t("install.gpuSelection.cpuModeDescription")), 1) + ]), + createBaseVNode("p", _hoisted_17$1, toDisplayString(_ctx.$t("install.gpuSelection.cpuModeDescription2")), 1) + ])) : createCommentVNode("", true) + ]), + createBaseVNode("div", { + class: normalizeClass(["transition-opacity flex gap-3 h-0", { + "opacity-40": selected.value && selected.value !== "cpu" + }]) + }, [ + createVNode(unref(script$7), { + modelValue: cpuMode.value, + "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => cpuMode.value = $event), + inputId: "cpu-mode", + class: "-translate-y-40" + }, null, 8, ["modelValue"]), + createBaseVNode("label", _hoisted_18$1, toDisplayString(_ctx.$t("install.gpuSelection.enableCpuMode")), 1) + ], 2) + ]); + }; + } +}); +const _hoisted_1$2 = { class: "flex flex-col gap-6 w-[600px]" }; +const _hoisted_2$2 = { class: "flex flex-col gap-4" }; +const _hoisted_3$2 = { class: "text-2xl font-semibold text-neutral-100" }; +const _hoisted_4$2 = { class: "text-neutral-400 my-0" }; +const _hoisted_5$1 = { class: "flex gap-2" }; +const _hoisted_6$1 = { class: "bg-neutral-800 p-4 rounded-lg" }; +const _hoisted_7$1 = { class: "text-lg font-medium mt-0 mb-3 text-neutral-100" }; +const _hoisted_8$1 = { class: "flex flex-col gap-2" }; +const _hoisted_9$1 = { class: "flex items-center gap-2" }; +const _hoisted_10$1 = /* @__PURE__ */ createBaseVNode("i", { class: "pi pi-folder text-neutral-400" }, null, -1); +const _hoisted_11$1 = /* @__PURE__ */ createBaseVNode("span", { class: "text-neutral-400" }, "App Data:", -1); +const _hoisted_12$1 = { class: "text-neutral-200" }; +const _hoisted_13 = { class: "pi pi-info-circle" }; +const _hoisted_14 = { class: "flex items-center gap-2" }; +const _hoisted_15 = /* @__PURE__ */ createBaseVNode("i", { class: "pi pi-desktop text-neutral-400" }, null, -1); +const _hoisted_16 = /* @__PURE__ */ createBaseVNode("span", { class: "text-neutral-400" }, "App Path:", -1); +const _hoisted_17 = { class: "text-neutral-200" }; +const _hoisted_18 = { class: "pi pi-info-circle" }; +const _sfc_main$2 = /* @__PURE__ */ defineComponent({ + __name: "InstallLocationPicker", + props: { + "installPath": { required: true }, + "installPathModifiers": {}, + "pathError": { required: true }, + "pathErrorModifiers": {} + }, + emits: ["update:installPath", "update:pathError"], + setup(__props) { + const { t } = useI18n(); + const installPath = useModel(__props, "installPath"); + const pathError = useModel(__props, "pathError"); + const pathExists = ref(false); + const appData = ref(""); + const appPath = ref(""); + const electron = electronAPI(); + onMounted(async () => { + const paths = await electron.getSystemPaths(); + appData.value = paths.appData; + appPath.value = paths.appPath; + installPath.value = paths.defaultInstallPath; + await validatePath(paths.defaultInstallPath); + }); + const validatePath = /* @__PURE__ */ __name(async (path) => { + try { + pathError.value = ""; + pathExists.value = false; + const validation = await electron.validateInstallPath(path); + if (!validation.isValid) { + const errors = []; + if (validation.cannotWrite) errors.push(t("install.cannotWrite")); + if (validation.freeSpace < validation.requiredSpace) { + const requiredGB = validation.requiredSpace / 1024 / 1024 / 1024; + errors.push(`${t("install.insufficientFreeSpace")}: ${requiredGB} GB`); + } + if (validation.parentMissing) errors.push(t("install.parentMissing")); + if (validation.error) + errors.push(`${t("install.unhandledError")}: ${validation.error}`); + pathError.value = errors.join("\n"); + } + if (validation.exists) pathExists.value = true; + } catch (error) { + pathError.value = t("install.pathValidationFailed"); + } + }, "validatePath"); + const browsePath = /* @__PURE__ */ __name(async () => { + try { + const result = await electron.showDirectoryPicker(); + if (result) { + installPath.value = result; + await validatePath(result); + } + } catch (error) { + pathError.value = t("install.failedToSelectDirectory"); + } + }, "browsePath"); + return (_ctx, _cache) => { + const _directive_tooltip = resolveDirective("tooltip"); + return openBlock(), createElementBlock("div", _hoisted_1$2, [ + createBaseVNode("div", _hoisted_2$2, [ + createBaseVNode("h2", _hoisted_3$2, toDisplayString(_ctx.$t("install.chooseInstallationLocation")), 1), + createBaseVNode("p", _hoisted_4$2, toDisplayString(_ctx.$t("install.installLocationDescription")), 1), + createBaseVNode("div", _hoisted_5$1, [ + createVNode(unref(script$d), { class: "flex-1" }, { + default: withCtx(() => [ + createVNode(unref(script$b), { + modelValue: installPath.value, + "onUpdate:modelValue": [ + _cache[0] || (_cache[0] = ($event) => installPath.value = $event), + validatePath + ], + class: normalizeClass(["w-full", { "p-invalid": pathError.value }]) + }, null, 8, ["modelValue", "class"]), + withDirectives(createVNode(unref(script$c), { class: "pi pi-info-circle" }, null, 512), [ + [_directive_tooltip, _ctx.$t("install.installLocationTooltip")] + ]) + ]), + _: 1 + }), + createVNode(unref(script$e), { + icon: "pi pi-folder", + onClick: browsePath, + class: "w-12" + }) + ]), + pathError.value ? (openBlock(), createBlock(unref(script$f), { + key: 0, + severity: "error", + class: "whitespace-pre-line" + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(pathError.value), 1) + ]), + _: 1 + })) : createCommentVNode("", true), + pathExists.value ? (openBlock(), createBlock(unref(script$f), { + key: 1, + severity: "warn" + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(_ctx.$t("install.pathExists")), 1) + ]), + _: 1 + })) : createCommentVNode("", true) + ]), + createBaseVNode("div", _hoisted_6$1, [ + createBaseVNode("h3", _hoisted_7$1, toDisplayString(_ctx.$t("install.systemLocations")), 1), + createBaseVNode("div", _hoisted_8$1, [ + createBaseVNode("div", _hoisted_9$1, [ + _hoisted_10$1, + _hoisted_11$1, + createBaseVNode("span", _hoisted_12$1, toDisplayString(appData.value), 1), + withDirectives(createBaseVNode("span", _hoisted_13, null, 512), [ + [_directive_tooltip, _ctx.$t("install.appDataLocationTooltip")] + ]) + ]), + createBaseVNode("div", _hoisted_14, [ + _hoisted_15, + _hoisted_16, + createBaseVNode("span", _hoisted_17, toDisplayString(appPath.value), 1), + withDirectives(createBaseVNode("span", _hoisted_18, null, 512), [ + [_directive_tooltip, _ctx.$t("install.appPathLocationTooltip")] + ]) + ]) + ]) + ]) + ]); + }; + } +}); +const _hoisted_1$1 = { class: "flex flex-col gap-6 w-[600px]" }; +const _hoisted_2$1 = { class: "flex flex-col gap-4" }; +const _hoisted_3$1 = { class: "text-2xl font-semibold text-neutral-100" }; +const _hoisted_4$1 = { class: "text-neutral-400 my-0" }; +const _hoisted_5 = { class: "flex gap-2" }; +const _hoisted_6 = { + key: 0, + class: "flex flex-col gap-4 bg-neutral-800 p-4 rounded-lg" +}; +const _hoisted_7 = { class: "text-lg mt-0 font-medium text-neutral-100" }; +const _hoisted_8 = { class: "flex flex-col gap-3" }; +const _hoisted_9 = ["onClick"]; +const _hoisted_10 = ["for"]; +const _hoisted_11 = { class: "text-sm text-neutral-400 my-1" }; +const _hoisted_12 = { + key: 1, + class: "text-neutral-400 italic" +}; +const _sfc_main$1 = /* @__PURE__ */ defineComponent({ + __name: "MigrationPicker", + props: { + "sourcePath": { required: false }, + "sourcePathModifiers": {}, + "migrationItemIds": { + required: false + }, + "migrationItemIdsModifiers": {} + }, + emits: ["update:sourcePath", "update:migrationItemIds"], + setup(__props) { + const { t } = useI18n(); + const electron = electronAPI(); + const sourcePath = useModel(__props, "sourcePath"); + const migrationItemIds = useModel(__props, "migrationItemIds"); + const migrationItems = ref( + MigrationItems.map((item) => ({ + ...item, + selected: true + })) + ); + const pathError = ref(""); + const isValidSource = computed( + () => sourcePath.value !== "" && pathError.value === "" + ); + const validateSource = /* @__PURE__ */ __name(async (sourcePath2) => { + if (!sourcePath2) { + pathError.value = ""; + return; + } + try { + pathError.value = ""; + const validation = await electron.validateComfyUISource(sourcePath2); + if (!validation.isValid) pathError.value = validation.error; + } catch (error) { + console.error(error); + pathError.value = t("install.pathValidationFailed"); + } + }, "validateSource"); + const browsePath = /* @__PURE__ */ __name(async () => { + try { + const result = await electron.showDirectoryPicker(); + if (result) { + sourcePath.value = result; + await validateSource(result); + } + } catch (error) { + console.error(error); + pathError.value = t("install.failedToSelectDirectory"); + } + }, "browsePath"); + watchEffect(() => { + migrationItemIds.value = migrationItems.value.filter((item) => item.selected).map((item) => item.id); + }); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("div", _hoisted_1$1, [ + createBaseVNode("div", _hoisted_2$1, [ + createBaseVNode("h2", _hoisted_3$1, toDisplayString(_ctx.$t("install.migrateFromExistingInstallation")), 1), + createBaseVNode("p", _hoisted_4$1, toDisplayString(_ctx.$t("install.migrationSourcePathDescription")), 1), + createBaseVNode("div", _hoisted_5, [ + createVNode(unref(script$b), { + modelValue: sourcePath.value, + "onUpdate:modelValue": [ + _cache[0] || (_cache[0] = ($event) => sourcePath.value = $event), + validateSource + ], + placeholder: "Select existing ComfyUI installation (optional)", + class: normalizeClass(["flex-1", { "p-invalid": pathError.value }]) + }, null, 8, ["modelValue", "class"]), + createVNode(unref(script$e), { + icon: "pi pi-folder", + onClick: browsePath, + class: "w-12" + }) + ]), + pathError.value ? (openBlock(), createBlock(unref(script$f), { + key: 0, + severity: "error" + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(pathError.value), 1) + ]), + _: 1 + })) : createCommentVNode("", true) + ]), + isValidSource.value ? (openBlock(), createElementBlock("div", _hoisted_6, [ + createBaseVNode("h3", _hoisted_7, toDisplayString(_ctx.$t("install.selectItemsToMigrate")), 1), + createBaseVNode("div", _hoisted_8, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(migrationItems.value, (item) => { + return openBlock(), createElementBlock("div", { + key: item.id, + class: "flex items-center gap-3 p-2 hover:bg-neutral-700 rounded", + onClick: /* @__PURE__ */ __name(($event) => item.selected = !item.selected, "onClick") + }, [ + createVNode(unref(script$g), { + modelValue: item.selected, + "onUpdate:modelValue": /* @__PURE__ */ __name(($event) => item.selected = $event, "onUpdate:modelValue"), + inputId: item.id, + binary: true, + onClick: _cache[1] || (_cache[1] = withModifiers(() => { + }, ["stop"])) + }, null, 8, ["modelValue", "onUpdate:modelValue", "inputId"]), + createBaseVNode("div", null, [ + createBaseVNode("label", { + for: item.id, + class: "text-neutral-200 font-medium" + }, toDisplayString(item.label), 9, _hoisted_10), + createBaseVNode("p", _hoisted_11, toDisplayString(item.description), 1) + ]) + ], 8, _hoisted_9); + }), 128)) + ]) + ])) : (openBlock(), createElementBlock("div", _hoisted_12, toDisplayString(_ctx.$t("install.migrationOptional")), 1)) + ]); + }; + } +}); +const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-de33872d"), n = n(), popScopeId(), n), "_withScopeId"); +const _hoisted_1 = { class: "flex pt-6 justify-end" }; +const _hoisted_2 = { class: "flex pt-6 justify-between" }; +const _hoisted_3 = { class: "flex pt-6 justify-between" }; +const _hoisted_4 = { class: "flex pt-6 justify-between" }; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "InstallView", + setup(__props) { + const device = ref(null); + const installPath = ref(""); + const pathError = ref(""); + const migrationSourcePath = ref(""); + const migrationItemIds = ref([]); + const autoUpdate = ref(true); + const allowMetrics = ref(true); + const highestStep = ref(0); + const setHighestStep = /* @__PURE__ */ __name((value2) => { + const int = typeof value2 === "number" ? value2 : parseInt(value2, 10); + if (!isNaN(int) && int > highestStep.value) highestStep.value = int; + }, "setHighestStep"); + const hasError = computed(() => pathError.value !== ""); + const noGpu = computed(() => typeof device.value !== "string"); + const electron = electronAPI(); + const router = useRouter(); + const install = /* @__PURE__ */ __name(() => { + const options = { + installPath: installPath.value, + autoUpdate: autoUpdate.value, + allowMetrics: allowMetrics.value, + migrationSourcePath: migrationSourcePath.value, + migrationItemIds: toRaw(migrationItemIds.value), + device: device.value + }; + electron.installComfyUI(options); + const nextPage = options.device === "unsupported" ? "/manual-configuration" : "/server-start"; + router.push(nextPage); + }, "install"); + onMounted(async () => { + if (!electron) return; + const detectedGpu = await electron.Config.getDetectedGpu(); + if (detectedGpu === "mps" || detectedGpu === "nvidia") + device.value = detectedGpu; + }); + return (_ctx, _cache) => { + return openBlock(), createBlock(_sfc_main$5, { dark: "" }, { + default: withCtx(() => [ + createVNode(unref(script), { + class: "h-full p-8 2xl:p-16", + value: "0", + "onUpdate:value": setHighestStep + }, { + default: withCtx(() => [ + createVNode(unref(script$4), { class: "select-none" }, { + default: withCtx(() => [ + createVNode(unref(script$5), { value: "0" }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(_ctx.$t("install.gpu")), 1) + ]), + _: 1 + }), + createVNode(unref(script$5), { + value: "1", + disabled: noGpu.value + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(_ctx.$t("install.installLocation")), 1) + ]), + _: 1 + }, 8, ["disabled"]), + createVNode(unref(script$5), { + value: "2", + disabled: noGpu.value || hasError.value || highestStep.value < 1 + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(_ctx.$t("install.migration")), 1) + ]), + _: 1 + }, 8, ["disabled"]), + createVNode(unref(script$5), { + value: "3", + disabled: noGpu.value || hasError.value || highestStep.value < 2 + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(_ctx.$t("install.desktopSettings")), 1) + ]), + _: 1 + }, 8, ["disabled"]) + ]), + _: 1 + }), + createVNode(unref(script$2), null, { + default: withCtx(() => [ + createVNode(unref(script$3), { value: "0" }, { + default: withCtx(({ activateCallback }) => [ + createVNode(_sfc_main$3, { + device: device.value, + "onUpdate:device": _cache[0] || (_cache[0] = ($event) => device.value = $event) + }, null, 8, ["device"]), + createBaseVNode("div", _hoisted_1, [ + createVNode(unref(script$e), { + label: _ctx.$t("g.next"), + icon: "pi pi-arrow-right", + iconPos: "right", + onClick: /* @__PURE__ */ __name(($event) => activateCallback("1"), "onClick"), + disabled: typeof device.value !== "string" + }, null, 8, ["label", "onClick", "disabled"]) + ]) + ]), + _: 1 + }), + createVNode(unref(script$3), { value: "1" }, { + default: withCtx(({ activateCallback }) => [ + createVNode(_sfc_main$2, { + installPath: installPath.value, + "onUpdate:installPath": _cache[1] || (_cache[1] = ($event) => installPath.value = $event), + pathError: pathError.value, + "onUpdate:pathError": _cache[2] || (_cache[2] = ($event) => pathError.value = $event) + }, null, 8, ["installPath", "pathError"]), + createBaseVNode("div", _hoisted_2, [ + createVNode(unref(script$e), { + label: _ctx.$t("g.back"), + severity: "secondary", + icon: "pi pi-arrow-left", + onClick: /* @__PURE__ */ __name(($event) => activateCallback("0"), "onClick") + }, null, 8, ["label", "onClick"]), + createVNode(unref(script$e), { + label: _ctx.$t("g.next"), + icon: "pi pi-arrow-right", + iconPos: "right", + onClick: /* @__PURE__ */ __name(($event) => activateCallback("2"), "onClick"), + disabled: pathError.value !== "" + }, null, 8, ["label", "onClick", "disabled"]) + ]) + ]), + _: 1 + }), + createVNode(unref(script$3), { value: "2" }, { + default: withCtx(({ activateCallback }) => [ + createVNode(_sfc_main$1, { + sourcePath: migrationSourcePath.value, + "onUpdate:sourcePath": _cache[3] || (_cache[3] = ($event) => migrationSourcePath.value = $event), + migrationItemIds: migrationItemIds.value, + "onUpdate:migrationItemIds": _cache[4] || (_cache[4] = ($event) => migrationItemIds.value = $event) + }, null, 8, ["sourcePath", "migrationItemIds"]), + createBaseVNode("div", _hoisted_3, [ + createVNode(unref(script$e), { + label: _ctx.$t("g.back"), + severity: "secondary", + icon: "pi pi-arrow-left", + onClick: /* @__PURE__ */ __name(($event) => activateCallback("1"), "onClick") + }, null, 8, ["label", "onClick"]), + createVNode(unref(script$e), { + label: _ctx.$t("g.next"), + icon: "pi pi-arrow-right", + iconPos: "right", + onClick: /* @__PURE__ */ __name(($event) => activateCallback("3"), "onClick") + }, null, 8, ["label", "onClick"]) + ]) + ]), + _: 1 + }), + createVNode(unref(script$3), { value: "3" }, { + default: withCtx(({ activateCallback }) => [ + createVNode(_sfc_main$4, { + autoUpdate: autoUpdate.value, + "onUpdate:autoUpdate": _cache[5] || (_cache[5] = ($event) => autoUpdate.value = $event), + allowMetrics: allowMetrics.value, + "onUpdate:allowMetrics": _cache[6] || (_cache[6] = ($event) => allowMetrics.value = $event) + }, null, 8, ["autoUpdate", "allowMetrics"]), + createBaseVNode("div", _hoisted_4, [ + createVNode(unref(script$e), { + label: _ctx.$t("g.back"), + severity: "secondary", + icon: "pi pi-arrow-left", + onClick: /* @__PURE__ */ __name(($event) => activateCallback("2"), "onClick") + }, null, 8, ["label", "onClick"]), + createVNode(unref(script$e), { + label: _ctx.$t("g.install"), + icon: "pi pi-check", + iconPos: "right", + disabled: hasError.value, + onClick: _cache[7] || (_cache[7] = ($event) => install()) + }, null, 8, ["label", "disabled"]) + ]) + ]), + _: 1 + }) + ]), + _: 1 + }) + ]), + _: 1 + }) + ]), + _: 1 + }); + }; + } +}); +const InstallView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-de33872d"]]); +export { + InstallView as default +}; +//# sourceMappingURL=InstallView-AV2llYNm.js.map diff --git a/web/assets/InstallView-CwQdoH-C.css b/web/assets/InstallView-CwQdoH-C.css new file mode 100644 index 00000000..df578778 --- /dev/null +++ b/web/assets/InstallView-CwQdoH-C.css @@ -0,0 +1,79 @@ + +:root { + --p-tag-gap: 0.5rem; +} +.hover-brighten { + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; + transition-property: filter, box-shadow; +&:hover { + filter: brightness(107%) contrast(105%); + box-shadow: 0 0 0.25rem #ffffff79; +} +} +.p-accordioncontent-content { + border-radius: 0.5rem; + --tw-bg-opacity: 1; + background-color: rgb(23 23 23 / var(--tw-bg-opacity)); + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} +div.selected { +.gpu-button:not(.selected) { + opacity: 0.5; +} +.gpu-button:not(.selected):hover { + opacity: 1; +} +} +.gpu-button { + margin: 0px; + display: flex; + width: 50%; + cursor: pointer; + flex-direction: column; + align-items: center; + justify-content: space-around; + border-radius: 0.5rem; + background-color: rgb(38 38 38 / var(--tw-bg-opacity)); + --tw-bg-opacity: 0.5; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} +.gpu-button:hover { + --tw-bg-opacity: 0.75; +} +.gpu-button { +&.selected { + --tw-bg-opacity: 1; + background-color: rgb(64 64 64 / var(--tw-bg-opacity)); +} +&.selected { + --tw-bg-opacity: 0.5; +} +&.selected { + opacity: 1; +} +&.selected:hover { + --tw-bg-opacity: 0.6; +} +} +.disabled { + pointer-events: none; + opacity: 0.4; +} +.p-card-header { + flex-grow: 1; + text-align: center; +} +.p-card-body { + padding-top: 0px; + text-align: center; +} + +[data-v-de33872d] .p-steppanel { + background-color: transparent +} diff --git a/web/assets/KeybindingPanel-BNYKhW1k.css b/web/assets/KeybindingPanel-BNYKhW1k.css deleted file mode 100644 index c14704b8..00000000 --- a/web/assets/KeybindingPanel-BNYKhW1k.css +++ /dev/null @@ -1,8 +0,0 @@ - -[data-v-e5724e4d] .p-datatable-tbody > tr > td { - padding: 1px; - min-height: 2rem; -} -[data-v-e5724e4d] .p-datatable-row-selected .actions,[data-v-e5724e4d] .p-datatable-selectable-row:hover .actions { - visibility: visible; -} diff --git a/web/assets/KeybindingPanel-CxaJ1IiJ.js b/web/assets/KeybindingPanel-CxaJ1IiJ.js new file mode 100644 index 00000000..f165f9a5 --- /dev/null +++ b/web/assets/KeybindingPanel-CxaJ1IiJ.js @@ -0,0 +1,284 @@ +var __defProp = Object.defineProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +import { d as defineComponent, c as computed, o as openBlock, f as createElementBlock, F as Fragment, E as renderList, N as createVNode, M as withCtx, aE as createTextVNode, X as toDisplayString, j as unref, aI as script, I as createCommentVNode, ab as ref, cn as FilterMatchMode, a$ as useKeybindingStore, a2 as useCommandStore, a1 as useI18n, af as normalizeI18nKey, w as watchEffect, bs as useToast, r as resolveDirective, k as createBlock, co as SearchBox, H as createBaseVNode, l as script$2, av as script$4, bM as withModifiers, bZ as script$5, aP as script$6, i as withDirectives, cp as _sfc_main$2, aL as pushScopeId, aM as popScopeId, cq as KeyComboImpl, cr as KeybindingImpl, _ as _export_sfc } from "./index-C4Fk50Nx.js"; +import { s as script$1, a as script$3 } from "./index-CK0rrCYF.js"; +import { u as useKeybindingService } from "./keybindingService-D48fkLBy.js"; +import "./index-lMQBwSDj.js"; +import "./index-B7ycxfFq.js"; +const _hoisted_1$1 = { + key: 0, + class: "px-2" +}; +const _sfc_main$1 = /* @__PURE__ */ defineComponent({ + __name: "KeyComboDisplay", + props: { + keyCombo: {}, + isModified: { type: Boolean, default: false } + }, + setup(__props) { + const props = __props; + const keySequences = computed(() => props.keyCombo.getKeySequences()); + return (_ctx, _cache) => { + return openBlock(), createElementBlock("span", null, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(keySequences.value, (sequence, index) => { + return openBlock(), createElementBlock(Fragment, { key: index }, [ + createVNode(unref(script), { + severity: _ctx.isModified ? "info" : "secondary" + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(sequence), 1) + ]), + _: 2 + }, 1032, ["severity"]), + index < keySequences.value.length - 1 ? (openBlock(), createElementBlock("span", _hoisted_1$1, "+")) : createCommentVNode("", true) + ], 64); + }), 128)) + ]); + }; + } +}); +const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-2554ab36"), n = n(), popScopeId(), n), "_withScopeId"); +const _hoisted_1 = { class: "actions invisible flex flex-row" }; +const _hoisted_2 = ["title"]; +const _hoisted_3 = { key: 1 }; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "KeybindingPanel", + setup(__props) { + const filters = ref({ + global: { value: "", matchMode: FilterMatchMode.CONTAINS } + }); + const keybindingStore = useKeybindingStore(); + const keybindingService = useKeybindingService(); + const commandStore = useCommandStore(); + const { t } = useI18n(); + const commandsData = computed(() => { + return Object.values(commandStore.commands).map((command) => ({ + id: command.id, + label: t(`commands.${normalizeI18nKey(command.id)}.label`, command.label), + keybinding: keybindingStore.getKeybindingByCommandId(command.id) + })); + }); + const selectedCommandData = ref(null); + const editDialogVisible = ref(false); + const newBindingKeyCombo = ref(null); + const currentEditingCommand = ref(null); + const keybindingInput = ref(null); + const existingKeybindingOnCombo = computed(() => { + if (!currentEditingCommand.value) { + return null; + } + if (currentEditingCommand.value.keybinding?.combo?.equals( + newBindingKeyCombo.value + )) { + return null; + } + if (!newBindingKeyCombo.value) { + return null; + } + return keybindingStore.getKeybinding(newBindingKeyCombo.value); + }); + function editKeybinding(commandData) { + currentEditingCommand.value = commandData; + newBindingKeyCombo.value = commandData.keybinding ? commandData.keybinding.combo : null; + editDialogVisible.value = true; + } + __name(editKeybinding, "editKeybinding"); + watchEffect(() => { + if (editDialogVisible.value) { + setTimeout(() => { + keybindingInput.value?.$el?.focus(); + }, 300); + } + }); + function removeKeybinding(commandData) { + if (commandData.keybinding) { + keybindingStore.unsetKeybinding(commandData.keybinding); + keybindingService.persistUserKeybindings(); + } + } + __name(removeKeybinding, "removeKeybinding"); + function captureKeybinding(event) { + const keyCombo = KeyComboImpl.fromEvent(event); + newBindingKeyCombo.value = keyCombo; + } + __name(captureKeybinding, "captureKeybinding"); + function cancelEdit() { + editDialogVisible.value = false; + currentEditingCommand.value = null; + newBindingKeyCombo.value = null; + } + __name(cancelEdit, "cancelEdit"); + function saveKeybinding() { + if (currentEditingCommand.value && newBindingKeyCombo.value) { + const updated = keybindingStore.updateKeybindingOnCommand( + new KeybindingImpl({ + commandId: currentEditingCommand.value.id, + combo: newBindingKeyCombo.value + }) + ); + if (updated) { + keybindingService.persistUserKeybindings(); + } + } + cancelEdit(); + } + __name(saveKeybinding, "saveKeybinding"); + const toast = useToast(); + async function resetKeybindings() { + keybindingStore.resetKeybindings(); + await keybindingService.persistUserKeybindings(); + toast.add({ + severity: "info", + summary: "Info", + detail: "Keybindings reset", + life: 3e3 + }); + } + __name(resetKeybindings, "resetKeybindings"); + return (_ctx, _cache) => { + const _directive_tooltip = resolveDirective("tooltip"); + return openBlock(), createBlock(_sfc_main$2, { + value: "Keybinding", + class: "keybinding-panel" + }, { + header: withCtx(() => [ + createVNode(SearchBox, { + modelValue: filters.value["global"].value, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => filters.value["global"].value = $event), + placeholder: _ctx.$t("g.searchKeybindings") + "..." + }, null, 8, ["modelValue", "placeholder"]) + ]), + default: withCtx(() => [ + createVNode(unref(script$3), { + value: commandsData.value, + selection: selectedCommandData.value, + "onUpdate:selection": _cache[1] || (_cache[1] = ($event) => selectedCommandData.value = $event), + "global-filter-fields": ["id"], + filters: filters.value, + selectionMode: "single", + stripedRows: "", + pt: { + header: "px-0" + } + }, { + default: withCtx(() => [ + createVNode(unref(script$1), { + field: "actions", + header: "" + }, { + body: withCtx((slotProps) => [ + createBaseVNode("div", _hoisted_1, [ + createVNode(unref(script$2), { + icon: "pi pi-pencil", + class: "p-button-text", + onClick: /* @__PURE__ */ __name(($event) => editKeybinding(slotProps.data), "onClick") + }, null, 8, ["onClick"]), + createVNode(unref(script$2), { + icon: "pi pi-trash", + class: "p-button-text p-button-danger", + onClick: /* @__PURE__ */ __name(($event) => removeKeybinding(slotProps.data), "onClick"), + disabled: !slotProps.data.keybinding + }, null, 8, ["onClick", "disabled"]) + ]) + ]), + _: 1 + }), + createVNode(unref(script$1), { + field: "id", + header: _ctx.$t("g.command"), + sortable: "", + class: "max-w-64 2xl:max-w-full" + }, { + body: withCtx((slotProps) => [ + createBaseVNode("div", { + class: "overflow-hidden text-ellipsis whitespace-nowrap", + title: slotProps.data.id + }, toDisplayString(slotProps.data.label), 9, _hoisted_2) + ]), + _: 1 + }, 8, ["header"]), + createVNode(unref(script$1), { + field: "keybinding", + header: _ctx.$t("g.keybinding") + }, { + body: withCtx((slotProps) => [ + slotProps.data.keybinding ? (openBlock(), createBlock(_sfc_main$1, { + key: 0, + keyCombo: slotProps.data.keybinding.combo, + isModified: unref(keybindingStore).isCommandKeybindingModified(slotProps.data.id) + }, null, 8, ["keyCombo", "isModified"])) : (openBlock(), createElementBlock("span", _hoisted_3, "-")) + ]), + _: 1 + }, 8, ["header"]) + ]), + _: 1 + }, 8, ["value", "selection", "filters"]), + createVNode(unref(script$6), { + class: "min-w-96", + visible: editDialogVisible.value, + "onUpdate:visible": _cache[2] || (_cache[2] = ($event) => editDialogVisible.value = $event), + modal: "", + header: currentEditingCommand.value?.id, + onHide: cancelEdit + }, { + footer: withCtx(() => [ + createVNode(unref(script$2), { + label: "Save", + icon: "pi pi-check", + onClick: saveKeybinding, + disabled: !!existingKeybindingOnCombo.value, + autofocus: "" + }, null, 8, ["disabled"]) + ]), + default: withCtx(() => [ + createBaseVNode("div", null, [ + createVNode(unref(script$4), { + class: "mb-2 text-center", + ref_key: "keybindingInput", + ref: keybindingInput, + modelValue: newBindingKeyCombo.value?.toString() ?? "", + placeholder: "Press keys for new binding", + onKeydown: withModifiers(captureKeybinding, ["stop", "prevent"]), + autocomplete: "off", + fluid: "", + invalid: !!existingKeybindingOnCombo.value + }, null, 8, ["modelValue", "invalid"]), + existingKeybindingOnCombo.value ? (openBlock(), createBlock(unref(script$5), { + key: 0, + severity: "error" + }, { + default: withCtx(() => [ + createTextVNode(" Keybinding already exists on "), + createVNode(unref(script), { + severity: "secondary", + value: existingKeybindingOnCombo.value.commandId + }, null, 8, ["value"]) + ]), + _: 1 + })) : createCommentVNode("", true) + ]) + ]), + _: 1 + }, 8, ["visible", "header"]), + withDirectives(createVNode(unref(script$2), { + class: "mt-4", + label: _ctx.$t("g.reset"), + icon: "pi pi-trash", + severity: "danger", + fluid: "", + text: "", + onClick: resetKeybindings + }, null, 8, ["label"]), [ + [_directive_tooltip, _ctx.$t("g.resetKeybindingsTooltip")] + ]) + ]), + _: 1 + }); + }; + } +}); +const KeybindingPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2554ab36"]]); +export { + KeybindingPanel as default +}; +//# sourceMappingURL=KeybindingPanel-CxaJ1IiJ.js.map diff --git a/web/assets/KeybindingPanel-DvrUYZ4S.css b/web/assets/KeybindingPanel-DvrUYZ4S.css new file mode 100644 index 00000000..8f714bcd --- /dev/null +++ b/web/assets/KeybindingPanel-DvrUYZ4S.css @@ -0,0 +1,8 @@ + +[data-v-2554ab36] .p-datatable-tbody > tr > td { + padding: 0.25rem; + min-height: 2rem +} +[data-v-2554ab36] .p-datatable-row-selected .actions,[data-v-2554ab36] .p-datatable-selectable-row:hover .actions { + visibility: visible +} diff --git a/web/assets/KeybindingPanel-YkUFoiMw.js b/web/assets/KeybindingPanel-YkUFoiMw.js deleted file mode 100644 index 96fd7b55..00000000 --- a/web/assets/KeybindingPanel-YkUFoiMw.js +++ /dev/null @@ -1,264 +0,0 @@ -var __defProp = Object.defineProperty; -var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); -import { d as defineComponent, q as computed, g as openBlock, h as createElementBlock, M as Fragment, N as renderList, i as createVNode, y as withCtx, ap as createTextVNode, am as toDisplayString, z as unref, at as script, j as createCommentVNode, r as ref, bH as FilterMatchMode, K as useKeybindingStore, F as useCommandStore, aC as watchEffect, aZ as useToast, t as resolveDirective, bI as SearchBox, A as createBaseVNode, D as script$2, x as createBlock, af as script$4, b2 as withModifiers, aA as script$6, v as withDirectives, P as pushScopeId, Q as popScopeId, by as KeyComboImpl, bJ as KeybindingImpl, _ as _export_sfc } from "./index-CgU1oKZt.js"; -import { s as script$1, a as script$3, b as script$5 } from "./index-DBWDcZsl.js"; -import "./index-DYEEBf64.js"; -const _hoisted_1$1 = { - key: 0, - class: "px-2" -}; -const _sfc_main$1 = /* @__PURE__ */ defineComponent({ - __name: "KeyComboDisplay", - props: { - keyCombo: {}, - isModified: { type: Boolean, default: false } - }, - setup(__props) { - const props = __props; - const keySequences = computed(() => props.keyCombo.getKeySequences()); - return (_ctx, _cache) => { - return openBlock(), createElementBlock("span", null, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(keySequences.value, (sequence, index) => { - return openBlock(), createElementBlock(Fragment, { key: index }, [ - createVNode(unref(script), { - severity: _ctx.isModified ? "info" : "secondary" - }, { - default: withCtx(() => [ - createTextVNode(toDisplayString(sequence), 1) - ]), - _: 2 - }, 1032, ["severity"]), - index < keySequences.value.length - 1 ? (openBlock(), createElementBlock("span", _hoisted_1$1, "+")) : createCommentVNode("", true) - ], 64); - }), 128)) - ]); - }; - } -}); -const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-e5724e4d"), n = n(), popScopeId(), n), "_withScopeId"); -const _hoisted_1 = { class: "keybinding-panel" }; -const _hoisted_2 = { class: "actions invisible" }; -const _hoisted_3 = { key: 1 }; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "KeybindingPanel", - setup(__props) { - const filters = ref({ - global: { value: "", matchMode: FilterMatchMode.CONTAINS } - }); - const keybindingStore = useKeybindingStore(); - const commandStore = useCommandStore(); - const commandsData = computed(() => { - return Object.values(commandStore.commands).map((command) => ({ - id: command.id, - keybinding: keybindingStore.getKeybindingByCommandId(command.id) - })); - }); - const selectedCommandData = ref(null); - const editDialogVisible = ref(false); - const newBindingKeyCombo = ref(null); - const currentEditingCommand = ref(null); - const keybindingInput = ref(null); - const existingKeybindingOnCombo = computed(() => { - if (!currentEditingCommand.value) { - return null; - } - if (currentEditingCommand.value.keybinding?.combo?.equals( - newBindingKeyCombo.value - )) { - return null; - } - if (!newBindingKeyCombo.value) { - return null; - } - return keybindingStore.getKeybinding(newBindingKeyCombo.value); - }); - function editKeybinding(commandData) { - currentEditingCommand.value = commandData; - newBindingKeyCombo.value = commandData.keybinding ? commandData.keybinding.combo : null; - editDialogVisible.value = true; - } - __name(editKeybinding, "editKeybinding"); - watchEffect(() => { - if (editDialogVisible.value) { - setTimeout(() => { - keybindingInput.value?.$el?.focus(); - }, 300); - } - }); - function removeKeybinding(commandData) { - if (commandData.keybinding) { - keybindingStore.unsetKeybinding(commandData.keybinding); - keybindingStore.persistUserKeybindings(); - } - } - __name(removeKeybinding, "removeKeybinding"); - function captureKeybinding(event) { - const keyCombo = KeyComboImpl.fromEvent(event); - newBindingKeyCombo.value = keyCombo; - } - __name(captureKeybinding, "captureKeybinding"); - function cancelEdit() { - editDialogVisible.value = false; - currentEditingCommand.value = null; - newBindingKeyCombo.value = null; - } - __name(cancelEdit, "cancelEdit"); - function saveKeybinding() { - if (currentEditingCommand.value && newBindingKeyCombo.value) { - const updated = keybindingStore.updateKeybindingOnCommand( - new KeybindingImpl({ - commandId: currentEditingCommand.value.id, - combo: newBindingKeyCombo.value - }) - ); - if (updated) { - keybindingStore.persistUserKeybindings(); - } - } - cancelEdit(); - } - __name(saveKeybinding, "saveKeybinding"); - const toast = useToast(); - async function resetKeybindings() { - keybindingStore.resetKeybindings(); - await keybindingStore.persistUserKeybindings(); - toast.add({ - severity: "info", - summary: "Info", - detail: "Keybindings reset", - life: 3e3 - }); - } - __name(resetKeybindings, "resetKeybindings"); - return (_ctx, _cache) => { - const _directive_tooltip = resolveDirective("tooltip"); - return openBlock(), createElementBlock("div", _hoisted_1, [ - createVNode(unref(script$3), { - value: commandsData.value, - selection: selectedCommandData.value, - "onUpdate:selection": _cache[1] || (_cache[1] = ($event) => selectedCommandData.value = $event), - "global-filter-fields": ["id"], - filters: filters.value, - selectionMode: "single", - stripedRows: "", - pt: { - header: "px-0" - } - }, { - header: withCtx(() => [ - createVNode(SearchBox, { - modelValue: filters.value["global"].value, - "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => filters.value["global"].value = $event), - placeholder: _ctx.$t("searchKeybindings") + "..." - }, null, 8, ["modelValue", "placeholder"]) - ]), - default: withCtx(() => [ - createVNode(unref(script$1), { - field: "actions", - header: "" - }, { - body: withCtx((slotProps) => [ - createBaseVNode("div", _hoisted_2, [ - createVNode(unref(script$2), { - icon: "pi pi-pencil", - class: "p-button-text", - onClick: /* @__PURE__ */ __name(($event) => editKeybinding(slotProps.data), "onClick") - }, null, 8, ["onClick"]), - createVNode(unref(script$2), { - icon: "pi pi-trash", - class: "p-button-text p-button-danger", - onClick: /* @__PURE__ */ __name(($event) => removeKeybinding(slotProps.data), "onClick"), - disabled: !slotProps.data.keybinding - }, null, 8, ["onClick", "disabled"]) - ]) - ]), - _: 1 - }), - createVNode(unref(script$1), { - field: "id", - header: "Command ID", - sortable: "" - }), - createVNode(unref(script$1), { - field: "keybinding", - header: "Keybinding" - }, { - body: withCtx((slotProps) => [ - slotProps.data.keybinding ? (openBlock(), createBlock(_sfc_main$1, { - key: 0, - keyCombo: slotProps.data.keybinding.combo, - isModified: unref(keybindingStore).isCommandKeybindingModified(slotProps.data.id) - }, null, 8, ["keyCombo", "isModified"])) : (openBlock(), createElementBlock("span", _hoisted_3, "-")) - ]), - _: 1 - }) - ]), - _: 1 - }, 8, ["value", "selection", "filters"]), - createVNode(unref(script$6), { - class: "min-w-96", - visible: editDialogVisible.value, - "onUpdate:visible": _cache[2] || (_cache[2] = ($event) => editDialogVisible.value = $event), - modal: "", - header: currentEditingCommand.value?.id, - onHide: cancelEdit - }, { - footer: withCtx(() => [ - createVNode(unref(script$2), { - label: "Save", - icon: "pi pi-check", - onClick: saveKeybinding, - disabled: !!existingKeybindingOnCombo.value, - autofocus: "" - }, null, 8, ["disabled"]) - ]), - default: withCtx(() => [ - createBaseVNode("div", null, [ - createVNode(unref(script$4), { - class: "mb-2 text-center", - ref_key: "keybindingInput", - ref: keybindingInput, - modelValue: newBindingKeyCombo.value?.toString() ?? "", - placeholder: "Press keys for new binding", - onKeydown: withModifiers(captureKeybinding, ["stop", "prevent"]), - autocomplete: "off", - fluid: "", - invalid: !!existingKeybindingOnCombo.value - }, null, 8, ["modelValue", "invalid"]), - existingKeybindingOnCombo.value ? (openBlock(), createBlock(unref(script$5), { - key: 0, - severity: "error" - }, { - default: withCtx(() => [ - createTextVNode(" Keybinding already exists on "), - createVNode(unref(script), { - severity: "secondary", - value: existingKeybindingOnCombo.value.commandId - }, null, 8, ["value"]) - ]), - _: 1 - })) : createCommentVNode("", true) - ]) - ]), - _: 1 - }, 8, ["visible", "header"]), - withDirectives(createVNode(unref(script$2), { - class: "mt-4", - label: _ctx.$t("reset"), - icon: "pi pi-trash", - severity: "danger", - fluid: "", - text: "", - onClick: resetKeybindings - }, null, 8, ["label"]), [ - [_directive_tooltip, _ctx.$t("resetKeybindingsTooltip")] - ]) - ]); - }; - } -}); -const KeybindingPanel = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e5724e4d"]]); -export { - KeybindingPanel as default -}; -//# sourceMappingURL=KeybindingPanel-YkUFoiMw.js.map diff --git a/web/assets/KeybindingPanel-YkUFoiMw.js.map b/web/assets/KeybindingPanel-YkUFoiMw.js.map deleted file mode 100644 index 57aa6603..00000000 --- a/web/assets/KeybindingPanel-YkUFoiMw.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"KeybindingPanel-YkUFoiMw.js","sources":["../../src/components/dialog/content/setting/keybinding/KeyComboDisplay.vue","../../src/components/dialog/content/setting/KeybindingPanel.vue"],"sourcesContent":["\n\n\n","\n\n\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAgBA,UAAM,QAAQ;AAUd,UAAM,eAAe,SAAS,MAAM,MAAM,SAAS,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;AC8FpE,UAAM,UAAU,IAAI;AAAA,MAClB,QAAQ,EAAE,OAAO,IAAI,WAAW,gBAAgB,SAAS;AAAA,IAAA,CAC1D;AAED,UAAM,kBAAkB;AACxB,UAAM,eAAe;AAOf,UAAA,eAAe,SAAyB,MAAM;AAClD,aAAO,OAAO,OAAO,aAAa,QAAQ,EAAE,IAAI,CAAC,aAAa;AAAA,QAC5D,IAAI,QAAQ;AAAA,QACZ,YAAY,gBAAgB,yBAAyB,QAAQ,EAAE;AAAA,MAC/D,EAAA;AAAA,IAAA,CACH;AAEK,UAAA,sBAAsB,IAAyB,IAAI;AACnD,UAAA,oBAAoB,IAAI,KAAK;AAC7B,UAAA,qBAAqB,IAAyB,IAAI;AAClD,UAAA,wBAAwB,IAAyB,IAAI;AACrD,UAAA,kBAAkB,IAAI,IAAI;AAE1B,UAAA,4BAA4B,SAAgC,MAAM;AAClE,UAAA,CAAC,sBAAsB,OAAO;AACzB,eAAA;AAAA,MACT;AAIE,UAAA,sBAAsB,MAAM,YAAY,OAAO;AAAA,QAC7C,mBAAmB;AAAA,MAAA,GAErB;AACO,eAAA;AAAA,MACT;AAEI,UAAA,CAAC,mBAAmB,OAAO;AACtB,eAAA;AAAA,MACT;AAEO,aAAA,gBAAgB,cAAc,mBAAmB,KAAK;AAAA,IAAA,CAC9D;AAED,aAAS,eAAe,aAA2B;AACjD,4BAAsB,QAAQ;AAC9B,yBAAmB,QAAQ,YAAY,aACnC,YAAY,WAAW,QACvB;AACJ,wBAAkB,QAAQ;AAAA,IAC5B;AANS;AAQT,gBAAY,MAAM;AAChB,UAAI,kBAAkB,OAAO;AAE3B,mBAAW,MAAM;AACC,0BAAA,OAAO,KAAK;WAC3B,GAAG;AAAA,MACR;AAAA,IAAA,CACD;AAED,aAAS,iBAAiB,aAA2B;AACnD,UAAI,YAAY,YAAY;AACV,wBAAA,gBAAgB,YAAY,UAAU;AACtD,wBAAgB,uBAAuB;AAAA,MACzC;AAAA,IACF;AALS;AAOT,aAAS,kBAAkB,OAAsB;AACzC,YAAA,WAAW,aAAa,UAAU,KAAK;AAC7C,yBAAmB,QAAQ;AAAA,IAC7B;AAHS;AAKT,aAAS,aAAa;AACpB,wBAAkB,QAAQ;AAC1B,4BAAsB,QAAQ;AAC9B,yBAAmB,QAAQ;AAAA,IAC7B;AAJS;AAMT,aAAS,iBAAiB;AACpB,UAAA,sBAAsB,SAAS,mBAAmB,OAAO;AAC3D,cAAM,UAAU,gBAAgB;AAAA,UAC9B,IAAI,eAAe;AAAA,YACjB,WAAW,sBAAsB,MAAM;AAAA,YACvC,OAAO,mBAAmB;AAAA,UAAA,CAC3B;AAAA,QAAA;AAEH,YAAI,SAAS;AACX,0BAAgB,uBAAuB;AAAA,QACzC;AAAA,MACF;AACW;IACb;AAbS;AAeT,UAAM,QAAQ;AACd,mBAAe,mBAAmB;AAChC,sBAAgB,iBAAiB;AACjC,YAAM,gBAAgB;AACtB,YAAM,IAAI;AAAA,QACR,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,MAAM;AAAA,MAAA,CACP;AAAA,IACH;AATe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/web/assets/ManualConfigurationView-B6ecEClB.css b/web/assets/ManualConfigurationView-B6ecEClB.css new file mode 100644 index 00000000..06a5cc3e --- /dev/null +++ b/web/assets/ManualConfigurationView-B6ecEClB.css @@ -0,0 +1,7 @@ + +:root { + --p-tag-gap: 0.5rem; +} +.comfy-installer { + margin-top: max(1rem, max(0px, calc((100vh - 42rem) * 0.5))); +} diff --git a/web/assets/ManualConfigurationView-BA4Vtud8.js b/web/assets/ManualConfigurationView-BA4Vtud8.js new file mode 100644 index 00000000..122da4e9 --- /dev/null +++ b/web/assets/ManualConfigurationView-BA4Vtud8.js @@ -0,0 +1,75 @@ +var __defProp = Object.defineProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +import { d as defineComponent, a1 as useI18n, ab as ref, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, aI as script, l as script$2, c0 as electronAPI } from "./index-C4Fk50Nx.js"; +import { s as script$1 } from "./index-hdfnBvYs.js"; +import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js"; +import "./index-B7ycxfFq.js"; +const _hoisted_1 = { class: "comfy-installer grow flex flex-col gap-4 text-neutral-300 max-w-110" }; +const _hoisted_2 = { class: "text-2xl font-semibold text-neutral-100" }; +const _hoisted_3 = { class: "m-1 text-neutral-300" }; +const _hoisted_4 = { class: "ml-2" }; +const _hoisted_5 = { class: "m-1 mb-4" }; +const _hoisted_6 = { class: "m-0" }; +const _hoisted_7 = { class: "m-1" }; +const _hoisted_8 = { class: "font-mono" }; +const _hoisted_9 = { class: "m-1" }; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "ManualConfigurationView", + setup(__props) { + const { t } = useI18n(); + const electron = electronAPI(); + const basePath = ref(null); + const sep = ref("/"); + const restartApp = /* @__PURE__ */ __name((message) => electron.restartApp(message), "restartApp"); + onMounted(async () => { + basePath.value = await electron.getBasePath(); + if (basePath.value.indexOf("/") === -1) sep.value = "\\"; + }); + return (_ctx, _cache) => { + return openBlock(), createBlock(_sfc_main$1, { dark: "" }, { + default: withCtx(() => [ + createBaseVNode("div", _hoisted_1, [ + createBaseVNode("h2", _hoisted_2, toDisplayString(_ctx.$t("install.manualConfiguration.title")), 1), + createBaseVNode("p", _hoisted_3, [ + createVNode(unref(script), { + icon: "pi pi-exclamation-triangle", + severity: "warn", + value: unref(t)("icon.exclamation-triangle") + }, null, 8, ["value"]), + createBaseVNode("strong", _hoisted_4, toDisplayString(_ctx.$t("install.gpuSelection.customComfyNeedsPython")), 1) + ]), + createBaseVNode("div", null, [ + createBaseVNode("p", _hoisted_5, toDisplayString(_ctx.$t("install.manualConfiguration.requirements")) + ": ", 1), + createBaseVNode("ul", _hoisted_6, [ + createBaseVNode("li", null, toDisplayString(_ctx.$t("install.gpuSelection.customManualVenv")), 1), + createBaseVNode("li", null, toDisplayString(_ctx.$t("install.gpuSelection.customInstallRequirements")), 1) + ]) + ]), + createBaseVNode("p", _hoisted_7, toDisplayString(_ctx.$t("install.manualConfiguration.createVenv")) + ":", 1), + createVNode(unref(script$1), { + header: unref(t)("install.manualConfiguration.virtualEnvironmentPath") + }, { + default: withCtx(() => [ + createBaseVNode("span", _hoisted_8, toDisplayString(`${basePath.value}${sep.value}.venv${sep.value}`), 1) + ]), + _: 1 + }, 8, ["header"]), + createBaseVNode("p", _hoisted_9, toDisplayString(_ctx.$t("install.manualConfiguration.restartWhenFinished")), 1), + createVNode(unref(script$2), { + class: "place-self-end", + label: unref(t)("menuLabels.Restart"), + severity: "warn", + icon: "pi pi-refresh", + onClick: _cache[0] || (_cache[0] = ($event) => restartApp("Manual configuration complete")) + }, null, 8, ["label"]) + ]) + ]), + _: 1 + }); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=ManualConfigurationView-BA4Vtud8.js.map diff --git a/web/assets/NotSupportedView-CRaD8u74.js b/web/assets/NotSupportedView-CRaD8u74.js new file mode 100644 index 00000000..07e3eca6 --- /dev/null +++ b/web/assets/NotSupportedView-CRaD8u74.js @@ -0,0 +1,86 @@ +var __defProp = Object.defineProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +import { d as defineComponent, bW as useRouter, r as resolveDirective, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, i as withDirectives } from "./index-C4Fk50Nx.js"; +import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js"; +const _imports_0 = "" + new URL("images/sad_girl.png", import.meta.url).href; +const _hoisted_1 = { class: "sad-container" }; +const _hoisted_2 = /* @__PURE__ */ createBaseVNode("img", { + class: "sad-girl", + src: _imports_0, + alt: "Sad girl illustration" +}, null, -1); +const _hoisted_3 = { class: "no-drag sad-text flex items-center" }; +const _hoisted_4 = { class: "flex flex-col gap-8 p-8 min-w-110" }; +const _hoisted_5 = { class: "text-4xl font-bold text-red-500" }; +const _hoisted_6 = { class: "space-y-4" }; +const _hoisted_7 = { class: "text-xl" }; +const _hoisted_8 = { class: "list-disc list-inside space-y-1 text-neutral-800" }; +const _hoisted_9 = { class: "flex gap-4" }; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "NotSupportedView", + setup(__props) { + const openDocs = /* @__PURE__ */ __name(() => { + window.open( + "https://github.com/Comfy-Org/desktop#currently-supported-platforms", + "_blank" + ); + }, "openDocs"); + const reportIssue = /* @__PURE__ */ __name(() => { + window.open("https://forum.comfy.org/c/v1-feedback/", "_blank"); + }, "reportIssue"); + const router = useRouter(); + const continueToInstall = /* @__PURE__ */ __name(() => { + router.push("/install"); + }, "continueToInstall"); + return (_ctx, _cache) => { + const _directive_tooltip = resolveDirective("tooltip"); + return openBlock(), createBlock(_sfc_main$1, null, { + default: withCtx(() => [ + createBaseVNode("div", _hoisted_1, [ + _hoisted_2, + createBaseVNode("div", _hoisted_3, [ + createBaseVNode("div", _hoisted_4, [ + createBaseVNode("h1", _hoisted_5, toDisplayString(_ctx.$t("notSupported.title")), 1), + createBaseVNode("div", _hoisted_6, [ + createBaseVNode("p", _hoisted_7, toDisplayString(_ctx.$t("notSupported.message")), 1), + createBaseVNode("ul", _hoisted_8, [ + createBaseVNode("li", null, toDisplayString(_ctx.$t("notSupported.supportedDevices.macos")), 1), + createBaseVNode("li", null, toDisplayString(_ctx.$t("notSupported.supportedDevices.windows")), 1) + ]) + ]), + createBaseVNode("div", _hoisted_9, [ + createVNode(unref(script), { + label: _ctx.$t("notSupported.learnMore"), + icon: "pi pi-github", + onClick: openDocs, + severity: "secondary" + }, null, 8, ["label"]), + createVNode(unref(script), { + label: _ctx.$t("notSupported.reportIssue"), + icon: "pi pi-flag", + onClick: reportIssue, + severity: "secondary" + }, null, 8, ["label"]), + withDirectives(createVNode(unref(script), { + label: _ctx.$t("notSupported.continue"), + icon: "pi pi-arrow-right", + iconPos: "right", + onClick: continueToInstall, + severity: "danger" + }, null, 8, ["label"]), [ + [_directive_tooltip, _ctx.$t("notSupported.continueTooltip")] + ]) + ]) + ]) + ]) + ]) + ]), + _: 1 + }); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=NotSupportedView-CRaD8u74.js.map diff --git a/web/assets/NotSupportedView-bFzHmqNj.css b/web/assets/NotSupportedView-bFzHmqNj.css new file mode 100644 index 00000000..80ac3298 --- /dev/null +++ b/web/assets/NotSupportedView-bFzHmqNj.css @@ -0,0 +1,17 @@ + +.sad-container { + display: grid; + align-items: center; + justify-content: space-evenly; + grid-template-columns: 25rem 1fr; +& > * { + grid-row: 1; +} +} +.sad-text { + grid-column: 1/3; +} +.sad-girl { + grid-column: 2/3; + width: min(75vw, 100vh); +} diff --git a/web/assets/ServerConfigPanel-TLv4HMGK.js b/web/assets/ServerConfigPanel-TLv4HMGK.js new file mode 100644 index 00000000..6489eb66 --- /dev/null +++ b/web/assets/ServerConfigPanel-TLv4HMGK.js @@ -0,0 +1,158 @@ +var __defProp = Object.defineProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +import { H as createBaseVNode, o as openBlock, f as createElementBlock, Z as markRaw, d as defineComponent, a as useSettingStore, aS as storeToRefs, a5 as watch, cO as useCopyToClipboard, a1 as useI18n, k as createBlock, M as withCtx, j as unref, bZ as script, X as toDisplayString, E as renderList, F as Fragment, N as createVNode, l as script$1, I as createCommentVNode, bQ as script$2, cP as FormItem, cp as _sfc_main$1, c0 as electronAPI } from "./index-C4Fk50Nx.js"; +import { u as useServerConfigStore } from "./serverConfigStore-BawYAb1j.js"; +const _hoisted_1$1 = { + viewBox: "0 0 24 24", + width: "1.2em", + height: "1.2em" +}; +const _hoisted_2$1 = /* @__PURE__ */ createBaseVNode("path", { + fill: "none", + stroke: "currentColor", + "stroke-linecap": "round", + "stroke-linejoin": "round", + "stroke-width": "2", + d: "m4 17l6-6l-6-6m8 14h8" +}, null, -1); +const _hoisted_3$1 = [ + _hoisted_2$1 +]; +function render(_ctx, _cache) { + return openBlock(), createElementBlock("svg", _hoisted_1$1, [..._hoisted_3$1]); +} +__name(render, "render"); +const __unplugin_components_0 = markRaw({ name: "lucide-terminal", render }); +const _hoisted_1 = { class: "flex flex-col gap-2" }; +const _hoisted_2 = { class: "flex justify-end gap-2" }; +const _hoisted_3 = { class: "flex items-center justify-between" }; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "ServerConfigPanel", + setup(__props) { + const settingStore = useSettingStore(); + const serverConfigStore = useServerConfigStore(); + const { + serverConfigsByCategory, + serverConfigValues, + launchArgs, + commandLineArgs, + modifiedConfigs + } = storeToRefs(serverConfigStore); + const revertChanges = /* @__PURE__ */ __name(() => { + serverConfigStore.revertChanges(); + }, "revertChanges"); + const restartApp = /* @__PURE__ */ __name(() => { + electronAPI().restartApp(); + }, "restartApp"); + watch(launchArgs, (newVal) => { + settingStore.set("Comfy.Server.LaunchArgs", newVal); + }); + watch(serverConfigValues, (newVal) => { + settingStore.set("Comfy.Server.ServerConfigValues", newVal); + }); + const { copyToClipboard } = useCopyToClipboard(); + const copyCommandLineArgs = /* @__PURE__ */ __name(async () => { + await copyToClipboard(commandLineArgs.value); + }, "copyCommandLineArgs"); + const { t } = useI18n(); + const translateItem = /* @__PURE__ */ __name((item) => { + return { + ...item, + name: t(`serverConfigItems.${item.id}.name`, item.name), + tooltip: item.tooltip ? t(`serverConfigItems.${item.id}.tooltip`, item.tooltip) : void 0 + }; + }, "translateItem"); + return (_ctx, _cache) => { + const _component_i_lucide58terminal = __unplugin_components_0; + return openBlock(), createBlock(_sfc_main$1, { + value: "Server-Config", + class: "server-config-panel" + }, { + header: withCtx(() => [ + createBaseVNode("div", _hoisted_1, [ + unref(modifiedConfigs).length > 0 ? (openBlock(), createBlock(unref(script), { + key: 0, + severity: "info", + "pt:text": "w-full" + }, { + default: withCtx(() => [ + createBaseVNode("p", null, toDisplayString(_ctx.$t("serverConfig.modifiedConfigs")), 1), + createBaseVNode("ul", null, [ + (openBlock(true), createElementBlock(Fragment, null, renderList(unref(modifiedConfigs), (config) => { + return openBlock(), createElementBlock("li", { + key: config.id + }, toDisplayString(config.name) + ": " + toDisplayString(config.initialValue) + " → " + toDisplayString(config.value), 1); + }), 128)) + ]), + createBaseVNode("div", _hoisted_2, [ + createVNode(unref(script$1), { + label: _ctx.$t("serverConfig.revertChanges"), + onClick: revertChanges, + outlined: "" + }, null, 8, ["label"]), + createVNode(unref(script$1), { + label: _ctx.$t("serverConfig.restart"), + onClick: restartApp, + outlined: "", + severity: "danger" + }, null, 8, ["label"]) + ]) + ]), + _: 1 + })) : createCommentVNode("", true), + unref(commandLineArgs) ? (openBlock(), createBlock(unref(script), { + key: 1, + severity: "secondary", + "pt:text": "w-full" + }, { + icon: withCtx(() => [ + createVNode(_component_i_lucide58terminal, { class: "text-xl font-bold" }) + ]), + default: withCtx(() => [ + createBaseVNode("div", _hoisted_3, [ + createBaseVNode("p", null, toDisplayString(unref(commandLineArgs)), 1), + createVNode(unref(script$1), { + icon: "pi pi-clipboard", + onClick: copyCommandLineArgs, + severity: "secondary", + text: "" + }) + ]) + ]), + _: 1 + })) : createCommentVNode("", true) + ]) + ]), + default: withCtx(() => [ + (openBlock(true), createElementBlock(Fragment, null, renderList(Object.entries(unref(serverConfigsByCategory)), ([label, items], i) => { + return openBlock(), createElementBlock("div", { key: label }, [ + i > 0 ? (openBlock(), createBlock(unref(script$2), { key: 0 })) : createCommentVNode("", true), + createBaseVNode("h3", null, toDisplayString(_ctx.$t(`serverConfigCategories.${label}`, label)), 1), + (openBlock(true), createElementBlock(Fragment, null, renderList(items, (item) => { + return openBlock(), createElementBlock("div", { + key: item.name, + class: "mb-4" + }, [ + createVNode(FormItem, { + item: translateItem(item), + formValue: item.value, + "onUpdate:formValue": /* @__PURE__ */ __name(($event) => item.value = $event, "onUpdate:formValue"), + id: item.id, + labelClass: { + "text-highlight": item.initialValue !== item.value + } + }, null, 8, ["item", "formValue", "onUpdate:formValue", "id", "labelClass"]) + ]); + }), 128)) + ]); + }), 128)) + ]), + _: 1 + }); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=ServerConfigPanel-TLv4HMGK.js.map diff --git a/web/assets/ServerStartView-CiO_acWT.js b/web/assets/ServerStartView-CiO_acWT.js new file mode 100644 index 00000000..1abcb36a --- /dev/null +++ b/web/assets/ServerStartView-CiO_acWT.js @@ -0,0 +1,98 @@ +var __defProp = Object.defineProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +import { d as defineComponent, a1 as useI18n, ab as ref, b_ as ProgressStatus, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, aE as createTextVNode, X as toDisplayString, j as unref, f as createElementBlock, I as createCommentVNode, N as createVNode, l as script, i as withDirectives, v as vShow, b$ as BaseTerminal, aL as pushScopeId, aM as popScopeId, c0 as electronAPI, _ as _export_sfc } from "./index-C4Fk50Nx.js"; +import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js"; +const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-42c1131d"), n = n(), popScopeId(), n), "_withScopeId"); +const _hoisted_1 = { class: "text-2xl font-bold" }; +const _hoisted_2 = { key: 0 }; +const _hoisted_3 = { + key: 0, + class: "flex flex-col items-center gap-4" +}; +const _hoisted_4 = { class: "flex items-center my-4 gap-2" }; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "ServerStartView", + setup(__props) { + const electron = electronAPI(); + const { t } = useI18n(); + const status = ref(ProgressStatus.INITIAL_STATE); + const electronVersion = ref(""); + let xterm; + const terminalVisible = ref(true); + const updateProgress = /* @__PURE__ */ __name(({ status: newStatus }) => { + status.value = newStatus; + if (newStatus === ProgressStatus.ERROR) terminalVisible.value = false; + else xterm?.clear(); + }, "updateProgress"); + const terminalCreated = /* @__PURE__ */ __name(({ terminal, useAutoSize }, root) => { + xterm = terminal; + useAutoSize(root, true, true); + electron.onLogMessage((message) => { + terminal.write(message); + }); + terminal.options.cursorBlink = false; + terminal.options.disableStdin = true; + terminal.options.cursorInactiveStyle = "block"; + }, "terminalCreated"); + const reinstall = /* @__PURE__ */ __name(() => electron.reinstall(), "reinstall"); + const reportIssue = /* @__PURE__ */ __name(() => { + window.open("https://forum.comfy.org/c/v1-feedback/", "_blank"); + }, "reportIssue"); + const openLogs = /* @__PURE__ */ __name(() => electron.openLogsFolder(), "openLogs"); + onMounted(async () => { + electron.sendReady(); + electron.onProgressUpdate(updateProgress); + electronVersion.value = await electron.getElectronVersion(); + }); + return (_ctx, _cache) => { + return openBlock(), createBlock(_sfc_main$1, { + dark: "", + class: "flex-col" + }, { + default: withCtx(() => [ + createBaseVNode("h2", _hoisted_1, [ + createTextVNode(toDisplayString(unref(t)(`serverStart.process.${status.value}`)) + " ", 1), + status.value === unref(ProgressStatus).ERROR ? (openBlock(), createElementBlock("span", _hoisted_2, " v" + toDisplayString(electronVersion.value), 1)) : createCommentVNode("", true) + ]), + status.value === unref(ProgressStatus).ERROR ? (openBlock(), createElementBlock("div", _hoisted_3, [ + createBaseVNode("div", _hoisted_4, [ + createVNode(unref(script), { + icon: "pi pi-flag", + severity: "secondary", + label: unref(t)("serverStart.reportIssue"), + onClick: reportIssue + }, null, 8, ["label"]), + createVNode(unref(script), { + icon: "pi pi-file", + severity: "secondary", + label: unref(t)("serverStart.openLogs"), + onClick: openLogs + }, null, 8, ["label"]), + createVNode(unref(script), { + icon: "pi pi-refresh", + label: unref(t)("serverStart.reinstall"), + onClick: reinstall + }, null, 8, ["label"]) + ]), + !terminalVisible.value ? (openBlock(), createBlock(unref(script), { + key: 0, + icon: "pi pi-search", + severity: "secondary", + label: unref(t)("serverStart.showTerminal"), + onClick: _cache[0] || (_cache[0] = ($event) => terminalVisible.value = true) + }, null, 8, ["label"])) : createCommentVNode("", true) + ])) : createCommentVNode("", true), + withDirectives(createVNode(BaseTerminal, { onCreated: terminalCreated }, null, 512), [ + [vShow, terminalVisible.value] + ]) + ]), + _: 1 + }); + }; + } +}); +const ServerStartView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-42c1131d"]]); +export { + ServerStartView as default +}; +//# sourceMappingURL=ServerStartView-CiO_acWT.js.map diff --git a/web/assets/ServerStartView-CnyN4Ib6.css b/web/assets/ServerStartView-CnyN4Ib6.css new file mode 100644 index 00000000..60a63414 --- /dev/null +++ b/web/assets/ServerStartView-CnyN4Ib6.css @@ -0,0 +1,5 @@ + +[data-v-42c1131d] .xterm-helper-textarea { + /* Hide this as it moves all over when uv is running */ + display: none; +} diff --git a/web/assets/UserSelectView-2l9Kbchu.js b/web/assets/UserSelectView-2l9Kbchu.js new file mode 100644 index 00000000..554218e5 --- /dev/null +++ b/web/assets/UserSelectView-2l9Kbchu.js @@ -0,0 +1,102 @@ +var __defProp = Object.defineProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +import { d as defineComponent, aX as useUserStore, bW as useRouter, ab as ref, c as computed, m as onMounted, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, bX as withKeys, j as unref, av as script, bQ as script$1, bY as script$2, bZ as script$3, aE as createTextVNode, I as createCommentVNode, l as script$4 } from "./index-C4Fk50Nx.js"; +import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js"; +const _hoisted_1 = { + id: "comfy-user-selection", + class: "min-w-84 relative rounded-lg bg-[var(--comfy-menu-bg)] p-5 px-10 shadow-lg" +}; +const _hoisted_2 = /* @__PURE__ */ createBaseVNode("h1", { class: "my-2.5 mb-7 font-normal" }, "ComfyUI", -1); +const _hoisted_3 = { class: "flex w-full flex-col items-center" }; +const _hoisted_4 = { class: "flex w-full flex-col gap-2" }; +const _hoisted_5 = { for: "new-user-input" }; +const _hoisted_6 = { class: "flex w-full flex-col gap-2" }; +const _hoisted_7 = { for: "existing-user-select" }; +const _hoisted_8 = { class: "mt-5" }; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "UserSelectView", + setup(__props) { + const userStore = useUserStore(); + const router = useRouter(); + const selectedUser = ref(null); + const newUsername = ref(""); + const loginError = ref(""); + const createNewUser = computed(() => newUsername.value.trim() !== ""); + const newUserExistsError = computed(() => { + return userStore.users.find((user) => user.username === newUsername.value) ? `User "${newUsername.value}" already exists` : ""; + }); + const error = computed(() => newUserExistsError.value || loginError.value); + const login = /* @__PURE__ */ __name(async () => { + try { + const user = createNewUser.value ? await userStore.createUser(newUsername.value) : selectedUser.value; + if (!user) { + throw new Error("No user selected"); + } + userStore.login(user); + router.push("/"); + } catch (err) { + loginError.value = err.message ?? JSON.stringify(err); + } + }, "login"); + onMounted(async () => { + if (!userStore.initialized) { + await userStore.initialize(); + } + }); + return (_ctx, _cache) => { + return openBlock(), createBlock(_sfc_main$1, { dark: "" }, { + default: withCtx(() => [ + createBaseVNode("main", _hoisted_1, [ + _hoisted_2, + createBaseVNode("div", _hoisted_3, [ + createBaseVNode("div", _hoisted_4, [ + createBaseVNode("label", _hoisted_5, toDisplayString(_ctx.$t("userSelect.newUser")) + ":", 1), + createVNode(unref(script), { + id: "new-user-input", + modelValue: newUsername.value, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => newUsername.value = $event), + placeholder: _ctx.$t("userSelect.enterUsername"), + onKeyup: withKeys(login, ["enter"]) + }, null, 8, ["modelValue", "placeholder"]) + ]), + createVNode(unref(script$1)), + createBaseVNode("div", _hoisted_6, [ + createBaseVNode("label", _hoisted_7, toDisplayString(_ctx.$t("userSelect.existingUser")) + ":", 1), + createVNode(unref(script$2), { + modelValue: selectedUser.value, + "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => selectedUser.value = $event), + class: "w-full", + inputId: "existing-user-select", + options: unref(userStore).users, + "option-label": "username", + placeholder: _ctx.$t("userSelect.selectUser"), + disabled: createNewUser.value + }, null, 8, ["modelValue", "options", "placeholder", "disabled"]), + error.value ? (openBlock(), createBlock(unref(script$3), { + key: 0, + severity: "error" + }, { + default: withCtx(() => [ + createTextVNode(toDisplayString(error.value), 1) + ]), + _: 1 + })) : createCommentVNode("", true) + ]), + createBaseVNode("footer", _hoisted_8, [ + createVNode(unref(script$4), { + label: _ctx.$t("userSelect.next"), + onClick: login + }, null, 8, ["label"]) + ]) + ]) + ]) + ]), + _: 1 + }); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=UserSelectView-2l9Kbchu.js.map diff --git a/web/assets/WelcomeView-Brz3-luE.css b/web/assets/WelcomeView-Brz3-luE.css new file mode 100644 index 00000000..522f3438 --- /dev/null +++ b/web/assets/WelcomeView-Brz3-luE.css @@ -0,0 +1,36 @@ + +.animated-gradient-text[data-v-7dfaf74c] { + font-weight: 700; + font-size: clamp(2rem, 8vw, 4rem); + background: linear-gradient(to right, #12c2e9, #c471ed, #f64f59, #12c2e9); + background-size: 300% auto; + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + animation: gradient-7dfaf74c 8s linear infinite; +} +.text-glow[data-v-7dfaf74c] { + filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.3)); +} +@keyframes gradient-7dfaf74c { +0% { + background-position: 0% center; +} +100% { + background-position: 300% center; +} +} +.fade-in-up[data-v-7dfaf74c] { + animation: fadeInUp-7dfaf74c 1.5s ease-out; + animation-fill-mode: both; +} +@keyframes fadeInUp-7dfaf74c { +0% { + opacity: 0; + transform: translateY(20px); +} +100% { + opacity: 1; + transform: translateY(0); +} +} diff --git a/web/assets/WelcomeView-CB7Th_kO.js b/web/assets/WelcomeView-CB7Th_kO.js new file mode 100644 index 00000000..d5adbd55 --- /dev/null +++ b/web/assets/WelcomeView-CB7Th_kO.js @@ -0,0 +1,40 @@ +var __defProp = Object.defineProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +import { d as defineComponent, bW as useRouter, o as openBlock, k as createBlock, M as withCtx, H as createBaseVNode, X as toDisplayString, N as createVNode, j as unref, l as script, aL as pushScopeId, aM as popScopeId, _ as _export_sfc } from "./index-C4Fk50Nx.js"; +import { _ as _sfc_main$1 } from "./BaseViewTemplate-CsEJhGbv.js"; +const _withScopeId = /* @__PURE__ */ __name((n) => (pushScopeId("data-v-7dfaf74c"), n = n(), popScopeId(), n), "_withScopeId"); +const _hoisted_1 = { class: "flex flex-col items-center justify-center gap-8 p-8" }; +const _hoisted_2 = { class: "animated-gradient-text text-glow select-none" }; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "WelcomeView", + setup(__props) { + const router = useRouter(); + const navigateTo = /* @__PURE__ */ __name((path) => { + router.push(path); + }, "navigateTo"); + return (_ctx, _cache) => { + return openBlock(), createBlock(_sfc_main$1, { dark: "" }, { + default: withCtx(() => [ + createBaseVNode("div", _hoisted_1, [ + createBaseVNode("h1", _hoisted_2, toDisplayString(_ctx.$t("welcome.title")), 1), + createVNode(unref(script), { + label: _ctx.$t("welcome.getStarted"), + icon: "pi pi-arrow-right", + iconPos: "right", + size: "large", + rounded: "", + onClick: _cache[0] || (_cache[0] = ($event) => navigateTo("/install")), + class: "p-4 text-lg fade-in-up" + }, null, 8, ["label"]) + ]) + ]), + _: 1 + }); + }; + } +}); +const WelcomeView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7dfaf74c"]]); +export { + WelcomeView as default +}; +//# sourceMappingURL=WelcomeView-CB7Th_kO.js.map diff --git a/web/assets/images/Git-Logo-White.svg b/web/assets/images/Git-Logo-White.svg new file mode 100644 index 00000000..f2961b94 --- /dev/null +++ b/web/assets/images/Git-Logo-White.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web/assets/images/apple-mps-logo.png b/web/assets/images/apple-mps-logo.png new file mode 100644 index 00000000..261edbfd Binary files /dev/null and b/web/assets/images/apple-mps-logo.png differ diff --git a/web/assets/images/manual-configuration.svg b/web/assets/images/manual-configuration.svg new file mode 100644 index 00000000..bc90c647 --- /dev/null +++ b/web/assets/images/manual-configuration.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/web/assets/images/nvidia-logo.svg b/web/assets/images/nvidia-logo.svg new file mode 100644 index 00000000..71f15b53 --- /dev/null +++ b/web/assets/images/nvidia-logo.svg @@ -0,0 +1,6 @@ + Artificial Intelligence Computing Leadership from NVIDIA + + + + + \ No newline at end of file diff --git a/web/assets/images/sad_girl.png b/web/assets/images/sad_girl.png new file mode 100644 index 00000000..2b0925a6 Binary files /dev/null and b/web/assets/images/sad_girl.png differ diff --git a/web/assets/index-5Sv744Dr.js b/web/assets/index-5Sv744Dr.js new file mode 100644 index 00000000..5ec1cf8e --- /dev/null +++ b/web/assets/index-5Sv744Dr.js @@ -0,0 +1,53214 @@ +var __defProp = Object.defineProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +import { ca as ComfyDialog, cb as $el, cc as ComfyApp, h as app, a3 as LiteGraph, bd as LGraphCanvas, cd as useExtensionService, ce as processDynamicPrompt, cf as isElectron, c0 as electronAPI, bR as useDialogService, cg as t, ch as DraggableList, bt as useToastStore, ah as LGraphNode, ci as applyTextReplacements, cj as ComfyWidgets, ck as addValueControlWidgets, a6 as useNodeDefStore, cl as serialise, cm as deserialiseAndCreate, b8 as api, a as useSettingStore, ag as LGraphGroup, ad as nextTick } from "./index-C4Fk50Nx.js"; +class ClipspaceDialog extends ComfyDialog { + static { + __name(this, "ClipspaceDialog"); + } + static items = []; + static instance = null; + static registerButton(name, contextPredicate, callback) { + const item = $el("button", { + type: "button", + textContent: name, + contextPredicate, + onclick: callback + }); + ClipspaceDialog.items.push(item); + } + static invalidatePreview() { + if (ComfyApp.clipspace && ComfyApp.clipspace.imgs && ComfyApp.clipspace.imgs.length > 0) { + const img_preview = document.getElementById( + "clipspace_preview" + ); + if (img_preview) { + img_preview.src = ComfyApp.clipspace.imgs[ComfyApp.clipspace["selectedIndex"]].src; + img_preview.style.maxHeight = "100%"; + img_preview.style.maxWidth = "100%"; + } + } + } + static invalidate() { + if (ClipspaceDialog.instance) { + const self2 = ClipspaceDialog.instance; + const children = $el("div.comfy-modal-content", [ + self2.createImgSettings(), + ...self2.createButtons() + ]); + if (self2.element) { + if (self2.element.firstChild) { + self2.element.removeChild(self2.element.firstChild); + } + self2.element.appendChild(children); + } else { + self2.element = $el("div.comfy-modal", { parent: document.body }, [ + children + ]); + } + if (self2.element.children[0].children.length <= 1) { + self2.element.children[0].appendChild( + $el("p", {}, [ + "Unable to find the features to edit content of a format stored in the current Clipspace." + ]) + ); + } + ClipspaceDialog.invalidatePreview(); + } + } + constructor() { + super(); + } + createButtons() { + const buttons = []; + for (let idx in ClipspaceDialog.items) { + const item = ClipspaceDialog.items[idx]; + if (!item.contextPredicate || item.contextPredicate()) + buttons.push(ClipspaceDialog.items[idx]); + } + buttons.push( + $el("button", { + type: "button", + textContent: "Close", + onclick: /* @__PURE__ */ __name(() => { + this.close(); + }, "onclick") + }) + ); + return buttons; + } + createImgSettings() { + if (ComfyApp.clipspace?.imgs) { + const combo_items = []; + const imgs = ComfyApp.clipspace.imgs; + for (let i = 0; i < imgs.length; i++) { + combo_items.push($el("option", { value: i }, [`${i}`])); + } + const combo1 = $el( + "select", + { + id: "clipspace_img_selector", + onchange: /* @__PURE__ */ __name((event) => { + if (event.target && ComfyApp.clipspace) { + ComfyApp.clipspace["selectedIndex"] = event.target.selectedIndex; + ClipspaceDialog.invalidatePreview(); + } + }, "onchange") + }, + combo_items + ); + const row1 = $el("tr", {}, [ + $el("td", {}, [$el("font", { color: "white" }, ["Select Image"])]), + $el("td", {}, [combo1]) + ]); + const combo2 = $el( + "select", + { + id: "clipspace_img_paste_mode", + onchange: /* @__PURE__ */ __name((event) => { + if (event.target && ComfyApp.clipspace) { + ComfyApp.clipspace["img_paste_mode"] = event.target.value; + } + }, "onchange") + }, + [ + $el("option", { value: "selected" }, "selected"), + $el("option", { value: "all" }, "all") + ] + ); + combo2.value = ComfyApp.clipspace["img_paste_mode"]; + const row2 = $el("tr", {}, [ + $el("td", {}, [$el("font", { color: "white" }, ["Paste Mode"])]), + $el("td", {}, [combo2]) + ]); + const td2 = $el( + "td", + { align: "center", width: "100px", height: "100px", colSpan: "2" }, + [$el("img", { id: "clipspace_preview", ondragstart: /* @__PURE__ */ __name(() => false, "ondragstart") }, [])] + ); + const row3 = $el("tr", {}, [td2]); + return $el("table", {}, [row1, row2, row3]); + } else { + return []; + } + } + createImgPreview() { + if (ComfyApp.clipspace?.imgs) { + return $el("img", { id: "clipspace_preview", ondragstart: /* @__PURE__ */ __name(() => false, "ondragstart") }); + } else return []; + } + show() { + const img_preview = document.getElementById("clipspace_preview"); + ClipspaceDialog.invalidate(); + this.element.style.display = "block"; + } +} +app.registerExtension({ + name: "Comfy.Clipspace", + init(app2) { + app2.openClipspace = function() { + if (!ClipspaceDialog.instance) { + ClipspaceDialog.instance = new ClipspaceDialog(); + ComfyApp.clipspace_invalidate_handler = ClipspaceDialog.invalidate; + } + if (ComfyApp.clipspace) { + ClipspaceDialog.instance.show(); + } else app2.ui.dialog.show("Clipspace is Empty!"); + }; + } +}); +window.comfyAPI = window.comfyAPI || {}; +window.comfyAPI.clipspace = window.comfyAPI.clipspace || {}; +window.comfyAPI.clipspace.ClipspaceDialog = ClipspaceDialog; +const ext$1 = { + name: "Comfy.ContextMenuFilter", + init() { + const ctxMenu = LiteGraph.ContextMenu; + LiteGraph.ContextMenu = function(values, options) { + const ctx = new ctxMenu(values, options); + if (options?.className === "dark" && values?.length > 4) { + const filter = document.createElement("input"); + filter.classList.add("comfy-context-menu-filter"); + filter.placeholder = "Filter list"; + ctx.root.prepend(filter); + const items = Array.from( + ctx.root.querySelectorAll(".litemenu-entry") + ); + let displayedItems = [...items]; + let itemCount = displayedItems.length; + requestAnimationFrame(() => { + const currentNode = LGraphCanvas.active_canvas.current_node; + const clickedComboValue = currentNode?.widgets?.filter( + (w) => w.type === "combo" && w.options.values?.length === values.length + ).find( + (w) => w.options.values?.every((v, i) => v === values[i]) + )?.value; + let selectedIndex = clickedComboValue ? values.findIndex((v) => v === clickedComboValue) : 0; + if (selectedIndex < 0) { + selectedIndex = 0; + } + let selectedItem = displayedItems[selectedIndex]; + updateSelected(); + function updateSelected() { + selectedItem?.style.setProperty("background-color", ""); + selectedItem?.style.setProperty("color", ""); + selectedItem = displayedItems[selectedIndex]; + selectedItem?.style.setProperty( + "background-color", + "#ccc", + "important" + ); + selectedItem?.style.setProperty("color", "#000", "important"); + } + __name(updateSelected, "updateSelected"); + const positionList = /* @__PURE__ */ __name(() => { + const rect = ctx.root.getBoundingClientRect(); + if (rect.top < 0) { + const scale = 1 - ctx.root.getBoundingClientRect().height / ctx.root.clientHeight; + const shift = ctx.root.clientHeight * scale / 2; + ctx.root.style.top = -shift + "px"; + } + }, "positionList"); + filter.addEventListener("keydown", (event) => { + switch (event.key) { + case "ArrowUp": + event.preventDefault(); + if (selectedIndex === 0) { + selectedIndex = itemCount - 1; + } else { + selectedIndex--; + } + updateSelected(); + break; + case "ArrowRight": + event.preventDefault(); + selectedIndex = itemCount - 1; + updateSelected(); + break; + case "ArrowDown": + event.preventDefault(); + if (selectedIndex === itemCount - 1) { + selectedIndex = 0; + } else { + selectedIndex++; + } + updateSelected(); + break; + case "ArrowLeft": + event.preventDefault(); + selectedIndex = 0; + updateSelected(); + break; + case "Enter": + selectedItem?.click(); + break; + case "Escape": + ctx.close(); + break; + } + }); + filter.addEventListener("input", () => { + const term = filter.value.toLocaleLowerCase(); + displayedItems = items.filter((item) => { + const isVisible = !term || item.textContent?.toLocaleLowerCase().includes(term); + item.style.display = isVisible ? "block" : "none"; + return isVisible; + }); + selectedIndex = 0; + if (displayedItems.includes(selectedItem)) { + selectedIndex = displayedItems.findIndex( + (d) => d === selectedItem + ); + } + itemCount = displayedItems.length; + updateSelected(); + if (options.event) { + let top = options.event.clientY - 10; + const bodyRect = document.body.getBoundingClientRect(); + const rootRect = ctx.root.getBoundingClientRect(); + if (bodyRect.height && top > bodyRect.height - rootRect.height - 10) { + top = Math.max(0, bodyRect.height - rootRect.height - 10); + } + ctx.root.style.top = top + "px"; + positionList(); + } + }); + requestAnimationFrame(() => { + filter.focus(); + positionList(); + }); + }); + } + return ctx; + }; + LiteGraph.ContextMenu.prototype = ctxMenu.prototype; + } +}; +app.registerExtension(ext$1); +useExtensionService().registerExtension({ + name: "Comfy.DynamicPrompts", + nodeCreated(node) { + if (node.widgets) { + const widgets = node.widgets.filter((n) => n.dynamicPrompts); + for (const widget of widgets) { + widget.serializeValue = (workflowNode, widgetIndex) => { + if (typeof widget.value !== "string") return widget.value; + const prompt = processDynamicPrompt(widget.value); + if (workflowNode?.widgets_values) + workflowNode.widgets_values[widgetIndex] = prompt; + return prompt; + }; + } + } + } +}); +app.registerExtension({ + name: "Comfy.EditAttention", + init() { + const editAttentionDelta = app.ui.settings.addSetting({ + id: "Comfy.EditAttention.Delta", + category: ["Comfy", "EditTokenWeight", "Delta"], + name: "Ctrl+up/down precision", + type: "slider", + attrs: { + min: 0.01, + max: 0.5, + step: 0.01 + }, + defaultValue: 0.05 + }); + function incrementWeight(weight, delta) { + const floatWeight = parseFloat(weight); + if (isNaN(floatWeight)) return weight; + const newWeight = floatWeight + delta; + return String(Number(newWeight.toFixed(10))); + } + __name(incrementWeight, "incrementWeight"); + function findNearestEnclosure(text, cursorPos) { + let start = cursorPos, end = cursorPos; + let openCount = 0, closeCount = 0; + while (start >= 0) { + start--; + if (text[start] === "(" && openCount === closeCount) break; + if (text[start] === "(") openCount++; + if (text[start] === ")") closeCount++; + } + if (start < 0) return null; + openCount = 0; + closeCount = 0; + while (end < text.length) { + if (text[end] === ")" && openCount === closeCount) break; + if (text[end] === "(") openCount++; + if (text[end] === ")") closeCount++; + end++; + } + if (end === text.length) return null; + return { start: start + 1, end }; + } + __name(findNearestEnclosure, "findNearestEnclosure"); + function addWeightToParentheses(text) { + const parenRegex = /^\((.*)\)$/; + const parenMatch = text.match(parenRegex); + const floatRegex = /:([+-]?(\d*\.)?\d+([eE][+-]?\d+)?)/; + const floatMatch = text.match(floatRegex); + if (parenMatch && !floatMatch) { + return `(${parenMatch[1]}:1.0)`; + } else { + return text; + } + } + __name(addWeightToParentheses, "addWeightToParentheses"); + function editAttention(event) { + const inputField = event.composedPath()[0]; + const delta = parseFloat(editAttentionDelta.value); + if (inputField.tagName !== "TEXTAREA") return; + if (!(event.key === "ArrowUp" || event.key === "ArrowDown")) return; + if (!event.ctrlKey && !event.metaKey) return; + event.preventDefault(); + let start = inputField.selectionStart; + let end = inputField.selectionEnd; + let selectedText = inputField.value.substring(start, end); + if (!selectedText) { + const nearestEnclosure = findNearestEnclosure(inputField.value, start); + if (nearestEnclosure) { + start = nearestEnclosure.start; + end = nearestEnclosure.end; + selectedText = inputField.value.substring(start, end); + } else { + const delimiters = " .,\\/!?%^*;:{}=-_`~()\r\n "; + while (!delimiters.includes(inputField.value[start - 1]) && start > 0) { + start--; + } + while (!delimiters.includes(inputField.value[end]) && end < inputField.value.length) { + end++; + } + selectedText = inputField.value.substring(start, end); + if (!selectedText) return; + } + } + if (selectedText[selectedText.length - 1] === " ") { + selectedText = selectedText.substring(0, selectedText.length - 1); + end -= 1; + } + if (inputField.value[start - 1] === "(" && inputField.value[end] === ")") { + start -= 1; + end += 1; + selectedText = inputField.value.substring(start, end); + } + if (selectedText[0] !== "(" || selectedText[selectedText.length - 1] !== ")") { + selectedText = `(${selectedText})`; + } + selectedText = addWeightToParentheses(selectedText); + const weightDelta = event.key === "ArrowUp" ? delta : -delta; + const updatedText = selectedText.replace( + /\((.*):([+-]?\d+(?:\.\d+)?)\)/, + (match, text, weight) => { + weight = incrementWeight(weight, weightDelta); + if (weight == 1) { + return text; + } else { + return `(${text}:${weight})`; + } + } + ); + inputField.setSelectionRange(start, end); + document.execCommand("insertText", false, updatedText); + inputField.setSelectionRange(start, start + updatedText.length); + } + __name(editAttention, "editAttention"); + window.addEventListener("keydown", editAttention); + } +}); +(async () => { + if (!isElectron()) return; + const electronAPI$1 = electronAPI(); + const desktopAppVersion = await electronAPI$1.getElectronVersion(); + const onChangeRestartApp = /* @__PURE__ */ __name((newValue, oldValue) => { + if (oldValue !== void 0 && newValue !== oldValue) { + electronAPI$1.restartApp("Restart ComfyUI to apply changes.", 1500); + } + }, "onChangeRestartApp"); + app.registerExtension({ + name: "Comfy.ElectronAdapter", + settings: [ + { + id: "Comfy-Desktop.AutoUpdate", + category: ["Comfy-Desktop", "General", "AutoUpdate"], + name: "Automatically check for updates", + type: "boolean", + defaultValue: true, + onChange: onChangeRestartApp + }, + { + id: "Comfy-Desktop.SendStatistics", + category: ["Comfy-Desktop", "General", "Send Statistics"], + name: "Send anonymous crash reports", + type: "boolean", + defaultValue: true, + onChange: onChangeRestartApp + } + ], + commands: [ + { + id: "Comfy-Desktop.Folders.OpenLogsFolder", + label: "Open Logs Folder", + icon: "pi pi-folder-open", + function() { + electronAPI$1.openLogsFolder(); + } + }, + { + id: "Comfy-Desktop.Folders.OpenModelsFolder", + label: "Open Models Folder", + icon: "pi pi-folder-open", + function() { + electronAPI$1.openModelsFolder(); + } + }, + { + id: "Comfy-Desktop.Folders.OpenOutputsFolder", + label: "Open Outputs Folder", + icon: "pi pi-folder-open", + function() { + electronAPI$1.openOutputsFolder(); + } + }, + { + id: "Comfy-Desktop.Folders.OpenInputsFolder", + label: "Open Inputs Folder", + icon: "pi pi-folder-open", + function() { + electronAPI$1.openInputsFolder(); + } + }, + { + id: "Comfy-Desktop.Folders.OpenCustomNodesFolder", + label: "Open Custom Nodes Folder", + icon: "pi pi-folder-open", + function() { + electronAPI$1.openCustomNodesFolder(); + } + }, + { + id: "Comfy-Desktop.Folders.OpenModelConfig", + label: "Open extra_model_paths.yaml", + icon: "pi pi-file", + function() { + electronAPI$1.openModelConfig(); + } + }, + { + id: "Comfy-Desktop.OpenDevTools", + label: "Open DevTools", + icon: "pi pi-code", + function() { + electronAPI$1.openDevTools(); + } + }, + { + id: "Comfy-Desktop.OpenFeedbackPage", + label: "Feedback", + icon: "pi pi-envelope", + function() { + window.open("https://forum.comfy.org/c/v1-feedback/", "_blank"); + } + }, + { + id: "Comfy-Desktop.OpenUserGuide", + label: "Desktop User Guide", + icon: "pi pi-book", + function() { + window.open("https://comfyorg.notion.site/", "_blank"); + } + }, + { + id: "Comfy-Desktop.Reinstall", + label: "Reinstall", + icon: "pi pi-refresh", + async function() { + const proceed = await useDialogService().confirm({ + message: t("desktopMenu.confirmReinstall"), + title: t("desktopMenu.reinstall"), + type: "reinstall" + }); + if (proceed) electronAPI$1.reinstall(); + } + }, + { + id: "Comfy-Desktop.Restart", + label: "Restart", + icon: "pi pi-refresh", + function() { + electronAPI$1.restartApp(); + } + } + ], + menuCommands: [ + { + path: ["Help"], + commands: [ + "Comfy-Desktop.OpenUserGuide", + "Comfy-Desktop.OpenFeedbackPage" + ] + }, + { + path: ["Help"], + commands: ["Comfy-Desktop.OpenDevTools"] + }, + { + path: ["Help", "Open Folder"], + commands: [ + "Comfy-Desktop.Folders.OpenLogsFolder", + "Comfy-Desktop.Folders.OpenModelsFolder", + "Comfy-Desktop.Folders.OpenOutputsFolder", + "Comfy-Desktop.Folders.OpenInputsFolder", + "Comfy-Desktop.Folders.OpenCustomNodesFolder", + "Comfy-Desktop.Folders.OpenModelConfig" + ] + }, + { + path: ["Help"], + commands: ["Comfy-Desktop.Reinstall"] + } + ], + aboutPageBadges: [ + { + label: "ComfyUI_desktop v" + desktopAppVersion, + url: "https://github.com/Comfy-Org/electron", + icon: "pi pi-github" + } + ] + }); +})(); +const ORDER = Symbol(); +const PREFIX$1 = "workflow"; +const SEPARATOR$1 = ">"; +function merge(target, source) { + if (typeof target === "object" && typeof source === "object") { + for (const key in source) { + const sv = source[key]; + if (typeof sv === "object") { + let tv = target[key]; + if (!tv) tv = target[key] = {}; + merge(tv, source[key]); + } else { + target[key] = sv; + } + } + } + return target; +} +__name(merge, "merge"); +class ManageGroupDialog extends ComfyDialog { + static { + __name(this, "ManageGroupDialog"); + } + tabs; + selectedNodeIndex; + selectedTab = "Inputs"; + selectedGroup; + modifications = {}; + nodeItems; + app; + groupNodeType; + groupNodeDef; + groupData; + innerNodesList; + widgetsPage; + inputsPage; + outputsPage; + draggable; + get selectedNodeInnerIndex() { + return +this.nodeItems[this.selectedNodeIndex].dataset.nodeindex; + } + constructor(app2) { + super(); + this.app = app2; + this.element = $el("dialog.comfy-group-manage", { + parent: document.body + }); + } + changeTab(tab) { + this.tabs[this.selectedTab].tab.classList.remove("active"); + this.tabs[this.selectedTab].page.classList.remove("active"); + this.tabs[tab].tab.classList.add("active"); + this.tabs[tab].page.classList.add("active"); + this.selectedTab = tab; + } + changeNode(index, force) { + if (!force && this.selectedNodeIndex === index) return; + if (this.selectedNodeIndex != null) { + this.nodeItems[this.selectedNodeIndex].classList.remove("selected"); + } + this.nodeItems[index].classList.add("selected"); + this.selectedNodeIndex = index; + if (!this.buildInputsPage() && this.selectedTab === "Inputs") { + this.changeTab("Widgets"); + } + if (!this.buildWidgetsPage() && this.selectedTab === "Widgets") { + this.changeTab("Outputs"); + } + if (!this.buildOutputsPage() && this.selectedTab === "Outputs") { + this.changeTab("Inputs"); + } + this.changeTab(this.selectedTab); + } + getGroupData() { + this.groupNodeType = LiteGraph.registered_node_types[`${PREFIX$1}${SEPARATOR$1}` + this.selectedGroup]; + this.groupNodeDef = this.groupNodeType.nodeData; + this.groupData = GroupNodeHandler.getGroupData(this.groupNodeType); + } + changeGroup(group, reset = true) { + this.selectedGroup = group; + this.getGroupData(); + const nodes = this.groupData.nodeData.nodes; + this.nodeItems = nodes.map( + (n, i) => $el( + "li.draggable-item", + { + dataset: { + nodeindex: n.index + "" + }, + onclick: /* @__PURE__ */ __name(() => { + this.changeNode(i); + }, "onclick") + }, + [ + $el("span.drag-handle"), + $el( + "div", + { + textContent: n.title ?? n.type + }, + n.title ? $el("span", { + textContent: n.type + }) : [] + ) + ] + ) + ); + this.innerNodesList.replaceChildren(...this.nodeItems); + if (reset) { + this.selectedNodeIndex = null; + this.changeNode(0); + } else { + const items = this.draggable.getAllItems(); + let index = items.findIndex((item) => item.classList.contains("selected")); + if (index === -1) index = this.selectedNodeIndex; + this.changeNode(index, true); + } + const ordered = [...nodes]; + this.draggable?.dispose(); + this.draggable = new DraggableList(this.innerNodesList, "li"); + this.draggable.addEventListener( + "dragend", + ({ detail: { oldPosition, newPosition } }) => { + if (oldPosition === newPosition) return; + ordered.splice(newPosition, 0, ordered.splice(oldPosition, 1)[0]); + for (let i = 0; i < ordered.length; i++) { + this.storeModification({ + nodeIndex: ordered[i].index, + section: ORDER, + prop: "order", + value: i + }); + } + } + ); + } + storeModification(props) { + const { nodeIndex, section, prop, value } = props; + const groupMod = this.modifications[this.selectedGroup] ??= {}; + const nodesMod = groupMod.nodes ??= {}; + const nodeMod = nodesMod[nodeIndex ?? this.selectedNodeInnerIndex] ??= {}; + const typeMod = nodeMod[section] ??= {}; + if (typeof value === "object") { + const objMod = typeMod[prop] ??= {}; + Object.assign(objMod, value); + } else { + typeMod[prop] = value; + } + } + getEditElement(section, prop, value, placeholder, checked, checkable = true) { + if (value === placeholder) value = ""; + const mods = this.modifications[this.selectedGroup]?.nodes?.[this.selectedNodeInnerIndex]?.[section]?.[prop]; + if (mods) { + if (mods.name != null) { + value = mods.name; + } + if (mods.visible != null) { + checked = mods.visible; + } + } + return $el("div", [ + $el("input", { + value, + placeholder, + type: "text", + onchange: /* @__PURE__ */ __name((e) => { + this.storeModification({ + section, + prop, + value: { name: e.target.value } + }); + }, "onchange") + }), + $el("label", { textContent: "Visible" }, [ + $el("input", { + type: "checkbox", + checked, + disabled: !checkable, + onchange: /* @__PURE__ */ __name((e) => { + this.storeModification({ + section, + prop, + value: { visible: !!e.target.checked } + }); + }, "onchange") + }) + ]) + ]); + } + buildWidgetsPage() { + const widgets = this.groupData.oldToNewWidgetMap[this.selectedNodeInnerIndex]; + const items = Object.keys(widgets ?? {}); + const type = app.graph.extra.groupNodes[this.selectedGroup]; + const config = type.config?.[this.selectedNodeInnerIndex]?.input; + this.widgetsPage.replaceChildren( + ...items.map((oldName) => { + return this.getEditElement( + "input", + oldName, + widgets[oldName], + oldName, + config?.[oldName]?.visible !== false + ); + }) + ); + return !!items.length; + } + buildInputsPage() { + const inputs = this.groupData.nodeInputs[this.selectedNodeInnerIndex]; + const items = Object.keys(inputs ?? {}); + const type = app.graph.extra.groupNodes[this.selectedGroup]; + const config = type.config?.[this.selectedNodeInnerIndex]?.input; + this.inputsPage.replaceChildren( + ...items.map((oldName) => { + let value = inputs[oldName]; + if (!value) { + return; + } + return this.getEditElement( + "input", + oldName, + value, + oldName, + config?.[oldName]?.visible !== false + ); + }).filter(Boolean) + ); + return !!items.length; + } + buildOutputsPage() { + const nodes = this.groupData.nodeData.nodes; + const innerNodeDef = this.groupData.getNodeDef( + nodes[this.selectedNodeInnerIndex] + ); + const outputs = innerNodeDef?.output ?? []; + const groupOutputs = this.groupData.oldToNewOutputMap[this.selectedNodeInnerIndex]; + const type = app.graph.extra.groupNodes[this.selectedGroup]; + const config = type.config?.[this.selectedNodeInnerIndex]?.output; + const node = this.groupData.nodeData.nodes[this.selectedNodeInnerIndex]; + const checkable = node.type !== "PrimitiveNode"; + this.outputsPage.replaceChildren( + ...outputs.map((type2, slot) => { + const groupOutputIndex = groupOutputs?.[slot]; + const oldName = innerNodeDef.output_name?.[slot] ?? type2; + let value = config?.[slot]?.name; + const visible = config?.[slot]?.visible || groupOutputIndex != null; + if (!value || value === oldName) { + value = ""; + } + return this.getEditElement( + "output", + slot, + value, + oldName, + visible, + checkable + ); + }).filter(Boolean) + ); + return !!outputs.length; + } + show(type) { + const groupNodes = Object.keys(app.graph.extra?.groupNodes ?? {}).sort( + (a, b) => a.localeCompare(b) + ); + this.innerNodesList = $el( + "ul.comfy-group-manage-list-items" + ); + this.widgetsPage = $el("section.comfy-group-manage-node-page"); + this.inputsPage = $el("section.comfy-group-manage-node-page"); + this.outputsPage = $el("section.comfy-group-manage-node-page"); + const pages = $el("div", [ + this.widgetsPage, + this.inputsPage, + this.outputsPage + ]); + this.tabs = [ + ["Inputs", this.inputsPage], + ["Widgets", this.widgetsPage], + ["Outputs", this.outputsPage] + ].reduce((p, [name, page]) => { + p[name] = { + tab: $el("a", { + onclick: /* @__PURE__ */ __name(() => { + this.changeTab(name); + }, "onclick"), + textContent: name + }), + page + }; + return p; + }, {}); + const outer = $el("div.comfy-group-manage-outer", [ + $el("header", [ + $el("h2", "Group Nodes"), + $el( + "select", + { + onchange: /* @__PURE__ */ __name((e) => { + this.changeGroup(e.target.value); + }, "onchange") + }, + groupNodes.map( + (g) => $el("option", { + textContent: g, + selected: `${PREFIX$1}${SEPARATOR$1}${g}` === type, + value: g + }) + ) + ) + ]), + $el("main", [ + $el("section.comfy-group-manage-list", this.innerNodesList), + $el("section.comfy-group-manage-node", [ + $el( + "header", + Object.values(this.tabs).map((t2) => t2.tab) + ), + pages + ]) + ]), + $el("footer", [ + $el( + "button.comfy-btn", + { + onclick: /* @__PURE__ */ __name((e) => { + const node = app.graph.nodes.find( + (n) => n.type === `${PREFIX$1}${SEPARATOR$1}` + this.selectedGroup + ); + if (node) { + useToastStore().addAlert( + "This group node is in use in the current workflow, please first remove these." + ); + return; + } + if (confirm( + `Are you sure you want to remove the node: "${this.selectedGroup}"` + )) { + delete app.graph.extra.groupNodes[this.selectedGroup]; + LiteGraph.unregisterNodeType( + `${PREFIX$1}${SEPARATOR$1}` + this.selectedGroup + ); + } + this.show(); + }, "onclick") + }, + "Delete Group Node" + ), + $el( + "button.comfy-btn", + { + onclick: /* @__PURE__ */ __name(async () => { + let nodesByType; + let recreateNodes = []; + const types = {}; + for (const g in this.modifications) { + const type2 = app.graph.extra.groupNodes[g]; + let config = type2.config ??= {}; + let nodeMods = this.modifications[g]?.nodes; + if (nodeMods) { + const keys = Object.keys(nodeMods); + if (nodeMods[keys[0]][ORDER]) { + const orderedNodes = []; + const orderedMods = {}; + const orderedConfig = {}; + for (const n of keys) { + const order = nodeMods[n][ORDER].order; + orderedNodes[order] = type2.nodes[+n]; + orderedMods[order] = nodeMods[n]; + orderedNodes[order].index = order; + } + for (const l of type2.links) { + if (l[0] != null) l[0] = type2.nodes[l[0]].index; + if (l[2] != null) l[2] = type2.nodes[l[2]].index; + } + if (type2.external) { + for (const ext2 of type2.external) { + ext2[0] = type2.nodes[ext2[0]]; + } + } + for (const id2 of keys) { + if (config[id2]) { + orderedConfig[type2.nodes[id2].index] = config[id2]; + } + delete config[id2]; + } + type2.nodes = orderedNodes; + nodeMods = orderedMods; + type2.config = config = orderedConfig; + } + merge(config, nodeMods); + } + types[g] = type2; + if (!nodesByType) { + nodesByType = app.graph.nodes.reduce((p, n) => { + p[n.type] ??= []; + p[n.type].push(n); + return p; + }, {}); + } + const nodes = nodesByType[`${PREFIX$1}${SEPARATOR$1}` + g]; + if (nodes) recreateNodes.push(...nodes); + } + await GroupNodeConfig.registerFromWorkflow(types, {}); + for (const node of recreateNodes) { + node.recreate(); + } + this.modifications = {}; + this.app.graph.setDirtyCanvas(true, true); + this.changeGroup(this.selectedGroup, false); + }, "onclick") + }, + "Save" + ), + $el( + "button.comfy-btn", + { onclick: /* @__PURE__ */ __name(() => this.element.close(), "onclick") }, + "Close" + ) + ]) + ]); + this.element.replaceChildren(outer); + this.changeGroup( + type ? groupNodes.find((g) => `${PREFIX$1}${SEPARATOR$1}${g}` === type) ?? groupNodes[0] : groupNodes[0] + ); + this.element.showModal(); + this.element.addEventListener("close", () => { + this.draggable?.dispose(); + this.element.remove(); + }); + } +} +window.comfyAPI = window.comfyAPI || {}; +window.comfyAPI.groupNodeManage = window.comfyAPI.groupNodeManage || {}; +window.comfyAPI.groupNodeManage.ManageGroupDialog = ManageGroupDialog; +const CONVERTED_TYPE = "converted-widget"; +const VALID_TYPES = [ + "STRING", + "combo", + "number", + "toggle", + "BOOLEAN", + "text", + "string" +]; +const CONFIG = Symbol(); +const GET_CONFIG = Symbol(); +const TARGET = Symbol(); +const replacePropertyName = "Run widget replace on values"; +class PrimitiveNode extends LGraphNode { + static { + __name(this, "PrimitiveNode"); + } + controlValues; + lastType; + static category; + constructor(title) { + super(title); + this.addOutput("connect to widget input", "*"); + this.serialize_widgets = true; + this.isVirtualNode = true; + if (!this.properties || !(replacePropertyName in this.properties)) { + this.addProperty(replacePropertyName, false, "boolean"); + } + } + applyToGraph(extraLinks = []) { + if (!this.outputs[0].links?.length) return; + function get_links(node) { + let links2 = []; + for (const l of node.outputs[0].links) { + const linkInfo = app.graph.links[l]; + const n = node.graph.getNodeById(linkInfo.target_id); + if (n.type == "Reroute") { + links2 = links2.concat(get_links(n)); + } else { + links2.push(l); + } + } + return links2; + } + __name(get_links, "get_links"); + let links = [ + ...get_links(this).map((l) => app.graph.links[l]), + ...extraLinks + ]; + let v = this.widgets?.[0].value; + if (v && this.properties[replacePropertyName]) { + v = applyTextReplacements(app, v); + } + for (const linkInfo of links) { + const node = this.graph.getNodeById(linkInfo.target_id); + const input = node.inputs[linkInfo.target_slot]; + let widget; + if (input.widget[TARGET]) { + widget = input.widget[TARGET]; + } else { + const widgetName = input.widget.name; + if (widgetName) { + widget = node.widgets.find((w) => w.name === widgetName); + } + } + if (widget) { + widget.value = v; + if (widget.callback) { + widget.callback( + widget.value, + app.canvas, + node, + app.canvas.graph_mouse, + {} + ); + } + } + } + } + refreshComboInNode() { + const widget = this.widgets?.[0]; + if (widget?.type === "combo") { + widget.options.values = this.outputs[0].widget[GET_CONFIG]()[0]; + if (!widget.options.values.includes(widget.value)) { + widget.value = widget.options.values[0]; + widget.callback(widget.value); + } + } + } + onAfterGraphConfigured() { + if (this.outputs[0].links?.length && !this.widgets?.length) { + if (!this.#onFirstConnection()) return; + if (this.widgets) { + for (let i = 0; i < this.widgets_values.length; i++) { + const w = this.widgets[i]; + if (w) { + w.value = this.widgets_values[i]; + } + } + } + this.#mergeWidgetConfig(); + } + } + onConnectionsChange(_, index, connected) { + if (app.configuringGraph) { + return; + } + const links = this.outputs[0].links; + if (connected) { + if (links?.length && !this.widgets?.length) { + this.#onFirstConnection(); + } + } else { + this.#mergeWidgetConfig(); + if (!links?.length) { + this.onLastDisconnect(); + } + } + } + onConnectOutput(slot, type, input, target_node, target_slot) { + if (!input.widget) { + if (!(input.type in ComfyWidgets)) return false; + } + if (this.outputs[slot].links?.length) { + const valid = this.#isValidConnection(input); + if (valid) { + this.applyToGraph([{ target_id: target_node.id, target_slot }]); + } + return valid; + } + } + #onFirstConnection(recreating) { + if (!this.outputs[0].links) { + this.onLastDisconnect(); + return; + } + const linkId = this.outputs[0].links[0]; + const link = this.graph.links[linkId]; + if (!link) return; + const theirNode = this.graph.getNodeById(link.target_id); + if (!theirNode || !theirNode.inputs) return; + const input = theirNode.inputs[link.target_slot]; + if (!input) return; + let widget; + if (!input.widget) { + if (!(input.type in ComfyWidgets)) return; + widget = { name: input.name, [GET_CONFIG]: () => [input.type, {}] }; + } else { + widget = input.widget; + } + const config = widget[GET_CONFIG]?.(); + if (!config) return; + const { type } = getWidgetType(config); + this.outputs[0].type = type; + this.outputs[0].name = type; + this.outputs[0].widget = widget; + this.#createWidget( + widget[CONFIG] ?? config, + theirNode, + widget.name, + recreating, + widget[TARGET] + ); + } + #createWidget(inputData, node, widgetName, recreating, targetWidget) { + let type = inputData[0]; + if (type instanceof Array) { + type = "COMBO"; + } + const [oldWidth, oldHeight] = this.size; + let widget; + if (type in ComfyWidgets) { + widget = (ComfyWidgets[type](this, "value", inputData, app) || {}).widget; + } else { + widget = this.addWidget(type, "value", null, () => { + }, {}); + } + if (targetWidget) { + widget.value = targetWidget.value; + } else if (node?.widgets && widget) { + const theirWidget = node.widgets.find((w) => w.name === widgetName); + if (theirWidget) { + widget.value = theirWidget.value; + } + } + if (!inputData?.[1]?.control_after_generate && (widget.type === "number" || widget.type === "combo")) { + let control_value = this.widgets_values?.[1]; + if (!control_value) { + control_value = "fixed"; + } + addValueControlWidgets( + this, + widget, + control_value, + void 0, + inputData + ); + let filter = this.widgets_values?.[2]; + if (filter && this.widgets.length === 3) { + this.widgets[2].value = filter; + } + } + const controlValues = this.controlValues; + if (this.lastType === this.widgets[0].type && controlValues?.length === this.widgets.length - 1) { + for (let i = 0; i < controlValues.length; i++) { + this.widgets[i + 1].value = controlValues[i]; + } + } + const callback = widget.callback; + const self2 = this; + widget.callback = function() { + const r = callback ? callback.apply(this, arguments) : void 0; + self2.applyToGraph(); + return r; + }; + this.size = [ + Math.max(this.size[0], oldWidth), + Math.max(this.size[1], oldHeight) + ]; + if (!recreating) { + const sz = this.computeSize(); + if (this.size[0] < sz[0]) { + this.size[0] = sz[0]; + } + if (this.size[1] < sz[1]) { + this.size[1] = sz[1]; + } + requestAnimationFrame(() => { + if (this.onResize) { + this.onResize(this.size); + } + }); + } + } + recreateWidget() { + const values = this.widgets?.map((w) => w.value); + this.#removeWidgets(); + this.#onFirstConnection(true); + if (values?.length) { + for (let i = 0; i < this.widgets?.length; i++) + this.widgets[i].value = values[i]; + } + return this.widgets?.[0]; + } + #mergeWidgetConfig() { + const output = this.outputs[0]; + const links = output.links; + const hasConfig = !!output.widget[CONFIG]; + if (hasConfig) { + delete output.widget[CONFIG]; + } + if (links?.length < 2 && hasConfig) { + if (links.length) { + this.recreateWidget(); + } + return; + } + const config1 = output.widget[GET_CONFIG](); + const isNumber = config1[0] === "INT" || config1[0] === "FLOAT"; + if (!isNumber) return; + for (const linkId of links) { + const link = app.graph.links[linkId]; + if (!link) continue; + const theirNode = app.graph.getNodeById(link.target_id); + const theirInput = theirNode.inputs[link.target_slot]; + this.#isValidConnection(theirInput, hasConfig); + } + } + isValidWidgetLink(originSlot, targetNode, targetWidget) { + const config2 = getConfig.call(targetNode, targetWidget.name) ?? [ + targetWidget.type, + targetWidget.options || {} + ]; + if (!isConvertibleWidget(targetWidget, config2)) return false; + const output = this.outputs[originSlot]; + if (!(output.widget?.[CONFIG] ?? output.widget?.[GET_CONFIG]())) { + return true; + } + return !!mergeIfValid.call(this, output, config2); + } + #isValidConnection(input, forceUpdate) { + const output = this.outputs[0]; + const config2 = input.widget[GET_CONFIG](); + return !!mergeIfValid.call( + this, + output, + config2, + forceUpdate, + this.recreateWidget + ); + } + #removeWidgets() { + if (this.widgets) { + for (const w of this.widgets) { + if (w.onRemove) { + w.onRemove(); + } + } + this.controlValues = []; + this.lastType = this.widgets[0]?.type; + for (let i = 1; i < this.widgets.length; i++) { + this.controlValues.push(this.widgets[i].value); + } + setTimeout(() => { + delete this.lastType; + delete this.controlValues; + }, 15); + this.widgets.length = 0; + } + } + onLastDisconnect() { + this.outputs[0].type = "*"; + this.outputs[0].name = "connect to widget input"; + delete this.outputs[0].widget; + this.#removeWidgets(); + } +} +function getWidgetConfig(slot) { + return slot.widget[CONFIG] ?? slot.widget[GET_CONFIG]?.() ?? ["*", {}]; +} +__name(getWidgetConfig, "getWidgetConfig"); +function getConfig(widgetName) { + const { nodeData } = this.constructor; + return nodeData?.input?.required?.[widgetName] ?? nodeData?.input?.optional?.[widgetName]; +} +__name(getConfig, "getConfig"); +function isConvertibleWidget(widget, config) { + return (VALID_TYPES.includes(widget.type) || VALID_TYPES.includes(config[0])) && !widget.options?.forceInput; +} +__name(isConvertibleWidget, "isConvertibleWidget"); +function hideWidget(node, widget, suffix = "") { + if (widget.type?.startsWith(CONVERTED_TYPE)) return; + widget.origType = widget.type; + widget.origComputeSize = widget.computeSize; + widget.origSerializeValue = widget.serializeValue; + widget.computeSize = () => [0, -4]; + widget.type = CONVERTED_TYPE + suffix; + widget.serializeValue = () => { + if (!node.inputs) { + return void 0; + } + let node_input = node.inputs.find((i) => i.widget?.name === widget.name); + if (!node_input || !node_input.link) { + return void 0; + } + return widget.origSerializeValue ? widget.origSerializeValue() : widget.value; + }; + if (widget.linkedWidgets) { + for (const w of widget.linkedWidgets) { + hideWidget(node, w, ":" + widget.name); + } + } +} +__name(hideWidget, "hideWidget"); +function showWidget(widget) { + widget.type = widget.origType; + widget.computeSize = widget.origComputeSize; + widget.serializeValue = widget.origSerializeValue; + delete widget.origType; + delete widget.origComputeSize; + delete widget.origSerializeValue; + if (widget.linkedWidgets) { + for (const w of widget.linkedWidgets) { + showWidget(w); + } + } +} +__name(showWidget, "showWidget"); +function convertToInput(node, widget, config) { + hideWidget(node, widget); + const { type } = getWidgetType(config); + const [oldWidth, oldHeight] = node.size; + const inputIsOptional = !!widget.options?.inputIsOptional; + const input = node.addInput(widget.name, type, { + widget: { name: widget.name, [GET_CONFIG]: () => config }, + ...inputIsOptional ? { shape: LiteGraph.SlotShape.HollowCircle } : {} + }); + for (const widget2 of node.widgets) { + widget2.last_y += LiteGraph.NODE_SLOT_HEIGHT; + } + node.setSize([ + Math.max(oldWidth, node.size[0]), + Math.max(oldHeight, node.size[1]) + ]); + return input; +} +__name(convertToInput, "convertToInput"); +function convertToWidget(node, widget) { + showWidget(widget); + const [oldWidth, oldHeight] = node.size; + node.removeInput(node.inputs.findIndex((i) => i.widget?.name === widget.name)); + for (const widget2 of node.widgets) { + widget2.last_y -= LiteGraph.NODE_SLOT_HEIGHT; + } + node.setSize([ + Math.max(oldWidth, node.size[0]), + Math.max(oldHeight, node.size[1]) + ]); +} +__name(convertToWidget, "convertToWidget"); +function getWidgetType(config) { + let type = config[0]; + if (type instanceof Array) { + type = "COMBO"; + } + return { type }; +} +__name(getWidgetType, "getWidgetType"); +function isValidCombo(combo, obj) { + if (!(obj instanceof Array)) { + console.log(`connection rejected: tried to connect combo to ${obj}`); + return false; + } + if (combo.length !== obj.length) { + console.log(`connection rejected: combo lists dont match`); + return false; + } + if (combo.find((v, i) => obj[i] !== v)) { + console.log(`connection rejected: combo lists dont match`); + return false; + } + return true; +} +__name(isValidCombo, "isValidCombo"); +function isPrimitiveNode(node) { + return node.type === "PrimitiveNode"; +} +__name(isPrimitiveNode, "isPrimitiveNode"); +function setWidgetConfig(slot, config, target) { + if (!slot.widget) return; + if (config) { + slot.widget[GET_CONFIG] = () => config; + slot.widget[TARGET] = target; + } else { + delete slot.widget; + } + if (slot.link) { + const link = app.graph.links[slot.link]; + if (link) { + const originNode = app.graph.getNodeById(link.origin_id); + if (isPrimitiveNode(originNode)) { + if (config) { + originNode.recreateWidget(); + } else if (!app.configuringGraph) { + originNode.disconnectOutput(0); + originNode.onLastDisconnect(); + } + } + } + } +} +__name(setWidgetConfig, "setWidgetConfig"); +function mergeIfValid(output, config2, forceUpdate, recreateWidget, config1) { + if (!config1) { + config1 = getWidgetConfig(output); + } + if (config1[0] instanceof Array) { + if (!isValidCombo(config1[0], config2[0])) return; + } else if (config1[0] !== config2[0]) { + console.log(`connection rejected: types dont match`, config1[0], config2[0]); + return; + } + const keys = /* @__PURE__ */ new Set([ + ...Object.keys(config1[1] ?? {}), + ...Object.keys(config2[1] ?? {}) + ]); + let customConfig; + const getCustomConfig = /* @__PURE__ */ __name(() => { + if (!customConfig) { + if (typeof structuredClone === "undefined") { + customConfig = JSON.parse(JSON.stringify(config1[1] ?? {})); + } else { + customConfig = structuredClone(config1[1] ?? {}); + } + } + return customConfig; + }, "getCustomConfig"); + const isNumber = config1[0] === "INT" || config1[0] === "FLOAT"; + for (const k of keys.values()) { + if (k !== "default" && k !== "forceInput" && k !== "defaultInput" && k !== "control_after_generate" && k !== "multiline" && k !== "tooltip" && k !== "dynamicPrompts") { + let v1 = config1[1][k]; + let v2 = config2[1]?.[k]; + if (v1 === v2 || !v1 && !v2) continue; + if (isNumber) { + if (k === "min") { + const theirMax = config2[1]?.["max"]; + if (theirMax != null && v1 > theirMax) { + console.log("connection rejected: min > max", v1, theirMax); + return; + } + getCustomConfig()[k] = v1 == null ? v2 : v2 == null ? v1 : Math.max(v1, v2); + continue; + } else if (k === "max") { + const theirMin = config2[1]?.["min"]; + if (theirMin != null && v1 < theirMin) { + console.log("connection rejected: max < min", v1, theirMin); + return; + } + getCustomConfig()[k] = v1 == null ? v2 : v2 == null ? v1 : Math.min(v1, v2); + continue; + } else if (k === "step") { + let step; + if (v1 == null) { + step = v2; + } else if (v2 == null) { + step = v1; + } else { + if (v1 < v2) { + const a = v2; + v2 = v1; + v1 = a; + } + if (v1 % v2) { + console.log( + "connection rejected: steps not divisible", + "current:", + v1, + "new:", + v2 + ); + return; + } + step = v1; + } + getCustomConfig()[k] = step; + continue; + } + } + console.log(`connection rejected: config ${k} values dont match`, v1, v2); + return; + } + } + if (customConfig || forceUpdate) { + if (customConfig) { + output.widget[CONFIG] = [config1[0], customConfig]; + } + const widget = recreateWidget?.call(this); + if (widget) { + const min = widget.options.min; + const max2 = widget.options.max; + if (min != null && widget.value < min) widget.value = min; + if (max2 != null && widget.value > max2) widget.value = max2; + widget.callback(widget.value); + } + } + return { customConfig }; +} +__name(mergeIfValid, "mergeIfValid"); +let useConversionSubmenusSetting; +app.registerExtension({ + name: "Comfy.WidgetInputs", + init() { + useConversionSubmenusSetting = app.ui.settings.addSetting({ + id: "Comfy.NodeInputConversionSubmenus", + name: "In the node context menu, place the entries that convert between input/widget in sub-menus.", + type: "boolean", + defaultValue: true + }); + }, + setup() { + app.canvas.getWidgetLinkType = function(widget, node) { + const nodeDefStore = useNodeDefStore(); + const nodeDef = nodeDefStore.nodeDefsByName[node.type]; + const input = nodeDef.inputs.getInput(widget.name); + return input?.type; + }; + document.addEventListener( + "litegraph:canvas", + async (e) => { + if (e.detail.subType === "connectingWidgetLink") { + const { node, link, widget } = e.detail; + if (!node || !link || !widget) return; + const nodeData = node.constructor.nodeData; + if (!nodeData) return; + const all = { + ...nodeData?.input?.required, + ...nodeData?.input?.optional + }; + const inputSpec = all[widget.name]; + if (!inputSpec) return; + const input = convertToInput(node, widget, inputSpec); + if (!input) return; + const originNode = link.node; + originNode.connect(link.slot, node, node.inputs.lastIndexOf(input)); + } + } + ); + }, + async beforeRegisterNodeDef(nodeType, nodeData, app2) { + const origGetExtraMenuOptions = nodeType.prototype.getExtraMenuOptions; + nodeType.prototype.convertWidgetToInput = function(widget) { + const config = getConfig.call(this, widget.name) ?? [ + widget.type, + widget.options || {} + ]; + if (!isConvertibleWidget(widget, config)) return false; + if (widget.type?.startsWith(CONVERTED_TYPE)) return false; + convertToInput(this, widget, config); + return true; + }; + nodeType.prototype.getExtraMenuOptions = function(_, options) { + const r = origGetExtraMenuOptions ? origGetExtraMenuOptions.apply(this, arguments) : void 0; + if (this.widgets) { + let toInput = []; + let toWidget = []; + for (const w of this.widgets) { + if (w.options?.forceInput) { + continue; + } + if (w.type === CONVERTED_TYPE) { + toWidget.push({ + // @ts-expect-error never + content: `Convert ${w.name} to widget`, + callback: /* @__PURE__ */ __name(() => convertToWidget(this, w), "callback") + }); + } else { + const config = getConfig.call(this, w.name) ?? [ + w.type, + w.options || {} + ]; + if (isConvertibleWidget(w, config)) { + toInput.push({ + content: `Convert ${w.name} to input`, + callback: /* @__PURE__ */ __name(() => convertToInput(this, w, config), "callback") + }); + } + } + } + if (toInput.length) { + if (useConversionSubmenusSetting.value) { + options.push({ + content: "Convert Widget to Input", + submenu: { + options: toInput + } + }); + } else { + options.push(...toInput, null); + } + } + if (toWidget.length) { + if (useConversionSubmenusSetting.value) { + options.push({ + content: "Convert Input to Widget", + submenu: { + options: toWidget + } + }); + } else { + options.push(...toWidget, null); + } + } + } + return r; + }; + nodeType.prototype.onGraphConfigured = function() { + if (!this.inputs) return; + this.widgets ??= []; + for (const input of this.inputs) { + if (input.widget) { + if (!input.widget[GET_CONFIG]) { + input.widget[GET_CONFIG] = () => getConfig.call(this, input.widget.name); + } + if (input.widget.config) { + if (input.widget.config[0] instanceof Array) { + input.type = "COMBO"; + const link = app2.graph.links[input.link]; + if (link) { + link.type = input.type; + } + } + delete input.widget.config; + } + const w = this.widgets.find((w2) => w2.name === input.widget.name); + if (w) { + hideWidget(this, w); + } else { + convertToWidget(this, input); + } + } + } + }; + const origOnNodeCreated = nodeType.prototype.onNodeCreated; + nodeType.prototype.onNodeCreated = function() { + const r = origOnNodeCreated ? origOnNodeCreated.apply(this) : void 0; + if (!app2.configuringGraph && this.widgets) { + for (const w of this.widgets) { + if (w?.options?.forceInput || w?.options?.defaultInput) { + const config = getConfig.call(this, w.name) ?? [ + w.type, + w.options || {} + ]; + convertToInput(this, w, config); + } + } + } + return r; + }; + const origOnConfigure = nodeType.prototype.onConfigure; + nodeType.prototype.onConfigure = function() { + const r = origOnConfigure ? origOnConfigure.apply(this, arguments) : void 0; + if (!app2.configuringGraph && this.inputs) { + for (const input of this.inputs) { + if (input.widget && !input.widget[GET_CONFIG]) { + input.widget[GET_CONFIG] = () => ( + // @ts-expect-error input.widget has unknown type + getConfig.call(this, input.widget.name) + ); + const w = this.widgets.find((w2) => w2.name === input.widget.name); + if (w) { + hideWidget(this, w); + } + } + } + } + return r; + }; + function isNodeAtPos(pos) { + for (const n of app2.graph.nodes) { + if (n.pos[0] === pos[0] && n.pos[1] === pos[1]) { + return true; + } + } + return false; + } + __name(isNodeAtPos, "isNodeAtPos"); + const origOnInputDblClick = nodeType.prototype.onInputDblClick; + const ignoreDblClick = Symbol(); + nodeType.prototype.onInputDblClick = function(slot) { + const r = origOnInputDblClick ? origOnInputDblClick.apply(this, arguments) : void 0; + const input = this.inputs[slot]; + if (!input.widget || !input[ignoreDblClick]) { + if (!(input.type in ComfyWidgets) && !(input.widget?.[GET_CONFIG]?.()?.[0] instanceof Array)) { + return r; + } + } + const node = LiteGraph.createNode("PrimitiveNode"); + app2.graph.add(node); + const pos = [ + this.pos[0] - node.size[0] - 30, + this.pos[1] + ]; + while (isNodeAtPos(pos)) { + pos[1] += LiteGraph.NODE_TITLE_HEIGHT; + } + node.pos = pos; + node.connect(0, this, slot); + node.title = input.name; + input[ignoreDblClick] = true; + setTimeout(() => { + delete input[ignoreDblClick]; + }, 300); + return r; + }; + const onConnectInput = nodeType.prototype.onConnectInput; + nodeType.prototype.onConnectInput = function(targetSlot, type, output, originNode, originSlot) { + const v = onConnectInput?.(this, arguments); + if (type !== "COMBO") return v; + if (originNode.outputs[originSlot].widget) return v; + const targetCombo = this.inputs[targetSlot].widget?.[GET_CONFIG]?.()?.[0]; + if (!targetCombo || !(targetCombo instanceof Array)) return v; + const originConfig = originNode.constructor?.nodeData?.output?.[originSlot]; + if (!originConfig || !isValidCombo(targetCombo, originConfig)) { + return false; + } + return v; + }; + }, + registerCustomNodes() { + LiteGraph.registerNodeType( + "PrimitiveNode", + Object.assign(PrimitiveNode, { + title: "Primitive" + }) + ); + PrimitiveNode.category = "utils"; + } +}); +window.comfyAPI = window.comfyAPI || {}; +window.comfyAPI.widgetInputs = window.comfyAPI.widgetInputs || {}; +window.comfyAPI.widgetInputs.getWidgetConfig = getWidgetConfig; +window.comfyAPI.widgetInputs.convertToInput = convertToInput; +window.comfyAPI.widgetInputs.setWidgetConfig = setWidgetConfig; +window.comfyAPI.widgetInputs.mergeIfValid = mergeIfValid; +const GROUP = Symbol(); +const PREFIX = "workflow"; +const SEPARATOR = ">"; +const Workflow = { + InUse: { + Free: 0, + Registered: 1, + InWorkflow: 2 + }, + isInUseGroupNode(name) { + const id2 = `${PREFIX}${SEPARATOR}${name}`; + if (app.graph.extra?.groupNodes?.[name]) { + if (app.graph.nodes.find((n) => n.type === id2)) { + return Workflow.InUse.InWorkflow; + } else { + return Workflow.InUse.Registered; + } + } + return Workflow.InUse.Free; + }, + storeGroupNode(name, data) { + let extra = app.graph.extra; + if (!extra) app.graph.extra = extra = {}; + let groupNodes = extra.groupNodes; + if (!groupNodes) extra.groupNodes = groupNodes = {}; + groupNodes[name] = data; + } +}; +class GroupNodeBuilder { + static { + __name(this, "GroupNodeBuilder"); + } + nodes; + nodeData; + constructor(nodes) { + this.nodes = nodes; + } + async build() { + const name = await this.getName(); + if (!name) return; + this.sortNodes(); + this.nodeData = this.getNodeData(); + Workflow.storeGroupNode(name, this.nodeData); + return { name, nodeData: this.nodeData }; + } + async getName() { + const name = await useDialogService().prompt({ + title: t("groupNode.create"), + message: t("groupNode.enterName"), + defaultValue: "" + }); + if (!name) return; + const used = Workflow.isInUseGroupNode(name); + switch (used) { + case Workflow.InUse.InWorkflow: + useToastStore().addAlert( + "An in use group node with this name already exists embedded in this workflow, please remove any instances or use a new name." + ); + return; + case Workflow.InUse.Registered: + if (!confirm( + "A group node with this name already exists embedded in this workflow, are you sure you want to overwrite it?" + )) { + return; + } + break; + } + return name; + } + sortNodes() { + const nodesInOrder = app.graph.computeExecutionOrder(false); + this.nodes = this.nodes.map((node) => ({ index: nodesInOrder.indexOf(node), node })).sort((a, b) => a.index - b.index || a.node.id - b.node.id).map(({ node }) => node); + } + getNodeData() { + const storeLinkTypes = /* @__PURE__ */ __name((config) => { + for (const link of config.links) { + const origin = app.graph.getNodeById(link[4]); + const type = origin.outputs[link[1]].type; + link.push(type); + } + }, "storeLinkTypes"); + const storeExternalLinks = /* @__PURE__ */ __name((config) => { + config.external = []; + for (let i = 0; i < this.nodes.length; i++) { + const node = this.nodes[i]; + if (!node.outputs?.length) continue; + for (let slot = 0; slot < node.outputs.length; slot++) { + let hasExternal = false; + const output = node.outputs[slot]; + let type = output.type; + if (!output.links?.length) continue; + for (const l of output.links) { + const link = app.graph.links[l]; + if (!link) continue; + if (type === "*") type = link.type; + if (!app.canvas.selected_nodes[link.target_id]) { + hasExternal = true; + break; + } + } + if (hasExternal) { + config.external.push([i, slot, type]); + } + } + } + }, "storeExternalLinks"); + try { + const serialised = serialise(this.nodes, app.canvas.graph); + const config = JSON.parse(serialised); + storeLinkTypes(config); + storeExternalLinks(config); + return config; + } finally { + } + } +} +class GroupNodeConfig { + static { + __name(this, "GroupNodeConfig"); + } + name; + nodeData; + inputCount; + oldToNewOutputMap; + newToOldOutputMap; + oldToNewInputMap; + oldToNewWidgetMap; + newToOldWidgetMap; + primitiveDefs; + widgetToPrimitive; + primitiveToWidget; + nodeInputs; + outputVisibility; + nodeDef; + inputs; + linksFrom; + linksTo; + externalFrom; + constructor(name, nodeData) { + this.name = name; + this.nodeData = nodeData; + this.getLinks(); + this.inputCount = 0; + this.oldToNewOutputMap = {}; + this.newToOldOutputMap = {}; + this.oldToNewInputMap = {}; + this.oldToNewWidgetMap = {}; + this.newToOldWidgetMap = {}; + this.primitiveDefs = {}; + this.widgetToPrimitive = {}; + this.primitiveToWidget = {}; + this.nodeInputs = {}; + this.outputVisibility = []; + } + async registerType(source = PREFIX) { + this.nodeDef = { + output: [], + output_name: [], + output_is_list: [], + // @ts-expect-error Unused, doesn't exist + output_is_hidden: [], + name: source + SEPARATOR + this.name, + display_name: this.name, + category: "group nodes" + (SEPARATOR + source), + input: { required: {} }, + description: `Group node combining ${this.nodeData.nodes.map((n) => n.type).join(", ")}`, + python_module: "custom_nodes." + this.name, + [GROUP]: this + }; + this.inputs = []; + const seenInputs = {}; + const seenOutputs = {}; + for (let i = 0; i < this.nodeData.nodes.length; i++) { + const node = this.nodeData.nodes[i]; + node.index = i; + this.processNode(node, seenInputs, seenOutputs); + } + for (const p of this.#convertedToProcess) { + p(); + } + this.#convertedToProcess = null; + await app.registerNodeDef(`${PREFIX}${SEPARATOR}` + this.name, this.nodeDef); + useNodeDefStore().addNodeDef(this.nodeDef); + } + getLinks() { + this.linksFrom = {}; + this.linksTo = {}; + this.externalFrom = {}; + for (const l of this.nodeData.links) { + const [sourceNodeId, sourceNodeSlot, targetNodeId, targetNodeSlot] = l; + if (sourceNodeId == null) continue; + if (!this.linksFrom[sourceNodeId]) { + this.linksFrom[sourceNodeId] = {}; + } + if (!this.linksFrom[sourceNodeId][sourceNodeSlot]) { + this.linksFrom[sourceNodeId][sourceNodeSlot] = []; + } + this.linksFrom[sourceNodeId][sourceNodeSlot].push(l); + if (!this.linksTo[targetNodeId]) { + this.linksTo[targetNodeId] = {}; + } + this.linksTo[targetNodeId][targetNodeSlot] = l; + } + if (this.nodeData.external) { + for (const ext2 of this.nodeData.external) { + if (!this.externalFrom[ext2[0]]) { + this.externalFrom[ext2[0]] = { [ext2[1]]: ext2[2] }; + } else { + this.externalFrom[ext2[0]][ext2[1]] = ext2[2]; + } + } + } + } + processNode(node, seenInputs, seenOutputs) { + const def = this.getNodeDef(node); + if (!def) return; + const inputs = { ...def.input?.required, ...def.input?.optional }; + this.inputs.push(this.processNodeInputs(node, seenInputs, inputs)); + if (def.output?.length) this.processNodeOutputs(node, seenOutputs, def); + } + getNodeDef(node) { + const def = globalDefs[node.type]; + if (def) return def; + const linksFrom = this.linksFrom[node.index]; + if (node.type === "PrimitiveNode") { + if (!linksFrom) return; + let type = linksFrom["0"][0][5]; + if (type === "COMBO") { + const source = node.outputs[0].widget.name; + const fromTypeName = this.nodeData.nodes[linksFrom["0"][0][2]].type; + const fromType = globalDefs[fromTypeName]; + const input = fromType.input.required[source] ?? fromType.input.optional[source]; + type = input[0]; + } + const def2 = this.primitiveDefs[node.index] = { + input: { + required: { + value: [type, {}] + } + }, + output: [type], + output_name: [], + output_is_list: [] + }; + return def2; + } else if (node.type === "Reroute") { + const linksTo = this.linksTo[node.index]; + if (linksTo && linksFrom && !this.externalFrom[node.index]?.[0]) { + return null; + } + let config = {}; + let rerouteType = "*"; + if (linksFrom) { + for (const [, , id2, slot] of linksFrom["0"]) { + const node2 = this.nodeData.nodes[id2]; + const input = node2.inputs[slot]; + if (rerouteType === "*") { + rerouteType = input.type; + } + if (input.widget) { + const targetDef = globalDefs[node2.type]; + const targetWidget = targetDef.input.required[input.widget.name] ?? targetDef.input.optional[input.widget.name]; + const widget = [targetWidget[0], config]; + const res = mergeIfValid( + { + widget + }, + targetWidget, + false, + null, + widget + ); + config = res?.customConfig ?? config; + } + } + } else if (linksTo) { + const [id2, slot] = linksTo["0"]; + rerouteType = this.nodeData.nodes[id2].outputs[slot].type; + } else { + for (const l of this.nodeData.links) { + if (l[2] === node.index) { + rerouteType = l[5]; + break; + } + } + if (rerouteType === "*") { + const t2 = this.externalFrom[node.index]?.[0]; + if (t2) { + rerouteType = t2; + } + } + } + config.forceInput = true; + return { + input: { + required: { + [rerouteType]: [rerouteType, config] + } + }, + output: [rerouteType], + output_name: [], + output_is_list: [] + }; + } + console.warn( + "Skipping virtual node " + node.type + " when building group node " + this.name + ); + } + getInputConfig(node, inputName, seenInputs, config, extra) { + const customConfig = this.nodeData.config?.[node.index]?.input?.[inputName]; + let name = customConfig?.name ?? node.inputs?.find((inp) => inp.name === inputName)?.label ?? inputName; + let key = name; + let prefix = ""; + if (node.type === "PrimitiveNode" && node.title || name in seenInputs) { + prefix = `${node.title ?? node.type} `; + key = name = `${prefix}${inputName}`; + if (name in seenInputs) { + name = `${prefix}${seenInputs[name]} ${inputName}`; + } + } + seenInputs[key] = (seenInputs[key] ?? 1) + 1; + if (inputName === "seed" || inputName === "noise_seed") { + if (!extra) extra = {}; + extra.control_after_generate = `${prefix}control_after_generate`; + } + if (config[0] === "IMAGEUPLOAD") { + if (!extra) extra = {}; + extra.widget = this.oldToNewWidgetMap[node.index]?.[config[1]?.widget ?? "image"] ?? "image"; + } + if (extra) { + config = [config[0], { ...config[1], ...extra }]; + } + return { name, config, customConfig }; + } + processWidgetInputs(inputs, node, inputNames, seenInputs) { + const slots = []; + const converted = /* @__PURE__ */ new Map(); + const widgetMap = this.oldToNewWidgetMap[node.index] = {}; + for (const inputName of inputNames) { + let widgetType = app.getWidgetType(inputs[inputName], inputName); + if (widgetType) { + const convertedIndex = node.inputs?.findIndex( + (inp) => inp.name === inputName && inp.widget?.name === inputName + ); + if (convertedIndex > -1) { + converted.set(convertedIndex, inputName); + widgetMap[inputName] = null; + } else { + const { name, config } = this.getInputConfig( + node, + inputName, + seenInputs, + inputs[inputName] + ); + this.nodeDef.input.required[name] = config; + widgetMap[inputName] = name; + this.newToOldWidgetMap[name] = { node, inputName }; + } + } else { + slots.push(inputName); + } + } + return { converted, slots }; + } + checkPrimitiveConnection(link, inputName, inputs) { + const sourceNode = this.nodeData.nodes[link[0]]; + if (sourceNode.type === "PrimitiveNode") { + const [sourceNodeId, _, targetNodeId, __] = link; + const primitiveDef = this.primitiveDefs[sourceNodeId]; + const targetWidget = inputs[inputName]; + const primitiveConfig = primitiveDef.input.required.value; + const output = { widget: primitiveConfig }; + const config = mergeIfValid( + output, + targetWidget, + false, + null, + primitiveConfig + ); + primitiveConfig[1] = config?.customConfig ?? inputs[inputName][1] ? { ...inputs[inputName][1] } : {}; + let name = this.oldToNewWidgetMap[sourceNodeId]["value"]; + name = name.substr(0, name.length - 6); + primitiveConfig[1].control_after_generate = true; + primitiveConfig[1].control_prefix = name; + let toPrimitive = this.widgetToPrimitive[targetNodeId]; + if (!toPrimitive) { + toPrimitive = this.widgetToPrimitive[targetNodeId] = {}; + } + if (toPrimitive[inputName]) { + toPrimitive[inputName].push(sourceNodeId); + } + toPrimitive[inputName] = sourceNodeId; + let toWidget = this.primitiveToWidget[sourceNodeId]; + if (!toWidget) { + toWidget = this.primitiveToWidget[sourceNodeId] = []; + } + toWidget.push({ nodeId: targetNodeId, inputName }); + } + } + processInputSlots(inputs, node, slots, linksTo, inputMap, seenInputs) { + this.nodeInputs[node.index] = {}; + for (let i = 0; i < slots.length; i++) { + const inputName = slots[i]; + if (linksTo[i]) { + this.checkPrimitiveConnection(linksTo[i], inputName, inputs); + continue; + } + const { name, config, customConfig } = this.getInputConfig( + node, + inputName, + seenInputs, + inputs[inputName] + ); + this.nodeInputs[node.index][inputName] = name; + if (customConfig?.visible === false) continue; + this.nodeDef.input.required[name] = config; + inputMap[i] = this.inputCount++; + } + } + processConvertedWidgets(inputs, node, slots, converted, linksTo, inputMap, seenInputs) { + const convertedSlots = [...converted.keys()].sort().map((k) => converted.get(k)); + for (let i = 0; i < convertedSlots.length; i++) { + const inputName = convertedSlots[i]; + if (linksTo[slots.length + i]) { + this.checkPrimitiveConnection( + linksTo[slots.length + i], + inputName, + inputs + ); + continue; + } + const { name, config } = this.getInputConfig( + node, + inputName, + seenInputs, + inputs[inputName], + { + defaultInput: true + } + ); + this.nodeDef.input.required[name] = config; + this.newToOldWidgetMap[name] = { node, inputName }; + if (!this.oldToNewWidgetMap[node.index]) { + this.oldToNewWidgetMap[node.index] = {}; + } + this.oldToNewWidgetMap[node.index][inputName] = name; + inputMap[slots.length + i] = this.inputCount++; + } + } + #convertedToProcess = []; + processNodeInputs(node, seenInputs, inputs) { + const inputMapping = []; + const inputNames = Object.keys(inputs); + if (!inputNames.length) return; + const { converted, slots } = this.processWidgetInputs( + inputs, + node, + inputNames, + seenInputs + ); + const linksTo = this.linksTo[node.index] ?? {}; + const inputMap = this.oldToNewInputMap[node.index] = {}; + this.processInputSlots(inputs, node, slots, linksTo, inputMap, seenInputs); + this.#convertedToProcess.push( + () => this.processConvertedWidgets( + inputs, + node, + slots, + converted, + linksTo, + inputMap, + seenInputs + ) + ); + return inputMapping; + } + processNodeOutputs(node, seenOutputs, def) { + const oldToNew = this.oldToNewOutputMap[node.index] = {}; + for (let outputId = 0; outputId < def.output.length; outputId++) { + const linksFrom = this.linksFrom[node.index]; + const hasLink = linksFrom?.[outputId] && !this.externalFrom[node.index]?.[outputId]; + const customConfig = this.nodeData.config?.[node.index]?.output?.[outputId]; + const visible = customConfig?.visible ?? !hasLink; + this.outputVisibility.push(visible); + if (!visible) { + continue; + } + oldToNew[outputId] = this.nodeDef.output.length; + this.newToOldOutputMap[this.nodeDef.output.length] = { + node, + slot: outputId + }; + this.nodeDef.output.push(def.output[outputId]); + this.nodeDef.output_is_list.push(def.output_is_list[outputId]); + let label = customConfig?.name; + if (!label) { + label = def.output_name?.[outputId] ?? def.output[outputId]; + const output = node.outputs.find((o) => o.name === label); + if (output?.label) { + label = output.label; + } + } + let name = label; + if (name in seenOutputs) { + const prefix = `${node.title ?? node.type} `; + name = `${prefix}${label}`; + if (name in seenOutputs) { + name = `${prefix}${node.index} ${label}`; + } + } + seenOutputs[name] = 1; + this.nodeDef.output_name.push(name); + } + } + static async registerFromWorkflow(groupNodes, missingNodeTypes) { + for (const g in groupNodes) { + const groupData = groupNodes[g]; + let hasMissing = false; + for (const n of groupData.nodes) { + if (!(n.type in LiteGraph.registered_node_types)) { + missingNodeTypes.push({ + type: n.type, + hint: ` (In group node '${PREFIX}${SEPARATOR}${g}')` + }); + missingNodeTypes.push({ + type: `${PREFIX}${SEPARATOR}` + g, + action: { + text: "Remove from workflow", + callback: /* @__PURE__ */ __name((e) => { + delete groupNodes[g]; + e.target.textContent = "Removed"; + e.target.style.pointerEvents = "none"; + e.target.style.opacity = 0.7; + }, "callback") + } + }); + hasMissing = true; + } + } + if (hasMissing) continue; + const config = new GroupNodeConfig(g, groupData); + await config.registerType(); + } + } +} +class GroupNodeHandler { + static { + __name(this, "GroupNodeHandler"); + } + node; + groupData; + innerNodes; + constructor(node) { + this.node = node; + this.groupData = node.constructor?.nodeData?.[GROUP]; + this.node.setInnerNodes = (innerNodes) => { + this.innerNodes = innerNodes; + for (let innerNodeIndex = 0; innerNodeIndex < this.innerNodes.length; innerNodeIndex++) { + const innerNode = this.innerNodes[innerNodeIndex]; + for (const w of innerNode.widgets ?? []) { + if (w.type === "converted-widget") { + w.serializeValue = w.origSerializeValue; + } + } + innerNode.index = innerNodeIndex; + innerNode.getInputNode = (slot) => { + const externalSlot = this.groupData.oldToNewInputMap[innerNode.index]?.[slot]; + if (externalSlot != null) { + return this.node.getInputNode(externalSlot); + } + const innerLink = this.groupData.linksTo[innerNode.index]?.[slot]; + if (!innerLink) return null; + const inputNode = innerNodes[innerLink[0]]; + if (inputNode.type === "PrimitiveNode") return null; + return inputNode; + }; + innerNode.getInputLink = (slot) => { + const externalSlot = this.groupData.oldToNewInputMap[innerNode.index]?.[slot]; + if (externalSlot != null) { + const linkId = this.node.inputs[externalSlot].link; + let link2 = app.graph.links[linkId]; + link2 = { + ...link2, + target_id: innerNode.id, + target_slot: +slot + }; + return link2; + } + let link = this.groupData.linksTo[innerNode.index]?.[slot]; + if (!link) return null; + link = { + origin_id: innerNodes[link[0]].id, + origin_slot: link[1], + target_id: innerNode.id, + target_slot: +slot + }; + return link; + }; + } + }; + this.node.updateLink = (link) => { + link = { ...link }; + const output = this.groupData.newToOldOutputMap[link.origin_slot]; + let innerNode = this.innerNodes[output.node.index]; + let l; + while (innerNode?.type === "Reroute") { + l = innerNode.getInputLink(0); + innerNode = innerNode.getInputNode(0); + } + if (!innerNode) { + return null; + } + if (l && GroupNodeHandler.isGroupNode(innerNode)) { + return innerNode.updateLink(l); + } + link.origin_id = innerNode.id; + link.origin_slot = l?.origin_slot ?? output.slot; + return link; + }; + this.node.getInnerNodes = () => { + if (!this.innerNodes) { + this.node.setInnerNodes( + this.groupData.nodeData.nodes.map((n, i) => { + const innerNode = LiteGraph.createNode(n.type); + innerNode.configure(n); + innerNode.id = `${this.node.id}:${i}`; + return innerNode; + }) + ); + } + this.updateInnerWidgets(); + return this.innerNodes; + }; + this.node.recreate = async () => { + const id2 = this.node.id; + const sz = this.node.size; + const nodes = this.node.convertToNodes(); + const groupNode = LiteGraph.createNode(this.node.type); + groupNode.id = id2; + groupNode.setInnerNodes(nodes); + groupNode[GROUP].populateWidgets(); + app.graph.add(groupNode); + groupNode.size = [ + Math.max(groupNode.size[0], sz[0]), + Math.max(groupNode.size[1], sz[1]) + ]; + const builder = new GroupNodeBuilder(nodes); + const nodeData = builder.getNodeData(); + groupNode[GROUP].groupData.nodeData.links = nodeData.links; + groupNode[GROUP].replaceNodes(nodes); + return groupNode; + }; + this.node.convertToNodes = () => { + const addInnerNodes = /* @__PURE__ */ __name(() => { + const c = { ...this.groupData.nodeData }; + c.nodes = [...c.nodes]; + const innerNodes = this.node.getInnerNodes(); + let ids = []; + for (let i = 0; i < c.nodes.length; i++) { + let id2 = innerNodes?.[i]?.id; + if (id2 == null || isNaN(id2)) { + id2 = void 0; + } else { + ids.push(id2); + } + c.nodes[i] = { ...c.nodes[i], id: id2 }; + } + deserialiseAndCreate(JSON.stringify(c), app.canvas); + const [x, y] = this.node.pos; + let top; + let left; + const selectedIds = ids.length ? ids : Object.keys(app.canvas.selected_nodes); + const newNodes = []; + for (let i = 0; i < selectedIds.length; i++) { + const id2 = selectedIds[i]; + const newNode = app.graph.getNodeById(id2); + const innerNode = innerNodes[i]; + newNodes.push(newNode); + if (left == null || newNode.pos[0] < left) { + left = newNode.pos[0]; + } + if (top == null || newNode.pos[1] < top) { + top = newNode.pos[1]; + } + if (!newNode.widgets) continue; + const map = this.groupData.oldToNewWidgetMap[innerNode.index]; + if (map) { + const widgets = Object.keys(map); + for (const oldName of widgets) { + const newName = map[oldName]; + if (!newName) continue; + const widgetIndex = this.node.widgets.findIndex( + (w) => w.name === newName + ); + if (widgetIndex === -1) continue; + if (innerNode.type === "PrimitiveNode") { + for (let i2 = 0; i2 < newNode.widgets.length; i2++) { + newNode.widgets[i2].value = this.node.widgets[widgetIndex + i2].value; + } + } else { + const outerWidget = this.node.widgets[widgetIndex]; + const newWidget = newNode.widgets.find( + (w) => w.name === oldName + ); + if (!newWidget) continue; + newWidget.value = outerWidget.value; + for (let w = 0; w < outerWidget.linkedWidgets?.length; w++) { + newWidget.linkedWidgets[w].value = outerWidget.linkedWidgets[w].value; + } + } + } + } + } + for (const newNode of newNodes) { + newNode.pos[0] -= left - x; + newNode.pos[1] -= top - y; + } + return { newNodes, selectedIds }; + }, "addInnerNodes"); + const reconnectInputs = /* @__PURE__ */ __name((selectedIds) => { + for (const innerNodeIndex in this.groupData.oldToNewInputMap) { + const id2 = selectedIds[innerNodeIndex]; + const newNode = app.graph.getNodeById(id2); + const map = this.groupData.oldToNewInputMap[innerNodeIndex]; + for (const innerInputId in map) { + const groupSlotId = map[innerInputId]; + if (groupSlotId == null) continue; + const slot = node.inputs[groupSlotId]; + if (slot.link == null) continue; + const link = app.graph.links[slot.link]; + if (!link) continue; + const originNode = app.graph.getNodeById(link.origin_id); + originNode.connect(link.origin_slot, newNode, +innerInputId); + } + } + }, "reconnectInputs"); + const reconnectOutputs = /* @__PURE__ */ __name((selectedIds) => { + for (let groupOutputId = 0; groupOutputId < node.outputs?.length; groupOutputId++) { + const output = node.outputs[groupOutputId]; + if (!output.links) continue; + const links = [...output.links]; + for (const l of links) { + const slot = this.groupData.newToOldOutputMap[groupOutputId]; + const link = app.graph.links[l]; + const targetNode = app.graph.getNodeById(link.target_id); + const newNode = app.graph.getNodeById(selectedIds[slot.node.index]); + newNode.connect(slot.slot, targetNode, link.target_slot); + } + } + }, "reconnectOutputs"); + app.canvas.emitBeforeChange(); + try { + const { newNodes, selectedIds } = addInnerNodes(); + reconnectInputs(selectedIds); + reconnectOutputs(selectedIds); + app.graph.remove(this.node); + return newNodes; + } finally { + app.canvas.emitAfterChange(); + } + }; + const getExtraMenuOptions = this.node.getExtraMenuOptions; + this.node.getExtraMenuOptions = function(_, options) { + getExtraMenuOptions?.apply(this, arguments); + let optionIndex = options.findIndex((o) => o.content === "Outputs"); + if (optionIndex === -1) optionIndex = options.length; + else optionIndex++; + options.splice( + optionIndex, + 0, + null, + { + content: "Convert to nodes", + // @ts-expect-error + callback: /* @__PURE__ */ __name(() => { + return this.convertToNodes(); + }, "callback") + }, + { + content: "Manage Group Node", + callback: /* @__PURE__ */ __name(() => manageGroupNodes(this.type), "callback") + } + ); + }; + const onDrawTitleBox = this.node.onDrawTitleBox; + this.node.onDrawTitleBox = function(ctx, height, size, scale) { + onDrawTitleBox?.apply(this, arguments); + const fill2 = ctx.fillStyle; + ctx.beginPath(); + ctx.rect(11, -height + 11, 2, 2); + ctx.rect(14, -height + 11, 2, 2); + ctx.rect(17, -height + 11, 2, 2); + ctx.rect(11, -height + 14, 2, 2); + ctx.rect(14, -height + 14, 2, 2); + ctx.rect(17, -height + 14, 2, 2); + ctx.rect(11, -height + 17, 2, 2); + ctx.rect(14, -height + 17, 2, 2); + ctx.rect(17, -height + 17, 2, 2); + ctx.fillStyle = this.boxcolor || LiteGraph.NODE_DEFAULT_BOXCOLOR; + ctx.fill(); + ctx.fillStyle = fill2; + }; + const onDrawForeground = node.onDrawForeground; + const groupData = this.groupData.nodeData; + node.onDrawForeground = function(ctx) { + const r = onDrawForeground?.apply?.(this, arguments); + if (+app.runningNodeId === this.id && this.runningInternalNodeId !== null) { + const n = groupData.nodes[this.runningInternalNodeId]; + if (!n) return; + const message = `Running ${n.title || n.type} (${this.runningInternalNodeId}/${groupData.nodes.length})`; + ctx.save(); + ctx.font = "12px sans-serif"; + const sz = ctx.measureText(message); + ctx.fillStyle = node.boxcolor || LiteGraph.NODE_DEFAULT_BOXCOLOR; + ctx.beginPath(); + ctx.roundRect( + 0, + -LiteGraph.NODE_TITLE_HEIGHT - 20, + sz.width + 12, + 20, + 5 + ); + ctx.fill(); + ctx.fillStyle = "#fff"; + ctx.fillText(message, 6, -LiteGraph.NODE_TITLE_HEIGHT - 6); + ctx.restore(); + } + }; + const onExecutionStart = this.node.onExecutionStart; + this.node.onExecutionStart = function() { + this.resetExecution = true; + return onExecutionStart?.apply(this, arguments); + }; + const self2 = this; + const onNodeCreated = this.node.onNodeCreated; + this.node.onNodeCreated = function() { + if (!this.widgets) { + return; + } + const config = self2.groupData.nodeData.config; + if (config) { + for (const n in config) { + const inputs = config[n]?.input; + for (const w in inputs) { + if (inputs[w].visible !== false) continue; + const widgetName = self2.groupData.oldToNewWidgetMap[n][w]; + const widget = this.widgets.find((w2) => w2.name === widgetName); + if (widget) { + widget.type = "hidden"; + widget.computeSize = () => [0, -4]; + } + } + } + } + return onNodeCreated?.apply(this, arguments); + }; + function handleEvent(type, getId, getEvent) { + const handler = /* @__PURE__ */ __name(({ detail }) => { + const id2 = getId(detail); + if (!id2) return; + const node2 = app.graph.getNodeById(id2); + if (node2) return; + const innerNodeIndex = this.innerNodes?.findIndex((n) => n.id == id2); + if (innerNodeIndex > -1) { + this.node.runningInternalNodeId = innerNodeIndex; + api.dispatchCustomEvent( + type, + getEvent(detail, `${this.node.id}`, this.node) + ); + } + }, "handler"); + api.addEventListener(type, handler); + return handler; + } + __name(handleEvent, "handleEvent"); + const executing = handleEvent.call( + this, + "executing", + (d) => d, + (d, id2, node2) => id2 + ); + const executed = handleEvent.call( + this, + "executed", + (d) => d?.display_node || d?.node, + (d, id2, node2) => ({ + ...d, + node: id2, + display_node: id2, + merge: !node2.resetExecution + }) + ); + const onRemoved = node.onRemoved; + this.node.onRemoved = function() { + onRemoved?.apply(this, arguments); + api.removeEventListener("executing", executing); + api.removeEventListener("executed", executed); + }; + this.node.refreshComboInNode = (defs) => { + for (const widgetName in this.groupData.newToOldWidgetMap) { + const widget = this.node.widgets.find((w) => w.name === widgetName); + if (widget?.type === "combo") { + const old = this.groupData.newToOldWidgetMap[widgetName]; + const def = defs[old.node.type]; + const input = def?.input?.required?.[old.inputName] ?? def?.input?.optional?.[old.inputName]; + if (!input) continue; + widget.options.values = input[0]; + if (old.inputName !== "image" && // @ts-expect-error Widget values + !widget.options.values.includes(widget.value)) { + widget.value = widget.options.values[0]; + widget.callback(widget.value); + } + } + } + }; + } + updateInnerWidgets() { + for (const newWidgetName in this.groupData.newToOldWidgetMap) { + const newWidget = this.node.widgets.find((w) => w.name === newWidgetName); + if (!newWidget) continue; + const newValue = newWidget.value; + const old = this.groupData.newToOldWidgetMap[newWidgetName]; + let innerNode = this.innerNodes[old.node.index]; + if (innerNode.type === "PrimitiveNode") { + innerNode.primitiveValue = newValue; + const primitiveLinked = this.groupData.primitiveToWidget[old.node.index]; + for (const linked of primitiveLinked ?? []) { + const node = this.innerNodes[linked.nodeId]; + const widget2 = node.widgets.find((w) => w.name === linked.inputName); + if (widget2) { + widget2.value = newValue; + } + } + continue; + } else if (innerNode.type === "Reroute") { + const rerouteLinks = this.groupData.linksFrom[old.node.index]; + if (rerouteLinks) { + for (const [_, , targetNodeId, targetSlot] of rerouteLinks["0"]) { + const node = this.innerNodes[targetNodeId]; + const input = node.inputs[targetSlot]; + if (input.widget) { + const widget2 = node.widgets?.find( + (w) => w.name === input.widget.name + ); + if (widget2) { + widget2.value = newValue; + } + } + } + } + } + const widget = innerNode.widgets?.find((w) => w.name === old.inputName); + if (widget) { + widget.value = newValue; + } + } + } + populatePrimitive(node, nodeId, oldName, i, linkedShift) { + const primitiveId = this.groupData.widgetToPrimitive[nodeId]?.[oldName]; + if (primitiveId == null) return; + const targetWidgetName = this.groupData.oldToNewWidgetMap[primitiveId]["value"]; + const targetWidgetIndex = this.node.widgets.findIndex( + (w) => w.name === targetWidgetName + ); + if (targetWidgetIndex > -1) { + const primitiveNode = this.innerNodes[primitiveId]; + let len = primitiveNode.widgets.length; + if (len - 1 !== this.node.widgets[targetWidgetIndex].linkedWidgets?.length) { + len = 1; + } + for (let i2 = 0; i2 < len; i2++) { + this.node.widgets[targetWidgetIndex + i2].value = primitiveNode.widgets[i2].value; + } + } + return true; + } + populateReroute(node, nodeId, map) { + if (node.type !== "Reroute") return; + const link = this.groupData.linksFrom[nodeId]?.[0]?.[0]; + if (!link) return; + const [, , targetNodeId, targetNodeSlot] = link; + const targetNode = this.groupData.nodeData.nodes[targetNodeId]; + const inputs = targetNode.inputs; + const targetWidget = inputs?.[targetNodeSlot]?.widget; + if (!targetWidget) return; + const offset = inputs.length - (targetNode.widgets_values?.length ?? 0); + const v = targetNode.widgets_values?.[targetNodeSlot - offset]; + if (v == null) return; + const widgetName = Object.values(map)[0]; + const widget = this.node.widgets.find((w) => w.name === widgetName); + if (widget) { + widget.value = v; + } + } + populateWidgets() { + if (!this.node.widgets) return; + for (let nodeId = 0; nodeId < this.groupData.nodeData.nodes.length; nodeId++) { + const node = this.groupData.nodeData.nodes[nodeId]; + const map = this.groupData.oldToNewWidgetMap[nodeId] ?? {}; + const widgets = Object.keys(map); + if (!node.widgets_values?.length) { + this.populateReroute(node, nodeId, map); + continue; + } + let linkedShift = 0; + for (let i = 0; i < widgets.length; i++) { + const oldName = widgets[i]; + const newName = map[oldName]; + const widgetIndex = this.node.widgets.findIndex( + (w) => w.name === newName + ); + const mainWidget = this.node.widgets[widgetIndex]; + if (this.populatePrimitive(node, nodeId, oldName, i, linkedShift) || widgetIndex === -1) { + const innerWidget = this.innerNodes[nodeId].widgets?.find( + (w) => w.name === oldName + ); + linkedShift += innerWidget?.linkedWidgets?.length ?? 0; + } + if (widgetIndex === -1) { + continue; + } + mainWidget.value = node.widgets_values[i + linkedShift]; + for (let w = 0; w < mainWidget.linkedWidgets?.length; w++) { + this.node.widgets[widgetIndex + w + 1].value = node.widgets_values[i + ++linkedShift]; + } + } + } + } + replaceNodes(nodes) { + let top; + let left; + for (let i = 0; i < nodes.length; i++) { + const node = nodes[i]; + if (left == null || node.pos[0] < left) { + left = node.pos[0]; + } + if (top == null || node.pos[1] < top) { + top = node.pos[1]; + } + this.linkOutputs(node, i); + app.graph.remove(node); + } + this.linkInputs(); + this.node.pos = [left, top]; + } + linkOutputs(originalNode, nodeId) { + if (!originalNode.outputs) return; + for (const output of originalNode.outputs) { + if (!output.links) continue; + const links = [...output.links]; + for (const l of links) { + const link = app.graph.links[l]; + if (!link) continue; + const targetNode = app.graph.getNodeById(link.target_id); + const newSlot = this.groupData.oldToNewOutputMap[nodeId]?.[link.origin_slot]; + if (newSlot != null) { + this.node.connect(newSlot, targetNode, link.target_slot); + } + } + } + } + linkInputs() { + for (const link of this.groupData.nodeData.links ?? []) { + const [, originSlot, targetId, targetSlot, actualOriginId] = link; + const originNode = app.graph.getNodeById(actualOriginId); + if (!originNode) continue; + originNode.connect( + originSlot, + // @ts-expect-error Valid - uses deprecated interface. Required check: if (graph.getNodeById(this.node.id) !== this.node) report() + this.node.id, + this.groupData.oldToNewInputMap[targetId][targetSlot] + ); + } + } + static getGroupData(node) { + return (node.nodeData ?? node.constructor?.nodeData)?.[GROUP]; + } + static isGroupNode(node) { + return !!node.constructor?.nodeData?.[GROUP]; + } + static async fromNodes(nodes) { + const builder = new GroupNodeBuilder(nodes); + const res = await builder.build(); + if (!res) return; + const { name, nodeData } = res; + const config = new GroupNodeConfig(name, nodeData); + await config.registerType(); + const groupNode = LiteGraph.createNode(`${PREFIX}${SEPARATOR}${name}`); + groupNode.setInnerNodes(builder.nodes); + groupNode[GROUP].populateWidgets(); + app.graph.add(groupNode); + groupNode[GROUP].replaceNodes(builder.nodes); + return groupNode; + } +} +function addConvertToGroupOptions() { + function addConvertOption(options, index) { + const selected = Object.values(app.canvas.selected_nodes ?? {}); + const disabled = selected.length < 2 || selected.find((n) => GroupNodeHandler.isGroupNode(n)); + options.splice(index + 1, null, { + content: `Convert to Group Node`, + disabled, + callback: convertSelectedNodesToGroupNode + }); + } + __name(addConvertOption, "addConvertOption"); + function addManageOption(options, index) { + const groups = app.graph.extra?.groupNodes; + const disabled = !groups || !Object.keys(groups).length; + options.splice(index + 1, null, { + content: `Manage Group Nodes`, + disabled, + callback: /* @__PURE__ */ __name(() => manageGroupNodes(), "callback") + }); + } + __name(addManageOption, "addManageOption"); + const getCanvasMenuOptions = LGraphCanvas.prototype.getCanvasMenuOptions; + LGraphCanvas.prototype.getCanvasMenuOptions = function() { + const options = getCanvasMenuOptions.apply(this, arguments); + const index = options.findIndex((o) => o?.content === "Add Group") + 1 || options.length; + addConvertOption(options, index); + addManageOption(options, index + 1); + return options; + }; + const getNodeMenuOptions = LGraphCanvas.prototype.getNodeMenuOptions; + LGraphCanvas.prototype.getNodeMenuOptions = function(node) { + const options = getNodeMenuOptions.apply(this, arguments); + if (!GroupNodeHandler.isGroupNode(node)) { + const index = options.findIndex((o) => o?.content === "Outputs") + 1 || options.length - 1; + addConvertOption(options, index); + } + return options; + }; +} +__name(addConvertToGroupOptions, "addConvertToGroupOptions"); +const replaceLegacySeparators = /* @__PURE__ */ __name((nodes) => { + for (const node of nodes) { + if (typeof node.type === "string" && node.type.startsWith("workflow/")) { + node.type = node.type.replace(/^workflow\//, `${PREFIX}${SEPARATOR}`); + } + } +}, "replaceLegacySeparators"); +async function convertSelectedNodesToGroupNode() { + const nodes = Object.values(app.canvas.selected_nodes ?? {}); + if (nodes.length === 0) { + throw new Error("No nodes selected"); + } + if (nodes.length === 1) { + throw new Error("Please select multiple nodes to convert to group node"); + } + if (nodes.some((n) => GroupNodeHandler.isGroupNode(n))) { + throw new Error("Selected nodes contain a group node"); + } + return await GroupNodeHandler.fromNodes(nodes); +} +__name(convertSelectedNodesToGroupNode, "convertSelectedNodesToGroupNode"); +function ungroupSelectedGroupNodes() { + const nodes = Object.values(app.canvas.selected_nodes ?? {}); + for (const node of nodes) { + if (GroupNodeHandler.isGroupNode(node)) { + node.convertToNodes?.(); + } + } +} +__name(ungroupSelectedGroupNodes, "ungroupSelectedGroupNodes"); +function manageGroupNodes(type) { + new ManageGroupDialog(app).show(type); +} +__name(manageGroupNodes, "manageGroupNodes"); +const id$2 = "Comfy.GroupNode"; +let globalDefs; +const ext = { + name: id$2, + commands: [ + { + id: "Comfy.GroupNode.ConvertSelectedNodesToGroupNode", + label: "Convert selected nodes to group node", + icon: "pi pi-sitemap", + versionAdded: "1.3.17", + function: convertSelectedNodesToGroupNode + }, + { + id: "Comfy.GroupNode.UngroupSelectedGroupNodes", + label: "Ungroup selected group nodes", + icon: "pi pi-sitemap", + versionAdded: "1.3.17", + function: ungroupSelectedGroupNodes + }, + { + id: "Comfy.GroupNode.ManageGroupNodes", + label: "Manage group nodes", + icon: "pi pi-cog", + versionAdded: "1.3.17", + function: manageGroupNodes + } + ], + keybindings: [ + { + commandId: "Comfy.GroupNode.ConvertSelectedNodesToGroupNode", + combo: { + alt: true, + key: "g" + } + }, + { + commandId: "Comfy.GroupNode.UngroupSelectedGroupNodes", + combo: { + alt: true, + shift: true, + key: "G" + } + } + ], + setup() { + addConvertToGroupOptions(); + }, + async beforeConfigureGraph(graphData, missingNodeTypes) { + const nodes = graphData?.extra?.groupNodes; + if (nodes) { + replaceLegacySeparators(graphData.nodes); + await GroupNodeConfig.registerFromWorkflow(nodes, missingNodeTypes); + } + }, + addCustomNodeDefs(defs) { + globalDefs = defs; + }, + nodeCreated(node) { + if (GroupNodeHandler.isGroupNode(node)) { + node[GROUP] = new GroupNodeHandler(node); + if (node.title && node[GROUP]?.groupData?.nodeData) { + Workflow.storeGroupNode(node.title, node[GROUP].groupData.nodeData); + } + } + }, + async refreshComboInNodes(defs) { + Object.assign(globalDefs, defs); + const nodes = app.graph.extra?.groupNodes; + if (nodes) { + await GroupNodeConfig.registerFromWorkflow(nodes, {}); + } + } +}; +app.registerExtension(ext); +window.comfyAPI = window.comfyAPI || {}; +window.comfyAPI.groupNode = window.comfyAPI.groupNode || {}; +window.comfyAPI.groupNode.GroupNodeConfig = GroupNodeConfig; +window.comfyAPI.groupNode.GroupNodeHandler = GroupNodeHandler; +function setNodeMode(node, mode) { + node.mode = mode; + node.graph?.change(); +} +__name(setNodeMode, "setNodeMode"); +function addNodesToGroup(group, items) { + const padding = useSettingStore().get("Comfy.GroupSelectedNodes.Padding"); + group.resizeTo([...group.children, ...items], padding); +} +__name(addNodesToGroup, "addNodesToGroup"); +app.registerExtension({ + name: "Comfy.GroupOptions", + setup() { + const orig = LGraphCanvas.prototype.getCanvasMenuOptions; + LGraphCanvas.prototype.getCanvasMenuOptions = function() { + const options = orig.apply(this, arguments); + const group = this.graph.getGroupOnPos( + this.graph_mouse[0], + this.graph_mouse[1] + ); + if (!group) { + options.push({ + content: "Add Group For Selected Nodes", + disabled: !this.selectedItems?.size, + callback: /* @__PURE__ */ __name(() => { + const group2 = new LGraphGroup(); + addNodesToGroup(group2, this.selectedItems); + this.graph.add(group2); + this.graph.change(); + }, "callback") + }); + return options; + } + group.recomputeInsideNodes(); + const nodesInGroup = group.nodes; + options.push({ + content: "Add Selected Nodes To Group", + disabled: !this.selectedItems?.size, + callback: /* @__PURE__ */ __name(() => { + addNodesToGroup(group, this.selectedItems); + this.graph.change(); + }, "callback") + }); + if (nodesInGroup.length === 0) { + return options; + } else { + options.push(null); + } + let allNodesAreSameMode = true; + for (let i = 1; i < nodesInGroup.length; i++) { + if (nodesInGroup[i].mode !== nodesInGroup[0].mode) { + allNodesAreSameMode = false; + break; + } + } + options.push({ + content: "Fit Group To Nodes", + callback: /* @__PURE__ */ __name(() => { + group.recomputeInsideNodes(); + const padding = useSettingStore().get( + "Comfy.GroupSelectedNodes.Padding" + ); + group.resizeTo(group.children, padding); + this.graph.change(); + }, "callback") + }); + options.push({ + content: "Select Nodes", + callback: /* @__PURE__ */ __name(() => { + this.selectNodes(nodesInGroup); + this.graph.change(); + this.canvas.focus(); + }, "callback") + }); + if (allNodesAreSameMode) { + const mode = nodesInGroup[0].mode; + switch (mode) { + case 0: + options.push({ + content: "Set Group Nodes to Never", + callback: /* @__PURE__ */ __name(() => { + for (const node of nodesInGroup) { + setNodeMode(node, 2); + } + }, "callback") + }); + options.push({ + content: "Bypass Group Nodes", + callback: /* @__PURE__ */ __name(() => { + for (const node of nodesInGroup) { + setNodeMode(node, 4); + } + }, "callback") + }); + break; + case 2: + options.push({ + content: "Set Group Nodes to Always", + callback: /* @__PURE__ */ __name(() => { + for (const node of nodesInGroup) { + setNodeMode(node, 0); + } + }, "callback") + }); + options.push({ + content: "Bypass Group Nodes", + callback: /* @__PURE__ */ __name(() => { + for (const node of nodesInGroup) { + setNodeMode(node, 4); + } + }, "callback") + }); + break; + case 4: + options.push({ + content: "Set Group Nodes to Always", + callback: /* @__PURE__ */ __name(() => { + for (const node of nodesInGroup) { + setNodeMode(node, 0); + } + }, "callback") + }); + options.push({ + content: "Set Group Nodes to Never", + callback: /* @__PURE__ */ __name(() => { + for (const node of nodesInGroup) { + setNodeMode(node, 2); + } + }, "callback") + }); + break; + default: + options.push({ + content: "Set Group Nodes to Always", + callback: /* @__PURE__ */ __name(() => { + for (const node of nodesInGroup) { + setNodeMode(node, 0); + } + }, "callback") + }); + options.push({ + content: "Set Group Nodes to Never", + callback: /* @__PURE__ */ __name(() => { + for (const node of nodesInGroup) { + setNodeMode(node, 2); + } + }, "callback") + }); + options.push({ + content: "Bypass Group Nodes", + callback: /* @__PURE__ */ __name(() => { + for (const node of nodesInGroup) { + setNodeMode(node, 4); + } + }, "callback") + }); + break; + } + } else { + options.push({ + content: "Set Group Nodes to Always", + callback: /* @__PURE__ */ __name(() => { + for (const node of nodesInGroup) { + setNodeMode(node, 0); + } + }, "callback") + }); + options.push({ + content: "Set Group Nodes to Never", + callback: /* @__PURE__ */ __name(() => { + for (const node of nodesInGroup) { + setNodeMode(node, 2); + } + }, "callback") + }); + options.push({ + content: "Bypass Group Nodes", + callback: /* @__PURE__ */ __name(() => { + for (const node of nodesInGroup) { + setNodeMode(node, 4); + } + }, "callback") + }); + } + return options; + }; + } +}); +const id$1 = "Comfy.InvertMenuScrolling"; +app.registerExtension({ + name: id$1, + init() { + const ctxMenu = LiteGraph.ContextMenu; + const replace = /* @__PURE__ */ __name(() => { + LiteGraph.ContextMenu = function(values, options) { + options = options || {}; + if (options.scroll_speed) { + options.scroll_speed *= -1; + } else { + options.scroll_speed = -0.1; + } + return ctxMenu.call(this, values, options); + }; + LiteGraph.ContextMenu.prototype = ctxMenu.prototype; + }, "replace"); + app.ui.settings.addSetting({ + id: id$1, + category: ["LiteGraph", "Menu", "InvertMenuScrolling"], + name: "Invert Context Menu Scrolling", + type: "boolean", + defaultValue: false, + onChange(value) { + if (value) { + replace(); + } else { + LiteGraph.ContextMenu = ctxMenu; + } + } + }); + } +}); +/** + * @license + * Copyright 2010-2024 Three.js Authors + * SPDX-License-Identifier: MIT + */ +const REVISION = "170"; +const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 }; +const TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 }; +const CullFaceNone = 0; +const CullFaceBack = 1; +const CullFaceFront = 2; +const CullFaceFrontBack = 3; +const BasicShadowMap = 0; +const PCFShadowMap = 1; +const PCFSoftShadowMap = 2; +const VSMShadowMap = 3; +const FrontSide = 0; +const BackSide = 1; +const DoubleSide = 2; +const NoBlending = 0; +const NormalBlending = 1; +const AdditiveBlending = 2; +const SubtractiveBlending = 3; +const MultiplyBlending = 4; +const CustomBlending = 5; +const AddEquation = 100; +const SubtractEquation = 101; +const ReverseSubtractEquation = 102; +const MinEquation = 103; +const MaxEquation = 104; +const ZeroFactor = 200; +const OneFactor = 201; +const SrcColorFactor = 202; +const OneMinusSrcColorFactor = 203; +const SrcAlphaFactor = 204; +const OneMinusSrcAlphaFactor = 205; +const DstAlphaFactor = 206; +const OneMinusDstAlphaFactor = 207; +const DstColorFactor = 208; +const OneMinusDstColorFactor = 209; +const SrcAlphaSaturateFactor = 210; +const ConstantColorFactor = 211; +const OneMinusConstantColorFactor = 212; +const ConstantAlphaFactor = 213; +const OneMinusConstantAlphaFactor = 214; +const NeverDepth = 0; +const AlwaysDepth = 1; +const LessDepth = 2; +const LessEqualDepth = 3; +const EqualDepth = 4; +const GreaterEqualDepth = 5; +const GreaterDepth = 6; +const NotEqualDepth = 7; +const MultiplyOperation = 0; +const MixOperation = 1; +const AddOperation = 2; +const NoToneMapping = 0; +const LinearToneMapping = 1; +const ReinhardToneMapping = 2; +const CineonToneMapping = 3; +const ACESFilmicToneMapping = 4; +const CustomToneMapping = 5; +const AgXToneMapping = 6; +const NeutralToneMapping = 7; +const AttachedBindMode = "attached"; +const DetachedBindMode = "detached"; +const UVMapping = 300; +const CubeReflectionMapping = 301; +const CubeRefractionMapping = 302; +const EquirectangularReflectionMapping = 303; +const EquirectangularRefractionMapping = 304; +const CubeUVReflectionMapping = 306; +const RepeatWrapping = 1e3; +const ClampToEdgeWrapping = 1001; +const MirroredRepeatWrapping = 1002; +const NearestFilter = 1003; +const NearestMipmapNearestFilter = 1004; +const NearestMipMapNearestFilter = 1004; +const NearestMipmapLinearFilter = 1005; +const NearestMipMapLinearFilter = 1005; +const LinearFilter = 1006; +const LinearMipmapNearestFilter = 1007; +const LinearMipMapNearestFilter = 1007; +const LinearMipmapLinearFilter = 1008; +const LinearMipMapLinearFilter = 1008; +const UnsignedByteType = 1009; +const ByteType = 1010; +const ShortType = 1011; +const UnsignedShortType = 1012; +const IntType = 1013; +const UnsignedIntType = 1014; +const FloatType = 1015; +const HalfFloatType = 1016; +const UnsignedShort4444Type = 1017; +const UnsignedShort5551Type = 1018; +const UnsignedInt248Type = 1020; +const UnsignedInt5999Type = 35902; +const AlphaFormat = 1021; +const RGBFormat = 1022; +const RGBAFormat = 1023; +const LuminanceFormat = 1024; +const LuminanceAlphaFormat = 1025; +const DepthFormat = 1026; +const DepthStencilFormat = 1027; +const RedFormat = 1028; +const RedIntegerFormat = 1029; +const RGFormat = 1030; +const RGIntegerFormat = 1031; +const RGBIntegerFormat = 1032; +const RGBAIntegerFormat = 1033; +const RGB_S3TC_DXT1_Format = 33776; +const RGBA_S3TC_DXT1_Format = 33777; +const RGBA_S3TC_DXT3_Format = 33778; +const RGBA_S3TC_DXT5_Format = 33779; +const RGB_PVRTC_4BPPV1_Format = 35840; +const RGB_PVRTC_2BPPV1_Format = 35841; +const RGBA_PVRTC_4BPPV1_Format = 35842; +const RGBA_PVRTC_2BPPV1_Format = 35843; +const RGB_ETC1_Format = 36196; +const RGB_ETC2_Format = 37492; +const RGBA_ETC2_EAC_Format = 37496; +const RGBA_ASTC_4x4_Format = 37808; +const RGBA_ASTC_5x4_Format = 37809; +const RGBA_ASTC_5x5_Format = 37810; +const RGBA_ASTC_6x5_Format = 37811; +const RGBA_ASTC_6x6_Format = 37812; +const RGBA_ASTC_8x5_Format = 37813; +const RGBA_ASTC_8x6_Format = 37814; +const RGBA_ASTC_8x8_Format = 37815; +const RGBA_ASTC_10x5_Format = 37816; +const RGBA_ASTC_10x6_Format = 37817; +const RGBA_ASTC_10x8_Format = 37818; +const RGBA_ASTC_10x10_Format = 37819; +const RGBA_ASTC_12x10_Format = 37820; +const RGBA_ASTC_12x12_Format = 37821; +const RGBA_BPTC_Format = 36492; +const RGB_BPTC_SIGNED_Format = 36494; +const RGB_BPTC_UNSIGNED_Format = 36495; +const RED_RGTC1_Format = 36283; +const SIGNED_RED_RGTC1_Format = 36284; +const RED_GREEN_RGTC2_Format = 36285; +const SIGNED_RED_GREEN_RGTC2_Format = 36286; +const LoopOnce = 2200; +const LoopRepeat = 2201; +const LoopPingPong = 2202; +const InterpolateDiscrete = 2300; +const InterpolateLinear = 2301; +const InterpolateSmooth = 2302; +const ZeroCurvatureEnding = 2400; +const ZeroSlopeEnding = 2401; +const WrapAroundEnding = 2402; +const NormalAnimationBlendMode = 2500; +const AdditiveAnimationBlendMode = 2501; +const TrianglesDrawMode = 0; +const TriangleStripDrawMode = 1; +const TriangleFanDrawMode = 2; +const BasicDepthPacking = 3200; +const RGBADepthPacking = 3201; +const RGBDepthPacking = 3202; +const RGDepthPacking = 3203; +const TangentSpaceNormalMap = 0; +const ObjectSpaceNormalMap = 1; +const NoColorSpace = ""; +const SRGBColorSpace = "srgb"; +const LinearSRGBColorSpace = "srgb-linear"; +const LinearTransfer = "linear"; +const SRGBTransfer = "srgb"; +const ZeroStencilOp = 0; +const KeepStencilOp = 7680; +const ReplaceStencilOp = 7681; +const IncrementStencilOp = 7682; +const DecrementStencilOp = 7683; +const IncrementWrapStencilOp = 34055; +const DecrementWrapStencilOp = 34056; +const InvertStencilOp = 5386; +const NeverStencilFunc = 512; +const LessStencilFunc = 513; +const EqualStencilFunc = 514; +const LessEqualStencilFunc = 515; +const GreaterStencilFunc = 516; +const NotEqualStencilFunc = 517; +const GreaterEqualStencilFunc = 518; +const AlwaysStencilFunc = 519; +const NeverCompare = 512; +const LessCompare = 513; +const EqualCompare = 514; +const LessEqualCompare = 515; +const GreaterCompare = 516; +const NotEqualCompare = 517; +const GreaterEqualCompare = 518; +const AlwaysCompare = 519; +const StaticDrawUsage = 35044; +const DynamicDrawUsage = 35048; +const StreamDrawUsage = 35040; +const StaticReadUsage = 35045; +const DynamicReadUsage = 35049; +const StreamReadUsage = 35041; +const StaticCopyUsage = 35046; +const DynamicCopyUsage = 35050; +const StreamCopyUsage = 35042; +const GLSL1 = "100"; +const GLSL3 = "300 es"; +const WebGLCoordinateSystem = 2e3; +const WebGPUCoordinateSystem = 2001; +class EventDispatcher { + static { + __name(this, "EventDispatcher"); + } + addEventListener(type, listener) { + if (this._listeners === void 0) this._listeners = {}; + const listeners = this._listeners; + if (listeners[type] === void 0) { + listeners[type] = []; + } + if (listeners[type].indexOf(listener) === -1) { + listeners[type].push(listener); + } + } + hasEventListener(type, listener) { + if (this._listeners === void 0) return false; + const listeners = this._listeners; + return listeners[type] !== void 0 && listeners[type].indexOf(listener) !== -1; + } + removeEventListener(type, listener) { + if (this._listeners === void 0) return; + const listeners = this._listeners; + const listenerArray = listeners[type]; + if (listenerArray !== void 0) { + const index = listenerArray.indexOf(listener); + if (index !== -1) { + listenerArray.splice(index, 1); + } + } + } + dispatchEvent(event) { + if (this._listeners === void 0) return; + const listeners = this._listeners; + const listenerArray = listeners[event.type]; + if (listenerArray !== void 0) { + event.target = this; + const array = listenerArray.slice(0); + for (let i = 0, l = array.length; i < l; i++) { + array[i].call(this, event); + } + event.target = null; + } + } +} +const _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"]; +let _seed = 1234567; +const DEG2RAD = Math.PI / 180; +const RAD2DEG = 180 / Math.PI; +function generateUUID() { + const d0 = Math.random() * 4294967295 | 0; + const d1 = Math.random() * 4294967295 | 0; + const d2 = Math.random() * 4294967295 | 0; + const d3 = Math.random() * 4294967295 | 0; + const uuid = _lut[d0 & 255] + _lut[d0 >> 8 & 255] + _lut[d0 >> 16 & 255] + _lut[d0 >> 24 & 255] + "-" + _lut[d1 & 255] + _lut[d1 >> 8 & 255] + "-" + _lut[d1 >> 16 & 15 | 64] + _lut[d1 >> 24 & 255] + "-" + _lut[d2 & 63 | 128] + _lut[d2 >> 8 & 255] + "-" + _lut[d2 >> 16 & 255] + _lut[d2 >> 24 & 255] + _lut[d3 & 255] + _lut[d3 >> 8 & 255] + _lut[d3 >> 16 & 255] + _lut[d3 >> 24 & 255]; + return uuid.toLowerCase(); +} +__name(generateUUID, "generateUUID"); +function clamp(value, min, max2) { + return Math.max(min, Math.min(max2, value)); +} +__name(clamp, "clamp"); +function euclideanModulo(n, m) { + return (n % m + m) % m; +} +__name(euclideanModulo, "euclideanModulo"); +function mapLinear(x, a1, a2, b1, b22) { + return b1 + (x - a1) * (b22 - b1) / (a2 - a1); +} +__name(mapLinear, "mapLinear"); +function inverseLerp(x, y, value) { + if (x !== y) { + return (value - x) / (y - x); + } else { + return 0; + } +} +__name(inverseLerp, "inverseLerp"); +function lerp(x, y, t2) { + return (1 - t2) * x + t2 * y; +} +__name(lerp, "lerp"); +function damp(x, y, lambda, dt) { + return lerp(x, y, 1 - Math.exp(-lambda * dt)); +} +__name(damp, "damp"); +function pingpong(x, length = 1) { + return length - Math.abs(euclideanModulo(x, length * 2) - length); +} +__name(pingpong, "pingpong"); +function smoothstep(x, min, max2) { + if (x <= min) return 0; + if (x >= max2) return 1; + x = (x - min) / (max2 - min); + return x * x * (3 - 2 * x); +} +__name(smoothstep, "smoothstep"); +function smootherstep(x, min, max2) { + if (x <= min) return 0; + if (x >= max2) return 1; + x = (x - min) / (max2 - min); + return x * x * x * (x * (x * 6 - 15) + 10); +} +__name(smootherstep, "smootherstep"); +function randInt(low, high) { + return low + Math.floor(Math.random() * (high - low + 1)); +} +__name(randInt, "randInt"); +function randFloat(low, high) { + return low + Math.random() * (high - low); +} +__name(randFloat, "randFloat"); +function randFloatSpread(range) { + return range * (0.5 - Math.random()); +} +__name(randFloatSpread, "randFloatSpread"); +function seededRandom(s) { + if (s !== void 0) _seed = s; + let t2 = _seed += 1831565813; + t2 = Math.imul(t2 ^ t2 >>> 15, t2 | 1); + t2 ^= t2 + Math.imul(t2 ^ t2 >>> 7, t2 | 61); + return ((t2 ^ t2 >>> 14) >>> 0) / 4294967296; +} +__name(seededRandom, "seededRandom"); +function degToRad(degrees) { + return degrees * DEG2RAD; +} +__name(degToRad, "degToRad"); +function radToDeg(radians) { + return radians * RAD2DEG; +} +__name(radToDeg, "radToDeg"); +function isPowerOfTwo(value) { + return (value & value - 1) === 0 && value !== 0; +} +__name(isPowerOfTwo, "isPowerOfTwo"); +function ceilPowerOfTwo(value) { + return Math.pow(2, Math.ceil(Math.log(value) / Math.LN2)); +} +__name(ceilPowerOfTwo, "ceilPowerOfTwo"); +function floorPowerOfTwo(value) { + return Math.pow(2, Math.floor(Math.log(value) / Math.LN2)); +} +__name(floorPowerOfTwo, "floorPowerOfTwo"); +function setQuaternionFromProperEuler(q, a, b, c, order) { + const cos = Math.cos; + const sin = Math.sin; + const c2 = cos(b / 2); + const s2 = sin(b / 2); + const c13 = cos((a + c) / 2); + const s13 = sin((a + c) / 2); + const c1_3 = cos((a - c) / 2); + const s1_3 = sin((a - c) / 2); + const c3_1 = cos((c - a) / 2); + const s3_1 = sin((c - a) / 2); + switch (order) { + case "XYX": + q.set(c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13); + break; + case "YZY": + q.set(s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13); + break; + case "ZXZ": + q.set(s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13); + break; + case "XZX": + q.set(c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13); + break; + case "YXY": + q.set(s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13); + break; + case "ZYZ": + q.set(s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13); + break; + default: + console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: " + order); + } +} +__name(setQuaternionFromProperEuler, "setQuaternionFromProperEuler"); +function denormalize(value, array) { + switch (array.constructor) { + case Float32Array: + return value; + case Uint32Array: + return value / 4294967295; + case Uint16Array: + return value / 65535; + case Uint8Array: + return value / 255; + case Int32Array: + return Math.max(value / 2147483647, -1); + case Int16Array: + return Math.max(value / 32767, -1); + case Int8Array: + return Math.max(value / 127, -1); + default: + throw new Error("Invalid component type."); + } +} +__name(denormalize, "denormalize"); +function normalize(value, array) { + switch (array.constructor) { + case Float32Array: + return value; + case Uint32Array: + return Math.round(value * 4294967295); + case Uint16Array: + return Math.round(value * 65535); + case Uint8Array: + return Math.round(value * 255); + case Int32Array: + return Math.round(value * 2147483647); + case Int16Array: + return Math.round(value * 32767); + case Int8Array: + return Math.round(value * 127); + default: + throw new Error("Invalid component type."); + } +} +__name(normalize, "normalize"); +const MathUtils = { + DEG2RAD, + RAD2DEG, + generateUUID, + clamp, + euclideanModulo, + mapLinear, + inverseLerp, + lerp, + damp, + pingpong, + smoothstep, + smootherstep, + randInt, + randFloat, + randFloatSpread, + seededRandom, + degToRad, + radToDeg, + isPowerOfTwo, + ceilPowerOfTwo, + floorPowerOfTwo, + setQuaternionFromProperEuler, + normalize, + denormalize +}; +class Vector2 { + static { + __name(this, "Vector2"); + } + constructor(x = 0, y = 0) { + Vector2.prototype.isVector2 = true; + this.x = x; + this.y = y; + } + get width() { + return this.x; + } + set width(value) { + this.x = value; + } + get height() { + return this.y; + } + set height(value) { + this.y = value; + } + set(x, y) { + this.x = x; + this.y = y; + return this; + } + setScalar(scalar) { + this.x = scalar; + this.y = scalar; + return this; + } + setX(x) { + this.x = x; + return this; + } + setY(y) { + this.y = y; + return this; + } + setComponent(index, value) { + switch (index) { + case 0: + this.x = value; + break; + case 1: + this.y = value; + break; + default: + throw new Error("index is out of range: " + index); + } + return this; + } + getComponent(index) { + switch (index) { + case 0: + return this.x; + case 1: + return this.y; + default: + throw new Error("index is out of range: " + index); + } + } + clone() { + return new this.constructor(this.x, this.y); + } + copy(v) { + this.x = v.x; + this.y = v.y; + return this; + } + add(v) { + this.x += v.x; + this.y += v.y; + return this; + } + addScalar(s) { + this.x += s; + this.y += s; + return this; + } + addVectors(a, b) { + this.x = a.x + b.x; + this.y = a.y + b.y; + return this; + } + addScaledVector(v, s) { + this.x += v.x * s; + this.y += v.y * s; + return this; + } + sub(v) { + this.x -= v.x; + this.y -= v.y; + return this; + } + subScalar(s) { + this.x -= s; + this.y -= s; + return this; + } + subVectors(a, b) { + this.x = a.x - b.x; + this.y = a.y - b.y; + return this; + } + multiply(v) { + this.x *= v.x; + this.y *= v.y; + return this; + } + multiplyScalar(scalar) { + this.x *= scalar; + this.y *= scalar; + return this; + } + divide(v) { + this.x /= v.x; + this.y /= v.y; + return this; + } + divideScalar(scalar) { + return this.multiplyScalar(1 / scalar); + } + applyMatrix3(m) { + const x = this.x, y = this.y; + const e = m.elements; + this.x = e[0] * x + e[3] * y + e[6]; + this.y = e[1] * x + e[4] * y + e[7]; + return this; + } + min(v) { + this.x = Math.min(this.x, v.x); + this.y = Math.min(this.y, v.y); + return this; + } + max(v) { + this.x = Math.max(this.x, v.x); + this.y = Math.max(this.y, v.y); + return this; + } + clamp(min, max2) { + this.x = Math.max(min.x, Math.min(max2.x, this.x)); + this.y = Math.max(min.y, Math.min(max2.y, this.y)); + return this; + } + clampScalar(minVal, maxVal) { + this.x = Math.max(minVal, Math.min(maxVal, this.x)); + this.y = Math.max(minVal, Math.min(maxVal, this.y)); + return this; + } + clampLength(min, max2) { + const length = this.length(); + return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max2, length))); + } + floor() { + this.x = Math.floor(this.x); + this.y = Math.floor(this.y); + return this; + } + ceil() { + this.x = Math.ceil(this.x); + this.y = Math.ceil(this.y); + return this; + } + round() { + this.x = Math.round(this.x); + this.y = Math.round(this.y); + return this; + } + roundToZero() { + this.x = Math.trunc(this.x); + this.y = Math.trunc(this.y); + return this; + } + negate() { + this.x = -this.x; + this.y = -this.y; + return this; + } + dot(v) { + return this.x * v.x + this.y * v.y; + } + cross(v) { + return this.x * v.y - this.y * v.x; + } + lengthSq() { + return this.x * this.x + this.y * this.y; + } + length() { + return Math.sqrt(this.x * this.x + this.y * this.y); + } + manhattanLength() { + return Math.abs(this.x) + Math.abs(this.y); + } + normalize() { + return this.divideScalar(this.length() || 1); + } + angle() { + const angle = Math.atan2(-this.y, -this.x) + Math.PI; + return angle; + } + angleTo(v) { + const denominator = Math.sqrt(this.lengthSq() * v.lengthSq()); + if (denominator === 0) return Math.PI / 2; + const theta = this.dot(v) / denominator; + return Math.acos(clamp(theta, -1, 1)); + } + distanceTo(v) { + return Math.sqrt(this.distanceToSquared(v)); + } + distanceToSquared(v) { + const dx = this.x - v.x, dy = this.y - v.y; + return dx * dx + dy * dy; + } + manhattanDistanceTo(v) { + return Math.abs(this.x - v.x) + Math.abs(this.y - v.y); + } + setLength(length) { + return this.normalize().multiplyScalar(length); + } + lerp(v, alpha) { + this.x += (v.x - this.x) * alpha; + this.y += (v.y - this.y) * alpha; + return this; + } + lerpVectors(v1, v2, alpha) { + this.x = v1.x + (v2.x - v1.x) * alpha; + this.y = v1.y + (v2.y - v1.y) * alpha; + return this; + } + equals(v) { + return v.x === this.x && v.y === this.y; + } + fromArray(array, offset = 0) { + this.x = array[offset]; + this.y = array[offset + 1]; + return this; + } + toArray(array = [], offset = 0) { + array[offset] = this.x; + array[offset + 1] = this.y; + return array; + } + fromBufferAttribute(attribute, index) { + this.x = attribute.getX(index); + this.y = attribute.getY(index); + return this; + } + rotateAround(center, angle) { + const c = Math.cos(angle), s = Math.sin(angle); + const x = this.x - center.x; + const y = this.y - center.y; + this.x = x * c - y * s + center.x; + this.y = x * s + y * c + center.y; + return this; + } + random() { + this.x = Math.random(); + this.y = Math.random(); + return this; + } + *[Symbol.iterator]() { + yield this.x; + yield this.y; + } +} +class Matrix3 { + static { + __name(this, "Matrix3"); + } + constructor(n11, n12, n13, n21, n22, n23, n31, n32, n33) { + Matrix3.prototype.isMatrix3 = true; + this.elements = [ + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1 + ]; + if (n11 !== void 0) { + this.set(n11, n12, n13, n21, n22, n23, n31, n32, n33); + } + } + set(n11, n12, n13, n21, n22, n23, n31, n32, n33) { + const te2 = this.elements; + te2[0] = n11; + te2[1] = n21; + te2[2] = n31; + te2[3] = n12; + te2[4] = n22; + te2[5] = n32; + te2[6] = n13; + te2[7] = n23; + te2[8] = n33; + return this; + } + identity() { + this.set( + 1, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1 + ); + return this; + } + copy(m) { + const te2 = this.elements; + const me = m.elements; + te2[0] = me[0]; + te2[1] = me[1]; + te2[2] = me[2]; + te2[3] = me[3]; + te2[4] = me[4]; + te2[5] = me[5]; + te2[6] = me[6]; + te2[7] = me[7]; + te2[8] = me[8]; + return this; + } + extractBasis(xAxis, yAxis, zAxis) { + xAxis.setFromMatrix3Column(this, 0); + yAxis.setFromMatrix3Column(this, 1); + zAxis.setFromMatrix3Column(this, 2); + return this; + } + setFromMatrix4(m) { + const me = m.elements; + this.set( + me[0], + me[4], + me[8], + me[1], + me[5], + me[9], + me[2], + me[6], + me[10] + ); + return this; + } + multiply(m) { + return this.multiplyMatrices(this, m); + } + premultiply(m) { + return this.multiplyMatrices(m, this); + } + multiplyMatrices(a, b) { + const ae = a.elements; + const be = b.elements; + const te2 = this.elements; + const a11 = ae[0], a12 = ae[3], a13 = ae[6]; + const a21 = ae[1], a22 = ae[4], a23 = ae[7]; + const a31 = ae[2], a32 = ae[5], a33 = ae[8]; + const b11 = be[0], b12 = be[3], b13 = be[6]; + const b21 = be[1], b22 = be[4], b23 = be[7]; + const b31 = be[2], b32 = be[5], b33 = be[8]; + te2[0] = a11 * b11 + a12 * b21 + a13 * b31; + te2[3] = a11 * b12 + a12 * b22 + a13 * b32; + te2[6] = a11 * b13 + a12 * b23 + a13 * b33; + te2[1] = a21 * b11 + a22 * b21 + a23 * b31; + te2[4] = a21 * b12 + a22 * b22 + a23 * b32; + te2[7] = a21 * b13 + a22 * b23 + a23 * b33; + te2[2] = a31 * b11 + a32 * b21 + a33 * b31; + te2[5] = a31 * b12 + a32 * b22 + a33 * b32; + te2[8] = a31 * b13 + a32 * b23 + a33 * b33; + return this; + } + multiplyScalar(s) { + const te2 = this.elements; + te2[0] *= s; + te2[3] *= s; + te2[6] *= s; + te2[1] *= s; + te2[4] *= s; + te2[7] *= s; + te2[2] *= s; + te2[5] *= s; + te2[8] *= s; + return this; + } + determinant() { + const te2 = this.elements; + const a = te2[0], b = te2[1], c = te2[2], d = te2[3], e = te2[4], f = te2[5], g = te2[6], h = te2[7], i = te2[8]; + return a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g; + } + invert() { + const te2 = this.elements, n11 = te2[0], n21 = te2[1], n31 = te2[2], n12 = te2[3], n22 = te2[4], n32 = te2[5], n13 = te2[6], n23 = te2[7], n33 = te2[8], t11 = n33 * n22 - n32 * n23, t12 = n32 * n13 - n33 * n12, t13 = n23 * n12 - n22 * n13, det = n11 * t11 + n21 * t12 + n31 * t13; + if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0); + const detInv = 1 / det; + te2[0] = t11 * detInv; + te2[1] = (n31 * n23 - n33 * n21) * detInv; + te2[2] = (n32 * n21 - n31 * n22) * detInv; + te2[3] = t12 * detInv; + te2[4] = (n33 * n11 - n31 * n13) * detInv; + te2[5] = (n31 * n12 - n32 * n11) * detInv; + te2[6] = t13 * detInv; + te2[7] = (n21 * n13 - n23 * n11) * detInv; + te2[8] = (n22 * n11 - n21 * n12) * detInv; + return this; + } + transpose() { + let tmp2; + const m = this.elements; + tmp2 = m[1]; + m[1] = m[3]; + m[3] = tmp2; + tmp2 = m[2]; + m[2] = m[6]; + m[6] = tmp2; + tmp2 = m[5]; + m[5] = m[7]; + m[7] = tmp2; + return this; + } + getNormalMatrix(matrix4) { + return this.setFromMatrix4(matrix4).invert().transpose(); + } + transposeIntoArray(r) { + const m = this.elements; + r[0] = m[0]; + r[1] = m[3]; + r[2] = m[6]; + r[3] = m[1]; + r[4] = m[4]; + r[5] = m[7]; + r[6] = m[2]; + r[7] = m[5]; + r[8] = m[8]; + return this; + } + setUvTransform(tx, ty, sx, sy, rotation, cx, cy) { + const c = Math.cos(rotation); + const s = Math.sin(rotation); + this.set( + sx * c, + sx * s, + -sx * (c * cx + s * cy) + cx + tx, + -sy * s, + sy * c, + -sy * (-s * cx + c * cy) + cy + ty, + 0, + 0, + 1 + ); + return this; + } + // + scale(sx, sy) { + this.premultiply(_m3.makeScale(sx, sy)); + return this; + } + rotate(theta) { + this.premultiply(_m3.makeRotation(-theta)); + return this; + } + translate(tx, ty) { + this.premultiply(_m3.makeTranslation(tx, ty)); + return this; + } + // for 2D Transforms + makeTranslation(x, y) { + if (x.isVector2) { + this.set( + 1, + 0, + x.x, + 0, + 1, + x.y, + 0, + 0, + 1 + ); + } else { + this.set( + 1, + 0, + x, + 0, + 1, + y, + 0, + 0, + 1 + ); + } + return this; + } + makeRotation(theta) { + const c = Math.cos(theta); + const s = Math.sin(theta); + this.set( + c, + -s, + 0, + s, + c, + 0, + 0, + 0, + 1 + ); + return this; + } + makeScale(x, y) { + this.set( + x, + 0, + 0, + 0, + y, + 0, + 0, + 0, + 1 + ); + return this; + } + // + equals(matrix) { + const te2 = this.elements; + const me = matrix.elements; + for (let i = 0; i < 9; i++) { + if (te2[i] !== me[i]) return false; + } + return true; + } + fromArray(array, offset = 0) { + for (let i = 0; i < 9; i++) { + this.elements[i] = array[i + offset]; + } + return this; + } + toArray(array = [], offset = 0) { + const te2 = this.elements; + array[offset] = te2[0]; + array[offset + 1] = te2[1]; + array[offset + 2] = te2[2]; + array[offset + 3] = te2[3]; + array[offset + 4] = te2[4]; + array[offset + 5] = te2[5]; + array[offset + 6] = te2[6]; + array[offset + 7] = te2[7]; + array[offset + 8] = te2[8]; + return array; + } + clone() { + return new this.constructor().fromArray(this.elements); + } +} +const _m3 = /* @__PURE__ */ new Matrix3(); +function arrayNeedsUint32(array) { + for (let i = array.length - 1; i >= 0; --i) { + if (array[i] >= 65535) return true; + } + return false; +} +__name(arrayNeedsUint32, "arrayNeedsUint32"); +const TYPED_ARRAYS = { + Int8Array, + Uint8Array, + Uint8ClampedArray, + Int16Array, + Uint16Array, + Int32Array, + Uint32Array, + Float32Array, + Float64Array +}; +function getTypedArray(type, buffer) { + return new TYPED_ARRAYS[type](buffer); +} +__name(getTypedArray, "getTypedArray"); +function createElementNS(name) { + return document.createElementNS("http://www.w3.org/1999/xhtml", name); +} +__name(createElementNS, "createElementNS"); +function createCanvasElement() { + const canvas = createElementNS("canvas"); + canvas.style.display = "block"; + return canvas; +} +__name(createCanvasElement, "createCanvasElement"); +const _cache = {}; +function warnOnce(message) { + if (message in _cache) return; + _cache[message] = true; + console.warn(message); +} +__name(warnOnce, "warnOnce"); +function probeAsync(gl, sync, interval) { + return new Promise(function(resolve, reject) { + function probe() { + switch (gl.clientWaitSync(sync, gl.SYNC_FLUSH_COMMANDS_BIT, 0)) { + case gl.WAIT_FAILED: + reject(); + break; + case gl.TIMEOUT_EXPIRED: + setTimeout(probe, interval); + break; + default: + resolve(); + } + } + __name(probe, "probe"); + setTimeout(probe, interval); + }); +} +__name(probeAsync, "probeAsync"); +function toNormalizedProjectionMatrix(projectionMatrix) { + const m = projectionMatrix.elements; + m[2] = 0.5 * m[2] + 0.5 * m[3]; + m[6] = 0.5 * m[6] + 0.5 * m[7]; + m[10] = 0.5 * m[10] + 0.5 * m[11]; + m[14] = 0.5 * m[14] + 0.5 * m[15]; +} +__name(toNormalizedProjectionMatrix, "toNormalizedProjectionMatrix"); +function toReversedProjectionMatrix(projectionMatrix) { + const m = projectionMatrix.elements; + const isPerspectiveMatrix = m[11] === -1; + if (isPerspectiveMatrix) { + m[10] = -m[10] - 1; + m[14] = -m[14]; + } else { + m[10] = -m[10]; + m[14] = -m[14] + 1; + } +} +__name(toReversedProjectionMatrix, "toReversedProjectionMatrix"); +const ColorManagement = { + enabled: true, + workingColorSpace: LinearSRGBColorSpace, + /** + * Implementations of supported color spaces. + * + * Required: + * - primaries: chromaticity coordinates [ rx ry gx gy bx by ] + * - whitePoint: reference white [ x y ] + * - transfer: transfer function (pre-defined) + * - toXYZ: Matrix3 RGB to XYZ transform + * - fromXYZ: Matrix3 XYZ to RGB transform + * - luminanceCoefficients: RGB luminance coefficients + * + * Optional: + * - outputColorSpaceConfig: { drawingBufferColorSpace: ColorSpace } + * - workingColorSpaceConfig: { unpackColorSpace: ColorSpace } + * + * Reference: + * - https://www.russellcottrell.com/photo/matrixCalculator.htm + */ + spaces: {}, + convert: /* @__PURE__ */ __name(function(color, sourceColorSpace, targetColorSpace) { + if (this.enabled === false || sourceColorSpace === targetColorSpace || !sourceColorSpace || !targetColorSpace) { + return color; + } + if (this.spaces[sourceColorSpace].transfer === SRGBTransfer) { + color.r = SRGBToLinear(color.r); + color.g = SRGBToLinear(color.g); + color.b = SRGBToLinear(color.b); + } + if (this.spaces[sourceColorSpace].primaries !== this.spaces[targetColorSpace].primaries) { + color.applyMatrix3(this.spaces[sourceColorSpace].toXYZ); + color.applyMatrix3(this.spaces[targetColorSpace].fromXYZ); + } + if (this.spaces[targetColorSpace].transfer === SRGBTransfer) { + color.r = LinearToSRGB(color.r); + color.g = LinearToSRGB(color.g); + color.b = LinearToSRGB(color.b); + } + return color; + }, "convert"), + fromWorkingColorSpace: /* @__PURE__ */ __name(function(color, targetColorSpace) { + return this.convert(color, this.workingColorSpace, targetColorSpace); + }, "fromWorkingColorSpace"), + toWorkingColorSpace: /* @__PURE__ */ __name(function(color, sourceColorSpace) { + return this.convert(color, sourceColorSpace, this.workingColorSpace); + }, "toWorkingColorSpace"), + getPrimaries: /* @__PURE__ */ __name(function(colorSpace) { + return this.spaces[colorSpace].primaries; + }, "getPrimaries"), + getTransfer: /* @__PURE__ */ __name(function(colorSpace) { + if (colorSpace === NoColorSpace) return LinearTransfer; + return this.spaces[colorSpace].transfer; + }, "getTransfer"), + getLuminanceCoefficients: /* @__PURE__ */ __name(function(target, colorSpace = this.workingColorSpace) { + return target.fromArray(this.spaces[colorSpace].luminanceCoefficients); + }, "getLuminanceCoefficients"), + define: /* @__PURE__ */ __name(function(colorSpaces) { + Object.assign(this.spaces, colorSpaces); + }, "define"), + // Internal APIs + _getMatrix: /* @__PURE__ */ __name(function(targetMatrix, sourceColorSpace, targetColorSpace) { + return targetMatrix.copy(this.spaces[sourceColorSpace].toXYZ).multiply(this.spaces[targetColorSpace].fromXYZ); + }, "_getMatrix"), + _getDrawingBufferColorSpace: /* @__PURE__ */ __name(function(colorSpace) { + return this.spaces[colorSpace].outputColorSpaceConfig.drawingBufferColorSpace; + }, "_getDrawingBufferColorSpace"), + _getUnpackColorSpace: /* @__PURE__ */ __name(function(colorSpace = this.workingColorSpace) { + return this.spaces[colorSpace].workingColorSpaceConfig.unpackColorSpace; + }, "_getUnpackColorSpace") +}; +function SRGBToLinear(c) { + return c < 0.04045 ? c * 0.0773993808 : Math.pow(c * 0.9478672986 + 0.0521327014, 2.4); +} +__name(SRGBToLinear, "SRGBToLinear"); +function LinearToSRGB(c) { + return c < 31308e-7 ? c * 12.92 : 1.055 * Math.pow(c, 0.41666) - 0.055; +} +__name(LinearToSRGB, "LinearToSRGB"); +const REC709_PRIMARIES = [0.64, 0.33, 0.3, 0.6, 0.15, 0.06]; +const REC709_LUMINANCE_COEFFICIENTS = [0.2126, 0.7152, 0.0722]; +const D65 = [0.3127, 0.329]; +const LINEAR_REC709_TO_XYZ = /* @__PURE__ */ new Matrix3().set( + 0.4123908, + 0.3575843, + 0.1804808, + 0.212639, + 0.7151687, + 0.0721923, + 0.0193308, + 0.1191948, + 0.9505322 +); +const XYZ_TO_LINEAR_REC709 = /* @__PURE__ */ new Matrix3().set( + 3.2409699, + -1.5373832, + -0.4986108, + -0.9692436, + 1.8759675, + 0.0415551, + 0.0556301, + -0.203977, + 1.0569715 +); +ColorManagement.define({ + [LinearSRGBColorSpace]: { + primaries: REC709_PRIMARIES, + whitePoint: D65, + transfer: LinearTransfer, + toXYZ: LINEAR_REC709_TO_XYZ, + fromXYZ: XYZ_TO_LINEAR_REC709, + luminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS, + workingColorSpaceConfig: { unpackColorSpace: SRGBColorSpace }, + outputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace } + }, + [SRGBColorSpace]: { + primaries: REC709_PRIMARIES, + whitePoint: D65, + transfer: SRGBTransfer, + toXYZ: LINEAR_REC709_TO_XYZ, + fromXYZ: XYZ_TO_LINEAR_REC709, + luminanceCoefficients: REC709_LUMINANCE_COEFFICIENTS, + outputColorSpaceConfig: { drawingBufferColorSpace: SRGBColorSpace } + } +}); +let _canvas; +class ImageUtils { + static { + __name(this, "ImageUtils"); + } + static getDataURL(image) { + if (/^data:/i.test(image.src)) { + return image.src; + } + if (typeof HTMLCanvasElement === "undefined") { + return image.src; + } + let canvas; + if (image instanceof HTMLCanvasElement) { + canvas = image; + } else { + if (_canvas === void 0) _canvas = createElementNS("canvas"); + _canvas.width = image.width; + _canvas.height = image.height; + const context = _canvas.getContext("2d"); + if (image instanceof ImageData) { + context.putImageData(image, 0, 0); + } else { + context.drawImage(image, 0, 0, image.width, image.height); + } + canvas = _canvas; + } + if (canvas.width > 2048 || canvas.height > 2048) { + console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons", image); + return canvas.toDataURL("image/jpeg", 0.6); + } else { + return canvas.toDataURL("image/png"); + } + } + static sRGBToLinear(image) { + if (typeof HTMLImageElement !== "undefined" && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== "undefined" && image instanceof HTMLCanvasElement || typeof ImageBitmap !== "undefined" && image instanceof ImageBitmap) { + const canvas = createElementNS("canvas"); + canvas.width = image.width; + canvas.height = image.height; + const context = canvas.getContext("2d"); + context.drawImage(image, 0, 0, image.width, image.height); + const imageData = context.getImageData(0, 0, image.width, image.height); + const data = imageData.data; + for (let i = 0; i < data.length; i++) { + data[i] = SRGBToLinear(data[i] / 255) * 255; + } + context.putImageData(imageData, 0, 0); + return canvas; + } else if (image.data) { + const data = image.data.slice(0); + for (let i = 0; i < data.length; i++) { + if (data instanceof Uint8Array || data instanceof Uint8ClampedArray) { + data[i] = Math.floor(SRGBToLinear(data[i] / 255) * 255); + } else { + data[i] = SRGBToLinear(data[i]); + } + } + return { + data, + width: image.width, + height: image.height + }; + } else { + console.warn("THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."); + return image; + } + } +} +let _sourceId = 0; +class Source { + static { + __name(this, "Source"); + } + constructor(data = null) { + this.isSource = true; + Object.defineProperty(this, "id", { value: _sourceId++ }); + this.uuid = generateUUID(); + this.data = data; + this.dataReady = true; + this.version = 0; + } + set needsUpdate(value) { + if (value === true) this.version++; + } + toJSON(meta) { + const isRootObject = meta === void 0 || typeof meta === "string"; + if (!isRootObject && meta.images[this.uuid] !== void 0) { + return meta.images[this.uuid]; + } + const output = { + uuid: this.uuid, + url: "" + }; + const data = this.data; + if (data !== null) { + let url; + if (Array.isArray(data)) { + url = []; + for (let i = 0, l = data.length; i < l; i++) { + if (data[i].isDataTexture) { + url.push(serializeImage(data[i].image)); + } else { + url.push(serializeImage(data[i])); + } + } + } else { + url = serializeImage(data); + } + output.url = url; + } + if (!isRootObject) { + meta.images[this.uuid] = output; + } + return output; + } +} +function serializeImage(image) { + if (typeof HTMLImageElement !== "undefined" && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== "undefined" && image instanceof HTMLCanvasElement || typeof ImageBitmap !== "undefined" && image instanceof ImageBitmap) { + return ImageUtils.getDataURL(image); + } else { + if (image.data) { + return { + data: Array.from(image.data), + width: image.width, + height: image.height, + type: image.data.constructor.name + }; + } else { + console.warn("THREE.Texture: Unable to serialize Texture."); + return {}; + } + } +} +__name(serializeImage, "serializeImage"); +let _textureId = 0; +class Texture extends EventDispatcher { + static { + __name(this, "Texture"); + } + constructor(image = Texture.DEFAULT_IMAGE, mapping = Texture.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = Texture.DEFAULT_ANISOTROPY, colorSpace = NoColorSpace) { + super(); + this.isTexture = true; + Object.defineProperty(this, "id", { value: _textureId++ }); + this.uuid = generateUUID(); + this.name = ""; + this.source = new Source(image); + this.mipmaps = []; + this.mapping = mapping; + this.channel = 0; + this.wrapS = wrapS; + this.wrapT = wrapT; + this.magFilter = magFilter; + this.minFilter = minFilter; + this.anisotropy = anisotropy; + this.format = format; + this.internalFormat = null; + this.type = type; + this.offset = new Vector2(0, 0); + this.repeat = new Vector2(1, 1); + this.center = new Vector2(0, 0); + this.rotation = 0; + this.matrixAutoUpdate = true; + this.matrix = new Matrix3(); + this.generateMipmaps = true; + this.premultiplyAlpha = false; + this.flipY = true; + this.unpackAlignment = 4; + this.colorSpace = colorSpace; + this.userData = {}; + this.version = 0; + this.onUpdate = null; + this.isRenderTargetTexture = false; + this.pmremVersion = 0; + } + get image() { + return this.source.data; + } + set image(value = null) { + this.source.data = value; + } + updateMatrix() { + this.matrix.setUvTransform(this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y); + } + clone() { + return new this.constructor().copy(this); + } + copy(source) { + this.name = source.name; + this.source = source.source; + this.mipmaps = source.mipmaps.slice(0); + this.mapping = source.mapping; + this.channel = source.channel; + this.wrapS = source.wrapS; + this.wrapT = source.wrapT; + this.magFilter = source.magFilter; + this.minFilter = source.minFilter; + this.anisotropy = source.anisotropy; + this.format = source.format; + this.internalFormat = source.internalFormat; + this.type = source.type; + this.offset.copy(source.offset); + this.repeat.copy(source.repeat); + this.center.copy(source.center); + this.rotation = source.rotation; + this.matrixAutoUpdate = source.matrixAutoUpdate; + this.matrix.copy(source.matrix); + this.generateMipmaps = source.generateMipmaps; + this.premultiplyAlpha = source.premultiplyAlpha; + this.flipY = source.flipY; + this.unpackAlignment = source.unpackAlignment; + this.colorSpace = source.colorSpace; + this.userData = JSON.parse(JSON.stringify(source.userData)); + this.needsUpdate = true; + return this; + } + toJSON(meta) { + const isRootObject = meta === void 0 || typeof meta === "string"; + if (!isRootObject && meta.textures[this.uuid] !== void 0) { + return meta.textures[this.uuid]; + } + const output = { + metadata: { + version: 4.6, + type: "Texture", + generator: "Texture.toJSON" + }, + uuid: this.uuid, + name: this.name, + image: this.source.toJSON(meta).uuid, + mapping: this.mapping, + channel: this.channel, + repeat: [this.repeat.x, this.repeat.y], + offset: [this.offset.x, this.offset.y], + center: [this.center.x, this.center.y], + rotation: this.rotation, + wrap: [this.wrapS, this.wrapT], + format: this.format, + internalFormat: this.internalFormat, + type: this.type, + colorSpace: this.colorSpace, + minFilter: this.minFilter, + magFilter: this.magFilter, + anisotropy: this.anisotropy, + flipY: this.flipY, + generateMipmaps: this.generateMipmaps, + premultiplyAlpha: this.premultiplyAlpha, + unpackAlignment: this.unpackAlignment + }; + if (Object.keys(this.userData).length > 0) output.userData = this.userData; + if (!isRootObject) { + meta.textures[this.uuid] = output; + } + return output; + } + dispose() { + this.dispatchEvent({ type: "dispose" }); + } + transformUv(uv) { + if (this.mapping !== UVMapping) return uv; + uv.applyMatrix3(this.matrix); + if (uv.x < 0 || uv.x > 1) { + switch (this.wrapS) { + case RepeatWrapping: + uv.x = uv.x - Math.floor(uv.x); + break; + case ClampToEdgeWrapping: + uv.x = uv.x < 0 ? 0 : 1; + break; + case MirroredRepeatWrapping: + if (Math.abs(Math.floor(uv.x) % 2) === 1) { + uv.x = Math.ceil(uv.x) - uv.x; + } else { + uv.x = uv.x - Math.floor(uv.x); + } + break; + } + } + if (uv.y < 0 || uv.y > 1) { + switch (this.wrapT) { + case RepeatWrapping: + uv.y = uv.y - Math.floor(uv.y); + break; + case ClampToEdgeWrapping: + uv.y = uv.y < 0 ? 0 : 1; + break; + case MirroredRepeatWrapping: + if (Math.abs(Math.floor(uv.y) % 2) === 1) { + uv.y = Math.ceil(uv.y) - uv.y; + } else { + uv.y = uv.y - Math.floor(uv.y); + } + break; + } + } + if (this.flipY) { + uv.y = 1 - uv.y; + } + return uv; + } + set needsUpdate(value) { + if (value === true) { + this.version++; + this.source.needsUpdate = true; + } + } + set needsPMREMUpdate(value) { + if (value === true) { + this.pmremVersion++; + } + } +} +Texture.DEFAULT_IMAGE = null; +Texture.DEFAULT_MAPPING = UVMapping; +Texture.DEFAULT_ANISOTROPY = 1; +class Vector4 { + static { + __name(this, "Vector4"); + } + constructor(x = 0, y = 0, z = 0, w = 1) { + Vector4.prototype.isVector4 = true; + this.x = x; + this.y = y; + this.z = z; + this.w = w; + } + get width() { + return this.z; + } + set width(value) { + this.z = value; + } + get height() { + return this.w; + } + set height(value) { + this.w = value; + } + set(x, y, z, w) { + this.x = x; + this.y = y; + this.z = z; + this.w = w; + return this; + } + setScalar(scalar) { + this.x = scalar; + this.y = scalar; + this.z = scalar; + this.w = scalar; + return this; + } + setX(x) { + this.x = x; + return this; + } + setY(y) { + this.y = y; + return this; + } + setZ(z) { + this.z = z; + return this; + } + setW(w) { + this.w = w; + return this; + } + setComponent(index, value) { + switch (index) { + case 0: + this.x = value; + break; + case 1: + this.y = value; + break; + case 2: + this.z = value; + break; + case 3: + this.w = value; + break; + default: + throw new Error("index is out of range: " + index); + } + return this; + } + getComponent(index) { + switch (index) { + case 0: + return this.x; + case 1: + return this.y; + case 2: + return this.z; + case 3: + return this.w; + default: + throw new Error("index is out of range: " + index); + } + } + clone() { + return new this.constructor(this.x, this.y, this.z, this.w); + } + copy(v) { + this.x = v.x; + this.y = v.y; + this.z = v.z; + this.w = v.w !== void 0 ? v.w : 1; + return this; + } + add(v) { + this.x += v.x; + this.y += v.y; + this.z += v.z; + this.w += v.w; + return this; + } + addScalar(s) { + this.x += s; + this.y += s; + this.z += s; + this.w += s; + return this; + } + addVectors(a, b) { + this.x = a.x + b.x; + this.y = a.y + b.y; + this.z = a.z + b.z; + this.w = a.w + b.w; + return this; + } + addScaledVector(v, s) { + this.x += v.x * s; + this.y += v.y * s; + this.z += v.z * s; + this.w += v.w * s; + return this; + } + sub(v) { + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + this.w -= v.w; + return this; + } + subScalar(s) { + this.x -= s; + this.y -= s; + this.z -= s; + this.w -= s; + return this; + } + subVectors(a, b) { + this.x = a.x - b.x; + this.y = a.y - b.y; + this.z = a.z - b.z; + this.w = a.w - b.w; + return this; + } + multiply(v) { + this.x *= v.x; + this.y *= v.y; + this.z *= v.z; + this.w *= v.w; + return this; + } + multiplyScalar(scalar) { + this.x *= scalar; + this.y *= scalar; + this.z *= scalar; + this.w *= scalar; + return this; + } + applyMatrix4(m) { + const x = this.x, y = this.y, z = this.z, w = this.w; + const e = m.elements; + this.x = e[0] * x + e[4] * y + e[8] * z + e[12] * w; + this.y = e[1] * x + e[5] * y + e[9] * z + e[13] * w; + this.z = e[2] * x + e[6] * y + e[10] * z + e[14] * w; + this.w = e[3] * x + e[7] * y + e[11] * z + e[15] * w; + return this; + } + divide(v) { + this.x /= v.x; + this.y /= v.y; + this.z /= v.z; + this.w /= v.w; + return this; + } + divideScalar(scalar) { + return this.multiplyScalar(1 / scalar); + } + setAxisAngleFromQuaternion(q) { + this.w = 2 * Math.acos(q.w); + const s = Math.sqrt(1 - q.w * q.w); + if (s < 1e-4) { + this.x = 1; + this.y = 0; + this.z = 0; + } else { + this.x = q.x / s; + this.y = q.y / s; + this.z = q.z / s; + } + return this; + } + setAxisAngleFromRotationMatrix(m) { + let angle, x, y, z; + const epsilon = 0.01, epsilon2 = 0.1, te2 = m.elements, m11 = te2[0], m12 = te2[4], m13 = te2[8], m21 = te2[1], m22 = te2[5], m23 = te2[9], m31 = te2[2], m32 = te2[6], m33 = te2[10]; + if (Math.abs(m12 - m21) < epsilon && Math.abs(m13 - m31) < epsilon && Math.abs(m23 - m32) < epsilon) { + if (Math.abs(m12 + m21) < epsilon2 && Math.abs(m13 + m31) < epsilon2 && Math.abs(m23 + m32) < epsilon2 && Math.abs(m11 + m22 + m33 - 3) < epsilon2) { + this.set(1, 0, 0, 0); + return this; + } + angle = Math.PI; + const xx = (m11 + 1) / 2; + const yy = (m22 + 1) / 2; + const zz = (m33 + 1) / 2; + const xy = (m12 + m21) / 4; + const xz = (m13 + m31) / 4; + const yz = (m23 + m32) / 4; + if (xx > yy && xx > zz) { + if (xx < epsilon) { + x = 0; + y = 0.707106781; + z = 0.707106781; + } else { + x = Math.sqrt(xx); + y = xy / x; + z = xz / x; + } + } else if (yy > zz) { + if (yy < epsilon) { + x = 0.707106781; + y = 0; + z = 0.707106781; + } else { + y = Math.sqrt(yy); + x = xy / y; + z = yz / y; + } + } else { + if (zz < epsilon) { + x = 0.707106781; + y = 0.707106781; + z = 0; + } else { + z = Math.sqrt(zz); + x = xz / z; + y = yz / z; + } + } + this.set(x, y, z, angle); + return this; + } + let s = Math.sqrt((m32 - m23) * (m32 - m23) + (m13 - m31) * (m13 - m31) + (m21 - m12) * (m21 - m12)); + if (Math.abs(s) < 1e-3) s = 1; + this.x = (m32 - m23) / s; + this.y = (m13 - m31) / s; + this.z = (m21 - m12) / s; + this.w = Math.acos((m11 + m22 + m33 - 1) / 2); + return this; + } + setFromMatrixPosition(m) { + const e = m.elements; + this.x = e[12]; + this.y = e[13]; + this.z = e[14]; + this.w = e[15]; + return this; + } + min(v) { + this.x = Math.min(this.x, v.x); + this.y = Math.min(this.y, v.y); + this.z = Math.min(this.z, v.z); + this.w = Math.min(this.w, v.w); + return this; + } + max(v) { + this.x = Math.max(this.x, v.x); + this.y = Math.max(this.y, v.y); + this.z = Math.max(this.z, v.z); + this.w = Math.max(this.w, v.w); + return this; + } + clamp(min, max2) { + this.x = Math.max(min.x, Math.min(max2.x, this.x)); + this.y = Math.max(min.y, Math.min(max2.y, this.y)); + this.z = Math.max(min.z, Math.min(max2.z, this.z)); + this.w = Math.max(min.w, Math.min(max2.w, this.w)); + return this; + } + clampScalar(minVal, maxVal) { + this.x = Math.max(minVal, Math.min(maxVal, this.x)); + this.y = Math.max(minVal, Math.min(maxVal, this.y)); + this.z = Math.max(minVal, Math.min(maxVal, this.z)); + this.w = Math.max(minVal, Math.min(maxVal, this.w)); + return this; + } + clampLength(min, max2) { + const length = this.length(); + return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max2, length))); + } + floor() { + this.x = Math.floor(this.x); + this.y = Math.floor(this.y); + this.z = Math.floor(this.z); + this.w = Math.floor(this.w); + return this; + } + ceil() { + this.x = Math.ceil(this.x); + this.y = Math.ceil(this.y); + this.z = Math.ceil(this.z); + this.w = Math.ceil(this.w); + return this; + } + round() { + this.x = Math.round(this.x); + this.y = Math.round(this.y); + this.z = Math.round(this.z); + this.w = Math.round(this.w); + return this; + } + roundToZero() { + this.x = Math.trunc(this.x); + this.y = Math.trunc(this.y); + this.z = Math.trunc(this.z); + this.w = Math.trunc(this.w); + return this; + } + negate() { + this.x = -this.x; + this.y = -this.y; + this.z = -this.z; + this.w = -this.w; + return this; + } + dot(v) { + return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w; + } + lengthSq() { + return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w; + } + length() { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w); + } + manhattanLength() { + return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w); + } + normalize() { + return this.divideScalar(this.length() || 1); + } + setLength(length) { + return this.normalize().multiplyScalar(length); + } + lerp(v, alpha) { + this.x += (v.x - this.x) * alpha; + this.y += (v.y - this.y) * alpha; + this.z += (v.z - this.z) * alpha; + this.w += (v.w - this.w) * alpha; + return this; + } + lerpVectors(v1, v2, alpha) { + this.x = v1.x + (v2.x - v1.x) * alpha; + this.y = v1.y + (v2.y - v1.y) * alpha; + this.z = v1.z + (v2.z - v1.z) * alpha; + this.w = v1.w + (v2.w - v1.w) * alpha; + return this; + } + equals(v) { + return v.x === this.x && v.y === this.y && v.z === this.z && v.w === this.w; + } + fromArray(array, offset = 0) { + this.x = array[offset]; + this.y = array[offset + 1]; + this.z = array[offset + 2]; + this.w = array[offset + 3]; + return this; + } + toArray(array = [], offset = 0) { + array[offset] = this.x; + array[offset + 1] = this.y; + array[offset + 2] = this.z; + array[offset + 3] = this.w; + return array; + } + fromBufferAttribute(attribute, index) { + this.x = attribute.getX(index); + this.y = attribute.getY(index); + this.z = attribute.getZ(index); + this.w = attribute.getW(index); + return this; + } + random() { + this.x = Math.random(); + this.y = Math.random(); + this.z = Math.random(); + this.w = Math.random(); + return this; + } + *[Symbol.iterator]() { + yield this.x; + yield this.y; + yield this.z; + yield this.w; + } +} +class RenderTarget extends EventDispatcher { + static { + __name(this, "RenderTarget"); + } + constructor(width = 1, height = 1, options = {}) { + super(); + this.isRenderTarget = true; + this.width = width; + this.height = height; + this.depth = 1; + this.scissor = new Vector4(0, 0, width, height); + this.scissorTest = false; + this.viewport = new Vector4(0, 0, width, height); + const image = { width, height, depth: 1 }; + options = Object.assign({ + generateMipmaps: false, + internalFormat: null, + minFilter: LinearFilter, + depthBuffer: true, + stencilBuffer: false, + resolveDepthBuffer: true, + resolveStencilBuffer: true, + depthTexture: null, + samples: 0, + count: 1 + }, options); + const texture = new Texture(image, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace); + texture.flipY = false; + texture.generateMipmaps = options.generateMipmaps; + texture.internalFormat = options.internalFormat; + this.textures = []; + const count = options.count; + for (let i = 0; i < count; i++) { + this.textures[i] = texture.clone(); + this.textures[i].isRenderTargetTexture = true; + } + this.depthBuffer = options.depthBuffer; + this.stencilBuffer = options.stencilBuffer; + this.resolveDepthBuffer = options.resolveDepthBuffer; + this.resolveStencilBuffer = options.resolveStencilBuffer; + this.depthTexture = options.depthTexture; + this.samples = options.samples; + } + get texture() { + return this.textures[0]; + } + set texture(value) { + this.textures[0] = value; + } + setSize(width, height, depth = 1) { + if (this.width !== width || this.height !== height || this.depth !== depth) { + this.width = width; + this.height = height; + this.depth = depth; + for (let i = 0, il = this.textures.length; i < il; i++) { + this.textures[i].image.width = width; + this.textures[i].image.height = height; + this.textures[i].image.depth = depth; + } + this.dispose(); + } + this.viewport.set(0, 0, width, height); + this.scissor.set(0, 0, width, height); + } + clone() { + return new this.constructor().copy(this); + } + copy(source) { + this.width = source.width; + this.height = source.height; + this.depth = source.depth; + this.scissor.copy(source.scissor); + this.scissorTest = source.scissorTest; + this.viewport.copy(source.viewport); + this.textures.length = 0; + for (let i = 0, il = source.textures.length; i < il; i++) { + this.textures[i] = source.textures[i].clone(); + this.textures[i].isRenderTargetTexture = true; + } + const image = Object.assign({}, source.texture.image); + this.texture.source = new Source(image); + this.depthBuffer = source.depthBuffer; + this.stencilBuffer = source.stencilBuffer; + this.resolveDepthBuffer = source.resolveDepthBuffer; + this.resolveStencilBuffer = source.resolveStencilBuffer; + if (source.depthTexture !== null) this.depthTexture = source.depthTexture.clone(); + this.samples = source.samples; + return this; + } + dispose() { + this.dispatchEvent({ type: "dispose" }); + } +} +class WebGLRenderTarget extends RenderTarget { + static { + __name(this, "WebGLRenderTarget"); + } + constructor(width = 1, height = 1, options = {}) { + super(width, height, options); + this.isWebGLRenderTarget = true; + } +} +class DataArrayTexture extends Texture { + static { + __name(this, "DataArrayTexture"); + } + constructor(data = null, width = 1, height = 1, depth = 1) { + super(null); + this.isDataArrayTexture = true; + this.image = { data, width, height, depth }; + this.magFilter = NearestFilter; + this.minFilter = NearestFilter; + this.wrapR = ClampToEdgeWrapping; + this.generateMipmaps = false; + this.flipY = false; + this.unpackAlignment = 1; + this.layerUpdates = /* @__PURE__ */ new Set(); + } + addLayerUpdate(layerIndex) { + this.layerUpdates.add(layerIndex); + } + clearLayerUpdates() { + this.layerUpdates.clear(); + } +} +class WebGLArrayRenderTarget extends WebGLRenderTarget { + static { + __name(this, "WebGLArrayRenderTarget"); + } + constructor(width = 1, height = 1, depth = 1, options = {}) { + super(width, height, options); + this.isWebGLArrayRenderTarget = true; + this.depth = depth; + this.texture = new DataArrayTexture(null, width, height, depth); + this.texture.isRenderTargetTexture = true; + } +} +class Data3DTexture extends Texture { + static { + __name(this, "Data3DTexture"); + } + constructor(data = null, width = 1, height = 1, depth = 1) { + super(null); + this.isData3DTexture = true; + this.image = { data, width, height, depth }; + this.magFilter = NearestFilter; + this.minFilter = NearestFilter; + this.wrapR = ClampToEdgeWrapping; + this.generateMipmaps = false; + this.flipY = false; + this.unpackAlignment = 1; + } +} +class WebGL3DRenderTarget extends WebGLRenderTarget { + static { + __name(this, "WebGL3DRenderTarget"); + } + constructor(width = 1, height = 1, depth = 1, options = {}) { + super(width, height, options); + this.isWebGL3DRenderTarget = true; + this.depth = depth; + this.texture = new Data3DTexture(null, width, height, depth); + this.texture.isRenderTargetTexture = true; + } +} +class Quaternion { + static { + __name(this, "Quaternion"); + } + constructor(x = 0, y = 0, z = 0, w = 1) { + this.isQuaternion = true; + this._x = x; + this._y = y; + this._z = z; + this._w = w; + } + static slerpFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t2) { + let x0 = src0[srcOffset0 + 0], y0 = src0[srcOffset0 + 1], z0 = src0[srcOffset0 + 2], w0 = src0[srcOffset0 + 3]; + const x1 = src1[srcOffset1 + 0], y1 = src1[srcOffset1 + 1], z1 = src1[srcOffset1 + 2], w1 = src1[srcOffset1 + 3]; + if (t2 === 0) { + dst[dstOffset + 0] = x0; + dst[dstOffset + 1] = y0; + dst[dstOffset + 2] = z0; + dst[dstOffset + 3] = w0; + return; + } + if (t2 === 1) { + dst[dstOffset + 0] = x1; + dst[dstOffset + 1] = y1; + dst[dstOffset + 2] = z1; + dst[dstOffset + 3] = w1; + return; + } + if (w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1) { + let s = 1 - t2; + const cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1, dir = cos >= 0 ? 1 : -1, sqrSin = 1 - cos * cos; + if (sqrSin > Number.EPSILON) { + const sin = Math.sqrt(sqrSin), len = Math.atan2(sin, cos * dir); + s = Math.sin(s * len) / sin; + t2 = Math.sin(t2 * len) / sin; + } + const tDir = t2 * dir; + x0 = x0 * s + x1 * tDir; + y0 = y0 * s + y1 * tDir; + z0 = z0 * s + z1 * tDir; + w0 = w0 * s + w1 * tDir; + if (s === 1 - t2) { + const f = 1 / Math.sqrt(x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0); + x0 *= f; + y0 *= f; + z0 *= f; + w0 *= f; + } + } + dst[dstOffset] = x0; + dst[dstOffset + 1] = y0; + dst[dstOffset + 2] = z0; + dst[dstOffset + 3] = w0; + } + static multiplyQuaternionsFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1) { + const x0 = src0[srcOffset0]; + const y0 = src0[srcOffset0 + 1]; + const z0 = src0[srcOffset0 + 2]; + const w0 = src0[srcOffset0 + 3]; + const x1 = src1[srcOffset1]; + const y1 = src1[srcOffset1 + 1]; + const z1 = src1[srcOffset1 + 2]; + const w1 = src1[srcOffset1 + 3]; + dst[dstOffset] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1; + dst[dstOffset + 1] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1; + dst[dstOffset + 2] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1; + dst[dstOffset + 3] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1; + return dst; + } + get x() { + return this._x; + } + set x(value) { + this._x = value; + this._onChangeCallback(); + } + get y() { + return this._y; + } + set y(value) { + this._y = value; + this._onChangeCallback(); + } + get z() { + return this._z; + } + set z(value) { + this._z = value; + this._onChangeCallback(); + } + get w() { + return this._w; + } + set w(value) { + this._w = value; + this._onChangeCallback(); + } + set(x, y, z, w) { + this._x = x; + this._y = y; + this._z = z; + this._w = w; + this._onChangeCallback(); + return this; + } + clone() { + return new this.constructor(this._x, this._y, this._z, this._w); + } + copy(quaternion) { + this._x = quaternion.x; + this._y = quaternion.y; + this._z = quaternion.z; + this._w = quaternion.w; + this._onChangeCallback(); + return this; + } + setFromEuler(euler, update = true) { + const x = euler._x, y = euler._y, z = euler._z, order = euler._order; + const cos = Math.cos; + const sin = Math.sin; + const c1 = cos(x / 2); + const c2 = cos(y / 2); + const c3 = cos(z / 2); + const s1 = sin(x / 2); + const s2 = sin(y / 2); + const s3 = sin(z / 2); + switch (order) { + case "XYZ": + this._x = s1 * c2 * c3 + c1 * s2 * s3; + this._y = c1 * s2 * c3 - s1 * c2 * s3; + this._z = c1 * c2 * s3 + s1 * s2 * c3; + this._w = c1 * c2 * c3 - s1 * s2 * s3; + break; + case "YXZ": + this._x = s1 * c2 * c3 + c1 * s2 * s3; + this._y = c1 * s2 * c3 - s1 * c2 * s3; + this._z = c1 * c2 * s3 - s1 * s2 * c3; + this._w = c1 * c2 * c3 + s1 * s2 * s3; + break; + case "ZXY": + this._x = s1 * c2 * c3 - c1 * s2 * s3; + this._y = c1 * s2 * c3 + s1 * c2 * s3; + this._z = c1 * c2 * s3 + s1 * s2 * c3; + this._w = c1 * c2 * c3 - s1 * s2 * s3; + break; + case "ZYX": + this._x = s1 * c2 * c3 - c1 * s2 * s3; + this._y = c1 * s2 * c3 + s1 * c2 * s3; + this._z = c1 * c2 * s3 - s1 * s2 * c3; + this._w = c1 * c2 * c3 + s1 * s2 * s3; + break; + case "YZX": + this._x = s1 * c2 * c3 + c1 * s2 * s3; + this._y = c1 * s2 * c3 + s1 * c2 * s3; + this._z = c1 * c2 * s3 - s1 * s2 * c3; + this._w = c1 * c2 * c3 - s1 * s2 * s3; + break; + case "XZY": + this._x = s1 * c2 * c3 - c1 * s2 * s3; + this._y = c1 * s2 * c3 - s1 * c2 * s3; + this._z = c1 * c2 * s3 + s1 * s2 * c3; + this._w = c1 * c2 * c3 + s1 * s2 * s3; + break; + default: + console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: " + order); + } + if (update === true) this._onChangeCallback(); + return this; + } + setFromAxisAngle(axis, angle) { + const halfAngle = angle / 2, s = Math.sin(halfAngle); + this._x = axis.x * s; + this._y = axis.y * s; + this._z = axis.z * s; + this._w = Math.cos(halfAngle); + this._onChangeCallback(); + return this; + } + setFromRotationMatrix(m) { + const te2 = m.elements, m11 = te2[0], m12 = te2[4], m13 = te2[8], m21 = te2[1], m22 = te2[5], m23 = te2[9], m31 = te2[2], m32 = te2[6], m33 = te2[10], trace = m11 + m22 + m33; + if (trace > 0) { + const s = 0.5 / Math.sqrt(trace + 1); + this._w = 0.25 / s; + this._x = (m32 - m23) * s; + this._y = (m13 - m31) * s; + this._z = (m21 - m12) * s; + } else if (m11 > m22 && m11 > m33) { + const s = 2 * Math.sqrt(1 + m11 - m22 - m33); + this._w = (m32 - m23) / s; + this._x = 0.25 * s; + this._y = (m12 + m21) / s; + this._z = (m13 + m31) / s; + } else if (m22 > m33) { + const s = 2 * Math.sqrt(1 + m22 - m11 - m33); + this._w = (m13 - m31) / s; + this._x = (m12 + m21) / s; + this._y = 0.25 * s; + this._z = (m23 + m32) / s; + } else { + const s = 2 * Math.sqrt(1 + m33 - m11 - m22); + this._w = (m21 - m12) / s; + this._x = (m13 + m31) / s; + this._y = (m23 + m32) / s; + this._z = 0.25 * s; + } + this._onChangeCallback(); + return this; + } + setFromUnitVectors(vFrom, vTo) { + let r = vFrom.dot(vTo) + 1; + if (r < Number.EPSILON) { + r = 0; + if (Math.abs(vFrom.x) > Math.abs(vFrom.z)) { + this._x = -vFrom.y; + this._y = vFrom.x; + this._z = 0; + this._w = r; + } else { + this._x = 0; + this._y = -vFrom.z; + this._z = vFrom.y; + this._w = r; + } + } else { + this._x = vFrom.y * vTo.z - vFrom.z * vTo.y; + this._y = vFrom.z * vTo.x - vFrom.x * vTo.z; + this._z = vFrom.x * vTo.y - vFrom.y * vTo.x; + this._w = r; + } + return this.normalize(); + } + angleTo(q) { + return 2 * Math.acos(Math.abs(clamp(this.dot(q), -1, 1))); + } + rotateTowards(q, step) { + const angle = this.angleTo(q); + if (angle === 0) return this; + const t2 = Math.min(1, step / angle); + this.slerp(q, t2); + return this; + } + identity() { + return this.set(0, 0, 0, 1); + } + invert() { + return this.conjugate(); + } + conjugate() { + this._x *= -1; + this._y *= -1; + this._z *= -1; + this._onChangeCallback(); + return this; + } + dot(v) { + return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w; + } + lengthSq() { + return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w; + } + length() { + return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w); + } + normalize() { + let l = this.length(); + if (l === 0) { + this._x = 0; + this._y = 0; + this._z = 0; + this._w = 1; + } else { + l = 1 / l; + this._x = this._x * l; + this._y = this._y * l; + this._z = this._z * l; + this._w = this._w * l; + } + this._onChangeCallback(); + return this; + } + multiply(q) { + return this.multiplyQuaternions(this, q); + } + premultiply(q) { + return this.multiplyQuaternions(q, this); + } + multiplyQuaternions(a, b) { + const qax = a._x, qay = a._y, qaz = a._z, qaw = a._w; + const qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w; + this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby; + this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz; + this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx; + this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz; + this._onChangeCallback(); + return this; + } + slerp(qb, t2) { + if (t2 === 0) return this; + if (t2 === 1) return this.copy(qb); + const x = this._x, y = this._y, z = this._z, w = this._w; + let cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z; + if (cosHalfTheta < 0) { + this._w = -qb._w; + this._x = -qb._x; + this._y = -qb._y; + this._z = -qb._z; + cosHalfTheta = -cosHalfTheta; + } else { + this.copy(qb); + } + if (cosHalfTheta >= 1) { + this._w = w; + this._x = x; + this._y = y; + this._z = z; + return this; + } + const sqrSinHalfTheta = 1 - cosHalfTheta * cosHalfTheta; + if (sqrSinHalfTheta <= Number.EPSILON) { + const s = 1 - t2; + this._w = s * w + t2 * this._w; + this._x = s * x + t2 * this._x; + this._y = s * y + t2 * this._y; + this._z = s * z + t2 * this._z; + this.normalize(); + return this; + } + const sinHalfTheta = Math.sqrt(sqrSinHalfTheta); + const halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta); + const ratioA = Math.sin((1 - t2) * halfTheta) / sinHalfTheta, ratioB = Math.sin(t2 * halfTheta) / sinHalfTheta; + this._w = w * ratioA + this._w * ratioB; + this._x = x * ratioA + this._x * ratioB; + this._y = y * ratioA + this._y * ratioB; + this._z = z * ratioA + this._z * ratioB; + this._onChangeCallback(); + return this; + } + slerpQuaternions(qa, qb, t2) { + return this.copy(qa).slerp(qb, t2); + } + random() { + const theta1 = 2 * Math.PI * Math.random(); + const theta2 = 2 * Math.PI * Math.random(); + const x0 = Math.random(); + const r1 = Math.sqrt(1 - x0); + const r2 = Math.sqrt(x0); + return this.set( + r1 * Math.sin(theta1), + r1 * Math.cos(theta1), + r2 * Math.sin(theta2), + r2 * Math.cos(theta2) + ); + } + equals(quaternion) { + return quaternion._x === this._x && quaternion._y === this._y && quaternion._z === this._z && quaternion._w === this._w; + } + fromArray(array, offset = 0) { + this._x = array[offset]; + this._y = array[offset + 1]; + this._z = array[offset + 2]; + this._w = array[offset + 3]; + this._onChangeCallback(); + return this; + } + toArray(array = [], offset = 0) { + array[offset] = this._x; + array[offset + 1] = this._y; + array[offset + 2] = this._z; + array[offset + 3] = this._w; + return array; + } + fromBufferAttribute(attribute, index) { + this._x = attribute.getX(index); + this._y = attribute.getY(index); + this._z = attribute.getZ(index); + this._w = attribute.getW(index); + this._onChangeCallback(); + return this; + } + toJSON() { + return this.toArray(); + } + _onChange(callback) { + this._onChangeCallback = callback; + return this; + } + _onChangeCallback() { + } + *[Symbol.iterator]() { + yield this._x; + yield this._y; + yield this._z; + yield this._w; + } +} +class Vector3 { + static { + __name(this, "Vector3"); + } + constructor(x = 0, y = 0, z = 0) { + Vector3.prototype.isVector3 = true; + this.x = x; + this.y = y; + this.z = z; + } + set(x, y, z) { + if (z === void 0) z = this.z; + this.x = x; + this.y = y; + this.z = z; + return this; + } + setScalar(scalar) { + this.x = scalar; + this.y = scalar; + this.z = scalar; + return this; + } + setX(x) { + this.x = x; + return this; + } + setY(y) { + this.y = y; + return this; + } + setZ(z) { + this.z = z; + return this; + } + setComponent(index, value) { + switch (index) { + case 0: + this.x = value; + break; + case 1: + this.y = value; + break; + case 2: + this.z = value; + break; + default: + throw new Error("index is out of range: " + index); + } + return this; + } + getComponent(index) { + switch (index) { + case 0: + return this.x; + case 1: + return this.y; + case 2: + return this.z; + default: + throw new Error("index is out of range: " + index); + } + } + clone() { + return new this.constructor(this.x, this.y, this.z); + } + copy(v) { + this.x = v.x; + this.y = v.y; + this.z = v.z; + return this; + } + add(v) { + this.x += v.x; + this.y += v.y; + this.z += v.z; + return this; + } + addScalar(s) { + this.x += s; + this.y += s; + this.z += s; + return this; + } + addVectors(a, b) { + this.x = a.x + b.x; + this.y = a.y + b.y; + this.z = a.z + b.z; + return this; + } + addScaledVector(v, s) { + this.x += v.x * s; + this.y += v.y * s; + this.z += v.z * s; + return this; + } + sub(v) { + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + return this; + } + subScalar(s) { + this.x -= s; + this.y -= s; + this.z -= s; + return this; + } + subVectors(a, b) { + this.x = a.x - b.x; + this.y = a.y - b.y; + this.z = a.z - b.z; + return this; + } + multiply(v) { + this.x *= v.x; + this.y *= v.y; + this.z *= v.z; + return this; + } + multiplyScalar(scalar) { + this.x *= scalar; + this.y *= scalar; + this.z *= scalar; + return this; + } + multiplyVectors(a, b) { + this.x = a.x * b.x; + this.y = a.y * b.y; + this.z = a.z * b.z; + return this; + } + applyEuler(euler) { + return this.applyQuaternion(_quaternion$4.setFromEuler(euler)); + } + applyAxisAngle(axis, angle) { + return this.applyQuaternion(_quaternion$4.setFromAxisAngle(axis, angle)); + } + applyMatrix3(m) { + const x = this.x, y = this.y, z = this.z; + const e = m.elements; + this.x = e[0] * x + e[3] * y + e[6] * z; + this.y = e[1] * x + e[4] * y + e[7] * z; + this.z = e[2] * x + e[5] * y + e[8] * z; + return this; + } + applyNormalMatrix(m) { + return this.applyMatrix3(m).normalize(); + } + applyMatrix4(m) { + const x = this.x, y = this.y, z = this.z; + const e = m.elements; + const w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15]); + this.x = (e[0] * x + e[4] * y + e[8] * z + e[12]) * w; + this.y = (e[1] * x + e[5] * y + e[9] * z + e[13]) * w; + this.z = (e[2] * x + e[6] * y + e[10] * z + e[14]) * w; + return this; + } + applyQuaternion(q) { + const vx = this.x, vy = this.y, vz = this.z; + const qx = q.x, qy = q.y, qz = q.z, qw = q.w; + const tx = 2 * (qy * vz - qz * vy); + const ty = 2 * (qz * vx - qx * vz); + const tz = 2 * (qx * vy - qy * vx); + this.x = vx + qw * tx + qy * tz - qz * ty; + this.y = vy + qw * ty + qz * tx - qx * tz; + this.z = vz + qw * tz + qx * ty - qy * tx; + return this; + } + project(camera) { + return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix); + } + unproject(camera) { + return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld); + } + transformDirection(m) { + const x = this.x, y = this.y, z = this.z; + const e = m.elements; + this.x = e[0] * x + e[4] * y + e[8] * z; + this.y = e[1] * x + e[5] * y + e[9] * z; + this.z = e[2] * x + e[6] * y + e[10] * z; + return this.normalize(); + } + divide(v) { + this.x /= v.x; + this.y /= v.y; + this.z /= v.z; + return this; + } + divideScalar(scalar) { + return this.multiplyScalar(1 / scalar); + } + min(v) { + this.x = Math.min(this.x, v.x); + this.y = Math.min(this.y, v.y); + this.z = Math.min(this.z, v.z); + return this; + } + max(v) { + this.x = Math.max(this.x, v.x); + this.y = Math.max(this.y, v.y); + this.z = Math.max(this.z, v.z); + return this; + } + clamp(min, max2) { + this.x = Math.max(min.x, Math.min(max2.x, this.x)); + this.y = Math.max(min.y, Math.min(max2.y, this.y)); + this.z = Math.max(min.z, Math.min(max2.z, this.z)); + return this; + } + clampScalar(minVal, maxVal) { + this.x = Math.max(minVal, Math.min(maxVal, this.x)); + this.y = Math.max(minVal, Math.min(maxVal, this.y)); + this.z = Math.max(minVal, Math.min(maxVal, this.z)); + return this; + } + clampLength(min, max2) { + const length = this.length(); + return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max2, length))); + } + floor() { + this.x = Math.floor(this.x); + this.y = Math.floor(this.y); + this.z = Math.floor(this.z); + return this; + } + ceil() { + this.x = Math.ceil(this.x); + this.y = Math.ceil(this.y); + this.z = Math.ceil(this.z); + return this; + } + round() { + this.x = Math.round(this.x); + this.y = Math.round(this.y); + this.z = Math.round(this.z); + return this; + } + roundToZero() { + this.x = Math.trunc(this.x); + this.y = Math.trunc(this.y); + this.z = Math.trunc(this.z); + return this; + } + negate() { + this.x = -this.x; + this.y = -this.y; + this.z = -this.z; + return this; + } + dot(v) { + return this.x * v.x + this.y * v.y + this.z * v.z; + } + // TODO lengthSquared? + lengthSq() { + return this.x * this.x + this.y * this.y + this.z * this.z; + } + length() { + return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); + } + manhattanLength() { + return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z); + } + normalize() { + return this.divideScalar(this.length() || 1); + } + setLength(length) { + return this.normalize().multiplyScalar(length); + } + lerp(v, alpha) { + this.x += (v.x - this.x) * alpha; + this.y += (v.y - this.y) * alpha; + this.z += (v.z - this.z) * alpha; + return this; + } + lerpVectors(v1, v2, alpha) { + this.x = v1.x + (v2.x - v1.x) * alpha; + this.y = v1.y + (v2.y - v1.y) * alpha; + this.z = v1.z + (v2.z - v1.z) * alpha; + return this; + } + cross(v) { + return this.crossVectors(this, v); + } + crossVectors(a, b) { + const ax = a.x, ay = a.y, az = a.z; + const bx = b.x, by = b.y, bz = b.z; + this.x = ay * bz - az * by; + this.y = az * bx - ax * bz; + this.z = ax * by - ay * bx; + return this; + } + projectOnVector(v) { + const denominator = v.lengthSq(); + if (denominator === 0) return this.set(0, 0, 0); + const scalar = v.dot(this) / denominator; + return this.copy(v).multiplyScalar(scalar); + } + projectOnPlane(planeNormal) { + _vector$c.copy(this).projectOnVector(planeNormal); + return this.sub(_vector$c); + } + reflect(normal) { + return this.sub(_vector$c.copy(normal).multiplyScalar(2 * this.dot(normal))); + } + angleTo(v) { + const denominator = Math.sqrt(this.lengthSq() * v.lengthSq()); + if (denominator === 0) return Math.PI / 2; + const theta = this.dot(v) / denominator; + return Math.acos(clamp(theta, -1, 1)); + } + distanceTo(v) { + return Math.sqrt(this.distanceToSquared(v)); + } + distanceToSquared(v) { + const dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z; + return dx * dx + dy * dy + dz * dz; + } + manhattanDistanceTo(v) { + return Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + Math.abs(this.z - v.z); + } + setFromSpherical(s) { + return this.setFromSphericalCoords(s.radius, s.phi, s.theta); + } + setFromSphericalCoords(radius, phi, theta) { + const sinPhiRadius = Math.sin(phi) * radius; + this.x = sinPhiRadius * Math.sin(theta); + this.y = Math.cos(phi) * radius; + this.z = sinPhiRadius * Math.cos(theta); + return this; + } + setFromCylindrical(c) { + return this.setFromCylindricalCoords(c.radius, c.theta, c.y); + } + setFromCylindricalCoords(radius, theta, y) { + this.x = radius * Math.sin(theta); + this.y = y; + this.z = radius * Math.cos(theta); + return this; + } + setFromMatrixPosition(m) { + const e = m.elements; + this.x = e[12]; + this.y = e[13]; + this.z = e[14]; + return this; + } + setFromMatrixScale(m) { + const sx = this.setFromMatrixColumn(m, 0).length(); + const sy = this.setFromMatrixColumn(m, 1).length(); + const sz = this.setFromMatrixColumn(m, 2).length(); + this.x = sx; + this.y = sy; + this.z = sz; + return this; + } + setFromMatrixColumn(m, index) { + return this.fromArray(m.elements, index * 4); + } + setFromMatrix3Column(m, index) { + return this.fromArray(m.elements, index * 3); + } + setFromEuler(e) { + this.x = e._x; + this.y = e._y; + this.z = e._z; + return this; + } + setFromColor(c) { + this.x = c.r; + this.y = c.g; + this.z = c.b; + return this; + } + equals(v) { + return v.x === this.x && v.y === this.y && v.z === this.z; + } + fromArray(array, offset = 0) { + this.x = array[offset]; + this.y = array[offset + 1]; + this.z = array[offset + 2]; + return this; + } + toArray(array = [], offset = 0) { + array[offset] = this.x; + array[offset + 1] = this.y; + array[offset + 2] = this.z; + return array; + } + fromBufferAttribute(attribute, index) { + this.x = attribute.getX(index); + this.y = attribute.getY(index); + this.z = attribute.getZ(index); + return this; + } + random() { + this.x = Math.random(); + this.y = Math.random(); + this.z = Math.random(); + return this; + } + randomDirection() { + const theta = Math.random() * Math.PI * 2; + const u = Math.random() * 2 - 1; + const c = Math.sqrt(1 - u * u); + this.x = c * Math.cos(theta); + this.y = u; + this.z = c * Math.sin(theta); + return this; + } + *[Symbol.iterator]() { + yield this.x; + yield this.y; + yield this.z; + } +} +const _vector$c = /* @__PURE__ */ new Vector3(); +const _quaternion$4 = /* @__PURE__ */ new Quaternion(); +class Box3 { + static { + __name(this, "Box3"); + } + constructor(min = new Vector3(Infinity, Infinity, Infinity), max2 = new Vector3(-Infinity, -Infinity, -Infinity)) { + this.isBox3 = true; + this.min = min; + this.max = max2; + } + set(min, max2) { + this.min.copy(min); + this.max.copy(max2); + return this; + } + setFromArray(array) { + this.makeEmpty(); + for (let i = 0, il = array.length; i < il; i += 3) { + this.expandByPoint(_vector$b.fromArray(array, i)); + } + return this; + } + setFromBufferAttribute(attribute) { + this.makeEmpty(); + for (let i = 0, il = attribute.count; i < il; i++) { + this.expandByPoint(_vector$b.fromBufferAttribute(attribute, i)); + } + return this; + } + setFromPoints(points) { + this.makeEmpty(); + for (let i = 0, il = points.length; i < il; i++) { + this.expandByPoint(points[i]); + } + return this; + } + setFromCenterAndSize(center, size) { + const halfSize = _vector$b.copy(size).multiplyScalar(0.5); + this.min.copy(center).sub(halfSize); + this.max.copy(center).add(halfSize); + return this; + } + setFromObject(object, precise = false) { + this.makeEmpty(); + return this.expandByObject(object, precise); + } + clone() { + return new this.constructor().copy(this); + } + copy(box) { + this.min.copy(box.min); + this.max.copy(box.max); + return this; + } + makeEmpty() { + this.min.x = this.min.y = this.min.z = Infinity; + this.max.x = this.max.y = this.max.z = -Infinity; + return this; + } + isEmpty() { + return this.max.x < this.min.x || this.max.y < this.min.y || this.max.z < this.min.z; + } + getCenter(target) { + return this.isEmpty() ? target.set(0, 0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5); + } + getSize(target) { + return this.isEmpty() ? target.set(0, 0, 0) : target.subVectors(this.max, this.min); + } + expandByPoint(point) { + this.min.min(point); + this.max.max(point); + return this; + } + expandByVector(vector) { + this.min.sub(vector); + this.max.add(vector); + return this; + } + expandByScalar(scalar) { + this.min.addScalar(-scalar); + this.max.addScalar(scalar); + return this; + } + expandByObject(object, precise = false) { + object.updateWorldMatrix(false, false); + const geometry = object.geometry; + if (geometry !== void 0) { + const positionAttribute = geometry.getAttribute("position"); + if (precise === true && positionAttribute !== void 0 && object.isInstancedMesh !== true) { + for (let i = 0, l = positionAttribute.count; i < l; i++) { + if (object.isMesh === true) { + object.getVertexPosition(i, _vector$b); + } else { + _vector$b.fromBufferAttribute(positionAttribute, i); + } + _vector$b.applyMatrix4(object.matrixWorld); + this.expandByPoint(_vector$b); + } + } else { + if (object.boundingBox !== void 0) { + if (object.boundingBox === null) { + object.computeBoundingBox(); + } + _box$4.copy(object.boundingBox); + } else { + if (geometry.boundingBox === null) { + geometry.computeBoundingBox(); + } + _box$4.copy(geometry.boundingBox); + } + _box$4.applyMatrix4(object.matrixWorld); + this.union(_box$4); + } + } + const children = object.children; + for (let i = 0, l = children.length; i < l; i++) { + this.expandByObject(children[i], precise); + } + return this; + } + containsPoint(point) { + return point.x >= this.min.x && point.x <= this.max.x && point.y >= this.min.y && point.y <= this.max.y && point.z >= this.min.z && point.z <= this.max.z; + } + containsBox(box) { + return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y && this.min.z <= box.min.z && box.max.z <= this.max.z; + } + getParameter(point, target) { + return target.set( + (point.x - this.min.x) / (this.max.x - this.min.x), + (point.y - this.min.y) / (this.max.y - this.min.y), + (point.z - this.min.z) / (this.max.z - this.min.z) + ); + } + intersectsBox(box) { + return box.max.x >= this.min.x && box.min.x <= this.max.x && box.max.y >= this.min.y && box.min.y <= this.max.y && box.max.z >= this.min.z && box.min.z <= this.max.z; + } + intersectsSphere(sphere) { + this.clampPoint(sphere.center, _vector$b); + return _vector$b.distanceToSquared(sphere.center) <= sphere.radius * sphere.radius; + } + intersectsPlane(plane) { + let min, max2; + if (plane.normal.x > 0) { + min = plane.normal.x * this.min.x; + max2 = plane.normal.x * this.max.x; + } else { + min = plane.normal.x * this.max.x; + max2 = plane.normal.x * this.min.x; + } + if (plane.normal.y > 0) { + min += plane.normal.y * this.min.y; + max2 += plane.normal.y * this.max.y; + } else { + min += plane.normal.y * this.max.y; + max2 += plane.normal.y * this.min.y; + } + if (plane.normal.z > 0) { + min += plane.normal.z * this.min.z; + max2 += plane.normal.z * this.max.z; + } else { + min += plane.normal.z * this.max.z; + max2 += plane.normal.z * this.min.z; + } + return min <= -plane.constant && max2 >= -plane.constant; + } + intersectsTriangle(triangle) { + if (this.isEmpty()) { + return false; + } + this.getCenter(_center); + _extents.subVectors(this.max, _center); + _v0$3.subVectors(triangle.a, _center); + _v1$7.subVectors(triangle.b, _center); + _v2$4.subVectors(triangle.c, _center); + _f0.subVectors(_v1$7, _v0$3); + _f1.subVectors(_v2$4, _v1$7); + _f2.subVectors(_v0$3, _v2$4); + let axes = [ + 0, + -_f0.z, + _f0.y, + 0, + -_f1.z, + _f1.y, + 0, + -_f2.z, + _f2.y, + _f0.z, + 0, + -_f0.x, + _f1.z, + 0, + -_f1.x, + _f2.z, + 0, + -_f2.x, + -_f0.y, + _f0.x, + 0, + -_f1.y, + _f1.x, + 0, + -_f2.y, + _f2.x, + 0 + ]; + if (!satForAxes(axes, _v0$3, _v1$7, _v2$4, _extents)) { + return false; + } + axes = [1, 0, 0, 0, 1, 0, 0, 0, 1]; + if (!satForAxes(axes, _v0$3, _v1$7, _v2$4, _extents)) { + return false; + } + _triangleNormal.crossVectors(_f0, _f1); + axes = [_triangleNormal.x, _triangleNormal.y, _triangleNormal.z]; + return satForAxes(axes, _v0$3, _v1$7, _v2$4, _extents); + } + clampPoint(point, target) { + return target.copy(point).clamp(this.min, this.max); + } + distanceToPoint(point) { + return this.clampPoint(point, _vector$b).distanceTo(point); + } + getBoundingSphere(target) { + if (this.isEmpty()) { + target.makeEmpty(); + } else { + this.getCenter(target.center); + target.radius = this.getSize(_vector$b).length() * 0.5; + } + return target; + } + intersect(box) { + this.min.max(box.min); + this.max.min(box.max); + if (this.isEmpty()) this.makeEmpty(); + return this; + } + union(box) { + this.min.min(box.min); + this.max.max(box.max); + return this; + } + applyMatrix4(matrix) { + if (this.isEmpty()) return this; + _points[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(matrix); + _points[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(matrix); + _points[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(matrix); + _points[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(matrix); + _points[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(matrix); + _points[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(matrix); + _points[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(matrix); + _points[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(matrix); + this.setFromPoints(_points); + return this; + } + translate(offset) { + this.min.add(offset); + this.max.add(offset); + return this; + } + equals(box) { + return box.min.equals(this.min) && box.max.equals(this.max); + } +} +const _points = [ + /* @__PURE__ */ new Vector3(), + /* @__PURE__ */ new Vector3(), + /* @__PURE__ */ new Vector3(), + /* @__PURE__ */ new Vector3(), + /* @__PURE__ */ new Vector3(), + /* @__PURE__ */ new Vector3(), + /* @__PURE__ */ new Vector3(), + /* @__PURE__ */ new Vector3() +]; +const _vector$b = /* @__PURE__ */ new Vector3(); +const _box$4 = /* @__PURE__ */ new Box3(); +const _v0$3 = /* @__PURE__ */ new Vector3(); +const _v1$7 = /* @__PURE__ */ new Vector3(); +const _v2$4 = /* @__PURE__ */ new Vector3(); +const _f0 = /* @__PURE__ */ new Vector3(); +const _f1 = /* @__PURE__ */ new Vector3(); +const _f2 = /* @__PURE__ */ new Vector3(); +const _center = /* @__PURE__ */ new Vector3(); +const _extents = /* @__PURE__ */ new Vector3(); +const _triangleNormal = /* @__PURE__ */ new Vector3(); +const _testAxis = /* @__PURE__ */ new Vector3(); +function satForAxes(axes, v0, v1, v2, extents) { + for (let i = 0, j = axes.length - 3; i <= j; i += 3) { + _testAxis.fromArray(axes, i); + const r = extents.x * Math.abs(_testAxis.x) + extents.y * Math.abs(_testAxis.y) + extents.z * Math.abs(_testAxis.z); + const p0 = v0.dot(_testAxis); + const p1 = v1.dot(_testAxis); + const p2 = v2.dot(_testAxis); + if (Math.max(-Math.max(p0, p1, p2), Math.min(p0, p1, p2)) > r) { + return false; + } + } + return true; +} +__name(satForAxes, "satForAxes"); +const _box$3 = /* @__PURE__ */ new Box3(); +const _v1$6 = /* @__PURE__ */ new Vector3(); +const _v2$3 = /* @__PURE__ */ new Vector3(); +class Sphere { + static { + __name(this, "Sphere"); + } + constructor(center = new Vector3(), radius = -1) { + this.isSphere = true; + this.center = center; + this.radius = radius; + } + set(center, radius) { + this.center.copy(center); + this.radius = radius; + return this; + } + setFromPoints(points, optionalCenter) { + const center = this.center; + if (optionalCenter !== void 0) { + center.copy(optionalCenter); + } else { + _box$3.setFromPoints(points).getCenter(center); + } + let maxRadiusSq = 0; + for (let i = 0, il = points.length; i < il; i++) { + maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(points[i])); + } + this.radius = Math.sqrt(maxRadiusSq); + return this; + } + copy(sphere) { + this.center.copy(sphere.center); + this.radius = sphere.radius; + return this; + } + isEmpty() { + return this.radius < 0; + } + makeEmpty() { + this.center.set(0, 0, 0); + this.radius = -1; + return this; + } + containsPoint(point) { + return point.distanceToSquared(this.center) <= this.radius * this.radius; + } + distanceToPoint(point) { + return point.distanceTo(this.center) - this.radius; + } + intersectsSphere(sphere) { + const radiusSum = this.radius + sphere.radius; + return sphere.center.distanceToSquared(this.center) <= radiusSum * radiusSum; + } + intersectsBox(box) { + return box.intersectsSphere(this); + } + intersectsPlane(plane) { + return Math.abs(plane.distanceToPoint(this.center)) <= this.radius; + } + clampPoint(point, target) { + const deltaLengthSq = this.center.distanceToSquared(point); + target.copy(point); + if (deltaLengthSq > this.radius * this.radius) { + target.sub(this.center).normalize(); + target.multiplyScalar(this.radius).add(this.center); + } + return target; + } + getBoundingBox(target) { + if (this.isEmpty()) { + target.makeEmpty(); + return target; + } + target.set(this.center, this.center); + target.expandByScalar(this.radius); + return target; + } + applyMatrix4(matrix) { + this.center.applyMatrix4(matrix); + this.radius = this.radius * matrix.getMaxScaleOnAxis(); + return this; + } + translate(offset) { + this.center.add(offset); + return this; + } + expandByPoint(point) { + if (this.isEmpty()) { + this.center.copy(point); + this.radius = 0; + return this; + } + _v1$6.subVectors(point, this.center); + const lengthSq = _v1$6.lengthSq(); + if (lengthSq > this.radius * this.radius) { + const length = Math.sqrt(lengthSq); + const delta = (length - this.radius) * 0.5; + this.center.addScaledVector(_v1$6, delta / length); + this.radius += delta; + } + return this; + } + union(sphere) { + if (sphere.isEmpty()) { + return this; + } + if (this.isEmpty()) { + this.copy(sphere); + return this; + } + if (this.center.equals(sphere.center) === true) { + this.radius = Math.max(this.radius, sphere.radius); + } else { + _v2$3.subVectors(sphere.center, this.center).setLength(sphere.radius); + this.expandByPoint(_v1$6.copy(sphere.center).add(_v2$3)); + this.expandByPoint(_v1$6.copy(sphere.center).sub(_v2$3)); + } + return this; + } + equals(sphere) { + return sphere.center.equals(this.center) && sphere.radius === this.radius; + } + clone() { + return new this.constructor().copy(this); + } +} +const _vector$a = /* @__PURE__ */ new Vector3(); +const _segCenter = /* @__PURE__ */ new Vector3(); +const _segDir = /* @__PURE__ */ new Vector3(); +const _diff = /* @__PURE__ */ new Vector3(); +const _edge1 = /* @__PURE__ */ new Vector3(); +const _edge2 = /* @__PURE__ */ new Vector3(); +const _normal$1 = /* @__PURE__ */ new Vector3(); +class Ray { + static { + __name(this, "Ray"); + } + constructor(origin = new Vector3(), direction = new Vector3(0, 0, -1)) { + this.origin = origin; + this.direction = direction; + } + set(origin, direction) { + this.origin.copy(origin); + this.direction.copy(direction); + return this; + } + copy(ray) { + this.origin.copy(ray.origin); + this.direction.copy(ray.direction); + return this; + } + at(t2, target) { + return target.copy(this.origin).addScaledVector(this.direction, t2); + } + lookAt(v) { + this.direction.copy(v).sub(this.origin).normalize(); + return this; + } + recast(t2) { + this.origin.copy(this.at(t2, _vector$a)); + return this; + } + closestPointToPoint(point, target) { + target.subVectors(point, this.origin); + const directionDistance = target.dot(this.direction); + if (directionDistance < 0) { + return target.copy(this.origin); + } + return target.copy(this.origin).addScaledVector(this.direction, directionDistance); + } + distanceToPoint(point) { + return Math.sqrt(this.distanceSqToPoint(point)); + } + distanceSqToPoint(point) { + const directionDistance = _vector$a.subVectors(point, this.origin).dot(this.direction); + if (directionDistance < 0) { + return this.origin.distanceToSquared(point); + } + _vector$a.copy(this.origin).addScaledVector(this.direction, directionDistance); + return _vector$a.distanceToSquared(point); + } + distanceSqToSegment(v0, v1, optionalPointOnRay, optionalPointOnSegment) { + _segCenter.copy(v0).add(v1).multiplyScalar(0.5); + _segDir.copy(v1).sub(v0).normalize(); + _diff.copy(this.origin).sub(_segCenter); + const segExtent = v0.distanceTo(v1) * 0.5; + const a01 = -this.direction.dot(_segDir); + const b0 = _diff.dot(this.direction); + const b1 = -_diff.dot(_segDir); + const c = _diff.lengthSq(); + const det = Math.abs(1 - a01 * a01); + let s0, s1, sqrDist, extDet; + if (det > 0) { + s0 = a01 * b1 - b0; + s1 = a01 * b0 - b1; + extDet = segExtent * det; + if (s0 >= 0) { + if (s1 >= -extDet) { + if (s1 <= extDet) { + const invDet = 1 / det; + s0 *= invDet; + s1 *= invDet; + sqrDist = s0 * (s0 + a01 * s1 + 2 * b0) + s1 * (a01 * s0 + s1 + 2 * b1) + c; + } else { + s1 = segExtent; + s0 = Math.max(0, -(a01 * s1 + b0)); + sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c; + } + } else { + s1 = -segExtent; + s0 = Math.max(0, -(a01 * s1 + b0)); + sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c; + } + } else { + if (s1 <= -extDet) { + s0 = Math.max(0, -(-a01 * segExtent + b0)); + s1 = s0 > 0 ? -segExtent : Math.min(Math.max(-segExtent, -b1), segExtent); + sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c; + } else if (s1 <= extDet) { + s0 = 0; + s1 = Math.min(Math.max(-segExtent, -b1), segExtent); + sqrDist = s1 * (s1 + 2 * b1) + c; + } else { + s0 = Math.max(0, -(a01 * segExtent + b0)); + s1 = s0 > 0 ? segExtent : Math.min(Math.max(-segExtent, -b1), segExtent); + sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c; + } + } + } else { + s1 = a01 > 0 ? -segExtent : segExtent; + s0 = Math.max(0, -(a01 * s1 + b0)); + sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c; + } + if (optionalPointOnRay) { + optionalPointOnRay.copy(this.origin).addScaledVector(this.direction, s0); + } + if (optionalPointOnSegment) { + optionalPointOnSegment.copy(_segCenter).addScaledVector(_segDir, s1); + } + return sqrDist; + } + intersectSphere(sphere, target) { + _vector$a.subVectors(sphere.center, this.origin); + const tca = _vector$a.dot(this.direction); + const d2 = _vector$a.dot(_vector$a) - tca * tca; + const radius2 = sphere.radius * sphere.radius; + if (d2 > radius2) return null; + const thc = Math.sqrt(radius2 - d2); + const t0 = tca - thc; + const t1 = tca + thc; + if (t1 < 0) return null; + if (t0 < 0) return this.at(t1, target); + return this.at(t0, target); + } + intersectsSphere(sphere) { + return this.distanceSqToPoint(sphere.center) <= sphere.radius * sphere.radius; + } + distanceToPlane(plane) { + const denominator = plane.normal.dot(this.direction); + if (denominator === 0) { + if (plane.distanceToPoint(this.origin) === 0) { + return 0; + } + return null; + } + const t2 = -(this.origin.dot(plane.normal) + plane.constant) / denominator; + return t2 >= 0 ? t2 : null; + } + intersectPlane(plane, target) { + const t2 = this.distanceToPlane(plane); + if (t2 === null) { + return null; + } + return this.at(t2, target); + } + intersectsPlane(plane) { + const distToPoint = plane.distanceToPoint(this.origin); + if (distToPoint === 0) { + return true; + } + const denominator = plane.normal.dot(this.direction); + if (denominator * distToPoint < 0) { + return true; + } + return false; + } + intersectBox(box, target) { + let tmin, tmax, tymin, tymax, tzmin, tzmax; + const invdirx = 1 / this.direction.x, invdiry = 1 / this.direction.y, invdirz = 1 / this.direction.z; + const origin = this.origin; + if (invdirx >= 0) { + tmin = (box.min.x - origin.x) * invdirx; + tmax = (box.max.x - origin.x) * invdirx; + } else { + tmin = (box.max.x - origin.x) * invdirx; + tmax = (box.min.x - origin.x) * invdirx; + } + if (invdiry >= 0) { + tymin = (box.min.y - origin.y) * invdiry; + tymax = (box.max.y - origin.y) * invdiry; + } else { + tymin = (box.max.y - origin.y) * invdiry; + tymax = (box.min.y - origin.y) * invdiry; + } + if (tmin > tymax || tymin > tmax) return null; + if (tymin > tmin || isNaN(tmin)) tmin = tymin; + if (tymax < tmax || isNaN(tmax)) tmax = tymax; + if (invdirz >= 0) { + tzmin = (box.min.z - origin.z) * invdirz; + tzmax = (box.max.z - origin.z) * invdirz; + } else { + tzmin = (box.max.z - origin.z) * invdirz; + tzmax = (box.min.z - origin.z) * invdirz; + } + if (tmin > tzmax || tzmin > tmax) return null; + if (tzmin > tmin || tmin !== tmin) tmin = tzmin; + if (tzmax < tmax || tmax !== tmax) tmax = tzmax; + if (tmax < 0) return null; + return this.at(tmin >= 0 ? tmin : tmax, target); + } + intersectsBox(box) { + return this.intersectBox(box, _vector$a) !== null; + } + intersectTriangle(a, b, c, backfaceCulling, target) { + _edge1.subVectors(b, a); + _edge2.subVectors(c, a); + _normal$1.crossVectors(_edge1, _edge2); + let DdN = this.direction.dot(_normal$1); + let sign2; + if (DdN > 0) { + if (backfaceCulling) return null; + sign2 = 1; + } else if (DdN < 0) { + sign2 = -1; + DdN = -DdN; + } else { + return null; + } + _diff.subVectors(this.origin, a); + const DdQxE2 = sign2 * this.direction.dot(_edge2.crossVectors(_diff, _edge2)); + if (DdQxE2 < 0) { + return null; + } + const DdE1xQ = sign2 * this.direction.dot(_edge1.cross(_diff)); + if (DdE1xQ < 0) { + return null; + } + if (DdQxE2 + DdE1xQ > DdN) { + return null; + } + const QdN = -sign2 * _diff.dot(_normal$1); + if (QdN < 0) { + return null; + } + return this.at(QdN / DdN, target); + } + applyMatrix4(matrix4) { + this.origin.applyMatrix4(matrix4); + this.direction.transformDirection(matrix4); + return this; + } + equals(ray) { + return ray.origin.equals(this.origin) && ray.direction.equals(this.direction); + } + clone() { + return new this.constructor().copy(this); + } +} +class Matrix4 { + static { + __name(this, "Matrix4"); + } + constructor(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) { + Matrix4.prototype.isMatrix4 = true; + this.elements = [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ]; + if (n11 !== void 0) { + this.set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44); + } + } + set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) { + const te2 = this.elements; + te2[0] = n11; + te2[4] = n12; + te2[8] = n13; + te2[12] = n14; + te2[1] = n21; + te2[5] = n22; + te2[9] = n23; + te2[13] = n24; + te2[2] = n31; + te2[6] = n32; + te2[10] = n33; + te2[14] = n34; + te2[3] = n41; + te2[7] = n42; + te2[11] = n43; + te2[15] = n44; + return this; + } + identity() { + this.set( + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ); + return this; + } + clone() { + return new Matrix4().fromArray(this.elements); + } + copy(m) { + const te2 = this.elements; + const me = m.elements; + te2[0] = me[0]; + te2[1] = me[1]; + te2[2] = me[2]; + te2[3] = me[3]; + te2[4] = me[4]; + te2[5] = me[5]; + te2[6] = me[6]; + te2[7] = me[7]; + te2[8] = me[8]; + te2[9] = me[9]; + te2[10] = me[10]; + te2[11] = me[11]; + te2[12] = me[12]; + te2[13] = me[13]; + te2[14] = me[14]; + te2[15] = me[15]; + return this; + } + copyPosition(m) { + const te2 = this.elements, me = m.elements; + te2[12] = me[12]; + te2[13] = me[13]; + te2[14] = me[14]; + return this; + } + setFromMatrix3(m) { + const me = m.elements; + this.set( + me[0], + me[3], + me[6], + 0, + me[1], + me[4], + me[7], + 0, + me[2], + me[5], + me[8], + 0, + 0, + 0, + 0, + 1 + ); + return this; + } + extractBasis(xAxis, yAxis, zAxis) { + xAxis.setFromMatrixColumn(this, 0); + yAxis.setFromMatrixColumn(this, 1); + zAxis.setFromMatrixColumn(this, 2); + return this; + } + makeBasis(xAxis, yAxis, zAxis) { + 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 + ); + return this; + } + extractRotation(m) { + const te2 = this.elements; + const me = m.elements; + const scaleX = 1 / _v1$5.setFromMatrixColumn(m, 0).length(); + const scaleY = 1 / _v1$5.setFromMatrixColumn(m, 1).length(); + const scaleZ = 1 / _v1$5.setFromMatrixColumn(m, 2).length(); + te2[0] = me[0] * scaleX; + te2[1] = me[1] * scaleX; + te2[2] = me[2] * scaleX; + te2[3] = 0; + te2[4] = me[4] * scaleY; + te2[5] = me[5] * scaleY; + te2[6] = me[6] * scaleY; + te2[7] = 0; + te2[8] = me[8] * scaleZ; + te2[9] = me[9] * scaleZ; + te2[10] = me[10] * scaleZ; + te2[11] = 0; + te2[12] = 0; + te2[13] = 0; + te2[14] = 0; + te2[15] = 1; + return this; + } + makeRotationFromEuler(euler) { + const te2 = this.elements; + const x = euler.x, y = euler.y, z = euler.z; + const a = Math.cos(x), b = Math.sin(x); + const c = Math.cos(y), d = Math.sin(y); + const e = Math.cos(z), f = Math.sin(z); + if (euler.order === "XYZ") { + const ae = a * e, af = a * f, be = b * e, bf = b * f; + te2[0] = c * e; + te2[4] = -c * f; + te2[8] = d; + te2[1] = af + be * d; + te2[5] = ae - bf * d; + te2[9] = -b * c; + te2[2] = bf - ae * d; + te2[6] = be + af * d; + te2[10] = a * c; + } else if (euler.order === "YXZ") { + const ce = c * e, cf = c * f, de = d * e, df = d * f; + te2[0] = ce + df * b; + te2[4] = de * b - cf; + te2[8] = a * d; + te2[1] = a * f; + te2[5] = a * e; + te2[9] = -b; + te2[2] = cf * b - de; + te2[6] = df + ce * b; + te2[10] = a * c; + } else if (euler.order === "ZXY") { + const ce = c * e, cf = c * f, de = d * e, df = d * f; + te2[0] = ce - df * b; + te2[4] = -a * f; + te2[8] = de + cf * b; + te2[1] = cf + de * b; + te2[5] = a * e; + te2[9] = df - ce * b; + te2[2] = -a * d; + te2[6] = b; + te2[10] = a * c; + } else if (euler.order === "ZYX") { + const ae = a * e, af = a * f, be = b * e, bf = b * f; + te2[0] = c * e; + te2[4] = be * d - af; + te2[8] = ae * d + bf; + te2[1] = c * f; + te2[5] = bf * d + ae; + te2[9] = af * d - be; + te2[2] = -d; + te2[6] = b * c; + te2[10] = a * c; + } else if (euler.order === "YZX") { + const ac = a * c, ad = a * d, bc = b * c, bd = b * d; + te2[0] = c * e; + te2[4] = bd - ac * f; + te2[8] = bc * f + ad; + te2[1] = f; + te2[5] = a * e; + te2[9] = -b * e; + te2[2] = -d * e; + te2[6] = ad * f + bc; + te2[10] = ac - bd * f; + } else if (euler.order === "XZY") { + const ac = a * c, ad = a * d, bc = b * c, bd = b * d; + te2[0] = c * e; + te2[4] = -f; + te2[8] = d * e; + te2[1] = ac * f + bd; + te2[5] = a * e; + te2[9] = ad * f - bc; + te2[2] = bc * f - ad; + te2[6] = b * e; + te2[10] = bd * f + ac; + } + te2[3] = 0; + te2[7] = 0; + te2[11] = 0; + te2[12] = 0; + te2[13] = 0; + te2[14] = 0; + te2[15] = 1; + return this; + } + makeRotationFromQuaternion(q) { + return this.compose(_zero, q, _one); + } + lookAt(eye, target, up) { + const te2 = this.elements; + _z.subVectors(eye, target); + if (_z.lengthSq() === 0) { + _z.z = 1; + } + _z.normalize(); + _x.crossVectors(up, _z); + if (_x.lengthSq() === 0) { + if (Math.abs(up.z) === 1) { + _z.x += 1e-4; + } else { + _z.z += 1e-4; + } + _z.normalize(); + _x.crossVectors(up, _z); + } + _x.normalize(); + _y.crossVectors(_z, _x); + te2[0] = _x.x; + te2[4] = _y.x; + te2[8] = _z.x; + te2[1] = _x.y; + te2[5] = _y.y; + te2[9] = _z.y; + te2[2] = _x.z; + te2[6] = _y.z; + te2[10] = _z.z; + return this; + } + multiply(m) { + return this.multiplyMatrices(this, m); + } + premultiply(m) { + return this.multiplyMatrices(m, this); + } + multiplyMatrices(a, b) { + const ae = a.elements; + const be = b.elements; + const te2 = this.elements; + const a11 = ae[0], a12 = ae[4], a13 = ae[8], a14 = ae[12]; + const a21 = ae[1], a22 = ae[5], a23 = ae[9], a24 = ae[13]; + const a31 = ae[2], a32 = ae[6], a33 = ae[10], a34 = ae[14]; + const a41 = ae[3], a42 = ae[7], a43 = ae[11], a44 = ae[15]; + const b11 = be[0], b12 = be[4], b13 = be[8], b14 = be[12]; + const b21 = be[1], b22 = be[5], b23 = be[9], b24 = be[13]; + const b31 = be[2], b32 = be[6], b33 = be[10], b34 = be[14]; + const b41 = be[3], b42 = be[7], b43 = be[11], b44 = be[15]; + te2[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41; + te2[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42; + te2[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43; + te2[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44; + te2[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41; + te2[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42; + te2[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43; + te2[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44; + te2[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41; + te2[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42; + te2[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43; + te2[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44; + te2[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41; + te2[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42; + te2[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43; + te2[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44; + return this; + } + multiplyScalar(s) { + const te2 = this.elements; + te2[0] *= s; + te2[4] *= s; + te2[8] *= s; + te2[12] *= s; + te2[1] *= s; + te2[5] *= s; + te2[9] *= s; + te2[13] *= s; + te2[2] *= s; + te2[6] *= s; + te2[10] *= s; + te2[14] *= s; + te2[3] *= s; + te2[7] *= s; + te2[11] *= s; + te2[15] *= s; + return this; + } + determinant() { + const te2 = this.elements; + const n11 = te2[0], n12 = te2[4], n13 = te2[8], n14 = te2[12]; + const n21 = te2[1], n22 = te2[5], n23 = te2[9], n24 = te2[13]; + const n31 = te2[2], n32 = te2[6], n33 = te2[10], n34 = te2[14]; + const n41 = te2[3], n42 = te2[7], n43 = te2[11], n44 = te2[15]; + 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); + } + transpose() { + const te2 = this.elements; + let tmp2; + tmp2 = te2[1]; + te2[1] = te2[4]; + te2[4] = tmp2; + tmp2 = te2[2]; + te2[2] = te2[8]; + te2[8] = tmp2; + tmp2 = te2[6]; + te2[6] = te2[9]; + te2[9] = tmp2; + tmp2 = te2[3]; + te2[3] = te2[12]; + te2[12] = tmp2; + tmp2 = te2[7]; + te2[7] = te2[13]; + te2[13] = tmp2; + tmp2 = te2[11]; + te2[11] = te2[14]; + te2[14] = tmp2; + return this; + } + setPosition(x, y, z) { + const te2 = this.elements; + if (x.isVector3) { + te2[12] = x.x; + te2[13] = x.y; + te2[14] = x.z; + } else { + te2[12] = x; + te2[13] = y; + te2[14] = z; + } + return this; + } + invert() { + const te2 = this.elements, n11 = te2[0], n21 = te2[1], n31 = te2[2], n41 = te2[3], n12 = te2[4], n22 = te2[5], n32 = te2[6], n42 = te2[7], n13 = te2[8], n23 = te2[9], n33 = te2[10], n43 = te2[11], n14 = te2[12], n24 = te2[13], n34 = te2[14], n44 = te2[15], t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44, t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44, t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44, t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34; + const det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14; + if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + const detInv = 1 / det; + te2[0] = t11 * detInv; + te2[1] = (n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44) * detInv; + te2[2] = (n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44) * detInv; + te2[3] = (n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43) * detInv; + te2[4] = t12 * detInv; + te2[5] = (n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44) * detInv; + te2[6] = (n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44) * detInv; + te2[7] = (n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43) * detInv; + te2[8] = t13 * detInv; + te2[9] = (n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44) * detInv; + te2[10] = (n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44) * detInv; + te2[11] = (n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43) * detInv; + te2[12] = t14 * detInv; + te2[13] = (n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34) * detInv; + te2[14] = (n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34) * detInv; + te2[15] = (n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33) * detInv; + return this; + } + scale(v) { + const te2 = this.elements; + const x = v.x, y = v.y, z = v.z; + te2[0] *= x; + te2[4] *= y; + te2[8] *= z; + te2[1] *= x; + te2[5] *= y; + te2[9] *= z; + te2[2] *= x; + te2[6] *= y; + te2[10] *= z; + te2[3] *= x; + te2[7] *= y; + te2[11] *= z; + return this; + } + getMaxScaleOnAxis() { + const te2 = this.elements; + const scaleXSq = te2[0] * te2[0] + te2[1] * te2[1] + te2[2] * te2[2]; + const scaleYSq = te2[4] * te2[4] + te2[5] * te2[5] + te2[6] * te2[6]; + const scaleZSq = te2[8] * te2[8] + te2[9] * te2[9] + te2[10] * te2[10]; + return Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq)); + } + makeTranslation(x, y, z) { + if (x.isVector3) { + this.set( + 1, + 0, + 0, + x.x, + 0, + 1, + 0, + x.y, + 0, + 0, + 1, + x.z, + 0, + 0, + 0, + 1 + ); + } else { + this.set( + 1, + 0, + 0, + x, + 0, + 1, + 0, + y, + 0, + 0, + 1, + z, + 0, + 0, + 0, + 1 + ); + } + return this; + } + makeRotationX(theta) { + const c = Math.cos(theta), s = Math.sin(theta); + this.set( + 1, + 0, + 0, + 0, + 0, + c, + -s, + 0, + 0, + s, + c, + 0, + 0, + 0, + 0, + 1 + ); + return this; + } + makeRotationY(theta) { + const c = Math.cos(theta), s = Math.sin(theta); + this.set( + c, + 0, + s, + 0, + 0, + 1, + 0, + 0, + -s, + 0, + c, + 0, + 0, + 0, + 0, + 1 + ); + return this; + } + makeRotationZ(theta) { + const c = Math.cos(theta), s = Math.sin(theta); + this.set( + c, + -s, + 0, + 0, + s, + c, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ); + return this; + } + makeRotationAxis(axis, angle) { + const c = Math.cos(angle); + const s = Math.sin(angle); + const t2 = 1 - c; + const x = axis.x, y = axis.y, z = axis.z; + const tx = t2 * x, ty = t2 * y; + 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, + t2 * z * z + c, + 0, + 0, + 0, + 0, + 1 + ); + return this; + } + makeScale(x, y, z) { + this.set( + x, + 0, + 0, + 0, + 0, + y, + 0, + 0, + 0, + 0, + z, + 0, + 0, + 0, + 0, + 1 + ); + return this; + } + makeShear(xy, xz, yx, yz, zx, zy) { + this.set( + 1, + yx, + zx, + 0, + xy, + 1, + zy, + 0, + xz, + yz, + 1, + 0, + 0, + 0, + 0, + 1 + ); + return this; + } + compose(position, quaternion, scale) { + const te2 = this.elements; + const x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w; + const x2 = x + x, y2 = y + y, z2 = z + z; + const xx = x * x2, xy = x * y2, xz = x * z2; + const yy = y * y2, yz = y * z2, zz = z * z2; + const wx = w * x2, wy = w * y2, wz = w * z2; + const sx = scale.x, sy = scale.y, sz = scale.z; + te2[0] = (1 - (yy + zz)) * sx; + te2[1] = (xy + wz) * sx; + te2[2] = (xz - wy) * sx; + te2[3] = 0; + te2[4] = (xy - wz) * sy; + te2[5] = (1 - (xx + zz)) * sy; + te2[6] = (yz + wx) * sy; + te2[7] = 0; + te2[8] = (xz + wy) * sz; + te2[9] = (yz - wx) * sz; + te2[10] = (1 - (xx + yy)) * sz; + te2[11] = 0; + te2[12] = position.x; + te2[13] = position.y; + te2[14] = position.z; + te2[15] = 1; + return this; + } + decompose(position, quaternion, scale) { + const te2 = this.elements; + let sx = _v1$5.set(te2[0], te2[1], te2[2]).length(); + const sy = _v1$5.set(te2[4], te2[5], te2[6]).length(); + const sz = _v1$5.set(te2[8], te2[9], te2[10]).length(); + const det = this.determinant(); + if (det < 0) sx = -sx; + position.x = te2[12]; + position.y = te2[13]; + position.z = te2[14]; + _m1$4.copy(this); + const invSX = 1 / sx; + const invSY = 1 / sy; + const invSZ = 1 / sz; + _m1$4.elements[0] *= invSX; + _m1$4.elements[1] *= invSX; + _m1$4.elements[2] *= invSX; + _m1$4.elements[4] *= invSY; + _m1$4.elements[5] *= invSY; + _m1$4.elements[6] *= invSY; + _m1$4.elements[8] *= invSZ; + _m1$4.elements[9] *= invSZ; + _m1$4.elements[10] *= invSZ; + quaternion.setFromRotationMatrix(_m1$4); + scale.x = sx; + scale.y = sy; + scale.z = sz; + return this; + } + makePerspective(left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem) { + const te2 = this.elements; + const x = 2 * near / (right - left); + const y = 2 * near / (top - bottom); + const a = (right + left) / (right - left); + const b = (top + bottom) / (top - bottom); + let c, d; + if (coordinateSystem === WebGLCoordinateSystem) { + c = -(far + near) / (far - near); + d = -2 * far * near / (far - near); + } else if (coordinateSystem === WebGPUCoordinateSystem) { + c = -far / (far - near); + d = -far * near / (far - near); + } else { + throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: " + coordinateSystem); + } + te2[0] = x; + te2[4] = 0; + te2[8] = a; + te2[12] = 0; + te2[1] = 0; + te2[5] = y; + te2[9] = b; + te2[13] = 0; + te2[2] = 0; + te2[6] = 0; + te2[10] = c; + te2[14] = d; + te2[3] = 0; + te2[7] = 0; + te2[11] = -1; + te2[15] = 0; + return this; + } + makeOrthographic(left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem) { + const te2 = this.elements; + const w = 1 / (right - left); + const h = 1 / (top - bottom); + const p = 1 / (far - near); + const x = (right + left) * w; + const y = (top + bottom) * h; + let z, zInv; + if (coordinateSystem === WebGLCoordinateSystem) { + z = (far + near) * p; + zInv = -2 * p; + } else if (coordinateSystem === WebGPUCoordinateSystem) { + z = near * p; + zInv = -1 * p; + } else { + throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: " + coordinateSystem); + } + te2[0] = 2 * w; + te2[4] = 0; + te2[8] = 0; + te2[12] = -x; + te2[1] = 0; + te2[5] = 2 * h; + te2[9] = 0; + te2[13] = -y; + te2[2] = 0; + te2[6] = 0; + te2[10] = zInv; + te2[14] = -z; + te2[3] = 0; + te2[7] = 0; + te2[11] = 0; + te2[15] = 1; + return this; + } + equals(matrix) { + const te2 = this.elements; + const me = matrix.elements; + for (let i = 0; i < 16; i++) { + if (te2[i] !== me[i]) return false; + } + return true; + } + fromArray(array, offset = 0) { + for (let i = 0; i < 16; i++) { + this.elements[i] = array[i + offset]; + } + return this; + } + toArray(array = [], offset = 0) { + const te2 = this.elements; + array[offset] = te2[0]; + array[offset + 1] = te2[1]; + array[offset + 2] = te2[2]; + array[offset + 3] = te2[3]; + array[offset + 4] = te2[4]; + array[offset + 5] = te2[5]; + array[offset + 6] = te2[6]; + array[offset + 7] = te2[7]; + array[offset + 8] = te2[8]; + array[offset + 9] = te2[9]; + array[offset + 10] = te2[10]; + array[offset + 11] = te2[11]; + array[offset + 12] = te2[12]; + array[offset + 13] = te2[13]; + array[offset + 14] = te2[14]; + array[offset + 15] = te2[15]; + return array; + } +} +const _v1$5 = /* @__PURE__ */ new Vector3(); +const _m1$4 = /* @__PURE__ */ new Matrix4(); +const _zero = /* @__PURE__ */ new Vector3(0, 0, 0); +const _one = /* @__PURE__ */ new Vector3(1, 1, 1); +const _x = /* @__PURE__ */ new Vector3(); +const _y = /* @__PURE__ */ new Vector3(); +const _z = /* @__PURE__ */ new Vector3(); +const _matrix$2 = /* @__PURE__ */ new Matrix4(); +const _quaternion$3 = /* @__PURE__ */ new Quaternion(); +class Euler { + static { + __name(this, "Euler"); + } + constructor(x = 0, y = 0, z = 0, order = Euler.DEFAULT_ORDER) { + this.isEuler = true; + this._x = x; + this._y = y; + this._z = z; + this._order = order; + } + get x() { + return this._x; + } + set x(value) { + this._x = value; + this._onChangeCallback(); + } + get y() { + return this._y; + } + set y(value) { + this._y = value; + this._onChangeCallback(); + } + get z() { + return this._z; + } + set z(value) { + this._z = value; + this._onChangeCallback(); + } + get order() { + return this._order; + } + set order(value) { + this._order = value; + this._onChangeCallback(); + } + set(x, y, z, order = this._order) { + this._x = x; + this._y = y; + this._z = z; + this._order = order; + this._onChangeCallback(); + return this; + } + clone() { + return new this.constructor(this._x, this._y, this._z, this._order); + } + copy(euler) { + this._x = euler._x; + this._y = euler._y; + this._z = euler._z; + this._order = euler._order; + this._onChangeCallback(); + return this; + } + setFromRotationMatrix(m, order = this._order, update = true) { + const te2 = m.elements; + const m11 = te2[0], m12 = te2[4], m13 = te2[8]; + const m21 = te2[1], m22 = te2[5], m23 = te2[9]; + const m31 = te2[2], m32 = te2[6], m33 = te2[10]; + switch (order) { + case "XYZ": + this._y = Math.asin(clamp(m13, -1, 1)); + if (Math.abs(m13) < 0.9999999) { + this._x = Math.atan2(-m23, m33); + this._z = Math.atan2(-m12, m11); + } else { + this._x = Math.atan2(m32, m22); + this._z = 0; + } + break; + case "YXZ": + this._x = Math.asin(-clamp(m23, -1, 1)); + if (Math.abs(m23) < 0.9999999) { + this._y = Math.atan2(m13, m33); + this._z = Math.atan2(m21, m22); + } else { + this._y = Math.atan2(-m31, m11); + this._z = 0; + } + break; + case "ZXY": + this._x = Math.asin(clamp(m32, -1, 1)); + if (Math.abs(m32) < 0.9999999) { + this._y = Math.atan2(-m31, m33); + this._z = Math.atan2(-m12, m22); + } else { + this._y = 0; + this._z = Math.atan2(m21, m11); + } + break; + case "ZYX": + this._y = Math.asin(-clamp(m31, -1, 1)); + if (Math.abs(m31) < 0.9999999) { + this._x = Math.atan2(m32, m33); + this._z = Math.atan2(m21, m11); + } else { + this._x = 0; + this._z = Math.atan2(-m12, m22); + } + break; + case "YZX": + this._z = Math.asin(clamp(m21, -1, 1)); + if (Math.abs(m21) < 0.9999999) { + this._x = Math.atan2(-m23, m22); + this._y = Math.atan2(-m31, m11); + } else { + this._x = 0; + this._y = Math.atan2(m13, m33); + } + break; + case "XZY": + this._z = Math.asin(-clamp(m12, -1, 1)); + if (Math.abs(m12) < 0.9999999) { + this._x = Math.atan2(m32, m22); + this._y = Math.atan2(m13, m11); + } else { + this._x = Math.atan2(-m23, m33); + this._y = 0; + } + break; + default: + console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: " + order); + } + this._order = order; + if (update === true) this._onChangeCallback(); + return this; + } + setFromQuaternion(q, order, update) { + _matrix$2.makeRotationFromQuaternion(q); + return this.setFromRotationMatrix(_matrix$2, order, update); + } + setFromVector3(v, order = this._order) { + return this.set(v.x, v.y, v.z, order); + } + reorder(newOrder) { + _quaternion$3.setFromEuler(this); + return this.setFromQuaternion(_quaternion$3, newOrder); + } + equals(euler) { + return euler._x === this._x && euler._y === this._y && euler._z === this._z && euler._order === this._order; + } + fromArray(array) { + this._x = array[0]; + this._y = array[1]; + this._z = array[2]; + if (array[3] !== void 0) this._order = array[3]; + this._onChangeCallback(); + return this; + } + toArray(array = [], offset = 0) { + array[offset] = this._x; + array[offset + 1] = this._y; + array[offset + 2] = this._z; + array[offset + 3] = this._order; + return array; + } + _onChange(callback) { + this._onChangeCallback = callback; + return this; + } + _onChangeCallback() { + } + *[Symbol.iterator]() { + yield this._x; + yield this._y; + yield this._z; + yield this._order; + } +} +Euler.DEFAULT_ORDER = "XYZ"; +class Layers { + static { + __name(this, "Layers"); + } + constructor() { + this.mask = 1 | 0; + } + set(channel) { + this.mask = (1 << channel | 0) >>> 0; + } + enable(channel) { + this.mask |= 1 << channel | 0; + } + enableAll() { + this.mask = 4294967295 | 0; + } + toggle(channel) { + this.mask ^= 1 << channel | 0; + } + disable(channel) { + this.mask &= ~(1 << channel | 0); + } + disableAll() { + this.mask = 0; + } + test(layers) { + return (this.mask & layers.mask) !== 0; + } + isEnabled(channel) { + return (this.mask & (1 << channel | 0)) !== 0; + } +} +let _object3DId = 0; +const _v1$4 = /* @__PURE__ */ new Vector3(); +const _q1 = /* @__PURE__ */ new Quaternion(); +const _m1$3 = /* @__PURE__ */ new Matrix4(); +const _target = /* @__PURE__ */ new Vector3(); +const _position$3 = /* @__PURE__ */ new Vector3(); +const _scale$2 = /* @__PURE__ */ new Vector3(); +const _quaternion$2 = /* @__PURE__ */ new Quaternion(); +const _xAxis = /* @__PURE__ */ new Vector3(1, 0, 0); +const _yAxis = /* @__PURE__ */ new Vector3(0, 1, 0); +const _zAxis = /* @__PURE__ */ new Vector3(0, 0, 1); +const _addedEvent = { type: "added" }; +const _removedEvent = { type: "removed" }; +const _childaddedEvent = { type: "childadded", child: null }; +const _childremovedEvent = { type: "childremoved", child: null }; +class Object3D extends EventDispatcher { + static { + __name(this, "Object3D"); + } + constructor() { + super(); + this.isObject3D = true; + Object.defineProperty(this, "id", { value: _object3DId++ }); + this.uuid = generateUUID(); + this.name = ""; + this.type = "Object3D"; + this.parent = null; + this.children = []; + this.up = Object3D.DEFAULT_UP.clone(); + const position = new Vector3(); + const rotation = new Euler(); + const quaternion = new Quaternion(); + const scale = new Vector3(1, 1, 1); + function onRotationChange() { + quaternion.setFromEuler(rotation, false); + } + __name(onRotationChange, "onRotationChange"); + function onQuaternionChange() { + rotation.setFromQuaternion(quaternion, void 0, false); + } + __name(onQuaternionChange, "onQuaternionChange"); + rotation._onChange(onRotationChange); + quaternion._onChange(onQuaternionChange); + Object.defineProperties(this, { + position: { + configurable: true, + enumerable: true, + value: position + }, + rotation: { + configurable: true, + enumerable: true, + value: rotation + }, + quaternion: { + configurable: true, + enumerable: true, + value: quaternion + }, + scale: { + configurable: true, + enumerable: true, + value: scale + }, + modelViewMatrix: { + value: new Matrix4() + }, + normalMatrix: { + value: new Matrix3() + } + }); + this.matrix = new Matrix4(); + this.matrixWorld = new Matrix4(); + this.matrixAutoUpdate = Object3D.DEFAULT_MATRIX_AUTO_UPDATE; + this.matrixWorldAutoUpdate = Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE; + this.matrixWorldNeedsUpdate = false; + this.layers = new Layers(); + this.visible = true; + this.castShadow = false; + this.receiveShadow = false; + this.frustumCulled = true; + this.renderOrder = 0; + this.animations = []; + this.userData = {}; + } + onBeforeShadow() { + } + onAfterShadow() { + } + onBeforeRender() { + } + onAfterRender() { + } + applyMatrix4(matrix) { + if (this.matrixAutoUpdate) this.updateMatrix(); + this.matrix.premultiply(matrix); + this.matrix.decompose(this.position, this.quaternion, this.scale); + } + applyQuaternion(q) { + this.quaternion.premultiply(q); + return this; + } + setRotationFromAxisAngle(axis, angle) { + this.quaternion.setFromAxisAngle(axis, angle); + } + setRotationFromEuler(euler) { + this.quaternion.setFromEuler(euler, true); + } + setRotationFromMatrix(m) { + this.quaternion.setFromRotationMatrix(m); + } + setRotationFromQuaternion(q) { + this.quaternion.copy(q); + } + rotateOnAxis(axis, angle) { + _q1.setFromAxisAngle(axis, angle); + this.quaternion.multiply(_q1); + return this; + } + rotateOnWorldAxis(axis, angle) { + _q1.setFromAxisAngle(axis, angle); + this.quaternion.premultiply(_q1); + return this; + } + rotateX(angle) { + return this.rotateOnAxis(_xAxis, angle); + } + rotateY(angle) { + return this.rotateOnAxis(_yAxis, angle); + } + rotateZ(angle) { + return this.rotateOnAxis(_zAxis, angle); + } + translateOnAxis(axis, distance) { + _v1$4.copy(axis).applyQuaternion(this.quaternion); + this.position.add(_v1$4.multiplyScalar(distance)); + return this; + } + translateX(distance) { + return this.translateOnAxis(_xAxis, distance); + } + translateY(distance) { + return this.translateOnAxis(_yAxis, distance); + } + translateZ(distance) { + return this.translateOnAxis(_zAxis, distance); + } + localToWorld(vector) { + this.updateWorldMatrix(true, false); + return vector.applyMatrix4(this.matrixWorld); + } + worldToLocal(vector) { + this.updateWorldMatrix(true, false); + return vector.applyMatrix4(_m1$3.copy(this.matrixWorld).invert()); + } + lookAt(x, y, z) { + if (x.isVector3) { + _target.copy(x); + } else { + _target.set(x, y, z); + } + const parent = this.parent; + this.updateWorldMatrix(true, false); + _position$3.setFromMatrixPosition(this.matrixWorld); + if (this.isCamera || this.isLight) { + _m1$3.lookAt(_position$3, _target, this.up); + } else { + _m1$3.lookAt(_target, _position$3, this.up); + } + this.quaternion.setFromRotationMatrix(_m1$3); + if (parent) { + _m1$3.extractRotation(parent.matrixWorld); + _q1.setFromRotationMatrix(_m1$3); + this.quaternion.premultiply(_q1.invert()); + } + } + add(object) { + if (arguments.length > 1) { + for (let i = 0; i < arguments.length; i++) { + this.add(arguments[i]); + } + return this; + } + if (object === this) { + console.error("THREE.Object3D.add: object can't be added as a child of itself.", object); + return this; + } + if (object && object.isObject3D) { + object.removeFromParent(); + object.parent = this; + this.children.push(object); + object.dispatchEvent(_addedEvent); + _childaddedEvent.child = object; + this.dispatchEvent(_childaddedEvent); + _childaddedEvent.child = null; + } else { + console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.", object); + } + return this; + } + remove(object) { + if (arguments.length > 1) { + for (let i = 0; i < arguments.length; i++) { + this.remove(arguments[i]); + } + return this; + } + const index = this.children.indexOf(object); + if (index !== -1) { + object.parent = null; + this.children.splice(index, 1); + object.dispatchEvent(_removedEvent); + _childremovedEvent.child = object; + this.dispatchEvent(_childremovedEvent); + _childremovedEvent.child = null; + } + return this; + } + removeFromParent() { + const parent = this.parent; + if (parent !== null) { + parent.remove(this); + } + return this; + } + clear() { + return this.remove(...this.children); + } + attach(object) { + this.updateWorldMatrix(true, false); + _m1$3.copy(this.matrixWorld).invert(); + if (object.parent !== null) { + object.parent.updateWorldMatrix(true, false); + _m1$3.multiply(object.parent.matrixWorld); + } + object.applyMatrix4(_m1$3); + object.removeFromParent(); + object.parent = this; + this.children.push(object); + object.updateWorldMatrix(false, true); + object.dispatchEvent(_addedEvent); + _childaddedEvent.child = object; + this.dispatchEvent(_childaddedEvent); + _childaddedEvent.child = null; + return this; + } + getObjectById(id2) { + return this.getObjectByProperty("id", id2); + } + getObjectByName(name) { + return this.getObjectByProperty("name", name); + } + getObjectByProperty(name, value) { + if (this[name] === value) return this; + for (let i = 0, l = this.children.length; i < l; i++) { + const child = this.children[i]; + const object = child.getObjectByProperty(name, value); + if (object !== void 0) { + return object; + } + } + return void 0; + } + getObjectsByProperty(name, value, result = []) { + if (this[name] === value) result.push(this); + const children = this.children; + for (let i = 0, l = children.length; i < l; i++) { + children[i].getObjectsByProperty(name, value, result); + } + return result; + } + getWorldPosition(target) { + this.updateWorldMatrix(true, false); + return target.setFromMatrixPosition(this.matrixWorld); + } + getWorldQuaternion(target) { + this.updateWorldMatrix(true, false); + this.matrixWorld.decompose(_position$3, target, _scale$2); + return target; + } + getWorldScale(target) { + this.updateWorldMatrix(true, false); + this.matrixWorld.decompose(_position$3, _quaternion$2, target); + return target; + } + getWorldDirection(target) { + this.updateWorldMatrix(true, false); + const e = this.matrixWorld.elements; + return target.set(e[8], e[9], e[10]).normalize(); + } + raycast() { + } + traverse(callback) { + callback(this); + const children = this.children; + for (let i = 0, l = children.length; i < l; i++) { + children[i].traverse(callback); + } + } + traverseVisible(callback) { + if (this.visible === false) return; + callback(this); + const children = this.children; + for (let i = 0, l = children.length; i < l; i++) { + children[i].traverseVisible(callback); + } + } + traverseAncestors(callback) { + const parent = this.parent; + if (parent !== null) { + callback(parent); + parent.traverseAncestors(callback); + } + } + updateMatrix() { + this.matrix.compose(this.position, this.quaternion, this.scale); + this.matrixWorldNeedsUpdate = true; + } + updateMatrixWorld(force) { + if (this.matrixAutoUpdate) this.updateMatrix(); + if (this.matrixWorldNeedsUpdate || force) { + if (this.matrixWorldAutoUpdate === true) { + if (this.parent === null) { + this.matrixWorld.copy(this.matrix); + } else { + this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix); + } + } + this.matrixWorldNeedsUpdate = false; + force = true; + } + const children = this.children; + for (let i = 0, l = children.length; i < l; i++) { + const child = children[i]; + child.updateMatrixWorld(force); + } + } + updateWorldMatrix(updateParents, updateChildren) { + const parent = this.parent; + if (updateParents === true && parent !== null) { + parent.updateWorldMatrix(true, false); + } + if (this.matrixAutoUpdate) this.updateMatrix(); + if (this.matrixWorldAutoUpdate === true) { + if (this.parent === null) { + this.matrixWorld.copy(this.matrix); + } else { + this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix); + } + } + if (updateChildren === true) { + const children = this.children; + for (let i = 0, l = children.length; i < l; i++) { + const child = children[i]; + child.updateWorldMatrix(false, true); + } + } + } + toJSON(meta) { + const isRootObject = meta === void 0 || typeof meta === "string"; + const output = {}; + if (isRootObject) { + meta = { + geometries: {}, + materials: {}, + textures: {}, + images: {}, + shapes: {}, + skeletons: {}, + animations: {}, + nodes: {} + }; + output.metadata = { + version: 4.6, + type: "Object", + generator: "Object3D.toJSON" + }; + } + const object = {}; + object.uuid = this.uuid; + object.type = this.type; + if (this.name !== "") object.name = this.name; + if (this.castShadow === true) object.castShadow = true; + if (this.receiveShadow === true) object.receiveShadow = true; + if (this.visible === false) object.visible = false; + if (this.frustumCulled === false) object.frustumCulled = false; + if (this.renderOrder !== 0) object.renderOrder = this.renderOrder; + if (Object.keys(this.userData).length > 0) object.userData = this.userData; + object.layers = this.layers.mask; + object.matrix = this.matrix.toArray(); + object.up = this.up.toArray(); + if (this.matrixAutoUpdate === false) object.matrixAutoUpdate = false; + if (this.isInstancedMesh) { + object.type = "InstancedMesh"; + object.count = this.count; + object.instanceMatrix = this.instanceMatrix.toJSON(); + if (this.instanceColor !== null) object.instanceColor = this.instanceColor.toJSON(); + } + if (this.isBatchedMesh) { + object.type = "BatchedMesh"; + object.perObjectFrustumCulled = this.perObjectFrustumCulled; + object.sortObjects = this.sortObjects; + object.drawRanges = this._drawRanges; + object.reservedRanges = this._reservedRanges; + object.visibility = this._visibility; + object.active = this._active; + object.bounds = this._bounds.map((bound) => ({ + boxInitialized: bound.boxInitialized, + boxMin: bound.box.min.toArray(), + boxMax: bound.box.max.toArray(), + sphereInitialized: bound.sphereInitialized, + sphereRadius: bound.sphere.radius, + sphereCenter: bound.sphere.center.toArray() + })); + object.maxInstanceCount = this._maxInstanceCount; + object.maxVertexCount = this._maxVertexCount; + object.maxIndexCount = this._maxIndexCount; + object.geometryInitialized = this._geometryInitialized; + object.geometryCount = this._geometryCount; + object.matricesTexture = this._matricesTexture.toJSON(meta); + if (this._colorsTexture !== null) object.colorsTexture = this._colorsTexture.toJSON(meta); + if (this.boundingSphere !== null) { + object.boundingSphere = { + center: object.boundingSphere.center.toArray(), + radius: object.boundingSphere.radius + }; + } + if (this.boundingBox !== null) { + object.boundingBox = { + min: object.boundingBox.min.toArray(), + max: object.boundingBox.max.toArray() + }; + } + } + function serialize(library, element) { + if (library[element.uuid] === void 0) { + library[element.uuid] = element.toJSON(meta); + } + return element.uuid; + } + __name(serialize, "serialize"); + if (this.isScene) { + if (this.background) { + if (this.background.isColor) { + object.background = this.background.toJSON(); + } else if (this.background.isTexture) { + object.background = this.background.toJSON(meta).uuid; + } + } + if (this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true) { + object.environment = this.environment.toJSON(meta).uuid; + } + } else if (this.isMesh || this.isLine || this.isPoints) { + object.geometry = serialize(meta.geometries, this.geometry); + const parameters = this.geometry.parameters; + if (parameters !== void 0 && parameters.shapes !== void 0) { + const shapes = parameters.shapes; + if (Array.isArray(shapes)) { + for (let i = 0, l = shapes.length; i < l; i++) { + const shape = shapes[i]; + serialize(meta.shapes, shape); + } + } else { + serialize(meta.shapes, shapes); + } + } + } + if (this.isSkinnedMesh) { + object.bindMode = this.bindMode; + object.bindMatrix = this.bindMatrix.toArray(); + if (this.skeleton !== void 0) { + serialize(meta.skeletons, this.skeleton); + object.skeleton = this.skeleton.uuid; + } + } + if (this.material !== void 0) { + if (Array.isArray(this.material)) { + const uuids = []; + for (let i = 0, l = this.material.length; i < l; i++) { + uuids.push(serialize(meta.materials, this.material[i])); + } + object.material = uuids; + } else { + object.material = serialize(meta.materials, this.material); + } + } + if (this.children.length > 0) { + object.children = []; + for (let i = 0; i < this.children.length; i++) { + object.children.push(this.children[i].toJSON(meta).object); + } + } + if (this.animations.length > 0) { + object.animations = []; + for (let i = 0; i < this.animations.length; i++) { + const animation = this.animations[i]; + object.animations.push(serialize(meta.animations, animation)); + } + } + if (isRootObject) { + const geometries = extractFromCache(meta.geometries); + const materials = extractFromCache(meta.materials); + const textures = extractFromCache(meta.textures); + const images = extractFromCache(meta.images); + const shapes = extractFromCache(meta.shapes); + const skeletons = extractFromCache(meta.skeletons); + const animations = extractFromCache(meta.animations); + const nodes = extractFromCache(meta.nodes); + if (geometries.length > 0) output.geometries = geometries; + if (materials.length > 0) output.materials = materials; + if (textures.length > 0) output.textures = textures; + if (images.length > 0) output.images = images; + if (shapes.length > 0) output.shapes = shapes; + if (skeletons.length > 0) output.skeletons = skeletons; + if (animations.length > 0) output.animations = animations; + if (nodes.length > 0) output.nodes = nodes; + } + output.object = object; + return output; + function extractFromCache(cache) { + const values = []; + for (const key in cache) { + const data = cache[key]; + delete data.metadata; + values.push(data); + } + return values; + } + __name(extractFromCache, "extractFromCache"); + } + clone(recursive) { + return new this.constructor().copy(this, recursive); + } + copy(source, recursive = true) { + this.name = source.name; + this.up.copy(source.up); + this.position.copy(source.position); + this.rotation.order = source.rotation.order; + this.quaternion.copy(source.quaternion); + this.scale.copy(source.scale); + this.matrix.copy(source.matrix); + this.matrixWorld.copy(source.matrixWorld); + this.matrixAutoUpdate = source.matrixAutoUpdate; + this.matrixWorldAutoUpdate = source.matrixWorldAutoUpdate; + this.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate; + this.layers.mask = source.layers.mask; + this.visible = source.visible; + this.castShadow = source.castShadow; + this.receiveShadow = source.receiveShadow; + this.frustumCulled = source.frustumCulled; + this.renderOrder = source.renderOrder; + this.animations = source.animations.slice(); + this.userData = JSON.parse(JSON.stringify(source.userData)); + if (recursive === true) { + for (let i = 0; i < source.children.length; i++) { + const child = source.children[i]; + this.add(child.clone()); + } + } + return this; + } +} +Object3D.DEFAULT_UP = /* @__PURE__ */ new Vector3(0, 1, 0); +Object3D.DEFAULT_MATRIX_AUTO_UPDATE = true; +Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true; +const _v0$2 = /* @__PURE__ */ new Vector3(); +const _v1$3 = /* @__PURE__ */ new Vector3(); +const _v2$2 = /* @__PURE__ */ new Vector3(); +const _v3$2 = /* @__PURE__ */ new Vector3(); +const _vab = /* @__PURE__ */ new Vector3(); +const _vac = /* @__PURE__ */ new Vector3(); +const _vbc = /* @__PURE__ */ new Vector3(); +const _vap = /* @__PURE__ */ new Vector3(); +const _vbp = /* @__PURE__ */ new Vector3(); +const _vcp = /* @__PURE__ */ new Vector3(); +const _v40 = /* @__PURE__ */ new Vector4(); +const _v41 = /* @__PURE__ */ new Vector4(); +const _v42 = /* @__PURE__ */ new Vector4(); +class Triangle { + static { + __name(this, "Triangle"); + } + constructor(a = new Vector3(), b = new Vector3(), c = new Vector3()) { + this.a = a; + this.b = b; + this.c = c; + } + static getNormal(a, b, c, target) { + target.subVectors(c, b); + _v0$2.subVectors(a, b); + target.cross(_v0$2); + const targetLengthSq = target.lengthSq(); + if (targetLengthSq > 0) { + return target.multiplyScalar(1 / Math.sqrt(targetLengthSq)); + } + return target.set(0, 0, 0); + } + // static/instance method to calculate barycentric coordinates + // based on: http://www.blackpawn.com/texts/pointinpoly/default.html + static getBarycoord(point, a, b, c, target) { + _v0$2.subVectors(c, a); + _v1$3.subVectors(b, a); + _v2$2.subVectors(point, a); + const dot00 = _v0$2.dot(_v0$2); + const dot01 = _v0$2.dot(_v1$3); + const dot02 = _v0$2.dot(_v2$2); + const dot11 = _v1$3.dot(_v1$3); + const dot12 = _v1$3.dot(_v2$2); + const denom = dot00 * dot11 - dot01 * dot01; + if (denom === 0) { + target.set(0, 0, 0); + return null; + } + const invDenom = 1 / denom; + const u = (dot11 * dot02 - dot01 * dot12) * invDenom; + const v = (dot00 * dot12 - dot01 * dot02) * invDenom; + return target.set(1 - u - v, v, u); + } + static containsPoint(point, a, b, c) { + if (this.getBarycoord(point, a, b, c, _v3$2) === null) { + return false; + } + return _v3$2.x >= 0 && _v3$2.y >= 0 && _v3$2.x + _v3$2.y <= 1; + } + static getInterpolation(point, p1, p2, p3, v1, v2, v3, target) { + if (this.getBarycoord(point, p1, p2, p3, _v3$2) === null) { + target.x = 0; + target.y = 0; + if ("z" in target) target.z = 0; + if ("w" in target) target.w = 0; + return null; + } + target.setScalar(0); + target.addScaledVector(v1, _v3$2.x); + target.addScaledVector(v2, _v3$2.y); + target.addScaledVector(v3, _v3$2.z); + return target; + } + static getInterpolatedAttribute(attr, i1, i2, i3, barycoord, target) { + _v40.setScalar(0); + _v41.setScalar(0); + _v42.setScalar(0); + _v40.fromBufferAttribute(attr, i1); + _v41.fromBufferAttribute(attr, i2); + _v42.fromBufferAttribute(attr, i3); + target.setScalar(0); + target.addScaledVector(_v40, barycoord.x); + target.addScaledVector(_v41, barycoord.y); + target.addScaledVector(_v42, barycoord.z); + return target; + } + static isFrontFacing(a, b, c, direction) { + _v0$2.subVectors(c, b); + _v1$3.subVectors(a, b); + return _v0$2.cross(_v1$3).dot(direction) < 0 ? true : false; + } + set(a, b, c) { + this.a.copy(a); + this.b.copy(b); + this.c.copy(c); + return this; + } + setFromPointsAndIndices(points, i0, i1, i2) { + this.a.copy(points[i0]); + this.b.copy(points[i1]); + this.c.copy(points[i2]); + return this; + } + setFromAttributeAndIndices(attribute, i0, i1, i2) { + this.a.fromBufferAttribute(attribute, i0); + this.b.fromBufferAttribute(attribute, i1); + this.c.fromBufferAttribute(attribute, i2); + return this; + } + clone() { + return new this.constructor().copy(this); + } + copy(triangle) { + this.a.copy(triangle.a); + this.b.copy(triangle.b); + this.c.copy(triangle.c); + return this; + } + getArea() { + _v0$2.subVectors(this.c, this.b); + _v1$3.subVectors(this.a, this.b); + return _v0$2.cross(_v1$3).length() * 0.5; + } + getMidpoint(target) { + return target.addVectors(this.a, this.b).add(this.c).multiplyScalar(1 / 3); + } + getNormal(target) { + return Triangle.getNormal(this.a, this.b, this.c, target); + } + getPlane(target) { + return target.setFromCoplanarPoints(this.a, this.b, this.c); + } + getBarycoord(point, target) { + return Triangle.getBarycoord(point, this.a, this.b, this.c, target); + } + getInterpolation(point, v1, v2, v3, target) { + return Triangle.getInterpolation(point, this.a, this.b, this.c, v1, v2, v3, target); + } + containsPoint(point) { + return Triangle.containsPoint(point, this.a, this.b, this.c); + } + isFrontFacing(direction) { + return Triangle.isFrontFacing(this.a, this.b, this.c, direction); + } + intersectsBox(box) { + return box.intersectsTriangle(this); + } + closestPointToPoint(p, target) { + const a = this.a, b = this.b, c = this.c; + let v, w; + _vab.subVectors(b, a); + _vac.subVectors(c, a); + _vap.subVectors(p, a); + const d1 = _vab.dot(_vap); + const d2 = _vac.dot(_vap); + if (d1 <= 0 && d2 <= 0) { + return target.copy(a); + } + _vbp.subVectors(p, b); + const d3 = _vab.dot(_vbp); + const d4 = _vac.dot(_vbp); + if (d3 >= 0 && d4 <= d3) { + return target.copy(b); + } + const vc = d1 * d4 - d3 * d2; + if (vc <= 0 && d1 >= 0 && d3 <= 0) { + v = d1 / (d1 - d3); + return target.copy(a).addScaledVector(_vab, v); + } + _vcp.subVectors(p, c); + const d5 = _vab.dot(_vcp); + const d6 = _vac.dot(_vcp); + if (d6 >= 0 && d5 <= d6) { + return target.copy(c); + } + const vb = d5 * d2 - d1 * d6; + if (vb <= 0 && d2 >= 0 && d6 <= 0) { + w = d2 / (d2 - d6); + return target.copy(a).addScaledVector(_vac, w); + } + const va = d3 * d6 - d5 * d4; + if (va <= 0 && d4 - d3 >= 0 && d5 - d6 >= 0) { + _vbc.subVectors(c, b); + w = (d4 - d3) / (d4 - d3 + (d5 - d6)); + return target.copy(b).addScaledVector(_vbc, w); + } + const denom = 1 / (va + vb + vc); + v = vb * denom; + w = vc * denom; + return target.copy(a).addScaledVector(_vab, v).addScaledVector(_vac, w); + } + equals(triangle) { + return triangle.a.equals(this.a) && triangle.b.equals(this.b) && triangle.c.equals(this.c); + } +} +const _colorKeywords = { + "aliceblue": 15792383, + "antiquewhite": 16444375, + "aqua": 65535, + "aquamarine": 8388564, + "azure": 15794175, + "beige": 16119260, + "bisque": 16770244, + "black": 0, + "blanchedalmond": 16772045, + "blue": 255, + "blueviolet": 9055202, + "brown": 10824234, + "burlywood": 14596231, + "cadetblue": 6266528, + "chartreuse": 8388352, + "chocolate": 13789470, + "coral": 16744272, + "cornflowerblue": 6591981, + "cornsilk": 16775388, + "crimson": 14423100, + "cyan": 65535, + "darkblue": 139, + "darkcyan": 35723, + "darkgoldenrod": 12092939, + "darkgray": 11119017, + "darkgreen": 25600, + "darkgrey": 11119017, + "darkkhaki": 12433259, + "darkmagenta": 9109643, + "darkolivegreen": 5597999, + "darkorange": 16747520, + "darkorchid": 10040012, + "darkred": 9109504, + "darksalmon": 15308410, + "darkseagreen": 9419919, + "darkslateblue": 4734347, + "darkslategray": 3100495, + "darkslategrey": 3100495, + "darkturquoise": 52945, + "darkviolet": 9699539, + "deeppink": 16716947, + "deepskyblue": 49151, + "dimgray": 6908265, + "dimgrey": 6908265, + "dodgerblue": 2003199, + "firebrick": 11674146, + "floralwhite": 16775920, + "forestgreen": 2263842, + "fuchsia": 16711935, + "gainsboro": 14474460, + "ghostwhite": 16316671, + "gold": 16766720, + "goldenrod": 14329120, + "gray": 8421504, + "green": 32768, + "greenyellow": 11403055, + "grey": 8421504, + "honeydew": 15794160, + "hotpink": 16738740, + "indianred": 13458524, + "indigo": 4915330, + "ivory": 16777200, + "khaki": 15787660, + "lavender": 15132410, + "lavenderblush": 16773365, + "lawngreen": 8190976, + "lemonchiffon": 16775885, + "lightblue": 11393254, + "lightcoral": 15761536, + "lightcyan": 14745599, + "lightgoldenrodyellow": 16448210, + "lightgray": 13882323, + "lightgreen": 9498256, + "lightgrey": 13882323, + "lightpink": 16758465, + "lightsalmon": 16752762, + "lightseagreen": 2142890, + "lightskyblue": 8900346, + "lightslategray": 7833753, + "lightslategrey": 7833753, + "lightsteelblue": 11584734, + "lightyellow": 16777184, + "lime": 65280, + "limegreen": 3329330, + "linen": 16445670, + "magenta": 16711935, + "maroon": 8388608, + "mediumaquamarine": 6737322, + "mediumblue": 205, + "mediumorchid": 12211667, + "mediumpurple": 9662683, + "mediumseagreen": 3978097, + "mediumslateblue": 8087790, + "mediumspringgreen": 64154, + "mediumturquoise": 4772300, + "mediumvioletred": 13047173, + "midnightblue": 1644912, + "mintcream": 16121850, + "mistyrose": 16770273, + "moccasin": 16770229, + "navajowhite": 16768685, + "navy": 128, + "oldlace": 16643558, + "olive": 8421376, + "olivedrab": 7048739, + "orange": 16753920, + "orangered": 16729344, + "orchid": 14315734, + "palegoldenrod": 15657130, + "palegreen": 10025880, + "paleturquoise": 11529966, + "palevioletred": 14381203, + "papayawhip": 16773077, + "peachpuff": 16767673, + "peru": 13468991, + "pink": 16761035, + "plum": 14524637, + "powderblue": 11591910, + "purple": 8388736, + "rebeccapurple": 6697881, + "red": 16711680, + "rosybrown": 12357519, + "royalblue": 4286945, + "saddlebrown": 9127187, + "salmon": 16416882, + "sandybrown": 16032864, + "seagreen": 3050327, + "seashell": 16774638, + "sienna": 10506797, + "silver": 12632256, + "skyblue": 8900331, + "slateblue": 6970061, + "slategray": 7372944, + "slategrey": 7372944, + "snow": 16775930, + "springgreen": 65407, + "steelblue": 4620980, + "tan": 13808780, + "teal": 32896, + "thistle": 14204888, + "tomato": 16737095, + "turquoise": 4251856, + "violet": 15631086, + "wheat": 16113331, + "white": 16777215, + "whitesmoke": 16119285, + "yellow": 16776960, + "yellowgreen": 10145074 +}; +const _hslA = { h: 0, s: 0, l: 0 }; +const _hslB = { h: 0, s: 0, l: 0 }; +function hue2rgb(p, q, t2) { + if (t2 < 0) t2 += 1; + if (t2 > 1) t2 -= 1; + if (t2 < 1 / 6) return p + (q - p) * 6 * t2; + if (t2 < 1 / 2) return q; + if (t2 < 2 / 3) return p + (q - p) * 6 * (2 / 3 - t2); + return p; +} +__name(hue2rgb, "hue2rgb"); +class Color { + static { + __name(this, "Color"); + } + constructor(r, g, b) { + this.isColor = true; + this.r = 1; + this.g = 1; + this.b = 1; + return this.set(r, g, b); + } + set(r, g, b) { + if (g === void 0 && b === void 0) { + const value = r; + if (value && value.isColor) { + this.copy(value); + } else if (typeof value === "number") { + this.setHex(value); + } else if (typeof value === "string") { + this.setStyle(value); + } + } else { + this.setRGB(r, g, b); + } + return this; + } + setScalar(scalar) { + this.r = scalar; + this.g = scalar; + this.b = scalar; + return this; + } + setHex(hex, colorSpace = SRGBColorSpace) { + hex = Math.floor(hex); + this.r = (hex >> 16 & 255) / 255; + this.g = (hex >> 8 & 255) / 255; + this.b = (hex & 255) / 255; + ColorManagement.toWorkingColorSpace(this, colorSpace); + return this; + } + setRGB(r, g, b, colorSpace = ColorManagement.workingColorSpace) { + this.r = r; + this.g = g; + this.b = b; + ColorManagement.toWorkingColorSpace(this, colorSpace); + return this; + } + setHSL(h, s, l, colorSpace = ColorManagement.workingColorSpace) { + h = euclideanModulo(h, 1); + s = clamp(s, 0, 1); + l = clamp(l, 0, 1); + if (s === 0) { + this.r = this.g = this.b = l; + } else { + const p = l <= 0.5 ? l * (1 + s) : l + s - l * s; + const q = 2 * l - p; + this.r = hue2rgb(q, p, h + 1 / 3); + this.g = hue2rgb(q, p, h); + this.b = hue2rgb(q, p, h - 1 / 3); + } + ColorManagement.toWorkingColorSpace(this, colorSpace); + return this; + } + setStyle(style, colorSpace = SRGBColorSpace) { + function handleAlpha(string) { + if (string === void 0) return; + if (parseFloat(string) < 1) { + console.warn("THREE.Color: Alpha component of " + style + " will be ignored."); + } + } + __name(handleAlpha, "handleAlpha"); + let m; + if (m = /^(\w+)\(([^\)]*)\)/.exec(style)) { + let color; + const name = m[1]; + const components = m[2]; + switch (name) { + case "rgb": + case "rgba": + if (color = /^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(components)) { + handleAlpha(color[4]); + return this.setRGB( + Math.min(255, parseInt(color[1], 10)) / 255, + Math.min(255, parseInt(color[2], 10)) / 255, + Math.min(255, parseInt(color[3], 10)) / 255, + colorSpace + ); + } + if (color = /^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(components)) { + handleAlpha(color[4]); + return this.setRGB( + Math.min(100, parseInt(color[1], 10)) / 100, + Math.min(100, parseInt(color[2], 10)) / 100, + Math.min(100, parseInt(color[3], 10)) / 100, + colorSpace + ); + } + break; + case "hsl": + case "hsla": + if (color = /^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(components)) { + handleAlpha(color[4]); + return this.setHSL( + parseFloat(color[1]) / 360, + parseFloat(color[2]) / 100, + parseFloat(color[3]) / 100, + colorSpace + ); + } + break; + default: + console.warn("THREE.Color: Unknown color model " + style); + } + } else if (m = /^\#([A-Fa-f\d]+)$/.exec(style)) { + const hex = m[1]; + const size = hex.length; + if (size === 3) { + return this.setRGB( + parseInt(hex.charAt(0), 16) / 15, + parseInt(hex.charAt(1), 16) / 15, + parseInt(hex.charAt(2), 16) / 15, + colorSpace + ); + } else if (size === 6) { + return this.setHex(parseInt(hex, 16), colorSpace); + } else { + console.warn("THREE.Color: Invalid hex color " + style); + } + } else if (style && style.length > 0) { + return this.setColorName(style, colorSpace); + } + return this; + } + setColorName(style, colorSpace = SRGBColorSpace) { + const hex = _colorKeywords[style.toLowerCase()]; + if (hex !== void 0) { + this.setHex(hex, colorSpace); + } else { + console.warn("THREE.Color: Unknown color " + style); + } + return this; + } + clone() { + return new this.constructor(this.r, this.g, this.b); + } + copy(color) { + this.r = color.r; + this.g = color.g; + this.b = color.b; + return this; + } + copySRGBToLinear(color) { + this.r = SRGBToLinear(color.r); + this.g = SRGBToLinear(color.g); + this.b = SRGBToLinear(color.b); + return this; + } + copyLinearToSRGB(color) { + this.r = LinearToSRGB(color.r); + this.g = LinearToSRGB(color.g); + this.b = LinearToSRGB(color.b); + return this; + } + convertSRGBToLinear() { + this.copySRGBToLinear(this); + return this; + } + convertLinearToSRGB() { + this.copyLinearToSRGB(this); + return this; + } + getHex(colorSpace = SRGBColorSpace) { + ColorManagement.fromWorkingColorSpace(_color$1.copy(this), colorSpace); + return Math.round(clamp(_color$1.r * 255, 0, 255)) * 65536 + Math.round(clamp(_color$1.g * 255, 0, 255)) * 256 + Math.round(clamp(_color$1.b * 255, 0, 255)); + } + getHexString(colorSpace = SRGBColorSpace) { + return ("000000" + this.getHex(colorSpace).toString(16)).slice(-6); + } + getHSL(target, colorSpace = ColorManagement.workingColorSpace) { + ColorManagement.fromWorkingColorSpace(_color$1.copy(this), colorSpace); + const r = _color$1.r, g = _color$1.g, b = _color$1.b; + const max2 = Math.max(r, g, b); + const min = Math.min(r, g, b); + let hue, saturation; + const lightness = (min + max2) / 2; + if (min === max2) { + hue = 0; + saturation = 0; + } else { + const delta = max2 - min; + saturation = lightness <= 0.5 ? delta / (max2 + min) : delta / (2 - max2 - min); + switch (max2) { + case r: + hue = (g - b) / delta + (g < b ? 6 : 0); + break; + case g: + hue = (b - r) / delta + 2; + break; + case b: + hue = (r - g) / delta + 4; + break; + } + hue /= 6; + } + target.h = hue; + target.s = saturation; + target.l = lightness; + return target; + } + getRGB(target, colorSpace = ColorManagement.workingColorSpace) { + ColorManagement.fromWorkingColorSpace(_color$1.copy(this), colorSpace); + target.r = _color$1.r; + target.g = _color$1.g; + target.b = _color$1.b; + return target; + } + getStyle(colorSpace = SRGBColorSpace) { + ColorManagement.fromWorkingColorSpace(_color$1.copy(this), colorSpace); + const r = _color$1.r, g = _color$1.g, b = _color$1.b; + if (colorSpace !== SRGBColorSpace) { + return `color(${colorSpace} ${r.toFixed(3)} ${g.toFixed(3)} ${b.toFixed(3)})`; + } + return `rgb(${Math.round(r * 255)},${Math.round(g * 255)},${Math.round(b * 255)})`; + } + offsetHSL(h, s, l) { + this.getHSL(_hslA); + return this.setHSL(_hslA.h + h, _hslA.s + s, _hslA.l + l); + } + add(color) { + this.r += color.r; + this.g += color.g; + this.b += color.b; + return this; + } + addColors(color1, color2) { + this.r = color1.r + color2.r; + this.g = color1.g + color2.g; + this.b = color1.b + color2.b; + return this; + } + addScalar(s) { + this.r += s; + this.g += s; + this.b += s; + return this; + } + sub(color) { + this.r = Math.max(0, this.r - color.r); + this.g = Math.max(0, this.g - color.g); + this.b = Math.max(0, this.b - color.b); + return this; + } + multiply(color) { + this.r *= color.r; + this.g *= color.g; + this.b *= color.b; + return this; + } + multiplyScalar(s) { + this.r *= s; + this.g *= s; + this.b *= s; + return this; + } + lerp(color, alpha) { + this.r += (color.r - this.r) * alpha; + this.g += (color.g - this.g) * alpha; + this.b += (color.b - this.b) * alpha; + return this; + } + lerpColors(color1, color2, alpha) { + this.r = color1.r + (color2.r - color1.r) * alpha; + this.g = color1.g + (color2.g - color1.g) * alpha; + this.b = color1.b + (color2.b - color1.b) * alpha; + return this; + } + lerpHSL(color, alpha) { + this.getHSL(_hslA); + color.getHSL(_hslB); + const h = lerp(_hslA.h, _hslB.h, alpha); + const s = lerp(_hslA.s, _hslB.s, alpha); + const l = lerp(_hslA.l, _hslB.l, alpha); + this.setHSL(h, s, l); + return this; + } + setFromVector3(v) { + this.r = v.x; + this.g = v.y; + this.b = v.z; + return this; + } + applyMatrix3(m) { + const r = this.r, g = this.g, b = this.b; + const e = m.elements; + this.r = e[0] * r + e[3] * g + e[6] * b; + this.g = e[1] * r + e[4] * g + e[7] * b; + this.b = e[2] * r + e[5] * g + e[8] * b; + return this; + } + equals(c) { + return c.r === this.r && c.g === this.g && c.b === this.b; + } + fromArray(array, offset = 0) { + this.r = array[offset]; + this.g = array[offset + 1]; + this.b = array[offset + 2]; + return this; + } + toArray(array = [], offset = 0) { + array[offset] = this.r; + array[offset + 1] = this.g; + array[offset + 2] = this.b; + return array; + } + fromBufferAttribute(attribute, index) { + this.r = attribute.getX(index); + this.g = attribute.getY(index); + this.b = attribute.getZ(index); + return this; + } + toJSON() { + return this.getHex(); + } + *[Symbol.iterator]() { + yield this.r; + yield this.g; + yield this.b; + } +} +const _color$1 = /* @__PURE__ */ new Color(); +Color.NAMES = _colorKeywords; +let _materialId = 0; +class Material extends EventDispatcher { + static { + __name(this, "Material"); + } + static get type() { + return "Material"; + } + get type() { + return this.constructor.type; + } + set type(_value) { + } + constructor() { + super(); + this.isMaterial = true; + Object.defineProperty(this, "id", { value: _materialId++ }); + this.uuid = generateUUID(); + this.name = ""; + this.blending = NormalBlending; + this.side = FrontSide; + this.vertexColors = false; + this.opacity = 1; + this.transparent = false; + this.alphaHash = false; + this.blendSrc = SrcAlphaFactor; + this.blendDst = OneMinusSrcAlphaFactor; + this.blendEquation = AddEquation; + this.blendSrcAlpha = null; + this.blendDstAlpha = null; + this.blendEquationAlpha = null; + this.blendColor = new Color(0, 0, 0); + this.blendAlpha = 0; + this.depthFunc = LessEqualDepth; + this.depthTest = true; + this.depthWrite = true; + this.stencilWriteMask = 255; + this.stencilFunc = AlwaysStencilFunc; + this.stencilRef = 0; + this.stencilFuncMask = 255; + this.stencilFail = KeepStencilOp; + this.stencilZFail = KeepStencilOp; + this.stencilZPass = KeepStencilOp; + this.stencilWrite = false; + this.clippingPlanes = null; + this.clipIntersection = false; + this.clipShadows = false; + this.shadowSide = null; + this.colorWrite = true; + this.precision = null; + this.polygonOffset = false; + this.polygonOffsetFactor = 0; + this.polygonOffsetUnits = 0; + this.dithering = false; + this.alphaToCoverage = false; + this.premultipliedAlpha = false; + this.forceSinglePass = false; + this.visible = true; + this.toneMapped = true; + this.userData = {}; + this.version = 0; + this._alphaTest = 0; + } + get alphaTest() { + return this._alphaTest; + } + set alphaTest(value) { + if (this._alphaTest > 0 !== value > 0) { + this.version++; + } + this._alphaTest = value; + } + // onBeforeRender and onBeforeCompile only supported in WebGLRenderer + onBeforeRender() { + } + onBeforeCompile() { + } + customProgramCacheKey() { + return this.onBeforeCompile.toString(); + } + setValues(values) { + if (values === void 0) return; + for (const key in values) { + const newValue = values[key]; + if (newValue === void 0) { + console.warn(`THREE.Material: parameter '${key}' has value of undefined.`); + continue; + } + const currentValue = this[key]; + if (currentValue === void 0) { + console.warn(`THREE.Material: '${key}' is not a property of THREE.${this.type}.`); + continue; + } + if (currentValue && currentValue.isColor) { + currentValue.set(newValue); + } else if (currentValue && currentValue.isVector3 && (newValue && newValue.isVector3)) { + currentValue.copy(newValue); + } else { + this[key] = newValue; + } + } + } + toJSON(meta) { + const isRootObject = meta === void 0 || typeof meta === "string"; + if (isRootObject) { + meta = { + textures: {}, + images: {} + }; + } + const data = { + metadata: { + version: 4.6, + type: "Material", + generator: "Material.toJSON" + } + }; + data.uuid = this.uuid; + data.type = this.type; + if (this.name !== "") data.name = this.name; + if (this.color && this.color.isColor) data.color = this.color.getHex(); + if (this.roughness !== void 0) data.roughness = this.roughness; + if (this.metalness !== void 0) data.metalness = this.metalness; + if (this.sheen !== void 0) data.sheen = this.sheen; + if (this.sheenColor && this.sheenColor.isColor) data.sheenColor = this.sheenColor.getHex(); + if (this.sheenRoughness !== void 0) data.sheenRoughness = this.sheenRoughness; + if (this.emissive && this.emissive.isColor) data.emissive = this.emissive.getHex(); + if (this.emissiveIntensity !== void 0 && this.emissiveIntensity !== 1) data.emissiveIntensity = this.emissiveIntensity; + if (this.specular && this.specular.isColor) data.specular = this.specular.getHex(); + if (this.specularIntensity !== void 0) data.specularIntensity = this.specularIntensity; + if (this.specularColor && this.specularColor.isColor) data.specularColor = this.specularColor.getHex(); + if (this.shininess !== void 0) data.shininess = this.shininess; + if (this.clearcoat !== void 0) data.clearcoat = this.clearcoat; + if (this.clearcoatRoughness !== void 0) data.clearcoatRoughness = this.clearcoatRoughness; + if (this.clearcoatMap && this.clearcoatMap.isTexture) { + data.clearcoatMap = this.clearcoatMap.toJSON(meta).uuid; + } + if (this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture) { + data.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON(meta).uuid; + } + if (this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture) { + data.clearcoatNormalMap = this.clearcoatNormalMap.toJSON(meta).uuid; + data.clearcoatNormalScale = this.clearcoatNormalScale.toArray(); + } + if (this.dispersion !== void 0) data.dispersion = this.dispersion; + if (this.iridescence !== void 0) data.iridescence = this.iridescence; + if (this.iridescenceIOR !== void 0) data.iridescenceIOR = this.iridescenceIOR; + if (this.iridescenceThicknessRange !== void 0) data.iridescenceThicknessRange = this.iridescenceThicknessRange; + if (this.iridescenceMap && this.iridescenceMap.isTexture) { + data.iridescenceMap = this.iridescenceMap.toJSON(meta).uuid; + } + if (this.iridescenceThicknessMap && this.iridescenceThicknessMap.isTexture) { + data.iridescenceThicknessMap = this.iridescenceThicknessMap.toJSON(meta).uuid; + } + if (this.anisotropy !== void 0) data.anisotropy = this.anisotropy; + if (this.anisotropyRotation !== void 0) data.anisotropyRotation = this.anisotropyRotation; + if (this.anisotropyMap && this.anisotropyMap.isTexture) { + data.anisotropyMap = this.anisotropyMap.toJSON(meta).uuid; + } + if (this.map && this.map.isTexture) data.map = this.map.toJSON(meta).uuid; + if (this.matcap && this.matcap.isTexture) data.matcap = this.matcap.toJSON(meta).uuid; + if (this.alphaMap && this.alphaMap.isTexture) data.alphaMap = this.alphaMap.toJSON(meta).uuid; + if (this.lightMap && this.lightMap.isTexture) { + data.lightMap = this.lightMap.toJSON(meta).uuid; + data.lightMapIntensity = this.lightMapIntensity; + } + if (this.aoMap && this.aoMap.isTexture) { + data.aoMap = this.aoMap.toJSON(meta).uuid; + data.aoMapIntensity = this.aoMapIntensity; + } + if (this.bumpMap && this.bumpMap.isTexture) { + data.bumpMap = this.bumpMap.toJSON(meta).uuid; + data.bumpScale = this.bumpScale; + } + if (this.normalMap && this.normalMap.isTexture) { + data.normalMap = this.normalMap.toJSON(meta).uuid; + data.normalMapType = this.normalMapType; + data.normalScale = this.normalScale.toArray(); + } + if (this.displacementMap && this.displacementMap.isTexture) { + data.displacementMap = this.displacementMap.toJSON(meta).uuid; + data.displacementScale = this.displacementScale; + data.displacementBias = this.displacementBias; + } + if (this.roughnessMap && this.roughnessMap.isTexture) data.roughnessMap = this.roughnessMap.toJSON(meta).uuid; + if (this.metalnessMap && this.metalnessMap.isTexture) data.metalnessMap = this.metalnessMap.toJSON(meta).uuid; + if (this.emissiveMap && this.emissiveMap.isTexture) data.emissiveMap = this.emissiveMap.toJSON(meta).uuid; + if (this.specularMap && this.specularMap.isTexture) data.specularMap = this.specularMap.toJSON(meta).uuid; + if (this.specularIntensityMap && this.specularIntensityMap.isTexture) data.specularIntensityMap = this.specularIntensityMap.toJSON(meta).uuid; + if (this.specularColorMap && this.specularColorMap.isTexture) data.specularColorMap = this.specularColorMap.toJSON(meta).uuid; + if (this.envMap && this.envMap.isTexture) { + data.envMap = this.envMap.toJSON(meta).uuid; + if (this.combine !== void 0) data.combine = this.combine; + } + if (this.envMapRotation !== void 0) data.envMapRotation = this.envMapRotation.toArray(); + if (this.envMapIntensity !== void 0) data.envMapIntensity = this.envMapIntensity; + if (this.reflectivity !== void 0) data.reflectivity = this.reflectivity; + if (this.refractionRatio !== void 0) data.refractionRatio = this.refractionRatio; + if (this.gradientMap && this.gradientMap.isTexture) { + data.gradientMap = this.gradientMap.toJSON(meta).uuid; + } + if (this.transmission !== void 0) data.transmission = this.transmission; + if (this.transmissionMap && this.transmissionMap.isTexture) data.transmissionMap = this.transmissionMap.toJSON(meta).uuid; + if (this.thickness !== void 0) data.thickness = this.thickness; + if (this.thicknessMap && this.thicknessMap.isTexture) data.thicknessMap = this.thicknessMap.toJSON(meta).uuid; + if (this.attenuationDistance !== void 0 && this.attenuationDistance !== Infinity) data.attenuationDistance = this.attenuationDistance; + if (this.attenuationColor !== void 0) data.attenuationColor = this.attenuationColor.getHex(); + if (this.size !== void 0) data.size = this.size; + if (this.shadowSide !== null) data.shadowSide = this.shadowSide; + if (this.sizeAttenuation !== void 0) data.sizeAttenuation = this.sizeAttenuation; + if (this.blending !== NormalBlending) data.blending = this.blending; + if (this.side !== FrontSide) data.side = this.side; + if (this.vertexColors === true) data.vertexColors = true; + if (this.opacity < 1) data.opacity = this.opacity; + if (this.transparent === true) data.transparent = true; + if (this.blendSrc !== SrcAlphaFactor) data.blendSrc = this.blendSrc; + if (this.blendDst !== OneMinusSrcAlphaFactor) data.blendDst = this.blendDst; + if (this.blendEquation !== AddEquation) data.blendEquation = this.blendEquation; + if (this.blendSrcAlpha !== null) data.blendSrcAlpha = this.blendSrcAlpha; + if (this.blendDstAlpha !== null) data.blendDstAlpha = this.blendDstAlpha; + if (this.blendEquationAlpha !== null) data.blendEquationAlpha = this.blendEquationAlpha; + if (this.blendColor && this.blendColor.isColor) data.blendColor = this.blendColor.getHex(); + if (this.blendAlpha !== 0) data.blendAlpha = this.blendAlpha; + if (this.depthFunc !== LessEqualDepth) data.depthFunc = this.depthFunc; + if (this.depthTest === false) data.depthTest = this.depthTest; + if (this.depthWrite === false) data.depthWrite = this.depthWrite; + if (this.colorWrite === false) data.colorWrite = this.colorWrite; + if (this.stencilWriteMask !== 255) data.stencilWriteMask = this.stencilWriteMask; + if (this.stencilFunc !== AlwaysStencilFunc) data.stencilFunc = this.stencilFunc; + if (this.stencilRef !== 0) data.stencilRef = this.stencilRef; + if (this.stencilFuncMask !== 255) data.stencilFuncMask = this.stencilFuncMask; + if (this.stencilFail !== KeepStencilOp) data.stencilFail = this.stencilFail; + if (this.stencilZFail !== KeepStencilOp) data.stencilZFail = this.stencilZFail; + if (this.stencilZPass !== KeepStencilOp) data.stencilZPass = this.stencilZPass; + if (this.stencilWrite === true) data.stencilWrite = this.stencilWrite; + if (this.rotation !== void 0 && this.rotation !== 0) data.rotation = this.rotation; + if (this.polygonOffset === true) data.polygonOffset = true; + if (this.polygonOffsetFactor !== 0) data.polygonOffsetFactor = this.polygonOffsetFactor; + if (this.polygonOffsetUnits !== 0) data.polygonOffsetUnits = this.polygonOffsetUnits; + if (this.linewidth !== void 0 && this.linewidth !== 1) data.linewidth = this.linewidth; + if (this.dashSize !== void 0) data.dashSize = this.dashSize; + if (this.gapSize !== void 0) data.gapSize = this.gapSize; + if (this.scale !== void 0) data.scale = this.scale; + if (this.dithering === true) data.dithering = true; + if (this.alphaTest > 0) data.alphaTest = this.alphaTest; + if (this.alphaHash === true) data.alphaHash = true; + if (this.alphaToCoverage === true) data.alphaToCoverage = true; + if (this.premultipliedAlpha === true) data.premultipliedAlpha = true; + if (this.forceSinglePass === true) data.forceSinglePass = true; + if (this.wireframe === true) data.wireframe = true; + if (this.wireframeLinewidth > 1) data.wireframeLinewidth = this.wireframeLinewidth; + if (this.wireframeLinecap !== "round") data.wireframeLinecap = this.wireframeLinecap; + if (this.wireframeLinejoin !== "round") data.wireframeLinejoin = this.wireframeLinejoin; + if (this.flatShading === true) data.flatShading = true; + if (this.visible === false) data.visible = false; + if (this.toneMapped === false) data.toneMapped = false; + if (this.fog === false) data.fog = false; + if (Object.keys(this.userData).length > 0) data.userData = this.userData; + function extractFromCache(cache) { + const values = []; + for (const key in cache) { + const data2 = cache[key]; + delete data2.metadata; + values.push(data2); + } + return values; + } + __name(extractFromCache, "extractFromCache"); + if (isRootObject) { + const textures = extractFromCache(meta.textures); + const images = extractFromCache(meta.images); + if (textures.length > 0) data.textures = textures; + if (images.length > 0) data.images = images; + } + return data; + } + clone() { + return new this.constructor().copy(this); + } + copy(source) { + this.name = source.name; + this.blending = source.blending; + this.side = source.side; + this.vertexColors = source.vertexColors; + this.opacity = source.opacity; + this.transparent = source.transparent; + this.blendSrc = source.blendSrc; + this.blendDst = source.blendDst; + this.blendEquation = source.blendEquation; + this.blendSrcAlpha = source.blendSrcAlpha; + this.blendDstAlpha = source.blendDstAlpha; + this.blendEquationAlpha = source.blendEquationAlpha; + this.blendColor.copy(source.blendColor); + this.blendAlpha = source.blendAlpha; + this.depthFunc = source.depthFunc; + this.depthTest = source.depthTest; + this.depthWrite = source.depthWrite; + this.stencilWriteMask = source.stencilWriteMask; + this.stencilFunc = source.stencilFunc; + this.stencilRef = source.stencilRef; + this.stencilFuncMask = source.stencilFuncMask; + this.stencilFail = source.stencilFail; + this.stencilZFail = source.stencilZFail; + this.stencilZPass = source.stencilZPass; + this.stencilWrite = source.stencilWrite; + const srcPlanes = source.clippingPlanes; + let dstPlanes = null; + if (srcPlanes !== null) { + const n = srcPlanes.length; + dstPlanes = new Array(n); + for (let i = 0; i !== n; ++i) { + dstPlanes[i] = srcPlanes[i].clone(); + } + } + this.clippingPlanes = dstPlanes; + this.clipIntersection = source.clipIntersection; + this.clipShadows = source.clipShadows; + this.shadowSide = source.shadowSide; + this.colorWrite = source.colorWrite; + this.precision = source.precision; + this.polygonOffset = source.polygonOffset; + this.polygonOffsetFactor = source.polygonOffsetFactor; + this.polygonOffsetUnits = source.polygonOffsetUnits; + this.dithering = source.dithering; + this.alphaTest = source.alphaTest; + this.alphaHash = source.alphaHash; + this.alphaToCoverage = source.alphaToCoverage; + this.premultipliedAlpha = source.premultipliedAlpha; + this.forceSinglePass = source.forceSinglePass; + this.visible = source.visible; + this.toneMapped = source.toneMapped; + this.userData = JSON.parse(JSON.stringify(source.userData)); + return this; + } + dispose() { + this.dispatchEvent({ type: "dispose" }); + } + set needsUpdate(value) { + if (value === true) this.version++; + } + onBuild() { + console.warn("Material: onBuild() has been removed."); + } +} +class MeshBasicMaterial extends Material { + static { + __name(this, "MeshBasicMaterial"); + } + static get type() { + return "MeshBasicMaterial"; + } + constructor(parameters) { + super(); + this.isMeshBasicMaterial = true; + this.color = new Color(16777215); + this.map = null; + this.lightMap = null; + this.lightMapIntensity = 1; + this.aoMap = null; + this.aoMapIntensity = 1; + this.specularMap = null; + this.alphaMap = null; + this.envMap = null; + this.envMapRotation = new Euler(); + this.combine = MultiplyOperation; + this.reflectivity = 1; + this.refractionRatio = 0.98; + this.wireframe = false; + this.wireframeLinewidth = 1; + this.wireframeLinecap = "round"; + this.wireframeLinejoin = "round"; + this.fog = true; + this.setValues(parameters); + } + copy(source) { + super.copy(source); + this.color.copy(source.color); + this.map = source.map; + this.lightMap = source.lightMap; + this.lightMapIntensity = source.lightMapIntensity; + this.aoMap = source.aoMap; + this.aoMapIntensity = source.aoMapIntensity; + this.specularMap = source.specularMap; + this.alphaMap = source.alphaMap; + this.envMap = source.envMap; + this.envMapRotation.copy(source.envMapRotation); + this.combine = source.combine; + this.reflectivity = source.reflectivity; + this.refractionRatio = source.refractionRatio; + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + this.wireframeLinecap = source.wireframeLinecap; + this.wireframeLinejoin = source.wireframeLinejoin; + this.fog = source.fog; + return this; + } +} +const _tables = /* @__PURE__ */ _generateTables(); +function _generateTables() { + const buffer = new ArrayBuffer(4); + const floatView = new Float32Array(buffer); + const uint32View = new Uint32Array(buffer); + const baseTable = new Uint32Array(512); + const shiftTable = new Uint32Array(512); + for (let i = 0; i < 256; ++i) { + const e = i - 127; + if (e < -27) { + baseTable[i] = 0; + baseTable[i | 256] = 32768; + shiftTable[i] = 24; + shiftTable[i | 256] = 24; + } else if (e < -14) { + baseTable[i] = 1024 >> -e - 14; + baseTable[i | 256] = 1024 >> -e - 14 | 32768; + shiftTable[i] = -e - 1; + shiftTable[i | 256] = -e - 1; + } else if (e <= 15) { + baseTable[i] = e + 15 << 10; + baseTable[i | 256] = e + 15 << 10 | 32768; + shiftTable[i] = 13; + shiftTable[i | 256] = 13; + } else if (e < 128) { + baseTable[i] = 31744; + baseTable[i | 256] = 64512; + shiftTable[i] = 24; + shiftTable[i | 256] = 24; + } else { + baseTable[i] = 31744; + baseTable[i | 256] = 64512; + shiftTable[i] = 13; + shiftTable[i | 256] = 13; + } + } + const mantissaTable = new Uint32Array(2048); + const exponentTable = new Uint32Array(64); + const offsetTable = new Uint32Array(64); + for (let i = 1; i < 1024; ++i) { + let m = i << 13; + let e = 0; + while ((m & 8388608) === 0) { + m <<= 1; + e -= 8388608; + } + m &= ~8388608; + e += 947912704; + mantissaTable[i] = m | e; + } + for (let i = 1024; i < 2048; ++i) { + mantissaTable[i] = 939524096 + (i - 1024 << 13); + } + for (let i = 1; i < 31; ++i) { + exponentTable[i] = i << 23; + } + exponentTable[31] = 1199570944; + exponentTable[32] = 2147483648; + for (let i = 33; i < 63; ++i) { + exponentTable[i] = 2147483648 + (i - 32 << 23); + } + exponentTable[63] = 3347054592; + for (let i = 1; i < 64; ++i) { + if (i !== 32) { + offsetTable[i] = 1024; + } + } + return { + floatView, + uint32View, + baseTable, + shiftTable, + mantissaTable, + exponentTable, + offsetTable + }; +} +__name(_generateTables, "_generateTables"); +function toHalfFloat(val) { + if (Math.abs(val) > 65504) console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."); + val = clamp(val, -65504, 65504); + _tables.floatView[0] = val; + const f = _tables.uint32View[0]; + const e = f >> 23 & 511; + return _tables.baseTable[e] + ((f & 8388607) >> _tables.shiftTable[e]); +} +__name(toHalfFloat, "toHalfFloat"); +function fromHalfFloat(val) { + const m = val >> 10; + _tables.uint32View[0] = _tables.mantissaTable[_tables.offsetTable[m] + (val & 1023)] + _tables.exponentTable[m]; + return _tables.floatView[0]; +} +__name(fromHalfFloat, "fromHalfFloat"); +const DataUtils = { + toHalfFloat, + fromHalfFloat +}; +const _vector$9 = /* @__PURE__ */ new Vector3(); +const _vector2$1 = /* @__PURE__ */ new Vector2(); +class BufferAttribute { + static { + __name(this, "BufferAttribute"); + } + constructor(array, itemSize, normalized = false) { + if (Array.isArray(array)) { + throw new TypeError("THREE.BufferAttribute: array should be a Typed Array."); + } + this.isBufferAttribute = true; + this.name = ""; + this.array = array; + this.itemSize = itemSize; + this.count = array !== void 0 ? array.length / itemSize : 0; + this.normalized = normalized; + this.usage = StaticDrawUsage; + this.updateRanges = []; + this.gpuType = FloatType; + this.version = 0; + } + onUploadCallback() { + } + set needsUpdate(value) { + if (value === true) this.version++; + } + setUsage(value) { + this.usage = value; + return this; + } + addUpdateRange(start, count) { + this.updateRanges.push({ start, count }); + } + clearUpdateRanges() { + this.updateRanges.length = 0; + } + copy(source) { + this.name = source.name; + this.array = new source.array.constructor(source.array); + this.itemSize = source.itemSize; + this.count = source.count; + this.normalized = source.normalized; + this.usage = source.usage; + this.gpuType = source.gpuType; + return this; + } + copyAt(index1, attribute, index2) { + index1 *= this.itemSize; + index2 *= attribute.itemSize; + for (let i = 0, l = this.itemSize; i < l; i++) { + this.array[index1 + i] = attribute.array[index2 + i]; + } + return this; + } + copyArray(array) { + this.array.set(array); + return this; + } + applyMatrix3(m) { + if (this.itemSize === 2) { + for (let i = 0, l = this.count; i < l; i++) { + _vector2$1.fromBufferAttribute(this, i); + _vector2$1.applyMatrix3(m); + this.setXY(i, _vector2$1.x, _vector2$1.y); + } + } else if (this.itemSize === 3) { + for (let i = 0, l = this.count; i < l; i++) { + _vector$9.fromBufferAttribute(this, i); + _vector$9.applyMatrix3(m); + this.setXYZ(i, _vector$9.x, _vector$9.y, _vector$9.z); + } + } + return this; + } + applyMatrix4(m) { + for (let i = 0, l = this.count; i < l; i++) { + _vector$9.fromBufferAttribute(this, i); + _vector$9.applyMatrix4(m); + this.setXYZ(i, _vector$9.x, _vector$9.y, _vector$9.z); + } + return this; + } + applyNormalMatrix(m) { + for (let i = 0, l = this.count; i < l; i++) { + _vector$9.fromBufferAttribute(this, i); + _vector$9.applyNormalMatrix(m); + this.setXYZ(i, _vector$9.x, _vector$9.y, _vector$9.z); + } + return this; + } + transformDirection(m) { + for (let i = 0, l = this.count; i < l; i++) { + _vector$9.fromBufferAttribute(this, i); + _vector$9.transformDirection(m); + this.setXYZ(i, _vector$9.x, _vector$9.y, _vector$9.z); + } + return this; + } + set(value, offset = 0) { + this.array.set(value, offset); + return this; + } + getComponent(index, component) { + let value = this.array[index * this.itemSize + component]; + if (this.normalized) value = denormalize(value, this.array); + return value; + } + setComponent(index, component, value) { + if (this.normalized) value = normalize(value, this.array); + this.array[index * this.itemSize + component] = value; + return this; + } + getX(index) { + let x = this.array[index * this.itemSize]; + if (this.normalized) x = denormalize(x, this.array); + return x; + } + setX(index, x) { + if (this.normalized) x = normalize(x, this.array); + this.array[index * this.itemSize] = x; + return this; + } + getY(index) { + let y = this.array[index * this.itemSize + 1]; + if (this.normalized) y = denormalize(y, this.array); + return y; + } + setY(index, y) { + if (this.normalized) y = normalize(y, this.array); + this.array[index * this.itemSize + 1] = y; + return this; + } + getZ(index) { + let z = this.array[index * this.itemSize + 2]; + if (this.normalized) z = denormalize(z, this.array); + return z; + } + setZ(index, z) { + if (this.normalized) z = normalize(z, this.array); + this.array[index * this.itemSize + 2] = z; + return this; + } + getW(index) { + let w = this.array[index * this.itemSize + 3]; + if (this.normalized) w = denormalize(w, this.array); + return w; + } + setW(index, w) { + if (this.normalized) w = normalize(w, this.array); + this.array[index * this.itemSize + 3] = w; + return this; + } + setXY(index, x, y) { + index *= this.itemSize; + if (this.normalized) { + x = normalize(x, this.array); + y = normalize(y, this.array); + } + this.array[index + 0] = x; + this.array[index + 1] = y; + return this; + } + setXYZ(index, x, y, z) { + index *= this.itemSize; + if (this.normalized) { + x = normalize(x, this.array); + y = normalize(y, this.array); + z = normalize(z, this.array); + } + this.array[index + 0] = x; + this.array[index + 1] = y; + this.array[index + 2] = z; + return this; + } + setXYZW(index, x, y, z, w) { + index *= this.itemSize; + if (this.normalized) { + x = normalize(x, this.array); + y = normalize(y, this.array); + z = normalize(z, this.array); + w = normalize(w, this.array); + } + this.array[index + 0] = x; + this.array[index + 1] = y; + this.array[index + 2] = z; + this.array[index + 3] = w; + return this; + } + onUpload(callback) { + this.onUploadCallback = callback; + return this; + } + clone() { + return new this.constructor(this.array, this.itemSize).copy(this); + } + toJSON() { + const data = { + itemSize: this.itemSize, + type: this.array.constructor.name, + array: Array.from(this.array), + normalized: this.normalized + }; + if (this.name !== "") data.name = this.name; + if (this.usage !== StaticDrawUsage) data.usage = this.usage; + return data; + } +} +class Int8BufferAttribute extends BufferAttribute { + static { + __name(this, "Int8BufferAttribute"); + } + constructor(array, itemSize, normalized) { + super(new Int8Array(array), itemSize, normalized); + } +} +class Uint8BufferAttribute extends BufferAttribute { + static { + __name(this, "Uint8BufferAttribute"); + } + constructor(array, itemSize, normalized) { + super(new Uint8Array(array), itemSize, normalized); + } +} +class Uint8ClampedBufferAttribute extends BufferAttribute { + static { + __name(this, "Uint8ClampedBufferAttribute"); + } + constructor(array, itemSize, normalized) { + super(new Uint8ClampedArray(array), itemSize, normalized); + } +} +class Int16BufferAttribute extends BufferAttribute { + static { + __name(this, "Int16BufferAttribute"); + } + constructor(array, itemSize, normalized) { + super(new Int16Array(array), itemSize, normalized); + } +} +class Uint16BufferAttribute extends BufferAttribute { + static { + __name(this, "Uint16BufferAttribute"); + } + constructor(array, itemSize, normalized) { + super(new Uint16Array(array), itemSize, normalized); + } +} +class Int32BufferAttribute extends BufferAttribute { + static { + __name(this, "Int32BufferAttribute"); + } + constructor(array, itemSize, normalized) { + super(new Int32Array(array), itemSize, normalized); + } +} +class Uint32BufferAttribute extends BufferAttribute { + static { + __name(this, "Uint32BufferAttribute"); + } + constructor(array, itemSize, normalized) { + super(new Uint32Array(array), itemSize, normalized); + } +} +class Float16BufferAttribute extends BufferAttribute { + static { + __name(this, "Float16BufferAttribute"); + } + constructor(array, itemSize, normalized) { + super(new Uint16Array(array), itemSize, normalized); + this.isFloat16BufferAttribute = true; + } + getX(index) { + let x = fromHalfFloat(this.array[index * this.itemSize]); + if (this.normalized) x = denormalize(x, this.array); + return x; + } + setX(index, x) { + if (this.normalized) x = normalize(x, this.array); + this.array[index * this.itemSize] = toHalfFloat(x); + return this; + } + getY(index) { + let y = fromHalfFloat(this.array[index * this.itemSize + 1]); + if (this.normalized) y = denormalize(y, this.array); + return y; + } + setY(index, y) { + if (this.normalized) y = normalize(y, this.array); + this.array[index * this.itemSize + 1] = toHalfFloat(y); + return this; + } + getZ(index) { + let z = fromHalfFloat(this.array[index * this.itemSize + 2]); + if (this.normalized) z = denormalize(z, this.array); + return z; + } + setZ(index, z) { + if (this.normalized) z = normalize(z, this.array); + this.array[index * this.itemSize + 2] = toHalfFloat(z); + return this; + } + getW(index) { + let w = fromHalfFloat(this.array[index * this.itemSize + 3]); + if (this.normalized) w = denormalize(w, this.array); + return w; + } + setW(index, w) { + if (this.normalized) w = normalize(w, this.array); + this.array[index * this.itemSize + 3] = toHalfFloat(w); + return this; + } + setXY(index, x, y) { + index *= this.itemSize; + if (this.normalized) { + x = normalize(x, this.array); + y = normalize(y, this.array); + } + this.array[index + 0] = toHalfFloat(x); + this.array[index + 1] = toHalfFloat(y); + return this; + } + setXYZ(index, x, y, z) { + index *= this.itemSize; + if (this.normalized) { + x = normalize(x, this.array); + y = normalize(y, this.array); + z = normalize(z, this.array); + } + this.array[index + 0] = toHalfFloat(x); + this.array[index + 1] = toHalfFloat(y); + this.array[index + 2] = toHalfFloat(z); + return this; + } + setXYZW(index, x, y, z, w) { + index *= this.itemSize; + if (this.normalized) { + x = normalize(x, this.array); + y = normalize(y, this.array); + z = normalize(z, this.array); + w = normalize(w, this.array); + } + this.array[index + 0] = toHalfFloat(x); + this.array[index + 1] = toHalfFloat(y); + this.array[index + 2] = toHalfFloat(z); + this.array[index + 3] = toHalfFloat(w); + return this; + } +} +class Float32BufferAttribute extends BufferAttribute { + static { + __name(this, "Float32BufferAttribute"); + } + constructor(array, itemSize, normalized) { + super(new Float32Array(array), itemSize, normalized); + } +} +let _id$2 = 0; +const _m1$2 = /* @__PURE__ */ new Matrix4(); +const _obj = /* @__PURE__ */ new Object3D(); +const _offset = /* @__PURE__ */ new Vector3(); +const _box$2 = /* @__PURE__ */ new Box3(); +const _boxMorphTargets = /* @__PURE__ */ new Box3(); +const _vector$8 = /* @__PURE__ */ new Vector3(); +class BufferGeometry extends EventDispatcher { + static { + __name(this, "BufferGeometry"); + } + constructor() { + super(); + this.isBufferGeometry = true; + Object.defineProperty(this, "id", { value: _id$2++ }); + this.uuid = generateUUID(); + this.name = ""; + this.type = "BufferGeometry"; + this.index = null; + this.indirect = null; + this.attributes = {}; + this.morphAttributes = {}; + this.morphTargetsRelative = false; + this.groups = []; + this.boundingBox = null; + this.boundingSphere = null; + this.drawRange = { start: 0, count: Infinity }; + this.userData = {}; + } + getIndex() { + return this.index; + } + setIndex(index) { + if (Array.isArray(index)) { + this.index = new (arrayNeedsUint32(index) ? Uint32BufferAttribute : Uint16BufferAttribute)(index, 1); + } else { + this.index = index; + } + return this; + } + setIndirect(indirect) { + this.indirect = indirect; + return this; + } + getIndirect() { + return this.indirect; + } + getAttribute(name) { + return this.attributes[name]; + } + setAttribute(name, attribute) { + this.attributes[name] = attribute; + return this; + } + deleteAttribute(name) { + delete this.attributes[name]; + return this; + } + hasAttribute(name) { + return this.attributes[name] !== void 0; + } + addGroup(start, count, materialIndex = 0) { + this.groups.push({ + start, + count, + materialIndex + }); + } + clearGroups() { + this.groups = []; + } + setDrawRange(start, count) { + this.drawRange.start = start; + this.drawRange.count = count; + } + applyMatrix4(matrix) { + const position = this.attributes.position; + if (position !== void 0) { + position.applyMatrix4(matrix); + position.needsUpdate = true; + } + const normal = this.attributes.normal; + if (normal !== void 0) { + const normalMatrix = new Matrix3().getNormalMatrix(matrix); + normal.applyNormalMatrix(normalMatrix); + normal.needsUpdate = true; + } + const tangent = this.attributes.tangent; + if (tangent !== void 0) { + tangent.transformDirection(matrix); + tangent.needsUpdate = true; + } + if (this.boundingBox !== null) { + this.computeBoundingBox(); + } + if (this.boundingSphere !== null) { + this.computeBoundingSphere(); + } + return this; + } + applyQuaternion(q) { + _m1$2.makeRotationFromQuaternion(q); + this.applyMatrix4(_m1$2); + return this; + } + rotateX(angle) { + _m1$2.makeRotationX(angle); + this.applyMatrix4(_m1$2); + return this; + } + rotateY(angle) { + _m1$2.makeRotationY(angle); + this.applyMatrix4(_m1$2); + return this; + } + rotateZ(angle) { + _m1$2.makeRotationZ(angle); + this.applyMatrix4(_m1$2); + return this; + } + translate(x, y, z) { + _m1$2.makeTranslation(x, y, z); + this.applyMatrix4(_m1$2); + return this; + } + scale(x, y, z) { + _m1$2.makeScale(x, y, z); + this.applyMatrix4(_m1$2); + return this; + } + lookAt(vector) { + _obj.lookAt(vector); + _obj.updateMatrix(); + this.applyMatrix4(_obj.matrix); + return this; + } + center() { + this.computeBoundingBox(); + this.boundingBox.getCenter(_offset).negate(); + this.translate(_offset.x, _offset.y, _offset.z); + return this; + } + setFromPoints(points) { + const positionAttribute = this.getAttribute("position"); + if (positionAttribute === void 0) { + const position = []; + for (let i = 0, l = points.length; i < l; i++) { + const point = points[i]; + position.push(point.x, point.y, point.z || 0); + } + this.setAttribute("position", new Float32BufferAttribute(position, 3)); + } else { + for (let i = 0, l = positionAttribute.count; i < l; i++) { + const point = points[i]; + positionAttribute.setXYZ(i, point.x, point.y, point.z || 0); + } + if (points.length > positionAttribute.count) { + console.warn("THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."); + } + positionAttribute.needsUpdate = true; + } + return this; + } + computeBoundingBox() { + if (this.boundingBox === null) { + this.boundingBox = new Box3(); + } + const position = this.attributes.position; + const morphAttributesPosition = this.morphAttributes.position; + if (position && position.isGLBufferAttribute) { + console.error("THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.", this); + this.boundingBox.set( + new Vector3(-Infinity, -Infinity, -Infinity), + new Vector3(Infinity, Infinity, Infinity) + ); + return; + } + if (position !== void 0) { + this.boundingBox.setFromBufferAttribute(position); + if (morphAttributesPosition) { + for (let i = 0, il = morphAttributesPosition.length; i < il; i++) { + const morphAttribute = morphAttributesPosition[i]; + _box$2.setFromBufferAttribute(morphAttribute); + if (this.morphTargetsRelative) { + _vector$8.addVectors(this.boundingBox.min, _box$2.min); + this.boundingBox.expandByPoint(_vector$8); + _vector$8.addVectors(this.boundingBox.max, _box$2.max); + this.boundingBox.expandByPoint(_vector$8); + } else { + this.boundingBox.expandByPoint(_box$2.min); + this.boundingBox.expandByPoint(_box$2.max); + } + } + } + } else { + this.boundingBox.makeEmpty(); + } + if (isNaN(this.boundingBox.min.x) || isNaN(this.boundingBox.min.y) || isNaN(this.boundingBox.min.z)) { + console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', this); + } + } + computeBoundingSphere() { + if (this.boundingSphere === null) { + this.boundingSphere = new Sphere(); + } + const position = this.attributes.position; + const morphAttributesPosition = this.morphAttributes.position; + if (position && position.isGLBufferAttribute) { + console.error("THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.", this); + this.boundingSphere.set(new Vector3(), Infinity); + return; + } + if (position) { + const center = this.boundingSphere.center; + _box$2.setFromBufferAttribute(position); + if (morphAttributesPosition) { + for (let i = 0, il = morphAttributesPosition.length; i < il; i++) { + const morphAttribute = morphAttributesPosition[i]; + _boxMorphTargets.setFromBufferAttribute(morphAttribute); + if (this.morphTargetsRelative) { + _vector$8.addVectors(_box$2.min, _boxMorphTargets.min); + _box$2.expandByPoint(_vector$8); + _vector$8.addVectors(_box$2.max, _boxMorphTargets.max); + _box$2.expandByPoint(_vector$8); + } else { + _box$2.expandByPoint(_boxMorphTargets.min); + _box$2.expandByPoint(_boxMorphTargets.max); + } + } + } + _box$2.getCenter(center); + let maxRadiusSq = 0; + for (let i = 0, il = position.count; i < il; i++) { + _vector$8.fromBufferAttribute(position, i); + maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector$8)); + } + if (morphAttributesPosition) { + for (let i = 0, il = morphAttributesPosition.length; i < il; i++) { + const morphAttribute = morphAttributesPosition[i]; + const morphTargetsRelative = this.morphTargetsRelative; + for (let j = 0, jl = morphAttribute.count; j < jl; j++) { + _vector$8.fromBufferAttribute(morphAttribute, j); + if (morphTargetsRelative) { + _offset.fromBufferAttribute(position, j); + _vector$8.add(_offset); + } + maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector$8)); + } + } + } + this.boundingSphere.radius = Math.sqrt(maxRadiusSq); + if (isNaN(this.boundingSphere.radius)) { + console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.', this); + } + } + } + computeTangents() { + const index = this.index; + const attributes = this.attributes; + if (index === null || attributes.position === void 0 || attributes.normal === void 0 || attributes.uv === void 0) { + console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)"); + return; + } + const positionAttribute = attributes.position; + const normalAttribute = attributes.normal; + const uvAttribute = attributes.uv; + if (this.hasAttribute("tangent") === false) { + this.setAttribute("tangent", new BufferAttribute(new Float32Array(4 * positionAttribute.count), 4)); + } + const tangentAttribute = this.getAttribute("tangent"); + const tan1 = [], tan2 = []; + for (let i = 0; i < positionAttribute.count; i++) { + tan1[i] = new Vector3(); + tan2[i] = new Vector3(); + } + const vA = new Vector3(), vB = new Vector3(), vC = new Vector3(), uvA = new Vector2(), uvB = new Vector2(), uvC = new Vector2(), sdir = new Vector3(), tdir = new Vector3(); + function handleTriangle(a, b, c) { + vA.fromBufferAttribute(positionAttribute, a); + vB.fromBufferAttribute(positionAttribute, b); + vC.fromBufferAttribute(positionAttribute, c); + uvA.fromBufferAttribute(uvAttribute, a); + uvB.fromBufferAttribute(uvAttribute, b); + uvC.fromBufferAttribute(uvAttribute, c); + vB.sub(vA); + vC.sub(vA); + uvB.sub(uvA); + uvC.sub(uvA); + const r = 1 / (uvB.x * uvC.y - uvC.x * uvB.y); + if (!isFinite(r)) return; + sdir.copy(vB).multiplyScalar(uvC.y).addScaledVector(vC, -uvB.y).multiplyScalar(r); + tdir.copy(vC).multiplyScalar(uvB.x).addScaledVector(vB, -uvC.x).multiplyScalar(r); + tan1[a].add(sdir); + tan1[b].add(sdir); + tan1[c].add(sdir); + tan2[a].add(tdir); + tan2[b].add(tdir); + tan2[c].add(tdir); + } + __name(handleTriangle, "handleTriangle"); + let groups = this.groups; + if (groups.length === 0) { + groups = [{ + start: 0, + count: index.count + }]; + } + for (let i = 0, il = groups.length; i < il; ++i) { + const group = groups[i]; + const start = group.start; + const count = group.count; + for (let j = start, jl = start + count; j < jl; j += 3) { + handleTriangle( + index.getX(j + 0), + index.getX(j + 1), + index.getX(j + 2) + ); + } + } + const tmp2 = new Vector3(), tmp22 = new Vector3(); + const n = new Vector3(), n2 = new Vector3(); + function handleVertex(v) { + n.fromBufferAttribute(normalAttribute, v); + n2.copy(n); + const t2 = tan1[v]; + tmp2.copy(t2); + tmp2.sub(n.multiplyScalar(n.dot(t2))).normalize(); + tmp22.crossVectors(n2, t2); + const test = tmp22.dot(tan2[v]); + const w = test < 0 ? -1 : 1; + tangentAttribute.setXYZW(v, tmp2.x, tmp2.y, tmp2.z, w); + } + __name(handleVertex, "handleVertex"); + for (let i = 0, il = groups.length; i < il; ++i) { + const group = groups[i]; + const start = group.start; + const count = group.count; + for (let j = start, jl = start + count; j < jl; j += 3) { + handleVertex(index.getX(j + 0)); + handleVertex(index.getX(j + 1)); + handleVertex(index.getX(j + 2)); + } + } + } + computeVertexNormals() { + const index = this.index; + const positionAttribute = this.getAttribute("position"); + if (positionAttribute !== void 0) { + let normalAttribute = this.getAttribute("normal"); + if (normalAttribute === void 0) { + normalAttribute = new BufferAttribute(new Float32Array(positionAttribute.count * 3), 3); + this.setAttribute("normal", normalAttribute); + } else { + for (let i = 0, il = normalAttribute.count; i < il; i++) { + normalAttribute.setXYZ(i, 0, 0, 0); + } + } + const pA = new Vector3(), pB = new Vector3(), pC = new Vector3(); + const nA = new Vector3(), nB = new Vector3(), nC = new Vector3(); + const cb = new Vector3(), ab = new Vector3(); + if (index) { + for (let i = 0, il = index.count; i < il; i += 3) { + const vA = index.getX(i + 0); + const vB = index.getX(i + 1); + const vC = index.getX(i + 2); + pA.fromBufferAttribute(positionAttribute, vA); + pB.fromBufferAttribute(positionAttribute, vB); + pC.fromBufferAttribute(positionAttribute, vC); + cb.subVectors(pC, pB); + ab.subVectors(pA, pB); + cb.cross(ab); + nA.fromBufferAttribute(normalAttribute, vA); + nB.fromBufferAttribute(normalAttribute, vB); + nC.fromBufferAttribute(normalAttribute, vC); + nA.add(cb); + nB.add(cb); + nC.add(cb); + normalAttribute.setXYZ(vA, nA.x, nA.y, nA.z); + normalAttribute.setXYZ(vB, nB.x, nB.y, nB.z); + normalAttribute.setXYZ(vC, nC.x, nC.y, nC.z); + } + } else { + for (let i = 0, il = positionAttribute.count; i < il; i += 3) { + pA.fromBufferAttribute(positionAttribute, i + 0); + pB.fromBufferAttribute(positionAttribute, i + 1); + pC.fromBufferAttribute(positionAttribute, i + 2); + cb.subVectors(pC, pB); + ab.subVectors(pA, pB); + cb.cross(ab); + normalAttribute.setXYZ(i + 0, cb.x, cb.y, cb.z); + normalAttribute.setXYZ(i + 1, cb.x, cb.y, cb.z); + normalAttribute.setXYZ(i + 2, cb.x, cb.y, cb.z); + } + } + this.normalizeNormals(); + normalAttribute.needsUpdate = true; + } + } + normalizeNormals() { + const normals = this.attributes.normal; + for (let i = 0, il = normals.count; i < il; i++) { + _vector$8.fromBufferAttribute(normals, i); + _vector$8.normalize(); + normals.setXYZ(i, _vector$8.x, _vector$8.y, _vector$8.z); + } + } + toNonIndexed() { + function convertBufferAttribute(attribute, indices2) { + const array = attribute.array; + const itemSize = attribute.itemSize; + const normalized = attribute.normalized; + const array2 = new array.constructor(indices2.length * itemSize); + let index = 0, index2 = 0; + for (let i = 0, l = indices2.length; i < l; i++) { + if (attribute.isInterleavedBufferAttribute) { + index = indices2[i] * attribute.data.stride + attribute.offset; + } else { + index = indices2[i] * itemSize; + } + for (let j = 0; j < itemSize; j++) { + array2[index2++] = array[index++]; + } + } + return new BufferAttribute(array2, itemSize, normalized); + } + __name(convertBufferAttribute, "convertBufferAttribute"); + if (this.index === null) { + console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."); + return this; + } + const geometry2 = new BufferGeometry(); + const indices = this.index.array; + const attributes = this.attributes; + for (const name in attributes) { + const attribute = attributes[name]; + const newAttribute = convertBufferAttribute(attribute, indices); + geometry2.setAttribute(name, newAttribute); + } + const morphAttributes = this.morphAttributes; + for (const name in morphAttributes) { + const morphArray = []; + const morphAttribute = morphAttributes[name]; + for (let i = 0, il = morphAttribute.length; i < il; i++) { + const attribute = morphAttribute[i]; + const newAttribute = convertBufferAttribute(attribute, indices); + morphArray.push(newAttribute); + } + geometry2.morphAttributes[name] = morphArray; + } + geometry2.morphTargetsRelative = this.morphTargetsRelative; + const groups = this.groups; + for (let i = 0, l = groups.length; i < l; i++) { + const group = groups[i]; + geometry2.addGroup(group.start, group.count, group.materialIndex); + } + return geometry2; + } + toJSON() { + const data = { + metadata: { + version: 4.6, + type: "BufferGeometry", + generator: "BufferGeometry.toJSON" + } + }; + data.uuid = this.uuid; + data.type = this.type; + if (this.name !== "") data.name = this.name; + if (Object.keys(this.userData).length > 0) data.userData = this.userData; + if (this.parameters !== void 0) { + const parameters = this.parameters; + for (const key in parameters) { + if (parameters[key] !== void 0) data[key] = parameters[key]; + } + return data; + } + data.data = { attributes: {} }; + const index = this.index; + if (index !== null) { + data.data.index = { + type: index.array.constructor.name, + array: Array.prototype.slice.call(index.array) + }; + } + const attributes = this.attributes; + for (const key in attributes) { + const attribute = attributes[key]; + data.data.attributes[key] = attribute.toJSON(data.data); + } + const morphAttributes = {}; + let hasMorphAttributes = false; + for (const key in this.morphAttributes) { + const attributeArray = this.morphAttributes[key]; + const array = []; + for (let i = 0, il = attributeArray.length; i < il; i++) { + const attribute = attributeArray[i]; + array.push(attribute.toJSON(data.data)); + } + if (array.length > 0) { + morphAttributes[key] = array; + hasMorphAttributes = true; + } + } + if (hasMorphAttributes) { + data.data.morphAttributes = morphAttributes; + data.data.morphTargetsRelative = this.morphTargetsRelative; + } + const groups = this.groups; + if (groups.length > 0) { + data.data.groups = JSON.parse(JSON.stringify(groups)); + } + const boundingSphere = this.boundingSphere; + if (boundingSphere !== null) { + data.data.boundingSphere = { + center: boundingSphere.center.toArray(), + radius: boundingSphere.radius + }; + } + return data; + } + clone() { + return new this.constructor().copy(this); + } + copy(source) { + this.index = null; + this.attributes = {}; + this.morphAttributes = {}; + this.groups = []; + this.boundingBox = null; + this.boundingSphere = null; + const data = {}; + this.name = source.name; + const index = source.index; + if (index !== null) { + this.setIndex(index.clone(data)); + } + const attributes = source.attributes; + for (const name in attributes) { + const attribute = attributes[name]; + this.setAttribute(name, attribute.clone(data)); + } + const morphAttributes = source.morphAttributes; + for (const name in morphAttributes) { + const array = []; + const morphAttribute = morphAttributes[name]; + for (let i = 0, l = morphAttribute.length; i < l; i++) { + array.push(morphAttribute[i].clone(data)); + } + this.morphAttributes[name] = array; + } + this.morphTargetsRelative = source.morphTargetsRelative; + const groups = source.groups; + for (let i = 0, l = groups.length; i < l; i++) { + const group = groups[i]; + this.addGroup(group.start, group.count, group.materialIndex); + } + const boundingBox = source.boundingBox; + if (boundingBox !== null) { + this.boundingBox = boundingBox.clone(); + } + const boundingSphere = source.boundingSphere; + if (boundingSphere !== null) { + this.boundingSphere = boundingSphere.clone(); + } + this.drawRange.start = source.drawRange.start; + this.drawRange.count = source.drawRange.count; + this.userData = source.userData; + return this; + } + dispose() { + this.dispatchEvent({ type: "dispose" }); + } +} +const _inverseMatrix$3 = /* @__PURE__ */ new Matrix4(); +const _ray$3 = /* @__PURE__ */ new Ray(); +const _sphere$6 = /* @__PURE__ */ new Sphere(); +const _sphereHitAt = /* @__PURE__ */ new Vector3(); +const _vA$1 = /* @__PURE__ */ new Vector3(); +const _vB$1 = /* @__PURE__ */ new Vector3(); +const _vC$1 = /* @__PURE__ */ new Vector3(); +const _tempA = /* @__PURE__ */ new Vector3(); +const _morphA = /* @__PURE__ */ new Vector3(); +const _intersectionPoint = /* @__PURE__ */ new Vector3(); +const _intersectionPointWorld = /* @__PURE__ */ new Vector3(); +class Mesh extends Object3D { + static { + __name(this, "Mesh"); + } + constructor(geometry = new BufferGeometry(), material = new MeshBasicMaterial()) { + super(); + this.isMesh = true; + this.type = "Mesh"; + this.geometry = geometry; + this.material = material; + this.updateMorphTargets(); + } + copy(source, recursive) { + super.copy(source, recursive); + if (source.morphTargetInfluences !== void 0) { + this.morphTargetInfluences = source.morphTargetInfluences.slice(); + } + if (source.morphTargetDictionary !== void 0) { + this.morphTargetDictionary = Object.assign({}, source.morphTargetDictionary); + } + this.material = Array.isArray(source.material) ? source.material.slice() : source.material; + this.geometry = source.geometry; + return this; + } + updateMorphTargets() { + const geometry = this.geometry; + const morphAttributes = geometry.morphAttributes; + const keys = Object.keys(morphAttributes); + if (keys.length > 0) { + const morphAttribute = morphAttributes[keys[0]]; + if (morphAttribute !== void 0) { + this.morphTargetInfluences = []; + this.morphTargetDictionary = {}; + for (let m = 0, ml = morphAttribute.length; m < ml; m++) { + const name = morphAttribute[m].name || String(m); + this.morphTargetInfluences.push(0); + this.morphTargetDictionary[name] = m; + } + } + } + } + getVertexPosition(index, target) { + const geometry = this.geometry; + const position = geometry.attributes.position; + const morphPosition = geometry.morphAttributes.position; + const morphTargetsRelative = geometry.morphTargetsRelative; + target.fromBufferAttribute(position, index); + const morphInfluences = this.morphTargetInfluences; + if (morphPosition && morphInfluences) { + _morphA.set(0, 0, 0); + for (let i = 0, il = morphPosition.length; i < il; i++) { + const influence = morphInfluences[i]; + const morphAttribute = morphPosition[i]; + if (influence === 0) continue; + _tempA.fromBufferAttribute(morphAttribute, index); + if (morphTargetsRelative) { + _morphA.addScaledVector(_tempA, influence); + } else { + _morphA.addScaledVector(_tempA.sub(target), influence); + } + } + target.add(_morphA); + } + return target; + } + raycast(raycaster, intersects2) { + const geometry = this.geometry; + const material = this.material; + const matrixWorld = this.matrixWorld; + if (material === void 0) return; + if (geometry.boundingSphere === null) geometry.computeBoundingSphere(); + _sphere$6.copy(geometry.boundingSphere); + _sphere$6.applyMatrix4(matrixWorld); + _ray$3.copy(raycaster.ray).recast(raycaster.near); + if (_sphere$6.containsPoint(_ray$3.origin) === false) { + if (_ray$3.intersectSphere(_sphere$6, _sphereHitAt) === null) return; + if (_ray$3.origin.distanceToSquared(_sphereHitAt) > (raycaster.far - raycaster.near) ** 2) return; + } + _inverseMatrix$3.copy(matrixWorld).invert(); + _ray$3.copy(raycaster.ray).applyMatrix4(_inverseMatrix$3); + if (geometry.boundingBox !== null) { + if (_ray$3.intersectsBox(geometry.boundingBox) === false) return; + } + this._computeIntersections(raycaster, intersects2, _ray$3); + } + _computeIntersections(raycaster, intersects2, rayLocalSpace) { + let intersection; + const geometry = this.geometry; + const material = this.material; + const index = geometry.index; + const position = geometry.attributes.position; + const uv = geometry.attributes.uv; + const uv1 = geometry.attributes.uv1; + const normal = geometry.attributes.normal; + const groups = geometry.groups; + const drawRange = geometry.drawRange; + if (index !== null) { + if (Array.isArray(material)) { + for (let i = 0, il = groups.length; i < il; i++) { + const group = groups[i]; + const groupMaterial = material[group.materialIndex]; + const start = Math.max(group.start, drawRange.start); + const end = Math.min(index.count, Math.min(group.start + group.count, drawRange.start + drawRange.count)); + for (let j = start, jl = end; j < jl; j += 3) { + const a = index.getX(j); + const b = index.getX(j + 1); + const c = index.getX(j + 2); + intersection = checkGeometryIntersection(this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c); + if (intersection) { + intersection.faceIndex = Math.floor(j / 3); + intersection.face.materialIndex = group.materialIndex; + intersects2.push(intersection); + } + } + } + } else { + const start = Math.max(0, drawRange.start); + const end = Math.min(index.count, drawRange.start + drawRange.count); + for (let i = start, il = end; i < il; i += 3) { + const a = index.getX(i); + const b = index.getX(i + 1); + const c = index.getX(i + 2); + intersection = checkGeometryIntersection(this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c); + if (intersection) { + intersection.faceIndex = Math.floor(i / 3); + intersects2.push(intersection); + } + } + } + } else if (position !== void 0) { + if (Array.isArray(material)) { + for (let i = 0, il = groups.length; i < il; i++) { + const group = groups[i]; + const groupMaterial = material[group.materialIndex]; + const start = Math.max(group.start, drawRange.start); + const end = Math.min(position.count, Math.min(group.start + group.count, drawRange.start + drawRange.count)); + for (let j = start, jl = end; j < jl; j += 3) { + const a = j; + const b = j + 1; + const c = j + 2; + intersection = checkGeometryIntersection(this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c); + if (intersection) { + intersection.faceIndex = Math.floor(j / 3); + intersection.face.materialIndex = group.materialIndex; + intersects2.push(intersection); + } + } + } + } else { + const start = Math.max(0, drawRange.start); + const end = Math.min(position.count, drawRange.start + drawRange.count); + for (let i = start, il = end; i < il; i += 3) { + const a = i; + const b = i + 1; + const c = i + 2; + intersection = checkGeometryIntersection(this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c); + if (intersection) { + intersection.faceIndex = Math.floor(i / 3); + intersects2.push(intersection); + } + } + } + } + } +} +function checkIntersection$1(object, material, raycaster, ray, pA, pB, pC, point) { + let intersect2; + if (material.side === BackSide) { + intersect2 = ray.intersectTriangle(pC, pB, pA, true, point); + } else { + intersect2 = ray.intersectTriangle(pA, pB, pC, material.side === FrontSide, point); + } + if (intersect2 === null) return null; + _intersectionPointWorld.copy(point); + _intersectionPointWorld.applyMatrix4(object.matrixWorld); + const distance = raycaster.ray.origin.distanceTo(_intersectionPointWorld); + if (distance < raycaster.near || distance > raycaster.far) return null; + return { + distance, + point: _intersectionPointWorld.clone(), + object + }; +} +__name(checkIntersection$1, "checkIntersection$1"); +function checkGeometryIntersection(object, material, raycaster, ray, uv, uv1, normal, a, b, c) { + object.getVertexPosition(a, _vA$1); + object.getVertexPosition(b, _vB$1); + object.getVertexPosition(c, _vC$1); + const intersection = checkIntersection$1(object, material, raycaster, ray, _vA$1, _vB$1, _vC$1, _intersectionPoint); + if (intersection) { + const barycoord = new Vector3(); + Triangle.getBarycoord(_intersectionPoint, _vA$1, _vB$1, _vC$1, barycoord); + if (uv) { + intersection.uv = Triangle.getInterpolatedAttribute(uv, a, b, c, barycoord, new Vector2()); + } + if (uv1) { + intersection.uv1 = Triangle.getInterpolatedAttribute(uv1, a, b, c, barycoord, new Vector2()); + } + if (normal) { + intersection.normal = Triangle.getInterpolatedAttribute(normal, a, b, c, barycoord, new Vector3()); + if (intersection.normal.dot(ray.direction) > 0) { + intersection.normal.multiplyScalar(-1); + } + } + const face = { + a, + b, + c, + normal: new Vector3(), + materialIndex: 0 + }; + Triangle.getNormal(_vA$1, _vB$1, _vC$1, face.normal); + intersection.face = face; + intersection.barycoord = barycoord; + } + return intersection; +} +__name(checkGeometryIntersection, "checkGeometryIntersection"); +class BoxGeometry extends BufferGeometry { + static { + __name(this, "BoxGeometry"); + } + constructor(width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1) { + super(); + this.type = "BoxGeometry"; + this.parameters = { + width, + height, + depth, + widthSegments, + heightSegments, + depthSegments + }; + const scope = this; + widthSegments = Math.floor(widthSegments); + heightSegments = Math.floor(heightSegments); + depthSegments = Math.floor(depthSegments); + const indices = []; + const vertices = []; + const normals = []; + const uvs = []; + let numberOfVertices = 0; + let groupStart = 0; + buildPlane("z", "y", "x", -1, -1, depth, height, width, depthSegments, heightSegments, 0); + buildPlane("z", "y", "x", 1, -1, depth, height, -width, depthSegments, heightSegments, 1); + buildPlane("x", "z", "y", 1, 1, width, depth, height, widthSegments, depthSegments, 2); + buildPlane("x", "z", "y", 1, -1, width, depth, -height, widthSegments, depthSegments, 3); + buildPlane("x", "y", "z", 1, -1, width, height, depth, widthSegments, heightSegments, 4); + buildPlane("x", "y", "z", -1, -1, width, height, -depth, widthSegments, heightSegments, 5); + this.setIndex(indices); + this.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + this.setAttribute("normal", new Float32BufferAttribute(normals, 3)); + this.setAttribute("uv", new Float32BufferAttribute(uvs, 2)); + function buildPlane(u, v, w, udir, vdir, width2, height2, depth2, gridX, gridY, materialIndex) { + const segmentWidth = width2 / gridX; + const segmentHeight = height2 / gridY; + const widthHalf = width2 / 2; + const heightHalf = height2 / 2; + const depthHalf = depth2 / 2; + const gridX1 = gridX + 1; + const gridY1 = gridY + 1; + let vertexCounter = 0; + let groupCount = 0; + const vector = new Vector3(); + for (let iy = 0; iy < gridY1; iy++) { + const y = iy * segmentHeight - heightHalf; + for (let ix = 0; ix < gridX1; ix++) { + const x = ix * segmentWidth - widthHalf; + vector[u] = x * udir; + vector[v] = y * vdir; + vector[w] = depthHalf; + vertices.push(vector.x, vector.y, vector.z); + vector[u] = 0; + vector[v] = 0; + vector[w] = depth2 > 0 ? 1 : -1; + normals.push(vector.x, vector.y, vector.z); + uvs.push(ix / gridX); + uvs.push(1 - iy / gridY); + vertexCounter += 1; + } + } + for (let iy = 0; iy < gridY; iy++) { + for (let ix = 0; ix < gridX; ix++) { + const a = numberOfVertices + ix + gridX1 * iy; + const b = numberOfVertices + ix + gridX1 * (iy + 1); + const c = numberOfVertices + (ix + 1) + gridX1 * (iy + 1); + const d = numberOfVertices + (ix + 1) + gridX1 * iy; + indices.push(a, b, d); + indices.push(b, c, d); + groupCount += 6; + } + } + scope.addGroup(groupStart, groupCount, materialIndex); + groupStart += groupCount; + numberOfVertices += vertexCounter; + } + __name(buildPlane, "buildPlane"); + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } + static fromJSON(data) { + return new BoxGeometry(data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments); + } +} +function cloneUniforms(src) { + const dst = {}; + for (const u in src) { + dst[u] = {}; + for (const p in src[u]) { + const property = src[u][p]; + if (property && (property.isColor || property.isMatrix3 || property.isMatrix4 || property.isVector2 || property.isVector3 || property.isVector4 || property.isTexture || property.isQuaternion)) { + if (property.isRenderTargetTexture) { + console.warn("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."); + dst[u][p] = null; + } else { + dst[u][p] = property.clone(); + } + } else if (Array.isArray(property)) { + dst[u][p] = property.slice(); + } else { + dst[u][p] = property; + } + } + } + return dst; +} +__name(cloneUniforms, "cloneUniforms"); +function mergeUniforms(uniforms) { + const merged = {}; + for (let u = 0; u < uniforms.length; u++) { + const tmp2 = cloneUniforms(uniforms[u]); + for (const p in tmp2) { + merged[p] = tmp2[p]; + } + } + return merged; +} +__name(mergeUniforms, "mergeUniforms"); +function cloneUniformsGroups(src) { + const dst = []; + for (let u = 0; u < src.length; u++) { + dst.push(src[u].clone()); + } + return dst; +} +__name(cloneUniformsGroups, "cloneUniformsGroups"); +function getUnlitUniformColorSpace(renderer) { + const currentRenderTarget = renderer.getRenderTarget(); + if (currentRenderTarget === null) { + return renderer.outputColorSpace; + } + if (currentRenderTarget.isXRRenderTarget === true) { + return currentRenderTarget.texture.colorSpace; + } + return ColorManagement.workingColorSpace; +} +__name(getUnlitUniformColorSpace, "getUnlitUniformColorSpace"); +const UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms }; +var default_vertex = "void main() {\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}"; +var default_fragment = "void main() {\n gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}"; +class ShaderMaterial extends Material { + static { + __name(this, "ShaderMaterial"); + } + static get type() { + return "ShaderMaterial"; + } + constructor(parameters) { + super(); + this.isShaderMaterial = true; + this.defines = {}; + this.uniforms = {}; + this.uniformsGroups = []; + this.vertexShader = default_vertex; + this.fragmentShader = default_fragment; + this.linewidth = 1; + this.wireframe = false; + this.wireframeLinewidth = 1; + this.fog = false; + this.lights = false; + this.clipping = false; + this.forceSinglePass = true; + this.extensions = { + clipCullDistance: false, + // set to use vertex shader clipping + multiDraw: false + // set to use vertex shader multi_draw / enable gl_DrawID + }; + this.defaultAttributeValues = { + "color": [1, 1, 1], + "uv": [0, 0], + "uv1": [0, 0] + }; + this.index0AttributeName = void 0; + this.uniformsNeedUpdate = false; + this.glslVersion = null; + if (parameters !== void 0) { + this.setValues(parameters); + } + } + copy(source) { + super.copy(source); + this.fragmentShader = source.fragmentShader; + this.vertexShader = source.vertexShader; + this.uniforms = cloneUniforms(source.uniforms); + this.uniformsGroups = cloneUniformsGroups(source.uniformsGroups); + this.defines = Object.assign({}, source.defines); + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + this.fog = source.fog; + this.lights = source.lights; + this.clipping = source.clipping; + this.extensions = Object.assign({}, source.extensions); + this.glslVersion = source.glslVersion; + return this; + } + toJSON(meta) { + const data = super.toJSON(meta); + data.glslVersion = this.glslVersion; + data.uniforms = {}; + for (const name in this.uniforms) { + const uniform = this.uniforms[name]; + const value = uniform.value; + if (value && value.isTexture) { + data.uniforms[name] = { + type: "t", + value: value.toJSON(meta).uuid + }; + } else if (value && value.isColor) { + data.uniforms[name] = { + type: "c", + value: value.getHex() + }; + } else if (value && value.isVector2) { + data.uniforms[name] = { + type: "v2", + value: value.toArray() + }; + } else if (value && value.isVector3) { + data.uniforms[name] = { + type: "v3", + value: value.toArray() + }; + } else if (value && value.isVector4) { + data.uniforms[name] = { + type: "v4", + value: value.toArray() + }; + } else if (value && value.isMatrix3) { + data.uniforms[name] = { + type: "m3", + value: value.toArray() + }; + } else if (value && value.isMatrix4) { + data.uniforms[name] = { + type: "m4", + value: value.toArray() + }; + } else { + data.uniforms[name] = { + value + }; + } + } + if (Object.keys(this.defines).length > 0) data.defines = this.defines; + data.vertexShader = this.vertexShader; + data.fragmentShader = this.fragmentShader; + data.lights = this.lights; + data.clipping = this.clipping; + const extensions = {}; + for (const key in this.extensions) { + if (this.extensions[key] === true) extensions[key] = true; + } + if (Object.keys(extensions).length > 0) data.extensions = extensions; + return data; + } +} +class Camera extends Object3D { + static { + __name(this, "Camera"); + } + constructor() { + super(); + this.isCamera = true; + this.type = "Camera"; + this.matrixWorldInverse = new Matrix4(); + this.projectionMatrix = new Matrix4(); + this.projectionMatrixInverse = new Matrix4(); + this.coordinateSystem = WebGLCoordinateSystem; + } + copy(source, recursive) { + super.copy(source, recursive); + this.matrixWorldInverse.copy(source.matrixWorldInverse); + this.projectionMatrix.copy(source.projectionMatrix); + this.projectionMatrixInverse.copy(source.projectionMatrixInverse); + this.coordinateSystem = source.coordinateSystem; + return this; + } + getWorldDirection(target) { + return super.getWorldDirection(target).negate(); + } + updateMatrixWorld(force) { + super.updateMatrixWorld(force); + this.matrixWorldInverse.copy(this.matrixWorld).invert(); + } + updateWorldMatrix(updateParents, updateChildren) { + super.updateWorldMatrix(updateParents, updateChildren); + this.matrixWorldInverse.copy(this.matrixWorld).invert(); + } + clone() { + return new this.constructor().copy(this); + } +} +const _v3$1 = /* @__PURE__ */ new Vector3(); +const _minTarget = /* @__PURE__ */ new Vector2(); +const _maxTarget = /* @__PURE__ */ new Vector2(); +class PerspectiveCamera extends Camera { + static { + __name(this, "PerspectiveCamera"); + } + constructor(fov2 = 50, aspect2 = 1, near = 0.1, far = 2e3) { + super(); + this.isPerspectiveCamera = true; + this.type = "PerspectiveCamera"; + this.fov = fov2; + this.zoom = 1; + this.near = near; + this.far = far; + this.focus = 10; + this.aspect = aspect2; + this.view = null; + this.filmGauge = 35; + this.filmOffset = 0; + this.updateProjectionMatrix(); + } + copy(source, recursive) { + super.copy(source, recursive); + this.fov = source.fov; + this.zoom = source.zoom; + this.near = source.near; + this.far = source.far; + this.focus = source.focus; + this.aspect = source.aspect; + this.view = source.view === null ? null : Object.assign({}, source.view); + this.filmGauge = source.filmGauge; + this.filmOffset = source.filmOffset; + return this; + } + /** + * Sets the FOV by focal length in respect to the current .filmGauge. + * + * The default film gauge is 35, so that the focal length can be specified for + * a 35mm (full frame) camera. + * + * Values for focal length and film gauge must have the same unit. + */ + setFocalLength(focalLength) { + const vExtentSlope = 0.5 * this.getFilmHeight() / focalLength; + this.fov = RAD2DEG * 2 * Math.atan(vExtentSlope); + this.updateProjectionMatrix(); + } + /** + * Calculates the focal length from the current .fov and .filmGauge. + */ + getFocalLength() { + const vExtentSlope = Math.tan(DEG2RAD * 0.5 * this.fov); + return 0.5 * this.getFilmHeight() / vExtentSlope; + } + getEffectiveFOV() { + return RAD2DEG * 2 * Math.atan( + Math.tan(DEG2RAD * 0.5 * this.fov) / this.zoom + ); + } + getFilmWidth() { + return this.filmGauge * Math.min(this.aspect, 1); + } + getFilmHeight() { + return this.filmGauge / Math.max(this.aspect, 1); + } + /** + * Computes the 2D bounds of the camera's viewable rectangle at a given distance along the viewing direction. + * Sets minTarget and maxTarget to the coordinates of the lower-left and upper-right corners of the view rectangle. + */ + getViewBounds(distance, minTarget, maxTarget) { + _v3$1.set(-1, -1, 0.5).applyMatrix4(this.projectionMatrixInverse); + minTarget.set(_v3$1.x, _v3$1.y).multiplyScalar(-distance / _v3$1.z); + _v3$1.set(1, 1, 0.5).applyMatrix4(this.projectionMatrixInverse); + maxTarget.set(_v3$1.x, _v3$1.y).multiplyScalar(-distance / _v3$1.z); + } + /** + * Computes the width and height of the camera's viewable rectangle at a given distance along the viewing direction. + * Copies the result into the target Vector2, where x is width and y is height. + */ + getViewSize(distance, target) { + this.getViewBounds(distance, _minTarget, _maxTarget); + return target.subVectors(_maxTarget, _minTarget); + } + /** + * Sets an offset in a larger frustum. This is useful for multi-window or + * multi-monitor/multi-machine setups. + * + * For example, if you have 3x2 monitors and each monitor is 1920x1080 and + * the monitors are in grid like this + * + * +---+---+---+ + * | A | B | C | + * +---+---+---+ + * | D | E | F | + * +---+---+---+ + * + * then for each monitor you would call it like this + * + * const w = 1920; + * const h = 1080; + * const fullWidth = w * 3; + * const fullHeight = h * 2; + * + * --A-- + * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h ); + * --B-- + * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h ); + * --C-- + * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h ); + * --D-- + * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h ); + * --E-- + * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h ); + * --F-- + * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h ); + * + * Note there is no reason monitors have to be the same size or in a grid. + */ + setViewOffset(fullWidth, fullHeight, x, y, width, height) { + this.aspect = fullWidth / fullHeight; + if (this.view === null) { + this.view = { + enabled: true, + fullWidth: 1, + fullHeight: 1, + offsetX: 0, + offsetY: 0, + width: 1, + height: 1 + }; + } + this.view.enabled = true; + this.view.fullWidth = fullWidth; + this.view.fullHeight = fullHeight; + this.view.offsetX = x; + this.view.offsetY = y; + this.view.width = width; + this.view.height = height; + this.updateProjectionMatrix(); + } + clearViewOffset() { + if (this.view !== null) { + this.view.enabled = false; + } + this.updateProjectionMatrix(); + } + updateProjectionMatrix() { + const near = this.near; + let top = near * Math.tan(DEG2RAD * 0.5 * this.fov) / this.zoom; + let height = 2 * top; + let width = this.aspect * height; + let left = -0.5 * width; + const view = this.view; + if (this.view !== null && this.view.enabled) { + const fullWidth = view.fullWidth, fullHeight = view.fullHeight; + left += view.offsetX * width / fullWidth; + top -= view.offsetY * height / fullHeight; + width *= view.width / fullWidth; + height *= view.height / fullHeight; + } + const skew = this.filmOffset; + if (skew !== 0) left += near * skew / this.getFilmWidth(); + this.projectionMatrix.makePerspective(left, left + width, top, top - height, near, this.far, this.coordinateSystem); + this.projectionMatrixInverse.copy(this.projectionMatrix).invert(); + } + toJSON(meta) { + const data = super.toJSON(meta); + data.object.fov = this.fov; + data.object.zoom = this.zoom; + data.object.near = this.near; + data.object.far = this.far; + data.object.focus = this.focus; + data.object.aspect = this.aspect; + if (this.view !== null) data.object.view = Object.assign({}, this.view); + data.object.filmGauge = this.filmGauge; + data.object.filmOffset = this.filmOffset; + return data; + } +} +const fov = -90; +const aspect = 1; +class CubeCamera extends Object3D { + static { + __name(this, "CubeCamera"); + } + constructor(near, far, renderTarget) { + super(); + this.type = "CubeCamera"; + this.renderTarget = renderTarget; + this.coordinateSystem = null; + this.activeMipmapLevel = 0; + const cameraPX = new PerspectiveCamera(fov, aspect, near, far); + cameraPX.layers = this.layers; + this.add(cameraPX); + const cameraNX = new PerspectiveCamera(fov, aspect, near, far); + cameraNX.layers = this.layers; + this.add(cameraNX); + const cameraPY = new PerspectiveCamera(fov, aspect, near, far); + cameraPY.layers = this.layers; + this.add(cameraPY); + const cameraNY = new PerspectiveCamera(fov, aspect, near, far); + cameraNY.layers = this.layers; + this.add(cameraNY); + const cameraPZ = new PerspectiveCamera(fov, aspect, near, far); + cameraPZ.layers = this.layers; + this.add(cameraPZ); + const cameraNZ = new PerspectiveCamera(fov, aspect, near, far); + cameraNZ.layers = this.layers; + this.add(cameraNZ); + } + updateCoordinateSystem() { + const coordinateSystem = this.coordinateSystem; + const cameras = this.children.concat(); + const [cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ] = cameras; + for (const camera of cameras) this.remove(camera); + if (coordinateSystem === WebGLCoordinateSystem) { + cameraPX.up.set(0, 1, 0); + cameraPX.lookAt(1, 0, 0); + cameraNX.up.set(0, 1, 0); + cameraNX.lookAt(-1, 0, 0); + cameraPY.up.set(0, 0, -1); + cameraPY.lookAt(0, 1, 0); + cameraNY.up.set(0, 0, 1); + cameraNY.lookAt(0, -1, 0); + cameraPZ.up.set(0, 1, 0); + cameraPZ.lookAt(0, 0, 1); + cameraNZ.up.set(0, 1, 0); + cameraNZ.lookAt(0, 0, -1); + } else if (coordinateSystem === WebGPUCoordinateSystem) { + cameraPX.up.set(0, -1, 0); + cameraPX.lookAt(-1, 0, 0); + cameraNX.up.set(0, -1, 0); + cameraNX.lookAt(1, 0, 0); + cameraPY.up.set(0, 0, 1); + cameraPY.lookAt(0, 1, 0); + cameraNY.up.set(0, 0, -1); + cameraNY.lookAt(0, -1, 0); + cameraPZ.up.set(0, -1, 0); + cameraPZ.lookAt(0, 0, 1); + cameraNZ.up.set(0, -1, 0); + cameraNZ.lookAt(0, 0, -1); + } else { + throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: " + coordinateSystem); + } + for (const camera of cameras) { + this.add(camera); + camera.updateMatrixWorld(); + } + } + update(renderer, scene) { + if (this.parent === null) this.updateMatrixWorld(); + const { renderTarget, activeMipmapLevel } = this; + if (this.coordinateSystem !== renderer.coordinateSystem) { + this.coordinateSystem = renderer.coordinateSystem; + this.updateCoordinateSystem(); + } + const [cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ] = this.children; + const currentRenderTarget = renderer.getRenderTarget(); + const currentActiveCubeFace = renderer.getActiveCubeFace(); + const currentActiveMipmapLevel = renderer.getActiveMipmapLevel(); + const currentXrEnabled = renderer.xr.enabled; + renderer.xr.enabled = false; + const generateMipmaps = renderTarget.texture.generateMipmaps; + renderTarget.texture.generateMipmaps = false; + renderer.setRenderTarget(renderTarget, 0, activeMipmapLevel); + renderer.render(scene, cameraPX); + renderer.setRenderTarget(renderTarget, 1, activeMipmapLevel); + renderer.render(scene, cameraNX); + renderer.setRenderTarget(renderTarget, 2, activeMipmapLevel); + renderer.render(scene, cameraPY); + renderer.setRenderTarget(renderTarget, 3, activeMipmapLevel); + renderer.render(scene, cameraNY); + renderer.setRenderTarget(renderTarget, 4, activeMipmapLevel); + renderer.render(scene, cameraPZ); + renderTarget.texture.generateMipmaps = generateMipmaps; + renderer.setRenderTarget(renderTarget, 5, activeMipmapLevel); + renderer.render(scene, cameraNZ); + renderer.setRenderTarget(currentRenderTarget, currentActiveCubeFace, currentActiveMipmapLevel); + renderer.xr.enabled = currentXrEnabled; + renderTarget.texture.needsPMREMUpdate = true; + } +} +class CubeTexture extends Texture { + static { + __name(this, "CubeTexture"); + } + constructor(images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace) { + images = images !== void 0 ? images : []; + mapping = mapping !== void 0 ? mapping : CubeReflectionMapping; + super(images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace); + this.isCubeTexture = true; + this.flipY = false; + } + get images() { + return this.image; + } + set images(value) { + this.image = value; + } +} +class WebGLCubeRenderTarget extends WebGLRenderTarget { + static { + __name(this, "WebGLCubeRenderTarget"); + } + constructor(size = 1, options = {}) { + super(size, size, options); + this.isWebGLCubeRenderTarget = true; + const image = { width: size, height: size, depth: 1 }; + const images = [image, image, image, image, image, image]; + this.texture = new CubeTexture(images, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace); + this.texture.isRenderTargetTexture = true; + this.texture.generateMipmaps = options.generateMipmaps !== void 0 ? options.generateMipmaps : false; + this.texture.minFilter = options.minFilter !== void 0 ? options.minFilter : LinearFilter; + } + fromEquirectangularTexture(renderer, texture) { + this.texture.type = texture.type; + this.texture.colorSpace = texture.colorSpace; + this.texture.generateMipmaps = texture.generateMipmaps; + this.texture.minFilter = texture.minFilter; + this.texture.magFilter = texture.magFilter; + const shader = { + uniforms: { + tEquirect: { value: null } + }, + vertexShader: ( + /* glsl */ + ` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + ` + ), + fragmentShader: ( + /* glsl */ + ` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + ` + ) + }; + const geometry = new BoxGeometry(5, 5, 5); + const material = new ShaderMaterial({ + name: "CubemapFromEquirect", + uniforms: cloneUniforms(shader.uniforms), + vertexShader: shader.vertexShader, + fragmentShader: shader.fragmentShader, + side: BackSide, + blending: NoBlending + }); + material.uniforms.tEquirect.value = texture; + const mesh = new Mesh(geometry, material); + const currentMinFilter = texture.minFilter; + if (texture.minFilter === LinearMipmapLinearFilter) texture.minFilter = LinearFilter; + const camera = new CubeCamera(1, 10, this); + camera.update(renderer, mesh); + texture.minFilter = currentMinFilter; + mesh.geometry.dispose(); + mesh.material.dispose(); + return this; + } + clear(renderer, color, depth, stencil) { + const currentRenderTarget = renderer.getRenderTarget(); + for (let i = 0; i < 6; i++) { + renderer.setRenderTarget(this, i); + renderer.clear(color, depth, stencil); + } + renderer.setRenderTarget(currentRenderTarget); + } +} +const _vector1 = /* @__PURE__ */ new Vector3(); +const _vector2 = /* @__PURE__ */ new Vector3(); +const _normalMatrix = /* @__PURE__ */ new Matrix3(); +class Plane { + static { + __name(this, "Plane"); + } + constructor(normal = new Vector3(1, 0, 0), constant = 0) { + this.isPlane = true; + this.normal = normal; + this.constant = constant; + } + set(normal, constant) { + this.normal.copy(normal); + this.constant = constant; + return this; + } + setComponents(x, y, z, w) { + this.normal.set(x, y, z); + this.constant = w; + return this; + } + setFromNormalAndCoplanarPoint(normal, point) { + this.normal.copy(normal); + this.constant = -point.dot(this.normal); + return this; + } + setFromCoplanarPoints(a, b, c) { + const normal = _vector1.subVectors(c, b).cross(_vector2.subVectors(a, b)).normalize(); + this.setFromNormalAndCoplanarPoint(normal, a); + return this; + } + copy(plane) { + this.normal.copy(plane.normal); + this.constant = plane.constant; + return this; + } + normalize() { + const inverseNormalLength = 1 / this.normal.length(); + this.normal.multiplyScalar(inverseNormalLength); + this.constant *= inverseNormalLength; + return this; + } + negate() { + this.constant *= -1; + this.normal.negate(); + return this; + } + distanceToPoint(point) { + return this.normal.dot(point) + this.constant; + } + distanceToSphere(sphere) { + return this.distanceToPoint(sphere.center) - sphere.radius; + } + projectPoint(point, target) { + return target.copy(point).addScaledVector(this.normal, -this.distanceToPoint(point)); + } + intersectLine(line, target) { + const direction = line.delta(_vector1); + const denominator = this.normal.dot(direction); + if (denominator === 0) { + if (this.distanceToPoint(line.start) === 0) { + return target.copy(line.start); + } + return null; + } + const t2 = -(line.start.dot(this.normal) + this.constant) / denominator; + if (t2 < 0 || t2 > 1) { + return null; + } + return target.copy(line.start).addScaledVector(direction, t2); + } + intersectsLine(line) { + const startSign = this.distanceToPoint(line.start); + const endSign = this.distanceToPoint(line.end); + return startSign < 0 && endSign > 0 || endSign < 0 && startSign > 0; + } + intersectsBox(box) { + return box.intersectsPlane(this); + } + intersectsSphere(sphere) { + return sphere.intersectsPlane(this); + } + coplanarPoint(target) { + return target.copy(this.normal).multiplyScalar(-this.constant); + } + applyMatrix4(matrix, optionalNormalMatrix) { + const normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix(matrix); + const referencePoint = this.coplanarPoint(_vector1).applyMatrix4(matrix); + const normal = this.normal.applyMatrix3(normalMatrix).normalize(); + this.constant = -referencePoint.dot(normal); + return this; + } + translate(offset) { + this.constant -= offset.dot(this.normal); + return this; + } + equals(plane) { + return plane.normal.equals(this.normal) && plane.constant === this.constant; + } + clone() { + return new this.constructor().copy(this); + } +} +const _sphere$5 = /* @__PURE__ */ new Sphere(); +const _vector$7 = /* @__PURE__ */ new Vector3(); +class Frustum { + static { + __name(this, "Frustum"); + } + constructor(p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane()) { + this.planes = [p0, p1, p2, p3, p4, p5]; + } + set(p0, p1, p2, p3, p4, p5) { + const planes = this.planes; + planes[0].copy(p0); + planes[1].copy(p1); + planes[2].copy(p2); + planes[3].copy(p3); + planes[4].copy(p4); + planes[5].copy(p5); + return this; + } + copy(frustum) { + const planes = this.planes; + for (let i = 0; i < 6; i++) { + planes[i].copy(frustum.planes[i]); + } + return this; + } + setFromProjectionMatrix(m, coordinateSystem = WebGLCoordinateSystem) { + const planes = this.planes; + const me = m.elements; + const me0 = me[0], me1 = me[1], me2 = me[2], me3 = me[3]; + const me4 = me[4], me5 = me[5], me6 = me[6], me7 = me[7]; + const me8 = me[8], me9 = me[9], me10 = me[10], me11 = me[11]; + const me12 = me[12], me13 = me[13], me14 = me[14], me15 = me[15]; + planes[0].setComponents(me3 - me0, me7 - me4, me11 - me8, me15 - me12).normalize(); + planes[1].setComponents(me3 + me0, me7 + me4, me11 + me8, me15 + me12).normalize(); + planes[2].setComponents(me3 + me1, me7 + me5, me11 + me9, me15 + me13).normalize(); + planes[3].setComponents(me3 - me1, me7 - me5, me11 - me9, me15 - me13).normalize(); + planes[4].setComponents(me3 - me2, me7 - me6, me11 - me10, me15 - me14).normalize(); + if (coordinateSystem === WebGLCoordinateSystem) { + planes[5].setComponents(me3 + me2, me7 + me6, me11 + me10, me15 + me14).normalize(); + } else if (coordinateSystem === WebGPUCoordinateSystem) { + planes[5].setComponents(me2, me6, me10, me14).normalize(); + } else { + throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: " + coordinateSystem); + } + return this; + } + intersectsObject(object) { + if (object.boundingSphere !== void 0) { + if (object.boundingSphere === null) object.computeBoundingSphere(); + _sphere$5.copy(object.boundingSphere).applyMatrix4(object.matrixWorld); + } else { + const geometry = object.geometry; + if (geometry.boundingSphere === null) geometry.computeBoundingSphere(); + _sphere$5.copy(geometry.boundingSphere).applyMatrix4(object.matrixWorld); + } + return this.intersectsSphere(_sphere$5); + } + intersectsSprite(sprite) { + _sphere$5.center.set(0, 0, 0); + _sphere$5.radius = 0.7071067811865476; + _sphere$5.applyMatrix4(sprite.matrixWorld); + return this.intersectsSphere(_sphere$5); + } + intersectsSphere(sphere) { + const planes = this.planes; + const center = sphere.center; + const negRadius = -sphere.radius; + for (let i = 0; i < 6; i++) { + const distance = planes[i].distanceToPoint(center); + if (distance < negRadius) { + return false; + } + } + return true; + } + intersectsBox(box) { + const planes = this.planes; + for (let i = 0; i < 6; i++) { + const plane = planes[i]; + _vector$7.x = plane.normal.x > 0 ? box.max.x : box.min.x; + _vector$7.y = plane.normal.y > 0 ? box.max.y : box.min.y; + _vector$7.z = plane.normal.z > 0 ? box.max.z : box.min.z; + if (plane.distanceToPoint(_vector$7) < 0) { + return false; + } + } + return true; + } + containsPoint(point) { + const planes = this.planes; + for (let i = 0; i < 6; i++) { + if (planes[i].distanceToPoint(point) < 0) { + return false; + } + } + return true; + } + clone() { + return new this.constructor().copy(this); + } +} +function WebGLAnimation() { + let context = null; + let isAnimating = false; + let animationLoop = null; + let requestId = null; + function onAnimationFrame(time, frame) { + animationLoop(time, frame); + requestId = context.requestAnimationFrame(onAnimationFrame); + } + __name(onAnimationFrame, "onAnimationFrame"); + return { + start: /* @__PURE__ */ __name(function() { + if (isAnimating === true) return; + if (animationLoop === null) return; + requestId = context.requestAnimationFrame(onAnimationFrame); + isAnimating = true; + }, "start"), + stop: /* @__PURE__ */ __name(function() { + context.cancelAnimationFrame(requestId); + isAnimating = false; + }, "stop"), + setAnimationLoop: /* @__PURE__ */ __name(function(callback) { + animationLoop = callback; + }, "setAnimationLoop"), + setContext: /* @__PURE__ */ __name(function(value) { + context = value; + }, "setContext") + }; +} +__name(WebGLAnimation, "WebGLAnimation"); +function WebGLAttributes(gl) { + const buffers = /* @__PURE__ */ new WeakMap(); + function createBuffer(attribute, bufferType) { + const array = attribute.array; + const usage = attribute.usage; + const size = array.byteLength; + const buffer = gl.createBuffer(); + gl.bindBuffer(bufferType, buffer); + gl.bufferData(bufferType, array, usage); + attribute.onUploadCallback(); + let type; + if (array instanceof Float32Array) { + type = gl.FLOAT; + } else if (array instanceof Uint16Array) { + if (attribute.isFloat16BufferAttribute) { + type = gl.HALF_FLOAT; + } else { + type = gl.UNSIGNED_SHORT; + } + } else if (array instanceof Int16Array) { + type = gl.SHORT; + } else if (array instanceof Uint32Array) { + type = gl.UNSIGNED_INT; + } else if (array instanceof Int32Array) { + type = gl.INT; + } else if (array instanceof Int8Array) { + type = gl.BYTE; + } else if (array instanceof Uint8Array) { + type = gl.UNSIGNED_BYTE; + } else if (array instanceof Uint8ClampedArray) { + type = gl.UNSIGNED_BYTE; + } else { + throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: " + array); + } + return { + buffer, + type, + bytesPerElement: array.BYTES_PER_ELEMENT, + version: attribute.version, + size + }; + } + __name(createBuffer, "createBuffer"); + function updateBuffer(buffer, attribute, bufferType) { + const array = attribute.array; + const updateRanges = attribute.updateRanges; + gl.bindBuffer(bufferType, buffer); + if (updateRanges.length === 0) { + gl.bufferSubData(bufferType, 0, array); + } else { + updateRanges.sort((a, b) => a.start - b.start); + let mergeIndex = 0; + for (let i = 1; i < updateRanges.length; i++) { + const previousRange = updateRanges[mergeIndex]; + const range = updateRanges[i]; + if (range.start <= previousRange.start + previousRange.count + 1) { + previousRange.count = Math.max( + previousRange.count, + range.start + range.count - previousRange.start + ); + } else { + ++mergeIndex; + updateRanges[mergeIndex] = range; + } + } + updateRanges.length = mergeIndex + 1; + for (let i = 0, l = updateRanges.length; i < l; i++) { + const range = updateRanges[i]; + gl.bufferSubData( + bufferType, + range.start * array.BYTES_PER_ELEMENT, + array, + range.start, + range.count + ); + } + attribute.clearUpdateRanges(); + } + attribute.onUploadCallback(); + } + __name(updateBuffer, "updateBuffer"); + function get(attribute) { + if (attribute.isInterleavedBufferAttribute) attribute = attribute.data; + return buffers.get(attribute); + } + __name(get, "get"); + function remove(attribute) { + if (attribute.isInterleavedBufferAttribute) attribute = attribute.data; + const data = buffers.get(attribute); + if (data) { + gl.deleteBuffer(data.buffer); + buffers.delete(attribute); + } + } + __name(remove, "remove"); + function update(attribute, bufferType) { + if (attribute.isInterleavedBufferAttribute) attribute = attribute.data; + if (attribute.isGLBufferAttribute) { + const cached = buffers.get(attribute); + if (!cached || cached.version < attribute.version) { + buffers.set(attribute, { + buffer: attribute.buffer, + type: attribute.type, + bytesPerElement: attribute.elementSize, + version: attribute.version + }); + } + return; + } + const data = buffers.get(attribute); + if (data === void 0) { + buffers.set(attribute, createBuffer(attribute, bufferType)); + } else if (data.version < attribute.version) { + if (data.size !== attribute.array.byteLength) { + throw new Error("THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported."); + } + updateBuffer(data.buffer, attribute, bufferType); + data.version = attribute.version; + } + } + __name(update, "update"); + return { + get, + remove, + update + }; +} +__name(WebGLAttributes, "WebGLAttributes"); +class PlaneGeometry extends BufferGeometry { + static { + __name(this, "PlaneGeometry"); + } + constructor(width = 1, height = 1, widthSegments = 1, heightSegments = 1) { + super(); + this.type = "PlaneGeometry"; + this.parameters = { + width, + height, + widthSegments, + heightSegments + }; + const width_half = width / 2; + const height_half = height / 2; + const gridX = Math.floor(widthSegments); + const gridY = Math.floor(heightSegments); + const gridX1 = gridX + 1; + const gridY1 = gridY + 1; + const segment_width = width / gridX; + const segment_height = height / gridY; + const indices = []; + const vertices = []; + const normals = []; + const uvs = []; + for (let iy = 0; iy < gridY1; iy++) { + const y = iy * segment_height - height_half; + for (let ix = 0; ix < gridX1; ix++) { + const x = ix * segment_width - width_half; + vertices.push(x, -y, 0); + normals.push(0, 0, 1); + uvs.push(ix / gridX); + uvs.push(1 - iy / gridY); + } + } + for (let iy = 0; iy < gridY; iy++) { + for (let ix = 0; ix < gridX; ix++) { + const a = ix + gridX1 * iy; + const b = ix + gridX1 * (iy + 1); + const c = ix + 1 + gridX1 * (iy + 1); + const d = ix + 1 + gridX1 * iy; + indices.push(a, b, d); + indices.push(b, c, d); + } + } + this.setIndex(indices); + this.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + this.setAttribute("normal", new Float32BufferAttribute(normals, 3)); + this.setAttribute("uv", new Float32BufferAttribute(uvs, 2)); + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } + static fromJSON(data) { + return new PlaneGeometry(data.width, data.height, data.widthSegments, data.heightSegments); + } +} +var alphahash_fragment = "#ifdef USE_ALPHAHASH\n if ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\n#endif"; +var alphahash_pars_fragment = "#ifdef USE_ALPHAHASH\n const float ALPHA_HASH_SCALE = 0.05;\n float hash2D( vec2 value ) {\n return fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\n }\n float hash3D( vec3 value ) {\n return hash2D( vec2( hash2D( value.xy ), value.z ) );\n }\n float getAlphaHashThreshold( vec3 position ) {\n float maxDeriv = max(\n length( dFdx( position.xyz ) ),\n length( dFdy( position.xyz ) )\n );\n float pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\n vec2 pixScales = vec2(\n exp2( floor( log2( pixScale ) ) ),\n exp2( ceil( log2( pixScale ) ) )\n );\n vec2 alpha = vec2(\n hash3D( floor( pixScales.x * position.xyz ) ),\n hash3D( floor( pixScales.y * position.xyz ) )\n );\n float lerpFactor = fract( log2( pixScale ) );\n float x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\n float a = min( lerpFactor, 1.0 - lerpFactor );\n vec3 cases = vec3(\n x * x / ( 2.0 * a * ( 1.0 - a ) ),\n ( x - 0.5 * a ) / ( 1.0 - a ),\n 1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\n );\n float threshold = ( x < ( 1.0 - a ) )\n ? ( ( x < a ) ? cases.x : cases.y )\n : cases.z;\n return clamp( threshold , 1.0e-6, 1.0 );\n }\n#endif"; +var alphamap_fragment = "#ifdef USE_ALPHAMAP\n diffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\n#endif"; +var alphamap_pars_fragment = "#ifdef USE_ALPHAMAP\n uniform sampler2D alphaMap;\n#endif"; +var alphatest_fragment = "#ifdef USE_ALPHATEST\n #ifdef ALPHA_TO_COVERAGE\n diffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\n if ( diffuseColor.a == 0.0 ) discard;\n #else\n if ( diffuseColor.a < alphaTest ) discard;\n #endif\n#endif"; +var alphatest_pars_fragment = "#ifdef USE_ALPHATEST\n uniform float alphaTest;\n#endif"; +var aomap_fragment = "#ifdef USE_AOMAP\n float ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\n reflectedLight.indirectDiffuse *= ambientOcclusion;\n #if defined( USE_CLEARCOAT ) \n clearcoatSpecularIndirect *= ambientOcclusion;\n #endif\n #if defined( USE_SHEEN ) \n sheenSpecularIndirect *= ambientOcclusion;\n #endif\n #if defined( USE_ENVMAP ) && defined( STANDARD )\n float dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\n reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n #endif\n#endif"; +var aomap_pars_fragment = "#ifdef USE_AOMAP\n uniform sampler2D aoMap;\n uniform float aoMapIntensity;\n#endif"; +var batching_pars_vertex = "#ifdef USE_BATCHING\n #if ! defined( GL_ANGLE_multi_draw )\n #define gl_DrawID _gl_DrawID\n uniform int _gl_DrawID;\n #endif\n uniform highp sampler2D batchingTexture;\n uniform highp usampler2D batchingIdTexture;\n mat4 getBatchingMatrix( const in float i ) {\n int size = textureSize( batchingTexture, 0 ).x;\n int j = int( i ) * 4;\n int x = j % size;\n int y = j / size;\n vec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\n vec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\n vec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\n vec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\n return mat4( v1, v2, v3, v4 );\n }\n float getIndirectIndex( const in int i ) {\n int size = textureSize( batchingIdTexture, 0 ).x;\n int x = i % size;\n int y = i / size;\n return float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\n }\n#endif\n#ifdef USE_BATCHING_COLOR\n uniform sampler2D batchingColorTexture;\n vec3 getBatchingColor( const in float i ) {\n int size = textureSize( batchingColorTexture, 0 ).x;\n int j = int( i );\n int x = j % size;\n int y = j / size;\n return texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\n }\n#endif"; +var batching_vertex = "#ifdef USE_BATCHING\n mat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\n#endif"; +var begin_vertex = "vec3 transformed = vec3( position );\n#ifdef USE_ALPHAHASH\n vPosition = vec3( position );\n#endif"; +var beginnormal_vertex = "vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n vec3 objectTangent = vec3( tangent.xyz );\n#endif"; +var bsdfs = "float G_BlinnPhong_Implicit( ) {\n return 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNH = saturate( dot( normal, halfDir ) );\n float dotVH = saturate( dot( viewDir, halfDir ) );\n vec3 F = F_Schlick( specularColor, 1.0, dotVH );\n float G = G_BlinnPhong_Implicit( );\n float D = D_BlinnPhong( shininess, dotNH );\n return F * ( G * D );\n} // validated"; +var iridescence_fragment = "#ifdef USE_IRIDESCENCE\n const mat3 XYZ_TO_REC709 = mat3(\n 3.2404542, -0.9692660, 0.0556434,\n -1.5371385, 1.8760108, -0.2040259,\n -0.4985314, 0.0415560, 1.0572252\n );\n vec3 Fresnel0ToIor( vec3 fresnel0 ) {\n vec3 sqrtF0 = sqrt( fresnel0 );\n return ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n }\n vec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n return pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n }\n float IorToFresnel0( float transmittedIor, float incidentIor ) {\n return pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n }\n vec3 evalSensitivity( float OPD, vec3 shift ) {\n float phase = 2.0 * PI * OPD * 1.0e-9;\n vec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n vec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n vec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n vec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n xyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n xyz /= 1.0685e-7;\n vec3 rgb = XYZ_TO_REC709 * xyz;\n return rgb;\n }\n vec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n vec3 I;\n float iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n float sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n float cosTheta2Sq = 1.0 - sinTheta2Sq;\n if ( cosTheta2Sq < 0.0 ) {\n return vec3( 1.0 );\n }\n float cosTheta2 = sqrt( cosTheta2Sq );\n float R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n float R12 = F_Schlick( R0, 1.0, cosTheta1 );\n float T121 = 1.0 - R12;\n float phi12 = 0.0;\n if ( iridescenceIOR < outsideIOR ) phi12 = PI;\n float phi21 = PI - phi12;\n vec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) ); vec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n vec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n vec3 phi23 = vec3( 0.0 );\n if ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n if ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n if ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n float OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n vec3 phi = vec3( phi21 ) + phi23;\n vec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n vec3 r123 = sqrt( R123 );\n vec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n vec3 C0 = R12 + Rs;\n I = C0;\n vec3 Cm = Rs - T121;\n for ( int m = 1; m <= 2; ++ m ) {\n Cm *= r123;\n vec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n I += Cm * Sm;\n }\n return max( I, vec3( 0.0 ) );\n }\n#endif"; +var bumpmap_pars_fragment = "#ifdef USE_BUMPMAP\n uniform sampler2D bumpMap;\n uniform float bumpScale;\n vec2 dHdxy_fwd() {\n vec2 dSTdx = dFdx( vBumpMapUv );\n vec2 dSTdy = dFdy( vBumpMapUv );\n float Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n float dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n float dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n return vec2( dBx, dBy );\n }\n vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n vec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\n vec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\n vec3 vN = surf_norm;\n vec3 R1 = cross( vSigmaY, vN );\n vec3 R2 = cross( vN, vSigmaX );\n float fDet = dot( vSigmaX, R1 ) * faceDirection;\n vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n return normalize( abs( fDet ) * surf_norm - vGrad );\n }\n#endif"; +var clipping_planes_fragment = "#if NUM_CLIPPING_PLANES > 0\n vec4 plane;\n #ifdef ALPHA_TO_COVERAGE\n float distanceToPlane, distanceGradient;\n float clipOpacity = 1.0;\n #pragma unroll_loop_start\n for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n distanceGradient = fwidth( distanceToPlane ) / 2.0;\n clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n if ( clipOpacity == 0.0 ) discard;\n }\n #pragma unroll_loop_end\n #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n float unionClipOpacity = 1.0;\n #pragma unroll_loop_start\n for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\n distanceGradient = fwidth( distanceToPlane ) / 2.0;\n unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\n }\n #pragma unroll_loop_end\n clipOpacity *= 1.0 - unionClipOpacity;\n #endif\n diffuseColor.a *= clipOpacity;\n if ( diffuseColor.a == 0.0 ) discard;\n #else\n #pragma unroll_loop_start\n for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n }\n #pragma unroll_loop_end\n #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n bool clipped = true;\n #pragma unroll_loop_start\n for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n plane = clippingPlanes[ i ];\n clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n }\n #pragma unroll_loop_end\n if ( clipped ) discard;\n #endif\n #endif\n#endif"; +var clipping_planes_pars_fragment = "#if NUM_CLIPPING_PLANES > 0\n varying vec3 vClipPosition;\n uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif"; +var clipping_planes_pars_vertex = "#if NUM_CLIPPING_PLANES > 0\n varying vec3 vClipPosition;\n#endif"; +var clipping_planes_vertex = "#if NUM_CLIPPING_PLANES > 0\n vClipPosition = - mvPosition.xyz;\n#endif"; +var color_fragment = "#if defined( USE_COLOR_ALPHA )\n diffuseColor *= vColor;\n#elif defined( USE_COLOR )\n diffuseColor.rgb *= vColor;\n#endif"; +var color_pars_fragment = "#if defined( USE_COLOR_ALPHA )\n varying vec4 vColor;\n#elif defined( USE_COLOR )\n varying vec3 vColor;\n#endif"; +var color_pars_vertex = "#if defined( USE_COLOR_ALPHA )\n varying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n varying vec3 vColor;\n#endif"; +var color_vertex = "#if defined( USE_COLOR_ALPHA )\n vColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\n vColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n vColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n vColor.xyz *= instanceColor.xyz;\n#endif\n#ifdef USE_BATCHING_COLOR\n vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\n vColor.xyz *= batchingColor.xyz;\n#endif"; +var common = "#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n const highp float a = 12.9898, b = 78.233, c = 43758.5453;\n highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n return fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n float precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n float precisionSafeLength( vec3 v ) {\n float maxComponent = max3( abs( v ) );\n return length( v / maxComponent ) * maxComponent;\n }\n#endif\nstruct IncidentLight {\n vec3 color;\n vec3 direction;\n bool visible;\n};\nstruct ReflectedLight {\n vec3 directDiffuse;\n vec3 directSpecular;\n vec3 indirectDiffuse;\n vec3 indirectSpecular;\n};\n#ifdef USE_ALPHAHASH\n varying vec3 vPosition;\n#endif\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n mat3 tmp;\n tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n return tmp;\n}\nbool isPerspectiveMatrix( mat4 m ) {\n return m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n return vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n return RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated"; +var cube_uv_reflection_fragment = "#ifdef ENVMAP_TYPE_CUBE_UV\n #define cubeUV_minMipLevel 4.0\n #define cubeUV_minTileSize 16.0\n float getFace( vec3 direction ) {\n vec3 absDirection = abs( direction );\n float face = - 1.0;\n if ( absDirection.x > absDirection.z ) {\n if ( absDirection.x > absDirection.y )\n face = direction.x > 0.0 ? 0.0 : 3.0;\n else\n face = direction.y > 0.0 ? 1.0 : 4.0;\n } else {\n if ( absDirection.z > absDirection.y )\n face = direction.z > 0.0 ? 2.0 : 5.0;\n else\n face = direction.y > 0.0 ? 1.0 : 4.0;\n }\n return face;\n }\n vec2 getUV( vec3 direction, float face ) {\n vec2 uv;\n if ( face == 0.0 ) {\n uv = vec2( direction.z, direction.y ) / abs( direction.x );\n } else if ( face == 1.0 ) {\n uv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n } else if ( face == 2.0 ) {\n uv = vec2( - direction.x, direction.y ) / abs( direction.z );\n } else if ( face == 3.0 ) {\n uv = vec2( - direction.z, direction.y ) / abs( direction.x );\n } else if ( face == 4.0 ) {\n uv = vec2( - direction.x, direction.z ) / abs( direction.y );\n } else {\n uv = vec2( direction.x, direction.y ) / abs( direction.z );\n }\n return 0.5 * ( uv + 1.0 );\n }\n vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n float face = getFace( direction );\n float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n mipInt = max( mipInt, cubeUV_minMipLevel );\n float faceSize = exp2( mipInt );\n highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n if ( face > 2.0 ) {\n uv.y += faceSize;\n face -= 3.0;\n }\n uv.x += face * faceSize;\n uv.x += filterInt * 3.0 * cubeUV_minTileSize;\n uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n uv.x *= CUBEUV_TEXEL_WIDTH;\n uv.y *= CUBEUV_TEXEL_HEIGHT;\n #ifdef texture2DGradEXT\n return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n #else\n return texture2D( envMap, uv ).rgb;\n #endif\n }\n #define cubeUV_r0 1.0\n #define cubeUV_m0 - 2.0\n #define cubeUV_r1 0.8\n #define cubeUV_m1 - 1.0\n #define cubeUV_r4 0.4\n #define cubeUV_m4 2.0\n #define cubeUV_r5 0.305\n #define cubeUV_m5 3.0\n #define cubeUV_r6 0.21\n #define cubeUV_m6 4.0\n float roughnessToMip( float roughness ) {\n float mip = 0.0;\n if ( roughness >= cubeUV_r1 ) {\n mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n } else if ( roughness >= cubeUV_r4 ) {\n mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n } else if ( roughness >= cubeUV_r5 ) {\n mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n } else if ( roughness >= cubeUV_r6 ) {\n mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n } else {\n mip = - 2.0 * log2( 1.16 * roughness ); }\n return mip;\n }\n vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n float mipF = fract( mip );\n float mipInt = floor( mip );\n vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n if ( mipF == 0.0 ) {\n return vec4( color0, 1.0 );\n } else {\n vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n return vec4( mix( color0, color1, mipF ), 1.0 );\n }\n }\n#endif"; +var defaultnormal_vertex = "vec3 transformedNormal = objectNormal;\n#ifdef USE_TANGENT\n vec3 transformedTangent = objectTangent;\n#endif\n#ifdef USE_BATCHING\n mat3 bm = mat3( batchingMatrix );\n transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\n transformedNormal = bm * transformedNormal;\n #ifdef USE_TANGENT\n transformedTangent = bm * transformedTangent;\n #endif\n#endif\n#ifdef USE_INSTANCING\n mat3 im = mat3( instanceMatrix );\n transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\n transformedNormal = im * transformedNormal;\n #ifdef USE_TANGENT\n transformedTangent = im * transformedTangent;\n #endif\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n transformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\n #ifdef FLIP_SIDED\n transformedTangent = - transformedTangent;\n #endif\n#endif"; +var displacementmap_pars_vertex = "#ifdef USE_DISPLACEMENTMAP\n uniform sampler2D displacementMap;\n uniform float displacementScale;\n uniform float displacementBias;\n#endif"; +var displacementmap_vertex = "#ifdef USE_DISPLACEMENTMAP\n transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif"; +var emissivemap_fragment = "#ifdef USE_EMISSIVEMAP\n vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE\n emissiveColor = sRGBTransferEOTF( emissiveColor );\n #endif\n totalEmissiveRadiance *= emissiveColor.rgb;\n#endif"; +var emissivemap_pars_fragment = "#ifdef USE_EMISSIVEMAP\n uniform sampler2D emissiveMap;\n#endif"; +var colorspace_fragment = "gl_FragColor = linearToOutputTexel( gl_FragColor );"; +var colorspace_pars_fragment = "vec4 LinearTransferOETF( in vec4 value ) {\n return value;\n}\nvec4 sRGBTransferEOTF( in vec4 value ) {\n return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\n}\nvec4 sRGBTransferOETF( in vec4 value ) {\n return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}"; +var envmap_fragment = "#ifdef USE_ENVMAP\n #ifdef ENV_WORLDPOS\n vec3 cameraToFrag;\n if ( isOrthographic ) {\n cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n } else {\n cameraToFrag = normalize( vWorldPosition - cameraPosition );\n }\n vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n #ifdef ENVMAP_MODE_REFLECTION\n vec3 reflectVec = reflect( cameraToFrag, worldNormal );\n #else\n vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n #endif\n #else\n vec3 reflectVec = vReflect;\n #endif\n #ifdef ENVMAP_TYPE_CUBE\n vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n #else\n vec4 envColor = vec4( 0.0 );\n #endif\n #ifdef ENVMAP_BLENDING_MULTIPLY\n outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n #elif defined( ENVMAP_BLENDING_MIX )\n outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n #elif defined( ENVMAP_BLENDING_ADD )\n outgoingLight += envColor.xyz * specularStrength * reflectivity;\n #endif\n#endif"; +var envmap_common_pars_fragment = "#ifdef USE_ENVMAP\n uniform float envMapIntensity;\n uniform float flipEnvMap;\n uniform mat3 envMapRotation;\n #ifdef ENVMAP_TYPE_CUBE\n uniform samplerCube envMap;\n #else\n uniform sampler2D envMap;\n #endif\n \n#endif"; +var envmap_pars_fragment = "#ifdef USE_ENVMAP\n uniform float reflectivity;\n #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n #define ENV_WORLDPOS\n #endif\n #ifdef ENV_WORLDPOS\n varying vec3 vWorldPosition;\n uniform float refractionRatio;\n #else\n varying vec3 vReflect;\n #endif\n#endif"; +var envmap_pars_vertex = "#ifdef USE_ENVMAP\n #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n #define ENV_WORLDPOS\n #endif\n #ifdef ENV_WORLDPOS\n \n varying vec3 vWorldPosition;\n #else\n varying vec3 vReflect;\n uniform float refractionRatio;\n #endif\n#endif"; +var envmap_vertex = "#ifdef USE_ENVMAP\n #ifdef ENV_WORLDPOS\n vWorldPosition = worldPosition.xyz;\n #else\n vec3 cameraToVertex;\n if ( isOrthographic ) {\n cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n } else {\n cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n }\n vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n #ifdef ENVMAP_MODE_REFLECTION\n vReflect = reflect( cameraToVertex, worldNormal );\n #else\n vReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n #endif\n #endif\n#endif"; +var fog_vertex = "#ifdef USE_FOG\n vFogDepth = - mvPosition.z;\n#endif"; +var fog_pars_vertex = "#ifdef USE_FOG\n varying float vFogDepth;\n#endif"; +var fog_fragment = "#ifdef USE_FOG\n #ifdef FOG_EXP2\n float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n #else\n float fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n #endif\n gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif"; +var fog_pars_fragment = "#ifdef USE_FOG\n uniform vec3 fogColor;\n varying float vFogDepth;\n #ifdef FOG_EXP2\n uniform float fogDensity;\n #else\n uniform float fogNear;\n uniform float fogFar;\n #endif\n#endif"; +var gradientmap_pars_fragment = "#ifdef USE_GRADIENTMAP\n uniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n float dotNL = dot( normal, lightDirection );\n vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n #ifdef USE_GRADIENTMAP\n return vec3( texture2D( gradientMap, coord ).r );\n #else\n vec2 fw = fwidth( coord ) * 0.5;\n return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n #endif\n}"; +var lightmap_pars_fragment = "#ifdef USE_LIGHTMAP\n uniform sampler2D lightMap;\n uniform float lightMapIntensity;\n#endif"; +var lights_lambert_fragment = "LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;"; +var lights_lambert_pars_fragment = "varying vec3 vViewPosition;\nstruct LambertMaterial {\n vec3 diffuseColor;\n float specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n float dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n vec3 irradiance = dotNL * directLight.color;\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct RE_Direct_Lambert\n#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert"; +var lights_pars_begin = "uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\n#if defined( USE_LIGHT_PROBES )\n uniform vec3 lightProbe[ 9 ];\n#endif\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n float x = normal.x, y = normal.y, z = normal.z;\n vec3 result = shCoefficients[ 0 ] * 0.886227;\n result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n return result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n return irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n vec3 irradiance = ambientLightColor;\n return irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n if ( cutoffDistance > 0.0 ) {\n distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n }\n return distanceFalloff;\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n return smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n struct DirectionalLight {\n vec3 direction;\n vec3 color;\n };\n uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\n light.color = directionalLight.color;\n light.direction = directionalLight.direction;\n light.visible = true;\n }\n#endif\n#if NUM_POINT_LIGHTS > 0\n struct PointLight {\n vec3 position;\n vec3 color;\n float distance;\n float decay;\n };\n uniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\n vec3 lVector = pointLight.position - geometryPosition;\n light.direction = normalize( lVector );\n float lightDistance = length( lVector );\n light.color = pointLight.color;\n light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n light.visible = ( light.color != vec3( 0.0 ) );\n }\n#endif\n#if NUM_SPOT_LIGHTS > 0\n struct SpotLight {\n vec3 position;\n vec3 direction;\n vec3 color;\n float distance;\n float decay;\n float coneCos;\n float penumbraCos;\n };\n uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\n vec3 lVector = spotLight.position - geometryPosition;\n light.direction = normalize( lVector );\n float angleCos = dot( light.direction, spotLight.direction );\n float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n if ( spotAttenuation > 0.0 ) {\n float lightDistance = length( lVector );\n light.color = spotLight.color * spotAttenuation;\n light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n light.visible = ( light.color != vec3( 0.0 ) );\n } else {\n light.color = vec3( 0.0 );\n light.visible = false;\n }\n }\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n struct RectAreaLight {\n vec3 color;\n vec3 position;\n vec3 halfWidth;\n vec3 halfHeight;\n };\n uniform sampler2D ltc_1; uniform sampler2D ltc_2;\n uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n struct HemisphereLight {\n vec3 direction;\n vec3 skyColor;\n vec3 groundColor;\n };\n uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n float dotNL = dot( normal, hemiLight.direction );\n float hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n return irradiance;\n }\n#endif"; +var envmap_physical_pars_fragment = "#ifdef USE_ENVMAP\n vec3 getIBLIrradiance( const in vec3 normal ) {\n #ifdef ENVMAP_TYPE_CUBE_UV\n vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\n return PI * envMapColor.rgb * envMapIntensity;\n #else\n return vec3( 0.0 );\n #endif\n }\n vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n #ifdef ENVMAP_TYPE_CUBE_UV\n vec3 reflectVec = reflect( - viewDir, normal );\n reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n reflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\n return envMapColor.rgb * envMapIntensity;\n #else\n return vec3( 0.0 );\n #endif\n }\n #ifdef USE_ANISOTROPY\n vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\n #ifdef ENVMAP_TYPE_CUBE_UV\n vec3 bentNormal = cross( bitangent, viewDir );\n bentNormal = normalize( cross( bentNormal, bitangent ) );\n bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\n return getIBLRadiance( viewDir, bentNormal, roughness );\n #else\n return vec3( 0.0 );\n #endif\n }\n #endif\n#endif"; +var lights_toon_fragment = "ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;"; +var lights_toon_pars_fragment = "varying vec3 vViewPosition;\nstruct ToonMaterial {\n vec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct RE_Direct_Toon\n#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon"; +var lights_phong_fragment = "BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;"; +var lights_phong_pars_fragment = "varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n vec3 diffuseColor;\n vec3 specularColor;\n float specularShininess;\n float specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n float dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n vec3 irradiance = dotNL * directLight.color;\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct RE_Direct_BlinnPhong\n#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong"; +var lights_physical_fragment = "PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n material.ior = ior;\n #ifdef USE_SPECULAR\n float specularIntensityFactor = specularIntensity;\n vec3 specularColorFactor = specularColor;\n #ifdef USE_SPECULAR_COLORMAP\n specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n #endif\n #ifdef USE_SPECULAR_INTENSITYMAP\n specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n #endif\n material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n #else\n float specularIntensityFactor = 1.0;\n vec3 specularColorFactor = vec3( 1.0 );\n material.specularF90 = 1.0;\n #endif\n material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n material.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n material.clearcoat = clearcoat;\n material.clearcoatRoughness = clearcoatRoughness;\n material.clearcoatF0 = vec3( 0.04 );\n material.clearcoatF90 = 1.0;\n #ifdef USE_CLEARCOATMAP\n material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n #endif\n #ifdef USE_CLEARCOAT_ROUGHNESSMAP\n material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n #endif\n material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n material.clearcoatRoughness += geometryRoughness;\n material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_DISPERSION\n material.dispersion = dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n material.iridescence = iridescence;\n material.iridescenceIOR = iridescenceIOR;\n #ifdef USE_IRIDESCENCEMAP\n material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n #endif\n #ifdef USE_IRIDESCENCE_THICKNESSMAP\n material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n #else\n material.iridescenceThickness = iridescenceThicknessMaximum;\n #endif\n#endif\n#ifdef USE_SHEEN\n material.sheenColor = sheenColor;\n #ifdef USE_SHEEN_COLORMAP\n material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n #endif\n material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n #ifdef USE_SHEEN_ROUGHNESSMAP\n material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n #endif\n#endif\n#ifdef USE_ANISOTROPY\n #ifdef USE_ANISOTROPYMAP\n mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\n vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\n vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\n #else\n vec2 anisotropyV = anisotropyVector;\n #endif\n material.anisotropy = length( anisotropyV );\n if( material.anisotropy == 0.0 ) {\n anisotropyV = vec2( 1.0, 0.0 );\n } else {\n anisotropyV /= material.anisotropy;\n material.anisotropy = saturate( material.anisotropy );\n }\n material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\n material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\n material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\n#endif"; +var lights_physical_pars_fragment = "struct PhysicalMaterial {\n vec3 diffuseColor;\n float roughness;\n vec3 specularColor;\n float specularF90;\n float dispersion;\n #ifdef USE_CLEARCOAT\n float clearcoat;\n float clearcoatRoughness;\n vec3 clearcoatF0;\n float clearcoatF90;\n #endif\n #ifdef USE_IRIDESCENCE\n float iridescence;\n float iridescenceIOR;\n float iridescenceThickness;\n vec3 iridescenceFresnel;\n vec3 iridescenceF0;\n #endif\n #ifdef USE_SHEEN\n vec3 sheenColor;\n float sheenRoughness;\n #endif\n #ifdef IOR\n float ior;\n #endif\n #ifdef USE_TRANSMISSION\n float transmission;\n float transmissionAlpha;\n float thickness;\n float attenuationDistance;\n vec3 attenuationColor;\n #endif\n #ifdef USE_ANISOTROPY\n float anisotropy;\n float alphaT;\n vec3 anisotropyT;\n vec3 anisotropyB;\n #endif\n};\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\nvec3 sheenSpecularDirect = vec3( 0.0 );\nvec3 sheenSpecularIndirect = vec3(0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n float a2 = pow2( alpha );\n float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n return 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n float a2 = pow2( alpha );\n float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n return RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_ANISOTROPY\n float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\n float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\n float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\n float v = 0.5 / ( gv + gl );\n return saturate(v);\n }\n float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\n float a2 = alphaT * alphaB;\n highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\n highp float v2 = dot( v, v );\n float w2 = a2 / v2;\n return RECIPROCAL_PI * a2 * pow2 ( w2 );\n }\n#endif\n#ifdef USE_CLEARCOAT\n vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n vec3 f0 = material.clearcoatF0;\n float f90 = material.clearcoatF90;\n float roughness = material.clearcoatRoughness;\n float alpha = pow2( roughness );\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNL = saturate( dot( normal, lightDir ) );\n float dotNV = saturate( dot( normal, viewDir ) );\n float dotNH = saturate( dot( normal, halfDir ) );\n float dotVH = saturate( dot( viewDir, halfDir ) );\n vec3 F = F_Schlick( f0, f90, dotVH );\n float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n float D = D_GGX( alpha, dotNH );\n return F * ( V * D );\n }\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n vec3 f0 = material.specularColor;\n float f90 = material.specularF90;\n float roughness = material.roughness;\n float alpha = pow2( roughness );\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNL = saturate( dot( normal, lightDir ) );\n float dotNV = saturate( dot( normal, viewDir ) );\n float dotNH = saturate( dot( normal, halfDir ) );\n float dotVH = saturate( dot( viewDir, halfDir ) );\n vec3 F = F_Schlick( f0, f90, dotVH );\n #ifdef USE_IRIDESCENCE\n F = mix( F, material.iridescenceFresnel, material.iridescence );\n #endif\n #ifdef USE_ANISOTROPY\n float dotTL = dot( material.anisotropyT, lightDir );\n float dotTV = dot( material.anisotropyT, viewDir );\n float dotTH = dot( material.anisotropyT, halfDir );\n float dotBL = dot( material.anisotropyB, lightDir );\n float dotBV = dot( material.anisotropyB, viewDir );\n float dotBH = dot( material.anisotropyB, halfDir );\n float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\n float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\n #else\n float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n float D = D_GGX( alpha, dotNH );\n #endif\n return F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n const float LUT_SIZE = 64.0;\n const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n const float LUT_BIAS = 0.5 / LUT_SIZE;\n float dotNV = saturate( dot( N, V ) );\n vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n uv = uv * LUT_SCALE + LUT_BIAS;\n return uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n float l = length( f );\n return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n float x = dot( v1, v2 );\n float y = abs( x );\n float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n float b = 3.4175940 + ( 4.1616724 + y ) * y;\n float v = a / b;\n float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n return cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n vec3 lightNormal = cross( v1, v2 );\n if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n vec3 T1, T2;\n T1 = normalize( V - N * dot( V, N ) );\n T2 = - cross( N, T1 );\n mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n vec3 coords[ 4 ];\n coords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n coords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n coords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n coords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n coords[ 0 ] = normalize( coords[ 0 ] );\n coords[ 1 ] = normalize( coords[ 1 ] );\n coords[ 2 ] = normalize( coords[ 2 ] );\n coords[ 3 ] = normalize( coords[ 3 ] );\n vec3 vectorFormFactor = vec3( 0.0 );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n float result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n return vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n float alpha = pow2( roughness );\n float invAlpha = 1.0 / alpha;\n float cos2h = dotNH * dotNH;\n float sin2h = max( 1.0 - cos2h, 0.0078125 );\n return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n vec3 halfDir = normalize( lightDir + viewDir );\n float dotNL = saturate( dot( normal, lightDir ) );\n float dotNV = saturate( dot( normal, viewDir ) );\n float dotNH = saturate( dot( normal, halfDir ) );\n float D = D_Charlie( sheenRoughness, dotNH );\n float V = V_Neubelt( dotNV, dotNL );\n return sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n float dotNV = saturate( dot( normal, viewDir ) );\n float r2 = roughness * roughness;\n float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n return saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n float dotNV = saturate( dot( normal, viewDir ) );\n const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n vec4 r = roughness * c0 + c1;\n float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n return fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n vec2 fab = DFGApprox( normal, viewDir, roughness );\n return specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n vec2 fab = DFGApprox( normal, viewDir, roughness );\n #ifdef USE_IRIDESCENCE\n vec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n #else\n vec3 Fr = specularColor;\n #endif\n vec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n float Ess = fab.x + fab.y;\n float Ems = 1.0 - Ess;\n vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n singleScatter += FssEss;\n multiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n vec3 normal = geometryNormal;\n vec3 viewDir = geometryViewDir;\n vec3 position = geometryPosition;\n vec3 lightPos = rectAreaLight.position;\n vec3 halfWidth = rectAreaLight.halfWidth;\n vec3 halfHeight = rectAreaLight.halfHeight;\n vec3 lightColor = rectAreaLight.color;\n float roughness = material.roughness;\n vec3 rectCoords[ 4 ];\n rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n rectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n rectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n vec2 uv = LTC_Uv( normal, viewDir, roughness );\n vec4 t1 = texture2D( ltc_1, uv );\n vec4 t2 = texture2D( ltc_2, uv );\n mat3 mInv = mat3(\n vec3( t1.x, 0, t1.y ),\n vec3( 0, 1, 0 ),\n vec3( t1.z, 0, t1.w )\n );\n vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n }\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n float dotNL = saturate( dot( geometryNormal, directLight.direction ) );\n vec3 irradiance = dotNL * directLight.color;\n #ifdef USE_CLEARCOAT\n float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\n vec3 ccIrradiance = dotNLcc * directLight.color;\n clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\n #endif\n #ifdef USE_SHEEN\n sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\n #endif\n reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\n reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n #ifdef USE_CLEARCOAT\n clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n #endif\n #ifdef USE_SHEEN\n sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\n #endif\n vec3 singleScattering = vec3( 0.0 );\n vec3 multiScattering = vec3( 0.0 );\n vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n #ifdef USE_IRIDESCENCE\n computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n #else\n computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n #endif\n vec3 totalScattering = singleScattering + multiScattering;\n vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n reflectedLight.indirectSpecular += radiance * singleScattering;\n reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct RE_Direct_Physical\n#define RE_Direct_RectArea RE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular RE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}"; +var lights_fragment_begin = "\nvec3 geometryPosition = - vViewPosition;\nvec3 geometryNormal = normal;\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\nvec3 geometryClearcoatNormal = vec3( 0.0 );\n#ifdef USE_CLEARCOAT\n geometryClearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n float dotNVi = saturate( dot( normal, geometryViewDir ) );\n if ( material.iridescenceThickness == 0.0 ) {\n material.iridescence = 0.0;\n } else {\n material.iridescence = saturate( material.iridescence );\n }\n if ( material.iridescence > 0.0 ) {\n material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n }\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n PointLight pointLight;\n #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n PointLightShadow pointLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n pointLight = pointLights[ i ];\n getPointLightInfo( pointLight, geometryPosition, directLight );\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n pointLightShadow = pointLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n SpotLight spotLight;\n vec4 spotColor;\n vec3 spotLightCoord;\n bool inSpotLightMap;\n #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n SpotLightShadow spotLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n spotLight = spotLights[ i ];\n getSpotLightInfo( spotLight, geometryPosition, directLight );\n #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n #else\n #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n #endif\n #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n #endif\n #undef SPOT_LIGHT_MAP_INDEX\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n spotLightShadow = spotLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n DirectionalLight directionalLight;\n #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n DirectionalLightShadow directionalLightShadow;\n #endif\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n directionalLight = directionalLights[ i ];\n getDirectionalLightInfo( directionalLight, directLight );\n #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n directionalLightShadow = directionalLightShadows[ i ];\n directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n #endif\n RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n RectAreaLight rectAreaLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n rectAreaLight = rectAreaLights[ i ];\n RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n }\n #pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n vec3 iblIrradiance = vec3( 0.0 );\n vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n #if defined( USE_LIGHT_PROBES )\n irradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\n #endif\n #if ( NUM_HEMI_LIGHTS > 0 )\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\n }\n #pragma unroll_loop_end\n #endif\n#endif\n#if defined( RE_IndirectSpecular )\n vec3 radiance = vec3( 0.0 );\n vec3 clearcoatRadiance = vec3( 0.0 );\n#endif"; +var lights_fragment_maps = "#if defined( RE_IndirectDiffuse )\n #ifdef USE_LIGHTMAP\n vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n irradiance += lightMapIrradiance;\n #endif\n #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n iblIrradiance += getIBLIrradiance( geometryNormal );\n #endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n #ifdef USE_ANISOTROPY\n radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\n #else\n radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\n #endif\n #ifdef USE_CLEARCOAT\n clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\n #endif\n#endif"; +var lights_fragment_end = "#if defined( RE_IndirectDiffuse )\n RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\n#endif"; +var logdepthbuf_fragment = "#if defined( USE_LOGDEPTHBUF )\n gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif"; +var logdepthbuf_pars_fragment = "#if defined( USE_LOGDEPTHBUF )\n uniform float logDepthBufFC;\n varying float vFragDepth;\n varying float vIsPerspective;\n#endif"; +var logdepthbuf_pars_vertex = "#ifdef USE_LOGDEPTHBUF\n varying float vFragDepth;\n varying float vIsPerspective;\n#endif"; +var logdepthbuf_vertex = "#ifdef USE_LOGDEPTHBUF\n vFragDepth = 1.0 + gl_Position.w;\n vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n#endif"; +var map_fragment = "#ifdef USE_MAP\n vec4 sampledDiffuseColor = texture2D( map, vMapUv );\n #ifdef DECODE_VIDEO_TEXTURE\n sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor );\n #endif\n diffuseColor *= sampledDiffuseColor;\n#endif"; +var map_pars_fragment = "#ifdef USE_MAP\n uniform sampler2D map;\n#endif"; +var map_particle_fragment = "#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n #if defined( USE_POINTS_UV )\n vec2 uv = vUv;\n #else\n vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n #endif\n#endif\n#ifdef USE_MAP\n diffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n diffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif"; +var map_particle_pars_fragment = "#if defined( USE_POINTS_UV )\n varying vec2 vUv;\n#else\n #if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n uniform mat3 uvTransform;\n #endif\n#endif\n#ifdef USE_MAP\n uniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n uniform sampler2D alphaMap;\n#endif"; +var metalnessmap_fragment = "float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n metalnessFactor *= texelMetalness.b;\n#endif"; +var metalnessmap_pars_fragment = "#ifdef USE_METALNESSMAP\n uniform sampler2D metalnessMap;\n#endif"; +var morphinstance_vertex = "#ifdef USE_INSTANCING_MORPH\n float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\n }\n#endif"; +var morphcolor_vertex = "#if defined( USE_MORPHCOLORS )\n vColor *= morphTargetBaseInfluence;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n #if defined( USE_COLOR_ALPHA )\n if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n #elif defined( USE_COLOR )\n if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n #endif\n }\n#endif"; +var morphnormal_vertex = "#ifdef USE_MORPHNORMALS\n objectNormal *= morphTargetBaseInfluence;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n }\n#endif"; +var morphtarget_pars_vertex = "#ifdef USE_MORPHTARGETS\n #ifndef USE_INSTANCING_MORPH\n uniform float morphTargetBaseInfluence;\n uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n #endif\n uniform sampler2DArray morphTargetsTexture;\n uniform ivec2 morphTargetsTextureSize;\n vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n int y = texelIndex / morphTargetsTextureSize.x;\n int x = texelIndex - y * morphTargetsTextureSize.x;\n ivec3 morphUV = ivec3( x, y, morphTargetIndex );\n return texelFetch( morphTargetsTexture, morphUV, 0 );\n }\n#endif"; +var morphtarget_vertex = "#ifdef USE_MORPHTARGETS\n transformed *= morphTargetBaseInfluence;\n for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n }\n#endif"; +var normal_fragment_begin = "float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n vec3 fdx = dFdx( vViewPosition );\n vec3 fdy = dFdy( vViewPosition );\n vec3 normal = normalize( cross( fdx, fdy ) );\n#else\n vec3 normal = normalize( vNormal );\n #ifdef DOUBLE_SIDED\n normal *= faceDirection;\n #endif\n#endif\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\n #ifdef USE_TANGENT\n mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n #else\n mat3 tbn = getTangentFrame( - vViewPosition, normal,\n #if defined( USE_NORMALMAP )\n vNormalMapUv\n #elif defined( USE_CLEARCOAT_NORMALMAP )\n vClearcoatNormalMapUv\n #else\n vUv\n #endif\n );\n #endif\n #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n tbn[0] *= faceDirection;\n tbn[1] *= faceDirection;\n #endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n #ifdef USE_TANGENT\n mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n #else\n mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n #endif\n #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n tbn2[0] *= faceDirection;\n tbn2[1] *= faceDirection;\n #endif\n#endif\nvec3 nonPerturbedNormal = normal;"; +var normal_fragment_maps = "#ifdef USE_NORMALMAP_OBJECTSPACE\n normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n #ifdef FLIP_SIDED\n normal = - normal;\n #endif\n #ifdef DOUBLE_SIDED\n normal = normal * faceDirection;\n #endif\n normal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n mapN.xy *= normalScale;\n normal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif"; +var normal_pars_fragment = "#ifndef FLAT_SHADED\n varying vec3 vNormal;\n #ifdef USE_TANGENT\n varying vec3 vTangent;\n varying vec3 vBitangent;\n #endif\n#endif"; +var normal_pars_vertex = "#ifndef FLAT_SHADED\n varying vec3 vNormal;\n #ifdef USE_TANGENT\n varying vec3 vTangent;\n varying vec3 vBitangent;\n #endif\n#endif"; +var normal_vertex = "#ifndef FLAT_SHADED\n vNormal = normalize( transformedNormal );\n #ifdef USE_TANGENT\n vTangent = normalize( transformedTangent );\n vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n #endif\n#endif"; +var normalmap_pars_fragment = "#ifdef USE_NORMALMAP\n uniform sampler2D normalMap;\n uniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n uniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\n mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n vec3 q0 = dFdx( eye_pos.xyz );\n vec3 q1 = dFdy( eye_pos.xyz );\n vec2 st0 = dFdx( uv.st );\n vec2 st1 = dFdy( uv.st );\n vec3 N = surf_norm;\n vec3 q1perp = cross( q1, N );\n vec3 q0perp = cross( N, q0 );\n vec3 T = q1perp * st0.x + q0perp * st1.x;\n vec3 B = q1perp * st0.y + q0perp * st1.y;\n float det = max( dot( T, T ), dot( B, B ) );\n float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n return mat3( T * scale, B * scale, N );\n }\n#endif"; +var clearcoat_normal_fragment_begin = "#ifdef USE_CLEARCOAT\n vec3 clearcoatNormal = nonPerturbedNormal;\n#endif"; +var clearcoat_normal_fragment_maps = "#ifdef USE_CLEARCOAT_NORMALMAP\n vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n clearcoatMapN.xy *= clearcoatNormalScale;\n clearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif"; +var clearcoat_pars_fragment = "#ifdef USE_CLEARCOATMAP\n uniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n uniform sampler2D clearcoatNormalMap;\n uniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n uniform sampler2D clearcoatRoughnessMap;\n#endif"; +var iridescence_pars_fragment = "#ifdef USE_IRIDESCENCEMAP\n uniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n uniform sampler2D iridescenceThicknessMap;\n#endif"; +var opaque_fragment = "#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );"; +var packing = "vec3 packNormalToRGB( const in vec3 normal ) {\n return normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n return 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;\nconst float Inv255 = 1. / 255.;\nconst vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\nconst vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );\nconst vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );\nconst vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );\nvec4 packDepthToRGBA( const in float v ) {\n if( v <= 0.0 )\n return vec4( 0., 0., 0., 0. );\n if( v >= 1.0 )\n return vec4( 1., 1., 1., 1. );\n float vuf;\n float af = modf( v * PackFactors.a, vuf );\n float bf = modf( vuf * ShiftRight8, vuf );\n float gf = modf( vuf * ShiftRight8, vuf );\n return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );\n}\nvec3 packDepthToRGB( const in float v ) {\n if( v <= 0.0 )\n return vec3( 0., 0., 0. );\n if( v >= 1.0 )\n return vec3( 1., 1., 1. );\n float vuf;\n float bf = modf( v * PackFactors.b, vuf );\n float gf = modf( vuf * ShiftRight8, vuf );\n return vec3( vuf * Inv255, gf * PackUpscale, bf );\n}\nvec2 packDepthToRG( const in float v ) {\n if( v <= 0.0 )\n return vec2( 0., 0. );\n if( v >= 1.0 )\n return vec2( 1., 1. );\n float vuf;\n float gf = modf( v * 256., vuf );\n return vec2( vuf * Inv255, gf );\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n return dot( v, UnpackFactors4 );\n}\nfloat unpackRGBToDepth( const in vec3 v ) {\n return dot( v, UnpackFactors3 );\n}\nfloat unpackRGToDepth( const in vec2 v ) {\n return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;\n}\nvec4 pack2HalfToRGBA( const in vec2 v ) {\n vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( const in vec4 v ) {\n return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n return ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n return depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n return ( near * far ) / ( ( far - near ) * depth - far );\n}"; +var premultiplied_alpha_fragment = "#ifdef PREMULTIPLIED_ALPHA\n gl_FragColor.rgb *= gl_FragColor.a;\n#endif"; +var project_vertex = "vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_BATCHING\n mvPosition = batchingMatrix * mvPosition;\n#endif\n#ifdef USE_INSTANCING\n mvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;"; +var dithering_fragment = "#ifdef DITHERING\n gl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif"; +var dithering_pars_fragment = "#ifdef DITHERING\n vec3 dithering( vec3 color ) {\n float grid_position = rand( gl_FragCoord.xy );\n vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n return color + dither_shift_RGB;\n }\n#endif"; +var roughnessmap_fragment = "float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n roughnessFactor *= texelRoughness.g;\n#endif"; +var roughnessmap_pars_fragment = "#ifdef USE_ROUGHNESSMAP\n uniform sampler2D roughnessMap;\n#endif"; +var shadowmap_pars_fragment = "#if NUM_SPOT_LIGHT_COORDS > 0\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n #if NUM_DIR_LIGHT_SHADOWS > 0\n uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n struct DirectionalLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n #endif\n #if NUM_SPOT_LIGHT_SHADOWS > 0\n uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n struct SpotLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n struct PointLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n float shadowCameraNear;\n float shadowCameraFar;\n };\n uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n #endif\n float texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n }\n vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n return unpackRGBATo2Half( texture2D( shadow, uv ) );\n }\n float VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n float occlusion = 1.0;\n vec2 distribution = texture2DDistribution( shadow, uv );\n float hard_shadow = step( compare , distribution.x );\n if (hard_shadow != 1.0 ) {\n float distance = compare - distribution.x ;\n float variance = max( 0.00000, distribution.y * distribution.y );\n float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n }\n return occlusion;\n }\n float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n float shadow = 1.0;\n shadowCoord.xyz /= shadowCoord.w;\n shadowCoord.z += shadowBias;\n bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n bool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n if ( frustumTest ) {\n #if defined( SHADOWMAP_TYPE_PCF )\n vec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n float dx0 = - texelSize.x * shadowRadius;\n float dy0 = - texelSize.y * shadowRadius;\n float dx1 = + texelSize.x * shadowRadius;\n float dy1 = + texelSize.y * shadowRadius;\n float dx2 = dx0 / 2.0;\n float dy2 = dy0 / 2.0;\n float dx3 = dx1 / 2.0;\n float dy3 = dy1 / 2.0;\n shadow = (\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n ) * ( 1.0 / 17.0 );\n #elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n vec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n float dx = texelSize.x;\n float dy = texelSize.y;\n vec2 uv = shadowCoord.xy;\n vec2 f = fract( uv * shadowMapSize + 0.5 );\n uv -= f * texelSize;\n shadow = (\n texture2DCompare( shadowMap, uv, shadowCoord.z ) +\n texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n f.x ) +\n mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n f.x ) +\n mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n f.y ) +\n mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n f.y ) +\n mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n f.x ),\n mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n f.x ),\n f.y )\n ) * ( 1.0 / 9.0 );\n #elif defined( SHADOWMAP_TYPE_VSM )\n shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n #else\n shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n #endif\n }\n return mix( 1.0, shadow, shadowIntensity );\n }\n vec2 cubeToUV( vec3 v, float texelSizeY ) {\n vec3 absV = abs( v );\n float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n absV *= scaleToCube;\n v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n vec2 planar = v.xy;\n float almostATexel = 1.5 * texelSizeY;\n float almostOne = 1.0 - almostATexel;\n if ( absV.z >= almostOne ) {\n if ( v.z > 0.0 )\n planar.x = 4.0 - v.x;\n } else if ( absV.x >= almostOne ) {\n float signX = sign( v.x );\n planar.x = v.z * signX + 2.0 * signX;\n } else if ( absV.y >= almostOne ) {\n float signY = sign( v.y );\n planar.x = v.x + 2.0 * signY + 2.0;\n planar.y = v.z * signY - 2.0;\n }\n return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n }\n float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n float shadow = 1.0;\n vec3 lightToPosition = shadowCoord.xyz;\n \n float lightToPositionLength = length( lightToPosition );\n if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\n float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias;\n vec3 bd3D = normalize( lightToPosition );\n vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n shadow = (\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n ) * ( 1.0 / 9.0 );\n #else\n shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n #endif\n }\n return mix( 1.0, shadow, shadowIntensity );\n }\n#endif"; +var shadowmap_pars_vertex = "#if NUM_SPOT_LIGHT_COORDS > 0\n uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n #if NUM_DIR_LIGHT_SHADOWS > 0\n uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n struct DirectionalLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n #endif\n #if NUM_SPOT_LIGHT_SHADOWS > 0\n struct SpotLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n };\n uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n struct PointLightShadow {\n float shadowIntensity;\n float shadowBias;\n float shadowNormalBias;\n float shadowRadius;\n vec2 shadowMapSize;\n float shadowCameraNear;\n float shadowCameraFar;\n };\n uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n #endif\n#endif"; +var shadowmap_vertex = "#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n vec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n #if NUM_DIR_LIGHT_SHADOWS > 0\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n }\n #pragma unroll_loop_end\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n }\n #pragma unroll_loop_end\n #endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n shadowWorldPosition = worldPosition;\n #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n #endif\n vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n }\n #pragma unroll_loop_end\n#endif"; +var shadowmask_pars_fragment = "float getShadowMask() {\n float shadow = 1.0;\n #ifdef USE_SHADOWMAP\n #if NUM_DIR_LIGHT_SHADOWS > 0\n DirectionalLightShadow directionalLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n directionalLight = directionalLightShadows[ i ];\n shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n }\n #pragma unroll_loop_end\n #endif\n #if NUM_SPOT_LIGHT_SHADOWS > 0\n SpotLightShadow spotLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n spotLight = spotLightShadows[ i ];\n shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n }\n #pragma unroll_loop_end\n #endif\n #if NUM_POINT_LIGHT_SHADOWS > 0\n PointLightShadow pointLight;\n #pragma unroll_loop_start\n for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n pointLight = pointLightShadows[ i ];\n shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n }\n #pragma unroll_loop_end\n #endif\n #endif\n return shadow;\n}"; +var skinbase_vertex = "#ifdef USE_SKINNING\n mat4 boneMatX = getBoneMatrix( skinIndex.x );\n mat4 boneMatY = getBoneMatrix( skinIndex.y );\n mat4 boneMatZ = getBoneMatrix( skinIndex.z );\n mat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif"; +var skinning_pars_vertex = "#ifdef USE_SKINNING\n uniform mat4 bindMatrix;\n uniform mat4 bindMatrixInverse;\n uniform highp sampler2D boneTexture;\n mat4 getBoneMatrix( const in float i ) {\n int size = textureSize( boneTexture, 0 ).x;\n int j = int( i ) * 4;\n int x = j % size;\n int y = j / size;\n vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n return mat4( v1, v2, v3, v4 );\n }\n#endif"; +var skinning_vertex = "#ifdef USE_SKINNING\n vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n vec4 skinned = vec4( 0.0 );\n skinned += boneMatX * skinVertex * skinWeight.x;\n skinned += boneMatY * skinVertex * skinWeight.y;\n skinned += boneMatZ * skinVertex * skinWeight.z;\n skinned += boneMatW * skinVertex * skinWeight.w;\n transformed = ( bindMatrixInverse * skinned ).xyz;\n#endif"; +var skinnormal_vertex = "#ifdef USE_SKINNING\n mat4 skinMatrix = mat4( 0.0 );\n skinMatrix += skinWeight.x * boneMatX;\n skinMatrix += skinWeight.y * boneMatY;\n skinMatrix += skinWeight.z * boneMatZ;\n skinMatrix += skinWeight.w * boneMatW;\n skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n #ifdef USE_TANGENT\n objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n #endif\n#endif"; +var specularmap_fragment = "float specularStrength;\n#ifdef USE_SPECULARMAP\n vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n specularStrength = texelSpecular.r;\n#else\n specularStrength = 1.0;\n#endif"; +var specularmap_pars_fragment = "#ifdef USE_SPECULARMAP\n uniform sampler2D specularMap;\n#endif"; +var tonemapping_fragment = "#if defined( TONE_MAPPING )\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif"; +var tonemapping_pars_fragment = "#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n return saturate( toneMappingExposure * color );\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n color *= toneMappingExposure;\n return saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 CineonToneMapping( vec3 color ) {\n color *= toneMappingExposure;\n color = max( vec3( 0.0 ), color - 0.004 );\n return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n vec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n return a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n const mat3 ACESInputMat = mat3(\n vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ),\n vec3( 0.04823, 0.01566, 0.83777 )\n );\n const mat3 ACESOutputMat = mat3(\n vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ),\n vec3( -0.07367, -0.00605, 1.07602 )\n );\n color *= toneMappingExposure / 0.6;\n color = ACESInputMat * color;\n color = RRTAndODTFit( color );\n color = ACESOutputMat * color;\n return saturate( color );\n}\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\n vec3( 1.6605, - 0.1246, - 0.0182 ),\n vec3( - 0.5876, 1.1329, - 0.1006 ),\n vec3( - 0.0728, - 0.0083, 1.1187 )\n);\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\n vec3( 0.6274, 0.0691, 0.0164 ),\n vec3( 0.3293, 0.9195, 0.0880 ),\n vec3( 0.0433, 0.0113, 0.8956 )\n);\nvec3 agxDefaultContrastApprox( vec3 x ) {\n vec3 x2 = x * x;\n vec3 x4 = x2 * x2;\n return + 15.5 * x4 * x2\n - 40.14 * x4 * x\n + 31.96 * x4\n - 6.868 * x2 * x\n + 0.4298 * x2\n + 0.1191 * x\n - 0.00232;\n}\nvec3 AgXToneMapping( vec3 color ) {\n const mat3 AgXInsetMatrix = mat3(\n vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\n vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\n vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\n );\n const mat3 AgXOutsetMatrix = mat3(\n vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\n vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\n vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\n );\n const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069;\n color *= toneMappingExposure;\n color = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\n color = AgXInsetMatrix * color;\n color = max( color, 1e-10 ); color = log2( color );\n color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\n color = clamp( color, 0.0, 1.0 );\n color = agxDefaultContrastApprox( color );\n color = AgXOutsetMatrix * color;\n color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\n color = LINEAR_REC2020_TO_LINEAR_SRGB * color;\n color = clamp( color, 0.0, 1.0 );\n return color;\n}\nvec3 NeutralToneMapping( vec3 color ) {\n const float StartCompression = 0.8 - 0.04;\n const float Desaturation = 0.15;\n color *= toneMappingExposure;\n float x = min( color.r, min( color.g, color.b ) );\n float offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\n color -= offset;\n float peak = max( color.r, max( color.g, color.b ) );\n if ( peak < StartCompression ) return color;\n float d = 1. - StartCompression;\n float newPeak = 1. - d * d / ( peak + d - StartCompression );\n color *= newPeak / peak;\n float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\n return mix( color, vec3( newPeak ), g );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }"; +var transmission_fragment = "#ifdef USE_TRANSMISSION\n material.transmission = transmission;\n material.transmissionAlpha = 1.0;\n material.thickness = thickness;\n material.attenuationDistance = attenuationDistance;\n material.attenuationColor = attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n #endif\n #ifdef USE_THICKNESSMAP\n material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n #endif\n vec3 pos = vWorldPosition;\n vec3 v = normalize( cameraPosition - pos );\n vec3 n = inverseTransformDirection( normal, viewMatrix );\n vec4 transmitted = getIBLVolumeRefraction(\n n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\n material.attenuationColor, material.attenuationDistance );\n material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\n totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\n#endif"; +var transmission_pars_fragment = "#ifdef USE_TRANSMISSION\n uniform float transmission;\n uniform float thickness;\n uniform float attenuationDistance;\n uniform vec3 attenuationColor;\n #ifdef USE_TRANSMISSIONMAP\n uniform sampler2D transmissionMap;\n #endif\n #ifdef USE_THICKNESSMAP\n uniform sampler2D thicknessMap;\n #endif\n uniform vec2 transmissionSamplerSize;\n uniform sampler2D transmissionSamplerMap;\n uniform mat4 modelMatrix;\n uniform mat4 projectionMatrix;\n varying vec3 vWorldPosition;\n float w0( float a ) {\n return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n }\n float w1( float a ) {\n return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n }\n float w2( float a ){\n return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n }\n float w3( float a ) {\n return ( 1.0 / 6.0 ) * ( a * a * a );\n }\n float g0( float a ) {\n return w0( a ) + w1( a );\n }\n float g1( float a ) {\n return w2( a ) + w3( a );\n }\n float h0( float a ) {\n return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n }\n float h1( float a ) {\n return 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n }\n vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n uv = uv * texelSize.zw + 0.5;\n vec2 iuv = floor( uv );\n vec2 fuv = fract( uv );\n float g0x = g0( fuv.x );\n float g1x = g1( fuv.x );\n float h0x = h0( fuv.x );\n float h1x = h1( fuv.x );\n float h0y = h0( fuv.y );\n float h1y = h1( fuv.y );\n vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n }\n vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n vec2 fLodSizeInv = 1.0 / fLodSize;\n vec2 cLodSizeInv = 1.0 / cLodSize;\n vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n return mix( fSample, cSample, fract( lod ) );\n }\n vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n vec3 modelScale;\n modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n return normalize( refractionVector ) * thickness * modelScale;\n }\n float applyIorToRoughness( const in float roughness, const in float ior ) {\n return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n }\n vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n }\n vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n if ( isinf( attenuationDistance ) ) {\n return vec3( 1.0 );\n } else {\n vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance;\n }\n }\n vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\n const in vec3 attenuationColor, const in float attenuationDistance ) {\n vec4 transmittedLight;\n vec3 transmittance;\n #ifdef USE_DISPERSION\n float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\n vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\n for ( int i = 0; i < 3; i ++ ) {\n vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\n vec3 refractedRayExit = position + transmissionRay;\n \n vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n vec2 refractionCoords = ndcPos.xy / ndcPos.w;\n refractionCoords += 1.0;\n refractionCoords /= 2.0;\n \n vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\n transmittedLight[ i ] = transmissionSample[ i ];\n transmittedLight.a += transmissionSample.a;\n transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\n }\n transmittedLight.a /= 3.0;\n \n #else\n \n vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n vec3 refractedRayExit = position + transmissionRay;\n vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n vec2 refractionCoords = ndcPos.xy / ndcPos.w;\n refractionCoords += 1.0;\n refractionCoords /= 2.0;\n transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\n \n #endif\n vec3 attenuatedColor = transmittance * transmittedLight.rgb;\n vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\n return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\n }\n#endif"; +var uv_pars_fragment = "#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n varying vec2 vUv;\n#endif\n#ifdef USE_MAP\n varying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n varying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n varying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n varying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n varying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n varying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n varying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n varying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n varying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n varying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n varying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n varying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n varying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n varying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n varying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n varying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n varying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n varying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n varying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n varying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n uniform mat3 transmissionMapTransform;\n varying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n uniform mat3 thicknessMapTransform;\n varying vec2 vThicknessMapUv;\n#endif"; +var uv_pars_vertex = "#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n varying vec2 vUv;\n#endif\n#ifdef USE_MAP\n uniform mat3 mapTransform;\n varying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n uniform mat3 alphaMapTransform;\n varying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n uniform mat3 lightMapTransform;\n varying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n uniform mat3 aoMapTransform;\n varying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n uniform mat3 bumpMapTransform;\n varying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n uniform mat3 normalMapTransform;\n varying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n uniform mat3 displacementMapTransform;\n varying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n uniform mat3 emissiveMapTransform;\n varying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n uniform mat3 metalnessMapTransform;\n varying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n uniform mat3 roughnessMapTransform;\n varying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_ANISOTROPYMAP\n uniform mat3 anisotropyMapTransform;\n varying vec2 vAnisotropyMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n uniform mat3 clearcoatMapTransform;\n varying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n uniform mat3 clearcoatNormalMapTransform;\n varying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n uniform mat3 clearcoatRoughnessMapTransform;\n varying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n uniform mat3 sheenColorMapTransform;\n varying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n uniform mat3 sheenRoughnessMapTransform;\n varying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n uniform mat3 iridescenceMapTransform;\n varying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n uniform mat3 iridescenceThicknessMapTransform;\n varying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n uniform mat3 specularMapTransform;\n varying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n uniform mat3 specularColorMapTransform;\n varying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n uniform mat3 specularIntensityMapTransform;\n varying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n uniform mat3 transmissionMapTransform;\n varying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n uniform mat3 thicknessMapTransform;\n varying vec2 vThicknessMapUv;\n#endif"; +var uv_vertex = "#if defined( USE_UV ) || defined( USE_ANISOTROPY )\n vUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ANISOTROPYMAP\n vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif"; +var worldpos_vertex = "#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n vec4 worldPosition = vec4( transformed, 1.0 );\n #ifdef USE_BATCHING\n worldPosition = batchingMatrix * worldPosition;\n #endif\n #ifdef USE_INSTANCING\n worldPosition = instanceMatrix * worldPosition;\n #endif\n worldPosition = modelMatrix * worldPosition;\n#endif"; +const vertex$h = "varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n vUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n gl_Position = vec4( position.xy, 1.0, 1.0 );\n}"; +const fragment$h = "uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n vec4 texColor = texture2D( t2D, vUv );\n #ifdef DECODE_VIDEO_TEXTURE\n texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\n #endif\n texColor.rgb *= backgroundIntensity;\n gl_FragColor = texColor;\n #include \n #include \n}"; +const vertex$g = "varying vec3 vWorldDirection;\n#include \nvoid main() {\n vWorldDirection = transformDirection( position, modelMatrix );\n #include \n #include \n gl_Position.z = gl_Position.w;\n}"; +const fragment$g = "#ifdef ENVMAP_TYPE_CUBE\n uniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n uniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nuniform mat3 backgroundRotation;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n #ifdef ENVMAP_TYPE_CUBE\n vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n #elif defined( ENVMAP_TYPE_CUBE_UV )\n vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\n #else\n vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n #endif\n texColor.rgb *= backgroundIntensity;\n gl_FragColor = texColor;\n #include \n #include \n}"; +const vertex$f = "varying vec3 vWorldDirection;\n#include \nvoid main() {\n vWorldDirection = transformDirection( position, modelMatrix );\n #include \n #include \n gl_Position.z = gl_Position.w;\n}"; +const fragment$f = "uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n gl_FragColor = texColor;\n gl_FragColor.a *= opacity;\n #include \n #include \n}"; +const vertex$e = "#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n #include \n #include \n #include \n #include \n #ifdef USE_DISPLACEMENTMAP\n #include \n #include \n #include \n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vHighPrecisionZW = gl_Position.zw;\n}"; +const fragment$e = "#if DEPTH_PACKING == 3200\n uniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n vec4 diffuseColor = vec4( 1.0 );\n #include \n #if DEPTH_PACKING == 3200\n diffuseColor.a = opacity;\n #endif\n #include \n #include \n #include \n #include \n #include \n float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n #if DEPTH_PACKING == 3200\n gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n #elif DEPTH_PACKING == 3201\n gl_FragColor = packDepthToRGBA( fragCoordZ );\n #elif DEPTH_PACKING == 3202\n gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );\n #elif DEPTH_PACKING == 3203\n gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );\n #endif\n}"; +const vertex$d = "#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #ifdef USE_DISPLACEMENTMAP\n #include \n #include \n #include \n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vWorldPosition = worldPosition.xyz;\n}"; +const fragment$d = "#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n vec4 diffuseColor = vec4( 1.0 );\n #include \n #include \n #include \n #include \n #include \n float dist = length( vWorldPosition - referencePosition );\n dist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n dist = saturate( dist );\n gl_FragColor = packDepthToRGBA( dist );\n}"; +const vertex$c = "varying vec3 vWorldDirection;\n#include \nvoid main() {\n vWorldDirection = transformDirection( position, modelMatrix );\n #include \n #include \n}"; +const fragment$c = "uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n vec3 direction = normalize( vWorldDirection );\n vec2 sampleUV = equirectUv( direction );\n gl_FragColor = texture2D( tEquirect, sampleUV );\n #include \n #include \n}"; +const vertex$b = "uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vLineDistance = scale * lineDistance;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}"; +const fragment$b = "uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n if ( mod( vLineDistance, totalSize ) > dashSize ) {\n discard;\n }\n vec3 outgoingLight = vec3( 0.0 );\n #include \n #include \n #include \n outgoingLight = diffuseColor.rgb;\n #include \n #include \n #include \n #include \n #include \n}"; +const vertex$a = "#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n #include \n #include \n #include \n #include \n #include \n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}"; +const fragment$a = "uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n varying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n #ifdef USE_LIGHTMAP\n vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n #else\n reflectedLight.indirectDiffuse += vec3( 1.0 );\n #endif\n #include \n reflectedLight.indirectDiffuse *= diffuseColor.rgb;\n vec3 outgoingLight = reflectedLight.indirectDiffuse;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}"; +const vertex$9 = "#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n #include \n}"; +const fragment$9 = "#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}"; +const vertex$8 = "#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n}"; +const fragment$8 = "#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 viewDir = normalize( vViewPosition );\n vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n vec3 y = cross( viewDir, x );\n vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n #ifdef USE_MATCAP\n vec4 matcapColor = texture2D( matcap, uv );\n #else\n vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n #endif\n vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n #include \n #include \n #include \n #include \n #include \n #include \n}"; +const vertex$7 = "#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n varying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n vViewPosition = - mvPosition.xyz;\n#endif\n}"; +const fragment$7 = "#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n varying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\n #include \n #include \n #include \n #include \n gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\n #ifdef OPAQUE\n gl_FragColor.a = 1.0;\n #endif\n}"; +const vertex$6 = "#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n #include \n}"; +const fragment$6 = "#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}"; +const vertex$5 = "#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n varying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n#ifdef USE_TRANSMISSION\n vWorldPosition = worldPosition.xyz;\n#endif\n}"; +const fragment$5 = "#define STANDARD\n#ifdef PHYSICAL\n #define IOR\n #define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n uniform float ior;\n#endif\n#ifdef USE_SPECULAR\n uniform float specularIntensity;\n uniform vec3 specularColor;\n #ifdef USE_SPECULAR_COLORMAP\n uniform sampler2D specularColorMap;\n #endif\n #ifdef USE_SPECULAR_INTENSITYMAP\n uniform sampler2D specularIntensityMap;\n #endif\n#endif\n#ifdef USE_CLEARCOAT\n uniform float clearcoat;\n uniform float clearcoatRoughness;\n#endif\n#ifdef USE_DISPERSION\n uniform float dispersion;\n#endif\n#ifdef USE_IRIDESCENCE\n uniform float iridescence;\n uniform float iridescenceIOR;\n uniform float iridescenceThicknessMinimum;\n uniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n uniform vec3 sheenColor;\n uniform float sheenRoughness;\n #ifdef USE_SHEEN_COLORMAP\n uniform sampler2D sheenColorMap;\n #endif\n #ifdef USE_SHEEN_ROUGHNESSMAP\n uniform sampler2D sheenRoughnessMap;\n #endif\n#endif\n#ifdef USE_ANISOTROPY\n uniform vec2 anisotropyVector;\n #ifdef USE_ANISOTROPYMAP\n uniform sampler2D anisotropyMap;\n #endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n #include \n vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n #ifdef USE_SHEEN\n float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\n #endif\n #ifdef USE_CLEARCOAT\n float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\n vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n}"; +const vertex$4 = "#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vViewPosition = - mvPosition.xyz;\n #include \n #include \n #include \n}"; +const fragment$4 = "#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n vec3 totalEmissiveRadiance = emissive;\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n #include \n #include \n #include \n #include \n #include \n #include \n}"; +const vertex$3 = "uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n varying vec2 vUv;\n uniform mat3 uvTransform;\n#endif\nvoid main() {\n #ifdef USE_POINTS_UV\n vUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n #endif\n #include \n #include \n #include \n #include \n #include \n #include \n gl_PointSize = size;\n #ifdef USE_SIZEATTENUATION\n bool isPerspective = isPerspectiveMatrix( projectionMatrix );\n if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n #endif\n #include \n #include \n #include \n #include \n}"; +const fragment$3 = "uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n vec3 outgoingLight = vec3( 0.0 );\n #include \n #include \n #include \n #include \n #include \n outgoingLight = diffuseColor.rgb;\n #include \n #include \n #include \n #include \n #include \n}"; +const vertex$2 = "#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n #include \n}"; +const fragment$2 = "uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n #include \n #include \n #include \n}"; +const vertex$1 = "uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n #include \n vec4 mvPosition = modelViewMatrix[ 3 ];\n vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );\n #ifndef USE_SIZEATTENUATION\n bool isPerspective = isPerspectiveMatrix( projectionMatrix );\n if ( isPerspective ) scale *= - mvPosition.z;\n #endif\n vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n vec2 rotatedPosition;\n rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n mvPosition.xy += rotatedPosition;\n gl_Position = projectionMatrix * mvPosition;\n #include \n #include \n #include \n}"; +const fragment$1 = "uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n vec4 diffuseColor = vec4( diffuse, opacity );\n #include \n vec3 outgoingLight = vec3( 0.0 );\n #include \n #include \n #include \n #include \n #include \n outgoingLight = diffuseColor.rgb;\n #include \n #include \n #include \n #include \n}"; +const ShaderChunk = { + alphahash_fragment, + alphahash_pars_fragment, + alphamap_fragment, + alphamap_pars_fragment, + alphatest_fragment, + alphatest_pars_fragment, + aomap_fragment, + aomap_pars_fragment, + batching_pars_vertex, + batching_vertex, + begin_vertex, + beginnormal_vertex, + bsdfs, + iridescence_fragment, + bumpmap_pars_fragment, + clipping_planes_fragment, + clipping_planes_pars_fragment, + clipping_planes_pars_vertex, + clipping_planes_vertex, + color_fragment, + color_pars_fragment, + color_pars_vertex, + color_vertex, + common, + cube_uv_reflection_fragment, + defaultnormal_vertex, + displacementmap_pars_vertex, + displacementmap_vertex, + emissivemap_fragment, + emissivemap_pars_fragment, + colorspace_fragment, + colorspace_pars_fragment, + envmap_fragment, + envmap_common_pars_fragment, + envmap_pars_fragment, + envmap_pars_vertex, + envmap_physical_pars_fragment, + envmap_vertex, + fog_vertex, + fog_pars_vertex, + fog_fragment, + fog_pars_fragment, + gradientmap_pars_fragment, + lightmap_pars_fragment, + lights_lambert_fragment, + lights_lambert_pars_fragment, + lights_pars_begin, + lights_toon_fragment, + lights_toon_pars_fragment, + lights_phong_fragment, + lights_phong_pars_fragment, + lights_physical_fragment, + lights_physical_pars_fragment, + lights_fragment_begin, + lights_fragment_maps, + lights_fragment_end, + logdepthbuf_fragment, + logdepthbuf_pars_fragment, + logdepthbuf_pars_vertex, + logdepthbuf_vertex, + map_fragment, + map_pars_fragment, + map_particle_fragment, + map_particle_pars_fragment, + metalnessmap_fragment, + metalnessmap_pars_fragment, + morphinstance_vertex, + morphcolor_vertex, + morphnormal_vertex, + morphtarget_pars_vertex, + morphtarget_vertex, + normal_fragment_begin, + normal_fragment_maps, + normal_pars_fragment, + normal_pars_vertex, + normal_vertex, + normalmap_pars_fragment, + clearcoat_normal_fragment_begin, + clearcoat_normal_fragment_maps, + clearcoat_pars_fragment, + iridescence_pars_fragment, + opaque_fragment, + packing, + premultiplied_alpha_fragment, + project_vertex, + dithering_fragment, + dithering_pars_fragment, + roughnessmap_fragment, + roughnessmap_pars_fragment, + shadowmap_pars_fragment, + shadowmap_pars_vertex, + shadowmap_vertex, + shadowmask_pars_fragment, + skinbase_vertex, + skinning_pars_vertex, + skinning_vertex, + skinnormal_vertex, + specularmap_fragment, + specularmap_pars_fragment, + tonemapping_fragment, + tonemapping_pars_fragment, + transmission_fragment, + transmission_pars_fragment, + uv_pars_fragment, + uv_pars_vertex, + uv_vertex, + worldpos_vertex, + background_vert: vertex$h, + background_frag: fragment$h, + backgroundCube_vert: vertex$g, + backgroundCube_frag: fragment$g, + cube_vert: vertex$f, + cube_frag: fragment$f, + depth_vert: vertex$e, + depth_frag: fragment$e, + distanceRGBA_vert: vertex$d, + distanceRGBA_frag: fragment$d, + equirect_vert: vertex$c, + equirect_frag: fragment$c, + linedashed_vert: vertex$b, + linedashed_frag: fragment$b, + meshbasic_vert: vertex$a, + meshbasic_frag: fragment$a, + meshlambert_vert: vertex$9, + meshlambert_frag: fragment$9, + meshmatcap_vert: vertex$8, + meshmatcap_frag: fragment$8, + meshnormal_vert: vertex$7, + meshnormal_frag: fragment$7, + meshphong_vert: vertex$6, + meshphong_frag: fragment$6, + meshphysical_vert: vertex$5, + meshphysical_frag: fragment$5, + meshtoon_vert: vertex$4, + meshtoon_frag: fragment$4, + points_vert: vertex$3, + points_frag: fragment$3, + shadow_vert: vertex$2, + shadow_frag: fragment$2, + sprite_vert: vertex$1, + sprite_frag: fragment$1 +}; +const UniformsLib = { + common: { + diffuse: { value: /* @__PURE__ */ new Color(16777215) }, + opacity: { value: 1 }, + map: { value: null }, + mapTransform: { value: /* @__PURE__ */ new Matrix3() }, + alphaMap: { value: null }, + alphaMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + alphaTest: { value: 0 } + }, + specularmap: { + specularMap: { value: null }, + specularMapTransform: { value: /* @__PURE__ */ new Matrix3() } + }, + envmap: { + envMap: { value: null }, + envMapRotation: { value: /* @__PURE__ */ new Matrix3() }, + flipEnvMap: { value: -1 }, + reflectivity: { value: 1 }, + // basic, lambert, phong + ior: { value: 1.5 }, + // physical + refractionRatio: { value: 0.98 } + // basic, lambert, phong + }, + aomap: { + aoMap: { value: null }, + aoMapIntensity: { value: 1 }, + aoMapTransform: { value: /* @__PURE__ */ new Matrix3() } + }, + lightmap: { + lightMap: { value: null }, + lightMapIntensity: { value: 1 }, + lightMapTransform: { value: /* @__PURE__ */ new Matrix3() } + }, + bumpmap: { + bumpMap: { value: null }, + bumpMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + bumpScale: { value: 1 } + }, + normalmap: { + normalMap: { value: null }, + normalMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + normalScale: { value: /* @__PURE__ */ new Vector2(1, 1) } + }, + displacementmap: { + displacementMap: { value: null }, + displacementMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + displacementScale: { value: 1 }, + displacementBias: { value: 0 } + }, + emissivemap: { + emissiveMap: { value: null }, + emissiveMapTransform: { value: /* @__PURE__ */ new Matrix3() } + }, + metalnessmap: { + metalnessMap: { value: null }, + metalnessMapTransform: { value: /* @__PURE__ */ new Matrix3() } + }, + roughnessmap: { + roughnessMap: { value: null }, + roughnessMapTransform: { value: /* @__PURE__ */ new Matrix3() } + }, + gradientmap: { + gradientMap: { value: null } + }, + fog: { + fogDensity: { value: 25e-5 }, + fogNear: { value: 1 }, + fogFar: { value: 2e3 }, + fogColor: { value: /* @__PURE__ */ new Color(16777215) } + }, + lights: { + ambientLightColor: { value: [] }, + lightProbe: { value: [] }, + directionalLights: { value: [], properties: { + direction: {}, + color: {} + } }, + directionalLightShadows: { value: [], properties: { + shadowIntensity: 1, + shadowBias: {}, + shadowNormalBias: {}, + shadowRadius: {}, + shadowMapSize: {} + } }, + directionalShadowMap: { value: [] }, + directionalShadowMatrix: { value: [] }, + spotLights: { value: [], properties: { + color: {}, + position: {}, + direction: {}, + distance: {}, + coneCos: {}, + penumbraCos: {}, + decay: {} + } }, + spotLightShadows: { value: [], properties: { + shadowIntensity: 1, + shadowBias: {}, + shadowNormalBias: {}, + shadowRadius: {}, + shadowMapSize: {} + } }, + spotLightMap: { value: [] }, + spotShadowMap: { value: [] }, + spotLightMatrix: { value: [] }, + pointLights: { value: [], properties: { + color: {}, + position: {}, + decay: {}, + distance: {} + } }, + pointLightShadows: { value: [], properties: { + shadowIntensity: 1, + shadowBias: {}, + shadowNormalBias: {}, + shadowRadius: {}, + shadowMapSize: {}, + shadowCameraNear: {}, + shadowCameraFar: {} + } }, + pointShadowMap: { value: [] }, + pointShadowMatrix: { value: [] }, + hemisphereLights: { value: [], properties: { + direction: {}, + skyColor: {}, + groundColor: {} + } }, + // TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src + rectAreaLights: { value: [], properties: { + color: {}, + position: {}, + width: {}, + height: {} + } }, + ltc_1: { value: null }, + ltc_2: { value: null } + }, + points: { + diffuse: { value: /* @__PURE__ */ new Color(16777215) }, + opacity: { value: 1 }, + size: { value: 1 }, + scale: { value: 1 }, + map: { value: null }, + alphaMap: { value: null }, + alphaMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + alphaTest: { value: 0 }, + uvTransform: { value: /* @__PURE__ */ new Matrix3() } + }, + sprite: { + diffuse: { value: /* @__PURE__ */ new Color(16777215) }, + opacity: { value: 1 }, + center: { value: /* @__PURE__ */ new Vector2(0.5, 0.5) }, + rotation: { value: 0 }, + map: { value: null }, + mapTransform: { value: /* @__PURE__ */ new Matrix3() }, + alphaMap: { value: null }, + alphaMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + alphaTest: { value: 0 } + } +}; +const ShaderLib = { + basic: { + uniforms: /* @__PURE__ */ mergeUniforms([ + UniformsLib.common, + UniformsLib.specularmap, + UniformsLib.envmap, + UniformsLib.aomap, + UniformsLib.lightmap, + UniformsLib.fog + ]), + vertexShader: ShaderChunk.meshbasic_vert, + fragmentShader: ShaderChunk.meshbasic_frag + }, + lambert: { + uniforms: /* @__PURE__ */ mergeUniforms([ + UniformsLib.common, + UniformsLib.specularmap, + UniformsLib.envmap, + UniformsLib.aomap, + UniformsLib.lightmap, + UniformsLib.emissivemap, + UniformsLib.bumpmap, + UniformsLib.normalmap, + UniformsLib.displacementmap, + UniformsLib.fog, + UniformsLib.lights, + { + emissive: { value: /* @__PURE__ */ new Color(0) } + } + ]), + vertexShader: ShaderChunk.meshlambert_vert, + fragmentShader: ShaderChunk.meshlambert_frag + }, + phong: { + uniforms: /* @__PURE__ */ mergeUniforms([ + UniformsLib.common, + UniformsLib.specularmap, + UniformsLib.envmap, + UniformsLib.aomap, + UniformsLib.lightmap, + UniformsLib.emissivemap, + UniformsLib.bumpmap, + UniformsLib.normalmap, + UniformsLib.displacementmap, + UniformsLib.fog, + UniformsLib.lights, + { + emissive: { value: /* @__PURE__ */ new Color(0) }, + specular: { value: /* @__PURE__ */ new Color(1118481) }, + shininess: { value: 30 } + } + ]), + vertexShader: ShaderChunk.meshphong_vert, + fragmentShader: ShaderChunk.meshphong_frag + }, + standard: { + uniforms: /* @__PURE__ */ mergeUniforms([ + UniformsLib.common, + UniformsLib.envmap, + UniformsLib.aomap, + UniformsLib.lightmap, + UniformsLib.emissivemap, + UniformsLib.bumpmap, + UniformsLib.normalmap, + UniformsLib.displacementmap, + UniformsLib.roughnessmap, + UniformsLib.metalnessmap, + UniformsLib.fog, + UniformsLib.lights, + { + emissive: { value: /* @__PURE__ */ new Color(0) }, + roughness: { value: 1 }, + metalness: { value: 0 }, + envMapIntensity: { value: 1 } + } + ]), + vertexShader: ShaderChunk.meshphysical_vert, + fragmentShader: ShaderChunk.meshphysical_frag + }, + toon: { + uniforms: /* @__PURE__ */ mergeUniforms([ + UniformsLib.common, + UniformsLib.aomap, + UniformsLib.lightmap, + UniformsLib.emissivemap, + UniformsLib.bumpmap, + UniformsLib.normalmap, + UniformsLib.displacementmap, + UniformsLib.gradientmap, + UniformsLib.fog, + UniformsLib.lights, + { + emissive: { value: /* @__PURE__ */ new Color(0) } + } + ]), + vertexShader: ShaderChunk.meshtoon_vert, + fragmentShader: ShaderChunk.meshtoon_frag + }, + matcap: { + uniforms: /* @__PURE__ */ mergeUniforms([ + UniformsLib.common, + UniformsLib.bumpmap, + UniformsLib.normalmap, + UniformsLib.displacementmap, + UniformsLib.fog, + { + matcap: { value: null } + } + ]), + vertexShader: ShaderChunk.meshmatcap_vert, + fragmentShader: ShaderChunk.meshmatcap_frag + }, + points: { + uniforms: /* @__PURE__ */ mergeUniforms([ + UniformsLib.points, + UniformsLib.fog + ]), + vertexShader: ShaderChunk.points_vert, + fragmentShader: ShaderChunk.points_frag + }, + dashed: { + uniforms: /* @__PURE__ */ mergeUniforms([ + UniformsLib.common, + UniformsLib.fog, + { + scale: { value: 1 }, + dashSize: { value: 1 }, + totalSize: { value: 2 } + } + ]), + vertexShader: ShaderChunk.linedashed_vert, + fragmentShader: ShaderChunk.linedashed_frag + }, + depth: { + uniforms: /* @__PURE__ */ mergeUniforms([ + UniformsLib.common, + UniformsLib.displacementmap + ]), + vertexShader: ShaderChunk.depth_vert, + fragmentShader: ShaderChunk.depth_frag + }, + normal: { + uniforms: /* @__PURE__ */ mergeUniforms([ + UniformsLib.common, + UniformsLib.bumpmap, + UniformsLib.normalmap, + UniformsLib.displacementmap, + { + opacity: { value: 1 } + } + ]), + vertexShader: ShaderChunk.meshnormal_vert, + fragmentShader: ShaderChunk.meshnormal_frag + }, + sprite: { + uniforms: /* @__PURE__ */ mergeUniforms([ + UniformsLib.sprite, + UniformsLib.fog + ]), + vertexShader: ShaderChunk.sprite_vert, + fragmentShader: ShaderChunk.sprite_frag + }, + background: { + uniforms: { + uvTransform: { value: /* @__PURE__ */ new Matrix3() }, + t2D: { value: null }, + backgroundIntensity: { value: 1 } + }, + vertexShader: ShaderChunk.background_vert, + fragmentShader: ShaderChunk.background_frag + }, + backgroundCube: { + uniforms: { + envMap: { value: null }, + flipEnvMap: { value: -1 }, + backgroundBlurriness: { value: 0 }, + backgroundIntensity: { value: 1 }, + backgroundRotation: { value: /* @__PURE__ */ new Matrix3() } + }, + vertexShader: ShaderChunk.backgroundCube_vert, + fragmentShader: ShaderChunk.backgroundCube_frag + }, + cube: { + uniforms: { + tCube: { value: null }, + tFlip: { value: -1 }, + opacity: { value: 1 } + }, + vertexShader: ShaderChunk.cube_vert, + fragmentShader: ShaderChunk.cube_frag + }, + equirect: { + uniforms: { + tEquirect: { value: null } + }, + vertexShader: ShaderChunk.equirect_vert, + fragmentShader: ShaderChunk.equirect_frag + }, + distanceRGBA: { + uniforms: /* @__PURE__ */ mergeUniforms([ + UniformsLib.common, + UniformsLib.displacementmap, + { + referencePosition: { value: /* @__PURE__ */ new Vector3() }, + nearDistance: { value: 1 }, + farDistance: { value: 1e3 } + } + ]), + vertexShader: ShaderChunk.distanceRGBA_vert, + fragmentShader: ShaderChunk.distanceRGBA_frag + }, + shadow: { + uniforms: /* @__PURE__ */ mergeUniforms([ + UniformsLib.lights, + UniformsLib.fog, + { + color: { value: /* @__PURE__ */ new Color(0) }, + opacity: { value: 1 } + } + ]), + vertexShader: ShaderChunk.shadow_vert, + fragmentShader: ShaderChunk.shadow_frag + } +}; +ShaderLib.physical = { + uniforms: /* @__PURE__ */ mergeUniforms([ + ShaderLib.standard.uniforms, + { + clearcoat: { value: 0 }, + clearcoatMap: { value: null }, + clearcoatMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + clearcoatNormalMap: { value: null }, + clearcoatNormalMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + clearcoatNormalScale: { value: /* @__PURE__ */ new Vector2(1, 1) }, + clearcoatRoughness: { value: 0 }, + clearcoatRoughnessMap: { value: null }, + clearcoatRoughnessMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + dispersion: { value: 0 }, + iridescence: { value: 0 }, + iridescenceMap: { value: null }, + iridescenceMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + iridescenceIOR: { value: 1.3 }, + iridescenceThicknessMinimum: { value: 100 }, + iridescenceThicknessMaximum: { value: 400 }, + iridescenceThicknessMap: { value: null }, + iridescenceThicknessMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + sheen: { value: 0 }, + sheenColor: { value: /* @__PURE__ */ new Color(0) }, + sheenColorMap: { value: null }, + sheenColorMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + sheenRoughness: { value: 1 }, + sheenRoughnessMap: { value: null }, + sheenRoughnessMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + transmission: { value: 0 }, + transmissionMap: { value: null }, + transmissionMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + transmissionSamplerSize: { value: /* @__PURE__ */ new Vector2() }, + transmissionSamplerMap: { value: null }, + thickness: { value: 0 }, + thicknessMap: { value: null }, + thicknessMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + attenuationDistance: { value: 0 }, + attenuationColor: { value: /* @__PURE__ */ new Color(0) }, + specularColor: { value: /* @__PURE__ */ new Color(1, 1, 1) }, + specularColorMap: { value: null }, + specularColorMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + specularIntensity: { value: 1 }, + specularIntensityMap: { value: null }, + specularIntensityMapTransform: { value: /* @__PURE__ */ new Matrix3() }, + anisotropyVector: { value: /* @__PURE__ */ new Vector2() }, + anisotropyMap: { value: null }, + anisotropyMapTransform: { value: /* @__PURE__ */ new Matrix3() } + } + ]), + vertexShader: ShaderChunk.meshphysical_vert, + fragmentShader: ShaderChunk.meshphysical_frag +}; +const _rgb = { r: 0, b: 0, g: 0 }; +const _e1$1 = /* @__PURE__ */ new Euler(); +const _m1$1 = /* @__PURE__ */ new Matrix4(); +function WebGLBackground(renderer, cubemaps, cubeuvmaps, state, objects, alpha, premultipliedAlpha) { + const clearColor = new Color(0); + let clearAlpha = alpha === true ? 0 : 1; + let planeMesh; + let boxMesh; + let currentBackground = null; + let currentBackgroundVersion = 0; + let currentTonemapping = null; + function getBackground(scene) { + let background = scene.isScene === true ? scene.background : null; + if (background && background.isTexture) { + const usePMREM = scene.backgroundBlurriness > 0; + background = (usePMREM ? cubeuvmaps : cubemaps).get(background); + } + return background; + } + __name(getBackground, "getBackground"); + function render(scene) { + let forceClear = false; + const background = getBackground(scene); + if (background === null) { + setClear(clearColor, clearAlpha); + } else if (background && background.isColor) { + setClear(background, 1); + forceClear = true; + } + const environmentBlendMode = renderer.xr.getEnvironmentBlendMode(); + if (environmentBlendMode === "additive") { + state.buffers.color.setClear(0, 0, 0, 1, premultipliedAlpha); + } else if (environmentBlendMode === "alpha-blend") { + state.buffers.color.setClear(0, 0, 0, 0, premultipliedAlpha); + } + if (renderer.autoClear || forceClear) { + state.buffers.depth.setTest(true); + state.buffers.depth.setMask(true); + state.buffers.color.setMask(true); + renderer.clear(renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil); + } + } + __name(render, "render"); + function addToRenderList(renderList, scene) { + const background = getBackground(scene); + if (background && (background.isCubeTexture || background.mapping === CubeUVReflectionMapping)) { + if (boxMesh === void 0) { + boxMesh = new Mesh( + new BoxGeometry(1, 1, 1), + new ShaderMaterial({ + name: "BackgroundCubeMaterial", + uniforms: cloneUniforms(ShaderLib.backgroundCube.uniforms), + vertexShader: ShaderLib.backgroundCube.vertexShader, + fragmentShader: ShaderLib.backgroundCube.fragmentShader, + side: BackSide, + depthTest: false, + depthWrite: false, + fog: false + }) + ); + boxMesh.geometry.deleteAttribute("normal"); + boxMesh.geometry.deleteAttribute("uv"); + boxMesh.onBeforeRender = function(renderer2, scene2, camera) { + this.matrixWorld.copyPosition(camera.matrixWorld); + }; + Object.defineProperty(boxMesh.material, "envMap", { + get: /* @__PURE__ */ __name(function() { + return this.uniforms.envMap.value; + }, "get") + }); + objects.update(boxMesh); + } + _e1$1.copy(scene.backgroundRotation); + _e1$1.x *= -1; + _e1$1.y *= -1; + _e1$1.z *= -1; + if (background.isCubeTexture && background.isRenderTargetTexture === false) { + _e1$1.y *= -1; + _e1$1.z *= -1; + } + boxMesh.material.uniforms.envMap.value = background; + boxMesh.material.uniforms.flipEnvMap.value = background.isCubeTexture && background.isRenderTargetTexture === false ? -1 : 1; + boxMesh.material.uniforms.backgroundBlurriness.value = scene.backgroundBlurriness; + boxMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity; + boxMesh.material.uniforms.backgroundRotation.value.setFromMatrix4(_m1$1.makeRotationFromEuler(_e1$1)); + boxMesh.material.toneMapped = ColorManagement.getTransfer(background.colorSpace) !== SRGBTransfer; + if (currentBackground !== background || currentBackgroundVersion !== background.version || currentTonemapping !== renderer.toneMapping) { + boxMesh.material.needsUpdate = true; + currentBackground = background; + currentBackgroundVersion = background.version; + currentTonemapping = renderer.toneMapping; + } + boxMesh.layers.enableAll(); + renderList.unshift(boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null); + } else if (background && background.isTexture) { + if (planeMesh === void 0) { + planeMesh = new Mesh( + new PlaneGeometry(2, 2), + new ShaderMaterial({ + name: "BackgroundMaterial", + uniforms: cloneUniforms(ShaderLib.background.uniforms), + vertexShader: ShaderLib.background.vertexShader, + fragmentShader: ShaderLib.background.fragmentShader, + side: FrontSide, + depthTest: false, + depthWrite: false, + fog: false + }) + ); + planeMesh.geometry.deleteAttribute("normal"); + Object.defineProperty(planeMesh.material, "map", { + get: /* @__PURE__ */ __name(function() { + return this.uniforms.t2D.value; + }, "get") + }); + objects.update(planeMesh); + } + planeMesh.material.uniforms.t2D.value = background; + planeMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity; + planeMesh.material.toneMapped = ColorManagement.getTransfer(background.colorSpace) !== SRGBTransfer; + if (background.matrixAutoUpdate === true) { + background.updateMatrix(); + } + planeMesh.material.uniforms.uvTransform.value.copy(background.matrix); + if (currentBackground !== background || currentBackgroundVersion !== background.version || currentTonemapping !== renderer.toneMapping) { + planeMesh.material.needsUpdate = true; + currentBackground = background; + currentBackgroundVersion = background.version; + currentTonemapping = renderer.toneMapping; + } + planeMesh.layers.enableAll(); + renderList.unshift(planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null); + } + } + __name(addToRenderList, "addToRenderList"); + function setClear(color, alpha2) { + color.getRGB(_rgb, getUnlitUniformColorSpace(renderer)); + state.buffers.color.setClear(_rgb.r, _rgb.g, _rgb.b, alpha2, premultipliedAlpha); + } + __name(setClear, "setClear"); + return { + getClearColor: /* @__PURE__ */ __name(function() { + return clearColor; + }, "getClearColor"), + setClearColor: /* @__PURE__ */ __name(function(color, alpha2 = 1) { + clearColor.set(color); + clearAlpha = alpha2; + setClear(clearColor, clearAlpha); + }, "setClearColor"), + getClearAlpha: /* @__PURE__ */ __name(function() { + return clearAlpha; + }, "getClearAlpha"), + setClearAlpha: /* @__PURE__ */ __name(function(alpha2) { + clearAlpha = alpha2; + setClear(clearColor, clearAlpha); + }, "setClearAlpha"), + render, + addToRenderList + }; +} +__name(WebGLBackground, "WebGLBackground"); +function WebGLBindingStates(gl, attributes) { + const maxVertexAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS); + const bindingStates = {}; + const defaultState = createBindingState(null); + let currentState = defaultState; + let forceUpdate = false; + function setup(object, material, program, geometry, index) { + let updateBuffers = false; + const state = getBindingState(geometry, program, material); + if (currentState !== state) { + currentState = state; + bindVertexArrayObject(currentState.object); + } + updateBuffers = needsUpdate(object, geometry, program, index); + if (updateBuffers) saveCache(object, geometry, program, index); + if (index !== null) { + attributes.update(index, gl.ELEMENT_ARRAY_BUFFER); + } + if (updateBuffers || forceUpdate) { + forceUpdate = false; + setupVertexAttributes(object, material, program, geometry); + if (index !== null) { + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, attributes.get(index).buffer); + } + } + } + __name(setup, "setup"); + function createVertexArrayObject() { + return gl.createVertexArray(); + } + __name(createVertexArrayObject, "createVertexArrayObject"); + function bindVertexArrayObject(vao) { + return gl.bindVertexArray(vao); + } + __name(bindVertexArrayObject, "bindVertexArrayObject"); + function deleteVertexArrayObject(vao) { + return gl.deleteVertexArray(vao); + } + __name(deleteVertexArrayObject, "deleteVertexArrayObject"); + function getBindingState(geometry, program, material) { + const wireframe = material.wireframe === true; + let programMap = bindingStates[geometry.id]; + if (programMap === void 0) { + programMap = {}; + bindingStates[geometry.id] = programMap; + } + let stateMap = programMap[program.id]; + if (stateMap === void 0) { + stateMap = {}; + programMap[program.id] = stateMap; + } + let state = stateMap[wireframe]; + if (state === void 0) { + state = createBindingState(createVertexArrayObject()); + stateMap[wireframe] = state; + } + return state; + } + __name(getBindingState, "getBindingState"); + function createBindingState(vao) { + const newAttributes = []; + const enabledAttributes = []; + const attributeDivisors = []; + for (let i = 0; i < maxVertexAttributes; i++) { + newAttributes[i] = 0; + enabledAttributes[i] = 0; + attributeDivisors[i] = 0; + } + return { + // for backward compatibility on non-VAO support browser + geometry: null, + program: null, + wireframe: false, + newAttributes, + enabledAttributes, + attributeDivisors, + object: vao, + attributes: {}, + index: null + }; + } + __name(createBindingState, "createBindingState"); + function needsUpdate(object, geometry, program, index) { + const cachedAttributes = currentState.attributes; + const geometryAttributes = geometry.attributes; + let attributesNum = 0; + const programAttributes = program.getAttributes(); + for (const name in programAttributes) { + const programAttribute = programAttributes[name]; + if (programAttribute.location >= 0) { + const cachedAttribute = cachedAttributes[name]; + let geometryAttribute = geometryAttributes[name]; + if (geometryAttribute === void 0) { + if (name === "instanceMatrix" && object.instanceMatrix) geometryAttribute = object.instanceMatrix; + if (name === "instanceColor" && object.instanceColor) geometryAttribute = object.instanceColor; + } + if (cachedAttribute === void 0) return true; + if (cachedAttribute.attribute !== geometryAttribute) return true; + if (geometryAttribute && cachedAttribute.data !== geometryAttribute.data) return true; + attributesNum++; + } + } + if (currentState.attributesNum !== attributesNum) return true; + if (currentState.index !== index) return true; + return false; + } + __name(needsUpdate, "needsUpdate"); + function saveCache(object, geometry, program, index) { + const cache = {}; + const attributes2 = geometry.attributes; + let attributesNum = 0; + const programAttributes = program.getAttributes(); + for (const name in programAttributes) { + const programAttribute = programAttributes[name]; + if (programAttribute.location >= 0) { + let attribute = attributes2[name]; + if (attribute === void 0) { + if (name === "instanceMatrix" && object.instanceMatrix) attribute = object.instanceMatrix; + if (name === "instanceColor" && object.instanceColor) attribute = object.instanceColor; + } + const data = {}; + data.attribute = attribute; + if (attribute && attribute.data) { + data.data = attribute.data; + } + cache[name] = data; + attributesNum++; + } + } + currentState.attributes = cache; + currentState.attributesNum = attributesNum; + currentState.index = index; + } + __name(saveCache, "saveCache"); + function initAttributes() { + const newAttributes = currentState.newAttributes; + for (let i = 0, il = newAttributes.length; i < il; i++) { + newAttributes[i] = 0; + } + } + __name(initAttributes, "initAttributes"); + function enableAttribute(attribute) { + enableAttributeAndDivisor(attribute, 0); + } + __name(enableAttribute, "enableAttribute"); + function enableAttributeAndDivisor(attribute, meshPerAttribute) { + const newAttributes = currentState.newAttributes; + const enabledAttributes = currentState.enabledAttributes; + const attributeDivisors = currentState.attributeDivisors; + newAttributes[attribute] = 1; + if (enabledAttributes[attribute] === 0) { + gl.enableVertexAttribArray(attribute); + enabledAttributes[attribute] = 1; + } + if (attributeDivisors[attribute] !== meshPerAttribute) { + gl.vertexAttribDivisor(attribute, meshPerAttribute); + attributeDivisors[attribute] = meshPerAttribute; + } + } + __name(enableAttributeAndDivisor, "enableAttributeAndDivisor"); + function disableUnusedAttributes() { + const newAttributes = currentState.newAttributes; + const enabledAttributes = currentState.enabledAttributes; + for (let i = 0, il = enabledAttributes.length; i < il; i++) { + if (enabledAttributes[i] !== newAttributes[i]) { + gl.disableVertexAttribArray(i); + enabledAttributes[i] = 0; + } + } + } + __name(disableUnusedAttributes, "disableUnusedAttributes"); + function vertexAttribPointer(index, size, type, normalized, stride, offset, integer) { + if (integer === true) { + gl.vertexAttribIPointer(index, size, type, stride, offset); + } else { + gl.vertexAttribPointer(index, size, type, normalized, stride, offset); + } + } + __name(vertexAttribPointer, "vertexAttribPointer"); + function setupVertexAttributes(object, material, program, geometry) { + initAttributes(); + const geometryAttributes = geometry.attributes; + const programAttributes = program.getAttributes(); + const materialDefaultAttributeValues = material.defaultAttributeValues; + for (const name in programAttributes) { + const programAttribute = programAttributes[name]; + if (programAttribute.location >= 0) { + let geometryAttribute = geometryAttributes[name]; + if (geometryAttribute === void 0) { + if (name === "instanceMatrix" && object.instanceMatrix) geometryAttribute = object.instanceMatrix; + if (name === "instanceColor" && object.instanceColor) geometryAttribute = object.instanceColor; + } + if (geometryAttribute !== void 0) { + const normalized = geometryAttribute.normalized; + const size = geometryAttribute.itemSize; + const attribute = attributes.get(geometryAttribute); + if (attribute === void 0) continue; + const buffer = attribute.buffer; + const type = attribute.type; + const bytesPerElement = attribute.bytesPerElement; + const integer = type === gl.INT || type === gl.UNSIGNED_INT || geometryAttribute.gpuType === IntType; + if (geometryAttribute.isInterleavedBufferAttribute) { + const data = geometryAttribute.data; + const stride = data.stride; + const offset = geometryAttribute.offset; + if (data.isInstancedInterleavedBuffer) { + for (let i = 0; i < programAttribute.locationSize; i++) { + enableAttributeAndDivisor(programAttribute.location + i, data.meshPerAttribute); + } + if (object.isInstancedMesh !== true && geometry._maxInstanceCount === void 0) { + geometry._maxInstanceCount = data.meshPerAttribute * data.count; + } + } else { + for (let i = 0; i < programAttribute.locationSize; i++) { + enableAttribute(programAttribute.location + i); + } + } + gl.bindBuffer(gl.ARRAY_BUFFER, buffer); + for (let i = 0; i < programAttribute.locationSize; i++) { + vertexAttribPointer( + programAttribute.location + i, + size / programAttribute.locationSize, + type, + normalized, + stride * bytesPerElement, + (offset + size / programAttribute.locationSize * i) * bytesPerElement, + integer + ); + } + } else { + if (geometryAttribute.isInstancedBufferAttribute) { + for (let i = 0; i < programAttribute.locationSize; i++) { + enableAttributeAndDivisor(programAttribute.location + i, geometryAttribute.meshPerAttribute); + } + if (object.isInstancedMesh !== true && geometry._maxInstanceCount === void 0) { + geometry._maxInstanceCount = geometryAttribute.meshPerAttribute * geometryAttribute.count; + } + } else { + for (let i = 0; i < programAttribute.locationSize; i++) { + enableAttribute(programAttribute.location + i); + } + } + gl.bindBuffer(gl.ARRAY_BUFFER, buffer); + for (let i = 0; i < programAttribute.locationSize; i++) { + vertexAttribPointer( + programAttribute.location + i, + size / programAttribute.locationSize, + type, + normalized, + size * bytesPerElement, + size / programAttribute.locationSize * i * bytesPerElement, + integer + ); + } + } + } else if (materialDefaultAttributeValues !== void 0) { + const value = materialDefaultAttributeValues[name]; + if (value !== void 0) { + switch (value.length) { + case 2: + gl.vertexAttrib2fv(programAttribute.location, value); + break; + case 3: + gl.vertexAttrib3fv(programAttribute.location, value); + break; + case 4: + gl.vertexAttrib4fv(programAttribute.location, value); + break; + default: + gl.vertexAttrib1fv(programAttribute.location, value); + } + } + } + } + } + disableUnusedAttributes(); + } + __name(setupVertexAttributes, "setupVertexAttributes"); + function dispose() { + reset(); + for (const geometryId in bindingStates) { + const programMap = bindingStates[geometryId]; + for (const programId in programMap) { + const stateMap = programMap[programId]; + for (const wireframe in stateMap) { + deleteVertexArrayObject(stateMap[wireframe].object); + delete stateMap[wireframe]; + } + delete programMap[programId]; + } + delete bindingStates[geometryId]; + } + } + __name(dispose, "dispose"); + function releaseStatesOfGeometry(geometry) { + if (bindingStates[geometry.id] === void 0) return; + const programMap = bindingStates[geometry.id]; + for (const programId in programMap) { + const stateMap = programMap[programId]; + for (const wireframe in stateMap) { + deleteVertexArrayObject(stateMap[wireframe].object); + delete stateMap[wireframe]; + } + delete programMap[programId]; + } + delete bindingStates[geometry.id]; + } + __name(releaseStatesOfGeometry, "releaseStatesOfGeometry"); + function releaseStatesOfProgram(program) { + for (const geometryId in bindingStates) { + const programMap = bindingStates[geometryId]; + if (programMap[program.id] === void 0) continue; + const stateMap = programMap[program.id]; + for (const wireframe in stateMap) { + deleteVertexArrayObject(stateMap[wireframe].object); + delete stateMap[wireframe]; + } + delete programMap[program.id]; + } + } + __name(releaseStatesOfProgram, "releaseStatesOfProgram"); + function reset() { + resetDefaultState(); + forceUpdate = true; + if (currentState === defaultState) return; + currentState = defaultState; + bindVertexArrayObject(currentState.object); + } + __name(reset, "reset"); + function resetDefaultState() { + defaultState.geometry = null; + defaultState.program = null; + defaultState.wireframe = false; + } + __name(resetDefaultState, "resetDefaultState"); + return { + setup, + reset, + resetDefaultState, + dispose, + releaseStatesOfGeometry, + releaseStatesOfProgram, + initAttributes, + enableAttribute, + disableUnusedAttributes + }; +} +__name(WebGLBindingStates, "WebGLBindingStates"); +function WebGLBufferRenderer(gl, extensions, info) { + let mode; + function setMode(value) { + mode = value; + } + __name(setMode, "setMode"); + function render(start, count) { + gl.drawArrays(mode, start, count); + info.update(count, mode, 1); + } + __name(render, "render"); + function renderInstances(start, count, primcount) { + if (primcount === 0) return; + gl.drawArraysInstanced(mode, start, count, primcount); + info.update(count, mode, primcount); + } + __name(renderInstances, "renderInstances"); + function renderMultiDraw(starts, counts, drawCount) { + if (drawCount === 0) return; + const extension = extensions.get("WEBGL_multi_draw"); + extension.multiDrawArraysWEBGL(mode, starts, 0, counts, 0, drawCount); + let elementCount = 0; + for (let i = 0; i < drawCount; i++) { + elementCount += counts[i]; + } + info.update(elementCount, mode, 1); + } + __name(renderMultiDraw, "renderMultiDraw"); + function renderMultiDrawInstances(starts, counts, drawCount, primcount) { + if (drawCount === 0) return; + const extension = extensions.get("WEBGL_multi_draw"); + if (extension === null) { + for (let i = 0; i < starts.length; i++) { + renderInstances(starts[i], counts[i], primcount[i]); + } + } else { + extension.multiDrawArraysInstancedWEBGL(mode, starts, 0, counts, 0, primcount, 0, drawCount); + let elementCount = 0; + for (let i = 0; i < drawCount; i++) { + elementCount += counts[i] * primcount[i]; + } + info.update(elementCount, mode, 1); + } + } + __name(renderMultiDrawInstances, "renderMultiDrawInstances"); + this.setMode = setMode; + this.render = render; + this.renderInstances = renderInstances; + this.renderMultiDraw = renderMultiDraw; + this.renderMultiDrawInstances = renderMultiDrawInstances; +} +__name(WebGLBufferRenderer, "WebGLBufferRenderer"); +function WebGLCapabilities(gl, extensions, parameters, utils) { + let maxAnisotropy; + function getMaxAnisotropy() { + if (maxAnisotropy !== void 0) return maxAnisotropy; + if (extensions.has("EXT_texture_filter_anisotropic") === true) { + const extension = extensions.get("EXT_texture_filter_anisotropic"); + maxAnisotropy = gl.getParameter(extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT); + } else { + maxAnisotropy = 0; + } + return maxAnisotropy; + } + __name(getMaxAnisotropy, "getMaxAnisotropy"); + function textureFormatReadable(textureFormat) { + if (textureFormat !== RGBAFormat && utils.convert(textureFormat) !== gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_FORMAT)) { + return false; + } + return true; + } + __name(textureFormatReadable, "textureFormatReadable"); + function textureTypeReadable(textureType) { + const halfFloatSupportedByExt = textureType === HalfFloatType && (extensions.has("EXT_color_buffer_half_float") || extensions.has("EXT_color_buffer_float")); + if (textureType !== UnsignedByteType && utils.convert(textureType) !== gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_TYPE) && // Edge and Chrome Mac < 52 (#9513) + textureType !== FloatType && !halfFloatSupportedByExt) { + return false; + } + return true; + } + __name(textureTypeReadable, "textureTypeReadable"); + function getMaxPrecision(precision2) { + if (precision2 === "highp") { + if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT).precision > 0 && gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT).precision > 0) { + return "highp"; + } + precision2 = "mediump"; + } + if (precision2 === "mediump") { + if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT).precision > 0 && gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT).precision > 0) { + return "mediump"; + } + } + return "lowp"; + } + __name(getMaxPrecision, "getMaxPrecision"); + let precision = parameters.precision !== void 0 ? parameters.precision : "highp"; + const maxPrecision = getMaxPrecision(precision); + if (maxPrecision !== precision) { + console.warn("THREE.WebGLRenderer:", precision, "not supported, using", maxPrecision, "instead."); + precision = maxPrecision; + } + const logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true; + const reverseDepthBuffer = parameters.reverseDepthBuffer === true && extensions.has("EXT_clip_control"); + const maxTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS); + const maxVertexTextures = gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS); + const maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE); + const maxCubemapSize = gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE); + const maxAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS); + const maxVertexUniforms = gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS); + const maxVaryings = gl.getParameter(gl.MAX_VARYING_VECTORS); + const maxFragmentUniforms = gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS); + const vertexTextures = maxVertexTextures > 0; + const maxSamples = gl.getParameter(gl.MAX_SAMPLES); + return { + isWebGL2: true, + // keeping this for backwards compatibility + getMaxAnisotropy, + getMaxPrecision, + textureFormatReadable, + textureTypeReadable, + precision, + logarithmicDepthBuffer, + reverseDepthBuffer, + maxTextures, + maxVertexTextures, + maxTextureSize, + maxCubemapSize, + maxAttributes, + maxVertexUniforms, + maxVaryings, + maxFragmentUniforms, + vertexTextures, + maxSamples + }; +} +__name(WebGLCapabilities, "WebGLCapabilities"); +function WebGLClipping(properties) { + const scope = this; + let globalState = null, numGlobalPlanes = 0, localClippingEnabled = false, renderingShadows = false; + const plane = new Plane(), viewNormalMatrix = new Matrix3(), uniform = { value: null, needsUpdate: false }; + this.uniform = uniform; + this.numPlanes = 0; + this.numIntersection = 0; + this.init = function(planes, enableLocalClipping) { + const enabled = planes.length !== 0 || enableLocalClipping || // enable state of previous frame - the clipping code has to + // run another frame in order to reset the state: + numGlobalPlanes !== 0 || localClippingEnabled; + localClippingEnabled = enableLocalClipping; + numGlobalPlanes = planes.length; + return enabled; + }; + this.beginShadows = function() { + renderingShadows = true; + projectPlanes(null); + }; + this.endShadows = function() { + renderingShadows = false; + }; + this.setGlobalState = function(planes, camera) { + globalState = projectPlanes(planes, camera, 0); + }; + this.setState = function(material, camera, useCache) { + const planes = material.clippingPlanes, clipIntersection = material.clipIntersection, clipShadows = material.clipShadows; + const materialProperties = properties.get(material); + if (!localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && !clipShadows) { + if (renderingShadows) { + projectPlanes(null); + } else { + resetGlobalState(); + } + } else { + const nGlobal = renderingShadows ? 0 : numGlobalPlanes, lGlobal = nGlobal * 4; + let dstArray = materialProperties.clippingState || null; + uniform.value = dstArray; + dstArray = projectPlanes(planes, camera, lGlobal, useCache); + for (let i = 0; i !== lGlobal; ++i) { + dstArray[i] = globalState[i]; + } + materialProperties.clippingState = dstArray; + this.numIntersection = clipIntersection ? this.numPlanes : 0; + this.numPlanes += nGlobal; + } + }; + function resetGlobalState() { + if (uniform.value !== globalState) { + uniform.value = globalState; + uniform.needsUpdate = numGlobalPlanes > 0; + } + scope.numPlanes = numGlobalPlanes; + scope.numIntersection = 0; + } + __name(resetGlobalState, "resetGlobalState"); + function projectPlanes(planes, camera, dstOffset, skipTransform) { + const nPlanes = planes !== null ? planes.length : 0; + let dstArray = null; + if (nPlanes !== 0) { + dstArray = uniform.value; + if (skipTransform !== true || dstArray === null) { + const flatSize = dstOffset + nPlanes * 4, viewMatrix = camera.matrixWorldInverse; + viewNormalMatrix.getNormalMatrix(viewMatrix); + if (dstArray === null || dstArray.length < flatSize) { + dstArray = new Float32Array(flatSize); + } + for (let i = 0, i4 = dstOffset; i !== nPlanes; ++i, i4 += 4) { + plane.copy(planes[i]).applyMatrix4(viewMatrix, viewNormalMatrix); + plane.normal.toArray(dstArray, i4); + dstArray[i4 + 3] = plane.constant; + } + } + uniform.value = dstArray; + uniform.needsUpdate = true; + } + scope.numPlanes = nPlanes; + scope.numIntersection = 0; + return dstArray; + } + __name(projectPlanes, "projectPlanes"); +} +__name(WebGLClipping, "WebGLClipping"); +function WebGLCubeMaps(renderer) { + let cubemaps = /* @__PURE__ */ new WeakMap(); + function mapTextureMapping(texture, mapping) { + if (mapping === EquirectangularReflectionMapping) { + texture.mapping = CubeReflectionMapping; + } else if (mapping === EquirectangularRefractionMapping) { + texture.mapping = CubeRefractionMapping; + } + return texture; + } + __name(mapTextureMapping, "mapTextureMapping"); + function get(texture) { + if (texture && texture.isTexture) { + const mapping = texture.mapping; + if (mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping) { + if (cubemaps.has(texture)) { + const cubemap = cubemaps.get(texture).texture; + return mapTextureMapping(cubemap, texture.mapping); + } else { + const image = texture.image; + if (image && image.height > 0) { + const renderTarget = new WebGLCubeRenderTarget(image.height); + renderTarget.fromEquirectangularTexture(renderer, texture); + cubemaps.set(texture, renderTarget); + texture.addEventListener("dispose", onTextureDispose); + return mapTextureMapping(renderTarget.texture, texture.mapping); + } else { + return null; + } + } + } + } + return texture; + } + __name(get, "get"); + function onTextureDispose(event) { + const texture = event.target; + texture.removeEventListener("dispose", onTextureDispose); + const cubemap = cubemaps.get(texture); + if (cubemap !== void 0) { + cubemaps.delete(texture); + cubemap.dispose(); + } + } + __name(onTextureDispose, "onTextureDispose"); + function dispose() { + cubemaps = /* @__PURE__ */ new WeakMap(); + } + __name(dispose, "dispose"); + return { + get, + dispose + }; +} +__name(WebGLCubeMaps, "WebGLCubeMaps"); +class OrthographicCamera extends Camera { + static { + __name(this, "OrthographicCamera"); + } + constructor(left = -1, right = 1, top = 1, bottom = -1, near = 0.1, far = 2e3) { + super(); + this.isOrthographicCamera = true; + this.type = "OrthographicCamera"; + this.zoom = 1; + this.view = null; + this.left = left; + this.right = right; + this.top = top; + this.bottom = bottom; + this.near = near; + this.far = far; + this.updateProjectionMatrix(); + } + copy(source, recursive) { + super.copy(source, recursive); + this.left = source.left; + this.right = source.right; + this.top = source.top; + this.bottom = source.bottom; + this.near = source.near; + this.far = source.far; + this.zoom = source.zoom; + this.view = source.view === null ? null : Object.assign({}, source.view); + return this; + } + setViewOffset(fullWidth, fullHeight, x, y, width, height) { + if (this.view === null) { + this.view = { + enabled: true, + fullWidth: 1, + fullHeight: 1, + offsetX: 0, + offsetY: 0, + width: 1, + height: 1 + }; + } + this.view.enabled = true; + this.view.fullWidth = fullWidth; + this.view.fullHeight = fullHeight; + this.view.offsetX = x; + this.view.offsetY = y; + this.view.width = width; + this.view.height = height; + this.updateProjectionMatrix(); + } + clearViewOffset() { + if (this.view !== null) { + this.view.enabled = false; + } + this.updateProjectionMatrix(); + } + updateProjectionMatrix() { + const dx = (this.right - this.left) / (2 * this.zoom); + const dy = (this.top - this.bottom) / (2 * this.zoom); + const cx = (this.right + this.left) / 2; + const cy = (this.top + this.bottom) / 2; + let left = cx - dx; + let right = cx + dx; + let top = cy + dy; + let bottom = cy - dy; + if (this.view !== null && this.view.enabled) { + const scaleW = (this.right - this.left) / this.view.fullWidth / this.zoom; + const scaleH = (this.top - this.bottom) / this.view.fullHeight / this.zoom; + left += scaleW * this.view.offsetX; + right = left + scaleW * this.view.width; + top -= scaleH * this.view.offsetY; + bottom = top - scaleH * this.view.height; + } + this.projectionMatrix.makeOrthographic(left, right, top, bottom, this.near, this.far, this.coordinateSystem); + this.projectionMatrixInverse.copy(this.projectionMatrix).invert(); + } + toJSON(meta) { + const data = super.toJSON(meta); + data.object.zoom = this.zoom; + data.object.left = this.left; + data.object.right = this.right; + data.object.top = this.top; + data.object.bottom = this.bottom; + data.object.near = this.near; + data.object.far = this.far; + if (this.view !== null) data.object.view = Object.assign({}, this.view); + return data; + } +} +const LOD_MIN = 4; +const EXTRA_LOD_SIGMA = [0.125, 0.215, 0.35, 0.446, 0.526, 0.582]; +const MAX_SAMPLES = 20; +const _flatCamera = /* @__PURE__ */ new OrthographicCamera(); +const _clearColor = /* @__PURE__ */ new Color(); +let _oldTarget = null; +let _oldActiveCubeFace = 0; +let _oldActiveMipmapLevel = 0; +let _oldXrEnabled = false; +const PHI = (1 + Math.sqrt(5)) / 2; +const INV_PHI = 1 / PHI; +const _axisDirections = [ + /* @__PURE__ */ new Vector3(-PHI, INV_PHI, 0), + /* @__PURE__ */ new Vector3(PHI, INV_PHI, 0), + /* @__PURE__ */ new Vector3(-INV_PHI, 0, PHI), + /* @__PURE__ */ new Vector3(INV_PHI, 0, PHI), + /* @__PURE__ */ new Vector3(0, PHI, -INV_PHI), + /* @__PURE__ */ new Vector3(0, PHI, INV_PHI), + /* @__PURE__ */ new Vector3(-1, 1, -1), + /* @__PURE__ */ new Vector3(1, 1, -1), + /* @__PURE__ */ new Vector3(-1, 1, 1), + /* @__PURE__ */ new Vector3(1, 1, 1) +]; +class PMREMGenerator { + static { + __name(this, "PMREMGenerator"); + } + constructor(renderer) { + this._renderer = renderer; + this._pingPongRenderTarget = null; + this._lodMax = 0; + this._cubeSize = 0; + this._lodPlanes = []; + this._sizeLods = []; + this._sigmas = []; + this._blurMaterial = null; + this._cubemapMaterial = null; + this._equirectMaterial = null; + this._compileMaterial(this._blurMaterial); + } + /** + * Generates a PMREM from a supplied Scene, which can be faster than using an + * image if networking bandwidth is low. Optional sigma specifies a blur radius + * in radians to be applied to the scene before PMREM generation. Optional near + * and far planes ensure the scene is rendered in its entirety (the cubeCamera + * is placed at the origin). + */ + fromScene(scene, sigma = 0, near = 0.1, far = 100) { + _oldTarget = this._renderer.getRenderTarget(); + _oldActiveCubeFace = this._renderer.getActiveCubeFace(); + _oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel(); + _oldXrEnabled = this._renderer.xr.enabled; + this._renderer.xr.enabled = false; + this._setSize(256); + const cubeUVRenderTarget = this._allocateTargets(); + cubeUVRenderTarget.depthBuffer = true; + this._sceneToCubeUV(scene, near, far, cubeUVRenderTarget); + if (sigma > 0) { + this._blur(cubeUVRenderTarget, 0, 0, sigma); + } + this._applyPMREM(cubeUVRenderTarget); + this._cleanup(cubeUVRenderTarget); + return cubeUVRenderTarget; + } + /** + * Generates a PMREM from an equirectangular texture, which can be either LDR + * or HDR. The ideal input image size is 1k (1024 x 512), + * as this matches best with the 256 x 256 cubemap output. + * The smallest supported equirectangular image size is 64 x 32. + */ + fromEquirectangular(equirectangular, renderTarget = null) { + return this._fromTexture(equirectangular, renderTarget); + } + /** + * Generates a PMREM from an cubemap texture, which can be either LDR + * or HDR. The ideal input cube size is 256 x 256, + * as this matches best with the 256 x 256 cubemap output. + * The smallest supported cube size is 16 x 16. + */ + fromCubemap(cubemap, renderTarget = null) { + return this._fromTexture(cubemap, renderTarget); + } + /** + * Pre-compiles the cubemap shader. You can get faster start-up by invoking this method during + * your texture's network fetch for increased concurrency. + */ + compileCubemapShader() { + if (this._cubemapMaterial === null) { + this._cubemapMaterial = _getCubemapMaterial(); + this._compileMaterial(this._cubemapMaterial); + } + } + /** + * Pre-compiles the equirectangular shader. You can get faster start-up by invoking this method during + * your texture's network fetch for increased concurrency. + */ + compileEquirectangularShader() { + if (this._equirectMaterial === null) { + this._equirectMaterial = _getEquirectMaterial(); + this._compileMaterial(this._equirectMaterial); + } + } + /** + * Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class, + * so you should not need more than one PMREMGenerator object. If you do, calling dispose() on + * one of them will cause any others to also become unusable. + */ + dispose() { + this._dispose(); + if (this._cubemapMaterial !== null) this._cubemapMaterial.dispose(); + if (this._equirectMaterial !== null) this._equirectMaterial.dispose(); + } + // private interface + _setSize(cubeSize) { + this._lodMax = Math.floor(Math.log2(cubeSize)); + this._cubeSize = Math.pow(2, this._lodMax); + } + _dispose() { + if (this._blurMaterial !== null) this._blurMaterial.dispose(); + if (this._pingPongRenderTarget !== null) this._pingPongRenderTarget.dispose(); + for (let i = 0; i < this._lodPlanes.length; i++) { + this._lodPlanes[i].dispose(); + } + } + _cleanup(outputTarget) { + this._renderer.setRenderTarget(_oldTarget, _oldActiveCubeFace, _oldActiveMipmapLevel); + this._renderer.xr.enabled = _oldXrEnabled; + outputTarget.scissorTest = false; + _setViewport(outputTarget, 0, 0, outputTarget.width, outputTarget.height); + } + _fromTexture(texture, renderTarget) { + if (texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping) { + this._setSize(texture.image.length === 0 ? 16 : texture.image[0].width || texture.image[0].image.width); + } else { + this._setSize(texture.image.width / 4); + } + _oldTarget = this._renderer.getRenderTarget(); + _oldActiveCubeFace = this._renderer.getActiveCubeFace(); + _oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel(); + _oldXrEnabled = this._renderer.xr.enabled; + this._renderer.xr.enabled = false; + const cubeUVRenderTarget = renderTarget || this._allocateTargets(); + this._textureToCubeUV(texture, cubeUVRenderTarget); + this._applyPMREM(cubeUVRenderTarget); + this._cleanup(cubeUVRenderTarget); + return cubeUVRenderTarget; + } + _allocateTargets() { + const width = 3 * Math.max(this._cubeSize, 16 * 7); + const height = 4 * this._cubeSize; + const params = { + magFilter: LinearFilter, + minFilter: LinearFilter, + generateMipmaps: false, + type: HalfFloatType, + format: RGBAFormat, + colorSpace: LinearSRGBColorSpace, + depthBuffer: false + }; + const cubeUVRenderTarget = _createRenderTarget(width, height, params); + if (this._pingPongRenderTarget === null || this._pingPongRenderTarget.width !== width || this._pingPongRenderTarget.height !== height) { + if (this._pingPongRenderTarget !== null) { + this._dispose(); + } + this._pingPongRenderTarget = _createRenderTarget(width, height, params); + const { _lodMax } = this; + ({ sizeLods: this._sizeLods, lodPlanes: this._lodPlanes, sigmas: this._sigmas } = _createPlanes(_lodMax)); + this._blurMaterial = _getBlurShader(_lodMax, width, height); + } + return cubeUVRenderTarget; + } + _compileMaterial(material) { + const tmpMesh = new Mesh(this._lodPlanes[0], material); + this._renderer.compile(tmpMesh, _flatCamera); + } + _sceneToCubeUV(scene, near, far, cubeUVRenderTarget) { + const fov2 = 90; + const aspect2 = 1; + const cubeCamera = new PerspectiveCamera(fov2, aspect2, near, far); + const upSign = [1, -1, 1, 1, 1, 1]; + const forwardSign = [1, 1, 1, -1, -1, -1]; + const renderer = this._renderer; + const originalAutoClear = renderer.autoClear; + const toneMapping = renderer.toneMapping; + renderer.getClearColor(_clearColor); + renderer.toneMapping = NoToneMapping; + renderer.autoClear = false; + const backgroundMaterial = new MeshBasicMaterial({ + name: "PMREM.Background", + side: BackSide, + depthWrite: false, + depthTest: false + }); + const backgroundBox = new Mesh(new BoxGeometry(), backgroundMaterial); + let useSolidColor = false; + const background = scene.background; + if (background) { + if (background.isColor) { + backgroundMaterial.color.copy(background); + scene.background = null; + useSolidColor = true; + } + } else { + backgroundMaterial.color.copy(_clearColor); + useSolidColor = true; + } + for (let i = 0; i < 6; i++) { + const col = i % 3; + if (col === 0) { + cubeCamera.up.set(0, upSign[i], 0); + cubeCamera.lookAt(forwardSign[i], 0, 0); + } else if (col === 1) { + cubeCamera.up.set(0, 0, upSign[i]); + cubeCamera.lookAt(0, forwardSign[i], 0); + } else { + cubeCamera.up.set(0, upSign[i], 0); + cubeCamera.lookAt(0, 0, forwardSign[i]); + } + const size = this._cubeSize; + _setViewport(cubeUVRenderTarget, col * size, i > 2 ? size : 0, size, size); + renderer.setRenderTarget(cubeUVRenderTarget); + if (useSolidColor) { + renderer.render(backgroundBox, cubeCamera); + } + renderer.render(scene, cubeCamera); + } + backgroundBox.geometry.dispose(); + backgroundBox.material.dispose(); + renderer.toneMapping = toneMapping; + renderer.autoClear = originalAutoClear; + scene.background = background; + } + _textureToCubeUV(texture, cubeUVRenderTarget) { + const renderer = this._renderer; + const isCubeTexture = texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping; + if (isCubeTexture) { + if (this._cubemapMaterial === null) { + this._cubemapMaterial = _getCubemapMaterial(); + } + this._cubemapMaterial.uniforms.flipEnvMap.value = texture.isRenderTargetTexture === false ? -1 : 1; + } else { + if (this._equirectMaterial === null) { + this._equirectMaterial = _getEquirectMaterial(); + } + } + const material = isCubeTexture ? this._cubemapMaterial : this._equirectMaterial; + const mesh = new Mesh(this._lodPlanes[0], material); + const uniforms = material.uniforms; + uniforms["envMap"].value = texture; + const size = this._cubeSize; + _setViewport(cubeUVRenderTarget, 0, 0, 3 * size, 2 * size); + renderer.setRenderTarget(cubeUVRenderTarget); + renderer.render(mesh, _flatCamera); + } + _applyPMREM(cubeUVRenderTarget) { + const renderer = this._renderer; + const autoClear = renderer.autoClear; + renderer.autoClear = false; + const n = this._lodPlanes.length; + for (let i = 1; i < n; i++) { + const sigma = Math.sqrt(this._sigmas[i] * this._sigmas[i] - this._sigmas[i - 1] * this._sigmas[i - 1]); + const poleAxis = _axisDirections[(n - i - 1) % _axisDirections.length]; + this._blur(cubeUVRenderTarget, i - 1, i, sigma, poleAxis); + } + renderer.autoClear = autoClear; + } + /** + * This is a two-pass Gaussian blur for a cubemap. Normally this is done + * vertically and horizontally, but this breaks down on a cube. Here we apply + * the blur latitudinally (around the poles), and then longitudinally (towards + * the poles) to approximate the orthogonally-separable blur. It is least + * accurate at the poles, but still does a decent job. + */ + _blur(cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis) { + const pingPongRenderTarget = this._pingPongRenderTarget; + this._halfBlur( + cubeUVRenderTarget, + pingPongRenderTarget, + lodIn, + lodOut, + sigma, + "latitudinal", + poleAxis + ); + this._halfBlur( + pingPongRenderTarget, + cubeUVRenderTarget, + lodOut, + lodOut, + sigma, + "longitudinal", + poleAxis + ); + } + _halfBlur(targetIn, targetOut, lodIn, lodOut, sigmaRadians, direction, poleAxis) { + const renderer = this._renderer; + const blurMaterial = this._blurMaterial; + if (direction !== "latitudinal" && direction !== "longitudinal") { + console.error( + "blur direction must be either latitudinal or longitudinal!" + ); + } + const STANDARD_DEVIATIONS = 3; + const blurMesh = new Mesh(this._lodPlanes[lodOut], blurMaterial); + const blurUniforms = blurMaterial.uniforms; + const pixels = this._sizeLods[lodIn] - 1; + const radiansPerPixel = isFinite(sigmaRadians) ? Math.PI / (2 * pixels) : 2 * Math.PI / (2 * MAX_SAMPLES - 1); + const sigmaPixels = sigmaRadians / radiansPerPixel; + const samples = isFinite(sigmaRadians) ? 1 + Math.floor(STANDARD_DEVIATIONS * sigmaPixels) : MAX_SAMPLES; + if (samples > MAX_SAMPLES) { + console.warn(`sigmaRadians, ${sigmaRadians}, is too large and will clip, as it requested ${samples} samples when the maximum is set to ${MAX_SAMPLES}`); + } + const weights = []; + let sum = 0; + for (let i = 0; i < MAX_SAMPLES; ++i) { + const x2 = i / sigmaPixels; + const weight = Math.exp(-x2 * x2 / 2); + weights.push(weight); + if (i === 0) { + sum += weight; + } else if (i < samples) { + sum += 2 * weight; + } + } + for (let i = 0; i < weights.length; i++) { + weights[i] = weights[i] / sum; + } + blurUniforms["envMap"].value = targetIn.texture; + blurUniforms["samples"].value = samples; + blurUniforms["weights"].value = weights; + blurUniforms["latitudinal"].value = direction === "latitudinal"; + if (poleAxis) { + blurUniforms["poleAxis"].value = poleAxis; + } + const { _lodMax } = this; + blurUniforms["dTheta"].value = radiansPerPixel; + blurUniforms["mipInt"].value = _lodMax - lodIn; + const outputSize = this._sizeLods[lodOut]; + const x = 3 * outputSize * (lodOut > _lodMax - LOD_MIN ? lodOut - _lodMax + LOD_MIN : 0); + const y = 4 * (this._cubeSize - outputSize); + _setViewport(targetOut, x, y, 3 * outputSize, 2 * outputSize); + renderer.setRenderTarget(targetOut); + renderer.render(blurMesh, _flatCamera); + } +} +function _createPlanes(lodMax) { + const lodPlanes = []; + const sizeLods = []; + const sigmas = []; + let lod = lodMax; + const totalLods = lodMax - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length; + for (let i = 0; i < totalLods; i++) { + const sizeLod = Math.pow(2, lod); + sizeLods.push(sizeLod); + let sigma = 1 / sizeLod; + if (i > lodMax - LOD_MIN) { + sigma = EXTRA_LOD_SIGMA[i - lodMax + LOD_MIN - 1]; + } else if (i === 0) { + sigma = 0; + } + sigmas.push(sigma); + const texelSize = 1 / (sizeLod - 2); + const min = -texelSize; + const max2 = 1 + texelSize; + const uv1 = [min, min, max2, min, max2, max2, min, min, max2, max2, min, max2]; + const cubeFaces = 6; + const vertices = 6; + const positionSize = 3; + const uvSize = 2; + const faceIndexSize = 1; + const position = new Float32Array(positionSize * vertices * cubeFaces); + const uv = new Float32Array(uvSize * vertices * cubeFaces); + const faceIndex = new Float32Array(faceIndexSize * vertices * cubeFaces); + for (let face = 0; face < cubeFaces; face++) { + const x = face % 3 * 2 / 3 - 1; + const y = face > 2 ? 0 : -1; + const coordinates = [ + x, + y, + 0, + x + 2 / 3, + y, + 0, + x + 2 / 3, + y + 1, + 0, + x, + y, + 0, + x + 2 / 3, + y + 1, + 0, + x, + y + 1, + 0 + ]; + position.set(coordinates, positionSize * vertices * face); + uv.set(uv1, uvSize * vertices * face); + const fill2 = [face, face, face, face, face, face]; + faceIndex.set(fill2, faceIndexSize * vertices * face); + } + const planes = new BufferGeometry(); + planes.setAttribute("position", new BufferAttribute(position, positionSize)); + planes.setAttribute("uv", new BufferAttribute(uv, uvSize)); + planes.setAttribute("faceIndex", new BufferAttribute(faceIndex, faceIndexSize)); + lodPlanes.push(planes); + if (lod > LOD_MIN) { + lod--; + } + } + return { lodPlanes, sizeLods, sigmas }; +} +__name(_createPlanes, "_createPlanes"); +function _createRenderTarget(width, height, params) { + const cubeUVRenderTarget = new WebGLRenderTarget(width, height, params); + cubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping; + cubeUVRenderTarget.texture.name = "PMREM.cubeUv"; + cubeUVRenderTarget.scissorTest = true; + return cubeUVRenderTarget; +} +__name(_createRenderTarget, "_createRenderTarget"); +function _setViewport(target, x, y, width, height) { + target.viewport.set(x, y, width, height); + target.scissor.set(x, y, width, height); +} +__name(_setViewport, "_setViewport"); +function _getBlurShader(lodMax, width, height) { + const weights = new Float32Array(MAX_SAMPLES); + const poleAxis = new Vector3(0, 1, 0); + const shaderMaterial = new ShaderMaterial({ + name: "SphericalGaussianBlur", + defines: { + "n": MAX_SAMPLES, + "CUBEUV_TEXEL_WIDTH": 1 / width, + "CUBEUV_TEXEL_HEIGHT": 1 / height, + "CUBEUV_MAX_MIP": `${lodMax}.0` + }, + uniforms: { + "envMap": { value: null }, + "samples": { value: 1 }, + "weights": { value: weights }, + "latitudinal": { value: false }, + "dTheta": { value: 0 }, + "mipInt": { value: 0 }, + "poleAxis": { value: poleAxis } + }, + vertexShader: _getCommonVertexShader(), + fragmentShader: ( + /* glsl */ + ` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + ` + ), + blending: NoBlending, + depthTest: false, + depthWrite: false + }); + return shaderMaterial; +} +__name(_getBlurShader, "_getBlurShader"); +function _getEquirectMaterial() { + return new ShaderMaterial({ + name: "EquirectangularToCubeUV", + uniforms: { + "envMap": { value: null } + }, + vertexShader: _getCommonVertexShader(), + fragmentShader: ( + /* glsl */ + ` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + ` + ), + blending: NoBlending, + depthTest: false, + depthWrite: false + }); +} +__name(_getEquirectMaterial, "_getEquirectMaterial"); +function _getCubemapMaterial() { + return new ShaderMaterial({ + name: "CubemapToCubeUV", + uniforms: { + "envMap": { value: null }, + "flipEnvMap": { value: -1 } + }, + vertexShader: _getCommonVertexShader(), + fragmentShader: ( + /* glsl */ + ` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + ` + ), + blending: NoBlending, + depthTest: false, + depthWrite: false + }); +} +__name(_getCubemapMaterial, "_getCubemapMaterial"); +function _getCommonVertexShader() { + return ( + /* glsl */ + ` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + ` + ); +} +__name(_getCommonVertexShader, "_getCommonVertexShader"); +function WebGLCubeUVMaps(renderer) { + let cubeUVmaps = /* @__PURE__ */ new WeakMap(); + let pmremGenerator = null; + function get(texture) { + if (texture && texture.isTexture) { + const mapping = texture.mapping; + const isEquirectMap = mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping; + const isCubeMap = mapping === CubeReflectionMapping || mapping === CubeRefractionMapping; + if (isEquirectMap || isCubeMap) { + let renderTarget = cubeUVmaps.get(texture); + const currentPMREMVersion = renderTarget !== void 0 ? renderTarget.texture.pmremVersion : 0; + if (texture.isRenderTargetTexture && texture.pmremVersion !== currentPMREMVersion) { + if (pmremGenerator === null) pmremGenerator = new PMREMGenerator(renderer); + renderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular(texture, renderTarget) : pmremGenerator.fromCubemap(texture, renderTarget); + renderTarget.texture.pmremVersion = texture.pmremVersion; + cubeUVmaps.set(texture, renderTarget); + return renderTarget.texture; + } else { + if (renderTarget !== void 0) { + return renderTarget.texture; + } else { + const image = texture.image; + if (isEquirectMap && image && image.height > 0 || isCubeMap && image && isCubeTextureComplete(image)) { + if (pmremGenerator === null) pmremGenerator = new PMREMGenerator(renderer); + renderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular(texture) : pmremGenerator.fromCubemap(texture); + renderTarget.texture.pmremVersion = texture.pmremVersion; + cubeUVmaps.set(texture, renderTarget); + texture.addEventListener("dispose", onTextureDispose); + return renderTarget.texture; + } else { + return null; + } + } + } + } + } + return texture; + } + __name(get, "get"); + function isCubeTextureComplete(image) { + let count = 0; + const length = 6; + for (let i = 0; i < length; i++) { + if (image[i] !== void 0) count++; + } + return count === length; + } + __name(isCubeTextureComplete, "isCubeTextureComplete"); + function onTextureDispose(event) { + const texture = event.target; + texture.removeEventListener("dispose", onTextureDispose); + const cubemapUV = cubeUVmaps.get(texture); + if (cubemapUV !== void 0) { + cubeUVmaps.delete(texture); + cubemapUV.dispose(); + } + } + __name(onTextureDispose, "onTextureDispose"); + function dispose() { + cubeUVmaps = /* @__PURE__ */ new WeakMap(); + if (pmremGenerator !== null) { + pmremGenerator.dispose(); + pmremGenerator = null; + } + } + __name(dispose, "dispose"); + return { + get, + dispose + }; +} +__name(WebGLCubeUVMaps, "WebGLCubeUVMaps"); +function WebGLExtensions(gl) { + const extensions = {}; + function getExtension(name) { + if (extensions[name] !== void 0) { + return extensions[name]; + } + let extension; + switch (name) { + case "WEBGL_depth_texture": + extension = gl.getExtension("WEBGL_depth_texture") || gl.getExtension("MOZ_WEBGL_depth_texture") || gl.getExtension("WEBKIT_WEBGL_depth_texture"); + break; + case "EXT_texture_filter_anisotropic": + extension = gl.getExtension("EXT_texture_filter_anisotropic") || gl.getExtension("MOZ_EXT_texture_filter_anisotropic") || gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic"); + break; + case "WEBGL_compressed_texture_s3tc": + extension = gl.getExtension("WEBGL_compressed_texture_s3tc") || gl.getExtension("MOZ_WEBGL_compressed_texture_s3tc") || gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc"); + break; + case "WEBGL_compressed_texture_pvrtc": + extension = gl.getExtension("WEBGL_compressed_texture_pvrtc") || gl.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"); + break; + default: + extension = gl.getExtension(name); + } + extensions[name] = extension; + return extension; + } + __name(getExtension, "getExtension"); + return { + has: /* @__PURE__ */ __name(function(name) { + return getExtension(name) !== null; + }, "has"), + init: /* @__PURE__ */ __name(function() { + getExtension("EXT_color_buffer_float"); + getExtension("WEBGL_clip_cull_distance"); + getExtension("OES_texture_float_linear"); + getExtension("EXT_color_buffer_half_float"); + getExtension("WEBGL_multisampled_render_to_texture"); + getExtension("WEBGL_render_shared_exponent"); + }, "init"), + get: /* @__PURE__ */ __name(function(name) { + const extension = getExtension(name); + if (extension === null) { + warnOnce("THREE.WebGLRenderer: " + name + " extension not supported."); + } + return extension; + }, "get") + }; +} +__name(WebGLExtensions, "WebGLExtensions"); +function WebGLGeometries(gl, attributes, info, bindingStates) { + const geometries = {}; + const wireframeAttributes = /* @__PURE__ */ new WeakMap(); + function onGeometryDispose(event) { + const geometry = event.target; + if (geometry.index !== null) { + attributes.remove(geometry.index); + } + for (const name in geometry.attributes) { + attributes.remove(geometry.attributes[name]); + } + for (const name in geometry.morphAttributes) { + const array = geometry.morphAttributes[name]; + for (let i = 0, l = array.length; i < l; i++) { + attributes.remove(array[i]); + } + } + geometry.removeEventListener("dispose", onGeometryDispose); + delete geometries[geometry.id]; + const attribute = wireframeAttributes.get(geometry); + if (attribute) { + attributes.remove(attribute); + wireframeAttributes.delete(geometry); + } + bindingStates.releaseStatesOfGeometry(geometry); + if (geometry.isInstancedBufferGeometry === true) { + delete geometry._maxInstanceCount; + } + info.memory.geometries--; + } + __name(onGeometryDispose, "onGeometryDispose"); + function get(object, geometry) { + if (geometries[geometry.id] === true) return geometry; + geometry.addEventListener("dispose", onGeometryDispose); + geometries[geometry.id] = true; + info.memory.geometries++; + return geometry; + } + __name(get, "get"); + function update(geometry) { + const geometryAttributes = geometry.attributes; + for (const name in geometryAttributes) { + attributes.update(geometryAttributes[name], gl.ARRAY_BUFFER); + } + const morphAttributes = geometry.morphAttributes; + for (const name in morphAttributes) { + const array = morphAttributes[name]; + for (let i = 0, l = array.length; i < l; i++) { + attributes.update(array[i], gl.ARRAY_BUFFER); + } + } + } + __name(update, "update"); + function updateWireframeAttribute(geometry) { + const indices = []; + const geometryIndex = geometry.index; + const geometryPosition = geometry.attributes.position; + let version = 0; + if (geometryIndex !== null) { + const array = geometryIndex.array; + version = geometryIndex.version; + for (let i = 0, l = array.length; i < l; i += 3) { + const a = array[i + 0]; + const b = array[i + 1]; + const c = array[i + 2]; + indices.push(a, b, b, c, c, a); + } + } else if (geometryPosition !== void 0) { + const array = geometryPosition.array; + version = geometryPosition.version; + for (let i = 0, l = array.length / 3 - 1; i < l; i += 3) { + const a = i + 0; + const b = i + 1; + const c = i + 2; + indices.push(a, b, b, c, c, a); + } + } else { + return; + } + const attribute = new (arrayNeedsUint32(indices) ? Uint32BufferAttribute : Uint16BufferAttribute)(indices, 1); + attribute.version = version; + const previousAttribute = wireframeAttributes.get(geometry); + if (previousAttribute) attributes.remove(previousAttribute); + wireframeAttributes.set(geometry, attribute); + } + __name(updateWireframeAttribute, "updateWireframeAttribute"); + function getWireframeAttribute(geometry) { + const currentAttribute = wireframeAttributes.get(geometry); + if (currentAttribute) { + const geometryIndex = geometry.index; + if (geometryIndex !== null) { + if (currentAttribute.version < geometryIndex.version) { + updateWireframeAttribute(geometry); + } + } + } else { + updateWireframeAttribute(geometry); + } + return wireframeAttributes.get(geometry); + } + __name(getWireframeAttribute, "getWireframeAttribute"); + return { + get, + update, + getWireframeAttribute + }; +} +__name(WebGLGeometries, "WebGLGeometries"); +function WebGLIndexedBufferRenderer(gl, extensions, info) { + let mode; + function setMode(value) { + mode = value; + } + __name(setMode, "setMode"); + let type, bytesPerElement; + function setIndex(value) { + type = value.type; + bytesPerElement = value.bytesPerElement; + } + __name(setIndex, "setIndex"); + function render(start, count) { + gl.drawElements(mode, count, type, start * bytesPerElement); + info.update(count, mode, 1); + } + __name(render, "render"); + function renderInstances(start, count, primcount) { + if (primcount === 0) return; + gl.drawElementsInstanced(mode, count, type, start * bytesPerElement, primcount); + info.update(count, mode, primcount); + } + __name(renderInstances, "renderInstances"); + function renderMultiDraw(starts, counts, drawCount) { + if (drawCount === 0) return; + const extension = extensions.get("WEBGL_multi_draw"); + extension.multiDrawElementsWEBGL(mode, counts, 0, type, starts, 0, drawCount); + let elementCount = 0; + for (let i = 0; i < drawCount; i++) { + elementCount += counts[i]; + } + info.update(elementCount, mode, 1); + } + __name(renderMultiDraw, "renderMultiDraw"); + function renderMultiDrawInstances(starts, counts, drawCount, primcount) { + if (drawCount === 0) return; + const extension = extensions.get("WEBGL_multi_draw"); + if (extension === null) { + for (let i = 0; i < starts.length; i++) { + renderInstances(starts[i] / bytesPerElement, counts[i], primcount[i]); + } + } else { + extension.multiDrawElementsInstancedWEBGL(mode, counts, 0, type, starts, 0, primcount, 0, drawCount); + let elementCount = 0; + for (let i = 0; i < drawCount; i++) { + elementCount += counts[i] * primcount[i]; + } + info.update(elementCount, mode, 1); + } + } + __name(renderMultiDrawInstances, "renderMultiDrawInstances"); + this.setMode = setMode; + this.setIndex = setIndex; + this.render = render; + this.renderInstances = renderInstances; + this.renderMultiDraw = renderMultiDraw; + this.renderMultiDrawInstances = renderMultiDrawInstances; +} +__name(WebGLIndexedBufferRenderer, "WebGLIndexedBufferRenderer"); +function WebGLInfo(gl) { + const memory = { + geometries: 0, + textures: 0 + }; + const render = { + frame: 0, + calls: 0, + triangles: 0, + points: 0, + lines: 0 + }; + function update(count, mode, instanceCount) { + render.calls++; + switch (mode) { + case gl.TRIANGLES: + render.triangles += instanceCount * (count / 3); + break; + case gl.LINES: + render.lines += instanceCount * (count / 2); + break; + case gl.LINE_STRIP: + render.lines += instanceCount * (count - 1); + break; + case gl.LINE_LOOP: + render.lines += instanceCount * count; + break; + case gl.POINTS: + render.points += instanceCount * count; + break; + default: + console.error("THREE.WebGLInfo: Unknown draw mode:", mode); + break; + } + } + __name(update, "update"); + function reset() { + render.calls = 0; + render.triangles = 0; + render.points = 0; + render.lines = 0; + } + __name(reset, "reset"); + return { + memory, + render, + programs: null, + autoReset: true, + reset, + update + }; +} +__name(WebGLInfo, "WebGLInfo"); +function WebGLMorphtargets(gl, capabilities, textures) { + const morphTextures = /* @__PURE__ */ new WeakMap(); + const morph = new Vector4(); + function update(object, geometry, program) { + const objectInfluences = object.morphTargetInfluences; + const morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color; + const morphTargetsCount = morphAttribute !== void 0 ? morphAttribute.length : 0; + let entry = morphTextures.get(geometry); + if (entry === void 0 || entry.count !== morphTargetsCount) { + let disposeTexture = function() { + texture.dispose(); + morphTextures.delete(geometry); + geometry.removeEventListener("dispose", disposeTexture); + }; + __name(disposeTexture, "disposeTexture"); + if (entry !== void 0) entry.texture.dispose(); + const hasMorphPosition = geometry.morphAttributes.position !== void 0; + const hasMorphNormals = geometry.morphAttributes.normal !== void 0; + const hasMorphColors = geometry.morphAttributes.color !== void 0; + const morphTargets = geometry.morphAttributes.position || []; + const morphNormals = geometry.morphAttributes.normal || []; + const morphColors = geometry.morphAttributes.color || []; + let vertexDataCount = 0; + if (hasMorphPosition === true) vertexDataCount = 1; + if (hasMorphNormals === true) vertexDataCount = 2; + if (hasMorphColors === true) vertexDataCount = 3; + let width = geometry.attributes.position.count * vertexDataCount; + let height = 1; + if (width > capabilities.maxTextureSize) { + height = Math.ceil(width / capabilities.maxTextureSize); + width = capabilities.maxTextureSize; + } + const buffer = new Float32Array(width * height * 4 * morphTargetsCount); + const texture = new DataArrayTexture(buffer, width, height, morphTargetsCount); + texture.type = FloatType; + texture.needsUpdate = true; + const vertexDataStride = vertexDataCount * 4; + for (let i = 0; i < morphTargetsCount; i++) { + const morphTarget = morphTargets[i]; + const morphNormal = morphNormals[i]; + const morphColor = morphColors[i]; + const offset = width * height * 4 * i; + for (let j = 0; j < morphTarget.count; j++) { + const stride = j * vertexDataStride; + if (hasMorphPosition === true) { + morph.fromBufferAttribute(morphTarget, j); + buffer[offset + stride + 0] = morph.x; + buffer[offset + stride + 1] = morph.y; + buffer[offset + stride + 2] = morph.z; + buffer[offset + stride + 3] = 0; + } + if (hasMorphNormals === true) { + morph.fromBufferAttribute(morphNormal, j); + buffer[offset + stride + 4] = morph.x; + buffer[offset + stride + 5] = morph.y; + buffer[offset + stride + 6] = morph.z; + buffer[offset + stride + 7] = 0; + } + if (hasMorphColors === true) { + morph.fromBufferAttribute(morphColor, j); + buffer[offset + stride + 8] = morph.x; + buffer[offset + stride + 9] = morph.y; + buffer[offset + stride + 10] = morph.z; + buffer[offset + stride + 11] = morphColor.itemSize === 4 ? morph.w : 1; + } + } + } + entry = { + count: morphTargetsCount, + texture, + size: new Vector2(width, height) + }; + morphTextures.set(geometry, entry); + geometry.addEventListener("dispose", disposeTexture); + } + if (object.isInstancedMesh === true && object.morphTexture !== null) { + program.getUniforms().setValue(gl, "morphTexture", object.morphTexture, textures); + } else { + let morphInfluencesSum = 0; + for (let i = 0; i < objectInfluences.length; i++) { + morphInfluencesSum += objectInfluences[i]; + } + const morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum; + program.getUniforms().setValue(gl, "morphTargetBaseInfluence", morphBaseInfluence); + program.getUniforms().setValue(gl, "morphTargetInfluences", objectInfluences); + } + program.getUniforms().setValue(gl, "morphTargetsTexture", entry.texture, textures); + program.getUniforms().setValue(gl, "morphTargetsTextureSize", entry.size); + } + __name(update, "update"); + return { + update + }; +} +__name(WebGLMorphtargets, "WebGLMorphtargets"); +function WebGLObjects(gl, geometries, attributes, info) { + let updateMap = /* @__PURE__ */ new WeakMap(); + function update(object) { + const frame = info.render.frame; + const geometry = object.geometry; + const buffergeometry = geometries.get(object, geometry); + if (updateMap.get(buffergeometry) !== frame) { + geometries.update(buffergeometry); + updateMap.set(buffergeometry, frame); + } + if (object.isInstancedMesh) { + if (object.hasEventListener("dispose", onInstancedMeshDispose) === false) { + object.addEventListener("dispose", onInstancedMeshDispose); + } + if (updateMap.get(object) !== frame) { + attributes.update(object.instanceMatrix, gl.ARRAY_BUFFER); + if (object.instanceColor !== null) { + attributes.update(object.instanceColor, gl.ARRAY_BUFFER); + } + updateMap.set(object, frame); + } + } + if (object.isSkinnedMesh) { + const skeleton = object.skeleton; + if (updateMap.get(skeleton) !== frame) { + skeleton.update(); + updateMap.set(skeleton, frame); + } + } + return buffergeometry; + } + __name(update, "update"); + function dispose() { + updateMap = /* @__PURE__ */ new WeakMap(); + } + __name(dispose, "dispose"); + function onInstancedMeshDispose(event) { + const instancedMesh = event.target; + instancedMesh.removeEventListener("dispose", onInstancedMeshDispose); + attributes.remove(instancedMesh.instanceMatrix); + if (instancedMesh.instanceColor !== null) attributes.remove(instancedMesh.instanceColor); + } + __name(onInstancedMeshDispose, "onInstancedMeshDispose"); + return { + update, + dispose + }; +} +__name(WebGLObjects, "WebGLObjects"); +class DepthTexture extends Texture { + static { + __name(this, "DepthTexture"); + } + constructor(width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format = DepthFormat) { + if (format !== DepthFormat && format !== DepthStencilFormat) { + throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat"); + } + if (type === void 0 && format === DepthFormat) type = UnsignedIntType; + if (type === void 0 && format === DepthStencilFormat) type = UnsignedInt248Type; + super(null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy); + this.isDepthTexture = true; + this.image = { width, height }; + this.magFilter = magFilter !== void 0 ? magFilter : NearestFilter; + this.minFilter = minFilter !== void 0 ? minFilter : NearestFilter; + this.flipY = false; + this.generateMipmaps = false; + this.compareFunction = null; + } + copy(source) { + super.copy(source); + this.compareFunction = source.compareFunction; + return this; + } + toJSON(meta) { + const data = super.toJSON(meta); + if (this.compareFunction !== null) data.compareFunction = this.compareFunction; + return data; + } +} +const emptyTexture = /* @__PURE__ */ new Texture(); +const emptyShadowTexture = /* @__PURE__ */ new DepthTexture(1, 1); +const emptyArrayTexture = /* @__PURE__ */ new DataArrayTexture(); +const empty3dTexture = /* @__PURE__ */ new Data3DTexture(); +const emptyCubeTexture = /* @__PURE__ */ new CubeTexture(); +const arrayCacheF32 = []; +const arrayCacheI32 = []; +const mat4array = new Float32Array(16); +const mat3array = new Float32Array(9); +const mat2array = new Float32Array(4); +function flatten(array, nBlocks, blockSize) { + const firstElem = array[0]; + if (firstElem <= 0 || firstElem > 0) return array; + const n = nBlocks * blockSize; + let r = arrayCacheF32[n]; + if (r === void 0) { + r = new Float32Array(n); + arrayCacheF32[n] = r; + } + if (nBlocks !== 0) { + firstElem.toArray(r, 0); + for (let i = 1, offset = 0; i !== nBlocks; ++i) { + offset += blockSize; + array[i].toArray(r, offset); + } + } + return r; +} +__name(flatten, "flatten"); +function arraysEqual(a, b) { + if (a.length !== b.length) return false; + for (let i = 0, l = a.length; i < l; i++) { + if (a[i] !== b[i]) return false; + } + return true; +} +__name(arraysEqual, "arraysEqual"); +function copyArray(a, b) { + for (let i = 0, l = b.length; i < l; i++) { + a[i] = b[i]; + } +} +__name(copyArray, "copyArray"); +function allocTexUnits(textures, n) { + let r = arrayCacheI32[n]; + if (r === void 0) { + r = new Int32Array(n); + arrayCacheI32[n] = r; + } + for (let i = 0; i !== n; ++i) { + r[i] = textures.allocateTextureUnit(); + } + return r; +} +__name(allocTexUnits, "allocTexUnits"); +function setValueV1f(gl, v) { + const cache = this.cache; + if (cache[0] === v) return; + gl.uniform1f(this.addr, v); + cache[0] = v; +} +__name(setValueV1f, "setValueV1f"); +function setValueV2f(gl, v) { + const cache = this.cache; + if (v.x !== void 0) { + if (cache[0] !== v.x || cache[1] !== v.y) { + gl.uniform2f(this.addr, v.x, v.y); + cache[0] = v.x; + cache[1] = v.y; + } + } else { + if (arraysEqual(cache, v)) return; + gl.uniform2fv(this.addr, v); + copyArray(cache, v); + } +} +__name(setValueV2f, "setValueV2f"); +function setValueV3f(gl, v) { + const cache = this.cache; + if (v.x !== void 0) { + if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) { + gl.uniform3f(this.addr, v.x, v.y, v.z); + cache[0] = v.x; + cache[1] = v.y; + cache[2] = v.z; + } + } else if (v.r !== void 0) { + if (cache[0] !== v.r || cache[1] !== v.g || cache[2] !== v.b) { + gl.uniform3f(this.addr, v.r, v.g, v.b); + cache[0] = v.r; + cache[1] = v.g; + cache[2] = v.b; + } + } else { + if (arraysEqual(cache, v)) return; + gl.uniform3fv(this.addr, v); + copyArray(cache, v); + } +} +__name(setValueV3f, "setValueV3f"); +function setValueV4f(gl, v) { + const cache = this.cache; + if (v.x !== void 0) { + if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) { + gl.uniform4f(this.addr, v.x, v.y, v.z, v.w); + cache[0] = v.x; + cache[1] = v.y; + cache[2] = v.z; + cache[3] = v.w; + } + } else { + if (arraysEqual(cache, v)) return; + gl.uniform4fv(this.addr, v); + copyArray(cache, v); + } +} +__name(setValueV4f, "setValueV4f"); +function setValueM2(gl, v) { + const cache = this.cache; + const elements = v.elements; + if (elements === void 0) { + if (arraysEqual(cache, v)) return; + gl.uniformMatrix2fv(this.addr, false, v); + copyArray(cache, v); + } else { + if (arraysEqual(cache, elements)) return; + mat2array.set(elements); + gl.uniformMatrix2fv(this.addr, false, mat2array); + copyArray(cache, elements); + } +} +__name(setValueM2, "setValueM2"); +function setValueM3(gl, v) { + const cache = this.cache; + const elements = v.elements; + if (elements === void 0) { + if (arraysEqual(cache, v)) return; + gl.uniformMatrix3fv(this.addr, false, v); + copyArray(cache, v); + } else { + if (arraysEqual(cache, elements)) return; + mat3array.set(elements); + gl.uniformMatrix3fv(this.addr, false, mat3array); + copyArray(cache, elements); + } +} +__name(setValueM3, "setValueM3"); +function setValueM4(gl, v) { + const cache = this.cache; + const elements = v.elements; + if (elements === void 0) { + if (arraysEqual(cache, v)) return; + gl.uniformMatrix4fv(this.addr, false, v); + copyArray(cache, v); + } else { + if (arraysEqual(cache, elements)) return; + mat4array.set(elements); + gl.uniformMatrix4fv(this.addr, false, mat4array); + copyArray(cache, elements); + } +} +__name(setValueM4, "setValueM4"); +function setValueV1i(gl, v) { + const cache = this.cache; + if (cache[0] === v) return; + gl.uniform1i(this.addr, v); + cache[0] = v; +} +__name(setValueV1i, "setValueV1i"); +function setValueV2i(gl, v) { + const cache = this.cache; + if (v.x !== void 0) { + if (cache[0] !== v.x || cache[1] !== v.y) { + gl.uniform2i(this.addr, v.x, v.y); + cache[0] = v.x; + cache[1] = v.y; + } + } else { + if (arraysEqual(cache, v)) return; + gl.uniform2iv(this.addr, v); + copyArray(cache, v); + } +} +__name(setValueV2i, "setValueV2i"); +function setValueV3i(gl, v) { + const cache = this.cache; + if (v.x !== void 0) { + if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) { + gl.uniform3i(this.addr, v.x, v.y, v.z); + cache[0] = v.x; + cache[1] = v.y; + cache[2] = v.z; + } + } else { + if (arraysEqual(cache, v)) return; + gl.uniform3iv(this.addr, v); + copyArray(cache, v); + } +} +__name(setValueV3i, "setValueV3i"); +function setValueV4i(gl, v) { + const cache = this.cache; + if (v.x !== void 0) { + if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) { + gl.uniform4i(this.addr, v.x, v.y, v.z, v.w); + cache[0] = v.x; + cache[1] = v.y; + cache[2] = v.z; + cache[3] = v.w; + } + } else { + if (arraysEqual(cache, v)) return; + gl.uniform4iv(this.addr, v); + copyArray(cache, v); + } +} +__name(setValueV4i, "setValueV4i"); +function setValueV1ui(gl, v) { + const cache = this.cache; + if (cache[0] === v) return; + gl.uniform1ui(this.addr, v); + cache[0] = v; +} +__name(setValueV1ui, "setValueV1ui"); +function setValueV2ui(gl, v) { + const cache = this.cache; + if (v.x !== void 0) { + if (cache[0] !== v.x || cache[1] !== v.y) { + gl.uniform2ui(this.addr, v.x, v.y); + cache[0] = v.x; + cache[1] = v.y; + } + } else { + if (arraysEqual(cache, v)) return; + gl.uniform2uiv(this.addr, v); + copyArray(cache, v); + } +} +__name(setValueV2ui, "setValueV2ui"); +function setValueV3ui(gl, v) { + const cache = this.cache; + if (v.x !== void 0) { + if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) { + gl.uniform3ui(this.addr, v.x, v.y, v.z); + cache[0] = v.x; + cache[1] = v.y; + cache[2] = v.z; + } + } else { + if (arraysEqual(cache, v)) return; + gl.uniform3uiv(this.addr, v); + copyArray(cache, v); + } +} +__name(setValueV3ui, "setValueV3ui"); +function setValueV4ui(gl, v) { + const cache = this.cache; + if (v.x !== void 0) { + if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) { + gl.uniform4ui(this.addr, v.x, v.y, v.z, v.w); + cache[0] = v.x; + cache[1] = v.y; + cache[2] = v.z; + cache[3] = v.w; + } + } else { + if (arraysEqual(cache, v)) return; + gl.uniform4uiv(this.addr, v); + copyArray(cache, v); + } +} +__name(setValueV4ui, "setValueV4ui"); +function setValueT1(gl, v, textures) { + const cache = this.cache; + const unit = textures.allocateTextureUnit(); + if (cache[0] !== unit) { + gl.uniform1i(this.addr, unit); + cache[0] = unit; + } + let emptyTexture2D; + if (this.type === gl.SAMPLER_2D_SHADOW) { + emptyShadowTexture.compareFunction = LessEqualCompare; + emptyTexture2D = emptyShadowTexture; + } else { + emptyTexture2D = emptyTexture; + } + textures.setTexture2D(v || emptyTexture2D, unit); +} +__name(setValueT1, "setValueT1"); +function setValueT3D1(gl, v, textures) { + const cache = this.cache; + const unit = textures.allocateTextureUnit(); + if (cache[0] !== unit) { + gl.uniform1i(this.addr, unit); + cache[0] = unit; + } + textures.setTexture3D(v || empty3dTexture, unit); +} +__name(setValueT3D1, "setValueT3D1"); +function setValueT6(gl, v, textures) { + const cache = this.cache; + const unit = textures.allocateTextureUnit(); + if (cache[0] !== unit) { + gl.uniform1i(this.addr, unit); + cache[0] = unit; + } + textures.setTextureCube(v || emptyCubeTexture, unit); +} +__name(setValueT6, "setValueT6"); +function setValueT2DArray1(gl, v, textures) { + const cache = this.cache; + const unit = textures.allocateTextureUnit(); + if (cache[0] !== unit) { + gl.uniform1i(this.addr, unit); + cache[0] = unit; + } + textures.setTexture2DArray(v || emptyArrayTexture, unit); +} +__name(setValueT2DArray1, "setValueT2DArray1"); +function getSingularSetter(type) { + switch (type) { + case 5126: + return setValueV1f; + case 35664: + return setValueV2f; + case 35665: + return setValueV3f; + case 35666: + return setValueV4f; + case 35674: + return setValueM2; + case 35675: + return setValueM3; + case 35676: + return setValueM4; + case 5124: + case 35670: + return setValueV1i; + case 35667: + case 35671: + return setValueV2i; + case 35668: + case 35672: + return setValueV3i; + case 35669: + case 35673: + return setValueV4i; + case 5125: + return setValueV1ui; + case 36294: + return setValueV2ui; + case 36295: + return setValueV3ui; + case 36296: + return setValueV4ui; + case 35678: + case 36198: + case 36298: + case 36306: + case 35682: + return setValueT1; + case 35679: + case 36299: + case 36307: + return setValueT3D1; + case 35680: + case 36300: + case 36308: + case 36293: + return setValueT6; + case 36289: + case 36303: + case 36311: + case 36292: + return setValueT2DArray1; + } +} +__name(getSingularSetter, "getSingularSetter"); +function setValueV1fArray(gl, v) { + gl.uniform1fv(this.addr, v); +} +__name(setValueV1fArray, "setValueV1fArray"); +function setValueV2fArray(gl, v) { + const data = flatten(v, this.size, 2); + gl.uniform2fv(this.addr, data); +} +__name(setValueV2fArray, "setValueV2fArray"); +function setValueV3fArray(gl, v) { + const data = flatten(v, this.size, 3); + gl.uniform3fv(this.addr, data); +} +__name(setValueV3fArray, "setValueV3fArray"); +function setValueV4fArray(gl, v) { + const data = flatten(v, this.size, 4); + gl.uniform4fv(this.addr, data); +} +__name(setValueV4fArray, "setValueV4fArray"); +function setValueM2Array(gl, v) { + const data = flatten(v, this.size, 4); + gl.uniformMatrix2fv(this.addr, false, data); +} +__name(setValueM2Array, "setValueM2Array"); +function setValueM3Array(gl, v) { + const data = flatten(v, this.size, 9); + gl.uniformMatrix3fv(this.addr, false, data); +} +__name(setValueM3Array, "setValueM3Array"); +function setValueM4Array(gl, v) { + const data = flatten(v, this.size, 16); + gl.uniformMatrix4fv(this.addr, false, data); +} +__name(setValueM4Array, "setValueM4Array"); +function setValueV1iArray(gl, v) { + gl.uniform1iv(this.addr, v); +} +__name(setValueV1iArray, "setValueV1iArray"); +function setValueV2iArray(gl, v) { + gl.uniform2iv(this.addr, v); +} +__name(setValueV2iArray, "setValueV2iArray"); +function setValueV3iArray(gl, v) { + gl.uniform3iv(this.addr, v); +} +__name(setValueV3iArray, "setValueV3iArray"); +function setValueV4iArray(gl, v) { + gl.uniform4iv(this.addr, v); +} +__name(setValueV4iArray, "setValueV4iArray"); +function setValueV1uiArray(gl, v) { + gl.uniform1uiv(this.addr, v); +} +__name(setValueV1uiArray, "setValueV1uiArray"); +function setValueV2uiArray(gl, v) { + gl.uniform2uiv(this.addr, v); +} +__name(setValueV2uiArray, "setValueV2uiArray"); +function setValueV3uiArray(gl, v) { + gl.uniform3uiv(this.addr, v); +} +__name(setValueV3uiArray, "setValueV3uiArray"); +function setValueV4uiArray(gl, v) { + gl.uniform4uiv(this.addr, v); +} +__name(setValueV4uiArray, "setValueV4uiArray"); +function setValueT1Array(gl, v, textures) { + const cache = this.cache; + const n = v.length; + const units = allocTexUnits(textures, n); + if (!arraysEqual(cache, units)) { + gl.uniform1iv(this.addr, units); + copyArray(cache, units); + } + for (let i = 0; i !== n; ++i) { + textures.setTexture2D(v[i] || emptyTexture, units[i]); + } +} +__name(setValueT1Array, "setValueT1Array"); +function setValueT3DArray(gl, v, textures) { + const cache = this.cache; + const n = v.length; + const units = allocTexUnits(textures, n); + if (!arraysEqual(cache, units)) { + gl.uniform1iv(this.addr, units); + copyArray(cache, units); + } + for (let i = 0; i !== n; ++i) { + textures.setTexture3D(v[i] || empty3dTexture, units[i]); + } +} +__name(setValueT3DArray, "setValueT3DArray"); +function setValueT6Array(gl, v, textures) { + const cache = this.cache; + const n = v.length; + const units = allocTexUnits(textures, n); + if (!arraysEqual(cache, units)) { + gl.uniform1iv(this.addr, units); + copyArray(cache, units); + } + for (let i = 0; i !== n; ++i) { + textures.setTextureCube(v[i] || emptyCubeTexture, units[i]); + } +} +__name(setValueT6Array, "setValueT6Array"); +function setValueT2DArrayArray(gl, v, textures) { + const cache = this.cache; + const n = v.length; + const units = allocTexUnits(textures, n); + if (!arraysEqual(cache, units)) { + gl.uniform1iv(this.addr, units); + copyArray(cache, units); + } + for (let i = 0; i !== n; ++i) { + textures.setTexture2DArray(v[i] || emptyArrayTexture, units[i]); + } +} +__name(setValueT2DArrayArray, "setValueT2DArrayArray"); +function getPureArraySetter(type) { + switch (type) { + case 5126: + return setValueV1fArray; + case 35664: + return setValueV2fArray; + case 35665: + return setValueV3fArray; + case 35666: + return setValueV4fArray; + case 35674: + return setValueM2Array; + case 35675: + return setValueM3Array; + case 35676: + return setValueM4Array; + case 5124: + case 35670: + return setValueV1iArray; + case 35667: + case 35671: + return setValueV2iArray; + case 35668: + case 35672: + return setValueV3iArray; + case 35669: + case 35673: + return setValueV4iArray; + case 5125: + return setValueV1uiArray; + case 36294: + return setValueV2uiArray; + case 36295: + return setValueV3uiArray; + case 36296: + return setValueV4uiArray; + case 35678: + case 36198: + case 36298: + case 36306: + case 35682: + return setValueT1Array; + case 35679: + case 36299: + case 36307: + return setValueT3DArray; + case 35680: + case 36300: + case 36308: + case 36293: + return setValueT6Array; + case 36289: + case 36303: + case 36311: + case 36292: + return setValueT2DArrayArray; + } +} +__name(getPureArraySetter, "getPureArraySetter"); +class SingleUniform { + static { + __name(this, "SingleUniform"); + } + constructor(id2, activeInfo, addr) { + this.id = id2; + this.addr = addr; + this.cache = []; + this.type = activeInfo.type; + this.setValue = getSingularSetter(activeInfo.type); + } +} +class PureArrayUniform { + static { + __name(this, "PureArrayUniform"); + } + constructor(id2, activeInfo, addr) { + this.id = id2; + this.addr = addr; + this.cache = []; + this.type = activeInfo.type; + this.size = activeInfo.size; + this.setValue = getPureArraySetter(activeInfo.type); + } +} +class StructuredUniform { + static { + __name(this, "StructuredUniform"); + } + constructor(id2) { + this.id = id2; + this.seq = []; + this.map = {}; + } + setValue(gl, value, textures) { + const seq = this.seq; + for (let i = 0, n = seq.length; i !== n; ++i) { + const u = seq[i]; + u.setValue(gl, value[u.id], textures); + } + } +} +const RePathPart = /(\w+)(\])?(\[|\.)?/g; +function addUniform(container, uniformObject) { + container.seq.push(uniformObject); + container.map[uniformObject.id] = uniformObject; +} +__name(addUniform, "addUniform"); +function parseUniform(activeInfo, addr, container) { + const path = activeInfo.name, pathLength = path.length; + RePathPart.lastIndex = 0; + while (true) { + const match = RePathPart.exec(path), matchEnd = RePathPart.lastIndex; + let id2 = match[1]; + const idIsIndex = match[2] === "]", subscript = match[3]; + if (idIsIndex) id2 = id2 | 0; + if (subscript === void 0 || subscript === "[" && matchEnd + 2 === pathLength) { + addUniform(container, subscript === void 0 ? new SingleUniform(id2, activeInfo, addr) : new PureArrayUniform(id2, activeInfo, addr)); + break; + } else { + const map = container.map; + let next = map[id2]; + if (next === void 0) { + next = new StructuredUniform(id2); + addUniform(container, next); + } + container = next; + } + } +} +__name(parseUniform, "parseUniform"); +class WebGLUniforms { + static { + __name(this, "WebGLUniforms"); + } + constructor(gl, program) { + this.seq = []; + this.map = {}; + const n = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS); + for (let i = 0; i < n; ++i) { + const info = gl.getActiveUniform(program, i), addr = gl.getUniformLocation(program, info.name); + parseUniform(info, addr, this); + } + } + setValue(gl, name, value, textures) { + const u = this.map[name]; + if (u !== void 0) u.setValue(gl, value, textures); + } + setOptional(gl, object, name) { + const v = object[name]; + if (v !== void 0) this.setValue(gl, name, v); + } + static upload(gl, seq, values, textures) { + for (let i = 0, n = seq.length; i !== n; ++i) { + const u = seq[i], v = values[u.id]; + if (v.needsUpdate !== false) { + u.setValue(gl, v.value, textures); + } + } + } + static seqWithValue(seq, values) { + const r = []; + for (let i = 0, n = seq.length; i !== n; ++i) { + const u = seq[i]; + if (u.id in values) r.push(u); + } + return r; + } +} +function WebGLShader(gl, type, string) { + const shader = gl.createShader(type); + gl.shaderSource(shader, string); + gl.compileShader(shader); + return shader; +} +__name(WebGLShader, "WebGLShader"); +const COMPLETION_STATUS_KHR = 37297; +let programIdCount = 0; +function handleSource(string, errorLine) { + const lines = string.split("\n"); + const lines2 = []; + const from = Math.max(errorLine - 6, 0); + const to = Math.min(errorLine + 6, lines.length); + for (let i = from; i < to; i++) { + const line = i + 1; + lines2.push(`${line === errorLine ? ">" : " "} ${line}: ${lines[i]}`); + } + return lines2.join("\n"); +} +__name(handleSource, "handleSource"); +const _m0 = /* @__PURE__ */ new Matrix3(); +function getEncodingComponents(colorSpace) { + ColorManagement._getMatrix(_m0, ColorManagement.workingColorSpace, colorSpace); + const encodingMatrix = `mat3( ${_m0.elements.map((v) => v.toFixed(4))} )`; + switch (ColorManagement.getTransfer(colorSpace)) { + case LinearTransfer: + return [encodingMatrix, "LinearTransferOETF"]; + case SRGBTransfer: + return [encodingMatrix, "sRGBTransferOETF"]; + default: + console.warn("THREE.WebGLProgram: Unsupported color space: ", colorSpace); + return [encodingMatrix, "LinearTransferOETF"]; + } +} +__name(getEncodingComponents, "getEncodingComponents"); +function getShaderErrors(gl, shader, type) { + const status = gl.getShaderParameter(shader, gl.COMPILE_STATUS); + const errors = gl.getShaderInfoLog(shader).trim(); + if (status && errors === "") return ""; + const errorMatches = /ERROR: 0:(\d+)/.exec(errors); + if (errorMatches) { + const errorLine = parseInt(errorMatches[1]); + return type.toUpperCase() + "\n\n" + errors + "\n\n" + handleSource(gl.getShaderSource(shader), errorLine); + } else { + return errors; + } +} +__name(getShaderErrors, "getShaderErrors"); +function getTexelEncodingFunction(functionName, colorSpace) { + const components = getEncodingComponents(colorSpace); + return [ + `vec4 ${functionName}( vec4 value ) {`, + ` return ${components[1]}( vec4( value.rgb * ${components[0]}, value.a ) );`, + "}" + ].join("\n"); +} +__name(getTexelEncodingFunction, "getTexelEncodingFunction"); +function getToneMappingFunction(functionName, toneMapping) { + let toneMappingName; + switch (toneMapping) { + case LinearToneMapping: + toneMappingName = "Linear"; + break; + case ReinhardToneMapping: + toneMappingName = "Reinhard"; + break; + case CineonToneMapping: + toneMappingName = "Cineon"; + break; + case ACESFilmicToneMapping: + toneMappingName = "ACESFilmic"; + break; + case AgXToneMapping: + toneMappingName = "AgX"; + break; + case NeutralToneMapping: + toneMappingName = "Neutral"; + break; + case CustomToneMapping: + toneMappingName = "Custom"; + break; + default: + console.warn("THREE.WebGLProgram: Unsupported toneMapping:", toneMapping); + toneMappingName = "Linear"; + } + return "vec3 " + functionName + "( vec3 color ) { return " + toneMappingName + "ToneMapping( color ); }"; +} +__name(getToneMappingFunction, "getToneMappingFunction"); +const _v0$1 = /* @__PURE__ */ new Vector3(); +function getLuminanceFunction() { + ColorManagement.getLuminanceCoefficients(_v0$1); + const r = _v0$1.x.toFixed(4); + const g = _v0$1.y.toFixed(4); + const b = _v0$1.z.toFixed(4); + return [ + "float luminance( const in vec3 rgb ) {", + ` const vec3 weights = vec3( ${r}, ${g}, ${b} );`, + " return dot( weights, rgb );", + "}" + ].join("\n"); +} +__name(getLuminanceFunction, "getLuminanceFunction"); +function generateVertexExtensions(parameters) { + const chunks = [ + parameters.extensionClipCullDistance ? "#extension GL_ANGLE_clip_cull_distance : require" : "", + parameters.extensionMultiDraw ? "#extension GL_ANGLE_multi_draw : require" : "" + ]; + return chunks.filter(filterEmptyLine).join("\n"); +} +__name(generateVertexExtensions, "generateVertexExtensions"); +function generateDefines(defines) { + const chunks = []; + for (const name in defines) { + const value = defines[name]; + if (value === false) continue; + chunks.push("#define " + name + " " + value); + } + return chunks.join("\n"); +} +__name(generateDefines, "generateDefines"); +function fetchAttributeLocations(gl, program) { + const attributes = {}; + const n = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES); + for (let i = 0; i < n; i++) { + const info = gl.getActiveAttrib(program, i); + const name = info.name; + let locationSize = 1; + if (info.type === gl.FLOAT_MAT2) locationSize = 2; + if (info.type === gl.FLOAT_MAT3) locationSize = 3; + if (info.type === gl.FLOAT_MAT4) locationSize = 4; + attributes[name] = { + type: info.type, + location: gl.getAttribLocation(program, name), + locationSize + }; + } + return attributes; +} +__name(fetchAttributeLocations, "fetchAttributeLocations"); +function filterEmptyLine(string) { + return string !== ""; +} +__name(filterEmptyLine, "filterEmptyLine"); +function replaceLightNums(string, parameters) { + const numSpotLightCoords = parameters.numSpotLightShadows + parameters.numSpotLightMaps - parameters.numSpotLightShadowsWithMaps; + return string.replace(/NUM_DIR_LIGHTS/g, parameters.numDirLights).replace(/NUM_SPOT_LIGHTS/g, parameters.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g, parameters.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g, numSpotLightCoords).replace(/NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g, parameters.numPointLights).replace(/NUM_HEMI_LIGHTS/g, parameters.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g, parameters.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows); +} +__name(replaceLightNums, "replaceLightNums"); +function replaceClippingPlaneNums(string, parameters) { + return string.replace(/NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g, parameters.numClippingPlanes - parameters.numClipIntersection); +} +__name(replaceClippingPlaneNums, "replaceClippingPlaneNums"); +const includePattern = /^[ \t]*#include +<([\w\d./]+)>/gm; +function resolveIncludes(string) { + return string.replace(includePattern, includeReplacer); +} +__name(resolveIncludes, "resolveIncludes"); +const shaderChunkMap = /* @__PURE__ */ new Map(); +function includeReplacer(match, include) { + let string = ShaderChunk[include]; + if (string === void 0) { + const newInclude = shaderChunkMap.get(include); + if (newInclude !== void 0) { + string = ShaderChunk[newInclude]; + console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.', include, newInclude); + } else { + throw new Error("Can not resolve #include <" + include + ">"); + } + } + return resolveIncludes(string); +} +__name(includeReplacer, "includeReplacer"); +const unrollLoopPattern = /#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g; +function unrollLoops(string) { + return string.replace(unrollLoopPattern, loopReplacer); +} +__name(unrollLoops, "unrollLoops"); +function loopReplacer(match, start, end, snippet) { + let string = ""; + for (let i = parseInt(start); i < parseInt(end); i++) { + string += snippet.replace(/\[\s*i\s*\]/g, "[ " + i + " ]").replace(/UNROLLED_LOOP_INDEX/g, i); + } + return string; +} +__name(loopReplacer, "loopReplacer"); +function generatePrecision(parameters) { + let precisionstring = `precision ${parameters.precision} float; + precision ${parameters.precision} int; + precision ${parameters.precision} sampler2D; + precision ${parameters.precision} samplerCube; + precision ${parameters.precision} sampler3D; + precision ${parameters.precision} sampler2DArray; + precision ${parameters.precision} sampler2DShadow; + precision ${parameters.precision} samplerCubeShadow; + precision ${parameters.precision} sampler2DArrayShadow; + precision ${parameters.precision} isampler2D; + precision ${parameters.precision} isampler3D; + precision ${parameters.precision} isamplerCube; + precision ${parameters.precision} isampler2DArray; + precision ${parameters.precision} usampler2D; + precision ${parameters.precision} usampler3D; + precision ${parameters.precision} usamplerCube; + precision ${parameters.precision} usampler2DArray; + `; + if (parameters.precision === "highp") { + precisionstring += "\n#define HIGH_PRECISION"; + } else if (parameters.precision === "mediump") { + precisionstring += "\n#define MEDIUM_PRECISION"; + } else if (parameters.precision === "lowp") { + precisionstring += "\n#define LOW_PRECISION"; + } + return precisionstring; +} +__name(generatePrecision, "generatePrecision"); +function generateShadowMapTypeDefine(parameters) { + let shadowMapTypeDefine = "SHADOWMAP_TYPE_BASIC"; + if (parameters.shadowMapType === PCFShadowMap) { + shadowMapTypeDefine = "SHADOWMAP_TYPE_PCF"; + } else if (parameters.shadowMapType === PCFSoftShadowMap) { + shadowMapTypeDefine = "SHADOWMAP_TYPE_PCF_SOFT"; + } else if (parameters.shadowMapType === VSMShadowMap) { + shadowMapTypeDefine = "SHADOWMAP_TYPE_VSM"; + } + return shadowMapTypeDefine; +} +__name(generateShadowMapTypeDefine, "generateShadowMapTypeDefine"); +function generateEnvMapTypeDefine(parameters) { + let envMapTypeDefine = "ENVMAP_TYPE_CUBE"; + if (parameters.envMap) { + switch (parameters.envMapMode) { + case CubeReflectionMapping: + case CubeRefractionMapping: + envMapTypeDefine = "ENVMAP_TYPE_CUBE"; + break; + case CubeUVReflectionMapping: + envMapTypeDefine = "ENVMAP_TYPE_CUBE_UV"; + break; + } + } + return envMapTypeDefine; +} +__name(generateEnvMapTypeDefine, "generateEnvMapTypeDefine"); +function generateEnvMapModeDefine(parameters) { + let envMapModeDefine = "ENVMAP_MODE_REFLECTION"; + if (parameters.envMap) { + switch (parameters.envMapMode) { + case CubeRefractionMapping: + envMapModeDefine = "ENVMAP_MODE_REFRACTION"; + break; + } + } + return envMapModeDefine; +} +__name(generateEnvMapModeDefine, "generateEnvMapModeDefine"); +function generateEnvMapBlendingDefine(parameters) { + let envMapBlendingDefine = "ENVMAP_BLENDING_NONE"; + if (parameters.envMap) { + switch (parameters.combine) { + case MultiplyOperation: + envMapBlendingDefine = "ENVMAP_BLENDING_MULTIPLY"; + break; + case MixOperation: + envMapBlendingDefine = "ENVMAP_BLENDING_MIX"; + break; + case AddOperation: + envMapBlendingDefine = "ENVMAP_BLENDING_ADD"; + break; + } + } + return envMapBlendingDefine; +} +__name(generateEnvMapBlendingDefine, "generateEnvMapBlendingDefine"); +function generateCubeUVSize(parameters) { + const imageHeight = parameters.envMapCubeUVHeight; + if (imageHeight === null) return null; + const maxMip = Math.log2(imageHeight) - 2; + const texelHeight = 1 / imageHeight; + const texelWidth = 1 / (3 * Math.max(Math.pow(2, maxMip), 7 * 16)); + return { texelWidth, texelHeight, maxMip }; +} +__name(generateCubeUVSize, "generateCubeUVSize"); +function WebGLProgram(renderer, cacheKey, parameters, bindingStates) { + const gl = renderer.getContext(); + const defines = parameters.defines; + let vertexShader = parameters.vertexShader; + let fragmentShader = parameters.fragmentShader; + const shadowMapTypeDefine = generateShadowMapTypeDefine(parameters); + const envMapTypeDefine = generateEnvMapTypeDefine(parameters); + const envMapModeDefine = generateEnvMapModeDefine(parameters); + const envMapBlendingDefine = generateEnvMapBlendingDefine(parameters); + const envMapCubeUVSize = generateCubeUVSize(parameters); + const customVertexExtensions = generateVertexExtensions(parameters); + const customDefines = generateDefines(defines); + const program = gl.createProgram(); + let prefixVertex, prefixFragment; + let versionString = parameters.glslVersion ? "#version " + parameters.glslVersion + "\n" : ""; + if (parameters.isRawShaderMaterial) { + prefixVertex = [ + "#define SHADER_TYPE " + parameters.shaderType, + "#define SHADER_NAME " + parameters.shaderName, + customDefines + ].filter(filterEmptyLine).join("\n"); + if (prefixVertex.length > 0) { + prefixVertex += "\n"; + } + prefixFragment = [ + "#define SHADER_TYPE " + parameters.shaderType, + "#define SHADER_NAME " + parameters.shaderName, + customDefines + ].filter(filterEmptyLine).join("\n"); + if (prefixFragment.length > 0) { + prefixFragment += "\n"; + } + } else { + prefixVertex = [ + generatePrecision(parameters), + "#define SHADER_TYPE " + parameters.shaderType, + "#define SHADER_NAME " + parameters.shaderName, + customDefines, + parameters.extensionClipCullDistance ? "#define USE_CLIP_DISTANCE" : "", + parameters.batching ? "#define USE_BATCHING" : "", + parameters.batchingColor ? "#define USE_BATCHING_COLOR" : "", + parameters.instancing ? "#define USE_INSTANCING" : "", + parameters.instancingColor ? "#define USE_INSTANCING_COLOR" : "", + parameters.instancingMorph ? "#define USE_INSTANCING_MORPH" : "", + parameters.useFog && parameters.fog ? "#define USE_FOG" : "", + parameters.useFog && parameters.fogExp2 ? "#define FOG_EXP2" : "", + parameters.map ? "#define USE_MAP" : "", + parameters.envMap ? "#define USE_ENVMAP" : "", + parameters.envMap ? "#define " + envMapModeDefine : "", + parameters.lightMap ? "#define USE_LIGHTMAP" : "", + parameters.aoMap ? "#define USE_AOMAP" : "", + parameters.bumpMap ? "#define USE_BUMPMAP" : "", + parameters.normalMap ? "#define USE_NORMALMAP" : "", + parameters.normalMapObjectSpace ? "#define USE_NORMALMAP_OBJECTSPACE" : "", + parameters.normalMapTangentSpace ? "#define USE_NORMALMAP_TANGENTSPACE" : "", + parameters.displacementMap ? "#define USE_DISPLACEMENTMAP" : "", + parameters.emissiveMap ? "#define USE_EMISSIVEMAP" : "", + parameters.anisotropy ? "#define USE_ANISOTROPY" : "", + parameters.anisotropyMap ? "#define USE_ANISOTROPYMAP" : "", + parameters.clearcoatMap ? "#define USE_CLEARCOATMAP" : "", + parameters.clearcoatRoughnessMap ? "#define USE_CLEARCOAT_ROUGHNESSMAP" : "", + parameters.clearcoatNormalMap ? "#define USE_CLEARCOAT_NORMALMAP" : "", + parameters.iridescenceMap ? "#define USE_IRIDESCENCEMAP" : "", + parameters.iridescenceThicknessMap ? "#define USE_IRIDESCENCE_THICKNESSMAP" : "", + parameters.specularMap ? "#define USE_SPECULARMAP" : "", + parameters.specularColorMap ? "#define USE_SPECULAR_COLORMAP" : "", + parameters.specularIntensityMap ? "#define USE_SPECULAR_INTENSITYMAP" : "", + parameters.roughnessMap ? "#define USE_ROUGHNESSMAP" : "", + parameters.metalnessMap ? "#define USE_METALNESSMAP" : "", + parameters.alphaMap ? "#define USE_ALPHAMAP" : "", + parameters.alphaHash ? "#define USE_ALPHAHASH" : "", + parameters.transmission ? "#define USE_TRANSMISSION" : "", + parameters.transmissionMap ? "#define USE_TRANSMISSIONMAP" : "", + parameters.thicknessMap ? "#define USE_THICKNESSMAP" : "", + parameters.sheenColorMap ? "#define USE_SHEEN_COLORMAP" : "", + parameters.sheenRoughnessMap ? "#define USE_SHEEN_ROUGHNESSMAP" : "", + // + parameters.mapUv ? "#define MAP_UV " + parameters.mapUv : "", + parameters.alphaMapUv ? "#define ALPHAMAP_UV " + parameters.alphaMapUv : "", + parameters.lightMapUv ? "#define LIGHTMAP_UV " + parameters.lightMapUv : "", + parameters.aoMapUv ? "#define AOMAP_UV " + parameters.aoMapUv : "", + parameters.emissiveMapUv ? "#define EMISSIVEMAP_UV " + parameters.emissiveMapUv : "", + parameters.bumpMapUv ? "#define BUMPMAP_UV " + parameters.bumpMapUv : "", + parameters.normalMapUv ? "#define NORMALMAP_UV " + parameters.normalMapUv : "", + parameters.displacementMapUv ? "#define DISPLACEMENTMAP_UV " + parameters.displacementMapUv : "", + parameters.metalnessMapUv ? "#define METALNESSMAP_UV " + parameters.metalnessMapUv : "", + parameters.roughnessMapUv ? "#define ROUGHNESSMAP_UV " + parameters.roughnessMapUv : "", + parameters.anisotropyMapUv ? "#define ANISOTROPYMAP_UV " + parameters.anisotropyMapUv : "", + parameters.clearcoatMapUv ? "#define CLEARCOATMAP_UV " + parameters.clearcoatMapUv : "", + parameters.clearcoatNormalMapUv ? "#define CLEARCOAT_NORMALMAP_UV " + parameters.clearcoatNormalMapUv : "", + parameters.clearcoatRoughnessMapUv ? "#define CLEARCOAT_ROUGHNESSMAP_UV " + parameters.clearcoatRoughnessMapUv : "", + parameters.iridescenceMapUv ? "#define IRIDESCENCEMAP_UV " + parameters.iridescenceMapUv : "", + parameters.iridescenceThicknessMapUv ? "#define IRIDESCENCE_THICKNESSMAP_UV " + parameters.iridescenceThicknessMapUv : "", + parameters.sheenColorMapUv ? "#define SHEEN_COLORMAP_UV " + parameters.sheenColorMapUv : "", + parameters.sheenRoughnessMapUv ? "#define SHEEN_ROUGHNESSMAP_UV " + parameters.sheenRoughnessMapUv : "", + parameters.specularMapUv ? "#define SPECULARMAP_UV " + parameters.specularMapUv : "", + parameters.specularColorMapUv ? "#define SPECULAR_COLORMAP_UV " + parameters.specularColorMapUv : "", + parameters.specularIntensityMapUv ? "#define SPECULAR_INTENSITYMAP_UV " + parameters.specularIntensityMapUv : "", + parameters.transmissionMapUv ? "#define TRANSMISSIONMAP_UV " + parameters.transmissionMapUv : "", + parameters.thicknessMapUv ? "#define THICKNESSMAP_UV " + parameters.thicknessMapUv : "", + // + parameters.vertexTangents && parameters.flatShading === false ? "#define USE_TANGENT" : "", + parameters.vertexColors ? "#define USE_COLOR" : "", + parameters.vertexAlphas ? "#define USE_COLOR_ALPHA" : "", + parameters.vertexUv1s ? "#define USE_UV1" : "", + parameters.vertexUv2s ? "#define USE_UV2" : "", + parameters.vertexUv3s ? "#define USE_UV3" : "", + parameters.pointsUvs ? "#define USE_POINTS_UV" : "", + parameters.flatShading ? "#define FLAT_SHADED" : "", + parameters.skinning ? "#define USE_SKINNING" : "", + parameters.morphTargets ? "#define USE_MORPHTARGETS" : "", + parameters.morphNormals && parameters.flatShading === false ? "#define USE_MORPHNORMALS" : "", + parameters.morphColors ? "#define USE_MORPHCOLORS" : "", + parameters.morphTargetsCount > 0 ? "#define MORPHTARGETS_TEXTURE_STRIDE " + parameters.morphTextureStride : "", + parameters.morphTargetsCount > 0 ? "#define MORPHTARGETS_COUNT " + parameters.morphTargetsCount : "", + parameters.doubleSided ? "#define DOUBLE_SIDED" : "", + parameters.flipSided ? "#define FLIP_SIDED" : "", + parameters.shadowMapEnabled ? "#define USE_SHADOWMAP" : "", + parameters.shadowMapEnabled ? "#define " + shadowMapTypeDefine : "", + parameters.sizeAttenuation ? "#define USE_SIZEATTENUATION" : "", + parameters.numLightProbes > 0 ? "#define USE_LIGHT_PROBES" : "", + parameters.logarithmicDepthBuffer ? "#define USE_LOGDEPTHBUF" : "", + parameters.reverseDepthBuffer ? "#define USE_REVERSEDEPTHBUF" : "", + "uniform mat4 modelMatrix;", + "uniform mat4 modelViewMatrix;", + "uniform mat4 projectionMatrix;", + "uniform mat4 viewMatrix;", + "uniform mat3 normalMatrix;", + "uniform vec3 cameraPosition;", + "uniform bool isOrthographic;", + "#ifdef USE_INSTANCING", + " attribute mat4 instanceMatrix;", + "#endif", + "#ifdef USE_INSTANCING_COLOR", + " attribute vec3 instanceColor;", + "#endif", + "#ifdef USE_INSTANCING_MORPH", + " uniform sampler2D morphTexture;", + "#endif", + "attribute vec3 position;", + "attribute vec3 normal;", + "attribute vec2 uv;", + "#ifdef USE_UV1", + " attribute vec2 uv1;", + "#endif", + "#ifdef USE_UV2", + " attribute vec2 uv2;", + "#endif", + "#ifdef USE_UV3", + " attribute vec2 uv3;", + "#endif", + "#ifdef USE_TANGENT", + " attribute vec4 tangent;", + "#endif", + "#if defined( USE_COLOR_ALPHA )", + " attribute vec4 color;", + "#elif defined( USE_COLOR )", + " attribute vec3 color;", + "#endif", + "#ifdef USE_SKINNING", + " attribute vec4 skinIndex;", + " attribute vec4 skinWeight;", + "#endif", + "\n" + ].filter(filterEmptyLine).join("\n"); + prefixFragment = [ + generatePrecision(parameters), + "#define SHADER_TYPE " + parameters.shaderType, + "#define SHADER_NAME " + parameters.shaderName, + customDefines, + parameters.useFog && parameters.fog ? "#define USE_FOG" : "", + parameters.useFog && parameters.fogExp2 ? "#define FOG_EXP2" : "", + parameters.alphaToCoverage ? "#define ALPHA_TO_COVERAGE" : "", + parameters.map ? "#define USE_MAP" : "", + parameters.matcap ? "#define USE_MATCAP" : "", + parameters.envMap ? "#define USE_ENVMAP" : "", + parameters.envMap ? "#define " + envMapTypeDefine : "", + parameters.envMap ? "#define " + envMapModeDefine : "", + parameters.envMap ? "#define " + envMapBlendingDefine : "", + envMapCubeUVSize ? "#define CUBEUV_TEXEL_WIDTH " + envMapCubeUVSize.texelWidth : "", + envMapCubeUVSize ? "#define CUBEUV_TEXEL_HEIGHT " + envMapCubeUVSize.texelHeight : "", + envMapCubeUVSize ? "#define CUBEUV_MAX_MIP " + envMapCubeUVSize.maxMip + ".0" : "", + parameters.lightMap ? "#define USE_LIGHTMAP" : "", + parameters.aoMap ? "#define USE_AOMAP" : "", + parameters.bumpMap ? "#define USE_BUMPMAP" : "", + parameters.normalMap ? "#define USE_NORMALMAP" : "", + parameters.normalMapObjectSpace ? "#define USE_NORMALMAP_OBJECTSPACE" : "", + parameters.normalMapTangentSpace ? "#define USE_NORMALMAP_TANGENTSPACE" : "", + parameters.emissiveMap ? "#define USE_EMISSIVEMAP" : "", + parameters.anisotropy ? "#define USE_ANISOTROPY" : "", + parameters.anisotropyMap ? "#define USE_ANISOTROPYMAP" : "", + parameters.clearcoat ? "#define USE_CLEARCOAT" : "", + parameters.clearcoatMap ? "#define USE_CLEARCOATMAP" : "", + parameters.clearcoatRoughnessMap ? "#define USE_CLEARCOAT_ROUGHNESSMAP" : "", + parameters.clearcoatNormalMap ? "#define USE_CLEARCOAT_NORMALMAP" : "", + parameters.dispersion ? "#define USE_DISPERSION" : "", + parameters.iridescence ? "#define USE_IRIDESCENCE" : "", + parameters.iridescenceMap ? "#define USE_IRIDESCENCEMAP" : "", + parameters.iridescenceThicknessMap ? "#define USE_IRIDESCENCE_THICKNESSMAP" : "", + parameters.specularMap ? "#define USE_SPECULARMAP" : "", + parameters.specularColorMap ? "#define USE_SPECULAR_COLORMAP" : "", + parameters.specularIntensityMap ? "#define USE_SPECULAR_INTENSITYMAP" : "", + parameters.roughnessMap ? "#define USE_ROUGHNESSMAP" : "", + parameters.metalnessMap ? "#define USE_METALNESSMAP" : "", + parameters.alphaMap ? "#define USE_ALPHAMAP" : "", + parameters.alphaTest ? "#define USE_ALPHATEST" : "", + parameters.alphaHash ? "#define USE_ALPHAHASH" : "", + parameters.sheen ? "#define USE_SHEEN" : "", + parameters.sheenColorMap ? "#define USE_SHEEN_COLORMAP" : "", + parameters.sheenRoughnessMap ? "#define USE_SHEEN_ROUGHNESSMAP" : "", + parameters.transmission ? "#define USE_TRANSMISSION" : "", + parameters.transmissionMap ? "#define USE_TRANSMISSIONMAP" : "", + parameters.thicknessMap ? "#define USE_THICKNESSMAP" : "", + parameters.vertexTangents && parameters.flatShading === false ? "#define USE_TANGENT" : "", + parameters.vertexColors || parameters.instancingColor || parameters.batchingColor ? "#define USE_COLOR" : "", + parameters.vertexAlphas ? "#define USE_COLOR_ALPHA" : "", + parameters.vertexUv1s ? "#define USE_UV1" : "", + parameters.vertexUv2s ? "#define USE_UV2" : "", + parameters.vertexUv3s ? "#define USE_UV3" : "", + parameters.pointsUvs ? "#define USE_POINTS_UV" : "", + parameters.gradientMap ? "#define USE_GRADIENTMAP" : "", + parameters.flatShading ? "#define FLAT_SHADED" : "", + parameters.doubleSided ? "#define DOUBLE_SIDED" : "", + parameters.flipSided ? "#define FLIP_SIDED" : "", + parameters.shadowMapEnabled ? "#define USE_SHADOWMAP" : "", + parameters.shadowMapEnabled ? "#define " + shadowMapTypeDefine : "", + parameters.premultipliedAlpha ? "#define PREMULTIPLIED_ALPHA" : "", + parameters.numLightProbes > 0 ? "#define USE_LIGHT_PROBES" : "", + parameters.decodeVideoTexture ? "#define DECODE_VIDEO_TEXTURE" : "", + parameters.decodeVideoTextureEmissive ? "#define DECODE_VIDEO_TEXTURE_EMISSIVE" : "", + parameters.logarithmicDepthBuffer ? "#define USE_LOGDEPTHBUF" : "", + parameters.reverseDepthBuffer ? "#define USE_REVERSEDEPTHBUF" : "", + "uniform mat4 viewMatrix;", + "uniform vec3 cameraPosition;", + "uniform bool isOrthographic;", + parameters.toneMapping !== NoToneMapping ? "#define TONE_MAPPING" : "", + parameters.toneMapping !== NoToneMapping ? ShaderChunk["tonemapping_pars_fragment"] : "", + // this code is required here because it is used by the toneMapping() function defined below + parameters.toneMapping !== NoToneMapping ? getToneMappingFunction("toneMapping", parameters.toneMapping) : "", + parameters.dithering ? "#define DITHERING" : "", + parameters.opaque ? "#define OPAQUE" : "", + ShaderChunk["colorspace_pars_fragment"], + // this code is required here because it is used by the various encoding/decoding function defined below + getTexelEncodingFunction("linearToOutputTexel", parameters.outputColorSpace), + getLuminanceFunction(), + parameters.useDepthPacking ? "#define DEPTH_PACKING " + parameters.depthPacking : "", + "\n" + ].filter(filterEmptyLine).join("\n"); + } + vertexShader = resolveIncludes(vertexShader); + vertexShader = replaceLightNums(vertexShader, parameters); + vertexShader = replaceClippingPlaneNums(vertexShader, parameters); + fragmentShader = resolveIncludes(fragmentShader); + fragmentShader = replaceLightNums(fragmentShader, parameters); + fragmentShader = replaceClippingPlaneNums(fragmentShader, parameters); + vertexShader = unrollLoops(vertexShader); + fragmentShader = unrollLoops(fragmentShader); + if (parameters.isRawShaderMaterial !== true) { + versionString = "#version 300 es\n"; + prefixVertex = [ + customVertexExtensions, + "#define attribute in", + "#define varying out", + "#define texture2D texture" + ].join("\n") + "\n" + prefixVertex; + prefixFragment = [ + "#define varying in", + parameters.glslVersion === GLSL3 ? "" : "layout(location = 0) out highp vec4 pc_fragColor;", + parameters.glslVersion === GLSL3 ? "" : "#define gl_FragColor pc_fragColor", + "#define gl_FragDepthEXT gl_FragDepth", + "#define texture2D texture", + "#define textureCube texture", + "#define texture2DProj textureProj", + "#define texture2DLodEXT textureLod", + "#define texture2DProjLodEXT textureProjLod", + "#define textureCubeLodEXT textureLod", + "#define texture2DGradEXT textureGrad", + "#define texture2DProjGradEXT textureProjGrad", + "#define textureCubeGradEXT textureGrad" + ].join("\n") + "\n" + prefixFragment; + } + const vertexGlsl = versionString + prefixVertex + vertexShader; + const fragmentGlsl = versionString + prefixFragment + fragmentShader; + const glVertexShader = WebGLShader(gl, gl.VERTEX_SHADER, vertexGlsl); + const glFragmentShader = WebGLShader(gl, gl.FRAGMENT_SHADER, fragmentGlsl); + gl.attachShader(program, glVertexShader); + gl.attachShader(program, glFragmentShader); + if (parameters.index0AttributeName !== void 0) { + gl.bindAttribLocation(program, 0, parameters.index0AttributeName); + } else if (parameters.morphTargets === true) { + gl.bindAttribLocation(program, 0, "position"); + } + gl.linkProgram(program); + function onFirstUse(self2) { + if (renderer.debug.checkShaderErrors) { + const programLog = gl.getProgramInfoLog(program).trim(); + const vertexLog = gl.getShaderInfoLog(glVertexShader).trim(); + const fragmentLog = gl.getShaderInfoLog(glFragmentShader).trim(); + let runnable = true; + let haveDiagnostics = true; + if (gl.getProgramParameter(program, gl.LINK_STATUS) === false) { + runnable = false; + if (typeof renderer.debug.onShaderError === "function") { + renderer.debug.onShaderError(gl, program, glVertexShader, glFragmentShader); + } else { + const vertexErrors = getShaderErrors(gl, glVertexShader, "vertex"); + const fragmentErrors = getShaderErrors(gl, glFragmentShader, "fragment"); + console.error( + "THREE.WebGLProgram: Shader Error " + gl.getError() + " - VALIDATE_STATUS " + gl.getProgramParameter(program, gl.VALIDATE_STATUS) + "\n\nMaterial Name: " + self2.name + "\nMaterial Type: " + self2.type + "\n\nProgram Info Log: " + programLog + "\n" + vertexErrors + "\n" + fragmentErrors + ); + } + } else if (programLog !== "") { + console.warn("THREE.WebGLProgram: Program Info Log:", programLog); + } else if (vertexLog === "" || fragmentLog === "") { + haveDiagnostics = false; + } + if (haveDiagnostics) { + self2.diagnostics = { + runnable, + programLog, + vertexShader: { + log: vertexLog, + prefix: prefixVertex + }, + fragmentShader: { + log: fragmentLog, + prefix: prefixFragment + } + }; + } + } + gl.deleteShader(glVertexShader); + gl.deleteShader(glFragmentShader); + cachedUniforms = new WebGLUniforms(gl, program); + cachedAttributes = fetchAttributeLocations(gl, program); + } + __name(onFirstUse, "onFirstUse"); + let cachedUniforms; + this.getUniforms = function() { + if (cachedUniforms === void 0) { + onFirstUse(this); + } + return cachedUniforms; + }; + let cachedAttributes; + this.getAttributes = function() { + if (cachedAttributes === void 0) { + onFirstUse(this); + } + return cachedAttributes; + }; + let programReady = parameters.rendererExtensionParallelShaderCompile === false; + this.isReady = function() { + if (programReady === false) { + programReady = gl.getProgramParameter(program, COMPLETION_STATUS_KHR); + } + return programReady; + }; + this.destroy = function() { + bindingStates.releaseStatesOfProgram(this); + gl.deleteProgram(program); + this.program = void 0; + }; + this.type = parameters.shaderType; + this.name = parameters.shaderName; + this.id = programIdCount++; + this.cacheKey = cacheKey; + this.usedTimes = 1; + this.program = program; + this.vertexShader = glVertexShader; + this.fragmentShader = glFragmentShader; + return this; +} +__name(WebGLProgram, "WebGLProgram"); +let _id$1 = 0; +class WebGLShaderCache { + static { + __name(this, "WebGLShaderCache"); + } + constructor() { + this.shaderCache = /* @__PURE__ */ new Map(); + this.materialCache = /* @__PURE__ */ new Map(); + } + update(material) { + const vertexShader = material.vertexShader; + const fragmentShader = material.fragmentShader; + const vertexShaderStage = this._getShaderStage(vertexShader); + const fragmentShaderStage = this._getShaderStage(fragmentShader); + const materialShaders = this._getShaderCacheForMaterial(material); + if (materialShaders.has(vertexShaderStage) === false) { + materialShaders.add(vertexShaderStage); + vertexShaderStage.usedTimes++; + } + if (materialShaders.has(fragmentShaderStage) === false) { + materialShaders.add(fragmentShaderStage); + fragmentShaderStage.usedTimes++; + } + return this; + } + remove(material) { + const materialShaders = this.materialCache.get(material); + for (const shaderStage of materialShaders) { + shaderStage.usedTimes--; + if (shaderStage.usedTimes === 0) this.shaderCache.delete(shaderStage.code); + } + this.materialCache.delete(material); + return this; + } + getVertexShaderID(material) { + return this._getShaderStage(material.vertexShader).id; + } + getFragmentShaderID(material) { + return this._getShaderStage(material.fragmentShader).id; + } + dispose() { + this.shaderCache.clear(); + this.materialCache.clear(); + } + _getShaderCacheForMaterial(material) { + const cache = this.materialCache; + let set = cache.get(material); + if (set === void 0) { + set = /* @__PURE__ */ new Set(); + cache.set(material, set); + } + return set; + } + _getShaderStage(code) { + const cache = this.shaderCache; + let stage = cache.get(code); + if (stage === void 0) { + stage = new WebGLShaderStage(code); + cache.set(code, stage); + } + return stage; + } +} +class WebGLShaderStage { + static { + __name(this, "WebGLShaderStage"); + } + constructor(code) { + this.id = _id$1++; + this.code = code; + this.usedTimes = 0; + } +} +function WebGLPrograms(renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping) { + const _programLayers = new Layers(); + const _customShaders = new WebGLShaderCache(); + const _activeChannels = /* @__PURE__ */ new Set(); + const programs = []; + const logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer; + const SUPPORTS_VERTEX_TEXTURES = capabilities.vertexTextures; + let precision = capabilities.precision; + const shaderIDs = { + MeshDepthMaterial: "depth", + MeshDistanceMaterial: "distanceRGBA", + MeshNormalMaterial: "normal", + MeshBasicMaterial: "basic", + MeshLambertMaterial: "lambert", + MeshPhongMaterial: "phong", + MeshToonMaterial: "toon", + MeshStandardMaterial: "physical", + MeshPhysicalMaterial: "physical", + MeshMatcapMaterial: "matcap", + LineBasicMaterial: "basic", + LineDashedMaterial: "dashed", + PointsMaterial: "points", + ShadowMaterial: "shadow", + SpriteMaterial: "sprite" + }; + function getChannel(value) { + _activeChannels.add(value); + if (value === 0) return "uv"; + return `uv${value}`; + } + __name(getChannel, "getChannel"); + function getParameters(material, lights, shadows, scene, object) { + const fog = scene.fog; + const geometry = object.geometry; + const environment = material.isMeshStandardMaterial ? scene.environment : null; + const envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || environment); + const envMapCubeUVHeight = !!envMap && envMap.mapping === CubeUVReflectionMapping ? envMap.image.height : null; + const shaderID = shaderIDs[material.type]; + if (material.precision !== null) { + precision = capabilities.getMaxPrecision(material.precision); + if (precision !== material.precision) { + console.warn("THREE.WebGLProgram.getParameters:", material.precision, "not supported, using", precision, "instead."); + } + } + const morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color; + const morphTargetsCount = morphAttribute !== void 0 ? morphAttribute.length : 0; + let morphTextureStride = 0; + if (geometry.morphAttributes.position !== void 0) morphTextureStride = 1; + if (geometry.morphAttributes.normal !== void 0) morphTextureStride = 2; + if (geometry.morphAttributes.color !== void 0) morphTextureStride = 3; + let vertexShader, fragmentShader; + let customVertexShaderID, customFragmentShaderID; + if (shaderID) { + const shader = ShaderLib[shaderID]; + vertexShader = shader.vertexShader; + fragmentShader = shader.fragmentShader; + } else { + vertexShader = material.vertexShader; + fragmentShader = material.fragmentShader; + _customShaders.update(material); + customVertexShaderID = _customShaders.getVertexShaderID(material); + customFragmentShaderID = _customShaders.getFragmentShaderID(material); + } + const currentRenderTarget = renderer.getRenderTarget(); + const reverseDepthBuffer = renderer.state.buffers.depth.getReversed(); + const IS_INSTANCEDMESH = object.isInstancedMesh === true; + const IS_BATCHEDMESH = object.isBatchedMesh === true; + const HAS_MAP = !!material.map; + const HAS_MATCAP = !!material.matcap; + const HAS_ENVMAP = !!envMap; + const HAS_AOMAP = !!material.aoMap; + const HAS_LIGHTMAP = !!material.lightMap; + const HAS_BUMPMAP = !!material.bumpMap; + const HAS_NORMALMAP = !!material.normalMap; + const HAS_DISPLACEMENTMAP = !!material.displacementMap; + const HAS_EMISSIVEMAP = !!material.emissiveMap; + const HAS_METALNESSMAP = !!material.metalnessMap; + const HAS_ROUGHNESSMAP = !!material.roughnessMap; + const HAS_ANISOTROPY = material.anisotropy > 0; + const HAS_CLEARCOAT = material.clearcoat > 0; + const HAS_DISPERSION = material.dispersion > 0; + const HAS_IRIDESCENCE = material.iridescence > 0; + const HAS_SHEEN = material.sheen > 0; + const HAS_TRANSMISSION = material.transmission > 0; + const HAS_ANISOTROPYMAP = HAS_ANISOTROPY && !!material.anisotropyMap; + const HAS_CLEARCOATMAP = HAS_CLEARCOAT && !!material.clearcoatMap; + const HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !!material.clearcoatNormalMap; + const HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !!material.clearcoatRoughnessMap; + const HAS_IRIDESCENCEMAP = HAS_IRIDESCENCE && !!material.iridescenceMap; + const HAS_IRIDESCENCE_THICKNESSMAP = HAS_IRIDESCENCE && !!material.iridescenceThicknessMap; + const HAS_SHEEN_COLORMAP = HAS_SHEEN && !!material.sheenColorMap; + const HAS_SHEEN_ROUGHNESSMAP = HAS_SHEEN && !!material.sheenRoughnessMap; + const HAS_SPECULARMAP = !!material.specularMap; + const HAS_SPECULAR_COLORMAP = !!material.specularColorMap; + const HAS_SPECULAR_INTENSITYMAP = !!material.specularIntensityMap; + const HAS_TRANSMISSIONMAP = HAS_TRANSMISSION && !!material.transmissionMap; + const HAS_THICKNESSMAP = HAS_TRANSMISSION && !!material.thicknessMap; + const HAS_GRADIENTMAP = !!material.gradientMap; + const HAS_ALPHAMAP = !!material.alphaMap; + const HAS_ALPHATEST = material.alphaTest > 0; + const HAS_ALPHAHASH = !!material.alphaHash; + const HAS_EXTENSIONS = !!material.extensions; + let toneMapping = NoToneMapping; + if (material.toneMapped) { + if (currentRenderTarget === null || currentRenderTarget.isXRRenderTarget === true) { + toneMapping = renderer.toneMapping; + } + } + const parameters = { + shaderID, + shaderType: material.type, + shaderName: material.name, + vertexShader, + fragmentShader, + defines: material.defines, + customVertexShaderID, + customFragmentShaderID, + isRawShaderMaterial: material.isRawShaderMaterial === true, + glslVersion: material.glslVersion, + precision, + batching: IS_BATCHEDMESH, + batchingColor: IS_BATCHEDMESH && object._colorsTexture !== null, + instancing: IS_INSTANCEDMESH, + instancingColor: IS_INSTANCEDMESH && object.instanceColor !== null, + instancingMorph: IS_INSTANCEDMESH && object.morphTexture !== null, + supportsVertexTextures: SUPPORTS_VERTEX_TEXTURES, + outputColorSpace: currentRenderTarget === null ? renderer.outputColorSpace : currentRenderTarget.isXRRenderTarget === true ? currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace, + alphaToCoverage: !!material.alphaToCoverage, + map: HAS_MAP, + matcap: HAS_MATCAP, + envMap: HAS_ENVMAP, + envMapMode: HAS_ENVMAP && envMap.mapping, + envMapCubeUVHeight, + aoMap: HAS_AOMAP, + lightMap: HAS_LIGHTMAP, + bumpMap: HAS_BUMPMAP, + normalMap: HAS_NORMALMAP, + displacementMap: SUPPORTS_VERTEX_TEXTURES && HAS_DISPLACEMENTMAP, + emissiveMap: HAS_EMISSIVEMAP, + normalMapObjectSpace: HAS_NORMALMAP && material.normalMapType === ObjectSpaceNormalMap, + normalMapTangentSpace: HAS_NORMALMAP && material.normalMapType === TangentSpaceNormalMap, + metalnessMap: HAS_METALNESSMAP, + roughnessMap: HAS_ROUGHNESSMAP, + anisotropy: HAS_ANISOTROPY, + anisotropyMap: HAS_ANISOTROPYMAP, + clearcoat: HAS_CLEARCOAT, + clearcoatMap: HAS_CLEARCOATMAP, + clearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP, + clearcoatRoughnessMap: HAS_CLEARCOAT_ROUGHNESSMAP, + dispersion: HAS_DISPERSION, + iridescence: HAS_IRIDESCENCE, + iridescenceMap: HAS_IRIDESCENCEMAP, + iridescenceThicknessMap: HAS_IRIDESCENCE_THICKNESSMAP, + sheen: HAS_SHEEN, + sheenColorMap: HAS_SHEEN_COLORMAP, + sheenRoughnessMap: HAS_SHEEN_ROUGHNESSMAP, + specularMap: HAS_SPECULARMAP, + specularColorMap: HAS_SPECULAR_COLORMAP, + specularIntensityMap: HAS_SPECULAR_INTENSITYMAP, + transmission: HAS_TRANSMISSION, + transmissionMap: HAS_TRANSMISSIONMAP, + thicknessMap: HAS_THICKNESSMAP, + gradientMap: HAS_GRADIENTMAP, + opaque: material.transparent === false && material.blending === NormalBlending && material.alphaToCoverage === false, + alphaMap: HAS_ALPHAMAP, + alphaTest: HAS_ALPHATEST, + alphaHash: HAS_ALPHAHASH, + combine: material.combine, + // + mapUv: HAS_MAP && getChannel(material.map.channel), + aoMapUv: HAS_AOMAP && getChannel(material.aoMap.channel), + lightMapUv: HAS_LIGHTMAP && getChannel(material.lightMap.channel), + bumpMapUv: HAS_BUMPMAP && getChannel(material.bumpMap.channel), + normalMapUv: HAS_NORMALMAP && getChannel(material.normalMap.channel), + displacementMapUv: HAS_DISPLACEMENTMAP && getChannel(material.displacementMap.channel), + emissiveMapUv: HAS_EMISSIVEMAP && getChannel(material.emissiveMap.channel), + metalnessMapUv: HAS_METALNESSMAP && getChannel(material.metalnessMap.channel), + roughnessMapUv: HAS_ROUGHNESSMAP && getChannel(material.roughnessMap.channel), + anisotropyMapUv: HAS_ANISOTROPYMAP && getChannel(material.anisotropyMap.channel), + clearcoatMapUv: HAS_CLEARCOATMAP && getChannel(material.clearcoatMap.channel), + clearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel(material.clearcoatNormalMap.channel), + clearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel(material.clearcoatRoughnessMap.channel), + iridescenceMapUv: HAS_IRIDESCENCEMAP && getChannel(material.iridescenceMap.channel), + iridescenceThicknessMapUv: HAS_IRIDESCENCE_THICKNESSMAP && getChannel(material.iridescenceThicknessMap.channel), + sheenColorMapUv: HAS_SHEEN_COLORMAP && getChannel(material.sheenColorMap.channel), + sheenRoughnessMapUv: HAS_SHEEN_ROUGHNESSMAP && getChannel(material.sheenRoughnessMap.channel), + specularMapUv: HAS_SPECULARMAP && getChannel(material.specularMap.channel), + specularColorMapUv: HAS_SPECULAR_COLORMAP && getChannel(material.specularColorMap.channel), + specularIntensityMapUv: HAS_SPECULAR_INTENSITYMAP && getChannel(material.specularIntensityMap.channel), + transmissionMapUv: HAS_TRANSMISSIONMAP && getChannel(material.transmissionMap.channel), + thicknessMapUv: HAS_THICKNESSMAP && getChannel(material.thicknessMap.channel), + alphaMapUv: HAS_ALPHAMAP && getChannel(material.alphaMap.channel), + // + vertexTangents: !!geometry.attributes.tangent && (HAS_NORMALMAP || HAS_ANISOTROPY), + vertexColors: material.vertexColors, + vertexAlphas: material.vertexColors === true && !!geometry.attributes.color && geometry.attributes.color.itemSize === 4, + pointsUvs: object.isPoints === true && !!geometry.attributes.uv && (HAS_MAP || HAS_ALPHAMAP), + fog: !!fog, + useFog: material.fog === true, + fogExp2: !!fog && fog.isFogExp2, + flatShading: material.flatShading === true, + sizeAttenuation: material.sizeAttenuation === true, + logarithmicDepthBuffer, + reverseDepthBuffer, + skinning: object.isSkinnedMesh === true, + morphTargets: geometry.morphAttributes.position !== void 0, + morphNormals: geometry.morphAttributes.normal !== void 0, + morphColors: geometry.morphAttributes.color !== void 0, + morphTargetsCount, + morphTextureStride, + numDirLights: lights.directional.length, + numPointLights: lights.point.length, + numSpotLights: lights.spot.length, + numSpotLightMaps: lights.spotLightMap.length, + numRectAreaLights: lights.rectArea.length, + numHemiLights: lights.hemi.length, + numDirLightShadows: lights.directionalShadowMap.length, + numPointLightShadows: lights.pointShadowMap.length, + numSpotLightShadows: lights.spotShadowMap.length, + numSpotLightShadowsWithMaps: lights.numSpotLightShadowsWithMaps, + numLightProbes: lights.numLightProbes, + numClippingPlanes: clipping.numPlanes, + numClipIntersection: clipping.numIntersection, + dithering: material.dithering, + shadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0, + shadowMapType: renderer.shadowMap.type, + toneMapping, + decodeVideoTexture: HAS_MAP && material.map.isVideoTexture === true && ColorManagement.getTransfer(material.map.colorSpace) === SRGBTransfer, + decodeVideoTextureEmissive: HAS_EMISSIVEMAP && material.emissiveMap.isVideoTexture === true && ColorManagement.getTransfer(material.emissiveMap.colorSpace) === SRGBTransfer, + premultipliedAlpha: material.premultipliedAlpha, + doubleSided: material.side === DoubleSide, + flipSided: material.side === BackSide, + useDepthPacking: material.depthPacking >= 0, + depthPacking: material.depthPacking || 0, + index0AttributeName: material.index0AttributeName, + extensionClipCullDistance: HAS_EXTENSIONS && material.extensions.clipCullDistance === true && extensions.has("WEBGL_clip_cull_distance"), + extensionMultiDraw: (HAS_EXTENSIONS && material.extensions.multiDraw === true || IS_BATCHEDMESH) && extensions.has("WEBGL_multi_draw"), + rendererExtensionParallelShaderCompile: extensions.has("KHR_parallel_shader_compile"), + customProgramCacheKey: material.customProgramCacheKey() + }; + parameters.vertexUv1s = _activeChannels.has(1); + parameters.vertexUv2s = _activeChannels.has(2); + parameters.vertexUv3s = _activeChannels.has(3); + _activeChannels.clear(); + return parameters; + } + __name(getParameters, "getParameters"); + function getProgramCacheKey(parameters) { + const array = []; + if (parameters.shaderID) { + array.push(parameters.shaderID); + } else { + array.push(parameters.customVertexShaderID); + array.push(parameters.customFragmentShaderID); + } + if (parameters.defines !== void 0) { + for (const name in parameters.defines) { + array.push(name); + array.push(parameters.defines[name]); + } + } + if (parameters.isRawShaderMaterial === false) { + getProgramCacheKeyParameters(array, parameters); + getProgramCacheKeyBooleans(array, parameters); + array.push(renderer.outputColorSpace); + } + array.push(parameters.customProgramCacheKey); + return array.join(); + } + __name(getProgramCacheKey, "getProgramCacheKey"); + function getProgramCacheKeyParameters(array, parameters) { + array.push(parameters.precision); + array.push(parameters.outputColorSpace); + array.push(parameters.envMapMode); + array.push(parameters.envMapCubeUVHeight); + array.push(parameters.mapUv); + array.push(parameters.alphaMapUv); + array.push(parameters.lightMapUv); + array.push(parameters.aoMapUv); + array.push(parameters.bumpMapUv); + array.push(parameters.normalMapUv); + array.push(parameters.displacementMapUv); + array.push(parameters.emissiveMapUv); + array.push(parameters.metalnessMapUv); + array.push(parameters.roughnessMapUv); + array.push(parameters.anisotropyMapUv); + array.push(parameters.clearcoatMapUv); + array.push(parameters.clearcoatNormalMapUv); + array.push(parameters.clearcoatRoughnessMapUv); + array.push(parameters.iridescenceMapUv); + array.push(parameters.iridescenceThicknessMapUv); + array.push(parameters.sheenColorMapUv); + array.push(parameters.sheenRoughnessMapUv); + array.push(parameters.specularMapUv); + array.push(parameters.specularColorMapUv); + array.push(parameters.specularIntensityMapUv); + array.push(parameters.transmissionMapUv); + array.push(parameters.thicknessMapUv); + array.push(parameters.combine); + array.push(parameters.fogExp2); + array.push(parameters.sizeAttenuation); + array.push(parameters.morphTargetsCount); + array.push(parameters.morphAttributeCount); + array.push(parameters.numDirLights); + array.push(parameters.numPointLights); + array.push(parameters.numSpotLights); + array.push(parameters.numSpotLightMaps); + array.push(parameters.numHemiLights); + array.push(parameters.numRectAreaLights); + array.push(parameters.numDirLightShadows); + array.push(parameters.numPointLightShadows); + array.push(parameters.numSpotLightShadows); + array.push(parameters.numSpotLightShadowsWithMaps); + array.push(parameters.numLightProbes); + array.push(parameters.shadowMapType); + array.push(parameters.toneMapping); + array.push(parameters.numClippingPlanes); + array.push(parameters.numClipIntersection); + array.push(parameters.depthPacking); + } + __name(getProgramCacheKeyParameters, "getProgramCacheKeyParameters"); + function getProgramCacheKeyBooleans(array, parameters) { + _programLayers.disableAll(); + if (parameters.supportsVertexTextures) + _programLayers.enable(0); + if (parameters.instancing) + _programLayers.enable(1); + if (parameters.instancingColor) + _programLayers.enable(2); + if (parameters.instancingMorph) + _programLayers.enable(3); + if (parameters.matcap) + _programLayers.enable(4); + if (parameters.envMap) + _programLayers.enable(5); + if (parameters.normalMapObjectSpace) + _programLayers.enable(6); + if (parameters.normalMapTangentSpace) + _programLayers.enable(7); + if (parameters.clearcoat) + _programLayers.enable(8); + if (parameters.iridescence) + _programLayers.enable(9); + if (parameters.alphaTest) + _programLayers.enable(10); + if (parameters.vertexColors) + _programLayers.enable(11); + if (parameters.vertexAlphas) + _programLayers.enable(12); + if (parameters.vertexUv1s) + _programLayers.enable(13); + if (parameters.vertexUv2s) + _programLayers.enable(14); + if (parameters.vertexUv3s) + _programLayers.enable(15); + if (parameters.vertexTangents) + _programLayers.enable(16); + if (parameters.anisotropy) + _programLayers.enable(17); + if (parameters.alphaHash) + _programLayers.enable(18); + if (parameters.batching) + _programLayers.enable(19); + if (parameters.dispersion) + _programLayers.enable(20); + if (parameters.batchingColor) + _programLayers.enable(21); + array.push(_programLayers.mask); + _programLayers.disableAll(); + if (parameters.fog) + _programLayers.enable(0); + if (parameters.useFog) + _programLayers.enable(1); + if (parameters.flatShading) + _programLayers.enable(2); + if (parameters.logarithmicDepthBuffer) + _programLayers.enable(3); + if (parameters.reverseDepthBuffer) + _programLayers.enable(4); + if (parameters.skinning) + _programLayers.enable(5); + if (parameters.morphTargets) + _programLayers.enable(6); + if (parameters.morphNormals) + _programLayers.enable(7); + if (parameters.morphColors) + _programLayers.enable(8); + if (parameters.premultipliedAlpha) + _programLayers.enable(9); + if (parameters.shadowMapEnabled) + _programLayers.enable(10); + if (parameters.doubleSided) + _programLayers.enable(11); + if (parameters.flipSided) + _programLayers.enable(12); + if (parameters.useDepthPacking) + _programLayers.enable(13); + if (parameters.dithering) + _programLayers.enable(14); + if (parameters.transmission) + _programLayers.enable(15); + if (parameters.sheen) + _programLayers.enable(16); + if (parameters.opaque) + _programLayers.enable(17); + if (parameters.pointsUvs) + _programLayers.enable(18); + if (parameters.decodeVideoTexture) + _programLayers.enable(19); + if (parameters.decodeVideoTextureEmissive) + _programLayers.enable(20); + if (parameters.alphaToCoverage) + _programLayers.enable(21); + array.push(_programLayers.mask); + } + __name(getProgramCacheKeyBooleans, "getProgramCacheKeyBooleans"); + function getUniforms(material) { + const shaderID = shaderIDs[material.type]; + let uniforms; + if (shaderID) { + const shader = ShaderLib[shaderID]; + uniforms = UniformsUtils.clone(shader.uniforms); + } else { + uniforms = material.uniforms; + } + return uniforms; + } + __name(getUniforms, "getUniforms"); + function acquireProgram(parameters, cacheKey) { + let program; + for (let p = 0, pl = programs.length; p < pl; p++) { + const preexistingProgram = programs[p]; + if (preexistingProgram.cacheKey === cacheKey) { + program = preexistingProgram; + ++program.usedTimes; + break; + } + } + if (program === void 0) { + program = new WebGLProgram(renderer, cacheKey, parameters, bindingStates); + programs.push(program); + } + return program; + } + __name(acquireProgram, "acquireProgram"); + function releaseProgram(program) { + if (--program.usedTimes === 0) { + const i = programs.indexOf(program); + programs[i] = programs[programs.length - 1]; + programs.pop(); + program.destroy(); + } + } + __name(releaseProgram, "releaseProgram"); + function releaseShaderCache(material) { + _customShaders.remove(material); + } + __name(releaseShaderCache, "releaseShaderCache"); + function dispose() { + _customShaders.dispose(); + } + __name(dispose, "dispose"); + return { + getParameters, + getProgramCacheKey, + getUniforms, + acquireProgram, + releaseProgram, + releaseShaderCache, + // Exposed for resource monitoring & error feedback via renderer.info: + programs, + dispose + }; +} +__name(WebGLPrograms, "WebGLPrograms"); +function WebGLProperties() { + let properties = /* @__PURE__ */ new WeakMap(); + function has(object) { + return properties.has(object); + } + __name(has, "has"); + function get(object) { + let map = properties.get(object); + if (map === void 0) { + map = {}; + properties.set(object, map); + } + return map; + } + __name(get, "get"); + function remove(object) { + properties.delete(object); + } + __name(remove, "remove"); + function update(object, key, value) { + properties.get(object)[key] = value; + } + __name(update, "update"); + function dispose() { + properties = /* @__PURE__ */ new WeakMap(); + } + __name(dispose, "dispose"); + return { + has, + get, + remove, + update, + dispose + }; +} +__name(WebGLProperties, "WebGLProperties"); +function painterSortStable(a, b) { + if (a.groupOrder !== b.groupOrder) { + return a.groupOrder - b.groupOrder; + } else if (a.renderOrder !== b.renderOrder) { + return a.renderOrder - b.renderOrder; + } else if (a.material.id !== b.material.id) { + return a.material.id - b.material.id; + } else if (a.z !== b.z) { + return a.z - b.z; + } else { + return a.id - b.id; + } +} +__name(painterSortStable, "painterSortStable"); +function reversePainterSortStable(a, b) { + if (a.groupOrder !== b.groupOrder) { + return a.groupOrder - b.groupOrder; + } else if (a.renderOrder !== b.renderOrder) { + return a.renderOrder - b.renderOrder; + } else if (a.z !== b.z) { + return b.z - a.z; + } else { + return a.id - b.id; + } +} +__name(reversePainterSortStable, "reversePainterSortStable"); +function WebGLRenderList() { + const renderItems = []; + let renderItemsIndex = 0; + const opaque = []; + const transmissive = []; + const transparent = []; + function init() { + renderItemsIndex = 0; + opaque.length = 0; + transmissive.length = 0; + transparent.length = 0; + } + __name(init, "init"); + function getNextRenderItem(object, geometry, material, groupOrder, z, group) { + let renderItem = renderItems[renderItemsIndex]; + if (renderItem === void 0) { + renderItem = { + id: object.id, + object, + geometry, + material, + groupOrder, + renderOrder: object.renderOrder, + z, + group + }; + renderItems[renderItemsIndex] = renderItem; + } else { + renderItem.id = object.id; + renderItem.object = object; + renderItem.geometry = geometry; + renderItem.material = material; + renderItem.groupOrder = groupOrder; + renderItem.renderOrder = object.renderOrder; + renderItem.z = z; + renderItem.group = group; + } + renderItemsIndex++; + return renderItem; + } + __name(getNextRenderItem, "getNextRenderItem"); + function push(object, geometry, material, groupOrder, z, group) { + const renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group); + if (material.transmission > 0) { + transmissive.push(renderItem); + } else if (material.transparent === true) { + transparent.push(renderItem); + } else { + opaque.push(renderItem); + } + } + __name(push, "push"); + function unshift(object, geometry, material, groupOrder, z, group) { + const renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group); + if (material.transmission > 0) { + transmissive.unshift(renderItem); + } else if (material.transparent === true) { + transparent.unshift(renderItem); + } else { + opaque.unshift(renderItem); + } + } + __name(unshift, "unshift"); + function sort(customOpaqueSort, customTransparentSort) { + if (opaque.length > 1) opaque.sort(customOpaqueSort || painterSortStable); + if (transmissive.length > 1) transmissive.sort(customTransparentSort || reversePainterSortStable); + if (transparent.length > 1) transparent.sort(customTransparentSort || reversePainterSortStable); + } + __name(sort, "sort"); + function finish() { + for (let i = renderItemsIndex, il = renderItems.length; i < il; i++) { + const renderItem = renderItems[i]; + if (renderItem.id === null) break; + renderItem.id = null; + renderItem.object = null; + renderItem.geometry = null; + renderItem.material = null; + renderItem.group = null; + } + } + __name(finish, "finish"); + return { + opaque, + transmissive, + transparent, + init, + push, + unshift, + finish, + sort + }; +} +__name(WebGLRenderList, "WebGLRenderList"); +function WebGLRenderLists() { + let lists = /* @__PURE__ */ new WeakMap(); + function get(scene, renderCallDepth) { + const listArray = lists.get(scene); + let list; + if (listArray === void 0) { + list = new WebGLRenderList(); + lists.set(scene, [list]); + } else { + if (renderCallDepth >= listArray.length) { + list = new WebGLRenderList(); + listArray.push(list); + } else { + list = listArray[renderCallDepth]; + } + } + return list; + } + __name(get, "get"); + function dispose() { + lists = /* @__PURE__ */ new WeakMap(); + } + __name(dispose, "dispose"); + return { + get, + dispose + }; +} +__name(WebGLRenderLists, "WebGLRenderLists"); +function UniformsCache() { + const lights = {}; + return { + get: /* @__PURE__ */ __name(function(light) { + if (lights[light.id] !== void 0) { + return lights[light.id]; + } + let uniforms; + switch (light.type) { + case "DirectionalLight": + uniforms = { + direction: new Vector3(), + color: new Color() + }; + break; + case "SpotLight": + uniforms = { + position: new Vector3(), + direction: new Vector3(), + color: new Color(), + distance: 0, + coneCos: 0, + penumbraCos: 0, + decay: 0 + }; + break; + case "PointLight": + uniforms = { + position: new Vector3(), + color: new Color(), + distance: 0, + decay: 0 + }; + break; + case "HemisphereLight": + uniforms = { + direction: new Vector3(), + skyColor: new Color(), + groundColor: new Color() + }; + break; + case "RectAreaLight": + uniforms = { + color: new Color(), + position: new Vector3(), + halfWidth: new Vector3(), + halfHeight: new Vector3() + }; + break; + } + lights[light.id] = uniforms; + return uniforms; + }, "get") + }; +} +__name(UniformsCache, "UniformsCache"); +function ShadowUniformsCache() { + const lights = {}; + return { + get: /* @__PURE__ */ __name(function(light) { + if (lights[light.id] !== void 0) { + return lights[light.id]; + } + let uniforms; + switch (light.type) { + case "DirectionalLight": + uniforms = { + shadowIntensity: 1, + shadowBias: 0, + shadowNormalBias: 0, + shadowRadius: 1, + shadowMapSize: new Vector2() + }; + break; + case "SpotLight": + uniforms = { + shadowIntensity: 1, + shadowBias: 0, + shadowNormalBias: 0, + shadowRadius: 1, + shadowMapSize: new Vector2() + }; + break; + case "PointLight": + uniforms = { + shadowIntensity: 1, + shadowBias: 0, + shadowNormalBias: 0, + shadowRadius: 1, + shadowMapSize: new Vector2(), + shadowCameraNear: 1, + shadowCameraFar: 1e3 + }; + break; + } + lights[light.id] = uniforms; + return uniforms; + }, "get") + }; +} +__name(ShadowUniformsCache, "ShadowUniformsCache"); +let nextVersion = 0; +function shadowCastingAndTexturingLightsFirst(lightA, lightB) { + return (lightB.castShadow ? 2 : 0) - (lightA.castShadow ? 2 : 0) + (lightB.map ? 1 : 0) - (lightA.map ? 1 : 0); +} +__name(shadowCastingAndTexturingLightsFirst, "shadowCastingAndTexturingLightsFirst"); +function WebGLLights(extensions) { + const cache = new UniformsCache(); + const shadowCache = ShadowUniformsCache(); + const state = { + version: 0, + hash: { + directionalLength: -1, + pointLength: -1, + spotLength: -1, + rectAreaLength: -1, + hemiLength: -1, + numDirectionalShadows: -1, + numPointShadows: -1, + numSpotShadows: -1, + numSpotMaps: -1, + numLightProbes: -1 + }, + ambient: [0, 0, 0], + probe: [], + directional: [], + directionalShadow: [], + directionalShadowMap: [], + directionalShadowMatrix: [], + spot: [], + spotLightMap: [], + spotShadow: [], + spotShadowMap: [], + spotLightMatrix: [], + rectArea: [], + rectAreaLTC1: null, + rectAreaLTC2: null, + point: [], + pointShadow: [], + pointShadowMap: [], + pointShadowMatrix: [], + hemi: [], + numSpotLightShadowsWithMaps: 0, + numLightProbes: 0 + }; + for (let i = 0; i < 9; i++) state.probe.push(new Vector3()); + const vector3 = new Vector3(); + const matrix4 = new Matrix4(); + const matrix42 = new Matrix4(); + function setup(lights) { + let r = 0, g = 0, b = 0; + for (let i = 0; i < 9; i++) state.probe[i].set(0, 0, 0); + let directionalLength = 0; + let pointLength = 0; + let spotLength = 0; + let rectAreaLength = 0; + let hemiLength = 0; + let numDirectionalShadows = 0; + let numPointShadows = 0; + let numSpotShadows = 0; + let numSpotMaps = 0; + let numSpotShadowsWithMaps = 0; + let numLightProbes = 0; + lights.sort(shadowCastingAndTexturingLightsFirst); + for (let i = 0, l = lights.length; i < l; i++) { + const light = lights[i]; + const color = light.color; + const intensity = light.intensity; + const distance = light.distance; + const shadowMap = light.shadow && light.shadow.map ? light.shadow.map.texture : null; + if (light.isAmbientLight) { + r += color.r * intensity; + g += color.g * intensity; + b += color.b * intensity; + } else if (light.isLightProbe) { + for (let j = 0; j < 9; j++) { + state.probe[j].addScaledVector(light.sh.coefficients[j], intensity); + } + numLightProbes++; + } else if (light.isDirectionalLight) { + const uniforms = cache.get(light); + uniforms.color.copy(light.color).multiplyScalar(light.intensity); + if (light.castShadow) { + const shadow = light.shadow; + const shadowUniforms = shadowCache.get(light); + shadowUniforms.shadowIntensity = shadow.intensity; + shadowUniforms.shadowBias = shadow.bias; + shadowUniforms.shadowNormalBias = shadow.normalBias; + shadowUniforms.shadowRadius = shadow.radius; + shadowUniforms.shadowMapSize = shadow.mapSize; + state.directionalShadow[directionalLength] = shadowUniforms; + state.directionalShadowMap[directionalLength] = shadowMap; + state.directionalShadowMatrix[directionalLength] = light.shadow.matrix; + numDirectionalShadows++; + } + state.directional[directionalLength] = uniforms; + directionalLength++; + } else if (light.isSpotLight) { + const uniforms = cache.get(light); + uniforms.position.setFromMatrixPosition(light.matrixWorld); + uniforms.color.copy(color).multiplyScalar(intensity); + uniforms.distance = distance; + uniforms.coneCos = Math.cos(light.angle); + uniforms.penumbraCos = Math.cos(light.angle * (1 - light.penumbra)); + uniforms.decay = light.decay; + state.spot[spotLength] = uniforms; + const shadow = light.shadow; + if (light.map) { + state.spotLightMap[numSpotMaps] = light.map; + numSpotMaps++; + shadow.updateMatrices(light); + if (light.castShadow) numSpotShadowsWithMaps++; + } + state.spotLightMatrix[spotLength] = shadow.matrix; + if (light.castShadow) { + const shadowUniforms = shadowCache.get(light); + shadowUniforms.shadowIntensity = shadow.intensity; + shadowUniforms.shadowBias = shadow.bias; + shadowUniforms.shadowNormalBias = shadow.normalBias; + shadowUniforms.shadowRadius = shadow.radius; + shadowUniforms.shadowMapSize = shadow.mapSize; + state.spotShadow[spotLength] = shadowUniforms; + state.spotShadowMap[spotLength] = shadowMap; + numSpotShadows++; + } + spotLength++; + } else if (light.isRectAreaLight) { + const uniforms = cache.get(light); + uniforms.color.copy(color).multiplyScalar(intensity); + uniforms.halfWidth.set(light.width * 0.5, 0, 0); + uniforms.halfHeight.set(0, light.height * 0.5, 0); + state.rectArea[rectAreaLength] = uniforms; + rectAreaLength++; + } else if (light.isPointLight) { + const uniforms = cache.get(light); + uniforms.color.copy(light.color).multiplyScalar(light.intensity); + uniforms.distance = light.distance; + uniforms.decay = light.decay; + if (light.castShadow) { + const shadow = light.shadow; + const shadowUniforms = shadowCache.get(light); + shadowUniforms.shadowIntensity = shadow.intensity; + shadowUniforms.shadowBias = shadow.bias; + shadowUniforms.shadowNormalBias = shadow.normalBias; + shadowUniforms.shadowRadius = shadow.radius; + shadowUniforms.shadowMapSize = shadow.mapSize; + shadowUniforms.shadowCameraNear = shadow.camera.near; + shadowUniforms.shadowCameraFar = shadow.camera.far; + state.pointShadow[pointLength] = shadowUniforms; + state.pointShadowMap[pointLength] = shadowMap; + state.pointShadowMatrix[pointLength] = light.shadow.matrix; + numPointShadows++; + } + state.point[pointLength] = uniforms; + pointLength++; + } else if (light.isHemisphereLight) { + const uniforms = cache.get(light); + uniforms.skyColor.copy(light.color).multiplyScalar(intensity); + uniforms.groundColor.copy(light.groundColor).multiplyScalar(intensity); + state.hemi[hemiLength] = uniforms; + hemiLength++; + } + } + if (rectAreaLength > 0) { + if (extensions.has("OES_texture_float_linear") === true) { + state.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1; + state.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2; + } else { + state.rectAreaLTC1 = UniformsLib.LTC_HALF_1; + state.rectAreaLTC2 = UniformsLib.LTC_HALF_2; + } + } + state.ambient[0] = r; + state.ambient[1] = g; + state.ambient[2] = b; + const hash = state.hash; + if (hash.directionalLength !== directionalLength || hash.pointLength !== pointLength || hash.spotLength !== spotLength || hash.rectAreaLength !== rectAreaLength || hash.hemiLength !== hemiLength || hash.numDirectionalShadows !== numDirectionalShadows || hash.numPointShadows !== numPointShadows || hash.numSpotShadows !== numSpotShadows || hash.numSpotMaps !== numSpotMaps || hash.numLightProbes !== numLightProbes) { + state.directional.length = directionalLength; + state.spot.length = spotLength; + state.rectArea.length = rectAreaLength; + state.point.length = pointLength; + state.hemi.length = hemiLength; + state.directionalShadow.length = numDirectionalShadows; + state.directionalShadowMap.length = numDirectionalShadows; + state.pointShadow.length = numPointShadows; + state.pointShadowMap.length = numPointShadows; + state.spotShadow.length = numSpotShadows; + state.spotShadowMap.length = numSpotShadows; + state.directionalShadowMatrix.length = numDirectionalShadows; + state.pointShadowMatrix.length = numPointShadows; + state.spotLightMatrix.length = numSpotShadows + numSpotMaps - numSpotShadowsWithMaps; + state.spotLightMap.length = numSpotMaps; + state.numSpotLightShadowsWithMaps = numSpotShadowsWithMaps; + state.numLightProbes = numLightProbes; + hash.directionalLength = directionalLength; + hash.pointLength = pointLength; + hash.spotLength = spotLength; + hash.rectAreaLength = rectAreaLength; + hash.hemiLength = hemiLength; + hash.numDirectionalShadows = numDirectionalShadows; + hash.numPointShadows = numPointShadows; + hash.numSpotShadows = numSpotShadows; + hash.numSpotMaps = numSpotMaps; + hash.numLightProbes = numLightProbes; + state.version = nextVersion++; + } + } + __name(setup, "setup"); + function setupView(lights, camera) { + let directionalLength = 0; + let pointLength = 0; + let spotLength = 0; + let rectAreaLength = 0; + let hemiLength = 0; + const viewMatrix = camera.matrixWorldInverse; + for (let i = 0, l = lights.length; i < l; i++) { + const light = lights[i]; + if (light.isDirectionalLight) { + const uniforms = state.directional[directionalLength]; + uniforms.direction.setFromMatrixPosition(light.matrixWorld); + vector3.setFromMatrixPosition(light.target.matrixWorld); + uniforms.direction.sub(vector3); + uniforms.direction.transformDirection(viewMatrix); + directionalLength++; + } else if (light.isSpotLight) { + const uniforms = state.spot[spotLength]; + uniforms.position.setFromMatrixPosition(light.matrixWorld); + uniforms.position.applyMatrix4(viewMatrix); + uniforms.direction.setFromMatrixPosition(light.matrixWorld); + vector3.setFromMatrixPosition(light.target.matrixWorld); + uniforms.direction.sub(vector3); + uniforms.direction.transformDirection(viewMatrix); + spotLength++; + } else if (light.isRectAreaLight) { + const uniforms = state.rectArea[rectAreaLength]; + uniforms.position.setFromMatrixPosition(light.matrixWorld); + uniforms.position.applyMatrix4(viewMatrix); + matrix42.identity(); + matrix4.copy(light.matrixWorld); + matrix4.premultiply(viewMatrix); + matrix42.extractRotation(matrix4); + uniforms.halfWidth.set(light.width * 0.5, 0, 0); + uniforms.halfHeight.set(0, light.height * 0.5, 0); + uniforms.halfWidth.applyMatrix4(matrix42); + uniforms.halfHeight.applyMatrix4(matrix42); + rectAreaLength++; + } else if (light.isPointLight) { + const uniforms = state.point[pointLength]; + uniforms.position.setFromMatrixPosition(light.matrixWorld); + uniforms.position.applyMatrix4(viewMatrix); + pointLength++; + } else if (light.isHemisphereLight) { + const uniforms = state.hemi[hemiLength]; + uniforms.direction.setFromMatrixPosition(light.matrixWorld); + uniforms.direction.transformDirection(viewMatrix); + hemiLength++; + } + } + } + __name(setupView, "setupView"); + return { + setup, + setupView, + state + }; +} +__name(WebGLLights, "WebGLLights"); +function WebGLRenderState(extensions) { + const lights = new WebGLLights(extensions); + const lightsArray = []; + const shadowsArray = []; + function init(camera) { + state.camera = camera; + lightsArray.length = 0; + shadowsArray.length = 0; + } + __name(init, "init"); + function pushLight(light) { + lightsArray.push(light); + } + __name(pushLight, "pushLight"); + function pushShadow(shadowLight) { + shadowsArray.push(shadowLight); + } + __name(pushShadow, "pushShadow"); + function setupLights() { + lights.setup(lightsArray); + } + __name(setupLights, "setupLights"); + function setupLightsView(camera) { + lights.setupView(lightsArray, camera); + } + __name(setupLightsView, "setupLightsView"); + const state = { + lightsArray, + shadowsArray, + camera: null, + lights, + transmissionRenderTarget: {} + }; + return { + init, + state, + setupLights, + setupLightsView, + pushLight, + pushShadow + }; +} +__name(WebGLRenderState, "WebGLRenderState"); +function WebGLRenderStates(extensions) { + let renderStates = /* @__PURE__ */ new WeakMap(); + function get(scene, renderCallDepth = 0) { + const renderStateArray = renderStates.get(scene); + let renderState; + if (renderStateArray === void 0) { + renderState = new WebGLRenderState(extensions); + renderStates.set(scene, [renderState]); + } else { + if (renderCallDepth >= renderStateArray.length) { + renderState = new WebGLRenderState(extensions); + renderStateArray.push(renderState); + } else { + renderState = renderStateArray[renderCallDepth]; + } + } + return renderState; + } + __name(get, "get"); + function dispose() { + renderStates = /* @__PURE__ */ new WeakMap(); + } + __name(dispose, "dispose"); + return { + get, + dispose + }; +} +__name(WebGLRenderStates, "WebGLRenderStates"); +class MeshDepthMaterial extends Material { + static { + __name(this, "MeshDepthMaterial"); + } + static get type() { + return "MeshDepthMaterial"; + } + constructor(parameters) { + super(); + this.isMeshDepthMaterial = true; + this.depthPacking = BasicDepthPacking; + this.map = null; + this.alphaMap = null; + this.displacementMap = null; + this.displacementScale = 1; + this.displacementBias = 0; + this.wireframe = false; + this.wireframeLinewidth = 1; + this.setValues(parameters); + } + copy(source) { + super.copy(source); + this.depthPacking = source.depthPacking; + this.map = source.map; + this.alphaMap = source.alphaMap; + this.displacementMap = source.displacementMap; + this.displacementScale = source.displacementScale; + this.displacementBias = source.displacementBias; + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + return this; + } +} +class MeshDistanceMaterial extends Material { + static { + __name(this, "MeshDistanceMaterial"); + } + static get type() { + return "MeshDistanceMaterial"; + } + constructor(parameters) { + super(); + this.isMeshDistanceMaterial = true; + this.map = null; + this.alphaMap = null; + this.displacementMap = null; + this.displacementScale = 1; + this.displacementBias = 0; + this.setValues(parameters); + } + copy(source) { + super.copy(source); + this.map = source.map; + this.alphaMap = source.alphaMap; + this.displacementMap = source.displacementMap; + this.displacementScale = source.displacementScale; + this.displacementBias = source.displacementBias; + return this; + } +} +const vertex = "void main() {\n gl_Position = vec4( position, 1.0 );\n}"; +const fragment = "uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n const float samples = float( VSM_SAMPLES );\n float mean = 0.0;\n float squared_mean = 0.0;\n float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n float uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n for ( float i = 0.0; i < samples; i ++ ) {\n float uvOffset = uvStart + i * uvStride;\n #ifdef HORIZONTAL_PASS\n vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n mean += distribution.x;\n squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n #else\n float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n mean += depth;\n squared_mean += depth * depth;\n #endif\n }\n mean = mean / samples;\n squared_mean = squared_mean / samples;\n float std_dev = sqrt( squared_mean - mean * mean );\n gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"; +function WebGLShadowMap(renderer, objects, capabilities) { + let _frustum2 = new Frustum(); + const _shadowMapSize = new Vector2(), _viewportSize = new Vector2(), _viewport = new Vector4(), _depthMaterial = new MeshDepthMaterial({ depthPacking: RGBADepthPacking }), _distanceMaterial = new MeshDistanceMaterial(), _materialCache = {}, _maxTextureSize = capabilities.maxTextureSize; + const shadowSide = { [FrontSide]: BackSide, [BackSide]: FrontSide, [DoubleSide]: DoubleSide }; + const shadowMaterialVertical = new ShaderMaterial({ + defines: { + VSM_SAMPLES: 8 + }, + uniforms: { + shadow_pass: { value: null }, + resolution: { value: new Vector2() }, + radius: { value: 4 } + }, + vertexShader: vertex, + fragmentShader: fragment + }); + const shadowMaterialHorizontal = shadowMaterialVertical.clone(); + shadowMaterialHorizontal.defines.HORIZONTAL_PASS = 1; + const fullScreenTri = new BufferGeometry(); + fullScreenTri.setAttribute( + "position", + new BufferAttribute( + new Float32Array([-1, -1, 0.5, 3, -1, 0.5, -1, 3, 0.5]), + 3 + ) + ); + const fullScreenMesh = new Mesh(fullScreenTri, shadowMaterialVertical); + const scope = this; + this.enabled = false; + this.autoUpdate = true; + this.needsUpdate = false; + this.type = PCFShadowMap; + let _previousType = this.type; + this.render = function(lights, scene, camera) { + if (scope.enabled === false) return; + if (scope.autoUpdate === false && scope.needsUpdate === false) return; + if (lights.length === 0) return; + const currentRenderTarget = renderer.getRenderTarget(); + const activeCubeFace = renderer.getActiveCubeFace(); + const activeMipmapLevel = renderer.getActiveMipmapLevel(); + const _state = renderer.state; + _state.setBlending(NoBlending); + _state.buffers.color.setClear(1, 1, 1, 1); + _state.buffers.depth.setTest(true); + _state.setScissorTest(false); + const toVSM = _previousType !== VSMShadowMap && this.type === VSMShadowMap; + const fromVSM = _previousType === VSMShadowMap && this.type !== VSMShadowMap; + for (let i = 0, il = lights.length; i < il; i++) { + const light = lights[i]; + const shadow = light.shadow; + if (shadow === void 0) { + console.warn("THREE.WebGLShadowMap:", light, "has no shadow."); + continue; + } + if (shadow.autoUpdate === false && shadow.needsUpdate === false) continue; + _shadowMapSize.copy(shadow.mapSize); + const shadowFrameExtents = shadow.getFrameExtents(); + _shadowMapSize.multiply(shadowFrameExtents); + _viewportSize.copy(shadow.mapSize); + if (_shadowMapSize.x > _maxTextureSize || _shadowMapSize.y > _maxTextureSize) { + if (_shadowMapSize.x > _maxTextureSize) { + _viewportSize.x = Math.floor(_maxTextureSize / shadowFrameExtents.x); + _shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x; + shadow.mapSize.x = _viewportSize.x; + } + if (_shadowMapSize.y > _maxTextureSize) { + _viewportSize.y = Math.floor(_maxTextureSize / shadowFrameExtents.y); + _shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y; + shadow.mapSize.y = _viewportSize.y; + } + } + if (shadow.map === null || toVSM === true || fromVSM === true) { + const pars = this.type !== VSMShadowMap ? { minFilter: NearestFilter, magFilter: NearestFilter } : {}; + if (shadow.map !== null) { + shadow.map.dispose(); + } + shadow.map = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars); + shadow.map.texture.name = light.name + ".shadowMap"; + shadow.camera.updateProjectionMatrix(); + } + renderer.setRenderTarget(shadow.map); + renderer.clear(); + const viewportCount = shadow.getViewportCount(); + for (let vp = 0; vp < viewportCount; vp++) { + const viewport = shadow.getViewport(vp); + _viewport.set( + _viewportSize.x * viewport.x, + _viewportSize.y * viewport.y, + _viewportSize.x * viewport.z, + _viewportSize.y * viewport.w + ); + _state.viewport(_viewport); + shadow.updateMatrices(light, vp); + _frustum2 = shadow.getFrustum(); + renderObject(scene, camera, shadow.camera, light, this.type); + } + if (shadow.isPointLightShadow !== true && this.type === VSMShadowMap) { + VSMPass(shadow, camera); + } + shadow.needsUpdate = false; + } + _previousType = this.type; + scope.needsUpdate = false; + renderer.setRenderTarget(currentRenderTarget, activeCubeFace, activeMipmapLevel); + }; + function VSMPass(shadow, camera) { + const geometry = objects.update(fullScreenMesh); + if (shadowMaterialVertical.defines.VSM_SAMPLES !== shadow.blurSamples) { + shadowMaterialVertical.defines.VSM_SAMPLES = shadow.blurSamples; + shadowMaterialHorizontal.defines.VSM_SAMPLES = shadow.blurSamples; + shadowMaterialVertical.needsUpdate = true; + shadowMaterialHorizontal.needsUpdate = true; + } + if (shadow.mapPass === null) { + shadow.mapPass = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y); + } + shadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture; + shadowMaterialVertical.uniforms.resolution.value = shadow.mapSize; + shadowMaterialVertical.uniforms.radius.value = shadow.radius; + renderer.setRenderTarget(shadow.mapPass); + renderer.clear(); + renderer.renderBufferDirect(camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null); + shadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture; + shadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize; + shadowMaterialHorizontal.uniforms.radius.value = shadow.radius; + renderer.setRenderTarget(shadow.map); + renderer.clear(); + renderer.renderBufferDirect(camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null); + } + __name(VSMPass, "VSMPass"); + function getDepthMaterial(object, material, light, type) { + let result = null; + const customMaterial = light.isPointLight === true ? object.customDistanceMaterial : object.customDepthMaterial; + if (customMaterial !== void 0) { + result = customMaterial; + } else { + result = light.isPointLight === true ? _distanceMaterial : _depthMaterial; + if (renderer.localClippingEnabled && material.clipShadows === true && Array.isArray(material.clippingPlanes) && material.clippingPlanes.length !== 0 || material.displacementMap && material.displacementScale !== 0 || material.alphaMap && material.alphaTest > 0 || material.map && material.alphaTest > 0) { + const keyA = result.uuid, keyB = material.uuid; + let materialsForVariant = _materialCache[keyA]; + if (materialsForVariant === void 0) { + materialsForVariant = {}; + _materialCache[keyA] = materialsForVariant; + } + let cachedMaterial = materialsForVariant[keyB]; + if (cachedMaterial === void 0) { + cachedMaterial = result.clone(); + materialsForVariant[keyB] = cachedMaterial; + material.addEventListener("dispose", onMaterialDispose); + } + result = cachedMaterial; + } + } + result.visible = material.visible; + result.wireframe = material.wireframe; + if (type === VSMShadowMap) { + result.side = material.shadowSide !== null ? material.shadowSide : material.side; + } else { + result.side = material.shadowSide !== null ? material.shadowSide : shadowSide[material.side]; + } + result.alphaMap = material.alphaMap; + result.alphaTest = material.alphaTest; + result.map = material.map; + result.clipShadows = material.clipShadows; + result.clippingPlanes = material.clippingPlanes; + result.clipIntersection = material.clipIntersection; + result.displacementMap = material.displacementMap; + result.displacementScale = material.displacementScale; + result.displacementBias = material.displacementBias; + result.wireframeLinewidth = material.wireframeLinewidth; + result.linewidth = material.linewidth; + if (light.isPointLight === true && result.isMeshDistanceMaterial === true) { + const materialProperties = renderer.properties.get(result); + materialProperties.light = light; + } + return result; + } + __name(getDepthMaterial, "getDepthMaterial"); + function renderObject(object, camera, shadowCamera, light, type) { + if (object.visible === false) return; + const visible = object.layers.test(camera.layers); + if (visible && (object.isMesh || object.isLine || object.isPoints)) { + if ((object.castShadow || object.receiveShadow && type === VSMShadowMap) && (!object.frustumCulled || _frustum2.intersectsObject(object))) { + object.modelViewMatrix.multiplyMatrices(shadowCamera.matrixWorldInverse, object.matrixWorld); + const geometry = objects.update(object); + const material = object.material; + if (Array.isArray(material)) { + const groups = geometry.groups; + for (let k = 0, kl = groups.length; k < kl; k++) { + const group = groups[k]; + const groupMaterial = material[group.materialIndex]; + if (groupMaterial && groupMaterial.visible) { + const depthMaterial = getDepthMaterial(object, groupMaterial, light, type); + object.onBeforeShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial, group); + renderer.renderBufferDirect(shadowCamera, null, geometry, depthMaterial, object, group); + object.onAfterShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial, group); + } + } + } else if (material.visible) { + const depthMaterial = getDepthMaterial(object, material, light, type); + object.onBeforeShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial, null); + renderer.renderBufferDirect(shadowCamera, null, geometry, depthMaterial, object, null); + object.onAfterShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial, null); + } + } + } + const children = object.children; + for (let i = 0, l = children.length; i < l; i++) { + renderObject(children[i], camera, shadowCamera, light, type); + } + } + __name(renderObject, "renderObject"); + function onMaterialDispose(event) { + const material = event.target; + material.removeEventListener("dispose", onMaterialDispose); + for (const id2 in _materialCache) { + const cache = _materialCache[id2]; + const uuid = event.target.uuid; + if (uuid in cache) { + const shadowMaterial = cache[uuid]; + shadowMaterial.dispose(); + delete cache[uuid]; + } + } + } + __name(onMaterialDispose, "onMaterialDispose"); +} +__name(WebGLShadowMap, "WebGLShadowMap"); +const reversedFuncs = { + [NeverDepth]: AlwaysDepth, + [LessDepth]: GreaterDepth, + [EqualDepth]: NotEqualDepth, + [LessEqualDepth]: GreaterEqualDepth, + [AlwaysDepth]: NeverDepth, + [GreaterDepth]: LessDepth, + [NotEqualDepth]: EqualDepth, + [GreaterEqualDepth]: LessEqualDepth +}; +function WebGLState(gl, extensions) { + function ColorBuffer() { + let locked = false; + const color = new Vector4(); + let currentColorMask = null; + const currentColorClear = new Vector4(0, 0, 0, 0); + return { + setMask: /* @__PURE__ */ __name(function(colorMask) { + if (currentColorMask !== colorMask && !locked) { + gl.colorMask(colorMask, colorMask, colorMask, colorMask); + currentColorMask = colorMask; + } + }, "setMask"), + setLocked: /* @__PURE__ */ __name(function(lock) { + locked = lock; + }, "setLocked"), + setClear: /* @__PURE__ */ __name(function(r, g, b, a, premultipliedAlpha) { + if (premultipliedAlpha === true) { + r *= a; + g *= a; + b *= a; + } + color.set(r, g, b, a); + if (currentColorClear.equals(color) === false) { + gl.clearColor(r, g, b, a); + currentColorClear.copy(color); + } + }, "setClear"), + reset: /* @__PURE__ */ __name(function() { + locked = false; + currentColorMask = null; + currentColorClear.set(-1, 0, 0, 0); + }, "reset") + }; + } + __name(ColorBuffer, "ColorBuffer"); + function DepthBuffer() { + let locked = false; + let reversed = false; + let currentDepthMask = null; + let currentDepthFunc = null; + let currentDepthClear = null; + return { + setReversed: /* @__PURE__ */ __name(function(value) { + if (reversed !== value) { + const ext2 = extensions.get("EXT_clip_control"); + if (reversed) { + ext2.clipControlEXT(ext2.LOWER_LEFT_EXT, ext2.ZERO_TO_ONE_EXT); + } else { + ext2.clipControlEXT(ext2.LOWER_LEFT_EXT, ext2.NEGATIVE_ONE_TO_ONE_EXT); + } + const oldDepth = currentDepthClear; + currentDepthClear = null; + this.setClear(oldDepth); + } + reversed = value; + }, "setReversed"), + getReversed: /* @__PURE__ */ __name(function() { + return reversed; + }, "getReversed"), + setTest: /* @__PURE__ */ __name(function(depthTest) { + if (depthTest) { + enable(gl.DEPTH_TEST); + } else { + disable(gl.DEPTH_TEST); + } + }, "setTest"), + setMask: /* @__PURE__ */ __name(function(depthMask) { + if (currentDepthMask !== depthMask && !locked) { + gl.depthMask(depthMask); + currentDepthMask = depthMask; + } + }, "setMask"), + setFunc: /* @__PURE__ */ __name(function(depthFunc) { + if (reversed) depthFunc = reversedFuncs[depthFunc]; + if (currentDepthFunc !== depthFunc) { + switch (depthFunc) { + case NeverDepth: + gl.depthFunc(gl.NEVER); + break; + case AlwaysDepth: + gl.depthFunc(gl.ALWAYS); + break; + case LessDepth: + gl.depthFunc(gl.LESS); + break; + case LessEqualDepth: + gl.depthFunc(gl.LEQUAL); + break; + case EqualDepth: + gl.depthFunc(gl.EQUAL); + break; + case GreaterEqualDepth: + gl.depthFunc(gl.GEQUAL); + break; + case GreaterDepth: + gl.depthFunc(gl.GREATER); + break; + case NotEqualDepth: + gl.depthFunc(gl.NOTEQUAL); + break; + default: + gl.depthFunc(gl.LEQUAL); + } + currentDepthFunc = depthFunc; + } + }, "setFunc"), + setLocked: /* @__PURE__ */ __name(function(lock) { + locked = lock; + }, "setLocked"), + setClear: /* @__PURE__ */ __name(function(depth) { + if (currentDepthClear !== depth) { + if (reversed) { + depth = 1 - depth; + } + gl.clearDepth(depth); + currentDepthClear = depth; + } + }, "setClear"), + reset: /* @__PURE__ */ __name(function() { + locked = false; + currentDepthMask = null; + currentDepthFunc = null; + currentDepthClear = null; + reversed = false; + }, "reset") + }; + } + __name(DepthBuffer, "DepthBuffer"); + function StencilBuffer() { + let locked = false; + let currentStencilMask = null; + let currentStencilFunc = null; + let currentStencilRef = null; + let currentStencilFuncMask = null; + let currentStencilFail = null; + let currentStencilZFail = null; + let currentStencilZPass = null; + let currentStencilClear = null; + return { + setTest: /* @__PURE__ */ __name(function(stencilTest) { + if (!locked) { + if (stencilTest) { + enable(gl.STENCIL_TEST); + } else { + disable(gl.STENCIL_TEST); + } + } + }, "setTest"), + setMask: /* @__PURE__ */ __name(function(stencilMask) { + if (currentStencilMask !== stencilMask && !locked) { + gl.stencilMask(stencilMask); + currentStencilMask = stencilMask; + } + }, "setMask"), + setFunc: /* @__PURE__ */ __name(function(stencilFunc, stencilRef, stencilMask) { + if (currentStencilFunc !== stencilFunc || currentStencilRef !== stencilRef || currentStencilFuncMask !== stencilMask) { + gl.stencilFunc(stencilFunc, stencilRef, stencilMask); + currentStencilFunc = stencilFunc; + currentStencilRef = stencilRef; + currentStencilFuncMask = stencilMask; + } + }, "setFunc"), + setOp: /* @__PURE__ */ __name(function(stencilFail, stencilZFail, stencilZPass) { + if (currentStencilFail !== stencilFail || currentStencilZFail !== stencilZFail || currentStencilZPass !== stencilZPass) { + gl.stencilOp(stencilFail, stencilZFail, stencilZPass); + currentStencilFail = stencilFail; + currentStencilZFail = stencilZFail; + currentStencilZPass = stencilZPass; + } + }, "setOp"), + setLocked: /* @__PURE__ */ __name(function(lock) { + locked = lock; + }, "setLocked"), + setClear: /* @__PURE__ */ __name(function(stencil) { + if (currentStencilClear !== stencil) { + gl.clearStencil(stencil); + currentStencilClear = stencil; + } + }, "setClear"), + reset: /* @__PURE__ */ __name(function() { + locked = false; + currentStencilMask = null; + currentStencilFunc = null; + currentStencilRef = null; + currentStencilFuncMask = null; + currentStencilFail = null; + currentStencilZFail = null; + currentStencilZPass = null; + currentStencilClear = null; + }, "reset") + }; + } + __name(StencilBuffer, "StencilBuffer"); + const colorBuffer = new ColorBuffer(); + const depthBuffer = new DepthBuffer(); + const stencilBuffer = new StencilBuffer(); + const uboBindings = /* @__PURE__ */ new WeakMap(); + const uboProgramMap = /* @__PURE__ */ new WeakMap(); + let enabledCapabilities = {}; + let currentBoundFramebuffers = {}; + let currentDrawbuffers = /* @__PURE__ */ new WeakMap(); + let defaultDrawbuffers = []; + let currentProgram = null; + let currentBlendingEnabled = false; + let currentBlending = null; + let currentBlendEquation = null; + let currentBlendSrc = null; + let currentBlendDst = null; + let currentBlendEquationAlpha = null; + let currentBlendSrcAlpha = null; + let currentBlendDstAlpha = null; + let currentBlendColor = new Color(0, 0, 0); + let currentBlendAlpha = 0; + let currentPremultipledAlpha = false; + let currentFlipSided = null; + let currentCullFace = null; + let currentLineWidth = null; + let currentPolygonOffsetFactor = null; + let currentPolygonOffsetUnits = null; + const maxTextures = gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS); + let lineWidthAvailable = false; + let version = 0; + const glVersion = gl.getParameter(gl.VERSION); + if (glVersion.indexOf("WebGL") !== -1) { + version = parseFloat(/^WebGL (\d)/.exec(glVersion)[1]); + lineWidthAvailable = version >= 1; + } else if (glVersion.indexOf("OpenGL ES") !== -1) { + version = parseFloat(/^OpenGL ES (\d)/.exec(glVersion)[1]); + lineWidthAvailable = version >= 2; + } + let currentTextureSlot = null; + let currentBoundTextures = {}; + const scissorParam = gl.getParameter(gl.SCISSOR_BOX); + const viewportParam = gl.getParameter(gl.VIEWPORT); + const currentScissor = new Vector4().fromArray(scissorParam); + const currentViewport = new Vector4().fromArray(viewportParam); + function createTexture(type, target, count, dimensions) { + const data = new Uint8Array(4); + const texture = gl.createTexture(); + gl.bindTexture(type, texture); + gl.texParameteri(type, gl.TEXTURE_MIN_FILTER, gl.NEAREST); + gl.texParameteri(type, gl.TEXTURE_MAG_FILTER, gl.NEAREST); + for (let i = 0; i < count; i++) { + if (type === gl.TEXTURE_3D || type === gl.TEXTURE_2D_ARRAY) { + gl.texImage3D(target, 0, gl.RGBA, 1, 1, dimensions, 0, gl.RGBA, gl.UNSIGNED_BYTE, data); + } else { + gl.texImage2D(target + i, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, data); + } + } + return texture; + } + __name(createTexture, "createTexture"); + const emptyTextures = {}; + emptyTextures[gl.TEXTURE_2D] = createTexture(gl.TEXTURE_2D, gl.TEXTURE_2D, 1); + emptyTextures[gl.TEXTURE_CUBE_MAP] = createTexture(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_CUBE_MAP_POSITIVE_X, 6); + emptyTextures[gl.TEXTURE_2D_ARRAY] = createTexture(gl.TEXTURE_2D_ARRAY, gl.TEXTURE_2D_ARRAY, 1, 1); + emptyTextures[gl.TEXTURE_3D] = createTexture(gl.TEXTURE_3D, gl.TEXTURE_3D, 1, 1); + colorBuffer.setClear(0, 0, 0, 1); + depthBuffer.setClear(1); + stencilBuffer.setClear(0); + enable(gl.DEPTH_TEST); + depthBuffer.setFunc(LessEqualDepth); + setFlipSided(false); + setCullFace(CullFaceBack); + enable(gl.CULL_FACE); + setBlending(NoBlending); + function enable(id2) { + if (enabledCapabilities[id2] !== true) { + gl.enable(id2); + enabledCapabilities[id2] = true; + } + } + __name(enable, "enable"); + function disable(id2) { + if (enabledCapabilities[id2] !== false) { + gl.disable(id2); + enabledCapabilities[id2] = false; + } + } + __name(disable, "disable"); + function bindFramebuffer(target, framebuffer) { + if (currentBoundFramebuffers[target] !== framebuffer) { + gl.bindFramebuffer(target, framebuffer); + currentBoundFramebuffers[target] = framebuffer; + if (target === gl.DRAW_FRAMEBUFFER) { + currentBoundFramebuffers[gl.FRAMEBUFFER] = framebuffer; + } + if (target === gl.FRAMEBUFFER) { + currentBoundFramebuffers[gl.DRAW_FRAMEBUFFER] = framebuffer; + } + return true; + } + return false; + } + __name(bindFramebuffer, "bindFramebuffer"); + function drawBuffers(renderTarget, framebuffer) { + let drawBuffers2 = defaultDrawbuffers; + let needsUpdate = false; + if (renderTarget) { + drawBuffers2 = currentDrawbuffers.get(framebuffer); + if (drawBuffers2 === void 0) { + drawBuffers2 = []; + currentDrawbuffers.set(framebuffer, drawBuffers2); + } + const textures = renderTarget.textures; + if (drawBuffers2.length !== textures.length || drawBuffers2[0] !== gl.COLOR_ATTACHMENT0) { + for (let i = 0, il = textures.length; i < il; i++) { + drawBuffers2[i] = gl.COLOR_ATTACHMENT0 + i; + } + drawBuffers2.length = textures.length; + needsUpdate = true; + } + } else { + if (drawBuffers2[0] !== gl.BACK) { + drawBuffers2[0] = gl.BACK; + needsUpdate = true; + } + } + if (needsUpdate) { + gl.drawBuffers(drawBuffers2); + } + } + __name(drawBuffers, "drawBuffers"); + function useProgram(program) { + if (currentProgram !== program) { + gl.useProgram(program); + currentProgram = program; + return true; + } + return false; + } + __name(useProgram, "useProgram"); + const equationToGL = { + [AddEquation]: gl.FUNC_ADD, + [SubtractEquation]: gl.FUNC_SUBTRACT, + [ReverseSubtractEquation]: gl.FUNC_REVERSE_SUBTRACT + }; + equationToGL[MinEquation] = gl.MIN; + equationToGL[MaxEquation] = gl.MAX; + const factorToGL = { + [ZeroFactor]: gl.ZERO, + [OneFactor]: gl.ONE, + [SrcColorFactor]: gl.SRC_COLOR, + [SrcAlphaFactor]: gl.SRC_ALPHA, + [SrcAlphaSaturateFactor]: gl.SRC_ALPHA_SATURATE, + [DstColorFactor]: gl.DST_COLOR, + [DstAlphaFactor]: gl.DST_ALPHA, + [OneMinusSrcColorFactor]: gl.ONE_MINUS_SRC_COLOR, + [OneMinusSrcAlphaFactor]: gl.ONE_MINUS_SRC_ALPHA, + [OneMinusDstColorFactor]: gl.ONE_MINUS_DST_COLOR, + [OneMinusDstAlphaFactor]: gl.ONE_MINUS_DST_ALPHA, + [ConstantColorFactor]: gl.CONSTANT_COLOR, + [OneMinusConstantColorFactor]: gl.ONE_MINUS_CONSTANT_COLOR, + [ConstantAlphaFactor]: gl.CONSTANT_ALPHA, + [OneMinusConstantAlphaFactor]: gl.ONE_MINUS_CONSTANT_ALPHA + }; + function setBlending(blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, blendColor, blendAlpha, premultipliedAlpha) { + if (blending === NoBlending) { + if (currentBlendingEnabled === true) { + disable(gl.BLEND); + currentBlendingEnabled = false; + } + return; + } + if (currentBlendingEnabled === false) { + enable(gl.BLEND); + currentBlendingEnabled = true; + } + if (blending !== CustomBlending) { + if (blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha) { + if (currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation) { + gl.blendEquation(gl.FUNC_ADD); + currentBlendEquation = AddEquation; + currentBlendEquationAlpha = AddEquation; + } + if (premultipliedAlpha) { + switch (blending) { + case NormalBlending: + gl.blendFuncSeparate(gl.ONE, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA); + break; + case AdditiveBlending: + gl.blendFunc(gl.ONE, gl.ONE); + break; + case SubtractiveBlending: + gl.blendFuncSeparate(gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE); + break; + case MultiplyBlending: + gl.blendFuncSeparate(gl.ZERO, gl.SRC_COLOR, gl.ZERO, gl.SRC_ALPHA); + break; + default: + console.error("THREE.WebGLState: Invalid blending: ", blending); + break; + } + } else { + switch (blending) { + case NormalBlending: + gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA); + break; + case AdditiveBlending: + gl.blendFunc(gl.SRC_ALPHA, gl.ONE); + break; + case SubtractiveBlending: + gl.blendFuncSeparate(gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE); + break; + case MultiplyBlending: + gl.blendFunc(gl.ZERO, gl.SRC_COLOR); + break; + default: + console.error("THREE.WebGLState: Invalid blending: ", blending); + break; + } + } + currentBlendSrc = null; + currentBlendDst = null; + currentBlendSrcAlpha = null; + currentBlendDstAlpha = null; + currentBlendColor.set(0, 0, 0); + currentBlendAlpha = 0; + currentBlending = blending; + currentPremultipledAlpha = premultipliedAlpha; + } + return; + } + blendEquationAlpha = blendEquationAlpha || blendEquation; + blendSrcAlpha = blendSrcAlpha || blendSrc; + blendDstAlpha = blendDstAlpha || blendDst; + if (blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha) { + gl.blendEquationSeparate(equationToGL[blendEquation], equationToGL[blendEquationAlpha]); + currentBlendEquation = blendEquation; + currentBlendEquationAlpha = blendEquationAlpha; + } + if (blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha) { + gl.blendFuncSeparate(factorToGL[blendSrc], factorToGL[blendDst], factorToGL[blendSrcAlpha], factorToGL[blendDstAlpha]); + currentBlendSrc = blendSrc; + currentBlendDst = blendDst; + currentBlendSrcAlpha = blendSrcAlpha; + currentBlendDstAlpha = blendDstAlpha; + } + if (blendColor.equals(currentBlendColor) === false || blendAlpha !== currentBlendAlpha) { + gl.blendColor(blendColor.r, blendColor.g, blendColor.b, blendAlpha); + currentBlendColor.copy(blendColor); + currentBlendAlpha = blendAlpha; + } + currentBlending = blending; + currentPremultipledAlpha = false; + } + __name(setBlending, "setBlending"); + function setMaterial(material, frontFaceCW) { + material.side === DoubleSide ? disable(gl.CULL_FACE) : enable(gl.CULL_FACE); + let flipSided = material.side === BackSide; + if (frontFaceCW) flipSided = !flipSided; + setFlipSided(flipSided); + material.blending === NormalBlending && material.transparent === false ? setBlending(NoBlending) : setBlending(material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.blendColor, material.blendAlpha, material.premultipliedAlpha); + depthBuffer.setFunc(material.depthFunc); + depthBuffer.setTest(material.depthTest); + depthBuffer.setMask(material.depthWrite); + colorBuffer.setMask(material.colorWrite); + const stencilWrite = material.stencilWrite; + stencilBuffer.setTest(stencilWrite); + if (stencilWrite) { + stencilBuffer.setMask(material.stencilWriteMask); + stencilBuffer.setFunc(material.stencilFunc, material.stencilRef, material.stencilFuncMask); + stencilBuffer.setOp(material.stencilFail, material.stencilZFail, material.stencilZPass); + } + setPolygonOffset(material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits); + material.alphaToCoverage === true ? enable(gl.SAMPLE_ALPHA_TO_COVERAGE) : disable(gl.SAMPLE_ALPHA_TO_COVERAGE); + } + __name(setMaterial, "setMaterial"); + function setFlipSided(flipSided) { + if (currentFlipSided !== flipSided) { + if (flipSided) { + gl.frontFace(gl.CW); + } else { + gl.frontFace(gl.CCW); + } + currentFlipSided = flipSided; + } + } + __name(setFlipSided, "setFlipSided"); + function setCullFace(cullFace) { + if (cullFace !== CullFaceNone) { + enable(gl.CULL_FACE); + if (cullFace !== currentCullFace) { + if (cullFace === CullFaceBack) { + gl.cullFace(gl.BACK); + } else if (cullFace === CullFaceFront) { + gl.cullFace(gl.FRONT); + } else { + gl.cullFace(gl.FRONT_AND_BACK); + } + } + } else { + disable(gl.CULL_FACE); + } + currentCullFace = cullFace; + } + __name(setCullFace, "setCullFace"); + function setLineWidth(width) { + if (width !== currentLineWidth) { + if (lineWidthAvailable) gl.lineWidth(width); + currentLineWidth = width; + } + } + __name(setLineWidth, "setLineWidth"); + function setPolygonOffset(polygonOffset, factor, units) { + if (polygonOffset) { + enable(gl.POLYGON_OFFSET_FILL); + if (currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units) { + gl.polygonOffset(factor, units); + currentPolygonOffsetFactor = factor; + currentPolygonOffsetUnits = units; + } + } else { + disable(gl.POLYGON_OFFSET_FILL); + } + } + __name(setPolygonOffset, "setPolygonOffset"); + function setScissorTest(scissorTest) { + if (scissorTest) { + enable(gl.SCISSOR_TEST); + } else { + disable(gl.SCISSOR_TEST); + } + } + __name(setScissorTest, "setScissorTest"); + function activeTexture(webglSlot) { + if (webglSlot === void 0) webglSlot = gl.TEXTURE0 + maxTextures - 1; + if (currentTextureSlot !== webglSlot) { + gl.activeTexture(webglSlot); + currentTextureSlot = webglSlot; + } + } + __name(activeTexture, "activeTexture"); + function bindTexture(webglType, webglTexture, webglSlot) { + if (webglSlot === void 0) { + if (currentTextureSlot === null) { + webglSlot = gl.TEXTURE0 + maxTextures - 1; + } else { + webglSlot = currentTextureSlot; + } + } + let boundTexture = currentBoundTextures[webglSlot]; + if (boundTexture === void 0) { + boundTexture = { type: void 0, texture: void 0 }; + currentBoundTextures[webglSlot] = boundTexture; + } + if (boundTexture.type !== webglType || boundTexture.texture !== webglTexture) { + if (currentTextureSlot !== webglSlot) { + gl.activeTexture(webglSlot); + currentTextureSlot = webglSlot; + } + gl.bindTexture(webglType, webglTexture || emptyTextures[webglType]); + boundTexture.type = webglType; + boundTexture.texture = webglTexture; + } + } + __name(bindTexture, "bindTexture"); + function unbindTexture() { + const boundTexture = currentBoundTextures[currentTextureSlot]; + if (boundTexture !== void 0 && boundTexture.type !== void 0) { + gl.bindTexture(boundTexture.type, null); + boundTexture.type = void 0; + boundTexture.texture = void 0; + } + } + __name(unbindTexture, "unbindTexture"); + function compressedTexImage2D() { + try { + gl.compressedTexImage2D.apply(gl, arguments); + } catch (error) { + console.error("THREE.WebGLState:", error); + } + } + __name(compressedTexImage2D, "compressedTexImage2D"); + function compressedTexImage3D() { + try { + gl.compressedTexImage3D.apply(gl, arguments); + } catch (error) { + console.error("THREE.WebGLState:", error); + } + } + __name(compressedTexImage3D, "compressedTexImage3D"); + function texSubImage2D() { + try { + gl.texSubImage2D.apply(gl, arguments); + } catch (error) { + console.error("THREE.WebGLState:", error); + } + } + __name(texSubImage2D, "texSubImage2D"); + function texSubImage3D() { + try { + gl.texSubImage3D.apply(gl, arguments); + } catch (error) { + console.error("THREE.WebGLState:", error); + } + } + __name(texSubImage3D, "texSubImage3D"); + function compressedTexSubImage2D() { + try { + gl.compressedTexSubImage2D.apply(gl, arguments); + } catch (error) { + console.error("THREE.WebGLState:", error); + } + } + __name(compressedTexSubImage2D, "compressedTexSubImage2D"); + function compressedTexSubImage3D() { + try { + gl.compressedTexSubImage3D.apply(gl, arguments); + } catch (error) { + console.error("THREE.WebGLState:", error); + } + } + __name(compressedTexSubImage3D, "compressedTexSubImage3D"); + function texStorage2D() { + try { + gl.texStorage2D.apply(gl, arguments); + } catch (error) { + console.error("THREE.WebGLState:", error); + } + } + __name(texStorage2D, "texStorage2D"); + function texStorage3D() { + try { + gl.texStorage3D.apply(gl, arguments); + } catch (error) { + console.error("THREE.WebGLState:", error); + } + } + __name(texStorage3D, "texStorage3D"); + function texImage2D() { + try { + gl.texImage2D.apply(gl, arguments); + } catch (error) { + console.error("THREE.WebGLState:", error); + } + } + __name(texImage2D, "texImage2D"); + function texImage3D() { + try { + gl.texImage3D.apply(gl, arguments); + } catch (error) { + console.error("THREE.WebGLState:", error); + } + } + __name(texImage3D, "texImage3D"); + function scissor(scissor2) { + if (currentScissor.equals(scissor2) === false) { + gl.scissor(scissor2.x, scissor2.y, scissor2.z, scissor2.w); + currentScissor.copy(scissor2); + } + } + __name(scissor, "scissor"); + function viewport(viewport2) { + if (currentViewport.equals(viewport2) === false) { + gl.viewport(viewport2.x, viewport2.y, viewport2.z, viewport2.w); + currentViewport.copy(viewport2); + } + } + __name(viewport, "viewport"); + function updateUBOMapping(uniformsGroup, program) { + let mapping = uboProgramMap.get(program); + if (mapping === void 0) { + mapping = /* @__PURE__ */ new WeakMap(); + uboProgramMap.set(program, mapping); + } + let blockIndex = mapping.get(uniformsGroup); + if (blockIndex === void 0) { + blockIndex = gl.getUniformBlockIndex(program, uniformsGroup.name); + mapping.set(uniformsGroup, blockIndex); + } + } + __name(updateUBOMapping, "updateUBOMapping"); + function uniformBlockBinding(uniformsGroup, program) { + const mapping = uboProgramMap.get(program); + const blockIndex = mapping.get(uniformsGroup); + if (uboBindings.get(program) !== blockIndex) { + gl.uniformBlockBinding(program, blockIndex, uniformsGroup.__bindingPointIndex); + uboBindings.set(program, blockIndex); + } + } + __name(uniformBlockBinding, "uniformBlockBinding"); + function reset() { + gl.disable(gl.BLEND); + gl.disable(gl.CULL_FACE); + gl.disable(gl.DEPTH_TEST); + gl.disable(gl.POLYGON_OFFSET_FILL); + gl.disable(gl.SCISSOR_TEST); + gl.disable(gl.STENCIL_TEST); + gl.disable(gl.SAMPLE_ALPHA_TO_COVERAGE); + gl.blendEquation(gl.FUNC_ADD); + gl.blendFunc(gl.ONE, gl.ZERO); + gl.blendFuncSeparate(gl.ONE, gl.ZERO, gl.ONE, gl.ZERO); + gl.blendColor(0, 0, 0, 0); + gl.colorMask(true, true, true, true); + gl.clearColor(0, 0, 0, 0); + gl.depthMask(true); + gl.depthFunc(gl.LESS); + depthBuffer.setReversed(false); + gl.clearDepth(1); + gl.stencilMask(4294967295); + gl.stencilFunc(gl.ALWAYS, 0, 4294967295); + gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP); + gl.clearStencil(0); + gl.cullFace(gl.BACK); + gl.frontFace(gl.CCW); + gl.polygonOffset(0, 0); + gl.activeTexture(gl.TEXTURE0); + gl.bindFramebuffer(gl.FRAMEBUFFER, null); + gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, null); + gl.bindFramebuffer(gl.READ_FRAMEBUFFER, null); + gl.useProgram(null); + gl.lineWidth(1); + gl.scissor(0, 0, gl.canvas.width, gl.canvas.height); + gl.viewport(0, 0, gl.canvas.width, gl.canvas.height); + enabledCapabilities = {}; + currentTextureSlot = null; + currentBoundTextures = {}; + currentBoundFramebuffers = {}; + currentDrawbuffers = /* @__PURE__ */ new WeakMap(); + defaultDrawbuffers = []; + currentProgram = null; + currentBlendingEnabled = false; + currentBlending = null; + currentBlendEquation = null; + currentBlendSrc = null; + currentBlendDst = null; + currentBlendEquationAlpha = null; + currentBlendSrcAlpha = null; + currentBlendDstAlpha = null; + currentBlendColor = new Color(0, 0, 0); + currentBlendAlpha = 0; + currentPremultipledAlpha = false; + currentFlipSided = null; + currentCullFace = null; + currentLineWidth = null; + currentPolygonOffsetFactor = null; + currentPolygonOffsetUnits = null; + currentScissor.set(0, 0, gl.canvas.width, gl.canvas.height); + currentViewport.set(0, 0, gl.canvas.width, gl.canvas.height); + colorBuffer.reset(); + depthBuffer.reset(); + stencilBuffer.reset(); + } + __name(reset, "reset"); + return { + buffers: { + color: colorBuffer, + depth: depthBuffer, + stencil: stencilBuffer + }, + enable, + disable, + bindFramebuffer, + drawBuffers, + useProgram, + setBlending, + setMaterial, + setFlipSided, + setCullFace, + setLineWidth, + setPolygonOffset, + setScissorTest, + activeTexture, + bindTexture, + unbindTexture, + compressedTexImage2D, + compressedTexImage3D, + texImage2D, + texImage3D, + updateUBOMapping, + uniformBlockBinding, + texStorage2D, + texStorage3D, + texSubImage2D, + texSubImage3D, + compressedTexSubImage2D, + compressedTexSubImage3D, + scissor, + viewport, + reset + }; +} +__name(WebGLState, "WebGLState"); +function contain(texture, aspect2) { + const imageAspect = texture.image && texture.image.width ? texture.image.width / texture.image.height : 1; + if (imageAspect > aspect2) { + texture.repeat.x = 1; + texture.repeat.y = imageAspect / aspect2; + texture.offset.x = 0; + texture.offset.y = (1 - texture.repeat.y) / 2; + } else { + texture.repeat.x = aspect2 / imageAspect; + texture.repeat.y = 1; + texture.offset.x = (1 - texture.repeat.x) / 2; + texture.offset.y = 0; + } + return texture; +} +__name(contain, "contain"); +function cover(texture, aspect2) { + const imageAspect = texture.image && texture.image.width ? texture.image.width / texture.image.height : 1; + if (imageAspect > aspect2) { + texture.repeat.x = aspect2 / imageAspect; + texture.repeat.y = 1; + texture.offset.x = (1 - texture.repeat.x) / 2; + texture.offset.y = 0; + } else { + texture.repeat.x = 1; + texture.repeat.y = imageAspect / aspect2; + texture.offset.x = 0; + texture.offset.y = (1 - texture.repeat.y) / 2; + } + return texture; +} +__name(cover, "cover"); +function fill(texture) { + texture.repeat.x = 1; + texture.repeat.y = 1; + texture.offset.x = 0; + texture.offset.y = 0; + return texture; +} +__name(fill, "fill"); +function getByteLength(width, height, format, type) { + const typeByteLength = getTextureTypeByteLength(type); + switch (format) { + case AlphaFormat: + return width * height; + case LuminanceFormat: + return width * height; + case LuminanceAlphaFormat: + return width * height * 2; + case RedFormat: + return width * height / typeByteLength.components * typeByteLength.byteLength; + case RedIntegerFormat: + return width * height / typeByteLength.components * typeByteLength.byteLength; + case RGFormat: + return width * height * 2 / typeByteLength.components * typeByteLength.byteLength; + case RGIntegerFormat: + return width * height * 2 / typeByteLength.components * typeByteLength.byteLength; + case RGBFormat: + return width * height * 3 / typeByteLength.components * typeByteLength.byteLength; + case RGBAFormat: + return width * height * 4 / typeByteLength.components * typeByteLength.byteLength; + case RGBAIntegerFormat: + return width * height * 4 / typeByteLength.components * typeByteLength.byteLength; + case RGB_S3TC_DXT1_Format: + case RGBA_S3TC_DXT1_Format: + return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 8; + case RGBA_S3TC_DXT3_Format: + case RGBA_S3TC_DXT5_Format: + return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16; + case RGB_PVRTC_2BPPV1_Format: + case RGBA_PVRTC_2BPPV1_Format: + return Math.max(width, 16) * Math.max(height, 8) / 4; + case RGB_PVRTC_4BPPV1_Format: + case RGBA_PVRTC_4BPPV1_Format: + return Math.max(width, 8) * Math.max(height, 8) / 2; + case RGB_ETC1_Format: + case RGB_ETC2_Format: + return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 8; + case RGBA_ETC2_EAC_Format: + return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16; + case RGBA_ASTC_4x4_Format: + return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16; + case RGBA_ASTC_5x4_Format: + return Math.floor((width + 4) / 5) * Math.floor((height + 3) / 4) * 16; + case RGBA_ASTC_5x5_Format: + return Math.floor((width + 4) / 5) * Math.floor((height + 4) / 5) * 16; + case RGBA_ASTC_6x5_Format: + return Math.floor((width + 5) / 6) * Math.floor((height + 4) / 5) * 16; + case RGBA_ASTC_6x6_Format: + return Math.floor((width + 5) / 6) * Math.floor((height + 5) / 6) * 16; + case RGBA_ASTC_8x5_Format: + return Math.floor((width + 7) / 8) * Math.floor((height + 4) / 5) * 16; + case RGBA_ASTC_8x6_Format: + return Math.floor((width + 7) / 8) * Math.floor((height + 5) / 6) * 16; + case RGBA_ASTC_8x8_Format: + return Math.floor((width + 7) / 8) * Math.floor((height + 7) / 8) * 16; + case RGBA_ASTC_10x5_Format: + return Math.floor((width + 9) / 10) * Math.floor((height + 4) / 5) * 16; + case RGBA_ASTC_10x6_Format: + return Math.floor((width + 9) / 10) * Math.floor((height + 5) / 6) * 16; + case RGBA_ASTC_10x8_Format: + return Math.floor((width + 9) / 10) * Math.floor((height + 7) / 8) * 16; + case RGBA_ASTC_10x10_Format: + return Math.floor((width + 9) / 10) * Math.floor((height + 9) / 10) * 16; + case RGBA_ASTC_12x10_Format: + return Math.floor((width + 11) / 12) * Math.floor((height + 9) / 10) * 16; + case RGBA_ASTC_12x12_Format: + return Math.floor((width + 11) / 12) * Math.floor((height + 11) / 12) * 16; + case RGBA_BPTC_Format: + case RGB_BPTC_SIGNED_Format: + case RGB_BPTC_UNSIGNED_Format: + return Math.ceil(width / 4) * Math.ceil(height / 4) * 16; + case RED_RGTC1_Format: + case SIGNED_RED_RGTC1_Format: + return Math.ceil(width / 4) * Math.ceil(height / 4) * 8; + case RED_GREEN_RGTC2_Format: + case SIGNED_RED_GREEN_RGTC2_Format: + return Math.ceil(width / 4) * Math.ceil(height / 4) * 16; + } + throw new Error( + `Unable to determine texture byte length for ${format} format.` + ); +} +__name(getByteLength, "getByteLength"); +function getTextureTypeByteLength(type) { + switch (type) { + case UnsignedByteType: + case ByteType: + return { byteLength: 1, components: 1 }; + case UnsignedShortType: + case ShortType: + case HalfFloatType: + return { byteLength: 2, components: 1 }; + case UnsignedShort4444Type: + case UnsignedShort5551Type: + return { byteLength: 2, components: 4 }; + case UnsignedIntType: + case IntType: + case FloatType: + return { byteLength: 4, components: 1 }; + case UnsignedInt5999Type: + return { byteLength: 4, components: 3 }; + } + throw new Error(`Unknown texture type ${type}.`); +} +__name(getTextureTypeByteLength, "getTextureTypeByteLength"); +const TextureUtils = { + contain, + cover, + fill, + getByteLength +}; +function WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info) { + const multisampledRTTExt = extensions.has("WEBGL_multisampled_render_to_texture") ? extensions.get("WEBGL_multisampled_render_to_texture") : null; + const supportsInvalidateFramebuffer = typeof navigator === "undefined" ? false : /OculusBrowser/g.test(navigator.userAgent); + const _imageDimensions = new Vector2(); + const _videoTextures = /* @__PURE__ */ new WeakMap(); + let _canvas2; + const _sources = /* @__PURE__ */ new WeakMap(); + let useOffscreenCanvas = false; + try { + useOffscreenCanvas = typeof OffscreenCanvas !== "undefined" && new OffscreenCanvas(1, 1).getContext("2d") !== null; + } catch (err2) { + } + function createCanvas(width, height) { + return useOffscreenCanvas ? ( + // eslint-disable-next-line compat/compat + new OffscreenCanvas(width, height) + ) : createElementNS("canvas"); + } + __name(createCanvas, "createCanvas"); + function resizeImage(image, needsNewCanvas, maxSize) { + let scale = 1; + const dimensions = getDimensions(image); + if (dimensions.width > maxSize || dimensions.height > maxSize) { + scale = maxSize / Math.max(dimensions.width, dimensions.height); + } + if (scale < 1) { + if (typeof HTMLImageElement !== "undefined" && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== "undefined" && image instanceof HTMLCanvasElement || typeof ImageBitmap !== "undefined" && image instanceof ImageBitmap || typeof VideoFrame !== "undefined" && image instanceof VideoFrame) { + const width = Math.floor(scale * dimensions.width); + const height = Math.floor(scale * dimensions.height); + if (_canvas2 === void 0) _canvas2 = createCanvas(width, height); + const canvas = needsNewCanvas ? createCanvas(width, height) : _canvas2; + canvas.width = width; + canvas.height = height; + const context = canvas.getContext("2d"); + context.drawImage(image, 0, 0, width, height); + console.warn("THREE.WebGLRenderer: Texture has been resized from (" + dimensions.width + "x" + dimensions.height + ") to (" + width + "x" + height + ")."); + return canvas; + } else { + if ("data" in image) { + console.warn("THREE.WebGLRenderer: Image in DataTexture is too big (" + dimensions.width + "x" + dimensions.height + ")."); + } + return image; + } + } + return image; + } + __name(resizeImage, "resizeImage"); + function textureNeedsGenerateMipmaps(texture) { + return texture.generateMipmaps; + } + __name(textureNeedsGenerateMipmaps, "textureNeedsGenerateMipmaps"); + function generateMipmap(target) { + _gl.generateMipmap(target); + } + __name(generateMipmap, "generateMipmap"); + function getTargetType(texture) { + if (texture.isWebGLCubeRenderTarget) return _gl.TEXTURE_CUBE_MAP; + if (texture.isWebGL3DRenderTarget) return _gl.TEXTURE_3D; + if (texture.isWebGLArrayRenderTarget || texture.isCompressedArrayTexture) return _gl.TEXTURE_2D_ARRAY; + return _gl.TEXTURE_2D; + } + __name(getTargetType, "getTargetType"); + function getInternalFormat(internalFormatName, glFormat, glType, colorSpace, forceLinearTransfer = false) { + if (internalFormatName !== null) { + if (_gl[internalFormatName] !== void 0) return _gl[internalFormatName]; + console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '" + internalFormatName + "'"); + } + let internalFormat = glFormat; + if (glFormat === _gl.RED) { + if (glType === _gl.FLOAT) internalFormat = _gl.R32F; + if (glType === _gl.HALF_FLOAT) internalFormat = _gl.R16F; + if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.R8; + } + if (glFormat === _gl.RED_INTEGER) { + if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.R8UI; + if (glType === _gl.UNSIGNED_SHORT) internalFormat = _gl.R16UI; + if (glType === _gl.UNSIGNED_INT) internalFormat = _gl.R32UI; + if (glType === _gl.BYTE) internalFormat = _gl.R8I; + if (glType === _gl.SHORT) internalFormat = _gl.R16I; + if (glType === _gl.INT) internalFormat = _gl.R32I; + } + if (glFormat === _gl.RG) { + if (glType === _gl.FLOAT) internalFormat = _gl.RG32F; + if (glType === _gl.HALF_FLOAT) internalFormat = _gl.RG16F; + if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.RG8; + } + if (glFormat === _gl.RG_INTEGER) { + if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.RG8UI; + if (glType === _gl.UNSIGNED_SHORT) internalFormat = _gl.RG16UI; + if (glType === _gl.UNSIGNED_INT) internalFormat = _gl.RG32UI; + if (glType === _gl.BYTE) internalFormat = _gl.RG8I; + if (glType === _gl.SHORT) internalFormat = _gl.RG16I; + if (glType === _gl.INT) internalFormat = _gl.RG32I; + } + if (glFormat === _gl.RGB_INTEGER) { + if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.RGB8UI; + if (glType === _gl.UNSIGNED_SHORT) internalFormat = _gl.RGB16UI; + if (glType === _gl.UNSIGNED_INT) internalFormat = _gl.RGB32UI; + if (glType === _gl.BYTE) internalFormat = _gl.RGB8I; + if (glType === _gl.SHORT) internalFormat = _gl.RGB16I; + if (glType === _gl.INT) internalFormat = _gl.RGB32I; + } + if (glFormat === _gl.RGBA_INTEGER) { + if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.RGBA8UI; + if (glType === _gl.UNSIGNED_SHORT) internalFormat = _gl.RGBA16UI; + if (glType === _gl.UNSIGNED_INT) internalFormat = _gl.RGBA32UI; + if (glType === _gl.BYTE) internalFormat = _gl.RGBA8I; + if (glType === _gl.SHORT) internalFormat = _gl.RGBA16I; + if (glType === _gl.INT) internalFormat = _gl.RGBA32I; + } + if (glFormat === _gl.RGB) { + if (glType === _gl.UNSIGNED_INT_5_9_9_9_REV) internalFormat = _gl.RGB9_E5; + } + if (glFormat === _gl.RGBA) { + const transfer = forceLinearTransfer ? LinearTransfer : ColorManagement.getTransfer(colorSpace); + if (glType === _gl.FLOAT) internalFormat = _gl.RGBA32F; + if (glType === _gl.HALF_FLOAT) internalFormat = _gl.RGBA16F; + if (glType === _gl.UNSIGNED_BYTE) internalFormat = transfer === SRGBTransfer ? _gl.SRGB8_ALPHA8 : _gl.RGBA8; + if (glType === _gl.UNSIGNED_SHORT_4_4_4_4) internalFormat = _gl.RGBA4; + if (glType === _gl.UNSIGNED_SHORT_5_5_5_1) internalFormat = _gl.RGB5_A1; + } + if (internalFormat === _gl.R16F || internalFormat === _gl.R32F || internalFormat === _gl.RG16F || internalFormat === _gl.RG32F || internalFormat === _gl.RGBA16F || internalFormat === _gl.RGBA32F) { + extensions.get("EXT_color_buffer_float"); + } + return internalFormat; + } + __name(getInternalFormat, "getInternalFormat"); + function getInternalDepthFormat(useStencil, depthType) { + let glInternalFormat; + if (useStencil) { + if (depthType === null || depthType === UnsignedIntType || depthType === UnsignedInt248Type) { + glInternalFormat = _gl.DEPTH24_STENCIL8; + } else if (depthType === FloatType) { + glInternalFormat = _gl.DEPTH32F_STENCIL8; + } else if (depthType === UnsignedShortType) { + glInternalFormat = _gl.DEPTH24_STENCIL8; + console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment."); + } + } else { + if (depthType === null || depthType === UnsignedIntType || depthType === UnsignedInt248Type) { + glInternalFormat = _gl.DEPTH_COMPONENT24; + } else if (depthType === FloatType) { + glInternalFormat = _gl.DEPTH_COMPONENT32F; + } else if (depthType === UnsignedShortType) { + glInternalFormat = _gl.DEPTH_COMPONENT16; + } + } + return glInternalFormat; + } + __name(getInternalDepthFormat, "getInternalDepthFormat"); + function getMipLevels(texture, image) { + if (textureNeedsGenerateMipmaps(texture) === true || texture.isFramebufferTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter) { + return Math.log2(Math.max(image.width, image.height)) + 1; + } else if (texture.mipmaps !== void 0 && texture.mipmaps.length > 0) { + return texture.mipmaps.length; + } else if (texture.isCompressedTexture && Array.isArray(texture.image)) { + return image.mipmaps.length; + } else { + return 1; + } + } + __name(getMipLevels, "getMipLevels"); + function onTextureDispose(event) { + const texture = event.target; + texture.removeEventListener("dispose", onTextureDispose); + deallocateTexture(texture); + if (texture.isVideoTexture) { + _videoTextures.delete(texture); + } + } + __name(onTextureDispose, "onTextureDispose"); + function onRenderTargetDispose(event) { + const renderTarget = event.target; + renderTarget.removeEventListener("dispose", onRenderTargetDispose); + deallocateRenderTarget(renderTarget); + } + __name(onRenderTargetDispose, "onRenderTargetDispose"); + function deallocateTexture(texture) { + const textureProperties = properties.get(texture); + if (textureProperties.__webglInit === void 0) return; + const source = texture.source; + const webglTextures = _sources.get(source); + if (webglTextures) { + const webglTexture = webglTextures[textureProperties.__cacheKey]; + webglTexture.usedTimes--; + if (webglTexture.usedTimes === 0) { + deleteTexture(texture); + } + if (Object.keys(webglTextures).length === 0) { + _sources.delete(source); + } + } + properties.remove(texture); + } + __name(deallocateTexture, "deallocateTexture"); + function deleteTexture(texture) { + const textureProperties = properties.get(texture); + _gl.deleteTexture(textureProperties.__webglTexture); + const source = texture.source; + const webglTextures = _sources.get(source); + delete webglTextures[textureProperties.__cacheKey]; + info.memory.textures--; + } + __name(deleteTexture, "deleteTexture"); + function deallocateRenderTarget(renderTarget) { + const renderTargetProperties = properties.get(renderTarget); + if (renderTarget.depthTexture) { + renderTarget.depthTexture.dispose(); + properties.remove(renderTarget.depthTexture); + } + if (renderTarget.isWebGLCubeRenderTarget) { + for (let i = 0; i < 6; i++) { + if (Array.isArray(renderTargetProperties.__webglFramebuffer[i])) { + for (let level = 0; level < renderTargetProperties.__webglFramebuffer[i].length; level++) _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[i][level]); + } else { + _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[i]); + } + if (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer[i]); + } + } else { + if (Array.isArray(renderTargetProperties.__webglFramebuffer)) { + for (let level = 0; level < renderTargetProperties.__webglFramebuffer.length; level++) _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[level]); + } else { + _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer); + } + if (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer); + if (renderTargetProperties.__webglMultisampledFramebuffer) _gl.deleteFramebuffer(renderTargetProperties.__webglMultisampledFramebuffer); + if (renderTargetProperties.__webglColorRenderbuffer) { + for (let i = 0; i < renderTargetProperties.__webglColorRenderbuffer.length; i++) { + if (renderTargetProperties.__webglColorRenderbuffer[i]) _gl.deleteRenderbuffer(renderTargetProperties.__webglColorRenderbuffer[i]); + } + } + if (renderTargetProperties.__webglDepthRenderbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthRenderbuffer); + } + const textures = renderTarget.textures; + for (let i = 0, il = textures.length; i < il; i++) { + const attachmentProperties = properties.get(textures[i]); + if (attachmentProperties.__webglTexture) { + _gl.deleteTexture(attachmentProperties.__webglTexture); + info.memory.textures--; + } + properties.remove(textures[i]); + } + properties.remove(renderTarget); + } + __name(deallocateRenderTarget, "deallocateRenderTarget"); + let textureUnits = 0; + function resetTextureUnits() { + textureUnits = 0; + } + __name(resetTextureUnits, "resetTextureUnits"); + function allocateTextureUnit() { + const textureUnit = textureUnits; + if (textureUnit >= capabilities.maxTextures) { + console.warn("THREE.WebGLTextures: Trying to use " + textureUnit + " texture units while this GPU supports only " + capabilities.maxTextures); + } + textureUnits += 1; + return textureUnit; + } + __name(allocateTextureUnit, "allocateTextureUnit"); + function getTextureCacheKey(texture) { + const array = []; + array.push(texture.wrapS); + array.push(texture.wrapT); + array.push(texture.wrapR || 0); + array.push(texture.magFilter); + array.push(texture.minFilter); + array.push(texture.anisotropy); + array.push(texture.internalFormat); + array.push(texture.format); + array.push(texture.type); + array.push(texture.generateMipmaps); + array.push(texture.premultiplyAlpha); + array.push(texture.flipY); + array.push(texture.unpackAlignment); + array.push(texture.colorSpace); + return array.join(); + } + __name(getTextureCacheKey, "getTextureCacheKey"); + function setTexture2D(texture, slot) { + const textureProperties = properties.get(texture); + if (texture.isVideoTexture) updateVideoTexture(texture); + if (texture.isRenderTargetTexture === false && texture.version > 0 && textureProperties.__version !== texture.version) { + const image = texture.image; + if (image === null) { + console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found."); + } else if (image.complete === false) { + console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete"); + } else { + uploadTexture(textureProperties, texture, slot); + return; + } + } + state.bindTexture(_gl.TEXTURE_2D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot); + } + __name(setTexture2D, "setTexture2D"); + function setTexture2DArray(texture, slot) { + const textureProperties = properties.get(texture); + if (texture.version > 0 && textureProperties.__version !== texture.version) { + uploadTexture(textureProperties, texture, slot); + return; + } + state.bindTexture(_gl.TEXTURE_2D_ARRAY, textureProperties.__webglTexture, _gl.TEXTURE0 + slot); + } + __name(setTexture2DArray, "setTexture2DArray"); + function setTexture3D(texture, slot) { + const textureProperties = properties.get(texture); + if (texture.version > 0 && textureProperties.__version !== texture.version) { + uploadTexture(textureProperties, texture, slot); + return; + } + state.bindTexture(_gl.TEXTURE_3D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot); + } + __name(setTexture3D, "setTexture3D"); + function setTextureCube(texture, slot) { + const textureProperties = properties.get(texture); + if (texture.version > 0 && textureProperties.__version !== texture.version) { + uploadCubeTexture(textureProperties, texture, slot); + return; + } + state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot); + } + __name(setTextureCube, "setTextureCube"); + const wrappingToGL = { + [RepeatWrapping]: _gl.REPEAT, + [ClampToEdgeWrapping]: _gl.CLAMP_TO_EDGE, + [MirroredRepeatWrapping]: _gl.MIRRORED_REPEAT + }; + const filterToGL = { + [NearestFilter]: _gl.NEAREST, + [NearestMipmapNearestFilter]: _gl.NEAREST_MIPMAP_NEAREST, + [NearestMipmapLinearFilter]: _gl.NEAREST_MIPMAP_LINEAR, + [LinearFilter]: _gl.LINEAR, + [LinearMipmapNearestFilter]: _gl.LINEAR_MIPMAP_NEAREST, + [LinearMipmapLinearFilter]: _gl.LINEAR_MIPMAP_LINEAR + }; + const compareToGL = { + [NeverCompare]: _gl.NEVER, + [AlwaysCompare]: _gl.ALWAYS, + [LessCompare]: _gl.LESS, + [LessEqualCompare]: _gl.LEQUAL, + [EqualCompare]: _gl.EQUAL, + [GreaterEqualCompare]: _gl.GEQUAL, + [GreaterCompare]: _gl.GREATER, + [NotEqualCompare]: _gl.NOTEQUAL + }; + function setTextureParameters(textureType, texture) { + if (texture.type === FloatType && extensions.has("OES_texture_float_linear") === false && (texture.magFilter === LinearFilter || texture.magFilter === LinearMipmapNearestFilter || texture.magFilter === NearestMipmapLinearFilter || texture.magFilter === LinearMipmapLinearFilter || texture.minFilter === LinearFilter || texture.minFilter === LinearMipmapNearestFilter || texture.minFilter === NearestMipmapLinearFilter || texture.minFilter === LinearMipmapLinearFilter)) { + console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."); + } + _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_S, wrappingToGL[texture.wrapS]); + _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_T, wrappingToGL[texture.wrapT]); + if (textureType === _gl.TEXTURE_3D || textureType === _gl.TEXTURE_2D_ARRAY) { + _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_R, wrappingToGL[texture.wrapR]); + } + _gl.texParameteri(textureType, _gl.TEXTURE_MAG_FILTER, filterToGL[texture.magFilter]); + _gl.texParameteri(textureType, _gl.TEXTURE_MIN_FILTER, filterToGL[texture.minFilter]); + if (texture.compareFunction) { + _gl.texParameteri(textureType, _gl.TEXTURE_COMPARE_MODE, _gl.COMPARE_REF_TO_TEXTURE); + _gl.texParameteri(textureType, _gl.TEXTURE_COMPARE_FUNC, compareToGL[texture.compareFunction]); + } + if (extensions.has("EXT_texture_filter_anisotropic") === true) { + if (texture.magFilter === NearestFilter) return; + if (texture.minFilter !== NearestMipmapLinearFilter && texture.minFilter !== LinearMipmapLinearFilter) return; + if (texture.type === FloatType && extensions.has("OES_texture_float_linear") === false) return; + if (texture.anisotropy > 1 || properties.get(texture).__currentAnisotropy) { + const extension = extensions.get("EXT_texture_filter_anisotropic"); + _gl.texParameterf(textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(texture.anisotropy, capabilities.getMaxAnisotropy())); + properties.get(texture).__currentAnisotropy = texture.anisotropy; + } + } + } + __name(setTextureParameters, "setTextureParameters"); + function initTexture(textureProperties, texture) { + let forceUpload = false; + if (textureProperties.__webglInit === void 0) { + textureProperties.__webglInit = true; + texture.addEventListener("dispose", onTextureDispose); + } + const source = texture.source; + let webglTextures = _sources.get(source); + if (webglTextures === void 0) { + webglTextures = {}; + _sources.set(source, webglTextures); + } + const textureCacheKey = getTextureCacheKey(texture); + if (textureCacheKey !== textureProperties.__cacheKey) { + if (webglTextures[textureCacheKey] === void 0) { + webglTextures[textureCacheKey] = { + texture: _gl.createTexture(), + usedTimes: 0 + }; + info.memory.textures++; + forceUpload = true; + } + webglTextures[textureCacheKey].usedTimes++; + const webglTexture = webglTextures[textureProperties.__cacheKey]; + if (webglTexture !== void 0) { + webglTextures[textureProperties.__cacheKey].usedTimes--; + if (webglTexture.usedTimes === 0) { + deleteTexture(texture); + } + } + textureProperties.__cacheKey = textureCacheKey; + textureProperties.__webglTexture = webglTextures[textureCacheKey].texture; + } + return forceUpload; + } + __name(initTexture, "initTexture"); + function uploadTexture(textureProperties, texture, slot) { + let textureType = _gl.TEXTURE_2D; + if (texture.isDataArrayTexture || texture.isCompressedArrayTexture) textureType = _gl.TEXTURE_2D_ARRAY; + if (texture.isData3DTexture) textureType = _gl.TEXTURE_3D; + const forceUpload = initTexture(textureProperties, texture); + const source = texture.source; + state.bindTexture(textureType, textureProperties.__webglTexture, _gl.TEXTURE0 + slot); + const sourceProperties = properties.get(source); + if (source.version !== sourceProperties.__version || forceUpload === true) { + state.activeTexture(_gl.TEXTURE0 + slot); + const workingPrimaries = ColorManagement.getPrimaries(ColorManagement.workingColorSpace); + const texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries(texture.colorSpace); + const unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL; + _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, texture.flipY); + _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha); + _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, texture.unpackAlignment); + _gl.pixelStorei(_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion); + let image = resizeImage(texture.image, false, capabilities.maxTextureSize); + image = verifyColorSpace(texture, image); + const glFormat = utils.convert(texture.format, texture.colorSpace); + const glType = utils.convert(texture.type); + let glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace, texture.isVideoTexture); + setTextureParameters(textureType, texture); + let mipmap; + const mipmaps = texture.mipmaps; + const useTexStorage = texture.isVideoTexture !== true; + const allocateMemory = sourceProperties.__version === void 0 || forceUpload === true; + const dataReady = source.dataReady; + const levels = getMipLevels(texture, image); + if (texture.isDepthTexture) { + glInternalFormat = getInternalDepthFormat(texture.format === DepthStencilFormat, texture.type); + if (allocateMemory) { + if (useTexStorage) { + state.texStorage2D(_gl.TEXTURE_2D, 1, glInternalFormat, image.width, image.height); + } else { + state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null); + } + } + } else if (texture.isDataTexture) { + if (mipmaps.length > 0) { + if (useTexStorage && allocateMemory) { + state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height); + } + for (let i = 0, il = mipmaps.length; i < il; i++) { + mipmap = mipmaps[i]; + if (useTexStorage) { + if (dataReady) { + state.texSubImage2D(_gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data); + } + } else { + state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data); + } + } + texture.generateMipmaps = false; + } else { + if (useTexStorage) { + if (allocateMemory) { + state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height); + } + if (dataReady) { + state.texSubImage2D(_gl.TEXTURE_2D, 0, 0, 0, image.width, image.height, glFormat, glType, image.data); + } + } else { + state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data); + } + } + } else if (texture.isCompressedTexture) { + if (texture.isCompressedArrayTexture) { + if (useTexStorage && allocateMemory) { + state.texStorage3D(_gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height, image.depth); + } + for (let i = 0, il = mipmaps.length; i < il; i++) { + mipmap = mipmaps[i]; + if (texture.format !== RGBAFormat) { + if (glFormat !== null) { + if (useTexStorage) { + if (dataReady) { + if (texture.layerUpdates.size > 0) { + const layerByteLength = getByteLength(mipmap.width, mipmap.height, texture.format, texture.type); + for (const layerIndex of texture.layerUpdates) { + const layerData = mipmap.data.subarray( + layerIndex * layerByteLength / mipmap.data.BYTES_PER_ELEMENT, + (layerIndex + 1) * layerByteLength / mipmap.data.BYTES_PER_ELEMENT + ); + state.compressedTexSubImage3D(_gl.TEXTURE_2D_ARRAY, i, 0, 0, layerIndex, mipmap.width, mipmap.height, 1, glFormat, layerData); + } + texture.clearLayerUpdates(); + } else { + state.compressedTexSubImage3D(_gl.TEXTURE_2D_ARRAY, i, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, mipmap.data); + } + } + } else { + state.compressedTexImage3D(_gl.TEXTURE_2D_ARRAY, i, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, mipmap.data, 0, 0); + } + } else { + console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"); + } + } else { + if (useTexStorage) { + if (dataReady) { + state.texSubImage3D(_gl.TEXTURE_2D_ARRAY, i, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, glType, mipmap.data); + } + } else { + state.texImage3D(_gl.TEXTURE_2D_ARRAY, i, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, glFormat, glType, mipmap.data); + } + } + } + } else { + if (useTexStorage && allocateMemory) { + state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height); + } + for (let i = 0, il = mipmaps.length; i < il; i++) { + mipmap = mipmaps[i]; + if (texture.format !== RGBAFormat) { + if (glFormat !== null) { + if (useTexStorage) { + if (dataReady) { + state.compressedTexSubImage2D(_gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data); + } + } else { + state.compressedTexImage2D(_gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data); + } + } else { + console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"); + } + } else { + if (useTexStorage) { + if (dataReady) { + state.texSubImage2D(_gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data); + } + } else { + state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data); + } + } + } + } + } else if (texture.isDataArrayTexture) { + if (useTexStorage) { + if (allocateMemory) { + state.texStorage3D(_gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, image.width, image.height, image.depth); + } + if (dataReady) { + if (texture.layerUpdates.size > 0) { + const layerByteLength = getByteLength(image.width, image.height, texture.format, texture.type); + for (const layerIndex of texture.layerUpdates) { + const layerData = image.data.subarray( + layerIndex * layerByteLength / image.data.BYTES_PER_ELEMENT, + (layerIndex + 1) * layerByteLength / image.data.BYTES_PER_ELEMENT + ); + state.texSubImage3D(_gl.TEXTURE_2D_ARRAY, 0, 0, 0, layerIndex, image.width, image.height, 1, glFormat, glType, layerData); + } + texture.clearLayerUpdates(); + } else { + state.texSubImage3D(_gl.TEXTURE_2D_ARRAY, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data); + } + } + } else { + state.texImage3D(_gl.TEXTURE_2D_ARRAY, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data); + } + } else if (texture.isData3DTexture) { + if (useTexStorage) { + if (allocateMemory) { + state.texStorage3D(_gl.TEXTURE_3D, levels, glInternalFormat, image.width, image.height, image.depth); + } + if (dataReady) { + state.texSubImage3D(_gl.TEXTURE_3D, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data); + } + } else { + state.texImage3D(_gl.TEXTURE_3D, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data); + } + } else if (texture.isFramebufferTexture) { + if (allocateMemory) { + if (useTexStorage) { + state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height); + } else { + let width = image.width, height = image.height; + for (let i = 0; i < levels; i++) { + state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, width, height, 0, glFormat, glType, null); + width >>= 1; + height >>= 1; + } + } + } + } else { + if (mipmaps.length > 0) { + if (useTexStorage && allocateMemory) { + const dimensions = getDimensions(mipmaps[0]); + state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, dimensions.width, dimensions.height); + } + for (let i = 0, il = mipmaps.length; i < il; i++) { + mipmap = mipmaps[i]; + if (useTexStorage) { + if (dataReady) { + state.texSubImage2D(_gl.TEXTURE_2D, i, 0, 0, glFormat, glType, mipmap); + } + } else { + state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, glFormat, glType, mipmap); + } + } + texture.generateMipmaps = false; + } else { + if (useTexStorage) { + if (allocateMemory) { + const dimensions = getDimensions(image); + state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, dimensions.width, dimensions.height); + } + if (dataReady) { + state.texSubImage2D(_gl.TEXTURE_2D, 0, 0, 0, glFormat, glType, image); + } + } else { + state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, glFormat, glType, image); + } + } + } + if (textureNeedsGenerateMipmaps(texture)) { + generateMipmap(textureType); + } + sourceProperties.__version = source.version; + if (texture.onUpdate) texture.onUpdate(texture); + } + textureProperties.__version = texture.version; + } + __name(uploadTexture, "uploadTexture"); + function uploadCubeTexture(textureProperties, texture, slot) { + if (texture.image.length !== 6) return; + const forceUpload = initTexture(textureProperties, texture); + const source = texture.source; + state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot); + const sourceProperties = properties.get(source); + if (source.version !== sourceProperties.__version || forceUpload === true) { + state.activeTexture(_gl.TEXTURE0 + slot); + const workingPrimaries = ColorManagement.getPrimaries(ColorManagement.workingColorSpace); + const texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries(texture.colorSpace); + const unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL; + _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, texture.flipY); + _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha); + _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, texture.unpackAlignment); + _gl.pixelStorei(_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion); + const isCompressed = texture.isCompressedTexture || texture.image[0].isCompressedTexture; + const isDataTexture = texture.image[0] && texture.image[0].isDataTexture; + const cubeImage = []; + for (let i = 0; i < 6; i++) { + if (!isCompressed && !isDataTexture) { + cubeImage[i] = resizeImage(texture.image[i], true, capabilities.maxCubemapSize); + } else { + cubeImage[i] = isDataTexture ? texture.image[i].image : texture.image[i]; + } + cubeImage[i] = verifyColorSpace(texture, cubeImage[i]); + } + const image = cubeImage[0], glFormat = utils.convert(texture.format, texture.colorSpace), glType = utils.convert(texture.type), glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace); + const useTexStorage = texture.isVideoTexture !== true; + const allocateMemory = sourceProperties.__version === void 0 || forceUpload === true; + const dataReady = source.dataReady; + let levels = getMipLevels(texture, image); + setTextureParameters(_gl.TEXTURE_CUBE_MAP, texture); + let mipmaps; + if (isCompressed) { + if (useTexStorage && allocateMemory) { + state.texStorage2D(_gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, image.width, image.height); + } + for (let i = 0; i < 6; i++) { + mipmaps = cubeImage[i].mipmaps; + for (let j = 0; j < mipmaps.length; j++) { + const mipmap = mipmaps[j]; + if (texture.format !== RGBAFormat) { + if (glFormat !== null) { + if (useTexStorage) { + if (dataReady) { + state.compressedTexSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data); + } + } else { + state.compressedTexImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data); + } + } else { + console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"); + } + } else { + if (useTexStorage) { + if (dataReady) { + state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data); + } + } else { + state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data); + } + } + } + } + } else { + mipmaps = texture.mipmaps; + if (useTexStorage && allocateMemory) { + if (mipmaps.length > 0) levels++; + const dimensions = getDimensions(cubeImage[0]); + state.texStorage2D(_gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, dimensions.width, dimensions.height); + } + for (let i = 0; i < 6; i++) { + if (isDataTexture) { + if (useTexStorage) { + if (dataReady) { + state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 0, 0, cubeImage[i].width, cubeImage[i].height, glFormat, glType, cubeImage[i].data); + } + } else { + state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, cubeImage[i].width, cubeImage[i].height, 0, glFormat, glType, cubeImage[i].data); + } + for (let j = 0; j < mipmaps.length; j++) { + const mipmap = mipmaps[j]; + const mipmapImage = mipmap.image[i].image; + if (useTexStorage) { + if (dataReady) { + state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, 0, 0, mipmapImage.width, mipmapImage.height, glFormat, glType, mipmapImage.data); + } + } else { + state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data); + } + } + } else { + if (useTexStorage) { + if (dataReady) { + state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 0, 0, glFormat, glType, cubeImage[i]); + } + } else { + state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, glFormat, glType, cubeImage[i]); + } + for (let j = 0; j < mipmaps.length; j++) { + const mipmap = mipmaps[j]; + if (useTexStorage) { + if (dataReady) { + state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, 0, 0, glFormat, glType, mipmap.image[i]); + } + } else { + state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, glFormat, glType, mipmap.image[i]); + } + } + } + } + } + if (textureNeedsGenerateMipmaps(texture)) { + generateMipmap(_gl.TEXTURE_CUBE_MAP); + } + sourceProperties.__version = source.version; + if (texture.onUpdate) texture.onUpdate(texture); + } + textureProperties.__version = texture.version; + } + __name(uploadCubeTexture, "uploadCubeTexture"); + function setupFrameBufferTexture(framebuffer, renderTarget, texture, attachment, textureTarget, level) { + const glFormat = utils.convert(texture.format, texture.colorSpace); + const glType = utils.convert(texture.type); + const glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace); + const renderTargetProperties = properties.get(renderTarget); + const textureProperties = properties.get(texture); + textureProperties.__renderTarget = renderTarget; + if (!renderTargetProperties.__hasExternalTextures) { + const width = Math.max(1, renderTarget.width >> level); + const height = Math.max(1, renderTarget.height >> level); + if (textureTarget === _gl.TEXTURE_3D || textureTarget === _gl.TEXTURE_2D_ARRAY) { + state.texImage3D(textureTarget, level, glInternalFormat, width, height, renderTarget.depth, 0, glFormat, glType, null); + } else { + state.texImage2D(textureTarget, level, glInternalFormat, width, height, 0, glFormat, glType, null); + } + } + state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer); + if (useMultisampledRTT(renderTarget)) { + multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, attachment, textureTarget, textureProperties.__webglTexture, 0, getRenderTargetSamples(renderTarget)); + } else if (textureTarget === _gl.TEXTURE_2D || textureTarget >= _gl.TEXTURE_CUBE_MAP_POSITIVE_X && textureTarget <= _gl.TEXTURE_CUBE_MAP_NEGATIVE_Z) { + _gl.framebufferTexture2D(_gl.FRAMEBUFFER, attachment, textureTarget, textureProperties.__webglTexture, level); + } + state.bindFramebuffer(_gl.FRAMEBUFFER, null); + } + __name(setupFrameBufferTexture, "setupFrameBufferTexture"); + function setupRenderBufferStorage(renderbuffer, renderTarget, isMultisample) { + _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderbuffer); + if (renderTarget.depthBuffer) { + const depthTexture = renderTarget.depthTexture; + const depthType = depthTexture && depthTexture.isDepthTexture ? depthTexture.type : null; + const glInternalFormat = getInternalDepthFormat(renderTarget.stencilBuffer, depthType); + const glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT; + const samples = getRenderTargetSamples(renderTarget); + const isUseMultisampledRTT = useMultisampledRTT(renderTarget); + if (isUseMultisampledRTT) { + multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height); + } else if (isMultisample) { + _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height); + } else { + _gl.renderbufferStorage(_gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height); + } + _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer); + } else { + const textures = renderTarget.textures; + for (let i = 0; i < textures.length; i++) { + const texture = textures[i]; + const glFormat = utils.convert(texture.format, texture.colorSpace); + const glType = utils.convert(texture.type); + const glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace); + const samples = getRenderTargetSamples(renderTarget); + if (isMultisample && useMultisampledRTT(renderTarget) === false) { + _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height); + } else if (useMultisampledRTT(renderTarget)) { + multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height); + } else { + _gl.renderbufferStorage(_gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height); + } + } + } + _gl.bindRenderbuffer(_gl.RENDERBUFFER, null); + } + __name(setupRenderBufferStorage, "setupRenderBufferStorage"); + function setupDepthTexture(framebuffer, renderTarget) { + const isCube = renderTarget && renderTarget.isWebGLCubeRenderTarget; + if (isCube) throw new Error("Depth Texture with cube render targets is not supported"); + state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer); + if (!(renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture)) { + throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture"); + } + const textureProperties = properties.get(renderTarget.depthTexture); + textureProperties.__renderTarget = renderTarget; + if (!textureProperties.__webglTexture || renderTarget.depthTexture.image.width !== renderTarget.width || renderTarget.depthTexture.image.height !== renderTarget.height) { + renderTarget.depthTexture.image.width = renderTarget.width; + renderTarget.depthTexture.image.height = renderTarget.height; + renderTarget.depthTexture.needsUpdate = true; + } + setTexture2D(renderTarget.depthTexture, 0); + const webglDepthTexture = textureProperties.__webglTexture; + const samples = getRenderTargetSamples(renderTarget); + if (renderTarget.depthTexture.format === DepthFormat) { + if (useMultisampledRTT(renderTarget)) { + multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples); + } else { + _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0); + } + } else if (renderTarget.depthTexture.format === DepthStencilFormat) { + if (useMultisampledRTT(renderTarget)) { + multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples); + } else { + _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0); + } + } else { + throw new Error("Unknown depthTexture format"); + } + } + __name(setupDepthTexture, "setupDepthTexture"); + function setupDepthRenderbuffer(renderTarget) { + const renderTargetProperties = properties.get(renderTarget); + const isCube = renderTarget.isWebGLCubeRenderTarget === true; + if (renderTargetProperties.__boundDepthTexture !== renderTarget.depthTexture) { + const depthTexture = renderTarget.depthTexture; + if (renderTargetProperties.__depthDisposeCallback) { + renderTargetProperties.__depthDisposeCallback(); + } + if (depthTexture) { + const disposeEvent = /* @__PURE__ */ __name(() => { + delete renderTargetProperties.__boundDepthTexture; + delete renderTargetProperties.__depthDisposeCallback; + depthTexture.removeEventListener("dispose", disposeEvent); + }, "disposeEvent"); + depthTexture.addEventListener("dispose", disposeEvent); + renderTargetProperties.__depthDisposeCallback = disposeEvent; + } + renderTargetProperties.__boundDepthTexture = depthTexture; + } + if (renderTarget.depthTexture && !renderTargetProperties.__autoAllocateDepthBuffer) { + if (isCube) throw new Error("target.depthTexture not supported in Cube render targets"); + setupDepthTexture(renderTargetProperties.__webglFramebuffer, renderTarget); + } else { + if (isCube) { + renderTargetProperties.__webglDepthbuffer = []; + for (let i = 0; i < 6; i++) { + state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer[i]); + if (renderTargetProperties.__webglDepthbuffer[i] === void 0) { + renderTargetProperties.__webglDepthbuffer[i] = _gl.createRenderbuffer(); + setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer[i], renderTarget, false); + } else { + const glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT; + const renderbuffer = renderTargetProperties.__webglDepthbuffer[i]; + _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderbuffer); + _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer); + } + } + } else { + state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer); + if (renderTargetProperties.__webglDepthbuffer === void 0) { + renderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer(); + setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer, renderTarget, false); + } else { + const glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT; + const renderbuffer = renderTargetProperties.__webglDepthbuffer; + _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderbuffer); + _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer); + } + } + } + state.bindFramebuffer(_gl.FRAMEBUFFER, null); + } + __name(setupDepthRenderbuffer, "setupDepthRenderbuffer"); + function rebindTextures(renderTarget, colorTexture, depthTexture) { + const renderTargetProperties = properties.get(renderTarget); + if (colorTexture !== void 0) { + setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, 0); + } + if (depthTexture !== void 0) { + setupDepthRenderbuffer(renderTarget); + } + } + __name(rebindTextures, "rebindTextures"); + function setupRenderTarget(renderTarget) { + const texture = renderTarget.texture; + const renderTargetProperties = properties.get(renderTarget); + const textureProperties = properties.get(texture); + renderTarget.addEventListener("dispose", onRenderTargetDispose); + const textures = renderTarget.textures; + const isCube = renderTarget.isWebGLCubeRenderTarget === true; + const isMultipleRenderTargets = textures.length > 1; + if (!isMultipleRenderTargets) { + if (textureProperties.__webglTexture === void 0) { + textureProperties.__webglTexture = _gl.createTexture(); + } + textureProperties.__version = texture.version; + info.memory.textures++; + } + if (isCube) { + renderTargetProperties.__webglFramebuffer = []; + for (let i = 0; i < 6; i++) { + if (texture.mipmaps && texture.mipmaps.length > 0) { + renderTargetProperties.__webglFramebuffer[i] = []; + for (let level = 0; level < texture.mipmaps.length; level++) { + renderTargetProperties.__webglFramebuffer[i][level] = _gl.createFramebuffer(); + } + } else { + renderTargetProperties.__webglFramebuffer[i] = _gl.createFramebuffer(); + } + } + } else { + if (texture.mipmaps && texture.mipmaps.length > 0) { + renderTargetProperties.__webglFramebuffer = []; + for (let level = 0; level < texture.mipmaps.length; level++) { + renderTargetProperties.__webglFramebuffer[level] = _gl.createFramebuffer(); + } + } else { + renderTargetProperties.__webglFramebuffer = _gl.createFramebuffer(); + } + if (isMultipleRenderTargets) { + for (let i = 0, il = textures.length; i < il; i++) { + const attachmentProperties = properties.get(textures[i]); + if (attachmentProperties.__webglTexture === void 0) { + attachmentProperties.__webglTexture = _gl.createTexture(); + info.memory.textures++; + } + } + } + if (renderTarget.samples > 0 && useMultisampledRTT(renderTarget) === false) { + renderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer(); + renderTargetProperties.__webglColorRenderbuffer = []; + state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer); + for (let i = 0; i < textures.length; i++) { + const texture2 = textures[i]; + renderTargetProperties.__webglColorRenderbuffer[i] = _gl.createRenderbuffer(); + _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[i]); + const glFormat = utils.convert(texture2.format, texture2.colorSpace); + const glType = utils.convert(texture2.type); + const glInternalFormat = getInternalFormat(texture2.internalFormat, glFormat, glType, texture2.colorSpace, renderTarget.isXRRenderTarget === true); + const samples = getRenderTargetSamples(renderTarget); + _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height); + _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[i]); + } + _gl.bindRenderbuffer(_gl.RENDERBUFFER, null); + if (renderTarget.depthBuffer) { + renderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer(); + setupRenderBufferStorage(renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true); + } + state.bindFramebuffer(_gl.FRAMEBUFFER, null); + } + } + if (isCube) { + state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture); + setTextureParameters(_gl.TEXTURE_CUBE_MAP, texture); + for (let i = 0; i < 6; i++) { + if (texture.mipmaps && texture.mipmaps.length > 0) { + for (let level = 0; level < texture.mipmaps.length; level++) { + setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[i][level], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, level); + } + } else { + setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[i], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0); + } + } + if (textureNeedsGenerateMipmaps(texture)) { + generateMipmap(_gl.TEXTURE_CUBE_MAP); + } + state.unbindTexture(); + } else if (isMultipleRenderTargets) { + for (let i = 0, il = textures.length; i < il; i++) { + const attachment = textures[i]; + const attachmentProperties = properties.get(attachment); + state.bindTexture(_gl.TEXTURE_2D, attachmentProperties.__webglTexture); + setTextureParameters(_gl.TEXTURE_2D, attachment); + setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, 0); + if (textureNeedsGenerateMipmaps(attachment)) { + generateMipmap(_gl.TEXTURE_2D); + } + } + state.unbindTexture(); + } else { + let glTextureType = _gl.TEXTURE_2D; + if (renderTarget.isWebGL3DRenderTarget || renderTarget.isWebGLArrayRenderTarget) { + glTextureType = renderTarget.isWebGL3DRenderTarget ? _gl.TEXTURE_3D : _gl.TEXTURE_2D_ARRAY; + } + state.bindTexture(glTextureType, textureProperties.__webglTexture); + setTextureParameters(glTextureType, texture); + if (texture.mipmaps && texture.mipmaps.length > 0) { + for (let level = 0; level < texture.mipmaps.length; level++) { + setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[level], renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, level); + } + } else { + setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, 0); + } + if (textureNeedsGenerateMipmaps(texture)) { + generateMipmap(glTextureType); + } + state.unbindTexture(); + } + if (renderTarget.depthBuffer) { + setupDepthRenderbuffer(renderTarget); + } + } + __name(setupRenderTarget, "setupRenderTarget"); + function updateRenderTargetMipmap(renderTarget) { + const textures = renderTarget.textures; + for (let i = 0, il = textures.length; i < il; i++) { + const texture = textures[i]; + if (textureNeedsGenerateMipmaps(texture)) { + const targetType = getTargetType(renderTarget); + const webglTexture = properties.get(texture).__webglTexture; + state.bindTexture(targetType, webglTexture); + generateMipmap(targetType); + state.unbindTexture(); + } + } + } + __name(updateRenderTargetMipmap, "updateRenderTargetMipmap"); + const invalidationArrayRead = []; + const invalidationArrayDraw = []; + function updateMultisampleRenderTarget(renderTarget) { + if (renderTarget.samples > 0) { + if (useMultisampledRTT(renderTarget) === false) { + const textures = renderTarget.textures; + const width = renderTarget.width; + const height = renderTarget.height; + let mask = _gl.COLOR_BUFFER_BIT; + const depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT; + const renderTargetProperties = properties.get(renderTarget); + const isMultipleRenderTargets = textures.length > 1; + if (isMultipleRenderTargets) { + for (let i = 0; i < textures.length; i++) { + state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer); + _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, null); + state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer); + _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, null, 0); + } + } + state.bindFramebuffer(_gl.READ_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer); + state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglFramebuffer); + for (let i = 0; i < textures.length; i++) { + if (renderTarget.resolveDepthBuffer) { + if (renderTarget.depthBuffer) mask |= _gl.DEPTH_BUFFER_BIT; + if (renderTarget.stencilBuffer && renderTarget.resolveStencilBuffer) mask |= _gl.STENCIL_BUFFER_BIT; + } + if (isMultipleRenderTargets) { + _gl.framebufferRenderbuffer(_gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[i]); + const webglTexture = properties.get(textures[i]).__webglTexture; + _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, webglTexture, 0); + } + _gl.blitFramebuffer(0, 0, width, height, 0, 0, width, height, mask, _gl.NEAREST); + if (supportsInvalidateFramebuffer === true) { + invalidationArrayRead.length = 0; + invalidationArrayDraw.length = 0; + invalidationArrayRead.push(_gl.COLOR_ATTACHMENT0 + i); + if (renderTarget.depthBuffer && renderTarget.resolveDepthBuffer === false) { + invalidationArrayRead.push(depthStyle); + invalidationArrayDraw.push(depthStyle); + _gl.invalidateFramebuffer(_gl.DRAW_FRAMEBUFFER, invalidationArrayDraw); + } + _gl.invalidateFramebuffer(_gl.READ_FRAMEBUFFER, invalidationArrayRead); + } + } + state.bindFramebuffer(_gl.READ_FRAMEBUFFER, null); + state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, null); + if (isMultipleRenderTargets) { + for (let i = 0; i < textures.length; i++) { + state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer); + _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[i]); + const webglTexture = properties.get(textures[i]).__webglTexture; + state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer); + _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, webglTexture, 0); + } + } + state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer); + } else { + if (renderTarget.depthBuffer && renderTarget.resolveDepthBuffer === false && supportsInvalidateFramebuffer) { + const depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT; + _gl.invalidateFramebuffer(_gl.DRAW_FRAMEBUFFER, [depthStyle]); + } + } + } + } + __name(updateMultisampleRenderTarget, "updateMultisampleRenderTarget"); + function getRenderTargetSamples(renderTarget) { + return Math.min(capabilities.maxSamples, renderTarget.samples); + } + __name(getRenderTargetSamples, "getRenderTargetSamples"); + function useMultisampledRTT(renderTarget) { + const renderTargetProperties = properties.get(renderTarget); + return renderTarget.samples > 0 && extensions.has("WEBGL_multisampled_render_to_texture") === true && renderTargetProperties.__useRenderToTexture !== false; + } + __name(useMultisampledRTT, "useMultisampledRTT"); + function updateVideoTexture(texture) { + const frame = info.render.frame; + if (_videoTextures.get(texture) !== frame) { + _videoTextures.set(texture, frame); + texture.update(); + } + } + __name(updateVideoTexture, "updateVideoTexture"); + function verifyColorSpace(texture, image) { + const colorSpace = texture.colorSpace; + const format = texture.format; + const type = texture.type; + if (texture.isCompressedTexture === true || texture.isVideoTexture === true) return image; + if (colorSpace !== LinearSRGBColorSpace && colorSpace !== NoColorSpace) { + if (ColorManagement.getTransfer(colorSpace) === SRGBTransfer) { + if (format !== RGBAFormat || type !== UnsignedByteType) { + console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."); + } + } else { + console.error("THREE.WebGLTextures: Unsupported texture color space:", colorSpace); + } + } + return image; + } + __name(verifyColorSpace, "verifyColorSpace"); + function getDimensions(image) { + if (typeof HTMLImageElement !== "undefined" && image instanceof HTMLImageElement) { + _imageDimensions.width = image.naturalWidth || image.width; + _imageDimensions.height = image.naturalHeight || image.height; + } else if (typeof VideoFrame !== "undefined" && image instanceof VideoFrame) { + _imageDimensions.width = image.displayWidth; + _imageDimensions.height = image.displayHeight; + } else { + _imageDimensions.width = image.width; + _imageDimensions.height = image.height; + } + return _imageDimensions; + } + __name(getDimensions, "getDimensions"); + this.allocateTextureUnit = allocateTextureUnit; + this.resetTextureUnits = resetTextureUnits; + this.setTexture2D = setTexture2D; + this.setTexture2DArray = setTexture2DArray; + this.setTexture3D = setTexture3D; + this.setTextureCube = setTextureCube; + this.rebindTextures = rebindTextures; + this.setupRenderTarget = setupRenderTarget; + this.updateRenderTargetMipmap = updateRenderTargetMipmap; + this.updateMultisampleRenderTarget = updateMultisampleRenderTarget; + this.setupDepthRenderbuffer = setupDepthRenderbuffer; + this.setupFrameBufferTexture = setupFrameBufferTexture; + this.useMultisampledRTT = useMultisampledRTT; +} +__name(WebGLTextures, "WebGLTextures"); +function WebGLUtils(gl, extensions) { + function convert(p, colorSpace = NoColorSpace) { + let extension; + const transfer = ColorManagement.getTransfer(colorSpace); + if (p === UnsignedByteType) return gl.UNSIGNED_BYTE; + if (p === UnsignedShort4444Type) return gl.UNSIGNED_SHORT_4_4_4_4; + if (p === UnsignedShort5551Type) return gl.UNSIGNED_SHORT_5_5_5_1; + if (p === UnsignedInt5999Type) return gl.UNSIGNED_INT_5_9_9_9_REV; + if (p === ByteType) return gl.BYTE; + if (p === ShortType) return gl.SHORT; + if (p === UnsignedShortType) return gl.UNSIGNED_SHORT; + if (p === IntType) return gl.INT; + if (p === UnsignedIntType) return gl.UNSIGNED_INT; + if (p === FloatType) return gl.FLOAT; + if (p === HalfFloatType) return gl.HALF_FLOAT; + if (p === AlphaFormat) return gl.ALPHA; + if (p === RGBFormat) return gl.RGB; + if (p === RGBAFormat) return gl.RGBA; + if (p === LuminanceFormat) return gl.LUMINANCE; + if (p === LuminanceAlphaFormat) return gl.LUMINANCE_ALPHA; + if (p === DepthFormat) return gl.DEPTH_COMPONENT; + if (p === DepthStencilFormat) return gl.DEPTH_STENCIL; + if (p === RedFormat) return gl.RED; + if (p === RedIntegerFormat) return gl.RED_INTEGER; + if (p === RGFormat) return gl.RG; + if (p === RGIntegerFormat) return gl.RG_INTEGER; + if (p === RGBAIntegerFormat) return gl.RGBA_INTEGER; + if (p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format) { + if (transfer === SRGBTransfer) { + extension = extensions.get("WEBGL_compressed_texture_s3tc_srgb"); + if (extension !== null) { + if (p === RGB_S3TC_DXT1_Format) return extension.COMPRESSED_SRGB_S3TC_DXT1_EXT; + if (p === RGBA_S3TC_DXT1_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT; + if (p === RGBA_S3TC_DXT3_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT; + if (p === RGBA_S3TC_DXT5_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT; + } else { + return null; + } + } else { + extension = extensions.get("WEBGL_compressed_texture_s3tc"); + if (extension !== null) { + if (p === RGB_S3TC_DXT1_Format) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT; + if (p === RGBA_S3TC_DXT1_Format) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT; + if (p === RGBA_S3TC_DXT3_Format) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT; + if (p === RGBA_S3TC_DXT5_Format) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT; + } else { + return null; + } + } + } + if (p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format) { + extension = extensions.get("WEBGL_compressed_texture_pvrtc"); + if (extension !== null) { + if (p === RGB_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG; + if (p === RGB_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG; + if (p === RGBA_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; + if (p === RGBA_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG; + } else { + return null; + } + } + if (p === RGB_ETC1_Format || p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format) { + extension = extensions.get("WEBGL_compressed_texture_etc"); + if (extension !== null) { + if (p === RGB_ETC1_Format || p === RGB_ETC2_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2; + if (p === RGBA_ETC2_EAC_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC; + } else { + return null; + } + } + if (p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format || p === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format || p === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format || p === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format || p === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format) { + extension = extensions.get("WEBGL_compressed_texture_astc"); + if (extension !== null) { + if (p === RGBA_ASTC_4x4_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR; + if (p === RGBA_ASTC_5x4_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR; + if (p === RGBA_ASTC_5x5_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR; + if (p === RGBA_ASTC_6x5_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR; + if (p === RGBA_ASTC_6x6_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR; + if (p === RGBA_ASTC_8x5_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR; + if (p === RGBA_ASTC_8x6_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR; + if (p === RGBA_ASTC_8x8_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR; + if (p === RGBA_ASTC_10x5_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR; + if (p === RGBA_ASTC_10x6_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR; + if (p === RGBA_ASTC_10x8_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR; + if (p === RGBA_ASTC_10x10_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR; + if (p === RGBA_ASTC_12x10_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR; + if (p === RGBA_ASTC_12x12_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR; + } else { + return null; + } + } + if (p === RGBA_BPTC_Format || p === RGB_BPTC_SIGNED_Format || p === RGB_BPTC_UNSIGNED_Format) { + extension = extensions.get("EXT_texture_compression_bptc"); + if (extension !== null) { + if (p === RGBA_BPTC_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT; + if (p === RGB_BPTC_SIGNED_Format) return extension.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT; + if (p === RGB_BPTC_UNSIGNED_Format) return extension.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT; + } else { + return null; + } + } + if (p === RED_RGTC1_Format || p === SIGNED_RED_RGTC1_Format || p === RED_GREEN_RGTC2_Format || p === SIGNED_RED_GREEN_RGTC2_Format) { + extension = extensions.get("EXT_texture_compression_rgtc"); + if (extension !== null) { + if (p === RGBA_BPTC_Format) return extension.COMPRESSED_RED_RGTC1_EXT; + if (p === SIGNED_RED_RGTC1_Format) return extension.COMPRESSED_SIGNED_RED_RGTC1_EXT; + if (p === RED_GREEN_RGTC2_Format) return extension.COMPRESSED_RED_GREEN_RGTC2_EXT; + if (p === SIGNED_RED_GREEN_RGTC2_Format) return extension.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT; + } else { + return null; + } + } + if (p === UnsignedInt248Type) return gl.UNSIGNED_INT_24_8; + return gl[p] !== void 0 ? gl[p] : null; + } + __name(convert, "convert"); + return { convert }; +} +__name(WebGLUtils, "WebGLUtils"); +class ArrayCamera extends PerspectiveCamera { + static { + __name(this, "ArrayCamera"); + } + constructor(array = []) { + super(); + this.isArrayCamera = true; + this.cameras = array; + } +} +class Group extends Object3D { + static { + __name(this, "Group"); + } + constructor() { + super(); + this.isGroup = true; + this.type = "Group"; + } +} +const _moveEvent = { type: "move" }; +class WebXRController { + static { + __name(this, "WebXRController"); + } + constructor() { + this._targetRay = null; + this._grip = null; + this._hand = null; + } + getHandSpace() { + if (this._hand === null) { + this._hand = new Group(); + this._hand.matrixAutoUpdate = false; + this._hand.visible = false; + this._hand.joints = {}; + this._hand.inputState = { pinching: false }; + } + return this._hand; + } + getTargetRaySpace() { + if (this._targetRay === null) { + this._targetRay = new Group(); + this._targetRay.matrixAutoUpdate = false; + this._targetRay.visible = false; + this._targetRay.hasLinearVelocity = false; + this._targetRay.linearVelocity = new Vector3(); + this._targetRay.hasAngularVelocity = false; + this._targetRay.angularVelocity = new Vector3(); + } + return this._targetRay; + } + getGripSpace() { + if (this._grip === null) { + this._grip = new Group(); + this._grip.matrixAutoUpdate = false; + this._grip.visible = false; + this._grip.hasLinearVelocity = false; + this._grip.linearVelocity = new Vector3(); + this._grip.hasAngularVelocity = false; + this._grip.angularVelocity = new Vector3(); + } + return this._grip; + } + dispatchEvent(event) { + if (this._targetRay !== null) { + this._targetRay.dispatchEvent(event); + } + if (this._grip !== null) { + this._grip.dispatchEvent(event); + } + if (this._hand !== null) { + this._hand.dispatchEvent(event); + } + return this; + } + connect(inputSource) { + if (inputSource && inputSource.hand) { + const hand = this._hand; + if (hand) { + for (const inputjoint of inputSource.hand.values()) { + this._getHandJoint(hand, inputjoint); + } + } + } + this.dispatchEvent({ type: "connected", data: inputSource }); + return this; + } + disconnect(inputSource) { + this.dispatchEvent({ type: "disconnected", data: inputSource }); + if (this._targetRay !== null) { + this._targetRay.visible = false; + } + if (this._grip !== null) { + this._grip.visible = false; + } + if (this._hand !== null) { + this._hand.visible = false; + } + return this; + } + update(inputSource, frame, referenceSpace) { + let inputPose = null; + let gripPose = null; + let handPose = null; + const targetRay = this._targetRay; + const grip = this._grip; + const hand = this._hand; + if (inputSource && frame.session.visibilityState !== "visible-blurred") { + if (hand && inputSource.hand) { + handPose = true; + for (const inputjoint of inputSource.hand.values()) { + const jointPose = frame.getJointPose(inputjoint, referenceSpace); + const joint = this._getHandJoint(hand, inputjoint); + if (jointPose !== null) { + joint.matrix.fromArray(jointPose.transform.matrix); + joint.matrix.decompose(joint.position, joint.rotation, joint.scale); + joint.matrixWorldNeedsUpdate = true; + joint.jointRadius = jointPose.radius; + } + joint.visible = jointPose !== null; + } + const indexTip = hand.joints["index-finger-tip"]; + const thumbTip = hand.joints["thumb-tip"]; + const distance = indexTip.position.distanceTo(thumbTip.position); + const distanceToPinch = 0.02; + const threshold = 5e-3; + if (hand.inputState.pinching && distance > distanceToPinch + threshold) { + hand.inputState.pinching = false; + this.dispatchEvent({ + type: "pinchend", + handedness: inputSource.handedness, + target: this + }); + } else if (!hand.inputState.pinching && distance <= distanceToPinch - threshold) { + hand.inputState.pinching = true; + this.dispatchEvent({ + type: "pinchstart", + handedness: inputSource.handedness, + target: this + }); + } + } else { + if (grip !== null && inputSource.gripSpace) { + gripPose = frame.getPose(inputSource.gripSpace, referenceSpace); + if (gripPose !== null) { + grip.matrix.fromArray(gripPose.transform.matrix); + grip.matrix.decompose(grip.position, grip.rotation, grip.scale); + grip.matrixWorldNeedsUpdate = true; + if (gripPose.linearVelocity) { + grip.hasLinearVelocity = true; + grip.linearVelocity.copy(gripPose.linearVelocity); + } else { + grip.hasLinearVelocity = false; + } + if (gripPose.angularVelocity) { + grip.hasAngularVelocity = true; + grip.angularVelocity.copy(gripPose.angularVelocity); + } else { + grip.hasAngularVelocity = false; + } + } + } + } + if (targetRay !== null) { + inputPose = frame.getPose(inputSource.targetRaySpace, referenceSpace); + if (inputPose === null && gripPose !== null) { + inputPose = gripPose; + } + if (inputPose !== null) { + targetRay.matrix.fromArray(inputPose.transform.matrix); + targetRay.matrix.decompose(targetRay.position, targetRay.rotation, targetRay.scale); + targetRay.matrixWorldNeedsUpdate = true; + if (inputPose.linearVelocity) { + targetRay.hasLinearVelocity = true; + targetRay.linearVelocity.copy(inputPose.linearVelocity); + } else { + targetRay.hasLinearVelocity = false; + } + if (inputPose.angularVelocity) { + targetRay.hasAngularVelocity = true; + targetRay.angularVelocity.copy(inputPose.angularVelocity); + } else { + targetRay.hasAngularVelocity = false; + } + this.dispatchEvent(_moveEvent); + } + } + } + if (targetRay !== null) { + targetRay.visible = inputPose !== null; + } + if (grip !== null) { + grip.visible = gripPose !== null; + } + if (hand !== null) { + hand.visible = handPose !== null; + } + return this; + } + // private method + _getHandJoint(hand, inputjoint) { + if (hand.joints[inputjoint.jointName] === void 0) { + const joint = new Group(); + joint.matrixAutoUpdate = false; + joint.visible = false; + hand.joints[inputjoint.jointName] = joint; + hand.add(joint); + } + return hand.joints[inputjoint.jointName]; + } +} +const _occlusion_vertex = ` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`; +const _occlusion_fragment = ` +uniform sampler2DArray depthColor; +uniform float depthWidth; +uniform float depthHeight; + +void main() { + + vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); + + if ( coord.x >= 1.0 ) { + + gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; + + } else { + + gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; + + } + +}`; +class WebXRDepthSensing { + static { + __name(this, "WebXRDepthSensing"); + } + constructor() { + this.texture = null; + this.mesh = null; + this.depthNear = 0; + this.depthFar = 0; + } + init(renderer, depthData, renderState) { + if (this.texture === null) { + const texture = new Texture(); + const texProps = renderer.properties.get(texture); + texProps.__webglTexture = depthData.texture; + if (depthData.depthNear != renderState.depthNear || depthData.depthFar != renderState.depthFar) { + this.depthNear = depthData.depthNear; + this.depthFar = depthData.depthFar; + } + this.texture = texture; + } + } + getMesh(cameraXR) { + if (this.texture !== null) { + if (this.mesh === null) { + const viewport = cameraXR.cameras[0].viewport; + const material = new ShaderMaterial({ + vertexShader: _occlusion_vertex, + fragmentShader: _occlusion_fragment, + uniforms: { + depthColor: { value: this.texture }, + depthWidth: { value: viewport.z }, + depthHeight: { value: viewport.w } + } + }); + this.mesh = new Mesh(new PlaneGeometry(20, 20), material); + } + } + return this.mesh; + } + reset() { + this.texture = null; + this.mesh = null; + } + getDepthTexture() { + return this.texture; + } +} +class WebXRManager extends EventDispatcher { + static { + __name(this, "WebXRManager"); + } + constructor(renderer, gl) { + super(); + const scope = this; + let session = null; + let framebufferScaleFactor = 1; + let referenceSpace = null; + let referenceSpaceType = "local-floor"; + let foveation = 1; + let customReferenceSpace = null; + let pose = null; + let glBinding = null; + let glProjLayer = null; + let glBaseLayer = null; + let xrFrame = null; + const depthSensing = new WebXRDepthSensing(); + const attributes = gl.getContextAttributes(); + let initialRenderTarget = null; + let newRenderTarget = null; + const controllers = []; + const controllerInputSources = []; + const currentSize = new Vector2(); + let currentPixelRatio = null; + const cameraL = new PerspectiveCamera(); + cameraL.viewport = new Vector4(); + const cameraR = new PerspectiveCamera(); + cameraR.viewport = new Vector4(); + const cameras = [cameraL, cameraR]; + const cameraXR = new ArrayCamera(); + let _currentDepthNear = null; + let _currentDepthFar = null; + this.cameraAutoUpdate = true; + this.enabled = false; + this.isPresenting = false; + this.getController = function(index) { + let controller = controllers[index]; + if (controller === void 0) { + controller = new WebXRController(); + controllers[index] = controller; + } + return controller.getTargetRaySpace(); + }; + this.getControllerGrip = function(index) { + let controller = controllers[index]; + if (controller === void 0) { + controller = new WebXRController(); + controllers[index] = controller; + } + return controller.getGripSpace(); + }; + this.getHand = function(index) { + let controller = controllers[index]; + if (controller === void 0) { + controller = new WebXRController(); + controllers[index] = controller; + } + return controller.getHandSpace(); + }; + function onSessionEvent(event) { + const controllerIndex = controllerInputSources.indexOf(event.inputSource); + if (controllerIndex === -1) { + return; + } + const controller = controllers[controllerIndex]; + if (controller !== void 0) { + controller.update(event.inputSource, event.frame, customReferenceSpace || referenceSpace); + controller.dispatchEvent({ type: event.type, data: event.inputSource }); + } + } + __name(onSessionEvent, "onSessionEvent"); + function onSessionEnd() { + session.removeEventListener("select", onSessionEvent); + session.removeEventListener("selectstart", onSessionEvent); + session.removeEventListener("selectend", onSessionEvent); + session.removeEventListener("squeeze", onSessionEvent); + session.removeEventListener("squeezestart", onSessionEvent); + session.removeEventListener("squeezeend", onSessionEvent); + session.removeEventListener("end", onSessionEnd); + session.removeEventListener("inputsourceschange", onInputSourcesChange); + for (let i = 0; i < controllers.length; i++) { + const inputSource = controllerInputSources[i]; + if (inputSource === null) continue; + controllerInputSources[i] = null; + controllers[i].disconnect(inputSource); + } + _currentDepthNear = null; + _currentDepthFar = null; + depthSensing.reset(); + renderer.setRenderTarget(initialRenderTarget); + glBaseLayer = null; + glProjLayer = null; + glBinding = null; + session = null; + newRenderTarget = null; + animation.stop(); + scope.isPresenting = false; + renderer.setPixelRatio(currentPixelRatio); + renderer.setSize(currentSize.width, currentSize.height, false); + scope.dispatchEvent({ type: "sessionend" }); + } + __name(onSessionEnd, "onSessionEnd"); + this.setFramebufferScaleFactor = function(value) { + framebufferScaleFactor = value; + if (scope.isPresenting === true) { + console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting."); + } + }; + this.setReferenceSpaceType = function(value) { + referenceSpaceType = value; + if (scope.isPresenting === true) { + console.warn("THREE.WebXRManager: Cannot change reference space type while presenting."); + } + }; + this.getReferenceSpace = function() { + return customReferenceSpace || referenceSpace; + }; + this.setReferenceSpace = function(space) { + customReferenceSpace = space; + }; + this.getBaseLayer = function() { + return glProjLayer !== null ? glProjLayer : glBaseLayer; + }; + this.getBinding = function() { + return glBinding; + }; + this.getFrame = function() { + return xrFrame; + }; + this.getSession = function() { + return session; + }; + this.setSession = async function(value) { + session = value; + if (session !== null) { + initialRenderTarget = renderer.getRenderTarget(); + session.addEventListener("select", onSessionEvent); + session.addEventListener("selectstart", onSessionEvent); + session.addEventListener("selectend", onSessionEvent); + session.addEventListener("squeeze", onSessionEvent); + session.addEventListener("squeezestart", onSessionEvent); + session.addEventListener("squeezeend", onSessionEvent); + session.addEventListener("end", onSessionEnd); + session.addEventListener("inputsourceschange", onInputSourcesChange); + if (attributes.xrCompatible !== true) { + await gl.makeXRCompatible(); + } + currentPixelRatio = renderer.getPixelRatio(); + renderer.getSize(currentSize); + if (session.renderState.layers === void 0) { + const layerInit = { + antialias: attributes.antialias, + alpha: true, + depth: attributes.depth, + stencil: attributes.stencil, + framebufferScaleFactor + }; + glBaseLayer = new XRWebGLLayer(session, gl, layerInit); + session.updateRenderState({ baseLayer: glBaseLayer }); + renderer.setPixelRatio(1); + renderer.setSize(glBaseLayer.framebufferWidth, glBaseLayer.framebufferHeight, false); + newRenderTarget = new WebGLRenderTarget( + glBaseLayer.framebufferWidth, + glBaseLayer.framebufferHeight, + { + format: RGBAFormat, + type: UnsignedByteType, + colorSpace: renderer.outputColorSpace, + stencilBuffer: attributes.stencil + } + ); + } else { + let depthFormat = null; + let depthType = null; + let glDepthFormat = null; + if (attributes.depth) { + glDepthFormat = attributes.stencil ? gl.DEPTH24_STENCIL8 : gl.DEPTH_COMPONENT24; + depthFormat = attributes.stencil ? DepthStencilFormat : DepthFormat; + depthType = attributes.stencil ? UnsignedInt248Type : UnsignedIntType; + } + const projectionlayerInit = { + colorFormat: gl.RGBA8, + depthFormat: glDepthFormat, + scaleFactor: framebufferScaleFactor + }; + glBinding = new XRWebGLBinding(session, gl); + glProjLayer = glBinding.createProjectionLayer(projectionlayerInit); + session.updateRenderState({ layers: [glProjLayer] }); + renderer.setPixelRatio(1); + renderer.setSize(glProjLayer.textureWidth, glProjLayer.textureHeight, false); + newRenderTarget = new WebGLRenderTarget( + glProjLayer.textureWidth, + glProjLayer.textureHeight, + { + format: RGBAFormat, + type: UnsignedByteType, + depthTexture: new DepthTexture(glProjLayer.textureWidth, glProjLayer.textureHeight, depthType, void 0, void 0, void 0, void 0, void 0, void 0, depthFormat), + stencilBuffer: attributes.stencil, + colorSpace: renderer.outputColorSpace, + samples: attributes.antialias ? 4 : 0, + resolveDepthBuffer: glProjLayer.ignoreDepthValues === false + } + ); + } + newRenderTarget.isXRRenderTarget = true; + this.setFoveation(foveation); + customReferenceSpace = null; + referenceSpace = await session.requestReferenceSpace(referenceSpaceType); + animation.setContext(session); + animation.start(); + scope.isPresenting = true; + scope.dispatchEvent({ type: "sessionstart" }); + } + }; + this.getEnvironmentBlendMode = function() { + if (session !== null) { + return session.environmentBlendMode; + } + }; + this.getDepthTexture = function() { + return depthSensing.getDepthTexture(); + }; + function onInputSourcesChange(event) { + for (let i = 0; i < event.removed.length; i++) { + const inputSource = event.removed[i]; + const index = controllerInputSources.indexOf(inputSource); + if (index >= 0) { + controllerInputSources[index] = null; + controllers[index].disconnect(inputSource); + } + } + for (let i = 0; i < event.added.length; i++) { + const inputSource = event.added[i]; + let controllerIndex = controllerInputSources.indexOf(inputSource); + if (controllerIndex === -1) { + for (let i2 = 0; i2 < controllers.length; i2++) { + if (i2 >= controllerInputSources.length) { + controllerInputSources.push(inputSource); + controllerIndex = i2; + break; + } else if (controllerInputSources[i2] === null) { + controllerInputSources[i2] = inputSource; + controllerIndex = i2; + break; + } + } + if (controllerIndex === -1) break; + } + const controller = controllers[controllerIndex]; + if (controller) { + controller.connect(inputSource); + } + } + } + __name(onInputSourcesChange, "onInputSourcesChange"); + const cameraLPos = new Vector3(); + const cameraRPos = new Vector3(); + function setProjectionFromUnion(camera, cameraL2, cameraR2) { + cameraLPos.setFromMatrixPosition(cameraL2.matrixWorld); + cameraRPos.setFromMatrixPosition(cameraR2.matrixWorld); + const ipd = cameraLPos.distanceTo(cameraRPos); + const projL = cameraL2.projectionMatrix.elements; + const projR = cameraR2.projectionMatrix.elements; + const near = projL[14] / (projL[10] - 1); + const far = projL[14] / (projL[10] + 1); + const topFov = (projL[9] + 1) / projL[5]; + const bottomFov = (projL[9] - 1) / projL[5]; + const leftFov = (projL[8] - 1) / projL[0]; + const rightFov = (projR[8] + 1) / projR[0]; + const left = near * leftFov; + const right = near * rightFov; + const zOffset = ipd / (-leftFov + rightFov); + const xOffset = zOffset * -leftFov; + cameraL2.matrixWorld.decompose(camera.position, camera.quaternion, camera.scale); + camera.translateX(xOffset); + camera.translateZ(zOffset); + camera.matrixWorld.compose(camera.position, camera.quaternion, camera.scale); + camera.matrixWorldInverse.copy(camera.matrixWorld).invert(); + if (projL[10] === -1) { + camera.projectionMatrix.copy(cameraL2.projectionMatrix); + camera.projectionMatrixInverse.copy(cameraL2.projectionMatrixInverse); + } else { + const near2 = near + zOffset; + const far2 = far + zOffset; + const left2 = left - xOffset; + const right2 = right + (ipd - xOffset); + const top2 = topFov * far / far2 * near2; + const bottom2 = bottomFov * far / far2 * near2; + camera.projectionMatrix.makePerspective(left2, right2, top2, bottom2, near2, far2); + camera.projectionMatrixInverse.copy(camera.projectionMatrix).invert(); + } + } + __name(setProjectionFromUnion, "setProjectionFromUnion"); + function updateCamera(camera, parent) { + if (parent === null) { + camera.matrixWorld.copy(camera.matrix); + } else { + camera.matrixWorld.multiplyMatrices(parent.matrixWorld, camera.matrix); + } + camera.matrixWorldInverse.copy(camera.matrixWorld).invert(); + } + __name(updateCamera, "updateCamera"); + this.updateCamera = function(camera) { + if (session === null) return; + let depthNear = camera.near; + let depthFar = camera.far; + if (depthSensing.texture !== null) { + if (depthSensing.depthNear > 0) depthNear = depthSensing.depthNear; + if (depthSensing.depthFar > 0) depthFar = depthSensing.depthFar; + } + cameraXR.near = cameraR.near = cameraL.near = depthNear; + cameraXR.far = cameraR.far = cameraL.far = depthFar; + if (_currentDepthNear !== cameraXR.near || _currentDepthFar !== cameraXR.far) { + session.updateRenderState({ + depthNear: cameraXR.near, + depthFar: cameraXR.far + }); + _currentDepthNear = cameraXR.near; + _currentDepthFar = cameraXR.far; + } + cameraL.layers.mask = camera.layers.mask | 2; + cameraR.layers.mask = camera.layers.mask | 4; + cameraXR.layers.mask = cameraL.layers.mask | cameraR.layers.mask; + const parent = camera.parent; + const cameras2 = cameraXR.cameras; + updateCamera(cameraXR, parent); + for (let i = 0; i < cameras2.length; i++) { + updateCamera(cameras2[i], parent); + } + if (cameras2.length === 2) { + setProjectionFromUnion(cameraXR, cameraL, cameraR); + } else { + cameraXR.projectionMatrix.copy(cameraL.projectionMatrix); + } + updateUserCamera(camera, cameraXR, parent); + }; + function updateUserCamera(camera, cameraXR2, parent) { + if (parent === null) { + camera.matrix.copy(cameraXR2.matrixWorld); + } else { + camera.matrix.copy(parent.matrixWorld); + camera.matrix.invert(); + camera.matrix.multiply(cameraXR2.matrixWorld); + } + camera.matrix.decompose(camera.position, camera.quaternion, camera.scale); + camera.updateMatrixWorld(true); + camera.projectionMatrix.copy(cameraXR2.projectionMatrix); + camera.projectionMatrixInverse.copy(cameraXR2.projectionMatrixInverse); + if (camera.isPerspectiveCamera) { + camera.fov = RAD2DEG * 2 * Math.atan(1 / camera.projectionMatrix.elements[5]); + camera.zoom = 1; + } + } + __name(updateUserCamera, "updateUserCamera"); + this.getCamera = function() { + return cameraXR; + }; + this.getFoveation = function() { + if (glProjLayer === null && glBaseLayer === null) { + return void 0; + } + return foveation; + }; + this.setFoveation = function(value) { + foveation = value; + if (glProjLayer !== null) { + glProjLayer.fixedFoveation = value; + } + if (glBaseLayer !== null && glBaseLayer.fixedFoveation !== void 0) { + glBaseLayer.fixedFoveation = value; + } + }; + this.hasDepthSensing = function() { + return depthSensing.texture !== null; + }; + this.getDepthSensingMesh = function() { + return depthSensing.getMesh(cameraXR); + }; + let onAnimationFrameCallback = null; + function onAnimationFrame(time, frame) { + pose = frame.getViewerPose(customReferenceSpace || referenceSpace); + xrFrame = frame; + if (pose !== null) { + const views = pose.views; + if (glBaseLayer !== null) { + renderer.setRenderTargetFramebuffer(newRenderTarget, glBaseLayer.framebuffer); + renderer.setRenderTarget(newRenderTarget); + } + let cameraXRNeedsUpdate = false; + if (views.length !== cameraXR.cameras.length) { + cameraXR.cameras.length = 0; + cameraXRNeedsUpdate = true; + } + for (let i = 0; i < views.length; i++) { + const view = views[i]; + let viewport = null; + if (glBaseLayer !== null) { + viewport = glBaseLayer.getViewport(view); + } else { + const glSubImage = glBinding.getViewSubImage(glProjLayer, view); + viewport = glSubImage.viewport; + if (i === 0) { + renderer.setRenderTargetTextures( + newRenderTarget, + glSubImage.colorTexture, + glProjLayer.ignoreDepthValues ? void 0 : glSubImage.depthStencilTexture + ); + renderer.setRenderTarget(newRenderTarget); + } + } + let camera = cameras[i]; + if (camera === void 0) { + camera = new PerspectiveCamera(); + camera.layers.enable(i); + camera.viewport = new Vector4(); + cameras[i] = camera; + } + camera.matrix.fromArray(view.transform.matrix); + camera.matrix.decompose(camera.position, camera.quaternion, camera.scale); + camera.projectionMatrix.fromArray(view.projectionMatrix); + camera.projectionMatrixInverse.copy(camera.projectionMatrix).invert(); + camera.viewport.set(viewport.x, viewport.y, viewport.width, viewport.height); + if (i === 0) { + cameraXR.matrix.copy(camera.matrix); + cameraXR.matrix.decompose(cameraXR.position, cameraXR.quaternion, cameraXR.scale); + } + if (cameraXRNeedsUpdate === true) { + cameraXR.cameras.push(camera); + } + } + const enabledFeatures = session.enabledFeatures; + if (enabledFeatures && enabledFeatures.includes("depth-sensing")) { + const depthData = glBinding.getDepthInformation(views[0]); + if (depthData && depthData.isValid && depthData.texture) { + depthSensing.init(renderer, depthData, session.renderState); + } + } + } + for (let i = 0; i < controllers.length; i++) { + const inputSource = controllerInputSources[i]; + const controller = controllers[i]; + if (inputSource !== null && controller !== void 0) { + controller.update(inputSource, frame, customReferenceSpace || referenceSpace); + } + } + if (onAnimationFrameCallback) onAnimationFrameCallback(time, frame); + if (frame.detectedPlanes) { + scope.dispatchEvent({ type: "planesdetected", data: frame }); + } + xrFrame = null; + } + __name(onAnimationFrame, "onAnimationFrame"); + const animation = new WebGLAnimation(); + animation.setAnimationLoop(onAnimationFrame); + this.setAnimationLoop = function(callback) { + onAnimationFrameCallback = callback; + }; + this.dispose = function() { + }; + } +} +const _e1 = /* @__PURE__ */ new Euler(); +const _m1 = /* @__PURE__ */ new Matrix4(); +function WebGLMaterials(renderer, properties) { + function refreshTransformUniform(map, uniform) { + if (map.matrixAutoUpdate === true) { + map.updateMatrix(); + } + uniform.value.copy(map.matrix); + } + __name(refreshTransformUniform, "refreshTransformUniform"); + function refreshFogUniforms(uniforms, fog) { + fog.color.getRGB(uniforms.fogColor.value, getUnlitUniformColorSpace(renderer)); + if (fog.isFog) { + uniforms.fogNear.value = fog.near; + uniforms.fogFar.value = fog.far; + } else if (fog.isFogExp2) { + uniforms.fogDensity.value = fog.density; + } + } + __name(refreshFogUniforms, "refreshFogUniforms"); + function refreshMaterialUniforms(uniforms, material, pixelRatio, height, transmissionRenderTarget) { + if (material.isMeshBasicMaterial) { + refreshUniformsCommon(uniforms, material); + } else if (material.isMeshLambertMaterial) { + refreshUniformsCommon(uniforms, material); + } else if (material.isMeshToonMaterial) { + refreshUniformsCommon(uniforms, material); + refreshUniformsToon(uniforms, material); + } else if (material.isMeshPhongMaterial) { + refreshUniformsCommon(uniforms, material); + refreshUniformsPhong(uniforms, material); + } else if (material.isMeshStandardMaterial) { + refreshUniformsCommon(uniforms, material); + refreshUniformsStandard(uniforms, material); + if (material.isMeshPhysicalMaterial) { + refreshUniformsPhysical(uniforms, material, transmissionRenderTarget); + } + } else if (material.isMeshMatcapMaterial) { + refreshUniformsCommon(uniforms, material); + refreshUniformsMatcap(uniforms, material); + } else if (material.isMeshDepthMaterial) { + refreshUniformsCommon(uniforms, material); + } else if (material.isMeshDistanceMaterial) { + refreshUniformsCommon(uniforms, material); + refreshUniformsDistance(uniforms, material); + } else if (material.isMeshNormalMaterial) { + refreshUniformsCommon(uniforms, material); + } else if (material.isLineBasicMaterial) { + refreshUniformsLine(uniforms, material); + if (material.isLineDashedMaterial) { + refreshUniformsDash(uniforms, material); + } + } else if (material.isPointsMaterial) { + refreshUniformsPoints(uniforms, material, pixelRatio, height); + } else if (material.isSpriteMaterial) { + refreshUniformsSprites(uniforms, material); + } else if (material.isShadowMaterial) { + uniforms.color.value.copy(material.color); + uniforms.opacity.value = material.opacity; + } else if (material.isShaderMaterial) { + material.uniformsNeedUpdate = false; + } + } + __name(refreshMaterialUniforms, "refreshMaterialUniforms"); + function refreshUniformsCommon(uniforms, material) { + uniforms.opacity.value = material.opacity; + if (material.color) { + uniforms.diffuse.value.copy(material.color); + } + if (material.emissive) { + uniforms.emissive.value.copy(material.emissive).multiplyScalar(material.emissiveIntensity); + } + if (material.map) { + uniforms.map.value = material.map; + refreshTransformUniform(material.map, uniforms.mapTransform); + } + if (material.alphaMap) { + uniforms.alphaMap.value = material.alphaMap; + refreshTransformUniform(material.alphaMap, uniforms.alphaMapTransform); + } + if (material.bumpMap) { + uniforms.bumpMap.value = material.bumpMap; + refreshTransformUniform(material.bumpMap, uniforms.bumpMapTransform); + uniforms.bumpScale.value = material.bumpScale; + if (material.side === BackSide) { + uniforms.bumpScale.value *= -1; + } + } + if (material.normalMap) { + uniforms.normalMap.value = material.normalMap; + refreshTransformUniform(material.normalMap, uniforms.normalMapTransform); + uniforms.normalScale.value.copy(material.normalScale); + if (material.side === BackSide) { + uniforms.normalScale.value.negate(); + } + } + if (material.displacementMap) { + uniforms.displacementMap.value = material.displacementMap; + refreshTransformUniform(material.displacementMap, uniforms.displacementMapTransform); + uniforms.displacementScale.value = material.displacementScale; + uniforms.displacementBias.value = material.displacementBias; + } + if (material.emissiveMap) { + uniforms.emissiveMap.value = material.emissiveMap; + refreshTransformUniform(material.emissiveMap, uniforms.emissiveMapTransform); + } + if (material.specularMap) { + uniforms.specularMap.value = material.specularMap; + refreshTransformUniform(material.specularMap, uniforms.specularMapTransform); + } + if (material.alphaTest > 0) { + uniforms.alphaTest.value = material.alphaTest; + } + const materialProperties = properties.get(material); + const envMap = materialProperties.envMap; + const envMapRotation = materialProperties.envMapRotation; + if (envMap) { + uniforms.envMap.value = envMap; + _e1.copy(envMapRotation); + _e1.x *= -1; + _e1.y *= -1; + _e1.z *= -1; + if (envMap.isCubeTexture && envMap.isRenderTargetTexture === false) { + _e1.y *= -1; + _e1.z *= -1; + } + uniforms.envMapRotation.value.setFromMatrix4(_m1.makeRotationFromEuler(_e1)); + uniforms.flipEnvMap.value = envMap.isCubeTexture && envMap.isRenderTargetTexture === false ? -1 : 1; + uniforms.reflectivity.value = material.reflectivity; + uniforms.ior.value = material.ior; + uniforms.refractionRatio.value = material.refractionRatio; + } + if (material.lightMap) { + uniforms.lightMap.value = material.lightMap; + uniforms.lightMapIntensity.value = material.lightMapIntensity; + refreshTransformUniform(material.lightMap, uniforms.lightMapTransform); + } + if (material.aoMap) { + uniforms.aoMap.value = material.aoMap; + uniforms.aoMapIntensity.value = material.aoMapIntensity; + refreshTransformUniform(material.aoMap, uniforms.aoMapTransform); + } + } + __name(refreshUniformsCommon, "refreshUniformsCommon"); + function refreshUniformsLine(uniforms, material) { + uniforms.diffuse.value.copy(material.color); + uniforms.opacity.value = material.opacity; + if (material.map) { + uniforms.map.value = material.map; + refreshTransformUniform(material.map, uniforms.mapTransform); + } + } + __name(refreshUniformsLine, "refreshUniformsLine"); + function refreshUniformsDash(uniforms, material) { + uniforms.dashSize.value = material.dashSize; + uniforms.totalSize.value = material.dashSize + material.gapSize; + uniforms.scale.value = material.scale; + } + __name(refreshUniformsDash, "refreshUniformsDash"); + function refreshUniformsPoints(uniforms, material, pixelRatio, height) { + uniforms.diffuse.value.copy(material.color); + uniforms.opacity.value = material.opacity; + uniforms.size.value = material.size * pixelRatio; + uniforms.scale.value = height * 0.5; + if (material.map) { + uniforms.map.value = material.map; + refreshTransformUniform(material.map, uniforms.uvTransform); + } + if (material.alphaMap) { + uniforms.alphaMap.value = material.alphaMap; + refreshTransformUniform(material.alphaMap, uniforms.alphaMapTransform); + } + if (material.alphaTest > 0) { + uniforms.alphaTest.value = material.alphaTest; + } + } + __name(refreshUniformsPoints, "refreshUniformsPoints"); + function refreshUniformsSprites(uniforms, material) { + uniforms.diffuse.value.copy(material.color); + uniforms.opacity.value = material.opacity; + uniforms.rotation.value = material.rotation; + if (material.map) { + uniforms.map.value = material.map; + refreshTransformUniform(material.map, uniforms.mapTransform); + } + if (material.alphaMap) { + uniforms.alphaMap.value = material.alphaMap; + refreshTransformUniform(material.alphaMap, uniforms.alphaMapTransform); + } + if (material.alphaTest > 0) { + uniforms.alphaTest.value = material.alphaTest; + } + } + __name(refreshUniformsSprites, "refreshUniformsSprites"); + function refreshUniformsPhong(uniforms, material) { + uniforms.specular.value.copy(material.specular); + uniforms.shininess.value = Math.max(material.shininess, 1e-4); + } + __name(refreshUniformsPhong, "refreshUniformsPhong"); + function refreshUniformsToon(uniforms, material) { + if (material.gradientMap) { + uniforms.gradientMap.value = material.gradientMap; + } + } + __name(refreshUniformsToon, "refreshUniformsToon"); + function refreshUniformsStandard(uniforms, material) { + uniforms.metalness.value = material.metalness; + if (material.metalnessMap) { + uniforms.metalnessMap.value = material.metalnessMap; + refreshTransformUniform(material.metalnessMap, uniforms.metalnessMapTransform); + } + uniforms.roughness.value = material.roughness; + if (material.roughnessMap) { + uniforms.roughnessMap.value = material.roughnessMap; + refreshTransformUniform(material.roughnessMap, uniforms.roughnessMapTransform); + } + if (material.envMap) { + uniforms.envMapIntensity.value = material.envMapIntensity; + } + } + __name(refreshUniformsStandard, "refreshUniformsStandard"); + function refreshUniformsPhysical(uniforms, material, transmissionRenderTarget) { + uniforms.ior.value = material.ior; + if (material.sheen > 0) { + uniforms.sheenColor.value.copy(material.sheenColor).multiplyScalar(material.sheen); + uniforms.sheenRoughness.value = material.sheenRoughness; + if (material.sheenColorMap) { + uniforms.sheenColorMap.value = material.sheenColorMap; + refreshTransformUniform(material.sheenColorMap, uniforms.sheenColorMapTransform); + } + if (material.sheenRoughnessMap) { + uniforms.sheenRoughnessMap.value = material.sheenRoughnessMap; + refreshTransformUniform(material.sheenRoughnessMap, uniforms.sheenRoughnessMapTransform); + } + } + if (material.clearcoat > 0) { + uniforms.clearcoat.value = material.clearcoat; + uniforms.clearcoatRoughness.value = material.clearcoatRoughness; + if (material.clearcoatMap) { + uniforms.clearcoatMap.value = material.clearcoatMap; + refreshTransformUniform(material.clearcoatMap, uniforms.clearcoatMapTransform); + } + if (material.clearcoatRoughnessMap) { + uniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap; + refreshTransformUniform(material.clearcoatRoughnessMap, uniforms.clearcoatRoughnessMapTransform); + } + if (material.clearcoatNormalMap) { + uniforms.clearcoatNormalMap.value = material.clearcoatNormalMap; + refreshTransformUniform(material.clearcoatNormalMap, uniforms.clearcoatNormalMapTransform); + uniforms.clearcoatNormalScale.value.copy(material.clearcoatNormalScale); + if (material.side === BackSide) { + uniforms.clearcoatNormalScale.value.negate(); + } + } + } + if (material.dispersion > 0) { + uniforms.dispersion.value = material.dispersion; + } + if (material.iridescence > 0) { + uniforms.iridescence.value = material.iridescence; + uniforms.iridescenceIOR.value = material.iridescenceIOR; + uniforms.iridescenceThicknessMinimum.value = material.iridescenceThicknessRange[0]; + uniforms.iridescenceThicknessMaximum.value = material.iridescenceThicknessRange[1]; + if (material.iridescenceMap) { + uniforms.iridescenceMap.value = material.iridescenceMap; + refreshTransformUniform(material.iridescenceMap, uniforms.iridescenceMapTransform); + } + if (material.iridescenceThicknessMap) { + uniforms.iridescenceThicknessMap.value = material.iridescenceThicknessMap; + refreshTransformUniform(material.iridescenceThicknessMap, uniforms.iridescenceThicknessMapTransform); + } + } + if (material.transmission > 0) { + uniforms.transmission.value = material.transmission; + uniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture; + uniforms.transmissionSamplerSize.value.set(transmissionRenderTarget.width, transmissionRenderTarget.height); + if (material.transmissionMap) { + uniforms.transmissionMap.value = material.transmissionMap; + refreshTransformUniform(material.transmissionMap, uniforms.transmissionMapTransform); + } + uniforms.thickness.value = material.thickness; + if (material.thicknessMap) { + uniforms.thicknessMap.value = material.thicknessMap; + refreshTransformUniform(material.thicknessMap, uniforms.thicknessMapTransform); + } + uniforms.attenuationDistance.value = material.attenuationDistance; + uniforms.attenuationColor.value.copy(material.attenuationColor); + } + if (material.anisotropy > 0) { + uniforms.anisotropyVector.value.set(material.anisotropy * Math.cos(material.anisotropyRotation), material.anisotropy * Math.sin(material.anisotropyRotation)); + if (material.anisotropyMap) { + uniforms.anisotropyMap.value = material.anisotropyMap; + refreshTransformUniform(material.anisotropyMap, uniforms.anisotropyMapTransform); + } + } + uniforms.specularIntensity.value = material.specularIntensity; + uniforms.specularColor.value.copy(material.specularColor); + if (material.specularColorMap) { + uniforms.specularColorMap.value = material.specularColorMap; + refreshTransformUniform(material.specularColorMap, uniforms.specularColorMapTransform); + } + if (material.specularIntensityMap) { + uniforms.specularIntensityMap.value = material.specularIntensityMap; + refreshTransformUniform(material.specularIntensityMap, uniforms.specularIntensityMapTransform); + } + } + __name(refreshUniformsPhysical, "refreshUniformsPhysical"); + function refreshUniformsMatcap(uniforms, material) { + if (material.matcap) { + uniforms.matcap.value = material.matcap; + } + } + __name(refreshUniformsMatcap, "refreshUniformsMatcap"); + function refreshUniformsDistance(uniforms, material) { + const light = properties.get(material).light; + uniforms.referencePosition.value.setFromMatrixPosition(light.matrixWorld); + uniforms.nearDistance.value = light.shadow.camera.near; + uniforms.farDistance.value = light.shadow.camera.far; + } + __name(refreshUniformsDistance, "refreshUniformsDistance"); + return { + refreshFogUniforms, + refreshMaterialUniforms + }; +} +__name(WebGLMaterials, "WebGLMaterials"); +function WebGLUniformsGroups(gl, info, capabilities, state) { + let buffers = {}; + let updateList = {}; + let allocatedBindingPoints = []; + const maxBindingPoints = gl.getParameter(gl.MAX_UNIFORM_BUFFER_BINDINGS); + function bind(uniformsGroup, program) { + const webglProgram = program.program; + state.uniformBlockBinding(uniformsGroup, webglProgram); + } + __name(bind, "bind"); + function update(uniformsGroup, program) { + let buffer = buffers[uniformsGroup.id]; + if (buffer === void 0) { + prepareUniformsGroup(uniformsGroup); + buffer = createBuffer(uniformsGroup); + buffers[uniformsGroup.id] = buffer; + uniformsGroup.addEventListener("dispose", onUniformsGroupsDispose); + } + const webglProgram = program.program; + state.updateUBOMapping(uniformsGroup, webglProgram); + const frame = info.render.frame; + if (updateList[uniformsGroup.id] !== frame) { + updateBufferData(uniformsGroup); + updateList[uniformsGroup.id] = frame; + } + } + __name(update, "update"); + function createBuffer(uniformsGroup) { + const bindingPointIndex = allocateBindingPointIndex(); + uniformsGroup.__bindingPointIndex = bindingPointIndex; + const buffer = gl.createBuffer(); + const size = uniformsGroup.__size; + const usage = uniformsGroup.usage; + gl.bindBuffer(gl.UNIFORM_BUFFER, buffer); + gl.bufferData(gl.UNIFORM_BUFFER, size, usage); + gl.bindBuffer(gl.UNIFORM_BUFFER, null); + gl.bindBufferBase(gl.UNIFORM_BUFFER, bindingPointIndex, buffer); + return buffer; + } + __name(createBuffer, "createBuffer"); + function allocateBindingPointIndex() { + for (let i = 0; i < maxBindingPoints; i++) { + if (allocatedBindingPoints.indexOf(i) === -1) { + allocatedBindingPoints.push(i); + return i; + } + } + console.error("THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."); + return 0; + } + __name(allocateBindingPointIndex, "allocateBindingPointIndex"); + function updateBufferData(uniformsGroup) { + const buffer = buffers[uniformsGroup.id]; + const uniforms = uniformsGroup.uniforms; + const cache = uniformsGroup.__cache; + gl.bindBuffer(gl.UNIFORM_BUFFER, buffer); + for (let i = 0, il = uniforms.length; i < il; i++) { + const uniformArray = Array.isArray(uniforms[i]) ? uniforms[i] : [uniforms[i]]; + for (let j = 0, jl = uniformArray.length; j < jl; j++) { + const uniform = uniformArray[j]; + if (hasUniformChanged(uniform, i, j, cache) === true) { + const offset = uniform.__offset; + const values = Array.isArray(uniform.value) ? uniform.value : [uniform.value]; + let arrayOffset = 0; + for (let k = 0; k < values.length; k++) { + const value = values[k]; + const info2 = getUniformSize(value); + if (typeof value === "number" || typeof value === "boolean") { + uniform.__data[0] = value; + gl.bufferSubData(gl.UNIFORM_BUFFER, offset + arrayOffset, uniform.__data); + } else if (value.isMatrix3) { + uniform.__data[0] = value.elements[0]; + uniform.__data[1] = value.elements[1]; + uniform.__data[2] = value.elements[2]; + uniform.__data[3] = 0; + uniform.__data[4] = value.elements[3]; + uniform.__data[5] = value.elements[4]; + uniform.__data[6] = value.elements[5]; + uniform.__data[7] = 0; + uniform.__data[8] = value.elements[6]; + uniform.__data[9] = value.elements[7]; + uniform.__data[10] = value.elements[8]; + uniform.__data[11] = 0; + } else { + value.toArray(uniform.__data, arrayOffset); + arrayOffset += info2.storage / Float32Array.BYTES_PER_ELEMENT; + } + } + gl.bufferSubData(gl.UNIFORM_BUFFER, offset, uniform.__data); + } + } + } + gl.bindBuffer(gl.UNIFORM_BUFFER, null); + } + __name(updateBufferData, "updateBufferData"); + function hasUniformChanged(uniform, index, indexArray, cache) { + const value = uniform.value; + const indexString = index + "_" + indexArray; + if (cache[indexString] === void 0) { + if (typeof value === "number" || typeof value === "boolean") { + cache[indexString] = value; + } else { + cache[indexString] = value.clone(); + } + return true; + } else { + const cachedObject = cache[indexString]; + if (typeof value === "number" || typeof value === "boolean") { + if (cachedObject !== value) { + cache[indexString] = value; + return true; + } + } else { + if (cachedObject.equals(value) === false) { + cachedObject.copy(value); + return true; + } + } + } + return false; + } + __name(hasUniformChanged, "hasUniformChanged"); + function prepareUniformsGroup(uniformsGroup) { + const uniforms = uniformsGroup.uniforms; + let offset = 0; + const chunkSize = 16; + for (let i = 0, l = uniforms.length; i < l; i++) { + const uniformArray = Array.isArray(uniforms[i]) ? uniforms[i] : [uniforms[i]]; + for (let j = 0, jl = uniformArray.length; j < jl; j++) { + const uniform = uniformArray[j]; + const values = Array.isArray(uniform.value) ? uniform.value : [uniform.value]; + for (let k = 0, kl = values.length; k < kl; k++) { + const value = values[k]; + const info2 = getUniformSize(value); + const chunkOffset2 = offset % chunkSize; + const chunkPadding = chunkOffset2 % info2.boundary; + const chunkStart = chunkOffset2 + chunkPadding; + offset += chunkPadding; + if (chunkStart !== 0 && chunkSize - chunkStart < info2.storage) { + offset += chunkSize - chunkStart; + } + uniform.__data = new Float32Array(info2.storage / Float32Array.BYTES_PER_ELEMENT); + uniform.__offset = offset; + offset += info2.storage; + } + } + } + const chunkOffset = offset % chunkSize; + if (chunkOffset > 0) offset += chunkSize - chunkOffset; + uniformsGroup.__size = offset; + uniformsGroup.__cache = {}; + return this; + } + __name(prepareUniformsGroup, "prepareUniformsGroup"); + function getUniformSize(value) { + const info2 = { + boundary: 0, + // bytes + storage: 0 + // bytes + }; + if (typeof value === "number" || typeof value === "boolean") { + info2.boundary = 4; + info2.storage = 4; + } else if (value.isVector2) { + info2.boundary = 8; + info2.storage = 8; + } else if (value.isVector3 || value.isColor) { + info2.boundary = 16; + info2.storage = 12; + } else if (value.isVector4) { + info2.boundary = 16; + info2.storage = 16; + } else if (value.isMatrix3) { + info2.boundary = 48; + info2.storage = 48; + } else if (value.isMatrix4) { + info2.boundary = 64; + info2.storage = 64; + } else if (value.isTexture) { + console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."); + } else { + console.warn("THREE.WebGLRenderer: Unsupported uniform value type.", value); + } + return info2; + } + __name(getUniformSize, "getUniformSize"); + function onUniformsGroupsDispose(event) { + const uniformsGroup = event.target; + uniformsGroup.removeEventListener("dispose", onUniformsGroupsDispose); + const index = allocatedBindingPoints.indexOf(uniformsGroup.__bindingPointIndex); + allocatedBindingPoints.splice(index, 1); + gl.deleteBuffer(buffers[uniformsGroup.id]); + delete buffers[uniformsGroup.id]; + delete updateList[uniformsGroup.id]; + } + __name(onUniformsGroupsDispose, "onUniformsGroupsDispose"); + function dispose() { + for (const id2 in buffers) { + gl.deleteBuffer(buffers[id2]); + } + allocatedBindingPoints = []; + buffers = {}; + updateList = {}; + } + __name(dispose, "dispose"); + return { + bind, + update, + dispose + }; +} +__name(WebGLUniformsGroups, "WebGLUniformsGroups"); +class WebGLRenderer { + static { + __name(this, "WebGLRenderer"); + } + constructor(parameters = {}) { + const { + canvas = createCanvasElement(), + context = null, + depth = true, + stencil = false, + alpha = false, + antialias = false, + premultipliedAlpha = true, + preserveDrawingBuffer = false, + powerPreference = "default", + failIfMajorPerformanceCaveat = false, + reverseDepthBuffer = false + } = parameters; + this.isWebGLRenderer = true; + let _alpha; + if (context !== null) { + if (typeof WebGLRenderingContext !== "undefined" && context instanceof WebGLRenderingContext) { + throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163."); + } + _alpha = context.getContextAttributes().alpha; + } else { + _alpha = alpha; + } + const uintClearColor = new Uint32Array(4); + const intClearColor = new Int32Array(4); + let currentRenderList = null; + let currentRenderState = null; + const renderListStack = []; + const renderStateStack = []; + this.domElement = canvas; + this.debug = { + /** + * Enables error checking and reporting when shader programs are being compiled + * @type {boolean} + */ + checkShaderErrors: true, + /** + * Callback for custom error reporting. + * @type {?Function} + */ + onShaderError: null + }; + this.autoClear = true; + this.autoClearColor = true; + this.autoClearDepth = true; + this.autoClearStencil = true; + this.sortObjects = true; + this.clippingPlanes = []; + this.localClippingEnabled = false; + this._outputColorSpace = SRGBColorSpace; + this.toneMapping = NoToneMapping; + this.toneMappingExposure = 1; + const _this = this; + let _isContextLost = false; + let _currentActiveCubeFace = 0; + let _currentActiveMipmapLevel = 0; + let _currentRenderTarget = null; + let _currentMaterialId = -1; + let _currentCamera = null; + const _currentViewport = new Vector4(); + const _currentScissor = new Vector4(); + let _currentScissorTest = null; + const _currentClearColor = new Color(0); + let _currentClearAlpha = 0; + let _width = canvas.width; + let _height = canvas.height; + let _pixelRatio = 1; + let _opaqueSort = null; + let _transparentSort = null; + const _viewport = new Vector4(0, 0, _width, _height); + const _scissor = new Vector4(0, 0, _width, _height); + let _scissorTest = false; + const _frustum2 = new Frustum(); + let _clippingEnabled = false; + let _localClippingEnabled = false; + const _currentProjectionMatrix = new Matrix4(); + const _projScreenMatrix2 = new Matrix4(); + const _vector32 = new Vector3(); + const _vector4 = new Vector4(); + const _emptyScene = { background: null, fog: null, environment: null, overrideMaterial: null, isScene: true }; + let _renderBackground = false; + function getTargetPixelRatio() { + return _currentRenderTarget === null ? _pixelRatio : 1; + } + __name(getTargetPixelRatio, "getTargetPixelRatio"); + let _gl = context; + function getContext(contextName, contextAttributes) { + return canvas.getContext(contextName, contextAttributes); + } + __name(getContext, "getContext"); + try { + const contextAttributes = { + alpha: true, + depth, + stencil, + antialias, + premultipliedAlpha, + preserveDrawingBuffer, + powerPreference, + failIfMajorPerformanceCaveat + }; + if ("setAttribute" in canvas) canvas.setAttribute("data-engine", `three.js r${REVISION}`); + canvas.addEventListener("webglcontextlost", onContextLost, false); + canvas.addEventListener("webglcontextrestored", onContextRestore, false); + canvas.addEventListener("webglcontextcreationerror", onContextCreationError, false); + if (_gl === null) { + const contextName = "webgl2"; + _gl = getContext(contextName, contextAttributes); + if (_gl === null) { + if (getContext(contextName)) { + throw new Error("Error creating WebGL context with your selected attributes."); + } else { + throw new Error("Error creating WebGL context."); + } + } + } + } catch (error) { + console.error("THREE.WebGLRenderer: " + error.message); + throw error; + } + let extensions, capabilities, state, info; + let properties, textures, cubemaps, cubeuvmaps, attributes, geometries, objects; + let programCache, materials, renderLists, renderStates, clipping, shadowMap; + let background, morphtargets, bufferRenderer, indexedBufferRenderer; + let utils, bindingStates, uniformsGroups; + function initGLContext() { + extensions = new WebGLExtensions(_gl); + extensions.init(); + utils = new WebGLUtils(_gl, extensions); + capabilities = new WebGLCapabilities(_gl, extensions, parameters, utils); + state = new WebGLState(_gl, extensions); + if (capabilities.reverseDepthBuffer && reverseDepthBuffer) { + state.buffers.depth.setReversed(true); + } + info = new WebGLInfo(_gl); + properties = new WebGLProperties(); + textures = new WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info); + cubemaps = new WebGLCubeMaps(_this); + cubeuvmaps = new WebGLCubeUVMaps(_this); + attributes = new WebGLAttributes(_gl); + bindingStates = new WebGLBindingStates(_gl, attributes); + geometries = new WebGLGeometries(_gl, attributes, info, bindingStates); + objects = new WebGLObjects(_gl, geometries, attributes, info); + morphtargets = new WebGLMorphtargets(_gl, capabilities, textures); + clipping = new WebGLClipping(properties); + programCache = new WebGLPrograms(_this, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping); + materials = new WebGLMaterials(_this, properties); + renderLists = new WebGLRenderLists(); + renderStates = new WebGLRenderStates(extensions); + background = new WebGLBackground(_this, cubemaps, cubeuvmaps, state, objects, _alpha, premultipliedAlpha); + shadowMap = new WebGLShadowMap(_this, objects, capabilities); + uniformsGroups = new WebGLUniformsGroups(_gl, info, capabilities, state); + bufferRenderer = new WebGLBufferRenderer(_gl, extensions, info); + indexedBufferRenderer = new WebGLIndexedBufferRenderer(_gl, extensions, info); + info.programs = programCache.programs; + _this.capabilities = capabilities; + _this.extensions = extensions; + _this.properties = properties; + _this.renderLists = renderLists; + _this.shadowMap = shadowMap; + _this.state = state; + _this.info = info; + } + __name(initGLContext, "initGLContext"); + initGLContext(); + const xr = new WebXRManager(_this, _gl); + this.xr = xr; + this.getContext = function() { + return _gl; + }; + this.getContextAttributes = function() { + return _gl.getContextAttributes(); + }; + this.forceContextLoss = function() { + const extension = extensions.get("WEBGL_lose_context"); + if (extension) extension.loseContext(); + }; + this.forceContextRestore = function() { + const extension = extensions.get("WEBGL_lose_context"); + if (extension) extension.restoreContext(); + }; + this.getPixelRatio = function() { + return _pixelRatio; + }; + this.setPixelRatio = function(value) { + if (value === void 0) return; + _pixelRatio = value; + this.setSize(_width, _height, false); + }; + this.getSize = function(target) { + return target.set(_width, _height); + }; + this.setSize = function(width, height, updateStyle = true) { + if (xr.isPresenting) { + console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."); + return; + } + _width = width; + _height = height; + canvas.width = Math.floor(width * _pixelRatio); + canvas.height = Math.floor(height * _pixelRatio); + if (updateStyle === true) { + canvas.style.width = width + "px"; + canvas.style.height = height + "px"; + } + this.setViewport(0, 0, width, height); + }; + this.getDrawingBufferSize = function(target) { + return target.set(_width * _pixelRatio, _height * _pixelRatio).floor(); + }; + this.setDrawingBufferSize = function(width, height, pixelRatio) { + _width = width; + _height = height; + _pixelRatio = pixelRatio; + canvas.width = Math.floor(width * pixelRatio); + canvas.height = Math.floor(height * pixelRatio); + this.setViewport(0, 0, width, height); + }; + this.getCurrentViewport = function(target) { + return target.copy(_currentViewport); + }; + this.getViewport = function(target) { + return target.copy(_viewport); + }; + this.setViewport = function(x, y, width, height) { + if (x.isVector4) { + _viewport.set(x.x, x.y, x.z, x.w); + } else { + _viewport.set(x, y, width, height); + } + state.viewport(_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).round()); + }; + this.getScissor = function(target) { + return target.copy(_scissor); + }; + this.setScissor = function(x, y, width, height) { + if (x.isVector4) { + _scissor.set(x.x, x.y, x.z, x.w); + } else { + _scissor.set(x, y, width, height); + } + state.scissor(_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).round()); + }; + this.getScissorTest = function() { + return _scissorTest; + }; + this.setScissorTest = function(boolean) { + state.setScissorTest(_scissorTest = boolean); + }; + this.setOpaqueSort = function(method) { + _opaqueSort = method; + }; + this.setTransparentSort = function(method) { + _transparentSort = method; + }; + this.getClearColor = function(target) { + return target.copy(background.getClearColor()); + }; + this.setClearColor = function() { + background.setClearColor.apply(background, arguments); + }; + this.getClearAlpha = function() { + return background.getClearAlpha(); + }; + this.setClearAlpha = function() { + background.setClearAlpha.apply(background, arguments); + }; + this.clear = function(color = true, depth2 = true, stencil2 = true) { + let bits2 = 0; + if (color) { + let isIntegerFormat = false; + if (_currentRenderTarget !== null) { + const targetFormat = _currentRenderTarget.texture.format; + isIntegerFormat = targetFormat === RGBAIntegerFormat || targetFormat === RGIntegerFormat || targetFormat === RedIntegerFormat; + } + if (isIntegerFormat) { + const targetType = _currentRenderTarget.texture.type; + const isUnsignedType = targetType === UnsignedByteType || targetType === UnsignedIntType || targetType === UnsignedShortType || targetType === UnsignedInt248Type || targetType === UnsignedShort4444Type || targetType === UnsignedShort5551Type; + const clearColor = background.getClearColor(); + const a = background.getClearAlpha(); + const r = clearColor.r; + const g = clearColor.g; + const b = clearColor.b; + if (isUnsignedType) { + uintClearColor[0] = r; + uintClearColor[1] = g; + uintClearColor[2] = b; + uintClearColor[3] = a; + _gl.clearBufferuiv(_gl.COLOR, 0, uintClearColor); + } else { + intClearColor[0] = r; + intClearColor[1] = g; + intClearColor[2] = b; + intClearColor[3] = a; + _gl.clearBufferiv(_gl.COLOR, 0, intClearColor); + } + } else { + bits2 |= _gl.COLOR_BUFFER_BIT; + } + } + if (depth2) { + bits2 |= _gl.DEPTH_BUFFER_BIT; + } + if (stencil2) { + bits2 |= _gl.STENCIL_BUFFER_BIT; + this.state.buffers.stencil.setMask(4294967295); + } + _gl.clear(bits2); + }; + this.clearColor = function() { + this.clear(true, false, false); + }; + this.clearDepth = function() { + this.clear(false, true, false); + }; + this.clearStencil = function() { + this.clear(false, false, true); + }; + this.dispose = function() { + canvas.removeEventListener("webglcontextlost", onContextLost, false); + canvas.removeEventListener("webglcontextrestored", onContextRestore, false); + canvas.removeEventListener("webglcontextcreationerror", onContextCreationError, false); + renderLists.dispose(); + renderStates.dispose(); + properties.dispose(); + cubemaps.dispose(); + cubeuvmaps.dispose(); + objects.dispose(); + bindingStates.dispose(); + uniformsGroups.dispose(); + programCache.dispose(); + xr.dispose(); + xr.removeEventListener("sessionstart", onXRSessionStart); + xr.removeEventListener("sessionend", onXRSessionEnd); + animation.stop(); + }; + function onContextLost(event) { + event.preventDefault(); + console.log("THREE.WebGLRenderer: Context Lost."); + _isContextLost = true; + } + __name(onContextLost, "onContextLost"); + function onContextRestore() { + console.log("THREE.WebGLRenderer: Context Restored."); + _isContextLost = false; + const infoAutoReset = info.autoReset; + const shadowMapEnabled = shadowMap.enabled; + const shadowMapAutoUpdate = shadowMap.autoUpdate; + const shadowMapNeedsUpdate = shadowMap.needsUpdate; + const shadowMapType = shadowMap.type; + initGLContext(); + info.autoReset = infoAutoReset; + shadowMap.enabled = shadowMapEnabled; + shadowMap.autoUpdate = shadowMapAutoUpdate; + shadowMap.needsUpdate = shadowMapNeedsUpdate; + shadowMap.type = shadowMapType; + } + __name(onContextRestore, "onContextRestore"); + function onContextCreationError(event) { + console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ", event.statusMessage); + } + __name(onContextCreationError, "onContextCreationError"); + function onMaterialDispose(event) { + const material = event.target; + material.removeEventListener("dispose", onMaterialDispose); + deallocateMaterial(material); + } + __name(onMaterialDispose, "onMaterialDispose"); + function deallocateMaterial(material) { + releaseMaterialProgramReferences(material); + properties.remove(material); + } + __name(deallocateMaterial, "deallocateMaterial"); + function releaseMaterialProgramReferences(material) { + const programs = properties.get(material).programs; + if (programs !== void 0) { + programs.forEach(function(program) { + programCache.releaseProgram(program); + }); + if (material.isShaderMaterial) { + programCache.releaseShaderCache(material); + } + } + } + __name(releaseMaterialProgramReferences, "releaseMaterialProgramReferences"); + this.renderBufferDirect = function(camera, scene, geometry, material, object, group) { + if (scene === null) scene = _emptyScene; + const frontFaceCW = object.isMesh && object.matrixWorld.determinant() < 0; + const program = setProgram(camera, scene, geometry, material, object); + state.setMaterial(material, frontFaceCW); + let index = geometry.index; + let rangeFactor = 1; + if (material.wireframe === true) { + index = geometries.getWireframeAttribute(geometry); + if (index === void 0) return; + rangeFactor = 2; + } + const drawRange = geometry.drawRange; + const position = geometry.attributes.position; + let drawStart = drawRange.start * rangeFactor; + let drawEnd = (drawRange.start + drawRange.count) * rangeFactor; + if (group !== null) { + drawStart = Math.max(drawStart, group.start * rangeFactor); + drawEnd = Math.min(drawEnd, (group.start + group.count) * rangeFactor); + } + if (index !== null) { + drawStart = Math.max(drawStart, 0); + drawEnd = Math.min(drawEnd, index.count); + } else if (position !== void 0 && position !== null) { + drawStart = Math.max(drawStart, 0); + drawEnd = Math.min(drawEnd, position.count); + } + const drawCount = drawEnd - drawStart; + if (drawCount < 0 || drawCount === Infinity) return; + bindingStates.setup(object, material, program, geometry, index); + let attribute; + let renderer = bufferRenderer; + if (index !== null) { + attribute = attributes.get(index); + renderer = indexedBufferRenderer; + renderer.setIndex(attribute); + } + if (object.isMesh) { + if (material.wireframe === true) { + state.setLineWidth(material.wireframeLinewidth * getTargetPixelRatio()); + renderer.setMode(_gl.LINES); + } else { + renderer.setMode(_gl.TRIANGLES); + } + } else if (object.isLine) { + let lineWidth = material.linewidth; + if (lineWidth === void 0) lineWidth = 1; + state.setLineWidth(lineWidth * getTargetPixelRatio()); + if (object.isLineSegments) { + renderer.setMode(_gl.LINES); + } else if (object.isLineLoop) { + renderer.setMode(_gl.LINE_LOOP); + } else { + renderer.setMode(_gl.LINE_STRIP); + } + } else if (object.isPoints) { + renderer.setMode(_gl.POINTS); + } else if (object.isSprite) { + renderer.setMode(_gl.TRIANGLES); + } + if (object.isBatchedMesh) { + if (object._multiDrawInstances !== null) { + renderer.renderMultiDrawInstances(object._multiDrawStarts, object._multiDrawCounts, object._multiDrawCount, object._multiDrawInstances); + } else { + if (!extensions.get("WEBGL_multi_draw")) { + const starts = object._multiDrawStarts; + const counts = object._multiDrawCounts; + const drawCount2 = object._multiDrawCount; + const bytesPerElement = index ? attributes.get(index).bytesPerElement : 1; + const uniforms = properties.get(material).currentProgram.getUniforms(); + for (let i = 0; i < drawCount2; i++) { + uniforms.setValue(_gl, "_gl_DrawID", i); + renderer.render(starts[i] / bytesPerElement, counts[i]); + } + } else { + renderer.renderMultiDraw(object._multiDrawStarts, object._multiDrawCounts, object._multiDrawCount); + } + } + } else if (object.isInstancedMesh) { + renderer.renderInstances(drawStart, drawCount, object.count); + } else if (geometry.isInstancedBufferGeometry) { + const maxInstanceCount = geometry._maxInstanceCount !== void 0 ? geometry._maxInstanceCount : Infinity; + const instanceCount = Math.min(geometry.instanceCount, maxInstanceCount); + renderer.renderInstances(drawStart, drawCount, instanceCount); + } else { + renderer.render(drawStart, drawCount); + } + }; + function prepareMaterial(material, scene, object) { + if (material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false) { + material.side = BackSide; + material.needsUpdate = true; + getProgram(material, scene, object); + material.side = FrontSide; + material.needsUpdate = true; + getProgram(material, scene, object); + material.side = DoubleSide; + } else { + getProgram(material, scene, object); + } + } + __name(prepareMaterial, "prepareMaterial"); + this.compile = function(scene, camera, targetScene = null) { + if (targetScene === null) targetScene = scene; + currentRenderState = renderStates.get(targetScene); + currentRenderState.init(camera); + renderStateStack.push(currentRenderState); + targetScene.traverseVisible(function(object) { + if (object.isLight && object.layers.test(camera.layers)) { + currentRenderState.pushLight(object); + if (object.castShadow) { + currentRenderState.pushShadow(object); + } + } + }); + if (scene !== targetScene) { + scene.traverseVisible(function(object) { + if (object.isLight && object.layers.test(camera.layers)) { + currentRenderState.pushLight(object); + if (object.castShadow) { + currentRenderState.pushShadow(object); + } + } + }); + } + currentRenderState.setupLights(); + const materials2 = /* @__PURE__ */ new Set(); + scene.traverse(function(object) { + if (!(object.isMesh || object.isPoints || object.isLine || object.isSprite)) { + return; + } + const material = object.material; + if (material) { + if (Array.isArray(material)) { + for (let i = 0; i < material.length; i++) { + const material2 = material[i]; + prepareMaterial(material2, targetScene, object); + materials2.add(material2); + } + } else { + prepareMaterial(material, targetScene, object); + materials2.add(material); + } + } + }); + renderStateStack.pop(); + currentRenderState = null; + return materials2; + }; + this.compileAsync = function(scene, camera, targetScene = null) { + const materials2 = this.compile(scene, camera, targetScene); + return new Promise((resolve) => { + function checkMaterialsReady() { + materials2.forEach(function(material) { + const materialProperties = properties.get(material); + const program = materialProperties.currentProgram; + if (program.isReady()) { + materials2.delete(material); + } + }); + if (materials2.size === 0) { + resolve(scene); + return; + } + setTimeout(checkMaterialsReady, 10); + } + __name(checkMaterialsReady, "checkMaterialsReady"); + if (extensions.get("KHR_parallel_shader_compile") !== null) { + checkMaterialsReady(); + } else { + setTimeout(checkMaterialsReady, 10); + } + }); + }; + let onAnimationFrameCallback = null; + function onAnimationFrame(time) { + if (onAnimationFrameCallback) onAnimationFrameCallback(time); + } + __name(onAnimationFrame, "onAnimationFrame"); + function onXRSessionStart() { + animation.stop(); + } + __name(onXRSessionStart, "onXRSessionStart"); + function onXRSessionEnd() { + animation.start(); + } + __name(onXRSessionEnd, "onXRSessionEnd"); + const animation = new WebGLAnimation(); + animation.setAnimationLoop(onAnimationFrame); + if (typeof self !== "undefined") animation.setContext(self); + this.setAnimationLoop = function(callback) { + onAnimationFrameCallback = callback; + xr.setAnimationLoop(callback); + callback === null ? animation.stop() : animation.start(); + }; + xr.addEventListener("sessionstart", onXRSessionStart); + xr.addEventListener("sessionend", onXRSessionEnd); + this.render = function(scene, camera) { + if (camera !== void 0 && camera.isCamera !== true) { + console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera."); + return; + } + if (_isContextLost === true) return; + if (scene.matrixWorldAutoUpdate === true) scene.updateMatrixWorld(); + if (camera.parent === null && camera.matrixWorldAutoUpdate === true) camera.updateMatrixWorld(); + if (xr.enabled === true && xr.isPresenting === true) { + if (xr.cameraAutoUpdate === true) xr.updateCamera(camera); + camera = xr.getCamera(); + } + if (scene.isScene === true) scene.onBeforeRender(_this, scene, camera, _currentRenderTarget); + currentRenderState = renderStates.get(scene, renderStateStack.length); + currentRenderState.init(camera); + renderStateStack.push(currentRenderState); + _projScreenMatrix2.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse); + _frustum2.setFromProjectionMatrix(_projScreenMatrix2); + _localClippingEnabled = this.localClippingEnabled; + _clippingEnabled = clipping.init(this.clippingPlanes, _localClippingEnabled); + currentRenderList = renderLists.get(scene, renderListStack.length); + currentRenderList.init(); + renderListStack.push(currentRenderList); + if (xr.enabled === true && xr.isPresenting === true) { + const depthSensingMesh = _this.xr.getDepthSensingMesh(); + if (depthSensingMesh !== null) { + projectObject(depthSensingMesh, camera, -Infinity, _this.sortObjects); + } + } + projectObject(scene, camera, 0, _this.sortObjects); + currentRenderList.finish(); + if (_this.sortObjects === true) { + currentRenderList.sort(_opaqueSort, _transparentSort); + } + _renderBackground = xr.enabled === false || xr.isPresenting === false || xr.hasDepthSensing() === false; + if (_renderBackground) { + background.addToRenderList(currentRenderList, scene); + } + this.info.render.frame++; + if (_clippingEnabled === true) clipping.beginShadows(); + const shadowsArray = currentRenderState.state.shadowsArray; + shadowMap.render(shadowsArray, scene, camera); + if (_clippingEnabled === true) clipping.endShadows(); + if (this.info.autoReset === true) this.info.reset(); + const opaqueObjects = currentRenderList.opaque; + const transmissiveObjects = currentRenderList.transmissive; + currentRenderState.setupLights(); + if (camera.isArrayCamera) { + const cameras = camera.cameras; + if (transmissiveObjects.length > 0) { + for (let i = 0, l = cameras.length; i < l; i++) { + const camera2 = cameras[i]; + renderTransmissionPass(opaqueObjects, transmissiveObjects, scene, camera2); + } + } + if (_renderBackground) background.render(scene); + for (let i = 0, l = cameras.length; i < l; i++) { + const camera2 = cameras[i]; + renderScene(currentRenderList, scene, camera2, camera2.viewport); + } + } else { + if (transmissiveObjects.length > 0) renderTransmissionPass(opaqueObjects, transmissiveObjects, scene, camera); + if (_renderBackground) background.render(scene); + renderScene(currentRenderList, scene, camera); + } + if (_currentRenderTarget !== null) { + textures.updateMultisampleRenderTarget(_currentRenderTarget); + textures.updateRenderTargetMipmap(_currentRenderTarget); + } + if (scene.isScene === true) scene.onAfterRender(_this, scene, camera); + bindingStates.resetDefaultState(); + _currentMaterialId = -1; + _currentCamera = null; + renderStateStack.pop(); + if (renderStateStack.length > 0) { + currentRenderState = renderStateStack[renderStateStack.length - 1]; + if (_clippingEnabled === true) clipping.setGlobalState(_this.clippingPlanes, currentRenderState.state.camera); + } else { + currentRenderState = null; + } + renderListStack.pop(); + if (renderListStack.length > 0) { + currentRenderList = renderListStack[renderListStack.length - 1]; + } else { + currentRenderList = null; + } + }; + function projectObject(object, camera, groupOrder, sortObjects) { + if (object.visible === false) return; + const visible = object.layers.test(camera.layers); + if (visible) { + if (object.isGroup) { + groupOrder = object.renderOrder; + } else if (object.isLOD) { + if (object.autoUpdate === true) object.update(camera); + } else if (object.isLight) { + currentRenderState.pushLight(object); + if (object.castShadow) { + currentRenderState.pushShadow(object); + } + } else if (object.isSprite) { + if (!object.frustumCulled || _frustum2.intersectsSprite(object)) { + if (sortObjects) { + _vector4.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix2); + } + const geometry = objects.update(object); + const material = object.material; + if (material.visible) { + currentRenderList.push(object, geometry, material, groupOrder, _vector4.z, null); + } + } + } else if (object.isMesh || object.isLine || object.isPoints) { + if (!object.frustumCulled || _frustum2.intersectsObject(object)) { + const geometry = objects.update(object); + const material = object.material; + if (sortObjects) { + if (object.boundingSphere !== void 0) { + if (object.boundingSphere === null) object.computeBoundingSphere(); + _vector4.copy(object.boundingSphere.center); + } else { + if (geometry.boundingSphere === null) geometry.computeBoundingSphere(); + _vector4.copy(geometry.boundingSphere.center); + } + _vector4.applyMatrix4(object.matrixWorld).applyMatrix4(_projScreenMatrix2); + } + if (Array.isArray(material)) { + const groups = geometry.groups; + for (let i = 0, l = groups.length; i < l; i++) { + const group = groups[i]; + const groupMaterial = material[group.materialIndex]; + if (groupMaterial && groupMaterial.visible) { + currentRenderList.push(object, geometry, groupMaterial, groupOrder, _vector4.z, group); + } + } + } else if (material.visible) { + currentRenderList.push(object, geometry, material, groupOrder, _vector4.z, null); + } + } + } + } + const children = object.children; + for (let i = 0, l = children.length; i < l; i++) { + projectObject(children[i], camera, groupOrder, sortObjects); + } + } + __name(projectObject, "projectObject"); + function renderScene(currentRenderList2, scene, camera, viewport) { + const opaqueObjects = currentRenderList2.opaque; + const transmissiveObjects = currentRenderList2.transmissive; + const transparentObjects = currentRenderList2.transparent; + currentRenderState.setupLightsView(camera); + if (_clippingEnabled === true) clipping.setGlobalState(_this.clippingPlanes, camera); + if (viewport) state.viewport(_currentViewport.copy(viewport)); + if (opaqueObjects.length > 0) renderObjects(opaqueObjects, scene, camera); + if (transmissiveObjects.length > 0) renderObjects(transmissiveObjects, scene, camera); + if (transparentObjects.length > 0) renderObjects(transparentObjects, scene, camera); + state.buffers.depth.setTest(true); + state.buffers.depth.setMask(true); + state.buffers.color.setMask(true); + state.setPolygonOffset(false); + } + __name(renderScene, "renderScene"); + function renderTransmissionPass(opaqueObjects, transmissiveObjects, scene, camera) { + const overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null; + if (overrideMaterial !== null) { + return; + } + if (currentRenderState.state.transmissionRenderTarget[camera.id] === void 0) { + currentRenderState.state.transmissionRenderTarget[camera.id] = new WebGLRenderTarget(1, 1, { + generateMipmaps: true, + type: extensions.has("EXT_color_buffer_half_float") || extensions.has("EXT_color_buffer_float") ? HalfFloatType : UnsignedByteType, + minFilter: LinearMipmapLinearFilter, + samples: 4, + stencilBuffer: stencil, + resolveDepthBuffer: false, + resolveStencilBuffer: false, + colorSpace: ColorManagement.workingColorSpace + }); + } + const transmissionRenderTarget = currentRenderState.state.transmissionRenderTarget[camera.id]; + const activeViewport = camera.viewport || _currentViewport; + transmissionRenderTarget.setSize(activeViewport.z, activeViewport.w); + const currentRenderTarget = _this.getRenderTarget(); + _this.setRenderTarget(transmissionRenderTarget); + _this.getClearColor(_currentClearColor); + _currentClearAlpha = _this.getClearAlpha(); + if (_currentClearAlpha < 1) _this.setClearColor(16777215, 0.5); + _this.clear(); + if (_renderBackground) background.render(scene); + const currentToneMapping = _this.toneMapping; + _this.toneMapping = NoToneMapping; + const currentCameraViewport = camera.viewport; + if (camera.viewport !== void 0) camera.viewport = void 0; + currentRenderState.setupLightsView(camera); + if (_clippingEnabled === true) clipping.setGlobalState(_this.clippingPlanes, camera); + renderObjects(opaqueObjects, scene, camera); + textures.updateMultisampleRenderTarget(transmissionRenderTarget); + textures.updateRenderTargetMipmap(transmissionRenderTarget); + if (extensions.has("WEBGL_multisampled_render_to_texture") === false) { + let renderTargetNeedsUpdate = false; + for (let i = 0, l = transmissiveObjects.length; i < l; i++) { + const renderItem = transmissiveObjects[i]; + const object = renderItem.object; + const geometry = renderItem.geometry; + const material = renderItem.material; + const group = renderItem.group; + if (material.side === DoubleSide && object.layers.test(camera.layers)) { + const currentSide = material.side; + material.side = BackSide; + material.needsUpdate = true; + renderObject(object, scene, camera, geometry, material, group); + material.side = currentSide; + material.needsUpdate = true; + renderTargetNeedsUpdate = true; + } + } + if (renderTargetNeedsUpdate === true) { + textures.updateMultisampleRenderTarget(transmissionRenderTarget); + textures.updateRenderTargetMipmap(transmissionRenderTarget); + } + } + _this.setRenderTarget(currentRenderTarget); + _this.setClearColor(_currentClearColor, _currentClearAlpha); + if (currentCameraViewport !== void 0) camera.viewport = currentCameraViewport; + _this.toneMapping = currentToneMapping; + } + __name(renderTransmissionPass, "renderTransmissionPass"); + function renderObjects(renderList, scene, camera) { + const overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null; + for (let i = 0, l = renderList.length; i < l; i++) { + const renderItem = renderList[i]; + const object = renderItem.object; + const geometry = renderItem.geometry; + const material = overrideMaterial === null ? renderItem.material : overrideMaterial; + const group = renderItem.group; + if (object.layers.test(camera.layers)) { + renderObject(object, scene, camera, geometry, material, group); + } + } + } + __name(renderObjects, "renderObjects"); + function renderObject(object, scene, camera, geometry, material, group) { + object.onBeforeRender(_this, scene, camera, geometry, material, group); + object.modelViewMatrix.multiplyMatrices(camera.matrixWorldInverse, object.matrixWorld); + object.normalMatrix.getNormalMatrix(object.modelViewMatrix); + material.onBeforeRender(_this, scene, camera, geometry, object, group); + if (material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false) { + material.side = BackSide; + material.needsUpdate = true; + _this.renderBufferDirect(camera, scene, geometry, material, object, group); + material.side = FrontSide; + material.needsUpdate = true; + _this.renderBufferDirect(camera, scene, geometry, material, object, group); + material.side = DoubleSide; + } else { + _this.renderBufferDirect(camera, scene, geometry, material, object, group); + } + object.onAfterRender(_this, scene, camera, geometry, material, group); + } + __name(renderObject, "renderObject"); + function getProgram(material, scene, object) { + if (scene.isScene !== true) scene = _emptyScene; + const materialProperties = properties.get(material); + const lights = currentRenderState.state.lights; + const shadowsArray = currentRenderState.state.shadowsArray; + const lightsStateVersion = lights.state.version; + const parameters2 = programCache.getParameters(material, lights.state, shadowsArray, scene, object); + const programCacheKey = programCache.getProgramCacheKey(parameters2); + let programs = materialProperties.programs; + materialProperties.environment = material.isMeshStandardMaterial ? scene.environment : null; + materialProperties.fog = scene.fog; + materialProperties.envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || materialProperties.environment); + materialProperties.envMapRotation = materialProperties.environment !== null && material.envMap === null ? scene.environmentRotation : material.envMapRotation; + if (programs === void 0) { + material.addEventListener("dispose", onMaterialDispose); + programs = /* @__PURE__ */ new Map(); + materialProperties.programs = programs; + } + let program = programs.get(programCacheKey); + if (program !== void 0) { + if (materialProperties.currentProgram === program && materialProperties.lightsStateVersion === lightsStateVersion) { + updateCommonMaterialProperties(material, parameters2); + return program; + } + } else { + parameters2.uniforms = programCache.getUniforms(material); + material.onBeforeCompile(parameters2, _this); + program = programCache.acquireProgram(parameters2, programCacheKey); + programs.set(programCacheKey, program); + materialProperties.uniforms = parameters2.uniforms; + } + const uniforms = materialProperties.uniforms; + if (!material.isShaderMaterial && !material.isRawShaderMaterial || material.clipping === true) { + uniforms.clippingPlanes = clipping.uniform; + } + updateCommonMaterialProperties(material, parameters2); + materialProperties.needsLights = materialNeedsLights(material); + materialProperties.lightsStateVersion = lightsStateVersion; + if (materialProperties.needsLights) { + uniforms.ambientLightColor.value = lights.state.ambient; + uniforms.lightProbe.value = lights.state.probe; + uniforms.directionalLights.value = lights.state.directional; + uniforms.directionalLightShadows.value = lights.state.directionalShadow; + uniforms.spotLights.value = lights.state.spot; + uniforms.spotLightShadows.value = lights.state.spotShadow; + uniforms.rectAreaLights.value = lights.state.rectArea; + uniforms.ltc_1.value = lights.state.rectAreaLTC1; + uniforms.ltc_2.value = lights.state.rectAreaLTC2; + uniforms.pointLights.value = lights.state.point; + uniforms.pointLightShadows.value = lights.state.pointShadow; + uniforms.hemisphereLights.value = lights.state.hemi; + uniforms.directionalShadowMap.value = lights.state.directionalShadowMap; + uniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix; + uniforms.spotShadowMap.value = lights.state.spotShadowMap; + uniforms.spotLightMatrix.value = lights.state.spotLightMatrix; + uniforms.spotLightMap.value = lights.state.spotLightMap; + uniforms.pointShadowMap.value = lights.state.pointShadowMap; + uniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix; + } + materialProperties.currentProgram = program; + materialProperties.uniformsList = null; + return program; + } + __name(getProgram, "getProgram"); + function getUniformList(materialProperties) { + if (materialProperties.uniformsList === null) { + const progUniforms = materialProperties.currentProgram.getUniforms(); + materialProperties.uniformsList = WebGLUniforms.seqWithValue(progUniforms.seq, materialProperties.uniforms); + } + return materialProperties.uniformsList; + } + __name(getUniformList, "getUniformList"); + function updateCommonMaterialProperties(material, parameters2) { + const materialProperties = properties.get(material); + materialProperties.outputColorSpace = parameters2.outputColorSpace; + materialProperties.batching = parameters2.batching; + materialProperties.batchingColor = parameters2.batchingColor; + materialProperties.instancing = parameters2.instancing; + materialProperties.instancingColor = parameters2.instancingColor; + materialProperties.instancingMorph = parameters2.instancingMorph; + materialProperties.skinning = parameters2.skinning; + materialProperties.morphTargets = parameters2.morphTargets; + materialProperties.morphNormals = parameters2.morphNormals; + materialProperties.morphColors = parameters2.morphColors; + materialProperties.morphTargetsCount = parameters2.morphTargetsCount; + materialProperties.numClippingPlanes = parameters2.numClippingPlanes; + materialProperties.numIntersection = parameters2.numClipIntersection; + materialProperties.vertexAlphas = parameters2.vertexAlphas; + materialProperties.vertexTangents = parameters2.vertexTangents; + materialProperties.toneMapping = parameters2.toneMapping; + } + __name(updateCommonMaterialProperties, "updateCommonMaterialProperties"); + function setProgram(camera, scene, geometry, material, object) { + if (scene.isScene !== true) scene = _emptyScene; + textures.resetTextureUnits(); + const fog = scene.fog; + const environment = material.isMeshStandardMaterial ? scene.environment : null; + const colorSpace = _currentRenderTarget === null ? _this.outputColorSpace : _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace; + const envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || environment); + const vertexAlphas = material.vertexColors === true && !!geometry.attributes.color && geometry.attributes.color.itemSize === 4; + const vertexTangents = !!geometry.attributes.tangent && (!!material.normalMap || material.anisotropy > 0); + const morphTargets = !!geometry.morphAttributes.position; + const morphNormals = !!geometry.morphAttributes.normal; + const morphColors = !!geometry.morphAttributes.color; + let toneMapping = NoToneMapping; + if (material.toneMapped) { + if (_currentRenderTarget === null || _currentRenderTarget.isXRRenderTarget === true) { + toneMapping = _this.toneMapping; + } + } + const morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color; + const morphTargetsCount = morphAttribute !== void 0 ? morphAttribute.length : 0; + const materialProperties = properties.get(material); + const lights = currentRenderState.state.lights; + if (_clippingEnabled === true) { + if (_localClippingEnabled === true || camera !== _currentCamera) { + const useCache = camera === _currentCamera && material.id === _currentMaterialId; + clipping.setState(material, camera, useCache); + } + } + let needsProgramChange = false; + if (material.version === materialProperties.__version) { + if (materialProperties.needsLights && materialProperties.lightsStateVersion !== lights.state.version) { + needsProgramChange = true; + } else if (materialProperties.outputColorSpace !== colorSpace) { + needsProgramChange = true; + } else if (object.isBatchedMesh && materialProperties.batching === false) { + needsProgramChange = true; + } else if (!object.isBatchedMesh && materialProperties.batching === true) { + needsProgramChange = true; + } else if (object.isBatchedMesh && materialProperties.batchingColor === true && object.colorTexture === null) { + needsProgramChange = true; + } else if (object.isBatchedMesh && materialProperties.batchingColor === false && object.colorTexture !== null) { + needsProgramChange = true; + } else if (object.isInstancedMesh && materialProperties.instancing === false) { + needsProgramChange = true; + } else if (!object.isInstancedMesh && materialProperties.instancing === true) { + needsProgramChange = true; + } else if (object.isSkinnedMesh && materialProperties.skinning === false) { + needsProgramChange = true; + } else if (!object.isSkinnedMesh && materialProperties.skinning === true) { + needsProgramChange = true; + } else if (object.isInstancedMesh && materialProperties.instancingColor === true && object.instanceColor === null) { + needsProgramChange = true; + } else if (object.isInstancedMesh && materialProperties.instancingColor === false && object.instanceColor !== null) { + needsProgramChange = true; + } else if (object.isInstancedMesh && materialProperties.instancingMorph === true && object.morphTexture === null) { + needsProgramChange = true; + } else if (object.isInstancedMesh && materialProperties.instancingMorph === false && object.morphTexture !== null) { + needsProgramChange = true; + } else if (materialProperties.envMap !== envMap) { + needsProgramChange = true; + } else if (material.fog === true && materialProperties.fog !== fog) { + needsProgramChange = true; + } else if (materialProperties.numClippingPlanes !== void 0 && (materialProperties.numClippingPlanes !== clipping.numPlanes || materialProperties.numIntersection !== clipping.numIntersection)) { + needsProgramChange = true; + } else if (materialProperties.vertexAlphas !== vertexAlphas) { + needsProgramChange = true; + } else if (materialProperties.vertexTangents !== vertexTangents) { + needsProgramChange = true; + } else if (materialProperties.morphTargets !== morphTargets) { + needsProgramChange = true; + } else if (materialProperties.morphNormals !== morphNormals) { + needsProgramChange = true; + } else if (materialProperties.morphColors !== morphColors) { + needsProgramChange = true; + } else if (materialProperties.toneMapping !== toneMapping) { + needsProgramChange = true; + } else if (materialProperties.morphTargetsCount !== morphTargetsCount) { + needsProgramChange = true; + } + } else { + needsProgramChange = true; + materialProperties.__version = material.version; + } + let program = materialProperties.currentProgram; + if (needsProgramChange === true) { + program = getProgram(material, scene, object); + } + let refreshProgram = false; + let refreshMaterial = false; + let refreshLights = false; + const p_uniforms = program.getUniforms(), m_uniforms = materialProperties.uniforms; + if (state.useProgram(program.program)) { + refreshProgram = true; + refreshMaterial = true; + refreshLights = true; + } + if (material.id !== _currentMaterialId) { + _currentMaterialId = material.id; + refreshMaterial = true; + } + if (refreshProgram || _currentCamera !== camera) { + const reverseDepthBuffer2 = state.buffers.depth.getReversed(); + if (reverseDepthBuffer2) { + _currentProjectionMatrix.copy(camera.projectionMatrix); + toNormalizedProjectionMatrix(_currentProjectionMatrix); + toReversedProjectionMatrix(_currentProjectionMatrix); + p_uniforms.setValue(_gl, "projectionMatrix", _currentProjectionMatrix); + } else { + p_uniforms.setValue(_gl, "projectionMatrix", camera.projectionMatrix); + } + p_uniforms.setValue(_gl, "viewMatrix", camera.matrixWorldInverse); + const uCamPos = p_uniforms.map.cameraPosition; + if (uCamPos !== void 0) { + uCamPos.setValue(_gl, _vector32.setFromMatrixPosition(camera.matrixWorld)); + } + if (capabilities.logarithmicDepthBuffer) { + p_uniforms.setValue( + _gl, + "logDepthBufFC", + 2 / (Math.log(camera.far + 1) / Math.LN2) + ); + } + if (material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial) { + p_uniforms.setValue(_gl, "isOrthographic", camera.isOrthographicCamera === true); + } + if (_currentCamera !== camera) { + _currentCamera = camera; + refreshMaterial = true; + refreshLights = true; + } + } + if (object.isSkinnedMesh) { + p_uniforms.setOptional(_gl, object, "bindMatrix"); + p_uniforms.setOptional(_gl, object, "bindMatrixInverse"); + const skeleton = object.skeleton; + if (skeleton) { + if (skeleton.boneTexture === null) skeleton.computeBoneTexture(); + p_uniforms.setValue(_gl, "boneTexture", skeleton.boneTexture, textures); + } + } + if (object.isBatchedMesh) { + p_uniforms.setOptional(_gl, object, "batchingTexture"); + p_uniforms.setValue(_gl, "batchingTexture", object._matricesTexture, textures); + p_uniforms.setOptional(_gl, object, "batchingIdTexture"); + p_uniforms.setValue(_gl, "batchingIdTexture", object._indirectTexture, textures); + p_uniforms.setOptional(_gl, object, "batchingColorTexture"); + if (object._colorsTexture !== null) { + p_uniforms.setValue(_gl, "batchingColorTexture", object._colorsTexture, textures); + } + } + const morphAttributes = geometry.morphAttributes; + if (morphAttributes.position !== void 0 || morphAttributes.normal !== void 0 || morphAttributes.color !== void 0) { + morphtargets.update(object, geometry, program); + } + if (refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow) { + materialProperties.receiveShadow = object.receiveShadow; + p_uniforms.setValue(_gl, "receiveShadow", object.receiveShadow); + } + if (material.isMeshGouraudMaterial && material.envMap !== null) { + m_uniforms.envMap.value = envMap; + m_uniforms.flipEnvMap.value = envMap.isCubeTexture && envMap.isRenderTargetTexture === false ? -1 : 1; + } + if (material.isMeshStandardMaterial && material.envMap === null && scene.environment !== null) { + m_uniforms.envMapIntensity.value = scene.environmentIntensity; + } + if (refreshMaterial) { + p_uniforms.setValue(_gl, "toneMappingExposure", _this.toneMappingExposure); + if (materialProperties.needsLights) { + markUniformsLightsNeedsUpdate(m_uniforms, refreshLights); + } + if (fog && material.fog === true) { + materials.refreshFogUniforms(m_uniforms, fog); + } + materials.refreshMaterialUniforms(m_uniforms, material, _pixelRatio, _height, currentRenderState.state.transmissionRenderTarget[camera.id]); + WebGLUniforms.upload(_gl, getUniformList(materialProperties), m_uniforms, textures); + } + if (material.isShaderMaterial && material.uniformsNeedUpdate === true) { + WebGLUniforms.upload(_gl, getUniformList(materialProperties), m_uniforms, textures); + material.uniformsNeedUpdate = false; + } + if (material.isSpriteMaterial) { + p_uniforms.setValue(_gl, "center", object.center); + } + p_uniforms.setValue(_gl, "modelViewMatrix", object.modelViewMatrix); + p_uniforms.setValue(_gl, "normalMatrix", object.normalMatrix); + p_uniforms.setValue(_gl, "modelMatrix", object.matrixWorld); + if (material.isShaderMaterial || material.isRawShaderMaterial) { + const groups = material.uniformsGroups; + for (let i = 0, l = groups.length; i < l; i++) { + const group = groups[i]; + uniformsGroups.update(group, program); + uniformsGroups.bind(group, program); + } + } + return program; + } + __name(setProgram, "setProgram"); + function markUniformsLightsNeedsUpdate(uniforms, value) { + uniforms.ambientLightColor.needsUpdate = value; + uniforms.lightProbe.needsUpdate = value; + uniforms.directionalLights.needsUpdate = value; + uniforms.directionalLightShadows.needsUpdate = value; + uniforms.pointLights.needsUpdate = value; + uniforms.pointLightShadows.needsUpdate = value; + uniforms.spotLights.needsUpdate = value; + uniforms.spotLightShadows.needsUpdate = value; + uniforms.rectAreaLights.needsUpdate = value; + uniforms.hemisphereLights.needsUpdate = value; + } + __name(markUniformsLightsNeedsUpdate, "markUniformsLightsNeedsUpdate"); + function materialNeedsLights(material) { + return material.isMeshLambertMaterial || material.isMeshToonMaterial || material.isMeshPhongMaterial || material.isMeshStandardMaterial || material.isShadowMaterial || material.isShaderMaterial && material.lights === true; + } + __name(materialNeedsLights, "materialNeedsLights"); + this.getActiveCubeFace = function() { + return _currentActiveCubeFace; + }; + this.getActiveMipmapLevel = function() { + return _currentActiveMipmapLevel; + }; + this.getRenderTarget = function() { + return _currentRenderTarget; + }; + this.setRenderTargetTextures = function(renderTarget, colorTexture, depthTexture) { + properties.get(renderTarget.texture).__webglTexture = colorTexture; + properties.get(renderTarget.depthTexture).__webglTexture = depthTexture; + const renderTargetProperties = properties.get(renderTarget); + renderTargetProperties.__hasExternalTextures = true; + renderTargetProperties.__autoAllocateDepthBuffer = depthTexture === void 0; + if (!renderTargetProperties.__autoAllocateDepthBuffer) { + if (extensions.has("WEBGL_multisampled_render_to_texture") === true) { + console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"); + renderTargetProperties.__useRenderToTexture = false; + } + } + }; + this.setRenderTargetFramebuffer = function(renderTarget, defaultFramebuffer) { + const renderTargetProperties = properties.get(renderTarget); + renderTargetProperties.__webglFramebuffer = defaultFramebuffer; + renderTargetProperties.__useDefaultFramebuffer = defaultFramebuffer === void 0; + }; + this.setRenderTarget = function(renderTarget, activeCubeFace = 0, activeMipmapLevel = 0) { + _currentRenderTarget = renderTarget; + _currentActiveCubeFace = activeCubeFace; + _currentActiveMipmapLevel = activeMipmapLevel; + let useDefaultFramebuffer = true; + let framebuffer = null; + let isCube = false; + let isRenderTarget3D = false; + if (renderTarget) { + const renderTargetProperties = properties.get(renderTarget); + if (renderTargetProperties.__useDefaultFramebuffer !== void 0) { + state.bindFramebuffer(_gl.FRAMEBUFFER, null); + useDefaultFramebuffer = false; + } else if (renderTargetProperties.__webglFramebuffer === void 0) { + textures.setupRenderTarget(renderTarget); + } else if (renderTargetProperties.__hasExternalTextures) { + textures.rebindTextures(renderTarget, properties.get(renderTarget.texture).__webglTexture, properties.get(renderTarget.depthTexture).__webglTexture); + } else if (renderTarget.depthBuffer) { + const depthTexture = renderTarget.depthTexture; + if (renderTargetProperties.__boundDepthTexture !== depthTexture) { + if (depthTexture !== null && properties.has(depthTexture) && (renderTarget.width !== depthTexture.image.width || renderTarget.height !== depthTexture.image.height)) { + throw new Error("WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size."); + } + textures.setupDepthRenderbuffer(renderTarget); + } + } + const texture = renderTarget.texture; + if (texture.isData3DTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture) { + isRenderTarget3D = true; + } + const __webglFramebuffer = properties.get(renderTarget).__webglFramebuffer; + if (renderTarget.isWebGLCubeRenderTarget) { + if (Array.isArray(__webglFramebuffer[activeCubeFace])) { + framebuffer = __webglFramebuffer[activeCubeFace][activeMipmapLevel]; + } else { + framebuffer = __webglFramebuffer[activeCubeFace]; + } + isCube = true; + } else if (renderTarget.samples > 0 && textures.useMultisampledRTT(renderTarget) === false) { + framebuffer = properties.get(renderTarget).__webglMultisampledFramebuffer; + } else { + if (Array.isArray(__webglFramebuffer)) { + framebuffer = __webglFramebuffer[activeMipmapLevel]; + } else { + framebuffer = __webglFramebuffer; + } + } + _currentViewport.copy(renderTarget.viewport); + _currentScissor.copy(renderTarget.scissor); + _currentScissorTest = renderTarget.scissorTest; + } else { + _currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor(); + _currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor(); + _currentScissorTest = _scissorTest; + } + const framebufferBound = state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer); + if (framebufferBound && useDefaultFramebuffer) { + state.drawBuffers(renderTarget, framebuffer); + } + state.viewport(_currentViewport); + state.scissor(_currentScissor); + state.setScissorTest(_currentScissorTest); + if (isCube) { + const textureProperties = properties.get(renderTarget.texture); + _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + activeCubeFace, textureProperties.__webglTexture, activeMipmapLevel); + } else if (isRenderTarget3D) { + const textureProperties = properties.get(renderTarget.texture); + const layer = activeCubeFace || 0; + _gl.framebufferTextureLayer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, textureProperties.__webglTexture, activeMipmapLevel || 0, layer); + } + _currentMaterialId = -1; + }; + this.readRenderTargetPixels = function(renderTarget, x, y, width, height, buffer, activeCubeFaceIndex) { + if (!(renderTarget && renderTarget.isWebGLRenderTarget)) { + console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget."); + return; + } + let framebuffer = properties.get(renderTarget).__webglFramebuffer; + if (renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== void 0) { + framebuffer = framebuffer[activeCubeFaceIndex]; + } + if (framebuffer) { + state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer); + try { + const texture = renderTarget.texture; + const textureFormat = texture.format; + const textureType = texture.type; + if (!capabilities.textureFormatReadable(textureFormat)) { + console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."); + return; + } + if (!capabilities.textureTypeReadable(textureType)) { + console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type."); + return; + } + if (x >= 0 && x <= renderTarget.width - width && (y >= 0 && y <= renderTarget.height - height)) { + _gl.readPixels(x, y, width, height, utils.convert(textureFormat), utils.convert(textureType), buffer); + } + } finally { + const framebuffer2 = _currentRenderTarget !== null ? properties.get(_currentRenderTarget).__webglFramebuffer : null; + state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer2); + } + } + }; + this.readRenderTargetPixelsAsync = async function(renderTarget, x, y, width, height, buffer, activeCubeFaceIndex) { + if (!(renderTarget && renderTarget.isWebGLRenderTarget)) { + throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget."); + } + let framebuffer = properties.get(renderTarget).__webglFramebuffer; + if (renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== void 0) { + framebuffer = framebuffer[activeCubeFaceIndex]; + } + if (framebuffer) { + const texture = renderTarget.texture; + const textureFormat = texture.format; + const textureType = texture.type; + if (!capabilities.textureFormatReadable(textureFormat)) { + throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format."); + } + if (!capabilities.textureTypeReadable(textureType)) { + throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type."); + } + if (x >= 0 && x <= renderTarget.width - width && (y >= 0 && y <= renderTarget.height - height)) { + state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer); + const glBuffer = _gl.createBuffer(); + _gl.bindBuffer(_gl.PIXEL_PACK_BUFFER, glBuffer); + _gl.bufferData(_gl.PIXEL_PACK_BUFFER, buffer.byteLength, _gl.STREAM_READ); + _gl.readPixels(x, y, width, height, utils.convert(textureFormat), utils.convert(textureType), 0); + const currFramebuffer = _currentRenderTarget !== null ? properties.get(_currentRenderTarget).__webglFramebuffer : null; + state.bindFramebuffer(_gl.FRAMEBUFFER, currFramebuffer); + const sync = _gl.fenceSync(_gl.SYNC_GPU_COMMANDS_COMPLETE, 0); + _gl.flush(); + await probeAsync(_gl, sync, 4); + _gl.bindBuffer(_gl.PIXEL_PACK_BUFFER, glBuffer); + _gl.getBufferSubData(_gl.PIXEL_PACK_BUFFER, 0, buffer); + _gl.deleteBuffer(glBuffer); + _gl.deleteSync(sync); + return buffer; + } else { + throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range."); + } + } + }; + this.copyFramebufferToTexture = function(texture, position = null, level = 0) { + if (texture.isTexture !== true) { + warnOnce("WebGLRenderer: copyFramebufferToTexture function signature has changed."); + position = arguments[0] || null; + texture = arguments[1]; + } + const levelScale = Math.pow(2, -level); + const width = Math.floor(texture.image.width * levelScale); + const height = Math.floor(texture.image.height * levelScale); + const x = position !== null ? position.x : 0; + const y = position !== null ? position.y : 0; + textures.setTexture2D(texture, 0); + _gl.copyTexSubImage2D(_gl.TEXTURE_2D, level, 0, 0, x, y, width, height); + state.unbindTexture(); + }; + this.copyTextureToTexture = function(srcTexture, dstTexture, srcRegion = null, dstPosition = null, level = 0) { + if (srcTexture.isTexture !== true) { + warnOnce("WebGLRenderer: copyTextureToTexture function signature has changed."); + dstPosition = arguments[0] || null; + srcTexture = arguments[1]; + dstTexture = arguments[2]; + level = arguments[3] || 0; + srcRegion = null; + } + let width, height, depth2, minX, minY, minZ; + let dstX, dstY, dstZ; + const image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[level] : srcTexture.image; + if (srcRegion !== null) { + width = srcRegion.max.x - srcRegion.min.x; + height = srcRegion.max.y - srcRegion.min.y; + depth2 = srcRegion.isBox3 ? srcRegion.max.z - srcRegion.min.z : 1; + minX = srcRegion.min.x; + minY = srcRegion.min.y; + minZ = srcRegion.isBox3 ? srcRegion.min.z : 0; + } else { + width = image.width; + height = image.height; + depth2 = image.depth || 1; + minX = 0; + minY = 0; + minZ = 0; + } + if (dstPosition !== null) { + dstX = dstPosition.x; + dstY = dstPosition.y; + dstZ = dstPosition.z; + } else { + dstX = 0; + dstY = 0; + dstZ = 0; + } + const glFormat = utils.convert(dstTexture.format); + const glType = utils.convert(dstTexture.type); + let glTarget; + if (dstTexture.isData3DTexture) { + textures.setTexture3D(dstTexture, 0); + glTarget = _gl.TEXTURE_3D; + } else if (dstTexture.isDataArrayTexture || dstTexture.isCompressedArrayTexture) { + textures.setTexture2DArray(dstTexture, 0); + glTarget = _gl.TEXTURE_2D_ARRAY; + } else { + textures.setTexture2D(dstTexture, 0); + glTarget = _gl.TEXTURE_2D; + } + _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY); + _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha); + _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment); + const currentUnpackRowLen = _gl.getParameter(_gl.UNPACK_ROW_LENGTH); + const currentUnpackImageHeight = _gl.getParameter(_gl.UNPACK_IMAGE_HEIGHT); + const currentUnpackSkipPixels = _gl.getParameter(_gl.UNPACK_SKIP_PIXELS); + const currentUnpackSkipRows = _gl.getParameter(_gl.UNPACK_SKIP_ROWS); + const currentUnpackSkipImages = _gl.getParameter(_gl.UNPACK_SKIP_IMAGES); + _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, image.width); + _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, image.height); + _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, minX); + _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, minY); + _gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES, minZ); + const isSrc3D = srcTexture.isDataArrayTexture || srcTexture.isData3DTexture; + const isDst3D = dstTexture.isDataArrayTexture || dstTexture.isData3DTexture; + if (srcTexture.isRenderTargetTexture || srcTexture.isDepthTexture) { + const srcTextureProperties = properties.get(srcTexture); + const dstTextureProperties = properties.get(dstTexture); + const srcRenderTargetProperties = properties.get(srcTextureProperties.__renderTarget); + const dstRenderTargetProperties = properties.get(dstTextureProperties.__renderTarget); + state.bindFramebuffer(_gl.READ_FRAMEBUFFER, srcRenderTargetProperties.__webglFramebuffer); + state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, dstRenderTargetProperties.__webglFramebuffer); + for (let i = 0; i < depth2; i++) { + if (isSrc3D) { + _gl.framebufferTextureLayer(_gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, properties.get(srcTexture).__webglTexture, level, minZ + i); + } + if (srcTexture.isDepthTexture) { + if (isDst3D) { + _gl.framebufferTextureLayer(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, properties.get(dstTexture).__webglTexture, level, dstZ + i); + } + _gl.blitFramebuffer(minX, minY, width, height, dstX, dstY, width, height, _gl.DEPTH_BUFFER_BIT, _gl.NEAREST); + } else if (isDst3D) { + _gl.copyTexSubImage3D(glTarget, level, dstX, dstY, dstZ + i, minX, minY, width, height); + } else { + _gl.copyTexSubImage2D(glTarget, level, dstX, dstY, dstZ + i, minX, minY, width, height); + } + } + state.bindFramebuffer(_gl.READ_FRAMEBUFFER, null); + state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, null); + } else { + if (isDst3D) { + if (srcTexture.isDataTexture || srcTexture.isData3DTexture) { + _gl.texSubImage3D(glTarget, level, dstX, dstY, dstZ, width, height, depth2, glFormat, glType, image.data); + } else if (dstTexture.isCompressedArrayTexture) { + _gl.compressedTexSubImage3D(glTarget, level, dstX, dstY, dstZ, width, height, depth2, glFormat, image.data); + } else { + _gl.texSubImage3D(glTarget, level, dstX, dstY, dstZ, width, height, depth2, glFormat, glType, image); + } + } else { + if (srcTexture.isDataTexture) { + _gl.texSubImage2D(_gl.TEXTURE_2D, level, dstX, dstY, width, height, glFormat, glType, image.data); + } else if (srcTexture.isCompressedTexture) { + _gl.compressedTexSubImage2D(_gl.TEXTURE_2D, level, dstX, dstY, image.width, image.height, glFormat, image.data); + } else { + _gl.texSubImage2D(_gl.TEXTURE_2D, level, dstX, dstY, width, height, glFormat, glType, image); + } + } + } + _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, currentUnpackRowLen); + _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, currentUnpackImageHeight); + _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, currentUnpackSkipPixels); + _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, currentUnpackSkipRows); + _gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES, currentUnpackSkipImages); + if (level === 0 && dstTexture.generateMipmaps) { + _gl.generateMipmap(glTarget); + } + state.unbindTexture(); + }; + this.copyTextureToTexture3D = function(srcTexture, dstTexture, srcRegion = null, dstPosition = null, level = 0) { + if (srcTexture.isTexture !== true) { + warnOnce("WebGLRenderer: copyTextureToTexture3D function signature has changed."); + srcRegion = arguments[0] || null; + dstPosition = arguments[1] || null; + srcTexture = arguments[2]; + dstTexture = arguments[3]; + level = arguments[4] || 0; + } + warnOnce('WebGLRenderer: copyTextureToTexture3D function has been deprecated. Use "copyTextureToTexture" instead.'); + return this.copyTextureToTexture(srcTexture, dstTexture, srcRegion, dstPosition, level); + }; + this.initRenderTarget = function(target) { + if (properties.get(target).__webglFramebuffer === void 0) { + textures.setupRenderTarget(target); + } + }; + this.initTexture = function(texture) { + if (texture.isCubeTexture) { + textures.setTextureCube(texture, 0); + } else if (texture.isData3DTexture) { + textures.setTexture3D(texture, 0); + } else if (texture.isDataArrayTexture || texture.isCompressedArrayTexture) { + textures.setTexture2DArray(texture, 0); + } else { + textures.setTexture2D(texture, 0); + } + state.unbindTexture(); + }; + this.resetState = function() { + _currentActiveCubeFace = 0; + _currentActiveMipmapLevel = 0; + _currentRenderTarget = null; + state.reset(); + bindingStates.reset(); + }; + if (typeof __THREE_DEVTOOLS__ !== "undefined") { + __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe", { detail: this })); + } + } + get coordinateSystem() { + return WebGLCoordinateSystem; + } + get outputColorSpace() { + return this._outputColorSpace; + } + set outputColorSpace(colorSpace) { + this._outputColorSpace = colorSpace; + const gl = this.getContext(); + gl.drawingBufferColorspace = ColorManagement._getDrawingBufferColorSpace(colorSpace); + gl.unpackColorSpace = ColorManagement._getUnpackColorSpace(); + } +} +class FogExp2 { + static { + __name(this, "FogExp2"); + } + constructor(color, density = 25e-5) { + this.isFogExp2 = true; + this.name = ""; + this.color = new Color(color); + this.density = density; + } + clone() { + return new FogExp2(this.color, this.density); + } + toJSON() { + return { + type: "FogExp2", + name: this.name, + color: this.color.getHex(), + density: this.density + }; + } +} +class Fog { + static { + __name(this, "Fog"); + } + constructor(color, near = 1, far = 1e3) { + this.isFog = true; + this.name = ""; + this.color = new Color(color); + this.near = near; + this.far = far; + } + clone() { + return new Fog(this.color, this.near, this.far); + } + toJSON() { + return { + type: "Fog", + name: this.name, + color: this.color.getHex(), + near: this.near, + far: this.far + }; + } +} +class Scene extends Object3D { + static { + __name(this, "Scene"); + } + constructor() { + super(); + this.isScene = true; + this.type = "Scene"; + this.background = null; + this.environment = null; + this.fog = null; + this.backgroundBlurriness = 0; + this.backgroundIntensity = 1; + this.backgroundRotation = new Euler(); + this.environmentIntensity = 1; + this.environmentRotation = new Euler(); + this.overrideMaterial = null; + if (typeof __THREE_DEVTOOLS__ !== "undefined") { + __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe", { detail: this })); + } + } + copy(source, recursive) { + super.copy(source, recursive); + if (source.background !== null) this.background = source.background.clone(); + if (source.environment !== null) this.environment = source.environment.clone(); + if (source.fog !== null) this.fog = source.fog.clone(); + this.backgroundBlurriness = source.backgroundBlurriness; + this.backgroundIntensity = source.backgroundIntensity; + this.backgroundRotation.copy(source.backgroundRotation); + this.environmentIntensity = source.environmentIntensity; + this.environmentRotation.copy(source.environmentRotation); + if (source.overrideMaterial !== null) this.overrideMaterial = source.overrideMaterial.clone(); + this.matrixAutoUpdate = source.matrixAutoUpdate; + return this; + } + toJSON(meta) { + const data = super.toJSON(meta); + if (this.fog !== null) data.object.fog = this.fog.toJSON(); + if (this.backgroundBlurriness > 0) data.object.backgroundBlurriness = this.backgroundBlurriness; + if (this.backgroundIntensity !== 1) data.object.backgroundIntensity = this.backgroundIntensity; + data.object.backgroundRotation = this.backgroundRotation.toArray(); + if (this.environmentIntensity !== 1) data.object.environmentIntensity = this.environmentIntensity; + data.object.environmentRotation = this.environmentRotation.toArray(); + return data; + } +} +class InterleavedBuffer { + static { + __name(this, "InterleavedBuffer"); + } + constructor(array, stride) { + this.isInterleavedBuffer = true; + this.array = array; + this.stride = stride; + this.count = array !== void 0 ? array.length / stride : 0; + this.usage = StaticDrawUsage; + this.updateRanges = []; + this.version = 0; + this.uuid = generateUUID(); + } + onUploadCallback() { + } + set needsUpdate(value) { + if (value === true) this.version++; + } + setUsage(value) { + this.usage = value; + return this; + } + addUpdateRange(start, count) { + this.updateRanges.push({ start, count }); + } + clearUpdateRanges() { + this.updateRanges.length = 0; + } + copy(source) { + this.array = new source.array.constructor(source.array); + this.count = source.count; + this.stride = source.stride; + this.usage = source.usage; + return this; + } + copyAt(index1, attribute, index2) { + index1 *= this.stride; + index2 *= attribute.stride; + for (let i = 0, l = this.stride; i < l; i++) { + this.array[index1 + i] = attribute.array[index2 + i]; + } + return this; + } + set(value, offset = 0) { + this.array.set(value, offset); + return this; + } + clone(data) { + if (data.arrayBuffers === void 0) { + data.arrayBuffers = {}; + } + if (this.array.buffer._uuid === void 0) { + this.array.buffer._uuid = generateUUID(); + } + if (data.arrayBuffers[this.array.buffer._uuid] === void 0) { + data.arrayBuffers[this.array.buffer._uuid] = this.array.slice(0).buffer; + } + const array = new this.array.constructor(data.arrayBuffers[this.array.buffer._uuid]); + const ib = new this.constructor(array, this.stride); + ib.setUsage(this.usage); + return ib; + } + onUpload(callback) { + this.onUploadCallback = callback; + return this; + } + toJSON(data) { + if (data.arrayBuffers === void 0) { + data.arrayBuffers = {}; + } + if (this.array.buffer._uuid === void 0) { + this.array.buffer._uuid = generateUUID(); + } + if (data.arrayBuffers[this.array.buffer._uuid] === void 0) { + data.arrayBuffers[this.array.buffer._uuid] = Array.from(new Uint32Array(this.array.buffer)); + } + return { + uuid: this.uuid, + buffer: this.array.buffer._uuid, + type: this.array.constructor.name, + stride: this.stride + }; + } +} +const _vector$6 = /* @__PURE__ */ new Vector3(); +class InterleavedBufferAttribute { + static { + __name(this, "InterleavedBufferAttribute"); + } + constructor(interleavedBuffer, itemSize, offset, normalized = false) { + this.isInterleavedBufferAttribute = true; + this.name = ""; + this.data = interleavedBuffer; + this.itemSize = itemSize; + this.offset = offset; + this.normalized = normalized; + } + get count() { + return this.data.count; + } + get array() { + return this.data.array; + } + set needsUpdate(value) { + this.data.needsUpdate = value; + } + applyMatrix4(m) { + for (let i = 0, l = this.data.count; i < l; i++) { + _vector$6.fromBufferAttribute(this, i); + _vector$6.applyMatrix4(m); + this.setXYZ(i, _vector$6.x, _vector$6.y, _vector$6.z); + } + return this; + } + applyNormalMatrix(m) { + for (let i = 0, l = this.count; i < l; i++) { + _vector$6.fromBufferAttribute(this, i); + _vector$6.applyNormalMatrix(m); + this.setXYZ(i, _vector$6.x, _vector$6.y, _vector$6.z); + } + return this; + } + transformDirection(m) { + for (let i = 0, l = this.count; i < l; i++) { + _vector$6.fromBufferAttribute(this, i); + _vector$6.transformDirection(m); + this.setXYZ(i, _vector$6.x, _vector$6.y, _vector$6.z); + } + return this; + } + getComponent(index, component) { + let value = this.array[index * this.data.stride + this.offset + component]; + if (this.normalized) value = denormalize(value, this.array); + return value; + } + setComponent(index, component, value) { + if (this.normalized) value = normalize(value, this.array); + this.data.array[index * this.data.stride + this.offset + component] = value; + return this; + } + setX(index, x) { + if (this.normalized) x = normalize(x, this.array); + this.data.array[index * this.data.stride + this.offset] = x; + return this; + } + setY(index, y) { + if (this.normalized) y = normalize(y, this.array); + this.data.array[index * this.data.stride + this.offset + 1] = y; + return this; + } + setZ(index, z) { + if (this.normalized) z = normalize(z, this.array); + this.data.array[index * this.data.stride + this.offset + 2] = z; + return this; + } + setW(index, w) { + if (this.normalized) w = normalize(w, this.array); + this.data.array[index * this.data.stride + this.offset + 3] = w; + return this; + } + getX(index) { + let x = this.data.array[index * this.data.stride + this.offset]; + if (this.normalized) x = denormalize(x, this.array); + return x; + } + getY(index) { + let y = this.data.array[index * this.data.stride + this.offset + 1]; + if (this.normalized) y = denormalize(y, this.array); + return y; + } + getZ(index) { + let z = this.data.array[index * this.data.stride + this.offset + 2]; + if (this.normalized) z = denormalize(z, this.array); + return z; + } + getW(index) { + let w = this.data.array[index * this.data.stride + this.offset + 3]; + if (this.normalized) w = denormalize(w, this.array); + return w; + } + setXY(index, x, y) { + index = index * this.data.stride + this.offset; + if (this.normalized) { + x = normalize(x, this.array); + y = normalize(y, this.array); + } + this.data.array[index + 0] = x; + this.data.array[index + 1] = y; + return this; + } + setXYZ(index, x, y, z) { + index = index * this.data.stride + this.offset; + if (this.normalized) { + x = normalize(x, this.array); + y = normalize(y, this.array); + z = normalize(z, this.array); + } + this.data.array[index + 0] = x; + this.data.array[index + 1] = y; + this.data.array[index + 2] = z; + return this; + } + setXYZW(index, x, y, z, w) { + index = index * this.data.stride + this.offset; + if (this.normalized) { + x = normalize(x, this.array); + y = normalize(y, this.array); + z = normalize(z, this.array); + w = normalize(w, this.array); + } + this.data.array[index + 0] = x; + this.data.array[index + 1] = y; + this.data.array[index + 2] = z; + this.data.array[index + 3] = w; + return this; + } + clone(data) { + if (data === void 0) { + console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data."); + const array = []; + for (let i = 0; i < this.count; i++) { + const index = i * this.data.stride + this.offset; + for (let j = 0; j < this.itemSize; j++) { + array.push(this.data.array[index + j]); + } + } + return new BufferAttribute(new this.array.constructor(array), this.itemSize, this.normalized); + } else { + if (data.interleavedBuffers === void 0) { + data.interleavedBuffers = {}; + } + if (data.interleavedBuffers[this.data.uuid] === void 0) { + data.interleavedBuffers[this.data.uuid] = this.data.clone(data); + } + return new InterleavedBufferAttribute(data.interleavedBuffers[this.data.uuid], this.itemSize, this.offset, this.normalized); + } + } + toJSON(data) { + if (data === void 0) { + console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data."); + const array = []; + for (let i = 0; i < this.count; i++) { + const index = i * this.data.stride + this.offset; + for (let j = 0; j < this.itemSize; j++) { + array.push(this.data.array[index + j]); + } + } + return { + itemSize: this.itemSize, + type: this.array.constructor.name, + array, + normalized: this.normalized + }; + } else { + if (data.interleavedBuffers === void 0) { + data.interleavedBuffers = {}; + } + if (data.interleavedBuffers[this.data.uuid] === void 0) { + data.interleavedBuffers[this.data.uuid] = this.data.toJSON(data); + } + return { + isInterleavedBufferAttribute: true, + itemSize: this.itemSize, + data: this.data.uuid, + offset: this.offset, + normalized: this.normalized + }; + } + } +} +class SpriteMaterial extends Material { + static { + __name(this, "SpriteMaterial"); + } + static get type() { + return "SpriteMaterial"; + } + constructor(parameters) { + super(); + this.isSpriteMaterial = true; + this.color = new Color(16777215); + this.map = null; + this.alphaMap = null; + this.rotation = 0; + this.sizeAttenuation = true; + this.transparent = true; + this.fog = true; + this.setValues(parameters); + } + copy(source) { + super.copy(source); + this.color.copy(source.color); + this.map = source.map; + this.alphaMap = source.alphaMap; + this.rotation = source.rotation; + this.sizeAttenuation = source.sizeAttenuation; + this.fog = source.fog; + return this; + } +} +let _geometry; +const _intersectPoint = /* @__PURE__ */ new Vector3(); +const _worldScale = /* @__PURE__ */ new Vector3(); +const _mvPosition = /* @__PURE__ */ new Vector3(); +const _alignedPosition = /* @__PURE__ */ new Vector2(); +const _rotatedPosition = /* @__PURE__ */ new Vector2(); +const _viewWorldMatrix = /* @__PURE__ */ new Matrix4(); +const _vA$2 = /* @__PURE__ */ new Vector3(); +const _vB$2 = /* @__PURE__ */ new Vector3(); +const _vC$2 = /* @__PURE__ */ new Vector3(); +const _uvA = /* @__PURE__ */ new Vector2(); +const _uvB = /* @__PURE__ */ new Vector2(); +const _uvC = /* @__PURE__ */ new Vector2(); +class Sprite extends Object3D { + static { + __name(this, "Sprite"); + } + constructor(material = new SpriteMaterial()) { + super(); + this.isSprite = true; + this.type = "Sprite"; + if (_geometry === void 0) { + _geometry = new BufferGeometry(); + const float32Array = new Float32Array([ + -0.5, + -0.5, + 0, + 0, + 0, + 0.5, + -0.5, + 0, + 1, + 0, + 0.5, + 0.5, + 0, + 1, + 1, + -0.5, + 0.5, + 0, + 0, + 1 + ]); + const interleavedBuffer = new InterleavedBuffer(float32Array, 5); + _geometry.setIndex([0, 1, 2, 0, 2, 3]); + _geometry.setAttribute("position", new InterleavedBufferAttribute(interleavedBuffer, 3, 0, false)); + _geometry.setAttribute("uv", new InterleavedBufferAttribute(interleavedBuffer, 2, 3, false)); + } + this.geometry = _geometry; + this.material = material; + this.center = new Vector2(0.5, 0.5); + } + raycast(raycaster, intersects2) { + if (raycaster.camera === null) { + console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'); + } + _worldScale.setFromMatrixScale(this.matrixWorld); + _viewWorldMatrix.copy(raycaster.camera.matrixWorld); + this.modelViewMatrix.multiplyMatrices(raycaster.camera.matrixWorldInverse, this.matrixWorld); + _mvPosition.setFromMatrixPosition(this.modelViewMatrix); + if (raycaster.camera.isPerspectiveCamera && this.material.sizeAttenuation === false) { + _worldScale.multiplyScalar(-_mvPosition.z); + } + const rotation = this.material.rotation; + let sin, cos; + if (rotation !== 0) { + cos = Math.cos(rotation); + sin = Math.sin(rotation); + } + const center = this.center; + transformVertex(_vA$2.set(-0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos); + transformVertex(_vB$2.set(0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos); + transformVertex(_vC$2.set(0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos); + _uvA.set(0, 0); + _uvB.set(1, 0); + _uvC.set(1, 1); + let intersect2 = raycaster.ray.intersectTriangle(_vA$2, _vB$2, _vC$2, false, _intersectPoint); + if (intersect2 === null) { + transformVertex(_vB$2.set(-0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos); + _uvB.set(0, 1); + intersect2 = raycaster.ray.intersectTriangle(_vA$2, _vC$2, _vB$2, false, _intersectPoint); + if (intersect2 === null) { + return; + } + } + const distance = raycaster.ray.origin.distanceTo(_intersectPoint); + if (distance < raycaster.near || distance > raycaster.far) return; + intersects2.push({ + distance, + point: _intersectPoint.clone(), + uv: Triangle.getInterpolation(_intersectPoint, _vA$2, _vB$2, _vC$2, _uvA, _uvB, _uvC, new Vector2()), + face: null, + object: this + }); + } + copy(source, recursive) { + super.copy(source, recursive); + if (source.center !== void 0) this.center.copy(source.center); + this.material = source.material; + return this; + } +} +function transformVertex(vertexPosition, mvPosition, center, scale, sin, cos) { + _alignedPosition.subVectors(vertexPosition, center).addScalar(0.5).multiply(scale); + if (sin !== void 0) { + _rotatedPosition.x = cos * _alignedPosition.x - sin * _alignedPosition.y; + _rotatedPosition.y = sin * _alignedPosition.x + cos * _alignedPosition.y; + } else { + _rotatedPosition.copy(_alignedPosition); + } + vertexPosition.copy(mvPosition); + vertexPosition.x += _rotatedPosition.x; + vertexPosition.y += _rotatedPosition.y; + vertexPosition.applyMatrix4(_viewWorldMatrix); +} +__name(transformVertex, "transformVertex"); +const _v1$2 = /* @__PURE__ */ new Vector3(); +const _v2$1 = /* @__PURE__ */ new Vector3(); +class LOD extends Object3D { + static { + __name(this, "LOD"); + } + constructor() { + super(); + this._currentLevel = 0; + this.type = "LOD"; + Object.defineProperties(this, { + levels: { + enumerable: true, + value: [] + }, + isLOD: { + value: true + } + }); + this.autoUpdate = true; + } + copy(source) { + super.copy(source, false); + const levels = source.levels; + for (let i = 0, l = levels.length; i < l; i++) { + const level = levels[i]; + this.addLevel(level.object.clone(), level.distance, level.hysteresis); + } + this.autoUpdate = source.autoUpdate; + return this; + } + addLevel(object, distance = 0, hysteresis = 0) { + distance = Math.abs(distance); + const levels = this.levels; + let l; + for (l = 0; l < levels.length; l++) { + if (distance < levels[l].distance) { + break; + } + } + levels.splice(l, 0, { distance, hysteresis, object }); + this.add(object); + return this; + } + removeLevel(distance) { + const levels = this.levels; + for (let i = 0; i < levels.length; i++) { + if (levels[i].distance === distance) { + const removedElements = levels.splice(i, 1); + this.remove(removedElements[0].object); + return true; + } + } + return false; + } + getCurrentLevel() { + return this._currentLevel; + } + getObjectForDistance(distance) { + const levels = this.levels; + if (levels.length > 0) { + let i, l; + for (i = 1, l = levels.length; i < l; i++) { + let levelDistance = levels[i].distance; + if (levels[i].object.visible) { + levelDistance -= levelDistance * levels[i].hysteresis; + } + if (distance < levelDistance) { + break; + } + } + return levels[i - 1].object; + } + return null; + } + raycast(raycaster, intersects2) { + const levels = this.levels; + if (levels.length > 0) { + _v1$2.setFromMatrixPosition(this.matrixWorld); + const distance = raycaster.ray.origin.distanceTo(_v1$2); + this.getObjectForDistance(distance).raycast(raycaster, intersects2); + } + } + update(camera) { + const levels = this.levels; + if (levels.length > 1) { + _v1$2.setFromMatrixPosition(camera.matrixWorld); + _v2$1.setFromMatrixPosition(this.matrixWorld); + const distance = _v1$2.distanceTo(_v2$1) / camera.zoom; + levels[0].object.visible = true; + let i, l; + for (i = 1, l = levels.length; i < l; i++) { + let levelDistance = levels[i].distance; + if (levels[i].object.visible) { + levelDistance -= levelDistance * levels[i].hysteresis; + } + if (distance >= levelDistance) { + levels[i - 1].object.visible = false; + levels[i].object.visible = true; + } else { + break; + } + } + this._currentLevel = i - 1; + for (; i < l; i++) { + levels[i].object.visible = false; + } + } + } + toJSON(meta) { + const data = super.toJSON(meta); + if (this.autoUpdate === false) data.object.autoUpdate = false; + data.object.levels = []; + const levels = this.levels; + for (let i = 0, l = levels.length; i < l; i++) { + const level = levels[i]; + data.object.levels.push({ + object: level.object.uuid, + distance: level.distance, + hysteresis: level.hysteresis + }); + } + return data; + } +} +const _basePosition = /* @__PURE__ */ new Vector3(); +const _skinIndex = /* @__PURE__ */ new Vector4(); +const _skinWeight = /* @__PURE__ */ new Vector4(); +const _vector3 = /* @__PURE__ */ new Vector3(); +const _matrix4 = /* @__PURE__ */ new Matrix4(); +const _vertex = /* @__PURE__ */ new Vector3(); +const _sphere$4 = /* @__PURE__ */ new Sphere(); +const _inverseMatrix$2 = /* @__PURE__ */ new Matrix4(); +const _ray$2 = /* @__PURE__ */ new Ray(); +class SkinnedMesh extends Mesh { + static { + __name(this, "SkinnedMesh"); + } + constructor(geometry, material) { + super(geometry, material); + this.isSkinnedMesh = true; + this.type = "SkinnedMesh"; + this.bindMode = AttachedBindMode; + this.bindMatrix = new Matrix4(); + this.bindMatrixInverse = new Matrix4(); + this.boundingBox = null; + this.boundingSphere = null; + } + computeBoundingBox() { + const geometry = this.geometry; + if (this.boundingBox === null) { + this.boundingBox = new Box3(); + } + this.boundingBox.makeEmpty(); + const positionAttribute = geometry.getAttribute("position"); + for (let i = 0; i < positionAttribute.count; i++) { + this.getVertexPosition(i, _vertex); + this.boundingBox.expandByPoint(_vertex); + } + } + computeBoundingSphere() { + const geometry = this.geometry; + if (this.boundingSphere === null) { + this.boundingSphere = new Sphere(); + } + this.boundingSphere.makeEmpty(); + const positionAttribute = geometry.getAttribute("position"); + for (let i = 0; i < positionAttribute.count; i++) { + this.getVertexPosition(i, _vertex); + this.boundingSphere.expandByPoint(_vertex); + } + } + copy(source, recursive) { + super.copy(source, recursive); + this.bindMode = source.bindMode; + this.bindMatrix.copy(source.bindMatrix); + this.bindMatrixInverse.copy(source.bindMatrixInverse); + this.skeleton = source.skeleton; + if (source.boundingBox !== null) this.boundingBox = source.boundingBox.clone(); + if (source.boundingSphere !== null) this.boundingSphere = source.boundingSphere.clone(); + return this; + } + raycast(raycaster, intersects2) { + const material = this.material; + const matrixWorld = this.matrixWorld; + if (material === void 0) return; + if (this.boundingSphere === null) this.computeBoundingSphere(); + _sphere$4.copy(this.boundingSphere); + _sphere$4.applyMatrix4(matrixWorld); + if (raycaster.ray.intersectsSphere(_sphere$4) === false) return; + _inverseMatrix$2.copy(matrixWorld).invert(); + _ray$2.copy(raycaster.ray).applyMatrix4(_inverseMatrix$2); + if (this.boundingBox !== null) { + if (_ray$2.intersectsBox(this.boundingBox) === false) return; + } + this._computeIntersections(raycaster, intersects2, _ray$2); + } + getVertexPosition(index, target) { + super.getVertexPosition(index, target); + this.applyBoneTransform(index, target); + return target; + } + bind(skeleton, bindMatrix) { + this.skeleton = skeleton; + if (bindMatrix === void 0) { + this.updateMatrixWorld(true); + this.skeleton.calculateInverses(); + bindMatrix = this.matrixWorld; + } + this.bindMatrix.copy(bindMatrix); + this.bindMatrixInverse.copy(bindMatrix).invert(); + } + pose() { + this.skeleton.pose(); + } + normalizeSkinWeights() { + const vector = new Vector4(); + const skinWeight = this.geometry.attributes.skinWeight; + for (let i = 0, l = skinWeight.count; i < l; i++) { + vector.fromBufferAttribute(skinWeight, i); + const scale = 1 / vector.manhattanLength(); + if (scale !== Infinity) { + vector.multiplyScalar(scale); + } else { + vector.set(1, 0, 0, 0); + } + skinWeight.setXYZW(i, vector.x, vector.y, vector.z, vector.w); + } + } + updateMatrixWorld(force) { + super.updateMatrixWorld(force); + if (this.bindMode === AttachedBindMode) { + this.bindMatrixInverse.copy(this.matrixWorld).invert(); + } else if (this.bindMode === DetachedBindMode) { + this.bindMatrixInverse.copy(this.bindMatrix).invert(); + } else { + console.warn("THREE.SkinnedMesh: Unrecognized bindMode: " + this.bindMode); + } + } + applyBoneTransform(index, vector) { + const skeleton = this.skeleton; + const geometry = this.geometry; + _skinIndex.fromBufferAttribute(geometry.attributes.skinIndex, index); + _skinWeight.fromBufferAttribute(geometry.attributes.skinWeight, index); + _basePosition.copy(vector).applyMatrix4(this.bindMatrix); + vector.set(0, 0, 0); + for (let i = 0; i < 4; i++) { + const weight = _skinWeight.getComponent(i); + if (weight !== 0) { + const boneIndex = _skinIndex.getComponent(i); + _matrix4.multiplyMatrices(skeleton.bones[boneIndex].matrixWorld, skeleton.boneInverses[boneIndex]); + vector.addScaledVector(_vector3.copy(_basePosition).applyMatrix4(_matrix4), weight); + } + } + return vector.applyMatrix4(this.bindMatrixInverse); + } +} +class Bone extends Object3D { + static { + __name(this, "Bone"); + } + constructor() { + super(); + this.isBone = true; + this.type = "Bone"; + } +} +class DataTexture extends Texture { + static { + __name(this, "DataTexture"); + } + constructor(data = null, width = 1, height = 1, format, type, mapping, wrapS, wrapT, magFilter = NearestFilter, minFilter = NearestFilter, anisotropy, colorSpace) { + super(null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace); + this.isDataTexture = true; + this.image = { data, width, height }; + this.generateMipmaps = false; + this.flipY = false; + this.unpackAlignment = 1; + } +} +const _offsetMatrix = /* @__PURE__ */ new Matrix4(); +const _identityMatrix$1 = /* @__PURE__ */ new Matrix4(); +class Skeleton { + static { + __name(this, "Skeleton"); + } + constructor(bones = [], boneInverses = []) { + this.uuid = generateUUID(); + this.bones = bones.slice(0); + this.boneInverses = boneInverses; + this.boneMatrices = null; + this.boneTexture = null; + this.init(); + } + init() { + const bones = this.bones; + const boneInverses = this.boneInverses; + this.boneMatrices = new Float32Array(bones.length * 16); + if (boneInverses.length === 0) { + this.calculateInverses(); + } else { + if (bones.length !== boneInverses.length) { + console.warn("THREE.Skeleton: Number of inverse bone matrices does not match amount of bones."); + this.boneInverses = []; + for (let i = 0, il = this.bones.length; i < il; i++) { + this.boneInverses.push(new Matrix4()); + } + } + } + } + calculateInverses() { + this.boneInverses.length = 0; + for (let i = 0, il = this.bones.length; i < il; i++) { + const inverse = new Matrix4(); + if (this.bones[i]) { + inverse.copy(this.bones[i].matrixWorld).invert(); + } + this.boneInverses.push(inverse); + } + } + pose() { + for (let i = 0, il = this.bones.length; i < il; i++) { + const bone = this.bones[i]; + if (bone) { + bone.matrixWorld.copy(this.boneInverses[i]).invert(); + } + } + for (let i = 0, il = this.bones.length; i < il; i++) { + const bone = this.bones[i]; + if (bone) { + if (bone.parent && bone.parent.isBone) { + bone.matrix.copy(bone.parent.matrixWorld).invert(); + bone.matrix.multiply(bone.matrixWorld); + } else { + bone.matrix.copy(bone.matrixWorld); + } + bone.matrix.decompose(bone.position, bone.quaternion, bone.scale); + } + } + } + update() { + const bones = this.bones; + const boneInverses = this.boneInverses; + const boneMatrices = this.boneMatrices; + const boneTexture = this.boneTexture; + for (let i = 0, il = bones.length; i < il; i++) { + const matrix = bones[i] ? bones[i].matrixWorld : _identityMatrix$1; + _offsetMatrix.multiplyMatrices(matrix, boneInverses[i]); + _offsetMatrix.toArray(boneMatrices, i * 16); + } + if (boneTexture !== null) { + boneTexture.needsUpdate = true; + } + } + clone() { + return new Skeleton(this.bones, this.boneInverses); + } + computeBoneTexture() { + let size = Math.sqrt(this.bones.length * 4); + size = Math.ceil(size / 4) * 4; + size = Math.max(size, 4); + const boneMatrices = new Float32Array(size * size * 4); + boneMatrices.set(this.boneMatrices); + const boneTexture = new DataTexture(boneMatrices, size, size, RGBAFormat, FloatType); + boneTexture.needsUpdate = true; + this.boneMatrices = boneMatrices; + this.boneTexture = boneTexture; + return this; + } + getBoneByName(name) { + for (let i = 0, il = this.bones.length; i < il; i++) { + const bone = this.bones[i]; + if (bone.name === name) { + return bone; + } + } + return void 0; + } + dispose() { + if (this.boneTexture !== null) { + this.boneTexture.dispose(); + this.boneTexture = null; + } + } + fromJSON(json, bones) { + this.uuid = json.uuid; + for (let i = 0, l = json.bones.length; i < l; i++) { + const uuid = json.bones[i]; + let bone = bones[uuid]; + if (bone === void 0) { + console.warn("THREE.Skeleton: No bone found with UUID:", uuid); + bone = new Bone(); + } + this.bones.push(bone); + this.boneInverses.push(new Matrix4().fromArray(json.boneInverses[i])); + } + this.init(); + return this; + } + toJSON() { + const data = { + metadata: { + version: 4.6, + type: "Skeleton", + generator: "Skeleton.toJSON" + }, + bones: [], + boneInverses: [] + }; + data.uuid = this.uuid; + const bones = this.bones; + const boneInverses = this.boneInverses; + for (let i = 0, l = bones.length; i < l; i++) { + const bone = bones[i]; + data.bones.push(bone.uuid); + const boneInverse = boneInverses[i]; + data.boneInverses.push(boneInverse.toArray()); + } + return data; + } +} +class InstancedBufferAttribute extends BufferAttribute { + static { + __name(this, "InstancedBufferAttribute"); + } + constructor(array, itemSize, normalized, meshPerAttribute = 1) { + super(array, itemSize, normalized); + this.isInstancedBufferAttribute = true; + this.meshPerAttribute = meshPerAttribute; + } + copy(source) { + super.copy(source); + this.meshPerAttribute = source.meshPerAttribute; + return this; + } + toJSON() { + const data = super.toJSON(); + data.meshPerAttribute = this.meshPerAttribute; + data.isInstancedBufferAttribute = true; + return data; + } +} +const _instanceLocalMatrix = /* @__PURE__ */ new Matrix4(); +const _instanceWorldMatrix = /* @__PURE__ */ new Matrix4(); +const _instanceIntersects = []; +const _box3 = /* @__PURE__ */ new Box3(); +const _identity = /* @__PURE__ */ new Matrix4(); +const _mesh$1 = /* @__PURE__ */ new Mesh(); +const _sphere$3 = /* @__PURE__ */ new Sphere(); +class InstancedMesh extends Mesh { + static { + __name(this, "InstancedMesh"); + } + constructor(geometry, material, count) { + super(geometry, material); + this.isInstancedMesh = true; + this.instanceMatrix = new InstancedBufferAttribute(new Float32Array(count * 16), 16); + this.instanceColor = null; + this.morphTexture = null; + this.count = count; + this.boundingBox = null; + this.boundingSphere = null; + for (let i = 0; i < count; i++) { + this.setMatrixAt(i, _identity); + } + } + computeBoundingBox() { + const geometry = this.geometry; + const count = this.count; + if (this.boundingBox === null) { + this.boundingBox = new Box3(); + } + if (geometry.boundingBox === null) { + geometry.computeBoundingBox(); + } + this.boundingBox.makeEmpty(); + for (let i = 0; i < count; i++) { + this.getMatrixAt(i, _instanceLocalMatrix); + _box3.copy(geometry.boundingBox).applyMatrix4(_instanceLocalMatrix); + this.boundingBox.union(_box3); + } + } + computeBoundingSphere() { + const geometry = this.geometry; + const count = this.count; + if (this.boundingSphere === null) { + this.boundingSphere = new Sphere(); + } + if (geometry.boundingSphere === null) { + geometry.computeBoundingSphere(); + } + this.boundingSphere.makeEmpty(); + for (let i = 0; i < count; i++) { + this.getMatrixAt(i, _instanceLocalMatrix); + _sphere$3.copy(geometry.boundingSphere).applyMatrix4(_instanceLocalMatrix); + this.boundingSphere.union(_sphere$3); + } + } + copy(source, recursive) { + super.copy(source, recursive); + this.instanceMatrix.copy(source.instanceMatrix); + if (source.morphTexture !== null) this.morphTexture = source.morphTexture.clone(); + if (source.instanceColor !== null) this.instanceColor = source.instanceColor.clone(); + this.count = source.count; + if (source.boundingBox !== null) this.boundingBox = source.boundingBox.clone(); + if (source.boundingSphere !== null) this.boundingSphere = source.boundingSphere.clone(); + return this; + } + getColorAt(index, color) { + color.fromArray(this.instanceColor.array, index * 3); + } + getMatrixAt(index, matrix) { + matrix.fromArray(this.instanceMatrix.array, index * 16); + } + getMorphAt(index, object) { + const objectInfluences = object.morphTargetInfluences; + const array = this.morphTexture.source.data.data; + const len = objectInfluences.length + 1; + const dataIndex = index * len + 1; + for (let i = 0; i < objectInfluences.length; i++) { + objectInfluences[i] = array[dataIndex + i]; + } + } + raycast(raycaster, intersects2) { + const matrixWorld = this.matrixWorld; + const raycastTimes = this.count; + _mesh$1.geometry = this.geometry; + _mesh$1.material = this.material; + if (_mesh$1.material === void 0) return; + if (this.boundingSphere === null) this.computeBoundingSphere(); + _sphere$3.copy(this.boundingSphere); + _sphere$3.applyMatrix4(matrixWorld); + if (raycaster.ray.intersectsSphere(_sphere$3) === false) return; + for (let instanceId = 0; instanceId < raycastTimes; instanceId++) { + this.getMatrixAt(instanceId, _instanceLocalMatrix); + _instanceWorldMatrix.multiplyMatrices(matrixWorld, _instanceLocalMatrix); + _mesh$1.matrixWorld = _instanceWorldMatrix; + _mesh$1.raycast(raycaster, _instanceIntersects); + for (let i = 0, l = _instanceIntersects.length; i < l; i++) { + const intersect2 = _instanceIntersects[i]; + intersect2.instanceId = instanceId; + intersect2.object = this; + intersects2.push(intersect2); + } + _instanceIntersects.length = 0; + } + } + setColorAt(index, color) { + if (this.instanceColor === null) { + this.instanceColor = new InstancedBufferAttribute(new Float32Array(this.instanceMatrix.count * 3).fill(1), 3); + } + color.toArray(this.instanceColor.array, index * 3); + } + setMatrixAt(index, matrix) { + matrix.toArray(this.instanceMatrix.array, index * 16); + } + setMorphAt(index, object) { + const objectInfluences = object.morphTargetInfluences; + const len = objectInfluences.length + 1; + if (this.morphTexture === null) { + this.morphTexture = new DataTexture(new Float32Array(len * this.count), len, this.count, RedFormat, FloatType); + } + const array = this.morphTexture.source.data.data; + let morphInfluencesSum = 0; + for (let i = 0; i < objectInfluences.length; i++) { + morphInfluencesSum += objectInfluences[i]; + } + const morphBaseInfluence = this.geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum; + const dataIndex = len * index; + array[dataIndex] = morphBaseInfluence; + array.set(objectInfluences, dataIndex + 1); + } + updateMorphTargets() { + } + dispose() { + this.dispatchEvent({ type: "dispose" }); + if (this.morphTexture !== null) { + this.morphTexture.dispose(); + this.morphTexture = null; + } + return this; + } +} +function ascIdSort(a, b) { + return a - b; +} +__name(ascIdSort, "ascIdSort"); +function sortOpaque(a, b) { + return a.z - b.z; +} +__name(sortOpaque, "sortOpaque"); +function sortTransparent(a, b) { + return b.z - a.z; +} +__name(sortTransparent, "sortTransparent"); +class MultiDrawRenderList { + static { + __name(this, "MultiDrawRenderList"); + } + constructor() { + this.index = 0; + this.pool = []; + this.list = []; + } + push(start, count, z, index) { + const pool = this.pool; + const list = this.list; + if (this.index >= pool.length) { + pool.push({ + start: -1, + count: -1, + z: -1, + index: -1 + }); + } + const item = pool[this.index]; + list.push(item); + this.index++; + item.start = start; + item.count = count; + item.z = z; + item.index = index; + } + reset() { + this.list.length = 0; + this.index = 0; + } +} +const _matrix$1 = /* @__PURE__ */ new Matrix4(); +const _whiteColor = /* @__PURE__ */ new Color(1, 1, 1); +const _frustum = /* @__PURE__ */ new Frustum(); +const _box$1 = /* @__PURE__ */ new Box3(); +const _sphere$2 = /* @__PURE__ */ new Sphere(); +const _vector$5 = /* @__PURE__ */ new Vector3(); +const _forward = /* @__PURE__ */ new Vector3(); +const _temp = /* @__PURE__ */ new Vector3(); +const _renderList = /* @__PURE__ */ new MultiDrawRenderList(); +const _mesh = /* @__PURE__ */ new Mesh(); +const _batchIntersects = []; +function copyAttributeData(src, target, targetOffset = 0) { + const itemSize = target.itemSize; + if (src.isInterleavedBufferAttribute || src.array.constructor !== target.array.constructor) { + const vertexCount = src.count; + for (let i = 0; i < vertexCount; i++) { + for (let c = 0; c < itemSize; c++) { + target.setComponent(i + targetOffset, c, src.getComponent(i, c)); + } + } + } else { + target.array.set(src.array, targetOffset * itemSize); + } + target.needsUpdate = true; +} +__name(copyAttributeData, "copyAttributeData"); +function copyArrayContents(src, target) { + if (src.constructor !== target.constructor) { + const len = Math.min(src.length, target.length); + for (let i = 0; i < len; i++) { + target[i] = src[i]; + } + } else { + const len = Math.min(src.length, target.length); + target.set(new src.constructor(src.buffer, 0, len)); + } +} +__name(copyArrayContents, "copyArrayContents"); +class BatchedMesh extends Mesh { + static { + __name(this, "BatchedMesh"); + } + get maxInstanceCount() { + return this._maxInstanceCount; + } + get instanceCount() { + return this._instanceInfo.length - this._availableInstanceIds.length; + } + get unusedVertexCount() { + return this._maxVertexCount - this._nextVertexStart; + } + get unusedIndexCount() { + return this._maxIndexCount - this._nextIndexStart; + } + constructor(maxInstanceCount, maxVertexCount, maxIndexCount = maxVertexCount * 2, material) { + super(new BufferGeometry(), material); + this.isBatchedMesh = true; + this.perObjectFrustumCulled = true; + this.sortObjects = true; + this.boundingBox = null; + this.boundingSphere = null; + this.customSort = null; + this._instanceInfo = []; + this._geometryInfo = []; + this._availableInstanceIds = []; + this._availableGeometryIds = []; + this._nextIndexStart = 0; + this._nextVertexStart = 0; + this._geometryCount = 0; + this._visibilityChanged = true; + this._geometryInitialized = false; + this._maxInstanceCount = maxInstanceCount; + this._maxVertexCount = maxVertexCount; + this._maxIndexCount = maxIndexCount; + this._multiDrawCounts = new Int32Array(maxInstanceCount); + this._multiDrawStarts = new Int32Array(maxInstanceCount); + this._multiDrawCount = 0; + this._multiDrawInstances = null; + this._matricesTexture = null; + this._indirectTexture = null; + this._colorsTexture = null; + this._initMatricesTexture(); + this._initIndirectTexture(); + } + _initMatricesTexture() { + let size = Math.sqrt(this._maxInstanceCount * 4); + size = Math.ceil(size / 4) * 4; + size = Math.max(size, 4); + const matricesArray = new Float32Array(size * size * 4); + const matricesTexture = new DataTexture(matricesArray, size, size, RGBAFormat, FloatType); + this._matricesTexture = matricesTexture; + } + _initIndirectTexture() { + let size = Math.sqrt(this._maxInstanceCount); + size = Math.ceil(size); + const indirectArray = new Uint32Array(size * size); + const indirectTexture = new DataTexture(indirectArray, size, size, RedIntegerFormat, UnsignedIntType); + this._indirectTexture = indirectTexture; + } + _initColorsTexture() { + let size = Math.sqrt(this._maxInstanceCount); + size = Math.ceil(size); + const colorsArray = new Float32Array(size * size * 4).fill(1); + const colorsTexture = new DataTexture(colorsArray, size, size, RGBAFormat, FloatType); + colorsTexture.colorSpace = ColorManagement.workingColorSpace; + this._colorsTexture = colorsTexture; + } + _initializeGeometry(reference) { + const geometry = this.geometry; + const maxVertexCount = this._maxVertexCount; + const maxIndexCount = this._maxIndexCount; + if (this._geometryInitialized === false) { + for (const attributeName in reference.attributes) { + const srcAttribute = reference.getAttribute(attributeName); + const { array, itemSize, normalized } = srcAttribute; + const dstArray = new array.constructor(maxVertexCount * itemSize); + const dstAttribute = new BufferAttribute(dstArray, itemSize, normalized); + geometry.setAttribute(attributeName, dstAttribute); + } + if (reference.getIndex() !== null) { + const indexArray = maxVertexCount > 65535 ? new Uint32Array(maxIndexCount) : new Uint16Array(maxIndexCount); + geometry.setIndex(new BufferAttribute(indexArray, 1)); + } + this._geometryInitialized = true; + } + } + // Make sure the geometry is compatible with the existing combined geometry attributes + _validateGeometry(geometry) { + const batchGeometry = this.geometry; + if (Boolean(geometry.getIndex()) !== Boolean(batchGeometry.getIndex())) { + throw new Error('BatchedMesh: All geometries must consistently have "index".'); + } + for (const attributeName in batchGeometry.attributes) { + if (!geometry.hasAttribute(attributeName)) { + throw new Error(`BatchedMesh: Added geometry missing "${attributeName}". All geometries must have consistent attributes.`); + } + const srcAttribute = geometry.getAttribute(attributeName); + const dstAttribute = batchGeometry.getAttribute(attributeName); + if (srcAttribute.itemSize !== dstAttribute.itemSize || srcAttribute.normalized !== dstAttribute.normalized) { + throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value."); + } + } + } + setCustomSort(func) { + this.customSort = func; + return this; + } + computeBoundingBox() { + if (this.boundingBox === null) { + this.boundingBox = new Box3(); + } + const boundingBox = this.boundingBox; + const instanceInfo = this._instanceInfo; + boundingBox.makeEmpty(); + for (let i = 0, l = instanceInfo.length; i < l; i++) { + if (instanceInfo[i].active === false) continue; + const geometryId = instanceInfo[i].geometryIndex; + this.getMatrixAt(i, _matrix$1); + this.getBoundingBoxAt(geometryId, _box$1).applyMatrix4(_matrix$1); + boundingBox.union(_box$1); + } + } + computeBoundingSphere() { + if (this.boundingSphere === null) { + this.boundingSphere = new Sphere(); + } + const boundingSphere = this.boundingSphere; + const instanceInfo = this._instanceInfo; + boundingSphere.makeEmpty(); + for (let i = 0, l = instanceInfo.length; i < l; i++) { + if (instanceInfo[i].active === false) continue; + const geometryId = instanceInfo[i].geometryIndex; + this.getMatrixAt(i, _matrix$1); + this.getBoundingSphereAt(geometryId, _sphere$2).applyMatrix4(_matrix$1); + boundingSphere.union(_sphere$2); + } + } + addInstance(geometryId) { + const atCapacity = this._instanceInfo.length >= this.maxInstanceCount; + if (atCapacity && this._availableInstanceIds.length === 0) { + throw new Error("BatchedMesh: Maximum item count reached."); + } + const instanceInfo = { + visible: true, + active: true, + geometryIndex: geometryId + }; + let drawId = null; + if (this._availableInstanceIds.length > 0) { + this._availableInstanceIds.sort(ascIdSort); + drawId = this._availableInstanceIds.shift(); + this._instanceInfo[drawId] = instanceInfo; + } else { + drawId = this._instanceInfo.length; + this._instanceInfo.push(instanceInfo); + } + const matricesTexture = this._matricesTexture; + _matrix$1.identity().toArray(matricesTexture.image.data, drawId * 16); + matricesTexture.needsUpdate = true; + const colorsTexture = this._colorsTexture; + if (colorsTexture) { + _whiteColor.toArray(colorsTexture.image.data, drawId * 4); + colorsTexture.needsUpdate = true; + } + this._visibilityChanged = true; + return drawId; + } + addGeometry(geometry, reservedVertexCount = -1, reservedIndexCount = -1) { + this._initializeGeometry(geometry); + this._validateGeometry(geometry); + const geometryInfo = { + // geometry information + vertexStart: -1, + vertexCount: -1, + reservedVertexCount: -1, + indexStart: -1, + indexCount: -1, + reservedIndexCount: -1, + // draw range information + start: -1, + count: -1, + // state + boundingBox: null, + boundingSphere: null, + active: true + }; + const geometryInfoList = this._geometryInfo; + geometryInfo.vertexStart = this._nextVertexStart; + geometryInfo.reservedVertexCount = reservedVertexCount === -1 ? geometry.getAttribute("position").count : reservedVertexCount; + const index = geometry.getIndex(); + const hasIndex = index !== null; + if (hasIndex) { + geometryInfo.indexStart = this._nextIndexStart; + geometryInfo.reservedIndexCount = reservedIndexCount === -1 ? index.count : reservedIndexCount; + } + if (geometryInfo.indexStart !== -1 && geometryInfo.indexStart + geometryInfo.reservedIndexCount > this._maxIndexCount || geometryInfo.vertexStart + geometryInfo.reservedVertexCount > this._maxVertexCount) { + throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size."); + } + let geometryId; + if (this._availableGeometryIds.length > 0) { + this._availableGeometryIds.sort(ascIdSort); + geometryId = this._availableGeometryIds.shift(); + geometryInfoList[geometryId] = geometryInfo; + } else { + geometryId = this._geometryCount; + this._geometryCount++; + geometryInfoList.push(geometryInfo); + } + this.setGeometryAt(geometryId, geometry); + this._nextIndexStart = geometryInfo.indexStart + geometryInfo.reservedIndexCount; + this._nextVertexStart = geometryInfo.vertexStart + geometryInfo.reservedVertexCount; + return geometryId; + } + setGeometryAt(geometryId, geometry) { + if (geometryId >= this._geometryCount) { + throw new Error("BatchedMesh: Maximum geometry count reached."); + } + this._validateGeometry(geometry); + const batchGeometry = this.geometry; + const hasIndex = batchGeometry.getIndex() !== null; + const dstIndex = batchGeometry.getIndex(); + const srcIndex = geometry.getIndex(); + const geometryInfo = this._geometryInfo[geometryId]; + if (hasIndex && srcIndex.count > geometryInfo.reservedIndexCount || geometry.attributes.position.count > geometryInfo.reservedVertexCount) { + throw new Error("BatchedMesh: Reserved space not large enough for provided geometry."); + } + const vertexStart = geometryInfo.vertexStart; + const reservedVertexCount = geometryInfo.reservedVertexCount; + geometryInfo.vertexCount = geometry.getAttribute("position").count; + for (const attributeName in batchGeometry.attributes) { + const srcAttribute = geometry.getAttribute(attributeName); + const dstAttribute = batchGeometry.getAttribute(attributeName); + copyAttributeData(srcAttribute, dstAttribute, vertexStart); + const itemSize = srcAttribute.itemSize; + for (let i = srcAttribute.count, l = reservedVertexCount; i < l; i++) { + const index = vertexStart + i; + for (let c = 0; c < itemSize; c++) { + dstAttribute.setComponent(index, c, 0); + } + } + dstAttribute.needsUpdate = true; + dstAttribute.addUpdateRange(vertexStart * itemSize, reservedVertexCount * itemSize); + } + if (hasIndex) { + const indexStart = geometryInfo.indexStart; + const reservedIndexCount = geometryInfo.reservedIndexCount; + geometryInfo.indexCount = geometry.getIndex().count; + for (let i = 0; i < srcIndex.count; i++) { + dstIndex.setX(indexStart + i, vertexStart + srcIndex.getX(i)); + } + for (let i = srcIndex.count, l = reservedIndexCount; i < l; i++) { + dstIndex.setX(indexStart + i, vertexStart); + } + dstIndex.needsUpdate = true; + dstIndex.addUpdateRange(indexStart, geometryInfo.reservedIndexCount); + } + geometryInfo.start = hasIndex ? geometryInfo.indexStart : geometryInfo.vertexStart; + geometryInfo.count = hasIndex ? geometryInfo.indexCount : geometryInfo.vertexCount; + geometryInfo.boundingBox = null; + if (geometry.boundingBox !== null) { + geometryInfo.boundingBox = geometry.boundingBox.clone(); + } + geometryInfo.boundingSphere = null; + if (geometry.boundingSphere !== null) { + geometryInfo.boundingSphere = geometry.boundingSphere.clone(); + } + this._visibilityChanged = true; + return geometryId; + } + deleteGeometry(geometryId) { + const geometryInfoList = this._geometryInfo; + if (geometryId >= geometryInfoList.length || geometryInfoList[geometryId].active === false) { + return this; + } + const instanceInfo = this._instanceInfo; + for (let i = 0, l = instanceInfo.length; i < l; i++) { + if (instanceInfo[i].geometryIndex === geometryId) { + this.deleteInstance(i); + } + } + geometryInfoList[geometryId].active = false; + this._availableGeometryIds.push(geometryId); + this._visibilityChanged = true; + return this; + } + deleteInstance(instanceId) { + const instanceInfo = this._instanceInfo; + if (instanceId >= instanceInfo.length || instanceInfo[instanceId].active === false) { + return this; + } + instanceInfo[instanceId].active = false; + this._availableInstanceIds.push(instanceId); + this._visibilityChanged = true; + return this; + } + optimize() { + let nextVertexStart = 0; + let nextIndexStart = 0; + const geometryInfoList = this._geometryInfo; + const indices = geometryInfoList.map((e, i) => i).sort((a, b) => { + return geometryInfoList[a].vertexStart - geometryInfoList[b].vertexStart; + }); + const geometry = this.geometry; + for (let i = 0, l = geometryInfoList.length; i < l; i++) { + const index = indices[i]; + const geometryInfo = geometryInfoList[index]; + if (geometryInfo.active === false) { + continue; + } + if (geometry.index !== null) { + if (geometryInfo.indexStart !== nextIndexStart) { + const { indexStart, vertexStart, reservedIndexCount } = geometryInfo; + const index2 = geometry.index; + const array = index2.array; + const elementDelta = nextVertexStart - vertexStart; + for (let j = indexStart; j < indexStart + reservedIndexCount; j++) { + array[j] = array[j] + elementDelta; + } + index2.array.copyWithin(nextIndexStart, indexStart, indexStart + reservedIndexCount); + index2.addUpdateRange(nextIndexStart, reservedIndexCount); + geometryInfo.indexStart = nextIndexStart; + } + nextIndexStart += geometryInfo.reservedIndexCount; + } + if (geometryInfo.vertexStart !== nextVertexStart) { + const { vertexStart, reservedVertexCount } = geometryInfo; + const attributes = geometry.attributes; + for (const key in attributes) { + const attribute = attributes[key]; + const { array, itemSize } = attribute; + array.copyWithin(nextVertexStart * itemSize, vertexStart * itemSize, (vertexStart + reservedVertexCount) * itemSize); + attribute.addUpdateRange(nextVertexStart * itemSize, reservedVertexCount * itemSize); + } + geometryInfo.vertexStart = nextVertexStart; + } + nextVertexStart += geometryInfo.reservedVertexCount; + geometryInfo.start = geometry.index ? geometryInfo.indexStart : geometryInfo.vertexStart; + this._nextIndexStart = geometry.index ? geometryInfo.indexStart + geometryInfo.reservedIndexCount : 0; + this._nextVertexStart = geometryInfo.vertexStart + geometryInfo.reservedVertexCount; + } + return this; + } + // get bounding box and compute it if it doesn't exist + getBoundingBoxAt(geometryId, target) { + if (geometryId >= this._geometryCount) { + return null; + } + const geometry = this.geometry; + const geometryInfo = this._geometryInfo[geometryId]; + if (geometryInfo.boundingBox === null) { + const box = new Box3(); + const index = geometry.index; + const position = geometry.attributes.position; + for (let i = geometryInfo.start, l = geometryInfo.start + geometryInfo.count; i < l; i++) { + let iv = i; + if (index) { + iv = index.getX(iv); + } + box.expandByPoint(_vector$5.fromBufferAttribute(position, iv)); + } + geometryInfo.boundingBox = box; + } + target.copy(geometryInfo.boundingBox); + return target; + } + // get bounding sphere and compute it if it doesn't exist + getBoundingSphereAt(geometryId, target) { + if (geometryId >= this._geometryCount) { + return null; + } + const geometry = this.geometry; + const geometryInfo = this._geometryInfo[geometryId]; + if (geometryInfo.boundingSphere === null) { + const sphere = new Sphere(); + this.getBoundingBoxAt(geometryId, _box$1); + _box$1.getCenter(sphere.center); + const index = geometry.index; + const position = geometry.attributes.position; + let maxRadiusSq = 0; + for (let i = geometryInfo.start, l = geometryInfo.start + geometryInfo.count; i < l; i++) { + let iv = i; + if (index) { + iv = index.getX(iv); + } + _vector$5.fromBufferAttribute(position, iv); + maxRadiusSq = Math.max(maxRadiusSq, sphere.center.distanceToSquared(_vector$5)); + } + sphere.radius = Math.sqrt(maxRadiusSq); + geometryInfo.boundingSphere = sphere; + } + target.copy(geometryInfo.boundingSphere); + return target; + } + setMatrixAt(instanceId, matrix) { + const instanceInfo = this._instanceInfo; + const matricesTexture = this._matricesTexture; + const matricesArray = this._matricesTexture.image.data; + if (instanceId >= instanceInfo.length || instanceInfo[instanceId].active === false) { + return this; + } + matrix.toArray(matricesArray, instanceId * 16); + matricesTexture.needsUpdate = true; + return this; + } + getMatrixAt(instanceId, matrix) { + const instanceInfo = this._instanceInfo; + const matricesArray = this._matricesTexture.image.data; + if (instanceId >= instanceInfo.length || instanceInfo[instanceId].active === false) { + return null; + } + return matrix.fromArray(matricesArray, instanceId * 16); + } + setColorAt(instanceId, color) { + if (this._colorsTexture === null) { + this._initColorsTexture(); + } + const colorsTexture = this._colorsTexture; + const colorsArray = this._colorsTexture.image.data; + const instanceInfo = this._instanceInfo; + if (instanceId >= instanceInfo.length || instanceInfo[instanceId].active === false) { + return this; + } + color.toArray(colorsArray, instanceId * 4); + colorsTexture.needsUpdate = true; + return this; + } + getColorAt(instanceId, color) { + const colorsArray = this._colorsTexture.image.data; + const instanceInfo = this._instanceInfo; + if (instanceId >= instanceInfo.length || instanceInfo[instanceId].active === false) { + return null; + } + return color.fromArray(colorsArray, instanceId * 4); + } + setVisibleAt(instanceId, value) { + const instanceInfo = this._instanceInfo; + if (instanceId >= instanceInfo.length || instanceInfo[instanceId].active === false || instanceInfo[instanceId].visible === value) { + return this; + } + instanceInfo[instanceId].visible = value; + this._visibilityChanged = true; + return this; + } + getVisibleAt(instanceId) { + const instanceInfo = this._instanceInfo; + if (instanceId >= instanceInfo.length || instanceInfo[instanceId].active === false) { + return false; + } + return instanceInfo[instanceId].visible; + } + setGeometryIdAt(instanceId, geometryId) { + const instanceInfo = this._instanceInfo; + const geometryInfoList = this._geometryInfo; + if (instanceId >= instanceInfo.length || instanceInfo[instanceId].active === false) { + return null; + } + if (geometryId >= geometryInfoList.length || geometryInfoList[geometryId].active === false) { + return null; + } + instanceInfo[instanceId].geometryIndex = geometryId; + return this; + } + getGeometryIdAt(instanceId) { + const instanceInfo = this._instanceInfo; + if (instanceId >= instanceInfo.length || instanceInfo[instanceId].active === false) { + return -1; + } + return instanceInfo[instanceId].geometryIndex; + } + getGeometryRangeAt(geometryId, target = {}) { + if (geometryId < 0 || geometryId >= this._geometryCount) { + return null; + } + const geometryInfo = this._geometryInfo[geometryId]; + target.vertexStart = geometryInfo.vertexStart; + target.vertexCount = geometryInfo.vertexCount; + target.reservedVertexCount = geometryInfo.reservedVertexCount; + target.indexStart = geometryInfo.indexStart; + target.indexCount = geometryInfo.indexCount; + target.reservedIndexCount = geometryInfo.reservedIndexCount; + target.start = geometryInfo.start; + target.count = geometryInfo.count; + return target; + } + setInstanceCount(maxInstanceCount) { + const availableInstanceIds = this._availableInstanceIds; + const instanceInfo = this._instanceInfo; + availableInstanceIds.sort(ascIdSort); + while (availableInstanceIds[availableInstanceIds.length - 1] === instanceInfo.length) { + instanceInfo.pop(); + availableInstanceIds.pop(); + } + if (maxInstanceCount < instanceInfo.length) { + throw new Error(`BatchedMesh: Instance ids outside the range ${maxInstanceCount} are being used. Cannot shrink instance count.`); + } + const multiDrawCounts = new Int32Array(maxInstanceCount); + const multiDrawStarts = new Int32Array(maxInstanceCount); + copyArrayContents(this._multiDrawCounts, multiDrawCounts); + copyArrayContents(this._multiDrawStarts, multiDrawStarts); + this._multiDrawCounts = multiDrawCounts; + this._multiDrawStarts = multiDrawStarts; + this._maxInstanceCount = maxInstanceCount; + const indirectTexture = this._indirectTexture; + const matricesTexture = this._matricesTexture; + const colorsTexture = this._colorsTexture; + indirectTexture.dispose(); + this._initIndirectTexture(); + copyArrayContents(indirectTexture.image.data, this._indirectTexture.image.data); + matricesTexture.dispose(); + this._initMatricesTexture(); + copyArrayContents(matricesTexture.image.data, this._matricesTexture.image.data); + if (colorsTexture) { + colorsTexture.dispose(); + this._initColorsTexture(); + copyArrayContents(colorsTexture.image.data, this._colorsTexture.image.data); + } + } + setGeometrySize(maxVertexCount, maxIndexCount) { + const validRanges = [...this._geometryInfo].filter((info) => info.active); + const requiredVertexLength = Math.max(...validRanges.map((range) => range.vertexStart + range.reservedVertexCount)); + if (requiredVertexLength > maxVertexCount) { + throw new Error(`BatchedMesh: Geometry vertex values are being used outside the range ${maxIndexCount}. Cannot shrink further.`); + } + if (this.geometry.index) { + const requiredIndexLength = Math.max(...validRanges.map((range) => range.indexStart + range.reservedIndexCount)); + if (requiredIndexLength > maxIndexCount) { + throw new Error(`BatchedMesh: Geometry index values are being used outside the range ${maxIndexCount}. Cannot shrink further.`); + } + } + const oldGeometry = this.geometry; + oldGeometry.dispose(); + this._maxVertexCount = maxVertexCount; + this._maxIndexCount = maxIndexCount; + if (this._geometryInitialized) { + this._geometryInitialized = false; + this.geometry = new BufferGeometry(); + this._initializeGeometry(oldGeometry); + } + const geometry = this.geometry; + if (oldGeometry.index) { + copyArrayContents(oldGeometry.index.array, geometry.index.array); + } + for (const key in oldGeometry.attributes) { + copyArrayContents(oldGeometry.attributes[key].array, geometry.attributes[key].array); + } + } + raycast(raycaster, intersects2) { + const instanceInfo = this._instanceInfo; + const geometryInfoList = this._geometryInfo; + const matrixWorld = this.matrixWorld; + const batchGeometry = this.geometry; + _mesh.material = this.material; + _mesh.geometry.index = batchGeometry.index; + _mesh.geometry.attributes = batchGeometry.attributes; + if (_mesh.geometry.boundingBox === null) { + _mesh.geometry.boundingBox = new Box3(); + } + if (_mesh.geometry.boundingSphere === null) { + _mesh.geometry.boundingSphere = new Sphere(); + } + for (let i = 0, l = instanceInfo.length; i < l; i++) { + if (!instanceInfo[i].visible || !instanceInfo[i].active) { + continue; + } + const geometryId = instanceInfo[i].geometryIndex; + const geometryInfo = geometryInfoList[geometryId]; + _mesh.geometry.setDrawRange(geometryInfo.start, geometryInfo.count); + this.getMatrixAt(i, _mesh.matrixWorld).premultiply(matrixWorld); + this.getBoundingBoxAt(geometryId, _mesh.geometry.boundingBox); + this.getBoundingSphereAt(geometryId, _mesh.geometry.boundingSphere); + _mesh.raycast(raycaster, _batchIntersects); + for (let j = 0, l2 = _batchIntersects.length; j < l2; j++) { + const intersect2 = _batchIntersects[j]; + intersect2.object = this; + intersect2.batchId = i; + intersects2.push(intersect2); + } + _batchIntersects.length = 0; + } + _mesh.material = null; + _mesh.geometry.index = null; + _mesh.geometry.attributes = {}; + _mesh.geometry.setDrawRange(0, Infinity); + } + copy(source) { + super.copy(source); + this.geometry = source.geometry.clone(); + this.perObjectFrustumCulled = source.perObjectFrustumCulled; + this.sortObjects = source.sortObjects; + this.boundingBox = source.boundingBox !== null ? source.boundingBox.clone() : null; + this.boundingSphere = source.boundingSphere !== null ? source.boundingSphere.clone() : null; + this._geometryInfo = source._geometryInfo.map((info) => ({ + ...info, + boundingBox: info.boundingBox !== null ? info.boundingBox.clone() : null, + boundingSphere: info.boundingSphere !== null ? info.boundingSphere.clone() : null + })); + this._instanceInfo = source._instanceInfo.map((info) => ({ ...info })); + this._maxInstanceCount = source._maxInstanceCount; + this._maxVertexCount = source._maxVertexCount; + this._maxIndexCount = source._maxIndexCount; + this._geometryInitialized = source._geometryInitialized; + this._geometryCount = source._geometryCount; + this._multiDrawCounts = source._multiDrawCounts.slice(); + this._multiDrawStarts = source._multiDrawStarts.slice(); + this._matricesTexture = source._matricesTexture.clone(); + this._matricesTexture.image.data = this._matricesTexture.image.data.slice(); + if (this._colorsTexture !== null) { + this._colorsTexture = source._colorsTexture.clone(); + this._colorsTexture.image.data = this._colorsTexture.image.data.slice(); + } + return this; + } + dispose() { + this.geometry.dispose(); + this._matricesTexture.dispose(); + this._matricesTexture = null; + this._indirectTexture.dispose(); + this._indirectTexture = null; + if (this._colorsTexture !== null) { + this._colorsTexture.dispose(); + this._colorsTexture = null; + } + return this; + } + onBeforeRender(renderer, scene, camera, geometry, material) { + if (!this._visibilityChanged && !this.perObjectFrustumCulled && !this.sortObjects) { + return; + } + const index = geometry.getIndex(); + const bytesPerElement = index === null ? 1 : index.array.BYTES_PER_ELEMENT; + const instanceInfo = this._instanceInfo; + const multiDrawStarts = this._multiDrawStarts; + const multiDrawCounts = this._multiDrawCounts; + const geometryInfoList = this._geometryInfo; + const perObjectFrustumCulled = this.perObjectFrustumCulled; + const indirectTexture = this._indirectTexture; + const indirectArray = indirectTexture.image.data; + if (perObjectFrustumCulled) { + _matrix$1.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse).multiply(this.matrixWorld); + _frustum.setFromProjectionMatrix( + _matrix$1, + renderer.coordinateSystem + ); + } + let multiDrawCount = 0; + if (this.sortObjects) { + _matrix$1.copy(this.matrixWorld).invert(); + _vector$5.setFromMatrixPosition(camera.matrixWorld).applyMatrix4(_matrix$1); + _forward.set(0, 0, -1).transformDirection(camera.matrixWorld).transformDirection(_matrix$1); + for (let i = 0, l = instanceInfo.length; i < l; i++) { + if (instanceInfo[i].visible && instanceInfo[i].active) { + const geometryId = instanceInfo[i].geometryIndex; + this.getMatrixAt(i, _matrix$1); + this.getBoundingSphereAt(geometryId, _sphere$2).applyMatrix4(_matrix$1); + let culled = false; + if (perObjectFrustumCulled) { + culled = !_frustum.intersectsSphere(_sphere$2); + } + if (!culled) { + const geometryInfo = geometryInfoList[geometryId]; + const z = _temp.subVectors(_sphere$2.center, _vector$5).dot(_forward); + _renderList.push(geometryInfo.start, geometryInfo.count, z, i); + } + } + } + const list = _renderList.list; + const customSort = this.customSort; + if (customSort === null) { + list.sort(material.transparent ? sortTransparent : sortOpaque); + } else { + customSort.call(this, list, camera); + } + for (let i = 0, l = list.length; i < l; i++) { + const item = list[i]; + multiDrawStarts[multiDrawCount] = item.start * bytesPerElement; + multiDrawCounts[multiDrawCount] = item.count; + indirectArray[multiDrawCount] = item.index; + multiDrawCount++; + } + _renderList.reset(); + } else { + for (let i = 0, l = instanceInfo.length; i < l; i++) { + if (instanceInfo[i].visible && instanceInfo[i].active) { + const geometryId = instanceInfo[i].geometryIndex; + let culled = false; + if (perObjectFrustumCulled) { + this.getMatrixAt(i, _matrix$1); + this.getBoundingSphereAt(geometryId, _sphere$2).applyMatrix4(_matrix$1); + culled = !_frustum.intersectsSphere(_sphere$2); + } + if (!culled) { + const geometryInfo = geometryInfoList[geometryId]; + multiDrawStarts[multiDrawCount] = geometryInfo.start * bytesPerElement; + multiDrawCounts[multiDrawCount] = geometryInfo.count; + indirectArray[multiDrawCount] = i; + multiDrawCount++; + } + } + } + } + indirectTexture.needsUpdate = true; + this._multiDrawCount = multiDrawCount; + this._visibilityChanged = false; + } + onBeforeShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial) { + this.onBeforeRender(renderer, null, shadowCamera, geometry, depthMaterial); + } +} +class LineBasicMaterial extends Material { + static { + __name(this, "LineBasicMaterial"); + } + static get type() { + return "LineBasicMaterial"; + } + constructor(parameters) { + super(); + this.isLineBasicMaterial = true; + this.color = new Color(16777215); + this.map = null; + this.linewidth = 1; + this.linecap = "round"; + this.linejoin = "round"; + this.fog = true; + this.setValues(parameters); + } + copy(source) { + super.copy(source); + this.color.copy(source.color); + this.map = source.map; + this.linewidth = source.linewidth; + this.linecap = source.linecap; + this.linejoin = source.linejoin; + this.fog = source.fog; + return this; + } +} +const _vStart = /* @__PURE__ */ new Vector3(); +const _vEnd = /* @__PURE__ */ new Vector3(); +const _inverseMatrix$1 = /* @__PURE__ */ new Matrix4(); +const _ray$1 = /* @__PURE__ */ new Ray(); +const _sphere$1 = /* @__PURE__ */ new Sphere(); +const _intersectPointOnRay = /* @__PURE__ */ new Vector3(); +const _intersectPointOnSegment = /* @__PURE__ */ new Vector3(); +class Line extends Object3D { + static { + __name(this, "Line"); + } + constructor(geometry = new BufferGeometry(), material = new LineBasicMaterial()) { + super(); + this.isLine = true; + this.type = "Line"; + this.geometry = geometry; + this.material = material; + this.updateMorphTargets(); + } + copy(source, recursive) { + super.copy(source, recursive); + this.material = Array.isArray(source.material) ? source.material.slice() : source.material; + this.geometry = source.geometry; + return this; + } + computeLineDistances() { + const geometry = this.geometry; + if (geometry.index === null) { + const positionAttribute = geometry.attributes.position; + const lineDistances = [0]; + for (let i = 1, l = positionAttribute.count; i < l; i++) { + _vStart.fromBufferAttribute(positionAttribute, i - 1); + _vEnd.fromBufferAttribute(positionAttribute, i); + lineDistances[i] = lineDistances[i - 1]; + lineDistances[i] += _vStart.distanceTo(_vEnd); + } + geometry.setAttribute("lineDistance", new Float32BufferAttribute(lineDistances, 1)); + } else { + console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry."); + } + return this; + } + raycast(raycaster, intersects2) { + const geometry = this.geometry; + const matrixWorld = this.matrixWorld; + const threshold = raycaster.params.Line.threshold; + const drawRange = geometry.drawRange; + if (geometry.boundingSphere === null) geometry.computeBoundingSphere(); + _sphere$1.copy(geometry.boundingSphere); + _sphere$1.applyMatrix4(matrixWorld); + _sphere$1.radius += threshold; + if (raycaster.ray.intersectsSphere(_sphere$1) === false) return; + _inverseMatrix$1.copy(matrixWorld).invert(); + _ray$1.copy(raycaster.ray).applyMatrix4(_inverseMatrix$1); + const localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3); + const localThresholdSq = localThreshold * localThreshold; + const step = this.isLineSegments ? 2 : 1; + const index = geometry.index; + const attributes = geometry.attributes; + const positionAttribute = attributes.position; + if (index !== null) { + const start = Math.max(0, drawRange.start); + const end = Math.min(index.count, drawRange.start + drawRange.count); + for (let i = start, l = end - 1; i < l; i += step) { + const a = index.getX(i); + const b = index.getX(i + 1); + const intersect2 = checkIntersection(this, raycaster, _ray$1, localThresholdSq, a, b); + if (intersect2) { + intersects2.push(intersect2); + } + } + if (this.isLineLoop) { + const a = index.getX(end - 1); + const b = index.getX(start); + const intersect2 = checkIntersection(this, raycaster, _ray$1, localThresholdSq, a, b); + if (intersect2) { + intersects2.push(intersect2); + } + } + } else { + const start = Math.max(0, drawRange.start); + const end = Math.min(positionAttribute.count, drawRange.start + drawRange.count); + for (let i = start, l = end - 1; i < l; i += step) { + const intersect2 = checkIntersection(this, raycaster, _ray$1, localThresholdSq, i, i + 1); + if (intersect2) { + intersects2.push(intersect2); + } + } + if (this.isLineLoop) { + const intersect2 = checkIntersection(this, raycaster, _ray$1, localThresholdSq, end - 1, start); + if (intersect2) { + intersects2.push(intersect2); + } + } + } + } + updateMorphTargets() { + const geometry = this.geometry; + const morphAttributes = geometry.morphAttributes; + const keys = Object.keys(morphAttributes); + if (keys.length > 0) { + const morphAttribute = morphAttributes[keys[0]]; + if (morphAttribute !== void 0) { + this.morphTargetInfluences = []; + this.morphTargetDictionary = {}; + for (let m = 0, ml = morphAttribute.length; m < ml; m++) { + const name = morphAttribute[m].name || String(m); + this.morphTargetInfluences.push(0); + this.morphTargetDictionary[name] = m; + } + } + } + } +} +function checkIntersection(object, raycaster, ray, thresholdSq, a, b) { + const positionAttribute = object.geometry.attributes.position; + _vStart.fromBufferAttribute(positionAttribute, a); + _vEnd.fromBufferAttribute(positionAttribute, b); + const distSq = ray.distanceSqToSegment(_vStart, _vEnd, _intersectPointOnRay, _intersectPointOnSegment); + if (distSq > thresholdSq) return; + _intersectPointOnRay.applyMatrix4(object.matrixWorld); + const distance = raycaster.ray.origin.distanceTo(_intersectPointOnRay); + if (distance < raycaster.near || distance > raycaster.far) return; + return { + distance, + // What do we want? intersection point on the ray or on the segment?? + // point: raycaster.ray.at( distance ), + point: _intersectPointOnSegment.clone().applyMatrix4(object.matrixWorld), + index: a, + face: null, + faceIndex: null, + barycoord: null, + object + }; +} +__name(checkIntersection, "checkIntersection"); +const _start = /* @__PURE__ */ new Vector3(); +const _end = /* @__PURE__ */ new Vector3(); +class LineSegments extends Line { + static { + __name(this, "LineSegments"); + } + constructor(geometry, material) { + super(geometry, material); + this.isLineSegments = true; + this.type = "LineSegments"; + } + computeLineDistances() { + const geometry = this.geometry; + if (geometry.index === null) { + const positionAttribute = geometry.attributes.position; + const lineDistances = []; + for (let i = 0, l = positionAttribute.count; i < l; i += 2) { + _start.fromBufferAttribute(positionAttribute, i); + _end.fromBufferAttribute(positionAttribute, i + 1); + lineDistances[i] = i === 0 ? 0 : lineDistances[i - 1]; + lineDistances[i + 1] = lineDistances[i] + _start.distanceTo(_end); + } + geometry.setAttribute("lineDistance", new Float32BufferAttribute(lineDistances, 1)); + } else { + console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry."); + } + return this; + } +} +class LineLoop extends Line { + static { + __name(this, "LineLoop"); + } + constructor(geometry, material) { + super(geometry, material); + this.isLineLoop = true; + this.type = "LineLoop"; + } +} +class PointsMaterial extends Material { + static { + __name(this, "PointsMaterial"); + } + static get type() { + return "PointsMaterial"; + } + constructor(parameters) { + super(); + this.isPointsMaterial = true; + this.color = new Color(16777215); + this.map = null; + this.alphaMap = null; + this.size = 1; + this.sizeAttenuation = true; + this.fog = true; + this.setValues(parameters); + } + copy(source) { + super.copy(source); + this.color.copy(source.color); + this.map = source.map; + this.alphaMap = source.alphaMap; + this.size = source.size; + this.sizeAttenuation = source.sizeAttenuation; + this.fog = source.fog; + return this; + } +} +const _inverseMatrix = /* @__PURE__ */ new Matrix4(); +const _ray$4 = /* @__PURE__ */ new Ray(); +const _sphere = /* @__PURE__ */ new Sphere(); +const _position$2 = /* @__PURE__ */ new Vector3(); +class Points extends Object3D { + static { + __name(this, "Points"); + } + constructor(geometry = new BufferGeometry(), material = new PointsMaterial()) { + super(); + this.isPoints = true; + this.type = "Points"; + this.geometry = geometry; + this.material = material; + this.updateMorphTargets(); + } + copy(source, recursive) { + super.copy(source, recursive); + this.material = Array.isArray(source.material) ? source.material.slice() : source.material; + this.geometry = source.geometry; + return this; + } + raycast(raycaster, intersects2) { + const geometry = this.geometry; + const matrixWorld = this.matrixWorld; + const threshold = raycaster.params.Points.threshold; + const drawRange = geometry.drawRange; + if (geometry.boundingSphere === null) geometry.computeBoundingSphere(); + _sphere.copy(geometry.boundingSphere); + _sphere.applyMatrix4(matrixWorld); + _sphere.radius += threshold; + if (raycaster.ray.intersectsSphere(_sphere) === false) return; + _inverseMatrix.copy(matrixWorld).invert(); + _ray$4.copy(raycaster.ray).applyMatrix4(_inverseMatrix); + const localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3); + const localThresholdSq = localThreshold * localThreshold; + const index = geometry.index; + const attributes = geometry.attributes; + const positionAttribute = attributes.position; + if (index !== null) { + const start = Math.max(0, drawRange.start); + const end = Math.min(index.count, drawRange.start + drawRange.count); + for (let i = start, il = end; i < il; i++) { + const a = index.getX(i); + _position$2.fromBufferAttribute(positionAttribute, a); + testPoint(_position$2, a, localThresholdSq, matrixWorld, raycaster, intersects2, this); + } + } else { + const start = Math.max(0, drawRange.start); + const end = Math.min(positionAttribute.count, drawRange.start + drawRange.count); + for (let i = start, l = end; i < l; i++) { + _position$2.fromBufferAttribute(positionAttribute, i); + testPoint(_position$2, i, localThresholdSq, matrixWorld, raycaster, intersects2, this); + } + } + } + updateMorphTargets() { + const geometry = this.geometry; + const morphAttributes = geometry.morphAttributes; + const keys = Object.keys(morphAttributes); + if (keys.length > 0) { + const morphAttribute = morphAttributes[keys[0]]; + if (morphAttribute !== void 0) { + this.morphTargetInfluences = []; + this.morphTargetDictionary = {}; + for (let m = 0, ml = morphAttribute.length; m < ml; m++) { + const name = morphAttribute[m].name || String(m); + this.morphTargetInfluences.push(0); + this.morphTargetDictionary[name] = m; + } + } + } + } +} +function testPoint(point, index, localThresholdSq, matrixWorld, raycaster, intersects2, object) { + const rayPointDistanceSq = _ray$4.distanceSqToPoint(point); + if (rayPointDistanceSq < localThresholdSq) { + const intersectPoint = new Vector3(); + _ray$4.closestPointToPoint(point, intersectPoint); + intersectPoint.applyMatrix4(matrixWorld); + const distance = raycaster.ray.origin.distanceTo(intersectPoint); + if (distance < raycaster.near || distance > raycaster.far) return; + intersects2.push({ + distance, + distanceToRay: Math.sqrt(rayPointDistanceSq), + point: intersectPoint, + index, + face: null, + faceIndex: null, + barycoord: null, + object + }); + } +} +__name(testPoint, "testPoint"); +class VideoTexture extends Texture { + static { + __name(this, "VideoTexture"); + } + constructor(video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) { + super(video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy); + this.isVideoTexture = true; + this.minFilter = minFilter !== void 0 ? minFilter : LinearFilter; + this.magFilter = magFilter !== void 0 ? magFilter : LinearFilter; + this.generateMipmaps = false; + const scope = this; + function updateVideo() { + scope.needsUpdate = true; + video.requestVideoFrameCallback(updateVideo); + } + __name(updateVideo, "updateVideo"); + if ("requestVideoFrameCallback" in video) { + video.requestVideoFrameCallback(updateVideo); + } + } + clone() { + return new this.constructor(this.image).copy(this); + } + update() { + const video = this.image; + const hasVideoFrameCallback = "requestVideoFrameCallback" in video; + if (hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA) { + this.needsUpdate = true; + } + } +} +class FramebufferTexture extends Texture { + static { + __name(this, "FramebufferTexture"); + } + constructor(width, height) { + super({ width, height }); + this.isFramebufferTexture = true; + this.magFilter = NearestFilter; + this.minFilter = NearestFilter; + this.generateMipmaps = false; + this.needsUpdate = true; + } +} +class CompressedTexture extends Texture { + static { + __name(this, "CompressedTexture"); + } + constructor(mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, colorSpace) { + super(null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace); + this.isCompressedTexture = true; + this.image = { width, height }; + this.mipmaps = mipmaps; + this.flipY = false; + this.generateMipmaps = false; + } +} +class CompressedArrayTexture extends CompressedTexture { + static { + __name(this, "CompressedArrayTexture"); + } + constructor(mipmaps, width, height, depth, format, type) { + super(mipmaps, width, height, format, type); + this.isCompressedArrayTexture = true; + this.image.depth = depth; + this.wrapR = ClampToEdgeWrapping; + this.layerUpdates = /* @__PURE__ */ new Set(); + } + addLayerUpdate(layerIndex) { + this.layerUpdates.add(layerIndex); + } + clearLayerUpdates() { + this.layerUpdates.clear(); + } +} +class CompressedCubeTexture extends CompressedTexture { + static { + __name(this, "CompressedCubeTexture"); + } + constructor(images, format, type) { + super(void 0, images[0].width, images[0].height, format, type, CubeReflectionMapping); + this.isCompressedCubeTexture = true; + this.isCubeTexture = true; + this.image = images; + } +} +class CanvasTexture extends Texture { + static { + __name(this, "CanvasTexture"); + } + constructor(canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) { + super(canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy); + this.isCanvasTexture = true; + this.needsUpdate = true; + } +} +class Curve { + static { + __name(this, "Curve"); + } + constructor() { + this.type = "Curve"; + this.arcLengthDivisions = 200; + } + // Virtual base class method to overwrite and implement in subclasses + // - t [0 .. 1] + getPoint() { + console.warn("THREE.Curve: .getPoint() not implemented."); + return null; + } + // Get point at relative position in curve according to arc length + // - u [0 .. 1] + getPointAt(u, optionalTarget) { + const t2 = this.getUtoTmapping(u); + return this.getPoint(t2, optionalTarget); + } + // Get sequence of points using getPoint( t ) + getPoints(divisions = 5) { + const points = []; + for (let d = 0; d <= divisions; d++) { + points.push(this.getPoint(d / divisions)); + } + return points; + } + // Get sequence of points using getPointAt( u ) + getSpacedPoints(divisions = 5) { + const points = []; + for (let d = 0; d <= divisions; d++) { + points.push(this.getPointAt(d / divisions)); + } + return points; + } + // Get total curve arc length + getLength() { + const lengths = this.getLengths(); + return lengths[lengths.length - 1]; + } + // Get list of cumulative segment lengths + getLengths(divisions = this.arcLengthDivisions) { + if (this.cacheArcLengths && this.cacheArcLengths.length === divisions + 1 && !this.needsUpdate) { + return this.cacheArcLengths; + } + this.needsUpdate = false; + const cache = []; + let current, last = this.getPoint(0); + let sum = 0; + cache.push(0); + for (let p = 1; p <= divisions; p++) { + current = this.getPoint(p / divisions); + sum += current.distanceTo(last); + cache.push(sum); + last = current; + } + this.cacheArcLengths = cache; + return cache; + } + updateArcLengths() { + this.needsUpdate = true; + this.getLengths(); + } + // Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant + getUtoTmapping(u, distance) { + const arcLengths = this.getLengths(); + let i = 0; + const il = arcLengths.length; + let targetArcLength; + if (distance) { + targetArcLength = distance; + } else { + targetArcLength = u * arcLengths[il - 1]; + } + let low = 0, high = il - 1, comparison; + while (low <= high) { + i = Math.floor(low + (high - low) / 2); + comparison = arcLengths[i] - targetArcLength; + if (comparison < 0) { + low = i + 1; + } else if (comparison > 0) { + high = i - 1; + } else { + high = i; + break; + } + } + i = high; + if (arcLengths[i] === targetArcLength) { + return i / (il - 1); + } + const lengthBefore = arcLengths[i]; + const lengthAfter = arcLengths[i + 1]; + const segmentLength = lengthAfter - lengthBefore; + const segmentFraction = (targetArcLength - lengthBefore) / segmentLength; + const t2 = (i + segmentFraction) / (il - 1); + return t2; + } + // Returns a unit vector tangent at t + // In case any sub curve does not implement its tangent derivation, + // 2 points a small delta apart will be used to find its gradient + // which seems to give a reasonable approximation + getTangent(t2, optionalTarget) { + const delta = 1e-4; + let t1 = t2 - delta; + let t22 = t2 + delta; + if (t1 < 0) t1 = 0; + if (t22 > 1) t22 = 1; + const pt1 = this.getPoint(t1); + const pt2 = this.getPoint(t22); + const tangent = optionalTarget || (pt1.isVector2 ? new Vector2() : new Vector3()); + tangent.copy(pt2).sub(pt1).normalize(); + return tangent; + } + getTangentAt(u, optionalTarget) { + const t2 = this.getUtoTmapping(u); + return this.getTangent(t2, optionalTarget); + } + computeFrenetFrames(segments, closed) { + const normal = new Vector3(); + const tangents = []; + const normals = []; + const binormals = []; + const vec = new Vector3(); + const mat = new Matrix4(); + for (let i = 0; i <= segments; i++) { + const u = i / segments; + tangents[i] = this.getTangentAt(u, new Vector3()); + } + normals[0] = new Vector3(); + binormals[0] = new Vector3(); + let min = Number.MAX_VALUE; + const tx = Math.abs(tangents[0].x); + const ty = Math.abs(tangents[0].y); + const tz = Math.abs(tangents[0].z); + if (tx <= min) { + min = tx; + normal.set(1, 0, 0); + } + if (ty <= min) { + min = ty; + normal.set(0, 1, 0); + } + if (tz <= min) { + normal.set(0, 0, 1); + } + vec.crossVectors(tangents[0], normal).normalize(); + normals[0].crossVectors(tangents[0], vec); + binormals[0].crossVectors(tangents[0], normals[0]); + for (let i = 1; i <= segments; i++) { + normals[i] = normals[i - 1].clone(); + binormals[i] = binormals[i - 1].clone(); + vec.crossVectors(tangents[i - 1], tangents[i]); + if (vec.length() > Number.EPSILON) { + vec.normalize(); + const theta = Math.acos(clamp(tangents[i - 1].dot(tangents[i]), -1, 1)); + normals[i].applyMatrix4(mat.makeRotationAxis(vec, theta)); + } + binormals[i].crossVectors(tangents[i], normals[i]); + } + if (closed === true) { + let theta = Math.acos(clamp(normals[0].dot(normals[segments]), -1, 1)); + theta /= segments; + if (tangents[0].dot(vec.crossVectors(normals[0], normals[segments])) > 0) { + theta = -theta; + } + for (let i = 1; i <= segments; i++) { + normals[i].applyMatrix4(mat.makeRotationAxis(tangents[i], theta * i)); + binormals[i].crossVectors(tangents[i], normals[i]); + } + } + return { + tangents, + normals, + binormals + }; + } + clone() { + return new this.constructor().copy(this); + } + copy(source) { + this.arcLengthDivisions = source.arcLengthDivisions; + return this; + } + toJSON() { + const data = { + metadata: { + version: 4.6, + type: "Curve", + generator: "Curve.toJSON" + } + }; + data.arcLengthDivisions = this.arcLengthDivisions; + data.type = this.type; + return data; + } + fromJSON(json) { + this.arcLengthDivisions = json.arcLengthDivisions; + return this; + } +} +class EllipseCurve extends Curve { + static { + __name(this, "EllipseCurve"); + } + constructor(aX = 0, aY = 0, xRadius = 1, yRadius = 1, aStartAngle = 0, aEndAngle = Math.PI * 2, aClockwise = false, aRotation = 0) { + super(); + this.isEllipseCurve = true; + this.type = "EllipseCurve"; + this.aX = aX; + this.aY = aY; + this.xRadius = xRadius; + this.yRadius = yRadius; + this.aStartAngle = aStartAngle; + this.aEndAngle = aEndAngle; + this.aClockwise = aClockwise; + this.aRotation = aRotation; + } + getPoint(t2, optionalTarget = new Vector2()) { + const point = optionalTarget; + const twoPi = Math.PI * 2; + let deltaAngle = this.aEndAngle - this.aStartAngle; + const samePoints = Math.abs(deltaAngle) < Number.EPSILON; + while (deltaAngle < 0) deltaAngle += twoPi; + while (deltaAngle > twoPi) deltaAngle -= twoPi; + if (deltaAngle < Number.EPSILON) { + if (samePoints) { + deltaAngle = 0; + } else { + deltaAngle = twoPi; + } + } + if (this.aClockwise === true && !samePoints) { + if (deltaAngle === twoPi) { + deltaAngle = -twoPi; + } else { + deltaAngle = deltaAngle - twoPi; + } + } + const angle = this.aStartAngle + t2 * deltaAngle; + let x = this.aX + this.xRadius * Math.cos(angle); + let y = this.aY + this.yRadius * Math.sin(angle); + if (this.aRotation !== 0) { + const cos = Math.cos(this.aRotation); + const sin = Math.sin(this.aRotation); + const tx = x - this.aX; + const ty = y - this.aY; + x = tx * cos - ty * sin + this.aX; + y = tx * sin + ty * cos + this.aY; + } + return point.set(x, y); + } + copy(source) { + super.copy(source); + this.aX = source.aX; + this.aY = source.aY; + this.xRadius = source.xRadius; + this.yRadius = source.yRadius; + this.aStartAngle = source.aStartAngle; + this.aEndAngle = source.aEndAngle; + this.aClockwise = source.aClockwise; + this.aRotation = source.aRotation; + return this; + } + toJSON() { + const data = super.toJSON(); + data.aX = this.aX; + data.aY = this.aY; + data.xRadius = this.xRadius; + data.yRadius = this.yRadius; + data.aStartAngle = this.aStartAngle; + data.aEndAngle = this.aEndAngle; + data.aClockwise = this.aClockwise; + data.aRotation = this.aRotation; + return data; + } + fromJSON(json) { + super.fromJSON(json); + this.aX = json.aX; + this.aY = json.aY; + this.xRadius = json.xRadius; + this.yRadius = json.yRadius; + this.aStartAngle = json.aStartAngle; + this.aEndAngle = json.aEndAngle; + this.aClockwise = json.aClockwise; + this.aRotation = json.aRotation; + return this; + } +} +class ArcCurve extends EllipseCurve { + static { + __name(this, "ArcCurve"); + } + constructor(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) { + super(aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise); + this.isArcCurve = true; + this.type = "ArcCurve"; + } +} +function CubicPoly() { + let c0 = 0, c1 = 0, c2 = 0, c3 = 0; + function init(x0, x1, t0, t1) { + c0 = x0; + c1 = t0; + c2 = -3 * x0 + 3 * x1 - 2 * t0 - t1; + c3 = 2 * x0 - 2 * x1 + t0 + t1; + } + __name(init, "init"); + return { + initCatmullRom: /* @__PURE__ */ __name(function(x0, x1, x2, x3, tension) { + init(x1, x2, tension * (x2 - x0), tension * (x3 - x1)); + }, "initCatmullRom"), + initNonuniformCatmullRom: /* @__PURE__ */ __name(function(x0, x1, x2, x3, dt0, dt1, dt2) { + let t1 = (x1 - x0) / dt0 - (x2 - x0) / (dt0 + dt1) + (x2 - x1) / dt1; + let t2 = (x2 - x1) / dt1 - (x3 - x1) / (dt1 + dt2) + (x3 - x2) / dt2; + t1 *= dt1; + t2 *= dt1; + init(x1, x2, t1, t2); + }, "initNonuniformCatmullRom"), + calc: /* @__PURE__ */ __name(function(t2) { + const t22 = t2 * t2; + const t3 = t22 * t2; + return c0 + c1 * t2 + c2 * t22 + c3 * t3; + }, "calc") + }; +} +__name(CubicPoly, "CubicPoly"); +const tmp = /* @__PURE__ */ new Vector3(); +const px = /* @__PURE__ */ new CubicPoly(); +const py = /* @__PURE__ */ new CubicPoly(); +const pz = /* @__PURE__ */ new CubicPoly(); +class CatmullRomCurve3 extends Curve { + static { + __name(this, "CatmullRomCurve3"); + } + constructor(points = [], closed = false, curveType = "centripetal", tension = 0.5) { + super(); + this.isCatmullRomCurve3 = true; + this.type = "CatmullRomCurve3"; + this.points = points; + this.closed = closed; + this.curveType = curveType; + this.tension = tension; + } + getPoint(t2, optionalTarget = new Vector3()) { + const point = optionalTarget; + const points = this.points; + const l = points.length; + const p = (l - (this.closed ? 0 : 1)) * t2; + let intPoint = Math.floor(p); + let weight = p - intPoint; + if (this.closed) { + intPoint += intPoint > 0 ? 0 : (Math.floor(Math.abs(intPoint) / l) + 1) * l; + } else if (weight === 0 && intPoint === l - 1) { + intPoint = l - 2; + weight = 1; + } + let p0, p3; + if (this.closed || intPoint > 0) { + p0 = points[(intPoint - 1) % l]; + } else { + tmp.subVectors(points[0], points[1]).add(points[0]); + p0 = tmp; + } + const p1 = points[intPoint % l]; + const p2 = points[(intPoint + 1) % l]; + if (this.closed || intPoint + 2 < l) { + p3 = points[(intPoint + 2) % l]; + } else { + tmp.subVectors(points[l - 1], points[l - 2]).add(points[l - 1]); + p3 = tmp; + } + if (this.curveType === "centripetal" || this.curveType === "chordal") { + const pow = this.curveType === "chordal" ? 0.5 : 0.25; + let dt0 = Math.pow(p0.distanceToSquared(p1), pow); + let dt1 = Math.pow(p1.distanceToSquared(p2), pow); + let dt2 = Math.pow(p2.distanceToSquared(p3), pow); + if (dt1 < 1e-4) dt1 = 1; + if (dt0 < 1e-4) dt0 = dt1; + if (dt2 < 1e-4) dt2 = dt1; + px.initNonuniformCatmullRom(p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2); + py.initNonuniformCatmullRom(p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2); + pz.initNonuniformCatmullRom(p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2); + } else if (this.curveType === "catmullrom") { + px.initCatmullRom(p0.x, p1.x, p2.x, p3.x, this.tension); + py.initCatmullRom(p0.y, p1.y, p2.y, p3.y, this.tension); + pz.initCatmullRom(p0.z, p1.z, p2.z, p3.z, this.tension); + } + point.set( + px.calc(weight), + py.calc(weight), + pz.calc(weight) + ); + return point; + } + copy(source) { + super.copy(source); + this.points = []; + for (let i = 0, l = source.points.length; i < l; i++) { + const point = source.points[i]; + this.points.push(point.clone()); + } + this.closed = source.closed; + this.curveType = source.curveType; + this.tension = source.tension; + return this; + } + toJSON() { + const data = super.toJSON(); + data.points = []; + for (let i = 0, l = this.points.length; i < l; i++) { + const point = this.points[i]; + data.points.push(point.toArray()); + } + data.closed = this.closed; + data.curveType = this.curveType; + data.tension = this.tension; + return data; + } + fromJSON(json) { + super.fromJSON(json); + this.points = []; + for (let i = 0, l = json.points.length; i < l; i++) { + const point = json.points[i]; + this.points.push(new Vector3().fromArray(point)); + } + this.closed = json.closed; + this.curveType = json.curveType; + this.tension = json.tension; + return this; + } +} +function CatmullRom(t2, p0, p1, p2, p3) { + const v0 = (p2 - p0) * 0.5; + const v1 = (p3 - p1) * 0.5; + const t22 = t2 * t2; + const t3 = t2 * t22; + return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t22 + v0 * t2 + p1; +} +__name(CatmullRom, "CatmullRom"); +function QuadraticBezierP0(t2, p) { + const k = 1 - t2; + return k * k * p; +} +__name(QuadraticBezierP0, "QuadraticBezierP0"); +function QuadraticBezierP1(t2, p) { + return 2 * (1 - t2) * t2 * p; +} +__name(QuadraticBezierP1, "QuadraticBezierP1"); +function QuadraticBezierP2(t2, p) { + return t2 * t2 * p; +} +__name(QuadraticBezierP2, "QuadraticBezierP2"); +function QuadraticBezier(t2, p0, p1, p2) { + return QuadraticBezierP0(t2, p0) + QuadraticBezierP1(t2, p1) + QuadraticBezierP2(t2, p2); +} +__name(QuadraticBezier, "QuadraticBezier"); +function CubicBezierP0(t2, p) { + const k = 1 - t2; + return k * k * k * p; +} +__name(CubicBezierP0, "CubicBezierP0"); +function CubicBezierP1(t2, p) { + const k = 1 - t2; + return 3 * k * k * t2 * p; +} +__name(CubicBezierP1, "CubicBezierP1"); +function CubicBezierP2(t2, p) { + return 3 * (1 - t2) * t2 * t2 * p; +} +__name(CubicBezierP2, "CubicBezierP2"); +function CubicBezierP3(t2, p) { + return t2 * t2 * t2 * p; +} +__name(CubicBezierP3, "CubicBezierP3"); +function CubicBezier(t2, p0, p1, p2, p3) { + return CubicBezierP0(t2, p0) + CubicBezierP1(t2, p1) + CubicBezierP2(t2, p2) + CubicBezierP3(t2, p3); +} +__name(CubicBezier, "CubicBezier"); +class CubicBezierCurve extends Curve { + static { + __name(this, "CubicBezierCurve"); + } + constructor(v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2(), v3 = new Vector2()) { + super(); + this.isCubicBezierCurve = true; + this.type = "CubicBezierCurve"; + this.v0 = v0; + this.v1 = v1; + this.v2 = v2; + this.v3 = v3; + } + getPoint(t2, optionalTarget = new Vector2()) { + const point = optionalTarget; + const v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3; + point.set( + CubicBezier(t2, v0.x, v1.x, v2.x, v3.x), + CubicBezier(t2, v0.y, v1.y, v2.y, v3.y) + ); + return point; + } + copy(source) { + super.copy(source); + this.v0.copy(source.v0); + this.v1.copy(source.v1); + this.v2.copy(source.v2); + this.v3.copy(source.v3); + return this; + } + toJSON() { + const data = super.toJSON(); + data.v0 = this.v0.toArray(); + data.v1 = this.v1.toArray(); + data.v2 = this.v2.toArray(); + data.v3 = this.v3.toArray(); + return data; + } + fromJSON(json) { + super.fromJSON(json); + this.v0.fromArray(json.v0); + this.v1.fromArray(json.v1); + this.v2.fromArray(json.v2); + this.v3.fromArray(json.v3); + return this; + } +} +class CubicBezierCurve3 extends Curve { + static { + __name(this, "CubicBezierCurve3"); + } + constructor(v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3(), v3 = new Vector3()) { + super(); + this.isCubicBezierCurve3 = true; + this.type = "CubicBezierCurve3"; + this.v0 = v0; + this.v1 = v1; + this.v2 = v2; + this.v3 = v3; + } + getPoint(t2, optionalTarget = new Vector3()) { + const point = optionalTarget; + const v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3; + point.set( + CubicBezier(t2, v0.x, v1.x, v2.x, v3.x), + CubicBezier(t2, v0.y, v1.y, v2.y, v3.y), + CubicBezier(t2, v0.z, v1.z, v2.z, v3.z) + ); + return point; + } + copy(source) { + super.copy(source); + this.v0.copy(source.v0); + this.v1.copy(source.v1); + this.v2.copy(source.v2); + this.v3.copy(source.v3); + return this; + } + toJSON() { + const data = super.toJSON(); + data.v0 = this.v0.toArray(); + data.v1 = this.v1.toArray(); + data.v2 = this.v2.toArray(); + data.v3 = this.v3.toArray(); + return data; + } + fromJSON(json) { + super.fromJSON(json); + this.v0.fromArray(json.v0); + this.v1.fromArray(json.v1); + this.v2.fromArray(json.v2); + this.v3.fromArray(json.v3); + return this; + } +} +class LineCurve extends Curve { + static { + __name(this, "LineCurve"); + } + constructor(v1 = new Vector2(), v2 = new Vector2()) { + super(); + this.isLineCurve = true; + this.type = "LineCurve"; + this.v1 = v1; + this.v2 = v2; + } + getPoint(t2, optionalTarget = new Vector2()) { + const point = optionalTarget; + if (t2 === 1) { + point.copy(this.v2); + } else { + point.copy(this.v2).sub(this.v1); + point.multiplyScalar(t2).add(this.v1); + } + return point; + } + // Line curve is linear, so we can overwrite default getPointAt + getPointAt(u, optionalTarget) { + return this.getPoint(u, optionalTarget); + } + getTangent(t2, optionalTarget = new Vector2()) { + return optionalTarget.subVectors(this.v2, this.v1).normalize(); + } + getTangentAt(u, optionalTarget) { + return this.getTangent(u, optionalTarget); + } + copy(source) { + super.copy(source); + this.v1.copy(source.v1); + this.v2.copy(source.v2); + return this; + } + toJSON() { + const data = super.toJSON(); + data.v1 = this.v1.toArray(); + data.v2 = this.v2.toArray(); + return data; + } + fromJSON(json) { + super.fromJSON(json); + this.v1.fromArray(json.v1); + this.v2.fromArray(json.v2); + return this; + } +} +class LineCurve3 extends Curve { + static { + __name(this, "LineCurve3"); + } + constructor(v1 = new Vector3(), v2 = new Vector3()) { + super(); + this.isLineCurve3 = true; + this.type = "LineCurve3"; + this.v1 = v1; + this.v2 = v2; + } + getPoint(t2, optionalTarget = new Vector3()) { + const point = optionalTarget; + if (t2 === 1) { + point.copy(this.v2); + } else { + point.copy(this.v2).sub(this.v1); + point.multiplyScalar(t2).add(this.v1); + } + return point; + } + // Line curve is linear, so we can overwrite default getPointAt + getPointAt(u, optionalTarget) { + return this.getPoint(u, optionalTarget); + } + getTangent(t2, optionalTarget = new Vector3()) { + return optionalTarget.subVectors(this.v2, this.v1).normalize(); + } + getTangentAt(u, optionalTarget) { + return this.getTangent(u, optionalTarget); + } + copy(source) { + super.copy(source); + this.v1.copy(source.v1); + this.v2.copy(source.v2); + return this; + } + toJSON() { + const data = super.toJSON(); + data.v1 = this.v1.toArray(); + data.v2 = this.v2.toArray(); + return data; + } + fromJSON(json) { + super.fromJSON(json); + this.v1.fromArray(json.v1); + this.v2.fromArray(json.v2); + return this; + } +} +class QuadraticBezierCurve extends Curve { + static { + __name(this, "QuadraticBezierCurve"); + } + constructor(v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2()) { + super(); + this.isQuadraticBezierCurve = true; + this.type = "QuadraticBezierCurve"; + this.v0 = v0; + this.v1 = v1; + this.v2 = v2; + } + getPoint(t2, optionalTarget = new Vector2()) { + const point = optionalTarget; + const v0 = this.v0, v1 = this.v1, v2 = this.v2; + point.set( + QuadraticBezier(t2, v0.x, v1.x, v2.x), + QuadraticBezier(t2, v0.y, v1.y, v2.y) + ); + return point; + } + copy(source) { + super.copy(source); + this.v0.copy(source.v0); + this.v1.copy(source.v1); + this.v2.copy(source.v2); + return this; + } + toJSON() { + const data = super.toJSON(); + data.v0 = this.v0.toArray(); + data.v1 = this.v1.toArray(); + data.v2 = this.v2.toArray(); + return data; + } + fromJSON(json) { + super.fromJSON(json); + this.v0.fromArray(json.v0); + this.v1.fromArray(json.v1); + this.v2.fromArray(json.v2); + return this; + } +} +class QuadraticBezierCurve3 extends Curve { + static { + __name(this, "QuadraticBezierCurve3"); + } + constructor(v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3()) { + super(); + this.isQuadraticBezierCurve3 = true; + this.type = "QuadraticBezierCurve3"; + this.v0 = v0; + this.v1 = v1; + this.v2 = v2; + } + getPoint(t2, optionalTarget = new Vector3()) { + const point = optionalTarget; + const v0 = this.v0, v1 = this.v1, v2 = this.v2; + point.set( + QuadraticBezier(t2, v0.x, v1.x, v2.x), + QuadraticBezier(t2, v0.y, v1.y, v2.y), + QuadraticBezier(t2, v0.z, v1.z, v2.z) + ); + return point; + } + copy(source) { + super.copy(source); + this.v0.copy(source.v0); + this.v1.copy(source.v1); + this.v2.copy(source.v2); + return this; + } + toJSON() { + const data = super.toJSON(); + data.v0 = this.v0.toArray(); + data.v1 = this.v1.toArray(); + data.v2 = this.v2.toArray(); + return data; + } + fromJSON(json) { + super.fromJSON(json); + this.v0.fromArray(json.v0); + this.v1.fromArray(json.v1); + this.v2.fromArray(json.v2); + return this; + } +} +class SplineCurve extends Curve { + static { + __name(this, "SplineCurve"); + } + constructor(points = []) { + super(); + this.isSplineCurve = true; + this.type = "SplineCurve"; + this.points = points; + } + getPoint(t2, optionalTarget = new Vector2()) { + const point = optionalTarget; + const points = this.points; + const p = (points.length - 1) * t2; + const intPoint = Math.floor(p); + const weight = p - intPoint; + const p0 = points[intPoint === 0 ? intPoint : intPoint - 1]; + const p1 = points[intPoint]; + const p2 = points[intPoint > points.length - 2 ? points.length - 1 : intPoint + 1]; + const p3 = points[intPoint > points.length - 3 ? points.length - 1 : intPoint + 2]; + point.set( + CatmullRom(weight, p0.x, p1.x, p2.x, p3.x), + CatmullRom(weight, p0.y, p1.y, p2.y, p3.y) + ); + return point; + } + copy(source) { + super.copy(source); + this.points = []; + for (let i = 0, l = source.points.length; i < l; i++) { + const point = source.points[i]; + this.points.push(point.clone()); + } + return this; + } + toJSON() { + const data = super.toJSON(); + data.points = []; + for (let i = 0, l = this.points.length; i < l; i++) { + const point = this.points[i]; + data.points.push(point.toArray()); + } + return data; + } + fromJSON(json) { + super.fromJSON(json); + this.points = []; + for (let i = 0, l = json.points.length; i < l; i++) { + const point = json.points[i]; + this.points.push(new Vector2().fromArray(point)); + } + return this; + } +} +var Curves = /* @__PURE__ */ Object.freeze({ + __proto__: null, + ArcCurve, + CatmullRomCurve3, + CubicBezierCurve, + CubicBezierCurve3, + EllipseCurve, + LineCurve, + LineCurve3, + QuadraticBezierCurve, + QuadraticBezierCurve3, + SplineCurve +}); +class CurvePath extends Curve { + static { + __name(this, "CurvePath"); + } + constructor() { + super(); + this.type = "CurvePath"; + this.curves = []; + this.autoClose = false; + } + add(curve) { + this.curves.push(curve); + } + closePath() { + const startPoint = this.curves[0].getPoint(0); + const endPoint = this.curves[this.curves.length - 1].getPoint(1); + if (!startPoint.equals(endPoint)) { + const lineType = startPoint.isVector2 === true ? "LineCurve" : "LineCurve3"; + this.curves.push(new Curves[lineType](endPoint, startPoint)); + } + return this; + } + // To get accurate point with reference to + // entire path distance at time t, + // following has to be done: + // 1. Length of each sub path have to be known + // 2. Locate and identify type of curve + // 3. Get t for the curve + // 4. Return curve.getPointAt(t') + getPoint(t2, optionalTarget) { + const d = t2 * this.getLength(); + const curveLengths = this.getCurveLengths(); + let i = 0; + while (i < curveLengths.length) { + if (curveLengths[i] >= d) { + const diff = curveLengths[i] - d; + const curve = this.curves[i]; + const segmentLength = curve.getLength(); + const u = segmentLength === 0 ? 0 : 1 - diff / segmentLength; + return curve.getPointAt(u, optionalTarget); + } + i++; + } + return null; + } + // We cannot use the default THREE.Curve getPoint() with getLength() because in + // THREE.Curve, getLength() depends on getPoint() but in THREE.CurvePath + // getPoint() depends on getLength + getLength() { + const lens = this.getCurveLengths(); + return lens[lens.length - 1]; + } + // cacheLengths must be recalculated. + updateArcLengths() { + this.needsUpdate = true; + this.cacheLengths = null; + this.getCurveLengths(); + } + // Compute lengths and cache them + // We cannot overwrite getLengths() because UtoT mapping uses it. + getCurveLengths() { + if (this.cacheLengths && this.cacheLengths.length === this.curves.length) { + return this.cacheLengths; + } + const lengths = []; + let sums = 0; + for (let i = 0, l = this.curves.length; i < l; i++) { + sums += this.curves[i].getLength(); + lengths.push(sums); + } + this.cacheLengths = lengths; + return lengths; + } + getSpacedPoints(divisions = 40) { + const points = []; + for (let i = 0; i <= divisions; i++) { + points.push(this.getPoint(i / divisions)); + } + if (this.autoClose) { + points.push(points[0]); + } + return points; + } + getPoints(divisions = 12) { + const points = []; + let last; + for (let i = 0, curves = this.curves; i < curves.length; i++) { + const curve = curves[i]; + const resolution = curve.isEllipseCurve ? divisions * 2 : curve.isLineCurve || curve.isLineCurve3 ? 1 : curve.isSplineCurve ? divisions * curve.points.length : divisions; + const pts = curve.getPoints(resolution); + for (let j = 0; j < pts.length; j++) { + const point = pts[j]; + if (last && last.equals(point)) continue; + points.push(point); + last = point; + } + } + if (this.autoClose && points.length > 1 && !points[points.length - 1].equals(points[0])) { + points.push(points[0]); + } + return points; + } + copy(source) { + super.copy(source); + this.curves = []; + for (let i = 0, l = source.curves.length; i < l; i++) { + const curve = source.curves[i]; + this.curves.push(curve.clone()); + } + this.autoClose = source.autoClose; + return this; + } + toJSON() { + const data = super.toJSON(); + data.autoClose = this.autoClose; + data.curves = []; + for (let i = 0, l = this.curves.length; i < l; i++) { + const curve = this.curves[i]; + data.curves.push(curve.toJSON()); + } + return data; + } + fromJSON(json) { + super.fromJSON(json); + this.autoClose = json.autoClose; + this.curves = []; + for (let i = 0, l = json.curves.length; i < l; i++) { + const curve = json.curves[i]; + this.curves.push(new Curves[curve.type]().fromJSON(curve)); + } + return this; + } +} +class Path extends CurvePath { + static { + __name(this, "Path"); + } + constructor(points) { + super(); + this.type = "Path"; + this.currentPoint = new Vector2(); + if (points) { + this.setFromPoints(points); + } + } + setFromPoints(points) { + this.moveTo(points[0].x, points[0].y); + for (let i = 1, l = points.length; i < l; i++) { + this.lineTo(points[i].x, points[i].y); + } + return this; + } + moveTo(x, y) { + this.currentPoint.set(x, y); + return this; + } + lineTo(x, y) { + const curve = new LineCurve(this.currentPoint.clone(), new Vector2(x, y)); + this.curves.push(curve); + this.currentPoint.set(x, y); + return this; + } + quadraticCurveTo(aCPx, aCPy, aX, aY) { + const curve = new QuadraticBezierCurve( + this.currentPoint.clone(), + new Vector2(aCPx, aCPy), + new Vector2(aX, aY) + ); + this.curves.push(curve); + this.currentPoint.set(aX, aY); + return this; + } + bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) { + const curve = new CubicBezierCurve( + this.currentPoint.clone(), + new Vector2(aCP1x, aCP1y), + new Vector2(aCP2x, aCP2y), + new Vector2(aX, aY) + ); + this.curves.push(curve); + this.currentPoint.set(aX, aY); + return this; + } + splineThru(pts) { + const npts = [this.currentPoint.clone()].concat(pts); + const curve = new SplineCurve(npts); + this.curves.push(curve); + this.currentPoint.copy(pts[pts.length - 1]); + return this; + } + arc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) { + const x0 = this.currentPoint.x; + const y0 = this.currentPoint.y; + this.absarc( + aX + x0, + aY + y0, + aRadius, + aStartAngle, + aEndAngle, + aClockwise + ); + return this; + } + absarc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) { + this.absellipse(aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise); + return this; + } + ellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) { + const x0 = this.currentPoint.x; + const y0 = this.currentPoint.y; + this.absellipse(aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation); + return this; + } + absellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) { + const curve = new EllipseCurve(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation); + if (this.curves.length > 0) { + const firstPoint = curve.getPoint(0); + if (!firstPoint.equals(this.currentPoint)) { + this.lineTo(firstPoint.x, firstPoint.y); + } + } + this.curves.push(curve); + const lastPoint = curve.getPoint(1); + this.currentPoint.copy(lastPoint); + return this; + } + copy(source) { + super.copy(source); + this.currentPoint.copy(source.currentPoint); + return this; + } + toJSON() { + const data = super.toJSON(); + data.currentPoint = this.currentPoint.toArray(); + return data; + } + fromJSON(json) { + super.fromJSON(json); + this.currentPoint.fromArray(json.currentPoint); + return this; + } +} +class LatheGeometry extends BufferGeometry { + static { + __name(this, "LatheGeometry"); + } + constructor(points = [new Vector2(0, -0.5), new Vector2(0.5, 0), new Vector2(0, 0.5)], segments = 12, phiStart = 0, phiLength = Math.PI * 2) { + super(); + this.type = "LatheGeometry"; + this.parameters = { + points, + segments, + phiStart, + phiLength + }; + segments = Math.floor(segments); + phiLength = clamp(phiLength, 0, Math.PI * 2); + const indices = []; + const vertices = []; + const uvs = []; + const initNormals = []; + const normals = []; + const inverseSegments = 1 / segments; + const vertex2 = new Vector3(); + const uv = new Vector2(); + const normal = new Vector3(); + const curNormal = new Vector3(); + const prevNormal = new Vector3(); + let dx = 0; + let dy = 0; + for (let j = 0; j <= points.length - 1; j++) { + switch (j) { + case 0: + dx = points[j + 1].x - points[j].x; + dy = points[j + 1].y - points[j].y; + normal.x = dy * 1; + normal.y = -dx; + normal.z = dy * 0; + prevNormal.copy(normal); + normal.normalize(); + initNormals.push(normal.x, normal.y, normal.z); + break; + case points.length - 1: + initNormals.push(prevNormal.x, prevNormal.y, prevNormal.z); + break; + default: + dx = points[j + 1].x - points[j].x; + dy = points[j + 1].y - points[j].y; + normal.x = dy * 1; + normal.y = -dx; + normal.z = dy * 0; + curNormal.copy(normal); + normal.x += prevNormal.x; + normal.y += prevNormal.y; + normal.z += prevNormal.z; + normal.normalize(); + initNormals.push(normal.x, normal.y, normal.z); + prevNormal.copy(curNormal); + } + } + for (let i = 0; i <= segments; i++) { + const phi = phiStart + i * inverseSegments * phiLength; + const sin = Math.sin(phi); + const cos = Math.cos(phi); + for (let j = 0; j <= points.length - 1; j++) { + vertex2.x = points[j].x * sin; + vertex2.y = points[j].y; + vertex2.z = points[j].x * cos; + vertices.push(vertex2.x, vertex2.y, vertex2.z); + uv.x = i / segments; + uv.y = j / (points.length - 1); + uvs.push(uv.x, uv.y); + const x = initNormals[3 * j + 0] * sin; + const y = initNormals[3 * j + 1]; + const z = initNormals[3 * j + 0] * cos; + normals.push(x, y, z); + } + } + for (let i = 0; i < segments; i++) { + for (let j = 0; j < points.length - 1; j++) { + const base = j + i * points.length; + const a = base; + const b = base + points.length; + const c = base + points.length + 1; + const d = base + 1; + indices.push(a, b, d); + indices.push(c, d, b); + } + } + this.setIndex(indices); + this.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + this.setAttribute("uv", new Float32BufferAttribute(uvs, 2)); + this.setAttribute("normal", new Float32BufferAttribute(normals, 3)); + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } + static fromJSON(data) { + return new LatheGeometry(data.points, data.segments, data.phiStart, data.phiLength); + } +} +class CapsuleGeometry extends LatheGeometry { + static { + __name(this, "CapsuleGeometry"); + } + constructor(radius = 1, length = 1, capSegments = 4, radialSegments = 8) { + const path = new Path(); + path.absarc(0, -length / 2, radius, Math.PI * 1.5, 0); + path.absarc(0, length / 2, radius, 0, Math.PI * 0.5); + super(path.getPoints(capSegments), radialSegments); + this.type = "CapsuleGeometry"; + this.parameters = { + radius, + length, + capSegments, + radialSegments + }; + } + static fromJSON(data) { + return new CapsuleGeometry(data.radius, data.length, data.capSegments, data.radialSegments); + } +} +class CircleGeometry extends BufferGeometry { + static { + __name(this, "CircleGeometry"); + } + constructor(radius = 1, segments = 32, thetaStart = 0, thetaLength = Math.PI * 2) { + super(); + this.type = "CircleGeometry"; + this.parameters = { + radius, + segments, + thetaStart, + thetaLength + }; + segments = Math.max(3, segments); + const indices = []; + const vertices = []; + const normals = []; + const uvs = []; + const vertex2 = new Vector3(); + const uv = new Vector2(); + vertices.push(0, 0, 0); + normals.push(0, 0, 1); + uvs.push(0.5, 0.5); + for (let s = 0, i = 3; s <= segments; s++, i += 3) { + const segment = thetaStart + s / segments * thetaLength; + vertex2.x = radius * Math.cos(segment); + vertex2.y = radius * Math.sin(segment); + vertices.push(vertex2.x, vertex2.y, vertex2.z); + normals.push(0, 0, 1); + uv.x = (vertices[i] / radius + 1) / 2; + uv.y = (vertices[i + 1] / radius + 1) / 2; + uvs.push(uv.x, uv.y); + } + for (let i = 1; i <= segments; i++) { + indices.push(i, i + 1, 0); + } + this.setIndex(indices); + this.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + this.setAttribute("normal", new Float32BufferAttribute(normals, 3)); + this.setAttribute("uv", new Float32BufferAttribute(uvs, 2)); + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } + static fromJSON(data) { + return new CircleGeometry(data.radius, data.segments, data.thetaStart, data.thetaLength); + } +} +class CylinderGeometry extends BufferGeometry { + static { + __name(this, "CylinderGeometry"); + } + constructor(radiusTop = 1, radiusBottom = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2) { + super(); + this.type = "CylinderGeometry"; + this.parameters = { + radiusTop, + radiusBottom, + height, + radialSegments, + heightSegments, + openEnded, + thetaStart, + thetaLength + }; + const scope = this; + radialSegments = Math.floor(radialSegments); + heightSegments = Math.floor(heightSegments); + const indices = []; + const vertices = []; + const normals = []; + const uvs = []; + let index = 0; + const indexArray = []; + const halfHeight = height / 2; + let groupStart = 0; + generateTorso(); + if (openEnded === false) { + if (radiusTop > 0) generateCap(true); + if (radiusBottom > 0) generateCap(false); + } + this.setIndex(indices); + this.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + this.setAttribute("normal", new Float32BufferAttribute(normals, 3)); + this.setAttribute("uv", new Float32BufferAttribute(uvs, 2)); + function generateTorso() { + const normal = new Vector3(); + const vertex2 = new Vector3(); + let groupCount = 0; + const slope = (radiusBottom - radiusTop) / height; + for (let y = 0; y <= heightSegments; y++) { + const indexRow = []; + const v = y / heightSegments; + const radius = v * (radiusBottom - radiusTop) + radiusTop; + for (let x = 0; x <= radialSegments; x++) { + const u = x / radialSegments; + const theta = u * thetaLength + thetaStart; + const sinTheta = Math.sin(theta); + const cosTheta = Math.cos(theta); + vertex2.x = radius * sinTheta; + vertex2.y = -v * height + halfHeight; + vertex2.z = radius * cosTheta; + vertices.push(vertex2.x, vertex2.y, vertex2.z); + normal.set(sinTheta, slope, cosTheta).normalize(); + normals.push(normal.x, normal.y, normal.z); + uvs.push(u, 1 - v); + indexRow.push(index++); + } + indexArray.push(indexRow); + } + for (let x = 0; x < radialSegments; x++) { + for (let y = 0; y < heightSegments; y++) { + const a = indexArray[y][x]; + const b = indexArray[y + 1][x]; + const c = indexArray[y + 1][x + 1]; + const d = indexArray[y][x + 1]; + if (radiusTop > 0 || y !== 0) { + indices.push(a, b, d); + groupCount += 3; + } + if (radiusBottom > 0 || y !== heightSegments - 1) { + indices.push(b, c, d); + groupCount += 3; + } + } + } + scope.addGroup(groupStart, groupCount, 0); + groupStart += groupCount; + } + __name(generateTorso, "generateTorso"); + function generateCap(top) { + const centerIndexStart = index; + const uv = new Vector2(); + const vertex2 = new Vector3(); + let groupCount = 0; + const radius = top === true ? radiusTop : radiusBottom; + const sign2 = top === true ? 1 : -1; + for (let x = 1; x <= radialSegments; x++) { + vertices.push(0, halfHeight * sign2, 0); + normals.push(0, sign2, 0); + uvs.push(0.5, 0.5); + index++; + } + const centerIndexEnd = index; + for (let x = 0; x <= radialSegments; x++) { + const u = x / radialSegments; + const theta = u * thetaLength + thetaStart; + const cosTheta = Math.cos(theta); + const sinTheta = Math.sin(theta); + vertex2.x = radius * sinTheta; + vertex2.y = halfHeight * sign2; + vertex2.z = radius * cosTheta; + vertices.push(vertex2.x, vertex2.y, vertex2.z); + normals.push(0, sign2, 0); + uv.x = cosTheta * 0.5 + 0.5; + uv.y = sinTheta * 0.5 * sign2 + 0.5; + uvs.push(uv.x, uv.y); + index++; + } + for (let x = 0; x < radialSegments; x++) { + const c = centerIndexStart + x; + const i = centerIndexEnd + x; + if (top === true) { + indices.push(i, i + 1, c); + } else { + indices.push(i + 1, i, c); + } + groupCount += 3; + } + scope.addGroup(groupStart, groupCount, top === true ? 1 : 2); + groupStart += groupCount; + } + __name(generateCap, "generateCap"); + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } + static fromJSON(data) { + return new CylinderGeometry(data.radiusTop, data.radiusBottom, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength); + } +} +class ConeGeometry extends CylinderGeometry { + static { + __name(this, "ConeGeometry"); + } + constructor(radius = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2) { + super(0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength); + this.type = "ConeGeometry"; + this.parameters = { + radius, + height, + radialSegments, + heightSegments, + openEnded, + thetaStart, + thetaLength + }; + } + static fromJSON(data) { + return new ConeGeometry(data.radius, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength); + } +} +class PolyhedronGeometry extends BufferGeometry { + static { + __name(this, "PolyhedronGeometry"); + } + constructor(vertices = [], indices = [], radius = 1, detail = 0) { + super(); + this.type = "PolyhedronGeometry"; + this.parameters = { + vertices, + indices, + radius, + detail + }; + const vertexBuffer = []; + const uvBuffer = []; + subdivide(detail); + applyRadius(radius); + generateUVs(); + this.setAttribute("position", new Float32BufferAttribute(vertexBuffer, 3)); + this.setAttribute("normal", new Float32BufferAttribute(vertexBuffer.slice(), 3)); + this.setAttribute("uv", new Float32BufferAttribute(uvBuffer, 2)); + if (detail === 0) { + this.computeVertexNormals(); + } else { + this.normalizeNormals(); + } + function subdivide(detail2) { + const a = new Vector3(); + const b = new Vector3(); + const c = new Vector3(); + for (let i = 0; i < indices.length; i += 3) { + getVertexByIndex(indices[i + 0], a); + getVertexByIndex(indices[i + 1], b); + getVertexByIndex(indices[i + 2], c); + subdivideFace(a, b, c, detail2); + } + } + __name(subdivide, "subdivide"); + function subdivideFace(a, b, c, detail2) { + const cols = detail2 + 1; + const v = []; + for (let i = 0; i <= cols; i++) { + v[i] = []; + const aj = a.clone().lerp(c, i / cols); + const bj = b.clone().lerp(c, i / cols); + const rows = cols - i; + for (let j = 0; j <= rows; j++) { + if (j === 0 && i === cols) { + v[i][j] = aj; + } else { + v[i][j] = aj.clone().lerp(bj, j / rows); + } + } + } + for (let i = 0; i < cols; i++) { + for (let j = 0; j < 2 * (cols - i) - 1; j++) { + const k = Math.floor(j / 2); + if (j % 2 === 0) { + pushVertex(v[i][k + 1]); + pushVertex(v[i + 1][k]); + pushVertex(v[i][k]); + } else { + pushVertex(v[i][k + 1]); + pushVertex(v[i + 1][k + 1]); + pushVertex(v[i + 1][k]); + } + } + } + } + __name(subdivideFace, "subdivideFace"); + function applyRadius(radius2) { + const vertex2 = new Vector3(); + for (let i = 0; i < vertexBuffer.length; i += 3) { + vertex2.x = vertexBuffer[i + 0]; + vertex2.y = vertexBuffer[i + 1]; + vertex2.z = vertexBuffer[i + 2]; + vertex2.normalize().multiplyScalar(radius2); + vertexBuffer[i + 0] = vertex2.x; + vertexBuffer[i + 1] = vertex2.y; + vertexBuffer[i + 2] = vertex2.z; + } + } + __name(applyRadius, "applyRadius"); + function generateUVs() { + const vertex2 = new Vector3(); + for (let i = 0; i < vertexBuffer.length; i += 3) { + vertex2.x = vertexBuffer[i + 0]; + vertex2.y = vertexBuffer[i + 1]; + vertex2.z = vertexBuffer[i + 2]; + const u = azimuth(vertex2) / 2 / Math.PI + 0.5; + const v = inclination(vertex2) / Math.PI + 0.5; + uvBuffer.push(u, 1 - v); + } + correctUVs(); + correctSeam(); + } + __name(generateUVs, "generateUVs"); + function correctSeam() { + for (let i = 0; i < uvBuffer.length; i += 6) { + const x0 = uvBuffer[i + 0]; + const x1 = uvBuffer[i + 2]; + const x2 = uvBuffer[i + 4]; + const max2 = Math.max(x0, x1, x2); + const min = Math.min(x0, x1, x2); + if (max2 > 0.9 && min < 0.1) { + if (x0 < 0.2) uvBuffer[i + 0] += 1; + if (x1 < 0.2) uvBuffer[i + 2] += 1; + if (x2 < 0.2) uvBuffer[i + 4] += 1; + } + } + } + __name(correctSeam, "correctSeam"); + function pushVertex(vertex2) { + vertexBuffer.push(vertex2.x, vertex2.y, vertex2.z); + } + __name(pushVertex, "pushVertex"); + function getVertexByIndex(index, vertex2) { + const stride = index * 3; + vertex2.x = vertices[stride + 0]; + vertex2.y = vertices[stride + 1]; + vertex2.z = vertices[stride + 2]; + } + __name(getVertexByIndex, "getVertexByIndex"); + function correctUVs() { + const a = new Vector3(); + const b = new Vector3(); + const c = new Vector3(); + const centroid = new Vector3(); + const uvA = new Vector2(); + const uvB = new Vector2(); + const uvC = new Vector2(); + for (let i = 0, j = 0; i < vertexBuffer.length; i += 9, j += 6) { + a.set(vertexBuffer[i + 0], vertexBuffer[i + 1], vertexBuffer[i + 2]); + b.set(vertexBuffer[i + 3], vertexBuffer[i + 4], vertexBuffer[i + 5]); + c.set(vertexBuffer[i + 6], vertexBuffer[i + 7], vertexBuffer[i + 8]); + uvA.set(uvBuffer[j + 0], uvBuffer[j + 1]); + uvB.set(uvBuffer[j + 2], uvBuffer[j + 3]); + uvC.set(uvBuffer[j + 4], uvBuffer[j + 5]); + centroid.copy(a).add(b).add(c).divideScalar(3); + const azi = azimuth(centroid); + correctUV(uvA, j + 0, a, azi); + correctUV(uvB, j + 2, b, azi); + correctUV(uvC, j + 4, c, azi); + } + } + __name(correctUVs, "correctUVs"); + function correctUV(uv, stride, vector, azimuth2) { + if (azimuth2 < 0 && uv.x === 1) { + uvBuffer[stride] = uv.x - 1; + } + if (vector.x === 0 && vector.z === 0) { + uvBuffer[stride] = azimuth2 / 2 / Math.PI + 0.5; + } + } + __name(correctUV, "correctUV"); + function azimuth(vector) { + return Math.atan2(vector.z, -vector.x); + } + __name(azimuth, "azimuth"); + function inclination(vector) { + return Math.atan2(-vector.y, Math.sqrt(vector.x * vector.x + vector.z * vector.z)); + } + __name(inclination, "inclination"); + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } + static fromJSON(data) { + return new PolyhedronGeometry(data.vertices, data.indices, data.radius, data.details); + } +} +class DodecahedronGeometry extends PolyhedronGeometry { + static { + __name(this, "DodecahedronGeometry"); + } + constructor(radius = 1, detail = 0) { + const t2 = (1 + Math.sqrt(5)) / 2; + const r = 1 / t2; + const vertices = [ + // (±1, ±1, ±1) + -1, + -1, + -1, + -1, + -1, + 1, + -1, + 1, + -1, + -1, + 1, + 1, + 1, + -1, + -1, + 1, + -1, + 1, + 1, + 1, + -1, + 1, + 1, + 1, + // (0, ±1/φ, ±φ) + 0, + -r, + -t2, + 0, + -r, + t2, + 0, + r, + -t2, + 0, + r, + t2, + // (±1/φ, ±φ, 0) + -r, + -t2, + 0, + -r, + t2, + 0, + r, + -t2, + 0, + r, + t2, + 0, + // (±φ, 0, ±1/φ) + -t2, + 0, + -r, + t2, + 0, + -r, + -t2, + 0, + r, + t2, + 0, + r + ]; + const indices = [ + 3, + 11, + 7, + 3, + 7, + 15, + 3, + 15, + 13, + 7, + 19, + 17, + 7, + 17, + 6, + 7, + 6, + 15, + 17, + 4, + 8, + 17, + 8, + 10, + 17, + 10, + 6, + 8, + 0, + 16, + 8, + 16, + 2, + 8, + 2, + 10, + 0, + 12, + 1, + 0, + 1, + 18, + 0, + 18, + 16, + 6, + 10, + 2, + 6, + 2, + 13, + 6, + 13, + 15, + 2, + 16, + 18, + 2, + 18, + 3, + 2, + 3, + 13, + 18, + 1, + 9, + 18, + 9, + 11, + 18, + 11, + 3, + 4, + 14, + 12, + 4, + 12, + 0, + 4, + 0, + 8, + 11, + 9, + 5, + 11, + 5, + 19, + 11, + 19, + 7, + 19, + 5, + 14, + 19, + 14, + 4, + 19, + 4, + 17, + 1, + 12, + 14, + 1, + 14, + 5, + 1, + 5, + 9 + ]; + super(vertices, indices, radius, detail); + this.type = "DodecahedronGeometry"; + this.parameters = { + radius, + detail + }; + } + static fromJSON(data) { + return new DodecahedronGeometry(data.radius, data.detail); + } +} +const _v0 = /* @__PURE__ */ new Vector3(); +const _v1$1 = /* @__PURE__ */ new Vector3(); +const _normal = /* @__PURE__ */ new Vector3(); +const _triangle = /* @__PURE__ */ new Triangle(); +class EdgesGeometry extends BufferGeometry { + static { + __name(this, "EdgesGeometry"); + } + constructor(geometry = null, thresholdAngle = 1) { + super(); + this.type = "EdgesGeometry"; + this.parameters = { + geometry, + thresholdAngle + }; + if (geometry !== null) { + const precisionPoints = 4; + const precision = Math.pow(10, precisionPoints); + const thresholdDot = Math.cos(DEG2RAD * thresholdAngle); + const indexAttr = geometry.getIndex(); + const positionAttr = geometry.getAttribute("position"); + const indexCount = indexAttr ? indexAttr.count : positionAttr.count; + const indexArr = [0, 0, 0]; + const vertKeys = ["a", "b", "c"]; + const hashes = new Array(3); + const edgeData = {}; + const vertices = []; + for (let i = 0; i < indexCount; i += 3) { + if (indexAttr) { + indexArr[0] = indexAttr.getX(i); + indexArr[1] = indexAttr.getX(i + 1); + indexArr[2] = indexAttr.getX(i + 2); + } else { + indexArr[0] = i; + indexArr[1] = i + 1; + indexArr[2] = i + 2; + } + const { a, b, c } = _triangle; + a.fromBufferAttribute(positionAttr, indexArr[0]); + b.fromBufferAttribute(positionAttr, indexArr[1]); + c.fromBufferAttribute(positionAttr, indexArr[2]); + _triangle.getNormal(_normal); + hashes[0] = `${Math.round(a.x * precision)},${Math.round(a.y * precision)},${Math.round(a.z * precision)}`; + hashes[1] = `${Math.round(b.x * precision)},${Math.round(b.y * precision)},${Math.round(b.z * precision)}`; + hashes[2] = `${Math.round(c.x * precision)},${Math.round(c.y * precision)},${Math.round(c.z * precision)}`; + if (hashes[0] === hashes[1] || hashes[1] === hashes[2] || hashes[2] === hashes[0]) { + continue; + } + for (let j = 0; j < 3; j++) { + const jNext = (j + 1) % 3; + const vecHash0 = hashes[j]; + const vecHash1 = hashes[jNext]; + const v0 = _triangle[vertKeys[j]]; + const v1 = _triangle[vertKeys[jNext]]; + const hash = `${vecHash0}_${vecHash1}`; + const reverseHash = `${vecHash1}_${vecHash0}`; + if (reverseHash in edgeData && edgeData[reverseHash]) { + if (_normal.dot(edgeData[reverseHash].normal) <= thresholdDot) { + vertices.push(v0.x, v0.y, v0.z); + vertices.push(v1.x, v1.y, v1.z); + } + edgeData[reverseHash] = null; + } else if (!(hash in edgeData)) { + edgeData[hash] = { + index0: indexArr[j], + index1: indexArr[jNext], + normal: _normal.clone() + }; + } + } + } + for (const key in edgeData) { + if (edgeData[key]) { + const { index0, index1 } = edgeData[key]; + _v0.fromBufferAttribute(positionAttr, index0); + _v1$1.fromBufferAttribute(positionAttr, index1); + vertices.push(_v0.x, _v0.y, _v0.z); + vertices.push(_v1$1.x, _v1$1.y, _v1$1.z); + } + } + this.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + } + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } +} +class Shape extends Path { + static { + __name(this, "Shape"); + } + constructor(points) { + super(points); + this.uuid = generateUUID(); + this.type = "Shape"; + this.holes = []; + } + getPointsHoles(divisions) { + const holesPts = []; + for (let i = 0, l = this.holes.length; i < l; i++) { + holesPts[i] = this.holes[i].getPoints(divisions); + } + return holesPts; + } + // get points of shape and holes (keypoints based on segments parameter) + extractPoints(divisions) { + return { + shape: this.getPoints(divisions), + holes: this.getPointsHoles(divisions) + }; + } + copy(source) { + super.copy(source); + this.holes = []; + for (let i = 0, l = source.holes.length; i < l; i++) { + const hole = source.holes[i]; + this.holes.push(hole.clone()); + } + return this; + } + toJSON() { + const data = super.toJSON(); + data.uuid = this.uuid; + data.holes = []; + for (let i = 0, l = this.holes.length; i < l; i++) { + const hole = this.holes[i]; + data.holes.push(hole.toJSON()); + } + return data; + } + fromJSON(json) { + super.fromJSON(json); + this.uuid = json.uuid; + this.holes = []; + for (let i = 0, l = json.holes.length; i < l; i++) { + const hole = json.holes[i]; + this.holes.push(new Path().fromJSON(hole)); + } + return this; + } +} +const Earcut = { + triangulate: /* @__PURE__ */ __name(function(data, holeIndices, dim = 2) { + const hasHoles = holeIndices && holeIndices.length; + const outerLen = hasHoles ? holeIndices[0] * dim : data.length; + let outerNode = linkedList(data, 0, outerLen, dim, true); + const triangles = []; + if (!outerNode || outerNode.next === outerNode.prev) return triangles; + let minX, minY, maxX, maxY, x, y, invSize; + if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim); + if (data.length > 80 * dim) { + minX = maxX = data[0]; + minY = maxY = data[1]; + for (let i = dim; i < outerLen; i += dim) { + x = data[i]; + y = data[i + 1]; + if (x < minX) minX = x; + if (y < minY) minY = y; + if (x > maxX) maxX = x; + if (y > maxY) maxY = y; + } + invSize = Math.max(maxX - minX, maxY - minY); + invSize = invSize !== 0 ? 32767 / invSize : 0; + } + earcutLinked(outerNode, triangles, dim, minX, minY, invSize, 0); + return triangles; + }, "triangulate") +}; +function linkedList(data, start, end, dim, clockwise) { + let i, last; + if (clockwise === signedArea(data, start, end, dim) > 0) { + for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last); + } else { + for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last); + } + if (last && equals(last, last.next)) { + removeNode(last); + last = last.next; + } + return last; +} +__name(linkedList, "linkedList"); +function filterPoints(start, end) { + if (!start) return start; + if (!end) end = start; + let p = start, again; + do { + again = false; + if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) { + removeNode(p); + p = end = p.prev; + if (p === p.next) break; + again = true; + } else { + p = p.next; + } + } while (again || p !== end); + return end; +} +__name(filterPoints, "filterPoints"); +function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) { + if (!ear) return; + if (!pass && invSize) indexCurve(ear, minX, minY, invSize); + let stop = ear, prev, next; + while (ear.prev !== ear.next) { + prev = ear.prev; + next = ear.next; + if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) { + triangles.push(prev.i / dim | 0); + triangles.push(ear.i / dim | 0); + triangles.push(next.i / dim | 0); + removeNode(ear); + ear = next.next; + stop = next.next; + continue; + } + ear = next; + if (ear === stop) { + if (!pass) { + earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1); + } else if (pass === 1) { + ear = cureLocalIntersections(filterPoints(ear), triangles, dim); + earcutLinked(ear, triangles, dim, minX, minY, invSize, 2); + } else if (pass === 2) { + splitEarcut(ear, triangles, dim, minX, minY, invSize); + } + break; + } + } +} +__name(earcutLinked, "earcutLinked"); +function isEar(ear) { + const a = ear.prev, b = ear, c = ear.next; + if (area(a, b, c) >= 0) return false; + const ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y; + const x0 = ax < bx ? ax < cx ? ax : cx : bx < cx ? bx : cx, y0 = ay < by ? ay < cy ? ay : cy : by < cy ? by : cy, x1 = ax > bx ? ax > cx ? ax : cx : bx > cx ? bx : cx, y1 = ay > by ? ay > cy ? ay : cy : by > cy ? by : cy; + let p = c.next; + while (p !== a) { + if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false; + p = p.next; + } + return true; +} +__name(isEar, "isEar"); +function isEarHashed(ear, minX, minY, invSize) { + const a = ear.prev, b = ear, c = ear.next; + if (area(a, b, c) >= 0) return false; + const ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y; + const x0 = ax < bx ? ax < cx ? ax : cx : bx < cx ? bx : cx, y0 = ay < by ? ay < cy ? ay : cy : by < cy ? by : cy, x1 = ax > bx ? ax > cx ? ax : cx : bx > cx ? bx : cx, y1 = ay > by ? ay > cy ? ay : cy : by > cy ? by : cy; + const minZ = zOrder(x0, y0, minX, minY, invSize), maxZ = zOrder(x1, y1, minX, minY, invSize); + let p = ear.prevZ, n = ear.nextZ; + while (p && p.z >= minZ && n && n.z <= maxZ) { + if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false; + p = p.prevZ; + if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false; + n = n.nextZ; + } + while (p && p.z >= minZ) { + if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false; + p = p.prevZ; + } + while (n && n.z <= maxZ) { + if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false; + n = n.nextZ; + } + return true; +} +__name(isEarHashed, "isEarHashed"); +function cureLocalIntersections(start, triangles, dim) { + let p = start; + do { + const a = p.prev, b = p.next.next; + if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) { + triangles.push(a.i / dim | 0); + triangles.push(p.i / dim | 0); + triangles.push(b.i / dim | 0); + removeNode(p); + removeNode(p.next); + p = start = b; + } + p = p.next; + } while (p !== start); + return filterPoints(p); +} +__name(cureLocalIntersections, "cureLocalIntersections"); +function splitEarcut(start, triangles, dim, minX, minY, invSize) { + let a = start; + do { + let b = a.next.next; + while (b !== a.prev) { + if (a.i !== b.i && isValidDiagonal(a, b)) { + let c = splitPolygon(a, b); + a = filterPoints(a, a.next); + c = filterPoints(c, c.next); + earcutLinked(a, triangles, dim, minX, minY, invSize, 0); + earcutLinked(c, triangles, dim, minX, minY, invSize, 0); + return; + } + b = b.next; + } + a = a.next; + } while (a !== start); +} +__name(splitEarcut, "splitEarcut"); +function eliminateHoles(data, holeIndices, outerNode, dim) { + const queue = []; + let i, len, start, end, list; + for (i = 0, len = holeIndices.length; i < len; i++) { + start = holeIndices[i] * dim; + end = i < len - 1 ? holeIndices[i + 1] * dim : data.length; + list = linkedList(data, start, end, dim, false); + if (list === list.next) list.steiner = true; + queue.push(getLeftmost(list)); + } + queue.sort(compareX); + for (i = 0; i < queue.length; i++) { + outerNode = eliminateHole(queue[i], outerNode); + } + return outerNode; +} +__name(eliminateHoles, "eliminateHoles"); +function compareX(a, b) { + return a.x - b.x; +} +__name(compareX, "compareX"); +function eliminateHole(hole, outerNode) { + const bridge = findHoleBridge(hole, outerNode); + if (!bridge) { + return outerNode; + } + const bridgeReverse = splitPolygon(bridge, hole); + filterPoints(bridgeReverse, bridgeReverse.next); + return filterPoints(bridge, bridge.next); +} +__name(eliminateHole, "eliminateHole"); +function findHoleBridge(hole, outerNode) { + let p = outerNode, qx = -Infinity, m; + const hx = hole.x, hy = hole.y; + do { + if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) { + const x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y); + if (x <= hx && x > qx) { + qx = x; + m = p.x < p.next.x ? p : p.next; + if (x === hx) return m; + } + } + p = p.next; + } while (p !== outerNode); + if (!m) return null; + const stop = m, mx = m.x, my = m.y; + let tanMin = Infinity, tan; + p = m; + do { + if (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) { + tan = Math.abs(hy - p.y) / (hx - p.x); + if (locallyInside(p, hole) && (tan < tanMin || tan === tanMin && (p.x > m.x || p.x === m.x && sectorContainsSector(m, p)))) { + m = p; + tanMin = tan; + } + } + p = p.next; + } while (p !== stop); + return m; +} +__name(findHoleBridge, "findHoleBridge"); +function sectorContainsSector(m, p) { + return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0; +} +__name(sectorContainsSector, "sectorContainsSector"); +function indexCurve(start, minX, minY, invSize) { + let p = start; + do { + if (p.z === 0) p.z = zOrder(p.x, p.y, minX, minY, invSize); + p.prevZ = p.prev; + p.nextZ = p.next; + p = p.next; + } while (p !== start); + p.prevZ.nextZ = null; + p.prevZ = null; + sortLinked(p); +} +__name(indexCurve, "indexCurve"); +function sortLinked(list) { + let i, p, q, e, tail, numMerges, pSize, qSize, inSize = 1; + do { + p = list; + list = null; + tail = null; + numMerges = 0; + while (p) { + numMerges++; + q = p; + pSize = 0; + for (i = 0; i < inSize; i++) { + pSize++; + q = q.nextZ; + if (!q) break; + } + qSize = inSize; + while (pSize > 0 || qSize > 0 && q) { + if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) { + e = p; + p = p.nextZ; + pSize--; + } else { + e = q; + q = q.nextZ; + qSize--; + } + if (tail) tail.nextZ = e; + else list = e; + e.prevZ = tail; + tail = e; + } + p = q; + } + tail.nextZ = null; + inSize *= 2; + } while (numMerges > 1); + return list; +} +__name(sortLinked, "sortLinked"); +function zOrder(x, y, minX, minY, invSize) { + x = (x - minX) * invSize | 0; + y = (y - minY) * invSize | 0; + x = (x | x << 8) & 16711935; + x = (x | x << 4) & 252645135; + x = (x | x << 2) & 858993459; + x = (x | x << 1) & 1431655765; + y = (y | y << 8) & 16711935; + y = (y | y << 4) & 252645135; + y = (y | y << 2) & 858993459; + y = (y | y << 1) & 1431655765; + return x | y << 1; +} +__name(zOrder, "zOrder"); +function getLeftmost(start) { + let p = start, leftmost = start; + do { + if (p.x < leftmost.x || p.x === leftmost.x && p.y < leftmost.y) leftmost = p; + p = p.next; + } while (p !== start); + return leftmost; +} +__name(getLeftmost, "getLeftmost"); +function pointInTriangle(ax, ay, bx, by, cx, cy, px2, py2) { + return (cx - px2) * (ay - py2) >= (ax - px2) * (cy - py2) && (ax - px2) * (by - py2) >= (bx - px2) * (ay - py2) && (bx - px2) * (cy - py2) >= (cx - px2) * (by - py2); +} +__name(pointInTriangle, "pointInTriangle"); +function isValidDiagonal(a, b) { + return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges + (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible + (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors + equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); +} +__name(isValidDiagonal, "isValidDiagonal"); +function area(p, q, r) { + return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y); +} +__name(area, "area"); +function equals(p1, p2) { + return p1.x === p2.x && p1.y === p2.y; +} +__name(equals, "equals"); +function intersects(p1, q1, p2, q2) { + const o1 = sign(area(p1, q1, p2)); + const o2 = sign(area(p1, q1, q2)); + const o3 = sign(area(p2, q2, p1)); + const o4 = sign(area(p2, q2, q1)); + if (o1 !== o2 && o3 !== o4) return true; + if (o1 === 0 && onSegment(p1, p2, q1)) return true; + if (o2 === 0 && onSegment(p1, q2, q1)) return true; + if (o3 === 0 && onSegment(p2, p1, q2)) return true; + if (o4 === 0 && onSegment(p2, q1, q2)) return true; + return false; +} +__name(intersects, "intersects"); +function onSegment(p, q, r) { + return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y); +} +__name(onSegment, "onSegment"); +function sign(num) { + return num > 0 ? 1 : num < 0 ? -1 : 0; +} +__name(sign, "sign"); +function intersectsPolygon(a, b) { + let p = a; + do { + if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b)) return true; + p = p.next; + } while (p !== a); + return false; +} +__name(intersectsPolygon, "intersectsPolygon"); +function locallyInside(a, b) { + return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0; +} +__name(locallyInside, "locallyInside"); +function middleInside(a, b) { + let p = a, inside = false; + const px2 = (a.x + b.x) / 2, py2 = (a.y + b.y) / 2; + do { + if (p.y > py2 !== p.next.y > py2 && p.next.y !== p.y && px2 < (p.next.x - p.x) * (py2 - p.y) / (p.next.y - p.y) + p.x) + inside = !inside; + p = p.next; + } while (p !== a); + return inside; +} +__name(middleInside, "middleInside"); +function splitPolygon(a, b) { + const a2 = new Node(a.i, a.x, a.y), b22 = new Node(b.i, b.x, b.y), an = a.next, bp = b.prev; + a.next = b; + b.prev = a; + a2.next = an; + an.prev = a2; + b22.next = a2; + a2.prev = b22; + bp.next = b22; + b22.prev = bp; + return b22; +} +__name(splitPolygon, "splitPolygon"); +function insertNode(i, x, y, last) { + const p = new Node(i, x, y); + if (!last) { + p.prev = p; + p.next = p; + } else { + p.next = last.next; + p.prev = last; + last.next.prev = p; + last.next = p; + } + return p; +} +__name(insertNode, "insertNode"); +function removeNode(p) { + p.next.prev = p.prev; + p.prev.next = p.next; + if (p.prevZ) p.prevZ.nextZ = p.nextZ; + if (p.nextZ) p.nextZ.prevZ = p.prevZ; +} +__name(removeNode, "removeNode"); +function Node(i, x, y) { + this.i = i; + this.x = x; + this.y = y; + this.prev = null; + this.next = null; + this.z = 0; + this.prevZ = null; + this.nextZ = null; + this.steiner = false; +} +__name(Node, "Node"); +function signedArea(data, start, end, dim) { + let sum = 0; + for (let i = start, j = end - dim; i < end; i += dim) { + sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]); + j = i; + } + return sum; +} +__name(signedArea, "signedArea"); +class ShapeUtils { + static { + __name(this, "ShapeUtils"); + } + // calculate area of the contour polygon + static area(contour) { + const n = contour.length; + let a = 0; + for (let p = n - 1, q = 0; q < n; p = q++) { + a += contour[p].x * contour[q].y - contour[q].x * contour[p].y; + } + return a * 0.5; + } + static isClockWise(pts) { + return ShapeUtils.area(pts) < 0; + } + static triangulateShape(contour, holes) { + const vertices = []; + const holeIndices = []; + const faces = []; + removeDupEndPts(contour); + addContour(vertices, contour); + let holeIndex = contour.length; + holes.forEach(removeDupEndPts); + for (let i = 0; i < holes.length; i++) { + holeIndices.push(holeIndex); + holeIndex += holes[i].length; + addContour(vertices, holes[i]); + } + const triangles = Earcut.triangulate(vertices, holeIndices); + for (let i = 0; i < triangles.length; i += 3) { + faces.push(triangles.slice(i, i + 3)); + } + return faces; + } +} +function removeDupEndPts(points) { + const l = points.length; + if (l > 2 && points[l - 1].equals(points[0])) { + points.pop(); + } +} +__name(removeDupEndPts, "removeDupEndPts"); +function addContour(vertices, contour) { + for (let i = 0; i < contour.length; i++) { + vertices.push(contour[i].x); + vertices.push(contour[i].y); + } +} +__name(addContour, "addContour"); +class ExtrudeGeometry extends BufferGeometry { + static { + __name(this, "ExtrudeGeometry"); + } + constructor(shapes = new Shape([new Vector2(0.5, 0.5), new Vector2(-0.5, 0.5), new Vector2(-0.5, -0.5), new Vector2(0.5, -0.5)]), options = {}) { + super(); + this.type = "ExtrudeGeometry"; + this.parameters = { + shapes, + options + }; + shapes = Array.isArray(shapes) ? shapes : [shapes]; + const scope = this; + const verticesArray = []; + const uvArray = []; + for (let i = 0, l = shapes.length; i < l; i++) { + const shape = shapes[i]; + addShape(shape); + } + this.setAttribute("position", new Float32BufferAttribute(verticesArray, 3)); + this.setAttribute("uv", new Float32BufferAttribute(uvArray, 2)); + this.computeVertexNormals(); + function addShape(shape) { + const placeholder = []; + const curveSegments = options.curveSegments !== void 0 ? options.curveSegments : 12; + const steps = options.steps !== void 0 ? options.steps : 1; + const depth = options.depth !== void 0 ? options.depth : 1; + let bevelEnabled = options.bevelEnabled !== void 0 ? options.bevelEnabled : true; + let bevelThickness = options.bevelThickness !== void 0 ? options.bevelThickness : 0.2; + let bevelSize = options.bevelSize !== void 0 ? options.bevelSize : bevelThickness - 0.1; + let bevelOffset = options.bevelOffset !== void 0 ? options.bevelOffset : 0; + let bevelSegments = options.bevelSegments !== void 0 ? options.bevelSegments : 3; + const extrudePath = options.extrudePath; + const uvgen = options.UVGenerator !== void 0 ? options.UVGenerator : WorldUVGenerator; + let extrudePts, extrudeByPath = false; + let splineTube, binormal, normal, position2; + if (extrudePath) { + extrudePts = extrudePath.getSpacedPoints(steps); + extrudeByPath = true; + bevelEnabled = false; + splineTube = extrudePath.computeFrenetFrames(steps, false); + binormal = new Vector3(); + normal = new Vector3(); + position2 = new Vector3(); + } + if (!bevelEnabled) { + bevelSegments = 0; + bevelThickness = 0; + bevelSize = 0; + bevelOffset = 0; + } + const shapePoints = shape.extractPoints(curveSegments); + let vertices = shapePoints.shape; + const holes = shapePoints.holes; + const reverse = !ShapeUtils.isClockWise(vertices); + if (reverse) { + vertices = vertices.reverse(); + for (let h = 0, hl = holes.length; h < hl; h++) { + const ahole = holes[h]; + if (ShapeUtils.isClockWise(ahole)) { + holes[h] = ahole.reverse(); + } + } + } + const faces = ShapeUtils.triangulateShape(vertices, holes); + const contour = vertices; + for (let h = 0, hl = holes.length; h < hl; h++) { + const ahole = holes[h]; + vertices = vertices.concat(ahole); + } + function scalePt2(pt, vec, size) { + if (!vec) console.error("THREE.ExtrudeGeometry: vec does not exist"); + return pt.clone().addScaledVector(vec, size); + } + __name(scalePt2, "scalePt2"); + const vlen = vertices.length, flen = faces.length; + function getBevelVec(inPt, inPrev, inNext) { + let v_trans_x, v_trans_y, shrink_by; + const v_prev_x = inPt.x - inPrev.x, v_prev_y = inPt.y - inPrev.y; + const v_next_x = inNext.x - inPt.x, v_next_y = inNext.y - inPt.y; + const v_prev_lensq = v_prev_x * v_prev_x + v_prev_y * v_prev_y; + const collinear0 = v_prev_x * v_next_y - v_prev_y * v_next_x; + if (Math.abs(collinear0) > Number.EPSILON) { + const v_prev_len = Math.sqrt(v_prev_lensq); + const v_next_len = Math.sqrt(v_next_x * v_next_x + v_next_y * v_next_y); + const ptPrevShift_x = inPrev.x - v_prev_y / v_prev_len; + const ptPrevShift_y = inPrev.y + v_prev_x / v_prev_len; + const ptNextShift_x = inNext.x - v_next_y / v_next_len; + const ptNextShift_y = inNext.y + v_next_x / v_next_len; + const sf = ((ptNextShift_x - ptPrevShift_x) * v_next_y - (ptNextShift_y - ptPrevShift_y) * v_next_x) / (v_prev_x * v_next_y - v_prev_y * v_next_x); + v_trans_x = ptPrevShift_x + v_prev_x * sf - inPt.x; + v_trans_y = ptPrevShift_y + v_prev_y * sf - inPt.y; + const v_trans_lensq = v_trans_x * v_trans_x + v_trans_y * v_trans_y; + if (v_trans_lensq <= 2) { + return new Vector2(v_trans_x, v_trans_y); + } else { + shrink_by = Math.sqrt(v_trans_lensq / 2); + } + } else { + let direction_eq = false; + if (v_prev_x > Number.EPSILON) { + if (v_next_x > Number.EPSILON) { + direction_eq = true; + } + } else { + if (v_prev_x < -Number.EPSILON) { + if (v_next_x < -Number.EPSILON) { + direction_eq = true; + } + } else { + if (Math.sign(v_prev_y) === Math.sign(v_next_y)) { + direction_eq = true; + } + } + } + if (direction_eq) { + v_trans_x = -v_prev_y; + v_trans_y = v_prev_x; + shrink_by = Math.sqrt(v_prev_lensq); + } else { + v_trans_x = v_prev_x; + v_trans_y = v_prev_y; + shrink_by = Math.sqrt(v_prev_lensq / 2); + } + } + return new Vector2(v_trans_x / shrink_by, v_trans_y / shrink_by); + } + __name(getBevelVec, "getBevelVec"); + const contourMovements = []; + for (let i = 0, il = contour.length, j = il - 1, k = i + 1; i < il; i++, j++, k++) { + if (j === il) j = 0; + if (k === il) k = 0; + contourMovements[i] = getBevelVec(contour[i], contour[j], contour[k]); + } + const holesMovements = []; + let oneHoleMovements, verticesMovements = contourMovements.concat(); + for (let h = 0, hl = holes.length; h < hl; h++) { + const ahole = holes[h]; + oneHoleMovements = []; + for (let i = 0, il = ahole.length, j = il - 1, k = i + 1; i < il; i++, j++, k++) { + if (j === il) j = 0; + if (k === il) k = 0; + oneHoleMovements[i] = getBevelVec(ahole[i], ahole[j], ahole[k]); + } + holesMovements.push(oneHoleMovements); + verticesMovements = verticesMovements.concat(oneHoleMovements); + } + for (let b = 0; b < bevelSegments; b++) { + const t2 = b / bevelSegments; + const z = bevelThickness * Math.cos(t2 * Math.PI / 2); + const bs2 = bevelSize * Math.sin(t2 * Math.PI / 2) + bevelOffset; + for (let i = 0, il = contour.length; i < il; i++) { + const vert = scalePt2(contour[i], contourMovements[i], bs2); + v(vert.x, vert.y, -z); + } + for (let h = 0, hl = holes.length; h < hl; h++) { + const ahole = holes[h]; + oneHoleMovements = holesMovements[h]; + for (let i = 0, il = ahole.length; i < il; i++) { + const vert = scalePt2(ahole[i], oneHoleMovements[i], bs2); + v(vert.x, vert.y, -z); + } + } + } + const bs = bevelSize + bevelOffset; + for (let i = 0; i < vlen; i++) { + const vert = bevelEnabled ? scalePt2(vertices[i], verticesMovements[i], bs) : vertices[i]; + if (!extrudeByPath) { + v(vert.x, vert.y, 0); + } else { + normal.copy(splineTube.normals[0]).multiplyScalar(vert.x); + binormal.copy(splineTube.binormals[0]).multiplyScalar(vert.y); + position2.copy(extrudePts[0]).add(normal).add(binormal); + v(position2.x, position2.y, position2.z); + } + } + for (let s = 1; s <= steps; s++) { + for (let i = 0; i < vlen; i++) { + const vert = bevelEnabled ? scalePt2(vertices[i], verticesMovements[i], bs) : vertices[i]; + if (!extrudeByPath) { + v(vert.x, vert.y, depth / steps * s); + } else { + normal.copy(splineTube.normals[s]).multiplyScalar(vert.x); + binormal.copy(splineTube.binormals[s]).multiplyScalar(vert.y); + position2.copy(extrudePts[s]).add(normal).add(binormal); + v(position2.x, position2.y, position2.z); + } + } + } + for (let b = bevelSegments - 1; b >= 0; b--) { + const t2 = b / bevelSegments; + const z = bevelThickness * Math.cos(t2 * Math.PI / 2); + const bs2 = bevelSize * Math.sin(t2 * Math.PI / 2) + bevelOffset; + for (let i = 0, il = contour.length; i < il; i++) { + const vert = scalePt2(contour[i], contourMovements[i], bs2); + v(vert.x, vert.y, depth + z); + } + for (let h = 0, hl = holes.length; h < hl; h++) { + const ahole = holes[h]; + oneHoleMovements = holesMovements[h]; + for (let i = 0, il = ahole.length; i < il; i++) { + const vert = scalePt2(ahole[i], oneHoleMovements[i], bs2); + if (!extrudeByPath) { + v(vert.x, vert.y, depth + z); + } else { + v(vert.x, vert.y + extrudePts[steps - 1].y, extrudePts[steps - 1].x + z); + } + } + } + } + buildLidFaces(); + buildSideFaces(); + function buildLidFaces() { + const start = verticesArray.length / 3; + if (bevelEnabled) { + let layer = 0; + let offset = vlen * layer; + for (let i = 0; i < flen; i++) { + const face = faces[i]; + f3(face[2] + offset, face[1] + offset, face[0] + offset); + } + layer = steps + bevelSegments * 2; + offset = vlen * layer; + for (let i = 0; i < flen; i++) { + const face = faces[i]; + f3(face[0] + offset, face[1] + offset, face[2] + offset); + } + } else { + for (let i = 0; i < flen; i++) { + const face = faces[i]; + f3(face[2], face[1], face[0]); + } + for (let i = 0; i < flen; i++) { + const face = faces[i]; + f3(face[0] + vlen * steps, face[1] + vlen * steps, face[2] + vlen * steps); + } + } + scope.addGroup(start, verticesArray.length / 3 - start, 0); + } + __name(buildLidFaces, "buildLidFaces"); + function buildSideFaces() { + const start = verticesArray.length / 3; + let layeroffset = 0; + sidewalls(contour, layeroffset); + layeroffset += contour.length; + for (let h = 0, hl = holes.length; h < hl; h++) { + const ahole = holes[h]; + sidewalls(ahole, layeroffset); + layeroffset += ahole.length; + } + scope.addGroup(start, verticesArray.length / 3 - start, 1); + } + __name(buildSideFaces, "buildSideFaces"); + function sidewalls(contour2, layeroffset) { + let i = contour2.length; + while (--i >= 0) { + const j = i; + let k = i - 1; + if (k < 0) k = contour2.length - 1; + for (let s = 0, sl = steps + bevelSegments * 2; s < sl; s++) { + const slen1 = vlen * s; + const slen2 = vlen * (s + 1); + const a = layeroffset + j + slen1, b = layeroffset + k + slen1, c = layeroffset + k + slen2, d = layeroffset + j + slen2; + f4(a, b, c, d); + } + } + } + __name(sidewalls, "sidewalls"); + function v(x, y, z) { + placeholder.push(x); + placeholder.push(y); + placeholder.push(z); + } + __name(v, "v"); + function f3(a, b, c) { + addVertex(a); + addVertex(b); + addVertex(c); + const nextIndex = verticesArray.length / 3; + const uvs = uvgen.generateTopUV(scope, verticesArray, nextIndex - 3, nextIndex - 2, nextIndex - 1); + addUV(uvs[0]); + addUV(uvs[1]); + addUV(uvs[2]); + } + __name(f3, "f3"); + function f4(a, b, c, d) { + addVertex(a); + addVertex(b); + addVertex(d); + addVertex(b); + addVertex(c); + addVertex(d); + const nextIndex = verticesArray.length / 3; + const uvs = uvgen.generateSideWallUV(scope, verticesArray, nextIndex - 6, nextIndex - 3, nextIndex - 2, nextIndex - 1); + addUV(uvs[0]); + addUV(uvs[1]); + addUV(uvs[3]); + addUV(uvs[1]); + addUV(uvs[2]); + addUV(uvs[3]); + } + __name(f4, "f4"); + function addVertex(index) { + verticesArray.push(placeholder[index * 3 + 0]); + verticesArray.push(placeholder[index * 3 + 1]); + verticesArray.push(placeholder[index * 3 + 2]); + } + __name(addVertex, "addVertex"); + function addUV(vector2) { + uvArray.push(vector2.x); + uvArray.push(vector2.y); + } + __name(addUV, "addUV"); + } + __name(addShape, "addShape"); + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } + toJSON() { + const data = super.toJSON(); + const shapes = this.parameters.shapes; + const options = this.parameters.options; + return toJSON$1(shapes, options, data); + } + static fromJSON(data, shapes) { + const geometryShapes = []; + for (let j = 0, jl = data.shapes.length; j < jl; j++) { + const shape = shapes[data.shapes[j]]; + geometryShapes.push(shape); + } + const extrudePath = data.options.extrudePath; + if (extrudePath !== void 0) { + data.options.extrudePath = new Curves[extrudePath.type]().fromJSON(extrudePath); + } + return new ExtrudeGeometry(geometryShapes, data.options); + } +} +const WorldUVGenerator = { + generateTopUV: /* @__PURE__ */ __name(function(geometry, vertices, indexA, indexB, indexC) { + const a_x = vertices[indexA * 3]; + const a_y = vertices[indexA * 3 + 1]; + const b_x = vertices[indexB * 3]; + const b_y = vertices[indexB * 3 + 1]; + const c_x = vertices[indexC * 3]; + const c_y = vertices[indexC * 3 + 1]; + return [ + new Vector2(a_x, a_y), + new Vector2(b_x, b_y), + new Vector2(c_x, c_y) + ]; + }, "generateTopUV"), + generateSideWallUV: /* @__PURE__ */ __name(function(geometry, vertices, indexA, indexB, indexC, indexD) { + const a_x = vertices[indexA * 3]; + const a_y = vertices[indexA * 3 + 1]; + const a_z = vertices[indexA * 3 + 2]; + const b_x = vertices[indexB * 3]; + const b_y = vertices[indexB * 3 + 1]; + const b_z = vertices[indexB * 3 + 2]; + const c_x = vertices[indexC * 3]; + const c_y = vertices[indexC * 3 + 1]; + const c_z = vertices[indexC * 3 + 2]; + const d_x = vertices[indexD * 3]; + const d_y = vertices[indexD * 3 + 1]; + const d_z = vertices[indexD * 3 + 2]; + if (Math.abs(a_y - b_y) < Math.abs(a_x - b_x)) { + return [ + new Vector2(a_x, 1 - a_z), + new Vector2(b_x, 1 - b_z), + new Vector2(c_x, 1 - c_z), + new Vector2(d_x, 1 - d_z) + ]; + } else { + return [ + new Vector2(a_y, 1 - a_z), + new Vector2(b_y, 1 - b_z), + new Vector2(c_y, 1 - c_z), + new Vector2(d_y, 1 - d_z) + ]; + } + }, "generateSideWallUV") +}; +function toJSON$1(shapes, options, data) { + data.shapes = []; + if (Array.isArray(shapes)) { + for (let i = 0, l = shapes.length; i < l; i++) { + const shape = shapes[i]; + data.shapes.push(shape.uuid); + } + } else { + data.shapes.push(shapes.uuid); + } + data.options = Object.assign({}, options); + if (options.extrudePath !== void 0) data.options.extrudePath = options.extrudePath.toJSON(); + return data; +} +__name(toJSON$1, "toJSON$1"); +class IcosahedronGeometry extends PolyhedronGeometry { + static { + __name(this, "IcosahedronGeometry"); + } + constructor(radius = 1, detail = 0) { + const t2 = (1 + Math.sqrt(5)) / 2; + const vertices = [ + -1, + t2, + 0, + 1, + t2, + 0, + -1, + -t2, + 0, + 1, + -t2, + 0, + 0, + -1, + t2, + 0, + 1, + t2, + 0, + -1, + -t2, + 0, + 1, + -t2, + t2, + 0, + -1, + t2, + 0, + 1, + -t2, + 0, + -1, + -t2, + 0, + 1 + ]; + const indices = [ + 0, + 11, + 5, + 0, + 5, + 1, + 0, + 1, + 7, + 0, + 7, + 10, + 0, + 10, + 11, + 1, + 5, + 9, + 5, + 11, + 4, + 11, + 10, + 2, + 10, + 7, + 6, + 7, + 1, + 8, + 3, + 9, + 4, + 3, + 4, + 2, + 3, + 2, + 6, + 3, + 6, + 8, + 3, + 8, + 9, + 4, + 9, + 5, + 2, + 4, + 11, + 6, + 2, + 10, + 8, + 6, + 7, + 9, + 8, + 1 + ]; + super(vertices, indices, radius, detail); + this.type = "IcosahedronGeometry"; + this.parameters = { + radius, + detail + }; + } + static fromJSON(data) { + return new IcosahedronGeometry(data.radius, data.detail); + } +} +class OctahedronGeometry extends PolyhedronGeometry { + static { + __name(this, "OctahedronGeometry"); + } + constructor(radius = 1, detail = 0) { + const vertices = [ + 1, + 0, + 0, + -1, + 0, + 0, + 0, + 1, + 0, + 0, + -1, + 0, + 0, + 0, + 1, + 0, + 0, + -1 + ]; + const indices = [ + 0, + 2, + 4, + 0, + 4, + 3, + 0, + 3, + 5, + 0, + 5, + 2, + 1, + 2, + 5, + 1, + 5, + 3, + 1, + 3, + 4, + 1, + 4, + 2 + ]; + super(vertices, indices, radius, detail); + this.type = "OctahedronGeometry"; + this.parameters = { + radius, + detail + }; + } + static fromJSON(data) { + return new OctahedronGeometry(data.radius, data.detail); + } +} +class RingGeometry extends BufferGeometry { + static { + __name(this, "RingGeometry"); + } + constructor(innerRadius = 0.5, outerRadius = 1, thetaSegments = 32, phiSegments = 1, thetaStart = 0, thetaLength = Math.PI * 2) { + super(); + this.type = "RingGeometry"; + this.parameters = { + innerRadius, + outerRadius, + thetaSegments, + phiSegments, + thetaStart, + thetaLength + }; + thetaSegments = Math.max(3, thetaSegments); + phiSegments = Math.max(1, phiSegments); + const indices = []; + const vertices = []; + const normals = []; + const uvs = []; + let radius = innerRadius; + const radiusStep = (outerRadius - innerRadius) / phiSegments; + const vertex2 = new Vector3(); + const uv = new Vector2(); + for (let j = 0; j <= phiSegments; j++) { + for (let i = 0; i <= thetaSegments; i++) { + const segment = thetaStart + i / thetaSegments * thetaLength; + vertex2.x = radius * Math.cos(segment); + vertex2.y = radius * Math.sin(segment); + vertices.push(vertex2.x, vertex2.y, vertex2.z); + normals.push(0, 0, 1); + uv.x = (vertex2.x / outerRadius + 1) / 2; + uv.y = (vertex2.y / outerRadius + 1) / 2; + uvs.push(uv.x, uv.y); + } + radius += radiusStep; + } + for (let j = 0; j < phiSegments; j++) { + const thetaSegmentLevel = j * (thetaSegments + 1); + for (let i = 0; i < thetaSegments; i++) { + const segment = i + thetaSegmentLevel; + const a = segment; + const b = segment + thetaSegments + 1; + const c = segment + thetaSegments + 2; + const d = segment + 1; + indices.push(a, b, d); + indices.push(b, c, d); + } + } + this.setIndex(indices); + this.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + this.setAttribute("normal", new Float32BufferAttribute(normals, 3)); + this.setAttribute("uv", new Float32BufferAttribute(uvs, 2)); + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } + static fromJSON(data) { + return new RingGeometry(data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength); + } +} +class ShapeGeometry extends BufferGeometry { + static { + __name(this, "ShapeGeometry"); + } + constructor(shapes = new Shape([new Vector2(0, 0.5), new Vector2(-0.5, -0.5), new Vector2(0.5, -0.5)]), curveSegments = 12) { + super(); + this.type = "ShapeGeometry"; + this.parameters = { + shapes, + curveSegments + }; + const indices = []; + const vertices = []; + const normals = []; + const uvs = []; + let groupStart = 0; + let groupCount = 0; + if (Array.isArray(shapes) === false) { + addShape(shapes); + } else { + for (let i = 0; i < shapes.length; i++) { + addShape(shapes[i]); + this.addGroup(groupStart, groupCount, i); + groupStart += groupCount; + groupCount = 0; + } + } + this.setIndex(indices); + this.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + this.setAttribute("normal", new Float32BufferAttribute(normals, 3)); + this.setAttribute("uv", new Float32BufferAttribute(uvs, 2)); + function addShape(shape) { + const indexOffset = vertices.length / 3; + const points = shape.extractPoints(curveSegments); + let shapeVertices = points.shape; + const shapeHoles = points.holes; + if (ShapeUtils.isClockWise(shapeVertices) === false) { + shapeVertices = shapeVertices.reverse(); + } + for (let i = 0, l = shapeHoles.length; i < l; i++) { + const shapeHole = shapeHoles[i]; + if (ShapeUtils.isClockWise(shapeHole) === true) { + shapeHoles[i] = shapeHole.reverse(); + } + } + const faces = ShapeUtils.triangulateShape(shapeVertices, shapeHoles); + for (let i = 0, l = shapeHoles.length; i < l; i++) { + const shapeHole = shapeHoles[i]; + shapeVertices = shapeVertices.concat(shapeHole); + } + for (let i = 0, l = shapeVertices.length; i < l; i++) { + const vertex2 = shapeVertices[i]; + vertices.push(vertex2.x, vertex2.y, 0); + normals.push(0, 0, 1); + uvs.push(vertex2.x, vertex2.y); + } + for (let i = 0, l = faces.length; i < l; i++) { + const face = faces[i]; + const a = face[0] + indexOffset; + const b = face[1] + indexOffset; + const c = face[2] + indexOffset; + indices.push(a, b, c); + groupCount += 3; + } + } + __name(addShape, "addShape"); + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } + toJSON() { + const data = super.toJSON(); + const shapes = this.parameters.shapes; + return toJSON(shapes, data); + } + static fromJSON(data, shapes) { + const geometryShapes = []; + for (let j = 0, jl = data.shapes.length; j < jl; j++) { + const shape = shapes[data.shapes[j]]; + geometryShapes.push(shape); + } + return new ShapeGeometry(geometryShapes, data.curveSegments); + } +} +function toJSON(shapes, data) { + data.shapes = []; + if (Array.isArray(shapes)) { + for (let i = 0, l = shapes.length; i < l; i++) { + const shape = shapes[i]; + data.shapes.push(shape.uuid); + } + } else { + data.shapes.push(shapes.uuid); + } + return data; +} +__name(toJSON, "toJSON"); +class SphereGeometry extends BufferGeometry { + static { + __name(this, "SphereGeometry"); + } + constructor(radius = 1, widthSegments = 32, heightSegments = 16, phiStart = 0, phiLength = Math.PI * 2, thetaStart = 0, thetaLength = Math.PI) { + super(); + this.type = "SphereGeometry"; + this.parameters = { + radius, + widthSegments, + heightSegments, + phiStart, + phiLength, + thetaStart, + thetaLength + }; + widthSegments = Math.max(3, Math.floor(widthSegments)); + heightSegments = Math.max(2, Math.floor(heightSegments)); + const thetaEnd = Math.min(thetaStart + thetaLength, Math.PI); + let index = 0; + const grid = []; + const vertex2 = new Vector3(); + const normal = new Vector3(); + const indices = []; + const vertices = []; + const normals = []; + const uvs = []; + for (let iy = 0; iy <= heightSegments; iy++) { + const verticesRow = []; + const v = iy / heightSegments; + let uOffset = 0; + if (iy === 0 && thetaStart === 0) { + uOffset = 0.5 / widthSegments; + } else if (iy === heightSegments && thetaEnd === Math.PI) { + uOffset = -0.5 / widthSegments; + } + for (let ix = 0; ix <= widthSegments; ix++) { + const u = ix / widthSegments; + vertex2.x = -radius * Math.cos(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength); + vertex2.y = radius * Math.cos(thetaStart + v * thetaLength); + vertex2.z = radius * Math.sin(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength); + vertices.push(vertex2.x, vertex2.y, vertex2.z); + normal.copy(vertex2).normalize(); + normals.push(normal.x, normal.y, normal.z); + uvs.push(u + uOffset, 1 - v); + verticesRow.push(index++); + } + grid.push(verticesRow); + } + for (let iy = 0; iy < heightSegments; iy++) { + for (let ix = 0; ix < widthSegments; ix++) { + const a = grid[iy][ix + 1]; + const b = grid[iy][ix]; + const c = grid[iy + 1][ix]; + const d = grid[iy + 1][ix + 1]; + if (iy !== 0 || thetaStart > 0) indices.push(a, b, d); + if (iy !== heightSegments - 1 || thetaEnd < Math.PI) indices.push(b, c, d); + } + } + this.setIndex(indices); + this.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + this.setAttribute("normal", new Float32BufferAttribute(normals, 3)); + this.setAttribute("uv", new Float32BufferAttribute(uvs, 2)); + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } + static fromJSON(data) { + return new SphereGeometry(data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength); + } +} +class TetrahedronGeometry extends PolyhedronGeometry { + static { + __name(this, "TetrahedronGeometry"); + } + constructor(radius = 1, detail = 0) { + const vertices = [ + 1, + 1, + 1, + -1, + -1, + 1, + -1, + 1, + -1, + 1, + -1, + -1 + ]; + const indices = [ + 2, + 1, + 0, + 0, + 3, + 2, + 1, + 3, + 0, + 2, + 3, + 1 + ]; + super(vertices, indices, radius, detail); + this.type = "TetrahedronGeometry"; + this.parameters = { + radius, + detail + }; + } + static fromJSON(data) { + return new TetrahedronGeometry(data.radius, data.detail); + } +} +class TorusGeometry extends BufferGeometry { + static { + __name(this, "TorusGeometry"); + } + constructor(radius = 1, tube = 0.4, radialSegments = 12, tubularSegments = 48, arc = Math.PI * 2) { + super(); + this.type = "TorusGeometry"; + this.parameters = { + radius, + tube, + radialSegments, + tubularSegments, + arc + }; + radialSegments = Math.floor(radialSegments); + tubularSegments = Math.floor(tubularSegments); + const indices = []; + const vertices = []; + const normals = []; + const uvs = []; + const center = new Vector3(); + const vertex2 = new Vector3(); + const normal = new Vector3(); + for (let j = 0; j <= radialSegments; j++) { + for (let i = 0; i <= tubularSegments; i++) { + const u = i / tubularSegments * arc; + const v = j / radialSegments * Math.PI * 2; + vertex2.x = (radius + tube * Math.cos(v)) * Math.cos(u); + vertex2.y = (radius + tube * Math.cos(v)) * Math.sin(u); + vertex2.z = tube * Math.sin(v); + vertices.push(vertex2.x, vertex2.y, vertex2.z); + center.x = radius * Math.cos(u); + center.y = radius * Math.sin(u); + normal.subVectors(vertex2, center).normalize(); + normals.push(normal.x, normal.y, normal.z); + uvs.push(i / tubularSegments); + uvs.push(j / radialSegments); + } + } + for (let j = 1; j <= radialSegments; j++) { + for (let i = 1; i <= tubularSegments; i++) { + const a = (tubularSegments + 1) * j + i - 1; + const b = (tubularSegments + 1) * (j - 1) + i - 1; + const c = (tubularSegments + 1) * (j - 1) + i; + const d = (tubularSegments + 1) * j + i; + indices.push(a, b, d); + indices.push(b, c, d); + } + } + this.setIndex(indices); + this.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + this.setAttribute("normal", new Float32BufferAttribute(normals, 3)); + this.setAttribute("uv", new Float32BufferAttribute(uvs, 2)); + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } + static fromJSON(data) { + return new TorusGeometry(data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc); + } +} +class TorusKnotGeometry extends BufferGeometry { + static { + __name(this, "TorusKnotGeometry"); + } + constructor(radius = 1, tube = 0.4, tubularSegments = 64, radialSegments = 8, p = 2, q = 3) { + super(); + this.type = "TorusKnotGeometry"; + this.parameters = { + radius, + tube, + tubularSegments, + radialSegments, + p, + q + }; + tubularSegments = Math.floor(tubularSegments); + radialSegments = Math.floor(radialSegments); + const indices = []; + const vertices = []; + const normals = []; + const uvs = []; + const vertex2 = new Vector3(); + const normal = new Vector3(); + const P1 = new Vector3(); + const P2 = new Vector3(); + const B = new Vector3(); + const T = new Vector3(); + const N = new Vector3(); + for (let i = 0; i <= tubularSegments; ++i) { + const u = i / tubularSegments * p * Math.PI * 2; + calculatePositionOnCurve(u, p, q, radius, P1); + calculatePositionOnCurve(u + 0.01, p, q, radius, P2); + T.subVectors(P2, P1); + N.addVectors(P2, P1); + B.crossVectors(T, N); + N.crossVectors(B, T); + B.normalize(); + N.normalize(); + for (let j = 0; j <= radialSegments; ++j) { + const v = j / radialSegments * Math.PI * 2; + const cx = -tube * Math.cos(v); + const cy = tube * Math.sin(v); + vertex2.x = P1.x + (cx * N.x + cy * B.x); + vertex2.y = P1.y + (cx * N.y + cy * B.y); + vertex2.z = P1.z + (cx * N.z + cy * B.z); + vertices.push(vertex2.x, vertex2.y, vertex2.z); + normal.subVectors(vertex2, P1).normalize(); + normals.push(normal.x, normal.y, normal.z); + uvs.push(i / tubularSegments); + uvs.push(j / radialSegments); + } + } + for (let j = 1; j <= tubularSegments; j++) { + for (let i = 1; i <= radialSegments; i++) { + const a = (radialSegments + 1) * (j - 1) + (i - 1); + const b = (radialSegments + 1) * j + (i - 1); + const c = (radialSegments + 1) * j + i; + const d = (radialSegments + 1) * (j - 1) + i; + indices.push(a, b, d); + indices.push(b, c, d); + } + } + this.setIndex(indices); + this.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + this.setAttribute("normal", new Float32BufferAttribute(normals, 3)); + this.setAttribute("uv", new Float32BufferAttribute(uvs, 2)); + function calculatePositionOnCurve(u, p2, q2, radius2, position) { + const cu = Math.cos(u); + const su = Math.sin(u); + const quOverP = q2 / p2 * u; + const cs = Math.cos(quOverP); + position.x = radius2 * (2 + cs) * 0.5 * cu; + position.y = radius2 * (2 + cs) * su * 0.5; + position.z = radius2 * Math.sin(quOverP) * 0.5; + } + __name(calculatePositionOnCurve, "calculatePositionOnCurve"); + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } + static fromJSON(data) { + return new TorusKnotGeometry(data.radius, data.tube, data.tubularSegments, data.radialSegments, data.p, data.q); + } +} +class TubeGeometry extends BufferGeometry { + static { + __name(this, "TubeGeometry"); + } + constructor(path = new QuadraticBezierCurve3(new Vector3(-1, -1, 0), new Vector3(-1, 1, 0), new Vector3(1, 1, 0)), tubularSegments = 64, radius = 1, radialSegments = 8, closed = false) { + super(); + this.type = "TubeGeometry"; + this.parameters = { + path, + tubularSegments, + radius, + radialSegments, + closed + }; + const frames = path.computeFrenetFrames(tubularSegments, closed); + this.tangents = frames.tangents; + this.normals = frames.normals; + this.binormals = frames.binormals; + const vertex2 = new Vector3(); + const normal = new Vector3(); + const uv = new Vector2(); + let P = new Vector3(); + const vertices = []; + const normals = []; + const uvs = []; + const indices = []; + generateBufferData(); + this.setIndex(indices); + this.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + this.setAttribute("normal", new Float32BufferAttribute(normals, 3)); + this.setAttribute("uv", new Float32BufferAttribute(uvs, 2)); + function generateBufferData() { + for (let i = 0; i < tubularSegments; i++) { + generateSegment(i); + } + generateSegment(closed === false ? tubularSegments : 0); + generateUVs(); + generateIndices(); + } + __name(generateBufferData, "generateBufferData"); + function generateSegment(i) { + P = path.getPointAt(i / tubularSegments, P); + const N = frames.normals[i]; + const B = frames.binormals[i]; + for (let j = 0; j <= radialSegments; j++) { + const v = j / radialSegments * Math.PI * 2; + const sin = Math.sin(v); + const cos = -Math.cos(v); + normal.x = cos * N.x + sin * B.x; + normal.y = cos * N.y + sin * B.y; + normal.z = cos * N.z + sin * B.z; + normal.normalize(); + normals.push(normal.x, normal.y, normal.z); + vertex2.x = P.x + radius * normal.x; + vertex2.y = P.y + radius * normal.y; + vertex2.z = P.z + radius * normal.z; + vertices.push(vertex2.x, vertex2.y, vertex2.z); + } + } + __name(generateSegment, "generateSegment"); + function generateIndices() { + for (let j = 1; j <= tubularSegments; j++) { + for (let i = 1; i <= radialSegments; i++) { + const a = (radialSegments + 1) * (j - 1) + (i - 1); + const b = (radialSegments + 1) * j + (i - 1); + const c = (radialSegments + 1) * j + i; + const d = (radialSegments + 1) * (j - 1) + i; + indices.push(a, b, d); + indices.push(b, c, d); + } + } + } + __name(generateIndices, "generateIndices"); + function generateUVs() { + for (let i = 0; i <= tubularSegments; i++) { + for (let j = 0; j <= radialSegments; j++) { + uv.x = i / tubularSegments; + uv.y = j / radialSegments; + uvs.push(uv.x, uv.y); + } + } + } + __name(generateUVs, "generateUVs"); + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } + toJSON() { + const data = super.toJSON(); + data.path = this.parameters.path.toJSON(); + return data; + } + static fromJSON(data) { + return new TubeGeometry( + new Curves[data.path.type]().fromJSON(data.path), + data.tubularSegments, + data.radius, + data.radialSegments, + data.closed + ); + } +} +class WireframeGeometry extends BufferGeometry { + static { + __name(this, "WireframeGeometry"); + } + constructor(geometry = null) { + super(); + this.type = "WireframeGeometry"; + this.parameters = { + geometry + }; + if (geometry !== null) { + const vertices = []; + const edges = /* @__PURE__ */ new Set(); + const start = new Vector3(); + const end = new Vector3(); + if (geometry.index !== null) { + const position = geometry.attributes.position; + const indices = geometry.index; + let groups = geometry.groups; + if (groups.length === 0) { + groups = [{ start: 0, count: indices.count, materialIndex: 0 }]; + } + for (let o = 0, ol = groups.length; o < ol; ++o) { + const group = groups[o]; + const groupStart = group.start; + const groupCount = group.count; + for (let i = groupStart, l = groupStart + groupCount; i < l; i += 3) { + for (let j = 0; j < 3; j++) { + const index1 = indices.getX(i + j); + const index2 = indices.getX(i + (j + 1) % 3); + start.fromBufferAttribute(position, index1); + end.fromBufferAttribute(position, index2); + if (isUniqueEdge(start, end, edges) === true) { + vertices.push(start.x, start.y, start.z); + vertices.push(end.x, end.y, end.z); + } + } + } + } + } else { + const position = geometry.attributes.position; + for (let i = 0, l = position.count / 3; i < l; i++) { + for (let j = 0; j < 3; j++) { + const index1 = 3 * i + j; + const index2 = 3 * i + (j + 1) % 3; + start.fromBufferAttribute(position, index1); + end.fromBufferAttribute(position, index2); + if (isUniqueEdge(start, end, edges) === true) { + vertices.push(start.x, start.y, start.z); + vertices.push(end.x, end.y, end.z); + } + } + } + } + this.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + } + } + copy(source) { + super.copy(source); + this.parameters = Object.assign({}, source.parameters); + return this; + } +} +function isUniqueEdge(start, end, edges) { + const hash1 = `${start.x},${start.y},${start.z}-${end.x},${end.y},${end.z}`; + const hash2 = `${end.x},${end.y},${end.z}-${start.x},${start.y},${start.z}`; + if (edges.has(hash1) === true || edges.has(hash2) === true) { + return false; + } else { + edges.add(hash1); + edges.add(hash2); + return true; + } +} +__name(isUniqueEdge, "isUniqueEdge"); +var Geometries = /* @__PURE__ */ Object.freeze({ + __proto__: null, + BoxGeometry, + CapsuleGeometry, + CircleGeometry, + ConeGeometry, + CylinderGeometry, + DodecahedronGeometry, + EdgesGeometry, + ExtrudeGeometry, + IcosahedronGeometry, + LatheGeometry, + OctahedronGeometry, + PlaneGeometry, + PolyhedronGeometry, + RingGeometry, + ShapeGeometry, + SphereGeometry, + TetrahedronGeometry, + TorusGeometry, + TorusKnotGeometry, + TubeGeometry, + WireframeGeometry +}); +class ShadowMaterial extends Material { + static { + __name(this, "ShadowMaterial"); + } + static get type() { + return "ShadowMaterial"; + } + constructor(parameters) { + super(); + this.isShadowMaterial = true; + this.color = new Color(0); + this.transparent = true; + this.fog = true; + this.setValues(parameters); + } + copy(source) { + super.copy(source); + this.color.copy(source.color); + this.fog = source.fog; + return this; + } +} +class RawShaderMaterial extends ShaderMaterial { + static { + __name(this, "RawShaderMaterial"); + } + static get type() { + return "RawShaderMaterial"; + } + constructor(parameters) { + super(parameters); + this.isRawShaderMaterial = true; + } +} +class MeshStandardMaterial extends Material { + static { + __name(this, "MeshStandardMaterial"); + } + static get type() { + return "MeshStandardMaterial"; + } + constructor(parameters) { + super(); + this.isMeshStandardMaterial = true; + this.defines = { "STANDARD": "" }; + this.color = new Color(16777215); + this.roughness = 1; + this.metalness = 0; + this.map = null; + this.lightMap = null; + this.lightMapIntensity = 1; + this.aoMap = null; + this.aoMapIntensity = 1; + this.emissive = new Color(0); + this.emissiveIntensity = 1; + this.emissiveMap = null; + this.bumpMap = null; + this.bumpScale = 1; + this.normalMap = null; + this.normalMapType = TangentSpaceNormalMap; + this.normalScale = new Vector2(1, 1); + this.displacementMap = null; + this.displacementScale = 1; + this.displacementBias = 0; + this.roughnessMap = null; + this.metalnessMap = null; + this.alphaMap = null; + this.envMap = null; + this.envMapRotation = new Euler(); + this.envMapIntensity = 1; + this.wireframe = false; + this.wireframeLinewidth = 1; + this.wireframeLinecap = "round"; + this.wireframeLinejoin = "round"; + this.flatShading = false; + this.fog = true; + this.setValues(parameters); + } + copy(source) { + super.copy(source); + this.defines = { "STANDARD": "" }; + this.color.copy(source.color); + this.roughness = source.roughness; + this.metalness = source.metalness; + this.map = source.map; + this.lightMap = source.lightMap; + this.lightMapIntensity = source.lightMapIntensity; + this.aoMap = source.aoMap; + this.aoMapIntensity = source.aoMapIntensity; + this.emissive.copy(source.emissive); + this.emissiveMap = source.emissiveMap; + this.emissiveIntensity = source.emissiveIntensity; + this.bumpMap = source.bumpMap; + this.bumpScale = source.bumpScale; + this.normalMap = source.normalMap; + this.normalMapType = source.normalMapType; + this.normalScale.copy(source.normalScale); + this.displacementMap = source.displacementMap; + this.displacementScale = source.displacementScale; + this.displacementBias = source.displacementBias; + this.roughnessMap = source.roughnessMap; + this.metalnessMap = source.metalnessMap; + this.alphaMap = source.alphaMap; + this.envMap = source.envMap; + this.envMapRotation.copy(source.envMapRotation); + this.envMapIntensity = source.envMapIntensity; + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + this.wireframeLinecap = source.wireframeLinecap; + this.wireframeLinejoin = source.wireframeLinejoin; + this.flatShading = source.flatShading; + this.fog = source.fog; + return this; + } +} +class MeshPhysicalMaterial extends MeshStandardMaterial { + static { + __name(this, "MeshPhysicalMaterial"); + } + static get type() { + return "MeshPhysicalMaterial"; + } + constructor(parameters) { + super(); + this.isMeshPhysicalMaterial = true; + this.defines = { + "STANDARD": "", + "PHYSICAL": "" + }; + this.anisotropyRotation = 0; + this.anisotropyMap = null; + this.clearcoatMap = null; + this.clearcoatRoughness = 0; + this.clearcoatRoughnessMap = null; + this.clearcoatNormalScale = new Vector2(1, 1); + this.clearcoatNormalMap = null; + this.ior = 1.5; + Object.defineProperty(this, "reflectivity", { + get: /* @__PURE__ */ __name(function() { + return clamp(2.5 * (this.ior - 1) / (this.ior + 1), 0, 1); + }, "get"), + set: /* @__PURE__ */ __name(function(reflectivity) { + this.ior = (1 + 0.4 * reflectivity) / (1 - 0.4 * reflectivity); + }, "set") + }); + this.iridescenceMap = null; + this.iridescenceIOR = 1.3; + this.iridescenceThicknessRange = [100, 400]; + this.iridescenceThicknessMap = null; + this.sheenColor = new Color(0); + this.sheenColorMap = null; + this.sheenRoughness = 1; + this.sheenRoughnessMap = null; + this.transmissionMap = null; + this.thickness = 0; + this.thicknessMap = null; + this.attenuationDistance = Infinity; + this.attenuationColor = new Color(1, 1, 1); + this.specularIntensity = 1; + this.specularIntensityMap = null; + this.specularColor = new Color(1, 1, 1); + this.specularColorMap = null; + this._anisotropy = 0; + this._clearcoat = 0; + this._dispersion = 0; + this._iridescence = 0; + this._sheen = 0; + this._transmission = 0; + this.setValues(parameters); + } + get anisotropy() { + return this._anisotropy; + } + set anisotropy(value) { + if (this._anisotropy > 0 !== value > 0) { + this.version++; + } + this._anisotropy = value; + } + get clearcoat() { + return this._clearcoat; + } + set clearcoat(value) { + if (this._clearcoat > 0 !== value > 0) { + this.version++; + } + this._clearcoat = value; + } + get iridescence() { + return this._iridescence; + } + set iridescence(value) { + if (this._iridescence > 0 !== value > 0) { + this.version++; + } + this._iridescence = value; + } + get dispersion() { + return this._dispersion; + } + set dispersion(value) { + if (this._dispersion > 0 !== value > 0) { + this.version++; + } + this._dispersion = value; + } + get sheen() { + return this._sheen; + } + set sheen(value) { + if (this._sheen > 0 !== value > 0) { + this.version++; + } + this._sheen = value; + } + get transmission() { + return this._transmission; + } + set transmission(value) { + if (this._transmission > 0 !== value > 0) { + this.version++; + } + this._transmission = value; + } + copy(source) { + super.copy(source); + this.defines = { + "STANDARD": "", + "PHYSICAL": "" + }; + this.anisotropy = source.anisotropy; + this.anisotropyRotation = source.anisotropyRotation; + this.anisotropyMap = source.anisotropyMap; + this.clearcoat = source.clearcoat; + this.clearcoatMap = source.clearcoatMap; + this.clearcoatRoughness = source.clearcoatRoughness; + this.clearcoatRoughnessMap = source.clearcoatRoughnessMap; + this.clearcoatNormalMap = source.clearcoatNormalMap; + this.clearcoatNormalScale.copy(source.clearcoatNormalScale); + this.dispersion = source.dispersion; + this.ior = source.ior; + this.iridescence = source.iridescence; + this.iridescenceMap = source.iridescenceMap; + this.iridescenceIOR = source.iridescenceIOR; + this.iridescenceThicknessRange = [...source.iridescenceThicknessRange]; + this.iridescenceThicknessMap = source.iridescenceThicknessMap; + this.sheen = source.sheen; + this.sheenColor.copy(source.sheenColor); + this.sheenColorMap = source.sheenColorMap; + this.sheenRoughness = source.sheenRoughness; + this.sheenRoughnessMap = source.sheenRoughnessMap; + this.transmission = source.transmission; + this.transmissionMap = source.transmissionMap; + this.thickness = source.thickness; + this.thicknessMap = source.thicknessMap; + this.attenuationDistance = source.attenuationDistance; + this.attenuationColor.copy(source.attenuationColor); + this.specularIntensity = source.specularIntensity; + this.specularIntensityMap = source.specularIntensityMap; + this.specularColor.copy(source.specularColor); + this.specularColorMap = source.specularColorMap; + return this; + } +} +class MeshPhongMaterial extends Material { + static { + __name(this, "MeshPhongMaterial"); + } + static get type() { + return "MeshPhongMaterial"; + } + constructor(parameters) { + super(); + this.isMeshPhongMaterial = true; + this.color = new Color(16777215); + this.specular = new Color(1118481); + this.shininess = 30; + this.map = null; + this.lightMap = null; + this.lightMapIntensity = 1; + this.aoMap = null; + this.aoMapIntensity = 1; + this.emissive = new Color(0); + this.emissiveIntensity = 1; + this.emissiveMap = null; + this.bumpMap = null; + this.bumpScale = 1; + this.normalMap = null; + this.normalMapType = TangentSpaceNormalMap; + this.normalScale = new Vector2(1, 1); + this.displacementMap = null; + this.displacementScale = 1; + this.displacementBias = 0; + this.specularMap = null; + this.alphaMap = null; + this.envMap = null; + this.envMapRotation = new Euler(); + this.combine = MultiplyOperation; + this.reflectivity = 1; + this.refractionRatio = 0.98; + this.wireframe = false; + this.wireframeLinewidth = 1; + this.wireframeLinecap = "round"; + this.wireframeLinejoin = "round"; + this.flatShading = false; + this.fog = true; + this.setValues(parameters); + } + copy(source) { + super.copy(source); + this.color.copy(source.color); + this.specular.copy(source.specular); + this.shininess = source.shininess; + this.map = source.map; + this.lightMap = source.lightMap; + this.lightMapIntensity = source.lightMapIntensity; + this.aoMap = source.aoMap; + this.aoMapIntensity = source.aoMapIntensity; + this.emissive.copy(source.emissive); + this.emissiveMap = source.emissiveMap; + this.emissiveIntensity = source.emissiveIntensity; + this.bumpMap = source.bumpMap; + this.bumpScale = source.bumpScale; + this.normalMap = source.normalMap; + this.normalMapType = source.normalMapType; + this.normalScale.copy(source.normalScale); + this.displacementMap = source.displacementMap; + this.displacementScale = source.displacementScale; + this.displacementBias = source.displacementBias; + this.specularMap = source.specularMap; + this.alphaMap = source.alphaMap; + this.envMap = source.envMap; + this.envMapRotation.copy(source.envMapRotation); + this.combine = source.combine; + this.reflectivity = source.reflectivity; + this.refractionRatio = source.refractionRatio; + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + this.wireframeLinecap = source.wireframeLinecap; + this.wireframeLinejoin = source.wireframeLinejoin; + this.flatShading = source.flatShading; + this.fog = source.fog; + return this; + } +} +class MeshToonMaterial extends Material { + static { + __name(this, "MeshToonMaterial"); + } + static get type() { + return "MeshToonMaterial"; + } + constructor(parameters) { + super(); + this.isMeshToonMaterial = true; + this.defines = { "TOON": "" }; + this.color = new Color(16777215); + this.map = null; + this.gradientMap = null; + this.lightMap = null; + this.lightMapIntensity = 1; + this.aoMap = null; + this.aoMapIntensity = 1; + this.emissive = new Color(0); + this.emissiveIntensity = 1; + this.emissiveMap = null; + this.bumpMap = null; + this.bumpScale = 1; + this.normalMap = null; + this.normalMapType = TangentSpaceNormalMap; + this.normalScale = new Vector2(1, 1); + this.displacementMap = null; + this.displacementScale = 1; + this.displacementBias = 0; + this.alphaMap = null; + this.wireframe = false; + this.wireframeLinewidth = 1; + this.wireframeLinecap = "round"; + this.wireframeLinejoin = "round"; + this.fog = true; + this.setValues(parameters); + } + copy(source) { + super.copy(source); + this.color.copy(source.color); + this.map = source.map; + this.gradientMap = source.gradientMap; + this.lightMap = source.lightMap; + this.lightMapIntensity = source.lightMapIntensity; + this.aoMap = source.aoMap; + this.aoMapIntensity = source.aoMapIntensity; + this.emissive.copy(source.emissive); + this.emissiveMap = source.emissiveMap; + this.emissiveIntensity = source.emissiveIntensity; + this.bumpMap = source.bumpMap; + this.bumpScale = source.bumpScale; + this.normalMap = source.normalMap; + this.normalMapType = source.normalMapType; + this.normalScale.copy(source.normalScale); + this.displacementMap = source.displacementMap; + this.displacementScale = source.displacementScale; + this.displacementBias = source.displacementBias; + this.alphaMap = source.alphaMap; + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + this.wireframeLinecap = source.wireframeLinecap; + this.wireframeLinejoin = source.wireframeLinejoin; + this.fog = source.fog; + return this; + } +} +class MeshNormalMaterial extends Material { + static { + __name(this, "MeshNormalMaterial"); + } + static get type() { + return "MeshNormalMaterial"; + } + constructor(parameters) { + super(); + this.isMeshNormalMaterial = true; + this.bumpMap = null; + this.bumpScale = 1; + this.normalMap = null; + this.normalMapType = TangentSpaceNormalMap; + this.normalScale = new Vector2(1, 1); + this.displacementMap = null; + this.displacementScale = 1; + this.displacementBias = 0; + this.wireframe = false; + this.wireframeLinewidth = 1; + this.flatShading = false; + this.setValues(parameters); + } + copy(source) { + super.copy(source); + this.bumpMap = source.bumpMap; + this.bumpScale = source.bumpScale; + this.normalMap = source.normalMap; + this.normalMapType = source.normalMapType; + this.normalScale.copy(source.normalScale); + this.displacementMap = source.displacementMap; + this.displacementScale = source.displacementScale; + this.displacementBias = source.displacementBias; + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + this.flatShading = source.flatShading; + return this; + } +} +class MeshLambertMaterial extends Material { + static { + __name(this, "MeshLambertMaterial"); + } + static get type() { + return "MeshLambertMaterial"; + } + constructor(parameters) { + super(); + this.isMeshLambertMaterial = true; + this.color = new Color(16777215); + this.map = null; + this.lightMap = null; + this.lightMapIntensity = 1; + this.aoMap = null; + this.aoMapIntensity = 1; + this.emissive = new Color(0); + this.emissiveIntensity = 1; + this.emissiveMap = null; + this.bumpMap = null; + this.bumpScale = 1; + this.normalMap = null; + this.normalMapType = TangentSpaceNormalMap; + this.normalScale = new Vector2(1, 1); + this.displacementMap = null; + this.displacementScale = 1; + this.displacementBias = 0; + this.specularMap = null; + this.alphaMap = null; + this.envMap = null; + this.envMapRotation = new Euler(); + this.combine = MultiplyOperation; + this.reflectivity = 1; + this.refractionRatio = 0.98; + this.wireframe = false; + this.wireframeLinewidth = 1; + this.wireframeLinecap = "round"; + this.wireframeLinejoin = "round"; + this.flatShading = false; + this.fog = true; + this.setValues(parameters); + } + copy(source) { + super.copy(source); + this.color.copy(source.color); + this.map = source.map; + this.lightMap = source.lightMap; + this.lightMapIntensity = source.lightMapIntensity; + this.aoMap = source.aoMap; + this.aoMapIntensity = source.aoMapIntensity; + this.emissive.copy(source.emissive); + this.emissiveMap = source.emissiveMap; + this.emissiveIntensity = source.emissiveIntensity; + this.bumpMap = source.bumpMap; + this.bumpScale = source.bumpScale; + this.normalMap = source.normalMap; + this.normalMapType = source.normalMapType; + this.normalScale.copy(source.normalScale); + this.displacementMap = source.displacementMap; + this.displacementScale = source.displacementScale; + this.displacementBias = source.displacementBias; + this.specularMap = source.specularMap; + this.alphaMap = source.alphaMap; + this.envMap = source.envMap; + this.envMapRotation.copy(source.envMapRotation); + this.combine = source.combine; + this.reflectivity = source.reflectivity; + this.refractionRatio = source.refractionRatio; + this.wireframe = source.wireframe; + this.wireframeLinewidth = source.wireframeLinewidth; + this.wireframeLinecap = source.wireframeLinecap; + this.wireframeLinejoin = source.wireframeLinejoin; + this.flatShading = source.flatShading; + this.fog = source.fog; + return this; + } +} +class MeshMatcapMaterial extends Material { + static { + __name(this, "MeshMatcapMaterial"); + } + static get type() { + return "MeshMatcapMaterial"; + } + constructor(parameters) { + super(); + this.isMeshMatcapMaterial = true; + this.defines = { "MATCAP": "" }; + this.color = new Color(16777215); + this.matcap = null; + this.map = null; + this.bumpMap = null; + this.bumpScale = 1; + this.normalMap = null; + this.normalMapType = TangentSpaceNormalMap; + this.normalScale = new Vector2(1, 1); + this.displacementMap = null; + this.displacementScale = 1; + this.displacementBias = 0; + this.alphaMap = null; + this.flatShading = false; + this.fog = true; + this.setValues(parameters); + } + copy(source) { + super.copy(source); + this.defines = { "MATCAP": "" }; + this.color.copy(source.color); + this.matcap = source.matcap; + this.map = source.map; + this.bumpMap = source.bumpMap; + this.bumpScale = source.bumpScale; + this.normalMap = source.normalMap; + this.normalMapType = source.normalMapType; + this.normalScale.copy(source.normalScale); + this.displacementMap = source.displacementMap; + this.displacementScale = source.displacementScale; + this.displacementBias = source.displacementBias; + this.alphaMap = source.alphaMap; + this.flatShading = source.flatShading; + this.fog = source.fog; + return this; + } +} +class LineDashedMaterial extends LineBasicMaterial { + static { + __name(this, "LineDashedMaterial"); + } + static get type() { + return "LineDashedMaterial"; + } + constructor(parameters) { + super(); + this.isLineDashedMaterial = true; + this.scale = 1; + this.dashSize = 3; + this.gapSize = 1; + this.setValues(parameters); + } + copy(source) { + super.copy(source); + this.scale = source.scale; + this.dashSize = source.dashSize; + this.gapSize = source.gapSize; + return this; + } +} +function convertArray(array, type, forceClone) { + if (!array || // let 'undefined' and 'null' pass + !forceClone && array.constructor === type) return array; + if (typeof type.BYTES_PER_ELEMENT === "number") { + return new type(array); + } + return Array.prototype.slice.call(array); +} +__name(convertArray, "convertArray"); +function isTypedArray(object) { + return ArrayBuffer.isView(object) && !(object instanceof DataView); +} +__name(isTypedArray, "isTypedArray"); +function getKeyframeOrder(times) { + function compareTime(i, j) { + return times[i] - times[j]; + } + __name(compareTime, "compareTime"); + const n = times.length; + const result = new Array(n); + for (let i = 0; i !== n; ++i) result[i] = i; + result.sort(compareTime); + return result; +} +__name(getKeyframeOrder, "getKeyframeOrder"); +function sortedArray(values, stride, order) { + const nValues = values.length; + const result = new values.constructor(nValues); + for (let i = 0, dstOffset = 0; dstOffset !== nValues; ++i) { + const srcOffset = order[i] * stride; + for (let j = 0; j !== stride; ++j) { + result[dstOffset++] = values[srcOffset + j]; + } + } + return result; +} +__name(sortedArray, "sortedArray"); +function flattenJSON(jsonKeys, times, values, valuePropertyName) { + let i = 1, key = jsonKeys[0]; + while (key !== void 0 && key[valuePropertyName] === void 0) { + key = jsonKeys[i++]; + } + if (key === void 0) return; + let value = key[valuePropertyName]; + if (value === void 0) return; + if (Array.isArray(value)) { + do { + value = key[valuePropertyName]; + if (value !== void 0) { + times.push(key.time); + values.push.apply(values, value); + } + key = jsonKeys[i++]; + } while (key !== void 0); + } else if (value.toArray !== void 0) { + do { + value = key[valuePropertyName]; + if (value !== void 0) { + times.push(key.time); + value.toArray(values, values.length); + } + key = jsonKeys[i++]; + } while (key !== void 0); + } else { + do { + value = key[valuePropertyName]; + if (value !== void 0) { + times.push(key.time); + values.push(value); + } + key = jsonKeys[i++]; + } while (key !== void 0); + } +} +__name(flattenJSON, "flattenJSON"); +function subclip(sourceClip, name, startFrame, endFrame, fps = 30) { + const clip = sourceClip.clone(); + clip.name = name; + const tracks = []; + for (let i = 0; i < clip.tracks.length; ++i) { + const track = clip.tracks[i]; + const valueSize = track.getValueSize(); + const times = []; + const values = []; + for (let j = 0; j < track.times.length; ++j) { + const frame = track.times[j] * fps; + if (frame < startFrame || frame >= endFrame) continue; + times.push(track.times[j]); + for (let k = 0; k < valueSize; ++k) { + values.push(track.values[j * valueSize + k]); + } + } + if (times.length === 0) continue; + track.times = convertArray(times, track.times.constructor); + track.values = convertArray(values, track.values.constructor); + tracks.push(track); + } + clip.tracks = tracks; + let minStartTime = Infinity; + for (let i = 0; i < clip.tracks.length; ++i) { + if (minStartTime > clip.tracks[i].times[0]) { + minStartTime = clip.tracks[i].times[0]; + } + } + for (let i = 0; i < clip.tracks.length; ++i) { + clip.tracks[i].shift(-1 * minStartTime); + } + clip.resetDuration(); + return clip; +} +__name(subclip, "subclip"); +function makeClipAdditive(targetClip, referenceFrame = 0, referenceClip = targetClip, fps = 30) { + if (fps <= 0) fps = 30; + const numTracks = referenceClip.tracks.length; + const referenceTime = referenceFrame / fps; + for (let i = 0; i < numTracks; ++i) { + const referenceTrack = referenceClip.tracks[i]; + const referenceTrackType = referenceTrack.ValueTypeName; + if (referenceTrackType === "bool" || referenceTrackType === "string") continue; + const targetTrack = targetClip.tracks.find(function(track) { + return track.name === referenceTrack.name && track.ValueTypeName === referenceTrackType; + }); + if (targetTrack === void 0) continue; + let referenceOffset = 0; + const referenceValueSize = referenceTrack.getValueSize(); + if (referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) { + referenceOffset = referenceValueSize / 3; + } + let targetOffset = 0; + const targetValueSize = targetTrack.getValueSize(); + if (targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) { + targetOffset = targetValueSize / 3; + } + const lastIndex = referenceTrack.times.length - 1; + let referenceValue; + if (referenceTime <= referenceTrack.times[0]) { + const startIndex = referenceOffset; + const endIndex = referenceValueSize - referenceOffset; + referenceValue = referenceTrack.values.slice(startIndex, endIndex); + } else if (referenceTime >= referenceTrack.times[lastIndex]) { + const startIndex = lastIndex * referenceValueSize + referenceOffset; + const endIndex = startIndex + referenceValueSize - referenceOffset; + referenceValue = referenceTrack.values.slice(startIndex, endIndex); + } else { + const interpolant = referenceTrack.createInterpolant(); + const startIndex = referenceOffset; + const endIndex = referenceValueSize - referenceOffset; + interpolant.evaluate(referenceTime); + referenceValue = interpolant.resultBuffer.slice(startIndex, endIndex); + } + if (referenceTrackType === "quaternion") { + const referenceQuat = new Quaternion().fromArray(referenceValue).normalize().conjugate(); + referenceQuat.toArray(referenceValue); + } + const numTimes = targetTrack.times.length; + for (let j = 0; j < numTimes; ++j) { + const valueStart = j * targetValueSize + targetOffset; + if (referenceTrackType === "quaternion") { + Quaternion.multiplyQuaternionsFlat( + targetTrack.values, + valueStart, + referenceValue, + 0, + targetTrack.values, + valueStart + ); + } else { + const valueEnd = targetValueSize - targetOffset * 2; + for (let k = 0; k < valueEnd; ++k) { + targetTrack.values[valueStart + k] -= referenceValue[k]; + } + } + } + } + targetClip.blendMode = AdditiveAnimationBlendMode; + return targetClip; +} +__name(makeClipAdditive, "makeClipAdditive"); +const AnimationUtils = { + convertArray, + isTypedArray, + getKeyframeOrder, + sortedArray, + flattenJSON, + subclip, + makeClipAdditive +}; +class Interpolant { + static { + __name(this, "Interpolant"); + } + constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) { + this.parameterPositions = parameterPositions; + this._cachedIndex = 0; + this.resultBuffer = resultBuffer !== void 0 ? resultBuffer : new sampleValues.constructor(sampleSize); + this.sampleValues = sampleValues; + this.valueSize = sampleSize; + this.settings = null; + this.DefaultSettings_ = {}; + } + evaluate(t2) { + const pp = this.parameterPositions; + let i1 = this._cachedIndex, t1 = pp[i1], t0 = pp[i1 - 1]; + validate_interval: { + seek: { + let right; + linear_scan: { + forward_scan: if (!(t2 < t1)) { + for (let giveUpAt = i1 + 2; ; ) { + if (t1 === void 0) { + if (t2 < t0) break forward_scan; + i1 = pp.length; + this._cachedIndex = i1; + return this.copySampleValue_(i1 - 1); + } + if (i1 === giveUpAt) break; + t0 = t1; + t1 = pp[++i1]; + if (t2 < t1) { + break seek; + } + } + right = pp.length; + break linear_scan; + } + if (!(t2 >= t0)) { + const t1global = pp[1]; + if (t2 < t1global) { + i1 = 2; + t0 = t1global; + } + for (let giveUpAt = i1 - 2; ; ) { + if (t0 === void 0) { + this._cachedIndex = 0; + return this.copySampleValue_(0); + } + if (i1 === giveUpAt) break; + t1 = t0; + t0 = pp[--i1 - 1]; + if (t2 >= t0) { + break seek; + } + } + right = i1; + i1 = 0; + break linear_scan; + } + break validate_interval; + } + while (i1 < right) { + const mid = i1 + right >>> 1; + if (t2 < pp[mid]) { + right = mid; + } else { + i1 = mid + 1; + } + } + t1 = pp[i1]; + t0 = pp[i1 - 1]; + if (t0 === void 0) { + this._cachedIndex = 0; + return this.copySampleValue_(0); + } + if (t1 === void 0) { + i1 = pp.length; + this._cachedIndex = i1; + return this.copySampleValue_(i1 - 1); + } + } + this._cachedIndex = i1; + this.intervalChanged_(i1, t0, t1); + } + return this.interpolate_(i1, t0, t2, t1); + } + getSettings_() { + return this.settings || this.DefaultSettings_; + } + copySampleValue_(index) { + const result = this.resultBuffer, values = this.sampleValues, stride = this.valueSize, offset = index * stride; + for (let i = 0; i !== stride; ++i) { + result[i] = values[offset + i]; + } + return result; + } + // Template methods for derived classes: + interpolate_() { + throw new Error("call to abstract method"); + } + intervalChanged_() { + } +} +class CubicInterpolant extends Interpolant { + static { + __name(this, "CubicInterpolant"); + } + constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) { + super(parameterPositions, sampleValues, sampleSize, resultBuffer); + this._weightPrev = -0; + this._offsetPrev = -0; + this._weightNext = -0; + this._offsetNext = -0; + this.DefaultSettings_ = { + endingStart: ZeroCurvatureEnding, + endingEnd: ZeroCurvatureEnding + }; + } + intervalChanged_(i1, t0, t1) { + const pp = this.parameterPositions; + let iPrev = i1 - 2, iNext = i1 + 1, tPrev = pp[iPrev], tNext = pp[iNext]; + if (tPrev === void 0) { + switch (this.getSettings_().endingStart) { + case ZeroSlopeEnding: + iPrev = i1; + tPrev = 2 * t0 - t1; + break; + case WrapAroundEnding: + iPrev = pp.length - 2; + tPrev = t0 + pp[iPrev] - pp[iPrev + 1]; + break; + default: + iPrev = i1; + tPrev = t1; + } + } + if (tNext === void 0) { + switch (this.getSettings_().endingEnd) { + case ZeroSlopeEnding: + iNext = i1; + tNext = 2 * t1 - t0; + break; + case WrapAroundEnding: + iNext = 1; + tNext = t1 + pp[1] - pp[0]; + break; + default: + iNext = i1 - 1; + tNext = t0; + } + } + const halfDt = (t1 - t0) * 0.5, stride = this.valueSize; + this._weightPrev = halfDt / (t0 - tPrev); + this._weightNext = halfDt / (tNext - t1); + this._offsetPrev = iPrev * stride; + this._offsetNext = iNext * stride; + } + interpolate_(i1, t0, t2, t1) { + const result = this.resultBuffer, values = this.sampleValues, stride = this.valueSize, o1 = i1 * stride, o0 = o1 - stride, oP = this._offsetPrev, oN = this._offsetNext, wP = this._weightPrev, wN = this._weightNext, p = (t2 - t0) / (t1 - t0), pp = p * p, ppp = pp * p; + const sP = -wP * ppp + 2 * wP * pp - wP * p; + const s0 = (1 + wP) * ppp + (-1.5 - 2 * wP) * pp + (-0.5 + wP) * p + 1; + const s1 = (-1 - wN) * ppp + (1.5 + wN) * pp + 0.5 * p; + const sN = wN * ppp - wN * pp; + for (let i = 0; i !== stride; ++i) { + result[i] = sP * values[oP + i] + s0 * values[o0 + i] + s1 * values[o1 + i] + sN * values[oN + i]; + } + return result; + } +} +class LinearInterpolant extends Interpolant { + static { + __name(this, "LinearInterpolant"); + } + constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) { + super(parameterPositions, sampleValues, sampleSize, resultBuffer); + } + interpolate_(i1, t0, t2, t1) { + const result = this.resultBuffer, values = this.sampleValues, stride = this.valueSize, offset1 = i1 * stride, offset0 = offset1 - stride, weight1 = (t2 - t0) / (t1 - t0), weight0 = 1 - weight1; + for (let i = 0; i !== stride; ++i) { + result[i] = values[offset0 + i] * weight0 + values[offset1 + i] * weight1; + } + return result; + } +} +class DiscreteInterpolant extends Interpolant { + static { + __name(this, "DiscreteInterpolant"); + } + constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) { + super(parameterPositions, sampleValues, sampleSize, resultBuffer); + } + interpolate_(i1) { + return this.copySampleValue_(i1 - 1); + } +} +class KeyframeTrack { + static { + __name(this, "KeyframeTrack"); + } + constructor(name, times, values, interpolation) { + if (name === void 0) throw new Error("THREE.KeyframeTrack: track name is undefined"); + if (times === void 0 || times.length === 0) throw new Error("THREE.KeyframeTrack: no keyframes in track named " + name); + this.name = name; + this.times = convertArray(times, this.TimeBufferType); + this.values = convertArray(values, this.ValueBufferType); + this.setInterpolation(interpolation || this.DefaultInterpolation); + } + // Serialization (in static context, because of constructor invocation + // and automatic invocation of .toJSON): + static toJSON(track) { + const trackType = track.constructor; + let json; + if (trackType.toJSON !== this.toJSON) { + json = trackType.toJSON(track); + } else { + json = { + "name": track.name, + "times": convertArray(track.times, Array), + "values": convertArray(track.values, Array) + }; + const interpolation = track.getInterpolation(); + if (interpolation !== track.DefaultInterpolation) { + json.interpolation = interpolation; + } + } + json.type = track.ValueTypeName; + return json; + } + InterpolantFactoryMethodDiscrete(result) { + return new DiscreteInterpolant(this.times, this.values, this.getValueSize(), result); + } + InterpolantFactoryMethodLinear(result) { + return new LinearInterpolant(this.times, this.values, this.getValueSize(), result); + } + InterpolantFactoryMethodSmooth(result) { + return new CubicInterpolant(this.times, this.values, this.getValueSize(), result); + } + setInterpolation(interpolation) { + let factoryMethod; + switch (interpolation) { + case InterpolateDiscrete: + factoryMethod = this.InterpolantFactoryMethodDiscrete; + break; + case InterpolateLinear: + factoryMethod = this.InterpolantFactoryMethodLinear; + break; + case InterpolateSmooth: + factoryMethod = this.InterpolantFactoryMethodSmooth; + break; + } + if (factoryMethod === void 0) { + const message = "unsupported interpolation for " + this.ValueTypeName + " keyframe track named " + this.name; + if (this.createInterpolant === void 0) { + if (interpolation !== this.DefaultInterpolation) { + this.setInterpolation(this.DefaultInterpolation); + } else { + throw new Error(message); + } + } + console.warn("THREE.KeyframeTrack:", message); + return this; + } + this.createInterpolant = factoryMethod; + return this; + } + getInterpolation() { + switch (this.createInterpolant) { + case this.InterpolantFactoryMethodDiscrete: + return InterpolateDiscrete; + case this.InterpolantFactoryMethodLinear: + return InterpolateLinear; + case this.InterpolantFactoryMethodSmooth: + return InterpolateSmooth; + } + } + getValueSize() { + return this.values.length / this.times.length; + } + // move all keyframes either forwards or backwards in time + shift(timeOffset) { + if (timeOffset !== 0) { + const times = this.times; + for (let i = 0, n = times.length; i !== n; ++i) { + times[i] += timeOffset; + } + } + return this; + } + // scale all keyframe times by a factor (useful for frame <-> seconds conversions) + scale(timeScale) { + if (timeScale !== 1) { + const times = this.times; + for (let i = 0, n = times.length; i !== n; ++i) { + times[i] *= timeScale; + } + } + return this; + } + // removes keyframes before and after animation without changing any values within the range [startTime, endTime]. + // IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values + trim(startTime, endTime) { + const times = this.times, nKeys = times.length; + let from = 0, to = nKeys - 1; + while (from !== nKeys && times[from] < startTime) { + ++from; + } + while (to !== -1 && times[to] > endTime) { + --to; + } + ++to; + if (from !== 0 || to !== nKeys) { + if (from >= to) { + to = Math.max(to, 1); + from = to - 1; + } + const stride = this.getValueSize(); + this.times = times.slice(from, to); + this.values = this.values.slice(from * stride, to * stride); + } + return this; + } + // ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable + validate() { + let valid = true; + const valueSize = this.getValueSize(); + if (valueSize - Math.floor(valueSize) !== 0) { + console.error("THREE.KeyframeTrack: Invalid value size in track.", this); + valid = false; + } + const times = this.times, values = this.values, nKeys = times.length; + if (nKeys === 0) { + console.error("THREE.KeyframeTrack: Track is empty.", this); + valid = false; + } + let prevTime = null; + for (let i = 0; i !== nKeys; i++) { + const currTime = times[i]; + if (typeof currTime === "number" && isNaN(currTime)) { + console.error("THREE.KeyframeTrack: Time is not a valid number.", this, i, currTime); + valid = false; + break; + } + if (prevTime !== null && prevTime > currTime) { + console.error("THREE.KeyframeTrack: Out of order keys.", this, i, currTime, prevTime); + valid = false; + break; + } + prevTime = currTime; + } + if (values !== void 0) { + if (isTypedArray(values)) { + for (let i = 0, n = values.length; i !== n; ++i) { + const value = values[i]; + if (isNaN(value)) { + console.error("THREE.KeyframeTrack: Value is not a valid number.", this, i, value); + valid = false; + break; + } + } + } + } + return valid; + } + // removes equivalent sequential keys as common in morph target sequences + // (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0) + optimize() { + const times = this.times.slice(), values = this.values.slice(), stride = this.getValueSize(), smoothInterpolation = this.getInterpolation() === InterpolateSmooth, lastIndex = times.length - 1; + let writeIndex = 1; + for (let i = 1; i < lastIndex; ++i) { + let keep = false; + const time = times[i]; + const timeNext = times[i + 1]; + if (time !== timeNext && (i !== 1 || time !== times[0])) { + if (!smoothInterpolation) { + const offset = i * stride, offsetP = offset - stride, offsetN = offset + stride; + for (let j = 0; j !== stride; ++j) { + const value = values[offset + j]; + if (value !== values[offsetP + j] || value !== values[offsetN + j]) { + keep = true; + break; + } + } + } else { + keep = true; + } + } + if (keep) { + if (i !== writeIndex) { + times[writeIndex] = times[i]; + const readOffset = i * stride, writeOffset = writeIndex * stride; + for (let j = 0; j !== stride; ++j) { + values[writeOffset + j] = values[readOffset + j]; + } + } + ++writeIndex; + } + } + if (lastIndex > 0) { + times[writeIndex] = times[lastIndex]; + for (let readOffset = lastIndex * stride, writeOffset = writeIndex * stride, j = 0; j !== stride; ++j) { + values[writeOffset + j] = values[readOffset + j]; + } + ++writeIndex; + } + if (writeIndex !== times.length) { + this.times = times.slice(0, writeIndex); + this.values = values.slice(0, writeIndex * stride); + } else { + this.times = times; + this.values = values; + } + return this; + } + clone() { + const times = this.times.slice(); + const values = this.values.slice(); + const TypedKeyframeTrack = this.constructor; + const track = new TypedKeyframeTrack(this.name, times, values); + track.createInterpolant = this.createInterpolant; + return track; + } +} +KeyframeTrack.prototype.TimeBufferType = Float32Array; +KeyframeTrack.prototype.ValueBufferType = Float32Array; +KeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear; +class BooleanKeyframeTrack extends KeyframeTrack { + static { + __name(this, "BooleanKeyframeTrack"); + } + // No interpolation parameter because only InterpolateDiscrete is valid. + constructor(name, times, values) { + super(name, times, values); + } +} +BooleanKeyframeTrack.prototype.ValueTypeName = "bool"; +BooleanKeyframeTrack.prototype.ValueBufferType = Array; +BooleanKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete; +BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = void 0; +BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = void 0; +class ColorKeyframeTrack extends KeyframeTrack { + static { + __name(this, "ColorKeyframeTrack"); + } +} +ColorKeyframeTrack.prototype.ValueTypeName = "color"; +class NumberKeyframeTrack extends KeyframeTrack { + static { + __name(this, "NumberKeyframeTrack"); + } +} +NumberKeyframeTrack.prototype.ValueTypeName = "number"; +class QuaternionLinearInterpolant extends Interpolant { + static { + __name(this, "QuaternionLinearInterpolant"); + } + constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) { + super(parameterPositions, sampleValues, sampleSize, resultBuffer); + } + interpolate_(i1, t0, t2, t1) { + const result = this.resultBuffer, values = this.sampleValues, stride = this.valueSize, alpha = (t2 - t0) / (t1 - t0); + let offset = i1 * stride; + for (let end = offset + stride; offset !== end; offset += 4) { + Quaternion.slerpFlat(result, 0, values, offset - stride, values, offset, alpha); + } + return result; + } +} +class QuaternionKeyframeTrack extends KeyframeTrack { + static { + __name(this, "QuaternionKeyframeTrack"); + } + InterpolantFactoryMethodLinear(result) { + return new QuaternionLinearInterpolant(this.times, this.values, this.getValueSize(), result); + } +} +QuaternionKeyframeTrack.prototype.ValueTypeName = "quaternion"; +QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = void 0; +class StringKeyframeTrack extends KeyframeTrack { + static { + __name(this, "StringKeyframeTrack"); + } + // No interpolation parameter because only InterpolateDiscrete is valid. + constructor(name, times, values) { + super(name, times, values); + } +} +StringKeyframeTrack.prototype.ValueTypeName = "string"; +StringKeyframeTrack.prototype.ValueBufferType = Array; +StringKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete; +StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = void 0; +StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = void 0; +class VectorKeyframeTrack extends KeyframeTrack { + static { + __name(this, "VectorKeyframeTrack"); + } +} +VectorKeyframeTrack.prototype.ValueTypeName = "vector"; +class AnimationClip { + static { + __name(this, "AnimationClip"); + } + constructor(name = "", duration = -1, tracks = [], blendMode = NormalAnimationBlendMode) { + this.name = name; + this.tracks = tracks; + this.duration = duration; + this.blendMode = blendMode; + this.uuid = generateUUID(); + if (this.duration < 0) { + this.resetDuration(); + } + } + static parse(json) { + const tracks = [], jsonTracks = json.tracks, frameTime = 1 / (json.fps || 1); + for (let i = 0, n = jsonTracks.length; i !== n; ++i) { + tracks.push(parseKeyframeTrack(jsonTracks[i]).scale(frameTime)); + } + const clip = new this(json.name, json.duration, tracks, json.blendMode); + clip.uuid = json.uuid; + return clip; + } + static toJSON(clip) { + const tracks = [], clipTracks = clip.tracks; + const json = { + "name": clip.name, + "duration": clip.duration, + "tracks": tracks, + "uuid": clip.uuid, + "blendMode": clip.blendMode + }; + for (let i = 0, n = clipTracks.length; i !== n; ++i) { + tracks.push(KeyframeTrack.toJSON(clipTracks[i])); + } + return json; + } + static CreateFromMorphTargetSequence(name, morphTargetSequence, fps, noLoop) { + const numMorphTargets = morphTargetSequence.length; + const tracks = []; + for (let i = 0; i < numMorphTargets; i++) { + let times = []; + let values = []; + times.push( + (i + numMorphTargets - 1) % numMorphTargets, + i, + (i + 1) % numMorphTargets + ); + values.push(0, 1, 0); + const order = getKeyframeOrder(times); + times = sortedArray(times, 1, order); + values = sortedArray(values, 1, order); + if (!noLoop && times[0] === 0) { + times.push(numMorphTargets); + values.push(values[0]); + } + tracks.push( + new NumberKeyframeTrack( + ".morphTargetInfluences[" + morphTargetSequence[i].name + "]", + times, + values + ).scale(1 / fps) + ); + } + return new this(name, -1, tracks); + } + static findByName(objectOrClipArray, name) { + let clipArray = objectOrClipArray; + if (!Array.isArray(objectOrClipArray)) { + const o = objectOrClipArray; + clipArray = o.geometry && o.geometry.animations || o.animations; + } + for (let i = 0; i < clipArray.length; i++) { + if (clipArray[i].name === name) { + return clipArray[i]; + } + } + return null; + } + static CreateClipsFromMorphTargetSequences(morphTargets, fps, noLoop) { + const animationToMorphTargets = {}; + const pattern = /^([\w-]*?)([\d]+)$/; + for (let i = 0, il = morphTargets.length; i < il; i++) { + const morphTarget = morphTargets[i]; + const parts = morphTarget.name.match(pattern); + if (parts && parts.length > 1) { + const name = parts[1]; + let animationMorphTargets = animationToMorphTargets[name]; + if (!animationMorphTargets) { + animationToMorphTargets[name] = animationMorphTargets = []; + } + animationMorphTargets.push(morphTarget); + } + } + const clips = []; + for (const name in animationToMorphTargets) { + clips.push(this.CreateFromMorphTargetSequence(name, animationToMorphTargets[name], fps, noLoop)); + } + return clips; + } + // parse the animation.hierarchy format + static parseAnimation(animation, bones) { + if (!animation) { + console.error("THREE.AnimationClip: No animation in JSONLoader data."); + return null; + } + const addNonemptyTrack = /* @__PURE__ */ __name(function(trackType, trackName, animationKeys, propertyName, destTracks) { + if (animationKeys.length !== 0) { + const times = []; + const values = []; + flattenJSON(animationKeys, times, values, propertyName); + if (times.length !== 0) { + destTracks.push(new trackType(trackName, times, values)); + } + } + }, "addNonemptyTrack"); + const tracks = []; + const clipName = animation.name || "default"; + const fps = animation.fps || 30; + const blendMode = animation.blendMode; + let duration = animation.length || -1; + const hierarchyTracks = animation.hierarchy || []; + for (let h = 0; h < hierarchyTracks.length; h++) { + const animationKeys = hierarchyTracks[h].keys; + if (!animationKeys || animationKeys.length === 0) continue; + if (animationKeys[0].morphTargets) { + const morphTargetNames = {}; + let k; + for (k = 0; k < animationKeys.length; k++) { + if (animationKeys[k].morphTargets) { + for (let m = 0; m < animationKeys[k].morphTargets.length; m++) { + morphTargetNames[animationKeys[k].morphTargets[m]] = -1; + } + } + } + for (const morphTargetName in morphTargetNames) { + const times = []; + const values = []; + for (let m = 0; m !== animationKeys[k].morphTargets.length; ++m) { + const animationKey = animationKeys[k]; + times.push(animationKey.time); + values.push(animationKey.morphTarget === morphTargetName ? 1 : 0); + } + tracks.push(new NumberKeyframeTrack(".morphTargetInfluence[" + morphTargetName + "]", times, values)); + } + duration = morphTargetNames.length * fps; + } else { + const boneName = ".bones[" + bones[h].name + "]"; + addNonemptyTrack( + VectorKeyframeTrack, + boneName + ".position", + animationKeys, + "pos", + tracks + ); + addNonemptyTrack( + QuaternionKeyframeTrack, + boneName + ".quaternion", + animationKeys, + "rot", + tracks + ); + addNonemptyTrack( + VectorKeyframeTrack, + boneName + ".scale", + animationKeys, + "scl", + tracks + ); + } + } + if (tracks.length === 0) { + return null; + } + const clip = new this(clipName, duration, tracks, blendMode); + return clip; + } + resetDuration() { + const tracks = this.tracks; + let duration = 0; + for (let i = 0, n = tracks.length; i !== n; ++i) { + const track = this.tracks[i]; + duration = Math.max(duration, track.times[track.times.length - 1]); + } + this.duration = duration; + return this; + } + trim() { + for (let i = 0; i < this.tracks.length; i++) { + this.tracks[i].trim(0, this.duration); + } + return this; + } + validate() { + let valid = true; + for (let i = 0; i < this.tracks.length; i++) { + valid = valid && this.tracks[i].validate(); + } + return valid; + } + optimize() { + for (let i = 0; i < this.tracks.length; i++) { + this.tracks[i].optimize(); + } + return this; + } + clone() { + const tracks = []; + for (let i = 0; i < this.tracks.length; i++) { + tracks.push(this.tracks[i].clone()); + } + return new this.constructor(this.name, this.duration, tracks, this.blendMode); + } + toJSON() { + return this.constructor.toJSON(this); + } +} +function getTrackTypeForValueTypeName(typeName) { + switch (typeName.toLowerCase()) { + case "scalar": + case "double": + case "float": + case "number": + case "integer": + return NumberKeyframeTrack; + case "vector": + case "vector2": + case "vector3": + case "vector4": + return VectorKeyframeTrack; + case "color": + return ColorKeyframeTrack; + case "quaternion": + return QuaternionKeyframeTrack; + case "bool": + case "boolean": + return BooleanKeyframeTrack; + case "string": + return StringKeyframeTrack; + } + throw new Error("THREE.KeyframeTrack: Unsupported typeName: " + typeName); +} +__name(getTrackTypeForValueTypeName, "getTrackTypeForValueTypeName"); +function parseKeyframeTrack(json) { + if (json.type === void 0) { + throw new Error("THREE.KeyframeTrack: track type undefined, can not parse"); + } + const trackType = getTrackTypeForValueTypeName(json.type); + if (json.times === void 0) { + const times = [], values = []; + flattenJSON(json.keys, times, values, "value"); + json.times = times; + json.values = values; + } + if (trackType.parse !== void 0) { + return trackType.parse(json); + } else { + return new trackType(json.name, json.times, json.values, json.interpolation); + } +} +__name(parseKeyframeTrack, "parseKeyframeTrack"); +const Cache = { + enabled: false, + files: {}, + add: /* @__PURE__ */ __name(function(key, file2) { + if (this.enabled === false) return; + this.files[key] = file2; + }, "add"), + get: /* @__PURE__ */ __name(function(key) { + if (this.enabled === false) return; + return this.files[key]; + }, "get"), + remove: /* @__PURE__ */ __name(function(key) { + delete this.files[key]; + }, "remove"), + clear: /* @__PURE__ */ __name(function() { + this.files = {}; + }, "clear") +}; +class LoadingManager { + static { + __name(this, "LoadingManager"); + } + constructor(onLoad, onProgress, onError) { + const scope = this; + let isLoading = false; + let itemsLoaded = 0; + let itemsTotal = 0; + let urlModifier = void 0; + const handlers = []; + this.onStart = void 0; + this.onLoad = onLoad; + this.onProgress = onProgress; + this.onError = onError; + this.itemStart = function(url) { + itemsTotal++; + if (isLoading === false) { + if (scope.onStart !== void 0) { + scope.onStart(url, itemsLoaded, itemsTotal); + } + } + isLoading = true; + }; + this.itemEnd = function(url) { + itemsLoaded++; + if (scope.onProgress !== void 0) { + scope.onProgress(url, itemsLoaded, itemsTotal); + } + if (itemsLoaded === itemsTotal) { + isLoading = false; + if (scope.onLoad !== void 0) { + scope.onLoad(); + } + } + }; + this.itemError = function(url) { + if (scope.onError !== void 0) { + scope.onError(url); + } + }; + this.resolveURL = function(url) { + if (urlModifier) { + return urlModifier(url); + } + return url; + }; + this.setURLModifier = function(transform) { + urlModifier = transform; + return this; + }; + this.addHandler = function(regex, loader) { + handlers.push(regex, loader); + return this; + }; + this.removeHandler = function(regex) { + const index = handlers.indexOf(regex); + if (index !== -1) { + handlers.splice(index, 2); + } + return this; + }; + this.getHandler = function(file2) { + for (let i = 0, l = handlers.length; i < l; i += 2) { + const regex = handlers[i]; + const loader = handlers[i + 1]; + if (regex.global) regex.lastIndex = 0; + if (regex.test(file2)) { + return loader; + } + } + return null; + }; + } +} +const DefaultLoadingManager = /* @__PURE__ */ new LoadingManager(); +class Loader { + static { + __name(this, "Loader"); + } + constructor(manager) { + this.manager = manager !== void 0 ? manager : DefaultLoadingManager; + this.crossOrigin = "anonymous"; + this.withCredentials = false; + this.path = ""; + this.resourcePath = ""; + this.requestHeader = {}; + } + load() { + } + loadAsync(url, onProgress) { + const scope = this; + return new Promise(function(resolve, reject) { + scope.load(url, resolve, onProgress, reject); + }); + } + parse() { + } + setCrossOrigin(crossOrigin) { + this.crossOrigin = crossOrigin; + return this; + } + setWithCredentials(value) { + this.withCredentials = value; + return this; + } + setPath(path) { + this.path = path; + return this; + } + setResourcePath(resourcePath) { + this.resourcePath = resourcePath; + return this; + } + setRequestHeader(requestHeader) { + this.requestHeader = requestHeader; + return this; + } +} +Loader.DEFAULT_MATERIAL_NAME = "__DEFAULT"; +const loading = {}; +class HttpError extends Error { + static { + __name(this, "HttpError"); + } + constructor(message, response) { + super(message); + this.response = response; + } +} +class FileLoader extends Loader { + static { + __name(this, "FileLoader"); + } + constructor(manager) { + super(manager); + } + load(url, onLoad, onProgress, onError) { + if (url === void 0) url = ""; + if (this.path !== void 0) url = this.path + url; + url = this.manager.resolveURL(url); + const cached = Cache.get(url); + if (cached !== void 0) { + this.manager.itemStart(url); + setTimeout(() => { + if (onLoad) onLoad(cached); + this.manager.itemEnd(url); + }, 0); + return cached; + } + if (loading[url] !== void 0) { + loading[url].push({ + onLoad, + onProgress, + onError + }); + return; + } + loading[url] = []; + loading[url].push({ + onLoad, + onProgress, + onError + }); + const req = new Request(url, { + headers: new Headers(this.requestHeader), + credentials: this.withCredentials ? "include" : "same-origin" + // An abort controller could be added within a future PR + }); + const mimeType = this.mimeType; + const responseType = this.responseType; + fetch(req).then((response) => { + if (response.status === 200 || response.status === 0) { + if (response.status === 0) { + console.warn("THREE.FileLoader: HTTP Status 0 received."); + } + if (typeof ReadableStream === "undefined" || response.body === void 0 || response.body.getReader === void 0) { + return response; + } + const callbacks = loading[url]; + const reader = response.body.getReader(); + const contentLength = response.headers.get("X-File-Size") || response.headers.get("Content-Length"); + const total = contentLength ? parseInt(contentLength) : 0; + const lengthComputable = total !== 0; + let loaded = 0; + const stream = new ReadableStream({ + start(controller) { + readData(); + function readData() { + reader.read().then(({ done, value }) => { + if (done) { + controller.close(); + } else { + loaded += value.byteLength; + const event = new ProgressEvent("progress", { lengthComputable, loaded, total }); + for (let i = 0, il = callbacks.length; i < il; i++) { + const callback = callbacks[i]; + if (callback.onProgress) callback.onProgress(event); + } + controller.enqueue(value); + readData(); + } + }, (e) => { + controller.error(e); + }); + } + __name(readData, "readData"); + } + }); + return new Response(stream); + } else { + throw new HttpError(`fetch for "${response.url}" responded with ${response.status}: ${response.statusText}`, response); + } + }).then((response) => { + switch (responseType) { + case "arraybuffer": + return response.arrayBuffer(); + case "blob": + return response.blob(); + case "document": + return response.text().then((text) => { + const parser = new DOMParser(); + return parser.parseFromString(text, mimeType); + }); + case "json": + return response.json(); + default: + if (mimeType === void 0) { + return response.text(); + } else { + const re = /charset="?([^;"\s]*)"?/i; + const exec = re.exec(mimeType); + const label = exec && exec[1] ? exec[1].toLowerCase() : void 0; + const decoder = new TextDecoder(label); + return response.arrayBuffer().then((ab) => decoder.decode(ab)); + } + } + }).then((data) => { + Cache.add(url, data); + const callbacks = loading[url]; + delete loading[url]; + for (let i = 0, il = callbacks.length; i < il; i++) { + const callback = callbacks[i]; + if (callback.onLoad) callback.onLoad(data); + } + }).catch((err2) => { + const callbacks = loading[url]; + if (callbacks === void 0) { + this.manager.itemError(url); + throw err2; + } + delete loading[url]; + for (let i = 0, il = callbacks.length; i < il; i++) { + const callback = callbacks[i]; + if (callback.onError) callback.onError(err2); + } + this.manager.itemError(url); + }).finally(() => { + this.manager.itemEnd(url); + }); + this.manager.itemStart(url); + } + setResponseType(value) { + this.responseType = value; + return this; + } + setMimeType(value) { + this.mimeType = value; + return this; + } +} +class AnimationLoader extends Loader { + static { + __name(this, "AnimationLoader"); + } + constructor(manager) { + super(manager); + } + load(url, onLoad, onProgress, onError) { + const scope = this; + const loader = new FileLoader(this.manager); + loader.setPath(this.path); + loader.setRequestHeader(this.requestHeader); + loader.setWithCredentials(this.withCredentials); + loader.load(url, function(text) { + try { + onLoad(scope.parse(JSON.parse(text))); + } catch (e) { + if (onError) { + onError(e); + } else { + console.error(e); + } + scope.manager.itemError(url); + } + }, onProgress, onError); + } + parse(json) { + const animations = []; + for (let i = 0; i < json.length; i++) { + const clip = AnimationClip.parse(json[i]); + animations.push(clip); + } + return animations; + } +} +class CompressedTextureLoader extends Loader { + static { + __name(this, "CompressedTextureLoader"); + } + constructor(manager) { + super(manager); + } + load(url, onLoad, onProgress, onError) { + const scope = this; + const images = []; + const texture = new CompressedTexture(); + const loader = new FileLoader(this.manager); + loader.setPath(this.path); + loader.setResponseType("arraybuffer"); + loader.setRequestHeader(this.requestHeader); + loader.setWithCredentials(scope.withCredentials); + let loaded = 0; + function loadTexture(i) { + loader.load(url[i], function(buffer) { + const texDatas = scope.parse(buffer, true); + images[i] = { + width: texDatas.width, + height: texDatas.height, + format: texDatas.format, + mipmaps: texDatas.mipmaps + }; + loaded += 1; + if (loaded === 6) { + if (texDatas.mipmapCount === 1) texture.minFilter = LinearFilter; + texture.image = images; + texture.format = texDatas.format; + texture.needsUpdate = true; + if (onLoad) onLoad(texture); + } + }, onProgress, onError); + } + __name(loadTexture, "loadTexture"); + if (Array.isArray(url)) { + for (let i = 0, il = url.length; i < il; ++i) { + loadTexture(i); + } + } else { + loader.load(url, function(buffer) { + const texDatas = scope.parse(buffer, true); + if (texDatas.isCubemap) { + const faces = texDatas.mipmaps.length / texDatas.mipmapCount; + for (let f = 0; f < faces; f++) { + images[f] = { mipmaps: [] }; + for (let i = 0; i < texDatas.mipmapCount; i++) { + images[f].mipmaps.push(texDatas.mipmaps[f * texDatas.mipmapCount + i]); + images[f].format = texDatas.format; + images[f].width = texDatas.width; + images[f].height = texDatas.height; + } + } + texture.image = images; + } else { + texture.image.width = texDatas.width; + texture.image.height = texDatas.height; + texture.mipmaps = texDatas.mipmaps; + } + if (texDatas.mipmapCount === 1) { + texture.minFilter = LinearFilter; + } + texture.format = texDatas.format; + texture.needsUpdate = true; + if (onLoad) onLoad(texture); + }, onProgress, onError); + } + return texture; + } +} +class ImageLoader extends Loader { + static { + __name(this, "ImageLoader"); + } + constructor(manager) { + super(manager); + } + load(url, onLoad, onProgress, onError) { + if (this.path !== void 0) url = this.path + url; + url = this.manager.resolveURL(url); + const scope = this; + const cached = Cache.get(url); + if (cached !== void 0) { + scope.manager.itemStart(url); + setTimeout(function() { + if (onLoad) onLoad(cached); + scope.manager.itemEnd(url); + }, 0); + return cached; + } + const image = createElementNS("img"); + function onImageLoad() { + removeEventListeners(); + Cache.add(url, this); + if (onLoad) onLoad(this); + scope.manager.itemEnd(url); + } + __name(onImageLoad, "onImageLoad"); + function onImageError(event) { + removeEventListeners(); + if (onError) onError(event); + scope.manager.itemError(url); + scope.manager.itemEnd(url); + } + __name(onImageError, "onImageError"); + function removeEventListeners() { + image.removeEventListener("load", onImageLoad, false); + image.removeEventListener("error", onImageError, false); + } + __name(removeEventListeners, "removeEventListeners"); + image.addEventListener("load", onImageLoad, false); + image.addEventListener("error", onImageError, false); + if (url.slice(0, 5) !== "data:") { + if (this.crossOrigin !== void 0) image.crossOrigin = this.crossOrigin; + } + scope.manager.itemStart(url); + image.src = url; + return image; + } +} +class CubeTextureLoader extends Loader { + static { + __name(this, "CubeTextureLoader"); + } + constructor(manager) { + super(manager); + } + load(urls, onLoad, onProgress, onError) { + const texture = new CubeTexture(); + texture.colorSpace = SRGBColorSpace; + const loader = new ImageLoader(this.manager); + loader.setCrossOrigin(this.crossOrigin); + loader.setPath(this.path); + let loaded = 0; + function loadTexture(i) { + loader.load(urls[i], function(image) { + texture.images[i] = image; + loaded++; + if (loaded === 6) { + texture.needsUpdate = true; + if (onLoad) onLoad(texture); + } + }, void 0, onError); + } + __name(loadTexture, "loadTexture"); + for (let i = 0; i < urls.length; ++i) { + loadTexture(i); + } + return texture; + } +} +class DataTextureLoader extends Loader { + static { + __name(this, "DataTextureLoader"); + } + constructor(manager) { + super(manager); + } + load(url, onLoad, onProgress, onError) { + const scope = this; + const texture = new DataTexture(); + const loader = new FileLoader(this.manager); + loader.setResponseType("arraybuffer"); + loader.setRequestHeader(this.requestHeader); + loader.setPath(this.path); + loader.setWithCredentials(scope.withCredentials); + loader.load(url, function(buffer) { + let texData; + try { + texData = scope.parse(buffer); + } catch (error) { + if (onError !== void 0) { + onError(error); + } else { + console.error(error); + return; + } + } + if (texData.image !== void 0) { + texture.image = texData.image; + } else if (texData.data !== void 0) { + texture.image.width = texData.width; + texture.image.height = texData.height; + texture.image.data = texData.data; + } + texture.wrapS = texData.wrapS !== void 0 ? texData.wrapS : ClampToEdgeWrapping; + texture.wrapT = texData.wrapT !== void 0 ? texData.wrapT : ClampToEdgeWrapping; + texture.magFilter = texData.magFilter !== void 0 ? texData.magFilter : LinearFilter; + texture.minFilter = texData.minFilter !== void 0 ? texData.minFilter : LinearFilter; + texture.anisotropy = texData.anisotropy !== void 0 ? texData.anisotropy : 1; + if (texData.colorSpace !== void 0) { + texture.colorSpace = texData.colorSpace; + } + if (texData.flipY !== void 0) { + texture.flipY = texData.flipY; + } + if (texData.format !== void 0) { + texture.format = texData.format; + } + if (texData.type !== void 0) { + texture.type = texData.type; + } + if (texData.mipmaps !== void 0) { + texture.mipmaps = texData.mipmaps; + texture.minFilter = LinearMipmapLinearFilter; + } + if (texData.mipmapCount === 1) { + texture.minFilter = LinearFilter; + } + if (texData.generateMipmaps !== void 0) { + texture.generateMipmaps = texData.generateMipmaps; + } + texture.needsUpdate = true; + if (onLoad) onLoad(texture, texData); + }, onProgress, onError); + return texture; + } +} +class TextureLoader extends Loader { + static { + __name(this, "TextureLoader"); + } + constructor(manager) { + super(manager); + } + load(url, onLoad, onProgress, onError) { + const texture = new Texture(); + const loader = new ImageLoader(this.manager); + loader.setCrossOrigin(this.crossOrigin); + loader.setPath(this.path); + loader.load(url, function(image) { + texture.image = image; + texture.needsUpdate = true; + if (onLoad !== void 0) { + onLoad(texture); + } + }, onProgress, onError); + return texture; + } +} +class Light extends Object3D { + static { + __name(this, "Light"); + } + constructor(color, intensity = 1) { + super(); + this.isLight = true; + this.type = "Light"; + this.color = new Color(color); + this.intensity = intensity; + } + dispose() { + } + copy(source, recursive) { + super.copy(source, recursive); + this.color.copy(source.color); + this.intensity = source.intensity; + return this; + } + toJSON(meta) { + const data = super.toJSON(meta); + data.object.color = this.color.getHex(); + data.object.intensity = this.intensity; + if (this.groundColor !== void 0) data.object.groundColor = this.groundColor.getHex(); + if (this.distance !== void 0) data.object.distance = this.distance; + if (this.angle !== void 0) data.object.angle = this.angle; + if (this.decay !== void 0) data.object.decay = this.decay; + if (this.penumbra !== void 0) data.object.penumbra = this.penumbra; + if (this.shadow !== void 0) data.object.shadow = this.shadow.toJSON(); + if (this.target !== void 0) data.object.target = this.target.uuid; + return data; + } +} +class HemisphereLight extends Light { + static { + __name(this, "HemisphereLight"); + } + constructor(skyColor, groundColor, intensity) { + super(skyColor, intensity); + this.isHemisphereLight = true; + this.type = "HemisphereLight"; + this.position.copy(Object3D.DEFAULT_UP); + this.updateMatrix(); + this.groundColor = new Color(groundColor); + } + copy(source, recursive) { + super.copy(source, recursive); + this.groundColor.copy(source.groundColor); + return this; + } +} +const _projScreenMatrix$1 = /* @__PURE__ */ new Matrix4(); +const _lightPositionWorld$1 = /* @__PURE__ */ new Vector3(); +const _lookTarget$1 = /* @__PURE__ */ new Vector3(); +class LightShadow { + static { + __name(this, "LightShadow"); + } + constructor(camera) { + this.camera = camera; + this.intensity = 1; + this.bias = 0; + this.normalBias = 0; + this.radius = 1; + this.blurSamples = 8; + this.mapSize = new Vector2(512, 512); + this.map = null; + this.mapPass = null; + this.matrix = new Matrix4(); + this.autoUpdate = true; + this.needsUpdate = false; + this._frustum = new Frustum(); + this._frameExtents = new Vector2(1, 1); + this._viewportCount = 1; + this._viewports = [ + new Vector4(0, 0, 1, 1) + ]; + } + getViewportCount() { + return this._viewportCount; + } + getFrustum() { + return this._frustum; + } + updateMatrices(light) { + const shadowCamera = this.camera; + const shadowMatrix = this.matrix; + _lightPositionWorld$1.setFromMatrixPosition(light.matrixWorld); + shadowCamera.position.copy(_lightPositionWorld$1); + _lookTarget$1.setFromMatrixPosition(light.target.matrixWorld); + shadowCamera.lookAt(_lookTarget$1); + shadowCamera.updateMatrixWorld(); + _projScreenMatrix$1.multiplyMatrices(shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse); + this._frustum.setFromProjectionMatrix(_projScreenMatrix$1); + shadowMatrix.set( + 0.5, + 0, + 0, + 0.5, + 0, + 0.5, + 0, + 0.5, + 0, + 0, + 0.5, + 0.5, + 0, + 0, + 0, + 1 + ); + shadowMatrix.multiply(_projScreenMatrix$1); + } + getViewport(viewportIndex) { + return this._viewports[viewportIndex]; + } + getFrameExtents() { + return this._frameExtents; + } + dispose() { + if (this.map) { + this.map.dispose(); + } + if (this.mapPass) { + this.mapPass.dispose(); + } + } + copy(source) { + this.camera = source.camera.clone(); + this.intensity = source.intensity; + this.bias = source.bias; + this.radius = source.radius; + this.mapSize.copy(source.mapSize); + return this; + } + clone() { + return new this.constructor().copy(this); + } + toJSON() { + const object = {}; + if (this.intensity !== 1) object.intensity = this.intensity; + if (this.bias !== 0) object.bias = this.bias; + if (this.normalBias !== 0) object.normalBias = this.normalBias; + if (this.radius !== 1) object.radius = this.radius; + if (this.mapSize.x !== 512 || this.mapSize.y !== 512) object.mapSize = this.mapSize.toArray(); + object.camera = this.camera.toJSON(false).object; + delete object.camera.matrix; + return object; + } +} +class SpotLightShadow extends LightShadow { + static { + __name(this, "SpotLightShadow"); + } + constructor() { + super(new PerspectiveCamera(50, 1, 0.5, 500)); + this.isSpotLightShadow = true; + this.focus = 1; + } + updateMatrices(light) { + const camera = this.camera; + const fov2 = RAD2DEG * 2 * light.angle * this.focus; + const aspect2 = this.mapSize.width / this.mapSize.height; + const far = light.distance || camera.far; + if (fov2 !== camera.fov || aspect2 !== camera.aspect || far !== camera.far) { + camera.fov = fov2; + camera.aspect = aspect2; + camera.far = far; + camera.updateProjectionMatrix(); + } + super.updateMatrices(light); + } + copy(source) { + super.copy(source); + this.focus = source.focus; + return this; + } +} +class SpotLight extends Light { + static { + __name(this, "SpotLight"); + } + constructor(color, intensity, distance = 0, angle = Math.PI / 3, penumbra = 0, decay = 2) { + super(color, intensity); + this.isSpotLight = true; + this.type = "SpotLight"; + this.position.copy(Object3D.DEFAULT_UP); + this.updateMatrix(); + this.target = new Object3D(); + this.distance = distance; + this.angle = angle; + this.penumbra = penumbra; + this.decay = decay; + this.map = null; + this.shadow = new SpotLightShadow(); + } + get power() { + return this.intensity * Math.PI; + } + set power(power) { + this.intensity = power / Math.PI; + } + dispose() { + this.shadow.dispose(); + } + copy(source, recursive) { + super.copy(source, recursive); + this.distance = source.distance; + this.angle = source.angle; + this.penumbra = source.penumbra; + this.decay = source.decay; + this.target = source.target.clone(); + this.shadow = source.shadow.clone(); + return this; + } +} +const _projScreenMatrix = /* @__PURE__ */ new Matrix4(); +const _lightPositionWorld = /* @__PURE__ */ new Vector3(); +const _lookTarget = /* @__PURE__ */ new Vector3(); +class PointLightShadow extends LightShadow { + static { + __name(this, "PointLightShadow"); + } + constructor() { + super(new PerspectiveCamera(90, 1, 0.5, 500)); + this.isPointLightShadow = true; + this._frameExtents = new Vector2(4, 2); + this._viewportCount = 6; + this._viewports = [ + // These viewports map a cube-map onto a 2D texture with the + // following orientation: + // + // xzXZ + // y Y + // + // X - Positive x direction + // x - Negative x direction + // Y - Positive y direction + // y - Negative y direction + // Z - Positive z direction + // z - Negative z direction + // positive X + new Vector4(2, 1, 1, 1), + // negative X + new Vector4(0, 1, 1, 1), + // positive Z + new Vector4(3, 1, 1, 1), + // negative Z + new Vector4(1, 1, 1, 1), + // positive Y + new Vector4(3, 0, 1, 1), + // negative Y + new Vector4(1, 0, 1, 1) + ]; + this._cubeDirections = [ + new Vector3(1, 0, 0), + new Vector3(-1, 0, 0), + new Vector3(0, 0, 1), + new Vector3(0, 0, -1), + new Vector3(0, 1, 0), + new Vector3(0, -1, 0) + ]; + this._cubeUps = [ + new Vector3(0, 1, 0), + new Vector3(0, 1, 0), + new Vector3(0, 1, 0), + new Vector3(0, 1, 0), + new Vector3(0, 0, 1), + new Vector3(0, 0, -1) + ]; + } + updateMatrices(light, viewportIndex = 0) { + const camera = this.camera; + const shadowMatrix = this.matrix; + const far = light.distance || camera.far; + if (far !== camera.far) { + camera.far = far; + camera.updateProjectionMatrix(); + } + _lightPositionWorld.setFromMatrixPosition(light.matrixWorld); + camera.position.copy(_lightPositionWorld); + _lookTarget.copy(camera.position); + _lookTarget.add(this._cubeDirections[viewportIndex]); + camera.up.copy(this._cubeUps[viewportIndex]); + camera.lookAt(_lookTarget); + camera.updateMatrixWorld(); + shadowMatrix.makeTranslation(-_lightPositionWorld.x, -_lightPositionWorld.y, -_lightPositionWorld.z); + _projScreenMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse); + this._frustum.setFromProjectionMatrix(_projScreenMatrix); + } +} +class PointLight extends Light { + static { + __name(this, "PointLight"); + } + constructor(color, intensity, distance = 0, decay = 2) { + super(color, intensity); + this.isPointLight = true; + this.type = "PointLight"; + this.distance = distance; + this.decay = decay; + this.shadow = new PointLightShadow(); + } + get power() { + return this.intensity * 4 * Math.PI; + } + set power(power) { + this.intensity = power / (4 * Math.PI); + } + dispose() { + this.shadow.dispose(); + } + copy(source, recursive) { + super.copy(source, recursive); + this.distance = source.distance; + this.decay = source.decay; + this.shadow = source.shadow.clone(); + return this; + } +} +class DirectionalLightShadow extends LightShadow { + static { + __name(this, "DirectionalLightShadow"); + } + constructor() { + super(new OrthographicCamera(-5, 5, 5, -5, 0.5, 500)); + this.isDirectionalLightShadow = true; + } +} +class DirectionalLight extends Light { + static { + __name(this, "DirectionalLight"); + } + constructor(color, intensity) { + super(color, intensity); + this.isDirectionalLight = true; + this.type = "DirectionalLight"; + this.position.copy(Object3D.DEFAULT_UP); + this.updateMatrix(); + this.target = new Object3D(); + this.shadow = new DirectionalLightShadow(); + } + dispose() { + this.shadow.dispose(); + } + copy(source) { + super.copy(source); + this.target = source.target.clone(); + this.shadow = source.shadow.clone(); + return this; + } +} +class AmbientLight extends Light { + static { + __name(this, "AmbientLight"); + } + constructor(color, intensity) { + super(color, intensity); + this.isAmbientLight = true; + this.type = "AmbientLight"; + } +} +class RectAreaLight extends Light { + static { + __name(this, "RectAreaLight"); + } + constructor(color, intensity, width = 10, height = 10) { + super(color, intensity); + this.isRectAreaLight = true; + this.type = "RectAreaLight"; + this.width = width; + this.height = height; + } + get power() { + return this.intensity * this.width * this.height * Math.PI; + } + set power(power) { + this.intensity = power / (this.width * this.height * Math.PI); + } + copy(source) { + super.copy(source); + this.width = source.width; + this.height = source.height; + return this; + } + toJSON(meta) { + const data = super.toJSON(meta); + data.object.width = this.width; + data.object.height = this.height; + return data; + } +} +class SphericalHarmonics3 { + static { + __name(this, "SphericalHarmonics3"); + } + constructor() { + this.isSphericalHarmonics3 = true; + this.coefficients = []; + for (let i = 0; i < 9; i++) { + this.coefficients.push(new Vector3()); + } + } + set(coefficients) { + for (let i = 0; i < 9; i++) { + this.coefficients[i].copy(coefficients[i]); + } + return this; + } + zero() { + for (let i = 0; i < 9; i++) { + this.coefficients[i].set(0, 0, 0); + } + return this; + } + // get the radiance in the direction of the normal + // target is a Vector3 + getAt(normal, target) { + const x = normal.x, y = normal.y, z = normal.z; + const coeff = this.coefficients; + target.copy(coeff[0]).multiplyScalar(0.282095); + target.addScaledVector(coeff[1], 0.488603 * y); + target.addScaledVector(coeff[2], 0.488603 * z); + target.addScaledVector(coeff[3], 0.488603 * x); + target.addScaledVector(coeff[4], 1.092548 * (x * y)); + target.addScaledVector(coeff[5], 1.092548 * (y * z)); + target.addScaledVector(coeff[6], 0.315392 * (3 * z * z - 1)); + target.addScaledVector(coeff[7], 1.092548 * (x * z)); + target.addScaledVector(coeff[8], 0.546274 * (x * x - y * y)); + return target; + } + // get the irradiance (radiance convolved with cosine lobe) in the direction of the normal + // target is a Vector3 + // https://graphics.stanford.edu/papers/envmap/envmap.pdf + getIrradianceAt(normal, target) { + const x = normal.x, y = normal.y, z = normal.z; + const coeff = this.coefficients; + target.copy(coeff[0]).multiplyScalar(0.886227); + target.addScaledVector(coeff[1], 2 * 0.511664 * y); + target.addScaledVector(coeff[2], 2 * 0.511664 * z); + target.addScaledVector(coeff[3], 2 * 0.511664 * x); + target.addScaledVector(coeff[4], 2 * 0.429043 * x * y); + target.addScaledVector(coeff[5], 2 * 0.429043 * y * z); + target.addScaledVector(coeff[6], 0.743125 * z * z - 0.247708); + target.addScaledVector(coeff[7], 2 * 0.429043 * x * z); + target.addScaledVector(coeff[8], 0.429043 * (x * x - y * y)); + return target; + } + add(sh) { + for (let i = 0; i < 9; i++) { + this.coefficients[i].add(sh.coefficients[i]); + } + return this; + } + addScaledSH(sh, s) { + for (let i = 0; i < 9; i++) { + this.coefficients[i].addScaledVector(sh.coefficients[i], s); + } + return this; + } + scale(s) { + for (let i = 0; i < 9; i++) { + this.coefficients[i].multiplyScalar(s); + } + return this; + } + lerp(sh, alpha) { + for (let i = 0; i < 9; i++) { + this.coefficients[i].lerp(sh.coefficients[i], alpha); + } + return this; + } + equals(sh) { + for (let i = 0; i < 9; i++) { + if (!this.coefficients[i].equals(sh.coefficients[i])) { + return false; + } + } + return true; + } + copy(sh) { + return this.set(sh.coefficients); + } + clone() { + return new this.constructor().copy(this); + } + fromArray(array, offset = 0) { + const coefficients = this.coefficients; + for (let i = 0; i < 9; i++) { + coefficients[i].fromArray(array, offset + i * 3); + } + return this; + } + toArray(array = [], offset = 0) { + const coefficients = this.coefficients; + for (let i = 0; i < 9; i++) { + coefficients[i].toArray(array, offset + i * 3); + } + return array; + } + // evaluate the basis functions + // shBasis is an Array[ 9 ] + static getBasisAt(normal, shBasis) { + const x = normal.x, y = normal.y, z = normal.z; + shBasis[0] = 0.282095; + shBasis[1] = 0.488603 * y; + shBasis[2] = 0.488603 * z; + shBasis[3] = 0.488603 * x; + shBasis[4] = 1.092548 * x * y; + shBasis[5] = 1.092548 * y * z; + shBasis[6] = 0.315392 * (3 * z * z - 1); + shBasis[7] = 1.092548 * x * z; + shBasis[8] = 0.546274 * (x * x - y * y); + } +} +class LightProbe extends Light { + static { + __name(this, "LightProbe"); + } + constructor(sh = new SphericalHarmonics3(), intensity = 1) { + super(void 0, intensity); + this.isLightProbe = true; + this.sh = sh; + } + copy(source) { + super.copy(source); + this.sh.copy(source.sh); + return this; + } + fromJSON(json) { + this.intensity = json.intensity; + this.sh.fromArray(json.sh); + return this; + } + toJSON(meta) { + const data = super.toJSON(meta); + data.object.sh = this.sh.toArray(); + return data; + } +} +class MaterialLoader extends Loader { + static { + __name(this, "MaterialLoader"); + } + constructor(manager) { + super(manager); + this.textures = {}; + } + load(url, onLoad, onProgress, onError) { + const scope = this; + const loader = new FileLoader(scope.manager); + loader.setPath(scope.path); + loader.setRequestHeader(scope.requestHeader); + loader.setWithCredentials(scope.withCredentials); + loader.load(url, function(text) { + try { + onLoad(scope.parse(JSON.parse(text))); + } catch (e) { + if (onError) { + onError(e); + } else { + console.error(e); + } + scope.manager.itemError(url); + } + }, onProgress, onError); + } + parse(json) { + const textures = this.textures; + function getTexture(name) { + if (textures[name] === void 0) { + console.warn("THREE.MaterialLoader: Undefined texture", name); + } + return textures[name]; + } + __name(getTexture, "getTexture"); + const material = this.createMaterialFromType(json.type); + if (json.uuid !== void 0) material.uuid = json.uuid; + if (json.name !== void 0) material.name = json.name; + if (json.color !== void 0 && material.color !== void 0) material.color.setHex(json.color); + if (json.roughness !== void 0) material.roughness = json.roughness; + if (json.metalness !== void 0) material.metalness = json.metalness; + if (json.sheen !== void 0) material.sheen = json.sheen; + if (json.sheenColor !== void 0) material.sheenColor = new Color().setHex(json.sheenColor); + if (json.sheenRoughness !== void 0) material.sheenRoughness = json.sheenRoughness; + if (json.emissive !== void 0 && material.emissive !== void 0) material.emissive.setHex(json.emissive); + if (json.specular !== void 0 && material.specular !== void 0) material.specular.setHex(json.specular); + if (json.specularIntensity !== void 0) material.specularIntensity = json.specularIntensity; + if (json.specularColor !== void 0 && material.specularColor !== void 0) material.specularColor.setHex(json.specularColor); + if (json.shininess !== void 0) material.shininess = json.shininess; + if (json.clearcoat !== void 0) material.clearcoat = json.clearcoat; + if (json.clearcoatRoughness !== void 0) material.clearcoatRoughness = json.clearcoatRoughness; + if (json.dispersion !== void 0) material.dispersion = json.dispersion; + if (json.iridescence !== void 0) material.iridescence = json.iridescence; + if (json.iridescenceIOR !== void 0) material.iridescenceIOR = json.iridescenceIOR; + if (json.iridescenceThicknessRange !== void 0) material.iridescenceThicknessRange = json.iridescenceThicknessRange; + if (json.transmission !== void 0) material.transmission = json.transmission; + if (json.thickness !== void 0) material.thickness = json.thickness; + if (json.attenuationDistance !== void 0) material.attenuationDistance = json.attenuationDistance; + if (json.attenuationColor !== void 0 && material.attenuationColor !== void 0) material.attenuationColor.setHex(json.attenuationColor); + if (json.anisotropy !== void 0) material.anisotropy = json.anisotropy; + if (json.anisotropyRotation !== void 0) material.anisotropyRotation = json.anisotropyRotation; + if (json.fog !== void 0) material.fog = json.fog; + if (json.flatShading !== void 0) material.flatShading = json.flatShading; + if (json.blending !== void 0) material.blending = json.blending; + if (json.combine !== void 0) material.combine = json.combine; + if (json.side !== void 0) material.side = json.side; + if (json.shadowSide !== void 0) material.shadowSide = json.shadowSide; + if (json.opacity !== void 0) material.opacity = json.opacity; + if (json.transparent !== void 0) material.transparent = json.transparent; + if (json.alphaTest !== void 0) material.alphaTest = json.alphaTest; + if (json.alphaHash !== void 0) material.alphaHash = json.alphaHash; + if (json.depthFunc !== void 0) material.depthFunc = json.depthFunc; + if (json.depthTest !== void 0) material.depthTest = json.depthTest; + if (json.depthWrite !== void 0) material.depthWrite = json.depthWrite; + if (json.colorWrite !== void 0) material.colorWrite = json.colorWrite; + if (json.blendSrc !== void 0) material.blendSrc = json.blendSrc; + if (json.blendDst !== void 0) material.blendDst = json.blendDst; + if (json.blendEquation !== void 0) material.blendEquation = json.blendEquation; + if (json.blendSrcAlpha !== void 0) material.blendSrcAlpha = json.blendSrcAlpha; + if (json.blendDstAlpha !== void 0) material.blendDstAlpha = json.blendDstAlpha; + if (json.blendEquationAlpha !== void 0) material.blendEquationAlpha = json.blendEquationAlpha; + if (json.blendColor !== void 0 && material.blendColor !== void 0) material.blendColor.setHex(json.blendColor); + if (json.blendAlpha !== void 0) material.blendAlpha = json.blendAlpha; + if (json.stencilWriteMask !== void 0) material.stencilWriteMask = json.stencilWriteMask; + if (json.stencilFunc !== void 0) material.stencilFunc = json.stencilFunc; + if (json.stencilRef !== void 0) material.stencilRef = json.stencilRef; + if (json.stencilFuncMask !== void 0) material.stencilFuncMask = json.stencilFuncMask; + if (json.stencilFail !== void 0) material.stencilFail = json.stencilFail; + if (json.stencilZFail !== void 0) material.stencilZFail = json.stencilZFail; + if (json.stencilZPass !== void 0) material.stencilZPass = json.stencilZPass; + if (json.stencilWrite !== void 0) material.stencilWrite = json.stencilWrite; + if (json.wireframe !== void 0) material.wireframe = json.wireframe; + if (json.wireframeLinewidth !== void 0) material.wireframeLinewidth = json.wireframeLinewidth; + if (json.wireframeLinecap !== void 0) material.wireframeLinecap = json.wireframeLinecap; + if (json.wireframeLinejoin !== void 0) material.wireframeLinejoin = json.wireframeLinejoin; + if (json.rotation !== void 0) material.rotation = json.rotation; + if (json.linewidth !== void 0) material.linewidth = json.linewidth; + if (json.dashSize !== void 0) material.dashSize = json.dashSize; + if (json.gapSize !== void 0) material.gapSize = json.gapSize; + if (json.scale !== void 0) material.scale = json.scale; + if (json.polygonOffset !== void 0) material.polygonOffset = json.polygonOffset; + if (json.polygonOffsetFactor !== void 0) material.polygonOffsetFactor = json.polygonOffsetFactor; + if (json.polygonOffsetUnits !== void 0) material.polygonOffsetUnits = json.polygonOffsetUnits; + if (json.dithering !== void 0) material.dithering = json.dithering; + if (json.alphaToCoverage !== void 0) material.alphaToCoverage = json.alphaToCoverage; + if (json.premultipliedAlpha !== void 0) material.premultipliedAlpha = json.premultipliedAlpha; + if (json.forceSinglePass !== void 0) material.forceSinglePass = json.forceSinglePass; + if (json.visible !== void 0) material.visible = json.visible; + if (json.toneMapped !== void 0) material.toneMapped = json.toneMapped; + if (json.userData !== void 0) material.userData = json.userData; + if (json.vertexColors !== void 0) { + if (typeof json.vertexColors === "number") { + material.vertexColors = json.vertexColors > 0 ? true : false; + } else { + material.vertexColors = json.vertexColors; + } + } + if (json.uniforms !== void 0) { + for (const name in json.uniforms) { + const uniform = json.uniforms[name]; + material.uniforms[name] = {}; + switch (uniform.type) { + case "t": + material.uniforms[name].value = getTexture(uniform.value); + break; + case "c": + material.uniforms[name].value = new Color().setHex(uniform.value); + break; + case "v2": + material.uniforms[name].value = new Vector2().fromArray(uniform.value); + break; + case "v3": + material.uniforms[name].value = new Vector3().fromArray(uniform.value); + break; + case "v4": + material.uniforms[name].value = new Vector4().fromArray(uniform.value); + break; + case "m3": + material.uniforms[name].value = new Matrix3().fromArray(uniform.value); + break; + case "m4": + material.uniforms[name].value = new Matrix4().fromArray(uniform.value); + break; + default: + material.uniforms[name].value = uniform.value; + } + } + } + if (json.defines !== void 0) material.defines = json.defines; + if (json.vertexShader !== void 0) material.vertexShader = json.vertexShader; + if (json.fragmentShader !== void 0) material.fragmentShader = json.fragmentShader; + if (json.glslVersion !== void 0) material.glslVersion = json.glslVersion; + if (json.extensions !== void 0) { + for (const key in json.extensions) { + material.extensions[key] = json.extensions[key]; + } + } + if (json.lights !== void 0) material.lights = json.lights; + if (json.clipping !== void 0) material.clipping = json.clipping; + if (json.size !== void 0) material.size = json.size; + if (json.sizeAttenuation !== void 0) material.sizeAttenuation = json.sizeAttenuation; + if (json.map !== void 0) material.map = getTexture(json.map); + if (json.matcap !== void 0) material.matcap = getTexture(json.matcap); + if (json.alphaMap !== void 0) material.alphaMap = getTexture(json.alphaMap); + if (json.bumpMap !== void 0) material.bumpMap = getTexture(json.bumpMap); + if (json.bumpScale !== void 0) material.bumpScale = json.bumpScale; + if (json.normalMap !== void 0) material.normalMap = getTexture(json.normalMap); + if (json.normalMapType !== void 0) material.normalMapType = json.normalMapType; + if (json.normalScale !== void 0) { + let normalScale = json.normalScale; + if (Array.isArray(normalScale) === false) { + normalScale = [normalScale, normalScale]; + } + material.normalScale = new Vector2().fromArray(normalScale); + } + if (json.displacementMap !== void 0) material.displacementMap = getTexture(json.displacementMap); + if (json.displacementScale !== void 0) material.displacementScale = json.displacementScale; + if (json.displacementBias !== void 0) material.displacementBias = json.displacementBias; + if (json.roughnessMap !== void 0) material.roughnessMap = getTexture(json.roughnessMap); + if (json.metalnessMap !== void 0) material.metalnessMap = getTexture(json.metalnessMap); + if (json.emissiveMap !== void 0) material.emissiveMap = getTexture(json.emissiveMap); + if (json.emissiveIntensity !== void 0) material.emissiveIntensity = json.emissiveIntensity; + if (json.specularMap !== void 0) material.specularMap = getTexture(json.specularMap); + if (json.specularIntensityMap !== void 0) material.specularIntensityMap = getTexture(json.specularIntensityMap); + if (json.specularColorMap !== void 0) material.specularColorMap = getTexture(json.specularColorMap); + if (json.envMap !== void 0) material.envMap = getTexture(json.envMap); + if (json.envMapRotation !== void 0) material.envMapRotation.fromArray(json.envMapRotation); + if (json.envMapIntensity !== void 0) material.envMapIntensity = json.envMapIntensity; + if (json.reflectivity !== void 0) material.reflectivity = json.reflectivity; + if (json.refractionRatio !== void 0) material.refractionRatio = json.refractionRatio; + if (json.lightMap !== void 0) material.lightMap = getTexture(json.lightMap); + if (json.lightMapIntensity !== void 0) material.lightMapIntensity = json.lightMapIntensity; + if (json.aoMap !== void 0) material.aoMap = getTexture(json.aoMap); + if (json.aoMapIntensity !== void 0) material.aoMapIntensity = json.aoMapIntensity; + if (json.gradientMap !== void 0) material.gradientMap = getTexture(json.gradientMap); + if (json.clearcoatMap !== void 0) material.clearcoatMap = getTexture(json.clearcoatMap); + if (json.clearcoatRoughnessMap !== void 0) material.clearcoatRoughnessMap = getTexture(json.clearcoatRoughnessMap); + if (json.clearcoatNormalMap !== void 0) material.clearcoatNormalMap = getTexture(json.clearcoatNormalMap); + if (json.clearcoatNormalScale !== void 0) material.clearcoatNormalScale = new Vector2().fromArray(json.clearcoatNormalScale); + if (json.iridescenceMap !== void 0) material.iridescenceMap = getTexture(json.iridescenceMap); + if (json.iridescenceThicknessMap !== void 0) material.iridescenceThicknessMap = getTexture(json.iridescenceThicknessMap); + if (json.transmissionMap !== void 0) material.transmissionMap = getTexture(json.transmissionMap); + if (json.thicknessMap !== void 0) material.thicknessMap = getTexture(json.thicknessMap); + if (json.anisotropyMap !== void 0) material.anisotropyMap = getTexture(json.anisotropyMap); + if (json.sheenColorMap !== void 0) material.sheenColorMap = getTexture(json.sheenColorMap); + if (json.sheenRoughnessMap !== void 0) material.sheenRoughnessMap = getTexture(json.sheenRoughnessMap); + return material; + } + setTextures(value) { + this.textures = value; + return this; + } + createMaterialFromType(type) { + return MaterialLoader.createMaterialFromType(type); + } + static createMaterialFromType(type) { + const materialLib = { + ShadowMaterial, + SpriteMaterial, + RawShaderMaterial, + ShaderMaterial, + PointsMaterial, + MeshPhysicalMaterial, + MeshStandardMaterial, + MeshPhongMaterial, + MeshToonMaterial, + MeshNormalMaterial, + MeshLambertMaterial, + MeshDepthMaterial, + MeshDistanceMaterial, + MeshBasicMaterial, + MeshMatcapMaterial, + LineDashedMaterial, + LineBasicMaterial, + Material + }; + return new materialLib[type](); + } +} +class LoaderUtils { + static { + __name(this, "LoaderUtils"); + } + static decodeText(array) { + console.warn("THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead."); + if (typeof TextDecoder !== "undefined") { + return new TextDecoder().decode(array); + } + let s = ""; + for (let i = 0, il = array.length; i < il; i++) { + s += String.fromCharCode(array[i]); + } + try { + return decodeURIComponent(escape(s)); + } catch (e) { + return s; + } + } + static extractUrlBase(url) { + const index = url.lastIndexOf("/"); + if (index === -1) return "./"; + return url.slice(0, index + 1); + } + static resolveURL(url, path) { + if (typeof url !== "string" || url === "") return ""; + if (/^https?:\/\//i.test(path) && /^\//.test(url)) { + path = path.replace(/(^https?:\/\/[^\/]+).*/i, "$1"); + } + if (/^(https?:)?\/\//i.test(url)) return url; + if (/^data:.*,.*$/i.test(url)) return url; + if (/^blob:.*$/i.test(url)) return url; + return path + url; + } +} +class InstancedBufferGeometry extends BufferGeometry { + static { + __name(this, "InstancedBufferGeometry"); + } + constructor() { + super(); + this.isInstancedBufferGeometry = true; + this.type = "InstancedBufferGeometry"; + this.instanceCount = Infinity; + } + copy(source) { + super.copy(source); + this.instanceCount = source.instanceCount; + return this; + } + toJSON() { + const data = super.toJSON(); + data.instanceCount = this.instanceCount; + data.isInstancedBufferGeometry = true; + return data; + } +} +class BufferGeometryLoader extends Loader { + static { + __name(this, "BufferGeometryLoader"); + } + constructor(manager) { + super(manager); + } + load(url, onLoad, onProgress, onError) { + const scope = this; + const loader = new FileLoader(scope.manager); + loader.setPath(scope.path); + loader.setRequestHeader(scope.requestHeader); + loader.setWithCredentials(scope.withCredentials); + loader.load(url, function(text) { + try { + onLoad(scope.parse(JSON.parse(text))); + } catch (e) { + if (onError) { + onError(e); + } else { + console.error(e); + } + scope.manager.itemError(url); + } + }, onProgress, onError); + } + parse(json) { + const interleavedBufferMap = {}; + const arrayBufferMap = {}; + function getInterleavedBuffer(json2, uuid) { + if (interleavedBufferMap[uuid] !== void 0) return interleavedBufferMap[uuid]; + const interleavedBuffers = json2.interleavedBuffers; + const interleavedBuffer = interleavedBuffers[uuid]; + const buffer = getArrayBuffer(json2, interleavedBuffer.buffer); + const array = getTypedArray(interleavedBuffer.type, buffer); + const ib = new InterleavedBuffer(array, interleavedBuffer.stride); + ib.uuid = interleavedBuffer.uuid; + interleavedBufferMap[uuid] = ib; + return ib; + } + __name(getInterleavedBuffer, "getInterleavedBuffer"); + function getArrayBuffer(json2, uuid) { + if (arrayBufferMap[uuid] !== void 0) return arrayBufferMap[uuid]; + const arrayBuffers = json2.arrayBuffers; + const arrayBuffer = arrayBuffers[uuid]; + const ab = new Uint32Array(arrayBuffer).buffer; + arrayBufferMap[uuid] = ab; + return ab; + } + __name(getArrayBuffer, "getArrayBuffer"); + const geometry = json.isInstancedBufferGeometry ? new InstancedBufferGeometry() : new BufferGeometry(); + const index = json.data.index; + if (index !== void 0) { + const typedArray = getTypedArray(index.type, index.array); + geometry.setIndex(new BufferAttribute(typedArray, 1)); + } + const attributes = json.data.attributes; + for (const key in attributes) { + const attribute = attributes[key]; + let bufferAttribute; + if (attribute.isInterleavedBufferAttribute) { + const interleavedBuffer = getInterleavedBuffer(json.data, attribute.data); + bufferAttribute = new InterleavedBufferAttribute(interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized); + } else { + const typedArray = getTypedArray(attribute.type, attribute.array); + const bufferAttributeConstr = attribute.isInstancedBufferAttribute ? InstancedBufferAttribute : BufferAttribute; + bufferAttribute = new bufferAttributeConstr(typedArray, attribute.itemSize, attribute.normalized); + } + if (attribute.name !== void 0) bufferAttribute.name = attribute.name; + if (attribute.usage !== void 0) bufferAttribute.setUsage(attribute.usage); + geometry.setAttribute(key, bufferAttribute); + } + const morphAttributes = json.data.morphAttributes; + if (morphAttributes) { + for (const key in morphAttributes) { + const attributeArray = morphAttributes[key]; + const array = []; + for (let i = 0, il = attributeArray.length; i < il; i++) { + const attribute = attributeArray[i]; + let bufferAttribute; + if (attribute.isInterleavedBufferAttribute) { + const interleavedBuffer = getInterleavedBuffer(json.data, attribute.data); + bufferAttribute = new InterleavedBufferAttribute(interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized); + } else { + const typedArray = getTypedArray(attribute.type, attribute.array); + bufferAttribute = new BufferAttribute(typedArray, attribute.itemSize, attribute.normalized); + } + if (attribute.name !== void 0) bufferAttribute.name = attribute.name; + array.push(bufferAttribute); + } + geometry.morphAttributes[key] = array; + } + } + const morphTargetsRelative = json.data.morphTargetsRelative; + if (morphTargetsRelative) { + geometry.morphTargetsRelative = true; + } + const groups = json.data.groups || json.data.drawcalls || json.data.offsets; + if (groups !== void 0) { + for (let i = 0, n = groups.length; i !== n; ++i) { + const group = groups[i]; + geometry.addGroup(group.start, group.count, group.materialIndex); + } + } + const boundingSphere = json.data.boundingSphere; + if (boundingSphere !== void 0) { + const center = new Vector3(); + if (boundingSphere.center !== void 0) { + center.fromArray(boundingSphere.center); + } + geometry.boundingSphere = new Sphere(center, boundingSphere.radius); + } + if (json.name) geometry.name = json.name; + if (json.userData) geometry.userData = json.userData; + return geometry; + } +} +class ObjectLoader extends Loader { + static { + __name(this, "ObjectLoader"); + } + constructor(manager) { + super(manager); + } + load(url, onLoad, onProgress, onError) { + const scope = this; + const path = this.path === "" ? LoaderUtils.extractUrlBase(url) : this.path; + this.resourcePath = this.resourcePath || path; + const loader = new FileLoader(this.manager); + loader.setPath(this.path); + loader.setRequestHeader(this.requestHeader); + loader.setWithCredentials(this.withCredentials); + loader.load(url, function(text) { + let json = null; + try { + json = JSON.parse(text); + } catch (error) { + if (onError !== void 0) onError(error); + console.error("THREE:ObjectLoader: Can't parse " + url + ".", error.message); + return; + } + const metadata = json.metadata; + if (metadata === void 0 || metadata.type === void 0 || metadata.type.toLowerCase() === "geometry") { + if (onError !== void 0) onError(new Error("THREE.ObjectLoader: Can't load " + url)); + console.error("THREE.ObjectLoader: Can't load " + url); + return; + } + scope.parse(json, onLoad); + }, onProgress, onError); + } + async loadAsync(url, onProgress) { + const scope = this; + const path = this.path === "" ? LoaderUtils.extractUrlBase(url) : this.path; + this.resourcePath = this.resourcePath || path; + const loader = new FileLoader(this.manager); + loader.setPath(this.path); + loader.setRequestHeader(this.requestHeader); + loader.setWithCredentials(this.withCredentials); + const text = await loader.loadAsync(url, onProgress); + const json = JSON.parse(text); + const metadata = json.metadata; + if (metadata === void 0 || metadata.type === void 0 || metadata.type.toLowerCase() === "geometry") { + throw new Error("THREE.ObjectLoader: Can't load " + url); + } + return await scope.parseAsync(json); + } + parse(json, onLoad) { + const animations = this.parseAnimations(json.animations); + const shapes = this.parseShapes(json.shapes); + const geometries = this.parseGeometries(json.geometries, shapes); + const images = this.parseImages(json.images, function() { + if (onLoad !== void 0) onLoad(object); + }); + const textures = this.parseTextures(json.textures, images); + const materials = this.parseMaterials(json.materials, textures); + const object = this.parseObject(json.object, geometries, materials, textures, animations); + const skeletons = this.parseSkeletons(json.skeletons, object); + this.bindSkeletons(object, skeletons); + this.bindLightTargets(object); + if (onLoad !== void 0) { + let hasImages = false; + for (const uuid in images) { + if (images[uuid].data instanceof HTMLImageElement) { + hasImages = true; + break; + } + } + if (hasImages === false) onLoad(object); + } + return object; + } + async parseAsync(json) { + const animations = this.parseAnimations(json.animations); + const shapes = this.parseShapes(json.shapes); + const geometries = this.parseGeometries(json.geometries, shapes); + const images = await this.parseImagesAsync(json.images); + const textures = this.parseTextures(json.textures, images); + const materials = this.parseMaterials(json.materials, textures); + const object = this.parseObject(json.object, geometries, materials, textures, animations); + const skeletons = this.parseSkeletons(json.skeletons, object); + this.bindSkeletons(object, skeletons); + this.bindLightTargets(object); + return object; + } + parseShapes(json) { + const shapes = {}; + if (json !== void 0) { + for (let i = 0, l = json.length; i < l; i++) { + const shape = new Shape().fromJSON(json[i]); + shapes[shape.uuid] = shape; + } + } + return shapes; + } + parseSkeletons(json, object) { + const skeletons = {}; + const bones = {}; + object.traverse(function(child) { + if (child.isBone) bones[child.uuid] = child; + }); + if (json !== void 0) { + for (let i = 0, l = json.length; i < l; i++) { + const skeleton = new Skeleton().fromJSON(json[i], bones); + skeletons[skeleton.uuid] = skeleton; + } + } + return skeletons; + } + parseGeometries(json, shapes) { + const geometries = {}; + if (json !== void 0) { + const bufferGeometryLoader = new BufferGeometryLoader(); + for (let i = 0, l = json.length; i < l; i++) { + let geometry; + const data = json[i]; + switch (data.type) { + case "BufferGeometry": + case "InstancedBufferGeometry": + geometry = bufferGeometryLoader.parse(data); + break; + default: + if (data.type in Geometries) { + geometry = Geometries[data.type].fromJSON(data, shapes); + } else { + console.warn(`THREE.ObjectLoader: Unsupported geometry type "${data.type}"`); + } + } + geometry.uuid = data.uuid; + if (data.name !== void 0) geometry.name = data.name; + if (data.userData !== void 0) geometry.userData = data.userData; + geometries[data.uuid] = geometry; + } + } + return geometries; + } + parseMaterials(json, textures) { + const cache = {}; + const materials = {}; + if (json !== void 0) { + const loader = new MaterialLoader(); + loader.setTextures(textures); + for (let i = 0, l = json.length; i < l; i++) { + const data = json[i]; + if (cache[data.uuid] === void 0) { + cache[data.uuid] = loader.parse(data); + } + materials[data.uuid] = cache[data.uuid]; + } + } + return materials; + } + parseAnimations(json) { + const animations = {}; + if (json !== void 0) { + for (let i = 0; i < json.length; i++) { + const data = json[i]; + const clip = AnimationClip.parse(data); + animations[clip.uuid] = clip; + } + } + return animations; + } + parseImages(json, onLoad) { + const scope = this; + const images = {}; + let loader; + function loadImage2(url) { + scope.manager.itemStart(url); + return loader.load(url, function() { + scope.manager.itemEnd(url); + }, void 0, function() { + scope.manager.itemError(url); + scope.manager.itemEnd(url); + }); + } + __name(loadImage2, "loadImage"); + function deserializeImage(image) { + if (typeof image === "string") { + const url = image; + const path = /^(\/\/)|([a-z]+:(\/\/)?)/i.test(url) ? url : scope.resourcePath + url; + return loadImage2(path); + } else { + if (image.data) { + return { + data: getTypedArray(image.type, image.data), + width: image.width, + height: image.height + }; + } else { + return null; + } + } + } + __name(deserializeImage, "deserializeImage"); + if (json !== void 0 && json.length > 0) { + const manager = new LoadingManager(onLoad); + loader = new ImageLoader(manager); + loader.setCrossOrigin(this.crossOrigin); + for (let i = 0, il = json.length; i < il; i++) { + const image = json[i]; + const url = image.url; + if (Array.isArray(url)) { + const imageArray = []; + for (let j = 0, jl = url.length; j < jl; j++) { + const currentUrl = url[j]; + const deserializedImage = deserializeImage(currentUrl); + if (deserializedImage !== null) { + if (deserializedImage instanceof HTMLImageElement) { + imageArray.push(deserializedImage); + } else { + imageArray.push(new DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height)); + } + } + } + images[image.uuid] = new Source(imageArray); + } else { + const deserializedImage = deserializeImage(image.url); + images[image.uuid] = new Source(deserializedImage); + } + } + } + return images; + } + async parseImagesAsync(json) { + const scope = this; + const images = {}; + let loader; + async function deserializeImage(image) { + if (typeof image === "string") { + const url = image; + const path = /^(\/\/)|([a-z]+:(\/\/)?)/i.test(url) ? url : scope.resourcePath + url; + return await loader.loadAsync(path); + } else { + if (image.data) { + return { + data: getTypedArray(image.type, image.data), + width: image.width, + height: image.height + }; + } else { + return null; + } + } + } + __name(deserializeImage, "deserializeImage"); + if (json !== void 0 && json.length > 0) { + loader = new ImageLoader(this.manager); + loader.setCrossOrigin(this.crossOrigin); + for (let i = 0, il = json.length; i < il; i++) { + const image = json[i]; + const url = image.url; + if (Array.isArray(url)) { + const imageArray = []; + for (let j = 0, jl = url.length; j < jl; j++) { + const currentUrl = url[j]; + const deserializedImage = await deserializeImage(currentUrl); + if (deserializedImage !== null) { + if (deserializedImage instanceof HTMLImageElement) { + imageArray.push(deserializedImage); + } else { + imageArray.push(new DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height)); + } + } + } + images[image.uuid] = new Source(imageArray); + } else { + const deserializedImage = await deserializeImage(image.url); + images[image.uuid] = new Source(deserializedImage); + } + } + } + return images; + } + parseTextures(json, images) { + function parseConstant(value, type) { + if (typeof value === "number") return value; + console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.", value); + return type[value]; + } + __name(parseConstant, "parseConstant"); + const textures = {}; + if (json !== void 0) { + for (let i = 0, l = json.length; i < l; i++) { + const data = json[i]; + if (data.image === void 0) { + console.warn('THREE.ObjectLoader: No "image" specified for', data.uuid); + } + if (images[data.image] === void 0) { + console.warn("THREE.ObjectLoader: Undefined image", data.image); + } + const source = images[data.image]; + const image = source.data; + let texture; + if (Array.isArray(image)) { + texture = new CubeTexture(); + if (image.length === 6) texture.needsUpdate = true; + } else { + if (image && image.data) { + texture = new DataTexture(); + } else { + texture = new Texture(); + } + if (image) texture.needsUpdate = true; + } + texture.source = source; + texture.uuid = data.uuid; + if (data.name !== void 0) texture.name = data.name; + if (data.mapping !== void 0) texture.mapping = parseConstant(data.mapping, TEXTURE_MAPPING); + if (data.channel !== void 0) texture.channel = data.channel; + if (data.offset !== void 0) texture.offset.fromArray(data.offset); + if (data.repeat !== void 0) texture.repeat.fromArray(data.repeat); + if (data.center !== void 0) texture.center.fromArray(data.center); + if (data.rotation !== void 0) texture.rotation = data.rotation; + if (data.wrap !== void 0) { + texture.wrapS = parseConstant(data.wrap[0], TEXTURE_WRAPPING); + texture.wrapT = parseConstant(data.wrap[1], TEXTURE_WRAPPING); + } + if (data.format !== void 0) texture.format = data.format; + if (data.internalFormat !== void 0) texture.internalFormat = data.internalFormat; + if (data.type !== void 0) texture.type = data.type; + if (data.colorSpace !== void 0) texture.colorSpace = data.colorSpace; + if (data.minFilter !== void 0) texture.minFilter = parseConstant(data.minFilter, TEXTURE_FILTER); + if (data.magFilter !== void 0) texture.magFilter = parseConstant(data.magFilter, TEXTURE_FILTER); + if (data.anisotropy !== void 0) texture.anisotropy = data.anisotropy; + if (data.flipY !== void 0) texture.flipY = data.flipY; + if (data.generateMipmaps !== void 0) texture.generateMipmaps = data.generateMipmaps; + if (data.premultiplyAlpha !== void 0) texture.premultiplyAlpha = data.premultiplyAlpha; + if (data.unpackAlignment !== void 0) texture.unpackAlignment = data.unpackAlignment; + if (data.compareFunction !== void 0) texture.compareFunction = data.compareFunction; + if (data.userData !== void 0) texture.userData = data.userData; + textures[data.uuid] = texture; + } + } + return textures; + } + parseObject(data, geometries, materials, textures, animations) { + let object; + function getGeometry(name) { + if (geometries[name] === void 0) { + console.warn("THREE.ObjectLoader: Undefined geometry", name); + } + return geometries[name]; + } + __name(getGeometry, "getGeometry"); + function getMaterial(name) { + if (name === void 0) return void 0; + if (Array.isArray(name)) { + const array = []; + for (let i = 0, l = name.length; i < l; i++) { + const uuid = name[i]; + if (materials[uuid] === void 0) { + console.warn("THREE.ObjectLoader: Undefined material", uuid); + } + array.push(materials[uuid]); + } + return array; + } + if (materials[name] === void 0) { + console.warn("THREE.ObjectLoader: Undefined material", name); + } + return materials[name]; + } + __name(getMaterial, "getMaterial"); + function getTexture(uuid) { + if (textures[uuid] === void 0) { + console.warn("THREE.ObjectLoader: Undefined texture", uuid); + } + return textures[uuid]; + } + __name(getTexture, "getTexture"); + let geometry, material; + switch (data.type) { + case "Scene": + object = new Scene(); + if (data.background !== void 0) { + if (Number.isInteger(data.background)) { + object.background = new Color(data.background); + } else { + object.background = getTexture(data.background); + } + } + if (data.environment !== void 0) { + object.environment = getTexture(data.environment); + } + if (data.fog !== void 0) { + if (data.fog.type === "Fog") { + object.fog = new Fog(data.fog.color, data.fog.near, data.fog.far); + } else if (data.fog.type === "FogExp2") { + object.fog = new FogExp2(data.fog.color, data.fog.density); + } + if (data.fog.name !== "") { + object.fog.name = data.fog.name; + } + } + if (data.backgroundBlurriness !== void 0) object.backgroundBlurriness = data.backgroundBlurriness; + if (data.backgroundIntensity !== void 0) object.backgroundIntensity = data.backgroundIntensity; + if (data.backgroundRotation !== void 0) object.backgroundRotation.fromArray(data.backgroundRotation); + if (data.environmentIntensity !== void 0) object.environmentIntensity = data.environmentIntensity; + if (data.environmentRotation !== void 0) object.environmentRotation.fromArray(data.environmentRotation); + break; + case "PerspectiveCamera": + object = new PerspectiveCamera(data.fov, data.aspect, data.near, data.far); + if (data.focus !== void 0) object.focus = data.focus; + if (data.zoom !== void 0) object.zoom = data.zoom; + if (data.filmGauge !== void 0) object.filmGauge = data.filmGauge; + if (data.filmOffset !== void 0) object.filmOffset = data.filmOffset; + if (data.view !== void 0) object.view = Object.assign({}, data.view); + break; + case "OrthographicCamera": + object = new OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far); + if (data.zoom !== void 0) object.zoom = data.zoom; + if (data.view !== void 0) object.view = Object.assign({}, data.view); + break; + case "AmbientLight": + object = new AmbientLight(data.color, data.intensity); + break; + case "DirectionalLight": + object = new DirectionalLight(data.color, data.intensity); + object.target = data.target || ""; + break; + case "PointLight": + object = new PointLight(data.color, data.intensity, data.distance, data.decay); + break; + case "RectAreaLight": + object = new RectAreaLight(data.color, data.intensity, data.width, data.height); + break; + case "SpotLight": + object = new SpotLight(data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay); + object.target = data.target || ""; + break; + case "HemisphereLight": + object = new HemisphereLight(data.color, data.groundColor, data.intensity); + break; + case "LightProbe": + object = new LightProbe().fromJSON(data); + break; + case "SkinnedMesh": + geometry = getGeometry(data.geometry); + material = getMaterial(data.material); + object = new SkinnedMesh(geometry, material); + if (data.bindMode !== void 0) object.bindMode = data.bindMode; + if (data.bindMatrix !== void 0) object.bindMatrix.fromArray(data.bindMatrix); + if (data.skeleton !== void 0) object.skeleton = data.skeleton; + break; + case "Mesh": + geometry = getGeometry(data.geometry); + material = getMaterial(data.material); + object = new Mesh(geometry, material); + break; + case "InstancedMesh": + geometry = getGeometry(data.geometry); + material = getMaterial(data.material); + const count = data.count; + const instanceMatrix = data.instanceMatrix; + const instanceColor = data.instanceColor; + object = new InstancedMesh(geometry, material, count); + object.instanceMatrix = new InstancedBufferAttribute(new Float32Array(instanceMatrix.array), 16); + if (instanceColor !== void 0) object.instanceColor = new InstancedBufferAttribute(new Float32Array(instanceColor.array), instanceColor.itemSize); + break; + case "BatchedMesh": + geometry = getGeometry(data.geometry); + material = getMaterial(data.material); + object = new BatchedMesh(data.maxInstanceCount, data.maxVertexCount, data.maxIndexCount, material); + object.geometry = geometry; + object.perObjectFrustumCulled = data.perObjectFrustumCulled; + object.sortObjects = data.sortObjects; + object._drawRanges = data.drawRanges; + object._reservedRanges = data.reservedRanges; + object._visibility = data.visibility; + object._active = data.active; + object._bounds = data.bounds.map((bound) => { + const box = new Box3(); + box.min.fromArray(bound.boxMin); + box.max.fromArray(bound.boxMax); + const sphere = new Sphere(); + sphere.radius = bound.sphereRadius; + sphere.center.fromArray(bound.sphereCenter); + return { + boxInitialized: bound.boxInitialized, + box, + sphereInitialized: bound.sphereInitialized, + sphere + }; + }); + object._maxInstanceCount = data.maxInstanceCount; + object._maxVertexCount = data.maxVertexCount; + object._maxIndexCount = data.maxIndexCount; + object._geometryInitialized = data.geometryInitialized; + object._geometryCount = data.geometryCount; + object._matricesTexture = getTexture(data.matricesTexture.uuid); + if (data.colorsTexture !== void 0) object._colorsTexture = getTexture(data.colorsTexture.uuid); + break; + case "LOD": + object = new LOD(); + break; + case "Line": + object = new Line(getGeometry(data.geometry), getMaterial(data.material)); + break; + case "LineLoop": + object = new LineLoop(getGeometry(data.geometry), getMaterial(data.material)); + break; + case "LineSegments": + object = new LineSegments(getGeometry(data.geometry), getMaterial(data.material)); + break; + case "PointCloud": + case "Points": + object = new Points(getGeometry(data.geometry), getMaterial(data.material)); + break; + case "Sprite": + object = new Sprite(getMaterial(data.material)); + break; + case "Group": + object = new Group(); + break; + case "Bone": + object = new Bone(); + break; + default: + object = new Object3D(); + } + object.uuid = data.uuid; + if (data.name !== void 0) object.name = data.name; + if (data.matrix !== void 0) { + object.matrix.fromArray(data.matrix); + if (data.matrixAutoUpdate !== void 0) object.matrixAutoUpdate = data.matrixAutoUpdate; + if (object.matrixAutoUpdate) object.matrix.decompose(object.position, object.quaternion, object.scale); + } else { + if (data.position !== void 0) object.position.fromArray(data.position); + if (data.rotation !== void 0) object.rotation.fromArray(data.rotation); + if (data.quaternion !== void 0) object.quaternion.fromArray(data.quaternion); + if (data.scale !== void 0) object.scale.fromArray(data.scale); + } + if (data.up !== void 0) object.up.fromArray(data.up); + if (data.castShadow !== void 0) object.castShadow = data.castShadow; + if (data.receiveShadow !== void 0) object.receiveShadow = data.receiveShadow; + if (data.shadow) { + if (data.shadow.intensity !== void 0) object.shadow.intensity = data.shadow.intensity; + if (data.shadow.bias !== void 0) object.shadow.bias = data.shadow.bias; + if (data.shadow.normalBias !== void 0) object.shadow.normalBias = data.shadow.normalBias; + if (data.shadow.radius !== void 0) object.shadow.radius = data.shadow.radius; + if (data.shadow.mapSize !== void 0) object.shadow.mapSize.fromArray(data.shadow.mapSize); + if (data.shadow.camera !== void 0) object.shadow.camera = this.parseObject(data.shadow.camera); + } + if (data.visible !== void 0) object.visible = data.visible; + if (data.frustumCulled !== void 0) object.frustumCulled = data.frustumCulled; + if (data.renderOrder !== void 0) object.renderOrder = data.renderOrder; + if (data.userData !== void 0) object.userData = data.userData; + if (data.layers !== void 0) object.layers.mask = data.layers; + if (data.children !== void 0) { + const children = data.children; + for (let i = 0; i < children.length; i++) { + object.add(this.parseObject(children[i], geometries, materials, textures, animations)); + } + } + if (data.animations !== void 0) { + const objectAnimations = data.animations; + for (let i = 0; i < objectAnimations.length; i++) { + const uuid = objectAnimations[i]; + object.animations.push(animations[uuid]); + } + } + if (data.type === "LOD") { + if (data.autoUpdate !== void 0) object.autoUpdate = data.autoUpdate; + const levels = data.levels; + for (let l = 0; l < levels.length; l++) { + const level = levels[l]; + const child = object.getObjectByProperty("uuid", level.object); + if (child !== void 0) { + object.addLevel(child, level.distance, level.hysteresis); + } + } + } + return object; + } + bindSkeletons(object, skeletons) { + if (Object.keys(skeletons).length === 0) return; + object.traverse(function(child) { + if (child.isSkinnedMesh === true && child.skeleton !== void 0) { + const skeleton = skeletons[child.skeleton]; + if (skeleton === void 0) { + console.warn("THREE.ObjectLoader: No skeleton found with UUID:", child.skeleton); + } else { + child.bind(skeleton, child.bindMatrix); + } + } + }); + } + bindLightTargets(object) { + object.traverse(function(child) { + if (child.isDirectionalLight || child.isSpotLight) { + const uuid = child.target; + const target = object.getObjectByProperty("uuid", uuid); + if (target !== void 0) { + child.target = target; + } else { + child.target = new Object3D(); + } + } + }); + } +} +const TEXTURE_MAPPING = { + UVMapping, + CubeReflectionMapping, + CubeRefractionMapping, + EquirectangularReflectionMapping, + EquirectangularRefractionMapping, + CubeUVReflectionMapping +}; +const TEXTURE_WRAPPING = { + RepeatWrapping, + ClampToEdgeWrapping, + MirroredRepeatWrapping +}; +const TEXTURE_FILTER = { + NearestFilter, + NearestMipmapNearestFilter, + NearestMipmapLinearFilter, + LinearFilter, + LinearMipmapNearestFilter, + LinearMipmapLinearFilter +}; +class ImageBitmapLoader extends Loader { + static { + __name(this, "ImageBitmapLoader"); + } + constructor(manager) { + super(manager); + this.isImageBitmapLoader = true; + if (typeof createImageBitmap === "undefined") { + console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."); + } + if (typeof fetch === "undefined") { + console.warn("THREE.ImageBitmapLoader: fetch() not supported."); + } + this.options = { premultiplyAlpha: "none" }; + } + setOptions(options) { + this.options = options; + return this; + } + load(url, onLoad, onProgress, onError) { + if (url === void 0) url = ""; + if (this.path !== void 0) url = this.path + url; + url = this.manager.resolveURL(url); + const scope = this; + const cached = Cache.get(url); + if (cached !== void 0) { + scope.manager.itemStart(url); + if (cached.then) { + cached.then((imageBitmap) => { + if (onLoad) onLoad(imageBitmap); + scope.manager.itemEnd(url); + }).catch((e) => { + if (onError) onError(e); + }); + return; + } + setTimeout(function() { + if (onLoad) onLoad(cached); + scope.manager.itemEnd(url); + }, 0); + return cached; + } + const fetchOptions = {}; + fetchOptions.credentials = this.crossOrigin === "anonymous" ? "same-origin" : "include"; + fetchOptions.headers = this.requestHeader; + const promise = fetch(url, fetchOptions).then(function(res) { + return res.blob(); + }).then(function(blob) { + return createImageBitmap(blob, Object.assign(scope.options, { colorSpaceConversion: "none" })); + }).then(function(imageBitmap) { + Cache.add(url, imageBitmap); + if (onLoad) onLoad(imageBitmap); + scope.manager.itemEnd(url); + return imageBitmap; + }).catch(function(e) { + if (onError) onError(e); + Cache.remove(url); + scope.manager.itemError(url); + scope.manager.itemEnd(url); + }); + Cache.add(url, promise); + scope.manager.itemStart(url); + } +} +let _context; +class AudioContext { + static { + __name(this, "AudioContext"); + } + static getContext() { + if (_context === void 0) { + _context = new (window.AudioContext || window.webkitAudioContext)(); + } + return _context; + } + static setContext(value) { + _context = value; + } +} +class AudioLoader extends Loader { + static { + __name(this, "AudioLoader"); + } + constructor(manager) { + super(manager); + } + load(url, onLoad, onProgress, onError) { + const scope = this; + const loader = new FileLoader(this.manager); + loader.setResponseType("arraybuffer"); + loader.setPath(this.path); + loader.setRequestHeader(this.requestHeader); + loader.setWithCredentials(this.withCredentials); + loader.load(url, function(buffer) { + try { + const bufferCopy = buffer.slice(0); + const context = AudioContext.getContext(); + context.decodeAudioData(bufferCopy, function(audioBuffer) { + onLoad(audioBuffer); + }).catch(handleError); + } catch (e) { + handleError(e); + } + }, onProgress, onError); + function handleError(e) { + if (onError) { + onError(e); + } else { + console.error(e); + } + scope.manager.itemError(url); + } + __name(handleError, "handleError"); + } +} +const _eyeRight = /* @__PURE__ */ new Matrix4(); +const _eyeLeft = /* @__PURE__ */ new Matrix4(); +const _projectionMatrix = /* @__PURE__ */ new Matrix4(); +class StereoCamera { + static { + __name(this, "StereoCamera"); + } + constructor() { + this.type = "StereoCamera"; + this.aspect = 1; + this.eyeSep = 0.064; + this.cameraL = new PerspectiveCamera(); + this.cameraL.layers.enable(1); + this.cameraL.matrixAutoUpdate = false; + this.cameraR = new PerspectiveCamera(); + this.cameraR.layers.enable(2); + this.cameraR.matrixAutoUpdate = false; + this._cache = { + focus: null, + fov: null, + aspect: null, + near: null, + far: null, + zoom: null, + eyeSep: null + }; + } + update(camera) { + const cache = this._cache; + const needsUpdate = cache.focus !== camera.focus || cache.fov !== camera.fov || cache.aspect !== camera.aspect * this.aspect || cache.near !== camera.near || cache.far !== camera.far || cache.zoom !== camera.zoom || cache.eyeSep !== this.eyeSep; + if (needsUpdate) { + cache.focus = camera.focus; + cache.fov = camera.fov; + cache.aspect = camera.aspect * this.aspect; + cache.near = camera.near; + cache.far = camera.far; + cache.zoom = camera.zoom; + cache.eyeSep = this.eyeSep; + _projectionMatrix.copy(camera.projectionMatrix); + const eyeSepHalf = cache.eyeSep / 2; + const eyeSepOnProjection = eyeSepHalf * cache.near / cache.focus; + const ymax = cache.near * Math.tan(DEG2RAD * cache.fov * 0.5) / cache.zoom; + let xmin, xmax; + _eyeLeft.elements[12] = -eyeSepHalf; + _eyeRight.elements[12] = eyeSepHalf; + xmin = -ymax * cache.aspect + eyeSepOnProjection; + xmax = ymax * cache.aspect + eyeSepOnProjection; + _projectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin); + _projectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin); + this.cameraL.projectionMatrix.copy(_projectionMatrix); + xmin = -ymax * cache.aspect - eyeSepOnProjection; + xmax = ymax * cache.aspect - eyeSepOnProjection; + _projectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin); + _projectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin); + this.cameraR.projectionMatrix.copy(_projectionMatrix); + } + this.cameraL.matrixWorld.copy(camera.matrixWorld).multiply(_eyeLeft); + this.cameraR.matrixWorld.copy(camera.matrixWorld).multiply(_eyeRight); + } +} +class Clock { + static { + __name(this, "Clock"); + } + constructor(autoStart = true) { + this.autoStart = autoStart; + this.startTime = 0; + this.oldTime = 0; + this.elapsedTime = 0; + this.running = false; + } + start() { + this.startTime = now(); + this.oldTime = this.startTime; + this.elapsedTime = 0; + this.running = true; + } + stop() { + this.getElapsedTime(); + this.running = false; + this.autoStart = false; + } + getElapsedTime() { + this.getDelta(); + return this.elapsedTime; + } + getDelta() { + let diff = 0; + if (this.autoStart && !this.running) { + this.start(); + return 0; + } + if (this.running) { + const newTime = now(); + diff = (newTime - this.oldTime) / 1e3; + this.oldTime = newTime; + this.elapsedTime += diff; + } + return diff; + } +} +function now() { + return performance.now(); +} +__name(now, "now"); +const _position$1 = /* @__PURE__ */ new Vector3(); +const _quaternion$1 = /* @__PURE__ */ new Quaternion(); +const _scale$1 = /* @__PURE__ */ new Vector3(); +const _orientation$1 = /* @__PURE__ */ new Vector3(); +class AudioListener extends Object3D { + static { + __name(this, "AudioListener"); + } + constructor() { + super(); + this.type = "AudioListener"; + this.context = AudioContext.getContext(); + this.gain = this.context.createGain(); + this.gain.connect(this.context.destination); + this.filter = null; + this.timeDelta = 0; + this._clock = new Clock(); + } + getInput() { + return this.gain; + } + removeFilter() { + if (this.filter !== null) { + this.gain.disconnect(this.filter); + this.filter.disconnect(this.context.destination); + this.gain.connect(this.context.destination); + this.filter = null; + } + return this; + } + getFilter() { + return this.filter; + } + setFilter(value) { + if (this.filter !== null) { + this.gain.disconnect(this.filter); + this.filter.disconnect(this.context.destination); + } else { + this.gain.disconnect(this.context.destination); + } + this.filter = value; + this.gain.connect(this.filter); + this.filter.connect(this.context.destination); + return this; + } + getMasterVolume() { + return this.gain.gain.value; + } + setMasterVolume(value) { + this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01); + return this; + } + updateMatrixWorld(force) { + super.updateMatrixWorld(force); + const listener = this.context.listener; + const up = this.up; + this.timeDelta = this._clock.getDelta(); + this.matrixWorld.decompose(_position$1, _quaternion$1, _scale$1); + _orientation$1.set(0, 0, -1).applyQuaternion(_quaternion$1); + if (listener.positionX) { + const endTime = this.context.currentTime + this.timeDelta; + listener.positionX.linearRampToValueAtTime(_position$1.x, endTime); + listener.positionY.linearRampToValueAtTime(_position$1.y, endTime); + listener.positionZ.linearRampToValueAtTime(_position$1.z, endTime); + listener.forwardX.linearRampToValueAtTime(_orientation$1.x, endTime); + listener.forwardY.linearRampToValueAtTime(_orientation$1.y, endTime); + listener.forwardZ.linearRampToValueAtTime(_orientation$1.z, endTime); + listener.upX.linearRampToValueAtTime(up.x, endTime); + listener.upY.linearRampToValueAtTime(up.y, endTime); + listener.upZ.linearRampToValueAtTime(up.z, endTime); + } else { + listener.setPosition(_position$1.x, _position$1.y, _position$1.z); + listener.setOrientation(_orientation$1.x, _orientation$1.y, _orientation$1.z, up.x, up.y, up.z); + } + } +} +class Audio extends Object3D { + static { + __name(this, "Audio"); + } + constructor(listener) { + super(); + this.type = "Audio"; + this.listener = listener; + this.context = listener.context; + this.gain = this.context.createGain(); + this.gain.connect(listener.getInput()); + this.autoplay = false; + this.buffer = null; + this.detune = 0; + this.loop = false; + this.loopStart = 0; + this.loopEnd = 0; + this.offset = 0; + this.duration = void 0; + this.playbackRate = 1; + this.isPlaying = false; + this.hasPlaybackControl = true; + this.source = null; + this.sourceType = "empty"; + this._startedAt = 0; + this._progress = 0; + this._connected = false; + this.filters = []; + } + getOutput() { + return this.gain; + } + setNodeSource(audioNode) { + this.hasPlaybackControl = false; + this.sourceType = "audioNode"; + this.source = audioNode; + this.connect(); + return this; + } + setMediaElementSource(mediaElement) { + this.hasPlaybackControl = false; + this.sourceType = "mediaNode"; + this.source = this.context.createMediaElementSource(mediaElement); + this.connect(); + return this; + } + setMediaStreamSource(mediaStream) { + this.hasPlaybackControl = false; + this.sourceType = "mediaStreamNode"; + this.source = this.context.createMediaStreamSource(mediaStream); + this.connect(); + return this; + } + setBuffer(audioBuffer) { + this.buffer = audioBuffer; + this.sourceType = "buffer"; + if (this.autoplay) this.play(); + return this; + } + play(delay = 0) { + if (this.isPlaying === true) { + console.warn("THREE.Audio: Audio is already playing."); + return; + } + if (this.hasPlaybackControl === false) { + console.warn("THREE.Audio: this Audio has no playback control."); + return; + } + this._startedAt = this.context.currentTime + delay; + const source = this.context.createBufferSource(); + source.buffer = this.buffer; + source.loop = this.loop; + source.loopStart = this.loopStart; + source.loopEnd = this.loopEnd; + source.onended = this.onEnded.bind(this); + source.start(this._startedAt, this._progress + this.offset, this.duration); + this.isPlaying = true; + this.source = source; + this.setDetune(this.detune); + this.setPlaybackRate(this.playbackRate); + return this.connect(); + } + pause() { + if (this.hasPlaybackControl === false) { + console.warn("THREE.Audio: this Audio has no playback control."); + return; + } + if (this.isPlaying === true) { + this._progress += Math.max(this.context.currentTime - this._startedAt, 0) * this.playbackRate; + if (this.loop === true) { + this._progress = this._progress % (this.duration || this.buffer.duration); + } + this.source.stop(); + this.source.onended = null; + this.isPlaying = false; + } + return this; + } + stop(delay = 0) { + if (this.hasPlaybackControl === false) { + console.warn("THREE.Audio: this Audio has no playback control."); + return; + } + this._progress = 0; + if (this.source !== null) { + this.source.stop(this.context.currentTime + delay); + this.source.onended = null; + } + this.isPlaying = false; + return this; + } + connect() { + if (this.filters.length > 0) { + this.source.connect(this.filters[0]); + for (let i = 1, l = this.filters.length; i < l; i++) { + this.filters[i - 1].connect(this.filters[i]); + } + this.filters[this.filters.length - 1].connect(this.getOutput()); + } else { + this.source.connect(this.getOutput()); + } + this._connected = true; + return this; + } + disconnect() { + if (this._connected === false) { + return; + } + if (this.filters.length > 0) { + this.source.disconnect(this.filters[0]); + for (let i = 1, l = this.filters.length; i < l; i++) { + this.filters[i - 1].disconnect(this.filters[i]); + } + this.filters[this.filters.length - 1].disconnect(this.getOutput()); + } else { + this.source.disconnect(this.getOutput()); + } + this._connected = false; + return this; + } + getFilters() { + return this.filters; + } + setFilters(value) { + if (!value) value = []; + if (this._connected === true) { + this.disconnect(); + this.filters = value.slice(); + this.connect(); + } else { + this.filters = value.slice(); + } + return this; + } + setDetune(value) { + this.detune = value; + if (this.isPlaying === true && this.source.detune !== void 0) { + this.source.detune.setTargetAtTime(this.detune, this.context.currentTime, 0.01); + } + return this; + } + getDetune() { + return this.detune; + } + getFilter() { + return this.getFilters()[0]; + } + setFilter(filter) { + return this.setFilters(filter ? [filter] : []); + } + setPlaybackRate(value) { + if (this.hasPlaybackControl === false) { + console.warn("THREE.Audio: this Audio has no playback control."); + return; + } + this.playbackRate = value; + if (this.isPlaying === true) { + this.source.playbackRate.setTargetAtTime(this.playbackRate, this.context.currentTime, 0.01); + } + return this; + } + getPlaybackRate() { + return this.playbackRate; + } + onEnded() { + this.isPlaying = false; + } + getLoop() { + if (this.hasPlaybackControl === false) { + console.warn("THREE.Audio: this Audio has no playback control."); + return false; + } + return this.loop; + } + setLoop(value) { + if (this.hasPlaybackControl === false) { + console.warn("THREE.Audio: this Audio has no playback control."); + return; + } + this.loop = value; + if (this.isPlaying === true) { + this.source.loop = this.loop; + } + return this; + } + setLoopStart(value) { + this.loopStart = value; + return this; + } + setLoopEnd(value) { + this.loopEnd = value; + return this; + } + getVolume() { + return this.gain.gain.value; + } + setVolume(value) { + this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01); + return this; + } +} +const _position = /* @__PURE__ */ new Vector3(); +const _quaternion = /* @__PURE__ */ new Quaternion(); +const _scale = /* @__PURE__ */ new Vector3(); +const _orientation = /* @__PURE__ */ new Vector3(); +class PositionalAudio extends Audio { + static { + __name(this, "PositionalAudio"); + } + constructor(listener) { + super(listener); + this.panner = this.context.createPanner(); + this.panner.panningModel = "HRTF"; + this.panner.connect(this.gain); + } + connect() { + super.connect(); + this.panner.connect(this.gain); + } + disconnect() { + super.disconnect(); + this.panner.disconnect(this.gain); + } + getOutput() { + return this.panner; + } + getRefDistance() { + return this.panner.refDistance; + } + setRefDistance(value) { + this.panner.refDistance = value; + return this; + } + getRolloffFactor() { + return this.panner.rolloffFactor; + } + setRolloffFactor(value) { + this.panner.rolloffFactor = value; + return this; + } + getDistanceModel() { + return this.panner.distanceModel; + } + setDistanceModel(value) { + this.panner.distanceModel = value; + return this; + } + getMaxDistance() { + return this.panner.maxDistance; + } + setMaxDistance(value) { + this.panner.maxDistance = value; + return this; + } + setDirectionalCone(coneInnerAngle, coneOuterAngle, coneOuterGain) { + this.panner.coneInnerAngle = coneInnerAngle; + this.panner.coneOuterAngle = coneOuterAngle; + this.panner.coneOuterGain = coneOuterGain; + return this; + } + updateMatrixWorld(force) { + super.updateMatrixWorld(force); + if (this.hasPlaybackControl === true && this.isPlaying === false) return; + this.matrixWorld.decompose(_position, _quaternion, _scale); + _orientation.set(0, 0, 1).applyQuaternion(_quaternion); + const panner = this.panner; + if (panner.positionX) { + const endTime = this.context.currentTime + this.listener.timeDelta; + panner.positionX.linearRampToValueAtTime(_position.x, endTime); + panner.positionY.linearRampToValueAtTime(_position.y, endTime); + panner.positionZ.linearRampToValueAtTime(_position.z, endTime); + panner.orientationX.linearRampToValueAtTime(_orientation.x, endTime); + panner.orientationY.linearRampToValueAtTime(_orientation.y, endTime); + panner.orientationZ.linearRampToValueAtTime(_orientation.z, endTime); + } else { + panner.setPosition(_position.x, _position.y, _position.z); + panner.setOrientation(_orientation.x, _orientation.y, _orientation.z); + } + } +} +class AudioAnalyser { + static { + __name(this, "AudioAnalyser"); + } + constructor(audio, fftSize = 2048) { + this.analyser = audio.context.createAnalyser(); + this.analyser.fftSize = fftSize; + this.data = new Uint8Array(this.analyser.frequencyBinCount); + audio.getOutput().connect(this.analyser); + } + getFrequencyData() { + this.analyser.getByteFrequencyData(this.data); + return this.data; + } + getAverageFrequency() { + let value = 0; + const data = this.getFrequencyData(); + for (let i = 0; i < data.length; i++) { + value += data[i]; + } + return value / data.length; + } +} +class PropertyMixer { + static { + __name(this, "PropertyMixer"); + } + constructor(binding, typeName, valueSize) { + this.binding = binding; + this.valueSize = valueSize; + let mixFunction, mixFunctionAdditive, setIdentity; + switch (typeName) { + case "quaternion": + mixFunction = this._slerp; + mixFunctionAdditive = this._slerpAdditive; + setIdentity = this._setAdditiveIdentityQuaternion; + this.buffer = new Float64Array(valueSize * 6); + this._workIndex = 5; + break; + case "string": + case "bool": + mixFunction = this._select; + mixFunctionAdditive = this._select; + setIdentity = this._setAdditiveIdentityOther; + this.buffer = new Array(valueSize * 5); + break; + default: + mixFunction = this._lerp; + mixFunctionAdditive = this._lerpAdditive; + setIdentity = this._setAdditiveIdentityNumeric; + this.buffer = new Float64Array(valueSize * 5); + } + this._mixBufferRegion = mixFunction; + this._mixBufferRegionAdditive = mixFunctionAdditive; + this._setIdentity = setIdentity; + this._origIndex = 3; + this._addIndex = 4; + this.cumulativeWeight = 0; + this.cumulativeWeightAdditive = 0; + this.useCount = 0; + this.referenceCount = 0; + } + // accumulate data in the 'incoming' region into 'accu' + accumulate(accuIndex, weight) { + const buffer = this.buffer, stride = this.valueSize, offset = accuIndex * stride + stride; + let currentWeight = this.cumulativeWeight; + if (currentWeight === 0) { + for (let i = 0; i !== stride; ++i) { + buffer[offset + i] = buffer[i]; + } + currentWeight = weight; + } else { + currentWeight += weight; + const mix = weight / currentWeight; + this._mixBufferRegion(buffer, offset, 0, mix, stride); + } + this.cumulativeWeight = currentWeight; + } + // accumulate data in the 'incoming' region into 'add' + accumulateAdditive(weight) { + const buffer = this.buffer, stride = this.valueSize, offset = stride * this._addIndex; + if (this.cumulativeWeightAdditive === 0) { + this._setIdentity(); + } + this._mixBufferRegionAdditive(buffer, offset, 0, weight, stride); + this.cumulativeWeightAdditive += weight; + } + // apply the state of 'accu' to the binding when accus differ + apply(accuIndex) { + const stride = this.valueSize, buffer = this.buffer, offset = accuIndex * stride + stride, weight = this.cumulativeWeight, weightAdditive = this.cumulativeWeightAdditive, binding = this.binding; + this.cumulativeWeight = 0; + this.cumulativeWeightAdditive = 0; + if (weight < 1) { + const originalValueOffset = stride * this._origIndex; + this._mixBufferRegion( + buffer, + offset, + originalValueOffset, + 1 - weight, + stride + ); + } + if (weightAdditive > 0) { + this._mixBufferRegionAdditive(buffer, offset, this._addIndex * stride, 1, stride); + } + for (let i = stride, e = stride + stride; i !== e; ++i) { + if (buffer[i] !== buffer[i + stride]) { + binding.setValue(buffer, offset); + break; + } + } + } + // remember the state of the bound property and copy it to both accus + saveOriginalState() { + const binding = this.binding; + const buffer = this.buffer, stride = this.valueSize, originalValueOffset = stride * this._origIndex; + binding.getValue(buffer, originalValueOffset); + for (let i = stride, e = originalValueOffset; i !== e; ++i) { + buffer[i] = buffer[originalValueOffset + i % stride]; + } + this._setIdentity(); + this.cumulativeWeight = 0; + this.cumulativeWeightAdditive = 0; + } + // apply the state previously taken via 'saveOriginalState' to the binding + restoreOriginalState() { + const originalValueOffset = this.valueSize * 3; + this.binding.setValue(this.buffer, originalValueOffset); + } + _setAdditiveIdentityNumeric() { + const startIndex = this._addIndex * this.valueSize; + const endIndex = startIndex + this.valueSize; + for (let i = startIndex; i < endIndex; i++) { + this.buffer[i] = 0; + } + } + _setAdditiveIdentityQuaternion() { + this._setAdditiveIdentityNumeric(); + this.buffer[this._addIndex * this.valueSize + 3] = 1; + } + _setAdditiveIdentityOther() { + const startIndex = this._origIndex * this.valueSize; + const targetIndex = this._addIndex * this.valueSize; + for (let i = 0; i < this.valueSize; i++) { + this.buffer[targetIndex + i] = this.buffer[startIndex + i]; + } + } + // mix functions + _select(buffer, dstOffset, srcOffset, t2, stride) { + if (t2 >= 0.5) { + for (let i = 0; i !== stride; ++i) { + buffer[dstOffset + i] = buffer[srcOffset + i]; + } + } + } + _slerp(buffer, dstOffset, srcOffset, t2) { + Quaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, srcOffset, t2); + } + _slerpAdditive(buffer, dstOffset, srcOffset, t2, stride) { + const workOffset = this._workIndex * stride; + Quaternion.multiplyQuaternionsFlat(buffer, workOffset, buffer, dstOffset, buffer, srcOffset); + Quaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, workOffset, t2); + } + _lerp(buffer, dstOffset, srcOffset, t2, stride) { + const s = 1 - t2; + for (let i = 0; i !== stride; ++i) { + const j = dstOffset + i; + buffer[j] = buffer[j] * s + buffer[srcOffset + i] * t2; + } + } + _lerpAdditive(buffer, dstOffset, srcOffset, t2, stride) { + for (let i = 0; i !== stride; ++i) { + const j = dstOffset + i; + buffer[j] = buffer[j] + buffer[srcOffset + i] * t2; + } + } +} +const _RESERVED_CHARS_RE = "\\[\\]\\.:\\/"; +const _reservedRe = new RegExp("[" + _RESERVED_CHARS_RE + "]", "g"); +const _wordChar = "[^" + _RESERVED_CHARS_RE + "]"; +const _wordCharOrDot = "[^" + _RESERVED_CHARS_RE.replace("\\.", "") + "]"; +const _directoryRe = /* @__PURE__ */ /((?:WC+[\/:])*)/.source.replace("WC", _wordChar); +const _nodeRe = /* @__PURE__ */ /(WCOD+)?/.source.replace("WCOD", _wordCharOrDot); +const _objectRe = /* @__PURE__ */ /(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC", _wordChar); +const _propertyRe = /* @__PURE__ */ /\.(WC+)(?:\[(.+)\])?/.source.replace("WC", _wordChar); +const _trackRe = new RegExp( + "^" + _directoryRe + _nodeRe + _objectRe + _propertyRe + "$" +); +const _supportedObjectNames = ["material", "materials", "bones", "map"]; +class Composite { + static { + __name(this, "Composite"); + } + constructor(targetGroup, path, optionalParsedPath) { + const parsedPath = optionalParsedPath || PropertyBinding.parseTrackName(path); + this._targetGroup = targetGroup; + this._bindings = targetGroup.subscribe_(path, parsedPath); + } + getValue(array, offset) { + this.bind(); + const firstValidIndex = this._targetGroup.nCachedObjects_, binding = this._bindings[firstValidIndex]; + if (binding !== void 0) binding.getValue(array, offset); + } + setValue(array, offset) { + const bindings = this._bindings; + for (let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) { + bindings[i].setValue(array, offset); + } + } + bind() { + const bindings = this._bindings; + for (let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) { + bindings[i].bind(); + } + } + unbind() { + const bindings = this._bindings; + for (let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) { + bindings[i].unbind(); + } + } +} +class PropertyBinding { + static { + __name(this, "PropertyBinding"); + } + constructor(rootNode, path, parsedPath) { + this.path = path; + this.parsedPath = parsedPath || PropertyBinding.parseTrackName(path); + this.node = PropertyBinding.findNode(rootNode, this.parsedPath.nodeName); + this.rootNode = rootNode; + this.getValue = this._getValue_unbound; + this.setValue = this._setValue_unbound; + } + static create(root, path, parsedPath) { + if (!(root && root.isAnimationObjectGroup)) { + return new PropertyBinding(root, path, parsedPath); + } else { + return new PropertyBinding.Composite(root, path, parsedPath); + } + } + /** + * Replaces spaces with underscores and removes unsupported characters from + * node names, to ensure compatibility with parseTrackName(). + * + * @param {string} name Node name to be sanitized. + * @return {string} + */ + static sanitizeNodeName(name) { + return name.replace(/\s/g, "_").replace(_reservedRe, ""); + } + static parseTrackName(trackName) { + const matches = _trackRe.exec(trackName); + if (matches === null) { + throw new Error("PropertyBinding: Cannot parse trackName: " + trackName); + } + const results = { + // directoryName: matches[ 1 ], // (tschw) currently unused + nodeName: matches[2], + objectName: matches[3], + objectIndex: matches[4], + propertyName: matches[5], + // required + propertyIndex: matches[6] + }; + const lastDot = results.nodeName && results.nodeName.lastIndexOf("."); + if (lastDot !== void 0 && lastDot !== -1) { + const objectName = results.nodeName.substring(lastDot + 1); + if (_supportedObjectNames.indexOf(objectName) !== -1) { + results.nodeName = results.nodeName.substring(0, lastDot); + results.objectName = objectName; + } + } + if (results.propertyName === null || results.propertyName.length === 0) { + throw new Error("PropertyBinding: can not parse propertyName from trackName: " + trackName); + } + return results; + } + static findNode(root, nodeName) { + if (nodeName === void 0 || nodeName === "" || nodeName === "." || nodeName === -1 || nodeName === root.name || nodeName === root.uuid) { + return root; + } + if (root.skeleton) { + const bone = root.skeleton.getBoneByName(nodeName); + if (bone !== void 0) { + return bone; + } + } + if (root.children) { + const searchNodeSubtree = /* @__PURE__ */ __name(function(children) { + for (let i = 0; i < children.length; i++) { + const childNode = children[i]; + if (childNode.name === nodeName || childNode.uuid === nodeName) { + return childNode; + } + const result = searchNodeSubtree(childNode.children); + if (result) return result; + } + return null; + }, "searchNodeSubtree"); + const subTreeNode = searchNodeSubtree(root.children); + if (subTreeNode) { + return subTreeNode; + } + } + return null; + } + // these are used to "bind" a nonexistent property + _getValue_unavailable() { + } + _setValue_unavailable() { + } + // Getters + _getValue_direct(buffer, offset) { + buffer[offset] = this.targetObject[this.propertyName]; + } + _getValue_array(buffer, offset) { + const source = this.resolvedProperty; + for (let i = 0, n = source.length; i !== n; ++i) { + buffer[offset++] = source[i]; + } + } + _getValue_arrayElement(buffer, offset) { + buffer[offset] = this.resolvedProperty[this.propertyIndex]; + } + _getValue_toArray(buffer, offset) { + this.resolvedProperty.toArray(buffer, offset); + } + // Direct + _setValue_direct(buffer, offset) { + this.targetObject[this.propertyName] = buffer[offset]; + } + _setValue_direct_setNeedsUpdate(buffer, offset) { + this.targetObject[this.propertyName] = buffer[offset]; + this.targetObject.needsUpdate = true; + } + _setValue_direct_setMatrixWorldNeedsUpdate(buffer, offset) { + this.targetObject[this.propertyName] = buffer[offset]; + this.targetObject.matrixWorldNeedsUpdate = true; + } + // EntireArray + _setValue_array(buffer, offset) { + const dest = this.resolvedProperty; + for (let i = 0, n = dest.length; i !== n; ++i) { + dest[i] = buffer[offset++]; + } + } + _setValue_array_setNeedsUpdate(buffer, offset) { + const dest = this.resolvedProperty; + for (let i = 0, n = dest.length; i !== n; ++i) { + dest[i] = buffer[offset++]; + } + this.targetObject.needsUpdate = true; + } + _setValue_array_setMatrixWorldNeedsUpdate(buffer, offset) { + const dest = this.resolvedProperty; + for (let i = 0, n = dest.length; i !== n; ++i) { + dest[i] = buffer[offset++]; + } + this.targetObject.matrixWorldNeedsUpdate = true; + } + // ArrayElement + _setValue_arrayElement(buffer, offset) { + this.resolvedProperty[this.propertyIndex] = buffer[offset]; + } + _setValue_arrayElement_setNeedsUpdate(buffer, offset) { + this.resolvedProperty[this.propertyIndex] = buffer[offset]; + this.targetObject.needsUpdate = true; + } + _setValue_arrayElement_setMatrixWorldNeedsUpdate(buffer, offset) { + this.resolvedProperty[this.propertyIndex] = buffer[offset]; + this.targetObject.matrixWorldNeedsUpdate = true; + } + // HasToFromArray + _setValue_fromArray(buffer, offset) { + this.resolvedProperty.fromArray(buffer, offset); + } + _setValue_fromArray_setNeedsUpdate(buffer, offset) { + this.resolvedProperty.fromArray(buffer, offset); + this.targetObject.needsUpdate = true; + } + _setValue_fromArray_setMatrixWorldNeedsUpdate(buffer, offset) { + this.resolvedProperty.fromArray(buffer, offset); + this.targetObject.matrixWorldNeedsUpdate = true; + } + _getValue_unbound(targetArray, offset) { + this.bind(); + this.getValue(targetArray, offset); + } + _setValue_unbound(sourceArray, offset) { + this.bind(); + this.setValue(sourceArray, offset); + } + // create getter / setter pair for a property in the scene graph + bind() { + let targetObject = this.node; + const parsedPath = this.parsedPath; + const objectName = parsedPath.objectName; + const propertyName = parsedPath.propertyName; + let propertyIndex = parsedPath.propertyIndex; + if (!targetObject) { + targetObject = PropertyBinding.findNode(this.rootNode, parsedPath.nodeName); + this.node = targetObject; + } + this.getValue = this._getValue_unavailable; + this.setValue = this._setValue_unavailable; + if (!targetObject) { + console.warn("THREE.PropertyBinding: No target node found for track: " + this.path + "."); + return; + } + if (objectName) { + let objectIndex = parsedPath.objectIndex; + switch (objectName) { + case "materials": + if (!targetObject.material) { + console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.", this); + return; + } + if (!targetObject.material.materials) { + console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.", this); + return; + } + targetObject = targetObject.material.materials; + break; + case "bones": + if (!targetObject.skeleton) { + console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.", this); + return; + } + targetObject = targetObject.skeleton.bones; + for (let i = 0; i < targetObject.length; i++) { + if (targetObject[i].name === objectIndex) { + objectIndex = i; + break; + } + } + break; + case "map": + if ("map" in targetObject) { + targetObject = targetObject.map; + break; + } + if (!targetObject.material) { + console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.", this); + return; + } + if (!targetObject.material.map) { + console.error("THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.", this); + return; + } + targetObject = targetObject.material.map; + break; + default: + if (targetObject[objectName] === void 0) { + console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.", this); + return; + } + targetObject = targetObject[objectName]; + } + if (objectIndex !== void 0) { + if (targetObject[objectIndex] === void 0) { + console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.", this, targetObject); + return; + } + targetObject = targetObject[objectIndex]; + } + } + const nodeProperty = targetObject[propertyName]; + if (nodeProperty === void 0) { + const nodeName = parsedPath.nodeName; + console.error("THREE.PropertyBinding: Trying to update property for track: " + nodeName + "." + propertyName + " but it wasn't found.", targetObject); + return; + } + let versioning = this.Versioning.None; + this.targetObject = targetObject; + if (targetObject.needsUpdate !== void 0) { + versioning = this.Versioning.NeedsUpdate; + } else if (targetObject.matrixWorldNeedsUpdate !== void 0) { + versioning = this.Versioning.MatrixWorldNeedsUpdate; + } + let bindingType = this.BindingType.Direct; + if (propertyIndex !== void 0) { + if (propertyName === "morphTargetInfluences") { + if (!targetObject.geometry) { + console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.", this); + return; + } + if (!targetObject.geometry.morphAttributes) { + console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.", this); + return; + } + if (targetObject.morphTargetDictionary[propertyIndex] !== void 0) { + propertyIndex = targetObject.morphTargetDictionary[propertyIndex]; + } + } + bindingType = this.BindingType.ArrayElement; + this.resolvedProperty = nodeProperty; + this.propertyIndex = propertyIndex; + } else if (nodeProperty.fromArray !== void 0 && nodeProperty.toArray !== void 0) { + bindingType = this.BindingType.HasFromToArray; + this.resolvedProperty = nodeProperty; + } else if (Array.isArray(nodeProperty)) { + bindingType = this.BindingType.EntireArray; + this.resolvedProperty = nodeProperty; + } else { + this.propertyName = propertyName; + } + this.getValue = this.GetterByBindingType[bindingType]; + this.setValue = this.SetterByBindingTypeAndVersioning[bindingType][versioning]; + } + unbind() { + this.node = null; + this.getValue = this._getValue_unbound; + this.setValue = this._setValue_unbound; + } +} +PropertyBinding.Composite = Composite; +PropertyBinding.prototype.BindingType = { + Direct: 0, + EntireArray: 1, + ArrayElement: 2, + HasFromToArray: 3 +}; +PropertyBinding.prototype.Versioning = { + None: 0, + NeedsUpdate: 1, + MatrixWorldNeedsUpdate: 2 +}; +PropertyBinding.prototype.GetterByBindingType = [ + PropertyBinding.prototype._getValue_direct, + PropertyBinding.prototype._getValue_array, + PropertyBinding.prototype._getValue_arrayElement, + PropertyBinding.prototype._getValue_toArray +]; +PropertyBinding.prototype.SetterByBindingTypeAndVersioning = [ + [ + // Direct + PropertyBinding.prototype._setValue_direct, + PropertyBinding.prototype._setValue_direct_setNeedsUpdate, + PropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate + ], + [ + // EntireArray + PropertyBinding.prototype._setValue_array, + PropertyBinding.prototype._setValue_array_setNeedsUpdate, + PropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate + ], + [ + // ArrayElement + PropertyBinding.prototype._setValue_arrayElement, + PropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate, + PropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate + ], + [ + // HasToFromArray + PropertyBinding.prototype._setValue_fromArray, + PropertyBinding.prototype._setValue_fromArray_setNeedsUpdate, + PropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate + ] +]; +class AnimationObjectGroup { + static { + __name(this, "AnimationObjectGroup"); + } + constructor() { + this.isAnimationObjectGroup = true; + this.uuid = generateUUID(); + this._objects = Array.prototype.slice.call(arguments); + this.nCachedObjects_ = 0; + const indices = {}; + this._indicesByUUID = indices; + for (let i = 0, n = arguments.length; i !== n; ++i) { + indices[arguments[i].uuid] = i; + } + this._paths = []; + this._parsedPaths = []; + this._bindings = []; + this._bindingsIndicesByPath = {}; + const scope = this; + this.stats = { + objects: { + get total() { + return scope._objects.length; + }, + get inUse() { + return this.total - scope.nCachedObjects_; + } + }, + get bindingsPerObject() { + return scope._bindings.length; + } + }; + } + add() { + const objects = this._objects, indicesByUUID = this._indicesByUUID, paths = this._paths, parsedPaths = this._parsedPaths, bindings = this._bindings, nBindings = bindings.length; + let knownObject = void 0, nObjects = objects.length, nCachedObjects = this.nCachedObjects_; + for (let i = 0, n = arguments.length; i !== n; ++i) { + const object = arguments[i], uuid = object.uuid; + let index = indicesByUUID[uuid]; + if (index === void 0) { + index = nObjects++; + indicesByUUID[uuid] = index; + objects.push(object); + for (let j = 0, m = nBindings; j !== m; ++j) { + bindings[j].push(new PropertyBinding(object, paths[j], parsedPaths[j])); + } + } else if (index < nCachedObjects) { + knownObject = objects[index]; + const firstActiveIndex = --nCachedObjects, lastCachedObject = objects[firstActiveIndex]; + indicesByUUID[lastCachedObject.uuid] = index; + objects[index] = lastCachedObject; + indicesByUUID[uuid] = firstActiveIndex; + objects[firstActiveIndex] = object; + for (let j = 0, m = nBindings; j !== m; ++j) { + const bindingsForPath = bindings[j], lastCached = bindingsForPath[firstActiveIndex]; + let binding = bindingsForPath[index]; + bindingsForPath[index] = lastCached; + if (binding === void 0) { + binding = new PropertyBinding(object, paths[j], parsedPaths[j]); + } + bindingsForPath[firstActiveIndex] = binding; + } + } else if (objects[index] !== knownObject) { + console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes."); + } + } + this.nCachedObjects_ = nCachedObjects; + } + remove() { + const objects = this._objects, indicesByUUID = this._indicesByUUID, bindings = this._bindings, nBindings = bindings.length; + let nCachedObjects = this.nCachedObjects_; + for (let i = 0, n = arguments.length; i !== n; ++i) { + const object = arguments[i], uuid = object.uuid, index = indicesByUUID[uuid]; + if (index !== void 0 && index >= nCachedObjects) { + const lastCachedIndex = nCachedObjects++, firstActiveObject = objects[lastCachedIndex]; + indicesByUUID[firstActiveObject.uuid] = index; + objects[index] = firstActiveObject; + indicesByUUID[uuid] = lastCachedIndex; + objects[lastCachedIndex] = object; + for (let j = 0, m = nBindings; j !== m; ++j) { + const bindingsForPath = bindings[j], firstActive = bindingsForPath[lastCachedIndex], binding = bindingsForPath[index]; + bindingsForPath[index] = firstActive; + bindingsForPath[lastCachedIndex] = binding; + } + } + } + this.nCachedObjects_ = nCachedObjects; + } + // remove & forget + uncache() { + const objects = this._objects, indicesByUUID = this._indicesByUUID, bindings = this._bindings, nBindings = bindings.length; + let nCachedObjects = this.nCachedObjects_, nObjects = objects.length; + for (let i = 0, n = arguments.length; i !== n; ++i) { + const object = arguments[i], uuid = object.uuid, index = indicesByUUID[uuid]; + if (index !== void 0) { + delete indicesByUUID[uuid]; + if (index < nCachedObjects) { + const firstActiveIndex = --nCachedObjects, lastCachedObject = objects[firstActiveIndex], lastIndex = --nObjects, lastObject = objects[lastIndex]; + indicesByUUID[lastCachedObject.uuid] = index; + objects[index] = lastCachedObject; + indicesByUUID[lastObject.uuid] = firstActiveIndex; + objects[firstActiveIndex] = lastObject; + objects.pop(); + for (let j = 0, m = nBindings; j !== m; ++j) { + const bindingsForPath = bindings[j], lastCached = bindingsForPath[firstActiveIndex], last = bindingsForPath[lastIndex]; + bindingsForPath[index] = lastCached; + bindingsForPath[firstActiveIndex] = last; + bindingsForPath.pop(); + } + } else { + const lastIndex = --nObjects, lastObject = objects[lastIndex]; + if (lastIndex > 0) { + indicesByUUID[lastObject.uuid] = index; + } + objects[index] = lastObject; + objects.pop(); + for (let j = 0, m = nBindings; j !== m; ++j) { + const bindingsForPath = bindings[j]; + bindingsForPath[index] = bindingsForPath[lastIndex]; + bindingsForPath.pop(); + } + } + } + } + this.nCachedObjects_ = nCachedObjects; + } + // Internal interface used by befriended PropertyBinding.Composite: + subscribe_(path, parsedPath) { + const indicesByPath = this._bindingsIndicesByPath; + let index = indicesByPath[path]; + const bindings = this._bindings; + if (index !== void 0) return bindings[index]; + const paths = this._paths, parsedPaths = this._parsedPaths, objects = this._objects, nObjects = objects.length, nCachedObjects = this.nCachedObjects_, bindingsForPath = new Array(nObjects); + index = bindings.length; + indicesByPath[path] = index; + paths.push(path); + parsedPaths.push(parsedPath); + bindings.push(bindingsForPath); + for (let i = nCachedObjects, n = objects.length; i !== n; ++i) { + const object = objects[i]; + bindingsForPath[i] = new PropertyBinding(object, path, parsedPath); + } + return bindingsForPath; + } + unsubscribe_(path) { + const indicesByPath = this._bindingsIndicesByPath, index = indicesByPath[path]; + if (index !== void 0) { + const paths = this._paths, parsedPaths = this._parsedPaths, bindings = this._bindings, lastBindingsIndex = bindings.length - 1, lastBindings = bindings[lastBindingsIndex], lastBindingsPath = path[lastBindingsIndex]; + indicesByPath[lastBindingsPath] = index; + bindings[index] = lastBindings; + bindings.pop(); + parsedPaths[index] = parsedPaths[lastBindingsIndex]; + parsedPaths.pop(); + paths[index] = paths[lastBindingsIndex]; + paths.pop(); + } + } +} +class AnimationAction { + static { + __name(this, "AnimationAction"); + } + constructor(mixer, clip, localRoot = null, blendMode = clip.blendMode) { + this._mixer = mixer; + this._clip = clip; + this._localRoot = localRoot; + this.blendMode = blendMode; + const tracks = clip.tracks, nTracks = tracks.length, interpolants = new Array(nTracks); + const interpolantSettings = { + endingStart: ZeroCurvatureEnding, + endingEnd: ZeroCurvatureEnding + }; + for (let i = 0; i !== nTracks; ++i) { + const interpolant = tracks[i].createInterpolant(null); + interpolants[i] = interpolant; + interpolant.settings = interpolantSettings; + } + this._interpolantSettings = interpolantSettings; + this._interpolants = interpolants; + this._propertyBindings = new Array(nTracks); + this._cacheIndex = null; + this._byClipCacheIndex = null; + this._timeScaleInterpolant = null; + this._weightInterpolant = null; + this.loop = LoopRepeat; + this._loopCount = -1; + this._startTime = null; + this.time = 0; + this.timeScale = 1; + this._effectiveTimeScale = 1; + this.weight = 1; + this._effectiveWeight = 1; + this.repetitions = Infinity; + this.paused = false; + this.enabled = true; + this.clampWhenFinished = false; + this.zeroSlopeAtStart = true; + this.zeroSlopeAtEnd = true; + } + // State & Scheduling + play() { + this._mixer._activateAction(this); + return this; + } + stop() { + this._mixer._deactivateAction(this); + return this.reset(); + } + reset() { + this.paused = false; + this.enabled = true; + this.time = 0; + this._loopCount = -1; + this._startTime = null; + return this.stopFading().stopWarping(); + } + isRunning() { + return this.enabled && !this.paused && this.timeScale !== 0 && this._startTime === null && this._mixer._isActiveAction(this); + } + // return true when play has been called + isScheduled() { + return this._mixer._isActiveAction(this); + } + startAt(time) { + this._startTime = time; + return this; + } + setLoop(mode, repetitions) { + this.loop = mode; + this.repetitions = repetitions; + return this; + } + // Weight + // set the weight stopping any scheduled fading + // although .enabled = false yields an effective weight of zero, this + // method does *not* change .enabled, because it would be confusing + setEffectiveWeight(weight) { + this.weight = weight; + this._effectiveWeight = this.enabled ? weight : 0; + return this.stopFading(); + } + // return the weight considering fading and .enabled + getEffectiveWeight() { + return this._effectiveWeight; + } + fadeIn(duration) { + return this._scheduleFading(duration, 0, 1); + } + fadeOut(duration) { + return this._scheduleFading(duration, 1, 0); + } + crossFadeFrom(fadeOutAction, duration, warp) { + fadeOutAction.fadeOut(duration); + this.fadeIn(duration); + if (warp) { + const fadeInDuration = this._clip.duration, fadeOutDuration = fadeOutAction._clip.duration, startEndRatio = fadeOutDuration / fadeInDuration, endStartRatio = fadeInDuration / fadeOutDuration; + fadeOutAction.warp(1, startEndRatio, duration); + this.warp(endStartRatio, 1, duration); + } + return this; + } + crossFadeTo(fadeInAction, duration, warp) { + return fadeInAction.crossFadeFrom(this, duration, warp); + } + stopFading() { + const weightInterpolant = this._weightInterpolant; + if (weightInterpolant !== null) { + this._weightInterpolant = null; + this._mixer._takeBackControlInterpolant(weightInterpolant); + } + return this; + } + // Time Scale Control + // set the time scale stopping any scheduled warping + // although .paused = true yields an effective time scale of zero, this + // method does *not* change .paused, because it would be confusing + setEffectiveTimeScale(timeScale) { + this.timeScale = timeScale; + this._effectiveTimeScale = this.paused ? 0 : timeScale; + return this.stopWarping(); + } + // return the time scale considering warping and .paused + getEffectiveTimeScale() { + return this._effectiveTimeScale; + } + setDuration(duration) { + this.timeScale = this._clip.duration / duration; + return this.stopWarping(); + } + syncWith(action) { + this.time = action.time; + this.timeScale = action.timeScale; + return this.stopWarping(); + } + halt(duration) { + return this.warp(this._effectiveTimeScale, 0, duration); + } + warp(startTimeScale, endTimeScale, duration) { + const mixer = this._mixer, now2 = mixer.time, timeScale = this.timeScale; + let interpolant = this._timeScaleInterpolant; + if (interpolant === null) { + interpolant = mixer._lendControlInterpolant(); + this._timeScaleInterpolant = interpolant; + } + const times = interpolant.parameterPositions, values = interpolant.sampleValues; + times[0] = now2; + times[1] = now2 + duration; + values[0] = startTimeScale / timeScale; + values[1] = endTimeScale / timeScale; + return this; + } + stopWarping() { + const timeScaleInterpolant = this._timeScaleInterpolant; + if (timeScaleInterpolant !== null) { + this._timeScaleInterpolant = null; + this._mixer._takeBackControlInterpolant(timeScaleInterpolant); + } + return this; + } + // Object Accessors + getMixer() { + return this._mixer; + } + getClip() { + return this._clip; + } + getRoot() { + return this._localRoot || this._mixer._root; + } + // Interna + _update(time, deltaTime, timeDirection, accuIndex) { + if (!this.enabled) { + this._updateWeight(time); + return; + } + const startTime = this._startTime; + if (startTime !== null) { + const timeRunning = (time - startTime) * timeDirection; + if (timeRunning < 0 || timeDirection === 0) { + deltaTime = 0; + } else { + this._startTime = null; + deltaTime = timeDirection * timeRunning; + } + } + deltaTime *= this._updateTimeScale(time); + const clipTime = this._updateTime(deltaTime); + const weight = this._updateWeight(time); + if (weight > 0) { + const interpolants = this._interpolants; + const propertyMixers = this._propertyBindings; + switch (this.blendMode) { + case AdditiveAnimationBlendMode: + for (let j = 0, m = interpolants.length; j !== m; ++j) { + interpolants[j].evaluate(clipTime); + propertyMixers[j].accumulateAdditive(weight); + } + break; + case NormalAnimationBlendMode: + default: + for (let j = 0, m = interpolants.length; j !== m; ++j) { + interpolants[j].evaluate(clipTime); + propertyMixers[j].accumulate(accuIndex, weight); + } + } + } + } + _updateWeight(time) { + let weight = 0; + if (this.enabled) { + weight = this.weight; + const interpolant = this._weightInterpolant; + if (interpolant !== null) { + const interpolantValue = interpolant.evaluate(time)[0]; + weight *= interpolantValue; + if (time > interpolant.parameterPositions[1]) { + this.stopFading(); + if (interpolantValue === 0) { + this.enabled = false; + } + } + } + } + this._effectiveWeight = weight; + return weight; + } + _updateTimeScale(time) { + let timeScale = 0; + if (!this.paused) { + timeScale = this.timeScale; + const interpolant = this._timeScaleInterpolant; + if (interpolant !== null) { + const interpolantValue = interpolant.evaluate(time)[0]; + timeScale *= interpolantValue; + if (time > interpolant.parameterPositions[1]) { + this.stopWarping(); + if (timeScale === 0) { + this.paused = true; + } else { + this.timeScale = timeScale; + } + } + } + } + this._effectiveTimeScale = timeScale; + return timeScale; + } + _updateTime(deltaTime) { + const duration = this._clip.duration; + const loop = this.loop; + let time = this.time + deltaTime; + let loopCount = this._loopCount; + const pingPong = loop === LoopPingPong; + if (deltaTime === 0) { + if (loopCount === -1) return time; + return pingPong && (loopCount & 1) === 1 ? duration - time : time; + } + if (loop === LoopOnce) { + if (loopCount === -1) { + this._loopCount = 0; + this._setEndings(true, true, false); + } + handle_stop: { + if (time >= duration) { + time = duration; + } else if (time < 0) { + time = 0; + } else { + this.time = time; + break handle_stop; + } + if (this.clampWhenFinished) this.paused = true; + else this.enabled = false; + this.time = time; + this._mixer.dispatchEvent({ + type: "finished", + action: this, + direction: deltaTime < 0 ? -1 : 1 + }); + } + } else { + if (loopCount === -1) { + if (deltaTime >= 0) { + loopCount = 0; + this._setEndings(true, this.repetitions === 0, pingPong); + } else { + this._setEndings(this.repetitions === 0, true, pingPong); + } + } + if (time >= duration || time < 0) { + const loopDelta = Math.floor(time / duration); + time -= duration * loopDelta; + loopCount += Math.abs(loopDelta); + const pending = this.repetitions - loopCount; + if (pending <= 0) { + if (this.clampWhenFinished) this.paused = true; + else this.enabled = false; + time = deltaTime > 0 ? duration : 0; + this.time = time; + this._mixer.dispatchEvent({ + type: "finished", + action: this, + direction: deltaTime > 0 ? 1 : -1 + }); + } else { + if (pending === 1) { + const atStart = deltaTime < 0; + this._setEndings(atStart, !atStart, pingPong); + } else { + this._setEndings(false, false, pingPong); + } + this._loopCount = loopCount; + this.time = time; + this._mixer.dispatchEvent({ + type: "loop", + action: this, + loopDelta + }); + } + } else { + this.time = time; + } + if (pingPong && (loopCount & 1) === 1) { + return duration - time; + } + } + return time; + } + _setEndings(atStart, atEnd, pingPong) { + const settings = this._interpolantSettings; + if (pingPong) { + settings.endingStart = ZeroSlopeEnding; + settings.endingEnd = ZeroSlopeEnding; + } else { + if (atStart) { + settings.endingStart = this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding; + } else { + settings.endingStart = WrapAroundEnding; + } + if (atEnd) { + settings.endingEnd = this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding; + } else { + settings.endingEnd = WrapAroundEnding; + } + } + } + _scheduleFading(duration, weightNow, weightThen) { + const mixer = this._mixer, now2 = mixer.time; + let interpolant = this._weightInterpolant; + if (interpolant === null) { + interpolant = mixer._lendControlInterpolant(); + this._weightInterpolant = interpolant; + } + const times = interpolant.parameterPositions, values = interpolant.sampleValues; + times[0] = now2; + values[0] = weightNow; + times[1] = now2 + duration; + values[1] = weightThen; + return this; + } +} +const _controlInterpolantsResultBuffer = new Float32Array(1); +class AnimationMixer extends EventDispatcher { + static { + __name(this, "AnimationMixer"); + } + constructor(root) { + super(); + this._root = root; + this._initMemoryManager(); + this._accuIndex = 0; + this.time = 0; + this.timeScale = 1; + } + _bindAction(action, prototypeAction) { + const root = action._localRoot || this._root, tracks = action._clip.tracks, nTracks = tracks.length, bindings = action._propertyBindings, interpolants = action._interpolants, rootUuid = root.uuid, bindingsByRoot = this._bindingsByRootAndName; + let bindingsByName = bindingsByRoot[rootUuid]; + if (bindingsByName === void 0) { + bindingsByName = {}; + bindingsByRoot[rootUuid] = bindingsByName; + } + for (let i = 0; i !== nTracks; ++i) { + const track = tracks[i], trackName = track.name; + let binding = bindingsByName[trackName]; + if (binding !== void 0) { + ++binding.referenceCount; + bindings[i] = binding; + } else { + binding = bindings[i]; + if (binding !== void 0) { + if (binding._cacheIndex === null) { + ++binding.referenceCount; + this._addInactiveBinding(binding, rootUuid, trackName); + } + continue; + } + const path = prototypeAction && prototypeAction._propertyBindings[i].binding.parsedPath; + binding = new PropertyMixer( + PropertyBinding.create(root, trackName, path), + track.ValueTypeName, + track.getValueSize() + ); + ++binding.referenceCount; + this._addInactiveBinding(binding, rootUuid, trackName); + bindings[i] = binding; + } + interpolants[i].resultBuffer = binding.buffer; + } + } + _activateAction(action) { + if (!this._isActiveAction(action)) { + if (action._cacheIndex === null) { + const rootUuid = (action._localRoot || this._root).uuid, clipUuid = action._clip.uuid, actionsForClip = this._actionsByClip[clipUuid]; + this._bindAction( + action, + actionsForClip && actionsForClip.knownActions[0] + ); + this._addInactiveAction(action, clipUuid, rootUuid); + } + const bindings = action._propertyBindings; + for (let i = 0, n = bindings.length; i !== n; ++i) { + const binding = bindings[i]; + if (binding.useCount++ === 0) { + this._lendBinding(binding); + binding.saveOriginalState(); + } + } + this._lendAction(action); + } + } + _deactivateAction(action) { + if (this._isActiveAction(action)) { + const bindings = action._propertyBindings; + for (let i = 0, n = bindings.length; i !== n; ++i) { + const binding = bindings[i]; + if (--binding.useCount === 0) { + binding.restoreOriginalState(); + this._takeBackBinding(binding); + } + } + this._takeBackAction(action); + } + } + // Memory manager + _initMemoryManager() { + this._actions = []; + this._nActiveActions = 0; + this._actionsByClip = {}; + this._bindings = []; + this._nActiveBindings = 0; + this._bindingsByRootAndName = {}; + this._controlInterpolants = []; + this._nActiveControlInterpolants = 0; + const scope = this; + this.stats = { + actions: { + get total() { + return scope._actions.length; + }, + get inUse() { + return scope._nActiveActions; + } + }, + bindings: { + get total() { + return scope._bindings.length; + }, + get inUse() { + return scope._nActiveBindings; + } + }, + controlInterpolants: { + get total() { + return scope._controlInterpolants.length; + }, + get inUse() { + return scope._nActiveControlInterpolants; + } + } + }; + } + // Memory management for AnimationAction objects + _isActiveAction(action) { + const index = action._cacheIndex; + return index !== null && index < this._nActiveActions; + } + _addInactiveAction(action, clipUuid, rootUuid) { + const actions = this._actions, actionsByClip = this._actionsByClip; + let actionsForClip = actionsByClip[clipUuid]; + if (actionsForClip === void 0) { + actionsForClip = { + knownActions: [action], + actionByRoot: {} + }; + action._byClipCacheIndex = 0; + actionsByClip[clipUuid] = actionsForClip; + } else { + const knownActions = actionsForClip.knownActions; + action._byClipCacheIndex = knownActions.length; + knownActions.push(action); + } + action._cacheIndex = actions.length; + actions.push(action); + actionsForClip.actionByRoot[rootUuid] = action; + } + _removeInactiveAction(action) { + const actions = this._actions, lastInactiveAction = actions[actions.length - 1], cacheIndex = action._cacheIndex; + lastInactiveAction._cacheIndex = cacheIndex; + actions[cacheIndex] = lastInactiveAction; + actions.pop(); + action._cacheIndex = null; + const clipUuid = action._clip.uuid, actionsByClip = this._actionsByClip, actionsForClip = actionsByClip[clipUuid], knownActionsForClip = actionsForClip.knownActions, lastKnownAction = knownActionsForClip[knownActionsForClip.length - 1], byClipCacheIndex = action._byClipCacheIndex; + lastKnownAction._byClipCacheIndex = byClipCacheIndex; + knownActionsForClip[byClipCacheIndex] = lastKnownAction; + knownActionsForClip.pop(); + action._byClipCacheIndex = null; + const actionByRoot = actionsForClip.actionByRoot, rootUuid = (action._localRoot || this._root).uuid; + delete actionByRoot[rootUuid]; + if (knownActionsForClip.length === 0) { + delete actionsByClip[clipUuid]; + } + this._removeInactiveBindingsForAction(action); + } + _removeInactiveBindingsForAction(action) { + const bindings = action._propertyBindings; + for (let i = 0, n = bindings.length; i !== n; ++i) { + const binding = bindings[i]; + if (--binding.referenceCount === 0) { + this._removeInactiveBinding(binding); + } + } + } + _lendAction(action) { + const actions = this._actions, prevIndex = action._cacheIndex, lastActiveIndex = this._nActiveActions++, firstInactiveAction = actions[lastActiveIndex]; + action._cacheIndex = lastActiveIndex; + actions[lastActiveIndex] = action; + firstInactiveAction._cacheIndex = prevIndex; + actions[prevIndex] = firstInactiveAction; + } + _takeBackAction(action) { + const actions = this._actions, prevIndex = action._cacheIndex, firstInactiveIndex = --this._nActiveActions, lastActiveAction = actions[firstInactiveIndex]; + action._cacheIndex = firstInactiveIndex; + actions[firstInactiveIndex] = action; + lastActiveAction._cacheIndex = prevIndex; + actions[prevIndex] = lastActiveAction; + } + // Memory management for PropertyMixer objects + _addInactiveBinding(binding, rootUuid, trackName) { + const bindingsByRoot = this._bindingsByRootAndName, bindings = this._bindings; + let bindingByName = bindingsByRoot[rootUuid]; + if (bindingByName === void 0) { + bindingByName = {}; + bindingsByRoot[rootUuid] = bindingByName; + } + bindingByName[trackName] = binding; + binding._cacheIndex = bindings.length; + bindings.push(binding); + } + _removeInactiveBinding(binding) { + const bindings = this._bindings, propBinding = binding.binding, rootUuid = propBinding.rootNode.uuid, trackName = propBinding.path, bindingsByRoot = this._bindingsByRootAndName, bindingByName = bindingsByRoot[rootUuid], lastInactiveBinding = bindings[bindings.length - 1], cacheIndex = binding._cacheIndex; + lastInactiveBinding._cacheIndex = cacheIndex; + bindings[cacheIndex] = lastInactiveBinding; + bindings.pop(); + delete bindingByName[trackName]; + if (Object.keys(bindingByName).length === 0) { + delete bindingsByRoot[rootUuid]; + } + } + _lendBinding(binding) { + const bindings = this._bindings, prevIndex = binding._cacheIndex, lastActiveIndex = this._nActiveBindings++, firstInactiveBinding = bindings[lastActiveIndex]; + binding._cacheIndex = lastActiveIndex; + bindings[lastActiveIndex] = binding; + firstInactiveBinding._cacheIndex = prevIndex; + bindings[prevIndex] = firstInactiveBinding; + } + _takeBackBinding(binding) { + const bindings = this._bindings, prevIndex = binding._cacheIndex, firstInactiveIndex = --this._nActiveBindings, lastActiveBinding = bindings[firstInactiveIndex]; + binding._cacheIndex = firstInactiveIndex; + bindings[firstInactiveIndex] = binding; + lastActiveBinding._cacheIndex = prevIndex; + bindings[prevIndex] = lastActiveBinding; + } + // Memory management of Interpolants for weight and time scale + _lendControlInterpolant() { + const interpolants = this._controlInterpolants, lastActiveIndex = this._nActiveControlInterpolants++; + let interpolant = interpolants[lastActiveIndex]; + if (interpolant === void 0) { + interpolant = new LinearInterpolant( + new Float32Array(2), + new Float32Array(2), + 1, + _controlInterpolantsResultBuffer + ); + interpolant.__cacheIndex = lastActiveIndex; + interpolants[lastActiveIndex] = interpolant; + } + return interpolant; + } + _takeBackControlInterpolant(interpolant) { + const interpolants = this._controlInterpolants, prevIndex = interpolant.__cacheIndex, firstInactiveIndex = --this._nActiveControlInterpolants, lastActiveInterpolant = interpolants[firstInactiveIndex]; + interpolant.__cacheIndex = firstInactiveIndex; + interpolants[firstInactiveIndex] = interpolant; + lastActiveInterpolant.__cacheIndex = prevIndex; + interpolants[prevIndex] = lastActiveInterpolant; + } + // return an action for a clip optionally using a custom root target + // object (this method allocates a lot of dynamic memory in case a + // previously unknown clip/root combination is specified) + clipAction(clip, optionalRoot, blendMode) { + const root = optionalRoot || this._root, rootUuid = root.uuid; + let clipObject = typeof clip === "string" ? AnimationClip.findByName(root, clip) : clip; + const clipUuid = clipObject !== null ? clipObject.uuid : clip; + const actionsForClip = this._actionsByClip[clipUuid]; + let prototypeAction = null; + if (blendMode === void 0) { + if (clipObject !== null) { + blendMode = clipObject.blendMode; + } else { + blendMode = NormalAnimationBlendMode; + } + } + if (actionsForClip !== void 0) { + const existingAction = actionsForClip.actionByRoot[rootUuid]; + if (existingAction !== void 0 && existingAction.blendMode === blendMode) { + return existingAction; + } + prototypeAction = actionsForClip.knownActions[0]; + if (clipObject === null) + clipObject = prototypeAction._clip; + } + if (clipObject === null) return null; + const newAction = new AnimationAction(this, clipObject, optionalRoot, blendMode); + this._bindAction(newAction, prototypeAction); + this._addInactiveAction(newAction, clipUuid, rootUuid); + return newAction; + } + // get an existing action + existingAction(clip, optionalRoot) { + const root = optionalRoot || this._root, rootUuid = root.uuid, clipObject = typeof clip === "string" ? AnimationClip.findByName(root, clip) : clip, clipUuid = clipObject ? clipObject.uuid : clip, actionsForClip = this._actionsByClip[clipUuid]; + if (actionsForClip !== void 0) { + return actionsForClip.actionByRoot[rootUuid] || null; + } + return null; + } + // deactivates all previously scheduled actions + stopAllAction() { + const actions = this._actions, nActions = this._nActiveActions; + for (let i = nActions - 1; i >= 0; --i) { + actions[i].stop(); + } + return this; + } + // advance the time and update apply the animation + update(deltaTime) { + deltaTime *= this.timeScale; + const actions = this._actions, nActions = this._nActiveActions, time = this.time += deltaTime, timeDirection = Math.sign(deltaTime), accuIndex = this._accuIndex ^= 1; + for (let i = 0; i !== nActions; ++i) { + const action = actions[i]; + action._update(time, deltaTime, timeDirection, accuIndex); + } + const bindings = this._bindings, nBindings = this._nActiveBindings; + for (let i = 0; i !== nBindings; ++i) { + bindings[i].apply(accuIndex); + } + return this; + } + // Allows you to seek to a specific time in an animation. + setTime(timeInSeconds) { + this.time = 0; + for (let i = 0; i < this._actions.length; i++) { + this._actions[i].time = 0; + } + return this.update(timeInSeconds); + } + // return this mixer's root target object + getRoot() { + return this._root; + } + // free all resources specific to a particular clip + uncacheClip(clip) { + const actions = this._actions, clipUuid = clip.uuid, actionsByClip = this._actionsByClip, actionsForClip = actionsByClip[clipUuid]; + if (actionsForClip !== void 0) { + const actionsToRemove = actionsForClip.knownActions; + for (let i = 0, n = actionsToRemove.length; i !== n; ++i) { + const action = actionsToRemove[i]; + this._deactivateAction(action); + const cacheIndex = action._cacheIndex, lastInactiveAction = actions[actions.length - 1]; + action._cacheIndex = null; + action._byClipCacheIndex = null; + lastInactiveAction._cacheIndex = cacheIndex; + actions[cacheIndex] = lastInactiveAction; + actions.pop(); + this._removeInactiveBindingsForAction(action); + } + delete actionsByClip[clipUuid]; + } + } + // free all resources specific to a particular root target object + uncacheRoot(root) { + const rootUuid = root.uuid, actionsByClip = this._actionsByClip; + for (const clipUuid in actionsByClip) { + const actionByRoot = actionsByClip[clipUuid].actionByRoot, action = actionByRoot[rootUuid]; + if (action !== void 0) { + this._deactivateAction(action); + this._removeInactiveAction(action); + } + } + const bindingsByRoot = this._bindingsByRootAndName, bindingByName = bindingsByRoot[rootUuid]; + if (bindingByName !== void 0) { + for (const trackName in bindingByName) { + const binding = bindingByName[trackName]; + binding.restoreOriginalState(); + this._removeInactiveBinding(binding); + } + } + } + // remove a targeted clip from the cache + uncacheAction(clip, optionalRoot) { + const action = this.existingAction(clip, optionalRoot); + if (action !== null) { + this._deactivateAction(action); + this._removeInactiveAction(action); + } + } +} +class Uniform { + static { + __name(this, "Uniform"); + } + constructor(value) { + this.value = value; + } + clone() { + return new Uniform(this.value.clone === void 0 ? this.value : this.value.clone()); + } +} +let _id = 0; +class UniformsGroup extends EventDispatcher { + static { + __name(this, "UniformsGroup"); + } + constructor() { + super(); + this.isUniformsGroup = true; + Object.defineProperty(this, "id", { value: _id++ }); + this.name = ""; + this.usage = StaticDrawUsage; + this.uniforms = []; + } + add(uniform) { + this.uniforms.push(uniform); + return this; + } + remove(uniform) { + const index = this.uniforms.indexOf(uniform); + if (index !== -1) this.uniforms.splice(index, 1); + return this; + } + setName(name) { + this.name = name; + return this; + } + setUsage(value) { + this.usage = value; + return this; + } + dispose() { + this.dispatchEvent({ type: "dispose" }); + return this; + } + copy(source) { + this.name = source.name; + this.usage = source.usage; + const uniformsSource = source.uniforms; + this.uniforms.length = 0; + for (let i = 0, l = uniformsSource.length; i < l; i++) { + const uniforms = Array.isArray(uniformsSource[i]) ? uniformsSource[i] : [uniformsSource[i]]; + for (let j = 0; j < uniforms.length; j++) { + this.uniforms.push(uniforms[j].clone()); + } + } + return this; + } + clone() { + return new this.constructor().copy(this); + } +} +class InstancedInterleavedBuffer extends InterleavedBuffer { + static { + __name(this, "InstancedInterleavedBuffer"); + } + constructor(array, stride, meshPerAttribute = 1) { + super(array, stride); + this.isInstancedInterleavedBuffer = true; + this.meshPerAttribute = meshPerAttribute; + } + copy(source) { + super.copy(source); + this.meshPerAttribute = source.meshPerAttribute; + return this; + } + clone(data) { + const ib = super.clone(data); + ib.meshPerAttribute = this.meshPerAttribute; + return ib; + } + toJSON(data) { + const json = super.toJSON(data); + json.isInstancedInterleavedBuffer = true; + json.meshPerAttribute = this.meshPerAttribute; + return json; + } +} +class GLBufferAttribute { + static { + __name(this, "GLBufferAttribute"); + } + constructor(buffer, type, itemSize, elementSize, count) { + this.isGLBufferAttribute = true; + this.name = ""; + this.buffer = buffer; + this.type = type; + this.itemSize = itemSize; + this.elementSize = elementSize; + this.count = count; + this.version = 0; + } + set needsUpdate(value) { + if (value === true) this.version++; + } + setBuffer(buffer) { + this.buffer = buffer; + return this; + } + setType(type, elementSize) { + this.type = type; + this.elementSize = elementSize; + return this; + } + setItemSize(itemSize) { + this.itemSize = itemSize; + return this; + } + setCount(count) { + this.count = count; + return this; + } +} +const _matrix = /* @__PURE__ */ new Matrix4(); +class Raycaster { + static { + __name(this, "Raycaster"); + } + constructor(origin, direction, near = 0, far = Infinity) { + this.ray = new Ray(origin, direction); + this.near = near; + this.far = far; + this.camera = null; + this.layers = new Layers(); + this.params = { + Mesh: {}, + Line: { threshold: 1 }, + LOD: {}, + Points: { threshold: 1 }, + Sprite: {} + }; + } + set(origin, direction) { + this.ray.set(origin, direction); + } + setFromCamera(coords, camera) { + if (camera.isPerspectiveCamera) { + this.ray.origin.setFromMatrixPosition(camera.matrixWorld); + this.ray.direction.set(coords.x, coords.y, 0.5).unproject(camera).sub(this.ray.origin).normalize(); + this.camera = camera; + } else if (camera.isOrthographicCamera) { + this.ray.origin.set(coords.x, coords.y, (camera.near + camera.far) / (camera.near - camera.far)).unproject(camera); + this.ray.direction.set(0, 0, -1).transformDirection(camera.matrixWorld); + this.camera = camera; + } else { + console.error("THREE.Raycaster: Unsupported camera type: " + camera.type); + } + } + setFromXRController(controller) { + _matrix.identity().extractRotation(controller.matrixWorld); + this.ray.origin.setFromMatrixPosition(controller.matrixWorld); + this.ray.direction.set(0, 0, -1).applyMatrix4(_matrix); + return this; + } + intersectObject(object, recursive = true, intersects2 = []) { + intersect(object, this, intersects2, recursive); + intersects2.sort(ascSort); + return intersects2; + } + intersectObjects(objects, recursive = true, intersects2 = []) { + for (let i = 0, l = objects.length; i < l; i++) { + intersect(objects[i], this, intersects2, recursive); + } + intersects2.sort(ascSort); + return intersects2; + } +} +function ascSort(a, b) { + return a.distance - b.distance; +} +__name(ascSort, "ascSort"); +function intersect(object, raycaster, intersects2, recursive) { + let propagate = true; + if (object.layers.test(raycaster.layers)) { + const result = object.raycast(raycaster, intersects2); + if (result === false) propagate = false; + } + if (propagate === true && recursive === true) { + const children = object.children; + for (let i = 0, l = children.length; i < l; i++) { + intersect(children[i], raycaster, intersects2, true); + } + } +} +__name(intersect, "intersect"); +class Spherical { + static { + __name(this, "Spherical"); + } + constructor(radius = 1, phi = 0, theta = 0) { + this.radius = radius; + this.phi = phi; + this.theta = theta; + return this; + } + set(radius, phi, theta) { + this.radius = radius; + this.phi = phi; + this.theta = theta; + return this; + } + copy(other) { + this.radius = other.radius; + this.phi = other.phi; + this.theta = other.theta; + return this; + } + // restrict phi to be between EPS and PI-EPS + makeSafe() { + const EPS = 1e-6; + this.phi = Math.max(EPS, Math.min(Math.PI - EPS, this.phi)); + return this; + } + setFromVector3(v) { + return this.setFromCartesianCoords(v.x, v.y, v.z); + } + setFromCartesianCoords(x, y, z) { + this.radius = Math.sqrt(x * x + y * y + z * z); + if (this.radius === 0) { + this.theta = 0; + this.phi = 0; + } else { + this.theta = Math.atan2(x, z); + this.phi = Math.acos(clamp(y / this.radius, -1, 1)); + } + return this; + } + clone() { + return new this.constructor().copy(this); + } +} +class Cylindrical { + static { + __name(this, "Cylindrical"); + } + constructor(radius = 1, theta = 0, y = 0) { + this.radius = radius; + this.theta = theta; + this.y = y; + return this; + } + set(radius, theta, y) { + this.radius = radius; + this.theta = theta; + this.y = y; + return this; + } + copy(other) { + this.radius = other.radius; + this.theta = other.theta; + this.y = other.y; + return this; + } + setFromVector3(v) { + return this.setFromCartesianCoords(v.x, v.y, v.z); + } + setFromCartesianCoords(x, y, z) { + this.radius = Math.sqrt(x * x + z * z); + this.theta = Math.atan2(x, z); + this.y = y; + return this; + } + clone() { + return new this.constructor().copy(this); + } +} +class Matrix2 { + static { + __name(this, "Matrix2"); + } + constructor(n11, n12, n21, n22) { + Matrix2.prototype.isMatrix2 = true; + this.elements = [ + 1, + 0, + 0, + 1 + ]; + if (n11 !== void 0) { + this.set(n11, n12, n21, n22); + } + } + identity() { + this.set( + 1, + 0, + 0, + 1 + ); + return this; + } + fromArray(array, offset = 0) { + for (let i = 0; i < 4; i++) { + this.elements[i] = array[i + offset]; + } + return this; + } + set(n11, n12, n21, n22) { + const te2 = this.elements; + te2[0] = n11; + te2[2] = n12; + te2[1] = n21; + te2[3] = n22; + return this; + } +} +const _vector$4 = /* @__PURE__ */ new Vector2(); +class Box2 { + static { + __name(this, "Box2"); + } + constructor(min = new Vector2(Infinity, Infinity), max2 = new Vector2(-Infinity, -Infinity)) { + this.isBox2 = true; + this.min = min; + this.max = max2; + } + set(min, max2) { + this.min.copy(min); + this.max.copy(max2); + return this; + } + setFromPoints(points) { + this.makeEmpty(); + for (let i = 0, il = points.length; i < il; i++) { + this.expandByPoint(points[i]); + } + return this; + } + setFromCenterAndSize(center, size) { + const halfSize = _vector$4.copy(size).multiplyScalar(0.5); + this.min.copy(center).sub(halfSize); + this.max.copy(center).add(halfSize); + return this; + } + clone() { + return new this.constructor().copy(this); + } + copy(box) { + this.min.copy(box.min); + this.max.copy(box.max); + return this; + } + makeEmpty() { + this.min.x = this.min.y = Infinity; + this.max.x = this.max.y = -Infinity; + return this; + } + isEmpty() { + return this.max.x < this.min.x || this.max.y < this.min.y; + } + getCenter(target) { + return this.isEmpty() ? target.set(0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5); + } + getSize(target) { + return this.isEmpty() ? target.set(0, 0) : target.subVectors(this.max, this.min); + } + expandByPoint(point) { + this.min.min(point); + this.max.max(point); + return this; + } + expandByVector(vector) { + this.min.sub(vector); + this.max.add(vector); + return this; + } + expandByScalar(scalar) { + this.min.addScalar(-scalar); + this.max.addScalar(scalar); + return this; + } + containsPoint(point) { + return point.x >= this.min.x && point.x <= this.max.x && point.y >= this.min.y && point.y <= this.max.y; + } + containsBox(box) { + return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y; + } + getParameter(point, target) { + return target.set( + (point.x - this.min.x) / (this.max.x - this.min.x), + (point.y - this.min.y) / (this.max.y - this.min.y) + ); + } + intersectsBox(box) { + return box.max.x >= this.min.x && box.min.x <= this.max.x && box.max.y >= this.min.y && box.min.y <= this.max.y; + } + clampPoint(point, target) { + return target.copy(point).clamp(this.min, this.max); + } + distanceToPoint(point) { + return this.clampPoint(point, _vector$4).distanceTo(point); + } + intersect(box) { + this.min.max(box.min); + this.max.min(box.max); + if (this.isEmpty()) this.makeEmpty(); + return this; + } + union(box) { + this.min.min(box.min); + this.max.max(box.max); + return this; + } + translate(offset) { + this.min.add(offset); + this.max.add(offset); + return this; + } + equals(box) { + return box.min.equals(this.min) && box.max.equals(this.max); + } +} +const _startP = /* @__PURE__ */ new Vector3(); +const _startEnd = /* @__PURE__ */ new Vector3(); +class Line3 { + static { + __name(this, "Line3"); + } + constructor(start = new Vector3(), end = new Vector3()) { + this.start = start; + this.end = end; + } + set(start, end) { + this.start.copy(start); + this.end.copy(end); + return this; + } + copy(line) { + this.start.copy(line.start); + this.end.copy(line.end); + return this; + } + getCenter(target) { + return target.addVectors(this.start, this.end).multiplyScalar(0.5); + } + delta(target) { + return target.subVectors(this.end, this.start); + } + distanceSq() { + return this.start.distanceToSquared(this.end); + } + distance() { + return this.start.distanceTo(this.end); + } + at(t2, target) { + return this.delta(target).multiplyScalar(t2).add(this.start); + } + closestPointToPointParameter(point, clampToLine) { + _startP.subVectors(point, this.start); + _startEnd.subVectors(this.end, this.start); + const startEnd2 = _startEnd.dot(_startEnd); + const startEnd_startP = _startEnd.dot(_startP); + let t2 = startEnd_startP / startEnd2; + if (clampToLine) { + t2 = clamp(t2, 0, 1); + } + return t2; + } + closestPointToPoint(point, clampToLine, target) { + const t2 = this.closestPointToPointParameter(point, clampToLine); + return this.delta(target).multiplyScalar(t2).add(this.start); + } + applyMatrix4(matrix) { + this.start.applyMatrix4(matrix); + this.end.applyMatrix4(matrix); + return this; + } + equals(line) { + return line.start.equals(this.start) && line.end.equals(this.end); + } + clone() { + return new this.constructor().copy(this); + } +} +const _vector$3 = /* @__PURE__ */ new Vector3(); +class SpotLightHelper extends Object3D { + static { + __name(this, "SpotLightHelper"); + } + constructor(light, color) { + super(); + this.light = light; + this.matrixAutoUpdate = false; + this.color = color; + this.type = "SpotLightHelper"; + const geometry = new BufferGeometry(); + const positions = [ + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + -1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + -1, + 1 + ]; + for (let i = 0, j = 1, l = 32; i < l; i++, j++) { + const p1 = i / l * Math.PI * 2; + const p2 = j / l * Math.PI * 2; + positions.push( + Math.cos(p1), + Math.sin(p1), + 1, + Math.cos(p2), + Math.sin(p2), + 1 + ); + } + geometry.setAttribute("position", new Float32BufferAttribute(positions, 3)); + const material = new LineBasicMaterial({ fog: false, toneMapped: false }); + this.cone = new LineSegments(geometry, material); + this.add(this.cone); + this.update(); + } + dispose() { + this.cone.geometry.dispose(); + this.cone.material.dispose(); + } + update() { + this.light.updateWorldMatrix(true, false); + this.light.target.updateWorldMatrix(true, false); + if (this.parent) { + this.parent.updateWorldMatrix(true); + this.matrix.copy(this.parent.matrixWorld).invert().multiply(this.light.matrixWorld); + } else { + this.matrix.copy(this.light.matrixWorld); + } + this.matrixWorld.copy(this.light.matrixWorld); + const coneLength = this.light.distance ? this.light.distance : 1e3; + const coneWidth = coneLength * Math.tan(this.light.angle); + this.cone.scale.set(coneWidth, coneWidth, coneLength); + _vector$3.setFromMatrixPosition(this.light.target.matrixWorld); + this.cone.lookAt(_vector$3); + if (this.color !== void 0) { + this.cone.material.color.set(this.color); + } else { + this.cone.material.color.copy(this.light.color); + } + } +} +const _vector$2 = /* @__PURE__ */ new Vector3(); +const _boneMatrix = /* @__PURE__ */ new Matrix4(); +const _matrixWorldInv = /* @__PURE__ */ new Matrix4(); +class SkeletonHelper extends LineSegments { + static { + __name(this, "SkeletonHelper"); + } + constructor(object) { + const bones = getBoneList(object); + const geometry = new BufferGeometry(); + const vertices = []; + const colors = []; + const color1 = new Color(0, 0, 1); + const color2 = new Color(0, 1, 0); + for (let i = 0; i < bones.length; i++) { + const bone = bones[i]; + if (bone.parent && bone.parent.isBone) { + vertices.push(0, 0, 0); + vertices.push(0, 0, 0); + colors.push(color1.r, color1.g, color1.b); + colors.push(color2.r, color2.g, color2.b); + } + } + geometry.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + geometry.setAttribute("color", new Float32BufferAttribute(colors, 3)); + const material = new LineBasicMaterial({ vertexColors: true, depthTest: false, depthWrite: false, toneMapped: false, transparent: true }); + super(geometry, material); + this.isSkeletonHelper = true; + this.type = "SkeletonHelper"; + this.root = object; + this.bones = bones; + this.matrix = object.matrixWorld; + this.matrixAutoUpdate = false; + } + updateMatrixWorld(force) { + const bones = this.bones; + const geometry = this.geometry; + const position = geometry.getAttribute("position"); + _matrixWorldInv.copy(this.root.matrixWorld).invert(); + for (let i = 0, j = 0; i < bones.length; i++) { + const bone = bones[i]; + if (bone.parent && bone.parent.isBone) { + _boneMatrix.multiplyMatrices(_matrixWorldInv, bone.matrixWorld); + _vector$2.setFromMatrixPosition(_boneMatrix); + position.setXYZ(j, _vector$2.x, _vector$2.y, _vector$2.z); + _boneMatrix.multiplyMatrices(_matrixWorldInv, bone.parent.matrixWorld); + _vector$2.setFromMatrixPosition(_boneMatrix); + position.setXYZ(j + 1, _vector$2.x, _vector$2.y, _vector$2.z); + j += 2; + } + } + geometry.getAttribute("position").needsUpdate = true; + super.updateMatrixWorld(force); + } + dispose() { + this.geometry.dispose(); + this.material.dispose(); + } +} +function getBoneList(object) { + const boneList = []; + if (object.isBone === true) { + boneList.push(object); + } + for (let i = 0; i < object.children.length; i++) { + boneList.push.apply(boneList, getBoneList(object.children[i])); + } + return boneList; +} +__name(getBoneList, "getBoneList"); +class PointLightHelper extends Mesh { + static { + __name(this, "PointLightHelper"); + } + constructor(light, sphereSize, color) { + const geometry = new SphereGeometry(sphereSize, 4, 2); + const material = new MeshBasicMaterial({ wireframe: true, fog: false, toneMapped: false }); + super(geometry, material); + this.light = light; + this.color = color; + this.type = "PointLightHelper"; + this.matrix = this.light.matrixWorld; + this.matrixAutoUpdate = false; + this.update(); + } + dispose() { + this.geometry.dispose(); + this.material.dispose(); + } + update() { + this.light.updateWorldMatrix(true, false); + if (this.color !== void 0) { + this.material.color.set(this.color); + } else { + this.material.color.copy(this.light.color); + } + } +} +const _vector$1 = /* @__PURE__ */ new Vector3(); +const _color1 = /* @__PURE__ */ new Color(); +const _color2 = /* @__PURE__ */ new Color(); +class HemisphereLightHelper extends Object3D { + static { + __name(this, "HemisphereLightHelper"); + } + constructor(light, size, color) { + super(); + this.light = light; + this.matrix = light.matrixWorld; + this.matrixAutoUpdate = false; + this.color = color; + this.type = "HemisphereLightHelper"; + const geometry = new OctahedronGeometry(size); + geometry.rotateY(Math.PI * 0.5); + this.material = new MeshBasicMaterial({ wireframe: true, fog: false, toneMapped: false }); + if (this.color === void 0) this.material.vertexColors = true; + const position = geometry.getAttribute("position"); + const colors = new Float32Array(position.count * 3); + geometry.setAttribute("color", new BufferAttribute(colors, 3)); + this.add(new Mesh(geometry, this.material)); + this.update(); + } + dispose() { + this.children[0].geometry.dispose(); + this.children[0].material.dispose(); + } + update() { + const mesh = this.children[0]; + if (this.color !== void 0) { + this.material.color.set(this.color); + } else { + const colors = mesh.geometry.getAttribute("color"); + _color1.copy(this.light.color); + _color2.copy(this.light.groundColor); + for (let i = 0, l = colors.count; i < l; i++) { + const color = i < l / 2 ? _color1 : _color2; + colors.setXYZ(i, color.r, color.g, color.b); + } + colors.needsUpdate = true; + } + this.light.updateWorldMatrix(true, false); + mesh.lookAt(_vector$1.setFromMatrixPosition(this.light.matrixWorld).negate()); + } +} +class GridHelper extends LineSegments { + static { + __name(this, "GridHelper"); + } + constructor(size = 10, divisions = 10, color1 = 4473924, color2 = 8947848) { + color1 = new Color(color1); + color2 = new Color(color2); + const center = divisions / 2; + const step = size / divisions; + const halfSize = size / 2; + const vertices = [], colors = []; + for (let i = 0, j = 0, k = -halfSize; i <= divisions; i++, k += step) { + vertices.push(-halfSize, 0, k, halfSize, 0, k); + vertices.push(k, 0, -halfSize, k, 0, halfSize); + const color = i === center ? color1 : color2; + color.toArray(colors, j); + j += 3; + color.toArray(colors, j); + j += 3; + color.toArray(colors, j); + j += 3; + color.toArray(colors, j); + j += 3; + } + const geometry = new BufferGeometry(); + geometry.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + geometry.setAttribute("color", new Float32BufferAttribute(colors, 3)); + const material = new LineBasicMaterial({ vertexColors: true, toneMapped: false }); + super(geometry, material); + this.type = "GridHelper"; + } + dispose() { + this.geometry.dispose(); + this.material.dispose(); + } +} +class PolarGridHelper extends LineSegments { + static { + __name(this, "PolarGridHelper"); + } + constructor(radius = 10, sectors = 16, rings = 8, divisions = 64, color1 = 4473924, color2 = 8947848) { + color1 = new Color(color1); + color2 = new Color(color2); + const vertices = []; + const colors = []; + if (sectors > 1) { + for (let i = 0; i < sectors; i++) { + const v = i / sectors * (Math.PI * 2); + const x = Math.sin(v) * radius; + const z = Math.cos(v) * radius; + vertices.push(0, 0, 0); + vertices.push(x, 0, z); + const color = i & 1 ? color1 : color2; + colors.push(color.r, color.g, color.b); + colors.push(color.r, color.g, color.b); + } + } + for (let i = 0; i < rings; i++) { + const color = i & 1 ? color1 : color2; + const r = radius - radius / rings * i; + for (let j = 0; j < divisions; j++) { + let v = j / divisions * (Math.PI * 2); + let x = Math.sin(v) * r; + let z = Math.cos(v) * r; + vertices.push(x, 0, z); + colors.push(color.r, color.g, color.b); + v = (j + 1) / divisions * (Math.PI * 2); + x = Math.sin(v) * r; + z = Math.cos(v) * r; + vertices.push(x, 0, z); + colors.push(color.r, color.g, color.b); + } + } + const geometry = new BufferGeometry(); + geometry.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + geometry.setAttribute("color", new Float32BufferAttribute(colors, 3)); + const material = new LineBasicMaterial({ vertexColors: true, toneMapped: false }); + super(geometry, material); + this.type = "PolarGridHelper"; + } + dispose() { + this.geometry.dispose(); + this.material.dispose(); + } +} +const _v1 = /* @__PURE__ */ new Vector3(); +const _v2 = /* @__PURE__ */ new Vector3(); +const _v3 = /* @__PURE__ */ new Vector3(); +class DirectionalLightHelper extends Object3D { + static { + __name(this, "DirectionalLightHelper"); + } + constructor(light, size, color) { + super(); + this.light = light; + this.matrix = light.matrixWorld; + this.matrixAutoUpdate = false; + this.color = color; + this.type = "DirectionalLightHelper"; + if (size === void 0) size = 1; + let geometry = new BufferGeometry(); + geometry.setAttribute("position", new Float32BufferAttribute([ + -size, + size, + 0, + size, + size, + 0, + size, + -size, + 0, + -size, + -size, + 0, + -size, + size, + 0 + ], 3)); + const material = new LineBasicMaterial({ fog: false, toneMapped: false }); + this.lightPlane = new Line(geometry, material); + this.add(this.lightPlane); + geometry = new BufferGeometry(); + geometry.setAttribute("position", new Float32BufferAttribute([0, 0, 0, 0, 0, 1], 3)); + this.targetLine = new Line(geometry, material); + this.add(this.targetLine); + this.update(); + } + dispose() { + this.lightPlane.geometry.dispose(); + this.lightPlane.material.dispose(); + this.targetLine.geometry.dispose(); + this.targetLine.material.dispose(); + } + update() { + this.light.updateWorldMatrix(true, false); + this.light.target.updateWorldMatrix(true, false); + _v1.setFromMatrixPosition(this.light.matrixWorld); + _v2.setFromMatrixPosition(this.light.target.matrixWorld); + _v3.subVectors(_v2, _v1); + this.lightPlane.lookAt(_v2); + if (this.color !== void 0) { + this.lightPlane.material.color.set(this.color); + this.targetLine.material.color.set(this.color); + } else { + this.lightPlane.material.color.copy(this.light.color); + this.targetLine.material.color.copy(this.light.color); + } + this.targetLine.lookAt(_v2); + this.targetLine.scale.z = _v3.length(); + } +} +const _vector = /* @__PURE__ */ new Vector3(); +const _camera = /* @__PURE__ */ new Camera(); +class CameraHelper extends LineSegments { + static { + __name(this, "CameraHelper"); + } + constructor(camera) { + const geometry = new BufferGeometry(); + const material = new LineBasicMaterial({ color: 16777215, vertexColors: true, toneMapped: false }); + const vertices = []; + const colors = []; + const pointMap = {}; + addLine("n1", "n2"); + addLine("n2", "n4"); + addLine("n4", "n3"); + addLine("n3", "n1"); + addLine("f1", "f2"); + addLine("f2", "f4"); + addLine("f4", "f3"); + addLine("f3", "f1"); + addLine("n1", "f1"); + addLine("n2", "f2"); + addLine("n3", "f3"); + addLine("n4", "f4"); + addLine("p", "n1"); + addLine("p", "n2"); + addLine("p", "n3"); + addLine("p", "n4"); + addLine("u1", "u2"); + addLine("u2", "u3"); + addLine("u3", "u1"); + addLine("c", "t"); + addLine("p", "c"); + addLine("cn1", "cn2"); + addLine("cn3", "cn4"); + addLine("cf1", "cf2"); + addLine("cf3", "cf4"); + function addLine(a, b) { + addPoint(a); + addPoint(b); + } + __name(addLine, "addLine"); + function addPoint(id2) { + vertices.push(0, 0, 0); + colors.push(0, 0, 0); + if (pointMap[id2] === void 0) { + pointMap[id2] = []; + } + pointMap[id2].push(vertices.length / 3 - 1); + } + __name(addPoint, "addPoint"); + geometry.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + geometry.setAttribute("color", new Float32BufferAttribute(colors, 3)); + super(geometry, material); + this.type = "CameraHelper"; + this.camera = camera; + if (this.camera.updateProjectionMatrix) this.camera.updateProjectionMatrix(); + this.matrix = camera.matrixWorld; + this.matrixAutoUpdate = false; + this.pointMap = pointMap; + this.update(); + const colorFrustum = new Color(16755200); + const colorCone = new Color(16711680); + const colorUp = new Color(43775); + const colorTarget = new Color(16777215); + const colorCross = new Color(3355443); + this.setColors(colorFrustum, colorCone, colorUp, colorTarget, colorCross); + } + setColors(frustum, cone, up, target, cross) { + const geometry = this.geometry; + const colorAttribute = geometry.getAttribute("color"); + colorAttribute.setXYZ(0, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(1, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(2, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(3, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(4, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(5, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(6, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(7, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(8, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(9, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(10, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(11, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(12, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(13, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(14, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(15, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(16, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(17, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(18, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(19, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(20, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(21, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(22, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(23, frustum.r, frustum.g, frustum.b); + colorAttribute.setXYZ(24, cone.r, cone.g, cone.b); + colorAttribute.setXYZ(25, cone.r, cone.g, cone.b); + colorAttribute.setXYZ(26, cone.r, cone.g, cone.b); + colorAttribute.setXYZ(27, cone.r, cone.g, cone.b); + colorAttribute.setXYZ(28, cone.r, cone.g, cone.b); + colorAttribute.setXYZ(29, cone.r, cone.g, cone.b); + colorAttribute.setXYZ(30, cone.r, cone.g, cone.b); + colorAttribute.setXYZ(31, cone.r, cone.g, cone.b); + colorAttribute.setXYZ(32, up.r, up.g, up.b); + colorAttribute.setXYZ(33, up.r, up.g, up.b); + colorAttribute.setXYZ(34, up.r, up.g, up.b); + colorAttribute.setXYZ(35, up.r, up.g, up.b); + colorAttribute.setXYZ(36, up.r, up.g, up.b); + colorAttribute.setXYZ(37, up.r, up.g, up.b); + colorAttribute.setXYZ(38, target.r, target.g, target.b); + colorAttribute.setXYZ(39, target.r, target.g, target.b); + colorAttribute.setXYZ(40, cross.r, cross.g, cross.b); + colorAttribute.setXYZ(41, cross.r, cross.g, cross.b); + colorAttribute.setXYZ(42, cross.r, cross.g, cross.b); + colorAttribute.setXYZ(43, cross.r, cross.g, cross.b); + colorAttribute.setXYZ(44, cross.r, cross.g, cross.b); + colorAttribute.setXYZ(45, cross.r, cross.g, cross.b); + colorAttribute.setXYZ(46, cross.r, cross.g, cross.b); + colorAttribute.setXYZ(47, cross.r, cross.g, cross.b); + colorAttribute.setXYZ(48, cross.r, cross.g, cross.b); + colorAttribute.setXYZ(49, cross.r, cross.g, cross.b); + colorAttribute.needsUpdate = true; + } + update() { + const geometry = this.geometry; + const pointMap = this.pointMap; + const w = 1, h = 1; + _camera.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse); + setPoint("c", pointMap, geometry, _camera, 0, 0, -1); + setPoint("t", pointMap, geometry, _camera, 0, 0, 1); + setPoint("n1", pointMap, geometry, _camera, -w, -h, -1); + setPoint("n2", pointMap, geometry, _camera, w, -h, -1); + setPoint("n3", pointMap, geometry, _camera, -w, h, -1); + setPoint("n4", pointMap, geometry, _camera, w, h, -1); + setPoint("f1", pointMap, geometry, _camera, -w, -h, 1); + setPoint("f2", pointMap, geometry, _camera, w, -h, 1); + setPoint("f3", pointMap, geometry, _camera, -w, h, 1); + setPoint("f4", pointMap, geometry, _camera, w, h, 1); + setPoint("u1", pointMap, geometry, _camera, w * 0.7, h * 1.1, -1); + setPoint("u2", pointMap, geometry, _camera, -w * 0.7, h * 1.1, -1); + setPoint("u3", pointMap, geometry, _camera, 0, h * 2, -1); + setPoint("cf1", pointMap, geometry, _camera, -w, 0, 1); + setPoint("cf2", pointMap, geometry, _camera, w, 0, 1); + setPoint("cf3", pointMap, geometry, _camera, 0, -h, 1); + setPoint("cf4", pointMap, geometry, _camera, 0, h, 1); + setPoint("cn1", pointMap, geometry, _camera, -w, 0, -1); + setPoint("cn2", pointMap, geometry, _camera, w, 0, -1); + setPoint("cn3", pointMap, geometry, _camera, 0, -h, -1); + setPoint("cn4", pointMap, geometry, _camera, 0, h, -1); + geometry.getAttribute("position").needsUpdate = true; + } + dispose() { + this.geometry.dispose(); + this.material.dispose(); + } +} +function setPoint(point, pointMap, geometry, camera, x, y, z) { + _vector.set(x, y, z).unproject(camera); + const points = pointMap[point]; + if (points !== void 0) { + const position = geometry.getAttribute("position"); + for (let i = 0, l = points.length; i < l; i++) { + position.setXYZ(points[i], _vector.x, _vector.y, _vector.z); + } + } +} +__name(setPoint, "setPoint"); +const _box = /* @__PURE__ */ new Box3(); +class BoxHelper extends LineSegments { + static { + __name(this, "BoxHelper"); + } + constructor(object, color = 16776960) { + const indices = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]); + const positions = new Float32Array(8 * 3); + const geometry = new BufferGeometry(); + geometry.setIndex(new BufferAttribute(indices, 1)); + geometry.setAttribute("position", new BufferAttribute(positions, 3)); + super(geometry, new LineBasicMaterial({ color, toneMapped: false })); + this.object = object; + this.type = "BoxHelper"; + this.matrixAutoUpdate = false; + this.update(); + } + update(object) { + if (object !== void 0) { + console.warn("THREE.BoxHelper: .update() has no longer arguments."); + } + if (this.object !== void 0) { + _box.setFromObject(this.object); + } + if (_box.isEmpty()) return; + const min = _box.min; + const max2 = _box.max; + const position = this.geometry.attributes.position; + const array = position.array; + array[0] = max2.x; + array[1] = max2.y; + array[2] = max2.z; + array[3] = min.x; + array[4] = max2.y; + array[5] = max2.z; + array[6] = min.x; + array[7] = min.y; + array[8] = max2.z; + array[9] = max2.x; + array[10] = min.y; + array[11] = max2.z; + array[12] = max2.x; + array[13] = max2.y; + array[14] = min.z; + array[15] = min.x; + array[16] = max2.y; + array[17] = min.z; + array[18] = min.x; + array[19] = min.y; + array[20] = min.z; + array[21] = max2.x; + array[22] = min.y; + array[23] = min.z; + position.needsUpdate = true; + this.geometry.computeBoundingSphere(); + } + setFromObject(object) { + this.object = object; + this.update(); + return this; + } + copy(source, recursive) { + super.copy(source, recursive); + this.object = source.object; + return this; + } + dispose() { + this.geometry.dispose(); + this.material.dispose(); + } +} +class Box3Helper extends LineSegments { + static { + __name(this, "Box3Helper"); + } + constructor(box, color = 16776960) { + const indices = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]); + const positions = [1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1]; + const geometry = new BufferGeometry(); + geometry.setIndex(new BufferAttribute(indices, 1)); + geometry.setAttribute("position", new Float32BufferAttribute(positions, 3)); + super(geometry, new LineBasicMaterial({ color, toneMapped: false })); + this.box = box; + this.type = "Box3Helper"; + this.geometry.computeBoundingSphere(); + } + updateMatrixWorld(force) { + const box = this.box; + if (box.isEmpty()) return; + box.getCenter(this.position); + box.getSize(this.scale); + this.scale.multiplyScalar(0.5); + super.updateMatrixWorld(force); + } + dispose() { + this.geometry.dispose(); + this.material.dispose(); + } +} +class PlaneHelper extends Line { + static { + __name(this, "PlaneHelper"); + } + constructor(plane, size = 1, hex = 16776960) { + const color = hex; + const positions = [1, -1, 0, -1, 1, 0, -1, -1, 0, 1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0, 1, 1, 0]; + const geometry = new BufferGeometry(); + geometry.setAttribute("position", new Float32BufferAttribute(positions, 3)); + geometry.computeBoundingSphere(); + super(geometry, new LineBasicMaterial({ color, toneMapped: false })); + this.type = "PlaneHelper"; + this.plane = plane; + this.size = size; + const positions2 = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0]; + const geometry2 = new BufferGeometry(); + geometry2.setAttribute("position", new Float32BufferAttribute(positions2, 3)); + geometry2.computeBoundingSphere(); + this.add(new Mesh(geometry2, new MeshBasicMaterial({ color, opacity: 0.2, transparent: true, depthWrite: false, toneMapped: false }))); + } + updateMatrixWorld(force) { + this.position.set(0, 0, 0); + this.scale.set(0.5 * this.size, 0.5 * this.size, 1); + this.lookAt(this.plane.normal); + this.translateZ(-this.plane.constant); + super.updateMatrixWorld(force); + } + dispose() { + this.geometry.dispose(); + this.material.dispose(); + this.children[0].geometry.dispose(); + this.children[0].material.dispose(); + } +} +const _axis = /* @__PURE__ */ new Vector3(); +let _lineGeometry, _coneGeometry; +class ArrowHelper extends Object3D { + static { + __name(this, "ArrowHelper"); + } + // dir is assumed to be normalized + constructor(dir = new Vector3(0, 0, 1), origin = new Vector3(0, 0, 0), length = 1, color = 16776960, headLength = length * 0.2, headWidth = headLength * 0.2) { + super(); + this.type = "ArrowHelper"; + if (_lineGeometry === void 0) { + _lineGeometry = new BufferGeometry(); + _lineGeometry.setAttribute("position", new Float32BufferAttribute([0, 0, 0, 0, 1, 0], 3)); + _coneGeometry = new CylinderGeometry(0, 0.5, 1, 5, 1); + _coneGeometry.translate(0, -0.5, 0); + } + this.position.copy(origin); + this.line = new Line(_lineGeometry, new LineBasicMaterial({ color, toneMapped: false })); + this.line.matrixAutoUpdate = false; + this.add(this.line); + this.cone = new Mesh(_coneGeometry, new MeshBasicMaterial({ color, toneMapped: false })); + this.cone.matrixAutoUpdate = false; + this.add(this.cone); + this.setDirection(dir); + this.setLength(length, headLength, headWidth); + } + setDirection(dir) { + if (dir.y > 0.99999) { + this.quaternion.set(0, 0, 0, 1); + } else if (dir.y < -0.99999) { + this.quaternion.set(1, 0, 0, 0); + } else { + _axis.set(dir.z, 0, -dir.x).normalize(); + const radians = Math.acos(dir.y); + this.quaternion.setFromAxisAngle(_axis, radians); + } + } + setLength(length, headLength = length * 0.2, headWidth = headLength * 0.2) { + this.line.scale.set(1, Math.max(1e-4, length - headLength), 1); + this.line.updateMatrix(); + this.cone.scale.set(headWidth, headLength, headWidth); + this.cone.position.y = length; + this.cone.updateMatrix(); + } + setColor(color) { + this.line.material.color.set(color); + this.cone.material.color.set(color); + } + copy(source) { + super.copy(source, false); + this.line.copy(source.line); + this.cone.copy(source.cone); + return this; + } + dispose() { + this.line.geometry.dispose(); + this.line.material.dispose(); + this.cone.geometry.dispose(); + this.cone.material.dispose(); + } +} +class AxesHelper extends LineSegments { + static { + __name(this, "AxesHelper"); + } + constructor(size = 1) { + const vertices = [ + 0, + 0, + 0, + size, + 0, + 0, + 0, + 0, + 0, + 0, + size, + 0, + 0, + 0, + 0, + 0, + 0, + size + ]; + const colors = [ + 1, + 0, + 0, + 1, + 0.6, + 0, + 0, + 1, + 0, + 0.6, + 1, + 0, + 0, + 0, + 1, + 0, + 0.6, + 1 + ]; + const geometry = new BufferGeometry(); + geometry.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + geometry.setAttribute("color", new Float32BufferAttribute(colors, 3)); + const material = new LineBasicMaterial({ vertexColors: true, toneMapped: false }); + super(geometry, material); + this.type = "AxesHelper"; + } + setColors(xAxisColor, yAxisColor, zAxisColor) { + const color = new Color(); + const array = this.geometry.attributes.color.array; + color.set(xAxisColor); + color.toArray(array, 0); + color.toArray(array, 3); + color.set(yAxisColor); + color.toArray(array, 6); + color.toArray(array, 9); + color.set(zAxisColor); + color.toArray(array, 12); + color.toArray(array, 15); + this.geometry.attributes.color.needsUpdate = true; + return this; + } + dispose() { + this.geometry.dispose(); + this.material.dispose(); + } +} +class ShapePath { + static { + __name(this, "ShapePath"); + } + constructor() { + this.type = "ShapePath"; + this.color = new Color(); + this.subPaths = []; + this.currentPath = null; + } + moveTo(x, y) { + this.currentPath = new Path(); + this.subPaths.push(this.currentPath); + this.currentPath.moveTo(x, y); + return this; + } + lineTo(x, y) { + this.currentPath.lineTo(x, y); + return this; + } + quadraticCurveTo(aCPx, aCPy, aX, aY) { + this.currentPath.quadraticCurveTo(aCPx, aCPy, aX, aY); + return this; + } + bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) { + this.currentPath.bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY); + return this; + } + splineThru(pts) { + this.currentPath.splineThru(pts); + return this; + } + toShapes(isCCW) { + function toShapesNoHoles(inSubpaths) { + const shapes2 = []; + for (let i = 0, l = inSubpaths.length; i < l; i++) { + const tmpPath2 = inSubpaths[i]; + const tmpShape2 = new Shape(); + tmpShape2.curves = tmpPath2.curves; + shapes2.push(tmpShape2); + } + return shapes2; + } + __name(toShapesNoHoles, "toShapesNoHoles"); + function isPointInsidePolygon(inPt, inPolygon) { + const polyLen = inPolygon.length; + let inside = false; + for (let p = polyLen - 1, q = 0; q < polyLen; p = q++) { + let edgeLowPt = inPolygon[p]; + let edgeHighPt = inPolygon[q]; + let edgeDx = edgeHighPt.x - edgeLowPt.x; + let edgeDy = edgeHighPt.y - edgeLowPt.y; + if (Math.abs(edgeDy) > Number.EPSILON) { + if (edgeDy < 0) { + edgeLowPt = inPolygon[q]; + edgeDx = -edgeDx; + edgeHighPt = inPolygon[p]; + edgeDy = -edgeDy; + } + if (inPt.y < edgeLowPt.y || inPt.y > edgeHighPt.y) continue; + if (inPt.y === edgeLowPt.y) { + if (inPt.x === edgeLowPt.x) return true; + } else { + const perpEdge = edgeDy * (inPt.x - edgeLowPt.x) - edgeDx * (inPt.y - edgeLowPt.y); + if (perpEdge === 0) return true; + if (perpEdge < 0) continue; + inside = !inside; + } + } else { + if (inPt.y !== edgeLowPt.y) continue; + if (edgeHighPt.x <= inPt.x && inPt.x <= edgeLowPt.x || edgeLowPt.x <= inPt.x && inPt.x <= edgeHighPt.x) return true; + } + } + return inside; + } + __name(isPointInsidePolygon, "isPointInsidePolygon"); + const isClockWise = ShapeUtils.isClockWise; + const subPaths = this.subPaths; + if (subPaths.length === 0) return []; + let solid, tmpPath, tmpShape; + const shapes = []; + if (subPaths.length === 1) { + tmpPath = subPaths[0]; + tmpShape = new Shape(); + tmpShape.curves = tmpPath.curves; + shapes.push(tmpShape); + return shapes; + } + let holesFirst = !isClockWise(subPaths[0].getPoints()); + holesFirst = isCCW ? !holesFirst : holesFirst; + const betterShapeHoles = []; + const newShapes = []; + let newShapeHoles = []; + let mainIdx = 0; + let tmpPoints; + newShapes[mainIdx] = void 0; + newShapeHoles[mainIdx] = []; + for (let i = 0, l = subPaths.length; i < l; i++) { + tmpPath = subPaths[i]; + tmpPoints = tmpPath.getPoints(); + solid = isClockWise(tmpPoints); + solid = isCCW ? !solid : solid; + if (solid) { + if (!holesFirst && newShapes[mainIdx]) mainIdx++; + newShapes[mainIdx] = { s: new Shape(), p: tmpPoints }; + newShapes[mainIdx].s.curves = tmpPath.curves; + if (holesFirst) mainIdx++; + newShapeHoles[mainIdx] = []; + } else { + newShapeHoles[mainIdx].push({ h: tmpPath, p: tmpPoints[0] }); + } + } + if (!newShapes[0]) return toShapesNoHoles(subPaths); + if (newShapes.length > 1) { + let ambiguous = false; + let toChange = 0; + for (let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx++) { + betterShapeHoles[sIdx] = []; + } + for (let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx++) { + const sho = newShapeHoles[sIdx]; + for (let hIdx = 0; hIdx < sho.length; hIdx++) { + const ho = sho[hIdx]; + let hole_unassigned = true; + for (let s2Idx = 0; s2Idx < newShapes.length; s2Idx++) { + if (isPointInsidePolygon(ho.p, newShapes[s2Idx].p)) { + if (sIdx !== s2Idx) toChange++; + if (hole_unassigned) { + hole_unassigned = false; + betterShapeHoles[s2Idx].push(ho); + } else { + ambiguous = true; + } + } + } + if (hole_unassigned) { + betterShapeHoles[sIdx].push(ho); + } + } + } + if (toChange > 0 && ambiguous === false) { + newShapeHoles = betterShapeHoles; + } + } + let tmpHoles; + for (let i = 0, il = newShapes.length; i < il; i++) { + tmpShape = newShapes[i].s; + shapes.push(tmpShape); + tmpHoles = newShapeHoles[i]; + for (let j = 0, jl = tmpHoles.length; j < jl; j++) { + tmpShape.holes.push(tmpHoles[j].h); + } + } + return shapes; + } +} +class Controls extends EventDispatcher { + static { + __name(this, "Controls"); + } + constructor(object, domElement = null) { + super(); + this.object = object; + this.domElement = domElement; + this.enabled = true; + this.state = -1; + this.keys = {}; + this.mouseButtons = { LEFT: null, MIDDLE: null, RIGHT: null }; + this.touches = { ONE: null, TWO: null }; + } + connect() { + } + disconnect() { + } + dispose() { + } + update() { + } +} +class WebGLMultipleRenderTargets extends WebGLRenderTarget { + static { + __name(this, "WebGLMultipleRenderTargets"); + } + // @deprecated, r162 + constructor(width = 1, height = 1, count = 1, options = {}) { + console.warn('THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the "count" parameter to enable MRT.'); + super(width, height, { ...options, count }); + this.isWebGLMultipleRenderTargets = true; + } + get texture() { + return this.textures; + } +} +if (typeof __THREE_DEVTOOLS__ !== "undefined") { + __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register", { detail: { + revision: REVISION + } })); +} +if (typeof window !== "undefined") { + if (window.__THREE__) { + console.warn("WARNING: Multiple instances of Three.js being imported."); + } else { + window.__THREE__ = REVISION; + } +} +const _changeEvent = { type: "change" }; +const _startEvent = { type: "start" }; +const _endEvent = { type: "end" }; +const _ray = new Ray(); +const _plane = new Plane(); +const _TILT_LIMIT = Math.cos(70 * MathUtils.DEG2RAD); +const _v = new Vector3(); +const _twoPI = 2 * Math.PI; +const _STATE = { + NONE: -1, + ROTATE: 0, + DOLLY: 1, + PAN: 2, + TOUCH_ROTATE: 3, + TOUCH_PAN: 4, + TOUCH_DOLLY_PAN: 5, + TOUCH_DOLLY_ROTATE: 6 +}; +const _EPS = 1e-6; +class OrbitControls extends Controls { + static { + __name(this, "OrbitControls"); + } + constructor(object, domElement = null) { + super(object, domElement); + this.state = _STATE.NONE; + this.enabled = true; + this.target = new Vector3(); + this.cursor = new Vector3(); + this.minDistance = 0; + this.maxDistance = Infinity; + this.minZoom = 0; + this.maxZoom = Infinity; + this.minTargetRadius = 0; + this.maxTargetRadius = Infinity; + this.minPolarAngle = 0; + this.maxPolarAngle = Math.PI; + this.minAzimuthAngle = -Infinity; + this.maxAzimuthAngle = Infinity; + this.enableDamping = false; + this.dampingFactor = 0.05; + this.enableZoom = true; + this.zoomSpeed = 1; + this.enableRotate = true; + this.rotateSpeed = 1; + this.enablePan = true; + this.panSpeed = 1; + this.screenSpacePanning = true; + this.keyPanSpeed = 7; + this.zoomToCursor = false; + this.autoRotate = false; + this.autoRotateSpeed = 2; + this.keys = { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }; + this.mouseButtons = { LEFT: MOUSE.ROTATE, MIDDLE: MOUSE.DOLLY, RIGHT: MOUSE.PAN }; + this.touches = { ONE: TOUCH.ROTATE, TWO: TOUCH.DOLLY_PAN }; + this.target0 = this.target.clone(); + this.position0 = this.object.position.clone(); + this.zoom0 = this.object.zoom; + this._domElementKeyEvents = null; + this._lastPosition = new Vector3(); + this._lastQuaternion = new Quaternion(); + this._lastTargetPosition = new Vector3(); + this._quat = new Quaternion().setFromUnitVectors(object.up, new Vector3(0, 1, 0)); + this._quatInverse = this._quat.clone().invert(); + this._spherical = new Spherical(); + this._sphericalDelta = new Spherical(); + this._scale = 1; + this._panOffset = new Vector3(); + this._rotateStart = new Vector2(); + this._rotateEnd = new Vector2(); + this._rotateDelta = new Vector2(); + this._panStart = new Vector2(); + this._panEnd = new Vector2(); + this._panDelta = new Vector2(); + this._dollyStart = new Vector2(); + this._dollyEnd = new Vector2(); + this._dollyDelta = new Vector2(); + this._dollyDirection = new Vector3(); + this._mouse = new Vector2(); + this._performCursorZoom = false; + this._pointers = []; + this._pointerPositions = {}; + this._controlActive = false; + this._onPointerMove = onPointerMove.bind(this); + this._onPointerDown = onPointerDown.bind(this); + this._onPointerUp = onPointerUp.bind(this); + this._onContextMenu = onContextMenu.bind(this); + this._onMouseWheel = onMouseWheel.bind(this); + this._onKeyDown = onKeyDown.bind(this); + this._onTouchStart = onTouchStart.bind(this); + this._onTouchMove = onTouchMove.bind(this); + this._onMouseDown = onMouseDown.bind(this); + this._onMouseMove = onMouseMove.bind(this); + this._interceptControlDown = interceptControlDown.bind(this); + this._interceptControlUp = interceptControlUp.bind(this); + if (this.domElement !== null) { + this.connect(); + } + this.update(); + } + connect() { + this.domElement.addEventListener("pointerdown", this._onPointerDown); + this.domElement.addEventListener("pointercancel", this._onPointerUp); + this.domElement.addEventListener("contextmenu", this._onContextMenu); + this.domElement.addEventListener("wheel", this._onMouseWheel, { passive: false }); + const document2 = this.domElement.getRootNode(); + document2.addEventListener("keydown", this._interceptControlDown, { passive: true, capture: true }); + this.domElement.style.touchAction = "none"; + } + disconnect() { + this.domElement.removeEventListener("pointerdown", this._onPointerDown); + this.domElement.removeEventListener("pointermove", this._onPointerMove); + this.domElement.removeEventListener("pointerup", this._onPointerUp); + this.domElement.removeEventListener("pointercancel", this._onPointerUp); + this.domElement.removeEventListener("wheel", this._onMouseWheel); + this.domElement.removeEventListener("contextmenu", this._onContextMenu); + this.stopListenToKeyEvents(); + const document2 = this.domElement.getRootNode(); + document2.removeEventListener("keydown", this._interceptControlDown, { capture: true }); + this.domElement.style.touchAction = "auto"; + } + dispose() { + this.disconnect(); + } + getPolarAngle() { + return this._spherical.phi; + } + getAzimuthalAngle() { + return this._spherical.theta; + } + getDistance() { + return this.object.position.distanceTo(this.target); + } + listenToKeyEvents(domElement) { + domElement.addEventListener("keydown", this._onKeyDown); + this._domElementKeyEvents = domElement; + } + stopListenToKeyEvents() { + if (this._domElementKeyEvents !== null) { + this._domElementKeyEvents.removeEventListener("keydown", this._onKeyDown); + this._domElementKeyEvents = null; + } + } + saveState() { + this.target0.copy(this.target); + this.position0.copy(this.object.position); + this.zoom0 = this.object.zoom; + } + reset() { + this.target.copy(this.target0); + this.object.position.copy(this.position0); + this.object.zoom = this.zoom0; + this.object.updateProjectionMatrix(); + this.dispatchEvent(_changeEvent); + this.update(); + this.state = _STATE.NONE; + } + update(deltaTime = null) { + const position = this.object.position; + _v.copy(position).sub(this.target); + _v.applyQuaternion(this._quat); + this._spherical.setFromVector3(_v); + if (this.autoRotate && this.state === _STATE.NONE) { + this._rotateLeft(this._getAutoRotationAngle(deltaTime)); + } + if (this.enableDamping) { + this._spherical.theta += this._sphericalDelta.theta * this.dampingFactor; + this._spherical.phi += this._sphericalDelta.phi * this.dampingFactor; + } else { + this._spherical.theta += this._sphericalDelta.theta; + this._spherical.phi += this._sphericalDelta.phi; + } + let min = this.minAzimuthAngle; + let max2 = this.maxAzimuthAngle; + if (isFinite(min) && isFinite(max2)) { + if (min < -Math.PI) min += _twoPI; + else if (min > Math.PI) min -= _twoPI; + if (max2 < -Math.PI) max2 += _twoPI; + else if (max2 > Math.PI) max2 -= _twoPI; + if (min <= max2) { + this._spherical.theta = Math.max(min, Math.min(max2, this._spherical.theta)); + } else { + this._spherical.theta = this._spherical.theta > (min + max2) / 2 ? Math.max(min, this._spherical.theta) : Math.min(max2, this._spherical.theta); + } + } + this._spherical.phi = Math.max(this.minPolarAngle, Math.min(this.maxPolarAngle, this._spherical.phi)); + this._spherical.makeSafe(); + if (this.enableDamping === true) { + this.target.addScaledVector(this._panOffset, this.dampingFactor); + } else { + this.target.add(this._panOffset); + } + this.target.sub(this.cursor); + this.target.clampLength(this.minTargetRadius, this.maxTargetRadius); + this.target.add(this.cursor); + let zoomChanged = false; + if (this.zoomToCursor && this._performCursorZoom || this.object.isOrthographicCamera) { + this._spherical.radius = this._clampDistance(this._spherical.radius); + } else { + const prevRadius = this._spherical.radius; + this._spherical.radius = this._clampDistance(this._spherical.radius * this._scale); + zoomChanged = prevRadius != this._spherical.radius; + } + _v.setFromSpherical(this._spherical); + _v.applyQuaternion(this._quatInverse); + position.copy(this.target).add(_v); + this.object.lookAt(this.target); + if (this.enableDamping === true) { + this._sphericalDelta.theta *= 1 - this.dampingFactor; + this._sphericalDelta.phi *= 1 - this.dampingFactor; + this._panOffset.multiplyScalar(1 - this.dampingFactor); + } else { + this._sphericalDelta.set(0, 0, 0); + this._panOffset.set(0, 0, 0); + } + if (this.zoomToCursor && this._performCursorZoom) { + let newRadius = null; + if (this.object.isPerspectiveCamera) { + const prevRadius = _v.length(); + newRadius = this._clampDistance(prevRadius * this._scale); + const radiusDelta = prevRadius - newRadius; + this.object.position.addScaledVector(this._dollyDirection, radiusDelta); + this.object.updateMatrixWorld(); + zoomChanged = !!radiusDelta; + } else if (this.object.isOrthographicCamera) { + const mouseBefore = new Vector3(this._mouse.x, this._mouse.y, 0); + mouseBefore.unproject(this.object); + const prevZoom = this.object.zoom; + this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._scale)); + this.object.updateProjectionMatrix(); + zoomChanged = prevZoom !== this.object.zoom; + const mouseAfter = new Vector3(this._mouse.x, this._mouse.y, 0); + mouseAfter.unproject(this.object); + this.object.position.sub(mouseAfter).add(mouseBefore); + this.object.updateMatrixWorld(); + newRadius = _v.length(); + } else { + console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."); + this.zoomToCursor = false; + } + if (newRadius !== null) { + if (this.screenSpacePanning) { + this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(newRadius).add(this.object.position); + } else { + _ray.origin.copy(this.object.position); + _ray.direction.set(0, 0, -1).transformDirection(this.object.matrix); + if (Math.abs(this.object.up.dot(_ray.direction)) < _TILT_LIMIT) { + this.object.lookAt(this.target); + } else { + _plane.setFromNormalAndCoplanarPoint(this.object.up, this.target); + _ray.intersectPlane(_plane, this.target); + } + } + } + } else if (this.object.isOrthographicCamera) { + const prevZoom = this.object.zoom; + this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._scale)); + if (prevZoom !== this.object.zoom) { + this.object.updateProjectionMatrix(); + zoomChanged = true; + } + } + this._scale = 1; + this._performCursorZoom = false; + if (zoomChanged || this._lastPosition.distanceToSquared(this.object.position) > _EPS || 8 * (1 - this._lastQuaternion.dot(this.object.quaternion)) > _EPS || this._lastTargetPosition.distanceToSquared(this.target) > _EPS) { + this.dispatchEvent(_changeEvent); + this._lastPosition.copy(this.object.position); + this._lastQuaternion.copy(this.object.quaternion); + this._lastTargetPosition.copy(this.target); + return true; + } + return false; + } + _getAutoRotationAngle(deltaTime) { + if (deltaTime !== null) { + return _twoPI / 60 * this.autoRotateSpeed * deltaTime; + } else { + return _twoPI / 60 / 60 * this.autoRotateSpeed; + } + } + _getZoomScale(delta) { + const normalizedDelta = Math.abs(delta * 0.01); + return Math.pow(0.95, this.zoomSpeed * normalizedDelta); + } + _rotateLeft(angle) { + this._sphericalDelta.theta -= angle; + } + _rotateUp(angle) { + this._sphericalDelta.phi -= angle; + } + _panLeft(distance, objectMatrix) { + _v.setFromMatrixColumn(objectMatrix, 0); + _v.multiplyScalar(-distance); + this._panOffset.add(_v); + } + _panUp(distance, objectMatrix) { + if (this.screenSpacePanning === true) { + _v.setFromMatrixColumn(objectMatrix, 1); + } else { + _v.setFromMatrixColumn(objectMatrix, 0); + _v.crossVectors(this.object.up, _v); + } + _v.multiplyScalar(distance); + this._panOffset.add(_v); + } + // deltaX and deltaY are in pixels; right and down are positive + _pan(deltaX, deltaY) { + const element = this.domElement; + if (this.object.isPerspectiveCamera) { + const position = this.object.position; + _v.copy(position).sub(this.target); + let targetDistance = _v.length(); + targetDistance *= Math.tan(this.object.fov / 2 * Math.PI / 180); + this._panLeft(2 * deltaX * targetDistance / element.clientHeight, this.object.matrix); + this._panUp(2 * deltaY * targetDistance / element.clientHeight, this.object.matrix); + } else if (this.object.isOrthographicCamera) { + this._panLeft(deltaX * (this.object.right - this.object.left) / this.object.zoom / element.clientWidth, this.object.matrix); + this._panUp(deltaY * (this.object.top - this.object.bottom) / this.object.zoom / element.clientHeight, this.object.matrix); + } else { + console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."); + this.enablePan = false; + } + } + _dollyOut(dollyScale) { + if (this.object.isPerspectiveCamera || this.object.isOrthographicCamera) { + this._scale /= dollyScale; + } else { + console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."); + this.enableZoom = false; + } + } + _dollyIn(dollyScale) { + if (this.object.isPerspectiveCamera || this.object.isOrthographicCamera) { + this._scale *= dollyScale; + } else { + console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."); + this.enableZoom = false; + } + } + _updateZoomParameters(x, y) { + if (!this.zoomToCursor) { + return; + } + this._performCursorZoom = true; + const rect = this.domElement.getBoundingClientRect(); + const dx = x - rect.left; + const dy = y - rect.top; + const w = rect.width; + const h = rect.height; + this._mouse.x = dx / w * 2 - 1; + this._mouse.y = -(dy / h) * 2 + 1; + this._dollyDirection.set(this._mouse.x, this._mouse.y, 1).unproject(this.object).sub(this.object.position).normalize(); + } + _clampDistance(dist) { + return Math.max(this.minDistance, Math.min(this.maxDistance, dist)); + } + // + // event callbacks - update the object state + // + _handleMouseDownRotate(event) { + this._rotateStart.set(event.clientX, event.clientY); + } + _handleMouseDownDolly(event) { + this._updateZoomParameters(event.clientX, event.clientX); + this._dollyStart.set(event.clientX, event.clientY); + } + _handleMouseDownPan(event) { + this._panStart.set(event.clientX, event.clientY); + } + _handleMouseMoveRotate(event) { + this._rotateEnd.set(event.clientX, event.clientY); + this._rotateDelta.subVectors(this._rotateEnd, this._rotateStart).multiplyScalar(this.rotateSpeed); + const element = this.domElement; + this._rotateLeft(_twoPI * this._rotateDelta.x / element.clientHeight); + this._rotateUp(_twoPI * this._rotateDelta.y / element.clientHeight); + this._rotateStart.copy(this._rotateEnd); + this.update(); + } + _handleMouseMoveDolly(event) { + this._dollyEnd.set(event.clientX, event.clientY); + this._dollyDelta.subVectors(this._dollyEnd, this._dollyStart); + if (this._dollyDelta.y > 0) { + this._dollyOut(this._getZoomScale(this._dollyDelta.y)); + } else if (this._dollyDelta.y < 0) { + this._dollyIn(this._getZoomScale(this._dollyDelta.y)); + } + this._dollyStart.copy(this._dollyEnd); + this.update(); + } + _handleMouseMovePan(event) { + this._panEnd.set(event.clientX, event.clientY); + this._panDelta.subVectors(this._panEnd, this._panStart).multiplyScalar(this.panSpeed); + this._pan(this._panDelta.x, this._panDelta.y); + this._panStart.copy(this._panEnd); + this.update(); + } + _handleMouseWheel(event) { + this._updateZoomParameters(event.clientX, event.clientY); + if (event.deltaY < 0) { + this._dollyIn(this._getZoomScale(event.deltaY)); + } else if (event.deltaY > 0) { + this._dollyOut(this._getZoomScale(event.deltaY)); + } + this.update(); + } + _handleKeyDown(event) { + let needsUpdate = false; + switch (event.code) { + case this.keys.UP: + if (event.ctrlKey || event.metaKey || event.shiftKey) { + this._rotateUp(_twoPI * this.rotateSpeed / this.domElement.clientHeight); + } else { + this._pan(0, this.keyPanSpeed); + } + needsUpdate = true; + break; + case this.keys.BOTTOM: + if (event.ctrlKey || event.metaKey || event.shiftKey) { + this._rotateUp(-_twoPI * this.rotateSpeed / this.domElement.clientHeight); + } else { + this._pan(0, -this.keyPanSpeed); + } + needsUpdate = true; + break; + case this.keys.LEFT: + if (event.ctrlKey || event.metaKey || event.shiftKey) { + this._rotateLeft(_twoPI * this.rotateSpeed / this.domElement.clientHeight); + } else { + this._pan(this.keyPanSpeed, 0); + } + needsUpdate = true; + break; + case this.keys.RIGHT: + if (event.ctrlKey || event.metaKey || event.shiftKey) { + this._rotateLeft(-_twoPI * this.rotateSpeed / this.domElement.clientHeight); + } else { + this._pan(-this.keyPanSpeed, 0); + } + needsUpdate = true; + break; + } + if (needsUpdate) { + event.preventDefault(); + this.update(); + } + } + _handleTouchStartRotate(event) { + if (this._pointers.length === 1) { + this._rotateStart.set(event.pageX, event.pageY); + } else { + const position = this._getSecondPointerPosition(event); + const x = 0.5 * (event.pageX + position.x); + const y = 0.5 * (event.pageY + position.y); + this._rotateStart.set(x, y); + } + } + _handleTouchStartPan(event) { + if (this._pointers.length === 1) { + this._panStart.set(event.pageX, event.pageY); + } else { + const position = this._getSecondPointerPosition(event); + const x = 0.5 * (event.pageX + position.x); + const y = 0.5 * (event.pageY + position.y); + this._panStart.set(x, y); + } + } + _handleTouchStartDolly(event) { + const position = this._getSecondPointerPosition(event); + const dx = event.pageX - position.x; + const dy = event.pageY - position.y; + const distance = Math.sqrt(dx * dx + dy * dy); + this._dollyStart.set(0, distance); + } + _handleTouchStartDollyPan(event) { + if (this.enableZoom) this._handleTouchStartDolly(event); + if (this.enablePan) this._handleTouchStartPan(event); + } + _handleTouchStartDollyRotate(event) { + if (this.enableZoom) this._handleTouchStartDolly(event); + if (this.enableRotate) this._handleTouchStartRotate(event); + } + _handleTouchMoveRotate(event) { + if (this._pointers.length == 1) { + this._rotateEnd.set(event.pageX, event.pageY); + } else { + const position = this._getSecondPointerPosition(event); + const x = 0.5 * (event.pageX + position.x); + const y = 0.5 * (event.pageY + position.y); + this._rotateEnd.set(x, y); + } + this._rotateDelta.subVectors(this._rotateEnd, this._rotateStart).multiplyScalar(this.rotateSpeed); + const element = this.domElement; + this._rotateLeft(_twoPI * this._rotateDelta.x / element.clientHeight); + this._rotateUp(_twoPI * this._rotateDelta.y / element.clientHeight); + this._rotateStart.copy(this._rotateEnd); + } + _handleTouchMovePan(event) { + if (this._pointers.length === 1) { + this._panEnd.set(event.pageX, event.pageY); + } else { + const position = this._getSecondPointerPosition(event); + const x = 0.5 * (event.pageX + position.x); + const y = 0.5 * (event.pageY + position.y); + this._panEnd.set(x, y); + } + this._panDelta.subVectors(this._panEnd, this._panStart).multiplyScalar(this.panSpeed); + this._pan(this._panDelta.x, this._panDelta.y); + this._panStart.copy(this._panEnd); + } + _handleTouchMoveDolly(event) { + const position = this._getSecondPointerPosition(event); + const dx = event.pageX - position.x; + const dy = event.pageY - position.y; + const distance = Math.sqrt(dx * dx + dy * dy); + this._dollyEnd.set(0, distance); + this._dollyDelta.set(0, Math.pow(this._dollyEnd.y / this._dollyStart.y, this.zoomSpeed)); + this._dollyOut(this._dollyDelta.y); + this._dollyStart.copy(this._dollyEnd); + const centerX = (event.pageX + position.x) * 0.5; + const centerY = (event.pageY + position.y) * 0.5; + this._updateZoomParameters(centerX, centerY); + } + _handleTouchMoveDollyPan(event) { + if (this.enableZoom) this._handleTouchMoveDolly(event); + if (this.enablePan) this._handleTouchMovePan(event); + } + _handleTouchMoveDollyRotate(event) { + if (this.enableZoom) this._handleTouchMoveDolly(event); + if (this.enableRotate) this._handleTouchMoveRotate(event); + } + // pointers + _addPointer(event) { + this._pointers.push(event.pointerId); + } + _removePointer(event) { + delete this._pointerPositions[event.pointerId]; + for (let i = 0; i < this._pointers.length; i++) { + if (this._pointers[i] == event.pointerId) { + this._pointers.splice(i, 1); + return; + } + } + } + _isTrackingPointer(event) { + for (let i = 0; i < this._pointers.length; i++) { + if (this._pointers[i] == event.pointerId) return true; + } + return false; + } + _trackPointer(event) { + let position = this._pointerPositions[event.pointerId]; + if (position === void 0) { + position = new Vector2(); + this._pointerPositions[event.pointerId] = position; + } + position.set(event.pageX, event.pageY); + } + _getSecondPointerPosition(event) { + const pointerId = event.pointerId === this._pointers[0] ? this._pointers[1] : this._pointers[0]; + return this._pointerPositions[pointerId]; + } + // + _customWheelEvent(event) { + const mode = event.deltaMode; + const newEvent = { + clientX: event.clientX, + clientY: event.clientY, + deltaY: event.deltaY + }; + switch (mode) { + case 1: + newEvent.deltaY *= 16; + break; + case 2: + newEvent.deltaY *= 100; + break; + } + if (event.ctrlKey && !this._controlActive) { + newEvent.deltaY *= 10; + } + return newEvent; + } +} +function onPointerDown(event) { + if (this.enabled === false) return; + if (this._pointers.length === 0) { + this.domElement.setPointerCapture(event.pointerId); + this.domElement.addEventListener("pointermove", this._onPointerMove); + this.domElement.addEventListener("pointerup", this._onPointerUp); + } + if (this._isTrackingPointer(event)) return; + this._addPointer(event); + if (event.pointerType === "touch") { + this._onTouchStart(event); + } else { + this._onMouseDown(event); + } +} +__name(onPointerDown, "onPointerDown"); +function onPointerMove(event) { + if (this.enabled === false) return; + if (event.pointerType === "touch") { + this._onTouchMove(event); + } else { + this._onMouseMove(event); + } +} +__name(onPointerMove, "onPointerMove"); +function onPointerUp(event) { + this._removePointer(event); + switch (this._pointers.length) { + case 0: + this.domElement.releasePointerCapture(event.pointerId); + this.domElement.removeEventListener("pointermove", this._onPointerMove); + this.domElement.removeEventListener("pointerup", this._onPointerUp); + this.dispatchEvent(_endEvent); + this.state = _STATE.NONE; + break; + case 1: + const pointerId = this._pointers[0]; + const position = this._pointerPositions[pointerId]; + this._onTouchStart({ pointerId, pageX: position.x, pageY: position.y }); + break; + } +} +__name(onPointerUp, "onPointerUp"); +function onMouseDown(event) { + let mouseAction; + switch (event.button) { + case 0: + mouseAction = this.mouseButtons.LEFT; + break; + case 1: + mouseAction = this.mouseButtons.MIDDLE; + break; + case 2: + mouseAction = this.mouseButtons.RIGHT; + break; + default: + mouseAction = -1; + } + switch (mouseAction) { + case MOUSE.DOLLY: + if (this.enableZoom === false) return; + this._handleMouseDownDolly(event); + this.state = _STATE.DOLLY; + break; + case MOUSE.ROTATE: + if (event.ctrlKey || event.metaKey || event.shiftKey) { + if (this.enablePan === false) return; + this._handleMouseDownPan(event); + this.state = _STATE.PAN; + } else { + if (this.enableRotate === false) return; + this._handleMouseDownRotate(event); + this.state = _STATE.ROTATE; + } + break; + case MOUSE.PAN: + if (event.ctrlKey || event.metaKey || event.shiftKey) { + if (this.enableRotate === false) return; + this._handleMouseDownRotate(event); + this.state = _STATE.ROTATE; + } else { + if (this.enablePan === false) return; + this._handleMouseDownPan(event); + this.state = _STATE.PAN; + } + break; + default: + this.state = _STATE.NONE; + } + if (this.state !== _STATE.NONE) { + this.dispatchEvent(_startEvent); + } +} +__name(onMouseDown, "onMouseDown"); +function onMouseMove(event) { + switch (this.state) { + case _STATE.ROTATE: + if (this.enableRotate === false) return; + this._handleMouseMoveRotate(event); + break; + case _STATE.DOLLY: + if (this.enableZoom === false) return; + this._handleMouseMoveDolly(event); + break; + case _STATE.PAN: + if (this.enablePan === false) return; + this._handleMouseMovePan(event); + break; + } +} +__name(onMouseMove, "onMouseMove"); +function onMouseWheel(event) { + if (this.enabled === false || this.enableZoom === false || this.state !== _STATE.NONE) return; + event.preventDefault(); + this.dispatchEvent(_startEvent); + this._handleMouseWheel(this._customWheelEvent(event)); + this.dispatchEvent(_endEvent); +} +__name(onMouseWheel, "onMouseWheel"); +function onKeyDown(event) { + if (this.enabled === false || this.enablePan === false) return; + this._handleKeyDown(event); +} +__name(onKeyDown, "onKeyDown"); +function onTouchStart(event) { + this._trackPointer(event); + switch (this._pointers.length) { + case 1: + switch (this.touches.ONE) { + case TOUCH.ROTATE: + if (this.enableRotate === false) return; + this._handleTouchStartRotate(event); + this.state = _STATE.TOUCH_ROTATE; + break; + case TOUCH.PAN: + if (this.enablePan === false) return; + this._handleTouchStartPan(event); + this.state = _STATE.TOUCH_PAN; + break; + default: + this.state = _STATE.NONE; + } + break; + case 2: + switch (this.touches.TWO) { + case TOUCH.DOLLY_PAN: + if (this.enableZoom === false && this.enablePan === false) return; + this._handleTouchStartDollyPan(event); + this.state = _STATE.TOUCH_DOLLY_PAN; + break; + case TOUCH.DOLLY_ROTATE: + if (this.enableZoom === false && this.enableRotate === false) return; + this._handleTouchStartDollyRotate(event); + this.state = _STATE.TOUCH_DOLLY_ROTATE; + break; + default: + this.state = _STATE.NONE; + } + break; + default: + this.state = _STATE.NONE; + } + if (this.state !== _STATE.NONE) { + this.dispatchEvent(_startEvent); + } +} +__name(onTouchStart, "onTouchStart"); +function onTouchMove(event) { + this._trackPointer(event); + switch (this.state) { + case _STATE.TOUCH_ROTATE: + if (this.enableRotate === false) return; + this._handleTouchMoveRotate(event); + this.update(); + break; + case _STATE.TOUCH_PAN: + if (this.enablePan === false) return; + this._handleTouchMovePan(event); + this.update(); + break; + case _STATE.TOUCH_DOLLY_PAN: + if (this.enableZoom === false && this.enablePan === false) return; + this._handleTouchMoveDollyPan(event); + this.update(); + break; + case _STATE.TOUCH_DOLLY_ROTATE: + if (this.enableZoom === false && this.enableRotate === false) return; + this._handleTouchMoveDollyRotate(event); + this.update(); + break; + default: + this.state = _STATE.NONE; + } +} +__name(onTouchMove, "onTouchMove"); +function onContextMenu(event) { + if (this.enabled === false) return; + event.preventDefault(); +} +__name(onContextMenu, "onContextMenu"); +function interceptControlDown(event) { + if (event.key === "Control") { + this._controlActive = true; + const document2 = this.domElement.getRootNode(); + document2.addEventListener("keyup", this._interceptControlUp, { passive: true, capture: true }); + } +} +__name(interceptControlDown, "interceptControlDown"); +function interceptControlUp(event) { + if (event.key === "Control") { + this._controlActive = false; + const document2 = this.domElement.getRootNode(); + document2.removeEventListener("keyup", this._interceptControlUp, { passive: true, capture: true }); + } +} +__name(interceptControlUp, "interceptControlUp"); +/*! +fflate - fast JavaScript compression/decompression + +Licensed under MIT. https://github.com/101arrowz/fflate/blob/master/LICENSE +version 0.8.2 +*/ +var ch2 = {}; +var wk = /* @__PURE__ */ __name(function(c, id2, msg, transfer, cb) { + var w = new Worker(ch2[id2] || (ch2[id2] = URL.createObjectURL(new Blob([ + c + ';addEventListener("error",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})' + ], { type: "text/javascript" })))); + w.onmessage = function(e) { + var d = e.data, ed = d.$e$; + if (ed) { + var err2 = new Error(ed[0]); + err2["code"] = ed[1]; + err2.stack = ed[2]; + cb(err2, null); + } else + cb(null, d); + }; + w.postMessage(msg, transfer); + return w; +}, "wk"); +var u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array; +var fleb = new u8([ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 4, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 0, + /* unused */ + 0, + 0, + /* impossible */ + 0 +]); +var fdeb = new u8([ + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 4, + 4, + 5, + 5, + 6, + 6, + 7, + 7, + 8, + 8, + 9, + 9, + 10, + 10, + 11, + 11, + 12, + 12, + 13, + 13, + /* unused */ + 0, + 0 +]); +var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); +var freb = /* @__PURE__ */ __name(function(eb, start) { + var b = new u16(31); + for (var i = 0; i < 31; ++i) { + b[i] = start += 1 << eb[i - 1]; + } + var r = new i32(b[30]); + for (var i = 1; i < 30; ++i) { + for (var j = b[i]; j < b[i + 1]; ++j) { + r[j] = j - b[i] << 5 | i; + } + } + return { b, r }; +}, "freb"); +var _a = freb(fleb, 2), fl = _a.b, revfl = _a.r; +fl[28] = 258, revfl[258] = 28; +var _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r; +var rev = new u16(32768); +for (var i = 0; i < 32768; ++i) { + var x = (i & 43690) >> 1 | (i & 21845) << 1; + x = (x & 52428) >> 2 | (x & 13107) << 2; + x = (x & 61680) >> 4 | (x & 3855) << 4; + rev[i] = ((x & 65280) >> 8 | (x & 255) << 8) >> 1; +} +var hMap = /* @__PURE__ */ __name(function(cd, mb, r) { + var s = cd.length; + var i = 0; + var l = new u16(mb); + for (; i < s; ++i) { + if (cd[i]) + ++l[cd[i] - 1]; + } + var le = new u16(mb); + for (i = 1; i < mb; ++i) { + le[i] = le[i - 1] + l[i - 1] << 1; + } + var co; + if (r) { + co = new u16(1 << mb); + var rvb = 15 - mb; + for (i = 0; i < s; ++i) { + if (cd[i]) { + var sv = i << 4 | cd[i]; + var r_1 = mb - cd[i]; + var v = le[cd[i] - 1]++ << r_1; + for (var m = v | (1 << r_1) - 1; v <= m; ++v) { + co[rev[v] >> rvb] = sv; + } + } + } + } else { + co = new u16(s); + for (i = 0; i < s; ++i) { + if (cd[i]) { + co[i] = rev[le[cd[i] - 1]++] >> 15 - cd[i]; + } + } + } + return co; +}, "hMap"); +var flt = new u8(288); +for (var i = 0; i < 144; ++i) + flt[i] = 8; +for (var i = 144; i < 256; ++i) + flt[i] = 9; +for (var i = 256; i < 280; ++i) + flt[i] = 7; +for (var i = 280; i < 288; ++i) + flt[i] = 8; +var fdt = new u8(32); +for (var i = 0; i < 32; ++i) + fdt[i] = 5; +var flm = /* @__PURE__ */ hMap(flt, 9, 0), flrm = /* @__PURE__ */ hMap(flt, 9, 1); +var fdm = /* @__PURE__ */ hMap(fdt, 5, 0), fdrm = /* @__PURE__ */ hMap(fdt, 5, 1); +var max = /* @__PURE__ */ __name(function(a) { + var m = a[0]; + for (var i = 1; i < a.length; ++i) { + if (a[i] > m) + m = a[i]; + } + return m; +}, "max"); +var bits = /* @__PURE__ */ __name(function(d, p, m) { + var o = p / 8 | 0; + return (d[o] | d[o + 1] << 8) >> (p & 7) & m; +}, "bits"); +var bits16 = /* @__PURE__ */ __name(function(d, p) { + var o = p / 8 | 0; + return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >> (p & 7); +}, "bits16"); +var shft = /* @__PURE__ */ __name(function(p) { + return (p + 7) / 8 | 0; +}, "shft"); +var slc = /* @__PURE__ */ __name(function(v, s, e) { + if (s == null || s < 0) + s = 0; + if (e == null || e > v.length) + e = v.length; + return new u8(v.subarray(s, e)); +}, "slc"); +var FlateErrorCode = { + UnexpectedEOF: 0, + InvalidBlockType: 1, + InvalidLengthLiteral: 2, + InvalidDistance: 3, + StreamFinished: 4, + NoStreamHandler: 5, + InvalidHeader: 6, + NoCallback: 7, + InvalidUTF8: 8, + ExtraFieldTooLong: 9, + InvalidDate: 10, + FilenameTooLong: 11, + StreamFinishing: 12, + InvalidZipData: 13, + UnknownCompressionMethod: 14 +}; +var ec = [ + "unexpected EOF", + "invalid block type", + "invalid length/literal", + "invalid distance", + "stream finished", + "no stream handler", + , + "no callback", + "invalid UTF-8 data", + "extra field too long", + "date not in range 1980-2099", + "filename too long", + "stream finishing", + "invalid zip data" + // determined by unknown compression method +]; +; +var err = /* @__PURE__ */ __name(function(ind, msg, nt) { + var e = new Error(msg || ec[ind]); + e.code = ind; + if (Error.captureStackTrace) + Error.captureStackTrace(e, err); + if (!nt) + throw e; + return e; +}, "err"); +var inflt = /* @__PURE__ */ __name(function(dat, st, buf, dict) { + var sl = dat.length, dl = dict ? dict.length : 0; + if (!sl || st.f && !st.l) + return buf || new u8(0); + var noBuf = !buf; + var resize = noBuf || st.i != 2; + var noSt = st.i; + if (noBuf) + buf = new u8(sl * 3); + var cbuf = /* @__PURE__ */ __name(function(l2) { + var bl = buf.length; + if (l2 > bl) { + var nbuf = new u8(Math.max(bl * 2, l2)); + nbuf.set(buf); + buf = nbuf; + } + }, "cbuf"); + var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n; + var tbts = sl * 8; + do { + if (!lm) { + final = bits(dat, pos, 1); + var type = bits(dat, pos + 1, 3); + pos += 3; + if (!type) { + var s = shft(pos) + 4, l = dat[s - 4] | dat[s - 3] << 8, t2 = s + l; + if (t2 > sl) { + if (noSt) + err(0); + break; + } + if (resize) + cbuf(bt + l); + buf.set(dat.subarray(s, t2), bt); + st.b = bt += l, st.p = pos = t2 * 8, st.f = final; + continue; + } else if (type == 1) + lm = flrm, dm = fdrm, lbt = 9, dbt = 5; + else if (type == 2) { + var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4; + var tl = hLit + bits(dat, pos + 5, 31) + 1; + pos += 14; + var ldt = new u8(tl); + var clt = new u8(19); + for (var i = 0; i < hcLen; ++i) { + clt[clim[i]] = bits(dat, pos + i * 3, 7); + } + pos += hcLen * 3; + var clb = max(clt), clbmsk = (1 << clb) - 1; + var clm = hMap(clt, clb, 1); + for (var i = 0; i < tl; ) { + var r = clm[bits(dat, pos, clbmsk)]; + pos += r & 15; + var s = r >> 4; + if (s < 16) { + ldt[i++] = s; + } else { + var c = 0, n = 0; + if (s == 16) + n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1]; + else if (s == 17) + n = 3 + bits(dat, pos, 7), pos += 3; + else if (s == 18) + n = 11 + bits(dat, pos, 127), pos += 7; + while (n--) + ldt[i++] = c; + } + } + var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit); + lbt = max(lt); + dbt = max(dt); + lm = hMap(lt, lbt, 1); + dm = hMap(dt, dbt, 1); + } else + err(1); + if (pos > tbts) { + if (noSt) + err(0); + break; + } + } + if (resize) + cbuf(bt + 131072); + var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1; + var lpos = pos; + for (; ; lpos = pos) { + var c = lm[bits16(dat, pos) & lms], sym = c >> 4; + pos += c & 15; + if (pos > tbts) { + if (noSt) + err(0); + break; + } + if (!c) + err(2); + if (sym < 256) + buf[bt++] = sym; + else if (sym == 256) { + lpos = pos, lm = null; + break; + } else { + var add = sym - 254; + if (sym > 264) { + var i = sym - 257, b = fleb[i]; + add = bits(dat, pos, (1 << b) - 1) + fl[i]; + pos += b; + } + var d = dm[bits16(dat, pos) & dms], dsym = d >> 4; + if (!d) + err(3); + pos += d & 15; + var dt = fd[dsym]; + if (dsym > 3) { + var b = fdeb[dsym]; + dt += bits16(dat, pos) & (1 << b) - 1, pos += b; + } + if (pos > tbts) { + if (noSt) + err(0); + break; + } + if (resize) + cbuf(bt + 131072); + var end = bt + add; + if (bt < dt) { + var shift = dl - dt, dend = Math.min(dt, end); + if (shift + bt < 0) + err(3); + for (; bt < dend; ++bt) + buf[bt] = dict[shift + bt]; + } + for (; bt < end; ++bt) + buf[bt] = buf[bt - dt]; + } + } + st.l = lm, st.p = lpos, st.b = bt, st.f = final; + if (lm) + final = 1, st.m = lbt, st.d = dm, st.n = dbt; + } while (!final); + return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt); +}, "inflt"); +var wbits = /* @__PURE__ */ __name(function(d, p, v) { + v <<= p & 7; + var o = p / 8 | 0; + d[o] |= v; + d[o + 1] |= v >> 8; +}, "wbits"); +var wbits16 = /* @__PURE__ */ __name(function(d, p, v) { + v <<= p & 7; + var o = p / 8 | 0; + d[o] |= v; + d[o + 1] |= v >> 8; + d[o + 2] |= v >> 16; +}, "wbits16"); +var hTree = /* @__PURE__ */ __name(function(d, mb) { + var t2 = []; + for (var i = 0; i < d.length; ++i) { + if (d[i]) + t2.push({ s: i, f: d[i] }); + } + var s = t2.length; + var t22 = t2.slice(); + if (!s) + return { t: et, l: 0 }; + if (s == 1) { + var v = new u8(t2[0].s + 1); + v[t2[0].s] = 1; + return { t: v, l: 1 }; + } + t2.sort(function(a, b) { + return a.f - b.f; + }); + t2.push({ s: -1, f: 25001 }); + var l = t2[0], r = t2[1], i0 = 0, i1 = 1, i2 = 2; + t2[0] = { s: -1, f: l.f + r.f, l, r }; + while (i1 != s - 1) { + l = t2[t2[i0].f < t2[i2].f ? i0++ : i2++]; + r = t2[i0 != i1 && t2[i0].f < t2[i2].f ? i0++ : i2++]; + t2[i1++] = { s: -1, f: l.f + r.f, l, r }; + } + var maxSym = t22[0].s; + for (var i = 1; i < s; ++i) { + if (t22[i].s > maxSym) + maxSym = t22[i].s; + } + var tr = new u16(maxSym + 1); + var mbt = ln(t2[i1 - 1], tr, 0); + if (mbt > mb) { + var i = 0, dt = 0; + var lft = mbt - mb, cst = 1 << lft; + t22.sort(function(a, b) { + return tr[b.s] - tr[a.s] || a.f - b.f; + }); + for (; i < s; ++i) { + var i2_1 = t22[i].s; + if (tr[i2_1] > mb) { + dt += cst - (1 << mbt - tr[i2_1]); + tr[i2_1] = mb; + } else + break; + } + dt >>= lft; + while (dt > 0) { + var i2_2 = t22[i].s; + if (tr[i2_2] < mb) + dt -= 1 << mb - tr[i2_2]++ - 1; + else + ++i; + } + for (; i >= 0 && dt; --i) { + var i2_3 = t22[i].s; + if (tr[i2_3] == mb) { + --tr[i2_3]; + ++dt; + } + } + mbt = mb; + } + return { t: new u8(tr), l: mbt }; +}, "hTree"); +var ln = /* @__PURE__ */ __name(function(n, l, d) { + return n.s == -1 ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1)) : l[n.s] = d; +}, "ln"); +var lc = /* @__PURE__ */ __name(function(c) { + var s = c.length; + while (s && !c[--s]) + ; + var cl = new u16(++s); + var cli = 0, cln = c[0], cls = 1; + var w = /* @__PURE__ */ __name(function(v) { + cl[cli++] = v; + }, "w"); + for (var i = 1; i <= s; ++i) { + if (c[i] == cln && i != s) + ++cls; + else { + if (!cln && cls > 2) { + for (; cls > 138; cls -= 138) + w(32754); + if (cls > 2) { + w(cls > 10 ? cls - 11 << 5 | 28690 : cls - 3 << 5 | 12305); + cls = 0; + } + } else if (cls > 3) { + w(cln), --cls; + for (; cls > 6; cls -= 6) + w(8304); + if (cls > 2) + w(cls - 3 << 5 | 8208), cls = 0; + } + while (cls--) + w(cln); + cls = 1; + cln = c[i]; + } + } + return { c: cl.subarray(0, cli), n: s }; +}, "lc"); +var clen = /* @__PURE__ */ __name(function(cf, cl) { + var l = 0; + for (var i = 0; i < cl.length; ++i) + l += cf[i] * cl[i]; + return l; +}, "clen"); +var wfblk = /* @__PURE__ */ __name(function(out, pos, dat) { + var s = dat.length; + var o = shft(pos + 2); + out[o] = s & 255; + out[o + 1] = s >> 8; + out[o + 2] = out[o] ^ 255; + out[o + 3] = out[o + 1] ^ 255; + for (var i = 0; i < s; ++i) + out[o + i + 4] = dat[i]; + return (o + 4 + s) * 8; +}, "wfblk"); +var wblk = /* @__PURE__ */ __name(function(dat, out, final, syms, lf, df, eb, li, bs, bl, p) { + wbits(out, p++, final); + ++lf[256]; + var _a2 = hTree(lf, 15), dlt = _a2.t, mlb = _a2.l; + var _b2 = hTree(df, 15), ddt = _b2.t, mdb = _b2.l; + var _c = lc(dlt), lclt = _c.c, nlc = _c.n; + var _d = lc(ddt), lcdt = _d.c, ndc = _d.n; + var lcfreq = new u16(19); + for (var i = 0; i < lclt.length; ++i) + ++lcfreq[lclt[i] & 31]; + for (var i = 0; i < lcdt.length; ++i) + ++lcfreq[lcdt[i] & 31]; + var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l; + var nlcc = 19; + for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc) + ; + var flen = bl + 5 << 3; + var ftlen = clen(lf, flt) + clen(df, fdt) + eb; + var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18]; + if (bs >= 0 && flen <= ftlen && flen <= dtlen) + return wfblk(out, p, dat.subarray(bs, bs + bl)); + var lm, ll, dm, dl; + wbits(out, p, 1 + (dtlen < ftlen)), p += 2; + if (dtlen < ftlen) { + lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt; + var llm = hMap(lct, mlcb, 0); + wbits(out, p, nlc - 257); + wbits(out, p + 5, ndc - 1); + wbits(out, p + 10, nlcc - 4); + p += 14; + for (var i = 0; i < nlcc; ++i) + wbits(out, p + 3 * i, lct[clim[i]]); + p += 3 * nlcc; + var lcts = [lclt, lcdt]; + for (var it = 0; it < 2; ++it) { + var clct = lcts[it]; + for (var i = 0; i < clct.length; ++i) { + var len = clct[i] & 31; + wbits(out, p, llm[len]), p += lct[len]; + if (len > 15) + wbits(out, p, clct[i] >> 5 & 127), p += clct[i] >> 12; + } + } + } else { + lm = flm, ll = flt, dm = fdm, dl = fdt; + } + for (var i = 0; i < li; ++i) { + var sym = syms[i]; + if (sym > 255) { + var len = sym >> 18 & 31; + wbits16(out, p, lm[len + 257]), p += ll[len + 257]; + if (len > 7) + wbits(out, p, sym >> 23 & 31), p += fleb[len]; + var dst = sym & 31; + wbits16(out, p, dm[dst]), p += dl[dst]; + if (dst > 3) + wbits16(out, p, sym >> 5 & 8191), p += fdeb[dst]; + } else { + wbits16(out, p, lm[sym]), p += ll[sym]; + } + } + wbits16(out, p, lm[256]); + return p + ll[256]; +}, "wblk"); +var deo = /* @__PURE__ */ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]); +var et = /* @__PURE__ */ new u8(0); +var dflt = /* @__PURE__ */ __name(function(dat, lvl, plvl, pre, post, st) { + var s = st.z || dat.length; + var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7e3)) + post); + var w = o.subarray(pre, o.length - post); + var lst = st.l; + var pos = (st.r || 0) & 7; + if (lvl) { + if (pos) + w[0] = st.r >> 3; + var opt = deo[lvl - 1]; + var n = opt >> 13, c = opt & 8191; + var msk_1 = (1 << plvl) - 1; + var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1); + var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1; + var hsh = /* @__PURE__ */ __name(function(i2) { + return (dat[i2] ^ dat[i2 + 1] << bs1_1 ^ dat[i2 + 2] << bs2_1) & msk_1; + }, "hsh"); + var syms = new i32(25e3); + var lf = new u16(288), df = new u16(32); + var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0; + for (; i + 2 < s; ++i) { + var hv = hsh(i); + var imod = i & 32767, pimod = head[hv]; + prev[imod] = pimod; + head[hv] = imod; + if (wi <= i) { + var rem = s - i; + if ((lc_1 > 7e3 || li > 24576) && (rem > 423 || !lst)) { + pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos); + li = lc_1 = eb = 0, bs = i; + for (var j = 0; j < 286; ++j) + lf[j] = 0; + for (var j = 0; j < 30; ++j) + df[j] = 0; + } + var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767; + if (rem > 2 && hv == hsh(i - dif)) { + var maxn = Math.min(n, rem) - 1; + var maxd = Math.min(32767, i); + var ml = Math.min(258, rem); + while (dif <= maxd && --ch_1 && imod != pimod) { + if (dat[i + l] == dat[i + l - dif]) { + var nl = 0; + for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl) + ; + if (nl > l) { + l = nl, d = dif; + if (nl > maxn) + break; + var mmd = Math.min(dif, nl - 2); + var md = 0; + for (var j = 0; j < mmd; ++j) { + var ti = i - dif + j & 32767; + var pti = prev[ti]; + var cd = ti - pti & 32767; + if (cd > md) + md = cd, pimod = ti; + } + } + } + imod = pimod, pimod = prev[imod]; + dif += imod - pimod & 32767; + } + } + if (d) { + syms[li++] = 268435456 | revfl[l] << 18 | revfd[d]; + var lin = revfl[l] & 31, din = revfd[d] & 31; + eb += fleb[lin] + fdeb[din]; + ++lf[257 + lin]; + ++df[din]; + wi = i + l; + ++lc_1; + } else { + syms[li++] = dat[i]; + ++lf[dat[i]]; + } + } + } + for (i = Math.max(i, wi); i < s; ++i) { + syms[li++] = dat[i]; + ++lf[dat[i]]; + } + pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos); + if (!lst) { + st.r = pos & 7 | w[pos / 8 | 0] << 3; + pos -= 7; + st.h = head, st.p = prev, st.i = i, st.w = wi; + } + } else { + for (var i = st.w || 0; i < s + lst; i += 65535) { + var e = i + 65535; + if (e >= s) { + w[pos / 8 | 0] = lst; + e = s; + } + pos = wfblk(w, pos + 1, dat.subarray(i, e)); + } + st.i = s; + } + return slc(o, 0, pre + shft(pos) + post); +}, "dflt"); +var crct = /* @__PURE__ */ function() { + var t2 = new Int32Array(256); + for (var i = 0; i < 256; ++i) { + var c = i, k = 9; + while (--k) + c = (c & 1 && -306674912) ^ c >>> 1; + t2[i] = c; + } + return t2; +}(); +var crc = /* @__PURE__ */ __name(function() { + var c = -1; + return { + p: /* @__PURE__ */ __name(function(d) { + var cr = c; + for (var i = 0; i < d.length; ++i) + cr = crct[cr & 255 ^ d[i]] ^ cr >>> 8; + c = cr; + }, "p"), + d: /* @__PURE__ */ __name(function() { + return ~c; + }, "d") + }; +}, "crc"); +var adler = /* @__PURE__ */ __name(function() { + var a = 1, b = 0; + return { + p: /* @__PURE__ */ __name(function(d) { + var n = a, m = b; + var l = d.length | 0; + for (var i = 0; i != l; ) { + var e = Math.min(i + 2655, l); + for (; i < e; ++i) + m += n += d[i]; + n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16); + } + a = n, b = m; + }, "p"), + d: /* @__PURE__ */ __name(function() { + a %= 65521, b %= 65521; + return (a & 255) << 24 | (a & 65280) << 8 | (b & 255) << 8 | b >> 8; + }, "d") + }; +}, "adler"); +; +var dopt = /* @__PURE__ */ __name(function(dat, opt, pre, post, st) { + if (!st) { + st = { l: 1 }; + if (opt.dictionary) { + var dict = opt.dictionary.subarray(-32768); + var newDat = new u8(dict.length + dat.length); + newDat.set(dict); + newDat.set(dat, dict.length); + dat = newDat; + st.w = dict.length; + } + } + return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20 : 12 + opt.mem, pre, post, st); +}, "dopt"); +var mrg = /* @__PURE__ */ __name(function(a, b) { + var o = {}; + for (var k in a) + o[k] = a[k]; + for (var k in b) + o[k] = b[k]; + return o; +}, "mrg"); +var wcln = /* @__PURE__ */ __name(function(fn, fnStr, td2) { + var dt = fn(); + var st = fn.toString(); + var ks = st.slice(st.indexOf("[") + 1, st.lastIndexOf("]")).replace(/\s+/g, "").split(","); + for (var i = 0; i < dt.length; ++i) { + var v = dt[i], k = ks[i]; + if (typeof v == "function") { + fnStr += ";" + k + "="; + var st_1 = v.toString(); + if (v.prototype) { + if (st_1.indexOf("[native code]") != -1) { + var spInd = st_1.indexOf(" ", 8) + 1; + fnStr += st_1.slice(spInd, st_1.indexOf("(", spInd)); + } else { + fnStr += st_1; + for (var t2 in v.prototype) + fnStr += ";" + k + ".prototype." + t2 + "=" + v.prototype[t2].toString(); + } + } else + fnStr += st_1; + } else + td2[k] = v; + } + return fnStr; +}, "wcln"); +var ch = []; +var cbfs = /* @__PURE__ */ __name(function(v) { + var tl = []; + for (var k in v) { + if (v[k].buffer) { + tl.push((v[k] = new v[k].constructor(v[k])).buffer); + } + } + return tl; +}, "cbfs"); +var wrkr = /* @__PURE__ */ __name(function(fns, init, id2, cb) { + if (!ch[id2]) { + var fnStr = "", td_1 = {}, m = fns.length - 1; + for (var i = 0; i < m; ++i) + fnStr = wcln(fns[i], fnStr, td_1); + ch[id2] = { c: wcln(fns[m], fnStr, td_1), e: td_1 }; + } + var td2 = mrg({}, ch[id2].e); + return wk(ch[id2].c + ";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=" + init.toString() + "}", id2, td2, cbfs(td2), cb); +}, "wrkr"); +var bInflt = /* @__PURE__ */ __name(function() { + return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; +}, "bInflt"); +var bDflt = /* @__PURE__ */ __name(function() { + return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; +}, "bDflt"); +var gze = /* @__PURE__ */ __name(function() { + return [gzh, gzhl, wbytes, crc, crct]; +}, "gze"); +var guze = /* @__PURE__ */ __name(function() { + return [gzs, gzl]; +}, "guze"); +var zle = /* @__PURE__ */ __name(function() { + return [zlh, wbytes, adler]; +}, "zle"); +var zule = /* @__PURE__ */ __name(function() { + return [zls]; +}, "zule"); +var pbf = /* @__PURE__ */ __name(function(msg) { + return postMessage(msg, [msg.buffer]); +}, "pbf"); +var gopt = /* @__PURE__ */ __name(function(o) { + return o && { + out: o.size && new u8(o.size), + dictionary: o.dictionary + }; +}, "gopt"); +var cbify = /* @__PURE__ */ __name(function(dat, opts, fns, init, id2, cb) { + var w = wrkr(fns, init, id2, function(err2, dat2) { + w.terminate(); + cb(err2, dat2); + }); + w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []); + return function() { + w.terminate(); + }; +}, "cbify"); +var astrm = /* @__PURE__ */ __name(function(strm) { + strm.ondata = function(dat, final) { + return postMessage([dat, final], [dat.buffer]); + }; + return function(ev) { + if (ev.data.length) { + strm.push(ev.data[0], ev.data[1]); + postMessage([ev.data[0].length]); + } else + strm.flush(); + }; +}, "astrm"); +var astrmify = /* @__PURE__ */ __name(function(fns, strm, opts, init, id2, flush, ext2) { + var t2; + var w = wrkr(fns, init, id2, function(err2, dat) { + if (err2) + w.terminate(), strm.ondata.call(strm, err2); + else if (!Array.isArray(dat)) + ext2(dat); + else if (dat.length == 1) { + strm.queuedSize -= dat[0]; + if (strm.ondrain) + strm.ondrain(dat[0]); + } else { + if (dat[1]) + w.terminate(); + strm.ondata.call(strm, err2, dat[0], dat[1]); + } + }); + w.postMessage(opts); + strm.queuedSize = 0; + strm.push = function(d, f) { + if (!strm.ondata) + err(5); + if (t2) + strm.ondata(err(4, 0, 1), null, !!f); + strm.queuedSize += d.length; + w.postMessage([d, t2 = f], [d.buffer]); + }; + strm.terminate = function() { + w.terminate(); + }; + if (flush) { + strm.flush = function() { + w.postMessage([]); + }; + } +}, "astrmify"); +var b2 = /* @__PURE__ */ __name(function(d, b) { + return d[b] | d[b + 1] << 8; +}, "b2"); +var b4 = /* @__PURE__ */ __name(function(d, b) { + return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0; +}, "b4"); +var b8 = /* @__PURE__ */ __name(function(d, b) { + return b4(d, b) + b4(d, b + 4) * 4294967296; +}, "b8"); +var wbytes = /* @__PURE__ */ __name(function(d, b, v) { + for (; v; ++b) + d[b] = v, v >>>= 8; +}, "wbytes"); +var gzh = /* @__PURE__ */ __name(function(c, o) { + var fn = o.filename; + c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; + if (o.mtime != 0) + wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1e3)); + if (fn) { + c[3] = 8; + for (var i = 0; i <= fn.length; ++i) + c[i + 10] = fn.charCodeAt(i); + } +}, "gzh"); +var gzs = /* @__PURE__ */ __name(function(d) { + if (d[0] != 31 || d[1] != 139 || d[2] != 8) + err(6, "invalid gzip data"); + var flg = d[3]; + var st = 10; + if (flg & 4) + st += (d[10] | d[11] << 8) + 2; + for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++]) + ; + return st + (flg & 2); +}, "gzs"); +var gzl = /* @__PURE__ */ __name(function(d) { + var l = d.length; + return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0; +}, "gzl"); +var gzhl = /* @__PURE__ */ __name(function(o) { + return 10 + (o.filename ? o.filename.length + 1 : 0); +}, "gzhl"); +var zlh = /* @__PURE__ */ __name(function(c, o) { + var lv = o.level, fl2 = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2; + c[0] = 120, c[1] = fl2 << 6 | (o.dictionary && 32); + c[1] |= 31 - (c[0] << 8 | c[1]) % 31; + if (o.dictionary) { + var h = adler(); + h.p(o.dictionary); + wbytes(c, 2, h.d()); + } +}, "zlh"); +var zls = /* @__PURE__ */ __name(function(d, dict) { + if ((d[0] & 15) != 8 || d[0] >> 4 > 7 || (d[0] << 8 | d[1]) % 31) + err(6, "invalid zlib data"); + if ((d[1] >> 5 & 1) == +!dict) + err(6, "invalid zlib data: " + (d[1] & 32 ? "need" : "unexpected") + " dictionary"); + return (d[1] >> 3 & 4) + 2; +}, "zls"); +function StrmOpt(opts, cb) { + if (typeof opts == "function") + cb = opts, opts = {}; + this.ondata = cb; + return opts; +} +__name(StrmOpt, "StrmOpt"); +var Deflate = /* @__PURE__ */ function() { + function Deflate2(opts, cb) { + if (typeof opts == "function") + cb = opts, opts = {}; + this.ondata = cb; + this.o = opts || {}; + this.s = { l: 0, i: 32768, w: 32768, z: 32768 }; + this.b = new u8(98304); + if (this.o.dictionary) { + var dict = this.o.dictionary.subarray(-32768); + this.b.set(dict, 32768 - dict.length); + this.s.i = 32768 - dict.length; + } + } + __name(Deflate2, "Deflate"); + Deflate2.prototype.p = function(c, f) { + this.ondata(dopt(c, this.o, 0, 0, this.s), f); + }; + Deflate2.prototype.push = function(chunk, final) { + if (!this.ondata) + err(5); + if (this.s.l) + err(4); + var endLen = chunk.length + this.s.z; + if (endLen > this.b.length) { + if (endLen > 2 * this.b.length - 32768) { + var newBuf = new u8(endLen & -32768); + newBuf.set(this.b.subarray(0, this.s.z)); + this.b = newBuf; + } + var split = this.b.length - this.s.z; + this.b.set(chunk.subarray(0, split), this.s.z); + this.s.z = this.b.length; + this.p(this.b, false); + this.b.set(this.b.subarray(-32768)); + this.b.set(chunk.subarray(split), 32768); + this.s.z = chunk.length - split + 32768; + this.s.i = 32766, this.s.w = 32768; + } else { + this.b.set(chunk, this.s.z); + this.s.z += chunk.length; + } + this.s.l = final & 1; + if (this.s.z > this.s.w + 8191 || final) { + this.p(this.b, final || false); + this.s.w = this.s.i, this.s.i -= 2; + } + }; + Deflate2.prototype.flush = function() { + if (!this.ondata) + err(5); + if (this.s.l) + err(4); + this.p(this.b, false); + this.s.w = this.s.i, this.s.i -= 2; + }; + return Deflate2; +}(); +var AsyncDeflate = /* @__PURE__ */ function() { + function AsyncDeflate2(opts, cb) { + astrmify([ + bDflt, + function() { + return [astrm, Deflate]; + } + ], this, StrmOpt.call(this, opts, cb), function(ev) { + var strm = new Deflate(ev.data); + onmessage = astrm(strm); + }, 6, 1); + } + __name(AsyncDeflate2, "AsyncDeflate"); + return AsyncDeflate2; +}(); +function deflate(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + return cbify(data, opts, [ + bDflt + ], function(ev) { + return pbf(deflateSync(ev.data[0], ev.data[1])); + }, 0, cb); +} +__name(deflate, "deflate"); +function deflateSync(data, opts) { + return dopt(data, opts || {}, 0, 0); +} +__name(deflateSync, "deflateSync"); +var Inflate = /* @__PURE__ */ function() { + function Inflate2(opts, cb) { + if (typeof opts == "function") + cb = opts, opts = {}; + this.ondata = cb; + var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768); + this.s = { i: 0, b: dict ? dict.length : 0 }; + this.o = new u8(32768); + this.p = new u8(0); + if (dict) + this.o.set(dict); + } + __name(Inflate2, "Inflate"); + Inflate2.prototype.e = function(c) { + if (!this.ondata) + err(5); + if (this.d) + err(4); + if (!this.p.length) + this.p = c; + else if (c.length) { + var n = new u8(this.p.length + c.length); + n.set(this.p), n.set(c, this.p.length), this.p = n; + } + }; + Inflate2.prototype.c = function(final) { + this.s.i = +(this.d = final || false); + var bts = this.s.b; + var dt = inflt(this.p, this.s, this.o); + this.ondata(slc(dt, bts, this.s.b), this.d); + this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length; + this.p = slc(this.p, this.s.p / 8 | 0), this.s.p &= 7; + }; + Inflate2.prototype.push = function(chunk, final) { + this.e(chunk), this.c(final); + }; + return Inflate2; +}(); +var AsyncInflate = /* @__PURE__ */ function() { + function AsyncInflate2(opts, cb) { + astrmify([ + bInflt, + function() { + return [astrm, Inflate]; + } + ], this, StrmOpt.call(this, opts, cb), function(ev) { + var strm = new Inflate(ev.data); + onmessage = astrm(strm); + }, 7, 0); + } + __name(AsyncInflate2, "AsyncInflate"); + return AsyncInflate2; +}(); +function inflate(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + return cbify(data, opts, [ + bInflt + ], function(ev) { + return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); + }, 1, cb); +} +__name(inflate, "inflate"); +function inflateSync(data, opts) { + return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary); +} +__name(inflateSync, "inflateSync"); +var Gzip = /* @__PURE__ */ function() { + function Gzip2(opts, cb) { + this.c = crc(); + this.l = 0; + this.v = 1; + Deflate.call(this, opts, cb); + } + __name(Gzip2, "Gzip"); + Gzip2.prototype.push = function(chunk, final) { + this.c.p(chunk); + this.l += chunk.length; + Deflate.prototype.push.call(this, chunk, final); + }; + Gzip2.prototype.p = function(c, f) { + var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s); + if (this.v) + gzh(raw, this.o), this.v = 0; + if (f) + wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l); + this.ondata(raw, f); + }; + Gzip2.prototype.flush = function() { + Deflate.prototype.flush.call(this); + }; + return Gzip2; +}(); +var AsyncGzip = /* @__PURE__ */ function() { + function AsyncGzip2(opts, cb) { + astrmify([ + bDflt, + gze, + function() { + return [astrm, Deflate, Gzip]; + } + ], this, StrmOpt.call(this, opts, cb), function(ev) { + var strm = new Gzip(ev.data); + onmessage = astrm(strm); + }, 8, 1); + } + __name(AsyncGzip2, "AsyncGzip"); + return AsyncGzip2; +}(); +function gzip(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + return cbify(data, opts, [ + bDflt, + gze, + function() { + return [gzipSync]; + } + ], function(ev) { + return pbf(gzipSync(ev.data[0], ev.data[1])); + }, 2, cb); +} +__name(gzip, "gzip"); +function gzipSync(data, opts) { + if (!opts) + opts = {}; + var c = crc(), l = data.length; + c.p(data); + var d = dopt(data, opts, gzhl(opts), 8), s = d.length; + return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d; +} +__name(gzipSync, "gzipSync"); +var Gunzip = /* @__PURE__ */ function() { + function Gunzip2(opts, cb) { + this.v = 1; + this.r = 0; + Inflate.call(this, opts, cb); + } + __name(Gunzip2, "Gunzip"); + Gunzip2.prototype.push = function(chunk, final) { + Inflate.prototype.e.call(this, chunk); + this.r += chunk.length; + if (this.v) { + var p = this.p.subarray(this.v - 1); + var s = p.length > 3 ? gzs(p) : 4; + if (s > p.length) { + if (!final) + return; + } else if (this.v > 1 && this.onmember) { + this.onmember(this.r - p.length); + } + this.p = p.subarray(s), this.v = 0; + } + Inflate.prototype.c.call(this, final); + if (this.s.f && !this.s.l && !final) { + this.v = shft(this.s.p) + 9; + this.s = { i: 0 }; + this.o = new u8(0); + this.push(new u8(0), final); + } + }; + return Gunzip2; +}(); +var AsyncGunzip = /* @__PURE__ */ function() { + function AsyncGunzip2(opts, cb) { + var _this = this; + astrmify([ + bInflt, + guze, + function() { + return [astrm, Inflate, Gunzip]; + } + ], this, StrmOpt.call(this, opts, cb), function(ev) { + var strm = new Gunzip(ev.data); + strm.onmember = function(offset) { + return postMessage(offset); + }; + onmessage = astrm(strm); + }, 9, 0, function(offset) { + return _this.onmember && _this.onmember(offset); + }); + } + __name(AsyncGunzip2, "AsyncGunzip"); + return AsyncGunzip2; +}(); +function gunzip(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + return cbify(data, opts, [ + bInflt, + guze, + function() { + return [gunzipSync]; + } + ], function(ev) { + return pbf(gunzipSync(ev.data[0], ev.data[1])); + }, 3, cb); +} +__name(gunzip, "gunzip"); +function gunzipSync(data, opts) { + var st = gzs(data); + if (st + 8 > data.length) + err(6, "invalid gzip data"); + return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary); +} +__name(gunzipSync, "gunzipSync"); +var Zlib = /* @__PURE__ */ function() { + function Zlib2(opts, cb) { + this.c = adler(); + this.v = 1; + Deflate.call(this, opts, cb); + } + __name(Zlib2, "Zlib"); + Zlib2.prototype.push = function(chunk, final) { + this.c.p(chunk); + Deflate.prototype.push.call(this, chunk, final); + }; + Zlib2.prototype.p = function(c, f) { + var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s); + if (this.v) + zlh(raw, this.o), this.v = 0; + if (f) + wbytes(raw, raw.length - 4, this.c.d()); + this.ondata(raw, f); + }; + Zlib2.prototype.flush = function() { + Deflate.prototype.flush.call(this); + }; + return Zlib2; +}(); +var AsyncZlib = /* @__PURE__ */ function() { + function AsyncZlib2(opts, cb) { + astrmify([ + bDflt, + zle, + function() { + return [astrm, Deflate, Zlib]; + } + ], this, StrmOpt.call(this, opts, cb), function(ev) { + var strm = new Zlib(ev.data); + onmessage = astrm(strm); + }, 10, 1); + } + __name(AsyncZlib2, "AsyncZlib"); + return AsyncZlib2; +}(); +function zlib(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + return cbify(data, opts, [ + bDflt, + zle, + function() { + return [zlibSync]; + } + ], function(ev) { + return pbf(zlibSync(ev.data[0], ev.data[1])); + }, 4, cb); +} +__name(zlib, "zlib"); +function zlibSync(data, opts) { + if (!opts) + opts = {}; + var a = adler(); + a.p(data); + var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4); + return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d; +} +__name(zlibSync, "zlibSync"); +var Unzlib = /* @__PURE__ */ function() { + function Unzlib2(opts, cb) { + Inflate.call(this, opts, cb); + this.v = opts && opts.dictionary ? 2 : 1; + } + __name(Unzlib2, "Unzlib"); + Unzlib2.prototype.push = function(chunk, final) { + Inflate.prototype.e.call(this, chunk); + if (this.v) { + if (this.p.length < 6 && !final) + return; + this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0; + } + if (final) { + if (this.p.length < 4) + err(6, "invalid zlib data"); + this.p = this.p.subarray(0, -4); + } + Inflate.prototype.c.call(this, final); + }; + return Unzlib2; +}(); +var AsyncUnzlib = /* @__PURE__ */ function() { + function AsyncUnzlib2(opts, cb) { + astrmify([ + bInflt, + zule, + function() { + return [astrm, Inflate, Unzlib]; + } + ], this, StrmOpt.call(this, opts, cb), function(ev) { + var strm = new Unzlib(ev.data); + onmessage = astrm(strm); + }, 11, 0); + } + __name(AsyncUnzlib2, "AsyncUnzlib"); + return AsyncUnzlib2; +}(); +function unzlib(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + return cbify(data, opts, [ + bInflt, + zule, + function() { + return [unzlibSync]; + } + ], function(ev) { + return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); + }, 5, cb); +} +__name(unzlib, "unzlib"); +function unzlibSync(data, opts) { + return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary); +} +__name(unzlibSync, "unzlibSync"); +var Decompress = /* @__PURE__ */ function() { + function Decompress2(opts, cb) { + this.o = StrmOpt.call(this, opts, cb) || {}; + this.G = Gunzip; + this.I = Inflate; + this.Z = Unzlib; + } + __name(Decompress2, "Decompress"); + Decompress2.prototype.i = function() { + var _this = this; + this.s.ondata = function(dat, final) { + _this.ondata(dat, final); + }; + }; + Decompress2.prototype.push = function(chunk, final) { + if (!this.ondata) + err(5); + if (!this.s) { + if (this.p && this.p.length) { + var n = new u8(this.p.length + chunk.length); + n.set(this.p), n.set(chunk, this.p.length); + } else + this.p = chunk; + if (this.p.length > 2) { + this.s = this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8 ? new this.G(this.o) : (this.p[0] & 15) != 8 || this.p[0] >> 4 > 7 || (this.p[0] << 8 | this.p[1]) % 31 ? new this.I(this.o) : new this.Z(this.o); + this.i(); + this.s.push(this.p, final); + this.p = null; + } + } else + this.s.push(chunk, final); + }; + return Decompress2; +}(); +var AsyncDecompress = /* @__PURE__ */ function() { + function AsyncDecompress2(opts, cb) { + Decompress.call(this, opts, cb); + this.queuedSize = 0; + this.G = AsyncGunzip; + this.I = AsyncInflate; + this.Z = AsyncUnzlib; + } + __name(AsyncDecompress2, "AsyncDecompress"); + AsyncDecompress2.prototype.i = function() { + var _this = this; + this.s.ondata = function(err2, dat, final) { + _this.ondata(err2, dat, final); + }; + this.s.ondrain = function(size) { + _this.queuedSize -= size; + if (_this.ondrain) + _this.ondrain(size); + }; + }; + AsyncDecompress2.prototype.push = function(chunk, final) { + this.queuedSize += chunk.length; + Decompress.prototype.push.call(this, chunk, final); + }; + return AsyncDecompress2; +}(); +function decompress(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + return data[0] == 31 && data[1] == 139 && data[2] == 8 ? gunzip(data, opts, cb) : (data[0] & 15) != 8 || data[0] >> 4 > 7 || (data[0] << 8 | data[1]) % 31 ? inflate(data, opts, cb) : unzlib(data, opts, cb); +} +__name(decompress, "decompress"); +function decompressSync(data, opts) { + return data[0] == 31 && data[1] == 139 && data[2] == 8 ? gunzipSync(data, opts) : (data[0] & 15) != 8 || data[0] >> 4 > 7 || (data[0] << 8 | data[1]) % 31 ? inflateSync(data, opts) : unzlibSync(data, opts); +} +__name(decompressSync, "decompressSync"); +var fltn = /* @__PURE__ */ __name(function(d, p, t2, o) { + for (var k in d) { + var val = d[k], n = p + k, op = o; + if (Array.isArray(val)) + op = mrg(o, val[1]), val = val[0]; + if (val instanceof u8) + t2[n] = [val, op]; + else { + t2[n += "/"] = [new u8(0), op]; + fltn(val, n, t2, o); + } + } +}, "fltn"); +var te = typeof TextEncoder != "undefined" && /* @__PURE__ */ new TextEncoder(); +var td = typeof TextDecoder != "undefined" && /* @__PURE__ */ new TextDecoder(); +var tds = 0; +try { + td.decode(et, { stream: true }); + tds = 1; +} catch (e) { +} +var dutf8 = /* @__PURE__ */ __name(function(d) { + for (var r = "", i = 0; ; ) { + var c = d[i++]; + var eb = (c > 127) + (c > 223) + (c > 239); + if (i + eb > d.length) + return { s: r, r: slc(d, i - 1) }; + if (!eb) + r += String.fromCharCode(c); + else if (eb == 3) { + c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | d[i++] & 63) - 65536, r += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023); + } else if (eb & 1) + r += String.fromCharCode((c & 31) << 6 | d[i++] & 63); + else + r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | d[i++] & 63); + } +}, "dutf8"); +var DecodeUTF8 = /* @__PURE__ */ function() { + function DecodeUTF82(cb) { + this.ondata = cb; + if (tds) + this.t = new TextDecoder(); + else + this.p = et; + } + __name(DecodeUTF82, "DecodeUTF8"); + DecodeUTF82.prototype.push = function(chunk, final) { + if (!this.ondata) + err(5); + final = !!final; + if (this.t) { + this.ondata(this.t.decode(chunk, { stream: true }), final); + if (final) { + if (this.t.decode().length) + err(8); + this.t = null; + } + return; + } + if (!this.p) + err(4); + var dat = new u8(this.p.length + chunk.length); + dat.set(this.p); + dat.set(chunk, this.p.length); + var _a2 = dutf8(dat), s = _a2.s, r = _a2.r; + if (final) { + if (r.length) + err(8); + this.p = null; + } else + this.p = r; + this.ondata(s, final); + }; + return DecodeUTF82; +}(); +var EncodeUTF8 = /* @__PURE__ */ function() { + function EncodeUTF82(cb) { + this.ondata = cb; + } + __name(EncodeUTF82, "EncodeUTF8"); + EncodeUTF82.prototype.push = function(chunk, final) { + if (!this.ondata) + err(5); + if (this.d) + err(4); + this.ondata(strToU8(chunk), this.d = final || false); + }; + return EncodeUTF82; +}(); +function strToU8(str, latin1) { + if (latin1) { + var ar_1 = new u8(str.length); + for (var i = 0; i < str.length; ++i) + ar_1[i] = str.charCodeAt(i); + return ar_1; + } + if (te) + return te.encode(str); + var l = str.length; + var ar = new u8(str.length + (str.length >> 1)); + var ai = 0; + var w = /* @__PURE__ */ __name(function(v) { + ar[ai++] = v; + }, "w"); + for (var i = 0; i < l; ++i) { + if (ai + 5 > ar.length) { + var n = new u8(ai + 8 + (l - i << 1)); + n.set(ar); + ar = n; + } + var c = str.charCodeAt(i); + if (c < 128 || latin1) + w(c); + else if (c < 2048) + w(192 | c >> 6), w(128 | c & 63); + else if (c > 55295 && c < 57344) + c = 65536 + (c & 1023 << 10) | str.charCodeAt(++i) & 1023, w(240 | c >> 18), w(128 | c >> 12 & 63), w(128 | c >> 6 & 63), w(128 | c & 63); + else + w(224 | c >> 12), w(128 | c >> 6 & 63), w(128 | c & 63); + } + return slc(ar, 0, ai); +} +__name(strToU8, "strToU8"); +function strFromU8(dat, latin1) { + if (latin1) { + var r = ""; + for (var i = 0; i < dat.length; i += 16384) + r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384)); + return r; + } else if (td) { + return td.decode(dat); + } else { + var _a2 = dutf8(dat), s = _a2.s, r = _a2.r; + if (r.length) + err(8); + return s; + } +} +__name(strFromU8, "strFromU8"); +; +var dbf = /* @__PURE__ */ __name(function(l) { + return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; +}, "dbf"); +var slzh = /* @__PURE__ */ __name(function(d, b) { + return b + 30 + b2(d, b + 26) + b2(d, b + 28); +}, "slzh"); +var zh = /* @__PURE__ */ __name(function(d, b, z) { + var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20); + var _a2 = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a2[0], su = _a2[1], off = _a2[2]; + return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off]; +}, "zh"); +var z64e = /* @__PURE__ */ __name(function(d, b) { + for (; b2(d, b) != 1; b += 4 + b2(d, b + 2)) + ; + return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)]; +}, "z64e"); +var exfl = /* @__PURE__ */ __name(function(ex) { + var le = 0; + if (ex) { + for (var k in ex) { + var l = ex[k].length; + if (l > 65535) + err(9); + le += l + 4; + } + } + return le; +}, "exfl"); +var wzh = /* @__PURE__ */ __name(function(d, b, f, fn, u, c, ce, co) { + var fl2 = fn.length, ex = f.extra, col = co && co.length; + var exl = exfl(ex); + wbytes(d, b, ce != null ? 33639248 : 67324752), b += 4; + if (ce != null) + d[b++] = 20, d[b++] = f.os; + d[b] = 20, b += 2; + d[b++] = f.flag << 1 | (c < 0 && 8), d[b++] = u && 8; + d[b++] = f.compression & 255, d[b++] = f.compression >> 8; + var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980; + if (y < 0 || y > 119) + err(10); + wbytes(d, b, y << 25 | dt.getMonth() + 1 << 21 | dt.getDate() << 16 | dt.getHours() << 11 | dt.getMinutes() << 5 | dt.getSeconds() >> 1), b += 4; + if (c != -1) { + wbytes(d, b, f.crc); + wbytes(d, b + 4, c < 0 ? -c - 2 : c); + wbytes(d, b + 8, f.size); + } + wbytes(d, b + 12, fl2); + wbytes(d, b + 14, exl), b += 16; + if (ce != null) { + wbytes(d, b, col); + wbytes(d, b + 6, f.attrs); + wbytes(d, b + 10, ce), b += 14; + } + d.set(fn, b); + b += fl2; + if (exl) { + for (var k in ex) { + var exf = ex[k], l = exf.length; + wbytes(d, b, +k); + wbytes(d, b + 2, l); + d.set(exf, b + 4), b += 4 + l; + } + } + if (col) + d.set(co, b), b += col; + return b; +}, "wzh"); +var wzf = /* @__PURE__ */ __name(function(o, b, c, d, e) { + wbytes(o, b, 101010256); + wbytes(o, b + 8, c); + wbytes(o, b + 10, c); + wbytes(o, b + 12, d); + wbytes(o, b + 16, e); +}, "wzf"); +var ZipPassThrough = /* @__PURE__ */ function() { + function ZipPassThrough2(filename) { + this.filename = filename; + this.c = crc(); + this.size = 0; + this.compression = 0; + } + __name(ZipPassThrough2, "ZipPassThrough"); + ZipPassThrough2.prototype.process = function(chunk, final) { + this.ondata(null, chunk, final); + }; + ZipPassThrough2.prototype.push = function(chunk, final) { + if (!this.ondata) + err(5); + this.c.p(chunk); + this.size += chunk.length; + if (final) + this.crc = this.c.d(); + this.process(chunk, final || false); + }; + return ZipPassThrough2; +}(); +var ZipDeflate = /* @__PURE__ */ function() { + function ZipDeflate2(filename, opts) { + var _this = this; + if (!opts) + opts = {}; + ZipPassThrough.call(this, filename); + this.d = new Deflate(opts, function(dat, final) { + _this.ondata(null, dat, final); + }); + this.compression = 8; + this.flag = dbf(opts.level); + } + __name(ZipDeflate2, "ZipDeflate"); + ZipDeflate2.prototype.process = function(chunk, final) { + try { + this.d.push(chunk, final); + } catch (e) { + this.ondata(e, null, final); + } + }; + ZipDeflate2.prototype.push = function(chunk, final) { + ZipPassThrough.prototype.push.call(this, chunk, final); + }; + return ZipDeflate2; +}(); +var AsyncZipDeflate = /* @__PURE__ */ function() { + function AsyncZipDeflate2(filename, opts) { + var _this = this; + if (!opts) + opts = {}; + ZipPassThrough.call(this, filename); + this.d = new AsyncDeflate(opts, function(err2, dat, final) { + _this.ondata(err2, dat, final); + }); + this.compression = 8; + this.flag = dbf(opts.level); + this.terminate = this.d.terminate; + } + __name(AsyncZipDeflate2, "AsyncZipDeflate"); + AsyncZipDeflate2.prototype.process = function(chunk, final) { + this.d.push(chunk, final); + }; + AsyncZipDeflate2.prototype.push = function(chunk, final) { + ZipPassThrough.prototype.push.call(this, chunk, final); + }; + return AsyncZipDeflate2; +}(); +var Zip = /* @__PURE__ */ function() { + function Zip2(cb) { + this.ondata = cb; + this.u = []; + this.d = 1; + } + __name(Zip2, "Zip"); + Zip2.prototype.add = function(file2) { + var _this = this; + if (!this.ondata) + err(5); + if (this.d & 2) + this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false); + else { + var f = strToU8(file2.filename), fl_1 = f.length; + var com = file2.comment, o = com && strToU8(com); + var u = fl_1 != file2.filename.length || o && com.length != o.length; + var hl_1 = fl_1 + exfl(file2.extra) + 30; + if (fl_1 > 65535) + this.ondata(err(11, 0, 1), null, false); + var header = new u8(hl_1); + wzh(header, 0, file2, f, u, -1); + var chks_1 = [header]; + var pAll_1 = /* @__PURE__ */ __name(function() { + for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) { + var chk = chks_2[_i]; + _this.ondata(null, chk, false); + } + chks_1 = []; + }, "pAll_1"); + var tr_1 = this.d; + this.d = 0; + var ind_1 = this.u.length; + var uf_1 = mrg(file2, { + f, + u, + o, + t: /* @__PURE__ */ __name(function() { + if (file2.terminate) + file2.terminate(); + }, "t"), + r: /* @__PURE__ */ __name(function() { + pAll_1(); + if (tr_1) { + var nxt = _this.u[ind_1 + 1]; + if (nxt) + nxt.r(); + else + _this.d = 1; + } + tr_1 = 1; + }, "r") + }); + var cl_1 = 0; + file2.ondata = function(err2, dat, final) { + if (err2) { + _this.ondata(err2, dat, final); + _this.terminate(); + } else { + cl_1 += dat.length; + chks_1.push(dat); + if (final) { + var dd = new u8(16); + wbytes(dd, 0, 134695760); + wbytes(dd, 4, file2.crc); + wbytes(dd, 8, cl_1); + wbytes(dd, 12, file2.size); + chks_1.push(dd); + uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file2.crc, uf_1.size = file2.size; + if (tr_1) + uf_1.r(); + tr_1 = 1; + } else if (tr_1) + pAll_1(); + } + }; + this.u.push(uf_1); + } + }; + Zip2.prototype.end = function() { + var _this = this; + if (this.d & 2) { + this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true); + return; + } + if (this.d) + this.e(); + else + this.u.push({ + r: /* @__PURE__ */ __name(function() { + if (!(_this.d & 1)) + return; + _this.u.splice(-1, 1); + _this.e(); + }, "r"), + t: /* @__PURE__ */ __name(function() { + }, "t") + }); + this.d = 3; + }; + Zip2.prototype.e = function() { + var bt = 0, l = 0, tl = 0; + for (var _i = 0, _a2 = this.u; _i < _a2.length; _i++) { + var f = _a2[_i]; + tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0); + } + var out = new u8(tl + 22); + for (var _b2 = 0, _c = this.u; _b2 < _c.length; _b2++) { + var f = _c[_b2]; + wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o); + bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b; + } + wzf(out, bt, this.u.length, tl, l); + this.ondata(null, out, true); + this.d = 2; + }; + Zip2.prototype.terminate = function() { + for (var _i = 0, _a2 = this.u; _i < _a2.length; _i++) { + var f = _a2[_i]; + f.t(); + } + this.d = 2; + }; + return Zip2; +}(); +function zip(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + var r = {}; + fltn(data, "", r, opts); + var k = Object.keys(r); + var lft = k.length, o = 0, tot = 0; + var slft = lft, files = new Array(lft); + var term = []; + var tAll = /* @__PURE__ */ __name(function() { + for (var i2 = 0; i2 < term.length; ++i2) + term[i2](); + }, "tAll"); + var cbd = /* @__PURE__ */ __name(function(a, b) { + mt(function() { + cb(a, b); + }); + }, "cbd"); + mt(function() { + cbd = cb; + }); + var cbf = /* @__PURE__ */ __name(function() { + var out = new u8(tot + 22), oe = o, cdl = tot - o; + tot = 0; + for (var i2 = 0; i2 < slft; ++i2) { + var f = files[i2]; + try { + var l = f.c.length; + wzh(out, tot, f, f.f, f.u, l); + var badd = 30 + f.f.length + exfl(f.extra); + var loc = tot + badd; + out.set(f.c, loc); + wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l; + } catch (e) { + return cbd(e, null); + } + } + wzf(out, o, files.length, cdl, oe); + cbd(null, out); + }, "cbf"); + if (!lft) + cbf(); + var _loop_1 = /* @__PURE__ */ __name(function(i2) { + var fn = k[i2]; + var _a2 = r[fn], file2 = _a2[0], p = _a2[1]; + var c = crc(), size = file2.length; + c.p(file2); + var f = strToU8(fn), s = f.length; + var com = p.comment, m = com && strToU8(com), ms = m && m.length; + var exl = exfl(p.extra); + var compression = p.level == 0 ? 0 : 8; + var cbl = /* @__PURE__ */ __name(function(e, d) { + if (e) { + tAll(); + cbd(e, null); + } else { + var l = d.length; + files[i2] = mrg(p, { + size, + crc: c.d(), + c: d, + f, + m, + u: s != fn.length || m && com.length != ms, + compression + }); + o += 30 + s + exl + l; + tot += 76 + 2 * (s + exl) + (ms || 0) + l; + if (!--lft) + cbf(); + } + }, "cbl"); + if (s > 65535) + cbl(err(11, 0, 1), null); + if (!compression) + cbl(null, file2); + else if (size < 16e4) { + try { + cbl(null, deflateSync(file2, p)); + } catch (e) { + cbl(e, null); + } + } else + term.push(deflate(file2, p, cbl)); + }, "_loop_1"); + for (var i = 0; i < slft; ++i) { + _loop_1(i); + } + return tAll; +} +__name(zip, "zip"); +function zipSync(data, opts) { + if (!opts) + opts = {}; + var r = {}; + var files = []; + fltn(data, "", r, opts); + var o = 0; + var tot = 0; + for (var fn in r) { + var _a2 = r[fn], file2 = _a2[0], p = _a2[1]; + var compression = p.level == 0 ? 0 : 8; + var f = strToU8(fn), s = f.length; + var com = p.comment, m = com && strToU8(com), ms = m && m.length; + var exl = exfl(p.extra); + if (s > 65535) + err(11); + var d = compression ? deflateSync(file2, p) : file2, l = d.length; + var c = crc(); + c.p(file2); + files.push(mrg(p, { + size: file2.length, + crc: c.d(), + c: d, + f, + m, + u: s != fn.length || m && com.length != ms, + o, + compression + })); + o += 30 + s + exl + l; + tot += 76 + 2 * (s + exl) + (ms || 0) + l; + } + var out = new u8(tot + 22), oe = o, cdl = tot - o; + for (var i = 0; i < files.length; ++i) { + var f = files[i]; + wzh(out, f.o, f, f.f, f.u, f.c.length); + var badd = 30 + f.f.length + exfl(f.extra); + out.set(f.c, f.o + badd); + wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0); + } + wzf(out, o, files.length, cdl, oe); + return out; +} +__name(zipSync, "zipSync"); +var UnzipPassThrough = /* @__PURE__ */ function() { + function UnzipPassThrough2() { + } + __name(UnzipPassThrough2, "UnzipPassThrough"); + UnzipPassThrough2.prototype.push = function(data, final) { + this.ondata(null, data, final); + }; + UnzipPassThrough2.compression = 0; + return UnzipPassThrough2; +}(); +var UnzipInflate = /* @__PURE__ */ function() { + function UnzipInflate2() { + var _this = this; + this.i = new Inflate(function(dat, final) { + _this.ondata(null, dat, final); + }); + } + __name(UnzipInflate2, "UnzipInflate"); + UnzipInflate2.prototype.push = function(data, final) { + try { + this.i.push(data, final); + } catch (e) { + this.ondata(e, null, final); + } + }; + UnzipInflate2.compression = 8; + return UnzipInflate2; +}(); +var AsyncUnzipInflate = /* @__PURE__ */ function() { + function AsyncUnzipInflate2(_, sz) { + var _this = this; + if (sz < 32e4) { + this.i = new Inflate(function(dat, final) { + _this.ondata(null, dat, final); + }); + } else { + this.i = new AsyncInflate(function(err2, dat, final) { + _this.ondata(err2, dat, final); + }); + this.terminate = this.i.terminate; + } + } + __name(AsyncUnzipInflate2, "AsyncUnzipInflate"); + AsyncUnzipInflate2.prototype.push = function(data, final) { + if (this.i.terminate) + data = slc(data, 0); + this.i.push(data, final); + }; + AsyncUnzipInflate2.compression = 8; + return AsyncUnzipInflate2; +}(); +var Unzip = /* @__PURE__ */ function() { + function Unzip2(cb) { + this.onfile = cb; + this.k = []; + this.o = { + 0: UnzipPassThrough + }; + this.p = et; + } + __name(Unzip2, "Unzip"); + Unzip2.prototype.push = function(chunk, final) { + var _this = this; + if (!this.onfile) + err(5); + if (!this.p) + err(4); + if (this.c > 0) { + var len = Math.min(this.c, chunk.length); + var toAdd = chunk.subarray(0, len); + this.c -= len; + if (this.d) + this.d.push(toAdd, !this.c); + else + this.k[0].push(toAdd); + chunk = chunk.subarray(len); + if (chunk.length) + return this.push(chunk, final); + } else { + var f = 0, i = 0, is = void 0, buf = void 0; + if (!this.p.length) + buf = chunk; + else if (!chunk.length) + buf = this.p; + else { + buf = new u8(this.p.length + chunk.length); + buf.set(this.p), buf.set(chunk, this.p.length); + } + var l = buf.length, oc = this.c, add = oc && this.d; + var _loop_2 = /* @__PURE__ */ __name(function() { + var _a2; + var sig = b4(buf, i); + if (sig == 67324752) { + f = 1, is = i; + this_1.d = null; + this_1.c = 0; + var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28); + if (l > i + 30 + fnl + es) { + var chks_3 = []; + this_1.k.unshift(chks_3); + f = 2; + var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22); + var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u); + if (sc_1 == 4294967295) { + _a2 = dd ? [-2] : z64e(buf, i), sc_1 = _a2[0], su_1 = _a2[1]; + } else if (dd) + sc_1 = -1; + i += es; + this_1.c = sc_1; + var d_1; + var file_1 = { + name: fn_1, + compression: cmp_1, + start: /* @__PURE__ */ __name(function() { + if (!file_1.ondata) + err(5); + if (!sc_1) + file_1.ondata(null, et, true); + else { + var ctr = _this.o[cmp_1]; + if (!ctr) + file_1.ondata(err(14, "unknown compression type " + cmp_1, 1), null, false); + d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1); + d_1.ondata = function(err2, dat3, final2) { + file_1.ondata(err2, dat3, final2); + }; + for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) { + var dat2 = chks_4[_i]; + d_1.push(dat2, false); + } + if (_this.k[0] == chks_3 && _this.c) + _this.d = d_1; + else + d_1.push(et, true); + } + }, "start"), + terminate: /* @__PURE__ */ __name(function() { + if (d_1 && d_1.terminate) + d_1.terminate(); + }, "terminate") + }; + if (sc_1 >= 0) + file_1.size = sc_1, file_1.originalSize = su_1; + this_1.onfile(file_1); + } + return "break"; + } else if (oc) { + if (sig == 134695760) { + is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0; + return "break"; + } else if (sig == 33639248) { + is = i -= 4, f = 3, this_1.c = 0; + return "break"; + } + } + }, "_loop_2"); + var this_1 = this; + for (; i < l - 4; ++i) { + var state_1 = _loop_2(); + if (state_1 === "break") + break; + } + this.p = et; + if (oc < 0) { + var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 134695760 && 4)) : buf.subarray(0, i); + if (add) + add.push(dat, !!f); + else + this.k[+(f == 2)].push(dat); + } + if (f & 2) + return this.push(buf.subarray(i), final); + this.p = buf.subarray(i); + } + if (final) { + if (this.c) + err(13); + this.p = null; + } + }; + Unzip2.prototype.register = function(decoder) { + this.o[decoder.compression] = decoder; + }; + return Unzip2; +}(); +var mt = typeof queueMicrotask == "function" ? queueMicrotask : typeof setTimeout == "function" ? setTimeout : function(fn) { + fn(); +}; +function unzip(data, opts, cb) { + if (!cb) + cb = opts, opts = {}; + if (typeof cb != "function") + err(7); + var term = []; + var tAll = /* @__PURE__ */ __name(function() { + for (var i2 = 0; i2 < term.length; ++i2) + term[i2](); + }, "tAll"); + var files = {}; + var cbd = /* @__PURE__ */ __name(function(a, b) { + mt(function() { + cb(a, b); + }); + }, "cbd"); + mt(function() { + cbd = cb; + }); + var e = data.length - 22; + for (; b4(data, e) != 101010256; --e) { + if (!e || data.length - e > 65558) { + cbd(err(13, 0, 1), null); + return tAll; + } + } + ; + var lft = b2(data, e + 8); + if (lft) { + var c = lft; + var o = b4(data, e + 16); + var z = o == 4294967295 || c == 65535; + if (z) { + var ze = b4(data, e - 12); + z = b4(data, ze) == 101075792; + if (z) { + c = lft = b4(data, ze + 32); + o = b4(data, ze + 48); + } + } + var fltr = opts && opts.filter; + var _loop_3 = /* @__PURE__ */ __name(function(i2) { + var _a2 = zh(data, o, z), c_1 = _a2[0], sc = _a2[1], su = _a2[2], fn = _a2[3], no = _a2[4], off = _a2[5], b = slzh(data, off); + o = no; + var cbl = /* @__PURE__ */ __name(function(e2, d) { + if (e2) { + tAll(); + cbd(e2, null); + } else { + if (d) + files[fn] = d; + if (!--lft) + cbd(null, files); + } + }, "cbl"); + if (!fltr || fltr({ + name: fn, + size: sc, + originalSize: su, + compression: c_1 + })) { + if (!c_1) + cbl(null, slc(data, b, b + sc)); + else if (c_1 == 8) { + var infl = data.subarray(b, b + sc); + if (su < 524288 || sc > 0.8 * su) { + try { + cbl(null, inflateSync(infl, { out: new u8(su) })); + } catch (e2) { + cbl(e2, null); + } + } else + term.push(inflate(infl, { size: su }, cbl)); + } else + cbl(err(14, "unknown compression type " + c_1, 1), null); + } else + cbl(null, null); + }, "_loop_3"); + for (var i = 0; i < c; ++i) { + _loop_3(i); + } + } else + cbd(null, {}); + return tAll; +} +__name(unzip, "unzip"); +function unzipSync(data, opts) { + var files = {}; + var e = data.length - 22; + for (; b4(data, e) != 101010256; --e) { + if (!e || data.length - e > 65558) + err(13); + } + ; + var c = b2(data, e + 8); + if (!c) + return {}; + var o = b4(data, e + 16); + var z = o == 4294967295 || c == 65535; + if (z) { + var ze = b4(data, e - 12); + z = b4(data, ze) == 101075792; + if (z) { + c = b4(data, ze + 32); + o = b4(data, ze + 48); + } + } + var fltr = opts && opts.filter; + for (var i = 0; i < c; ++i) { + var _a2 = zh(data, o, z), c_2 = _a2[0], sc = _a2[1], su = _a2[2], fn = _a2[3], no = _a2[4], off = _a2[5], b = slzh(data, off); + o = no; + if (!fltr || fltr({ + name: fn, + size: sc, + originalSize: su, + compression: c_2 + })) { + if (!c_2) + files[fn] = slc(data, b, b + sc); + else if (c_2 == 8) + files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) }); + else + err(14, "unknown compression type " + c_2); + } + } + return files; +} +__name(unzipSync, "unzipSync"); +function findSpan(p, u, U) { + const n = U.length - p - 1; + if (u >= U[n]) { + return n - 1; + } + if (u <= U[p]) { + return p; + } + let low = p; + let high = n; + let mid = Math.floor((low + high) / 2); + while (u < U[mid] || u >= U[mid + 1]) { + if (u < U[mid]) { + high = mid; + } else { + low = mid; + } + mid = Math.floor((low + high) / 2); + } + return mid; +} +__name(findSpan, "findSpan"); +function calcBasisFunctions(span, u, p, U) { + const N = []; + const left = []; + const right = []; + N[0] = 1; + for (let j = 1; j <= p; ++j) { + left[j] = u - U[span + 1 - j]; + right[j] = U[span + j] - u; + let saved = 0; + for (let r = 0; r < j; ++r) { + const rv = right[r + 1]; + const lv = left[j - r]; + const temp = N[r] / (rv + lv); + N[r] = saved + rv * temp; + saved = lv * temp; + } + N[j] = saved; + } + return N; +} +__name(calcBasisFunctions, "calcBasisFunctions"); +function calcBSplinePoint(p, U, P, u) { + const span = findSpan(p, u, U); + const N = calcBasisFunctions(span, u, p, U); + const C = new Vector4(0, 0, 0, 0); + for (let j = 0; j <= p; ++j) { + const point = P[span - p + j]; + const Nj = N[j]; + const wNj = point.w * Nj; + C.x += point.x * wNj; + C.y += point.y * wNj; + C.z += point.z * wNj; + C.w += point.w * Nj; + } + return C; +} +__name(calcBSplinePoint, "calcBSplinePoint"); +function calcBasisFunctionDerivatives(span, u, p, n, U) { + const zeroArr = []; + for (let i = 0; i <= p; ++i) + zeroArr[i] = 0; + const ders = []; + for (let i = 0; i <= n; ++i) + ders[i] = zeroArr.slice(0); + const ndu = []; + for (let i = 0; i <= p; ++i) + ndu[i] = zeroArr.slice(0); + ndu[0][0] = 1; + const left = zeroArr.slice(0); + const right = zeroArr.slice(0); + for (let j = 1; j <= p; ++j) { + left[j] = u - U[span + 1 - j]; + right[j] = U[span + j] - u; + let saved = 0; + for (let r2 = 0; r2 < j; ++r2) { + const rv = right[r2 + 1]; + const lv = left[j - r2]; + ndu[j][r2] = rv + lv; + const temp = ndu[r2][j - 1] / ndu[j][r2]; + ndu[r2][j] = saved + rv * temp; + saved = lv * temp; + } + ndu[j][j] = saved; + } + for (let j = 0; j <= p; ++j) { + ders[0][j] = ndu[j][p]; + } + for (let r2 = 0; r2 <= p; ++r2) { + let s1 = 0; + let s2 = 1; + const a = []; + for (let i = 0; i <= p; ++i) { + a[i] = zeroArr.slice(0); + } + a[0][0] = 1; + for (let k = 1; k <= n; ++k) { + let d = 0; + const rk = r2 - k; + const pk = p - k; + if (r2 >= k) { + a[s2][0] = a[s1][0] / ndu[pk + 1][rk]; + d = a[s2][0] * ndu[rk][pk]; + } + const j1 = rk >= -1 ? 1 : -rk; + const j2 = r2 - 1 <= pk ? k - 1 : p - r2; + for (let j3 = j1; j3 <= j2; ++j3) { + a[s2][j3] = (a[s1][j3] - a[s1][j3 - 1]) / ndu[pk + 1][rk + j3]; + d += a[s2][j3] * ndu[rk + j3][pk]; + } + if (r2 <= pk) { + a[s2][k] = -a[s1][k - 1] / ndu[pk + 1][r2]; + d += a[s2][k] * ndu[r2][pk]; + } + ders[k][r2] = d; + const j = s1; + s1 = s2; + s2 = j; + } + } + let r = p; + for (let k = 1; k <= n; ++k) { + for (let j = 0; j <= p; ++j) { + ders[k][j] *= r; + } + r *= p - k; + } + return ders; +} +__name(calcBasisFunctionDerivatives, "calcBasisFunctionDerivatives"); +function calcBSplineDerivatives(p, U, P, u, nd) { + const du = nd < p ? nd : p; + const CK = []; + const span = findSpan(p, u, U); + const nders = calcBasisFunctionDerivatives(span, u, p, du, U); + const Pw = []; + for (let i = 0; i < P.length; ++i) { + const point = P[i].clone(); + const w = point.w; + point.x *= w; + point.y *= w; + point.z *= w; + Pw[i] = point; + } + for (let k = 0; k <= du; ++k) { + const point = Pw[span - p].clone().multiplyScalar(nders[k][0]); + for (let j = 1; j <= p; ++j) { + point.add(Pw[span - p + j].clone().multiplyScalar(nders[k][j])); + } + CK[k] = point; + } + for (let k = du + 1; k <= nd + 1; ++k) { + CK[k] = new Vector4(0, 0, 0); + } + return CK; +} +__name(calcBSplineDerivatives, "calcBSplineDerivatives"); +function calcKoverI(k, i) { + let nom = 1; + for (let j = 2; j <= k; ++j) { + nom *= j; + } + let denom = 1; + for (let j = 2; j <= i; ++j) { + denom *= j; + } + for (let j = 2; j <= k - i; ++j) { + denom *= j; + } + return nom / denom; +} +__name(calcKoverI, "calcKoverI"); +function calcRationalCurveDerivatives(Pders) { + const nd = Pders.length; + const Aders = []; + const wders = []; + for (let i = 0; i < nd; ++i) { + const point = Pders[i]; + Aders[i] = new Vector3(point.x, point.y, point.z); + wders[i] = point.w; + } + const CK = []; + for (let k = 0; k < nd; ++k) { + const v = Aders[k].clone(); + for (let i = 1; i <= k; ++i) { + v.sub(CK[k - i].clone().multiplyScalar(calcKoverI(k, i) * wders[i])); + } + CK[k] = v.divideScalar(wders[0]); + } + return CK; +} +__name(calcRationalCurveDerivatives, "calcRationalCurveDerivatives"); +function calcNURBSDerivatives(p, U, P, u, nd) { + const Pders = calcBSplineDerivatives(p, U, P, u, nd); + return calcRationalCurveDerivatives(Pders); +} +__name(calcNURBSDerivatives, "calcNURBSDerivatives"); +function calcSurfacePoint(p, q, U, V, P, u, v, target) { + const uspan = findSpan(p, u, U); + const vspan = findSpan(q, v, V); + const Nu = calcBasisFunctions(uspan, u, p, U); + const Nv = calcBasisFunctions(vspan, v, q, V); + const temp = []; + for (let l = 0; l <= q; ++l) { + temp[l] = new Vector4(0, 0, 0, 0); + for (let k = 0; k <= p; ++k) { + const point = P[uspan - p + k][vspan - q + l].clone(); + const w = point.w; + point.x *= w; + point.y *= w; + point.z *= w; + temp[l].add(point.multiplyScalar(Nu[k])); + } + } + const Sw = new Vector4(0, 0, 0, 0); + for (let l = 0; l <= q; ++l) { + Sw.add(temp[l].multiplyScalar(Nv[l])); + } + Sw.divideScalar(Sw.w); + target.set(Sw.x, Sw.y, Sw.z); +} +__name(calcSurfacePoint, "calcSurfacePoint"); +function calcVolumePoint(p, q, r, U, V, W, P, u, v, w, target) { + const uspan = findSpan(p, u, U); + const vspan = findSpan(q, v, V); + const wspan = findSpan(r, w, W); + const Nu = calcBasisFunctions(uspan, u, p, U); + const Nv = calcBasisFunctions(vspan, v, q, V); + const Nw = calcBasisFunctions(wspan, w, r, W); + const temp = []; + for (let m = 0; m <= r; ++m) { + temp[m] = []; + for (let l = 0; l <= q; ++l) { + temp[m][l] = new Vector4(0, 0, 0, 0); + for (let k = 0; k <= p; ++k) { + const point = P[uspan - p + k][vspan - q + l][wspan - r + m].clone(); + const w2 = point.w; + point.x *= w2; + point.y *= w2; + point.z *= w2; + temp[m][l].add(point.multiplyScalar(Nu[k])); + } + } + } + const Sw = new Vector4(0, 0, 0, 0); + for (let m = 0; m <= r; ++m) { + for (let l = 0; l <= q; ++l) { + Sw.add(temp[m][l].multiplyScalar(Nw[m]).multiplyScalar(Nv[l])); + } + } + Sw.divideScalar(Sw.w); + target.set(Sw.x, Sw.y, Sw.z); +} +__name(calcVolumePoint, "calcVolumePoint"); +class NURBSCurve extends Curve { + static { + __name(this, "NURBSCurve"); + } + constructor(degree, knots, controlPoints, startKnot, endKnot) { + super(); + const knotsLength = knots ? knots.length - 1 : 0; + const pointsLength = controlPoints ? controlPoints.length : 0; + this.degree = degree; + this.knots = knots; + this.controlPoints = []; + this.startKnot = startKnot || 0; + this.endKnot = endKnot || knotsLength; + for (let i = 0; i < pointsLength; ++i) { + const point = controlPoints[i]; + this.controlPoints[i] = new Vector4(point.x, point.y, point.z, point.w); + } + } + getPoint(t2, optionalTarget = new Vector3()) { + const point = optionalTarget; + const u = this.knots[this.startKnot] + t2 * (this.knots[this.endKnot] - this.knots[this.startKnot]); + const hpoint = calcBSplinePoint(this.degree, this.knots, this.controlPoints, u); + if (hpoint.w !== 1) { + hpoint.divideScalar(hpoint.w); + } + return point.set(hpoint.x, hpoint.y, hpoint.z); + } + getTangent(t2, optionalTarget = new Vector3()) { + const tangent = optionalTarget; + const u = this.knots[0] + t2 * (this.knots[this.knots.length - 1] - this.knots[0]); + const ders = calcNURBSDerivatives(this.degree, this.knots, this.controlPoints, u, 1); + tangent.copy(ders[1]).normalize(); + return tangent; + } + toJSON() { + const data = super.toJSON(); + data.degree = this.degree; + data.knots = [...this.knots]; + data.controlPoints = this.controlPoints.map((p) => p.toArray()); + data.startKnot = this.startKnot; + data.endKnot = this.endKnot; + return data; + } + fromJSON(json) { + super.fromJSON(json); + this.degree = json.degree; + this.knots = [...json.knots]; + this.controlPoints = json.controlPoints.map((p) => new Vector4(p[0], p[1], p[2], p[3])); + this.startKnot = json.startKnot; + this.endKnot = json.endKnot; + return this; + } +} +let fbxTree; +let connections; +let sceneGraph; +class FBXLoader extends Loader { + static { + __name(this, "FBXLoader"); + } + constructor(manager) { + super(manager); + } + load(url, onLoad, onProgress, onError) { + const scope = this; + const path = scope.path === "" ? LoaderUtils.extractUrlBase(url) : scope.path; + const loader = new FileLoader(this.manager); + loader.setPath(scope.path); + loader.setResponseType("arraybuffer"); + loader.setRequestHeader(scope.requestHeader); + loader.setWithCredentials(scope.withCredentials); + loader.load(url, function(buffer) { + try { + onLoad(scope.parse(buffer, path)); + } catch (e) { + if (onError) { + onError(e); + } else { + console.error(e); + } + scope.manager.itemError(url); + } + }, onProgress, onError); + } + parse(FBXBuffer, path) { + if (isFbxFormatBinary(FBXBuffer)) { + fbxTree = new BinaryParser().parse(FBXBuffer); + } else { + const FBXText = convertArrayBufferToString(FBXBuffer); + if (!isFbxFormatASCII(FBXText)) { + throw new Error("THREE.FBXLoader: Unknown format."); + } + if (getFbxVersion(FBXText) < 7e3) { + throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: " + getFbxVersion(FBXText)); + } + fbxTree = new TextParser().parse(FBXText); + } + const textureLoader = new TextureLoader(this.manager).setPath(this.resourcePath || path).setCrossOrigin(this.crossOrigin); + return new FBXTreeParser(textureLoader, this.manager).parse(fbxTree); + } +} +class FBXTreeParser { + static { + __name(this, "FBXTreeParser"); + } + constructor(textureLoader, manager) { + this.textureLoader = textureLoader; + this.manager = manager; + } + parse() { + connections = this.parseConnections(); + const images = this.parseImages(); + const textures = this.parseTextures(images); + const materials = this.parseMaterials(textures); + const deformers = this.parseDeformers(); + const geometryMap = new GeometryParser().parse(deformers); + this.parseScene(deformers, geometryMap, materials); + return sceneGraph; + } + // Parses FBXTree.Connections which holds parent-child connections between objects (e.g. material -> texture, model->geometry ) + // and details the connection type + parseConnections() { + const connectionMap = /* @__PURE__ */ new Map(); + if ("Connections" in fbxTree) { + const rawConnections = fbxTree.Connections.connections; + rawConnections.forEach(function(rawConnection) { + const fromID = rawConnection[0]; + const toID = rawConnection[1]; + const relationship = rawConnection[2]; + if (!connectionMap.has(fromID)) { + connectionMap.set(fromID, { + parents: [], + children: [] + }); + } + const parentRelationship = { ID: toID, relationship }; + connectionMap.get(fromID).parents.push(parentRelationship); + if (!connectionMap.has(toID)) { + connectionMap.set(toID, { + parents: [], + children: [] + }); + } + const childRelationship = { ID: fromID, relationship }; + connectionMap.get(toID).children.push(childRelationship); + }); + } + return connectionMap; + } + // Parse FBXTree.Objects.Video for embedded image data + // These images are connected to textures in FBXTree.Objects.Textures + // via FBXTree.Connections. + parseImages() { + const images = {}; + const blobs = {}; + if ("Video" in fbxTree.Objects) { + const videoNodes = fbxTree.Objects.Video; + for (const nodeID in videoNodes) { + const videoNode = videoNodes[nodeID]; + const id2 = parseInt(nodeID); + images[id2] = videoNode.RelativeFilename || videoNode.Filename; + if ("Content" in videoNode) { + const arrayBufferContent = videoNode.Content instanceof ArrayBuffer && videoNode.Content.byteLength > 0; + const base64Content = typeof videoNode.Content === "string" && videoNode.Content !== ""; + if (arrayBufferContent || base64Content) { + const image = this.parseImage(videoNodes[nodeID]); + blobs[videoNode.RelativeFilename || videoNode.Filename] = image; + } + } + } + } + for (const id2 in images) { + const filename = images[id2]; + if (blobs[filename] !== void 0) images[id2] = blobs[filename]; + else images[id2] = images[id2].split("\\").pop(); + } + return images; + } + // Parse embedded image data in FBXTree.Video.Content + parseImage(videoNode) { + const content = videoNode.Content; + const fileName = videoNode.RelativeFilename || videoNode.Filename; + const extension = fileName.slice(fileName.lastIndexOf(".") + 1).toLowerCase(); + let type; + switch (extension) { + case "bmp": + type = "image/bmp"; + break; + case "jpg": + case "jpeg": + type = "image/jpeg"; + break; + case "png": + type = "image/png"; + break; + case "tif": + type = "image/tiff"; + break; + case "tga": + if (this.manager.getHandler(".tga") === null) { + console.warn("FBXLoader: TGA loader not found, skipping ", fileName); + } + type = "image/tga"; + break; + default: + console.warn('FBXLoader: Image type "' + extension + '" is not supported.'); + return; + } + if (typeof content === "string") { + return "data:" + type + ";base64," + content; + } else { + const array = new Uint8Array(content); + return window.URL.createObjectURL(new Blob([array], { type })); + } + } + // Parse nodes in FBXTree.Objects.Texture + // These contain details such as UV scaling, cropping, rotation etc and are connected + // to images in FBXTree.Objects.Video + parseTextures(images) { + const textureMap = /* @__PURE__ */ new Map(); + if ("Texture" in fbxTree.Objects) { + const textureNodes = fbxTree.Objects.Texture; + for (const nodeID in textureNodes) { + const texture = this.parseTexture(textureNodes[nodeID], images); + textureMap.set(parseInt(nodeID), texture); + } + } + return textureMap; + } + // Parse individual node in FBXTree.Objects.Texture + parseTexture(textureNode, images) { + const texture = this.loadTexture(textureNode, images); + texture.ID = textureNode.id; + texture.name = textureNode.attrName; + const wrapModeU = textureNode.WrapModeU; + const wrapModeV = textureNode.WrapModeV; + const valueU = wrapModeU !== void 0 ? wrapModeU.value : 0; + const valueV = wrapModeV !== void 0 ? wrapModeV.value : 0; + texture.wrapS = valueU === 0 ? RepeatWrapping : ClampToEdgeWrapping; + texture.wrapT = valueV === 0 ? RepeatWrapping : ClampToEdgeWrapping; + if ("Scaling" in textureNode) { + const values = textureNode.Scaling.value; + texture.repeat.x = values[0]; + texture.repeat.y = values[1]; + } + if ("Translation" in textureNode) { + const values = textureNode.Translation.value; + texture.offset.x = values[0]; + texture.offset.y = values[1]; + } + return texture; + } + // load a texture specified as a blob or data URI, or via an external URL using TextureLoader + loadTexture(textureNode, images) { + const nonNativeExtensions = /* @__PURE__ */ new Set(["tga", "tif", "tiff", "exr", "dds", "hdr", "ktx2"]); + const extension = textureNode.FileName.split(".").pop().toLowerCase(); + const loader = nonNativeExtensions.has(extension) ? this.manager.getHandler(`.${extension}`) : this.textureLoader; + if (!loader) { + console.warn( + `FBXLoader: ${extension.toUpperCase()} loader not found, creating placeholder texture for`, + textureNode.RelativeFilename + ); + return new Texture(); + } + const loaderPath = loader.path; + if (!loaderPath) { + loader.setPath(this.textureLoader.path); + } + const children = connections.get(textureNode.id).children; + let fileName; + if (children !== void 0 && children.length > 0 && images[children[0].ID] !== void 0) { + fileName = images[children[0].ID]; + if (fileName.indexOf("blob:") === 0 || fileName.indexOf("data:") === 0) { + loader.setPath(void 0); + } + } + const texture = loader.load(fileName); + loader.setPath(loaderPath); + return texture; + } + // Parse nodes in FBXTree.Objects.Material + parseMaterials(textureMap) { + const materialMap = /* @__PURE__ */ new Map(); + if ("Material" in fbxTree.Objects) { + const materialNodes = fbxTree.Objects.Material; + for (const nodeID in materialNodes) { + const material = this.parseMaterial(materialNodes[nodeID], textureMap); + if (material !== null) materialMap.set(parseInt(nodeID), material); + } + } + return materialMap; + } + // Parse single node in FBXTree.Objects.Material + // Materials are connected to texture maps in FBXTree.Objects.Textures + // FBX format currently only supports Lambert and Phong shading models + parseMaterial(materialNode, textureMap) { + const ID = materialNode.id; + const name = materialNode.attrName; + let type = materialNode.ShadingModel; + if (typeof type === "object") { + type = type.value; + } + if (!connections.has(ID)) return null; + const parameters = this.parseParameters(materialNode, textureMap, ID); + let material; + switch (type.toLowerCase()) { + case "phong": + material = new MeshPhongMaterial(); + break; + case "lambert": + material = new MeshLambertMaterial(); + break; + default: + console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.', type); + material = new MeshPhongMaterial(); + break; + } + material.setValues(parameters); + material.name = name; + return material; + } + // Parse FBX material and return parameters suitable for a three.js material + // Also parse the texture map and return any textures associated with the material + parseParameters(materialNode, textureMap, ID) { + const parameters = {}; + if (materialNode.BumpFactor) { + parameters.bumpScale = materialNode.BumpFactor.value; + } + if (materialNode.Diffuse) { + parameters.color = ColorManagement.toWorkingColorSpace(new Color().fromArray(materialNode.Diffuse.value), SRGBColorSpace); + } else if (materialNode.DiffuseColor && (materialNode.DiffuseColor.type === "Color" || materialNode.DiffuseColor.type === "ColorRGB")) { + parameters.color = ColorManagement.toWorkingColorSpace(new Color().fromArray(materialNode.DiffuseColor.value), SRGBColorSpace); + } + if (materialNode.DisplacementFactor) { + parameters.displacementScale = materialNode.DisplacementFactor.value; + } + if (materialNode.Emissive) { + parameters.emissive = ColorManagement.toWorkingColorSpace(new Color().fromArray(materialNode.Emissive.value), SRGBColorSpace); + } else if (materialNode.EmissiveColor && (materialNode.EmissiveColor.type === "Color" || materialNode.EmissiveColor.type === "ColorRGB")) { + parameters.emissive = ColorManagement.toWorkingColorSpace(new Color().fromArray(materialNode.EmissiveColor.value), SRGBColorSpace); + } + if (materialNode.EmissiveFactor) { + parameters.emissiveIntensity = parseFloat(materialNode.EmissiveFactor.value); + } + parameters.opacity = 1 - (materialNode.TransparencyFactor ? parseFloat(materialNode.TransparencyFactor.value) : 0); + if (parameters.opacity === 1 || parameters.opacity === 0) { + parameters.opacity = materialNode.Opacity ? parseFloat(materialNode.Opacity.value) : null; + if (parameters.opacity === null) { + parameters.opacity = 1 - (materialNode.TransparentColor ? parseFloat(materialNode.TransparentColor.value[0]) : 0); + } + } + if (parameters.opacity < 1) { + parameters.transparent = true; + } + if (materialNode.ReflectionFactor) { + parameters.reflectivity = materialNode.ReflectionFactor.value; + } + if (materialNode.Shininess) { + parameters.shininess = materialNode.Shininess.value; + } + if (materialNode.Specular) { + parameters.specular = ColorManagement.toWorkingColorSpace(new Color().fromArray(materialNode.Specular.value), SRGBColorSpace); + } else if (materialNode.SpecularColor && materialNode.SpecularColor.type === "Color") { + parameters.specular = ColorManagement.toWorkingColorSpace(new Color().fromArray(materialNode.SpecularColor.value), SRGBColorSpace); + } + const scope = this; + connections.get(ID).children.forEach(function(child) { + const type = child.relationship; + switch (type) { + case "Bump": + parameters.bumpMap = scope.getTexture(textureMap, child.ID); + break; + case "Maya|TEX_ao_map": + parameters.aoMap = scope.getTexture(textureMap, child.ID); + break; + case "DiffuseColor": + case "Maya|TEX_color_map": + parameters.map = scope.getTexture(textureMap, child.ID); + if (parameters.map !== void 0) { + parameters.map.colorSpace = SRGBColorSpace; + } + break; + case "DisplacementColor": + parameters.displacementMap = scope.getTexture(textureMap, child.ID); + break; + case "EmissiveColor": + parameters.emissiveMap = scope.getTexture(textureMap, child.ID); + if (parameters.emissiveMap !== void 0) { + parameters.emissiveMap.colorSpace = SRGBColorSpace; + } + break; + case "NormalMap": + case "Maya|TEX_normal_map": + parameters.normalMap = scope.getTexture(textureMap, child.ID); + break; + case "ReflectionColor": + parameters.envMap = scope.getTexture(textureMap, child.ID); + if (parameters.envMap !== void 0) { + parameters.envMap.mapping = EquirectangularReflectionMapping; + parameters.envMap.colorSpace = SRGBColorSpace; + } + break; + case "SpecularColor": + parameters.specularMap = scope.getTexture(textureMap, child.ID); + if (parameters.specularMap !== void 0) { + parameters.specularMap.colorSpace = SRGBColorSpace; + } + break; + case "TransparentColor": + case "TransparencyFactor": + parameters.alphaMap = scope.getTexture(textureMap, child.ID); + parameters.transparent = true; + break; + case "AmbientColor": + case "ShininessExponent": + case "SpecularFactor": + case "VectorDisplacementColor": + default: + console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.", type); + break; + } + }); + return parameters; + } + // get a texture from the textureMap for use by a material. + getTexture(textureMap, id2) { + if ("LayeredTexture" in fbxTree.Objects && id2 in fbxTree.Objects.LayeredTexture) { + console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."); + id2 = connections.get(id2).children[0].ID; + } + return textureMap.get(id2); + } + // Parse nodes in FBXTree.Objects.Deformer + // Deformer node can contain skinning or Vertex Cache animation data, however only skinning is supported here + // Generates map of Skeleton-like objects for use later when generating and binding skeletons. + parseDeformers() { + const skeletons = {}; + const morphTargets = {}; + if ("Deformer" in fbxTree.Objects) { + const DeformerNodes = fbxTree.Objects.Deformer; + for (const nodeID in DeformerNodes) { + const deformerNode = DeformerNodes[nodeID]; + const relationships = connections.get(parseInt(nodeID)); + if (deformerNode.attrType === "Skin") { + const skeleton = this.parseSkeleton(relationships, DeformerNodes); + skeleton.ID = nodeID; + if (relationships.parents.length > 1) console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."); + skeleton.geometryID = relationships.parents[0].ID; + skeletons[nodeID] = skeleton; + } else if (deformerNode.attrType === "BlendShape") { + const morphTarget = { + id: nodeID + }; + morphTarget.rawTargets = this.parseMorphTargets(relationships, DeformerNodes); + morphTarget.id = nodeID; + if (relationships.parents.length > 1) console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."); + morphTargets[nodeID] = morphTarget; + } + } + } + return { + skeletons, + morphTargets + }; + } + // Parse single nodes in FBXTree.Objects.Deformer + // The top level skeleton node has type 'Skin' and sub nodes have type 'Cluster' + // Each skin node represents a skeleton and each cluster node represents a bone + parseSkeleton(relationships, deformerNodes) { + const rawBones = []; + relationships.children.forEach(function(child) { + const boneNode = deformerNodes[child.ID]; + if (boneNode.attrType !== "Cluster") return; + const rawBone = { + ID: child.ID, + indices: [], + weights: [], + transformLink: new Matrix4().fromArray(boneNode.TransformLink.a) + // transform: new Matrix4().fromArray( boneNode.Transform.a ), + // linkMode: boneNode.Mode, + }; + if ("Indexes" in boneNode) { + rawBone.indices = boneNode.Indexes.a; + rawBone.weights = boneNode.Weights.a; + } + rawBones.push(rawBone); + }); + return { + rawBones, + bones: [] + }; + } + // The top level morph deformer node has type "BlendShape" and sub nodes have type "BlendShapeChannel" + parseMorphTargets(relationships, deformerNodes) { + const rawMorphTargets = []; + for (let i = 0; i < relationships.children.length; i++) { + const child = relationships.children[i]; + const morphTargetNode = deformerNodes[child.ID]; + const rawMorphTarget = { + name: morphTargetNode.attrName, + initialWeight: morphTargetNode.DeformPercent, + id: morphTargetNode.id, + fullWeights: morphTargetNode.FullWeights.a + }; + if (morphTargetNode.attrType !== "BlendShapeChannel") return; + rawMorphTarget.geoID = connections.get(parseInt(child.ID)).children.filter(function(child2) { + return child2.relationship === void 0; + })[0].ID; + rawMorphTargets.push(rawMorphTarget); + } + return rawMorphTargets; + } + // create the main Group() to be returned by the loader + parseScene(deformers, geometryMap, materialMap) { + sceneGraph = new Group(); + const modelMap = this.parseModels(deformers.skeletons, geometryMap, materialMap); + const modelNodes = fbxTree.Objects.Model; + const scope = this; + modelMap.forEach(function(model) { + const modelNode = modelNodes[model.ID]; + scope.setLookAtProperties(model, modelNode); + const parentConnections = connections.get(model.ID).parents; + parentConnections.forEach(function(connection) { + const parent = modelMap.get(connection.ID); + if (parent !== void 0) parent.add(model); + }); + if (model.parent === null) { + sceneGraph.add(model); + } + }); + this.bindSkeleton(deformers.skeletons, geometryMap, modelMap); + this.addGlobalSceneSettings(); + sceneGraph.traverse(function(node) { + if (node.userData.transformData) { + if (node.parent) { + node.userData.transformData.parentMatrix = node.parent.matrix; + node.userData.transformData.parentMatrixWorld = node.parent.matrixWorld; + } + const transform = generateTransform(node.userData.transformData); + node.applyMatrix4(transform); + node.updateWorldMatrix(); + } + }); + const animations = new AnimationParser().parse(); + if (sceneGraph.children.length === 1 && sceneGraph.children[0].isGroup) { + sceneGraph.children[0].animations = animations; + sceneGraph = sceneGraph.children[0]; + } + sceneGraph.animations = animations; + } + // parse nodes in FBXTree.Objects.Model + parseModels(skeletons, geometryMap, materialMap) { + const modelMap = /* @__PURE__ */ new Map(); + const modelNodes = fbxTree.Objects.Model; + for (const nodeID in modelNodes) { + const id2 = parseInt(nodeID); + const node = modelNodes[nodeID]; + const relationships = connections.get(id2); + let model = this.buildSkeleton(relationships, skeletons, id2, node.attrName); + if (!model) { + switch (node.attrType) { + case "Camera": + model = this.createCamera(relationships); + break; + case "Light": + model = this.createLight(relationships); + break; + case "Mesh": + model = this.createMesh(relationships, geometryMap, materialMap); + break; + case "NurbsCurve": + model = this.createCurve(relationships, geometryMap); + break; + case "LimbNode": + case "Root": + model = new Bone(); + break; + case "Null": + default: + model = new Group(); + break; + } + model.name = node.attrName ? PropertyBinding.sanitizeNodeName(node.attrName) : ""; + model.userData.originalName = node.attrName; + model.ID = id2; + } + this.getTransformData(model, node); + modelMap.set(id2, model); + } + return modelMap; + } + buildSkeleton(relationships, skeletons, id2, name) { + let bone = null; + relationships.parents.forEach(function(parent) { + for (const ID in skeletons) { + const skeleton = skeletons[ID]; + skeleton.rawBones.forEach(function(rawBone, i) { + if (rawBone.ID === parent.ID) { + const subBone = bone; + bone = new Bone(); + bone.matrixWorld.copy(rawBone.transformLink); + bone.name = name ? PropertyBinding.sanitizeNodeName(name) : ""; + bone.userData.originalName = name; + bone.ID = id2; + skeleton.bones[i] = bone; + if (subBone !== null) { + bone.add(subBone); + } + } + }); + } + }); + return bone; + } + // create a PerspectiveCamera or OrthographicCamera + createCamera(relationships) { + let model; + let cameraAttribute; + relationships.children.forEach(function(child) { + const attr = fbxTree.Objects.NodeAttribute[child.ID]; + if (attr !== void 0) { + cameraAttribute = attr; + } + }); + if (cameraAttribute === void 0) { + model = new Object3D(); + } else { + let type = 0; + if (cameraAttribute.CameraProjectionType !== void 0 && cameraAttribute.CameraProjectionType.value === 1) { + type = 1; + } + let nearClippingPlane = 1; + if (cameraAttribute.NearPlane !== void 0) { + nearClippingPlane = cameraAttribute.NearPlane.value / 1e3; + } + let farClippingPlane = 1e3; + if (cameraAttribute.FarPlane !== void 0) { + farClippingPlane = cameraAttribute.FarPlane.value / 1e3; + } + let width = window.innerWidth; + let height = window.innerHeight; + if (cameraAttribute.AspectWidth !== void 0 && cameraAttribute.AspectHeight !== void 0) { + width = cameraAttribute.AspectWidth.value; + height = cameraAttribute.AspectHeight.value; + } + const aspect2 = width / height; + let fov2 = 45; + if (cameraAttribute.FieldOfView !== void 0) { + fov2 = cameraAttribute.FieldOfView.value; + } + const focalLength = cameraAttribute.FocalLength ? cameraAttribute.FocalLength.value : null; + switch (type) { + case 0: + model = new PerspectiveCamera(fov2, aspect2, nearClippingPlane, farClippingPlane); + if (focalLength !== null) model.setFocalLength(focalLength); + break; + case 1: + console.warn("THREE.FBXLoader: Orthographic cameras not supported yet."); + model = new Object3D(); + break; + default: + console.warn("THREE.FBXLoader: Unknown camera type " + type + "."); + model = new Object3D(); + break; + } + } + return model; + } + // Create a DirectionalLight, PointLight or SpotLight + createLight(relationships) { + let model; + let lightAttribute; + relationships.children.forEach(function(child) { + const attr = fbxTree.Objects.NodeAttribute[child.ID]; + if (attr !== void 0) { + lightAttribute = attr; + } + }); + if (lightAttribute === void 0) { + model = new Object3D(); + } else { + let type; + if (lightAttribute.LightType === void 0) { + type = 0; + } else { + type = lightAttribute.LightType.value; + } + let color = 16777215; + if (lightAttribute.Color !== void 0) { + color = ColorManagement.toWorkingColorSpace(new Color().fromArray(lightAttribute.Color.value), SRGBColorSpace); + } + let intensity = lightAttribute.Intensity === void 0 ? 1 : lightAttribute.Intensity.value / 100; + if (lightAttribute.CastLightOnObject !== void 0 && lightAttribute.CastLightOnObject.value === 0) { + intensity = 0; + } + let distance = 0; + if (lightAttribute.FarAttenuationEnd !== void 0) { + if (lightAttribute.EnableFarAttenuation !== void 0 && lightAttribute.EnableFarAttenuation.value === 0) { + distance = 0; + } else { + distance = lightAttribute.FarAttenuationEnd.value; + } + } + const decay = 1; + switch (type) { + case 0: + model = new PointLight(color, intensity, distance, decay); + break; + case 1: + model = new DirectionalLight(color, intensity); + break; + case 2: + let angle = Math.PI / 3; + if (lightAttribute.InnerAngle !== void 0) { + angle = MathUtils.degToRad(lightAttribute.InnerAngle.value); + } + let penumbra = 0; + if (lightAttribute.OuterAngle !== void 0) { + penumbra = MathUtils.degToRad(lightAttribute.OuterAngle.value); + penumbra = Math.max(penumbra, 1); + } + model = new SpotLight(color, intensity, distance, angle, penumbra, decay); + break; + default: + console.warn("THREE.FBXLoader: Unknown light type " + lightAttribute.LightType.value + ", defaulting to a PointLight."); + model = new PointLight(color, intensity); + break; + } + if (lightAttribute.CastShadows !== void 0 && lightAttribute.CastShadows.value === 1) { + model.castShadow = true; + } + } + return model; + } + createMesh(relationships, geometryMap, materialMap) { + let model; + let geometry = null; + let material = null; + const materials = []; + relationships.children.forEach(function(child) { + if (geometryMap.has(child.ID)) { + geometry = geometryMap.get(child.ID); + } + if (materialMap.has(child.ID)) { + materials.push(materialMap.get(child.ID)); + } + }); + if (materials.length > 1) { + material = materials; + } else if (materials.length > 0) { + material = materials[0]; + } else { + material = new MeshPhongMaterial({ + name: Loader.DEFAULT_MATERIAL_NAME, + color: 13421772 + }); + materials.push(material); + } + if ("color" in geometry.attributes) { + materials.forEach(function(material2) { + material2.vertexColors = true; + }); + } + if (geometry.FBX_Deformer) { + model = new SkinnedMesh(geometry, material); + model.normalizeSkinWeights(); + } else { + model = new Mesh(geometry, material); + } + return model; + } + createCurve(relationships, geometryMap) { + const geometry = relationships.children.reduce(function(geo, child) { + if (geometryMap.has(child.ID)) geo = geometryMap.get(child.ID); + return geo; + }, null); + const material = new LineBasicMaterial({ + name: Loader.DEFAULT_MATERIAL_NAME, + color: 3342591, + linewidth: 1 + }); + return new Line(geometry, material); + } + // parse the model node for transform data + getTransformData(model, modelNode) { + const transformData = {}; + if ("InheritType" in modelNode) transformData.inheritType = parseInt(modelNode.InheritType.value); + if ("RotationOrder" in modelNode) transformData.eulerOrder = getEulerOrder(modelNode.RotationOrder.value); + else transformData.eulerOrder = getEulerOrder(0); + if ("Lcl_Translation" in modelNode) transformData.translation = modelNode.Lcl_Translation.value; + if ("PreRotation" in modelNode) transformData.preRotation = modelNode.PreRotation.value; + if ("Lcl_Rotation" in modelNode) transformData.rotation = modelNode.Lcl_Rotation.value; + if ("PostRotation" in modelNode) transformData.postRotation = modelNode.PostRotation.value; + if ("Lcl_Scaling" in modelNode) transformData.scale = modelNode.Lcl_Scaling.value; + if ("ScalingOffset" in modelNode) transformData.scalingOffset = modelNode.ScalingOffset.value; + if ("ScalingPivot" in modelNode) transformData.scalingPivot = modelNode.ScalingPivot.value; + if ("RotationOffset" in modelNode) transformData.rotationOffset = modelNode.RotationOffset.value; + if ("RotationPivot" in modelNode) transformData.rotationPivot = modelNode.RotationPivot.value; + model.userData.transformData = transformData; + } + setLookAtProperties(model, modelNode) { + if ("LookAtProperty" in modelNode) { + const children = connections.get(model.ID).children; + children.forEach(function(child) { + if (child.relationship === "LookAtProperty") { + const lookAtTarget = fbxTree.Objects.Model[child.ID]; + if ("Lcl_Translation" in lookAtTarget) { + const pos = lookAtTarget.Lcl_Translation.value; + if (model.target !== void 0) { + model.target.position.fromArray(pos); + sceneGraph.add(model.target); + } else { + model.lookAt(new Vector3().fromArray(pos)); + } + } + } + }); + } + } + bindSkeleton(skeletons, geometryMap, modelMap) { + const bindMatrices = this.parsePoseNodes(); + for (const ID in skeletons) { + const skeleton = skeletons[ID]; + const parents = connections.get(parseInt(skeleton.ID)).parents; + parents.forEach(function(parent) { + if (geometryMap.has(parent.ID)) { + const geoID = parent.ID; + const geoRelationships = connections.get(geoID); + geoRelationships.parents.forEach(function(geoConnParent) { + if (modelMap.has(geoConnParent.ID)) { + const model = modelMap.get(geoConnParent.ID); + model.bind(new Skeleton(skeleton.bones), bindMatrices[geoConnParent.ID]); + } + }); + } + }); + } + } + parsePoseNodes() { + const bindMatrices = {}; + if ("Pose" in fbxTree.Objects) { + const BindPoseNode = fbxTree.Objects.Pose; + for (const nodeID in BindPoseNode) { + if (BindPoseNode[nodeID].attrType === "BindPose" && BindPoseNode[nodeID].NbPoseNodes > 0) { + const poseNodes = BindPoseNode[nodeID].PoseNode; + if (Array.isArray(poseNodes)) { + poseNodes.forEach(function(poseNode) { + bindMatrices[poseNode.Node] = new Matrix4().fromArray(poseNode.Matrix.a); + }); + } else { + bindMatrices[poseNodes.Node] = new Matrix4().fromArray(poseNodes.Matrix.a); + } + } + } + } + return bindMatrices; + } + addGlobalSceneSettings() { + if ("GlobalSettings" in fbxTree) { + if ("AmbientColor" in fbxTree.GlobalSettings) { + const ambientColor = fbxTree.GlobalSettings.AmbientColor.value; + const r = ambientColor[0]; + const g = ambientColor[1]; + const b = ambientColor[2]; + if (r !== 0 || g !== 0 || b !== 0) { + const color = new Color().setRGB(r, g, b, SRGBColorSpace); + sceneGraph.add(new AmbientLight(color, 1)); + } + } + if ("UnitScaleFactor" in fbxTree.GlobalSettings) { + sceneGraph.userData.unitScaleFactor = fbxTree.GlobalSettings.UnitScaleFactor.value; + } + } + } +} +class GeometryParser { + static { + __name(this, "GeometryParser"); + } + constructor() { + this.negativeMaterialIndices = false; + } + // Parse nodes in FBXTree.Objects.Geometry + parse(deformers) { + const geometryMap = /* @__PURE__ */ new Map(); + if ("Geometry" in fbxTree.Objects) { + const geoNodes = fbxTree.Objects.Geometry; + for (const nodeID in geoNodes) { + const relationships = connections.get(parseInt(nodeID)); + const geo = this.parseGeometry(relationships, geoNodes[nodeID], deformers); + geometryMap.set(parseInt(nodeID), geo); + } + } + if (this.negativeMaterialIndices === true) { + console.warn("THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected."); + } + return geometryMap; + } + // Parse single node in FBXTree.Objects.Geometry + parseGeometry(relationships, geoNode, deformers) { + switch (geoNode.attrType) { + case "Mesh": + return this.parseMeshGeometry(relationships, geoNode, deformers); + break; + case "NurbsCurve": + return this.parseNurbsGeometry(geoNode); + break; + } + } + // Parse single node mesh geometry in FBXTree.Objects.Geometry + parseMeshGeometry(relationships, geoNode, deformers) { + const skeletons = deformers.skeletons; + const morphTargets = []; + const modelNodes = relationships.parents.map(function(parent) { + return fbxTree.Objects.Model[parent.ID]; + }); + if (modelNodes.length === 0) return; + const skeleton = relationships.children.reduce(function(skeleton2, child) { + if (skeletons[child.ID] !== void 0) skeleton2 = skeletons[child.ID]; + return skeleton2; + }, null); + relationships.children.forEach(function(child) { + if (deformers.morphTargets[child.ID] !== void 0) { + morphTargets.push(deformers.morphTargets[child.ID]); + } + }); + const modelNode = modelNodes[0]; + const transformData = {}; + if ("RotationOrder" in modelNode) transformData.eulerOrder = getEulerOrder(modelNode.RotationOrder.value); + if ("InheritType" in modelNode) transformData.inheritType = parseInt(modelNode.InheritType.value); + if ("GeometricTranslation" in modelNode) transformData.translation = modelNode.GeometricTranslation.value; + if ("GeometricRotation" in modelNode) transformData.rotation = modelNode.GeometricRotation.value; + if ("GeometricScaling" in modelNode) transformData.scale = modelNode.GeometricScaling.value; + const transform = generateTransform(transformData); + return this.genGeometry(geoNode, skeleton, morphTargets, transform); + } + // Generate a BufferGeometry from a node in FBXTree.Objects.Geometry + genGeometry(geoNode, skeleton, morphTargets, preTransform) { + const geo = new BufferGeometry(); + if (geoNode.attrName) geo.name = geoNode.attrName; + const geoInfo = this.parseGeoNode(geoNode, skeleton); + const buffers = this.genBuffers(geoInfo); + const positionAttribute = new Float32BufferAttribute(buffers.vertex, 3); + positionAttribute.applyMatrix4(preTransform); + geo.setAttribute("position", positionAttribute); + if (buffers.colors.length > 0) { + geo.setAttribute("color", new Float32BufferAttribute(buffers.colors, 3)); + } + if (skeleton) { + geo.setAttribute("skinIndex", new Uint16BufferAttribute(buffers.weightsIndices, 4)); + geo.setAttribute("skinWeight", new Float32BufferAttribute(buffers.vertexWeights, 4)); + geo.FBX_Deformer = skeleton; + } + if (buffers.normal.length > 0) { + const normalMatrix = new Matrix3().getNormalMatrix(preTransform); + const normalAttribute = new Float32BufferAttribute(buffers.normal, 3); + normalAttribute.applyNormalMatrix(normalMatrix); + geo.setAttribute("normal", normalAttribute); + } + buffers.uvs.forEach(function(uvBuffer, i) { + const name = i === 0 ? "uv" : `uv${i}`; + geo.setAttribute(name, new Float32BufferAttribute(buffers.uvs[i], 2)); + }); + if (geoInfo.material && geoInfo.material.mappingType !== "AllSame") { + let prevMaterialIndex = buffers.materialIndex[0]; + let startIndex = 0; + buffers.materialIndex.forEach(function(currentIndex, i) { + if (currentIndex !== prevMaterialIndex) { + geo.addGroup(startIndex, i - startIndex, prevMaterialIndex); + prevMaterialIndex = currentIndex; + startIndex = i; + } + }); + if (geo.groups.length > 0) { + const lastGroup = geo.groups[geo.groups.length - 1]; + const lastIndex = lastGroup.start + lastGroup.count; + if (lastIndex !== buffers.materialIndex.length) { + geo.addGroup(lastIndex, buffers.materialIndex.length - lastIndex, prevMaterialIndex); + } + } + if (geo.groups.length === 0) { + geo.addGroup(0, buffers.materialIndex.length, buffers.materialIndex[0]); + } + } + this.addMorphTargets(geo, geoNode, morphTargets, preTransform); + return geo; + } + parseGeoNode(geoNode, skeleton) { + const geoInfo = {}; + geoInfo.vertexPositions = geoNode.Vertices !== void 0 ? geoNode.Vertices.a : []; + geoInfo.vertexIndices = geoNode.PolygonVertexIndex !== void 0 ? geoNode.PolygonVertexIndex.a : []; + if (geoNode.LayerElementColor) { + geoInfo.color = this.parseVertexColors(geoNode.LayerElementColor[0]); + } + if (geoNode.LayerElementMaterial) { + geoInfo.material = this.parseMaterialIndices(geoNode.LayerElementMaterial[0]); + } + if (geoNode.LayerElementNormal) { + geoInfo.normal = this.parseNormals(geoNode.LayerElementNormal[0]); + } + if (geoNode.LayerElementUV) { + geoInfo.uv = []; + let i = 0; + while (geoNode.LayerElementUV[i]) { + if (geoNode.LayerElementUV[i].UV) { + geoInfo.uv.push(this.parseUVs(geoNode.LayerElementUV[i])); + } + i++; + } + } + geoInfo.weightTable = {}; + if (skeleton !== null) { + geoInfo.skeleton = skeleton; + skeleton.rawBones.forEach(function(rawBone, i) { + rawBone.indices.forEach(function(index, j) { + if (geoInfo.weightTable[index] === void 0) geoInfo.weightTable[index] = []; + geoInfo.weightTable[index].push({ + id: i, + weight: rawBone.weights[j] + }); + }); + }); + } + return geoInfo; + } + genBuffers(geoInfo) { + const buffers = { + vertex: [], + normal: [], + colors: [], + uvs: [], + materialIndex: [], + vertexWeights: [], + weightsIndices: [] + }; + let polygonIndex = 0; + let faceLength = 0; + let displayedWeightsWarning = false; + let facePositionIndexes = []; + let faceNormals = []; + let faceColors = []; + let faceUVs = []; + let faceWeights = []; + let faceWeightIndices = []; + const scope = this; + geoInfo.vertexIndices.forEach(function(vertexIndex, polygonVertexIndex) { + let materialIndex; + let endOfFace = false; + if (vertexIndex < 0) { + vertexIndex = vertexIndex ^ -1; + endOfFace = true; + } + let weightIndices = []; + let weights = []; + facePositionIndexes.push(vertexIndex * 3, vertexIndex * 3 + 1, vertexIndex * 3 + 2); + if (geoInfo.color) { + const data = getData(polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.color); + faceColors.push(data[0], data[1], data[2]); + } + if (geoInfo.skeleton) { + if (geoInfo.weightTable[vertexIndex] !== void 0) { + geoInfo.weightTable[vertexIndex].forEach(function(wt) { + weights.push(wt.weight); + weightIndices.push(wt.id); + }); + } + if (weights.length > 4) { + if (!displayedWeightsWarning) { + console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."); + displayedWeightsWarning = true; + } + const wIndex = [0, 0, 0, 0]; + const Weight = [0, 0, 0, 0]; + weights.forEach(function(weight, weightIndex) { + let currentWeight = weight; + let currentIndex = weightIndices[weightIndex]; + Weight.forEach(function(comparedWeight, comparedWeightIndex, comparedWeightArray) { + if (currentWeight > comparedWeight) { + comparedWeightArray[comparedWeightIndex] = currentWeight; + currentWeight = comparedWeight; + const tmp2 = wIndex[comparedWeightIndex]; + wIndex[comparedWeightIndex] = currentIndex; + currentIndex = tmp2; + } + }); + }); + weightIndices = wIndex; + weights = Weight; + } + while (weights.length < 4) { + weights.push(0); + weightIndices.push(0); + } + for (let i = 0; i < 4; ++i) { + faceWeights.push(weights[i]); + faceWeightIndices.push(weightIndices[i]); + } + } + if (geoInfo.normal) { + const data = getData(polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.normal); + faceNormals.push(data[0], data[1], data[2]); + } + if (geoInfo.material && geoInfo.material.mappingType !== "AllSame") { + materialIndex = getData(polygonVertexIndex, polygonIndex, vertexIndex, geoInfo.material)[0]; + if (materialIndex < 0) { + scope.negativeMaterialIndices = true; + materialIndex = 0; + } + } + if (geoInfo.uv) { + geoInfo.uv.forEach(function(uv, i) { + const data = getData(polygonVertexIndex, polygonIndex, vertexIndex, uv); + if (faceUVs[i] === void 0) { + faceUVs[i] = []; + } + faceUVs[i].push(data[0]); + faceUVs[i].push(data[1]); + }); + } + faceLength++; + if (endOfFace) { + scope.genFace(buffers, geoInfo, facePositionIndexes, materialIndex, faceNormals, faceColors, faceUVs, faceWeights, faceWeightIndices, faceLength); + polygonIndex++; + faceLength = 0; + facePositionIndexes = []; + faceNormals = []; + faceColors = []; + faceUVs = []; + faceWeights = []; + faceWeightIndices = []; + } + }); + return buffers; + } + // See https://www.khronos.org/opengl/wiki/Calculating_a_Surface_Normal + getNormalNewell(vertices) { + const normal = new Vector3(0, 0, 0); + for (let i = 0; i < vertices.length; i++) { + const current = vertices[i]; + const next = vertices[(i + 1) % vertices.length]; + normal.x += (current.y - next.y) * (current.z + next.z); + normal.y += (current.z - next.z) * (current.x + next.x); + normal.z += (current.x - next.x) * (current.y + next.y); + } + normal.normalize(); + return normal; + } + getNormalTangentAndBitangent(vertices) { + const normalVector = this.getNormalNewell(vertices); + const up = Math.abs(normalVector.z) > 0.5 ? new Vector3(0, 1, 0) : new Vector3(0, 0, 1); + const tangent = up.cross(normalVector).normalize(); + const bitangent = normalVector.clone().cross(tangent).normalize(); + return { + normal: normalVector, + tangent, + bitangent + }; + } + flattenVertex(vertex2, normalTangent, normalBitangent) { + return new Vector2( + vertex2.dot(normalTangent), + vertex2.dot(normalBitangent) + ); + } + // Generate data for a single face in a geometry. If the face is a quad then split it into 2 tris + genFace(buffers, geoInfo, facePositionIndexes, materialIndex, faceNormals, faceColors, faceUVs, faceWeights, faceWeightIndices, faceLength) { + let triangles; + if (faceLength > 3) { + const vertices = []; + const positions = geoInfo.baseVertexPositions || geoInfo.vertexPositions; + for (let i = 0; i < facePositionIndexes.length; i += 3) { + vertices.push( + new Vector3( + positions[facePositionIndexes[i]], + positions[facePositionIndexes[i + 1]], + positions[facePositionIndexes[i + 2]] + ) + ); + } + const { tangent, bitangent } = this.getNormalTangentAndBitangent(vertices); + const triangulationInput = []; + for (const vertex2 of vertices) { + triangulationInput.push(this.flattenVertex(vertex2, tangent, bitangent)); + } + triangles = ShapeUtils.triangulateShape(triangulationInput, []); + } else { + triangles = [[0, 1, 2]]; + } + for (const [i0, i1, i2] of triangles) { + buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i0 * 3]]); + buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i0 * 3 + 1]]); + buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i0 * 3 + 2]]); + buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i1 * 3]]); + buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i1 * 3 + 1]]); + buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i1 * 3 + 2]]); + buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i2 * 3]]); + buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i2 * 3 + 1]]); + buffers.vertex.push(geoInfo.vertexPositions[facePositionIndexes[i2 * 3 + 2]]); + if (geoInfo.skeleton) { + buffers.vertexWeights.push(faceWeights[i0 * 4]); + buffers.vertexWeights.push(faceWeights[i0 * 4 + 1]); + buffers.vertexWeights.push(faceWeights[i0 * 4 + 2]); + buffers.vertexWeights.push(faceWeights[i0 * 4 + 3]); + buffers.vertexWeights.push(faceWeights[i1 * 4]); + buffers.vertexWeights.push(faceWeights[i1 * 4 + 1]); + buffers.vertexWeights.push(faceWeights[i1 * 4 + 2]); + buffers.vertexWeights.push(faceWeights[i1 * 4 + 3]); + buffers.vertexWeights.push(faceWeights[i2 * 4]); + buffers.vertexWeights.push(faceWeights[i2 * 4 + 1]); + buffers.vertexWeights.push(faceWeights[i2 * 4 + 2]); + buffers.vertexWeights.push(faceWeights[i2 * 4 + 3]); + buffers.weightsIndices.push(faceWeightIndices[i0 * 4]); + buffers.weightsIndices.push(faceWeightIndices[i0 * 4 + 1]); + buffers.weightsIndices.push(faceWeightIndices[i0 * 4 + 2]); + buffers.weightsIndices.push(faceWeightIndices[i0 * 4 + 3]); + buffers.weightsIndices.push(faceWeightIndices[i1 * 4]); + buffers.weightsIndices.push(faceWeightIndices[i1 * 4 + 1]); + buffers.weightsIndices.push(faceWeightIndices[i1 * 4 + 2]); + buffers.weightsIndices.push(faceWeightIndices[i1 * 4 + 3]); + buffers.weightsIndices.push(faceWeightIndices[i2 * 4]); + buffers.weightsIndices.push(faceWeightIndices[i2 * 4 + 1]); + buffers.weightsIndices.push(faceWeightIndices[i2 * 4 + 2]); + buffers.weightsIndices.push(faceWeightIndices[i2 * 4 + 3]); + } + if (geoInfo.color) { + buffers.colors.push(faceColors[i0 * 3]); + buffers.colors.push(faceColors[i0 * 3 + 1]); + buffers.colors.push(faceColors[i0 * 3 + 2]); + buffers.colors.push(faceColors[i1 * 3]); + buffers.colors.push(faceColors[i1 * 3 + 1]); + buffers.colors.push(faceColors[i1 * 3 + 2]); + buffers.colors.push(faceColors[i2 * 3]); + buffers.colors.push(faceColors[i2 * 3 + 1]); + buffers.colors.push(faceColors[i2 * 3 + 2]); + } + if (geoInfo.material && geoInfo.material.mappingType !== "AllSame") { + buffers.materialIndex.push(materialIndex); + buffers.materialIndex.push(materialIndex); + buffers.materialIndex.push(materialIndex); + } + if (geoInfo.normal) { + buffers.normal.push(faceNormals[i0 * 3]); + buffers.normal.push(faceNormals[i0 * 3 + 1]); + buffers.normal.push(faceNormals[i0 * 3 + 2]); + buffers.normal.push(faceNormals[i1 * 3]); + buffers.normal.push(faceNormals[i1 * 3 + 1]); + buffers.normal.push(faceNormals[i1 * 3 + 2]); + buffers.normal.push(faceNormals[i2 * 3]); + buffers.normal.push(faceNormals[i2 * 3 + 1]); + buffers.normal.push(faceNormals[i2 * 3 + 2]); + } + if (geoInfo.uv) { + geoInfo.uv.forEach(function(uv, j) { + if (buffers.uvs[j] === void 0) buffers.uvs[j] = []; + buffers.uvs[j].push(faceUVs[j][i0 * 2]); + buffers.uvs[j].push(faceUVs[j][i0 * 2 + 1]); + buffers.uvs[j].push(faceUVs[j][i1 * 2]); + buffers.uvs[j].push(faceUVs[j][i1 * 2 + 1]); + buffers.uvs[j].push(faceUVs[j][i2 * 2]); + buffers.uvs[j].push(faceUVs[j][i2 * 2 + 1]); + }); + } + } + } + addMorphTargets(parentGeo, parentGeoNode, morphTargets, preTransform) { + if (morphTargets.length === 0) return; + parentGeo.morphTargetsRelative = true; + parentGeo.morphAttributes.position = []; + const scope = this; + morphTargets.forEach(function(morphTarget) { + morphTarget.rawTargets.forEach(function(rawTarget) { + const morphGeoNode = fbxTree.Objects.Geometry[rawTarget.geoID]; + if (morphGeoNode !== void 0) { + scope.genMorphGeometry(parentGeo, parentGeoNode, morphGeoNode, preTransform, rawTarget.name); + } + }); + }); + } + // a morph geometry node is similar to a standard node, and the node is also contained + // in FBXTree.Objects.Geometry, however it can only have attributes for position, normal + // and a special attribute Index defining which vertices of the original geometry are affected + // Normal and position attributes only have data for the vertices that are affected by the morph + genMorphGeometry(parentGeo, parentGeoNode, morphGeoNode, preTransform, name) { + const basePositions = parentGeoNode.Vertices !== void 0 ? parentGeoNode.Vertices.a : []; + const baseIndices = parentGeoNode.PolygonVertexIndex !== void 0 ? parentGeoNode.PolygonVertexIndex.a : []; + const morphPositionsSparse = morphGeoNode.Vertices !== void 0 ? morphGeoNode.Vertices.a : []; + const morphIndices = morphGeoNode.Indexes !== void 0 ? morphGeoNode.Indexes.a : []; + const length = parentGeo.attributes.position.count * 3; + const morphPositions = new Float32Array(length); + for (let i = 0; i < morphIndices.length; i++) { + const morphIndex = morphIndices[i] * 3; + morphPositions[morphIndex] = morphPositionsSparse[i * 3]; + morphPositions[morphIndex + 1] = morphPositionsSparse[i * 3 + 1]; + morphPositions[morphIndex + 2] = morphPositionsSparse[i * 3 + 2]; + } + const morphGeoInfo = { + vertexIndices: baseIndices, + vertexPositions: morphPositions, + baseVertexPositions: basePositions + }; + const morphBuffers = this.genBuffers(morphGeoInfo); + const positionAttribute = new Float32BufferAttribute(morphBuffers.vertex, 3); + positionAttribute.name = name || morphGeoNode.attrName; + positionAttribute.applyMatrix4(preTransform); + parentGeo.morphAttributes.position.push(positionAttribute); + } + // Parse normal from FBXTree.Objects.Geometry.LayerElementNormal if it exists + parseNormals(NormalNode) { + const mappingType = NormalNode.MappingInformationType; + const referenceType = NormalNode.ReferenceInformationType; + const buffer = NormalNode.Normals.a; + let indexBuffer = []; + if (referenceType === "IndexToDirect") { + if ("NormalIndex" in NormalNode) { + indexBuffer = NormalNode.NormalIndex.a; + } else if ("NormalsIndex" in NormalNode) { + indexBuffer = NormalNode.NormalsIndex.a; + } + } + return { + dataSize: 3, + buffer, + indices: indexBuffer, + mappingType, + referenceType + }; + } + // Parse UVs from FBXTree.Objects.Geometry.LayerElementUV if it exists + parseUVs(UVNode) { + const mappingType = UVNode.MappingInformationType; + const referenceType = UVNode.ReferenceInformationType; + const buffer = UVNode.UV.a; + let indexBuffer = []; + if (referenceType === "IndexToDirect") { + indexBuffer = UVNode.UVIndex.a; + } + return { + dataSize: 2, + buffer, + indices: indexBuffer, + mappingType, + referenceType + }; + } + // Parse Vertex Colors from FBXTree.Objects.Geometry.LayerElementColor if it exists + parseVertexColors(ColorNode) { + const mappingType = ColorNode.MappingInformationType; + const referenceType = ColorNode.ReferenceInformationType; + const buffer = ColorNode.Colors.a; + let indexBuffer = []; + if (referenceType === "IndexToDirect") { + indexBuffer = ColorNode.ColorIndex.a; + } + for (let i = 0, c = new Color(); i < buffer.length; i += 4) { + c.fromArray(buffer, i); + ColorManagement.toWorkingColorSpace(c, SRGBColorSpace); + c.toArray(buffer, i); + } + return { + dataSize: 4, + buffer, + indices: indexBuffer, + mappingType, + referenceType + }; + } + // Parse mapping and material data in FBXTree.Objects.Geometry.LayerElementMaterial if it exists + parseMaterialIndices(MaterialNode) { + const mappingType = MaterialNode.MappingInformationType; + const referenceType = MaterialNode.ReferenceInformationType; + if (mappingType === "NoMappingInformation") { + return { + dataSize: 1, + buffer: [0], + indices: [0], + mappingType: "AllSame", + referenceType + }; + } + const materialIndexBuffer = MaterialNode.Materials.a; + const materialIndices = []; + for (let i = 0; i < materialIndexBuffer.length; ++i) { + materialIndices.push(i); + } + return { + dataSize: 1, + buffer: materialIndexBuffer, + indices: materialIndices, + mappingType, + referenceType + }; + } + // Generate a NurbGeometry from a node in FBXTree.Objects.Geometry + parseNurbsGeometry(geoNode) { + const order = parseInt(geoNode.Order); + if (isNaN(order)) { + console.error("THREE.FBXLoader: Invalid Order %s given for geometry ID: %s", geoNode.Order, geoNode.id); + return new BufferGeometry(); + } + const degree = order - 1; + const knots = geoNode.KnotVector.a; + const controlPoints = []; + const pointsValues = geoNode.Points.a; + for (let i = 0, l = pointsValues.length; i < l; i += 4) { + controlPoints.push(new Vector4().fromArray(pointsValues, i)); + } + let startKnot, endKnot; + if (geoNode.Form === "Closed") { + controlPoints.push(controlPoints[0]); + } else if (geoNode.Form === "Periodic") { + startKnot = degree; + endKnot = knots.length - 1 - startKnot; + for (let i = 0; i < degree; ++i) { + controlPoints.push(controlPoints[i]); + } + } + const curve = new NURBSCurve(degree, knots, controlPoints, startKnot, endKnot); + const points = curve.getPoints(controlPoints.length * 12); + return new BufferGeometry().setFromPoints(points); + } +} +class AnimationParser { + static { + __name(this, "AnimationParser"); + } + // take raw animation clips and turn them into three.js animation clips + parse() { + const animationClips = []; + const rawClips = this.parseClips(); + if (rawClips !== void 0) { + for (const key in rawClips) { + const rawClip = rawClips[key]; + const clip = this.addClip(rawClip); + animationClips.push(clip); + } + } + return animationClips; + } + parseClips() { + if (fbxTree.Objects.AnimationCurve === void 0) return void 0; + const curveNodesMap = this.parseAnimationCurveNodes(); + this.parseAnimationCurves(curveNodesMap); + const layersMap = this.parseAnimationLayers(curveNodesMap); + const rawClips = this.parseAnimStacks(layersMap); + return rawClips; + } + // parse nodes in FBXTree.Objects.AnimationCurveNode + // each AnimationCurveNode holds data for an animation transform for a model (e.g. left arm rotation ) + // and is referenced by an AnimationLayer + parseAnimationCurveNodes() { + const rawCurveNodes = fbxTree.Objects.AnimationCurveNode; + const curveNodesMap = /* @__PURE__ */ new Map(); + for (const nodeID in rawCurveNodes) { + const rawCurveNode = rawCurveNodes[nodeID]; + if (rawCurveNode.attrName.match(/S|R|T|DeformPercent/) !== null) { + const curveNode = { + id: rawCurveNode.id, + attr: rawCurveNode.attrName, + curves: {} + }; + curveNodesMap.set(curveNode.id, curveNode); + } + } + return curveNodesMap; + } + // parse nodes in FBXTree.Objects.AnimationCurve and connect them up to + // previously parsed AnimationCurveNodes. Each AnimationCurve holds data for a single animated + // axis ( e.g. times and values of x rotation) + parseAnimationCurves(curveNodesMap) { + const rawCurves = fbxTree.Objects.AnimationCurve; + for (const nodeID in rawCurves) { + const animationCurve = { + id: rawCurves[nodeID].id, + times: rawCurves[nodeID].KeyTime.a.map(convertFBXTimeToSeconds), + values: rawCurves[nodeID].KeyValueFloat.a + }; + const relationships = connections.get(animationCurve.id); + if (relationships !== void 0) { + const animationCurveID = relationships.parents[0].ID; + const animationCurveRelationship = relationships.parents[0].relationship; + if (animationCurveRelationship.match(/X/)) { + curveNodesMap.get(animationCurveID).curves["x"] = animationCurve; + } else if (animationCurveRelationship.match(/Y/)) { + curveNodesMap.get(animationCurveID).curves["y"] = animationCurve; + } else if (animationCurveRelationship.match(/Z/)) { + curveNodesMap.get(animationCurveID).curves["z"] = animationCurve; + } else if (animationCurveRelationship.match(/DeformPercent/) && curveNodesMap.has(animationCurveID)) { + curveNodesMap.get(animationCurveID).curves["morph"] = animationCurve; + } + } + } + } + // parse nodes in FBXTree.Objects.AnimationLayer. Each layers holds references + // to various AnimationCurveNodes and is referenced by an AnimationStack node + // note: theoretically a stack can have multiple layers, however in practice there always seems to be one per stack + parseAnimationLayers(curveNodesMap) { + const rawLayers = fbxTree.Objects.AnimationLayer; + const layersMap = /* @__PURE__ */ new Map(); + for (const nodeID in rawLayers) { + const layerCurveNodes = []; + const connection = connections.get(parseInt(nodeID)); + if (connection !== void 0) { + const children = connection.children; + children.forEach(function(child, i) { + if (curveNodesMap.has(child.ID)) { + const curveNode = curveNodesMap.get(child.ID); + if (curveNode.curves.x !== void 0 || curveNode.curves.y !== void 0 || curveNode.curves.z !== void 0) { + if (layerCurveNodes[i] === void 0) { + const modelID = connections.get(child.ID).parents.filter(function(parent) { + return parent.relationship !== void 0; + })[0].ID; + if (modelID !== void 0) { + const rawModel = fbxTree.Objects.Model[modelID.toString()]; + if (rawModel === void 0) { + console.warn("THREE.FBXLoader: Encountered a unused curve.", child); + return; + } + const node = { + modelName: rawModel.attrName ? PropertyBinding.sanitizeNodeName(rawModel.attrName) : "", + ID: rawModel.id, + initialPosition: [0, 0, 0], + initialRotation: [0, 0, 0], + initialScale: [1, 1, 1] + }; + sceneGraph.traverse(function(child2) { + if (child2.ID === rawModel.id) { + node.transform = child2.matrix; + if (child2.userData.transformData) node.eulerOrder = child2.userData.transformData.eulerOrder; + } + }); + if (!node.transform) node.transform = new Matrix4(); + if ("PreRotation" in rawModel) node.preRotation = rawModel.PreRotation.value; + if ("PostRotation" in rawModel) node.postRotation = rawModel.PostRotation.value; + layerCurveNodes[i] = node; + } + } + if (layerCurveNodes[i]) layerCurveNodes[i][curveNode.attr] = curveNode; + } else if (curveNode.curves.morph !== void 0) { + if (layerCurveNodes[i] === void 0) { + const deformerID = connections.get(child.ID).parents.filter(function(parent) { + return parent.relationship !== void 0; + })[0].ID; + const morpherID = connections.get(deformerID).parents[0].ID; + const geoID = connections.get(morpherID).parents[0].ID; + const modelID = connections.get(geoID).parents[0].ID; + const rawModel = fbxTree.Objects.Model[modelID]; + const node = { + modelName: rawModel.attrName ? PropertyBinding.sanitizeNodeName(rawModel.attrName) : "", + morphName: fbxTree.Objects.Deformer[deformerID].attrName + }; + layerCurveNodes[i] = node; + } + layerCurveNodes[i][curveNode.attr] = curveNode; + } + } + }); + layersMap.set(parseInt(nodeID), layerCurveNodes); + } + } + return layersMap; + } + // parse nodes in FBXTree.Objects.AnimationStack. These are the top level node in the animation + // hierarchy. Each Stack node will be used to create a AnimationClip + parseAnimStacks(layersMap) { + const rawStacks = fbxTree.Objects.AnimationStack; + const rawClips = {}; + for (const nodeID in rawStacks) { + const children = connections.get(parseInt(nodeID)).children; + if (children.length > 1) { + console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers."); + } + const layer = layersMap.get(children[0].ID); + rawClips[nodeID] = { + name: rawStacks[nodeID].attrName, + layer + }; + } + return rawClips; + } + addClip(rawClip) { + let tracks = []; + const scope = this; + rawClip.layer.forEach(function(rawTracks) { + tracks = tracks.concat(scope.generateTracks(rawTracks)); + }); + return new AnimationClip(rawClip.name, -1, tracks); + } + generateTracks(rawTracks) { + const tracks = []; + let initialPosition = new Vector3(); + let initialScale = new Vector3(); + if (rawTracks.transform) rawTracks.transform.decompose(initialPosition, new Quaternion(), initialScale); + initialPosition = initialPosition.toArray(); + initialScale = initialScale.toArray(); + if (rawTracks.T !== void 0 && Object.keys(rawTracks.T.curves).length > 0) { + const positionTrack = this.generateVectorTrack(rawTracks.modelName, rawTracks.T.curves, initialPosition, "position"); + if (positionTrack !== void 0) tracks.push(positionTrack); + } + if (rawTracks.R !== void 0 && Object.keys(rawTracks.R.curves).length > 0) { + const rotationTrack = this.generateRotationTrack(rawTracks.modelName, rawTracks.R.curves, rawTracks.preRotation, rawTracks.postRotation, rawTracks.eulerOrder); + if (rotationTrack !== void 0) tracks.push(rotationTrack); + } + if (rawTracks.S !== void 0 && Object.keys(rawTracks.S.curves).length > 0) { + const scaleTrack = this.generateVectorTrack(rawTracks.modelName, rawTracks.S.curves, initialScale, "scale"); + if (scaleTrack !== void 0) tracks.push(scaleTrack); + } + if (rawTracks.DeformPercent !== void 0) { + const morphTrack = this.generateMorphTrack(rawTracks); + if (morphTrack !== void 0) tracks.push(morphTrack); + } + return tracks; + } + generateVectorTrack(modelName, curves, initialValue, type) { + const times = this.getTimesForAllAxes(curves); + const values = this.getKeyframeTrackValues(times, curves, initialValue); + return new VectorKeyframeTrack(modelName + "." + type, times, values); + } + generateRotationTrack(modelName, curves, preRotation, postRotation, eulerOrder) { + let times; + let values; + if (curves.x !== void 0 && curves.y !== void 0 && curves.z !== void 0) { + const result = this.interpolateRotations(curves.x, curves.y, curves.z, eulerOrder); + times = result[0]; + values = result[1]; + } + const defaultEulerOrder = getEulerOrder(0); + if (preRotation !== void 0) { + preRotation = preRotation.map(MathUtils.degToRad); + preRotation.push(defaultEulerOrder); + preRotation = new Euler().fromArray(preRotation); + preRotation = new Quaternion().setFromEuler(preRotation); + } + if (postRotation !== void 0) { + postRotation = postRotation.map(MathUtils.degToRad); + postRotation.push(defaultEulerOrder); + postRotation = new Euler().fromArray(postRotation); + postRotation = new Quaternion().setFromEuler(postRotation).invert(); + } + const quaternion = new Quaternion(); + const euler = new Euler(); + const quaternionValues = []; + if (!values || !times) return new QuaternionKeyframeTrack(modelName + ".quaternion", [0], [0]); + for (let i = 0; i < values.length; i += 3) { + euler.set(values[i], values[i + 1], values[i + 2], eulerOrder); + quaternion.setFromEuler(euler); + if (preRotation !== void 0) quaternion.premultiply(preRotation); + if (postRotation !== void 0) quaternion.multiply(postRotation); + if (i > 2) { + const prevQuat = new Quaternion().fromArray( + quaternionValues, + (i - 3) / 3 * 4 + ); + if (prevQuat.dot(quaternion) < 0) { + quaternion.set(-quaternion.x, -quaternion.y, -quaternion.z, -quaternion.w); + } + } + quaternion.toArray(quaternionValues, i / 3 * 4); + } + return new QuaternionKeyframeTrack(modelName + ".quaternion", times, quaternionValues); + } + generateMorphTrack(rawTracks) { + const curves = rawTracks.DeformPercent.curves.morph; + const values = curves.values.map(function(val) { + return val / 100; + }); + const morphNum = sceneGraph.getObjectByName(rawTracks.modelName).morphTargetDictionary[rawTracks.morphName]; + return new NumberKeyframeTrack(rawTracks.modelName + ".morphTargetInfluences[" + morphNum + "]", curves.times, values); + } + // For all animated objects, times are defined separately for each axis + // Here we'll combine the times into one sorted array without duplicates + getTimesForAllAxes(curves) { + let times = []; + if (curves.x !== void 0) times = times.concat(curves.x.times); + if (curves.y !== void 0) times = times.concat(curves.y.times); + if (curves.z !== void 0) times = times.concat(curves.z.times); + times = times.sort(function(a, b) { + return a - b; + }); + if (times.length > 1) { + let targetIndex = 1; + let lastValue = times[0]; + for (let i = 1; i < times.length; i++) { + const currentValue = times[i]; + if (currentValue !== lastValue) { + times[targetIndex] = currentValue; + lastValue = currentValue; + targetIndex++; + } + } + times = times.slice(0, targetIndex); + } + return times; + } + getKeyframeTrackValues(times, curves, initialValue) { + const prevValue = initialValue; + const values = []; + let xIndex = -1; + let yIndex = -1; + let zIndex = -1; + times.forEach(function(time) { + if (curves.x) xIndex = curves.x.times.indexOf(time); + if (curves.y) yIndex = curves.y.times.indexOf(time); + if (curves.z) zIndex = curves.z.times.indexOf(time); + if (xIndex !== -1) { + const xValue = curves.x.values[xIndex]; + values.push(xValue); + prevValue[0] = xValue; + } else { + values.push(prevValue[0]); + } + if (yIndex !== -1) { + const yValue = curves.y.values[yIndex]; + values.push(yValue); + prevValue[1] = yValue; + } else { + values.push(prevValue[1]); + } + if (zIndex !== -1) { + const zValue = curves.z.values[zIndex]; + values.push(zValue); + prevValue[2] = zValue; + } else { + values.push(prevValue[2]); + } + }); + return values; + } + // Rotations are defined as Euler angles which can have values of any size + // These will be converted to quaternions which don't support values greater than + // PI, so we'll interpolate large rotations + interpolateRotations(curvex, curvey, curvez, eulerOrder) { + const times = []; + const values = []; + times.push(curvex.times[0]); + values.push(MathUtils.degToRad(curvex.values[0])); + values.push(MathUtils.degToRad(curvey.values[0])); + values.push(MathUtils.degToRad(curvez.values[0])); + for (let i = 1; i < curvex.values.length; i++) { + const initialValue = [ + curvex.values[i - 1], + curvey.values[i - 1], + curvez.values[i - 1] + ]; + if (isNaN(initialValue[0]) || isNaN(initialValue[1]) || isNaN(initialValue[2])) { + continue; + } + const initialValueRad = initialValue.map(MathUtils.degToRad); + const currentValue = [ + curvex.values[i], + curvey.values[i], + curvez.values[i] + ]; + if (isNaN(currentValue[0]) || isNaN(currentValue[1]) || isNaN(currentValue[2])) { + continue; + } + const currentValueRad = currentValue.map(MathUtils.degToRad); + const valuesSpan = [ + currentValue[0] - initialValue[0], + currentValue[1] - initialValue[1], + currentValue[2] - initialValue[2] + ]; + const absoluteSpan = [ + Math.abs(valuesSpan[0]), + Math.abs(valuesSpan[1]), + Math.abs(valuesSpan[2]) + ]; + if (absoluteSpan[0] >= 180 || absoluteSpan[1] >= 180 || absoluteSpan[2] >= 180) { + const maxAbsSpan = Math.max(...absoluteSpan); + const numSubIntervals = maxAbsSpan / 180; + const E1 = new Euler(...initialValueRad, eulerOrder); + const E2 = new Euler(...currentValueRad, eulerOrder); + const Q1 = new Quaternion().setFromEuler(E1); + const Q2 = new Quaternion().setFromEuler(E2); + if (Q1.dot(Q2)) { + Q2.set(-Q2.x, -Q2.y, -Q2.z, -Q2.w); + } + const initialTime = curvex.times[i - 1]; + const timeSpan = curvex.times[i] - initialTime; + const Q = new Quaternion(); + const E = new Euler(); + for (let t2 = 0; t2 < 1; t2 += 1 / numSubIntervals) { + Q.copy(Q1.clone().slerp(Q2.clone(), t2)); + times.push(initialTime + t2 * timeSpan); + E.setFromQuaternion(Q, eulerOrder); + values.push(E.x); + values.push(E.y); + values.push(E.z); + } + } else { + times.push(curvex.times[i]); + values.push(MathUtils.degToRad(curvex.values[i])); + values.push(MathUtils.degToRad(curvey.values[i])); + values.push(MathUtils.degToRad(curvez.values[i])); + } + } + return [times, values]; + } +} +class TextParser { + static { + __name(this, "TextParser"); + } + getPrevNode() { + return this.nodeStack[this.currentIndent - 2]; + } + getCurrentNode() { + return this.nodeStack[this.currentIndent - 1]; + } + getCurrentProp() { + return this.currentProp; + } + pushStack(node) { + this.nodeStack.push(node); + this.currentIndent += 1; + } + popStack() { + this.nodeStack.pop(); + this.currentIndent -= 1; + } + setCurrentProp(val, name) { + this.currentProp = val; + this.currentPropName = name; + } + parse(text) { + this.currentIndent = 0; + this.allNodes = new FBXTree(); + this.nodeStack = []; + this.currentProp = []; + this.currentPropName = ""; + const scope = this; + const split = text.split(/[\r\n]+/); + split.forEach(function(line, i) { + const matchComment = line.match(/^[\s\t]*;/); + const matchEmpty = line.match(/^[\s\t]*$/); + if (matchComment || matchEmpty) return; + const matchBeginning = line.match("^\\t{" + scope.currentIndent + "}(\\w+):(.*){", ""); + const matchProperty = line.match("^\\t{" + scope.currentIndent + "}(\\w+):[\\s\\t\\r\\n](.*)"); + const matchEnd = line.match("^\\t{" + (scope.currentIndent - 1) + "}}"); + if (matchBeginning) { + scope.parseNodeBegin(line, matchBeginning); + } else if (matchProperty) { + scope.parseNodeProperty(line, matchProperty, split[++i]); + } else if (matchEnd) { + scope.popStack(); + } else if (line.match(/^[^\s\t}]/)) { + scope.parseNodePropertyContinued(line); + } + }); + return this.allNodes; + } + parseNodeBegin(line, property) { + const nodeName = property[1].trim().replace(/^"/, "").replace(/"$/, ""); + const nodeAttrs = property[2].split(",").map(function(attr) { + return attr.trim().replace(/^"/, "").replace(/"$/, ""); + }); + const node = { name: nodeName }; + const attrs = this.parseNodeAttr(nodeAttrs); + const currentNode = this.getCurrentNode(); + if (this.currentIndent === 0) { + this.allNodes.add(nodeName, node); + } else { + if (nodeName in currentNode) { + if (nodeName === "PoseNode") { + currentNode.PoseNode.push(node); + } else if (currentNode[nodeName].id !== void 0) { + currentNode[nodeName] = {}; + currentNode[nodeName][currentNode[nodeName].id] = currentNode[nodeName]; + } + if (attrs.id !== "") currentNode[nodeName][attrs.id] = node; + } else if (typeof attrs.id === "number") { + currentNode[nodeName] = {}; + currentNode[nodeName][attrs.id] = node; + } else if (nodeName !== "Properties70") { + if (nodeName === "PoseNode") currentNode[nodeName] = [node]; + else currentNode[nodeName] = node; + } + } + if (typeof attrs.id === "number") node.id = attrs.id; + if (attrs.name !== "") node.attrName = attrs.name; + if (attrs.type !== "") node.attrType = attrs.type; + this.pushStack(node); + } + parseNodeAttr(attrs) { + let id2 = attrs[0]; + if (attrs[0] !== "") { + id2 = parseInt(attrs[0]); + if (isNaN(id2)) { + id2 = attrs[0]; + } + } + let name = "", type = ""; + if (attrs.length > 1) { + name = attrs[1].replace(/^(\w+)::/, ""); + type = attrs[2]; + } + return { id: id2, name, type }; + } + parseNodeProperty(line, property, contentLine) { + let propName = property[1].replace(/^"/, "").replace(/"$/, "").trim(); + let propValue = property[2].replace(/^"/, "").replace(/"$/, "").trim(); + if (propName === "Content" && propValue === ",") { + propValue = contentLine.replace(/"/g, "").replace(/,$/, "").trim(); + } + const currentNode = this.getCurrentNode(); + const parentName = currentNode.name; + if (parentName === "Properties70") { + this.parseNodeSpecialProperty(line, propName, propValue); + return; + } + if (propName === "C") { + const connProps = propValue.split(",").slice(1); + const from = parseInt(connProps[0]); + const to = parseInt(connProps[1]); + let rest = propValue.split(",").slice(3); + rest = rest.map(function(elem) { + return elem.trim().replace(/^"/, ""); + }); + propName = "connections"; + propValue = [from, to]; + append(propValue, rest); + if (currentNode[propName] === void 0) { + currentNode[propName] = []; + } + } + if (propName === "Node") currentNode.id = propValue; + if (propName in currentNode && Array.isArray(currentNode[propName])) { + currentNode[propName].push(propValue); + } else { + if (propName !== "a") currentNode[propName] = propValue; + else currentNode.a = propValue; + } + this.setCurrentProp(currentNode, propName); + if (propName === "a" && propValue.slice(-1) !== ",") { + currentNode.a = parseNumberArray(propValue); + } + } + parseNodePropertyContinued(line) { + const currentNode = this.getCurrentNode(); + currentNode.a += line; + if (line.slice(-1) !== ",") { + currentNode.a = parseNumberArray(currentNode.a); + } + } + // parse "Property70" + parseNodeSpecialProperty(line, propName, propValue) { + const props = propValue.split('",').map(function(prop) { + return prop.trim().replace(/^\"/, "").replace(/\s/, "_"); + }); + const innerPropName = props[0]; + const innerPropType1 = props[1]; + const innerPropType2 = props[2]; + const innerPropFlag = props[3]; + let innerPropValue = props[4]; + switch (innerPropType1) { + case "int": + case "enum": + case "bool": + case "ULongLong": + case "double": + case "Number": + case "FieldOfView": + innerPropValue = parseFloat(innerPropValue); + break; + case "Color": + case "ColorRGB": + case "Vector3D": + case "Lcl_Translation": + case "Lcl_Rotation": + case "Lcl_Scaling": + innerPropValue = parseNumberArray(innerPropValue); + break; + } + this.getPrevNode()[innerPropName] = { + "type": innerPropType1, + "type2": innerPropType2, + "flag": innerPropFlag, + "value": innerPropValue + }; + this.setCurrentProp(this.getPrevNode(), innerPropName); + } +} +class BinaryParser { + static { + __name(this, "BinaryParser"); + } + parse(buffer) { + const reader = new BinaryReader(buffer); + reader.skip(23); + const version = reader.getUint32(); + if (version < 6400) { + throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: " + version); + } + const allNodes = new FBXTree(); + while (!this.endOfContent(reader)) { + const node = this.parseNode(reader, version); + if (node !== null) allNodes.add(node.name, node); + } + return allNodes; + } + // Check if reader has reached the end of content. + endOfContent(reader) { + if (reader.size() % 16 === 0) { + return (reader.getOffset() + 160 + 16 & ~15) >= reader.size(); + } else { + return reader.getOffset() + 160 + 16 >= reader.size(); + } + } + // recursively parse nodes until the end of the file is reached + parseNode(reader, version) { + const node = {}; + const endOffset = version >= 7500 ? reader.getUint64() : reader.getUint32(); + const numProperties = version >= 7500 ? reader.getUint64() : reader.getUint32(); + version >= 7500 ? reader.getUint64() : reader.getUint32(); + const nameLen = reader.getUint8(); + const name = reader.getString(nameLen); + if (endOffset === 0) return null; + const propertyList = []; + for (let i = 0; i < numProperties; i++) { + propertyList.push(this.parseProperty(reader)); + } + const id2 = propertyList.length > 0 ? propertyList[0] : ""; + const attrName = propertyList.length > 1 ? propertyList[1] : ""; + const attrType = propertyList.length > 2 ? propertyList[2] : ""; + node.singleProperty = numProperties === 1 && reader.getOffset() === endOffset ? true : false; + while (endOffset > reader.getOffset()) { + const subNode = this.parseNode(reader, version); + if (subNode !== null) this.parseSubNode(name, node, subNode); + } + node.propertyList = propertyList; + if (typeof id2 === "number") node.id = id2; + if (attrName !== "") node.attrName = attrName; + if (attrType !== "") node.attrType = attrType; + if (name !== "") node.name = name; + return node; + } + parseSubNode(name, node, subNode) { + if (subNode.singleProperty === true) { + const value = subNode.propertyList[0]; + if (Array.isArray(value)) { + node[subNode.name] = subNode; + subNode.a = value; + } else { + node[subNode.name] = value; + } + } else if (name === "Connections" && subNode.name === "C") { + const array = []; + subNode.propertyList.forEach(function(property, i) { + if (i !== 0) array.push(property); + }); + if (node.connections === void 0) { + node.connections = []; + } + node.connections.push(array); + } else if (subNode.name === "Properties70") { + const keys = Object.keys(subNode); + keys.forEach(function(key) { + node[key] = subNode[key]; + }); + } else if (name === "Properties70" && subNode.name === "P") { + let innerPropName = subNode.propertyList[0]; + let innerPropType1 = subNode.propertyList[1]; + const innerPropType2 = subNode.propertyList[2]; + const innerPropFlag = subNode.propertyList[3]; + let innerPropValue; + if (innerPropName.indexOf("Lcl ") === 0) innerPropName = innerPropName.replace("Lcl ", "Lcl_"); + if (innerPropType1.indexOf("Lcl ") === 0) innerPropType1 = innerPropType1.replace("Lcl ", "Lcl_"); + if (innerPropType1 === "Color" || innerPropType1 === "ColorRGB" || innerPropType1 === "Vector" || innerPropType1 === "Vector3D" || innerPropType1.indexOf("Lcl_") === 0) { + innerPropValue = [ + subNode.propertyList[4], + subNode.propertyList[5], + subNode.propertyList[6] + ]; + } else { + innerPropValue = subNode.propertyList[4]; + } + node[innerPropName] = { + "type": innerPropType1, + "type2": innerPropType2, + "flag": innerPropFlag, + "value": innerPropValue + }; + } else if (node[subNode.name] === void 0) { + if (typeof subNode.id === "number") { + node[subNode.name] = {}; + node[subNode.name][subNode.id] = subNode; + } else { + node[subNode.name] = subNode; + } + } else { + if (subNode.name === "PoseNode") { + if (!Array.isArray(node[subNode.name])) { + node[subNode.name] = [node[subNode.name]]; + } + node[subNode.name].push(subNode); + } else if (node[subNode.name][subNode.id] === void 0) { + node[subNode.name][subNode.id] = subNode; + } + } + } + parseProperty(reader) { + const type = reader.getString(1); + let length; + switch (type) { + case "C": + return reader.getBoolean(); + case "D": + return reader.getFloat64(); + case "F": + return reader.getFloat32(); + case "I": + return reader.getInt32(); + case "L": + return reader.getInt64(); + case "R": + length = reader.getUint32(); + return reader.getArrayBuffer(length); + case "S": + length = reader.getUint32(); + return reader.getString(length); + case "Y": + return reader.getInt16(); + case "b": + case "c": + case "d": + case "f": + case "i": + case "l": + const arrayLength = reader.getUint32(); + const encoding = reader.getUint32(); + const compressedLength = reader.getUint32(); + if (encoding === 0) { + switch (type) { + case "b": + case "c": + return reader.getBooleanArray(arrayLength); + case "d": + return reader.getFloat64Array(arrayLength); + case "f": + return reader.getFloat32Array(arrayLength); + case "i": + return reader.getInt32Array(arrayLength); + case "l": + return reader.getInt64Array(arrayLength); + } + } + const data = unzlibSync(new Uint8Array(reader.getArrayBuffer(compressedLength))); + const reader2 = new BinaryReader(data.buffer); + switch (type) { + case "b": + case "c": + return reader2.getBooleanArray(arrayLength); + case "d": + return reader2.getFloat64Array(arrayLength); + case "f": + return reader2.getFloat32Array(arrayLength); + case "i": + return reader2.getInt32Array(arrayLength); + case "l": + return reader2.getInt64Array(arrayLength); + } + break; + default: + throw new Error("THREE.FBXLoader: Unknown property type " + type); + } + } +} +class BinaryReader { + static { + __name(this, "BinaryReader"); + } + constructor(buffer, littleEndian) { + this.dv = new DataView(buffer); + this.offset = 0; + this.littleEndian = littleEndian !== void 0 ? littleEndian : true; + this._textDecoder = new TextDecoder(); + } + getOffset() { + return this.offset; + } + size() { + return this.dv.buffer.byteLength; + } + skip(length) { + this.offset += length; + } + // seems like true/false representation depends on exporter. + // true: 1 or 'Y'(=0x59), false: 0 or 'T'(=0x54) + // then sees LSB. + getBoolean() { + return (this.getUint8() & 1) === 1; + } + getBooleanArray(size) { + const a = []; + for (let i = 0; i < size; i++) { + a.push(this.getBoolean()); + } + return a; + } + getUint8() { + const value = this.dv.getUint8(this.offset); + this.offset += 1; + return value; + } + getInt16() { + const value = this.dv.getInt16(this.offset, this.littleEndian); + this.offset += 2; + return value; + } + getInt32() { + const value = this.dv.getInt32(this.offset, this.littleEndian); + this.offset += 4; + return value; + } + getInt32Array(size) { + const a = []; + for (let i = 0; i < size; i++) { + a.push(this.getInt32()); + } + return a; + } + getUint32() { + const value = this.dv.getUint32(this.offset, this.littleEndian); + this.offset += 4; + return value; + } + // JavaScript doesn't support 64-bit integer so calculate this here + // 1 << 32 will return 1 so using multiply operation instead here. + // There's a possibility that this method returns wrong value if the value + // is out of the range between Number.MAX_SAFE_INTEGER and Number.MIN_SAFE_INTEGER. + // TODO: safely handle 64-bit integer + getInt64() { + let low, high; + if (this.littleEndian) { + low = this.getUint32(); + high = this.getUint32(); + } else { + high = this.getUint32(); + low = this.getUint32(); + } + if (high & 2147483648) { + high = ~high & 4294967295; + low = ~low & 4294967295; + if (low === 4294967295) high = high + 1 & 4294967295; + low = low + 1 & 4294967295; + return -(high * 4294967296 + low); + } + return high * 4294967296 + low; + } + getInt64Array(size) { + const a = []; + for (let i = 0; i < size; i++) { + a.push(this.getInt64()); + } + return a; + } + // Note: see getInt64() comment + getUint64() { + let low, high; + if (this.littleEndian) { + low = this.getUint32(); + high = this.getUint32(); + } else { + high = this.getUint32(); + low = this.getUint32(); + } + return high * 4294967296 + low; + } + getFloat32() { + const value = this.dv.getFloat32(this.offset, this.littleEndian); + this.offset += 4; + return value; + } + getFloat32Array(size) { + const a = []; + for (let i = 0; i < size; i++) { + a.push(this.getFloat32()); + } + return a; + } + getFloat64() { + const value = this.dv.getFloat64(this.offset, this.littleEndian); + this.offset += 8; + return value; + } + getFloat64Array(size) { + const a = []; + for (let i = 0; i < size; i++) { + a.push(this.getFloat64()); + } + return a; + } + getArrayBuffer(size) { + const value = this.dv.buffer.slice(this.offset, this.offset + size); + this.offset += size; + return value; + } + getString(size) { + const start = this.offset; + let a = new Uint8Array(this.dv.buffer, start, size); + this.skip(size); + const nullByte = a.indexOf(0); + if (nullByte >= 0) a = new Uint8Array(this.dv.buffer, start, nullByte); + return this._textDecoder.decode(a); + } +} +class FBXTree { + static { + __name(this, "FBXTree"); + } + add(key, val) { + this[key] = val; + } +} +function isFbxFormatBinary(buffer) { + const CORRECT = "Kaydara FBX Binary \0"; + return buffer.byteLength >= CORRECT.length && CORRECT === convertArrayBufferToString(buffer, 0, CORRECT.length); +} +__name(isFbxFormatBinary, "isFbxFormatBinary"); +function isFbxFormatASCII(text) { + const CORRECT = ["K", "a", "y", "d", "a", "r", "a", "\\", "F", "B", "X", "\\", "B", "i", "n", "a", "r", "y", "\\", "\\"]; + let cursor = 0; + function read(offset) { + const result = text[offset - 1]; + text = text.slice(cursor + offset); + cursor++; + return result; + } + __name(read, "read"); + for (let i = 0; i < CORRECT.length; ++i) { + const num = read(1); + if (num === CORRECT[i]) { + return false; + } + } + return true; +} +__name(isFbxFormatASCII, "isFbxFormatASCII"); +function getFbxVersion(text) { + const versionRegExp = /FBXVersion: (\d+)/; + const match = text.match(versionRegExp); + if (match) { + const version = parseInt(match[1]); + return version; + } + throw new Error("THREE.FBXLoader: Cannot find the version number for the file given."); +} +__name(getFbxVersion, "getFbxVersion"); +function convertFBXTimeToSeconds(time) { + return time / 46186158e3; +} +__name(convertFBXTimeToSeconds, "convertFBXTimeToSeconds"); +const dataArray = []; +function getData(polygonVertexIndex, polygonIndex, vertexIndex, infoObject) { + let index; + switch (infoObject.mappingType) { + case "ByPolygonVertex": + index = polygonVertexIndex; + break; + case "ByPolygon": + index = polygonIndex; + break; + case "ByVertice": + index = vertexIndex; + break; + case "AllSame": + index = infoObject.indices[0]; + break; + default: + console.warn("THREE.FBXLoader: unknown attribute mapping type " + infoObject.mappingType); + } + if (infoObject.referenceType === "IndexToDirect") index = infoObject.indices[index]; + const from = index * infoObject.dataSize; + const to = from + infoObject.dataSize; + return slice(dataArray, infoObject.buffer, from, to); +} +__name(getData, "getData"); +const tempEuler = new Euler(); +const tempVec = new Vector3(); +function generateTransform(transformData) { + const lTranslationM = new Matrix4(); + const lPreRotationM = new Matrix4(); + const lRotationM = new Matrix4(); + const lPostRotationM = new Matrix4(); + const lScalingM = new Matrix4(); + const lScalingPivotM = new Matrix4(); + const lScalingOffsetM = new Matrix4(); + const lRotationOffsetM = new Matrix4(); + const lRotationPivotM = new Matrix4(); + const lParentGX = new Matrix4(); + const lParentLX = new Matrix4(); + const lGlobalT = new Matrix4(); + const inheritType = transformData.inheritType ? transformData.inheritType : 0; + if (transformData.translation) lTranslationM.setPosition(tempVec.fromArray(transformData.translation)); + const defaultEulerOrder = getEulerOrder(0); + if (transformData.preRotation) { + const array = transformData.preRotation.map(MathUtils.degToRad); + array.push(defaultEulerOrder); + lPreRotationM.makeRotationFromEuler(tempEuler.fromArray(array)); + } + if (transformData.rotation) { + const array = transformData.rotation.map(MathUtils.degToRad); + array.push(transformData.eulerOrder || defaultEulerOrder); + lRotationM.makeRotationFromEuler(tempEuler.fromArray(array)); + } + if (transformData.postRotation) { + const array = transformData.postRotation.map(MathUtils.degToRad); + array.push(defaultEulerOrder); + lPostRotationM.makeRotationFromEuler(tempEuler.fromArray(array)); + lPostRotationM.invert(); + } + if (transformData.scale) lScalingM.scale(tempVec.fromArray(transformData.scale)); + if (transformData.scalingOffset) lScalingOffsetM.setPosition(tempVec.fromArray(transformData.scalingOffset)); + if (transformData.scalingPivot) lScalingPivotM.setPosition(tempVec.fromArray(transformData.scalingPivot)); + if (transformData.rotationOffset) lRotationOffsetM.setPosition(tempVec.fromArray(transformData.rotationOffset)); + if (transformData.rotationPivot) lRotationPivotM.setPosition(tempVec.fromArray(transformData.rotationPivot)); + if (transformData.parentMatrixWorld) { + lParentLX.copy(transformData.parentMatrix); + lParentGX.copy(transformData.parentMatrixWorld); + } + const lLRM = lPreRotationM.clone().multiply(lRotationM).multiply(lPostRotationM); + const lParentGRM = new Matrix4(); + lParentGRM.extractRotation(lParentGX); + const lParentTM = new Matrix4(); + lParentTM.copyPosition(lParentGX); + const lParentGRSM = lParentTM.clone().invert().multiply(lParentGX); + const lParentGSM = lParentGRM.clone().invert().multiply(lParentGRSM); + const lLSM = lScalingM; + const lGlobalRS = new Matrix4(); + if (inheritType === 0) { + lGlobalRS.copy(lParentGRM).multiply(lLRM).multiply(lParentGSM).multiply(lLSM); + } else if (inheritType === 1) { + lGlobalRS.copy(lParentGRM).multiply(lParentGSM).multiply(lLRM).multiply(lLSM); + } else { + const lParentLSM = new Matrix4().scale(new Vector3().setFromMatrixScale(lParentLX)); + const lParentLSM_inv = lParentLSM.clone().invert(); + const lParentGSM_noLocal = lParentGSM.clone().multiply(lParentLSM_inv); + lGlobalRS.copy(lParentGRM).multiply(lLRM).multiply(lParentGSM_noLocal).multiply(lLSM); + } + const lRotationPivotM_inv = lRotationPivotM.clone().invert(); + const lScalingPivotM_inv = lScalingPivotM.clone().invert(); + let lTransform = lTranslationM.clone().multiply(lRotationOffsetM).multiply(lRotationPivotM).multiply(lPreRotationM).multiply(lRotationM).multiply(lPostRotationM).multiply(lRotationPivotM_inv).multiply(lScalingOffsetM).multiply(lScalingPivotM).multiply(lScalingM).multiply(lScalingPivotM_inv); + const lLocalTWithAllPivotAndOffsetInfo = new Matrix4().copyPosition(lTransform); + const lGlobalTranslation = lParentGX.clone().multiply(lLocalTWithAllPivotAndOffsetInfo); + lGlobalT.copyPosition(lGlobalTranslation); + lTransform = lGlobalT.clone().multiply(lGlobalRS); + lTransform.premultiply(lParentGX.invert()); + return lTransform; +} +__name(generateTransform, "generateTransform"); +function getEulerOrder(order) { + order = order || 0; + const enums = [ + "ZYX", + // -> XYZ extrinsic + "YZX", + // -> XZY extrinsic + "XZY", + // -> YZX extrinsic + "ZXY", + // -> YXZ extrinsic + "YXZ", + // -> ZXY extrinsic + "XYZ" + // -> ZYX extrinsic + //'SphericXYZ', // not possible to support + ]; + if (order === 6) { + console.warn("THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect."); + return enums[0]; + } + return enums[order]; +} +__name(getEulerOrder, "getEulerOrder"); +function parseNumberArray(value) { + const array = value.split(",").map(function(val) { + return parseFloat(val); + }); + return array; +} +__name(parseNumberArray, "parseNumberArray"); +function convertArrayBufferToString(buffer, from, to) { + if (from === void 0) from = 0; + if (to === void 0) to = buffer.byteLength; + return new TextDecoder().decode(new Uint8Array(buffer, from, to)); +} +__name(convertArrayBufferToString, "convertArrayBufferToString"); +function append(a, b) { + for (let i = 0, j = a.length, l = b.length; i < l; i++, j++) { + a[j] = b[i]; + } +} +__name(append, "append"); +function slice(a, b, from, to) { + for (let i = from, j = 0; i < to; i++, j++) { + a[j] = b[i]; + } + return a; +} +__name(slice, "slice"); +function computeMikkTSpaceTangents(geometry, MikkTSpace, negateSign = true) { + if (!MikkTSpace || !MikkTSpace.isReady) { + throw new Error("BufferGeometryUtils: Initialized MikkTSpace library required."); + } + if (!geometry.hasAttribute("position") || !geometry.hasAttribute("normal") || !geometry.hasAttribute("uv")) { + throw new Error('BufferGeometryUtils: Tangents require "position", "normal", and "uv" attributes.'); + } + function getAttributeArray(attribute) { + if (attribute.normalized || attribute.isInterleavedBufferAttribute) { + const dstArray = new Float32Array(attribute.count * attribute.itemSize); + for (let i = 0, j = 0; i < attribute.count; i++) { + dstArray[j++] = attribute.getX(i); + dstArray[j++] = attribute.getY(i); + if (attribute.itemSize > 2) { + dstArray[j++] = attribute.getZ(i); + } + } + return dstArray; + } + if (attribute.array instanceof Float32Array) { + return attribute.array; + } + return new Float32Array(attribute.array); + } + __name(getAttributeArray, "getAttributeArray"); + const _geometry2 = geometry.index ? geometry.toNonIndexed() : geometry; + const tangents = MikkTSpace.generateTangents( + getAttributeArray(_geometry2.attributes.position), + getAttributeArray(_geometry2.attributes.normal), + getAttributeArray(_geometry2.attributes.uv) + ); + if (negateSign) { + for (let i = 3; i < tangents.length; i += 4) { + tangents[i] *= -1; + } + } + _geometry2.setAttribute("tangent", new BufferAttribute(tangents, 4)); + if (geometry !== _geometry2) { + geometry.copy(_geometry2); + } + return geometry; +} +__name(computeMikkTSpaceTangents, "computeMikkTSpaceTangents"); +function mergeGeometries(geometries, useGroups = false) { + const isIndexed = geometries[0].index !== null; + const attributesUsed = new Set(Object.keys(geometries[0].attributes)); + const morphAttributesUsed = new Set(Object.keys(geometries[0].morphAttributes)); + const attributes = {}; + const morphAttributes = {}; + const morphTargetsRelative = geometries[0].morphTargetsRelative; + const mergedGeometry = new BufferGeometry(); + let offset = 0; + for (let i = 0; i < geometries.length; ++i) { + const geometry = geometries[i]; + let attributesCount = 0; + if (isIndexed !== (geometry.index !== null)) { + console.error("THREE.BufferGeometryUtils: .mergeGeometries() 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."); + return null; + } + for (const name in geometry.attributes) { + if (!attributesUsed.has(name)) { + console.error("THREE.BufferGeometryUtils: .mergeGeometries() 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.'); + return null; + } + if (attributes[name] === void 0) attributes[name] = []; + attributes[name].push(geometry.attributes[name]); + attributesCount++; + } + if (attributesCount !== attributesUsed.size) { + console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + i + ". Make sure all geometries have the same number of attributes."); + return null; + } + if (morphTargetsRelative !== geometry.morphTargetsRelative) { + console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + i + ". .morphTargetsRelative must be consistent throughout all geometries."); + return null; + } + for (const name in geometry.morphAttributes) { + if (!morphAttributesUsed.has(name)) { + console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + i + ". .morphAttributes must be consistent throughout all geometries."); + return null; + } + if (morphAttributes[name] === void 0) morphAttributes[name] = []; + morphAttributes[name].push(geometry.morphAttributes[name]); + } + if (useGroups) { + let count; + if (isIndexed) { + count = geometry.index.count; + } else if (geometry.attributes.position !== void 0) { + count = geometry.attributes.position.count; + } else { + console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index " + i + ". The geometry must have either an index or a position attribute"); + return null; + } + mergedGeometry.addGroup(offset, count, i); + offset += count; + } + } + if (isIndexed) { + let indexOffset = 0; + const mergedIndex = []; + for (let i = 0; i < geometries.length; ++i) { + const index = geometries[i].index; + for (let j = 0; j < index.count; ++j) { + mergedIndex.push(index.getX(j) + indexOffset); + } + indexOffset += geometries[i].attributes.position.count; + } + mergedGeometry.setIndex(mergedIndex); + } + for (const name in attributes) { + const mergedAttribute = mergeAttributes(attributes[name]); + if (!mergedAttribute) { + console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + name + " attribute."); + return null; + } + mergedGeometry.setAttribute(name, mergedAttribute); + } + for (const name in morphAttributes) { + const numMorphTargets = morphAttributes[name][0].length; + if (numMorphTargets === 0) break; + mergedGeometry.morphAttributes = mergedGeometry.morphAttributes || {}; + mergedGeometry.morphAttributes[name] = []; + for (let i = 0; i < numMorphTargets; ++i) { + const morphAttributesToMerge = []; + for (let j = 0; j < morphAttributes[name].length; ++j) { + morphAttributesToMerge.push(morphAttributes[name][j][i]); + } + const mergedMorphAttribute = mergeAttributes(morphAttributesToMerge); + if (!mergedMorphAttribute) { + console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the " + name + " morphAttribute."); + return null; + } + mergedGeometry.morphAttributes[name].push(mergedMorphAttribute); + } + } + return mergedGeometry; +} +__name(mergeGeometries, "mergeGeometries"); +function mergeAttributes(attributes) { + let TypedArray; + let itemSize; + let normalized; + let gpuType = -1; + let arrayLength = 0; + for (let i = 0; i < attributes.length; ++i) { + const attribute = attributes[i]; + if (TypedArray === void 0) TypedArray = attribute.array.constructor; + if (TypedArray !== attribute.array.constructor) { + console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."); + return null; + } + if (itemSize === void 0) itemSize = attribute.itemSize; + if (itemSize !== attribute.itemSize) { + console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."); + return null; + } + if (normalized === void 0) normalized = attribute.normalized; + if (normalized !== attribute.normalized) { + console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."); + return null; + } + if (gpuType === -1) gpuType = attribute.gpuType; + if (gpuType !== attribute.gpuType) { + console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."); + return null; + } + arrayLength += attribute.count * itemSize; + } + const array = new TypedArray(arrayLength); + const result = new BufferAttribute(array, itemSize, normalized); + let offset = 0; + for (let i = 0; i < attributes.length; ++i) { + const attribute = attributes[i]; + if (attribute.isInterleavedBufferAttribute) { + const tupleOffset = offset / itemSize; + for (let j = 0, l = attribute.count; j < l; j++) { + for (let c = 0; c < itemSize; c++) { + const value = attribute.getComponent(j, c); + result.setComponent(j + tupleOffset, c, value); + } + } + } else { + array.set(attribute.array, offset); + } + offset += attribute.count * itemSize; + } + if (gpuType !== void 0) { + result.gpuType = gpuType; + } + return result; +} +__name(mergeAttributes, "mergeAttributes"); +function deepCloneAttribute(attribute) { + if (attribute.isInstancedInterleavedBufferAttribute || attribute.isInterleavedBufferAttribute) { + return deinterleaveAttribute(attribute); + } + if (attribute.isInstancedBufferAttribute) { + return new InstancedBufferAttribute().copy(attribute); + } + return new BufferAttribute().copy(attribute); +} +__name(deepCloneAttribute, "deepCloneAttribute"); +function interleaveAttributes(attributes) { + let TypedArray; + let arrayLength = 0; + let stride = 0; + for (let i = 0, l = attributes.length; i < l; ++i) { + const attribute = attributes[i]; + if (TypedArray === void 0) TypedArray = attribute.array.constructor; + if (TypedArray !== attribute.array.constructor) { + console.error("AttributeBuffers of different types cannot be interleaved"); + return null; + } + arrayLength += attribute.array.length; + stride += attribute.itemSize; + } + const interleavedBuffer = new InterleavedBuffer(new TypedArray(arrayLength), stride); + let offset = 0; + const res = []; + const getters = ["getX", "getY", "getZ", "getW"]; + const setters = ["setX", "setY", "setZ", "setW"]; + for (let j = 0, l = attributes.length; j < l; j++) { + const attribute = attributes[j]; + const itemSize = attribute.itemSize; + const count = attribute.count; + const iba = new InterleavedBufferAttribute(interleavedBuffer, itemSize, offset, attribute.normalized); + res.push(iba); + offset += itemSize; + for (let c = 0; c < count; c++) { + for (let k = 0; k < itemSize; k++) { + iba[setters[k]](c, attribute[getters[k]](c)); + } + } + } + return res; +} +__name(interleaveAttributes, "interleaveAttributes"); +function deinterleaveAttribute(attribute) { + const cons = attribute.data.array.constructor; + const count = attribute.count; + const itemSize = attribute.itemSize; + const normalized = attribute.normalized; + const array = new cons(count * itemSize); + let newAttribute; + if (attribute.isInstancedInterleavedBufferAttribute) { + newAttribute = new InstancedBufferAttribute(array, itemSize, normalized, attribute.meshPerAttribute); + } else { + newAttribute = new BufferAttribute(array, itemSize, normalized); + } + for (let i = 0; i < count; i++) { + newAttribute.setX(i, attribute.getX(i)); + if (itemSize >= 2) { + newAttribute.setY(i, attribute.getY(i)); + } + if (itemSize >= 3) { + newAttribute.setZ(i, attribute.getZ(i)); + } + if (itemSize >= 4) { + newAttribute.setW(i, attribute.getW(i)); + } + } + return newAttribute; +} +__name(deinterleaveAttribute, "deinterleaveAttribute"); +function deinterleaveGeometry(geometry) { + const attributes = geometry.attributes; + const morphTargets = geometry.morphTargets; + const attrMap = /* @__PURE__ */ new Map(); + for (const key in attributes) { + const attr = attributes[key]; + if (attr.isInterleavedBufferAttribute) { + if (!attrMap.has(attr)) { + attrMap.set(attr, deinterleaveAttribute(attr)); + } + attributes[key] = attrMap.get(attr); + } + } + for (const key in morphTargets) { + const attr = morphTargets[key]; + if (attr.isInterleavedBufferAttribute) { + if (!attrMap.has(attr)) { + attrMap.set(attr, deinterleaveAttribute(attr)); + } + morphTargets[key] = attrMap.get(attr); + } + } +} +__name(deinterleaveGeometry, "deinterleaveGeometry"); +function estimateBytesUsed(geometry) { + let mem = 0; + for (const name in geometry.attributes) { + const attr = geometry.getAttribute(name); + mem += attr.count * attr.itemSize * attr.array.BYTES_PER_ELEMENT; + } + const indices = geometry.getIndex(); + mem += indices ? indices.count * indices.itemSize * indices.array.BYTES_PER_ELEMENT : 0; + return mem; +} +__name(estimateBytesUsed, "estimateBytesUsed"); +function mergeVertices(geometry, tolerance = 1e-4) { + tolerance = Math.max(tolerance, Number.EPSILON); + const hashToIndex = {}; + const indices = geometry.getIndex(); + const positions = geometry.getAttribute("position"); + const vertexCount = indices ? indices.count : positions.count; + let nextIndex = 0; + const attributeNames = Object.keys(geometry.attributes); + const tmpAttributes = {}; + const tmpMorphAttributes = {}; + const newIndices = []; + const getters = ["getX", "getY", "getZ", "getW"]; + const setters = ["setX", "setY", "setZ", "setW"]; + for (let i = 0, l = attributeNames.length; i < l; i++) { + const name = attributeNames[i]; + const attr = geometry.attributes[name]; + tmpAttributes[name] = new attr.constructor( + new attr.array.constructor(attr.count * attr.itemSize), + attr.itemSize, + attr.normalized + ); + const morphAttributes = geometry.morphAttributes[name]; + if (morphAttributes) { + if (!tmpMorphAttributes[name]) tmpMorphAttributes[name] = []; + morphAttributes.forEach((morphAttr, i2) => { + const array = new morphAttr.array.constructor(morphAttr.count * morphAttr.itemSize); + tmpMorphAttributes[name][i2] = new morphAttr.constructor(array, morphAttr.itemSize, morphAttr.normalized); + }); + } + } + const halfTolerance = tolerance * 0.5; + const exponent = Math.log10(1 / tolerance); + const hashMultiplier = Math.pow(10, exponent); + const hashAdditive = halfTolerance * hashMultiplier; + for (let i = 0; i < vertexCount; i++) { + const index = indices ? indices.getX(i) : i; + let hash = ""; + for (let j = 0, l = attributeNames.length; j < l; j++) { + const name = attributeNames[j]; + const attribute = geometry.getAttribute(name); + const itemSize = attribute.itemSize; + for (let k = 0; k < itemSize; k++) { + hash += `${~~(attribute[getters[k]](index) * hashMultiplier + hashAdditive)},`; + } + } + if (hash in hashToIndex) { + newIndices.push(hashToIndex[hash]); + } else { + for (let j = 0, l = attributeNames.length; j < l; j++) { + const name = attributeNames[j]; + const attribute = geometry.getAttribute(name); + const morphAttributes = geometry.morphAttributes[name]; + const itemSize = attribute.itemSize; + const newArray = tmpAttributes[name]; + const newMorphArrays = tmpMorphAttributes[name]; + for (let k = 0; k < itemSize; k++) { + const getterFunc = getters[k]; + const setterFunc = setters[k]; + newArray[setterFunc](nextIndex, attribute[getterFunc](index)); + if (morphAttributes) { + for (let m = 0, ml = morphAttributes.length; m < ml; m++) { + newMorphArrays[m][setterFunc](nextIndex, morphAttributes[m][getterFunc](index)); + } + } + } + } + hashToIndex[hash] = nextIndex; + newIndices.push(nextIndex); + nextIndex++; + } + } + const result = geometry.clone(); + for (const name in geometry.attributes) { + const tmpAttribute = tmpAttributes[name]; + result.setAttribute(name, new tmpAttribute.constructor( + tmpAttribute.array.slice(0, nextIndex * tmpAttribute.itemSize), + tmpAttribute.itemSize, + tmpAttribute.normalized + )); + if (!(name in tmpMorphAttributes)) continue; + for (let j = 0; j < tmpMorphAttributes[name].length; j++) { + const tmpMorphAttribute = tmpMorphAttributes[name][j]; + result.morphAttributes[name][j] = new tmpMorphAttribute.constructor( + tmpMorphAttribute.array.slice(0, nextIndex * tmpMorphAttribute.itemSize), + tmpMorphAttribute.itemSize, + tmpMorphAttribute.normalized + ); + } + } + result.setIndex(newIndices); + return result; +} +__name(mergeVertices, "mergeVertices"); +function toTrianglesDrawMode(geometry, drawMode) { + if (drawMode === TrianglesDrawMode) { + console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."); + return geometry; + } + if (drawMode === TriangleFanDrawMode || drawMode === TriangleStripDrawMode) { + let index = geometry.getIndex(); + if (index === null) { + const indices = []; + const position = geometry.getAttribute("position"); + if (position !== void 0) { + for (let i = 0; i < position.count; i++) { + indices.push(i); + } + geometry.setIndex(indices); + index = geometry.getIndex(); + } else { + console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."); + return geometry; + } + } + const numberOfTriangles = index.count - 2; + const newIndices = []; + if (drawMode === TriangleFanDrawMode) { + for (let i = 1; i <= numberOfTriangles; i++) { + newIndices.push(index.getX(0)); + newIndices.push(index.getX(i)); + newIndices.push(index.getX(i + 1)); + } + } else { + for (let i = 0; i < numberOfTriangles; i++) { + if (i % 2 === 0) { + newIndices.push(index.getX(i)); + newIndices.push(index.getX(i + 1)); + newIndices.push(index.getX(i + 2)); + } else { + newIndices.push(index.getX(i + 2)); + newIndices.push(index.getX(i + 1)); + newIndices.push(index.getX(i)); + } + } + } + if (newIndices.length / 3 !== numberOfTriangles) { + console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles."); + } + const newGeometry = geometry.clone(); + newGeometry.setIndex(newIndices); + newGeometry.clearGroups(); + return newGeometry; + } else { + console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:", drawMode); + return geometry; + } +} +__name(toTrianglesDrawMode, "toTrianglesDrawMode"); +function computeMorphedAttributes(object) { + const _vA2 = new Vector3(); + const _vB2 = new Vector3(); + const _vC2 = new Vector3(); + const _tempA2 = new Vector3(); + const _tempB = new Vector3(); + const _tempC = new Vector3(); + const _morphA2 = new Vector3(); + const _morphB = new Vector3(); + const _morphC = new Vector3(); + function _calculateMorphedAttributeData(object2, attribute, morphAttribute, morphTargetsRelative2, a2, b3, c2, modifiedAttributeArray) { + _vA2.fromBufferAttribute(attribute, a2); + _vB2.fromBufferAttribute(attribute, b3); + _vC2.fromBufferAttribute(attribute, c2); + const morphInfluences = object2.morphTargetInfluences; + if (morphAttribute && morphInfluences) { + _morphA2.set(0, 0, 0); + _morphB.set(0, 0, 0); + _morphC.set(0, 0, 0); + for (let i2 = 0, il2 = morphAttribute.length; i2 < il2; i2++) { + const influence = morphInfluences[i2]; + const morph = morphAttribute[i2]; + if (influence === 0) continue; + _tempA2.fromBufferAttribute(morph, a2); + _tempB.fromBufferAttribute(morph, b3); + _tempC.fromBufferAttribute(morph, c2); + if (morphTargetsRelative2) { + _morphA2.addScaledVector(_tempA2, influence); + _morphB.addScaledVector(_tempB, influence); + _morphC.addScaledVector(_tempC, influence); + } else { + _morphA2.addScaledVector(_tempA2.sub(_vA2), influence); + _morphB.addScaledVector(_tempB.sub(_vB2), influence); + _morphC.addScaledVector(_tempC.sub(_vC2), influence); + } + } + _vA2.add(_morphA2); + _vB2.add(_morphB); + _vC2.add(_morphC); + } + if (object2.isSkinnedMesh) { + object2.applyBoneTransform(a2, _vA2); + object2.applyBoneTransform(b3, _vB2); + object2.applyBoneTransform(c2, _vC2); + } + modifiedAttributeArray[a2 * 3 + 0] = _vA2.x; + modifiedAttributeArray[a2 * 3 + 1] = _vA2.y; + modifiedAttributeArray[a2 * 3 + 2] = _vA2.z; + modifiedAttributeArray[b3 * 3 + 0] = _vB2.x; + modifiedAttributeArray[b3 * 3 + 1] = _vB2.y; + modifiedAttributeArray[b3 * 3 + 2] = _vB2.z; + modifiedAttributeArray[c2 * 3 + 0] = _vC2.x; + modifiedAttributeArray[c2 * 3 + 1] = _vC2.y; + modifiedAttributeArray[c2 * 3 + 2] = _vC2.z; + } + __name(_calculateMorphedAttributeData, "_calculateMorphedAttributeData"); + const geometry = object.geometry; + const material = object.material; + let a, b, c; + const index = geometry.index; + const positionAttribute = geometry.attributes.position; + const morphPosition = geometry.morphAttributes.position; + const morphTargetsRelative = geometry.morphTargetsRelative; + const normalAttribute = geometry.attributes.normal; + const morphNormal = geometry.morphAttributes.position; + const groups = geometry.groups; + const drawRange = geometry.drawRange; + let i, j, il, jl; + let group; + let start, end; + const modifiedPosition = new Float32Array(positionAttribute.count * positionAttribute.itemSize); + const modifiedNormal = new Float32Array(normalAttribute.count * normalAttribute.itemSize); + if (index !== null) { + if (Array.isArray(material)) { + for (i = 0, il = groups.length; i < il; i++) { + group = groups[i]; + start = Math.max(group.start, drawRange.start); + end = Math.min(group.start + group.count, drawRange.start + drawRange.count); + for (j = start, jl = end; j < jl; j += 3) { + a = index.getX(j); + b = index.getX(j + 1); + c = index.getX(j + 2); + _calculateMorphedAttributeData( + object, + positionAttribute, + morphPosition, + morphTargetsRelative, + a, + b, + c, + modifiedPosition + ); + _calculateMorphedAttributeData( + object, + normalAttribute, + morphNormal, + morphTargetsRelative, + a, + b, + c, + modifiedNormal + ); + } + } + } else { + start = Math.max(0, drawRange.start); + end = Math.min(index.count, drawRange.start + drawRange.count); + for (i = start, il = end; i < il; i += 3) { + a = index.getX(i); + b = index.getX(i + 1); + c = index.getX(i + 2); + _calculateMorphedAttributeData( + object, + positionAttribute, + morphPosition, + morphTargetsRelative, + a, + b, + c, + modifiedPosition + ); + _calculateMorphedAttributeData( + object, + normalAttribute, + morphNormal, + morphTargetsRelative, + a, + b, + c, + modifiedNormal + ); + } + } + } else { + if (Array.isArray(material)) { + for (i = 0, il = groups.length; i < il; i++) { + group = groups[i]; + start = Math.max(group.start, drawRange.start); + end = Math.min(group.start + group.count, drawRange.start + drawRange.count); + for (j = start, jl = end; j < jl; j += 3) { + a = j; + b = j + 1; + c = j + 2; + _calculateMorphedAttributeData( + object, + positionAttribute, + morphPosition, + morphTargetsRelative, + a, + b, + c, + modifiedPosition + ); + _calculateMorphedAttributeData( + object, + normalAttribute, + morphNormal, + morphTargetsRelative, + a, + b, + c, + modifiedNormal + ); + } + } + } else { + start = Math.max(0, drawRange.start); + end = Math.min(positionAttribute.count, drawRange.start + drawRange.count); + for (i = start, il = end; i < il; i += 3) { + a = i; + b = i + 1; + c = i + 2; + _calculateMorphedAttributeData( + object, + positionAttribute, + morphPosition, + morphTargetsRelative, + a, + b, + c, + modifiedPosition + ); + _calculateMorphedAttributeData( + object, + normalAttribute, + morphNormal, + morphTargetsRelative, + a, + b, + c, + modifiedNormal + ); + } + } + } + const morphedPositionAttribute = new Float32BufferAttribute(modifiedPosition, 3); + const morphedNormalAttribute = new Float32BufferAttribute(modifiedNormal, 3); + return { + positionAttribute, + normalAttribute, + morphedPositionAttribute, + morphedNormalAttribute + }; +} +__name(computeMorphedAttributes, "computeMorphedAttributes"); +function mergeGroups(geometry) { + if (geometry.groups.length === 0) { + console.warn("THREE.BufferGeometryUtils.mergeGroups(): No groups are defined. Nothing to merge."); + return geometry; + } + let groups = geometry.groups; + groups = groups.sort((a, b) => { + if (a.materialIndex !== b.materialIndex) return a.materialIndex - b.materialIndex; + return a.start - b.start; + }); + if (geometry.getIndex() === null) { + const positionAttribute = geometry.getAttribute("position"); + const indices = []; + for (let i = 0; i < positionAttribute.count; i += 3) { + indices.push(i, i + 1, i + 2); + } + geometry.setIndex(indices); + } + const index = geometry.getIndex(); + const newIndices = []; + for (let i = 0; i < groups.length; i++) { + const group = groups[i]; + const groupStart = group.start; + const groupLength = groupStart + group.count; + for (let j = groupStart; j < groupLength; j++) { + newIndices.push(index.getX(j)); + } + } + geometry.dispose(); + geometry.setIndex(newIndices); + let start = 0; + for (let i = 0; i < groups.length; i++) { + const group = groups[i]; + group.start = start; + start += group.count; + } + let currentGroup = groups[0]; + geometry.groups = [currentGroup]; + for (let i = 1; i < groups.length; i++) { + const group = groups[i]; + if (currentGroup.materialIndex === group.materialIndex) { + currentGroup.count += group.count; + } else { + currentGroup = group; + geometry.groups.push(currentGroup); + } + } + return geometry; +} +__name(mergeGroups, "mergeGroups"); +function toCreasedNormals(geometry, creaseAngle = Math.PI / 3) { + const creaseDot = Math.cos(creaseAngle); + const hashMultiplier = (1 + 1e-10) * 100; + const verts = [new Vector3(), new Vector3(), new Vector3()]; + const tempVec1 = new Vector3(); + const tempVec2 = new Vector3(); + const tempNorm = new Vector3(); + const tempNorm2 = new Vector3(); + function hashVertex(v) { + const x = ~~(v.x * hashMultiplier); + const y = ~~(v.y * hashMultiplier); + const z = ~~(v.z * hashMultiplier); + return `${x},${y},${z}`; + } + __name(hashVertex, "hashVertex"); + const resultGeometry = geometry.index ? geometry.toNonIndexed() : geometry; + const posAttr = resultGeometry.attributes.position; + const vertexMap = {}; + for (let i = 0, l = posAttr.count / 3; i < l; i++) { + const i3 = 3 * i; + const a = verts[0].fromBufferAttribute(posAttr, i3 + 0); + const b = verts[1].fromBufferAttribute(posAttr, i3 + 1); + const c = verts[2].fromBufferAttribute(posAttr, i3 + 2); + tempVec1.subVectors(c, b); + tempVec2.subVectors(a, b); + const normal = new Vector3().crossVectors(tempVec1, tempVec2).normalize(); + for (let n = 0; n < 3; n++) { + const vert = verts[n]; + const hash = hashVertex(vert); + if (!(hash in vertexMap)) { + vertexMap[hash] = []; + } + vertexMap[hash].push(normal); + } + } + const normalArray = new Float32Array(posAttr.count * 3); + const normAttr = new BufferAttribute(normalArray, 3, false); + for (let i = 0, l = posAttr.count / 3; i < l; i++) { + const i3 = 3 * i; + const a = verts[0].fromBufferAttribute(posAttr, i3 + 0); + const b = verts[1].fromBufferAttribute(posAttr, i3 + 1); + const c = verts[2].fromBufferAttribute(posAttr, i3 + 2); + tempVec1.subVectors(c, b); + tempVec2.subVectors(a, b); + tempNorm.crossVectors(tempVec1, tempVec2).normalize(); + for (let n = 0; n < 3; n++) { + const vert = verts[n]; + const hash = hashVertex(vert); + const otherNormals = vertexMap[hash]; + tempNorm2.set(0, 0, 0); + for (let k = 0, lk = otherNormals.length; k < lk; k++) { + const otherNorm = otherNormals[k]; + if (tempNorm.dot(otherNorm) > creaseDot) { + tempNorm2.add(otherNorm); + } + } + tempNorm2.normalize(); + normAttr.setXYZ(i3 + n, tempNorm2.x, tempNorm2.y, tempNorm2.z); + } + } + resultGeometry.setAttribute("normal", normAttr); + return resultGeometry; +} +__name(toCreasedNormals, "toCreasedNormals"); +class GLTFLoader extends Loader { + static { + __name(this, "GLTFLoader"); + } + constructor(manager) { + super(manager); + this.dracoLoader = null; + this.ktx2Loader = null; + this.meshoptDecoder = null; + this.pluginCallbacks = []; + this.register(function(parser) { + return new GLTFMaterialsClearcoatExtension(parser); + }); + this.register(function(parser) { + return new GLTFMaterialsDispersionExtension(parser); + }); + this.register(function(parser) { + return new GLTFTextureBasisUExtension(parser); + }); + this.register(function(parser) { + return new GLTFTextureWebPExtension(parser); + }); + this.register(function(parser) { + return new GLTFTextureAVIFExtension(parser); + }); + this.register(function(parser) { + return new GLTFMaterialsSheenExtension(parser); + }); + this.register(function(parser) { + return new GLTFMaterialsTransmissionExtension(parser); + }); + this.register(function(parser) { + return new GLTFMaterialsVolumeExtension(parser); + }); + this.register(function(parser) { + return new GLTFMaterialsIorExtension(parser); + }); + this.register(function(parser) { + return new GLTFMaterialsEmissiveStrengthExtension(parser); + }); + this.register(function(parser) { + return new GLTFMaterialsSpecularExtension(parser); + }); + this.register(function(parser) { + return new GLTFMaterialsIridescenceExtension(parser); + }); + this.register(function(parser) { + return new GLTFMaterialsAnisotropyExtension(parser); + }); + this.register(function(parser) { + return new GLTFMaterialsBumpExtension(parser); + }); + this.register(function(parser) { + return new GLTFLightsExtension(parser); + }); + this.register(function(parser) { + return new GLTFMeshoptCompression(parser); + }); + this.register(function(parser) { + return new GLTFMeshGpuInstancing(parser); + }); + } + load(url, onLoad, onProgress, onError) { + const scope = this; + let resourcePath; + if (this.resourcePath !== "") { + resourcePath = this.resourcePath; + } else if (this.path !== "") { + const relativeUrl = LoaderUtils.extractUrlBase(url); + resourcePath = LoaderUtils.resolveURL(relativeUrl, this.path); + } else { + resourcePath = LoaderUtils.extractUrlBase(url); + } + this.manager.itemStart(url); + const _onError = /* @__PURE__ */ __name(function(e) { + if (onError) { + onError(e); + } else { + console.error(e); + } + scope.manager.itemError(url); + scope.manager.itemEnd(url); + }, "_onError"); + const loader = new FileLoader(this.manager); + loader.setPath(this.path); + loader.setResponseType("arraybuffer"); + loader.setRequestHeader(this.requestHeader); + loader.setWithCredentials(this.withCredentials); + loader.load(url, function(data) { + try { + scope.parse(data, resourcePath, function(gltf) { + onLoad(gltf); + scope.manager.itemEnd(url); + }, _onError); + } catch (e) { + _onError(e); + } + }, onProgress, _onError); + } + setDRACOLoader(dracoLoader) { + this.dracoLoader = dracoLoader; + return this; + } + setKTX2Loader(ktx2Loader) { + this.ktx2Loader = ktx2Loader; + return this; + } + setMeshoptDecoder(meshoptDecoder) { + this.meshoptDecoder = meshoptDecoder; + return this; + } + register(callback) { + if (this.pluginCallbacks.indexOf(callback) === -1) { + this.pluginCallbacks.push(callback); + } + return this; + } + unregister(callback) { + if (this.pluginCallbacks.indexOf(callback) !== -1) { + this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(callback), 1); + } + return this; + } + parse(data, path, onLoad, onError) { + let json; + const extensions = {}; + const plugins = {}; + const textDecoder = new TextDecoder(); + if (typeof data === "string") { + json = JSON.parse(data); + } else if (data instanceof ArrayBuffer) { + const magic = textDecoder.decode(new Uint8Array(data, 0, 4)); + if (magic === BINARY_EXTENSION_HEADER_MAGIC) { + try { + extensions[EXTENSIONS.KHR_BINARY_GLTF] = new GLTFBinaryExtension(data); + } catch (error) { + if (onError) onError(error); + return; + } + json = JSON.parse(extensions[EXTENSIONS.KHR_BINARY_GLTF].content); + } else { + json = JSON.parse(textDecoder.decode(data)); + } + } else { + json = data; + } + if (json.asset === void 0 || json.asset.version[0] < 2) { + if (onError) onError(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")); + return; + } + const parser = new GLTFParser(json, { + path: path || this.resourcePath || "", + crossOrigin: this.crossOrigin, + requestHeader: this.requestHeader, + manager: this.manager, + ktx2Loader: this.ktx2Loader, + meshoptDecoder: this.meshoptDecoder + }); + parser.fileLoader.setRequestHeader(this.requestHeader); + for (let i = 0; i < this.pluginCallbacks.length; i++) { + const plugin = this.pluginCallbacks[i](parser); + if (!plugin.name) console.error("THREE.GLTFLoader: Invalid plugin found: missing name"); + plugins[plugin.name] = plugin; + extensions[plugin.name] = true; + } + if (json.extensionsUsed) { + for (let i = 0; i < json.extensionsUsed.length; ++i) { + const extensionName = json.extensionsUsed[i]; + const extensionsRequired = json.extensionsRequired || []; + switch (extensionName) { + case EXTENSIONS.KHR_MATERIALS_UNLIT: + extensions[extensionName] = new GLTFMaterialsUnlitExtension(); + break; + case EXTENSIONS.KHR_DRACO_MESH_COMPRESSION: + extensions[extensionName] = new GLTFDracoMeshCompressionExtension(json, this.dracoLoader); + break; + case EXTENSIONS.KHR_TEXTURE_TRANSFORM: + extensions[extensionName] = new GLTFTextureTransformExtension(); + break; + case EXTENSIONS.KHR_MESH_QUANTIZATION: + extensions[extensionName] = new GLTFMeshQuantizationExtension(); + break; + default: + if (extensionsRequired.indexOf(extensionName) >= 0 && plugins[extensionName] === void 0) { + console.warn('THREE.GLTFLoader: Unknown extension "' + extensionName + '".'); + } + } + } + } + parser.setExtensions(extensions); + parser.setPlugins(plugins); + parser.parse(onLoad, onError); + } + parseAsync(data, path) { + const scope = this; + return new Promise(function(resolve, reject) { + scope.parse(data, path, resolve, reject); + }); + } +} +function GLTFRegistry() { + let objects = {}; + return { + get: /* @__PURE__ */ __name(function(key) { + return objects[key]; + }, "get"), + add: /* @__PURE__ */ __name(function(key, object) { + objects[key] = object; + }, "add"), + remove: /* @__PURE__ */ __name(function(key) { + delete objects[key]; + }, "remove"), + removeAll: /* @__PURE__ */ __name(function() { + objects = {}; + }, "removeAll") + }; +} +__name(GLTFRegistry, "GLTFRegistry"); +const EXTENSIONS = { + KHR_BINARY_GLTF: "KHR_binary_glTF", + KHR_DRACO_MESH_COMPRESSION: "KHR_draco_mesh_compression", + KHR_LIGHTS_PUNCTUAL: "KHR_lights_punctual", + KHR_MATERIALS_CLEARCOAT: "KHR_materials_clearcoat", + KHR_MATERIALS_DISPERSION: "KHR_materials_dispersion", + KHR_MATERIALS_IOR: "KHR_materials_ior", + KHR_MATERIALS_SHEEN: "KHR_materials_sheen", + KHR_MATERIALS_SPECULAR: "KHR_materials_specular", + KHR_MATERIALS_TRANSMISSION: "KHR_materials_transmission", + KHR_MATERIALS_IRIDESCENCE: "KHR_materials_iridescence", + KHR_MATERIALS_ANISOTROPY: "KHR_materials_anisotropy", + KHR_MATERIALS_UNLIT: "KHR_materials_unlit", + KHR_MATERIALS_VOLUME: "KHR_materials_volume", + KHR_TEXTURE_BASISU: "KHR_texture_basisu", + KHR_TEXTURE_TRANSFORM: "KHR_texture_transform", + KHR_MESH_QUANTIZATION: "KHR_mesh_quantization", + KHR_MATERIALS_EMISSIVE_STRENGTH: "KHR_materials_emissive_strength", + EXT_MATERIALS_BUMP: "EXT_materials_bump", + EXT_TEXTURE_WEBP: "EXT_texture_webp", + EXT_TEXTURE_AVIF: "EXT_texture_avif", + EXT_MESHOPT_COMPRESSION: "EXT_meshopt_compression", + EXT_MESH_GPU_INSTANCING: "EXT_mesh_gpu_instancing" +}; +class GLTFLightsExtension { + static { + __name(this, "GLTFLightsExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.KHR_LIGHTS_PUNCTUAL; + this.cache = { refs: {}, uses: {} }; + } + _markDefs() { + const parser = this.parser; + const nodeDefs = this.parser.json.nodes || []; + for (let nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex++) { + const nodeDef = nodeDefs[nodeIndex]; + if (nodeDef.extensions && nodeDef.extensions[this.name] && nodeDef.extensions[this.name].light !== void 0) { + parser._addNodeRef(this.cache, nodeDef.extensions[this.name].light); + } + } + } + _loadLight(lightIndex) { + const parser = this.parser; + const cacheKey = "light:" + lightIndex; + let dependency = parser.cache.get(cacheKey); + if (dependency) return dependency; + const json = parser.json; + const extensions = json.extensions && json.extensions[this.name] || {}; + const lightDefs = extensions.lights || []; + const lightDef = lightDefs[lightIndex]; + let lightNode; + const color = new Color(16777215); + if (lightDef.color !== void 0) color.setRGB(lightDef.color[0], lightDef.color[1], lightDef.color[2], LinearSRGBColorSpace); + const range = lightDef.range !== void 0 ? lightDef.range : 0; + switch (lightDef.type) { + case "directional": + lightNode = new DirectionalLight(color); + lightNode.target.position.set(0, 0, -1); + lightNode.add(lightNode.target); + break; + case "point": + lightNode = new PointLight(color); + lightNode.distance = range; + break; + case "spot": + lightNode = new SpotLight(color); + lightNode.distance = range; + lightDef.spot = lightDef.spot || {}; + lightDef.spot.innerConeAngle = lightDef.spot.innerConeAngle !== void 0 ? lightDef.spot.innerConeAngle : 0; + lightDef.spot.outerConeAngle = lightDef.spot.outerConeAngle !== void 0 ? lightDef.spot.outerConeAngle : Math.PI / 4; + lightNode.angle = lightDef.spot.outerConeAngle; + lightNode.penumbra = 1 - lightDef.spot.innerConeAngle / lightDef.spot.outerConeAngle; + lightNode.target.position.set(0, 0, -1); + lightNode.add(lightNode.target); + break; + default: + throw new Error("THREE.GLTFLoader: Unexpected light type: " + lightDef.type); + } + lightNode.position.set(0, 0, 0); + lightNode.decay = 2; + assignExtrasToUserData(lightNode, lightDef); + if (lightDef.intensity !== void 0) lightNode.intensity = lightDef.intensity; + lightNode.name = parser.createUniqueName(lightDef.name || "light_" + lightIndex); + dependency = Promise.resolve(lightNode); + parser.cache.add(cacheKey, dependency); + return dependency; + } + getDependency(type, index) { + if (type !== "light") return; + return this._loadLight(index); + } + createNodeAttachment(nodeIndex) { + const self2 = this; + const parser = this.parser; + const json = parser.json; + const nodeDef = json.nodes[nodeIndex]; + const lightDef = nodeDef.extensions && nodeDef.extensions[this.name] || {}; + const lightIndex = lightDef.light; + if (lightIndex === void 0) return null; + return this._loadLight(lightIndex).then(function(light) { + return parser._getNodeRef(self2.cache, lightIndex, light); + }); + } +} +class GLTFMaterialsUnlitExtension { + static { + __name(this, "GLTFMaterialsUnlitExtension"); + } + constructor() { + this.name = EXTENSIONS.KHR_MATERIALS_UNLIT; + } + getMaterialType() { + return MeshBasicMaterial; + } + extendParams(materialParams, materialDef, parser) { + const pending = []; + materialParams.color = new Color(1, 1, 1); + materialParams.opacity = 1; + const metallicRoughness = materialDef.pbrMetallicRoughness; + if (metallicRoughness) { + if (Array.isArray(metallicRoughness.baseColorFactor)) { + const array = metallicRoughness.baseColorFactor; + materialParams.color.setRGB(array[0], array[1], array[2], LinearSRGBColorSpace); + materialParams.opacity = array[3]; + } + if (metallicRoughness.baseColorTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "map", metallicRoughness.baseColorTexture, SRGBColorSpace)); + } + } + return Promise.all(pending); + } +} +class GLTFMaterialsEmissiveStrengthExtension { + static { + __name(this, "GLTFMaterialsEmissiveStrengthExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_EMISSIVE_STRENGTH; + } + extendMaterialParams(materialIndex, materialParams) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) { + return Promise.resolve(); + } + const emissiveStrength = materialDef.extensions[this.name].emissiveStrength; + if (emissiveStrength !== void 0) { + materialParams.emissiveIntensity = emissiveStrength; + } + return Promise.resolve(); + } +} +class GLTFMaterialsClearcoatExtension { + static { + __name(this, "GLTFMaterialsClearcoatExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_CLEARCOAT; + } + getMaterialType(materialIndex) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) return null; + return MeshPhysicalMaterial; + } + extendMaterialParams(materialIndex, materialParams) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) { + return Promise.resolve(); + } + const pending = []; + const extension = materialDef.extensions[this.name]; + if (extension.clearcoatFactor !== void 0) { + materialParams.clearcoat = extension.clearcoatFactor; + } + if (extension.clearcoatTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "clearcoatMap", extension.clearcoatTexture)); + } + if (extension.clearcoatRoughnessFactor !== void 0) { + materialParams.clearcoatRoughness = extension.clearcoatRoughnessFactor; + } + if (extension.clearcoatRoughnessTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "clearcoatRoughnessMap", extension.clearcoatRoughnessTexture)); + } + if (extension.clearcoatNormalTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "clearcoatNormalMap", extension.clearcoatNormalTexture)); + if (extension.clearcoatNormalTexture.scale !== void 0) { + const scale = extension.clearcoatNormalTexture.scale; + materialParams.clearcoatNormalScale = new Vector2(scale, scale); + } + } + return Promise.all(pending); + } +} +class GLTFMaterialsDispersionExtension { + static { + __name(this, "GLTFMaterialsDispersionExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_DISPERSION; + } + getMaterialType(materialIndex) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) return null; + return MeshPhysicalMaterial; + } + extendMaterialParams(materialIndex, materialParams) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) { + return Promise.resolve(); + } + const extension = materialDef.extensions[this.name]; + materialParams.dispersion = extension.dispersion !== void 0 ? extension.dispersion : 0; + return Promise.resolve(); + } +} +class GLTFMaterialsIridescenceExtension { + static { + __name(this, "GLTFMaterialsIridescenceExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_IRIDESCENCE; + } + getMaterialType(materialIndex) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) return null; + return MeshPhysicalMaterial; + } + extendMaterialParams(materialIndex, materialParams) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) { + return Promise.resolve(); + } + const pending = []; + const extension = materialDef.extensions[this.name]; + if (extension.iridescenceFactor !== void 0) { + materialParams.iridescence = extension.iridescenceFactor; + } + if (extension.iridescenceTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "iridescenceMap", extension.iridescenceTexture)); + } + if (extension.iridescenceIor !== void 0) { + materialParams.iridescenceIOR = extension.iridescenceIor; + } + if (materialParams.iridescenceThicknessRange === void 0) { + materialParams.iridescenceThicknessRange = [100, 400]; + } + if (extension.iridescenceThicknessMinimum !== void 0) { + materialParams.iridescenceThicknessRange[0] = extension.iridescenceThicknessMinimum; + } + if (extension.iridescenceThicknessMaximum !== void 0) { + materialParams.iridescenceThicknessRange[1] = extension.iridescenceThicknessMaximum; + } + if (extension.iridescenceThicknessTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "iridescenceThicknessMap", extension.iridescenceThicknessTexture)); + } + return Promise.all(pending); + } +} +class GLTFMaterialsSheenExtension { + static { + __name(this, "GLTFMaterialsSheenExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_SHEEN; + } + getMaterialType(materialIndex) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) return null; + return MeshPhysicalMaterial; + } + extendMaterialParams(materialIndex, materialParams) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) { + return Promise.resolve(); + } + const pending = []; + materialParams.sheenColor = new Color(0, 0, 0); + materialParams.sheenRoughness = 0; + materialParams.sheen = 1; + const extension = materialDef.extensions[this.name]; + if (extension.sheenColorFactor !== void 0) { + const colorFactor = extension.sheenColorFactor; + materialParams.sheenColor.setRGB(colorFactor[0], colorFactor[1], colorFactor[2], LinearSRGBColorSpace); + } + if (extension.sheenRoughnessFactor !== void 0) { + materialParams.sheenRoughness = extension.sheenRoughnessFactor; + } + if (extension.sheenColorTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "sheenColorMap", extension.sheenColorTexture, SRGBColorSpace)); + } + if (extension.sheenRoughnessTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "sheenRoughnessMap", extension.sheenRoughnessTexture)); + } + return Promise.all(pending); + } +} +class GLTFMaterialsTransmissionExtension { + static { + __name(this, "GLTFMaterialsTransmissionExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_TRANSMISSION; + } + getMaterialType(materialIndex) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) return null; + return MeshPhysicalMaterial; + } + extendMaterialParams(materialIndex, materialParams) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) { + return Promise.resolve(); + } + const pending = []; + const extension = materialDef.extensions[this.name]; + if (extension.transmissionFactor !== void 0) { + materialParams.transmission = extension.transmissionFactor; + } + if (extension.transmissionTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "transmissionMap", extension.transmissionTexture)); + } + return Promise.all(pending); + } +} +class GLTFMaterialsVolumeExtension { + static { + __name(this, "GLTFMaterialsVolumeExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_VOLUME; + } + getMaterialType(materialIndex) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) return null; + return MeshPhysicalMaterial; + } + extendMaterialParams(materialIndex, materialParams) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) { + return Promise.resolve(); + } + const pending = []; + const extension = materialDef.extensions[this.name]; + materialParams.thickness = extension.thicknessFactor !== void 0 ? extension.thicknessFactor : 0; + if (extension.thicknessTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "thicknessMap", extension.thicknessTexture)); + } + materialParams.attenuationDistance = extension.attenuationDistance || Infinity; + const colorArray = extension.attenuationColor || [1, 1, 1]; + materialParams.attenuationColor = new Color().setRGB(colorArray[0], colorArray[1], colorArray[2], LinearSRGBColorSpace); + return Promise.all(pending); + } +} +class GLTFMaterialsIorExtension { + static { + __name(this, "GLTFMaterialsIorExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_IOR; + } + getMaterialType(materialIndex) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) return null; + return MeshPhysicalMaterial; + } + extendMaterialParams(materialIndex, materialParams) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) { + return Promise.resolve(); + } + const extension = materialDef.extensions[this.name]; + materialParams.ior = extension.ior !== void 0 ? extension.ior : 1.5; + return Promise.resolve(); + } +} +class GLTFMaterialsSpecularExtension { + static { + __name(this, "GLTFMaterialsSpecularExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_SPECULAR; + } + getMaterialType(materialIndex) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) return null; + return MeshPhysicalMaterial; + } + extendMaterialParams(materialIndex, materialParams) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) { + return Promise.resolve(); + } + const pending = []; + const extension = materialDef.extensions[this.name]; + materialParams.specularIntensity = extension.specularFactor !== void 0 ? extension.specularFactor : 1; + if (extension.specularTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "specularIntensityMap", extension.specularTexture)); + } + const colorArray = extension.specularColorFactor || [1, 1, 1]; + materialParams.specularColor = new Color().setRGB(colorArray[0], colorArray[1], colorArray[2], LinearSRGBColorSpace); + if (extension.specularColorTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "specularColorMap", extension.specularColorTexture, SRGBColorSpace)); + } + return Promise.all(pending); + } +} +class GLTFMaterialsBumpExtension { + static { + __name(this, "GLTFMaterialsBumpExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.EXT_MATERIALS_BUMP; + } + getMaterialType(materialIndex) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) return null; + return MeshPhysicalMaterial; + } + extendMaterialParams(materialIndex, materialParams) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) { + return Promise.resolve(); + } + const pending = []; + const extension = materialDef.extensions[this.name]; + materialParams.bumpScale = extension.bumpFactor !== void 0 ? extension.bumpFactor : 1; + if (extension.bumpTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "bumpMap", extension.bumpTexture)); + } + return Promise.all(pending); + } +} +class GLTFMaterialsAnisotropyExtension { + static { + __name(this, "GLTFMaterialsAnisotropyExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.KHR_MATERIALS_ANISOTROPY; + } + getMaterialType(materialIndex) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) return null; + return MeshPhysicalMaterial; + } + extendMaterialParams(materialIndex, materialParams) { + const parser = this.parser; + const materialDef = parser.json.materials[materialIndex]; + if (!materialDef.extensions || !materialDef.extensions[this.name]) { + return Promise.resolve(); + } + const pending = []; + const extension = materialDef.extensions[this.name]; + if (extension.anisotropyStrength !== void 0) { + materialParams.anisotropy = extension.anisotropyStrength; + } + if (extension.anisotropyRotation !== void 0) { + materialParams.anisotropyRotation = extension.anisotropyRotation; + } + if (extension.anisotropyTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "anisotropyMap", extension.anisotropyTexture)); + } + return Promise.all(pending); + } +} +class GLTFTextureBasisUExtension { + static { + __name(this, "GLTFTextureBasisUExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.KHR_TEXTURE_BASISU; + } + loadTexture(textureIndex) { + const parser = this.parser; + const json = parser.json; + const textureDef = json.textures[textureIndex]; + if (!textureDef.extensions || !textureDef.extensions[this.name]) { + return null; + } + const extension = textureDef.extensions[this.name]; + const loader = parser.options.ktx2Loader; + if (!loader) { + if (json.extensionsRequired && json.extensionsRequired.indexOf(this.name) >= 0) { + throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures"); + } else { + return null; + } + } + return parser.loadTextureImage(textureIndex, extension.source, loader); + } +} +class GLTFTextureWebPExtension { + static { + __name(this, "GLTFTextureWebPExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.EXT_TEXTURE_WEBP; + this.isSupported = null; + } + loadTexture(textureIndex) { + const name = this.name; + const parser = this.parser; + const json = parser.json; + const textureDef = json.textures[textureIndex]; + if (!textureDef.extensions || !textureDef.extensions[name]) { + return null; + } + const extension = textureDef.extensions[name]; + const source = json.images[extension.source]; + let loader = parser.textureLoader; + if (source.uri) { + const handler = parser.options.manager.getHandler(source.uri); + if (handler !== null) loader = handler; + } + return this.detectSupport().then(function(isSupported) { + if (isSupported) return parser.loadTextureImage(textureIndex, extension.source, loader); + if (json.extensionsRequired && json.extensionsRequired.indexOf(name) >= 0) { + throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported."); + } + return parser.loadTexture(textureIndex); + }); + } + detectSupport() { + if (!this.isSupported) { + this.isSupported = new Promise(function(resolve) { + const image = new Image(); + image.src = "data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"; + image.onload = image.onerror = function() { + resolve(image.height === 1); + }; + }); + } + return this.isSupported; + } +} +class GLTFTextureAVIFExtension { + static { + __name(this, "GLTFTextureAVIFExtension"); + } + constructor(parser) { + this.parser = parser; + this.name = EXTENSIONS.EXT_TEXTURE_AVIF; + this.isSupported = null; + } + loadTexture(textureIndex) { + const name = this.name; + const parser = this.parser; + const json = parser.json; + const textureDef = json.textures[textureIndex]; + if (!textureDef.extensions || !textureDef.extensions[name]) { + return null; + } + const extension = textureDef.extensions[name]; + const source = json.images[extension.source]; + let loader = parser.textureLoader; + if (source.uri) { + const handler = parser.options.manager.getHandler(source.uri); + if (handler !== null) loader = handler; + } + return this.detectSupport().then(function(isSupported) { + if (isSupported) return parser.loadTextureImage(textureIndex, extension.source, loader); + if (json.extensionsRequired && json.extensionsRequired.indexOf(name) >= 0) { + throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported."); + } + return parser.loadTexture(textureIndex); + }); + } + detectSupport() { + if (!this.isSupported) { + this.isSupported = new Promise(function(resolve) { + const image = new Image(); + image.src = "data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI="; + image.onload = image.onerror = function() { + resolve(image.height === 1); + }; + }); + } + return this.isSupported; + } +} +class GLTFMeshoptCompression { + static { + __name(this, "GLTFMeshoptCompression"); + } + constructor(parser) { + this.name = EXTENSIONS.EXT_MESHOPT_COMPRESSION; + this.parser = parser; + } + loadBufferView(index) { + const json = this.parser.json; + const bufferView = json.bufferViews[index]; + if (bufferView.extensions && bufferView.extensions[this.name]) { + const extensionDef = bufferView.extensions[this.name]; + const buffer = this.parser.getDependency("buffer", extensionDef.buffer); + const decoder = this.parser.options.meshoptDecoder; + if (!decoder || !decoder.supported) { + if (json.extensionsRequired && json.extensionsRequired.indexOf(this.name) >= 0) { + throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files"); + } else { + return null; + } + } + return buffer.then(function(res) { + const byteOffset = extensionDef.byteOffset || 0; + const byteLength = extensionDef.byteLength || 0; + const count = extensionDef.count; + const stride = extensionDef.byteStride; + const source = new Uint8Array(res, byteOffset, byteLength); + if (decoder.decodeGltfBufferAsync) { + return decoder.decodeGltfBufferAsync(count, stride, source, extensionDef.mode, extensionDef.filter).then(function(res2) { + return res2.buffer; + }); + } else { + return decoder.ready.then(function() { + const result = new ArrayBuffer(count * stride); + decoder.decodeGltfBuffer(new Uint8Array(result), count, stride, source, extensionDef.mode, extensionDef.filter); + return result; + }); + } + }); + } else { + return null; + } + } +} +class GLTFMeshGpuInstancing { + static { + __name(this, "GLTFMeshGpuInstancing"); + } + constructor(parser) { + this.name = EXTENSIONS.EXT_MESH_GPU_INSTANCING; + this.parser = parser; + } + createNodeMesh(nodeIndex) { + const json = this.parser.json; + const nodeDef = json.nodes[nodeIndex]; + if (!nodeDef.extensions || !nodeDef.extensions[this.name] || nodeDef.mesh === void 0) { + return null; + } + const meshDef = json.meshes[nodeDef.mesh]; + for (const primitive of meshDef.primitives) { + if (primitive.mode !== WEBGL_CONSTANTS.TRIANGLES && primitive.mode !== WEBGL_CONSTANTS.TRIANGLE_STRIP && primitive.mode !== WEBGL_CONSTANTS.TRIANGLE_FAN && primitive.mode !== void 0) { + return null; + } + } + const extensionDef = nodeDef.extensions[this.name]; + const attributesDef = extensionDef.attributes; + const pending = []; + const attributes = {}; + for (const key in attributesDef) { + pending.push(this.parser.getDependency("accessor", attributesDef[key]).then((accessor) => { + attributes[key] = accessor; + return attributes[key]; + })); + } + if (pending.length < 1) { + return null; + } + pending.push(this.parser.createNodeMesh(nodeIndex)); + return Promise.all(pending).then((results) => { + const nodeObject = results.pop(); + const meshes = nodeObject.isGroup ? nodeObject.children : [nodeObject]; + const count = results[0].count; + const instancedMeshes = []; + for (const mesh of meshes) { + const m = new Matrix4(); + const p = new Vector3(); + const q = new Quaternion(); + const s = new Vector3(1, 1, 1); + const instancedMesh = new InstancedMesh(mesh.geometry, mesh.material, count); + for (let i = 0; i < count; i++) { + if (attributes.TRANSLATION) { + p.fromBufferAttribute(attributes.TRANSLATION, i); + } + if (attributes.ROTATION) { + q.fromBufferAttribute(attributes.ROTATION, i); + } + if (attributes.SCALE) { + s.fromBufferAttribute(attributes.SCALE, i); + } + instancedMesh.setMatrixAt(i, m.compose(p, q, s)); + } + for (const attributeName in attributes) { + if (attributeName === "_COLOR_0") { + const attr = attributes[attributeName]; + instancedMesh.instanceColor = new InstancedBufferAttribute(attr.array, attr.itemSize, attr.normalized); + } else if (attributeName !== "TRANSLATION" && attributeName !== "ROTATION" && attributeName !== "SCALE") { + mesh.geometry.setAttribute(attributeName, attributes[attributeName]); + } + } + Object3D.prototype.copy.call(instancedMesh, mesh); + this.parser.assignFinalMaterial(instancedMesh); + instancedMeshes.push(instancedMesh); + } + if (nodeObject.isGroup) { + nodeObject.clear(); + nodeObject.add(...instancedMeshes); + return nodeObject; + } + return instancedMeshes[0]; + }); + } +} +const BINARY_EXTENSION_HEADER_MAGIC = "glTF"; +const BINARY_EXTENSION_HEADER_LENGTH = 12; +const BINARY_EXTENSION_CHUNK_TYPES = { JSON: 1313821514, BIN: 5130562 }; +class GLTFBinaryExtension { + static { + __name(this, "GLTFBinaryExtension"); + } + constructor(data) { + this.name = EXTENSIONS.KHR_BINARY_GLTF; + this.content = null; + this.body = null; + const headerView = new DataView(data, 0, BINARY_EXTENSION_HEADER_LENGTH); + const textDecoder = new TextDecoder(); + this.header = { + magic: textDecoder.decode(new Uint8Array(data.slice(0, 4))), + version: headerView.getUint32(4, true), + length: headerView.getUint32(8, true) + }; + if (this.header.magic !== BINARY_EXTENSION_HEADER_MAGIC) { + throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header."); + } else if (this.header.version < 2) { + throw new Error("THREE.GLTFLoader: Legacy binary file detected."); + } + const chunkContentsLength = this.header.length - BINARY_EXTENSION_HEADER_LENGTH; + const chunkView = new DataView(data, BINARY_EXTENSION_HEADER_LENGTH); + let chunkIndex = 0; + while (chunkIndex < chunkContentsLength) { + const chunkLength = chunkView.getUint32(chunkIndex, true); + chunkIndex += 4; + const chunkType = chunkView.getUint32(chunkIndex, true); + chunkIndex += 4; + if (chunkType === BINARY_EXTENSION_CHUNK_TYPES.JSON) { + const contentArray = new Uint8Array(data, BINARY_EXTENSION_HEADER_LENGTH + chunkIndex, chunkLength); + this.content = textDecoder.decode(contentArray); + } else if (chunkType === BINARY_EXTENSION_CHUNK_TYPES.BIN) { + const byteOffset = BINARY_EXTENSION_HEADER_LENGTH + chunkIndex; + this.body = data.slice(byteOffset, byteOffset + chunkLength); + } + chunkIndex += chunkLength; + } + if (this.content === null) { + throw new Error("THREE.GLTFLoader: JSON content not found."); + } + } +} +class GLTFDracoMeshCompressionExtension { + static { + __name(this, "GLTFDracoMeshCompressionExtension"); + } + constructor(json, dracoLoader) { + if (!dracoLoader) { + throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided."); + } + this.name = EXTENSIONS.KHR_DRACO_MESH_COMPRESSION; + this.json = json; + this.dracoLoader = dracoLoader; + this.dracoLoader.preload(); + } + decodePrimitive(primitive, parser) { + const json = this.json; + const dracoLoader = this.dracoLoader; + const bufferViewIndex = primitive.extensions[this.name].bufferView; + const gltfAttributeMap = primitive.extensions[this.name].attributes; + const threeAttributeMap = {}; + const attributeNormalizedMap = {}; + const attributeTypeMap = {}; + for (const attributeName in gltfAttributeMap) { + const threeAttributeName = ATTRIBUTES[attributeName] || attributeName.toLowerCase(); + threeAttributeMap[threeAttributeName] = gltfAttributeMap[attributeName]; + } + for (const attributeName in primitive.attributes) { + const threeAttributeName = ATTRIBUTES[attributeName] || attributeName.toLowerCase(); + if (gltfAttributeMap[attributeName] !== void 0) { + const accessorDef = json.accessors[primitive.attributes[attributeName]]; + const componentType = WEBGL_COMPONENT_TYPES[accessorDef.componentType]; + attributeTypeMap[threeAttributeName] = componentType.name; + attributeNormalizedMap[threeAttributeName] = accessorDef.normalized === true; + } + } + return parser.getDependency("bufferView", bufferViewIndex).then(function(bufferView) { + return new Promise(function(resolve, reject) { + dracoLoader.decodeDracoFile(bufferView, function(geometry) { + for (const attributeName in geometry.attributes) { + const attribute = geometry.attributes[attributeName]; + const normalized = attributeNormalizedMap[attributeName]; + if (normalized !== void 0) attribute.normalized = normalized; + } + resolve(geometry); + }, threeAttributeMap, attributeTypeMap, LinearSRGBColorSpace, reject); + }); + }); + } +} +class GLTFTextureTransformExtension { + static { + __name(this, "GLTFTextureTransformExtension"); + } + constructor() { + this.name = EXTENSIONS.KHR_TEXTURE_TRANSFORM; + } + extendTexture(texture, transform) { + if ((transform.texCoord === void 0 || transform.texCoord === texture.channel) && transform.offset === void 0 && transform.rotation === void 0 && transform.scale === void 0) { + return texture; + } + texture = texture.clone(); + if (transform.texCoord !== void 0) { + texture.channel = transform.texCoord; + } + if (transform.offset !== void 0) { + texture.offset.fromArray(transform.offset); + } + if (transform.rotation !== void 0) { + texture.rotation = transform.rotation; + } + if (transform.scale !== void 0) { + texture.repeat.fromArray(transform.scale); + } + texture.needsUpdate = true; + return texture; + } +} +class GLTFMeshQuantizationExtension { + static { + __name(this, "GLTFMeshQuantizationExtension"); + } + constructor() { + this.name = EXTENSIONS.KHR_MESH_QUANTIZATION; + } +} +class GLTFCubicSplineInterpolant extends Interpolant { + static { + __name(this, "GLTFCubicSplineInterpolant"); + } + constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) { + super(parameterPositions, sampleValues, sampleSize, resultBuffer); + } + copySampleValue_(index) { + const result = this.resultBuffer, values = this.sampleValues, valueSize = this.valueSize, offset = index * valueSize * 3 + valueSize; + for (let i = 0; i !== valueSize; i++) { + result[i] = values[offset + i]; + } + return result; + } + interpolate_(i1, t0, t2, t1) { + const result = this.resultBuffer; + const values = this.sampleValues; + const stride = this.valueSize; + const stride2 = stride * 2; + const stride3 = stride * 3; + const td2 = t1 - t0; + const p = (t2 - t0) / td2; + const pp = p * p; + const ppp = pp * p; + const offset1 = i1 * stride3; + const offset0 = offset1 - stride3; + const s2 = -2 * ppp + 3 * pp; + const s3 = ppp - pp; + const s0 = 1 - s2; + const s1 = s3 - pp + p; + for (let i = 0; i !== stride; i++) { + const p0 = values[offset0 + i + stride]; + const m0 = values[offset0 + i + stride2] * td2; + const p1 = values[offset1 + i + stride]; + const m1 = values[offset1 + i] * td2; + result[i] = s0 * p0 + s1 * m0 + s2 * p1 + s3 * m1; + } + return result; + } +} +const _q = new Quaternion(); +class GLTFCubicSplineQuaternionInterpolant extends GLTFCubicSplineInterpolant { + static { + __name(this, "GLTFCubicSplineQuaternionInterpolant"); + } + interpolate_(i1, t0, t2, t1) { + const result = super.interpolate_(i1, t0, t2, t1); + _q.fromArray(result).normalize().toArray(result); + return result; + } +} +const WEBGL_CONSTANTS = { + FLOAT: 5126, + //FLOAT_MAT2: 35674, + FLOAT_MAT3: 35675, + FLOAT_MAT4: 35676, + FLOAT_VEC2: 35664, + FLOAT_VEC3: 35665, + FLOAT_VEC4: 35666, + LINEAR: 9729, + REPEAT: 10497, + SAMPLER_2D: 35678, + POINTS: 0, + LINES: 1, + LINE_LOOP: 2, + LINE_STRIP: 3, + TRIANGLES: 4, + TRIANGLE_STRIP: 5, + TRIANGLE_FAN: 6, + UNSIGNED_BYTE: 5121, + UNSIGNED_SHORT: 5123 +}; +const WEBGL_COMPONENT_TYPES = { + 5120: Int8Array, + 5121: Uint8Array, + 5122: Int16Array, + 5123: Uint16Array, + 5125: Uint32Array, + 5126: Float32Array +}; +const WEBGL_FILTERS = { + 9728: NearestFilter, + 9729: LinearFilter, + 9984: NearestMipmapNearestFilter, + 9985: LinearMipmapNearestFilter, + 9986: NearestMipmapLinearFilter, + 9987: LinearMipmapLinearFilter +}; +const WEBGL_WRAPPINGS = { + 33071: ClampToEdgeWrapping, + 33648: MirroredRepeatWrapping, + 10497: RepeatWrapping +}; +const WEBGL_TYPE_SIZES = { + "SCALAR": 1, + "VEC2": 2, + "VEC3": 3, + "VEC4": 4, + "MAT2": 4, + "MAT3": 9, + "MAT4": 16 +}; +const ATTRIBUTES = { + POSITION: "position", + NORMAL: "normal", + TANGENT: "tangent", + TEXCOORD_0: "uv", + TEXCOORD_1: "uv1", + TEXCOORD_2: "uv2", + TEXCOORD_3: "uv3", + COLOR_0: "color", + WEIGHTS_0: "skinWeight", + JOINTS_0: "skinIndex" +}; +const PATH_PROPERTIES = { + scale: "scale", + translation: "position", + rotation: "quaternion", + weights: "morphTargetInfluences" +}; +const INTERPOLATION = { + CUBICSPLINE: void 0, + // We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each + // keyframe track will be initialized with a default interpolation type, then modified. + LINEAR: InterpolateLinear, + STEP: InterpolateDiscrete +}; +const ALPHA_MODES = { + OPAQUE: "OPAQUE", + MASK: "MASK", + BLEND: "BLEND" +}; +function createDefaultMaterial(cache) { + if (cache["DefaultMaterial"] === void 0) { + cache["DefaultMaterial"] = new MeshStandardMaterial({ + color: 16777215, + emissive: 0, + metalness: 1, + roughness: 1, + transparent: false, + depthTest: true, + side: FrontSide + }); + } + return cache["DefaultMaterial"]; +} +__name(createDefaultMaterial, "createDefaultMaterial"); +function addUnknownExtensionsToUserData(knownExtensions, object, objectDef) { + for (const name in objectDef.extensions) { + if (knownExtensions[name] === void 0) { + object.userData.gltfExtensions = object.userData.gltfExtensions || {}; + object.userData.gltfExtensions[name] = objectDef.extensions[name]; + } + } +} +__name(addUnknownExtensionsToUserData, "addUnknownExtensionsToUserData"); +function assignExtrasToUserData(object, gltfDef) { + if (gltfDef.extras !== void 0) { + if (typeof gltfDef.extras === "object") { + Object.assign(object.userData, gltfDef.extras); + } else { + console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, " + gltfDef.extras); + } + } +} +__name(assignExtrasToUserData, "assignExtrasToUserData"); +function addMorphTargets(geometry, targets, parser) { + let hasMorphPosition = false; + let hasMorphNormal = false; + let hasMorphColor = false; + for (let i = 0, il = targets.length; i < il; i++) { + const target = targets[i]; + if (target.POSITION !== void 0) hasMorphPosition = true; + if (target.NORMAL !== void 0) hasMorphNormal = true; + if (target.COLOR_0 !== void 0) hasMorphColor = true; + if (hasMorphPosition && hasMorphNormal && hasMorphColor) break; + } + if (!hasMorphPosition && !hasMorphNormal && !hasMorphColor) return Promise.resolve(geometry); + const pendingPositionAccessors = []; + const pendingNormalAccessors = []; + const pendingColorAccessors = []; + for (let i = 0, il = targets.length; i < il; i++) { + const target = targets[i]; + if (hasMorphPosition) { + const pendingAccessor = target.POSITION !== void 0 ? parser.getDependency("accessor", target.POSITION) : geometry.attributes.position; + pendingPositionAccessors.push(pendingAccessor); + } + if (hasMorphNormal) { + const pendingAccessor = target.NORMAL !== void 0 ? parser.getDependency("accessor", target.NORMAL) : geometry.attributes.normal; + pendingNormalAccessors.push(pendingAccessor); + } + if (hasMorphColor) { + const pendingAccessor = target.COLOR_0 !== void 0 ? parser.getDependency("accessor", target.COLOR_0) : geometry.attributes.color; + pendingColorAccessors.push(pendingAccessor); + } + } + return Promise.all([ + Promise.all(pendingPositionAccessors), + Promise.all(pendingNormalAccessors), + Promise.all(pendingColorAccessors) + ]).then(function(accessors) { + const morphPositions = accessors[0]; + const morphNormals = accessors[1]; + const morphColors = accessors[2]; + if (hasMorphPosition) geometry.morphAttributes.position = morphPositions; + if (hasMorphNormal) geometry.morphAttributes.normal = morphNormals; + if (hasMorphColor) geometry.morphAttributes.color = morphColors; + geometry.morphTargetsRelative = true; + return geometry; + }); +} +__name(addMorphTargets, "addMorphTargets"); +function updateMorphTargets(mesh, meshDef) { + mesh.updateMorphTargets(); + if (meshDef.weights !== void 0) { + for (let i = 0, il = meshDef.weights.length; i < il; i++) { + mesh.morphTargetInfluences[i] = meshDef.weights[i]; + } + } + if (meshDef.extras && Array.isArray(meshDef.extras.targetNames)) { + const targetNames = meshDef.extras.targetNames; + if (mesh.morphTargetInfluences.length === targetNames.length) { + mesh.morphTargetDictionary = {}; + for (let i = 0, il = targetNames.length; i < il; i++) { + mesh.morphTargetDictionary[targetNames[i]] = i; + } + } else { + console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names."); + } + } +} +__name(updateMorphTargets, "updateMorphTargets"); +function createPrimitiveKey(primitiveDef) { + let geometryKey; + const dracoExtension = primitiveDef.extensions && primitiveDef.extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION]; + if (dracoExtension) { + geometryKey = "draco:" + dracoExtension.bufferView + ":" + dracoExtension.indices + ":" + createAttributesKey(dracoExtension.attributes); + } else { + geometryKey = primitiveDef.indices + ":" + createAttributesKey(primitiveDef.attributes) + ":" + primitiveDef.mode; + } + if (primitiveDef.targets !== void 0) { + for (let i = 0, il = primitiveDef.targets.length; i < il; i++) { + geometryKey += ":" + createAttributesKey(primitiveDef.targets[i]); + } + } + return geometryKey; +} +__name(createPrimitiveKey, "createPrimitiveKey"); +function createAttributesKey(attributes) { + let attributesKey = ""; + const keys = Object.keys(attributes).sort(); + for (let i = 0, il = keys.length; i < il; i++) { + attributesKey += keys[i] + ":" + attributes[keys[i]] + ";"; + } + return attributesKey; +} +__name(createAttributesKey, "createAttributesKey"); +function getNormalizedComponentScale(constructor) { + switch (constructor) { + case Int8Array: + return 1 / 127; + case Uint8Array: + return 1 / 255; + case Int16Array: + return 1 / 32767; + case Uint16Array: + return 1 / 65535; + default: + throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type."); + } +} +__name(getNormalizedComponentScale, "getNormalizedComponentScale"); +function getImageURIMimeType(uri) { + if (uri.search(/\.jpe?g($|\?)/i) > 0 || uri.search(/^data\:image\/jpeg/) === 0) return "image/jpeg"; + if (uri.search(/\.webp($|\?)/i) > 0 || uri.search(/^data\:image\/webp/) === 0) return "image/webp"; + if (uri.search(/\.ktx2($|\?)/i) > 0 || uri.search(/^data\:image\/ktx2/) === 0) return "image/ktx2"; + return "image/png"; +} +__name(getImageURIMimeType, "getImageURIMimeType"); +const _identityMatrix = new Matrix4(); +class GLTFParser { + static { + __name(this, "GLTFParser"); + } + constructor(json = {}, options = {}) { + this.json = json; + this.extensions = {}; + this.plugins = {}; + this.options = options; + this.cache = new GLTFRegistry(); + this.associations = /* @__PURE__ */ new Map(); + this.primitiveCache = {}; + this.nodeCache = {}; + this.meshCache = { refs: {}, uses: {} }; + this.cameraCache = { refs: {}, uses: {} }; + this.lightCache = { refs: {}, uses: {} }; + this.sourceCache = {}; + this.textureCache = {}; + this.nodeNamesUsed = {}; + let isSafari = false; + let safariVersion = -1; + let isFirefox = false; + let firefoxVersion = -1; + if (typeof navigator !== "undefined") { + const userAgent = navigator.userAgent; + isSafari = /^((?!chrome|android).)*safari/i.test(userAgent) === true; + const safariMatch = userAgent.match(/Version\/(\d+)/); + safariVersion = isSafari && safariMatch ? parseInt(safariMatch[1], 10) : -1; + isFirefox = userAgent.indexOf("Firefox") > -1; + firefoxVersion = isFirefox ? userAgent.match(/Firefox\/([0-9]+)\./)[1] : -1; + } + if (typeof createImageBitmap === "undefined" || isSafari && safariVersion < 17 || isFirefox && firefoxVersion < 98) { + this.textureLoader = new TextureLoader(this.options.manager); + } else { + this.textureLoader = new ImageBitmapLoader(this.options.manager); + } + this.textureLoader.setCrossOrigin(this.options.crossOrigin); + this.textureLoader.setRequestHeader(this.options.requestHeader); + this.fileLoader = new FileLoader(this.options.manager); + this.fileLoader.setResponseType("arraybuffer"); + if (this.options.crossOrigin === "use-credentials") { + this.fileLoader.setWithCredentials(true); + } + } + setExtensions(extensions) { + this.extensions = extensions; + } + setPlugins(plugins) { + this.plugins = plugins; + } + parse(onLoad, onError) { + const parser = this; + const json = this.json; + const extensions = this.extensions; + this.cache.removeAll(); + this.nodeCache = {}; + this._invokeAll(function(ext2) { + return ext2._markDefs && ext2._markDefs(); + }); + Promise.all(this._invokeAll(function(ext2) { + return ext2.beforeRoot && ext2.beforeRoot(); + })).then(function() { + return Promise.all([ + parser.getDependencies("scene"), + parser.getDependencies("animation"), + parser.getDependencies("camera") + ]); + }).then(function(dependencies) { + const result = { + scene: dependencies[0][json.scene || 0], + scenes: dependencies[0], + animations: dependencies[1], + cameras: dependencies[2], + asset: json.asset, + parser, + userData: {} + }; + addUnknownExtensionsToUserData(extensions, result, json); + assignExtrasToUserData(result, json); + return Promise.all(parser._invokeAll(function(ext2) { + return ext2.afterRoot && ext2.afterRoot(result); + })).then(function() { + for (const scene of result.scenes) { + scene.updateMatrixWorld(); + } + onLoad(result); + }); + }).catch(onError); + } + /** + * Marks the special nodes/meshes in json for efficient parse. + */ + _markDefs() { + const nodeDefs = this.json.nodes || []; + const skinDefs = this.json.skins || []; + const meshDefs = this.json.meshes || []; + for (let skinIndex = 0, skinLength = skinDefs.length; skinIndex < skinLength; skinIndex++) { + const joints = skinDefs[skinIndex].joints; + for (let i = 0, il = joints.length; i < il; i++) { + nodeDefs[joints[i]].isBone = true; + } + } + for (let nodeIndex = 0, nodeLength = nodeDefs.length; nodeIndex < nodeLength; nodeIndex++) { + const nodeDef = nodeDefs[nodeIndex]; + if (nodeDef.mesh !== void 0) { + this._addNodeRef(this.meshCache, nodeDef.mesh); + if (nodeDef.skin !== void 0) { + meshDefs[nodeDef.mesh].isSkinnedMesh = true; + } + } + if (nodeDef.camera !== void 0) { + this._addNodeRef(this.cameraCache, nodeDef.camera); + } + } + } + /** + * Counts references to shared node / Object3D resources. These resources + * can be reused, or "instantiated", at multiple nodes in the scene + * hierarchy. Mesh, Camera, and Light instances are instantiated and must + * be marked. Non-scenegraph resources (like Materials, Geometries, and + * Textures) can be reused directly and are not marked here. + * + * Example: CesiumMilkTruck sample model reuses "Wheel" meshes. + */ + _addNodeRef(cache, index) { + if (index === void 0) return; + if (cache.refs[index] === void 0) { + cache.refs[index] = cache.uses[index] = 0; + } + cache.refs[index]++; + } + /** Returns a reference to a shared resource, cloning it if necessary. */ + _getNodeRef(cache, index, object) { + if (cache.refs[index] <= 1) return object; + const ref = object.clone(); + const updateMappings = /* @__PURE__ */ __name((original, clone) => { + const mappings = this.associations.get(original); + if (mappings != null) { + this.associations.set(clone, mappings); + } + for (const [i, child] of original.children.entries()) { + updateMappings(child, clone.children[i]); + } + }, "updateMappings"); + updateMappings(object, ref); + ref.name += "_instance_" + cache.uses[index]++; + return ref; + } + _invokeOne(func) { + const extensions = Object.values(this.plugins); + extensions.push(this); + for (let i = 0; i < extensions.length; i++) { + const result = func(extensions[i]); + if (result) return result; + } + return null; + } + _invokeAll(func) { + const extensions = Object.values(this.plugins); + extensions.unshift(this); + const pending = []; + for (let i = 0; i < extensions.length; i++) { + const result = func(extensions[i]); + if (result) pending.push(result); + } + return pending; + } + /** + * Requests the specified dependency asynchronously, with caching. + * @param {string} type + * @param {number} index + * @return {Promise} + */ + getDependency(type, index) { + const cacheKey = type + ":" + index; + let dependency = this.cache.get(cacheKey); + if (!dependency) { + switch (type) { + case "scene": + dependency = this.loadScene(index); + break; + case "node": + dependency = this._invokeOne(function(ext2) { + return ext2.loadNode && ext2.loadNode(index); + }); + break; + case "mesh": + dependency = this._invokeOne(function(ext2) { + return ext2.loadMesh && ext2.loadMesh(index); + }); + break; + case "accessor": + dependency = this.loadAccessor(index); + break; + case "bufferView": + dependency = this._invokeOne(function(ext2) { + return ext2.loadBufferView && ext2.loadBufferView(index); + }); + break; + case "buffer": + dependency = this.loadBuffer(index); + break; + case "material": + dependency = this._invokeOne(function(ext2) { + return ext2.loadMaterial && ext2.loadMaterial(index); + }); + break; + case "texture": + dependency = this._invokeOne(function(ext2) { + return ext2.loadTexture && ext2.loadTexture(index); + }); + break; + case "skin": + dependency = this.loadSkin(index); + break; + case "animation": + dependency = this._invokeOne(function(ext2) { + return ext2.loadAnimation && ext2.loadAnimation(index); + }); + break; + case "camera": + dependency = this.loadCamera(index); + break; + default: + dependency = this._invokeOne(function(ext2) { + return ext2 != this && ext2.getDependency && ext2.getDependency(type, index); + }); + if (!dependency) { + throw new Error("Unknown type: " + type); + } + break; + } + this.cache.add(cacheKey, dependency); + } + return dependency; + } + /** + * Requests all dependencies of the specified type asynchronously, with caching. + * @param {string} type + * @return {Promise>} + */ + getDependencies(type) { + let dependencies = this.cache.get(type); + if (!dependencies) { + const parser = this; + const defs = this.json[type + (type === "mesh" ? "es" : "s")] || []; + dependencies = Promise.all(defs.map(function(def, index) { + return parser.getDependency(type, index); + })); + this.cache.add(type, dependencies); + } + return dependencies; + } + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views + * @param {number} bufferIndex + * @return {Promise} + */ + loadBuffer(bufferIndex) { + const bufferDef = this.json.buffers[bufferIndex]; + const loader = this.fileLoader; + if (bufferDef.type && bufferDef.type !== "arraybuffer") { + throw new Error("THREE.GLTFLoader: " + bufferDef.type + " buffer type is not supported."); + } + if (bufferDef.uri === void 0 && bufferIndex === 0) { + return Promise.resolve(this.extensions[EXTENSIONS.KHR_BINARY_GLTF].body); + } + const options = this.options; + return new Promise(function(resolve, reject) { + loader.load(LoaderUtils.resolveURL(bufferDef.uri, options.path), resolve, void 0, function() { + reject(new Error('THREE.GLTFLoader: Failed to load buffer "' + bufferDef.uri + '".')); + }); + }); + } + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#buffers-and-buffer-views + * @param {number} bufferViewIndex + * @return {Promise} + */ + loadBufferView(bufferViewIndex) { + const bufferViewDef = this.json.bufferViews[bufferViewIndex]; + return this.getDependency("buffer", bufferViewDef.buffer).then(function(buffer) { + const byteLength = bufferViewDef.byteLength || 0; + const byteOffset = bufferViewDef.byteOffset || 0; + return buffer.slice(byteOffset, byteOffset + byteLength); + }); + } + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#accessors + * @param {number} accessorIndex + * @return {Promise} + */ + loadAccessor(accessorIndex) { + const parser = this; + const json = this.json; + const accessorDef = this.json.accessors[accessorIndex]; + if (accessorDef.bufferView === void 0 && accessorDef.sparse === void 0) { + const itemSize = WEBGL_TYPE_SIZES[accessorDef.type]; + const TypedArray = WEBGL_COMPONENT_TYPES[accessorDef.componentType]; + const normalized = accessorDef.normalized === true; + const array = new TypedArray(accessorDef.count * itemSize); + return Promise.resolve(new BufferAttribute(array, itemSize, normalized)); + } + const pendingBufferViews = []; + if (accessorDef.bufferView !== void 0) { + pendingBufferViews.push(this.getDependency("bufferView", accessorDef.bufferView)); + } else { + pendingBufferViews.push(null); + } + if (accessorDef.sparse !== void 0) { + pendingBufferViews.push(this.getDependency("bufferView", accessorDef.sparse.indices.bufferView)); + pendingBufferViews.push(this.getDependency("bufferView", accessorDef.sparse.values.bufferView)); + } + return Promise.all(pendingBufferViews).then(function(bufferViews) { + const bufferView = bufferViews[0]; + const itemSize = WEBGL_TYPE_SIZES[accessorDef.type]; + const TypedArray = WEBGL_COMPONENT_TYPES[accessorDef.componentType]; + const elementBytes = TypedArray.BYTES_PER_ELEMENT; + const itemBytes = elementBytes * itemSize; + const byteOffset = accessorDef.byteOffset || 0; + const byteStride = accessorDef.bufferView !== void 0 ? json.bufferViews[accessorDef.bufferView].byteStride : void 0; + const normalized = accessorDef.normalized === true; + let array, bufferAttribute; + if (byteStride && byteStride !== itemBytes) { + const ibSlice = Math.floor(byteOffset / byteStride); + const ibCacheKey = "InterleavedBuffer:" + accessorDef.bufferView + ":" + accessorDef.componentType + ":" + ibSlice + ":" + accessorDef.count; + let ib = parser.cache.get(ibCacheKey); + if (!ib) { + array = new TypedArray(bufferView, ibSlice * byteStride, accessorDef.count * byteStride / elementBytes); + ib = new InterleavedBuffer(array, byteStride / elementBytes); + parser.cache.add(ibCacheKey, ib); + } + bufferAttribute = new InterleavedBufferAttribute(ib, itemSize, byteOffset % byteStride / elementBytes, normalized); + } else { + if (bufferView === null) { + array = new TypedArray(accessorDef.count * itemSize); + } else { + array = new TypedArray(bufferView, byteOffset, accessorDef.count * itemSize); + } + bufferAttribute = new BufferAttribute(array, itemSize, normalized); + } + if (accessorDef.sparse !== void 0) { + const itemSizeIndices = WEBGL_TYPE_SIZES.SCALAR; + const TypedArrayIndices = WEBGL_COMPONENT_TYPES[accessorDef.sparse.indices.componentType]; + const byteOffsetIndices = accessorDef.sparse.indices.byteOffset || 0; + const byteOffsetValues = accessorDef.sparse.values.byteOffset || 0; + const sparseIndices = new TypedArrayIndices(bufferViews[1], byteOffsetIndices, accessorDef.sparse.count * itemSizeIndices); + const sparseValues = new TypedArray(bufferViews[2], byteOffsetValues, accessorDef.sparse.count * itemSize); + if (bufferView !== null) { + bufferAttribute = new BufferAttribute(bufferAttribute.array.slice(), bufferAttribute.itemSize, bufferAttribute.normalized); + } + bufferAttribute.normalized = false; + for (let i = 0, il = sparseIndices.length; i < il; i++) { + const index = sparseIndices[i]; + bufferAttribute.setX(index, sparseValues[i * itemSize]); + if (itemSize >= 2) bufferAttribute.setY(index, sparseValues[i * itemSize + 1]); + if (itemSize >= 3) bufferAttribute.setZ(index, sparseValues[i * itemSize + 2]); + if (itemSize >= 4) bufferAttribute.setW(index, sparseValues[i * itemSize + 3]); + if (itemSize >= 5) throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute."); + } + bufferAttribute.normalized = normalized; + } + return bufferAttribute; + }); + } + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#textures + * @param {number} textureIndex + * @return {Promise} + */ + loadTexture(textureIndex) { + const json = this.json; + const options = this.options; + const textureDef = json.textures[textureIndex]; + const sourceIndex = textureDef.source; + const sourceDef = json.images[sourceIndex]; + let loader = this.textureLoader; + if (sourceDef.uri) { + const handler = options.manager.getHandler(sourceDef.uri); + if (handler !== null) loader = handler; + } + return this.loadTextureImage(textureIndex, sourceIndex, loader); + } + loadTextureImage(textureIndex, sourceIndex, loader) { + const parser = this; + const json = this.json; + const textureDef = json.textures[textureIndex]; + const sourceDef = json.images[sourceIndex]; + const cacheKey = (sourceDef.uri || sourceDef.bufferView) + ":" + textureDef.sampler; + if (this.textureCache[cacheKey]) { + return this.textureCache[cacheKey]; + } + const promise = this.loadImageSource(sourceIndex, loader).then(function(texture) { + texture.flipY = false; + texture.name = textureDef.name || sourceDef.name || ""; + if (texture.name === "" && typeof sourceDef.uri === "string" && sourceDef.uri.startsWith("data:image/") === false) { + texture.name = sourceDef.uri; + } + const samplers = json.samplers || {}; + const sampler = samplers[textureDef.sampler] || {}; + texture.magFilter = WEBGL_FILTERS[sampler.magFilter] || LinearFilter; + texture.minFilter = WEBGL_FILTERS[sampler.minFilter] || LinearMipmapLinearFilter; + texture.wrapS = WEBGL_WRAPPINGS[sampler.wrapS] || RepeatWrapping; + texture.wrapT = WEBGL_WRAPPINGS[sampler.wrapT] || RepeatWrapping; + texture.generateMipmaps = !texture.isCompressedTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter; + parser.associations.set(texture, { textures: textureIndex }); + return texture; + }).catch(function() { + return null; + }); + this.textureCache[cacheKey] = promise; + return promise; + } + loadImageSource(sourceIndex, loader) { + const parser = this; + const json = this.json; + const options = this.options; + if (this.sourceCache[sourceIndex] !== void 0) { + return this.sourceCache[sourceIndex].then((texture) => texture.clone()); + } + const sourceDef = json.images[sourceIndex]; + const URL2 = self.URL || self.webkitURL; + let sourceURI = sourceDef.uri || ""; + let isObjectURL = false; + if (sourceDef.bufferView !== void 0) { + sourceURI = parser.getDependency("bufferView", sourceDef.bufferView).then(function(bufferView) { + isObjectURL = true; + const blob = new Blob([bufferView], { type: sourceDef.mimeType }); + sourceURI = URL2.createObjectURL(blob); + return sourceURI; + }); + } else if (sourceDef.uri === void 0) { + throw new Error("THREE.GLTFLoader: Image " + sourceIndex + " is missing URI and bufferView"); + } + const promise = Promise.resolve(sourceURI).then(function(sourceURI2) { + return new Promise(function(resolve, reject) { + let onLoad = resolve; + if (loader.isImageBitmapLoader === true) { + onLoad = /* @__PURE__ */ __name(function(imageBitmap) { + const texture = new Texture(imageBitmap); + texture.needsUpdate = true; + resolve(texture); + }, "onLoad"); + } + loader.load(LoaderUtils.resolveURL(sourceURI2, options.path), onLoad, void 0, reject); + }); + }).then(function(texture) { + if (isObjectURL === true) { + URL2.revokeObjectURL(sourceURI); + } + assignExtrasToUserData(texture, sourceDef); + texture.userData.mimeType = sourceDef.mimeType || getImageURIMimeType(sourceDef.uri); + return texture; + }).catch(function(error) { + console.error("THREE.GLTFLoader: Couldn't load texture", sourceURI); + throw error; + }); + this.sourceCache[sourceIndex] = promise; + return promise; + } + /** + * Asynchronously assigns a texture to the given material parameters. + * @param {Object} materialParams + * @param {string} mapName + * @param {Object} mapDef + * @return {Promise} + */ + assignTexture(materialParams, mapName, mapDef, colorSpace) { + const parser = this; + return this.getDependency("texture", mapDef.index).then(function(texture) { + if (!texture) return null; + if (mapDef.texCoord !== void 0 && mapDef.texCoord > 0) { + texture = texture.clone(); + texture.channel = mapDef.texCoord; + } + if (parser.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM]) { + const transform = mapDef.extensions !== void 0 ? mapDef.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM] : void 0; + if (transform) { + const gltfReference = parser.associations.get(texture); + texture = parser.extensions[EXTENSIONS.KHR_TEXTURE_TRANSFORM].extendTexture(texture, transform); + parser.associations.set(texture, gltfReference); + } + } + if (colorSpace !== void 0) { + texture.colorSpace = colorSpace; + } + materialParams[mapName] = texture; + return texture; + }); + } + /** + * Assigns final material to a Mesh, Line, or Points instance. The instance + * already has a material (generated from the glTF material options alone) + * but reuse of the same glTF material may require multiple threejs materials + * to accommodate different primitive types, defines, etc. New materials will + * be created if necessary, and reused from a cache. + * @param {Object3D} mesh Mesh, Line, or Points instance. + */ + assignFinalMaterial(mesh) { + const geometry = mesh.geometry; + let material = mesh.material; + const useDerivativeTangents = geometry.attributes.tangent === void 0; + const useVertexColors = geometry.attributes.color !== void 0; + const useFlatShading = geometry.attributes.normal === void 0; + if (mesh.isPoints) { + const cacheKey = "PointsMaterial:" + material.uuid; + let pointsMaterial = this.cache.get(cacheKey); + if (!pointsMaterial) { + pointsMaterial = new PointsMaterial(); + Material.prototype.copy.call(pointsMaterial, material); + pointsMaterial.color.copy(material.color); + pointsMaterial.map = material.map; + pointsMaterial.sizeAttenuation = false; + this.cache.add(cacheKey, pointsMaterial); + } + material = pointsMaterial; + } else if (mesh.isLine) { + const cacheKey = "LineBasicMaterial:" + material.uuid; + let lineMaterial = this.cache.get(cacheKey); + if (!lineMaterial) { + lineMaterial = new LineBasicMaterial(); + Material.prototype.copy.call(lineMaterial, material); + lineMaterial.color.copy(material.color); + lineMaterial.map = material.map; + this.cache.add(cacheKey, lineMaterial); + } + material = lineMaterial; + } + if (useDerivativeTangents || useVertexColors || useFlatShading) { + let cacheKey = "ClonedMaterial:" + material.uuid + ":"; + if (useDerivativeTangents) cacheKey += "derivative-tangents:"; + if (useVertexColors) cacheKey += "vertex-colors:"; + if (useFlatShading) cacheKey += "flat-shading:"; + let cachedMaterial = this.cache.get(cacheKey); + if (!cachedMaterial) { + cachedMaterial = material.clone(); + if (useVertexColors) cachedMaterial.vertexColors = true; + if (useFlatShading) cachedMaterial.flatShading = true; + if (useDerivativeTangents) { + if (cachedMaterial.normalScale) cachedMaterial.normalScale.y *= -1; + if (cachedMaterial.clearcoatNormalScale) cachedMaterial.clearcoatNormalScale.y *= -1; + } + this.cache.add(cacheKey, cachedMaterial); + this.associations.set(cachedMaterial, this.associations.get(material)); + } + material = cachedMaterial; + } + mesh.material = material; + } + getMaterialType() { + return MeshStandardMaterial; + } + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#materials + * @param {number} materialIndex + * @return {Promise} + */ + loadMaterial(materialIndex) { + const parser = this; + const json = this.json; + const extensions = this.extensions; + const materialDef = json.materials[materialIndex]; + let materialType; + const materialParams = {}; + const materialExtensions = materialDef.extensions || {}; + const pending = []; + if (materialExtensions[EXTENSIONS.KHR_MATERIALS_UNLIT]) { + const kmuExtension = extensions[EXTENSIONS.KHR_MATERIALS_UNLIT]; + materialType = kmuExtension.getMaterialType(); + pending.push(kmuExtension.extendParams(materialParams, materialDef, parser)); + } else { + const metallicRoughness = materialDef.pbrMetallicRoughness || {}; + materialParams.color = new Color(1, 1, 1); + materialParams.opacity = 1; + if (Array.isArray(metallicRoughness.baseColorFactor)) { + const array = metallicRoughness.baseColorFactor; + materialParams.color.setRGB(array[0], array[1], array[2], LinearSRGBColorSpace); + materialParams.opacity = array[3]; + } + if (metallicRoughness.baseColorTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "map", metallicRoughness.baseColorTexture, SRGBColorSpace)); + } + materialParams.metalness = metallicRoughness.metallicFactor !== void 0 ? metallicRoughness.metallicFactor : 1; + materialParams.roughness = metallicRoughness.roughnessFactor !== void 0 ? metallicRoughness.roughnessFactor : 1; + if (metallicRoughness.metallicRoughnessTexture !== void 0) { + pending.push(parser.assignTexture(materialParams, "metalnessMap", metallicRoughness.metallicRoughnessTexture)); + pending.push(parser.assignTexture(materialParams, "roughnessMap", metallicRoughness.metallicRoughnessTexture)); + } + materialType = this._invokeOne(function(ext2) { + return ext2.getMaterialType && ext2.getMaterialType(materialIndex); + }); + pending.push(Promise.all(this._invokeAll(function(ext2) { + return ext2.extendMaterialParams && ext2.extendMaterialParams(materialIndex, materialParams); + }))); + } + if (materialDef.doubleSided === true) { + materialParams.side = DoubleSide; + } + const alphaMode = materialDef.alphaMode || ALPHA_MODES.OPAQUE; + if (alphaMode === ALPHA_MODES.BLEND) { + materialParams.transparent = true; + materialParams.depthWrite = false; + } else { + materialParams.transparent = false; + if (alphaMode === ALPHA_MODES.MASK) { + materialParams.alphaTest = materialDef.alphaCutoff !== void 0 ? materialDef.alphaCutoff : 0.5; + } + } + if (materialDef.normalTexture !== void 0 && materialType !== MeshBasicMaterial) { + pending.push(parser.assignTexture(materialParams, "normalMap", materialDef.normalTexture)); + materialParams.normalScale = new Vector2(1, 1); + if (materialDef.normalTexture.scale !== void 0) { + const scale = materialDef.normalTexture.scale; + materialParams.normalScale.set(scale, scale); + } + } + if (materialDef.occlusionTexture !== void 0 && materialType !== MeshBasicMaterial) { + pending.push(parser.assignTexture(materialParams, "aoMap", materialDef.occlusionTexture)); + if (materialDef.occlusionTexture.strength !== void 0) { + materialParams.aoMapIntensity = materialDef.occlusionTexture.strength; + } + } + if (materialDef.emissiveFactor !== void 0 && materialType !== MeshBasicMaterial) { + const emissiveFactor = materialDef.emissiveFactor; + materialParams.emissive = new Color().setRGB(emissiveFactor[0], emissiveFactor[1], emissiveFactor[2], LinearSRGBColorSpace); + } + if (materialDef.emissiveTexture !== void 0 && materialType !== MeshBasicMaterial) { + pending.push(parser.assignTexture(materialParams, "emissiveMap", materialDef.emissiveTexture, SRGBColorSpace)); + } + return Promise.all(pending).then(function() { + const material = new materialType(materialParams); + if (materialDef.name) material.name = materialDef.name; + assignExtrasToUserData(material, materialDef); + parser.associations.set(material, { materials: materialIndex }); + if (materialDef.extensions) addUnknownExtensionsToUserData(extensions, material, materialDef); + return material; + }); + } + /** When Object3D instances are targeted by animation, they need unique names. */ + createUniqueName(originalName) { + const sanitizedName = PropertyBinding.sanitizeNodeName(originalName || ""); + if (sanitizedName in this.nodeNamesUsed) { + return sanitizedName + "_" + ++this.nodeNamesUsed[sanitizedName]; + } else { + this.nodeNamesUsed[sanitizedName] = 0; + return sanitizedName; + } + } + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#geometry + * + * Creates BufferGeometries from primitives. + * + * @param {Array} primitives + * @return {Promise>} + */ + loadGeometries(primitives) { + const parser = this; + const extensions = this.extensions; + const cache = this.primitiveCache; + function createDracoPrimitive(primitive) { + return extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(primitive, parser).then(function(geometry) { + return addPrimitiveAttributes(geometry, primitive, parser); + }); + } + __name(createDracoPrimitive, "createDracoPrimitive"); + const pending = []; + for (let i = 0, il = primitives.length; i < il; i++) { + const primitive = primitives[i]; + const cacheKey = createPrimitiveKey(primitive); + const cached = cache[cacheKey]; + if (cached) { + pending.push(cached.promise); + } else { + let geometryPromise; + if (primitive.extensions && primitive.extensions[EXTENSIONS.KHR_DRACO_MESH_COMPRESSION]) { + geometryPromise = createDracoPrimitive(primitive); + } else { + geometryPromise = addPrimitiveAttributes(new BufferGeometry(), primitive, parser); + } + cache[cacheKey] = { primitive, promise: geometryPromise }; + pending.push(geometryPromise); + } + } + return Promise.all(pending); + } + /** + * Specification: https://github.com/KhronosGroup/glTF/blob/master/specification/2.0/README.md#meshes + * @param {number} meshIndex + * @return {Promise} + */ + loadMesh(meshIndex) { + const parser = this; + const json = this.json; + const extensions = this.extensions; + const meshDef = json.meshes[meshIndex]; + const primitives = meshDef.primitives; + const pending = []; + for (let i = 0, il = primitives.length; i < il; i++) { + const material = primitives[i].material === void 0 ? createDefaultMaterial(this.cache) : this.getDependency("material", primitives[i].material); + pending.push(material); + } + pending.push(parser.loadGeometries(primitives)); + return Promise.all(pending).then(function(results) { + const materials = results.slice(0, results.length - 1); + const geometries = results[results.length - 1]; + const meshes = []; + for (let i = 0, il = geometries.length; i < il; i++) { + const geometry = geometries[i]; + const primitive = primitives[i]; + let mesh; + const material = materials[i]; + if (primitive.mode === WEBGL_CONSTANTS.TRIANGLES || primitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP || primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN || primitive.mode === void 0) { + mesh = meshDef.isSkinnedMesh === true ? new SkinnedMesh(geometry, material) : new Mesh(geometry, material); + if (mesh.isSkinnedMesh === true) { + mesh.normalizeSkinWeights(); + } + if (primitive.mode === WEBGL_CONSTANTS.TRIANGLE_STRIP) { + mesh.geometry = toTrianglesDrawMode(mesh.geometry, TriangleStripDrawMode); + } else if (primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN) { + mesh.geometry = toTrianglesDrawMode(mesh.geometry, TriangleFanDrawMode); + } + } else if (primitive.mode === WEBGL_CONSTANTS.LINES) { + mesh = new LineSegments(geometry, material); + } else if (primitive.mode === WEBGL_CONSTANTS.LINE_STRIP) { + mesh = new Line(geometry, material); + } else if (primitive.mode === WEBGL_CONSTANTS.LINE_LOOP) { + mesh = new LineLoop(geometry, material); + } else if (primitive.mode === WEBGL_CONSTANTS.POINTS) { + mesh = new Points(geometry, material); + } else { + throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + primitive.mode); + } + if (Object.keys(mesh.geometry.morphAttributes).length > 0) { + updateMorphTargets(mesh, meshDef); + } + mesh.name = parser.createUniqueName(meshDef.name || "mesh_" + meshIndex); + assignExtrasToUserData(mesh, meshDef); + if (primitive.extensions) addUnknownExtensionsToUserData(extensions, mesh, primitive); + parser.assignFinalMaterial(mesh); + meshes.push(mesh); + } + for (let i = 0, il = meshes.length; i < il; i++) { + parser.associations.set(meshes[i], { + meshes: meshIndex, + primitives: i + }); + } + if (meshes.length === 1) { + if (meshDef.extensions) addUnknownExtensionsToUserData(extensions, meshes[0], meshDef); + return meshes[0]; + } + const group = new Group(); + if (meshDef.extensions) addUnknownExtensionsToUserData(extensions, group, meshDef); + parser.associations.set(group, { meshes: meshIndex }); + for (let i = 0, il = meshes.length; i < il; i++) { + group.add(meshes[i]); + } + return group; + }); + } + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#cameras + * @param {number} cameraIndex + * @return {Promise} + */ + loadCamera(cameraIndex) { + let camera; + const cameraDef = this.json.cameras[cameraIndex]; + const params = cameraDef[cameraDef.type]; + if (!params) { + console.warn("THREE.GLTFLoader: Missing camera parameters."); + return; + } + if (cameraDef.type === "perspective") { + camera = new PerspectiveCamera(MathUtils.radToDeg(params.yfov), params.aspectRatio || 1, params.znear || 1, params.zfar || 2e6); + } else if (cameraDef.type === "orthographic") { + camera = new OrthographicCamera(-params.xmag, params.xmag, params.ymag, -params.ymag, params.znear, params.zfar); + } + if (cameraDef.name) camera.name = this.createUniqueName(cameraDef.name); + assignExtrasToUserData(camera, cameraDef); + return Promise.resolve(camera); + } + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#skins + * @param {number} skinIndex + * @return {Promise} + */ + loadSkin(skinIndex) { + const skinDef = this.json.skins[skinIndex]; + const pending = []; + for (let i = 0, il = skinDef.joints.length; i < il; i++) { + pending.push(this._loadNodeShallow(skinDef.joints[i])); + } + if (skinDef.inverseBindMatrices !== void 0) { + pending.push(this.getDependency("accessor", skinDef.inverseBindMatrices)); + } else { + pending.push(null); + } + return Promise.all(pending).then(function(results) { + const inverseBindMatrices = results.pop(); + const jointNodes = results; + const bones = []; + const boneInverses = []; + for (let i = 0, il = jointNodes.length; i < il; i++) { + const jointNode = jointNodes[i]; + if (jointNode) { + bones.push(jointNode); + const mat = new Matrix4(); + if (inverseBindMatrices !== null) { + mat.fromArray(inverseBindMatrices.array, i * 16); + } + boneInverses.push(mat); + } else { + console.warn('THREE.GLTFLoader: Joint "%s" could not be found.', skinDef.joints[i]); + } + } + return new Skeleton(bones, boneInverses); + }); + } + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#animations + * @param {number} animationIndex + * @return {Promise} + */ + loadAnimation(animationIndex) { + const json = this.json; + const parser = this; + const animationDef = json.animations[animationIndex]; + const animationName = animationDef.name ? animationDef.name : "animation_" + animationIndex; + const pendingNodes = []; + const pendingInputAccessors = []; + const pendingOutputAccessors = []; + const pendingSamplers = []; + const pendingTargets = []; + for (let i = 0, il = animationDef.channels.length; i < il; i++) { + const channel = animationDef.channels[i]; + const sampler = animationDef.samplers[channel.sampler]; + const target = channel.target; + const name = target.node; + const input = animationDef.parameters !== void 0 ? animationDef.parameters[sampler.input] : sampler.input; + const output = animationDef.parameters !== void 0 ? animationDef.parameters[sampler.output] : sampler.output; + if (target.node === void 0) continue; + pendingNodes.push(this.getDependency("node", name)); + pendingInputAccessors.push(this.getDependency("accessor", input)); + pendingOutputAccessors.push(this.getDependency("accessor", output)); + pendingSamplers.push(sampler); + pendingTargets.push(target); + } + return Promise.all([ + Promise.all(pendingNodes), + Promise.all(pendingInputAccessors), + Promise.all(pendingOutputAccessors), + Promise.all(pendingSamplers), + Promise.all(pendingTargets) + ]).then(function(dependencies) { + const nodes = dependencies[0]; + const inputAccessors = dependencies[1]; + const outputAccessors = dependencies[2]; + const samplers = dependencies[3]; + const targets = dependencies[4]; + const tracks = []; + for (let i = 0, il = nodes.length; i < il; i++) { + const node = nodes[i]; + const inputAccessor = inputAccessors[i]; + const outputAccessor = outputAccessors[i]; + const sampler = samplers[i]; + const target = targets[i]; + if (node === void 0) continue; + if (node.updateMatrix) { + node.updateMatrix(); + } + const createdTracks = parser._createAnimationTracks(node, inputAccessor, outputAccessor, sampler, target); + if (createdTracks) { + for (let k = 0; k < createdTracks.length; k++) { + tracks.push(createdTracks[k]); + } + } + } + return new AnimationClip(animationName, void 0, tracks); + }); + } + createNodeMesh(nodeIndex) { + const json = this.json; + const parser = this; + const nodeDef = json.nodes[nodeIndex]; + if (nodeDef.mesh === void 0) return null; + return parser.getDependency("mesh", nodeDef.mesh).then(function(mesh) { + const node = parser._getNodeRef(parser.meshCache, nodeDef.mesh, mesh); + if (nodeDef.weights !== void 0) { + node.traverse(function(o) { + if (!o.isMesh) return; + for (let i = 0, il = nodeDef.weights.length; i < il; i++) { + o.morphTargetInfluences[i] = nodeDef.weights[i]; + } + }); + } + return node; + }); + } + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#nodes-and-hierarchy + * @param {number} nodeIndex + * @return {Promise} + */ + loadNode(nodeIndex) { + const json = this.json; + const parser = this; + const nodeDef = json.nodes[nodeIndex]; + const nodePending = parser._loadNodeShallow(nodeIndex); + const childPending = []; + const childrenDef = nodeDef.children || []; + for (let i = 0, il = childrenDef.length; i < il; i++) { + childPending.push(parser.getDependency("node", childrenDef[i])); + } + const skeletonPending = nodeDef.skin === void 0 ? Promise.resolve(null) : parser.getDependency("skin", nodeDef.skin); + return Promise.all([ + nodePending, + Promise.all(childPending), + skeletonPending + ]).then(function(results) { + const node = results[0]; + const children = results[1]; + const skeleton = results[2]; + if (skeleton !== null) { + node.traverse(function(mesh) { + if (!mesh.isSkinnedMesh) return; + mesh.bind(skeleton, _identityMatrix); + }); + } + for (let i = 0, il = children.length; i < il; i++) { + node.add(children[i]); + } + return node; + }); + } + // ._loadNodeShallow() parses a single node. + // skin and child nodes are created and added in .loadNode() (no '_' prefix). + _loadNodeShallow(nodeIndex) { + const json = this.json; + const extensions = this.extensions; + const parser = this; + if (this.nodeCache[nodeIndex] !== void 0) { + return this.nodeCache[nodeIndex]; + } + const nodeDef = json.nodes[nodeIndex]; + const nodeName = nodeDef.name ? parser.createUniqueName(nodeDef.name) : ""; + const pending = []; + const meshPromise = parser._invokeOne(function(ext2) { + return ext2.createNodeMesh && ext2.createNodeMesh(nodeIndex); + }); + if (meshPromise) { + pending.push(meshPromise); + } + if (nodeDef.camera !== void 0) { + pending.push(parser.getDependency("camera", nodeDef.camera).then(function(camera) { + return parser._getNodeRef(parser.cameraCache, nodeDef.camera, camera); + })); + } + parser._invokeAll(function(ext2) { + return ext2.createNodeAttachment && ext2.createNodeAttachment(nodeIndex); + }).forEach(function(promise) { + pending.push(promise); + }); + this.nodeCache[nodeIndex] = Promise.all(pending).then(function(objects) { + let node; + if (nodeDef.isBone === true) { + node = new Bone(); + } else if (objects.length > 1) { + node = new Group(); + } else if (objects.length === 1) { + node = objects[0]; + } else { + node = new Object3D(); + } + if (node !== objects[0]) { + for (let i = 0, il = objects.length; i < il; i++) { + node.add(objects[i]); + } + } + if (nodeDef.name) { + node.userData.name = nodeDef.name; + node.name = nodeName; + } + assignExtrasToUserData(node, nodeDef); + if (nodeDef.extensions) addUnknownExtensionsToUserData(extensions, node, nodeDef); + if (nodeDef.matrix !== void 0) { + const matrix = new Matrix4(); + matrix.fromArray(nodeDef.matrix); + node.applyMatrix4(matrix); + } else { + if (nodeDef.translation !== void 0) { + node.position.fromArray(nodeDef.translation); + } + if (nodeDef.rotation !== void 0) { + node.quaternion.fromArray(nodeDef.rotation); + } + if (nodeDef.scale !== void 0) { + node.scale.fromArray(nodeDef.scale); + } + } + if (!parser.associations.has(node)) { + parser.associations.set(node, {}); + } + parser.associations.get(node).nodes = nodeIndex; + return node; + }); + return this.nodeCache[nodeIndex]; + } + /** + * Specification: https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#scenes + * @param {number} sceneIndex + * @return {Promise} + */ + loadScene(sceneIndex) { + const extensions = this.extensions; + const sceneDef = this.json.scenes[sceneIndex]; + const parser = this; + const scene = new Group(); + if (sceneDef.name) scene.name = parser.createUniqueName(sceneDef.name); + assignExtrasToUserData(scene, sceneDef); + if (sceneDef.extensions) addUnknownExtensionsToUserData(extensions, scene, sceneDef); + const nodeIds = sceneDef.nodes || []; + const pending = []; + for (let i = 0, il = nodeIds.length; i < il; i++) { + pending.push(parser.getDependency("node", nodeIds[i])); + } + return Promise.all(pending).then(function(nodes) { + for (let i = 0, il = nodes.length; i < il; i++) { + scene.add(nodes[i]); + } + const reduceAssociations = /* @__PURE__ */ __name((node) => { + const reducedAssociations = /* @__PURE__ */ new Map(); + for (const [key, value] of parser.associations) { + if (key instanceof Material || key instanceof Texture) { + reducedAssociations.set(key, value); + } + } + node.traverse((node2) => { + const mappings = parser.associations.get(node2); + if (mappings != null) { + reducedAssociations.set(node2, mappings); + } + }); + return reducedAssociations; + }, "reduceAssociations"); + parser.associations = reduceAssociations(scene); + return scene; + }); + } + _createAnimationTracks(node, inputAccessor, outputAccessor, sampler, target) { + const tracks = []; + const targetName = node.name ? node.name : node.uuid; + const targetNames = []; + if (PATH_PROPERTIES[target.path] === PATH_PROPERTIES.weights) { + node.traverse(function(object) { + if (object.morphTargetInfluences) { + targetNames.push(object.name ? object.name : object.uuid); + } + }); + } else { + targetNames.push(targetName); + } + let TypedKeyframeTrack; + switch (PATH_PROPERTIES[target.path]) { + case PATH_PROPERTIES.weights: + TypedKeyframeTrack = NumberKeyframeTrack; + break; + case PATH_PROPERTIES.rotation: + TypedKeyframeTrack = QuaternionKeyframeTrack; + break; + case PATH_PROPERTIES.position: + case PATH_PROPERTIES.scale: + TypedKeyframeTrack = VectorKeyframeTrack; + break; + default: + switch (outputAccessor.itemSize) { + case 1: + TypedKeyframeTrack = NumberKeyframeTrack; + break; + case 2: + case 3: + default: + TypedKeyframeTrack = VectorKeyframeTrack; + break; + } + break; + } + const interpolation = sampler.interpolation !== void 0 ? INTERPOLATION[sampler.interpolation] : InterpolateLinear; + const outputArray = this._getArrayFromAccessor(outputAccessor); + for (let j = 0, jl = targetNames.length; j < jl; j++) { + const track = new TypedKeyframeTrack( + targetNames[j] + "." + PATH_PROPERTIES[target.path], + inputAccessor.array, + outputArray, + interpolation + ); + if (sampler.interpolation === "CUBICSPLINE") { + this._createCubicSplineTrackInterpolant(track); + } + tracks.push(track); + } + return tracks; + } + _getArrayFromAccessor(accessor) { + let outputArray = accessor.array; + if (accessor.normalized) { + const scale = getNormalizedComponentScale(outputArray.constructor); + const scaled = new Float32Array(outputArray.length); + for (let j = 0, jl = outputArray.length; j < jl; j++) { + scaled[j] = outputArray[j] * scale; + } + outputArray = scaled; + } + return outputArray; + } + _createCubicSplineTrackInterpolant(track) { + track.createInterpolant = /* @__PURE__ */ __name(function InterpolantFactoryMethodGLTFCubicSpline(result) { + const interpolantType = this instanceof QuaternionKeyframeTrack ? GLTFCubicSplineQuaternionInterpolant : GLTFCubicSplineInterpolant; + return new interpolantType(this.times, this.values, this.getValueSize() / 3, result); + }, "InterpolantFactoryMethodGLTFCubicSpline"); + track.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = true; + } +} +function computeBounds(geometry, primitiveDef, parser) { + const attributes = primitiveDef.attributes; + const box = new Box3(); + if (attributes.POSITION !== void 0) { + const accessor = parser.json.accessors[attributes.POSITION]; + const min = accessor.min; + const max2 = accessor.max; + if (min !== void 0 && max2 !== void 0) { + box.set( + new Vector3(min[0], min[1], min[2]), + new Vector3(max2[0], max2[1], max2[2]) + ); + if (accessor.normalized) { + const boxScale = getNormalizedComponentScale(WEBGL_COMPONENT_TYPES[accessor.componentType]); + box.min.multiplyScalar(boxScale); + box.max.multiplyScalar(boxScale); + } + } else { + console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION."); + return; + } + } else { + return; + } + const targets = primitiveDef.targets; + if (targets !== void 0) { + const maxDisplacement = new Vector3(); + const vector = new Vector3(); + for (let i = 0, il = targets.length; i < il; i++) { + const target = targets[i]; + if (target.POSITION !== void 0) { + const accessor = parser.json.accessors[target.POSITION]; + const min = accessor.min; + const max2 = accessor.max; + if (min !== void 0 && max2 !== void 0) { + vector.setX(Math.max(Math.abs(min[0]), Math.abs(max2[0]))); + vector.setY(Math.max(Math.abs(min[1]), Math.abs(max2[1]))); + vector.setZ(Math.max(Math.abs(min[2]), Math.abs(max2[2]))); + if (accessor.normalized) { + const boxScale = getNormalizedComponentScale(WEBGL_COMPONENT_TYPES[accessor.componentType]); + vector.multiplyScalar(boxScale); + } + maxDisplacement.max(vector); + } else { + console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION."); + } + } + } + box.expandByVector(maxDisplacement); + } + geometry.boundingBox = box; + const sphere = new Sphere(); + box.getCenter(sphere.center); + sphere.radius = box.min.distanceTo(box.max) / 2; + geometry.boundingSphere = sphere; +} +__name(computeBounds, "computeBounds"); +function addPrimitiveAttributes(geometry, primitiveDef, parser) { + const attributes = primitiveDef.attributes; + const pending = []; + function assignAttributeAccessor(accessorIndex, attributeName) { + return parser.getDependency("accessor", accessorIndex).then(function(accessor) { + geometry.setAttribute(attributeName, accessor); + }); + } + __name(assignAttributeAccessor, "assignAttributeAccessor"); + for (const gltfAttributeName in attributes) { + const threeAttributeName = ATTRIBUTES[gltfAttributeName] || gltfAttributeName.toLowerCase(); + if (threeAttributeName in geometry.attributes) continue; + pending.push(assignAttributeAccessor(attributes[gltfAttributeName], threeAttributeName)); + } + if (primitiveDef.indices !== void 0 && !geometry.index) { + const accessor = parser.getDependency("accessor", primitiveDef.indices).then(function(accessor2) { + geometry.setIndex(accessor2); + }); + pending.push(accessor); + } + if (ColorManagement.workingColorSpace !== LinearSRGBColorSpace && "COLOR_0" in attributes) { + console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${ColorManagement.workingColorSpace}" not supported.`); + } + assignExtrasToUserData(geometry, primitiveDef); + computeBounds(geometry, primitiveDef, parser); + return Promise.all(pending).then(function() { + return primitiveDef.targets !== void 0 ? addMorphTargets(geometry, primitiveDef.targets, parser) : geometry; + }); +} +__name(addPrimitiveAttributes, "addPrimitiveAttributes"); +class MTLLoader extends Loader { + static { + __name(this, "MTLLoader"); + } + constructor(manager) { + super(manager); + } + /** + * Loads and parses a MTL asset from a URL. + * + * @param {String} url - URL to the MTL file. + * @param {Function} [onLoad] - Callback invoked with the loaded object. + * @param {Function} [onProgress] - Callback for download progress. + * @param {Function} [onError] - Callback for download errors. + * + * @see setPath setResourcePath + * + * @note In order for relative texture references to resolve correctly + * you must call setResourcePath() explicitly prior to load. + */ + load(url, onLoad, onProgress, onError) { + const scope = this; + const path = this.path === "" ? LoaderUtils.extractUrlBase(url) : this.path; + const loader = new FileLoader(this.manager); + loader.setPath(this.path); + loader.setRequestHeader(this.requestHeader); + loader.setWithCredentials(this.withCredentials); + loader.load(url, function(text) { + try { + onLoad(scope.parse(text, path)); + } catch (e) { + if (onError) { + onError(e); + } else { + console.error(e); + } + scope.manager.itemError(url); + } + }, onProgress, onError); + } + setMaterialOptions(value) { + this.materialOptions = value; + return this; + } + /** + * Parses a MTL file. + * + * @param {String} text - Content of MTL file + * @return {MaterialCreator} + * + * @see setPath setResourcePath + * + * @note In order for relative texture references to resolve correctly + * you must call setResourcePath() explicitly prior to parse. + */ + parse(text, path) { + const lines = text.split("\n"); + let info = {}; + const delimiter_pattern = /\s+/; + const materialsInfo = {}; + for (let i = 0; i < lines.length; i++) { + let line = lines[i]; + line = line.trim(); + if (line.length === 0 || line.charAt(0) === "#") { + continue; + } + const pos = line.indexOf(" "); + let key = pos >= 0 ? line.substring(0, pos) : line; + key = key.toLowerCase(); + let value = pos >= 0 ? line.substring(pos + 1) : ""; + value = value.trim(); + if (key === "newmtl") { + info = { name: value }; + materialsInfo[value] = info; + } else { + if (key === "ka" || key === "kd" || key === "ks" || key === "ke") { + const ss = value.split(delimiter_pattern, 3); + info[key] = [parseFloat(ss[0]), parseFloat(ss[1]), parseFloat(ss[2])]; + } else { + info[key] = value; + } + } + } + const materialCreator = new MaterialCreator(this.resourcePath || path, this.materialOptions); + materialCreator.setCrossOrigin(this.crossOrigin); + materialCreator.setManager(this.manager); + materialCreator.setMaterials(materialsInfo); + return materialCreator; + } +} +class MaterialCreator { + static { + __name(this, "MaterialCreator"); + } + constructor(baseUrl = "", options = {}) { + this.baseUrl = baseUrl; + this.options = options; + this.materialsInfo = {}; + this.materials = {}; + this.materialsArray = []; + this.nameLookup = {}; + this.crossOrigin = "anonymous"; + this.side = this.options.side !== void 0 ? this.options.side : FrontSide; + this.wrap = this.options.wrap !== void 0 ? this.options.wrap : RepeatWrapping; + } + setCrossOrigin(value) { + this.crossOrigin = value; + return this; + } + setManager(value) { + this.manager = value; + } + setMaterials(materialsInfo) { + this.materialsInfo = this.convert(materialsInfo); + this.materials = {}; + this.materialsArray = []; + this.nameLookup = {}; + } + convert(materialsInfo) { + if (!this.options) return materialsInfo; + const converted = {}; + for (const mn in materialsInfo) { + const mat = materialsInfo[mn]; + const covmat = {}; + converted[mn] = covmat; + for (const prop in mat) { + let save = true; + let value = mat[prop]; + const lprop = prop.toLowerCase(); + switch (lprop) { + case "kd": + case "ka": + case "ks": + if (this.options && this.options.normalizeRGB) { + value = [value[0] / 255, value[1] / 255, value[2] / 255]; + } + if (this.options && this.options.ignoreZeroRGBs) { + if (value[0] === 0 && value[1] === 0 && value[2] === 0) { + save = false; + } + } + break; + default: + break; + } + if (save) { + covmat[lprop] = value; + } + } + } + return converted; + } + preload() { + for (const mn in this.materialsInfo) { + this.create(mn); + } + } + getIndex(materialName) { + return this.nameLookup[materialName]; + } + getAsArray() { + let index = 0; + for (const mn in this.materialsInfo) { + this.materialsArray[index] = this.create(mn); + this.nameLookup[mn] = index; + index++; + } + return this.materialsArray; + } + create(materialName) { + if (this.materials[materialName] === void 0) { + this.createMaterial_(materialName); + } + return this.materials[materialName]; + } + createMaterial_(materialName) { + const scope = this; + const mat = this.materialsInfo[materialName]; + const params = { + name: materialName, + side: this.side + }; + function resolveURL(baseUrl, url) { + if (typeof url !== "string" || url === "") + return ""; + if (/^https?:\/\//i.test(url)) return url; + return baseUrl + url; + } + __name(resolveURL, "resolveURL"); + function setMapForType(mapType, value) { + if (params[mapType]) return; + const texParams = scope.getTextureParams(value, params); + const map = scope.loadTexture(resolveURL(scope.baseUrl, texParams.url)); + map.repeat.copy(texParams.scale); + map.offset.copy(texParams.offset); + map.wrapS = scope.wrap; + map.wrapT = scope.wrap; + if (mapType === "map" || mapType === "emissiveMap") { + map.colorSpace = SRGBColorSpace; + } + params[mapType] = map; + } + __name(setMapForType, "setMapForType"); + for (const prop in mat) { + const value = mat[prop]; + let n; + if (value === "") continue; + switch (prop.toLowerCase()) { + case "kd": + params.color = ColorManagement.toWorkingColorSpace(new Color().fromArray(value), SRGBColorSpace); + break; + case "ks": + params.specular = ColorManagement.toWorkingColorSpace(new Color().fromArray(value), SRGBColorSpace); + break; + case "ke": + params.emissive = ColorManagement.toWorkingColorSpace(new Color().fromArray(value), SRGBColorSpace); + break; + case "map_kd": + setMapForType("map", value); + break; + case "map_ks": + setMapForType("specularMap", value); + break; + case "map_ke": + setMapForType("emissiveMap", value); + break; + case "norm": + setMapForType("normalMap", value); + break; + case "map_bump": + case "bump": + setMapForType("bumpMap", value); + break; + case "map_d": + setMapForType("alphaMap", value); + params.transparent = true; + break; + case "ns": + params.shininess = parseFloat(value); + break; + case "d": + n = parseFloat(value); + if (n < 1) { + params.opacity = n; + params.transparent = true; + } + break; + case "tr": + n = parseFloat(value); + if (this.options && this.options.invertTrProperty) n = 1 - n; + if (n > 0) { + params.opacity = 1 - n; + params.transparent = true; + } + break; + default: + break; + } + } + this.materials[materialName] = new MeshPhongMaterial(params); + return this.materials[materialName]; + } + getTextureParams(value, matParams) { + const texParams = { + scale: new Vector2(1, 1), + offset: new Vector2(0, 0) + }; + const items = value.split(/\s+/); + let pos; + pos = items.indexOf("-bm"); + if (pos >= 0) { + matParams.bumpScale = parseFloat(items[pos + 1]); + items.splice(pos, 2); + } + pos = items.indexOf("-s"); + if (pos >= 0) { + texParams.scale.set(parseFloat(items[pos + 1]), parseFloat(items[pos + 2])); + items.splice(pos, 4); + } + pos = items.indexOf("-o"); + if (pos >= 0) { + texParams.offset.set(parseFloat(items[pos + 1]), parseFloat(items[pos + 2])); + items.splice(pos, 4); + } + texParams.url = items.join(" ").trim(); + return texParams; + } + loadTexture(url, mapping, onLoad, onProgress, onError) { + const manager = this.manager !== void 0 ? this.manager : DefaultLoadingManager; + let loader = manager.getHandler(url); + if (loader === null) { + loader = new TextureLoader(manager); + } + if (loader.setCrossOrigin) loader.setCrossOrigin(this.crossOrigin); + const texture = loader.load(url, onLoad, onProgress, onError); + if (mapping !== void 0) texture.mapping = mapping; + return texture; + } +} +const _object_pattern = /^[og]\s*(.+)?/; +const _material_library_pattern = /^mtllib /; +const _material_use_pattern = /^usemtl /; +const _map_use_pattern = /^usemap /; +const _face_vertex_data_separator_pattern = /\s+/; +const _vA = new Vector3(); +const _vB = new Vector3(); +const _vC = new Vector3(); +const _ab = new Vector3(); +const _cb = new Vector3(); +const _color = new Color(); +function ParserState() { + const state = { + objects: [], + object: {}, + vertices: [], + normals: [], + colors: [], + uvs: [], + materials: {}, + materialLibraries: [], + startObject: /* @__PURE__ */ __name(function(name, fromDeclaration) { + if (this.object && this.object.fromDeclaration === false) { + this.object.name = name; + this.object.fromDeclaration = fromDeclaration !== false; + return; + } + const previousMaterial = this.object && typeof this.object.currentMaterial === "function" ? this.object.currentMaterial() : void 0; + if (this.object && typeof this.object._finalize === "function") { + this.object._finalize(true); + } + this.object = { + name: name || "", + fromDeclaration: fromDeclaration !== false, + geometry: { + vertices: [], + normals: [], + colors: [], + uvs: [], + hasUVIndices: false + }, + materials: [], + smooth: true, + startMaterial: /* @__PURE__ */ __name(function(name2, libraries) { + const previous = this._finalize(false); + if (previous && (previous.inherited || previous.groupCount <= 0)) { + this.materials.splice(previous.index, 1); + } + const material = { + index: this.materials.length, + name: name2 || "", + mtllib: Array.isArray(libraries) && libraries.length > 0 ? libraries[libraries.length - 1] : "", + smooth: previous !== void 0 ? previous.smooth : this.smooth, + groupStart: previous !== void 0 ? previous.groupEnd : 0, + groupEnd: -1, + groupCount: -1, + inherited: false, + clone: /* @__PURE__ */ __name(function(index) { + const cloned = { + index: typeof index === "number" ? index : this.index, + name: this.name, + mtllib: this.mtllib, + smooth: this.smooth, + groupStart: 0, + groupEnd: -1, + groupCount: -1, + inherited: false + }; + cloned.clone = this.clone.bind(cloned); + return cloned; + }, "clone") + }; + this.materials.push(material); + return material; + }, "startMaterial"), + currentMaterial: /* @__PURE__ */ __name(function() { + if (this.materials.length > 0) { + return this.materials[this.materials.length - 1]; + } + return void 0; + }, "currentMaterial"), + _finalize: /* @__PURE__ */ __name(function(end) { + const lastMultiMaterial = this.currentMaterial(); + if (lastMultiMaterial && lastMultiMaterial.groupEnd === -1) { + lastMultiMaterial.groupEnd = this.geometry.vertices.length / 3; + lastMultiMaterial.groupCount = lastMultiMaterial.groupEnd - lastMultiMaterial.groupStart; + lastMultiMaterial.inherited = false; + } + if (end && this.materials.length > 1) { + for (let mi = this.materials.length - 1; mi >= 0; mi--) { + if (this.materials[mi].groupCount <= 0) { + this.materials.splice(mi, 1); + } + } + } + if (end && this.materials.length === 0) { + this.materials.push({ + name: "", + smooth: this.smooth + }); + } + return lastMultiMaterial; + }, "_finalize") + }; + if (previousMaterial && previousMaterial.name && typeof previousMaterial.clone === "function") { + const declared = previousMaterial.clone(0); + declared.inherited = true; + this.object.materials.push(declared); + } + this.objects.push(this.object); + }, "startObject"), + finalize: /* @__PURE__ */ __name(function() { + if (this.object && typeof this.object._finalize === "function") { + this.object._finalize(true); + } + }, "finalize"), + parseVertexIndex: /* @__PURE__ */ __name(function(value, len) { + const index = parseInt(value, 10); + return (index >= 0 ? index - 1 : index + len / 3) * 3; + }, "parseVertexIndex"), + parseNormalIndex: /* @__PURE__ */ __name(function(value, len) { + const index = parseInt(value, 10); + return (index >= 0 ? index - 1 : index + len / 3) * 3; + }, "parseNormalIndex"), + parseUVIndex: /* @__PURE__ */ __name(function(value, len) { + const index = parseInt(value, 10); + return (index >= 0 ? index - 1 : index + len / 2) * 2; + }, "parseUVIndex"), + addVertex: /* @__PURE__ */ __name(function(a, b, c) { + const src = this.vertices; + const dst = this.object.geometry.vertices; + dst.push(src[a + 0], src[a + 1], src[a + 2]); + dst.push(src[b + 0], src[b + 1], src[b + 2]); + dst.push(src[c + 0], src[c + 1], src[c + 2]); + }, "addVertex"), + addVertexPoint: /* @__PURE__ */ __name(function(a) { + const src = this.vertices; + const dst = this.object.geometry.vertices; + dst.push(src[a + 0], src[a + 1], src[a + 2]); + }, "addVertexPoint"), + addVertexLine: /* @__PURE__ */ __name(function(a) { + const src = this.vertices; + const dst = this.object.geometry.vertices; + dst.push(src[a + 0], src[a + 1], src[a + 2]); + }, "addVertexLine"), + addNormal: /* @__PURE__ */ __name(function(a, b, c) { + const src = this.normals; + const dst = this.object.geometry.normals; + dst.push(src[a + 0], src[a + 1], src[a + 2]); + dst.push(src[b + 0], src[b + 1], src[b + 2]); + dst.push(src[c + 0], src[c + 1], src[c + 2]); + }, "addNormal"), + addFaceNormal: /* @__PURE__ */ __name(function(a, b, c) { + const src = this.vertices; + const dst = this.object.geometry.normals; + _vA.fromArray(src, a); + _vB.fromArray(src, b); + _vC.fromArray(src, c); + _cb.subVectors(_vC, _vB); + _ab.subVectors(_vA, _vB); + _cb.cross(_ab); + _cb.normalize(); + dst.push(_cb.x, _cb.y, _cb.z); + dst.push(_cb.x, _cb.y, _cb.z); + dst.push(_cb.x, _cb.y, _cb.z); + }, "addFaceNormal"), + addColor: /* @__PURE__ */ __name(function(a, b, c) { + const src = this.colors; + const dst = this.object.geometry.colors; + if (src[a] !== void 0) dst.push(src[a + 0], src[a + 1], src[a + 2]); + if (src[b] !== void 0) dst.push(src[b + 0], src[b + 1], src[b + 2]); + if (src[c] !== void 0) dst.push(src[c + 0], src[c + 1], src[c + 2]); + }, "addColor"), + addUV: /* @__PURE__ */ __name(function(a, b, c) { + const src = this.uvs; + const dst = this.object.geometry.uvs; + dst.push(src[a + 0], src[a + 1]); + dst.push(src[b + 0], src[b + 1]); + dst.push(src[c + 0], src[c + 1]); + }, "addUV"), + addDefaultUV: /* @__PURE__ */ __name(function() { + const dst = this.object.geometry.uvs; + dst.push(0, 0); + dst.push(0, 0); + dst.push(0, 0); + }, "addDefaultUV"), + addUVLine: /* @__PURE__ */ __name(function(a) { + const src = this.uvs; + const dst = this.object.geometry.uvs; + dst.push(src[a + 0], src[a + 1]); + }, "addUVLine"), + addFace: /* @__PURE__ */ __name(function(a, b, c, ua, ub, uc, na, nb, nc) { + const vLen = this.vertices.length; + let ia = this.parseVertexIndex(a, vLen); + let ib = this.parseVertexIndex(b, vLen); + let ic = this.parseVertexIndex(c, vLen); + this.addVertex(ia, ib, ic); + this.addColor(ia, ib, ic); + if (na !== void 0 && na !== "") { + const nLen = this.normals.length; + ia = this.parseNormalIndex(na, nLen); + ib = this.parseNormalIndex(nb, nLen); + ic = this.parseNormalIndex(nc, nLen); + this.addNormal(ia, ib, ic); + } else { + this.addFaceNormal(ia, ib, ic); + } + if (ua !== void 0 && ua !== "") { + const uvLen = this.uvs.length; + ia = this.parseUVIndex(ua, uvLen); + ib = this.parseUVIndex(ub, uvLen); + ic = this.parseUVIndex(uc, uvLen); + this.addUV(ia, ib, ic); + this.object.geometry.hasUVIndices = true; + } else { + this.addDefaultUV(); + } + }, "addFace"), + addPointGeometry: /* @__PURE__ */ __name(function(vertices) { + this.object.geometry.type = "Points"; + const vLen = this.vertices.length; + for (let vi = 0, l = vertices.length; vi < l; vi++) { + const index = this.parseVertexIndex(vertices[vi], vLen); + this.addVertexPoint(index); + this.addColor(index); + } + }, "addPointGeometry"), + addLineGeometry: /* @__PURE__ */ __name(function(vertices, uvs) { + this.object.geometry.type = "Line"; + const vLen = this.vertices.length; + const uvLen = this.uvs.length; + for (let vi = 0, l = vertices.length; vi < l; vi++) { + this.addVertexLine(this.parseVertexIndex(vertices[vi], vLen)); + } + for (let uvi = 0, l = uvs.length; uvi < l; uvi++) { + this.addUVLine(this.parseUVIndex(uvs[uvi], uvLen)); + } + }, "addLineGeometry") + }; + state.startObject("", false); + return state; +} +__name(ParserState, "ParserState"); +class OBJLoader extends Loader { + static { + __name(this, "OBJLoader"); + } + constructor(manager) { + super(manager); + this.materials = null; + } + load(url, onLoad, onProgress, onError) { + const scope = this; + const loader = new FileLoader(this.manager); + loader.setPath(this.path); + loader.setRequestHeader(this.requestHeader); + loader.setWithCredentials(this.withCredentials); + loader.load(url, function(text) { + try { + onLoad(scope.parse(text)); + } catch (e) { + if (onError) { + onError(e); + } else { + console.error(e); + } + scope.manager.itemError(url); + } + }, onProgress, onError); + } + setMaterials(materials) { + this.materials = materials; + return this; + } + parse(text) { + const state = new ParserState(); + if (text.indexOf("\r\n") !== -1) { + text = text.replace(/\r\n/g, "\n"); + } + if (text.indexOf("\\\n") !== -1) { + text = text.replace(/\\\n/g, ""); + } + const lines = text.split("\n"); + let result = []; + for (let i = 0, l = lines.length; i < l; i++) { + const line = lines[i].trimStart(); + if (line.length === 0) continue; + const lineFirstChar = line.charAt(0); + if (lineFirstChar === "#") continue; + if (lineFirstChar === "v") { + const data = line.split(_face_vertex_data_separator_pattern); + switch (data[0]) { + case "v": + state.vertices.push( + parseFloat(data[1]), + parseFloat(data[2]), + parseFloat(data[3]) + ); + if (data.length >= 7) { + _color.setRGB( + parseFloat(data[4]), + parseFloat(data[5]), + parseFloat(data[6]), + SRGBColorSpace + ); + state.colors.push(_color.r, _color.g, _color.b); + } else { + state.colors.push(void 0, void 0, void 0); + } + break; + case "vn": + state.normals.push( + parseFloat(data[1]), + parseFloat(data[2]), + parseFloat(data[3]) + ); + break; + case "vt": + state.uvs.push( + parseFloat(data[1]), + parseFloat(data[2]) + ); + break; + } + } else if (lineFirstChar === "f") { + const lineData = line.slice(1).trim(); + const vertexData = lineData.split(_face_vertex_data_separator_pattern); + const faceVertices = []; + for (let j = 0, jl = vertexData.length; j < jl; j++) { + const vertex2 = vertexData[j]; + if (vertex2.length > 0) { + const vertexParts = vertex2.split("/"); + faceVertices.push(vertexParts); + } + } + const v1 = faceVertices[0]; + for (let j = 1, jl = faceVertices.length - 1; j < jl; j++) { + const v2 = faceVertices[j]; + const v3 = faceVertices[j + 1]; + state.addFace( + v1[0], + v2[0], + v3[0], + v1[1], + v2[1], + v3[1], + v1[2], + v2[2], + v3[2] + ); + } + } else if (lineFirstChar === "l") { + const lineParts = line.substring(1).trim().split(" "); + let lineVertices = []; + const lineUVs = []; + if (line.indexOf("/") === -1) { + lineVertices = lineParts; + } else { + for (let li = 0, llen = lineParts.length; li < llen; li++) { + const parts = lineParts[li].split("/"); + if (parts[0] !== "") lineVertices.push(parts[0]); + if (parts[1] !== "") lineUVs.push(parts[1]); + } + } + state.addLineGeometry(lineVertices, lineUVs); + } else if (lineFirstChar === "p") { + const lineData = line.slice(1).trim(); + const pointData = lineData.split(" "); + state.addPointGeometry(pointData); + } else if ((result = _object_pattern.exec(line)) !== null) { + const name = (" " + result[0].slice(1).trim()).slice(1); + state.startObject(name); + } else if (_material_use_pattern.test(line)) { + state.object.startMaterial(line.substring(7).trim(), state.materialLibraries); + } else if (_material_library_pattern.test(line)) { + state.materialLibraries.push(line.substring(7).trim()); + } else if (_map_use_pattern.test(line)) { + console.warn('THREE.OBJLoader: Rendering identifier "usemap" not supported. Textures must be defined in MTL files.'); + } else if (lineFirstChar === "s") { + result = line.split(" "); + if (result.length > 1) { + const value = result[1].trim().toLowerCase(); + state.object.smooth = value !== "0" && value !== "off"; + } else { + state.object.smooth = true; + } + const material = state.object.currentMaterial(); + if (material) material.smooth = state.object.smooth; + } else { + if (line === "\0") continue; + console.warn('THREE.OBJLoader: Unexpected line: "' + line + '"'); + } + } + state.finalize(); + const container = new Group(); + container.materialLibraries = [].concat(state.materialLibraries); + const hasPrimitives = !(state.objects.length === 1 && state.objects[0].geometry.vertices.length === 0); + if (hasPrimitives === true) { + for (let i = 0, l = state.objects.length; i < l; i++) { + const object = state.objects[i]; + const geometry = object.geometry; + const materials = object.materials; + const isLine = geometry.type === "Line"; + const isPoints = geometry.type === "Points"; + let hasVertexColors = false; + if (geometry.vertices.length === 0) continue; + const buffergeometry = new BufferGeometry(); + buffergeometry.setAttribute("position", new Float32BufferAttribute(geometry.vertices, 3)); + if (geometry.normals.length > 0) { + buffergeometry.setAttribute("normal", new Float32BufferAttribute(geometry.normals, 3)); + } + if (geometry.colors.length > 0) { + hasVertexColors = true; + buffergeometry.setAttribute("color", new Float32BufferAttribute(geometry.colors, 3)); + } + if (geometry.hasUVIndices === true) { + buffergeometry.setAttribute("uv", new Float32BufferAttribute(geometry.uvs, 2)); + } + const createdMaterials = []; + for (let mi = 0, miLen = materials.length; mi < miLen; mi++) { + const sourceMaterial = materials[mi]; + const materialHash = sourceMaterial.name + "_" + sourceMaterial.smooth + "_" + hasVertexColors; + let material = state.materials[materialHash]; + if (this.materials !== null) { + material = this.materials.create(sourceMaterial.name); + if (isLine && material && !(material instanceof LineBasicMaterial)) { + const materialLine = new LineBasicMaterial(); + Material.prototype.copy.call(materialLine, material); + materialLine.color.copy(material.color); + material = materialLine; + } else if (isPoints && material && !(material instanceof PointsMaterial)) { + const materialPoints = new PointsMaterial({ size: 10, sizeAttenuation: false }); + Material.prototype.copy.call(materialPoints, material); + materialPoints.color.copy(material.color); + materialPoints.map = material.map; + material = materialPoints; + } + } + if (material === void 0) { + if (isLine) { + material = new LineBasicMaterial(); + } else if (isPoints) { + material = new PointsMaterial({ size: 1, sizeAttenuation: false }); + } else { + material = new MeshPhongMaterial(); + } + material.name = sourceMaterial.name; + material.flatShading = sourceMaterial.smooth ? false : true; + material.vertexColors = hasVertexColors; + state.materials[materialHash] = material; + } + createdMaterials.push(material); + } + let mesh; + if (createdMaterials.length > 1) { + for (let mi = 0, miLen = materials.length; mi < miLen; mi++) { + const sourceMaterial = materials[mi]; + buffergeometry.addGroup(sourceMaterial.groupStart, sourceMaterial.groupCount, mi); + } + if (isLine) { + mesh = new LineSegments(buffergeometry, createdMaterials); + } else if (isPoints) { + mesh = new Points(buffergeometry, createdMaterials); + } else { + mesh = new Mesh(buffergeometry, createdMaterials); + } + } else { + if (isLine) { + mesh = new LineSegments(buffergeometry, createdMaterials[0]); + } else if (isPoints) { + mesh = new Points(buffergeometry, createdMaterials[0]); + } else { + mesh = new Mesh(buffergeometry, createdMaterials[0]); + } + } + mesh.name = object.name; + container.add(mesh); + } + } else { + if (state.vertices.length > 0) { + const material = new PointsMaterial({ size: 1, sizeAttenuation: false }); + const buffergeometry = new BufferGeometry(); + buffergeometry.setAttribute("position", new Float32BufferAttribute(state.vertices, 3)); + if (state.colors.length > 0 && state.colors[0] !== void 0) { + buffergeometry.setAttribute("color", new Float32BufferAttribute(state.colors, 3)); + material.vertexColors = true; + } + const points = new Points(buffergeometry, material); + container.add(points); + } + } + return container; + } +} +class STLLoader extends Loader { + static { + __name(this, "STLLoader"); + } + constructor(manager) { + super(manager); + } + load(url, onLoad, onProgress, onError) { + const scope = this; + const loader = new FileLoader(this.manager); + loader.setPath(this.path); + loader.setResponseType("arraybuffer"); + loader.setRequestHeader(this.requestHeader); + loader.setWithCredentials(this.withCredentials); + loader.load(url, function(text) { + try { + onLoad(scope.parse(text)); + } catch (e) { + if (onError) { + onError(e); + } else { + console.error(e); + } + scope.manager.itemError(url); + } + }, onProgress, onError); + } + parse(data) { + function isBinary(data2) { + const reader = new DataView(data2); + const face_size = 32 / 8 * 3 + 32 / 8 * 3 * 3 + 16 / 8; + const n_faces = reader.getUint32(80, true); + const expect = 80 + 32 / 8 + n_faces * face_size; + if (expect === reader.byteLength) { + return true; + } + const solid = [115, 111, 108, 105, 100]; + for (let off = 0; off < 5; off++) { + if (matchDataViewAt(solid, reader, off)) return false; + } + return true; + } + __name(isBinary, "isBinary"); + function matchDataViewAt(query, reader, offset) { + for (let i = 0, il = query.length; i < il; i++) { + if (query[i] !== reader.getUint8(offset + i)) return false; + } + return true; + } + __name(matchDataViewAt, "matchDataViewAt"); + function parseBinary(data2) { + const reader = new DataView(data2); + const faces = reader.getUint32(80, true); + let r, g, b, hasColors = false, colors; + let defaultR, defaultG, defaultB, alpha; + for (let index = 0; index < 80 - 10; index++) { + if (reader.getUint32(index, false) == 1129270351 && reader.getUint8(index + 4) == 82 && reader.getUint8(index + 5) == 61) { + hasColors = true; + colors = new Float32Array(faces * 3 * 3); + defaultR = reader.getUint8(index + 6) / 255; + defaultG = reader.getUint8(index + 7) / 255; + defaultB = reader.getUint8(index + 8) / 255; + alpha = reader.getUint8(index + 9) / 255; + } + } + const dataOffset = 84; + const faceLength = 12 * 4 + 2; + const geometry = new BufferGeometry(); + const vertices = new Float32Array(faces * 3 * 3); + const normals = new Float32Array(faces * 3 * 3); + const color = new Color(); + for (let face = 0; face < faces; face++) { + const start = dataOffset + face * faceLength; + const normalX = reader.getFloat32(start, true); + const normalY = reader.getFloat32(start + 4, true); + const normalZ = reader.getFloat32(start + 8, true); + if (hasColors) { + const packedColor = reader.getUint16(start + 48, true); + if ((packedColor & 32768) === 0) { + r = (packedColor & 31) / 31; + g = (packedColor >> 5 & 31) / 31; + b = (packedColor >> 10 & 31) / 31; + } else { + r = defaultR; + g = defaultG; + b = defaultB; + } + } + for (let i = 1; i <= 3; i++) { + const vertexstart = start + i * 12; + const componentIdx = face * 3 * 3 + (i - 1) * 3; + vertices[componentIdx] = reader.getFloat32(vertexstart, true); + vertices[componentIdx + 1] = reader.getFloat32(vertexstart + 4, true); + vertices[componentIdx + 2] = reader.getFloat32(vertexstart + 8, true); + normals[componentIdx] = normalX; + normals[componentIdx + 1] = normalY; + normals[componentIdx + 2] = normalZ; + if (hasColors) { + color.setRGB(r, g, b, SRGBColorSpace); + colors[componentIdx] = color.r; + colors[componentIdx + 1] = color.g; + colors[componentIdx + 2] = color.b; + } + } + } + geometry.setAttribute("position", new BufferAttribute(vertices, 3)); + geometry.setAttribute("normal", new BufferAttribute(normals, 3)); + if (hasColors) { + geometry.setAttribute("color", new BufferAttribute(colors, 3)); + geometry.hasColors = true; + geometry.alpha = alpha; + } + return geometry; + } + __name(parseBinary, "parseBinary"); + function parseASCII(data2) { + const geometry = new BufferGeometry(); + const patternSolid = /solid([\s\S]*?)endsolid/g; + const patternFace = /facet([\s\S]*?)endfacet/g; + const patternName = /solid\s(.+)/; + let faceCounter = 0; + const patternFloat = /[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source; + const patternVertex = new RegExp("vertex" + patternFloat + patternFloat + patternFloat, "g"); + const patternNormal = new RegExp("normal" + patternFloat + patternFloat + patternFloat, "g"); + const vertices = []; + const normals = []; + const groupNames = []; + const normal = new Vector3(); + let result; + let groupCount = 0; + let startVertex = 0; + let endVertex = 0; + while ((result = patternSolid.exec(data2)) !== null) { + startVertex = endVertex; + const solid = result[0]; + const name = (result = patternName.exec(solid)) !== null ? result[1] : ""; + groupNames.push(name); + while ((result = patternFace.exec(solid)) !== null) { + let vertexCountPerFace = 0; + let normalCountPerFace = 0; + const text = result[0]; + while ((result = patternNormal.exec(text)) !== null) { + normal.x = parseFloat(result[1]); + normal.y = parseFloat(result[2]); + normal.z = parseFloat(result[3]); + normalCountPerFace++; + } + while ((result = patternVertex.exec(text)) !== null) { + vertices.push(parseFloat(result[1]), parseFloat(result[2]), parseFloat(result[3])); + normals.push(normal.x, normal.y, normal.z); + vertexCountPerFace++; + endVertex++; + } + if (normalCountPerFace !== 1) { + console.error("THREE.STLLoader: Something isn't right with the normal of face number " + faceCounter); + } + if (vertexCountPerFace !== 3) { + console.error("THREE.STLLoader: Something isn't right with the vertices of face number " + faceCounter); + } + faceCounter++; + } + const start = startVertex; + const count = endVertex - startVertex; + geometry.userData.groupNames = groupNames; + geometry.addGroup(start, count, groupCount); + groupCount++; + } + geometry.setAttribute("position", new Float32BufferAttribute(vertices, 3)); + geometry.setAttribute("normal", new Float32BufferAttribute(normals, 3)); + return geometry; + } + __name(parseASCII, "parseASCII"); + function ensureString(buffer) { + if (typeof buffer !== "string") { + return new TextDecoder().decode(buffer); + } + return buffer; + } + __name(ensureString, "ensureString"); + function ensureBinary(buffer) { + if (typeof buffer === "string") { + const array_buffer = new Uint8Array(buffer.length); + for (let i = 0; i < buffer.length; i++) { + array_buffer[i] = buffer.charCodeAt(i) & 255; + } + return array_buffer.buffer || array_buffer; + } else { + return buffer; + } + } + __name(ensureBinary, "ensureBinary"); + const binData = ensureBinary(data); + return isBinary(binData) ? parseBinary(binData) : parseASCII(ensureString(data)); + } +} +async function uploadTempImage(imageData, prefix) { + const blob = await fetch(imageData).then((r) => r.blob()); + const name = `${prefix}_${Date.now()}.png`; + const file2 = new File([blob], name); + const body = new FormData(); + body.append("image", file2); + body.append("subfolder", "threed"); + body.append("type", "temp"); + const resp = await api.fetchApi("/upload/image", { + method: "POST", + body + }); + if (resp.status !== 200) { + const err2 = `Error uploading temp image: ${resp.status} - ${resp.statusText}`; + useToastStore().addAlert(err2); + throw new Error(err2); + } + return await resp.json(); +} +__name(uploadTempImage, "uploadTempImage"); +async function uploadFile$1(load3d, file2, fileInput) { + let uploadPath; + try { + const body = new FormData(); + body.append("image", file2); + body.append("subfolder", "3d"); + const resp = await api.fetchApi("/upload/image", { + method: "POST", + body + }); + if (resp.status === 200) { + const data = await resp.json(); + let path = data.name; + if (data.subfolder) path = data.subfolder + "/" + path; + uploadPath = path; + const modelUrl = api.apiURL( + getResourceURL$1(...splitFilePath$1(path), "input") + ); + await load3d.loadModel(modelUrl, file2.name); + const fileExt = file2.name.split(".").pop()?.toLowerCase(); + if (fileExt === "obj" && fileInput?.files) { + try { + const mtlFile = Array.from(fileInput.files).find( + (f) => f.name.toLowerCase().endsWith(".mtl") + ); + if (mtlFile) { + const mtlFormData = new FormData(); + mtlFormData.append("image", mtlFile); + mtlFormData.append("subfolder", "3d"); + await api.fetchApi("/upload/image", { + method: "POST", + body: mtlFormData + }); + } + } catch (mtlError) { + console.warn("Failed to upload MTL file:", mtlError); + } + } + } else { + useToastStore().addAlert(resp.status + " - " + resp.statusText); + } + } catch (error) { + console.error("Upload error:", error); + useToastStore().addAlert( + error instanceof Error ? error.message : "Upload failed" + ); + } + return uploadPath; +} +__name(uploadFile$1, "uploadFile$1"); +class Load3d { + static { + __name(this, "Load3d"); + } + scene; + perspectiveCamera; + orthographicCamera; + activeCamera; + renderer; + controls; + gltfLoader; + objLoader; + mtlLoader; + fbxLoader; + stlLoader; + currentModel = null; + originalModel = null; + node; + animationFrameId = null; + gridHelper; + lights = []; + clock; + normalMaterial; + standardMaterial; + wireframeMaterial; + depthMaterial; + originalMaterials = /* @__PURE__ */ new WeakMap(); + materialMode = "original"; + currentUpDirection = "original"; + originalRotation = null; + constructor(container) { + this.scene = new Scene(); + this.perspectiveCamera = new PerspectiveCamera(75, 1, 0.1, 1e3); + this.perspectiveCamera.position.set(5, 5, 5); + const frustumSize = 10; + this.orthographicCamera = new OrthographicCamera( + -frustumSize / 2, + frustumSize / 2, + frustumSize / 2, + -frustumSize / 2, + 0.1, + 1e3 + ); + this.orthographicCamera.position.set(5, 5, 5); + this.activeCamera = this.perspectiveCamera; + this.perspectiveCamera.lookAt(0, 0, 0); + this.orthographicCamera.lookAt(0, 0, 0); + this.renderer = new WebGLRenderer({ alpha: true, antialias: true }); + this.renderer.setSize(300, 300); + this.renderer.setClearColor(2631720); + const rendererDomElement = this.renderer.domElement; + container.appendChild(rendererDomElement); + this.controls = new OrbitControls( + this.activeCamera, + this.renderer.domElement + ); + this.controls.enableDamping = true; + this.gltfLoader = new GLTFLoader(); + this.objLoader = new OBJLoader(); + this.mtlLoader = new MTLLoader(); + this.fbxLoader = new FBXLoader(); + this.stlLoader = new STLLoader(); + this.clock = new Clock(); + this.setupLights(); + this.gridHelper = new GridHelper(10, 10); + this.gridHelper.position.set(0, 0, 0); + this.scene.add(this.gridHelper); + this.normalMaterial = new MeshNormalMaterial({ + flatShading: false, + side: DoubleSide, + normalScale: new Vector2(1, 1), + transparent: false, + opacity: 1 + }); + this.wireframeMaterial = new MeshBasicMaterial({ + color: 16777215, + wireframe: true, + transparent: false, + opacity: 1 + }); + this.depthMaterial = new MeshDepthMaterial({ + depthPacking: BasicDepthPacking, + side: DoubleSide + }); + this.standardMaterial = this.createSTLMaterial(); + this.animate(); + this.handleResize(); + this.startAnimation(); + } + setFOV(fov2) { + if (this.activeCamera === this.perspectiveCamera) { + this.perspectiveCamera.fov = fov2; + this.perspectiveCamera.updateProjectionMatrix(); + this.renderer.render(this.scene, this.activeCamera); + } + } + getCameraState() { + const currentType = this.getCurrentCameraType(); + return { + position: this.activeCamera.position.clone(), + target: this.controls.target.clone(), + zoom: this.activeCamera instanceof OrthographicCamera ? this.activeCamera.zoom : this.activeCamera.zoom, + cameraType: currentType + }; + } + setCameraState(state) { + if (this.activeCamera !== (state.cameraType === "perspective" ? this.perspectiveCamera : this.orthographicCamera)) { + this.toggleCamera(state.cameraType); + } + this.activeCamera.position.copy(state.position); + this.controls.target.copy(state.target); + if (this.activeCamera instanceof OrthographicCamera) { + this.activeCamera.zoom = state.zoom; + this.activeCamera.updateProjectionMatrix(); + } else if (this.activeCamera instanceof PerspectiveCamera) { + this.activeCamera.zoom = state.zoom; + this.activeCamera.updateProjectionMatrix(); + } + this.controls.update(); + } + setUpDirection(direction) { + if (!this.currentModel) return; + if (!this.originalRotation && this.currentModel.rotation) { + this.originalRotation = this.currentModel.rotation.clone(); + } + this.currentUpDirection = direction; + if (this.originalRotation) { + this.currentModel.rotation.copy(this.originalRotation); + } + switch (direction) { + case "original": + break; + case "-x": + this.currentModel.rotation.z = Math.PI / 2; + break; + case "+x": + this.currentModel.rotation.z = -Math.PI / 2; + break; + case "-y": + this.currentModel.rotation.x = Math.PI; + break; + case "+y": + break; + case "-z": + this.currentModel.rotation.x = Math.PI / 2; + break; + case "+z": + this.currentModel.rotation.x = -Math.PI / 2; + break; + } + this.renderer.render(this.scene, this.activeCamera); + } + setMaterialMode(mode) { + this.materialMode = mode; + if (this.currentModel) { + if (mode === "depth") { + this.renderer.outputColorSpace = LinearSRGBColorSpace; + } else { + this.renderer.outputColorSpace = SRGBColorSpace; + } + this.currentModel.traverse((child) => { + if (child instanceof Mesh) { + switch (mode) { + case "depth": + if (!this.originalMaterials.has(child)) { + this.originalMaterials.set(child, child.material); + } + const depthMat = new MeshDepthMaterial({ + depthPacking: BasicDepthPacking, + side: DoubleSide + }); + depthMat.onBeforeCompile = (shader) => { + shader.uniforms.cameraType = { + value: this.activeCamera instanceof OrthographicCamera ? 1 : 0 + }; + shader.fragmentShader = ` + uniform float cameraType; + ${shader.fragmentShader} + `; + shader.fragmentShader = shader.fragmentShader.replace( + /gl_FragColor\s*=\s*vec4\(\s*vec3\(\s*1.0\s*-\s*fragCoordZ\s*\)\s*,\s*opacity\s*\)\s*;/, + ` + float depth = 1.0 - fragCoordZ; + if (cameraType > 0.5) { + depth = pow(depth, 400.0); + } else { + depth = pow(depth, 0.6); + } + gl_FragColor = vec4(vec3(depth), opacity); + ` + ); + }; + depthMat.customProgramCacheKey = () => { + return this.activeCamera instanceof OrthographicCamera ? "ortho" : "persp"; + }; + child.material = depthMat; + break; + case "normal": + if (!this.originalMaterials.has(child)) { + this.originalMaterials.set(child, child.material); + } + child.material = new MeshNormalMaterial({ + flatShading: false, + side: DoubleSide, + normalScale: new Vector2(1, 1), + transparent: false, + opacity: 1 + }); + child.geometry.computeVertexNormals(); + break; + case "wireframe": + if (!this.originalMaterials.has(child)) { + this.originalMaterials.set(child, child.material); + } + child.material = new MeshBasicMaterial({ + color: 16777215, + wireframe: true, + transparent: false, + opacity: 1 + }); + break; + case "original": + const originalMaterial = this.originalMaterials.get(child); + if (originalMaterial) { + child.material = originalMaterial; + } else { + child.material = this.standardMaterial; + } + break; + } + } + }); + this.renderer.render(this.scene, this.activeCamera); + } + } + setupLights() { + const ambientLight = new AmbientLight(16777215, 0.5); + this.scene.add(ambientLight); + this.lights.push(ambientLight); + const mainLight = new DirectionalLight(16777215, 0.8); + mainLight.position.set(0, 10, 10); + this.scene.add(mainLight); + this.lights.push(mainLight); + const backLight = new DirectionalLight(16777215, 0.5); + backLight.position.set(0, 10, -10); + this.scene.add(backLight); + this.lights.push(backLight); + const leftFillLight = new DirectionalLight(16777215, 0.3); + leftFillLight.position.set(-10, 0, 0); + this.scene.add(leftFillLight); + this.lights.push(leftFillLight); + const rightFillLight = new DirectionalLight(16777215, 0.3); + rightFillLight.position.set(10, 0, 0); + this.scene.add(rightFillLight); + this.lights.push(rightFillLight); + const bottomLight = new DirectionalLight(16777215, 0.2); + bottomLight.position.set(0, -10, 0); + this.scene.add(bottomLight); + this.lights.push(bottomLight); + } + toggleCamera(cameraType) { + const oldCamera = this.activeCamera; + const position = oldCamera.position.clone(); + const rotation = oldCamera.rotation.clone(); + const target = this.controls.target.clone(); + if (!cameraType) { + this.activeCamera = oldCamera === this.perspectiveCamera ? this.orthographicCamera : this.perspectiveCamera; + } else { + this.activeCamera = cameraType === "perspective" ? this.perspectiveCamera : this.orthographicCamera; + if (oldCamera === this.activeCamera) { + return; + } + } + this.activeCamera.position.copy(position); + this.activeCamera.rotation.copy(rotation); + if (this.materialMode === "depth" && oldCamera !== this.activeCamera) { + this.setMaterialMode("depth"); + } + this.controls.object = this.activeCamera; + this.controls.target.copy(target); + this.controls.update(); + this.handleResize(); + } + getCurrentCameraType() { + return this.activeCamera === this.perspectiveCamera ? "perspective" : "orthographic"; + } + toggleGrid(showGrid) { + if (this.gridHelper) { + this.gridHelper.visible = showGrid; + } + } + setLightIntensity(intensity) { + this.lights.forEach((light) => { + if (light instanceof DirectionalLight) { + if (light === this.lights[1]) { + light.intensity = intensity * 0.8; + } else if (light === this.lights[2]) { + light.intensity = intensity * 0.5; + } else if (light === this.lights[5]) { + light.intensity = intensity * 0.2; + } else { + light.intensity = intensity * 0.3; + } + } else if (light instanceof AmbientLight) { + light.intensity = intensity * 0.5; + } + }); + } + startAnimation() { + const animate = /* @__PURE__ */ __name(() => { + this.animationFrameId = requestAnimationFrame(animate); + this.controls.update(); + this.renderer.render(this.scene, this.activeCamera); + }, "animate"); + animate(); + } + clearModel() { + const objectsToRemove = []; + this.scene.traverse((object) => { + const isEnvironmentObject = object === this.gridHelper || this.lights.includes(object) || object === this.perspectiveCamera || object === this.orthographicCamera; + if (!isEnvironmentObject) { + objectsToRemove.push(object); + } + }); + objectsToRemove.forEach((obj) => { + if (obj.parent && obj.parent !== this.scene) { + obj.parent.remove(obj); + } else { + this.scene.remove(obj); + } + if (obj instanceof Mesh) { + obj.geometry?.dispose(); + if (Array.isArray(obj.material)) { + obj.material.forEach((material) => material.dispose()); + } else { + obj.material?.dispose(); + } + } + }); + this.resetScene(); + } + resetScene() { + this.currentModel = null; + this.originalRotation = null; + const defaultDistance = 10; + this.perspectiveCamera.position.set( + defaultDistance, + defaultDistance, + defaultDistance + ); + this.orthographicCamera.position.set( + defaultDistance, + defaultDistance, + defaultDistance + ); + this.perspectiveCamera.lookAt(0, 0, 0); + this.orthographicCamera.lookAt(0, 0, 0); + const frustumSize = 10; + const aspect2 = this.renderer.domElement.width / this.renderer.domElement.height; + this.orthographicCamera.left = -frustumSize * aspect2 / 2; + this.orthographicCamera.right = frustumSize * aspect2 / 2; + this.orthographicCamera.top = frustumSize / 2; + this.orthographicCamera.bottom = -frustumSize / 2; + this.perspectiveCamera.updateProjectionMatrix(); + this.orthographicCamera.updateProjectionMatrix(); + this.controls.target.set(0, 0, 0); + this.controls.update(); + this.renderer.render(this.scene, this.activeCamera); + this.materialMode = "original"; + this.originalMaterials = /* @__PURE__ */ new WeakMap(); + this.renderer.outputColorSpace = SRGBColorSpace; + } + remove() { + if (this.animationFrameId !== null) { + cancelAnimationFrame(this.animationFrameId); + } + this.controls.dispose(); + this.renderer.dispose(); + this.renderer.domElement.remove(); + this.scene.clear(); + } + async loadModelInternal(url, fileExtension) { + let model = null; + switch (fileExtension) { + case "stl": + const geometry = await this.stlLoader.loadAsync(url); + this.originalModel = geometry; + geometry.computeVertexNormals(); + const mesh = new Mesh(geometry, this.standardMaterial); + const group = new Group(); + group.add(mesh); + model = group; + break; + case "fbx": + const fbxModel = await this.fbxLoader.loadAsync(url); + this.originalModel = fbxModel; + model = fbxModel; + fbxModel.traverse((child) => { + if (child instanceof Mesh) { + this.originalMaterials.set(child, child.material); + } + }); + break; + case "obj": + if (this.materialMode === "original") { + const mtlUrl = url.replace(/\.obj([^.]*$)/, ".mtl$1"); + try { + const materials = await this.mtlLoader.loadAsync(mtlUrl); + materials.preload(); + this.objLoader.setMaterials(materials); + } catch (e) { + console.log( + "No MTL file found or error loading it, continuing without materials" + ); + } + } + model = await this.objLoader.loadAsync(url); + model.traverse((child) => { + if (child instanceof Mesh) { + this.originalMaterials.set(child, child.material); + } + }); + break; + case "gltf": + case "glb": + const gltf = await this.gltfLoader.loadAsync(url); + this.originalModel = gltf; + model = gltf.scene; + gltf.scene.traverse((child) => { + if (child instanceof Mesh) { + child.geometry.computeVertexNormals(); + this.originalMaterials.set(child, child.material); + } + }); + break; + } + return model; + } + async loadModel(url, originalFileName) { + try { + this.clearModel(); + let fileExtension; + if (originalFileName) { + fileExtension = originalFileName.split(".").pop()?.toLowerCase(); + } else { + const filename = new URLSearchParams(url.split("?")[1]).get("filename"); + fileExtension = filename?.split(".").pop()?.toLowerCase(); + } + if (!fileExtension) { + useToastStore().addAlert("Could not determine file type"); + return; + } + let model = await this.loadModelInternal(url, fileExtension); + if (model) { + this.currentModel = model; + await this.setupModel(model); + } + } catch (error) { + console.error("Error loading model:", error); + } + } + async setupModel(model) { + const box = new Box3().setFromObject(model); + const size = box.getSize(new Vector3()); + const center = box.getCenter(new Vector3()); + const maxDim = Math.max(size.x, size.y, size.z); + const targetSize = 5; + const scale = targetSize / maxDim; + model.scale.multiplyScalar(scale); + box.setFromObject(model); + box.getCenter(center); + box.getSize(size); + model.position.set(-center.x, -box.min.y, -center.z); + this.scene.add(model); + if (this.materialMode !== "original") { + this.setMaterialMode(this.materialMode); + } + if (this.currentUpDirection !== "original") { + this.setUpDirection(this.currentUpDirection); + } + await this.setupCamera(size); + } + async setupCamera(size) { + const distance = Math.max(size.x, size.z) * 2; + const height = size.y * 2; + this.perspectiveCamera.position.set(distance, height, distance); + this.orthographicCamera.position.set(distance, height, distance); + if (this.activeCamera === this.perspectiveCamera) { + this.perspectiveCamera.lookAt(0, size.y / 2, 0); + this.perspectiveCamera.updateProjectionMatrix(); + } else { + const frustumSize = Math.max(size.x, size.y, size.z) * 2; + const aspect2 = this.renderer.domElement.width / this.renderer.domElement.height; + this.orthographicCamera.left = -frustumSize * aspect2 / 2; + this.orthographicCamera.right = frustumSize * aspect2 / 2; + this.orthographicCamera.top = frustumSize / 2; + this.orthographicCamera.bottom = -frustumSize / 2; + this.orthographicCamera.lookAt(0, size.y / 2, 0); + this.orthographicCamera.updateProjectionMatrix(); + } + this.controls.target.set(0, size.y / 2, 0); + this.controls.update(); + this.renderer.outputColorSpace = SRGBColorSpace; + this.renderer.toneMapping = ACESFilmicToneMapping; + this.renderer.toneMappingExposure = 1; + this.handleResize(); + } + handleResize() { + const parentElement = this.renderer?.domElement?.parentElement; + if (!parentElement) { + console.warn("Parent element not found"); + return; + } + const width = parentElement?.clientWidth; + const height = parentElement?.clientHeight; + if (this.activeCamera === this.perspectiveCamera) { + this.perspectiveCamera.aspect = width / height; + this.perspectiveCamera.updateProjectionMatrix(); + } else { + const frustumSize = 10; + const aspect2 = width / height; + this.orthographicCamera.left = -frustumSize * aspect2 / 2; + this.orthographicCamera.right = frustumSize * aspect2 / 2; + this.orthographicCamera.top = frustumSize / 2; + this.orthographicCamera.bottom = -frustumSize / 2; + this.orthographicCamera.updateProjectionMatrix(); + } + this.renderer.setSize(width, height); + } + animate = /* @__PURE__ */ __name(() => { + requestAnimationFrame(this.animate); + this.controls.update(); + this.renderer.render(this.scene, this.activeCamera); + }, "animate"); + captureScene(width, height) { + return new Promise(async (resolve, reject) => { + try { + const originalWidth = this.renderer.domElement.width; + const originalHeight = this.renderer.domElement.height; + const originalClearColor = this.renderer.getClearColor( + new Color() + ); + const originalClearAlpha = this.renderer.getClearAlpha(); + this.renderer.setSize(width, height); + if (this.activeCamera === this.perspectiveCamera) { + this.perspectiveCamera.aspect = width / height; + this.perspectiveCamera.updateProjectionMatrix(); + } else { + const frustumSize = 10; + const aspect2 = width / height; + this.orthographicCamera.left = -frustumSize * aspect2 / 2; + this.orthographicCamera.right = frustumSize * aspect2 / 2; + this.orthographicCamera.top = frustumSize / 2; + this.orthographicCamera.bottom = -frustumSize / 2; + this.orthographicCamera.updateProjectionMatrix(); + } + this.renderer.render(this.scene, this.activeCamera); + const sceneData = this.renderer.domElement.toDataURL("image/png"); + this.renderer.setClearColor(0, 0); + this.renderer.render(this.scene, this.activeCamera); + const maskData = this.renderer.domElement.toDataURL("image/png"); + this.renderer.setClearColor(originalClearColor, originalClearAlpha); + this.renderer.setSize(originalWidth, originalHeight); + this.handleResize(); + resolve({ scene: sceneData, mask: maskData }); + } catch (error) { + reject(error); + } + }); + } + createSTLMaterial() { + return new MeshStandardMaterial({ + color: 8421504, + metalness: 0.1, + roughness: 0.8, + flatShading: false, + side: DoubleSide + }); + } + setViewPosition(position) { + if (!this.currentModel) { + return; + } + const box = new Box3(); + let center = new Vector3(); + let size = new Vector3(); + if (this.currentModel) { + box.setFromObject(this.currentModel); + box.getCenter(center); + box.getSize(size); + } + const maxDim = Math.max(size.x, size.y, size.z); + const distance = maxDim * 2; + switch (position) { + case "front": + this.activeCamera.position.set(0, 0, distance); + break; + case "top": + this.activeCamera.position.set(0, distance, 0); + break; + case "right": + this.activeCamera.position.set(distance, 0, 0); + break; + case "isometric": + this.activeCamera.position.set(distance, distance, distance); + break; + } + this.activeCamera.lookAt(center); + this.controls.target.copy(center); + this.controls.update(); + } + setBackgroundColor(color) { + this.renderer.setClearColor(new Color(color)); + this.renderer.render(this.scene, this.activeCamera); + } +} +class Load3dAnimation extends Load3d { + static { + __name(this, "Load3dAnimation"); + } + currentAnimation = null; + animationActions = []; + animationClips = []; + selectedAnimationIndex = 0; + isAnimationPlaying = false; + animationSpeed = 1; + constructor(container) { + super(container); + } + async setupModel(model) { + await super.setupModel(model); + if (this.currentAnimation) { + this.currentAnimation.stopAllAction(); + this.animationActions = []; + } + let animations = []; + if (model.animations?.length > 0) { + animations = model.animations; + } else if (this.originalModel && "animations" in this.originalModel) { + animations = this.originalModel.animations; + } + if (animations.length > 0) { + this.animationClips = animations; + if (model.type === "Scene") { + this.currentAnimation = new AnimationMixer(model); + } else { + this.currentAnimation = new AnimationMixer(this.currentModel); + } + if (this.animationClips.length > 0) { + this.updateSelectedAnimation(0); + } + } + } + setAnimationSpeed(speed) { + this.animationSpeed = speed; + this.animationActions.forEach((action) => { + action.setEffectiveTimeScale(speed); + }); + } + updateSelectedAnimation(index) { + if (!this.currentAnimation || !this.animationClips || index >= this.animationClips.length) { + console.warn("Invalid animation update request"); + return; + } + this.animationActions.forEach((action2) => { + action2.stop(); + }); + this.currentAnimation.stopAllAction(); + this.animationActions = []; + this.selectedAnimationIndex = index; + const clip = this.animationClips[index]; + const action = this.currentAnimation.clipAction(clip); + action.setEffectiveTimeScale(this.animationSpeed); + action.reset(); + action.clampWhenFinished = false; + action.loop = LoopRepeat; + if (this.isAnimationPlaying) { + action.play(); + } else { + action.play(); + action.paused = true; + } + this.animationActions = [action]; + } + clearModel() { + if (this.currentAnimation) { + this.animationActions.forEach((action) => { + action.stop(); + }); + this.currentAnimation = null; + } + this.animationActions = []; + this.animationClips = []; + this.selectedAnimationIndex = 0; + this.isAnimationPlaying = false; + this.animationSpeed = 1; + super.clearModel(); + } + getAnimationNames() { + return this.animationClips.map((clip, index) => { + return clip.name || `Animation ${index + 1}`; + }); + } + toggleAnimation(play) { + if (!this.currentAnimation || this.animationActions.length === 0) { + console.warn("No animation to toggle"); + return; + } + this.isAnimationPlaying = play ?? !this.isAnimationPlaying; + this.animationActions.forEach((action) => { + if (this.isAnimationPlaying) { + action.paused = false; + if (action.time === 0 || action.time === action.getClip().duration) { + action.reset(); + } + } else { + action.paused = true; + } + }); + } + animate = /* @__PURE__ */ __name(() => { + requestAnimationFrame(this.animate); + if (this.currentAnimation && this.isAnimationPlaying) { + const delta = this.clock.getDelta(); + this.currentAnimation.update(delta); + } + this.controls.update(); + this.renderer.render(this.scene, this.activeCamera); + }, "animate"); +} +function splitFilePath$1(path) { + const folder_separator = path.lastIndexOf("/"); + if (folder_separator === -1) { + return ["", path]; + } + return [ + path.substring(0, folder_separator), + path.substring(folder_separator + 1) + ]; +} +__name(splitFilePath$1, "splitFilePath$1"); +function getResourceURL$1(subfolder, filename, type = "input") { + const params = [ + "filename=" + encodeURIComponent(filename), + "type=" + type, + "subfolder=" + subfolder, + app.getRandParam().substring(1) + ].join("&"); + return `/view?${params}`; +} +__name(getResourceURL$1, "getResourceURL$1"); +const load3dCSSCLASS = `display: flex; + flex-direction: column; + background: transparent; + flex: 1; + position: relative; + overflow: hidden;`; +const load3dCanvasCSSCLASS = `display: flex; + width: 100% !important; + height: 100% !important;`; +const containerToLoad3D = /* @__PURE__ */ new Map(); +function configureLoad3D(load3d, loadFolder, modelWidget, showGrid, cameraType, view, material, bgColor, lightIntensity, upDirection, fov2, cameraState, postModelUpdateFunc) { + const createModelUpdateHandler = /* @__PURE__ */ __name(() => { + let isFirstLoad = true; + return async (value) => { + if (!value) return; + const filename = value; + const modelUrl = api.apiURL( + getResourceURL$1(...splitFilePath$1(filename), loadFolder) + ); + await load3d.loadModel(modelUrl, filename); + load3d.setMaterialMode( + material.value + ); + load3d.setUpDirection( + upDirection.value + ); + if (postModelUpdateFunc) { + postModelUpdateFunc(load3d); + } + if (isFirstLoad && cameraState && typeof cameraState === "object") { + try { + load3d.setCameraState(cameraState); + } catch (error) { + console.warn("Failed to restore camera state:", error); + } + isFirstLoad = false; + } + }; + }, "createModelUpdateHandler"); + const onModelWidgetUpdate = createModelUpdateHandler(); + if (modelWidget.value) { + onModelWidgetUpdate(modelWidget.value); + } + modelWidget.callback = onModelWidgetUpdate; + load3d.toggleGrid(showGrid.value); + showGrid.callback = (value) => { + load3d.toggleGrid(value); + }; + load3d.toggleCamera(cameraType.value); + cameraType.callback = (value) => { + load3d.toggleCamera(value); + }; + view.callback = (value) => { + load3d.setViewPosition(value); + }; + material.callback = (value) => { + load3d.setMaterialMode(value); + }; + load3d.setMaterialMode(material.value); + load3d.setBackgroundColor(bgColor.value); + bgColor.callback = (value) => { + load3d.setBackgroundColor(value); + }; + load3d.setLightIntensity(lightIntensity.value); + lightIntensity.callback = (value) => { + load3d.setLightIntensity(value); + }; + upDirection.callback = (value) => { + load3d.setUpDirection(value); + }; + load3d.setUpDirection( + upDirection.value + ); + fov2.callback = (value) => { + load3d.setFOV(value); + }; + load3d.setFOV(fov2.value); +} +__name(configureLoad3D, "configureLoad3D"); +app.registerExtension({ + name: "Comfy.Load3D", + getCustomWidgets(app2) { + return { + LOAD_3D(node, inputName) { + let load3dNode = app2.graph._nodes.filter((wi) => wi.type == "Load3D"); + node.addProperty("Camera Info", ""); + const container = document.createElement("div"); + container.id = `comfy-load-3d-${load3dNode.length}`; + container.classList.add("comfy-load-3d"); + const load3d = new Load3d(container); + containerToLoad3D.set(container.id, load3d); + node.onResize = function() { + if (load3d) { + load3d.handleResize(); + } + }; + const origOnRemoved = node.onRemoved; + node.onRemoved = function() { + if (load3d) { + load3d.remove(); + } + containerToLoad3D.delete(container.id); + origOnRemoved?.apply(this, []); + }; + node.onDrawBackground = function() { + load3d.renderer.domElement.hidden = this.flags.collapsed ?? false; + }; + const fileInput = document.createElement("input"); + fileInput.type = "file"; + fileInput.accept = ".gltf,.glb,.obj,.mtl,.fbx,.stl"; + fileInput.style.display = "none"; + fileInput.onchange = async () => { + if (fileInput.files?.length) { + const modelWidget = node.widgets?.find( + (w) => w.name === "model_file" + ); + const uploadPath = await uploadFile$1( + load3d, + fileInput.files[0], + fileInput + ).catch((error) => { + console.error("File upload failed:", error); + useToastStore().addAlert("File upload failed"); + }); + if (uploadPath && modelWidget) { + if (!modelWidget.options?.values?.includes(uploadPath)) { + modelWidget.options?.values?.push(uploadPath); + } + modelWidget.value = uploadPath; + } + } + }; + node.addWidget("button", "upload 3d model", "upload3dmodel", () => { + fileInput.click(); + }); + node.addWidget("button", "clear", "clear", () => { + load3d.clearModel(); + const modelWidget = node.widgets?.find( + (w) => w.name === "model_file" + ); + if (modelWidget) { + modelWidget.value = ""; + } + }); + return { + widget: node.addDOMWidget(inputName, "LOAD_3D", container) + }; + } + }; + }, + init() { + const style = document.createElement("style"); + style.innerText = ` + .comfy-load-3d { + ${load3dCSSCLASS} + } + + .comfy-load-3d canvas { + ${load3dCanvasCSSCLASS} + } + `; + document.head.appendChild(style); + }, + async nodeCreated(node) { + if (node.constructor.comfyClass !== "Load3D") return; + const [oldWidth, oldHeight] = node.size; + node.setSize([Math.max(oldWidth, 300), Math.max(oldHeight, 600)]); + await nextTick(); + const sceneWidget = node.widgets.find((w2) => w2.name === "image"); + const container = sceneWidget.element; + const load3d = containerToLoad3D.get(container.id); + const modelWidget = node.widgets.find( + (w2) => w2.name === "model_file" + ); + const showGrid = node.widgets.find((w2) => w2.name === "show_grid"); + const cameraType = node.widgets.find( + (w2) => w2.name === "camera_type" + ); + const view = node.widgets.find((w2) => w2.name === "view"); + const material = node.widgets.find((w2) => w2.name === "material"); + const bgColor = node.widgets.find((w2) => w2.name === "bg_color"); + const lightIntensity = node.widgets.find( + (w2) => w2.name === "light_intensity" + ); + const upDirection = node.widgets.find( + (w2) => w2.name === "up_direction" + ); + const fov2 = node.widgets.find((w2) => w2.name === "fov"); + let cameraState; + try { + const cameraInfo = node.properties["Camera Info"]; + if (cameraInfo && typeof cameraInfo === "string" && cameraInfo.trim() !== "") { + cameraState = JSON.parse(cameraInfo); + } + } catch (error) { + console.warn("Failed to parse camera state:", error); + cameraState = void 0; + } + configureLoad3D( + load3d, + "input", + modelWidget, + showGrid, + cameraType, + view, + material, + bgColor, + lightIntensity, + upDirection, + fov2, + cameraState + ); + const w = node.widgets.find((w2) => w2.name === "width"); + const h = node.widgets.find((w2) => w2.name === "height"); + sceneWidget.serializeValue = async () => { + node.properties["Camera Info"] = JSON.stringify(load3d.getCameraState()); + const { scene: imageData, mask: maskData } = await load3d.captureScene( + w.value, + h.value + ); + const [data, dataMask] = await Promise.all([ + uploadTempImage(imageData, "scene"), + uploadTempImage(maskData, "scene_mask") + ]); + return { + image: `threed/${data.name} [temp]`, + mask: `threed/${dataMask.name} [temp]` + }; + }; + } +}); +app.registerExtension({ + name: "Comfy.Load3DAnimation", + getCustomWidgets(app2) { + return { + LOAD_3D_ANIMATION(node, inputName) { + let load3dNode = app2.graph._nodes.filter( + (wi) => wi.type == "Load3DAnimation" + ); + node.addProperty("Camera Info", ""); + const container = document.createElement("div"); + container.id = `comfy-load-3d-animation-${load3dNode.length}`; + container.classList.add("comfy-load-3d-animation"); + const load3d = new Load3dAnimation(container); + containerToLoad3D.set(container.id, load3d); + node.onResize = function() { + if (load3d) { + load3d.handleResize(); + } + }; + const origOnRemoved = node.onRemoved; + node.onRemoved = function() { + if (load3d) { + load3d.remove(); + } + containerToLoad3D.delete(container.id); + origOnRemoved?.apply(this, []); + }; + node.onDrawBackground = function() { + load3d.renderer.domElement.hidden = this.flags.collapsed ?? false; + }; + const fileInput = document.createElement("input"); + fileInput.type = "file"; + fileInput.accept = ".fbx,glb,gltf"; + fileInput.style.display = "none"; + fileInput.onchange = async () => { + if (fileInput.files?.length) { + const modelWidget = node.widgets?.find( + (w) => w.name === "model_file" + ); + const uploadPath = await uploadFile$1( + load3d, + fileInput.files[0], + fileInput + ).catch((error) => { + console.error("File upload failed:", error); + useToastStore().addAlert("File upload failed"); + }); + if (uploadPath && modelWidget) { + if (!modelWidget.options?.values?.includes(uploadPath)) { + modelWidget.options?.values?.push(uploadPath); + } + modelWidget.value = uploadPath; + } + } + }; + node.addWidget("button", "upload 3d model", "upload3dmodel", () => { + fileInput.click(); + }); + node.addWidget("button", "clear", "clear", () => { + load3d.clearModel(); + const modelWidget = node.widgets?.find( + (w) => w.name === "model_file" + ); + if (modelWidget) { + modelWidget.value = ""; + } + const animationSelect2 = node.widgets?.find( + (w) => w.name === "animation" + ); + if (animationSelect2) { + animationSelect2.options.values = []; + animationSelect2.value = ""; + } + const speedSelect = node.widgets?.find( + (w) => w.name === "animation_speed" + ); + if (speedSelect) { + speedSelect.value = "1"; + } + }); + node.addWidget( + "button", + "Play/Pause Animation", + "toggle_animation", + () => { + load3d.toggleAnimation(); + } + ); + const animationSelect = node.addWidget( + "combo", + "animation", + "", + () => "", + { + values: [] + } + ); + animationSelect.callback = (value) => { + const names = load3d.getAnimationNames(); + const index = names.indexOf(value); + if (index !== -1) { + const wasPlaying = load3d.isAnimationPlaying; + if (wasPlaying) { + load3d.toggleAnimation(false); + } + load3d.updateSelectedAnimation(index); + if (wasPlaying) { + load3d.toggleAnimation(true); + } + } + }; + return { + widget: node.addDOMWidget(inputName, "LOAD_3D_ANIMATION", container) + }; + } + }; + }, + init() { + const style = document.createElement("style"); + style.innerText = ` + .comfy-load-3d-animation { + ${load3dCSSCLASS} + } + + .comfy-load-3d-animation canvas { + ${load3dCanvasCSSCLASS} + } + `; + document.head.appendChild(style); + }, + async nodeCreated(node) { + if (node.constructor.comfyClass !== "Load3DAnimation") return; + const [oldWidth, oldHeight] = node.size; + node.setSize([Math.max(oldWidth, 300), Math.max(oldHeight, 700)]); + await nextTick(); + const sceneWidget = node.widgets.find((w2) => w2.name === "image"); + const container = sceneWidget.element; + const load3d = containerToLoad3D.get(container.id); + const modelWidget = node.widgets.find( + (w2) => w2.name === "model_file" + ); + const showGrid = node.widgets.find((w2) => w2.name === "show_grid"); + const cameraType = node.widgets.find( + (w2) => w2.name === "camera_type" + ); + const view = node.widgets.find((w2) => w2.name === "view"); + const material = node.widgets.find((w2) => w2.name === "material"); + const bgColor = node.widgets.find((w2) => w2.name === "bg_color"); + const lightIntensity = node.widgets.find( + (w2) => w2.name === "light_intensity" + ); + const upDirection = node.widgets.find( + (w2) => w2.name === "up_direction" + ); + const speedSelect = node.widgets.find( + (w2) => w2.name === "animation_speed" + ); + speedSelect.callback = (value) => { + const load3d2 = containerToLoad3D.get(container.id); + if (load3d2) { + load3d2.setAnimationSpeed(parseFloat(value)); + } + }; + const fov2 = node.widgets.find((w2) => w2.name === "fov"); + let cameraState; + try { + const cameraInfo = node.properties["Camera Info"]; + if (cameraInfo && typeof cameraInfo === "string" && cameraInfo.trim() !== "") { + cameraState = JSON.parse(cameraInfo); + } + } catch (error) { + console.warn("Failed to parse camera state:", error); + cameraState = void 0; + } + configureLoad3D( + load3d, + "input", + modelWidget, + showGrid, + cameraType, + view, + material, + bgColor, + lightIntensity, + upDirection, + fov2, + cameraState, + (load3d2) => { + const animationLoad3d = load3d2; + const names = animationLoad3d.getAnimationNames(); + const animationSelect = node.widgets.find( + (w2) => w2.name === "animation" + ); + animationSelect.options.values = names; + if (names.length) { + animationSelect.value = names[0]; + } + } + ); + const w = node.widgets.find((w2) => w2.name === "width"); + const h = node.widgets.find((w2) => w2.name === "height"); + sceneWidget.serializeValue = async () => { + node.properties["Camera Info"] = JSON.stringify(load3d.getCameraState()); + const { scene: imageData, mask: maskData } = await load3d.captureScene( + w.value, + h.value + ); + const [data, dataMask] = await Promise.all([ + uploadTempImage(imageData, "scene"), + uploadTempImage(maskData, "scene_mask") + ]); + return { + image: `threed/${data.name} [temp]`, + mask: `threed/${dataMask.name} [temp]` + }; + }; + } +}); +app.registerExtension({ + name: "Comfy.Preview3D", + async beforeRegisterNodeDef(nodeType, nodeData) { + if ( + // @ts-expect-error ComfyNode + ["Preview3D"].includes(nodeType.comfyClass) + ) { + nodeData.input.required.image = ["PREVIEW_3D"]; + } + }, + getCustomWidgets(app2) { + return { + PREVIEW_3D(node, inputName) { + let load3dNode = app2.graph._nodes.filter((wi) => wi.type == "Preview3D"); + const container = document.createElement("div"); + container.id = `comfy-preview-3d-${load3dNode.length}`; + container.classList.add("comfy-preview-3d"); + const load3d = new Load3d(container); + containerToLoad3D.set(container.id, load3d); + node.onResize = function() { + if (load3d) { + load3d.handleResize(); + } + }; + const origOnRemoved = node.onRemoved; + node.onRemoved = function() { + if (load3d) { + load3d.remove(); + } + containerToLoad3D.delete(container.id); + origOnRemoved?.apply(this, []); + }; + node.onDrawBackground = function() { + load3d.renderer.domElement.hidden = this.flags.collapsed ?? false; + }; + return { + widget: node.addDOMWidget(inputName, "PREVIEW_3D", container) + }; + } + }; + }, + init() { + const style = document.createElement("style"); + style.innerText = ` + .comfy-preview-3d { + ${load3dCSSCLASS} + } + + .comfy-preview-3d canvas { + ${load3dCanvasCSSCLASS} + } + `; + document.head.appendChild(style); + }, + async nodeCreated(node) { + if (node.constructor.comfyClass !== "Preview3D") return; + const [oldWidth, oldHeight] = node.size; + node.setSize([Math.max(oldWidth, 300), Math.max(oldHeight, 550)]); + await nextTick(); + const sceneWidget = node.widgets.find((w) => w.name === "image"); + const container = sceneWidget.element; + const load3d = containerToLoad3D.get(container.id); + const modelWidget = node.widgets.find( + (w) => w.name === "model_file" + ); + const showGrid = node.widgets.find((w) => w.name === "show_grid"); + const cameraType = node.widgets.find( + (w) => w.name === "camera_type" + ); + const view = node.widgets.find((w) => w.name === "view"); + const material = node.widgets.find((w) => w.name === "material"); + const bgColor = node.widgets.find((w) => w.name === "bg_color"); + const lightIntensity = node.widgets.find( + (w) => w.name === "light_intensity" + ); + const upDirection = node.widgets.find( + (w) => w.name === "up_direction" + ); + const fov2 = node.widgets.find((w) => w.name === "fov"); + const onExecuted = node.onExecuted; + node.onExecuted = function(message) { + onExecuted?.apply(this, arguments); + let filePath = message.model_file[0]; + if (!filePath) { + const msg = "unable to get model file path."; + console.error(msg); + useToastStore().addAlert(msg); + } + modelWidget.value = filePath.replaceAll("\\", "/"); + configureLoad3D( + load3d, + "output", + modelWidget, + showGrid, + cameraType, + view, + material, + bgColor, + lightIntensity, + upDirection, + fov2 + ); + }; + } +}); +function dataURLToBlob(dataURL) { + const parts = dataURL.split(";base64,"); + const contentType = parts[0].split(":")[1]; + const byteString = atob(parts[1]); + const arrayBuffer = new ArrayBuffer(byteString.length); + const uint8Array = new Uint8Array(arrayBuffer); + for (let i = 0; i < byteString.length; i++) { + uint8Array[i] = byteString.charCodeAt(i); + } + return new Blob([arrayBuffer], { type: contentType }); +} +__name(dataURLToBlob, "dataURLToBlob"); +function loadedImageToBlob(image) { + const canvas = document.createElement("canvas"); + canvas.width = image.width; + canvas.height = image.height; + const ctx = canvas.getContext("2d"); + ctx.drawImage(image, 0, 0); + const dataURL = canvas.toDataURL("image/png", 1); + const blob = dataURLToBlob(dataURL); + return blob; +} +__name(loadedImageToBlob, "loadedImageToBlob"); +function loadImage(imagePath) { + return new Promise((resolve, reject) => { + const image = new Image(); + image.onload = function() { + resolve(image); + }; + image.src = imagePath; + }); +} +__name(loadImage, "loadImage"); +async function uploadMask(filepath, formData) { + await api.fetchApi("/upload/mask", { + method: "POST", + body: formData + }).then((response) => { + }).catch((error) => { + console.error("Error:", error); + }); + ComfyApp.clipspace.imgs[ComfyApp.clipspace["selectedIndex"]] = new Image(); + ComfyApp.clipspace.imgs[ComfyApp.clipspace["selectedIndex"]].src = api.apiURL( + "/view?" + new URLSearchParams(filepath).toString() + app.getPreviewFormatParam() + app.getRandParam() + ); + if (ComfyApp.clipspace.images) + ComfyApp.clipspace.images[ComfyApp.clipspace["selectedIndex"]] = filepath; + ClipspaceDialog.invalidatePreview(); +} +__name(uploadMask, "uploadMask"); +function prepare_mask(image, maskCanvas, maskCtx, maskColor) { + maskCtx.drawImage(image, 0, 0, maskCanvas.width, maskCanvas.height); + const maskData = maskCtx.getImageData( + 0, + 0, + maskCanvas.width, + maskCanvas.height + ); + for (let i = 0; i < maskData.data.length; i += 4) { + if (maskData.data[i + 3] == 255) maskData.data[i + 3] = 0; + else maskData.data[i + 3] = 255; + maskData.data[i] = maskColor.r; + maskData.data[i + 1] = maskColor.g; + maskData.data[i + 2] = maskColor.b; + } + maskCtx.globalCompositeOperation = "source-over"; + maskCtx.putImageData(maskData, 0, 0); +} +__name(prepare_mask, "prepare_mask"); +var PointerType = /* @__PURE__ */ ((PointerType2) => { + PointerType2["Arc"] = "arc"; + PointerType2["Rect"] = "rect"; + return PointerType2; +})(PointerType || {}); +var CompositionOperation$1 = /* @__PURE__ */ ((CompositionOperation2) => { + CompositionOperation2["SourceOver"] = "source-over"; + CompositionOperation2["DestinationOut"] = "destination-out"; + return CompositionOperation2; +})(CompositionOperation$1 || {}); +class MaskEditorDialogOld extends ComfyDialog { + static { + __name(this, "MaskEditorDialogOld"); + } + static instance = null; + static mousedown_x = null; + static mousedown_y = null; + brush; + maskCtx; + maskCanvas; + brush_size_slider; + brush_opacity_slider; + colorButton; + saveButton; + zoom_ratio; + pan_x; + pan_y; + imgCanvas; + last_display_style; + is_visible; + image; + handler_registered; + brush_slider_input; + cursorX; + cursorY; + mousedown_pan_x; + mousedown_pan_y; + last_pressure; + pointer_type; + brush_pointer_type_select; + static getInstance() { + if (!MaskEditorDialogOld.instance) { + MaskEditorDialogOld.instance = new MaskEditorDialogOld(); + } + return MaskEditorDialogOld.instance; + } + is_layout_created = false; + constructor() { + super(); + this.element = $el("div.comfy-modal", { parent: document.body }, [ + $el("div.comfy-modal-content", [...this.createButtons()]) + ]); + } + createButtons() { + return []; + } + createButton(name, callback) { + var button = document.createElement("button"); + button.style.pointerEvents = "auto"; + button.innerText = name; + button.addEventListener("click", callback); + return button; + } + createLeftButton(name, callback) { + var button = this.createButton(name, callback); + button.style.cssFloat = "left"; + button.style.marginRight = "4px"; + return button; + } + createRightButton(name, callback) { + var button = this.createButton(name, callback); + button.style.cssFloat = "right"; + button.style.marginLeft = "4px"; + return button; + } + createLeftSlider(self2, name, callback) { + const divElement = document.createElement("div"); + divElement.id = "maskeditor-slider"; + divElement.style.cssFloat = "left"; + divElement.style.fontFamily = "sans-serif"; + divElement.style.marginRight = "4px"; + divElement.style.color = "var(--input-text)"; + divElement.style.backgroundColor = "var(--comfy-input-bg)"; + divElement.style.borderRadius = "8px"; + divElement.style.borderColor = "var(--border-color)"; + divElement.style.borderStyle = "solid"; + divElement.style.fontSize = "15px"; + divElement.style.height = "25px"; + divElement.style.padding = "1px 6px"; + divElement.style.display = "flex"; + divElement.style.position = "relative"; + divElement.style.top = "2px"; + divElement.style.pointerEvents = "auto"; + self2.brush_slider_input = document.createElement("input"); + self2.brush_slider_input.setAttribute("type", "range"); + self2.brush_slider_input.setAttribute("min", "1"); + self2.brush_slider_input.setAttribute("max", "100"); + self2.brush_slider_input.setAttribute("value", "10"); + const labelElement = document.createElement("label"); + labelElement.textContent = name; + divElement.appendChild(labelElement); + divElement.appendChild(self2.brush_slider_input); + self2.brush_slider_input.addEventListener("change", callback); + return divElement; + } + createOpacitySlider(self2, name, callback) { + const divElement = document.createElement("div"); + divElement.id = "maskeditor-opacity-slider"; + divElement.style.cssFloat = "left"; + divElement.style.fontFamily = "sans-serif"; + divElement.style.marginRight = "4px"; + divElement.style.color = "var(--input-text)"; + divElement.style.backgroundColor = "var(--comfy-input-bg)"; + divElement.style.borderRadius = "8px"; + divElement.style.borderColor = "var(--border-color)"; + divElement.style.borderStyle = "solid"; + divElement.style.fontSize = "15px"; + divElement.style.height = "25px"; + divElement.style.padding = "1px 6px"; + divElement.style.display = "flex"; + divElement.style.position = "relative"; + divElement.style.top = "2px"; + divElement.style.pointerEvents = "auto"; + self2.opacity_slider_input = document.createElement("input"); + self2.opacity_slider_input.setAttribute("type", "range"); + self2.opacity_slider_input.setAttribute("min", "0.1"); + self2.opacity_slider_input.setAttribute("max", "1.0"); + self2.opacity_slider_input.setAttribute("step", "0.01"); + self2.opacity_slider_input.setAttribute("value", "0.7"); + const labelElement = document.createElement("label"); + labelElement.textContent = name; + divElement.appendChild(labelElement); + divElement.appendChild(self2.opacity_slider_input); + self2.opacity_slider_input.addEventListener("input", callback); + return divElement; + } + createPointerTypeSelect(self2) { + const divElement = document.createElement("div"); + divElement.id = "maskeditor-pointer-type"; + divElement.style.cssFloat = "left"; + divElement.style.fontFamily = "sans-serif"; + divElement.style.marginRight = "4px"; + divElement.style.color = "var(--input-text)"; + divElement.style.backgroundColor = "var(--comfy-input-bg)"; + divElement.style.borderRadius = "8px"; + divElement.style.borderColor = "var(--border-color)"; + divElement.style.borderStyle = "solid"; + divElement.style.fontSize = "15px"; + divElement.style.height = "25px"; + divElement.style.padding = "1px 6px"; + divElement.style.display = "flex"; + divElement.style.position = "relative"; + divElement.style.top = "2px"; + divElement.style.pointerEvents = "auto"; + const labelElement = document.createElement("label"); + labelElement.textContent = "Pointer Type:"; + const selectElement = document.createElement("select"); + selectElement.style.borderRadius = "0"; + selectElement.style.borderColor = "transparent"; + selectElement.style.borderStyle = "unset"; + selectElement.style.fontSize = "0.9em"; + const optionArc = document.createElement("option"); + optionArc.value = "arc"; + optionArc.text = "Circle"; + optionArc.selected = true; + const optionRect = document.createElement("option"); + optionRect.value = "rect"; + optionRect.text = "Square"; + selectElement.appendChild(optionArc); + selectElement.appendChild(optionRect); + selectElement.addEventListener("change", (event) => { + const target = event.target; + self2.pointer_type = target.value; + this.setBrushBorderRadius(self2); + }); + divElement.appendChild(labelElement); + divElement.appendChild(selectElement); + return divElement; + } + setBrushBorderRadius(self2) { + if (self2.pointer_type === "rect") { + this.brush.style.borderRadius = "0%"; + this.brush.style.MozBorderRadius = "0%"; + this.brush.style.WebkitBorderRadius = "0%"; + } else { + this.brush.style.borderRadius = "50%"; + this.brush.style.MozBorderRadius = "50%"; + this.brush.style.WebkitBorderRadius = "50%"; + } + } + setlayout(imgCanvas, maskCanvas) { + const self2 = this; + self2.pointer_type = "arc"; + var bottom_panel = document.createElement("div"); + bottom_panel.style.position = "absolute"; + bottom_panel.style.bottom = "0px"; + bottom_panel.style.left = "20px"; + bottom_panel.style.right = "20px"; + bottom_panel.style.height = "50px"; + bottom_panel.style.pointerEvents = "none"; + var brush = document.createElement("div"); + brush.id = "brush"; + brush.style.backgroundColor = "transparent"; + brush.style.outline = "1px dashed black"; + brush.style.boxShadow = "0 0 0 1px white"; + brush.style.position = "absolute"; + brush.style.zIndex = "8889"; + brush.style.pointerEvents = "none"; + this.brush = brush; + this.setBrushBorderRadius(self2); + this.element.appendChild(imgCanvas); + this.element.appendChild(maskCanvas); + this.element.appendChild(bottom_panel); + document.body.appendChild(brush); + var clearButton = this.createLeftButton("Clear", () => { + self2.maskCtx.clearRect( + 0, + 0, + self2.maskCanvas.width, + self2.maskCanvas.height + ); + }); + this.brush_size_slider = this.createLeftSlider( + self2, + "Thickness", + (event) => { + self2.brush_size = event.target.value; + self2.updateBrushPreview(self2); + } + ); + this.brush_opacity_slider = this.createOpacitySlider( + self2, + "Opacity", + (event) => { + self2.brush_opacity = event.target.value; + if (self2.brush_color_mode !== "negative") { + self2.maskCanvas.style.opacity = self2.brush_opacity.toString(); + } + } + ); + this.brush_pointer_type_select = this.createPointerTypeSelect(self2); + this.colorButton = this.createLeftButton(this.getColorButtonText(), () => { + if (self2.brush_color_mode === "black") { + self2.brush_color_mode = "white"; + } else if (self2.brush_color_mode === "white") { + self2.brush_color_mode = "negative"; + } else { + self2.brush_color_mode = "black"; + } + self2.updateWhenBrushColorModeChanged(); + }); + var cancelButton = this.createRightButton("Cancel", () => { + document.removeEventListener("keydown", MaskEditorDialogOld.handleKeyDown); + self2.close(); + }); + this.saveButton = this.createRightButton("Save", () => { + document.removeEventListener("keydown", MaskEditorDialogOld.handleKeyDown); + self2.save(); + }); + this.element.appendChild(imgCanvas); + this.element.appendChild(maskCanvas); + this.element.appendChild(bottom_panel); + bottom_panel.appendChild(clearButton); + bottom_panel.appendChild(this.saveButton); + bottom_panel.appendChild(cancelButton); + bottom_panel.appendChild(this.brush_size_slider); + bottom_panel.appendChild(this.brush_opacity_slider); + bottom_panel.appendChild(this.brush_pointer_type_select); + bottom_panel.appendChild(this.colorButton); + imgCanvas.style.position = "absolute"; + maskCanvas.style.position = "absolute"; + imgCanvas.style.top = "200"; + imgCanvas.style.left = "0"; + maskCanvas.style.top = imgCanvas.style.top; + maskCanvas.style.left = imgCanvas.style.left; + const maskCanvasStyle = this.getMaskCanvasStyle(); + maskCanvas.style.mixBlendMode = maskCanvasStyle.mixBlendMode; + maskCanvas.style.opacity = maskCanvasStyle.opacity.toString(); + } + async show() { + this.zoom_ratio = 1; + this.pan_x = 0; + this.pan_y = 0; + if (!this.is_layout_created) { + const imgCanvas = document.createElement("canvas"); + const maskCanvas = document.createElement("canvas"); + imgCanvas.id = "imageCanvas"; + maskCanvas.id = "maskCanvas"; + this.setlayout(imgCanvas, maskCanvas); + this.imgCanvas = imgCanvas; + this.maskCanvas = maskCanvas; + this.maskCtx = maskCanvas.getContext("2d", { willReadFrequently: true }); + this.setEventHandler(maskCanvas); + this.is_layout_created = true; + const self2 = this; + const observer = new MutationObserver(function(mutations) { + mutations.forEach(function(mutation) { + if (mutation.type === "attributes" && mutation.attributeName === "style") { + if (self2.last_display_style && self2.last_display_style != "none" && self2.element.style.display == "none") { + self2.brush.style.display = "none"; + ComfyApp.onClipspaceEditorClosed(); + } + self2.last_display_style = self2.element.style.display; + } + }); + }); + const config = { attributes: true }; + observer.observe(this.element, config); + } + document.addEventListener("keydown", MaskEditorDialogOld.handleKeyDown); + if (ComfyApp.clipspace_return_node) { + this.saveButton.innerText = "Save to node"; + } else { + this.saveButton.innerText = "Save"; + } + this.saveButton.disabled = false; + this.element.style.display = "block"; + this.element.style.width = "85%"; + this.element.style.margin = "0 7.5%"; + this.element.style.height = "100vh"; + this.element.style.top = "50%"; + this.element.style.left = "42%"; + this.element.style.zIndex = "8888"; + await this.setImages(this.imgCanvas); + this.is_visible = true; + } + isOpened() { + return this.element.style.display == "block"; + } + invalidateCanvas(orig_image, mask_image) { + this.imgCanvas.width = orig_image.width; + this.imgCanvas.height = orig_image.height; + this.maskCanvas.width = orig_image.width; + this.maskCanvas.height = orig_image.height; + let imgCtx = this.imgCanvas.getContext("2d", { willReadFrequently: true }); + let maskCtx = this.maskCanvas.getContext("2d", { + willReadFrequently: true + }); + imgCtx.drawImage(orig_image, 0, 0, orig_image.width, orig_image.height); + prepare_mask(mask_image, this.maskCanvas, maskCtx, this.getMaskColor()); + } + async setImages(imgCanvas) { + let self2 = this; + const imgCtx = imgCanvas.getContext("2d", { willReadFrequently: true }); + const maskCtx = this.maskCtx; + const maskCanvas = this.maskCanvas; + imgCtx.clearRect(0, 0, this.imgCanvas.width, this.imgCanvas.height); + maskCtx.clearRect(0, 0, this.maskCanvas.width, this.maskCanvas.height); + const filepath = ComfyApp.clipspace.images; + const alpha_url = new URL( + ComfyApp.clipspace.imgs[ComfyApp.clipspace["selectedIndex"]].src + ); + alpha_url.searchParams.delete("channel"); + alpha_url.searchParams.delete("preview"); + alpha_url.searchParams.set("channel", "a"); + let mask_image = await loadImage(alpha_url); + const rgb_url = new URL( + ComfyApp.clipspace.imgs[ComfyApp.clipspace["selectedIndex"]].src + ); + rgb_url.searchParams.delete("channel"); + rgb_url.searchParams.set("channel", "rgb"); + this.image = new Image(); + this.image.onload = function() { + maskCanvas.width = self2.image.width; + maskCanvas.height = self2.image.height; + self2.invalidateCanvas(self2.image, mask_image); + self2.initializeCanvasPanZoom(); + }; + this.image.src = rgb_url.toString(); + } + initializeCanvasPanZoom() { + let drawWidth = this.image.width; + let drawHeight = this.image.height; + let width = this.element.clientWidth; + let height = this.element.clientHeight; + if (this.image.width > width) { + drawWidth = width; + drawHeight = drawWidth / this.image.width * this.image.height; + } + if (drawHeight > height) { + drawHeight = height; + drawWidth = drawHeight / this.image.height * this.image.width; + } + this.zoom_ratio = drawWidth / this.image.width; + const canvasX = (width - drawWidth) / 2; + const canvasY = (height - drawHeight) / 2; + this.pan_x = canvasX; + this.pan_y = canvasY; + this.invalidatePanZoom(); + } + invalidatePanZoom() { + let raw_width = this.image.width * this.zoom_ratio; + let raw_height = this.image.height * this.zoom_ratio; + if (this.pan_x + raw_width < 10) { + this.pan_x = 10 - raw_width; + } + if (this.pan_y + raw_height < 10) { + this.pan_y = 10 - raw_height; + } + let width = `${raw_width}px`; + let height = `${raw_height}px`; + let left = `${this.pan_x}px`; + let top = `${this.pan_y}px`; + this.maskCanvas.style.width = width; + this.maskCanvas.style.height = height; + this.maskCanvas.style.left = left; + this.maskCanvas.style.top = top; + this.imgCanvas.style.width = width; + this.imgCanvas.style.height = height; + this.imgCanvas.style.left = left; + this.imgCanvas.style.top = top; + } + setEventHandler(maskCanvas) { + const self2 = this; + if (!this.handler_registered) { + maskCanvas.addEventListener("contextmenu", (event) => { + event.preventDefault(); + }); + this.element.addEventListener( + "wheel", + (event) => this.handleWheelEvent(self2, event) + ); + this.element.addEventListener( + "pointermove", + (event) => this.pointMoveEvent(self2, event) + ); + this.element.addEventListener( + "touchmove", + (event) => this.pointMoveEvent(self2, event) + ); + this.element.addEventListener("dragstart", (event) => { + if (event.ctrlKey) { + event.preventDefault(); + } + }); + maskCanvas.addEventListener( + "pointerdown", + (event) => this.handlePointerDown(self2, event) + ); + maskCanvas.addEventListener( + "pointermove", + (event) => this.draw_move(self2, event) + ); + maskCanvas.addEventListener( + "touchmove", + (event) => this.draw_move(self2, event) + ); + maskCanvas.addEventListener("pointerover", (event) => { + this.brush.style.display = "block"; + }); + maskCanvas.addEventListener("pointerleave", (event) => { + this.brush.style.display = "none"; + }); + document.addEventListener( + "pointerup", + MaskEditorDialogOld.handlePointerUp + ); + this.handler_registered = true; + } + } + getMaskCanvasStyle() { + if (this.brush_color_mode === "negative") { + return { + mixBlendMode: "difference", + opacity: "1" + }; + } else { + return { + mixBlendMode: "initial", + opacity: this.brush_opacity + }; + } + } + getMaskColor() { + if (this.brush_color_mode === "black") { + return { r: 0, g: 0, b: 0 }; + } + if (this.brush_color_mode === "white") { + return { r: 255, g: 255, b: 255 }; + } + if (this.brush_color_mode === "negative") { + return { r: 255, g: 255, b: 255 }; + } + return { r: 0, g: 0, b: 0 }; + } + getMaskFillStyle() { + const maskColor = this.getMaskColor(); + return "rgb(" + maskColor.r + "," + maskColor.g + "," + maskColor.b + ")"; + } + getColorButtonText() { + let colorCaption = "unknown"; + if (this.brush_color_mode === "black") { + colorCaption = "black"; + } else if (this.brush_color_mode === "white") { + colorCaption = "white"; + } else if (this.brush_color_mode === "negative") { + colorCaption = "negative"; + } + return "Color: " + colorCaption; + } + updateWhenBrushColorModeChanged() { + this.colorButton.innerText = this.getColorButtonText(); + const maskCanvasStyle = this.getMaskCanvasStyle(); + this.maskCanvas.style.mixBlendMode = maskCanvasStyle.mixBlendMode; + this.maskCanvas.style.opacity = maskCanvasStyle.opacity.toString(); + const maskColor = this.getMaskColor(); + const maskData = this.maskCtx.getImageData( + 0, + 0, + this.maskCanvas.width, + this.maskCanvas.height + ); + for (let i = 0; i < maskData.data.length; i += 4) { + maskData.data[i] = maskColor.r; + maskData.data[i + 1] = maskColor.g; + maskData.data[i + 2] = maskColor.b; + } + this.maskCtx.putImageData(maskData, 0, 0); + } + brush_opacity = 0.7; + brush_size = 10; + brush_color_mode = "black"; + drawing_mode = false; + lastx = -1; + lasty = -1; + lasttime = 0; + static handleKeyDown(event) { + const self2 = MaskEditorDialogOld.instance; + if (event.key === "]") { + self2.brush_size = Math.min(self2.brush_size + 2, 100); + self2.brush_slider_input.value = self2.brush_size; + } else if (event.key === "[") { + self2.brush_size = Math.max(self2.brush_size - 2, 1); + self2.brush_slider_input.value = self2.brush_size; + } else if (event.key === "Enter") { + self2.save(); + } + self2.updateBrushPreview(self2); + } + static handlePointerUp(event) { + event.preventDefault(); + this.mousedown_x = null; + this.mousedown_y = null; + MaskEditorDialogOld.instance.drawing_mode = false; + } + updateBrushPreview(self2) { + const brush = self2.brush; + var centerX = self2.cursorX; + var centerY = self2.cursorY; + brush.style.width = self2.brush_size * 2 * this.zoom_ratio + "px"; + brush.style.height = self2.brush_size * 2 * this.zoom_ratio + "px"; + brush.style.left = centerX - self2.brush_size * this.zoom_ratio + "px"; + brush.style.top = centerY - self2.brush_size * this.zoom_ratio + "px"; + } + handleWheelEvent(self2, event) { + event.preventDefault(); + if (event.ctrlKey) { + if (event.deltaY < 0) { + this.zoom_ratio = Math.min(10, this.zoom_ratio + 0.2); + } else { + this.zoom_ratio = Math.max(0.2, this.zoom_ratio - 0.2); + } + this.invalidatePanZoom(); + } else { + if (event.deltaY < 0) this.brush_size = Math.min(this.brush_size + 2, 100); + else this.brush_size = Math.max(this.brush_size - 2, 1); + this.brush_slider_input.value = this.brush_size.toString(); + this.updateBrushPreview(this); + } + } + pointMoveEvent(self2, event) { + this.cursorX = event.pageX; + this.cursorY = event.pageY; + self2.updateBrushPreview(self2); + if (event.ctrlKey) { + event.preventDefault(); + self2.pan_move(self2, event); + } + let left_button_down = window.TouchEvent && event instanceof TouchEvent || event.buttons == 1; + if (event.shiftKey && left_button_down) { + self2.drawing_mode = false; + const y = event.clientY; + let delta = (self2.zoom_lasty - y) * 5e-3; + self2.zoom_ratio = Math.max( + Math.min(10, self2.last_zoom_ratio - delta), + 0.2 + ); + this.invalidatePanZoom(); + return; + } + } + pan_move(self2, event) { + if (event.buttons == 1) { + if (MaskEditorDialogOld.mousedown_x) { + let deltaX = MaskEditorDialogOld.mousedown_x - event.clientX; + let deltaY = MaskEditorDialogOld.mousedown_y - event.clientY; + self2.pan_x = this.mousedown_pan_x - deltaX; + self2.pan_y = this.mousedown_pan_y - deltaY; + self2.invalidatePanZoom(); + } + } + } + draw_move(self2, event) { + if (event.ctrlKey || event.shiftKey) { + return; + } + event.preventDefault(); + this.cursorX = event.pageX; + this.cursorY = event.pageY; + self2.updateBrushPreview(self2); + let left_button_down = window.TouchEvent && event instanceof TouchEvent || event.buttons == 1; + let right_button_down = [2, 5, 32].includes(event.buttons); + if (!event.altKey && left_button_down) { + var diff = performance.now() - self2.lasttime; + const maskRect = self2.maskCanvas.getBoundingClientRect(); + var x = event.offsetX; + var y = event.offsetY; + if (event.offsetX == null) { + x = event.targetTouches[0].clientX - maskRect.left; + } + if (event.offsetY == null) { + y = event.targetTouches[0].clientY - maskRect.top; + } + x /= self2.zoom_ratio; + y /= self2.zoom_ratio; + var brush_size = this.brush_size; + if (event instanceof PointerEvent && event.pointerType == "pen") { + brush_size *= event.pressure; + this.last_pressure = event.pressure; + } else if (window.TouchEvent && event instanceof TouchEvent && diff < 20) { + brush_size *= this.last_pressure; + } else { + brush_size = this.brush_size; + } + if (diff > 20 && !this.drawing_mode) + requestAnimationFrame(() => { + self2.init_shape( + self2, + "source-over" + /* SourceOver */ + ); + self2.draw_shape(self2, x, y, brush_size); + self2.lastx = x; + self2.lasty = y; + }); + else + requestAnimationFrame(() => { + self2.init_shape( + self2, + "source-over" + /* SourceOver */ + ); + var dx = x - self2.lastx; + var dy = y - self2.lasty; + var distance = Math.sqrt(dx * dx + dy * dy); + var directionX = dx / distance; + var directionY = dy / distance; + for (var i = 0; i < distance; i += 5) { + var px2 = self2.lastx + directionX * i; + var py2 = self2.lasty + directionY * i; + self2.draw_shape(self2, px2, py2, brush_size); + } + self2.lastx = x; + self2.lasty = y; + }); + self2.lasttime = performance.now(); + } else if (event.altKey && left_button_down || right_button_down) { + const maskRect = self2.maskCanvas.getBoundingClientRect(); + const x2 = (event.offsetX || event.targetTouches[0].clientX - maskRect.left) / self2.zoom_ratio; + const y2 = (event.offsetY || event.targetTouches[0].clientY - maskRect.top) / self2.zoom_ratio; + var brush_size = this.brush_size; + if (event instanceof PointerEvent && event.pointerType == "pen") { + brush_size *= event.pressure; + this.last_pressure = event.pressure; + } else if (window.TouchEvent && event instanceof TouchEvent && diff < 20) { + brush_size *= this.last_pressure; + } else { + brush_size = this.brush_size; + } + if (diff > 20 && !this.drawing_mode) + requestAnimationFrame(() => { + self2.init_shape( + self2, + "destination-out" + /* DestinationOut */ + ); + self2.draw_shape(self2, x2, y2, brush_size); + self2.lastx = x2; + self2.lasty = y2; + }); + else + requestAnimationFrame(() => { + self2.init_shape( + self2, + "destination-out" + /* DestinationOut */ + ); + var dx = x2 - self2.lastx; + var dy = y2 - self2.lasty; + var distance = Math.sqrt(dx * dx + dy * dy); + var directionX = dx / distance; + var directionY = dy / distance; + for (var i = 0; i < distance; i += 5) { + var px2 = self2.lastx + directionX * i; + var py2 = self2.lasty + directionY * i; + self2.draw_shape(self2, px2, py2, brush_size); + } + self2.lastx = x2; + self2.lasty = y2; + }); + self2.lasttime = performance.now(); + } + } + handlePointerDown(self2, event) { + if (event.ctrlKey) { + if (event.buttons == 1) { + MaskEditorDialogOld.mousedown_x = event.clientX; + MaskEditorDialogOld.mousedown_y = event.clientY; + this.mousedown_pan_x = this.pan_x; + this.mousedown_pan_y = this.pan_y; + } + return; + } + var brush_size = this.brush_size; + if (event instanceof PointerEvent && event.pointerType == "pen") { + brush_size *= event.pressure; + this.last_pressure = event.pressure; + } + if ([0, 2, 5].includes(event.button)) { + self2.drawing_mode = true; + event.preventDefault(); + if (event.shiftKey) { + self2.zoom_lasty = event.clientY; + self2.last_zoom_ratio = self2.zoom_ratio; + return; + } + const maskRect = self2.maskCanvas.getBoundingClientRect(); + const x = (event.offsetX || event.targetTouches[0].clientX - maskRect.left) / self2.zoom_ratio; + const y = (event.offsetY || event.targetTouches[0].clientY - maskRect.top) / self2.zoom_ratio; + if (!event.altKey && event.button == 0) { + self2.init_shape( + self2, + "source-over" + /* SourceOver */ + ); + } else { + self2.init_shape( + self2, + "destination-out" + /* DestinationOut */ + ); + } + self2.draw_shape(self2, x, y, brush_size); + self2.lastx = x; + self2.lasty = y; + self2.lasttime = performance.now(); + } + } + init_shape(self2, compositionOperation) { + self2.maskCtx.beginPath(); + if (compositionOperation == "source-over") { + self2.maskCtx.fillStyle = this.getMaskFillStyle(); + self2.maskCtx.globalCompositeOperation = "source-over"; + } else if (compositionOperation == "destination-out") { + self2.maskCtx.globalCompositeOperation = "destination-out"; + } + } + draw_shape(self2, x, y, brush_size) { + if (self2.pointer_type === "rect") { + self2.maskCtx.rect( + x - brush_size, + y - brush_size, + brush_size * 2, + brush_size * 2 + ); + } else { + self2.maskCtx.arc(x, y, brush_size, 0, Math.PI * 2, false); + } + self2.maskCtx.fill(); + } + async save() { + const backupCanvas = document.createElement("canvas"); + const backupCtx = backupCanvas.getContext("2d", { + willReadFrequently: true + }); + backupCanvas.width = this.image.width; + backupCanvas.height = this.image.height; + backupCtx.clearRect(0, 0, backupCanvas.width, backupCanvas.height); + backupCtx.drawImage( + this.maskCanvas, + 0, + 0, + this.maskCanvas.width, + this.maskCanvas.height, + 0, + 0, + backupCanvas.width, + backupCanvas.height + ); + const backupData = backupCtx.getImageData( + 0, + 0, + backupCanvas.width, + backupCanvas.height + ); + for (let i = 0; i < backupData.data.length; i += 4) { + if (backupData.data[i + 3] == 255) backupData.data[i + 3] = 0; + else backupData.data[i + 3] = 255; + backupData.data[i] = 0; + backupData.data[i + 1] = 0; + backupData.data[i + 2] = 0; + } + backupCtx.globalCompositeOperation = "source-over"; + backupCtx.putImageData(backupData, 0, 0); + const formData = new FormData(); + const filename = "clipspace-mask-" + performance.now() + ".png"; + const item = { + filename, + subfolder: "clipspace", + type: "input" + }; + if (ComfyApp.clipspace.images) ComfyApp.clipspace.images[0] = item; + if (ComfyApp.clipspace.widgets) { + const index = ComfyApp.clipspace.widgets.findIndex( + (obj) => obj.name === "image" + ); + if (index >= 0) ComfyApp.clipspace.widgets[index].value = item; + } + const dataURL = backupCanvas.toDataURL(); + const blob = dataURLToBlob(dataURL); + let original_url = new URL(this.image.src); + const original_ref = { + filename: original_url.searchParams.get("filename") + }; + let original_subfolder = original_url.searchParams.get("subfolder"); + if (original_subfolder) original_ref.subfolder = original_subfolder; + let original_type = original_url.searchParams.get("type"); + if (original_type) original_ref.type = original_type; + formData.append("image", blob, filename); + formData.append("original_ref", JSON.stringify(original_ref)); + formData.append("type", "input"); + formData.append("subfolder", "clipspace"); + this.saveButton.innerText = "Saving..."; + this.saveButton.disabled = true; + await uploadMask(item, formData); + ComfyApp.onClipspaceEditorSave(); + this.close(); + } +} +window.comfyAPI = window.comfyAPI || {}; +window.comfyAPI.maskEditorOld = window.comfyAPI.maskEditorOld || {}; +window.comfyAPI.maskEditorOld.MaskEditorDialogOld = MaskEditorDialogOld; +var styles = ` + #maskEditorContainer { + display: fixed; + } + #maskEditor_brush { + position: absolute; + backgroundColor: transparent; + z-index: 8889; + pointer-events: none; + border-radius: 50%; + overflow: visible; + outline: 1px dashed black; + box-shadow: 0 0 0 1px white; + } + #maskEditor_brushPreviewGradient { + position: absolute; + width: 100%; + height: 100%; + border-radius: 50%; + display: none; + } + #maskEditor { + display: block; + width: 100%; + height: 100vh; + left: 0; + z-index: 8888; + position: fixed; + background: rgba(50,50,50,0.75); + backdrop-filter: blur(10px); + overflow: hidden; + user-select: none; + } + #maskEditor_sidePanelContainer { + height: 100%; + width: 220px; + z-index: 8888; + display: flex; + flex-direction: column; + } + #maskEditor_sidePanel { + background: var(--comfy-menu-bg); + height: 100%; + display: flex; + align-items: center; + overflow-y: hidden; + width: 220px; + } + #maskEditor_sidePanelShortcuts { + display: flex; + flex-direction: row; + width: 200px; + margin-top: 10px; + gap: 10px; + justify-content: center; + } + .maskEditor_sidePanelIconButton { + width: 40px; + height: 40px; + pointer-events: auto; + display: flex; + justify-content: center; + align-items: center; + transition: background-color 0.1s; + } + .maskEditor_sidePanelIconButton:hover { + background-color: rgba(0, 0, 0, 0.2); + } + #maskEditor_sidePanelBrushSettings { + display: flex; + flex-direction: column; + gap: 10px; + width: 200px; + padding: 10px; + } + .maskEditor_sidePanelTitle { + text-align: center; + font-size: 15px; + font-family: sans-serif; + color: var(--descrip-text); + margin-top: 10px; + } + #maskEditor_sidePanelBrushShapeContainer { + display: flex; + width: 180px; + height: 50px; + border: 1px solid var(--border-color); + pointer-events: auto; + background: rgba(0, 0, 0, 0.2); + } + #maskEditor_sidePanelBrushShapeCircle { + width: 35px; + height: 35px; + border-radius: 50%; + border: 1px solid var(--border-color); + pointer-events: auto; + transition: background 0.1s; + margin-left: 7.5px; + } + .maskEditor_sidePanelBrushRange { + width: 180px; + -webkit-appearance: none; + appearance: none; + background: transparent; + cursor: pointer; + } + .maskEditor_sidePanelBrushRange::-webkit-slider-thumb { + height: 20px; + width: 20px; + border-radius: 50%; + cursor: grab; + margin-top: -8px; + background: var(--p-surface-700); + border: 1px solid var(--border-color); + } + .maskEditor_sidePanelBrushRange::-moz-range-thumb { + height: 20px; + width: 20px; + border-radius: 50%; + cursor: grab; + background: var(--p-surface-800); + border: 1px solid var(--border-color); + } + .maskEditor_sidePanelBrushRange::-webkit-slider-runnable-track { + background: var(--p-surface-700); + height: 3px; + } + .maskEditor_sidePanelBrushRange::-moz-range-track { + background: var(--p-surface-700); + height: 3px; + } + + #maskEditor_sidePanelBrushShapeSquare { + width: 35px; + height: 35px; + margin: 5px; + border: 1px solid var(--border-color); + pointer-events: auto; + transition: background 0.1s; + } + + .maskEditor_brushShape_dark { + background: transparent; + } + + .maskEditor_brushShape_dark:hover { + background: var(--p-surface-900); + } + + .maskEditor_brushShape_light { + background: transparent; + } + + .maskEditor_brushShape_light:hover { + background: var(--comfy-menu-bg); + } + + #maskEditor_sidePanelImageLayerSettings { + display: flex; + flex-direction: column; + gap: 10px; + width: 200px; + align-items: center; + } + .maskEditor_sidePanelLayer { + display: flex; + width: 200px; + height: 50px; + } + .maskEditor_sidePanelLayerVisibilityContainer { + width: 50px; + height: 50px; + border-radius: 8px; + display: flex; + justify-content: center; + align-items: center; + } + .maskEditor_sidePanelVisibilityToggle { + width: 12px; + height: 12px; + border-radius: 50%; + pointer-events: auto; + } + .maskEditor_sidePanelLayerIconContainer { + width: 60px; + height: 50px; + border-radius: 8px; + display: flex; + justify-content: center; + align-items: center; + fill: var(--input-text); + } + .maskEditor_sidePanelLayerIconContainer svg { + width: 30px; + height: 30px; + } + #maskEditor_sidePanelMaskLayerBlendingContainer { + width: 80px; + height: 50px; + border-radius: 8px; + display: flex; + justify-content: center; + align-items: center; + } + #maskEditor_sidePanelMaskLayerBlendingSelect { + width: 80px; + height: 30px; + border: 1px solid var(--border-color); + background-color: rgba(0, 0, 0, 0.2); + color: var(--input-text); + font-family: sans-serif; + font-size: 15px; + pointer-events: auto; + transition: background-color border 0.1s; + } + #maskEditor_sidePanelClearCanvasButton:hover { + background-color: var(--p-overlaybadge-outline-color); + border: none; + } + #maskEditor_sidePanelClearCanvasButton { + width: 180px; + height: 30px; + border: none; + background: rgba(0, 0, 0, 0.2); + border: 1px solid var(--border-color); + color: var(--input-text); + font-family: sans-serif; + font-size: 15px; + pointer-events: auto; + transition: background-color 0.1s; + } + #maskEditor_sidePanelClearCanvasButton:hover { + background-color: var(--p-overlaybadge-outline-color); + } + #maskEditor_sidePanelHorizontalButtonContainer { + display: flex; + gap: 10px; + height: 40px; + } + .maskEditor_sidePanelBigButton { + width: 85px; + height: 30px; + border: none; + background: rgba(0, 0, 0, 0.2); + border: 1px solid var(--border-color); + color: var(--input-text); + font-family: sans-serif; + font-size: 15px; + pointer-events: auto; + transition: background-color border 0.1s; + } + .maskEditor_sidePanelBigButton:hover { + background-color: var(--p-overlaybadge-outline-color); + border: none; + } + #maskEditor_toolPanel { + height: 100%; + width: var(--sidebar-width); + z-index: 8888; + background: var(--comfy-menu-bg); + display: flex; + flex-direction: column; + } + .maskEditor_toolPanelContainer { + width: var(--sidebar-width); + height: var(--sidebar-width); + display: flex; + justify-content: center; + align-items: center; + position: relative; + transition: background-color 0.2s; + } + .maskEditor_toolPanelContainerSelected svg { + fill: var(--p-button-text-primary-color) !important; + } + .maskEditor_toolPanelContainerSelected .maskEditor_toolPanelIndicator { + display: block; + } + .maskEditor_toolPanelContainer svg { + width: 75%; + aspect-ratio: 1/1; + fill: var(--p-button-text-secondary-color); + } + + .maskEditor_toolPanelContainerDark:hover { + background-color: var(--p-surface-800); + } + + .maskEditor_toolPanelContainerLight:hover { + background-color: var(--p-surface-300); + } + + .maskEditor_toolPanelIndicator { + display: none; + height: 100%; + width: 4px; + position: absolute; + left: 0; + background: var(--p-button-text-primary-color); + } + #maskEditor_sidePanelPaintBucketSettings { + display: flex; + flex-direction: column; + gap: 10px; + width: 200px; + padding: 10px; + } + #canvasBackground { + background: white; + width: 100%; + height: 100%; + } + #maskEditor_sidePanelButtonsContainer { + display: flex; + flex-direction: column; + gap: 10px; + margin-top: 10px; + } + .maskEditor_sidePanelSeparator { + width: 200px; + height: 2px; + background: var(--border-color); + margin-top: 5px; + margin-bottom: 5px; + } + #maskEditor_pointerZone { + width: calc(100% - var(--sidebar-width) - 220px); + height: 100%; + } + #maskEditor_uiContainer { + width: 100%; + height: 100%; + position: absolute; + z-index: 8888; + display: flex; + flex-direction: column; + } + #maskEditorCanvasContainer { + position: absolute; + width: 1000px; + height: 667px; + left: 359px; + top: 280px; + } + #imageCanvas { + width: 100%; + height: 100%; + } + #maskCanvas { + width: 100%; + height: 100%; + } + #maskEditor_uiHorizontalContainer { + width: 100%; + height: 100%; + display: flex; + } + #maskEditor_topBar { + display: flex; + height: 44px; + align-items: center; + background: var(--comfy-menu-bg); + } + #maskEditor_topBarTitle { + margin: 0; + margin-left: 0.5rem; + margin-right: 0.5rem; + font-size: 1.2em; + } + #maskEditor_topBarButtonContainer { + display: flex; + gap: 10px; + margin-right: 0.5rem; + position: absolute; + right: 0; + width: 200px; + } + #maskEditor_topBarShortcutsContainer { + display: flex; + gap: 10px; + margin-left: 5px; + } + + .maskEditor_topPanelIconButton_dark { + width: 50px; + height: 30px; + pointer-events: auto; + display: flex; + justify-content: center; + align-items: center; + transition: background-color 0.1s; + background: var(--p-surface-800); + border: 1px solid var(--p-form-field-border-color); + border-radius: 10px; + } + + .maskEditor_topPanelIconButton_dark:hover { + background-color: var(--p-surface-900); + } + + .maskEditor_topPanelIconButton_dark svg { + width: 25px; + height: 25px; + pointer-events: none; + fill: var(--input-text); + } + + .maskEditor_topPanelIconButton_light { + width: 50px; + height: 30px; + pointer-events: auto; + display: flex; + justify-content: center; + align-items: center; + transition: background-color 0.1s; + background: var(--comfy-menu-bg); + border: 1px solid var(--p-form-field-border-color); + border-radius: 10px; + } + + .maskEditor_topPanelIconButton_light:hover { + background-color: var(--p-surface-300); + } + + .maskEditor_topPanelIconButton_light svg { + width: 25px; + height: 25px; + pointer-events: none; + fill: var(--input-text); + } + + .maskEditor_topPanelButton_dark { + height: 30px; + background: var(--p-surface-800); + border: 1px solid var(--p-form-field-border-color); + border-radius: 10px; + color: var(--input-text); + font-family: sans-serif; + pointer-events: auto; + transition: 0.1s; + width: 60px; + } + + .maskEditor_topPanelButton_dark:hover { + background-color: var(--p-surface-900); + } + + .maskEditor_topPanelButton_light { + height: 30px; + background: var(--comfy-menu-bg); + border: 1px solid var(--p-form-field-border-color); + border-radius: 10px; + color: var(--input-text); + font-family: sans-serif; + pointer-events: auto; + transition: 0.1s; + width: 60px; + } + + .maskEditor_topPanelButton_light:hover { + background-color: var(--p-surface-300); + } + + + #maskEditor_sidePanelColorSelectSettings { + flex-direction: column; + } + + .maskEditor_sidePanel_paintBucket_Container { + width: 180px; + display: flex; + flex-direction: column; + position: relative; + } + + .maskEditor_sidePanel_colorSelect_Container { + display: flex; + width: 180px; + align-items: center; + gap: 5px; + height: 30px; + } + + #maskEditor_sidePanelVisibilityToggle { + position: absolute; + right: 0; + } + + #maskEditor_sidePanelColorSelectMethodSelect { + position: absolute; + right: 0; + height: 30px; + border-radius: 0; + border: 1px solid var(--border-color); + background: rgba(0,0,0,0.2); + } + + #maskEditor_sidePanelVisibilityToggle { + position: absolute; + right: 0; + } + + .maskEditor_sidePanel_colorSelect_tolerance_container { + display: flex; + flex-direction: column; + gap: 10px; + margin-bottom: 10px; + } + + .maskEditor_sidePanelContainerColumn { + display: flex; + flex-direction: column; + gap: 12px; + } + + .maskEditor_sidePanelContainerRow { + display: flex; + flex-direction: row; + gap: 10px; + align-items: center; + min-height: 24px; + position: relative; + } + + .maskEditor_accent_bg_dark { + background: var(--p-surface-800); + } + + .maskEditor_accent_bg_very_dark { + background: var(--p-surface-900); + } + + .maskEditor_accent_bg_light { + background: var(--p-surface-300); + } + + .maskEditor_accent_bg_very_light { + background: var(--comfy-menu-bg); + } + + #maskEditor_paintBucketSettings { + display: none; + } + + #maskEditor_colorSelectSettings { + display: none; + } + + .maskEditor_sidePanelToggleContainer { + cursor: pointer; + display: inline-block; + position: absolute; + right: 0; + } + + .maskEditor_toggle_bg_dark { + background: var(--p-surface-700); + } + + .maskEditor_toggle_bg_light { + background: var(--p-surface-300); + } + + .maskEditor_sidePanelToggleSwitch { + display: inline-block; + border-radius: 16px; + width: 40px; + height: 24px; + position: relative; + vertical-align: middle; + transition: background 0.25s; + } + .maskEditor_sidePanelToggleSwitch:before, .maskEditor_sidePanelToggleSwitch:after { + content: ""; + } + .maskEditor_sidePanelToggleSwitch:before { + display: block; + background: linear-gradient(to bottom, #fff 0%, #eee 100%); + border-radius: 50%; + width: 16px; + height: 16px; + position: absolute; + top: 4px; + left: 4px; + transition: ease 0.2s; + } + .maskEditor_sidePanelToggleContainer:hover .maskEditor_sidePanelToggleSwitch:before { + background: linear-gradient(to bottom, #fff 0%, #fff 100%); + } + .maskEditor_sidePanelToggleCheckbox:checked + .maskEditor_sidePanelToggleSwitch { + background: var(--p-button-text-primary-color); + } + .maskEditor_sidePanelToggleCheckbox:checked + .maskEditor_toggle_bg_dark:before { + background: var(--p-surface-900); + } + .maskEditor_sidePanelToggleCheckbox:checked + .maskEditor_toggle_bg_light:before { + background: var(--comfy-menu-bg); + } + .maskEditor_sidePanelToggleCheckbox:checked + .maskEditor_sidePanelToggleSwitch:before { + left: 20px; + } + + .maskEditor_sidePanelToggleCheckbox { + position: absolute; + visibility: hidden; + } + + .maskEditor_sidePanelDropdown_dark { + border: 1px solid var(--p-form-field-border-color); + background: var(--p-surface-900); + height: 24px; + padding-left: 5px; + padding-right: 5px; + border-radius: 6px; + transition: background 0.1s; + } + + .maskEditor_sidePanelDropdown_dark option { + background: var(--p-surface-900); + } + + .maskEditor_sidePanelDropdown_dark:focus { + outline: 1px solid var(--p-button-text-primary-color); + } + + .maskEditor_sidePanelDropdown_dark option:hover { + background: white; + } + .maskEditor_sidePanelDropdown_dark option:active { + background: var(--p-highlight-background); + } + + .maskEditor_sidePanelDropdown_light { + border: 1px solid var(--p-form-field-border-color); + background: var(--comfy-menu-bg); + height: 24px; + padding-left: 5px; + padding-right: 5px; + border-radius: 6px; + transition: background 0.1s; + } + + .maskEditor_sidePanelDropdown_light option { + background: var(--comfy-menu-bg); + } + + .maskEditor_sidePanelDropdown_light:focus { + outline: 1px solid var(--p-surface-300); + } + + .maskEditor_sidePanelDropdown_light option:hover { + background: white; + } + .maskEditor_sidePanelDropdown_light option:active { + background: var(--p-surface-300); + } + + .maskEditor_layerRow { + height: 50px; + width: 200px; + border-radius: 10px; + } + + .maskEditor_sidePanelLayerPreviewContainer { + width: 40px; + height: 30px; + } + + .maskEditor_sidePanelLayerPreviewContainer > svg{ + width: 100%; + height: 100%; + object-fit: contain; + fill: var(--p-surface-100); + } + + #maskEditor_sidePanelImageLayerImage { + width: 100%; + height: 100%; + object-fit: contain; + } + + .maskEditor_sidePanelSubTitle { + text-align: left; + font-size: 12px; + font-family: sans-serif; + color: var(--descrip-text); + } + + .maskEditor_containerDropdown { + position: absolute; + right: 0; + } + + .maskEditor_sidePanelLayerCheckbox { + margin-left: 15px; + } + + .maskEditor_toolPanelZoomIndicator { + width: var(--sidebar-width); + height: var(--sidebar-width); + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 5px; + color: var(--p-button-text-secondary-color); + position: absolute; + bottom: 0; + transition: background-color 0.2s; + } + + #maskEditor_toolPanelDimensionsText { + font-size: 12px; + } + + #maskEditor_topBarSaveButton { + background: var(--p-primary-color) !important; + color: var(--p-button-primary-color) !important; + } + + #maskEditor_topBarSaveButton:hover { + background: var(--p-primary-hover-color) !important; + } + +`; +var styleSheet = document.createElement("style"); +styleSheet.type = "text/css"; +styleSheet.innerText = styles; +document.head.appendChild(styleSheet); +var BrushShape = /* @__PURE__ */ ((BrushShape2) => { + BrushShape2["Arc"] = "arc"; + BrushShape2["Rect"] = "rect"; + return BrushShape2; +})(BrushShape || {}); +var Tools = /* @__PURE__ */ ((Tools2) => { + Tools2["Pen"] = "pen"; + Tools2["Eraser"] = "eraser"; + Tools2["PaintBucket"] = "paintBucket"; + Tools2["ColorSelect"] = "colorSelect"; + return Tools2; +})(Tools || {}); +var CompositionOperation = /* @__PURE__ */ ((CompositionOperation2) => { + CompositionOperation2["SourceOver"] = "source-over"; + CompositionOperation2["DestinationOut"] = "destination-out"; + return CompositionOperation2; +})(CompositionOperation || {}); +var MaskBlendMode = /* @__PURE__ */ ((MaskBlendMode2) => { + MaskBlendMode2["Black"] = "black"; + MaskBlendMode2["White"] = "white"; + MaskBlendMode2["Negative"] = "negative"; + return MaskBlendMode2; +})(MaskBlendMode || {}); +var ColorComparisonMethod = /* @__PURE__ */ ((ColorComparisonMethod2) => { + ColorComparisonMethod2["Simple"] = "simple"; + ColorComparisonMethod2["HSL"] = "hsl"; + ColorComparisonMethod2["LAB"] = "lab"; + return ColorComparisonMethod2; +})(ColorComparisonMethod || {}); +class MaskEditorDialog extends ComfyDialog { + static { + __name(this, "MaskEditorDialog"); + } + static instance = null; + //new + uiManager; + toolManager; + panAndZoomManager; + brushTool; + paintBucketTool; + colorSelectTool; + canvasHistory; + messageBroker; + keyboardManager; + rootElement; + imageURL; + isLayoutCreated = false; + isOpen = false; + //variables needed? + last_display_style = null; + constructor() { + super(); + this.rootElement = $el( + "div.maskEditor_hidden", + { parent: document.body }, + [] + ); + this.element = this.rootElement; + } + static getInstance() { + if (!ComfyApp.clipspace || !ComfyApp.clipspace.imgs) { + throw new Error("No clipspace images found"); + } + const currentSrc = ComfyApp.clipspace.imgs[ComfyApp.clipspace["selectedIndex"]].src; + if (!MaskEditorDialog.instance || currentSrc !== MaskEditorDialog.instance.imageURL) { + MaskEditorDialog.instance = new MaskEditorDialog(); + } + return MaskEditorDialog.instance; + } + async show() { + this.cleanup(); + if (!this.isLayoutCreated) { + this.messageBroker = new MessageBroker(); + this.canvasHistory = new CanvasHistory(this, 20); + this.paintBucketTool = new PaintBucketTool(this); + this.brushTool = new BrushTool(this); + this.panAndZoomManager = new PanAndZoomManager(this); + this.toolManager = new ToolManager(this); + this.keyboardManager = new KeyboardManager(this); + this.uiManager = new UIManager(this.rootElement, this); + this.colorSelectTool = new ColorSelectTool(this); + const self2 = this; + const observer = new MutationObserver(function(mutations) { + mutations.forEach(function(mutation) { + if (mutation.type === "attributes" && mutation.attributeName === "style") { + if (self2.last_display_style && self2.last_display_style != "none" && self2.element.style.display == "none") { + ComfyApp.onClipspaceEditorClosed(); + } + self2.last_display_style = self2.element.style.display; + } + }); + }); + const config = { attributes: true }; + observer.observe(this.rootElement, config); + this.isLayoutCreated = true; + await this.uiManager.setlayout(); + } + this.rootElement.id = "maskEditor"; + this.rootElement.style.display = "flex"; + this.element.style.display = "flex"; + await this.uiManager.initUI(); + this.paintBucketTool.initPaintBucketTool(); + this.colorSelectTool.initColorSelectTool(); + await this.canvasHistory.saveInitialState(); + this.isOpen = true; + if (ComfyApp.clipspace && ComfyApp.clipspace.imgs) { + this.uiManager.setSidebarImage(); + } + this.keyboardManager.addListeners(); + } + cleanup() { + const maskEditors = document.querySelectorAll('[id^="maskEditor"]'); + maskEditors.forEach((element) => element.remove()); + const brushElements = document.querySelectorAll("#maskEditor_brush"); + brushElements.forEach((element) => element.remove()); + } + isOpened() { + return this.isOpen; + } + async save() { + const backupCanvas = document.createElement("canvas"); + const imageCanvas = this.uiManager.getImgCanvas(); + const maskCanvas = this.uiManager.getMaskCanvas(); + const image = this.uiManager.getImage(); + const backupCtx = backupCanvas.getContext("2d", { + willReadFrequently: true + }); + backupCanvas.width = imageCanvas.width; + backupCanvas.height = imageCanvas.height; + if (!backupCtx) { + return; + } + const maskImageLoaded = new Promise((resolve, reject) => { + const maskImage = new Image(); + maskImage.src = maskCanvas.toDataURL(); + maskImage.onload = () => { + resolve(); + }; + maskImage.onerror = (error) => { + reject(error); + }; + }); + try { + await maskImageLoaded; + } catch (error) { + console.error("Error loading mask image:", error); + return; + } + backupCtx.clearRect(0, 0, backupCanvas.width, backupCanvas.height); + backupCtx.drawImage( + maskCanvas, + 0, + 0, + maskCanvas.width, + maskCanvas.height, + 0, + 0, + backupCanvas.width, + backupCanvas.height + ); + let maskHasContent = false; + const maskData = backupCtx.getImageData( + 0, + 0, + backupCanvas.width, + backupCanvas.height + ); + for (let i = 0; i < maskData.data.length; i += 4) { + if (maskData.data[i + 3] !== 0) { + maskHasContent = true; + break; + } + } + const backupData = backupCtx.getImageData( + 0, + 0, + backupCanvas.width, + backupCanvas.height + ); + let backupHasContent = false; + for (let i = 0; i < backupData.data.length; i += 4) { + if (backupData.data[i + 3] !== 0) { + backupHasContent = true; + break; + } + } + if (maskHasContent && !backupHasContent) { + console.error("Mask appears to be empty"); + alert("Cannot save empty mask"); + return; + } + for (let i = 0; i < backupData.data.length; i += 4) { + const alpha = backupData.data[i + 3]; + backupData.data[i] = 0; + backupData.data[i + 1] = 0; + backupData.data[i + 2] = 0; + backupData.data[i + 3] = 255 - alpha; + } + backupCtx.globalCompositeOperation = "source-over"; + backupCtx.putImageData(backupData, 0, 0); + const formData = new FormData(); + const filename = "clipspace-mask-" + performance.now() + ".png"; + const item = { + filename, + subfolder: "clipspace", + type: "input" + }; + if (ComfyApp?.clipspace?.widgets?.length) { + const index = ComfyApp.clipspace.widgets.findIndex( + (obj) => obj?.name === "image" + ); + if (index >= 0 && item !== void 0) { + try { + ComfyApp.clipspace.widgets[index].value = item; + } catch (err2) { + console.warn("Failed to set widget value:", err2); + } + } + } + const dataURL = backupCanvas.toDataURL(); + const blob = this.dataURLToBlob(dataURL); + let original_url = new URL(image.src); + this.uiManager.setBrushOpacity(0); + const filenameRef = original_url.searchParams.get("filename"); + if (!filenameRef) { + throw new Error("filename parameter is required"); + } + const original_ref = { + filename: filenameRef + }; + let original_subfolder = original_url.searchParams.get("subfolder"); + if (original_subfolder) original_ref.subfolder = original_subfolder; + let original_type = original_url.searchParams.get("type"); + if (original_type) original_ref.type = original_type; + formData.append("image", blob, filename); + formData.append("original_ref", JSON.stringify(original_ref)); + formData.append("type", "input"); + formData.append("subfolder", "clipspace"); + this.uiManager.setSaveButtonText("Saving"); + this.uiManager.setSaveButtonEnabled(false); + this.keyboardManager.removeListeners(); + const maxRetries = 3; + let attempt = 0; + let success = false; + while (attempt < maxRetries && !success) { + try { + await this.uploadMask(item, formData); + success = true; + } catch (error) { + console.error(`Upload attempt ${attempt + 1} failed:`, error); + attempt++; + if (attempt < maxRetries) { + console.log("Retrying upload..."); + } else { + console.log("Max retries reached. Upload failed."); + } + } + } + if (success) { + ComfyApp.onClipspaceEditorSave(); + this.close(); + this.isOpen = false; + } else { + this.uiManager.setSaveButtonText("Save"); + this.uiManager.setSaveButtonEnabled(true); + this.keyboardManager.addListeners(); + } + } + getMessageBroker() { + return this.messageBroker; + } + // Helper function to convert a data URL to a Blob object + dataURLToBlob(dataURL) { + const parts = dataURL.split(";base64,"); + const contentType = parts[0].split(":")[1]; + const byteString = atob(parts[1]); + const arrayBuffer = new ArrayBuffer(byteString.length); + const uint8Array = new Uint8Array(arrayBuffer); + for (let i = 0; i < byteString.length; i++) { + uint8Array[i] = byteString.charCodeAt(i); + } + return new Blob([arrayBuffer], { type: contentType }); + } + async uploadMask(filepath, formData, retries = 3) { + if (retries <= 0) { + throw new Error("Max retries reached"); + return; + } + await api.fetchApi("/upload/mask", { + method: "POST", + body: formData + }).then((response) => { + if (!response.ok) { + console.log("Failed to upload mask:", response); + this.uploadMask(filepath, formData, 2); + } + }).catch((error) => { + console.error("Error:", error); + }); + try { + const selectedIndex = ComfyApp.clipspace?.selectedIndex; + if (ComfyApp.clipspace?.imgs && selectedIndex !== void 0) { + const newImage = new Image(); + newImage.src = api.apiURL( + "/view?" + new URLSearchParams(filepath).toString() + app.getPreviewFormatParam() + app.getRandParam() + ); + ComfyApp.clipspace.imgs[selectedIndex] = newImage; + if (ComfyApp.clipspace.images) { + ComfyApp.clipspace.images[selectedIndex] = filepath; + } + } + } catch (err2) { + console.warn("Failed to update clipspace image:", err2); + } + ClipspaceDialog.invalidatePreview(); + } +} +class CanvasHistory { + static { + __name(this, "CanvasHistory"); + } + maskEditor; + messageBroker; + canvas; + ctx; + states = []; + currentStateIndex = -1; + maxStates = 20; + initialized = false; + constructor(maskEditor, maxStates = 20) { + this.maskEditor = maskEditor; + this.messageBroker = maskEditor.getMessageBroker(); + this.maxStates = maxStates; + this.createListeners(); + } + async pullCanvas() { + this.canvas = await this.messageBroker.pull("maskCanvas"); + this.ctx = await this.messageBroker.pull("maskCtx"); + } + createListeners() { + this.messageBroker.subscribe("saveState", () => this.saveState()); + this.messageBroker.subscribe("undo", () => this.undo()); + this.messageBroker.subscribe("redo", () => this.redo()); + } + clearStates() { + this.states = []; + this.currentStateIndex = -1; + this.initialized = false; + } + async saveInitialState() { + await this.pullCanvas(); + if (!this.canvas.width || !this.canvas.height) { + requestAnimationFrame(() => this.saveInitialState()); + return; + } + this.clearStates(); + const state = this.ctx.getImageData( + 0, + 0, + this.canvas.width, + this.canvas.height + ); + this.states.push(state); + this.currentStateIndex = 0; + this.initialized = true; + } + saveState() { + if (!this.initialized || this.currentStateIndex === -1) { + this.saveInitialState(); + return; + } + this.states = this.states.slice(0, this.currentStateIndex + 1); + const state = this.ctx.getImageData( + 0, + 0, + this.canvas.width, + this.canvas.height + ); + this.states.push(state); + this.currentStateIndex++; + if (this.states.length > this.maxStates) { + this.states.shift(); + this.currentStateIndex--; + } + } + undo() { + if (this.states.length > 1 && this.currentStateIndex > 0) { + this.currentStateIndex--; + this.restoreState(this.states[this.currentStateIndex]); + } else { + alert("No more undo states available"); + } + } + redo() { + if (this.states.length > 1 && this.currentStateIndex < this.states.length - 1) { + this.currentStateIndex++; + this.restoreState(this.states[this.currentStateIndex]); + } else { + alert("No more redo states available"); + } + } + restoreState(state) { + if (state && this.initialized) { + this.ctx.putImageData(state, 0, 0); + } + } +} +class PaintBucketTool { + static { + __name(this, "PaintBucketTool"); + } + maskEditor; + messageBroker; + canvas; + ctx; + width = null; + height = null; + imageData = null; + data = null; + tolerance = 5; + constructor(maskEditor) { + this.maskEditor = maskEditor; + this.messageBroker = maskEditor.getMessageBroker(); + this.createListeners(); + this.addPullTopics(); + } + initPaintBucketTool() { + this.pullCanvas(); + } + async pullCanvas() { + this.canvas = await this.messageBroker.pull("maskCanvas"); + this.ctx = await this.messageBroker.pull("maskCtx"); + } + createListeners() { + this.messageBroker.subscribe( + "setPaintBucketTolerance", + (tolerance) => this.setTolerance(tolerance) + ); + this.messageBroker.subscribe( + "paintBucketFill", + (point) => this.floodFill(point) + ); + this.messageBroker.subscribe("invert", () => this.invertMask()); + } + addPullTopics() { + this.messageBroker.createPullTopic( + "getTolerance", + async () => this.tolerance + ); + } + getPixel(x, y) { + return this.data[(y * this.width + x) * 4 + 3]; + } + setPixel(x, y, alpha, color) { + const index = (y * this.width + x) * 4; + this.data[index] = color.r; + this.data[index + 1] = color.g; + this.data[index + 2] = color.b; + this.data[index + 3] = alpha; + } + shouldProcessPixel(currentAlpha, targetAlpha, tolerance, isFillMode) { + if (currentAlpha === -1) return false; + if (isFillMode) { + return currentAlpha !== 255 && Math.abs(currentAlpha - targetAlpha) <= tolerance; + } else { + return currentAlpha === 255 || Math.abs(currentAlpha - targetAlpha) <= tolerance; + } + } + async floodFill(point) { + let startX = Math.floor(point.x); + let startY = Math.floor(point.y); + this.width = this.canvas.width; + this.height = this.canvas.height; + if (startX < 0 || startX >= this.width || startY < 0 || startY >= this.height) { + return; + } + this.imageData = this.ctx.getImageData(0, 0, this.width, this.height); + this.data = this.imageData.data; + const targetAlpha = this.getPixel(startX, startY); + const isFillMode = targetAlpha !== 255; + if (targetAlpha === -1) return; + const maskColor = await this.messageBroker.pull("getMaskColor"); + const stack = []; + const visited = new Uint8Array(this.width * this.height); + if (this.shouldProcessPixel( + targetAlpha, + targetAlpha, + this.tolerance, + isFillMode + )) { + stack.push([startX, startY]); + } + while (stack.length > 0) { + const [x, y] = stack.pop(); + const visitedIndex = y * this.width + x; + if (visited[visitedIndex]) continue; + const currentAlpha = this.getPixel(x, y); + if (!this.shouldProcessPixel( + currentAlpha, + targetAlpha, + this.tolerance, + isFillMode + )) { + continue; + } + visited[visitedIndex] = 1; + this.setPixel(x, y, isFillMode ? 255 : 0, maskColor); + const checkNeighbor = /* @__PURE__ */ __name((nx, ny) => { + if (nx < 0 || nx >= this.width || ny < 0 || ny >= this.height) return; + if (!visited[ny * this.width + nx]) { + const alpha = this.getPixel(nx, ny); + if (this.shouldProcessPixel( + alpha, + targetAlpha, + this.tolerance, + isFillMode + )) { + stack.push([nx, ny]); + } + } + }, "checkNeighbor"); + checkNeighbor(x - 1, y); + checkNeighbor(x + 1, y); + checkNeighbor(x, y - 1); + checkNeighbor(x, y + 1); + } + this.ctx.putImageData(this.imageData, 0, 0); + this.imageData = null; + this.data = null; + } + setTolerance(tolerance) { + this.tolerance = tolerance; + } + getTolerance() { + return this.tolerance; + } + //invert mask + invertMask() { + const imageData = this.ctx.getImageData( + 0, + 0, + this.canvas.width, + this.canvas.height + ); + const data = imageData.data; + let maskR = 0, maskG = 0, maskB = 0; + for (let i = 0; i < data.length; i += 4) { + if (data[i + 3] > 0) { + maskR = data[i]; + maskG = data[i + 1]; + maskB = data[i + 2]; + break; + } + } + for (let i = 0; i < data.length; i += 4) { + const alpha = data[i + 3]; + data[i + 3] = 255 - alpha; + if (alpha === 0) { + data[i] = maskR; + data[i + 1] = maskG; + data[i + 2] = maskB; + } + } + this.ctx.putImageData(imageData, 0, 0); + this.messageBroker.publish("saveState"); + } +} +class ColorSelectTool { + static { + __name(this, "ColorSelectTool"); + } + maskEditor; + messageBroker; + width = null; + height = null; + canvas; + maskCTX; + imageCTX; + maskData = null; + imageData = null; + tolerance = 20; + livePreview = false; + lastPoint = null; + colorComparisonMethod = "simple"; + applyWholeImage = false; + maskBoundry = false; + maskTolerance = 0; + constructor(maskEditor) { + this.maskEditor = maskEditor; + this.messageBroker = maskEditor.getMessageBroker(); + this.createListeners(); + this.addPullTopics(); + } + async initColorSelectTool() { + await this.pullCanvas(); + } + async pullCanvas() { + this.canvas = await this.messageBroker.pull("imgCanvas"); + this.maskCTX = await this.messageBroker.pull("maskCtx"); + this.imageCTX = await this.messageBroker.pull("imageCtx"); + } + createListeners() { + this.messageBroker.subscribe( + "colorSelectFill", + (point) => this.fillColorSelection(point) + ); + this.messageBroker.subscribe( + "setColorSelectTolerance", + (tolerance) => this.setTolerance(tolerance) + ); + this.messageBroker.subscribe( + "setLivePreview", + (livePreview) => this.setLivePreview(livePreview) + ); + this.messageBroker.subscribe( + "setColorComparisonMethod", + (method) => this.setComparisonMethod(method) + ); + this.messageBroker.subscribe("clearLastPoint", () => this.clearLastPoint()); + this.messageBroker.subscribe( + "setWholeImage", + (applyWholeImage) => this.setApplyWholeImage(applyWholeImage) + ); + this.messageBroker.subscribe( + "setMaskBoundary", + (maskBoundry) => this.setMaskBoundary(maskBoundry) + ); + this.messageBroker.subscribe( + "setMaskTolerance", + (maskTolerance) => this.setMaskTolerance(maskTolerance) + ); + } + async addPullTopics() { + this.messageBroker.createPullTopic( + "getLivePreview", + async () => this.livePreview + ); + } + getPixel(x, y) { + const index = (y * this.width + x) * 4; + return { + r: this.imageData[index], + g: this.imageData[index + 1], + b: this.imageData[index + 2] + }; + } + getMaskAlpha(x, y) { + return this.maskData[(y * this.width + x) * 4 + 3]; + } + isPixelInRange(pixel, target) { + switch (this.colorComparisonMethod) { + case "simple": + return this.isPixelInRangeSimple(pixel, target); + case "hsl": + return this.isPixelInRangeHSL(pixel, target); + case "lab": + return this.isPixelInRangeLab(pixel, target); + default: + return this.isPixelInRangeSimple(pixel, target); + } + } + isPixelInRangeSimple(pixel, target) { + const distance = Math.sqrt( + Math.pow(pixel.r - target.r, 2) + Math.pow(pixel.g - target.g, 2) + Math.pow(pixel.b - target.b, 2) + ); + return distance <= this.tolerance; + } + isPixelInRangeHSL(pixel, target) { + const pixelHSL = this.rgbToHSL(pixel.r, pixel.g, pixel.b); + const targetHSL = this.rgbToHSL(target.r, target.g, target.b); + const hueDiff = Math.abs(pixelHSL.h - targetHSL.h); + const satDiff = Math.abs(pixelHSL.s - targetHSL.s); + const lightDiff = Math.abs(pixelHSL.l - targetHSL.l); + const distance = Math.sqrt( + Math.pow(hueDiff / 360 * 255, 2) + Math.pow(satDiff / 100 * 255, 2) + Math.pow(lightDiff / 100 * 255, 2) + ); + return distance <= this.tolerance; + } + rgbToHSL(r, g, b) { + r /= 255; + g /= 255; + b /= 255; + const max2 = Math.max(r, g, b); + const min = Math.min(r, g, b); + let h = 0, s = 0, l = (max2 + min) / 2; + if (max2 !== min) { + const d = max2 - min; + s = l > 0.5 ? d / (2 - max2 - min) : d / (max2 + min); + switch (max2) { + case r: + h = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / d + 2; + break; + case b: + h = (r - g) / d + 4; + break; + } + h /= 6; + } + return { + h: h * 360, + s: s * 100, + l: l * 100 + }; + } + isPixelInRangeLab(pixel, target) { + const pixelLab = this.rgbToLab(pixel); + const targetLab = this.rgbToLab(target); + const deltaE = Math.sqrt( + Math.pow(pixelLab.l - targetLab.l, 2) + Math.pow(pixelLab.a - targetLab.a, 2) + Math.pow(pixelLab.b - targetLab.b, 2) + ); + const normalizedDeltaE = deltaE / 100 * 255; + return normalizedDeltaE <= this.tolerance; + } + rgbToLab(rgb) { + let r = rgb.r / 255; + let g = rgb.g / 255; + let b = rgb.b / 255; + r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92; + g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92; + b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92; + r *= 100; + g *= 100; + b *= 100; + const x = r * 0.4124 + g * 0.3576 + b * 0.1805; + const y = r * 0.2126 + g * 0.7152 + b * 0.0722; + const z = r * 0.0193 + g * 0.1192 + b * 0.9505; + const xn = 95.047; + const yn = 100; + const zn = 108.883; + const xyz = [x / xn, y / yn, z / zn]; + for (let i = 0; i < xyz.length; i++) { + xyz[i] = xyz[i] > 8856e-6 ? Math.pow(xyz[i], 1 / 3) : 7.787 * xyz[i] + 16 / 116; + } + return { + l: 116 * xyz[1] - 16, + a: 500 * (xyz[0] - xyz[1]), + b: 200 * (xyz[1] - xyz[2]) + }; + } + setPixel(x, y, alpha, color) { + const index = (y * this.width + x) * 4; + this.maskData[index] = color.r; + this.maskData[index + 1] = color.g; + this.maskData[index + 2] = color.b; + this.maskData[index + 3] = alpha; + } + async fillColorSelection(point) { + this.width = this.canvas.width; + this.height = this.canvas.height; + this.lastPoint = point; + const maskData = this.maskCTX.getImageData(0, 0, this.width, this.height); + this.maskData = maskData.data; + this.imageData = this.imageCTX.getImageData( + 0, + 0, + this.width, + this.height + ).data; + if (this.applyWholeImage) { + const targetPixel = this.getPixel( + Math.floor(point.x), + Math.floor(point.y) + ); + const maskColor = await this.messageBroker.pull("getMaskColor"); + const width = this.width; + const height = this.height; + const CHUNK_SIZE = 1e4; + for (let i = 0; i < width * height; i += CHUNK_SIZE) { + const endIndex = Math.min(i + CHUNK_SIZE, width * height); + for (let pixelIndex = i; pixelIndex < endIndex; pixelIndex++) { + const x = pixelIndex % width; + const y = Math.floor(pixelIndex / width); + if (this.isPixelInRange(this.getPixel(x, y), targetPixel)) { + this.setPixel(x, y, 255, maskColor); + } + } + await new Promise((resolve) => setTimeout(resolve, 0)); + } + } else { + let startX = Math.floor(point.x); + let startY = Math.floor(point.y); + if (startX < 0 || startX >= this.width || startY < 0 || startY >= this.height) { + return; + } + const pixel = this.getPixel(startX, startY); + const stack = []; + const visited = new Uint8Array(this.width * this.height); + stack.push([startX, startY]); + const maskColor = await this.messageBroker.pull("getMaskColor"); + while (stack.length > 0) { + const [x, y] = stack.pop(); + const visitedIndex = y * this.width + x; + if (visited[visitedIndex] || !this.isPixelInRange(this.getPixel(x, y), pixel)) { + continue; + } + visited[visitedIndex] = 1; + this.setPixel(x, y, 255, maskColor); + if (x > 0 && !visited[y * this.width + (x - 1)] && this.isPixelInRange(this.getPixel(x - 1, y), pixel)) { + if (!this.maskBoundry || 255 - this.getMaskAlpha(x - 1, y) > this.maskTolerance) { + stack.push([x - 1, y]); + } + } + if (x < this.width - 1 && !visited[y * this.width + (x + 1)] && this.isPixelInRange(this.getPixel(x + 1, y), pixel)) { + if (!this.maskBoundry || 255 - this.getMaskAlpha(x + 1, y) > this.maskTolerance) { + stack.push([x + 1, y]); + } + } + if (y > 0 && !visited[(y - 1) * this.width + x] && this.isPixelInRange(this.getPixel(x, y - 1), pixel)) { + if (!this.maskBoundry || 255 - this.getMaskAlpha(x, y - 1) > this.maskTolerance) { + stack.push([x, y - 1]); + } + } + if (y < this.height - 1 && !visited[(y + 1) * this.width + x] && this.isPixelInRange(this.getPixel(x, y + 1), pixel)) { + if (!this.maskBoundry || 255 - this.getMaskAlpha(x, y + 1) > this.maskTolerance) { + stack.push([x, y + 1]); + } + } + } + } + this.maskCTX.putImageData(maskData, 0, 0); + this.messageBroker.publish("saveState"); + this.maskData = null; + this.imageData = null; + } + setTolerance(tolerance) { + this.tolerance = tolerance; + if (this.lastPoint && this.livePreview) { + this.messageBroker.publish("undo"); + this.fillColorSelection(this.lastPoint); + } + } + setLivePreview(livePreview) { + this.livePreview = livePreview; + } + setComparisonMethod(method) { + this.colorComparisonMethod = method; + if (this.lastPoint && this.livePreview) { + this.messageBroker.publish("undo"); + this.fillColorSelection(this.lastPoint); + } + } + clearLastPoint() { + this.lastPoint = null; + } + setApplyWholeImage(applyWholeImage) { + this.applyWholeImage = applyWholeImage; + } + setMaskBoundary(maskBoundry) { + this.maskBoundry = maskBoundry; + } + setMaskTolerance(maskTolerance) { + this.maskTolerance = maskTolerance; + } +} +class BrushTool { + static { + __name(this, "BrushTool"); + } + brushSettings; + //this saves the current brush settings + maskBlendMode; + isDrawing = false; + isDrawingLine = false; + lineStartPoint = null; + smoothingPrecision = 10; + smoothingCordsArray = []; + smoothingLastDrawTime; + maskCtx = null; + initialDraw = true; + brushStrokeCanvas = null; + brushStrokeCtx = null; + //brush adjustment + isBrushAdjusting = false; + brushPreviewGradient = null; + initialPoint = null; + useDominantAxis = false; + brushAdjustmentSpeed = 1; + maskEditor; + messageBroker; + constructor(maskEditor) { + this.maskEditor = maskEditor; + this.messageBroker = maskEditor.getMessageBroker(); + this.createListeners(); + this.addPullTopics(); + this.useDominantAxis = app.extensionManager.setting.get( + "Comfy.MaskEditor.UseDominantAxis" + ); + this.brushAdjustmentSpeed = app.extensionManager.setting.get( + "Comfy.MaskEditor.BrushAdjustmentSpeed" + ); + this.brushSettings = { + size: 10, + opacity: 100, + hardness: 1, + type: "arc" + /* Arc */ + }; + this.maskBlendMode = "black"; + } + createListeners() { + this.messageBroker.subscribe( + "setBrushSize", + (size) => this.setBrushSize(size) + ); + this.messageBroker.subscribe( + "setBrushOpacity", + (opacity) => this.setBrushOpacity(opacity) + ); + this.messageBroker.subscribe( + "setBrushHardness", + (hardness) => this.setBrushHardness(hardness) + ); + this.messageBroker.subscribe( + "setBrushShape", + (type) => this.setBrushType(type) + ); + this.messageBroker.subscribe( + "setBrushSmoothingPrecision", + (precision) => this.setBrushSmoothingPrecision(precision) + ); + this.messageBroker.subscribe( + "brushAdjustmentStart", + (event) => this.startBrushAdjustment(event) + ); + this.messageBroker.subscribe( + "brushAdjustment", + (event) => this.handleBrushAdjustment(event) + ); + this.messageBroker.subscribe( + "drawStart", + (event) => this.startDrawing(event) + ); + this.messageBroker.subscribe( + "draw", + (event) => this.handleDrawing(event) + ); + this.messageBroker.subscribe( + "drawEnd", + (event) => this.drawEnd(event) + ); + } + addPullTopics() { + this.messageBroker.createPullTopic( + "brushSize", + async () => this.brushSettings.size + ); + this.messageBroker.createPullTopic( + "brushOpacity", + async () => this.brushSettings.opacity + ); + this.messageBroker.createPullTopic( + "brushHardness", + async () => this.brushSettings.hardness + ); + this.messageBroker.createPullTopic( + "brushType", + async () => this.brushSettings.type + ); + this.messageBroker.createPullTopic( + "maskBlendMode", + async () => this.maskBlendMode + ); + this.messageBroker.createPullTopic( + "brushSettings", + async () => this.brushSettings + ); + } + async createBrushStrokeCanvas() { + if (this.brushStrokeCanvas !== null) { + return; + } + const maskCanvas = await this.messageBroker.pull("maskCanvas"); + const canvas = document.createElement("canvas"); + canvas.width = maskCanvas.width; + canvas.height = maskCanvas.height; + this.brushStrokeCanvas = canvas; + this.brushStrokeCtx = canvas.getContext("2d"); + } + async startDrawing(event) { + this.isDrawing = true; + let compositionOp; + let currentTool = await this.messageBroker.pull("currentTool"); + let coords = { x: event.offsetX, y: event.offsetY }; + let coords_canvas = await this.messageBroker.pull("screenToCanvas", coords); + await this.createBrushStrokeCanvas(); + if (currentTool === "eraser" || event.buttons == 2) { + compositionOp = "destination-out"; + } else { + compositionOp = "source-over"; + } + if (event.shiftKey && this.lineStartPoint) { + this.isDrawingLine = true; + this.drawLine(this.lineStartPoint, coords_canvas, compositionOp); + } else { + this.isDrawingLine = false; + this.init_shape(compositionOp); + this.draw_shape(coords_canvas); + } + this.lineStartPoint = coords_canvas; + this.smoothingCordsArray = [coords_canvas]; + this.smoothingLastDrawTime = /* @__PURE__ */ new Date(); + } + async handleDrawing(event) { + var diff = performance.now() - this.smoothingLastDrawTime.getTime(); + let coords = { x: event.offsetX, y: event.offsetY }; + let coords_canvas = await this.messageBroker.pull("screenToCanvas", coords); + let currentTool = await this.messageBroker.pull("currentTool"); + if (diff > 20 && !this.isDrawing) + requestAnimationFrame(() => { + this.init_shape( + "source-over" + /* SourceOver */ + ); + this.draw_shape(coords_canvas); + this.smoothingCordsArray.push(coords_canvas); + }); + else + requestAnimationFrame(() => { + if (currentTool === "eraser" || event.buttons == 2) { + this.init_shape( + "destination-out" + /* DestinationOut */ + ); + } else { + this.init_shape( + "source-over" + /* SourceOver */ + ); + } + this.drawWithBetterSmoothing(coords_canvas); + }); + this.smoothingLastDrawTime = /* @__PURE__ */ new Date(); + } + async drawEnd(event) { + const coords = { x: event.offsetX, y: event.offsetY }; + const coords_canvas = await this.messageBroker.pull( + "screenToCanvas", + coords + ); + if (this.isDrawing) { + this.isDrawing = false; + this.messageBroker.publish("saveState"); + this.lineStartPoint = coords_canvas; + this.initialDraw = true; + } + } + drawWithBetterSmoothing(point) { + if (!this.smoothingCordsArray) { + this.smoothingCordsArray = []; + } + const opacityConstant = 1 / (1 + Math.exp(3)); + const interpolatedOpacity = 1 / (1 + Math.exp(-6 * (this.brushSettings.opacity - 0.5))) - opacityConstant; + this.smoothingCordsArray.push(point); + const POINTS_NR = 5; + if (this.smoothingCordsArray.length < POINTS_NR) { + return; + } + let totalLength = 0; + const points = this.smoothingCordsArray; + const len = points.length - 1; + let dx, dy; + for (let i = 0; i < len; i++) { + dx = points[i + 1].x - points[i].x; + dy = points[i + 1].y - points[i].y; + totalLength += Math.sqrt(dx * dx + dy * dy); + } + const distanceBetweenPoints = this.brushSettings.size / this.smoothingPrecision * 6; + const stepNr = Math.ceil(totalLength / distanceBetweenPoints); + let interpolatedPoints = points; + if (stepNr > 0) { + interpolatedPoints = this.generateEquidistantPoints( + this.smoothingCordsArray, + distanceBetweenPoints + // Distance between interpolated points + ); + } + if (!this.initialDraw) { + const spliceIndex = interpolatedPoints.findIndex( + (point2) => point2.x === this.smoothingCordsArray[2].x && point2.y === this.smoothingCordsArray[2].y + ); + if (spliceIndex !== -1) { + interpolatedPoints = interpolatedPoints.slice(spliceIndex + 1); + } + } + for (const point2 of interpolatedPoints) { + this.draw_shape(point2, interpolatedOpacity); + } + if (!this.initialDraw) { + this.smoothingCordsArray = this.smoothingCordsArray.slice(2); + } else { + this.initialDraw = false; + } + } + async drawLine(p1, p2, compositionOp) { + const brush_size = await this.messageBroker.pull("brushSize"); + const distance = Math.sqrt((p2.x - p1.x) ** 2 + (p2.y - p1.y) ** 2); + const steps = Math.ceil( + distance / (brush_size / this.smoothingPrecision * 4) + ); + const interpolatedOpacity = 1 / (1 + Math.exp(-6 * (this.brushSettings.opacity - 0.5))) - 1 / (1 + Math.exp(3)); + this.init_shape(compositionOp); + for (let i = 0; i <= steps; i++) { + const t2 = i / steps; + const x = p1.x + (p2.x - p1.x) * t2; + const y = p1.y + (p2.y - p1.y) * t2; + const point = { x, y }; + this.draw_shape(point, interpolatedOpacity); + } + } + //brush adjustment + async startBrushAdjustment(event) { + event.preventDefault(); + const coords = { x: event.offsetX, y: event.offsetY }; + let coords_canvas = await this.messageBroker.pull("screenToCanvas", coords); + this.messageBroker.publish("setBrushPreviewGradientVisibility", true); + this.initialPoint = coords_canvas; + this.isBrushAdjusting = true; + return; + } + async handleBrushAdjustment(event) { + const coords = { x: event.offsetX, y: event.offsetY }; + const brushDeadZone = 5; + let coords_canvas = await this.messageBroker.pull("screenToCanvas", coords); + const delta_x = coords_canvas.x - this.initialPoint.x; + const delta_y = coords_canvas.y - this.initialPoint.y; + const effectiveDeltaX = Math.abs(delta_x) < brushDeadZone ? 0 : delta_x; + const effectiveDeltaY = Math.abs(delta_y) < brushDeadZone ? 0 : delta_y; + let finalDeltaX = effectiveDeltaX; + let finalDeltaY = effectiveDeltaY; + console.log(this.useDominantAxis); + if (this.useDominantAxis) { + const ratio = Math.abs(effectiveDeltaX) / Math.abs(effectiveDeltaY); + const threshold = 2; + if (ratio > threshold) { + finalDeltaY = 0; + } else if (ratio < 1 / threshold) { + finalDeltaX = 0; + } + } + const cappedDeltaX = Math.max(-100, Math.min(100, finalDeltaX)); + const cappedDeltaY = Math.max(-100, Math.min(100, finalDeltaY)); + const sizeDelta = cappedDeltaX / 40; + const hardnessDelta = cappedDeltaY / 800; + const newSize = Math.max( + 1, + Math.min( + 100, + this.brushSettings.size + cappedDeltaX / 35 * this.brushAdjustmentSpeed + ) + ); + const newHardness = Math.max( + 0, + Math.min( + 1, + this.brushSettings.hardness - cappedDeltaY / 4e3 * this.brushAdjustmentSpeed + ) + ); + this.brushSettings.size = newSize; + this.brushSettings.hardness = newHardness; + this.messageBroker.publish("updateBrushPreview"); + } + //helper functions + async draw_shape(point, overrideOpacity) { + const brushSettings = this.brushSettings; + const maskCtx = this.maskCtx || await this.messageBroker.pull("maskCtx"); + const brushType = await this.messageBroker.pull("brushType"); + const maskColor = await this.messageBroker.pull("getMaskColor"); + const size = brushSettings.size; + const sliderOpacity = brushSettings.opacity; + const opacity = overrideOpacity == void 0 ? sliderOpacity : overrideOpacity; + const hardness = brushSettings.hardness; + const x = point.x; + const y = point.y; + const extendedSize = size * (2 - hardness); + let gradient = maskCtx.createRadialGradient(x, y, 0, x, y, extendedSize); + const isErasing = maskCtx.globalCompositeOperation === "destination-out"; + if (hardness === 1) { + console.log(sliderOpacity, opacity); + gradient.addColorStop( + 0, + isErasing ? `rgba(255, 255, 255, ${opacity})` : `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity})` + ); + gradient.addColorStop( + 1, + isErasing ? `rgba(255, 255, 255, ${opacity})` : `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity})` + ); + } else { + let softness = 1 - hardness; + let innerStop = Math.max(0, hardness - softness); + let outerStop = size / extendedSize; + if (isErasing) { + gradient.addColorStop(0, `rgba(255, 255, 255, ${opacity})`); + gradient.addColorStop(innerStop, `rgba(255, 255, 255, ${opacity})`); + gradient.addColorStop(outerStop, `rgba(255, 255, 255, ${opacity / 2})`); + gradient.addColorStop(1, `rgba(255, 255, 255, 0)`); + } else { + gradient.addColorStop( + 0, + `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity})` + ); + gradient.addColorStop( + innerStop, + `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity})` + ); + gradient.addColorStop( + outerStop, + `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, ${opacity / 2})` + ); + gradient.addColorStop( + 1, + `rgba(${maskColor.r}, ${maskColor.g}, ${maskColor.b}, 0)` + ); + } + } + maskCtx.fillStyle = gradient; + maskCtx.beginPath(); + if (brushType === "rect") { + maskCtx.rect( + x - extendedSize, + y - extendedSize, + extendedSize * 2, + extendedSize * 2 + ); + } else { + maskCtx.arc(x, y, extendedSize, 0, Math.PI * 2, false); + } + maskCtx.fill(); + } + async init_shape(compositionOperation) { + const maskBlendMode = await this.messageBroker.pull("maskBlendMode"); + const maskCtx = this.maskCtx || await this.messageBroker.pull("maskCtx"); + maskCtx.beginPath(); + if (compositionOperation == "source-over") { + maskCtx.fillStyle = maskBlendMode; + maskCtx.globalCompositeOperation = "source-over"; + } else if (compositionOperation == "destination-out") { + maskCtx.globalCompositeOperation = "destination-out"; + } + } + calculateCubicSplinePoints(points, numSegments = 10) { + const result = []; + const xCoords = points.map((p) => p.x); + const yCoords = points.map((p) => p.y); + const xDerivatives = this.calculateSplineCoefficients(xCoords); + const yDerivatives = this.calculateSplineCoefficients(yCoords); + for (let i = 0; i < points.length - 1; i++) { + const p0 = points[i]; + const p1 = points[i + 1]; + const d0x = xDerivatives[i]; + const d1x = xDerivatives[i + 1]; + const d0y = yDerivatives[i]; + const d1y = yDerivatives[i + 1]; + for (let t2 = 0; t2 <= numSegments; t2++) { + const t_normalized = t2 / numSegments; + const h00 = 2 * t_normalized ** 3 - 3 * t_normalized ** 2 + 1; + const h10 = t_normalized ** 3 - 2 * t_normalized ** 2 + t_normalized; + const h01 = -2 * t_normalized ** 3 + 3 * t_normalized ** 2; + const h11 = t_normalized ** 3 - t_normalized ** 2; + const x = h00 * p0.x + h10 * d0x + h01 * p1.x + h11 * d1x; + const y = h00 * p0.y + h10 * d0y + h01 * p1.y + h11 * d1y; + result.push({ x, y }); + } + } + return result; + } + generateEvenlyDistributedPoints(splinePoints, numPoints) { + const distances = [0]; + for (let i = 1; i < splinePoints.length; i++) { + const dx = splinePoints[i].x - splinePoints[i - 1].x; + const dy = splinePoints[i].y - splinePoints[i - 1].y; + const dist = Math.hypot(dx, dy); + distances.push(distances[i - 1] + dist); + } + const totalLength = distances[distances.length - 1]; + const interval = totalLength / (numPoints - 1); + const result = []; + let currentIndex = 0; + for (let i = 0; i < numPoints; i++) { + const targetDistance = i * interval; + while (currentIndex < distances.length - 1 && distances[currentIndex + 1] < targetDistance) { + currentIndex++; + } + const t2 = (targetDistance - distances[currentIndex]) / (distances[currentIndex + 1] - distances[currentIndex]); + const x = splinePoints[currentIndex].x + t2 * (splinePoints[currentIndex + 1].x - splinePoints[currentIndex].x); + const y = splinePoints[currentIndex].y + t2 * (splinePoints[currentIndex + 1].y - splinePoints[currentIndex].y); + result.push({ x, y }); + } + return result; + } + generateEquidistantPoints(points, distance) { + const result = []; + const cumulativeDistances = [0]; + for (let i = 1; i < points.length; i++) { + const dx = points[i].x - points[i - 1].x; + const dy = points[i].y - points[i - 1].y; + const dist = Math.hypot(dx, dy); + cumulativeDistances[i] = cumulativeDistances[i - 1] + dist; + } + const totalLength = cumulativeDistances[cumulativeDistances.length - 1]; + const numPoints = Math.floor(totalLength / distance); + for (let i = 0; i <= numPoints; i++) { + const targetDistance = i * distance; + let idx = 0; + while (idx < cumulativeDistances.length - 1 && cumulativeDistances[idx + 1] < targetDistance) { + idx++; + } + if (idx >= points.length - 1) { + result.push(points[points.length - 1]); + continue; + } + const d0 = cumulativeDistances[idx]; + const d1 = cumulativeDistances[idx + 1]; + const t2 = (targetDistance - d0) / (d1 - d0); + const x = points[idx].x + t2 * (points[idx + 1].x - points[idx].x); + const y = points[idx].y + t2 * (points[idx + 1].y - points[idx].y); + result.push({ x, y }); + } + return result; + } + calculateSplineCoefficients(values) { + const n = values.length - 1; + const matrix = new Array(n + 1).fill(0).map(() => new Array(n + 1).fill(0)); + const rhs = new Array(n + 1).fill(0); + for (let i = 1; i < n; i++) { + matrix[i][i - 1] = 1; + matrix[i][i] = 4; + matrix[i][i + 1] = 1; + rhs[i] = 3 * (values[i + 1] - values[i - 1]); + } + matrix[0][0] = 2; + matrix[0][1] = 1; + matrix[n][n - 1] = 1; + matrix[n][n] = 2; + rhs[0] = 3 * (values[1] - values[0]); + rhs[n] = 3 * (values[n] - values[n - 1]); + for (let i = 1; i <= n; i++) { + const m = matrix[i][i - 1] / matrix[i - 1][i - 1]; + matrix[i][i] -= m * matrix[i - 1][i]; + rhs[i] -= m * rhs[i - 1]; + } + const solution = new Array(n + 1); + solution[n] = rhs[n] / matrix[n][n]; + for (let i = n - 1; i >= 0; i--) { + solution[i] = (rhs[i] - matrix[i][i + 1] * solution[i + 1]) / matrix[i][i]; + } + return solution; + } + setBrushSize(size) { + this.brushSettings.size = size; + } + setBrushOpacity(opacity) { + this.brushSettings.opacity = opacity; + } + setBrushHardness(hardness) { + this.brushSettings.hardness = hardness; + } + setBrushType(type) { + this.brushSettings.type = type; + } + setBrushSmoothingPrecision(precision) { + this.smoothingPrecision = precision; + } +} +class UIManager { + static { + __name(this, "UIManager"); + } + rootElement; + brush; + brushPreviewGradient; + maskCtx; + imageCtx; + maskCanvas; + imgCanvas; + brushSettingsHTML; + paintBucketSettingsHTML; + colorSelectSettingsHTML; + maskOpacitySlider; + brushHardnessSlider; + brushSizeSlider; + brushOpacitySlider; + sidebarImage; + saveButton; + toolPanel; + sidePanel; + pointerZone; + canvasBackground; + canvasContainer; + image; + imageURL; + darkMode = true; + maskEditor; + messageBroker; + mask_opacity = 1; + maskBlendMode = "black"; + zoomTextHTML; + dimensionsTextHTML; + constructor(rootElement, maskEditor) { + this.rootElement = rootElement; + this.maskEditor = maskEditor; + this.messageBroker = maskEditor.getMessageBroker(); + this.addListeners(); + this.addPullTopics(); + } + addListeners() { + this.messageBroker.subscribe( + "updateBrushPreview", + async () => this.updateBrushPreview() + ); + this.messageBroker.subscribe( + "paintBucketCursor", + (isPaintBucket) => this.handlePaintBucketCursor(isPaintBucket) + ); + this.messageBroker.subscribe( + "panCursor", + (isPan) => this.handlePanCursor(isPan) + ); + this.messageBroker.subscribe( + "setBrushVisibility", + (isVisible) => this.setBrushVisibility(isVisible) + ); + this.messageBroker.subscribe( + "setBrushPreviewGradientVisibility", + (isVisible) => this.setBrushPreviewGradientVisibility(isVisible) + ); + this.messageBroker.subscribe("updateCursor", () => this.updateCursor()); + this.messageBroker.subscribe( + "setZoomText", + (text) => this.setZoomText(text) + ); + } + addPullTopics() { + this.messageBroker.createPullTopic( + "maskCanvas", + async () => this.maskCanvas + ); + this.messageBroker.createPullTopic("maskCtx", async () => this.maskCtx); + this.messageBroker.createPullTopic("imageCtx", async () => this.imageCtx); + this.messageBroker.createPullTopic("imgCanvas", async () => this.imgCanvas); + this.messageBroker.createPullTopic( + "screenToCanvas", + async (coords) => this.screenToCanvas(coords) + ); + this.messageBroker.createPullTopic( + "getCanvasContainer", + async () => this.canvasContainer + ); + this.messageBroker.createPullTopic( + "getMaskColor", + async () => this.getMaskColor() + ); + } + async setlayout() { + this.detectLightMode(); + var user_ui = await this.createUI(); + var canvasContainer = this.createBackgroundUI(); + var brush = await this.createBrush(); + await this.setBrushBorderRadius(); + this.setBrushOpacity(1); + this.rootElement.appendChild(canvasContainer); + this.rootElement.appendChild(user_ui); + document.body.appendChild(brush); + } + async createUI() { + var ui_container = document.createElement("div"); + ui_container.id = "maskEditor_uiContainer"; + var top_bar = await this.createTopBar(); + var ui_horizontal_container = document.createElement("div"); + ui_horizontal_container.id = "maskEditor_uiHorizontalContainer"; + var side_panel_container = await this.createSidePanel(); + var pointer_zone = this.createPointerZone(); + var tool_panel = this.createToolPanel(); + ui_horizontal_container.appendChild(tool_panel); + ui_horizontal_container.appendChild(pointer_zone); + ui_horizontal_container.appendChild(side_panel_container); + ui_container.appendChild(top_bar); + ui_container.appendChild(ui_horizontal_container); + return ui_container; + } + createBackgroundUI() { + const canvasContainer = document.createElement("div"); + canvasContainer.id = "maskEditorCanvasContainer"; + const imgCanvas = document.createElement("canvas"); + imgCanvas.id = "imageCanvas"; + const maskCanvas = document.createElement("canvas"); + maskCanvas.id = "maskCanvas"; + const canvas_background = document.createElement("div"); + canvas_background.id = "canvasBackground"; + canvasContainer.appendChild(imgCanvas); + canvasContainer.appendChild(maskCanvas); + canvasContainer.appendChild(canvas_background); + this.imgCanvas = imgCanvas; + this.maskCanvas = maskCanvas; + this.canvasContainer = canvasContainer; + this.canvasBackground = canvas_background; + let maskCtx = maskCanvas.getContext("2d", { willReadFrequently: true }); + if (maskCtx) { + this.maskCtx = maskCtx; + } + let imgCtx = imgCanvas.getContext("2d", { willReadFrequently: true }); + if (imgCtx) { + this.imageCtx = imgCtx; + } + this.setEventHandler(); + this.imgCanvas.style.position = "absolute"; + this.maskCanvas.style.position = "absolute"; + this.imgCanvas.style.top = "200"; + this.imgCanvas.style.left = "0"; + this.maskCanvas.style.top = this.imgCanvas.style.top; + this.maskCanvas.style.left = this.imgCanvas.style.left; + const maskCanvasStyle = this.getMaskCanvasStyle(); + this.maskCanvas.style.mixBlendMode = maskCanvasStyle.mixBlendMode; + this.maskCanvas.style.opacity = maskCanvasStyle.opacity.toString(); + return canvasContainer; + } + async setBrushBorderRadius() { + const brushSettings = await this.messageBroker.pull("brushSettings"); + if (brushSettings.type === "rect") { + this.brush.style.borderRadius = "0%"; + this.brush.style.MozBorderRadius = "0%"; + this.brush.style.WebkitBorderRadius = "0%"; + } else { + this.brush.style.borderRadius = "50%"; + this.brush.style.MozBorderRadius = "50%"; + this.brush.style.WebkitBorderRadius = "50%"; + } + } + async initUI() { + this.saveButton.innerText = "Save"; + this.saveButton.disabled = false; + await this.setImages(this.imgCanvas); + } + async createSidePanel() { + const side_panel = this.createContainer(true); + side_panel.id = "maskEditor_sidePanel"; + const brush_settings = await this.createBrushSettings(); + brush_settings.id = "maskEditor_brushSettings"; + this.brushSettingsHTML = brush_settings; + const paint_bucket_settings = await this.createPaintBucketSettings(); + paint_bucket_settings.id = "maskEditor_paintBucketSettings"; + this.paintBucketSettingsHTML = paint_bucket_settings; + const color_select_settings = await this.createColorSelectSettings(); + color_select_settings.id = "maskEditor_colorSelectSettings"; + this.colorSelectSettingsHTML = color_select_settings; + const image_layer_settings = await this.createImageLayerSettings(); + const separator = this.createSeparator(); + side_panel.appendChild(brush_settings); + side_panel.appendChild(paint_bucket_settings); + side_panel.appendChild(color_select_settings); + side_panel.appendChild(separator); + side_panel.appendChild(image_layer_settings); + return side_panel; + } + async createBrushSettings() { + const shapeColor = this.darkMode ? "maskEditor_brushShape_dark" : "maskEditor_brushShape_light"; + const brush_settings_container = this.createContainer(true); + const brush_settings_title = this.createHeadline("Brush Settings"); + const brush_shape_outer_container = this.createContainer(true); + const brush_shape_title = this.createContainerTitle("Brush Shape"); + const brush_shape_container = this.createContainer(false); + const accentColor = this.darkMode ? "maskEditor_accent_bg_dark" : "maskEditor_accent_bg_light"; + brush_shape_container.classList.add(accentColor); + brush_shape_container.classList.add("maskEditor_layerRow"); + const circle_shape = document.createElement("div"); + circle_shape.id = "maskEditor_sidePanelBrushShapeCircle"; + circle_shape.classList.add(shapeColor); + circle_shape.style.background = "var(--p-button-text-primary-color)"; + circle_shape.addEventListener("click", () => { + this.messageBroker.publish( + "setBrushShape", + "arc" + /* Arc */ + ); + this.setBrushBorderRadius(); + circle_shape.style.background = "var(--p-button-text-primary-color)"; + square_shape.style.background = ""; + }); + const square_shape = document.createElement("div"); + square_shape.id = "maskEditor_sidePanelBrushShapeSquare"; + square_shape.classList.add(shapeColor); + square_shape.style.background = ""; + square_shape.addEventListener("click", () => { + this.messageBroker.publish( + "setBrushShape", + "rect" + /* Rect */ + ); + this.setBrushBorderRadius(); + square_shape.style.background = "var(--p-button-text-primary-color)"; + circle_shape.style.background = ""; + }); + brush_shape_container.appendChild(circle_shape); + brush_shape_container.appendChild(square_shape); + brush_shape_outer_container.appendChild(brush_shape_title); + brush_shape_outer_container.appendChild(brush_shape_container); + const thicknesSliderObj = this.createSlider( + "Thickness", + 1, + 100, + 1, + 10, + (event, value) => { + this.messageBroker.publish("setBrushSize", parseInt(value)); + this.updateBrushPreview(); + } + ); + this.brushSizeSlider = thicknesSliderObj.slider; + const opacitySliderObj = this.createSlider( + "Opacity", + 0, + 1, + 0.01, + 0.7, + (event, value) => { + this.messageBroker.publish("setBrushOpacity", parseFloat(value)); + this.updateBrushPreview(); + } + ); + this.brushOpacitySlider = opacitySliderObj.slider; + const hardnessSliderObj = this.createSlider( + "Hardness", + 0, + 1, + 0.01, + 1, + (event, value) => { + this.messageBroker.publish("setBrushHardness", parseFloat(value)); + this.updateBrushPreview(); + } + ); + this.brushHardnessSlider = hardnessSliderObj.slider; + const brushSmoothingPrecisionSliderObj = this.createSlider( + "Smoothing Precision", + 1, + 100, + 1, + 10, + (event, value) => { + this.messageBroker.publish( + "setBrushSmoothingPrecision", + parseInt(value) + ); + } + ); + brush_settings_container.appendChild(brush_settings_title); + brush_settings_container.appendChild(brush_shape_outer_container); + brush_settings_container.appendChild(thicknesSliderObj.container); + brush_settings_container.appendChild(opacitySliderObj.container); + brush_settings_container.appendChild(hardnessSliderObj.container); + brush_settings_container.appendChild( + brushSmoothingPrecisionSliderObj.container + ); + return brush_settings_container; + } + async createPaintBucketSettings() { + const paint_bucket_settings_container = this.createContainer(true); + const paint_bucket_settings_title = this.createHeadline( + "Paint Bucket Settings" + ); + const tolerance = await this.messageBroker.pull("getTolerance"); + const paintBucketToleranceSliderObj = this.createSlider( + "Tolerance", + 0, + 255, + 1, + tolerance, + (event, value) => { + this.messageBroker.publish("setPaintBucketTolerance", parseInt(value)); + } + ); + paint_bucket_settings_container.appendChild(paint_bucket_settings_title); + paint_bucket_settings_container.appendChild( + paintBucketToleranceSliderObj.container + ); + return paint_bucket_settings_container; + } + async createColorSelectSettings() { + const color_select_settings_container = this.createContainer(true); + const color_select_settings_title = this.createHeadline( + "Color Select Settings" + ); + var tolerance = await this.messageBroker.pull("getTolerance"); + const colorSelectToleranceSliderObj = this.createSlider( + "Tolerance", + 0, + 255, + 1, + tolerance, + (event, value) => { + this.messageBroker.publish("setColorSelectTolerance", parseInt(value)); + } + ); + const livePreviewToggle = this.createToggle( + "Live Preview", + (event, value) => { + this.messageBroker.publish("setLivePreview", value); + } + ); + const wholeImageToggle = this.createToggle( + "Apply to Whole Image", + (event, value) => { + this.messageBroker.publish("setWholeImage", value); + } + ); + const methodOptions = Object.values(ColorComparisonMethod); + const methodSelect = this.createDropdown( + "Method", + methodOptions, + (event, value) => { + this.messageBroker.publish("setColorComparisonMethod", value); + } + ); + const maskBoundaryToggle = this.createToggle( + "Stop at mask", + (event, value) => { + this.messageBroker.publish("setMaskBoundary", value); + } + ); + const maskToleranceSliderObj = this.createSlider( + "Mask Tolerance", + 0, + 255, + 1, + 0, + (event, value) => { + this.messageBroker.publish("setMaskTolerance", parseInt(value)); + } + ); + color_select_settings_container.appendChild(color_select_settings_title); + color_select_settings_container.appendChild( + colorSelectToleranceSliderObj.container + ); + color_select_settings_container.appendChild(livePreviewToggle); + color_select_settings_container.appendChild(wholeImageToggle); + color_select_settings_container.appendChild(methodSelect); + color_select_settings_container.appendChild(maskBoundaryToggle); + color_select_settings_container.appendChild( + maskToleranceSliderObj.container + ); + return color_select_settings_container; + } + async createImageLayerSettings() { + const accentColor = this.darkMode ? "maskEditor_accent_bg_dark" : "maskEditor_accent_bg_light"; + const image_layer_settings_container = this.createContainer(true); + const image_layer_settings_title = this.createHeadline("Layers"); + const mask_layer_title = this.createContainerTitle("Mask Layer"); + const mask_layer_container = this.createContainer(false); + mask_layer_container.classList.add(accentColor); + mask_layer_container.classList.add("maskEditor_layerRow"); + const mask_layer_visibility_checkbox = document.createElement("input"); + mask_layer_visibility_checkbox.setAttribute("type", "checkbox"); + mask_layer_visibility_checkbox.checked = true; + mask_layer_visibility_checkbox.classList.add( + "maskEditor_sidePanelLayerCheckbox" + ); + mask_layer_visibility_checkbox.addEventListener("change", (event) => { + if (!event.target.checked) { + this.maskCanvas.style.opacity = "0"; + } else { + this.maskCanvas.style.opacity = String(this.mask_opacity); + } + }); + var mask_layer_image_container = document.createElement("div"); + mask_layer_image_container.classList.add( + "maskEditor_sidePanelLayerPreviewContainer" + ); + mask_layer_image_container.innerHTML = ' '; + var blending_options = ["black", "white", "negative"]; + const sidePanelDropdownAccent = this.darkMode ? "maskEditor_sidePanelDropdown_dark" : "maskEditor_sidePanelDropdown_light"; + var mask_layer_dropdown = document.createElement("select"); + mask_layer_dropdown.classList.add(sidePanelDropdownAccent); + mask_layer_dropdown.classList.add(sidePanelDropdownAccent); + blending_options.forEach((option) => { + var option_element = document.createElement("option"); + option_element.value = option; + option_element.innerText = option; + mask_layer_dropdown.appendChild(option_element); + if (option == this.maskBlendMode) { + option_element.selected = true; + } + }); + mask_layer_dropdown.addEventListener("change", (event) => { + const selectedValue = event.target.value; + this.maskBlendMode = selectedValue; + this.updateMaskColor(); + }); + mask_layer_container.appendChild(mask_layer_visibility_checkbox); + mask_layer_container.appendChild(mask_layer_image_container); + mask_layer_container.appendChild(mask_layer_dropdown); + const mask_layer_opacity_sliderObj = this.createSlider( + "Mask Opacity", + 0, + 1, + 0.01, + this.mask_opacity, + (event, value) => { + this.mask_opacity = parseFloat(value); + this.maskCanvas.style.opacity = String(this.mask_opacity); + if (this.mask_opacity == 0) { + mask_layer_visibility_checkbox.checked = false; + } else { + mask_layer_visibility_checkbox.checked = true; + } + } + ); + this.maskOpacitySlider = mask_layer_opacity_sliderObj.slider; + const image_layer_title = this.createContainerTitle("Image Layer"); + const image_layer_container = this.createContainer(false); + image_layer_container.classList.add(accentColor); + image_layer_container.classList.add("maskEditor_layerRow"); + const image_layer_visibility_checkbox = document.createElement("input"); + image_layer_visibility_checkbox.setAttribute("type", "checkbox"); + image_layer_visibility_checkbox.classList.add( + "maskEditor_sidePanelLayerCheckbox" + ); + image_layer_visibility_checkbox.checked = true; + image_layer_visibility_checkbox.addEventListener("change", (event) => { + if (!event.target.checked) { + this.imgCanvas.style.opacity = "0"; + } else { + this.imgCanvas.style.opacity = "1"; + } + }); + const image_layer_image_container = document.createElement("div"); + image_layer_image_container.classList.add( + "maskEditor_sidePanelLayerPreviewContainer" + ); + const image_layer_image = document.createElement("img"); + image_layer_image.id = "maskEditor_sidePanelImageLayerImage"; + image_layer_image.src = ComfyApp.clipspace?.imgs?.[ComfyApp.clipspace?.selectedIndex ?? 0]?.src ?? ""; + this.sidebarImage = image_layer_image; + image_layer_image_container.appendChild(image_layer_image); + image_layer_container.appendChild(image_layer_visibility_checkbox); + image_layer_container.appendChild(image_layer_image_container); + image_layer_settings_container.appendChild(image_layer_settings_title); + image_layer_settings_container.appendChild(mask_layer_title); + image_layer_settings_container.appendChild(mask_layer_container); + image_layer_settings_container.appendChild( + mask_layer_opacity_sliderObj.container + ); + image_layer_settings_container.appendChild(image_layer_title); + image_layer_settings_container.appendChild(image_layer_container); + return image_layer_settings_container; + } + createHeadline(title) { + var headline = document.createElement("h3"); + headline.classList.add("maskEditor_sidePanelTitle"); + headline.innerText = title; + return headline; + } + createContainer(flexDirection) { + var container = document.createElement("div"); + if (flexDirection) { + container.classList.add("maskEditor_sidePanelContainerColumn"); + } else { + container.classList.add("maskEditor_sidePanelContainerRow"); + } + return container; + } + createContainerTitle(title) { + var container_title = document.createElement("span"); + container_title.classList.add("maskEditor_sidePanelSubTitle"); + container_title.innerText = title; + return container_title; + } + createSlider(title, min, max2, step, value, callback) { + var slider_container = this.createContainer(true); + var slider_title = this.createContainerTitle(title); + var slider = document.createElement("input"); + slider.classList.add("maskEditor_sidePanelBrushRange"); + slider.setAttribute("type", "range"); + slider.setAttribute("min", String(min)); + slider.setAttribute("max", String(max2)); + slider.setAttribute("step", String(step)); + slider.setAttribute("value", String(value)); + slider.addEventListener("input", (event) => { + callback(event, event.target.value); + }); + slider_container.appendChild(slider_title); + slider_container.appendChild(slider); + return { container: slider_container, slider }; + } + createToggle(title, callback) { + var outer_Container = this.createContainer(false); + var toggle_title = this.createContainerTitle(title); + var toggle_container = document.createElement("label"); + toggle_container.classList.add("maskEditor_sidePanelToggleContainer"); + var toggle_checkbox = document.createElement("input"); + toggle_checkbox.setAttribute("type", "checkbox"); + toggle_checkbox.classList.add("maskEditor_sidePanelToggleCheckbox"); + toggle_checkbox.addEventListener("change", (event) => { + callback(event, event.target.checked); + }); + var toggleAccentColor = this.darkMode ? "maskEditor_toggle_bg_dark" : "maskEditor_toggle_bg_light"; + var toggle_switch = document.createElement("div"); + toggle_switch.classList.add("maskEditor_sidePanelToggleSwitch"); + toggle_switch.classList.add(toggleAccentColor); + toggle_container.appendChild(toggle_checkbox); + toggle_container.appendChild(toggle_switch); + outer_Container.appendChild(toggle_title); + outer_Container.appendChild(toggle_container); + return outer_Container; + } + createDropdown(title, options, callback) { + const sidePanelDropdownAccent = this.darkMode ? "maskEditor_sidePanelDropdown_dark" : "maskEditor_sidePanelDropdown_light"; + var dropdown_container = this.createContainer(false); + var dropdown_title = this.createContainerTitle(title); + var dropdown = document.createElement("select"); + dropdown.classList.add(sidePanelDropdownAccent); + dropdown.classList.add("maskEditor_containerDropdown"); + options.forEach((option) => { + var option_element = document.createElement("option"); + option_element.value = option; + option_element.innerText = option; + dropdown.appendChild(option_element); + }); + dropdown.addEventListener("change", (event) => { + callback(event, event.target.value); + }); + dropdown_container.appendChild(dropdown_title); + dropdown_container.appendChild(dropdown); + return dropdown_container; + } + createSeparator() { + var separator = document.createElement("div"); + separator.classList.add("maskEditor_sidePanelSeparator"); + return separator; + } + //---------------- + async createTopBar() { + const buttonAccentColor = this.darkMode ? "maskEditor_topPanelButton_dark" : "maskEditor_topPanelButton_light"; + const iconButtonAccentColor = this.darkMode ? "maskEditor_topPanelIconButton_dark" : "maskEditor_topPanelIconButton_light"; + var top_bar = document.createElement("div"); + top_bar.id = "maskEditor_topBar"; + var top_bar_title_container = document.createElement("div"); + top_bar_title_container.id = "maskEditor_topBarTitleContainer"; + var top_bar_title = document.createElement("h1"); + top_bar_title.id = "maskEditor_topBarTitle"; + top_bar_title.innerText = "ComfyUI"; + top_bar_title_container.appendChild(top_bar_title); + var top_bar_shortcuts_container = document.createElement("div"); + top_bar_shortcuts_container.id = "maskEditor_topBarShortcutsContainer"; + var top_bar_undo_button = document.createElement("div"); + top_bar_undo_button.id = "maskEditor_topBarUndoButton"; + top_bar_undo_button.classList.add(iconButtonAccentColor); + top_bar_undo_button.innerHTML = ' '; + top_bar_undo_button.addEventListener("click", () => { + this.messageBroker.publish("undo"); + }); + var top_bar_redo_button = document.createElement("div"); + top_bar_redo_button.id = "maskEditor_topBarRedoButton"; + top_bar_redo_button.classList.add(iconButtonAccentColor); + top_bar_redo_button.innerHTML = ' '; + top_bar_redo_button.addEventListener("click", () => { + this.messageBroker.publish("redo"); + }); + var top_bar_invert_button = document.createElement("button"); + top_bar_invert_button.id = "maskEditor_topBarInvertButton"; + top_bar_invert_button.classList.add(buttonAccentColor); + top_bar_invert_button.innerText = "Invert"; + top_bar_invert_button.addEventListener("click", () => { + this.messageBroker.publish("invert"); + }); + var top_bar_clear_button = document.createElement("button"); + top_bar_clear_button.id = "maskEditor_topBarClearButton"; + top_bar_clear_button.classList.add(buttonAccentColor); + top_bar_clear_button.innerText = "Clear"; + top_bar_clear_button.addEventListener("click", () => { + this.maskCtx.clearRect( + 0, + 0, + this.maskCanvas.width, + this.maskCanvas.height + ); + this.messageBroker.publish("saveState"); + }); + var top_bar_save_button = document.createElement("button"); + top_bar_save_button.id = "maskEditor_topBarSaveButton"; + top_bar_save_button.classList.add(buttonAccentColor); + top_bar_save_button.innerText = "Save"; + this.saveButton = top_bar_save_button; + top_bar_save_button.addEventListener("click", () => { + this.maskEditor.save(); + }); + var top_bar_cancel_button = document.createElement("button"); + top_bar_cancel_button.id = "maskEditor_topBarCancelButton"; + top_bar_cancel_button.classList.add(buttonAccentColor); + top_bar_cancel_button.innerText = "Cancel"; + top_bar_cancel_button.addEventListener("click", () => { + this.maskEditor.close(); + }); + top_bar_shortcuts_container.appendChild(top_bar_undo_button); + top_bar_shortcuts_container.appendChild(top_bar_redo_button); + top_bar_shortcuts_container.appendChild(top_bar_invert_button); + top_bar_shortcuts_container.appendChild(top_bar_clear_button); + top_bar_shortcuts_container.appendChild(top_bar_save_button); + top_bar_shortcuts_container.appendChild(top_bar_cancel_button); + top_bar.appendChild(top_bar_title_container); + top_bar.appendChild(top_bar_shortcuts_container); + return top_bar; + } + createToolPanel() { + var tool_panel = document.createElement("div"); + tool_panel.id = "maskEditor_toolPanel"; + this.toolPanel = tool_panel; + var toolPanelHoverAccent = this.darkMode ? "maskEditor_toolPanelContainerDark" : "maskEditor_toolPanelContainerLight"; + var toolElements = []; + var toolPanel_brushToolContainer = document.createElement("div"); + toolPanel_brushToolContainer.classList.add("maskEditor_toolPanelContainer"); + toolPanel_brushToolContainer.classList.add( + "maskEditor_toolPanelContainerSelected" + ); + toolPanel_brushToolContainer.classList.add(toolPanelHoverAccent); + toolPanel_brushToolContainer.innerHTML = ` + + + + + `; + toolElements.push(toolPanel_brushToolContainer); + toolPanel_brushToolContainer.addEventListener("click", () => { + this.messageBroker.publish( + "setTool", + "pen" + /* Pen */ + ); + for (let toolElement of toolElements) { + if (toolElement != toolPanel_brushToolContainer) { + toolElement.classList.remove("maskEditor_toolPanelContainerSelected"); + } else { + toolElement.classList.add("maskEditor_toolPanelContainerSelected"); + this.brushSettingsHTML.style.display = "flex"; + this.colorSelectSettingsHTML.style.display = "none"; + this.paintBucketSettingsHTML.style.display = "none"; + } + } + this.messageBroker.publish( + "setTool", + "pen" + /* Pen */ + ); + this.pointerZone.style.cursor = "none"; + }); + var toolPanel_brushToolIndicator = document.createElement("div"); + toolPanel_brushToolIndicator.classList.add("maskEditor_toolPanelIndicator"); + toolPanel_brushToolContainer.appendChild(toolPanel_brushToolIndicator); + var toolPanel_eraserToolContainer = document.createElement("div"); + toolPanel_eraserToolContainer.classList.add("maskEditor_toolPanelContainer"); + toolPanel_eraserToolContainer.classList.add(toolPanelHoverAccent); + toolPanel_eraserToolContainer.innerHTML = ` + + + + + + + + `; + toolElements.push(toolPanel_eraserToolContainer); + toolPanel_eraserToolContainer.addEventListener("click", () => { + this.messageBroker.publish( + "setTool", + "eraser" + /* Eraser */ + ); + for (let toolElement of toolElements) { + if (toolElement != toolPanel_eraserToolContainer) { + toolElement.classList.remove("maskEditor_toolPanelContainerSelected"); + } else { + toolElement.classList.add("maskEditor_toolPanelContainerSelected"); + this.brushSettingsHTML.style.display = "flex"; + this.colorSelectSettingsHTML.style.display = "none"; + this.paintBucketSettingsHTML.style.display = "none"; + } + } + this.messageBroker.publish( + "setTool", + "eraser" + /* Eraser */ + ); + this.pointerZone.style.cursor = "none"; + }); + var toolPanel_eraserToolIndicator = document.createElement("div"); + toolPanel_eraserToolIndicator.classList.add("maskEditor_toolPanelIndicator"); + toolPanel_eraserToolContainer.appendChild(toolPanel_eraserToolIndicator); + var toolPanel_paintBucketToolContainer = document.createElement("div"); + toolPanel_paintBucketToolContainer.classList.add( + "maskEditor_toolPanelContainer" + ); + toolPanel_paintBucketToolContainer.classList.add(toolPanelHoverAccent); + toolPanel_paintBucketToolContainer.innerHTML = ` + + + + + + `; + toolElements.push(toolPanel_paintBucketToolContainer); + toolPanel_paintBucketToolContainer.addEventListener("click", () => { + this.messageBroker.publish( + "setTool", + "paintBucket" + /* PaintBucket */ + ); + for (let toolElement of toolElements) { + if (toolElement != toolPanel_paintBucketToolContainer) { + toolElement.classList.remove("maskEditor_toolPanelContainerSelected"); + } else { + toolElement.classList.add("maskEditor_toolPanelContainerSelected"); + this.brushSettingsHTML.style.display = "none"; + this.colorSelectSettingsHTML.style.display = "none"; + this.paintBucketSettingsHTML.style.display = "flex"; + } + } + this.messageBroker.publish( + "setTool", + "paintBucket" + /* PaintBucket */ + ); + this.pointerZone.style.cursor = "url('/cursor/paintBucket.png') 30 25, auto"; + this.brush.style.opacity = "0"; + }); + var toolPanel_paintBucketToolIndicator = document.createElement("div"); + toolPanel_paintBucketToolIndicator.classList.add( + "maskEditor_toolPanelIndicator" + ); + toolPanel_paintBucketToolContainer.appendChild( + toolPanel_paintBucketToolIndicator + ); + var toolPanel_colorSelectToolContainer = document.createElement("div"); + toolPanel_colorSelectToolContainer.classList.add( + "maskEditor_toolPanelContainer" + ); + toolPanel_colorSelectToolContainer.classList.add(toolPanelHoverAccent); + toolPanel_colorSelectToolContainer.innerHTML = ` + + + + `; + toolElements.push(toolPanel_colorSelectToolContainer); + toolPanel_colorSelectToolContainer.addEventListener("click", () => { + this.messageBroker.publish("setTool", "colorSelect"); + for (let toolElement of toolElements) { + if (toolElement != toolPanel_colorSelectToolContainer) { + toolElement.classList.remove("maskEditor_toolPanelContainerSelected"); + } else { + toolElement.classList.add("maskEditor_toolPanelContainerSelected"); + this.brushSettingsHTML.style.display = "none"; + this.paintBucketSettingsHTML.style.display = "none"; + this.colorSelectSettingsHTML.style.display = "flex"; + } + } + this.messageBroker.publish( + "setTool", + "colorSelect" + /* ColorSelect */ + ); + this.pointerZone.style.cursor = "url('/cursor/colorSelect.png') 15 25, auto"; + this.brush.style.opacity = "0"; + }); + var toolPanel_colorSelectToolIndicator = document.createElement("div"); + toolPanel_colorSelectToolIndicator.classList.add( + "maskEditor_toolPanelIndicator" + ); + toolPanel_colorSelectToolContainer.appendChild( + toolPanel_colorSelectToolIndicator + ); + var toolPanel_zoomIndicator = document.createElement("div"); + toolPanel_zoomIndicator.classList.add("maskEditor_toolPanelZoomIndicator"); + toolPanel_zoomIndicator.classList.add(toolPanelHoverAccent); + var toolPanel_zoomText = document.createElement("span"); + toolPanel_zoomText.id = "maskEditor_toolPanelZoomText"; + toolPanel_zoomText.innerText = "100%"; + this.zoomTextHTML = toolPanel_zoomText; + var toolPanel_DimensionsText = document.createElement("span"); + toolPanel_DimensionsText.id = "maskEditor_toolPanelDimensionsText"; + toolPanel_DimensionsText.innerText = " "; + this.dimensionsTextHTML = toolPanel_DimensionsText; + toolPanel_zoomIndicator.appendChild(toolPanel_zoomText); + toolPanel_zoomIndicator.appendChild(toolPanel_DimensionsText); + toolPanel_zoomIndicator.addEventListener("click", () => { + this.messageBroker.publish("resetZoom"); + }); + tool_panel.appendChild(toolPanel_brushToolContainer); + tool_panel.appendChild(toolPanel_eraserToolContainer); + tool_panel.appendChild(toolPanel_paintBucketToolContainer); + tool_panel.appendChild(toolPanel_colorSelectToolContainer); + tool_panel.appendChild(toolPanel_zoomIndicator); + return tool_panel; + } + createPointerZone() { + const pointer_zone = document.createElement("div"); + pointer_zone.id = "maskEditor_pointerZone"; + this.pointerZone = pointer_zone; + pointer_zone.addEventListener("pointerdown", (event) => { + this.messageBroker.publish("pointerDown", event); + }); + pointer_zone.addEventListener("pointermove", (event) => { + this.messageBroker.publish("pointerMove", event); + }); + pointer_zone.addEventListener("pointerup", (event) => { + this.messageBroker.publish("pointerUp", event); + }); + pointer_zone.addEventListener("pointerleave", (event) => { + this.brush.style.opacity = "0"; + this.pointerZone.style.cursor = ""; + }); + pointer_zone.addEventListener("touchstart", (event) => { + this.messageBroker.publish("handleTouchStart", event); + }); + pointer_zone.addEventListener("touchmove", (event) => { + this.messageBroker.publish("handleTouchMove", event); + }); + pointer_zone.addEventListener("touchend", (event) => { + this.messageBroker.publish("handleTouchEnd", event); + }); + pointer_zone.addEventListener( + "wheel", + (event) => this.messageBroker.publish("wheel", event) + ); + pointer_zone.addEventListener( + "pointerenter", + async (event) => { + this.updateCursor(); + } + ); + return pointer_zone; + } + async screenToCanvas(clientPoint) { + const zoomRatio = await this.messageBroker.pull("zoomRatio"); + const canvasRect = this.maskCanvas.getBoundingClientRect(); + const offsetX = clientPoint.x - canvasRect.left + this.toolPanel.clientWidth; + const offsetY = clientPoint.y - canvasRect.top + 44; + const x = offsetX / zoomRatio; + const y = offsetY / zoomRatio; + return { x, y }; + } + setEventHandler() { + this.maskCanvas.addEventListener("contextmenu", (event) => { + event.preventDefault(); + }); + this.rootElement.addEventListener("contextmenu", (event) => { + event.preventDefault(); + }); + this.rootElement.addEventListener("dragstart", (event) => { + if (event.ctrlKey) { + event.preventDefault(); + } + }); + } + async createBrush() { + var brush = document.createElement("div"); + const brushSettings = await this.messageBroker.pull("brushSettings"); + brush.id = "maskEditor_brush"; + var brush_preview_gradient = document.createElement("div"); + brush_preview_gradient.id = "maskEditor_brushPreviewGradient"; + brush.appendChild(brush_preview_gradient); + this.brush = brush; + this.brushPreviewGradient = brush_preview_gradient; + return brush; + } + async setImages(imgCanvas) { + const imgCtx = imgCanvas.getContext("2d", { willReadFrequently: true }); + const maskCtx = this.maskCtx; + const maskCanvas = this.maskCanvas; + imgCtx.clearRect(0, 0, this.imgCanvas.width, this.imgCanvas.height); + maskCtx.clearRect(0, 0, this.maskCanvas.width, this.maskCanvas.height); + const alpha_url = new URL( + ComfyApp.clipspace?.imgs?.[ComfyApp.clipspace?.selectedIndex ?? 0]?.src ?? "" + ); + alpha_url.searchParams.delete("channel"); + alpha_url.searchParams.delete("preview"); + alpha_url.searchParams.set("channel", "a"); + let mask_image = await this.loadImage(alpha_url); + if (!ComfyApp.clipspace?.imgs?.[ComfyApp.clipspace?.selectedIndex ?? 0]?.src) { + throw new Error( + "Unable to access image source - clipspace or image is null" + ); + } + const rgb_url = new URL( + ComfyApp.clipspace.imgs[ComfyApp.clipspace.selectedIndex].src + ); + this.imageURL = rgb_url; + console.log(rgb_url); + rgb_url.searchParams.delete("channel"); + rgb_url.searchParams.set("channel", "rgb"); + this.image = new Image(); + this.image = await new Promise((resolve, reject) => { + const img = new Image(); + img.onload = () => resolve(img); + img.onerror = reject; + img.src = rgb_url.toString(); + }); + maskCanvas.width = this.image.width; + maskCanvas.height = this.image.height; + this.dimensionsTextHTML.innerText = `${this.image.width}x${this.image.height}`; + await this.invalidateCanvas(this.image, mask_image); + this.messageBroker.publish("initZoomPan", [this.image, this.rootElement]); + } + async invalidateCanvas(orig_image, mask_image) { + this.imgCanvas.width = orig_image.width; + this.imgCanvas.height = orig_image.height; + this.maskCanvas.width = orig_image.width; + this.maskCanvas.height = orig_image.height; + let imgCtx = this.imgCanvas.getContext("2d", { willReadFrequently: true }); + let maskCtx = this.maskCanvas.getContext("2d", { + willReadFrequently: true + }); + imgCtx.drawImage(orig_image, 0, 0, orig_image.width, orig_image.height); + await this.prepare_mask( + mask_image, + this.maskCanvas, + maskCtx, + await this.getMaskColor() + ); + } + async prepare_mask(image, maskCanvas, maskCtx, maskColor) { + maskCtx.drawImage(image, 0, 0, maskCanvas.width, maskCanvas.height); + const maskData = maskCtx.getImageData( + 0, + 0, + maskCanvas.width, + maskCanvas.height + ); + for (let i = 0; i < maskData.data.length; i += 4) { + const alpha = maskData.data[i + 3]; + maskData.data[i] = maskColor.r; + maskData.data[i + 1] = maskColor.g; + maskData.data[i + 2] = maskColor.b; + maskData.data[i + 3] = 255 - alpha; + } + maskCtx.globalCompositeOperation = "source-over"; + maskCtx.putImageData(maskData, 0, 0); + } + async updateMaskColor() { + const maskCanvasStyle = this.getMaskCanvasStyle(); + this.maskCanvas.style.mixBlendMode = maskCanvasStyle.mixBlendMode; + this.maskCanvas.style.opacity = maskCanvasStyle.opacity.toString(); + const maskColor = await this.getMaskColor(); + this.maskCtx.fillStyle = `rgb(${maskColor.r}, ${maskColor.g}, ${maskColor.b})`; + this.setCanvasBackground(); + const maskData = this.maskCtx.getImageData( + 0, + 0, + this.maskCanvas.width, + this.maskCanvas.height + ); + for (let i = 0; i < maskData.data.length; i += 4) { + maskData.data[i] = maskColor.r; + maskData.data[i + 1] = maskColor.g; + maskData.data[i + 2] = maskColor.b; + } + this.maskCtx.putImageData(maskData, 0, 0); + } + getMaskCanvasStyle() { + if (this.maskBlendMode === "negative") { + return { + mixBlendMode: "difference", + opacity: "1" + }; + } else { + return { + mixBlendMode: "initial", + opacity: this.mask_opacity + }; + } + } + detectLightMode() { + this.darkMode = document.body.classList.contains("dark-theme"); + } + loadImage(imagePath) { + return new Promise((resolve, reject) => { + const image = new Image(); + image.onload = function() { + resolve(image); + }; + image.onerror = function(error) { + reject(error); + }; + image.src = imagePath.href; + }); + } + async updateBrushPreview() { + const cursorPoint = await this.messageBroker.pull("cursorPoint"); + const pan_offset = await this.messageBroker.pull("panOffset"); + const brushSettings = await this.messageBroker.pull("brushSettings"); + const zoom_ratio = await this.messageBroker.pull("zoomRatio"); + const centerX = cursorPoint.x + pan_offset.x; + const centerY = cursorPoint.y + pan_offset.y; + const brush = this.brush; + const hardness = brushSettings.hardness; + const extendedSize = brushSettings.size * (2 - hardness) * 2 * zoom_ratio; + this.brushSizeSlider.value = String(brushSettings.size); + this.brushHardnessSlider.value = String(hardness); + brush.style.width = extendedSize + "px"; + brush.style.height = extendedSize + "px"; + brush.style.left = centerX - extendedSize / 2 + "px"; + brush.style.top = centerY - extendedSize / 2 + "px"; + if (hardness === 1) { + this.brushPreviewGradient.style.background = "rgba(255, 0, 0, 0.5)"; + return; + } + const opacityStop = hardness / 4 + 0.25; + this.brushPreviewGradient.style.background = ` + radial-gradient( + circle, + rgba(255, 0, 0, 0.5) 0%, + rgba(255, 0, 0, ${opacityStop}) ${hardness * 100}%, + rgba(255, 0, 0, 0) 100% + ) + `; + } + getMaskBlendMode() { + return this.maskBlendMode; + } + setSidebarImage() { + this.sidebarImage.src = this.imageURL.href; + } + async getMaskColor() { + if (this.maskBlendMode === "black") { + return { r: 0, g: 0, b: 0 }; + } + if (this.maskBlendMode === "white") { + return { r: 255, g: 255, b: 255 }; + } + if (this.maskBlendMode === "negative") { + return { r: 255, g: 255, b: 255 }; + } + return { r: 0, g: 0, b: 0 }; + } + async getMaskFillStyle() { + const maskColor = await this.getMaskColor(); + return "rgb(" + maskColor.r + "," + maskColor.g + "," + maskColor.b + ")"; + } + async setCanvasBackground() { + if (this.maskBlendMode === "white") { + this.canvasBackground.style.background = "black"; + } else { + this.canvasBackground.style.background = "white"; + } + } + getMaskCanvas() { + return this.maskCanvas; + } + getImgCanvas() { + return this.imgCanvas; + } + getImage() { + return this.image; + } + setBrushOpacity(opacity) { + this.brush.style.opacity = String(opacity); + } + setSaveButtonEnabled(enabled) { + this.saveButton.disabled = !enabled; + } + setSaveButtonText(text) { + this.saveButton.innerText = text; + } + handlePaintBucketCursor(isPaintBucket) { + if (isPaintBucket) { + this.pointerZone.style.cursor = "url('/cursor/paintBucket.png') 30 25, auto"; + } else { + this.pointerZone.style.cursor = "none"; + } + } + handlePanCursor(isPanning) { + if (isPanning) { + this.pointerZone.style.cursor = "grabbing"; + } else { + this.pointerZone.style.cursor = "none"; + } + } + setBrushVisibility(visible) { + this.brush.style.opacity = visible ? "1" : "0"; + } + setBrushPreviewGradientVisibility(visible) { + this.brushPreviewGradient.style.display = visible ? "block" : "none"; + } + async updateCursor() { + const currentTool = await this.messageBroker.pull("currentTool"); + if (currentTool === "paintBucket") { + this.pointerZone.style.cursor = "url('/cursor/paintBucket.png') 30 25, auto"; + this.setBrushOpacity(0); + } else if (currentTool === "colorSelect") { + this.pointerZone.style.cursor = "url('/cursor/colorSelect.png') 15 25, auto"; + this.setBrushOpacity(0); + } else { + this.pointerZone.style.cursor = "none"; + this.setBrushOpacity(1); + } + this.updateBrushPreview(); + this.setBrushPreviewGradientVisibility(false); + } + setZoomText(zoomText) { + this.zoomTextHTML.innerText = zoomText; + } + setDimensionsText(dimensionsText) { + this.dimensionsTextHTML.innerText = dimensionsText; + } +} +class ToolManager { + static { + __name(this, "ToolManager"); + } + maskEditor; + messageBroker; + mouseDownPoint = null; + currentTool = "pen"; + isAdjustingBrush = false; + // is user adjusting brush size or hardness with alt + right mouse button + constructor(maskEditor) { + this.maskEditor = maskEditor; + this.messageBroker = maskEditor.getMessageBroker(); + this.addListeners(); + this.addPullTopics(); + } + addListeners() { + this.messageBroker.subscribe("setTool", async (tool) => { + this.setTool(tool); + }); + this.messageBroker.subscribe("pointerDown", async (event) => { + this.handlePointerDown(event); + }); + this.messageBroker.subscribe("pointerMove", async (event) => { + this.handlePointerMove(event); + }); + this.messageBroker.subscribe("pointerUp", async (event) => { + this.handlePointerUp(event); + }); + this.messageBroker.subscribe("wheel", async (event) => { + this.handleWheelEvent(event); + }); + } + async addPullTopics() { + this.messageBroker.createPullTopic( + "currentTool", + async () => this.getCurrentTool() + ); + } + //tools + setTool(tool) { + this.currentTool = tool; + if (tool != "colorSelect") { + this.messageBroker.publish("clearLastPoint"); + } + } + getCurrentTool() { + return this.currentTool; + } + async handlePointerDown(event) { + event.preventDefault(); + if (event.pointerType == "touch") return; + var isSpacePressed = await this.messageBroker.pull("isKeyPressed", " "); + if (event.buttons === 4 || event.buttons === 1 && isSpacePressed) { + this.messageBroker.publish("panStart", event); + this.messageBroker.publish("setBrushVisibility", false); + return; + } + if (this.currentTool === "paintBucket" && event.button === 0) { + const offset = { x: event.offsetX, y: event.offsetY }; + const coords_canvas = await this.messageBroker.pull( + "screenToCanvas", + offset + ); + this.messageBroker.publish("paintBucketFill", coords_canvas); + this.messageBroker.publish("saveState"); + return; + } + if (this.currentTool === "colorSelect" && event.button === 0) { + const offset = { x: event.offsetX, y: event.offsetY }; + const coords_canvas = await this.messageBroker.pull( + "screenToCanvas", + offset + ); + this.messageBroker.publish("colorSelectFill", coords_canvas); + return; + } + if (event.altKey && event.button === 2) { + this.isAdjustingBrush = true; + this.messageBroker.publish("brushAdjustmentStart", event); + return; + } + var isDrawingTool = [ + "pen", + "eraser" + /* Eraser */ + ].includes(this.currentTool); + if ([0, 2].includes(event.button) && isDrawingTool) { + this.messageBroker.publish("drawStart", event); + return; + } + } + async handlePointerMove(event) { + event.preventDefault(); + if (event.pointerType == "touch") return; + const newCursorPoint = { x: event.clientX, y: event.clientY }; + this.messageBroker.publish("cursorPoint", newCursorPoint); + var isSpacePressed = await this.messageBroker.pull("isKeyPressed", " "); + this.messageBroker.publish("updateBrushPreview"); + if (event.buttons === 4 || event.buttons === 1 && isSpacePressed) { + this.messageBroker.publish("panMove", event); + return; + } + var isDrawingTool = [ + "pen", + "eraser" + /* Eraser */ + ].includes(this.currentTool); + if (!isDrawingTool) return; + if (this.isAdjustingBrush && (this.currentTool === "pen" || this.currentTool === "eraser") && event.altKey && event.buttons === 2) { + this.messageBroker.publish("brushAdjustment", event); + return; + } + if (event.buttons == 1 || event.buttons == 2) { + this.messageBroker.publish("draw", event); + return; + } + } + handlePointerUp(event) { + this.messageBroker.publish("panCursor", false); + if (event.pointerType === "touch") return; + this.messageBroker.publish("updateCursor"); + this.isAdjustingBrush = false; + this.messageBroker.publish("drawEnd", event); + this.mouseDownPoint = null; + } + handleWheelEvent(event) { + this.messageBroker.publish("zoom", event); + const newCursorPoint = { x: event.clientX, y: event.clientY }; + this.messageBroker.publish("cursorPoint", newCursorPoint); + } +} +class PanAndZoomManager { + static { + __name(this, "PanAndZoomManager"); + } + maskEditor; + messageBroker; + DOUBLE_TAP_DELAY = 300; + lastTwoFingerTap = 0; + isTouchZooming = false; + lastTouchZoomDistance = 0; + lastTouchMidPoint = { x: 0, y: 0 }; + lastTouchPoint = { x: 0, y: 0 }; + zoom_ratio = 1; + interpolatedZoomRatio = 1; + pan_offset = { x: 0, y: 0 }; + mouseDownPoint = null; + initialPan = { x: 0, y: 0 }; + canvasContainer = null; + maskCanvas = null; + rootElement = null; + image = null; + imageRootWidth = 0; + imageRootHeight = 0; + cursorPoint = { x: 0, y: 0 }; + constructor(maskEditor) { + this.maskEditor = maskEditor; + this.messageBroker = maskEditor.getMessageBroker(); + this.addListeners(); + this.addPullTopics(); + } + addListeners() { + this.messageBroker.subscribe( + "initZoomPan", + async (args) => { + await this.initializeCanvasPanZoom(args[0], args[1]); + } + ); + this.messageBroker.subscribe("panStart", async (event) => { + this.handlePanStart(event); + }); + this.messageBroker.subscribe("panMove", async (event) => { + this.handlePanMove(event); + }); + this.messageBroker.subscribe("zoom", async (event) => { + this.zoom(event); + }); + this.messageBroker.subscribe("cursorPoint", async (point) => { + this.updateCursorPosition(point); + }); + this.messageBroker.subscribe( + "handleTouchStart", + async (event) => { + this.handleTouchStart(event); + } + ); + this.messageBroker.subscribe( + "handleTouchMove", + async (event) => { + this.handleTouchMove(event); + } + ); + this.messageBroker.subscribe( + "handleTouchEnd", + async (event) => { + this.handleTouchEnd(event); + } + ); + this.messageBroker.subscribe("resetZoom", async () => { + if (this.interpolatedZoomRatio === 1) return; + await this.smoothResetView(); + }); + } + addPullTopics() { + this.messageBroker.createPullTopic( + "cursorPoint", + async () => this.cursorPoint + ); + this.messageBroker.createPullTopic("zoomRatio", async () => this.zoom_ratio); + this.messageBroker.createPullTopic("panOffset", async () => this.pan_offset); + } + handleTouchStart(event) { + event.preventDefault(); + if (event.touches[0].touchType === "stylus") return; + this.messageBroker.publish("setBrushVisibility", false); + if (event.touches.length === 2) { + const currentTime = (/* @__PURE__ */ new Date()).getTime(); + const tapTimeDiff = currentTime - this.lastTwoFingerTap; + if (tapTimeDiff < this.DOUBLE_TAP_DELAY) { + this.handleDoubleTap(); + this.lastTwoFingerTap = 0; + } else { + this.lastTwoFingerTap = currentTime; + this.isTouchZooming = true; + this.lastTouchZoomDistance = this.getTouchDistance(event.touches); + const midpoint = this.getTouchMidpoint(event.touches); + this.lastTouchMidPoint = midpoint; + } + } else if (event.touches.length === 1) { + this.lastTouchPoint = { + x: event.touches[0].clientX, + y: event.touches[0].clientY + }; + } + } + async handleTouchMove(event) { + event.preventDefault(); + if (event.touches[0].touchType === "stylus") return; + this.lastTwoFingerTap = 0; + if (this.isTouchZooming && event.touches.length === 2) { + const newDistance = this.getTouchDistance(event.touches); + const zoomFactor = newDistance / this.lastTouchZoomDistance; + const oldZoom = this.zoom_ratio; + this.zoom_ratio = Math.max( + 0.2, + Math.min(10, this.zoom_ratio * zoomFactor) + ); + const newZoom = this.zoom_ratio; + const midpoint = this.getTouchMidpoint(event.touches); + if (this.lastTouchMidPoint) { + const deltaX = midpoint.x - this.lastTouchMidPoint.x; + const deltaY = midpoint.y - this.lastTouchMidPoint.y; + this.pan_offset.x += deltaX; + this.pan_offset.y += deltaY; + } + if (this.maskCanvas === null) { + this.maskCanvas = await this.messageBroker.pull("maskCanvas"); + } + const rect = this.maskCanvas.getBoundingClientRect(); + const touchX = midpoint.x - rect.left; + const touchY = midpoint.y - rect.top; + const scaleFactor = newZoom / oldZoom; + this.pan_offset.x += touchX - touchX * scaleFactor; + this.pan_offset.y += touchY - touchY * scaleFactor; + this.invalidatePanZoom(); + this.lastTouchZoomDistance = newDistance; + this.lastTouchMidPoint = midpoint; + } else if (event.touches.length === 1) { + this.handleSingleTouchPan(event.touches[0]); + } + } + handleTouchEnd(event) { + event.preventDefault(); + if (event.touches.length === 0 && event.touches[0].touchType === "stylus") { + return; + } + this.isTouchZooming = false; + this.lastTouchMidPoint = { x: 0, y: 0 }; + if (event.touches.length === 0) { + this.lastTouchPoint = { x: 0, y: 0 }; + } else if (event.touches.length === 1) { + this.lastTouchPoint = { + x: event.touches[0].clientX, + y: event.touches[0].clientY + }; + } + } + getTouchDistance(touches) { + const dx = touches[0].clientX - touches[1].clientX; + const dy = touches[0].clientY - touches[1].clientY; + return Math.sqrt(dx * dx + dy * dy); + } + getTouchMidpoint(touches) { + return { + x: (touches[0].clientX + touches[1].clientX) / 2, + y: (touches[0].clientY + touches[1].clientY) / 2 + }; + } + async handleSingleTouchPan(touch) { + if (this.lastTouchPoint === null) { + this.lastTouchPoint = { x: touch.clientX, y: touch.clientY }; + return; + } + const deltaX = touch.clientX - this.lastTouchPoint.x; + const deltaY = touch.clientY - this.lastTouchPoint.y; + this.pan_offset.x += deltaX; + this.pan_offset.y += deltaY; + await this.invalidatePanZoom(); + this.lastTouchPoint = { x: touch.clientX, y: touch.clientY }; + } + updateCursorPosition(clientPoint) { + var cursorX = clientPoint.x - this.pan_offset.x; + var cursorY = clientPoint.y - this.pan_offset.y; + this.cursorPoint = { x: cursorX, y: cursorY }; + } + //prob redundant + handleDoubleTap() { + this.messageBroker.publish("undo"); + } + async zoom(event) { + const cursorPoint = { x: event.clientX, y: event.clientY }; + const oldZoom = this.zoom_ratio; + const zoomFactor = event.deltaY < 0 ? 1.1 : 0.9; + this.zoom_ratio = Math.max( + 0.2, + Math.min(10, this.zoom_ratio * zoomFactor) + ); + const newZoom = this.zoom_ratio; + const maskCanvas = await this.messageBroker.pull("maskCanvas"); + const rect = maskCanvas.getBoundingClientRect(); + const mouseX = cursorPoint.x - rect.left; + const mouseY = cursorPoint.y - rect.top; + console.log(oldZoom, newZoom); + const scaleFactor = newZoom / oldZoom; + this.pan_offset.x += mouseX - mouseX * scaleFactor; + this.pan_offset.y += mouseY - mouseY * scaleFactor; + await this.invalidatePanZoom(); + const newImageWidth = maskCanvas.clientWidth; + const zoomRatio = newImageWidth / this.imageRootWidth; + this.interpolatedZoomRatio = zoomRatio; + this.messageBroker.publish("setZoomText", `${Math.round(zoomRatio * 100)}%`); + this.updateCursorPosition(cursorPoint); + requestAnimationFrame(() => { + this.messageBroker.publish("updateBrushPreview"); + }); + } + async smoothResetView(duration = 500) { + const startZoom = this.zoom_ratio; + const startPan = { ...this.pan_offset }; + const sidePanelWidth = 220; + const toolPanelWidth = 64; + const topBarHeight = 44; + const availableWidth = this.rootElement.clientWidth - sidePanelWidth - toolPanelWidth; + const availableHeight = this.rootElement.clientHeight - topBarHeight; + const zoomRatioWidth = availableWidth / this.image.width; + const zoomRatioHeight = availableHeight / this.image.height; + const targetZoom = Math.min(zoomRatioWidth, zoomRatioHeight); + const aspectRatio = this.image.width / this.image.height; + let finalWidth = 0; + let finalHeight = 0; + const targetPan = { x: toolPanelWidth, y: topBarHeight }; + if (zoomRatioHeight > zoomRatioWidth) { + finalWidth = availableWidth; + finalHeight = finalWidth / aspectRatio; + targetPan.y = (availableHeight - finalHeight) / 2 + topBarHeight; + } else { + finalHeight = availableHeight; + finalWidth = finalHeight * aspectRatio; + targetPan.x = (availableWidth - finalWidth) / 2 + toolPanelWidth; + } + const startTime = performance.now(); + const animate = /* @__PURE__ */ __name((currentTime) => { + const elapsed = currentTime - startTime; + const progress = Math.min(elapsed / duration, 1); + const eased = 1 - Math.pow(1 - progress, 3); + const currentZoom = startZoom + (targetZoom - startZoom) * eased; + this.zoom_ratio = currentZoom; + this.pan_offset.x = startPan.x + (targetPan.x - startPan.x) * eased; + this.pan_offset.y = startPan.y + (targetPan.y - startPan.y) * eased; + this.invalidatePanZoom(); + const interpolatedZoomRatio = startZoom + (1 - startZoom) * eased; + this.messageBroker.publish( + "setZoomText", + `${Math.round(interpolatedZoomRatio * 100)}%` + ); + if (progress < 1) { + requestAnimationFrame(animate); + } + }, "animate"); + requestAnimationFrame(animate); + this.interpolatedZoomRatio = 1; + } + async initializeCanvasPanZoom(image, rootElement) { + let sidePanelWidth = 220; + const toolPanelWidth = 64; + let topBarHeight = 44; + this.rootElement = rootElement; + let availableWidth = rootElement.clientWidth - sidePanelWidth - toolPanelWidth; + let availableHeight = rootElement.clientHeight - topBarHeight; + let zoomRatioWidth = availableWidth / image.width; + let zoomRatioHeight = availableHeight / image.height; + let aspectRatio = image.width / image.height; + let finalWidth = 0; + let finalHeight = 0; + let pan_offset = { x: toolPanelWidth, y: topBarHeight }; + if (zoomRatioHeight > zoomRatioWidth) { + finalWidth = availableWidth; + finalHeight = finalWidth / aspectRatio; + pan_offset.y = (availableHeight - finalHeight) / 2 + topBarHeight; + } else { + finalHeight = availableHeight; + finalWidth = finalHeight * aspectRatio; + pan_offset.x = (availableWidth - finalWidth) / 2 + toolPanelWidth; + } + if (this.image === null) { + this.image = image; + } + this.imageRootWidth = finalWidth; + this.imageRootHeight = finalHeight; + this.zoom_ratio = Math.min(zoomRatioWidth, zoomRatioHeight); + this.pan_offset = pan_offset; + await this.invalidatePanZoom(); + } + async invalidatePanZoom() { + if (!this.image?.width || !this.image?.height || !this.pan_offset || !this.zoom_ratio) { + console.warn("Missing required properties for pan/zoom"); + return; + } + const raw_width = this.image.width * this.zoom_ratio; + const raw_height = this.image.height * this.zoom_ratio; + this.canvasContainer ??= await this.messageBroker?.pull("getCanvasContainer"); + if (!this.canvasContainer) return; + Object.assign(this.canvasContainer.style, { + width: `${raw_width}px`, + height: `${raw_height}px`, + left: `${this.pan_offset.x}px`, + top: `${this.pan_offset.y}px` + }); + } + handlePanStart(event) { + let coords_canvas = this.messageBroker.pull("screenToCanvas", { + x: event.offsetX, + y: event.offsetY + }); + this.mouseDownPoint = { x: event.clientX, y: event.clientY }; + this.messageBroker.publish("panCursor", true); + this.initialPan = this.pan_offset; + return; + } + handlePanMove(event) { + if (this.mouseDownPoint === null) throw new Error("mouseDownPoint is null"); + let deltaX = this.mouseDownPoint.x - event.clientX; + let deltaY = this.mouseDownPoint.y - event.clientY; + let pan_x = this.initialPan.x - deltaX; + let pan_y = this.initialPan.y - deltaY; + this.pan_offset = { x: pan_x, y: pan_y }; + this.invalidatePanZoom(); + } +} +class MessageBroker { + static { + __name(this, "MessageBroker"); + } + pushTopics = {}; + pullTopics = {}; + constructor() { + this.registerListeners(); + } + // Push + registerListeners() { + this.createPushTopic("panStart"); + this.createPushTopic("paintBucketFill"); + this.createPushTopic("saveState"); + this.createPushTopic("brushAdjustmentStart"); + this.createPushTopic("drawStart"); + this.createPushTopic("panMove"); + this.createPushTopic("updateBrushPreview"); + this.createPushTopic("brushAdjustment"); + this.createPushTopic("draw"); + this.createPushTopic("paintBucketCursor"); + this.createPushTopic("panCursor"); + this.createPushTopic("drawEnd"); + this.createPushTopic("zoom"); + this.createPushTopic("undo"); + this.createPushTopic("redo"); + this.createPushTopic("cursorPoint"); + this.createPushTopic("panOffset"); + this.createPushTopic("zoomRatio"); + this.createPushTopic("getMaskCanvas"); + this.createPushTopic("getCanvasContainer"); + this.createPushTopic("screenToCanvas"); + this.createPushTopic("isKeyPressed"); + this.createPushTopic("isCombinationPressed"); + this.createPushTopic("setPaintBucketTolerance"); + this.createPushTopic("setBrushSize"); + this.createPushTopic("setBrushHardness"); + this.createPushTopic("setBrushOpacity"); + this.createPushTopic("setBrushShape"); + this.createPushTopic("initZoomPan"); + this.createPushTopic("setTool"); + this.createPushTopic("pointerDown"); + this.createPushTopic("pointerMove"); + this.createPushTopic("pointerUp"); + this.createPushTopic("wheel"); + this.createPushTopic("initPaintBucketTool"); + this.createPushTopic("setBrushVisibility"); + this.createPushTopic("setBrushPreviewGradientVisibility"); + this.createPushTopic("handleTouchStart"); + this.createPushTopic("handleTouchMove"); + this.createPushTopic("handleTouchEnd"); + this.createPushTopic("colorSelectFill"); + this.createPushTopic("setColorSelectTolerance"); + this.createPushTopic("setLivePreview"); + this.createPushTopic("updateCursor"); + this.createPushTopic("setColorComparisonMethod"); + this.createPushTopic("clearLastPoint"); + this.createPushTopic("setWholeImage"); + this.createPushTopic("setMaskBoundary"); + this.createPushTopic("setMaskTolerance"); + this.createPushTopic("setBrushSmoothingPrecision"); + this.createPushTopic("setZoomText"); + this.createPushTopic("resetZoom"); + this.createPushTopic("invert"); + } + /** + * Creates a new push topic (listener is notified) + * + * @param {string} topicName - The name of the topic to create. + * @throws {Error} If the topic already exists. + */ + createPushTopic(topicName) { + if (this.topicExists(this.pushTopics, topicName)) { + throw new Error("Topic already exists"); + } + this.pushTopics[topicName] = []; + } + /** + * Subscribe a callback function to the given topic. + * + * @param {string} topicName - The name of the topic to subscribe to. + * @param {Callback} callback - The callback function to be subscribed. + * @throws {Error} If the topic does not exist. + */ + subscribe(topicName, callback) { + if (!this.topicExists(this.pushTopics, topicName)) { + throw new Error(`Topic "${topicName}" does not exist!`); + } + this.pushTopics[topicName].push(callback); + } + /** + * Removes a callback function from the list of subscribers for a given topic. + * + * @param {string} topicName - The name of the topic to unsubscribe from. + * @param {Callback} callback - The callback function to remove from the subscribers list. + * @throws {Error} If the topic does not exist in the list of topics. + */ + unsubscribe(topicName, callback) { + if (!this.topicExists(this.pushTopics, topicName)) { + throw new Error("Topic does not exist"); + } + const index = this.pushTopics[topicName].indexOf(callback); + if (index > -1) { + this.pushTopics[topicName].splice(index, 1); + } + } + /** + * Publishes data to a specified topic with variable number of arguments. + * @param {string} topicName - The name of the topic to publish to. + * @param {...any[]} args - Variable number of arguments to pass to subscribers + * @throws {Error} If the specified topic does not exist. + */ + publish(topicName, ...args) { + if (!this.topicExists(this.pushTopics, topicName)) { + throw new Error(`Topic "${topicName}" does not exist!`); + } + this.pushTopics[topicName].forEach((callback) => { + callback(...args); + }); + } + // Pull + /** + * Creates a new pull topic (listener must request data) + * + * @param {string} topicName - The name of the topic to create. + * @param {() => Promise} callBack - The callback function to be called when data is requested. + * @throws {Error} If the topic already exists. + */ + createPullTopic(topicName, callBack) { + if (this.topicExists(this.pullTopics, topicName)) { + throw new Error("Topic already exists"); + } + this.pullTopics[topicName] = callBack; + } + /** + * Requests data from a specified pull topic. + * @param {string} topicName - The name of the topic to request data from. + * @returns {Promise} - The data from the pull topic. + * @throws {Error} If the specified topic does not exist. + */ + async pull(topicName, data) { + if (!this.topicExists(this.pullTopics, topicName)) { + throw new Error("Topic does not exist"); + } + const callBack = this.pullTopics[topicName]; + try { + const result = await callBack(data); + return result; + } catch (error) { + console.error(`Error pulling data from topic "${topicName}":`, error); + throw error; + } + } + // Helper Methods + /** + * Checks if a topic exists in the given topics object. + * @param {Record} topics - The topics object to check. + * @param {string} topicName - The name of the topic to check. + * @returns {boolean} - True if the topic exists, false otherwise. + */ + topicExists(topics, topicName) { + return topics.hasOwnProperty(topicName); + } +} +class KeyboardManager { + static { + __name(this, "KeyboardManager"); + } + keysDown = []; + maskEditor; + messageBroker; + constructor(maskEditor) { + this.maskEditor = maskEditor; + this.messageBroker = maskEditor.getMessageBroker(); + this.addPullTopics(); + } + addPullTopics() { + this.messageBroker.createPullTopic( + "isKeyPressed", + (key) => Promise.resolve(this.isKeyDown(key)) + ); + } + addListeners() { + document.addEventListener("keydown", (event) => this.handleKeyDown(event)); + document.addEventListener("keyup", (event) => this.handleKeyUp(event)); + window.addEventListener("blur", () => this.clearKeys()); + } + removeListeners() { + document.removeEventListener( + "keydown", + (event) => this.handleKeyDown(event) + ); + document.removeEventListener("keyup", (event) => this.handleKeyUp(event)); + } + clearKeys() { + this.keysDown = []; + } + handleKeyDown(event) { + if (!this.keysDown.includes(event.key)) { + this.keysDown.push(event.key); + } + } + handleKeyUp(event) { + this.keysDown = this.keysDown.filter((key) => key !== event.key); + } + isKeyDown(key) { + return this.keysDown.includes(key); + } + // combinations + undoCombinationPressed() { + const combination = ["ctrl", "z"]; + const keysDownLower = this.keysDown.map((key) => key.toLowerCase()); + const result = combination.every((key) => keysDownLower.includes(key)); + if (result) this.messageBroker.publish("undo"); + return result; + } + redoCombinationPressed() { + const combination = ["ctrl", "shift", "z"]; + const keysDownLower = this.keysDown.map((key) => key.toLowerCase()); + const result = combination.every((key) => keysDownLower.includes(key)); + if (result) this.messageBroker.publish("redo"); + return result; + } +} +app.registerExtension({ + name: "Comfy.MaskEditor", + settings: [ + { + id: "Comfy.MaskEditor.UseNewEditor", + category: ["Mask Editor", "NewEditor"], + name: "Use new mask editor", + tooltip: "Switch to the new mask editor interface", + type: "boolean", + defaultValue: true, + experimental: true + }, + { + id: "Comfy.MaskEditor.BrushAdjustmentSpeed", + category: ["Mask Editor", "BrushAdjustment", "Sensitivity"], + name: "Brush adjustment speed multiplier", + tooltip: "Controls how quickly the brush size and hardness change when adjusting. Higher values mean faster changes.", + experimental: true, + type: "slider", + attrs: { + min: 0.1, + max: 2, + step: 0.1 + }, + defaultValue: 1, + versionAdded: "1.0.0" + }, + { + id: "Comfy.MaskEditor.UseDominantAxis", + category: ["Mask Editor", "BrushAdjustment", "UseDominantAxis"], + name: "Lock brush adjustment to dominant axis", + tooltip: "When enabled, brush adjustments will only affect size OR hardness based on which direction you move more", + type: "boolean", + defaultValue: true, + experimental: true + } + ], + init(app2) { + function openMaskEditor() { + const useNewEditor = app2.extensionManager.setting.get( + "Comfy.MaskEditor.UseNewEditor" + ); + if (useNewEditor) { + const dlg = MaskEditorDialog.getInstance(); + if (dlg?.isOpened && !dlg.isOpened()) { + dlg.show(); + } + } else { + const dlg = MaskEditorDialogOld.getInstance(); + if (dlg?.isOpened && !dlg.isOpened()) { + dlg.show(); + } + } + } + __name(openMaskEditor, "openMaskEditor"); + ; + ComfyApp.open_maskeditor = openMaskEditor; + const context_predicate = /* @__PURE__ */ __name(() => { + return !!(ComfyApp.clipspace && ComfyApp.clipspace.imgs && ComfyApp.clipspace.imgs.length > 0); + }, "context_predicate"); + ClipspaceDialog.registerButton( + "MaskEditor", + context_predicate, + openMaskEditor + ); + } +}); +const id = "Comfy.NodeTemplates"; +const file = "comfy.templates.json"; +class ManageTemplates extends ComfyDialog { + static { + __name(this, "ManageTemplates"); + } + templates; + draggedEl; + saveVisualCue; + emptyImg; + importInput; + constructor() { + super(); + this.load().then((v) => { + this.templates = v; + }); + this.element.classList.add("comfy-manage-templates"); + this.draggedEl = null; + this.saveVisualCue = null; + this.emptyImg = new Image(); + this.emptyImg.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs="; + this.importInput = $el("input", { + type: "file", + accept: ".json", + multiple: true, + style: { display: "none" }, + parent: document.body, + onchange: /* @__PURE__ */ __name(() => this.importAll(), "onchange") + }); + } + createButtons() { + const btns = super.createButtons(); + btns[0].textContent = "Close"; + btns[0].onclick = (e) => { + clearTimeout(this.saveVisualCue); + this.close(); + }; + btns.unshift( + $el("button", { + type: "button", + textContent: "Export", + onclick: /* @__PURE__ */ __name(() => this.exportAll(), "onclick") + }) + ); + btns.unshift( + $el("button", { + type: "button", + textContent: "Import", + onclick: /* @__PURE__ */ __name(() => { + this.importInput.click(); + }, "onclick") + }) + ); + return btns; + } + async load() { + let templates = []; + const res = await api.getUserData(file); + if (res.status === 200) { + try { + templates = await res.json(); + } catch (error) { + } + } else if (res.status !== 404) { + console.error(res.status + " " + res.statusText); + } + return templates ?? []; + } + async store() { + const templates = JSON.stringify(this.templates, void 0, 4); + try { + await api.storeUserData(file, templates, { stringify: false }); + } catch (error) { + console.error(error); + useToastStore().addAlert(error.message); + } + } + async importAll() { + for (const file2 of this.importInput.files) { + if (file2.type === "application/json" || file2.name.endsWith(".json")) { + const reader = new FileReader(); + reader.onload = async () => { + const importFile = JSON.parse(reader.result); + if (importFile?.templates) { + for (const template of importFile.templates) { + if (template?.name && template?.data) { + this.templates.push(template); + } + } + await this.store(); + } + }; + await reader.readAsText(file2); + } + } + this.importInput.value = null; + this.close(); + } + exportAll() { + if (this.templates.length == 0) { + useToastStore().addAlert("No templates to export."); + return; + } + const json = JSON.stringify({ templates: this.templates }, null, 2); + const blob = new Blob([json], { type: "application/json" }); + const url = URL.createObjectURL(blob); + const a = $el("a", { + href: url, + download: "node_templates.json", + style: { display: "none" }, + parent: document.body + }); + a.click(); + setTimeout(function() { + a.remove(); + window.URL.revokeObjectURL(url); + }, 0); + } + show() { + super.show( + $el( + "div", + {}, + this.templates.flatMap((t2, i) => { + let nameInput; + return [ + $el( + "div", + { + dataset: { id: i.toString() }, + className: "templateManagerRow", + style: { + display: "grid", + gridTemplateColumns: "1fr auto", + border: "1px dashed transparent", + gap: "5px", + backgroundColor: "var(--comfy-menu-bg)" + }, + ondragstart: /* @__PURE__ */ __name((e) => { + this.draggedEl = e.currentTarget; + e.currentTarget.style.opacity = "0.6"; + e.currentTarget.style.border = "1px dashed yellow"; + e.dataTransfer.effectAllowed = "move"; + e.dataTransfer.setDragImage(this.emptyImg, 0, 0); + }, "ondragstart"), + ondragend: /* @__PURE__ */ __name((e) => { + e.target.style.opacity = "1"; + e.currentTarget.style.border = "1px dashed transparent"; + e.currentTarget.removeAttribute("draggable"); + this.element.querySelectorAll(".templateManagerRow").forEach((el, i2) => { + var prev_i = Number.parseInt(el.dataset.id); + if (el == this.draggedEl && prev_i != i2) { + this.templates.splice( + i2, + 0, + this.templates.splice(prev_i, 1)[0] + ); + } + el.dataset.id = i2.toString(); + }); + this.store(); + }, "ondragend"), + ondragover: /* @__PURE__ */ __name((e) => { + e.preventDefault(); + if (e.currentTarget == this.draggedEl) return; + let rect = e.currentTarget.getBoundingClientRect(); + if (e.clientY > rect.top + rect.height / 2) { + e.currentTarget.parentNode.insertBefore( + this.draggedEl, + e.currentTarget.nextSibling + ); + } else { + e.currentTarget.parentNode.insertBefore( + this.draggedEl, + e.currentTarget + ); + } + }, "ondragover") + }, + [ + $el( + "label", + { + textContent: "Name: ", + style: { + cursor: "grab" + }, + onmousedown: /* @__PURE__ */ __name((e) => { + if (e.target.localName == "label") + e.currentTarget.parentNode.draggable = "true"; + }, "onmousedown") + }, + [ + $el("input", { + value: t2.name, + dataset: { name: t2.name }, + style: { + transitionProperty: "background-color", + transitionDuration: "0s" + }, + onchange: /* @__PURE__ */ __name((e) => { + clearTimeout(this.saveVisualCue); + var el = e.target; + var row = el.parentNode.parentNode; + this.templates[row.dataset.id].name = el.value.trim() || "untitled"; + this.store(); + el.style.backgroundColor = "rgb(40, 95, 40)"; + el.style.transitionDuration = "0s"; + this.saveVisualCue = setTimeout(function() { + el.style.transitionDuration = ".7s"; + el.style.backgroundColor = "var(--comfy-input-bg)"; + }, 15); + }, "onchange"), + onkeypress: /* @__PURE__ */ __name((e) => { + var el = e.target; + clearTimeout(this.saveVisualCue); + el.style.transitionDuration = "0s"; + el.style.backgroundColor = "var(--comfy-input-bg)"; + }, "onkeypress"), + $: /* @__PURE__ */ __name((el) => nameInput = el, "$") + }) + ] + ), + $el("div", {}, [ + $el("button", { + textContent: "Export", + style: { + fontSize: "12px", + fontWeight: "normal" + }, + onclick: /* @__PURE__ */ __name((e) => { + const json = JSON.stringify({ templates: [t2] }, null, 2); + const blob = new Blob([json], { + type: "application/json" + }); + const url = URL.createObjectURL(blob); + const a = $el("a", { + href: url, + download: (nameInput.value || t2.name) + ".json", + style: { display: "none" }, + parent: document.body + }); + a.click(); + setTimeout(function() { + a.remove(); + window.URL.revokeObjectURL(url); + }, 0); + }, "onclick") + }), + $el("button", { + textContent: "Delete", + style: { + fontSize: "12px", + color: "red", + fontWeight: "normal" + }, + onclick: /* @__PURE__ */ __name((e) => { + const item = e.target.parentNode.parentNode; + item.parentNode.removeChild(item); + this.templates.splice(item.dataset.id * 1, 1); + this.store(); + var that = this; + setTimeout(function() { + that.element.querySelectorAll(".templateManagerRow").forEach((el, i2) => { + el.dataset.id = i2.toString(); + }); + }, 0); + }, "onclick") + }) + ]) + ] + ) + ]; + }) + ) + ); + } +} +app.registerExtension({ + name: id, + setup() { + const manage = new ManageTemplates(); + const clipboardAction = /* @__PURE__ */ __name(async (cb) => { + const old = localStorage.getItem("litegrapheditor_clipboard"); + await cb(); + localStorage.setItem("litegrapheditor_clipboard", old); + }, "clipboardAction"); + const orig = LGraphCanvas.prototype.getCanvasMenuOptions; + LGraphCanvas.prototype.getCanvasMenuOptions = function() { + const options = orig.apply(this, arguments); + options.push(null); + options.push({ + content: `Save Selected as Template`, + disabled: !Object.keys(app.canvas.selected_nodes || {}).length, + callback: /* @__PURE__ */ __name(async () => { + const name = await useDialogService().prompt({ + title: t("nodeTemplates.saveAsTemplate"), + message: t("nodeTemplates.enterName"), + defaultValue: "" + }); + if (!name?.trim()) return; + clipboardAction(() => { + app.canvas.copyToClipboard(); + let data = localStorage.getItem("litegrapheditor_clipboard"); + data = JSON.parse(data); + const nodeIds = Object.keys(app.canvas.selected_nodes); + for (let i = 0; i < nodeIds.length; i++) { + const node = app.graph.getNodeById(nodeIds[i]); + const nodeData = node?.constructor.nodeData; + let groupData = GroupNodeHandler.getGroupData(node); + if (groupData) { + groupData = groupData.nodeData; + if (!data.groupNodes) { + data.groupNodes = {}; + } + data.groupNodes[nodeData.name] = groupData; + data.nodes[i].type = nodeData.name; + } + } + manage.templates.push({ + name, + data: JSON.stringify(data) + }); + manage.store(); + }); + }, "callback") + }); + const subItems = manage.templates.map((t2) => { + return { + content: t2.name, + callback: /* @__PURE__ */ __name(() => { + clipboardAction(async () => { + const data = JSON.parse(t2.data); + await GroupNodeConfig.registerFromWorkflow(data.groupNodes, {}); + if (!data.reroutes) { + deserialiseAndCreate(t2.data, app.canvas); + } else { + localStorage.setItem("litegrapheditor_clipboard", t2.data); + app.canvas.pasteFromClipboard(); + } + }); + }, "callback") + }; + }); + subItems.push(null, { + content: "Manage", + callback: /* @__PURE__ */ __name(() => manage.show(), "callback") + }); + options.push({ + content: "Node Templates", + submenu: { + options: subItems + } + }); + return options; + }; + } +}); +app.registerExtension({ + name: "Comfy.NoteNode", + registerCustomNodes() { + class NoteNode extends LGraphNode { + static { + __name(this, "NoteNode"); + } + static category; + color = LGraphCanvas.node_colors.yellow.color; + bgcolor = LGraphCanvas.node_colors.yellow.bgcolor; + groupcolor = LGraphCanvas.node_colors.yellow.groupcolor; + isVirtualNode; + collapsable; + title_mode; + constructor(title) { + super(title); + if (!this.properties) { + this.properties = { text: "" }; + } + ComfyWidgets.STRING( + // Should we extends LGraphNode? Yesss + this, + "", + ["", { default: this.properties.text, multiline: true }], + app + ); + this.serialize_widgets = true; + this.isVirtualNode = true; + } + } + LiteGraph.registerNodeType( + "Note", + Object.assign(NoteNode, { + title_mode: LiteGraph.NORMAL_TITLE, + title: "Note", + collapsable: true + }) + ); + NoteNode.category = "utils"; + class MarkdownNoteNode extends LGraphNode { + static { + __name(this, "MarkdownNoteNode"); + } + static title = "Markdown Note"; + color = LGraphCanvas.node_colors.yellow.color; + bgcolor = LGraphCanvas.node_colors.yellow.bgcolor; + groupcolor = LGraphCanvas.node_colors.yellow.groupcolor; + constructor(title) { + super(title); + if (!this.properties) { + this.properties = { text: "" }; + } + ComfyWidgets.MARKDOWN( + this, + "", + ["", { default: this.properties.text }], + app + ); + this.serialize_widgets = true; + this.isVirtualNode = true; + } + } + LiteGraph.registerNodeType("MarkdownNote", MarkdownNoteNode); + MarkdownNoteNode.category = "utils"; + } +}); +app.registerExtension({ + name: "Comfy.RerouteNode", + registerCustomNodes(app2) { + class RerouteNode extends LGraphNode { + static { + __name(this, "RerouteNode"); + } + static category; + static defaultVisibility = false; + constructor(title) { + super(title); + if (!this.properties) { + this.properties = {}; + } + this.properties.showOutputText = RerouteNode.defaultVisibility; + this.properties.horizontal = false; + this.addInput("", "*"); + this.addOutput(this.properties.showOutputText ? "*" : "", "*"); + this.onAfterGraphConfigured = function() { + requestAnimationFrame(() => { + this.onConnectionsChange(LiteGraph.INPUT, null, true, null); + }); + }; + this.onConnectionsChange = (type, index, connected, link_info) => { + if (app2.configuringGraph) return; + this.applyOrientation(); + if (connected && type === LiteGraph.OUTPUT) { + const types = new Set( + this.outputs[0].links.map((l) => app2.graph.links[l].type).filter((t2) => t2 !== "*") + ); + if (types.size > 1) { + const linksToDisconnect = []; + for (let i = 0; i < this.outputs[0].links.length - 1; i++) { + const linkId = this.outputs[0].links[i]; + const link = app2.graph.links[linkId]; + linksToDisconnect.push(link); + } + for (const link of linksToDisconnect) { + const node = app2.graph.getNodeById(link.target_id); + node.disconnectInput(link.target_slot); + } + } + } + let currentNode = this; + let updateNodes = []; + let inputType = null; + let inputNode = null; + while (currentNode) { + updateNodes.unshift(currentNode); + const linkId = currentNode.inputs[0].link; + if (linkId !== null) { + const link = app2.graph.links[linkId]; + if (!link) return; + const node = app2.graph.getNodeById(link.origin_id); + const type2 = node.constructor.type; + if (type2 === "Reroute") { + if (node === this) { + currentNode.disconnectInput(link.target_slot); + currentNode = null; + } else { + currentNode = node; + } + } else { + inputNode = currentNode; + inputType = node.outputs[link.origin_slot]?.type ?? null; + break; + } + } else { + currentNode = null; + break; + } + } + const nodes = [this]; + let outputType = null; + while (nodes.length) { + currentNode = nodes.pop(); + const outputs = (currentNode.outputs ? currentNode.outputs[0].links : []) || []; + if (outputs.length) { + for (const linkId of outputs) { + const link = app2.graph.links[linkId]; + if (!link) continue; + const node = app2.graph.getNodeById(link.target_id); + const type2 = node.constructor.type; + if (type2 === "Reroute") { + nodes.push(node); + updateNodes.push(node); + } else { + const nodeOutType = node.inputs && node.inputs[link?.target_slot] && node.inputs[link.target_slot].type ? node.inputs[link.target_slot].type : null; + if (inputType && !LiteGraph.isValidConnection(inputType, nodeOutType)) { + node.disconnectInput(link.target_slot); + } else { + outputType = nodeOutType; + } + } + } + } else { + } + } + const displayType = inputType || outputType || "*"; + const color = LGraphCanvas.link_type_colors[displayType]; + let widgetConfig; + let targetWidget; + let widgetType; + for (const node of updateNodes) { + node.outputs[0].type = inputType || "*"; + node.__outputType = displayType; + node.outputs[0].name = node.properties.showOutputText ? displayType : ""; + node.size = node.computeSize(); + node.applyOrientation(); + for (const l of node.outputs[0].links || []) { + const link = app2.graph.links[l]; + if (link) { + link.color = color; + if (app2.configuringGraph) continue; + const targetNode = app2.graph.getNodeById(link.target_id); + const targetInput = targetNode.inputs?.[link.target_slot]; + if (targetInput?.widget) { + const config = getWidgetConfig(targetInput); + if (!widgetConfig) { + widgetConfig = config[1] ?? {}; + widgetType = config[0]; + } + if (!targetWidget) { + targetWidget = targetNode.widgets?.find( + (w) => w.name === targetInput.widget.name + ); + } + const merged = mergeIfValid(targetInput, [ + config[0], + widgetConfig + ]); + if (merged.customConfig) { + widgetConfig = merged.customConfig; + } + } + } + } + } + for (const node of updateNodes) { + if (widgetConfig && outputType) { + node.inputs[0].widget = { name: "value" }; + setWidgetConfig( + node.inputs[0], + [widgetType ?? displayType, widgetConfig], + targetWidget + ); + } else { + setWidgetConfig(node.inputs[0], null); + } + } + if (inputNode) { + const link = app2.graph.links[inputNode.inputs[0].link]; + if (link) { + link.color = color; + } + } + }; + this.clone = function() { + const cloned = RerouteNode.prototype.clone.apply(this); + cloned.removeOutput(0); + cloned.addOutput(this.properties.showOutputText ? "*" : "", "*"); + cloned.size = cloned.computeSize(); + return cloned; + }; + this.isVirtualNode = true; + } + getExtraMenuOptions(_, options) { + options.unshift( + { + content: (this.properties.showOutputText ? "Hide" : "Show") + " Type", + callback: /* @__PURE__ */ __name(() => { + this.properties.showOutputText = !this.properties.showOutputText; + if (this.properties.showOutputText) { + this.outputs[0].name = this.__outputType || this.outputs[0].type; + } else { + this.outputs[0].name = ""; + } + this.size = this.computeSize(); + this.applyOrientation(); + app2.graph.setDirtyCanvas(true, true); + }, "callback") + }, + { + content: (RerouteNode.defaultVisibility ? "Hide" : "Show") + " Type By Default", + callback: /* @__PURE__ */ __name(() => { + RerouteNode.setDefaultTextVisibility( + !RerouteNode.defaultVisibility + ); + }, "callback") + }, + { + // naming is inverted with respect to LiteGraphNode.horizontal + // LiteGraphNode.horizontal == true means that + // each slot in the inputs and outputs are laid out horizontally, + // which is the opposite of the visual orientation of the inputs and outputs as a node + content: "Set " + (this.properties.horizontal ? "Horizontal" : "Vertical"), + callback: /* @__PURE__ */ __name(() => { + this.properties.horizontal = !this.properties.horizontal; + this.applyOrientation(); + }, "callback") + } + ); + return []; + } + applyOrientation() { + this.horizontal = this.properties.horizontal; + if (this.horizontal) { + this.inputs[0].pos = [this.size[0] / 2, 0]; + } else { + delete this.inputs[0].pos; + } + app2.graph.setDirtyCanvas(true, true); + } + computeSize() { + return [ + this.properties.showOutputText && this.outputs && this.outputs.length ? Math.max( + 75, + LiteGraph.NODE_TEXT_SIZE * this.outputs[0].name.length * 0.6 + 40 + ) : 75, + 26 + ]; + } + static setDefaultTextVisibility(visible) { + RerouteNode.defaultVisibility = visible; + if (visible) { + localStorage["Comfy.RerouteNode.DefaultVisibility"] = "true"; + } else { + delete localStorage["Comfy.RerouteNode.DefaultVisibility"]; + } + } + } + RerouteNode.setDefaultTextVisibility( + !!localStorage["Comfy.RerouteNode.DefaultVisibility"] + ); + LiteGraph.registerNodeType( + "Reroute", + Object.assign(RerouteNode, { + title_mode: LiteGraph.NO_TITLE, + title: "Reroute", + collapsable: false + }) + ); + RerouteNode.category = "utils"; + } +}); +app.registerExtension({ + name: "Comfy.SaveImageExtraOutput", + async beforeRegisterNodeDef(nodeType, nodeData, app2) { + if (nodeData.name === "SaveImage" || nodeData.name === "SaveAnimatedWEBP") { + const onNodeCreated = nodeType.prototype.onNodeCreated; + nodeType.prototype.onNodeCreated = function() { + const r = onNodeCreated ? onNodeCreated.apply(this, arguments) : void 0; + const widget = this.widgets.find((w) => w.name === "filename_prefix"); + widget.serializeValue = () => { + return applyTextReplacements(app2, widget.value); + }; + return r; + }; + } else { + const onNodeCreated = nodeType.prototype.onNodeCreated; + nodeType.prototype.onNodeCreated = function() { + const r = onNodeCreated ? onNodeCreated.apply(this, arguments) : void 0; + if (!this.properties || !("Node name for S&R" in this.properties)) { + this.addProperty("Node name for S&R", this.constructor.type, "string"); + } + return r; + }; + } + } +}); +let touchZooming; +let touchCount = 0; +app.registerExtension({ + name: "Comfy.SimpleTouchSupport", + setup() { + let touchDist; + let touchTime; + let lastTouch; + let lastScale; + function getMultiTouchPos(e) { + return Math.hypot( + e.touches[0].clientX - e.touches[1].clientX, + e.touches[0].clientY - e.touches[1].clientY + ); + } + __name(getMultiTouchPos, "getMultiTouchPos"); + function getMultiTouchCenter(e) { + return { + clientX: (e.touches[0].clientX + e.touches[1].clientX) / 2, + clientY: (e.touches[0].clientY + e.touches[1].clientY) / 2 + }; + } + __name(getMultiTouchCenter, "getMultiTouchCenter"); + app.canvasEl.parentElement.addEventListener( + "touchstart", + (e) => { + touchCount++; + lastTouch = null; + lastScale = null; + if (e.touches?.length === 1) { + touchTime = /* @__PURE__ */ new Date(); + lastTouch = e.touches[0]; + } else { + touchTime = null; + if (e.touches?.length === 2) { + lastScale = app.canvas.ds.scale; + lastTouch = getMultiTouchCenter(e); + touchDist = getMultiTouchPos(e); + app.canvas.pointer.isDown = false; + } + } + }, + true + ); + app.canvasEl.parentElement.addEventListener("touchend", (e) => { + touchCount--; + if (e.touches?.length !== 1) touchZooming = false; + if (touchTime && !e.touches?.length) { + if ((/* @__PURE__ */ new Date()).getTime() - touchTime > 600) { + if (e.target === app.canvasEl) { + app.canvasEl.dispatchEvent( + new PointerEvent("pointerdown", { + button: 2, + clientX: e.changedTouches[0].clientX, + clientY: e.changedTouches[0].clientY + }) + ); + e.preventDefault(); + } + } + touchTime = null; + } + }); + app.canvasEl.parentElement.addEventListener( + "touchmove", + (e) => { + touchTime = null; + if (e.touches?.length === 2 && lastTouch && !e.ctrlKey && !e.shiftKey) { + e.preventDefault(); + app.canvas.pointer.isDown = false; + touchZooming = true; + LiteGraph.closeAllContextMenus(window); + app.canvas.search_box?.close(); + const newTouchDist = getMultiTouchPos(e); + const center = getMultiTouchCenter(e); + let scale = lastScale * newTouchDist / touchDist; + const newX = (center.clientX - lastTouch.clientX) / scale; + const newY = (center.clientY - lastTouch.clientY) / scale; + if (scale < app.canvas.ds.min_scale) { + scale = app.canvas.ds.min_scale; + } else if (scale > app.canvas.ds.max_scale) { + scale = app.canvas.ds.max_scale; + } + const oldScale = app.canvas.ds.scale; + app.canvas.ds.scale = scale; + if (Math.abs(app.canvas.ds.scale - 1) < 0.01) { + app.canvas.ds.scale = 1; + } + const newScale = app.canvas.ds.scale; + const convertScaleToOffset = /* @__PURE__ */ __name((scale2) => [ + center.clientX / scale2 - app.canvas.ds.offset[0], + center.clientY / scale2 - app.canvas.ds.offset[1] + ], "convertScaleToOffset"); + var oldCenter = convertScaleToOffset(oldScale); + var newCenter = convertScaleToOffset(newScale); + app.canvas.ds.offset[0] += newX + newCenter[0] - oldCenter[0]; + app.canvas.ds.offset[1] += newY + newCenter[1] - oldCenter[1]; + lastTouch.clientX = center.clientX; + lastTouch.clientY = center.clientY; + app.canvas.setDirty(true, true); + } + }, + true + ); + } +}); +const processMouseDown = LGraphCanvas.prototype.processMouseDown; +LGraphCanvas.prototype.processMouseDown = function(e) { + if (touchZooming || touchCount) { + return; + } + app.canvas.pointer.isDown = false; + return processMouseDown.apply(this, arguments); +}; +const processMouseMove = LGraphCanvas.prototype.processMouseMove; +LGraphCanvas.prototype.processMouseMove = function(e) { + if (touchZooming || touchCount > 1) { + return; + } + return processMouseMove.apply(this, arguments); +}; +app.registerExtension({ + name: "Comfy.SlotDefaults", + suggestionsNumber: null, + init() { + LiteGraph.search_filter_enabled = true; + LiteGraph.middle_click_slot_add_default_node = true; + this.suggestionsNumber = app.ui.settings.addSetting({ + id: "Comfy.NodeSuggestions.number", + category: ["Comfy", "Node Search Box", "NodeSuggestions"], + name: "Number of nodes suggestions", + tooltip: "Only for litegraph searchbox/context menu", + type: "slider", + attrs: { + min: 1, + max: 100, + step: 1 + }, + defaultValue: 5, + onChange: /* @__PURE__ */ __name((newVal, oldVal) => { + this.setDefaults(newVal); + }, "onChange") + }); + }, + slot_types_default_out: {}, + slot_types_default_in: {}, + async beforeRegisterNodeDef(nodeType, nodeData, app2) { + var nodeId = nodeData.name; + const inputs = nodeData["input"]?.["required"]; + for (const inputKey in inputs) { + var input = inputs[inputKey]; + if (typeof input[0] !== "string") continue; + var type = input[0]; + if (type in ComfyWidgets) { + var customProperties = input[1]; + if (!customProperties?.forceInput) continue; + } + if (!(type in this.slot_types_default_out)) { + this.slot_types_default_out[type] = ["Reroute"]; + } + if (this.slot_types_default_out[type].includes(nodeId)) continue; + this.slot_types_default_out[type].push(nodeId); + const lowerType = type.toLocaleLowerCase(); + if (!(lowerType in LiteGraph.registered_slot_in_types)) { + LiteGraph.registered_slot_in_types[lowerType] = { nodes: [] }; + } + LiteGraph.registered_slot_in_types[lowerType].nodes.push( + // @ts-expect-error ComfyNode + nodeType.comfyClass + ); + } + var outputs = nodeData["output"] ?? []; + for (const el of outputs) { + const type2 = el; + if (!(type2 in this.slot_types_default_in)) { + this.slot_types_default_in[type2] = ["Reroute"]; + } + this.slot_types_default_in[type2].push(nodeId); + if (!(type2 in LiteGraph.registered_slot_out_types)) { + LiteGraph.registered_slot_out_types[type2] = { nodes: [] }; + } + LiteGraph.registered_slot_out_types[type2].nodes.push(nodeType.comfyClass); + if (!LiteGraph.slot_types_out.includes(type2)) { + LiteGraph.slot_types_out.push(type2); + } + } + var maxNum = this.suggestionsNumber.value; + this.setDefaults(maxNum); + }, + setDefaults(maxNum) { + LiteGraph.slot_types_default_out = {}; + LiteGraph.slot_types_default_in = {}; + for (const type in this.slot_types_default_out) { + LiteGraph.slot_types_default_out[type] = this.slot_types_default_out[type].slice(0, maxNum); + } + for (const type in this.slot_types_default_in) { + LiteGraph.slot_types_default_in[type] = this.slot_types_default_in[type].slice(0, maxNum); + } + } +}); +function splitFilePath(path) { + const folder_separator = path.lastIndexOf("/"); + if (folder_separator === -1) { + return ["", path]; + } + return [ + path.substring(0, folder_separator), + path.substring(folder_separator + 1) + ]; +} +__name(splitFilePath, "splitFilePath"); +function getResourceURL(subfolder, filename, type = "input") { + const params = [ + "filename=" + encodeURIComponent(filename), + "type=" + type, + "subfolder=" + subfolder, + app.getRandParam().substring(1) + ].join("&"); + return `/view?${params}`; +} +__name(getResourceURL, "getResourceURL"); +async function uploadFile(audioWidget, audioUIWidget, file2, updateNode, pasted = false) { + try { + const body = new FormData(); + body.append("image", file2); + if (pasted) body.append("subfolder", "pasted"); + const resp = await api.fetchApi("/upload/image", { + method: "POST", + body + }); + if (resp.status === 200) { + const data = await resp.json(); + let path = data.name; + if (data.subfolder) path = data.subfolder + "/" + path; + if (!audioWidget.options.values.includes(path)) { + audioWidget.options.values.push(path); + } + if (updateNode) { + audioUIWidget.element.src = api.apiURL( + getResourceURL(...splitFilePath(path)) + ); + audioWidget.value = path; + } + } else { + useToastStore().addAlert(resp.status + " - " + resp.statusText); + } + } catch (error) { + useToastStore().addAlert(error); + } +} +__name(uploadFile, "uploadFile"); +app.registerExtension({ + name: "Comfy.AudioWidget", + async beforeRegisterNodeDef(nodeType, nodeData) { + if ( + // @ts-expect-error ComfyNode + ["LoadAudio", "SaveAudio", "PreviewAudio"].includes(nodeType.comfyClass) + ) { + nodeData.input.required.audioUI = ["AUDIO_UI"]; + } + }, + getCustomWidgets() { + return { + AUDIO_UI(node, inputName) { + const audio = document.createElement("audio"); + audio.controls = true; + audio.classList.add("comfy-audio"); + audio.setAttribute("name", "media"); + const audioUIWidget = node.addDOMWidget( + inputName, + /* name=*/ + "audioUI", + audio, + { + serialize: false + } + ); + const isOutputNode = node.constructor.nodeData.output_node; + if (isOutputNode) { + audioUIWidget.element.classList.add("empty-audio-widget"); + const onExecuted = node.onExecuted; + node.onExecuted = function(message) { + onExecuted?.apply(this, arguments); + const audios = message.audio; + if (!audios) return; + const audio2 = audios[0]; + audioUIWidget.element.src = api.apiURL( + getResourceURL(audio2.subfolder, audio2.filename, audio2.type) + ); + audioUIWidget.element.classList.remove("empty-audio-widget"); + }; + } + return { widget: audioUIWidget }; + } + }; + }, + onNodeOutputsUpdated(nodeOutputs) { + for (const [nodeId, output] of Object.entries(nodeOutputs)) { + const node = app.graph.getNodeById(nodeId); + if ("audio" in output) { + const audioUIWidget = node.widgets.find( + (w) => w.name === "audioUI" + ); + const audio = output.audio[0]; + audioUIWidget.element.src = api.apiURL( + getResourceURL(audio.subfolder, audio.filename, audio.type) + ); + audioUIWidget.element.classList.remove("empty-audio-widget"); + } + } + } +}); +app.registerExtension({ + name: "Comfy.UploadAudio", + async beforeRegisterNodeDef(nodeType, nodeData) { + if (nodeData?.input?.required?.audio?.[1]?.audio_upload === true) { + nodeData.input.required.upload = ["AUDIOUPLOAD"]; + } + }, + getCustomWidgets() { + return { + AUDIOUPLOAD(node, inputName) { + const audioWidget = node.widgets.find( + (w) => w.name === "audio" + ); + const audioUIWidget = node.widgets.find( + (w) => w.name === "audioUI" + ); + const onAudioWidgetUpdate = /* @__PURE__ */ __name(() => { + audioUIWidget.element.src = api.apiURL( + getResourceURL(...splitFilePath(audioWidget.value)) + ); + }, "onAudioWidgetUpdate"); + if (audioWidget.value) { + onAudioWidgetUpdate(); + } + audioWidget.callback = onAudioWidgetUpdate; + const onGraphConfigured = node.onGraphConfigured; + node.onGraphConfigured = function() { + onGraphConfigured?.apply(this, arguments); + if (audioWidget.value) { + onAudioWidgetUpdate(); + } + }; + const fileInput = document.createElement("input"); + fileInput.type = "file"; + fileInput.accept = "audio/*"; + fileInput.style.display = "none"; + fileInput.onchange = () => { + if (fileInput.files.length) { + uploadFile(audioWidget, audioUIWidget, fileInput.files[0], true); + } + }; + const uploadWidget = node.addWidget( + "button", + inputName, + /* value=*/ + "", + () => { + fileInput.click(); + }, + { serialize: false } + ); + uploadWidget.label = "choose file to upload"; + return { widget: uploadWidget }; + } + }; + } +}); +app.registerExtension({ + name: "Comfy.UploadImage", + beforeRegisterNodeDef(nodeType, nodeData) { + if (nodeData?.input?.required?.image?.[1]?.image_upload === true) { + nodeData.input.required.upload = ["IMAGEUPLOAD"]; + } + } +}); +const WEBCAM_READY = Symbol(); +app.registerExtension({ + name: "Comfy.WebcamCapture", + getCustomWidgets(app2) { + return { + WEBCAM(node, inputName) { + let res; + node[WEBCAM_READY] = new Promise((resolve) => res = resolve); + const container = document.createElement("div"); + container.style.background = "rgba(0,0,0,0.25)"; + container.style.textAlign = "center"; + const video = document.createElement("video"); + video.style.height = video.style.width = "100%"; + const loadVideo = /* @__PURE__ */ __name(async () => { + try { + const stream = await navigator.mediaDevices.getUserMedia({ + video: true, + audio: false + }); + container.replaceChildren(video); + setTimeout(() => res(video), 500); + video.addEventListener("loadedmetadata", () => res(video), false); + video.srcObject = stream; + video.play(); + } catch (error) { + const label = document.createElement("div"); + label.style.color = "red"; + label.style.overflow = "auto"; + label.style.maxHeight = "100%"; + label.style.whiteSpace = "pre-wrap"; + if (window.isSecureContext) { + label.textContent = "Unable to load webcam, please ensure access is granted:\n" + error.message; + } else { + label.textContent = "Unable to load webcam. A secure context is required, if you are not accessing ComfyUI on localhost (127.0.0.1) you will have to enable TLS (https)\n\n" + error.message; + } + container.replaceChildren(label); + } + }, "loadVideo"); + loadVideo(); + return { widget: node.addDOMWidget(inputName, "WEBCAM", container) }; + } + }; + }, + nodeCreated(node) { + if (node.type, node.constructor.comfyClass !== "WebcamCapture") return; + let video; + const camera = node.widgets.find((w2) => w2.name === "image"); + const w = node.widgets.find((w2) => w2.name === "width"); + const h = node.widgets.find((w2) => w2.name === "height"); + const captureOnQueue = node.widgets.find( + (w2) => w2.name === "capture_on_queue" + ); + const canvas = document.createElement("canvas"); + const capture = /* @__PURE__ */ __name(() => { + canvas.width = w.value; + canvas.height = h.value; + const ctx = canvas.getContext("2d"); + ctx.drawImage(video, 0, 0, w.value, h.value); + const data = canvas.toDataURL("image/png"); + const img = new Image(); + img.onload = () => { + node.imgs = [img]; + app.graph.setDirtyCanvas(true); + requestAnimationFrame(() => { + node.setSizeForImage?.(); + }); + }; + img.src = data; + }, "capture"); + const btn = node.addWidget( + "button", + "waiting for camera...", + "capture", + capture + ); + btn.disabled = true; + btn.serializeValue = () => void 0; + camera.serializeValue = async () => { + if (captureOnQueue.value) { + capture(); + } else if (!node.imgs?.length) { + const err2 = `No webcam image captured`; + useToastStore().addAlert(err2); + throw new Error(err2); + } + const blob = await new Promise((r) => canvas.toBlob(r)); + const name = `${+/* @__PURE__ */ new Date()}.png`; + const file2 = new File([blob], name); + const body = new FormData(); + body.append("image", file2); + body.append("subfolder", "webcam"); + body.append("type", "temp"); + const resp = await api.fetchApi("/upload/image", { + method: "POST", + body + }); + if (resp.status !== 200) { + const err2 = `Error uploading camera image: ${resp.status} - ${resp.statusText}`; + useToastStore().addAlert(err2); + throw new Error(err2); + } + return `webcam/${name} [temp]`; + }; + node[WEBCAM_READY].then((v) => { + video = v; + if (!w.value) { + w.value = video.videoWidth || 640; + h.value = video.videoHeight || 480; + } + btn.disabled = false; + btn.label = "capture"; + }); + } +}); +//# sourceMappingURL=index-5Sv744Dr.js.map diff --git a/web/assets/index-B7ycxfFq.js b/web/assets/index-B7ycxfFq.js new file mode 100644 index 00000000..2cfff2fa --- /dev/null +++ b/web/assets/index-B7ycxfFq.js @@ -0,0 +1,27 @@ +var __defProp = Object.defineProperty; +var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); +import { ct as script$1, H as createBaseVNode, o as openBlock, f as createElementBlock, D as mergeProps } from "./index-C4Fk50Nx.js"; +var script = { + name: "PlusIcon", + "extends": script$1 +}; +var _hoisted_1 = /* @__PURE__ */ createBaseVNode("path", { + d: "M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z", + fill: "currentColor" +}, null, -1); +var _hoisted_2 = [_hoisted_1]; +function render(_ctx, _cache, $props, $setup, $data, $options) { + return openBlock(), createElementBlock("svg", mergeProps({ + width: "14", + height: "14", + viewBox: "0 0 14 14", + fill: "none", + xmlns: "http://www.w3.org/2000/svg" + }, _ctx.pti()), _hoisted_2, 16); +} +__name(render, "render"); +script.render = render; +export { + script as s +}; +//# sourceMappingURL=index-B7ycxfFq.js.map diff --git a/web/assets/index-C4Fk50Nx.js b/web/assets/index-C4Fk50Nx.js new file mode 100644 index 00000000..0da0e4c9 --- /dev/null +++ b/web/assets/index-C4Fk50Nx.js @@ -0,0 +1,184713 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./GraphView-DswvqURL.js","./index-hdfnBvYs.js","./index-B7ycxfFq.js","./index-lMQBwSDj.js","./keybindingService-D48fkLBy.js","./serverConfigStore-BawYAb1j.js","./GraphView-CIRWBKTm.css","./UserSelectView-2l9Kbchu.js","./BaseViewTemplate-CsEJhGbv.js","./ServerStartView-CiO_acWT.js","./ServerStartView-CnyN4Ib6.css","./InstallView-AV2llYNm.js","./InstallView-CwQdoH-C.css","./WelcomeView-CB7Th_kO.js","./WelcomeView-Brz3-luE.css","./NotSupportedView-CRaD8u74.js","./NotSupportedView-bFzHmqNj.css","./DownloadGitView-DP1MIWYX.js","./ManualConfigurationView-BA4Vtud8.js","./ManualConfigurationView-B6ecEClB.css","./KeybindingPanel-CxaJ1IiJ.js","./index-CK0rrCYF.js","./KeybindingPanel-DvrUYZ4S.css","./ExtensionPanel-CxijYN47.js","./ServerConfigPanel-TLv4HMGK.js","./index-5Sv744Dr.js","./index-BRhY6FpL.css"])))=>i.map(i=>d[i]); +var __defProp2 = Object.defineProperty; +var __name = (target, value4) => __defProp2(target, "name", { value: value4, configurable: true }); +(/* @__PURE__ */ __name(function polyfill() { + const relList = document.createElement("link").relList; + if (relList && relList.supports && relList.supports("modulepreload")) { + return; + } + for (const link2 of document.querySelectorAll('link[rel="modulepreload"]')) { + processPreload(link2); + } + new MutationObserver((mutations) => { + for (const mutation of mutations) { + if (mutation.type !== "childList") { + continue; + } + for (const node3 of mutation.addedNodes) { + if (node3.tagName === "LINK" && node3.rel === "modulepreload") + processPreload(node3); + } + } + }).observe(document, { childList: true, subtree: true }); + function getFetchOpts(link2) { + const fetchOpts = {}; + if (link2.integrity) fetchOpts.integrity = link2.integrity; + if (link2.referrerPolicy) fetchOpts.referrerPolicy = link2.referrerPolicy; + if (link2.crossOrigin === "use-credentials") + fetchOpts.credentials = "include"; + else if (link2.crossOrigin === "anonymous") fetchOpts.credentials = "omit"; + else fetchOpts.credentials = "same-origin"; + return fetchOpts; + } + __name(getFetchOpts, "getFetchOpts"); + function processPreload(link2) { + if (link2.ep) + return; + link2.ep = true; + const fetchOpts = getFetchOpts(link2); + fetch(link2.href, fetchOpts); + } + __name(processPreload, "processPreload"); +}, "polyfill"))(); +var __defProp$2 = Object.defineProperty; +var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols; +var __hasOwnProp$1 = Object.prototype.hasOwnProperty; +var __propIsEnum$1 = Object.prototype.propertyIsEnumerable; +var __defNormalProp$2 = /* @__PURE__ */ __name((obj, key, value4) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value: value4 }) : obj[key] = value4, "__defNormalProp$2"); +var __spreadValues$1 = /* @__PURE__ */ __name((a, b) => { + for (var prop2 in b || (b = {})) + if (__hasOwnProp$1.call(b, prop2)) + __defNormalProp$2(a, prop2, b[prop2]); + if (__getOwnPropSymbols$1) + for (var prop2 of __getOwnPropSymbols$1(b)) { + if (__propIsEnum$1.call(b, prop2)) + __defNormalProp$2(a, prop2, b[prop2]); + } + return a; +}, "__spreadValues$1"); +function isEmpty$1(value4) { + return value4 === null || value4 === void 0 || value4 === "" || Array.isArray(value4) && value4.length === 0 || !(value4 instanceof Date) && typeof value4 === "object" && Object.keys(value4).length === 0; +} +__name(isEmpty$1, "isEmpty$1"); +function compare$1(value1, value22, comparator2, order = 1) { + let result = -1; + const emptyValue1 = isEmpty$1(value1); + const emptyValue2 = isEmpty$1(value22); + if (emptyValue1 && emptyValue2) result = 0; + else if (emptyValue1) result = order; + else if (emptyValue2) result = -order; + else if (typeof value1 === "string" && typeof value22 === "string") result = comparator2(value1, value22); + else result = value1 < value22 ? -1 : value1 > value22 ? 1 : 0; + return result; +} +__name(compare$1, "compare$1"); +function deepEquals(obj1, obj2) { + if (obj1 === obj2) return true; + if (obj1 && obj2 && typeof obj1 == "object" && typeof obj2 == "object") { + var arrObj1 = Array.isArray(obj1), arrObj2 = Array.isArray(obj2), i2, length, key; + if (arrObj1 && arrObj2) { + length = obj1.length; + if (length != obj2.length) return false; + for (i2 = length; i2-- !== 0; ) if (!deepEquals(obj1[i2], obj2[i2])) return false; + return true; + } + if (arrObj1 != arrObj2) return false; + var dateObj1 = obj1 instanceof Date, dateObj2 = obj2 instanceof Date; + if (dateObj1 != dateObj2) return false; + if (dateObj1 && dateObj2) return obj1.getTime() == obj2.getTime(); + var regexpObj1 = obj1 instanceof RegExp, regexpObj2 = obj2 instanceof RegExp; + if (regexpObj1 != regexpObj2) return false; + if (regexpObj1 && regexpObj2) return obj1.toString() == obj2.toString(); + var keys2 = Object.keys(obj1); + length = keys2.length; + if (length !== Object.keys(obj2).length) return false; + for (i2 = length; i2-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(obj2, keys2[i2])) return false; + for (i2 = length; i2-- !== 0; ) { + key = keys2[i2]; + if (!deepEquals(obj1[key], obj2[key])) return false; + } + return true; + } + return obj1 !== obj1 && obj2 !== obj2; +} +__name(deepEquals, "deepEquals"); +function isFunction$5(value4) { + return !!(value4 && value4.constructor && value4.call && value4.apply); +} +__name(isFunction$5, "isFunction$5"); +function isNotEmpty(value4) { + return !isEmpty$1(value4); +} +__name(isNotEmpty, "isNotEmpty"); +function resolveFieldData(data24, field) { + if (!data24 || !field) { + return null; + } + try { + const value4 = data24[field]; + if (isNotEmpty(value4)) return value4; + } catch (e2) { + } + if (Object.keys(data24).length) { + if (isFunction$5(field)) { + return field(data24); + } else if (field.indexOf(".") === -1) { + return data24[field]; + } else { + let fields = field.split("."); + let value4 = data24; + for (let i2 = 0, len = fields.length; i2 < len; ++i2) { + if (value4 == null) { + return null; + } + value4 = value4[fields[i2]]; + } + return value4; + } + } + return null; +} +__name(resolveFieldData, "resolveFieldData"); +function equals(obj1, obj2, field) { + if (field) return resolveFieldData(obj1, field) === resolveFieldData(obj2, field); + else return deepEquals(obj1, obj2); +} +__name(equals, "equals"); +function contains(value4, list2) { + if (value4 != null && list2 && list2.length) { + for (let val of list2) { + if (equals(value4, val)) return true; + } + } + return false; +} +__name(contains, "contains"); +function filter(value4, fields, filterValue) { + let filteredItems = []; + if (value4) { + for (let item3 of value4) { + for (let field of fields) { + if (String(resolveFieldData(item3, field)).toLowerCase().indexOf(filterValue.toLowerCase()) > -1) { + filteredItems.push(item3); + break; + } + } + } + } + return filteredItems; +} +__name(filter, "filter"); +function findIndexInList(value4, list2) { + let index2 = -1; + if (list2) { + for (let i2 = 0; i2 < list2.length; i2++) { + if (list2[i2] === value4) { + index2 = i2; + break; + } + } + } + return index2; +} +__name(findIndexInList, "findIndexInList"); +function findLast$1(arr, callback) { + let item3; + if (isNotEmpty(arr)) { + try { + item3 = arr.findLast(callback); + } catch (e2) { + item3 = [...arr].reverse().find(callback); + } + } + return item3; +} +__name(findLast$1, "findLast$1"); +function findLastIndex(arr, callback) { + let index2 = -1; + if (isNotEmpty(arr)) { + try { + index2 = arr.findLastIndex(callback); + } catch (e2) { + index2 = arr.lastIndexOf([...arr].reverse().find(callback)); + } + } + return index2; +} +__name(findLastIndex, "findLastIndex"); +function isObject$7(value4, empty3 = true) { + return value4 instanceof Object && value4.constructor === Object && (empty3 || Object.keys(value4).length !== 0); +} +__name(isObject$7, "isObject$7"); +function resolve$1(obj, ...params) { + return isFunction$5(obj) ? obj(...params) : obj; +} +__name(resolve$1, "resolve$1"); +function isString$8(value4, empty3 = true) { + return typeof value4 === "string" && (empty3 || value4 !== ""); +} +__name(isString$8, "isString$8"); +function toFlatCase(str) { + return isString$8(str) ? str.replace(/(-|_)/g, "").toLowerCase() : str; +} +__name(toFlatCase, "toFlatCase"); +function getKeyValue(obj, key = "", params = {}) { + const fKeys = toFlatCase(key).split("."); + const fKey = fKeys.shift(); + return fKey ? isObject$7(obj) ? getKeyValue(resolve$1(obj[Object.keys(obj).find((k) => toFlatCase(k) === fKey) || ""], params), fKeys.join("."), params) : void 0 : resolve$1(obj, params); +} +__name(getKeyValue, "getKeyValue"); +function insertIntoOrderedArray(item3, index2, arr, sourceArr) { + if (arr.length > 0) { + let injected = false; + for (let i2 = 0; i2 < arr.length; i2++) { + let currentItemIndex = findIndexInList(arr[i2], sourceArr); + if (currentItemIndex > index2) { + arr.splice(i2, 0, item3); + injected = true; + break; + } + } + if (!injected) { + arr.push(item3); + } + } else { + arr.push(item3); + } +} +__name(insertIntoOrderedArray, "insertIntoOrderedArray"); +function isArray$5(value4, empty3 = true) { + return Array.isArray(value4) && (empty3 || value4.length !== 0); +} +__name(isArray$5, "isArray$5"); +function isDate$3(value4) { + return value4 instanceof Date && value4.constructor === Date; +} +__name(isDate$3, "isDate$3"); +function isNumber$5(value4) { + return isNotEmpty(value4) && !isNaN(value4); +} +__name(isNumber$5, "isNumber$5"); +function isPrintableCharacter(char = "") { + return isNotEmpty(char) && char.length === 1 && !!char.match(/\S| /); +} +__name(isPrintableCharacter, "isPrintableCharacter"); +function localeComparator() { + return new Intl.Collator(void 0, { numeric: true }).compare; +} +__name(localeComparator, "localeComparator"); +function matchRegex(str, regex2) { + if (regex2) { + const match2 = regex2.test(str); + regex2.lastIndex = 0; + return match2; + } + return false; +} +__name(matchRegex, "matchRegex"); +function mergeKeys(...args) { + const _mergeKeys = /* @__PURE__ */ __name((target = {}, source = {}) => { + const mergedObj = __spreadValues$1({}, target); + Object.keys(source).forEach((key) => { + if (isObject$7(source[key]) && key in target && isObject$7(target[key])) { + mergedObj[key] = _mergeKeys(target[key], source[key]); + } else { + mergedObj[key] = source[key]; + } + }); + return mergedObj; + }, "_mergeKeys"); + return args.reduce((acc, obj, i2) => i2 === 0 ? obj : _mergeKeys(acc, obj), {}); +} +__name(mergeKeys, "mergeKeys"); +function minifyCSS(css3) { + return css3 ? css3.replace(/\/\*(?:(?!\*\/)[\s\S])*\*\/|[\r\n\t]+/g, "").replace(/ {2,}/g, " ").replace(/ ([{:}]) /g, "$1").replace(/([;,]) /g, "$1").replace(/ !/g, "!").replace(/: /g, ":") : css3; +} +__name(minifyCSS, "minifyCSS"); +function nestedKeys(obj = {}, parentKey = "") { + return Object.entries(obj).reduce((o, [key, value4]) => { + const currentKey = parentKey ? `${parentKey}.${key}` : key; + isObject$7(value4) ? o = o.concat(nestedKeys(value4, currentKey)) : o.push(currentKey); + return o; + }, []); +} +__name(nestedKeys, "nestedKeys"); +function removeAccents(str) { + if (str && str.search(/[\xC0-\xFF]/g) > -1) { + str = str.replace(/[\xC0-\xC5]/g, "A").replace(/[\xC6]/g, "AE").replace(/[\xC7]/g, "C").replace(/[\xC8-\xCB]/g, "E").replace(/[\xCC-\xCF]/g, "I").replace(/[\xD0]/g, "D").replace(/[\xD1]/g, "N").replace(/[\xD2-\xD6\xD8]/g, "O").replace(/[\xD9-\xDC]/g, "U").replace(/[\xDD]/g, "Y").replace(/[\xDE]/g, "P").replace(/[\xE0-\xE5]/g, "a").replace(/[\xE6]/g, "ae").replace(/[\xE7]/g, "c").replace(/[\xE8-\xEB]/g, "e").replace(/[\xEC-\xEF]/g, "i").replace(/[\xF1]/g, "n").replace(/[\xF2-\xF6\xF8]/g, "o").replace(/[\xF9-\xFC]/g, "u").replace(/[\xFE]/g, "p").replace(/[\xFD\xFF]/g, "y"); + } + return str; +} +__name(removeAccents, "removeAccents"); +function reorderArray(value4, from2, to) { + if (value4 && from2 !== to) { + if (to >= value4.length) { + to %= value4.length; + from2 %= value4.length; + } + value4.splice(to, 0, value4.splice(from2, 1)[0]); + } +} +__name(reorderArray, "reorderArray"); +function sort(value1, value22, order = 1, comparator2, nullSortOrder = 1) { + const result = compare$1(value1, value22, comparator2, order); + let finalSortOrder = order; + if (isEmpty$1(value1) || isEmpty$1(value22)) { + finalSortOrder = nullSortOrder === 1 ? order : nullSortOrder; + } + return finalSortOrder * result; +} +__name(sort, "sort"); +function stringify(value4, indent = 2, currentIndent = 0) { + const currentIndentStr = " ".repeat(currentIndent); + const nextIndentStr = " ".repeat(currentIndent + indent); + if (isArray$5(value4)) { + return "[" + value4.map((v2) => stringify(v2, indent, currentIndent + indent)).join(", ") + "]"; + } else if (isDate$3(value4)) { + return value4.toISOString(); + } else if (isFunction$5(value4)) { + return value4.toString(); + } else if (isObject$7(value4)) { + return "{\n" + Object.entries(value4).map(([k, v2]) => `${nextIndentStr}${k}: ${stringify(v2, indent, currentIndent + indent)}`).join(",\n") + ` +${currentIndentStr}}`; + } else { + return JSON.stringify(value4); + } +} +__name(stringify, "stringify"); +function toCapitalCase(str) { + return isString$8(str, false) ? str[0].toUpperCase() + str.slice(1) : str; +} +__name(toCapitalCase, "toCapitalCase"); +function toKebabCase(str) { + return isString$8(str) ? str.replace(/(_)/g, "-").replace(/[A-Z]/g, (c, i2) => i2 === 0 ? c : "-" + c.toLowerCase()).toLowerCase() : str; +} +__name(toKebabCase, "toKebabCase"); +function toTokenKey$1(str) { + return isString$8(str) ? str.replace(/[A-Z]/g, (c, i2) => i2 === 0 ? c : "." + c.toLowerCase()).toLowerCase() : str; +} +__name(toTokenKey$1, "toTokenKey$1"); +function EventBus() { + const allHandlers = /* @__PURE__ */ new Map(); + return { + on(type, handler6) { + let handlers2 = allHandlers.get(type); + if (!handlers2) handlers2 = [handler6]; + else handlers2.push(handler6); + allHandlers.set(type, handlers2); + return this; + }, + off(type, handler6) { + let handlers2 = allHandlers.get(type); + if (handlers2) { + handlers2.splice(handlers2.indexOf(handler6) >>> 0, 1); + } + return this; + }, + emit(type, evt) { + let handlers2 = allHandlers.get(type); + if (handlers2) { + handlers2.slice().map((handler6) => { + handler6(evt); + }); + } + }, + clear() { + allHandlers.clear(); + } + }; +} +__name(EventBus, "EventBus"); +var __defProp$1 = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp$1 = /* @__PURE__ */ __name((obj, key, value4) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value: value4 }) : obj[key] = value4, "__defNormalProp$1"); +var __spreadValues = /* @__PURE__ */ __name((a, b) => { + for (var prop2 in b || (b = {})) + if (__hasOwnProp.call(b, prop2)) + __defNormalProp$1(a, prop2, b[prop2]); + if (__getOwnPropSymbols) + for (var prop2 of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop2)) + __defNormalProp$1(a, prop2, b[prop2]); + } + return a; +}, "__spreadValues"); +var __spreadProps = /* @__PURE__ */ __name((a, b) => __defProps(a, __getOwnPropDescs(b)), "__spreadProps"); +var __objRest = /* @__PURE__ */ __name((source, exclude) => { + var target = {}; + for (var prop2 in source) + if (__hasOwnProp.call(source, prop2) && exclude.indexOf(prop2) < 0) + target[prop2] = source[prop2]; + if (source != null && __getOwnPropSymbols) + for (var prop2 of __getOwnPropSymbols(source)) { + if (exclude.indexOf(prop2) < 0 && __propIsEnum.call(source, prop2)) + target[prop2] = source[prop2]; + } + return target; +}, "__objRest"); +function definePreset(...presets) { + return mergeKeys(...presets); +} +__name(definePreset, "definePreset"); +var ThemeService = EventBus(); +var service_default = ThemeService; +function toTokenKey(str) { + return isString$8(str) ? str.replace(/[A-Z]/g, (c, i2) => i2 === 0 ? c : "." + c.toLowerCase()).toLowerCase() : str; +} +__name(toTokenKey, "toTokenKey"); +function merge$1(value1, value22) { + if (isArray$5(value1)) { + value1.push(...value22 || []); + } else if (isObject$7(value1)) { + Object.assign(value1, value22); + } +} +__name(merge$1, "merge$1"); +function toValue$2(value4) { + return isObject$7(value4) && value4.hasOwnProperty("value") && value4.hasOwnProperty("type") ? value4.value : value4; +} +__name(toValue$2, "toValue$2"); +function toUnit(value4, variable = "") { + const excludedProperties = ["opacity", "z-index", "line-height", "font-weight", "flex", "flex-grow", "flex-shrink", "order"]; + if (!excludedProperties.some((property) => variable.endsWith(property))) { + const val = `${value4}`.trim(); + const valArr = val.split(" "); + return valArr.map((v2) => isNumber$5(v2) ? `${v2}px` : v2).join(" "); + } + return value4; +} +__name(toUnit, "toUnit"); +function toNormalizePrefix(prefix2) { + return prefix2.replaceAll(/ /g, "").replace(/[^\w]/g, "-"); +} +__name(toNormalizePrefix, "toNormalizePrefix"); +function toNormalizeVariable(prefix2 = "", variable = "") { + return toNormalizePrefix(`${isString$8(prefix2, false) && isString$8(variable, false) ? `${prefix2}-` : prefix2}${variable}`); +} +__name(toNormalizeVariable, "toNormalizeVariable"); +function getVariableName(prefix2 = "", variable = "") { + return `--${toNormalizeVariable(prefix2, variable)}`; +} +__name(getVariableName, "getVariableName"); +function getVariableValue(value4, variable = "", prefix2 = "", excludedKeyRegexes = [], fallback) { + if (isString$8(value4)) { + const regex2 = /{([^}]*)}/g; + const val = value4.trim(); + if (matchRegex(val, regex2)) { + const _val = val.replaceAll(regex2, (v2) => { + const path = v2.replace(/{|}/g, ""); + const keys2 = path.split(".").filter((_v) => !excludedKeyRegexes.some((_r) => matchRegex(_v, _r))); + return `var(${getVariableName(prefix2, toKebabCase(keys2.join("-")))}${isNotEmpty(fallback) ? `, ${fallback}` : ""})`; + }); + const calculationRegex = /(\d+\s+[\+\-\*\/]\s+\d+)/g; + const cleanedVarRegex = /var\([^)]+\)/g; + return matchRegex(_val.replace(cleanedVarRegex, "0"), calculationRegex) ? `calc(${_val})` : _val; + } + return toUnit(val, variable); + } else if (isNumber$5(value4)) { + return toUnit(value4, variable); + } + return void 0; +} +__name(getVariableValue, "getVariableValue"); +function getComputedValue(obj = {}, value4) { + if (isString$8(value4)) { + const regex2 = /{([^}]*)}/g; + const val = value4.trim(); + return matchRegex(val, regex2) ? val.replaceAll(regex2, (v2) => getKeyValue(obj, v2.replace(/{|}/g, ""))) : val; + } else if (isNumber$5(value4)) { + return value4; + } + return void 0; +} +__name(getComputedValue, "getComputedValue"); +function setProperty(properties, key, value4) { + if (isString$8(key, false)) { + properties.push(`${key}:${value4};`); + } +} +__name(setProperty, "setProperty"); +function getRule(selector, properties) { + if (selector) { + return `${selector}{${properties}}`; + } + return ""; +} +__name(getRule, "getRule"); +function normalizeColor(color2) { + if (color2.length === 4) { + return `#${color2[1]}${color2[1]}${color2[2]}${color2[2]}${color2[3]}${color2[3]}`; + } + return color2; +} +__name(normalizeColor, "normalizeColor"); +function hexToRgb$1(hex) { + var bigint = parseInt(hex.substring(1), 16); + var r = bigint >> 16 & 255; + var g2 = bigint >> 8 & 255; + var b = bigint & 255; + return { r, g: g2, b }; +} +__name(hexToRgb$1, "hexToRgb$1"); +function rgbToHex(r, g2, b) { + return `#${r.toString(16).padStart(2, "0")}${g2.toString(16).padStart(2, "0")}${b.toString(16).padStart(2, "0")}`; +} +__name(rgbToHex, "rgbToHex"); +var mix_default = /* @__PURE__ */ __name((color1, color2, weight) => { + color1 = normalizeColor(color1); + color2 = normalizeColor(color2); + var p2 = weight / 100; + var w = p2 * 2 - 1; + var w1 = (w + 1) / 2; + var w2 = 1 - w1; + var rgb1 = hexToRgb$1(color1); + var rgb2 = hexToRgb$1(color2); + var r = Math.round(rgb1.r * w1 + rgb2.r * w2); + var g2 = Math.round(rgb1.g * w1 + rgb2.g * w2); + var b = Math.round(rgb1.b * w1 + rgb2.b * w2); + return rgbToHex(r, g2, b); +}, "mix_default"); +var shade_default = /* @__PURE__ */ __name((color2, percent) => mix_default("#000000", color2, percent), "shade_default"); +var tint_default = /* @__PURE__ */ __name((color2, percent) => mix_default("#ffffff", color2, percent), "tint_default"); +var scales = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950]; +var palette_default = /* @__PURE__ */ __name((color2) => { + if (/{([^}]*)}/g.test(color2)) { + const token = color2.replace(/{|}/g, ""); + return scales.reduce((acc, scale) => (acc[scale] = `{${token}.${scale}}`, acc), {}); + } + return typeof color2 === "string" ? scales.reduce((acc, scale, i2) => (acc[scale] = i2 <= 5 ? tint_default(color2, (5 - i2) * 19) : shade_default(color2, (i2 - 5) * 15), acc), {}) : color2; +}, "palette_default"); +var $dt = /* @__PURE__ */ __name((tokenPath) => { + var _a2; + const theme40 = config_default.getTheme(); + const variable = dtwt(theme40, tokenPath, void 0, "variable"); + const name2 = (_a2 = variable.match(/--[\w-]+/g)) == null ? void 0 : _a2[0]; + const value4 = dtwt(theme40, tokenPath, void 0, "value"); + return { + name: name2, + variable, + value: value4 + }; +}, "$dt"); +var dt = /* @__PURE__ */ __name((...args) => { + return dtwt(config_default.getTheme(), ...args); +}, "dt"); +var dtwt = /* @__PURE__ */ __name((theme40 = {}, tokenPath, fallback, type = "variable") => { + if (tokenPath) { + const { variable: VARIABLE, options: OPTIONS } = config_default.defaults || {}; + const { prefix: prefix2, transform: transform2 } = (theme40 == null ? void 0 : theme40.options) || OPTIONS || {}; + const regex2 = /{([^}]*)}/g; + const token = matchRegex(tokenPath, regex2) ? tokenPath : `{${tokenPath}}`; + const isStrictTransform = type === "value" || transform2 === "strict"; + return isStrictTransform ? config_default.getTokenValue(tokenPath) : getVariableValue(token, void 0, prefix2, [VARIABLE.excludedKeyRegex], fallback); + } + return ""; +}, "dtwt"); +function css$2(style2) { + return resolve$1(style2, { dt }); +} +__name(css$2, "css$2"); +var $t = /* @__PURE__ */ __name((theme40 = {}) => { + let { preset: _preset, options: _options } = theme40; + return { + preset(value4) { + _preset = _preset ? mergeKeys(_preset, value4) : value4; + return this; + }, + options(value4) { + _options = _options ? __spreadValues(__spreadValues({}, _options), value4) : value4; + return this; + }, + // features + primaryPalette(primary) { + const { semantic } = _preset || {}; + _preset = __spreadProps(__spreadValues({}, _preset), { semantic: __spreadProps(__spreadValues({}, semantic), { primary }) }); + return this; + }, + surfacePalette(surface) { + var _a2, _b; + const { semantic } = _preset || {}; + const lightSurface = (surface == null ? void 0 : surface.hasOwnProperty("light")) ? surface == null ? void 0 : surface.light : surface; + const darkSurface = (surface == null ? void 0 : surface.hasOwnProperty("dark")) ? surface == null ? void 0 : surface.dark : surface; + const newColorScheme = { + colorScheme: { + light: __spreadValues(__spreadValues({}, (_a2 = semantic == null ? void 0 : semantic.colorScheme) == null ? void 0 : _a2.light), !!lightSurface && { surface: lightSurface }), + dark: __spreadValues(__spreadValues({}, (_b = semantic == null ? void 0 : semantic.colorScheme) == null ? void 0 : _b.dark), !!darkSurface && { surface: darkSurface }) + } + }; + _preset = __spreadProps(__spreadValues({}, _preset), { semantic: __spreadValues(__spreadValues({}, semantic), newColorScheme) }); + return this; + }, + // actions + define({ useDefaultPreset = false, useDefaultOptions = false } = {}) { + return { + preset: useDefaultPreset ? config_default.getPreset() : _preset, + options: useDefaultOptions ? config_default.getOptions() : _options + }; + }, + update({ mergePresets = true, mergeOptions: mergeOptions2 = true } = {}) { + const newTheme = { + preset: mergePresets ? mergeKeys(config_default.getPreset(), _preset) : _preset, + options: mergeOptions2 ? __spreadValues(__spreadValues({}, config_default.getOptions()), _options) : _options + }; + config_default.setTheme(newTheme); + return newTheme; + }, + use(options4) { + const newTheme = this.define(options4); + config_default.setTheme(newTheme); + return newTheme; + } + }; +}, "$t"); +function toVariables_default(theme40, options4 = {}) { + const VARIABLE = config_default.defaults.variable; + const { prefix: prefix2 = VARIABLE.prefix, selector = VARIABLE.selector, excludedKeyRegex = VARIABLE.excludedKeyRegex } = options4; + const _toVariables = /* @__PURE__ */ __name((_theme, _prefix = "") => { + return Object.entries(_theme).reduce( + (acc, [key, value4]) => { + const px = matchRegex(key, excludedKeyRegex) ? toNormalizeVariable(_prefix) : toNormalizeVariable(_prefix, toKebabCase(key)); + const v2 = toValue$2(value4); + if (isObject$7(v2)) { + const { variables: variables2, tokens: tokens2 } = _toVariables(v2, px); + merge$1(acc["tokens"], tokens2); + merge$1(acc["variables"], variables2); + } else { + acc["tokens"].push((prefix2 ? px.replace(`${prefix2}-`, "") : px).replaceAll("-", ".")); + setProperty(acc["variables"], getVariableName(px), getVariableValue(v2, px, prefix2, [excludedKeyRegex])); + } + return acc; + }, + { variables: [], tokens: [] } + ); + }, "_toVariables"); + const { variables, tokens } = _toVariables(theme40, prefix2); + return { + value: variables, + tokens, + declarations: variables.join(""), + css: getRule(selector, variables.join("")) + }; +} +__name(toVariables_default, "toVariables_default"); +var themeUtils_default = { + regex: { + rules: { + class: { + pattern: /^\.([a-zA-Z][\w-]*)$/, + resolve(value4) { + return { type: "class", selector: value4, matched: this.pattern.test(value4.trim()) }; + } + }, + attr: { + pattern: /^\[(.*)\]$/, + resolve(value4) { + return { type: "attr", selector: `:root${value4}`, matched: this.pattern.test(value4.trim()) }; + } + }, + media: { + pattern: /^@media (.*)$/, + resolve(value4) { + return { type: "media", selector: `${value4}{:root{[CSS]}}`, matched: this.pattern.test(value4.trim()) }; + } + }, + system: { + pattern: /^system$/, + resolve(value4) { + return { type: "system", selector: "@media (prefers-color-scheme: dark){:root{[CSS]}}", matched: this.pattern.test(value4.trim()) }; + } + }, + custom: { + resolve(value4) { + return { type: "custom", selector: value4, matched: true }; + } + } + }, + resolve(value4) { + const rules = Object.keys(this.rules).filter((k) => k !== "custom").map((r) => this.rules[r]); + return [value4].flat().map((v2) => { + var _a2; + return (_a2 = rules.map((r) => r.resolve(v2)).find((rr) => rr.matched)) != null ? _a2 : this.rules.custom.resolve(v2); + }); + } + }, + _toVariables(theme40, options4) { + return toVariables_default(theme40, { prefix: options4 == null ? void 0 : options4.prefix }); + }, + getCommon({ name: name2 = "", theme: theme40 = {}, params, set: set3, defaults: defaults2 }) { + var _c, _d, _e, _f; + const { preset, options: options4 } = theme40; + let primitive_css, primitive_tokens, semantic_css, semantic_tokens; + if (isNotEmpty(preset)) { + const { primitive, semantic } = preset; + const _a2 = semantic || {}, { colorScheme } = _a2, sRest = __objRest(_a2, ["colorScheme"]); + const _b = colorScheme || {}, { dark: dark2 } = _b, csRest = __objRest(_b, ["dark"]); + const prim_var = isNotEmpty(primitive) ? this._toVariables({ primitive }, options4) : {}; + const sRest_var = isNotEmpty(sRest) ? this._toVariables({ semantic: sRest }, options4) : {}; + const csRest_var = isNotEmpty(csRest) ? this._toVariables({ light: csRest }, options4) : {}; + const dark_var = isNotEmpty(dark2) ? this._toVariables({ dark: dark2 }, options4) : {}; + const [prim_css, prim_tokens] = [(_c = prim_var.declarations) != null ? _c : "", prim_var.tokens]; + const [sRest_css, sRest_tokens] = [(_d = sRest_var.declarations) != null ? _d : "", sRest_var.tokens || []]; + const [csRest_css, csRest_tokens] = [(_e = csRest_var.declarations) != null ? _e : "", csRest_var.tokens || []]; + const [dark_css, dark_tokens] = [(_f = dark_var.declarations) != null ? _f : "", dark_var.tokens || []]; + primitive_css = this.transformCSS(name2, prim_css, "light", "variable", options4, set3, defaults2); + primitive_tokens = prim_tokens; + const semantic_light_css = this.transformCSS(name2, `${sRest_css}${csRest_css}color-scheme:light`, "light", "variable", options4, set3, defaults2); + const semantic_dark_css = this.transformCSS(name2, `${dark_css}color-scheme:dark`, "dark", "variable", options4, set3, defaults2); + semantic_css = `${semantic_light_css}${semantic_dark_css}`; + semantic_tokens = [.../* @__PURE__ */ new Set([...sRest_tokens, ...csRest_tokens, ...dark_tokens])]; + } + return { + primitive: { + css: primitive_css, + tokens: primitive_tokens + }, + semantic: { + css: semantic_css, + tokens: semantic_tokens + } + }; + }, + getPreset({ name: name2 = "", preset = {}, options: options4, params, set: set3, defaults: defaults2, selector }) { + var _c, _d, _e; + const _name = name2.replace("-directive", ""); + const _a2 = preset, { colorScheme } = _a2, vRest = __objRest(_a2, ["colorScheme"]); + const _b = colorScheme || {}, { dark: dark2 } = _b, csRest = __objRest(_b, ["dark"]); + const vRest_var = isNotEmpty(vRest) ? this._toVariables({ [_name]: vRest }, options4) : {}; + const csRest_var = isNotEmpty(csRest) ? this._toVariables({ [_name]: csRest }, options4) : {}; + const dark_var = isNotEmpty(dark2) ? this._toVariables({ [_name]: dark2 }, options4) : {}; + const [vRest_css, vRest_tokens] = [(_c = vRest_var.declarations) != null ? _c : "", vRest_var.tokens || []]; + const [csRest_css, csRest_tokens] = [(_d = csRest_var.declarations) != null ? _d : "", csRest_var.tokens || []]; + const [dark_css, dark_tokens] = [(_e = dark_var.declarations) != null ? _e : "", dark_var.tokens || []]; + const tokens = [.../* @__PURE__ */ new Set([...vRest_tokens, ...csRest_tokens, ...dark_tokens])]; + const light_variable_css = this.transformCSS(_name, `${vRest_css}${csRest_css}`, "light", "variable", options4, set3, defaults2, selector); + const dark_variable_css = this.transformCSS(_name, dark_css, "dark", "variable", options4, set3, defaults2, selector); + return { + css: `${light_variable_css}${dark_variable_css}`, + tokens + }; + }, + getPresetC({ name: name2 = "", theme: theme40 = {}, params, set: set3, defaults: defaults2 }) { + var _a2; + const { preset, options: options4 } = theme40; + const cPreset = (_a2 = preset == null ? void 0 : preset.components) == null ? void 0 : _a2[name2]; + return this.getPreset({ name: name2, preset: cPreset, options: options4, params, set: set3, defaults: defaults2 }); + }, + getPresetD({ name: name2 = "", theme: theme40 = {}, params, set: set3, defaults: defaults2 }) { + var _a2; + const dName = name2.replace("-directive", ""); + const { preset, options: options4 } = theme40; + const dPreset = (_a2 = preset == null ? void 0 : preset.directives) == null ? void 0 : _a2[dName]; + return this.getPreset({ name: dName, preset: dPreset, options: options4, params, set: set3, defaults: defaults2 }); + }, + getColorSchemeOption(options4, defaults2) { + var _a2; + return this.regex.resolve((_a2 = options4.darkModeSelector) != null ? _a2 : defaults2.options.darkModeSelector); + }, + getLayerOrder(name2, options4 = {}, params, defaults2) { + const { cssLayer } = options4; + if (cssLayer) { + const order = resolve$1(cssLayer.order || "primeui", params); + return `@layer ${order}`; + } + return ""; + }, + getCommonStyleSheet({ name: name2 = "", theme: theme40 = {}, params, props = {}, set: set3, defaults: defaults2 }) { + const common = this.getCommon({ name: name2, theme: theme40, params, set: set3, defaults: defaults2 }); + const _props = Object.entries(props).reduce((acc, [k, v2]) => acc.push(`${k}="${v2}"`) && acc, []).join(" "); + return Object.entries(common || {}).reduce((acc, [key, value4]) => { + if (value4 == null ? void 0 : value4.css) { + const _css = minifyCSS(value4 == null ? void 0 : value4.css); + const id3 = `${key}-variables`; + acc.push(``); + } + return acc; + }, []).join(""); + }, + getStyleSheet({ name: name2 = "", theme: theme40 = {}, params, props = {}, set: set3, defaults: defaults2 }) { + var _a2; + const options4 = { name: name2, theme: theme40, params, set: set3, defaults: defaults2 }; + const preset_css = (_a2 = name2.includes("-directive") ? this.getPresetD(options4) : this.getPresetC(options4)) == null ? void 0 : _a2.css; + const _props = Object.entries(props).reduce((acc, [k, v2]) => acc.push(`${k}="${v2}"`) && acc, []).join(" "); + return preset_css ? `` : ""; + }, + createTokens(obj = {}, defaults2, parentKey = "", parentPath = "", tokens = {}) { + Object.entries(obj).forEach(([key, value4]) => { + const currentKey = matchRegex(key, defaults2.variable.excludedKeyRegex) ? parentKey : parentKey ? `${parentKey}.${toTokenKey$1(key)}` : toTokenKey$1(key); + const currentPath = parentPath ? `${parentPath}.${key}` : key; + if (isObject$7(value4)) { + this.createTokens(value4, defaults2, currentKey, currentPath, tokens); + } else { + tokens[currentKey] || (tokens[currentKey] = { + paths: [], + computed(colorScheme, tokenPathMap = {}) { + if (colorScheme) { + const path = this.paths.find((p2) => p2.scheme === colorScheme) || this.paths.find((p2) => p2.scheme === "none"); + return path == null ? void 0 : path.computed(colorScheme, tokenPathMap["binding"]); + } + return this.paths.map((p2) => p2.computed(p2.scheme, tokenPathMap[p2.scheme])); + } + }); + tokens[currentKey].paths.push({ + path: currentPath, + value: value4, + scheme: currentPath.includes("colorScheme.light") ? "light" : currentPath.includes("colorScheme.dark") ? "dark" : "none", + computed(colorScheme, tokenPathMap = {}) { + const regex2 = /{([^}]*)}/g; + let computedValue = value4; + tokenPathMap["name"] = this.path; + tokenPathMap["binding"] || (tokenPathMap["binding"] = {}); + if (matchRegex(value4, regex2)) { + const val = value4.trim(); + const _val = val.replaceAll(regex2, (v2) => { + var _a2, _b; + const path = v2.replace(/{|}/g, ""); + return (_b = (_a2 = tokens[path]) == null ? void 0 : _a2.computed(colorScheme, tokenPathMap)) == null ? void 0 : _b.value; + }); + const calculationRegex = /(\d+\w*\s+[\+\-\*\/]\s+\d+\w*)/g; + const cleanedVarRegex = /var\([^)]+\)/g; + computedValue = matchRegex(_val.replace(cleanedVarRegex, "0"), calculationRegex) ? `calc(${_val})` : _val; + } + isEmpty$1(tokenPathMap["binding"]) && delete tokenPathMap["binding"]; + return { + colorScheme, + path: this.path, + paths: tokenPathMap, + value: computedValue.includes("undefined") ? void 0 : computedValue + }; + } + }); + } + }); + return tokens; + }, + getTokenValue(tokens, path, defaults2) { + var _a2; + const normalizePath = /* @__PURE__ */ __name((str) => { + const strArr = str.split("."); + return strArr.filter((s) => !matchRegex(s.toLowerCase(), defaults2.variable.excludedKeyRegex)).join("."); + }, "normalizePath"); + const token = normalizePath(path); + const colorScheme = path.includes("colorScheme.light") ? "light" : path.includes("colorScheme.dark") ? "dark" : void 0; + const computedValues = [(_a2 = tokens[token]) == null ? void 0 : _a2.computed(colorScheme)].flat().filter((computed2) => computed2); + return computedValues.length === 1 ? computedValues[0].value : computedValues.reduce((acc = {}, computed2) => { + const _a22 = computed2, { colorScheme: cs } = _a22, rest = __objRest(_a22, ["colorScheme"]); + acc[cs] = rest; + return acc; + }, void 0); + }, + transformCSS(name2, css22, mode2, type, options4 = {}, set3, defaults2, selector) { + if (isNotEmpty(css22)) { + const { cssLayer } = options4; + if (type !== "style") { + const colorSchemeOption = this.getColorSchemeOption(options4, defaults2); + const _css = selector ? getRule(selector, css22) : css22; + css22 = mode2 === "dark" ? colorSchemeOption.reduce((acc, { selector: _selector }) => { + if (isNotEmpty(_selector)) { + acc += _selector.includes("[CSS]") ? _selector.replace("[CSS]", _css) : getRule(_selector, _css); + } + return acc; + }, "") : getRule(selector != null ? selector : ":root", css22); + } + if (cssLayer) { + const layerOptions = { + name: "primeui", + order: "primeui" + }; + isObject$7(cssLayer) && (layerOptions.name = resolve$1(cssLayer.name, { name: name2, type })); + if (isNotEmpty(layerOptions.name)) { + css22 = getRule(`@layer ${layerOptions.name}`, css22); + set3 == null ? void 0 : set3.layerNames(layerOptions.name); + } + } + return css22; + } + return ""; + } +}; +var config_default = { + defaults: { + variable: { + prefix: "p", + selector: ":root", + excludedKeyRegex: /^(primitive|semantic|components|directives|variables|colorscheme|light|dark|common|root|states)$/gi + }, + options: { + prefix: "p", + darkModeSelector: "system", + cssLayer: false + } + }, + _theme: void 0, + _layerNames: /* @__PURE__ */ new Set(), + _loadedStyleNames: /* @__PURE__ */ new Set(), + _loadingStyles: /* @__PURE__ */ new Set(), + _tokens: {}, + update(newValues = {}) { + const { theme: theme40 } = newValues; + if (theme40) { + this._theme = __spreadProps(__spreadValues({}, theme40), { + options: __spreadValues(__spreadValues({}, this.defaults.options), theme40.options) + }); + this._tokens = themeUtils_default.createTokens(this.preset, this.defaults); + this.clearLoadedStyleNames(); + } + }, + get theme() { + return this._theme; + }, + get preset() { + var _a2; + return ((_a2 = this.theme) == null ? void 0 : _a2.preset) || {}; + }, + get options() { + var _a2; + return ((_a2 = this.theme) == null ? void 0 : _a2.options) || {}; + }, + get tokens() { + return this._tokens; + }, + getTheme() { + return this.theme; + }, + setTheme(newValue2) { + this.update({ theme: newValue2 }); + service_default.emit("theme:change", newValue2); + }, + getPreset() { + return this.preset; + }, + setPreset(newValue2) { + this._theme = __spreadProps(__spreadValues({}, this.theme), { preset: newValue2 }); + this._tokens = themeUtils_default.createTokens(newValue2, this.defaults); + this.clearLoadedStyleNames(); + service_default.emit("preset:change", newValue2); + service_default.emit("theme:change", this.theme); + }, + getOptions() { + return this.options; + }, + setOptions(newValue2) { + this._theme = __spreadProps(__spreadValues({}, this.theme), { options: newValue2 }); + this.clearLoadedStyleNames(); + service_default.emit("options:change", newValue2); + service_default.emit("theme:change", this.theme); + }, + getLayerNames() { + return [...this._layerNames]; + }, + setLayerNames(layerName) { + this._layerNames.add(layerName); + }, + getLoadedStyleNames() { + return this._loadedStyleNames; + }, + isStyleNameLoaded(name2) { + return this._loadedStyleNames.has(name2); + }, + setLoadedStyleName(name2) { + this._loadedStyleNames.add(name2); + }, + deleteLoadedStyleName(name2) { + this._loadedStyleNames.delete(name2); + }, + clearLoadedStyleNames() { + this._loadedStyleNames.clear(); + }, + getTokenValue(tokenPath) { + return themeUtils_default.getTokenValue(this.tokens, tokenPath, this.defaults); + }, + getCommon(name2 = "", params) { + return themeUtils_default.getCommon({ name: name2, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } }); + }, + getComponent(name2 = "", params) { + const options4 = { name: name2, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } }; + return themeUtils_default.getPresetC(options4); + }, + getDirective(name2 = "", params) { + const options4 = { name: name2, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } }; + return themeUtils_default.getPresetD(options4); + }, + getCustomPreset(name2 = "", preset, selector, params) { + const options4 = { name: name2, preset, options: this.options, selector, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } }; + return themeUtils_default.getPreset(options4); + }, + getLayerOrderCSS(name2 = "") { + return themeUtils_default.getLayerOrder(name2, this.options, { names: this.getLayerNames() }, this.defaults); + }, + transformCSS(name2 = "", css22, type = "style", mode2) { + return themeUtils_default.transformCSS(name2, css22, mode2, type, this.options, { layerNames: this.setLayerNames.bind(this) }, this.defaults); + }, + getCommonStyleSheet(name2 = "", params, props = {}) { + return themeUtils_default.getCommonStyleSheet({ name: name2, theme: this.theme, params, props, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } }); + }, + getStyleSheet(name2, params, props = {}) { + return themeUtils_default.getStyleSheet({ name: name2, theme: this.theme, params, props, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } }); + }, + onStyleMounted(name2) { + this._loadingStyles.add(name2); + }, + onStyleUpdated(name2) { + this._loadingStyles.add(name2); + }, + onStyleLoaded(event, { name: name2 }) { + if (this._loadingStyles.size) { + this._loadingStyles.delete(name2); + service_default.emit(`theme:${name2}:load`, event); + !this._loadingStyles.size && service_default.emit("theme:load"); + } + } +}; +function updatePreset(...presets) { + const newPreset = mergeKeys(config_default.getPreset(), ...presets); + config_default.setPreset(newPreset); + return newPreset; +} +__name(updatePreset, "updatePreset"); +function updatePrimaryPalette(primary) { + return $t().primaryPalette(primary).update().preset; +} +__name(updatePrimaryPalette, "updatePrimaryPalette"); +function updateSurfacePalette(palette) { + return $t().surfacePalette(palette).update().preset; +} +__name(updateSurfacePalette, "updateSurfacePalette"); +function usePreset(...presets) { + const newPreset = mergeKeys(...presets); + config_default.setPreset(newPreset); + return newPreset; +} +__name(usePreset, "usePreset"); +function useTheme(theme40) { + return $t(theme40).update({ mergePresets: false }); +} +__name(useTheme, "useTheme"); +var index$1n = { + root: { + transitionDuration: "{transition.duration}" + }, + panel: { + borderWidth: "0 0 1px 0", + borderColor: "{content.border.color}" + }, + header: { + color: "{text.muted.color}", + hoverColor: "{text.color}", + activeColor: "{text.color}", + padding: "1.125rem", + fontWeight: "600", + borderRadius: "0", + borderWidth: "0", + borderColor: "{content.border.color}", + background: "{content.background}", + hoverBackground: "{content.background}", + activeBackground: "{content.background}", + activeHoverBackground: "{content.background}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + }, + toggleIcon: { + color: "{text.muted.color}", + hoverColor: "{text.color}", + activeColor: "{text.color}", + activeHoverColor: "{text.color}" + }, + first: { + topBorderRadius: "{content.border.radius}", + borderWidth: "0" + }, + last: { + bottomBorderRadius: "{content.border.radius}", + activeBottomBorderRadius: "0" + } + }, + content: { + borderWidth: "0", + borderColor: "{content.border.color}", + background: "{content.background}", + color: "{text.color}", + padding: "0 1.125rem 1.125rem 1.125rem" + } +}; +var index$1m = { + root: { + background: "{form.field.background}", + disabledBackground: "{form.field.disabled.background}", + filledBackground: "{form.field.filled.background}", + filledFocusBackground: "{form.field.filled.focus.background}", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.hover.border.color}", + focusBorderColor: "{form.field.focus.border.color}", + invalidBorderColor: "{form.field.invalid.border.color}", + color: "{form.field.color}", + disabledColor: "{form.field.disabled.color}", + placeholderColor: "{form.field.placeholder.color}", + shadow: "{form.field.shadow}", + paddingX: "{form.field.padding.x}", + paddingY: "{form.field.padding.y}", + borderRadius: "{form.field.border.radius}", + focusRing: { + width: "{form.field.focus.ring.width}", + style: "{form.field.focus.ring.style}", + color: "{form.field.focus.ring.color}", + offset: "{form.field.focus.ring.offset}", + shadow: "{form.field.focus.ring.shadow}" + }, + transitionDuration: "{form.field.transition.duration}" + }, + overlay: { + background: "{overlay.select.background}", + borderColor: "{overlay.select.border.color}", + borderRadius: "{overlay.select.border.radius}", + color: "{overlay.select.color}", + shadow: "{overlay.select.shadow}" + }, + list: { + padding: "{list.padding}", + gap: "{list.gap}" + }, + option: { + focusBackground: "{list.option.focus.background}", + selectedBackground: "{list.option.selected.background}", + selectedFocusBackground: "{list.option.selected.focus.background}", + color: "{list.option.color}", + focusColor: "{list.option.focus.color}", + selectedColor: "{list.option.selected.color}", + selectedFocusColor: "{list.option.selected.focus.color}", + padding: "{list.option.padding}", + borderRadius: "{list.option.border.radius}" + }, + optionGroup: { + background: "{list.option.group.background}", + color: "{list.option.group.color}", + fontWeight: "{list.option.group.font.weight}", + padding: "{list.option.group.padding}" + }, + dropdown: { + width: "2.5rem", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.border.color}", + activeBorderColor: "{form.field.border.color}", + borderRadius: "{form.field.border.radius}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + chip: { + borderRadius: "{border.radius.sm}" + }, + emptyMessage: { + padding: "{list.option.padding}" + }, + colorScheme: { + light: { + dropdown: { + background: "{surface.100}", + hoverBackground: "{surface.200}", + activeBackground: "{surface.300}", + color: "{surface.600}", + hoverColor: "{surface.700}", + activeColor: "{surface.800}" + } + }, + dark: { + dropdown: { + background: "{surface.800}", + hoverBackground: "{surface.700}", + activeBackground: "{surface.600}", + color: "{surface.300}", + hoverColor: "{surface.200}", + activeColor: "{surface.100}" + } + } + } +}; +var index$1l = { + root: { + width: "2rem", + height: "2rem", + fontSize: "1rem", + background: "{content.border.color}", + borderRadius: "{content.border.radius}" + }, + group: { + borderColor: "{content.background}", + offset: "-1rem" + }, + lg: { + width: "3rem", + height: "3rem", + fontSize: "1.5rem" + }, + xl: { + width: "4rem", + height: "4rem", + fontSize: "2rem" + } +}; +var index$1k = { + root: { + borderRadius: "{border.radius.md}", + padding: "0 0.5rem", + fontSize: "0.75rem", + fontWeight: "700", + minWidth: "1.5rem", + height: "1.5rem" + }, + dot: { + size: "0.5rem" + }, + sm: { + fontSize: "0.625rem", + minWidth: "1.25rem", + height: "1.25rem" + }, + lg: { + fontSize: "0.875rem", + minWidth: "1.75rem", + height: "1.75rem" + }, + xl: { + fontSize: "1rem", + minWidth: "2rem", + height: "2rem" + }, + colorScheme: { + light: { + primary: { + background: "{primary.color}", + color: "{primary.contrast.color}" + }, + secondary: { + background: "{surface.100}", + color: "{surface.600}" + }, + success: { + background: "{green.500}", + color: "{surface.0}" + }, + info: { + background: "{sky.500}", + color: "{surface.0}" + }, + warn: { + background: "{orange.500}", + color: "{surface.0}" + }, + danger: { + background: "{red.500}", + color: "{surface.0}" + }, + contrast: { + background: "{surface.950}", + color: "{surface.0}" + } + }, + dark: { + primary: { + background: "{primary.color}", + color: "{primary.contrast.color}" + }, + secondary: { + background: "{surface.800}", + color: "{surface.300}" + }, + success: { + background: "{green.400}", + color: "{green.950}" + }, + info: { + background: "{sky.400}", + color: "{sky.950}" + }, + warn: { + background: "{orange.400}", + color: "{orange.950}" + }, + danger: { + background: "{red.400}", + color: "{red.950}" + }, + contrast: { + background: "{surface.0}", + color: "{surface.950}" + } + } + } +}; +var index$1j = { + root: { + borderRadius: "{content.border.radius}" + } +}; +var index$1i = { + root: { + padding: "1rem", + background: "{content.background}", + gap: "0.5rem", + transitionDuration: "{transition.duration}" + }, + item: { + color: "{text.muted.color}", + hoverColor: "{text.color}", + borderRadius: "{content.border.radius}", + gap: "{navigation.item.gap}", + icon: { + color: "{navigation.item.icon.color}", + hoverColor: "{navigation.item.icon.focus.color}" + }, + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + separator: { + color: "{navigation.item.icon.color}" + } +}; +var index$1h = { + root: { + borderRadius: "{form.field.border.radius}", + roundedBorderRadius: "2rem", + gap: "0.5rem", + paddingX: "{form.field.padding.x}", + paddingY: "{form.field.padding.y}", + iconOnlyWidth: "2.5rem", + sm: { + fontSize: "0.875rem", + paddingX: "0.625rem", + paddingY: "0.375rem" + }, + lg: { + fontSize: "1.125rem", + paddingX: "0.875rem", + paddingY: "0.625rem" + }, + label: { + fontWeight: "500" + }, + raisedShadow: "0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + offset: "{focus.ring.offset}" + }, + badgeSize: "1rem", + transitionDuration: "{form.field.transition.duration}" + }, + colorScheme: { + light: { + root: { + primary: { + background: "{primary.color}", + hoverBackground: "{primary.hover.color}", + activeBackground: "{primary.active.color}", + borderColor: "{primary.color}", + hoverBorderColor: "{primary.hover.color}", + activeBorderColor: "{primary.active.color}", + color: "{primary.contrast.color}", + hoverColor: "{primary.contrast.color}", + activeColor: "{primary.contrast.color}", + focusRing: { + color: "{primary.color}", + shadow: "none" + } + }, + secondary: { + background: "{surface.100}", + hoverBackground: "{surface.200}", + activeBackground: "{surface.300}", + borderColor: "{surface.100}", + hoverBorderColor: "{surface.200}", + activeBorderColor: "{surface.300}", + color: "{surface.600}", + hoverColor: "{surface.700}", + activeColor: "{surface.800}", + focusRing: { + color: "{surface.600}", + shadow: "none" + } + }, + info: { + background: "{sky.500}", + hoverBackground: "{sky.600}", + activeBackground: "{sky.700}", + borderColor: "{sky.500}", + hoverBorderColor: "{sky.600}", + activeBorderColor: "{sky.700}", + color: "#ffffff", + hoverColor: "#ffffff", + activeColor: "#ffffff", + focusRing: { + color: "{sky.500}", + shadow: "none" + } + }, + success: { + background: "{green.500}", + hoverBackground: "{green.600}", + activeBackground: "{green.700}", + borderColor: "{green.500}", + hoverBorderColor: "{green.600}", + activeBorderColor: "{green.700}", + color: "#ffffff", + hoverColor: "#ffffff", + activeColor: "#ffffff", + focusRing: { + color: "{green.500}", + shadow: "none" + } + }, + warn: { + background: "{orange.500}", + hoverBackground: "{orange.600}", + activeBackground: "{orange.700}", + borderColor: "{orange.500}", + hoverBorderColor: "{orange.600}", + activeBorderColor: "{orange.700}", + color: "#ffffff", + hoverColor: "#ffffff", + activeColor: "#ffffff", + focusRing: { + color: "{orange.500}", + shadow: "none" + } + }, + help: { + background: "{purple.500}", + hoverBackground: "{purple.600}", + activeBackground: "{purple.700}", + borderColor: "{purple.500}", + hoverBorderColor: "{purple.600}", + activeBorderColor: "{purple.700}", + color: "#ffffff", + hoverColor: "#ffffff", + activeColor: "#ffffff", + focusRing: { + color: "{purple.500}", + shadow: "none" + } + }, + danger: { + background: "{red.500}", + hoverBackground: "{red.600}", + activeBackground: "{red.700}", + borderColor: "{red.500}", + hoverBorderColor: "{red.600}", + activeBorderColor: "{red.700}", + color: "#ffffff", + hoverColor: "#ffffff", + activeColor: "#ffffff", + focusRing: { + color: "{red.500}", + shadow: "none" + } + }, + contrast: { + background: "{surface.950}", + hoverBackground: "{surface.900}", + activeBackground: "{surface.800}", + borderColor: "{surface.950}", + hoverBorderColor: "{surface.900}", + activeBorderColor: "{surface.800}", + color: "{surface.0}", + hoverColor: "{surface.0}", + activeColor: "{surface.0}", + focusRing: { + color: "{surface.950}", + shadow: "none" + } + } + }, + outlined: { + primary: { + hoverBackground: "{primary.50}", + activeBackground: "{primary.100}", + borderColor: "{primary.200}", + color: "{primary.color}" + }, + secondary: { + hoverBackground: "{surface.50}", + activeBackground: "{surface.100}", + borderColor: "{surface.200}", + color: "{surface.500}" + }, + success: { + hoverBackground: "{green.50}", + activeBackground: "{green.100}", + borderColor: "{green.200}", + color: "{green.500}" + }, + info: { + hoverBackground: "{sky.50}", + activeBackground: "{sky.100}", + borderColor: "{sky.200}", + color: "{sky.500}" + }, + warn: { + hoverBackground: "{orange.50}", + activeBackground: "{orange.100}", + borderColor: "{orange.200}", + color: "{orange.500}" + }, + help: { + hoverBackground: "{purple.50}", + activeBackground: "{purple.100}", + borderColor: "{purple.200}", + color: "{purple.500}" + }, + danger: { + hoverBackground: "{red.50}", + activeBackground: "{red.100}", + borderColor: "{red.200}", + color: "{red.500}" + }, + contrast: { + hoverBackground: "{surface.50}", + activeBackground: "{surface.100}", + borderColor: "{surface.700}", + color: "{surface.950}" + }, + plain: { + hoverBackground: "{surface.50}", + activeBackground: "{surface.100}", + borderColor: "{surface.200}", + color: "{surface.700}" + } + }, + text: { + primary: { + hoverBackground: "{primary.50}", + activeBackground: "{primary.100}", + color: "{primary.color}" + }, + secondary: { + hoverBackground: "{surface.50}", + activeBackground: "{surface.100}", + color: "{surface.500}" + }, + success: { + hoverBackground: "{green.50}", + activeBackground: "{green.100}", + color: "{green.500}" + }, + info: { + hoverBackground: "{sky.50}", + activeBackground: "{sky.100}", + color: "{sky.500}" + }, + warn: { + hoverBackground: "{orange.50}", + activeBackground: "{orange.100}", + color: "{orange.500}" + }, + help: { + hoverBackground: "{purple.50}", + activeBackground: "{purple.100}", + color: "{purple.500}" + }, + danger: { + hoverBackground: "{red.50}", + activeBackground: "{red.100}", + color: "{red.500}" + }, + plain: { + hoverBackground: "{surface.50}", + activeBackground: "{surface.100}", + color: "{surface.700}" + } + }, + link: { + color: "{primary.color}", + hoverColor: "{primary.color}", + activeColor: "{primary.color}" + } + }, + dark: { + root: { + primary: { + background: "{primary.color}", + hoverBackground: "{primary.hover.color}", + activeBackground: "{primary.active.color}", + borderColor: "{primary.color}", + hoverBorderColor: "{primary.hover.color}", + activeBorderColor: "{primary.active.color}", + color: "{primary.contrast.color}", + hoverColor: "{primary.contrast.color}", + activeColor: "{primary.contrast.color}", + focusRing: { + color: "{primary.color}", + shadow: "none" + } + }, + secondary: { + background: "{surface.800}", + hoverBackground: "{surface.700}", + activeBackground: "{surface.600}", + borderColor: "{surface.800}", + hoverBorderColor: "{surface.700}", + activeBorderColor: "{surface.600}", + color: "{surface.300}", + hoverColor: "{surface.200}", + activeColor: "{surface.100}", + focusRing: { + color: "{surface.300}", + shadow: "none" + } + }, + info: { + background: "{sky.400}", + hoverBackground: "{sky.300}", + activeBackground: "{sky.200}", + borderColor: "{sky.400}", + hoverBorderColor: "{sky.300}", + activeBorderColor: "{sky.200}", + color: "{sky.950}", + hoverColor: "{sky.950}", + activeColor: "{sky.950}", + focusRing: { + color: "{sky.400}", + shadow: "none" + } + }, + success: { + background: "{green.400}", + hoverBackground: "{green.300}", + activeBackground: "{green.200}", + borderColor: "{green.400}", + hoverBorderColor: "{green.300}", + activeBorderColor: "{green.200}", + color: "{green.950}", + hoverColor: "{green.950}", + activeColor: "{green.950}", + focusRing: { + color: "{green.400}", + shadow: "none" + } + }, + warn: { + background: "{orange.400}", + hoverBackground: "{orange.300}", + activeBackground: "{orange.200}", + borderColor: "{orange.400}", + hoverBorderColor: "{orange.300}", + activeBorderColor: "{orange.200}", + color: "{orange.950}", + hoverColor: "{orange.950}", + activeColor: "{orange.950}", + focusRing: { + color: "{orange.400}", + shadow: "none" + } + }, + help: { + background: "{purple.400}", + hoverBackground: "{purple.300}", + activeBackground: "{purple.200}", + borderColor: "{purple.400}", + hoverBorderColor: "{purple.300}", + activeBorderColor: "{purple.200}", + color: "{purple.950}", + hoverColor: "{purple.950}", + activeColor: "{purple.950}", + focusRing: { + color: "{purple.400}", + shadow: "none" + } + }, + danger: { + background: "{red.400}", + hoverBackground: "{red.300}", + activeBackground: "{red.200}", + borderColor: "{red.400}", + hoverBorderColor: "{red.300}", + activeBorderColor: "{red.200}", + color: "{red.950}", + hoverColor: "{red.950}", + activeColor: "{red.950}", + focusRing: { + color: "{red.400}", + shadow: "none" + } + }, + contrast: { + background: "{surface.0}", + hoverBackground: "{surface.100}", + activeBackground: "{surface.200}", + borderColor: "{surface.0}", + hoverBorderColor: "{surface.100}", + activeBorderColor: "{surface.200}", + color: "{surface.950}", + hoverColor: "{surface.950}", + activeColor: "{surface.950}", + focusRing: { + color: "{surface.0}", + shadow: "none" + } + } + }, + outlined: { + primary: { + hoverBackground: "color-mix(in srgb, {primary.color}, transparent 96%)", + activeBackground: "color-mix(in srgb, {primary.color}, transparent 84%)", + borderColor: "{primary.700}", + color: "{primary.color}" + }, + secondary: { + hoverBackground: "rgba(255,255,255,0.04)", + activeBackground: "rgba(255,255,255,0.16)", + borderColor: "{surface.700}", + color: "{surface.400}" + }, + success: { + hoverBackground: "color-mix(in srgb, {green.400}, transparent 96%)", + activeBackground: "color-mix(in srgb, {green.400}, transparent 84%)", + borderColor: "{green.700}", + color: "{green.400}" + }, + info: { + hoverBackground: "color-mix(in srgb, {sky.400}, transparent 96%)", + activeBackground: "color-mix(in srgb, {sky.400}, transparent 84%)", + borderColor: "{sky.700}", + color: "{sky.400}" + }, + warn: { + hoverBackground: "color-mix(in srgb, {orange.400}, transparent 96%)", + activeBackground: "color-mix(in srgb, {orange.400}, transparent 84%)", + borderColor: "{orange.700}", + color: "{orange.400}" + }, + help: { + hoverBackground: "color-mix(in srgb, {purple.400}, transparent 96%)", + activeBackground: "color-mix(in srgb, {purple.400}, transparent 84%)", + borderColor: "{purple.700}", + color: "{purple.400}" + }, + danger: { + hoverBackground: "color-mix(in srgb, {red.400}, transparent 96%)", + activeBackground: "color-mix(in srgb, {red.400}, transparent 84%)", + borderColor: "{red.700}", + color: "{red.400}" + }, + contrast: { + hoverBackground: "{surface.800}", + activeBackground: "{surface.700}", + borderColor: "{surface.500}", + color: "{surface.0}" + }, + plain: { + hoverBackground: "{surface.800}", + activeBackground: "{surface.700}", + borderColor: "{surface.600}", + color: "{surface.0}" + } + }, + text: { + primary: { + hoverBackground: "color-mix(in srgb, {primary.color}, transparent 96%)", + activeBackground: "color-mix(in srgb, {primary.color}, transparent 84%)", + color: "{primary.color}" + }, + secondary: { + hoverBackground: "{surface.800}", + activeBackground: "{surface.700}", + color: "{surface.400}" + }, + success: { + hoverBackground: "color-mix(in srgb, {green.400}, transparent 96%)", + activeBackground: "color-mix(in srgb, {green.400}, transparent 84%)", + color: "{green.400}" + }, + info: { + hoverBackground: "color-mix(in srgb, {sky.400}, transparent 96%)", + activeBackground: "color-mix(in srgb, {sky.400}, transparent 84%)", + color: "{sky.400}" + }, + warn: { + hoverBackground: "color-mix(in srgb, {orange.400}, transparent 96%)", + activeBackground: "color-mix(in srgb, {orange.400}, transparent 84%)", + color: "{orange.400}" + }, + help: { + hoverBackground: "color-mix(in srgb, {purple.400}, transparent 96%)", + activeBackground: "color-mix(in srgb, {purple.400}, transparent 84%)", + color: "{purple.400}" + }, + danger: { + hoverBackground: "color-mix(in srgb, {red.400}, transparent 96%)", + activeBackground: "color-mix(in srgb, {red.400}, transparent 84%)", + color: "{red.400}" + }, + plain: { + hoverBackground: "{surface.800}", + activeBackground: "{surface.700}", + color: "{surface.0}" + } + }, + link: { + color: "{primary.color}", + hoverColor: "{primary.color}", + activeColor: "{primary.color}" + } + } + } +}; +var index$1g = { + root: { + background: "{content.background}", + borderRadius: "{border.radius.xl}", + color: "{content.color}", + shadow: "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)" + }, + body: { + padding: "1.25rem", + gap: "0.5rem" + }, + caption: { + gap: "0.5rem" + }, + title: { + fontSize: "1.25rem", + fontWeight: "500" + }, + subtitle: { + color: "{text.muted.color}" + } +}; +var index$1f = { + root: { + transitionDuration: "{transition.duration}" + }, + content: { + gap: "0.25rem" + }, + indicatorList: { + padding: "1rem", + gap: "0.5rem" + }, + indicator: { + width: "2rem", + height: "0.5rem", + borderRadius: "{content.border.radius}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + colorScheme: { + light: { + indicator: { + background: "{surface.200}", + hoverBackground: "{surface.300}", + activeBackground: "{primary.color}" + } + }, + dark: { + indicator: { + background: "{surface.700}", + hoverBackground: "{surface.600}", + activeBackground: "{primary.color}" + } + } + } +}; +var index$1e = { + root: { + background: "{form.field.background}", + disabledBackground: "{form.field.disabled.background}", + filledBackground: "{form.field.filled.background}", + filledFocusBackground: "{form.field.filled.focus.background}", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.hover.border.color}", + focusBorderColor: "{form.field.focus.border.color}", + invalidBorderColor: "{form.field.invalid.border.color}", + color: "{form.field.color}", + disabledColor: "{form.field.disabled.color}", + placeholderColor: "{form.field.placeholder.color}", + shadow: "{form.field.shadow}", + paddingX: "{form.field.padding.x}", + paddingY: "{form.field.padding.y}", + borderRadius: "{form.field.border.radius}", + focusRing: { + width: "{form.field.focus.ring.width}", + style: "{form.field.focus.ring.style}", + color: "{form.field.focus.ring.color}", + offset: "{form.field.focus.ring.offset}", + shadow: "{form.field.focus.ring.shadow}" + }, + transitionDuration: "{form.field.transition.duration}" + }, + dropdown: { + width: "2.5rem", + color: "{form.field.icon.color}" + }, + overlay: { + background: "{overlay.select.background}", + borderColor: "{overlay.select.border.color}", + borderRadius: "{overlay.select.border.radius}", + color: "{overlay.select.color}", + shadow: "{overlay.select.shadow}" + }, + list: { + padding: "{list.padding}", + gap: "{list.gap}" + }, + option: { + focusBackground: "{list.option.focus.background}", + selectedBackground: "{list.option.selected.background}", + selectedFocusBackground: "{list.option.selected.focus.background}", + color: "{list.option.color}", + focusColor: "{list.option.focus.color}", + selectedColor: "{list.option.selected.color}", + selectedFocusColor: "{list.option.selected.focus.color}", + padding: "{list.option.padding}", + borderRadius: "{list.option.border.radius}", + icon: { + color: "{list.option.icon.color}", + focusColor: "{list.option.icon.focus.color}", + size: "0.875rem" + } + } +}; +var index$1d = { + root: { + borderRadius: "{border.radius.sm}", + width: "1.25rem", + height: "1.25rem", + background: "{form.field.background}", + checkedBackground: "{primary.color}", + checkedHoverBackground: "{primary.hover.color}", + disabledBackground: "{form.field.disabled.background}", + filledBackground: "{form.field.filled.background}", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.hover.border.color}", + focusBorderColor: "{form.field.border.color}", + checkedBorderColor: "{primary.color}", + checkedHoverBorderColor: "{primary.hover.color}", + checkedFocusBorderColor: "{primary.color}", + checkedDisabledBorderColor: "{form.field.border.color}", + invalidBorderColor: "{form.field.invalid.border.color}", + shadow: "{form.field.shadow}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + }, + transitionDuration: "{form.field.transition.duration}" + }, + icon: { + size: "0.875rem", + color: "{form.field.color}", + checkedColor: "{primary.contrast.color}", + checkedHoverColor: "{primary.contrast.color}", + disabledColor: "{form.field.disabled.color}" + } +}; +var index$1c = { + root: { + borderRadius: "16px", + paddingX: "0.75rem", + paddingY: "0.5rem", + gap: "0.5rem", + transitionDuration: "{transition.duration}" + }, + image: { + width: "2rem", + height: "2rem" + }, + icon: { + size: "1rem" + }, + removeIcon: { + size: "1rem", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{form.field.focus.ring.shadow}" + } + }, + colorScheme: { + light: { + root: { + background: "{surface.100}", + color: "{surface.800}" + }, + icon: { + color: "{surface.800}" + }, + removeIcon: { + color: "{surface.800}" + } + }, + dark: { + root: { + background: "{surface.800}", + color: "{surface.0}" + }, + icon: { + color: "{surface.0}" + }, + removeIcon: { + color: "{surface.0}" + } + } + } +}; +var index$1b = { + root: { + transitionDuration: "{transition.duration}" + }, + preview: { + width: "1.5rem", + height: "1.5rem", + borderRadius: "{form.field.border.radius}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + panel: { + shadow: "{overlay.popover.shadow}", + borderRadius: "{overlay.popover.borderRadius}" + }, + colorScheme: { + light: { + panel: { + background: "{surface.800}", + borderColor: "{surface.900}" + }, + handle: { + color: "{surface.0}" + } + }, + dark: { + panel: { + background: "{surface.900}", + borderColor: "{surface.700}" + }, + handle: { + color: "{surface.0}" + } + } + } +}; +var index$1a = { + icon: { + size: "2rem", + color: "{overlay.modal.color}" + }, + content: { + gap: "1rem" + } +}; +var index$19 = { + root: { + background: "{overlay.popover.background}", + borderColor: "{overlay.popover.border.color}", + color: "{overlay.popover.color}", + borderRadius: "{overlay.popover.border.radius}", + shadow: "{overlay.popover.shadow}", + gutter: "10px", + arrowOffset: "1.25rem" + }, + content: { + padding: "{overlay.popover.padding}", + gap: "1rem" + }, + icon: { + size: "1.5rem", + color: "{overlay.popover.color}" + }, + footer: { + gap: "0.5rem", + padding: "0 {overlay.popover.padding} {overlay.popover.padding} {overlay.popover.padding}" + } +}; +var index$18 = { + root: { + background: "{content.background}", + borderColor: "{content.border.color}", + color: "{content.color}", + borderRadius: "{content.border.radius}", + shadow: "{overlay.navigation.shadow}", + transitionDuration: "{transition.duration}" + }, + list: { + padding: "{navigation.list.padding}", + gap: "{navigation.list.gap}" + }, + item: { + focusBackground: "{navigation.item.focus.background}", + activeBackground: "{navigation.item.active.background}", + color: "{navigation.item.color}", + focusColor: "{navigation.item.focus.color}", + activeColor: "{navigation.item.active.color}", + padding: "{navigation.item.padding}", + borderRadius: "{navigation.item.border.radius}", + gap: "{navigation.item.gap}", + icon: { + color: "{navigation.item.icon.color}", + focusColor: "{navigation.item.icon.focus.color}", + activeColor: "{navigation.item.icon.active.color}" + } + }, + submenuIcon: { + size: "{navigation.submenu.icon.size}", + color: "{navigation.submenu.icon.color}", + focusColor: "{navigation.submenu.icon.focus.color}", + activeColor: "{navigation.submenu.icon.active.color}" + }, + separator: { + borderColor: "{content.border.color}" + } +}; +var index$17 = { + root: { + transitionDuration: "{transition.duration}" + }, + header: { + background: "{content.background}", + borderColor: "{datatable.border.color}", + color: "{content.color}", + borderWidth: "0 0 1px 0", + padding: "0.75rem 1rem" + }, + headerCell: { + background: "{content.background}", + hoverBackground: "{content.hover.background}", + selectedBackground: "{highlight.background}", + borderColor: "{datatable.border.color}", + color: "{content.color}", + hoverColor: "{content.hover.color}", + selectedColor: "{highlight.color}", + gap: "0.5rem", + padding: "0.75rem 1rem", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "-1px", + shadow: "{focus.ring.shadow}" + } + }, + columnTitle: { + fontWeight: "600" + }, + row: { + background: "{content.background}", + hoverBackground: "{content.hover.background}", + selectedBackground: "{highlight.background}", + color: "{content.color}", + hoverColor: "{content.hover.color}", + selectedColor: "{highlight.color}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "-1px", + shadow: "{focus.ring.shadow}" + } + }, + bodyCell: { + borderColor: "{datatable.border.color}", + padding: "0.75rem 1rem" + }, + footerCell: { + background: "{content.background}", + borderColor: "{datatable.border.color}", + color: "{content.color}", + padding: "0.75rem 1rem" + }, + columnFooter: { + fontWeight: "600" + }, + footer: { + background: "{content.background}", + borderColor: "{datatable.border.color}", + color: "{content.color}", + borderWidth: "0 0 1px 0", + padding: "0.75rem 1rem" + }, + dropPointColor: "{primary.color}", + columnResizerWidth: "0.5rem", + resizeIndicator: { + width: "1px", + color: "{primary.color}" + }, + sortIcon: { + color: "{text.muted.color}", + hoverColor: "{text.hover.muted.color}" + }, + loadingIcon: { + size: "2rem" + }, + rowToggleButton: { + hoverBackground: "{content.hover.background}", + selectedHoverBackground: "{content.background}", + color: "{text.muted.color}", + hoverColor: "{text.color}", + selectedHoverColor: "{primary.color}", + size: "1.75rem", + borderRadius: "50%", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + filter: { + inlineGap: "0.5rem", + overlaySelect: { + background: "{overlay.select.background}", + borderColor: "{overlay.select.border.color}", + borderRadius: "{overlay.select.border.radius}", + color: "{overlay.select.color}", + shadow: "{overlay.select.shadow}" + }, + overlayPopover: { + background: "{overlay.popover.background}", + borderColor: "{overlay.popover.border.color}", + borderRadius: "{overlay.popover.border.radius}", + color: "{overlay.popover.color}", + shadow: "{overlay.popover.shadow}", + padding: "{overlay.popover.padding}", + gap: "0.5rem" + }, + rule: { + borderColor: "{content.border.color}" + }, + constraintList: { + padding: "{list.padding}", + gap: "{list.gap}" + }, + constraint: { + focusBackground: "{list.option.focus.background}", + selectedBackground: "{list.option.selected.background}", + selectedFocusBackground: "{list.option.selected.focus.background}", + color: "{list.option.color}", + focusColor: "{list.option.focus.color}", + selectedColor: "{list.option.selected.color}", + selectedFocusColor: "{list.option.selected.focus.color}", + separator: { + borderColor: "{content.border.color}" + }, + padding: "{list.option.padding}", + borderRadius: "{list.option.border.radius}" + } + }, + paginatorTop: { + borderColor: "{datatable.border.color}", + borderWidth: "0 0 1px 0" + }, + paginatorBottom: { + borderColor: "{datatable.border.color}", + borderWidth: "0 0 1px 0" + }, + colorScheme: { + light: { + root: { + borderColor: "{content.border.color}" + }, + row: { + stripedBackground: "{surface.50}" + }, + bodyCell: { + selectedBorderColor: "{primary.100}" + } + }, + dark: { + root: { + borderColor: "{surface.800}" + }, + row: { + stripedBackground: "{surface.950}" + }, + bodyCell: { + selectedBorderColor: "{primary.900}" + } + } + } +}; +var index$16 = { + root: { + borderColor: "transparent", + borderWidth: "0", + borderRadius: "0", + padding: "0" + }, + header: { + background: "{content.background}", + color: "{content.color}", + borderColor: "{content.border.color}", + borderWidth: "0 0 1px 0", + padding: "0.75rem 1rem", + borderRadius: "0" + }, + content: { + background: "{content.background}", + color: "{content.color}", + borderColor: "transparent", + borderWidth: "0", + padding: "0", + borderRadius: "0" + }, + footer: { + background: "{content.background}", + color: "{content.color}", + borderColor: "{content.border.color}", + borderWidth: "1px 0 0 0", + padding: "0.75rem 1rem", + borderRadius: "0" + }, + paginatorTop: { + borderColor: "{content.border.color}", + borderWidth: "0 0 1px 0" + }, + paginatorBottom: { + borderColor: "{content.border.color}", + borderWidth: "1px 0 0 0" + } +}; +var index$15 = { + root: { + transitionDuration: "{transition.duration}" + }, + panel: { + background: "{content.background}", + borderColor: "{content.border.color}", + color: "{content.color}", + borderRadius: "{content.border.radius}", + shadow: "{overlay.popover.shadow}", + padding: "{overlay.popover.padding}" + }, + header: { + background: "{content.background}", + borderColor: "{content.border.color}", + color: "{content.color}", + padding: "0 0 0.5rem 0", + fontWeight: "500", + gap: "0.5rem" + }, + title: { + gap: "0.5rem", + fontWeight: "500" + }, + dropdown: { + width: "2.5rem", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.border.color}", + activeBorderColor: "{form.field.border.color}", + borderRadius: "{form.field.border.radius}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + inputIcon: { + color: "{form.field.icon.color}" + }, + selectMonth: { + hoverBackground: "{content.hover.background}", + color: "{content.color}", + hoverColor: "{content.hover.color}", + padding: "0.25rem 0.5rem", + borderRadius: "{content.border.radius}" + }, + selectYear: { + hoverBackground: "{content.hover.background}", + color: "{content.color}", + hoverColor: "{content.hover.color}", + padding: "0.25rem 0.5rem", + borderRadius: "{content.border.radius}" + }, + group: { + borderColor: "{content.border.color}", + gap: "{overlay.popover.padding}" + }, + dayView: { + margin: "0.5rem 0 0 0" + }, + weekDay: { + padding: "0.25rem", + fontWeight: "500", + color: "{content.color}" + }, + date: { + hoverBackground: "{content.hover.background}", + selectedBackground: "{primary.color}", + rangeSelectedBackground: "{highlight.background}", + color: "{content.color}", + hoverColor: "{content.hover.color}", + selectedColor: "{primary.contrast.color}", + rangeSelectedColor: "{highlight.color}", + width: "2rem", + height: "2rem", + borderRadius: "50%", + padding: "0.25rem", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + monthView: { + margin: "0.5rem 0 0 0" + }, + month: { + borderRadius: "{content.border.radius}" + }, + yearView: { + margin: "0.5rem 0 0 0" + }, + year: { + borderRadius: "{content.border.radius}" + }, + buttonbar: { + padding: "0.5rem 0 0 0", + borderColor: "{content.border.color}" + }, + timePicker: { + padding: "0.5rem 0 0 0", + borderColor: "{content.border.color}", + gap: "0.5rem", + buttonGap: "0.25rem" + }, + colorScheme: { + light: { + dropdown: { + background: "{surface.100}", + hoverBackground: "{surface.200}", + activeBackground: "{surface.300}", + color: "{surface.600}", + hoverColor: "{surface.700}", + activeColor: "{surface.800}" + }, + today: { + background: "{surface.200}", + color: "{surface.900}" + } + }, + dark: { + dropdown: { + background: "{surface.800}", + hoverBackground: "{surface.700}", + activeBackground: "{surface.600}", + color: "{surface.300}", + hoverColor: "{surface.200}", + activeColor: "{surface.100}" + }, + today: { + background: "{surface.700}", + color: "{surface.0}" + } + } + } +}; +var index$14 = { + root: { + background: "{overlay.modal.background}", + borderColor: "{overlay.modal.border.color}", + color: "{overlay.modal.color}", + borderRadius: "{overlay.modal.border.radius}", + shadow: "{overlay.modal.shadow}" + }, + header: { + padding: "{overlay.modal.padding}", + gap: "0.5rem" + }, + title: { + fontSize: "1.25rem", + fontWeight: "600" + }, + content: { + padding: "0 {overlay.modal.padding} {overlay.modal.padding} {overlay.modal.padding}" + }, + footer: { + padding: "0 {overlay.modal.padding} {overlay.modal.padding} {overlay.modal.padding}", + gap: "0.5rem" + } +}; +var index$13 = { + root: { + borderColor: "{content.border.color}" + }, + content: { + background: "{content.background}", + color: "{text.color}" + }, + horizontal: { + margin: "1rem 0", + padding: "0 1rem", + content: { + padding: "0 0.5rem" + } + }, + vertical: { + margin: "0 1rem", + padding: "0.5rem 0", + content: { + padding: "0.5rem 0" + } + } +}; +var index$12 = { + root: { + background: "rgba(255, 255, 255, 0.1)", + borderColor: "rgba(255, 255, 255, 0.2)", + padding: "0.5rem", + borderRadius: "{border.radius.xl}" + }, + item: { + borderRadius: "{content.border.radius}", + padding: "0.5rem", + size: "3rem", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + } +}; +var index$11 = { + root: { + background: "{overlay.modal.background}", + borderColor: "{overlay.modal.border.color}", + color: "{overlay.modal.color}", + borderRadius: "{overlay.modal.border.radius}", + shadow: "{overlay.modal.shadow}" + }, + header: { + padding: "{overlay.modal.padding}" + }, + title: { + fontSize: "1.5rem", + fontWeight: "600" + }, + content: { + padding: "0 {overlay.modal.padding} {overlay.modal.padding} {overlay.modal.padding}" + } +}; +var index$10 = { + toolbar: { + background: "{content.background}", + borderColor: "{content.border.color}", + borderRadius: "{content.border.radius}" + }, + toolbarItem: { + color: "{text.muted.color}", + hoverColor: "{text.color}", + activeColor: "{primary.color}" + }, + overlay: { + background: "{overlay.select.background}", + borderColor: "{overlay.select.border.color}", + borderRadius: "{overlay.select.border.radius}", + color: "{overlay.select.color}", + shadow: "{overlay.select.shadow}", + padding: "{list.padding}" + }, + overlayOption: { + focusBackground: "{list.option.focus.background}", + color: "{list.option.color}", + focusColor: "{list.option.focus.color}", + padding: "{list.option.padding}", + borderRadius: "{list.option.border.radius}" + }, + content: { + background: "{content.background}", + borderColor: "{content.border.color}", + color: "{content.color}", + borderRadius: "{content.border.radius}" + } +}; +var index$$ = { + root: { + background: "{content.background}", + borderColor: "{content.border.color}", + borderRadius: "{content.border.radius}", + color: "{content.color}", + padding: "0 1.125rem 1.125rem 1.125rem", + transitionDuration: "{transition.duration}" + }, + legend: { + background: "{content.background}", + hoverBackground: "{content.hover.background}", + color: "{content.color}", + hoverColor: "{content.hover.color}", + borderRadius: "{content.border.radius}", + borderWidth: "1px", + borderColor: "transparent", + padding: "0.5rem 0.75rem", + gap: "0.5rem", + fontWeight: "600", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + toggleIcon: { + color: "{text.muted.color}", + hoverColor: "{text.hover.muted.color}" + }, + content: { + padding: "0" + } +}; +var index$_ = { + root: { + background: "{content.background}", + borderColor: "{content.border.color}", + color: "{content.color}", + borderRadius: "{content.border.radius}", + transitionDuration: "{transition.duration}" + }, + header: { + background: "transparent", + color: "{text.color}", + padding: "1.125rem", + borderWidth: "0", + borderRadius: "0", + gap: "0.5rem" + }, + content: { + highlightBorderColor: "{primary.color}", + padding: "0 1.125rem 1.125rem 1.125rem" + }, + file: { + padding: "1rem", + gap: "1rem", + borderColor: "{content.border.color}", + info: { + gap: "0.5rem" + } + }, + progressbar: { + height: "0.25rem" + }, + basic: { + gap: "0.5rem" + } +}; +var index$Z = { + root: { + color: "{form.field.float.label.color}", + focusColor: "{form.field.float.label.focus.color}", + invalidColor: "{form.field.float.label.invalid.color}", + transitionDuration: "0.2s" + } +}; +var index$Y = { + root: { + borderWidth: "1px", + borderColor: "{content.border.color}", + borderRadius: "{content.border.radius}", + transitionDuration: "{transition.duration}" + }, + navButton: { + background: "rgba(255, 255, 255, 0.1)", + hoverBackground: "rgba(255, 255, 255, 0.2)", + color: "{surface.100}", + hoverColor: "{surface.0}", + size: "3rem", + gutter: "0.5rem", + prev: { + borderRadius: "50%" + }, + next: { + borderRadius: "50%" + }, + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + navIcon: { + size: "1.5rem" + }, + thumbnailsContent: { + background: "{content.background}", + padding: "1rem 0.25rem" + }, + thumbnailNavButton: { + size: "2rem", + borderRadius: "{content.border.radius}", + gutter: "0.5rem", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + thumbnailNavButtonIcon: { + size: "1rem" + }, + caption: { + background: "rgba(0, 0, 0, 0.5)", + color: "{surface.100}", + padding: "1rem" + }, + indicatorList: { + gap: "0.5rem", + padding: "1rem" + }, + indicatorButton: { + width: "1rem", + height: "1rem", + activeBackground: "{primary.color}", + borderRadius: "50%", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + insetIndicatorList: { + background: "rgba(0, 0, 0, 0.5)" + }, + insetIndicatorButton: { + background: "rgba(255, 255, 255, 0.4)", + hoverBackground: "rgba(255, 255, 255, 0.6)", + activeBackground: "rgba(255, 255, 255, 0.9)" + }, + mask: { + background: "{mask.background}", + color: "{mask.color}" + }, + closeButton: { + size: "3rem", + gutter: "0.5rem", + background: "rgba(255, 255, 255, 0.1)", + hoverBackground: "rgba(255, 255, 255, 0.2)", + color: "{surface.50}", + hoverColor: "{surface.0}", + borderRadius: "50%", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + closeButtonIcon: { + size: "1.5rem" + }, + colorScheme: { + light: { + thumbnailNavButton: { + hoverBackground: "{surface.100}", + color: "{surface.600}", + hoverColor: "{surface.700}" + }, + indicatorButton: { + background: "{surface.200}", + hoverBackground: "{surface.300}" + } + }, + dark: { + thumbnailNavButton: { + hoverBackground: "{surface.700}", + color: "{surface.400}", + hoverColor: "{surface.0}" + }, + indicatorButton: { + background: "{surface.700}", + hoverBackground: "{surface.600}" + } + } + } +}; +var index$X = { + icon: { + color: "{form.field.icon.color}" + } +}; +var index$W = { + root: { + transitionDuration: "{transition.duration}" + }, + preview: { + icon: { + size: "1.5rem" + }, + mask: { + background: "{mask.background}", + color: "{mask.color}" + } + }, + toolbar: { + position: { + left: "auto", + right: "1rem", + top: "1rem", + bottom: "auto" + }, + blur: "8px", + background: "rgba(255,255,255,0.1)", + borderColor: "rgba(255,255,255,0.2)", + borderWidth: "1px", + borderRadius: "30px", + padding: ".5rem", + gap: "0.5rem" + }, + action: { + hoverBackground: "rgba(255,255,255,0.1)", + color: "{surface.50}", + hoverColor: "{surface.0}", + size: "3rem", + iconSize: "1.5rem", + borderRadius: "50%", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + } +}; +var index$V = { + root: { + padding: "{form.field.padding.y} {form.field.padding.x}", + borderRadius: "{content.border.radius}", + gap: "0.5rem" + }, + text: { + fontWeight: "500" + }, + icon: { + size: "1rem" + }, + colorScheme: { + light: { + info: { + background: "color-mix(in srgb, {blue.50}, transparent 5%)", + borderColor: "{blue.200}", + color: "{blue.600}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)" + }, + success: { + background: "color-mix(in srgb, {green.50}, transparent 5%)", + borderColor: "{green.200}", + color: "{green.600}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)" + }, + warn: { + background: "color-mix(in srgb,{yellow.50}, transparent 5%)", + borderColor: "{yellow.200}", + color: "{yellow.600}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)" + }, + error: { + background: "color-mix(in srgb, {red.50}, transparent 5%)", + borderColor: "{red.200}", + color: "{red.600}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)" + }, + secondary: { + background: "{surface.100}", + borderColor: "{surface.200}", + color: "{surface.600}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)" + }, + contrast: { + background: "{surface.900}", + borderColor: "{surface.950}", + color: "{surface.50}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)" + } + }, + dark: { + info: { + background: "color-mix(in srgb, {blue.500}, transparent 84%)", + borderColor: "color-mix(in srgb, {blue.700}, transparent 64%)", + color: "{blue.500}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)" + }, + success: { + background: "color-mix(in srgb, {green.500}, transparent 84%)", + borderColor: "color-mix(in srgb, {green.700}, transparent 64%)", + color: "{green.500}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)" + }, + warn: { + background: "color-mix(in srgb, {yellow.500}, transparent 84%)", + borderColor: "color-mix(in srgb, {yellow.700}, transparent 64%)", + color: "{yellow.500}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)" + }, + error: { + background: "color-mix(in srgb, {red.500}, transparent 84%)", + borderColor: "color-mix(in srgb, {red.700}, transparent 64%)", + color: "{red.500}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)" + }, + secondary: { + background: "{surface.800}", + borderColor: "{surface.700}", + color: "{surface.300}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)" + }, + contrast: { + background: "{surface.0}", + borderColor: "{surface.100}", + color: "{surface.950}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)" + } + } + } +}; +var index$U = { + root: { + padding: "{form.field.padding.y} {form.field.padding.x}", + borderRadius: "{content.border.radius}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + }, + transitionDuration: "{transition.duration}" + }, + display: { + hoverBackground: "{content.hover.background}", + hoverColor: "{content.hover.color}" + } +}; +var index$T = { + root: { + background: "{form.field.background}", + disabledBackground: "{form.field.disabled.background}", + filledBackground: "{form.field.filled.background}", + filledFocusBackground: "{form.field.filled.focus.background}", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.hover.border.color}", + focusBorderColor: "{form.field.focus.border.color}", + invalidBorderColor: "{form.field.invalid.border.color}", + color: "{form.field.color}", + disabledColor: "{form.field.disabled.color}", + placeholderColor: "{form.field.placeholder.color}", + shadow: "{form.field.shadow}", + paddingX: "{form.field.padding.x}", + paddingY: "{form.field.padding.y}", + borderRadius: "{form.field.border.radius}", + focusRing: { + width: "{form.field.focus.ring.width}", + style: "{form.field.focus.ring.style}", + color: "{form.field.focus.ring.color}", + offset: "{form.field.focus.ring.offset}", + shadow: "{form.field.focus.ring.shadow}" + }, + transitionDuration: "{form.field.transition.duration}" + }, + chip: { + borderRadius: "{border.radius.sm}" + }, + colorScheme: { + light: { + chip: { + focusBackground: "{surface.200}", + color: "{surface.800}" + } + }, + dark: { + chip: { + focusBackground: "{surface.700}", + color: "{surface.0}" + } + } + } +}; +var index$S = { + addon: { + background: "{form.field.background}", + borderColor: "{form.field.border.color}", + color: "{form.field.icon.color}", + borderRadius: "{form.field.border.radius}" + } +}; +var index$R = { + root: { + transitionDuration: "{transition.duration}" + }, + button: { + width: "2.5rem", + borderRadius: "{form.field.border.radius}", + verticalPadding: "{form.field.padding.y}" + }, + colorScheme: { + light: { + button: { + background: "transparent", + hoverBackground: "{surface.100}", + activeBackground: "{surface.200}", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.border.color}", + activeBorderColor: "{form.field.border.color}", + color: "{surface.400}", + hoverColor: "{surface.500}", + activeColor: "{surface.600}" + } + }, + dark: { + button: { + background: "transparent", + hoverBackground: "{surface.800}", + activeBackground: "{surface.700}", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.border.color}", + activeBorderColor: "{form.field.border.color}", + color: "{surface.400}", + hoverColor: "{surface.300}", + activeColor: "{surface.200}" + } + } + } +}; +var index$Q = { + root: { + background: "{form.field.background}", + disabledBackground: "{form.field.disabled.background}", + filledBackground: "{form.field.filled.background}", + filledFocusBackground: "{form.field.filled.focus.background}", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.hover.border.color}", + focusBorderColor: "{form.field.focus.border.color}", + invalidBorderColor: "{form.field.invalid.border.color}", + color: "{form.field.color}", + disabledColor: "{form.field.disabled.color}", + placeholderColor: "{form.field.placeholder.color}", + shadow: "{form.field.shadow}", + paddingX: "{form.field.padding.x}", + paddingY: "{form.field.padding.y}", + borderRadius: "{form.field.border.radius}", + focusRing: { + width: "{form.field.focus.ring.width}", + style: "{form.field.focus.ring.style}", + color: "{form.field.focus.ring.color}", + offset: "{form.field.focus.ring.offset}", + shadow: "{form.field.focus.ring.shadow}" + }, + transitionDuration: "{form.field.transition.duration}", + sm: { + fontSize: "0.875rem", + paddingX: "0.625rem", + paddingY: "0.375rem" + }, + lg: { + fontSize: "1.125rem", + paddingX: "0.875rem", + paddingY: "0.625rem" + } + } +}; +var index$P = { + root: { + transitionDuration: "{transition.duration}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + value: { + background: "{primary.color}" + }, + range: { + background: "{content.border.color}" + }, + text: { + color: "{text.muted.color}" + } +}; +var index$O = { + root: { + background: "{form.field.background}", + disabledBackground: "{form.field.disabled.background}", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.hover.border.color}", + focusBorderColor: "{form.field.focus.border.color}", + invalidBorderColor: "{form.field.invalid.border.color}", + color: "{form.field.color}", + disabledColor: "{form.field.disabled.color}", + shadow: "{form.field.shadow}", + borderRadius: "{form.field.border.radius}", + focusRing: { + width: "{form.field.focus.ring.width}", + style: "{form.field.focus.ring.style}", + color: "{form.field.focus.ring.color}", + offset: "{form.field.focus.ring.offset}", + shadow: "{form.field.focus.ring.shadow}" + }, + transitionDuration: "{form.field.transition.duration}" + }, + list: { + padding: "{list.padding}", + gap: "{list.gap}", + header: { + padding: "{list.header.padding}" + } + }, + option: { + focusBackground: "{list.option.focus.background}", + selectedBackground: "{list.option.selected.background}", + selectedFocusBackground: "{list.option.selected.focus.background}", + color: "{list.option.color}", + focusColor: "{list.option.focus.color}", + selectedColor: "{list.option.selected.color}", + selectedFocusColor: "{list.option.selected.focus.color}", + padding: "{list.option.padding}", + borderRadius: "{list.option.border.radius}" + }, + optionGroup: { + background: "{list.option.group.background}", + color: "{list.option.group.color}", + fontWeight: "{list.option.group.font.weight}", + padding: "{list.option.group.padding}" + }, + checkmark: { + color: "{list.option.color}", + gutterStart: "-0.375rem", + gutterEnd: "0.375rem" + }, + emptyMessage: { + padding: "{list.option.padding}" + }, + colorScheme: { + light: { + option: { + stripedBackground: "{surface.50}" + } + }, + dark: { + option: { + stripedBackground: "{surface.900}" + } + } + } +}; +var index$N = { + root: { + background: "{content.background}", + borderColor: "{content.border.color}", + borderRadius: "{content.border.radius}", + color: "{content.color}", + gap: "0.5rem", + verticalOrientation: { + padding: "{navigation.list.padding}", + gap: "0" + }, + horizontalOrientation: { + padding: "0.5rem 0.75rem" + }, + transitionDuration: "{transition.duration}" + }, + baseItem: { + borderRadius: "{content.border.radius}", + padding: "{navigation.item.padding}" + }, + item: { + focusBackground: "{navigation.item.focus.background}", + activeBackground: "{navigation.item.active.background}", + color: "{navigation.item.color}", + focusColor: "{navigation.item.focus.color}", + activeColor: "{navigation.item.active.color}", + padding: "{navigation.item.padding}", + borderRadius: "{navigation.item.border.radius}", + gap: "{navigation.item.gap}", + icon: { + color: "{navigation.item.icon.color}", + focusColor: "{navigation.item.icon.focus.color}", + activeColor: "{navigation.item.icon.active.color}" + } + }, + overlay: { + padding: "0", + background: "{content.background}", + borderColor: "{content.border.color}", + borderRadius: "{content.border.radius}", + color: "{content.color}", + shadow: "{overlay.navigation.shadow}", + gap: "0.5rem" + }, + submenu: { + padding: "{navigation.list.padding}", + gap: "{navigation.list.gap}" + }, + submenuLabel: { + padding: "{navigation.submenu.label.padding}", + fontWeight: "{navigation.submenu.label.font.weight}", + background: "{navigation.submenu.label.background.}", + color: "{navigation.submenu.label.color}" + }, + submenuIcon: { + size: "{navigation.submenu.icon.size}", + color: "{navigation.submenu.icon.color}", + focusColor: "{navigation.submenu.icon.focus.color}", + activeColor: "{navigation.submenu.icon.active.color}" + }, + separator: { + borderColor: "{content.border.color}" + }, + mobileButton: { + borderRadius: "50%", + size: "1.75rem", + color: "{text.muted.color}", + hoverColor: "{text.muted.hover.color}", + hoverBackground: "{content.hover.background}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + } +}; +var index$M = { + root: { + background: "{content.background}", + borderColor: "{content.border.color}", + color: "{content.color}", + borderRadius: "{content.border.radius}", + shadow: "{overlay.navigation.shadow}", + transitionDuration: "{transition.duration}" + }, + list: { + padding: "{navigation.list.padding}", + gap: "{navigation.list.gap}" + }, + item: { + focusBackground: "{navigation.item.focus.background}", + color: "{navigation.item.color}", + focusColor: "{navigation.item.focus.color}", + padding: "{navigation.item.padding}", + borderRadius: "{navigation.item.border.radius}", + gap: "{navigation.item.gap}", + icon: { + color: "{navigation.item.icon.color}", + focusColor: "{navigation.item.icon.focus.color}" + } + }, + submenuLabel: { + padding: "{navigation.submenu.label.padding}", + fontWeight: "{navigation.submenu.label.font.weight}", + background: "{navigation.submenu.label.background}", + color: "{navigation.submenu.label.color}" + }, + separator: { + borderColor: "{content.border.color}" + } +}; +var index$L = { + root: { + background: "{content.background}", + borderColor: "{content.border.color}", + borderRadius: "{content.border.radius}", + color: "{content.color}", + gap: "0.5rem", + padding: "0.5rem 0.75rem", + transitionDuration: "{transition.duration}" + }, + baseItem: { + borderRadius: "{content.border.radius}", + padding: "{navigation.item.padding}" + }, + item: { + focusBackground: "{navigation.item.focus.background}", + activeBackground: "{navigation.item.active.background}", + color: "{navigation.item.color}", + focusColor: "{navigation.item.focus.color}", + activeColor: "{navigation.item.active.color}", + padding: "{navigation.item.padding}", + borderRadius: "{navigation.item.border.radius}", + gap: "{navigation.item.gap}", + icon: { + color: "{navigation.item.icon.color}", + focusColor: "{navigation.item.icon.focus.color}", + activeColor: "{navigation.item.icon.active.color}" + } + }, + submenu: { + padding: "{navigation.list.padding}", + gap: "{navigation.list.gap}", + background: "{content.background}", + borderColor: "{content.border.color}", + borderRadius: "{content.border.radius}", + shadow: "{overlay.navigation.shadow}", + mobileIndent: "1rem" + }, + submenuIcon: { + size: "{navigation.submenu.icon.size}", + color: "{navigation.submenu.icon.color}", + focusColor: "{navigation.submenu.icon.focus.color}", + activeColor: "{navigation.submenu.icon.active.color}" + }, + separator: { + borderColor: "{content.border.color}" + }, + mobileButton: { + borderRadius: "50%", + size: "1.75rem", + color: "{text.muted.color}", + hoverColor: "{text.muted.hover.color}", + hoverBackground: "{content.hover.background}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + } +}; +var index$K = { + root: { + borderRadius: "{content.border.radius}", + borderWidth: "1px", + transitionDuration: "{transition.duration}" + }, + content: { + padding: "0.5rem 0.75rem", + gap: "0.5rem" + }, + text: { + fontSize: "1rem", + fontWeight: "500" + }, + icon: { + size: "1.125rem" + }, + closeButton: { + width: "1.75rem", + height: "1.75rem", + borderRadius: "50%", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + offset: "{focus.ring.offset}" + } + }, + closeIcon: { + size: "1rem" + }, + colorScheme: { + light: { + info: { + background: "color-mix(in srgb, {blue.50}, transparent 5%)", + borderColor: "{blue.200}", + color: "{blue.600}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)", + closeButton: { + hoverBackground: "{blue.100}", + focusRing: { + color: "{blue.600}", + shadow: "none" + } + } + }, + success: { + background: "color-mix(in srgb, {green.50}, transparent 5%)", + borderColor: "{green.200}", + color: "{green.600}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)", + closeButton: { + hoverBackground: "{green.100}", + focusRing: { + color: "{green.600}", + shadow: "none" + } + } + }, + warn: { + background: "color-mix(in srgb,{yellow.50}, transparent 5%)", + borderColor: "{yellow.200}", + color: "{yellow.600}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)", + closeButton: { + hoverBackground: "{yellow.100}", + focusRing: { + color: "{yellow.600}", + shadow: "none" + } + } + }, + error: { + background: "color-mix(in srgb, {red.50}, transparent 5%)", + borderColor: "{red.200}", + color: "{red.600}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)", + closeButton: { + hoverBackground: "{red.100}", + focusRing: { + color: "{red.600}", + shadow: "none" + } + } + }, + secondary: { + background: "{surface.100}", + borderColor: "{surface.200}", + color: "{surface.600}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)", + closeButton: { + hoverBackground: "{surface.200}", + focusRing: { + color: "{surface.600}", + shadow: "none" + } + } + }, + contrast: { + background: "{surface.900}", + borderColor: "{surface.950}", + color: "{surface.50}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)", + closeButton: { + hoverBackground: "{surface.800}", + focusRing: { + color: "{surface.50}", + shadow: "none" + } + } + } + }, + dark: { + info: { + background: "color-mix(in srgb, {blue.500}, transparent 84%)", + borderColor: "color-mix(in srgb, {blue.700}, transparent 64%)", + color: "{blue.500}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)", + closeButton: { + hoverBackground: "rgba(255, 255, 255, 0.05)", + focusRing: { + color: "{blue.500}", + shadow: "none" + } + } + }, + success: { + background: "color-mix(in srgb, {green.500}, transparent 84%)", + borderColor: "color-mix(in srgb, {green.700}, transparent 64%)", + color: "{green.500}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)", + closeButton: { + hoverBackground: "rgba(255, 255, 255, 0.05)", + focusRing: { + color: "{green.500}", + shadow: "none" + } + } + }, + warn: { + background: "color-mix(in srgb, {yellow.500}, transparent 84%)", + borderColor: "color-mix(in srgb, {yellow.700}, transparent 64%)", + color: "{yellow.500}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)", + closeButton: { + hoverBackground: "rgba(255, 255, 255, 0.05)", + focusRing: { + color: "{yellow.500}", + shadow: "none" + } + } + }, + error: { + background: "color-mix(in srgb, {red.500}, transparent 84%)", + borderColor: "color-mix(in srgb, {red.700}, transparent 64%)", + color: "{red.500}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)", + closeButton: { + hoverBackground: "rgba(255, 255, 255, 0.05)", + focusRing: { + color: "{red.500}", + shadow: "none" + } + } + }, + secondary: { + background: "{surface.800}", + borderColor: "{surface.700}", + color: "{surface.300}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)", + closeButton: { + hoverBackground: "{surface.700}", + focusRing: { + color: "{surface.300}", + shadow: "none" + } + } + }, + contrast: { + background: "{surface.0}", + borderColor: "{surface.100}", + color: "{surface.950}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)", + closeButton: { + hoverBackground: "{surface.100}", + focusRing: { + color: "{surface.950}", + shadow: "none" + } + } + } + } + } +}; +var index$J = { + root: { + borderRadius: "{content.border.radius}", + gap: "1rem" + }, + meters: { + background: "{content.border.color}", + size: "0.5rem" + }, + label: { + gap: "0.5rem" + }, + labelMarker: { + size: "0.5rem" + }, + labelIcon: { + size: "1rem" + }, + labelList: { + verticalGap: "0.5rem", + horizontalGap: "1rem" + } +}; +var index$I = { + root: { + background: "{form.field.background}", + disabledBackground: "{form.field.disabled.background}", + filledBackground: "{form.field.filled.background}", + filledFocusBackground: "{form.field.filled.focus.background}", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.hover.border.color}", + focusBorderColor: "{form.field.focus.border.color}", + invalidBorderColor: "{form.field.invalid.border.color}", + color: "{form.field.color}", + disabledColor: "{form.field.disabled.color}", + placeholderColor: "{form.field.placeholder.color}", + shadow: "{form.field.shadow}", + paddingX: "{form.field.padding.x}", + paddingY: "{form.field.padding.y}", + borderRadius: "{form.field.border.radius}", + focusRing: { + width: "{form.field.focus.ring.width}", + style: "{form.field.focus.ring.style}", + color: "{form.field.focus.ring.color}", + offset: "{form.field.focus.ring.offset}", + shadow: "{form.field.focus.ring.shadow}" + }, + transitionDuration: "{form.field.transition.duration}" + }, + dropdown: { + width: "2.5rem", + color: "{form.field.icon.color}" + }, + overlay: { + background: "{overlay.select.background}", + borderColor: "{overlay.select.border.color}", + borderRadius: "{overlay.select.border.radius}", + color: "{overlay.select.color}", + shadow: "{overlay.select.shadow}" + }, + list: { + padding: "{list.padding}", + gap: "{list.gap}", + header: { + padding: "{list.header.padding}" + } + }, + option: { + focusBackground: "{list.option.focus.background}", + selectedBackground: "{list.option.selected.background}", + selectedFocusBackground: "{list.option.selected.focus.background}", + color: "{list.option.color}", + focusColor: "{list.option.focus.color}", + selectedColor: "{list.option.selected.color}", + selectedFocusColor: "{list.option.selected.focus.color}", + padding: "{list.option.padding}", + borderRadius: "{list.option.border.radius}", + gap: "0.5rem" + }, + optionGroup: { + background: "{list.option.group.background}", + color: "{list.option.group.color}", + fontWeight: "{list.option.group.font.weight}", + padding: "{list.option.group.padding}" + }, + chip: { + borderRadius: "{border.radius.sm}" + }, + emptyMessage: { + padding: "{list.option.padding}" + } +}; +var index$H = { + root: { + gap: "1.125rem" + }, + controls: { + gap: "0.5rem" + } +}; +var index$G = { + root: { + gutter: "0.75rem", + transitionDuration: "{transition.duration}" + }, + node: { + background: "{content.background}", + hoverBackground: "{content.hover.background}", + selectedBackground: "{highlight.background}", + borderColor: "{content.border.color}", + color: "{content.color}", + selectedColor: "{highlight.color}", + hoverColor: "{content.hover.color}", + padding: "0.75rem 1rem", + toggleablePadding: "0.75rem 1rem 1.25rem 1rem", + borderRadius: "{content.border.radius}" + }, + nodeToggleButton: { + background: "{content.background}", + hoverBackground: "{content.hover.background}", + borderColor: "{content.border.color}", + color: "{text.muted.color}", + hoverColor: "{text.color}", + size: "1.5rem", + borderRadius: "50%", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + connector: { + color: "{content.border.color}", + borderRadius: "{content.border.radius}", + height: "24px" + } +}; +var index$F = { + root: { + outline: { + width: "2px", + color: "{content.background}" + } + } +}; +var index$E = { + root: { + padding: "0.5rem 1rem", + gap: "0.25rem", + borderRadius: "{content.border.radius}", + background: "{content.background}", + color: "{content.color}", + transitionDuration: "{transition.duration}" + }, + navButton: { + background: "transparent", + hoverBackground: "{content.hover.background}", + selectedBackground: "{highlight.background}", + color: "{text.muted.color}", + hoverColor: "{text.hover.muted.color}", + selectedColor: "{highlight.color}", + width: "2.5rem", + height: "2.5rem", + borderRadius: "50%", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + currentPageReport: { + color: "{text.muted.color}" + }, + jumpToPageInput: { + maxWidth: "2.5rem" + } +}; +var index$D = { + root: { + background: "{content.background}", + borderColor: "{content.border.color}", + color: "{content.color}", + borderRadius: "{content.border.radius}" + }, + header: { + background: "transparent", + color: "{text.color}", + padding: "1.125rem", + borderColor: "{content.border.color}", + borderWidth: "0", + borderRadius: "0" + }, + toggleableHeader: { + padding: "0.375rem 1.125rem" + }, + title: { + fontWeight: "600" + }, + content: { + padding: "0 1.125rem 1.125rem 1.125rem" + }, + footer: { + padding: "0 1.125rem 1.125rem 1.125rem" + } +}; +var index$C = { + root: { + gap: "0.5rem", + transitionDuration: "{transition.duration}" + }, + panel: { + background: "{content.background}", + borderColor: "{content.border.color}", + borderWidth: "1px", + color: "{content.color}", + padding: "0.25rem 0.25rem", + borderRadius: "{content.border.radius}", + first: { + borderWidth: "1px", + topBorderRadius: "{content.border.radius}" + }, + last: { + borderWidth: "1px", + bottomBorderRadius: "{content.border.radius}" + } + }, + item: { + focusBackground: "{navigation.item.focus.background}", + color: "{navigation.item.color}", + focusColor: "{navigation.item.focus.color}", + gap: "0.5rem", + padding: "{navigation.item.padding}", + borderRadius: "{content.border.radius}", + icon: { + color: "{navigation.item.icon.color}", + focusColor: "{navigation.item.icon.focus.color}" + } + }, + submenu: { + indent: "1rem" + }, + submenuIcon: { + color: "{navigation.submenu.icon.color}", + focusColor: "{navigation.submenu.icon.focus.color}" + } +}; +var index$B = { + meter: { + background: "{content.border.color}", + borderRadius: "{content.border.radius}", + height: ".75rem" + }, + icon: { + color: "{form.field.icon.color}" + }, + overlay: { + background: "{overlay.popover.background}", + borderColor: "{overlay.popover.border.color}", + borderRadius: "{overlay.popover.border.radius}", + color: "{overlay.popover.color}", + padding: "{overlay.popover.padding}", + shadow: "{overlay.popover.shadow}" + }, + content: { + gap: "0.5rem" + }, + colorScheme: { + light: { + strength: { + weakBackground: "{red.500}", + mediumBackground: "{amber.500}", + strongBackground: "{green.500}" + } + }, + dark: { + strength: { + weakBackground: "{red.400}", + mediumBackground: "{amber.400}", + strongBackground: "{green.400}" + } + } + } +}; +var index$A = { + root: { + gap: "1.125rem" + }, + controls: { + gap: "0.5rem" + } +}; +var index$z = { + root: { + background: "{overlay.popover.background}", + borderColor: "{overlay.popover.border.color}", + color: "{overlay.popover.color}", + borderRadius: "{overlay.popover.border.radius}", + shadow: "{overlay.popover.shadow}", + gutter: "10px", + arrowOffset: "1.25rem" + }, + content: { + padding: "{overlay.popover.padding}" + } +}; +var index$y = { + root: { + background: "{content.border.color}", + borderRadius: "{content.border.radius}", + height: "1.25rem" + }, + value: { + background: "{primary.color}" + }, + label: { + color: "{primary.contrast.color}", + fontSize: "0.75rem", + fontWeight: "600" + } +}; +var index$x = { + colorScheme: { + light: { + root: { + "color.1": "{red.500}", + "color.2": "{blue.500}", + "color.3": "{green.500}", + "color.4": "{yellow.500}" + } + }, + dark: { + root: { + "color.1": "{red.400}", + "color.2": "{blue.400}", + "color.3": "{green.400}", + "color.4": "{yellow.400}" + } + } + } +}; +var index$w = { + root: { + width: "1.25rem", + height: "1.25rem", + background: "{form.field.background}", + checkedBackground: "{primary.color}", + checkedHoverBackground: "{primary.hover.color}", + disabledBackground: "{form.field.disabled.background}", + filledBackground: "{form.field.filled.background}", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.hover.border.color}", + focusBorderColor: "{form.field.border.color}", + checkedBorderColor: "{primary.color}", + checkedHoverBorderColor: "{primary.hover.color}", + checkedFocusBorderColor: "{primary.color}", + checkedDisabledBorderColor: "{form.field.border.color}", + invalidBorderColor: "{form.field.invalid.border.color}", + shadow: "{form.field.shadow}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + }, + transitionDuration: "{form.field.transition.duration}" + }, + icon: { + size: "0.75rem", + checkedColor: "{primary.contrast.color}", + checkedHoverColor: "{primary.contrast.color}", + disabledColor: "{form.field.disabled.color}" + } +}; +var index$v = { + root: { + gap: "0.25rem", + transitionDuration: "{transition.duration}" + }, + icon: { + size: "1rem", + color: "{text.muted.color}", + hoverColor: "{primary.color}", + activeColor: "{primary.color}" + } +}; +var index$u = { + colorScheme: { + light: { + root: { + background: "rgba(0,0,0,0.1)" + } + }, + dark: { + root: { + background: "rgba(255,255,255,0.3)" + } + } + } +}; +var index$t = { + root: { + transitionDuration: "{transition.duration}" + }, + bar: { + size: "9px", + borderRadius: "{border.radius.sm}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + colorScheme: { + light: { + bar: { + background: "{surface.100}" + } + }, + dark: { + bar: { + background: "{surface.800}" + } + } + } +}; +var index$s = { + root: { + background: "{form.field.background}", + disabledBackground: "{form.field.disabled.background}", + filledBackground: "{form.field.filled.background}", + filledFocusBackground: "{form.field.filled.focus.background}", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.hover.border.color}", + focusBorderColor: "{form.field.focus.border.color}", + invalidBorderColor: "{form.field.invalid.border.color}", + color: "{form.field.color}", + disabledColor: "{form.field.disabled.color}", + placeholderColor: "{form.field.placeholder.color}", + shadow: "{form.field.shadow}", + paddingX: "{form.field.padding.x}", + paddingY: "{form.field.padding.y}", + borderRadius: "{form.field.border.radius}", + focusRing: { + width: "{form.field.focus.ring.width}", + style: "{form.field.focus.ring.style}", + color: "{form.field.focus.ring.color}", + offset: "{form.field.focus.ring.offset}", + shadow: "{form.field.focus.ring.shadow}" + }, + transitionDuration: "{form.field.transition.duration}" + }, + dropdown: { + width: "2.5rem", + color: "{form.field.icon.color}" + }, + overlay: { + background: "{overlay.select.background}", + borderColor: "{overlay.select.border.color}", + borderRadius: "{overlay.select.border.radius}", + color: "{overlay.select.color}", + shadow: "{overlay.select.shadow}" + }, + list: { + padding: "{list.padding}", + gap: "{list.gap}", + header: { + padding: "{list.header.padding}" + } + }, + option: { + focusBackground: "{list.option.focus.background}", + selectedBackground: "{list.option.selected.background}", + selectedFocusBackground: "{list.option.selected.focus.background}", + color: "{list.option.color}", + focusColor: "{list.option.focus.color}", + selectedColor: "{list.option.selected.color}", + selectedFocusColor: "{list.option.selected.focus.color}", + padding: "{list.option.padding}", + borderRadius: "{list.option.border.radius}" + }, + optionGroup: { + background: "{list.option.group.background}", + color: "{list.option.group.color}", + fontWeight: "{list.option.group.font.weight}", + padding: "{list.option.group.padding}" + }, + clearIcon: { + color: "{form.field.icon.color}" + }, + checkmark: { + color: "{list.option.color}", + gutterStart: "-0.375rem", + gutterEnd: "0.375rem" + }, + emptyMessage: { + padding: "{list.option.padding}" + } +}; +var index$r = { + root: { + borderRadius: "{form.field.border.radius}" + }, + colorScheme: { + light: { + root: { + invalidBorderColor: "{form.field.invalid.border.color}" + } + }, + dark: { + root: { + invalidBorderColor: "{form.field.invalid.border.color}" + } + } + } +}; +var index$q = { + root: { + borderRadius: "{content.border.radius}" + }, + colorScheme: { + light: { + root: { + background: "{surface.200}", + animationBackground: "rgba(255,255,255,0.4)" + } + }, + dark: { + root: { + background: "rgba(255, 255, 255, 0.06)", + animationBackground: "rgba(255, 255, 255, 0.04)" + } + } + } +}; +var index$p = { + root: { + transitionDuration: "{transition.duration}" + }, + track: { + background: "{content.border.color}", + borderRadius: "{content.border.radius}", + size: "3px" + }, + range: { + background: "{primary.color}" + }, + handle: { + width: "20px", + height: "20px", + borderRadius: "50%", + background: "{content.border.color}", + hoverBackground: "{content.border.color}", + content: { + borderRadius: "50%", + hoverBackground: "{content.background}", + width: "16px", + height: "16px", + shadow: "0px 0.5px 0px 0px rgba(0, 0, 0, 0.08), 0px 1px 1px 0px rgba(0, 0, 0, 0.14)" + }, + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + colorScheme: { + light: { + handle: { + contentBackground: "{surface.0}" + } + }, + dark: { + handle: { + contentBackground: "{surface.950}" + } + } + } +}; +var index$o = { + root: { + gap: "0.5rem", + transitionDuration: "{transition.duration}" + } +}; +var index$n = { + root: { + borderRadius: "{form.field.border.radius}", + roundedBorderRadius: "2rem", + raisedShadow: "0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)" + } +}; +var index$m = { + root: { + background: "{content.background}", + borderColor: "{content.border.color}", + color: "{content.color}", + transitionDuration: "{transition.duration}" + }, + gutter: { + background: "{content.border.color}" + }, + handle: { + size: "24px", + background: "transparent", + borderRadius: "{content.border.radius}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + } +}; +var index$l = { + root: { + transitionDuration: "{transition.duration}" + }, + separator: { + background: "{content.border.color}", + activeBackground: "{primary.color}", + margin: "0 0 0 1.625rem", + size: "2px" + }, + step: { + padding: "0.5rem", + gap: "1rem" + }, + stepHeader: { + padding: "0", + borderRadius: "{content.border.radius}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + }, + gap: "0.5rem" + }, + stepTitle: { + color: "{text.muted.color}", + activeColor: "{primary.color}", + fontWeight: "500" + }, + stepNumber: { + background: "{content.background}", + activeBackground: "{content.background}", + borderColor: "{content.border.color}", + activeBorderColor: "{content.border.color}", + color: "{text.muted.color}", + activeColor: "{primary.color}", + size: "2rem", + fontSize: "1.143rem", + fontWeight: "500", + borderRadius: "50%", + shadow: "0px 0.5px 0px 0px rgba(0, 0, 0, 0.06), 0px 1px 1px 0px rgba(0, 0, 0, 0.12)" + }, + steppanels: { + padding: "0.875rem 0.5rem 1.125rem 0.5rem" + }, + steppanel: { + background: "{content.background}", + color: "{content.color}", + padding: "0 0 0 1rem" + } +}; +var index$k = { + root: { + transitionDuration: "{transition.duration}" + }, + separator: { + background: "{content.border.color}" + }, + itemLink: { + borderRadius: "{content.border.radius}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + }, + gap: "0.5rem" + }, + itemLabel: { + color: "{text.muted.color}", + activeColor: "{primary.color}", + fontWeight: "500" + }, + itemNumber: { + background: "{content.background}", + activeBackground: "{content.background}", + borderColor: "{content.border.color}", + activeBorderColor: "{content.border.color}", + color: "{text.muted.color}", + activeColor: "{primary.color}", + size: "2rem", + fontSize: "1.143rem", + fontWeight: "500", + borderRadius: "50%", + shadow: "0px 0.5px 0px 0px rgba(0, 0, 0, 0.06), 0px 1px 1px 0px rgba(0, 0, 0, 0.12)" + } +}; +var index$j = { + root: { + transitionDuration: "{transition.duration}" + }, + tablist: { + borderWidth: "0 0 1px 0", + background: "{content.background}", + borderColor: "{content.border.color}" + }, + item: { + background: "transparent", + hoverBackground: "transparent", + activeBackground: "transparent", + borderWidth: "0 0 1px 0", + borderColor: "{content.border.color}", + hoverBorderColor: "{content.border.color}", + activeBorderColor: "{primary.color}", + color: "{text.muted.color}", + hoverColor: "{text.color}", + activeColor: "{primary.color}", + padding: "1rem 1.125rem", + fontWeight: "600", + margin: "0 0 -1px 0", + gap: "0.5rem", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + itemIcon: { + color: "{text.muted.color}", + hoverColor: "{text.color}", + activeColor: "{primary.color}" + }, + activeBar: { + height: "1px", + bottom: "-1px", + background: "{primary.color}" + } +}; +var index$i = { + root: { + transitionDuration: "{transition.duration}" + }, + tablist: { + borderWidth: "0 0 1px 0", + background: "{content.background}", + borderColor: "{content.border.color}" + }, + tab: { + background: "transparent", + hoverBackground: "transparent", + activeBackground: "transparent", + borderWidth: "0 0 1px 0", + borderColor: "{content.border.color}", + hoverBorderColor: "{content.border.color}", + activeBorderColor: "{primary.color}", + color: "{text.muted.color}", + hoverColor: "{text.color}", + activeColor: "{primary.color}", + padding: "1rem 1.125rem", + fontWeight: "600", + margin: "0 0 -1px 0", + gap: "0.5rem", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "-1px", + shadow: "{focus.ring.shadow}" + } + }, + tabpanel: { + background: "{content.background}", + color: "{content.color}", + padding: "0.875rem 1.125rem 1.125rem 1.125rem", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "inset {focus.ring.shadow}" + } + }, + navButton: { + background: "{content.background}", + color: "{text.muted.color}", + hoverColor: "{text.color}", + width: "2.5rem", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "-1px", + shadow: "{focus.ring.shadow}" + } + }, + activeBar: { + height: "1px", + bottom: "-1px", + background: "{primary.color}" + }, + colorScheme: { + light: { + navButton: { + shadow: "0px 0px 10px 50px rgba(255, 255, 255, 0.6)" + } + }, + dark: { + navButton: { + shadow: "0px 0px 10px 50px color-mix(in srgb, {content.background}, transparent 50%)" + } + } + } +}; +var index$h = { + root: { + transitionDuration: "{transition.duration}" + }, + tabList: { + background: "{content.background}", + borderColor: "{content.border.color}" + }, + tab: { + borderColor: "{content.border.color}", + activeBorderColor: "{primary.color}", + color: "{text.muted.color}", + hoverColor: "{text.color}", + activeColor: "{primary.color}" + }, + tabPanel: { + background: "{content.background}", + color: "{content.color}" + }, + navButton: { + background: "{content.background}", + color: "{text.muted.color}", + hoverColor: "{text.color}" + }, + colorScheme: { + light: { + navButton: { + shadow: "0px 0px 10px 50px rgba(255, 255, 255, 0.6)" + } + }, + dark: { + navButton: { + shadow: "0px 0px 10px 50px color-mix(in srgb, {content.background}, transparent 50%)" + } + } + } +}; +var index$g = { + root: { + fontSize: "0.875rem", + fontWeight: "700", + padding: "0.25rem 0.5rem", + gap: "0.25rem", + borderRadius: "{content.border.radius}", + roundedBorderRadius: "{border.radius.xl}" + }, + icon: { + size: "0.75rem" + }, + colorScheme: { + light: { + primary: { + background: "{primary.100}", + color: "{primary.700}" + }, + secondary: { + background: "{surface.100}", + color: "{surface.600}" + }, + success: { + background: "{green.100}", + color: "{green.700}" + }, + info: { + background: "{sky.100}", + color: "{sky.700}" + }, + warn: { + background: "{orange.100}", + color: "{orange.700}" + }, + danger: { + background: "{red.100}", + color: "{red.700}" + }, + contrast: { + background: "{surface.950}", + color: "{surface.0}" + } + }, + dark: { + primary: { + background: "color-mix(in srgb, {primary.500}, transparent 84%)", + color: "{primary.300}" + }, + secondary: { + background: "{surface.800}", + color: "{surface.300}" + }, + success: { + background: "color-mix(in srgb, {green.500}, transparent 84%)", + color: "{green.300}" + }, + info: { + background: "color-mix(in srgb, {sky.500}, transparent 84%)", + color: "{sky.300}" + }, + warn: { + background: "color-mix(in srgb, {orange.500}, transparent 84%)", + color: "{orange.300}" + }, + danger: { + background: "color-mix(in srgb, {red.500}, transparent 84%)", + color: "{red.300}" + }, + contrast: { + background: "{surface.0}", + color: "{surface.950}" + } + } + } +}; +var index$f = { + root: { + background: "{form.field.background}", + borderColor: "{form.field.border.color}", + color: "{form.field.color}", + height: "18rem", + padding: "{form.field.padding.y} {form.field.padding.x}", + borderRadius: "{form.field.border.radius}" + }, + prompt: { + gap: "0.25rem" + }, + commandResponse: { + margin: "2px 0" + } +}; +var index$e = { + root: { + background: "{form.field.background}", + disabledBackground: "{form.field.disabled.background}", + filledBackground: "{form.field.filled.background}", + filledFocusBackground: "{form.field.filled.focus.background}", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.hover.border.color}", + focusBorderColor: "{form.field.focus.border.color}", + invalidBorderColor: "{form.field.invalid.border.color}", + color: "{form.field.color}", + disabledColor: "{form.field.disabled.color}", + placeholderColor: "{form.field.placeholder.color}", + shadow: "{form.field.shadow}", + paddingX: "{form.field.padding.x}", + paddingY: "{form.field.padding.y}", + borderRadius: "{form.field.border.radius}", + focusRing: { + width: "{form.field.focus.ring.width}", + style: "{form.field.focus.ring.style}", + color: "{form.field.focus.ring.color}", + offset: "{form.field.focus.ring.offset}", + shadow: "{form.field.focus.ring.shadow}" + }, + transitionDuration: "{form.field.transition.duration}" + } +}; +var index$d = { + root: { + background: "{content.background}", + borderColor: "{content.border.color}", + color: "{content.color}", + borderRadius: "{content.border.radius}", + shadow: "{overlay.navigation.shadow}", + transitionDuration: "{transition.duration}" + }, + list: { + padding: "{navigation.list.padding}", + gap: "{navigation.list.gap}" + }, + item: { + focusBackground: "{navigation.item.focus.background}", + activeBackground: "{navigation.item.active.background}", + color: "{navigation.item.color}", + focusColor: "{navigation.item.focus.color}", + activeColor: "{navigation.item.active.color}", + padding: "{navigation.item.padding}", + borderRadius: "{navigation.item.border.radius}", + gap: "{navigation.item.gap}", + icon: { + color: "{navigation.item.icon.color}", + focusColor: "{navigation.item.icon.focus.color}", + activeColor: "{navigation.item.icon.active.color}" + } + }, + submenuLabel: { + padding: "{navigation.submenu.label.padding}", + fontWeight: "{navigation.submenu.label.font.weight}", + background: "{navigation.submenu.label.background.}", + color: "{navigation.submenu.label.color}" + }, + submenuIcon: { + size: "{navigation.submenu.icon.size}", + color: "{navigation.submenu.icon.color}", + focusColor: "{navigation.submenu.icon.focus.color}", + activeColor: "{navigation.submenu.icon.active.color}" + }, + separator: { + borderColor: "{content.border.color}" + } +}; +var index$c = { + event: { + minHeight: "5rem" + }, + horizontal: { + eventContent: { + padding: "1rem 0" + } + }, + vertical: { + eventContent: { + padding: "0 1rem" + } + }, + eventMarker: { + size: "1.125rem", + borderRadius: "50%", + borderWidth: "2px", + background: "{content.background}", + borderColor: "{content.border.color}", + content: { + borderRadius: "50%", + size: "0.375rem", + background: "{primary.color}", + insetShadow: "0px 0.5px 0px 0px rgba(0, 0, 0, 0.06), 0px 1px 1px 0px rgba(0, 0, 0, 0.12)" + } + }, + eventConnector: { + color: "{content.border.color}", + size: "2px" + } +}; +var index$b = { + root: { + width: "25rem", + borderRadius: "{content.border.radius}", + borderWidth: "1px", + transitionDuration: "{transition.duration}" + }, + icon: { + size: "1.125rem" + }, + content: { + padding: "{overlay.popover.padding}", + gap: "0.5rem" + }, + text: { + gap: "0.5rem" + }, + summary: { + fontWeight: "500", + fontSize: "1rem" + }, + detail: { + fontWeight: "500", + fontSize: "0.875rem" + }, + closeButton: { + width: "1.75rem", + height: "1.75rem", + borderRadius: "50%", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + offset: "{focus.ring.offset}" + } + }, + closeIcon: { + size: "1rem" + }, + colorScheme: { + light: { + blur: "1.5px", + info: { + background: "color-mix(in srgb, {blue.50}, transparent 5%)", + borderColor: "{blue.200}", + color: "{blue.600}", + detailColor: "{surface.700}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)", + closeButton: { + hoverBackground: "{blue.100}", + focusRing: { + color: "{blue.600}", + shadow: "none" + } + } + }, + success: { + background: "color-mix(in srgb, {green.50}, transparent 5%)", + borderColor: "{green.200}", + color: "{green.600}", + detailColor: "{surface.700}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)", + closeButton: { + hoverBackground: "{green.100}", + focusRing: { + color: "{green.600}", + shadow: "none" + } + } + }, + warn: { + background: "color-mix(in srgb,{yellow.50}, transparent 5%)", + borderColor: "{yellow.200}", + color: "{yellow.600}", + detailColor: "{surface.700}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)", + closeButton: { + hoverBackground: "{yellow.100}", + focusRing: { + color: "{yellow.600}", + shadow: "none" + } + } + }, + error: { + background: "color-mix(in srgb, {red.50}, transparent 5%)", + borderColor: "{red.200}", + color: "{red.600}", + detailColor: "{surface.700}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)", + closeButton: { + hoverBackground: "{red.100}", + focusRing: { + color: "{red.600}", + shadow: "none" + } + } + }, + secondary: { + background: "{surface.100}", + borderColor: "{surface.200}", + color: "{surface.600}", + detailColor: "{surface.700}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)", + closeButton: { + hoverBackground: "{surface.200}", + focusRing: { + color: "{surface.600}", + shadow: "none" + } + } + }, + contrast: { + background: "{surface.900}", + borderColor: "{surface.950}", + color: "{surface.50}", + detailColor: "{surface.0}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)", + closeButton: { + hoverBackground: "{surface.800}", + focusRing: { + color: "{surface.50}", + shadow: "none" + } + } + } + }, + dark: { + blur: "10px", + info: { + background: "color-mix(in srgb, {blue.500}, transparent 84%)", + borderColor: "color-mix(in srgb, {blue.700}, transparent 64%)", + color: "{blue.500}", + detailColor: "{surface.0}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)", + closeButton: { + hoverBackground: "rgba(255, 255, 255, 0.05)", + focusRing: { + color: "{blue.500}", + shadow: "none" + } + } + }, + success: { + background: "color-mix(in srgb, {green.500}, transparent 84%)", + borderColor: "color-mix(in srgb, {green.700}, transparent 64%)", + color: "{green.500}", + detailColor: "{surface.0}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)", + closeButton: { + hoverBackground: "rgba(255, 255, 255, 0.05)", + focusRing: { + color: "{green.500}", + shadow: "none" + } + } + }, + warn: { + background: "color-mix(in srgb, {yellow.500}, transparent 84%)", + borderColor: "color-mix(in srgb, {yellow.700}, transparent 64%)", + color: "{yellow.500}", + detailColor: "{surface.0}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)", + closeButton: { + hoverBackground: "rgba(255, 255, 255, 0.05)", + focusRing: { + color: "{yellow.500}", + shadow: "none" + } + } + }, + error: { + background: "color-mix(in srgb, {red.500}, transparent 84%)", + borderColor: "color-mix(in srgb, {red.700}, transparent 64%)", + color: "{red.500}", + detailColor: "{surface.0}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)", + closeButton: { + hoverBackground: "rgba(255, 255, 255, 0.05)", + focusRing: { + color: "{red.500}", + shadow: "none" + } + } + }, + secondary: { + background: "{surface.800}", + borderColor: "{surface.700}", + color: "{surface.300}", + detailColor: "{surface.0}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)", + closeButton: { + hoverBackground: "{surface.700}", + focusRing: { + color: "{surface.300}", + shadow: "none" + } + } + }, + contrast: { + background: "{surface.0}", + borderColor: "{surface.100}", + color: "{surface.950}", + detailColor: "{surface.950}", + shadow: "0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)", + closeButton: { + hoverBackground: "{surface.100}", + focusRing: { + color: "{surface.950}", + shadow: "none" + } + } + } + } + } +}; +var index$a = { + root: { + padding: "0.5rem 1rem", + borderRadius: "{content.border.radius}", + gap: "0.5rem", + fontWeight: "500", + disabledBackground: "{form.field.disabled.background}", + disabledBorderColor: "{form.field.disabled.background}", + disabledColor: "{form.field.disabled.color}", + invalidBorderColor: "{form.field.invalid.border.color}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + }, + transitionDuration: "{form.field.transition.duration}" + }, + icon: { + disabledColor: "{form.field.disabled.color}" + }, + content: { + left: "0.25rem", + top: "0.25rem", + checkedShadow: "0px 1px 2px 0px rgba(0, 0, 0, 0.02), 0px 1px 2px 0px rgba(0, 0, 0, 0.04)" + }, + colorScheme: { + light: { + root: { + background: "{surface.100}", + checkedBackground: "{surface.100}", + hoverBackground: "{surface.100}", + borderColor: "{surface.100}", + color: "{surface.500}", + hoverColor: "{surface.700}", + checkedColor: "{surface.900}", + checkedBorderColor: "{surface.100}" + }, + content: { + checkedBackground: "{surface.0}" + }, + icon: { + color: "{surface.500}", + hoverColor: "{surface.700}", + checkedColor: "{surface.900}" + } + }, + dark: { + root: { + background: "{surface.950}", + checkedBackground: "{surface.950}", + hoverBackground: "{surface.950}", + borderColor: "{surface.950}", + color: "{surface.400}", + hoverColor: "{surface.300}", + checkedColor: "{surface.0}", + checkedBorderColor: "{surface.950}" + }, + content: { + checkedBackground: "{surface.800}" + }, + icon: { + color: "{surface.400}", + hoverColor: "{surface.300}", + checkedColor: "{surface.0}" + } + } + } +}; +var index$9 = { + root: { + width: "2.5rem", + height: "1.5rem", + borderRadius: "30px", + gap: "0.25rem", + shadow: "{form.field.shadow}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + }, + borderWidth: "1px", + borderColor: "transparent", + hoverBorderColor: "transparent", + checkedBorderColor: "transparent", + checkedHoverBorderColor: "transparent", + invalidBorderColor: "{form.field.invalid.border.color}", + transitionDuration: "{form.field.transition.duration}", + slideDuration: "0.2s", + disabledBackground: "{form.field.disabled.background}" + }, + handle: { + borderRadius: "50%", + size: "1rem", + disabledBackground: "{form.field.disabled.color}" + }, + colorScheme: { + light: { + root: { + background: "{surface.300}", + hoverBackground: "{surface.400}", + checkedBackground: "{primary.color}", + checkedHoverBackground: "{primary.hover.color}" + }, + handle: { + background: "{surface.0}", + hoverBackground: "{surface.0}", + checkedBackground: "{surface.0}", + checkedHoverBackground: "{surface.0}" + } + }, + dark: { + root: { + background: "{surface.700}", + hoverBackground: "{surface.600}", + checkedBackground: "{primary.color}", + checkedHoverBackground: "{primary.hover.color}" + }, + handle: { + background: "{surface.400}", + hoverBackground: "{surface.300}", + checkedBackground: "{surface.900}", + checkedHoverBackground: "{surface.900}" + } + } + } +}; +var index$8 = { + root: { + background: "{content.background}", + borderColor: "{content.border.color}", + borderRadius: "{content.border.radius}", + color: "{content.color}", + gap: "0.5rem", + padding: "0.75rem" + } +}; +var index$7 = { + root: { + maxWidth: "12.5rem", + gutter: "0.25rem", + shadow: "{overlay.popover.shadow}", + padding: "0.5rem 0.75rem", + borderRadius: "{overlay.popover.border.radius}" + }, + colorScheme: { + light: { + root: { + background: "{surface.700}", + color: "{surface.0}" + } + }, + dark: { + root: { + background: "{surface.700}", + color: "{surface.0}" + } + } + } +}; +var index$6 = { + root: { + background: "{content.background}", + color: "{content.color}", + padding: "1rem", + gap: "2px", + indent: "1rem", + transitionDuration: "{transition.duration}" + }, + node: { + padding: "0.25rem 0.5rem", + borderRadius: "{content.border.radius}", + hoverBackground: "{content.hover.background}", + selectedBackground: "{highlight.background}", + color: "{text.color}", + hoverColor: "{text.hover.color}", + selectedColor: "{highlight.color}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "-1px", + shadow: "{focus.ring.shadow}" + }, + gap: "0.25rem" + }, + nodeIcon: { + color: "{text.muted.color}", + hoverColor: "{text.hover.muted.color}", + selectedColor: "{highlight.color}" + }, + nodeToggleButton: { + borderRadius: "50%", + size: "1.75rem", + hoverBackground: "{content.hover.background}", + selectedHoverBackground: "{content.background}", + color: "{text.muted.color}", + hoverColor: "{text.hover.muted.color}", + selectedHoverColor: "{primary.color}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + loadingIcon: { + size: "2rem" + } +}; +var index$5 = { + root: { + background: "{form.field.background}", + disabledBackground: "{form.field.disabled.background}", + filledBackground: "{form.field.filled.background}", + filledFocusBackground: "{form.field.filled.focus.background}", + borderColor: "{form.field.border.color}", + hoverBorderColor: "{form.field.hover.border.color}", + focusBorderColor: "{form.field.focus.border.color}", + invalidBorderColor: "{form.field.invalid.border.color}", + color: "{form.field.color}", + disabledColor: "{form.field.disabled.color}", + placeholderColor: "{form.field.placeholder.color}", + shadow: "{form.field.shadow}", + paddingX: "{form.field.padding.x}", + paddingY: "{form.field.padding.y}", + borderRadius: "{form.field.border.radius}", + focusRing: { + width: "{form.field.focus.ring.width}", + style: "{form.field.focus.ring.style}", + color: "{form.field.focus.ring.color}", + offset: "{form.field.focus.ring.offset}", + shadow: "{form.field.focus.ring.shadow}" + }, + transitionDuration: "{form.field.transition.duration}" + }, + dropdown: { + width: "2.5rem", + color: "{form.field.icon.color}" + }, + overlay: { + background: "{overlay.select.background}", + borderColor: "{overlay.select.border.color}", + borderRadius: "{overlay.select.border.radius}", + color: "{overlay.select.color}", + shadow: "{overlay.select.shadow}" + }, + tree: { + padding: "{list.padding}" + }, + emptyMessage: { + padding: "{list.option.padding}" + }, + chip: { + borderRadius: "{border.radius.sm}" + } +}; +var index$4 = { + root: { + transitionDuration: "{transition.duration}" + }, + header: { + background: "{content.background}", + borderColor: "{treetable.border.color}", + color: "{content.color}", + borderWidth: "0 0 1px 0", + padding: "0.75rem 1rem" + }, + headerCell: { + background: "{content.background}", + hoverBackground: "{content.hover.background}", + selectedBackground: "{highlight.background}", + borderColor: "{treetable.border.color}", + color: "{content.color}", + hoverColor: "{content.hover.color}", + selectedColor: "{highlight.color}", + gap: "0.5rem", + padding: "0.75rem 1rem", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "-1px", + shadow: "{focus.ring.shadow}" + } + }, + columnTitle: { + fontWeight: "600" + }, + row: { + background: "{content.background}", + hoverBackground: "{content.hover.background}", + selectedBackground: "{highlight.background}", + color: "{content.color}", + hoverColor: "{content.hover.color}", + selectedColor: "{highlight.color}", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "-1px", + shadow: "{focus.ring.shadow}" + } + }, + bodyCell: { + borderColor: "{treetable.border.color}", + padding: "0.75rem 1rem", + gap: "0.5rem" + }, + footerCell: { + background: "{content.background}", + borderColor: "{treetable.border.color}", + color: "{content.color}", + padding: "0.75rem 1rem" + }, + columnFooter: { + fontWeight: "600" + }, + footer: { + background: "{content.background}", + borderColor: "{treetable.border.color}", + color: "{content.color}", + borderWidth: "0 0 1px 0", + padding: "0.75rem 1rem" + }, + columnResizerWidth: "0.5rem", + resizeIndicator: { + width: "1px", + color: "{primary.color}" + }, + sortIcon: { + color: "{text.muted.color}", + hoverColor: "{text.hover.muted.color}" + }, + loadingIcon: { + size: "2rem" + }, + nodeToggleButton: { + hoverBackground: "{content.hover.background}", + selectedHoverBackground: "{content.background}", + color: "{text.muted.color}", + hoverColor: "{text.color}", + selectedHoverColor: "{primary.color}", + size: "1.75rem", + borderRadius: "50%", + focusRing: { + width: "{focus.ring.width}", + style: "{focus.ring.style}", + color: "{focus.ring.color}", + offset: "{focus.ring.offset}", + shadow: "{focus.ring.shadow}" + } + }, + paginatorTop: { + borderColor: "{content.border.color}", + borderWidth: "0 0 1px 0" + }, + paginatorBottom: { + borderColor: "{content.border.color}", + borderWidth: "0 0 1px 0" + }, + colorScheme: { + light: { + root: { + borderColor: "{content.border.color}" + }, + bodyCell: { + selectedBorderColor: "{primary.100}" + } + }, + dark: { + root: { + borderColor: "{surface.800}" + }, + bodyCell: { + selectedBorderColor: "{primary.900}" + } + } + } +}; +var index$3 = { + loader: { + mask: { + background: "{content.background}", + color: "{text.muted.color}" + }, + icon: { + size: "2rem" + } + } +}; +var index$2 = { + primitive: { + borderRadius: { + none: "0", + xs: "2px", + sm: "4px", + md: "6px", + lg: "8px", + xl: "12px" + }, + emerald: { + 50: "#ecfdf5", + 100: "#d1fae5", + 200: "#a7f3d0", + 300: "#6ee7b7", + 400: "#34d399", + 500: "#10b981", + 600: "#059669", + 700: "#047857", + 800: "#065f46", + 900: "#064e3b", + 950: "#022c22" + }, + green: { + 50: "#f0fdf4", + 100: "#dcfce7", + 200: "#bbf7d0", + 300: "#86efac", + 400: "#4ade80", + 500: "#22c55e", + 600: "#16a34a", + 700: "#15803d", + 800: "#166534", + 900: "#14532d", + 950: "#052e16" + }, + lime: { + 50: "#f7fee7", + 100: "#ecfccb", + 200: "#d9f99d", + 300: "#bef264", + 400: "#a3e635", + 500: "#84cc16", + 600: "#65a30d", + 700: "#4d7c0f", + 800: "#3f6212", + 900: "#365314", + 950: "#1a2e05" + }, + red: { + 50: "#fef2f2", + 100: "#fee2e2", + 200: "#fecaca", + 300: "#fca5a5", + 400: "#f87171", + 500: "#ef4444", + 600: "#dc2626", + 700: "#b91c1c", + 800: "#991b1b", + 900: "#7f1d1d", + 950: "#450a0a" + }, + orange: { + 50: "#fff7ed", + 100: "#ffedd5", + 200: "#fed7aa", + 300: "#fdba74", + 400: "#fb923c", + 500: "#f97316", + 600: "#ea580c", + 700: "#c2410c", + 800: "#9a3412", + 900: "#7c2d12", + 950: "#431407" + }, + amber: { + 50: "#fffbeb", + 100: "#fef3c7", + 200: "#fde68a", + 300: "#fcd34d", + 400: "#fbbf24", + 500: "#f59e0b", + 600: "#d97706", + 700: "#b45309", + 800: "#92400e", + 900: "#78350f", + 950: "#451a03" + }, + yellow: { + 50: "#fefce8", + 100: "#fef9c3", + 200: "#fef08a", + 300: "#fde047", + 400: "#facc15", + 500: "#eab308", + 600: "#ca8a04", + 700: "#a16207", + 800: "#854d0e", + 900: "#713f12", + 950: "#422006" + }, + teal: { + 50: "#f0fdfa", + 100: "#ccfbf1", + 200: "#99f6e4", + 300: "#5eead4", + 400: "#2dd4bf", + 500: "#14b8a6", + 600: "#0d9488", + 700: "#0f766e", + 800: "#115e59", + 900: "#134e4a", + 950: "#042f2e" + }, + cyan: { + 50: "#ecfeff", + 100: "#cffafe", + 200: "#a5f3fc", + 300: "#67e8f9", + 400: "#22d3ee", + 500: "#06b6d4", + 600: "#0891b2", + 700: "#0e7490", + 800: "#155e75", + 900: "#164e63", + 950: "#083344" + }, + sky: { + 50: "#f0f9ff", + 100: "#e0f2fe", + 200: "#bae6fd", + 300: "#7dd3fc", + 400: "#38bdf8", + 500: "#0ea5e9", + 600: "#0284c7", + 700: "#0369a1", + 800: "#075985", + 900: "#0c4a6e", + 950: "#082f49" + }, + blue: { + 50: "#eff6ff", + 100: "#dbeafe", + 200: "#bfdbfe", + 300: "#93c5fd", + 400: "#60a5fa", + 500: "#3b82f6", + 600: "#2563eb", + 700: "#1d4ed8", + 800: "#1e40af", + 900: "#1e3a8a", + 950: "#172554" + }, + indigo: { + 50: "#eef2ff", + 100: "#e0e7ff", + 200: "#c7d2fe", + 300: "#a5b4fc", + 400: "#818cf8", + 500: "#6366f1", + 600: "#4f46e5", + 700: "#4338ca", + 800: "#3730a3", + 900: "#312e81", + 950: "#1e1b4b" + }, + violet: { + 50: "#f5f3ff", + 100: "#ede9fe", + 200: "#ddd6fe", + 300: "#c4b5fd", + 400: "#a78bfa", + 500: "#8b5cf6", + 600: "#7c3aed", + 700: "#6d28d9", + 800: "#5b21b6", + 900: "#4c1d95", + 950: "#2e1065" + }, + purple: { + 50: "#faf5ff", + 100: "#f3e8ff", + 200: "#e9d5ff", + 300: "#d8b4fe", + 400: "#c084fc", + 500: "#a855f7", + 600: "#9333ea", + 700: "#7e22ce", + 800: "#6b21a8", + 900: "#581c87", + 950: "#3b0764" + }, + fuchsia: { + 50: "#fdf4ff", + 100: "#fae8ff", + 200: "#f5d0fe", + 300: "#f0abfc", + 400: "#e879f9", + 500: "#d946ef", + 600: "#c026d3", + 700: "#a21caf", + 800: "#86198f", + 900: "#701a75", + 950: "#4a044e" + }, + pink: { + 50: "#fdf2f8", + 100: "#fce7f3", + 200: "#fbcfe8", + 300: "#f9a8d4", + 400: "#f472b6", + 500: "#ec4899", + 600: "#db2777", + 700: "#be185d", + 800: "#9d174d", + 900: "#831843", + 950: "#500724" + }, + rose: { + 50: "#fff1f2", + 100: "#ffe4e6", + 200: "#fecdd3", + 300: "#fda4af", + 400: "#fb7185", + 500: "#f43f5e", + 600: "#e11d48", + 700: "#be123c", + 800: "#9f1239", + 900: "#881337", + 950: "#4c0519" + }, + slate: { + 50: "#f8fafc", + 100: "#f1f5f9", + 200: "#e2e8f0", + 300: "#cbd5e1", + 400: "#94a3b8", + 500: "#64748b", + 600: "#475569", + 700: "#334155", + 800: "#1e293b", + 900: "#0f172a", + 950: "#020617" + }, + gray: { + 50: "#f9fafb", + 100: "#f3f4f6", + 200: "#e5e7eb", + 300: "#d1d5db", + 400: "#9ca3af", + 500: "#6b7280", + 600: "#4b5563", + 700: "#374151", + 800: "#1f2937", + 900: "#111827", + 950: "#030712" + }, + zinc: { + 50: "#fafafa", + 100: "#f4f4f5", + 200: "#e4e4e7", + 300: "#d4d4d8", + 400: "#a1a1aa", + 500: "#71717a", + 600: "#52525b", + 700: "#3f3f46", + 800: "#27272a", + 900: "#18181b", + 950: "#09090b" + }, + neutral: { + 50: "#fafafa", + 100: "#f5f5f5", + 200: "#e5e5e5", + 300: "#d4d4d4", + 400: "#a3a3a3", + 500: "#737373", + 600: "#525252", + 700: "#404040", + 800: "#262626", + 900: "#171717", + 950: "#0a0a0a" + }, + stone: { + 50: "#fafaf9", + 100: "#f5f5f4", + 200: "#e7e5e4", + 300: "#d6d3d1", + 400: "#a8a29e", + 500: "#78716c", + 600: "#57534e", + 700: "#44403c", + 800: "#292524", + 900: "#1c1917", + 950: "#0c0a09" + } + }, + semantic: { + transitionDuration: "0.2s", + focusRing: { + width: "1px", + style: "solid", + color: "{primary.color}", + offset: "2px", + shadow: "none" + }, + disabledOpacity: "0.6", + iconSize: "1rem", + anchorGutter: "2px", + primary: { + 50: "{emerald.50}", + 100: "{emerald.100}", + 200: "{emerald.200}", + 300: "{emerald.300}", + 400: "{emerald.400}", + 500: "{emerald.500}", + 600: "{emerald.600}", + 700: "{emerald.700}", + 800: "{emerald.800}", + 900: "{emerald.900}", + 950: "{emerald.950}" + }, + formField: { + paddingX: "0.75rem", + paddingY: "0.5rem", + borderRadius: "{border.radius.md}", + focusRing: { + width: "0", + style: "none", + color: "transparent", + offset: "0", + shadow: "none" + }, + transitionDuration: "{transition.duration}" + }, + list: { + padding: "0.25rem 0.25rem", + gap: "2px", + header: { + padding: "0.5rem 1rem 0.25rem 1rem" + }, + option: { + padding: "0.5rem 0.75rem", + borderRadius: "{border.radius.sm}" + }, + optionGroup: { + padding: "0.5rem 0.75rem", + fontWeight: "600" + } + }, + content: { + borderRadius: "{border.radius.md}" + }, + mask: { + transitionDuration: "0.15s" + }, + navigation: { + list: { + padding: "0.25rem 0.25rem", + gap: "2px" + }, + item: { + padding: "0.5rem 0.75rem", + borderRadius: "{border.radius.sm}", + gap: "0.5rem" + }, + submenuLabel: { + padding: "0.5rem 0.75rem", + fontWeight: "600" + }, + submenuIcon: { + size: "0.875rem" + } + }, + overlay: { + select: { + borderRadius: "{border.radius.md}", + shadow: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)" + }, + popover: { + borderRadius: "{border.radius.md}", + padding: "0.75rem", + shadow: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)" + }, + modal: { + borderRadius: "{border.radius.xl}", + padding: "1.25rem", + shadow: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1)" + }, + navigation: { + shadow: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)" + } + }, + colorScheme: { + light: { + surface: { + 0: "#ffffff", + 50: "{slate.50}", + 100: "{slate.100}", + 200: "{slate.200}", + 300: "{slate.300}", + 400: "{slate.400}", + 500: "{slate.500}", + 600: "{slate.600}", + 700: "{slate.700}", + 800: "{slate.800}", + 900: "{slate.900}", + 950: "{slate.950}" + }, + primary: { + color: "{primary.500}", + contrastColor: "#ffffff", + hoverColor: "{primary.600}", + activeColor: "{primary.700}" + }, + highlight: { + background: "{primary.50}", + focusBackground: "{primary.100}", + color: "{primary.700}", + focusColor: "{primary.800}" + }, + mask: { + background: "rgba(0,0,0,0.4)", + color: "{surface.200}" + }, + formField: { + background: "{surface.0}", + disabledBackground: "{surface.200}", + filledBackground: "{surface.50}", + filledFocusBackground: "{surface.50}", + borderColor: "{surface.300}", + hoverBorderColor: "{surface.400}", + focusBorderColor: "{primary.color}", + invalidBorderColor: "{red.400}", + color: "{surface.700}", + disabledColor: "{surface.500}", + placeholderColor: "{surface.500}", + floatLabelColor: "{surface.500}", + floatLabelFocusColor: "{surface.500}", + floatLabelInvalidColor: "{red.400}", + iconColor: "{surface.400}", + shadow: "0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(18, 18, 23, 0.05)" + }, + text: { + color: "{surface.700}", + hoverColor: "{surface.800}", + mutedColor: "{surface.500}", + hoverMutedColor: "{surface.600}" + }, + content: { + background: "{surface.0}", + hoverBackground: "{surface.100}", + borderColor: "{surface.200}", + color: "{text.color}", + hoverColor: "{text.hover.color}" + }, + overlay: { + select: { + background: "{surface.0}", + borderColor: "{surface.200}", + color: "{text.color}" + }, + popover: { + background: "{surface.0}", + borderColor: "{surface.200}", + color: "{text.color}" + }, + modal: { + background: "{surface.0}", + borderColor: "{surface.200}", + color: "{text.color}" + } + }, + list: { + option: { + focusBackground: "{surface.100}", + selectedBackground: "{highlight.background}", + selectedFocusBackground: "{highlight.focus.background}", + color: "{text.color}", + focusColor: "{text.hover.color}", + selectedColor: "{highlight.color}", + selectedFocusColor: "{highlight.focus.color}", + icon: { + color: "{surface.400}", + focusColor: "{surface.500}" + } + }, + optionGroup: { + background: "transparent", + color: "{text.muted.color}" + } + }, + navigation: { + item: { + focusBackground: "{surface.100}", + activeBackground: "{surface.100}", + color: "{text.color}", + focusColor: "{text.hover.color}", + activeColor: "{text.hover.color}", + icon: { + color: "{surface.400}", + focusColor: "{surface.500}", + activeColor: "{surface.500}" + } + }, + submenuLabel: { + background: "transparent", + color: "{text.muted.color}" + }, + submenuIcon: { + color: "{surface.400}", + focusColor: "{surface.500}", + activeColor: "{surface.500}" + } + } + }, + dark: { + surface: { + 0: "#ffffff", + 50: "{zinc.50}", + 100: "{zinc.100}", + 200: "{zinc.200}", + 300: "{zinc.300}", + 400: "{zinc.400}", + 500: "{zinc.500}", + 600: "{zinc.600}", + 700: "{zinc.700}", + 800: "{zinc.800}", + 900: "{zinc.900}", + 950: "{zinc.950}" + }, + primary: { + color: "{primary.400}", + contrastColor: "{surface.900}", + hoverColor: "{primary.300}", + activeColor: "{primary.200}" + }, + highlight: { + background: "color-mix(in srgb, {primary.400}, transparent 84%)", + focusBackground: "color-mix(in srgb, {primary.400}, transparent 76%)", + color: "rgba(255,255,255,.87)", + focusColor: "rgba(255,255,255,.87)" + }, + mask: { + background: "rgba(0,0,0,0.6)", + color: "{surface.200}" + }, + formField: { + background: "{surface.950}", + disabledBackground: "{surface.700}", + filledBackground: "{surface.800}", + filledFocusBackground: "{surface.800}", + borderColor: "{surface.700}", + hoverBorderColor: "{surface.600}", + focusBorderColor: "{primary.color}", + invalidBorderColor: "{red.300}", + color: "{surface.0}", + disabledColor: "{surface.400}", + placeholderColor: "{surface.400}", + floatLabelColor: "{surface.400}", + floatLabelFocusColor: "{surface.400}", + floatLabelInvalidColor: "{red.300}", + iconColor: "{surface.400}", + shadow: "0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(18, 18, 23, 0.05)" + }, + text: { + color: "{surface.0}", + hoverColor: "{surface.0}", + mutedColor: "{surface.400}", + hoverMutedColor: "{surface.300}" + }, + content: { + background: "{surface.900}", + hoverBackground: "{surface.800}", + borderColor: "{surface.700}", + color: "{text.color}", + hoverColor: "{text.hover.color}" + }, + overlay: { + select: { + background: "{surface.900}", + borderColor: "{surface.700}", + color: "{text.color}" + }, + popover: { + background: "{surface.900}", + borderColor: "{surface.700}", + color: "{text.color}" + }, + modal: { + background: "{surface.900}", + borderColor: "{surface.700}", + color: "{text.color}" + } + }, + list: { + option: { + focusBackground: "{surface.800}", + selectedBackground: "{highlight.background}", + selectedFocusBackground: "{highlight.focus.background}", + color: "{text.color}", + focusColor: "{text.hover.color}", + selectedColor: "{highlight.color}", + selectedFocusColor: "{highlight.focus.color}", + icon: { + color: "{surface.500}", + focusColor: "{surface.400}" + } + }, + optionGroup: { + background: "transparent", + color: "{text.muted.color}" + } + }, + navigation: { + item: { + focusBackground: "{surface.800}", + activeBackground: "{surface.800}", + color: "{text.color}", + focusColor: "{text.hover.color}", + activeColor: "{text.hover.color}", + icon: { + color: "{surface.500}", + focusColor: "{surface.400}", + activeColor: "{surface.400}" + } + }, + submenuLabel: { + background: "transparent", + color: "{text.muted.color}" + }, + submenuIcon: { + color: "{surface.500}", + focusColor: "{surface.400}", + activeColor: "{surface.400}" + } + } + } + } + }, + components: { + accordion: index$1n, + autocomplete: index$1m, + avatar: index$1l, + badge: index$1k, + blockui: index$1j, + breadcrumb: index$1i, + button: index$1h, + datepicker: index$15, + card: index$1g, + carousel: index$1f, + cascadeselect: index$1e, + checkbox: index$1d, + chip: index$1c, + colorpicker: index$1b, + confirmdialog: index$1a, + confirmpopup: index$19, + contextmenu: index$18, + dataview: index$16, + datatable: index$17, + dialog: index$14, + divider: index$13, + dock: index$12, + drawer: index$11, + editor: index$10, + fieldset: index$$, + fileupload: index$_, + floatlabel: index$Z, + galleria: index$Y, + iconfield: index$X, + image: index$W, + inlinemessage: index$V, + inplace: index$U, + inputchips: index$T, + inputgroup: index$S, + inputnumber: index$R, + inputtext: index$Q, + knob: index$P, + listbox: index$O, + megamenu: index$N, + menu: index$M, + menubar: index$L, + message: index$K, + metergroup: index$J, + multiselect: index$I, + orderlist: index$H, + organizationchart: index$G, + overlaybadge: index$F, + popover: index$z, + paginator: index$E, + password: index$B, + panel: index$D, + panelmenu: index$C, + picklist: index$A, + progressbar: index$y, + progressspinner: index$x, + radiobutton: index$w, + rating: index$v, + scrollpanel: index$t, + select: index$s, + selectbutton: index$r, + skeleton: index$q, + slider: index$p, + speeddial: index$o, + splitter: index$m, + splitbutton: index$n, + stepper: index$l, + steps: index$k, + tabmenu: index$j, + tabs: index$i, + tabview: index$h, + textarea: index$e, + tieredmenu: index$d, + tag: index$g, + terminal: index$f, + timeline: index$c, + togglebutton: index$a, + toggleswitch: index$9, + tree: index$6, + treeselect: index$5, + treetable: index$4, + toast: index$b, + toolbar: index$8, + virtualscroller: index$3 + }, + directives: { + tooltip: index$7, + ripple: index$u + } +}; +/** +* @vue/shared v3.4.31 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +/*! #__NO_SIDE_EFFECTS__ */ +// @__NO_SIDE_EFFECTS__ +function makeMap(str, expectsLowerCase) { + const set3 = new Set(str.split(",")); + return expectsLowerCase ? (val) => set3.has(val.toLowerCase()) : (val) => set3.has(val); +} +__name(makeMap, "makeMap"); +const EMPTY_OBJ = false ? Object.freeze({}) : {}; +const EMPTY_ARR = false ? Object.freeze([]) : []; +const NOOP = /* @__PURE__ */ __name(() => { +}, "NOOP"); +const NO = /* @__PURE__ */ __name(() => false, "NO"); +const isOn = /* @__PURE__ */ __name((key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97), "isOn"); +const isModelListener = /* @__PURE__ */ __name((key) => key.startsWith("onUpdate:"), "isModelListener"); +const extend$1 = Object.assign; +const remove$1 = /* @__PURE__ */ __name((arr, el) => { + const i2 = arr.indexOf(el); + if (i2 > -1) { + arr.splice(i2, 1); + } +}, "remove$1"); +const hasOwnProperty$3 = Object.prototype.hasOwnProperty; +const hasOwn$3 = /* @__PURE__ */ __name((val, key) => hasOwnProperty$3.call(val, key), "hasOwn$3"); +const isArray$4 = Array.isArray; +const isMap = /* @__PURE__ */ __name((val) => toTypeString$1(val) === "[object Map]", "isMap"); +const isSet = /* @__PURE__ */ __name((val) => toTypeString$1(val) === "[object Set]", "isSet"); +const isDate$2 = /* @__PURE__ */ __name((val) => toTypeString$1(val) === "[object Date]", "isDate$2"); +const isRegExp$4 = /* @__PURE__ */ __name((val) => toTypeString$1(val) === "[object RegExp]", "isRegExp$4"); +const isFunction$4 = /* @__PURE__ */ __name((val) => typeof val === "function", "isFunction$4"); +const isString$7 = /* @__PURE__ */ __name((val) => typeof val === "string", "isString$7"); +const isSymbol$1 = /* @__PURE__ */ __name((val) => typeof val === "symbol", "isSymbol$1"); +const isObject$6 = /* @__PURE__ */ __name((val) => val !== null && typeof val === "object", "isObject$6"); +const isPromise$1 = /* @__PURE__ */ __name((val) => { + return (isObject$6(val) || isFunction$4(val)) && isFunction$4(val.then) && isFunction$4(val.catch); +}, "isPromise$1"); +const objectToString$1 = Object.prototype.toString; +const toTypeString$1 = /* @__PURE__ */ __name((value4) => objectToString$1.call(value4), "toTypeString$1"); +const toRawType = /* @__PURE__ */ __name((value4) => { + return toTypeString$1(value4).slice(8, -1); +}, "toRawType"); +const isPlainObject$4 = /* @__PURE__ */ __name((val) => toTypeString$1(val) === "[object Object]", "isPlainObject$4"); +const isIntegerKey = /* @__PURE__ */ __name((key) => isString$7(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key, "isIntegerKey"); +const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +const cacheStringFunction$1 = /* @__PURE__ */ __name((fn) => { + const cache2 = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache2[str]; + return hit || (cache2[str] = fn(str)); + }; +}, "cacheStringFunction$1"); +const camelizeRE$1 = /-(\w)/g; +const camelize$1 = cacheStringFunction$1((str) => { + return str.replace(camelizeRE$1, (_2, c) => c ? c.toUpperCase() : ""); +}); +const hyphenateRE$1 = /\B([A-Z])/g; +const hyphenate$1 = cacheStringFunction$1( + (str) => str.replace(hyphenateRE$1, "-$1").toLowerCase() +); +const capitalize$1 = cacheStringFunction$1((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +const toHandlerKey = cacheStringFunction$1((str) => { + const s = str ? `on${capitalize$1(str)}` : ``; + return s; +}); +const hasChanged = /* @__PURE__ */ __name((value4, oldValue2) => !Object.is(value4, oldValue2), "hasChanged"); +const invokeArrayFns = /* @__PURE__ */ __name((fns, ...arg) => { + for (let i2 = 0; i2 < fns.length; i2++) { + fns[i2](...arg); + } +}, "invokeArrayFns"); +const def = /* @__PURE__ */ __name((obj, key, value4, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value: value4 + }); +}, "def"); +const looseToNumber = /* @__PURE__ */ __name((val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}, "looseToNumber"); +const toNumber = /* @__PURE__ */ __name((val) => { + const n = isString$7(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}, "toNumber"); +let _globalThis$1; +const getGlobalThis$1 = /* @__PURE__ */ __name(() => { + return _globalThis$1 || (_globalThis$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}, "getGlobalThis$1"); +const identRE = /^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/; +function genPropsAccessExp(name2) { + return identRE.test(name2) ? `__props.${name2}` : `__props[${JSON.stringify(name2)}]`; +} +__name(genPropsAccessExp, "genPropsAccessExp"); +const PatchFlags = { + "TEXT": 1, + "1": "TEXT", + "CLASS": 2, + "2": "CLASS", + "STYLE": 4, + "4": "STYLE", + "PROPS": 8, + "8": "PROPS", + "FULL_PROPS": 16, + "16": "FULL_PROPS", + "NEED_HYDRATION": 32, + "32": "NEED_HYDRATION", + "STABLE_FRAGMENT": 64, + "64": "STABLE_FRAGMENT", + "KEYED_FRAGMENT": 128, + "128": "KEYED_FRAGMENT", + "UNKEYED_FRAGMENT": 256, + "256": "UNKEYED_FRAGMENT", + "NEED_PATCH": 512, + "512": "NEED_PATCH", + "DYNAMIC_SLOTS": 1024, + "1024": "DYNAMIC_SLOTS", + "DEV_ROOT_FRAGMENT": 2048, + "2048": "DEV_ROOT_FRAGMENT", + "HOISTED": -1, + "-1": "HOISTED", + "BAIL": -2, + "-2": "BAIL" +}; +const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `NEED_HYDRATION`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `HOISTED`, + [-2]: `BAIL` +}; +const ShapeFlags = { + "ELEMENT": 1, + "1": "ELEMENT", + "FUNCTIONAL_COMPONENT": 2, + "2": "FUNCTIONAL_COMPONENT", + "STATEFUL_COMPONENT": 4, + "4": "STATEFUL_COMPONENT", + "TEXT_CHILDREN": 8, + "8": "TEXT_CHILDREN", + "ARRAY_CHILDREN": 16, + "16": "ARRAY_CHILDREN", + "SLOTS_CHILDREN": 32, + "32": "SLOTS_CHILDREN", + "TELEPORT": 64, + "64": "TELEPORT", + "SUSPENSE": 128, + "128": "SUSPENSE", + "COMPONENT_SHOULD_KEEP_ALIVE": 256, + "256": "COMPONENT_SHOULD_KEEP_ALIVE", + "COMPONENT_KEPT_ALIVE": 512, + "512": "COMPONENT_KEPT_ALIVE", + "COMPONENT": 6, + "6": "COMPONENT" +}; +const SlotFlags = { + "STABLE": 1, + "1": "STABLE", + "DYNAMIC": 2, + "2": "DYNAMIC", + "FORWARDED": 3, + "3": "FORWARDED" +}; +const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" +}; +const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error"; +const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); +const isGloballyWhitelisted = isGloballyAllowed; +const range = 2; +function generateCodeFrame$1(source, start2 = 0, end = source.length) { + start2 = Math.max(0, Math.min(start2, source.length)); + end = Math.max(0, Math.min(end, source.length)); + if (start2 > end) return ""; + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_2, idx) => idx % 2 === 1); + lines = lines.filter((_2, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i2 = 0; i2 < lines.length; i2++) { + count += lines[i2].length + (newlineSequences[i2] && newlineSequences[i2].length || 0); + if (count >= start2) { + for (let j = i2 - range; j <= i2 + range || end > count; j++) { + if (j < 0 || j >= lines.length) continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i2) { + const pad = start2 - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start2 + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i2) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); +} +__name(generateCodeFrame$1, "generateCodeFrame$1"); +function normalizeStyle(value4) { + if (isArray$4(value4)) { + const res = {}; + for (let i2 = 0; i2 < value4.length; i2++) { + const item3 = value4[i2]; + const normalized = isString$7(item3) ? parseStringStyle(item3) : normalizeStyle(item3); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString$7(value4) || isObject$6(value4)) { + return value4; + } +} +__name(normalizeStyle, "normalizeStyle"); +const listDelimiterRE = /;(?![^(]*\))/g; +const propertyDelimiterRE = /:([^]+)/; +const styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item3) => { + if (item3) { + const tmp = item3.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +__name(parseStringStyle, "parseStringStyle"); +function stringifyStyle(styles) { + let ret = ""; + if (!styles || isString$7(styles)) { + return ret; + } + for (const key in styles) { + const value4 = styles[key]; + if (isString$7(value4) || typeof value4 === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate$1(key); + ret += `${normalizedKey}:${value4};`; + } + } + return ret; +} +__name(stringifyStyle, "stringifyStyle"); +function normalizeClass(value4) { + let res = ""; + if (isString$7(value4)) { + res = value4; + } else if (isArray$4(value4)) { + for (let i2 = 0; i2 < value4.length; i2++) { + const normalized = normalizeClass(value4[i2]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject$6(value4)) { + for (const name2 in value4) { + if (value4[name2]) { + res += name2 + " "; + } + } + } + return res.trim(); +} +__name(normalizeClass, "normalizeClass"); +function normalizeProps(props) { + if (!props) return null; + let { class: klass, style: style2 } = props; + if (klass && !isString$7(klass)) { + props.class = normalizeClass(klass); + } + if (style2) { + props.style = normalizeStyle(style2); + } + return props; +} +__name(normalizeProps, "normalizeProps"); +const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); +const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); +const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); +const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); +const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); +const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +function includeBooleanAttr(value4) { + return !!value4 || value4 === ""; +} +__name(includeBooleanAttr, "includeBooleanAttr"); +const unsafeAttrCharRE = /[>/="'\u0009\u000a\u000c\u0020]/; +const attrValidationCache = {}; +function isSSRSafeAttrName(name2) { + if (attrValidationCache.hasOwnProperty(name2)) { + return attrValidationCache[name2]; + } + const isUnsafe = unsafeAttrCharRE.test(name2); + if (isUnsafe) { + console.error(`unsafe attribute name: ${name2}`); + } + return attrValidationCache[name2] = !isUnsafe; +} +__name(isSSRSafeAttrName, "isSSRSafeAttrName"); +const propsToAttrMap = { + acceptCharset: "accept-charset", + className: "class", + htmlFor: "for", + httpEquiv: "http-equiv" +}; +const isKnownHtmlAttr = /* @__PURE__ */ makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` +); +const isKnownSvgAttr = /* @__PURE__ */ makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +function isRenderableAttrValue(value4) { + if (value4 == null) { + return false; + } + const type = typeof value4; + return type === "string" || type === "number" || type === "boolean"; +} +__name(isRenderableAttrValue, "isRenderableAttrValue"); +const escapeRE$2 = /["'&<>]/; +function escapeHtml$2(string) { + const str = "" + string; + const match2 = escapeRE$2.exec(str); + if (!match2) { + return str; + } + let html = ""; + let escaped; + let index2; + let lastIndex2 = 0; + for (index2 = match2.index; index2 < str.length; index2++) { + switch (str.charCodeAt(index2)) { + case 34: + escaped = """; + break; + case 38: + escaped = "&"; + break; + case 39: + escaped = "'"; + break; + case 60: + escaped = "<"; + break; + case 62: + escaped = ">"; + break; + default: + continue; + } + if (lastIndex2 !== index2) { + html += str.slice(lastIndex2, index2); + } + lastIndex2 = index2 + 1; + html += escaped; + } + return lastIndex2 !== index2 ? html + str.slice(lastIndex2, index2) : html; +} +__name(escapeHtml$2, "escapeHtml$2"); +const commentStripRE = /^-?>||--!>| looseEqual(item3, val)); +} +__name(looseIndexOf, "looseIndexOf"); +const isRef$1 = /* @__PURE__ */ __name((val) => { + return !!(val && val.__v_isRef === true); +}, "isRef$1"); +const toDisplayString$1 = /* @__PURE__ */ __name((val) => { + return isString$7(val) ? val : val == null ? "" : isArray$4(val) || isObject$6(val) && (val.toString === objectToString$1 || !isFunction$4(val.toString)) ? isRef$1(val) ? toDisplayString$1(val.value) : JSON.stringify(val, replacer, 2) : String(val); +}, "toDisplayString$1"); +const replacer = /* @__PURE__ */ __name((_key, val) => { + if (isRef$1(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i2) => { + entries[stringifySymbol(key, i2) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v2) => stringifySymbol(v2)) + }; + } else if (isSymbol$1(val)) { + return stringifySymbol(val); + } else if (isObject$6(val) && !isArray$4(val) && !isPlainObject$4(val)) { + return String(val); + } + return val; +}, "replacer"); +const stringifySymbol = /* @__PURE__ */ __name((v2, i2 = "") => { + var _a2; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol$1(v2) ? `Symbol(${(_a2 = v2.description) != null ? _a2 : i2})` : v2 + ); +}, "stringifySymbol"); +/** +* @vue/reactivity v3.4.31 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +function warn$4(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} +__name(warn$4, "warn$4"); +let activeEffectScope; +class EffectScope { + static { + __name(this, "EffectScope"); + } + constructor(detached = false) { + this.detached = detached; + this._active = true; + this.effects = []; + this.cleanups = []; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else if (false) { + warn$4(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + activeEffectScope = this; + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + activeEffectScope = this.parent; + } + stop(fromParent) { + if (this._active) { + let i2, l; + for (i2 = 0, l = this.effects.length; i2 < l; i2++) { + this.effects[i2].stop(); + } + for (i2 = 0, l = this.cleanups.length; i2 < l; i2++) { + this.cleanups[i2](); + } + if (this.scopes) { + for (i2 = 0, l = this.scopes.length; i2 < l; i2++) { + this.scopes[i2].stop(true); + } + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + this._active = false; + } + } +} +function effectScope(detached) { + return new EffectScope(detached); +} +__name(effectScope, "effectScope"); +function recordEffectScope(effect2, scope = activeEffectScope) { + if (scope && scope.active) { + scope.effects.push(effect2); + } +} +__name(recordEffectScope, "recordEffectScope"); +function getCurrentScope() { + return activeEffectScope; +} +__name(getCurrentScope, "getCurrentScope"); +function onScopeDispose(fn) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (false) { + warn$4( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } +} +__name(onScopeDispose, "onScopeDispose"); +let activeEffect; +class ReactiveEffect { + static { + __name(this, "ReactiveEffect"); + } + constructor(fn, trigger2, scheduler, scope) { + this.fn = fn; + this.trigger = trigger2; + this.scheduler = scheduler; + this.active = true; + this.deps = []; + this._dirtyLevel = 4; + this._trackId = 0; + this._runnings = 0; + this._shouldSchedule = false; + this._depsLength = 0; + recordEffectScope(this, scope); + } + get dirty() { + if (this._dirtyLevel === 2 || this._dirtyLevel === 3) { + this._dirtyLevel = 1; + pauseTracking(); + for (let i2 = 0; i2 < this._depsLength; i2++) { + const dep = this.deps[i2]; + if (dep.computed) { + triggerComputed(dep.computed); + if (this._dirtyLevel >= 4) { + break; + } + } + } + if (this._dirtyLevel === 1) { + this._dirtyLevel = 0; + } + resetTracking(); + } + return this._dirtyLevel >= 4; + } + set dirty(v2) { + this._dirtyLevel = v2 ? 4 : 0; + } + run() { + this._dirtyLevel = 0; + if (!this.active) { + return this.fn(); + } + let lastShouldTrack = shouldTrack; + let lastEffect = activeEffect; + try { + shouldTrack = true; + activeEffect = this; + this._runnings++; + preCleanupEffect(this); + return this.fn(); + } finally { + postCleanupEffect(this); + this._runnings--; + activeEffect = lastEffect; + shouldTrack = lastShouldTrack; + } + } + stop() { + if (this.active) { + preCleanupEffect(this); + postCleanupEffect(this); + this.onStop && this.onStop(); + this.active = false; + } + } +} +function triggerComputed(computed2) { + return computed2.value; +} +__name(triggerComputed, "triggerComputed"); +function preCleanupEffect(effect2) { + effect2._trackId++; + effect2._depsLength = 0; +} +__name(preCleanupEffect, "preCleanupEffect"); +function postCleanupEffect(effect2) { + if (effect2.deps.length > effect2._depsLength) { + for (let i2 = effect2._depsLength; i2 < effect2.deps.length; i2++) { + cleanupDepEffect(effect2.deps[i2], effect2); + } + effect2.deps.length = effect2._depsLength; + } +} +__name(postCleanupEffect, "postCleanupEffect"); +function cleanupDepEffect(dep, effect2) { + const trackId = dep.get(effect2); + if (trackId !== void 0 && effect2._trackId !== trackId) { + dep.delete(effect2); + if (dep.size === 0) { + dep.cleanup(); + } + } +} +__name(cleanupDepEffect, "cleanupDepEffect"); +function effect(fn, options4) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const _effect = new ReactiveEffect(fn, NOOP, () => { + if (_effect.dirty) { + _effect.run(); + } + }); + if (options4) { + extend$1(_effect, options4); + if (options4.scope) recordEffectScope(_effect, options4.scope); + } + if (!options4 || !options4.lazy) { + _effect.run(); + } + const runner = _effect.run.bind(_effect); + runner.effect = _effect; + return runner; +} +__name(effect, "effect"); +function stop(runner) { + runner.effect.stop(); +} +__name(stop, "stop"); +let shouldTrack = true; +let pauseScheduleStack = 0; +const trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +__name(pauseTracking, "pauseTracking"); +function enableTracking() { + trackStack.push(shouldTrack); + shouldTrack = true; +} +__name(enableTracking, "enableTracking"); +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +__name(resetTracking, "resetTracking"); +function pauseScheduling() { + pauseScheduleStack++; +} +__name(pauseScheduling, "pauseScheduling"); +function resetScheduling() { + pauseScheduleStack--; + while (!pauseScheduleStack && queueEffectSchedulers.length) { + queueEffectSchedulers.shift()(); + } +} +__name(resetScheduling, "resetScheduling"); +function trackEffect(effect2, dep, debuggerEventExtraInfo) { + var _a2; + if (dep.get(effect2) !== effect2._trackId) { + dep.set(effect2, effect2._trackId); + const oldDep = effect2.deps[effect2._depsLength]; + if (oldDep !== dep) { + if (oldDep) { + cleanupDepEffect(oldDep, effect2); + } + effect2.deps[effect2._depsLength++] = dep; + } else { + effect2._depsLength++; + } + if (false) { + (_a2 = effect2.onTrack) == null ? void 0 : _a2.call(effect2, extend$1({ effect: effect2 }, debuggerEventExtraInfo)); + } + } +} +__name(trackEffect, "trackEffect"); +const queueEffectSchedulers = []; +function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) { + var _a2; + pauseScheduling(); + for (const effect2 of dep.keys()) { + let tracking; + if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) { + effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0); + effect2._dirtyLevel = dirtyLevel; + } + if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) { + if (false) { + (_a2 = effect2.onTrigger) == null ? void 0 : _a2.call(effect2, extend$1({ effect: effect2 }, debuggerEventExtraInfo)); + } + effect2.trigger(); + if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) { + effect2._shouldSchedule = false; + if (effect2.scheduler) { + queueEffectSchedulers.push(effect2.scheduler); + } + } + } + } + resetScheduling(); +} +__name(triggerEffects, "triggerEffects"); +const createDep = /* @__PURE__ */ __name((cleanup, computed2) => { + const dep = /* @__PURE__ */ new Map(); + dep.cleanup = cleanup; + dep.computed = computed2; + return dep; +}, "createDep"); +const targetMap = /* @__PURE__ */ new WeakMap(); +const ITERATE_KEY = Symbol(false ? "iterate" : ""); +const MAP_KEY_ITERATE_KEY = Symbol(false ? "Map key iterate" : ""); +function track(target, type, key) { + if (shouldTrack && activeEffect) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = createDep(() => depsMap.delete(key))); + } + trackEffect( + activeEffect, + dep, + false ? { + target, + type, + key + } : void 0 + ); + } +} +__name(track, "track"); +function trigger(target, type, key, newValue2, oldValue2, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + return; + } + let deps = []; + if (type === "clear") { + deps = [...depsMap.values()]; + } else if (key === "length" && isArray$4(target)) { + const newLength = Number(newValue2); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || !isSymbol$1(key2) && key2 >= newLength) { + deps.push(dep); + } + }); + } else { + if (key !== void 0) { + deps.push(depsMap.get(key)); + } + switch (type) { + case "add": + if (!isArray$4(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isIntegerKey(key)) { + deps.push(depsMap.get("length")); + } + break; + case "delete": + if (!isArray$4(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + } + break; + } + } + pauseScheduling(); + for (const dep of deps) { + if (dep) { + triggerEffects( + dep, + 4, + false ? { + target, + type, + key, + newValue: newValue2, + oldValue: oldValue2, + oldTarget + } : void 0 + ); + } + } + resetScheduling(); +} +__name(trigger, "trigger"); +function getDepFromReactive(object, key) { + const depsMap = targetMap.get(object); + return depsMap && depsMap.get(key); +} +__name(getDepFromReactive, "getDepFromReactive"); +const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); +const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol$1) +); +const arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations(); +function createArrayInstrumentations() { + const instrumentations = {}; + ["includes", "indexOf", "lastIndexOf"].forEach((key) => { + instrumentations[key] = function(...args) { + const arr = toRaw(this); + for (let i2 = 0, l = this.length; i2 < l; i2++) { + track(arr, "get", i2 + ""); + } + const res = arr[key](...args); + if (res === -1 || res === false) { + return arr[key](...args.map(toRaw)); + } else { + return res; + } + }; + }); + ["push", "pop", "shift", "unshift", "splice"].forEach((key) => { + instrumentations[key] = function(...args) { + pauseTracking(); + pauseScheduling(); + const res = toRaw(this)[key].apply(this, args); + resetScheduling(); + resetTracking(); + return res; + }; + }); + return instrumentations; +} +__name(createArrayInstrumentations, "createArrayInstrumentations"); +function hasOwnProperty$2(key) { + if (!isSymbol$1(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +__name(hasOwnProperty$2, "hasOwnProperty$2"); +class BaseReactiveHandler { + static { + __name(this, "BaseReactiveHandler"); + } + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the reciever is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray$4(target); + if (!isReadonly2) { + if (targetIsArray && hasOwn$3(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + if (key === "hasOwnProperty") { + return hasOwnProperty$2; + } + } + const res = Reflect.get(target, key, receiver); + if (isSymbol$1(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + return targetIsArray && isIntegerKey(key) ? res : res.value; + } + if (isObject$6(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } +} +class MutableReactiveHandler extends BaseReactiveHandler { + static { + __name(this, "MutableReactiveHandler"); + } + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value4, receiver) { + let oldValue2 = target[key]; + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue2); + if (!isShallow(value4) && !isReadonly(value4)) { + oldValue2 = toRaw(oldValue2); + value4 = toRaw(value4); + } + if (!isArray$4(target) && isRef(oldValue2) && !isRef(value4)) { + if (isOldValueReadonly) { + return false; + } else { + oldValue2.value = value4; + return true; + } + } + } + const hadKey = isArray$4(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn$3(target, key); + const result = Reflect.set(target, key, value4, receiver); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value4); + } else if (hasChanged(value4, oldValue2)) { + trigger(target, "set", key, value4, oldValue2); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn$3(target, key); + const oldValue2 = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue2); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol$1(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray$4(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } +} +class ReadonlyReactiveHandler extends BaseReactiveHandler { + static { + __name(this, "ReadonlyReactiveHandler"); + } + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + if (false) { + warn$4( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + if (false) { + warn$4( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } +} +const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); +const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); +const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler( + true +); +const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); +const toShallow = /* @__PURE__ */ __name((value4) => value4, "toShallow"); +const getProto = /* @__PURE__ */ __name((v2) => Reflect.getPrototypeOf(v2), "getProto"); +function get$3(target, key, isReadonly2 = false, isShallow2 = false) { + target = target["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has: has2 } = getProto(rawTarget); + const wrap2 = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive$1; + if (has2.call(rawTarget, key)) { + return wrap2(target.get(key)); + } else if (has2.call(rawTarget, rawKey)) { + return wrap2(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } +} +__name(get$3, "get$3"); +function has$1(key, isReadonly2 = false) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); +} +__name(has$1, "has$1"); +function size(target, isReadonly2 = false) { + target = target["__v_raw"]; + !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY); + return Reflect.get(target, "size", target); +} +__name(size, "size"); +function add$1(value4) { + value4 = toRaw(value4); + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value4); + if (!hadKey) { + target.add(value4); + trigger(target, "add", value4, value4); + } + return this; +} +__name(add$1, "add$1"); +function set$4(key, value4) { + value4 = toRaw(value4); + const target = toRaw(this); + const { has: has2, get: get22 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else if (false) { + checkIdentityKeys(target, has2, key); + } + const oldValue2 = get22.call(target, key); + target.set(key, value4); + if (!hadKey) { + trigger(target, "add", key, value4); + } else if (hasChanged(value4, oldValue2)) { + trigger(target, "set", key, value4, oldValue2); + } + return this; +} +__name(set$4, "set$4"); +function deleteEntry(key) { + const target = toRaw(this); + const { has: has2, get: get22 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else if (false) { + checkIdentityKeys(target, has2, key); + } + const oldValue2 = get22 ? get22.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue2); + } + return result; +} +__name(deleteEntry, "deleteEntry"); +function clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = false ? isMap(target) ? new Map(target) : new Set(target) : void 0; + const result = target.clear(); + if (hadItems) { + trigger(target, "clear", void 0, void 0, oldTarget); + } + return result; +} +__name(clear, "clear"); +function createForEach(isReadonly2, isShallow2) { + return /* @__PURE__ */ __name(function forEach3(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap2 = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive$1; + !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value4, key) => { + return callback.call(thisArg, wrap2(value4), wrap2(key), observed); + }); + }, "forEach"); +} +__name(createForEach, "createForEach"); +function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap2 = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive$1; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return { + // iterator protocol + next() { + const { value: value4, done } = innerIterator.next(); + return done ? { value: value4, done } : { + value: isPair ? [wrap2(value4[0]), wrap2(value4[1])] : wrap2(value4), + done + }; + }, + // iterable protocol + [Symbol.iterator]() { + return this; + } + }; + }; +} +__name(createIterableMethod, "createIterableMethod"); +function createReadonlyMethod(type) { + return function(...args) { + if (false) { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn$4( + `${capitalize$1(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; +} +__name(createReadonlyMethod, "createReadonlyMethod"); +function createInstrumentations() { + const mutableInstrumentations2 = { + get(key) { + return get$3(this, key); + }, + get size() { + return size(this); + }, + has: has$1, + add: add$1, + set: set$4, + delete: deleteEntry, + clear, + forEach: createForEach(false, false) + }; + const shallowInstrumentations2 = { + get(key) { + return get$3(this, key, false, true); + }, + get size() { + return size(this); + }, + has: has$1, + add: add$1, + set: set$4, + delete: deleteEntry, + clear, + forEach: createForEach(false, true) + }; + const readonlyInstrumentations2 = { + get(key) { + return get$3(this, key, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has$1.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, false) + }; + const shallowReadonlyInstrumentations2 = { + get(key) { + return get$3(this, key, true, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has$1.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, true) + }; + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + mutableInstrumentations2[method] = createIterableMethod(method, false, false); + readonlyInstrumentations2[method] = createIterableMethod(method, true, false); + shallowInstrumentations2[method] = createIterableMethod(method, false, true); + shallowReadonlyInstrumentations2[method] = createIterableMethod( + method, + true, + true + ); + }); + return [ + mutableInstrumentations2, + readonlyInstrumentations2, + shallowInstrumentations2, + shallowReadonlyInstrumentations2 + ]; +} +__name(createInstrumentations, "createInstrumentations"); +const [ + mutableInstrumentations, + readonlyInstrumentations, + shallowInstrumentations, + shallowReadonlyInstrumentations +] = /* @__PURE__ */ createInstrumentations(); +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations; + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn$3(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +__name(createInstrumentationGetter, "createInstrumentationGetter"); +const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) +}; +const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) +}; +const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) +}; +const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has2, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has2.call(target, rawKey)) { + const type = toRawType(target); + warn$4( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } +} +__name(checkIdentityKeys, "checkIdentityKeys"); +const reactiveMap = /* @__PURE__ */ new WeakMap(); +const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +const readonlyMap = /* @__PURE__ */ new WeakMap(); +const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2; + default: + return 0; + } +} +__name(targetTypeMap, "targetTypeMap"); +function getTargetType(value4) { + return value4["__v_skip"] || !Object.isExtensible(value4) ? 0 : targetTypeMap(toRawType(value4)); +} +__name(getTargetType, "getTargetType"); +function reactive(target) { + if (isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +__name(reactive, "reactive"); +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +__name(shallowReactive, "shallowReactive"); +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +__name(readonly, "readonly"); +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +__name(shallowReadonly, "shallowReadonly"); +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject$6(target)) { + if (false) { + warn$4( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const targetType = getTargetType(target); + if (targetType === 0) { + return target; + } + const proxy = new Proxy( + target, + targetType === 2 ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +__name(createReactiveObject, "createReactiveObject"); +function isReactive(value4) { + if (isReadonly(value4)) { + return isReactive(value4["__v_raw"]); + } + return !!(value4 && value4["__v_isReactive"]); +} +__name(isReactive, "isReactive"); +function isReadonly(value4) { + return !!(value4 && value4["__v_isReadonly"]); +} +__name(isReadonly, "isReadonly"); +function isShallow(value4) { + return !!(value4 && value4["__v_isShallow"]); +} +__name(isShallow, "isShallow"); +function isProxy(value4) { + return value4 ? !!value4["__v_raw"] : false; +} +__name(isProxy, "isProxy"); +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? toRaw(raw) : observed; +} +__name(toRaw, "toRaw"); +function markRaw(value4) { + if (Object.isExtensible(value4)) { + def(value4, "__v_skip", true); + } + return value4; +} +__name(markRaw, "markRaw"); +const toReactive$1 = /* @__PURE__ */ __name((value4) => isObject$6(value4) ? reactive(value4) : value4, "toReactive$1"); +const toReadonly = /* @__PURE__ */ __name((value4) => isObject$6(value4) ? readonly(value4) : value4, "toReadonly"); +const COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`; +class ComputedRefImpl { + static { + __name(this, "ComputedRefImpl"); + } + constructor(getter, _setter, isReadonly2, isSSR) { + this.getter = getter; + this._setter = _setter; + this.dep = void 0; + this.__v_isRef = true; + this["__v_isReadonly"] = false; + this.effect = new ReactiveEffect( + () => getter(this._value), + () => triggerRefValue( + this, + this.effect._dirtyLevel === 2 ? 2 : 3 + ) + ); + this.effect.computed = this; + this.effect.active = this._cacheable = !isSSR; + this["__v_isReadonly"] = isReadonly2; + } + get value() { + const self2 = toRaw(this); + if ((!self2._cacheable || self2.effect.dirty) && hasChanged(self2._value, self2._value = self2.effect.run())) { + triggerRefValue(self2, 4); + } + trackRefValue(self2); + if (self2.effect._dirtyLevel >= 2) { + if (false) { + warn$4(COMPUTED_SIDE_EFFECT_WARN, ` + +getter: `, this.getter); + } + triggerRefValue(self2, 2); + } + return self2._value; + } + set value(newValue2) { + this._setter(newValue2); + } + // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x + get _dirty() { + return this.effect.dirty; + } + set _dirty(v2) { + this.effect.dirty = v2; + } + // #endregion +} +function computed$1(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + const onlyGetter = isFunction$4(getterOrOptions); + if (onlyGetter) { + getter = getterOrOptions; + setter = false ? () => { + warn$4("Write operation failed: computed value is readonly"); + } : NOOP; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR); + if (false) { + cRef.effect.onTrack = debugOptions.onTrack; + cRef.effect.onTrigger = debugOptions.onTrigger; + } + return cRef; +} +__name(computed$1, "computed$1"); +function trackRefValue(ref2) { + var _a2; + if (shouldTrack && activeEffect) { + ref2 = toRaw(ref2); + trackEffect( + activeEffect, + (_a2 = ref2.dep) != null ? _a2 : ref2.dep = createDep( + () => ref2.dep = void 0, + ref2 instanceof ComputedRefImpl ? ref2 : void 0 + ), + false ? { + target: ref2, + type: "get", + key: "value" + } : void 0 + ); + } +} +__name(trackRefValue, "trackRefValue"); +function triggerRefValue(ref2, dirtyLevel = 4, newVal, oldVal) { + ref2 = toRaw(ref2); + const dep = ref2.dep; + if (dep) { + triggerEffects( + dep, + dirtyLevel, + false ? { + target: ref2, + type: "set", + key: "value", + newValue: newVal, + oldValue: oldVal + } : void 0 + ); + } +} +__name(triggerRefValue, "triggerRefValue"); +function isRef(r) { + return !!(r && r.__v_isRef === true); +} +__name(isRef, "isRef"); +function ref(value4) { + return createRef(value4, false); +} +__name(ref, "ref"); +function shallowRef(value4) { + return createRef(value4, true); +} +__name(shallowRef, "shallowRef"); +function createRef(rawValue, shallow) { + if (isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +__name(createRef, "createRef"); +class RefImpl { + static { + __name(this, "RefImpl"); + } + constructor(value4, __v_isShallow) { + this.__v_isShallow = __v_isShallow; + this.dep = void 0; + this.__v_isRef = true; + this._rawValue = __v_isShallow ? value4 : toRaw(value4); + this._value = __v_isShallow ? value4 : toReactive$1(value4); + } + get value() { + trackRefValue(this); + return this._value; + } + set value(newVal) { + const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal); + newVal = useDirectValue ? newVal : toRaw(newVal); + if (hasChanged(newVal, this._rawValue)) { + const oldVal = this._rawValue; + this._rawValue = newVal; + this._value = useDirectValue ? newVal : toReactive$1(newVal); + triggerRefValue(this, 4, newVal, oldVal); + } + } +} +function triggerRef(ref2) { + triggerRefValue(ref2, 4, false ? ref2.value : void 0); +} +__name(triggerRef, "triggerRef"); +function unref(ref2) { + return isRef(ref2) ? ref2.value : ref2; +} +__name(unref, "unref"); +function toValue$1(source) { + return isFunction$4(source) ? source() : unref(source); +} +__name(toValue$1, "toValue$1"); +const shallowUnwrapHandlers = { + get: /* @__PURE__ */ __name((target, key, receiver) => unref(Reflect.get(target, key, receiver)), "get"), + set: /* @__PURE__ */ __name((target, key, value4, receiver) => { + const oldValue2 = target[key]; + if (isRef(oldValue2) && !isRef(value4)) { + oldValue2.value = value4; + return true; + } else { + return Reflect.set(target, key, value4, receiver); + } + }, "set") +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +__name(proxyRefs, "proxyRefs"); +class CustomRefImpl { + static { + __name(this, "CustomRefImpl"); + } + constructor(factory) { + this.dep = void 0; + this.__v_isRef = true; + const { get: get22, set: set22 } = factory( + () => trackRefValue(this), + () => triggerRefValue(this) + ); + this._get = get22; + this._set = set22; + } + get value() { + return this._get(); + } + set value(newVal) { + this._set(newVal); + } +} +function customRef(factory) { + return new CustomRefImpl(factory); +} +__name(customRef, "customRef"); +function toRefs$1(object) { + if (false) { + warn$4(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray$4(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; +} +__name(toRefs$1, "toRefs$1"); +class ObjectRefImpl { + static { + __name(this, "ObjectRefImpl"); + } + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this.__v_isRef = true; + } + get value() { + const val = this._object[this._key]; + return val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(toRaw(this._object), this._key); + } +} +class GetterRefImpl { + static { + __name(this, "GetterRefImpl"); + } + constructor(_getter) { + this._getter = _getter; + this.__v_isRef = true; + this.__v_isReadonly = true; + } + get value() { + return this._getter(); + } +} +function toRef$1(source, key, defaultValue) { + if (isRef(source)) { + return source; + } else if (isFunction$4(source)) { + return new GetterRefImpl(source); + } else if (isObject$6(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return ref(source); + } +} +__name(toRef$1, "toRef$1"); +function propertyToRef(source, key, defaultValue) { + const val = source[key]; + return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue); +} +__name(propertyToRef, "propertyToRef"); +const deferredComputed = computed$1; +const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" +}; +const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" +}; +const ReactiveFlags = { + "SKIP": "__v_skip", + "IS_REACTIVE": "__v_isReactive", + "IS_READONLY": "__v_isReadonly", + "IS_SHALLOW": "__v_isShallow", + "RAW": "__v_raw" +}; +/** +* @vue/runtime-core v3.4.31 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +const stack = []; +function pushWarningContext(vnode) { + stack.push(vnode); +} +__name(pushWarningContext, "pushWarningContext"); +function popWarningContext() { + stack.pop(); +} +__name(popWarningContext, "popWarningContext"); +function warn$1$1(msg, ...args) { + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a2, _b; + return (_b = (_a2 = a.toString) == null ? void 0 : _a2.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); +} +__name(warn$1$1, "warn$1$1"); +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +__name(getComponentTrace, "getComponentTrace"); +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i2) => { + logs.push(...i2 === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +__name(formatTrace, "formatTrace"); +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open2 = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close5 = `>` + postfix; + return vnode.props ? [open2, ...formatProps(vnode.props), close5] : [open2 + close5]; +} +__name(formatTraceEntry, "formatTraceEntry"); +function formatProps(props) { + const res = []; + const keys2 = Object.keys(props); + keys2.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys2.length > 3) { + res.push(` ...`); + } + return res; +} +__name(formatProps, "formatProps"); +function formatProp(key, value4, raw) { + if (isString$7(value4)) { + value4 = JSON.stringify(value4); + return raw ? value4 : [`${key}=${value4}`]; + } else if (typeof value4 === "number" || typeof value4 === "boolean" || value4 == null) { + return raw ? value4 : [`${key}=${value4}`]; + } else if (isRef(value4)) { + value4 = formatProp(key, toRaw(value4.value), true); + return raw ? value4 : [`${key}=Ref<`, value4, `>`]; + } else if (isFunction$4(value4)) { + return [`${key}=fn${value4.name ? `<${value4.name}>` : ``}`]; + } else { + value4 = toRaw(value4); + return raw ? value4 : [`${key}=`, value4]; + } +} +__name(formatProp, "formatProp"); +function assertNumber(val, type) { + if (true) return; + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn$1$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn$1$1(`${type} is NaN - the duration expression might be incorrect.`); + } +} +__name(assertNumber, "assertNumber"); +const ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "WATCH_GETTER": 2, + "2": "WATCH_GETTER", + "WATCH_CALLBACK": 3, + "3": "WATCH_CALLBACK", + "WATCH_CLEANUP": 4, + "4": "WATCH_CLEANUP", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER" +}; +const ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ." +}; +function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } +} +__name(callWithErrorHandling, "callWithErrorHandling"); +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction$4(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise$1(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (isArray$4(fn)) { + const values = []; + for (let i2 = 0; i2 < fn.length; i2++) { + values.push(callWithAsyncErrorHandling(fn[i2], instance, type, args)); + } + return values; + } else if (false) { + warn$1$1( + `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` + ); + } +} +__name(callWithAsyncErrorHandling, "callWithAsyncErrorHandling"); +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = false ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i2 = 0; i2 < errorCapturedHooks.length; i2++) { + if (errorCapturedHooks[i2](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + const appErrorHandler = instance.appContext.config.errorHandler; + if (appErrorHandler) { + pauseTracking(); + callWithErrorHandling( + appErrorHandler, + null, + 10, + [err, exposedInstance, errorInfo] + ); + resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev); +} +__name(handleError, "handleError"); +function logError(err, type, contextVNode, throwInDev = true) { + if (false) { + const info = ErrorTypeStrings$1[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn$1$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } else { + console.error(err); + } +} +__name(logError, "logError"); +let isFlushing = false; +let isFlushPending = false; +const queue = []; +let flushIndex = 0; +const pendingPostFlushCbs = []; +let activePostFlushCbs = null; +let postFlushIndex = 0; +const resolvedPromise = /* @__PURE__ */ Promise.resolve(); +let currentFlushPromise = null; +const RECURSION_LIMIT = 100; +function nextTick(fn) { + const p2 = currentFlushPromise || resolvedPromise; + return fn ? p2.then(this ? fn.bind(this) : fn) : p2; +} +__name(nextTick, "nextTick"); +function findInsertionIndex$1(id3) { + let start2 = flushIndex + 1; + let end = queue.length; + while (start2 < end) { + const middle = start2 + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id3 || middleJobId === id3 && middleJob.pre) { + start2 = middle + 1; + } else { + end = middle; + } + } + return start2; +} +__name(findInsertionIndex$1, "findInsertionIndex$1"); +function queueJob(job) { + if (!queue.length || !queue.includes( + job, + isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex + )) { + if (job.id == null) { + queue.push(job); + } else { + queue.splice(findInsertionIndex$1(job.id), 0, job); + } + queueFlush(); + } +} +__name(queueJob, "queueJob"); +function queueFlush() { + if (!isFlushing && !isFlushPending) { + isFlushPending = true; + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +__name(queueFlush, "queueFlush"); +function invalidateJob(job) { + const i2 = queue.indexOf(job); + if (i2 > flushIndex) { + queue.splice(i2, 1); + } +} +__name(invalidateJob, "invalidateJob"); +function queuePostFlushCb(cb) { + if (!isArray$4(cb)) { + if (!activePostFlushCbs || !activePostFlushCbs.includes( + cb, + cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex + )) { + pendingPostFlushCbs.push(cb); + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +__name(queuePostFlushCb, "queuePostFlushCb"); +function flushPreFlushCbs(instance, seen2, i2 = isFlushing ? flushIndex + 1 : 0) { + if (false) { + seen2 = seen2 || /* @__PURE__ */ new Map(); + } + for (; i2 < queue.length; i2++) { + const cb = queue[i2]; + if (cb && cb.pre) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (false) { + continue; + } + queue.splice(i2, 1); + i2--; + cb(); + } + } +} +__name(flushPreFlushCbs, "flushPreFlushCbs"); +function flushPostFlushCbs(seen2) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + if (false) { + seen2 = seen2 || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (false) { + continue; + } + if (cb.active !== false) cb(); + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +__name(flushPostFlushCbs, "flushPostFlushCbs"); +const getId = /* @__PURE__ */ __name((job) => job.id == null ? Infinity : job.id, "getId"); +const comparator = /* @__PURE__ */ __name((a, b) => { + const diff2 = getId(a) - getId(b); + if (diff2 === 0) { + if (a.pre && !b.pre) return -1; + if (b.pre && !a.pre) return 1; + } + return diff2; +}, "comparator"); +function flushJobs(seen2) { + isFlushPending = false; + isFlushing = true; + if (false) { + seen2 = seen2 || /* @__PURE__ */ new Map(); + } + queue.sort(comparator); + const check = false ? (job) => checkRecursiveUpdates(seen2, job) : NOOP; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && job.active !== false) { + if (false) { + continue; + } + callWithErrorHandling(job, null, 14); + } + } + } finally { + flushIndex = 0; + queue.length = 0; + flushPostFlushCbs(seen2); + isFlushing = false; + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen2); + } + } +} +__name(flushJobs, "flushJobs"); +function checkRecursiveUpdates(seen2, fn) { + if (!seen2.has(fn)) { + seen2.set(fn, 1); + } else { + const count = seen2.get(fn); + if (count > RECURSION_LIMIT) { + const instance = fn.ownerInstance; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } else { + seen2.set(fn, count + 1); + } + } +} +__name(checkRecursiveUpdates, "checkRecursiveUpdates"); +let isHmrUpdating = false; +const hmrDirtyComponents = /* @__PURE__ */ new Set(); +if (false) { + getGlobalThis$1().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; +} +const map$1 = /* @__PURE__ */ new Map(); +function registerHMR(instance) { + const id3 = instance.type.__hmrId; + let record = map$1.get(id3); + if (!record) { + createRecord(id3, instance.type); + record = map$1.get(id3); + } + record.instances.add(instance); +} +__name(registerHMR, "registerHMR"); +function unregisterHMR(instance) { + map$1.get(instance.type.__hmrId).instances.delete(instance); +} +__name(unregisterHMR, "unregisterHMR"); +function createRecord(id3, initialDef) { + if (map$1.has(id3)) { + return false; + } + map$1.set(id3, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; +} +__name(createRecord, "createRecord"); +function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; +} +__name(normalizeClassComponent, "normalizeClassComponent"); +function rerender(id3, newRender) { + const record = map$1.get(id3); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + instance.effect.dirty = true; + instance.update(); + isHmrUpdating = false; + }); +} +__name(rerender, "rerender"); +function reload(id3, newComp) { + const record = map$1.get(id3); + if (!record) return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (const instance of instances) { + const oldComp = normalizeClassComponent(instance.type); + if (!hmrDirtyComponents.has(oldComp)) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.add(oldComp); + } + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + hmrDirtyComponents.add(oldComp); + instance.ceReload(newComp.styles); + hmrDirtyComponents.delete(oldComp); + } else if (instance.parent) { + instance.parent.effect.dirty = true; + queueJob(() => { + instance.parent.update(); + hmrDirtyComponents.delete(oldComp); + }); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + } + queuePostFlushCb(() => { + for (const instance of instances) { + hmrDirtyComponents.delete( + normalizeClassComponent(instance.type) + ); + } + }); +} +__name(reload, "reload"); +function updateComponentDef(oldComp, newComp) { + extend$1(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } +} +__name(updateComponentDef, "updateComponentDef"); +function tryWrap(fn) { + return (id3, arg) => { + try { + return fn(id3, arg); + } catch (e2) { + console.error(e2); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; +} +__name(tryWrap, "tryWrap"); +let devtools$1; +let buffer = []; +let devtoolsNotInstalled = false; +function emit$1(event, ...args) { + if (devtools$1) { + devtools$1.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } +} +__name(emit$1, "emit$1"); +function setDevtoolsHook$1(hook, target) { + var _a2, _b; + devtools$1 = hook; + if (devtools$1) { + devtools$1.enabled = true; + buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a2 = window.navigator) == null ? void 0 : _a2.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook$1(newHook, target); + }); + setTimeout(() => { + if (!devtools$1) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } +} +__name(setDevtoolsHook$1, "setDevtoolsHook$1"); +function devtoolsInitApp(app2, version2) { + emit$1("app:init", app2, version2, { + Fragment: Fragment$1, + Text: Text$4, + Comment, + Static + }); +} +__name(devtoolsInitApp, "devtoolsInitApp"); +function devtoolsUnmountApp(app2) { + emit$1("app:unmount", app2); +} +__name(devtoolsUnmountApp, "devtoolsUnmountApp"); +const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook( + "component:added" + /* COMPONENT_ADDED */ +); +const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook( + "component:updated" + /* COMPONENT_UPDATED */ +); +const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" + /* COMPONENT_REMOVED */ +); +const devtoolsComponentRemoved = /* @__PURE__ */ __name((component) => { + if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools$1.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } +}, "devtoolsComponentRemoved"); +/*! #__NO_SIDE_EFFECTS__ */ +// @__NO_SIDE_EFFECTS__ +function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; +} +__name(createDevtoolsComponentHook, "createDevtoolsComponentHook"); +const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook( + "perf:start" + /* PERFORMANCE_START */ +); +const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook( + "perf:end" + /* PERFORMANCE_END */ +); +function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; +} +__name(createDevtoolsPerformanceHook, "createDevtoolsPerformanceHook"); +function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit", + component.appContext.app, + component, + event, + params + ); +} +__name(devtoolsComponentEmit, "devtoolsComponentEmit"); +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) return; + const props = instance.vnode.props || EMPTY_OBJ; + if (false) { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(event) in propsOptions)) { + warn$1$1( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.` + ); + } + } else { + const validator3 = emitsOptions[event]; + if (isFunction$4(validator3)) { + const isValid2 = validator3(...rawArgs); + if (!isValid2) { + warn$1$1( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener2 = event.startsWith("update:"); + const modelArg = isModelListener2 && event.slice(7); + if (modelArg && modelArg in props) { + const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`; + const { number: number2, trim: trim2 } = props[modifiersKey] || EMPTY_OBJ; + if (trim2) { + args = rawArgs.map((a) => isString$7(a) ? a.trim() : a); + } + if (number2) { + args = rawArgs.map(looseToNumber); + } + } + if (false) { + devtoolsComponentEmit(instance, event, args); + } + if (false) { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn$1$1( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate$1( + event + )}" instead of "${event}".` + ); + } + } + let handlerName; + let handler6 = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize$1(event))]; + if (!handler6 && isModelListener2) { + handler6 = props[handlerName = toHandlerKey(hyphenate$1(event))]; + } + if (handler6) { + callWithAsyncErrorHandling( + handler6, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } +} +__name(emit, "emit"); +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache2 = appContext.emitsCache; + const cached = cache2.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (!isFunction$4(comp)) { + const extendEmits = /* @__PURE__ */ __name((raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend$1(normalized, normalizedFromExtend); + } + }, "extendEmits"); + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject$6(comp)) { + cache2.set(comp, null); + } + return null; + } + if (isArray$4(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend$1(normalized, raw); + } + if (isObject$6(comp)) { + cache2.set(comp, normalized); + } + return normalized; +} +__name(normalizeEmitsOptions, "normalizeEmitsOptions"); +function isEmitListener(options4, key) { + if (!options4 || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn$3(options4, key[0].toLowerCase() + key.slice(1)) || hasOwn$3(options4, hyphenate$1(key)) || hasOwn$3(options4, key); +} +__name(isEmitListener, "isEmitListener"); +let currentRenderingInstance = null; +let currentScopeId = null; +function setCurrentRenderingInstance(instance) { + const prev2 = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev2; +} +__name(setCurrentRenderingInstance, "setCurrentRenderingInstance"); +function pushScopeId(id3) { + currentScopeId = id3; +} +__name(pushScopeId, "pushScopeId"); +function popScopeId() { + currentScopeId = null; +} +__name(popScopeId, "popScopeId"); +const withScopeId = /* @__PURE__ */ __name((_id2) => withCtx, "withScopeId"); +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = /* @__PURE__ */ __name((...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + if (false) { + devtoolsComponentUpdated(ctx); + } + return res; + }, "renderFnWithContext"); + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} +__name(withCtx, "withCtx"); +let accessedAttrs = false; +function markAttrsAccessed() { + accessedAttrs = true; +} +__name(markAttrsAccessed, "markAttrsAccessed"); +function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + propsOptions: [propsOptions], + slots, + attrs: attrs4, + emit: emit2, + render: render2, + renderCache, + props, + data: data24, + setupState, + ctx, + inheritAttrs + } = instance; + const prev2 = setCurrentRenderingInstance(instance); + let result; + let fallthroughAttrs; + if (false) { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = false ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn$1$1( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode( + render2.call( + thisProxy, + proxyToUse, + renderCache, + false ? shallowReadonly(props) : props, + setupState, + data24, + ctx + ) + ); + fallthroughAttrs = attrs4; + } else { + const render22 = Component; + if (false) { + markAttrsAccessed(); + } + result = normalizeVNode( + render22.length > 1 ? render22( + false ? shallowReadonly(props) : props, + false ? { + get attrs() { + markAttrsAccessed(); + return shallowReadonly(attrs4); + }, + slots, + emit: emit2 + } : { attrs: attrs4, slots, emit: emit2 } + ) : render22( + false ? shallowReadonly(props) : props, + null + ) + ); + fallthroughAttrs = Component.props ? attrs4 : getFunctionalFallthrough(attrs4); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root24 = result; + let setRoot = void 0; + if (false) { + [root24, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys2 = Object.keys(fallthroughAttrs); + const { shapeFlag } = root24; + if (keys2.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys2.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root24 = cloneVNode(root24, fallthroughAttrs, false, true); + } else if (false) { + const allAttrs = Object.keys(attrs4); + const eventAttrs = []; + const extraAttrs = []; + for (let i2 = 0, l = allAttrs.length; i2 < l; i2++) { + const key = allAttrs[i2]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn$1$1( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.` + ); + } + if (eventAttrs.length) { + warn$1$1( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (false) { + warn$1$1( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root24 = cloneVNode(root24, null, false, true); + root24.dirs = root24.dirs ? root24.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (false) { + warn$1$1( + `Component inside renders non-element root node that cannot be animated.` + ); + } + root24.transition = vnode.transition; + } + if (false) { + setRoot(root24); + } else { + result = root24; + } + setCurrentRenderingInstance(prev2); + return result; +} +__name(renderComponentRoot, "renderComponentRoot"); +const getChildRoot = /* @__PURE__ */ __name((vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren, false); + if (!childRoot) { + return [vnode, void 0]; + } else if (false) { + return getChildRoot(childRoot); + } + const index2 = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = /* @__PURE__ */ __name((updatedRoot) => { + rawChildren[index2] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }, "setRoot"); + return [normalizeVNode(childRoot), setRoot]; +}, "getChildRoot"); +function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i2 = 0; i2 < children.length; i2++) { + const child = children[i2]; + if (isVNode$1(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + if (false) { + return filterSingleRoot(singleRoot.children); + } + } + } + } else { + return; + } + } + return singleRoot; +} +__name(filterSingleRoot, "filterSingleRoot"); +const getFunctionalFallthrough = /* @__PURE__ */ __name((attrs4) => { + let res; + for (const key in attrs4) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs4[key]; + } + } + return res; +}, "getFunctionalFallthrough"); +const filterModelListeners = /* @__PURE__ */ __name((attrs4, props) => { + const res = {}; + for (const key in attrs4) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs4[key]; + } + } + return res; +}, "filterModelListeners"); +const isElementRoot = /* @__PURE__ */ __name((vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; +}, "isElementRoot"); +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if (false) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i2 = 0; i2 < dynamicProps.length; i2++) { + const key = dynamicProps[i2]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +__name(shouldUpdateComponent, "shouldUpdateComponent"); +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i2 = 0; i2 < nextKeys.length; i2++) { + const key = nextKeys[i2]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +__name(hasPropsChanged, "hasPropsChanged"); +function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root24 = parent.subTree; + if (root24.suspense && root24.suspense.activeBranch === vnode) { + root24.el = vnode.el; + } + if (root24 === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } +} +__name(updateHOCHostEl, "updateHOCHostEl"); +const COMPONENTS = "components"; +const DIRECTIVES = "directives"; +function resolveComponent(name2, maybeSelfReference) { + return resolveAsset(COMPONENTS, name2, true, maybeSelfReference) || name2; +} +__name(resolveComponent, "resolveComponent"); +const NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); +function resolveDynamicComponent(component) { + if (isString$7(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } +} +__name(resolveDynamicComponent, "resolveDynamicComponent"); +function resolveDirective(name2) { + return resolveAsset(DIRECTIVES, name2); +} +__name(resolveDirective, "resolveDirective"); +function resolveAsset(type, name2, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name2 || selfName === camelize$1(name2) || selfName === capitalize$1(camelize$1(name2)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name2) || // global registration + resolve(instance.appContext[type], name2) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (false) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn$1$1(`Failed to resolve ${type.slice(0, -1)}: ${name2}${extra}`); + } + return res; + } else if (false) { + warn$1$1( + `resolve${capitalize$1(type.slice(0, -1))} can only be used in render() or setup().` + ); + } +} +__name(resolveAsset, "resolveAsset"); +function resolve(registry, name2) { + return registry && (registry[name2] || registry[camelize$1(name2)] || registry[capitalize$1(camelize$1(name2))]); +} +__name(resolve, "resolve"); +const isSuspense = /* @__PURE__ */ __name((type) => type.__isSuspense, "isSuspense"); +let suspenseId = 0; +const SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) { + n2.suspense = n1.suspense; + n2.suspense.vnode = n2; + n2.el = n1.el; + return; + } + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + normalize: normalizeSuspenseChildren +}; +const Suspense = SuspenseImpl; +function triggerEvent(vnode, name2) { + const eventListener = vnode.props && vnode.props[name2]; + if (isFunction$4(eventListener)) { + eventListener(); + } +} +__name(triggerEvent, "triggerEvent"); +function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + const { + p: patch2, + o: { createElement: createElement2 } + } = rendererInternals; + const hiddenContainer = createElement2("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + patch2( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch2( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } +} +__name(mountSuspense, "mountSuspense"); +function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch2, um: unmount, o: { createElement: createElement2 } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(newBranch, pendingBranch)) { + patch2( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + if (!isHydrating) { + patch2( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } + } else { + suspense.pendingId = suspenseId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement2("div"); + if (isInFallback) { + patch2( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch2( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch2( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch2( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch2( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + if (newBranch.shapeFlag & 512) { + suspense.pendingId = newBranch.component.suspenseId; + } else { + suspense.pendingId = suspenseId++; + } + patch2( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } +} +__name(patchSuspense, "patchSuspense"); +let hasWarned$1 = false; +function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (false) { + hasWarned$1 = true; + console[console.info ? "info" : "log"]( + ` is an experimental feature and its API will likely change.` + ); + } + const { + p: patch2, + m: move, + um: unmount, + n: next2, + o: { parentNode: parentNode2, remove: remove22 } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + if (false) { + assertNumber(timeout, `Suspense timeout`); + } + const initialAnchor = anchor; + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + namespace, + container, + hiddenContainer, + deps: 0, + pendingId: suspenseId++, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !isHydrating, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + if (false) { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2 + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor === initialAnchor ? next2(activeBranch) : anchor, + 0 + ); + queuePostFlushCb(effects); + } + }; + } + if (activeBranch) { + if (parentNode2(activeBranch.el) !== suspense.hiddenContainer) { + anchor = next2(activeBranch); + } + unmount(activeBranch, parentComponent2, suspense, true); + } + if (!delayEnter) { + move(pendingBranch, container2, anchor, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next2(activeBranch); + const mountFallback = /* @__PURE__ */ __name(() => { + if (!suspense.isInFallback) { + return; + } + patch2( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + namespace2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }, "mountFallback"); + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next2(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect, optimized2) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + if (false) { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode2(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next2(instance.subTree), + suspense, + namespace, + optimized2 + ); + if (placeholder) { + remove22(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + if (false) { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; +} +__name(createSuspenseBoundary, "createSuspenseBoundary"); +function hydrateSuspense(node3, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node3.parentNode, + // eslint-disable-next-line no-restricted-globals + document.createElement("div"), + null, + namespace, + slotScopeIds, + optimized, + rendererInternals, + true + ); + const result = hydrateNode( + node3, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; +} +__name(hydrateSuspense, "hydrateSuspense"); +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); +} +__name(normalizeSuspenseChildren, "normalizeSuspenseChildren"); +function normalizeSuspenseSlot(s) { + let block3; + if (isFunction$4(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block3 = currentBlock; + closeBlock(); + } + } + if (isArray$4(s)) { + const singleChild = filterSingleRoot(s); + if (false) { + warn$1$1(` slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block3 && !s.dynamicChildren) { + s.dynamicChildren = block3.filter((c) => c !== s); + } + return s; +} +__name(normalizeSuspenseSlot, "normalizeSuspenseSlot"); +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray$4(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} +__name(queueEffectWithSuspense, "queueEffectWithSuspense"); +function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + let el = branch.el; + while (!el && branch.component) { + branch = branch.component.subTree; + el = branch.el; + } + vnode.el = el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } +} +__name(setActiveBranch, "setActiveBranch"); +function isVNodeSuspensible(vnode) { + const suspensible = vnode.props && vnode.props.suspensible; + return suspensible != null && suspensible !== false; +} +__name(isVNodeSuspensible, "isVNodeSuspensible"); +function injectHook(type, hook, target = currentInstance, prepend2 = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + pauseTracking(); + const reset2 = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset2(); + resetTracking(); + return res; + }); + if (prepend2) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else if (false) { + const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); + warn$1$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` + ); + } +} +__name(injectHook, "injectHook"); +const createHook = /* @__PURE__ */ __name((lifecycle2) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle2 === "sp") { + injectHook(lifecycle2, (...args) => hook(...args), target); + } +}, "createHook"); +const onBeforeMount = createHook("bm"); +const onMounted = createHook("m"); +const onBeforeUpdate = createHook("bu"); +const onUpdated = createHook("u"); +const onBeforeUnmount = createHook("bum"); +const onUnmounted = createHook("um"); +const onServerPrefetch = createHook("sp"); +const onRenderTriggered = createHook( + "rtg" +); +const onRenderTracked = createHook( + "rtc" +); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} +__name(onErrorCaptured, "onErrorCaptured"); +function validateDirectiveName(name2) { + if (isBuiltInDirective(name2)) { + warn$1$1("Do not use built-in directive ids as custom directive id: " + name2); + } +} +__name(validateDirectiveName, "validateDirectiveName"); +function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i2 = 0; i2 < directives.length; i2++) { + let [dir, value4, arg, modifiers2 = EMPTY_OBJ] = directives[i2]; + if (dir) { + if (isFunction$4(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value4); + } + bindings.push({ + dir, + instance, + value: value4, + oldValue: void 0, + arg, + modifiers: modifiers2 + }); + } + } + return vnode; +} +__name(withDirectives, "withDirectives"); +function invokeDirectiveHook(vnode, prevVNode, instance, name2) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i2 = 0; i2 < bindings.length; i2++) { + const binding = bindings[i2]; + if (oldBindings) { + binding.oldValue = oldBindings[i2].value; + } + let hook = binding.dir[name2]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } +} +__name(invokeDirectiveHook, "invokeDirectiveHook"); +function renderList(source, renderItem, cache2, index2) { + let ret; + const cached = cache2 && cache2[index2]; + if (isArray$4(source) || isString$7(source)) { + ret = new Array(source.length); + for (let i2 = 0, l = source.length; i2 < l; i2++) { + ret[i2] = renderItem(source[i2], i2, void 0, cached && cached[i2]); + } + } else if (typeof source === "number") { + if (false) { + warn$1$1(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i2 = 0; i2 < source; i2++) { + ret[i2] = renderItem(i2 + 1, i2, void 0, cached && cached[i2]); + } + } else if (isObject$6(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item3, i2) => renderItem(item3, i2, void 0, cached && cached[i2]) + ); + } else { + const keys2 = Object.keys(source); + ret = new Array(keys2.length); + for (let i2 = 0, l = keys2.length; i2 < l; i2++) { + const key = keys2[i2]; + ret[i2] = renderItem(source[key], key, i2, cached && cached[i2]); + } + } + } else { + ret = []; + } + if (cache2) { + cache2[index2] = ret; + } + return ret; +} +__name(renderList, "renderList"); +function createSlots(slots, dynamicSlots) { + for (let i2 = 0; i2 < dynamicSlots.length; i2++) { + const slot = dynamicSlots[i2]; + if (isArray$4(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; +} +__name(createSlots, "createSlots"); +/*! #__NO_SIDE_EFFECTS__ */ +// @__NO_SIDE_EFFECTS__ +function defineComponent(options4, extraOptions) { + return isFunction$4(options4) ? ( + // #8326: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => extend$1({ name: options4.name }, extraOptions, { setup: options4 }))() + ) : options4; +} +__name(defineComponent, "defineComponent"); +const isAsyncWrapper = /* @__PURE__ */ __name((i2) => !!i2.type.__asyncLoader, "isAsyncWrapper"); +/*! #__NO_SIDE_EFFECTS__ */ +// @__NO_SIDE_EFFECTS__ +function defineAsyncComponent(source) { + if (isFunction$4(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = /* @__PURE__ */ __name(() => { + retries++; + pendingRequest = null; + return load2(); + }, "retry"); + const load2 = /* @__PURE__ */ __name(() => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve2, reject3) => { + const userRetry = /* @__PURE__ */ __name(() => resolve2(retry()), "userRetry"); + const userFail = /* @__PURE__ */ __name(() => reject3(err), "userFail"); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (false) { + warn$1$1( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (false) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }, "load"); + return /* @__PURE__ */ defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load2, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = /* @__PURE__ */ __name((err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }, "onError"); + if (suspensible && instance.suspense || isInSSRComponentSetup) { + return load2().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error2 = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error2.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error2.value = err; + } + }, timeout); + } + load2().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.effect.dirty = true; + queueJob(instance.parent.update); + } + }).catch((err) => { + onError(err); + error2.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error2.value && errorComponent) { + return createVNode(errorComponent, { + error: error2.value + }); + } else if (loadingComponent && !delayed.value) { + return createVNode(loadingComponent); + } + }; + } + }); +} +__name(defineAsyncComponent, "defineAsyncComponent"); +function createInnerComp(comp, parent) { + const { ref: ref22, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref22; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; +} +__name(createInnerComp, "createInnerComp"); +function renderSlot(slots, name2, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) { + if (name2 !== "default") props.name = name2; + return createVNode("slot", props, fallback && fallback()); + } + let slot = slots[name2]; + if (false) { + warn$1$1( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = /* @__PURE__ */ __name(() => [], "slot"); + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const rendered = createBlock( + Fragment$1, + { + key: props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key || `_${name2}` + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; +} +__name(renderSlot, "renderSlot"); +function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode$1(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment$1 && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; +} +__name(ensureValidVNode, "ensureValidVNode"); +function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (false) { + warn$1$1(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; +} +__name(toHandlers, "toHandlers"); +const getPublicInstance = /* @__PURE__ */ __name((i2) => { + if (!i2) return null; + if (isStatefulComponent(i2)) return getComponentPublicInstance(i2); + return getPublicInstance(i2.parent); +}, "getPublicInstance"); +const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend$1(/* @__PURE__ */ Object.create(null), { + $: /* @__PURE__ */ __name((i2) => i2, "$"), + $el: /* @__PURE__ */ __name((i2) => i2.vnode.el, "$el"), + $data: /* @__PURE__ */ __name((i2) => i2.data, "$data"), + $props: /* @__PURE__ */ __name((i2) => false ? shallowReadonly(i2.props) : i2.props, "$props"), + $attrs: /* @__PURE__ */ __name((i2) => false ? shallowReadonly(i2.attrs) : i2.attrs, "$attrs"), + $slots: /* @__PURE__ */ __name((i2) => false ? shallowReadonly(i2.slots) : i2.slots, "$slots"), + $refs: /* @__PURE__ */ __name((i2) => false ? shallowReadonly(i2.refs) : i2.refs, "$refs"), + $parent: /* @__PURE__ */ __name((i2) => getPublicInstance(i2.parent), "$parent"), + $root: /* @__PURE__ */ __name((i2) => getPublicInstance(i2.root), "$root"), + $emit: /* @__PURE__ */ __name((i2) => i2.emit, "$emit"), + $options: /* @__PURE__ */ __name((i2) => true ? resolveMergedOptions(i2) : i2.type, "$options"), + $forceUpdate: /* @__PURE__ */ __name((i2) => i2.f || (i2.f = () => { + i2.effect.dirty = true; + queueJob(i2.update); + }), "$forceUpdate"), + $nextTick: /* @__PURE__ */ __name((i2) => i2.n || (i2.n = nextTick.bind(i2.proxy)), "$nextTick"), + $watch: /* @__PURE__ */ __name((i2) => true ? instanceWatch.bind(i2) : NOOP, "$watch") + }) +); +const isReservedPrefix = /* @__PURE__ */ __name((key) => key === "_" || key === "$", "isReservedPrefix"); +const hasSetupBinding = /* @__PURE__ */ __name((state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn$3(state, key), "hasSetupBinding"); +const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data: data24, props, accessCache, type, appContext } = instance; + if (false) { + return true; + } + let normalizedProps; + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1: + return setupState[key]; + case 2: + return data24[key]; + case 4: + return ctx[key]; + case 3: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1; + return setupState[key]; + } else if (data24 !== EMPTY_OBJ && hasOwn$3(data24, key)) { + accessCache[key] = 2; + return data24[key]; + } else if ( + // only cache other properties when instance has declared (thus stable) + // props + (normalizedProps = instance.propsOptions[0]) && hasOwn$3(normalizedProps, key) + ) { + accessCache[key] = 3; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn$3(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance.attrs, "get", ""); + } else if (false) { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn$3(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn$3(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (false) { + if (data24 !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn$3(data24, key)) { + warn$1$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value4) { + const { data: data24, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value4; + return true; + } else if (false) { + warn$1$1(`Cannot mutate \n\n\n\n\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'MinusIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M13.2222 7.77778H0.777778C0.571498 7.77778 0.373667 7.69584 0.227806 7.54998C0.0819442 7.40412 0 7.20629 0 7.00001C0 6.79373 0.0819442 6.5959 0.227806 6.45003C0.373667 6.30417 0.571498 6.22223 0.777778 6.22223H13.2222C13.4285 6.22223 13.6263 6.30417 13.7722 6.45003C13.9181 6.5959 14 6.79373 14 7.00001C14 7.20629 13.9181 7.40412 13.7722 7.54998C13.6263 7.69584 13.4285 7.77778 13.2222 7.77778Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-checkbox {\\n position: relative;\\n display: inline-flex;\\n user-select: none;\\n vertical-align: bottom;\\n width: \".concat(dt('checkbox.width'), \";\\n height: \").concat(dt('checkbox.height'), \";\\n}\\n\\n.p-checkbox-input {\\n cursor: pointer;\\n appearance: none;\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n padding: 0;\\n margin: 0;\\n opacity: 0;\\n z-index: 1;\\n outline: 0 none;\\n border: 1px solid transparent;\\n border-radius: \").concat(dt('checkbox.border.radius'), \";\\n}\\n\\n.p-checkbox-box {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n border-radius: \").concat(dt('checkbox.border.radius'), \";\\n border: 1px solid \").concat(dt('checkbox.border.color'), \";\\n background: \").concat(dt('checkbox.background'), \";\\n width: \").concat(dt('checkbox.width'), \";\\n height: \").concat(dt('checkbox.height'), \";\\n transition: background \").concat(dt('checkbox.transition.duration'), \", color \").concat(dt('checkbox.transition.duration'), \", border-color \").concat(dt('checkbox.transition.duration'), \", box-shadow \").concat(dt('checkbox.transition.duration'), \", outline-color \").concat(dt('checkbox.transition.duration'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('checkbox.shadow'), \";\\n}\\n\\n.p-checkbox-icon {\\n transition-duration: \").concat(dt('checkbox.transition.duration'), \";\\n color: \").concat(dt('checkbox.icon.color'), \";\\n font-size: \").concat(dt('checkbox.icon.size'), \";\\n width: \").concat(dt('checkbox.icon.size'), \";\\n height: \").concat(dt('checkbox.icon.size'), \";\\n}\\n\\n.p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\\n border-color: \").concat(dt('checkbox.hover.border.color'), \";\\n}\\n\\n.p-checkbox-checked .p-checkbox-box {\\n border-color: \").concat(dt('checkbox.checked.border.color'), \";\\n background: \").concat(dt('checkbox.checked.background'), \";\\n}\\n\\n.p-checkbox-checked .p-checkbox-icon {\\n color: \").concat(dt('checkbox.icon.checked.color'), \";\\n}\\n\\n.p-checkbox-checked:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\\n background: \").concat(dt('checkbox.checked.hover.background'), \";\\n border-color: \").concat(dt('checkbox.checked.hover.border.color'), \";\\n}\\n\\n.p-checkbox-checked:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-icon {\\n color: \").concat(dt('checkbox.icon.checked.hover.color'), \";\\n}\\n\\n.p-checkbox:not(.p-disabled):has(.p-checkbox-input:focus-visible) .p-checkbox-box {\\n border-color: \").concat(dt('checkbox.focus.border.color'), \";\\n box-shadow: \").concat(dt('checkbox.focus.ring.shadow'), \";\\n outline: \").concat(dt('checkbox.focus.ring.width'), \" \").concat(dt('checkbox.focus.ring.style'), \" \").concat(dt('checkbox.focus.ring.color'), \";\\n outline-offset: \").concat(dt('checkbox.focus.ring.offset'), \";\\n}\\n\\n.p-checkbox-checked:not(.p-disabled):has(.p-checkbox-input:focus-visible) .p-checkbox-box {\\n border-color: \").concat(dt('checkbox.checked.focus.border.color'), \";\\n}\\n\\n.p-checkbox.p-invalid > .p-checkbox-box {\\n border-color: \").concat(dt('checkbox.invalid.border.color'), \";\\n}\\n\\n.p-checkbox.p-variant-filled .p-checkbox-box {\\n background: \").concat(dt('checkbox.filled.background'), \";\\n}\\n\\n.p-checkbox-checked.p-variant-filled .p-checkbox-box {\\n background: \").concat(dt('checkbox.checked.background'), \";\\n}\\n\\n.p-checkbox-checked.p-variant-filled:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\\n background: \").concat(dt('checkbox.checked.hover.background'), \";\\n}\\n\\n.p-checkbox.p-disabled {\\n opacity: 1;\\n}\\n\\n.p-checkbox.p-disabled .p-checkbox-box {\\n background: \").concat(dt('checkbox.disabled.background'), \";\\n border-color: \").concat(dt('checkbox.checked.disabled.border.color'), \";\\n}\\n\\n.p-checkbox.p-disabled .p-checkbox-box .p-checkbox-icon {\\n color: \").concat(dt('checkbox.icon.disabled.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-checkbox p-component', {\n 'p-checkbox-checked': instance.checked,\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.$primevue.config.inputStyle === 'filled' || instance.$primevue.config.inputVariant === 'filled'\n }];\n },\n box: 'p-checkbox-box',\n input: 'p-checkbox-input',\n icon: 'p-checkbox-icon'\n};\nvar CheckboxStyle = BaseStyle.extend({\n name: 'checkbox',\n theme: theme,\n classes: classes\n});\n\nexport { CheckboxStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { equals, contains } from '@primeuix/utils/object';\nimport CheckIcon from '@primevue/icons/check';\nimport MinusIcon from '@primevue/icons/minus';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CheckboxStyle from 'primevue/checkbox/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, createElementVNode, renderSlot, normalizeClass, createBlock, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseCheckbox',\n \"extends\": BaseComponent,\n props: {\n value: null,\n modelValue: null,\n binary: Boolean,\n name: {\n type: String,\n \"default\": null\n },\n indeterminate: {\n type: Boolean,\n \"default\": false\n },\n trueValue: {\n type: null,\n \"default\": true\n },\n falseValue: {\n type: null,\n \"default\": false\n },\n variant: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n readonly: {\n type: Boolean,\n \"default\": false\n },\n required: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": null\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: CheckboxStyle,\n provide: function provide() {\n return {\n $pcCheckbox: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'Checkbox',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'update:indeterminate'],\n data: function data() {\n return {\n d_indeterminate: this.indeterminate\n };\n },\n watch: {\n indeterminate: function indeterminate(newValue) {\n this.d_indeterminate = newValue;\n }\n },\n methods: {\n getPTOptions: function getPTOptions(key) {\n var _ptm = key === 'root' ? this.ptmi : this.ptm;\n return _ptm(key, {\n context: {\n checked: this.checked,\n indeterminate: this.d_indeterminate,\n disabled: this.disabled\n }\n });\n },\n onChange: function onChange(event) {\n var _this = this;\n if (!this.disabled && !this.readonly) {\n var newModelValue;\n if (this.binary) {\n newModelValue = this.d_indeterminate ? this.trueValue : this.checked ? this.falseValue : this.trueValue;\n } else {\n if (this.checked || this.d_indeterminate) newModelValue = this.modelValue.filter(function (val) {\n return !equals(val, _this.value);\n });else newModelValue = this.modelValue ? [].concat(_toConsumableArray(this.modelValue), [this.value]) : [this.value];\n }\n if (this.d_indeterminate) {\n this.d_indeterminate = false;\n this.$emit('update:indeterminate', this.d_indeterminate);\n }\n this.$emit('update:modelValue', newModelValue);\n this.$emit('change', event);\n }\n },\n onFocus: function onFocus(event) {\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.$emit('blur', event);\n }\n },\n computed: {\n checked: function checked() {\n return this.d_indeterminate ? false : this.binary ? this.modelValue === this.trueValue : contains(this.value, this.modelValue);\n }\n },\n components: {\n CheckIcon: CheckIcon,\n MinusIcon: MinusIcon\n }\n};\n\nvar _hoisted_1 = [\"data-p-checked\", \"data-p-indeterminate\", \"data-p-disabled\"];\nvar _hoisted_2 = [\"id\", \"value\", \"name\", \"checked\", \"tabindex\", \"disabled\", \"readonly\", \"required\", \"aria-labelledby\", \"aria-label\", \"aria-invalid\", \"aria-checked\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_CheckIcon = resolveComponent(\"CheckIcon\");\n var _component_MinusIcon = resolveComponent(\"MinusIcon\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, $options.getPTOptions('root'), {\n \"data-p-checked\": $options.checked,\n \"data-p-indeterminate\": $data.d_indeterminate || undefined,\n \"data-p-disabled\": _ctx.disabled\n }), [createElementVNode(\"input\", mergeProps({\n id: _ctx.inputId,\n type: \"checkbox\",\n \"class\": [_ctx.cx('input'), _ctx.inputClass],\n style: _ctx.inputStyle,\n value: _ctx.value,\n name: _ctx.name,\n checked: $options.checked,\n tabindex: _ctx.tabindex,\n disabled: _ctx.disabled,\n readonly: _ctx.readonly,\n required: _ctx.required,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-invalid\": _ctx.invalid || undefined,\n \"aria-checked\": $data.d_indeterminate ? 'mixed' : undefined,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[1] || (_cache[1] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onChange: _cache[2] || (_cache[2] = function () {\n return $options.onChange && $options.onChange.apply($options, arguments);\n })\n }, $options.getPTOptions('input')), null, 16, _hoisted_2), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('box')\n }, $options.getPTOptions('box')), [renderSlot(_ctx.$slots, \"icon\", {\n checked: $options.checked,\n indeterminate: $data.d_indeterminate,\n \"class\": normalizeClass(_ctx.cx('icon'))\n }, function () {\n return [$options.checked ? (openBlock(), createBlock(_component_CheckIcon, mergeProps({\n key: 0,\n \"class\": _ctx.cx('icon')\n }, $options.getPTOptions('icon')), null, 16, [\"class\"])) : $data.d_indeterminate ? (openBlock(), createBlock(_component_MinusIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('icon')\n }, $options.getPTOptions('icon')), null, 16, [\"class\"])) : createCommentVNode(\"\", true)];\n })], 16)], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ChevronDownIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'TimesIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import { EventBus } from '@primeuix/utils/eventbus';\n\nvar OverlayEventBus = EventBus();\n\nexport { OverlayEventBus as default };\n//# sourceMappingURL=index.mjs.map\n","import { isClient } from '@primeuix/utils/dom';\nimport { renderSlot, openBlock, createBlock, Teleport, createCommentVNode } from 'vue';\n\nvar script = {\n name: 'Portal',\n props: {\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n disabled: {\n type: Boolean,\n \"default\": false\n }\n },\n data: function data() {\n return {\n mounted: false\n };\n },\n mounted: function mounted() {\n this.mounted = isClient();\n },\n computed: {\n inline: function inline() {\n return this.disabled || this.appendTo === 'self';\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return $options.inline ? renderSlot(_ctx.$slots, \"default\", {\n key: 0\n }) : $data.mounted ? (openBlock(), createBlock(Teleport, {\n key: 1,\n to: $props.appendTo\n }, [renderSlot(_ctx.$slots, \"default\")], 8, [\"to\"])) : createCommentVNode(\"\", true);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-select {\\n display: inline-flex;\\n cursor: pointer;\\n position: relative;\\n user-select: none;\\n background: \".concat(dt('select.background'), \";\\n border: 1px solid \").concat(dt('select.border.color'), \";\\n transition: background \").concat(dt('select.transition.duration'), \", color \").concat(dt('select.transition.duration'), \", border-color \").concat(dt('select.transition.duration'), \",\\n outline-color \").concat(dt('select.transition.duration'), \", box-shadow \").concat(dt('select.transition.duration'), \";\\n border-radius: \").concat(dt('select.border.radius'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('select.shadow'), \";\\n}\\n\\n.p-select:not(.p-disabled):hover {\\n border-color: \").concat(dt('select.hover.border.color'), \";\\n}\\n\\n.p-select:not(.p-disabled).p-focus {\\n border-color: \").concat(dt('select.focus.border.color'), \";\\n box-shadow: \").concat(dt('select.focus.ring.shadow'), \";\\n outline: \").concat(dt('select.focus.ring.width'), \" \").concat(dt('select.focus.ring.style'), \" \").concat(dt('select.focus.ring.color'), \";\\n outline-offset: \").concat(dt('select.focus.ring.offset'), \";\\n}\\n\\n.p-select.p-variant-filled {\\n background: \").concat(dt('select.filled.background'), \";\\n}\\n\\n.p-select.p-variant-filled.p-focus {\\n background: \").concat(dt('select.filled.focus.background'), \";\\n}\\n\\n.p-select.p-invalid {\\n border-color: \").concat(dt('select.invalid.border.color'), \";\\n}\\n\\n.p-select.p-disabled {\\n opacity: 1;\\n background: \").concat(dt('select.disabled.background'), \";\\n}\\n\\n.p-select-clear-icon {\\n position: absolute;\\n top: 50%;\\n margin-top: -0.5rem;\\n color: \").concat(dt('select.clear.icon.color'), \";\\n right: \").concat(dt('select.dropdown.width'), \";\\n}\\n\\n.p-select-dropdown {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n background: transparent;\\n color: \").concat(dt('select.dropdown.color'), \";\\n width: \").concat(dt('select.dropdown.width'), \";\\n border-top-right-radius: \").concat(dt('select.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('select.border.radius'), \";\\n}\\n\\n.p-select-label {\\n display: block;\\n white-space: nowrap;\\n overflow: hidden;\\n flex: 1 1 auto;\\n width: 1%;\\n padding: \").concat(dt('select.padding.y'), \" \").concat(dt('select.padding.x'), \";\\n text-overflow: ellipsis;\\n cursor: pointer;\\n color: \").concat(dt('select.color'), \";\\n background: transparent;\\n border: 0 none;\\n outline: 0 none;\\n}\\n\\n.p-select-label.p-placeholder {\\n color: \").concat(dt('select.placeholder.color'), \";\\n}\\n\\n.p-select:has(.p-select-clear-icon) .p-select-label {\\n padding-right: calc(1rem + \").concat(dt('select.padding.x'), \");\\n}\\n\\n.p-select.p-disabled .p-select-label {\\n color: \").concat(dt('select.disabled.color'), \";\\n}\\n\\n.p-select-label-empty {\\n overflow: hidden;\\n opacity: 0;\\n}\\n\\ninput.p-select-label {\\n cursor: default;\\n}\\n\\n.p-select .p-select-overlay {\\n min-width: 100%;\\n}\\n\\n.p-select-overlay {\\n position: absolute;\\n top: 0;\\n left: 0;\\n background: \").concat(dt('select.overlay.background'), \";\\n color: \").concat(dt('select.overlay.color'), \";\\n border: 1px solid \").concat(dt('select.overlay.border.color'), \";\\n border-radius: \").concat(dt('select.overlay.border.radius'), \";\\n box-shadow: \").concat(dt('select.overlay.shadow'), \";\\n}\\n\\n.p-select-header {\\n padding: \").concat(dt('select.list.header.padding'), \";\\n}\\n\\n.p-select-filter {\\n width: 100%;\\n}\\n\\n.p-select-list-container {\\n overflow: auto;\\n}\\n\\n.p-select-option-group {\\n cursor: auto;\\n margin: 0;\\n padding: \").concat(dt('select.option.group.padding'), \";\\n background: \").concat(dt('select.option.group.background'), \";\\n color: \").concat(dt('select.option.group.color'), \";\\n font-weight: \").concat(dt('select.option.group.font.weight'), \";\\n}\\n\\n.p-select-list {\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n padding: \").concat(dt('select.list.padding'), \";\\n gap: \").concat(dt('select.list.gap'), \";\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.p-select-option {\\n cursor: pointer;\\n font-weight: normal;\\n white-space: nowrap;\\n position: relative;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n padding: \").concat(dt('select.option.padding'), \";\\n border: 0 none;\\n color: \").concat(dt('select.option.color'), \";\\n background: transparent;\\n transition: background \").concat(dt('select.transition.duration'), \", color \").concat(dt('select.transition.duration'), \", border-color \").concat(dt('select.transition.duration'), \",\\n box-shadow \").concat(dt('select.transition.duration'), \", outline-color \").concat(dt('select.transition.duration'), \";\\n border-radius: \").concat(dt('select.option.border.radius'), \";\\n}\\n\\n.p-select-option:not(.p-select-option-selected):not(.p-disabled).p-focus {\\n background: \").concat(dt('select.option.focus.background'), \";\\n color: \").concat(dt('select.option.focus.color'), \";\\n}\\n\\n.p-select-option.p-select-option-selected {\\n background: \").concat(dt('select.option.selected.background'), \";\\n color: \").concat(dt('select.option.selected.color'), \";\\n}\\n\\n.p-select-option.p-select-option-selected.p-focus {\\n background: \").concat(dt('select.option.selected.focus.background'), \";\\n color: \").concat(dt('select.option.selected.focus.color'), \";\\n}\\n\\n.p-select-option-check-icon {\\n position: relative;\\n margin-inline-start: \").concat(dt('select.checkmark.gutter.start'), \";\\n margin-inline-end: \").concat(dt('select.checkmark.gutter.end'), \";\\n color: \").concat(dt('select.checkmark.color'), \";\\n}\\n\\n.p-select-empty-message {\\n padding: \").concat(dt('select.empty.message.padding'), \";\\n}\\n\\n.p-select-fluid {\\n display: flex;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props,\n state = _ref2.state;\n return ['p-select p-component p-inputwrapper', {\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid,\n 'p-variant-filled': props.variant ? props.variant === 'filled' : instance.$primevue.config.inputStyle === 'filled' || instance.$primevue.config.inputVariant === 'filled',\n 'p-focus': state.focused,\n 'p-inputwrapper-filled': instance.hasSelectedOption,\n 'p-inputwrapper-focus': state.focused || state.overlayVisible,\n 'p-select-open': state.overlayVisible,\n 'p-select-fluid': instance.hasFluid\n }];\n },\n label: function label(_ref3) {\n var instance = _ref3.instance,\n props = _ref3.props;\n return ['p-select-label', {\n 'p-placeholder': !props.editable && instance.label === props.placeholder,\n 'p-select-label-empty': !props.editable && !instance.$slots['value'] && (instance.label === 'p-emptylabel' || instance.label.length === 0)\n }];\n },\n clearIcon: 'p-select-clear-icon',\n dropdown: 'p-select-dropdown',\n loadingicon: 'p-select-loading-icon',\n dropdownIcon: 'p-select-dropdown-icon',\n overlay: 'p-select-overlay p-component',\n header: 'p-select-header',\n pcFilter: 'p-select-filter',\n listContainer: 'p-select-list-container',\n list: 'p-select-list',\n optionGroup: 'p-select-option-group',\n optionGroupLabel: 'p-select-option-group-label',\n option: function option(_ref4) {\n var instance = _ref4.instance,\n props = _ref4.props,\n state = _ref4.state,\n _option = _ref4.option,\n focusedOption = _ref4.focusedOption;\n return ['p-select-option', {\n 'p-select-option-selected': instance.isSelected(_option) && props.highlightOnSelect,\n 'p-focus': state.focusedOptionIndex === focusedOption,\n 'p-disabled': instance.isOptionDisabled(_option)\n }];\n },\n optionLabel: 'p-select-option-label',\n optionCheckIcon: 'p-select-option-check-icon',\n optionBlankIcon: 'p-select-option-blank-icon',\n emptyMessage: 'p-select-empty-message'\n};\nvar SelectStyle = BaseStyle.extend({\n name: 'select',\n theme: theme,\n classes: classes\n});\n\nexport { SelectStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { focus, isAndroid, getFirstFocusableElement, getLastFocusableElement, addStyle, relativePosition, getOuterWidth, absolutePosition, isTouchDevice, isVisible, getFocusableElements, findSingle } from '@primeuix/utils/dom';\nimport { resolveFieldData, isPrintableCharacter, isNotEmpty, equals, findLastIndex, isEmpty } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { FilterService } from '@primevue/core/api';\nimport { UniqueComponentId, ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport BlankIcon from '@primevue/icons/blank';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport TimesIcon from '@primevue/icons/times';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport Ripple from 'primevue/ripple';\nimport VirtualScroller from 'primevue/virtualscroller';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SelectStyle from 'primevue/select/style';\nimport { resolveComponent, resolveDirective, openBlock, createElementBlock, mergeProps, renderSlot, createTextVNode, toDisplayString, normalizeClass, createBlock, resolveDynamicComponent, createCommentVNode, createElementVNode, createVNode, withCtx, Transition, normalizeProps, createSlots, Fragment, renderList, withDirectives } from 'vue';\n\nvar script$1 = {\n name: 'BaseSelect',\n \"extends\": BaseComponent,\n props: {\n modelValue: null,\n options: Array,\n optionLabel: [String, Function],\n optionValue: [String, Function],\n optionDisabled: [String, Function],\n optionGroupLabel: [String, Function],\n optionGroupChildren: [String, Function],\n scrollHeight: {\n type: String,\n \"default\": '14rem'\n },\n filter: Boolean,\n filterPlaceholder: String,\n filterLocale: String,\n filterMatchMode: {\n type: String,\n \"default\": 'contains'\n },\n filterFields: {\n type: Array,\n \"default\": null\n },\n editable: Boolean,\n placeholder: {\n type: String,\n \"default\": null\n },\n variant: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n dataKey: null,\n showClear: {\n type: Boolean,\n \"default\": false\n },\n fluid: {\n type: Boolean,\n \"default\": null\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n labelId: {\n type: String,\n \"default\": null\n },\n labelClass: {\n type: [String, Object],\n \"default\": null\n },\n labelStyle: {\n type: Object,\n \"default\": null\n },\n panelClass: {\n type: [String, Object],\n \"default\": null\n },\n overlayStyle: {\n type: Object,\n \"default\": null\n },\n overlayClass: {\n type: [String, Object],\n \"default\": null\n },\n panelStyle: {\n type: Object,\n \"default\": null\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n loading: {\n type: Boolean,\n \"default\": false\n },\n clearIcon: {\n type: String,\n \"default\": undefined\n },\n dropdownIcon: {\n type: String,\n \"default\": undefined\n },\n filterIcon: {\n type: String,\n \"default\": undefined\n },\n loadingIcon: {\n type: String,\n \"default\": undefined\n },\n resetFilterOnHide: {\n type: Boolean,\n \"default\": false\n },\n resetFilterOnClear: {\n type: Boolean,\n \"default\": false\n },\n virtualScrollerOptions: {\n type: Object,\n \"default\": null\n },\n autoOptionFocus: {\n type: Boolean,\n \"default\": false\n },\n autoFilterFocus: {\n type: Boolean,\n \"default\": false\n },\n selectOnFocus: {\n type: Boolean,\n \"default\": false\n },\n focusOnHover: {\n type: Boolean,\n \"default\": true\n },\n highlightOnSelect: {\n type: Boolean,\n \"default\": true\n },\n checkmark: {\n type: Boolean,\n \"default\": false\n },\n filterMessage: {\n type: String,\n \"default\": null\n },\n selectionMessage: {\n type: String,\n \"default\": null\n },\n emptySelectionMessage: {\n type: String,\n \"default\": null\n },\n emptyFilterMessage: {\n type: String,\n \"default\": null\n },\n emptyMessage: {\n type: String,\n \"default\": null\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n ariaLabel: {\n type: String,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n }\n },\n style: SelectStyle,\n provide: function provide() {\n return {\n $pcSelect: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar script = {\n name: 'Select',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur', 'before-show', 'before-hide', 'show', 'hide', 'filter'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n outsideClickListener: null,\n scrollHandler: null,\n resizeListener: null,\n labelClickListener: null,\n overlay: null,\n list: null,\n virtualScroller: null,\n searchTimeout: null,\n searchValue: null,\n isModelValueChanged: false,\n data: function data() {\n return {\n id: this.$attrs.id,\n clicked: false,\n focused: false,\n focusedOptionIndex: -1,\n filterValue: null,\n overlayVisible: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n modelValue: function modelValue() {\n this.isModelValueChanged = true;\n },\n options: function options() {\n this.autoUpdateModel();\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n this.autoUpdateModel();\n this.bindLabelClickListener();\n },\n updated: function updated() {\n if (this.overlayVisible && this.isModelValueChanged) {\n this.scrollInView(this.findSelectedOptionIndex());\n }\n this.isModelValueChanged = false;\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindLabelClickListener();\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n if (this.overlay) {\n ZIndex.clear(this.overlay);\n this.overlay = null;\n }\n },\n methods: {\n getOptionIndex: function getOptionIndex(index, fn) {\n return this.virtualScrollerDisabled ? index : fn && fn(index)['index'];\n },\n getOptionLabel: function getOptionLabel(option) {\n return this.optionLabel ? resolveFieldData(option, this.optionLabel) : option;\n },\n getOptionValue: function getOptionValue(option) {\n return this.optionValue ? resolveFieldData(option, this.optionValue) : option;\n },\n getOptionRenderKey: function getOptionRenderKey(option, index) {\n return (this.dataKey ? resolveFieldData(option, this.dataKey) : this.getOptionLabel(option)) + '_' + index;\n },\n getPTItemOptions: function getPTItemOptions(option, itemOptions, index, key) {\n return this.ptm(key, {\n context: {\n option: option,\n index: index,\n selected: this.isSelected(option),\n focused: this.focusedOptionIndex === this.getOptionIndex(index, itemOptions),\n disabled: this.isOptionDisabled(option)\n }\n });\n },\n isOptionDisabled: function isOptionDisabled(option) {\n return this.optionDisabled ? resolveFieldData(option, this.optionDisabled) : false;\n },\n isOptionGroup: function isOptionGroup(option) {\n return this.optionGroupLabel && option.optionGroup && option.group;\n },\n getOptionGroupLabel: function getOptionGroupLabel(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupLabel);\n },\n getOptionGroupChildren: function getOptionGroupChildren(optionGroup) {\n return resolveFieldData(optionGroup, this.optionGroupChildren);\n },\n getAriaPosInset: function getAriaPosInset(index) {\n var _this = this;\n return (this.optionGroupLabel ? index - this.visibleOptions.slice(0, index).filter(function (option) {\n return _this.isOptionGroup(option);\n }).length : index) + 1;\n },\n show: function show(isFocus) {\n this.$emit('before-show');\n this.overlayVisible = true;\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n isFocus && focus(this.$refs.focusInput);\n },\n hide: function hide(isFocus) {\n var _this2 = this;\n var _hide = function _hide() {\n _this2.$emit('before-hide');\n _this2.overlayVisible = false;\n _this2.clicked = false;\n _this2.focusedOptionIndex = -1;\n _this2.searchValue = '';\n _this2.resetFilterOnHide && (_this2.filterValue = null);\n isFocus && focus(_this2.$refs.focusInput);\n };\n setTimeout(function () {\n _hide();\n }, 0); // For ScreenReaders\n },\n onFocus: function onFocus(event) {\n if (this.disabled) {\n // For ScreenReaders\n return;\n }\n this.focused = true;\n if (this.overlayVisible) {\n this.focusedOptionIndex = this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : this.autoOptionFocus ? this.findFirstFocusedOptionIndex() : this.editable ? -1 : this.findSelectedOptionIndex();\n this.scrollInView(this.focusedOptionIndex);\n }\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n if (this.disabled || isAndroid()) {\n event.preventDefault();\n return;\n }\n var metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event, this.editable);\n break;\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, this.editable);\n break;\n case 'Home':\n this.onHomeKey(event, this.editable);\n break;\n case 'End':\n this.onEndKey(event, this.editable);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Space':\n this.onSpaceKey(event, this.editable);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'Backspace':\n this.onBackspaceKey(event, this.editable);\n break;\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n !this.overlayVisible && this.show();\n !this.editable && this.searchOptions(event, event.key);\n }\n break;\n }\n this.clicked = false;\n },\n onEditableInput: function onEditableInput(event) {\n var value = event.target.value;\n this.searchValue = '';\n var matched = this.searchOptions(event, value);\n !matched && (this.focusedOptionIndex = -1);\n this.updateModel(event, value);\n !this.overlayVisible && isNotEmpty(value) && this.show();\n },\n onContainerClick: function onContainerClick(event) {\n if (this.disabled || this.loading) {\n return;\n }\n if (event.target.tagName === 'INPUT' || event.target.getAttribute('data-pc-section') === 'clearicon' || event.target.closest('[data-pc-section=\"clearicon\"]')) {\n return;\n } else if (!this.overlay || !this.overlay.contains(event.target)) {\n this.overlayVisible ? this.hide(true) : this.show(true);\n }\n this.clicked = true;\n },\n onClearClick: function onClearClick(event) {\n this.updateModel(event, null);\n this.resetFilterOnClear && (this.filterValue = null);\n },\n onFirstHiddenFocus: function onFirstHiddenFocus(event) {\n var focusableEl = event.relatedTarget === this.$refs.focusInput ? getFirstFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n focus(focusableEl);\n },\n onLastHiddenFocus: function onLastHiddenFocus(event) {\n var focusableEl = event.relatedTarget === this.$refs.focusInput ? getLastFocusableElement(this.overlay, ':not([data-p-hidden-focusable=\"true\"])') : this.$refs.focusInput;\n focus(focusableEl);\n },\n onOptionSelect: function onOptionSelect(event, option) {\n var isHide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var value = this.getOptionValue(option);\n this.updateModel(event, value);\n isHide && this.hide(true);\n },\n onOptionMouseMove: function onOptionMouseMove(event, index) {\n if (this.focusOnHover) {\n this.changeFocusedOptionIndex(event, index);\n }\n },\n onFilterChange: function onFilterChange(event) {\n var value = event.target.value;\n this.filterValue = value;\n this.focusedOptionIndex = -1;\n this.$emit('filter', {\n originalEvent: event,\n value: value\n });\n !this.virtualScrollerDisabled && this.virtualScroller.scrollToIndex(0);\n },\n onFilterKeyDown: function onFilterKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event, true);\n break;\n case 'ArrowLeft':\n case 'ArrowRight':\n this.onArrowLeftKey(event, true);\n break;\n case 'Home':\n this.onHomeKey(event, true);\n break;\n case 'End':\n this.onEndKey(event, true);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event, true);\n break;\n }\n },\n onFilterBlur: function onFilterBlur() {\n this.focusedOptionIndex = -1;\n },\n onFilterUpdated: function onFilterUpdated() {\n if (this.overlayVisible) {\n this.alignOverlay();\n }\n },\n onOverlayClick: function onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.$el\n });\n },\n onOverlayKeyDown: function onOverlayKeyDown(event) {\n switch (event.code) {\n case 'Escape':\n this.onEscapeKey(event);\n break;\n }\n },\n onArrowDownKey: function onArrowDownKey(event) {\n if (!this.overlayVisible) {\n this.show();\n this.editable && this.changeFocusedOptionIndex(event, this.findSelectedOptionIndex());\n } else {\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findNextOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findFirstOptionIndex() : this.findFirstFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (event.altKey && !pressedInInputText) {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.overlayVisible && this.hide();\n event.preventDefault();\n } else {\n var optionIndex = this.focusedOptionIndex !== -1 ? this.findPrevOptionIndex(this.focusedOptionIndex) : this.clicked ? this.findLastOptionIndex() : this.findLastFocusedOptionIndex();\n this.changeFocusedOptionIndex(event, optionIndex);\n !this.overlayVisible && this.show();\n event.preventDefault();\n }\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n pressedInInputText && (this.focusedOptionIndex = -1);\n },\n onHomeKey: function onHomeKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (pressedInInputText) {\n var target = event.currentTarget;\n if (event.shiftKey) {\n target.setSelectionRange(0, event.target.selectionStart);\n } else {\n target.setSelectionRange(0, 0);\n this.focusedOptionIndex = -1;\n }\n } else {\n this.changeFocusedOptionIndex(event, this.findFirstOptionIndex());\n !this.overlayVisible && this.show();\n }\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (pressedInInputText) {\n var target = event.currentTarget;\n if (event.shiftKey) {\n target.setSelectionRange(event.target.selectionStart, target.value.length);\n } else {\n var len = target.value.length;\n target.setSelectionRange(len, len);\n this.focusedOptionIndex = -1;\n }\n } else {\n this.changeFocusedOptionIndex(event, this.findLastOptionIndex());\n !this.overlayVisible && this.show();\n }\n event.preventDefault();\n },\n onPageUpKey: function onPageUpKey(event) {\n this.scrollInView(0);\n event.preventDefault();\n },\n onPageDownKey: function onPageDownKey(event) {\n this.scrollInView(this.visibleOptions.length - 1);\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (!this.overlayVisible) {\n this.focusedOptionIndex = -1; // reset\n this.onArrowDownKey(event);\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.hide();\n }\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n !pressedInInputText && this.onEnterKey(event);\n },\n onEscapeKey: function onEscapeKey(event) {\n this.overlayVisible && this.hide(true);\n event.preventDefault();\n event.stopPropagation(); //@todo will be changed next versionss\n },\n onTabKey: function onTabKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!pressedInInputText) {\n if (this.overlayVisible && this.hasFocusableElements()) {\n focus(this.$refs.firstHiddenFocusableElementOnOverlay);\n event.preventDefault();\n } else {\n if (this.focusedOptionIndex !== -1) {\n this.onOptionSelect(event, this.visibleOptions[this.focusedOptionIndex]);\n }\n this.overlayVisible && this.hide(this.filter);\n }\n }\n },\n onBackspaceKey: function onBackspaceKey(event) {\n var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (pressedInInputText) {\n !this.overlayVisible && this.show();\n }\n },\n onOverlayEnter: function onOverlayEnter(el) {\n ZIndex.set('overlay', el, this.$primevue.config.zIndex.overlay);\n addStyle(el, {\n position: 'absolute',\n top: '0',\n left: '0'\n });\n this.alignOverlay();\n this.scrollInView();\n this.autoFilterFocus && focus(this.$refs.filterInput.$el);\n },\n onOverlayAfterEnter: function onOverlayAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n this.$emit('show');\n },\n onOverlayLeave: function onOverlayLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n this.autoFilterFocus && focus(this.$refs.focusInput);\n this.$emit('hide');\n this.overlay = null;\n },\n onOverlayAfterLeave: function onOverlayAfterLeave(el) {\n ZIndex.clear(el);\n },\n alignOverlay: function alignOverlay() {\n if (this.appendTo === 'self') {\n relativePosition(this.overlay, this.$el);\n } else {\n this.overlay.style.minWidth = getOuterWidth(this.$el) + 'px';\n absolutePosition(this.overlay, this.$el);\n }\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this3 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n if (_this3.overlayVisible && _this3.overlay && !_this3.$el.contains(event.target) && !_this3.overlay.contains(event.target)) {\n _this3.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener: function bindScrollListener() {\n var _this4 = this;\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.$refs.container, function () {\n if (_this4.overlayVisible) {\n _this4.hide();\n }\n });\n }\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener: function unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this5 = this;\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this5.overlayVisible && !isTouchDevice()) {\n _this5.hide();\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindLabelClickListener: function bindLabelClickListener() {\n var _this6 = this;\n if (!this.editable && !this.labelClickListener) {\n var label = document.querySelector(\"label[for=\\\"\".concat(this.inputId, \"\\\"]\"));\n if (label && isVisible(label)) {\n this.labelClickListener = function () {\n focus(_this6.$refs.focusInput);\n };\n label.addEventListener('click', this.labelClickListener);\n }\n }\n },\n unbindLabelClickListener: function unbindLabelClickListener() {\n if (this.labelClickListener) {\n var label = document.querySelector(\"label[for=\\\"\".concat(this.inputId, \"\\\"]\"));\n if (label && isVisible(label)) {\n label.removeEventListener('click', this.labelClickListener);\n }\n }\n },\n hasFocusableElements: function hasFocusableElements() {\n return getFocusableElements(this.overlay, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\n },\n isOptionMatched: function isOptionMatched(option) {\n var _this$getOptionLabel;\n return this.isValidOption(option) && typeof this.getOptionLabel(option) === 'string' && ((_this$getOptionLabel = this.getOptionLabel(option)) === null || _this$getOptionLabel === void 0 ? void 0 : _this$getOptionLabel.toLocaleLowerCase(this.filterLocale).startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale)));\n },\n isValidOption: function isValidOption(option) {\n return isNotEmpty(option) && !(this.isOptionDisabled(option) || this.isOptionGroup(option));\n },\n isValidSelectedOption: function isValidSelectedOption(option) {\n return this.isValidOption(option) && this.isSelected(option);\n },\n isSelected: function isSelected(option) {\n return this.isValidOption(option) && equals(this.modelValue, this.getOptionValue(option), this.equalityKey);\n },\n findFirstOptionIndex: function findFirstOptionIndex() {\n var _this7 = this;\n return this.visibleOptions.findIndex(function (option) {\n return _this7.isValidOption(option);\n });\n },\n findLastOptionIndex: function findLastOptionIndex() {\n var _this8 = this;\n return findLastIndex(this.visibleOptions, function (option) {\n return _this8.isValidOption(option);\n });\n },\n findNextOptionIndex: function findNextOptionIndex(index) {\n var _this9 = this;\n var matchedOptionIndex = index < this.visibleOptions.length - 1 ? this.visibleOptions.slice(index + 1).findIndex(function (option) {\n return _this9.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n },\n findPrevOptionIndex: function findPrevOptionIndex(index) {\n var _this10 = this;\n var matchedOptionIndex = index > 0 ? findLastIndex(this.visibleOptions.slice(0, index), function (option) {\n return _this10.isValidOption(option);\n }) : -1;\n return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n },\n findSelectedOptionIndex: function findSelectedOptionIndex() {\n var _this11 = this;\n return this.hasSelectedOption ? this.visibleOptions.findIndex(function (option) {\n return _this11.isValidSelectedOption(option);\n }) : -1;\n },\n findFirstFocusedOptionIndex: function findFirstFocusedOptionIndex() {\n var selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findFirstOptionIndex() : selectedIndex;\n },\n findLastFocusedOptionIndex: function findLastFocusedOptionIndex() {\n var selectedIndex = this.findSelectedOptionIndex();\n return selectedIndex < 0 ? this.findLastOptionIndex() : selectedIndex;\n },\n searchOptions: function searchOptions(event, _char) {\n var _this12 = this;\n this.searchValue = (this.searchValue || '') + _char;\n var optionIndex = -1;\n var matched = false;\n if (isNotEmpty(this.searchValue)) {\n if (this.focusedOptionIndex !== -1) {\n optionIndex = this.visibleOptions.slice(this.focusedOptionIndex).findIndex(function (option) {\n return _this12.isOptionMatched(option);\n });\n optionIndex = optionIndex === -1 ? this.visibleOptions.slice(0, this.focusedOptionIndex).findIndex(function (option) {\n return _this12.isOptionMatched(option);\n }) : optionIndex + this.focusedOptionIndex;\n } else {\n optionIndex = this.visibleOptions.findIndex(function (option) {\n return _this12.isOptionMatched(option);\n });\n }\n if (optionIndex !== -1) {\n matched = true;\n }\n if (optionIndex === -1 && this.focusedOptionIndex === -1) {\n optionIndex = this.findFirstFocusedOptionIndex();\n }\n if (optionIndex !== -1) {\n this.changeFocusedOptionIndex(event, optionIndex);\n }\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(function () {\n _this12.searchValue = '';\n _this12.searchTimeout = null;\n }, 500);\n return matched;\n },\n changeFocusedOptionIndex: function changeFocusedOptionIndex(event, index) {\n if (this.focusedOptionIndex !== index) {\n this.focusedOptionIndex = index;\n this.scrollInView();\n if (this.selectOnFocus) {\n this.onOptionSelect(event, this.visibleOptions[index], false);\n }\n }\n },\n scrollInView: function scrollInView() {\n var _this13 = this;\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n this.$nextTick(function () {\n var id = index !== -1 ? \"\".concat(_this13.id, \"_\").concat(index) : _this13.focusedOptionId;\n var element = findSingle(_this13.list, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n } else if (!_this13.virtualScrollerDisabled) {\n _this13.virtualScroller && _this13.virtualScroller.scrollToIndex(index !== -1 ? index : _this13.focusedOptionIndex);\n }\n });\n },\n autoUpdateModel: function autoUpdateModel() {\n if (this.selectOnFocus && this.autoOptionFocus && !this.hasSelectedOption) {\n this.focusedOptionIndex = this.findFirstFocusedOptionIndex();\n this.onOptionSelect(null, this.visibleOptions[this.focusedOptionIndex], false);\n }\n },\n updateModel: function updateModel(event, value) {\n this.$emit('update:modelValue', value);\n this.$emit('change', {\n originalEvent: event,\n value: value\n });\n },\n flatOptions: function flatOptions(options) {\n var _this14 = this;\n return (options || []).reduce(function (result, option, index) {\n result.push({\n optionGroup: option,\n group: true,\n index: index\n });\n var optionGroupChildren = _this14.getOptionGroupChildren(option);\n optionGroupChildren && optionGroupChildren.forEach(function (o) {\n return result.push(o);\n });\n return result;\n }, []);\n },\n overlayRef: function overlayRef(el) {\n this.overlay = el;\n },\n listRef: function listRef(el, contentRef) {\n this.list = el;\n contentRef && contentRef(el); // For VirtualScroller\n },\n virtualScrollerRef: function virtualScrollerRef(el) {\n this.virtualScroller = el;\n }\n },\n computed: {\n visibleOptions: function visibleOptions() {\n var _this15 = this;\n var options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || [];\n if (this.filterValue) {\n var filteredOptions = FilterService.filter(options, this.searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);\n if (this.optionGroupLabel) {\n var optionGroups = this.options || [];\n var filtered = [];\n optionGroups.forEach(function (group) {\n var groupChildren = _this15.getOptionGroupChildren(group);\n var filteredItems = groupChildren.filter(function (item) {\n return filteredOptions.includes(item);\n });\n if (filteredItems.length > 0) filtered.push(_objectSpread(_objectSpread({}, group), {}, _defineProperty({}, typeof _this15.optionGroupChildren === 'string' ? _this15.optionGroupChildren : 'items', _toConsumableArray(filteredItems))));\n });\n return this.flatOptions(filtered);\n }\n return filteredOptions;\n }\n return options;\n },\n hasSelectedOption: function hasSelectedOption() {\n return isNotEmpty(this.modelValue);\n },\n label: function label() {\n var selectedOptionIndex = this.findSelectedOptionIndex();\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.placeholder || 'p-emptylabel';\n },\n editableInputValue: function editableInputValue() {\n var selectedOptionIndex = this.findSelectedOptionIndex();\n return selectedOptionIndex !== -1 ? this.getOptionLabel(this.visibleOptions[selectedOptionIndex]) : this.modelValue || '';\n },\n equalityKey: function equalityKey() {\n return this.optionValue ? null : this.dataKey;\n },\n searchFields: function searchFields() {\n return this.filterFields || [this.optionLabel];\n },\n filterResultMessageText: function filterResultMessageText() {\n return isNotEmpty(this.visibleOptions) ? this.filterMessageText.replaceAll('{0}', this.visibleOptions.length) : this.emptyFilterMessageText;\n },\n filterMessageText: function filterMessageText() {\n return this.filterMessage || this.$primevue.config.locale.searchMessage || '';\n },\n emptyFilterMessageText: function emptyFilterMessageText() {\n return this.emptyFilterMessage || this.$primevue.config.locale.emptySearchMessage || this.$primevue.config.locale.emptyFilterMessage || '';\n },\n emptyMessageText: function emptyMessageText() {\n return this.emptyMessage || this.$primevue.config.locale.emptyMessage || '';\n },\n selectionMessageText: function selectionMessageText() {\n return this.selectionMessage || this.$primevue.config.locale.selectionMessage || '';\n },\n emptySelectionMessageText: function emptySelectionMessageText() {\n return this.emptySelectionMessage || this.$primevue.config.locale.emptySelectionMessage || '';\n },\n selectedMessageText: function selectedMessageText() {\n return this.hasSelectedOption ? this.selectionMessageText.replaceAll('{0}', '1') : this.emptySelectionMessageText;\n },\n focusedOptionId: function focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? \"\".concat(this.id, \"_\").concat(this.focusedOptionIndex) : null;\n },\n ariaSetSize: function ariaSetSize() {\n var _this16 = this;\n return this.visibleOptions.filter(function (option) {\n return !_this16.isOptionGroup(option);\n }).length;\n },\n isClearIconVisible: function isClearIconVisible() {\n return this.showClear && this.modelValue != null && isNotEmpty(this.options);\n },\n virtualScrollerDisabled: function virtualScrollerDisabled() {\n return !this.virtualScrollerOptions;\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n InputText: InputText,\n VirtualScroller: VirtualScroller,\n Portal: Portal,\n InputIcon: InputIcon,\n IconField: IconField,\n TimesIcon: TimesIcon,\n ChevronDownIcon: ChevronDownIcon,\n SpinnerIcon: SpinnerIcon,\n SearchIcon: SearchIcon,\n CheckIcon: CheckIcon,\n BlankIcon: BlankIcon\n }\n};\n\nvar _hoisted_1 = [\"id\"];\nvar _hoisted_2 = [\"id\", \"value\", \"placeholder\", \"tabindex\", \"disabled\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"aria-invalid\"];\nvar _hoisted_3 = [\"id\", \"tabindex\", \"aria-label\", \"aria-labelledby\", \"aria-expanded\", \"aria-controls\", \"aria-activedescendant\", \"aria-disabled\"];\nvar _hoisted_4 = [\"id\"];\nvar _hoisted_5 = [\"id\"];\nvar _hoisted_6 = [\"id\", \"aria-label\", \"aria-selected\", \"aria-disabled\", \"aria-setsize\", \"aria-posinset\", \"onClick\", \"onMousemove\", \"data-p-selected\", \"data-p-focused\", \"data-p-disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n var _component_InputText = resolveComponent(\"InputText\");\n var _component_SearchIcon = resolveComponent(\"SearchIcon\");\n var _component_InputIcon = resolveComponent(\"InputIcon\");\n var _component_IconField = resolveComponent(\"IconField\");\n var _component_CheckIcon = resolveComponent(\"CheckIcon\");\n var _component_BlankIcon = resolveComponent(\"BlankIcon\");\n var _component_VirtualScroller = resolveComponent(\"VirtualScroller\");\n var _component_Portal = resolveComponent(\"Portal\");\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n ref: \"container\",\n id: $data.id,\n \"class\": _ctx.cx('root'),\n onClick: _cache[11] || (_cache[11] = function () {\n return $options.onContainerClick && $options.onContainerClick.apply($options, arguments);\n })\n }, _ctx.ptmi('root')), [_ctx.editable ? (openBlock(), createElementBlock(\"input\", mergeProps({\n key: 0,\n ref: \"focusInput\",\n id: _ctx.labelId || _ctx.inputId,\n type: \"text\",\n \"class\": [_ctx.cx('label'), _ctx.inputClass, _ctx.labelClass],\n style: [_ctx.inputStyle, _ctx.labelStyle],\n value: $options.editableInputValue,\n placeholder: _ctx.placeholder,\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n disabled: _ctx.disabled,\n autocomplete: \"off\",\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $data.id + '_list',\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n \"aria-invalid\": _ctx.invalid || undefined,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[1] || (_cache[1] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onKeydown: _cache[2] || (_cache[2] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n }),\n onInput: _cache[3] || (_cache[3] = function () {\n return $options.onEditableInput && $options.onEditableInput.apply($options, arguments);\n })\n }, _ctx.ptm('label')), null, 16, _hoisted_2)) : (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n ref: \"focusInput\",\n id: _ctx.labelId || _ctx.inputId,\n \"class\": [_ctx.cx('label'), _ctx.inputClass, _ctx.labelClass],\n style: [_ctx.inputStyle, _ctx.labelStyle],\n tabindex: !_ctx.disabled ? _ctx.tabindex : -1,\n role: \"combobox\",\n \"aria-label\": _ctx.ariaLabel || ($options.label === 'p-emptylabel' ? undefined : $options.label),\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": $data.overlayVisible,\n \"aria-controls\": $data.id + '_list',\n \"aria-activedescendant\": $data.focused ? $options.focusedOptionId : undefined,\n \"aria-disabled\": _ctx.disabled,\n onFocus: _cache[4] || (_cache[4] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[5] || (_cache[5] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onKeydown: _cache[6] || (_cache[6] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('label')), [renderSlot(_ctx.$slots, \"value\", {\n value: _ctx.modelValue,\n placeholder: _ctx.placeholder\n }, function () {\n return [createTextVNode(toDisplayString($options.label === 'p-emptylabel' ? ' ' : $options.label || 'empty'), 1)];\n })], 16, _hoisted_3)), $options.isClearIconVisible ? renderSlot(_ctx.$slots, \"clearicon\", {\n key: 2,\n \"class\": normalizeClass(_ctx.cx('clearIcon')),\n clearCallback: $options.onClearClick\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.clearIcon ? 'i' : 'TimesIcon'), mergeProps({\n ref: \"clearIcon\",\n \"class\": [_ctx.cx('clearIcon'), _ctx.clearIcon],\n onClick: $options.onClearClick\n }, _ctx.ptm('clearIcon'), {\n \"data-pc-section\": \"clearicon\"\n }), null, 16, [\"class\", \"onClick\"]))];\n }) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('dropdown')\n }, _ctx.ptm('dropdown')), [_ctx.loading ? renderSlot(_ctx.$slots, \"loadingicon\", {\n key: 0,\n \"class\": normalizeClass(_ctx.cx('loadingIcon'))\n }, function () {\n return [_ctx.loadingIcon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('loadingIcon'), 'pi-spin', _ctx.loadingIcon],\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('loadingIcon')), null, 16)) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('loadingIcon'),\n spin: \"\",\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('loadingIcon')), null, 16, [\"class\"]))];\n }) : renderSlot(_ctx.$slots, \"dropdownicon\", {\n key: 1,\n \"class\": normalizeClass(_ctx.cx('dropdownIcon'))\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.dropdownIcon ? 'span' : 'ChevronDownIcon'), mergeProps({\n \"class\": [_ctx.cx('dropdownIcon'), _ctx.dropdownIcon],\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('dropdownIcon')), null, 16, [\"class\"]))];\n })], 16), createVNode(_component_Portal, {\n appendTo: _ctx.appendTo\n }, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-connected-overlay\",\n onEnter: $options.onOverlayEnter,\n onAfterEnter: $options.onOverlayAfterEnter,\n onLeave: $options.onOverlayLeave,\n onAfterLeave: $options.onOverlayAfterLeave\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [$data.overlayVisible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.overlayRef,\n \"class\": [_ctx.cx('overlay'), _ctx.panelClass, _ctx.overlayClass],\n style: [_ctx.panelStyle, _ctx.overlayStyle],\n onClick: _cache[9] || (_cache[9] = function () {\n return $options.onOverlayClick && $options.onOverlayClick.apply($options, arguments);\n }),\n onKeydown: _cache[10] || (_cache[10] = function () {\n return $options.onOverlayKeyDown && $options.onOverlayKeyDown.apply($options, arguments);\n })\n }, _ctx.ptm('overlay')), [createElementVNode(\"span\", mergeProps({\n ref: \"firstHiddenFocusableElementOnOverlay\",\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n \"class\": \"p-hidden-accessible p-hidden-focusable\",\n tabindex: 0,\n onFocus: _cache[7] || (_cache[7] = function () {\n return $options.onFirstHiddenFocus && $options.onFirstHiddenFocus.apply($options, arguments);\n })\n }, _ctx.ptm('hiddenFirstFocusableEl'), {\n \"data-p-hidden-accessible\": true,\n \"data-p-hidden-focusable\": true\n }), null, 16), renderSlot(_ctx.$slots, \"header\", {\n value: _ctx.modelValue,\n options: $options.visibleOptions\n }), _ctx.filter ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('header')\n }, _ctx.ptm('header')), [createVNode(_component_IconField, {\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcFilterContainer')\n }, {\n \"default\": withCtx(function () {\n return [createVNode(_component_InputText, {\n ref: \"filterInput\",\n type: \"text\",\n value: $data.filterValue,\n onVnodeMounted: $options.onFilterUpdated,\n onVnodeUpdated: $options.onFilterUpdated,\n \"class\": normalizeClass(_ctx.cx('pcFilter')),\n placeholder: _ctx.filterPlaceholder,\n variant: _ctx.variant,\n unstyled: _ctx.unstyled,\n role: \"searchbox\",\n autocomplete: \"off\",\n \"aria-owns\": $data.id + '_list',\n \"aria-activedescendant\": $options.focusedOptionId,\n onKeydown: $options.onFilterKeyDown,\n onBlur: $options.onFilterBlur,\n onInput: $options.onFilterChange,\n pt: _ctx.ptm('pcFilter')\n }, null, 8, [\"value\", \"onVnodeMounted\", \"onVnodeUpdated\", \"class\", \"placeholder\", \"variant\", \"unstyled\", \"aria-owns\", \"aria-activedescendant\", \"onKeydown\", \"onBlur\", \"onInput\", \"pt\"]), createVNode(_component_InputIcon, mergeProps({\n unstyled: _ctx.unstyled\n }, _ctx.ptm('pcFilterIconContainer')), {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"filtericon\", {}, function () {\n return [_ctx.filterIcon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.filterIcon\n }, _ctx.ptm('filterIcon')), null, 16)) : (openBlock(), createBlock(_component_SearchIcon, normalizeProps(mergeProps({\n key: 1\n }, _ctx.ptm('filterIcon'))), null, 16))];\n })];\n }),\n _: 3\n }, 16, [\"unstyled\"])];\n }),\n _: 3\n }, 8, [\"unstyled\", \"pt\"]), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenFilterResult'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.filterResultMessageText), 17)], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('listContainer'),\n style: {\n 'max-height': $options.virtualScrollerDisabled ? _ctx.scrollHeight : ''\n }\n }, _ctx.ptm('listContainer')), [createVNode(_component_VirtualScroller, mergeProps({\n ref: $options.virtualScrollerRef\n }, _ctx.virtualScrollerOptions, {\n items: $options.visibleOptions,\n style: {\n height: _ctx.scrollHeight\n },\n tabindex: -1,\n disabled: $options.virtualScrollerDisabled,\n pt: _ctx.ptm('virtualScroller')\n }), createSlots({\n content: withCtx(function (_ref) {\n var styleClass = _ref.styleClass,\n contentRef = _ref.contentRef,\n items = _ref.items,\n getItemOptions = _ref.getItemOptions,\n contentStyle = _ref.contentStyle,\n itemSize = _ref.itemSize;\n return [createElementVNode(\"ul\", mergeProps({\n ref: function ref(el) {\n return $options.listRef(el, contentRef);\n },\n id: $data.id + '_list',\n \"class\": [_ctx.cx('list'), styleClass],\n style: contentStyle,\n role: \"listbox\"\n }, _ctx.ptm('list')), [(openBlock(true), createElementBlock(Fragment, null, renderList(items, function (option, i) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getOptionRenderKey(option, $options.getOptionIndex(i, getItemOptions))\n }, [$options.isOptionGroup(option) ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n \"class\": _ctx.cx('optionGroup'),\n role: \"option\",\n ref_for: true\n }, _ctx.ptm('optionGroup')), [renderSlot(_ctx.$slots, \"optiongroup\", {\n option: option.optionGroup,\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('optionGroupLabel'),\n ref_for: true\n }, _ctx.ptm('optionGroupLabel')), toDisplayString($options.getOptionGroupLabel(option.optionGroup)), 17)];\n })], 16, _hoisted_5)) : withDirectives((openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $data.id + '_' + $options.getOptionIndex(i, getItemOptions),\n \"class\": _ctx.cx('option', {\n option: option,\n focusedOption: $options.getOptionIndex(i, getItemOptions)\n }),\n style: {\n height: itemSize ? itemSize + 'px' : undefined\n },\n role: \"option\",\n \"aria-label\": $options.getOptionLabel(option),\n \"aria-selected\": $options.isSelected(option),\n \"aria-disabled\": $options.isOptionDisabled(option),\n \"aria-setsize\": $options.ariaSetSize,\n \"aria-posinset\": $options.getAriaPosInset($options.getOptionIndex(i, getItemOptions)),\n onClick: function onClick($event) {\n return $options.onOptionSelect($event, option);\n },\n onMousemove: function onMousemove($event) {\n return $options.onOptionMouseMove($event, $options.getOptionIndex(i, getItemOptions));\n },\n \"data-p-selected\": $options.isSelected(option),\n \"data-p-focused\": $data.focusedOptionIndex === $options.getOptionIndex(i, getItemOptions),\n \"data-p-disabled\": $options.isOptionDisabled(option),\n ref_for: true\n }, $options.getPTItemOptions(option, getItemOptions, i, 'option')), [_ctx.checkmark ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [$options.isSelected(option) ? (openBlock(), createBlock(_component_CheckIcon, mergeProps({\n key: 0,\n \"class\": _ctx.cx('optionCheckIcon'),\n ref_for: true\n }, _ctx.ptm('optionCheckIcon')), null, 16, [\"class\"])) : (openBlock(), createBlock(_component_BlankIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('optionBlankIcon'),\n ref_for: true\n }, _ctx.ptm('optionBlankIcon')), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, \"option\", {\n option: option,\n selected: $options.isSelected(option),\n index: $options.getOptionIndex(i, getItemOptions)\n }, function () {\n return [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('optionLabel'),\n ref_for: true\n }, _ctx.ptm('optionLabel')), toDisplayString($options.getOptionLabel(option)), 17)];\n })], 16, _hoisted_6)), [[_directive_ripple]])], 64);\n }), 128)), $data.filterValue && (!items || items && items.length === 0) ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('emptyMessage'),\n role: \"option\"\n }, _ctx.ptm('emptyMessage'), {\n \"data-p-hidden-accessible\": true\n }), [renderSlot(_ctx.$slots, \"emptyfilter\", {}, function () {\n return [createTextVNode(toDisplayString($options.emptyFilterMessageText), 1)];\n })], 16)) : !_ctx.options || _ctx.options && _ctx.options.length === 0 ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('emptyMessage'),\n role: \"option\"\n }, _ctx.ptm('emptyMessage'), {\n \"data-p-hidden-accessible\": true\n }), [renderSlot(_ctx.$slots, \"empty\", {}, function () {\n return [createTextVNode(toDisplayString($options.emptyMessageText), 1)];\n })], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_4)];\n }),\n _: 2\n }, [_ctx.$slots.loader ? {\n name: \"loader\",\n fn: withCtx(function (_ref2) {\n var options = _ref2.options;\n return [renderSlot(_ctx.$slots, \"loader\", {\n options: options\n })];\n }),\n key: \"0\"\n } : undefined]), 1040, [\"items\", \"style\", \"disabled\", \"pt\"])], 16), renderSlot(_ctx.$slots, \"footer\", {\n value: _ctx.modelValue,\n options: $options.visibleOptions\n }), !_ctx.options || _ctx.options && _ctx.options.length === 0 ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenEmptyMessage'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.emptyMessageText), 17)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n role: \"status\",\n \"aria-live\": \"polite\",\n \"class\": \"p-hidden-accessible\"\n }, _ctx.ptm('hiddenSelectedMessage'), {\n \"data-p-hidden-accessible\": true\n }), toDisplayString($options.selectedMessageText), 17), createElementVNode(\"span\", mergeProps({\n ref: \"lastHiddenFocusableElementOnOverlay\",\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n \"class\": \"p-hidden-accessible p-hidden-focusable\",\n tabindex: 0,\n onFocus: _cache[8] || (_cache[8] = function () {\n return $options.onLastHiddenFocus && $options.onLastHiddenFocus.apply($options, arguments);\n })\n }, _ctx.ptm('hiddenLastFocusableEl'), {\n \"data-p-hidden-accessible\": true,\n \"data-p-hidden-focusable\": true\n }), null, 16)], 16)) : createCommentVNode(\"\", true)];\n }),\n _: 3\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 3\n }, 8, [\"appendTo\"])], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tabs {\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.p-tablist {\\n display: flex;\\n position: relative;\\n}\\n\\n.p-tabs-scrollable > .p-tablist {\\n overflow: hidden;\\n}\\n\\n.p-tablist-viewport {\\n overflow-x: auto;\\n overflow-y: hidden;\\n scroll-behavior: smooth;\\n scrollbar-width: none;\\n overscroll-behavior: contain auto;\\n}\\n\\n.p-tablist-viewport::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.p-tablist-tab-list {\\n position: relative;\\n display: flex;\\n background: \".concat(dt('tabs.tablist.background'), \";\\n border-style: solid;\\n border-color: \").concat(dt('tabs.tablist.border.color'), \";\\n border-width: \").concat(dt('tabs.tablist.border.width'), \";\\n}\\n\\n.p-tablist-content {\\n flex-grow: 1;\\n}\\n\\n.p-tablist-nav-button {\\n all: unset;\\n position: absolute !important;\\n flex-shrink: 0;\\n top: 0;\\n z-index: 2;\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: \").concat(dt('tabs.nav.button.background'), \";\\n color: \").concat(dt('tabs.nav.button.color'), \";\\n width: \").concat(dt('tabs.nav.button.width'), \";\\n transition: color \").concat(dt('tabs.transition.duration'), \", outline-color \").concat(dt('tabs.transition.duration'), \", box-shadow \").concat(dt('tabs.transition.duration'), \";\\n box-shadow: \").concat(dt('tabs.nav.button.shadow'), \";\\n outline-color: transparent;\\n cursor: pointer;\\n}\\n\\n.p-tablist-nav-button:focus-visible {\\n z-index: 1;\\n box-shadow: \").concat(dt('tabs.nav.button.focus.ring.shadow'), \";\\n outline: \").concat(dt('tabs.nav.button.focus.ring.width'), \" \").concat(dt('tabs.nav.button.focus.ring.style'), \" \").concat(dt('tabs.nav.button.focus.ring.color'), \";\\n outline-offset: \").concat(dt('tabs.nav.button.focus.ring.offset'), \";\\n}\\n\\n.p-tablist-nav-button:hover {\\n color: \").concat(dt('tabs.nav.button.hover.color'), \";\\n}\\n\\n.p-tablist-prev-button {\\n left: 0;\\n}\\n\\n.p-tablist-next-button {\\n right: 0;\\n}\\n\\n.p-tab {\\n flex-shrink: 0;\\n cursor: pointer;\\n user-select: none;\\n position: relative;\\n border-style: solid;\\n white-space: nowrap;\\n background: \").concat(dt('tabs.tab.background'), \";\\n border-width: \").concat(dt('tabs.tab.border.width'), \";\\n border-color: \").concat(dt('tabs.tab.border.color'), \";\\n color: \").concat(dt('tabs.tab.color'), \";\\n padding: \").concat(dt('tabs.tab.padding'), \";\\n font-weight: \").concat(dt('tabs.tab.font.weight'), \";\\n transition: background \").concat(dt('tabs.transition.duration'), \", border-color \").concat(dt('tabs.transition.duration'), \", color \").concat(dt('tabs.transition.duration'), \", outline-color \").concat(dt('tabs.transition.duration'), \", box-shadow \").concat(dt('tabs.transition.duration'), \";\\n margin: \").concat(dt('tabs.tab.margin'), \";\\n outline-color: transparent;\\n}\\n\\n.p-tab:not(.p-disabled):focus-visible {\\n z-index: 1;\\n box-shadow: \").concat(dt('tabs.tab.focus.ring.shadow'), \";\\n outline: \").concat(dt('tabs.tab.focus.ring.width'), \" \").concat(dt('tabs.tab.focus.ring.style'), \" \").concat(dt('tabs.tab.focus.ring.color'), \";\\n outline-offset: \").concat(dt('tabs.tab.focus.ring.offset'), \";\\n}\\n\\n.p-tab:not(.p-tab-active):not(.p-disabled):hover {\\n background: \").concat(dt('tabs.tab.hover.background'), \";\\n border-color: \").concat(dt('tabs.tab.hover.border.color'), \";\\n color: \").concat(dt('tabs.tab.hover.color'), \";\\n}\\n\\n.p-tab-active {\\n background: \").concat(dt('tabs.tab.active.background'), \";\\n border-color: \").concat(dt('tabs.tab.active.border.color'), \";\\n color: \").concat(dt('tabs.tab.active.color'), \";\\n}\\n\\n.p-tabpanels {\\n background: \").concat(dt('tabs.tabpanel.background'), \";\\n color: \").concat(dt('tabs.tabpanel.color'), \";\\n padding: \").concat(dt('tabs.tabpanel.padding'), \";\\n outline: 0 none;\\n}\\n\\n.p-tabpanel:focus-visible {\\n box-shadow: \").concat(dt('tabs.tabpanel.focus.ring.shadow'), \";\\n outline: \").concat(dt('tabs.tabpanel.focus.ring.width'), \" \").concat(dt('tabs.tabpanel.focus.ring.style'), \" \").concat(dt('tabs.tabpanel.focus.ring.color'), \";\\n outline-offset: \").concat(dt('tabs.tabpanel.focus.ring.offset'), \";\\n}\\n\\n.p-tablist-active-bar {\\n z-index: 1;\\n display: block;\\n position: absolute;\\n bottom: \").concat(dt('tabs.active.bar.bottom'), \";\\n height: \").concat(dt('tabs.active.bar.height'), \";\\n background: \").concat(dt('tabs.active.bar.background'), \";\\n transition: 250ms cubic-bezier(0.35, 0, 0.25, 1);\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-tabs p-component', {\n 'p-tabs-scrollable': props.scrollable\n }];\n }\n};\nvar TabsStyle = BaseStyle.extend({\n name: 'tabs',\n theme: theme,\n classes: classes\n});\n\nexport { TabsStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabsStyle from 'primevue/tabs/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseTabs',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n lazy: {\n type: Boolean,\n \"default\": false\n },\n scrollable: {\n type: Boolean,\n \"default\": false\n },\n showNavigators: {\n type: Boolean,\n \"default\": true\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n selectOnFocus: {\n type: Boolean,\n \"default\": false\n }\n },\n style: TabsStyle,\n provide: function provide() {\n return {\n $pcTabs: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Tabs',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:value'],\n data: function data() {\n return {\n id: this.$attrs.id,\n d_value: this.value\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n value: function value(newValue) {\n this.d_value = newValue;\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n },\n methods: {\n updateValue: function updateValue(newValue) {\n if (this.d_value !== newValue) {\n this.d_value = newValue;\n this.$emit('update:value', newValue);\n }\n },\n isVertical: function isVertical() {\n return this.orientation === 'vertical';\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: 'p-tabpanels'\n};\nvar TabPanelsStyle = BaseStyle.extend({\n name: 'tabpanels',\n classes: classes\n});\n\nexport { TabPanelsStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport TabPanelsStyle from 'primevue/tabpanels/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseTabPanels',\n \"extends\": BaseComponent,\n props: {},\n style: TabPanelsStyle,\n provide: function provide() {\n return {\n $pcTabPanels: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'TabPanels',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"presentation\"\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar classes = {\n root: function root(_ref) {\n var instance = _ref.instance;\n return ['p-tabpanel', {\n 'p-tabpanel-active': instance.active\n }];\n }\n};\nvar TabPanelStyle = BaseStyle.extend({\n name: 'tabpanel',\n classes: classes\n});\n\nexport { TabPanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { equals } from '@primeuix/utils/object';\nimport { mergeProps, renderSlot, openBlock, createElementBlock, Fragment, withDirectives, createBlock, resolveDynamicComponent, withCtx, vShow, createCommentVNode, normalizeClass } from 'vue';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabPanelStyle from 'primevue/tabpanel/style';\n\nvar script$1 = {\n name: 'BaseTabPanel',\n \"extends\": BaseComponent,\n props: {\n // in Tabs\n value: {\n type: [String, Number],\n \"default\": undefined\n },\n as: {\n type: [String, Object],\n \"default\": 'DIV'\n },\n asChild: {\n type: Boolean,\n \"default\": false\n },\n // in TabView\n header: null,\n headerStyle: null,\n headerClass: null,\n headerProps: null,\n headerActionProps: null,\n contentStyle: null,\n contentClass: null,\n contentProps: null,\n disabled: Boolean\n },\n style: TabPanelStyle,\n provide: function provide() {\n return {\n $pcTabPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'TabPanel',\n \"extends\": script$1,\n inheritAttrs: false,\n inject: ['$pcTabs'],\n computed: {\n active: function active() {\n var _this$$pcTabs;\n return equals((_this$$pcTabs = this.$pcTabs) === null || _this$$pcTabs === void 0 ? void 0 : _this$$pcTabs.d_value, this.value);\n },\n id: function id() {\n var _this$$pcTabs2;\n return \"\".concat((_this$$pcTabs2 = this.$pcTabs) === null || _this$$pcTabs2 === void 0 ? void 0 : _this$$pcTabs2.id, \"_tabpanel_\").concat(this.value);\n },\n ariaLabelledby: function ariaLabelledby() {\n var _this$$pcTabs3;\n return \"\".concat((_this$$pcTabs3 = this.$pcTabs) === null || _this$$pcTabs3 === void 0 ? void 0 : _this$$pcTabs3.id, \"_tab_\").concat(this.value);\n },\n attrs: function attrs() {\n return mergeProps(this.a11yAttrs, this.ptmi('root', this.ptParams));\n },\n a11yAttrs: function a11yAttrs() {\n var _this$$pcTabs4;\n return {\n id: this.id,\n tabindex: (_this$$pcTabs4 = this.$pcTabs) === null || _this$$pcTabs4 === void 0 ? void 0 : _this$$pcTabs4.tabindex,\n role: 'tabpanel',\n 'aria-labelledby': this.ariaLabelledby,\n 'data-pc-name': 'tabpanel',\n 'data-p-active': this.active\n };\n },\n ptParams: function ptParams() {\n return {\n context: {\n active: this.active\n }\n };\n }\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _$options$$pcTabs, _$options$$pcTabs2;\n return !$options.$pcTabs ? renderSlot(_ctx.$slots, \"default\", {\n key: 0\n }) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [!_ctx.asChild ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [((_$options$$pcTabs = $options.$pcTabs) !== null && _$options$$pcTabs !== void 0 && _$options$$pcTabs.lazy ? $options.active : true) ? withDirectives((openBlock(), createBlock(resolveDynamicComponent(_ctx.as), mergeProps({\n key: 0,\n \"class\": _ctx.cx('root')\n }, $options.attrs), {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, \"default\")];\n }),\n _: 3\n }, 16, [\"class\"])), [[vShow, (_$options$$pcTabs2 = $options.$pcTabs) !== null && _$options$$pcTabs2 !== void 0 && _$options$$pcTabs2.lazy ? true : $options.active]]) : createCommentVNode(\"\", true)], 64)) : renderSlot(_ctx.$slots, \"default\", {\n key: 1,\n \"class\": normalizeClass(_ctx.cx('root')),\n active: $options.active,\n a11yAttrs: $options.a11yAttrs\n })], 64));\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-divider-horizontal {\\n display: flex;\\n width: 100%;\\n position: relative;\\n align-items: center;\\n margin: \".concat(dt('divider.horizontal.margin'), \";\\n padding: \").concat(dt('divider.horizontal.padding'), \";\\n}\\n\\n.p-divider-horizontal:before {\\n position: absolute;\\n display: block;\\n top: 50%;\\n left: 0;\\n width: 100%;\\n content: \\\"\\\";\\n border-top: 1px solid \").concat(dt('divider.border.color'), \";\\n}\\n\\n.p-divider-horizontal .p-divider-content {\\n padding: \").concat(dt('divider.horizontal.content.padding'), \";\\n}\\n\\n.p-divider-vertical {\\n min-height: 100%;\\n margin: 0 1rem;\\n display: flex;\\n position: relative;\\n justify-content: center;\\n margin: \").concat(dt('divider.vertical.margin'), \";\\n padding: \").concat(dt('divider.vertical.padding'), \";\\n}\\n\\n.p-divider-vertical:before {\\n position: absolute;\\n display: block;\\n top: 0;\\n left: 50%;\\n height: 100%;\\n content: \\\"\\\";\\n border-left: 1px solid \").concat(dt('divider.border.color'), \";\\n}\\n\\n.p-divider.p-divider-vertical .p-divider-content {\\n padding: \").concat(dt('divider.vertical.content.padding'), \";\\n}\\n\\n.p-divider-content {\\n z-index: 1;\\n background: \").concat(dt('divider.content.background'), \";\\n color: \").concat(dt('divider.content.color'), \";\\n}\\n\\n.p-divider-solid.p-divider-horizontal:before {\\n border-top-style: solid;\\n}\\n\\n.p-divider-solid.p-divider-vertical:before {\\n border-left-style: solid;\\n}\\n\\n.p-divider-dashed.p-divider-horizontal:before {\\n border-top-style: dashed;\\n}\\n\\n.p-divider-dashed.p-divider-vertical:before {\\n border-left-style: dashed;\\n}\\n\\n.p-divider-dotted.p-divider-horizontal:before {\\n border-top-style: dotted;\\n}\\n\\n.p-divider-dotted.p-divider-vertical:before {\\n border-left-style: dotted;\\n}\\n\");\n};\n\n/* Position */\nvar inlineStyles = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return {\n justifyContent: props.layout === 'horizontal' ? props.align === 'center' || props.align === null ? 'center' : props.align === 'left' ? 'flex-start' : props.align === 'right' ? 'flex-end' : null : null,\n alignItems: props.layout === 'vertical' ? props.align === 'center' || props.align === null ? 'center' : props.align === 'top' ? 'flex-start' : props.align === 'bottom' ? 'flex-end' : null : null\n };\n }\n};\nvar classes = {\n root: function root(_ref3) {\n var props = _ref3.props;\n return ['p-divider p-component', 'p-divider-' + props.layout, 'p-divider-' + props.type, {\n 'p-divider-left': props.layout === 'horizontal' && (!props.align || props.align === 'left')\n }, {\n 'p-divider-center': props.layout === 'horizontal' && props.align === 'center'\n }, {\n 'p-divider-right': props.layout === 'horizontal' && props.align === 'right'\n }, {\n 'p-divider-top': props.layout === 'vertical' && props.align === 'top'\n }, {\n 'p-divider-center': props.layout === 'vertical' && (!props.align || props.align === 'center')\n }, {\n 'p-divider-bottom': props.layout === 'vertical' && props.align === 'bottom'\n }];\n },\n content: 'p-divider-content'\n};\nvar DividerStyle = BaseStyle.extend({\n name: 'divider',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { DividerStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport DividerStyle from 'primevue/divider/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseDivider',\n \"extends\": BaseComponent,\n props: {\n align: {\n type: String,\n \"default\": null\n },\n layout: {\n type: String,\n \"default\": 'horizontal'\n },\n type: {\n type: String,\n \"default\": 'solid'\n }\n },\n style: DividerStyle,\n provide: function provide() {\n return {\n $pcDivider: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Divider',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nvar _hoisted_1 = [\"aria-orientation\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root'),\n role: \"separator\",\n \"aria-orientation\": _ctx.layout\n }, _ctx.ptmi('root')), [_ctx.$slots[\"default\"] ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('content')\n }, _ctx.ptm('content')), [renderSlot(_ctx.$slots, \"default\")], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-scrollpanel-content-container {\\n overflow: hidden;\\n width: 100%;\\n height: 100%;\\n position: relative;\\n z-index: 1;\\n float: left;\\n}\\n\\n.p-scrollpanel-content {\\n height: calc(100% + calc(2 * \".concat(dt('scrollpanel.bar.size'), \"));\\n width: calc(100% + calc(2 * \").concat(dt('scrollpanel.bar.size'), \"));\\n padding: 0 calc(2 * \").concat(dt('scrollpanel.bar.size'), \") calc(2 * \").concat(dt('scrollpanel.bar.size'), \") 0;\\n position: relative;\\n overflow: auto;\\n box-sizing: border-box;\\n scrollbar-width: none;\\n}\\n\\n.p-scrollpanel-content::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.p-scrollpanel-bar {\\n position: relative;\\n border-radius: \").concat(dt('scrollpanel.bar.border.radius'), \";\\n z-index: 2;\\n cursor: pointer;\\n opacity: 0;\\n outline-color: transparent;\\n transition: outline-color \").concat(dt('scrollpanel.transition.duration'), \";\\n background: \").concat(dt('scrollpanel.bar.background'), \";\\n border: 0 none;\\n transition: outline-color \").concat(dt('scrollpanel.transition.duration'), \", opacity \").concat(dt('scrollpanel.transition.duration'), \";\\n}\\n\\n.p-scrollpanel-bar:focus-visible {\\n box-shadow: \").concat(dt('scrollpanel.bar.focus.ring.shadow'), \";\\n outline: \").concat(dt('scrollpanel.barfocus.ring.width'), \" \").concat(dt('scrollpanel.bar.focus.ring.style'), \" \").concat(dt('scrollpanel.bar.focus.ring.color'), \";\\n outline-offset: \").concat(dt('scrollpanel.barfocus.ring.offset'), \";\\n}\\n\\n.p-scrollpanel-bar-y {\\n width: \").concat(dt('scrollpanel.bar.size'), \";\\n top: 0;\\n}\\n\\n.p-scrollpanel-bar-x {\\n height: \").concat(dt('scrollpanel.bar.size'), \";\\n bottom: 0;\\n}\\n\\n.p-scrollpanel-hidden {\\n visibility: hidden;\\n}\\n\\n.p-scrollpanel:hover .p-scrollpanel-bar,\\n.p-scrollpanel:active .p-scrollpanel-bar {\\n opacity: 1;\\n}\\n\\n.p-scrollpanel-grabbed {\\n user-select: none;\\n}\\n\");\n};\nvar classes = {\n root: 'p-scrollpanel p-component',\n contentContainer: 'p-scrollpanel-content-container',\n content: 'p-scrollpanel-content',\n barX: 'p-scrollpanel-bar p-scrollpanel-bar-x',\n barY: 'p-scrollpanel-bar p-scrollpanel-bar-y'\n};\nvar ScrollPanelStyle = BaseStyle.extend({\n name: 'scrollpanel',\n theme: theme,\n classes: classes\n});\n\nexport { ScrollPanelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport { getHeight, addClass, removeClass } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ScrollPanelStyle from 'primevue/scrollpanel/style';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseScrollPanel',\n \"extends\": BaseComponent,\n props: {\n step: {\n type: Number,\n \"default\": 5\n }\n },\n style: ScrollPanelStyle,\n provide: function provide() {\n return {\n $pcScrollPanel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ScrollPanel',\n \"extends\": script$1,\n inheritAttrs: false,\n initialized: false,\n documentResizeListener: null,\n documentMouseMoveListener: null,\n documentMouseUpListener: null,\n frame: null,\n scrollXRatio: null,\n scrollYRatio: null,\n isXBarClicked: false,\n isYBarClicked: false,\n lastPageX: null,\n lastPageY: null,\n timer: null,\n outsideClickListener: null,\n data: function data() {\n return {\n id: this.$attrs.id,\n orientation: 'vertical',\n lastScrollTop: 0,\n lastScrollLeft: 0\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n if (this.$el.offsetParent) {\n this.initialize();\n }\n },\n updated: function updated() {\n if (!this.initialized && this.$el.offsetParent) {\n this.initialize();\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindDocumentResizeListener();\n if (this.frame) {\n window.cancelAnimationFrame(this.frame);\n }\n },\n methods: {\n initialize: function initialize() {\n this.moveBar();\n this.bindDocumentResizeListener();\n this.calculateContainerHeight();\n },\n calculateContainerHeight: function calculateContainerHeight() {\n var containerStyles = getComputedStyle(this.$el),\n xBarStyles = getComputedStyle(this.$refs.xBar),\n pureContainerHeight = getHeight(this.$el) - parseInt(xBarStyles['height'], 10);\n if (containerStyles['max-height'] !== 'none' && pureContainerHeight === 0) {\n if (this.$refs.content.offsetHeight + parseInt(xBarStyles['height'], 10) > parseInt(containerStyles['max-height'], 10)) {\n this.$el.style.height = containerStyles['max-height'];\n } else {\n this.$el.style.height = this.$refs.content.offsetHeight + parseFloat(containerStyles.paddingTop) + parseFloat(containerStyles.paddingBottom) + parseFloat(containerStyles.borderTopWidth) + parseFloat(containerStyles.borderBottomWidth) + 'px';\n }\n }\n },\n moveBar: function moveBar() {\n var _this = this;\n if (this.$refs.content) {\n /* horizontal scroll */\n var totalWidth = this.$refs.content.scrollWidth;\n var ownWidth = this.$refs.content.clientWidth;\n var bottom = (this.$el.clientHeight - this.$refs.xBar.clientHeight) * -1;\n this.scrollXRatio = ownWidth / totalWidth;\n\n /* vertical scroll */\n var totalHeight = this.$refs.content.scrollHeight;\n var ownHeight = this.$refs.content.clientHeight;\n var right = (this.$el.clientWidth - this.$refs.yBar.clientWidth) * -1;\n this.scrollYRatio = ownHeight / totalHeight;\n this.frame = this.requestAnimationFrame(function () {\n if (_this.$refs.xBar) {\n if (_this.scrollXRatio >= 1) {\n _this.$refs.xBar.setAttribute('data-p-scrollpanel-hidden', 'true');\n !_this.isUnstyled && addClass(_this.$refs.xBar, 'p-scrollpanel-hidden');\n } else {\n _this.$refs.xBar.setAttribute('data-p-scrollpanel-hidden', 'false');\n !_this.isUnstyled && removeClass(_this.$refs.xBar, 'p-scrollpanel-hidden');\n _this.$refs.xBar.style.cssText = 'width:' + Math.max(_this.scrollXRatio * 100, 10) + '%; left:' + _this.$refs.content.scrollLeft / totalWidth * 100 + '%;bottom:' + bottom + 'px;';\n }\n }\n if (_this.$refs.yBar) {\n if (_this.scrollYRatio >= 1) {\n _this.$refs.yBar.setAttribute('data-p-scrollpanel-hidden', 'true');\n !_this.isUnstyled && addClass(_this.$refs.yBar, 'p-scrollpanel-hidden');\n } else {\n _this.$refs.yBar.setAttribute('data-p-scrollpanel-hidden', 'false');\n !_this.isUnstyled && removeClass(_this.$refs.yBar, 'p-scrollpanel-hidden');\n _this.$refs.yBar.style.cssText = 'height:' + Math.max(_this.scrollYRatio * 100, 10) + '%; top: calc(' + _this.$refs.content.scrollTop / totalHeight * 100 + '% - ' + _this.$refs.xBar.clientHeight + 'px);right:' + right + 'px;';\n }\n }\n });\n }\n },\n onYBarMouseDown: function onYBarMouseDown(e) {\n this.isYBarClicked = true;\n this.$refs.yBar.focus();\n this.lastPageY = e.pageY;\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'true');\n !this.isUnstyled && addClass(this.$refs.yBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'true');\n !this.isUnstyled && addClass(document.body, 'p-scrollpanel-grabbed');\n this.bindDocumentMouseListeners();\n e.preventDefault();\n },\n onXBarMouseDown: function onXBarMouseDown(e) {\n this.isXBarClicked = true;\n this.$refs.xBar.focus();\n this.lastPageX = e.pageX;\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && addClass(this.$refs.xBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && addClass(document.body, 'p-scrollpanel-grabbed');\n this.bindDocumentMouseListeners();\n e.preventDefault();\n },\n onScroll: function onScroll(event) {\n if (this.lastScrollLeft !== event.target.scrollLeft) {\n this.lastScrollLeft = event.target.scrollLeft;\n this.orientation = 'horizontal';\n } else if (this.lastScrollTop !== event.target.scrollTop) {\n this.lastScrollTop = event.target.scrollTop;\n this.orientation = 'vertical';\n }\n this.moveBar();\n },\n onKeyDown: function onKeyDown(event) {\n if (this.orientation === 'vertical') {\n switch (event.code) {\n case 'ArrowDown':\n {\n this.setTimer('scrollTop', this.step);\n event.preventDefault();\n break;\n }\n case 'ArrowUp':\n {\n this.setTimer('scrollTop', this.step * -1);\n event.preventDefault();\n break;\n }\n case 'ArrowLeft':\n case 'ArrowRight':\n {\n event.preventDefault();\n break;\n }\n }\n } else if (this.orientation === 'horizontal') {\n switch (event.code) {\n case 'ArrowRight':\n {\n this.setTimer('scrollLeft', this.step);\n event.preventDefault();\n break;\n }\n case 'ArrowLeft':\n {\n this.setTimer('scrollLeft', this.step * -1);\n event.preventDefault();\n break;\n }\n case 'ArrowDown':\n case 'ArrowUp':\n {\n event.preventDefault();\n break;\n }\n }\n }\n },\n onKeyUp: function onKeyUp() {\n this.clearTimer();\n },\n repeat: function repeat(bar, step) {\n this.$refs.content[bar] += step;\n this.moveBar();\n },\n setTimer: function setTimer(bar, step) {\n var _this2 = this;\n this.clearTimer();\n this.timer = setTimeout(function () {\n _this2.repeat(bar, step);\n }, 40);\n },\n clearTimer: function clearTimer() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n },\n onDocumentMouseMove: function onDocumentMouseMove(e) {\n if (this.isXBarClicked) {\n this.onMouseMoveForXBar(e);\n } else if (this.isYBarClicked) {\n this.onMouseMoveForYBar(e);\n } else {\n this.onMouseMoveForXBar(e);\n this.onMouseMoveForYBar(e);\n }\n },\n onMouseMoveForXBar: function onMouseMoveForXBar(e) {\n var _this3 = this;\n var deltaX = e.pageX - this.lastPageX;\n this.lastPageX = e.pageX;\n this.frame = this.requestAnimationFrame(function () {\n _this3.$refs.content.scrollLeft += deltaX / _this3.scrollXRatio;\n });\n },\n onMouseMoveForYBar: function onMouseMoveForYBar(e) {\n var _this4 = this;\n var deltaY = e.pageY - this.lastPageY;\n this.lastPageY = e.pageY;\n this.frame = this.requestAnimationFrame(function () {\n _this4.$refs.content.scrollTop += deltaY / _this4.scrollYRatio;\n });\n },\n onFocus: function onFocus(event) {\n if (this.$refs.xBar.isSameNode(event.target)) {\n this.orientation = 'horizontal';\n } else if (this.$refs.yBar.isSameNode(event.target)) {\n this.orientation = 'vertical';\n }\n },\n onBlur: function onBlur() {\n if (this.orientation === 'horizontal') {\n this.orientation = 'vertical';\n }\n },\n onDocumentMouseUp: function onDocumentMouseUp() {\n this.$refs.yBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(this.$refs.yBar, 'p-scrollpanel-grabbed');\n this.$refs.xBar.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(this.$refs.xBar, 'p-scrollpanel-grabbed');\n document.body.setAttribute('data-p-scrollpanel-grabbed', 'false');\n !this.isUnstyled && removeClass(document.body, 'p-scrollpanel-grabbed');\n this.unbindDocumentMouseListeners();\n this.isXBarClicked = false;\n this.isYBarClicked = false;\n },\n requestAnimationFrame: function requestAnimationFrame(f) {\n var frame = window.requestAnimationFrame || this.timeoutFrame;\n return frame(f);\n },\n refresh: function refresh() {\n this.moveBar();\n },\n scrollTop: function scrollTop(_scrollTop) {\n var scrollableHeight = this.$refs.content.scrollHeight - this.$refs.content.clientHeight;\n _scrollTop = _scrollTop > scrollableHeight ? scrollableHeight : _scrollTop > 0 ? _scrollTop : 0;\n this.$refs.content.scrollTop = _scrollTop;\n },\n timeoutFrame: function timeoutFrame(fn) {\n setTimeout(fn, 0);\n },\n bindDocumentMouseListeners: function bindDocumentMouseListeners() {\n var _this5 = this;\n if (!this.documentMouseMoveListener) {\n this.documentMouseMoveListener = function (e) {\n _this5.onDocumentMouseMove(e);\n };\n document.addEventListener('mousemove', this.documentMouseMoveListener);\n }\n if (!this.documentMouseUpListener) {\n this.documentMouseUpListener = function (e) {\n _this5.onDocumentMouseUp(e);\n };\n document.addEventListener('mouseup', this.documentMouseUpListener);\n }\n },\n unbindDocumentMouseListeners: function unbindDocumentMouseListeners() {\n if (this.documentMouseMoveListener) {\n document.removeEventListener('mousemove', this.documentMouseMoveListener);\n this.documentMouseMoveListener = null;\n }\n if (this.documentMouseUpListener) {\n document.removeEventListener('mouseup', this.documentMouseUpListener);\n this.documentMouseUpListener = null;\n }\n },\n bindDocumentResizeListener: function bindDocumentResizeListener() {\n var _this6 = this;\n if (!this.documentResizeListener) {\n this.documentResizeListener = function () {\n _this6.moveBar();\n };\n window.addEventListener('resize', this.documentResizeListener);\n }\n },\n unbindDocumentResizeListener: function unbindDocumentResizeListener() {\n if (this.documentResizeListener) {\n window.removeEventListener('resize', this.documentResizeListener);\n this.documentResizeListener = null;\n }\n }\n },\n computed: {\n contentId: function contentId() {\n return this.id + '_content';\n }\n }\n};\n\nvar _hoisted_1 = [\"id\"];\nvar _hoisted_2 = [\"aria-controls\", \"aria-valuenow\"];\nvar _hoisted_3 = [\"aria-controls\", \"aria-valuenow\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('contentContainer')\n }, _ctx.ptm('contentContainer')), [createElementVNode(\"div\", mergeProps({\n ref: \"content\",\n id: $options.contentId,\n \"class\": _ctx.cx('content'),\n onScroll: _cache[0] || (_cache[0] = function () {\n return $options.onScroll && $options.onScroll.apply($options, arguments);\n }),\n onMouseenter: _cache[1] || (_cache[1] = function () {\n return $options.moveBar && $options.moveBar.apply($options, arguments);\n })\n }, _ctx.ptm('content')), [renderSlot(_ctx.$slots, \"default\")], 16, _hoisted_1)], 16), createElementVNode(\"div\", mergeProps({\n ref: \"xBar\",\n \"class\": _ctx.cx('barx'),\n tabindex: \"0\",\n role: \"scrollbar\",\n \"aria-orientation\": \"horizontal\",\n \"aria-controls\": $options.contentId,\n \"aria-valuenow\": $data.lastScrollLeft,\n onMousedown: _cache[2] || (_cache[2] = function () {\n return $options.onXBarMouseDown && $options.onXBarMouseDown.apply($options, arguments);\n }),\n onKeydown: _cache[3] || (_cache[3] = function ($event) {\n return $options.onKeyDown($event);\n }),\n onKeyup: _cache[4] || (_cache[4] = function () {\n return $options.onKeyUp && $options.onKeyUp.apply($options, arguments);\n }),\n onFocus: _cache[5] || (_cache[5] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[6] || (_cache[6] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n })\n }, _ctx.ptm('barx'), {\n \"data-pc-group-section\": \"bar\"\n }), null, 16, _hoisted_2), createElementVNode(\"div\", mergeProps({\n ref: \"yBar\",\n \"class\": _ctx.cx('bary'),\n tabindex: \"0\",\n role: \"scrollbar\",\n \"aria-orientation\": \"vertical\",\n \"aria-controls\": $options.contentId,\n \"aria-valuenow\": $data.lastScrollTop,\n onMousedown: _cache[7] || (_cache[7] = function () {\n return $options.onYBarMouseDown && $options.onYBarMouseDown.apply($options, arguments);\n }),\n onKeydown: _cache[8] || (_cache[8] = function ($event) {\n return $options.onKeyDown($event);\n }),\n onKeyup: _cache[9] || (_cache[9] = function () {\n return $options.onKeyUp && $options.onKeyUp.apply($options, arguments);\n }),\n onFocus: _cache[10] || (_cache[10] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n })\n }, _ctx.ptm('bary'), {\n \"data-pc-group-section\": \"bar\"\n }), null, 16, _hoisted_3)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'AngleDownIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'AngleUpIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-inputnumber {\\n display: inline-flex;\\n position: relative;\\n}\\n\\n.p-inputnumber-button {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex: 0 0 auto;\\n cursor: pointer;\\n background: \".concat(dt('inputnumber.button.background'), \";\\n color: \").concat(dt('inputnumber.button.color'), \";\\n width: \").concat(dt('inputnumber.button.width'), \";\\n transition: background \").concat(dt('inputnumber.transition.duration'), \", color \").concat(dt('inputnumber.transition.duration'), \", border-color \").concat(dt('inputnumber.transition.duration'), \", outline-color \").concat(dt('inputnumber.transition.duration'), \";\\n}\\n\\n.p-inputnumber-button:hover {\\n background: \").concat(dt('inputnumber.button.hover.background'), \";\\n color: \").concat(dt('inputnumber.button.hover.color'), \";\\n}\\n\\n.p-inputnumber-button:active {\\n background: \").concat(dt('inputnumber.button.active.background'), \";\\n color: \").concat(dt('inputnumber.button.active.color'), \";\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-button {\\n position: relative;\\n border: 0 none;\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-button-group {\\n display: flex;\\n flex-direction: column;\\n position: absolute;\\n top: 1px;\\n right: 1px;\\n height: calc(100% - 2px);\\n z-index: 1;\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-increment-button {\\n padding: 0;\\n border-top-right-radius: calc(\").concat(dt('inputnumber.button.border.radius'), \" - 1px);\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-decrement-button {\\n padding: 0;\\n border-bottom-right-radius: calc(\").concat(dt('inputnumber.button.border.radius'), \" - 1px);\\n}\\n\\n.p-inputnumber-stacked .p-inputnumber-button {\\n flex: 1 1 auto;\\n border: 0 none;\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-button {\\n border: 1px solid \").concat(dt('inputnumber.button.border.color'), \";\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-button:hover {\\n border-color: \").concat(dt('inputnumber.button.hover.border.color'), \";\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-button:active {\\n border-color: \").concat(dt('inputnumber.button.active.border.color'), \";\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-increment-button {\\n order: 3;\\n border-top-right-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-left: 0 none;\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-input {\\n order: 2;\\n border-radius: 0;\\n}\\n\\n.p-inputnumber-horizontal .p-inputnumber-decrement-button {\\n order: 1;\\n border-top-left-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-bottom-left-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-right: 0 none;\\n}\\n\\n.p-inputnumber-vertical {\\n flex-direction: column;\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-button {\\n border: 1px solid \").concat(dt('inputnumber.button.border.color'), \";\\n padding: \").concat(dt('inputnumber.button.vertical.padding'), \"; 0;\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-button:hover {\\n border-color: \").concat(dt('inputnumber.button.hover.border.color'), \";\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-button:active {\\n border-color: \").concat(dt('inputnumber.button.active.border.color'), \";\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-increment-button {\\n order: 1;\\n border-top-left-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-top-right-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n width: 100%;\\n border-bottom: 0 none;\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-input {\\n order: 2;\\n border-radius: 0;\\n text-align: center;\\n}\\n\\n.p-inputnumber-vertical .p-inputnumber-decrement-button {\\n order: 3;\\n border-bottom-left-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n border-bottom-right-radius: \").concat(dt('inputnumber.button.border.radius'), \";\\n width: 100%;\\n border-top: 0 none;\\n}\\n\\n.p-inputnumber-input {\\n flex: 1 1 auto;\\n}\\n\\n.p-inputnumber-fluid {\\n width: 100%;\\n}\\n\\n.p-inputnumber-fluid .p-inputnumber-input {\\n width: 1%;\\n}\\n\\n.p-inputnumber-fluid.p-inputnumber-vertical .p-inputnumber-input {\\n width: 100%;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-inputnumber p-component p-inputwrapper', {\n 'p-inputwrapper-filled': instance.filled || props.allowEmpty === false,\n 'p-inputwrapper-focus': instance.focused,\n 'p-inputnumber-stacked': props.showButtons && props.buttonLayout === 'stacked',\n 'p-inputnumber-horizontal': props.showButtons && props.buttonLayout === 'horizontal',\n 'p-inputnumber-vertical': props.showButtons && props.buttonLayout === 'vertical',\n 'p-inputnumber-fluid': instance.hasFluid\n }];\n },\n pcInput: 'p-inputnumber-input',\n buttonGroup: 'p-inputnumber-button-group',\n incrementButton: function incrementButton(_ref3) {\n var instance = _ref3.instance,\n props = _ref3.props;\n return ['p-inputnumber-button p-inputnumber-increment-button', {\n 'p-disabled': props.showButtons && props.max !== null && instance.maxBoundry()\n }];\n },\n decrementButton: function decrementButton(_ref4) {\n var instance = _ref4.instance,\n props = _ref4.props;\n return ['p-inputnumber-button p-inputnumber-decrement-button', {\n 'p-disabled': props.showButtons && props.min !== null && instance.minBoundry()\n }];\n }\n};\nvar InputNumberStyle = BaseStyle.extend({\n name: 'inputnumber',\n theme: theme,\n classes: classes\n});\n\nexport { InputNumberStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getSelection, clearSelection } from '@primeuix/utils/dom';\nimport { isNotEmpty, isEmpty } from '@primeuix/utils/object';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleUpIcon from '@primevue/icons/angleup';\nimport InputText from 'primevue/inputtext';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport InputNumberStyle from 'primevue/inputnumber/style';\nimport { resolveComponent, openBlock, createElementBlock, mergeProps, createVNode, normalizeClass, normalizeStyle, renderSlot, createElementVNode, toHandlers, createBlock, resolveDynamicComponent, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseInputNumber',\n \"extends\": BaseComponent,\n props: {\n modelValue: {\n type: Number,\n \"default\": null\n },\n format: {\n type: Boolean,\n \"default\": true\n },\n showButtons: {\n type: Boolean,\n \"default\": false\n },\n buttonLayout: {\n type: String,\n \"default\": 'stacked'\n },\n incrementButtonClass: {\n type: String,\n \"default\": null\n },\n decrementButtonClass: {\n type: String,\n \"default\": null\n },\n incrementButtonIcon: {\n type: String,\n \"default\": undefined\n },\n incrementIcon: {\n type: String,\n \"default\": undefined\n },\n decrementButtonIcon: {\n type: String,\n \"default\": undefined\n },\n decrementIcon: {\n type: String,\n \"default\": undefined\n },\n locale: {\n type: String,\n \"default\": undefined\n },\n localeMatcher: {\n type: String,\n \"default\": undefined\n },\n mode: {\n type: String,\n \"default\": 'decimal'\n },\n prefix: {\n type: String,\n \"default\": null\n },\n suffix: {\n type: String,\n \"default\": null\n },\n currency: {\n type: String,\n \"default\": undefined\n },\n currencyDisplay: {\n type: String,\n \"default\": undefined\n },\n useGrouping: {\n type: Boolean,\n \"default\": true\n },\n minFractionDigits: {\n type: Number,\n \"default\": undefined\n },\n maxFractionDigits: {\n type: Number,\n \"default\": undefined\n },\n roundingMode: {\n type: String,\n \"default\": 'halfExpand',\n validator: function validator(value) {\n return ['ceil', 'floor', 'expand', 'trunc', 'halfCeil', 'halfFloor', 'halfExpand', 'halfTrunc', 'halfEven'].includes(value);\n }\n },\n min: {\n type: Number,\n \"default\": null\n },\n max: {\n type: Number,\n \"default\": null\n },\n step: {\n type: Number,\n \"default\": 1\n },\n allowEmpty: {\n type: Boolean,\n \"default\": true\n },\n highlightOnFocus: {\n type: Boolean,\n \"default\": false\n },\n readonly: {\n type: Boolean,\n \"default\": false\n },\n variant: {\n type: String,\n \"default\": null\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n placeholder: {\n type: String,\n \"default\": null\n },\n fluid: {\n type: Boolean,\n \"default\": null\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: InputNumberStyle,\n provide: function provide() {\n return {\n $pcInputNumber: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'InputNumber',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'input', 'focus', 'blur'],\n inject: {\n $pcFluid: {\n \"default\": null\n }\n },\n numberFormat: null,\n _numeral: null,\n _decimal: null,\n _group: null,\n _minusSign: null,\n _currency: null,\n _suffix: null,\n _prefix: null,\n _index: null,\n groupChar: '',\n isSpecialChar: null,\n prefixChar: null,\n suffixChar: null,\n timer: null,\n data: function data() {\n return {\n d_modelValue: this.modelValue,\n focused: false\n };\n },\n watch: {\n modelValue: function modelValue(newValue) {\n this.d_modelValue = newValue;\n },\n locale: function locale(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n localeMatcher: function localeMatcher(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n mode: function mode(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n currency: function currency(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n currencyDisplay: function currencyDisplay(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n useGrouping: function useGrouping(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n minFractionDigits: function minFractionDigits(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n maxFractionDigits: function maxFractionDigits(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n suffix: function suffix(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n },\n prefix: function prefix(newValue, oldValue) {\n this.updateConstructParser(newValue, oldValue);\n }\n },\n created: function created() {\n this.constructParser();\n },\n methods: {\n getOptions: function getOptions() {\n return {\n localeMatcher: this.localeMatcher,\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n useGrouping: this.useGrouping,\n minimumFractionDigits: this.minFractionDigits,\n maximumFractionDigits: this.maxFractionDigits,\n roundingMode: this.roundingMode\n };\n },\n constructParser: function constructParser() {\n this.numberFormat = new Intl.NumberFormat(this.locale, this.getOptions());\n var numerals = _toConsumableArray(new Intl.NumberFormat(this.locale, {\n useGrouping: false\n }).format(9876543210)).reverse();\n var index = new Map(numerals.map(function (d, i) {\n return [d, i];\n }));\n this._numeral = new RegExp(\"[\".concat(numerals.join(''), \"]\"), 'g');\n this._group = this.getGroupingExpression();\n this._minusSign = this.getMinusSignExpression();\n this._currency = this.getCurrencyExpression();\n this._decimal = this.getDecimalExpression();\n this._suffix = this.getSuffixExpression();\n this._prefix = this.getPrefixExpression();\n this._index = function (d) {\n return index.get(d);\n };\n },\n updateConstructParser: function updateConstructParser(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.constructParser();\n }\n },\n escapeRegExp: function escapeRegExp(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n },\n getDecimalExpression: function getDecimalExpression() {\n var formatter = new Intl.NumberFormat(this.locale, _objectSpread(_objectSpread({}, this.getOptions()), {}, {\n useGrouping: false\n }));\n return new RegExp(\"[\".concat(formatter.format(1.1).replace(this._currency, '').trim().replace(this._numeral, ''), \"]\"), 'g');\n },\n getGroupingExpression: function getGroupingExpression() {\n var formatter = new Intl.NumberFormat(this.locale, {\n useGrouping: true\n });\n this.groupChar = formatter.format(1000000).trim().replace(this._numeral, '').charAt(0);\n return new RegExp(\"[\".concat(this.groupChar, \"]\"), 'g');\n },\n getMinusSignExpression: function getMinusSignExpression() {\n var formatter = new Intl.NumberFormat(this.locale, {\n useGrouping: false\n });\n return new RegExp(\"[\".concat(formatter.format(-1).trim().replace(this._numeral, ''), \"]\"), 'g');\n },\n getCurrencyExpression: function getCurrencyExpression() {\n if (this.currency) {\n var formatter = new Intl.NumberFormat(this.locale, {\n style: 'currency',\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n roundingMode: this.roundingMode\n });\n return new RegExp(\"[\".concat(formatter.format(1).replace(/\\s/g, '').replace(this._numeral, '').replace(this._group, ''), \"]\"), 'g');\n }\n return new RegExp(\"[]\", 'g');\n },\n getPrefixExpression: function getPrefixExpression() {\n if (this.prefix) {\n this.prefixChar = this.prefix;\n } else {\n var formatter = new Intl.NumberFormat(this.locale, {\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay\n });\n this.prefixChar = formatter.format(1).split('1')[0];\n }\n return new RegExp(\"\".concat(this.escapeRegExp(this.prefixChar || '')), 'g');\n },\n getSuffixExpression: function getSuffixExpression() {\n if (this.suffix) {\n this.suffixChar = this.suffix;\n } else {\n var formatter = new Intl.NumberFormat(this.locale, {\n style: this.mode,\n currency: this.currency,\n currencyDisplay: this.currencyDisplay,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n roundingMode: this.roundingMode\n });\n this.suffixChar = formatter.format(1).split('1')[1];\n }\n return new RegExp(\"\".concat(this.escapeRegExp(this.suffixChar || '')), 'g');\n },\n formatValue: function formatValue(value) {\n if (value != null) {\n if (value === '-') {\n // Minus sign\n return value;\n }\n if (this.format) {\n var formatter = new Intl.NumberFormat(this.locale, this.getOptions());\n var formattedValue = formatter.format(value);\n if (this.prefix) {\n formattedValue = this.prefix + formattedValue;\n }\n if (this.suffix) {\n formattedValue = formattedValue + this.suffix;\n }\n return formattedValue;\n }\n return value.toString();\n }\n return '';\n },\n parseValue: function parseValue(text) {\n var filteredText = text.replace(this._suffix, '').replace(this._prefix, '').trim().replace(/\\s/g, '').replace(this._currency, '').replace(this._group, '').replace(this._minusSign, '-').replace(this._decimal, '.').replace(this._numeral, this._index);\n if (filteredText) {\n if (filteredText === '-')\n // Minus sign\n return filteredText;\n var parsedValue = +filteredText;\n return isNaN(parsedValue) ? null : parsedValue;\n }\n return null;\n },\n repeat: function repeat(event, interval, dir) {\n var _this = this;\n if (this.readonly) {\n return;\n }\n var i = interval || 500;\n this.clearTimer();\n this.timer = setTimeout(function () {\n _this.repeat(event, 40, dir);\n }, i);\n this.spin(event, dir);\n },\n spin: function spin(event, dir) {\n if (this.$refs.input) {\n var step = this.step * dir;\n var currentValue = this.parseValue(this.$refs.input.$el.value) || 0;\n var newValue = this.validateValue(currentValue + step);\n this.updateInput(newValue, null, 'spin');\n this.updateModel(event, newValue);\n this.handleOnInput(event, currentValue, newValue);\n }\n },\n onUpButtonMouseDown: function onUpButtonMouseDown(event) {\n if (!this.disabled) {\n this.$refs.input.$el.focus();\n this.repeat(event, null, 1);\n event.preventDefault();\n }\n },\n onUpButtonMouseUp: function onUpButtonMouseUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onUpButtonMouseLeave: function onUpButtonMouseLeave() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onUpButtonKeyUp: function onUpButtonKeyUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onUpButtonKeyDown: function onUpButtonKeyDown(event) {\n if (event.code === 'Space' || event.code === 'Enter' || event.code === 'NumpadEnter') {\n this.repeat(event, null, 1);\n }\n },\n onDownButtonMouseDown: function onDownButtonMouseDown(event) {\n if (!this.disabled) {\n this.$refs.input.$el.focus();\n this.repeat(event, null, -1);\n event.preventDefault();\n }\n },\n onDownButtonMouseUp: function onDownButtonMouseUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onDownButtonMouseLeave: function onDownButtonMouseLeave() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onDownButtonKeyUp: function onDownButtonKeyUp() {\n if (!this.disabled) {\n this.clearTimer();\n }\n },\n onDownButtonKeyDown: function onDownButtonKeyDown(event) {\n if (event.code === 'Space' || event.code === 'Enter' || event.code === 'NumpadEnter') {\n this.repeat(event, null, -1);\n }\n },\n onUserInput: function onUserInput() {\n if (this.isSpecialChar) {\n this.$refs.input.$el.value = this.lastValue;\n }\n this.isSpecialChar = false;\n },\n onInputKeyDown: function onInputKeyDown(event) {\n if (this.readonly) {\n return;\n }\n if (event.altKey || event.ctrlKey || event.metaKey) {\n this.isSpecialChar = true;\n this.lastValue = this.$refs.input.$el.value;\n return;\n }\n this.lastValue = event.target.value;\n var selectionStart = event.target.selectionStart;\n var selectionEnd = event.target.selectionEnd;\n var inputValue = event.target.value;\n var newValueStr = null;\n switch (event.code) {\n case 'ArrowUp':\n this.spin(event, 1);\n event.preventDefault();\n break;\n case 'ArrowDown':\n this.spin(event, -1);\n event.preventDefault();\n break;\n case 'ArrowLeft':\n if (!this.isNumeralChar(inputValue.charAt(selectionStart - 1))) {\n event.preventDefault();\n }\n break;\n case 'ArrowRight':\n if (!this.isNumeralChar(inputValue.charAt(selectionStart))) {\n event.preventDefault();\n }\n break;\n case 'Tab':\n case 'Enter':\n case 'NumpadEnter':\n newValueStr = this.validateValue(this.parseValue(inputValue));\n this.$refs.input.$el.value = this.formatValue(newValueStr);\n this.$refs.input.$el.setAttribute('aria-valuenow', newValueStr);\n this.updateModel(event, newValueStr);\n break;\n case 'Backspace':\n {\n event.preventDefault();\n if (selectionStart === selectionEnd) {\n var deleteChar = inputValue.charAt(selectionStart - 1);\n var _this$getDecimalCharI = this.getDecimalCharIndexes(inputValue),\n decimalCharIndex = _this$getDecimalCharI.decimalCharIndex,\n decimalCharIndexWithoutPrefix = _this$getDecimalCharI.decimalCharIndexWithoutPrefix;\n if (this.isNumeralChar(deleteChar)) {\n var decimalLength = this.getDecimalLength(inputValue);\n if (this._group.test(deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart - 2) + inputValue.slice(selectionStart - 1);\n } else if (this._decimal.test(deleteChar)) {\n this._decimal.lastIndex = 0;\n if (decimalLength) {\n this.$refs.input.$el.setSelectionRange(selectionStart - 1, selectionStart - 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n } else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n var insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart - 1) + insertedText + inputValue.slice(selectionStart);\n } else if (decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart - 1) + '0' + inputValue.slice(selectionStart);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n }\n }\n this.updateValue(event, newValueStr, null, 'delete-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n break;\n }\n case 'Delete':\n event.preventDefault();\n if (selectionStart === selectionEnd) {\n var _deleteChar = inputValue.charAt(selectionStart);\n var _this$getDecimalCharI2 = this.getDecimalCharIndexes(inputValue),\n _decimalCharIndex = _this$getDecimalCharI2.decimalCharIndex,\n _decimalCharIndexWithoutPrefix = _this$getDecimalCharI2.decimalCharIndexWithoutPrefix;\n if (this.isNumeralChar(_deleteChar)) {\n var _decimalLength = this.getDecimalLength(inputValue);\n if (this._group.test(_deleteChar)) {\n this._group.lastIndex = 0;\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 2);\n } else if (this._decimal.test(_deleteChar)) {\n this._decimal.lastIndex = 0;\n if (_decimalLength) {\n this.$refs.input.$el.setSelectionRange(selectionStart + 1, selectionStart + 1);\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n } else if (_decimalCharIndex > 0 && selectionStart > _decimalCharIndex) {\n var _insertedText = this.isDecimalMode() && (this.minFractionDigits || 0) < _decimalLength ? '' : '0';\n newValueStr = inputValue.slice(0, selectionStart) + _insertedText + inputValue.slice(selectionStart + 1);\n } else if (_decimalCharIndexWithoutPrefix === 1) {\n newValueStr = inputValue.slice(0, selectionStart) + '0' + inputValue.slice(selectionStart + 1);\n newValueStr = this.parseValue(newValueStr) > 0 ? newValueStr : '';\n } else {\n newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n }\n }\n this.updateValue(event, newValueStr, null, 'delete-back-single');\n } else {\n newValueStr = this.deleteRange(inputValue, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, null, 'delete-range');\n }\n break;\n case 'Home':\n event.preventDefault();\n if (isNotEmpty(this.min)) {\n this.updateModel(event, this.min);\n }\n break;\n case 'End':\n event.preventDefault();\n if (isNotEmpty(this.max)) {\n this.updateModel(event, this.max);\n }\n break;\n }\n },\n onInputKeyPress: function onInputKeyPress(event) {\n if (this.readonly) {\n return;\n }\n var _char = event.key;\n var isDecimalSign = this.isDecimalSign(_char);\n var isMinusSign = this.isMinusSign(_char);\n if (event.code !== 'Enter') {\n event.preventDefault();\n }\n if (Number(_char) >= 0 && Number(_char) <= 9 || isMinusSign || isDecimalSign) {\n this.insert(event, _char, {\n isDecimalSign: isDecimalSign,\n isMinusSign: isMinusSign\n });\n }\n },\n onPaste: function onPaste(event) {\n event.preventDefault();\n var data = (event.clipboardData || window['clipboardData']).getData('Text');\n if (data) {\n var filteredData = this.parseValue(data);\n if (filteredData != null) {\n this.insert(event, filteredData.toString());\n }\n }\n },\n allowMinusSign: function allowMinusSign() {\n return this.min === null || this.min < 0;\n },\n isMinusSign: function isMinusSign(_char2) {\n if (this._minusSign.test(_char2) || _char2 === '-') {\n this._minusSign.lastIndex = 0;\n return true;\n }\n return false;\n },\n isDecimalSign: function isDecimalSign(_char3) {\n if (this._decimal.test(_char3)) {\n this._decimal.lastIndex = 0;\n return true;\n }\n return false;\n },\n isDecimalMode: function isDecimalMode() {\n return this.mode === 'decimal';\n },\n getDecimalCharIndexes: function getDecimalCharIndexes(val) {\n var decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n var filteredVal = val.replace(this._prefix, '').trim().replace(/\\s/g, '').replace(this._currency, '');\n var decimalCharIndexWithoutPrefix = filteredVal.search(this._decimal);\n this._decimal.lastIndex = 0;\n return {\n decimalCharIndex: decimalCharIndex,\n decimalCharIndexWithoutPrefix: decimalCharIndexWithoutPrefix\n };\n },\n getCharIndexes: function getCharIndexes(val) {\n var decimalCharIndex = val.search(this._decimal);\n this._decimal.lastIndex = 0;\n var minusCharIndex = val.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n var suffixCharIndex = val.search(this._suffix);\n this._suffix.lastIndex = 0;\n var currencyCharIndex = val.search(this._currency);\n this._currency.lastIndex = 0;\n return {\n decimalCharIndex: decimalCharIndex,\n minusCharIndex: minusCharIndex,\n suffixCharIndex: suffixCharIndex,\n currencyCharIndex: currencyCharIndex\n };\n },\n insert: function insert(event, text) {\n var sign = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n isDecimalSign: false,\n isMinusSign: false\n };\n var minusCharIndexOnText = text.search(this._minusSign);\n this._minusSign.lastIndex = 0;\n if (!this.allowMinusSign() && minusCharIndexOnText !== -1) {\n return;\n }\n var selectionStart = this.$refs.input.$el.selectionStart;\n var selectionEnd = this.$refs.input.$el.selectionEnd;\n var inputValue = this.$refs.input.$el.value.trim();\n var _this$getCharIndexes = this.getCharIndexes(inputValue),\n decimalCharIndex = _this$getCharIndexes.decimalCharIndex,\n minusCharIndex = _this$getCharIndexes.minusCharIndex,\n suffixCharIndex = _this$getCharIndexes.suffixCharIndex,\n currencyCharIndex = _this$getCharIndexes.currencyCharIndex;\n var newValueStr;\n if (sign.isMinusSign) {\n if (selectionStart === 0) {\n newValueStr = inputValue;\n if (minusCharIndex === -1 || selectionEnd !== 0) {\n newValueStr = this.insertText(inputValue, text, 0, selectionEnd);\n }\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else if (sign.isDecimalSign) {\n if (decimalCharIndex > 0 && selectionStart === decimalCharIndex) {\n this.updateValue(event, inputValue, text, 'insert');\n } else if (decimalCharIndex > selectionStart && decimalCharIndex < selectionEnd) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n } else if (decimalCharIndex === -1 && this.maxFractionDigits) {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, 'insert');\n }\n } else {\n var maxFractionDigits = this.numberFormat.resolvedOptions().maximumFractionDigits;\n var operation = selectionStart !== selectionEnd ? 'range-insert' : 'insert';\n if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n if (selectionStart + text.length - (decimalCharIndex + 1) <= maxFractionDigits) {\n var charIndex = currencyCharIndex >= selectionStart ? currencyCharIndex - 1 : suffixCharIndex >= selectionStart ? suffixCharIndex : inputValue.length;\n newValueStr = inputValue.slice(0, selectionStart) + text + inputValue.slice(selectionStart + text.length, charIndex) + inputValue.slice(charIndex);\n this.updateValue(event, newValueStr, text, operation);\n }\n } else {\n newValueStr = this.insertText(inputValue, text, selectionStart, selectionEnd);\n this.updateValue(event, newValueStr, text, operation);\n }\n }\n },\n insertText: function insertText(value, text, start, end) {\n var textSplit = text === '.' ? text : text.split('.');\n if (textSplit.length === 2) {\n var decimalCharIndex = value.slice(start, end).search(this._decimal);\n this._decimal.lastIndex = 0;\n return decimalCharIndex > 0 ? value.slice(0, start) + this.formatValue(text) + value.slice(end) : this.formatValue(text) || value;\n } else if (end - start === value.length) {\n return this.formatValue(text);\n } else if (start === 0) {\n return text + value.slice(end);\n } else if (end === value.length) {\n return value.slice(0, start) + text;\n } else {\n return value.slice(0, start) + text + value.slice(end);\n }\n },\n deleteRange: function deleteRange(value, start, end) {\n var newValueStr;\n if (end - start === value.length) newValueStr = '';else if (start === 0) newValueStr = value.slice(end);else if (end === value.length) newValueStr = value.slice(0, start);else newValueStr = value.slice(0, start) + value.slice(end);\n return newValueStr;\n },\n initCursor: function initCursor() {\n var selectionStart = this.$refs.input.$el.selectionStart;\n var inputValue = this.$refs.input.$el.value;\n var valueLength = inputValue.length;\n var index = null;\n\n // remove prefix\n var prefixLength = (this.prefixChar || '').length;\n inputValue = inputValue.replace(this._prefix, '');\n selectionStart = selectionStart - prefixLength;\n var _char4 = inputValue.charAt(selectionStart);\n if (this.isNumeralChar(_char4)) {\n return selectionStart + prefixLength;\n }\n\n //left\n var i = selectionStart - 1;\n while (i >= 0) {\n _char4 = inputValue.charAt(i);\n if (this.isNumeralChar(_char4)) {\n index = i + prefixLength;\n break;\n } else {\n i--;\n }\n }\n if (index !== null) {\n this.$refs.input.$el.setSelectionRange(index + 1, index + 1);\n } else {\n i = selectionStart;\n while (i < valueLength) {\n _char4 = inputValue.charAt(i);\n if (this.isNumeralChar(_char4)) {\n index = i + prefixLength;\n break;\n } else {\n i++;\n }\n }\n if (index !== null) {\n this.$refs.input.$el.setSelectionRange(index, index);\n }\n }\n return index || 0;\n },\n onInputClick: function onInputClick() {\n var currentValue = this.$refs.input.$el.value;\n if (!this.readonly && currentValue !== getSelection()) {\n this.initCursor();\n }\n },\n isNumeralChar: function isNumeralChar(_char5) {\n if (_char5.length === 1 && (this._numeral.test(_char5) || this._decimal.test(_char5) || this._group.test(_char5) || this._minusSign.test(_char5))) {\n this.resetRegex();\n return true;\n }\n return false;\n },\n resetRegex: function resetRegex() {\n this._numeral.lastIndex = 0;\n this._decimal.lastIndex = 0;\n this._group.lastIndex = 0;\n this._minusSign.lastIndex = 0;\n },\n updateValue: function updateValue(event, valueStr, insertedValueStr, operation) {\n var currentValue = this.$refs.input.$el.value;\n var newValue = null;\n if (valueStr != null) {\n newValue = this.parseValue(valueStr);\n newValue = !newValue && !this.allowEmpty ? 0 : newValue;\n this.updateInput(newValue, insertedValueStr, operation, valueStr);\n this.handleOnInput(event, currentValue, newValue);\n }\n },\n handleOnInput: function handleOnInput(event, currentValue, newValue) {\n if (this.isValueChanged(currentValue, newValue)) {\n this.$emit('input', {\n originalEvent: event,\n value: newValue,\n formattedValue: currentValue\n });\n }\n },\n isValueChanged: function isValueChanged(currentValue, newValue) {\n if (newValue === null && currentValue !== null) {\n return true;\n }\n if (newValue != null) {\n var parsedCurrentValue = typeof currentValue === 'string' ? this.parseValue(currentValue) : currentValue;\n return newValue !== parsedCurrentValue;\n }\n return false;\n },\n validateValue: function validateValue(value) {\n if (value === '-' || value == null) {\n return null;\n }\n if (this.min != null && value < this.min) {\n return this.min;\n }\n if (this.max != null && value > this.max) {\n return this.max;\n }\n return value;\n },\n updateInput: function updateInput(value, insertedValueStr, operation, valueStr) {\n insertedValueStr = insertedValueStr || '';\n var inputValue = this.$refs.input.$el.value;\n var newValue = this.formatValue(value);\n var currentLength = inputValue.length;\n if (newValue !== valueStr) {\n newValue = this.concatValues(newValue, valueStr);\n }\n if (currentLength === 0) {\n this.$refs.input.$el.value = newValue;\n this.$refs.input.$el.setSelectionRange(0, 0);\n var index = this.initCursor();\n var selectionEnd = index + insertedValueStr.length;\n this.$refs.input.$el.setSelectionRange(selectionEnd, selectionEnd);\n } else {\n var selectionStart = this.$refs.input.$el.selectionStart;\n var _selectionEnd = this.$refs.input.$el.selectionEnd;\n this.$refs.input.$el.value = newValue;\n var newLength = newValue.length;\n if (operation === 'range-insert') {\n var startValue = this.parseValue((inputValue || '').slice(0, selectionStart));\n var startValueStr = startValue !== null ? startValue.toString() : '';\n var startExpr = startValueStr.split('').join(\"(\".concat(this.groupChar, \")?\"));\n var sRegex = new RegExp(startExpr, 'g');\n sRegex.test(newValue);\n var tExpr = insertedValueStr.split('').join(\"(\".concat(this.groupChar, \")?\"));\n var tRegex = new RegExp(tExpr, 'g');\n tRegex.test(newValue.slice(sRegex.lastIndex));\n _selectionEnd = sRegex.lastIndex + tRegex.lastIndex;\n this.$refs.input.$el.setSelectionRange(_selectionEnd, _selectionEnd);\n } else if (newLength === currentLength) {\n if (operation === 'insert' || operation === 'delete-back-single') {\n this.$refs.input.$el.setSelectionRange(_selectionEnd + 1, _selectionEnd + 1);\n } else if (operation === 'delete-single') {\n this.$refs.input.$el.setSelectionRange(_selectionEnd - 1, _selectionEnd - 1);\n } else if (operation === 'delete-range' || operation === 'spin') {\n this.$refs.input.$el.setSelectionRange(_selectionEnd, _selectionEnd);\n }\n } else if (operation === 'delete-back-single') {\n var prevChar = inputValue.charAt(_selectionEnd - 1);\n var nextChar = inputValue.charAt(_selectionEnd);\n var diff = currentLength - newLength;\n var isGroupChar = this._group.test(nextChar);\n if (isGroupChar && diff === 1) {\n _selectionEnd += 1;\n } else if (!isGroupChar && this.isNumeralChar(prevChar)) {\n _selectionEnd += -1 * diff + 1;\n }\n this._group.lastIndex = 0;\n this.$refs.input.$el.setSelectionRange(_selectionEnd, _selectionEnd);\n } else if (inputValue === '-' && operation === 'insert') {\n this.$refs.input.$el.setSelectionRange(0, 0);\n var _index = this.initCursor();\n var _selectionEnd2 = _index + insertedValueStr.length + 1;\n this.$refs.input.$el.setSelectionRange(_selectionEnd2, _selectionEnd2);\n } else {\n _selectionEnd = _selectionEnd + (newLength - currentLength);\n this.$refs.input.$el.setSelectionRange(_selectionEnd, _selectionEnd);\n }\n }\n this.$refs.input.$el.setAttribute('aria-valuenow', value);\n },\n concatValues: function concatValues(val1, val2) {\n if (val1 && val2) {\n var decimalCharIndex = val2.search(this._decimal);\n this._decimal.lastIndex = 0;\n if (this.suffixChar) {\n return decimalCharIndex !== -1 ? val1.replace(this.suffixChar, '').split(this._decimal)[0] + val2.replace(this.suffixChar, '').slice(decimalCharIndex) + this.suffixChar : val1;\n } else {\n return decimalCharIndex !== -1 ? val1.split(this._decimal)[0] + val2.slice(decimalCharIndex) : val1;\n }\n }\n return val1;\n },\n getDecimalLength: function getDecimalLength(value) {\n if (value) {\n var valueSplit = value.split(this._decimal);\n if (valueSplit.length === 2) {\n return valueSplit[1].replace(this._suffix, '').trim().replace(/\\s/g, '').replace(this._currency, '').length;\n }\n }\n return 0;\n },\n updateModel: function updateModel(event, value) {\n this.d_modelValue = value;\n this.$emit('update:modelValue', value);\n },\n onInputFocus: function onInputFocus(event) {\n this.focused = true;\n if (!this.disabled && !this.readonly && this.$refs.input.$el.value !== getSelection() && this.highlightOnFocus) {\n event.target.select();\n }\n this.$emit('focus', event);\n },\n onInputBlur: function onInputBlur(event) {\n this.focused = false;\n var input = event.target;\n var newValue = this.validateValue(this.parseValue(input.value));\n this.$emit('blur', {\n originalEvent: event,\n value: input.value\n });\n input.value = this.formatValue(newValue);\n input.setAttribute('aria-valuenow', newValue);\n this.updateModel(event, newValue);\n if (!this.disabled && !this.readonly && this.highlightOnFocus) {\n clearSelection();\n }\n },\n clearTimer: function clearTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n },\n maxBoundry: function maxBoundry() {\n return this.d_modelValue >= this.max;\n },\n minBoundry: function minBoundry() {\n return this.d_modelValue <= this.min;\n }\n },\n computed: {\n filled: function filled() {\n return this.modelValue != null && this.modelValue.toString().length > 0;\n },\n upButtonListeners: function upButtonListeners() {\n var _this2 = this;\n return {\n mousedown: function mousedown(event) {\n return _this2.onUpButtonMouseDown(event);\n },\n mouseup: function mouseup(event) {\n return _this2.onUpButtonMouseUp(event);\n },\n mouseleave: function mouseleave(event) {\n return _this2.onUpButtonMouseLeave(event);\n },\n keydown: function keydown(event) {\n return _this2.onUpButtonKeyDown(event);\n },\n keyup: function keyup(event) {\n return _this2.onUpButtonKeyUp(event);\n }\n };\n },\n downButtonListeners: function downButtonListeners() {\n var _this3 = this;\n return {\n mousedown: function mousedown(event) {\n return _this3.onDownButtonMouseDown(event);\n },\n mouseup: function mouseup(event) {\n return _this3.onDownButtonMouseUp(event);\n },\n mouseleave: function mouseleave(event) {\n return _this3.onDownButtonMouseLeave(event);\n },\n keydown: function keydown(event) {\n return _this3.onDownButtonKeyDown(event);\n },\n keyup: function keyup(event) {\n return _this3.onDownButtonKeyUp(event);\n }\n };\n },\n formattedValue: function formattedValue() {\n var val = !this.modelValue && !this.allowEmpty ? 0 : this.modelValue;\n return this.formatValue(val);\n },\n getFormatter: function getFormatter() {\n return this.numberFormat;\n },\n hasFluid: function hasFluid() {\n return isEmpty(this.fluid) ? !!this.$pcFluid : this.fluid;\n }\n },\n components: {\n InputText: InputText,\n AngleUpIcon: AngleUpIcon,\n AngleDownIcon: AngleDownIcon\n }\n};\n\nvar _hoisted_1 = [\"disabled\"];\nvar _hoisted_2 = [\"disabled\"];\nvar _hoisted_3 = [\"disabled\"];\nvar _hoisted_4 = [\"disabled\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_InputText = resolveComponent(\"InputText\");\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [createVNode(_component_InputText, {\n ref: \"input\",\n id: _ctx.inputId,\n role: \"spinbutton\",\n \"class\": normalizeClass([_ctx.cx('pcInput'), _ctx.inputClass]),\n style: normalizeStyle(_ctx.inputStyle),\n value: $options.formattedValue,\n \"aria-valuemin\": _ctx.min,\n \"aria-valuemax\": _ctx.max,\n \"aria-valuenow\": _ctx.modelValue,\n inputmode: _ctx.mode === 'decimal' && !_ctx.minFractionDigits ? 'numeric' : 'decimal',\n disabled: _ctx.disabled,\n readonly: _ctx.readonly,\n placeholder: _ctx.placeholder,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n invalid: _ctx.invalid,\n variant: _ctx.variant,\n onInput: $options.onUserInput,\n onKeydown: $options.onInputKeyDown,\n onKeypress: $options.onInputKeyPress,\n onPaste: $options.onPaste,\n onClick: $options.onInputClick,\n onFocus: $options.onInputFocus,\n onBlur: $options.onInputBlur,\n pt: _ctx.ptm('pcInput'),\n unstyled: _ctx.unstyled\n }, null, 8, [\"id\", \"class\", \"style\", \"value\", \"aria-valuemin\", \"aria-valuemax\", \"aria-valuenow\", \"inputmode\", \"disabled\", \"readonly\", \"placeholder\", \"aria-labelledby\", \"aria-label\", \"invalid\", \"variant\", \"onInput\", \"onKeydown\", \"onKeypress\", \"onPaste\", \"onClick\", \"onFocus\", \"onBlur\", \"pt\", \"unstyled\"]), _ctx.showButtons && _ctx.buttonLayout === 'stacked' ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('buttonGroup')\n }, _ctx.ptm('buttonGroup')), [renderSlot(_ctx.$slots, \"incrementbutton\", {\n listeners: $options.upButtonListeners\n }, function () {\n return [createElementVNode(\"button\", mergeProps({\n \"class\": [_ctx.cx('incrementButton'), _ctx.incrementButtonClass]\n }, toHandlers($options.upButtonListeners, true), {\n disabled: _ctx.disabled,\n tabindex: -1,\n \"aria-hidden\": \"true\",\n type: \"button\"\n }, _ctx.ptm('incrementButton')), [renderSlot(_ctx.$slots, _ctx.$slots.incrementicon ? 'incrementicon' : 'incrementbuttonicon', {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.incrementIcon || _ctx.incrementButtonIcon ? 'span' : 'AngleUpIcon'), mergeProps({\n \"class\": [_ctx.incrementIcon, _ctx.incrementButtonIcon]\n }, _ctx.ptm('incrementIcon'), {\n \"data-pc-section\": \"incrementicon\"\n }), null, 16, [\"class\"]))];\n })], 16, _hoisted_1)];\n }), renderSlot(_ctx.$slots, \"decrementbutton\", {\n listeners: $options.downButtonListeners\n }, function () {\n return [createElementVNode(\"button\", mergeProps({\n \"class\": [_ctx.cx('decrementButton'), _ctx.decrementButtonClass]\n }, toHandlers($options.downButtonListeners, true), {\n disabled: _ctx.disabled,\n tabindex: -1,\n \"aria-hidden\": \"true\",\n type: \"button\"\n }, _ctx.ptm('decrementButton')), [renderSlot(_ctx.$slots, _ctx.$slots.decrementicon ? 'decrementicon' : 'decrementbuttonicon', {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.decrementIcon || _ctx.decrementButtonIcon ? 'span' : 'AngleDownIcon'), mergeProps({\n \"class\": [_ctx.decrementIcon, _ctx.decrementButtonIcon]\n }, _ctx.ptm('decrementIcon'), {\n \"data-pc-section\": \"decrementicon\"\n }), null, 16, [\"class\"]))];\n })], 16, _hoisted_2)];\n })], 16)) : createCommentVNode(\"\", true), renderSlot(_ctx.$slots, \"incrementbutton\", {\n listeners: $options.upButtonListeners\n }, function () {\n return [_ctx.showButtons && _ctx.buttonLayout !== 'stacked' ? (openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('incrementButton'), _ctx.incrementButtonClass]\n }, toHandlers($options.upButtonListeners, true), {\n disabled: _ctx.disabled,\n tabindex: -1,\n \"aria-hidden\": \"true\",\n type: \"button\"\n }, _ctx.ptm('incrementButton')), [renderSlot(_ctx.$slots, _ctx.$slots.incrementicon ? 'incrementicon' : 'incrementbuttonicon', {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.incrementIcon || _ctx.incrementButtonIcon ? 'span' : 'AngleUpIcon'), mergeProps({\n \"class\": [_ctx.incrementIcon, _ctx.incrementButtonIcon]\n }, _ctx.ptm('incrementIcon'), {\n \"data-pc-section\": \"incrementicon\"\n }), null, 16, [\"class\"]))];\n })], 16, _hoisted_3)) : createCommentVNode(\"\", true)];\n }), renderSlot(_ctx.$slots, \"decrementbutton\", {\n listeners: $options.downButtonListeners\n }, function () {\n return [_ctx.showButtons && _ctx.buttonLayout !== 'stacked' ? (openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('decrementButton'), _ctx.decrementButtonClass]\n }, toHandlers($options.downButtonListeners, true), {\n disabled: _ctx.disabled,\n tabindex: -1,\n \"aria-hidden\": \"true\",\n type: \"button\"\n }, _ctx.ptm('decrementButton')), [renderSlot(_ctx.$slots, _ctx.$slots.decrementicon ? 'decrementicon' : 'decrementbuttonicon', {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.decrementIcon || _ctx.decrementButtonIcon ? 'span' : 'AngleDownIcon'), mergeProps({\n \"class\": [_ctx.decrementIcon, _ctx.decrementButtonIcon]\n }, _ctx.ptm('decrementIcon'), {\n \"data-pc-section\": \"decrementicon\"\n }), null, 16, [\"class\"]))];\n })], 16, _hoisted_4)) : createCommentVNode(\"\", true)];\n })], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-toggleswitch {\\n display: inline-block;\\n width: \".concat(dt('toggleswitch.width'), \";\\n height: \").concat(dt('toggleswitch.height'), \";\\n}\\n\\n.p-toggleswitch-input {\\n cursor: pointer;\\n appearance: none;\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n height: 100%;\\n padding: 0;\\n margin: 0;\\n opacity: 0;\\n z-index: 1;\\n outline: 0 none;\\n border-radius: \").concat(dt('toggleswitch.border.radius'), \";\\n}\\n\\n.p-toggleswitch-slider {\\n display: inline-block;\\n cursor: pointer;\\n width: 100%;\\n height: 100%;\\n border-width: \").concat(dt('toggleswitch.border.width'), \";\\n border-style: solid;\\n border-color: \").concat(dt('toggleswitch.border.color'), \";\\n background: \").concat(dt('toggleswitch.background'), \";\\n transition: background \").concat(dt('toggleswitch.transition.duration'), \", color \").concat(dt('toggleswitch.transition.duration'), \", border-color \").concat(dt('toggleswitch.transition.duration'), \", outline-color \").concat(dt('toggleswitch.transition.duration'), \", box-shadow \").concat(dt('toggleswitch.transition.duration'), \";\\n border-radius: \").concat(dt('toggleswitch.border.radius'), \";\\n outline-color: transparent;\\n box-shadow: \").concat(dt('toggleswitch.shadow'), \";\\n}\\n\\n.p-toggleswitch-slider:before {\\n position: absolute;\\n content: \\\"\\\";\\n top: 50%;\\n background: \").concat(dt('toggleswitch.handle.background'), \";\\n width: \").concat(dt('toggleswitch.handle.size'), \";\\n height: \").concat(dt('toggleswitch.handle.size'), \";\\n left: \").concat(dt('toggleswitch.gap'), \";\\n margin-top: calc(-1 * calc(\").concat(dt('toggleswitch.handle.size'), \" / 2));\\n border-radius: \").concat(dt('toggleswitch.handle.border.radius'), \";\\n transition: background \").concat(dt('toggleswitch.transition.duration'), \", left \").concat(dt('toggleswitch.slide.duration'), \";\\n}\\n\\n.p-toggleswitch.p-toggleswitch-checked .p-toggleswitch-slider {\\n background: \").concat(dt('toggleswitch.checked.background'), \";\\n border-color: \").concat(dt('toggleswitch.checked.border.color'), \";\\n}\\n\\n.p-toggleswitch.p-toggleswitch-checked .p-toggleswitch-slider:before {\\n background: \").concat(dt('toggleswitch.handle.checked.background'), \";\\n left: calc(\").concat(dt('toggleswitch.width'), \" - calc(\").concat(dt('toggleswitch.handle.size'), \" + \").concat(dt('toggleswitch.gap'), \"));\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover) .p-toggleswitch-slider {\\n background: \").concat(dt('toggleswitch.hover.background'), \";\\n border-color: \").concat(dt('toggleswitch.hover.border.color'), \";\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover) .p-toggleswitch-slider:before {\\n background: \").concat(dt('toggleswitch.handle.hover.background'), \";\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover).p-toggleswitch-checked .p-toggleswitch-slider {\\n background: \").concat(dt('toggleswitch.checked.hover.background'), \";\\n border-color: \").concat(dt('toggleswitch.checked.hover.border.color'), \";\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:hover).p-toggleswitch-checked .p-toggleswitch-slider:before {\\n background: \").concat(dt('toggleswitch.handle.checked.hover.background'), \";\\n}\\n\\n.p-toggleswitch:not(.p-disabled):has(.p-toggleswitch-input:focus-visible) .p-toggleswitch-slider {\\n box-shadow: \").concat(dt('toggleswitch.focus.ring.shadow'), \";\\n outline: \").concat(dt('toggleswitch.focus.ring.width'), \" \").concat(dt('toggleswitch.focus.ring.style'), \" \").concat(dt('toggleswitch.focus.ring.color'), \";\\n outline-offset: \").concat(dt('toggleswitch.focus.ring.offset'), \";\\n}\\n\\n.p-toggleswitch.p-invalid > .p-toggleswitch-slider {\\n border-color: \").concat(dt('toggleswitch.invalid.border.color'), \";\\n}\\n\\n.p-toggleswitch.p-disabled {\\n opacity: 1;\\n}\\n\\n.p-toggleswitch.p-disabled .p-toggleswitch-slider {\\n background: \").concat(dt('toggleswitch.disabled.background'), \";\\n}\\n\\n.p-toggleswitch.p-disabled .p-toggleswitch-slider:before {\\n background: \").concat(dt('toggleswitch.handle.disabled.background'), \";\\n}\\n\");\n};\nvar inlineStyles = {\n root: {\n position: 'relative'\n }\n};\nvar classes = {\n root: function root(_ref2) {\n var instance = _ref2.instance,\n props = _ref2.props;\n return ['p-toggleswitch p-component', {\n 'p-toggleswitch-checked': instance.checked,\n 'p-disabled': props.disabled,\n 'p-invalid': props.invalid\n }];\n },\n input: 'p-toggleswitch-input',\n slider: 'p-toggleswitch-slider'\n};\nvar ToggleSwitchStyle = BaseStyle.extend({\n name: 'toggleswitch',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { ToggleSwitchStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport ToggleSwitchStyle from 'primevue/toggleswitch/style';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseToggleSwitch',\n \"extends\": BaseComponent,\n props: {\n modelValue: {\n type: null,\n \"default\": false\n },\n trueValue: {\n type: null,\n \"default\": true\n },\n falseValue: {\n type: null,\n \"default\": false\n },\n invalid: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n readonly: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": null\n },\n inputId: {\n type: String,\n \"default\": null\n },\n inputClass: {\n type: [String, Object],\n \"default\": null\n },\n inputStyle: {\n type: Object,\n \"default\": null\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: ToggleSwitchStyle,\n provide: function provide() {\n return {\n $pcToggleSwitch: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ToggleSwitch',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'focus', 'blur'],\n methods: {\n getPTOptions: function getPTOptions(key) {\n var _ptm = key === 'root' ? this.ptmi : this.ptm;\n return _ptm(key, {\n context: {\n checked: this.checked,\n disabled: this.disabled\n }\n });\n },\n onChange: function onChange(event) {\n if (!this.disabled && !this.readonly) {\n var newValue = this.checked ? this.falseValue : this.trueValue;\n this.$emit('update:modelValue', newValue);\n this.$emit('change', event);\n }\n },\n onFocus: function onFocus(event) {\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.$emit('blur', event);\n }\n },\n computed: {\n checked: function checked() {\n return this.modelValue === this.trueValue;\n }\n }\n};\n\nvar _hoisted_1 = [\"data-p-checked\", \"data-p-disabled\"];\nvar _hoisted_2 = [\"id\", \"checked\", \"tabindex\", \"disabled\", \"readonly\", \"aria-checked\", \"aria-labelledby\", \"aria-label\", \"aria-invalid\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n style: _ctx.sx('root')\n }, $options.getPTOptions('root'), {\n \"data-p-checked\": $options.checked,\n \"data-p-disabled\": _ctx.disabled\n }), [createElementVNode(\"input\", mergeProps({\n id: _ctx.inputId,\n type: \"checkbox\",\n role: \"switch\",\n \"class\": [_ctx.cx('input'), _ctx.inputClass],\n style: _ctx.inputStyle,\n checked: $options.checked,\n tabindex: _ctx.tabindex,\n disabled: _ctx.disabled,\n readonly: _ctx.readonly,\n \"aria-checked\": $options.checked,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-invalid\": _ctx.invalid || undefined,\n onFocus: _cache[0] || (_cache[0] = function () {\n return $options.onFocus && $options.onFocus.apply($options, arguments);\n }),\n onBlur: _cache[1] || (_cache[1] = function () {\n return $options.onBlur && $options.onBlur.apply($options, arguments);\n }),\n onChange: _cache[2] || (_cache[2] = function () {\n return $options.onChange && $options.onChange.apply($options, arguments);\n })\n }, $options.getPTOptions('input')), null, 16, _hoisted_2), createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('slider')\n }, $options.getPTOptions('slider')), null, 16)], 16, _hoisted_1);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tag {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n background: \".concat(dt('tag.primary.background'), \";\\n color: \").concat(dt('tag.primary.color'), \";\\n font-size: \").concat(dt('tag.font.size'), \";\\n font-weight: \").concat(dt('tag.font.weight'), \";\\n padding: \").concat(dt('tag.padding'), \";\\n border-radius: \").concat(dt('tag.border.radius'), \";\\n gap: \").concat(dt('tag.gap'), \";\\n}\\n\\n.p-tag-icon {\\n font-size: \").concat(dt('tag.icon.size'), \";\\n width: \").concat(dt('tag.icon.size'), \";\\n height:\").concat(dt('tag.icon.size'), \";\\n}\\n\\n.p-tag-rounded {\\n border-radius: \").concat(dt('tag.rounded.border.radius'), \";\\n}\\n\\n.p-tag-success {\\n background: \").concat(dt('tag.success.background'), \";\\n color: \").concat(dt('tag.success.color'), \";\\n}\\n\\n.p-tag-info {\\n background: \").concat(dt('tag.info.background'), \";\\n color: \").concat(dt('tag.info.color'), \";\\n}\\n\\n.p-tag-warn {\\n background: \").concat(dt('tag.warn.background'), \";\\n color: \").concat(dt('tag.warn.color'), \";\\n}\\n\\n.p-tag-danger {\\n background: \").concat(dt('tag.danger.background'), \";\\n color: \").concat(dt('tag.danger.color'), \";\\n}\\n\\n.p-tag-secondary {\\n background: \").concat(dt('tag.secondary.background'), \";\\n color: \").concat(dt('tag.secondary.color'), \";\\n}\\n\\n.p-tag-contrast {\\n background: \").concat(dt('tag.contrast.background'), \";\\n color: \").concat(dt('tag.contrast.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-tag p-component', {\n 'p-tag-info': props.severity === 'info',\n 'p-tag-success': props.severity === 'success',\n 'p-tag-warn': props.severity === 'warn',\n 'p-tag-danger': props.severity === 'danger',\n 'p-tag-secondary': props.severity === 'secondary',\n 'p-tag-contrast': props.severity === 'contrast',\n 'p-tag-rounded': props.rounded\n }];\n },\n icon: 'p-tag-icon',\n label: 'p-tag-label'\n};\nvar TagStyle = BaseStyle.extend({\n name: 'tag',\n theme: theme,\n classes: classes\n});\n\nexport { TagStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport TagStyle from 'primevue/tag/style';\nimport { openBlock, createElementBlock, mergeProps, createBlock, resolveDynamicComponent, createCommentVNode, renderSlot, createElementVNode, toDisplayString } from 'vue';\n\nvar script$1 = {\n name: 'BaseTag',\n \"extends\": BaseComponent,\n props: {\n value: null,\n severity: null,\n rounded: Boolean,\n icon: String\n },\n style: TagStyle,\n provide: function provide() {\n return {\n $pcTag: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Tag',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [_ctx.$slots.icon ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.$slots.icon), mergeProps({\n key: 0,\n \"class\": _ctx.cx('icon')\n }, _ctx.ptm('icon')), null, 16, [\"class\"])) : _ctx.icon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('icon'), _ctx.icon]\n }, _ctx.ptm('icon')), null, 16)) : createCommentVNode(\"\", true), _ctx.value != null || _ctx.$slots[\"default\"] ? renderSlot(_ctx.$slots, \"default\", {\n key: 2\n }, function () {\n return [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('label')\n }, _ctx.ptm('label')), toDisplayString(_ctx.value), 17)];\n }) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-slider {\\n position: relative;\\n background: \".concat(dt('slider.track.background'), \";\\n border-radius: \").concat(dt('slider.border.radius'), \";\\n}\\n\\n.p-slider-handle {\\n cursor: grab;\\n touch-action: none;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n height: \").concat(dt('slider.handle.height'), \";\\n width: \").concat(dt('slider.handle.width'), \";\\n background: \").concat(dt('slider.handle.background'), \";\\n border-radius: \").concat(dt('slider.handle.border.radius'), \";\\n transition: background \").concat(dt('slider.transition.duration'), \", color \").concat(dt('slider.transition.duration'), \", border-color \").concat(dt('slider.transition.duration'), \", box-shadow \").concat(dt('slider.transition.duration'), \", outline-color \").concat(dt('slider.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-slider-handle::before {\\n content: \\\"\\\";\\n width: \").concat(dt('slider.handle.content.width'), \";\\n height: \").concat(dt('slider.handle.content.height'), \";\\n display: block;\\n background: \").concat(dt('slider.handle.content.background'), \";\\n border-radius: \").concat(dt('slider.handle.content.border.radius'), \";\\n box-shadow: \").concat(dt('slider.handle.content.shadow'), \";\\n transition: background \").concat(dt('slider.transition.duration'), \";\\n}\\n\\n.p-slider:not(.p-disabled) .p-slider-handle:hover {\\n background: \").concat(dt('slider.handle.hover.background'), \";\\n}\\n\\n.p-slider:not(.p-disabled) .p-slider-handle:hover::before {\\n background: \").concat(dt('slider.handle.content.hover.background'), \";\\n}\\n\\n.p-slider-handle:focus-visible {\\n border-color: \").concat(dt('slider.handle.focus.border.color'), \";\\n box-shadow: \").concat(dt('slider.handle.focus.ring.shadow'), \";\\n outline: \").concat(dt('slider.handle.focus.ring.width'), \" \").concat(dt('slider.handle.focus.ring.style'), \" \").concat(dt('slider.handle.focus.ring.color'), \";\\n outline-offset: \").concat(dt('slider.handle.focus.ring.offset'), \";\\n}\\n\\n.p-slider-range {\\n display: block;\\n background: \").concat(dt('slider.range.background'), \";\\n border-radius: \").concat(dt('slider.border.radius'), \";\\n}\\n\\n.p-slider.p-slider-horizontal {\\n height: \").concat(dt('slider.track.size'), \";\\n}\\n\\n.p-slider-horizontal .p-slider-range {\\n top: 0;\\n left: 0;\\n height: 100%;\\n}\\n\\n.p-slider-horizontal .p-slider-handle {\\n top: 50%;\\n margin-top: calc(-1 * calc(\").concat(dt('slider.handle.height'), \" / 2));\\n margin-left: calc(-1 * calc(\").concat(dt('slider.handle.width'), \" / 2));\\n}\\n\\n.p-slider-vertical {\\n min-height: 100px;\\n width: \").concat(dt('slider.track.size'), \";\\n}\\n\\n.p-slider-vertical .p-slider-handle {\\n left: 50%;\\n margin-left: calc(-1 * calc(\").concat(dt('slider.handle.width'), \" / 2));\\n margin-bottom: calc(-1 * calc(\").concat(dt('slider.handle.height'), \" / 2));\\n}\\n\\n.p-slider-vertical .p-slider-range {\\n bottom: 0;\\n left: 0;\\n width: 100%;\\n}\\n\");\n};\nvar inlineStyles = {\n handle: {\n position: 'absolute'\n },\n range: {\n position: 'absolute'\n }\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-slider p-component', {\n 'p-disabled': props.disabled,\n 'p-slider-horizontal': props.orientation === 'horizontal',\n 'p-slider-vertical': props.orientation === 'vertical'\n }];\n },\n range: 'p-slider-range',\n handle: 'p-slider-handle'\n};\nvar SliderStyle = BaseStyle.extend({\n name: 'slider',\n theme: theme,\n classes: classes,\n inlineStyles: inlineStyles\n});\n\nexport { SliderStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { getWindowScrollLeft, getWindowScrollTop, getAttribute } from '@primeuix/utils/dom';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SliderStyle from 'primevue/slider/style';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, createCommentVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseSlider',\n \"extends\": BaseComponent,\n props: {\n modelValue: [Number, Array],\n min: {\n type: Number,\n \"default\": 0\n },\n max: {\n type: Number,\n \"default\": 100\n },\n orientation: {\n type: String,\n \"default\": 'horizontal'\n },\n step: {\n type: Number,\n \"default\": null\n },\n range: {\n type: Boolean,\n \"default\": false\n },\n disabled: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: SliderStyle,\n provide: function provide() {\n return {\n $pcSlider: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script = {\n name: 'Slider',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'slideend'],\n dragging: false,\n handleIndex: null,\n initX: null,\n initY: null,\n barWidth: null,\n barHeight: null,\n dragListener: null,\n dragEndListener: null,\n beforeUnmount: function beforeUnmount() {\n this.unbindDragListeners();\n },\n methods: {\n updateDomData: function updateDomData() {\n var rect = this.$el.getBoundingClientRect();\n this.initX = rect.left + getWindowScrollLeft();\n this.initY = rect.top + getWindowScrollTop();\n this.barWidth = this.$el.offsetWidth;\n this.barHeight = this.$el.offsetHeight;\n },\n setValue: function setValue(event) {\n var handleValue;\n var pageX = event.touches ? event.touches[0].pageX : event.pageX;\n var pageY = event.touches ? event.touches[0].pageY : event.pageY;\n if (this.orientation === 'horizontal') handleValue = (pageX - this.initX) * 100 / this.barWidth;else handleValue = (this.initY + this.barHeight - pageY) * 100 / this.barHeight;\n var newValue = (this.max - this.min) * (handleValue / 100) + this.min;\n if (this.step) {\n var oldValue = this.range ? this.value[this.handleIndex] : this.value;\n var diff = newValue - oldValue;\n if (diff < 0) newValue = oldValue + Math.ceil(newValue / this.step - oldValue / this.step) * this.step;else if (diff > 0) newValue = oldValue + Math.floor(newValue / this.step - oldValue / this.step) * this.step;\n } else {\n newValue = Math.floor(newValue);\n }\n this.updateModel(event, newValue);\n },\n updateModel: function updateModel(event, value) {\n var newValue = parseFloat(value.toFixed(10));\n var modelValue;\n if (this.range) {\n modelValue = this.value ? _toConsumableArray(this.value) : [];\n if (this.handleIndex == 0) {\n if (newValue < this.min) newValue = this.min;else if (newValue >= this.max) newValue = this.max;\n modelValue[0] = newValue;\n } else {\n if (newValue > this.max) newValue = this.max;else if (newValue <= this.min) newValue = this.min;\n modelValue[1] = newValue;\n }\n } else {\n if (newValue < this.min) newValue = this.min;else if (newValue > this.max) newValue = this.max;\n modelValue = newValue;\n }\n this.$emit('update:modelValue', modelValue);\n this.$emit('change', modelValue);\n },\n onDragStart: function onDragStart(event, index) {\n if (this.disabled) {\n return;\n }\n this.$el.setAttribute('data-p-sliding', true);\n this.dragging = true;\n this.updateDomData();\n if (this.range && this.value[0] === this.max) {\n this.handleIndex = 0;\n } else {\n this.handleIndex = index;\n }\n event.currentTarget.focus();\n event.preventDefault();\n },\n onDrag: function onDrag(event) {\n if (this.dragging) {\n this.setValue(event);\n event.preventDefault();\n }\n },\n onDragEnd: function onDragEnd(event) {\n if (this.dragging) {\n this.dragging = false;\n this.$el.setAttribute('data-p-sliding', false);\n this.$emit('slideend', {\n originalEvent: event,\n value: this.value\n });\n }\n },\n onBarClick: function onBarClick(event) {\n if (this.disabled) {\n return;\n }\n if (getAttribute(event.target, 'data-pc-section') !== 'handle') {\n this.updateDomData();\n this.setValue(event);\n }\n },\n onMouseDown: function onMouseDown(event, index) {\n this.bindDragListeners();\n this.onDragStart(event, index);\n },\n onKeyDown: function onKeyDown(event, index) {\n this.handleIndex = index;\n switch (event.code) {\n case 'ArrowDown':\n case 'ArrowLeft':\n this.decrementValue(event, index);\n event.preventDefault();\n break;\n case 'ArrowUp':\n case 'ArrowRight':\n this.incrementValue(event, index);\n event.preventDefault();\n break;\n case 'PageDown':\n this.decrementValue(event, index, true);\n event.preventDefault();\n break;\n case 'PageUp':\n this.incrementValue(event, index, true);\n event.preventDefault();\n break;\n case 'Home':\n this.updateModel(event, this.min);\n event.preventDefault();\n break;\n case 'End':\n this.updateModel(event, this.max);\n event.preventDefault();\n break;\n }\n },\n decrementValue: function decrementValue(event, index) {\n var pageKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var newValue;\n if (this.range) {\n if (this.step) newValue = this.value[index] - this.step;else newValue = this.value[index] - 1;\n } else {\n if (this.step) newValue = this.value - this.step;else if (!this.step && pageKey) newValue = this.value - 10;else newValue = this.value - 1;\n }\n this.updateModel(event, newValue);\n event.preventDefault();\n },\n incrementValue: function incrementValue(event, index) {\n var pageKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var newValue;\n if (this.range) {\n if (this.step) newValue = this.value[index] + this.step;else newValue = this.value[index] + 1;\n } else {\n if (this.step) newValue = this.value + this.step;else if (!this.step && pageKey) newValue = this.value + 10;else newValue = this.value + 1;\n }\n this.updateModel(event, newValue);\n event.preventDefault();\n },\n bindDragListeners: function bindDragListeners() {\n if (!this.dragListener) {\n this.dragListener = this.onDrag.bind(this);\n document.addEventListener('mousemove', this.dragListener);\n }\n if (!this.dragEndListener) {\n this.dragEndListener = this.onDragEnd.bind(this);\n document.addEventListener('mouseup', this.dragEndListener);\n }\n },\n unbindDragListeners: function unbindDragListeners() {\n if (this.dragListener) {\n document.removeEventListener('mousemove', this.dragListener);\n this.dragListener = null;\n }\n if (this.dragEndListener) {\n document.removeEventListener('mouseup', this.dragEndListener);\n this.dragEndListener = null;\n }\n }\n },\n computed: {\n value: function value() {\n var _this$modelValue3;\n if (this.range) {\n var _this$modelValue$, _this$modelValue, _this$modelValue$2, _this$modelValue2;\n return [(_this$modelValue$ = (_this$modelValue = this.modelValue) === null || _this$modelValue === void 0 ? void 0 : _this$modelValue[0]) !== null && _this$modelValue$ !== void 0 ? _this$modelValue$ : this.min, (_this$modelValue$2 = (_this$modelValue2 = this.modelValue) === null || _this$modelValue2 === void 0 ? void 0 : _this$modelValue2[1]) !== null && _this$modelValue$2 !== void 0 ? _this$modelValue$2 : this.max];\n }\n return (_this$modelValue3 = this.modelValue) !== null && _this$modelValue3 !== void 0 ? _this$modelValue3 : this.min;\n },\n horizontal: function horizontal() {\n return this.orientation === 'horizontal';\n },\n vertical: function vertical() {\n return this.orientation === 'vertical';\n },\n rangeStyle: function rangeStyle() {\n if (this.range) {\n var rangeSliderWidth = this.rangeEndPosition > this.rangeStartPosition ? this.rangeEndPosition - this.rangeStartPosition : this.rangeStartPosition - this.rangeEndPosition;\n var rangeSliderPosition = this.rangeEndPosition > this.rangeStartPosition ? this.rangeStartPosition : this.rangeEndPosition;\n if (this.horizontal) return {\n left: rangeSliderPosition + '%',\n width: rangeSliderWidth + '%'\n };else return {\n bottom: rangeSliderPosition + '%',\n height: rangeSliderWidth + '%'\n };\n } else {\n if (this.horizontal) return {\n width: this.handlePosition + '%'\n };else return {\n height: this.handlePosition + '%'\n };\n }\n },\n handleStyle: function handleStyle() {\n if (this.horizontal) return {\n left: this.handlePosition + '%'\n };else return {\n bottom: this.handlePosition + '%'\n };\n },\n handlePosition: function handlePosition() {\n if (this.value < this.min) return 0;else if (this.value > this.max) return 100;else return (this.value - this.min) * 100 / (this.max - this.min);\n },\n rangeStartPosition: function rangeStartPosition() {\n if (this.value && this.value[0]) return (this.value[0] < this.min ? 0 : this.value[0] - this.min) * 100 / (this.max - this.min);else return 0;\n },\n rangeEndPosition: function rangeEndPosition() {\n if (this.value && this.value.length === 2) return (this.value[1] > this.max ? 100 : this.value[1] - this.min) * 100 / (this.max - this.min);else return 100;\n },\n rangeStartHandleStyle: function rangeStartHandleStyle() {\n if (this.horizontal) return {\n left: this.rangeStartPosition + '%'\n };else return {\n bottom: this.rangeStartPosition + '%'\n };\n },\n rangeEndHandleStyle: function rangeEndHandleStyle() {\n if (this.horizontal) return {\n left: this.rangeEndPosition + '%'\n };else return {\n bottom: this.rangeEndPosition + '%'\n };\n }\n }\n};\n\nvar _hoisted_1 = [\"tabindex\", \"aria-valuemin\", \"aria-valuenow\", \"aria-valuemax\", \"aria-labelledby\", \"aria-label\", \"aria-orientation\"];\nvar _hoisted_2 = [\"tabindex\", \"aria-valuemin\", \"aria-valuenow\", \"aria-valuemax\", \"aria-labelledby\", \"aria-label\", \"aria-orientation\"];\nvar _hoisted_3 = [\"tabindex\", \"aria-valuemin\", \"aria-valuenow\", \"aria-valuemax\", \"aria-labelledby\", \"aria-label\", \"aria-orientation\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n onClick: _cache[15] || (_cache[15] = function () {\n return $options.onBarClick && $options.onBarClick.apply($options, arguments);\n })\n }, _ctx.ptmi('root'), {\n \"data-p-sliding\": false\n }), [createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('range'),\n style: [_ctx.sx('range'), $options.rangeStyle]\n }, _ctx.ptm('range')), null, 16), !_ctx.range ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('handle'),\n style: [_ctx.sx('handle'), $options.handleStyle],\n onTouchstartPassive: _cache[0] || (_cache[0] = function ($event) {\n return $options.onDragStart($event);\n }),\n onTouchmovePassive: _cache[1] || (_cache[1] = function ($event) {\n return $options.onDrag($event);\n }),\n onTouchend: _cache[2] || (_cache[2] = function ($event) {\n return $options.onDragEnd($event);\n }),\n onMousedown: _cache[3] || (_cache[3] = function ($event) {\n return $options.onMouseDown($event);\n }),\n onKeydown: _cache[4] || (_cache[4] = function ($event) {\n return $options.onKeyDown($event);\n }),\n tabindex: _ctx.tabindex,\n role: \"slider\",\n \"aria-valuemin\": _ctx.min,\n \"aria-valuenow\": _ctx.modelValue,\n \"aria-valuemax\": _ctx.max,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-orientation\": _ctx.orientation\n }, _ctx.ptm('handle')), null, 16, _hoisted_1)) : createCommentVNode(\"\", true), _ctx.range ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('handle'),\n style: [_ctx.sx('handle'), $options.rangeStartHandleStyle],\n onTouchstartPassive: _cache[5] || (_cache[5] = function ($event) {\n return $options.onDragStart($event, 0);\n }),\n onTouchmovePassive: _cache[6] || (_cache[6] = function ($event) {\n return $options.onDrag($event);\n }),\n onTouchend: _cache[7] || (_cache[7] = function ($event) {\n return $options.onDragEnd($event);\n }),\n onMousedown: _cache[8] || (_cache[8] = function ($event) {\n return $options.onMouseDown($event, 0);\n }),\n onKeydown: _cache[9] || (_cache[9] = function ($event) {\n return $options.onKeyDown($event, 0);\n }),\n tabindex: _ctx.tabindex,\n role: \"slider\",\n \"aria-valuemin\": _ctx.min,\n \"aria-valuenow\": _ctx.modelValue ? _ctx.modelValue[0] : null,\n \"aria-valuemax\": _ctx.max,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-orientation\": _ctx.orientation\n }, _ctx.ptm('startHandler')), null, 16, _hoisted_2)) : createCommentVNode(\"\", true), _ctx.range ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 2,\n \"class\": _ctx.cx('handle'),\n style: [_ctx.sx('handle'), $options.rangeEndHandleStyle],\n onTouchstartPassive: _cache[10] || (_cache[10] = function ($event) {\n return $options.onDragStart($event, 1);\n }),\n onTouchmovePassive: _cache[11] || (_cache[11] = function ($event) {\n return $options.onDrag($event);\n }),\n onTouchend: _cache[12] || (_cache[12] = function ($event) {\n return $options.onDragEnd($event);\n }),\n onMousedown: _cache[13] || (_cache[13] = function ($event) {\n return $options.onMouseDown($event, 1);\n }),\n onKeydown: _cache[14] || (_cache[14] = function ($event) {\n return $options.onKeyDown($event, 1);\n }),\n tabindex: _ctx.tabindex,\n role: \"slider\",\n \"aria-valuemin\": _ctx.min,\n \"aria-valuenow\": _ctx.modelValue ? _ctx.modelValue[1] : null,\n \"aria-valuemax\": _ctx.max,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n \"aria-orientation\": _ctx.orientation\n }, _ctx.ptm('endHandler')), null, 16, _hoisted_3)) : createCommentVNode(\"\", true)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","export function formatCamelCase(str: string): string {\n // Check if the string is camel case\n const isCamelCase = /^([A-Z][a-z]*)+$/.test(str)\n\n if (!isCamelCase) {\n return str // Return original string if not camel case\n }\n\n // Split the string into words, keeping acronyms together\n const words = str.split(/(?=[A-Z][a-z])|\\d+/)\n\n // Process each word\n const processedWords = words.map((word) => {\n // If the word is all uppercase and longer than one character, it's likely an acronym\n if (word.length > 1 && word === word.toUpperCase()) {\n return word // Keep acronyms as is\n }\n // For other words, ensure the first letter is capitalized\n return word.charAt(0).toUpperCase() + word.slice(1)\n })\n\n // Join the words with spaces\n return processedWords.join(' ')\n}\n\nexport function appendJsonExt(path: string) {\n if (!path.toLowerCase().endsWith('.json')) {\n path += '.json'\n }\n return path\n}\n\nexport function trimJsonExt(path?: string) {\n return path?.replace(/\\.json$/, '')\n}\n\nexport function highlightQuery(text: string, query: string) {\n if (!query) return text\n const regex = new RegExp(`(${query})`, 'gi')\n return text.replace(regex, '$1')\n}\n\nexport function formatNumberWithSuffix(\n num: number,\n {\n precision = 1,\n roundToInt = false\n }: { precision?: number; roundToInt?: boolean } = {}\n): string {\n const suffixes = ['', 'k', 'm', 'b', 't']\n const absNum = Math.abs(num)\n\n if (absNum < 1000) {\n return roundToInt ? Math.round(num).toString() : num.toFixed(precision)\n }\n\n const exp = Math.min(Math.floor(Math.log10(absNum) / 3), suffixes.length - 1)\n const formattedNum = (num / Math.pow(1000, exp)).toFixed(precision)\n\n return `${formattedNum}${suffixes[exp]}`\n}\n\nexport function formatMemory(value?: number) {\n if (value === null || value === undefined) {\n return '-'\n }\n\n const mb = Math.round(value / (1024 * 1024))\n if (mb >= 1024) {\n return `${(mb / 1024).toFixed(2)} GB`\n }\n return `${mb} MB`\n}\n","\n\n\n\n\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'TimesCircleIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n \"clip-rule\": \"evenodd\",\n d: \"M7 14C5.61553 14 4.26215 13.5895 3.11101 12.8203C1.95987 12.0511 1.06266 10.9579 0.532846 9.67879C0.00303296 8.3997 -0.13559 6.99224 0.134506 5.63437C0.404603 4.2765 1.07129 3.02922 2.05026 2.05026C3.02922 1.07129 4.2765 0.404603 5.63437 0.134506C6.99224 -0.13559 8.3997 0.00303296 9.67879 0.532846C10.9579 1.06266 12.0511 1.95987 12.8203 3.11101C13.5895 4.26215 14 5.61553 14 7C14 8.85652 13.2625 10.637 11.9497 11.9497C10.637 13.2625 8.85652 14 7 14ZM7 1.16667C5.84628 1.16667 4.71846 1.50879 3.75918 2.14976C2.79989 2.79074 2.05222 3.70178 1.61071 4.76768C1.16919 5.83358 1.05367 7.00647 1.27876 8.13803C1.50384 9.26958 2.05941 10.309 2.87521 11.1248C3.69102 11.9406 4.73042 12.4962 5.86198 12.7212C6.99353 12.9463 8.16642 12.8308 9.23232 12.3893C10.2982 11.9478 11.2093 11.2001 11.8502 10.2408C12.4912 9.28154 12.8333 8.15373 12.8333 7C12.8333 5.45291 12.2188 3.96918 11.1248 2.87521C10.0308 1.78125 8.5471 1.16667 7 1.16667ZM4.66662 9.91668C4.58998 9.91704 4.51404 9.90209 4.44325 9.87271C4.37246 9.84333 4.30826 9.8001 4.2544 9.74557C4.14516 9.6362 4.0838 9.48793 4.0838 9.33335C4.0838 9.17876 4.14516 9.0305 4.2544 8.92113L6.17553 7L4.25443 5.07891C4.15139 4.96832 4.09529 4.82207 4.09796 4.67094C4.10063 4.51982 4.16185 4.37563 4.26872 4.26876C4.3756 4.16188 4.51979 4.10066 4.67091 4.09799C4.82204 4.09532 4.96829 4.15142 5.07887 4.25446L6.99997 6.17556L8.92106 4.25446C9.03164 4.15142 9.1779 4.09532 9.32903 4.09799C9.48015 4.10066 9.62434 4.16188 9.73121 4.26876C9.83809 4.37563 9.89931 4.51982 9.90198 4.67094C9.90464 4.82207 9.84855 4.96832 9.74551 5.07891L7.82441 7L9.74554 8.92113C9.85478 9.0305 9.91614 9.17876 9.91614 9.33335C9.91614 9.48793 9.85478 9.6362 9.74554 9.74557C9.69168 9.8001 9.62748 9.84333 9.55669 9.87271C9.4859 9.90209 9.40996 9.91704 9.33332 9.91668C9.25668 9.91704 9.18073 9.90209 9.10995 9.87271C9.03916 9.84333 8.97495 9.8001 8.9211 9.74557L6.99997 7.82444L5.07884 9.74557C5.02499 9.8001 4.96078 9.84333 4.88999 9.87271C4.81921 9.90209 4.74326 9.91704 4.66662 9.91668Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-chip {\\n display: inline-flex;\\n align-items: center;\\n background: \".concat(dt('chip.background'), \";\\n color: \").concat(dt('chip.color'), \";\\n border-radius: \").concat(dt('chip.border.radius'), \";\\n padding: \").concat(dt('chip.padding.y'), \" \").concat(dt('chip.padding.x'), \";\\n gap: \").concat(dt('chip.gap'), \";\\n}\\n\\n.p-chip-icon {\\n color: \").concat(dt('chip.icon.color'), \";\\n font-size: \").concat(dt('chip.icon.font.size'), \";\\n width: \").concat(dt('chip.icon.size'), \";\\n height: \").concat(dt('chip.icon.size'), \";\\n}\\n\\n.p-chip-image {\\n border-radius: 50%;\\n width: \").concat(dt('chip.image.width'), \";\\n height: \").concat(dt('chip.image.height'), \";\\n margin-left: calc(-1 * \").concat(dt('chip.padding.y'), \");\\n}\\n\\n.p-chip:has(.p-chip-remove-icon) {\\n padding-right: \").concat(dt('chip.padding.y'), \";\\n}\\n\\n.p-chip:has(.p-chip-image) {\\n padding-top: calc(\").concat(dt('chip.padding.y'), \" / 2);\\n padding-bottom: calc(\").concat(dt('chip.padding.y'), \" / 2);\\n}\\n\\n.p-chip-remove-icon {\\n cursor: pointer;\\n font-size: \").concat(dt('chip.remove.icon.size'), \";\\n width: \").concat(dt('chip.remove.icon.size'), \";\\n height: \").concat(dt('chip.remove.icon.size'), \";\\n color: \").concat(dt('chip.remove.icon.color'), \";\\n border-radius: 50%;\\n transition: outline-color \").concat(dt('chip.transition.duration'), \", box-shadow \").concat(dt('chip.transition.duration'), \";\\n outline-color: transparent;\\n}\\n\\n.p-chip-remove-icon:focus-visible {\\n box-shadow: \").concat(dt('chip.remove.icon.focus.ring.shadow'), \";\\n outline: \").concat(dt('chip.remove.icon.focus.ring.width'), \" \").concat(dt('chip.remove.icon.focus.ring.style'), \" \").concat(dt('chip.remove.icon.focus.ring.color'), \";\\n outline-offset: \").concat(dt('chip.remove.icon.focus.ring.offset'), \";\\n}\\n\");\n};\nvar classes = {\n root: 'p-chip p-component',\n image: 'p-chip-image',\n icon: 'p-chip-icon',\n label: 'p-chip-label',\n removeIcon: 'p-chip-remove-icon'\n};\nvar ChipStyle = BaseStyle.extend({\n name: 'chip',\n theme: theme,\n classes: classes\n});\n\nexport { ChipStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import TimesCircleIcon from '@primevue/icons/timescircle';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ChipStyle from 'primevue/chip/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot, createBlock, resolveDynamicComponent, createCommentVNode, toDisplayString } from 'vue';\n\nvar script$1 = {\n name: 'BaseChip',\n \"extends\": BaseComponent,\n props: {\n label: {\n type: String,\n \"default\": null\n },\n icon: {\n type: String,\n \"default\": null\n },\n image: {\n type: String,\n \"default\": null\n },\n removable: {\n type: Boolean,\n \"default\": false\n },\n removeIcon: {\n type: String,\n \"default\": undefined\n }\n },\n style: ChipStyle,\n provide: function provide() {\n return {\n $pcChip: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Chip',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['remove'],\n data: function data() {\n return {\n visible: true\n };\n },\n methods: {\n onKeydown: function onKeydown(event) {\n if (event.key === 'Enter' || event.key === 'Backspace') {\n this.close(event);\n }\n },\n close: function close(event) {\n this.visible = false;\n this.$emit('remove', event);\n }\n },\n components: {\n TimesCircleIcon: TimesCircleIcon\n }\n};\n\nvar _hoisted_1 = [\"aria-label\"];\nvar _hoisted_2 = [\"src\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return $data.visible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('root'),\n \"aria-label\": _ctx.label\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\", {}, function () {\n return [_ctx.image ? (openBlock(), createElementBlock(\"img\", mergeProps({\n key: 0,\n src: _ctx.image\n }, _ctx.ptm('image'), {\n \"class\": _ctx.cx('image')\n }), null, 16, _hoisted_2)) : _ctx.$slots.icon ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.$slots.icon), mergeProps({\n key: 1,\n \"class\": _ctx.cx('icon')\n }, _ctx.ptm('icon')), null, 16, [\"class\"])) : _ctx.icon ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 2,\n \"class\": [_ctx.cx('icon'), _ctx.icon]\n }, _ctx.ptm('icon')), null, 16)) : createCommentVNode(\"\", true), _ctx.label ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 3,\n \"class\": _ctx.cx('label')\n }, _ctx.ptm('label')), toDisplayString(_ctx.label), 17)) : createCommentVNode(\"\", true)];\n }), _ctx.removable ? renderSlot(_ctx.$slots, \"removeicon\", {\n key: 0,\n removeCallback: $options.close,\n keydownCallback: $options.onKeydown\n }, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.removeIcon ? 'span' : 'TimesCircleIcon'), mergeProps({\n tabindex: \"0\",\n \"class\": [_ctx.cx('removeIcon'), _ctx.removeIcon],\n onClick: $options.close,\n onKeydown: $options.onKeydown\n }, _ctx.ptm('removeIcon')), null, 16, [\"class\", \"onClick\", \"onKeydown\"]))];\n }) : createCommentVNode(\"\", true)], 16, _hoisted_1)) : createCommentVNode(\"\", true);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-card {\\n background: \".concat(dt('card.background'), \";\\n color: \").concat(dt('card.color'), \";\\n box-shadow: \").concat(dt('card.shadow'), \";\\n border-radius: \").concat(dt('card.border.radius'), \";\\n display: flex;\\n flex-direction: column;\\n}\\n\\n.p-card-caption {\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('card.caption.gap'), \";\\n}\\n\\n.p-card-body {\\n padding: \").concat(dt('card.body.padding'), \";\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('card.body.gap'), \";\\n}\\n\\n.p-card-title {\\n font-size: \").concat(dt('card.title.font.size'), \";\\n font-weight: \").concat(dt('card.title.font.weight'), \";\\n}\\n\\n.p-card-subtitle {\\n color: \").concat(dt('card.subtitle.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: 'p-card p-component',\n header: 'p-card-header',\n body: 'p-card-body',\n caption: 'p-card-caption',\n title: 'p-card-title',\n subtitle: 'p-card-subtitle',\n content: 'p-card-content',\n footer: 'p-card-footer'\n};\nvar CardStyle = BaseStyle.extend({\n name: 'card',\n theme: theme,\n classes: classes\n});\n\nexport { CardStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport CardStyle from 'primevue/card/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot, createCommentVNode, createElementVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseCard',\n \"extends\": BaseComponent,\n style: CardStyle,\n provide: function provide() {\n return {\n $pcCard: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'Card',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [_ctx.$slots.header ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('header')\n }, _ctx.ptm('header')), [renderSlot(_ctx.$slots, \"header\")], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('body')\n }, _ctx.ptm('body')), [_ctx.$slots.title || _ctx.$slots.subtitle ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('caption')\n }, _ctx.ptm('caption')), [_ctx.$slots.title ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('title')\n }, _ctx.ptm('title')), [renderSlot(_ctx.$slots, \"title\")], 16)) : createCommentVNode(\"\", true), _ctx.$slots.subtitle ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('subtitle')\n }, _ctx.ptm('subtitle')), [renderSlot(_ctx.$slots, \"subtitle\")], 16)) : createCommentVNode(\"\", true)], 16)) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('content')\n }, _ctx.ptm('content')), [renderSlot(_ctx.$slots, \"content\")], 16), _ctx.$slots.footer ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 1,\n \"class\": _ctx.cx('footer')\n }, _ctx.ptm('footer')), [renderSlot(_ctx.$slots, \"footer\")], 16)) : createCommentVNode(\"\", true)], 16)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import { defineStore } from 'pinia'\nimport { ref } from 'vue'\nimport { api } from '@/scripts/api'\nimport type { SystemStats } from '@/types/apiTypes'\n\nexport const useSystemStatsStore = defineStore('systemStats', () => {\n const systemStats = ref(null)\n const isLoading = ref(false)\n const error = ref(null)\n\n async function fetchSystemStats() {\n isLoading.value = true\n error.value = null\n\n try {\n systemStats.value = await api.getSystemStats()\n } catch (err) {\n error.value =\n err instanceof Error\n ? err.message\n : 'An error occurred while fetching system stats'\n console.error('Error fetching system stats:', err)\n } finally {\n isLoading.value = false\n }\n }\n\n return {\n systemStats,\n isLoading,\n error,\n fetchSystemStats\n }\n})\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ChevronLeftIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M9.61296 13C9.50997 13.0005 9.40792 12.9804 9.3128 12.9409C9.21767 12.9014 9.13139 12.8433 9.05902 12.7701L3.83313 7.54416C3.68634 7.39718 3.60388 7.19795 3.60388 6.99022C3.60388 6.78249 3.68634 6.58325 3.83313 6.43628L9.05902 1.21039C9.20762 1.07192 9.40416 0.996539 9.60724 1.00012C9.81032 1.00371 10.0041 1.08597 10.1477 1.22959C10.2913 1.37322 10.3736 1.56698 10.3772 1.77005C10.3808 1.97313 10.3054 2.16968 10.1669 2.31827L5.49496 6.99022L10.1669 11.6622C10.3137 11.8091 10.3962 12.0084 10.3962 12.2161C10.3962 12.4238 10.3137 12.6231 10.1669 12.7701C10.0945 12.8433 10.0083 12.9014 9.91313 12.9409C9.81801 12.9804 9.71596 13.0005 9.61296 13Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'ChevronRightIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tabview-tablist-container {\\n position: relative;\\n}\\n\\n.p-tabview-scrollable > .p-tabview-tablist-container {\\n overflow: hidden;\\n}\\n\\n.p-tabview-tablist-scroll-container {\\n overflow-x: auto;\\n overflow-y: hidden;\\n scroll-behavior: smooth;\\n scrollbar-width: none;\\n overscroll-behavior: contain auto;\\n}\\n\\n.p-tabview-tablist-scroll-container::-webkit-scrollbar {\\n display: none;\\n}\\n\\n.p-tabview-tablist {\\n display: flex;\\n margin: 0;\\n padding: 0;\\n list-style-type: none;\\n flex: 1 1 auto;\\n background: \".concat(dt('tabview.tab.list.background'), \";\\n border: 1px solid \").concat(dt('tabview.tab.list.border.color'), \";\\n border-width: 0 0 1px 0;\\n position: relative;\\n}\\n\\n.p-tabview-tab-header {\\n cursor: pointer;\\n user-select: none;\\n display: flex;\\n align-items: center;\\n text-decoration: none;\\n position: relative;\\n overflow: hidden;\\n border-style: solid;\\n border-width: 0 0 1px 0;\\n border-color: transparent transparent \").concat(dt('tabview.tab.border.color'), \" transparent;\\n color: \").concat(dt('tabview.tab.color'), \";\\n padding: 1rem 1.125rem;\\n font-weight: 600;\\n border-top-right-radius: \").concat(dt('border.radius.md'), \";\\n border-top-left-radius: \").concat(dt('border.radius.md'), \";\\n transition: color \").concat(dt('tabview.transition.duration'), \", outline-color \").concat(dt('tabview.transition.duration'), \";\\n margin: 0 0 -1px 0;\\n outline-color: transparent;\\n}\\n\\n.p-tabview-tablist-item:not(.p-disabled) .p-tabview-tab-header:focus-visible {\\n outline: \").concat(dt('focus.ring.width'), \" \").concat(dt('focus.ring.style'), \" \").concat(dt('focus.ring.color'), \";\\n outline-offset: -1px;\\n}\\n\\n.p-tabview-tablist-item:not(.p-highlight):not(.p-disabled):hover > .p-tabview-tab-header {\\n color: \").concat(dt('tabview.tab.hover.color'), \";\\n}\\n\\n.p-tabview-tablist-item.p-highlight > .p-tabview-tab-header {\\n color: \").concat(dt('tabview.tab.active.color'), \";\\n}\\n\\n.p-tabview-tab-title {\\n line-height: 1;\\n white-space: nowrap;\\n}\\n\\n.p-tabview-next-button,\\n.p-tabview-prev-button {\\n position: absolute;\\n top: 0;\\n margin: 0;\\n padding: 0;\\n z-index: 2;\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background: \").concat(dt('tabview.nav.button.background'), \";\\n color: \").concat(dt('tabview.nav.button.color'), \";\\n width: 2.5rem;\\n border-radius: 0;\\n outline-color: transparent;\\n transition: color \").concat(dt('tabview.transition.duration'), \", outline-color \").concat(dt('tabview.transition.duration'), \";\\n box-shadow: \").concat(dt('tabview.nav.button.shadow'), \";\\n border: none;\\n cursor: pointer;\\n user-select: none;\\n}\\n\\n.p-tabview-next-button:focus-visible,\\n.p-tabview-prev-button:focus-visible {\\n outline: \").concat(dt('focus.ring.width'), \" \").concat(dt('focus.ring.style'), \" \").concat(dt('focus.ring.color'), \";\\n outline-offset: \").concat(dt('focus.ring.offset'), \";\\n}\\n\\n.p-tabview-next-button:hover,\\n.p-tabview-prev-button:hover {\\n color: \").concat(dt('tabview.nav.button.hover.color'), \";\\n}\\n\\n.p-tabview-prev-button {\\n left: 0;\\n}\\n\\n.p-tabview-next-button {\\n right: 0;\\n}\\n\\n.p-tabview-panels {\\n background: \").concat(dt('tabview.tab.panel.background'), \";\\n color: \").concat(dt('tabview.tab.panel.color'), \";\\n padding: 0.875rem 1.125rem 1.125rem 1.125rem;\\n}\\n\\n.p-tabview-ink-bar {\\n z-index: 1;\\n display: block;\\n position: absolute;\\n bottom: -1px;\\n height: 1px;\\n background: \").concat(dt('tabview.tab.active.border.color'), \";\\n transition: 250ms cubic-bezier(0.35, 0, 0.25, 1);\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-tabview p-component', {\n 'p-tabview-scrollable': props.scrollable\n }];\n },\n navContainer: 'p-tabview-tablist-container',\n prevButton: 'p-tabview-prev-button',\n navContent: 'p-tabview-tablist-scroll-container',\n nav: 'p-tabview-tablist',\n tab: {\n header: function header(_ref3) {\n var instance = _ref3.instance,\n tab = _ref3.tab,\n index = _ref3.index;\n return ['p-tabview-tablist-item', instance.getTabProp(tab, 'headerClass'), {\n 'p-tabview-tablist-item-active': instance.d_activeIndex === index,\n 'p-disabled': instance.getTabProp(tab, 'disabled')\n }];\n },\n headerAction: 'p-tabview-tab-header',\n headerTitle: 'p-tabview-tab-title',\n content: function content(_ref4) {\n var instance = _ref4.instance,\n tab = _ref4.tab;\n return ['p-tabview-panel', instance.getTabProp(tab, 'contentClass')];\n }\n },\n inkbar: 'p-tabview-ink-bar',\n nextButton: 'p-tabview-next-button',\n panelContainer: 'p-tabview-panels'\n};\nvar TabViewStyle = BaseStyle.extend({\n name: 'tabview',\n theme: theme,\n classes: classes\n});\n\nexport { TabViewStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport { getWidth, getAttribute, findSingle, focus, getOffset } from '@primeuix/utils/dom';\nimport ChevronLeftIcon from '@primevue/icons/chevronleft';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveDirective, openBlock, createElementBlock, createElementVNode, withDirectives, renderSlot, createBlock, resolveDynamicComponent, createCommentVNode, Fragment, renderList, toDisplayString, vShow } from 'vue';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TabViewStyle from 'primevue/tabview/style';\n\nvar script$1 = {\n name: 'BaseTabView',\n \"extends\": BaseComponent,\n props: {\n activeIndex: {\n type: Number,\n \"default\": 0\n },\n lazy: {\n type: Boolean,\n \"default\": false\n },\n scrollable: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n selectOnFocus: {\n type: Boolean,\n \"default\": false\n },\n prevButtonProps: {\n type: null,\n \"default\": null\n },\n nextButtonProps: {\n type: null,\n \"default\": null\n },\n prevIcon: {\n type: String,\n \"default\": undefined\n },\n nextIcon: {\n type: String,\n \"default\": undefined\n }\n },\n style: TabViewStyle,\n provide: function provide() {\n return {\n $pcTabs: undefined,\n // Backwards compatible to prevent component from breaking\n $pcTabView: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'TabView',\n \"extends\": script$1,\n inheritAttrs: false,\n emits: ['update:activeIndex', 'tab-change', 'tab-click'],\n data: function data() {\n return {\n id: this.$attrs.id,\n d_activeIndex: this.activeIndex,\n isPrevButtonDisabled: true,\n isNextButtonDisabled: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeIndex: function activeIndex(newValue) {\n this.d_activeIndex = newValue;\n this.scrollInView({\n index: newValue\n });\n }\n },\n mounted: function mounted() {\n console.warn('Deprecated since v4. Use Tabs component instead.');\n this.id = this.id || UniqueComponentId();\n this.updateInkBar();\n this.scrollable && this.updateButtonState();\n },\n updated: function updated() {\n this.updateInkBar();\n this.scrollable && this.updateButtonState();\n },\n methods: {\n isTabPanel: function isTabPanel(child) {\n return child.type.name === 'TabPanel';\n },\n isTabActive: function isTabActive(index) {\n return this.d_activeIndex === index;\n },\n getTabProp: function getTabProp(tab, name) {\n return tab.props ? tab.props[name] : undefined;\n },\n getKey: function getKey(tab, index) {\n return this.getTabProp(tab, 'header') || index;\n },\n getTabHeaderActionId: function getTabHeaderActionId(index) {\n return \"\".concat(this.id, \"_\").concat(index, \"_header_action\");\n },\n getTabContentId: function getTabContentId(index) {\n return \"\".concat(this.id, \"_\").concat(index, \"_content\");\n },\n getTabPT: function getTabPT(tab, key, index) {\n var count = this.tabs.length;\n var tabMetaData = {\n props: tab.props,\n parent: {\n instance: this,\n props: this.$props,\n state: this.$data\n },\n context: {\n index: index,\n count: count,\n first: index === 0,\n last: index === count - 1,\n active: this.isTabActive(index)\n }\n };\n return mergeProps(this.ptm(\"tabpanel.\".concat(key), {\n tabpanel: tabMetaData\n }), this.ptm(\"tabpanel.\".concat(key), tabMetaData), this.ptmo(this.getTabProp(tab, 'pt'), key, tabMetaData));\n },\n onScroll: function onScroll(event) {\n this.scrollable && this.updateButtonState();\n event.preventDefault();\n },\n onPrevButtonClick: function onPrevButtonClick() {\n var content = this.$refs.content;\n var width = getWidth(content);\n var pos = content.scrollLeft - width;\n content.scrollLeft = pos <= 0 ? 0 : pos;\n },\n onNextButtonClick: function onNextButtonClick() {\n var content = this.$refs.content;\n var width = getWidth(content) - this.getVisibleButtonWidths();\n var pos = content.scrollLeft + width;\n var lastPos = content.scrollWidth - width;\n content.scrollLeft = pos >= lastPos ? lastPos : pos;\n },\n onTabClick: function onTabClick(event, tab, index) {\n this.changeActiveIndex(event, tab, index);\n this.$emit('tab-click', {\n originalEvent: event,\n index: index\n });\n },\n onTabKeyDown: function onTabKeyDown(event, tab, index) {\n switch (event.code) {\n case 'ArrowLeft':\n this.onTabArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onTabArrowRightKey(event);\n break;\n case 'Home':\n this.onTabHomeKey(event);\n break;\n case 'End':\n this.onTabEndKey(event);\n break;\n case 'PageDown':\n this.onPageDownKey(event);\n break;\n case 'PageUp':\n this.onPageUpKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onTabEnterKey(event, tab, index);\n break;\n }\n },\n onTabArrowRightKey: function onTabArrowRightKey(event) {\n var nextHeaderAction = this.findNextHeaderAction(event.target.parentElement);\n nextHeaderAction ? this.changeFocusedTab(event, nextHeaderAction) : this.onTabHomeKey(event);\n event.preventDefault();\n },\n onTabArrowLeftKey: function onTabArrowLeftKey(event) {\n var prevHeaderAction = this.findPrevHeaderAction(event.target.parentElement);\n prevHeaderAction ? this.changeFocusedTab(event, prevHeaderAction) : this.onTabEndKey(event);\n event.preventDefault();\n },\n onTabHomeKey: function onTabHomeKey(event) {\n var firstHeaderAction = this.findFirstHeaderAction();\n this.changeFocusedTab(event, firstHeaderAction);\n event.preventDefault();\n },\n onTabEndKey: function onTabEndKey(event) {\n var lastHeaderAction = this.findLastHeaderAction();\n this.changeFocusedTab(event, lastHeaderAction);\n event.preventDefault();\n },\n onPageDownKey: function onPageDownKey(event) {\n this.scrollInView({\n index: this.$refs.nav.children.length - 2\n });\n event.preventDefault();\n },\n onPageUpKey: function onPageUpKey(event) {\n this.scrollInView({\n index: 0\n });\n event.preventDefault();\n },\n onTabEnterKey: function onTabEnterKey(event, tab, index) {\n this.changeActiveIndex(event, tab, index);\n event.preventDefault();\n },\n findNextHeaderAction: function findNextHeaderAction(tabElement) {\n var selfCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var headerElement = selfCheck ? tabElement : tabElement.nextElementSibling;\n return headerElement ? getAttribute(headerElement, 'data-p-disabled') || getAttribute(headerElement, 'data-pc-section') === 'inkbar' ? this.findNextHeaderAction(headerElement) : findSingle(headerElement, '[data-pc-section=\"headeraction\"]') : null;\n },\n findPrevHeaderAction: function findPrevHeaderAction(tabElement) {\n var selfCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var headerElement = selfCheck ? tabElement : tabElement.previousElementSibling;\n return headerElement ? getAttribute(headerElement, 'data-p-disabled') || getAttribute(headerElement, 'data-pc-section') === 'inkbar' ? this.findPrevHeaderAction(headerElement) : findSingle(headerElement, '[data-pc-section=\"headeraction\"]') : null;\n },\n findFirstHeaderAction: function findFirstHeaderAction() {\n return this.findNextHeaderAction(this.$refs.nav.firstElementChild, true);\n },\n findLastHeaderAction: function findLastHeaderAction() {\n return this.findPrevHeaderAction(this.$refs.nav.lastElementChild, true);\n },\n changeActiveIndex: function changeActiveIndex(event, tab, index) {\n if (!this.getTabProp(tab, 'disabled') && this.d_activeIndex !== index) {\n this.d_activeIndex = index;\n this.$emit('update:activeIndex', index);\n this.$emit('tab-change', {\n originalEvent: event,\n index: index\n });\n this.scrollInView({\n index: index\n });\n }\n },\n changeFocusedTab: function changeFocusedTab(event, element) {\n if (element) {\n focus(element);\n this.scrollInView({\n element: element\n });\n if (this.selectOnFocus) {\n var index = parseInt(element.parentElement.dataset.pcIndex, 10);\n var tab = this.tabs[index];\n this.changeActiveIndex(event, tab, index);\n }\n }\n },\n scrollInView: function scrollInView(_ref) {\n var element = _ref.element,\n _ref$index = _ref.index,\n index = _ref$index === void 0 ? -1 : _ref$index;\n var currentElement = element || this.$refs.nav.children[index];\n if (currentElement) {\n currentElement.scrollIntoView && currentElement.scrollIntoView({\n block: 'nearest'\n });\n }\n },\n updateInkBar: function updateInkBar() {\n var tabHeader = this.$refs.nav.children[this.d_activeIndex];\n this.$refs.inkbar.style.width = getWidth(tabHeader) + 'px';\n this.$refs.inkbar.style.left = getOffset(tabHeader).left - getOffset(this.$refs.nav).left + 'px';\n },\n updateButtonState: function updateButtonState() {\n var content = this.$refs.content;\n var scrollLeft = content.scrollLeft,\n scrollWidth = content.scrollWidth;\n var width = getWidth(content);\n this.isPrevButtonDisabled = scrollLeft === 0;\n this.isNextButtonDisabled = parseInt(scrollLeft) === scrollWidth - width;\n },\n getVisibleButtonWidths: function getVisibleButtonWidths() {\n var _this$$refs = this.$refs,\n prevBtn = _this$$refs.prevBtn,\n nextBtn = _this$$refs.nextBtn;\n return [prevBtn, nextBtn].reduce(function (acc, el) {\n return el ? acc + getWidth(el) : acc;\n }, 0);\n }\n },\n computed: {\n tabs: function tabs() {\n var _this = this;\n return this.$slots[\"default\"]().reduce(function (tabs, child) {\n if (_this.isTabPanel(child)) {\n tabs.push(child);\n } else if (child.children && child.children instanceof Array) {\n child.children.forEach(function (nestedChild) {\n if (_this.isTabPanel(nestedChild)) {\n tabs.push(nestedChild);\n }\n });\n }\n return tabs;\n }, []);\n },\n prevButtonAriaLabel: function prevButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.previous : undefined;\n },\n nextButtonAriaLabel: function nextButtonAriaLabel() {\n return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.next : undefined;\n }\n },\n directives: {\n ripple: Ripple\n },\n components: {\n ChevronLeftIcon: ChevronLeftIcon,\n ChevronRightIcon: ChevronRightIcon\n }\n};\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar _hoisted_1 = [\"tabindex\", \"aria-label\"];\nvar _hoisted_2 = [\"data-p-active\", \"data-p-disabled\", \"data-pc-index\"];\nvar _hoisted_3 = [\"id\", \"tabindex\", \"aria-disabled\", \"aria-selected\", \"aria-controls\", \"onClick\", \"onKeydown\"];\nvar _hoisted_4 = [\"tabindex\", \"aria-label\"];\nvar _hoisted_5 = [\"id\", \"aria-labelledby\", \"data-pc-index\", \"data-p-active\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"tablist\"\n }, _ctx.ptmi('root')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('navContainer')\n }, _ctx.ptm('navContainer')), [_ctx.scrollable && !$data.isPrevButtonDisabled ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 0,\n ref: \"prevBtn\",\n type: \"button\",\n \"class\": _ctx.cx('prevButton'),\n tabindex: _ctx.tabindex,\n \"aria-label\": $options.prevButtonAriaLabel,\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.onPrevButtonClick && $options.onPrevButtonClick.apply($options, arguments);\n })\n }, _objectSpread(_objectSpread({}, _ctx.prevButtonProps), _ctx.ptm('prevButton')), {\n \"data-pc-group-section\": \"navbutton\"\n }), [renderSlot(_ctx.$slots, \"previcon\", {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.prevIcon ? 'span' : 'ChevronLeftIcon'), mergeProps({\n \"aria-hidden\": \"true\",\n \"class\": _ctx.prevIcon\n }, _ctx.ptm('prevIcon')), null, 16, [\"class\"]))];\n })], 16, _hoisted_1)), [[_directive_ripple]]) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n ref: \"content\",\n \"class\": _ctx.cx('navContent'),\n onScroll: _cache[1] || (_cache[1] = function () {\n return $options.onScroll && $options.onScroll.apply($options, arguments);\n })\n }, _ctx.ptm('navContent')), [createElementVNode(\"ul\", mergeProps({\n ref: \"nav\",\n \"class\": _ctx.cx('nav')\n }, _ctx.ptm('nav')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.tabs, function (tab, index) {\n return openBlock(), createElementBlock(\"li\", mergeProps({\n key: $options.getKey(tab, index),\n style: $options.getTabProp(tab, 'headerStyle'),\n \"class\": _ctx.cx('tab.header', {\n tab: tab,\n index: index\n }),\n role: \"presentation\",\n ref_for: true\n }, _objectSpread(_objectSpread(_objectSpread({}, $options.getTabProp(tab, 'headerProps')), $options.getTabPT(tab, 'root', index)), $options.getTabPT(tab, 'header', index)), {\n \"data-pc-name\": \"tabpanel\",\n \"data-p-active\": $data.d_activeIndex === index,\n \"data-p-disabled\": $options.getTabProp(tab, 'disabled'),\n \"data-pc-index\": index\n }), [withDirectives((openBlock(), createElementBlock(\"a\", mergeProps({\n id: $options.getTabHeaderActionId(index),\n \"class\": _ctx.cx('tab.headerAction'),\n tabindex: $options.getTabProp(tab, 'disabled') || !$options.isTabActive(index) ? -1 : _ctx.tabindex,\n role: \"tab\",\n \"aria-disabled\": $options.getTabProp(tab, 'disabled'),\n \"aria-selected\": $options.isTabActive(index),\n \"aria-controls\": $options.getTabContentId(index),\n onClick: function onClick($event) {\n return $options.onTabClick($event, tab, index);\n },\n onKeydown: function onKeydown($event) {\n return $options.onTabKeyDown($event, tab, index);\n },\n ref_for: true\n }, _objectSpread(_objectSpread({}, $options.getTabProp(tab, 'headerActionProps')), $options.getTabPT(tab, 'headerAction', index))), [tab.props && tab.props.header ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('tab.headerTitle'),\n ref_for: true\n }, $options.getTabPT(tab, 'headerTitle', index)), toDisplayString(tab.props.header), 17)) : createCommentVNode(\"\", true), tab.children && tab.children.header ? (openBlock(), createBlock(resolveDynamicComponent(tab.children.header), {\n key: 1\n })) : createCommentVNode(\"\", true)], 16, _hoisted_3)), [[_directive_ripple]])], 16, _hoisted_2);\n }), 128)), createElementVNode(\"li\", mergeProps({\n ref: \"inkbar\",\n \"class\": _ctx.cx('inkbar'),\n role: \"presentation\",\n \"aria-hidden\": \"true\"\n }, _ctx.ptm('inkbar')), null, 16)], 16)], 16), _ctx.scrollable && !$data.isNextButtonDisabled ? withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n key: 1,\n ref: \"nextBtn\",\n type: \"button\",\n \"class\": _ctx.cx('nextButton'),\n tabindex: _ctx.tabindex,\n \"aria-label\": $options.nextButtonAriaLabel,\n onClick: _cache[2] || (_cache[2] = function () {\n return $options.onNextButtonClick && $options.onNextButtonClick.apply($options, arguments);\n })\n }, _objectSpread(_objectSpread({}, _ctx.nextButtonProps), _ctx.ptm('nextButton')), {\n \"data-pc-group-section\": \"navbutton\"\n }), [renderSlot(_ctx.$slots, \"nexticon\", {}, function () {\n return [(openBlock(), createBlock(resolveDynamicComponent(_ctx.nextIcon ? 'span' : 'ChevronRightIcon'), mergeProps({\n \"aria-hidden\": \"true\",\n \"class\": _ctx.nextIcon\n }, _ctx.ptm('nextIcon')), null, 16, [\"class\"]))];\n })], 16, _hoisted_4)), [[_directive_ripple]]) : createCommentVNode(\"\", true)], 16), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('panelContainer')\n }, _ctx.ptm('panelContainer')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.tabs, function (tab, index) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getKey(tab, index)\n }, [(_ctx.lazy ? $options.isTabActive(index) : true) ? withDirectives((openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n id: $options.getTabContentId(index),\n style: $options.getTabProp(tab, 'contentStyle'),\n \"class\": _ctx.cx('tab.content', {\n tab: tab\n }),\n role: \"tabpanel\",\n \"aria-labelledby\": $options.getTabHeaderActionId(index),\n ref_for: true\n }, _objectSpread(_objectSpread(_objectSpread({}, $options.getTabProp(tab, 'contentProps')), $options.getTabPT(tab, 'root', index)), $options.getTabPT(tab, 'content', index)), {\n \"data-pc-name\": \"tabpanel\",\n \"data-pc-index\": index,\n \"data-p-active\": $data.d_activeIndex === index\n }), [(openBlock(), createBlock(resolveDynamicComponent(tab)))], 16, _hoisted_5)), [[vShow, _ctx.lazy ? true : $options.isTabActive(index)]]) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n\n\n\n\n","\n\n\n","import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n}\n","import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, provide, inject, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get(v);\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n const defaultValue = options == null ? void 0 : options.defaultValue;\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key, defaultValue);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(...args) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n let ms;\n let trailing;\n let leading;\n let rejectOnCancel;\n if (!isRef(args[0]) && typeof args[0] === \"object\")\n ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);\n else\n [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?\\d+\\.?\\d*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n return target || getCurrentInstance();\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, target);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, target);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n if (stop)\n stop();\n else\n nextTick(() => stop == null ? void 0 : stop());\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n if (stop)\n stop();\n else\n nextTick(() => stop == null ? void 0 : stop());\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n const stop = watch(\n source,\n (v, ov, onInvalidate) => {\n if (v) {\n if (options == null ? void 0 : options.once)\n nextTick(() => stop());\n cb(v, ov, onInvalidate);\n }\n },\n {\n ...options,\n once: false\n }\n );\n return stop;\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n}\n","import { noop, makeDestructurable, camelize, toValue, isClient, isObject, tryOnScopeDispose, isIOS, tryOnMounted, notNullish, objectOmit, promiseTimeout, until, increaseWithUnit, objectEntries, createSingletonPromise, useTimeoutFn, pausableWatch, toRef, createEventHook, computedWithControl, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, toRefs, useIntervalFn, containsProp, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, tryOnBeforeUnmount, identity, isDef, whenever, isWorker } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, isVue3, version, defineComponent, h, TransitionGroup, shallowReactive, Fragment, watch, getCurrentInstance, customRef, onUpdated, onMounted, isVue2, readonly, reactive, nextTick, markRaw, unref, getCurrentScope, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nfunction createReusableTemplate(options = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const {\n inheritAttrs = true\n } = options;\n const render = shallowRef();\n const define = /* #__PURE__ */ defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[camelize(key)] = obj[key];\n return newObj;\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = ref([]);\n function create(...args) {\n const props = shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => h(TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => toValue(i)));\n };\n}\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return noop;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement))) {\n handler(event);\n }\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keydown\" });\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keypress\" });\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keyup\" });\n}\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n let posStart;\n let startTimestamp;\n let hasLongPressed = false;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n posStart = void 0;\n startTimestamp = void 0;\n hasLongPressed = false;\n }\n function onRelease(ev) {\n var _a2, _b2, _c;\n const [_startTimestamp, _posStart, _hasLongPressed] = [startTimestamp, posStart, hasLongPressed];\n clear();\n if (!(options == null ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp)\n return;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - _posStart.x;\n const dy = ev.y - _posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n options.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n posStart = {\n x: ev.x,\n y: ev.y\n };\n startTimestamp = ev.timeStamp;\n timeout = setTimeout(\n () => {\n hasLongPressed = true;\n handler(ev);\n },\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n function onMove(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - posStart.x;\n const dy = ev.y - posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n clear();\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n const cleanup = [\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n ];\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n if (!isFocusedElementEditable() && isTypedCharValid(event)) {\n callback(event);\n }\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n const instance = getCurrentInstance();\n if (instance) {\n onMounted(() => {\n isMounted.value = true;\n }, isVue2 ? void 0 : instance);\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const value = toValue(target);\n const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish);\n return new Set(items);\n });\n const stopWatch = watch(\n () => targets.value,\n (targets2) => {\n cleanup();\n if (isSupported.value && targets2.size) {\n observer = new MutationObserver(callback);\n targets2.forEach((el) => observer.observe(el, mutationOptions));\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const {\n window = defaultWindow,\n deep = true,\n triggerOnRemoval = false\n } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const getDeepActiveElement = () => {\n var _a2;\n let element = document == null ? void 0 : document.activeElement;\n if (deep) {\n while (element == null ? void 0 : element.shadowRoot)\n element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;\n }\n return element;\n };\n const activeElement = ref();\n const trigger = () => {\n activeElement.value = getDeepActiveElement();\n };\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n trigger();\n }, true);\n useEventListener(window, \"focus\", trigger, true);\n }\n if (triggerOnRemoval) {\n useMutationObserver(document, (mutations) => {\n mutations.filter((m) => m.removedNodes.length).map((n) => Array.from(n.removedNodes)).flat().forEach((node) => {\n if (node === activeElement.value)\n trigger();\n });\n }, {\n childList: true,\n subtree: true\n });\n }\n trigger();\n return activeElement;\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n fpsLimit = void 0,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n if (!previousFrameTimestamp)\n previousFrameTimestamp = timestamp;\n const delta = timestamp - previousFrameTimestamp;\n if (intervalLimit && delta < intervalLimit) {\n rafId = window.requestAnimationFrame(loop);\n return;\n }\n previousFrameTimestamp = timestamp;\n fn({ delta, timestamp });\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n previousFrameTimestamp = 0;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (isObject(options)) {\n config = options;\n animateOptions = objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = shallowRef(void 0);\n const store = shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = computed(() => store.pending);\n const playState = computed(() => store.playState);\n const replaceState = computed(() => store.replaceState);\n const startTime = computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n if (!animate.value)\n update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n watch(() => unrefElement(target), (el) => {\n if (el)\n update();\n });\n watch(() => keyframes, (value) => {\n if (animate.value)\n update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n tryOnMounted(() => update(true), false);\n tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n if (!animate.value)\n animate.value = el.animate(toValue(keyframes), animateOptions);\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, [\"cancel\", \"finish\", \"remove\"], syncPause);\n useEventListener(animate, \"finish\", () => {\n var _a;\n if (commitStyles)\n (_a = animate.value) == null ? void 0 : _a.commitStyles();\n });\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop,\n signal\n } = options || {};\n const promiseState = {\n aborted: \"aborted\",\n fulfilled: \"fulfilled\",\n pending: \"pending\",\n rejected: \"rejected\"\n };\n const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, new Error(\"aborted\"));\n return;\n }\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n const done = curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n if (activeIndex.value === tasks.length - 1)\n onFinished();\n return currentRes;\n });\n if (!signal)\n return done;\n return Promise.race([done, whenAborted(signal)]);\n }).catch((e) => {\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, e);\n return e;\n }\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\nfunction whenAborted(signal) {\n return new Promise((resolve, reject) => {\n const error = new Error(\"aborted\");\n if (signal.aborted)\n reject(error);\n else\n signal.addEventListener(\"abort\", () => reject(error), { once: true });\n });\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || typeof target === \"function\")\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery(options = {}) {\n const { navigator = defaultNavigator } = options;\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator && typeof navigator.getBattery === \"function\");\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n useEventListener(battery, events, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetifyV2 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1264,\n xl: 1904\n};\nconst breakpointsVuetifyV3 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560\n};\nconst breakpointsVuetify = breakpointsVuetifyV2;\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 0,\n sm: 600,\n md: 1024,\n lg: 1440,\n xl: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\nconst breakpointsPrimeFlex = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = toValue(breakpoints[toValue(k)]);\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow, strategy = \"min-width\" } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n };\n const smallerOrEqual = (k) => {\n return useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n function current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n return Object.assign(shortcutMethods, {\n greaterOrEqual,\n smallerOrEqual,\n greater(k) {\n return useMediaQuery(() => `(min-width: ${getValue(k, 0.1)})`, options);\n },\n smaller(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k, -0.1)})`, options);\n },\n between(a, b) {\n return useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current,\n active() {\n const bps = current();\n return computed(() => bps.value.length === 0 ? \"\" : bps.value.at(-1));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation(options = {}) {\n const { window = defaultWindow } = options;\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, ref()])\n );\n for (const [key, ref2] of objectEntries(refs)) {\n watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return reactive({\n trigger,\n state: state2,\n length,\n origin,\n ...refs\n });\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const permissionRead = usePermission(\"clipboard-read\");\n const permissionWrite = usePermission(\"clipboard-write\");\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value && isAllowed(permissionRead.value)) {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateText);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value && isAllowed(permissionWrite.value))\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n function isAllowed(status) {\n return status === \"granted\" || status === \"prompt\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nfunction useClipboardItems(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500\n } = options;\n const isSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const content = ref([]);\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateContent() {\n if (isSupported.value) {\n navigator.clipboard.read().then((items) => {\n content.value = items;\n });\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateContent);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n await navigator.clipboard.write(value);\n content.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n return {\n isSupported,\n content,\n copied,\n copy\n };\n}\n\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(toValue(source));\n }\n if (!manual && (isRef(source) || typeof source === \"function\")) {\n watch(source, sync, {\n ...options,\n deep,\n immediate\n });\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n tryOnMounted(() => {\n if (storage instanceof Storage)\n useEventListener(window, \"storage\", update);\n else\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n function dispatchWriteEvent(oldValue, newValue) {\n if (window && !(storage instanceof Storage)) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue,\n storageArea: storage\n }\n }));\n }\n }\n function write(v) {\n try {\n const oldValue = storage.getItem(key);\n if (v == null) {\n dispatchWriteEvent(oldValue, null);\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n dispatchWriteEvent(oldValue, serialized);\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n return data;\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n const classesToAdd = /* @__PURE__ */ new Set();\n const classesToRemove = /* @__PURE__ */ new Set();\n let attributeToChange = null;\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n classesToAdd.add(v);\n else\n classesToRemove.add(v);\n });\n } else {\n attributeToChange = { key: attribute2, value };\n }\n if (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n style.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n window.document.head.appendChild(style);\n }\n for (const c of classesToAdd) {\n el.classList.add(c);\n }\n for (const c of classesToRemove) {\n el.classList.remove(c);\n }\n if (attributeToChange) {\n el.setAttribute(attributeToChange.key, attributeToChange.value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue, observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window && key) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n (_, old) => {\n if (old[0] && old[1] && window)\n window.getComputedStyle(old[0]).removeProperty(old[1]);\n updateCssVar();\n },\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n const raw_prop = toValue(prop);\n if (((_a = elRef.value) == null ? void 0 : _a.style) && raw_prop) {\n if (val == null)\n elRef.value.style.removeProperty(raw_prop);\n else\n elRef.value.style.setProperty(raw_prop, val);\n }\n }\n );\n return variable;\n}\n\nfunction useCurrentElement(rootComponent) {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(\n () => null,\n () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el\n );\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = shallowRef(getInitialValue());\n const listRef = toRef(list);\n const index = computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;\n }\n watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev,\n go: set\n };\n}\n\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode({\n ...options,\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n });\n const system = computed(() => {\n if (mode.system) {\n return mode.system.value;\n } else {\n const preferredDark = usePreferredDark({ window });\n return preferredDark.value ? \"dark\" : \"light\";\n }\n });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource });\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return {\n ...manualHistory,\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n };\n}\n\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const pixelRatio = ref(1);\n if (window) {\n let observe2 = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup2();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe2, { once: true });\n }, cleanup2 = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe2);\n };\n let media;\n observe2();\n tryOnScopeDispose(cleanup2);\n }\n return { pixelRatio };\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n var _a2;\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.addEventListener(\"ended\", stop));\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility(options = {}) {\n const { document = defaultDocument } = options;\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n containerElement,\n handle: draggingHandle = target,\n buttons = [0]\n } = options;\n const position = ref(\n (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (toValue(preventDefault))\n e.preventDefault();\n if (toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (!toValue(buttons).includes(e.button))\n return;\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (toValue(exact) && e.target !== toValue(target))\n return;\n const container = toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = toValue(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),\n y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n const container = toValue(containerElement);\n const targetRect = toValue(target).getBoundingClientRect();\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\") {\n x = e.clientX - pressedDelta.value.x;\n if (container)\n x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n }\n if (axis === \"y\" || axis === \"both\") {\n y = e.clientY - pressedDelta.value.y;\n if (container)\n y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n }\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return {\n ...toRefs(position),\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n };\n}\n\nfunction useDropZone(target, options = {}) {\n const isOverDropZone = ref(false);\n const files = shallowRef(null);\n let counter = 0;\n let isDataTypeIncluded = true;\n if (isClient) {\n const _options = typeof options === \"function\" ? { onDrop: options } : options;\n const getFiles = (event) => {\n var _a, _b;\n const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n return files.value = list.length === 0 ? null : list;\n };\n useEventListener(target, \"dragenter\", (event) => {\n var _a, _b;\n const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === \"file\" ? i.type : null).filter(notNullish);\n if (_options.dataTypes && event.dataTransfer) {\n const dataTypes = unref(_options.dataTypes);\n isDataTypeIncluded = typeof dataTypes === \"function\" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true;\n if (!isDataTypeIncluded)\n return;\n }\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragover\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragleave\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"drop\", (event) => {\n var _a;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n }\n return {\n files,\n isOverDropZone\n };\n}\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const _targets = toValue(target);\n return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n });\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els) {\n if (_el)\n observer.observe(_el, observerOptions);\n }\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true,\n updateTiming = \"sync\"\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function recalculate() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n function update() {\n if (updateTiming === \"sync\")\n recalculate();\n else if (updateTiming === \"next-frame\")\n requestAnimationFrame(() => recalculate());\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n useMutationObserver(target, update, {\n attributeFilter: [\"style\", \"class\"]\n });\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useElementByPoint(options) {\n const {\n x,\n y,\n document = defaultDocument,\n multiple,\n interval = \"requestAnimationFrame\",\n immediate = true\n } = options;\n const isSupported = useSupported(() => {\n if (toValue(multiple))\n return document && \"elementsFromPoint\" in document;\n return document && \"elementFromPoint\" in document;\n });\n const element = ref(null);\n const cb = () => {\n var _a, _b;\n element.value = toValue(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null;\n };\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n return {\n isSupported,\n element,\n ...controls\n };\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n const { stop: stop1 } = useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const rect = $elem.getBoundingClientRect();\n width.value = rect.width;\n height.value = rect.height;\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n tryOnMounted(() => {\n const ele = unrefElement(target);\n if (ele) {\n width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n }\n });\n const stop2 = watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n function stop() {\n stop1();\n stop2();\n }\n return {\n width,\n height,\n stop\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget, threshold = 0 } = options;\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n (intersectionObserverEntries) => {\n let isIntersecting = elementIsVisible.value;\n let latestTime = 0;\n for (const entry of intersectionObserverEntries) {\n if (entry.time >= latestTime) {\n latestTime = entry.time;\n isIntersecting = entry.isIntersecting;\n }\n }\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction resolveNestedOptions$1(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = shallowRef(null);\n const urlRef = toRef(url);\n const lastEventId = shallowRef(null);\n let explicitlyClosed = false;\n let retried = 0;\n const {\n withCredentials = false,\n immediate = true\n } = options;\n const close = () => {\n if (isClient && eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n explicitlyClosed = true;\n }\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const es = new EventSource(urlRef.value, { withCredentials });\n status.value = \"CONNECTING\";\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n if (es.readyState === 2 && !explicitlyClosed && options.autoReconnect) {\n es.close();\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions$1(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n lastEventId.value = e.lastEventId;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n };\n const open = () => {\n if (!isClient)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n tryOnScopeDispose(close);\n return {\n eventSource,\n event,\n data,\n status,\n error,\n open,\n close,\n lastEventId\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = toRef(newIcon);\n const applyIcon = (icon) => {\n const elements = document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n if (!elements || elements.length === 0) {\n const link = document == null ? void 0 : document.createElement(\"link\");\n if (link) {\n link.rel = rel;\n link.href = `${baseUrl}${icon}`;\n link.type = `image/${icon.split(\".\").pop()}`;\n document == null ? void 0 : document.head.append(link);\n }\n return;\n }\n elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n return reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries(headers.entries());\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return { ...ctx, ...await callback(ctx) };\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = { ...ctx, ...await callback(ctx) };\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = toValue(config.baseUrl);\n const targetUrl = toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = {\n ...options,\n ...args[0],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n };\n } else {\n fetchOptions = {\n ...fetchOptions,\n ...args[0],\n headers: {\n ...headersToObject(fetchOptions.headers) || {},\n ...headersToObject(args[0].headers) || {}\n }\n };\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = {\n ...options,\n ...args[1],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n };\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = {\n immediate: true,\n refetch: false,\n timeout: 0,\n updateDataOnError: false\n };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = { ...options, ...args[0] };\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = { ...options, ...args[1] };\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData || null);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = {\n ...fetchOptions,\n signal: controller.signal\n };\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n let executeCounter = 0;\n const execute = async (throwOnFailed = false) => {\n var _a2, _b;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n executeCounter += 1;\n const currentExecuteCounter = executeCounter;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n const payload = toValue(config.payload);\n if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))\n config.payloadType = \"json\";\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: toValue(url),\n options: {\n ...defaultFetchOptions,\n ...fetchOptions\n },\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return fetch(\n context.url,\n {\n ...defaultFetchOptions,\n ...context.options,\n headers: {\n ...headersToObject(defaultFetchOptions.headers),\n ...headersToObject((_b = context.options) == null ? void 0 : _b.headers)\n }\n }\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse.clone()[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch) {\n ({ data: responseData } = await options.afterFetch({\n data: responseData,\n response: fetchResponse\n }));\n }\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return fetchResponse;\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError) {\n ({ error: errorData, data: responseData } = await options.onFetchError({\n data: responseData,\n error: fetchError,\n response: response.value\n }));\n }\n error.value = errorData;\n if (options.updateDataOnError)\n data.value = responseData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n throw fetchError;\n return null;\n }).finally(() => {\n if (currentExecuteCounter === executeCounter)\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n };\n const refetch = toRef(options.refetch);\n watch(\n [\n refetch,\n toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished: readonly(isFinished),\n isFetching: readonly(isFetching),\n statusCode,\n response,\n error,\n data,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch(\n [\n refetch,\n toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\",\n reset: false,\n directory: false\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n const { on: onChange, trigger } = createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n trigger(files.value);\n };\n }\n const reset = () => {\n files.value = null;\n if (input && input.value) {\n input.value = \"\";\n trigger(null);\n }\n };\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = {\n ...DEFAULT_OPTIONS,\n ...options,\n ...localOptions\n };\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n input.webkitdirectory = _options.directory;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n if (_options.reset)\n reset();\n input.click();\n };\n return {\n files: readonly(files),\n open,\n reset,\n onChange\n };\n}\n\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker({ ...toValue(options), ..._options });\n fileHandle.value = handle;\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n data.value = void 0;\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n await updateFile();\n const type = toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n watch(() => toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false, preventScroll = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus({ preventScroll });\n }\n });\n watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = ref(false);\n const requestMethod = computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value || !isFullscreen.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value || isFullscreen.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n id: gamepad.id,\n index: gamepad.index,\n connected: gamepad.connected,\n mapping: gamepad.mapping,\n timestamp: gamepad.timestamp,\n vibrationActuator: gamepad.vibrationActuator,\n hapticActuators,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n onGamepadConnected(gamepad);\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = shallowRef(null);\n const coords = ref({\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c, _d;\n if (!window)\n return;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n const scrollContainer = ((_d = _element == null ? void 0 : _element.document) == null ? void 0 : _d.documentElement) || (_element == null ? void 0 : _element.documentElement) || _element;\n if (x != null)\n internalX.value = scrollContainer.scrollLeft;\n if (y != null)\n internalY.value = scrollContainer.scrollTop;\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target);\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n tryOnMounted(() => {\n try {\n const _element = toValue(element);\n if (!_element)\n return;\n setArrivedState(_element);\n } catch (e) {\n onError(e);\n }\n });\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100,\n canLoadMore = () => true\n } = options;\n const state = reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n const observedElement = computed(() => {\n return resolveElement(toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading,\n reset() {\n nextTick(() => checkAndLoad());\n }\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => toValue(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nfunction usingElRef(source, cb) {\n if (toValue(source))\n cb(toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n target = toRef(target);\n options = {\n ...defaultOptions,\n ...options\n };\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = toValue(target);\n if (!el)\n return;\n const src = toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch([target, volume], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n watch([target, muted], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n watch([target, rate], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = toValue(options.tracks);\n const el = toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = toValue(target);\n if (!el)\n return;\n if (isPlaying)\n el.play();\n else\n el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, [\"waiting\", \"loadstart\"], () => {\n waiting.value = true;\n ignorePlayingUpdates(() => playing.value = false);\n });\n useEventListener(target, \"loadeddata\", () => waiting.value = false);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n ignorePlayingUpdates(() => playing.value = true);\n });\n useEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = shallowReactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return shallowReactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return shallowReactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst UseMouseBuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n scroll = true,\n eventFilter\n } = options;\n let _prevMouseEvent = null;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n _prevMouseEvent = event;\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const scrollHandler = () => {\n if (!_prevMouseEvent || !window)\n return;\n const pos = extractor(_prevMouseEvent);\n if (_prevMouseEvent instanceof MouseEvent && pos) {\n x.value = pos[0] + window.scrollX;\n y.value = pos[1] + window.scrollY;\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n if (scroll && type === \"page\")\n useEventListener(window, \"scroll\", scrollHandlerWrapper, { passive: true });\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const type = options.type || \"page\";\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el || !(el instanceof HTMLElement))\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n elementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n capture = false,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true, capture });\n useEventListener(window, \"mouseup\", onReleased, { passive: true, capture });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"drop\", onReleased, { passive: true, capture });\n useEventListener(window, \"dragend\", onReleased, { passive: true, capture });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true, capture });\n useEventListener(window, \"touchend\", onReleased, { passive: true, capture });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true, capture });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return {\n now,\n ...controls\n };\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(\n () => toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || isReadonly(value))\n return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, toValue(min), toValue(max));\n },\n set(value2) {\n _value.value = clamp(value2, toValue(min), toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Number.POSITIVE_INFINITY,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n const pageCount = computed(() => Math.max(\n 1,\n Math.ceil(toValue(total) / toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page)) {\n syncRef(page, currentPage, {\n direction: isReadonly(page) ? \"ltr\" : \"both\"\n });\n }\n if (isRef(pageSize)) {\n syncRef(pageSize, currentPageSize, {\n direction: isReadonly(pageSize) ? \"ltr\" : \"both\"\n });\n }\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (isSupported.value && typeof screenOrientation.lock === \"function\")\n return screenOrientation.lock(type);\n return Promise.reject(new Error(\"Not supported\"));\n };\n const unlockOrientation = () => {\n if (isSupported.value && typeof screenOrientation.unlock === \"function\")\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const screenOrientation = reactive(useScreenOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) {\n return \"deviceOrientation\";\n }\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.gamma / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.gamma / 90;\n break;\n case \"portrait-primary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-secondary\":\n value = orientation.beta / 90;\n break;\n default:\n value = -orientation.beta / 90;\n }\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.beta / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-primary\":\n value = orientation.gamma / 90;\n break;\n case \"portrait-secondary\":\n value = -orientation.gamma / 90;\n break;\n default:\n value = orientation.gamma / 90;\n }\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n tryOnMounted(update);\n watch(() => toValue(element), update);\n return parentElement;\n}\n\nfunction usePerformanceObserver(options, callback) {\n const {\n window = defaultWindow,\n immediate = true,\n ...performanceOptions\n } = options;\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"pointerdown\", \"pointermove\", \"pointerup\"], handler, listenerOptions);\n useEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n }\n return {\n ...toRefs(state),\n isInside\n };\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock();\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n disableTextSelect = false\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n })\n ];\n tryOnMounted(() => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n if (disableTextSelect) {\n (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty(\"-webkit-user-select\", \"none\");\n (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty(\"-ms-user-select\", \"none\");\n (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty(\"user-select\", \"none\");\n }\n });\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(\n toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return readonly(previous);\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow = \"\";\n watch(toRef(element), (el) => {\n const target = resolveElement(toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, ele.style.overflow);\n if (ele.style.overflow !== \"hidden\")\n initialOverflow = ele.style.overflow;\n if (ele.style.overflow === \"hidden\")\n return isLocked.value = true;\n if (isLocked.value)\n return ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(toValue(element));\n if (!el || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const el = resolveElement(toValue(element));\n if (!el || !isLocked.value)\n return;\n if (isIOS)\n stopTouchMoveListener == null ? void 0 : stopTouchMoveListener();\n el.style.overflow = initialOverflow;\n elInitialOverflow.delete(el);\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = {\n ...toValue(shareOptions),\n ...toValue(overrideOptions)\n };\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...toValue(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(toValue(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n maxAlternatives = 1,\n window = defaultWindow\n } = options;\n const lang = toRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = toValue(lang);\n recognition.maxAlternatives = maxAlternatives;\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const currentResult = event.results[event.resultIndex];\n const { transcript } = currentResult[0];\n isFinal.value = currentResult.isFinal;\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = toValue(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = toRef(text || \"\");\n const lang = toRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = toValue(lang);\n utterance2.voice = toValue(options.voice) || null;\n utterance2.pitch = toValue(pitch);\n utterance2.rate = toValue(rate);\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n if (utterance)\n synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorageAsync\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = { ...rawInit, ...value };\n else data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n var _a;\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n const styleProp = (_a = options == null ? void 0 : options.styleProp) != null ? _a : \"height\";\n const textareaScrollHeight = ref(1);\n const textareaOldWidth = ref(0);\n function triggerResize() {\n var _a2;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style[styleProp] = \"1px\";\n textareaScrollHeight.value = (_a2 = textarea.value) == null ? void 0 : _a2.scrollHeight;\n const _styleTarget = toValue(options == null ? void 0 : options.styleTarget);\n if (_styleTarget)\n _styleTarget.style[styleProp] = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style[styleProp] = height;\n }\n watch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n watch(textareaScrollHeight, () => {\n var _a2;\n return (_a2 = options == null ? void 0 : options.onResize) == null ? void 0 : _a2.call(options);\n });\n useResizeObserver(textarea, ([{ contentRect }]) => {\n if (textareaOldWidth.value === contentRect.width)\n return;\n textareaOldWidth.value = contentRect.width;\n triggerResize();\n });\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Number.POSITIVE_INFINITY, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const { now, ...controls } = useNow({ interval: updateInterval, controls: true });\n const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n if (exposeControls) {\n return {\n timeAgo,\n ...controls\n };\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval, { immediate: false });\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return {\n timestamp: ts,\n ...controls\n };\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b, _c;\n const {\n document = defaultDocument,\n restoreOnUnmount = (t) => t\n } = options;\n const originalTitle = (_a = document == null ? void 0 : document.title) != null ? _a : \"\";\n const title = toRef((_b = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _b : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n }\n watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_c = document.head) == null ? void 0 : _c.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n tryOnBeforeUnmount(() => {\n if (restoreOnUnmount) {\n const restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n if (restoredTitle != null && document)\n document.title = restoredTitle;\n }\n });\n return title;\n}\n\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = toValue(from);\n const toVal = toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = toValue(source);\n return typeof v === \"number\" ? v : v.map(toValue);\n };\n const outputRef = ref(sourceVal());\n watch(sourceVal, async (to) => {\n var _a, _b;\n if (toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await promiseTimeout(toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, {\n ...options,\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n });\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n watch(() => toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n tryOnScopeDispose(() => {\n currentId++;\n });\n return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else _stop();\n },\n { immediate: true }\n );\n watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n tryOnScopeDispose(() => {\n stop();\n });\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n let isUpdating = false;\n watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n nextTick(() => isUpdating = false);\n }\n }\n );\n watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props) {\n ret[key] = useVModel(\n props,\n key,\n emit,\n options\n );\n }\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, containerRef, calculateRange) {\n watch([size.width, size.height, list, containerRef], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, containerRef, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, containerRef, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n const requestedType = ref(false);\n const sentinel = shallowRef(null);\n const documentVisibility = useDocumentVisibility({ document });\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = computed(() => !!sentinel.value && documentVisibility.value === \"visible\");\n if (isSupported.value) {\n useEventListener(sentinel, \"release\", () => {\n var _a, _b;\n requestedType.value = (_b = (_a = sentinel.value) == null ? void 0 : _a.type) != null ? _b : false;\n });\n whenever(\n () => documentVisibility.value === \"visible\" && (document == null ? void 0 : document.visibilityState) === \"visible\" && requestedType.value,\n (type) => {\n requestedType.value = false;\n forceRequest(type);\n }\n );\n }\n async function forceRequest(type) {\n var _a;\n await ((_a = sentinel.value) == null ? void 0 : _a.release());\n sentinel.value = isSupported.value ? await navigator.wakeLock.request(type) : null;\n }\n async function request(type) {\n if (documentVisibility.value === \"visible\")\n await forceRequest(type);\n else\n requestedType.value = type;\n }\n async function release() {\n requestedType.value = false;\n const s = sentinel.value;\n sentinel.value = null;\n await (s == null ? void 0 : s.release());\n }\n return {\n sentinel,\n isSupported,\n isActive,\n request,\n forceRequest,\n release\n };\n}\n\nfunction useWebNotification(options = {}) {\n const {\n window = defaultWindow,\n requestPermissions: _requestForPermissions = true\n } = options;\n const defaultWebNotificationOptions = options;\n const isSupported = useSupported(() => {\n if (!window || !(\"Notification\" in window))\n return false;\n try {\n new Notification(\"\");\n } catch (e) {\n return false;\n }\n return true;\n });\n const permissionGranted = ref(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n const notification = ref(null);\n const ensurePermissions = async () => {\n if (!isSupported.value)\n return;\n if (!permissionGranted.value && Notification.permission !== \"denied\") {\n const result = await Notification.requestPermission();\n if (result === \"granted\")\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n };\n const { on: onClick, trigger: clickTrigger } = createEventHook();\n const { on: onShow, trigger: showTrigger } = createEventHook();\n const { on: onError, trigger: errorTrigger } = createEventHook();\n const { on: onClose, trigger: closeTrigger } = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value || !permissionGranted.value)\n return;\n const options2 = Object.assign({}, defaultWebNotificationOptions, overrides);\n notification.value = new Notification(options2.title || \"\", options2);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n if (_requestForPermissions)\n tryOnMounted(ensurePermissions);\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n ensurePermissions,\n permissionGranted,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const close = (code = 1e3, reason) => {\n if (!isClient || !wsRef.value)\n return;\n explicitlyClosed = true;\n resetHeartbeat();\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n wsRef.value = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE,\n responseMessage = message\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === responseMessage)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n explicitlyClosed = false;\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n if (isClient)\n useEventListener(\"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n if (!isClient && !isWorker)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n open();\n watch(urlRef, open);\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = (...args) => {\n if (!worker.value)\n return;\n worker.value.postMessage(...args);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction depsParser(deps, localDeps) {\n if (deps.length === 0 && localDeps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n const depsFunctionString = localDeps.filter((dep) => typeof dep === \"function\").map((fn) => {\n const str = fn.toString();\n if (str.trim().startsWith(\"function\")) {\n return str;\n } else {\n const name = fn.name;\n return `const ${name} = ${str}`;\n }\n }).join(\";\");\n const importString = `importScripts(${depsString});`;\n return `${depsString.trim() === \"\" ? \"\" : importString} ${depsFunctionString}`;\n}\n\nfunction createWorkerBlobUrl(fn, deps, localDeps) {\n const blobCode = `${depsParser(deps, localDeps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n localDependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies, localDependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n e.preventDefault();\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n var _a;\n promise.value = {\n resolve,\n reject\n };\n (_a = worker.value) == null ? void 0 : _a.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll(options = {}) {\n const { window = defaultWindow, behavior = \"auto\" } = options;\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const internalX = ref(window.scrollX);\n const internalY = ref(window.scrollY);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo({ left: x2, behavior });\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo({ top: y2, behavior });\n }\n });\n useEventListener(\n window,\n \"scroll\",\n () => {\n internalX.value = window.scrollX;\n internalY.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n listenOrientation = true,\n includeScrollbar = true,\n type = \"inner\"\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (type === \"outer\") {\n width.value = window.outerWidth;\n height.value = window.outerHeight;\n } else if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n watch(matches, () => update());\n }\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsPrimeFlex, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, breakpointsVuetifyV2, breakpointsVuetifyV3, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useClipboardItems, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n","import { inject } from 'vue';\n\nvar PrimeVueToastSymbol = Symbol();\nfunction useToast() {\n var PrimeVueToast = inject(PrimeVueToastSymbol);\n if (!PrimeVueToast) {\n throw new Error('No PrimeVue Toast provided!');\n }\n return PrimeVueToast;\n}\n\nexport { PrimeVueToastSymbol, useToast };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-progressspinner {\\n position: relative;\\n margin: 0 auto;\\n width: 100px;\\n height: 100px;\\n display: inline-block;\\n}\\n\\n.p-progressspinner::before {\\n content: \\\"\\\";\\n display: block;\\n padding-top: 100%;\\n}\\n\\n.p-progressspinner-spin {\\n height: 100%;\\n transform-origin: center center;\\n width: 100%;\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n margin: auto;\\n animation: p-progressspinner-rotate 2s linear infinite;\\n}\\n\\n.p-progressspinner-circle {\\n stroke-dasharray: 89, 200;\\n stroke-dashoffset: 0;\\n stroke: \".concat(dt('progressspinner.color.1'), \";\\n animation: p-progressspinner-dash 1.5s ease-in-out infinite, p-progressspinner-color 6s ease-in-out infinite;\\n stroke-linecap: round;\\n}\\n\\n@keyframes p-progressspinner-rotate {\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes p-progressspinner-dash {\\n 0% {\\n stroke-dasharray: 1, 200;\\n stroke-dashoffset: 0;\\n }\\n 50% {\\n stroke-dasharray: 89, 200;\\n stroke-dashoffset: -35px;\\n }\\n 100% {\\n stroke-dasharray: 89, 200;\\n stroke-dashoffset: -124px;\\n }\\n}\\n@keyframes p-progressspinner-color {\\n 100%,\\n 0% {\\n stroke: \").concat(dt('progressspinner.color.1'), \";\\n }\\n 40% {\\n stroke: \").concat(dt('progressspinner.color.2'), \";\\n }\\n 66% {\\n stroke: \").concat(dt('progressspinner.color.3'), \";\\n }\\n 80%,\\n 90% {\\n stroke: \").concat(dt('progressspinner.color.4'), \";\\n }\\n}\\n\");\n};\nvar classes = {\n root: 'p-progressspinner',\n spin: 'p-progressspinner-spin',\n circle: 'p-progressspinner-circle'\n};\nvar ProgressSpinnerStyle = BaseStyle.extend({\n name: 'progressspinner',\n theme: theme,\n classes: classes\n});\n\nexport { ProgressSpinnerStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport ProgressSpinnerStyle from 'primevue/progressspinner/style';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script$1 = {\n name: 'BaseProgressSpinner',\n \"extends\": BaseComponent,\n props: {\n strokeWidth: {\n type: String,\n \"default\": '2'\n },\n fill: {\n type: String,\n \"default\": 'none'\n },\n animationDuration: {\n type: String,\n \"default\": '2s'\n }\n },\n style: ProgressSpinnerStyle,\n provide: function provide() {\n return {\n $pcProgressSpinner: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'ProgressSpinner',\n \"extends\": script$1,\n inheritAttrs: false,\n computed: {\n svgStyle: function svgStyle() {\n return {\n 'animation-duration': this.animationDuration\n };\n }\n }\n};\n\nvar _hoisted_1 = [\"fill\", \"stroke-width\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root'),\n role: \"progressbar\"\n }, _ctx.ptmi('root')), [(openBlock(), createElementBlock(\"svg\", mergeProps({\n \"class\": _ctx.cx('spin'),\n viewBox: \"25 25 50 50\",\n style: $options.svgStyle\n }, _ctx.ptm('spin')), [createElementVNode(\"circle\", mergeProps({\n \"class\": _ctx.cx('circle'),\n cx: \"50\",\n cy: \"50\",\n r: \"20\",\n fill: _ctx.fill,\n \"stroke-width\": _ctx.strokeWidth,\n strokeMiterlimit: \"10\"\n }, _ctx.ptm('circle')), null, 16, _hoisted_1)], 16))], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","/*!\n * shared v9.13.1\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\n * Original Utilities\n * written by kazuya kawaguchi\n */\nconst inBrowser = typeof window !== 'undefined';\nlet mark;\nlet measure;\nif ((process.env.NODE_ENV !== 'production')) {\n const perf = inBrowser && window.performance;\n if (perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n // @ts-ignore browser compat\n perf.clearMeasures) {\n mark = (tag) => {\n perf.mark(tag);\n };\n measure = (name, startTag, endTag) => {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n };\n }\n}\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\n/* eslint-disable */\nfunction format(message, ...args) {\n if (args.length === 1 && isObject(args[0])) {\n args = args[0];\n }\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n return message.replace(RE_ARGS, (match, identifier) => {\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\n });\n}\nconst makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name);\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n .replace(/\\u0027/g, '\\\\u0027');\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\nconst isDate = (val) => toTypeString(val) === '[object Date]';\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\nconst assign = Object.assign;\nlet _globalThis;\nconst getGlobalThis = () => {\n // prettier-ignore\n return (_globalThis ||\n (_globalThis =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {}));\n};\nfunction escapeHtml(rawText) {\n return rawText\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n/* eslint-enable */\n/**\n * Useful Utilities By Evan you\n * Modified by kazuya kawaguchi\n * MIT License\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\n */\nconst isArray = Array.isArray;\nconst isFunction = (val) => typeof val === 'function';\nconst isString = (val) => typeof val === 'string';\nconst isBoolean = (val) => typeof val === 'boolean';\nconst isSymbol = (val) => typeof val === 'symbol';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isObject = (val) => val !== null && typeof val === 'object';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isPromise = (val) => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst isPlainObject = (val) => {\n if (!isObject(val))\n return false;\n const proto = Object.getPrototypeOf(val);\n return proto === null || proto.constructor === Object;\n};\n// for converting list and named values to displayed strings.\nconst toDisplayString = (val) => {\n return val == null\n ? ''\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\n ? JSON.stringify(val, null, 2)\n : String(val);\n};\nfunction join(items, separator = '') {\n return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), '');\n}\nconst RANGE = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n const lines = source.split(/\\r?\\n/);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + 1;\n if (count >= start) {\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\n const lineLength = lines[j].length;\n if (j === i) {\n // push underline\n const pad = start - (count - lineLength) + 1;\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n }\n else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + 1;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\nfunction incrementer(code) {\n let current = code;\n return () => ++current;\n}\n\nfunction warn(msg, err) {\n if (typeof console !== 'undefined') {\n console.warn(`[intlify] ` + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\nconst hasWarned = {};\nfunction warnOnce(msg) {\n if (!hasWarned[msg]) {\n hasWarned[msg] = true;\n warn(msg);\n }\n}\n\n/**\n * Event emitter, forked from the below:\n * - original repository url: https://github.com/developit/mitt\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\n * - author: Jason Miller (https://github.com/developit)\n * - license: MIT\n */\n/**\n * Create a event emitter\n *\n * @returns An event emitter\n */\nfunction createEmitter() {\n const events = new Map();\n const emitter = {\n events,\n on(event, handler) {\n const handlers = events.get(event);\n const added = handlers && handlers.push(handler);\n if (!added) {\n events.set(event, [handler]);\n }\n },\n off(event, handler) {\n const handlers = events.get(event);\n if (handlers) {\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n }\n },\n emit(event, payload) {\n (events.get(event) || [])\n .slice()\n .map(handler => handler(payload));\n (events.get('*') || [])\n .slice()\n .map(handler => handler(event, payload));\n }\n };\n return emitter;\n}\n\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nfunction deepCopy(src, des) {\n // src and des should both be objects, and none of them can be a array\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\n throw new Error('Invalid value');\n }\n const stack = [{ src, des }];\n while (stack.length) {\n const { src, des } = stack.pop();\n Object.keys(src).forEach(key => {\n if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\n // replace with src[key] when:\n // src[key] or des[key] is not an object, or\n // src[key] or des[key] is an array\n des[key] = src[key];\n }\n else {\n // src[key] and des[key] are both objects, merge them\n stack.push({ src: src[key], des: des[key] });\n }\n });\n }\n}\n\nexport { assign, createEmitter, deepCopy, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, incrementer, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, join, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn, warnOnce };\n","/*!\n * message-compiler v9.13.1\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst LOCATION_STUB = {\n start: { line: 1, column: 1, offset: 0 },\n end: { line: 1, column: 1, offset: 0 }\n};\nfunction createPosition(line, column, offset) {\n return { line, column, offset };\n}\nfunction createLocation(start, end, source) {\n const loc = { start, end };\n if (source != null) {\n loc.source = source;\n }\n return loc;\n}\n\n/**\n * Original Utilities\n * written by kazuya kawaguchi\n */\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\n/* eslint-disable */\nfunction format(message, ...args) {\n if (args.length === 1 && isObject(args[0])) {\n args = args[0];\n }\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n return message.replace(RE_ARGS, (match, identifier) => {\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\n });\n}\nconst assign = Object.assign;\nconst isString = (val) => typeof val === 'string';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isObject = (val) => val !== null && typeof val === 'object';\nfunction join(items, separator = '') {\n return items.reduce((str, item, index) => (index === 0 ? str + item : str + separator + item), '');\n}\n\nconst CompileWarnCodes = {\n USE_MODULO_SYNTAX: 1,\n __EXTEND_POINT__: 2\n};\n/** @internal */\nconst warnMessages = {\n [CompileWarnCodes.USE_MODULO_SYNTAX]: `Use modulo before '{{0}}'.`\n};\nfunction createCompileWarn(code, loc, ...args) {\n const msg = format(warnMessages[code] || '', ...(args || [])) ;\n const message = { message: String(msg), code };\n if (loc) {\n message.location = loc;\n }\n return message;\n}\n\nconst CompileErrorCodes = {\n // tokenizer error codes\n EXPECTED_TOKEN: 1,\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\n UNKNOWN_ESCAPE_SEQUENCE: 4,\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\n UNBALANCED_CLOSING_BRACE: 6,\n UNTERMINATED_CLOSING_BRACE: 7,\n EMPTY_PLACEHOLDER: 8,\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\n INVALID_LINKED_FORMAT: 10,\n // parser error codes\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\n // generator error codes\n UNHANDLED_CODEGEN_NODE_TYPE: 15,\n // minifier error codes\n UNHANDLED_MINIFIER_NODE_TYPE: 16,\n // Special value for higher-order compilers to pick up the last code\n // to avoid collision of error codes. This should always be kept as the last\n // item.\n __EXTEND_POINT__: 17\n};\n/** @internal */\nconst errorMessages = {\n // tokenizer error messages\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\n // parser error messages\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`,\n // generator error messages\n [CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]: `unhandled codegen node type: '{0}'`,\n // minimizer error messages\n [CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]: `unhandled mimifier node type: '{0}'`\n};\nfunction createCompileError(code, loc, options = {}) {\n const { domain, messages, args } = options;\n const msg = format((messages || errorMessages)[code] || '', ...(args || []))\n ;\n const error = new SyntaxError(String(msg));\n error.code = code;\n if (loc) {\n error.location = loc;\n }\n error.domain = domain;\n return error;\n}\n/** @internal */\nfunction defaultOnError(error) {\n throw error;\n}\n\n// eslint-disable-next-line no-useless-escape\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nconst detectHtmlTag = (source) => RE_HTML_TAG.test(source);\n\nconst CHAR_SP = ' ';\nconst CHAR_CR = '\\r';\nconst CHAR_LF = '\\n';\nconst CHAR_LS = String.fromCharCode(0x2028);\nconst CHAR_PS = String.fromCharCode(0x2029);\nfunction createScanner(str) {\n const _buf = str;\n let _index = 0;\n let _line = 1;\n let _column = 1;\n let _peekOffset = 0;\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\n const isLF = (index) => _buf[index] === CHAR_LF;\n const isPS = (index) => _buf[index] === CHAR_PS;\n const isLS = (index) => _buf[index] === CHAR_LS;\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\n const index = () => _index;\n const line = () => _line;\n const column = () => _column;\n const peekOffset = () => _peekOffset;\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\n const currentChar = () => charAt(_index);\n const currentPeek = () => charAt(_index + _peekOffset);\n function next() {\n _peekOffset = 0;\n if (isLineEnd(_index)) {\n _line++;\n _column = 0;\n }\n if (isCRLF(_index)) {\n _index++;\n }\n _index++;\n _column++;\n return _buf[_index];\n }\n function peek() {\n if (isCRLF(_index + _peekOffset)) {\n _peekOffset++;\n }\n _peekOffset++;\n return _buf[_index + _peekOffset];\n }\n function reset() {\n _index = 0;\n _line = 1;\n _column = 1;\n _peekOffset = 0;\n }\n function resetPeek(offset = 0) {\n _peekOffset = offset;\n }\n function skipToPeek() {\n const target = _index + _peekOffset;\n // eslint-disable-next-line no-unmodified-loop-condition\n while (target !== _index) {\n next();\n }\n _peekOffset = 0;\n }\n return {\n index,\n line,\n column,\n peekOffset,\n charAt,\n currentChar,\n currentPeek,\n next,\n peek,\n reset,\n resetPeek,\n skipToPeek\n };\n}\n\nconst EOF = undefined;\nconst DOT = '.';\nconst LITERAL_DELIMITER = \"'\";\nconst ERROR_DOMAIN$3 = 'tokenizer';\nfunction createTokenizer(source, options = {}) {\n const location = options.location !== false;\n const _scnr = createScanner(source);\n const currentOffset = () => _scnr.index();\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\n const _initLoc = currentPosition();\n const _initOffset = currentOffset();\n const _context = {\n currentType: 14 /* TokenTypes.EOF */,\n offset: _initOffset,\n startLoc: _initLoc,\n endLoc: _initLoc,\n lastType: 14 /* TokenTypes.EOF */,\n lastOffset: _initOffset,\n lastStartLoc: _initLoc,\n lastEndLoc: _initLoc,\n braceNest: 0,\n inLinked: false,\n text: ''\n };\n const context = () => _context;\n const { onError } = options;\n function emitError(code, pos, offset, ...args) {\n const ctx = context();\n pos.column += offset;\n pos.offset += offset;\n if (onError) {\n const loc = location ? createLocation(ctx.startLoc, pos) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$3,\n args\n });\n onError(err);\n }\n }\n function getToken(context, type, value) {\n context.endLoc = currentPosition();\n context.currentType = type;\n const token = { type };\n if (location) {\n token.loc = createLocation(context.startLoc, context.endLoc);\n }\n if (value != null) {\n token.value = value;\n }\n return token;\n }\n const getEndToken = (context) => getToken(context, 14 /* TokenTypes.EOF */);\n function eat(scnr, ch) {\n if (scnr.currentChar() === ch) {\n scnr.next();\n return ch;\n }\n else {\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n return '';\n }\n }\n function peekSpaces(scnr) {\n let buf = '';\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\n buf += scnr.currentPeek();\n scnr.peek();\n }\n return buf;\n }\n function skipSpaces(scnr) {\n const buf = peekSpaces(scnr);\n scnr.skipToPeek();\n return buf;\n }\n function isIdentifierStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n cc === 95 // _\n );\n }\n function isNumberStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function isNamedIdentifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isListIdentifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\n const ret = isNumberStart(ch);\n scnr.resetPeek();\n return ret;\n }\n function isLiteralStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDotStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 8 /* TokenTypes.LinkedAlias */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \".\" /* TokenChars.LinkedDot */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedModifierStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 9 /* TokenTypes.LinkedDot */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDelimiterStart(scnr, context) {\n const { currentType } = context;\n if (!(currentType === 8 /* TokenTypes.LinkedAlias */ ||\n currentType === 12 /* TokenTypes.LinkedModifier */)) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \":\" /* TokenChars.LinkedDelimiter */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedReferStart(scnr, context) {\n const { currentType } = context;\n if (currentType !== 10 /* TokenTypes.LinkedDelimiter */) {\n return false;\n }\n const fn = () => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return isIdentifierStart(scnr.peek());\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"%\" /* TokenChars.Modulo */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n ch === \":\" /* TokenChars.LinkedDelimiter */ ||\n ch === \".\" /* TokenChars.LinkedDot */ ||\n ch === CHAR_SP ||\n !ch) {\n return false;\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn();\n }\n else {\n // other characters\n return isTextStart(scnr, false);\n }\n };\n const ret = fn();\n scnr.resetPeek();\n return ret;\n }\n function isPluralStart(scnr) {\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \"|\" /* TokenChars.Pipe */;\n scnr.resetPeek();\n return ret;\n }\n function detectModuloStart(scnr) {\n const spaces = peekSpaces(scnr);\n const ret = scnr.currentPeek() === \"%\" /* TokenChars.Modulo */ &&\n scnr.peek() === \"{\" /* TokenChars.BraceLeft */;\n scnr.resetPeek();\n return {\n isModulo: ret,\n hasSpace: spaces.length > 0\n };\n }\n function isTextStart(scnr, reset = true) {\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return prev === \"%\" /* TokenChars.Modulo */ ? false : hasSpace;\n }\n else if (ch === \"@\" /* TokenChars.LinkedAlias */ || !ch) {\n return prev === \"%\" /* TokenChars.Modulo */ ? true : hasSpace;\n }\n else if (ch === \"%\" /* TokenChars.Modulo */) {\n scnr.peek();\n return fn(hasSpace, \"%\" /* TokenChars.Modulo */, true);\n }\n else if (ch === \"|\" /* TokenChars.Pipe */) {\n return prev === \"%\" /* TokenChars.Modulo */ || detectModulo\n ? true\n : !(prev === CHAR_SP || prev === CHAR_LF);\n }\n else if (ch === CHAR_SP) {\n scnr.peek();\n return fn(true, CHAR_SP, detectModulo);\n }\n else if (ch === CHAR_LF) {\n scnr.peek();\n return fn(true, CHAR_LF, detectModulo);\n }\n else {\n return true;\n }\n };\n const ret = fn();\n reset && scnr.resetPeek();\n return ret;\n }\n function takeChar(scnr, fn) {\n const ch = scnr.currentChar();\n if (ch === EOF) {\n return EOF;\n }\n if (fn(ch)) {\n scnr.next();\n return ch;\n }\n return null;\n }\n function isIdentifier(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || // _\n cc === 36 // $\n );\n }\n function takeIdentifierChar(scnr) {\n return takeChar(scnr, isIdentifier);\n }\n function isNamedIdentifier(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 97 && cc <= 122) || // a-z\n (cc >= 65 && cc <= 90) || // A-Z\n (cc >= 48 && cc <= 57) || // 0-9\n cc === 95 || // _\n cc === 36 || // $\n cc === 45 // -\n );\n }\n function takeNamedIdentifierChar(scnr) {\n return takeChar(scnr, isNamedIdentifier);\n }\n function isDigit(ch) {\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function takeDigit(scnr) {\n return takeChar(scnr, isDigit);\n }\n function isHexDigit(ch) {\n const cc = ch.charCodeAt(0);\n return ((cc >= 48 && cc <= 57) || // 0-9\n (cc >= 65 && cc <= 70) || // A-F\n (cc >= 97 && cc <= 102)); // a-f\n }\n function takeHexDigit(scnr) {\n return takeChar(scnr, isHexDigit);\n }\n function getDigits(scnr) {\n let ch = '';\n let num = '';\n while ((ch = takeDigit(scnr))) {\n num += ch;\n }\n return num;\n }\n function readModulo(scnr) {\n skipSpaces(scnr);\n const ch = scnr.currentChar();\n if (ch !== \"%\" /* TokenChars.Modulo */) {\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n }\n scnr.next();\n return \"%\" /* TokenChars.Modulo */;\n }\n function readText(scnr) {\n let buf = '';\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"}\" /* TokenChars.BraceRight */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n !ch) {\n break;\n }\n else if (ch === \"%\" /* TokenChars.Modulo */) {\n if (isTextStart(scnr)) {\n buf += ch;\n scnr.next();\n }\n else {\n break;\n }\n }\n else if (ch === CHAR_SP || ch === CHAR_LF) {\n if (isTextStart(scnr)) {\n buf += ch;\n scnr.next();\n }\n else if (isPluralStart(scnr)) {\n break;\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n else {\n buf += ch;\n scnr.next();\n }\n }\n return buf;\n }\n function readNamedIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let name = '';\n while ((ch = takeNamedIdentifierChar(scnr))) {\n name += ch;\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return name;\n }\n function readListIdentifier(scnr) {\n skipSpaces(scnr);\n let value = '';\n if (scnr.currentChar() === '-') {\n scnr.next();\n value += `-${getDigits(scnr)}`;\n }\n else {\n value += getDigits(scnr);\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return value;\n }\n function isLiteral(ch) {\n return ch !== LITERAL_DELIMITER && ch !== CHAR_LF;\n }\n function readLiteral(scnr) {\n skipSpaces(scnr);\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n let ch = '';\n let literal = '';\n while ((ch = takeChar(scnr, isLiteral))) {\n if (ch === '\\\\') {\n literal += readEscapeSequence(scnr);\n }\n else {\n literal += ch;\n }\n }\n const current = scnr.currentChar();\n if (current === CHAR_LF || current === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\n // TODO: Is it correct really?\n if (current === CHAR_LF) {\n scnr.next();\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n }\n return literal;\n }\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n return literal;\n }\n function readEscapeSequence(scnr) {\n const ch = scnr.currentChar();\n switch (ch) {\n case '\\\\':\n case `\\'`: // eslint-disable-line no-useless-escape\n scnr.next();\n return `\\\\${ch}`;\n case 'u':\n return readUnicodeEscapeSequence(scnr, ch, 4);\n case 'U':\n return readUnicodeEscapeSequence(scnr, ch, 6);\n default:\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\n return '';\n }\n }\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\n eat(scnr, unicode);\n let sequence = '';\n for (let i = 0; i < digits; i++) {\n const ch = takeHexDigit(scnr);\n if (!ch) {\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\n break;\n }\n sequence += ch;\n }\n return `\\\\${unicode}${sequence}`;\n }\n function isInvalidIdentifier(ch) {\n return (ch !== \"{\" /* TokenChars.BraceLeft */ &&\n ch !== \"}\" /* TokenChars.BraceRight */ &&\n ch !== CHAR_SP &&\n ch !== CHAR_LF);\n }\n function readInvalidIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let identifiers = '';\n while ((ch = takeChar(scnr, isInvalidIdentifier))) {\n identifiers += ch;\n }\n return identifiers;\n }\n function readLinkedModifier(scnr) {\n let ch = '';\n let name = '';\n while ((ch = takeIdentifierChar(scnr))) {\n name += ch;\n }\n return name;\n }\n function readLinkedRefer(scnr) {\n const fn = (buf) => {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ ||\n ch === \"%\" /* TokenChars.Modulo */ ||\n ch === \"@\" /* TokenChars.LinkedAlias */ ||\n ch === \"|\" /* TokenChars.Pipe */ ||\n ch === \"(\" /* TokenChars.ParenLeft */ ||\n ch === \")\" /* TokenChars.ParenRight */ ||\n !ch) {\n return buf;\n }\n else if (ch === CHAR_SP) {\n return buf;\n }\n else if (ch === CHAR_LF || ch === DOT) {\n buf += ch;\n scnr.next();\n return fn(buf);\n }\n else {\n buf += ch;\n scnr.next();\n return fn(buf);\n }\n };\n return fn('');\n }\n function readPlural(scnr) {\n skipSpaces(scnr);\n const plural = eat(scnr, \"|\" /* TokenChars.Pipe */);\n skipSpaces(scnr);\n return plural;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInPlaceholder(scnr, context) {\n let token = null;\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n if (context.braceNest >= 1) {\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 2 /* TokenTypes.BraceLeft */, \"{\" /* TokenChars.BraceLeft */);\n skipSpaces(scnr);\n context.braceNest++;\n return token;\n case \"}\" /* TokenChars.BraceRight */:\n if (context.braceNest > 0 &&\n context.currentType === 2 /* TokenTypes.BraceLeft */) {\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n context.braceNest--;\n context.braceNest > 0 && skipSpaces(scnr);\n if (context.inLinked && context.braceNest === 0) {\n context.inLinked = false;\n }\n return token;\n case \"@\" /* TokenChars.LinkedAlias */:\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = readTokenInLinked(scnr, context) || getEndToken(context);\n context.braceNest = 0;\n return token;\n default: {\n let validNamedIdentifier = true;\n let validListIdentifier = true;\n let validLiteral = true;\n if (isPluralStart(scnr)) {\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (context.braceNest > 0 &&\n (context.currentType === 5 /* TokenTypes.Named */ ||\n context.currentType === 6 /* TokenTypes.List */ ||\n context.currentType === 7 /* TokenTypes.Literal */)) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n context.braceNest = 0;\n return readToken(scnr, context);\n }\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\n token = getToken(context, 5 /* TokenTypes.Named */, readNamedIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\n token = getToken(context, 6 /* TokenTypes.List */, readListIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if ((validLiteral = isLiteralStart(scnr, context))) {\n token = getToken(context, 7 /* TokenTypes.Literal */, readLiteral(scnr));\n skipSpaces(scnr);\n return token;\n }\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\n token = getToken(context, 13 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr));\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\n skipSpaces(scnr);\n return token;\n }\n break;\n }\n }\n return token;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInLinked(scnr, context) {\n const { currentType } = context;\n let token = null;\n const ch = scnr.currentChar();\n if ((currentType === 8 /* TokenTypes.LinkedAlias */ ||\n currentType === 9 /* TokenTypes.LinkedDot */ ||\n currentType === 12 /* TokenTypes.LinkedModifier */ ||\n currentType === 10 /* TokenTypes.LinkedDelimiter */) &&\n (ch === CHAR_LF || ch === CHAR_SP)) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n switch (ch) {\n case \"@\" /* TokenChars.LinkedAlias */:\n scnr.next();\n token = getToken(context, 8 /* TokenTypes.LinkedAlias */, \"@\" /* TokenChars.LinkedAlias */);\n context.inLinked = true;\n return token;\n case \".\" /* TokenChars.LinkedDot */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 9 /* TokenTypes.LinkedDot */, \".\" /* TokenChars.LinkedDot */);\n case \":\" /* TokenChars.LinkedDelimiter */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 10 /* TokenTypes.LinkedDelimiter */, \":\" /* TokenChars.LinkedDelimiter */);\n default:\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (isLinkedDotStart(scnr, context) ||\n isLinkedDelimiterStart(scnr, context)) {\n skipSpaces(scnr);\n return readTokenInLinked(scnr, context);\n }\n if (isLinkedModifierStart(scnr, context)) {\n skipSpaces(scnr);\n return getToken(context, 12 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr));\n }\n if (isLinkedReferStart(scnr, context)) {\n skipSpaces(scnr);\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n // scan the placeholder\n return readTokenInPlaceholder(scnr, context) || token;\n }\n else {\n return getToken(context, 11 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr));\n }\n }\n if (currentType === 8 /* TokenTypes.LinkedAlias */) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n context.braceNest = 0;\n context.inLinked = false;\n return readToken(scnr, context);\n }\n }\n // TODO: We need refactoring of token parsing ...\n function readToken(scnr, context) {\n let token = { type: 14 /* TokenTypes.EOF */ };\n if (context.braceNest > 0) {\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n }\n if (context.inLinked) {\n return readTokenInLinked(scnr, context) || getEndToken(context);\n }\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n case \"}\" /* TokenChars.BraceRight */:\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\n scnr.next();\n return getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n case \"@\" /* TokenChars.LinkedAlias */:\n return readTokenInLinked(scnr, context) || getEndToken(context);\n default: {\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n const { isModulo, hasSpace } = detectModuloStart(scnr);\n if (isModulo) {\n return hasSpace\n ? getToken(context, 0 /* TokenTypes.Text */, readText(scnr))\n : getToken(context, 4 /* TokenTypes.Modulo */, readModulo(scnr));\n }\n if (isTextStart(scnr)) {\n return getToken(context, 0 /* TokenTypes.Text */, readText(scnr));\n }\n break;\n }\n }\n return token;\n }\n function nextToken() {\n const { currentType, offset, startLoc, endLoc } = _context;\n _context.lastType = currentType;\n _context.lastOffset = offset;\n _context.lastStartLoc = startLoc;\n _context.lastEndLoc = endLoc;\n _context.offset = currentOffset();\n _context.startLoc = currentPosition();\n if (_scnr.currentChar() === EOF) {\n return getToken(_context, 14 /* TokenTypes.EOF */);\n }\n return readToken(_scnr, _context);\n }\n return {\n nextToken,\n currentOffset,\n currentPosition,\n context\n };\n}\n\nconst ERROR_DOMAIN$2 = 'parser';\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\n switch (match) {\n case `\\\\\\\\`:\n return `\\\\`;\n // eslint-disable-next-line no-useless-escape\n case `\\\\\\'`:\n // eslint-disable-next-line no-useless-escape\n return `\\'`;\n default: {\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\n return String.fromCodePoint(codePoint);\n }\n // invalid ...\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\n return '�';\n }\n }\n}\nfunction createParser(options = {}) {\n const location = options.location !== false;\n const { onError, onWarn } = options;\n function emitError(tokenzer, code, start, offset, ...args) {\n const end = tokenzer.currentPosition();\n end.offset += offset;\n end.column += offset;\n if (onError) {\n const loc = location ? createLocation(start, end) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$2,\n args\n });\n onError(err);\n }\n }\n function emitWarn(tokenzer, code, start, offset, ...args) {\n const end = tokenzer.currentPosition();\n end.offset += offset;\n end.column += offset;\n if (onWarn) {\n const loc = location ? createLocation(start, end) : null;\n onWarn(createCompileWarn(code, loc, args));\n }\n }\n function startNode(type, offset, loc) {\n const node = { type };\n if (location) {\n node.start = offset;\n node.end = offset;\n node.loc = { start: loc, end: loc };\n }\n return node;\n }\n function endNode(node, offset, pos, type) {\n if (type) {\n node.type = type;\n }\n if (location) {\n node.end = offset;\n if (node.loc) {\n node.loc.end = pos;\n }\n }\n }\n function parseText(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseList(tokenizer, index) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(5 /* NodeTypes.List */, offset, loc);\n node.index = parseInt(index, 10);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseNamed(tokenizer, key, modulo) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(4 /* NodeTypes.Named */, offset, loc);\n node.key = key;\n if (modulo === true) {\n node.modulo = true;\n }\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLiteral(tokenizer, value) {\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\n const node = startNode(9 /* NodeTypes.Literal */, offset, loc);\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinkedModifier(tokenizer) {\n const token = tokenizer.nextToken();\n const context = tokenizer.context();\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\n const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc);\n if (token.type !== 12 /* TokenTypes.LinkedModifier */) {\n // empty modifier\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\n node.value = '';\n endNode(node, offset, loc);\n return {\n nextConsumeToken: token,\n node\n };\n }\n // check token\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.value = token.value || '';\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node\n };\n }\n function parseLinkedKey(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinked(tokenizer) {\n const context = tokenizer.context();\n const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc);\n let token = tokenizer.nextToken();\n if (token.type === 9 /* TokenTypes.LinkedDot */) {\n const parsed = parseLinkedModifier(tokenizer);\n linkedNode.modifier = parsed.node;\n token = parsed.nextConsumeToken || tokenizer.nextToken();\n }\n // asset check token\n if (token.type !== 10 /* TokenTypes.LinkedDelimiter */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n token = tokenizer.nextToken();\n // skip brace left\n if (token.type === 2 /* TokenTypes.BraceLeft */) {\n token = tokenizer.nextToken();\n }\n switch (token.type) {\n case 11 /* TokenTypes.LinkedKey */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\n break;\n case 5 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseNamed(tokenizer, token.value || '');\n break;\n case 6 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseList(tokenizer, token.value || '');\n break;\n case 7 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\n break;\n default: {\n // empty key\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\n const nextContext = tokenizer.context();\n const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc);\n emptyLinkedKeyNode.value = '';\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\n linkedNode.key = emptyLinkedKeyNode;\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\n return {\n nextConsumeToken: token,\n node: linkedNode\n };\n }\n }\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node: linkedNode\n };\n }\n function parseMessage(tokenizer) {\n const context = tokenizer.context();\n const startOffset = context.currentType === 1 /* TokenTypes.Pipe */\n ? tokenizer.currentOffset()\n : context.offset;\n const startLoc = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.endLoc\n : context.startLoc;\n const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc);\n node.items = [];\n let nextToken = null;\n let modulo = null;\n do {\n const token = nextToken || tokenizer.nextToken();\n nextToken = null;\n switch (token.type) {\n case 0 /* TokenTypes.Text */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseText(tokenizer, token.value || ''));\n break;\n case 6 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseList(tokenizer, token.value || ''));\n break;\n case 4 /* TokenTypes.Modulo */:\n modulo = true;\n break;\n case 5 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseNamed(tokenizer, token.value || '', !!modulo));\n if (modulo) {\n emitWarn(tokenizer, CompileWarnCodes.USE_MODULO_SYNTAX, context.lastStartLoc, 0, getTokenCaption(token));\n modulo = null;\n }\n break;\n case 7 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseLiteral(tokenizer, token.value || ''));\n break;\n case 8 /* TokenTypes.LinkedAlias */: {\n const parsed = parseLinked(tokenizer);\n node.items.push(parsed.node);\n nextToken = parsed.nextConsumeToken || null;\n break;\n }\n }\n } while (context.currentType !== 14 /* TokenTypes.EOF */ &&\n context.currentType !== 1 /* TokenTypes.Pipe */);\n // adjust message node loc\n const endOffset = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.lastOffset\n : tokenizer.currentOffset();\n const endLoc = context.currentType === 1 /* TokenTypes.Pipe */\n ? context.lastEndLoc\n : tokenizer.currentPosition();\n endNode(node, endOffset, endLoc);\n return node;\n }\n function parsePlural(tokenizer, offset, loc, msgNode) {\n const context = tokenizer.context();\n let hasEmptyMessage = msgNode.items.length === 0;\n const node = startNode(1 /* NodeTypes.Plural */, offset, loc);\n node.cases = [];\n node.cases.push(msgNode);\n do {\n const msg = parseMessage(tokenizer);\n if (!hasEmptyMessage) {\n hasEmptyMessage = msg.items.length === 0;\n }\n node.cases.push(msg);\n } while (context.currentType !== 14 /* TokenTypes.EOF */);\n if (hasEmptyMessage) {\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseResource(tokenizer) {\n const context = tokenizer.context();\n const { offset, startLoc } = context;\n const msgNode = parseMessage(tokenizer);\n if (context.currentType === 14 /* TokenTypes.EOF */) {\n return msgNode;\n }\n else {\n return parsePlural(tokenizer, offset, startLoc, msgNode);\n }\n }\n function parse(source) {\n const tokenizer = createTokenizer(source, assign({}, options));\n const context = tokenizer.context();\n const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc);\n if (location && node.loc) {\n node.loc.source = source;\n }\n node.body = parseResource(tokenizer);\n if (options.onCacheKey) {\n node.cacheKey = options.onCacheKey(source);\n }\n // assert whether achieved to EOF\n if (context.currentType !== 14 /* TokenTypes.EOF */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n return { parse };\n}\nfunction getTokenCaption(token) {\n if (token.type === 14 /* TokenTypes.EOF */) {\n return 'EOF';\n }\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\n) {\n const _context = {\n ast,\n helpers: new Set()\n };\n const context = () => _context;\n const helper = (name) => {\n _context.helpers.add(name);\n return name;\n };\n return { context, helper };\n}\nfunction traverseNodes(nodes, transformer) {\n for (let i = 0; i < nodes.length; i++) {\n traverseNode(nodes[i], transformer);\n }\n}\nfunction traverseNode(node, transformer) {\n // TODO: if we need pre-hook of transform, should be implemented to here\n switch (node.type) {\n case 1 /* NodeTypes.Plural */:\n traverseNodes(node.cases, transformer);\n transformer.helper(\"plural\" /* HelperNameMap.PLURAL */);\n break;\n case 2 /* NodeTypes.Message */:\n traverseNodes(node.items, transformer);\n break;\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n traverseNode(linked.key, transformer);\n transformer.helper(\"linked\" /* HelperNameMap.LINKED */);\n transformer.helper(\"type\" /* HelperNameMap.TYPE */);\n break;\n }\n case 5 /* NodeTypes.List */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"list\" /* HelperNameMap.LIST */);\n break;\n case 4 /* NodeTypes.Named */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"named\" /* HelperNameMap.NAMED */);\n break;\n }\n // TODO: if we need post-hook of transform, should be implemented to here\n}\n// transform AST\nfunction transform(ast, options = {} // eslint-disable-line\n) {\n const transformer = createTransformer(ast);\n transformer.helper(\"normalize\" /* HelperNameMap.NORMALIZE */);\n // traverse\n ast.body && traverseNode(ast.body, transformer);\n // set meta information\n const context = transformer.context();\n ast.helpers = Array.from(context.helpers);\n}\n\nfunction optimize(ast) {\n const body = ast.body;\n if (body.type === 2 /* NodeTypes.Message */) {\n optimizeMessageNode(body);\n }\n else {\n body.cases.forEach(c => optimizeMessageNode(c));\n }\n return ast;\n}\nfunction optimizeMessageNode(message) {\n if (message.items.length === 1) {\n const item = message.items[0];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n message.static = item.value;\n delete item.value; // optimization for size\n }\n }\n else {\n const values = [];\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (!(item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */)) {\n break;\n }\n if (item.value == null) {\n break;\n }\n values.push(item.value);\n }\n if (values.length === message.items.length) {\n message.static = join(values);\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n delete item.value; // optimization for size\n }\n }\n }\n }\n}\n\nconst ERROR_DOMAIN$1 = 'minifier';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction minify(node) {\n node.t = node.type;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */: {\n const resource = node;\n minify(resource.body);\n resource.b = resource.body;\n delete resource.body;\n break;\n }\n case 1 /* NodeTypes.Plural */: {\n const plural = node;\n const cases = plural.cases;\n for (let i = 0; i < cases.length; i++) {\n minify(cases[i]);\n }\n plural.c = cases;\n delete plural.cases;\n break;\n }\n case 2 /* NodeTypes.Message */: {\n const message = node;\n const items = message.items;\n for (let i = 0; i < items.length; i++) {\n minify(items[i]);\n }\n message.i = items;\n delete message.items;\n if (message.static) {\n message.s = message.static;\n delete message.static;\n }\n break;\n }\n case 3 /* NodeTypes.Text */:\n case 9 /* NodeTypes.Literal */:\n case 8 /* NodeTypes.LinkedModifier */:\n case 7 /* NodeTypes.LinkedKey */: {\n const valueNode = node;\n if (valueNode.value) {\n valueNode.v = valueNode.value;\n delete valueNode.value;\n }\n break;\n }\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n minify(linked.key);\n linked.k = linked.key;\n delete linked.key;\n if (linked.modifier) {\n minify(linked.modifier);\n linked.m = linked.modifier;\n delete linked.modifier;\n }\n break;\n }\n case 5 /* NodeTypes.List */: {\n const list = node;\n list.i = list.index;\n delete list.index;\n break;\n }\n case 4 /* NodeTypes.Named */: {\n const named = node;\n named.k = named.key;\n delete named.key;\n break;\n }\n default:\n {\n throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, {\n domain: ERROR_DOMAIN$1,\n args: [node.type]\n });\n }\n }\n delete node.type;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nconst ERROR_DOMAIN = 'parser';\nfunction createCodeGenerator(ast, options) {\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\n const location = options.location !== false;\n const _context = {\n filename,\n code: '',\n column: 1,\n line: 1,\n offset: 0,\n map: undefined,\n breakLineCode,\n needIndent: _needIndent,\n indentLevel: 0\n };\n if (location && ast.loc) {\n _context.source = ast.loc.source;\n }\n const context = () => _context;\n function push(code, node) {\n _context.code += code;\n }\n function _newline(n, withBreakLine = true) {\n const _breakLineCode = withBreakLine ? breakLineCode : '';\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\n }\n function indent(withNewLine = true) {\n const level = ++_context.indentLevel;\n withNewLine && _newline(level);\n }\n function deindent(withNewLine = true) {\n const level = --_context.indentLevel;\n withNewLine && _newline(level);\n }\n function newline() {\n _newline(_context.indentLevel);\n }\n const helper = (key) => `_${key}`;\n const needIndent = () => _context.needIndent;\n return {\n context,\n push,\n indent,\n deindent,\n newline,\n helper,\n needIndent\n };\n}\nfunction generateLinkedNode(generator, node) {\n const { helper } = generator;\n generator.push(`${helper(\"linked\" /* HelperNameMap.LINKED */)}(`);\n generateNode(generator, node.key);\n if (node.modifier) {\n generator.push(`, `);\n generateNode(generator, node.modifier);\n generator.push(`, _type`);\n }\n else {\n generator.push(`, undefined, _type`);\n }\n generator.push(`)`);\n}\nfunction generateMessageNode(generator, node) {\n const { helper, needIndent } = generator;\n generator.push(`${helper(\"normalize\" /* HelperNameMap.NORMALIZE */)}([`);\n generator.indent(needIndent());\n const length = node.items.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.items[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push('])');\n}\nfunction generatePluralNode(generator, node) {\n const { helper, needIndent } = generator;\n if (node.cases.length > 1) {\n generator.push(`${helper(\"plural\" /* HelperNameMap.PLURAL */)}([`);\n generator.indent(needIndent());\n const length = node.cases.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.cases[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push(`])`);\n }\n}\nfunction generateResource(generator, node) {\n if (node.body) {\n generateNode(generator, node.body);\n }\n else {\n generator.push('null');\n }\n}\nfunction generateNode(generator, node) {\n const { helper } = generator;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */:\n generateResource(generator, node);\n break;\n case 1 /* NodeTypes.Plural */:\n generatePluralNode(generator, node);\n break;\n case 2 /* NodeTypes.Message */:\n generateMessageNode(generator, node);\n break;\n case 6 /* NodeTypes.Linked */:\n generateLinkedNode(generator, node);\n break;\n case 8 /* NodeTypes.LinkedModifier */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 7 /* NodeTypes.LinkedKey */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 5 /* NodeTypes.List */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"list\" /* HelperNameMap.LIST */)}(${node.index}))`, node);\n break;\n case 4 /* NodeTypes.Named */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"named\" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node);\n break;\n case 9 /* NodeTypes.Literal */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 3 /* NodeTypes.Text */:\n generator.push(JSON.stringify(node.value), node);\n break;\n default:\n {\n throw createCompileError(CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE, null, {\n domain: ERROR_DOMAIN,\n args: [node.type]\n });\n }\n }\n}\n// generate code from AST\nconst generate = (ast, options = {} // eslint-disable-line\n) => {\n const mode = isString(options.mode) ? options.mode : 'normal';\n const filename = isString(options.filename)\n ? options.filename\n : 'message.intl';\n const sourceMap = !!options.sourceMap;\n // prettier-ignore\n const breakLineCode = options.breakLineCode != null\n ? options.breakLineCode\n : mode === 'arrow'\n ? ';'\n : '\\n';\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\n const helpers = ast.helpers || [];\n const generator = createCodeGenerator(ast, {\n mode,\n filename,\n sourceMap,\n breakLineCode,\n needIndent\n });\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\n generator.indent(needIndent);\n if (helpers.length > 0) {\n generator.push(`const { ${join(helpers.map(s => `${s}: _${s}`), ', ')} } = ctx`);\n generator.newline();\n }\n generator.push(`return `);\n generateNode(generator, ast);\n generator.deindent(needIndent);\n generator.push(`}`);\n delete ast.helpers;\n const { code, map } = generator.context();\n return {\n ast,\n code,\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\n };\n};\n\nfunction baseCompile(source, options = {}) {\n const assignedOptions = assign({}, options);\n const jit = !!assignedOptions.jit;\n const enalbeMinify = !!assignedOptions.minify;\n const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize;\n // parse source codes\n const parser = createParser(assignedOptions);\n const ast = parser.parse(source);\n if (!jit) {\n // transform ASTs\n transform(ast, assignedOptions);\n // generate javascript codes\n return generate(ast, assignedOptions);\n }\n else {\n // optimize ASTs\n enambeOptimize && optimize(ast);\n // minimize ASTs\n enalbeMinify && minify(ast);\n // In JIT mode, no ast transform, no code generation.\n return { ast, code: '' };\n }\n}\n\nexport { CompileErrorCodes, CompileWarnCodes, ERROR_DOMAIN$2 as ERROR_DOMAIN, LOCATION_STUB, baseCompile, createCompileError, createCompileWarn, createLocation, createParser, createPosition, defaultOnError, detectHtmlTag, errorMessages, warnMessages };\n","/*!\n * core-base v9.13.1\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, isObject, isFunction, isString, isNumber, isPlainObject, assign, join, toDisplayString, isArray, incrementer, format as format$1, isPromise, isBoolean, warn, isRegExp, warnOnce, escapeHtml, inBrowser, mark, measure, isEmptyObject, generateCodeFrame, generateFormatCacheKey, isDate } from '@intlify/shared';\nimport { CompileWarnCodes, CompileErrorCodes, createCompileError, detectHtmlTag, defaultOnError, baseCompile as baseCompile$1 } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\n\n/**\n * This is only called in esm-bundler builds.\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\n }\n if (typeof __INTLIFY_JIT_COMPILATION__ !== 'boolean') {\n getGlobalThis().__INTLIFY_JIT_COMPILATION__ = false;\n }\n if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== 'boolean') {\n getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false;\n }\n}\n\nconst pathStateMachine = [];\npathStateMachine[0 /* States.BEFORE_PATH */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [0 /* States.BEFORE_PATH */],\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]\n};\npathStateMachine[1 /* States.IN_PATH */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */],\n [\".\" /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]\n};\npathStateMachine[2 /* States.BEFORE_IDENT */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [2 /* States.BEFORE_IDENT */],\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"0\" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */]\n};\npathStateMachine[3 /* States.IN_IDENT */] = {\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"0\" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"w\" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */, 1 /* Actions.PUSH */],\n [\".\" /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */, 1 /* Actions.PUSH */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */, 1 /* Actions.PUSH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */, 1 /* Actions.PUSH */]\n};\npathStateMachine[4 /* States.IN_SUB_PATH */] = {\n [\"'\" /* PathCharTypes.SINGLE_QUOTE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */],\n [\"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [\n 4 /* States.IN_SUB_PATH */,\n 2 /* Actions.INC_SUB_PATH_DEPTH */\n ],\n [\"]\" /* PathCharTypes.RIGHT_BRACKET */]: [1 /* States.IN_PATH */, 3 /* Actions.PUSH_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */]\n};\npathStateMachine[5 /* States.IN_SINGLE_QUOTE */] = {\n [\"'\" /* PathCharTypes.SINGLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */]\n};\npathStateMachine[6 /* States.IN_DOUBLE_QUOTE */] = {\n [\"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */]\n};\n/**\n * Check if an expression is a literal value.\n */\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral(exp) {\n return literalValueRE.test(exp);\n}\n/**\n * Strip quotes from a string\n */\nfunction stripQuotes(str) {\n const a = str.charCodeAt(0);\n const b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\n}\n/**\n * Determine the type of a character in a keypath.\n */\nfunction getPathCharType(ch) {\n if (ch === undefined || ch === null) {\n return \"o\" /* PathCharTypes.END_OF_FAIL */;\n }\n const code = ch.charCodeAt(0);\n switch (code) {\n case 0x5b: // [\n case 0x5d: // ]\n case 0x2e: // .\n case 0x22: // \"\n case 0x27: // '\n return ch;\n case 0x5f: // _\n case 0x24: // $\n case 0x2d: // -\n return \"i\" /* PathCharTypes.IDENT */;\n case 0x09: // Tab (HT)\n case 0x0a: // Newline (LF)\n case 0x0d: // Return (CR)\n case 0xa0: // No-break space (NBSP)\n case 0xfeff: // Byte Order Mark (BOM)\n case 0x2028: // Line Separator (LS)\n case 0x2029: // Paragraph Separator (PS)\n return \"w\" /* PathCharTypes.WORKSPACE */;\n }\n return \"i\" /* PathCharTypes.IDENT */;\n}\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\nfunction formatSubPath(path) {\n const trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\n return false;\n }\n return isLiteral(trimmed)\n ? stripQuotes(trimmed)\n : \"*\" /* PathCharTypes.ASTARISK */ + trimmed;\n}\n/**\n * Parse a string path into an array of segments\n */\nfunction parse(path) {\n const keys = [];\n let index = -1;\n let mode = 0 /* States.BEFORE_PATH */;\n let subPathDepth = 0;\n let c;\n let key; // eslint-disable-line\n let newChar;\n let type;\n let transition;\n let action;\n let typeMap;\n const actions = [];\n actions[0 /* Actions.APPEND */] = () => {\n if (key === undefined) {\n key = newChar;\n }\n else {\n key += newChar;\n }\n };\n actions[1 /* Actions.PUSH */] = () => {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n actions[2 /* Actions.INC_SUB_PATH_DEPTH */] = () => {\n actions[0 /* Actions.APPEND */]();\n subPathDepth++;\n };\n actions[3 /* Actions.PUSH_SUB_PATH */] = () => {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = 4 /* States.IN_SUB_PATH */;\n actions[0 /* Actions.APPEND */]();\n }\n else {\n subPathDepth = 0;\n if (key === undefined) {\n return false;\n }\n key = formatSubPath(key);\n if (key === false) {\n return false;\n }\n else {\n actions[1 /* Actions.PUSH */]();\n }\n }\n };\n function maybeUnescapeQuote() {\n const nextChar = path[index + 1];\n if ((mode === 5 /* States.IN_SINGLE_QUOTE */ &&\n nextChar === \"'\" /* PathCharTypes.SINGLE_QUOTE */) ||\n (mode === 6 /* States.IN_DOUBLE_QUOTE */ &&\n nextChar === \"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */)) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[0 /* Actions.APPEND */]();\n return true;\n }\n }\n while (mode !== null) {\n index++;\n c = path[index];\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue;\n }\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap[\"l\" /* PathCharTypes.ELSE */] || 8 /* States.ERROR */;\n // check parse error\n if (transition === 8 /* States.ERROR */) {\n return;\n }\n mode = transition[0];\n if (transition[1] !== undefined) {\n action = actions[transition[1]];\n if (action) {\n newChar = c;\n if (action() === false) {\n return;\n }\n }\n }\n // check parse finish\n if (mode === 7 /* States.AFTER_PATH */) {\n return keys;\n }\n }\n}\n// path token cache\nconst cache = new Map();\n/**\n * key-value message resolver\n *\n * @remarks\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\n *\n * @param obj - A target object to be resolved with path\n * @param path - A {@link Path | path} to resolve the value of message\n *\n * @returns A resolved {@link PathValue | path value}\n *\n * @VueI18nGeneral\n */\nfunction resolveWithKeyValue(obj, path) {\n return isObject(obj) ? obj[path] : null;\n}\n/**\n * message resolver\n *\n * @remarks\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\n *\n * @param obj - A target object to be resolved with path\n * @param path - A {@link Path | path} to resolve the value of message\n *\n * @returns A resolved {@link PathValue | path value}\n *\n * @VueI18nGeneral\n */\nfunction resolveValue(obj, path) {\n // check object\n if (!isObject(obj)) {\n return null;\n }\n // parse path\n let hit = cache.get(path);\n if (!hit) {\n hit = parse(path);\n if (hit) {\n cache.set(path, hit);\n }\n }\n // check hit\n if (!hit) {\n return null;\n }\n // resolve path value\n const len = hit.length;\n let last = obj;\n let i = 0;\n while (i < len) {\n const val = last[hit[i]];\n if (val === undefined) {\n return null;\n }\n if (isFunction(last)) {\n return null;\n }\n last = val;\n i++;\n }\n return last;\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : join(values);\nconst DEFAULT_INTERPOLATE = toDisplayString;\nfunction pluralDefault(choice, choicesLength) {\n choice = Math.abs(choice);\n if (choicesLength === 2) {\n // prettier-ignore\n return choice\n ? choice > 1\n ? 1\n : 0\n : 1;\n }\n return choice ? Math.min(choice, 2) : 0;\n}\nfunction getPluralIndex(options) {\n // prettier-ignore\n const index = isNumber(options.pluralIndex)\n ? options.pluralIndex\n : -1;\n // prettier-ignore\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\n ? isNumber(options.named.count)\n ? options.named.count\n : isNumber(options.named.n)\n ? options.named.n\n : index\n : index;\n}\nfunction normalizeNamed(pluralIndex, props) {\n if (!props.count) {\n props.count = pluralIndex;\n }\n if (!props.n) {\n props.n = pluralIndex;\n }\n}\nfunction createMessageContext(options = {}) {\n const locale = options.locale;\n const pluralIndex = getPluralIndex(options);\n const pluralRule = isObject(options.pluralRules) &&\n isString(locale) &&\n isFunction(options.pluralRules[locale])\n ? options.pluralRules[locale]\n : pluralDefault;\n const orgPluralRule = isObject(options.pluralRules) &&\n isString(locale) &&\n isFunction(options.pluralRules[locale])\n ? pluralDefault\n : undefined;\n const plural = (messages) => {\n return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\n };\n const _list = options.list || [];\n const list = (index) => _list[index];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _named = options.named || {};\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\n const named = (key) => _named[key];\n function message(key) {\n // prettier-ignore\n const msg = isFunction(options.messages)\n ? options.messages(key)\n : isObject(options.messages)\n ? options.messages[key]\n : false;\n return !msg\n ? options.parent\n ? options.parent.message(key) // resolve from parent messages\n : DEFAULT_MESSAGE\n : msg;\n }\n const _modifier = (name) => options.modifiers\n ? options.modifiers[name]\n : DEFAULT_MODIFIER;\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\n ? options.processor.normalize\n : DEFAULT_NORMALIZE;\n const interpolate = isPlainObject(options.processor) &&\n isFunction(options.processor.interpolate)\n ? options.processor.interpolate\n : DEFAULT_INTERPOLATE;\n const type = isPlainObject(options.processor) && isString(options.processor.type)\n ? options.processor.type\n : DEFAULT_MESSAGE_DATA_TYPE;\n const linked = (key, ...args) => {\n const [arg1, arg2] = args;\n let type = 'text';\n let modifier = '';\n if (args.length === 1) {\n if (isObject(arg1)) {\n modifier = arg1.modifier || modifier;\n type = arg1.type || type;\n }\n else if (isString(arg1)) {\n modifier = arg1 || modifier;\n }\n }\n else if (args.length === 2) {\n if (isString(arg1)) {\n modifier = arg1 || modifier;\n }\n if (isString(arg2)) {\n type = arg2 || type;\n }\n }\n const ret = message(key)(ctx);\n const msg = \n // The message in vnode resolved with linked are returned as an array by processor.nomalize\n type === 'vnode' && isArray(ret) && modifier\n ? ret[0]\n : ret;\n return modifier ? _modifier(modifier)(msg, type) : msg;\n };\n const ctx = {\n [\"list\" /* HelperNameMap.LIST */]: list,\n [\"named\" /* HelperNameMap.NAMED */]: named,\n [\"plural\" /* HelperNameMap.PLURAL */]: plural,\n [\"linked\" /* HelperNameMap.LINKED */]: linked,\n [\"message\" /* HelperNameMap.MESSAGE */]: message,\n [\"type\" /* HelperNameMap.TYPE */]: type,\n [\"interpolate\" /* HelperNameMap.INTERPOLATE */]: interpolate,\n [\"normalize\" /* HelperNameMap.NORMALIZE */]: normalize,\n [\"values\" /* HelperNameMap.VALUES */]: assign({}, _list, _named)\n };\n return ctx;\n}\n\nlet devtools = null;\nfunction setDevToolsHook(hook) {\n devtools = hook;\n}\nfunction getDevToolsHook() {\n return devtools;\n}\nfunction initI18nDevTools(i18n, version, meta) {\n // TODO: queue if devtools is undefined\n devtools &&\n devtools.emit(\"i18n:init\" /* IntlifyDevToolsHooks.I18nInit */, {\n timestamp: Date.now(),\n i18n,\n version,\n meta\n });\n}\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(\"function:translate\" /* IntlifyDevToolsHooks.FunctionTranslate */);\nfunction createDevToolsHook(hook) {\n return (payloads) => devtools && devtools.emit(hook, payloads);\n}\n\nconst code$1 = CompileWarnCodes.__EXTEND_POINT__;\nconst inc$1 = incrementer(code$1);\nconst CoreWarnCodes = {\n NOT_FOUND_KEY: code$1, // 2\n FALLBACK_TO_TRANSLATE: inc$1(), // 3\n CANNOT_FORMAT_NUMBER: inc$1(), // 4\n FALLBACK_TO_NUMBER_FORMAT: inc$1(), // 5\n CANNOT_FORMAT_DATE: inc$1(), // 6\n FALLBACK_TO_DATE_FORMAT: inc$1(), // 7\n EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: inc$1(), // 8\n __EXTEND_POINT__: inc$1() // 9\n};\n/** @internal */\nconst warnMessages = {\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER]: `This project is using Custom Message Compiler, which is an experimental feature. It may receive breaking changes or be removed in the future.`\n};\nfunction getWarnMessage(code, ...args) {\n return format$1(warnMessages[code], ...args);\n}\n\nconst code = CompileErrorCodes.__EXTEND_POINT__;\nconst inc = incrementer(code);\nconst CoreErrorCodes = {\n INVALID_ARGUMENT: code, // 17\n INVALID_DATE_ARGUMENT: inc(), // 18\n INVALID_ISO_DATE_ARGUMENT: inc(), // 19\n NOT_SUPPORT_NON_STRING_MESSAGE: inc(), // 20\n NOT_SUPPORT_LOCALE_PROMISE_VALUE: inc(), // 21\n NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: inc(), // 22\n NOT_SUPPORT_LOCALE_TYPE: inc(), // 23\n __EXTEND_POINT__: inc() // 24\n};\nfunction createCoreError(code) {\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\n}\n/** @internal */\nconst errorMessages = {\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\n 'Make sure your Date represents a valid date.',\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string',\n [CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE]: 'Not support non-string message',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE]: 'cannot support promise value',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION]: 'cannot support async function',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE]: 'cannot support locale type'\n};\n\n/** @internal */\nfunction getLocale(context, options) {\n return options.locale != null\n ? resolveLocale(options.locale)\n : resolveLocale(context.locale);\n}\nlet _resolveLocale;\n/** @internal */\nfunction resolveLocale(locale) {\n if (isString(locale)) {\n return locale;\n }\n else {\n if (isFunction(locale)) {\n if (locale.resolvedOnce && _resolveLocale != null) {\n return _resolveLocale;\n }\n else if (locale.constructor.name === 'Function') {\n const resolve = locale();\n if (isPromise(resolve)) {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE);\n }\n return (_resolveLocale = resolve);\n }\n else {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION);\n }\n }\n else {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE);\n }\n }\n}\n/**\n * Fallback with simple implemenation\n *\n * @remarks\n * A fallback locale function implemented with a simple fallback algorithm.\n *\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\n *\n * @param ctx - A {@link CoreContext | context}\n * @param fallback - A {@link FallbackLocale | fallback locale}\n * @param start - A starting {@link Locale | locale}\n *\n * @returns Fallback locales\n *\n * @VueI18nGeneral\n */\nfunction fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\n) {\n // prettier-ignore\n return [...new Set([\n start,\n ...(isArray(fallback)\n ? fallback\n : isObject(fallback)\n ? Object.keys(fallback)\n : isString(fallback)\n ? [fallback]\n : [start])\n ])];\n}\n/**\n * Fallback with locale chain\n *\n * @remarks\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\n *\n * @param ctx - A {@link CoreContext | context}\n * @param fallback - A {@link FallbackLocale | fallback locale}\n * @param start - A starting {@link Locale | locale}\n *\n * @returns Fallback locales\n *\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\n *\n * @VueI18nGeneral\n */\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\n const context = ctx;\n if (!context.__localeChainCache) {\n context.__localeChainCache = new Map();\n }\n let chain = context.__localeChainCache.get(startLocale);\n if (!chain) {\n chain = [];\n // first block defined by start\n let block = [start];\n // while any intervening block found\n while (isArray(block)) {\n block = appendBlockToChain(chain, block, fallback);\n }\n // prettier-ignore\n // last block defined by default\n const defaults = isArray(fallback) || !isPlainObject(fallback)\n ? fallback\n : fallback['default']\n ? fallback['default']\n : null;\n // convert defaults to array\n block = isString(defaults) ? [defaults] : defaults;\n if (isArray(block)) {\n appendBlockToChain(chain, block, false);\n }\n context.__localeChainCache.set(startLocale, chain);\n }\n return chain;\n}\nfunction appendBlockToChain(chain, block, blocks) {\n let follow = true;\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\n const locale = block[i];\n if (isString(locale)) {\n follow = appendLocaleToChain(chain, block[i], blocks);\n }\n }\n return follow;\n}\nfunction appendLocaleToChain(chain, locale, blocks) {\n let follow;\n const tokens = locale.split('-');\n do {\n const target = tokens.join('-');\n follow = appendItemToChain(chain, target, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && follow === true);\n return follow;\n}\nfunction appendItemToChain(chain, target, blocks) {\n let follow = false;\n if (!chain.includes(target)) {\n follow = true;\n if (target) {\n follow = target[target.length - 1] !== '!';\n const locale = target.replace(/!/g, '');\n chain.push(locale);\n if ((isArray(blocks) || isPlainObject(blocks)) &&\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n follow = blocks[locale];\n }\n }\n }\n return follow;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Intlify core-base version\n * @internal\n */\nconst VERSION = '9.13.1';\nconst NOT_REOSLVED = -1;\nconst DEFAULT_LOCALE = 'en-US';\nconst MISSING_RESOLVE_VALUE = '';\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\nfunction getDefaultLinkedModifiers() {\n return {\n upper: (val, type) => {\n // prettier-ignore\n return type === 'text' && isString(val)\n ? val.toUpperCase()\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? val.children.toUpperCase()\n : val;\n },\n lower: (val, type) => {\n // prettier-ignore\n return type === 'text' && isString(val)\n ? val.toLowerCase()\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? val.children.toLowerCase()\n : val;\n },\n capitalize: (val, type) => {\n // prettier-ignore\n return (type === 'text' && isString(val)\n ? capitalize(val)\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\n ? capitalize(val.children)\n : val);\n }\n };\n}\nlet _compiler;\nfunction registerMessageCompiler(compiler) {\n _compiler = compiler;\n}\nlet _resolver;\n/**\n * Register the message resolver\n *\n * @param resolver - A {@link MessageResolver} function\n *\n * @VueI18nGeneral\n */\nfunction registerMessageResolver(resolver) {\n _resolver = resolver;\n}\nlet _fallbacker;\n/**\n * Register the locale fallbacker\n *\n * @param fallbacker - A {@link LocaleFallbacker} function\n *\n * @VueI18nGeneral\n */\nfunction registerLocaleFallbacker(fallbacker) {\n _fallbacker = fallbacker;\n}\n// Additional Meta for Intlify DevTools\nlet _additionalMeta = null;\n/* #__NO_SIDE_EFFECTS__ */\nconst setAdditionalMeta = (meta) => {\n _additionalMeta = meta;\n};\n/* #__NO_SIDE_EFFECTS__ */\nconst getAdditionalMeta = () => _additionalMeta;\nlet _fallbackContext = null;\nconst setFallbackContext = (context) => {\n _fallbackContext = context;\n};\nconst getFallbackContext = () => _fallbackContext;\n// ID for CoreContext\nlet _cid = 0;\nfunction createCoreContext(options = {}) {\n // setup options\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\n const version = isString(options.version) ? options.version : VERSION;\n const locale = isString(options.locale) || isFunction(options.locale)\n ? options.locale\n : DEFAULT_LOCALE;\n const _locale = isFunction(locale) ? DEFAULT_LOCALE : locale;\n const fallbackLocale = isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n isString(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : _locale;\n const messages = isPlainObject(options.messages)\n ? options.messages\n : { [_locale]: {} };\n const datetimeFormats = isPlainObject(options.datetimeFormats)\n ? options.datetimeFormats\n : { [_locale]: {} }\n ;\n const numberFormats = isPlainObject(options.numberFormats)\n ? options.numberFormats\n : { [_locale]: {} }\n ;\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\n const pluralRules = options.pluralRules || {};\n const missing = isFunction(options.missing) ? options.missing : null;\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n ? options.missingWarn\n : true;\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n ? options.fallbackWarn\n : true;\n const fallbackFormat = !!options.fallbackFormat;\n const unresolving = !!options.unresolving;\n const postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : null;\n const processor = isPlainObject(options.processor) ? options.processor : null;\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\n ? options.warnHtmlMessage\n : true;\n const escapeParameter = !!options.escapeParameter;\n const messageCompiler = isFunction(options.messageCompiler)\n ? options.messageCompiler\n : _compiler;\n if ((process.env.NODE_ENV !== 'production') &&\n !false &&\n !false &&\n isFunction(options.messageCompiler)) {\n warnOnce(getWarnMessage(CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER));\n }\n const messageResolver = isFunction(options.messageResolver)\n ? options.messageResolver\n : _resolver || resolveWithKeyValue;\n const localeFallbacker = isFunction(options.localeFallbacker)\n ? options.localeFallbacker\n : _fallbacker || fallbackWithSimple;\n const fallbackContext = isObject(options.fallbackContext)\n ? options.fallbackContext\n : undefined;\n // setup internal options\n const internalOptions = options;\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\n ? internalOptions.__datetimeFormatters\n : new Map()\n ;\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\n ? internalOptions.__numberFormatters\n : new Map()\n ;\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\n _cid++;\n const context = {\n version,\n cid: _cid,\n locale,\n fallbackLocale,\n messages,\n modifiers,\n pluralRules,\n missing,\n missingWarn,\n fallbackWarn,\n fallbackFormat,\n unresolving,\n postTranslation,\n processor,\n warnHtmlMessage,\n escapeParameter,\n messageCompiler,\n messageResolver,\n localeFallbacker,\n fallbackContext,\n onWarn,\n __meta\n };\n {\n context.datetimeFormats = datetimeFormats;\n context.numberFormats = numberFormats;\n context.__datetimeFormatters = __datetimeFormatters;\n context.__numberFormatters = __numberFormatters;\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n context.__v_emitter =\n internalOptions.__v_emitter != null\n ? internalOptions.__v_emitter\n : undefined;\n }\n // NOTE: experimental !!\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n initI18nDevTools(context, version, __meta);\n }\n return context;\n}\n/** @internal */\nfunction isTranslateFallbackWarn(fallback, key) {\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\n}\n/** @internal */\nfunction isTranslateMissingWarn(missing, key) {\n return missing instanceof RegExp ? missing.test(key) : missing;\n}\n/** @internal */\nfunction handleMissing(context, key, locale, missingWarn, type) {\n const { missing, onWarn } = context;\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"missing\" /* VueDevToolsTimelineEvents.MISSING */, {\n locale,\n key,\n type,\n groupId: `${type}:${key}`\n });\n }\n }\n if (missing !== null) {\n const ret = missing(context, locale, key, type);\n return isString(ret) ? ret : key;\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\n }\n return key;\n }\n}\n/** @internal */\nfunction updateFallbackLocale(ctx, locale, fallback) {\n const context = ctx;\n context.__localeChainCache = new Map();\n ctx.localeFallbacker(ctx, fallback, locale);\n}\n/** @internal */\nfunction isAlmostSameLocale(locale, compareLocale) {\n if (locale === compareLocale)\n return false;\n return locale.split('-')[0] === compareLocale.split('-')[0];\n}\n/** @internal */\nfunction isImplicitFallback(targetLocale, locales) {\n const index = locales.indexOf(targetLocale);\n if (index === -1) {\n return false;\n }\n for (let i = index + 1; i < locales.length; i++) {\n if (isAlmostSameLocale(targetLocale, locales[i])) {\n return true;\n }\n }\n return false;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nfunction format(ast) {\n const msg = (ctx) => formatParts(ctx, ast);\n return msg;\n}\nfunction formatParts(ctx, ast) {\n const body = ast.b || ast.body;\n if ((body.t || body.type) === 1 /* NodeTypes.Plural */) {\n const plural = body;\n const cases = plural.c || plural.cases;\n return ctx.plural(cases.reduce((messages, c) => [\n ...messages,\n formatMessageParts(ctx, c)\n ], []));\n }\n else {\n return formatMessageParts(ctx, body);\n }\n}\nfunction formatMessageParts(ctx, node) {\n const _static = node.s || node.static;\n if (_static) {\n return ctx.type === 'text'\n ? _static\n : ctx.normalize([_static]);\n }\n else {\n const messages = (node.i || node.items).reduce((acm, c) => [...acm, formatMessagePart(ctx, c)], []);\n return ctx.normalize(messages);\n }\n}\nfunction formatMessagePart(ctx, node) {\n const type = node.t || node.type;\n switch (type) {\n case 3 /* NodeTypes.Text */: {\n const text = node;\n return (text.v || text.value);\n }\n case 9 /* NodeTypes.Literal */: {\n const literal = node;\n return (literal.v || literal.value);\n }\n case 4 /* NodeTypes.Named */: {\n const named = node;\n return ctx.interpolate(ctx.named(named.k || named.key));\n }\n case 5 /* NodeTypes.List */: {\n const list = node;\n return ctx.interpolate(ctx.list(list.i != null ? list.i : list.index));\n }\n case 6 /* NodeTypes.Linked */: {\n const linked = node;\n const modifier = linked.m || linked.modifier;\n return ctx.linked(formatMessagePart(ctx, linked.k || linked.key), modifier ? formatMessagePart(ctx, modifier) : undefined, ctx.type);\n }\n case 7 /* NodeTypes.LinkedKey */: {\n const linkedKey = node;\n return (linkedKey.v || linkedKey.value);\n }\n case 8 /* NodeTypes.LinkedModifier */: {\n const linkedModifier = node;\n return (linkedModifier.v || linkedModifier.value);\n }\n default:\n throw new Error(`unhandled node type on format message part: ${type}`);\n }\n}\n\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\nfunction checkHtmlMessage(source, warnHtmlMessage) {\n if (warnHtmlMessage && detectHtmlTag(source)) {\n warn(format$1(WARN_MESSAGE, { source }));\n }\n}\nconst defaultOnCacheKey = (message) => message;\nlet compileCache = Object.create(null);\nfunction onCompileWarn(_warn) {\n if (_warn.code === CompileWarnCodes.USE_MODULO_SYNTAX) {\n warn(`The use of named interpolation with modulo syntax is deprecated. ` +\n `It will be removed in v10.\\n` +\n `reference: https://vue-i18n.intlify.dev/guide/essentials/syntax#rails-i18n-format \\n` +\n `(message compiler warning message: ${_warn.message})`);\n }\n}\nfunction clearCompileCache() {\n compileCache = Object.create(null);\n}\nconst isMessageAST = (val) => isObject(val) &&\n (val.t === 0 || val.type === 0) &&\n ('b' in val || 'body' in val);\nfunction baseCompile(message, options = {}) {\n // error detecting on compile\n let detectError = false;\n const onError = options.onError || defaultOnError;\n options.onError = (err) => {\n detectError = true;\n onError(err);\n };\n // compile with mesasge-compiler\n return { ...baseCompile$1(message, options), detectError };\n}\n/* #__NO_SIDE_EFFECTS__ */\nconst compileToFunction = (message, context) => {\n if (!isString(message)) {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE);\n }\n // set onWarn\n if ((process.env.NODE_ENV !== 'production')) {\n context.onWarn = onCompileWarn;\n }\n {\n // check HTML message\n const warnHtmlMessage = isBoolean(context.warnHtmlMessage)\n ? context.warnHtmlMessage\n : true;\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(message, warnHtmlMessage);\n // check caches\n const onCacheKey = context.onCacheKey || defaultOnCacheKey;\n const cacheKey = onCacheKey(message);\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compile\n const { code, detectError } = baseCompile(message, context);\n // evaluate function\n const msg = new Function(`return ${code}`)();\n // if occurred compile error, don't cache\n return !detectError\n ? (compileCache[cacheKey] = msg)\n : msg;\n }\n};\nfunction compile(message, context) {\n // set onWarn\n if ((process.env.NODE_ENV !== 'production')) {\n context.onWarn = onCompileWarn;\n }\n if (((__INTLIFY_JIT_COMPILATION__ && !__INTLIFY_DROP_MESSAGE_COMPILER__)) &&\n isString(message)) {\n // check HTML message\n const warnHtmlMessage = isBoolean(context.warnHtmlMessage)\n ? context.warnHtmlMessage\n : true;\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(message, warnHtmlMessage);\n // check caches\n const onCacheKey = context.onCacheKey || defaultOnCacheKey;\n const cacheKey = onCacheKey(message);\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compile with JIT mode\n const { ast, detectError } = baseCompile(message, {\n ...context,\n location: (process.env.NODE_ENV !== 'production'),\n jit: true\n });\n // compose message function from AST\n const msg = format(ast);\n // if occurred compile error, don't cache\n return !detectError\n ? (compileCache[cacheKey] = msg)\n : msg;\n }\n else {\n if ((process.env.NODE_ENV !== 'production') && !isMessageAST(message)) {\n warn(`the message that is resolve with key '${context.key}' is not supported for jit compilation`);\n return (() => message);\n }\n // AST case (passed from bundler)\n const cacheKey = message.cacheKey;\n if (cacheKey) {\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compose message function from message (AST)\n return (compileCache[cacheKey] =\n format(message));\n }\n else {\n return format(message);\n }\n }\n}\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\nconst isMessageFunction = (val) => isFunction(val);\n// implementation of `translate` function\nfunction translate(context, ...args) {\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\n const [key, options] = parseTranslateArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const escapeParameter = isBoolean(options.escapeParameter)\n ? options.escapeParameter\n : context.escapeParameter;\n const resolvedMessage = !!options.resolvedMessage;\n // prettier-ignore\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\n ? !isBoolean(options.default)\n ? options.default\n : (!messageCompiler ? () => key : key)\n : fallbackFormat // default by `fallbackFormat` option\n ? (!messageCompiler ? () => key : key)\n : '';\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\n const locale = getLocale(context, options);\n // escape params\n escapeParameter && escapeParams(options);\n // resolve message format\n // eslint-disable-next-line prefer-const\n let [formatScope, targetLocale, message] = !resolvedMessage\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\n : [\n key,\n locale,\n messages[locale] || {}\n ];\n // NOTE:\n // Fix to work around `ssrTransfrom` bug in Vite.\n // https://github.com/vitejs/vite/issues/4306\n // To get around this, use temporary variables.\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\n let format = formatScope;\n // if you use default message, set it as message format!\n let cacheBaseKey = key;\n if (!resolvedMessage &&\n !(isString(format) ||\n isMessageAST(format) ||\n isMessageFunction(format))) {\n if (enableDefaultMsg) {\n format = defaultMsgOrKey;\n cacheBaseKey = format;\n }\n }\n // checking message format and target locale\n if (!resolvedMessage &&\n (!(isString(format) ||\n isMessageAST(format) ||\n isMessageFunction(format)) ||\n !isString(targetLocale))) {\n return unresolving ? NOT_REOSLVED : key;\n }\n // TODO: refactor\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\n warn(`The message format compilation is not supported in this build. ` +\n `Because message compiler isn't included. ` +\n `You need to pre-compilation all message format. ` +\n `So translate function return '${key}'.`);\n return key;\n }\n // setup compile error detecting\n let occurred = false;\n const onError = () => {\n occurred = true;\n };\n // compile message format\n const msg = !isMessageFunction(format)\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError)\n : format;\n // if occurred compile error, return the message format\n if (occurred) {\n return format;\n }\n // evaluate message with context\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\n const msgContext = createMessageContext(ctxOptions);\n const messaged = evaluateMessage(context, msg, msgContext);\n // if use post translation option, proceed it with handler\n const ret = postTranslation\n ? postTranslation(messaged, key)\n : messaged;\n // NOTE: experimental !!\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n // prettier-ignore\n const payloads = {\n timestamp: Date.now(),\n key: isString(key)\n ? key\n : isMessageFunction(format)\n ? format.key\n : '',\n locale: targetLocale || (isMessageFunction(format)\n ? format.locale\n : ''),\n format: isString(format)\n ? format\n : isMessageFunction(format)\n ? format.source\n : '',\n message: ret\n };\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\n translateDevTools(payloads);\n }\n return ret;\n}\nfunction escapeParams(options) {\n if (isArray(options.list)) {\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\n }\n else if (isObject(options.named)) {\n Object.keys(options.named).forEach(key => {\n if (isString(options.named[key])) {\n options.named[key] = escapeHtml(options.named[key]);\n }\n });\n }\n}\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\n let message = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'translate';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n !isAlmostSameLocale(locale, targetLocale) &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n message =\n messages[targetLocale] || {};\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-resolve-start';\n endTag = 'intlify-message-resolve-end';\n mark && mark(startTag);\n }\n if ((format = resolveValue(message, key)) === null) {\n // if null, resolve with object key path\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start && format) {\n emitter.emit(\"message-resolve\" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */, {\n type: \"message-resolve\" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */,\n key,\n message: format,\n time: end - start,\n groupId: `${type}:${key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message resolve', startTag, endTag);\n }\n }\n if (isString(format) || isMessageAST(format) || isMessageFunction(format)) {\n break;\n }\n if (!isImplicitFallback(targetLocale, locales)) {\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n key, targetLocale, missingWarn, type);\n if (missingRet !== key) {\n format = missingRet;\n }\n }\n from = to;\n }\n return [format, targetLocale, message];\n}\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError) {\n const { messageCompiler, warnHtmlMessage } = context;\n if (isMessageFunction(format)) {\n const msg = format;\n msg.locale = msg.locale || targetLocale;\n msg.key = msg.key || key;\n return msg;\n }\n if (messageCompiler == null) {\n const msg = (() => format);\n msg.locale = targetLocale;\n msg.key = key;\n return msg;\n }\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-compilation-start';\n endTag = 'intlify-message-compilation-end';\n mark && mark(startTag);\n }\n const msg = messageCompiler(format, getCompileContext(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, onError));\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start) {\n emitter.emit(\"message-compilation\" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */, {\n type: \"message-compilation\" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */,\n message: format,\n time: end - start,\n groupId: `${'translate'}:${key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message compilation', startTag, endTag);\n }\n }\n msg.locale = targetLocale;\n msg.key = key;\n msg.source = format;\n return msg;\n}\nfunction evaluateMessage(context, msg, msgCtx) {\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-evaluation-start';\n endTag = 'intlify-message-evaluation-end';\n mark && mark(startTag);\n }\n const messaged = msg(msgCtx);\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start) {\n emitter.emit(\"message-evaluation\" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */, {\n type: \"message-evaluation\" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */,\n value: messaged,\n time: end - start,\n groupId: `${'translate'}:${msg.key}`\n });\n }\n if (startTag && endTag && mark && measure) {\n mark(endTag);\n measure('intlify message evaluation', startTag, endTag);\n }\n }\n return messaged;\n}\n/** @internal */\nfunction parseTranslateArgs(...args) {\n const [arg1, arg2, arg3] = args;\n const options = {};\n if (!isString(arg1) &&\n !isNumber(arg1) &&\n !isMessageFunction(arg1) &&\n !isMessageAST(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n // prettier-ignore\n const key = isNumber(arg1)\n ? String(arg1)\n : isMessageFunction(arg1)\n ? arg1\n : arg1;\n if (isNumber(arg2)) {\n options.plural = arg2;\n }\n else if (isString(arg2)) {\n options.default = arg2;\n }\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\n options.named = arg2;\n }\n else if (isArray(arg2)) {\n options.list = arg2;\n }\n if (isNumber(arg3)) {\n options.plural = arg3;\n }\n else if (isString(arg3)) {\n options.default = arg3;\n }\n else if (isPlainObject(arg3)) {\n assign(options, arg3);\n }\n return [key, options];\n}\nfunction getCompileContext(context, locale, key, source, warnHtmlMessage, onError) {\n return {\n locale,\n key,\n warnHtmlMessage,\n onError: (err) => {\n onError && onError(err);\n if ((process.env.NODE_ENV !== 'production')) {\n const _source = getSourceForCodeFrame(source);\n const message = `Message compilation error: ${err.message}`;\n const codeFrame = err.location &&\n _source &&\n generateCodeFrame(_source, err.location.start.offset, err.location.end.offset);\n const emitter = context.__v_emitter;\n if (emitter && _source) {\n emitter.emit(\"compile-error\" /* VueDevToolsTimelineEvents.COMPILE_ERROR */, {\n message: _source,\n error: err.message,\n start: err.location && err.location.start.offset,\n end: err.location && err.location.end.offset,\n groupId: `${'translate'}:${key}`\n });\n }\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\n }\n else {\n throw err;\n }\n },\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\n };\n}\nfunction getSourceForCodeFrame(source) {\n if (isString(source)) {\n return source;\n }\n else {\n if (source.loc && source.loc.source) {\n return source.loc.source;\n }\n }\n}\nfunction getMessageContextOptions(context, locale, message, options) {\n const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\n const resolveMessage = (key) => {\n let val = resolveValue(message, key);\n // fallback to root context\n if (val == null && fallbackContext) {\n const [, , message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);\n val = resolveValue(message, key);\n }\n if (isString(val) || isMessageAST(val)) {\n let occurred = false;\n const onError = () => {\n occurred = true;\n };\n const msg = compileMessageFormat(context, key, locale, val, key, onError);\n return !occurred\n ? msg\n : NOOP_MESSAGE_FUNCTION;\n }\n else if (isMessageFunction(val)) {\n return val;\n }\n else {\n // TODO: should be implemented warning message\n return NOOP_MESSAGE_FUNCTION;\n }\n };\n const ctxOptions = {\n locale,\n modifiers,\n pluralRules,\n messages: resolveMessage\n };\n if (context.processor) {\n ctxOptions.processor = context.processor;\n }\n if (options.list) {\n ctxOptions.list = options.list;\n }\n if (options.named) {\n ctxOptions.named = options.named;\n }\n if (isNumber(options.plural)) {\n ctxOptions.pluralIndex = options.plural;\n }\n return ctxOptions;\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\nconst Availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n};\n\n// implementation of `datetime` function\nfunction datetime(context, ...args) {\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\n const { __datetimeFormatters } = context;\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\n return MISSING_RESOLVE_VALUE;\n }\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const part = !!options.part;\n const locale = getLocale(context, options);\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n fallbackLocale, locale);\n if (!isString(key) || key === '') {\n return new Intl.DateTimeFormat(locale, overrides).format(value);\n }\n // resolve format\n let datetimeFormat = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'datetime format';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n datetimeFormat =\n datetimeFormats[targetLocale] || {};\n format = datetimeFormat[key];\n if (isPlainObject(format))\n break;\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n from = to;\n }\n // checking format and target locale\n if (!isPlainObject(format) || !isString(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!isEmptyObject(overrides)) {\n id = `${id}__${JSON.stringify(overrides)}`;\n }\n let formatter = __datetimeFormatters.get(id);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\n __datetimeFormatters.set(id, formatter);\n }\n return !part ? formatter.format(value) : formatter.formatToParts(value);\n}\n/** @internal */\nconst DATETIME_FORMAT_OPTIONS_KEYS = [\n 'localeMatcher',\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName',\n 'formatMatcher',\n 'hour12',\n 'timeZone',\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n 'dayPeriod',\n 'numberingSystem',\n 'hourCycle',\n 'fractionalSecondDigits'\n];\n/** @internal */\nfunction parseDateTimeArgs(...args) {\n const [arg1, arg2, arg3, arg4] = args;\n const options = {};\n let overrides = {};\n let value;\n if (isString(arg1)) {\n // Only allow ISO strings - other date formats are often supported,\n // but may cause different results in different browsers.\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\n if (!matches) {\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n }\n // Some browsers can not parse the iso datetime separated by space,\n // this is a compromise solution by replace the 'T'/' ' with 'T'\n const dateTime = matches[3]\n ? matches[3].trim().startsWith('T')\n ? `${matches[1].trim()}${matches[3].trim()}`\n : `${matches[1].trim()}T${matches[3].trim()}`\n : matches[1].trim();\n value = new Date(dateTime);\n try {\n // This will fail if the date is not valid\n value.toISOString();\n }\n catch (e) {\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n }\n }\n else if (isDate(arg1)) {\n if (isNaN(arg1.getTime())) {\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\n }\n value = arg1;\n }\n else if (isNumber(arg1)) {\n value = arg1;\n }\n else {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n if (isString(arg2)) {\n options.key = arg2;\n }\n else if (isPlainObject(arg2)) {\n Object.keys(arg2).forEach(key => {\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\n overrides[key] = arg2[key];\n }\n else {\n options[key] = arg2[key];\n }\n });\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isPlainObject(arg3)) {\n overrides = arg3;\n }\n if (isPlainObject(arg4)) {\n overrides = arg4;\n }\n return [options.key || '', value, options, overrides];\n}\n/** @internal */\nfunction clearDateTimeFormat(ctx, locale, format) {\n const context = ctx;\n for (const key in format) {\n const id = `${locale}__${key}`;\n if (!context.__datetimeFormatters.has(id)) {\n continue;\n }\n context.__datetimeFormatters.delete(id);\n }\n}\n\n// implementation of `number` function\nfunction number(context, ...args) {\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\n const { __numberFormatters } = context;\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\n return MISSING_RESOLVE_VALUE;\n }\n const [key, value, options, overrides] = parseNumberArgs(...args);\n const missingWarn = isBoolean(options.missingWarn)\n ? options.missingWarn\n : context.missingWarn;\n const fallbackWarn = isBoolean(options.fallbackWarn)\n ? options.fallbackWarn\n : context.fallbackWarn;\n const part = !!options.part;\n const locale = getLocale(context, options);\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\n fallbackLocale, locale);\n if (!isString(key) || key === '') {\n return new Intl.NumberFormat(locale, overrides).format(value);\n }\n // resolve format\n let numberFormat = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'number format';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ((process.env.NODE_ENV !== 'production') &&\n locale !== targetLocale &&\n isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n numberFormat =\n numberFormats[targetLocale] || {};\n format = numberFormat[key];\n if (isPlainObject(format))\n break;\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n from = to;\n }\n // checking format and target locale\n if (!isPlainObject(format) || !isString(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!isEmptyObject(overrides)) {\n id = `${id}__${JSON.stringify(overrides)}`;\n }\n let formatter = __numberFormatters.get(id);\n if (!formatter) {\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\n __numberFormatters.set(id, formatter);\n }\n return !part ? formatter.format(value) : formatter.formatToParts(value);\n}\n/** @internal */\nconst NUMBER_FORMAT_OPTIONS_KEYS = [\n 'localeMatcher',\n 'style',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits',\n 'compactDisplay',\n 'notation',\n 'signDisplay',\n 'unit',\n 'unitDisplay',\n 'roundingMode',\n 'roundingPriority',\n 'roundingIncrement',\n 'trailingZeroDisplay'\n];\n/** @internal */\nfunction parseNumberArgs(...args) {\n const [arg1, arg2, arg3, arg4] = args;\n const options = {};\n let overrides = {};\n if (!isNumber(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n const value = arg1;\n if (isString(arg2)) {\n options.key = arg2;\n }\n else if (isPlainObject(arg2)) {\n Object.keys(arg2).forEach(key => {\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\n overrides[key] = arg2[key];\n }\n else {\n options[key] = arg2[key];\n }\n });\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isPlainObject(arg3)) {\n overrides = arg3;\n }\n if (isPlainObject(arg4)) {\n overrides = arg4;\n }\n return [options.key || '', value, options, overrides];\n}\n/** @internal */\nfunction clearNumberFormat(ctx, locale, format) {\n const context = ctx;\n for (const key in format) {\n const id = `${locale}__${key}`;\n if (!context.__numberFormatters.has(id)) {\n continue;\n }\n context.__numberFormatters.delete(id);\n }\n}\n\n{\n initFeatureFlags();\n}\n\nexport { CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compile, compileToFunction, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getLocale, getWarnMessage, handleMissing, initI18nDevTools, isAlmostSameLocale, isImplicitFallback, isMessageAST, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveLocale, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","/*!\n * vue-i18n v9.13.1\n * (c) 2024 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, incrementer, format, makeSymbol, isPlainObject, isArray, deepCopy, isString, hasOwn, isObject, warn, warnOnce, isBoolean, isRegExp, isFunction, inBrowser, assign, isNumber, createEmitter, isEmptyObject } from '@intlify/shared';\nimport { CoreWarnCodes, CoreErrorCodes, createCompileError, DEFAULT_LOCALE, updateFallbackLocale, setFallbackContext, createCoreContext, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, getFallbackContext, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, isMessageAST, isMessageFunction, fallbackWithLocaleChain, NUMBER_FORMAT_OPTIONS_KEYS, DATETIME_FORMAT_OPTIONS_KEYS, registerMessageCompiler, compile, compileToFunction, registerMessageResolver, resolveValue, registerLocaleFallbacker, setDevToolsHook } from '@intlify/core-base';\nimport { createVNode, Text, computed, watch, getCurrentInstance, ref, shallowRef, Fragment, defineComponent, h, effectScope, inject, onMounted, onUnmounted, onBeforeMount, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\n * Vue I18n Version\n *\n * @remarks\n * Semver format. Same format as the package.json `version` field.\n *\n * @VueI18nGeneral\n */\nconst VERSION = '9.13.1';\n/**\n * This is only called in esm-bundler builds.\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\n }\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\n }\n if (typeof __INTLIFY_JIT_COMPILATION__ !== 'boolean') {\n getGlobalThis().__INTLIFY_JIT_COMPILATION__ = false;\n }\n if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== 'boolean') {\n getGlobalThis().__INTLIFY_DROP_MESSAGE_COMPILER__ = false;\n }\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\n }\n}\n\nconst code$1 = CoreWarnCodes.__EXTEND_POINT__;\nconst inc$1 = incrementer(code$1);\nconst I18nWarnCodes = {\n FALLBACK_TO_ROOT: code$1, // 9\n NOT_SUPPORTED_PRESERVE: inc$1(), // 10\n NOT_SUPPORTED_FORMATTER: inc$1(), // 11\n NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(), // 12\n NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(), // 13\n COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(), // 14\n NOT_FOUND_PARENT_SCOPE: inc$1(), // 15\n IGNORE_OBJ_FLATTEN: inc$1(), // 16\n NOTICE_DROP_ALLOW_COMPOSITION: inc$1(), // 17\n NOTICE_DROP_TRANSLATE_EXIST_COMPATIBLE_FLAG: inc$1() // 18\n};\nconst warnMessages = {\n [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`,\n [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`,\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`,\n [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`,\n [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`,\n [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`,\n [I18nWarnCodes.IGNORE_OBJ_FLATTEN]: `Ignore object flatten: '{key}' key has an string value`,\n [I18nWarnCodes.NOTICE_DROP_ALLOW_COMPOSITION]: `'allowComposition' option will be dropped in the next major version. For more information, please see 👉 https://tinyurl.com/2p97mcze`,\n [I18nWarnCodes.NOTICE_DROP_TRANSLATE_EXIST_COMPATIBLE_FLAG]: `'translateExistCompatible' option will be dropped in the next major version.`\n};\nfunction getWarnMessage(code, ...args) {\n return format(warnMessages[code], ...args);\n}\n\nconst code = CoreErrorCodes.__EXTEND_POINT__;\nconst inc = incrementer(code);\nconst I18nErrorCodes = {\n // composer module errors\n UNEXPECTED_RETURN_TYPE: code, // 24\n // legacy module errors\n INVALID_ARGUMENT: inc(), // 25\n // i18n module errors\n MUST_BE_CALL_SETUP_TOP: inc(), // 26\n NOT_INSTALLED: inc(), // 27\n NOT_AVAILABLE_IN_LEGACY_MODE: inc(), // 28\n // directive module errors\n REQUIRED_VALUE: inc(), // 29\n INVALID_VALUE: inc(), // 30\n // vue-devtools errors\n CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(), // 31\n NOT_INSTALLED_WITH_PROVIDE: inc(), // 32\n // unexpected error\n UNEXPECTED_ERROR: inc(), // 33\n // not compatible legacy vue-i18n constructor\n NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(), // 34\n // bridge support vue 2.x only\n BRIDGE_SUPPORT_VUE_2_ONLY: inc(), // 35\n // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n``\n MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(), // 36\n // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly\n NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(), // 37\n // for enhancement\n __EXTEND_POINT__: inc() // 38\n};\nfunction createI18nError(code, ...args) {\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\n}\nconst errorMessages = {\n [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer',\n [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\n [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\n [I18nErrorCodes.NOT_INSTALLED]: 'Need to install with `app.use` function',\n [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\n [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: 'Not available in legacy mode',\n [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,\n [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,\n [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,\n [I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE]: 'Need to install with `provide` function',\n [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.',\n [I18nErrorCodes.BRIDGE_SUPPORT_VUE_2_ONLY]: 'vue-i18n-bridge support Vue 2.x only',\n [I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION]: 'Must define ‘i18n’ option or custom block in Composition API with using local scope in Legacy API mode',\n [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: 'Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly'\n};\n\nconst TranslateVNodeSymbol = \n/* #__PURE__*/ makeSymbol('__translateVNode');\nconst DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts');\nconst NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts');\nconst EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter');\nconst DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter');\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\nmakeSymbol('__intlifyMeta');\nconst InejctWithOptionSymbol = \n/* #__PURE__*/ makeSymbol('__injectWithOption');\nconst DisposeSymbol = /* #__PURE__*/ makeSymbol('__dispose');\nconst __VUE_I18N_BRIDGE__ = '__VUE_I18N_BRIDGE__';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Transform flat json in obj to normal json in obj\n */\nfunction handleFlatJson(obj) {\n // check obj\n if (!isObject(obj)) {\n return obj;\n }\n for (const key in obj) {\n // check key\n if (!hasOwn(obj, key)) {\n continue;\n }\n // handle for normal json\n if (!key.includes('.')) {\n // recursive process value if value is also a object\n if (isObject(obj[key])) {\n handleFlatJson(obj[key]);\n }\n }\n // handle for flat json, transform to normal json\n else {\n // go to the last object\n const subKeys = key.split('.');\n const lastIndex = subKeys.length - 1;\n let currentObj = obj;\n let hasStringValue = false;\n for (let i = 0; i < lastIndex; i++) {\n if (!(subKeys[i] in currentObj)) {\n currentObj[subKeys[i]] = {};\n }\n if (!isObject(currentObj[subKeys[i]])) {\n (process.env.NODE_ENV !== 'production') &&\n warn(getWarnMessage(I18nWarnCodes.IGNORE_OBJ_FLATTEN, {\n key: subKeys[i]\n }));\n hasStringValue = true;\n break;\n }\n currentObj = currentObj[subKeys[i]];\n }\n // update last object value, delete old property\n if (!hasStringValue) {\n currentObj[subKeys[lastIndex]] = obj[key];\n delete obj[key];\n }\n // recursive process value if value is also a object\n if (isObject(currentObj[subKeys[lastIndex]])) {\n handleFlatJson(currentObj[subKeys[lastIndex]]);\n }\n }\n }\n return obj;\n}\nfunction getLocaleMessages(locale, options) {\n const { messages, __i18n, messageResolver, flatJson } = options;\n // prettier-ignore\n const ret = (isPlainObject(messages)\n ? messages\n : isArray(__i18n)\n ? {}\n : { [locale]: {} });\n // merge locale messages of i18n custom block\n if (isArray(__i18n)) {\n __i18n.forEach(custom => {\n if ('locale' in custom && 'resource' in custom) {\n const { locale, resource } = custom;\n if (locale) {\n ret[locale] = ret[locale] || {};\n deepCopy(resource, ret[locale]);\n }\n else {\n deepCopy(resource, ret);\n }\n }\n else {\n isString(custom) && deepCopy(JSON.parse(custom), ret);\n }\n });\n }\n // handle messages for flat json\n if (messageResolver == null && flatJson) {\n for (const key in ret) {\n if (hasOwn(ret, key)) {\n handleFlatJson(ret[key]);\n }\n }\n }\n return ret;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getComponentOptions(instance) {\n return instance.type ;\n}\nfunction adjustI18nResources(gl, options, componentOptions // eslint-disable-line @typescript-eslint/no-explicit-any\n) {\n let messages = isObject(options.messages) ? options.messages : {};\n if ('__i18nGlobal' in componentOptions) {\n messages = getLocaleMessages(gl.locale.value, {\n messages,\n __i18n: componentOptions.__i18nGlobal\n });\n }\n // merge locale messages\n const locales = Object.keys(messages);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeLocaleMessage(locale, messages[locale]);\n });\n }\n {\n // merge datetime formats\n if (isObject(options.datetimeFormats)) {\n const locales = Object.keys(options.datetimeFormats);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\n });\n }\n }\n // merge number formats\n if (isObject(options.numberFormats)) {\n const locales = Object.keys(options.numberFormats);\n if (locales.length) {\n locales.forEach(locale => {\n gl.mergeNumberFormat(locale, options.numberFormats[locale]);\n });\n }\n }\n }\n}\nfunction createTextNode(key) {\n return createVNode(Text, null, key, 0)\n ;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// extend VNode interface\nconst DEVTOOLS_META = '__INTLIFY_META__';\nconst NOOP_RETURN_ARRAY = () => [];\nconst NOOP_RETURN_FALSE = () => false;\nlet composerID = 0;\nfunction defineCoreMissingHandler(missing) {\n return ((ctx, locale, key, type) => {\n return missing(locale, key, getCurrentInstance() || undefined, type);\n });\n}\n// for Intlify DevTools\n/* #__NO_SIDE_EFFECTS__ */\nconst getMetaInfo = () => {\n const instance = getCurrentInstance();\n let meta = null; // eslint-disable-line @typescript-eslint/no-explicit-any\n return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\n ? { [DEVTOOLS_META]: meta } // eslint-disable-line @typescript-eslint/no-explicit-any\n : null;\n};\n/**\n * Create composer interface factory\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction createComposer(options = {}, VueI18nLegacy) {\n const { __root, __injectWithOption } = options;\n const _isGlobal = __root === undefined;\n const flatJson = options.flatJson;\n const _ref = inBrowser ? ref : shallowRef;\n const translateExistCompatible = !!options.translateExistCompatible;\n if ((process.env.NODE_ENV !== 'production')) {\n if (translateExistCompatible && !false) {\n warnOnce(getWarnMessage(I18nWarnCodes.NOTICE_DROP_TRANSLATE_EXIST_COMPATIBLE_FLAG));\n }\n }\n let _inheritLocale = isBoolean(options.inheritLocale)\n ? options.inheritLocale\n : true;\n const _locale = _ref(\n // prettier-ignore\n __root && _inheritLocale\n ? __root.locale.value\n : isString(options.locale)\n ? options.locale\n : DEFAULT_LOCALE);\n const _fallbackLocale = _ref(\n // prettier-ignore\n __root && _inheritLocale\n ? __root.fallbackLocale.value\n : isString(options.fallbackLocale) ||\n isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : _locale.value);\n const _messages = _ref(getLocaleMessages(_locale.value, options));\n // prettier-ignore\n const _datetimeFormats = _ref(isPlainObject(options.datetimeFormats)\n ? options.datetimeFormats\n : { [_locale.value]: {} })\n ;\n // prettier-ignore\n const _numberFormats = _ref(isPlainObject(options.numberFormats)\n ? options.numberFormats\n : { [_locale.value]: {} })\n ;\n // warning suppress options\n // prettier-ignore\n let _missingWarn = __root\n ? __root.missingWarn\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n ? options.missingWarn\n : true;\n // prettier-ignore\n let _fallbackWarn = __root\n ? __root.fallbackWarn\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n ? options.fallbackWarn\n : true;\n // prettier-ignore\n let _fallbackRoot = __root\n ? __root.fallbackRoot\n : isBoolean(options.fallbackRoot)\n ? options.fallbackRoot\n : true;\n // configure fall back to root\n let _fallbackFormat = !!options.fallbackFormat;\n // runtime missing\n let _missing = isFunction(options.missing) ? options.missing : null;\n let _runtimeMissing = isFunction(options.missing)\n ? defineCoreMissingHandler(options.missing)\n : null;\n // postTranslation handler\n let _postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : null;\n // prettier-ignore\n let _warnHtmlMessage = __root\n ? __root.warnHtmlMessage\n : isBoolean(options.warnHtmlMessage)\n ? options.warnHtmlMessage\n : true;\n let _escapeParameter = !!options.escapeParameter;\n // custom linked modifiers\n // prettier-ignore\n const _modifiers = __root\n ? __root.modifiers\n : isPlainObject(options.modifiers)\n ? options.modifiers\n : {};\n // pluralRules\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\n // runtime context\n // eslint-disable-next-line prefer-const\n let _context;\n const getCoreContext = () => {\n _isGlobal && setFallbackContext(null);\n const ctxOptions = {\n version: VERSION,\n locale: _locale.value,\n fallbackLocale: _fallbackLocale.value,\n messages: _messages.value,\n modifiers: _modifiers,\n pluralRules: _pluralRules,\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\n missingWarn: _missingWarn,\n fallbackWarn: _fallbackWarn,\n fallbackFormat: _fallbackFormat,\n unresolving: true,\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\n warnHtmlMessage: _warnHtmlMessage,\n escapeParameter: _escapeParameter,\n messageResolver: options.messageResolver,\n messageCompiler: options.messageCompiler,\n __meta: { framework: 'vue' }\n };\n {\n ctxOptions.datetimeFormats = _datetimeFormats.value;\n ctxOptions.numberFormats = _numberFormats.value;\n ctxOptions.__datetimeFormatters = isPlainObject(_context)\n ? _context.__datetimeFormatters\n : undefined;\n ctxOptions.__numberFormatters = isPlainObject(_context)\n ? _context.__numberFormatters\n : undefined;\n }\n if ((process.env.NODE_ENV !== 'production')) {\n ctxOptions.__v_emitter = isPlainObject(_context)\n ? _context.__v_emitter\n : undefined;\n }\n const ctx = createCoreContext(ctxOptions);\n _isGlobal && setFallbackContext(ctx);\n return ctx;\n };\n _context = getCoreContext();\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n // track reactivity\n function trackReactivityValues() {\n return [\n _locale.value,\n _fallbackLocale.value,\n _messages.value,\n _datetimeFormats.value,\n _numberFormats.value\n ]\n ;\n }\n // locale\n const locale = computed({\n get: () => _locale.value,\n set: val => {\n _locale.value = val;\n _context.locale = _locale.value;\n }\n });\n // fallbackLocale\n const fallbackLocale = computed({\n get: () => _fallbackLocale.value,\n set: val => {\n _fallbackLocale.value = val;\n _context.fallbackLocale = _fallbackLocale.value;\n updateFallbackLocale(_context, _locale.value, val);\n }\n });\n // messages\n const messages = computed(() => _messages.value);\n // datetimeFormats\n const datetimeFormats = /* #__PURE__*/ computed(() => _datetimeFormats.value);\n // numberFormats\n const numberFormats = /* #__PURE__*/ computed(() => _numberFormats.value);\n // getPostTranslationHandler\n function getPostTranslationHandler() {\n return isFunction(_postTranslation) ? _postTranslation : null;\n }\n // setPostTranslationHandler\n function setPostTranslationHandler(handler) {\n _postTranslation = handler;\n _context.postTranslation = handler;\n }\n // getMissingHandler\n function getMissingHandler() {\n return _missing;\n }\n // setMissingHandler\n function setMissingHandler(handler) {\n if (handler !== null) {\n _runtimeMissing = defineCoreMissingHandler(handler);\n }\n _missing = handler;\n _context.missing = _runtimeMissing;\n }\n function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n return type !== 'translate' || !arg.resolvedMessage;\n }\n const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {\n trackReactivityValues(); // track reactive dependency\n // NOTE: experimental !!\n let ret;\n try {\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n setAdditionalMeta(getMetaInfo());\n }\n if (!_isGlobal) {\n _context.fallbackContext = __root\n ? getFallbackContext()\n : undefined;\n }\n ret = fn(_context);\n }\n finally {\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n setAdditionalMeta(null);\n }\n if (!_isGlobal) {\n _context.fallbackContext = undefined;\n }\n }\n if ((warnType !== 'translate exists' && // for not `te` (e.g `t`)\n isNumber(ret) &&\n ret === NOT_REOSLVED) ||\n (warnType === 'translate exists' && !ret) // for `te`\n ) {\n const [key, arg2] = argumentParser();\n if ((process.env.NODE_ENV !== 'production') &&\n __root &&\n isString(key) &&\n isResolvedTranslateMessage(warnType, arg2)) {\n if (_fallbackRoot &&\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\n isTranslateMissingWarn(_missingWarn, key))) {\n warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {\n key,\n type: warnType\n }));\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n const { __v_emitter: emitter } = _context;\n if (emitter && _fallbackRoot) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type: warnType,\n key,\n to: 'global',\n groupId: `${warnType}:${key}`\n });\n }\n }\n }\n return __root && _fallbackRoot\n ? fallbackSuccess(__root)\n : fallbackFail(key);\n }\n else if (successCondition(ret)) {\n return ret;\n }\n else {\n /* istanbul ignore next */\n throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);\n }\n };\n // t\n function t(...args) {\n return wrapWithDeps(context => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), 'translate', root => Reflect.apply(root.t, root, [...args]), key => key, val => isString(val));\n }\n // rt\n function rt(...args) {\n const [arg1, arg2, arg3] = args;\n if (arg3 && !isObject(arg3)) {\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\n }\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\n }\n // d\n function d(...args) {\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\n }\n // n\n function n(...args) {\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\n }\n // for custom processor\n function normalize(values) {\n return values.map(val => isString(val) || isNumber(val) || isBoolean(val)\n ? createTextNode(String(val))\n : val);\n }\n const interpolate = (val) => val;\n const processor = {\n normalize,\n interpolate,\n type: 'vnode'\n };\n // translateVNode, using for `i18n-t` component\n function translateVNode(...args) {\n return wrapWithDeps(context => {\n let ret;\n const _context = context;\n try {\n _context.processor = processor;\n ret = Reflect.apply(translate, null, [_context, ...args]);\n }\n finally {\n _context.processor = null;\n }\n return ret;\n }, () => parseTranslateArgs(...args), 'translate', \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n root => root[TranslateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val));\n }\n // numberParts, using for `i18n-n` component\n function numberParts(...args) {\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n root => root[NumberPartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString(val) || isArray(val));\n }\n // datetimeParts, using for `i18n-d` component\n function datetimeParts(...args) {\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n root => root[DatetimePartsSymbol](...args), NOOP_RETURN_ARRAY, val => isString(val) || isArray(val));\n }\n function setPluralRules(rules) {\n _pluralRules = rules;\n _context.pluralRules = _pluralRules;\n }\n // te\n function te(key, locale) {\n return wrapWithDeps(() => {\n if (!key) {\n return false;\n }\n const targetLocale = isString(locale) ? locale : _locale.value;\n const message = getLocaleMessage(targetLocale);\n const resolved = _context.messageResolver(message, key);\n return !translateExistCompatible\n ? isMessageAST(resolved) ||\n isMessageFunction(resolved) ||\n isString(resolved)\n : resolved != null;\n }, () => [key], 'translate exists', root => {\n return Reflect.apply(root.te, root, [key, locale]);\n }, NOOP_RETURN_FALSE, val => isBoolean(val));\n }\n function resolveMessages(key) {\n let messages = null;\n const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);\n for (let i = 0; i < locales.length; i++) {\n const targetLocaleMessages = _messages.value[locales[i]] || {};\n const messageValue = _context.messageResolver(targetLocaleMessages, key);\n if (messageValue != null) {\n messages = messageValue;\n break;\n }\n }\n return messages;\n }\n // tm\n function tm(key) {\n const messages = resolveMessages(key);\n // prettier-ignore\n return messages != null\n ? messages\n : __root\n ? __root.tm(key) || {}\n : {};\n }\n // getLocaleMessage\n function getLocaleMessage(locale) {\n return (_messages.value[locale] || {});\n }\n // setLocaleMessage\n function setLocaleMessage(locale, message) {\n if (flatJson) {\n const _message = { [locale]: message };\n for (const key in _message) {\n if (hasOwn(_message, key)) {\n handleFlatJson(_message[key]);\n }\n }\n message = _message[locale];\n }\n _messages.value[locale] = message;\n _context.messages = _messages.value;\n }\n // mergeLocaleMessage\n function mergeLocaleMessage(locale, message) {\n _messages.value[locale] = _messages.value[locale] || {};\n const _message = { [locale]: message };\n if (flatJson) {\n for (const key in _message) {\n if (hasOwn(_message, key)) {\n handleFlatJson(_message[key]);\n }\n }\n }\n message = _message[locale];\n deepCopy(message, _messages.value[locale]);\n _context.messages = _messages.value;\n }\n // getDateTimeFormat\n function getDateTimeFormat(locale) {\n return _datetimeFormats.value[locale] || {};\n }\n // setDateTimeFormat\n function setDateTimeFormat(locale, format) {\n _datetimeFormats.value[locale] = format;\n _context.datetimeFormats = _datetimeFormats.value;\n clearDateTimeFormat(_context, locale, format);\n }\n // mergeDateTimeFormat\n function mergeDateTimeFormat(locale, format) {\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\n _context.datetimeFormats = _datetimeFormats.value;\n clearDateTimeFormat(_context, locale, format);\n }\n // getNumberFormat\n function getNumberFormat(locale) {\n return _numberFormats.value[locale] || {};\n }\n // setNumberFormat\n function setNumberFormat(locale, format) {\n _numberFormats.value[locale] = format;\n _context.numberFormats = _numberFormats.value;\n clearNumberFormat(_context, locale, format);\n }\n // mergeNumberFormat\n function mergeNumberFormat(locale, format) {\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\n _context.numberFormats = _numberFormats.value;\n clearNumberFormat(_context, locale, format);\n }\n // for debug\n composerID++;\n // watch root locale & fallbackLocale\n if (__root && inBrowser) {\n watch(__root.locale, (val) => {\n if (_inheritLocale) {\n _locale.value = val;\n _context.locale = val;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n });\n watch(__root.fallbackLocale, (val) => {\n if (_inheritLocale) {\n _fallbackLocale.value = val;\n _context.fallbackLocale = val;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n });\n }\n // define basic composition API!\n const composer = {\n id: composerID,\n locale,\n fallbackLocale,\n get inheritLocale() {\n return _inheritLocale;\n },\n set inheritLocale(val) {\n _inheritLocale = val;\n if (val && __root) {\n _locale.value = __root.locale.value;\n _fallbackLocale.value = __root.fallbackLocale.value;\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\n }\n },\n get availableLocales() {\n return Object.keys(_messages.value).sort();\n },\n messages,\n get modifiers() {\n return _modifiers;\n },\n get pluralRules() {\n return _pluralRules || {};\n },\n get isGlobal() {\n return _isGlobal;\n },\n get missingWarn() {\n return _missingWarn;\n },\n set missingWarn(val) {\n _missingWarn = val;\n _context.missingWarn = _missingWarn;\n },\n get fallbackWarn() {\n return _fallbackWarn;\n },\n set fallbackWarn(val) {\n _fallbackWarn = val;\n _context.fallbackWarn = _fallbackWarn;\n },\n get fallbackRoot() {\n return _fallbackRoot;\n },\n set fallbackRoot(val) {\n _fallbackRoot = val;\n },\n get fallbackFormat() {\n return _fallbackFormat;\n },\n set fallbackFormat(val) {\n _fallbackFormat = val;\n _context.fallbackFormat = _fallbackFormat;\n },\n get warnHtmlMessage() {\n return _warnHtmlMessage;\n },\n set warnHtmlMessage(val) {\n _warnHtmlMessage = val;\n _context.warnHtmlMessage = val;\n },\n get escapeParameter() {\n return _escapeParameter;\n },\n set escapeParameter(val) {\n _escapeParameter = val;\n _context.escapeParameter = val;\n },\n t,\n getLocaleMessage,\n setLocaleMessage,\n mergeLocaleMessage,\n getPostTranslationHandler,\n setPostTranslationHandler,\n getMissingHandler,\n setMissingHandler,\n [SetPluralRulesSymbol]: setPluralRules\n };\n {\n composer.datetimeFormats = datetimeFormats;\n composer.numberFormats = numberFormats;\n composer.rt = rt;\n composer.te = te;\n composer.tm = tm;\n composer.d = d;\n composer.n = n;\n composer.getDateTimeFormat = getDateTimeFormat;\n composer.setDateTimeFormat = setDateTimeFormat;\n composer.mergeDateTimeFormat = mergeDateTimeFormat;\n composer.getNumberFormat = getNumberFormat;\n composer.setNumberFormat = setNumberFormat;\n composer.mergeNumberFormat = mergeNumberFormat;\n composer[InejctWithOptionSymbol] = __injectWithOption;\n composer[TranslateVNodeSymbol] = translateVNode;\n composer[DatetimePartsSymbol] = datetimeParts;\n composer[NumberPartsSymbol] = numberParts;\n }\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n composer[EnableEmitter] = (emitter) => {\n _context.__v_emitter = emitter;\n };\n composer[DisableEmitter] = () => {\n _context.__v_emitter = undefined;\n };\n }\n return composer;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Convert to I18n Composer Options from VueI18n Options\n *\n * @internal\n */\nfunction convertComposerOptions(options) {\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\n const fallbackLocale = isString(options.fallbackLocale) ||\n isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : locale;\n const missing = isFunction(options.missing) ? options.missing : undefined;\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\n isRegExp(options.silentTranslationWarn)\n ? !options.silentTranslationWarn\n : true;\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\n isRegExp(options.silentFallbackWarn)\n ? !options.silentFallbackWarn\n : true;\n const fallbackRoot = isBoolean(options.fallbackRoot)\n ? options.fallbackRoot\n : true;\n const fallbackFormat = !!options.formatFallbackMessages;\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\n const pluralizationRules = options.pluralizationRules;\n const postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : undefined;\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\n ? options.warnHtmlInMessage !== 'off'\n : true;\n const escapeParameter = !!options.escapeParameterHtml;\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\n if ((process.env.NODE_ENV !== 'production') && options.formatter) {\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\n }\n if ((process.env.NODE_ENV !== 'production') && options.preserveDirectiveContent) {\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\n }\n let messages = options.messages;\n if (isPlainObject(options.sharedMessages)) {\n const sharedMessages = options.sharedMessages;\n const locales = Object.keys(sharedMessages);\n messages = locales.reduce((messages, locale) => {\n const message = messages[locale] || (messages[locale] = {});\n assign(message, sharedMessages[locale]);\n return messages;\n }, (messages || {}));\n }\n const { __i18n, __root, __injectWithOption } = options;\n const datetimeFormats = options.datetimeFormats;\n const numberFormats = options.numberFormats;\n const flatJson = options.flatJson;\n const translateExistCompatible = options\n .translateExistCompatible;\n return {\n locale,\n fallbackLocale,\n messages,\n flatJson,\n datetimeFormats,\n numberFormats,\n missing,\n missingWarn,\n fallbackWarn,\n fallbackRoot,\n fallbackFormat,\n modifiers,\n pluralRules: pluralizationRules,\n postTranslation,\n warnHtmlMessage,\n escapeParameter,\n messageResolver: options.messageResolver,\n inheritLocale,\n translateExistCompatible,\n __i18n,\n __root,\n __injectWithOption\n };\n}\n/**\n * create VueI18n interface factory\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction createVueI18n(options = {}, VueI18nLegacy) {\n {\n const composer = createComposer(convertComposerOptions(options));\n const { __extender } = options;\n // defines VueI18n\n const vueI18n = {\n // id\n id: composer.id,\n // locale\n get locale() {\n return composer.locale.value;\n },\n set locale(val) {\n composer.locale.value = val;\n },\n // fallbackLocale\n get fallbackLocale() {\n return composer.fallbackLocale.value;\n },\n set fallbackLocale(val) {\n composer.fallbackLocale.value = val;\n },\n // messages\n get messages() {\n return composer.messages.value;\n },\n // datetimeFormats\n get datetimeFormats() {\n return composer.datetimeFormats.value;\n },\n // numberFormats\n get numberFormats() {\n return composer.numberFormats.value;\n },\n // availableLocales\n get availableLocales() {\n return composer.availableLocales;\n },\n // formatter\n get formatter() {\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\n // dummy\n return {\n interpolate() {\n return [];\n }\n };\n },\n set formatter(val) {\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\n },\n // missing\n get missing() {\n return composer.getMissingHandler();\n },\n set missing(handler) {\n composer.setMissingHandler(handler);\n },\n // silentTranslationWarn\n get silentTranslationWarn() {\n return isBoolean(composer.missingWarn)\n ? !composer.missingWarn\n : composer.missingWarn;\n },\n set silentTranslationWarn(val) {\n composer.missingWarn = isBoolean(val) ? !val : val;\n },\n // silentFallbackWarn\n get silentFallbackWarn() {\n return isBoolean(composer.fallbackWarn)\n ? !composer.fallbackWarn\n : composer.fallbackWarn;\n },\n set silentFallbackWarn(val) {\n composer.fallbackWarn = isBoolean(val) ? !val : val;\n },\n // modifiers\n get modifiers() {\n return composer.modifiers;\n },\n // formatFallbackMessages\n get formatFallbackMessages() {\n return composer.fallbackFormat;\n },\n set formatFallbackMessages(val) {\n composer.fallbackFormat = val;\n },\n // postTranslation\n get postTranslation() {\n return composer.getPostTranslationHandler();\n },\n set postTranslation(handler) {\n composer.setPostTranslationHandler(handler);\n },\n // sync\n get sync() {\n return composer.inheritLocale;\n },\n set sync(val) {\n composer.inheritLocale = val;\n },\n // warnInHtmlMessage\n get warnHtmlInMessage() {\n return composer.warnHtmlMessage ? 'warn' : 'off';\n },\n set warnHtmlInMessage(val) {\n composer.warnHtmlMessage = val !== 'off';\n },\n // escapeParameterHtml\n get escapeParameterHtml() {\n return composer.escapeParameter;\n },\n set escapeParameterHtml(val) {\n composer.escapeParameter = val;\n },\n // preserveDirectiveContent\n get preserveDirectiveContent() {\n (process.env.NODE_ENV !== 'production') &&\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\n return true;\n },\n set preserveDirectiveContent(val) {\n (process.env.NODE_ENV !== 'production') &&\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\n },\n // pluralizationRules\n get pluralizationRules() {\n return composer.pluralRules || {};\n },\n // for internal\n __composer: composer,\n // t\n t(...args) {\n const [arg1, arg2, arg3] = args;\n const options = {};\n let list = null;\n let named = null;\n if (!isString(arg1)) {\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\n }\n const key = arg1;\n if (isString(arg2)) {\n options.locale = arg2;\n }\n else if (isArray(arg2)) {\n list = arg2;\n }\n else if (isPlainObject(arg2)) {\n named = arg2;\n }\n if (isArray(arg3)) {\n list = arg3;\n }\n else if (isPlainObject(arg3)) {\n named = arg3;\n }\n // return composer.t(key, (list || named || {}) as any, options)\n return Reflect.apply(composer.t, composer, [\n key,\n (list || named || {}),\n options\n ]);\n },\n rt(...args) {\n return Reflect.apply(composer.rt, composer, [...args]);\n },\n // tc\n tc(...args) {\n const [arg1, arg2, arg3] = args;\n const options = { plural: 1 };\n let list = null;\n let named = null;\n if (!isString(arg1)) {\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\n }\n const key = arg1;\n if (isString(arg2)) {\n options.locale = arg2;\n }\n else if (isNumber(arg2)) {\n options.plural = arg2;\n }\n else if (isArray(arg2)) {\n list = arg2;\n }\n else if (isPlainObject(arg2)) {\n named = arg2;\n }\n if (isString(arg3)) {\n options.locale = arg3;\n }\n else if (isArray(arg3)) {\n list = arg3;\n }\n else if (isPlainObject(arg3)) {\n named = arg3;\n }\n // return composer.t(key, (list || named || {}) as any, options)\n return Reflect.apply(composer.t, composer, [\n key,\n (list || named || {}),\n options\n ]);\n },\n // te\n te(key, locale) {\n return composer.te(key, locale);\n },\n // tm\n tm(key) {\n return composer.tm(key);\n },\n // getLocaleMessage\n getLocaleMessage(locale) {\n return composer.getLocaleMessage(locale);\n },\n // setLocaleMessage\n setLocaleMessage(locale, message) {\n composer.setLocaleMessage(locale, message);\n },\n // mergeLocaleMessage\n mergeLocaleMessage(locale, message) {\n composer.mergeLocaleMessage(locale, message);\n },\n // d\n d(...args) {\n return Reflect.apply(composer.d, composer, [...args]);\n },\n // getDateTimeFormat\n getDateTimeFormat(locale) {\n return composer.getDateTimeFormat(locale);\n },\n // setDateTimeFormat\n setDateTimeFormat(locale, format) {\n composer.setDateTimeFormat(locale, format);\n },\n // mergeDateTimeFormat\n mergeDateTimeFormat(locale, format) {\n composer.mergeDateTimeFormat(locale, format);\n },\n // n\n n(...args) {\n return Reflect.apply(composer.n, composer, [...args]);\n },\n // getNumberFormat\n getNumberFormat(locale) {\n return composer.getNumberFormat(locale);\n },\n // setNumberFormat\n setNumberFormat(locale, format) {\n composer.setNumberFormat(locale, format);\n },\n // mergeNumberFormat\n mergeNumberFormat(locale, format) {\n composer.mergeNumberFormat(locale, format);\n },\n // getChoiceIndex\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getChoiceIndex(choice, choicesLength) {\n (process.env.NODE_ENV !== 'production') &&\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX));\n return -1;\n }\n };\n vueI18n.__extender = __extender;\n // for vue-devtools timeline event\n if ((process.env.NODE_ENV !== 'production')) {\n vueI18n.__enableEmitter = (emitter) => {\n const __composer = composer;\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\n };\n vueI18n.__disableEmitter = () => {\n const __composer = composer;\n __composer[DisableEmitter] && __composer[DisableEmitter]();\n };\n }\n return vueI18n;\n }\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst baseFormatProps = {\n tag: {\n type: [String, Object]\n },\n locale: {\n type: String\n },\n scope: {\n type: String,\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\n validator: (val /* ComponentI18nScope */) => val === 'parent' || val === 'global',\n default: 'parent' /* ComponentI18nScope */\n },\n i18n: {\n type: Object\n }\n};\n\nfunction getInterpolateArg(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n{ slots }, // SetupContext,\nkeys) {\n if (keys.length === 1 && keys[0] === 'default') {\n // default slot with list\n const ret = slots.default ? slots.default() : [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return ret.reduce((slot, current) => {\n return [\n ...slot,\n // prettier-ignore\n ...(current.type === Fragment ? current.children : [current]\n )\n ];\n }, []);\n }\n else {\n // named slots\n return keys.reduce((arg, key) => {\n const slot = slots[key];\n if (slot) {\n arg[key] = slot();\n }\n return arg;\n }, {});\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getFragmentableTag(tag) {\n return Fragment ;\n}\n\nconst TranslationImpl = /*#__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-t',\n props: assign({\n keypath: {\n type: String,\n required: true\n },\n plural: {\n type: [Number, String],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n validator: (val) => isNumber(val) || !isNaN(val)\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const { slots, attrs } = context;\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\n const i18n = props.i18n ||\n useI18n({\n useScope: props.scope,\n __useComponent: true\n });\n return () => {\n const keys = Object.keys(slots).filter(key => key !== '_');\n const options = {};\n if (props.locale) {\n options.locale = props.locale;\n }\n if (props.plural !== undefined) {\n options.plural = isString(props.plural) ? +props.plural : props.plural;\n }\n const arg = getInterpolateArg(context, keys);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const children = i18n[TranslateVNodeSymbol](props.keypath, arg, options);\n const assignedAttrs = assign({}, attrs);\n const tag = isString(props.tag) || isObject(props.tag)\n ? props.tag\n : getFragmentableTag();\n return h(tag, assignedAttrs, children);\n };\n }\n});\n/**\n * export the public type for h/tsx inference\n * also to avoid inline import() in generated d.ts files\n */\n/**\n * Translation Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [TranslationProps](component#translationprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\n *\n * @example\n * ```html\n *

\n * ```\n * ```js\n * import { createApp } from 'vue'\n * import { createI18n } from 'vue-i18n'\n *\n * const messages = {\n * en: {\n * tos: 'Term of Service',\n * term: 'I accept xxx {0}.'\n * },\n * ja: {\n * tos: '利用規約',\n * term: '私は xxx の{0}に同意します。'\n * }\n * }\n *\n * const i18n = createI18n({\n * locale: 'en',\n * messages\n * })\n *\n * const app = createApp({\n * data: {\n * url: '/term'\n * }\n * }).use(i18n).mount('#app')\n * ```\n *\n * @VueI18nComponent\n */\nconst Translation = TranslationImpl;\nconst I18nT = Translation;\n\nfunction isVNode(target) {\n return isArray(target) && !isString(target[0]);\n}\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\n const { slots, attrs } = context;\n return () => {\n const options = { part: true };\n let overrides = {};\n if (props.locale) {\n options.locale = props.locale;\n }\n if (isString(props.format)) {\n options.key = props.format;\n }\n else if (isObject(props.format)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isString(props.format.key)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options.key = props.format.key;\n }\n // Filter out number format options only\n overrides = Object.keys(props.format).reduce((options, prop) => {\n return slotKeys.includes(prop)\n ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\n : options;\n }, {});\n }\n const parts = partFormatter(...[props.value, options, overrides]);\n let children = [options.key];\n if (isArray(parts)) {\n children = parts.map((part, index) => {\n const slot = slots[part.type];\n const node = slot\n ? slot({ [part.type]: part.value, index, parts })\n : [part.value];\n if (isVNode(node)) {\n node[0].key = `${part.type}-${index}`;\n }\n return node;\n });\n }\n else if (isString(parts)) {\n children = [parts];\n }\n const assignedAttrs = assign({}, attrs);\n const tag = isString(props.tag) || isObject(props.tag)\n ? props.tag\n : getFragmentableTag();\n return h(tag, assignedAttrs, children);\n };\n}\n\nconst NumberFormatImpl = /*#__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-n',\n props: assign({\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const i18n = props.i18n ||\n useI18n({\n useScope: props.scope,\n __useComponent: true\n });\n return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n i18n[NumberPartsSymbol](...args));\n }\n});\n/**\n * export the public type for h/tsx inference\n * also to avoid inline import() in generated d.ts files\n */\n/**\n * Number Format Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [FormattableProps](component#formattableprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\n *\n * @VueI18nDanger\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\n *\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\n *\n * @VueI18nComponent\n */\nconst NumberFormat = NumberFormatImpl;\nconst I18nN = NumberFormat;\n\nconst DatetimeFormatImpl = /* #__PURE__*/ defineComponent({\n /* eslint-disable */\n name: 'i18n-d',\n props: assign({\n value: {\n type: [Number, Date],\n required: true\n },\n format: {\n type: [String, Object]\n }\n }, baseFormatProps),\n /* eslint-enable */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setup(props, context) {\n const i18n = props.i18n ||\n useI18n({\n useScope: props.scope,\n __useComponent: true\n });\n return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n i18n[DatetimePartsSymbol](...args));\n }\n});\n/**\n * Datetime Format Component\n *\n * @remarks\n * See the following items for property about details\n *\n * @VueI18nSee [FormattableProps](component#formattableprops)\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\n *\n * @VueI18nDanger\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\n *\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\n *\n * @VueI18nComponent\n */\nconst DatetimeFormat = DatetimeFormatImpl;\nconst I18nD = DatetimeFormat;\n\nfunction getComposer$2(i18n, instance) {\n const i18nInternal = i18n;\n if (i18n.mode === 'composition') {\n return (i18nInternal.__getInstance(instance) || i18n.global);\n }\n else {\n const vueI18n = i18nInternal.__getInstance(instance);\n return vueI18n != null\n ? vueI18n.__composer\n : i18n.global.__composer;\n }\n}\nfunction vTDirective(i18n) {\n const _process = (binding) => {\n const { instance, modifiers, value } = binding;\n /* istanbul ignore if */\n if (!instance || !instance.$) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const composer = getComposer$2(i18n, instance.$);\n if ((process.env.NODE_ENV !== 'production') && modifiers.preserve) {\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE));\n }\n const parsedValue = parseValue(value);\n return [\n Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),\n composer\n ];\n };\n const register = (el, binding) => {\n const [textContent, composer] = _process(binding);\n if (inBrowser && i18n.global === composer) {\n // global scope only\n el.__i18nWatcher = watch(composer.locale, () => {\n binding.instance && binding.instance.$forceUpdate();\n });\n }\n el.__composer = composer;\n el.textContent = textContent;\n };\n const unregister = (el) => {\n if (inBrowser && el.__i18nWatcher) {\n el.__i18nWatcher();\n el.__i18nWatcher = undefined;\n delete el.__i18nWatcher;\n }\n if (el.__composer) {\n el.__composer = undefined;\n delete el.__composer;\n }\n };\n const update = (el, { value }) => {\n if (el.__composer) {\n const composer = el.__composer;\n const parsedValue = parseValue(value);\n el.textContent = Reflect.apply(composer.t, composer, [\n ...makeParams(parsedValue)\n ]);\n }\n };\n const getSSRProps = (binding) => {\n const [textContent] = _process(binding);\n return { textContent };\n };\n return {\n created: register,\n unmounted: unregister,\n beforeUpdate: update,\n getSSRProps\n };\n}\nfunction parseValue(value) {\n if (isString(value)) {\n return { path: value };\n }\n else if (isPlainObject(value)) {\n if (!('path' in value)) {\n throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');\n }\n return value;\n }\n else {\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\n }\n}\nfunction makeParams(value) {\n const { path, locale, args, choice, plural } = value;\n const options = {};\n const named = args || {};\n if (isString(locale)) {\n options.locale = locale;\n }\n if (isNumber(choice)) {\n options.plural = choice;\n }\n if (isNumber(plural)) {\n options.plural = plural;\n }\n return [path, named, options];\n}\n\nfunction apply(app, i18n, ...options) {\n const pluginOptions = isPlainObject(options[0])\n ? options[0]\n : {};\n const useI18nComponentName = !!pluginOptions.useI18nComponentName;\n const globalInstall = isBoolean(pluginOptions.globalInstall)\n ? pluginOptions.globalInstall\n : true;\n if ((process.env.NODE_ENV !== 'production') && globalInstall && useI18nComponentName) {\n warn(getWarnMessage(I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE, {\n name: Translation.name\n }));\n }\n if (globalInstall) {\n [!useI18nComponentName ? Translation.name : 'i18n', 'I18nT'].forEach(name => app.component(name, Translation));\n [NumberFormat.name, 'I18nN'].forEach(name => app.component(name, NumberFormat));\n [DatetimeFormat.name, 'I18nD'].forEach(name => app.component(name, DatetimeFormat));\n }\n // install directive\n {\n app.directive('t', vTDirective(i18n));\n }\n}\n\nconst VueDevToolsLabels = {\n [\"vue-devtools-plugin-vue-i18n\" /* VueDevToolsIDs.PLUGIN */]: 'Vue I18n devtools',\n [\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */]: 'I18n Resources',\n [\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */]: 'Vue I18n'\n};\nconst VueDevToolsPlaceholders = {\n [\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */]: 'Search for scopes ...'\n};\nconst VueDevToolsTimelineColors = {\n [\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */]: 0xffcd19\n};\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\nlet devtoolsApi;\nasync function enableDevTools(app, i18n) {\n return new Promise((resolve, reject) => {\n try {\n setupDevtoolsPlugin({\n id: \"vue-devtools-plugin-vue-i18n\" /* VueDevToolsIDs.PLUGIN */,\n label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* VueDevToolsIDs.PLUGIN */],\n packageName: 'vue-i18n',\n homepage: 'https://vue-i18n.intlify.dev',\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\n app: app // eslint-disable-line @typescript-eslint/no-explicit-any\n }, api => {\n devtoolsApi = api;\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\n updateComponentTreeTags(componentInstance, treeNode, i18n);\n });\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\n if (componentInstance.vnode.el &&\n componentInstance.vnode.el.__VUE_I18N__ &&\n instanceData) {\n if (i18n.mode === 'legacy') {\n // ignore global scope on legacy mode\n if (componentInstance.vnode.el.__VUE_I18N__ !==\n i18n.global.__composer) {\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\n }\n }\n else {\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\n }\n }\n });\n api.addInspector({\n id: \"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */,\n label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */],\n icon: 'language',\n treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */]\n });\n api.on.getInspectorTree(payload => {\n if (payload.app === app &&\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */) {\n registerScope(payload, i18n);\n }\n });\n const roots = new Map();\n api.on.getInspectorState(async (payload) => {\n if (payload.app === app &&\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */) {\n api.unhighlightElement();\n inspectScope(payload, i18n);\n if (payload.nodeId === 'global') {\n if (!roots.has(payload.app)) {\n const [root] = await api.getComponentInstances(payload.app);\n roots.set(payload.app, root);\n }\n api.highlightElement(roots.get(payload.app));\n }\n else {\n const instance = getComponentInstance(payload.nodeId, i18n);\n instance && api.highlightElement(instance);\n }\n }\n });\n api.on.editInspectorState(payload => {\n if (payload.app === app &&\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* VueDevToolsIDs.CUSTOM_INSPECTOR */) {\n editScope(payload, i18n);\n }\n });\n api.addTimelineLayer({\n id: \"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */,\n label: VueDevToolsLabels[\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */],\n color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */]\n });\n resolve(true);\n });\n }\n catch (e) {\n console.error(e);\n reject(false);\n }\n });\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getI18nScopeLable(instance) {\n return (instance.type.name ||\n instance.type.displayName ||\n instance.type.__file ||\n 'Anonymous');\n}\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\ntreeNode, i18n) {\n // prettier-ignore\n const global = i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n if (instance && instance.vnode.el && instance.vnode.el.__VUE_I18N__) {\n // add custom tags local scope only\n if (instance.vnode.el.__VUE_I18N__ !== global) {\n const tag = {\n label: `i18n (${getI18nScopeLable(instance)} Scope)`,\n textColor: 0x000000,\n backgroundColor: 0xffcd19\n };\n treeNode.tags.push(tag);\n }\n }\n}\nfunction inspectComposer(instanceData, composer) {\n const type = VUE_I18N_COMPONENT_TYPES;\n instanceData.state.push({\n type,\n key: 'locale',\n editable: true,\n value: composer.locale.value\n });\n instanceData.state.push({\n type,\n key: 'availableLocales',\n editable: false,\n value: composer.availableLocales\n });\n instanceData.state.push({\n type,\n key: 'fallbackLocale',\n editable: true,\n value: composer.fallbackLocale.value\n });\n instanceData.state.push({\n type,\n key: 'inheritLocale',\n editable: true,\n value: composer.inheritLocale\n });\n instanceData.state.push({\n type,\n key: 'messages',\n editable: false,\n value: getLocaleMessageValue(composer.messages.value)\n });\n {\n instanceData.state.push({\n type,\n key: 'datetimeFormats',\n editable: false,\n value: composer.datetimeFormats.value\n });\n instanceData.state.push({\n type,\n key: 'numberFormats',\n editable: false,\n value: composer.numberFormats.value\n });\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getLocaleMessageValue(messages) {\n const value = {};\n Object.keys(messages).forEach((key) => {\n const v = messages[key];\n if (isFunction(v) && 'source' in v) {\n value[key] = getMessageFunctionDetails(v);\n }\n else if (isMessageAST(v) && v.loc && v.loc.source) {\n value[key] = v.loc.source;\n }\n else if (isObject(v)) {\n value[key] = getLocaleMessageValue(v);\n }\n else {\n value[key] = v;\n }\n });\n return value;\n}\nconst ESC = {\n '<': '<',\n '>': '>',\n '\"': '"',\n '&': '&'\n};\nfunction escape(s) {\n return s.replace(/[<>\"&]/g, escapeChar);\n}\nfunction escapeChar(a) {\n return ESC[a] || a;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getMessageFunctionDetails(func) {\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\n return {\n _custom: {\n type: 'function',\n display: `ƒ ${argString}`\n }\n };\n}\nfunction registerScope(payload, i18n) {\n payload.rootNodes.push({\n id: 'global',\n label: 'Global Scope'\n });\n // prettier-ignore\n const global = i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n for (const [keyInstance, instance] of i18n.__instances) {\n // prettier-ignore\n const composer = i18n.mode === 'composition'\n ? instance\n : instance.__composer;\n if (global === composer) {\n continue;\n }\n payload.rootNodes.push({\n id: composer.id.toString(),\n label: `${getI18nScopeLable(keyInstance)} Scope`\n });\n }\n}\nfunction getComponentInstance(nodeId, i18n) {\n let instance = null;\n if (nodeId !== 'global') {\n for (const [component, composer] of i18n.__instances.entries()) {\n if (composer.id.toString() === nodeId) {\n instance = component;\n break;\n }\n }\n }\n return instance;\n}\nfunction getComposer$1(nodeId, i18n) {\n if (nodeId === 'global') {\n return i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer;\n }\n else {\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\n if (instance) {\n return i18n.mode === 'composition'\n ? instance\n : instance.__composer;\n }\n else {\n return null;\n }\n }\n}\nfunction inspectScope(payload, i18n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) {\n const composer = getComposer$1(payload.nodeId, i18n);\n if (composer) {\n // TODO:\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n payload.state = makeScopeInspectState(composer);\n }\n return null;\n}\nfunction makeScopeInspectState(composer) {\n const state = {};\n const localeType = 'Locale related info';\n const localeStates = [\n {\n type: localeType,\n key: 'locale',\n editable: true,\n value: composer.locale.value\n },\n {\n type: localeType,\n key: 'fallbackLocale',\n editable: true,\n value: composer.fallbackLocale.value\n },\n {\n type: localeType,\n key: 'availableLocales',\n editable: false,\n value: composer.availableLocales\n },\n {\n type: localeType,\n key: 'inheritLocale',\n editable: true,\n value: composer.inheritLocale\n }\n ];\n state[localeType] = localeStates;\n const localeMessagesType = 'Locale messages info';\n const localeMessagesStates = [\n {\n type: localeMessagesType,\n key: 'messages',\n editable: false,\n value: getLocaleMessageValue(composer.messages.value)\n }\n ];\n state[localeMessagesType] = localeMessagesStates;\n {\n const datetimeFormatsType = 'Datetime formats info';\n const datetimeFormatsStates = [\n {\n type: datetimeFormatsType,\n key: 'datetimeFormats',\n editable: false,\n value: composer.datetimeFormats.value\n }\n ];\n state[datetimeFormatsType] = datetimeFormatsStates;\n const numberFormatsType = 'Datetime formats info';\n const numberFormatsStates = [\n {\n type: numberFormatsType,\n key: 'numberFormats',\n editable: false,\n value: composer.numberFormats.value\n }\n ];\n state[numberFormatsType] = numberFormatsStates;\n }\n return state;\n}\nfunction addTimelineEvent(event, payload) {\n if (devtoolsApi) {\n let groupId;\n if (payload && 'groupId' in payload) {\n groupId = payload.groupId;\n delete payload.groupId;\n }\n devtoolsApi.addTimelineEvent({\n layerId: \"vue-i18n-timeline\" /* VueDevToolsIDs.TIMELINE */,\n event: {\n title: event,\n groupId,\n time: Date.now(),\n meta: {},\n data: payload || {},\n logType: event === \"compile-error\" /* VueDevToolsTimelineEvents.COMPILE_ERROR */\n ? 'error'\n : event === \"fallback\" /* VueDevToolsTimelineEvents.FALBACK */ ||\n event === \"missing\" /* VueDevToolsTimelineEvents.MISSING */\n ? 'warning'\n : 'default'\n }\n });\n }\n}\nfunction editScope(payload, i18n) {\n const composer = getComposer$1(payload.nodeId, i18n);\n if (composer) {\n const [field] = payload.path;\n if (field === 'locale' && isString(payload.state.value)) {\n composer.locale.value = payload.state.value;\n }\n else if (field === 'fallbackLocale' &&\n (isString(payload.state.value) ||\n isArray(payload.state.value) ||\n isObject(payload.state.value))) {\n composer.fallbackLocale.value = payload.state.value;\n }\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\n composer.inheritLocale = payload.state.value;\n }\n }\n}\n\n/**\n * Supports compatibility for legacy vue-i18n APIs\n * This mixin is used when we use vue-i18n@v9.x or later\n */\nfunction defineMixin(vuei18n, composer, i18n) {\n return {\n beforeCreate() {\n const instance = getCurrentInstance();\n /* istanbul ignore if */\n if (!instance) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const options = this.$options;\n if (options.i18n) {\n const optionsI18n = options.i18n;\n if (options.__i18n) {\n optionsI18n.__i18n = options.__i18n;\n }\n optionsI18n.__root = composer;\n if (this === this.$root) {\n // merge option and gttach global\n this.$i18n = mergeToGlobal(vuei18n, optionsI18n);\n }\n else {\n optionsI18n.__injectWithOption = true;\n optionsI18n.__extender = i18n.__vueI18nExtend;\n // atttach local VueI18n instance\n this.$i18n = createVueI18n(optionsI18n);\n // extend VueI18n instance\n const _vueI18n = this.$i18n;\n if (_vueI18n.__extender) {\n _vueI18n.__disposer = _vueI18n.__extender(this.$i18n);\n }\n }\n }\n else if (options.__i18n) {\n if (this === this.$root) {\n // merge option and gttach global\n this.$i18n = mergeToGlobal(vuei18n, options);\n }\n else {\n // atttach local VueI18n instance\n this.$i18n = createVueI18n({\n __i18n: options.__i18n,\n __injectWithOption: true,\n __extender: i18n.__vueI18nExtend,\n __root: composer\n });\n // extend VueI18n instance\n const _vueI18n = this.$i18n;\n if (_vueI18n.__extender) {\n _vueI18n.__disposer = _vueI18n.__extender(this.$i18n);\n }\n }\n }\n else {\n // attach global VueI18n instance\n this.$i18n = vuei18n;\n }\n if (options.__i18nGlobal) {\n adjustI18nResources(composer, options, options);\n }\n // defines vue-i18n legacy APIs\n this.$t = (...args) => this.$i18n.t(...args);\n this.$rt = (...args) => this.$i18n.rt(...args);\n this.$tc = (...args) => this.$i18n.tc(...args);\n this.$te = (key, locale) => this.$i18n.te(key, locale);\n this.$d = (...args) => this.$i18n.d(...args);\n this.$n = (...args) => this.$i18n.n(...args);\n this.$tm = (key) => this.$i18n.tm(key);\n i18n.__setInstance(instance, this.$i18n);\n },\n mounted() {\n /* istanbul ignore if */\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n this.$el &&\n this.$i18n) {\n const _vueI18n = this.$i18n;\n this.$el.__VUE_I18N__ = _vueI18n.__composer;\n const emitter = (this.__v_emitter =\n createEmitter());\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\n emitter.on('*', addTimelineEvent);\n }\n },\n unmounted() {\n const instance = getCurrentInstance();\n /* istanbul ignore if */\n if (!instance) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const _vueI18n = this.$i18n;\n /* istanbul ignore if */\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n this.$el &&\n this.$el.__VUE_I18N__) {\n if (this.__v_emitter) {\n this.__v_emitter.off('*', addTimelineEvent);\n delete this.__v_emitter;\n }\n if (this.$i18n) {\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\n delete this.$el.__VUE_I18N__;\n }\n }\n delete this.$t;\n delete this.$rt;\n delete this.$tc;\n delete this.$te;\n delete this.$d;\n delete this.$n;\n delete this.$tm;\n if (_vueI18n.__disposer) {\n _vueI18n.__disposer();\n delete _vueI18n.__disposer;\n delete _vueI18n.__extender;\n }\n i18n.__deleteInstance(instance);\n delete this.$i18n;\n }\n };\n}\nfunction mergeToGlobal(g, options) {\n g.locale = options.locale || g.locale;\n g.fallbackLocale = options.fallbackLocale || g.fallbackLocale;\n g.missing = options.missing || g.missing;\n g.silentTranslationWarn =\n options.silentTranslationWarn || g.silentFallbackWarn;\n g.silentFallbackWarn = options.silentFallbackWarn || g.silentFallbackWarn;\n g.formatFallbackMessages =\n options.formatFallbackMessages || g.formatFallbackMessages;\n g.postTranslation = options.postTranslation || g.postTranslation;\n g.warnHtmlInMessage = options.warnHtmlInMessage || g.warnHtmlInMessage;\n g.escapeParameterHtml = options.escapeParameterHtml || g.escapeParameterHtml;\n g.sync = options.sync || g.sync;\n g.__composer[SetPluralRulesSymbol](options.pluralizationRules || g.pluralizationRules);\n const messages = getLocaleMessages(g.locale, {\n messages: options.messages,\n __i18n: options.__i18n\n });\n Object.keys(messages).forEach(locale => g.mergeLocaleMessage(locale, messages[locale]));\n if (options.datetimeFormats) {\n Object.keys(options.datetimeFormats).forEach(locale => g.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\n }\n if (options.numberFormats) {\n Object.keys(options.numberFormats).forEach(locale => g.mergeNumberFormat(locale, options.numberFormats[locale]));\n }\n return g;\n}\n\n/**\n * Injection key for {@link useI18n}\n *\n * @remarks\n * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components.\n * Specify the i18n instance created by {@link createI18n} together with `provide` function.\n *\n * @VueI18nGeneral\n */\nconst I18nInjectionKey = \n/* #__PURE__*/ makeSymbol('global-vue-i18n');\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nfunction createI18n(options = {}, VueI18nLegacy) {\n // prettier-ignore\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\n ? options.legacy\n : __VUE_I18N_LEGACY_API__;\n // prettier-ignore\n const __globalInjection = isBoolean(options.globalInjection)\n ? options.globalInjection\n : true;\n // prettier-ignore\n const __allowComposition = __VUE_I18N_LEGACY_API__ && __legacyMode\n ? !!options.allowComposition\n : true;\n const __instances = new Map();\n const [globalScope, __global] = createGlobal(options, __legacyMode);\n const symbol = /* #__PURE__*/ makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\n if ((process.env.NODE_ENV !== 'production')) {\n if (__legacyMode && __allowComposition && !false) {\n warn(getWarnMessage(I18nWarnCodes.NOTICE_DROP_ALLOW_COMPOSITION));\n }\n }\n function __getInstance(component) {\n return __instances.get(component) || null;\n }\n function __setInstance(component, instance) {\n __instances.set(component, instance);\n }\n function __deleteInstance(component) {\n __instances.delete(component);\n }\n {\n const i18n = {\n // mode\n get mode() {\n return __VUE_I18N_LEGACY_API__ && __legacyMode\n ? 'legacy'\n : 'composition';\n },\n // allowComposition\n get allowComposition() {\n return __allowComposition;\n },\n // install plugin\n async install(app, ...options) {\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false) {\n app.__VUE_I18N__ = i18n;\n }\n // setup global provider\n app.__VUE_I18N_SYMBOL__ = symbol;\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\n // set composer & vuei18n extend hook options from plugin options\n if (isPlainObject(options[0])) {\n const opts = options[0];\n i18n.__composerExtend =\n opts.__composerExtend;\n i18n.__vueI18nExtend =\n opts.__vueI18nExtend;\n }\n // global method and properties injection for Composition API\n let globalReleaseHandler = null;\n if (!__legacyMode && __globalInjection) {\n globalReleaseHandler = injectGlobalFields(app, i18n.global);\n }\n // install built-in components and directive\n if (__VUE_I18N_FULL_INSTALL__) {\n apply(app, i18n, ...options);\n }\n // setup mixin for Legacy API\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\n app.mixin(defineMixin(__global, __global.__composer, i18n));\n }\n // release global scope\n const unmountApp = app.unmount;\n app.unmount = () => {\n globalReleaseHandler && globalReleaseHandler();\n i18n.dispose();\n unmountApp();\n };\n // setup vue-devtools plugin\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\n const ret = await enableDevTools(app, i18n);\n if (!ret) {\n throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);\n }\n const emitter = createEmitter();\n if (__legacyMode) {\n const _vueI18n = __global;\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = __global;\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n }\n emitter.on('*', addTimelineEvent);\n }\n },\n // global accessor\n get global() {\n return __global;\n },\n dispose() {\n globalScope.stop();\n },\n // @internal\n __instances,\n // @internal\n __getInstance,\n // @internal\n __setInstance,\n // @internal\n __deleteInstance\n };\n return i18n;\n }\n}\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction useI18n(options = {}) {\n const instance = getCurrentInstance();\n if (instance == null) {\n throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);\n }\n if (!instance.isCE &&\n instance.appContext.app != null &&\n !instance.appContext.app.__VUE_I18N_SYMBOL__) {\n throw createI18nError(I18nErrorCodes.NOT_INSTALLED);\n }\n const i18n = getI18nInstance(instance);\n const gl = getGlobalComposer(i18n);\n const componentOptions = getComponentOptions(instance);\n const scope = getScope(options, componentOptions);\n if (__VUE_I18N_LEGACY_API__) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (i18n.mode === 'legacy' && !options.__useComponent) {\n if (!i18n.allowComposition) {\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE);\n }\n return useI18nForLegacy(instance, scope, gl, options);\n }\n }\n if (scope === 'global') {\n adjustI18nResources(gl, options, componentOptions);\n return gl;\n }\n if (scope === 'parent') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let composer = getComposer(i18n, instance, options.__useComponent);\n if (composer == null) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));\n }\n composer = gl;\n }\n return composer;\n }\n const i18nInternal = i18n;\n let composer = i18nInternal.__getInstance(instance);\n if (composer == null) {\n const composerOptions = assign({}, options);\n if ('__i18n' in componentOptions) {\n composerOptions.__i18n = componentOptions.__i18n;\n }\n if (gl) {\n composerOptions.__root = gl;\n }\n composer = createComposer(composerOptions);\n if (i18nInternal.__composerExtend) {\n composer[DisposeSymbol] =\n i18nInternal.__composerExtend(composer);\n }\n setupLifeCycle(i18nInternal, instance, composer);\n i18nInternal.__setInstance(instance, composer);\n }\n return composer;\n}\n/**\n * Cast to VueI18n legacy compatible type\n *\n * @remarks\n * This API is provided only with [vue-i18n-bridge](https://vue-i18n.intlify.dev/guide/migration/ways.html#what-is-vue-i18n-bridge).\n *\n * The purpose of this function is to convert an {@link I18n} instance created with {@link createI18n | createI18n(legacy: true)} into a `vue-i18n@v8.x` compatible instance of `new VueI18n` in a TypeScript environment.\n *\n * @param i18n - An instance of {@link I18n}\n * @returns A i18n instance which is casted to {@link VueI18n} type\n *\n * @VueI18nTip\n * :new: provided by **vue-i18n-bridge only**\n *\n * @VueI18nGeneral\n */\n/* #__NO_SIDE_EFFECTS__ */\nconst castToVueI18n = (i18n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => {\n if (!(__VUE_I18N_BRIDGE__ in i18n)) {\n throw createI18nError(I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N);\n }\n return i18n;\n};\nfunction createGlobal(options, legacyMode, VueI18nLegacy // eslint-disable-line @typescript-eslint/no-explicit-any\n) {\n const scope = effectScope();\n {\n const obj = __VUE_I18N_LEGACY_API__ && legacyMode\n ? scope.run(() => createVueI18n(options))\n : scope.run(() => createComposer(options));\n if (obj == null) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n return [scope, obj];\n }\n}\nfunction getI18nInstance(instance) {\n {\n const i18n = inject(!instance.isCE\n ? instance.appContext.app.__VUE_I18N_SYMBOL__\n : I18nInjectionKey);\n /* istanbul ignore if */\n if (!i18n) {\n throw createI18nError(!instance.isCE\n ? I18nErrorCodes.UNEXPECTED_ERROR\n : I18nErrorCodes.NOT_INSTALLED_WITH_PROVIDE);\n }\n return i18n;\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getScope(options, componentOptions) {\n // prettier-ignore\n return isEmptyObject(options)\n ? ('__i18n' in componentOptions)\n ? 'local'\n : 'global'\n : !options.useScope\n ? 'local'\n : options.useScope;\n}\nfunction getGlobalComposer(i18n) {\n // prettier-ignore\n return i18n.mode === 'composition'\n ? i18n.global\n : i18n.global.__composer\n ;\n}\nfunction getComposer(i18n, target, useComponent = false) {\n let composer = null;\n const root = target.root;\n let current = getParentComponentInstance(target, useComponent);\n while (current != null) {\n const i18nInternal = i18n;\n if (i18n.mode === 'composition') {\n composer = i18nInternal.__getInstance(current);\n }\n else {\n if (__VUE_I18N_LEGACY_API__) {\n const vueI18n = i18nInternal.__getInstance(current);\n if (vueI18n != null) {\n composer = vueI18n\n .__composer;\n if (useComponent &&\n composer &&\n !composer[InejctWithOptionSymbol] // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n composer = null;\n }\n }\n }\n }\n if (composer != null) {\n break;\n }\n if (root === current) {\n break;\n }\n current = current.parent;\n }\n return composer;\n}\nfunction getParentComponentInstance(target, useComponent = false) {\n if (target == null) {\n return null;\n }\n {\n // if `useComponent: true` will be specified, we get lexical scope owner instance for use-case slots\n return !useComponent\n ? target.parent\n : target.vnode.ctx || target.parent; // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n}\nfunction setupLifeCycle(i18n, target, composer) {\n let emitter = null;\n {\n onMounted(() => {\n // inject composer instance to DOM for intlify-devtools\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n target.vnode.el) {\n target.vnode.el.__VUE_I18N__ = composer;\n emitter = createEmitter();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = composer;\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\n emitter.on('*', addTimelineEvent);\n }\n }, target);\n onUnmounted(() => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _composer = composer;\n // remove composer instance from DOM for intlify-devtools\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n !false &&\n target.vnode.el &&\n target.vnode.el.__VUE_I18N__) {\n emitter && emitter.off('*', addTimelineEvent);\n _composer[DisableEmitter] && _composer[DisableEmitter]();\n delete target.vnode.el.__VUE_I18N__;\n }\n i18n.__deleteInstance(target);\n // dispose extended resources\n const dispose = _composer[DisposeSymbol];\n if (dispose) {\n dispose();\n delete _composer[DisposeSymbol];\n }\n }, target);\n }\n}\nfunction useI18nForLegacy(instance, scope, root, options = {} // eslint-disable-line @typescript-eslint/no-explicit-any\n) {\n const isLocalScope = scope === 'local';\n const _composer = shallowRef(null);\n if (isLocalScope &&\n instance.proxy &&\n !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) {\n throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);\n }\n const _inheritLocale = isBoolean(options.inheritLocale)\n ? options.inheritLocale\n : !isString(options.locale);\n const _locale = ref(\n // prettier-ignore\n !isLocalScope || _inheritLocale\n ? root.locale.value\n : isString(options.locale)\n ? options.locale\n : DEFAULT_LOCALE);\n const _fallbackLocale = ref(\n // prettier-ignore\n !isLocalScope || _inheritLocale\n ? root.fallbackLocale.value\n : isString(options.fallbackLocale) ||\n isArray(options.fallbackLocale) ||\n isPlainObject(options.fallbackLocale) ||\n options.fallbackLocale === false\n ? options.fallbackLocale\n : _locale.value);\n const _messages = ref(getLocaleMessages(_locale.value, options));\n // prettier-ignore\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\n ? options.datetimeFormats\n : { [_locale.value]: {} });\n // prettier-ignore\n const _numberFormats = ref(isPlainObject(options.numberFormats)\n ? options.numberFormats\n : { [_locale.value]: {} });\n // prettier-ignore\n const _missingWarn = isLocalScope\n ? root.missingWarn\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\n ? options.missingWarn\n : true;\n // prettier-ignore\n const _fallbackWarn = isLocalScope\n ? root.fallbackWarn\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\n ? options.fallbackWarn\n : true;\n // prettier-ignore\n const _fallbackRoot = isLocalScope\n ? root.fallbackRoot\n : isBoolean(options.fallbackRoot)\n ? options.fallbackRoot\n : true;\n // configure fall back to root\n const _fallbackFormat = !!options.fallbackFormat;\n // runtime missing\n const _missing = isFunction(options.missing) ? options.missing : null;\n // postTranslation handler\n const _postTranslation = isFunction(options.postTranslation)\n ? options.postTranslation\n : null;\n // prettier-ignore\n const _warnHtmlMessage = isLocalScope\n ? root.warnHtmlMessage\n : isBoolean(options.warnHtmlMessage)\n ? options.warnHtmlMessage\n : true;\n const _escapeParameter = !!options.escapeParameter;\n // prettier-ignore\n const _modifiers = isLocalScope\n ? root.modifiers\n : isPlainObject(options.modifiers)\n ? options.modifiers\n : {};\n // pluralRules\n const _pluralRules = options.pluralRules || (isLocalScope && root.pluralRules);\n // track reactivity\n function trackReactivityValues() {\n return [\n _locale.value,\n _fallbackLocale.value,\n _messages.value,\n _datetimeFormats.value,\n _numberFormats.value\n ];\n }\n // locale\n const locale = computed({\n get: () => {\n return _composer.value ? _composer.value.locale.value : _locale.value;\n },\n set: val => {\n if (_composer.value) {\n _composer.value.locale.value = val;\n }\n _locale.value = val;\n }\n });\n // fallbackLocale\n const fallbackLocale = computed({\n get: () => {\n return _composer.value\n ? _composer.value.fallbackLocale.value\n : _fallbackLocale.value;\n },\n set: val => {\n if (_composer.value) {\n _composer.value.fallbackLocale.value = val;\n }\n _fallbackLocale.value = val;\n }\n });\n // messages\n const messages = computed(() => {\n if (_composer.value) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return _composer.value.messages.value;\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return _messages.value;\n }\n });\n const datetimeFormats = computed(() => _datetimeFormats.value);\n const numberFormats = computed(() => _numberFormats.value);\n function getPostTranslationHandler() {\n return _composer.value\n ? _composer.value.getPostTranslationHandler()\n : _postTranslation;\n }\n function setPostTranslationHandler(handler) {\n if (_composer.value) {\n _composer.value.setPostTranslationHandler(handler);\n }\n }\n function getMissingHandler() {\n return _composer.value ? _composer.value.getMissingHandler() : _missing;\n }\n function setMissingHandler(handler) {\n if (_composer.value) {\n _composer.value.setMissingHandler(handler);\n }\n }\n function warpWithDeps(fn) {\n trackReactivityValues();\n return fn();\n }\n function t(...args) {\n return _composer.value\n ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args]))\n : warpWithDeps(() => '');\n }\n function rt(...args) {\n return _composer.value\n ? Reflect.apply(_composer.value.rt, null, [...args])\n : '';\n }\n function d(...args) {\n return _composer.value\n ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args]))\n : warpWithDeps(() => '');\n }\n function n(...args) {\n return _composer.value\n ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args]))\n : warpWithDeps(() => '');\n }\n function tm(key) {\n return _composer.value ? _composer.value.tm(key) : {};\n }\n function te(key, locale) {\n return _composer.value ? _composer.value.te(key, locale) : false;\n }\n function getLocaleMessage(locale) {\n return _composer.value ? _composer.value.getLocaleMessage(locale) : {};\n }\n function setLocaleMessage(locale, message) {\n if (_composer.value) {\n _composer.value.setLocaleMessage(locale, message);\n _messages.value[locale] = message;\n }\n }\n function mergeLocaleMessage(locale, message) {\n if (_composer.value) {\n _composer.value.mergeLocaleMessage(locale, message);\n }\n }\n function getDateTimeFormat(locale) {\n return _composer.value ? _composer.value.getDateTimeFormat(locale) : {};\n }\n function setDateTimeFormat(locale, format) {\n if (_composer.value) {\n _composer.value.setDateTimeFormat(locale, format);\n _datetimeFormats.value[locale] = format;\n }\n }\n function mergeDateTimeFormat(locale, format) {\n if (_composer.value) {\n _composer.value.mergeDateTimeFormat(locale, format);\n }\n }\n function getNumberFormat(locale) {\n return _composer.value ? _composer.value.getNumberFormat(locale) : {};\n }\n function setNumberFormat(locale, format) {\n if (_composer.value) {\n _composer.value.setNumberFormat(locale, format);\n _numberFormats.value[locale] = format;\n }\n }\n function mergeNumberFormat(locale, format) {\n if (_composer.value) {\n _composer.value.mergeNumberFormat(locale, format);\n }\n }\n const wrapper = {\n get id() {\n return _composer.value ? _composer.value.id : -1;\n },\n locale,\n fallbackLocale,\n messages,\n datetimeFormats,\n numberFormats,\n get inheritLocale() {\n return _composer.value ? _composer.value.inheritLocale : _inheritLocale;\n },\n set inheritLocale(val) {\n if (_composer.value) {\n _composer.value.inheritLocale = val;\n }\n },\n get availableLocales() {\n return _composer.value\n ? _composer.value.availableLocales\n : Object.keys(_messages.value);\n },\n get modifiers() {\n return (_composer.value ? _composer.value.modifiers : _modifiers);\n },\n get pluralRules() {\n return (_composer.value ? _composer.value.pluralRules : _pluralRules);\n },\n get isGlobal() {\n return _composer.value ? _composer.value.isGlobal : false;\n },\n get missingWarn() {\n return _composer.value ? _composer.value.missingWarn : _missingWarn;\n },\n set missingWarn(val) {\n if (_composer.value) {\n _composer.value.missingWarn = val;\n }\n },\n get fallbackWarn() {\n return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn;\n },\n set fallbackWarn(val) {\n if (_composer.value) {\n _composer.value.missingWarn = val;\n }\n },\n get fallbackRoot() {\n return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot;\n },\n set fallbackRoot(val) {\n if (_composer.value) {\n _composer.value.fallbackRoot = val;\n }\n },\n get fallbackFormat() {\n return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat;\n },\n set fallbackFormat(val) {\n if (_composer.value) {\n _composer.value.fallbackFormat = val;\n }\n },\n get warnHtmlMessage() {\n return _composer.value\n ? _composer.value.warnHtmlMessage\n : _warnHtmlMessage;\n },\n set warnHtmlMessage(val) {\n if (_composer.value) {\n _composer.value.warnHtmlMessage = val;\n }\n },\n get escapeParameter() {\n return _composer.value\n ? _composer.value.escapeParameter\n : _escapeParameter;\n },\n set escapeParameter(val) {\n if (_composer.value) {\n _composer.value.escapeParameter = val;\n }\n },\n t,\n getPostTranslationHandler,\n setPostTranslationHandler,\n getMissingHandler,\n setMissingHandler,\n rt,\n d,\n n,\n tm,\n te,\n getLocaleMessage,\n setLocaleMessage,\n mergeLocaleMessage,\n getDateTimeFormat,\n setDateTimeFormat,\n mergeDateTimeFormat,\n getNumberFormat,\n setNumberFormat,\n mergeNumberFormat\n };\n function sync(composer) {\n composer.locale.value = _locale.value;\n composer.fallbackLocale.value = _fallbackLocale.value;\n Object.keys(_messages.value).forEach(locale => {\n composer.mergeLocaleMessage(locale, _messages.value[locale]);\n });\n Object.keys(_datetimeFormats.value).forEach(locale => {\n composer.mergeDateTimeFormat(locale, _datetimeFormats.value[locale]);\n });\n Object.keys(_numberFormats.value).forEach(locale => {\n composer.mergeNumberFormat(locale, _numberFormats.value[locale]);\n });\n composer.escapeParameter = _escapeParameter;\n composer.fallbackFormat = _fallbackFormat;\n composer.fallbackRoot = _fallbackRoot;\n composer.fallbackWarn = _fallbackWarn;\n composer.missingWarn = _missingWarn;\n composer.warnHtmlMessage = _warnHtmlMessage;\n }\n onBeforeMount(() => {\n if (instance.proxy == null || instance.proxy.$i18n == null) {\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const composer = (_composer.value = instance.proxy.$i18n\n .__composer);\n if (scope === 'global') {\n _locale.value = composer.locale.value;\n _fallbackLocale.value = composer.fallbackLocale.value;\n _messages.value = composer.messages.value;\n _datetimeFormats.value = composer.datetimeFormats.value;\n _numberFormats.value = composer.numberFormats.value;\n }\n else if (isLocalScope) {\n sync(composer);\n }\n });\n return wrapper;\n}\nconst globalExportProps = [\n 'locale',\n 'fallbackLocale',\n 'availableLocales'\n];\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm', 'te']\n ;\nfunction injectGlobalFields(app, composer) {\n const i18n = Object.create(null);\n globalExportProps.forEach(prop => {\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\n if (!desc) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n const wrap = isRef(desc.value) // check computed props\n ? {\n get() {\n return desc.value.value;\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(val) {\n desc.value.value = val;\n }\n }\n : {\n get() {\n return desc.get && desc.get();\n }\n };\n Object.defineProperty(i18n, prop, wrap);\n });\n app.config.globalProperties.$i18n = i18n;\n globalExportMethods.forEach(method => {\n const desc = Object.getOwnPropertyDescriptor(composer, method);\n if (!desc || !desc.value) {\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\n }\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\n });\n const dispose = () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete app.config.globalProperties.$i18n;\n globalExportMethods.forEach(method => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n delete app.config.globalProperties[`$${method}`];\n });\n };\n return dispose;\n}\n\n{\n initFeatureFlags();\n}\n// register message compiler at vue-i18n\nif (__INTLIFY_JIT_COMPILATION__) {\n registerMessageCompiler(compile);\n}\nelse {\n registerMessageCompiler(compileToFunction);\n}\n// register message resolver at vue-i18n\nregisterMessageResolver(resolveValue);\n// register fallback locale at vue-i18n\nregisterLocaleFallbacker(fallbackWithLocaleChain);\n// NOTE: experimental !!\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\n const target = getGlobalThis();\n target.__INTLIFY__ = true;\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\n}\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, I18nD, I18nInjectionKey, I18nN, I18nT, NumberFormat, Translation, VERSION, castToVueI18n, createI18n, useI18n, vTDirective };\n","\n\n\n\n\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-floatlabel {\\n display: block;\\n position: relative;\\n}\\n\\n.p-floatlabel label {\\n position: absolute;\\n pointer-events: none;\\n top: 50%;\\n margin-top: -.5rem;\\n transition-property: all;\\n transition-timing-function: ease;\\n line-height: 1;\\n left: 0.75rem;\\n color: \".concat(dt('floatlabel.color'), \";\\n transition-duration: \").concat(dt('floatlabel.transition.duration'), \";\\n}\\n\\n.p-floatlabel:has(textarea) label {\\n top: 1rem;\\n}\\n\\n.p-floatlabel:has(input:focus) label,\\n.p-floatlabel:has(input.p-filled) label,\\n.p-floatlabel:has(input:-webkit-autofill) label,\\n.p-floatlabel:has(textarea:focus) label,\\n.p-floatlabel:has(textarea.p-filled) label,\\n.p-floatlabel:has(.p-inputwrapper-focus) label,\\n.p-floatlabel:has(.p-inputwrapper-filled) label {\\n top: -.75rem;\\n font-size: 12px;\\n color: \").concat(dt('floatlabel.focus.color'), \";\\n}\\n\\n.p-floatlabel .p-placeholder,\\n.p-floatlabel input::placeholder,\\n.p-floatlabel .p-inputtext::placeholder {\\n opacity: 0;\\n transition-property: all;\\n transition-timing-function: ease;\\n}\\n\\n.p-floatlabel .p-focus .p-placeholder,\\n.p-floatlabel input:focus::placeholder,\\n.p-floatlabel .p-inputtext:focus::placeholder {\\n opacity: 1;\\n transition-property: all;\\n transition-timing-function: ease;\\n}\\n\\n.p-floatlabel > .p-invalid + label {\\n color: \").concat(dt('floatlabel.invalid.color'), \";\\n}\\n\");\n};\nvar classes = {\n root: 'p-floatlabel'\n};\nvar FloatLabelStyle = BaseStyle.extend({\n name: 'floatlabel',\n theme: theme,\n classes: classes\n});\n\nexport { FloatLabelStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseComponent from '@primevue/core/basecomponent';\nimport FloatLabelStyle from 'primevue/floatlabel/style';\nimport { openBlock, createElementBlock, mergeProps, renderSlot } from 'vue';\n\nvar script$1 = {\n name: 'BaseFloatLabel',\n \"extends\": BaseComponent,\n props: {},\n style: FloatLabelStyle,\n provide: function provide() {\n return {\n $pcFloatLabel: this,\n $parentInstance: this\n };\n }\n};\n\nvar script = {\n name: 'FloatLabel',\n \"extends\": script$1,\n inheritAttrs: false\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [renderSlot(_ctx.$slots, \"default\")], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n","import { createI18n } from 'vue-i18n'\n\nconst messages = {\n en: {\n videoFailedToLoad: 'Video failed to load',\n extensionName: 'Extension Name',\n reloadToApplyChanges: 'Reload to apply changes',\n insert: 'Insert',\n systemInfo: 'System Info',\n devices: 'Devices',\n about: 'About',\n add: 'Add',\n confirm: 'Confirm',\n reset: 'Reset',\n resetKeybindingsTooltip: 'Reset keybindings to default',\n customizeFolder: 'Customize Folder',\n icon: 'Icon',\n color: 'Color',\n bookmark: 'Bookmark',\n folder: 'Folder',\n star: 'Star',\n heart: 'Heart',\n file: 'File',\n inbox: 'Inbox',\n box: 'Box',\n briefcase: 'Briefcase',\n error: 'Error',\n loading: 'Loading',\n findIssues: 'Find Issues',\n copyToClipboard: 'Copy to Clipboard',\n openNewIssue: 'Open New Issue',\n showReport: 'Show Report',\n imageFailedToLoad: 'Image failed to load',\n reconnecting: 'Reconnecting',\n reconnected: 'Reconnected',\n delete: 'Delete',\n rename: 'Rename',\n customize: 'Customize',\n experimental: 'BETA',\n deprecated: 'DEPR',\n loadWorkflow: 'Load Workflow',\n goToNode: 'Go to Node',\n settings: 'Settings',\n searchWorkflows: 'Search Workflows',\n searchSettings: 'Search Settings',\n searchNodes: 'Search Nodes',\n searchModels: 'Search Models',\n searchKeybindings: 'Search Keybindings',\n noResultsFound: 'No Results Found',\n searchFailedMessage:\n \"We couldn't find any settings matching your search. Try adjusting your search terms.\",\n noTasksFound: 'No Tasks Found',\n noTasksFoundMessage: 'There are no tasks in the queue.',\n newFolder: 'New Folder',\n sideToolbar: {\n themeToggle: 'Toggle Theme',\n queue: 'Queue',\n nodeLibrary: 'Node Library',\n workflows: 'Workflows',\n browseTemplates: 'Browse example templates',\n openWorkflow: 'Open workflow in local file system',\n newBlankWorkflow: 'Create a new blank workflow',\n nodeLibraryTab: {\n sortOrder: 'Sort Order'\n },\n modelLibrary: 'Model Library',\n queueTab: {\n showFlatList: 'Show Flat List',\n backToAllTasks: 'Back to All Tasks',\n containImagePreview: 'Fill Image Preview',\n coverImagePreview: 'Fit Image Preview',\n clearPendingTasks: 'Clear Pending Tasks'\n }\n },\n menu: {\n batchCount: 'Batch Count',\n batchCountTooltip:\n 'The number of times the workflow generation should be queued',\n autoQueue: 'Auto Queue',\n disabled: 'Disabled',\n disabledTooltip: 'The workflow will not be automatically queued',\n instant: 'Instant',\n instantTooltip:\n 'The workflow will be queued instantly after a generation finishes',\n change: 'On Change',\n changeTooltip: 'The workflow will be queued once a change is made',\n queueWorkflow: 'Queue workflow',\n queueWorkflowFront: 'Queue workflow (Insert at Front)',\n queue: 'Queue',\n interrupt: 'Cancel current run',\n refresh: 'Refresh node definitions',\n clipspace: 'Open Clipspace',\n resetView: 'Reset canvas view',\n clear: 'Clear workflow'\n },\n templateWorkflows: {\n title: 'Get Started with a Template',\n template: {\n default: 'Image Generation',\n image2image: 'Image to Image',\n upscale: '2 Pass Upscale',\n flux_schnell: 'Flux Schnell'\n }\n },\n graphCanvasMenu: {\n zoomIn: 'Zoom In',\n zoomOut: 'Zoom Out',\n resetView: 'Reset View',\n selectMode: 'Select Mode',\n panMode: 'Pan Mode',\n toggleLinkVisibility: 'Toggle Link Visibility'\n }\n },\n zh: {\n videoFailedToLoad: '视频加载失败',\n extensionName: '扩展名称',\n reloadToApplyChanges: '重新加载以应用更改',\n insert: '插入',\n systemInfo: '系统信息',\n devices: '设备',\n about: '关于',\n add: '添加',\n confirm: '确认',\n reset: '重置',\n resetKeybindingsTooltip: '重置键位',\n customizeFolder: '定制文件夹',\n icon: '图标',\n color: '颜色',\n bookmark: '书签',\n folder: '文件夹',\n star: '星星',\n heart: '心',\n file: '文件',\n inbox: '收件箱',\n box: '盒子',\n briefcase: '公文包',\n error: '错误',\n loading: '加载中',\n findIssues: '查找 Issue',\n copyToClipboard: '复制到剪贴板',\n openNewIssue: '开启新 Issue',\n showReport: '显示报告',\n imageFailedToLoad: '图像加载失败',\n reconnecting: '重新连接中',\n reconnected: '已重新连接',\n delete: '删除',\n rename: '重命名',\n customize: '定制',\n experimental: 'BETA',\n deprecated: '弃用',\n loadWorkflow: '加载工作流',\n goToNode: '前往节点',\n settings: '设置',\n searchWorkflows: '搜索工作流',\n searchSettings: '搜索设置',\n searchNodes: '搜索节点',\n searchModels: '搜索模型',\n searchKeybindings: '搜索键位',\n noResultsFound: '未找到结果',\n searchFailedMessage:\n '我们找不到与您的搜索匹配的任何设置。请尝试调整搜索条件。',\n noContent: '(无内容)',\n noTasksFound: '未找到任务',\n noTasksFoundMessage: '队列中没有任务。',\n newFolder: '新建文件夹',\n sideToolbar: {\n themeToggle: '主题切换',\n queue: '队列',\n nodeLibrary: '节点库',\n workflows: '工作流',\n browseTemplates: '浏览示例模板',\n openWorkflow: '在本地文件系统中打开工作流',\n newBlankWorkflow: '创建一个新空白工作流',\n nodeLibraryTab: {\n sortOrder: '排序顺序'\n },\n modelLibrary: '模型库',\n queueTab: {\n showFlatList: '平铺结果',\n backToAllTasks: '返回',\n containImagePreview: '填充图像预览',\n coverImagePreview: '适应图像预览',\n clearPendingTasks: '清除待处理任务'\n }\n },\n menu: {\n batchCount: '批次数量',\n batchCountTooltip: '工作流生成次数',\n autoQueue: '自动执行',\n disabled: '禁用',\n disabledTooltip: '工作流将不会自动执行',\n instant: '实时',\n instantTooltip: '工作流将会在生成完成后立即执行',\n change: '变动',\n changeTooltip: '工作流将会在改变后执行',\n queueWorkflow: '执行工作流',\n queueWorkflowFront: '执行工作流 (队列首)',\n queue: '队列',\n interrupt: '取消当前任务',\n refresh: '刷新节点',\n clipspace: '打开剪贴板',\n resetView: '重置画布视图',\n clear: '清空工作流'\n },\n templateWorkflows: {\n title: '从模板开始',\n template: {\n default: 'Image Generation',\n image2image: 'Image to Image',\n upscale: '2 Pass Upscale',\n flux_schnell: 'Flux Schnell'\n }\n },\n graphCanvasMenu: {\n zoomIn: '放大',\n zoomOut: '缩小',\n resetView: '重置视图',\n selectMode: '选择模式',\n panMode: '平移模式',\n toggleLinkVisibility: '切换链接可见性'\n }\n },\n ru: {\n videoFailedToLoad: 'Видео не удалось загрузить',\n extensionName: 'Название расширения',\n reloadToApplyChanges: 'Перезагрузите, чтобы применить изменения',\n insert: 'Вставить',\n systemInfo: 'Информация о системе',\n devices: 'Устройства',\n about: 'О',\n add: 'Добавить',\n confirm: 'Подтвердить',\n reset: 'Сбросить',\n resetKeybindingsTooltip: 'Сбросить сочетания клавиш по умолчанию',\n customizeFolder: 'Настроить папку',\n icon: 'Иконка',\n color: 'Цвет',\n bookmark: 'Закладка',\n folder: 'Папка',\n star: 'Звёздочка',\n heart: 'Сердце',\n file: 'Файл',\n inbox: 'Входящие',\n box: 'Ящик',\n briefcase: 'Чемодан',\n error: 'Ошибка',\n loading: 'Загрузка',\n findIssues: 'Найти Issue',\n copyToClipboard: 'Копировать в буфер обмена',\n openNewIssue: 'Открыть новый Issue',\n showReport: 'Показать отчёт',\n imageFailedToLoad: 'Изображение не удалось загрузить',\n reconnecting: 'Переподключение',\n reconnected: 'Переподключено',\n delete: 'Удалить',\n rename: 'Переименовать',\n customize: 'Настроить',\n experimental: 'БЕТА',\n deprecated: 'УСТАР',\n loadWorkflow: 'Загрузить рабочий процесс',\n goToNode: 'Перейти к узлу',\n settings: 'Настройки',\n searchWorkflows: 'Поиск рабочих процессов',\n searchSettings: 'Поиск настроек',\n searchNodes: 'Поиск узлов',\n searchModels: 'Поиск моделей',\n searchKeybindings: 'Поиск сочетаний клавиш',\n noResultsFound: 'Ничего не найдено',\n searchFailedMessage:\n 'Не удалось найти ни одной настройки, соответствующей вашему запросу. Попробуйте скорректировать поисковый запрос.',\n noContent: '(Нет контента)',\n noTasksFound: 'Задачи не найдены',\n noTasksFoundMessage: 'В очереди нет задач.',\n newFolder: 'Новая папка',\n sideToolbar: {\n themeToggle: 'Переключить тему',\n queue: 'Очередь',\n nodeLibrary: 'Библиотека узлов',\n workflows: 'Рабочие процессы',\n browseTemplates: 'Просмотреть примеры шаблонов',\n openWorkflow: 'Открыть рабочий процесс в локальной файловой системе',\n newBlankWorkflow: 'Создайте новый пустой рабочий процесс',\n nodeLibraryTab: {\n sortOrder: 'Порядок сортировки'\n },\n modelLibrary: 'Библиотека моделей',\n queueTab: {\n showFlatList: 'Показать плоский список',\n backToAllTasks: 'Вернуться ко всем задачам',\n containImagePreview: 'Предпросмотр заливающего изображения',\n coverImagePreview: 'Предпросмотр подходящего изображения',\n clearPendingTasks: 'Очистить отложенные задачи'\n }\n },\n menu: {\n batchCount: 'Количество пакетов',\n batchCountTooltip:\n 'Количество раз, когда генерация рабочего процесса должна быть помещена в очередь',\n autoQueue: 'Автоочередь',\n disabled: 'Отключено',\n disabledTooltip:\n 'Рабочий процесс не будет автоматически помещён в очередь',\n instant: 'Мгновенно',\n instantTooltip:\n 'Рабочий процесс будет помещён в очередь сразу же после завершения генерации',\n change: 'При изменении',\n changeTooltip:\n 'Рабочий процесс будет поставлен в очередь после внесения изменений',\n queueWorkflow: 'Очередь рабочего процесса',\n queueWorkflowFront: 'Очередь рабочего процесса (Вставка спереди)',\n queue: 'Очередь',\n interrupt: 'Отменить текущее выполнение',\n refresh: 'Обновить определения узлов',\n clipspace: 'Открыть Clipspace',\n resetView: 'Сбросить вид холста',\n clear: 'Очистить рабочий процесс'\n },\n templateWorkflows: {\n title: 'Начните работу с шаблона',\n template: {\n default: 'Image Generation',\n image2image: 'Image to Image',\n upscale: '2 Pass Upscale',\n flux_schnell: 'Flux Schnell'\n }\n },\n graphCanvasMenu: {\n zoomIn: 'Увеличить',\n zoomOut: 'Уменьшить',\n resetView: 'Сбросить вид',\n selectMode: 'Выбрать режим',\n panMode: 'Режим панорамирования',\n toggleLinkVisibility: 'Переключить видимость ссылок'\n }\n }\n // TODO: Add more languages\n}\n\nexport const i18n = createI18n({\n // Must set `false`, as Vue I18n Legacy API is for Vue 2\n legacy: false,\n locale: navigator.language.split('-')[0] || 'en',\n fallbackLocale: 'en',\n messages\n})\n","// This module is mocked in tests-ui/\n// Import vue components here to avoid tests-ui/ reporting errors\n// about importing primevue components.\nimport { useDialogStore } from '@/stores/dialogStore'\nimport LoadWorkflowWarning from '@/components/dialog/content/LoadWorkflowWarning.vue'\nimport MissingModelsWarning from '@/components/dialog/content/MissingModelsWarning.vue'\nimport SettingDialogContent from '@/components/dialog/content/SettingDialogContent.vue'\nimport SettingDialogHeader from '@/components/dialog/header/SettingDialogHeader.vue'\nimport type { ExecutionErrorWsMessage } from '@/types/apiTypes'\nimport ExecutionErrorDialogContent from '@/components/dialog/content/ExecutionErrorDialogContent.vue'\nimport TemplateWorkflowsContent from '@/components/templates/TemplateWorkflowsContent.vue'\nimport PromptDialogContent from '@/components/dialog/content/PromptDialogContent.vue'\nimport { i18n } from '@/i18n'\n\nexport function showLoadWorkflowWarning(props: {\n missingNodeTypes: any[]\n hasAddedNodes: boolean\n [key: string]: any\n}) {\n const dialogStore = useDialogStore()\n dialogStore.showDialog({\n component: LoadWorkflowWarning,\n props,\n dialogComponentProps: {\n maximizable: true\n }\n })\n}\n\nexport function showMissingModelsWarning(props: {\n missingModels: any[]\n paths: Record\n [key: string]: any\n}) {\n const dialogStore = useDialogStore()\n dialogStore.showDialog({\n component: MissingModelsWarning,\n props,\n dialogComponentProps: {\n maximizable: true\n }\n })\n}\n\nexport function showSettingsDialog() {\n useDialogStore().showDialog({\n headerComponent: SettingDialogHeader,\n component: SettingDialogContent\n })\n}\n\nexport function showExecutionErrorDialog(error: ExecutionErrorWsMessage) {\n useDialogStore().showDialog({\n component: ExecutionErrorDialogContent,\n props: {\n error\n }\n })\n}\n\nexport function showTemplateWorkflowsDialog() {\n useDialogStore().showDialog({\n title: i18n.global.t('templateWorkflows.title'),\n component: TemplateWorkflowsContent\n })\n}\n\nexport async function showPromptDialog({\n title,\n message,\n defaultValue = ''\n}: {\n title: string\n message: string\n defaultValue?: string\n}): Promise {\n const dialogStore = useDialogStore()\n\n return new Promise((resolve) => {\n dialogStore.showDialog({\n title,\n component: PromptDialogContent,\n props: {\n message,\n defaultValue,\n onConfirm: (value: string) => {\n resolve(value)\n }\n },\n dialogComponentProps: {\n onClose: () => {\n resolve(null)\n }\n }\n })\n })\n}\n","// @ts-strict-ignore\nimport { api } from './api'\nimport { ComfyDialog as _ComfyDialog } from './ui/dialog'\nimport { toggleSwitch } from './ui/toggleSwitch'\nimport { ComfySettingsDialog } from './ui/settings'\nimport { ComfyApp, app } from './app'\nimport { TaskItem } from '@/types/apiTypes'\nimport { showSettingsDialog } from '@/services/dialogService'\nimport { useSettingStore } from '@/stores/settingStore'\nimport { useCommandStore } from '@/stores/commandStore'\n\nexport const ComfyDialog = _ComfyDialog\n\ntype Position2D = {\n x: number\n y: number\n}\n\ntype Props = {\n parent?: HTMLElement\n $?: (el: HTMLElement) => void\n dataset?: DOMStringMap\n style?: Partial\n for?: string\n textContent?: string\n [key: string]: any\n}\n\ntype Children = Element[] | Element | string | string[]\n\ntype ElementType = K extends keyof HTMLElementTagNameMap\n ? HTMLElementTagNameMap[K]\n : HTMLElement\n\nexport function $el(\n tag: TTag,\n propsOrChildren?: Children | Props,\n children?: Children\n): ElementType {\n const split = tag.split('.')\n const element = document.createElement(split.shift() as string)\n if (split.length > 0) {\n element.classList.add(...split)\n }\n\n if (propsOrChildren) {\n if (typeof propsOrChildren === 'string') {\n propsOrChildren = { textContent: propsOrChildren }\n } else if (propsOrChildren instanceof Element) {\n propsOrChildren = [propsOrChildren]\n }\n if (Array.isArray(propsOrChildren)) {\n element.append(...propsOrChildren)\n } else {\n const {\n parent,\n $: cb,\n dataset,\n style,\n ...rest\n } = propsOrChildren as Props\n\n if (rest.for) {\n element.setAttribute('for', rest.for)\n }\n\n if (style) {\n Object.assign(element.style, style)\n }\n\n if (dataset) {\n Object.assign(element.dataset, dataset)\n }\n\n Object.assign(element, rest)\n if (children) {\n element.append(...(Array.isArray(children) ? children : [children]))\n }\n\n if (parent) {\n parent.append(element)\n }\n\n if (cb) {\n cb(element)\n }\n }\n }\n return element as ElementType\n}\n\nfunction dragElement(dragEl, settings): () => void {\n var posDiffX = 0,\n posDiffY = 0,\n posStartX = 0,\n posStartY = 0,\n newPosX = 0,\n newPosY = 0\n if (dragEl.getElementsByClassName('drag-handle')[0]) {\n // if present, the handle is where you move the DIV from:\n dragEl.getElementsByClassName('drag-handle')[0].onmousedown = dragMouseDown\n } else {\n // otherwise, move the DIV from anywhere inside the DIV:\n dragEl.onmousedown = dragMouseDown\n }\n\n // When the element resizes (e.g. view queue) ensure it is still in the windows bounds\n const resizeObserver = new ResizeObserver(() => {\n ensureInBounds()\n }).observe(dragEl)\n\n function ensureInBounds() {\n try {\n newPosX = Math.min(\n document.body.clientWidth - dragEl.clientWidth,\n Math.max(0, dragEl.offsetLeft)\n )\n newPosY = Math.min(\n document.body.clientHeight - dragEl.clientHeight,\n Math.max(0, dragEl.offsetTop)\n )\n\n positionElement()\n } catch (exception) {\n // robust\n }\n }\n\n function positionElement() {\n if (dragEl.style.display === 'none') return\n\n const halfWidth = document.body.clientWidth / 2\n const anchorRight = newPosX + dragEl.clientWidth / 2 > halfWidth\n\n // set the element's new position:\n if (anchorRight) {\n dragEl.style.left = 'unset'\n dragEl.style.right =\n document.body.clientWidth - newPosX - dragEl.clientWidth + 'px'\n } else {\n dragEl.style.left = newPosX + 'px'\n dragEl.style.right = 'unset'\n }\n\n dragEl.style.top = newPosY + 'px'\n dragEl.style.bottom = 'unset'\n\n if (savePos) {\n localStorage.setItem(\n 'Comfy.MenuPosition',\n JSON.stringify({\n x: dragEl.offsetLeft,\n y: dragEl.offsetTop\n })\n )\n }\n }\n\n function restorePos() {\n let posString = localStorage.getItem('Comfy.MenuPosition')\n if (posString) {\n const pos = JSON.parse(posString) as Position2D\n newPosX = pos.x\n newPosY = pos.y\n positionElement()\n ensureInBounds()\n }\n }\n\n let savePos = undefined\n settings.addSetting({\n id: 'Comfy.MenuPosition',\n category: ['Comfy', 'Menu', 'MenuPosition'],\n name: \"Save legacy menu's position\",\n type: 'boolean',\n defaultValue: savePos,\n onChange(value) {\n if (savePos === undefined && value) {\n restorePos()\n }\n savePos = value\n }\n })\n\n function dragMouseDown(e) {\n e = e || window.event\n e.preventDefault()\n // get the mouse cursor position at startup:\n posStartX = e.clientX\n posStartY = e.clientY\n document.onmouseup = closeDragElement\n // call a function whenever the cursor moves:\n document.onmousemove = elementDrag\n }\n\n function elementDrag(e) {\n e = e || window.event\n e.preventDefault()\n\n dragEl.classList.add('comfy-menu-manual-pos')\n\n // calculate the new cursor position:\n posDiffX = e.clientX - posStartX\n posDiffY = e.clientY - posStartY\n posStartX = e.clientX\n posStartY = e.clientY\n\n newPosX = Math.min(\n document.body.clientWidth - dragEl.clientWidth,\n Math.max(0, dragEl.offsetLeft + posDiffX)\n )\n newPosY = Math.min(\n document.body.clientHeight - dragEl.clientHeight,\n Math.max(0, dragEl.offsetTop + posDiffY)\n )\n\n positionElement()\n }\n\n window.addEventListener('resize', () => {\n ensureInBounds()\n })\n\n function closeDragElement() {\n // stop moving when mouse button is released:\n document.onmouseup = null\n document.onmousemove = null\n }\n\n return restorePos\n}\n\nclass ComfyList {\n #type\n #text\n #reverse\n element: HTMLDivElement\n button?: HTMLButtonElement\n\n constructor(text, type?, reverse?) {\n this.#text = text\n this.#type = type || text.toLowerCase()\n this.#reverse = reverse || false\n this.element = $el('div.comfy-list') as HTMLDivElement\n this.element.style.display = 'none'\n }\n\n get visible() {\n return this.element.style.display !== 'none'\n }\n\n async load() {\n const items = await api.getItems(this.#type)\n this.element.replaceChildren(\n ...Object.keys(items).flatMap((section) => [\n $el('h4', {\n textContent: section\n }),\n $el('div.comfy-list-items', [\n ...(this.#reverse ? items[section].reverse() : items[section]).map(\n (item: TaskItem) => {\n // Allow items to specify a custom remove action (e.g. for interrupt current prompt)\n const removeAction =\n 'remove' in item\n ? item.remove\n : {\n name: 'Delete',\n cb: () => api.deleteItem(this.#type, item.prompt[1])\n }\n return $el('div', { textContent: item.prompt[0] + ': ' }, [\n $el('button', {\n textContent: 'Load',\n onclick: async () => {\n await app.loadGraphData(\n item.prompt[3].extra_pnginfo.workflow,\n true,\n false\n )\n if ('outputs' in item) {\n app.nodeOutputs = {}\n for (const [key, value] of Object.entries(item.outputs)) {\n const realKey = item['meta']?.[key]?.display_node ?? key\n app.nodeOutputs[realKey] = value\n }\n }\n }\n }),\n $el('button', {\n textContent: removeAction.name,\n onclick: async () => {\n await removeAction.cb()\n await this.update()\n }\n })\n ])\n }\n )\n ])\n ]),\n $el('div.comfy-list-actions', [\n $el('button', {\n textContent: 'Clear ' + this.#text,\n onclick: async () => {\n await api.clearItems(this.#type)\n await this.load()\n }\n }),\n $el('button', { textContent: 'Refresh', onclick: () => this.load() })\n ])\n )\n }\n\n async update() {\n if (this.visible) {\n await this.load()\n }\n }\n\n async show() {\n this.element.style.display = 'block'\n this.button.textContent = 'Close'\n\n await this.load()\n }\n\n hide() {\n this.element.style.display = 'none'\n this.button.textContent = 'View ' + this.#text\n }\n\n toggle() {\n if (this.visible) {\n this.hide()\n return false\n } else {\n this.show()\n return true\n }\n }\n}\n\nexport class ComfyUI {\n app: ComfyApp\n dialog: _ComfyDialog\n settings: ComfySettingsDialog\n batchCount: number\n lastQueueSize: number\n queue: ComfyList\n history: ComfyList\n autoQueueMode: string\n graphHasChanged: boolean\n autoQueueEnabled: boolean\n menuHamburger: HTMLDivElement\n menuContainer: HTMLDivElement\n queueSize: Element\n restoreMenuPosition: () => void\n loadFile: () => void\n\n constructor(app) {\n this.app = app\n this.dialog = new ComfyDialog()\n this.settings = new ComfySettingsDialog(app)\n\n this.batchCount = 1\n this.lastQueueSize = 0\n this.queue = new ComfyList('Queue')\n this.history = new ComfyList('History', 'history', true)\n\n api.addEventListener('status', () => {\n this.queue.update()\n this.history.update()\n })\n\n this.setup(document.body)\n }\n\n setup(containerElement: HTMLElement) {\n const fileInput = $el('input', {\n id: 'comfy-file-input',\n type: 'file',\n accept: '.json,image/png,.latent,.safetensors,image/webp,audio/flac',\n style: { display: 'none' },\n parent: document.body,\n onchange: async () => {\n await app.handleFile(fileInput.files[0])\n fileInput.value = ''\n }\n })\n\n this.loadFile = () => fileInput.click()\n\n const autoQueueModeEl = toggleSwitch(\n 'autoQueueMode',\n [\n {\n text: 'instant',\n tooltip: 'A new prompt will be queued as soon as the queue reaches 0'\n },\n {\n text: 'change',\n tooltip:\n 'A new prompt will be queued when the queue is at 0 and the graph is/has changed'\n }\n ],\n {\n onChange: (value) => {\n this.autoQueueMode = value.item.value\n }\n }\n )\n autoQueueModeEl.style.display = 'none'\n\n api.addEventListener('graphChanged', () => {\n if (this.autoQueueMode === 'change' && this.autoQueueEnabled === true) {\n if (this.lastQueueSize === 0) {\n this.graphHasChanged = false\n app.queuePrompt(0, this.batchCount)\n } else {\n this.graphHasChanged = true\n }\n }\n })\n\n this.menuHamburger = $el(\n 'div.comfy-menu-hamburger',\n {\n parent: containerElement,\n onclick: () => {\n this.menuContainer.style.display = 'block'\n this.menuHamburger.style.display = 'none'\n }\n },\n [$el('div'), $el('div'), $el('div')]\n ) as HTMLDivElement\n\n this.menuContainer = $el('div.comfy-menu', { parent: containerElement }, [\n $el(\n 'div.drag-handle.comfy-menu-header',\n {\n style: {\n overflow: 'hidden',\n position: 'relative',\n width: '100%',\n cursor: 'default'\n }\n },\n [\n $el('span.drag-handle'),\n $el('span.comfy-menu-queue-size', { $: (q) => (this.queueSize = q) }),\n $el('div.comfy-menu-actions', [\n $el('button.comfy-settings-btn', {\n textContent: '⚙️',\n onclick: showSettingsDialog\n }),\n $el('button.comfy-close-menu-btn', {\n textContent: '\\u00d7',\n onclick: () => {\n this.menuContainer.style.display = 'none'\n this.menuHamburger.style.display = 'flex'\n }\n })\n ])\n ]\n ),\n $el('button.comfy-queue-btn', {\n id: 'queue-button',\n textContent: 'Queue Prompt',\n onclick: () => app.queuePrompt(0, this.batchCount)\n }),\n $el('div', {}, [\n $el('label', { innerHTML: 'Extra options' }, [\n $el('input', {\n type: 'checkbox',\n onchange: (i) => {\n document.getElementById('extraOptions').style.display = i\n .srcElement.checked\n ? 'block'\n : 'none'\n this.batchCount = i.srcElement.checked\n ? Number.parseInt(\n (\n document.getElementById(\n 'batchCountInputRange'\n ) as HTMLInputElement\n ).value\n )\n : 1\n ;(\n document.getElementById('autoQueueCheckbox') as HTMLInputElement\n ).checked = false\n this.autoQueueEnabled = false\n }\n })\n ])\n ]),\n $el(\n 'div',\n { id: 'extraOptions', style: { width: '100%', display: 'none' } },\n [\n $el('div', [\n $el('label', { innerHTML: 'Batch count' }),\n $el('input', {\n id: 'batchCountInputNumber',\n type: 'number',\n value: this.batchCount,\n min: '1',\n style: { width: '35%', marginLeft: '0.4em' },\n oninput: (i) => {\n this.batchCount = i.target.value\n /* Even though an element with a type of range logically represents a number (since\n it's used for numeric input), the value it holds is still treated as a string in HTML and\n JavaScript. This behavior is consistent across all elements regardless of their type\n (like text, number, or range), where the .value property is always a string. */\n ;(\n document.getElementById(\n 'batchCountInputRange'\n ) as HTMLInputElement\n ).value = this.batchCount.toString()\n }\n }),\n $el('input', {\n id: 'batchCountInputRange',\n type: 'range',\n min: '1',\n max: '100',\n value: this.batchCount,\n oninput: (i) => {\n this.batchCount = i.srcElement.value\n // Note\n ;(\n document.getElementById(\n 'batchCountInputNumber'\n ) as HTMLInputElement\n ).value = i.srcElement.value\n }\n })\n ]),\n $el('div', [\n $el('label', {\n for: 'autoQueueCheckbox',\n innerHTML: 'Auto Queue'\n }),\n $el('input', {\n id: 'autoQueueCheckbox',\n type: 'checkbox',\n checked: false,\n title: 'Automatically queue prompt when the queue size hits 0',\n onchange: (e) => {\n this.autoQueueEnabled = e.target.checked\n autoQueueModeEl.style.display = this.autoQueueEnabled\n ? ''\n : 'none'\n }\n }),\n autoQueueModeEl\n ])\n ]\n ),\n $el('div.comfy-menu-btns', [\n $el('button', {\n id: 'queue-front-button',\n textContent: 'Queue Front',\n onclick: () => app.queuePrompt(-1, this.batchCount)\n }),\n $el('button', {\n $: (b) => (this.queue.button = b as HTMLButtonElement),\n id: 'comfy-view-queue-button',\n textContent: 'View Queue',\n onclick: () => {\n this.history.hide()\n this.queue.toggle()\n }\n }),\n $el('button', {\n $: (b) => (this.history.button = b as HTMLButtonElement),\n id: 'comfy-view-history-button',\n textContent: 'View History',\n onclick: () => {\n this.queue.hide()\n this.history.toggle()\n }\n })\n ]),\n this.queue.element,\n this.history.element,\n $el('button', {\n id: 'comfy-save-button',\n textContent: 'Save',\n onclick: () => {\n useCommandStore().execute('Comfy.ExportWorkflow')\n }\n }),\n $el('button', {\n id: 'comfy-dev-save-api-button',\n textContent: 'Save (API Format)',\n style: { width: '100%', display: 'none' },\n onclick: () => {\n useCommandStore().execute('Comfy.ExportWorkflowAPI')\n }\n }),\n $el('button', {\n id: 'comfy-load-button',\n textContent: 'Load',\n onclick: () => fileInput.click()\n }),\n $el('button', {\n id: 'comfy-refresh-button',\n textContent: 'Refresh',\n onclick: () => app.refreshComboInNodes()\n }),\n $el('button', {\n id: 'comfy-clipspace-button',\n textContent: 'Clipspace',\n // @ts-expect-error Move to ComfyApp\n onclick: () => app.openClipspace()\n }),\n $el('button', {\n id: 'comfy-clear-button',\n textContent: 'Clear',\n onclick: () => {\n if (\n !useSettingStore().get('Comfy.ConfirmClear') ||\n confirm('Clear workflow?')\n ) {\n app.clean()\n app.graph.clear()\n app.resetView()\n api.dispatchEvent(new CustomEvent('graphCleared'))\n }\n }\n }),\n $el('button', {\n id: 'comfy-load-default-button',\n textContent: 'Load Default',\n onclick: async () => {\n if (\n !useSettingStore().get('Comfy.ConfirmClear') ||\n confirm('Load default workflow?')\n ) {\n app.resetView()\n await app.loadGraphData()\n }\n }\n }),\n $el('button', {\n id: 'comfy-reset-view-button',\n textContent: 'Reset View',\n onclick: async () => {\n app.resetView()\n }\n })\n ]) as HTMLDivElement\n\n this.restoreMenuPosition = dragElement(this.menuContainer, this.settings)\n\n this.setStatus({ exec_info: { queue_remaining: 'X' } })\n }\n\n setStatus(status) {\n this.queueSize.textContent =\n 'Queue size: ' + (status ? status.exec_info.queue_remaining : 'ERR')\n if (status) {\n if (\n this.lastQueueSize != 0 &&\n status.exec_info.queue_remaining == 0 &&\n this.autoQueueEnabled &&\n (this.autoQueueMode === 'instant' || this.graphHasChanged) &&\n !app.lastExecutionError\n ) {\n app.queuePrompt(0, this.batchCount)\n status.exec_info.queue_remaining += this.batchCount\n this.graphHasChanged = false\n }\n this.lastQueueSize = status.exec_info.queue_remaining\n }\n }\n}\n","// @ts-strict-ignore\nimport { $el, ComfyDialog } from './ui'\nimport { api } from './api'\nimport type { ComfyApp } from './app'\nimport { useToastStore } from '@/stores/toastStore'\n\n$el('style', {\n textContent: `\n .comfy-logging-logs {\n display: grid;\n color: var(--fg-color);\n white-space: pre-wrap;\n }\n .comfy-logging-log {\n display: contents;\n }\n .comfy-logging-title {\n background: var(--tr-even-bg-color);\n font-weight: bold;\n margin-bottom: 5px;\n text-align: center;\n }\n .comfy-logging-log div {\n background: var(--row-bg);\n padding: 5px;\n }\n `,\n parent: document.body\n})\n\n// Stringify function supporting max depth and removal of circular references\n// https://stackoverflow.com/a/57193345\nfunction stringify(val, depth, replacer, space, onGetObjID?) {\n depth = isNaN(+depth) ? 1 : depth\n var recursMap = new WeakMap()\n function _build(val, depth, o?, a?, r?) {\n // (JSON.stringify() has it's own rules, which we respect here by using it for property iteration)\n return !val || typeof val != 'object'\n ? val\n : ((r = recursMap.has(val)),\n recursMap.set(val, true),\n (a = Array.isArray(val)),\n r\n ? (o = (onGetObjID && onGetObjID(val)) || null)\n : JSON.stringify(val, function (k, v) {\n if (a || depth > 0) {\n if (replacer) v = replacer(k, v)\n if (!k) return (a = Array.isArray(v)), (val = v)\n !o && (o = a ? [] : {})\n o[k] = _build(v, a ? depth : depth - 1)\n }\n }),\n o === void 0 ? (a ? [] : {}) : o)\n }\n return JSON.stringify(_build(val, depth), null, space)\n}\n\nconst jsonReplacer = (k, v, ui) => {\n if (v instanceof Array && v.length === 1) {\n v = v[0]\n }\n if (v instanceof Date) {\n v = v.toISOString()\n if (ui) {\n v = v.split('T')[1]\n }\n }\n if (v instanceof Error) {\n let err = ''\n if (v.name) err += v.name + '\\n'\n if (v.message) err += v.message + '\\n'\n if (v.stack) err += v.stack + '\\n'\n if (!err) {\n err = v.toString()\n }\n v = err\n }\n return v\n}\n\nconst fileInput: HTMLInputElement = $el('input', {\n type: 'file',\n accept: '.json',\n style: { display: 'none' },\n parent: document.body\n}) as HTMLInputElement\n\nclass ComfyLoggingDialog extends ComfyDialog {\n logging: any\n\n constructor(logging) {\n super()\n this.logging = logging\n }\n\n clear() {\n this.logging.clear()\n this.show()\n }\n\n export() {\n const blob = new Blob(\n [stringify([...this.logging.entries], 20, jsonReplacer, '\\t')],\n {\n type: 'application/json'\n }\n )\n const url = URL.createObjectURL(blob)\n const a = $el('a', {\n href: url,\n download: `comfyui-logs-${Date.now()}.json`,\n style: { display: 'none' },\n parent: document.body\n })\n a.click()\n setTimeout(function () {\n a.remove()\n window.URL.revokeObjectURL(url)\n }, 0)\n }\n\n import() {\n fileInput.onchange = () => {\n const reader = new FileReader()\n reader.onload = () => {\n fileInput.remove()\n try {\n const obj = JSON.parse(reader.result as string)\n if (obj instanceof Array) {\n this.show(obj)\n } else {\n throw new Error('Invalid file selected.')\n }\n } catch (error) {\n useToastStore().addAlert('Unable to load logs: ' + error.message)\n }\n }\n reader.readAsText(fileInput.files[0])\n }\n fileInput.click()\n }\n\n createButtons() {\n return [\n $el('button', {\n type: 'button',\n textContent: 'Clear',\n onclick: () => this.clear()\n }),\n $el('button', {\n type: 'button',\n textContent: 'Export logs...',\n onclick: () => this.export()\n }),\n $el('button', {\n type: 'button',\n textContent: 'View exported logs...',\n onclick: () => this.import()\n }),\n ...super.createButtons()\n ]\n }\n\n getTypeColor(type) {\n switch (type) {\n case 'error':\n return 'red'\n case 'warn':\n return 'orange'\n case 'debug':\n return 'dodgerblue'\n }\n }\n\n show(entries?: any[]) {\n if (!entries) entries = this.logging.entries\n this.element.style.width = '100%'\n const cols = {\n source: 'Source',\n type: 'Type',\n timestamp: 'Timestamp',\n message: 'Message'\n }\n const keys = Object.keys(cols)\n const headers = Object.values(cols).map((title) =>\n $el('div.comfy-logging-title', {\n textContent: title\n })\n )\n const rows = entries.map((entry, i) => {\n return $el(\n 'div.comfy-logging-log',\n {\n $: (el) =>\n el.style.setProperty(\n '--row-bg',\n `var(--tr-${i % 2 ? 'even' : 'odd'}-bg-color)`\n )\n },\n keys.map((key) => {\n let v = entry[key]\n let color\n if (key === 'type') {\n color = this.getTypeColor(v)\n } else {\n v = jsonReplacer(key, v, true)\n\n if (typeof v === 'object') {\n v = stringify(v, 5, jsonReplacer, ' ')\n }\n }\n\n return $el('div', {\n style: {\n color\n },\n textContent: v\n })\n })\n )\n })\n\n const grid = $el(\n 'div.comfy-logging-logs',\n {\n style: {\n gridTemplateColumns: `repeat(${headers.length}, 1fr)`\n }\n },\n [...headers, ...rows]\n )\n const els = [grid]\n if (!this.logging.enabled) {\n els.unshift(\n $el('h3', {\n style: { textAlign: 'center' },\n textContent: 'Logging is disabled'\n })\n )\n }\n super.show($el('div', els))\n }\n}\n\nexport class ComfyLogging {\n /**\n * @type Array<{ source: string, type: string, timestamp: Date, message: any }>\n */\n entries = []\n\n #enabled\n #console = {}\n\n app: ComfyApp\n dialog: ComfyLoggingDialog\n\n get enabled() {\n return this.#enabled\n }\n\n set enabled(value) {\n if (value === this.#enabled) return\n if (value) {\n this.patchConsole()\n } else {\n this.unpatchConsole()\n }\n this.#enabled = value\n }\n\n constructor(app) {\n this.app = app\n\n this.dialog = new ComfyLoggingDialog(this)\n this.addSetting()\n this.catchUnhandled()\n this.addInitData()\n }\n\n addSetting() {\n const settingId = 'Comfy.Logging.Enabled'\n const htmlSettingId = settingId.replaceAll('.', '-')\n const setting = this.app.ui.settings.addSetting({\n id: settingId,\n name: 'Enable logging',\n defaultValue: true,\n onChange: (value) => {\n this.enabled = value\n },\n type: (name, setter, value) => {\n return $el('tr', [\n $el('td', [\n $el('label', {\n textContent: 'Logging',\n for: htmlSettingId\n })\n ]),\n $el('td', [\n $el('input', {\n id: htmlSettingId,\n type: 'checkbox',\n checked: value,\n onchange: (event) => {\n setter(event.target.checked)\n }\n }),\n $el('button', {\n textContent: 'View Logs',\n onclick: () => {\n this.app.ui.settings.element.close()\n this.dialog.show()\n },\n style: {\n fontSize: '14px',\n display: 'block',\n marginTop: '5px'\n }\n })\n ])\n ])\n }\n })\n this.enabled = setting.value\n }\n\n patchConsole() {\n // Capture common console outputs\n const self = this\n for (const type of ['log', 'warn', 'error', 'debug']) {\n const orig = console[type]\n this.#console[type] = orig\n console[type] = function () {\n orig.apply(console, arguments)\n self.addEntry('console', type, ...arguments)\n }\n }\n }\n\n unpatchConsole() {\n // Restore original console functions\n for (const type of Object.keys(this.#console)) {\n console[type] = this.#console[type]\n }\n this.#console = {}\n }\n\n catchUnhandled() {\n // Capture uncaught errors\n window.addEventListener('error', (e) => {\n this.addEntry('window', 'error', e.error ?? 'Unknown error')\n return false\n })\n\n window.addEventListener('unhandledrejection', (e) => {\n this.addEntry('unhandledrejection', 'error', e.reason ?? 'Unknown error')\n })\n }\n\n clear() {\n this.entries = []\n }\n\n addEntry(source, type, ...args) {\n if (this.enabled) {\n this.entries.push({\n source,\n type,\n timestamp: new Date(),\n message: args\n })\n }\n }\n\n log(source, ...args) {\n this.addEntry(source, 'log', ...args)\n }\n\n async addInitData() {\n if (!this.enabled) return\n const source = 'ComfyUI.Logging'\n this.addEntry(source, 'debug', { UserAgent: navigator.userAgent })\n }\n}\n","var BadgePosition = /* @__PURE__ */ ((BadgePosition2) => {\n BadgePosition2[\"TopLeft\"] = \"top-left\";\n BadgePosition2[\"TopRight\"] = \"top-right\";\n return BadgePosition2;\n})(BadgePosition || {});\nclass LGraphBadge {\n text;\n fgColor;\n bgColor;\n fontSize;\n padding;\n height;\n cornerRadius;\n constructor({\n text,\n fgColor = \"white\",\n bgColor = \"#0F1F0F\",\n fontSize = 12,\n padding = 6,\n height = 20,\n cornerRadius = 5\n }) {\n this.text = text;\n this.fgColor = fgColor;\n this.bgColor = bgColor;\n this.fontSize = fontSize;\n this.padding = padding;\n this.height = height;\n this.cornerRadius = cornerRadius;\n }\n get visible() {\n return this.text.length > 0;\n }\n getWidth(ctx) {\n if (!this.visible) return 0;\n ctx.save();\n ctx.font = `${this.fontSize}px sans-serif`;\n const textWidth = ctx.measureText(this.text).width;\n ctx.restore();\n return textWidth + this.padding * 2;\n }\n draw(ctx, x2, y2) {\n if (!this.visible) return;\n ctx.save();\n ctx.font = `${this.fontSize}px sans-serif`;\n const badgeWidth = this.getWidth(ctx);\n const badgeX = 0;\n ctx.fillStyle = this.bgColor;\n ctx.beginPath();\n if (ctx.roundRect) {\n ctx.roundRect(x2 + badgeX, y2, badgeWidth, this.height, this.cornerRadius);\n } else {\n ctx.rect(x2 + badgeX, y2, badgeWidth, this.height);\n }\n ctx.fill();\n ctx.fillStyle = this.fgColor;\n ctx.fillText(\n this.text,\n x2 + badgeX + this.padding,\n y2 + this.height - this.padding\n );\n ctx.restore();\n }\n}\nvar RenderShape = /* @__PURE__ */ ((RenderShape2) => {\n RenderShape2[RenderShape2[\"BOX\"] = 1] = \"BOX\";\n RenderShape2[RenderShape2[\"ROUND\"] = 2] = \"ROUND\";\n RenderShape2[RenderShape2[\"CIRCLE\"] = 3] = \"CIRCLE\";\n RenderShape2[RenderShape2[\"CARD\"] = 4] = \"CARD\";\n RenderShape2[RenderShape2[\"ARROW\"] = 5] = \"ARROW\";\n RenderShape2[RenderShape2[\"GRID\"] = 6] = \"GRID\";\n RenderShape2[RenderShape2[\"HollowCircle\"] = 7] = \"HollowCircle\";\n return RenderShape2;\n})(RenderShape || {});\nvar LinkDirection = /* @__PURE__ */ ((LinkDirection2) => {\n LinkDirection2[LinkDirection2[\"NONE\"] = 0] = \"NONE\";\n LinkDirection2[LinkDirection2[\"UP\"] = 1] = \"UP\";\n LinkDirection2[LinkDirection2[\"DOWN\"] = 2] = \"DOWN\";\n LinkDirection2[LinkDirection2[\"LEFT\"] = 3] = \"LEFT\";\n LinkDirection2[LinkDirection2[\"RIGHT\"] = 4] = \"RIGHT\";\n LinkDirection2[LinkDirection2[\"CENTER\"] = 5] = \"CENTER\";\n return LinkDirection2;\n})(LinkDirection || {});\nfunction distance(a, b) {\n return Math.sqrt(\n (b[0] - a[0]) * (b[0] - a[0]) + (b[1] - a[1]) * (b[1] - a[1])\n );\n}\nfunction isPointInRectangle(point, rect) {\n return rect[0] < point[0] && rect[0] + rect[2] > point[0] && rect[1] < point[1] && rect[1] + rect[3] > point[1];\n}\nfunction isInsideRectangle(x2, y2, left, top, width2, height) {\n return left < x2 && left + width2 > x2 && top < y2 && top + height > y2;\n}\nfunction overlapBounding(a, b) {\n const aRight = a[0] + a[2];\n const aBottom = a[1] + a[3];\n const bRight = b[0] + b[2];\n const bBottom = b[1] + b[3];\n return a[0] > bRight || a[1] > bBottom || aRight < b[0] || aBottom < b[1] ? false : true;\n}\nclass LLink {\n /** Link ID */\n id;\n type;\n /** Output node ID */\n origin_id;\n /** Output slot index */\n origin_slot;\n /** Input node ID */\n target_id;\n /** Input slot index */\n target_slot;\n data;\n _data;\n _pos;\n _last_time;\n path;\n #color;\n /** Custom colour for this link only */\n get color() {\n return this.#color;\n }\n set color(value) {\n this.#color = value === \"\" ? null : value;\n }\n constructor(id, type, origin_id, origin_slot, target_id, target_slot) {\n this.id = id;\n this.type = type;\n this.origin_id = origin_id;\n this.origin_slot = origin_slot;\n this.target_id = target_id;\n this.target_slot = target_slot;\n this._data = null;\n this._pos = new Float32Array(2);\n }\n configure(o) {\n if (Array.isArray(o)) {\n this.id = o[0];\n this.origin_id = o[1];\n this.origin_slot = o[2];\n this.target_id = o[3];\n this.target_slot = o[4];\n this.type = o[5];\n } else {\n this.id = o.id;\n this.type = o.type;\n this.origin_id = o.origin_id;\n this.origin_slot = o.origin_slot;\n this.target_id = o.target_id;\n this.target_slot = o.target_slot;\n }\n }\n serialize() {\n return [\n this.id,\n this.origin_id,\n this.origin_slot,\n this.target_id,\n this.target_slot,\n this.type\n ];\n }\n}\nclass LGraphNode {\n // Static properties used by dynamic child classes\n static title;\n static MAX_CONSOLE;\n static type;\n static category;\n static supported_extensions;\n static filter;\n static skip_list;\n title;\n graph;\n id;\n type;\n inputs;\n outputs;\n // Not used\n connections;\n properties;\n properties_info;\n flags;\n widgets;\n size;\n pos;\n _pos;\n locked;\n // Execution order, automatically computed during run\n order;\n mode;\n last_serialization;\n serialize_widgets;\n color;\n bgcolor;\n boxcolor;\n shape;\n exec_version;\n action_call;\n execute_triggered;\n action_triggered;\n widgets_up;\n widgets_start_y;\n lostFocusAt;\n gotFocusAt;\n badges;\n badgePosition;\n _collapsed_width;\n horizontal;\n console;\n _level;\n _shape;\n subgraph;\n skip_subgraph_button;\n mouseOver;\n is_selected;\n redraw_on_mouse;\n // Appears unused\n optional_inputs;\n // Appears unused\n optional_outputs;\n resizable;\n clonable;\n _relative_id;\n clip_area;\n ignore_remove;\n has_errors;\n removable;\n block_delete;\n constructor(title) {\n this._ctor(title);\n }\n _ctor(title) {\n this.title = title || \"Unnamed\";\n this.size = [LiteGraph.NODE_WIDTH, 60];\n this.graph = null;\n this._pos = new Float32Array([10, 10]);\n Object.defineProperty(this, \"pos\", {\n set: function(v2) {\n if (!v2 || v2.length < 2) {\n return;\n }\n this._pos[0] = v2[0];\n this._pos[1] = v2[1];\n },\n get: function() {\n return this._pos;\n },\n enumerable: true\n });\n if (LiteGraph.use_uuids) {\n this.id = LiteGraph.uuidv4();\n } else {\n this.id = -1;\n }\n this.type = null;\n this.inputs = [];\n this.outputs = [];\n this.connections = [];\n this.badges = [];\n this.badgePosition = BadgePosition.TopLeft;\n this.properties = {};\n this.properties_info = [];\n this.flags = {};\n }\n /**\n * configure a node from an object containing the serialized info\n */\n configure(info) {\n if (this.graph) {\n this.graph._version++;\n }\n for (const j in info) {\n if (j == \"properties\") {\n for (const k in info.properties) {\n this.properties[k] = info.properties[k];\n this.onPropertyChanged?.(k, info.properties[k]);\n }\n continue;\n }\n if (info[j] == null) {\n continue;\n } else if (typeof info[j] == \"object\") {\n if (this[j]?.configure) {\n this[j]?.configure(info[j]);\n } else {\n this[j] = LiteGraph.cloneObject(info[j], this[j]);\n }\n } else {\n this[j] = info[j];\n }\n }\n if (!info.title) {\n this.title = this.constructor.title;\n }\n if (this.inputs) {\n for (let i2 = 0; i2 < this.inputs.length; ++i2) {\n const input = this.inputs[i2];\n const link = this.graph ? this.graph.links[input.link] : null;\n this.onConnectionsChange?.(LiteGraph.INPUT, i2, true, link, input);\n this.onInputAdded?.(input);\n }\n }\n if (this.outputs) {\n for (let i2 = 0; i2 < this.outputs.length; ++i2) {\n const output = this.outputs[i2];\n if (!output.links) {\n continue;\n }\n for (let j = 0; j < output.links.length; ++j) {\n const link = this.graph ? this.graph.links[output.links[j]] : null;\n this.onConnectionsChange?.(LiteGraph.OUTPUT, i2, true, link, output);\n }\n this.onOutputAdded?.(output);\n }\n }\n if (this.widgets) {\n for (let i2 = 0; i2 < this.widgets.length; ++i2) {\n const w2 = this.widgets[i2];\n if (!w2)\n continue;\n if (w2.options?.property && this.properties[w2.options.property] != void 0)\n w2.value = JSON.parse(JSON.stringify(this.properties[w2.options.property]));\n }\n if (info.widgets_values) {\n for (let i2 = 0; i2 < info.widgets_values.length; ++i2) {\n if (this.widgets[i2]) {\n this.widgets[i2].value = info.widgets_values[i2];\n }\n }\n }\n }\n if (this.pinned) this.pin(true);\n this.onConfigure?.(info);\n }\n /**\n * serialize the content\n */\n serialize() {\n const o = {\n id: this.id,\n type: this.type,\n pos: this.pos,\n size: this.size,\n flags: LiteGraph.cloneObject(this.flags),\n order: this.order,\n mode: this.mode\n };\n if (this.constructor === LGraphNode && this.last_serialization)\n return this.last_serialization;\n if (this.inputs) o.inputs = this.inputs;\n if (this.outputs) {\n for (let i2 = 0; i2 < this.outputs.length; i2++) {\n delete this.outputs[i2]._data;\n }\n o.outputs = this.outputs;\n }\n if (this.title && this.title != this.constructor.title) o.title = this.title;\n if (this.properties) o.properties = LiteGraph.cloneObject(this.properties);\n if (this.widgets && this.serialize_widgets) {\n o.widgets_values = [];\n for (let i2 = 0; i2 < this.widgets.length; ++i2) {\n if (this.widgets[i2])\n o.widgets_values[i2] = this.widgets[i2].value;\n else\n o.widgets_values[i2] = null;\n }\n }\n if (!o.type) o.type = this.constructor.type;\n if (this.color) o.color = this.color;\n if (this.bgcolor) o.bgcolor = this.bgcolor;\n if (this.boxcolor) o.boxcolor = this.boxcolor;\n if (this.shape) o.shape = this.shape;\n if (this.onSerialize?.(o)) console.warn(\"node onSerialize shouldnt return anything, data should be stored in the object pass in the first parameter\");\n return o;\n }\n /* Creates a clone of this node */\n clone() {\n const node2 = LiteGraph.createNode(this.type);\n if (!node2) return null;\n const data = LiteGraph.cloneObject(this.serialize());\n if (data.inputs) {\n for (let i2 = 0; i2 < data.inputs.length; ++i2) {\n data.inputs[i2].link = null;\n }\n }\n if (data.outputs) {\n for (let i2 = 0; i2 < data.outputs.length; ++i2) {\n if (data.outputs[i2].links) {\n data.outputs[i2].links.length = 0;\n }\n }\n }\n delete data.id;\n if (LiteGraph.use_uuids) data.id = LiteGraph.uuidv4();\n node2.configure(data);\n return node2;\n }\n /**\n * serialize and stringify\n */\n toString() {\n return JSON.stringify(this.serialize());\n }\n /**\n * get the title string\n */\n getTitle() {\n return this.title || this.constructor.title;\n }\n /**\n * sets the value of a property\n * @param {String} name\n * @param {*} value\n */\n setProperty(name, value) {\n this.properties ||= {};\n if (value === this.properties[name])\n return;\n const prev_value = this.properties[name];\n this.properties[name] = value;\n if (this.onPropertyChanged?.(name, value, prev_value) === false)\n this.properties[name] = prev_value;\n if (this.widgets)\n for (let i2 = 0; i2 < this.widgets.length; ++i2) {\n const w2 = this.widgets[i2];\n if (!w2)\n continue;\n if (w2.options.property == name) {\n w2.value = value;\n break;\n }\n }\n }\n /**\n * sets the output data\n * @param {number} slot\n * @param {*} data\n */\n setOutputData(slot, data) {\n if (!this.outputs) return;\n if (slot == -1 || slot >= this.outputs.length) return;\n const output_info = this.outputs[slot];\n if (!output_info) return;\n output_info._data = data;\n if (this.outputs[slot].links) {\n for (let i2 = 0; i2 < this.outputs[slot].links.length; i2++) {\n const link_id = this.outputs[slot].links[i2];\n const link = this.graph.links[link_id];\n if (link)\n link.data = data;\n }\n }\n }\n /**\n * sets the output data type, useful when you want to be able to overwrite the data type\n * @param {number} slot\n * @param {String} datatype\n */\n setOutputDataType(slot, type) {\n if (!this.outputs) return;\n if (slot == -1 || slot >= this.outputs.length) return;\n const output_info = this.outputs[slot];\n if (!output_info) return;\n output_info.type = type;\n if (this.outputs[slot].links) {\n for (let i2 = 0; i2 < this.outputs[slot].links.length; i2++) {\n const link_id = this.outputs[slot].links[i2];\n this.graph.links[link_id].type = type;\n }\n }\n }\n /**\n * Retrieves the input data (data traveling through the connection) from one slot\n * @param {number} slot\n * @param {boolean} force_update if set to true it will force the connected node of this slot to output data into this link\n * @return {*} data or if it is not connected returns undefined\n */\n getInputData(slot, force_update) {\n if (!this.inputs) return;\n if (slot >= this.inputs.length || this.inputs[slot].link == null) return;\n const link_id = this.inputs[slot].link;\n const link = this.graph.links[link_id];\n if (!link) return null;\n if (!force_update) return link.data;\n const node2 = this.graph.getNodeById(link.origin_id);\n if (!node2) return link.data;\n if (node2.updateOutputData) {\n node2.updateOutputData(link.origin_slot);\n } else {\n node2.onExecute?.();\n }\n return link.data;\n }\n /**\n * Retrieves the input data type (in case this supports multiple input types)\n * @param {number} slot\n * @return {String} datatype in string format\n */\n getInputDataType(slot) {\n if (!this.inputs) return null;\n if (slot >= this.inputs.length || this.inputs[slot].link == null) return null;\n const link_id = this.inputs[slot].link;\n const link = this.graph.links[link_id];\n if (!link) return null;\n const node2 = this.graph.getNodeById(link.origin_id);\n if (!node2) return link.type;\n const output_info = node2.outputs[link.origin_slot];\n return output_info ? output_info.type : null;\n }\n /**\n * Retrieves the input data from one slot using its name instead of slot number\n * @param {String} slot_name\n * @param {boolean} force_update if set to true it will force the connected node of this slot to output data into this link\n * @return {*} data or if it is not connected returns null\n */\n getInputDataByName(slot_name, force_update) {\n const slot = this.findInputSlot(slot_name);\n return slot == -1 ? null : this.getInputData(slot, force_update);\n }\n /**\n * tells you if there is a connection in one input slot\n * @param {number} slot\n * @return {boolean}\n */\n isInputConnected(slot) {\n if (!this.inputs) return false;\n return slot < this.inputs.length && this.inputs[slot].link != null;\n }\n /**\n * tells you info about an input connection (which node, type, etc)\n * @param {number} slot\n * @return {Object} object or null { link: id, name: string, type: string or 0 }\n */\n getInputInfo(slot) {\n return !this.inputs || !(slot < this.inputs.length) ? null : this.inputs[slot];\n }\n /**\n * Returns the link info in the connection of an input slot\n * @param {number} slot\n * @return {LLink} object or null\n */\n getInputLink(slot) {\n if (!this.inputs) return null;\n if (slot < this.inputs.length) {\n const slot_info = this.inputs[slot];\n return this.graph.links[slot_info.link];\n }\n return null;\n }\n /**\n * returns the node connected in the input slot\n * @param {number} slot\n * @return {LGraphNode} node or null\n */\n getInputNode(slot) {\n if (!this.inputs) return null;\n if (slot >= this.inputs.length) return null;\n const input = this.inputs[slot];\n if (!input || input.link === null) return null;\n const link_info = this.graph.links[input.link];\n if (!link_info) return null;\n return this.graph.getNodeById(link_info.origin_id);\n }\n /**\n * returns the value of an input with this name, otherwise checks if there is a property with that name\n * @param {string} name\n * @return {*} value\n */\n getInputOrProperty(name) {\n if (!this.inputs || !this.inputs.length) {\n return this.properties ? this.properties[name] : null;\n }\n for (let i2 = 0, l = this.inputs.length; i2 < l; ++i2) {\n const input_info = this.inputs[i2];\n if (name == input_info.name && input_info.link != null) {\n const link = this.graph.links[input_info.link];\n if (link) return link.data;\n }\n }\n return this.properties[name];\n }\n /**\n * tells you the last output data that went in that slot\n * @param {number} slot\n * @return {Object} object or null\n */\n getOutputData(slot) {\n if (!this.outputs) return null;\n if (slot >= this.outputs.length) return null;\n const info = this.outputs[slot];\n return info._data;\n }\n /**\n * tells you info about an output connection (which node, type, etc)\n * @param {number} slot\n * @return {Object} object or null { name: string, type: string, links: [ ids of links in number ] }\n */\n getOutputInfo(slot) {\n return !this.outputs || !(slot < this.outputs.length) ? null : this.outputs[slot];\n }\n /**\n * tells you if there is a connection in one output slot\n * @param {number} slot\n * @return {boolean}\n */\n isOutputConnected(slot) {\n if (!this.outputs) return false;\n return slot < this.outputs.length && this.outputs[slot].links?.length > 0;\n }\n /**\n * tells you if there is any connection in the output slots\n * @return {boolean}\n */\n isAnyOutputConnected() {\n if (!this.outputs) return false;\n for (let i2 = 0; i2 < this.outputs.length; ++i2) {\n if (this.outputs[i2].links && this.outputs[i2].links.length) {\n return true;\n }\n }\n return false;\n }\n /**\n * retrieves all the nodes connected to this output slot\n * @param {number} slot\n * @return {array}\n */\n getOutputNodes(slot) {\n if (!this.outputs || this.outputs.length == 0) return null;\n if (slot >= this.outputs.length) return null;\n const output = this.outputs[slot];\n if (!output.links || output.links.length == 0) return null;\n const r = [];\n for (let i2 = 0; i2 < output.links.length; i2++) {\n const link_id = output.links[i2];\n const link = this.graph.links[link_id];\n if (link) {\n const target_node = this.graph.getNodeById(link.target_id);\n if (target_node) {\n r.push(target_node);\n }\n }\n }\n return r;\n }\n addOnTriggerInput() {\n const trigS = this.findInputSlot(\"onTrigger\");\n if (trigS == -1) {\n //!trigS || \n this.addInput(\"onTrigger\", LiteGraph.EVENT, { optional: true, nameLocked: true });\n return this.findInputSlot(\"onTrigger\");\n }\n return trigS;\n }\n addOnExecutedOutput() {\n const trigS = this.findOutputSlot(\"onExecuted\");\n if (trigS == -1) {\n //!trigS || \n this.addOutput(\"onExecuted\", LiteGraph.ACTION, { optional: true, nameLocked: true });\n return this.findOutputSlot(\"onExecuted\");\n }\n return trigS;\n }\n onAfterExecuteNode(param, options) {\n const trigS = this.findOutputSlot(\"onExecuted\");\n if (trigS != -1) {\n this.triggerSlot(trigS, param, null, options);\n }\n }\n changeMode(modeTo) {\n switch (modeTo) {\n case LiteGraph.ON_EVENT:\n break;\n case LiteGraph.ON_TRIGGER:\n this.addOnTriggerInput();\n this.addOnExecutedOutput();\n break;\n case LiteGraph.NEVER:\n break;\n case LiteGraph.ALWAYS:\n break;\n case LiteGraph.ON_REQUEST:\n break;\n default:\n return false;\n }\n this.mode = modeTo;\n return true;\n }\n /**\n * Triggers the node code execution, place a boolean/counter to mark the node as being executed\n * @param {*} param\n * @param {*} options\n */\n doExecute(param, options) {\n options = options || {};\n if (this.onExecute) {\n options.action_call ||= this.id + \"_exec_\" + Math.floor(Math.random() * 9999);\n this.graph.nodes_executing[this.id] = true;\n this.onExecute(param, options);\n this.graph.nodes_executing[this.id] = false;\n this.exec_version = this.graph.iteration;\n if (options?.action_call) {\n this.action_call = options.action_call;\n this.graph.nodes_executedAction[this.id] = options.action_call;\n }\n }\n this.execute_triggered = 2;\n this.onAfterExecuteNode?.(param, options);\n }\n /**\n * Triggers an action, wrapped by logics to control execution flow\n * @param {String} action name\n * @param {*} param\n */\n actionDo(action, param, options) {\n options = options || {};\n if (this.onAction) {\n options.action_call ||= this.id + \"_\" + (action ? action : \"action\") + \"_\" + Math.floor(Math.random() * 9999);\n this.graph.nodes_actioning[this.id] = action ? action : \"actioning\";\n this.onAction(action, param, options);\n this.graph.nodes_actioning[this.id] = false;\n if (options?.action_call) {\n this.action_call = options.action_call;\n this.graph.nodes_executedAction[this.id] = options.action_call;\n }\n }\n this.action_triggered = 2;\n this.onAfterExecuteNode?.(param, options);\n }\n /**\n * Triggers an event in this node, this will trigger any output with the same name\n * @param {String} event name ( \"on_play\", ... ) if action is equivalent to false then the event is send to all\n * @param {*} param\n */\n trigger(action, param, options) {\n if (!this.outputs || !this.outputs.length) {\n return;\n }\n if (this.graph)\n this.graph._last_trigger_time = LiteGraph.getTime();\n for (let i2 = 0; i2 < this.outputs.length; ++i2) {\n const output = this.outputs[i2];\n if (!output || output.type !== LiteGraph.EVENT || action && output.name != action)\n continue;\n this.triggerSlot(i2, param, null, options);\n }\n }\n /**\n * Triggers a slot event in this node: cycle output slots and launch execute/action on connected nodes\n * @param {Number} slot the index of the output slot\n * @param {*} param\n * @param {Number} link_id [optional] in case you want to trigger and specific output link in a slot\n */\n triggerSlot(slot, param, link_id, options) {\n options = options || {};\n if (!this.outputs) return;\n if (slot == null) {\n console.error(\"slot must be a number\");\n return;\n }\n if (typeof slot !== \"number\")\n console.warn(\"slot must be a number, use node.trigger('name') if you want to use a string\");\n const output = this.outputs[slot];\n if (!output) return;\n const links = output.links;\n if (!links || !links.length) return;\n if (this.graph)\n this.graph._last_trigger_time = LiteGraph.getTime();\n for (let k = 0; k < links.length; ++k) {\n const id = links[k];\n if (link_id != null && link_id != id) continue;\n const link_info = this.graph.links[links[k]];\n if (!link_info) continue;\n link_info._last_time = LiteGraph.getTime();\n const node2 = this.graph.getNodeById(link_info.target_id);\n if (!node2) continue;\n if (node2.mode === LiteGraph.ON_TRIGGER) {\n if (!options.action_call) options.action_call = this.id + \"_trigg_\" + Math.floor(Math.random() * 9999);\n node2.doExecute?.(param, options);\n } else if (node2.onAction) {\n if (!options.action_call) options.action_call = this.id + \"_act_\" + Math.floor(Math.random() * 9999);\n const target_connection = node2.inputs[link_info.target_slot];\n node2.actionDo(target_connection.name, param, options);\n }\n }\n }\n /**\n * clears the trigger slot animation\n * @param {Number} slot the index of the output slot\n * @param {Number} link_id [optional] in case you want to trigger and specific output link in a slot\n */\n clearTriggeredSlot(slot, link_id) {\n if (!this.outputs) return;\n const output = this.outputs[slot];\n if (!output) return;\n const links = output.links;\n if (!links || !links.length) return;\n for (let k = 0; k < links.length; ++k) {\n const id = links[k];\n if (link_id != null && link_id != id) continue;\n const link_info = this.graph.links[links[k]];\n if (!link_info) continue;\n link_info._last_time = 0;\n }\n }\n /**\n * changes node size and triggers callback\n * @param {vec2} size\n */\n setSize(size) {\n this.size = size;\n this.onResize?.(this.size);\n }\n /**\n * add a new property to this node\n * @param {string} name\n * @param {*} default_value\n * @param {string} type string defining the output type (\"vec3\",\"number\",...)\n * @param {Object} extra_info this can be used to have special properties of the property (like values, etc)\n */\n addProperty(name, default_value, type, extra_info) {\n const o = { name, type, default_value };\n if (extra_info) {\n for (const i2 in extra_info) {\n o[i2] = extra_info[i2];\n }\n }\n this.properties_info ||= [];\n this.properties_info.push(o);\n this.properties ||= {};\n this.properties[name] = default_value;\n return o;\n }\n /**\n * add a new output slot to use in this node\n * @param {string} name\n * @param {string} type string defining the output type (\"vec3\",\"number\",...)\n * @param {Object} extra_info this can be used to have special properties of an output (label, special color, position, etc)\n */\n addOutput(name, type, extra_info) {\n const output = { name, type, links: null };\n if (extra_info) {\n for (const i2 in extra_info) {\n output[i2] = extra_info[i2];\n }\n }\n this.outputs ||= [];\n this.outputs.push(output);\n this.onOutputAdded?.(output);\n if (LiteGraph.auto_load_slot_types) LiteGraph.registerNodeAndSlotType(this, type, true);\n this.setSize(this.computeSize());\n this.setDirtyCanvas(true, true);\n return output;\n }\n /**\n * add a new output slot to use in this node\n * @param {Array} array of triplets like [[name,type,extra_info],[...]]\n */\n addOutputs(array) {\n for (let i2 = 0; i2 < array.length; ++i2) {\n const info = array[i2];\n const o = { name: info[0], type: info[1], link: null };\n if (array[2]) {\n for (const j in info[2]) {\n o[j] = info[2][j];\n }\n }\n this.outputs ||= [];\n this.outputs.push(o);\n this.onOutputAdded?.(o);\n if (LiteGraph.auto_load_slot_types) LiteGraph.registerNodeAndSlotType(this, info[1], true);\n }\n this.setSize(this.computeSize());\n this.setDirtyCanvas(true, true);\n }\n /**\n * remove an existing output slot\n * @param {number} slot\n */\n removeOutput(slot) {\n this.disconnectOutput(slot);\n this.outputs.splice(slot, 1);\n for (let i2 = slot; i2 < this.outputs.length; ++i2) {\n if (!this.outputs[i2] || !this.outputs[i2].links)\n continue;\n const links = this.outputs[i2].links;\n for (let j = 0; j < links.length; ++j) {\n const link = this.graph.links[links[j]];\n if (!link) continue;\n link.origin_slot -= 1;\n }\n }\n this.setSize(this.computeSize());\n this.onOutputRemoved?.(slot);\n this.setDirtyCanvas(true, true);\n }\n /**\n * add a new input slot to use in this node\n * @param {string} name\n * @param {string} type string defining the input type (\"vec3\",\"number\",...), it its a generic one use 0\n * @param {Object} extra_info this can be used to have special properties of an input (label, color, position, etc)\n */\n addInput(name, type, extra_info) {\n type = type || 0;\n const input = { name, type, link: null };\n if (extra_info) {\n for (const i2 in extra_info) {\n input[i2] = extra_info[i2];\n }\n }\n this.inputs ||= [];\n this.inputs.push(input);\n this.setSize(this.computeSize());\n this.onInputAdded?.(input);\n LiteGraph.registerNodeAndSlotType(this, type);\n this.setDirtyCanvas(true, true);\n return input;\n }\n /**\n * add several new input slots in this node\n * @param {Array} array of triplets like [[name,type,extra_info],[...]]\n */\n addInputs(array) {\n for (let i2 = 0; i2 < array.length; ++i2) {\n const info = array[i2];\n const o = { name: info[0], type: info[1], link: null };\n if (array[2]) {\n for (const j in info[2]) {\n o[j] = info[2][j];\n }\n }\n this.inputs ||= [];\n this.inputs.push(o);\n this.onInputAdded?.(o);\n LiteGraph.registerNodeAndSlotType(this, info[1]);\n }\n this.setSize(this.computeSize());\n this.setDirtyCanvas(true, true);\n }\n /**\n * remove an existing input slot\n * @param {number} slot\n */\n removeInput(slot) {\n this.disconnectInput(slot);\n const slot_info = this.inputs.splice(slot, 1);\n for (let i2 = slot; i2 < this.inputs.length; ++i2) {\n if (!this.inputs[i2]) continue;\n const link = this.graph.links[this.inputs[i2].link];\n if (!link) continue;\n link.target_slot -= 1;\n }\n this.setSize(this.computeSize());\n this.onInputRemoved?.(slot, slot_info[0]);\n this.setDirtyCanvas(true, true);\n }\n /**\n * add an special connection to this node (used for special kinds of graphs)\n * @param {string} name\n * @param {string} type string defining the input type (\"vec3\",\"number\",...)\n * @param {[x,y]} pos position of the connection inside the node\n * @param {string} direction if is input or output\n */\n addConnection(name, type, pos2, direction) {\n const o = {\n name,\n type,\n pos: pos2,\n direction,\n links: null\n };\n this.connections.push(o);\n return o;\n }\n /**\n * computes the minimum size of a node according to its inputs and output slots\n * @param out\n * @return the total size\n */\n computeSize(out) {\n const ctorSize = this.constructor.size;\n if (ctorSize) return [ctorSize[0], ctorSize[1]];\n let rows = Math.max(\n this.inputs ? this.inputs.length : 1,\n this.outputs ? this.outputs.length : 1\n );\n const size = out || new Float32Array([0, 0]);\n rows = Math.max(rows, 1);\n const font_size = LiteGraph.NODE_TEXT_SIZE;\n const title_width = compute_text_size(this.title);\n let input_width = 0;\n let output_width = 0;\n if (this.inputs) {\n for (let i2 = 0, l = this.inputs.length; i2 < l; ++i2) {\n const input = this.inputs[i2];\n const text = input.label || input.name || \"\";\n const text_width = compute_text_size(text);\n if (input_width < text_width)\n input_width = text_width;\n }\n }\n if (this.outputs) {\n for (let i2 = 0, l = this.outputs.length; i2 < l; ++i2) {\n const output = this.outputs[i2];\n const text = output.label || output.name || \"\";\n const text_width = compute_text_size(text);\n if (output_width < text_width)\n output_width = text_width;\n }\n }\n size[0] = Math.max(input_width + output_width + 10, title_width);\n size[0] = Math.max(size[0], LiteGraph.NODE_WIDTH);\n if (this.widgets?.length)\n size[0] = Math.max(size[0], LiteGraph.NODE_WIDTH * 1.5);\n size[1] = (this.constructor.slot_start_y || 0) + rows * LiteGraph.NODE_SLOT_HEIGHT;\n let widgets_height = 0;\n if (this.widgets?.length) {\n for (let i2 = 0, l = this.widgets.length; i2 < l; ++i2) {\n const widget = this.widgets[i2];\n widgets_height += widget.computeSize ? widget.computeSize(size[0])[1] + 4 : LiteGraph.NODE_WIDGET_HEIGHT + 4;\n }\n widgets_height += 8;\n }\n if (this.widgets_up)\n size[1] = Math.max(size[1], widgets_height);\n else if (this.widgets_start_y != null)\n size[1] = Math.max(size[1], widgets_height + this.widgets_start_y);\n else\n size[1] += widgets_height;\n function compute_text_size(text) {\n return text ? font_size * text.length * 0.6 : 0;\n }\n if (this.constructor.min_height && size[1] < this.constructor.min_height) {\n size[1] = this.constructor.min_height;\n }\n size[1] += 6;\n return size;\n }\n inResizeCorner(canvasX, canvasY) {\n const rows = this.outputs ? this.outputs.length : 1;\n const outputs_offset = (this.constructor.slot_start_y || 0) + rows * LiteGraph.NODE_SLOT_HEIGHT;\n return isInsideRectangle(\n canvasX,\n canvasY,\n this.pos[0] + this.size[0] - 15,\n this.pos[1] + Math.max(this.size[1] - 15, outputs_offset),\n 20,\n 20\n );\n }\n /**\n * returns all the info available about a property of this node.\n *\n * @param {String} property name of the property\n * @return {Object} the object with all the available info\n */\n getPropertyInfo(property) {\n let info = null;\n if (this.properties_info) {\n for (let i2 = 0; i2 < this.properties_info.length; ++i2) {\n if (this.properties_info[i2].name == property) {\n info = this.properties_info[i2];\n break;\n }\n }\n }\n if (this.constructor[\"@\" + property])\n info = this.constructor[\"@\" + property];\n if (this.constructor.widgets_info?.[property])\n info = this.constructor.widgets_info[property];\n if (!info && this.onGetPropertyInfo) {\n info = this.onGetPropertyInfo(property);\n }\n info ||= {};\n info.type ||= typeof this.properties[property];\n if (info.widget == \"combo\")\n info.type = \"enum\";\n return info;\n }\n /**\n * Defines a widget inside the node, it will be rendered on top of the node, you can control lots of properties\n *\n * @param {String} type the widget type (could be \"number\",\"string\",\"combo\"\n * @param {String} name the text to show on the widget\n * @param {String} value the default value\n * @param {Function|String} callback function to call when it changes (optionally, it can be the name of the property to modify)\n * @param {Object} options the object that contains special properties of this widget\n * @return {Object} the created widget object\n */\n addWidget(type, name, value, callback, options) {\n this.widgets ||= [];\n if (!options && callback && typeof callback === \"object\") {\n options = callback;\n callback = null;\n }\n if (options && typeof options === \"string\")\n options = { property: options };\n if (callback && typeof callback === \"string\") {\n options ||= {};\n options.property = callback;\n callback = null;\n }\n if (callback && typeof callback !== \"function\") {\n console.warn(\"addWidget: callback must be a function\");\n callback = null;\n }\n const w2 = {\n // @ts-expect-error Type check or just assert?\n type: type.toLowerCase(),\n name,\n value,\n callback,\n options: options || {}\n };\n if (w2.options.y !== void 0) {\n w2.y = w2.options.y;\n }\n if (!callback && !w2.options.callback && !w2.options.property) {\n console.warn(\"LiteGraph addWidget(...) without a callback or property assigned\");\n }\n if (type == \"combo\" && !w2.options.values) {\n throw \"LiteGraph addWidget('combo',...) requires to pass values in options: { values:['red','blue'] }\";\n }\n this.widgets.push(w2);\n this.setSize(this.computeSize());\n return w2;\n }\n addCustomWidget(custom_widget) {\n this.widgets ||= [];\n this.widgets.push(custom_widget);\n return custom_widget;\n }\n /**\n * returns the bounding of the object, used for rendering purposes\n * @param out {Float32Array[4]?} [optional] a place to store the output, to free garbage\n * @param compute_outer {boolean?} [optional] set to true to include the shadow and connection points in the bounding calculation\n * @return {Float32Array[4]} the bounding box in format of [topleft_cornerx, topleft_cornery, width, height]\n */\n getBounding(out, compute_outer) {\n out = out || new Float32Array(4);\n const nodePos = this.pos;\n const isCollapsed = this.flags.collapsed;\n const nodeSize = this.size;\n let left_offset = 0;\n let right_offset = 1;\n let top_offset = 0;\n let bottom_offset = 0;\n if (compute_outer) {\n left_offset = 4;\n right_offset = 6 + left_offset;\n top_offset = 4;\n bottom_offset = 5 + top_offset;\n }\n out[0] = nodePos[0] - left_offset;\n out[1] = nodePos[1] - LiteGraph.NODE_TITLE_HEIGHT - top_offset;\n out[2] = isCollapsed ? (this._collapsed_width || LiteGraph.NODE_COLLAPSED_WIDTH) + right_offset : nodeSize[0] + right_offset;\n out[3] = isCollapsed ? LiteGraph.NODE_TITLE_HEIGHT + bottom_offset : nodeSize[1] + LiteGraph.NODE_TITLE_HEIGHT + bottom_offset;\n this.onBounding?.(out);\n return out;\n }\n /**\n * checks if a point is inside the shape of a node\n * @param {number} x\n * @param {number} y\n * @return {boolean}\n */\n isPointInside(x2, y2, margin, skip_title) {\n margin ||= 0;\n const margin_top = skip_title || this.graph?.isLive() ? 0 : LiteGraph.NODE_TITLE_HEIGHT;\n if (this.flags?.collapsed) {\n if (isInsideRectangle(\n x2,\n y2,\n this.pos[0] - margin,\n this.pos[1] - LiteGraph.NODE_TITLE_HEIGHT - margin,\n (this._collapsed_width || LiteGraph.NODE_COLLAPSED_WIDTH) + 2 * margin,\n LiteGraph.NODE_TITLE_HEIGHT + 2 * margin\n )) {\n return true;\n }\n } else if (this.pos[0] - 4 - margin < x2 && this.pos[0] + this.size[0] + 4 + margin > x2 && this.pos[1] - margin_top - margin < y2 && this.pos[1] + this.size[1] + margin > y2) {\n return true;\n }\n return false;\n }\n /**\n * checks if a point is inside a node slot, and returns info about which slot\n * @param x\n * @param y\n * @returns if found the object contains { input|output: slot object, slot: number, link_pos: [x,y] }\n */\n getSlotInPosition(x2, y2) {\n const link_pos = new Float32Array(2);\n if (this.inputs) {\n for (let i2 = 0, l = this.inputs.length; i2 < l; ++i2) {\n const input = this.inputs[i2];\n this.getConnectionPos(true, i2, link_pos);\n if (isInsideRectangle(x2, y2, link_pos[0] - 10, link_pos[1] - 5, 20, 10)) {\n return { input, slot: i2, link_pos };\n }\n }\n }\n if (this.outputs) {\n for (let i2 = 0, l = this.outputs.length; i2 < l; ++i2) {\n const output = this.outputs[i2];\n this.getConnectionPos(false, i2, link_pos);\n if (isInsideRectangle(x2, y2, link_pos[0] - 10, link_pos[1] - 5, 20, 10)) {\n return { output, slot: i2, link_pos };\n }\n }\n }\n return null;\n }\n findInputSlot(name, returnObj = false) {\n if (!this.inputs) return -1;\n for (let i2 = 0, l = this.inputs.length; i2 < l; ++i2) {\n if (name == this.inputs[i2].name) {\n return !returnObj ? i2 : this.inputs[i2];\n }\n }\n return -1;\n }\n findOutputSlot(name, returnObj = false) {\n if (!this.outputs) return -1;\n for (let i2 = 0, l = this.outputs.length; i2 < l; ++i2) {\n if (name == this.outputs[i2].name) {\n return !returnObj ? i2 : this.outputs[i2];\n }\n }\n return -1;\n }\n findInputSlotFree(optsIn) {\n const optsDef = {\n returnObj: false,\n typesNotAccepted: []\n };\n const opts = Object.assign(optsDef, optsIn || {});\n if (!this.inputs) return -1;\n for (let i2 = 0, l = this.inputs.length; i2 < l; ++i2) {\n if (this.inputs[i2].link) continue;\n if (opts.typesNotAccepted?.includes?.(this.inputs[i2].type)) continue;\n return !opts.returnObj ? i2 : this.inputs[i2];\n }\n return -1;\n }\n findOutputSlotFree(optsIn) {\n const optsDef = {\n returnObj: false,\n typesNotAccepted: []\n };\n const opts = Object.assign(optsDef, optsIn || {});\n if (!this.outputs) return -1;\n for (let i2 = 0, l = this.outputs.length; i2 < l; ++i2) {\n if (this.outputs[i2].links) continue;\n if (opts.typesNotAccepted?.includes?.(this.outputs[i2].type)) continue;\n return !opts.returnObj ? i2 : this.outputs[i2];\n }\n return -1;\n }\n findInputSlotByType(type, returnObj, preferFreeSlot, doNotUseOccupied) {\n return returnObj ? this.findSlotByType(true, type, true, preferFreeSlot, doNotUseOccupied) : this.findSlotByType(true, type, false, preferFreeSlot, doNotUseOccupied);\n }\n findOutputSlotByType(type, returnObj, preferFreeSlot, doNotUseOccupied) {\n return returnObj ? this.findSlotByType(false, type, true, preferFreeSlot, doNotUseOccupied) : this.findSlotByType(false, type, false, preferFreeSlot, doNotUseOccupied);\n }\n findSlotByType(input, type, returnObj, preferFreeSlot, doNotUseOccupied) {\n input ||= false;\n returnObj ||= false;\n preferFreeSlot ||= false;\n doNotUseOccupied ||= false;\n const slots = input ? this.inputs : this.outputs;\n if (!slots) return -1;\n if (type == \"\" || type == \"*\") type = 0;\n const sourceTypes = String(type).toLowerCase().split(\",\");\n let occupiedSlot = null;\n for (let i2 = 0, l = slots.length; i2 < l; ++i2) {\n const slot = slots[i2];\n const destTypes = slot.type == \"0\" || slot.type == \"*\" ? [\"0\"] : String(slot.type).toLowerCase().split(\",\");\n for (const sourceType of sourceTypes) {\n const source = sourceType == \"_event_\" ? LiteGraph.EVENT : sourceType;\n for (const destType of destTypes) {\n const dest = destType == \"_event_\" ? LiteGraph.EVENT : destType;\n if (source == dest || source === \"*\" || dest === \"*\") {\n if (preferFreeSlot && (slot.links?.length > 0 || slot.link != null)) {\n occupiedSlot ??= returnObj ? slot : i2;\n continue;\n }\n return returnObj ? slot : i2;\n }\n }\n }\n }\n return doNotUseOccupied ? -1 : occupiedSlot;\n }\n /**\n * connect this node output to the input of another node BY TYPE\n * @param {number_or_string} slot (could be the number of the slot or the string with the name of the slot)\n * @param {LGraphNode} node the target node\n * @param {string} target_type the input slot type of the target node\n * @return {Object} the link_info is created, otherwise null\n */\n connectByType(slot, target_node, target_slotType, optsIn) {\n optsIn = optsIn || {};\n const optsDef = {\n createEventInCase: true,\n firstFreeIfOutputGeneralInCase: true,\n generalTypeInCase: true\n };\n const opts = Object.assign(optsDef, optsIn);\n if (target_node && typeof target_node === \"number\") {\n target_node = this.graph.getNodeById(target_node);\n }\n let target_slot = target_node.findInputSlotByType(target_slotType, false, true);\n if (target_slot >= 0 && target_slot !== null) {\n return this.connect(slot, target_node, target_slot);\n } else {\n if (opts.createEventInCase && target_slotType == LiteGraph.EVENT) {\n return this.connect(slot, target_node, -1);\n }\n if (opts.generalTypeInCase) {\n target_slot = target_node.findInputSlotByType(0, false, true, true);\n if (target_slot >= 0) {\n return this.connect(slot, target_node, target_slot);\n }\n }\n if (opts.firstFreeIfOutputGeneralInCase && (target_slotType == 0 || target_slotType == \"*\" || target_slotType == \"\")) {\n target_slot = target_node.findInputSlotFree({ typesNotAccepted: [LiteGraph.EVENT] });\n if (target_slot >= 0) {\n return this.connect(slot, target_node, target_slot);\n }\n }\n console.debug(\"no way to connect type: \", target_slotType, \" to targetNODE \", target_node);\n return null;\n }\n }\n /**\n * connect this node input to the output of another node BY TYPE\n * @param {number_or_string} slot (could be the number of the slot or the string with the name of the slot)\n * @param {LGraphNode} node the target node\n * @param {string} target_type the output slot type of the target node\n * @return {Object} the link_info is created, otherwise null\n */\n connectByTypeOutput(slot, source_node, source_slotType, optsIn) {\n optsIn = optsIn || {};\n const optsDef = {\n createEventInCase: true,\n firstFreeIfInputGeneralInCase: true,\n generalTypeInCase: true\n };\n const opts = Object.assign(optsDef, optsIn);\n if (source_node && typeof source_node === \"number\") {\n source_node = this.graph.getNodeById(source_node);\n }\n let source_slot = source_node.findOutputSlotByType(source_slotType, false, true);\n if (source_slot >= 0 && source_slot !== null) {\n return source_node.connect(source_slot, this, slot);\n } else {\n if (opts.generalTypeInCase) {\n source_slot = source_node.findOutputSlotByType(0, false, true, true);\n if (source_slot >= 0) {\n return source_node.connect(source_slot, this, slot);\n }\n }\n if (opts.createEventInCase && source_slotType == LiteGraph.EVENT) {\n if (LiteGraph.do_add_triggers_slots) {\n source_slot = source_node.addOnExecutedOutput();\n return source_node.connect(source_slot, this, slot);\n }\n }\n if (opts.firstFreeIfInputGeneralInCase && (source_slotType == 0 || source_slotType == \"*\" || source_slotType == \"\")) {\n source_slot = source_node.findOutputSlotFree({ typesNotAccepted: [LiteGraph.EVENT] });\n if (source_slot >= 0) {\n return source_node.connect(source_slot, this, slot);\n }\n }\n console.debug(\"no way to connect byOUT type: \", source_slotType, \" to sourceNODE \", source_node);\n return null;\n }\n }\n /**\n * connect this node output to the input of another node\n * @param {number_or_string} slot (could be the number of the slot or the string with the name of the slot)\n * @param {LGraphNode} node the target node\n * @param {number_or_string} target_slot the input slot of the target node (could be the number of the slot or the string with the name of the slot, or -1 to connect a trigger)\n * @return {Object} the link_info is created, otherwise null\n */\n connect(slot, target_node, target_slot) {\n target_slot = target_slot || 0;\n if (!this.graph) {\n console.log(\n \"Connect: Error, node doesn't belong to any graph. Nodes must be added first to a graph before connecting them.\"\n );\n return null;\n }\n if (typeof slot === \"string\") {\n slot = this.findOutputSlot(slot);\n if (slot == -1) {\n if (LiteGraph.debug) {\n console.log(\"Connect: Error, no slot of name \" + slot);\n }\n return null;\n }\n } else if (!this.outputs || slot >= this.outputs.length) {\n if (LiteGraph.debug) {\n console.log(\"Connect: Error, slot number not found\");\n }\n return null;\n }\n if (target_node && typeof target_node === \"number\") {\n target_node = this.graph.getNodeById(target_node);\n }\n if (!target_node) {\n throw \"target node is null\";\n }\n if (target_node == this) {\n return null;\n }\n if (typeof target_slot === \"string\") {\n target_slot = target_node.findInputSlot(target_slot);\n if (target_slot == -1) {\n if (LiteGraph.debug) {\n console.log(\n \"Connect: Error, no slot of name \" + target_slot\n );\n }\n return null;\n }\n } else if (target_slot === LiteGraph.EVENT) {\n if (LiteGraph.do_add_triggers_slots) {\n target_node.changeMode(LiteGraph.ON_TRIGGER);\n target_slot = target_node.findInputSlot(\"onTrigger\");\n } else {\n return null;\n }\n } else if (!target_node.inputs || target_slot >= target_node.inputs.length) {\n if (LiteGraph.debug) {\n console.log(\"Connect: Error, slot number not found\");\n }\n return null;\n }\n let changed = false;\n const input = target_node.inputs[target_slot];\n let link_info = null;\n const output = this.outputs[slot];\n if (!this.outputs[slot]) {\n return null;\n }\n if (target_node.onBeforeConnectInput) {\n target_slot = target_node.onBeforeConnectInput(target_slot);\n }\n if (target_slot === false || target_slot === null || !LiteGraph.isValidConnection(output.type, input.type)) {\n this.setDirtyCanvas(false, true);\n if (changed)\n this.graph.connectionChange(this);\n return null;\n }\n if (target_node.onConnectInput) {\n if (target_node.onConnectInput(target_slot, output.type, output, this, slot) === false) {\n return null;\n }\n }\n if (this.onConnectOutput) {\n if (this.onConnectOutput(slot, input.type, input, target_node, target_slot) === false) {\n return null;\n }\n }\n if (target_node.inputs[target_slot] && target_node.inputs[target_slot].link != null) {\n this.graph.beforeChange();\n target_node.disconnectInput(target_slot);\n changed = true;\n }\n if (output.links !== null && output.links.length) {\n switch (output.type) {\n case LiteGraph.EVENT:\n if (!LiteGraph.allow_multi_output_for_events) {\n this.graph.beforeChange();\n this.disconnectOutput(slot);\n changed = true;\n }\n break;\n }\n }\n let nextId;\n if (LiteGraph.use_uuids)\n nextId = LiteGraph.uuidv4();\n else\n nextId = ++this.graph.last_link_id;\n link_info = new LLink(\n nextId,\n input.type || output.type,\n this.id,\n slot,\n target_node.id,\n target_slot\n );\n this.graph.links[link_info.id] = link_info;\n if (output.links == null) {\n output.links = [];\n }\n output.links.push(link_info.id);\n target_node.inputs[target_slot].link = link_info.id;\n if (this.graph) {\n this.graph._version++;\n }\n if (this.onConnectionsChange) {\n this.onConnectionsChange(\n LiteGraph.OUTPUT,\n slot,\n true,\n link_info,\n output\n );\n }\n if (target_node.onConnectionsChange) {\n target_node.onConnectionsChange(\n LiteGraph.INPUT,\n target_slot,\n true,\n link_info,\n input\n );\n }\n if (this.graph && this.graph.onNodeConnectionChange) {\n this.graph.onNodeConnectionChange(\n LiteGraph.INPUT,\n target_node,\n target_slot,\n this,\n slot\n );\n this.graph.onNodeConnectionChange(\n LiteGraph.OUTPUT,\n this,\n slot,\n target_node,\n target_slot\n );\n }\n this.setDirtyCanvas(false, true);\n this.graph.afterChange();\n this.graph.connectionChange(this);\n return link_info;\n }\n /**\n * disconnect one output to an specific node\n * @param {number_or_string} slot (could be the number of the slot or the string with the name of the slot)\n * @param {LGraphNode} target_node the target node to which this slot is connected [Optional, if not target_node is specified all nodes will be disconnected]\n * @return {boolean} if it was disconnected successfully\n */\n disconnectOutput(slot, target_node) {\n if (typeof slot === \"string\") {\n slot = this.findOutputSlot(slot);\n if (slot == -1) {\n if (LiteGraph.debug) console.log(\"Connect: Error, no slot of name \" + slot);\n return false;\n }\n } else if (!this.outputs || slot >= this.outputs.length) {\n if (LiteGraph.debug) console.log(\"Connect: Error, slot number not found\");\n return false;\n }\n const output = this.outputs[slot];\n if (!output || !output.links || output.links.length == 0)\n return false;\n const graph = this.graph;\n if (target_node) {\n if (typeof target_node === \"number\")\n target_node = graph.getNodeById(target_node);\n if (!target_node)\n throw \"Target Node not found\";\n for (let i2 = 0, l = output.links.length; i2 < l; i2++) {\n const link_id = output.links[i2];\n const link_info = graph.links[link_id];\n if (link_info.target_id == target_node.id) {\n output.links.splice(i2, 1);\n const input = target_node.inputs[link_info.target_slot];\n input.link = null;\n delete graph.links[link_id];\n if (graph) graph._version++;\n target_node.onConnectionsChange?.(\n LiteGraph.INPUT,\n link_info.target_slot,\n false,\n link_info,\n input\n );\n this.onConnectionsChange?.(\n LiteGraph.OUTPUT,\n slot,\n false,\n link_info,\n output\n );\n graph?.onNodeConnectionChange?.(LiteGraph.OUTPUT, this, slot);\n graph?.onNodeConnectionChange?.(LiteGraph.OUTPUT, this, slot);\n graph?.onNodeConnectionChange?.(LiteGraph.INPUT, target_node, link_info.target_slot);\n break;\n }\n }\n } else {\n for (let i2 = 0, l = output.links.length; i2 < l; i2++) {\n const link_id = output.links[i2];\n const link_info = graph.links[link_id];\n if (!link_info) continue;\n target_node = graph.getNodeById(link_info.target_id);\n if (graph) graph._version++;\n if (target_node) {\n const input = target_node.inputs[link_info.target_slot];\n input.link = null;\n target_node.onConnectionsChange?.(\n LiteGraph.INPUT,\n link_info.target_slot,\n false,\n link_info,\n input\n );\n graph?.onNodeConnectionChange?.(LiteGraph.INPUT, target_node, link_info.target_slot);\n }\n delete graph.links[link_id];\n this.onConnectionsChange?.(\n LiteGraph.OUTPUT,\n slot,\n false,\n link_info,\n output\n );\n graph?.onNodeConnectionChange?.(LiteGraph.OUTPUT, this, slot);\n graph?.onNodeConnectionChange?.(LiteGraph.INPUT, target_node, link_info.target_slot);\n }\n output.links = null;\n }\n this.setDirtyCanvas(false, true);\n graph.connectionChange(this);\n return true;\n }\n /**\n * Disconnect one input\n * @param slot Input slot index, or the name of the slot\n * @return true if disconnected successfully or already disconnected, otherwise false\n */\n disconnectInput(slot) {\n if (typeof slot === \"string\") {\n slot = this.findInputSlot(slot);\n if (slot == -1) {\n if (LiteGraph.debug) console.log(\"Connect: Error, no slot of name \" + slot);\n return false;\n }\n } else if (!this.inputs || slot >= this.inputs.length) {\n if (LiteGraph.debug) {\n console.log(\"Connect: Error, slot number not found\");\n }\n return false;\n }\n const input = this.inputs[slot];\n if (!input) {\n return false;\n }\n const link_id = this.inputs[slot].link;\n if (link_id != null) {\n this.inputs[slot].link = null;\n const link_info = this.graph.links[link_id];\n if (link_info) {\n const target_node = this.graph.getNodeById(link_info.origin_id);\n if (!target_node) {\n return false;\n }\n const output = target_node.outputs[link_info.origin_slot];\n if (!(output?.links?.length > 0)) {\n return false;\n }\n let i2 = 0;\n for (const l = output.links.length; i2 < l; i2++) {\n if (output.links[i2] == link_id) {\n output.links.splice(i2, 1);\n break;\n }\n }\n delete this.graph.links[link_id];\n if (this.graph) this.graph._version++;\n this.onConnectionsChange?.(\n LiteGraph.INPUT,\n slot,\n false,\n link_info,\n input\n );\n target_node.onConnectionsChange?.(\n LiteGraph.OUTPUT,\n i2,\n false,\n link_info,\n output\n );\n this.graph?.onNodeConnectionChange?.(LiteGraph.OUTPUT, target_node, i2);\n this.graph?.onNodeConnectionChange?.(LiteGraph.INPUT, this, slot);\n }\n }\n this.setDirtyCanvas(false, true);\n this.graph?.connectionChange(this);\n return true;\n }\n /**\n * returns the center of a connection point in canvas coords\n * @param {boolean} is_input true if if a input slot, false if it is an output\n * @param {number_or_string} slot (could be the number of the slot or the string with the name of the slot)\n * @param {vec2} out [optional] a place to store the output, to free garbage\n * @return {[x,y]} the position\n **/\n getConnectionPos(is_input, slot_number, out) {\n out ||= new Float32Array(2);\n const num_slots = is_input ? this.inputs?.length ?? 0 : this.outputs?.length ?? 0;\n const offset = LiteGraph.NODE_SLOT_HEIGHT * 0.5;\n if (this.flags.collapsed) {\n const w2 = this._collapsed_width || LiteGraph.NODE_COLLAPSED_WIDTH;\n if (this.horizontal) {\n out[0] = this.pos[0] + w2 * 0.5;\n out[1] = is_input ? this.pos[1] - LiteGraph.NODE_TITLE_HEIGHT : this.pos[1];\n } else {\n out[0] = is_input ? this.pos[0] : this.pos[0] + w2;\n out[1] = this.pos[1] - LiteGraph.NODE_TITLE_HEIGHT * 0.5;\n }\n return out;\n }\n if (is_input && slot_number == -1) {\n out[0] = this.pos[0] + LiteGraph.NODE_TITLE_HEIGHT * 0.5;\n out[1] = this.pos[1] + LiteGraph.NODE_TITLE_HEIGHT * 0.5;\n return out;\n }\n if (is_input && num_slots > slot_number && this.inputs[slot_number].pos) {\n out[0] = this.pos[0] + this.inputs[slot_number].pos[0];\n out[1] = this.pos[1] + this.inputs[slot_number].pos[1];\n return out;\n } else if (!is_input && num_slots > slot_number && this.outputs[slot_number].pos) {\n out[0] = this.pos[0] + this.outputs[slot_number].pos[0];\n out[1] = this.pos[1] + this.outputs[slot_number].pos[1];\n return out;\n }\n if (this.horizontal) {\n out[0] = this.pos[0] + (slot_number + 0.5) * (this.size[0] / num_slots);\n out[1] = is_input ? this.pos[1] - LiteGraph.NODE_TITLE_HEIGHT : this.pos[1] + this.size[1];\n return out;\n }\n out[0] = is_input ? this.pos[0] + offset : this.pos[0] + this.size[0] + 1 - offset;\n out[1] = this.pos[1] + (slot_number + 0.7) * LiteGraph.NODE_SLOT_HEIGHT + (this.constructor.slot_start_y || 0);\n return out;\n }\n /* Force align to grid */\n alignToGrid() {\n this.pos[0] = LiteGraph.CANVAS_GRID_SIZE * Math.round(this.pos[0] / LiteGraph.CANVAS_GRID_SIZE);\n this.pos[1] = LiteGraph.CANVAS_GRID_SIZE * Math.round(this.pos[1] / LiteGraph.CANVAS_GRID_SIZE);\n }\n /* Console output */\n trace(msg) {\n this.console ||= [];\n this.console.push(msg);\n if (this.console.length > LGraphNode.MAX_CONSOLE)\n this.console.shift();\n this.graph.onNodeTrace?.(this, msg);\n }\n /* Forces to redraw or the main canvas (LGraphNode) or the bg canvas (links) */\n setDirtyCanvas(dirty_foreground, dirty_background) {\n this.graph?.sendActionToCanvas(\"setDirty\", [\n dirty_foreground,\n dirty_background\n ]);\n }\n loadImage(url) {\n const img = new Image();\n img.src = LiteGraph.node_images_path + url;\n img.ready = false;\n const that2 = this;\n img.onload = function() {\n this.ready = true;\n that2.setDirtyCanvas(true);\n };\n return img;\n }\n /* Allows to get onMouseMove and onMouseUp events even if the mouse is out of focus */\n captureInput(v2) {\n if (!this.graph || !this.graph.list_of_graphcanvas)\n return;\n const list = this.graph.list_of_graphcanvas;\n for (let i2 = 0; i2 < list.length; ++i2) {\n const c = list[i2];\n if (!v2 && c.node_capturing_input != this)\n continue;\n c.node_capturing_input = v2 ? this : null;\n }\n }\n get collapsed() {\n return !!this.flags.collapsed;\n }\n get collapsible() {\n return !this.pinned && this.constructor.collapsable !== false;\n }\n /**\n * Collapse the node to make it smaller on the canvas\n **/\n collapse(force) {\n this.graph._version++;\n if (!this.collapsible && !force) return;\n this.flags.collapsed = !this.flags.collapsed;\n this.setDirtyCanvas(true, true);\n }\n get pinned() {\n return !!this.flags.pinned;\n }\n /**\n * Prevents the node being accidentally moved or resized by mouse interaction.\n **/\n pin(v2) {\n this.graph._version++;\n this.flags.pinned = v2 === void 0 ? !this.flags.pinned : v2;\n this.resizable = !this.pinned;\n if (!this.pinned)\n delete this.flags.pinned;\n }\n localToScreen(x2, y2, dragAndScale) {\n return [\n (x2 + this.pos[0]) * dragAndScale.scale + dragAndScale.offset[0],\n (y2 + this.pos[1]) * dragAndScale.scale + dragAndScale.offset[1]\n ];\n }\n get width() {\n return this.collapsed ? this._collapsed_width || LiteGraph.NODE_COLLAPSED_WIDTH : this.size[0];\n }\n get height() {\n return this.collapsed ? LiteGraph.NODE_COLLAPSED_HEIGHT : this.size[1];\n }\n drawBadges(ctx, { gap = 2 } = {}) {\n const badgeInstances = this.badges.map((badge) => badge instanceof LGraphBadge ? badge : badge());\n const isLeftAligned = this.badgePosition === BadgePosition.TopLeft;\n let currentX = isLeftAligned ? 0 : this.width - badgeInstances.reduce((acc, badge) => acc + badge.getWidth(ctx) + gap, 0);\n const y2 = -(LiteGraph.NODE_TITLE_HEIGHT + gap);\n for (const badge of badgeInstances) {\n badge.draw(ctx, currentX, y2 - badge.height);\n currentX += badge.getWidth(ctx) + gap;\n }\n }\n}\nvar SlotType = /* @__PURE__ */ ((SlotType2) => {\n SlotType2[\"Array\"] = \"array\";\n SlotType2[SlotType2[\"Event\"] = -1] = \"Event\";\n return SlotType2;\n})(SlotType || {});\nvar SlotShape = ((SlotShape2) => {\n SlotShape2[SlotShape2[\"Box\"] = RenderShape.BOX] = \"Box\";\n SlotShape2[SlotShape2[\"Arrow\"] = RenderShape.ARROW] = \"Arrow\";\n SlotShape2[SlotShape2[\"Grid\"] = RenderShape.GRID] = \"Grid\";\n SlotShape2[SlotShape2[\"Circle\"] = RenderShape.CIRCLE] = \"Circle\";\n SlotShape2[SlotShape2[\"HollowCircle\"] = RenderShape.HollowCircle] = \"HollowCircle\";\n return SlotShape2;\n})(SlotShape || {});\nvar SlotDirection = ((SlotDirection2) => {\n SlotDirection2[SlotDirection2[\"Up\"] = LinkDirection.UP] = \"Up\";\n SlotDirection2[SlotDirection2[\"Right\"] = LinkDirection.RIGHT] = \"Right\";\n SlotDirection2[SlotDirection2[\"Down\"] = LinkDirection.DOWN] = \"Down\";\n SlotDirection2[SlotDirection2[\"Left\"] = LinkDirection.LEFT] = \"Left\";\n return SlotDirection2;\n})(SlotDirection || {});\nvar LabelPosition = /* @__PURE__ */ ((LabelPosition2) => {\n LabelPosition2[\"Left\"] = \"left\";\n LabelPosition2[\"Right\"] = \"right\";\n return LabelPosition2;\n})(LabelPosition || {});\nfunction drawSlot(ctx, slot, pos2, {\n label_color = \"#AAA\",\n label_position = \"right\",\n horizontal = false,\n low_quality = false,\n render_text = true,\n do_stroke = false\n} = {}) {\n const originalFillStyle = ctx.fillStyle;\n const originalStrokeStyle = ctx.strokeStyle;\n const originalLineWidth = ctx.lineWidth;\n const slot_type = slot.type;\n const slot_shape = slot_type === \"array\" ? SlotShape.Grid : slot.shape;\n ctx.beginPath();\n let doStroke = do_stroke;\n let doFill = true;\n if (slot_type === -1 || slot_shape === SlotShape.Box) {\n if (horizontal) {\n ctx.rect(pos2[0] - 5 + 0.5, pos2[1] - 8 + 0.5, 10, 14);\n } else {\n ctx.rect(pos2[0] - 6 + 0.5, pos2[1] - 5 + 0.5, 14, 10);\n }\n } else if (slot_shape === SlotShape.Arrow) {\n ctx.moveTo(pos2[0] + 8, pos2[1] + 0.5);\n ctx.lineTo(pos2[0] - 4, pos2[1] + 6 + 0.5);\n ctx.lineTo(pos2[0] - 4, pos2[1] - 6 + 0.5);\n ctx.closePath();\n } else if (slot_shape === SlotShape.Grid) {\n const gridSize = 3;\n const cellSize = 2;\n const spacing = 3;\n for (let x2 = 0; x2 < gridSize; x2++) {\n for (let y2 = 0; y2 < gridSize; y2++) {\n ctx.rect(\n pos2[0] - 4 + x2 * spacing,\n pos2[1] - 4 + y2 * spacing,\n cellSize,\n cellSize\n );\n }\n }\n doStroke = false;\n } else {\n if (low_quality) {\n ctx.rect(pos2[0] - 4, pos2[1] - 4, 8, 8);\n } else {\n let radius;\n if (slot_shape === SlotShape.HollowCircle) {\n doFill = false;\n doStroke = true;\n ctx.lineWidth = 3;\n ctx.strokeStyle = ctx.fillStyle;\n radius = 3;\n } else {\n radius = 4;\n }\n ctx.arc(pos2[0], pos2[1], radius, 0, Math.PI * 2);\n }\n }\n if (doFill) ctx.fill();\n if (!low_quality && doStroke) ctx.stroke();\n if (render_text) {\n const text = slot.label != null ? slot.label : slot.name;\n if (text) {\n ctx.fillStyle = label_color;\n if (label_position === \"right\") {\n if (horizontal || slot.dir == LinkDirection.UP) {\n ctx.fillText(text, pos2[0], pos2[1] - 10);\n } else {\n ctx.fillText(text, pos2[0] + 10, pos2[1] + 5);\n }\n } else {\n if (horizontal || slot.dir == LinkDirection.DOWN) {\n ctx.fillText(text, pos2[0], pos2[1] - 8);\n } else {\n ctx.fillText(text, pos2[0] - 10, pos2[1] + 5);\n }\n }\n }\n }\n ctx.fillStyle = originalFillStyle;\n ctx.strokeStyle = originalStrokeStyle;\n ctx.lineWidth = originalLineWidth;\n}\nclass LiteGraphGlobal {\n // Enums\n SlotShape = SlotShape;\n SlotDirection = SlotDirection;\n SlotType = SlotType;\n LabelPosition = LabelPosition;\n VERSION = 0.4;\n CANVAS_GRID_SIZE = 10;\n NODE_TITLE_HEIGHT = 30;\n NODE_TITLE_TEXT_Y = 20;\n NODE_SLOT_HEIGHT = 20;\n NODE_WIDGET_HEIGHT = 20;\n NODE_WIDTH = 140;\n NODE_MIN_WIDTH = 50;\n NODE_COLLAPSED_RADIUS = 10;\n NODE_COLLAPSED_WIDTH = 80;\n NODE_TITLE_COLOR = \"#999\";\n NODE_SELECTED_TITLE_COLOR = \"#FFF\";\n NODE_TEXT_SIZE = 14;\n NODE_TEXT_COLOR = \"#AAA\";\n NODE_SUBTEXT_SIZE = 12;\n NODE_DEFAULT_COLOR = \"#333\";\n NODE_DEFAULT_BGCOLOR = \"#353535\";\n NODE_DEFAULT_BOXCOLOR = \"#666\";\n NODE_DEFAULT_SHAPE = \"box\";\n NODE_BOX_OUTLINE_COLOR = \"#FFF\";\n DEFAULT_SHADOW_COLOR = \"rgba(0,0,0,0.5)\";\n DEFAULT_GROUP_FONT = 24;\n DEFAULT_GROUP_FONT_SIZE;\n WIDGET_BGCOLOR = \"#222\";\n WIDGET_OUTLINE_COLOR = \"#666\";\n WIDGET_TEXT_COLOR = \"#DDD\";\n WIDGET_SECONDARY_TEXT_COLOR = \"#999\";\n LINK_COLOR = \"#9A9\";\n // TODO: This is a workaround until LGraphCanvas.link_type_colors is no longer static.\n static DEFAULT_EVENT_LINK_COLOR = \"#A86\";\n EVENT_LINK_COLOR = \"#A86\";\n CONNECTING_LINK_COLOR = \"#AFA\";\n MAX_NUMBER_OF_NODES = 1e4;\n //avoid infinite loops\n DEFAULT_POSITION = [100, 100];\n //default node position\n VALID_SHAPES = [\"default\", \"box\", \"round\", \"card\"];\n //,\"circle\"\n //shapes are used for nodes but also for slots\n BOX_SHAPE = 1;\n ROUND_SHAPE = 2;\n CIRCLE_SHAPE = 3;\n CARD_SHAPE = 4;\n ARROW_SHAPE = 5;\n GRID_SHAPE = 6;\n // intended for slot arrays\n //enums\n INPUT = 1;\n OUTPUT = 2;\n EVENT = -1;\n //for outputs\n ACTION = -1;\n //for inputs\n NODE_MODES = [\"Always\", \"On Event\", \"Never\", \"On Trigger\"];\n // helper, will add \"On Request\" and more in the future\n NODE_MODES_COLORS = [\"#666\", \"#422\", \"#333\", \"#224\", \"#626\"];\n // use with node_box_coloured_by_mode\n ALWAYS = 0;\n ON_EVENT = 1;\n NEVER = 2;\n ON_TRIGGER = 3;\n UP = 1;\n DOWN = 2;\n LEFT = 3;\n RIGHT = 4;\n CENTER = 5;\n LINK_RENDER_MODES = [\"Straight\", \"Linear\", \"Spline\"];\n // helper\n HIDDEN_LINK = -1;\n STRAIGHT_LINK = 0;\n LINEAR_LINK = 1;\n SPLINE_LINK = 2;\n NORMAL_TITLE = 0;\n NO_TITLE = 1;\n TRANSPARENT_TITLE = 2;\n AUTOHIDE_TITLE = 3;\n VERTICAL_LAYOUT = \"vertical\";\n // arrange nodes vertically\n proxy = null;\n //used to redirect calls\n node_images_path = \"\";\n debug = false;\n catch_exceptions = true;\n throw_errors = true;\n allow_scripts = false;\n //if set to true some nodes like Formula would be allowed to evaluate code that comes from unsafe sources (like node configuration), which could lead to exploits\n registered_node_types = {};\n //nodetypes by string\n node_types_by_file_extension = {};\n //used for dropping files in the canvas\n Nodes = {};\n //node types by classname\n Globals = {};\n //used to store vars between graphs\n searchbox_extras = {};\n //used to add extra features to the search box\n auto_sort_node_types = false;\n // [true!] If set to true, will automatically sort node types / categories in the context menus\n node_box_coloured_when_on = false;\n // [true!] this make the nodes box (top left circle) coloured when triggered (execute/action), visual feedback\n node_box_coloured_by_mode = false;\n // [true!] nodebox based on node mode, visual feedback\n dialog_close_on_mouse_leave = false;\n // [false on mobile] better true if not touch device, TODO add an helper/listener to close if false\n dialog_close_on_mouse_leave_delay = 500;\n shift_click_do_break_link_from = false;\n // [false!] prefer false if results too easy to break links - implement with ALT or TODO custom keys\n click_do_break_link_to = false;\n // [false!]prefer false, way too easy to break links\n ctrl_alt_click_do_break_link = true;\n // [true!] who accidentally ctrl-alt-clicks on an in/output? nobody! that's who!\n search_hide_on_mouse_leave = true;\n // [false on mobile] better true if not touch device, TODO add an helper/listener to close if false\n search_filter_enabled = false;\n // [true!] enable filtering slots type in the search widget, !requires auto_load_slot_types or manual set registered_slot_[in/out]_types and slot_types_[in/out]\n search_show_all_on_open = true;\n // [true!] opens the results list when opening the search widget\n auto_load_slot_types = false;\n // [if want false, use true, run, get vars values to be statically set, than disable] nodes types and nodeclass association with node types need to be calculated, if dont want this, calculate once and set registered_slot_[in/out]_types and slot_types_[in/out]\n // set these values if not using auto_load_slot_types\n registered_slot_in_types = {};\n // slot types for nodeclass\n registered_slot_out_types = {};\n // slot types for nodeclass\n slot_types_in = [];\n // slot types IN\n slot_types_out = [];\n // slot types OUT\n // @ts-expect-error\n slot_types_default_in = [];\n // specify for each IN slot type a(/many) default node(s), use single string, array, or object (with node, title, parameters, ..) like for search\n // @ts-expect-error\n slot_types_default_out = [];\n // specify for each OUT slot type a(/many) default node(s), use single string, array, or object (with node, title, parameters, ..) like for search\n alt_drag_do_clone_nodes = false;\n // [true!] very handy, ALT click to clone and drag the new node\n do_add_triggers_slots = false;\n // [true!] will create and connect event slots when using action/events connections, !WILL CHANGE node mode when using onTrigger (enable mode colors), onExecuted does not need this\n allow_multi_output_for_events = true;\n // [false!] being events, it is strongly reccomended to use them sequentially, one by one\n middle_click_slot_add_default_node = false;\n //[true!] allows to create and connect a ndoe clicking with the third button (wheel)\n release_link_on_empty_shows_menu = false;\n //[true!] dragging a link to empty space will open a menu, add from list, search or defaults\n pointerevents_method = \"pointer\";\n // \"mouse\"|\"pointer\" use mouse for retrocompatibility issues? (none found @ now)\n // TODO implement pointercancel, gotpointercapture, lostpointercapture, (pointerover, pointerout if necessary)\n ctrl_shift_v_paste_connect_unselected_outputs = true;\n //[true!] allows ctrl + shift + v to paste nodes with the outputs of the unselected nodes connected with the inputs of the newly pasted nodes\n // if true, all newly created nodes/links will use string UUIDs for their id fields instead of integers.\n // use this if you must have node IDs that are unique across all graphs and subgraphs.\n use_uuids = false;\n // Whether to highlight the bounding box of selected groups\n highlight_selected_group = false;\n LGraph;\n LLink;\n LGraphNode;\n LGraphGroup;\n DragAndScale;\n LGraphCanvas;\n ContextMenu;\n CurveEditor;\n constructor() {\n if (typeof performance != \"undefined\") {\n this.getTime = performance.now.bind(performance);\n } else if (typeof Date != \"undefined\" && Date.now) {\n this.getTime = Date.now.bind(Date);\n } else if (typeof process != \"undefined\") {\n this.getTime = function() {\n var t = process.hrtime();\n return t[0] * 1e-3 + t[1] * 1e-6;\n };\n } else {\n this.getTime = function() {\n return (/* @__PURE__ */ new Date()).getTime();\n };\n }\n }\n /**\n * Register a node class so it can be listed when the user wants to create a new one\n * @method registerNodeType\n * @param {String} type name of the node and path\n * @param {Class} base_class class containing the structure of a node\n */\n registerNodeType(type, base_class) {\n if (!base_class.prototype) {\n throw \"Cannot register a simple object, it must be a class with a prototype\";\n }\n base_class.type = type;\n if (LiteGraph.debug) {\n console.log(\"Node registered: \" + type);\n }\n const classname = base_class.name;\n const pos2 = type.lastIndexOf(\"/\");\n base_class.category = type.substring(0, pos2);\n if (!base_class.title) {\n base_class.title = classname;\n }\n for (var i2 in LGraphNode.prototype) {\n if (!base_class.prototype[i2]) {\n base_class.prototype[i2] = LGraphNode.prototype[i2];\n }\n }\n const prev = this.registered_node_types[type];\n if (prev) {\n console.log(\"replacing node type: \" + type);\n }\n if (!Object.prototype.hasOwnProperty.call(base_class.prototype, \"shape\")) {\n Object.defineProperty(base_class.prototype, \"shape\", {\n set: function(v2) {\n switch (v2) {\n case \"default\":\n delete this._shape;\n break;\n case \"box\":\n this._shape = LiteGraph.BOX_SHAPE;\n break;\n case \"round\":\n this._shape = LiteGraph.ROUND_SHAPE;\n break;\n case \"circle\":\n this._shape = LiteGraph.CIRCLE_SHAPE;\n break;\n case \"card\":\n this._shape = LiteGraph.CARD_SHAPE;\n break;\n default:\n this._shape = v2;\n }\n },\n get: function() {\n return this._shape;\n },\n enumerable: true,\n configurable: true\n });\n if (base_class.supported_extensions) {\n for (let i22 in base_class.supported_extensions) {\n const ext = base_class.supported_extensions[i22];\n if (ext && ext.constructor === String) {\n this.node_types_by_file_extension[ext.toLowerCase()] = base_class;\n }\n }\n }\n }\n this.registered_node_types[type] = base_class;\n if (base_class.constructor.name) {\n this.Nodes[classname] = base_class;\n }\n if (this.onNodeTypeRegistered) {\n this.onNodeTypeRegistered(type, base_class);\n }\n if (prev && this.onNodeTypeReplaced) {\n this.onNodeTypeReplaced(type, base_class, prev);\n }\n if (base_class.prototype.onPropertyChange) {\n console.warn(\n \"LiteGraph node class \" + type + \" has onPropertyChange method, it must be called onPropertyChanged with d at the end\"\n );\n }\n if (this.auto_load_slot_types) {\n new base_class(base_class.title || \"tmpnode\");\n }\n }\n /**\n * removes a node type from the system\n * @method unregisterNodeType\n * @param {String|Object} type name of the node or the node constructor itself\n */\n unregisterNodeType(type) {\n const base_class = type.constructor === String ? this.registered_node_types[type] : type;\n if (!base_class) {\n throw \"node type not found: \" + type;\n }\n delete this.registered_node_types[base_class.type];\n if (base_class.constructor.name) {\n delete this.Nodes[base_class.constructor.name];\n }\n }\n /**\n * Save a slot type and his node\n * @method registerSlotType\n * @param {String|Object} type name of the node or the node constructor itself\n * @param {String} slot_type name of the slot type (variable type), eg. string, number, array, boolean, ..\n */\n registerNodeAndSlotType(type, slot_type, out) {\n out = out || false;\n const base_class = type.constructor === String && // @ts-ignore\n this.registered_node_types[type] !== \"anonymous\" ? this.registered_node_types[type] : type;\n const class_type = base_class.constructor.type;\n let allTypes = [];\n if (typeof slot_type === \"string\") {\n allTypes = slot_type.split(\",\");\n } else if (slot_type == this.EVENT || slot_type == this.ACTION) {\n allTypes = [\"_event_\"];\n } else {\n allTypes = [\"*\"];\n }\n for (let i2 = 0; i2 < allTypes.length; ++i2) {\n let slotType = allTypes[i2];\n if (slotType === \"\") {\n slotType = \"*\";\n }\n const registerTo = out ? \"registered_slot_out_types\" : \"registered_slot_in_types\";\n if (this[registerTo][slotType] === void 0) {\n this[registerTo][slotType] = { nodes: [] };\n }\n if (!this[registerTo][slotType].nodes.includes(class_type)) {\n this[registerTo][slotType].nodes.push(class_type);\n }\n if (!out) {\n if (!this.slot_types_in.includes(slotType.toLowerCase())) {\n this.slot_types_in.push(slotType.toLowerCase());\n this.slot_types_in.sort();\n }\n } else {\n if (!this.slot_types_out.includes(slotType.toLowerCase())) {\n this.slot_types_out.push(slotType.toLowerCase());\n this.slot_types_out.sort();\n }\n }\n }\n }\n /**\n * Create a new nodetype by passing a function, it wraps it with a proper class and generates inputs according to the parameters of the function.\n * Useful to wrap simple methods that do not require properties, and that only process some input to generate an output.\n * @method wrapFunctionAsNode\n * @param {String} name node name with namespace (p.e.: 'math/sum')\n * @param {Function} func\n * @param {Array} param_types [optional] an array containing the type of every parameter, otherwise parameters will accept any type\n * @param {String} return_type [optional] string with the return type, otherwise it will be generic\n * @param {Object} properties [optional] properties to be configurable\n */\n wrapFunctionAsNode(name, func, param_types, return_type, properties) {\n var params = Array(func.length);\n var code = \"\";\n var names = this.getParameterNames(func);\n for (var i2 = 0; i2 < names.length; ++i2) {\n code += \"this.addInput('\" + names[i2] + \"',\" + (param_types && param_types[i2] ? \"'\" + param_types[i2] + \"'\" : \"0\") + \");\\n\";\n }\n code += \"this.addOutput('out',\" + (return_type ? \"'\" + return_type + \"'\" : 0) + \");\\n\";\n if (properties) {\n code += \"this.properties = \" + JSON.stringify(properties) + \";\\n\";\n }\n var classobj = Function(code);\n classobj.title = name.split(\"/\").pop();\n classobj.desc = \"Generated from \" + func.name;\n classobj.prototype.onExecute = function onExecute() {\n for (var i22 = 0; i22 < params.length; ++i22) {\n params[i22] = this.getInputData(i22);\n }\n var r = func.apply(this, params);\n this.setOutputData(0, r);\n };\n this.registerNodeType(name, classobj);\n }\n /**\n * Removes all previously registered node's types\n */\n clearRegisteredTypes() {\n this.registered_node_types = {};\n this.node_types_by_file_extension = {};\n this.Nodes = {};\n this.searchbox_extras = {};\n }\n /**\n * Adds this method to all nodetypes, existing and to be created\n * (You can add it to LGraphNode.prototype but then existing node types wont have it)\n * @method addNodeMethod\n * @param {Function} func\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n addNodeMethod(name, func) {\n LGraphNode.prototype[name] = func;\n for (var i2 in this.registered_node_types) {\n var type = this.registered_node_types[i2];\n if (type.prototype[name]) {\n type.prototype[\"_\" + name] = type.prototype[name];\n }\n type.prototype[name] = func;\n }\n }\n /**\n * Create a node of a given type with a name. The node is not attached to any graph yet.\n * @method createNode\n * @param {String} type full name of the node class. p.e. \"math/sin\"\n * @param {String} name a name to distinguish from other nodes\n * @param {Object} options to set options\n */\n createNode(type, title, options) {\n var base_class = this.registered_node_types[type];\n if (!base_class) {\n if (this.debug) {\n console.log(\n 'GraphNode type \"' + type + '\" not registered.'\n );\n }\n return null;\n }\n base_class.prototype || base_class;\n title = title || base_class.title || type;\n var node2 = null;\n if (this.catch_exceptions) {\n try {\n node2 = new base_class(title);\n } catch (err) {\n console.error(err);\n return null;\n }\n } else {\n node2 = new base_class(title);\n }\n node2.type = type;\n if (!node2.title && title) {\n node2.title = title;\n }\n if (!node2.properties) {\n node2.properties = {};\n }\n if (!node2.properties_info) {\n node2.properties_info = [];\n }\n if (!node2.flags) {\n node2.flags = {};\n }\n if (!node2.size) {\n node2.size = node2.computeSize();\n }\n if (!node2.pos) {\n node2.pos = this.DEFAULT_POSITION.concat();\n }\n if (!node2.mode) {\n node2.mode = this.ALWAYS;\n }\n if (options) {\n for (var i2 in options) {\n node2[i2] = options[i2];\n }\n }\n if (node2.onNodeCreated) {\n node2.onNodeCreated();\n }\n return node2;\n }\n /**\n * Returns a registered node type with a given name\n * @method getNodeType\n * @param {String} type full name of the node class. p.e. \"math/sin\"\n * @return {Class} the node class\n */\n getNodeType(type) {\n return this.registered_node_types[type];\n }\n /**\n * Returns a list of node types matching one category\n * @method getNodeType\n * @param {String} category category name\n * @return {Array} array with all the node classes\n */\n getNodeTypesInCategory(category, filter) {\n var r = [];\n for (var i2 in this.registered_node_types) {\n var type = this.registered_node_types[i2];\n if (type.filter != filter) {\n continue;\n }\n if (category == \"\") {\n if (type.category == null) {\n r.push(type);\n }\n } else if (type.category == category) {\n r.push(type);\n }\n }\n if (this.auto_sort_node_types) {\n r.sort(function(a, b) {\n return a.title.localeCompare(b.title);\n });\n }\n return r;\n }\n /**\n * Returns a list with all the node type categories\n * @method getNodeTypesCategories\n * @param {String} filter only nodes with ctor.filter equal can be shown\n * @return {Array} array with all the names of the categories\n */\n getNodeTypesCategories(filter) {\n var categories = { \"\": 1 };\n for (var i2 in this.registered_node_types) {\n var type = this.registered_node_types[i2];\n if (type.category && !type.skip_list) {\n if (type.filter != filter)\n continue;\n categories[type.category] = 1;\n }\n }\n var result = [];\n for (var i2 in categories) {\n result.push(i2);\n }\n return this.auto_sort_node_types ? result.sort() : result;\n }\n //debug purposes: reloads all the js scripts that matches a wildcard\n reloadNodes(folder_wildcard) {\n var tmp = document.getElementsByTagName(\"script\");\n var script_files = [];\n for (var i2 = 0; i2 < tmp.length; i2++) {\n script_files.push(tmp[i2]);\n }\n var docHeadObj = document.getElementsByTagName(\"head\")[0];\n folder_wildcard = document.location.href + folder_wildcard;\n for (var i2 = 0; i2 < script_files.length; i2++) {\n var src = script_files[i2].src;\n if (!src || src.substr(0, folder_wildcard.length) != folder_wildcard) {\n continue;\n }\n try {\n if (this.debug) {\n console.log(\"Reloading: \" + src);\n }\n var dynamicScript = document.createElement(\"script\");\n dynamicScript.type = \"text/javascript\";\n dynamicScript.src = src;\n docHeadObj.appendChild(dynamicScript);\n docHeadObj.removeChild(script_files[i2]);\n } catch (err) {\n if (this.throw_errors) {\n throw err;\n }\n if (this.debug) {\n console.log(\"Error while reloading \" + src);\n }\n }\n }\n if (this.debug) {\n console.log(\"Nodes reloaded\");\n }\n }\n //separated just to improve if it doesn't work\n cloneObject(obj, target) {\n if (obj == null) {\n return null;\n }\n var r = JSON.parse(JSON.stringify(obj));\n if (!target) {\n return r;\n }\n for (var i2 in r) {\n target[i2] = r[i2];\n }\n return target;\n }\n /*\n * https://gist.github.com/jed/982883?permalink_comment_id=852670#gistcomment-852670\n */\n uuidv4() {\n return (\"10000000-1000-4000-8000\" + -1e11).replace(/[018]/g, (a) => (a ^ Math.random() * 16 >> a / 4).toString(16));\n }\n /**\n * Returns if the types of two slots are compatible (taking into account wildcards, etc)\n * @method isValidConnection\n * @param {String} type_a\n * @param {String} type_b\n * @return {Boolean} true if they can be connected\n */\n isValidConnection(type_a, type_b) {\n if (type_a == \"\" || type_a === \"*\") type_a = 0;\n if (type_b == \"\" || type_b === \"*\") type_b = 0;\n if (!type_a || !type_b || type_a == type_b || type_a == this.EVENT && type_b == this.ACTION) {\n return true;\n }\n type_a = String(type_a);\n type_b = String(type_b);\n type_a = type_a.toLowerCase();\n type_b = type_b.toLowerCase();\n if (type_a.indexOf(\",\") == -1 && type_b.indexOf(\",\") == -1) {\n return type_a == type_b;\n }\n var supported_types_a = type_a.split(\",\");\n var supported_types_b = type_b.split(\",\");\n for (var i2 = 0; i2 < supported_types_a.length; ++i2) {\n for (var j = 0; j < supported_types_b.length; ++j) {\n if (this.isValidConnection(supported_types_a[i2], supported_types_b[j])) {\n return true;\n }\n }\n }\n return false;\n }\n /**\n * Register a string in the search box so when the user types it it will recommend this node\n * @method registerSearchboxExtra\n * @param {String} node_type the node recommended\n * @param {String} description text to show next to it\n * @param {Object} data it could contain info of how the node should be configured\n * @return {Boolean} true if they can be connected\n */\n registerSearchboxExtra(node_type, description, data) {\n this.searchbox_extras[description.toLowerCase()] = {\n type: node_type,\n desc: description,\n data\n };\n }\n /**\n * Wrapper to load files (from url using fetch or from file using FileReader)\n * @method fetchFile\n * @param {String|File|Blob} url the url of the file (or the file itself)\n * @param {String} type an string to know how to fetch it: \"text\",\"arraybuffer\",\"json\",\"blob\"\n * @param {Function} on_complete callback(data)\n * @param {Function} on_error in case of an error\n * @return {FileReader|Promise} returns the object used to\n */\n fetchFile(url, type, on_complete, on_error) {\n if (!url)\n return null;\n type = type || \"text\";\n if (url.constructor === String) {\n if (url.substr(0, 4) == \"http\" && this.proxy) {\n url = this.proxy + url.substr(url.indexOf(\":\") + 3);\n }\n return fetch(url).then(function(response) {\n if (!response.ok)\n throw new Error(\"File not found\");\n if (type == \"arraybuffer\")\n return response.arrayBuffer();\n else if (type == \"text\" || type == \"string\")\n return response.text();\n else if (type == \"json\")\n return response.json();\n else if (type == \"blob\")\n return response.blob();\n }).then(function(data) {\n if (on_complete)\n on_complete(data);\n }).catch(function(error) {\n console.error(\"error fetching file:\", url);\n if (on_error)\n on_error(error);\n });\n } else if (url.constructor === File || url.constructor === Blob) {\n var reader = new FileReader();\n reader.onload = function(e) {\n var v2 = e.target.result;\n if (type == \"json\")\n v2 = JSON.parse(v2);\n if (on_complete)\n on_complete(v2);\n };\n if (type == \"arraybuffer\")\n return reader.readAsArrayBuffer(url);\n else if (type == \"text\" || type == \"json\")\n return reader.readAsText(url);\n else if (type == \"blob\")\n return reader.readAsBinaryString(url);\n }\n return null;\n }\n //used to create nodes from wrapping functions\n getParameterNames(func) {\n return (func + \"\").replace(/[/][/].*$/gm, \"\").replace(/\\s+/g, \"\").replace(/[/][*][^/*]*[*][/]/g, \"\").split(\"){\", 1)[0].replace(/^[^(]*[(]/, \"\").replace(/=[^,]+/g, \"\").split(\",\").filter(Boolean);\n }\n /* helper for interaction: pointer, touch, mouse Listeners\n used by LGraphCanvas DragAndScale ContextMenu*/\n pointerListenerAdd(oDOM, sEvIn, fCall, capture = false) {\n if (!oDOM || !oDOM.addEventListener || !sEvIn || typeof fCall !== \"function\") {\n return;\n }\n var sMethod = LiteGraph.pointerevents_method;\n var sEvent = sEvIn;\n if (sMethod == \"pointer\" && !window.PointerEvent) {\n console.warn(\"sMethod=='pointer' && !window.PointerEvent\");\n console.log(\"Converting pointer[\" + sEvent + \"] : down move up cancel enter TO touchstart touchmove touchend, etc ..\");\n switch (sEvent) {\n case \"down\": {\n sMethod = \"touch\";\n sEvent = \"start\";\n break;\n }\n case \"move\": {\n sMethod = \"touch\";\n break;\n }\n case \"up\": {\n sMethod = \"touch\";\n sEvent = \"end\";\n break;\n }\n case \"cancel\": {\n sMethod = \"touch\";\n break;\n }\n case \"enter\": {\n console.log(\"debug: Should I send a move event?\");\n break;\n }\n default: {\n console.warn(\"PointerEvent not available in this browser ? The event \" + sEvent + \" would not be called\");\n }\n }\n }\n switch (sEvent) {\n case \"down\":\n case \"up\":\n case \"move\":\n case \"over\":\n case \"out\":\n case \"enter\": {\n oDOM.addEventListener(sMethod + sEvent, fCall, capture);\n }\n case \"leave\":\n case \"cancel\":\n case \"gotpointercapture\":\n case \"lostpointercapture\": {\n if (sMethod != \"mouse\") {\n return oDOM.addEventListener(sMethod + sEvent, fCall, capture);\n }\n }\n default:\n return oDOM.addEventListener(sEvent, fCall, capture);\n }\n }\n pointerListenerRemove(oDOM, sEvent, fCall, capture = false) {\n if (!oDOM || !oDOM.removeEventListener || !sEvent || typeof fCall !== \"function\") {\n return;\n }\n switch (sEvent) {\n case \"down\":\n case \"up\":\n case \"move\":\n case \"over\":\n case \"out\":\n case \"enter\": {\n if (LiteGraph.pointerevents_method == \"pointer\" || LiteGraph.pointerevents_method == \"mouse\") {\n oDOM.removeEventListener(LiteGraph.pointerevents_method + sEvent, fCall, capture);\n }\n }\n case \"leave\":\n case \"cancel\":\n case \"gotpointercapture\":\n case \"lostpointercapture\": {\n if (LiteGraph.pointerevents_method == \"pointer\") {\n return oDOM.removeEventListener(LiteGraph.pointerevents_method + sEvent, fCall, capture);\n }\n }\n default:\n return oDOM.removeEventListener(sEvent, fCall, capture);\n }\n }\n getTime;\n compareObjects(a, b) {\n for (var i2 in a) {\n if (a[i2] != b[i2]) {\n return false;\n }\n }\n return true;\n }\n distance = distance;\n colorToString(c) {\n return \"rgba(\" + Math.round(c[0] * 255).toFixed() + \",\" + Math.round(c[1] * 255).toFixed() + \",\" + Math.round(c[2] * 255).toFixed() + \",\" + (c.length == 4 ? c[3].toFixed(2) : \"1.0\") + \")\";\n }\n isInsideRectangle = isInsideRectangle;\n //[minx,miny,maxx,maxy]\n growBounding(bounding, x2, y2) {\n if (x2 < bounding[0]) {\n bounding[0] = x2;\n } else if (x2 > bounding[2]) {\n bounding[2] = x2;\n }\n if (y2 < bounding[1]) {\n bounding[1] = y2;\n } else if (y2 > bounding[3]) {\n bounding[3] = y2;\n }\n }\n overlapBounding = overlapBounding;\n //point inside bounding box\n isInsideBounding(p, bb) {\n if (p[0] < bb[0][0] || p[1] < bb[0][1] || p[0] > bb[1][0] || p[1] > bb[1][1]) {\n return false;\n }\n return true;\n }\n //Convert a hex value to its decimal value - the inputted hex must be in the\n //\tformat of a hex triplet - the kind we use for HTML colours. The function\n //\twill return an array with three values.\n hex2num(hex) {\n if (hex.charAt(0) == \"#\") {\n hex = hex.slice(1);\n }\n hex = hex.toUpperCase();\n var hex_alphabets = \"0123456789ABCDEF\";\n var value = new Array(3);\n var k = 0;\n var int1, int2;\n for (var i2 = 0; i2 < 6; i2 += 2) {\n int1 = hex_alphabets.indexOf(hex.charAt(i2));\n int2 = hex_alphabets.indexOf(hex.charAt(i2 + 1));\n value[k] = int1 * 16 + int2;\n k++;\n }\n return value;\n }\n //Give a array with three values as the argument and the function will return\n //\tthe corresponding hex triplet.\n num2hex(triplet) {\n var hex_alphabets = \"0123456789ABCDEF\";\n var hex = \"#\";\n var int1, int2;\n for (var i2 = 0; i2 < 3; i2++) {\n int1 = triplet[i2] / 16;\n int2 = triplet[i2] % 16;\n hex += hex_alphabets.charAt(int1) + hex_alphabets.charAt(int2);\n }\n return hex;\n }\n closeAllContextMenus(ref_window2) {\n ref_window2 = ref_window2 || window;\n var elements = ref_window2.document.querySelectorAll(\".litecontextmenu\");\n if (!elements.length) {\n return;\n }\n var result = [];\n for (var i2 = 0; i2 < elements.length; i2++) {\n result.push(elements[i2]);\n }\n for (var i2 = 0; i2 < result.length; i2++) {\n if (result[i2].close) {\n result[i2].close();\n } else if (result[i2].parentNode) {\n result[i2].parentNode.removeChild(result[i2]);\n }\n }\n }\n extendClass(target, origin) {\n for (var i2 in origin) {\n if (target.hasOwnProperty(i2)) {\n continue;\n }\n target[i2] = origin[i2];\n }\n if (origin.prototype) {\n for (var i2 in origin.prototype) {\n if (!origin.prototype.hasOwnProperty(i2)) {\n continue;\n }\n if (target.prototype.hasOwnProperty(i2)) {\n continue;\n }\n if (origin.prototype.__lookupGetter__(i2)) {\n target.prototype.__defineGetter__(\n i2,\n origin.prototype.__lookupGetter__(i2)\n );\n } else {\n target.prototype[i2] = origin.prototype[i2];\n }\n if (origin.prototype.__lookupSetter__(i2)) {\n target.prototype.__defineSetter__(\n i2,\n origin.prototype.__lookupSetter__(i2)\n );\n }\n }\n }\n }\n}\nfunction loadPolyfills() {\n if (typeof window != \"undefined\" && window.CanvasRenderingContext2D && !window.CanvasRenderingContext2D.prototype.roundRect) {\n window.CanvasRenderingContext2D.prototype.roundRect = function(x2, y2, w2, h, radius, radius_low) {\n var top_left_radius = 0;\n var top_right_radius = 0;\n var bottom_left_radius = 0;\n var bottom_right_radius = 0;\n if (radius === 0) {\n this.rect(x2, y2, w2, h);\n return;\n }\n if (radius_low === void 0)\n radius_low = radius;\n if (radius != null && radius.constructor === Array) {\n if (radius.length == 1)\n top_left_radius = top_right_radius = bottom_left_radius = bottom_right_radius = radius[0];\n else if (radius.length == 2) {\n top_left_radius = bottom_right_radius = radius[0];\n top_right_radius = bottom_left_radius = radius[1];\n } else if (radius.length == 4) {\n top_left_radius = radius[0];\n top_right_radius = radius[1];\n bottom_left_radius = radius[2];\n bottom_right_radius = radius[3];\n } else\n return;\n } else {\n top_left_radius = radius || 0;\n top_right_radius = radius || 0;\n bottom_left_radius = radius_low || 0;\n bottom_right_radius = radius_low || 0;\n }\n this.moveTo(x2 + top_left_radius, y2);\n this.lineTo(x2 + w2 - top_right_radius, y2);\n this.quadraticCurveTo(x2 + w2, y2, x2 + w2, y2 + top_right_radius);\n this.lineTo(x2 + w2, y2 + h - bottom_right_radius);\n this.quadraticCurveTo(\n x2 + w2,\n y2 + h,\n x2 + w2 - bottom_right_radius,\n y2 + h\n );\n this.lineTo(x2 + bottom_right_radius, y2 + h);\n this.quadraticCurveTo(x2, y2 + h, x2, y2 + h - bottom_left_radius);\n this.lineTo(x2, y2 + bottom_left_radius);\n this.quadraticCurveTo(x2, y2, x2 + top_left_radius, y2);\n };\n }\n if (typeof window != \"undefined\" && !window[\"requestAnimationFrame\"]) {\n window.requestAnimationFrame = // @ts-expect-error Legacy code\n window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) {\n window.setTimeout(callback, 1e3 / 60);\n };\n }\n}\nclass DragAndScale {\n max_scale;\n min_scale;\n offset;\n scale;\n enabled;\n last_mouse;\n element;\n visible_area;\n _binded_mouse_callback;\n dragging;\n viewport;\n constructor(element, skip_events) {\n this.offset = new Float32Array([0, 0]);\n this.scale = 1;\n this.max_scale = 10;\n this.min_scale = 0.1;\n this.onredraw = null;\n this.enabled = true;\n this.last_mouse = [0, 0];\n this.element = null;\n this.visible_area = new Float32Array(4);\n if (element) {\n this.element = element;\n if (!skip_events) {\n this.bindEvents(element);\n }\n }\n }\n bindEvents(element) {\n this.last_mouse = new Float32Array(2);\n this._binded_mouse_callback = this.onMouse.bind(this);\n LiteGraph.pointerListenerAdd(element, \"down\", this._binded_mouse_callback);\n LiteGraph.pointerListenerAdd(element, \"move\", this._binded_mouse_callback);\n LiteGraph.pointerListenerAdd(element, \"up\", this._binded_mouse_callback);\n element.addEventListener(\n \"mousewheel\",\n this._binded_mouse_callback,\n false\n );\n element.addEventListener(\"wheel\", this._binded_mouse_callback, false);\n }\n computeVisibleArea(viewport) {\n if (!this.element) {\n this.visible_area[0] = this.visible_area[1] = this.visible_area[2] = this.visible_area[3] = 0;\n return;\n }\n var width2 = this.element.width;\n var height = this.element.height;\n var startx = -this.offset[0];\n var starty = -this.offset[1];\n if (viewport) {\n startx += viewport[0] / this.scale;\n starty += viewport[1] / this.scale;\n width2 = viewport[2];\n height = viewport[3];\n }\n var endx = startx + width2 / this.scale;\n var endy = starty + height / this.scale;\n this.visible_area[0] = startx;\n this.visible_area[1] = starty;\n this.visible_area[2] = endx - startx;\n this.visible_area[3] = endy - starty;\n }\n onMouse(e) {\n if (!this.enabled) {\n return;\n }\n var canvas = this.element;\n var rect = canvas.getBoundingClientRect();\n var x2 = e.clientX - rect.left;\n var y2 = e.clientY - rect.top;\n e.canvasx = x2;\n e.canvasy = y2;\n e.dragging = this.dragging;\n var is_inside = !this.viewport || this.viewport && x2 >= this.viewport[0] && x2 < this.viewport[0] + this.viewport[2] && y2 >= this.viewport[1] && y2 < this.viewport[1] + this.viewport[3];\n var ignore = false;\n if (this.onmouse) {\n ignore = this.onmouse(e);\n }\n if (e.type == LiteGraph.pointerevents_method + \"down\" && is_inside) {\n this.dragging = true;\n LiteGraph.pointerListenerRemove(canvas, \"move\", this._binded_mouse_callback);\n LiteGraph.pointerListenerAdd(document, \"move\", this._binded_mouse_callback);\n LiteGraph.pointerListenerAdd(document, \"up\", this._binded_mouse_callback);\n } else if (e.type == LiteGraph.pointerevents_method + \"move\") {\n if (!ignore) {\n var deltax = x2 - this.last_mouse[0];\n var deltay = y2 - this.last_mouse[1];\n if (this.dragging) {\n this.mouseDrag(deltax, deltay);\n }\n }\n } else if (e.type == LiteGraph.pointerevents_method + \"up\") {\n this.dragging = false;\n LiteGraph.pointerListenerRemove(document, \"move\", this._binded_mouse_callback);\n LiteGraph.pointerListenerRemove(document, \"up\", this._binded_mouse_callback);\n LiteGraph.pointerListenerAdd(canvas, \"move\", this._binded_mouse_callback);\n } else if (is_inside && (e.type == \"mousewheel\" || e.type == \"wheel\" || e.type == \"DOMMouseScroll\")) {\n e.eventType = \"mousewheel\";\n if (e.type == \"wheel\") {\n e.wheel = -e.deltaY;\n } else {\n e.wheel = e.wheelDeltaY != null ? e.wheelDeltaY : e.detail * -60;\n }\n e.delta = e.wheelDelta ? e.wheelDelta / 40 : e.deltaY ? -e.deltaY / 3 : 0;\n this.changeDeltaScale(1 + e.delta * 0.05);\n }\n this.last_mouse[0] = x2;\n this.last_mouse[1] = y2;\n if (is_inside) {\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n }\n toCanvasContext(ctx) {\n ctx.scale(this.scale, this.scale);\n ctx.translate(this.offset[0], this.offset[1]);\n }\n convertOffsetToCanvas(pos2) {\n return [\n (pos2[0] + this.offset[0]) * this.scale,\n (pos2[1] + this.offset[1]) * this.scale\n ];\n }\n convertCanvasToOffset(pos2, out) {\n out = out || [0, 0];\n out[0] = pos2[0] / this.scale - this.offset[0];\n out[1] = pos2[1] / this.scale - this.offset[1];\n return out;\n }\n mouseDrag(x2, y2) {\n this.offset[0] += x2 / this.scale;\n this.offset[1] += y2 / this.scale;\n if (this.onredraw) {\n this.onredraw(this);\n }\n }\n changeScale(value, zooming_center) {\n if (value < this.min_scale) {\n value = this.min_scale;\n } else if (value > this.max_scale) {\n value = this.max_scale;\n }\n if (value == this.scale) {\n return;\n }\n if (!this.element) {\n return;\n }\n var rect = this.element.getBoundingClientRect();\n if (!rect) {\n return;\n }\n zooming_center = zooming_center || [\n rect.width * 0.5,\n rect.height * 0.5\n ];\n var center = this.convertCanvasToOffset(zooming_center);\n this.scale = value;\n if (Math.abs(this.scale - 1) < 0.01) {\n this.scale = 1;\n }\n var new_center = this.convertCanvasToOffset(zooming_center);\n var delta_offset = [\n new_center[0] - center[0],\n new_center[1] - center[1]\n ];\n this.offset[0] += delta_offset[0];\n this.offset[1] += delta_offset[1];\n if (this.onredraw) {\n this.onredraw(this);\n }\n }\n changeDeltaScale(value, zooming_center) {\n this.changeScale(this.scale * value, zooming_center);\n }\n reset() {\n this.scale = 1;\n this.offset[0] = 0;\n this.offset[1] = 0;\n }\n}\nfunction stringOrNull(value) {\n return value == null ? null : String(value);\n}\nclass LGraphCanvas {\n /* Interaction */\n static #temp = new Float32Array(4);\n static #temp_vec2 = new Float32Array(2);\n static #tmp_area = new Float32Array(4);\n static #margin_area = new Float32Array(4);\n static #link_bounding = new Float32Array(4);\n static #tempA = new Float32Array(2);\n static #tempB = new Float32Array(2);\n static DEFAULT_BACKGROUND_IMAGE = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQBJREFUeNrs1rEKwjAUhlETUkj3vP9rdmr1Ysammk2w5wdxuLgcMHyptfawuZX4pJSWZTnfnu/lnIe/jNNxHHGNn//HNbbv+4dr6V+11uF527arU7+u63qfa/bnmh8sWLBgwYJlqRf8MEptXPBXJXa37BSl3ixYsGDBMliwFLyCV/DeLIMFCxYsWLBMwSt4Be/NggXLYMGCBUvBK3iNruC9WbBgwYJlsGApeAWv4L1ZBgsWLFiwYJmCV/AK3psFC5bBggULloJX8BpdwXuzYMGCBctgwVLwCl7Be7MMFixYsGDBsu8FH1FaSmExVfAxBa/gvVmwYMGCZbBg/W4vAQYA5tRF9QYlv/QAAAAASUVORK5CYII=\";\n // TODO: Remove workaround - this should be instance-based, regardless. \"-1\" formerly pointed to LiteGraph.EVENT_LINK_COLOR.\n static link_type_colors = {\n \"-1\": LiteGraphGlobal.DEFAULT_EVENT_LINK_COLOR,\n number: \"#AAA\",\n node: \"#DCA\"\n };\n static gradients = {};\n //cache of gradients\n static search_limit = -1;\n static node_colors = {\n red: { color: \"#322\", bgcolor: \"#533\", groupcolor: \"#A88\" },\n brown: { color: \"#332922\", bgcolor: \"#593930\", groupcolor: \"#b06634\" },\n green: { color: \"#232\", bgcolor: \"#353\", groupcolor: \"#8A8\" },\n blue: { color: \"#223\", bgcolor: \"#335\", groupcolor: \"#88A\" },\n pale_blue: {\n color: \"#2a363b\",\n bgcolor: \"#3f5159\",\n groupcolor: \"#3f789e\"\n },\n cyan: { color: \"#233\", bgcolor: \"#355\", groupcolor: \"#8AA\" },\n purple: { color: \"#323\", bgcolor: \"#535\", groupcolor: \"#a1309b\" },\n yellow: { color: \"#432\", bgcolor: \"#653\", groupcolor: \"#b58b2a\" },\n black: { color: \"#222\", bgcolor: \"#000\", groupcolor: \"#444\" }\n };\n _dragging_canvas = false;\n get dragging_canvas() {\n return this._dragging_canvas;\n }\n set dragging_canvas(value) {\n if (value !== this._dragging_canvas) {\n this._dragging_canvas = value;\n this.emitEvent({\n subType: \"dragging-canvas\",\n draggingCanvas: value\n });\n }\n }\n // Whether the canvas was previously being dragged prior to pressing space key.\n // null if space key is not pressed.\n _previously_dragging_canvas = null;\n // if set to true users cannot modify the graph\n _read_only = false;\n get read_only() {\n return this._read_only;\n }\n set read_only(value) {\n if (value !== this._read_only) {\n this._read_only = value;\n this.emitEvent({\n subType: \"read-only\",\n readOnly: value\n });\n }\n }\n options;\n background_image;\n ds;\n zoom_modify_alpha;\n zoom_speed;\n title_text_font;\n inner_text_font;\n node_title_color;\n default_link_color;\n default_connection_color;\n default_connection_color_byType;\n default_connection_color_byTypeOff;\n highquality_render;\n use_gradients;\n editor_alpha;\n pause_rendering;\n clear_background;\n clear_background_color;\n render_only_selected;\n live_mode;\n show_info;\n allow_dragcanvas;\n allow_dragnodes;\n allow_interaction;\n multi_select;\n allow_searchbox;\n allow_reconnect_links;\n align_to_grid;\n drag_mode;\n dragging_rectangle;\n filter;\n set_canvas_dirty_on_mouse_event;\n always_render_background;\n render_shadows;\n render_canvas_border;\n render_connections_shadows;\n render_connections_border;\n render_curved_connections;\n render_connection_arrows;\n render_collapsed_slots;\n render_execution_order;\n render_title_colored;\n render_link_tooltip;\n links_render_mode;\n mouse;\n graph_mouse;\n canvas_mouse;\n onSearchBox;\n onSearchBoxSelection;\n onMouse;\n onDrawBackground;\n onDrawForeground;\n connections_width;\n round_radius;\n current_node;\n node_widget;\n over_link_center;\n last_mouse_position;\n visible_area;\n visible_links;\n connecting_links;\n viewport;\n autoresize;\n static active_canvas;\n frame;\n last_draw_time;\n render_time;\n fps;\n selected_nodes;\n selected_group;\n visible_nodes;\n node_dragged;\n node_over;\n node_capturing_input;\n highlighted_links;\n link_over_widget;\n link_over_widget_type;\n dirty_canvas;\n dirty_bgcanvas;\n /** A map of nodes that require selective-redraw */\n dirty_nodes = /* @__PURE__ */ new Map();\n dirty_area;\n // Unused\n node_in_panel;\n last_mouse;\n last_mouseclick;\n pointer_is_down;\n pointer_is_double;\n graph;\n _graph_stack;\n canvas;\n bgcanvas;\n ctx;\n _events_binded;\n gl;\n bgctx;\n is_rendering;\n block_click;\n last_click_position;\n resizing_node;\n selected_group_resizing;\n last_mouse_dragging;\n onMouseDown;\n _highlight_pos;\n _highlight_input;\n _highlight_input_slot;\n _highlight_output;\n // TODO: Check if panels are used\n node_panel;\n options_panel;\n onDropItem;\n _bg_img;\n _pattern;\n _pattern_img;\n // TODO: This looks like another panel thing\n prompt_box;\n search_box;\n SELECTED_NODE;\n NODEPANEL_IS_OPEN;\n static active_node;\n onClear;\n onNodeMoved;\n onSelectionChange;\n onDrawLinkTooltip;\n onDrawOverlay;\n onRenderBackground;\n onNodeDblClicked;\n onShowNodePanel;\n onNodeSelected;\n onNodeDeselected;\n onRender;\n /** Implement this function to allow conversion of widget types to input types, e.g. number -> INT or FLOAT for widget link validation checks */\n getWidgetLinkType;\n // FIXME: Has never worked - undefined\n visible_rect;\n constructor(canvas, graph, options) {\n this.options = options = options || {};\n this.background_image = LGraphCanvas.DEFAULT_BACKGROUND_IMAGE;\n if (canvas && canvas.constructor === String) {\n canvas = document.querySelector(canvas);\n }\n this.ds = new DragAndScale();\n this.zoom_modify_alpha = true;\n this.zoom_speed = 1.1;\n this.title_text_font = \"\" + LiteGraph.NODE_TEXT_SIZE + \"px Arial\";\n this.inner_text_font = \"normal \" + LiteGraph.NODE_SUBTEXT_SIZE + \"px Arial\";\n this.node_title_color = LiteGraph.NODE_TITLE_COLOR;\n this.default_link_color = LiteGraph.LINK_COLOR;\n this.default_connection_color = {\n input_off: \"#778\",\n input_on: \"#7F7\",\n //\"#BBD\"\n output_off: \"#778\",\n output_on: \"#7F7\"\n //\"#BBD\"\n };\n this.default_connection_color_byType = {\n /*number: \"#7F7\",\n string: \"#77F\",\n boolean: \"#F77\",*/\n };\n this.default_connection_color_byTypeOff = {\n /*number: \"#474\",\n string: \"#447\",\n boolean: \"#744\",*/\n };\n this.highquality_render = true;\n this.use_gradients = false;\n this.editor_alpha = 1;\n this.pause_rendering = false;\n this.clear_background = true;\n this.clear_background_color = \"#222\";\n this.render_only_selected = true;\n this.live_mode = false;\n this.show_info = true;\n this.allow_dragcanvas = true;\n this.allow_dragnodes = true;\n this.allow_interaction = true;\n this.multi_select = false;\n this.allow_searchbox = true;\n this.allow_reconnect_links = true;\n this.align_to_grid = false;\n this.drag_mode = false;\n this.dragging_rectangle = null;\n this.filter = null;\n this.set_canvas_dirty_on_mouse_event = true;\n this.always_render_background = false;\n this.render_shadows = true;\n this.render_canvas_border = true;\n this.render_connections_shadows = false;\n this.render_connections_border = true;\n this.render_curved_connections = false;\n this.render_connection_arrows = false;\n this.render_collapsed_slots = true;\n this.render_execution_order = false;\n this.render_title_colored = true;\n this.render_link_tooltip = true;\n this.links_render_mode = LiteGraph.SPLINE_LINK;\n this.mouse = [0, 0];\n this.graph_mouse = [0, 0];\n this.canvas_mouse = this.graph_mouse;\n this.onSearchBox = null;\n this.onSearchBoxSelection = null;\n this.onMouse = null;\n this.onDrawBackground = null;\n this.onDrawForeground = null;\n this.onDrawOverlay = null;\n this.onDrawLinkTooltip = null;\n this.onNodeMoved = null;\n this.onSelectionChange = null;\n this.onConnectingChange = null;\n this.onBeforeChange = null;\n this.onAfterChange = null;\n this.connections_width = 3;\n this.round_radius = 8;\n this.current_node = null;\n this.node_widget = null;\n this.over_link_center = null;\n this.last_mouse_position = [0, 0];\n this.visible_area = this.ds.visible_area;\n this.visible_links = [];\n this.connecting_links = null;\n this.viewport = options.viewport || null;\n graph?.attachCanvas(this);\n this.setCanvas(canvas, options.skip_events);\n this.clear();\n if (!options.skip_render) {\n this.startRendering();\n }\n this.autoresize = options.autoresize;\n }\n static getFileExtension(url) {\n const question = url.indexOf(\"?\");\n if (question != -1) {\n url = url.substr(0, question);\n }\n const point = url.lastIndexOf(\".\");\n if (point == -1) {\n return \"\";\n }\n return url.substr(point + 1).toLowerCase();\n }\n /* this is an implementation for touch not in production and not ready\n */\n /*LGraphCanvas.prototype.touchHandler = function(event) {\n //alert(\"foo\");\n var touches = event.changedTouches,\n first = touches[0],\n type = \"\";\n \n switch (event.type) {\n case \"touchstart\":\n type = \"mousedown\";\n break;\n case \"touchmove\":\n type = \"mousemove\";\n break;\n case \"touchend\":\n type = \"mouseup\";\n break;\n default:\n return;\n }\n \n //initMouseEvent(type, canBubble, cancelable, view, clickCount,\n // screenX, screenY, clientX, clientY, ctrlKey,\n // altKey, shiftKey, metaKey, button, relatedTarget);\n \n // this is eventually a Dom object, get the LGraphCanvas back\n if(typeof this.getCanvasWindow == \"undefined\"){\n var window = this.lgraphcanvas.getCanvasWindow();\n }else{\n var window = this.getCanvasWindow();\n }\n \n var document = window.document;\n \n var simulatedEvent = document.createEvent(\"MouseEvent\");\n simulatedEvent.initMouseEvent(\n type,\n true,\n true,\n window,\n 1,\n first.screenX,\n first.screenY,\n first.clientX,\n first.clientY,\n false,\n false,\n false,\n false,\n 0, //left\n null\n );\n first.target.dispatchEvent(simulatedEvent);\n event.preventDefault();\n };*/\n /* CONTEXT MENU ********************/\n static onGroupAdd(info, entry, mouse_event) {\n const canvas = LGraphCanvas.active_canvas;\n const group = new LiteGraph.LGraphGroup();\n group.pos = canvas.convertEventToCanvasOffset(mouse_event);\n canvas.graph.add(group);\n }\n /**\n * Determines the furthest nodes in each direction\n * @param {Dictionary} nodes the nodes to from which boundary nodes will be extracted\n * @return {{left: LGraphNode, top: LGraphNode, right: LGraphNode, bottom: LGraphNode}}\n */\n static getBoundaryNodes(nodes) {\n let top = null;\n let right = null;\n let bottom = null;\n let left = null;\n for (const nID in nodes) {\n const node2 = nodes[nID];\n const [x2, y2] = node2.pos;\n const [width2, height] = node2.size;\n if (top === null || y2 < top.pos[1]) {\n top = node2;\n }\n if (right === null || x2 + width2 > right.pos[0] + right.size[0]) {\n right = node2;\n }\n if (bottom === null || y2 + height > bottom.pos[1] + bottom.size[1]) {\n bottom = node2;\n }\n if (left === null || x2 < left.pos[0]) {\n left = node2;\n }\n }\n return {\n \"top\": top,\n \"right\": right,\n \"bottom\": bottom,\n \"left\": left\n };\n }\n /**\n *\n * @param {Dictionary} nodes a list of nodes\n * @param {\"top\"|\"bottom\"|\"left\"|\"right\"} direction Direction to align the nodes\n * @param {LGraphNode?} align_to Node to align to (if null, align to the furthest node in the given direction)\n */\n static alignNodes(nodes, direction, align_to) {\n if (!nodes) {\n return;\n }\n const canvas = LGraphCanvas.active_canvas;\n let boundaryNodes;\n if (align_to === void 0) {\n boundaryNodes = LGraphCanvas.getBoundaryNodes(nodes);\n } else {\n boundaryNodes = {\n \"top\": align_to,\n \"right\": align_to,\n \"bottom\": align_to,\n \"left\": align_to\n };\n }\n for (const node2 of Object.values(canvas.selected_nodes)) {\n switch (direction) {\n case \"right\":\n node2.pos[0] = boundaryNodes[\"right\"].pos[0] + boundaryNodes[\"right\"].size[0] - node2.size[0];\n break;\n case \"left\":\n node2.pos[0] = boundaryNodes[\"left\"].pos[0];\n break;\n case \"top\":\n node2.pos[1] = boundaryNodes[\"top\"].pos[1];\n break;\n case \"bottom\":\n node2.pos[1] = boundaryNodes[\"bottom\"].pos[1] + boundaryNodes[\"bottom\"].size[1] - node2.size[1];\n break;\n }\n }\n canvas.dirty_canvas = true;\n canvas.dirty_bgcanvas = true;\n }\n static onNodeAlign(value, options, event2, prev_menu, node2) {\n new LiteGraph.ContextMenu([\"Top\", \"Bottom\", \"Left\", \"Right\"], {\n event: event2,\n callback: inner_clicked,\n parentMenu: prev_menu\n });\n function inner_clicked(value2) {\n LGraphCanvas.alignNodes(LGraphCanvas.active_canvas.selected_nodes, value2.toLowerCase(), node2);\n }\n }\n static onGroupAlign(value, options, event2, prev_menu) {\n new LiteGraph.ContextMenu([\"Top\", \"Bottom\", \"Left\", \"Right\"], {\n event: event2,\n callback: inner_clicked,\n parentMenu: prev_menu\n });\n function inner_clicked(value2) {\n LGraphCanvas.alignNodes(LGraphCanvas.active_canvas.selected_nodes, value2.toLowerCase());\n }\n }\n static onMenuAdd(node2, options, e, prev_menu, callback) {\n const canvas = LGraphCanvas.active_canvas;\n const ref_window2 = canvas.getCanvasWindow();\n const graph = canvas.graph;\n if (!graph)\n return;\n function inner_onMenuAdded(base_category, prev_menu2) {\n const categories = LiteGraph.getNodeTypesCategories(canvas.filter || graph.filter).filter(function(category) {\n return category.startsWith(base_category);\n });\n const entries = [];\n categories.map(function(category) {\n if (!category)\n return;\n const base_category_regex = new RegExp(\"^(\" + base_category + \")\");\n const category_name = category.replace(base_category_regex, \"\").split(\"/\")[0];\n const category_path = base_category === \"\" ? category_name + \"/\" : base_category + category_name + \"/\";\n let name = category_name;\n if (name.indexOf(\"::\") != -1)\n name = name.split(\"::\")[1];\n const index = entries.findIndex(function(entry) {\n return entry.value === category_path;\n });\n if (index === -1) {\n entries.push({\n value: category_path,\n content: name,\n has_submenu: true,\n callback: function(value, event2, mouseEvent, contextMenu) {\n inner_onMenuAdded(value.value, contextMenu);\n }\n });\n }\n });\n const nodes = LiteGraph.getNodeTypesInCategory(base_category.slice(0, -1), canvas.filter || graph.filter);\n nodes.map(function(node3) {\n if (node3.skip_list)\n return;\n const entry = {\n value: node3.type,\n content: node3.title,\n has_submenu: false,\n callback: function(value, event2, mouseEvent, contextMenu) {\n const first_event = contextMenu.getFirstEvent();\n canvas.graph.beforeChange();\n const node4 = LiteGraph.createNode(value.value);\n if (node4) {\n node4.pos = canvas.convertEventToCanvasOffset(first_event);\n canvas.graph.add(node4);\n }\n callback?.(node4);\n canvas.graph.afterChange();\n }\n };\n entries.push(entry);\n });\n new LiteGraph.ContextMenu(entries, { event: e, parentMenu: prev_menu2 }, ref_window2);\n }\n inner_onMenuAdded(\"\", prev_menu);\n return false;\n }\n static onMenuCollapseAll() {\n }\n static onMenuNodeEdit() {\n }\n /** @param options Parameter is never used */\n static showMenuNodeOptionalInputs(v2, options, e, prev_menu, node2) {\n if (!node2) return;\n const that2 = this;\n const canvas = LGraphCanvas.active_canvas;\n const ref_window2 = canvas.getCanvasWindow();\n options = node2.onGetInputs ? node2.onGetInputs() : node2.optional_inputs;\n let entries = [];\n if (options) {\n for (let i2 = 0; i2 < options.length; i2++) {\n const entry = options[i2];\n if (!entry) {\n entries.push(null);\n continue;\n }\n let label = entry[0];\n entry[2] ||= {};\n if (entry[2].label) {\n label = entry[2].label;\n }\n entry[2].removable = true;\n const data = { content: label, value: entry };\n if (entry[1] == LiteGraph.ACTION) {\n data.className = \"event\";\n }\n entries.push(data);\n }\n }\n const retEntries = node2.onMenuNodeInputs?.(entries);\n if (retEntries) entries = retEntries;\n if (!entries.length) {\n console.log(\"no input entries\");\n return;\n }\n new LiteGraph.ContextMenu(\n entries,\n {\n event: e,\n callback: inner_clicked,\n parentMenu: prev_menu,\n node: node2\n },\n // @ts-expect-error Unused param\n ref_window2\n );\n function inner_clicked(v3, e2, prev) {\n if (!node2) {\n return;\n }\n v3.callback?.call(that2, node2, v3, e2, prev);\n if (v3.value) {\n node2.graph.beforeChange();\n node2.addInput(v3.value[0], v3.value[1], v3.value[2]);\n node2.onNodeInputAdd?.(v3.value);\n node2.setDirtyCanvas(true, true);\n node2.graph.afterChange();\n }\n }\n return false;\n }\n /** @param options Parameter is never used */\n static showMenuNodeOptionalOutputs(v2, options, e, prev_menu, node2) {\n if (!node2) return;\n const that2 = this;\n const canvas = LGraphCanvas.active_canvas;\n const ref_window2 = canvas.getCanvasWindow();\n options = node2.onGetOutputs ? node2.onGetOutputs() : node2.optional_outputs;\n let entries = [];\n if (options) {\n for (let i2 = 0; i2 < options.length; i2++) {\n const entry = options[i2];\n if (!entry) {\n entries.push(null);\n continue;\n }\n if (node2.flags && node2.flags.skip_repeated_outputs && node2.findOutputSlot(entry[0]) != -1) {\n continue;\n }\n let label = entry[0];\n entry[2] ||= {};\n if (entry[2].label) {\n label = entry[2].label;\n }\n entry[2].removable = true;\n const data = { content: label, value: entry };\n if (entry[1] == LiteGraph.EVENT) {\n data.className = \"event\";\n }\n entries.push(data);\n }\n }\n if (this.onMenuNodeOutputs) entries = this.onMenuNodeOutputs(entries);\n if (LiteGraph.do_add_triggers_slots) {\n if (node2.findOutputSlot(\"onExecuted\") == -1) {\n entries.push({ content: \"On Executed\", value: [\"onExecuted\", LiteGraph.EVENT, { nameLocked: true }], className: \"event\" });\n }\n }\n const retEntries = node2.onMenuNodeOutputs?.(entries);\n if (retEntries) entries = retEntries;\n if (!entries.length) {\n return;\n }\n new LiteGraph.ContextMenu(\n entries,\n {\n event: e,\n callback: inner_clicked,\n parentMenu: prev_menu,\n node: node2\n },\n // @ts-expect-error Unused\n ref_window2\n );\n function inner_clicked(v3, e2, prev) {\n if (!node2) {\n return;\n }\n if (v3.callback) {\n v3.callback.call(that2, node2, v3, e2, prev);\n }\n if (!v3.value) {\n return;\n }\n const value = v3.value[1];\n if (value && (value.constructor === Object || value.constructor === Array)) {\n const entries2 = [];\n for (const i2 in value) {\n entries2.push({ content: i2, value: value[i2] });\n }\n new LiteGraph.ContextMenu(entries2, {\n event: e2,\n callback: inner_clicked,\n parentMenu: prev_menu,\n node: node2\n });\n return false;\n } else {\n node2.graph.beforeChange();\n node2.addOutput(v3.value[0], v3.value[1], v3.value[2]);\n node2.onNodeOutputAdd?.(v3.value);\n node2.setDirtyCanvas(true, true);\n node2.graph.afterChange();\n }\n }\n return false;\n }\n /** @param value Parameter is never used */\n static onShowMenuNodeProperties(value, options, e, prev_menu, node2) {\n if (!node2 || !node2.properties) return;\n const canvas = LGraphCanvas.active_canvas;\n const ref_window2 = canvas.getCanvasWindow();\n const entries = [];\n for (const i2 in node2.properties) {\n value = node2.properties[i2] !== void 0 ? node2.properties[i2] : \" \";\n if (typeof value == \"object\")\n value = JSON.stringify(value);\n const info = node2.getPropertyInfo(i2);\n if (info.type == \"enum\" || info.type == \"combo\")\n value = LGraphCanvas.getPropertyPrintableValue(value, info.values);\n value = LGraphCanvas.decodeHTML(stringOrNull(value));\n entries.push({\n content: \"\" + (info.label || i2) + \"\" + value + \"\",\n value: i2\n });\n }\n if (!entries.length) {\n return;\n }\n new LiteGraph.ContextMenu(\n entries,\n {\n event: e,\n callback: inner_clicked,\n parentMenu: prev_menu,\n allow_html: true,\n node: node2\n },\n // @ts-expect-error Unused\n ref_window2\n );\n function inner_clicked(v2) {\n if (!node2) return;\n const rect = this.getBoundingClientRect();\n canvas.showEditPropertyValue(node2, v2.value, {\n position: [rect.left, rect.top]\n });\n }\n return false;\n }\n static decodeHTML(str) {\n const e = document.createElement(\"div\");\n e.innerText = str;\n return e.innerHTML;\n }\n static onMenuResizeNode(value, options, e, menu, node2) {\n if (!node2) return;\n const fApplyMultiNode = function(node3) {\n node3.size = node3.computeSize();\n node3.onResize?.(node3.size);\n };\n const graphcanvas = LGraphCanvas.active_canvas;\n if (!graphcanvas.selected_nodes || Object.keys(graphcanvas.selected_nodes).length <= 1) {\n fApplyMultiNode(node2);\n } else {\n for (const i2 in graphcanvas.selected_nodes) {\n fApplyMultiNode(graphcanvas.selected_nodes[i2]);\n }\n }\n node2.setDirtyCanvas(true, true);\n }\n // TODO refactor :: this is used fot title but not for properties!\n static onShowPropertyEditor(item, options, e, menu, node2) {\n const property = item.property || \"title\";\n const value = node2[property];\n const dialog = document.createElement(\"div\");\n dialog.is_modified = false;\n dialog.className = \"graphdialog\";\n dialog.innerHTML = \"\";\n dialog.close = function() {\n dialog.parentNode?.removeChild(dialog);\n };\n const title = dialog.querySelector(\".name\");\n title.innerText = property;\n const input = dialog.querySelector(\".value\");\n if (input) {\n input.value = value;\n input.addEventListener(\"blur\", function() {\n this.focus();\n });\n input.addEventListener(\"keydown\", function(e2) {\n dialog.is_modified = true;\n if (e2.keyCode == 27) {\n dialog.close();\n } else if (e2.keyCode == 13) {\n inner();\n } else if (e2.keyCode != 13 && e2.target.localName != \"textarea\") {\n return;\n }\n e2.preventDefault();\n e2.stopPropagation();\n });\n }\n const graphcanvas = LGraphCanvas.active_canvas;\n const canvas = graphcanvas.canvas;\n const rect = canvas.getBoundingClientRect();\n let offsetx = -20;\n let offsety = -20;\n if (rect) {\n offsetx -= rect.left;\n offsety -= rect.top;\n }\n if (e) {\n dialog.style.left = e.clientX + offsetx + \"px\";\n dialog.style.top = e.clientY + offsety + \"px\";\n } else {\n dialog.style.left = canvas.width * 0.5 + offsetx + \"px\";\n dialog.style.top = canvas.height * 0.5 + offsety + \"px\";\n }\n const button = dialog.querySelector(\"button\");\n button.addEventListener(\"click\", inner);\n canvas.parentNode.appendChild(dialog);\n input?.focus();\n let dialogCloseTimer = null;\n dialog.addEventListener(\"mouseleave\", function() {\n if (LiteGraph.dialog_close_on_mouse_leave) {\n if (!dialog.is_modified && LiteGraph.dialog_close_on_mouse_leave)\n dialogCloseTimer = setTimeout(dialog.close, LiteGraph.dialog_close_on_mouse_leave_delay);\n }\n });\n dialog.addEventListener(\"mouseenter\", function() {\n if (LiteGraph.dialog_close_on_mouse_leave) {\n if (dialogCloseTimer) clearTimeout(dialogCloseTimer);\n }\n });\n function inner() {\n if (input) setValue(input.value);\n }\n function setValue(value2) {\n if (item.type == \"Number\") {\n value2 = Number(value2);\n } else if (item.type == \"Boolean\") {\n value2 = Boolean(value2);\n }\n node2[property] = value2;\n dialog.parentNode?.removeChild(dialog);\n node2.setDirtyCanvas(true, true);\n }\n }\n static getPropertyPrintableValue(value, values2) {\n if (!values2)\n return String(value);\n if (values2.constructor === Array) {\n return String(value);\n }\n if (values2.constructor === Object) {\n let desc_value = \"\";\n for (const k in values2) {\n if (values2[k] != value)\n continue;\n desc_value = k;\n break;\n }\n return String(value) + \" (\" + desc_value + \")\";\n }\n }\n static onMenuNodeCollapse(value, options, e, menu, node2) {\n node2.graph.beforeChange(\n /*?*/\n );\n const fApplyMultiNode = function(node3) {\n node3.collapse();\n };\n const graphcanvas = LGraphCanvas.active_canvas;\n if (!graphcanvas.selected_nodes || Object.keys(graphcanvas.selected_nodes).length <= 1) {\n fApplyMultiNode(node2);\n } else {\n for (const i2 in graphcanvas.selected_nodes) {\n fApplyMultiNode(graphcanvas.selected_nodes[i2]);\n }\n }\n node2.graph.afterChange(\n /*?*/\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static onMenuNodePin(value, options, e, menu, node2) {\n }\n static onMenuNodeMode(value, options, e, menu, node2) {\n new LiteGraph.ContextMenu(\n LiteGraph.NODE_MODES,\n { event: e, callback: inner_clicked, parentMenu: menu, node: node2 }\n );\n function inner_clicked(v2) {\n if (!node2) return;\n const kV = Object.values(LiteGraph.NODE_MODES).indexOf(v2);\n const fApplyMultiNode = function(node3) {\n if (kV >= 0 && LiteGraph.NODE_MODES[kV])\n node3.changeMode(kV);\n else {\n console.warn(\"unexpected mode: \" + v2);\n node3.changeMode(LiteGraph.ALWAYS);\n }\n };\n const graphcanvas = LGraphCanvas.active_canvas;\n if (!graphcanvas.selected_nodes || Object.keys(graphcanvas.selected_nodes).length <= 1) {\n fApplyMultiNode(node2);\n } else {\n for (const i2 in graphcanvas.selected_nodes) {\n fApplyMultiNode(graphcanvas.selected_nodes[i2]);\n }\n }\n }\n return false;\n }\n /** @param value Parameter is never used */\n static onMenuNodeColors(value, options, e, menu, node2) {\n if (!node2) throw \"no node for color\";\n const values2 = [];\n values2.push({\n value: null,\n content: \"No color\"\n });\n for (const i2 in LGraphCanvas.node_colors) {\n const color = LGraphCanvas.node_colors[i2];\n value = {\n value: i2,\n content: \"\" + i2 + \"\"\n };\n values2.push(value);\n }\n new LiteGraph.ContextMenu(values2, {\n event: e,\n callback: inner_clicked,\n parentMenu: menu,\n node: node2\n });\n function inner_clicked(v2) {\n if (!node2) return;\n const color = v2.value ? LGraphCanvas.node_colors[v2.value] : null;\n const fApplyColor = function(node3) {\n if (color) {\n if (node3.constructor === LiteGraph.LGraphGroup) {\n node3.color = color.groupcolor;\n } else {\n node3.color = color.color;\n node3.bgcolor = color.bgcolor;\n }\n } else {\n delete node3.color;\n delete node3.bgcolor;\n }\n };\n const graphcanvas = LGraphCanvas.active_canvas;\n if (!graphcanvas.selected_nodes || Object.keys(graphcanvas.selected_nodes).length <= 1) {\n fApplyColor(node2);\n } else {\n for (const i2 in graphcanvas.selected_nodes) {\n fApplyColor(graphcanvas.selected_nodes[i2]);\n }\n }\n node2.setDirtyCanvas(true, true);\n }\n return false;\n }\n static onMenuNodeShapes(value, options, e, menu, node2) {\n if (!node2) throw \"no node passed\";\n new LiteGraph.ContextMenu(LiteGraph.VALID_SHAPES, {\n event: e,\n callback: inner_clicked,\n parentMenu: menu,\n node: node2\n });\n function inner_clicked(v2) {\n if (!node2) return;\n node2.graph.beforeChange(\n /*?*/\n );\n const fApplyMultiNode = function(node3) {\n node3.shape = v2;\n };\n const graphcanvas = LGraphCanvas.active_canvas;\n if (!graphcanvas.selected_nodes || Object.keys(graphcanvas.selected_nodes).length <= 1) {\n fApplyMultiNode(node2);\n } else {\n for (const i2 in graphcanvas.selected_nodes) {\n fApplyMultiNode(graphcanvas.selected_nodes[i2]);\n }\n }\n node2.graph.afterChange(\n /*?*/\n );\n node2.setDirtyCanvas(true);\n }\n return false;\n }\n static onMenuNodeRemove(value, options, e, menu, node2) {\n if (!node2) throw \"no node passed\";\n const graph = node2.graph;\n graph.beforeChange();\n const fApplyMultiNode = function(node3) {\n if (node3.removable === false) return;\n graph.remove(node3);\n };\n const graphcanvas = LGraphCanvas.active_canvas;\n if (!graphcanvas.selected_nodes || Object.keys(graphcanvas.selected_nodes).length <= 1) {\n fApplyMultiNode(node2);\n } else {\n for (const i2 in graphcanvas.selected_nodes) {\n fApplyMultiNode(graphcanvas.selected_nodes[i2]);\n }\n }\n graph.afterChange();\n node2.setDirtyCanvas(true, true);\n }\n static onMenuNodeToSubgraph(value, options, e, menu, node2) {\n const graph = node2.graph;\n const graphcanvas = LGraphCanvas.active_canvas;\n if (!graphcanvas) return;\n let nodes_list = Object.values(graphcanvas.selected_nodes || {});\n if (!nodes_list.length)\n nodes_list = [node2];\n const subgraph_node = LiteGraph.createNode(\"graph/subgraph\");\n subgraph_node.pos = node2.pos.concat();\n graph.add(subgraph_node);\n subgraph_node.buildFromNodes(nodes_list);\n graphcanvas.deselectAllNodes();\n node2.setDirtyCanvas(true, true);\n }\n static onMenuNodeClone(value, options, e, menu, node2) {\n node2.graph.beforeChange();\n const newSelected = {};\n const fApplyMultiNode = function(node3) {\n if (node3.clonable === false) return;\n const newnode = node3.clone();\n if (!newnode) return;\n newnode.pos = [node3.pos[0] + 5, node3.pos[1] + 5];\n node3.graph.add(newnode);\n newSelected[newnode.id] = newnode;\n };\n const graphcanvas = LGraphCanvas.active_canvas;\n if (!graphcanvas.selected_nodes || Object.keys(graphcanvas.selected_nodes).length <= 1) {\n fApplyMultiNode(node2);\n } else {\n for (const i2 in graphcanvas.selected_nodes) {\n fApplyMultiNode(graphcanvas.selected_nodes[i2]);\n }\n }\n if (Object.keys(newSelected).length) {\n graphcanvas.selectNodes(newSelected);\n }\n node2.graph.afterChange();\n node2.setDirtyCanvas(true, true);\n }\n /**\n * clears all the data inside\n *\n */\n clear() {\n this.frame = 0;\n this.last_draw_time = 0;\n this.render_time = 0;\n this.fps = 0;\n this.dragging_rectangle = null;\n this.selected_nodes = {};\n this.selected_group = null;\n this.visible_nodes = [];\n this.node_dragged = null;\n this.node_over = null;\n this.node_capturing_input = null;\n this.connecting_links = null;\n this.highlighted_links = {};\n this.dragging_canvas = false;\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n this.dirty_area = null;\n this.node_in_panel = null;\n this.node_widget = null;\n this.last_mouse = [0, 0];\n this.last_mouseclick = 0;\n this.pointer_is_down = false;\n this.pointer_is_double = false;\n this.visible_area.set([0, 0, 0, 0]);\n this.onClear?.();\n }\n /**\n * assigns a graph, you can reassign graphs to the same canvas\n *\n * @param {LGraph} graph\n */\n setGraph(graph, skip_clear) {\n if (this.graph == graph) return;\n if (!skip_clear) this.clear();\n if (!graph && this.graph) {\n this.graph.detachCanvas(this);\n return;\n }\n graph.attachCanvas(this);\n this._graph_stack &&= null;\n this.setDirty(true, true);\n }\n /**\n * returns the top level graph (in case there are subgraphs open on the canvas)\n *\n * @return {LGraph} graph\n */\n getTopGraph() {\n return this._graph_stack.length ? this._graph_stack[0] : this.graph;\n }\n /**\n * opens a graph contained inside a node in the current graph\n *\n * @param {LGraph} graph\n */\n openSubgraph(graph) {\n if (!graph) throw \"graph cannot be null\";\n if (this.graph == graph) throw \"graph cannot be the same\";\n this.clear();\n if (this.graph) {\n this._graph_stack ||= [];\n this._graph_stack.push(this.graph);\n }\n graph.attachCanvas(this);\n this.checkPanels();\n this.setDirty(true, true);\n }\n /**\n * closes a subgraph contained inside a node\n *\n * @param {LGraph} assigns a graph\n */\n closeSubgraph() {\n if (!this._graph_stack || this._graph_stack.length == 0) return;\n const subgraph_node = this.graph._subgraph_node;\n const graph = this._graph_stack.pop();\n this.selected_nodes = {};\n this.highlighted_links = {};\n graph.attachCanvas(this);\n this.setDirty(true, true);\n if (subgraph_node) {\n this.centerOnNode(subgraph_node);\n this.selectNodes([subgraph_node]);\n }\n this.ds.offset = [0, 0];\n this.ds.scale = 1;\n }\n /**\n * returns the visually active graph (in case there are more in the stack)\n * @return {LGraph} the active graph\n */\n getCurrentGraph() {\n return this.graph;\n }\n /**\n * assigns a canvas\n *\n * @param {Canvas} assigns a canvas (also accepts the ID of the element (not a selector)\n */\n setCanvas(canvas, skip_events) {\n if (canvas?.constructor === String) {\n canvas = document.getElementById(canvas);\n if (!canvas) {\n throw \"Error creating LiteGraph canvas: Canvas not found\";\n }\n }\n if (canvas === this.canvas) return;\n if (!canvas && this.canvas) {\n if (!skip_events) {\n this.unbindEvents();\n }\n }\n this.canvas = canvas;\n this.ds.element = canvas;\n if (!canvas) return;\n canvas.className += \" lgraphcanvas\";\n canvas.data = this;\n canvas.tabindex = \"1\";\n this.bgcanvas = null;\n if (!this.bgcanvas) {\n this.bgcanvas = document.createElement(\"canvas\");\n this.bgcanvas.width = this.canvas.width;\n this.bgcanvas.height = this.canvas.height;\n }\n if (canvas.getContext == null) {\n if (canvas.localName != \"canvas\") {\n throw \"Element supplied for LGraphCanvas must be a element, you passed a \" + // @ts-expect-error\n canvas.localName;\n }\n throw \"This browser doesn't support Canvas\";\n }\n const ctx = this.ctx = canvas.getContext(\"2d\");\n if (ctx == null) {\n if (!canvas.webgl_enabled) {\n console.warn(\n \"This canvas seems to be WebGL, enabling WebGL renderer\"\n );\n }\n this.enableWebGL();\n }\n if (!skip_events) this.bindEvents();\n }\n //used in some events to capture them\n _doNothing(e) {\n e.preventDefault();\n return false;\n }\n _doReturnTrue(e) {\n e.preventDefault();\n return true;\n }\n /**\n * binds mouse, keyboard, touch and drag events to the canvas\n **/\n bindEvents() {\n if (this._events_binded) {\n console.warn(\"LGraphCanvas: events already binded\");\n return;\n }\n const canvas = this.canvas;\n const ref_window2 = this.getCanvasWindow();\n const document2 = ref_window2.document;\n this._mousedown_callback = this.processMouseDown.bind(this);\n this._mousewheel_callback = this.processMouseWheel.bind(this);\n this._mousemove_callback = this.processMouseMove.bind(this);\n this._mouseup_callback = this.processMouseUp.bind(this);\n LiteGraph.pointerListenerAdd(canvas, \"down\", this._mousedown_callback, true);\n canvas.addEventListener(\"mousewheel\", this._mousewheel_callback, false);\n LiteGraph.pointerListenerAdd(canvas, \"up\", this._mouseup_callback, true);\n LiteGraph.pointerListenerAdd(canvas, \"move\", this._mousemove_callback);\n canvas.addEventListener(\"contextmenu\", this._doNothing);\n canvas.addEventListener(\n \"DOMMouseScroll\",\n this._mousewheel_callback,\n false\n );\n this._key_callback = this.processKey.bind(this);\n canvas.addEventListener(\"keydown\", this._key_callback, true);\n document2.addEventListener(\"keyup\", this._key_callback, true);\n this._ondrop_callback = this.processDrop.bind(this);\n canvas.addEventListener(\"dragover\", this._doNothing, false);\n canvas.addEventListener(\"dragend\", this._doNothing, false);\n canvas.addEventListener(\"drop\", this._ondrop_callback, false);\n canvas.addEventListener(\"dragenter\", this._doReturnTrue, false);\n this._events_binded = true;\n }\n /**\n * unbinds mouse events from the canvas\n **/\n unbindEvents() {\n if (!this._events_binded) {\n console.warn(\"LGraphCanvas: no events binded\");\n return;\n }\n const ref_window2 = this.getCanvasWindow();\n const document2 = ref_window2.document;\n LiteGraph.pointerListenerRemove(this.canvas, \"move\", this._mousemove_callback);\n LiteGraph.pointerListenerRemove(this.canvas, \"up\", this._mouseup_callback);\n LiteGraph.pointerListenerRemove(this.canvas, \"down\", this._mousedown_callback);\n this.canvas.removeEventListener(\n \"mousewheel\",\n this._mousewheel_callback\n );\n this.canvas.removeEventListener(\n \"DOMMouseScroll\",\n this._mousewheel_callback\n );\n this.canvas.removeEventListener(\"keydown\", this._key_callback);\n document2.removeEventListener(\"keyup\", this._key_callback);\n this.canvas.removeEventListener(\"contextmenu\", this._doNothing);\n this.canvas.removeEventListener(\"drop\", this._ondrop_callback);\n this.canvas.removeEventListener(\"dragenter\", this._doReturnTrue);\n this._mousedown_callback = null;\n this._mousewheel_callback = null;\n this._key_callback = null;\n this._ondrop_callback = null;\n this._events_binded = false;\n }\n /**\n * this function allows to render the canvas using WebGL instead of Canvas2D\n * this is useful if you plant to render 3D objects inside your nodes, it uses litegl.js for webgl and canvas2DtoWebGL to emulate the Canvas2D calls in webGL\n **/\n enableWebGL() {\n if (typeof GL === \"undefined\") {\n throw \"litegl.js must be included to use a WebGL canvas\";\n }\n if (typeof enableWebGLCanvas === \"undefined\") {\n throw \"webglCanvas.js must be included to use this feature\";\n }\n this.gl = this.ctx = enableWebGLCanvas(this.canvas);\n this.ctx.webgl = true;\n this.bgcanvas = this.canvas;\n this.bgctx = this.gl;\n this.canvas.webgl_enabled = true;\n }\n /**\n * marks as dirty the canvas, this way it will be rendered again\n *\n * @class LGraphCanvas\n * @param {bool} fgcanvas if the foreground canvas is dirty (the one containing the nodes)\n * @param {bool} bgcanvas if the background canvas is dirty (the one containing the wires)\n */\n setDirty(fgcanvas, bgcanvas) {\n if (fgcanvas) this.dirty_canvas = true;\n if (bgcanvas) this.dirty_bgcanvas = true;\n }\n /**\n * Used to attach the canvas in a popup\n *\n * @return {window} returns the window where the canvas is attached (the DOM root node)\n */\n getCanvasWindow() {\n if (!this.canvas) return window;\n const doc = this.canvas.ownerDocument;\n return doc.defaultView || doc.parentWindow;\n }\n /**\n * starts rendering the content of the canvas when needed\n *\n */\n startRendering() {\n if (this.is_rendering) return;\n this.is_rendering = true;\n renderFrame.call(this);\n function renderFrame() {\n if (!this.pause_rendering) {\n this.draw();\n }\n const window2 = this.getCanvasWindow();\n if (this.is_rendering) {\n window2.requestAnimationFrame(renderFrame.bind(this));\n }\n }\n }\n /**\n * stops rendering the content of the canvas (to save resources)\n *\n */\n stopRendering() {\n this.is_rendering = false;\n }\n /* LiteGraphCanvas input */\n //used to block future mouse events (because of im gui)\n blockClick() {\n this.block_click = true;\n this.last_mouseclick = 0;\n }\n /**\n * Gets the widget at the current cursor position\n * @param node Optional node to check for widgets under cursor\n * @returns The widget located at the current cursor position or null\n */\n getWidgetAtCursor(node2) {\n node2 ??= this.node_over;\n if (!node2.widgets) return null;\n const graphPos = this.graph_mouse;\n const x2 = graphPos[0] - node2.pos[0];\n const y2 = graphPos[1] - node2.pos[1];\n for (const widget of node2.widgets) {\n let widgetWidth, widgetHeight;\n if (widget.computeSize) {\n [widgetWidth, widgetHeight] = widget.computeSize(node2.size[0]);\n } else {\n widgetWidth = widget.width || node2.size[0];\n widgetHeight = LiteGraph.NODE_WIDGET_HEIGHT;\n }\n if (widget.last_y !== void 0 && x2 >= 6 && x2 <= widgetWidth - 12 && y2 >= widget.last_y && y2 <= widget.last_y + widgetHeight) {\n return widget;\n }\n }\n return null;\n }\n processMouseDown(e) {\n if (this.set_canvas_dirty_on_mouse_event)\n this.dirty_canvas = true;\n if (!this.graph) return;\n this.adjustMouseEvent(e);\n const ref_window2 = this.getCanvasWindow();\n LGraphCanvas.active_canvas = this;\n const x2 = e.clientX;\n const y2 = e.clientY;\n this.ds.viewport = this.viewport;\n const is_inside = !this.viewport || this.viewport && x2 >= this.viewport[0] && x2 < this.viewport[0] + this.viewport[2] && y2 >= this.viewport[1] && y2 < this.viewport[1] + this.viewport[3];\n if (!this.options.skip_events) {\n LiteGraph.pointerListenerRemove(this.canvas, \"move\", this._mousemove_callback);\n LiteGraph.pointerListenerAdd(ref_window2.document, \"move\", this._mousemove_callback, true);\n LiteGraph.pointerListenerAdd(ref_window2.document, \"up\", this._mouseup_callback, true);\n }\n if (!is_inside) return;\n let node2 = this.graph.getNodeOnPos(e.canvasX, e.canvasY, this.visible_nodes, 5);\n let skip_action = false;\n const now = LiteGraph.getTime();\n const is_primary = e.isPrimary === void 0 || !e.isPrimary;\n const is_double_click = now - this.last_mouseclick < 300;\n this.mouse[0] = e.clientX;\n this.mouse[1] = e.clientY;\n this.graph_mouse[0] = e.canvasX;\n this.graph_mouse[1] = e.canvasY;\n this.last_click_position = [this.mouse[0], this.mouse[1]];\n this.pointer_is_double = this.pointer_is_down && is_primary;\n this.pointer_is_down = true;\n this.canvas.focus();\n LiteGraph.closeAllContextMenus(ref_window2);\n if (this.onMouse?.(e) == true) return;\n if (e.which == 1 && !this.pointer_is_double) {\n if ((e.metaKey || e.ctrlKey) && !e.altKey) {\n this.dragging_rectangle = new Float32Array(4);\n this.dragging_rectangle[0] = e.canvasX;\n this.dragging_rectangle[1] = e.canvasY;\n this.dragging_rectangle[2] = 1;\n this.dragging_rectangle[3] = 1;\n skip_action = true;\n }\n if (LiteGraph.alt_drag_do_clone_nodes && e.altKey && !e.ctrlKey && node2 && this.allow_interaction && !skip_action && !this.read_only) {\n const cloned = node2.clone();\n if (cloned) {\n cloned.pos[0] += 5;\n cloned.pos[1] += 5;\n this.graph.add(cloned, false, { doCalcSize: false });\n node2 = cloned;\n skip_action = true;\n if (this.allow_dragnodes) {\n this.graph.beforeChange();\n this.node_dragged = node2;\n }\n if (!this.selected_nodes[node2.id]) {\n this.processNodeSelected(node2, e);\n }\n }\n }\n let clicking_canvas_bg = false;\n if (node2 && (this.allow_interaction || node2.flags.allow_interaction) && !skip_action && !this.read_only) {\n if (!this.live_mode && !node2.flags.pinned) {\n this.bringToFront(node2);\n }\n if (this.allow_interaction && !this.connecting_links && !node2.flags.collapsed && !this.live_mode) {\n if (!skip_action && node2.resizable !== false && node2.inResizeCorner(e.canvasX, e.canvasY)) {\n this.graph.beforeChange();\n this.resizing_node = node2;\n this.canvas.style.cursor = \"se-resize\";\n skip_action = true;\n } else {\n if (node2.outputs) {\n for (let i2 = 0, l = node2.outputs.length; i2 < l; ++i2) {\n const output = node2.outputs[i2];\n const link_pos = node2.getConnectionPos(false, i2);\n if (isInsideRectangle(\n e.canvasX,\n e.canvasY,\n link_pos[0] - 15,\n link_pos[1] - 10,\n 30,\n 20\n )) {\n if (e.shiftKey) {\n if (output.links?.length > 0) {\n this.connecting_links = [];\n for (const linkId of output.links) {\n const link = this.graph.links[linkId];\n const slot = link.target_slot;\n const linked_node = this.graph._nodes_by_id[link.target_id];\n const input = linked_node.inputs[slot];\n const pos2 = linked_node.getConnectionPos(true, slot);\n this.connecting_links.push({\n node: linked_node,\n slot,\n input,\n output: null,\n pos: pos2\n });\n }\n skip_action = true;\n break;\n }\n }\n output.slot_index = i2;\n this.connecting_links = [\n {\n node: node2,\n slot: i2,\n input: null,\n output,\n pos: link_pos\n }\n ];\n if (LiteGraph.shift_click_do_break_link_from) {\n if (e.shiftKey) {\n node2.disconnectOutput(i2);\n }\n } else if (LiteGraph.ctrl_alt_click_do_break_link) {\n if (e.ctrlKey && e.altKey && !e.shiftKey) {\n node2.disconnectOutput(i2);\n }\n }\n if (is_double_click) {\n node2.onOutputDblClick?.(i2, e);\n } else {\n node2.onOutputClick?.(i2, e);\n }\n skip_action = true;\n break;\n }\n }\n }\n if (node2.inputs) {\n for (let i2 = 0, l = node2.inputs.length; i2 < l; ++i2) {\n const input = node2.inputs[i2];\n const link_pos = node2.getConnectionPos(true, i2);\n if (isInsideRectangle(\n e.canvasX,\n e.canvasY,\n link_pos[0] - 15,\n link_pos[1] - 10,\n 30,\n 20\n )) {\n if (is_double_click) {\n node2.onInputDblClick?.(i2, e);\n } else {\n node2.onInputClick?.(i2, e);\n }\n if (input.link !== null) {\n const link_info = this.graph.links[input.link];\n const slot = link_info.origin_slot;\n const linked_node = this.graph._nodes_by_id[link_info.origin_id];\n if (LiteGraph.click_do_break_link_to || LiteGraph.ctrl_alt_click_do_break_link && e.ctrlKey && e.altKey && !e.shiftKey) {\n node2.disconnectInput(i2);\n } else if (e.shiftKey) {\n this.connecting_links = [{\n node: linked_node,\n slot,\n output: linked_node.outputs[slot],\n pos: linked_node.getConnectionPos(false, slot)\n }];\n this.dirty_bgcanvas = true;\n skip_action = true;\n } else if (this.allow_reconnect_links) {\n if (!LiteGraph.click_do_break_link_to) {\n node2.disconnectInput(i2);\n }\n this.connecting_links = [\n {\n node: linked_node,\n slot,\n input: null,\n output: linked_node.outputs[slot],\n pos: linked_node.getConnectionPos(false, slot)\n }\n ];\n this.dirty_bgcanvas = true;\n skip_action = true;\n } else ;\n }\n if (!skip_action) {\n this.connecting_links = [\n {\n node: node2,\n slot: i2,\n input,\n output: null,\n pos: link_pos\n }\n ];\n this.dirty_bgcanvas = true;\n skip_action = true;\n }\n break;\n }\n }\n }\n }\n }\n if (!skip_action) {\n let block_drag_node = node2?.pinned ? true : false;\n const pos2 = [e.canvasX - node2.pos[0], e.canvasY - node2.pos[1]];\n const widget = this.processNodeWidgets(node2, this.graph_mouse, e);\n if (widget) {\n block_drag_node = true;\n this.node_widget = [node2, widget];\n }\n if (this.allow_interaction && is_double_click && this.selected_nodes[node2.id]) {\n if (pos2[1] < 0) {\n node2.onNodeTitleDblClick?.(e, pos2, this);\n }\n node2.onDblClick?.(e, pos2, this);\n this.processNodeDblClicked(node2);\n block_drag_node = true;\n }\n if (node2.onMouseDown?.(e, pos2, this)) {\n block_drag_node = true;\n } else {\n if (node2.subgraph && !node2.skip_subgraph_button) {\n if (!node2.flags.collapsed && pos2[0] > node2.size[0] - LiteGraph.NODE_TITLE_HEIGHT && pos2[1] < 0) {\n const that2 = this;\n setTimeout(function() {\n that2.openSubgraph(node2.subgraph);\n }, 10);\n }\n }\n if (this.live_mode) {\n clicking_canvas_bg = true;\n block_drag_node = true;\n }\n }\n if (!block_drag_node) {\n if (this.allow_dragnodes) {\n this.graph.beforeChange();\n this.node_dragged = node2;\n }\n if (!(e.shiftKey && !e.ctrlKey && !e.altKey) || !node2.is_selected) {\n this.processNodeSelected(node2, e);\n }\n } else {\n if (!node2.is_selected) this.processNodeSelected(node2, e);\n }\n this.dirty_canvas = true;\n }\n } else {\n if (!skip_action) {\n if (!this.read_only) {\n const lineWidth = this.ctx.lineWidth;\n this.ctx.lineWidth = this.connections_width + 7;\n for (let i2 = 0; i2 < this.visible_links.length; ++i2) {\n const link = this.visible_links[i2];\n const center = link._pos;\n let overLink = null;\n if (!center || e.canvasX < center[0] - 4 || e.canvasX > center[0] + 4 || e.canvasY < center[1] - 4 || e.canvasY > center[1] + 4) {\n if (e.shiftKey && link.path && this.ctx.isPointInStroke(link.path, e.canvasX, e.canvasY)) {\n overLink = link;\n } else {\n continue;\n }\n }\n if (overLink) {\n const slot = overLink.origin_slot;\n const originNode = this.graph._nodes_by_id[overLink.origin_id];\n this.connecting_links ??= [];\n this.connecting_links.push({\n node: originNode,\n slot,\n output: originNode.outputs[slot],\n pos: originNode.getConnectionPos(false, slot)\n });\n skip_action = true;\n } else {\n this.showLinkMenu(link, e);\n this.over_link_center = null;\n }\n break;\n }\n this.ctx.lineWidth = lineWidth;\n }\n this.selected_group = this.graph.getGroupOnPos(e.canvasX, e.canvasY);\n this.selected_group_resizing = false;\n if (this.selected_group && !this.read_only) {\n if (e.ctrlKey) {\n this.dragging_rectangle = null;\n }\n const dist = distance([e.canvasX, e.canvasY], [this.selected_group.pos[0] + this.selected_group.size[0], this.selected_group.pos[1] + this.selected_group.size[1]]);\n if (dist * this.ds.scale < 10) {\n this.selected_group_resizing = true;\n } else {\n this.selected_group.recomputeInsideNodes();\n }\n if (is_double_click) {\n this.canvas.dispatchEvent(new CustomEvent(\n \"litegraph:canvas\",\n {\n bubbles: true,\n detail: {\n subType: \"group-double-click\",\n originalEvent: e,\n group: this.selected_group\n }\n }\n ));\n }\n } else if (is_double_click && !this.read_only) {\n if (this.allow_searchbox) {\n this.showSearchBox(e);\n e.preventDefault();\n e.stopPropagation();\n }\n this.canvas.dispatchEvent(new CustomEvent(\n \"litegraph:canvas\",\n {\n bubbles: true,\n detail: {\n subType: \"empty-double-click\",\n originalEvent: e\n }\n }\n ));\n }\n clicking_canvas_bg = true;\n }\n }\n if (!skip_action && clicking_canvas_bg && this.allow_dragcanvas) {\n this.dragging_canvas = true;\n }\n } else if (e.which == 2) {\n if (LiteGraph.middle_click_slot_add_default_node) {\n if (node2 && this.allow_interaction && !skip_action && !this.read_only) {\n if (!this.connecting_links && !node2.flags.collapsed && !this.live_mode) {\n let mClikSlot = false;\n let mClikSlot_index = false;\n let mClikSlot_isOut = false;\n if (node2.outputs) {\n for (let i2 = 0, l = node2.outputs.length; i2 < l; ++i2) {\n const output = node2.outputs[i2];\n const link_pos = node2.getConnectionPos(false, i2);\n if (isInsideRectangle(e.canvasX, e.canvasY, link_pos[0] - 15, link_pos[1] - 10, 30, 20)) {\n mClikSlot = output;\n mClikSlot_index = i2;\n mClikSlot_isOut = true;\n break;\n }\n }\n }\n if (node2.inputs) {\n for (let i2 = 0, l = node2.inputs.length; i2 < l; ++i2) {\n const input = node2.inputs[i2];\n const link_pos = node2.getConnectionPos(true, i2);\n if (isInsideRectangle(e.canvasX, e.canvasY, link_pos[0] - 15, link_pos[1] - 10, 30, 20)) {\n mClikSlot = input;\n mClikSlot_index = i2;\n mClikSlot_isOut = false;\n break;\n }\n }\n }\n if (mClikSlot && mClikSlot_index !== false) {\n const alphaPosY = 0.5 - (mClikSlot_index + 1) / (mClikSlot_isOut ? node2.outputs.length : node2.inputs.length);\n const node_bounding = node2.getBounding();\n const posRef = [\n !mClikSlot_isOut ? node_bounding[0] : node_bounding[0] + node_bounding[2],\n e.canvasY - 80\n // + node_bounding[0]/this.canvas.width*66 // vertical \"derive\"\n ];\n this.createDefaultNodeForSlot({\n nodeFrom: !mClikSlot_isOut ? null : node2,\n slotFrom: !mClikSlot_isOut ? null : mClikSlot_index,\n nodeTo: !mClikSlot_isOut ? node2 : null,\n slotTo: !mClikSlot_isOut ? mClikSlot_index : null,\n //,e: e\n position: posRef,\n //nodeNewType\n nodeType: \"AUTO\",\n //-alphaPosY*30]\n posAdd: [!mClikSlot_isOut ? -30 : 30, -alphaPosY * 130],\n //-alphaPosY*2*/\n posSizeFix: [!mClikSlot_isOut ? -1 : 0, 0]\n });\n skip_action = true;\n }\n }\n }\n }\n if (!skip_action && this.allow_dragcanvas) {\n this.dragging_canvas = true;\n }\n } else if (e.which == 3 || this.pointer_is_double) {\n if (this.allow_interaction && !skip_action && !this.read_only) {\n if (node2) {\n if (Object.keys(this.selected_nodes).length && (this.selected_nodes[node2.id] || e.shiftKey || e.ctrlKey || e.metaKey)) {\n if (!this.selected_nodes[node2.id]) this.selectNodes([node2], true);\n } else {\n this.selectNodes([node2]);\n }\n }\n this.processContextMenu(node2, e);\n }\n }\n this.last_mouse[0] = e.clientX;\n this.last_mouse[1] = e.clientY;\n this.last_mouseclick = LiteGraph.getTime();\n this.last_mouse_dragging = true;\n this.graph.change();\n if (!ref_window2.document.activeElement || ref_window2.document.activeElement.nodeName.toLowerCase() != \"input\" && ref_window2.document.activeElement.nodeName.toLowerCase() != \"textarea\") {\n e.preventDefault();\n }\n e.stopPropagation();\n this.onMouseDown?.(e);\n return false;\n }\n /**\n * Called when a mouse move event has to be processed\n **/\n processMouseMove(e) {\n this.link_over_widget = null;\n if (this.autoresize) this.resize();\n if (this.set_canvas_dirty_on_mouse_event)\n this.dirty_canvas = true;\n if (!this.graph) return;\n LGraphCanvas.active_canvas = this;\n this.adjustMouseEvent(e);\n const mouse = [e.clientX, e.clientY];\n this.mouse[0] = mouse[0];\n this.mouse[1] = mouse[1];\n const delta2 = [\n mouse[0] - this.last_mouse[0],\n mouse[1] - this.last_mouse[1]\n ];\n this.last_mouse = mouse;\n this.graph_mouse[0] = e.canvasX;\n this.graph_mouse[1] = e.canvasY;\n if (this.block_click) {\n e.preventDefault();\n return false;\n }\n e.dragging = this.last_mouse_dragging;\n if (this.node_widget) {\n this.processNodeWidgets(\n this.node_widget[0],\n this.graph_mouse,\n e,\n this.node_widget[1]\n );\n this.dirty_canvas = true;\n }\n const node2 = this.graph.getNodeOnPos(e.canvasX, e.canvasY, this.visible_nodes);\n if (this.dragging_rectangle) {\n this.dragging_rectangle[2] = e.canvasX - this.dragging_rectangle[0];\n this.dragging_rectangle[3] = e.canvasY - this.dragging_rectangle[1];\n this.dirty_canvas = true;\n } else if (this.selected_group && !this.read_only) {\n if (this.selected_group_resizing) {\n this.selected_group.resize(\n e.canvasX - this.selected_group.pos[0],\n e.canvasY - this.selected_group.pos[1]\n );\n } else {\n const deltax = delta2[0] / this.ds.scale;\n const deltay = delta2[1] / this.ds.scale;\n this.selected_group.move(deltax, deltay, e.ctrlKey);\n if (this.selected_group._nodes.length) {\n this.dirty_canvas = true;\n }\n }\n this.dirty_bgcanvas = true;\n } else if (this.dragging_canvas) {\n this.ds.offset[0] += delta2[0] / this.ds.scale;\n this.ds.offset[1] += delta2[1] / this.ds.scale;\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n } else if ((this.allow_interaction || node2 && node2.flags.allow_interaction) && !this.read_only) {\n if (this.connecting_links) {\n this.dirty_canvas = true;\n }\n for (let i2 = 0, l = this.graph._nodes.length; i2 < l; ++i2) {\n if (this.graph._nodes[i2].mouseOver && node2 != this.graph._nodes[i2]) {\n this.graph._nodes[i2].mouseOver = false;\n if (this.node_over && this.node_over.onMouseLeave) {\n this.node_over.onMouseLeave(e);\n }\n this.node_over = null;\n this.dirty_canvas = true;\n }\n }\n if (node2) {\n if (node2.redraw_on_mouse)\n this.dirty_canvas = true;\n if (!node2.mouseOver) {\n node2.mouseOver = true;\n this.node_over = node2;\n this.dirty_canvas = true;\n node2.onMouseEnter?.(e);\n }\n node2.onMouseMove?.(e, [e.canvasX - node2.pos[0], e.canvasY - node2.pos[1]], this);\n if (this.connecting_links) {\n const firstLink = this.connecting_links[0];\n if (firstLink.output) {\n const pos2 = this._highlight_input || [0, 0];\n if (this.isOverNodeBox(node2, e.canvasX, e.canvasY)) ;\n else {\n const slot = this.isOverNodeInput(node2, e.canvasX, e.canvasY, pos2);\n if (slot != -1 && node2.inputs[slot] && LiteGraph.isValidConnection(firstLink.output.type, node2.inputs[slot].type)) {\n this._highlight_input = pos2;\n this._highlight_input_slot = node2.inputs[slot];\n } else {\n if (this.getWidgetLinkType) {\n const overWidget = this.getWidgetAtCursor(node2);\n if (overWidget) {\n const widgetLinkType = this.getWidgetLinkType(overWidget, node2);\n if (widgetLinkType && LiteGraph.isValidConnection(firstLink.output.type, widgetLinkType)) {\n if (firstLink.node.isValidWidgetLink?.(firstLink.output.slot_index, node2, overWidget) !== false) {\n this.link_over_widget = overWidget;\n this.link_over_widget_type = widgetLinkType;\n }\n }\n }\n }\n this._highlight_input = null;\n this._highlight_input_slot = null;\n }\n }\n } else if (firstLink.input) {\n const pos2 = this._highlight_output || [0, 0];\n if (this.isOverNodeBox(node2, e.canvasX, e.canvasY)) ;\n else {\n const slot = this.isOverNodeOutput(node2, e.canvasX, e.canvasY, pos2);\n if (slot != -1 && node2.outputs[slot] && LiteGraph.isValidConnection(firstLink.input.type, node2.outputs[slot].type)) {\n this._highlight_output = pos2;\n } else {\n this._highlight_output = null;\n }\n }\n }\n }\n if (this.canvas) {\n this.canvas.style.cursor = node2.inResizeCorner(e.canvasX, e.canvasY) ? \"se-resize\" : \"crosshair\";\n }\n } else {\n let over_link = null;\n for (let i2 = 0; i2 < this.visible_links.length; ++i2) {\n const link = this.visible_links[i2];\n const center = link._pos;\n if (!center || e.canvasX < center[0] - 4 || e.canvasX > center[0] + 4 || e.canvasY < center[1] - 4 || e.canvasY > center[1] + 4) {\n continue;\n }\n over_link = link;\n break;\n }\n if (over_link != this.over_link_center) {\n this.over_link_center = over_link;\n this.dirty_canvas = true;\n }\n if (this.canvas) {\n this.canvas.style.cursor = \"\";\n }\n }\n if (this.node_capturing_input && this.node_capturing_input != node2) {\n this.node_capturing_input.onMouseMove?.(e, [e.canvasX - this.node_capturing_input.pos[0], e.canvasY - this.node_capturing_input.pos[1]], this);\n }\n if (this.node_dragged && !this.live_mode) {\n for (const i2 in this.selected_nodes) {\n const n = this.selected_nodes[i2];\n n.pos[0] += delta2[0] / this.ds.scale;\n n.pos[1] += delta2[1] / this.ds.scale;\n if (!n.is_selected) this.processNodeSelected(n, e);\n }\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n }\n if (this.resizing_node && !this.live_mode) {\n const desired_size = [e.canvasX - this.resizing_node.pos[0], e.canvasY - this.resizing_node.pos[1]];\n const min_size = this.resizing_node.computeSize();\n desired_size[0] = Math.max(min_size[0], desired_size[0]);\n desired_size[1] = Math.max(min_size[1], desired_size[1]);\n this.resizing_node.setSize(desired_size);\n this.canvas.style.cursor = \"se-resize\";\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n }\n }\n e.preventDefault();\n return false;\n }\n /**\n * Called when a mouse up event has to be processed\n **/\n processMouseUp(e) {\n const is_primary = e.isPrimary === void 0 || e.isPrimary;\n if (!is_primary) {\n return false;\n }\n if (!this.graph) return;\n const window2 = this.getCanvasWindow();\n const document2 = window2.document;\n LGraphCanvas.active_canvas = this;\n if (!this.options.skip_events) {\n LiteGraph.pointerListenerRemove(document2, \"move\", this._mousemove_callback, true);\n LiteGraph.pointerListenerAdd(this.canvas, \"move\", this._mousemove_callback, true);\n LiteGraph.pointerListenerRemove(document2, \"up\", this._mouseup_callback, true);\n }\n this.adjustMouseEvent(e);\n const now = LiteGraph.getTime();\n e.click_time = now - this.last_mouseclick;\n this.last_mouse_dragging = false;\n this.last_click_position = null;\n this.block_click &&= false;\n if (e.which == 1) {\n if (this.node_widget) {\n this.processNodeWidgets(this.node_widget[0], this.graph_mouse, e);\n }\n this.node_widget = null;\n if (this.selected_group) {\n const diffx = this.selected_group.pos[0] - Math.round(this.selected_group.pos[0]);\n const diffy = this.selected_group.pos[1] - Math.round(this.selected_group.pos[1]);\n this.selected_group.move(diffx, diffy, e.ctrlKey);\n this.selected_group.pos[0] = Math.round(\n this.selected_group.pos[0]\n );\n this.selected_group.pos[1] = Math.round(\n this.selected_group.pos[1]\n );\n if (this.selected_group._nodes.length) {\n this.dirty_canvas = true;\n }\n this.selected_group = null;\n }\n this.selected_group_resizing = false;\n let node2 = this.graph.getNodeOnPos(\n e.canvasX,\n e.canvasY,\n this.visible_nodes\n );\n if (this.dragging_rectangle) {\n if (this.graph) {\n const nodes = this.graph._nodes;\n const node_bounding = new Float32Array(4);\n const w2 = Math.abs(this.dragging_rectangle[2]);\n const h = Math.abs(this.dragging_rectangle[3]);\n const startx = this.dragging_rectangle[2] < 0 ? this.dragging_rectangle[0] - w2 : this.dragging_rectangle[0];\n const starty = this.dragging_rectangle[3] < 0 ? this.dragging_rectangle[1] - h : this.dragging_rectangle[1];\n this.dragging_rectangle[0] = startx;\n this.dragging_rectangle[1] = starty;\n this.dragging_rectangle[2] = w2;\n this.dragging_rectangle[3] = h;\n if (!node2 || w2 > 10 && h > 10) {\n const to_select = [];\n for (let i2 = 0; i2 < nodes.length; ++i2) {\n const nodeX = nodes[i2];\n nodeX.getBounding(node_bounding);\n if (!overlapBounding(\n this.dragging_rectangle,\n node_bounding\n )) {\n continue;\n }\n to_select.push(nodeX);\n }\n if (to_select.length) {\n this.selectNodes(to_select, e.shiftKey);\n }\n } else {\n this.selectNodes([node2], e.shiftKey || e.ctrlKey || e.metaKey);\n }\n }\n this.dragging_rectangle = null;\n } else if (this.connecting_links) {\n if (node2) {\n for (const link of this.connecting_links) {\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n if (link.output) {\n const slot = this.isOverNodeInput(\n node2,\n e.canvasX,\n e.canvasY\n );\n if (slot != -1) {\n link.node.connect(link.slot, node2, slot);\n } else if (this.link_over_widget) {\n this.emitEvent({\n subType: \"connectingWidgetLink\",\n link,\n node: node2,\n widget: this.link_over_widget\n });\n this.link_over_widget = null;\n } else {\n link.node.connectByType(link.slot, node2, link.output.type);\n }\n } else if (link.input) {\n const slot = this.isOverNodeOutput(\n node2,\n e.canvasX,\n e.canvasY\n );\n if (slot != -1) {\n node2.connect(slot, link.node, link.slot);\n } else {\n link.node.connectByTypeOutput(link.slot, node2, link.input.type);\n }\n }\n }\n } else {\n const firstLink = this.connecting_links[0];\n const linkReleaseContext = firstLink.output ? {\n node_from: firstLink.node,\n slot_from: firstLink.output,\n type_filter_in: firstLink.output.type\n } : {\n node_to: firstLink.node,\n slot_from: firstLink.input,\n type_filter_out: firstLink.input.type\n };\n const linkReleaseContextExtended = {\n links: this.connecting_links\n };\n this.canvas.dispatchEvent(new CustomEvent(\n \"litegraph:canvas\",\n {\n bubbles: true,\n detail: {\n subType: \"empty-release\",\n originalEvent: e,\n linkReleaseContext: linkReleaseContextExtended\n }\n }\n ));\n if (LiteGraph.release_link_on_empty_shows_menu) {\n if (e.shiftKey) {\n if (this.allow_searchbox) {\n this.showSearchBox(e, linkReleaseContext);\n }\n } else {\n if (firstLink.output) {\n this.showConnectionMenu({ nodeFrom: firstLink.node, slotFrom: firstLink.output, e });\n } else if (firstLink.input) {\n this.showConnectionMenu({ nodeTo: firstLink.node, slotTo: firstLink.input, e });\n }\n }\n }\n }\n this.connecting_links = null;\n } else if (this.resizing_node) {\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n this.graph.afterChange(this.resizing_node);\n this.resizing_node = null;\n } else if (this.node_dragged) {\n node2 = this.node_dragged;\n if (node2 && e.click_time < 300 && isInsideRectangle(e.canvasX, e.canvasY, node2.pos[0], node2.pos[1] - LiteGraph.NODE_TITLE_HEIGHT, LiteGraph.NODE_TITLE_HEIGHT, LiteGraph.NODE_TITLE_HEIGHT)) {\n node2.collapse();\n }\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n this.node_dragged.pos[0] = Math.round(this.node_dragged.pos[0]);\n this.node_dragged.pos[1] = Math.round(this.node_dragged.pos[1]);\n if (this.graph.config.align_to_grid || this.align_to_grid) {\n this.node_dragged.alignToGrid();\n }\n this.onNodeMoved?.(this.node_dragged);\n this.graph.afterChange(this.node_dragged);\n this.node_dragged = null;\n } else {\n node2 = this.graph.getNodeOnPos(\n e.canvasX,\n e.canvasY,\n this.visible_nodes\n );\n if (!node2 && e.click_time < 300) {\n this.deselectAllNodes();\n }\n this.dirty_canvas = true;\n this.dragging_canvas = false;\n this.node_over?.onMouseUp?.(e, [e.canvasX - this.node_over.pos[0], e.canvasY - this.node_over.pos[1]], this);\n this.node_capturing_input?.onMouseUp?.(e, [\n e.canvasX - this.node_capturing_input.pos[0],\n e.canvasY - this.node_capturing_input.pos[1]\n ]);\n }\n } else if (e.which == 2) {\n this.dirty_canvas = true;\n this.dragging_canvas = false;\n } else if (e.which == 3) {\n this.dirty_canvas = true;\n this.dragging_canvas = false;\n }\n if (is_primary) {\n this.pointer_is_down = false;\n this.pointer_is_double = false;\n }\n this.graph.change();\n e.stopPropagation();\n e.preventDefault();\n return false;\n }\n /**\n * Called when a mouse wheel event has to be processed\n **/\n processMouseWheel(e) {\n if (!this.graph || !this.allow_dragcanvas) return;\n const delta2 = e.wheelDeltaY ?? e.detail * -60;\n this.adjustMouseEvent(e);\n const pos2 = [e.clientX, e.clientY];\n if (this.viewport && !isPointInRectangle(pos2, this.viewport)) return;\n let scale = this.ds.scale;\n if (delta2 > 0) scale *= this.zoom_speed;\n else if (delta2 < 0) scale *= 1 / this.zoom_speed;\n this.ds.changeScale(scale, [e.clientX, e.clientY]);\n this.graph.change();\n e.preventDefault();\n return false;\n }\n /**\n * returns true if a position (in graph space) is on top of a node little corner box\n **/\n isOverNodeBox(node2, canvasx, canvasy) {\n const title_height = LiteGraph.NODE_TITLE_HEIGHT;\n return Boolean(isInsideRectangle(\n canvasx,\n canvasy,\n node2.pos[0] + 2,\n node2.pos[1] + 2 - title_height,\n title_height - 4,\n title_height - 4\n ));\n }\n /**\n * returns the INDEX if a position (in graph space) is on top of a node input slot\n **/\n isOverNodeInput(node2, canvasx, canvasy, slot_pos) {\n if (node2.inputs) {\n for (let i2 = 0, l = node2.inputs.length; i2 < l; ++i2) {\n const input = node2.inputs[i2];\n const link_pos = node2.getConnectionPos(true, i2);\n let is_inside = false;\n if (node2.horizontal) {\n is_inside = isInsideRectangle(\n canvasx,\n canvasy,\n link_pos[0] - 5,\n link_pos[1] - 10,\n 10,\n 20\n );\n } else {\n const width2 = 20 + ((input.label?.length ?? input.name?.length) || 3) * 7;\n is_inside = isInsideRectangle(\n canvasx,\n canvasy,\n link_pos[0] - 10,\n link_pos[1] - 10,\n width2,\n 20\n );\n }\n if (is_inside) {\n if (slot_pos) {\n slot_pos[0] = link_pos[0];\n slot_pos[1] = link_pos[1];\n }\n return i2;\n }\n }\n }\n return -1;\n }\n /**\n * returns the INDEX if a position (in graph space) is on top of a node output slot\n **/\n isOverNodeOutput(node2, canvasx, canvasy, slot_pos) {\n if (node2.outputs) {\n for (let i2 = 0, l = node2.outputs.length; i2 < l; ++i2) {\n const link_pos = node2.getConnectionPos(false, i2);\n let is_inside = false;\n if (node2.horizontal) {\n is_inside = isInsideRectangle(\n canvasx,\n canvasy,\n link_pos[0] - 5,\n link_pos[1] - 10,\n 10,\n 20\n );\n } else {\n is_inside = isInsideRectangle(\n canvasx,\n canvasy,\n link_pos[0] - 10,\n link_pos[1] - 10,\n 40,\n 20\n );\n }\n if (is_inside) {\n if (slot_pos) {\n slot_pos[0] = link_pos[0];\n slot_pos[1] = link_pos[1];\n }\n return i2;\n }\n }\n }\n return -1;\n }\n /**\n * process a key event\n **/\n processKey(e) {\n if (!this.graph) return;\n let block_default = false;\n if (e.target.localName == \"input\") return;\n if (e.type == \"keydown\") {\n if (e.keyCode == 32) {\n this.read_only = true;\n if (this._previously_dragging_canvas === null) {\n this._previously_dragging_canvas = this.dragging_canvas;\n }\n this.dragging_canvas = this.pointer_is_down;\n block_default = true;\n } else if (e.keyCode == 27) {\n this.node_panel?.close();\n this.options_panel?.close();\n block_default = true;\n } else if (e.keyCode == 65 && e.ctrlKey) {\n this.selectNodes();\n block_default = true;\n } else if (e.keyCode === 67 && (e.metaKey || e.ctrlKey) && !e.shiftKey) {\n if (this.selected_nodes) {\n this.copyToClipboard();\n block_default = true;\n }\n } else if (e.keyCode === 86 && (e.metaKey || e.ctrlKey)) {\n this.pasteFromClipboard(e.shiftKey);\n } else if (e.keyCode == 46 || e.keyCode == 8) {\n if (e.target.localName != \"input\" && e.target.localName != \"textarea\") {\n this.deleteSelectedNodes();\n block_default = true;\n }\n }\n if (this.selected_nodes) {\n for (const i2 in this.selected_nodes) {\n this.selected_nodes[i2].onKeyDown?.(e);\n }\n }\n } else if (e.type == \"keyup\") {\n if (e.keyCode == 32) {\n this.read_only = false;\n this.dragging_canvas = this._previously_dragging_canvas ?? false;\n this._previously_dragging_canvas = null;\n }\n if (this.selected_nodes) {\n for (const i2 in this.selected_nodes) {\n this.selected_nodes[i2].onKeyUp?.(e);\n }\n }\n }\n this.graph.change();\n if (block_default) {\n e.preventDefault();\n e.stopImmediatePropagation();\n return false;\n }\n }\n copyToClipboard(nodes) {\n const clipboard_info = {\n nodes: [],\n links: []\n };\n let index = 0;\n const selected_nodes_array = [];\n if (!nodes) nodes = this.selected_nodes;\n for (const i2 in nodes) {\n const node2 = nodes[i2];\n if (node2.clonable === false) continue;\n node2._relative_id = index;\n selected_nodes_array.push(node2);\n index += 1;\n }\n for (let i2 = 0; i2 < selected_nodes_array.length; ++i2) {\n const node2 = selected_nodes_array[i2];\n const cloned = node2.clone();\n if (!cloned) {\n console.warn(\"node type not found: \" + node2.type);\n continue;\n }\n clipboard_info.nodes.push(cloned.serialize());\n if (node2.inputs?.length) {\n for (let j = 0; j < node2.inputs.length; ++j) {\n const input = node2.inputs[j];\n if (!input || input.link == null) continue;\n const link_info = this.graph.links[input.link];\n if (!link_info) continue;\n const target_node = this.graph.getNodeById(link_info.origin_id);\n if (!target_node) continue;\n clipboard_info.links.push([\n target_node._relative_id,\n link_info.origin_slot,\n //j,\n node2._relative_id,\n link_info.target_slot,\n target_node.id\n ]);\n }\n }\n }\n localStorage.setItem(\n \"litegrapheditor_clipboard\",\n JSON.stringify(clipboard_info)\n );\n }\n emitEvent(detail) {\n this.canvas.dispatchEvent(new CustomEvent(\n \"litegraph:canvas\",\n {\n bubbles: true,\n detail\n }\n ));\n }\n emitBeforeChange() {\n this.emitEvent({\n subType: \"before-change\"\n });\n }\n emitAfterChange() {\n this.emitEvent({\n subType: \"after-change\"\n });\n }\n _pasteFromClipboard(isConnectUnselected = false) {\n if (!LiteGraph.ctrl_shift_v_paste_connect_unselected_outputs && isConnectUnselected) return;\n const data = localStorage.getItem(\"litegrapheditor_clipboard\");\n if (!data) return;\n this.graph.beforeChange();\n const clipboard_info = JSON.parse(data);\n let posMin = false;\n let posMinIndexes = false;\n for (let i2 = 0; i2 < clipboard_info.nodes.length; ++i2) {\n if (posMin) {\n if (posMin[0] > clipboard_info.nodes[i2].pos[0]) {\n posMin[0] = clipboard_info.nodes[i2].pos[0];\n posMinIndexes[0] = i2;\n }\n if (posMin[1] > clipboard_info.nodes[i2].pos[1]) {\n posMin[1] = clipboard_info.nodes[i2].pos[1];\n posMinIndexes[1] = i2;\n }\n } else {\n posMin = [clipboard_info.nodes[i2].pos[0], clipboard_info.nodes[i2].pos[1]];\n posMinIndexes = [i2, i2];\n }\n }\n const nodes = [];\n for (let i2 = 0; i2 < clipboard_info.nodes.length; ++i2) {\n const node_data = clipboard_info.nodes[i2];\n const node2 = LiteGraph.createNode(node_data.type);\n if (node2) {\n node2.configure(node_data);\n node2.pos[0] += this.graph_mouse[0] - posMin[0];\n node2.pos[1] += this.graph_mouse[1] - posMin[1];\n this.graph.add(node2, { doProcessChange: false });\n nodes.push(node2);\n }\n }\n for (let i2 = 0; i2 < clipboard_info.links.length; ++i2) {\n const link_info = clipboard_info.links[i2];\n let origin_node = void 0;\n const origin_node_relative_id = link_info[0];\n if (origin_node_relative_id != null) {\n origin_node = nodes[origin_node_relative_id];\n } else if (LiteGraph.ctrl_shift_v_paste_connect_unselected_outputs && isConnectUnselected) {\n const origin_node_id = link_info[4];\n if (origin_node_id) {\n origin_node = this.graph.getNodeById(origin_node_id);\n }\n }\n const target_node = nodes[link_info[2]];\n if (origin_node && target_node)\n origin_node.connect(link_info[1], target_node, link_info[3]);\n else\n console.warn(\"Warning, nodes missing on pasting\");\n }\n this.selectNodes(nodes);\n this.graph.afterChange();\n }\n pasteFromClipboard(isConnectUnselected = false) {\n this.emitBeforeChange();\n try {\n this._pasteFromClipboard(isConnectUnselected);\n } finally {\n this.emitAfterChange();\n }\n }\n /**\n * process a item drop event on top the canvas\n **/\n processDrop(e) {\n e.preventDefault();\n this.adjustMouseEvent(e);\n const x2 = e.clientX;\n const y2 = e.clientY;\n const is_inside = !this.viewport || this.viewport && x2 >= this.viewport[0] && x2 < this.viewport[0] + this.viewport[2] && y2 >= this.viewport[1] && y2 < this.viewport[1] + this.viewport[3];\n if (!is_inside) return;\n const pos2 = [e.canvasX, e.canvasY];\n const node2 = this.graph ? this.graph.getNodeOnPos(pos2[0], pos2[1]) : null;\n if (!node2) {\n const r = this.onDropItem?.(e);\n if (!r) this.checkDropItem(e);\n return;\n }\n if (node2.onDropFile || node2.onDropData) {\n const files = e.dataTransfer.files;\n if (files && files.length) {\n for (let i2 = 0; i2 < files.length; i2++) {\n const file = e.dataTransfer.files[0];\n const filename = file.name;\n node2.onDropFile?.(file);\n if (node2.onDropData) {\n const reader = new FileReader();\n reader.onload = function(event2) {\n const data = event2.target.result;\n node2.onDropData(data, filename, file);\n };\n const type = file.type.split(\"/\")[0];\n if (type == \"text\" || type == \"\") {\n reader.readAsText(file);\n } else if (type == \"image\") {\n reader.readAsDataURL(file);\n } else {\n reader.readAsArrayBuffer(file);\n }\n }\n }\n }\n }\n if (node2.onDropItem?.(e)) return true;\n return this.onDropItem ? this.onDropItem(e) : false;\n }\n //called if the graph doesn't have a default drop item behaviour\n checkDropItem(e) {\n if (!e.dataTransfer.files.length) return;\n const file = e.dataTransfer.files[0];\n const ext = LGraphCanvas.getFileExtension(file.name).toLowerCase();\n const nodetype = LiteGraph.node_types_by_file_extension[ext];\n if (!nodetype) return;\n this.graph.beforeChange();\n const node2 = LiteGraph.createNode(nodetype.type);\n node2.pos = [e.canvasX, e.canvasY];\n this.graph.add(node2);\n node2.onDropFile?.(file);\n this.graph.afterChange();\n }\n processNodeDblClicked(n) {\n this.onShowNodePanel?.(n);\n this.onNodeDblClicked?.(n);\n this.setDirty(true);\n }\n processNodeSelected(node2, e) {\n this.selectNode(node2, e && (e.shiftKey || e.metaKey || e.ctrlKey || this.multi_select));\n this.onNodeSelected?.(node2);\n }\n /**\n * selects a given node (or adds it to the current selection)\n **/\n selectNode(node2, add_to_current_selection) {\n if (node2 == null) {\n this.deselectAllNodes();\n } else {\n this.selectNodes([node2], add_to_current_selection);\n }\n }\n /**\n * selects several nodes (or adds them to the current selection)\n **/\n selectNodes(nodes, add_to_current_selection) {\n if (!add_to_current_selection) {\n this.deselectAllNodes();\n }\n nodes = nodes || this.graph._nodes;\n if (typeof nodes == \"string\") nodes = [nodes];\n for (const i2 in nodes) {\n const node2 = nodes[i2];\n if (node2.is_selected) {\n this.deselectNode(node2);\n continue;\n }\n if (!node2.is_selected) {\n node2.onSelected?.();\n }\n node2.is_selected = true;\n this.selected_nodes[node2.id] = node2;\n if (node2.inputs) {\n for (let j = 0; j < node2.inputs.length; ++j) {\n this.highlighted_links[node2.inputs[j].link] = true;\n }\n }\n if (node2.outputs) {\n for (let j = 0; j < node2.outputs.length; ++j) {\n const out = node2.outputs[j];\n if (out.links) {\n for (let k = 0; k < out.links.length; ++k) {\n this.highlighted_links[out.links[k]] = true;\n }\n }\n }\n }\n }\n this.onSelectionChange?.(this.selected_nodes);\n this.setDirty(true);\n }\n /**\n * removes a node from the current selection\n **/\n deselectNode(node2) {\n if (!node2.is_selected) return;\n node2.onDeselected?.();\n node2.is_selected = false;\n delete this.selected_nodes[node2.id];\n this.onNodeDeselected?.(node2);\n if (node2.inputs) {\n for (let i2 = 0; i2 < node2.inputs.length; ++i2) {\n delete this.highlighted_links[node2.inputs[i2].link];\n }\n }\n if (node2.outputs) {\n for (let i2 = 0; i2 < node2.outputs.length; ++i2) {\n const out = node2.outputs[i2];\n if (out.links) {\n for (let j = 0; j < out.links.length; ++j) {\n delete this.highlighted_links[out.links[j]];\n }\n }\n }\n }\n }\n /**\n * removes all nodes from the current selection\n **/\n deselectAllNodes() {\n if (!this.graph) return;\n const nodes = this.graph._nodes;\n for (let i2 = 0, l = nodes.length; i2 < l; ++i2) {\n const node2 = nodes[i2];\n if (!node2.is_selected) {\n continue;\n }\n node2.onDeselected?.();\n node2.is_selected = false;\n this.onNodeDeselected?.(node2);\n }\n this.selected_nodes = {};\n this.current_node = null;\n this.highlighted_links = {};\n this.onSelectionChange?.(this.selected_nodes);\n this.setDirty(true);\n }\n /**\n * deletes all nodes in the current selection from the graph\n **/\n deleteSelectedNodes() {\n this.graph.beforeChange();\n for (const i2 in this.selected_nodes) {\n const node2 = this.selected_nodes[i2];\n if (node2.block_delete) continue;\n if (node2.inputs?.length && node2.outputs && node2.outputs.length && LiteGraph.isValidConnection(node2.inputs[0].type, node2.outputs[0].type) && node2.inputs[0].link && node2.outputs[0].links && node2.outputs[0].links.length) {\n const input_link = node2.graph.links[node2.inputs[0].link];\n const output_link = node2.graph.links[node2.outputs[0].links[0]];\n const input_node = node2.getInputNode(0);\n const output_node = node2.getOutputNodes(0)[0];\n if (input_node && output_node)\n input_node.connect(input_link.origin_slot, output_node, output_link.target_slot);\n }\n this.graph.remove(node2);\n this.onNodeDeselected?.(node2);\n }\n this.selected_nodes = {};\n this.current_node = null;\n this.highlighted_links = {};\n this.setDirty(true);\n this.graph.afterChange();\n }\n /**\n * centers the camera on a given node\n **/\n centerOnNode(node2) {\n const dpi = window?.devicePixelRatio || 1;\n this.ds.offset[0] = -node2.pos[0] - node2.size[0] * 0.5 + this.canvas.width * 0.5 / (this.ds.scale * dpi);\n this.ds.offset[1] = -node2.pos[1] - node2.size[1] * 0.5 + this.canvas.height * 0.5 / (this.ds.scale * dpi);\n this.setDirty(true, true);\n }\n /**\n * adds some useful properties to a mouse event, like the position in graph coordinates\n **/\n adjustMouseEvent(e) {\n let clientX_rel = e.clientX;\n let clientY_rel = e.clientY;\n if (this.canvas) {\n const b = this.canvas.getBoundingClientRect();\n clientX_rel -= b.left;\n clientY_rel -= b.top;\n }\n if (e.deltaX === void 0) e.deltaX = clientX_rel - this.last_mouse_position[0];\n if (e.deltaY === void 0) e.deltaY = clientY_rel - this.last_mouse_position[1];\n this.last_mouse_position[0] = clientX_rel;\n this.last_mouse_position[1] = clientY_rel;\n e.canvasX = clientX_rel / this.ds.scale - this.ds.offset[0];\n e.canvasY = clientY_rel / this.ds.scale - this.ds.offset[1];\n }\n /**\n * changes the zoom level of the graph (default is 1), you can pass also a place used to pivot the zoom\n **/\n setZoom(value, zooming_center) {\n this.ds.changeScale(value, zooming_center);\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n }\n /**\n * converts a coordinate from graph coordinates to canvas2D coordinates\n **/\n convertOffsetToCanvas(pos2, out) {\n return this.ds.convertOffsetToCanvas(pos2, out);\n }\n /**\n * converts a coordinate from Canvas2D coordinates to graph space\n **/\n convertCanvasToOffset(pos2, out) {\n return this.ds.convertCanvasToOffset(pos2, out);\n }\n //converts event coordinates from canvas2D to graph coordinates\n convertEventToCanvasOffset(e) {\n const rect = this.canvas.getBoundingClientRect();\n return this.convertCanvasToOffset([\n e.clientX - rect.left,\n e.clientY - rect.top\n ]);\n }\n /**\n * brings a node to front (above all other nodes)\n **/\n bringToFront(node2) {\n const i2 = this.graph._nodes.indexOf(node2);\n if (i2 == -1) return;\n this.graph._nodes.splice(i2, 1);\n this.graph._nodes.push(node2);\n }\n /**\n * sends a node to the back (below all other nodes)\n **/\n sendToBack(node2) {\n const i2 = this.graph._nodes.indexOf(node2);\n if (i2 == -1) return;\n this.graph._nodes.splice(i2, 1);\n this.graph._nodes.unshift(node2);\n }\n /* LGraphCanvas render */\n /**\n * Determines which nodes are visible and populates {@link out} with the results.\n * @param nodes The list of nodes to check - if falsy, all nodes in the graph will be checked\n * @param out Array to write visible nodes into - if falsy, a new array is created instead\n * @returns {LGraphNode[]} Array passed ({@link out}), or a new array containing all visible nodes\n */\n computeVisibleNodes(nodes, out) {\n const visible_nodes = out || [];\n visible_nodes.length = 0;\n nodes = nodes || this.graph._nodes;\n for (let i2 = 0, l = nodes.length; i2 < l; ++i2) {\n const n = nodes[i2];\n if (this.live_mode && !n.onDrawBackground && !n.onDrawForeground) {\n continue;\n }\n if (!overlapBounding(this.visible_area, n.getBounding(LGraphCanvas.#temp, true))) {\n continue;\n }\n visible_nodes.push(n);\n }\n return visible_nodes;\n }\n /**\n * renders the whole canvas content, by rendering in two separated canvas, one containing the background grid and the connections, and one containing the nodes)\n **/\n draw(force_canvas, force_bgcanvas) {\n if (!this.canvas || this.canvas.width == 0 || this.canvas.height == 0) return;\n const now = LiteGraph.getTime();\n this.render_time = (now - this.last_draw_time) * 1e-3;\n this.last_draw_time = now;\n if (this.graph) {\n this.ds.computeVisibleArea(this.viewport);\n }\n if (this.dirty_bgcanvas || force_bgcanvas || this.always_render_background || this.graph && this.graph._last_trigger_time && now - this.graph._last_trigger_time < 1e3) {\n this.drawBackCanvas();\n }\n if (this.dirty_canvas || force_canvas) {\n this.drawFrontCanvas();\n }\n this.fps = this.render_time ? 1 / this.render_time : 0;\n this.frame += 1;\n }\n /**\n * draws the front canvas (the one containing all the nodes)\n **/\n drawFrontCanvas() {\n this.dirty_canvas = false;\n if (!this.ctx) {\n this.ctx = this.bgcanvas.getContext(\"2d\");\n }\n const ctx = this.ctx;\n if (!ctx) return;\n const canvas = this.canvas;\n if (ctx.start2D && !this.viewport) {\n ctx.start2D();\n ctx.restore();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n }\n const area = this.viewport || this.dirty_area;\n if (area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area[0], area[1], area[2], area[3]);\n ctx.clip();\n }\n if (this.clear_background) {\n if (area)\n ctx.clearRect(area[0], area[1], area[2], area[3]);\n else\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n }\n if (this.bgcanvas == this.canvas) {\n this.drawBackCanvas();\n } else {\n const scale = window.devicePixelRatio;\n ctx.drawImage(this.bgcanvas, 0, 0, this.bgcanvas.width / scale, this.bgcanvas.height / scale);\n }\n this.onRender?.(canvas, ctx);\n if (this.show_info) {\n this.renderInfo(ctx, area ? area[0] : 0, area ? area[1] : 0);\n }\n if (this.graph) {\n ctx.save();\n this.ds.toCanvasContext(ctx);\n const visible_nodes = this.computeVisibleNodes(\n null,\n this.visible_nodes\n );\n for (let i2 = 0; i2 < visible_nodes.length; ++i2) {\n const node2 = visible_nodes[i2];\n ctx.save();\n ctx.translate(node2.pos[0], node2.pos[1]);\n this.drawNode(node2, ctx);\n ctx.restore();\n }\n if (this.render_execution_order) {\n this.drawExecutionOrder(ctx);\n }\n if (this.graph.config.links_ontop) {\n if (!this.live_mode) {\n this.drawConnections(ctx);\n }\n }\n if (this.connecting_links) {\n for (const link of this.connecting_links) {\n ctx.lineWidth = this.connections_width;\n let link_color = null;\n const connInOrOut = link.output || link.input;\n const connType = connInOrOut.type;\n let connDir = connInOrOut.dir;\n if (connDir == null) {\n if (link.output)\n connDir = link.node.horizontal ? LiteGraph.DOWN : LiteGraph.RIGHT;\n else\n connDir = link.node.horizontal ? LiteGraph.UP : LiteGraph.LEFT;\n }\n const connShape = connInOrOut.shape;\n switch (connType) {\n case LiteGraph.EVENT:\n link_color = LiteGraph.EVENT_LINK_COLOR;\n break;\n default:\n link_color = LiteGraph.CONNECTING_LINK_COLOR;\n }\n this.renderLink(\n ctx,\n link.pos,\n [this.graph_mouse[0], this.graph_mouse[1]],\n null,\n false,\n null,\n link_color,\n connDir,\n LiteGraph.CENTER\n );\n ctx.beginPath();\n if (connType === LiteGraph.EVENT || connShape === LiteGraph.BOX_SHAPE) {\n ctx.rect(\n link.pos[0] - 6 + 0.5,\n link.pos[1] - 5 + 0.5,\n 14,\n 10\n );\n ctx.fill();\n ctx.beginPath();\n ctx.rect(\n this.graph_mouse[0] - 6 + 0.5,\n this.graph_mouse[1] - 5 + 0.5,\n 14,\n 10\n );\n } else if (connShape === LiteGraph.ARROW_SHAPE) {\n ctx.moveTo(link.pos[0] + 8, link.pos[1] + 0.5);\n ctx.lineTo(link.pos[0] - 4, link.pos[1] + 6 + 0.5);\n ctx.lineTo(link.pos[0] - 4, link.pos[1] - 6 + 0.5);\n ctx.closePath();\n } else {\n ctx.arc(\n link.pos[0],\n link.pos[1],\n 4,\n 0,\n Math.PI * 2\n );\n ctx.fill();\n ctx.beginPath();\n ctx.arc(\n this.graph_mouse[0],\n this.graph_mouse[1],\n 4,\n 0,\n Math.PI * 2\n );\n }\n ctx.fill();\n ctx.fillStyle = \"#ffcc00\";\n if (this._highlight_input) {\n ctx.beginPath();\n if (this._highlight_input_slot?.shape === LiteGraph.ARROW_SHAPE) {\n ctx.moveTo(this._highlight_input[0] + 8, this._highlight_input[1] + 0.5);\n ctx.lineTo(this._highlight_input[0] - 4, this._highlight_input[1] + 6 + 0.5);\n ctx.lineTo(this._highlight_input[0] - 4, this._highlight_input[1] - 6 + 0.5);\n ctx.closePath();\n } else {\n ctx.arc(\n this._highlight_input[0],\n this._highlight_input[1],\n 6,\n 0,\n Math.PI * 2\n );\n }\n ctx.fill();\n }\n if (this._highlight_output) {\n ctx.beginPath();\n if (this._highlight_input_slot?.shape === LiteGraph.ARROW_SHAPE) {\n ctx.moveTo(this._highlight_output[0] + 8, this._highlight_output[1] + 0.5);\n ctx.lineTo(this._highlight_output[0] - 4, this._highlight_output[1] + 6 + 0.5);\n ctx.lineTo(this._highlight_output[0] - 4, this._highlight_output[1] - 6 + 0.5);\n ctx.closePath();\n } else {\n ctx.arc(\n this._highlight_output[0],\n this._highlight_output[1],\n 6,\n 0,\n Math.PI * 2\n );\n }\n ctx.fill();\n }\n }\n }\n if (this.dragging_rectangle) {\n ctx.strokeStyle = \"#FFF\";\n ctx.strokeRect(\n this.dragging_rectangle[0],\n this.dragging_rectangle[1],\n this.dragging_rectangle[2],\n this.dragging_rectangle[3]\n );\n }\n if (this.over_link_center && this.render_link_tooltip)\n this.drawLinkTooltip(ctx, this.over_link_center);\n else\n this.onDrawLinkTooltip?.(ctx, null);\n this.onDrawForeground?.(ctx, this.visible_rect);\n ctx.restore();\n }\n if (this._graph_stack?.length) {\n this.drawSubgraphPanel(ctx);\n }\n this.onDrawOverlay?.(ctx);\n if (area) ctx.restore();\n if (ctx.finish2D) ctx.finish2D();\n }\n /**\n * draws the panel in the corner that shows subgraph properties\n **/\n drawSubgraphPanel(ctx) {\n const subgraph = this.graph;\n const subnode = subgraph._subgraph_node;\n if (!subnode) {\n console.warn(\"subgraph without subnode\");\n return;\n }\n this.drawSubgraphPanelLeft(subgraph, subnode, ctx);\n this.drawSubgraphPanelRight(subgraph, subnode, ctx);\n }\n drawSubgraphPanelLeft(subgraph, subnode, ctx) {\n const num = subnode.inputs ? subnode.inputs.length : 0;\n const w2 = 200;\n const h = Math.floor(LiteGraph.NODE_SLOT_HEIGHT * 1.6);\n ctx.fillStyle = \"#111\";\n ctx.globalAlpha = 0.8;\n ctx.beginPath();\n ctx.roundRect(10, 10, w2, (num + 1) * h + 50, [8]);\n ctx.fill();\n ctx.globalAlpha = 1;\n ctx.fillStyle = \"#888\";\n ctx.font = \"14px Arial\";\n ctx.textAlign = \"left\";\n ctx.fillText(\"Graph Inputs\", 20, 34);\n if (this.drawButton(w2 - 20, 20, 20, 20, \"X\", \"#151515\")) {\n this.closeSubgraph();\n return;\n }\n let y2 = 50;\n ctx.font = \"14px Arial\";\n if (subnode.inputs)\n for (let i2 = 0; i2 < subnode.inputs.length; ++i2) {\n const input = subnode.inputs[i2];\n if (input.not_subgraph_input) continue;\n if (this.drawButton(20, y2 + 2, w2 - 20, h - 2)) {\n const type = subnode.constructor.input_node_type || \"graph/input\";\n this.graph.beforeChange();\n const newnode = LiteGraph.createNode(type);\n if (newnode) {\n subgraph.add(newnode);\n this.block_click = false;\n this.last_click_position = null;\n this.selectNodes([newnode]);\n this.node_dragged = newnode;\n this.dragging_canvas = false;\n newnode.setProperty(\"name\", input.name);\n newnode.setProperty(\"type\", input.type);\n this.node_dragged.pos[0] = this.graph_mouse[0] - 5;\n this.node_dragged.pos[1] = this.graph_mouse[1] - 5;\n this.graph.afterChange();\n } else\n console.error(\"graph input node not found:\", type);\n }\n ctx.fillStyle = \"#9C9\";\n ctx.beginPath();\n ctx.arc(w2 - 16, y2 + h * 0.5, 5, 0, 2 * Math.PI);\n ctx.fill();\n ctx.fillStyle = \"#AAA\";\n ctx.fillText(input.name, 30, y2 + h * 0.75);\n ctx.fillStyle = \"#777\";\n ctx.fillText(input.type, 130, y2 + h * 0.75);\n y2 += h;\n }\n if (this.drawButton(20, y2 + 2, w2 - 20, h - 2, \"+\", \"#151515\", \"#222\")) {\n this.showSubgraphPropertiesDialog(subnode);\n }\n }\n drawSubgraphPanelRight(subgraph, subnode, ctx) {\n const num = subnode.outputs ? subnode.outputs.length : 0;\n const canvas_w = this.bgcanvas.width;\n const w2 = 200;\n const h = Math.floor(LiteGraph.NODE_SLOT_HEIGHT * 1.6);\n ctx.fillStyle = \"#111\";\n ctx.globalAlpha = 0.8;\n ctx.beginPath();\n ctx.roundRect(canvas_w - w2 - 10, 10, w2, (num + 1) * h + 50, [8]);\n ctx.fill();\n ctx.globalAlpha = 1;\n ctx.fillStyle = \"#888\";\n ctx.font = \"14px Arial\";\n ctx.textAlign = \"left\";\n const title_text = \"Graph Outputs\";\n const tw = ctx.measureText(title_text).width;\n ctx.fillText(title_text, canvas_w - tw - 20, 34);\n if (this.drawButton(canvas_w - w2, 20, 20, 20, \"X\", \"#151515\")) {\n this.closeSubgraph();\n return;\n }\n let y2 = 50;\n ctx.font = \"14px Arial\";\n if (subnode.outputs)\n for (let i2 = 0; i2 < subnode.outputs.length; ++i2) {\n const output = subnode.outputs[i2];\n if (output.not_subgraph_input) continue;\n if (this.drawButton(canvas_w - w2, y2 + 2, w2 - 20, h - 2)) {\n const type = subnode.constructor.output_node_type || \"graph/output\";\n this.graph.beforeChange();\n const newnode = LiteGraph.createNode(type);\n if (newnode) {\n subgraph.add(newnode);\n this.block_click = false;\n this.last_click_position = null;\n this.selectNodes([newnode]);\n this.node_dragged = newnode;\n this.dragging_canvas = false;\n newnode.setProperty(\"name\", output.name);\n newnode.setProperty(\"type\", output.type);\n this.node_dragged.pos[0] = this.graph_mouse[0] - 5;\n this.node_dragged.pos[1] = this.graph_mouse[1] - 5;\n this.graph.afterChange();\n } else\n console.error(\"graph input node not found:\", type);\n }\n ctx.fillStyle = \"#9C9\";\n ctx.beginPath();\n ctx.arc(canvas_w - w2 + 16, y2 + h * 0.5, 5, 0, 2 * Math.PI);\n ctx.fill();\n ctx.fillStyle = \"#AAA\";\n ctx.fillText(output.name, canvas_w - w2 + 30, y2 + h * 0.75);\n ctx.fillStyle = \"#777\";\n ctx.fillText(output.type, canvas_w - w2 + 130, y2 + h * 0.75);\n y2 += h;\n }\n if (this.drawButton(canvas_w - w2, y2 + 2, w2 - 20, h - 2, \"+\", \"#151515\", \"#222\")) {\n this.showSubgraphPropertiesDialogRight(subnode);\n }\n }\n //Draws a button into the canvas overlay and computes if it was clicked using the immediate gui paradigm\n drawButton(x2, y2, w2, h, text, bgcolor, hovercolor, textcolor) {\n const ctx = this.ctx;\n bgcolor = bgcolor || LiteGraph.NODE_DEFAULT_COLOR;\n hovercolor = hovercolor || \"#555\";\n textcolor = textcolor || LiteGraph.NODE_TEXT_COLOR;\n let pos2 = this.ds.convertOffsetToCanvas(this.graph_mouse);\n const hover = LiteGraph.isInsideRectangle(pos2[0], pos2[1], x2, y2, w2, h);\n pos2 = this.last_click_position ? [this.last_click_position[0], this.last_click_position[1]] : null;\n if (pos2) {\n const rect = this.canvas.getBoundingClientRect();\n pos2[0] -= rect.left;\n pos2[1] -= rect.top;\n }\n const clicked = pos2 && LiteGraph.isInsideRectangle(pos2[0], pos2[1], x2, y2, w2, h);\n ctx.fillStyle = hover ? hovercolor : bgcolor;\n if (clicked) ctx.fillStyle = \"#AAA\";\n ctx.beginPath();\n ctx.roundRect(x2, y2, w2, h, [4]);\n ctx.fill();\n if (text != null) {\n if (text.constructor == String) {\n ctx.fillStyle = textcolor;\n ctx.textAlign = \"center\";\n ctx.font = (h * 0.65 | 0) + \"px Arial\";\n ctx.fillText(text, x2 + w2 * 0.5, y2 + h * 0.75);\n ctx.textAlign = \"left\";\n }\n }\n const was_clicked = clicked && !this.block_click;\n if (clicked) this.blockClick();\n return was_clicked;\n }\n isAreaClicked(x2, y2, w2, h, hold_click) {\n const clickPos = this.last_click_position;\n const clicked = clickPos && LiteGraph.isInsideRectangle(clickPos[0], clickPos[1], x2, y2, w2, h);\n const was_clicked = clicked && !this.block_click;\n if (clicked && hold_click) this.blockClick();\n return was_clicked;\n }\n /**\n * draws some useful stats in the corner of the canvas\n **/\n renderInfo(ctx, x2, y2) {\n x2 = x2 || 10;\n y2 = y2 || this.canvas.offsetHeight - 80;\n ctx.save();\n ctx.translate(x2, y2);\n ctx.font = \"10px Arial\";\n ctx.fillStyle = \"#888\";\n ctx.textAlign = \"left\";\n if (this.graph) {\n ctx.fillText(\"T: \" + this.graph.globaltime.toFixed(2) + \"s\", 5, 13 * 1);\n ctx.fillText(\"I: \" + this.graph.iteration, 5, 13 * 2);\n ctx.fillText(\"N: \" + this.graph._nodes.length + \" [\" + this.visible_nodes.length + \"]\", 5, 13 * 3);\n ctx.fillText(\"V: \" + this.graph._version, 5, 13 * 4);\n ctx.fillText(\"FPS:\" + this.fps.toFixed(2), 5, 13 * 5);\n } else {\n ctx.fillText(\"No graph selected\", 5, 13 * 1);\n }\n ctx.restore();\n }\n /**\n * draws the back canvas (the one containing the background and the connections)\n **/\n drawBackCanvas() {\n const canvas = this.bgcanvas;\n if (canvas.width != this.canvas.width || canvas.height != this.canvas.height) {\n canvas.width = this.canvas.width;\n canvas.height = this.canvas.height;\n }\n if (!this.bgctx) {\n this.bgctx = this.bgcanvas.getContext(\"2d\");\n }\n const ctx = this.bgctx;\n if (ctx.start) ctx.start();\n const viewport = this.viewport || [0, 0, ctx.canvas.width, ctx.canvas.height];\n if (this.clear_background) {\n ctx.clearRect(viewport[0], viewport[1], viewport[2], viewport[3]);\n }\n if (this._graph_stack?.length) {\n ctx.save();\n const subgraph_node = this.graph._subgraph_node;\n ctx.strokeStyle = subgraph_node.bgcolor;\n ctx.lineWidth = 10;\n ctx.strokeRect(1, 1, canvas.width - 2, canvas.height - 2);\n ctx.lineWidth = 1;\n ctx.font = \"40px Arial\";\n ctx.textAlign = \"center\";\n ctx.fillStyle = subgraph_node.bgcolor || \"#AAA\";\n let title = \"\";\n for (let i2 = 1; i2 < this._graph_stack.length; ++i2) {\n title += this._graph_stack[i2]._subgraph_node.getTitle() + \" >> \";\n }\n ctx.fillText(\n title + subgraph_node.getTitle(),\n canvas.width * 0.5,\n 40\n );\n ctx.restore();\n }\n const bg_already_painted = this.onRenderBackground ? this.onRenderBackground(canvas, ctx) : false;\n if (!this.viewport) {\n const scale = window.devicePixelRatio;\n ctx.restore();\n ctx.setTransform(scale, 0, 0, scale, 0, 0);\n }\n this.visible_links.length = 0;\n if (this.graph) {\n ctx.save();\n this.ds.toCanvasContext(ctx);\n if (this.ds.scale < 1.5 && !bg_already_painted && this.clear_background_color) {\n ctx.fillStyle = this.clear_background_color;\n ctx.fillRect(\n this.visible_area[0],\n this.visible_area[1],\n this.visible_area[2],\n this.visible_area[3]\n );\n }\n if (this.background_image && this.ds.scale > 0.5 && !bg_already_painted) {\n if (this.zoom_modify_alpha) {\n ctx.globalAlpha = (1 - 0.5 / this.ds.scale) * this.editor_alpha;\n } else {\n ctx.globalAlpha = this.editor_alpha;\n }\n ctx.imageSmoothingEnabled = false;\n if (!this._bg_img || this._bg_img.name != this.background_image) {\n this._bg_img = new Image();\n this._bg_img.name = this.background_image;\n this._bg_img.src = this.background_image;\n const that2 = this;\n this._bg_img.onload = function() {\n that2.draw(true, true);\n };\n }\n let pattern = this._pattern;\n if (pattern == null && this._bg_img.width > 0) {\n pattern = ctx.createPattern(this._bg_img, \"repeat\");\n this._pattern_img = this._bg_img;\n this._pattern = pattern;\n }\n if (pattern) {\n ctx.fillStyle = pattern;\n ctx.fillRect(\n this.visible_area[0],\n this.visible_area[1],\n this.visible_area[2],\n this.visible_area[3]\n );\n ctx.fillStyle = \"transparent\";\n }\n ctx.globalAlpha = 1;\n ctx.imageSmoothingEnabled = true;\n }\n if (this.graph._groups.length && !this.live_mode) {\n this.drawGroups(canvas, ctx);\n }\n this.onDrawBackground?.(ctx, this.visible_area);\n if (this.onBackgroundRender) {\n console.error(\n \"WARNING! onBackgroundRender deprecated, now is named onDrawBackground \"\n );\n this.onBackgroundRender = null;\n }\n if (this.render_canvas_border) {\n ctx.strokeStyle = \"#235\";\n ctx.strokeRect(0, 0, canvas.width, canvas.height);\n }\n if (this.render_connections_shadows) {\n ctx.shadowColor = \"#000\";\n ctx.shadowOffsetX = 0;\n ctx.shadowOffsetY = 0;\n ctx.shadowBlur = 6;\n } else {\n ctx.shadowColor = \"rgba(0,0,0,0)\";\n }\n if (!this.live_mode) {\n this.drawConnections(ctx);\n }\n ctx.shadowColor = \"rgba(0,0,0,0)\";\n ctx.restore();\n }\n ctx.finish?.();\n this.dirty_bgcanvas = false;\n this.dirty_canvas = true;\n }\n /**\n * draws the given node inside the canvas\n **/\n drawNode(node2, ctx) {\n this.current_node = node2;\n const color = node2.color || node2.constructor.color || LiteGraph.NODE_DEFAULT_COLOR;\n let bgcolor = node2.bgcolor || node2.constructor.bgcolor || LiteGraph.NODE_DEFAULT_BGCOLOR;\n const low_quality = this.ds.scale < 0.6;\n if (this.live_mode) {\n if (!node2.flags.collapsed) {\n ctx.shadowColor = \"transparent\";\n node2.onDrawForeground?.(ctx, this, this.canvas);\n }\n return;\n }\n const editor_alpha = this.editor_alpha;\n ctx.globalAlpha = editor_alpha;\n if (this.render_shadows && !low_quality) {\n ctx.shadowColor = LiteGraph.DEFAULT_SHADOW_COLOR;\n ctx.shadowOffsetX = 2 * this.ds.scale;\n ctx.shadowOffsetY = 2 * this.ds.scale;\n ctx.shadowBlur = 3 * this.ds.scale;\n } else {\n ctx.shadowColor = \"transparent\";\n }\n if (node2.flags.collapsed && node2.onDrawCollapsed?.(ctx, this) == true)\n return;\n const shape = node2._shape || LiteGraph.BOX_SHAPE;\n const size = LGraphCanvas.#temp_vec2;\n LGraphCanvas.#temp_vec2.set(node2.size);\n const horizontal = node2.horizontal;\n if (node2.flags.collapsed) {\n ctx.font = this.inner_text_font;\n const title = node2.getTitle ? node2.getTitle() : node2.title;\n if (title != null) {\n node2._collapsed_width = Math.min(\n node2.size[0],\n ctx.measureText(title).width + LiteGraph.NODE_TITLE_HEIGHT * 2\n );\n size[0] = node2._collapsed_width;\n size[1] = 0;\n }\n }\n if (node2.clip_area) {\n ctx.save();\n ctx.beginPath();\n if (shape == LiteGraph.BOX_SHAPE) {\n ctx.rect(0, 0, size[0], size[1]);\n } else if (shape == LiteGraph.ROUND_SHAPE) {\n ctx.roundRect(0, 0, size[0], size[1], [10]);\n } else if (shape == LiteGraph.CIRCLE_SHAPE) {\n ctx.arc(\n size[0] * 0.5,\n size[1] * 0.5,\n size[0] * 0.5,\n 0,\n Math.PI * 2\n );\n }\n ctx.clip();\n }\n if (node2.has_errors) {\n bgcolor = \"red\";\n }\n this.drawNodeShape(\n node2,\n ctx,\n size,\n color,\n bgcolor,\n node2.is_selected,\n node2.mouseOver\n );\n if (!low_quality) {\n node2.drawBadges(ctx);\n }\n ctx.shadowColor = \"transparent\";\n node2.onDrawForeground?.(ctx, this, this.canvas);\n ctx.textAlign = horizontal ? \"center\" : \"left\";\n ctx.font = this.inner_text_font;\n const render_text = !low_quality;\n const out_slot = this.connecting_links ? this.connecting_links[0].output : null;\n const in_slot = this.connecting_links ? this.connecting_links[0].input : null;\n ctx.lineWidth = 1;\n let max_y = 0;\n const slot_pos = new Float32Array(2);\n if (!node2.flags.collapsed) {\n if (node2.inputs) {\n for (let i2 = 0; i2 < node2.inputs.length; i2++) {\n const slot = node2.inputs[i2];\n const slot_type = slot.type;\n ctx.globalAlpha = editor_alpha;\n if (out_slot && !LiteGraph.isValidConnection(slot.type, out_slot.type)) {\n ctx.globalAlpha = 0.4 * editor_alpha;\n }\n ctx.fillStyle = slot.link != null ? slot.color_on || this.default_connection_color_byType[slot_type] || this.default_connection_color.input_on : slot.color_off || this.default_connection_color_byTypeOff[slot_type] || this.default_connection_color_byType[slot_type] || this.default_connection_color.input_off;\n const pos2 = node2.getConnectionPos(true, i2, slot_pos);\n pos2[0] -= node2.pos[0];\n pos2[1] -= node2.pos[1];\n if (max_y < pos2[1] + LiteGraph.NODE_SLOT_HEIGHT * 0.5) {\n max_y = pos2[1] + LiteGraph.NODE_SLOT_HEIGHT * 0.5;\n }\n drawSlot(ctx, slot, pos2, {\n horizontal,\n low_quality,\n render_text,\n label_color: LiteGraph.NODE_TEXT_COLOR,\n label_position: LabelPosition.Right,\n // Input slot is not stroked.\n do_stroke: false\n });\n }\n }\n ctx.textAlign = horizontal ? \"center\" : \"right\";\n ctx.strokeStyle = \"black\";\n if (node2.outputs) {\n for (let i2 = 0; i2 < node2.outputs.length; i2++) {\n const slot = node2.outputs[i2];\n const slot_type = slot.type;\n if (in_slot && !LiteGraph.isValidConnection(slot_type, in_slot.type)) {\n ctx.globalAlpha = 0.4 * editor_alpha;\n }\n const pos2 = node2.getConnectionPos(false, i2, slot_pos);\n pos2[0] -= node2.pos[0];\n pos2[1] -= node2.pos[1];\n if (max_y < pos2[1] + LiteGraph.NODE_SLOT_HEIGHT * 0.5) {\n max_y = pos2[1] + LiteGraph.NODE_SLOT_HEIGHT * 0.5;\n }\n ctx.fillStyle = slot.links && slot.links.length ? slot.color_on || this.default_connection_color_byType[slot_type] || this.default_connection_color.output_on : slot.color_off || this.default_connection_color_byTypeOff[slot_type] || this.default_connection_color_byType[slot_type] || this.default_connection_color.output_off;\n drawSlot(ctx, slot, pos2, {\n horizontal,\n low_quality,\n render_text,\n label_color: LiteGraph.NODE_TEXT_COLOR,\n label_position: LabelPosition.Left,\n do_stroke: true\n });\n }\n }\n ctx.textAlign = \"left\";\n ctx.globalAlpha = 1;\n if (node2.widgets) {\n let widgets_y = max_y;\n if (horizontal || node2.widgets_up) {\n widgets_y = 2;\n }\n if (node2.widgets_start_y != null)\n widgets_y = node2.widgets_start_y;\n this.drawNodeWidgets(\n node2,\n widgets_y,\n ctx,\n this.node_widget && this.node_widget[0] == node2 ? this.node_widget[1] : null\n );\n }\n } else if (this.render_collapsed_slots) {\n let input_slot = null;\n let output_slot = null;\n let slot;\n if (node2.inputs) {\n for (let i2 = 0; i2 < node2.inputs.length; i2++) {\n slot = node2.inputs[i2];\n if (slot.link == null) {\n continue;\n }\n input_slot = slot;\n break;\n }\n }\n if (node2.outputs) {\n for (let i2 = 0; i2 < node2.outputs.length; i2++) {\n slot = node2.outputs[i2];\n if (!slot.links || !slot.links.length) {\n continue;\n }\n output_slot = slot;\n }\n }\n if (input_slot) {\n let x2 = 0;\n let y2 = LiteGraph.NODE_TITLE_HEIGHT * -0.5;\n if (horizontal) {\n x2 = node2._collapsed_width * 0.5;\n y2 = -LiteGraph.NODE_TITLE_HEIGHT;\n }\n ctx.fillStyle = \"#686\";\n ctx.beginPath();\n if (slot.type === LiteGraph.EVENT || slot.shape === LiteGraph.BOX_SHAPE) {\n ctx.rect(x2 - 7 + 0.5, y2 - 4, 14, 8);\n } else if (slot.shape === LiteGraph.ARROW_SHAPE) {\n ctx.moveTo(x2 + 8, y2);\n ctx.lineTo(x2 + -4, y2 - 4);\n ctx.lineTo(x2 + -4, y2 + 4);\n ctx.closePath();\n } else {\n ctx.arc(x2, y2, 4, 0, Math.PI * 2);\n }\n ctx.fill();\n }\n if (output_slot) {\n let x2 = node2._collapsed_width;\n let y2 = LiteGraph.NODE_TITLE_HEIGHT * -0.5;\n if (horizontal) {\n x2 = node2._collapsed_width * 0.5;\n y2 = 0;\n }\n ctx.fillStyle = \"#686\";\n ctx.strokeStyle = \"black\";\n ctx.beginPath();\n if (slot.type === LiteGraph.EVENT || slot.shape === LiteGraph.BOX_SHAPE) {\n ctx.rect(x2 - 7 + 0.5, y2 - 4, 14, 8);\n } else if (slot.shape === LiteGraph.ARROW_SHAPE) {\n ctx.moveTo(x2 + 6, y2);\n ctx.lineTo(x2 - 6, y2 - 4);\n ctx.lineTo(x2 - 6, y2 + 4);\n ctx.closePath();\n } else {\n ctx.arc(x2, y2, 4, 0, Math.PI * 2);\n }\n ctx.fill();\n }\n }\n if (node2.clip_area) {\n ctx.restore();\n }\n ctx.globalAlpha = 1;\n }\n //used by this.over_link_center\n drawLinkTooltip(ctx, link) {\n const pos2 = link._pos;\n ctx.fillStyle = \"black\";\n ctx.beginPath();\n ctx.arc(pos2[0], pos2[1], 3, 0, Math.PI * 2);\n ctx.fill();\n if (link.data == null)\n return;\n if (this.onDrawLinkTooltip?.(ctx, link, this) == true)\n return;\n const data = link.data;\n let text = null;\n if (typeof data === \"number\")\n text = data.toFixed(2);\n else if (typeof data === \"string\")\n text = '\"' + data + '\"';\n else if (typeof data === \"boolean\")\n text = String(data);\n else if (data.toToolTip)\n text = data.toToolTip();\n else\n text = \"[\" + data.constructor.name + \"]\";\n if (text == null) return;\n text = text.substring(0, 30);\n ctx.font = \"14px Courier New\";\n const info = ctx.measureText(text);\n const w2 = info.width + 20;\n const h = 24;\n ctx.shadowColor = \"black\";\n ctx.shadowOffsetX = 2;\n ctx.shadowOffsetY = 2;\n ctx.shadowBlur = 3;\n ctx.fillStyle = \"#454\";\n ctx.beginPath();\n ctx.roundRect(pos2[0] - w2 * 0.5, pos2[1] - 15 - h, w2, h, [3]);\n ctx.moveTo(pos2[0] - 10, pos2[1] - 15);\n ctx.lineTo(pos2[0] + 10, pos2[1] - 15);\n ctx.lineTo(pos2[0], pos2[1] - 5);\n ctx.fill();\n ctx.shadowColor = \"transparent\";\n ctx.textAlign = \"center\";\n ctx.fillStyle = \"#CEC\";\n ctx.fillText(text, pos2[0], pos2[1] - 15 - h * 0.3);\n }\n /**\n * draws the shape of the given node in the canvas\n **/\n drawNodeShape(node2, ctx, size, fgcolor, bgcolor, selected, mouse_over) {\n ctx.strokeStyle = fgcolor;\n ctx.fillStyle = bgcolor;\n const title_height = LiteGraph.NODE_TITLE_HEIGHT;\n const low_quality = this.ds.scale < 0.5;\n const shape = node2._shape || node2.constructor.shape || LiteGraph.ROUND_SHAPE;\n const title_mode = node2.constructor.title_mode;\n let render_title = true;\n if (title_mode == LiteGraph.TRANSPARENT_TITLE || title_mode == LiteGraph.NO_TITLE) {\n render_title = false;\n } else if (title_mode == LiteGraph.AUTOHIDE_TITLE && mouse_over) {\n render_title = true;\n }\n const area = LGraphCanvas.#tmp_area;\n area[0] = 0;\n area[1] = render_title ? -title_height : 0;\n area[2] = size[0] + 1;\n area[3] = render_title ? size[1] + title_height : size[1];\n const old_alpha = ctx.globalAlpha;\n {\n ctx.beginPath();\n if (shape == LiteGraph.BOX_SHAPE || low_quality) {\n ctx.fillRect(area[0], area[1], area[2], area[3]);\n } else if (shape == LiteGraph.ROUND_SHAPE || shape == LiteGraph.CARD_SHAPE) {\n ctx.roundRect(\n area[0],\n area[1],\n area[2],\n area[3],\n shape == LiteGraph.CARD_SHAPE ? [this.round_radius, this.round_radius, 0, 0] : [this.round_radius]\n );\n } else if (shape == LiteGraph.CIRCLE_SHAPE) {\n ctx.arc(\n size[0] * 0.5,\n size[1] * 0.5,\n size[0] * 0.5,\n 0,\n Math.PI * 2\n );\n }\n ctx.fill();\n if (!node2.flags.collapsed && render_title) {\n ctx.shadowColor = \"transparent\";\n ctx.fillStyle = \"rgba(0,0,0,0.2)\";\n ctx.fillRect(0, -1, area[2], 2);\n }\n }\n ctx.shadowColor = \"transparent\";\n node2.onDrawBackground?.(ctx, this, this.canvas, this.graph_mouse);\n if (render_title || title_mode == LiteGraph.TRANSPARENT_TITLE) {\n if (node2.onDrawTitleBar) {\n node2.onDrawTitleBar(ctx, title_height, size, this.ds.scale, fgcolor);\n } else if (title_mode != LiteGraph.TRANSPARENT_TITLE && // @ts-expect-error ctor props\n (node2.constructor.title_color || this.render_title_colored)) {\n const title_color = node2.constructor.title_color || fgcolor;\n if (node2.flags.collapsed) {\n ctx.shadowColor = LiteGraph.DEFAULT_SHADOW_COLOR;\n }\n if (this.use_gradients) {\n let grad = LGraphCanvas.gradients[title_color];\n if (!grad) {\n grad = LGraphCanvas.gradients[title_color] = ctx.createLinearGradient(0, 0, 400, 0);\n grad.addColorStop(0, title_color);\n grad.addColorStop(1, \"#000\");\n }\n ctx.fillStyle = grad;\n } else {\n ctx.fillStyle = title_color;\n }\n ctx.beginPath();\n if (shape == LiteGraph.BOX_SHAPE || low_quality) {\n ctx.rect(0, -title_height, size[0] + 1, title_height);\n } else if (shape == LiteGraph.ROUND_SHAPE || shape == LiteGraph.CARD_SHAPE) {\n ctx.roundRect(\n 0,\n -title_height,\n size[0] + 1,\n title_height,\n node2.flags.collapsed ? [this.round_radius] : [this.round_radius, this.round_radius, 0, 0]\n );\n }\n ctx.fill();\n ctx.shadowColor = \"transparent\";\n }\n let colState = false;\n if (LiteGraph.node_box_coloured_by_mode) {\n if (LiteGraph.NODE_MODES_COLORS[node2.mode]) {\n colState = LiteGraph.NODE_MODES_COLORS[node2.mode];\n }\n }\n if (LiteGraph.node_box_coloured_when_on) {\n colState = node2.action_triggered ? \"#FFF\" : node2.execute_triggered ? \"#AAA\" : colState;\n }\n const box_size = 10;\n if (node2.onDrawTitleBox) {\n node2.onDrawTitleBox(ctx, title_height, size, this.ds.scale);\n } else if (shape == LiteGraph.ROUND_SHAPE || shape == LiteGraph.CIRCLE_SHAPE || shape == LiteGraph.CARD_SHAPE) {\n if (low_quality) {\n ctx.fillStyle = \"black\";\n ctx.beginPath();\n ctx.arc(\n title_height * 0.5,\n title_height * -0.5,\n box_size * 0.5 + 1,\n 0,\n Math.PI * 2\n );\n ctx.fill();\n }\n ctx.fillStyle = node2.boxcolor || colState || LiteGraph.NODE_DEFAULT_BOXCOLOR;\n if (low_quality)\n ctx.fillRect(title_height * 0.5 - box_size * 0.5, title_height * -0.5 - box_size * 0.5, box_size, box_size);\n else {\n ctx.beginPath();\n ctx.arc(\n title_height * 0.5,\n title_height * -0.5,\n box_size * 0.5,\n 0,\n Math.PI * 2\n );\n ctx.fill();\n }\n } else {\n if (low_quality) {\n ctx.fillStyle = \"black\";\n ctx.fillRect(\n (title_height - box_size) * 0.5 - 1,\n (title_height + box_size) * -0.5 - 1,\n box_size + 2,\n box_size + 2\n );\n }\n ctx.fillStyle = node2.boxcolor || colState || LiteGraph.NODE_DEFAULT_BOXCOLOR;\n ctx.fillRect(\n (title_height - box_size) * 0.5,\n (title_height + box_size) * -0.5,\n box_size,\n box_size\n );\n }\n ctx.globalAlpha = old_alpha;\n if (node2.onDrawTitleText) {\n node2.onDrawTitleText(\n ctx,\n title_height,\n size,\n this.ds.scale,\n this.title_text_font,\n selected\n );\n }\n if (!low_quality) {\n ctx.font = this.title_text_font;\n const title = String(node2.getTitle()) + (node2.pinned ? \"📌\" : \"\");\n if (title) {\n if (selected) {\n ctx.fillStyle = LiteGraph.NODE_SELECTED_TITLE_COLOR;\n } else {\n ctx.fillStyle = // @ts-expect-error ctor props\n node2.constructor.title_text_color || this.node_title_color;\n }\n if (node2.flags.collapsed) {\n ctx.textAlign = \"left\";\n ctx.fillText(\n title.substr(0, 20),\n //avoid urls too long\n title_height,\n // + measure.width * 0.5,\n LiteGraph.NODE_TITLE_TEXT_Y - title_height\n );\n ctx.textAlign = \"left\";\n } else {\n ctx.textAlign = \"left\";\n ctx.fillText(\n title,\n title_height,\n LiteGraph.NODE_TITLE_TEXT_Y - title_height\n );\n }\n }\n }\n if (!node2.flags.collapsed && node2.subgraph && !node2.skip_subgraph_button) {\n const w2 = LiteGraph.NODE_TITLE_HEIGHT;\n const x2 = node2.size[0] - w2;\n const over = LiteGraph.isInsideRectangle(this.graph_mouse[0] - node2.pos[0], this.graph_mouse[1] - node2.pos[1], x2 + 2, -w2 + 2, w2 - 4, w2 - 4);\n ctx.fillStyle = over ? \"#888\" : \"#555\";\n if (shape == LiteGraph.BOX_SHAPE || low_quality) {\n ctx.fillRect(x2 + 2, -w2 + 2, w2 - 4, w2 - 4);\n } else {\n ctx.beginPath();\n ctx.roundRect(x2 + 2, -w2 + 2, w2 - 4, w2 - 4, [4]);\n ctx.fill();\n }\n ctx.fillStyle = \"#333\";\n ctx.beginPath();\n ctx.moveTo(x2 + w2 * 0.2, -w2 * 0.6);\n ctx.lineTo(x2 + w2 * 0.8, -w2 * 0.6);\n ctx.lineTo(x2 + w2 * 0.5, -w2 * 0.3);\n ctx.fill();\n }\n node2.onDrawTitle?.(ctx);\n }\n if (selected) {\n node2.onBounding?.(area);\n this.drawSelectionBounding(\n ctx,\n area,\n {\n shape,\n title_height,\n title_mode,\n fgcolor,\n collapsed: node2.flags?.collapsed\n }\n );\n }\n if (node2.execute_triggered > 0) node2.execute_triggered--;\n if (node2.action_triggered > 0) node2.action_triggered--;\n }\n /**\n * Draws the selection bounding of an area.\n * @param {CanvasRenderingContext2D} ctx\n * @param {Vector4} area\n * @param {{\n * shape: LiteGraph.Shape,\n * title_height: number,\n * title_mode: LiteGraph.TitleMode,\n * fgcolor: string,\n * padding: number,\n * }} options\n */\n drawSelectionBounding(ctx, area, {\n shape = LiteGraph.BOX_SHAPE,\n title_height = LiteGraph.NODE_TITLE_HEIGHT,\n title_mode = LiteGraph.NORMAL_TITLE,\n fgcolor = LiteGraph.NODE_BOX_OUTLINE_COLOR,\n padding = 6,\n collapsed = false\n } = {}) {\n if (title_mode === LiteGraph.TRANSPARENT_TITLE) {\n area[1] -= title_height;\n area[3] += title_height;\n }\n ctx.lineWidth = 1;\n ctx.globalAlpha = 0.8;\n ctx.beginPath();\n const [x2, y2, width2, height] = area;\n switch (shape) {\n case LiteGraph.BOX_SHAPE: {\n ctx.rect(x2 - padding, y2 - padding, width2 + 2 * padding, height + 2 * padding);\n break;\n }\n case LiteGraph.ROUND_SHAPE:\n case LiteGraph.CARD_SHAPE: {\n const radius = this.round_radius * 2;\n const isCollapsed = shape === LiteGraph.CARD_SHAPE && collapsed;\n const cornerRadii = isCollapsed || shape === LiteGraph.ROUND_SHAPE ? [radius] : [radius, 2, radius, 2];\n ctx.roundRect(x2 - padding, y2 - padding, width2 + 2 * padding, height + 2 * padding, cornerRadii);\n break;\n }\n case LiteGraph.CIRCLE_SHAPE: {\n const centerX = x2 + width2 / 2;\n const centerY = y2 + height / 2;\n const radius = Math.max(width2, height) / 2 + padding;\n ctx.arc(centerX, centerY, radius, 0, Math.PI * 2);\n break;\n }\n }\n ctx.strokeStyle = LiteGraph.NODE_BOX_OUTLINE_COLOR;\n ctx.stroke();\n ctx.strokeStyle = fgcolor;\n ctx.globalAlpha = 1;\n }\n drawConnections(ctx) {\n const now = LiteGraph.getTime();\n const visible_area = this.visible_area;\n LGraphCanvas.#margin_area[0] = visible_area[0] - 20;\n LGraphCanvas.#margin_area[1] = visible_area[1] - 20;\n LGraphCanvas.#margin_area[2] = visible_area[2] + 40;\n LGraphCanvas.#margin_area[3] = visible_area[3] + 40;\n ctx.lineWidth = this.connections_width;\n ctx.fillStyle = \"#AAA\";\n ctx.strokeStyle = \"#AAA\";\n ctx.globalAlpha = this.editor_alpha;\n const nodes = this.graph._nodes;\n for (let n = 0, l = nodes.length; n < l; ++n) {\n const node2 = nodes[n];\n if (!node2.inputs || !node2.inputs.length) continue;\n for (let i2 = 0; i2 < node2.inputs.length; ++i2) {\n const input = node2.inputs[i2];\n if (!input || input.link == null) continue;\n const link_id = input.link;\n const link = this.graph.links[link_id];\n if (!link) continue;\n const start_node = this.graph.getNodeById(link.origin_id);\n if (start_node == null) continue;\n const start_node_slot = link.origin_slot;\n let start_node_slotpos = null;\n if (start_node_slot == -1) {\n start_node_slotpos = [\n start_node.pos[0] + 10,\n start_node.pos[1] + 10\n ];\n } else {\n start_node_slotpos = start_node.getConnectionPos(\n false,\n start_node_slot,\n LGraphCanvas.#tempA\n );\n }\n const end_node_slotpos = node2.getConnectionPos(true, i2, LGraphCanvas.#tempB);\n LGraphCanvas.#link_bounding[0] = start_node_slotpos[0];\n LGraphCanvas.#link_bounding[1] = start_node_slotpos[1];\n LGraphCanvas.#link_bounding[2] = end_node_slotpos[0] - start_node_slotpos[0];\n LGraphCanvas.#link_bounding[3] = end_node_slotpos[1] - start_node_slotpos[1];\n if (LGraphCanvas.#link_bounding[2] < 0) {\n LGraphCanvas.#link_bounding[0] += LGraphCanvas.#link_bounding[2];\n LGraphCanvas.#link_bounding[2] = Math.abs(LGraphCanvas.#link_bounding[2]);\n }\n if (LGraphCanvas.#link_bounding[3] < 0) {\n LGraphCanvas.#link_bounding[1] += LGraphCanvas.#link_bounding[3];\n LGraphCanvas.#link_bounding[3] = Math.abs(LGraphCanvas.#link_bounding[3]);\n }\n if (!overlapBounding(LGraphCanvas.#link_bounding, LGraphCanvas.#margin_area))\n continue;\n const start_slot = start_node.outputs[start_node_slot];\n const end_slot = node2.inputs[i2];\n if (!start_slot || !end_slot)\n continue;\n const start_dir = start_slot.dir || (start_node.horizontal ? LiteGraph.DOWN : LiteGraph.RIGHT);\n const end_dir = end_slot.dir || (node2.horizontal ? LiteGraph.UP : LiteGraph.LEFT);\n this.renderLink(\n ctx,\n start_node_slotpos,\n end_node_slotpos,\n link,\n false,\n 0,\n null,\n start_dir,\n end_dir\n );\n if (link && link._last_time && now - link._last_time < 1e3) {\n const f = 2 - (now - link._last_time) * 2e-3;\n const tmp = ctx.globalAlpha;\n ctx.globalAlpha = tmp * f;\n this.renderLink(\n ctx,\n start_node_slotpos,\n end_node_slotpos,\n link,\n true,\n f,\n \"white\",\n start_dir,\n end_dir\n );\n ctx.globalAlpha = tmp;\n }\n }\n }\n ctx.globalAlpha = 1;\n }\n /**\n * draws a link between two points\n * @param {vec2} a start pos\n * @param {vec2} b end pos\n * @param {Object} link the link object with all the link info\n * @param {boolean} skip_border ignore the shadow of the link\n * @param {boolean} flow show flow animation (for events)\n * @param {string} color the color for the link\n * @param {LinkDirection} start_dir the direction enum\n * @param {LinkDirection} end_dir the direction enum\n * @param {number} num_sublines number of sublines (useful to represent vec3 or rgb)\n **/\n renderLink(ctx, a, b, link, skip_border, flow, color, start_dir, end_dir, num_sublines) {\n if (link) {\n this.visible_links.push(link);\n }\n if (!color && link) {\n color = link.color || LGraphCanvas.link_type_colors[link.type];\n }\n color ||= this.default_link_color;\n if (link != null && this.highlighted_links[link.id]) {\n color = \"#FFF\";\n }\n start_dir = start_dir || LiteGraph.RIGHT;\n end_dir = end_dir || LiteGraph.LEFT;\n const dist = distance(a, b);\n if (this.render_connections_border && this.ds.scale > 0.6) {\n ctx.lineWidth = this.connections_width + 4;\n }\n ctx.lineJoin = \"round\";\n num_sublines ||= 1;\n if (num_sublines > 1) {\n ctx.lineWidth = 0.5;\n }\n const path = new Path2D();\n if (link) {\n link.path = path;\n }\n for (let i2 = 0; i2 < num_sublines; i2 += 1) {\n const offsety = (i2 - (num_sublines - 1) * 0.5) * 5;\n if (this.links_render_mode == LiteGraph.SPLINE_LINK) {\n path.moveTo(a[0], a[1] + offsety);\n let start_offset_x = 0;\n let start_offset_y = 0;\n let end_offset_x = 0;\n let end_offset_y = 0;\n switch (start_dir) {\n case LiteGraph.LEFT:\n start_offset_x = dist * -0.25;\n break;\n case LiteGraph.RIGHT:\n start_offset_x = dist * 0.25;\n break;\n case LiteGraph.UP:\n start_offset_y = dist * -0.25;\n break;\n case LiteGraph.DOWN:\n start_offset_y = dist * 0.25;\n break;\n }\n switch (end_dir) {\n case LiteGraph.LEFT:\n end_offset_x = dist * -0.25;\n break;\n case LiteGraph.RIGHT:\n end_offset_x = dist * 0.25;\n break;\n case LiteGraph.UP:\n end_offset_y = dist * -0.25;\n break;\n case LiteGraph.DOWN:\n end_offset_y = dist * 0.25;\n break;\n }\n path.bezierCurveTo(\n a[0] + start_offset_x,\n a[1] + start_offset_y + offsety,\n b[0] + end_offset_x,\n b[1] + end_offset_y + offsety,\n b[0],\n b[1] + offsety\n );\n } else if (this.links_render_mode == LiteGraph.LINEAR_LINK) {\n path.moveTo(a[0], a[1] + offsety);\n let start_offset_x = 0;\n let start_offset_y = 0;\n let end_offset_x = 0;\n let end_offset_y = 0;\n switch (start_dir) {\n case LiteGraph.LEFT:\n start_offset_x = -1;\n break;\n case LiteGraph.RIGHT:\n start_offset_x = 1;\n break;\n case LiteGraph.UP:\n start_offset_y = -1;\n break;\n case LiteGraph.DOWN:\n start_offset_y = 1;\n break;\n }\n switch (end_dir) {\n case LiteGraph.LEFT:\n end_offset_x = -1;\n break;\n case LiteGraph.RIGHT:\n end_offset_x = 1;\n break;\n case LiteGraph.UP:\n end_offset_y = -1;\n break;\n case LiteGraph.DOWN:\n end_offset_y = 1;\n break;\n }\n const l = 15;\n path.lineTo(\n a[0] + start_offset_x * l,\n a[1] + start_offset_y * l + offsety\n );\n path.lineTo(\n b[0] + end_offset_x * l,\n b[1] + end_offset_y * l + offsety\n );\n path.lineTo(b[0], b[1] + offsety);\n } else if (this.links_render_mode == LiteGraph.STRAIGHT_LINK) {\n path.moveTo(a[0], a[1]);\n let start_x = a[0];\n let start_y = a[1];\n let end_x = b[0];\n let end_y = b[1];\n if (start_dir == LiteGraph.RIGHT) {\n start_x += 10;\n } else {\n start_y += 10;\n }\n if (end_dir == LiteGraph.LEFT) {\n end_x -= 10;\n } else {\n end_y -= 10;\n }\n path.lineTo(start_x, start_y);\n path.lineTo((start_x + end_x) * 0.5, start_y);\n path.lineTo((start_x + end_x) * 0.5, end_y);\n path.lineTo(end_x, end_y);\n path.lineTo(b[0], b[1]);\n } else {\n return;\n }\n }\n if (this.render_connections_border && this.ds.scale > 0.6 && !skip_border) {\n ctx.strokeStyle = \"rgba(0,0,0,0.5)\";\n ctx.stroke(path);\n }\n ctx.lineWidth = this.connections_width;\n ctx.fillStyle = ctx.strokeStyle = color;\n ctx.stroke(path);\n const pos2 = this.computeConnectionPoint(a, b, 0.5, start_dir, end_dir);\n if (link?._pos) {\n link._pos[0] = pos2[0];\n link._pos[1] = pos2[1];\n }\n if (this.ds.scale >= 0.6 && this.highquality_render && end_dir != LiteGraph.CENTER) {\n if (this.render_connection_arrows) {\n const posA = this.computeConnectionPoint(\n a,\n b,\n 0.25,\n start_dir,\n end_dir\n );\n const posB = this.computeConnectionPoint(\n a,\n b,\n 0.26,\n start_dir,\n end_dir\n );\n const posC = this.computeConnectionPoint(\n a,\n b,\n 0.75,\n start_dir,\n end_dir\n );\n const posD = this.computeConnectionPoint(\n a,\n b,\n 0.76,\n start_dir,\n end_dir\n );\n let angleA = 0;\n let angleB = 0;\n if (this.render_curved_connections) {\n angleA = -Math.atan2(posB[0] - posA[0], posB[1] - posA[1]);\n angleB = -Math.atan2(posD[0] - posC[0], posD[1] - posC[1]);\n } else {\n angleB = angleA = b[1] > a[1] ? 0 : Math.PI;\n }\n ctx.save();\n ctx.translate(posA[0], posA[1]);\n ctx.rotate(angleA);\n ctx.beginPath();\n ctx.moveTo(-5, -3);\n ctx.lineTo(0, 7);\n ctx.lineTo(5, -3);\n ctx.fill();\n ctx.restore();\n ctx.save();\n ctx.translate(posC[0], posC[1]);\n ctx.rotate(angleB);\n ctx.beginPath();\n ctx.moveTo(-5, -3);\n ctx.lineTo(0, 7);\n ctx.lineTo(5, -3);\n ctx.fill();\n ctx.restore();\n }\n ctx.beginPath();\n ctx.arc(pos2[0], pos2[1], 5, 0, Math.PI * 2);\n ctx.fill();\n }\n if (flow) {\n ctx.fillStyle = color;\n for (let i2 = 0; i2 < 5; ++i2) {\n const f = (LiteGraph.getTime() * 1e-3 + i2 * 0.2) % 1;\n const flowPos = this.computeConnectionPoint(\n a,\n b,\n f,\n start_dir,\n end_dir\n );\n ctx.beginPath();\n ctx.arc(flowPos[0], flowPos[1], 5, 0, 2 * Math.PI);\n ctx.fill();\n }\n }\n }\n //returns the link center point based on curvature\n computeConnectionPoint(a, b, t, start_dir, end_dir) {\n start_dir ||= LiteGraph.RIGHT;\n end_dir ||= LiteGraph.LEFT;\n const dist = distance(a, b);\n const p0 = a;\n const p1 = [a[0], a[1]];\n const p2 = [b[0], b[1]];\n const p3 = b;\n switch (start_dir) {\n case LiteGraph.LEFT:\n p1[0] += dist * -0.25;\n break;\n case LiteGraph.RIGHT:\n p1[0] += dist * 0.25;\n break;\n case LiteGraph.UP:\n p1[1] += dist * -0.25;\n break;\n case LiteGraph.DOWN:\n p1[1] += dist * 0.25;\n break;\n }\n switch (end_dir) {\n case LiteGraph.LEFT:\n p2[0] += dist * -0.25;\n break;\n case LiteGraph.RIGHT:\n p2[0] += dist * 0.25;\n break;\n case LiteGraph.UP:\n p2[1] += dist * -0.25;\n break;\n case LiteGraph.DOWN:\n p2[1] += dist * 0.25;\n break;\n }\n const c1 = (1 - t) * (1 - t) * (1 - t);\n const c2 = 3 * ((1 - t) * (1 - t)) * t;\n const c3 = 3 * (1 - t) * (t * t);\n const c4 = t * t * t;\n const x2 = c1 * p0[0] + c2 * p1[0] + c3 * p2[0] + c4 * p3[0];\n const y2 = c1 * p0[1] + c2 * p1[1] + c3 * p2[1] + c4 * p3[1];\n return [x2, y2];\n }\n drawExecutionOrder(ctx) {\n ctx.shadowColor = \"transparent\";\n ctx.globalAlpha = 0.25;\n ctx.textAlign = \"center\";\n ctx.strokeStyle = \"white\";\n ctx.globalAlpha = 0.75;\n const visible_nodes = this.visible_nodes;\n for (let i2 = 0; i2 < visible_nodes.length; ++i2) {\n const node2 = visible_nodes[i2];\n ctx.fillStyle = \"black\";\n ctx.fillRect(\n node2.pos[0] - LiteGraph.NODE_TITLE_HEIGHT,\n node2.pos[1] - LiteGraph.NODE_TITLE_HEIGHT,\n LiteGraph.NODE_TITLE_HEIGHT,\n LiteGraph.NODE_TITLE_HEIGHT\n );\n if (node2.order == 0) {\n ctx.strokeRect(\n node2.pos[0] - LiteGraph.NODE_TITLE_HEIGHT + 0.5,\n node2.pos[1] - LiteGraph.NODE_TITLE_HEIGHT + 0.5,\n LiteGraph.NODE_TITLE_HEIGHT,\n LiteGraph.NODE_TITLE_HEIGHT\n );\n }\n ctx.fillStyle = \"#FFF\";\n ctx.fillText(\n // @ts-expect-error type coercion\n node2.order,\n node2.pos[0] + LiteGraph.NODE_TITLE_HEIGHT * -0.5,\n node2.pos[1] - 6\n );\n }\n ctx.globalAlpha = 1;\n }\n /**\n * draws the widgets stored inside a node\n **/\n drawNodeWidgets(node2, posY, ctx, active_widget2) {\n if (!node2.widgets || !node2.widgets.length) return 0;\n const width2 = node2.size[0];\n const widgets = node2.widgets;\n posY += 2;\n const H = LiteGraph.NODE_WIDGET_HEIGHT;\n const show_text = this.ds.scale > 0.5;\n ctx.save();\n ctx.globalAlpha = this.editor_alpha;\n const outline_color = LiteGraph.WIDGET_OUTLINE_COLOR;\n const background_color = LiteGraph.WIDGET_BGCOLOR;\n const text_color = LiteGraph.WIDGET_TEXT_COLOR;\n const secondary_text_color = LiteGraph.WIDGET_SECONDARY_TEXT_COLOR;\n const margin = 15;\n for (let i2 = 0; i2 < widgets.length; ++i2) {\n const w2 = widgets[i2];\n const y2 = w2.y || posY;\n if (w2 === this.link_over_widget) {\n ctx.fillStyle = this.default_connection_color_byType[this.link_over_widget_type] || this.default_connection_color.input_on;\n drawSlot(ctx, {}, [10, y2 + 10], {});\n }\n w2.last_y = y2;\n ctx.strokeStyle = outline_color;\n ctx.fillStyle = \"#222\";\n ctx.textAlign = \"left\";\n if (w2.disabled)\n ctx.globalAlpha *= 0.5;\n const widget_width2 = w2.width || width2;\n switch (w2.type) {\n case \"button\":\n ctx.fillStyle = background_color;\n if (w2.clicked) {\n ctx.fillStyle = \"#AAA\";\n w2.clicked = false;\n this.dirty_canvas = true;\n }\n ctx.fillRect(margin, y2, widget_width2 - margin * 2, H);\n if (show_text && !w2.disabled)\n ctx.strokeRect(margin, y2, widget_width2 - margin * 2, H);\n if (show_text) {\n ctx.textAlign = \"center\";\n ctx.fillStyle = text_color;\n ctx.fillText(w2.label || w2.name, widget_width2 * 0.5, y2 + H * 0.7);\n }\n break;\n case \"toggle\":\n ctx.textAlign = \"left\";\n ctx.strokeStyle = outline_color;\n ctx.fillStyle = background_color;\n ctx.beginPath();\n if (show_text)\n ctx.roundRect(margin, y2, widget_width2 - margin * 2, H, [H * 0.5]);\n else\n ctx.rect(margin, y2, widget_width2 - margin * 2, H);\n ctx.fill();\n if (show_text && !w2.disabled)\n ctx.stroke();\n ctx.fillStyle = w2.value ? \"#89A\" : \"#333\";\n ctx.beginPath();\n ctx.arc(widget_width2 - margin * 2, y2 + H * 0.5, H * 0.36, 0, Math.PI * 2);\n ctx.fill();\n if (show_text) {\n ctx.fillStyle = secondary_text_color;\n const label = w2.label || w2.name;\n if (label != null) {\n ctx.fillText(label, margin * 2, y2 + H * 0.7);\n }\n ctx.fillStyle = w2.value ? text_color : secondary_text_color;\n ctx.textAlign = \"right\";\n ctx.fillText(\n w2.value ? w2.options.on || \"true\" : w2.options.off || \"false\",\n widget_width2 - 40,\n y2 + H * 0.7\n );\n }\n break;\n case \"slider\": {\n ctx.fillStyle = background_color;\n ctx.fillRect(margin, y2, widget_width2 - margin * 2, H);\n const range = w2.options.max - w2.options.min;\n let nvalue = (w2.value - w2.options.min) / range;\n if (nvalue < 0) nvalue = 0;\n if (nvalue > 1) nvalue = 1;\n ctx.fillStyle = w2.options.hasOwnProperty(\"slider_color\") ? w2.options.slider_color : active_widget2 == w2 ? \"#89A\" : \"#678\";\n ctx.fillRect(margin, y2, nvalue * (widget_width2 - margin * 2), H);\n if (show_text && !w2.disabled)\n ctx.strokeRect(margin, y2, widget_width2 - margin * 2, H);\n if (w2.marker) {\n let marker_nvalue = (w2.marker - w2.options.min) / range;\n if (marker_nvalue < 0) marker_nvalue = 0;\n if (marker_nvalue > 1) marker_nvalue = 1;\n ctx.fillStyle = w2.options.hasOwnProperty(\"marker_color\") ? w2.options.marker_color : \"#AA9\";\n ctx.fillRect(margin + marker_nvalue * (widget_width2 - margin * 2), y2, 2, H);\n }\n if (show_text) {\n ctx.textAlign = \"center\";\n ctx.fillStyle = text_color;\n ctx.fillText(\n w2.label || w2.name + \" \" + Number(w2.value).toFixed(\n w2.options.precision != null ? w2.options.precision : 3\n ),\n widget_width2 * 0.5,\n y2 + H * 0.7\n );\n }\n break;\n }\n case \"number\":\n case \"combo\":\n ctx.textAlign = \"left\";\n ctx.strokeStyle = outline_color;\n ctx.fillStyle = background_color;\n ctx.beginPath();\n if (show_text)\n ctx.roundRect(margin, y2, widget_width2 - margin * 2, H, [H * 0.5]);\n else\n ctx.rect(margin, y2, widget_width2 - margin * 2, H);\n ctx.fill();\n if (show_text) {\n if (!w2.disabled)\n ctx.stroke();\n ctx.fillStyle = text_color;\n if (!w2.disabled) {\n ctx.beginPath();\n ctx.moveTo(margin + 16, y2 + 5);\n ctx.lineTo(margin + 6, y2 + H * 0.5);\n ctx.lineTo(margin + 16, y2 + H - 5);\n ctx.fill();\n ctx.beginPath();\n ctx.moveTo(widget_width2 - margin - 16, y2 + 5);\n ctx.lineTo(widget_width2 - margin - 6, y2 + H * 0.5);\n ctx.lineTo(widget_width2 - margin - 16, y2 + H - 5);\n ctx.fill();\n }\n ctx.fillStyle = secondary_text_color;\n ctx.fillText(w2.label || w2.name, margin * 2 + 5, y2 + H * 0.7);\n ctx.fillStyle = text_color;\n ctx.textAlign = \"right\";\n if (w2.type == \"number\") {\n ctx.fillText(\n Number(w2.value).toFixed(\n w2.options.precision !== void 0 ? w2.options.precision : 3\n ),\n widget_width2 - margin * 2 - 20,\n y2 + H * 0.7\n );\n } else {\n let v2 = typeof w2.value === \"number\" ? String(w2.value) : w2.value;\n if (w2.options.values) {\n let values2 = w2.options.values;\n if (values2.constructor === Function)\n values2 = values2();\n if (values2 && values2.constructor !== Array)\n v2 = values2[w2.value];\n }\n const labelWidth = ctx.measureText(w2.label || w2.name).width + margin * 2;\n const inputWidth = widget_width2 - margin * 4;\n const availableWidth = inputWidth - labelWidth;\n const textWidth = ctx.measureText(v2).width;\n if (textWidth > availableWidth) {\n const ELLIPSIS = \"…\";\n const ellipsisWidth = ctx.measureText(ELLIPSIS).width;\n const charWidthAvg = ctx.measureText(\"a\").width;\n if (availableWidth <= ellipsisWidth) {\n v2 = \"․\";\n } else {\n v2 = `${v2}`;\n const overflowWidth = textWidth + ellipsisWidth - availableWidth;\n if (overflowWidth + charWidthAvg * 3 > availableWidth) {\n const preciseRange = availableWidth + charWidthAvg * 3;\n const preTruncateCt = Math.floor((preciseRange - ellipsisWidth) / charWidthAvg);\n v2 = v2.substr(0, preTruncateCt);\n }\n while (ctx.measureText(v2).width + ellipsisWidth > availableWidth) {\n v2 = v2.substr(0, v2.length - 1);\n }\n v2 += ELLIPSIS;\n }\n }\n ctx.fillText(\n v2,\n widget_width2 - margin * 2 - 20,\n y2 + H * 0.7\n );\n }\n }\n break;\n case \"string\":\n case \"text\":\n ctx.textAlign = \"left\";\n ctx.strokeStyle = outline_color;\n ctx.fillStyle = background_color;\n ctx.beginPath();\n if (show_text)\n ctx.roundRect(margin, y2, widget_width2 - margin * 2, H, [H * 0.5]);\n else\n ctx.rect(margin, y2, widget_width2 - margin * 2, H);\n ctx.fill();\n if (show_text) {\n if (!w2.disabled)\n ctx.stroke();\n ctx.save();\n ctx.beginPath();\n ctx.rect(margin, y2, widget_width2 - margin * 2, H);\n ctx.clip();\n ctx.fillStyle = secondary_text_color;\n const label = w2.label || w2.name;\n if (label != null)\n ctx.fillText(label, margin * 2, y2 + H * 0.7);\n ctx.fillStyle = text_color;\n ctx.textAlign = \"right\";\n ctx.fillText(String(w2.value).substr(0, 30), widget_width2 - margin * 2, y2 + H * 0.7);\n ctx.restore();\n }\n break;\n default:\n w2.draw?.(ctx, node2, widget_width2, y2, H);\n break;\n }\n posY += (w2.computeSize ? w2.computeSize(widget_width2)[1] : H) + 4;\n ctx.globalAlpha = this.editor_alpha;\n }\n ctx.restore();\n ctx.textAlign = \"left\";\n }\n /**\n * process an event on widgets\n **/\n processNodeWidgets(node, pos, event, active_widget) {\n if (!node.widgets || !node.widgets.length || !this.allow_interaction && !node.flags.allow_interaction) {\n return null;\n }\n const x = pos[0] - node.pos[0];\n const y = pos[1] - node.pos[1];\n const width = node.size[0];\n const that = this;\n const ref_window = this.getCanvasWindow();\n let values;\n let values_list;\n for (let i = 0; i < node.widgets.length; ++i) {\n const w = node.widgets[i];\n if (!w || w.disabled)\n continue;\n const widget_height = w.computeSize ? w.computeSize(width)[1] : LiteGraph.NODE_WIDGET_HEIGHT;\n const widget_width = w.width || width;\n if (w != active_widget && (x < 6 || x > widget_width - 12 || y < w.last_y || y > w.last_y + widget_height || w.last_y === void 0))\n continue;\n const old_value = w.value;\n switch (w.type) {\n case \"button\": {\n if (event.type === LiteGraph.pointerevents_method + \"down\") {\n if (w.callback) {\n setTimeout(function() {\n w.callback(w, that, node, pos, event);\n }, 20);\n }\n w.clicked = true;\n this.dirty_canvas = true;\n }\n break;\n }\n case \"slider\": {\n const nvalue = clamp((x - 15) / (widget_width - 30), 0, 1);\n if (w.options.read_only) break;\n w.value = w.options.min + (w.options.max - w.options.min) * nvalue;\n if (old_value != w.value) {\n setTimeout(function() {\n inner_value_change(w, w.value);\n }, 20);\n }\n this.dirty_canvas = true;\n break;\n }\n case \"number\":\n case \"combo\": {\n let delta = x < 40 ? -1 : x > widget_width - 40 ? 1 : 0;\n const allow_scroll = delta && (x > -3 && x < widget_width + 3) ? false : true;\n if (allow_scroll && event.type == LiteGraph.pointerevents_method + \"move\" && w.type == \"number\") {\n if (event.deltaX)\n w.value += event.deltaX * 0.1 * (w.options.step || 1);\n if (w.options.min != null && w.value < w.options.min) {\n w.value = w.options.min;\n }\n if (w.options.max != null && w.value > w.options.max) {\n w.value = w.options.max;\n }\n } else if (event.type == LiteGraph.pointerevents_method + \"down\") {\n values = w.options.values;\n if (values && values.constructor === Function) {\n values = w.options.values(w, node);\n }\n values_list = null;\n if (w.type != \"number\")\n values_list = values.constructor === Array ? values : Object.keys(values);\n delta = x < 40 ? -1 : x > widget_width - 40 ? 1 : 0;\n if (w.type == \"number\") {\n w.value += delta * 0.1 * (w.options.step || 1);\n if (w.options.min != null && w.value < w.options.min) {\n w.value = w.options.min;\n }\n if (w.options.max != null && w.value > w.options.max) {\n w.value = w.options.max;\n }\n } else if (delta) {\n let index = -1;\n this.last_mouseclick = 0;\n index = values.constructor === Object ? values_list.indexOf(String(w.value)) + delta : values_list.indexOf(w.value) + delta;\n if (index >= values_list.length) index = values_list.length - 1;\n if (index < 0) index = 0;\n w.value = values.constructor === Array ? values[index] : index;\n } else {\n let inner_clicked = function(v2) {\n if (values != values_list)\n v2 = text_values.indexOf(v2);\n this.value = v2;\n inner_value_change(this, v2);\n that.dirty_canvas = true;\n return false;\n };\n const text_values = values != values_list ? Object.values(values) : values;\n new LiteGraph.ContextMenu(\n text_values,\n {\n scale: Math.max(1, this.ds.scale),\n event,\n className: \"dark\",\n callback: inner_clicked.bind(w)\n },\n // @ts-expect-error Not impl - harmless\n ref_window\n );\n }\n } else if (event.type == LiteGraph.pointerevents_method + \"up\" && w.type == \"number\") {\n delta = x < 40 ? -1 : x > widget_width - 40 ? 1 : 0;\n if (event.click_time < 200 && delta == 0) {\n this.prompt(\n \"Value\",\n w.value,\n function(v) {\n if (/^[0-9+\\-*/()\\s]+|\\d+\\.\\d+$/.test(v)) {\n try {\n v = eval(v);\n } catch {\n }\n }\n this.value = Number(v);\n inner_value_change(this, this.value);\n }.bind(w),\n event\n );\n }\n }\n if (old_value != w.value)\n setTimeout(\n function() {\n inner_value_change(this, this.value);\n }.bind(w),\n 20\n );\n this.dirty_canvas = true;\n break;\n }\n case \"toggle\":\n if (event.type == LiteGraph.pointerevents_method + \"down\") {\n w.value = !w.value;\n setTimeout(function() {\n inner_value_change(w, w.value);\n }, 20);\n }\n break;\n case \"string\":\n case \"text\":\n if (event.type == LiteGraph.pointerevents_method + \"down\") {\n this.prompt(\n \"Value\",\n w.value,\n function(v2) {\n inner_value_change(this, v2);\n }.bind(w),\n event,\n w.options ? w.options.multiline : false\n );\n }\n break;\n default:\n if (w.mouse) this.dirty_canvas = w.mouse(event, [x, y], node);\n break;\n }\n if (old_value != w.value) {\n node.onWidgetChanged?.(w.name, w.value, old_value, w);\n node.graph._version++;\n }\n return w;\n }\n function inner_value_change(widget, value) {\n const v2 = widget.type === \"number\" ? Number(value) : value;\n widget.value = v2;\n if (widget.options?.property && node.properties[widget.options.property] !== void 0) {\n node.setProperty(widget.options.property, v2);\n }\n widget.callback?.(widget.value, that, node, pos, event);\n }\n return null;\n }\n /**\n * draws every group area in the background\n **/\n drawGroups(canvas, ctx) {\n if (!this.graph) return;\n const groups = this.graph._groups;\n ctx.save();\n ctx.globalAlpha = 0.5 * this.editor_alpha;\n for (let i2 = 0; i2 < groups.length; ++i2) {\n const group = groups[i2];\n if (!overlapBounding(this.visible_area, group._bounding)) {\n continue;\n }\n group.draw(this, ctx);\n }\n ctx.restore();\n }\n adjustNodesSize() {\n const nodes = this.graph._nodes;\n for (let i2 = 0; i2 < nodes.length; ++i2) {\n nodes[i2].size = nodes[i2].computeSize();\n }\n this.setDirty(true, true);\n }\n /**\n * resizes the canvas to a given size, if no size is passed, then it tries to fill the parentNode\n **/\n resize(width2, height) {\n if (!width2 && !height) {\n const parent = this.canvas.parentNode;\n width2 = parent.offsetWidth;\n height = parent.offsetHeight;\n }\n if (this.canvas.width == width2 && this.canvas.height == height)\n return;\n this.canvas.width = width2;\n this.canvas.height = height;\n this.bgcanvas.width = this.canvas.width;\n this.bgcanvas.height = this.canvas.height;\n this.setDirty(true, true);\n }\n /**\n * switches to live mode (node shapes are not rendered, only the content)\n * this feature was designed when graphs where meant to create user interfaces\n **/\n switchLiveMode(transition) {\n if (!transition) {\n this.live_mode = !this.live_mode;\n this.dirty_canvas = true;\n this.dirty_bgcanvas = true;\n return;\n }\n const self = this;\n const delta2 = this.live_mode ? 1.1 : 0.9;\n if (this.live_mode) {\n this.live_mode = false;\n this.editor_alpha = 0.1;\n }\n const t = setInterval(function() {\n self.editor_alpha *= delta2;\n self.dirty_canvas = true;\n self.dirty_bgcanvas = true;\n if (delta2 < 1 && self.editor_alpha < 0.01) {\n clearInterval(t);\n if (delta2 < 1) self.live_mode = true;\n }\n if (delta2 > 1 && self.editor_alpha > 0.99) {\n clearInterval(t);\n self.editor_alpha = 1;\n }\n }, 1);\n }\n onNodeSelectionChange() {\n }\n /**\n * Determines the furthest nodes in each direction for the currently selected nodes\n * @return {{left: LGraphNode, top: LGraphNode, right: LGraphNode, bottom: LGraphNode}}\n */\n boundaryNodesForSelection() {\n return LGraphCanvas.getBoundaryNodes(Object.values(this.selected_nodes));\n }\n showLinkMenu(link, e) {\n const graph = this.graph;\n const node_left = graph.getNodeById(link.origin_id);\n const node_right = graph.getNodeById(link.target_id);\n const fromType = node_left?.outputs?.[link.origin_slot] ? node_left.outputs[link.origin_slot].type : false;\n const destType = node_right?.outputs?.[link.target_slot] ? node_right.inputs[link.target_slot].type : false;\n const options = [\"Add Node\", null, \"Delete\", null];\n const menu = new LiteGraph.ContextMenu(options, {\n event: e,\n title: link.data != null ? link.data.constructor.name : null,\n callback: inner_clicked\n });\n function inner_clicked(v2, options2, e2) {\n switch (v2) {\n case \"Add Node\":\n LGraphCanvas.onMenuAdd(null, null, e2, menu, function(node2) {\n if (!node2.inputs?.length || !node2.outputs?.length) return;\n if (node_left.connectByType(link.origin_slot, node2, fromType)) {\n node2.connectByType(link.target_slot, node_right, destType);\n node2.pos[0] -= node2.size[0] * 0.5;\n }\n });\n break;\n case \"Delete\":\n graph.removeLink(link.id);\n break;\n }\n }\n return false;\n }\n createDefaultNodeForSlot(optPass) {\n optPass = optPass || {};\n const opts = Object.assign(\n {\n nodeFrom: null,\n slotFrom: null,\n nodeTo: null,\n slotTo: null,\n position: [],\n nodeType: null,\n posAdd: [0, 0],\n posSizeFix: [0, 0]\n // alpha, adjust the position x,y based on the new node size w,h\n },\n optPass\n );\n const that2 = this;\n const isFrom = opts.nodeFrom && opts.slotFrom !== null;\n const isTo = !isFrom && opts.nodeTo && opts.slotTo !== null;\n if (!isFrom && !isTo) {\n console.warn(\"No data passed to createDefaultNodeForSlot \" + opts.nodeFrom + \" \" + opts.slotFrom + \" \" + opts.nodeTo + \" \" + opts.slotTo);\n return false;\n }\n if (!opts.nodeType) {\n console.warn(\"No type to createDefaultNodeForSlot\");\n return false;\n }\n const nodeX = isFrom ? opts.nodeFrom : opts.nodeTo;\n let slotX = isFrom ? opts.slotFrom : opts.slotTo;\n let iSlotConn = false;\n switch (typeof slotX) {\n case \"string\":\n iSlotConn = isFrom ? nodeX.findOutputSlot(slotX, false) : nodeX.findInputSlot(slotX, false);\n slotX = isFrom ? nodeX.outputs[slotX] : nodeX.inputs[slotX];\n break;\n case \"object\":\n iSlotConn = isFrom ? nodeX.findOutputSlot(slotX.name) : nodeX.findInputSlot(slotX.name);\n break;\n case \"number\":\n iSlotConn = slotX;\n slotX = isFrom ? nodeX.outputs[slotX] : nodeX.inputs[slotX];\n break;\n case \"undefined\":\n default:\n console.warn(\"Cant get slot information \" + slotX);\n return false;\n }\n if (slotX === false || iSlotConn === false) {\n console.warn(\"createDefaultNodeForSlot bad slotX \" + slotX + \" \" + iSlotConn);\n }\n const fromSlotType = slotX.type == LiteGraph.EVENT ? \"_event_\" : slotX.type;\n const slotTypesDefault = isFrom ? LiteGraph.slot_types_default_out : LiteGraph.slot_types_default_in;\n if (slotTypesDefault?.[fromSlotType]) {\n let nodeNewType = false;\n if (typeof slotTypesDefault[fromSlotType] == \"object\") {\n for (const typeX in slotTypesDefault[fromSlotType]) {\n if (opts.nodeType == slotTypesDefault[fromSlotType][typeX] || opts.nodeType == \"AUTO\") {\n nodeNewType = slotTypesDefault[fromSlotType][typeX];\n break;\n }\n }\n } else {\n if (opts.nodeType == slotTypesDefault[fromSlotType] || opts.nodeType == \"AUTO\") nodeNewType = slotTypesDefault[fromSlotType];\n }\n if (nodeNewType) {\n let nodeNewOpts = false;\n if (typeof nodeNewType == \"object\" && nodeNewType.node) {\n nodeNewOpts = nodeNewType;\n nodeNewType = nodeNewType.node;\n }\n const newNode = LiteGraph.createNode(nodeNewType);\n if (newNode) {\n if (nodeNewOpts) {\n if (nodeNewOpts.properties) {\n for (const i2 in nodeNewOpts.properties) {\n newNode.addProperty(i2, nodeNewOpts.properties[i2]);\n }\n }\n if (nodeNewOpts.inputs) {\n newNode.inputs = [];\n for (const i2 in nodeNewOpts.inputs) {\n newNode.addOutput(\n nodeNewOpts.inputs[i2][0],\n nodeNewOpts.inputs[i2][1]\n );\n }\n }\n if (nodeNewOpts.outputs) {\n newNode.outputs = [];\n for (const i2 in nodeNewOpts.outputs) {\n newNode.addOutput(\n nodeNewOpts.outputs[i2][0],\n nodeNewOpts.outputs[i2][1]\n );\n }\n }\n if (nodeNewOpts.title) {\n newNode.title = nodeNewOpts.title;\n }\n if (nodeNewOpts.json) {\n newNode.configure(nodeNewOpts.json);\n }\n }\n that2.graph.add(newNode);\n newNode.pos = [\n opts.position[0] + opts.posAdd[0] + (opts.posSizeFix[0] ? opts.posSizeFix[0] * newNode.size[0] : 0),\n opts.position[1] + opts.posAdd[1] + (opts.posSizeFix[1] ? opts.posSizeFix[1] * newNode.size[1] : 0)\n ];\n if (isFrom) {\n opts.nodeFrom.connectByType(iSlotConn, newNode, fromSlotType);\n } else {\n opts.nodeTo.connectByTypeOutput(iSlotConn, newNode, fromSlotType);\n }\n return true;\n }\n console.log(\"failed creating \" + nodeNewType);\n }\n }\n return false;\n }\n showConnectionMenu(optPass) {\n optPass ||= {};\n const opts = Object.assign(\n {\n nodeFrom: null,\n slotFrom: null,\n nodeTo: null,\n slotTo: null,\n e: null,\n allow_searchbox: this.allow_searchbox,\n showSearchBox: this.showSearchBox\n },\n optPass\n );\n const that2 = this;\n const isFrom = opts.nodeFrom && opts.slotFrom;\n const isTo = !isFrom && opts.nodeTo && opts.slotTo;\n if (!isFrom && !isTo) {\n console.warn(\"No data passed to showConnectionMenu\");\n return;\n }\n const nodeX = isFrom ? opts.nodeFrom : opts.nodeTo;\n let slotX = isFrom ? opts.slotFrom : opts.slotTo;\n let iSlotConn = false;\n switch (typeof slotX) {\n case \"string\":\n iSlotConn = isFrom ? nodeX.findOutputSlot(slotX, false) : nodeX.findInputSlot(slotX, false);\n slotX = isFrom ? nodeX.outputs[slotX] : nodeX.inputs[slotX];\n break;\n case \"object\":\n iSlotConn = isFrom ? nodeX.findOutputSlot(slotX.name) : nodeX.findInputSlot(slotX.name);\n break;\n case \"number\":\n iSlotConn = slotX;\n slotX = isFrom ? nodeX.outputs[slotX] : nodeX.inputs[slotX];\n break;\n default:\n console.warn(\"Cant get slot information \" + slotX);\n return;\n }\n const options = [\"Add Node\", null];\n if (opts.allow_searchbox) {\n options.push(\"Search\");\n options.push(null);\n }\n const fromSlotType = slotX.type == LiteGraph.EVENT ? \"_event_\" : slotX.type;\n const slotTypesDefault = isFrom ? LiteGraph.slot_types_default_out : LiteGraph.slot_types_default_in;\n if (slotTypesDefault?.[fromSlotType]) {\n if (typeof slotTypesDefault[fromSlotType] == \"object\") {\n for (const typeX in slotTypesDefault[fromSlotType]) {\n options.push(slotTypesDefault[fromSlotType][typeX]);\n }\n } else {\n options.push(slotTypesDefault[fromSlotType]);\n }\n }\n const menu = new LiteGraph.ContextMenu(options, {\n event: opts.e,\n title: (slotX && slotX.name != \"\" ? slotX.name + (fromSlotType ? \" | \" : \"\") : \"\") + (slotX && fromSlotType ? fromSlotType : \"\"),\n callback: inner_clicked\n });\n function inner_clicked(v2, options2, e) {\n switch (v2) {\n case \"Add Node\":\n LGraphCanvas.onMenuAdd(null, null, e, menu, function(node2) {\n if (isFrom) {\n opts.nodeFrom.connectByType(iSlotConn, node2, fromSlotType);\n } else {\n opts.nodeTo.connectByTypeOutput(iSlotConn, node2, fromSlotType);\n }\n });\n break;\n case \"Search\":\n if (isFrom) {\n opts.showSearchBox(e, { node_from: opts.nodeFrom, slot_from: slotX, type_filter_in: fromSlotType });\n } else {\n opts.showSearchBox(e, { node_to: opts.nodeTo, slot_from: slotX, type_filter_out: fromSlotType });\n }\n break;\n default: {\n that2.createDefaultNodeForSlot(Object.assign(opts, {\n position: [opts.e.canvasX, opts.e.canvasY],\n nodeType: v2\n }));\n break;\n }\n }\n }\n }\n // refactor: there are different dialogs, some uses createDialog some dont\n prompt(title, value, callback, event2, multiline) {\n const that2 = this;\n title = title || \"\";\n const dialog = document.createElement(\"div\");\n dialog.is_modified = false;\n dialog.className = \"graphdialog rounded\";\n dialog.innerHTML = multiline ? \" \" : \" \";\n dialog.close = function() {\n that2.prompt_box = null;\n if (dialog.parentNode) {\n dialog.parentNode.removeChild(dialog);\n }\n };\n const graphcanvas = LGraphCanvas.active_canvas;\n const canvas = graphcanvas.canvas;\n canvas.parentNode.appendChild(dialog);\n if (this.ds.scale > 1) dialog.style.transform = \"scale(\" + this.ds.scale + \")\";\n let dialogCloseTimer = null;\n let prevent_timeout = 0;\n LiteGraph.pointerListenerAdd(dialog, \"leave\", function() {\n if (prevent_timeout)\n return;\n if (LiteGraph.dialog_close_on_mouse_leave) {\n if (!dialog.is_modified && LiteGraph.dialog_close_on_mouse_leave)\n dialogCloseTimer = setTimeout(dialog.close, LiteGraph.dialog_close_on_mouse_leave_delay);\n }\n });\n LiteGraph.pointerListenerAdd(dialog, \"enter\", function() {\n if (LiteGraph.dialog_close_on_mouse_leave && dialogCloseTimer)\n clearTimeout(dialogCloseTimer);\n });\n const selInDia = dialog.querySelectorAll(\"select\");\n if (selInDia) {\n for (const selIn of selInDia) {\n selIn.addEventListener(\"click\", function() {\n prevent_timeout++;\n });\n selIn.addEventListener(\"blur\", function() {\n prevent_timeout = 0;\n });\n selIn.addEventListener(\"change\", function() {\n prevent_timeout = -1;\n });\n }\n }\n this.prompt_box?.close();\n this.prompt_box = dialog;\n const name_element = dialog.querySelector(\".name\");\n name_element.innerText = title;\n const value_element = dialog.querySelector(\".value\");\n value_element.value = value;\n value_element.select();\n const input = value_element;\n input.addEventListener(\"keydown\", function(e) {\n dialog.is_modified = true;\n if (e.keyCode == 27) {\n dialog.close();\n } else if (e.keyCode == 13 && e.target.localName != \"textarea\") {\n if (callback) {\n callback(this.value);\n }\n dialog.close();\n } else {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n });\n const button = dialog.querySelector(\"button\");\n button.addEventListener(\"click\", function() {\n callback?.(input.value);\n that2.setDirty(true);\n dialog.close();\n });\n const rect = canvas.getBoundingClientRect();\n let offsetx = -20;\n let offsety = -20;\n if (rect) {\n offsetx -= rect.left;\n offsety -= rect.top;\n }\n if (event2) {\n dialog.style.left = event2.clientX + offsetx + \"px\";\n dialog.style.top = event2.clientY + offsety + \"px\";\n } else {\n dialog.style.left = canvas.width * 0.5 + offsetx + \"px\";\n dialog.style.top = canvas.height * 0.5 + offsety + \"px\";\n }\n setTimeout(function() {\n input.focus();\n const clickTime = Date.now();\n function handleOutsideClick(e) {\n if (e.target === canvas && Date.now() - clickTime > 256) {\n dialog.close();\n canvas.parentNode.removeEventListener(\"click\", handleOutsideClick);\n canvas.parentNode.removeEventListener(\"touchend\", handleOutsideClick);\n }\n }\n canvas.parentNode.addEventListener(\"click\", handleOutsideClick);\n canvas.parentNode.addEventListener(\"touchend\", handleOutsideClick);\n }, 10);\n return dialog;\n }\n showSearchBox(event2, options) {\n const def_options = {\n slot_from: null,\n node_from: null,\n node_to: null,\n do_type_filter: LiteGraph.search_filter_enabled,\n // @ts-expect-error\n type_filter_in: false,\n // @ts-expect-error\n type_filter_out: false,\n show_general_if_none_on_typefilter: true,\n show_general_after_typefiltered: true,\n hide_on_mouse_leave: LiteGraph.search_hide_on_mouse_leave,\n show_all_if_empty: true,\n show_all_on_open: LiteGraph.search_show_all_on_open\n };\n options = Object.assign(def_options, options || {});\n const that2 = this;\n const graphcanvas = LGraphCanvas.active_canvas;\n const canvas = graphcanvas.canvas;\n const root_document = canvas.ownerDocument || document;\n const dialog = document.createElement(\"div\");\n dialog.className = \"litegraph litesearchbox graphdialog rounded\";\n dialog.innerHTML = \"Search \";\n if (options.do_type_filter) {\n dialog.innerHTML += \"\";\n dialog.innerHTML += \"\";\n }\n dialog.innerHTML += \"
\";\n if (root_document.fullscreenElement)\n root_document.fullscreenElement.appendChild(dialog);\n else {\n root_document.body.appendChild(dialog);\n root_document.body.style.overflow = \"hidden\";\n }\n let selIn;\n let selOut;\n if (options.do_type_filter) {\n selIn = dialog.querySelector(\".slot_in_type_filter\");\n selOut = dialog.querySelector(\".slot_out_type_filter\");\n }\n dialog.close = function() {\n that2.search_box = null;\n this.blur();\n canvas.focus();\n root_document.body.style.overflow = \"\";\n setTimeout(function() {\n that2.canvas.focus();\n }, 20);\n dialog.parentNode?.removeChild(dialog);\n };\n if (this.ds.scale > 1) {\n dialog.style.transform = \"scale(\" + this.ds.scale + \")\";\n }\n if (options.hide_on_mouse_leave) {\n let prevent_timeout = false;\n let timeout_close = null;\n LiteGraph.pointerListenerAdd(dialog, \"enter\", function() {\n if (timeout_close) {\n clearTimeout(timeout_close);\n timeout_close = null;\n }\n });\n LiteGraph.pointerListenerAdd(dialog, \"leave\", function() {\n if (prevent_timeout)\n return;\n timeout_close = setTimeout(function() {\n dialog.close();\n }, typeof options.hide_on_mouse_leave === \"number\" ? options.hide_on_mouse_leave : 500);\n });\n if (options.do_type_filter) {\n selIn.addEventListener(\"click\", function() {\n prevent_timeout++;\n });\n selIn.addEventListener(\"blur\", function() {\n prevent_timeout = 0;\n });\n selIn.addEventListener(\"change\", function() {\n prevent_timeout = -1;\n });\n selOut.addEventListener(\"click\", function() {\n prevent_timeout++;\n });\n selOut.addEventListener(\"blur\", function() {\n prevent_timeout = 0;\n });\n selOut.addEventListener(\"change\", function() {\n prevent_timeout = -1;\n });\n }\n }\n that2.search_box?.close();\n that2.search_box = dialog;\n const helper = dialog.querySelector(\".helper\");\n let first = null;\n let timeout = null;\n let selected = null;\n const input = dialog.querySelector(\"input\");\n if (input) {\n input.addEventListener(\"blur\", function() {\n this.focus();\n });\n input.addEventListener(\"keydown\", function(e) {\n if (e.keyCode == 38) {\n changeSelection(false);\n } else if (e.keyCode == 40) {\n changeSelection(true);\n } else if (e.keyCode == 27) {\n dialog.close();\n } else if (e.keyCode == 13) {\n if (selected) {\n select(unescape(selected.dataset[\"type\"]));\n } else if (first) {\n select(first);\n } else {\n dialog.close();\n }\n } else {\n if (timeout) {\n clearInterval(timeout);\n }\n timeout = setTimeout(refreshHelper, 10);\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n return true;\n });\n }\n if (options.do_type_filter) {\n if (selIn) {\n const aSlots = LiteGraph.slot_types_in;\n const nSlots = aSlots.length;\n if (options.type_filter_in == LiteGraph.EVENT || options.type_filter_in == LiteGraph.ACTION)\n options.type_filter_in = \"_event_\";\n for (let iK = 0; iK < nSlots; iK++) {\n const opt = document.createElement(\"option\");\n opt.value = aSlots[iK];\n opt.innerHTML = aSlots[iK];\n selIn.appendChild(opt);\n if (options.type_filter_in !== false && (options.type_filter_in + \"\").toLowerCase() == (aSlots[iK] + \"\").toLowerCase()) {\n opt.selected = true;\n }\n }\n selIn.addEventListener(\"change\", function() {\n refreshHelper();\n });\n }\n if (selOut) {\n const aSlots = LiteGraph.slot_types_out;\n const nSlots = aSlots.length;\n if (options.type_filter_out == LiteGraph.EVENT || options.type_filter_out == LiteGraph.ACTION)\n options.type_filter_out = \"_event_\";\n for (let iK = 0; iK < nSlots; iK++) {\n const opt = document.createElement(\"option\");\n opt.value = aSlots[iK];\n opt.innerHTML = aSlots[iK];\n selOut.appendChild(opt);\n if (options.type_filter_out !== false && (options.type_filter_out + \"\").toLowerCase() == (aSlots[iK] + \"\").toLowerCase())\n opt.selected = true;\n }\n selOut.addEventListener(\"change\", function() {\n refreshHelper();\n });\n }\n }\n const rect = canvas.getBoundingClientRect();\n const left = (event2 ? event2.clientX : rect.left + rect.width * 0.5) - 80;\n const top = (event2 ? event2.clientY : rect.top + rect.height * 0.5) - 20;\n dialog.style.left = left + \"px\";\n dialog.style.top = top + \"px\";\n if (event2.layerY > rect.height - 200)\n helper.style.maxHeight = rect.height - event2.layerY - 20 + \"px\";\n requestAnimationFrame(function() {\n input.focus();\n });\n if (options.show_all_on_open) refreshHelper();\n function select(name) {\n if (name) {\n if (that2.onSearchBoxSelection) {\n that2.onSearchBoxSelection(name, event2, graphcanvas);\n } else {\n const extra = LiteGraph.searchbox_extras[name.toLowerCase()];\n if (extra)\n name = extra.type;\n graphcanvas.graph.beforeChange();\n const node2 = LiteGraph.createNode(name);\n if (node2) {\n node2.pos = graphcanvas.convertEventToCanvasOffset(\n event2\n );\n graphcanvas.graph.add(node2, false);\n }\n if (extra?.data) {\n if (extra.data.properties) {\n for (const i2 in extra.data.properties) {\n node2.addProperty(i2, extra.data.properties[i2]);\n }\n }\n if (extra.data.inputs) {\n node2.inputs = [];\n for (const i2 in extra.data.inputs) {\n node2.addOutput(\n extra.data.inputs[i2][0],\n extra.data.inputs[i2][1]\n );\n }\n }\n if (extra.data.outputs) {\n node2.outputs = [];\n for (const i2 in extra.data.outputs) {\n node2.addOutput(\n extra.data.outputs[i2][0],\n extra.data.outputs[i2][1]\n );\n }\n }\n if (extra.data.title) {\n node2.title = extra.data.title;\n }\n if (extra.data.json) {\n node2.configure(extra.data.json);\n }\n }\n if (options.node_from) {\n let iS = false;\n switch (typeof options.slot_from) {\n case \"string\":\n iS = options.node_from.findOutputSlot(options.slot_from);\n break;\n case \"object\":\n iS = options.slot_from.name ? options.node_from.findOutputSlot(options.slot_from.name) : -1;\n if (iS == -1 && typeof options.slot_from.slot_index !== \"undefined\") iS = options.slot_from.slot_index;\n break;\n case \"number\":\n iS = options.slot_from;\n break;\n default:\n iS = 0;\n }\n if (typeof options.node_from.outputs[iS] !== \"undefined\") {\n if (iS !== false && iS > -1) {\n options.node_from.connectByType(iS, node2, options.node_from.outputs[iS].type);\n }\n }\n }\n if (options.node_to) {\n let iS = false;\n switch (typeof options.slot_from) {\n case \"string\":\n iS = options.node_to.findInputSlot(options.slot_from);\n break;\n case \"object\":\n iS = options.slot_from.name ? options.node_to.findInputSlot(options.slot_from.name) : -1;\n if (iS == -1 && typeof options.slot_from.slot_index !== \"undefined\") iS = options.slot_from.slot_index;\n break;\n case \"number\":\n iS = options.slot_from;\n break;\n default:\n iS = 0;\n }\n if (typeof options.node_to.inputs[iS] !== \"undefined\") {\n if (iS !== false && iS > -1) {\n options.node_to.connectByTypeOutput(iS, node2, options.node_to.inputs[iS].type);\n }\n }\n }\n graphcanvas.graph.afterChange();\n }\n }\n dialog.close();\n }\n function changeSelection(forward) {\n const prev = selected;\n if (!selected) {\n selected = forward ? helper.childNodes[0] : helper.childNodes[helper.childNodes.length];\n } else {\n selected.classList.remove(\"selected\");\n selected = forward ? selected.nextSibling : selected.previousSibling;\n selected ||= prev;\n }\n if (!selected) return;\n selected.classList.add(\"selected\");\n selected.scrollIntoView({ block: \"end\", behavior: \"smooth\" });\n }\n function refreshHelper() {\n timeout = null;\n let str = input.value;\n first = null;\n helper.innerHTML = \"\";\n if (!str && !options.show_all_if_empty) return;\n if (that2.onSearchBox) {\n const list = that2.onSearchBox(helper, str, graphcanvas);\n if (list) {\n for (let i2 = 0; i2 < list.length; ++i2) {\n addResult(list[i2]);\n }\n }\n } else {\n let inner_test_filter = function(type, optsIn) {\n optsIn = optsIn || {};\n const optsDef = {\n skipFilter: false,\n inTypeOverride: false,\n outTypeOverride: false\n };\n const opts = Object.assign(optsDef, optsIn);\n const ctor = LiteGraph.registered_node_types[type];\n if (filter && ctor.filter != filter)\n return false;\n if ((!options.show_all_if_empty || str) && type.toLowerCase().indexOf(str) === -1 && (!ctor.title || ctor.title.toLowerCase().indexOf(str) === -1))\n return false;\n if (options.do_type_filter && !opts.skipFilter) {\n const sType = type;\n let sV = opts.inTypeOverride !== false ? opts.inTypeOverride : sIn.value;\n if (sIn && sV) {\n if (LiteGraph.registered_slot_in_types[sV]?.nodes) {\n const doesInc = LiteGraph.registered_slot_in_types[sV].nodes.includes(sType);\n if (doesInc !== false) ;\n else {\n return false;\n }\n }\n }\n sV = sOut.value;\n if (opts.outTypeOverride !== false) sV = opts.outTypeOverride;\n if (sOut && sV) {\n if (LiteGraph.registered_slot_out_types[sV]?.nodes) {\n const doesInc = LiteGraph.registered_slot_out_types[sV].nodes.includes(sType);\n if (doesInc !== false) ;\n else {\n return false;\n }\n }\n }\n }\n return true;\n };\n let c = 0;\n str = str.toLowerCase();\n const filter = graphcanvas.filter || graphcanvas.graph.filter;\n let sIn = false;\n let sOut = false;\n if (options.do_type_filter && that2.search_box) {\n sIn = that2.search_box.querySelector(\".slot_in_type_filter\");\n sOut = that2.search_box.querySelector(\".slot_out_type_filter\");\n }\n for (const i2 in LiteGraph.searchbox_extras) {\n const extra = LiteGraph.searchbox_extras[i2];\n if ((!options.show_all_if_empty || str) && extra.desc.toLowerCase().indexOf(str) === -1)\n continue;\n const ctor = LiteGraph.registered_node_types[extra.type];\n if (ctor && ctor.filter != filter)\n continue;\n if (!inner_test_filter(extra.type))\n continue;\n addResult(extra.desc, \"searchbox_extra\");\n if (LGraphCanvas.search_limit !== -1 && c++ > LGraphCanvas.search_limit) {\n break;\n }\n }\n let filtered = null;\n if (Array.prototype.filter) {\n const keys = Object.keys(LiteGraph.registered_node_types);\n filtered = keys.filter(inner_test_filter);\n } else {\n filtered = [];\n for (const i2 in LiteGraph.registered_node_types) {\n if (inner_test_filter(i2))\n filtered.push(i2);\n }\n }\n for (let i2 = 0; i2 < filtered.length; i2++) {\n addResult(filtered[i2]);\n if (LGraphCanvas.search_limit !== -1 && c++ > LGraphCanvas.search_limit)\n break;\n }\n if (options.show_general_after_typefiltered && (sIn.value || sOut.value)) {\n filtered_extra = [];\n for (const i2 in LiteGraph.registered_node_types) {\n if (inner_test_filter(i2, { inTypeOverride: sIn && sIn.value ? \"*\" : false, outTypeOverride: sOut && sOut.value ? \"*\" : false }))\n filtered_extra.push(i2);\n }\n for (let i2 = 0; i2 < filtered_extra.length; i2++) {\n addResult(filtered_extra[i2], \"generic_type\");\n if (LGraphCanvas.search_limit !== -1 && c++ > LGraphCanvas.search_limit)\n break;\n }\n }\n if ((sIn.value || sOut.value) && (helper.childNodes.length == 0 && options.show_general_if_none_on_typefilter)) {\n filtered_extra = [];\n for (const i2 in LiteGraph.registered_node_types) {\n if (inner_test_filter(i2, { skipFilter: true }))\n filtered_extra.push(i2);\n }\n for (let i2 = 0; i2 < filtered_extra.length; i2++) {\n addResult(filtered_extra[i2], \"not_in_filter\");\n if (LGraphCanvas.search_limit !== -1 && c++ > LGraphCanvas.search_limit)\n break;\n }\n }\n }\n function addResult(type, className) {\n const help = document.createElement(\"div\");\n first ||= type;\n const nodeType = LiteGraph.registered_node_types[type];\n if (nodeType?.title) {\n help.innerText = nodeType?.title;\n const typeEl = document.createElement(\"span\");\n typeEl.className = \"litegraph lite-search-item-type\";\n typeEl.textContent = type;\n help.append(typeEl);\n } else {\n help.innerText = type;\n }\n help.dataset[\"type\"] = escape(type);\n help.className = \"litegraph lite-search-item\";\n if (className) {\n help.className += \" \" + className;\n }\n help.addEventListener(\"click\", function() {\n select(unescape(this.dataset[\"type\"]));\n });\n helper.appendChild(help);\n }\n }\n return dialog;\n }\n showEditPropertyValue(node2, property, options) {\n if (!node2 || node2.properties[property] === void 0) return;\n options = options || {};\n const info = node2.getPropertyInfo(property);\n const type = info.type;\n let input_html = \"\";\n if (type == \"string\" || type == \"number\" || type == \"array\" || type == \"object\") {\n input_html = \"\";\n } else if ((type == \"enum\" || type == \"combo\") && info.values) {\n input_html = \"\";\n } else if (type == \"boolean\" || type == \"toggle\") {\n input_html = \"\";\n } else {\n console.warn(\"unknown type: \" + type);\n return;\n }\n const dialog = this.createDialog(\n \"\" + (info.label || property) + \"\" + input_html + \"\",\n options\n );\n let input = false;\n if ((type == \"enum\" || type == \"combo\") && info.values) {\n input = dialog.querySelector(\"select\");\n input.addEventListener(\"change\", function(e) {\n dialog.modified();\n setValue(e.target.value);\n });\n } else if (type == \"boolean\" || type == \"toggle\") {\n input = dialog.querySelector(\"input\");\n input?.addEventListener(\"click\", function() {\n dialog.modified();\n setValue(!!input.checked);\n });\n } else {\n input = dialog.querySelector(\"input\");\n if (input) {\n input.addEventListener(\"blur\", function() {\n this.focus();\n });\n let v2 = node2.properties[property] !== void 0 ? node2.properties[property] : \"\";\n if (type !== \"string\") {\n v2 = JSON.stringify(v2);\n }\n input.value = v2;\n input.addEventListener(\"keydown\", function(e) {\n if (e.keyCode == 27) {\n dialog.close();\n } else if (e.keyCode == 13) {\n inner();\n } else if (e.keyCode != 13) {\n dialog.modified();\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n });\n }\n }\n input?.focus();\n const button = dialog.querySelector(\"button\");\n button.addEventListener(\"click\", inner);\n function inner() {\n setValue(input.value);\n }\n function setValue(value) {\n if (info?.values && info.values.constructor === Object && info.values[value] != void 0)\n value = info.values[value];\n if (typeof node2.properties[property] == \"number\") {\n value = Number(value);\n }\n if (type == \"array\" || type == \"object\") {\n value = JSON.parse(value);\n }\n node2.properties[property] = value;\n if (node2.graph) {\n node2.graph._version++;\n }\n node2.onPropertyChanged?.(property, value);\n options.onclose?.();\n dialog.close();\n node2.setDirtyCanvas(true, true);\n }\n return dialog;\n }\n // TODO refactor, theer are different dialog, some uses createDialog, some dont\n createDialog(html, options) {\n const def_options = { checkForInput: false, closeOnLeave: true, closeOnLeave_checkModified: true };\n options = Object.assign(def_options, options || {});\n const dialog = document.createElement(\"div\");\n dialog.className = \"graphdialog\";\n dialog.innerHTML = html;\n dialog.is_modified = false;\n const rect = this.canvas.getBoundingClientRect();\n let offsetx = -20;\n let offsety = -20;\n if (rect) {\n offsetx -= rect.left;\n offsety -= rect.top;\n }\n if (options.position) {\n offsetx += options.position[0];\n offsety += options.position[1];\n } else if (options.event) {\n offsetx += options.event.clientX;\n offsety += options.event.clientY;\n } else {\n offsetx += this.canvas.width * 0.5;\n offsety += this.canvas.height * 0.5;\n }\n dialog.style.left = offsetx + \"px\";\n dialog.style.top = offsety + \"px\";\n this.canvas.parentNode.appendChild(dialog);\n if (options.checkForInput) {\n const aI = dialog.querySelectorAll(\"input\");\n aI?.forEach(function(iX) {\n iX.addEventListener(\"keydown\", function(e) {\n dialog.modified();\n if (e.keyCode == 27) {\n dialog.close();\n } else if (e.keyCode != 13) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n });\n iX.focus();\n });\n }\n dialog.modified = function() {\n dialog.is_modified = true;\n };\n dialog.close = function() {\n dialog.parentNode?.removeChild(dialog);\n };\n let dialogCloseTimer = null;\n let prevent_timeout = false;\n dialog.addEventListener(\"mouseleave\", function() {\n if (prevent_timeout)\n return;\n if (!dialog.is_modified && LiteGraph.dialog_close_on_mouse_leave)\n dialogCloseTimer = setTimeout(dialog.close, LiteGraph.dialog_close_on_mouse_leave_delay);\n });\n dialog.addEventListener(\"mouseenter\", function() {\n if (options.closeOnLeave || LiteGraph.dialog_close_on_mouse_leave) {\n if (dialogCloseTimer) clearTimeout(dialogCloseTimer);\n }\n });\n const selInDia = dialog.querySelectorAll(\"select\");\n selInDia?.forEach(function(selIn) {\n selIn.addEventListener(\"click\", function() {\n prevent_timeout++;\n });\n selIn.addEventListener(\"blur\", function() {\n prevent_timeout = 0;\n });\n selIn.addEventListener(\"change\", function() {\n prevent_timeout = -1;\n });\n });\n return dialog;\n }\n createPanel(title, options) {\n options = options || {};\n const ref_window2 = options.window || window;\n const root = document.createElement(\"div\");\n root.className = \"litegraph dialog\";\n root.innerHTML = \"
\";\n root.header = root.querySelector(\".dialog-header\");\n if (options.width)\n root.style.width = options.width + (options.width.constructor === Number ? \"px\" : \"\");\n if (options.height)\n root.style.height = options.height + (options.height.constructor === Number ? \"px\" : \"\");\n if (options.closable) {\n const close = document.createElement(\"span\");\n close.innerHTML = \"✕\";\n close.classList.add(\"close\");\n close.addEventListener(\"click\", function() {\n root.close();\n });\n root.header.appendChild(close);\n }\n root.title_element = root.querySelector(\".dialog-title\");\n root.title_element.innerText = title;\n root.content = root.querySelector(\".dialog-content\");\n root.alt_content = root.querySelector(\".dialog-alt-content\");\n root.footer = root.querySelector(\".dialog-footer\");\n root.close = function() {\n if (typeof root.onClose == \"function\") root.onClose();\n root.parentNode?.removeChild(root);\n this.parentNode?.removeChild(this);\n };\n root.toggleAltContent = function(force) {\n let vTo;\n let vAlt;\n if (typeof force != \"undefined\") {\n vTo = force ? \"block\" : \"none\";\n vAlt = force ? \"none\" : \"block\";\n } else {\n vTo = root.alt_content.style.display != \"block\" ? \"block\" : \"none\";\n vAlt = root.alt_content.style.display != \"block\" ? \"none\" : \"block\";\n }\n root.alt_content.style.display = vTo;\n root.content.style.display = vAlt;\n };\n root.toggleFooterVisibility = function(force) {\n let vTo;\n if (typeof force != \"undefined\") {\n vTo = force ? \"block\" : \"none\";\n } else {\n vTo = root.footer.style.display != \"block\" ? \"block\" : \"none\";\n }\n root.footer.style.display = vTo;\n };\n root.clear = function() {\n this.content.innerHTML = \"\";\n };\n root.addHTML = function(code, classname, on_footer) {\n const elem = document.createElement(\"div\");\n if (classname)\n elem.className = classname;\n elem.innerHTML = code;\n if (on_footer)\n root.footer.appendChild(elem);\n else\n root.content.appendChild(elem);\n return elem;\n };\n root.addButton = function(name, callback, options2) {\n const elem = document.createElement(\"button\");\n elem.innerText = name;\n elem.options = options2;\n elem.classList.add(\"btn\");\n elem.addEventListener(\"click\", callback);\n root.footer.appendChild(elem);\n return elem;\n };\n root.addSeparator = function() {\n const elem = document.createElement(\"div\");\n elem.className = \"separator\";\n root.content.appendChild(elem);\n };\n root.addWidget = function(type, name, value, options2, callback) {\n options2 = options2 || {};\n let str_value = String(value);\n type = type.toLowerCase();\n if (type == \"number\")\n str_value = value.toFixed(3);\n const elem = document.createElement(\"div\");\n elem.className = \"property\";\n elem.innerHTML = \"\";\n elem.querySelector(\".property_name\").innerText = options2.label || name;\n const value_element = elem.querySelector(\".property_value\");\n value_element.innerText = str_value;\n elem.dataset[\"property\"] = name;\n elem.dataset[\"type\"] = options2.type || type;\n elem.options = options2;\n elem.value = value;\n if (type == \"code\")\n elem.addEventListener(\"click\", function() {\n root.inner_showCodePad(this.dataset[\"property\"]);\n });\n else if (type == \"boolean\") {\n elem.classList.add(\"boolean\");\n if (value)\n elem.classList.add(\"bool-on\");\n elem.addEventListener(\"click\", function() {\n const propname = this.dataset[\"property\"];\n this.value = !this.value;\n this.classList.toggle(\"bool-on\");\n this.querySelector(\".property_value\").innerText = this.value ? \"true\" : \"false\";\n innerChange(propname, this.value);\n });\n } else if (type == \"string\" || type == \"number\") {\n value_element.setAttribute(\"contenteditable\", true);\n value_element.addEventListener(\"keydown\", function(e) {\n if (e.code == \"Enter\" && (type != \"string\" || !e.shiftKey)) {\n e.preventDefault();\n this.blur();\n }\n });\n value_element.addEventListener(\"blur\", function() {\n let v2 = this.innerText;\n const propname = this.parentNode.dataset[\"property\"];\n const proptype = this.parentNode.dataset[\"type\"];\n if (proptype == \"number\")\n v2 = Number(v2);\n innerChange(propname, v2);\n });\n } else if (type == \"enum\" || type == \"combo\") {\n const str_value2 = LGraphCanvas.getPropertyPrintableValue(value, options2.values);\n value_element.innerText = str_value2;\n value_element.addEventListener(\"click\", function(event2) {\n const values2 = options2.values || [];\n const propname = this.parentNode.dataset[\"property\"];\n const elem_that = this;\n new LiteGraph.ContextMenu(\n values2,\n {\n event: event2,\n className: \"dark\",\n callback: inner_clicked\n },\n // @ts-expect-error\n ref_window2\n );\n function inner_clicked(v2) {\n elem_that.innerText = v2;\n innerChange(propname, v2);\n return false;\n }\n });\n }\n root.content.appendChild(elem);\n function innerChange(name2, value2) {\n options2.callback?.(name2, value2, options2);\n callback?.(name2, value2, options2);\n }\n return elem;\n };\n if (root.onOpen && typeof root.onOpen == \"function\") root.onOpen();\n return root;\n }\n closePanels() {\n document.querySelector(\"#node-panel\")?.close();\n document.querySelector(\"#option-panel\")?.close();\n }\n showShowGraphOptionsPanel(refOpts, obEv) {\n let graphcanvas;\n if (this.constructor && this.constructor.name == \"HTMLDivElement\") {\n if (!obEv || !obEv.event || !obEv.event.target || !obEv.event.target.lgraphcanvas) {\n console.warn(\"Canvas not found\");\n return;\n }\n graphcanvas = obEv.event.target.lgraphcanvas;\n } else {\n graphcanvas = this;\n }\n graphcanvas.closePanels();\n const ref_window2 = graphcanvas.getCanvasWindow();\n panel = graphcanvas.createPanel(\"Options\", {\n closable: true,\n window: ref_window2,\n onOpen: function() {\n graphcanvas.OPTIONPANEL_IS_OPEN = true;\n },\n onClose: function() {\n graphcanvas.OPTIONPANEL_IS_OPEN = false;\n graphcanvas.options_panel = null;\n }\n });\n graphcanvas.options_panel = panel;\n panel.id = \"option-panel\";\n panel.classList.add(\"settings\");\n function inner_refresh() {\n panel.content.innerHTML = \"\";\n const fUpdate = function(name, value, options) {\n switch (name) {\n default:\n if (options?.key) {\n name = options.key;\n }\n if (options.values) {\n value = Object.values(options.values).indexOf(value);\n }\n graphcanvas[name] = value;\n break;\n }\n };\n const aProps = LiteGraph.availableCanvasOptions;\n aProps.sort();\n for (const pI in aProps) {\n const pX = aProps[pI];\n panel.addWidget(\"boolean\", pX, graphcanvas[pX], { key: pX, on: \"True\", off: \"False\" }, fUpdate);\n }\n panel.addWidget(\"combo\", \"Render mode\", LiteGraph.LINK_RENDER_MODES[graphcanvas.links_render_mode], { key: \"links_render_mode\", values: LiteGraph.LINK_RENDER_MODES }, fUpdate);\n panel.addSeparator();\n panel.footer.innerHTML = \"\";\n }\n inner_refresh();\n graphcanvas.canvas.parentNode.appendChild(panel);\n }\n showShowNodePanel(node2) {\n this.SELECTED_NODE = node2;\n this.closePanels();\n const ref_window2 = this.getCanvasWindow();\n const graphcanvas = this;\n const panel2 = this.createPanel(node2.title || \"\", {\n closable: true,\n window: ref_window2,\n onOpen: function() {\n graphcanvas.NODEPANEL_IS_OPEN = true;\n },\n onClose: function() {\n graphcanvas.NODEPANEL_IS_OPEN = false;\n graphcanvas.node_panel = null;\n }\n });\n graphcanvas.node_panel = panel2;\n panel2.id = \"node-panel\";\n panel2.node = node2;\n panel2.classList.add(\"settings\");\n function inner_refresh() {\n panel2.content.innerHTML = \"\";\n panel2.addHTML(\"\" + node2.type + \"\" + (node2.constructor.desc || \"\") + \"\");\n panel2.addHTML(\"

Properties

\");\n const fUpdate = function(name, value) {\n graphcanvas.graph.beforeChange(node2);\n switch (name) {\n case \"Title\":\n node2.title = value;\n break;\n case \"Mode\": {\n const kV = Object.values(LiteGraph.NODE_MODES).indexOf(value);\n if (kV >= 0 && LiteGraph.NODE_MODES[kV]) {\n node2.changeMode(kV);\n } else {\n console.warn(\"unexpected mode: \" + value);\n }\n break;\n }\n case \"Color\":\n if (LGraphCanvas.node_colors[value]) {\n node2.color = LGraphCanvas.node_colors[value].color;\n node2.bgcolor = LGraphCanvas.node_colors[value].bgcolor;\n } else {\n console.warn(\"unexpected color: \" + value);\n }\n break;\n default:\n node2.setProperty(name, value);\n break;\n }\n graphcanvas.graph.afterChange();\n graphcanvas.dirty_canvas = true;\n };\n panel2.addWidget(\"string\", \"Title\", node2.title, {}, fUpdate);\n panel2.addWidget(\"combo\", \"Mode\", LiteGraph.NODE_MODES[node2.mode], { values: LiteGraph.NODE_MODES }, fUpdate);\n let nodeCol = \"\";\n if (node2.color !== void 0) {\n nodeCol = Object.keys(LGraphCanvas.node_colors).filter(function(nK) {\n return LGraphCanvas.node_colors[nK].color == node2.color;\n });\n }\n panel2.addWidget(\"combo\", \"Color\", nodeCol, { values: Object.keys(LGraphCanvas.node_colors) }, fUpdate);\n for (const pName in node2.properties) {\n const value = node2.properties[pName];\n const info = node2.getPropertyInfo(pName);\n if (node2.onAddPropertyToPanel?.(pName, panel2))\n continue;\n panel2.addWidget(info.widget || info.type, pName, value, info, fUpdate);\n }\n panel2.addSeparator();\n node2.onShowCustomPanelInfo?.(panel2);\n panel2.footer.innerHTML = \"\";\n panel2.addButton(\"Delete\", function() {\n if (node2.block_delete)\n return;\n node2.graph.remove(node2);\n panel2.close();\n }).classList.add(\"delete\");\n }\n panel2.inner_showCodePad = function(propname) {\n panel2.classList.remove(\"settings\");\n panel2.classList.add(\"centered\");\n panel2.alt_content.innerHTML = \"\";\n const textarea = panel2.alt_content.querySelector(\"textarea\");\n const fDoneWith = function() {\n panel2.toggleAltContent(false);\n panel2.toggleFooterVisibility(true);\n textarea.parentNode.removeChild(textarea);\n panel2.classList.add(\"settings\");\n panel2.classList.remove(\"centered\");\n inner_refresh();\n };\n textarea.value = node2.properties[propname];\n textarea.addEventListener(\"keydown\", function(e) {\n if (e.code == \"Enter\" && e.ctrlKey) {\n node2.setProperty(propname, textarea.value);\n fDoneWith();\n }\n });\n panel2.toggleAltContent(true);\n panel2.toggleFooterVisibility(false);\n textarea.style.height = \"calc(100% - 40px)\";\n const assign = panel2.addButton(\"Assign\", function() {\n node2.setProperty(propname, textarea.value);\n fDoneWith();\n });\n panel2.alt_content.appendChild(assign);\n const button = panel2.addButton(\"Close\", fDoneWith);\n button.style.float = \"right\";\n panel2.alt_content.appendChild(button);\n };\n inner_refresh();\n this.canvas.parentNode.appendChild(panel2);\n }\n showSubgraphPropertiesDialog(node2) {\n console.log(\"showing subgraph properties dialog\");\n const old_panel = this.canvas.parentNode.querySelector(\".subgraph_dialog\");\n old_panel?.close();\n const panel2 = this.createPanel(\"Subgraph Inputs\", { closable: true, width: 500 });\n panel2.node = node2;\n panel2.classList.add(\"subgraph_dialog\");\n function inner_refresh() {\n panel2.clear();\n if (node2.inputs)\n for (let i2 = 0; i2 < node2.inputs.length; ++i2) {\n const input = node2.inputs[i2];\n if (input.not_subgraph_input)\n continue;\n const html2 = \" \";\n const elem2 = panel2.addHTML(html2, \"subgraph_property\");\n elem2.dataset[\"name\"] = input.name;\n elem2.dataset[\"slot\"] = i2;\n elem2.querySelector(\".name\").innerText = input.name;\n elem2.querySelector(\".type\").innerText = input.type;\n elem2.querySelector(\"button\").addEventListener(\"click\", function() {\n node2.removeInput(Number(this.parentNode.dataset[\"slot\"]));\n inner_refresh();\n });\n }\n }\n const html = \" + NameType\";\n const elem = panel2.addHTML(html, \"subgraph_property extra\", true);\n elem.querySelector(\"button\").addEventListener(\"click\", function() {\n const elem2 = this.parentNode;\n const name = elem2.querySelector(\".name\").value;\n const type = elem2.querySelector(\".type\").value;\n if (!name || node2.findInputSlot(name) != -1)\n return;\n node2.addInput(name, type);\n elem2.querySelector(\".name\").value = \"\";\n elem2.querySelector(\".type\").value = \"\";\n inner_refresh();\n });\n inner_refresh();\n this.canvas.parentNode.appendChild(panel2);\n return panel2;\n }\n showSubgraphPropertiesDialogRight(node2) {\n const old_panel = this.canvas.parentNode.querySelector(\".subgraph_dialog\");\n old_panel?.close();\n const panel2 = this.createPanel(\"Subgraph Outputs\", { closable: true, width: 500 });\n panel2.node = node2;\n panel2.classList.add(\"subgraph_dialog\");\n function inner_refresh() {\n panel2.clear();\n if (node2.outputs)\n for (let i2 = 0; i2 < node2.outputs.length; ++i2) {\n const input = node2.outputs[i2];\n if (input.not_subgraph_output)\n continue;\n const html2 = \" \";\n const elem2 = panel2.addHTML(html2, \"subgraph_property\");\n elem2.dataset[\"name\"] = input.name;\n elem2.dataset[\"slot\"] = i2;\n elem2.querySelector(\".name\").innerText = input.name;\n elem2.querySelector(\".type\").innerText = input.type;\n elem2.querySelector(\"button\").addEventListener(\"click\", function() {\n node2.removeOutput(Number(this.parentNode.dataset[\"slot\"]));\n inner_refresh();\n });\n }\n }\n const html = \" + NameType\";\n const elem = panel2.addHTML(html, \"subgraph_property extra\", true);\n elem.querySelector(\".name\").addEventListener(\"keydown\", function(e) {\n if (e.keyCode == 13) addOutput.apply(this);\n });\n elem.querySelector(\"button\").addEventListener(\"click\", function() {\n addOutput.apply(this);\n });\n function addOutput() {\n const elem2 = this.parentNode;\n const name = elem2.querySelector(\".name\").value;\n const type = elem2.querySelector(\".type\").value;\n if (!name || node2.findOutputSlot(name) != -1)\n return;\n node2.addOutput(name, type);\n elem2.querySelector(\".name\").value = \"\";\n elem2.querySelector(\".type\").value = \"\";\n inner_refresh();\n }\n inner_refresh();\n this.canvas.parentNode.appendChild(panel2);\n return panel2;\n }\n checkPanels() {\n if (!this.canvas) return;\n const panels = this.canvas.parentNode.querySelectorAll(\".litegraph.dialog\");\n for (let i2 = 0; i2 < panels.length; ++i2) {\n const panel2 = panels[i2];\n if (!panel2.node)\n continue;\n if (!panel2.node.graph || panel2.graph != this.graph)\n panel2.close();\n }\n }\n getCanvasMenuOptions() {\n let options = null;\n if (this.getMenuOptions) {\n options = this.getMenuOptions();\n } else {\n options = [\n {\n content: \"Add Node\",\n has_submenu: true,\n // @ts-expect-error Might be broken? Or just param overlap\n callback: LGraphCanvas.onMenuAdd\n },\n { content: \"Add Group\", callback: LGraphCanvas.onGroupAdd }\n //{ content: \"Arrange\", callback: that.graph.arrange },\n //{content:\"Collapse All\", callback: LGraphCanvas.onMenuCollapseAll }\n ];\n if (Object.keys(this.selected_nodes).length > 1) {\n options.push({\n content: \"Align\",\n has_submenu: true,\n callback: LGraphCanvas.onGroupAlign\n });\n }\n if (this._graph_stack && this._graph_stack.length > 0) {\n options.push(null, {\n content: \"Close subgraph\",\n callback: this.closeSubgraph.bind(this)\n });\n }\n }\n const extra = this.getExtraMenuOptions?.(this, options);\n return extra ? options.concat(extra) : options;\n }\n //called by processContextMenu to extract the menu list\n getNodeMenuOptions(node2) {\n let options = null;\n if (node2.getMenuOptions) {\n options = node2.getMenuOptions(this);\n } else {\n options = [\n {\n content: \"Inputs\",\n has_submenu: true,\n disabled: true,\n callback: LGraphCanvas.showMenuNodeOptionalInputs\n },\n {\n content: \"Outputs\",\n has_submenu: true,\n disabled: true,\n callback: LGraphCanvas.showMenuNodeOptionalOutputs\n },\n null,\n {\n content: \"Properties\",\n has_submenu: true,\n callback: LGraphCanvas.onShowMenuNodeProperties\n },\n {\n content: \"Properties Panel\",\n callback: function(item, options2, e, menu, node3) {\n LGraphCanvas.active_canvas.showShowNodePanel(node3);\n }\n },\n null,\n {\n content: \"Title\",\n callback: LGraphCanvas.onShowPropertyEditor\n },\n {\n content: \"Mode\",\n has_submenu: true,\n callback: LGraphCanvas.onMenuNodeMode\n }\n ];\n if (node2.resizable !== false) {\n options.push({\n content: \"Resize\",\n callback: LGraphCanvas.onMenuResizeNode\n });\n }\n if (node2.collapsible) {\n options.push({\n content: node2.collapsed ? \"Expand\" : \"Collapse\",\n callback: LGraphCanvas.onMenuNodeCollapse\n });\n }\n options.push(\n {\n content: node2.pinned ? \"Unpin\" : \"Pin\",\n callback: (...args) => {\n LGraphCanvas.onMenuNodePin(...args);\n for (const i2 in this.selected_nodes) {\n const node3 = this.selected_nodes[i2];\n node3.pin();\n }\n this.setDirty(true, true);\n }\n },\n {\n content: \"Colors\",\n has_submenu: true,\n callback: LGraphCanvas.onMenuNodeColors\n },\n {\n content: \"Shapes\",\n has_submenu: true,\n callback: LGraphCanvas.onMenuNodeShapes\n },\n null\n );\n }\n const inputs = node2.onGetInputs?.();\n if (inputs?.length)\n options[0].disabled = false;\n const outputs = node2.onGetOutputs?.();\n if (outputs?.length)\n options[1].disabled = false;\n const extra = node2.getExtraMenuOptions?.(this, options);\n if (extra) {\n extra.push(null);\n options = extra.concat(options);\n }\n if (node2.clonable !== false) {\n options.push({\n content: \"Clone\",\n callback: LGraphCanvas.onMenuNodeClone\n });\n }\n if (Object.keys(this.selected_nodes).length > 1) {\n options.push({\n content: \"Align Selected To\",\n has_submenu: true,\n callback: LGraphCanvas.onNodeAlign\n });\n }\n options.push(null, {\n content: \"Remove\",\n disabled: !(node2.removable !== false && !node2.block_delete),\n callback: LGraphCanvas.onMenuNodeRemove\n });\n node2.graph?.onGetNodeMenuOptions?.(options, node2);\n return options;\n }\n getGroupMenuOptions(group) {\n console.warn(\"LGraphCanvas.getGroupMenuOptions is deprecated, use LGraphGroup.getMenuOptions instead\");\n return group.getMenuOptions();\n }\n processContextMenu(node2, event2) {\n const that2 = this;\n const canvas = LGraphCanvas.active_canvas;\n const ref_window2 = canvas.getCanvasWindow();\n let menu_info = null;\n const options = {\n event: event2,\n callback: inner_option_clicked,\n extra: node2\n };\n if (node2) options.title = node2.type;\n let slot = null;\n if (node2) {\n slot = node2.getSlotInPosition(event2.canvasX, event2.canvasY);\n LGraphCanvas.active_node = node2;\n }\n if (slot) {\n menu_info = [];\n if (node2.getSlotMenuOptions) {\n menu_info = node2.getSlotMenuOptions(slot);\n } else {\n if (slot?.output?.links?.length)\n menu_info.push({ content: \"Disconnect Links\", slot });\n const _slot = slot.input || slot.output;\n if (_slot.removable) {\n menu_info.push(\n _slot.locked ? \"Cannot remove\" : { content: \"Remove Slot\", slot }\n );\n }\n if (!_slot.nameLocked)\n menu_info.push({ content: \"Rename Slot\", slot });\n }\n options.title = (slot.input ? slot.input.type : slot.output.type) || \"*\";\n if (slot.input && slot.input.type == LiteGraph.ACTION)\n options.title = \"Action\";\n if (slot.output && slot.output.type == LiteGraph.EVENT)\n options.title = \"Event\";\n } else if (node2) {\n menu_info = this.getNodeMenuOptions(node2);\n } else {\n menu_info = this.getCanvasMenuOptions();\n const group = this.graph.getGroupOnPos(\n event2.canvasX,\n event2.canvasY\n );\n if (group) {\n menu_info.push(null, {\n content: \"Edit Group\",\n has_submenu: true,\n submenu: {\n title: \"Group\",\n extra: group,\n options: group.getMenuOptions()\n }\n });\n }\n }\n if (!menu_info)\n return;\n new LiteGraph.ContextMenu(menu_info, options, ref_window2);\n function inner_option_clicked(v2, options2) {\n if (!v2) return;\n if (v2.content == \"Remove Slot\") {\n const info = v2.slot;\n node2.graph.beforeChange();\n if (info.input) {\n node2.removeInput(info.slot);\n } else if (info.output) {\n node2.removeOutput(info.slot);\n }\n node2.graph.afterChange();\n return;\n } else if (v2.content == \"Disconnect Links\") {\n const info = v2.slot;\n node2.graph.beforeChange();\n if (info.output) {\n node2.disconnectOutput(info.slot);\n } else if (info.input) {\n node2.disconnectInput(info.slot);\n }\n node2.graph.afterChange();\n return;\n } else if (v2.content == \"Rename Slot\") {\n const info = v2.slot;\n const slot_info = info.input ? node2.getInputInfo(info.slot) : node2.getOutputInfo(info.slot);\n const dialog = that2.createDialog(\n \"Name\",\n options2\n );\n const input = dialog.querySelector(\"input\");\n if (input && slot_info) {\n input.value = slot_info.label || \"\";\n }\n const inner = function() {\n node2.graph.beforeChange();\n if (input.value) {\n if (slot_info) {\n slot_info.label = input.value;\n }\n that2.setDirty(true);\n }\n dialog.close();\n node2.graph.afterChange();\n };\n dialog.querySelector(\"button\").addEventListener(\"click\", inner);\n input.addEventListener(\"keydown\", function(e) {\n dialog.is_modified = true;\n if (e.keyCode == 27) {\n dialog.close();\n } else if (e.keyCode == 13) {\n inner();\n } else if (e.keyCode != 13 && e.target.localName != \"textarea\") {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n });\n input.focus();\n }\n }\n }\n}\nclass LGraphGroup {\n color;\n title;\n font;\n font_size;\n _bounding;\n _pos;\n _size;\n _nodes;\n graph;\n flags;\n constructor(title) {\n this._ctor(title);\n }\n _ctor(title) {\n this.title = title || \"Group\";\n this.font_size = LiteGraph.DEFAULT_GROUP_FONT || 24;\n this.color = LGraphCanvas.node_colors.pale_blue ? LGraphCanvas.node_colors.pale_blue.groupcolor : \"#AAA\";\n this._bounding = new Float32Array([10, 10, 140, 80]);\n this._pos = this._bounding.subarray(0, 2);\n this._size = this._bounding.subarray(2, 4);\n this._nodes = [];\n this.graph = null;\n this.flags = {};\n }\n /** Position of the group, as x,y co-ordinates in graph space */\n get pos() {\n return this._pos;\n }\n set pos(v2) {\n if (!v2 || v2.length < 2) return;\n this._pos[0] = v2[0];\n this._pos[1] = v2[1];\n }\n /** Size of the group, as width,height in graph units */\n get size() {\n return this._size;\n }\n set size(v2) {\n if (!v2 || v2.length < 2) return;\n this._size[0] = Math.max(140, v2[0]);\n this._size[1] = Math.max(80, v2[1]);\n }\n get nodes() {\n return this._nodes;\n }\n get titleHeight() {\n return this.font_size * 1.4;\n }\n get selected() {\n return !!this.graph?.list_of_graphcanvas?.some((c) => c.selected_group === this);\n }\n get pinned() {\n return !!this.flags.pinned;\n }\n pin() {\n this.flags.pinned = true;\n }\n unpin() {\n delete this.flags.pinned;\n }\n configure(o) {\n this.title = o.title;\n this._bounding.set(o.bounding);\n this.color = o.color;\n this.flags = o.flags || this.flags;\n if (o.font_size) this.font_size = o.font_size;\n }\n serialize() {\n const b = this._bounding;\n return {\n title: this.title,\n bounding: [\n Math.round(b[0]),\n Math.round(b[1]),\n Math.round(b[2]),\n Math.round(b[3])\n ],\n color: this.color,\n font_size: this.font_size,\n flags: this.flags\n };\n }\n /**\n * Draws the group on the canvas\n * @param {LGraphCanvas} graphCanvas\n * @param {CanvasRenderingContext2D} ctx\n */\n draw(graphCanvas, ctx) {\n const padding = 4;\n ctx.fillStyle = this.color;\n ctx.strokeStyle = this.color;\n const [x2, y2] = this._pos;\n const [width2, height] = this._size;\n ctx.globalAlpha = 0.25 * graphCanvas.editor_alpha;\n ctx.beginPath();\n ctx.rect(x2 + 0.5, y2 + 0.5, width2, height);\n ctx.fill();\n ctx.globalAlpha = graphCanvas.editor_alpha;\n ctx.stroke();\n ctx.beginPath();\n ctx.moveTo(x2 + width2, y2 + height);\n ctx.lineTo(x2 + width2 - 10, y2 + height);\n ctx.lineTo(x2 + width2, y2 + height - 10);\n ctx.fill();\n const font_size = this.font_size || LiteGraph.DEFAULT_GROUP_FONT_SIZE;\n ctx.font = font_size + \"px Arial\";\n ctx.textAlign = \"left\";\n ctx.fillText(this.title + (this.pinned ? \"📌\" : \"\"), x2 + padding, y2 + font_size);\n if (LiteGraph.highlight_selected_group && this.selected) {\n graphCanvas.drawSelectionBounding(ctx, this._bounding, {\n shape: LiteGraph.BOX_SHAPE,\n title_height: this.titleHeight,\n title_mode: LiteGraph.NORMAL_TITLE,\n fgcolor: this.color,\n padding\n });\n }\n }\n resize(width2, height) {\n if (this.pinned) return;\n this._size[0] = width2;\n this._size[1] = height;\n }\n move(deltax, deltay, ignore_nodes = false) {\n if (this.pinned) return;\n this._pos[0] += deltax;\n this._pos[1] += deltay;\n if (ignore_nodes) return;\n for (let i2 = 0; i2 < this._nodes.length; ++i2) {\n const node2 = this._nodes[i2];\n node2.pos[0] += deltax;\n node2.pos[1] += deltay;\n }\n }\n recomputeInsideNodes() {\n this._nodes.length = 0;\n const nodes = this.graph._nodes;\n const node_bounding = new Float32Array(4);\n for (let i2 = 0; i2 < nodes.length; ++i2) {\n const node2 = nodes[i2];\n node2.getBounding(node_bounding);\n if (!overlapBounding(this._bounding, node_bounding))\n continue;\n this._nodes.push(node2);\n }\n }\n /**\n * Add nodes to the group and adjust the group's position and size accordingly\n * @param {LGraphNode[]} nodes - The nodes to add to the group\n * @param {number} [padding=10] - The padding around the group\n * @returns {void}\n */\n addNodes(nodes, padding = 10) {\n if (!this._nodes && nodes.length === 0) return;\n const allNodes = [...this._nodes || [], ...nodes];\n const bounds = allNodes.reduce((acc, node2) => {\n const [x2, y2] = node2.pos;\n const [width2, height] = node2.size;\n const isReroute = node2.type === \"Reroute\";\n const isCollapsed = node2.flags?.collapsed;\n const top = y2 - (isReroute ? 0 : LiteGraph.NODE_TITLE_HEIGHT);\n const bottom = isCollapsed ? top + LiteGraph.NODE_TITLE_HEIGHT : y2 + height;\n const right = isCollapsed && node2._collapsed_width ? x2 + Math.round(node2._collapsed_width) : x2 + width2;\n return {\n left: Math.min(acc.left, x2),\n top: Math.min(acc.top, top),\n right: Math.max(acc.right, right),\n bottom: Math.max(acc.bottom, bottom)\n };\n }, { left: Infinity, top: Infinity, right: -Infinity, bottom: -Infinity });\n this.pos = [\n bounds.left - padding,\n bounds.top - padding - this.titleHeight\n ];\n this.size = [\n bounds.right - bounds.left + padding * 2,\n bounds.bottom - bounds.top + padding * 2 + this.titleHeight\n ];\n }\n getMenuOptions() {\n return [\n {\n content: this.pinned ? \"Unpin\" : \"Pin\",\n callback: () => {\n if (this.pinned) this.unpin();\n else this.pin();\n this.setDirtyCanvas(false, true);\n }\n },\n null,\n { content: \"Title\", callback: LGraphCanvas.onShowPropertyEditor },\n {\n content: \"Color\",\n has_submenu: true,\n callback: LGraphCanvas.onMenuNodeColors\n },\n {\n content: \"Font size\",\n property: \"font_size\",\n type: \"Number\",\n callback: LGraphCanvas.onShowPropertyEditor\n },\n null,\n { content: \"Remove\", callback: LGraphCanvas.onMenuNodeRemove }\n ];\n }\n isPointInside = LGraphNode.prototype.isPointInside;\n setDirtyCanvas = LGraphNode.prototype.setDirtyCanvas;\n}\nclass LGraph {\n //default supported types\n static supported_types = [\"number\", \"string\", \"boolean\"];\n static STATUS_STOPPED = 1;\n static STATUS_RUNNING = 2;\n _version;\n links;\n list_of_graphcanvas;\n status;\n last_node_id;\n last_link_id;\n /** The largest ID created by this graph */\n last_reroute_id;\n _nodes;\n _nodes_by_id;\n _nodes_in_order;\n _nodes_executable;\n _groups;\n iteration;\n globaltime;\n runningtime;\n fixedtime;\n fixedtime_lapse;\n elapsed_time;\n last_update_time;\n starttime;\n catch_errors;\n execution_timer_id;\n errors_in_execution;\n execution_time;\n _last_trigger_time;\n filter;\n _subgraph_node;\n config;\n vars;\n nodes_executing;\n nodes_actioning;\n nodes_executedAction;\n extra;\n inputs;\n outputs;\n _input_nodes;\n constructor(o) {\n if (LiteGraph.debug) console.log(\"Graph created\");\n this.list_of_graphcanvas = null;\n this.clear();\n if (o) this.configure(o);\n }\n // TODO: Remove\n //used to know which types of connections support this graph (some graphs do not allow certain types)\n getSupportedTypes() {\n return this.supported_types || LGraph.supported_types;\n }\n /**\n * Removes all nodes from this graph\n */\n clear() {\n this.stop();\n this.status = LGraph.STATUS_STOPPED;\n this.last_node_id = 0;\n this.last_link_id = 0;\n this._version = -1;\n if (this._nodes) {\n for (let i2 = 0; i2 < this._nodes.length; ++i2) {\n this._nodes[i2].onRemoved?.();\n }\n }\n this._nodes = [];\n this._nodes_by_id = {};\n this._nodes_in_order = [];\n this._nodes_executable = null;\n this._groups = [];\n this.links = {};\n this.iteration = 0;\n this.config = {};\n this.vars = {};\n this.extra = {};\n this.globaltime = 0;\n this.runningtime = 0;\n this.fixedtime = 0;\n this.fixedtime_lapse = 0.01;\n this.elapsed_time = 0.01;\n this.last_update_time = 0;\n this.starttime = 0;\n this.catch_errors = true;\n this.nodes_executing = [];\n this.nodes_actioning = [];\n this.nodes_executedAction = [];\n this.inputs = {};\n this.outputs = {};\n this.change();\n this.sendActionToCanvas(\"clear\");\n }\n get nodes() {\n return this._nodes;\n }\n get groups() {\n return this._groups;\n }\n /**\n * Attach Canvas to this graph\n * @param {GraphCanvas} graph_canvas\n */\n attachCanvas(graphcanvas) {\n if (graphcanvas.constructor != LGraphCanvas)\n throw \"attachCanvas expects a LGraphCanvas instance\";\n if (graphcanvas.graph != this)\n graphcanvas.graph?.detachCanvas(graphcanvas);\n graphcanvas.graph = this;\n this.list_of_graphcanvas ||= [];\n this.list_of_graphcanvas.push(graphcanvas);\n }\n /**\n * Detach Canvas from this graph\n * @param {GraphCanvas} graph_canvas\n */\n detachCanvas(graphcanvas) {\n if (!this.list_of_graphcanvas) return;\n const pos2 = this.list_of_graphcanvas.indexOf(graphcanvas);\n if (pos2 == -1) return;\n graphcanvas.graph = null;\n this.list_of_graphcanvas.splice(pos2, 1);\n }\n /**\n * Starts running this graph every interval milliseconds.\n * @param {number} interval amount of milliseconds between executions, if 0 then it renders to the monitor refresh rate\n */\n start(interval) {\n if (this.status == LGraph.STATUS_RUNNING) return;\n this.status = LGraph.STATUS_RUNNING;\n this.onPlayEvent?.();\n this.sendEventToAllNodes(\"onStart\");\n this.starttime = LiteGraph.getTime();\n this.last_update_time = this.starttime;\n interval ||= 0;\n const that2 = this;\n if (interval == 0 && typeof window != \"undefined\" && window.requestAnimationFrame) {\n let on_frame = function() {\n if (that2.execution_timer_id != -1) return;\n window.requestAnimationFrame(on_frame);\n that2.onBeforeStep?.();\n that2.runStep(1, !that2.catch_errors);\n that2.onAfterStep?.();\n };\n this.execution_timer_id = -1;\n on_frame();\n } else {\n this.execution_timer_id = setInterval(function() {\n that2.onBeforeStep?.();\n that2.runStep(1, !that2.catch_errors);\n that2.onAfterStep?.();\n }, interval);\n }\n }\n /**\n * Stops the execution loop of the graph\n */\n stop() {\n if (this.status == LGraph.STATUS_STOPPED) return;\n this.status = LGraph.STATUS_STOPPED;\n this.onStopEvent?.();\n if (this.execution_timer_id != null) {\n if (this.execution_timer_id != -1) {\n clearInterval(this.execution_timer_id);\n }\n this.execution_timer_id = null;\n }\n this.sendEventToAllNodes(\"onStop\");\n }\n /**\n * Run N steps (cycles) of the graph\n * @param {number} num number of steps to run, default is 1\n * @param {Boolean} do_not_catch_errors [optional] if you want to try/catch errors\n * @param {number} limit max number of nodes to execute (used to execute from start to a node)\n */\n runStep(num, do_not_catch_errors, limit) {\n num = num || 1;\n const start = LiteGraph.getTime();\n this.globaltime = 1e-3 * (start - this.starttime);\n const nodes = this._nodes_executable ? this._nodes_executable : this._nodes;\n if (!nodes) return;\n limit = limit || nodes.length;\n if (do_not_catch_errors) {\n for (let i2 = 0; i2 < num; i2++) {\n for (let j = 0; j < limit; ++j) {\n const node2 = nodes[j];\n if (node2.mode == LiteGraph.ALWAYS && node2.onExecute) {\n node2.doExecute?.();\n }\n }\n this.fixedtime += this.fixedtime_lapse;\n this.onExecuteStep?.();\n }\n this.onAfterExecute?.();\n } else {\n try {\n for (let i2 = 0; i2 < num; i2++) {\n for (let j = 0; j < limit; ++j) {\n const node2 = nodes[j];\n if (node2.mode == LiteGraph.ALWAYS) {\n node2.onExecute?.();\n }\n }\n this.fixedtime += this.fixedtime_lapse;\n this.onExecuteStep?.();\n }\n this.onAfterExecute?.();\n this.errors_in_execution = false;\n } catch (err) {\n this.errors_in_execution = true;\n if (LiteGraph.throw_errors) throw err;\n if (LiteGraph.debug) console.log(\"Error during execution: \" + err);\n this.stop();\n }\n }\n const now = LiteGraph.getTime();\n let elapsed = now - start;\n if (elapsed == 0) elapsed = 1;\n this.execution_time = 1e-3 * elapsed;\n this.globaltime += 1e-3 * elapsed;\n this.iteration += 1;\n this.elapsed_time = (now - this.last_update_time) * 1e-3;\n this.last_update_time = now;\n this.nodes_executing = [];\n this.nodes_actioning = [];\n this.nodes_executedAction = [];\n }\n /**\n * Updates the graph execution order according to relevance of the nodes (nodes with only outputs have more relevance than\n * nodes with only inputs.\n */\n updateExecutionOrder() {\n this._nodes_in_order = this.computeExecutionOrder(false);\n this._nodes_executable = [];\n for (let i2 = 0; i2 < this._nodes_in_order.length; ++i2) {\n if (this._nodes_in_order[i2].onExecute) {\n this._nodes_executable.push(this._nodes_in_order[i2]);\n }\n }\n }\n //This is more internal, it computes the executable nodes in order and returns it\n computeExecutionOrder(only_onExecute, set_level) {\n let L = [];\n const S = [];\n const M = {};\n const visited_links = {};\n const remaining_links = {};\n for (let i2 = 0, l2 = this._nodes.length; i2 < l2; ++i2) {\n const node2 = this._nodes[i2];\n if (only_onExecute && !node2.onExecute) {\n continue;\n }\n M[node2.id] = node2;\n let num = 0;\n if (node2.inputs) {\n for (let j = 0, l22 = node2.inputs.length; j < l22; j++) {\n if (node2.inputs[j]?.link != null) {\n num += 1;\n }\n }\n }\n if (num == 0) {\n S.push(node2);\n if (set_level) node2._level = 1;\n } else {\n if (set_level) node2._level = 0;\n remaining_links[node2.id] = num;\n }\n }\n while (true) {\n if (S.length == 0) break;\n const node2 = S.shift();\n L.push(node2);\n delete M[node2.id];\n if (!node2.outputs) continue;\n for (let i2 = 0; i2 < node2.outputs.length; i2++) {\n const output = node2.outputs[i2];\n if (output?.links == null || output.links.length == 0)\n continue;\n for (let j = 0; j < output.links.length; j++) {\n const link_id = output.links[j];\n const link = this.links[link_id];\n if (!link) continue;\n if (visited_links[link.id]) continue;\n const target_node = this.getNodeById(link.target_id);\n if (target_node == null) {\n visited_links[link.id] = true;\n continue;\n }\n if (set_level && (!target_node._level || target_node._level <= node2._level)) {\n target_node._level = node2._level + 1;\n }\n visited_links[link.id] = true;\n remaining_links[target_node.id] -= 1;\n if (remaining_links[target_node.id] == 0) S.push(target_node);\n }\n }\n }\n for (const i2 in M) {\n L.push(M[i2]);\n }\n if (L.length != this._nodes.length && LiteGraph.debug)\n console.warn(\"something went wrong, nodes missing\");\n const l = L.length;\n for (let i2 = 0; i2 < l; ++i2) {\n L[i2].order = i2;\n }\n L = L.sort(function(A, B) {\n const Ap = A.constructor.priority || A.priority || 0;\n const Bp = B.constructor.priority || B.priority || 0;\n return Ap == Bp ? A.order - B.order : Ap - Bp;\n });\n for (let i2 = 0; i2 < l; ++i2) {\n L[i2].order = i2;\n }\n return L;\n }\n /**\n * Returns all the nodes that could affect this one (ancestors) by crawling all the inputs recursively.\n * It doesn't include the node itself\n * @return {Array} an array with all the LGraphNodes that affect this node, in order of execution\n */\n getAncestors(node2) {\n const ancestors = [];\n const pending = [node2];\n const visited = {};\n while (pending.length) {\n const current = pending.shift();\n if (!current.inputs) continue;\n if (!visited[current.id] && current != node2) {\n visited[current.id] = true;\n ancestors.push(current);\n }\n for (let i2 = 0; i2 < current.inputs.length; ++i2) {\n const input = current.getInputNode(i2);\n if (input && ancestors.indexOf(input) == -1) {\n pending.push(input);\n }\n }\n }\n ancestors.sort(function(a, b) {\n return a.order - b.order;\n });\n return ancestors;\n }\n /**\n * Positions every node in a more readable manner\n */\n arrange(margin, layout) {\n margin = margin || 100;\n const nodes = this.computeExecutionOrder(false, true);\n const columns = [];\n for (let i2 = 0; i2 < nodes.length; ++i2) {\n const node2 = nodes[i2];\n const col = node2._level || 1;\n columns[col] ||= [];\n columns[col].push(node2);\n }\n let x2 = margin;\n for (let i2 = 0; i2 < columns.length; ++i2) {\n const column = columns[i2];\n if (!column) continue;\n let max_size = 100;\n let y2 = margin + LiteGraph.NODE_TITLE_HEIGHT;\n for (let j = 0; j < column.length; ++j) {\n const node2 = column[j];\n node2.pos[0] = layout == LiteGraph.VERTICAL_LAYOUT ? y2 : x2;\n node2.pos[1] = layout == LiteGraph.VERTICAL_LAYOUT ? x2 : y2;\n const max_size_index = layout == LiteGraph.VERTICAL_LAYOUT ? 1 : 0;\n if (node2.size[max_size_index] > max_size) {\n max_size = node2.size[max_size_index];\n }\n const node_size_index = layout == LiteGraph.VERTICAL_LAYOUT ? 0 : 1;\n y2 += node2.size[node_size_index] + margin + LiteGraph.NODE_TITLE_HEIGHT;\n }\n x2 += max_size + margin;\n }\n this.setDirtyCanvas(true, true);\n }\n /**\n * Returns the amount of time the graph has been running in milliseconds\n * @return {number} number of milliseconds the graph has been running\n */\n getTime() {\n return this.globaltime;\n }\n /**\n * Returns the amount of time accumulated using the fixedtime_lapse var. This is used in context where the time increments should be constant\n * @return {number} number of milliseconds the graph has been running\n */\n getFixedTime() {\n return this.fixedtime;\n }\n /**\n * Returns the amount of time it took to compute the latest iteration. Take into account that this number could be not correct\n * if the nodes are using graphical actions\n * @return {number} number of milliseconds it took the last cycle\n */\n getElapsedTime() {\n return this.elapsed_time;\n }\n /**\n * Sends an event to all the nodes, useful to trigger stuff\n * @param {String} eventname the name of the event (function to be called)\n * @param {Array} params parameters in array format\n */\n sendEventToAllNodes(eventname, params, mode) {\n mode = mode || LiteGraph.ALWAYS;\n const nodes = this._nodes_in_order ? this._nodes_in_order : this._nodes;\n if (!nodes) return;\n for (let j = 0, l = nodes.length; j < l; ++j) {\n const node2 = nodes[j];\n if (node2.constructor === LiteGraph.Subgraph && eventname != \"onExecute\") {\n if (node2.mode == mode) {\n node2.sendEventToAllNodes(eventname, params, mode);\n }\n continue;\n }\n if (!node2[eventname] || node2.mode != mode) continue;\n if (params === void 0) {\n node2[eventname]();\n } else if (params && params.constructor === Array) {\n node2[eventname].apply(node2, params);\n } else {\n node2[eventname](params);\n }\n }\n }\n sendActionToCanvas(action, params) {\n if (!this.list_of_graphcanvas) return;\n for (let i2 = 0; i2 < this.list_of_graphcanvas.length; ++i2) {\n const c = this.list_of_graphcanvas[i2];\n c[action]?.apply(c, params);\n }\n }\n /**\n * Adds a new node instance to this graph\n * @param {LGraphNode} node the instance of the node\n */\n add(node2, skip_compute_order) {\n if (!node2) return;\n if (node2 instanceof LGraphGroup) {\n this._groups.push(node2);\n this.setDirtyCanvas(true);\n this.change();\n node2.graph = this;\n this._version++;\n return;\n }\n if (node2.id != -1 && this._nodes_by_id[node2.id] != null) {\n console.warn(\n \"LiteGraph: there is already a node with this ID, changing it\"\n );\n node2.id = LiteGraph.use_uuids ? LiteGraph.uuidv4() : ++this.last_node_id;\n }\n if (this._nodes.length >= LiteGraph.MAX_NUMBER_OF_NODES) {\n throw \"LiteGraph: max number of nodes in a graph reached\";\n }\n if (LiteGraph.use_uuids) {\n if (node2.id == null || node2.id == -1)\n node2.id = LiteGraph.uuidv4();\n } else {\n if (node2.id == null || node2.id == -1) {\n node2.id = ++this.last_node_id;\n } else if (typeof node2.id === \"number\" && this.last_node_id < node2.id) {\n this.last_node_id = node2.id;\n }\n }\n node2.graph = this;\n this._version++;\n this._nodes.push(node2);\n this._nodes_by_id[node2.id] = node2;\n node2.onAdded?.(this);\n if (this.config.align_to_grid) node2.alignToGrid();\n if (!skip_compute_order) this.updateExecutionOrder();\n this.onNodeAdded?.(node2);\n this.setDirtyCanvas(true);\n this.change();\n return node2;\n }\n /**\n * Removes a node from the graph\n * @param {LGraphNode} node the instance of the node\n */\n remove(node2) {\n if (node2 instanceof LGraphGroup) {\n const index = this._groups.indexOf(node2);\n if (index != -1) {\n this._groups.splice(index, 1);\n }\n node2.graph = null;\n this._version++;\n this.setDirtyCanvas(true, true);\n this.change();\n return;\n }\n if (this._nodes_by_id[node2.id] == null) return;\n if (node2.ignore_remove) return;\n this.beforeChange();\n if (node2.inputs) {\n for (let i2 = 0; i2 < node2.inputs.length; i2++) {\n const slot = node2.inputs[i2];\n if (slot.link != null)\n node2.disconnectInput(i2);\n }\n }\n if (node2.outputs) {\n for (let i2 = 0; i2 < node2.outputs.length; i2++) {\n const slot = node2.outputs[i2];\n if (slot.links?.length)\n node2.disconnectOutput(i2);\n }\n }\n node2.onRemoved?.();\n node2.graph = null;\n this._version++;\n if (this.list_of_graphcanvas) {\n for (let i2 = 0; i2 < this.list_of_graphcanvas.length; ++i2) {\n const canvas = this.list_of_graphcanvas[i2];\n if (canvas.selected_nodes[node2.id])\n delete canvas.selected_nodes[node2.id];\n if (canvas.node_dragged == node2)\n canvas.node_dragged = null;\n }\n }\n const pos2 = this._nodes.indexOf(node2);\n if (pos2 != -1) this._nodes.splice(pos2, 1);\n delete this._nodes_by_id[node2.id];\n this.onNodeRemoved?.(node2);\n this.sendActionToCanvas(\"checkPanels\");\n this.setDirtyCanvas(true, true);\n this.afterChange();\n this.change();\n this.updateExecutionOrder();\n }\n /**\n * Returns a node by its id.\n * @param {Number} id\n */\n getNodeById(id) {\n return id != null ? this._nodes_by_id[id] : null;\n }\n /**\n * Returns a list of nodes that matches a class\n * @param {Class} classObject the class itself (not an string)\n * @return {Array} a list with all the nodes of this type\n */\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n findNodesByClass(classObject, result) {\n result = result || [];\n result.length = 0;\n for (let i2 = 0, l = this._nodes.length; i2 < l; ++i2) {\n if (this._nodes[i2].constructor === classObject)\n result.push(this._nodes[i2]);\n }\n return result;\n }\n /**\n * Returns a list of nodes that matches a type\n * @param {String} type the name of the node type\n * @return {Array} a list with all the nodes of this type\n */\n findNodesByType(type, result) {\n const matchType = type.toLowerCase();\n result = result || [];\n result.length = 0;\n for (let i2 = 0, l = this._nodes.length; i2 < l; ++i2) {\n if (this._nodes[i2].type.toLowerCase() == matchType)\n result.push(this._nodes[i2]);\n }\n return result;\n }\n /**\n * Returns the first node that matches a name in its title\n * @param {String} name the name of the node to search\n * @return {Node} the node or null\n */\n findNodeByTitle(title) {\n for (let i2 = 0, l = this._nodes.length; i2 < l; ++i2) {\n if (this._nodes[i2].title == title)\n return this._nodes[i2];\n }\n return null;\n }\n /**\n * Returns a list of nodes that matches a name\n * @param {String} name the name of the node to search\n * @return {Array} a list with all the nodes with this name\n */\n findNodesByTitle(title) {\n const result = [];\n for (let i2 = 0, l = this._nodes.length; i2 < l; ++i2) {\n if (this._nodes[i2].title == title)\n result.push(this._nodes[i2]);\n }\n return result;\n }\n /**\n * Returns the top-most node in this position of the canvas\n * @param {number} x the x coordinate in canvas space\n * @param {number} y the y coordinate in canvas space\n * @param {Array} nodes_list a list with all the nodes to search from, by default is all the nodes in the graph\n * @return {LGraphNode} the node at this position or null\n */\n getNodeOnPos(x2, y2, nodes_list, margin) {\n nodes_list = nodes_list || this._nodes;\n const nRet = null;\n for (let i2 = nodes_list.length - 1; i2 >= 0; i2--) {\n const n = nodes_list[i2];\n const skip_title = n.constructor.title_mode == LiteGraph.NO_TITLE;\n if (n.isPointInside(x2, y2, margin, skip_title)) {\n return n;\n }\n }\n return nRet;\n }\n /**\n * Returns the top-most group in that position\n * @param x The x coordinate in canvas space\n * @param y The y coordinate in canvas space\n * @return The group or null\n */\n getGroupOnPos(x2, y2, { margin = 2 } = {}) {\n return this._groups.reverse().find((g) => g.isPointInside(\n x2,\n y2,\n margin,\n /* skip_title */\n true\n ));\n }\n /**\n * Checks that the node type matches the node type registered, used when replacing a nodetype by a newer version during execution\n * this replaces the ones using the old version with the new version\n */\n checkNodeTypes() {\n for (let i2 = 0; i2 < this._nodes.length; i2++) {\n const node2 = this._nodes[i2];\n const ctor = LiteGraph.registered_node_types[node2.type];\n if (node2.constructor == ctor) continue;\n console.log(\"node being replaced by newer version: \" + node2.type);\n const newnode = LiteGraph.createNode(node2.type);\n this._nodes[i2] = newnode;\n newnode.configure(node2.serialize());\n newnode.graph = this;\n this._nodes_by_id[newnode.id] = newnode;\n if (node2.inputs) newnode.inputs = node2.inputs.concat();\n if (node2.outputs) newnode.outputs = node2.outputs.concat();\n }\n this.updateExecutionOrder();\n }\n // ********** GLOBALS *****************\n onAction(action, param, options) {\n this._input_nodes = this.findNodesByClass(\n // @ts-expect-error Never impl.\n LiteGraph.GraphInput,\n this._input_nodes\n );\n for (let i2 = 0; i2 < this._input_nodes.length; ++i2) {\n const node2 = this._input_nodes[i2];\n if (node2.properties.name != action) continue;\n node2.actionDo(action, param, options);\n break;\n }\n }\n trigger(action, param) {\n this.onTrigger?.(action, param);\n }\n /**\n * Tell this graph it has a global graph input of this type\n * @param {String} name\n * @param {String} type\n * @param {*} value [optional]\n */\n addInput(name, type, value) {\n const input = this.inputs[name];\n if (input) return;\n this.beforeChange();\n this.inputs[name] = { name, type, value };\n this._version++;\n this.afterChange();\n this.onInputAdded?.(name, type);\n this.onInputsOutputsChange?.();\n }\n /**\n * Assign a data to the global graph input\n * @param {String} name\n * @param {*} data\n */\n setInputData(name, data) {\n const input = this.inputs[name];\n if (!input) return;\n input.value = data;\n }\n /**\n * Returns the current value of a global graph input\n * @param {String} name\n * @return {*} the data\n */\n getInputData(name) {\n const input = this.inputs[name];\n return input ? input.value : null;\n }\n /**\n * Changes the name of a global graph input\n * @param {String} old_name\n * @param {String} new_name\n */\n renameInput(old_name, name) {\n if (name == old_name) return;\n if (!this.inputs[old_name]) return false;\n if (this.inputs[name]) {\n console.error(\"there is already one input with that name\");\n return false;\n }\n this.inputs[name] = this.inputs[old_name];\n delete this.inputs[old_name];\n this._version++;\n this.onInputRenamed?.(old_name, name);\n this.onInputsOutputsChange?.();\n }\n /**\n * Changes the type of a global graph input\n * @param {String} name\n * @param {String} type\n */\n changeInputType(name, type) {\n if (!this.inputs[name]) return false;\n if (this.inputs[name].type && String(this.inputs[name].type).toLowerCase() == String(type).toLowerCase()) {\n return;\n }\n this.inputs[name].type = type;\n this._version++;\n this.onInputTypeChanged?.(name, type);\n }\n /**\n * Removes a global graph input\n * @param {String} name\n * @param {String} type\n */\n removeInput(name) {\n if (!this.inputs[name]) return false;\n delete this.inputs[name];\n this._version++;\n this.onInputRemoved?.(name);\n this.onInputsOutputsChange?.();\n return true;\n }\n /**\n * Creates a global graph output\n * @param {String} name\n * @param {String} type\n * @param {*} value\n */\n addOutput(name, type, value) {\n this.outputs[name] = { name, type, value };\n this._version++;\n this.onOutputAdded?.(name, type);\n this.onInputsOutputsChange?.();\n }\n /**\n * Assign a data to the global output\n * @param {String} name\n * @param {String} value\n */\n setOutputData(name, value) {\n const output = this.outputs[name];\n if (!output) return;\n output.value = value;\n }\n /**\n * Returns the current value of a global graph output\n * @param {String} name\n * @return {*} the data\n */\n getOutputData(name) {\n const output = this.outputs[name];\n if (!output) return null;\n return output.value;\n }\n /**\n * Renames a global graph output\n * @param {String} old_name\n * @param {String} new_name\n */\n renameOutput(old_name, name) {\n if (!this.outputs[old_name]) return false;\n if (this.outputs[name]) {\n console.error(\"there is already one output with that name\");\n return false;\n }\n this.outputs[name] = this.outputs[old_name];\n delete this.outputs[old_name];\n this._version++;\n this.onOutputRenamed?.(old_name, name);\n this.onInputsOutputsChange?.();\n }\n /**\n * Changes the type of a global graph output\n * @param {String} name\n * @param {String} type\n */\n changeOutputType(name, type) {\n if (!this.outputs[name]) return false;\n if (this.outputs[name].type && String(this.outputs[name].type).toLowerCase() == String(type).toLowerCase()) {\n return;\n }\n this.outputs[name].type = type;\n this._version++;\n this.onOutputTypeChanged?.(name, type);\n }\n /**\n * Removes a global graph output\n * @param {String} name\n */\n removeOutput(name) {\n if (!this.outputs[name]) return false;\n delete this.outputs[name];\n this._version++;\n this.onOutputRemoved?.(name);\n this.onInputsOutputsChange?.();\n return true;\n }\n // TODO: Clean up - never implemented.\n triggerInput(name, value) {\n const nodes = this.findNodesByTitle(name);\n for (let i2 = 0; i2 < nodes.length; ++i2) {\n nodes[i2].onTrigger(value);\n }\n }\n // TODO: Clean up - never implemented.\n setCallback(name, func) {\n const nodes = this.findNodesByTitle(name);\n for (let i2 = 0; i2 < nodes.length; ++i2) {\n nodes[i2].setTrigger(func);\n }\n }\n //used for undo, called before any change is made to the graph\n beforeChange(info) {\n this.onBeforeChange?.(this, info);\n this.sendActionToCanvas(\"onBeforeChange\", this);\n }\n //used to resend actions, called after any change is made to the graph\n afterChange(info) {\n this.onAfterChange?.(this, info);\n this.sendActionToCanvas(\"onAfterChange\", this);\n }\n connectionChange(node2) {\n this.updateExecutionOrder();\n this.onConnectionChange?.(node2);\n this._version++;\n this.sendActionToCanvas(\"onConnectionChange\");\n }\n /**\n * returns if the graph is in live mode\n */\n isLive() {\n if (!this.list_of_graphcanvas) return false;\n for (let i2 = 0; i2 < this.list_of_graphcanvas.length; ++i2) {\n const c = this.list_of_graphcanvas[i2];\n if (c.live_mode) return true;\n }\n return false;\n }\n /**\n * clears the triggered slot animation in all links (stop visual animation)\n */\n clearTriggeredSlots() {\n for (const i2 in this.links) {\n const link_info = this.links[i2];\n if (!link_info) continue;\n if (link_info._last_time)\n link_info._last_time = 0;\n }\n }\n /* Called when something visually changed (not the graph!) */\n change() {\n if (LiteGraph.debug) {\n console.log(\"Graph changed\");\n }\n this.sendActionToCanvas(\"setDirty\", [true, true]);\n this.on_change?.(this);\n }\n setDirtyCanvas(fg, bg) {\n this.sendActionToCanvas(\"setDirty\", [fg, bg]);\n }\n /**\n * Destroys a link\n * @param {Number} link_id\n */\n removeLink(link_id) {\n const link = this.links[link_id];\n if (!link) return;\n const node2 = this.getNodeById(link.target_id);\n node2?.disconnectInput(link.target_slot);\n }\n //save and recover app state ***************************************\n /**\n * Creates a Object containing all the info about this graph, it can be serialized\n * @return {Object} value of the node\n */\n serialize(option) {\n const nodes = !LiteGraph.use_uuids && option?.sortNodes ? [...this._nodes].sort((a, b) => a.id - b.id) : this._nodes;\n const nodes_info = nodes.map((node2) => node2.serialize());\n const links = [];\n for (const linkId in this.links) {\n let link = this.links[linkId];\n if (!link.serialize) {\n console.warn(\n \"weird LLink bug, link info is not a LLink but a regular object\"\n );\n const link2 = new LLink();\n for (const j in link) {\n link2[j] = link[j];\n }\n this.links[linkId] = link2;\n link = link2;\n }\n links.push(link.serialize());\n }\n const groups_info = [];\n for (let i2 = 0; i2 < this._groups.length; ++i2) {\n groups_info.push(this._groups[i2].serialize());\n }\n const data = {\n last_node_id: this.last_node_id,\n last_link_id: this.last_link_id,\n nodes: nodes_info,\n links,\n groups: groups_info,\n config: this.config,\n extra: this.extra,\n version: LiteGraph.VERSION\n };\n this.onSerialize?.(data);\n return data;\n }\n /**\n * Configure a graph from a JSON string\n * @param {String} str configure a graph from a JSON string\n * @param {Boolean} returns if there was any error parsing\n */\n configure(data, keep_old) {\n if (!data) return;\n if (!keep_old) this.clear();\n const nodesData = data.nodes;\n if (Array.isArray(data.links)) {\n const links = [];\n for (const link_data of data.links) {\n if (!link_data) {\n console.warn(\"serialized graph link data contains errors, skipping.\");\n continue;\n }\n const link = new LLink();\n link.configure(link_data);\n links[link.id] = link;\n }\n data.links = links;\n }\n for (const i2 in data) {\n if (i2 == \"nodes\" || i2 == \"groups\")\n continue;\n this[i2] = data[i2];\n }\n let error = false;\n this._nodes = [];\n if (nodesData) {\n for (let i2 = 0, l = nodesData.length; i2 < l; ++i2) {\n const n_info = nodesData[i2];\n let node2 = LiteGraph.createNode(n_info.type, n_info.title);\n if (!node2) {\n if (LiteGraph.debug) console.log(\"Node not found or has errors: \" + n_info.type);\n node2 = new LGraphNode(void 0);\n node2.last_serialization = n_info;\n node2.has_errors = true;\n error = true;\n }\n node2.id = n_info.id;\n this.add(node2, true);\n }\n for (let i2 = 0, l = nodesData.length; i2 < l; ++i2) {\n const n_info = nodesData[i2];\n const node2 = this.getNodeById(n_info.id);\n node2?.configure(n_info);\n }\n }\n this._groups.length = 0;\n if (data.groups) {\n for (let i2 = 0; i2 < data.groups.length; ++i2) {\n const group = new LiteGraph.LGraphGroup();\n group.configure(data.groups[i2]);\n this.add(group);\n }\n }\n this.updateExecutionOrder();\n this.extra = data.extra || {};\n this.onConfigure?.(data);\n this._version++;\n this.setDirtyCanvas(true, true);\n return error;\n }\n load(url, callback) {\n const that2 = this;\n if (url instanceof Blob || url instanceof File) {\n const reader = new FileReader();\n reader.addEventListener(\"load\", function(event2) {\n const data = JSON.parse(event2.target.result.toString());\n that2.configure(data);\n callback?.();\n });\n reader.readAsText(url);\n return;\n }\n const req = new XMLHttpRequest();\n req.open(\"GET\", url, true);\n req.send(null);\n req.onload = function() {\n if (req.status !== 200) {\n console.error(\"Error loading graph:\", req.status, req.response);\n return;\n }\n const data = JSON.parse(req.response);\n that2.configure(data);\n callback?.();\n };\n req.onerror = function(err) {\n console.error(\"Error loading graph:\", err);\n };\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onNodeTrace(node2, msg) {\n }\n}\nclass ContextMenu {\n options;\n parentMenu;\n root;\n current_submenu;\n lock;\n constructor(values2, options) {\n options = options || {};\n this.options = options;\n var that2 = this;\n if (options.parentMenu) {\n if (!(options.parentMenu instanceof ContextMenu)) {\n console.error(\n \"parentMenu must be of class ContextMenu, ignoring it\"\n );\n options.parentMenu = null;\n } else {\n this.parentMenu = options.parentMenu;\n this.parentMenu.lock = true;\n this.parentMenu.current_submenu = this;\n }\n if (options.parentMenu.options?.className === \"dark\") {\n options.className = \"dark\";\n }\n }\n var eventClass = null;\n if (options.event)\n eventClass = options.event.constructor.name;\n if (eventClass !== \"MouseEvent\" && eventClass !== \"CustomEvent\" && eventClass !== \"PointerEvent\") {\n console.error(\n \"Event passed to ContextMenu is not of type MouseEvent or CustomEvent. Ignoring it. (\" + eventClass + \")\"\n );\n options.event = null;\n }\n var root = document.createElement(\"div\");\n root.className = \"litegraph litecontextmenu litemenubar-panel\";\n if (options.className) {\n root.className += \" \" + options.className;\n }\n root.style.minWidth = 100;\n root.style.minHeight = 100;\n root.style.pointerEvents = \"none\";\n setTimeout(function() {\n root.style.pointerEvents = \"auto\";\n }, 100);\n LiteGraph.pointerListenerAdd(\n root,\n \"up\",\n function(e) {\n e.preventDefault();\n return true;\n },\n true\n );\n root.addEventListener(\n \"contextmenu\",\n function(e) {\n if (e.button != 2) {\n return false;\n }\n e.preventDefault();\n return false;\n },\n true\n );\n LiteGraph.pointerListenerAdd(\n root,\n \"down\",\n function(e) {\n if (e.button == 2) {\n that2.close();\n e.preventDefault();\n return true;\n }\n },\n true\n );\n function on_mouse_wheel(e) {\n var pos2 = parseInt(root.style.top);\n root.style.top = (pos2 + e.deltaY * options.scroll_speed).toFixed() + \"px\";\n e.preventDefault();\n return true;\n }\n if (!options.scroll_speed) {\n options.scroll_speed = 0.1;\n }\n root.addEventListener(\"wheel\", on_mouse_wheel, true);\n root.addEventListener(\"mousewheel\", on_mouse_wheel, true);\n this.root = root;\n if (options.title) {\n var element = document.createElement(\"div\");\n element.className = \"litemenu-title\";\n element.innerHTML = options.title;\n root.appendChild(element);\n }\n for (var i2 = 0; i2 < values2.length; i2++) {\n var name = values2.constructor == Array ? values2[i2] : i2;\n if (name != null && name.constructor !== String) {\n name = name.content === void 0 ? String(name) : name.content;\n }\n var value = values2[i2];\n this.addItem(name, value, options);\n }\n LiteGraph.pointerListenerAdd(root, \"enter\", function(e) {\n if (root.closing_timer) {\n clearTimeout(root.closing_timer);\n }\n });\n var root_document = document;\n if (options.event) {\n root_document = options.event.target.ownerDocument;\n }\n if (!root_document) {\n root_document = document;\n }\n if (root_document.fullscreenElement)\n root_document.fullscreenElement.appendChild(root);\n else\n root_document.body.appendChild(root);\n var left = options.left || 0;\n var top = options.top || 0;\n if (options.event) {\n left = options.event.clientX - 10;\n top = options.event.clientY - 10;\n if (options.title) {\n top -= 20;\n }\n if (options.parentMenu) {\n var rect = options.parentMenu.root.getBoundingClientRect();\n left = rect.left + rect.width;\n }\n var body_rect = document.body.getBoundingClientRect();\n var root_rect = root.getBoundingClientRect();\n if (body_rect.height == 0)\n console.error(\"document.body height is 0. That is dangerous, set html,body { height: 100%; }\");\n if (body_rect.width && left > body_rect.width - root_rect.width - 10) {\n left = body_rect.width - root_rect.width - 10;\n }\n if (body_rect.height && top > body_rect.height - root_rect.height - 10) {\n top = body_rect.height - root_rect.height - 10;\n }\n }\n root.style.left = left + \"px\";\n root.style.top = top + \"px\";\n if (options.scale) {\n root.style.transform = \"scale(\" + options.scale + \")\";\n }\n }\n addItem(name, value, options) {\n var that2 = this;\n options = options || {};\n var element = document.createElement(\"div\");\n element.className = \"litemenu-entry submenu\";\n var disabled = false;\n if (value === null) {\n element.classList.add(\"separator\");\n } else {\n element.innerHTML = value && value.title ? value.title : name;\n element.value = value;\n element.setAttribute(\"role\", \"menuitem\");\n if (value) {\n if (value.disabled) {\n disabled = true;\n element.classList.add(\"disabled\");\n element.setAttribute(\"aria-disabled\", \"true\");\n }\n if (value.submenu || value.has_submenu) {\n element.classList.add(\"has_submenu\");\n element.setAttribute(\"aria-haspopup\", \"true\");\n element.setAttribute(\"aria-expanded\", \"false\");\n }\n }\n if (typeof value == \"function\") {\n element.dataset[\"value\"] = name;\n element.onclick_callback = value;\n } else {\n element.dataset[\"value\"] = value;\n }\n if (value.className) {\n element.className += \" \" + value.className;\n }\n }\n this.root.appendChild(element);\n if (!disabled) {\n element.addEventListener(\"click\", inner_onclick);\n }\n if (!disabled && options.autoopen) {\n LiteGraph.pointerListenerAdd(element, \"enter\", inner_over);\n }\n function setAriaExpanded() {\n const entries = that2.root.querySelectorAll(\"div.litemenu-entry.has_submenu\");\n if (entries) {\n for (let i2 = 0; i2 < entries.length; i2++) {\n entries[i2].setAttribute(\"aria-expanded\", \"false\");\n }\n }\n element.setAttribute(\"aria-expanded\", \"true\");\n }\n function inner_over(e) {\n var value2 = this.value;\n if (!value2 || !value2.has_submenu) {\n return;\n }\n inner_onclick.call(this, e);\n setAriaExpanded();\n }\n function inner_onclick(e) {\n var value2 = this.value;\n var close_parent = true;\n if (that2.current_submenu) {\n that2.current_submenu.close(e);\n }\n if (value2?.has_submenu || value2?.submenu) {\n setAriaExpanded();\n }\n if (options.callback) {\n var r = options.callback.call(\n this,\n value2,\n options,\n e,\n that2,\n options.node\n );\n if (r === true) {\n close_parent = false;\n }\n }\n if (value2) {\n if (value2.callback && !options.ignore_item_callbacks && value2.disabled !== true) {\n var r = value2.callback.call(\n this,\n value2,\n options,\n e,\n that2,\n options.extra\n );\n if (r === true) {\n close_parent = false;\n }\n }\n if (value2.submenu) {\n if (!value2.submenu.options) {\n throw \"ContextMenu submenu needs options\";\n }\n new that2.constructor(value2.submenu.options, {\n callback: value2.submenu.callback,\n event: e,\n parentMenu: that2,\n ignore_item_callbacks: value2.submenu.ignore_item_callbacks,\n title: value2.submenu.title,\n extra: value2.submenu.extra,\n autoopen: options.autoopen\n });\n close_parent = false;\n }\n }\n if (close_parent && !that2.lock) {\n that2.close();\n }\n }\n return element;\n }\n close(e, ignore_parent_menu) {\n if (this.root.parentNode) {\n this.root.parentNode.removeChild(this.root);\n }\n if (this.parentMenu && !ignore_parent_menu) {\n this.parentMenu.lock = false;\n this.parentMenu.current_submenu = null;\n if (e === void 0) {\n this.parentMenu.close();\n } else if (e && !ContextMenu.isCursorOverElement(e, this.parentMenu.root)) {\n ContextMenu.trigger(this.parentMenu.root, LiteGraph.pointerevents_method + \"leave\", e);\n }\n }\n if (this.current_submenu) {\n this.current_submenu.close(e, true);\n }\n if (this.root.closing_timer) {\n clearTimeout(this.root.closing_timer);\n }\n }\n //this code is used to trigger events easily (used in the context menu mouseleave\n static trigger(element, event_name, params, origin) {\n var evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(event_name, true, true, params);\n evt.srcElement = origin;\n if (element.dispatchEvent) {\n element.dispatchEvent(evt);\n } else if (element.__events) {\n element.__events.dispatchEvent(evt);\n }\n return evt;\n }\n //returns the top most menu\n getTopMenu() {\n if (this.options.parentMenu) {\n return this.options.parentMenu.getTopMenu();\n }\n return this;\n }\n getFirstEvent() {\n if (this.options.parentMenu) {\n return this.options.parentMenu.getFirstEvent();\n }\n return this.options.event;\n }\n static isCursorOverElement(event2, element) {\n var left = event2.clientX;\n var top = event2.clientY;\n var rect = element.getBoundingClientRect();\n if (!rect) {\n return false;\n }\n if (top > rect.top && top < rect.top + rect.height && left > rect.left && left < rect.left + rect.width) {\n return true;\n }\n return false;\n }\n}\nclass CurveEditor {\n constructor(points) {\n this.points = points;\n this.selected = -1;\n this.nearest = -1;\n this.size = null;\n this.must_update = true;\n this.margin = 5;\n }\n static sampleCurve(f, points) {\n if (!points)\n return;\n for (var i2 = 0; i2 < points.length - 1; ++i2) {\n var p = points[i2];\n var pn = points[i2 + 1];\n if (pn[0] < f)\n continue;\n var r = pn[0] - p[0];\n if (Math.abs(r) < 1e-5)\n return p[1];\n var local_f = (f - p[0]) / r;\n return p[1] * (1 - local_f) + pn[1] * local_f;\n }\n return 0;\n }\n draw(ctx, size, graphcanvas, background_color, line_color, inactive) {\n var points = this.points;\n if (!points)\n return;\n this.size = size;\n var w2 = size[0] - this.margin * 2;\n var h = size[1] - this.margin * 2;\n line_color = line_color || \"#666\";\n ctx.save();\n ctx.translate(this.margin, this.margin);\n if (background_color) {\n ctx.fillStyle = \"#111\";\n ctx.fillRect(0, 0, w2, h);\n ctx.fillStyle = \"#222\";\n ctx.fillRect(w2 * 0.5, 0, 1, h);\n ctx.strokeStyle = \"#333\";\n ctx.strokeRect(0, 0, w2, h);\n }\n ctx.strokeStyle = line_color;\n if (inactive)\n ctx.globalAlpha = 0.5;\n ctx.beginPath();\n for (var i2 = 0; i2 < points.length; ++i2) {\n var p = points[i2];\n ctx.lineTo(p[0] * w2, (1 - p[1]) * h);\n }\n ctx.stroke();\n ctx.globalAlpha = 1;\n if (!inactive)\n for (var i2 = 0; i2 < points.length; ++i2) {\n var p = points[i2];\n ctx.fillStyle = this.selected == i2 ? \"#FFF\" : this.nearest == i2 ? \"#DDD\" : \"#AAA\";\n ctx.beginPath();\n ctx.arc(p[0] * w2, (1 - p[1]) * h, 2, 0, Math.PI * 2);\n ctx.fill();\n }\n ctx.restore();\n }\n //localpos is mouse in curve editor space\n onMouseDown(localpos, graphcanvas) {\n var points = this.points;\n if (!points)\n return;\n if (localpos[1] < 0)\n return;\n var w2 = this.size[0] - this.margin * 2;\n var h = this.size[1] - this.margin * 2;\n var x2 = localpos[0] - this.margin;\n var y2 = localpos[1] - this.margin;\n var pos2 = [x2, y2];\n var max_dist = 30 / graphcanvas.ds.scale;\n this.selected = this.getCloserPoint(pos2, max_dist);\n if (this.selected == -1) {\n var point = [x2 / w2, 1 - y2 / h];\n points.push(point);\n points.sort(function(a, b) {\n return a[0] - b[0];\n });\n this.selected = points.indexOf(point);\n this.must_update = true;\n }\n if (this.selected != -1)\n return true;\n }\n onMouseMove(localpos, graphcanvas) {\n var points = this.points;\n if (!points)\n return;\n var s = this.selected;\n if (s < 0)\n return;\n var x2 = (localpos[0] - this.margin) / (this.size[0] - this.margin * 2);\n var y2 = (localpos[1] - this.margin) / (this.size[1] - this.margin * 2);\n var curvepos = [localpos[0] - this.margin, localpos[1] - this.margin];\n var max_dist = 30 / graphcanvas.ds.scale;\n this._nearest = this.getCloserPoint(curvepos, max_dist);\n var point = points[s];\n if (point) {\n var is_edge_point = s == 0 || s == points.length - 1;\n if (!is_edge_point && (localpos[0] < -10 || localpos[0] > this.size[0] + 10 || localpos[1] < -10 || localpos[1] > this.size[1] + 10)) {\n points.splice(s, 1);\n this.selected = -1;\n return;\n }\n if (!is_edge_point)\n point[0] = clamp(x2, 0, 1);\n else\n point[0] = s == 0 ? 0 : 1;\n point[1] = 1 - clamp(y2, 0, 1);\n points.sort(function(a, b) {\n return a[0] - b[0];\n });\n this.selected = points.indexOf(point);\n this.must_update = true;\n }\n }\n onMouseUp(localpos, graphcanvas) {\n this.selected = -1;\n return false;\n }\n getCloserPoint(pos2, max_dist) {\n var points = this.points;\n if (!points)\n return -1;\n max_dist = max_dist || 30;\n var w2 = this.size[0] - this.margin * 2;\n var h = this.size[1] - this.margin * 2;\n var num = points.length;\n var p2 = [0, 0];\n var min_dist = 1e6;\n var closest = -1;\n for (var i2 = 0; i2 < num; ++i2) {\n var p = points[i2];\n p2[0] = p[0] * w2;\n p2[1] = (1 - p[1]) * h;\n if (p2[0] < pos2[0])\n ;\n var dist = vec2.distance(pos2, p2);\n if (dist > min_dist || dist > max_dist)\n continue;\n closest = i2;\n min_dist = dist;\n }\n return closest;\n }\n}\nconst LiteGraph = new LiteGraphGlobal();\nLiteGraph.LGraph = LGraph;\nLiteGraph.LLink = LLink;\nLiteGraph.LGraphNode = LGraphNode;\nLiteGraph.LGraphGroup = LGraphGroup;\nLiteGraph.DragAndScale = DragAndScale;\nLiteGraph.LGraphCanvas = LGraphCanvas;\nLiteGraph.ContextMenu = ContextMenu;\nLiteGraph.CurveEditor = CurveEditor;\nfunction clamp(v2, a, b) {\n return a > v2 ? a : b < v2 ? b : v2;\n}\nloadPolyfills();\nexport {\n BadgePosition,\n ContextMenu,\n CurveEditor,\n DragAndScale,\n LGraph,\n LGraphBadge,\n LGraphCanvas,\n LGraphGroup,\n LGraphNode,\n LLink,\n LiteGraph,\n clamp\n};\n//# sourceMappingURL=litegraph.es.js.map\n","// @ts-strict-ignore\nimport { app, ANIM_PREVIEW_WIDGET } from './app'\nimport { LGraphCanvas, LGraphNode, LiteGraph } from '@comfyorg/litegraph'\nimport type { Vector4 } from '@comfyorg/litegraph'\n\nconst SIZE = Symbol()\n\ninterface Rect {\n height: number\n width: number\n x: number\n y: number\n}\n\nexport interface DOMWidget {\n type: string\n name: string\n computedHeight?: number\n element?: T\n options: any\n value?: any\n y?: number\n callback?: (value: any) => void\n draw?: (\n ctx: CanvasRenderingContext2D,\n node: LGraphNode,\n widgetWidth: number,\n y: number,\n widgetHeight: number\n ) => void\n onRemove?: () => void\n}\n\nfunction intersect(a: Rect, b: Rect): Vector4 | null {\n const x = Math.max(a.x, b.x)\n const num1 = Math.min(a.x + a.width, b.x + b.width)\n const y = Math.max(a.y, b.y)\n const num2 = Math.min(a.y + a.height, b.y + b.height)\n if (num1 >= x && num2 >= y) return [x, y, num1 - x, num2 - y]\n else return null\n}\n\nfunction getClipPath(\n node: LGraphNode,\n element: HTMLElement,\n canvasRect: DOMRect\n): string {\n const selectedNode: LGraphNode = Object.values(\n app.canvas.selected_nodes\n )[0] as LGraphNode\n if (selectedNode && selectedNode !== node) {\n const elRect = element.getBoundingClientRect()\n const MARGIN = 7\n const scale = app.canvas.ds.scale\n\n const bounding = selectedNode.getBounding()\n const intersection = intersect(\n {\n x: elRect.x / scale - canvasRect.left,\n y: elRect.y / scale - canvasRect.top,\n width: elRect.width / scale,\n height: elRect.height / scale\n },\n {\n x: selectedNode.pos[0] + app.canvas.ds.offset[0] - MARGIN,\n y:\n selectedNode.pos[1] +\n app.canvas.ds.offset[1] -\n LiteGraph.NODE_TITLE_HEIGHT -\n MARGIN,\n width: bounding[2] + MARGIN + MARGIN,\n height: bounding[3] + MARGIN + MARGIN\n }\n )\n\n if (!intersection) {\n return ''\n }\n\n const clipX = canvasRect.left + intersection[0] - elRect.x / scale + 'px'\n const clipY = canvasRect.top + intersection[1] - elRect.y / scale + 'px'\n const clipWidth = intersection[2] + 'px'\n const clipHeight = intersection[3] + 'px'\n const path = `polygon(0% 0%, 0% 100%, ${clipX} 100%, ${clipX} ${clipY}, calc(${clipX} + ${clipWidth}) ${clipY}, calc(${clipX} + ${clipWidth}) calc(${clipY} + ${clipHeight}), ${clipX} calc(${clipY} + ${clipHeight}), ${clipX} 100%, 100% 100%, 100% 0%)`\n return path\n }\n return ''\n}\n\nfunction computeSize(size: [number, number]): void {\n if (this.widgets?.[0]?.last_y == null) return\n\n let y = this.widgets[0].last_y\n let freeSpace = size[1] - y\n\n let widgetHeight = 0\n let dom = []\n for (const w of this.widgets) {\n if (w.type === 'converted-widget') {\n // Ignore\n delete w.computedHeight\n } else if (w.computeSize) {\n widgetHeight += w.computeSize()[1] + 4\n } else if (w.element) {\n // Extract DOM widget size info\n const styles = getComputedStyle(w.element)\n let minHeight =\n w.options.getMinHeight?.() ??\n parseInt(styles.getPropertyValue('--comfy-widget-min-height'))\n let maxHeight =\n w.options.getMaxHeight?.() ??\n parseInt(styles.getPropertyValue('--comfy-widget-max-height'))\n\n let prefHeight =\n w.options.getHeight?.() ??\n styles.getPropertyValue('--comfy-widget-height')\n if (prefHeight.endsWith?.('%')) {\n prefHeight =\n size[1] *\n (parseFloat(prefHeight.substring(0, prefHeight.length - 1)) / 100)\n } else {\n prefHeight = parseInt(prefHeight)\n if (isNaN(minHeight)) {\n minHeight = prefHeight\n }\n }\n if (isNaN(minHeight)) {\n minHeight = 50\n }\n if (!isNaN(maxHeight)) {\n if (!isNaN(prefHeight)) {\n prefHeight = Math.min(prefHeight, maxHeight)\n } else {\n prefHeight = maxHeight\n }\n }\n dom.push({\n minHeight,\n prefHeight,\n w\n })\n } else {\n widgetHeight += LiteGraph.NODE_WIDGET_HEIGHT + 4\n }\n }\n\n freeSpace -= widgetHeight\n\n // Calculate sizes with all widgets at their min height\n const prefGrow = [] // Nodes that want to grow to their prefd size\n const canGrow = [] // Nodes that can grow to auto size\n let growBy = 0\n for (const d of dom) {\n freeSpace -= d.minHeight\n if (isNaN(d.prefHeight)) {\n canGrow.push(d)\n d.w.computedHeight = d.minHeight\n } else {\n const diff = d.prefHeight - d.minHeight\n if (diff > 0) {\n prefGrow.push(d)\n growBy += diff\n d.diff = diff\n } else {\n d.w.computedHeight = d.minHeight\n }\n }\n }\n\n if (this.imgs && !this.widgets.find((w) => w.name === ANIM_PREVIEW_WIDGET)) {\n // Allocate space for image\n freeSpace -= 220\n }\n\n this.freeWidgetSpace = freeSpace\n\n if (freeSpace < 0) {\n // Not enough space for all widgets so we need to grow\n size[1] -= freeSpace\n this.graph.setDirtyCanvas(true)\n } else {\n // Share the space between each\n const growDiff = freeSpace - growBy\n if (growDiff > 0) {\n // All pref sizes can be fulfilled\n freeSpace = growDiff\n for (const d of prefGrow) {\n d.w.computedHeight = d.prefHeight\n }\n } else {\n // We need to grow evenly\n const shared = -growDiff / prefGrow.length\n for (const d of prefGrow) {\n d.w.computedHeight = d.prefHeight - shared\n }\n freeSpace = 0\n }\n\n if (freeSpace > 0 && canGrow.length) {\n // Grow any that are auto height\n const shared = freeSpace / canGrow.length\n for (const d of canGrow) {\n d.w.computedHeight += shared\n }\n }\n }\n\n // Position each of the widgets\n for (const w of this.widgets) {\n w.y = y\n if (w.computedHeight) {\n y += w.computedHeight\n } else if (w.computeSize) {\n y += w.computeSize()[1] + 4\n } else {\n y += LiteGraph.NODE_WIDGET_HEIGHT + 4\n }\n }\n}\n\n// Override the compute visible nodes function to allow us to hide/show DOM elements when the node goes offscreen\nconst elementWidgets = new Set()\n//@ts-ignore\nconst computeVisibleNodes = LGraphCanvas.prototype.computeVisibleNodes\n//@ts-ignore\nLGraphCanvas.prototype.computeVisibleNodes = function (): LGraphNode[] {\n const visibleNodes = computeVisibleNodes.apply(this, arguments)\n\n for (const node of app.graph.nodes) {\n if (elementWidgets.has(node)) {\n const hidden = visibleNodes.indexOf(node) === -1\n for (const w of node.widgets) {\n if (w.element) {\n w.element.dataset.isInVisibleNodes = hidden ? 'false' : 'true'\n const shouldOtherwiseHide = w.element.dataset.shouldHide === 'true'\n const isCollapsed = w.element.dataset.collapsed === 'true'\n const wasHidden = w.element.hidden\n const actualHidden = hidden || shouldOtherwiseHide || isCollapsed\n w.element.hidden = actualHidden\n w.element.style.display = actualHidden ? 'none' : null\n if (actualHidden && !wasHidden) {\n w.options.onHide?.(w)\n }\n }\n }\n }\n }\n\n return visibleNodes\n}\n\nlet enableDomClipping = true\n\nexport function addDomClippingSetting(): void {\n app.ui.settings.addSetting({\n id: 'Comfy.DOMClippingEnabled',\n category: ['Comfy', 'Node', 'DOMClippingEnabled'],\n name: 'Enable DOM element clipping (enabling may reduce performance)',\n type: 'boolean',\n defaultValue: enableDomClipping,\n onChange(value) {\n enableDomClipping = !!value\n }\n })\n}\n\nLGraphNode.prototype.addDOMWidget = function (\n name: string,\n type: string,\n element: HTMLElement,\n options: Record\n): DOMWidget {\n options = { hideOnZoom: true, selectOn: ['focus', 'click'], ...options }\n\n if (!element.parentElement) {\n app.canvasContainer.append(element)\n }\n element.hidden = true\n element.style.display = 'none'\n\n let mouseDownHandler\n if (element.blur) {\n mouseDownHandler = (event) => {\n if (!element.contains(event.target)) {\n element.blur()\n }\n }\n document.addEventListener('mousedown', mouseDownHandler)\n }\n\n const { nodeData } = this.constructor\n const tooltip = (nodeData?.input.required?.[name] ??\n nodeData?.input.optional?.[name])?.[1]?.tooltip\n if (tooltip && !element.title) {\n element.title = tooltip\n }\n\n const widget: DOMWidget = {\n type,\n name,\n get value() {\n return options.getValue?.() ?? undefined\n },\n set value(v) {\n options.setValue?.(v)\n widget.callback?.(widget.value)\n },\n draw: function (\n ctx: CanvasRenderingContext2D,\n node: LGraphNode,\n widgetWidth: number,\n y: number,\n widgetHeight: number\n ) {\n if (widget.computedHeight == null) {\n computeSize.call(node, node.size)\n }\n\n const hidden =\n (!!options.hideOnZoom && app.canvas.ds.scale < 0.5) ||\n widget.computedHeight <= 0 ||\n widget.type === 'converted-widget' ||\n widget.type === 'hidden'\n element.dataset.shouldHide = hidden ? 'true' : 'false'\n const isInVisibleNodes = element.dataset.isInVisibleNodes === 'true'\n const isCollapsed = element.dataset.collapsed === 'true'\n const actualHidden = hidden || !isInVisibleNodes || isCollapsed\n const wasHidden = element.hidden\n element.hidden = actualHidden\n element.style.display = actualHidden ? 'none' : null\n if (actualHidden && !wasHidden) {\n widget.options.onHide?.(widget)\n }\n if (actualHidden) {\n return\n }\n\n const margin = 10\n const elRect = ctx.canvas.getBoundingClientRect()\n const transform = new DOMMatrix()\n .scaleSelf(\n elRect.width / ctx.canvas.width,\n elRect.height / ctx.canvas.height\n )\n .multiplySelf(ctx.getTransform())\n .translateSelf(margin, margin + y)\n\n const scale = new DOMMatrix().scaleSelf(transform.a, transform.d)\n\n Object.assign(element.style, {\n transformOrigin: '0 0',\n transform: scale,\n left: `${transform.a + transform.e}px`,\n top: `${transform.d + transform.f}px`,\n width: `${widgetWidth - margin * 2}px`,\n height: `${(widget.computedHeight ?? 50) - margin * 2}px`,\n position: 'absolute',\n zIndex: app.graph.nodes.indexOf(node),\n pointerEvents: app.canvas.read_only ? 'none' : 'auto'\n })\n\n if (enableDomClipping) {\n element.style.clipPath = getClipPath(node, element, elRect)\n element.style.willChange = 'clip-path'\n }\n\n this.options.onDraw?.(widget)\n },\n element,\n options,\n onRemove() {\n if (mouseDownHandler) {\n document.removeEventListener('mousedown', mouseDownHandler)\n }\n element.remove()\n }\n }\n\n for (const evt of options.selectOn) {\n element.addEventListener(evt, () => {\n app.canvas.selectNode(this)\n app.canvas.bringToFront(this)\n })\n }\n\n this.addCustomWidget(widget)\n elementWidgets.add(this)\n\n const collapse = this.collapse\n this.collapse = function () {\n collapse.apply(this, arguments)\n if (this.flags?.collapsed) {\n element.hidden = true\n element.style.display = 'none'\n }\n element.dataset.collapsed = this.flags?.collapsed ? 'true' : 'false'\n }\n\n const onRemoved = this.onRemoved\n this.onRemoved = function () {\n element.remove()\n elementWidgets.delete(this)\n onRemoved?.apply(this, arguments)\n }\n\n if (!this[SIZE]) {\n this[SIZE] = true\n const onResize = this.onResize\n this.onResize = function (size) {\n options.beforeResize?.call(widget, this)\n computeSize.call(this, size)\n onResize?.apply(this, arguments)\n options.afterResize?.call(widget, this)\n }\n }\n\n return widget\n}\n","// @ts-strict-ignore\nimport { api } from './api'\nimport './domWidget'\nimport type { ComfyApp } from './app'\nimport type { IWidget, LGraphNode } from '@comfyorg/litegraph'\nimport { InputSpec } from '@/types/apiTypes'\nimport { useSettingStore } from '@/stores/settingStore'\nimport { useToastStore } from '@/stores/toastStore'\n\nexport type ComfyWidgetConstructor = (\n node: LGraphNode,\n inputName: string,\n inputData: InputSpec,\n app?: ComfyApp,\n widgetName?: string\n) => { widget: IWidget; minWidth?: number; minHeight?: number }\n\nlet controlValueRunBefore = false\nexport function updateControlWidgetLabel(widget) {\n let replacement = 'after'\n let find = 'before'\n if (controlValueRunBefore) {\n ;[find, replacement] = [replacement, find]\n }\n widget.label = (widget.label ?? widget.name).replace(find, replacement)\n}\n\nconst IS_CONTROL_WIDGET = Symbol()\nconst HAS_EXECUTED = Symbol()\n\nfunction getNumberDefaults(\n inputData: InputSpec,\n defaultStep,\n precision,\n enable_rounding\n) {\n let defaultVal = inputData[1]['default']\n let { min, max, step, round } = inputData[1]\n\n if (defaultVal == undefined) defaultVal = 0\n if (min == undefined) min = 0\n if (max == undefined) max = 2048\n if (step == undefined) step = defaultStep\n // precision is the number of decimal places to show.\n // by default, display the the smallest number of decimal places such that changes of size step are visible.\n if (precision == undefined) {\n precision = Math.max(-Math.floor(Math.log10(step)), 0)\n }\n\n if (enable_rounding && (round == undefined || round === true)) {\n // by default, round the value to those decimal places shown.\n round = Math.round(1000000 * Math.pow(0.1, precision)) / 1000000\n }\n\n return {\n val: defaultVal,\n config: { min, max, step: 10.0 * step, round, precision }\n }\n}\n\nexport function addValueControlWidget(\n node,\n targetWidget,\n defaultValue = 'randomize',\n values,\n widgetName,\n inputData: InputSpec\n) {\n let name = inputData[1]?.control_after_generate\n if (typeof name !== 'string') {\n name = widgetName\n }\n const widgets = addValueControlWidgets(\n node,\n targetWidget,\n defaultValue,\n {\n addFilterList: false,\n controlAfterGenerateName: name\n },\n inputData\n )\n return widgets[0]\n}\n\nexport function addValueControlWidgets(\n node,\n targetWidget,\n defaultValue = 'randomize',\n options,\n inputData: InputSpec\n) {\n if (!defaultValue) defaultValue = 'randomize'\n if (!options) options = {}\n\n const getName = (defaultName, optionName) => {\n let name = defaultName\n if (options[optionName]) {\n name = options[optionName]\n } else if (typeof inputData?.[1]?.[defaultName] === 'string') {\n name = inputData?.[1]?.[defaultName]\n } else if (inputData?.[1]?.control_prefix) {\n name = inputData?.[1]?.control_prefix + ' ' + name\n }\n return name\n }\n\n const widgets = []\n const valueControl = node.addWidget(\n 'combo',\n getName('control_after_generate', 'controlAfterGenerateName'),\n defaultValue,\n function () {},\n {\n values: ['fixed', 'increment', 'decrement', 'randomize'],\n serialize: false // Don't include this in prompt.\n }\n )\n valueControl.tooltip =\n 'Allows the linked widget to be changed automatically, for example randomizing the noise seed.'\n valueControl[IS_CONTROL_WIDGET] = true\n updateControlWidgetLabel(valueControl)\n widgets.push(valueControl)\n\n const isCombo = targetWidget.type === 'combo'\n let comboFilter\n if (isCombo) {\n valueControl.options.values.push('increment-wrap')\n }\n if (isCombo && options.addFilterList !== false) {\n comboFilter = node.addWidget(\n 'string',\n getName('control_filter_list', 'controlFilterListName'),\n '',\n function () {},\n {\n serialize: false // Don't include this in prompt.\n }\n )\n updateControlWidgetLabel(comboFilter)\n comboFilter.tooltip =\n \"Allows for filtering the list of values when changing the value via the control generate mode. Allows for RegEx matches in the format /abc/ to only filter to values containing 'abc'.\"\n\n widgets.push(comboFilter)\n }\n\n const applyWidgetControl = () => {\n var v = valueControl.value\n\n if (isCombo && v !== 'fixed') {\n let values = targetWidget.options.values\n const filter = comboFilter?.value\n if (filter) {\n let check\n if (filter.startsWith('/') && filter.endsWith('/')) {\n try {\n const regex = new RegExp(filter.substring(1, filter.length - 1))\n check = (item) => regex.test(item)\n } catch (error) {\n console.error(\n 'Error constructing RegExp filter for node ' + node.id,\n filter,\n error\n )\n }\n }\n if (!check) {\n const lower = filter.toLocaleLowerCase()\n check = (item) => item.toLocaleLowerCase().includes(lower)\n }\n values = values.filter((item) => check(item))\n if (!values.length && targetWidget.options.values.length) {\n console.warn(\n 'Filter for node ' + node.id + ' has filtered out all items',\n filter\n )\n }\n }\n let current_index = values.indexOf(targetWidget.value)\n let current_length = values.length\n\n switch (v) {\n case 'increment':\n current_index += 1\n break\n case 'increment-wrap':\n current_index += 1\n if (current_index >= current_length) {\n current_index = 0\n }\n break\n case 'decrement':\n current_index -= 1\n break\n case 'randomize':\n current_index = Math.floor(Math.random() * current_length)\n break\n default:\n break\n }\n current_index = Math.max(0, current_index)\n current_index = Math.min(current_length - 1, current_index)\n if (current_index >= 0) {\n let value = values[current_index]\n targetWidget.value = value\n targetWidget.callback(value)\n }\n } else {\n //number\n let min = targetWidget.options.min\n let max = targetWidget.options.max\n // limit to something that javascript can handle\n max = Math.min(1125899906842624, max)\n min = Math.max(-1125899906842624, min)\n let range = (max - min) / (targetWidget.options.step / 10)\n\n //adjust values based on valueControl Behaviour\n switch (v) {\n case 'fixed':\n break\n case 'increment':\n targetWidget.value += targetWidget.options.step / 10\n break\n case 'decrement':\n targetWidget.value -= targetWidget.options.step / 10\n break\n case 'randomize':\n targetWidget.value =\n Math.floor(Math.random() * range) *\n (targetWidget.options.step / 10) +\n min\n break\n default:\n break\n }\n /*check if values are over or under their respective\n * ranges and set them to min or max.*/\n if (targetWidget.value < min) targetWidget.value = min\n\n if (targetWidget.value > max) targetWidget.value = max\n targetWidget.callback(targetWidget.value)\n }\n }\n\n valueControl.beforeQueued = () => {\n if (controlValueRunBefore) {\n // Don't run on first execution\n if (valueControl[HAS_EXECUTED]) {\n applyWidgetControl()\n }\n }\n valueControl[HAS_EXECUTED] = true\n }\n\n valueControl.afterQueued = () => {\n if (!controlValueRunBefore) {\n applyWidgetControl()\n }\n }\n\n return widgets\n}\n\nfunction seedWidget(node, inputName, inputData: InputSpec, app, widgetName) {\n const seed = createIntWidget(node, inputName, inputData, app, true)\n const seedControl = addValueControlWidget(\n node,\n seed.widget,\n 'randomize',\n undefined,\n widgetName,\n inputData\n )\n\n seed.widget.linkedWidgets = [seedControl]\n return seed\n}\n\nfunction createIntWidget(\n node,\n inputName,\n inputData: InputSpec,\n app,\n isSeedInput: boolean = false\n) {\n const control = inputData[1]?.control_after_generate\n if (!isSeedInput && control) {\n return seedWidget(\n node,\n inputName,\n inputData,\n app,\n typeof control === 'string' ? control : undefined\n )\n }\n\n let widgetType = isSlider(inputData[1]['display'], app)\n const { val, config } = getNumberDefaults(inputData, 1, 0, true)\n Object.assign(config, { precision: 0 })\n return {\n widget: node.addWidget(\n widgetType,\n inputName,\n val,\n function (v) {\n const s = this.options.step / 10\n let sh = this.options.min % s\n if (isNaN(sh)) {\n sh = 0\n }\n this.value = Math.round((v - sh) / s) * s + sh\n },\n config\n )\n }\n}\n\nfunction addMultilineWidget(node, name: string, opts, app: ComfyApp) {\n const inputEl = document.createElement('textarea')\n inputEl.className = 'comfy-multiline-input'\n inputEl.value = opts.defaultVal\n inputEl.placeholder = opts.placeholder || name\n if (app.vueAppReady) {\n inputEl.spellcheck = useSettingStore().get(\n 'Comfy.TextareaWidget.Spellcheck'\n )\n }\n\n const widget = node.addDOMWidget(name, 'customtext', inputEl, {\n getValue() {\n return inputEl.value\n },\n setValue(v) {\n inputEl.value = v\n }\n })\n widget.inputEl = inputEl\n\n inputEl.addEventListener('input', () => {\n widget.callback?.(widget.value)\n })\n\n return { minWidth: 400, minHeight: 200, widget }\n}\n\nfunction isSlider(display, app) {\n if (app.ui.settings.getSettingValue('Comfy.DisableSliders')) {\n return 'number'\n }\n\n return display === 'slider' ? 'slider' : 'number'\n}\n\nexport function initWidgets(app) {\n app.ui.settings.addSetting({\n id: 'Comfy.WidgetControlMode',\n category: ['Comfy', 'Node Widget', 'WidgetControlMode'],\n name: 'Widget control mode',\n tooltip:\n 'Controls when widget values are updated (randomize/increment/decrement), either before the prompt is queued or after.',\n type: 'combo',\n defaultValue: 'after',\n options: ['before', 'after'],\n onChange(value) {\n controlValueRunBefore = value === 'before'\n for (const n of app.graph.nodes) {\n if (!n.widgets) continue\n for (const w of n.widgets) {\n if (w[IS_CONTROL_WIDGET]) {\n updateControlWidgetLabel(w)\n if (w.linkedWidgets) {\n for (const l of w.linkedWidgets) {\n updateControlWidgetLabel(l)\n }\n }\n }\n }\n }\n app.graph.setDirtyCanvas(true)\n }\n })\n}\n\nexport const ComfyWidgets: Record = {\n 'INT:seed': seedWidget,\n 'INT:noise_seed': seedWidget,\n FLOAT(node, inputName, inputData: InputSpec, app) {\n let widgetType: 'number' | 'slider' = isSlider(inputData[1]['display'], app)\n let precision = app.ui.settings.getSettingValue(\n 'Comfy.FloatRoundingPrecision'\n )\n let disable_rounding = app.ui.settings.getSettingValue(\n 'Comfy.DisableFloatRounding'\n )\n if (precision == 0) precision = undefined\n const { val, config } = getNumberDefaults(\n inputData,\n 0.5,\n precision,\n !disable_rounding\n )\n return {\n widget: node.addWidget(\n widgetType,\n inputName,\n val,\n function (v) {\n if (config.round) {\n this.value =\n Math.round((v + Number.EPSILON) / config.round) * config.round\n if (this.value > config.max) this.value = config.max\n if (this.value < config.min) this.value = config.min\n } else {\n this.value = v\n }\n },\n config\n )\n }\n },\n INT(node, inputName, inputData: InputSpec, app) {\n return createIntWidget(node, inputName, inputData, app)\n },\n BOOLEAN(node, inputName, inputData) {\n let defaultVal = false\n let options = {}\n if (inputData[1]) {\n if (inputData[1].default) defaultVal = inputData[1].default\n if (inputData[1].label_on) options['on'] = inputData[1].label_on\n if (inputData[1].label_off) options['off'] = inputData[1].label_off\n }\n return {\n widget: node.addWidget('toggle', inputName, defaultVal, () => {}, options)\n }\n },\n STRING(node, inputName, inputData: InputSpec, app) {\n const defaultVal = inputData[1].default || ''\n const multiline = !!inputData[1].multiline\n\n let res\n if (multiline) {\n res = addMultilineWidget(\n node,\n inputName,\n { defaultVal, ...inputData[1] },\n app\n )\n } else {\n res = {\n widget: node.addWidget('text', inputName, defaultVal, () => {}, {})\n }\n }\n\n if (inputData[1].dynamicPrompts != undefined)\n res.widget.dynamicPrompts = inputData[1].dynamicPrompts\n\n return res\n },\n COMBO(node, inputName, inputData: InputSpec) {\n const type = inputData[0]\n let defaultValue = type[0]\n if (inputData[1] && inputData[1].default) {\n defaultValue = inputData[1].default\n }\n const res = {\n widget: node.addWidget('combo', inputName, defaultValue, () => {}, {\n values: type\n })\n }\n if (inputData[1]?.control_after_generate) {\n // TODO make combo handle a widget node type?\n res.widget.linkedWidgets = addValueControlWidgets(\n node,\n res.widget,\n undefined,\n undefined,\n inputData\n )\n }\n return res\n },\n IMAGEUPLOAD(node: LGraphNode, inputName: string, inputData: InputSpec, app) {\n // TODO make image upload handle a custom node type?\n const imageWidget = node.widgets.find(\n (w) => w.name === (inputData[1]?.widget ?? 'image')\n )\n let uploadWidget\n\n function showImage(name) {\n const img = new Image()\n img.onload = () => {\n // @ts-expect-error\n node.imgs = [img]\n app.graph.setDirtyCanvas(true)\n }\n let folder_separator = name.lastIndexOf('/')\n let subfolder = ''\n if (folder_separator > -1) {\n subfolder = name.substring(0, folder_separator)\n name = name.substring(folder_separator + 1)\n }\n img.src = api.apiURL(\n `/view?filename=${encodeURIComponent(name)}&type=input&subfolder=${subfolder}${app.getPreviewFormatParam()}${app.getRandParam()}`\n )\n // @ts-expect-error\n node.setSizeForImage?.()\n }\n\n var default_value = imageWidget.value\n Object.defineProperty(imageWidget, 'value', {\n set: function (value) {\n this._real_value = value\n },\n\n get: function () {\n if (!this._real_value) {\n return default_value\n }\n\n let value = this._real_value\n if (value.filename) {\n let real_value = value\n value = ''\n if (real_value.subfolder) {\n value = real_value.subfolder + '/'\n }\n\n value += real_value.filename\n\n if (real_value.type && real_value.type !== 'input')\n value += ` [${real_value.type}]`\n }\n return value\n }\n })\n\n // Add our own callback to the combo widget to render an image when it changes\n // TODO: Explain this?\n // @ts-expect-error\n const cb = node.callback\n imageWidget.callback = function () {\n showImage(imageWidget.value)\n if (cb) {\n return cb.apply(this, arguments)\n }\n }\n\n // On load if we have a value then render the image\n // The value isnt set immediately so we need to wait a moment\n // No change callbacks seem to be fired on initial setting of the value\n requestAnimationFrame(() => {\n if (imageWidget.value) {\n showImage(imageWidget.value)\n }\n })\n\n async function uploadFile(file, updateNode, pasted = false) {\n try {\n // Wrap file in formdata so it includes filename\n const body = new FormData()\n body.append('image', file)\n if (pasted) body.append('subfolder', 'pasted')\n const resp = await api.fetchApi('/upload/image', {\n method: 'POST',\n body\n })\n\n if (resp.status === 200) {\n const data = await resp.json()\n // Add the file to the dropdown list and update the widget value\n let path = data.name\n if (data.subfolder) path = data.subfolder + '/' + path\n\n if (!imageWidget.options.values.includes(path)) {\n imageWidget.options.values.push(path)\n }\n\n if (updateNode) {\n showImage(path)\n imageWidget.value = path\n }\n } else {\n useToastStore().addAlert(resp.status + ' - ' + resp.statusText)\n }\n } catch (error) {\n useToastStore().addAlert(error)\n }\n }\n\n const fileInput = document.createElement('input')\n Object.assign(fileInput, {\n type: 'file',\n accept: 'image/jpeg,image/png,image/webp',\n style: 'display: none',\n onchange: async () => {\n if (fileInput.files.length) {\n await uploadFile(fileInput.files[0], true)\n }\n }\n })\n document.body.append(fileInput)\n\n // Create the button widget for selecting the files\n uploadWidget = node.addWidget('button', inputName, 'image', () => {\n fileInput.click()\n })\n uploadWidget.label = 'choose file to upload'\n uploadWidget.serialize = false\n\n // Add handler to check if an image is being dragged over our node\n // @ts-expect-error\n node.onDragOver = function (e) {\n if (e.dataTransfer && e.dataTransfer.items) {\n const image = [...e.dataTransfer.items].find((f) => f.kind === 'file')\n return !!image\n }\n\n return false\n }\n\n // On drop upload files\n // @ts-expect-error\n node.onDragDrop = function (e) {\n console.log('onDragDrop called')\n let handled = false\n for (const file of e.dataTransfer.files) {\n if (file.type.startsWith('image/')) {\n uploadFile(file, !handled) // Dont await these, any order is fine, only update on first one\n handled = true\n }\n }\n\n return handled\n }\n\n // @ts-expect-error\n node.pasteFile = function (file) {\n if (file.type.startsWith('image/')) {\n const is_pasted =\n file.name === 'image.png' && file.lastModified - Date.now() < 2000\n uploadFile(file, true, is_pasted)\n return true\n }\n return false\n }\n\n return { widget: uploadWidget }\n }\n}\n","import type { ComfyWorkflowJSON } from '@/types/comfyWorkflow'\n\nexport const defaultGraph: ComfyWorkflowJSON = {\n last_node_id: 9,\n last_link_id: 9,\n nodes: [\n {\n id: 7,\n type: 'CLIPTextEncode',\n pos: [413, 389],\n size: [425.27801513671875, 180.6060791015625],\n flags: {},\n order: 3,\n mode: 0,\n inputs: [{ name: 'clip', type: 'CLIP', link: 5 }],\n outputs: [\n {\n name: 'CONDITIONING',\n type: 'CONDITIONING',\n links: [6],\n slot_index: 0\n }\n ],\n properties: {},\n widgets_values: ['text, watermark']\n },\n {\n id: 6,\n type: 'CLIPTextEncode',\n pos: [415, 186],\n size: [422.84503173828125, 164.31304931640625],\n flags: {},\n order: 2,\n mode: 0,\n inputs: [{ name: 'clip', type: 'CLIP', link: 3 }],\n outputs: [\n {\n name: 'CONDITIONING',\n type: 'CONDITIONING',\n links: [4],\n slot_index: 0\n }\n ],\n properties: {},\n widgets_values: [\n 'beautiful scenery nature glass bottle landscape, , purple galaxy bottle,'\n ]\n },\n {\n id: 5,\n type: 'EmptyLatentImage',\n pos: [473, 609],\n size: [315, 106],\n flags: {},\n order: 1,\n mode: 0,\n outputs: [{ name: 'LATENT', type: 'LATENT', links: [2], slot_index: 0 }],\n properties: {},\n widgets_values: [512, 512, 1]\n },\n {\n id: 3,\n type: 'KSampler',\n pos: [863, 186],\n size: [315, 262],\n flags: {},\n order: 4,\n mode: 0,\n inputs: [\n { name: 'model', type: 'MODEL', link: 1 },\n { name: 'positive', type: 'CONDITIONING', link: 4 },\n { name: 'negative', type: 'CONDITIONING', link: 6 },\n { name: 'latent_image', type: 'LATENT', link: 2 }\n ],\n outputs: [{ name: 'LATENT', type: 'LATENT', links: [7], slot_index: 0 }],\n properties: {},\n widgets_values: [156680208700286, true, 20, 8, 'euler', 'normal', 1]\n },\n {\n id: 8,\n type: 'VAEDecode',\n pos: [1209, 188],\n size: [210, 46],\n flags: {},\n order: 5,\n mode: 0,\n inputs: [\n { name: 'samples', type: 'LATENT', link: 7 },\n { name: 'vae', type: 'VAE', link: 8 }\n ],\n outputs: [{ name: 'IMAGE', type: 'IMAGE', links: [9], slot_index: 0 }],\n properties: {}\n },\n {\n id: 9,\n type: 'SaveImage',\n pos: [1451, 189],\n size: [210, 26],\n flags: {},\n order: 6,\n mode: 0,\n inputs: [{ name: 'images', type: 'IMAGE', link: 9 }],\n properties: {}\n },\n {\n id: 4,\n type: 'CheckpointLoaderSimple',\n pos: [26, 474],\n size: [315, 98],\n flags: {},\n order: 0,\n mode: 0,\n outputs: [\n { name: 'MODEL', type: 'MODEL', links: [1], slot_index: 0 },\n { name: 'CLIP', type: 'CLIP', links: [3, 5], slot_index: 1 },\n { name: 'VAE', type: 'VAE', links: [8], slot_index: 2 }\n ],\n properties: {},\n widgets_values: ['v1-5-pruned-emaonly.ckpt']\n }\n ],\n links: [\n [1, 4, 0, 3, 0, 'MODEL'],\n [2, 5, 0, 3, 3, 'LATENT'],\n [3, 4, 1, 6, 0, 'CLIP'],\n [4, 6, 0, 3, 1, 'CONDITIONING'],\n [5, 4, 1, 7, 0, 'CLIP'],\n [6, 7, 0, 3, 2, 'CONDITIONING'],\n [7, 3, 0, 8, 0, 'LATENT'],\n [8, 4, 2, 8, 1, 'VAE'],\n [9, 8, 0, 9, 0, 'IMAGE']\n ],\n groups: [],\n config: {},\n extra: {},\n version: 0.4\n}\n","// @ts-strict-ignore\nexport function getFromPngBuffer(buffer: ArrayBuffer) {\n // Get the PNG data as a Uint8Array\n const pngData = new Uint8Array(buffer)\n const dataView = new DataView(pngData.buffer)\n\n // Check that the PNG signature is present\n if (dataView.getUint32(0) !== 0x89504e47) {\n console.error('Not a valid PNG file')\n return\n }\n\n // Start searching for chunks after the PNG signature\n let offset = 8\n let txt_chunks: Record = {}\n // Loop through the chunks in the PNG file\n while (offset < pngData.length) {\n // Get the length of the chunk\n const length = dataView.getUint32(offset)\n // Get the chunk type\n const type = String.fromCharCode(...pngData.slice(offset + 4, offset + 8))\n if (type === 'tEXt' || type == 'comf' || type === 'iTXt') {\n // Get the keyword\n let keyword_end = offset + 8\n while (pngData[keyword_end] !== 0) {\n keyword_end++\n }\n const keyword = String.fromCharCode(\n ...pngData.slice(offset + 8, keyword_end)\n )\n // Get the text\n const contentArraySegment = pngData.slice(\n keyword_end + 1,\n offset + 8 + length\n )\n const contentJson = new TextDecoder('utf-8').decode(contentArraySegment)\n txt_chunks[keyword] = contentJson\n }\n\n offset += 12 + length\n }\n return txt_chunks\n}\n\nexport function getFromPngFile(file: File) {\n return new Promise>((r) => {\n const reader = new FileReader()\n reader.onload = (event) => {\n r(getFromPngBuffer(event.target.result as ArrayBuffer))\n }\n\n reader.readAsArrayBuffer(file)\n })\n}\n","// @ts-strict-ignore\nexport function getFromFlacBuffer(buffer: ArrayBuffer): Record {\n const dataView = new DataView(buffer)\n\n // Verify the FLAC signature\n const signature = String.fromCharCode(...new Uint8Array(buffer, 0, 4))\n if (signature !== 'fLaC') {\n console.error('Not a valid FLAC file')\n return\n }\n\n // Parse metadata blocks\n let offset = 4\n let vorbisComment = null\n while (offset < dataView.byteLength) {\n const isLastBlock = dataView.getUint8(offset) & 0x80\n const blockType = dataView.getUint8(offset) & 0x7f\n const blockSize = dataView.getUint32(offset, false) & 0xffffff\n offset += 4\n\n if (blockType === 4) {\n // Vorbis Comment block type\n vorbisComment = parseVorbisComment(\n new DataView(buffer, offset, blockSize)\n )\n }\n\n offset += blockSize\n if (isLastBlock) break\n }\n\n return vorbisComment\n}\n\nexport function getFromFlacFile(file: File): Promise> {\n return new Promise((r) => {\n const reader = new FileReader()\n reader.onload = function (event) {\n const arrayBuffer = event.target.result as ArrayBuffer\n r(getFromFlacBuffer(arrayBuffer))\n }\n reader.readAsArrayBuffer(file)\n })\n}\n\n// Function to parse the Vorbis Comment block\nfunction parseVorbisComment(dataView: DataView): Record {\n let offset = 0\n const vendorLength = dataView.getUint32(offset, true)\n offset += 4\n const vendorString = getString(dataView, offset, vendorLength)\n offset += vendorLength\n\n const userCommentListLength = dataView.getUint32(offset, true)\n offset += 4\n const comments = {}\n for (let i = 0; i < userCommentListLength; i++) {\n const commentLength = dataView.getUint32(offset, true)\n offset += 4\n const comment = getString(dataView, offset, commentLength)\n offset += commentLength\n\n const ind = comment.indexOf('=')\n const key = comment.substring(0, ind)\n\n comments[key] = comment.substring(ind + 1)\n }\n\n return comments\n}\n\nfunction getString(dataView: DataView, offset: number, length: number): string {\n let string = ''\n for (let i = 0; i < length; i++) {\n string += String.fromCharCode(dataView.getUint8(offset + i))\n }\n return string\n}\n","// @ts-strict-ignore\nimport { LiteGraph } from '@comfyorg/litegraph'\nimport { api } from './api'\nimport { getFromPngFile } from './metadata/png'\nimport { getFromFlacFile } from './metadata/flac'\n\n// Original functions left in for backwards compatibility\nexport function getPngMetadata(file: File): Promise> {\n return getFromPngFile(file)\n}\n\nexport function getFlacMetadata(file: File): Promise> {\n return getFromFlacFile(file)\n}\n\nfunction parseExifData(exifData) {\n // Check for the correct TIFF header (0x4949 for little-endian or 0x4D4D for big-endian)\n const isLittleEndian = String.fromCharCode(...exifData.slice(0, 2)) === 'II'\n\n // Function to read 16-bit and 32-bit integers from binary data\n function readInt(offset, isLittleEndian, length) {\n let arr = exifData.slice(offset, offset + length)\n if (length === 2) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength).getUint16(\n 0,\n isLittleEndian\n )\n } else if (length === 4) {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength).getUint32(\n 0,\n isLittleEndian\n )\n }\n }\n\n // Read the offset to the first IFD (Image File Directory)\n const ifdOffset = readInt(4, isLittleEndian, 4)\n\n function parseIFD(offset) {\n const numEntries = readInt(offset, isLittleEndian, 2)\n const result = {}\n\n for (let i = 0; i < numEntries; i++) {\n const entryOffset = offset + 2 + i * 12\n const tag = readInt(entryOffset, isLittleEndian, 2)\n const type = readInt(entryOffset + 2, isLittleEndian, 2)\n const numValues = readInt(entryOffset + 4, isLittleEndian, 4)\n const valueOffset = readInt(entryOffset + 8, isLittleEndian, 4)\n\n // Read the value(s) based on the data type\n let value\n if (type === 2) {\n // ASCII string\n value = new TextDecoder('utf-8').decode(\n exifData.subarray(valueOffset, valueOffset + numValues - 1)\n )\n }\n\n result[tag] = value\n }\n\n return result\n }\n\n // Parse the first IFD\n const ifdData = parseIFD(ifdOffset)\n return ifdData\n}\n\nfunction splitValues(input) {\n var output = {}\n for (var key in input) {\n var value = input[key]\n var splitValues = value.split(':', 2)\n output[splitValues[0]] = splitValues[1]\n }\n return output\n}\n\nexport function getWebpMetadata(file) {\n return new Promise>((r) => {\n const reader = new FileReader()\n reader.onload = (event) => {\n const webp = new Uint8Array(event.target.result as ArrayBuffer)\n const dataView = new DataView(webp.buffer)\n\n // Check that the WEBP signature is present\n if (\n dataView.getUint32(0) !== 0x52494646 ||\n dataView.getUint32(8) !== 0x57454250\n ) {\n console.error('Not a valid WEBP file')\n r({})\n return\n }\n\n // Start searching for chunks after the WEBP signature\n let offset = 12\n let txt_chunks = {}\n // Loop through the chunks in the WEBP file\n while (offset < webp.length) {\n const chunk_length = dataView.getUint32(offset + 4, true)\n const chunk_type = String.fromCharCode(\n ...webp.slice(offset, offset + 4)\n )\n if (chunk_type === 'EXIF') {\n if (\n String.fromCharCode(...webp.slice(offset + 8, offset + 8 + 6)) ==\n 'Exif\\0\\0'\n ) {\n offset += 6\n }\n let data = parseExifData(\n webp.slice(offset + 8, offset + 8 + chunk_length)\n )\n for (var key in data) {\n const value = data[key] as string\n if (typeof value === 'string') {\n const index = value.indexOf(':')\n txt_chunks[value.slice(0, index)] = value.slice(index + 1)\n }\n }\n break\n }\n\n offset += 8 + chunk_length\n }\n\n r(txt_chunks)\n }\n\n reader.readAsArrayBuffer(file)\n })\n}\n\nexport function getLatentMetadata(file) {\n return new Promise((r) => {\n const reader = new FileReader()\n reader.onload = (event) => {\n const safetensorsData = new Uint8Array(event.target.result as ArrayBuffer)\n const dataView = new DataView(safetensorsData.buffer)\n let header_size = dataView.getUint32(0, true)\n let offset = 8\n let header = JSON.parse(\n new TextDecoder().decode(\n safetensorsData.slice(offset, offset + header_size)\n )\n )\n r(header.__metadata__)\n }\n\n var slice = file.slice(0, 1024 * 1024 * 4)\n reader.readAsArrayBuffer(slice)\n })\n}\n\nexport async function importA1111(graph, parameters) {\n const p = parameters.lastIndexOf('\\nSteps:')\n if (p > -1) {\n const embeddings = await api.getEmbeddings()\n const opts = parameters\n .substr(p)\n .split('\\n')[1]\n .match(\n new RegExp('\\\\s*([^:]+:\\\\s*([^\"\\\\{].*?|\".*?\"|\\\\{.*?\\\\}))\\\\s*(,|$)', 'g')\n )\n .reduce((p, n) => {\n const s = n.split(':')\n if (s[1].endsWith(',')) {\n s[1] = s[1].substr(0, s[1].length - 1)\n }\n p[s[0].trim().toLowerCase()] = s[1].trim()\n return p\n }, {})\n const p2 = parameters.lastIndexOf('\\nNegative prompt:', p)\n if (p2 > -1) {\n let positive = parameters.substr(0, p2).trim()\n let negative = parameters.substring(p2 + 18, p).trim()\n\n const ckptNode = LiteGraph.createNode('CheckpointLoaderSimple')\n const clipSkipNode = LiteGraph.createNode('CLIPSetLastLayer')\n const positiveNode = LiteGraph.createNode('CLIPTextEncode')\n const negativeNode = LiteGraph.createNode('CLIPTextEncode')\n const samplerNode = LiteGraph.createNode('KSampler')\n const imageNode = LiteGraph.createNode('EmptyLatentImage')\n const vaeNode = LiteGraph.createNode('VAEDecode')\n const vaeLoaderNode = LiteGraph.createNode('VAELoader')\n const saveNode = LiteGraph.createNode('SaveImage')\n let hrSamplerNode = null\n let hrSteps = null\n\n const ceil64 = (v) => Math.ceil(v / 64) * 64\n\n const getWidget = (node, name) => {\n return node.widgets.find((w) => w.name === name)\n }\n\n const setWidgetValue = (node, name, value, isOptionPrefix?) => {\n const w = getWidget(node, name)\n if (isOptionPrefix) {\n const o = w.options.values.find((w) => w.startsWith(value))\n if (o) {\n w.value = o\n } else {\n console.warn(`Unknown value '${value}' for widget '${name}'`, node)\n w.value = value\n }\n } else {\n w.value = value\n }\n }\n\n const createLoraNodes = (clipNode, text, prevClip, prevModel) => {\n const loras = []\n text = text.replace(/]+)>/g, function (m, c) {\n const s = c.split(':')\n const weight = parseFloat(s[1])\n if (isNaN(weight)) {\n console.warn('Invalid LORA', m)\n } else {\n loras.push({ name: s[0], weight })\n }\n return ''\n })\n\n for (const l of loras) {\n const loraNode = LiteGraph.createNode('LoraLoader')\n graph.add(loraNode)\n setWidgetValue(loraNode, 'lora_name', l.name, true)\n setWidgetValue(loraNode, 'strength_model', l.weight)\n setWidgetValue(loraNode, 'strength_clip', l.weight)\n prevModel.node.connect(prevModel.index, loraNode, 0)\n prevClip.node.connect(prevClip.index, loraNode, 1)\n prevModel = { node: loraNode, index: 0 }\n prevClip = { node: loraNode, index: 1 }\n }\n\n prevClip.node.connect(1, clipNode, 0)\n prevModel.node.connect(0, samplerNode, 0)\n if (hrSamplerNode) {\n prevModel.node.connect(0, hrSamplerNode, 0)\n }\n\n return { text, prevModel, prevClip }\n }\n\n const replaceEmbeddings = (text) => {\n if (!embeddings.length) return text\n return text.replaceAll(\n new RegExp(\n '\\\\b(' +\n embeddings\n .map((e) => e.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'))\n .join('\\\\b|\\\\b') +\n ')\\\\b',\n 'ig'\n ),\n 'embedding:$1'\n )\n }\n\n const popOpt = (name) => {\n const v = opts[name]\n delete opts[name]\n return v\n }\n\n graph.clear()\n graph.add(ckptNode)\n graph.add(clipSkipNode)\n graph.add(positiveNode)\n graph.add(negativeNode)\n graph.add(samplerNode)\n graph.add(imageNode)\n graph.add(vaeNode)\n graph.add(vaeLoaderNode)\n graph.add(saveNode)\n\n ckptNode.connect(1, clipSkipNode, 0)\n clipSkipNode.connect(0, positiveNode, 0)\n clipSkipNode.connect(0, negativeNode, 0)\n ckptNode.connect(0, samplerNode, 0)\n positiveNode.connect(0, samplerNode, 1)\n negativeNode.connect(0, samplerNode, 2)\n imageNode.connect(0, samplerNode, 3)\n vaeNode.connect(0, saveNode, 0)\n samplerNode.connect(0, vaeNode, 0)\n vaeLoaderNode.connect(0, vaeNode, 1)\n\n const handlers = {\n model(v) {\n setWidgetValue(ckptNode, 'ckpt_name', v, true)\n },\n vae(v) {\n setWidgetValue(vaeLoaderNode, 'vae_name', v, true)\n },\n 'cfg scale'(v) {\n setWidgetValue(samplerNode, 'cfg', +v)\n },\n 'clip skip'(v) {\n setWidgetValue(clipSkipNode, 'stop_at_clip_layer', -v)\n },\n sampler(v) {\n let name = v.toLowerCase().replace('++', 'pp').replaceAll(' ', '_')\n if (name.includes('karras')) {\n name = name.replace('karras', '').replace(/_+$/, '')\n setWidgetValue(samplerNode, 'scheduler', 'karras')\n } else {\n setWidgetValue(samplerNode, 'scheduler', 'normal')\n }\n const w = getWidget(samplerNode, 'sampler_name')\n const o = w.options.values.find(\n (w) => w === name || w === 'sample_' + name\n )\n if (o) {\n setWidgetValue(samplerNode, 'sampler_name', o)\n }\n },\n size(v) {\n const wxh = v.split('x')\n const w = ceil64(+wxh[0])\n const h = ceil64(+wxh[1])\n const hrUp = popOpt('hires upscale')\n const hrSz = popOpt('hires resize')\n hrSteps = popOpt('hires steps')\n let hrMethod = popOpt('hires upscaler')\n\n setWidgetValue(imageNode, 'width', w)\n setWidgetValue(imageNode, 'height', h)\n\n if (hrUp || hrSz) {\n let uw, uh\n if (hrUp) {\n uw = w * hrUp\n uh = h * hrUp\n } else {\n const s = hrSz.split('x')\n uw = +s[0]\n uh = +s[1]\n }\n\n let upscaleNode\n let latentNode\n\n if (hrMethod.startsWith('Latent')) {\n latentNode = upscaleNode = LiteGraph.createNode('LatentUpscale')\n graph.add(upscaleNode)\n samplerNode.connect(0, upscaleNode, 0)\n\n switch (hrMethod) {\n case 'Latent (nearest-exact)':\n hrMethod = 'nearest-exact'\n break\n }\n setWidgetValue(upscaleNode, 'upscale_method', hrMethod, true)\n } else {\n const decode = LiteGraph.createNode('VAEDecodeTiled')\n graph.add(decode)\n samplerNode.connect(0, decode, 0)\n vaeLoaderNode.connect(0, decode, 1)\n\n const upscaleLoaderNode =\n LiteGraph.createNode('UpscaleModelLoader')\n graph.add(upscaleLoaderNode)\n setWidgetValue(upscaleLoaderNode, 'model_name', hrMethod, true)\n\n const modelUpscaleNode = LiteGraph.createNode(\n 'ImageUpscaleWithModel'\n )\n graph.add(modelUpscaleNode)\n decode.connect(0, modelUpscaleNode, 1)\n upscaleLoaderNode.connect(0, modelUpscaleNode, 0)\n\n upscaleNode = LiteGraph.createNode('ImageScale')\n graph.add(upscaleNode)\n modelUpscaleNode.connect(0, upscaleNode, 0)\n\n const vaeEncodeNode = (latentNode =\n LiteGraph.createNode('VAEEncodeTiled'))\n graph.add(vaeEncodeNode)\n upscaleNode.connect(0, vaeEncodeNode, 0)\n vaeLoaderNode.connect(0, vaeEncodeNode, 1)\n }\n\n setWidgetValue(upscaleNode, 'width', ceil64(uw))\n setWidgetValue(upscaleNode, 'height', ceil64(uh))\n\n hrSamplerNode = LiteGraph.createNode('KSampler')\n graph.add(hrSamplerNode)\n ckptNode.connect(0, hrSamplerNode, 0)\n positiveNode.connect(0, hrSamplerNode, 1)\n negativeNode.connect(0, hrSamplerNode, 2)\n latentNode.connect(0, hrSamplerNode, 3)\n hrSamplerNode.connect(0, vaeNode, 0)\n }\n },\n steps(v) {\n setWidgetValue(samplerNode, 'steps', +v)\n },\n seed(v) {\n setWidgetValue(samplerNode, 'seed', +v)\n }\n }\n\n for (const opt in opts) {\n if (opt in handlers) {\n handlers[opt](popOpt(opt))\n }\n }\n\n if (hrSamplerNode) {\n setWidgetValue(\n hrSamplerNode,\n 'steps',\n hrSteps ? +hrSteps : getWidget(samplerNode, 'steps').value\n )\n setWidgetValue(\n hrSamplerNode,\n 'cfg',\n getWidget(samplerNode, 'cfg').value\n )\n setWidgetValue(\n hrSamplerNode,\n 'scheduler',\n getWidget(samplerNode, 'scheduler').value\n )\n setWidgetValue(\n hrSamplerNode,\n 'sampler_name',\n getWidget(samplerNode, 'sampler_name').value\n )\n setWidgetValue(\n hrSamplerNode,\n 'denoise',\n +(popOpt('denoising strength') || '1')\n )\n }\n\n let n = createLoraNodes(\n positiveNode,\n positive,\n { node: clipSkipNode, index: 0 },\n { node: ckptNode, index: 0 }\n )\n positive = n.text\n n = createLoraNodes(negativeNode, negative, n.prevClip, n.prevModel)\n negative = n.text\n\n setWidgetValue(positiveNode, 'text', replaceEmbeddings(positive))\n setWidgetValue(negativeNode, 'text', replaceEmbeddings(negative))\n\n graph.arrange()\n\n for (const opt of [\n 'model hash',\n 'ensd',\n 'version',\n 'vae hash',\n 'ti hashes',\n 'lora hashes',\n 'hashes'\n ]) {\n delete opts[opt]\n }\n\n console.warn('Unhandled parameters:', opts)\n }\n }\n}\n","// @ts-strict-ignore\nimport { app } from '../app'\nimport { $el } from '../ui'\n\nexport function calculateImageGrid(imgs, dw, dh) {\n let best = 0\n let w = imgs[0].naturalWidth\n let h = imgs[0].naturalHeight\n const numImages = imgs.length\n\n let cellWidth, cellHeight, cols, rows, shiftX\n // compact style\n for (let c = 1; c <= numImages; c++) {\n const r = Math.ceil(numImages / c)\n const cW = dw / c\n const cH = dh / r\n const scaleX = cW / w\n const scaleY = cH / h\n\n const scale = Math.min(scaleX, scaleY, 1)\n const imageW = w * scale\n const imageH = h * scale\n const area = imageW * imageH * numImages\n\n if (area > best) {\n best = area\n cellWidth = imageW\n cellHeight = imageH\n cols = c\n rows = r\n shiftX = c * ((cW - imageW) / 2)\n }\n }\n\n return { cellWidth, cellHeight, cols, rows, shiftX }\n}\n\nexport function createImageHost(node) {\n const el = $el('div.comfy-img-preview')\n let currentImgs\n let first = true\n\n function updateSize() {\n let w = null\n let h = null\n\n if (currentImgs) {\n let elH = el.clientHeight\n if (first) {\n first = false\n // On first run, if we are small then grow a bit\n if (elH < 190) {\n elH = 190\n }\n el.style.setProperty('--comfy-widget-min-height', elH.toString())\n } else {\n el.style.setProperty('--comfy-widget-min-height', null)\n }\n\n const nw = node.size[0]\n ;({ cellWidth: w, cellHeight: h } = calculateImageGrid(\n currentImgs,\n nw - 20,\n elH\n ))\n w += 'px'\n h += 'px'\n\n el.style.setProperty('--comfy-img-preview-width', w)\n el.style.setProperty('--comfy-img-preview-height', h)\n }\n }\n return {\n el,\n updateImages(imgs) {\n if (imgs !== currentImgs) {\n if (currentImgs == null) {\n requestAnimationFrame(() => {\n updateSize()\n })\n }\n el.replaceChildren(...imgs)\n currentImgs = imgs\n node.onResize(node.size)\n node.graph.setDirtyCanvas(true, true)\n }\n },\n getHeight() {\n updateSize()\n },\n onDraw() {\n // Element from point uses a hittest find elements so we need to toggle pointer events\n el.style.pointerEvents = 'all'\n const over = document.elementFromPoint(\n app.canvas.mouse[0],\n app.canvas.mouse[1]\n )\n el.style.pointerEvents = 'none'\n\n if (!over) return\n // Set the overIndex so Open Image etc work\n const idx = currentImgs.indexOf(over)\n node.overIndex = idx\n }\n }\n}\n","// @ts-strict-ignore\n/*\n Original implementation:\n https://github.com/TahaSh/drag-to-reorder\n MIT License\n\n Copyright (c) 2023 Taha Shashtari\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n*/\n\nimport { $el } from '../ui'\n\n$el('style', {\n parent: document.head,\n textContent: `\n .draggable-item {\n position: relative;\n will-change: transform;\n user-select: none;\n }\n .draggable-item.is-idle {\n transition: 0.25s ease transform;\n }\n .draggable-item.is-draggable {\n z-index: 10;\n }\n `\n})\n\nexport class DraggableList extends EventTarget {\n listContainer\n draggableItem\n pointerStartX\n pointerStartY\n scrollYMax\n itemsGap = 0\n items = []\n itemSelector\n handleClass = 'drag-handle'\n off = []\n offDrag = []\n\n constructor(element, itemSelector) {\n super()\n this.listContainer = element\n this.itemSelector = itemSelector\n\n if (!this.listContainer) return\n\n this.off.push(this.on(this.listContainer, 'mousedown', this.dragStart))\n this.off.push(this.on(this.listContainer, 'touchstart', this.dragStart))\n this.off.push(this.on(document, 'mouseup', this.dragEnd))\n this.off.push(this.on(document, 'touchend', this.dragEnd))\n }\n\n getAllItems() {\n if (!this.items?.length) {\n this.items = Array.from(\n this.listContainer.querySelectorAll(this.itemSelector)\n )\n this.items.forEach((element) => {\n element.classList.add('is-idle')\n })\n }\n return this.items\n }\n\n getIdleItems() {\n return this.getAllItems().filter((item) =>\n item.classList.contains('is-idle')\n )\n }\n\n isItemAbove(item) {\n return item.hasAttribute('data-is-above')\n }\n\n isItemToggled(item) {\n return item.hasAttribute('data-is-toggled')\n }\n\n on(source, event, listener, options?) {\n listener = listener.bind(this)\n source.addEventListener(event, listener, options)\n return () => source.removeEventListener(event, listener)\n }\n\n dragStart(e) {\n if (e.target.classList.contains(this.handleClass)) {\n this.draggableItem = e.target.closest(this.itemSelector)\n }\n\n if (!this.draggableItem) return\n\n this.pointerStartX = e.clientX || e.touches[0].clientX\n this.pointerStartY = e.clientY || e.touches[0].clientY\n this.scrollYMax =\n this.listContainer.scrollHeight - this.listContainer.clientHeight\n\n this.setItemsGap()\n this.initDraggableItem()\n this.initItemsState()\n\n this.offDrag.push(this.on(document, 'mousemove', this.drag))\n this.offDrag.push(\n this.on(document, 'touchmove', this.drag, { passive: false })\n )\n\n this.dispatchEvent(\n new CustomEvent('dragstart', {\n detail: {\n element: this.draggableItem,\n position: this.getAllItems().indexOf(this.draggableItem)\n }\n })\n )\n }\n\n setItemsGap() {\n if (this.getIdleItems().length <= 1) {\n this.itemsGap = 0\n return\n }\n\n const item1 = this.getIdleItems()[0]\n const item2 = this.getIdleItems()[1]\n\n const item1Rect = item1.getBoundingClientRect()\n const item2Rect = item2.getBoundingClientRect()\n\n this.itemsGap = Math.abs(item1Rect.bottom - item2Rect.top)\n }\n\n initItemsState() {\n this.getIdleItems().forEach((item, i) => {\n if (this.getAllItems().indexOf(this.draggableItem) > i) {\n item.dataset.isAbove = ''\n }\n })\n }\n\n initDraggableItem() {\n this.draggableItem.classList.remove('is-idle')\n this.draggableItem.classList.add('is-draggable')\n }\n\n drag(e) {\n if (!this.draggableItem) return\n\n e.preventDefault()\n\n const clientX = e.clientX || e.touches[0].clientX\n const clientY = e.clientY || e.touches[0].clientY\n\n const listRect = this.listContainer.getBoundingClientRect()\n\n if (clientY > listRect.bottom) {\n if (this.listContainer.scrollTop < this.scrollYMax) {\n this.listContainer.scrollBy(0, 10)\n this.pointerStartY -= 10\n }\n } else if (clientY < listRect.top && this.listContainer.scrollTop > 0) {\n this.pointerStartY += 10\n this.listContainer.scrollBy(0, -10)\n }\n\n const pointerOffsetX = clientX - this.pointerStartX\n const pointerOffsetY = clientY - this.pointerStartY\n\n this.updateIdleItemsStateAndPosition()\n this.draggableItem.style.transform = `translate(${pointerOffsetX}px, ${pointerOffsetY}px)`\n }\n\n updateIdleItemsStateAndPosition() {\n const draggableItemRect = this.draggableItem.getBoundingClientRect()\n const draggableItemY = draggableItemRect.top + draggableItemRect.height / 2\n\n // Update state\n this.getIdleItems().forEach((item) => {\n const itemRect = item.getBoundingClientRect()\n const itemY = itemRect.top + itemRect.height / 2\n if (this.isItemAbove(item)) {\n if (draggableItemY <= itemY) {\n item.dataset.isToggled = ''\n } else {\n delete item.dataset.isToggled\n }\n } else {\n if (draggableItemY >= itemY) {\n item.dataset.isToggled = ''\n } else {\n delete item.dataset.isToggled\n }\n }\n })\n\n // Update position\n this.getIdleItems().forEach((item) => {\n if (this.isItemToggled(item)) {\n const direction = this.isItemAbove(item) ? 1 : -1\n item.style.transform = `translateY(${direction * (draggableItemRect.height + this.itemsGap)}px)`\n } else {\n item.style.transform = ''\n }\n })\n }\n\n dragEnd() {\n if (!this.draggableItem) return\n\n this.applyNewItemsOrder()\n this.cleanup()\n }\n\n applyNewItemsOrder() {\n const reorderedItems = []\n\n let oldPosition = -1\n this.getAllItems().forEach((item, index) => {\n if (item === this.draggableItem) {\n oldPosition = index\n return\n }\n if (!this.isItemToggled(item)) {\n reorderedItems[index] = item\n return\n }\n const newIndex = this.isItemAbove(item) ? index + 1 : index - 1\n reorderedItems[newIndex] = item\n })\n\n for (let index = 0; index < this.getAllItems().length; index++) {\n const item = reorderedItems[index]\n if (typeof item === 'undefined') {\n reorderedItems[index] = this.draggableItem\n }\n }\n\n reorderedItems.forEach((item) => {\n this.listContainer.appendChild(item)\n })\n\n this.items = reorderedItems\n\n this.dispatchEvent(\n new CustomEvent('dragend', {\n detail: {\n element: this.draggableItem,\n oldPosition,\n newPosition: reorderedItems.indexOf(this.draggableItem)\n }\n })\n )\n }\n\n cleanup() {\n this.itemsGap = 0\n this.items = []\n this.unsetDraggableItem()\n this.unsetItemState()\n\n this.offDrag.forEach((f) => f())\n this.offDrag = []\n }\n\n unsetDraggableItem() {\n this.draggableItem.style = null\n this.draggableItem.classList.remove('is-draggable')\n this.draggableItem.classList.add('is-idle')\n this.draggableItem = null\n }\n\n unsetItemState() {\n this.getIdleItems().forEach((item, i) => {\n delete item.dataset.isAbove\n delete item.dataset.isToggled\n item.style.transform = ''\n })\n }\n\n dispose() {\n this.off.forEach((f) => f())\n }\n}\n","// @ts-strict-ignore\nimport { api } from './api'\nimport type { ComfyApp } from './app'\nimport { $el } from './ui'\n\n// Simple date formatter\nconst parts = {\n d: (d) => d.getDate(),\n M: (d) => d.getMonth() + 1,\n h: (d) => d.getHours(),\n m: (d) => d.getMinutes(),\n s: (d) => d.getSeconds()\n}\nconst format =\n Object.keys(parts)\n .map((k) => k + k + '?')\n .join('|') + '|yyy?y?'\n\nfunction formatDate(text: string, date: Date) {\n return text.replace(new RegExp(format, 'g'), (text: string): string => {\n if (text === 'yy') return (date.getFullYear() + '').substring(2)\n if (text === 'yyyy') return date.getFullYear().toString()\n if (text[0] in parts) {\n const p = parts[text[0]](date)\n return (p + '').padStart(text.length, '0')\n }\n return text\n })\n}\n\nexport function clone(obj) {\n try {\n if (typeof structuredClone !== 'undefined') {\n return structuredClone(obj)\n }\n } catch (error) {\n // structuredClone is stricter than using JSON.parse/stringify so fallback to that\n }\n\n return JSON.parse(JSON.stringify(obj))\n}\n\nexport function applyTextReplacements(app: ComfyApp, value: string): string {\n return value.replace(/%([^%]+)%/g, function (match, text) {\n const split = text.split('.')\n if (split.length !== 2) {\n // Special handling for dates\n if (split[0].startsWith('date:')) {\n return formatDate(split[0].substring(5), new Date())\n }\n\n if (text !== 'width' && text !== 'height') {\n // Dont warn on standard replacements\n console.warn('Invalid replacement pattern', text)\n }\n return match\n }\n\n // Find node with matching S&R property name\n let nodes = app.graph.nodes.filter(\n (n) => n.properties?.['Node name for S&R'] === split[0]\n )\n // If we cant, see if there is a node with that title\n if (!nodes.length) {\n nodes = app.graph.nodes.filter((n) => n.title === split[0])\n }\n if (!nodes.length) {\n console.warn('Unable to find node', split[0])\n return match\n }\n\n if (nodes.length > 1) {\n console.warn('Multiple nodes matched', split[0], 'using first match')\n }\n\n const node = nodes[0]\n\n const widget = node.widgets?.find((w) => w.name === split[1])\n if (!widget) {\n console.warn('Unable to find widget', split[1], 'on node', split[0], node)\n return match\n }\n\n return ((widget.value ?? '') + '').replaceAll(/\\/|\\\\/g, '_')\n })\n}\n\nexport async function addStylesheet(\n urlOrFile: string,\n relativeTo?: string\n): Promise {\n return new Promise((res, rej) => {\n let url\n if (urlOrFile.endsWith('.js')) {\n url = urlOrFile.substr(0, urlOrFile.length - 2) + 'css'\n } else {\n url = new URL(\n urlOrFile,\n relativeTo ?? `${window.location.protocol}//${window.location.host}`\n ).toString()\n }\n $el('link', {\n parent: document.head,\n rel: 'stylesheet',\n type: 'text/css',\n href: url,\n onload: res,\n onerror: rej\n })\n })\n}\n\n/**\n * @param { string } filename\n * @param { Blob } blob\n */\nexport function downloadBlob(filename, blob) {\n const url = URL.createObjectURL(blob)\n const a = $el('a', {\n href: url,\n download: filename,\n style: { display: 'none' },\n parent: document.body\n })\n a.click()\n setTimeout(function () {\n a.remove()\n window.URL.revokeObjectURL(url)\n }, 0)\n}\n\nexport function prop(\n target: object,\n name: string,\n defaultValue: T,\n onChanged?: (\n currentValue: T,\n previousValue: T,\n target: object,\n name: string\n ) => void\n): T {\n let currentValue\n Object.defineProperty(target, name, {\n get() {\n return currentValue\n },\n set(newValue) {\n const prevValue = currentValue\n currentValue = newValue\n onChanged?.(currentValue, prevValue, target, name)\n }\n })\n return defaultValue\n}\n\nexport function getStorageValue(id: string) {\n const clientId = api.clientId ?? api.initialClientId\n return (\n (clientId && sessionStorage.getItem(`${id}:${clientId}`)) ??\n localStorage.getItem(id)\n )\n}\n\nexport function setStorageValue(id: string, value: string) {\n const clientId = api.clientId ?? api.initialClientId\n if (clientId) {\n sessionStorage.setItem(`${id}:${clientId}`, value)\n }\n localStorage.setItem(id, value)\n}\n","// @ts-strict-ignore\nimport { memoize } from 'lodash'\n\ntype RGB = { r: number; g: number; b: number }\ntype HSL = { h: number; s: number; l: number }\ntype HSLA = { h: number; s: number; l: number; a: number }\ntype ColorFormat = 'hex' | 'rgb' | 'rgba' | 'hsl' | 'hsla'\n\nexport interface ColorAdjustOptions {\n lightness?: number\n opacity?: number\n}\n\nfunction rgbToHsl({ r, g, b }: RGB): HSL {\n r /= 255\n g /= 255\n b /= 255\n const max = Math.max(r, g, b),\n min = Math.min(r, g, b)\n let h: number, s: number\n const l: number = (max + min) / 2\n\n if (max === min) {\n h = s = 0 // achromatic\n } else {\n const d = max - min\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min)\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0)\n break\n case g:\n h = (b - r) / d + 2\n break\n case b:\n h = (r - g) / d + 4\n break\n }\n h /= 6\n }\n\n return { h, s, l }\n}\n\nfunction hexToRgb(hex: string): RGB {\n let r = 0,\n g = 0,\n b = 0\n // 3 digits\n if (hex.length == 4) {\n r = parseInt(hex[1] + hex[1], 16)\n g = parseInt(hex[2] + hex[2], 16)\n b = parseInt(hex[3] + hex[3], 16)\n }\n // 6 digits\n else if (hex.length == 7) {\n r = parseInt(hex.slice(1, 3), 16)\n g = parseInt(hex.slice(3, 5), 16)\n b = parseInt(hex.slice(5, 7), 16)\n }\n return { r, g, b }\n}\n\nconst identifyColorFormat = (color: string): ColorFormat | null => {\n if (!color) return null\n if (color.startsWith('#') && (color.length === 4 || color.length === 7))\n return 'hex'\n if (/rgba?\\(\\s*\\d+\\s*,\\s*\\d+\\s*,\\s*\\d+\\s*/.test(color))\n return color.includes('rgba') ? 'rgba' : 'rgb'\n if (/hsla?\\(\\s*\\d+(\\.\\d+)?\\s*,\\s*\\d+(\\.\\d+)?%\\s*,\\s*\\d+(\\.\\d+)?%/.test(color))\n return color.includes('hsla') ? 'hsla' : 'hsl'\n return null\n}\n\nconst isHSLA = (color: unknown): color is HSLA => {\n if (typeof color !== 'object' || color === null) return false\n\n return ['h', 's', 'l', 'a'].every(\n (key) =>\n typeof (color as Record)[key] === 'number' &&\n !isNaN((color as Record)[key])\n )\n}\n\nfunction parseToHSLA(color: string, format: ColorFormat): HSLA | null {\n let match: RegExpMatchArray | null\n\n switch (format) {\n case 'hex': {\n const hsl = rgbToHsl(hexToRgb(color))\n return {\n h: Math.round(hsl.h * 360),\n s: +(hsl.s * 100).toFixed(1),\n l: +(hsl.l * 100).toFixed(1),\n a: 1\n }\n }\n\n case 'rgb':\n case 'rgba': {\n match = color.match(/\\d+(\\.\\d+)?/g)\n if (!match || match.length < 3) return null\n const [r, g, b] = match.map(Number)\n const hsl = rgbToHsl({ r, g, b })\n\n const a = format === 'rgba' && match[3] ? parseFloat(match[3]) : 1\n\n return {\n h: Math.round(hsl.h * 360),\n s: +(hsl.s * 100).toFixed(1),\n l: +(hsl.l * 100).toFixed(1),\n a\n }\n }\n\n case 'hsl':\n case 'hsla': {\n match = color.match(/\\d+(\\.\\d+)?/g)\n if (!match || match.length < 3) return null\n const [h, s, l] = match.map(Number)\n const a = format === 'hsla' && match[3] ? parseFloat(match[3]) : 1\n return { h, s, l, a }\n }\n default:\n return null\n }\n}\n\nconst applyColorAdjustments = (\n color: string,\n options: ColorAdjustOptions\n): string => {\n if (!Object.keys(options).length) return color\n\n const format = identifyColorFormat(color)\n if (!format) {\n console.warn(`Unsupported color format in color palette: ${color}`)\n return color\n }\n\n const hsla = parseToHSLA(color, format)\n if (!isHSLA(hsla)) {\n console.warn(`Invalid color values in color palette: ${color}`)\n return color\n }\n\n if (options.lightness) {\n hsla.l = Math.max(0, Math.min(100, hsla.l + options.lightness * 100.0))\n }\n\n if (options.opacity) {\n hsla.a = Math.max(0, Math.min(1, options.opacity))\n }\n\n return `hsla(${hsla.h}, ${hsla.s}%, ${hsla.l}%, ${hsla.a})`\n}\n\nexport const adjustColor: (\n color: string,\n options: ColorAdjustOptions\n) => string = memoize(\n applyColorAdjustments,\n (color: string, options: ColorAdjustOptions): string =>\n `${color}-${JSON.stringify(options)}`\n)\n","// @ts-strict-ignore\nimport { $el } from '../../ui'\nimport { ComfyButton } from './button'\nimport { prop } from '../../utils'\n\nexport class ComfyButtonGroup {\n element = $el('div.comfyui-button-group')\n buttons: (HTMLElement | ComfyButton)[]\n\n constructor(...buttons: (HTMLElement | ComfyButton)[]) {\n this.buttons = prop(this, 'buttons', buttons, () => this.update())\n }\n\n insert(button: ComfyButton, index: number) {\n this.buttons.splice(index, 0, button)\n this.update()\n }\n\n append(button: ComfyButton) {\n this.buttons.push(button)\n this.update()\n }\n\n remove(indexOrButton: ComfyButton | number) {\n if (typeof indexOrButton !== 'number') {\n indexOrButton = this.buttons.indexOf(indexOrButton)\n }\n if (indexOrButton > -1) {\n const r = this.buttons.splice(indexOrButton, 1)\n this.update()\n return r\n }\n }\n\n update() {\n this.element.replaceChildren(...this.buttons.map((b) => b['element'] ?? b))\n }\n}\n","// @ts-strict-ignore\nexport type ClassList = string | string[] | Record\n\nexport function applyClasses(\n element: HTMLElement,\n classList: ClassList,\n ...requiredClasses: string[]\n) {\n classList ??= ''\n\n let str: string\n if (typeof classList === 'string') {\n str = classList\n } else if (classList instanceof Array) {\n str = classList.join(' ')\n } else {\n str = Object.entries(classList).reduce((p, c) => {\n if (c[1]) {\n p += (p.length ? ' ' : '') + c[0]\n }\n return p\n }, '')\n }\n element.className = str\n if (requiredClasses) {\n element.classList.add(...requiredClasses)\n }\n}\n\nexport function toggleElement(\n element: HTMLElement,\n {\n onHide,\n onShow\n }: {\n onHide?: (el: HTMLElement) => void\n onShow?: (el: HTMLElement, value) => void\n } = {}\n) {\n let placeholder: HTMLElement | Comment\n let hidden: boolean\n return (value) => {\n if (value) {\n if (hidden) {\n hidden = false\n placeholder.replaceWith(element)\n }\n onShow?.(element, value)\n } else {\n if (!placeholder) {\n placeholder = document.createComment('')\n }\n hidden = true\n element.replaceWith(placeholder)\n onHide?.(element)\n }\n }\n}\n","// @ts-strict-ignore\nimport { $el } from '../../ui'\nimport { applyClasses, ClassList, toggleElement } from '../utils'\nimport { prop } from '../../utils'\nimport type { ComfyPopup } from './popup'\nimport type { ComfyComponent } from '.'\nimport type { ComfyApp } from '@/scripts/app'\nimport { Settings } from '@/types/apiTypes'\n\ntype ComfyButtonProps = {\n icon?: string\n overIcon?: string\n iconSize?: number\n content?: string | HTMLElement\n tooltip?: string\n enabled?: boolean\n action?: (e: Event, btn: ComfyButton) => void\n classList?: ClassList\n visibilitySetting?: { id: keyof Settings; showValue: boolean }\n app?: ComfyApp\n}\n\nexport class ComfyButton implements ComfyComponent {\n #over = 0\n #popupOpen = false\n isOver = false\n iconElement = $el('i.mdi')\n contentElement = $el('span')\n popup: ComfyPopup\n element: HTMLElement\n overIcon: string\n iconSize: number\n content: string | HTMLElement\n icon: string\n tooltip: string\n classList: ClassList\n hidden: boolean\n enabled: boolean\n action: (e: Event, btn: ComfyButton) => void\n\n constructor({\n icon,\n overIcon,\n iconSize,\n content,\n tooltip,\n action,\n classList = 'comfyui-button',\n visibilitySetting,\n app,\n enabled = true\n }: ComfyButtonProps) {\n this.element = $el(\n 'button',\n {\n onmouseenter: () => {\n this.isOver = true\n if (this.overIcon) {\n this.updateIcon()\n }\n },\n onmouseleave: () => {\n this.isOver = false\n if (this.overIcon) {\n this.updateIcon()\n }\n }\n },\n [this.iconElement, this.contentElement]\n )\n\n this.icon = prop(\n this,\n 'icon',\n icon,\n toggleElement(this.iconElement, { onShow: this.updateIcon })\n )\n this.overIcon = prop(this, 'overIcon', overIcon, () => {\n if (this.isOver) {\n this.updateIcon()\n }\n })\n this.iconSize = prop(this, 'iconSize', iconSize, this.updateIcon)\n this.content = prop(\n this,\n 'content',\n content,\n toggleElement(this.contentElement, {\n onShow: (el, v) => {\n if (typeof v === 'string') {\n el.textContent = v\n } else {\n el.replaceChildren(v)\n }\n }\n })\n )\n\n this.tooltip = prop(this, 'tooltip', tooltip, (v) => {\n if (v) {\n this.element.title = v\n } else {\n this.element.removeAttribute('title')\n }\n })\n if (tooltip !== undefined) {\n this.element.setAttribute('aria-label', tooltip)\n }\n this.classList = prop(this, 'classList', classList, this.updateClasses)\n this.hidden = prop(this, 'hidden', false, this.updateClasses)\n this.enabled = prop(this, 'enabled', enabled, () => {\n this.updateClasses()\n ;(this.element as HTMLButtonElement).disabled = !this.enabled\n })\n this.action = prop(this, 'action', action)\n this.element.addEventListener('click', (e) => {\n if (this.popup) {\n // we are either a touch device or triggered by click not hover\n if (!this.#over) {\n this.popup.toggle()\n }\n }\n this.action?.(e, this)\n })\n\n if (visibilitySetting?.id) {\n const settingUpdated = () => {\n this.hidden =\n app.ui.settings.getSettingValue(visibilitySetting.id) !==\n visibilitySetting.showValue\n }\n app.ui.settings.addEventListener(\n visibilitySetting.id + '.change',\n settingUpdated\n )\n settingUpdated()\n }\n }\n\n updateIcon = () =>\n (this.iconElement.className = `mdi mdi-${(this.isOver && this.overIcon) || this.icon}${this.iconSize ? ' mdi-' + this.iconSize + 'px' : ''}`)\n updateClasses = () => {\n const internalClasses = []\n if (this.hidden) {\n internalClasses.push('hidden')\n }\n if (!this.enabled) {\n internalClasses.push('disabled')\n }\n if (this.popup) {\n if (this.#popupOpen) {\n internalClasses.push('popup-open')\n } else {\n internalClasses.push('popup-closed')\n }\n }\n applyClasses(this.element, this.classList, ...internalClasses)\n }\n\n withPopup(popup: ComfyPopup, mode: 'click' | 'hover' = 'click') {\n this.popup = popup\n\n if (mode === 'hover') {\n for (const el of [this.element, this.popup.element]) {\n el.addEventListener('mouseenter', () => {\n this.popup.open = !!++this.#over\n })\n el.addEventListener('mouseleave', () => {\n this.popup.open = !!--this.#over\n })\n }\n }\n\n popup.addEventListener('change', () => {\n this.#popupOpen = popup.open\n this.updateClasses()\n })\n\n return this\n }\n}\n","// @ts-strict-ignore\nimport { prop } from '../../utils'\nimport { $el } from '../../ui'\nimport { applyClasses, ClassList } from '../utils'\n\nexport class ComfyPopup extends EventTarget {\n element = $el('div.comfyui-popup')\n open: boolean\n children: HTMLElement[]\n target: HTMLElement\n ignoreTarget: boolean\n container: HTMLElement\n position: string\n closeOnEscape: boolean\n horizontal: string\n classList: ClassList\n\n constructor(\n {\n target,\n container = document.body,\n classList = '',\n ignoreTarget = true,\n closeOnEscape = true,\n position = 'absolute',\n horizontal = 'left'\n }: {\n target: HTMLElement\n container?: HTMLElement\n classList?: ClassList\n ignoreTarget?: boolean\n closeOnEscape?: boolean\n position?: 'absolute' | 'relative'\n horizontal?: 'left' | 'right'\n },\n ...children: HTMLElement[]\n ) {\n super()\n this.target = target\n this.ignoreTarget = ignoreTarget\n this.container = container\n this.position = position\n this.closeOnEscape = closeOnEscape\n this.horizontal = horizontal\n\n container.append(this.element)\n\n this.children = prop(this, 'children', children, () => {\n this.element.replaceChildren(...this.children)\n this.update()\n })\n this.classList = prop(this, 'classList', classList, () =>\n applyClasses(this.element, this.classList, 'comfyui-popup', horizontal)\n )\n this.open = prop(this, 'open', false, (v, o) => {\n if (v === o) return\n if (v) {\n this.#show()\n } else {\n this.#hide()\n }\n })\n }\n\n toggle() {\n this.open = !this.open\n }\n\n #hide() {\n this.element.classList.remove('open')\n window.removeEventListener('resize', this.update)\n window.removeEventListener('click', this.#clickHandler, { capture: true })\n window.removeEventListener('keydown', this.#escHandler, { capture: true })\n\n this.dispatchEvent(new CustomEvent('close'))\n this.dispatchEvent(new CustomEvent('change'))\n }\n\n #show() {\n this.element.classList.add('open')\n this.update()\n\n window.addEventListener('resize', this.update)\n window.addEventListener('click', this.#clickHandler, { capture: true })\n if (this.closeOnEscape) {\n window.addEventListener('keydown', this.#escHandler, { capture: true })\n }\n\n this.dispatchEvent(new CustomEvent('open'))\n this.dispatchEvent(new CustomEvent('change'))\n }\n\n #escHandler = (e) => {\n if (e.key === 'Escape') {\n this.open = false\n e.preventDefault()\n e.stopImmediatePropagation()\n }\n }\n\n #clickHandler = (e) => {\n /** @type {any} */\n const target = e.target\n if (\n !this.element.contains(target) &&\n this.ignoreTarget &&\n !this.target.contains(target)\n ) {\n this.open = false\n }\n }\n\n update = () => {\n const rect = this.target.getBoundingClientRect()\n this.element.style.setProperty('--bottom', 'unset')\n if (this.position === 'absolute') {\n if (this.horizontal === 'left') {\n this.element.style.setProperty('--left', rect.left + 'px')\n } else {\n this.element.style.setProperty(\n '--left',\n rect.right - this.element.clientWidth + 'px'\n )\n }\n this.element.style.setProperty('--top', rect.bottom + 'px')\n this.element.style.setProperty('--limit', rect.bottom + 'px')\n } else {\n this.element.style.setProperty('--left', 0 + 'px')\n this.element.style.setProperty('--top', rect.height + 'px')\n this.element.style.setProperty('--limit', rect.height + 'px')\n }\n\n const thisRect = this.element.getBoundingClientRect()\n if (thisRect.height < 30) {\n // Move up instead\n this.element.style.setProperty('--top', 'unset')\n this.element.style.setProperty('--bottom', rect.height + 5 + 'px')\n this.element.style.setProperty('--limit', rect.height + 5 + 'px')\n }\n }\n}\n","import { $el } from '../../ui'\nimport { ComfyButton } from './button'\nimport { prop } from '../../utils'\nimport { ComfyPopup } from './popup'\n\nexport class ComfySplitButton {\n arrow: ComfyButton\n element: HTMLElement\n popup: ComfyPopup\n items: Array\n\n constructor(\n {\n primary,\n mode,\n horizontal = 'left',\n position = 'relative'\n }: {\n primary: ComfyButton\n mode?: 'hover' | 'click'\n horizontal?: 'left' | 'right'\n position?: 'relative' | 'absolute'\n },\n ...items: Array\n ) {\n this.arrow = new ComfyButton({\n icon: 'chevron-down'\n })\n this.element = $el(\n 'div.comfyui-split-button' + (mode === 'hover' ? '.hover' : ''),\n [\n $el(\n 'div.comfyui-split-primary',\n {\n ariaLabel: 'Queue current workflow'\n },\n primary.element\n ),\n $el(\n 'div.comfyui-split-arrow',\n {\n ariaLabel: 'Open extra opens',\n ariaHasPopup: 'true'\n },\n this.arrow.element\n )\n ]\n )\n this.popup = new ComfyPopup({\n target: this.element,\n container: position === 'relative' ? this.element : document.body,\n classList:\n 'comfyui-split-button-popup' + (mode === 'hover' ? ' hover' : ''),\n closeOnEscape: mode === 'click',\n position,\n horizontal\n })\n\n this.arrow.withPopup(this.popup, mode)\n\n this.items = prop(this, 'items', items, () => this.update())\n }\n\n update() {\n this.popup.element.replaceChildren(\n ...this.items.map((b) => ('element' in b ? b.element : b))\n )\n }\n}\n","import type { ComfyApp } from '@/scripts/app'\nimport { $el } from '../../ui'\nimport { downloadBlob } from '../../utils'\nimport { ComfyButtonGroup } from '../components/buttonGroup'\nimport { showPromptDialog } from '@/services/dialogService'\nimport { useSettingStore } from '@/stores/settingStore'\nimport './menu.css'\n\n// Export to make sure following components are shimmed and exported by vite\nexport { ComfyButton } from '../components/button'\nexport { ComfySplitButton } from '../components/splitButton'\nexport { ComfyPopup } from '../components/popup'\n\nexport class ComfyAppMenu {\n app: ComfyApp\n actionsGroup: ComfyButtonGroup\n settingsGroup: ComfyButtonGroup\n viewGroup: ComfyButtonGroup\n element: HTMLElement\n\n constructor(app: ComfyApp) {\n this.app = app\n\n // Keep the group as there are custom scripts attaching extra\n // elements to it.\n this.actionsGroup = new ComfyButtonGroup()\n this.settingsGroup = new ComfyButtonGroup()\n this.viewGroup = new ComfyButtonGroup()\n\n this.element = $el('div.flex.gap-2.mx-2', [\n this.actionsGroup.element,\n this.settingsGroup.element,\n this.viewGroup.element\n ])\n }\n\n async getFilename(defaultName: string): Promise {\n if (useSettingStore().get('Comfy.PromptFilename')) {\n let filename = await showPromptDialog({\n title: 'Export Workflow',\n message: 'Enter the filename:',\n defaultValue: defaultName\n })\n if (!filename) return null\n if (!filename.toLowerCase().endsWith('.json')) {\n filename += '.json'\n }\n return filename\n }\n return defaultName\n }\n\n async exportWorkflow(\n filename: string,\n promptProperty: 'workflow' | 'output'\n ): Promise {\n if (this.app.workflowManager.activeWorkflow?.path) {\n filename = this.app.workflowManager.activeWorkflow.name\n }\n const p = await this.app.graphToPrompt()\n const json = JSON.stringify(p[promptProperty], null, 2)\n const blob = new Blob([json], { type: 'application/json' })\n const file = await this.getFilename(filename)\n if (!file) return\n downloadBlob(file, blob)\n }\n}\n","// @ts-strict-ignore\nimport type { ComfyApp } from './app'\nimport { api } from './api'\nimport { clone } from './utils'\nimport { LGraphCanvas, LiteGraph } from '@comfyorg/litegraph'\nimport { ComfyWorkflow } from './workflows'\n\nexport class ChangeTracker {\n static MAX_HISTORY = 50\n #app: ComfyApp\n undoQueue = []\n redoQueue = []\n activeState = null\n isOurLoad = false\n workflow: ComfyWorkflow | null\n changeCount = 0\n\n ds: { scale: number; offset: [number, number] }\n nodeOutputs: any\n\n get app() {\n return this.#app ?? this.workflow.manager.app\n }\n\n constructor(workflow: ComfyWorkflow) {\n this.workflow = workflow\n }\n\n #setApp(app) {\n this.#app = app\n }\n\n store() {\n this.ds = {\n scale: this.app.canvas.ds.scale,\n offset: [this.app.canvas.ds.offset[0], this.app.canvas.ds.offset[1]]\n }\n }\n\n restore() {\n if (this.ds) {\n this.app.canvas.ds.scale = this.ds.scale\n this.app.canvas.ds.offset = this.ds.offset\n }\n if (this.nodeOutputs) {\n this.app.nodeOutputs = this.nodeOutputs\n }\n }\n\n checkState() {\n if (!this.app.graph || this.changeCount) return\n\n const currentState = this.app.graph.serialize()\n if (!this.activeState) {\n this.activeState = clone(currentState)\n return\n }\n if (!ChangeTracker.graphEqual(this.activeState, currentState)) {\n this.undoQueue.push(this.activeState)\n if (this.undoQueue.length > ChangeTracker.MAX_HISTORY) {\n this.undoQueue.shift()\n }\n this.activeState = clone(currentState)\n this.redoQueue.length = 0\n this.workflow.unsaved = true\n api.dispatchEvent(\n new CustomEvent('graphChanged', { detail: this.activeState })\n )\n }\n }\n\n async updateState(source, target) {\n const prevState = source.pop()\n if (prevState) {\n target.push(this.activeState)\n this.isOurLoad = true\n await this.app.loadGraphData(prevState, false, false, this.workflow, {\n showMissingModelsDialog: false,\n showMissingNodesDialog: false\n })\n this.activeState = prevState\n }\n }\n\n async undo() {\n await this.updateState(this.undoQueue, this.redoQueue)\n }\n\n async redo() {\n await this.updateState(this.redoQueue, this.undoQueue)\n }\n\n async undoRedo(e) {\n if (e.ctrlKey || e.metaKey) {\n if (e.key === 'y' || e.key == 'Z') {\n await this.redo()\n return true\n } else if (e.key === 'z') {\n await this.undo()\n return true\n }\n }\n }\n\n beforeChange() {\n this.changeCount++\n }\n\n afterChange() {\n if (!--this.changeCount) {\n this.checkState()\n }\n }\n\n static init(app: ComfyApp) {\n const changeTracker = () =>\n app.workflowManager.activeWorkflow?.changeTracker ?? globalTracker\n globalTracker.#setApp(app)\n\n const loadGraphData = app.loadGraphData\n app.loadGraphData = async function () {\n const v = await loadGraphData.apply(this, arguments)\n const ct = changeTracker()\n if (ct.isOurLoad) {\n ct.isOurLoad = false\n } else {\n ct.checkState()\n }\n return v\n }\n\n let keyIgnored = false\n window.addEventListener(\n 'keydown',\n (e: KeyboardEvent) => {\n // Do not trigger on repeat events (Holding down a key)\n // This can happen when user is holding down \"Space\" to pan the canvas.\n if (e.repeat) return\n\n const activeEl = document.activeElement\n requestAnimationFrame(async () => {\n let bindInputEl\n // If we are auto queue in change mode then we do want to trigger on inputs\n if (!app.ui.autoQueueEnabled || app.ui.autoQueueMode === 'instant') {\n if (\n activeEl?.tagName === 'INPUT' ||\n activeEl?.['type'] === 'textarea'\n ) {\n // Ignore events on inputs, they have their native history\n return\n }\n bindInputEl = activeEl\n }\n\n keyIgnored =\n e.key === 'Control' ||\n e.key === 'Shift' ||\n e.key === 'Alt' ||\n e.key === 'Meta'\n if (keyIgnored) return\n\n // Check if this is a ctrl+z ctrl+y\n if (await changeTracker().undoRedo(e)) return\n\n // If our active element is some type of input then handle changes after they're done\n if (ChangeTracker.bindInput(app, bindInputEl)) return\n changeTracker().checkState()\n })\n },\n true\n )\n\n window.addEventListener('keyup', (e) => {\n if (keyIgnored) {\n keyIgnored = false\n changeTracker().checkState()\n }\n })\n\n // Handle clicking DOM elements (e.g. widgets)\n window.addEventListener('mouseup', () => {\n changeTracker().checkState()\n })\n\n // Handle prompt queue event for dynamic widget changes\n api.addEventListener('promptQueued', () => {\n changeTracker().checkState()\n })\n\n api.addEventListener('graphCleared', () => {\n changeTracker().checkState()\n })\n\n // Handle litegraph clicks\n const processMouseUp = LGraphCanvas.prototype.processMouseUp\n LGraphCanvas.prototype.processMouseUp = function (e) {\n const v = processMouseUp.apply(this, arguments)\n changeTracker().checkState()\n return v\n }\n const processMouseDown = LGraphCanvas.prototype.processMouseDown\n LGraphCanvas.prototype.processMouseDown = function (e) {\n const v = processMouseDown.apply(this, arguments)\n changeTracker().checkState()\n return v\n }\n\n // Handle litegraph dialog popup for number/string widgets\n const prompt = LGraphCanvas.prototype.prompt\n LGraphCanvas.prototype.prompt = function (title, value, callback, event) {\n const extendedCallback = (v) => {\n callback(v)\n changeTracker().checkState()\n }\n return prompt.apply(this, [title, value, extendedCallback, event])\n }\n\n // Handle litegraph context menu for COMBO widgets\n const close = LiteGraph.ContextMenu.prototype.close\n LiteGraph.ContextMenu.prototype.close = function (e) {\n const v = close.apply(this, arguments)\n changeTracker().checkState()\n return v\n }\n\n // Detects nodes being added via the node search dialog\n const onNodeAdded = LiteGraph.LGraph.prototype.onNodeAdded\n LiteGraph.LGraph.prototype.onNodeAdded = function () {\n const v = onNodeAdded?.apply(this, arguments)\n if (!app?.configuringGraph) {\n const ct = changeTracker()\n if (!ct.isOurLoad) {\n ct.checkState()\n }\n }\n return v\n }\n\n // Handle multiple commands as a single transaction\n document.addEventListener('litegraph:canvas', (e: CustomEvent) => {\n if (e.detail.subType === 'before-change') {\n changeTracker().beforeChange()\n } else if (e.detail.subType === 'after-change') {\n changeTracker().afterChange()\n }\n })\n\n // Store node outputs\n api.addEventListener('executed', ({ detail }) => {\n const prompt =\n app.workflowManager.executionStore.queuedPrompts[detail.prompt_id]\n if (!prompt?.workflow) return\n const nodeOutputs = (prompt.workflow.changeTracker.nodeOutputs ??= {})\n const output = nodeOutputs[detail.node]\n if (detail.merge && output) {\n for (const k in detail.output ?? {}) {\n const v = output[k]\n if (v instanceof Array) {\n output[k] = v.concat(detail.output[k])\n } else {\n output[k] = detail.output[k]\n }\n }\n } else {\n nodeOutputs[detail.node] = detail.output\n }\n })\n }\n\n static bindInput(app, activeEl) {\n if (\n activeEl &&\n activeEl.tagName !== 'CANVAS' &&\n activeEl.tagName !== 'BODY'\n ) {\n for (const evt of ['change', 'input', 'blur']) {\n if (`on${evt}` in activeEl) {\n const listener = () => {\n app.workflowManager.activeWorkflow.changeTracker.checkState()\n activeEl.removeEventListener(evt, listener)\n }\n activeEl.addEventListener(evt, listener)\n return true\n }\n }\n }\n }\n\n static graphEqual(a, b, path = '') {\n if (a === b) return true\n\n if (typeof a == 'object' && a && typeof b == 'object' && b) {\n const keys = Object.getOwnPropertyNames(a)\n\n if (keys.length != Object.getOwnPropertyNames(b).length) {\n return false\n }\n\n for (const key of keys) {\n let av = a[key]\n let bv = b[key]\n if (!path && key === 'nodes') {\n // Nodes need to be sorted as the order changes when selecting nodes\n av = [...av].sort((a, b) => a.id - b.id)\n bv = [...bv].sort((a, b) => a.id - b.id)\n } else if (path === 'extra.ds') {\n // Ignore view changes\n continue\n }\n if (!ChangeTracker.graphEqual(av, bv, path + (path ? '.' : '') + key)) {\n return false\n }\n }\n\n return true\n }\n\n return false\n }\n}\n\nexport const globalTracker = new ChangeTracker({} as ComfyWorkflow)\n","// @ts-strict-ignore\nimport { ComfyDialog } from '../dialog'\nimport { $el } from '../../ui'\n\nexport class ComfyAsyncDialog extends ComfyDialog {\n #resolve: (value: any) => void\n\n constructor(actions?: Array) {\n super(\n 'dialog.comfy-dialog.comfyui-dialog',\n actions?.map((opt) => {\n if (typeof opt === 'string') {\n opt = { text: opt }\n }\n return $el('button.comfyui-button', {\n type: 'button',\n textContent: opt.text,\n onclick: () => this.close(opt.value ?? opt.text)\n })\n })\n )\n }\n\n show(html: string | HTMLElement | HTMLElement[]) {\n this.element.addEventListener('close', () => {\n this.close()\n })\n\n super.show(html)\n\n return new Promise((resolve) => {\n this.#resolve = resolve\n })\n }\n\n showModal(html: string | HTMLElement | HTMLElement[]) {\n this.element.addEventListener('close', () => {\n this.close()\n })\n\n super.show(html)\n this.element.showModal()\n\n return new Promise((resolve) => {\n this.#resolve = resolve\n })\n }\n\n close(result = null) {\n this.#resolve(result)\n this.element.close()\n super.close()\n }\n\n static async prompt({ title = null, message, actions }) {\n const dialog = new ComfyAsyncDialog(actions)\n const content = [$el('span', message)]\n if (title) {\n content.unshift($el('h3', title))\n }\n const res = await dialog.showModal(content)\n dialog.element.remove()\n return res\n }\n}\n","// @ts-strict-ignore\nimport type { ComfyApp } from './app'\nimport { api } from './api'\nimport { ChangeTracker } from './changeTracker'\nimport { ComfyAsyncDialog } from './ui/components/asyncDialog'\nimport { setStorageValue } from './utils'\nimport { LGraphCanvas, LGraph } from '@comfyorg/litegraph'\nimport { appendJsonExt, trimJsonExt } from '@/utils/formatUtil'\nimport {\n useWorkflowStore,\n useWorkflowBookmarkStore\n} from '@/stores/workflowStore'\nimport { useExecutionStore } from '@/stores/executionStore'\nimport { markRaw, toRaw } from 'vue'\nimport { UserDataFullInfo } from '@/types/apiTypes'\nimport { useToastStore } from '@/stores/toastStore'\nimport { showPromptDialog } from '@/services/dialogService'\n\nexport class ComfyWorkflowManager extends EventTarget {\n executionStore: ReturnType | null\n workflowStore: ReturnType | null\n workflowBookmarkStore: ReturnType | null\n\n app: ComfyApp\n #unsavedCount = 0\n\n get workflowLookup(): Record {\n return this.workflowStore?.workflowLookup ?? {}\n }\n\n get workflows(): ComfyWorkflow[] {\n return this.workflowStore?.workflows ?? []\n }\n\n get openWorkflows(): ComfyWorkflow[] {\n return (this.workflowStore?.openWorkflows ?? []) as ComfyWorkflow[]\n }\n\n get _activeWorkflow(): ComfyWorkflow | null {\n if (!this.app.vueAppReady) return null\n return this.workflowStore!.activeWorkflow as ComfyWorkflow | null\n }\n\n set _activeWorkflow(workflow: ComfyWorkflow | null) {\n if (!this.app.vueAppReady) return\n this.workflowStore!.activeWorkflow = workflow ? workflow : null\n }\n\n get activeWorkflow(): ComfyWorkflow | null {\n return this._activeWorkflow ?? this.openWorkflows[0]\n }\n\n get activePromptId() {\n return this.executionStore?.activePromptId\n }\n\n get activePrompt() {\n return this.executionStore?.activePrompt\n }\n\n constructor(app: ComfyApp) {\n super()\n this.app = app\n ChangeTracker.init(app)\n }\n\n async loadWorkflows() {\n try {\n const [files, _] = await Promise.all([\n api.listUserDataFullInfo('workflows'),\n this.workflowBookmarkStore?.loadBookmarks()\n ])\n\n files.forEach((file: UserDataFullInfo) => {\n let workflow = this.workflowLookup[file.path]\n if (!workflow) {\n workflow = new ComfyWorkflow(this, file.path, file.path.split('/'))\n this.workflowLookup[workflow.path] = workflow\n }\n })\n } catch (error) {\n useToastStore().addAlert(\n 'Error loading workflows: ' + (error.message ?? error)\n )\n }\n }\n\n /**\n * @param {string | ComfyWorkflow | null} workflow\n */\n setWorkflow(workflow) {\n if (workflow && typeof workflow === 'string') {\n const found = this.workflows.find((w) => w.path === workflow)\n if (found) {\n workflow = found\n workflow.unsaved = !workflow\n }\n }\n\n if (!(toRaw(workflow) instanceof ComfyWorkflow)) {\n // Still not found, either reloading a deleted workflow or blank\n workflow = new ComfyWorkflow(\n this,\n workflow ||\n 'Unsaved Workflow' +\n (this.#unsavedCount++ ? ` (${this.#unsavedCount})` : '')\n )\n this.workflowLookup[workflow.key] = workflow\n }\n\n if (!workflow.isOpen) {\n // Opening a new workflow\n workflow.track()\n }\n\n this._activeWorkflow = workflow\n\n setStorageValue('Comfy.PreviousWorkflow', this.activeWorkflow.path ?? '')\n this.dispatchEvent(new CustomEvent('changeWorkflow'))\n }\n\n storePrompt({ nodes, id }) {\n this.executionStore?.storePrompt({\n nodes,\n id,\n workflow: this.activeWorkflow\n })\n }\n\n async closeWorkflow(workflow: ComfyWorkflow, warnIfUnsaved: boolean = true) {\n if (!workflow.isOpen) {\n return true\n }\n if (workflow.unsaved && warnIfUnsaved) {\n const res = await ComfyAsyncDialog.prompt({\n title: 'Save Changes?',\n message: `Do you want to save changes to \"${workflow.path ?? workflow.name}\" before closing?`,\n actions: ['Yes', 'No', 'Cancel']\n })\n if (res === 'Yes') {\n const active = this.activeWorkflow\n if (active !== workflow) {\n // We need to switch to the workflow to save it\n await workflow.load()\n }\n\n if (!(await workflow.save())) {\n // Save was canceled, restore the previous workflow\n if (active !== workflow) {\n await active.load()\n }\n return\n }\n } else if (res === 'Cancel') {\n return\n }\n }\n workflow.changeTracker = null\n workflow.isOpen = false\n if (this.openWorkflows.length > 0) {\n this._activeWorkflow = this.openWorkflows[0]\n await this._activeWorkflow.load()\n } else {\n // Load default\n await this.app.loadGraphData()\n }\n }\n}\n\nexport class ComfyWorkflow {\n name: string\n path: string | null\n pathParts: string[] | null\n unsaved = false\n // Raw\n manager: ComfyWorkflowManager\n changeTracker: ChangeTracker | null = null\n isOpen: boolean = false\n\n get isTemporary() {\n return !this.path\n }\n\n get isPersisted() {\n return !this.isTemporary\n }\n\n get key() {\n return this.pathParts?.join('/') ?? this.name + '.json'\n }\n\n get isBookmarked() {\n return this.manager.workflowBookmarkStore?.isBookmarked(this.path) ?? false\n }\n\n /**\n * @deprecated Use isBookmarked instead\n */\n get isFavorite() {\n return this.isBookmarked\n }\n\n constructor(\n manager: ComfyWorkflowManager,\n path: string,\n pathParts?: string[]\n ) {\n this.manager = markRaw(manager)\n if (pathParts) {\n this.updatePath(path, pathParts)\n } else {\n this.name = path\n this.unsaved = true\n }\n }\n\n private updatePath(path: string, pathParts: string[]) {\n this.path = path\n\n if (!pathParts) {\n if (!path.includes('\\\\')) {\n pathParts = path.split('/')\n } else {\n pathParts = path.split('\\\\')\n }\n }\n\n this.pathParts = pathParts\n this.name = trimJsonExt(pathParts[pathParts.length - 1])\n }\n\n async getWorkflowData() {\n const resp = await api.getUserData('workflows/' + this.path)\n if (resp.status !== 200) {\n useToastStore().addAlert(\n `Error loading workflow file '${this.path}': ${resp.status} ${resp.statusText}`\n )\n return\n }\n return await resp.json()\n }\n\n async load() {\n if (this.isOpen) {\n await this.manager.app.loadGraphData(\n this.changeTracker.activeState,\n true,\n true,\n this,\n {\n showMissingModelsDialog: false,\n showMissingNodesDialog: false\n }\n )\n } else {\n const data = await this.getWorkflowData()\n if (!data) return\n await this.manager.app.loadGraphData(data, true, true, this)\n }\n }\n\n async save(saveAs = false) {\n const createNewFile = !this.path || saveAs\n return !!(await this._save(\n createNewFile ? null : this.path,\n /* overwrite */ !createNewFile\n ))\n }\n\n async favorite(value: boolean) {\n try {\n if (this.isBookmarked === value) return\n this.manager.workflowBookmarkStore?.setBookmarked(this.path, value)\n this.manager.dispatchEvent(new CustomEvent('favorite', { detail: this }))\n } catch (error) {\n useToastStore().addAlert(\n 'Error favoriting workflow ' +\n this.path +\n '\\n' +\n (error.message ?? error)\n )\n }\n }\n\n async rename(path: string) {\n path = appendJsonExt(path)\n let resp = await api.moveUserData(\n 'workflows/' + this.path,\n 'workflows/' + path\n )\n\n if (resp.status === 409) {\n if (\n !confirm(\n `Workflow '${path}' already exists, do you want to overwrite it?`\n )\n )\n return resp\n resp = await api.moveUserData(\n 'workflows/' + this.path,\n 'workflows/' + path,\n { overwrite: true }\n )\n }\n\n if (resp.status !== 200) {\n useToastStore().addAlert(\n `Error renaming workflow file '${this.path}': ${resp.status} ${resp.statusText}`\n )\n return\n }\n\n const isFav = this.isFavorite\n if (isFav) {\n await this.favorite(false)\n }\n path = (await resp.json()).substring('workflows/'.length)\n this.updatePath(path, null)\n if (isFav) {\n await this.favorite(true)\n }\n this.manager.dispatchEvent(new CustomEvent('rename', { detail: this }))\n setStorageValue('Comfy.PreviousWorkflow', this.path ?? '')\n }\n\n async insert() {\n const data = await this.getWorkflowData()\n if (!data) return\n\n const old = localStorage.getItem('litegrapheditor_clipboard')\n const graph = new LGraph(data)\n const canvas = new LGraphCanvas(null, graph, {\n skip_events: true,\n skip_render: true\n })\n canvas.selectNodes()\n canvas.copyToClipboard()\n this.manager.app.canvas.pasteFromClipboard()\n localStorage.setItem('litegrapheditor_clipboard', old)\n }\n\n async delete() {\n // TODO: fix delete of current workflow - should mark workflow as unsaved and when saving use old name by default\n\n if (this.isFavorite) {\n await this.favorite(false)\n }\n const resp = await api.deleteUserData('workflows/' + this.path)\n if (resp.status !== 204) {\n useToastStore().addAlert(\n `Error removing user data file '${this.path}': ${resp.status} ${resp.statusText}`\n )\n }\n\n this.unsaved = true\n this.path = null\n this.pathParts = null\n this.manager.workflows.splice(this.manager.workflows.indexOf(this), 1)\n this.manager.dispatchEvent(new CustomEvent('delete', { detail: this }))\n }\n\n track() {\n if (this.changeTracker) {\n this.changeTracker.restore()\n } else {\n this.changeTracker = markRaw(new ChangeTracker(this))\n }\n this.isOpen = true\n }\n\n private async _save(path: string | null, overwrite: boolean) {\n if (!path) {\n path = await showPromptDialog({\n title: 'Save workflow',\n message: 'Enter the filename:',\n defaultValue: trimJsonExt(this.path) ?? this.name ?? 'workflow'\n })\n if (!path) return\n }\n\n path = appendJsonExt(path)\n\n const p = await this.manager.app.graphToPrompt()\n const json = JSON.stringify(p.workflow, null, 2)\n let resp = await api.storeUserData('workflows/' + path, json, {\n stringify: false,\n throwOnError: false,\n overwrite\n })\n if (resp.status === 409) {\n if (\n !confirm(\n `Workflow '${path}' already exists, do you want to overwrite it?`\n )\n )\n return\n resp = await api.storeUserData('workflows/' + path, json, {\n stringify: false\n })\n }\n\n if (resp.status !== 200) {\n useToastStore().addAlert(\n `Error saving workflow '${this.path}': ${resp.status} ${resp.statusText}`\n )\n return\n }\n\n path = (await resp.json()).substring('workflows/'.length)\n\n if (!this.path) {\n // Saved new workflow, patch this instance\n const oldKey = this.key\n this.updatePath(path, null)\n\n // Update workflowLookup: change the key from the old unsaved path to the new saved path\n delete this.manager.workflowStore.workflowLookup[oldKey]\n this.manager.workflowStore.workflowLookup[this.key] = this\n\n await this.manager.loadWorkflows()\n this.unsaved = false\n this.manager.dispatchEvent(new CustomEvent('rename', { detail: this }))\n setStorageValue('Comfy.PreviousWorkflow', this.path ?? '')\n } else if (path !== this.path) {\n // Saved as, open the new copy\n await this.manager.loadWorkflows()\n const workflow = this.manager.workflowLookup[path]\n await workflow.load()\n } else {\n // Normal save\n this.unsaved = false\n this.manager.dispatchEvent(new CustomEvent('save', { detail: this }))\n }\n\n return true\n }\n}\n","/**\n * Fuse.js v7.0.0 - Lightweight fuzzy-search (http://fusejs.io)\n *\n * Copyright (c) 2023 Kiro Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nfunction isArray(value) {\n return !Array.isArray\n ? getTag(value) === '[object Array]'\n : Array.isArray(value)\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/baseToString.js\nconst INFINITY = 1 / 0;\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value\n }\n let result = value + '';\n return result == '0' && 1 / value == -INFINITY ? '-0' : result\n}\n\nfunction toString(value) {\n return value == null ? '' : baseToString(value)\n}\n\nfunction isString(value) {\n return typeof value === 'string'\n}\n\nfunction isNumber(value) {\n return typeof value === 'number'\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js\nfunction isBoolean(value) {\n return (\n value === true ||\n value === false ||\n (isObjectLike(value) && getTag(value) == '[object Boolean]')\n )\n}\n\nfunction isObject(value) {\n return typeof value === 'object'\n}\n\n// Checks if `value` is object-like.\nfunction isObjectLike(value) {\n return isObject(value) && value !== null\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null\n}\n\nfunction isBlank(value) {\n return !value.trim().length\n}\n\n// Gets the `toStringTag` of `value`.\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js\nfunction getTag(value) {\n return value == null\n ? value === undefined\n ? '[object Undefined]'\n : '[object Null]'\n : Object.prototype.toString.call(value)\n}\n\nconst EXTENDED_SEARCH_UNAVAILABLE = 'Extended search is not available';\n\nconst INCORRECT_INDEX_TYPE = \"Incorrect 'index' type\";\n\nconst LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = (key) =>\n `Invalid value for key ${key}`;\n\nconst PATTERN_LENGTH_TOO_LARGE = (max) =>\n `Pattern length exceeds max of ${max}.`;\n\nconst MISSING_KEY_PROPERTY = (name) => `Missing ${name} property in key`;\n\nconst INVALID_KEY_WEIGHT_VALUE = (key) =>\n `Property 'weight' in key '${key}' must be a positive integer`;\n\nconst hasOwn = Object.prototype.hasOwnProperty;\n\nclass KeyStore {\n constructor(keys) {\n this._keys = [];\n this._keyMap = {};\n\n let totalWeight = 0;\n\n keys.forEach((key) => {\n let obj = createKey(key);\n\n this._keys.push(obj);\n this._keyMap[obj.id] = obj;\n\n totalWeight += obj.weight;\n });\n\n // Normalize weights so that their sum is equal to 1\n this._keys.forEach((key) => {\n key.weight /= totalWeight;\n });\n }\n get(keyId) {\n return this._keyMap[keyId]\n }\n keys() {\n return this._keys\n }\n toJSON() {\n return JSON.stringify(this._keys)\n }\n}\n\nfunction createKey(key) {\n let path = null;\n let id = null;\n let src = null;\n let weight = 1;\n let getFn = null;\n\n if (isString(key) || isArray(key)) {\n src = key;\n path = createKeyPath(key);\n id = createKeyId(key);\n } else {\n if (!hasOwn.call(key, 'name')) {\n throw new Error(MISSING_KEY_PROPERTY('name'))\n }\n\n const name = key.name;\n src = name;\n\n if (hasOwn.call(key, 'weight')) {\n weight = key.weight;\n\n if (weight <= 0) {\n throw new Error(INVALID_KEY_WEIGHT_VALUE(name))\n }\n }\n\n path = createKeyPath(name);\n id = createKeyId(name);\n getFn = key.getFn;\n }\n\n return { path, id, weight, src, getFn }\n}\n\nfunction createKeyPath(key) {\n return isArray(key) ? key : key.split('.')\n}\n\nfunction createKeyId(key) {\n return isArray(key) ? key.join('.') : key\n}\n\nfunction get(obj, path) {\n let list = [];\n let arr = false;\n\n const deepGet = (obj, path, index) => {\n if (!isDefined(obj)) {\n return\n }\n if (!path[index]) {\n // If there's no path left, we've arrived at the object we care about.\n list.push(obj);\n } else {\n let key = path[index];\n\n const value = obj[key];\n\n if (!isDefined(value)) {\n return\n }\n\n // If we're at the last value in the path, and if it's a string/number/bool,\n // add it to the list\n if (\n index === path.length - 1 &&\n (isString(value) || isNumber(value) || isBoolean(value))\n ) {\n list.push(toString(value));\n } else if (isArray(value)) {\n arr = true;\n // Search each item in the array.\n for (let i = 0, len = value.length; i < len; i += 1) {\n deepGet(value[i], path, index + 1);\n }\n } else if (path.length) {\n // An object. Recurse further.\n deepGet(value, path, index + 1);\n }\n }\n };\n\n // Backwards compatibility (since path used to be a string)\n deepGet(obj, isString(path) ? path.split('.') : path, 0);\n\n return arr ? list : list[0]\n}\n\nconst MatchOptions = {\n // Whether the matches should be included in the result set. When `true`, each record in the result\n // set will include the indices of the matched characters.\n // These can consequently be used for highlighting purposes.\n includeMatches: false,\n // When `true`, the matching function will continue to the end of a search pattern even if\n // a perfect match has already been located in the string.\n findAllMatches: false,\n // Minimum number of characters that must be matched before a result is considered a match\n minMatchCharLength: 1\n};\n\nconst BasicOptions = {\n // When `true`, the algorithm continues searching to the end of the input even if a perfect\n // match is found before the end of the same input.\n isCaseSensitive: false,\n // When true, the matching function will continue to the end of a search pattern even if\n includeScore: false,\n // List of properties that will be searched. This also supports nested properties.\n keys: [],\n // Whether to sort the result list, by score\n shouldSort: true,\n // Default sort function: sort by ascending score, ascending index\n sortFn: (a, b) =>\n a.score === b.score ? (a.idx < b.idx ? -1 : 1) : a.score < b.score ? -1 : 1\n};\n\nconst FuzzyOptions = {\n // Approximately where in the text is the pattern expected to be found?\n location: 0,\n // At what point does the match algorithm give up. A threshold of '0.0' requires a perfect match\n // (of both letters and location), a threshold of '1.0' would match anything.\n threshold: 0.6,\n // Determines how close the match must be to the fuzzy location (specified above).\n // An exact letter match which is 'distance' characters away from the fuzzy location\n // would score as a complete mismatch. A distance of '0' requires the match be at\n // the exact location specified, a threshold of '1000' would require a perfect match\n // to be within 800 characters of the fuzzy location to be found using a 0.8 threshold.\n distance: 100\n};\n\nconst AdvancedOptions = {\n // When `true`, it enables the use of unix-like search commands\n useExtendedSearch: false,\n // The get function to use when fetching an object's properties.\n // The default will search nested paths *ie foo.bar.baz*\n getFn: get,\n // When `true`, search will ignore `location` and `distance`, so it won't matter\n // where in the string the pattern appears.\n // More info: https://fusejs.io/concepts/scoring-theory.html#fuzziness-score\n ignoreLocation: false,\n // When `true`, the calculation for the relevance score (used for sorting) will\n // ignore the field-length norm.\n // More info: https://fusejs.io/concepts/scoring-theory.html#field-length-norm\n ignoreFieldNorm: false,\n // The weight to determine how much field length norm effects scoring.\n fieldNormWeight: 1\n};\n\nvar Config = {\n ...BasicOptions,\n ...MatchOptions,\n ...FuzzyOptions,\n ...AdvancedOptions\n};\n\nconst SPACE = /[^ ]+/g;\n\n// Field-length norm: the shorter the field, the higher the weight.\n// Set to 3 decimals to reduce index size.\nfunction norm(weight = 1, mantissa = 3) {\n const cache = new Map();\n const m = Math.pow(10, mantissa);\n\n return {\n get(value) {\n const numTokens = value.match(SPACE).length;\n\n if (cache.has(numTokens)) {\n return cache.get(numTokens)\n }\n\n // Default function is 1/sqrt(x), weight makes that variable\n const norm = 1 / Math.pow(numTokens, 0.5 * weight);\n\n // In place of `toFixed(mantissa)`, for faster computation\n const n = parseFloat(Math.round(norm * m) / m);\n\n cache.set(numTokens, n);\n\n return n\n },\n clear() {\n cache.clear();\n }\n }\n}\n\nclass FuseIndex {\n constructor({\n getFn = Config.getFn,\n fieldNormWeight = Config.fieldNormWeight\n } = {}) {\n this.norm = norm(fieldNormWeight, 3);\n this.getFn = getFn;\n this.isCreated = false;\n\n this.setIndexRecords();\n }\n setSources(docs = []) {\n this.docs = docs;\n }\n setIndexRecords(records = []) {\n this.records = records;\n }\n setKeys(keys = []) {\n this.keys = keys;\n this._keysMap = {};\n keys.forEach((key, idx) => {\n this._keysMap[key.id] = idx;\n });\n }\n create() {\n if (this.isCreated || !this.docs.length) {\n return\n }\n\n this.isCreated = true;\n\n // List is Array\n if (isString(this.docs[0])) {\n this.docs.forEach((doc, docIndex) => {\n this._addString(doc, docIndex);\n });\n } else {\n // List is Array\n this.docs.forEach((doc, docIndex) => {\n this._addObject(doc, docIndex);\n });\n }\n\n this.norm.clear();\n }\n // Adds a doc to the end of the index\n add(doc) {\n const idx = this.size();\n\n if (isString(doc)) {\n this._addString(doc, idx);\n } else {\n this._addObject(doc, idx);\n }\n }\n // Removes the doc at the specified index of the index\n removeAt(idx) {\n this.records.splice(idx, 1);\n\n // Change ref index of every subsquent doc\n for (let i = idx, len = this.size(); i < len; i += 1) {\n this.records[i].i -= 1;\n }\n }\n getValueForItemAtKeyId(item, keyId) {\n return item[this._keysMap[keyId]]\n }\n size() {\n return this.records.length\n }\n _addString(doc, docIndex) {\n if (!isDefined(doc) || isBlank(doc)) {\n return\n }\n\n let record = {\n v: doc,\n i: docIndex,\n n: this.norm.get(doc)\n };\n\n this.records.push(record);\n }\n _addObject(doc, docIndex) {\n let record = { i: docIndex, $: {} };\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n this.keys.forEach((key, keyIndex) => {\n let value = key.getFn ? key.getFn(doc) : this.getFn(doc, key.path);\n\n if (!isDefined(value)) {\n return\n }\n\n if (isArray(value)) {\n let subRecords = [];\n const stack = [{ nestedArrIndex: -1, value }];\n\n while (stack.length) {\n const { nestedArrIndex, value } = stack.pop();\n\n if (!isDefined(value)) {\n continue\n }\n\n if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n i: nestedArrIndex,\n n: this.norm.get(value)\n };\n\n subRecords.push(subRecord);\n } else if (isArray(value)) {\n value.forEach((item, k) => {\n stack.push({\n nestedArrIndex: k,\n value: item\n });\n });\n } else ;\n }\n record.$[keyIndex] = subRecords;\n } else if (isString(value) && !isBlank(value)) {\n let subRecord = {\n v: value,\n n: this.norm.get(value)\n };\n\n record.$[keyIndex] = subRecord;\n }\n });\n\n this.records.push(record);\n }\n toJSON() {\n return {\n keys: this.keys,\n records: this.records\n }\n }\n}\n\nfunction createIndex(\n keys,\n docs,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys.map(createKey));\n myIndex.setSources(docs);\n myIndex.create();\n return myIndex\n}\n\nfunction parseIndex(\n data,\n { getFn = Config.getFn, fieldNormWeight = Config.fieldNormWeight } = {}\n) {\n const { keys, records } = data;\n const myIndex = new FuseIndex({ getFn, fieldNormWeight });\n myIndex.setKeys(keys);\n myIndex.setIndexRecords(records);\n return myIndex\n}\n\nfunction computeScore$1(\n pattern,\n {\n errors = 0,\n currentLocation = 0,\n expectedLocation = 0,\n distance = Config.distance,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n const accuracy = errors / pattern.length;\n\n if (ignoreLocation) {\n return accuracy\n }\n\n const proximity = Math.abs(expectedLocation - currentLocation);\n\n if (!distance) {\n // Dodge divide by zero error.\n return proximity ? 1.0 : accuracy\n }\n\n return accuracy + proximity / distance\n}\n\nfunction convertMaskToIndices(\n matchmask = [],\n minMatchCharLength = Config.minMatchCharLength\n) {\n let indices = [];\n let start = -1;\n let end = -1;\n let i = 0;\n\n for (let len = matchmask.length; i < len; i += 1) {\n let match = matchmask[i];\n if (match && start === -1) {\n start = i;\n } else if (!match && start !== -1) {\n end = i - 1;\n if (end - start + 1 >= minMatchCharLength) {\n indices.push([start, end]);\n }\n start = -1;\n }\n }\n\n // (i-1 - start) + 1 => i - start\n if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n indices.push([start, i - 1]);\n }\n\n return indices\n}\n\n// Machine word size\nconst MAX_BITS = 32;\n\nfunction search(\n text,\n pattern,\n patternAlphabet,\n {\n location = Config.location,\n distance = Config.distance,\n threshold = Config.threshold,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n includeMatches = Config.includeMatches,\n ignoreLocation = Config.ignoreLocation\n } = {}\n) {\n if (pattern.length > MAX_BITS) {\n throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS))\n }\n\n const patternLen = pattern.length;\n // Set starting location at beginning text and initialize the alphabet.\n const textLen = text.length;\n // Handle the case when location > text.length\n const expectedLocation = Math.max(0, Math.min(location, textLen));\n // Highest score beyond which we give up.\n let currentThreshold = threshold;\n // Is there a nearby exact match? (speedup)\n let bestLocation = expectedLocation;\n\n // Performance: only computer matches when the minMatchCharLength > 1\n // OR if `includeMatches` is true.\n const computeMatches = minMatchCharLength > 1 || includeMatches;\n // A mask of the matches, used for building the indices\n const matchMask = computeMatches ? Array(textLen) : [];\n\n let index;\n\n // Get all exact matches, here for speed up\n while ((index = text.indexOf(pattern, bestLocation)) > -1) {\n let score = computeScore$1(pattern, {\n currentLocation: index,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n currentThreshold = Math.min(score, currentThreshold);\n bestLocation = index + patternLen;\n\n if (computeMatches) {\n let i = 0;\n while (i < patternLen) {\n matchMask[index + i] = 1;\n i += 1;\n }\n }\n }\n\n // Reset the best location\n bestLocation = -1;\n\n let lastBitArr = [];\n let finalScore = 1;\n let binMax = patternLen + textLen;\n\n const mask = 1 << (patternLen - 1);\n\n for (let i = 0; i < patternLen; i += 1) {\n // Scan for the best match; each iteration allows for one more error.\n // Run a binary search to determine how far from the match location we can stray\n // at this error level.\n let binMin = 0;\n let binMid = binMax;\n\n while (binMin < binMid) {\n const score = computeScore$1(pattern, {\n errors: i,\n currentLocation: expectedLocation + binMid,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score <= currentThreshold) {\n binMin = binMid;\n } else {\n binMax = binMid;\n }\n\n binMid = Math.floor((binMax - binMin) / 2 + binMin);\n }\n\n // Use the result from this iteration as the maximum for the next.\n binMax = binMid;\n\n let start = Math.max(1, expectedLocation - binMid + 1);\n let finish = findAllMatches\n ? textLen\n : Math.min(expectedLocation + binMid, textLen) + patternLen;\n\n // Initialize the bit array\n let bitArr = Array(finish + 2);\n\n bitArr[finish + 1] = (1 << i) - 1;\n\n for (let j = finish; j >= start; j -= 1) {\n let currentLocation = j - 1;\n let charMatch = patternAlphabet[text.charAt(currentLocation)];\n\n if (computeMatches) {\n // Speed up: quick bool to int conversion (i.e, `charMatch ? 1 : 0`)\n matchMask[currentLocation] = +!!charMatch;\n }\n\n // First pass: exact match\n bitArr[j] = ((bitArr[j + 1] << 1) | 1) & charMatch;\n\n // Subsequent passes: fuzzy match\n if (i) {\n bitArr[j] |=\n ((lastBitArr[j + 1] | lastBitArr[j]) << 1) | 1 | lastBitArr[j + 1];\n }\n\n if (bitArr[j] & mask) {\n finalScore = computeScore$1(pattern, {\n errors: i,\n currentLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n // This match will almost certainly be better than any existing match.\n // But check anyway.\n if (finalScore <= currentThreshold) {\n // Indeed it is\n currentThreshold = finalScore;\n bestLocation = currentLocation;\n\n // Already passed `loc`, downhill from here on in.\n if (bestLocation <= expectedLocation) {\n break\n }\n\n // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n start = Math.max(1, 2 * expectedLocation - bestLocation);\n }\n }\n }\n\n // No hope for a (better) match at greater error levels.\n const score = computeScore$1(pattern, {\n errors: i + 1,\n currentLocation: expectedLocation,\n expectedLocation,\n distance,\n ignoreLocation\n });\n\n if (score > currentThreshold) {\n break\n }\n\n lastBitArr = bitArr;\n }\n\n const result = {\n isMatch: bestLocation >= 0,\n // Count exact matches (those with a score of 0) to be \"almost\" exact\n score: Math.max(0.001, finalScore)\n };\n\n if (computeMatches) {\n const indices = convertMaskToIndices(matchMask, minMatchCharLength);\n if (!indices.length) {\n result.isMatch = false;\n } else if (includeMatches) {\n result.indices = indices;\n }\n }\n\n return result\n}\n\nfunction createPatternAlphabet(pattern) {\n let mask = {};\n\n for (let i = 0, len = pattern.length; i < len; i += 1) {\n const char = pattern.charAt(i);\n mask[char] = (mask[char] || 0) | (1 << (len - i - 1));\n }\n\n return mask\n}\n\nclass BitapSearch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n this.options = {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n\n this.chunks = [];\n\n if (!this.pattern.length) {\n return\n }\n\n const addChunk = (pattern, startIndex) => {\n this.chunks.push({\n pattern,\n alphabet: createPatternAlphabet(pattern),\n startIndex\n });\n };\n\n const len = this.pattern.length;\n\n if (len > MAX_BITS) {\n let i = 0;\n const remainder = len % MAX_BITS;\n const end = len - remainder;\n\n while (i < end) {\n addChunk(this.pattern.substr(i, MAX_BITS), i);\n i += MAX_BITS;\n }\n\n if (remainder) {\n const startIndex = len - MAX_BITS;\n addChunk(this.pattern.substr(startIndex), startIndex);\n }\n } else {\n addChunk(this.pattern, 0);\n }\n }\n\n searchIn(text) {\n const { isCaseSensitive, includeMatches } = this.options;\n\n if (!isCaseSensitive) {\n text = text.toLowerCase();\n }\n\n // Exact match\n if (this.pattern === text) {\n let result = {\n isMatch: true,\n score: 0\n };\n\n if (includeMatches) {\n result.indices = [[0, text.length - 1]];\n }\n\n return result\n }\n\n // Otherwise, use Bitap algorithm\n const {\n location,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n ignoreLocation\n } = this.options;\n\n let allIndices = [];\n let totalScore = 0;\n let hasMatches = false;\n\n this.chunks.forEach(({ pattern, alphabet, startIndex }) => {\n const { isMatch, score, indices } = search(text, pattern, alphabet, {\n location: location + startIndex,\n distance,\n threshold,\n findAllMatches,\n minMatchCharLength,\n includeMatches,\n ignoreLocation\n });\n\n if (isMatch) {\n hasMatches = true;\n }\n\n totalScore += score;\n\n if (isMatch && indices) {\n allIndices = [...allIndices, ...indices];\n }\n });\n\n let result = {\n isMatch: hasMatches,\n score: hasMatches ? totalScore / this.chunks.length : 1\n };\n\n if (hasMatches && includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n}\n\nclass BaseMatch {\n constructor(pattern) {\n this.pattern = pattern;\n }\n static isMultiMatch(pattern) {\n return getMatch(pattern, this.multiRegex)\n }\n static isSingleMatch(pattern) {\n return getMatch(pattern, this.singleRegex)\n }\n search(/*text*/) {}\n}\n\nfunction getMatch(pattern, exp) {\n const matches = pattern.match(exp);\n return matches ? matches[1] : null\n}\n\n// Token: 'file\n\nclass ExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'exact'\n }\n static get multiRegex() {\n return /^=\"(.*)\"$/\n }\n static get singleRegex() {\n return /^=(.*)$/\n }\n search(text) {\n const isMatch = text === this.pattern;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !fire\n\nclass InverseExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!(.*)$/\n }\n search(text) {\n const index = text.indexOf(this.pattern);\n const isMatch = index === -1;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: ^file\n\nclass PrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'prefix-exact'\n }\n static get multiRegex() {\n return /^\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^\\^(.*)$/\n }\n search(text) {\n const isMatch = text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, this.pattern.length - 1]\n }\n }\n}\n\n// Token: !^fire\n\nclass InversePrefixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-prefix-exact'\n }\n static get multiRegex() {\n return /^!\\^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^!\\^(.*)$/\n }\n search(text) {\n const isMatch = !text.startsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\n// Token: .file$\n\nclass SuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'suffix-exact'\n }\n static get multiRegex() {\n return /^\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^(.*)\\$$/\n }\n search(text) {\n const isMatch = text.endsWith(this.pattern);\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [text.length - this.pattern.length, text.length - 1]\n }\n }\n}\n\n// Token: !.file$\n\nclass InverseSuffixExactMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'inverse-suffix-exact'\n }\n static get multiRegex() {\n return /^!\"(.*)\"\\$$/\n }\n static get singleRegex() {\n return /^!(.*)\\$$/\n }\n search(text) {\n const isMatch = !text.endsWith(this.pattern);\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices: [0, text.length - 1]\n }\n }\n}\n\nclass FuzzyMatch extends BaseMatch {\n constructor(\n pattern,\n {\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance,\n includeMatches = Config.includeMatches,\n findAllMatches = Config.findAllMatches,\n minMatchCharLength = Config.minMatchCharLength,\n isCaseSensitive = Config.isCaseSensitive,\n ignoreLocation = Config.ignoreLocation\n } = {}\n ) {\n super(pattern);\n this._bitapSearch = new BitapSearch(pattern, {\n location,\n threshold,\n distance,\n includeMatches,\n findAllMatches,\n minMatchCharLength,\n isCaseSensitive,\n ignoreLocation\n });\n }\n static get type() {\n return 'fuzzy'\n }\n static get multiRegex() {\n return /^\"(.*)\"$/\n }\n static get singleRegex() {\n return /^(.*)$/\n }\n search(text) {\n return this._bitapSearch.searchIn(text)\n }\n}\n\n// Token: 'file\n\nclass IncludeMatch extends BaseMatch {\n constructor(pattern) {\n super(pattern);\n }\n static get type() {\n return 'include'\n }\n static get multiRegex() {\n return /^'\"(.*)\"$/\n }\n static get singleRegex() {\n return /^'(.*)$/\n }\n search(text) {\n let location = 0;\n let index;\n\n const indices = [];\n const patternLen = this.pattern.length;\n\n // Get all exact matches\n while ((index = text.indexOf(this.pattern, location)) > -1) {\n location = index + patternLen;\n indices.push([index, location - 1]);\n }\n\n const isMatch = !!indices.length;\n\n return {\n isMatch,\n score: isMatch ? 0 : 1,\n indices\n }\n }\n}\n\n// ❗Order is important. DO NOT CHANGE.\nconst searchers = [\n ExactMatch,\n IncludeMatch,\n PrefixExactMatch,\n InversePrefixExactMatch,\n InverseSuffixExactMatch,\n SuffixExactMatch,\n InverseExactMatch,\n FuzzyMatch\n];\n\nconst searchersLen = searchers.length;\n\n// Regex to split by spaces, but keep anything in quotes together\nconst SPACE_RE = / +(?=(?:[^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)/;\nconst OR_TOKEN = '|';\n\n// Return a 2D array representation of the query, for simpler parsing.\n// Example:\n// \"^core go$ | rb$ | py$ xy$\" => [[\"^core\", \"go$\"], [\"rb$\"], [\"py$\", \"xy$\"]]\nfunction parseQuery(pattern, options = {}) {\n return pattern.split(OR_TOKEN).map((item) => {\n let query = item\n .trim()\n .split(SPACE_RE)\n .filter((item) => item && !!item.trim());\n\n let results = [];\n for (let i = 0, len = query.length; i < len; i += 1) {\n const queryItem = query[i];\n\n // 1. Handle multiple query match (i.e, once that are quoted, like `\"hello world\"`)\n let found = false;\n let idx = -1;\n while (!found && ++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isMultiMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n found = true;\n }\n }\n\n if (found) {\n continue\n }\n\n // 2. Handle single query matches (i.e, once that are *not* quoted)\n idx = -1;\n while (++idx < searchersLen) {\n const searcher = searchers[idx];\n let token = searcher.isSingleMatch(queryItem);\n if (token) {\n results.push(new searcher(token, options));\n break\n }\n }\n }\n\n return results\n })\n}\n\n// These extended matchers can return an array of matches, as opposed\n// to a singl match\nconst MultiMatchSet = new Set([FuzzyMatch.type, IncludeMatch.type]);\n\n/**\n * Command-like searching\n * ======================\n *\n * Given multiple search terms delimited by spaces.e.g. `^jscript .python$ ruby !java`,\n * search in a given text.\n *\n * Search syntax:\n *\n * | Token | Match type | Description |\n * | ----------- | -------------------------- | -------------------------------------- |\n * | `jscript` | fuzzy-match | Items that fuzzy match `jscript` |\n * | `=scheme` | exact-match | Items that are `scheme` |\n * | `'python` | include-match | Items that include `python` |\n * | `!ruby` | inverse-exact-match | Items that do not include `ruby` |\n * | `^java` | prefix-exact-match | Items that start with `java` |\n * | `!^earlang` | inverse-prefix-exact-match | Items that do not start with `earlang` |\n * | `.js$` | suffix-exact-match | Items that end with `.js` |\n * | `!.go$` | inverse-suffix-exact-match | Items that do not end with `.go` |\n *\n * A single pipe character acts as an OR operator. For example, the following\n * query matches entries that start with `core` and end with either`go`, `rb`,\n * or`py`.\n *\n * ```\n * ^core go$ | rb$ | py$\n * ```\n */\nclass ExtendedSearch {\n constructor(\n pattern,\n {\n isCaseSensitive = Config.isCaseSensitive,\n includeMatches = Config.includeMatches,\n minMatchCharLength = Config.minMatchCharLength,\n ignoreLocation = Config.ignoreLocation,\n findAllMatches = Config.findAllMatches,\n location = Config.location,\n threshold = Config.threshold,\n distance = Config.distance\n } = {}\n ) {\n this.query = null;\n this.options = {\n isCaseSensitive,\n includeMatches,\n minMatchCharLength,\n findAllMatches,\n ignoreLocation,\n location,\n threshold,\n distance\n };\n\n this.pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n this.query = parseQuery(this.pattern, this.options);\n }\n\n static condition(_, options) {\n return options.useExtendedSearch\n }\n\n searchIn(text) {\n const query = this.query;\n\n if (!query) {\n return {\n isMatch: false,\n score: 1\n }\n }\n\n const { includeMatches, isCaseSensitive } = this.options;\n\n text = isCaseSensitive ? text : text.toLowerCase();\n\n let numMatches = 0;\n let allIndices = [];\n let totalScore = 0;\n\n // ORs\n for (let i = 0, qLen = query.length; i < qLen; i += 1) {\n const searchers = query[i];\n\n // Reset indices\n allIndices.length = 0;\n numMatches = 0;\n\n // ANDs\n for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {\n const searcher = searchers[j];\n const { isMatch, indices, score } = searcher.search(text);\n\n if (isMatch) {\n numMatches += 1;\n totalScore += score;\n if (includeMatches) {\n const type = searcher.constructor.type;\n if (MultiMatchSet.has(type)) {\n allIndices = [...allIndices, ...indices];\n } else {\n allIndices.push(indices);\n }\n }\n } else {\n totalScore = 0;\n numMatches = 0;\n allIndices.length = 0;\n break\n }\n }\n\n // OR condition, so if TRUE, return\n if (numMatches) {\n let result = {\n isMatch: true,\n score: totalScore / numMatches\n };\n\n if (includeMatches) {\n result.indices = allIndices;\n }\n\n return result\n }\n }\n\n // Nothing was matched\n return {\n isMatch: false,\n score: 1\n }\n }\n}\n\nconst registeredSearchers = [];\n\nfunction register(...args) {\n registeredSearchers.push(...args);\n}\n\nfunction createSearcher(pattern, options) {\n for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {\n let searcherClass = registeredSearchers[i];\n if (searcherClass.condition(pattern, options)) {\n return new searcherClass(pattern, options)\n }\n }\n\n return new BitapSearch(pattern, options)\n}\n\nconst LogicalOperator = {\n AND: '$and',\n OR: '$or'\n};\n\nconst KeyType = {\n PATH: '$path',\n PATTERN: '$val'\n};\n\nconst isExpression = (query) =>\n !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);\n\nconst isPath = (query) => !!query[KeyType.PATH];\n\nconst isLeaf = (query) =>\n !isArray(query) && isObject(query) && !isExpression(query);\n\nconst convertToExplicit = (query) => ({\n [LogicalOperator.AND]: Object.keys(query).map((key) => ({\n [key]: query[key]\n }))\n});\n\n// When `auto` is `true`, the parse function will infer and initialize and add\n// the appropriate `Searcher` instance\nfunction parse(query, options, { auto = true } = {}) {\n const next = (query) => {\n let keys = Object.keys(query);\n\n const isQueryPath = isPath(query);\n\n if (!isQueryPath && keys.length > 1 && !isExpression(query)) {\n return next(convertToExplicit(query))\n }\n\n if (isLeaf(query)) {\n const key = isQueryPath ? query[KeyType.PATH] : keys[0];\n\n const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];\n\n if (!isString(pattern)) {\n throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key))\n }\n\n const obj = {\n keyId: createKeyId(key),\n pattern\n };\n\n if (auto) {\n obj.searcher = createSearcher(pattern, options);\n }\n\n return obj\n }\n\n let node = {\n children: [],\n operator: keys[0]\n };\n\n keys.forEach((key) => {\n const value = query[key];\n\n if (isArray(value)) {\n value.forEach((item) => {\n node.children.push(next(item));\n });\n }\n });\n\n return node\n };\n\n if (!isExpression(query)) {\n query = convertToExplicit(query);\n }\n\n return next(query)\n}\n\n// Practical scoring function\nfunction computeScore(\n results,\n { ignoreFieldNorm = Config.ignoreFieldNorm }\n) {\n results.forEach((result) => {\n let totalScore = 1;\n\n result.matches.forEach(({ key, norm, score }) => {\n const weight = key ? key.weight : null;\n\n totalScore *= Math.pow(\n score === 0 && weight ? Number.EPSILON : score,\n (weight || 1) * (ignoreFieldNorm ? 1 : norm)\n );\n });\n\n result.score = totalScore;\n });\n}\n\nfunction transformMatches(result, data) {\n const matches = result.matches;\n data.matches = [];\n\n if (!isDefined(matches)) {\n return\n }\n\n matches.forEach((match) => {\n if (!isDefined(match.indices) || !match.indices.length) {\n return\n }\n\n const { indices, value } = match;\n\n let obj = {\n indices,\n value\n };\n\n if (match.key) {\n obj.key = match.key.src;\n }\n\n if (match.idx > -1) {\n obj.refIndex = match.idx;\n }\n\n data.matches.push(obj);\n });\n}\n\nfunction transformScore(result, data) {\n data.score = result.score;\n}\n\nfunction format(\n results,\n docs,\n {\n includeMatches = Config.includeMatches,\n includeScore = Config.includeScore\n } = {}\n) {\n const transformers = [];\n\n if (includeMatches) transformers.push(transformMatches);\n if (includeScore) transformers.push(transformScore);\n\n return results.map((result) => {\n const { idx } = result;\n\n const data = {\n item: docs[idx],\n refIndex: idx\n };\n\n if (transformers.length) {\n transformers.forEach((transformer) => {\n transformer(result, data);\n });\n }\n\n return data\n })\n}\n\nclass Fuse {\n constructor(docs, options = {}, index) {\n this.options = { ...Config, ...options };\n\n if (\n this.options.useExtendedSearch &&\n !true\n ) {\n throw new Error(EXTENDED_SEARCH_UNAVAILABLE)\n }\n\n this._keyStore = new KeyStore(this.options.keys);\n\n this.setCollection(docs, index);\n }\n\n setCollection(docs, index) {\n this._docs = docs;\n\n if (index && !(index instanceof FuseIndex)) {\n throw new Error(INCORRECT_INDEX_TYPE)\n }\n\n this._myIndex =\n index ||\n createIndex(this.options.keys, this._docs, {\n getFn: this.options.getFn,\n fieldNormWeight: this.options.fieldNormWeight\n });\n }\n\n add(doc) {\n if (!isDefined(doc)) {\n return\n }\n\n this._docs.push(doc);\n this._myIndex.add(doc);\n }\n\n remove(predicate = (/* doc, idx */) => false) {\n const results = [];\n\n for (let i = 0, len = this._docs.length; i < len; i += 1) {\n const doc = this._docs[i];\n if (predicate(doc, i)) {\n this.removeAt(i);\n i -= 1;\n len -= 1;\n\n results.push(doc);\n }\n }\n\n return results\n }\n\n removeAt(idx) {\n this._docs.splice(idx, 1);\n this._myIndex.removeAt(idx);\n }\n\n getIndex() {\n return this._myIndex\n }\n\n search(query, { limit = -1 } = {}) {\n const {\n includeMatches,\n includeScore,\n shouldSort,\n sortFn,\n ignoreFieldNorm\n } = this.options;\n\n let results = isString(query)\n ? isString(this._docs[0])\n ? this._searchStringList(query)\n : this._searchObjectList(query)\n : this._searchLogical(query);\n\n computeScore(results, { ignoreFieldNorm });\n\n if (shouldSort) {\n results.sort(sortFn);\n }\n\n if (isNumber(limit) && limit > -1) {\n results = results.slice(0, limit);\n }\n\n return format(results, this._docs, {\n includeMatches,\n includeScore\n })\n }\n\n _searchStringList(query) {\n const searcher = createSearcher(query, this.options);\n const { records } = this._myIndex;\n const results = [];\n\n // Iterate over every string in the index\n records.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n results.push({\n item: text,\n idx,\n matches: [{ score, value: text, norm, indices }]\n });\n }\n });\n\n return results\n }\n\n _searchLogical(query) {\n\n const expression = parse(query, this.options);\n\n const evaluate = (node, item, idx) => {\n if (!node.children) {\n const { keyId, searcher } = node;\n\n const matches = this._findMatches({\n key: this._keyStore.get(keyId),\n value: this._myIndex.getValueForItemAtKeyId(item, keyId),\n searcher\n });\n\n if (matches && matches.length) {\n return [\n {\n idx,\n item,\n matches\n }\n ]\n }\n\n return []\n }\n\n const res = [];\n for (let i = 0, len = node.children.length; i < len; i += 1) {\n const child = node.children[i];\n const result = evaluate(child, item, idx);\n if (result.length) {\n res.push(...result);\n } else if (node.operator === LogicalOperator.AND) {\n return []\n }\n }\n return res\n };\n\n const records = this._myIndex.records;\n const resultMap = {};\n const results = [];\n\n records.forEach(({ $: item, i: idx }) => {\n if (isDefined(item)) {\n let expResults = evaluate(expression, item, idx);\n\n if (expResults.length) {\n // Dedupe when adding\n if (!resultMap[idx]) {\n resultMap[idx] = { idx, item, matches: [] };\n results.push(resultMap[idx]);\n }\n expResults.forEach(({ matches }) => {\n resultMap[idx].matches.push(...matches);\n });\n }\n }\n });\n\n return results\n }\n\n _searchObjectList(query) {\n const searcher = createSearcher(query, this.options);\n const { keys, records } = this._myIndex;\n const results = [];\n\n // List is Array\n records.forEach(({ $: item, i: idx }) => {\n if (!isDefined(item)) {\n return\n }\n\n let matches = [];\n\n // Iterate over every key (i.e, path), and fetch the value at that key\n keys.forEach((key, keyIndex) => {\n matches.push(\n ...this._findMatches({\n key,\n value: item[keyIndex],\n searcher\n })\n );\n });\n\n if (matches.length) {\n results.push({\n idx,\n item,\n matches\n });\n }\n });\n\n return results\n }\n _findMatches({ key, value, searcher }) {\n if (!isDefined(value)) {\n return []\n }\n\n let matches = [];\n\n if (isArray(value)) {\n value.forEach(({ v: text, i: idx, n: norm }) => {\n if (!isDefined(text)) {\n return\n }\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({\n score,\n key,\n value: text,\n idx,\n norm,\n indices\n });\n }\n });\n } else {\n const { v: text, n: norm } = value;\n\n const { isMatch, score, indices } = searcher.searchIn(text);\n\n if (isMatch) {\n matches.push({ score, key, value: text, norm, indices });\n }\n }\n\n return matches\n }\n}\n\nFuse.version = '7.0.0';\nFuse.createIndex = createIndex;\nFuse.parseIndex = parseIndex;\nFuse.config = Config;\n\n{\n Fuse.parseQuery = parse;\n}\n\n{\n register(ExtendedSearch);\n}\n\nexport { Fuse as default };\n","// @ts-strict-ignore\nimport { ComfyNodeDefImpl } from '@/stores/nodeDefStore'\nimport Fuse, { IFuseOptions, FuseSearchOptions } from 'fuse.js'\nimport _ from 'lodash'\n\nexport type SearchAuxScore = number[]\n\ninterface ExtraSearchOptions {\n matchWildcards?: boolean\n}\n\nexport class FuseSearch {\n private fuse: Fuse\n private readonly keys: string[]\n public readonly data: T[]\n public readonly advancedScoring: boolean\n\n constructor(\n data: T[],\n options?: IFuseOptions,\n createIndex: boolean = true,\n advancedScoring: boolean = false\n ) {\n this.data = data\n this.keys = (options.keys ?? []) as string[]\n this.advancedScoring = advancedScoring\n const index =\n createIndex && options?.keys\n ? Fuse.createIndex(options.keys, data)\n : undefined\n this.fuse = new Fuse(data, options, index)\n }\n\n public search(query: string, options?: FuseSearchOptions): T[] {\n const fuseResult = !query\n ? this.data.map((x) => ({ item: x, score: 0 }))\n : this.fuse.search(query, options)\n\n if (!this.advancedScoring) {\n return fuseResult.map((x) => x.item)\n }\n\n const aux = fuseResult\n .map((x) => ({\n item: x.item,\n scores: this.calcAuxScores(query.toLocaleLowerCase(), x.item, x.score)\n }))\n .sort((a, b) => this.compareAux(a.scores, b.scores))\n\n return aux.map((x) => x.item)\n }\n\n public calcAuxScores(query: string, entry: T, score: number): SearchAuxScore {\n let values: string[] = []\n if (!this.keys.length) values = [entry as string]\n else values = this.keys.map((x) => entry[x])\n const scores = values.map((x) => this.calcAuxSingle(query, x, score))\n let result = scores.sort(this.compareAux)[0]\n\n const deprecated = values.some((x) =>\n x.toLocaleLowerCase().includes('deprecated')\n )\n result[0] += deprecated && result[0] != 0 ? 5 : 0\n if (entry['postProcessSearchScores']) {\n result = entry['postProcessSearchScores'](result) as SearchAuxScore\n }\n return result\n }\n\n public calcAuxSingle(\n query: string,\n item: string,\n score: number\n ): SearchAuxScore {\n const itemWords = item\n .split(/ |\\b|(?<=[a-z])(?=[A-Z])|(?=[A-Z][a-z])/)\n .map((x) => x.toLocaleLowerCase())\n const queryParts = query.split(' ')\n item = item.toLocaleLowerCase()\n\n let main = 9\n let aux1 = 0\n let aux2 = 0\n\n if (item == query) {\n main = 0\n } else if (item.startsWith(query)) {\n main = 1\n aux2 = item.length\n } else if (itemWords.includes(query)) {\n main = 2\n aux1 = item.indexOf(query) + item.length * 0.5\n aux2 = item.length\n } else if (item.includes(query)) {\n main = 3\n aux1 = item.indexOf(query) + item.length * 0.5\n aux2 = item.length\n } else if (queryParts.every((x) => itemWords.includes(x))) {\n const indexes = queryParts.map((x) => itemWords.indexOf(x))\n const min = Math.min(...indexes)\n const max = Math.max(...indexes)\n main = 4\n aux1 = max - min + max * 0.5 + item.length * 0.5\n aux2 = item.length\n } else if (queryParts.every((x) => item.includes(x))) {\n const min = Math.min(...queryParts.map((x) => item.indexOf(x)))\n const max = Math.max(...queryParts.map((x) => item.indexOf(x) + x.length))\n main = 5\n aux1 = max - min + max * 0.5 + item.length * 0.5\n aux2 = item.length\n }\n\n const lengthPenalty =\n 0.2 *\n (1 -\n Math.min(item.length, query.length) /\n Math.max(item.length, query.length))\n return [main, aux1, aux2, score + lengthPenalty]\n }\n\n public compareAux(a: SearchAuxScore, b: SearchAuxScore) {\n for (let i = 0; i < Math.min(a.length, b.length); i++) {\n if (a[i] !== b[i]) {\n return a[i] - b[i]\n }\n }\n return a.length - b.length\n }\n}\n\nexport type FilterAndValue = [NodeFilter, T]\n\nexport abstract class NodeFilter {\n public abstract readonly id: string\n public abstract readonly name: string\n public abstract readonly invokeSequence: string\n public abstract readonly longInvokeSequence: string\n public readonly fuseSearch: FuseSearch\n\n constructor(\n nodeDefs: ComfyNodeDefImpl[],\n options?: IFuseOptions\n ) {\n this.fuseSearch = new FuseSearch(this.getAllNodeOptions(nodeDefs), options)\n }\n\n private getAllNodeOptions(nodeDefs: ComfyNodeDefImpl[]): FilterOptionT[] {\n return [\n ...new Set(\n nodeDefs.reduce((acc, nodeDef) => {\n return [...acc, ...this.getNodeOptions(nodeDef)]\n }, [])\n )\n ]\n }\n\n public abstract getNodeOptions(node: ComfyNodeDefImpl): FilterOptionT[]\n\n public matches(\n node: ComfyNodeDefImpl,\n value: FilterOptionT,\n extraOptions?: ExtraSearchOptions\n ): boolean {\n const matchWildcards = extraOptions?.matchWildcards !== false\n if (matchWildcards && value === '*') {\n return true\n }\n const options = this.getNodeOptions(node)\n return (\n options.includes(value) ||\n (matchWildcards && _.some(options, (option) => option === '*'))\n )\n }\n}\n\nexport class InputTypeFilter extends NodeFilter {\n public readonly id: string = 'input'\n public readonly name = 'Input Type'\n public readonly invokeSequence = 'i'\n public readonly longInvokeSequence = 'input'\n\n public override getNodeOptions(node: ComfyNodeDefImpl): string[] {\n return node.input.all.map((input) => input.type)\n }\n}\n\nexport class OutputTypeFilter extends NodeFilter {\n public readonly id: string = 'output'\n public readonly name = 'Output Type'\n public readonly invokeSequence = 'o'\n public readonly longInvokeSequence = 'output'\n\n public override getNodeOptions(node: ComfyNodeDefImpl): string[] {\n return node.output.all.map((output) => output.type)\n }\n}\n\nexport class NodeSourceFilter extends NodeFilter {\n public readonly id: string = 'source'\n public readonly name = 'Source'\n public readonly invokeSequence = 's'\n public readonly longInvokeSequence = 'source'\n\n public override getNodeOptions(node: ComfyNodeDefImpl): string[] {\n return [node.nodeSource.displayText]\n }\n}\n\nexport class NodeCategoryFilter extends NodeFilter {\n public readonly id: string = 'category'\n public readonly name = 'Category'\n public readonly invokeSequence = 'c'\n public readonly longInvokeSequence = 'category'\n\n public override getNodeOptions(node: ComfyNodeDefImpl): string[] {\n return [node.category]\n }\n}\n\nexport class NodeSearchService {\n public readonly nodeFuseSearch: FuseSearch\n public readonly nodeFilters: NodeFilter[]\n\n constructor(data: ComfyNodeDefImpl[]) {\n this.nodeFuseSearch = new FuseSearch(\n data,\n {\n keys: ['name', 'display_name'],\n includeScore: true,\n threshold: 0.3,\n shouldSort: false,\n useExtendedSearch: true\n },\n true,\n true\n )\n\n const filterSearchOptions = {\n includeScore: true,\n threshold: 0.3,\n shouldSort: true\n }\n\n this.nodeFilters = [\n new InputTypeFilter(data, filterSearchOptions),\n new OutputTypeFilter(data, filterSearchOptions),\n new NodeCategoryFilter(data, filterSearchOptions)\n ]\n\n if (data[0].python_module !== undefined) {\n this.nodeFilters.push(new NodeSourceFilter(data, filterSearchOptions))\n }\n }\n\n public endsWithFilterStartSequence(query: string): boolean {\n return query.endsWith(':')\n }\n\n public searchNode(\n query: string,\n filters: FilterAndValue[] = [],\n options?: FuseSearchOptions,\n extraOptions?: ExtraSearchOptions\n ): ComfyNodeDefImpl[] {\n const matchedNodes = this.nodeFuseSearch.search(query)\n\n const results = matchedNodes.filter((node) => {\n return _.every(filters, (filterAndValue) => {\n const [filter, value] = filterAndValue\n return filter.matches(node, value, extraOptions)\n })\n })\n\n return options?.limit ? results.slice(0, options.limit) : results\n }\n\n public getFilterById(id: string): NodeFilter | undefined {\n return this.nodeFilters.find((filter) => filter.id === id)\n }\n}\n","// @ts-strict-ignore\nimport {\n NodeSearchService,\n type SearchAuxScore\n} from '@/services/nodeSearchService'\nimport {\n type ComfyNodeDef,\n type ComfyInputsSpec as ComfyInputsSpecSchema\n} from '@/types/apiTypes'\nimport { defineStore } from 'pinia'\nimport { ComfyWidgetConstructor } from '@/scripts/widgets'\nimport { TreeNode } from 'primevue/treenode'\nimport { buildTree } from '@/utils/treeUtil'\nimport { computed, ref } from 'vue'\nimport axios from 'axios'\nimport { type NodeSource, getNodeSource } from '@/types/nodeSource'\n\nexport interface BaseInputSpec {\n name: string\n type: string\n tooltip?: string\n default?: T\n\n forceInput?: boolean\n}\n\nexport interface NumericInputSpec extends BaseInputSpec {\n min?: number\n max?: number\n step?: number\n}\n\nexport interface IntInputSpec extends NumericInputSpec {\n type: 'INT'\n}\n\nexport interface FloatInputSpec extends NumericInputSpec {\n type: 'FLOAT'\n round?: number\n}\n\nexport interface BooleanInputSpec extends BaseInputSpec {\n type: 'BOOLEAN'\n labelOn?: string\n labelOff?: string\n}\n\nexport interface StringInputSpec extends BaseInputSpec {\n type: 'STRING'\n multiline?: boolean\n dynamicPrompts?: boolean\n}\n\nexport interface ComboInputSpec extends BaseInputSpec {\n type: 'COMBO'\n comboOptions: any[]\n controlAfterGenerate?: boolean\n imageUpload?: boolean\n}\n\nexport class ComfyInputsSpec {\n required: Record\n optional: Record\n hidden?: Record\n\n constructor(obj: ComfyInputsSpecSchema) {\n this.required = ComfyInputsSpec.transformInputSpecRecord(obj.required) ?? {}\n this.optional = ComfyInputsSpec.transformInputSpecRecord(obj.optional) ?? {}\n this.hidden = obj.hidden\n }\n\n private static transformInputSpecRecord(\n record: Record\n ): Record {\n if (!record) return record\n const result: Record = {}\n for (const [key, value] of Object.entries(record)) {\n result[key] = ComfyInputsSpec.transformSingleInputSpec(key, value)\n }\n return result\n }\n\n private static isInputSpec(obj: any): boolean {\n return (\n Array.isArray(obj) &&\n obj.length >= 1 &&\n (typeof obj[0] === 'string' || Array.isArray(obj[0]))\n )\n }\n\n private static transformSingleInputSpec(\n name: string,\n value: any\n ): BaseInputSpec {\n if (!ComfyInputsSpec.isInputSpec(value)) return value\n\n const [typeRaw, _spec] = value\n const spec = _spec ?? {}\n const type = Array.isArray(typeRaw) ? 'COMBO' : value[0]\n\n switch (type) {\n case 'COMBO':\n return {\n name,\n type,\n ...spec,\n comboOptions: typeRaw,\n default: spec.default ?? typeRaw[0]\n } as ComboInputSpec\n case 'INT':\n case 'FLOAT':\n case 'BOOLEAN':\n case 'STRING':\n default:\n return { name, type, ...spec } as BaseInputSpec\n }\n }\n\n get all() {\n return [...Object.values(this.required), ...Object.values(this.optional)]\n }\n\n getInput(name: string): BaseInputSpec | undefined {\n return this.required[name] ?? this.optional[name]\n }\n}\n\nexport class ComfyOutputSpec {\n constructor(\n public index: number,\n // Name is not unique for output params\n public name: string,\n public type: string,\n public is_list: boolean,\n public comboOptions?: any[],\n public tooltip?: string\n ) {}\n}\n\nexport class ComfyOutputsSpec {\n constructor(public outputs: ComfyOutputSpec[]) {}\n\n get all() {\n return this.outputs\n }\n}\n\n/**\n * Note: This class does not implement the ComfyNodeDef interface, as we are\n * using a custom output spec for output definitions.\n */\nexport class ComfyNodeDefImpl {\n name: string\n display_name: string\n category: string\n python_module: string\n description: string\n deprecated: boolean\n experimental: boolean\n input: ComfyInputsSpec\n output: ComfyOutputsSpec\n nodeSource: NodeSource\n\n constructor(obj: ComfyNodeDef) {\n this.name = obj.name\n this.display_name = obj.display_name\n this.category = obj.category\n this.python_module = obj.python_module\n this.description = obj.description\n this.deprecated = obj.deprecated ?? obj.category === ''\n this.experimental =\n obj.experimental ?? obj.category.startsWith('_for_testing')\n this.input = new ComfyInputsSpec(obj.input ?? {})\n this.output = ComfyNodeDefImpl.transformOutputSpec(obj)\n this.nodeSource = getNodeSource(obj.python_module)\n }\n\n private static transformOutputSpec(obj: any): ComfyOutputsSpec {\n const { output, output_is_list, output_name, output_tooltips } = obj\n const result = (output ?? []).map((type: string | any[], index: number) => {\n const typeString = Array.isArray(type) ? 'COMBO' : type\n\n return new ComfyOutputSpec(\n index,\n output_name?.[index],\n typeString,\n output_is_list?.[index],\n Array.isArray(type) ? type : undefined,\n output_tooltips?.[index]\n )\n })\n return new ComfyOutputsSpec(result)\n }\n\n get nodePath(): string {\n return (this.category ? this.category + '/' : '') + this.name\n }\n\n get isDummyFolder(): boolean {\n return this.name === ''\n }\n\n postProcessSearchScores(scores: SearchAuxScore): SearchAuxScore {\n const nodeFrequencyStore = useNodeFrequencyStore()\n const nodeFrequency = nodeFrequencyStore.getNodeFrequencyByName(this.name)\n return [scores[0], -nodeFrequency, ...scores.slice(1)]\n }\n}\n\nexport const SYSTEM_NODE_DEFS: Record = {\n PrimitiveNode: {\n name: 'PrimitiveNode',\n display_name: 'Primitive',\n category: 'utils',\n input: { required: {}, optional: {} },\n output: ['*'],\n output_name: ['connect to widget input'],\n output_is_list: [false],\n python_module: 'nodes',\n description: 'Primitive values like numbers, strings, and booleans.'\n },\n Reroute: {\n name: 'Reroute',\n display_name: 'Reroute',\n category: 'utils',\n input: { required: { '': ['*'] }, optional: {} },\n output: ['*'],\n output_name: [''],\n output_is_list: [false],\n python_module: 'nodes',\n description: 'Reroute the connection to another node.'\n },\n Note: {\n name: 'Note',\n display_name: 'Note',\n category: 'utils',\n input: { required: {}, optional: {} },\n output: [],\n output_name: [],\n output_is_list: [],\n python_module: 'nodes',\n description: 'Node that add notes to your project'\n }\n}\n\nexport function buildNodeDefTree(nodeDefs: ComfyNodeDefImpl[]): TreeNode {\n return buildTree(nodeDefs, (nodeDef: ComfyNodeDefImpl) =>\n nodeDef.nodePath.split('/')\n )\n}\n\nexport function createDummyFolderNodeDef(folderPath: string): ComfyNodeDefImpl {\n return new ComfyNodeDefImpl({\n name: '',\n display_name: '',\n category: folderPath.endsWith('/') ? folderPath.slice(0, -1) : folderPath,\n python_module: 'nodes',\n description: 'Dummy Folder Node (User should never see this string)',\n input: {},\n output: [],\n output_name: [],\n output_is_list: []\n } as ComfyNodeDef)\n}\n\ninterface State {\n nodeDefsByName: Record\n nodeDefsByDisplayName: Record\n widgets: Record\n showDeprecated: boolean\n showExperimental: boolean\n}\n\nexport const useNodeDefStore = defineStore('nodeDef', {\n state: (): State => ({\n nodeDefsByName: {},\n nodeDefsByDisplayName: {},\n widgets: {},\n showDeprecated: false,\n showExperimental: false\n }),\n getters: {\n nodeDefs(state) {\n return Object.values(state.nodeDefsByName)\n },\n // Node defs that are not deprecated\n visibleNodeDefs(state): ComfyNodeDefImpl[] {\n return this.nodeDefs.filter(\n (nodeDef: ComfyNodeDefImpl) =>\n (state.showDeprecated || !nodeDef.deprecated) &&\n (state.showExperimental || !nodeDef.experimental)\n )\n },\n nodeSearchService() {\n return new NodeSearchService(this.visibleNodeDefs)\n },\n nodeTree(): TreeNode {\n return buildNodeDefTree(this.visibleNodeDefs)\n }\n },\n actions: {\n updateNodeDefs(nodeDefs: ComfyNodeDef[]) {\n const newNodeDefsByName: { [key: string]: ComfyNodeDefImpl } = {}\n const nodeDefsByDisplayName: { [key: string]: ComfyNodeDefImpl } = {}\n for (const nodeDef of nodeDefs) {\n const nodeDefImpl = new ComfyNodeDefImpl(nodeDef)\n newNodeDefsByName[nodeDef.name] = nodeDefImpl\n nodeDefsByDisplayName[nodeDef.display_name] = nodeDefImpl\n }\n this.nodeDefsByName = newNodeDefsByName\n this.nodeDefsByDisplayName = nodeDefsByDisplayName\n },\n addNodeDef(nodeDef: ComfyNodeDef) {\n const nodeDefImpl = new ComfyNodeDefImpl(nodeDef)\n this.nodeDefsByName[nodeDef.name] = nodeDefImpl\n this.nodeDefsByDisplayName[nodeDef.display_name] = nodeDefImpl\n },\n updateWidgets(widgets: Record) {\n this.widgets = widgets\n },\n getWidgetType(type: string, inputName: string) {\n if (type === 'COMBO') {\n return 'COMBO'\n } else if (`${type}:${inputName}` in this.widgets) {\n return `${type}:${inputName}`\n } else if (type in this.widgets) {\n return type\n } else {\n return null\n }\n },\n inputIsWidget(spec: BaseInputSpec) {\n return this.getWidgetType(spec.type, spec.name) !== null\n }\n }\n})\n\nexport const useNodeFrequencyStore = defineStore('nodeFrequency', () => {\n const topNodeDefLimit = ref(64)\n const nodeFrequencyLookup = ref>({})\n const nodeNamesByFrequency = computed(() =>\n Object.keys(nodeFrequencyLookup.value)\n )\n const isLoaded = ref(false)\n\n const loadNodeFrequencies = async () => {\n if (!isLoaded.value) {\n try {\n const response = await axios.get('assets/sorted-custom-node-map.json')\n nodeFrequencyLookup.value = response.data\n isLoaded.value = true\n } catch (error) {\n console.error('Error loading node frequencies:', error)\n }\n }\n }\n\n const getNodeFrequency = (nodeDef: ComfyNodeDefImpl) => {\n return getNodeFrequencyByName(nodeDef.name)\n }\n\n const getNodeFrequencyByName = (nodeName: string) => {\n return nodeFrequencyLookup.value[nodeName] ?? 0\n }\n\n const nodeDefStore = useNodeDefStore()\n const topNodeDefs = computed(() => {\n return nodeNamesByFrequency.value\n .map((nodeName: string) => nodeDefStore.nodeDefsByName[nodeName])\n .filter((nodeDef: ComfyNodeDefImpl) => nodeDef !== undefined)\n .slice(0, topNodeDefLimit.value)\n })\n\n return {\n nodeNamesByFrequency,\n topNodeDefs,\n isLoaded,\n loadNodeFrequencies,\n getNodeFrequency,\n getNodeFrequencyByName\n }\n})\n","import { api } from '@/scripts/api'\nimport { defineStore } from 'pinia'\n\n/** (Internal helper) finds a value in a metadata object from any of a list of keys. */\nfunction _findInMetadata(metadata: any, ...keys: string[]): string | null {\n for (const key of keys) {\n if (key in metadata) {\n return metadata[key]\n }\n for (const k in metadata) {\n if (k.endsWith(key)) {\n return metadata[k]\n }\n }\n }\n return null\n}\n\n/** Defines and holds metadata for a model */\nexport class ComfyModelDef {\n /** Proper filename of the model */\n readonly file_name: string\n /** Normalized filename of the model, with all backslashes replaced with forward slashes */\n readonly normalized_file_name: string\n /** Directory containing the model, eg 'checkpoints' */\n readonly directory: string\n /** Simplified copy of name, used as a default title. Excludes the directory and the '.safetensors' file extension */\n readonly simplified_file_name: string\n /** Key for the model, used to uniquely identify the model. */\n readonly key: string\n /** Title / display name of the model, sometimes same as the name but not always */\n title: string\n /** Metadata: architecture ID for the model, such as 'stable-diffusion-xl-v1-base' */\n architecture_id: string = ''\n /** Metadata: author of the model */\n author: string = ''\n /** Metadata: resolution of the model, eg '1024x1024' */\n resolution: string = ''\n /** Metadata: description of the model */\n description: string = ''\n /** Metadata: usage hint for the model */\n usage_hint: string = ''\n /** Metadata: trigger phrase for the model */\n trigger_phrase: string = ''\n /** Metadata: tags list for the model */\n tags: string[] = []\n /** Metadata: image for the model */\n image: string = ''\n /** Whether the model metadata has been loaded from the server, used for `load()` */\n has_loaded_metadata: boolean = false\n /** If true, a metadata load request has been triggered, but may or may not yet have finished loading */\n is_load_requested: boolean = false\n /** If true, this is a fake model object used as a placeholder for something (eg a loading icon) */\n is_fake_object: boolean = false\n /** A string full of auto-computed lowercase-only searchable text for this model */\n searchable: string = ''\n\n constructor(name: string, directory: string) {\n this.file_name = name\n this.normalized_file_name = name.replaceAll('\\\\', '/')\n this.simplified_file_name = this.normalized_file_name.split('/').pop() ?? ''\n if (this.simplified_file_name.endsWith('.safetensors')) {\n this.simplified_file_name = this.simplified_file_name.slice(\n 0,\n -'.safetensors'.length\n )\n }\n this.title = this.simplified_file_name\n this.directory = directory\n this.key = `${directory}/${this.normalized_file_name}`\n this.updateSearchable()\n }\n\n updateSearchable() {\n this.searchable = [\n this.file_name,\n this.title,\n this.author,\n this.description,\n this.trigger_phrase,\n this.tags.join(', ')\n ]\n .join('\\n')\n .toLowerCase()\n }\n\n /** Loads the model metadata from the server, filling in this object if data is available */\n async load(): Promise {\n if (this.has_loaded_metadata || this.is_load_requested) {\n return\n }\n this.is_load_requested = true\n try {\n const metadata = await api.viewMetadata(this.directory, this.file_name)\n if (!metadata) {\n return\n }\n this.title =\n _findInMetadata(\n metadata,\n 'modelspec.title',\n 'title',\n 'display_name',\n 'name'\n ) || this.title\n this.architecture_id =\n _findInMetadata(metadata, 'modelspec.architecture', 'architecture') ||\n ''\n this.author =\n _findInMetadata(metadata, 'modelspec.author', 'author') || ''\n this.description =\n _findInMetadata(metadata, 'modelspec.description', 'description') || ''\n this.resolution =\n _findInMetadata(metadata, 'modelspec.resolution', 'resolution') || ''\n this.usage_hint =\n _findInMetadata(metadata, 'modelspec.usage_hint', 'usage_hint') || ''\n this.trigger_phrase =\n _findInMetadata(\n metadata,\n 'modelspec.trigger_phrase',\n 'trigger_phrase'\n ) || ''\n this.image =\n _findInMetadata(\n metadata,\n 'modelspec.thumbnail',\n 'thumbnail',\n 'image',\n 'icon'\n ) || ''\n const tagsCommaSeparated =\n _findInMetadata(metadata, 'modelspec.tags', 'tags') || ''\n this.tags = tagsCommaSeparated.split(',').map((tag) => tag.trim())\n this.has_loaded_metadata = true\n this.updateSearchable()\n } catch (error) {\n console.error('Error loading model metadata', this.file_name, this, error)\n }\n }\n}\n\nexport class ModelFolder {\n models: Record = {}\n\n constructor(directory: string, models: string[]) {\n for (const model of models) {\n this.models[model] = new ComfyModelDef(model, directory)\n }\n }\n\n async loadModelMetadata(modelName: string) {\n if (this.models[modelName]) {\n await this.models[modelName].load()\n }\n }\n}\n\nconst folderBlacklist = ['configs', 'custom_nodes']\n\n/** Model store handler, wraps individual per-folder model stores */\nexport const useModelStore = defineStore('modelStore', {\n state: () => ({\n modelStoreMap: {} as Record,\n isLoading: {} as Record | null>,\n modelFolders: [] as string[]\n }),\n actions: {\n async getModelsInFolderCached(folder: string): Promise {\n if (folder in this.modelStoreMap) {\n return this.modelStoreMap[folder]\n }\n if (this.isLoading[folder]) {\n return this.isLoading[folder]\n }\n const promise = api.getModels(folder).then((models) => {\n if (!models) {\n return null\n }\n const store = new ModelFolder(folder, models)\n this.modelStoreMap[folder] = store\n this.isLoading[folder] = null\n return store\n })\n this.isLoading[folder] = promise\n return promise\n },\n clearCache() {\n this.modelStoreMap = {}\n },\n async getModelFolders() {\n this.modelFolders = (await api.getModelFolders()).filter(\n (folder) => !folderBlacklist.includes(folder)\n )\n }\n }\n})\n","// @ts-strict-ignore\nimport { ref, computed } from 'vue'\nimport { defineStore } from 'pinia'\nimport { api } from '../scripts/api'\nimport { ComfyWorkflow } from '@/scripts/workflows'\nimport type { ComfyNode, ComfyWorkflowJSON } from '@/types/comfyWorkflow'\n\nexport interface QueuedPrompt {\n nodes: Record\n workflow?: ComfyWorkflow\n}\n\ninterface NodeProgress {\n value: number\n max: number\n}\n\nexport const useExecutionStore = defineStore('execution', () => {\n const activePromptId = ref(null)\n const queuedPrompts = ref>({})\n const executingNodeId = ref(null)\n const executingNode = computed(() => {\n if (!executingNodeId.value) return null\n\n const workflow: ComfyWorkflow | null = activePrompt.value?.workflow\n if (!workflow) return null\n\n const canvasState: ComfyWorkflowJSON | null =\n workflow.changeTracker?.activeState\n if (!canvasState) return null\n\n return (\n canvasState.nodes.find((n) => String(n.id) === executingNodeId.value) ??\n null\n )\n })\n\n // This is the progress of the currently executing node, if any\n const _executingNodeProgress = ref(null)\n const executingNodeProgress = computed(() =>\n _executingNodeProgress.value\n ? Math.round(\n (_executingNodeProgress.value.value /\n _executingNodeProgress.value.max) *\n 100\n )\n : null\n )\n\n const activePrompt = computed(() => queuedPrompts.value[activePromptId.value])\n\n const totalNodesToExecute = computed(() => {\n if (!activePrompt.value) return 0\n return Object.values(activePrompt.value.nodes).length\n })\n\n const isIdle = computed(() => !activePromptId.value)\n\n const nodesExecuted = computed(() => {\n if (!activePrompt.value) return 0\n return Object.values(activePrompt.value.nodes).filter(Boolean).length\n })\n\n const executionProgress = computed(() => {\n if (!activePrompt.value) return 0\n const total = totalNodesToExecute.value\n const done = nodesExecuted.value\n return Math.round((done / total) * 100)\n })\n\n function bindExecutionEvents() {\n api.addEventListener('execution_start', handleExecutionStart)\n api.addEventListener('execution_cached', handleExecutionCached)\n api.addEventListener('executed', handleExecuted)\n api.addEventListener('executing', handleExecuting)\n api.addEventListener('progress', handleProgress)\n }\n\n function unbindExecutionEvents() {\n api.removeEventListener('execution_start', handleExecutionStart)\n api.removeEventListener('execution_cached', handleExecutionCached)\n api.removeEventListener('executed', handleExecuted)\n api.removeEventListener('executing', handleExecuting)\n api.removeEventListener('progress', handleProgress)\n }\n\n function handleExecutionStart(e: CustomEvent) {\n activePromptId.value = e.detail.prompt_id\n queuedPrompts.value[activePromptId.value] ??= { nodes: {} }\n }\n\n function handleExecutionCached(e: CustomEvent) {\n if (!activePrompt.value) return\n for (const n of e.detail.nodes) {\n activePrompt.value.nodes[n] = true\n }\n }\n\n function handleExecuted(e: CustomEvent) {\n if (!activePrompt.value) return\n activePrompt.value.nodes[e.detail.node] = true\n }\n\n function handleExecuting(e: CustomEvent) {\n // Clear the current node progress when a new node starts executing\n _executingNodeProgress.value = null\n\n if (!activePrompt.value) return\n\n if (executingNodeId.value) {\n // Seems sometimes nodes that are cached fire executing but not executed\n activePrompt.value.nodes[executingNodeId.value] = true\n }\n executingNodeId.value = e.detail ? String(e.detail) : null\n if (!executingNodeId.value) {\n delete queuedPrompts.value[activePromptId.value]\n activePromptId.value = null\n }\n }\n\n function handleProgress(e: CustomEvent) {\n _executingNodeProgress.value = e.detail\n }\n\n function storePrompt({\n nodes,\n id,\n workflow\n }: {\n nodes: string[]\n id: string\n workflow: any\n }) {\n queuedPrompts.value[id] ??= { nodes: {} }\n const queuedPrompt = queuedPrompts.value[id]\n queuedPrompt.nodes = {\n ...nodes.reduce((p, n) => {\n p[n] = false\n return p\n }, {}),\n ...queuedPrompt.nodes\n }\n queuedPrompt.workflow = workflow\n\n console.debug(\n `queued task ${id} with ${Object.values(queuedPrompt.nodes).length} nodes`\n )\n }\n\n return {\n isIdle,\n activePromptId,\n queuedPrompts,\n executingNodeId,\n activePrompt,\n totalNodesToExecute,\n nodesExecuted,\n executionProgress,\n executingNode,\n executingNodeProgress,\n bindExecutionEvents,\n unbindExecutionEvents,\n storePrompt\n }\n})\n","import type { Keybinding } from '@/types/keyBindingTypes'\n\nexport const CORE_KEYBINDINGS: Keybinding[] = [\n {\n combo: {\n ctrl: true,\n key: 'Enter'\n },\n commandId: 'Comfy.QueuePrompt'\n },\n {\n combo: {\n ctrl: true,\n shift: true,\n key: 'Enter'\n },\n commandId: 'Comfy.QueuePromptFront'\n },\n {\n combo: {\n ctrl: true,\n alt: true,\n key: 'Enter'\n },\n commandId: 'Comfy.Interrupt'\n },\n {\n combo: {\n key: 'r'\n },\n commandId: 'Comfy.RefreshNodeDefinitions'\n },\n {\n combo: {\n key: 'q'\n },\n commandId: 'Workspace.ToggleSidebarTab.queue'\n },\n {\n combo: {\n key: 'w'\n },\n commandId: 'Workspace.ToggleSidebarTab.workflows'\n },\n {\n combo: {\n key: 'n'\n },\n commandId: 'Workspace.ToggleSidebarTab.node-library'\n },\n {\n combo: {\n key: 'm'\n },\n commandId: 'Workspace.ToggleSidebarTab.model-library'\n },\n {\n combo: {\n key: 's',\n ctrl: true\n },\n commandId: 'Comfy.ExportWorkflow'\n },\n {\n combo: {\n key: 'o',\n ctrl: true\n },\n commandId: 'Comfy.OpenWorkflow'\n },\n {\n combo: {\n key: 'Backspace'\n },\n commandId: 'Comfy.ClearWorkflow'\n },\n {\n combo: {\n key: 'd',\n ctrl: true\n },\n commandId: 'Comfy.LoadDefaultWorkflow'\n },\n {\n combo: {\n key: 'g',\n ctrl: true\n },\n commandId: 'Comfy.Graph.GroupSelectedNodes'\n },\n {\n combo: {\n key: ',',\n ctrl: true\n },\n commandId: 'Comfy.ShowSettingsDialog'\n },\n // For '=' both holding shift and not holding shift\n {\n combo: {\n key: '=',\n alt: true\n },\n commandId: 'Comfy.Canvas.ZoomIn',\n targetSelector: '#graph-canvas'\n },\n {\n combo: {\n key: '+',\n alt: true,\n shift: true\n },\n commandId: 'Comfy.Canvas.ZoomIn',\n targetSelector: '#graph-canvas'\n },\n // For number pad '+'\n {\n combo: {\n key: '+',\n alt: true\n },\n commandId: 'Comfy.Canvas.ZoomIn',\n targetSelector: '#graph-canvas'\n },\n {\n combo: {\n key: '-',\n alt: true\n },\n commandId: 'Comfy.Canvas.ZoomOut',\n targetSelector: '#graph-canvas'\n },\n {\n combo: {\n key: 'p'\n },\n commandId: 'Comfy.Canvas.ToggleSelectedNodes.Pin',\n targetSelector: '#graph-canvas'\n },\n {\n combo: {\n key: 'c',\n alt: true\n },\n commandId: 'Comfy.Canvas.ToggleSelectedNodes.Collapse',\n targetSelector: '#graph-canvas'\n },\n {\n combo: {\n key: 'b',\n ctrl: true\n },\n commandId: 'Comfy.Canvas.ToggleSelectedNodes.Bypass',\n targetSelector: '#graph-canvas'\n },\n {\n combo: {\n key: 'm',\n ctrl: true\n },\n commandId: 'Comfy.Canvas.ToggleSelectedNodes.Mute',\n targetSelector: '#graph-canvas'\n }\n]\n","import { defineStore } from 'pinia'\nimport { computed, Ref, ref, toRaw } from 'vue'\nimport { Keybinding, KeyCombo } from '@/types/keyBindingTypes'\nimport { useSettingStore } from './settingStore'\nimport { CORE_KEYBINDINGS } from './coreKeybindings'\nimport type { ComfyExtension } from '@/types/comfy'\n\nexport class KeybindingImpl implements Keybinding {\n commandId: string\n combo: KeyComboImpl\n targetSelector?: string\n\n constructor(obj: Keybinding) {\n this.commandId = obj.commandId\n this.combo = new KeyComboImpl(obj.combo)\n this.targetSelector = obj.targetSelector\n }\n\n equals(other: any): boolean {\n if (toRaw(other) instanceof KeybindingImpl) {\n return (\n this.commandId === other.commandId &&\n this.combo.equals(other.combo) &&\n this.targetSelector === other.targetSelector\n )\n }\n return false\n }\n}\n\nexport class KeyComboImpl implements KeyCombo {\n key: string\n // ctrl or meta(cmd on mac)\n ctrl: boolean\n alt: boolean\n shift: boolean\n\n constructor(obj: KeyCombo) {\n this.key = obj.key\n this.ctrl = obj.ctrl ?? false\n this.alt = obj.alt ?? false\n this.shift = obj.shift ?? false\n }\n\n static fromEvent(event: KeyboardEvent) {\n return new KeyComboImpl({\n key: event.key,\n ctrl: event.ctrlKey || event.metaKey,\n alt: event.altKey,\n shift: event.shiftKey\n })\n }\n\n equals(other: any): boolean {\n if (toRaw(other) instanceof KeyComboImpl) {\n return (\n this.key === other.key &&\n this.ctrl === other.ctrl &&\n this.alt === other.alt &&\n this.shift === other.shift\n )\n }\n return false\n }\n\n serialize(): string {\n return `${this.key}:${this.ctrl}:${this.alt}:${this.shift}`\n }\n\n deserialize(serialized: string): KeyComboImpl {\n const [key, ctrl, alt, shift] = serialized.split(':')\n return new KeyComboImpl({\n key,\n ctrl: ctrl === 'true',\n alt: alt === 'true',\n shift: shift === 'true'\n })\n }\n\n toString(): string {\n return this.getKeySequences().join(' + ')\n }\n\n get hasModifier(): boolean {\n return this.ctrl || this.alt || this.shift\n }\n\n get isModifier(): boolean {\n return ['Control', 'Meta', 'Alt', 'Shift'].includes(this.key)\n }\n\n getKeySequences(): string[] {\n const sequences: string[] = []\n if (this.ctrl) {\n sequences.push('Ctrl')\n }\n if (this.alt) {\n sequences.push('Alt')\n }\n if (this.shift) {\n sequences.push('Shift')\n }\n sequences.push(this.key)\n return sequences\n }\n}\n\nexport const useKeybindingStore = defineStore('keybinding', () => {\n /**\n * Default keybindings provided by core and extensions.\n */\n const defaultKeybindings = ref>({})\n /**\n * User-defined keybindings.\n */\n const userKeybindings = ref>({})\n /**\n * User-defined keybindings that unset default keybindings.\n */\n const userUnsetKeybindings = ref>({})\n\n const keybindingByKeyCombo = computed>(() => {\n const result: Record = {\n ...defaultKeybindings.value,\n ...userKeybindings.value\n }\n\n for (const keybinding of Object.values(userUnsetKeybindings.value)) {\n const serializedCombo = keybinding.combo.serialize()\n if (result[serializedCombo]?.equals(keybinding)) {\n delete result[serializedCombo]\n }\n }\n return result\n })\n\n const keybindings = computed(() =>\n Object.values(keybindingByKeyCombo.value)\n )\n\n function getKeybinding(combo: KeyComboImpl) {\n return keybindingByKeyCombo.value[combo.serialize()]\n }\n\n function createKeybindingsByCommandId(keybindings: KeybindingImpl[]) {\n const result: Record = {}\n for (const keybinding of keybindings) {\n if (!(keybinding.commandId in result)) {\n result[keybinding.commandId] = []\n }\n result[keybinding.commandId].push(keybinding)\n }\n return result\n }\n\n const keybindingsByCommandId = computed>(\n () => {\n return createKeybindingsByCommandId(keybindings.value)\n }\n )\n\n function getKeybindingsByCommandId(commandId: string) {\n return keybindingsByCommandId.value[commandId] ?? []\n }\n\n const defaultKeybindingsByCommandId = computed<\n Record\n >(() => {\n return createKeybindingsByCommandId(Object.values(defaultKeybindings.value))\n })\n\n function getKeybindingByCommandId(commandId: string) {\n return getKeybindingsByCommandId(commandId)[0]\n }\n\n function addKeybinding(\n target: Ref>,\n keybinding: KeybindingImpl,\n { existOk = false }: { existOk: boolean }\n ) {\n if (!existOk && keybinding.combo.serialize() in target.value) {\n throw new Error(\n `Keybinding on ${keybinding.combo} already exists on ${\n target.value[keybinding.combo.serialize()].commandId\n }`\n )\n }\n target.value[keybinding.combo.serialize()] = keybinding\n }\n\n function addDefaultKeybinding(keybinding: KeybindingImpl) {\n addKeybinding(defaultKeybindings, keybinding, { existOk: false })\n }\n\n function addUserKeybinding(keybinding: KeybindingImpl) {\n const defaultKeybinding =\n defaultKeybindings.value[keybinding.combo.serialize()]\n const userUnsetKeybinding =\n userUnsetKeybindings.value[keybinding.combo.serialize()]\n\n // User is adding back a keybinding that was an unsetted default keybinding.\n if (\n keybinding.equals(defaultKeybinding) &&\n keybinding.equals(userUnsetKeybinding)\n ) {\n delete userUnsetKeybindings.value[keybinding.combo.serialize()]\n return\n }\n\n // Unset keybinding on default keybinding if it exists and is not the same as userUnsetKeybinding\n if (defaultKeybinding && !defaultKeybinding.equals(userUnsetKeybinding)) {\n unsetKeybinding(defaultKeybinding)\n }\n\n addKeybinding(userKeybindings, keybinding, { existOk: true })\n }\n\n function unsetKeybinding(keybinding: KeybindingImpl) {\n const serializedCombo = keybinding.combo.serialize()\n if (!(serializedCombo in keybindingByKeyCombo.value)) {\n throw new Error(`Keybinding on ${keybinding.combo} does not exist`)\n }\n\n if (userKeybindings.value[serializedCombo]?.equals(keybinding)) {\n delete userKeybindings.value[serializedCombo]\n return\n }\n\n if (defaultKeybindings.value[serializedCombo]?.equals(keybinding)) {\n addKeybinding(userUnsetKeybindings, keybinding, { existOk: false })\n return\n }\n\n throw new Error(`NOT_REACHED`)\n }\n\n /**\n * Update the keybinding on given command if it is different from the current keybinding.\n *\n * @returns true if the keybinding is updated, false otherwise.\n */\n function updateKeybindingOnCommand(keybinding: KeybindingImpl): boolean {\n const currentKeybinding = getKeybindingByCommandId(keybinding.commandId)\n if (currentKeybinding?.equals(keybinding)) {\n return false\n }\n if (currentKeybinding) {\n unsetKeybinding(currentKeybinding)\n }\n addUserKeybinding(keybinding)\n return true\n }\n\n function loadUserKeybindings() {\n const settingStore = useSettingStore()\n // Unset bindings first as new bindings might conflict with default bindings.\n const unsetBindings = settingStore.get('Comfy.Keybinding.UnsetBindings')\n for (const keybinding of unsetBindings) {\n unsetKeybinding(new KeybindingImpl(keybinding))\n }\n const newBindings = settingStore.get('Comfy.Keybinding.NewBindings')\n for (const keybinding of newBindings) {\n addUserKeybinding(new KeybindingImpl(keybinding))\n }\n }\n\n function loadCoreKeybindings() {\n for (const keybinding of CORE_KEYBINDINGS) {\n addDefaultKeybinding(new KeybindingImpl(keybinding))\n }\n }\n\n function loadExtensionKeybindings(extension: ComfyExtension) {\n if (extension.keybindings) {\n for (const keybinding of extension.keybindings) {\n try {\n addDefaultKeybinding(new KeybindingImpl(keybinding))\n } catch (error) {\n console.warn(\n `Failed to load keybinding for extension ${extension.name}`,\n error\n )\n }\n }\n }\n }\n\n async function persistUserKeybindings() {\n const settingStore = useSettingStore()\n // TODO(https://github.com/Comfy-Org/ComfyUI_frontend/issues/1079):\n // Allow setting multiple values at once in settingStore\n await settingStore.set(\n 'Comfy.Keybinding.NewBindings',\n Object.values(userKeybindings.value)\n )\n await settingStore.set(\n 'Comfy.Keybinding.UnsetBindings',\n Object.values(userUnsetKeybindings.value)\n )\n }\n\n function resetKeybindings() {\n userKeybindings.value = {}\n userUnsetKeybindings.value = {}\n }\n\n function isCommandKeybindingModified(commandId: string): boolean {\n const currentKeybinding: KeybindingImpl | undefined =\n getKeybindingByCommandId(commandId)\n const defaultKeybinding: KeybindingImpl | undefined =\n defaultKeybindingsByCommandId.value[commandId]?.[0]\n\n return !(\n (currentKeybinding === undefined && defaultKeybinding === undefined) ||\n currentKeybinding?.equals(defaultKeybinding)\n )\n }\n\n return {\n keybindings,\n getKeybinding,\n getKeybindingsByCommandId,\n getKeybindingByCommandId,\n addDefaultKeybinding,\n addUserKeybinding,\n unsetKeybinding,\n updateKeybindingOnCommand,\n loadUserKeybindings,\n loadCoreKeybindings,\n loadExtensionKeybindings,\n persistUserKeybindings,\n resetKeybindings,\n isCommandKeybindingModified\n }\n})\n","import { defineStore } from 'pinia'\nimport type { MenuItem } from 'primevue/menuitem'\nimport { ref } from 'vue'\nimport { useCommandStore } from './commandStore'\nimport { ComfyExtension } from '@/types/comfy'\n\nexport const useMenuItemStore = defineStore('menuItem', () => {\n const commandStore = useCommandStore()\n const menuItems = ref([])\n\n const registerMenuGroup = (path: string[], items: MenuItem[]) => {\n let currentLevel = menuItems.value\n\n // Traverse the path, creating nodes if necessary\n for (let i = 0; i < path.length; i++) {\n const segment = path[i]\n let found = currentLevel.find((item) => item.label === segment)\n\n if (!found) {\n // Create a new node if it doesn't exist\n found = {\n label: segment,\n items: []\n }\n currentLevel.push(found)\n }\n\n // Ensure the found item has an 'items' array\n if (!found.items) {\n found.items = []\n }\n\n // Move to the next level\n currentLevel = found.items\n }\n\n if (currentLevel.length > 0) {\n currentLevel.push({\n separator: true\n })\n }\n // Add the new items to the last level\n currentLevel.push(...items)\n }\n\n const registerCommands = (path: string[], commandIds: string[]) => {\n const items = commandIds\n .map((commandId) => commandStore.getCommand(commandId))\n .map(\n (command) =>\n ({\n command: command.function,\n label: command.menubarLabel,\n icon: command.icon,\n tooltip: command.tooltip,\n comfyCommand: command\n }) as MenuItem\n )\n registerMenuGroup(path, items)\n }\n\n const loadExtensionMenuCommands = (extension: ComfyExtension) => {\n if (!extension.menuCommands) {\n return\n }\n\n const extensionCommandIds = new Set(\n extension.commands?.map((command) => command.id) ?? []\n )\n extension.menuCommands.forEach((menuCommand) => {\n const commands = menuCommand.commands.filter((command) =>\n extensionCommandIds.has(command)\n )\n if (commands.length) {\n registerCommands(menuCommand.path, commands)\n }\n })\n }\n\n // Core menu commands\n registerCommands(['Workflow'], ['Comfy.NewBlankWorkflow'])\n\n registerCommands(\n ['Workflow'],\n ['Comfy.OpenWorkflow', 'Comfy.BrowseTemplates']\n )\n registerCommands(\n ['Workflow'],\n [\n 'Comfy.SaveWorkflow',\n 'Comfy.SaveWorkflowAs',\n 'Comfy.ExportWorkflow',\n 'Comfy.ExportWorkflowAPI'\n ]\n )\n\n registerCommands(['Edit'], ['Comfy.Undo', 'Comfy.Redo'])\n registerCommands(['Edit'], ['Comfy.ClearWorkflow'])\n registerCommands(['Edit'], ['Comfy.OpenClipspace'])\n\n registerMenuGroup(\n ['Help'],\n [\n {\n icon: 'pi pi-github',\n label: 'ComfyUI Issues',\n url: 'https://github.com/comfyanonymous/ComfyUI/issues'\n },\n {\n icon: 'pi pi-info-circle',\n label: 'ComfyUI Docs',\n url: 'https://docs.comfy.org/'\n },\n {\n icon: 'pi pi-discord',\n label: 'Comfy-Org',\n url: 'https://www.comfy.org/discord'\n }\n ]\n )\n\n return {\n menuItems,\n registerMenuGroup,\n registerCommands,\n loadExtensionMenuCommands\n }\n})\n","import { ref, computed, markRaw } from 'vue'\nimport { defineStore } from 'pinia'\nimport type { ComfyExtension } from '@/types/comfy'\nimport { useKeybindingStore } from './keybindingStore'\nimport { useCommandStore } from './commandStore'\nimport { useSettingStore } from './settingStore'\nimport { app } from '@/scripts/app'\nimport { useMenuItemStore } from './menuItemStore'\n\nexport const useExtensionStore = defineStore('extension', () => {\n // For legacy reasons, the name uniquely identifies an extension\n const extensionByName = ref>({})\n const extensions = computed(() => Object.values(extensionByName.value))\n // Not using computed because disable extension requires reloading of the page.\n // Dynamically update this list won't affect extensions that are already loaded.\n const disabledExtensionNames = ref>(new Set())\n\n // Disabled extension names that are currently not in the extension list.\n // If a node pack is disabled in the backend, we shouldn't remove the configuration\n // of the frontend extension disable list, in case the node pack is re-enabled.\n const inactiveDisabledExtensionNames = computed(() => {\n return Array.from(disabledExtensionNames.value).filter(\n (name) => !(name in extensionByName.value)\n )\n })\n\n const isExtensionEnabled = (name: string) =>\n !disabledExtensionNames.value.has(name)\n const enabledExtensions = computed(() => {\n return extensions.value.filter((ext) => isExtensionEnabled(ext.name))\n })\n\n function registerExtension(extension: ComfyExtension) {\n if (!extension.name) {\n throw new Error(\"Extensions must have a 'name' property.\")\n }\n\n if (extensionByName.value[extension.name]) {\n throw new Error(`Extension named '${extension.name}' already registered.`)\n }\n\n if (disabledExtensionNames.value.has(extension.name)) {\n console.log(`Extension ${extension.name} is disabled.`)\n }\n\n extensionByName.value[extension.name] = markRaw(extension)\n useKeybindingStore().loadExtensionKeybindings(extension)\n useCommandStore().loadExtensionCommands(extension)\n useMenuItemStore().loadExtensionMenuCommands(extension)\n\n /*\n * Extensions are currently stored in both extensionStore and app.extensions.\n * Legacy jest tests still depend on app.extensions being populated.\n */\n app.extensions.push(extension)\n }\n\n function loadDisabledExtensionNames() {\n disabledExtensionNames.value = new Set(\n useSettingStore().get('Comfy.Extension.Disabled')\n )\n // pysssss.Locking is replaced by pin/unpin in ComfyUI core.\n // https://github.com/Comfy-Org/litegraph.js/pull/117\n disabledExtensionNames.value.add('pysssss.Locking')\n // pysssss.SnapToGrid is replaced by Comfy.Graph.AlwaysSnapToGrid in ComfyUI core.\n // pysssss.SnapToGrid tries to write global app.shiftDown state, which is no longer\n // allowed since v1.3.12.\n // https://github.com/Comfy-Org/ComfyUI_frontend/issues/1176\n disabledExtensionNames.value.add('pysssss.SnapToGrid')\n }\n\n // Some core extensions are registered before the store is initialized, e.g.\n // colorPalette.\n // Register them manually here so the state of app.extensions and\n // extensionByName are in sync.\n for (const ext of app.extensions) {\n extensionByName.value[ext.name] = markRaw(ext)\n }\n\n return {\n extensions,\n enabledExtensions,\n inactiveDisabledExtensionNames,\n isExtensionEnabled,\n registerExtension,\n loadDisabledExtensionNames\n }\n})\n","// @ts-strict-ignore\nimport { ComfyLogging } from './logging'\nimport { ComfyWidgetConstructor, ComfyWidgets, initWidgets } from './widgets'\nimport { ComfyUI, $el } from './ui'\nimport { api } from './api'\nimport { defaultGraph } from './defaultGraph'\nimport {\n getPngMetadata,\n getWebpMetadata,\n getFlacMetadata,\n importA1111,\n getLatentMetadata\n} from './pnginfo'\nimport { addDomClippingSetting } from './domWidget'\nimport { createImageHost, calculateImageGrid } from './ui/imagePreview'\nimport { DraggableList } from './ui/draggableList'\nimport { applyTextReplacements, addStylesheet } from './utils'\nimport type { ComfyExtension } from '@/types/comfy'\nimport {\n type ComfyWorkflowJSON,\n type NodeId,\n validateComfyWorkflow\n} from '../types/comfyWorkflow'\nimport { ComfyNodeDef, StatusWsMessageStatus } from '@/types/apiTypes'\nimport { adjustColor, ColorAdjustOptions } from '@/utils/colorUtil'\nimport { ComfyAppMenu } from './ui/menu/index'\nimport { getStorageValue } from './utils'\nimport { ComfyWorkflowManager, ComfyWorkflow } from './workflows'\nimport {\n LGraphCanvas,\n LGraph,\n LGraphNode,\n LiteGraph\n} from '@comfyorg/litegraph'\nimport { StorageLocation } from '@/types/settingTypes'\nimport { ExtensionManager } from '@/types/extensionTypes'\nimport {\n ComfyNodeDefImpl,\n SYSTEM_NODE_DEFS,\n useNodeDefStore\n} from '@/stores/nodeDefStore'\nimport { INodeInputSlot, Vector2 } from '@comfyorg/litegraph'\nimport _ from 'lodash'\nimport {\n showExecutionErrorDialog,\n showLoadWorkflowWarning,\n showMissingModelsWarning\n} from '@/services/dialogService'\nimport { useSettingStore } from '@/stores/settingStore'\nimport { useToastStore } from '@/stores/toastStore'\nimport { useModelStore } from '@/stores/modelStore'\nimport type { ToastMessageOptions } from 'primevue/toast'\nimport { useWorkspaceStore } from '@/stores/workspaceStateStore'\nimport { useExecutionStore } from '@/stores/executionStore'\nimport { IWidget } from '@comfyorg/litegraph'\nimport { useExtensionStore } from '@/stores/extensionStore'\nimport { KeyComboImpl, useKeybindingStore } from '@/stores/keybindingStore'\nimport { useCommandStore } from '@/stores/commandStore'\nimport { shallowReactive } from 'vue'\n\nexport const ANIM_PREVIEW_WIDGET = '$$comfy_animation_preview'\n\nfunction sanitizeNodeName(string) {\n let entityMap = {\n '&': '',\n '<': '',\n '>': '',\n '\"': '',\n \"'\": '',\n '`': '',\n '=': ''\n }\n return String(string).replace(/[&<>\"'`=]/g, function fromEntityMap(s) {\n return entityMap[s]\n })\n}\n\n/**\n * @typedef {import(\"types/comfy\").ComfyExtension} ComfyExtension\n */\n\nexport class ComfyApp {\n /**\n * List of entries to queue\n * @type {{number: number, batchCount: number}[]}\n */\n #queueItems = []\n /**\n * If the queue is currently being processed\n * @type {boolean}\n */\n #processingQueue = false\n\n /**\n * Content Clipboard\n * @type {serialized node object}\n */\n static clipspace = null\n static clipspace_invalidate_handler = null\n static open_maskeditor = null\n static clipspace_return_node = null\n\n // Force vite to import utils.ts as part of index.\n // Force import of DraggableList.\n static utils = {\n applyTextReplacements,\n addStylesheet,\n DraggableList\n }\n\n vueAppReady: boolean\n ui: ComfyUI\n logging: ComfyLogging\n extensions: ComfyExtension[]\n extensionManager: ExtensionManager\n _nodeOutputs: Record\n nodePreviewImages: Record\n graph: LGraph\n enableWorkflowViewRestore: any\n canvas: LGraphCanvas\n dragOverNode: LGraphNode | null\n canvasEl: HTMLCanvasElement\n // x, y, scale\n zoom_drag_start: [number, number, number] | null\n lastNodeErrors: any[] | null\n lastExecutionError: { node_id: number } | null\n progress: { value: number; max: number } | null\n configuringGraph: boolean\n isNewUserSession: boolean\n storageLocation: StorageLocation\n multiUserServer: boolean\n ctx: CanvasRenderingContext2D\n widgets: Record\n workflowManager: ComfyWorkflowManager\n bodyTop: HTMLElement\n bodyLeft: HTMLElement\n bodyRight: HTMLElement\n bodyBottom: HTMLElement\n canvasContainer: HTMLElement\n menu: ComfyAppMenu\n bypassBgColor: string\n\n /**\n * @deprecated Use useExecutionStore().executingNodeId instead\n */\n get runningNodeId(): string | null {\n return useExecutionStore().executingNodeId\n }\n\n /**\n * @deprecated Use useWorkspaceStore().shiftDown instead\n */\n get shiftDown(): boolean {\n return useWorkspaceStore().shiftDown\n }\n\n constructor() {\n this.vueAppReady = false\n this.ui = new ComfyUI(this)\n this.logging = new ComfyLogging(this)\n this.workflowManager = new ComfyWorkflowManager(this)\n this.bodyTop = $el('div.comfyui-body-top', { parent: document.body })\n this.bodyLeft = $el('div.comfyui-body-left', { parent: document.body })\n this.bodyRight = $el('div.comfyui-body-right', { parent: document.body })\n this.bodyBottom = $el('div.comfyui-body-bottom', { parent: document.body })\n this.canvasContainer = $el('div.graph-canvas-container', {\n parent: document.body\n })\n this.menu = new ComfyAppMenu(this)\n this.bypassBgColor = '#FF00FF'\n\n /**\n * List of extensions that are registered with the app\n * @type {ComfyExtension[]}\n */\n this.extensions = []\n\n /**\n * Stores the execution output data for each node\n * @type {Record}\n */\n this.nodeOutputs = {}\n\n /**\n * Stores the preview image data for each node\n * @type {Record}\n */\n this.nodePreviewImages = {}\n }\n\n get nodeOutputs() {\n return this._nodeOutputs\n }\n\n set nodeOutputs(value) {\n this._nodeOutputs = value\n this.#invokeExtensions('onNodeOutputsUpdated', value)\n }\n\n getPreviewFormatParam() {\n let preview_format = this.ui.settings.getSettingValue('Comfy.PreviewFormat')\n if (preview_format) return `&preview=${preview_format}`\n else return ''\n }\n\n getRandParam() {\n return '&rand=' + Math.random()\n }\n\n static isImageNode(node) {\n return (\n node.imgs ||\n (node &&\n node.widgets &&\n node.widgets.findIndex((obj) => obj.name === 'image') >= 0)\n )\n }\n\n static onClipspaceEditorSave() {\n if (ComfyApp.clipspace_return_node) {\n ComfyApp.pasteFromClipspace(ComfyApp.clipspace_return_node)\n }\n }\n\n static onClipspaceEditorClosed() {\n ComfyApp.clipspace_return_node = null\n }\n\n static copyToClipspace(node) {\n var widgets = null\n if (node.widgets) {\n widgets = node.widgets.map(({ type, name, value }) => ({\n type,\n name,\n value\n }))\n }\n\n var imgs = undefined\n var orig_imgs = undefined\n if (node.imgs != undefined) {\n imgs = []\n orig_imgs = []\n\n for (let i = 0; i < node.imgs.length; i++) {\n imgs[i] = new Image()\n imgs[i].src = node.imgs[i].src\n orig_imgs[i] = imgs[i]\n }\n }\n\n var selectedIndex = 0\n if (node.imageIndex) {\n selectedIndex = node.imageIndex\n }\n\n ComfyApp.clipspace = {\n widgets: widgets,\n imgs: imgs,\n original_imgs: orig_imgs,\n images: node.images,\n selectedIndex: selectedIndex,\n img_paste_mode: 'selected' // reset to default im_paste_mode state on copy action\n }\n\n ComfyApp.clipspace_return_node = null\n\n if (ComfyApp.clipspace_invalidate_handler) {\n ComfyApp.clipspace_invalidate_handler()\n }\n }\n\n static pasteFromClipspace(node) {\n if (ComfyApp.clipspace) {\n // image paste\n if (ComfyApp.clipspace.imgs && node.imgs) {\n if (node.images && ComfyApp.clipspace.images) {\n if (ComfyApp.clipspace['img_paste_mode'] == 'selected') {\n node.images = [\n ComfyApp.clipspace.images[ComfyApp.clipspace['selectedIndex']]\n ]\n } else {\n node.images = ComfyApp.clipspace.images\n }\n\n if (app.nodeOutputs[node.id + ''])\n app.nodeOutputs[node.id + ''].images = node.images\n }\n\n if (ComfyApp.clipspace.imgs) {\n // deep-copy to cut link with clipspace\n if (ComfyApp.clipspace['img_paste_mode'] == 'selected') {\n const img = new Image()\n img.src =\n ComfyApp.clipspace.imgs[ComfyApp.clipspace['selectedIndex']].src\n node.imgs = [img]\n node.imageIndex = 0\n } else {\n const imgs = []\n for (let i = 0; i < ComfyApp.clipspace.imgs.length; i++) {\n imgs[i] = new Image()\n imgs[i].src = ComfyApp.clipspace.imgs[i].src\n node.imgs = imgs\n }\n }\n }\n }\n\n if (node.widgets) {\n if (ComfyApp.clipspace.images) {\n const clip_image =\n ComfyApp.clipspace.images[ComfyApp.clipspace['selectedIndex']]\n const index = node.widgets.findIndex((obj) => obj.name === 'image')\n if (index >= 0) {\n if (\n node.widgets[index].type != 'image' &&\n typeof node.widgets[index].value == 'string' &&\n clip_image.filename\n ) {\n node.widgets[index].value =\n (clip_image.subfolder ? clip_image.subfolder + '/' : '') +\n clip_image.filename +\n (clip_image.type ? ` [${clip_image.type}]` : '')\n } else {\n node.widgets[index].value = clip_image\n }\n }\n }\n if (ComfyApp.clipspace.widgets) {\n ComfyApp.clipspace.widgets.forEach(({ type, name, value }) => {\n const prop = Object.values(node.widgets).find(\n // @ts-expect-errorg\n (obj) => obj.type === type && obj.name === name\n )\n // @ts-expect-error\n if (prop && prop.type != 'button') {\n if (\n // @ts-expect-error\n prop.type != 'image' &&\n // @ts-expect-error\n typeof prop.value == 'string' &&\n value.filename\n ) {\n // @ts-expect-error\n prop.value =\n (value.subfolder ? value.subfolder + '/' : '') +\n value.filename +\n (value.type ? ` [${value.type}]` : '')\n } else {\n // @ts-expect-error\n prop.value = value\n // @ts-expect-error\n prop.callback(value)\n }\n }\n })\n }\n }\n\n app.graph.setDirtyCanvas(true)\n }\n }\n\n get enabledExtensions() {\n if (!this.vueAppReady) {\n return this.extensions\n }\n return useExtensionStore().enabledExtensions\n }\n\n /**\n * Invoke an extension callback\n * @param {keyof ComfyExtension} method The extension callback to execute\n * @param {any[]} args Any arguments to pass to the callback\n * @returns\n */\n #invokeExtensions(method, ...args) {\n let results = []\n for (const ext of this.enabledExtensions) {\n if (method in ext) {\n try {\n results.push(ext[method](...args, this))\n } catch (error) {\n console.error(\n `Error calling extension '${ext.name}' method '${method}'`,\n { error },\n { extension: ext },\n { args }\n )\n }\n }\n }\n return results\n }\n\n /**\n * Invoke an async extension callback\n * Each callback will be invoked concurrently\n * @param {string} method The extension callback to execute\n * @param {...any} args Any arguments to pass to the callback\n * @returns\n */\n async #invokeExtensionsAsync(method, ...args) {\n return await Promise.all(\n this.enabledExtensions.map(async (ext) => {\n if (method in ext) {\n try {\n return await ext[method](...args, this)\n } catch (error) {\n console.error(\n `Error calling extension '${ext.name}' method '${method}'`,\n { error },\n { extension: ext },\n { args }\n )\n }\n }\n })\n )\n }\n\n #addRestoreWorkflowView() {\n const serialize = LGraph.prototype.serialize\n const self = this\n LGraph.prototype.serialize = function () {\n const workflow = serialize.apply(this, arguments)\n\n // Store the drag & scale info in the serialized workflow if the setting is enabled\n if (self.enableWorkflowViewRestore.value) {\n if (!workflow.extra) {\n workflow.extra = {}\n }\n workflow.extra.ds = {\n scale: self.canvas.ds.scale,\n offset: self.canvas.ds.offset\n }\n } else if (workflow.extra?.ds) {\n // Clear any old view data\n delete workflow.extra.ds\n }\n\n return workflow\n }\n this.enableWorkflowViewRestore = this.ui.settings.addSetting({\n id: 'Comfy.EnableWorkflowViewRestore',\n category: ['Comfy', 'Workflow', 'EnableWorkflowViewRestore'],\n name: 'Save and restore canvas position and zoom level in workflows',\n type: 'boolean',\n defaultValue: true\n })\n }\n\n /**\n * Adds special context menu handling for nodes\n * e.g. this adds Open Image functionality for nodes that show images\n * @param {*} node The node to add the menu handler\n */\n #addNodeContextMenuHandler(node) {\n function getCopyImageOption(img) {\n if (typeof window.ClipboardItem === 'undefined') return []\n return [\n {\n content: 'Copy Image',\n callback: async () => {\n const url = new URL(img.src)\n url.searchParams.delete('preview')\n\n const writeImage = async (blob) => {\n await navigator.clipboard.write([\n new ClipboardItem({\n [blob.type]: blob\n })\n ])\n }\n\n try {\n const data = await fetch(url)\n const blob = await data.blob()\n try {\n await writeImage(blob)\n } catch (error) {\n // Chrome seems to only support PNG on write, convert and try again\n if (blob.type !== 'image/png') {\n const canvas = $el('canvas', {\n width: img.naturalWidth,\n height: img.naturalHeight\n }) as HTMLCanvasElement\n const ctx = canvas.getContext('2d')\n let image\n if (typeof window.createImageBitmap === 'undefined') {\n image = new Image()\n const p = new Promise((resolve, reject) => {\n image.onload = resolve\n image.onerror = reject\n }).finally(() => {\n URL.revokeObjectURL(image.src)\n })\n image.src = URL.createObjectURL(blob)\n await p\n } else {\n image = await createImageBitmap(blob)\n }\n try {\n ctx.drawImage(image, 0, 0)\n canvas.toBlob(writeImage, 'image/png')\n } finally {\n if (typeof image.close === 'function') {\n image.close()\n }\n }\n\n return\n }\n throw error\n }\n } catch (error) {\n useToastStore().addAlert(\n 'Error copying image: ' + (error.message ?? error)\n )\n }\n }\n }\n ]\n }\n\n node.prototype.getExtraMenuOptions = function (_, options) {\n if (this.imgs) {\n // If this node has images then we add an open in new tab item\n let img\n if (this.imageIndex != null) {\n // An image is selected so select that\n img = this.imgs[this.imageIndex]\n } else if (this.overIndex != null) {\n // No image is selected but one is hovered\n img = this.imgs[this.overIndex]\n }\n if (img) {\n options.unshift(\n {\n content: 'Open Image',\n callback: () => {\n let url = new URL(img.src)\n url.searchParams.delete('preview')\n window.open(url, '_blank')\n }\n },\n ...getCopyImageOption(img),\n {\n content: 'Save Image',\n callback: () => {\n const a = document.createElement('a')\n let url = new URL(img.src)\n url.searchParams.delete('preview')\n a.href = url.toString()\n a.setAttribute(\n 'download',\n new URLSearchParams(url.search).get('filename')\n )\n document.body.append(a)\n a.click()\n requestAnimationFrame(() => a.remove())\n }\n }\n )\n }\n }\n\n options.push({\n content: 'Bypass',\n callback: (obj) => {\n if (this.mode === 4) this.mode = 0\n else this.mode = 4\n this.graph.change()\n }\n })\n\n // prevent conflict of clipspace content\n if (!ComfyApp.clipspace_return_node) {\n options.push({\n content: 'Copy (Clipspace)',\n callback: (obj) => {\n ComfyApp.copyToClipspace(this)\n }\n })\n\n if (ComfyApp.clipspace != null) {\n options.push({\n content: 'Paste (Clipspace)',\n callback: () => {\n ComfyApp.pasteFromClipspace(this)\n }\n })\n }\n\n if (ComfyApp.isImageNode(this)) {\n options.push({\n content: 'Open in MaskEditor',\n callback: (obj) => {\n ComfyApp.copyToClipspace(this)\n ComfyApp.clipspace_return_node = this\n ComfyApp.open_maskeditor()\n }\n })\n }\n }\n }\n }\n\n #addNodeKeyHandler(node) {\n const app = this\n const origNodeOnKeyDown = node.prototype.onKeyDown\n\n node.prototype.onKeyDown = function (e) {\n if (origNodeOnKeyDown && origNodeOnKeyDown.apply(this, e) === false) {\n return false\n }\n\n if (this.flags.collapsed || !this.imgs || this.imageIndex === null) {\n return\n }\n\n let handled = false\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n if (e.key === 'ArrowLeft') {\n this.imageIndex -= 1\n } else if (e.key === 'ArrowRight') {\n this.imageIndex += 1\n }\n this.imageIndex %= this.imgs.length\n\n if (this.imageIndex < 0) {\n this.imageIndex = this.imgs.length + this.imageIndex\n }\n handled = true\n } else if (e.key === 'Escape') {\n this.imageIndex = null\n handled = true\n }\n\n if (handled === true) {\n e.preventDefault()\n e.stopImmediatePropagation()\n return false\n }\n }\n }\n\n /**\n * Adds Custom drawing logic for nodes\n * e.g. Draws images and handles thumbnail navigation on nodes that output images\n * @param {*} node The node to add the draw handler\n */\n #addDrawBackgroundHandler(node) {\n const app = this\n\n function getImageTop(node) {\n let shiftY\n if (node.imageOffset != null) {\n shiftY = node.imageOffset\n } else {\n if (node.widgets?.length) {\n const w = node.widgets[node.widgets.length - 1]\n shiftY = w.last_y\n if (w.computeSize) {\n shiftY += w.computeSize()[1] + 4\n } else if (w.computedHeight) {\n shiftY += w.computedHeight\n } else {\n shiftY += LiteGraph.NODE_WIDGET_HEIGHT + 4\n }\n } else {\n shiftY = node.computeSize()[1]\n }\n }\n return shiftY\n }\n\n node.prototype.setSizeForImage = function (force) {\n if (!force && this.animatedImages) return\n\n if (this.inputHeight || this.freeWidgetSpace > 210) {\n this.setSize(this.size)\n return\n }\n const minHeight = getImageTop(this) + 220\n if (this.size[1] < minHeight) {\n this.setSize([this.size[0], minHeight])\n }\n }\n\n function unsafeDrawBackground(ctx) {\n if (!this.flags.collapsed) {\n let imgURLs = []\n let imagesChanged = false\n\n const output = app.nodeOutputs[this.id + '']\n if (output?.images) {\n this.animatedImages = output?.animated?.find(Boolean)\n if (this.images !== output.images) {\n this.images = output.images\n imagesChanged = true\n imgURLs = imgURLs.concat(\n output.images.map((params) => {\n return api.apiURL(\n '/view?' +\n new URLSearchParams(params).toString() +\n (this.animatedImages ? '' : app.getPreviewFormatParam()) +\n app.getRandParam()\n )\n })\n )\n }\n }\n\n const preview = app.nodePreviewImages[this.id + '']\n if (this.preview !== preview) {\n this.preview = preview\n imagesChanged = true\n if (preview != null) {\n imgURLs.push(preview)\n }\n }\n\n if (imagesChanged) {\n this.imageIndex = null\n if (imgURLs.length > 0) {\n Promise.all(\n imgURLs.map((src) => {\n return new Promise((r) => {\n const img = new Image()\n img.onload = () => r(img)\n img.onerror = () => r(null)\n img.src = src\n })\n })\n ).then((imgs) => {\n if (\n (!output || this.images === output.images) &&\n (!preview || this.preview === preview)\n ) {\n this.imgs = imgs.filter(Boolean)\n this.setSizeForImage?.()\n app.graph.setDirtyCanvas(true)\n }\n })\n } else {\n this.imgs = null\n }\n }\n\n const is_all_same_aspect_ratio = (imgs) => {\n // assume: imgs.length >= 2\n let ratio = imgs[0].naturalWidth / imgs[0].naturalHeight\n\n for (let i = 1; i < imgs.length; i++) {\n let this_ratio = imgs[i].naturalWidth / imgs[i].naturalHeight\n if (ratio != this_ratio) return false\n }\n\n return true\n }\n\n if (this.imgs?.length) {\n const widgetIdx = this.widgets?.findIndex(\n (w) => w.name === ANIM_PREVIEW_WIDGET\n )\n\n if (this.animatedImages) {\n // Instead of using the canvas we'll use a IMG\n if (widgetIdx > -1) {\n // Replace content\n const widget = this.widgets[widgetIdx]\n widget.options.host.updateImages(this.imgs)\n } else {\n const host = createImageHost(this)\n this.setSizeForImage(true)\n const widget = this.addDOMWidget(\n ANIM_PREVIEW_WIDGET,\n 'img',\n host.el,\n {\n host,\n getHeight: host.getHeight,\n onDraw: host.onDraw,\n hideOnZoom: false\n }\n )\n widget.serializeValue = () => undefined\n widget.options.host.updateImages(this.imgs)\n }\n return\n }\n\n if (widgetIdx > -1) {\n this.widgets[widgetIdx].onRemove?.()\n this.widgets.splice(widgetIdx, 1)\n }\n\n const canvas = app.graph.list_of_graphcanvas[0]\n const mouse = canvas.graph_mouse\n if (!canvas.pointer_is_down && this.pointerDown) {\n if (\n mouse[0] === this.pointerDown.pos[0] &&\n mouse[1] === this.pointerDown.pos[1]\n ) {\n this.imageIndex = this.pointerDown.index\n }\n this.pointerDown = null\n }\n\n let imageIndex = this.imageIndex\n const numImages = this.imgs.length\n if (numImages === 1 && !imageIndex) {\n this.imageIndex = imageIndex = 0\n }\n\n const top = getImageTop(this)\n var shiftY = top\n\n let dw = this.size[0]\n let dh = this.size[1]\n dh -= shiftY\n\n if (imageIndex == null) {\n var cellWidth, cellHeight, shiftX, cell_padding, cols\n\n const compact_mode = is_all_same_aspect_ratio(this.imgs)\n if (!compact_mode) {\n // use rectangle cell style and border line\n cell_padding = 2\n // Prevent infinite canvas2d scale-up\n const largestDimension = this.imgs.reduce(\n (acc, current) =>\n Math.max(acc, current.naturalWidth, current.naturalHeight),\n 0\n )\n const fakeImgs = []\n fakeImgs.length = this.imgs.length\n fakeImgs[0] = {\n naturalWidth: largestDimension,\n naturalHeight: largestDimension\n }\n ;({ cellWidth, cellHeight, cols, shiftX } = calculateImageGrid(\n fakeImgs,\n dw,\n dh\n ))\n } else {\n cell_padding = 0\n ;({ cellWidth, cellHeight, cols, shiftX } = calculateImageGrid(\n this.imgs,\n dw,\n dh\n ))\n }\n\n let anyHovered = false\n this.imageRects = []\n for (let i = 0; i < numImages; i++) {\n const img = this.imgs[i]\n const row = Math.floor(i / cols)\n const col = i % cols\n const x = col * cellWidth + shiftX\n const y = row * cellHeight + shiftY\n if (!anyHovered) {\n anyHovered = LiteGraph.isInsideRectangle(\n mouse[0],\n mouse[1],\n x + this.pos[0],\n y + this.pos[1],\n cellWidth,\n cellHeight\n )\n if (anyHovered) {\n this.overIndex = i\n let value = 110\n if (canvas.pointer_is_down) {\n if (!this.pointerDown || this.pointerDown.index !== i) {\n this.pointerDown = { index: i, pos: [...mouse] }\n }\n value = 125\n }\n ctx.filter = `contrast(${value}%) brightness(${value}%)`\n canvas.canvas.style.cursor = 'pointer'\n }\n }\n this.imageRects.push([x, y, cellWidth, cellHeight])\n\n let wratio = cellWidth / img.width\n let hratio = cellHeight / img.height\n var ratio = Math.min(wratio, hratio)\n\n let imgHeight = ratio * img.height\n let imgY =\n row * cellHeight + shiftY + (cellHeight - imgHeight) / 2\n let imgWidth = ratio * img.width\n let imgX = col * cellWidth + shiftX + (cellWidth - imgWidth) / 2\n\n ctx.drawImage(\n img,\n imgX + cell_padding,\n imgY + cell_padding,\n imgWidth - cell_padding * 2,\n imgHeight - cell_padding * 2\n )\n if (!compact_mode) {\n // rectangle cell and border line style\n ctx.strokeStyle = '#8F8F8F'\n ctx.lineWidth = 1\n ctx.strokeRect(\n x + cell_padding,\n y + cell_padding,\n cellWidth - cell_padding * 2,\n cellHeight - cell_padding * 2\n )\n }\n\n ctx.filter = 'none'\n }\n\n if (!anyHovered) {\n this.pointerDown = null\n this.overIndex = null\n }\n } else {\n // Draw individual\n let w = this.imgs[imageIndex].naturalWidth\n let h = this.imgs[imageIndex].naturalHeight\n\n const scaleX = dw / w\n const scaleY = dh / h\n const scale = Math.min(scaleX, scaleY, 1)\n\n w *= scale\n h *= scale\n\n let x = (dw - w) / 2\n let y = (dh - h) / 2 + shiftY\n ctx.drawImage(this.imgs[imageIndex], x, y, w, h)\n\n const drawButton = (x, y, sz, text) => {\n const hovered = LiteGraph.isInsideRectangle(\n mouse[0],\n mouse[1],\n x + this.pos[0],\n y + this.pos[1],\n sz,\n sz\n )\n let fill = '#333'\n let textFill = '#fff'\n let isClicking = false\n if (hovered) {\n canvas.canvas.style.cursor = 'pointer'\n if (canvas.pointer_is_down) {\n fill = '#1e90ff'\n isClicking = true\n } else {\n fill = '#eee'\n textFill = '#000'\n }\n } else {\n this.pointerWasDown = null\n }\n\n ctx.fillStyle = fill\n ctx.beginPath()\n ctx.roundRect(x, y, sz, sz, [4])\n ctx.fill()\n ctx.fillStyle = textFill\n ctx.font = '12px Arial'\n ctx.textAlign = 'center'\n ctx.fillText(text, x + 15, y + 20)\n\n return isClicking\n }\n\n if (numImages > 1) {\n if (\n drawButton(\n dw - 40,\n dh + top - 40,\n 30,\n `${this.imageIndex + 1}/${numImages}`\n )\n ) {\n let i =\n this.imageIndex + 1 >= numImages ? 0 : this.imageIndex + 1\n if (!this.pointerDown || !this.pointerDown.index === i) {\n this.pointerDown = { index: i, pos: [...mouse] }\n }\n }\n\n if (drawButton(dw - 40, top + 10, 30, `x`)) {\n if (!this.pointerDown || !this.pointerDown.index === null) {\n this.pointerDown = { index: null, pos: [...mouse] }\n }\n }\n }\n }\n }\n }\n }\n\n node.prototype.onDrawBackground = function (ctx) {\n try {\n unsafeDrawBackground.call(this, ctx)\n } catch (error) {\n console.error('Error drawing node background', error)\n }\n }\n }\n\n /**\n * Adds a handler allowing drag+drop of files onto the window to load workflows\n */\n #addDropHandler() {\n // Get prompt from dropped PNG or json\n document.addEventListener('drop', async (event) => {\n event.preventDefault()\n event.stopPropagation()\n\n const n = this.dragOverNode\n this.dragOverNode = null\n // Node handles file drop, we dont use the built in onDropFile handler as its buggy\n // If you drag multiple files it will call it multiple times with the same file\n // @ts-expect-error This is not a standard event. TODO fix it.\n if (n && n.onDragDrop && (await n.onDragDrop(event))) {\n return\n }\n // Dragging from Chrome->Firefox there is a file but its a bmp, so ignore that\n if (\n event.dataTransfer.files.length &&\n event.dataTransfer.files[0].type !== 'image/bmp'\n ) {\n await this.handleFile(event.dataTransfer.files[0])\n } else {\n // Try loading the first URI in the transfer list\n const validTypes = ['text/uri-list', 'text/x-moz-url']\n const match = [...event.dataTransfer.types].find((t) =>\n validTypes.find((v) => t === v)\n )\n if (match) {\n const uri = event.dataTransfer.getData(match)?.split('\\n')?.[0]\n if (uri) {\n await this.handleFile(await (await fetch(uri)).blob())\n }\n }\n }\n })\n\n // Always clear over node on drag leave\n this.canvasEl.addEventListener('dragleave', async () => {\n if (this.dragOverNode) {\n this.dragOverNode = null\n this.graph.setDirtyCanvas(false, true)\n }\n })\n\n // Add handler for dropping onto a specific node\n this.canvasEl.addEventListener(\n 'dragover',\n (e) => {\n this.canvas.adjustMouseEvent(e)\n // @ts-expect-error: canvasX and canvasY are added by adjustMouseEvent in litegraph\n const node = this.graph.getNodeOnPos(e.canvasX, e.canvasY)\n if (node) {\n // @ts-expect-error This is not a standard event. TODO fix it.\n if (node.onDragOver && node.onDragOver(e)) {\n this.dragOverNode = node\n\n // dragover event is fired very frequently, run this on an animation frame\n requestAnimationFrame(() => {\n this.graph.setDirtyCanvas(false, true)\n })\n return\n }\n }\n this.dragOverNode = null\n },\n false\n )\n }\n\n /**\n * Adds a handler on paste that extracts and loads images or workflows from pasted JSON data\n */\n #addPasteHandler() {\n document.addEventListener('paste', async (e: ClipboardEvent) => {\n // ctrl+shift+v is used to paste nodes with connections\n // this is handled by litegraph\n if (this.shiftDown) return\n\n // @ts-expect-error: Property 'clipboardData' does not exist on type 'Window & typeof globalThis'.\n // Did you mean 'Clipboard'?ts(2551)\n // TODO: Not sure what the code wants to do.\n let data = e.clipboardData || window.clipboardData\n const items = data.items\n\n // Look for image paste data\n for (const item of items) {\n if (item.type.startsWith('image/')) {\n var imageNode = null\n\n // If an image node is selected, paste into it\n if (\n this.canvas.current_node &&\n this.canvas.current_node.is_selected &&\n ComfyApp.isImageNode(this.canvas.current_node)\n ) {\n imageNode = this.canvas.current_node\n }\n\n // No image node selected: add a new one\n if (!imageNode) {\n const newNode = LiteGraph.createNode('LoadImage')\n // @ts-expect-error array to Float32Array\n newNode.pos = [...this.canvas.graph_mouse]\n imageNode = this.graph.add(newNode)\n this.graph.change()\n }\n const blob = item.getAsFile()\n imageNode.pasteFile(blob)\n return\n }\n }\n\n // No image found. Look for node data\n data = data.getData('text/plain')\n let workflow: ComfyWorkflowJSON | null = null\n try {\n data = data.slice(data.indexOf('{'))\n workflow = JSON.parse(data)\n } catch (err) {\n try {\n data = data.slice(data.indexOf('workflow\\n'))\n data = data.slice(data.indexOf('{'))\n workflow = JSON.parse(data)\n } catch (error) {\n workflow = null\n }\n }\n\n if (workflow && workflow.version && workflow.nodes && workflow.extra) {\n await this.loadGraphData(workflow)\n } else {\n if (\n (e.target instanceof HTMLTextAreaElement &&\n e.target.type === 'textarea') ||\n (e.target instanceof HTMLInputElement && e.target.type === 'text')\n ) {\n return\n }\n\n // Litegraph default paste\n this.canvas.pasteFromClipboard()\n }\n })\n }\n\n /**\n * Adds a handler on copy that serializes selected nodes to JSON\n */\n #addCopyHandler() {\n document.addEventListener('copy', (e) => {\n if (!(e.target instanceof Element)) {\n return\n }\n if (\n (e.target instanceof HTMLTextAreaElement &&\n e.target.type === 'textarea') ||\n (e.target instanceof HTMLInputElement && e.target.type === 'text')\n ) {\n // Default system copy\n return\n }\n const isTargetInGraph =\n e.target.classList.contains('litegraph') ||\n e.target.classList.contains('graph-canvas-container')\n\n // copy nodes and clear clipboard\n if (isTargetInGraph && this.canvas.selected_nodes) {\n this.canvas.copyToClipboard()\n e.clipboardData.setData('text', ' ') //clearData doesn't remove images from clipboard\n e.preventDefault()\n e.stopImmediatePropagation()\n return false\n }\n })\n }\n\n /**\n * Handle mouse\n *\n * Move group by header\n */\n #addProcessMouseHandler() {\n const self = this\n\n const origProcessMouseDown = LGraphCanvas.prototype.processMouseDown\n LGraphCanvas.prototype.processMouseDown = function (e) {\n // prepare for ctrl+shift drag: zoom start\n if (e.ctrlKey && e.shiftKey && e.buttons) {\n self.zoom_drag_start = [e.x, e.y, this.ds.scale]\n return\n }\n\n const res = origProcessMouseDown.apply(this, arguments)\n\n this.selected_group_moving = false\n\n if (this.selected_group && !this.selected_group_resizing) {\n var font_size =\n this.selected_group.font_size || LiteGraph.DEFAULT_GROUP_FONT_SIZE\n var height = font_size * 1.4\n\n // Move group by header\n if (\n LiteGraph.isInsideRectangle(\n e.canvasX,\n e.canvasY,\n this.selected_group.pos[0],\n this.selected_group.pos[1],\n this.selected_group.size[0],\n height\n )\n ) {\n this.selected_group_moving = true\n }\n }\n\n return res\n }\n const origProcessMouseMove = LGraphCanvas.prototype.processMouseMove\n LGraphCanvas.prototype.processMouseMove = function (e) {\n // handle ctrl+shift drag\n if (e.ctrlKey && e.shiftKey && self.zoom_drag_start) {\n // stop canvas zoom action\n if (!e.buttons) {\n self.zoom_drag_start = null\n return\n }\n\n // calculate delta\n let deltaY = e.y - self.zoom_drag_start[1]\n let startScale = self.zoom_drag_start[2]\n\n let scale = startScale - deltaY / 100\n\n this.ds.changeScale(scale, [\n self.zoom_drag_start[0],\n self.zoom_drag_start[1]\n ])\n this.graph.change()\n\n return\n }\n\n const orig_selected_group = this.selected_group\n\n if (\n this.selected_group &&\n !this.selected_group_resizing &&\n !this.selected_group_moving\n ) {\n this.selected_group = null\n }\n\n const res = origProcessMouseMove.apply(this, arguments)\n\n if (\n orig_selected_group &&\n !this.selected_group_resizing &&\n !this.selected_group_moving\n ) {\n this.selected_group = orig_selected_group\n }\n\n return res\n }\n }\n\n /**\n * Handle keypress\n */\n #addProcessKeyHandler() {\n const origProcessKey = LGraphCanvas.prototype.processKey\n LGraphCanvas.prototype.processKey = function (e: KeyboardEvent) {\n if (!this.graph) {\n return\n }\n\n var block_default = false\n\n if (e.target instanceof Element && e.target.localName == 'input') {\n return\n }\n\n if (e.type == 'keydown' && !e.repeat) {\n const keyCombo = KeyComboImpl.fromEvent(e)\n const keybindingStore = useKeybindingStore()\n const keybinding = keybindingStore.getKeybinding(keyCombo)\n if (keybinding && keybinding.targetSelector === '#graph-canvas') {\n useCommandStore().execute(keybinding.commandId)\n block_default = true\n }\n\n // Ctrl+C Copy\n if (e.key === 'c' && (e.metaKey || e.ctrlKey)) {\n // Trigger onCopy\n return true\n }\n\n // Ctrl+V Paste\n if (\n (e.key === 'v' || e.key == 'V') &&\n (e.metaKey || e.ctrlKey) &&\n !e.shiftKey\n ) {\n // Trigger onPaste\n return true\n }\n }\n\n this.graph.change()\n\n if (block_default) {\n e.preventDefault()\n e.stopImmediatePropagation()\n return false\n }\n\n // Fall through to Litegraph defaults\n return origProcessKey.apply(this, arguments)\n }\n }\n\n /**\n * Draws group header bar\n */\n #addDrawGroupsHandler() {\n const self = this\n const origDrawGroups = LGraphCanvas.prototype.drawGroups\n LGraphCanvas.prototype.drawGroups = function (canvas, ctx) {\n if (!this.graph) {\n return\n }\n\n var groups = this.graph.groups\n\n ctx.save()\n ctx.globalAlpha = 0.7 * this.editor_alpha\n\n for (var i = 0; i < groups.length; ++i) {\n var group = groups[i]\n\n if (!LiteGraph.overlapBounding(this.visible_area, group._bounding)) {\n continue\n } //out of the visible area\n\n ctx.fillStyle = group.color || '#335'\n ctx.strokeStyle = group.color || '#335'\n var pos = group._pos\n var size = group._size\n ctx.globalAlpha = 0.25 * this.editor_alpha\n ctx.beginPath()\n var font_size = group.font_size || LiteGraph.DEFAULT_GROUP_FONT_SIZE\n ctx.rect(pos[0] + 0.5, pos[1] + 0.5, size[0], font_size * 1.4)\n ctx.fill()\n ctx.globalAlpha = this.editor_alpha\n }\n\n ctx.restore()\n\n const res = origDrawGroups.apply(this, arguments)\n return res\n }\n }\n\n /**\n * Draws node highlights (executing, drag drop) and progress bar\n */\n #addDrawNodeHandler() {\n const origDrawNodeShape = LGraphCanvas.prototype.drawNodeShape\n const self = this\n LGraphCanvas.prototype.drawNodeShape = function (\n node,\n ctx,\n size,\n fgcolor,\n bgcolor,\n selected,\n mouse_over\n ) {\n const res = origDrawNodeShape.apply(this, arguments)\n\n const nodeErrors = self.lastNodeErrors?.[node.id]\n\n let color = null\n let lineWidth = 1\n if (node.id === +self.runningNodeId) {\n color = '#0f0'\n } else if (self.dragOverNode && node.id === self.dragOverNode.id) {\n color = 'dodgerblue'\n } else if (nodeErrors?.errors) {\n color = 'red'\n lineWidth = 2\n } else if (\n self.lastExecutionError &&\n +self.lastExecutionError.node_id === node.id\n ) {\n color = '#f0f'\n lineWidth = 2\n }\n\n if (color) {\n const shape =\n // @ts-expect-error\n node._shape || node.constructor.shape || LiteGraph.ROUND_SHAPE\n ctx.lineWidth = lineWidth\n ctx.globalAlpha = 0.8\n ctx.beginPath()\n if (shape == LiteGraph.BOX_SHAPE)\n ctx.rect(\n -6,\n -6 - LiteGraph.NODE_TITLE_HEIGHT,\n 12 + size[0] + 1,\n 12 + size[1] + LiteGraph.NODE_TITLE_HEIGHT\n )\n else if (\n shape == LiteGraph.ROUND_SHAPE ||\n (shape == LiteGraph.CARD_SHAPE && node.flags.collapsed)\n )\n ctx.roundRect(\n -6,\n -6 - LiteGraph.NODE_TITLE_HEIGHT,\n 12 + size[0] + 1,\n 12 + size[1] + LiteGraph.NODE_TITLE_HEIGHT,\n this.round_radius * 2\n )\n else if (shape == LiteGraph.CARD_SHAPE)\n ctx.roundRect(\n -6,\n -6 - LiteGraph.NODE_TITLE_HEIGHT,\n 12 + size[0] + 1,\n 12 + size[1] + LiteGraph.NODE_TITLE_HEIGHT,\n [this.round_radius * 2, this.round_radius * 2, 2, 2]\n )\n else if (shape == LiteGraph.CIRCLE_SHAPE)\n ctx.arc(\n size[0] * 0.5,\n size[1] * 0.5,\n size[0] * 0.5 + 6,\n 0,\n Math.PI * 2\n )\n ctx.strokeStyle = color\n ctx.stroke()\n ctx.strokeStyle = fgcolor\n ctx.globalAlpha = 1\n }\n\n if (self.progress && node.id === +self.runningNodeId) {\n ctx.fillStyle = 'green'\n ctx.fillRect(\n 0,\n 0,\n size[0] * (self.progress.value / self.progress.max),\n 6\n )\n ctx.fillStyle = bgcolor\n }\n\n // Highlight inputs that failed validation\n if (nodeErrors) {\n ctx.lineWidth = 2\n ctx.strokeStyle = 'red'\n for (const error of nodeErrors.errors) {\n if (error.extra_info && error.extra_info.input_name) {\n const inputIndex = node.findInputSlot(error.extra_info.input_name)\n if (inputIndex !== -1) {\n let pos = node.getConnectionPos(true, inputIndex)\n ctx.beginPath()\n ctx.arc(\n pos[0] - node.pos[0],\n pos[1] - node.pos[1],\n 12,\n 0,\n 2 * Math.PI,\n false\n )\n ctx.stroke()\n }\n }\n }\n }\n\n return res\n }\n\n const origDrawNode = LGraphCanvas.prototype.drawNode\n LGraphCanvas.prototype.drawNode = function (node, ctx) {\n const editor_alpha = this.editor_alpha\n const old_color = node.color\n const old_bgcolor = node.bgcolor\n\n if (node.mode === 2) {\n // never\n this.editor_alpha = 0.4\n }\n\n // ComfyUI's custom node mode enum value 4 => bypass/never.\n let bgColor: string\n if (node.mode === 4) {\n // never\n bgColor = app.bypassBgColor\n this.editor_alpha = 0.2\n } else {\n bgColor = old_bgcolor || LiteGraph.NODE_DEFAULT_BGCOLOR\n }\n\n const adjustments: ColorAdjustOptions = {}\n\n const opacity = useSettingStore().get('Comfy.Node.Opacity')\n if (opacity) adjustments.opacity = opacity\n\n if (useSettingStore().get('Comfy.ColorPalette') === 'light') {\n adjustments.lightness = 0.5\n\n // Lighten title bar of colored nodes on light theme\n if (old_color) {\n node.color = adjustColor(old_color, { lightness: 0.5 })\n }\n }\n\n node.bgcolor = adjustColor(bgColor, adjustments)\n\n const res = origDrawNode.apply(this, arguments)\n\n this.editor_alpha = editor_alpha\n node.color = old_color\n node.bgcolor = old_bgcolor\n\n return res\n }\n }\n\n /**\n * Handles updates from the API socket\n */\n #addApiUpdateHandlers() {\n api.addEventListener(\n 'status',\n ({ detail }: CustomEvent) => {\n this.ui.setStatus(detail)\n }\n )\n\n api.addEventListener('progress', ({ detail }) => {\n this.progress = detail\n this.graph.setDirtyCanvas(true, false)\n })\n\n api.addEventListener('executing', ({ detail }) => {\n this.progress = null\n this.graph.setDirtyCanvas(true, false)\n delete this.nodePreviewImages[this.runningNodeId]\n })\n\n api.addEventListener('executed', ({ detail }) => {\n const output = this.nodeOutputs[detail.display_node || detail.node]\n if (detail.merge && output) {\n for (const k in detail.output ?? {}) {\n const v = output[k]\n if (v instanceof Array) {\n output[k] = v.concat(detail.output[k])\n } else {\n output[k] = detail.output[k]\n }\n }\n } else {\n this.nodeOutputs[detail.display_node || detail.node] = detail.output\n }\n const node = this.graph.getNodeById(detail.display_node || detail.node)\n if (node) {\n // @ts-expect-error\n if (node.onExecuted)\n // @ts-expect-error\n node.onExecuted(detail.output)\n }\n })\n\n api.addEventListener('execution_start', ({ detail }) => {\n this.lastExecutionError = null\n this.graph.nodes.forEach((node) => {\n // @ts-expect-error\n if (node.onExecutionStart)\n // @ts-expect-error\n node.onExecutionStart()\n })\n })\n\n api.addEventListener('execution_error', ({ detail }) => {\n this.lastExecutionError = detail\n showExecutionErrorDialog(detail)\n this.canvas.draw(true, true)\n })\n\n api.addEventListener('b_preview', ({ detail }) => {\n const id = this.runningNodeId\n if (id == null) return\n\n const blob = detail\n const blobUrl = URL.createObjectURL(blob)\n // @ts-expect-error\n this.nodePreviewImages[id] = [blobUrl]\n })\n\n api.init()\n }\n\n #addConfigureHandler() {\n const app = this\n const configure = LGraph.prototype.configure\n // Flag that the graph is configuring to prevent nodes from running checks while its still loading\n LGraph.prototype.configure = function () {\n app.configuringGraph = true\n try {\n return configure.apply(this, arguments)\n } finally {\n app.configuringGraph = false\n }\n }\n }\n\n #addWidgetLinkHandling() {\n app.canvas.getWidgetLinkType = function (widget, node) {\n const nodeDefStore = useNodeDefStore()\n const nodeDef = nodeDefStore.nodeDefsByName[node.type]\n const input = nodeDef.input.getInput(widget.name)\n return input?.type\n }\n\n type ConnectingWidgetLink = {\n subType: 'connectingWidgetLink'\n widget: IWidget\n node: LGraphNode\n link: { node: LGraphNode; slot: number }\n }\n\n document.addEventListener(\n 'litegraph:canvas',\n async (e: CustomEvent) => {\n if (e.detail.subType === 'connectingWidgetLink') {\n const { convertToInput } = await import(\n '@/extensions/core/widgetInputs'\n )\n\n const { node, link, widget } = e.detail\n if (!node || !link || !widget) return\n\n const nodeData = node.constructor.nodeData\n if (!nodeData) return\n const all = {\n ...nodeData?.input?.required,\n ...nodeData?.input?.optional\n }\n const inputSpec = all[widget.name]\n if (!inputSpec) return\n\n const input = convertToInput(node, widget, inputSpec)\n if (!input) return\n\n const originNode = link.node\n\n originNode.connect(link.slot, node, node.inputs.lastIndexOf(input))\n }\n }\n )\n }\n\n #addAfterConfigureHandler() {\n const app = this\n const onConfigure = app.graph.onConfigure\n app.graph.onConfigure = function () {\n // Fire callbacks before the onConfigure, this is used by widget inputs to setup the config\n for (const node of app.graph.nodes) {\n // @ts-expect-error\n node.onGraphConfigured?.()\n }\n\n const r = onConfigure?.apply(this, arguments)\n\n // Fire after onConfigure, used by primitives to generate widget using input nodes config\n for (const node of app.graph.nodes) {\n node.onAfterGraphConfigured?.()\n }\n\n return r\n }\n }\n\n /**\n * Loads all extensions from the API into the window in parallel\n */\n async #loadExtensions() {\n useExtensionStore().loadDisabledExtensionNames()\n\n const extensions = await api.getExtensions()\n this.logging.addEntry('Comfy.App', 'debug', { Extensions: extensions })\n\n // Need to load core extensions first as some custom extensions\n // may depend on them.\n await import('../extensions/core/index')\n await Promise.all(\n extensions\n .filter((extension) => !extension.includes('extensions/core'))\n .map(async (ext) => {\n try {\n await import(/* @vite-ignore */ api.fileURL(ext))\n } catch (error) {\n console.error('Error loading extension', ext, error)\n }\n })\n )\n }\n\n async #migrateSettings() {\n this.isNewUserSession = true\n // Store all current settings\n const settings = Object.keys(this.ui.settings).reduce((p, n) => {\n const v = localStorage[`Comfy.Settings.${n}`]\n if (v) {\n try {\n p[n] = JSON.parse(v)\n } catch (error) {}\n }\n return p\n }, {})\n\n await api.storeSettings(settings)\n }\n\n async #setUser() {\n const userConfig = await api.getUserConfig()\n this.storageLocation = userConfig.storage\n if (typeof userConfig.migrated == 'boolean') {\n // Single user mode migrated true/false for if the default user is created\n if (!userConfig.migrated && this.storageLocation === 'server') {\n // Default user not created yet\n await this.#migrateSettings()\n }\n return\n }\n\n this.multiUserServer = true\n let user = localStorage['Comfy.userId']\n const users = userConfig.users ?? {}\n if (!user || !users[user]) {\n // Lift spinner / BlockUI for user selection.\n if (this.vueAppReady) useWorkspaceStore().spinner = false\n\n // This will rarely be hit so move the loading to on demand\n const { UserSelectionScreen } = await import('./ui/userSelection')\n\n this.ui.menuContainer.style.display = 'none'\n const { userId, username, created } =\n await new UserSelectionScreen().show(users, user)\n this.ui.menuContainer.style.display = ''\n\n user = userId\n localStorage['Comfy.userName'] = username\n localStorage['Comfy.userId'] = user\n\n if (created) {\n api.user = user\n await this.#migrateSettings()\n }\n }\n\n api.user = user\n\n this.ui.settings.addSetting({\n id: 'Comfy.SwitchUser',\n name: 'Switch User',\n type: (name) => {\n let currentUser = localStorage['Comfy.userName']\n if (currentUser) {\n currentUser = ` (${currentUser})`\n }\n return $el('tr', [\n $el('td', [\n $el('label', {\n textContent: name\n })\n ]),\n $el('td', [\n $el('button', {\n textContent: name + (currentUser ?? ''),\n onclick: () => {\n delete localStorage['Comfy.userId']\n delete localStorage['Comfy.userName']\n window.location.reload()\n }\n })\n ])\n ])\n },\n // TODO: Is that the correct default value?\n defaultValue: undefined\n })\n }\n\n /**\n * Set up the app on the page\n */\n async setup(canvasEl: HTMLCanvasElement) {\n this.canvasEl = canvasEl\n await this.#setUser()\n\n this.resizeCanvas()\n\n await Promise.all([\n this.workflowManager.loadWorkflows(),\n this.ui.settings.load()\n ])\n await this.#loadExtensions()\n\n addDomClippingSetting()\n this.#addProcessMouseHandler()\n this.#addProcessKeyHandler()\n this.#addConfigureHandler()\n this.#addApiUpdateHandlers()\n this.#addRestoreWorkflowView()\n\n this.graph = new LGraph()\n\n this.#addAfterConfigureHandler()\n\n // Make LGraphCanvas shallow reactive so that any change on the root object\n // triggers reactivity.\n this.canvas = shallowReactive(\n new LGraphCanvas(canvasEl, this.graph, {\n skip_events: true,\n skip_render: true\n })\n )\n // Bind event/ start rendering later, so that event handlers get reactive canvas reference.\n this.canvas.options.skip_events = false\n this.canvas.options.skip_render = false\n this.canvas.bindEvents()\n this.canvas.startRendering()\n\n this.ctx = canvasEl.getContext('2d')\n\n LiteGraph.alt_drag_do_clone_nodes = true\n\n this.graph.start()\n\n // Ensure the canvas fills the window\n this.resizeCanvas()\n window.addEventListener('resize', () => this.resizeCanvas())\n const ro = new ResizeObserver(() => this.resizeCanvas())\n ro.observe(this.bodyTop)\n ro.observe(this.bodyLeft)\n ro.observe(this.bodyRight)\n ro.observe(this.bodyBottom)\n\n await this.#invokeExtensionsAsync('init')\n await this.registerNodes()\n initWidgets(this)\n\n // Load previous workflow\n let restored = false\n try {\n const loadWorkflow = async (json) => {\n if (json) {\n const workflow = JSON.parse(json)\n const workflowName = getStorageValue('Comfy.PreviousWorkflow')\n await this.loadGraphData(workflow, true, true, workflowName)\n return true\n }\n }\n const clientId = api.initialClientId ?? api.clientId\n restored =\n (clientId &&\n (await loadWorkflow(\n sessionStorage.getItem(`workflow:${clientId}`)\n ))) ||\n (await loadWorkflow(localStorage.getItem('workflow')))\n } catch (err) {\n console.error('Error loading previous workflow', err)\n }\n\n // We failed to restore a workflow so load the default\n if (!restored) {\n await this.loadGraphData()\n }\n\n // Save current workflow automatically\n setInterval(() => {\n const sortNodes = useSettingStore().get('Comfy.Workflow.SortNodeIdOnSave')\n const workflow = JSON.stringify(this.graph.serialize({ sortNodes }))\n localStorage.setItem('workflow', workflow)\n if (api.clientId) {\n sessionStorage.setItem(`workflow:${api.clientId}`, workflow)\n }\n }, 1000)\n\n this.#addDrawNodeHandler()\n this.#addDrawGroupsHandler()\n this.#addDropHandler()\n this.#addCopyHandler()\n this.#addPasteHandler()\n this.#addWidgetLinkHandling()\n\n await this.#invokeExtensionsAsync('setup')\n }\n\n resizeCanvas() {\n // Limit minimal scale to 1, see https://github.com/comfyanonymous/ComfyUI/pull/845\n const scale = Math.max(window.devicePixelRatio, 1)\n\n // Clear fixed width and height while calculating rect so it uses 100% instead\n this.canvasEl.height = this.canvasEl.width = NaN\n const { width, height } = this.canvasEl.getBoundingClientRect()\n this.canvasEl.width = Math.round(width * scale)\n this.canvasEl.height = Math.round(height * scale)\n this.canvasEl.getContext('2d').scale(scale, scale)\n this.canvas?.draw(true, true)\n }\n\n private updateVueAppNodeDefs(defs: Record) {\n // Frontend only nodes registered by custom nodes.\n // Example: https://github.com/rgthree/rgthree-comfy/blob/dd534e5384be8cf0c0fa35865afe2126ba75ac55/src_web/comfyui/fast_groups_bypasser.ts#L10\n const rawDefs = Object.fromEntries(\n Object.entries(LiteGraph.registered_node_types).map(([name, node]) => [\n name,\n {\n name,\n display_name: name,\n category: node.category || '__frontend_only__',\n input: { required: {}, optional: {} },\n output: [],\n output_name: [],\n output_is_list: [],\n python_module: 'custom_nodes.frontend_only',\n description: `Frontend only node for ${name}`\n }\n ])\n )\n\n const allNodeDefs = {\n ...rawDefs,\n ...defs,\n ...SYSTEM_NODE_DEFS\n }\n\n const nodeDefStore = useNodeDefStore()\n const nodeDefArray: ComfyNodeDef[] = Object.values(allNodeDefs)\n this.#invokeExtensions('beforeRegisterVueAppNodeDefs', nodeDefArray, this)\n nodeDefStore.updateNodeDefs(nodeDefArray)\n nodeDefStore.updateWidgets(this.widgets)\n }\n\n /**\n * Registers nodes with the graph\n */\n async registerNodes() {\n // Load node definitions from the backend\n const defs = await api.getNodeDefs({\n validate: useSettingStore().get('Comfy.Validation.NodeDefs')\n })\n await this.registerNodesFromDefs(defs)\n await this.#invokeExtensionsAsync('registerCustomNodes')\n if (this.vueAppReady) {\n this.updateVueAppNodeDefs(defs)\n }\n }\n\n getWidgetType(inputData, inputName) {\n const type = inputData[0]\n\n if (Array.isArray(type)) {\n return 'COMBO'\n } else if (`${type}:${inputName}` in this.widgets) {\n return `${type}:${inputName}`\n } else if (type in this.widgets) {\n return type\n } else {\n return null\n }\n }\n\n async registerNodeDef(nodeId: string, nodeData: ComfyNodeDef) {\n const self = this\n const node = class ComfyNode extends LGraphNode {\n static comfyClass? = nodeData.name\n // TODO: change to \"title?\" once litegraph.d.ts has been updated\n static title = nodeData.display_name || nodeData.name\n static nodeData? = nodeData\n static category?: string\n\n constructor(title?: string) {\n super(title)\n const requiredInputs = nodeData.input.required\n\n var inputs = nodeData['input']['required']\n if (nodeData['input']['optional'] != undefined) {\n inputs = Object.assign(\n {},\n nodeData['input']['required'],\n nodeData['input']['optional']\n )\n }\n const config = { minWidth: 1, minHeight: 1 }\n for (const inputName in inputs) {\n const inputData = inputs[inputName]\n const type = inputData[0]\n const inputIsRequired = requiredInputs && inputName in requiredInputs\n\n let widgetCreated = true\n const widgetType = self.getWidgetType(inputData, inputName)\n if (widgetType) {\n if (widgetType === 'COMBO') {\n Object.assign(\n config,\n self.widgets.COMBO(this, inputName, inputData, app) || {}\n )\n } else {\n Object.assign(\n config,\n self.widgets[widgetType](this, inputName, inputData, app) || {}\n )\n }\n } else {\n // Node connection inputs\n const inputOptions = inputIsRequired\n ? {}\n : { shape: LiteGraph.SlotShape.HollowCircle }\n this.addInput(inputName, type, inputOptions)\n widgetCreated = false\n }\n\n // @ts-expect-error\n if (widgetCreated && !inputIsRequired && config?.widget) {\n // @ts-expect-error\n if (!config.widget.options) config.widget.options = {}\n // @ts-expect-error\n config.widget.options.inputIsOptional = true\n }\n\n // @ts-expect-error\n if (widgetCreated && inputData[1]?.forceInput && config?.widget) {\n // @ts-expect-error\n if (!config.widget.options) config.widget.options = {}\n // @ts-expect-error\n config.widget.options.forceInput = inputData[1].forceInput\n }\n // @ts-expect-error\n if (widgetCreated && inputData[1]?.defaultInput && config?.widget) {\n // @ts-expect-error\n if (!config.widget.options) config.widget.options = {}\n // @ts-expect-error\n config.widget.options.defaultInput = inputData[1].defaultInput\n }\n }\n\n for (const o in nodeData['output']) {\n let output = nodeData['output'][o]\n if (output instanceof Array) output = 'COMBO'\n const outputName = nodeData['output_name'][o] || output\n const outputIsList = nodeData['output_is_list'][o]\n const outputOptions = outputIsList\n ? { shape: LiteGraph.GRID_SHAPE }\n : {}\n this.addOutput(outputName, output, outputOptions)\n }\n\n const s = this.computeSize()\n s[0] = Math.max(config.minWidth, s[0] * 1.5)\n s[1] = Math.max(config.minHeight, s[1])\n this.size = s\n this.serialize_widgets = true\n\n app.#invokeExtensionsAsync('nodeCreated', this)\n }\n\n configure(data: any) {\n // Keep 'name', 'type', and 'shape' information from the original node definition.\n const merge = (\n current: Record,\n incoming: Record\n ) => {\n const result = { ...incoming }\n if (current.widget === undefined && incoming.widget !== undefined) {\n // Field must be input as only inputs can be converted\n this.inputs.push(current as INodeInputSlot)\n return incoming\n }\n for (const key of ['name', 'type', 'shape']) {\n if (current[key] !== undefined) {\n result[key] = current[key]\n }\n }\n return result\n }\n for (const field of ['inputs', 'outputs']) {\n const slots = data[field] ?? []\n data[field] = slots.map((slot, i) =>\n merge(this[field][i] ?? {}, slot)\n )\n }\n super.configure(data)\n }\n }\n node.prototype.comfyClass = nodeData.name\n\n this.#addNodeContextMenuHandler(node)\n this.#addDrawBackgroundHandler(node)\n this.#addNodeKeyHandler(node)\n\n await this.#invokeExtensionsAsync('beforeRegisterNodeDef', node, nodeData)\n LiteGraph.registerNodeType(nodeId, node)\n // Note: Do not move this to the class definition, it will be overwritten\n node.category = nodeData.category\n }\n\n async registerNodesFromDefs(defs: Record) {\n await this.#invokeExtensionsAsync('addCustomNodeDefs', defs)\n\n // Generate list of known widgets\n this.widgets = Object.assign(\n {},\n ComfyWidgets,\n ...(await this.#invokeExtensionsAsync('getCustomWidgets')).filter(Boolean)\n )\n\n // Register a node for each definition\n for (const nodeId in defs) {\n this.registerNodeDef(nodeId, defs[nodeId])\n }\n }\n\n loadTemplateData(templateData) {\n if (!templateData?.templates) {\n return\n }\n\n const old = localStorage.getItem('litegrapheditor_clipboard')\n\n var maxY, nodeBottom, node\n\n for (const template of templateData.templates) {\n if (!template?.data) {\n continue\n }\n\n localStorage.setItem('litegrapheditor_clipboard', template.data)\n app.canvas.pasteFromClipboard()\n\n // Move mouse position down to paste the next template below\n\n maxY = false\n\n for (const i in app.canvas.selected_nodes) {\n node = app.canvas.selected_nodes[i]\n\n nodeBottom = node.pos[1] + node.size[1]\n\n if (maxY === false || nodeBottom > maxY) {\n maxY = nodeBottom\n }\n }\n\n app.canvas.graph_mouse[1] = maxY + 50\n }\n\n localStorage.setItem('litegrapheditor_clipboard', old)\n }\n\n #showMissingNodesError(missingNodeTypes, hasAddedNodes = true) {\n if (useSettingStore().get('Comfy.Workflow.ShowMissingNodesWarning')) {\n showLoadWorkflowWarning({\n missingNodeTypes,\n hasAddedNodes\n })\n }\n\n this.logging.addEntry('Comfy.App', 'warn', {\n MissingNodes: missingNodeTypes\n })\n }\n\n #showMissingModelsError(missingModels, paths) {\n if (useSettingStore().get('Comfy.Workflow.ShowMissingModelsWarning')) {\n showMissingModelsWarning({\n missingModels,\n paths\n })\n }\n\n this.logging.addEntry('Comfy.App', 'warn', {\n MissingModels: missingModels\n })\n }\n\n async changeWorkflow(callback, workflow = null) {\n try {\n this.workflowManager.activeWorkflow?.changeTracker?.store()\n } catch (error) {\n console.error(error)\n }\n await callback()\n try {\n this.workflowManager.setWorkflow(workflow)\n this.workflowManager.activeWorkflow?.track()\n } catch (error) {\n console.error(error)\n }\n }\n\n async loadGraphData(\n graphData?: ComfyWorkflowJSON,\n clean: boolean = true,\n restore_view: boolean = true,\n workflow: string | null | ComfyWorkflow = null,\n { showMissingNodesDialog = true, showMissingModelsDialog = true } = {}\n ) {\n if (clean !== false) {\n this.clean()\n }\n\n let reset_invalid_values = false\n if (!graphData) {\n graphData = defaultGraph\n reset_invalid_values = true\n }\n\n if (typeof structuredClone === 'undefined') {\n graphData = JSON.parse(JSON.stringify(graphData))\n } else {\n graphData = structuredClone(graphData)\n }\n\n try {\n this.workflowManager.setWorkflow(workflow)\n } catch (error) {\n console.error(error)\n }\n\n if (useSettingStore().get('Comfy.Validation.Workflows')) {\n // TODO: Show validation error in a dialog.\n const validatedGraphData = await validateComfyWorkflow(\n graphData,\n /* onError=*/ (err) => {\n useToastStore().addAlert(err)\n }\n )\n // If the validation failed, use the original graph data.\n // Ideally we should not block users from loading the workflow.\n graphData = validatedGraphData ?? graphData\n }\n\n const missingNodeTypes = []\n const missingModels = []\n await this.#invokeExtensionsAsync(\n 'beforeConfigureGraph',\n graphData,\n missingNodeTypes\n // TODO: missingModels\n )\n for (let n of graphData.nodes) {\n // Patch T2IAdapterLoader to ControlNetLoader since they are the same node now\n if (n.type == 'T2IAdapterLoader') n.type = 'ControlNetLoader'\n if (n.type == 'ConditioningAverage ') n.type = 'ConditioningAverage' //typo fix\n if (n.type == 'SDV_img2vid_Conditioning')\n n.type = 'SVD_img2vid_Conditioning' //typo fix\n\n // Find missing node types\n if (!(n.type in LiteGraph.registered_node_types)) {\n missingNodeTypes.push(n.type)\n n.type = sanitizeNodeName(n.type)\n }\n }\n if (\n graphData.models &&\n useSettingStore().get('Comfy.Workflow.ShowMissingModelsWarning')\n ) {\n for (let m of graphData.models) {\n const models_available = await useModelStore().getModelsInFolderCached(\n m.directory\n )\n if (models_available === null) {\n // @ts-expect-error\n m.directory_invalid = true\n missingModels.push(m)\n } else if (!(m.name in models_available.models)) {\n missingModels.push(m)\n }\n }\n }\n\n try {\n this.graph.configure(graphData)\n if (\n restore_view &&\n this.enableWorkflowViewRestore.value &&\n graphData.extra?.ds\n ) {\n // @ts-expect-error\n // Need to set strict: true for zod to match the type [number, number]\n // https://github.com/colinhacks/zod/issues/3056\n this.canvas.ds.offset = graphData.extra.ds.offset\n this.canvas.ds.scale = graphData.extra.ds.scale\n }\n\n try {\n this.workflowManager.activeWorkflow?.track()\n } catch (error) {\n // TODO: Do we want silently fail here?\n }\n } catch (error) {\n let errorHint = []\n // Try extracting filename to see if it was caused by an extension script\n const filename =\n error.fileName ||\n (error.stack || '').match(/(\\/extensions\\/.*\\.js)/)?.[1]\n const pos = (filename || '').indexOf('/extensions/')\n if (pos > -1) {\n errorHint.push(\n $el('span', {\n textContent: 'This may be due to the following script:'\n }),\n $el('br'),\n $el('span', {\n style: {\n fontWeight: 'bold'\n },\n textContent: filename.substring(pos)\n })\n )\n }\n\n // Show dialog to let the user know something went wrong loading the data\n this.ui.dialog.show(\n $el('div', [\n $el('p', {\n textContent: 'Loading aborted due to error reloading workflow data'\n }),\n $el('pre', {\n style: { padding: '5px', backgroundColor: 'rgba(255,0,0,0.2)' },\n textContent: error.toString()\n }),\n $el('pre', {\n style: {\n padding: '5px',\n color: '#ccc',\n fontSize: '10px',\n maxHeight: '50vh',\n overflow: 'auto',\n backgroundColor: 'rgba(0,0,0,0.2)'\n },\n textContent: error.stack || 'No stacktrace available'\n }),\n ...errorHint\n ]).outerHTML\n )\n\n return\n }\n for (const node of this.graph.nodes) {\n const size = node.computeSize()\n size[0] = Math.max(node.size[0], size[0])\n size[1] = Math.max(node.size[1], size[1])\n node.size = size\n if (node.widgets) {\n // If you break something in the backend and want to patch workflows in the frontend\n // This is the place to do this\n for (let widget of node.widgets) {\n if (node.type == 'KSampler' || node.type == 'KSamplerAdvanced') {\n if (widget.name == 'sampler_name') {\n if (\n typeof widget.value === 'string' &&\n widget.value.startsWith('sample_')\n ) {\n widget.value = widget.value.slice(7)\n }\n }\n }\n if (\n node.type == 'KSampler' ||\n node.type == 'KSamplerAdvanced' ||\n node.type == 'PrimitiveNode'\n ) {\n if (widget.name == 'control_after_generate') {\n if (widget.value === true) {\n // @ts-expect-error change widget type from boolean to string\n widget.value = 'randomize'\n } else if (widget.value === false) {\n // @ts-expect-error change widget type from boolean to string\n widget.value = 'fixed'\n }\n }\n }\n if (reset_invalid_values) {\n if (widget.type == 'combo') {\n if (\n !widget.options.values.includes(widget.value as string) &&\n widget.options.values.length > 0\n ) {\n widget.value = widget.options.values[0]\n }\n }\n }\n }\n }\n\n this.#invokeExtensions('loadedGraphNode', node)\n }\n\n // TODO: Properly handle if both nodes and models are missing (sequential dialogs?)\n if (missingNodeTypes.length && showMissingNodesDialog) {\n this.#showMissingNodesError(missingNodeTypes)\n }\n if (missingModels.length && showMissingModelsDialog) {\n const paths = await api.getFolderPaths()\n this.#showMissingModelsError(missingModels, paths)\n }\n await this.#invokeExtensionsAsync('afterConfigureGraph', missingNodeTypes)\n requestAnimationFrame(() => {\n this.graph.setDirtyCanvas(true, true)\n })\n }\n\n /**\n * Converts the current graph workflow for sending to the API\n * @returns The workflow and node links\n */\n async graphToPrompt(graph = this.graph, clean = true) {\n for (const outerNode of this.graph.computeExecutionOrder(false)) {\n if (outerNode.widgets) {\n for (const widget of outerNode.widgets) {\n // Allow widgets to run callbacks before a prompt has been queued\n // e.g. random seed before every gen\n widget.beforeQueued?.()\n }\n }\n\n const innerNodes = outerNode['getInnerNodes']\n ? outerNode['getInnerNodes']()\n : [outerNode]\n for (const node of innerNodes) {\n if (node.isVirtualNode) {\n // Don't serialize frontend only nodes but let them make changes\n if (node.applyToGraph) {\n node.applyToGraph()\n }\n }\n }\n }\n\n const sortNodes = useSettingStore().get('Comfy.Workflow.SortNodeIdOnSave')\n\n const workflow = graph.serialize({ sortNodes })\n const output = {}\n // Process nodes in order of execution\n for (const outerNode of graph.computeExecutionOrder(false)) {\n const skipNode = outerNode.mode === 2 || outerNode.mode === 4\n const innerNodes =\n !skipNode && outerNode['getInnerNodes']\n ? outerNode['getInnerNodes']()\n : [outerNode]\n for (const node of innerNodes) {\n if (node.isVirtualNode) {\n continue\n }\n\n if (node.mode === 2 || node.mode === 4) {\n // Don't serialize muted nodes\n continue\n }\n\n const inputs = {}\n const widgets = node.widgets\n\n // Store all widget values\n if (widgets) {\n for (const i in widgets) {\n const widget = widgets[i]\n if (!widget.options || widget.options.serialize !== false) {\n inputs[widget.name] = widget.serializeValue\n ? await widget.serializeValue(node, i)\n : widget.value\n }\n }\n }\n\n // Store all node links\n for (let i in node.inputs) {\n let parent = node.getInputNode(i)\n if (parent) {\n let link = node.getInputLink(i)\n while (parent.mode === 4 || parent.isVirtualNode) {\n let found = false\n if (parent.isVirtualNode) {\n link = parent.getInputLink(link.origin_slot)\n if (link) {\n parent = parent.getInputNode(link.target_slot)\n if (parent) {\n found = true\n }\n }\n } else if (link && parent.mode === 4) {\n let all_inputs = [link.origin_slot]\n if (parent.inputs) {\n all_inputs = all_inputs.concat(Object.keys(parent.inputs))\n for (let parent_input in all_inputs) {\n parent_input = all_inputs[parent_input]\n if (\n parent.inputs[parent_input]?.type === node.inputs[i].type\n ) {\n link = parent.getInputLink(parent_input)\n if (link) {\n parent = parent.getInputNode(parent_input)\n }\n found = true\n break\n }\n }\n }\n }\n\n if (!found) {\n break\n }\n }\n\n if (link) {\n if (parent?.updateLink) {\n link = parent.updateLink(link)\n }\n if (link) {\n inputs[node.inputs[i].name] = [\n String(link.origin_id),\n parseInt(link.origin_slot)\n ]\n }\n }\n }\n }\n\n let node_data = {\n inputs,\n class_type: node.comfyClass\n }\n\n if (this.ui.settings.getSettingValue('Comfy.DevMode')) {\n // Ignored by the backend.\n node_data['_meta'] = {\n title: node.title\n }\n }\n\n output[String(node.id)] = node_data\n }\n }\n\n // Remove inputs connected to removed nodes\n if (clean) {\n for (const o in output) {\n for (const i in output[o].inputs) {\n if (\n Array.isArray(output[o].inputs[i]) &&\n output[o].inputs[i].length === 2 &&\n !output[output[o].inputs[i][0]]\n ) {\n delete output[o].inputs[i]\n }\n }\n }\n }\n\n return { workflow, output }\n }\n\n #formatPromptError(error) {\n if (error == null) {\n return '(unknown error)'\n } else if (typeof error === 'string') {\n return error\n } else if (error.stack && error.message) {\n return error.toString()\n } else if (error.response) {\n let message = error.response.error.message\n if (error.response.error.details)\n message += ': ' + error.response.error.details\n for (const [nodeID, nodeError] of Object.entries(\n error.response.node_errors\n )) {\n // @ts-expect-error\n message += '\\n' + nodeError.class_type + ':'\n // @ts-expect-error\n for (const errorReason of nodeError.errors) {\n message +=\n '\\n - ' + errorReason.message + ': ' + errorReason.details\n }\n }\n return message\n }\n return '(unknown error)'\n }\n\n async queuePrompt(number, batchCount = 1) {\n this.#queueItems.push({ number, batchCount })\n\n // Only have one action process the items so each one gets a unique seed correctly\n if (this.#processingQueue) {\n return\n }\n\n this.#processingQueue = true\n this.lastNodeErrors = null\n\n try {\n while (this.#queueItems.length) {\n ;({ number, batchCount } = this.#queueItems.pop())\n\n for (let i = 0; i < batchCount; i++) {\n const p = await this.graphToPrompt()\n\n try {\n const res = await api.queuePrompt(number, p)\n this.lastNodeErrors = res.node_errors\n if (this.lastNodeErrors.length > 0) {\n this.canvas.draw(true, true)\n } else {\n try {\n this.workflowManager.storePrompt({\n id: res.prompt_id,\n nodes: Object.keys(p.output)\n })\n } catch (error) {}\n }\n } catch (error) {\n const formattedError = this.#formatPromptError(error)\n this.ui.dialog.show(formattedError)\n if (error.response) {\n this.lastNodeErrors = error.response.node_errors\n this.canvas.draw(true, true)\n }\n break\n }\n\n for (const n of p.workflow.nodes) {\n const node = this.graph.getNodeById(n.id)\n if (node.widgets) {\n for (const widget of node.widgets) {\n // Allow widgets to run callbacks after a prompt has been queued\n // e.g. random seed after every gen\n // @ts-expect-error\n if (widget.afterQueued) {\n // @ts-expect-error\n widget.afterQueued()\n }\n }\n }\n }\n\n this.canvas.draw(true, true)\n await this.ui.queue.update()\n }\n }\n } finally {\n this.#processingQueue = false\n }\n api.dispatchEvent(\n new CustomEvent('promptQueued', { detail: { number, batchCount } })\n )\n return !this.lastNodeErrors\n }\n\n showErrorOnFileLoad(file) {\n this.ui.dialog.show(\n $el('div', [\n $el('p', { textContent: `Unable to find workflow in ${file.name}` })\n ]).outerHTML\n )\n }\n\n /**\n * Loads workflow data from the specified file\n * @param {File} file\n */\n async handleFile(file) {\n const removeExt = (f) => {\n if (!f) return f\n const p = f.lastIndexOf('.')\n if (p === -1) return f\n return f.substring(0, p)\n }\n const fileName = removeExt(file.name)\n if (file.type === 'image/png') {\n const pngInfo = await getPngMetadata(file)\n if (pngInfo?.workflow) {\n await this.loadGraphData(\n JSON.parse(pngInfo.workflow),\n true,\n true,\n fileName\n )\n } else if (pngInfo?.prompt) {\n this.loadApiJson(JSON.parse(pngInfo.prompt), fileName)\n } else if (pngInfo?.parameters) {\n this.changeWorkflow(() => {\n importA1111(this.graph, pngInfo.parameters)\n }, fileName)\n } else {\n this.showErrorOnFileLoad(file)\n }\n } else if (file.type === 'image/webp') {\n const pngInfo = await getWebpMetadata(file)\n // Support loading workflows from that webp custom node.\n const workflow = pngInfo?.workflow || pngInfo?.Workflow\n const prompt = pngInfo?.prompt || pngInfo?.Prompt\n\n if (workflow) {\n this.loadGraphData(JSON.parse(workflow), true, true, fileName)\n } else if (prompt) {\n this.loadApiJson(JSON.parse(prompt), fileName)\n } else {\n this.showErrorOnFileLoad(file)\n }\n } else if (file.type === 'audio/flac' || file.type === 'audio/x-flac') {\n const pngInfo = await getFlacMetadata(file)\n const workflow = pngInfo?.workflow || pngInfo?.Workflow\n const prompt = pngInfo?.prompt || pngInfo?.Prompt\n\n if (workflow) {\n this.loadGraphData(JSON.parse(workflow), true, true, fileName)\n } else if (prompt) {\n this.loadApiJson(JSON.parse(prompt), fileName)\n } else {\n this.showErrorOnFileLoad(file)\n }\n } else if (\n file.type === 'application/json' ||\n file.name?.endsWith('.json')\n ) {\n const reader = new FileReader()\n reader.onload = async () => {\n const readerResult = reader.result as string\n const jsonContent = JSON.parse(readerResult)\n if (jsonContent?.templates) {\n this.loadTemplateData(jsonContent)\n } else if (this.isApiJson(jsonContent)) {\n this.loadApiJson(jsonContent, fileName)\n } else {\n await this.loadGraphData(\n JSON.parse(readerResult),\n true,\n false,\n fileName\n )\n }\n }\n reader.readAsText(file)\n } else if (\n file.name?.endsWith('.latent') ||\n file.name?.endsWith('.safetensors')\n ) {\n const info = await getLatentMetadata(file)\n // TODO define schema to LatentMetadata\n // @ts-expect-error\n if (info.workflow) {\n await this.loadGraphData(\n // @ts-expect-error\n JSON.parse(info.workflow),\n true,\n true,\n fileName\n )\n // @ts-expect-error\n } else if (info.prompt) {\n // @ts-expect-error\n this.loadApiJson(JSON.parse(info.prompt))\n } else {\n this.showErrorOnFileLoad(file)\n }\n } else {\n this.showErrorOnFileLoad(file)\n }\n }\n\n isApiJson(data) {\n // @ts-expect-error\n return Object.values(data).every((v) => v.class_type)\n }\n\n loadApiJson(apiData, fileName: string) {\n const missingNodeTypes = Object.values(apiData).filter(\n // @ts-expect-error\n (n) => !LiteGraph.registered_node_types[n.class_type]\n )\n if (missingNodeTypes.length) {\n this.#showMissingNodesError(\n // @ts-expect-error\n missingNodeTypes.map((t) => t.class_type),\n false\n )\n return\n }\n\n const ids = Object.keys(apiData)\n app.graph.clear()\n for (const id of ids) {\n const data = apiData[id]\n const node = LiteGraph.createNode(data.class_type)\n node.id = isNaN(+id) ? id : +id\n node.title = data._meta?.title ?? node.title\n app.graph.add(node)\n }\n\n this.changeWorkflow(() => {\n for (const id of ids) {\n const data = apiData[id]\n const node = app.graph.getNodeById(id)\n for (const input in data.inputs ?? {}) {\n const value = data.inputs[input]\n if (value instanceof Array) {\n const [fromId, fromSlot] = value\n const fromNode = app.graph.getNodeById(fromId)\n let toSlot = node.inputs?.findIndex((inp) => inp.name === input)\n if (toSlot == null || toSlot === -1) {\n try {\n // Target has no matching input, most likely a converted widget\n const widget = node.widgets?.find((w) => w.name === input)\n // @ts-expect-error\n if (widget && node.convertWidgetToInput?.(widget)) {\n toSlot = node.inputs?.length - 1\n }\n } catch (error) {}\n }\n if (toSlot != null || toSlot !== -1) {\n fromNode.connect(fromSlot, node, toSlot)\n }\n } else {\n const widget = node.widgets?.find((w) => w.name === input)\n if (widget) {\n widget.value = value\n widget.callback?.(value)\n }\n }\n }\n }\n app.graph.arrange()\n }, fileName)\n\n for (const id of ids) {\n const data = apiData[id]\n const node = app.graph.getNodeById(id)\n for (const input in data.inputs ?? {}) {\n const value = data.inputs[input]\n if (value instanceof Array) {\n const [fromId, fromSlot] = value\n const fromNode = app.graph.getNodeById(fromId)\n let toSlot = node.inputs?.findIndex((inp) => inp.name === input)\n if (toSlot == null || toSlot === -1) {\n try {\n // Target has no matching input, most likely a converted widget\n const widget = node.widgets?.find((w) => w.name === input)\n // @ts-expect-error\n if (widget && node.convertWidgetToInput?.(widget)) {\n toSlot = node.inputs?.length - 1\n }\n } catch (error) {}\n }\n if (toSlot != null || toSlot !== -1) {\n fromNode.connect(fromSlot, node, toSlot)\n }\n } else {\n const widget = node.widgets?.find((w) => w.name === input)\n if (widget) {\n widget.value = value\n widget.callback?.(value)\n }\n }\n }\n }\n\n app.graph.arrange()\n }\n\n /**\n * Registers a Comfy web extension with the app\n * @param {ComfyExtension} extension\n */\n registerExtension(extension: ComfyExtension) {\n if (this.vueAppReady) {\n useExtensionStore().registerExtension(extension)\n } else {\n // For jest testing.\n this.extensions.push(extension)\n }\n }\n\n /**\n * Refresh combo list on whole nodes\n */\n async refreshComboInNodes() {\n const requestToastMessage: ToastMessageOptions = {\n severity: 'info',\n summary: 'Update',\n detail: 'Update requested'\n }\n if (this.vueAppReady) {\n useToastStore().add(requestToastMessage)\n useModelStore().clearCache()\n }\n\n const defs = await api.getNodeDefs({\n validate: useSettingStore().get('Comfy.Validation.NodeDefs')\n })\n\n for (const nodeId in defs) {\n this.registerNodeDef(nodeId, defs[nodeId])\n }\n for (let nodeNum in this.graph.nodes) {\n const node = this.graph.nodes[nodeNum]\n const def = defs[node.type]\n // @ts-expect-error\n // Allow primitive nodes to handle refresh\n node.refreshComboInNode?.(defs)\n\n if (!def) continue\n\n for (const widgetNum in node.widgets) {\n const widget = node.widgets[widgetNum]\n if (\n widget.type == 'combo' &&\n def['input']['required'][widget.name] !== undefined\n ) {\n widget.options.values = def['input']['required'][widget.name][0]\n }\n }\n }\n\n await this.#invokeExtensionsAsync('refreshComboInNodes', defs)\n\n if (this.vueAppReady) {\n this.updateVueAppNodeDefs(defs)\n useToastStore().remove(requestToastMessage)\n useToastStore().add({\n severity: 'success',\n summary: 'Updated',\n detail: 'Node definitions updated',\n life: 1000\n })\n }\n }\n\n resetView() {\n app.canvas.ds.scale = 1\n app.canvas.ds.offset = [0, 0]\n app.graph.setDirtyCanvas(true, true)\n }\n\n /**\n * Clean current state\n */\n clean() {\n this.nodeOutputs = {}\n this.nodePreviewImages = {}\n this.lastNodeErrors = null\n this.lastExecutionError = null\n }\n\n addNodeOnGraph(\n nodeDef: ComfyNodeDef | ComfyNodeDefImpl,\n options: Record = {}\n ): LGraphNode {\n const node = LiteGraph.createNode(\n nodeDef.name,\n nodeDef.display_name,\n options\n )\n this.graph.add(node)\n return node\n }\n\n clientPosToCanvasPos(pos: Vector2): Vector2 {\n const rect = this.canvasContainer.getBoundingClientRect()\n const containerOffsets = [rect.left, rect.top]\n return _.zip(pos, this.canvas.ds.offset, containerOffsets).map(\n ([p, o1, o2]) => (p - o2) / this.canvas.ds.scale - o1\n ) as Vector2\n }\n\n canvasPosToClientPos(pos: Vector2): Vector2 {\n const rect = this.canvasContainer.getBoundingClientRect()\n const containerOffsets = [rect.left, rect.top]\n return _.zip(pos, this.canvas.ds.offset, containerOffsets).map(\n ([p, o1, o2]) => (p + o1) * this.canvas.ds.scale + o2\n ) as Vector2\n }\n\n getCanvasCenter(): Vector2 {\n const dpi = Math.max(window.devicePixelRatio ?? 1, 1)\n const [x, y, w, h] = app.canvas.ds.visible_area\n return [x + w / dpi / 2, y + h / dpi / 2]\n }\n\n public goToNode(nodeId: NodeId) {\n const graphNode = this.graph.getNodeById(nodeId)\n if (!graphNode) return\n this.canvas.centerOnNode(graphNode)\n }\n}\n\nexport const app = new ComfyApp()\n","import { LGraphNode, LGraphGroup, LGraphCanvas } from '@comfyorg/litegraph'\nimport { defineStore } from 'pinia'\nimport { shallowRef } from 'vue'\n\nexport const useTitleEditorStore = defineStore('titleEditor', () => {\n const titleEditorTarget = shallowRef(null)\n\n return {\n titleEditorTarget\n }\n})\n\nexport const useCanvasStore = defineStore('canvas', () => {\n /**\n * The LGraphCanvas instance.\n *\n * The root LGraphCanvas object is shallow reactive.\n */\n const canvas = shallowRef(null)\n\n return {\n canvas\n }\n})\n","import { useToastStore } from '@/stores/toastStore'\nimport { useI18n } from 'vue-i18n'\n\nexport function useErrorHandling() {\n const toast = useToastStore()\n const { t } = useI18n()\n\n const toastErrorHandler = (error: any) => {\n toast.add({\n severity: 'error',\n summary: t('error'),\n detail: error.message,\n life: 3000\n })\n }\n\n const wrapWithErrorHandling =\n (action: (...args: any[]) => any, errorHandler?: (error: any) => void) =>\n (...args: any[]) => {\n try {\n return action(...args)\n } catch (e) {\n ;(errorHandler ?? toastErrorHandler)(e)\n }\n }\n\n const wrapWithErrorHandlingAsync =\n (\n action: ((...args: any[]) => Promise) | ((...args: any[]) => any),\n errorHandler?: (error: any) => void\n ) =>\n async (...args: any[]) => {\n try {\n return await action(...args)\n } catch (e) {\n ;(errorHandler ?? toastErrorHandler)(e)\n }\n }\n\n return { wrapWithErrorHandling, wrapWithErrorHandlingAsync }\n}\n","// @ts-strict-ignore\nimport { defineStore } from 'pinia'\nimport { computed, ref } from 'vue'\nimport { ComfyWorkflow } from '@/scripts/workflows'\nimport { buildTree } from '@/utils/treeUtil'\nimport { api } from '@/scripts/api'\n\nexport const useWorkflowStore = defineStore('workflow', () => {\n const activeWorkflow = ref(null)\n const workflowLookup = ref>({})\n const workflows = computed(() => Object.values(workflowLookup.value))\n const persistedWorkflows = computed(() =>\n workflows.value.filter((workflow) => workflow.isPersisted)\n )\n const openWorkflows = computed(() =>\n workflows.value.filter((workflow) => workflow.isOpen)\n )\n const bookmarkedWorkflows = computed(() =>\n workflows.value.filter((workflow) => workflow.isBookmarked)\n )\n const modifiedWorkflows = computed(() =>\n workflows.value.filter((workflow) => workflow.unsaved)\n )\n\n const buildWorkflowTree = (workflows: ComfyWorkflow[]) => {\n return buildTree(workflows, (workflow: ComfyWorkflow) =>\n workflow.key.split('/')\n )\n }\n const workflowsTree = computed(() =>\n buildWorkflowTree(persistedWorkflows.value)\n )\n // Bookmarked workflows tree is flat.\n const bookmarkedWorkflowsTree = computed(() =>\n buildTree(bookmarkedWorkflows.value, (workflow: ComfyWorkflow) => [\n workflow.path\n ])\n )\n // Open workflows tree is flat.\n const openWorkflowsTree = computed(() =>\n buildTree(openWorkflows.value, (workflow: ComfyWorkflow) => [workflow.key])\n )\n\n const loadOpenedWorkflowIndexShift = async (shift: number) => {\n const index = openWorkflows.value.indexOf(\n activeWorkflow.value as ComfyWorkflow\n )\n if (index !== -1) {\n const length = openWorkflows.value.length\n const nextIndex = (index + shift + length) % length\n const nextWorkflow = openWorkflows.value[nextIndex]\n if (nextWorkflow) {\n await nextWorkflow.load()\n }\n }\n }\n\n const loadNextOpenedWorkflow = async () => {\n await loadOpenedWorkflowIndexShift(1)\n }\n\n const loadPreviousOpenedWorkflow = async () => {\n await loadOpenedWorkflowIndexShift(-1)\n }\n\n return {\n activeWorkflow,\n workflows,\n openWorkflows,\n bookmarkedWorkflows,\n modifiedWorkflows,\n workflowLookup,\n workflowsTree,\n bookmarkedWorkflowsTree,\n openWorkflowsTree,\n buildWorkflowTree,\n loadNextOpenedWorkflow,\n loadPreviousOpenedWorkflow\n }\n})\n\nexport const useWorkflowBookmarkStore = defineStore('workflowBookmark', () => {\n const bookmarks = ref>(new Set())\n\n const isBookmarked = (path: string) => bookmarks.value.has(path)\n\n const loadBookmarks = async () => {\n const resp = await api.getUserData('workflows/.index.json')\n if (resp.status === 200) {\n const info = await resp.json()\n bookmarks.value = new Set(info?.favorites ?? [])\n }\n }\n\n const saveBookmarks = async () => {\n await api.storeUserData('workflows/.index.json', {\n favorites: Array.from(bookmarks.value)\n })\n }\n\n const setBookmarked = (path: string, value: boolean) => {\n if (value) {\n bookmarks.value.add(path)\n } else {\n bookmarks.value.delete(path)\n }\n saveBookmarks()\n }\n\n const toggleBookmarked = (path: string) => {\n setBookmarked(path, !bookmarks.value.has(path))\n }\n\n return {\n isBookmarked,\n loadBookmarks,\n saveBookmarks,\n setBookmarked,\n toggleBookmarked\n }\n})\n","// @ts-strict-ignore\nimport { app } from '@/scripts/app'\nimport { api } from '@/scripts/api'\nimport { defineStore } from 'pinia'\nimport { computed, ref } from 'vue'\nimport { globalTracker } from '@/scripts/changeTracker'\nimport { useSettingStore } from '@/stores/settingStore'\nimport { useToastStore } from '@/stores/toastStore'\nimport {\n showSettingsDialog,\n showTemplateWorkflowsDialog\n} from '@/services/dialogService'\nimport { useQueueSettingsStore, useQueueStore } from './queueStore'\nimport { LiteGraph } from '@comfyorg/litegraph'\nimport { ComfyExtension } from '@/types/comfy'\nimport { LGraphGroup } from '@comfyorg/litegraph'\nimport { useTitleEditorStore } from './graphStore'\nimport { useErrorHandling } from '@/hooks/errorHooks'\nimport { useWorkflowStore } from './workflowStore'\nimport { type KeybindingImpl, useKeybindingStore } from './keybindingStore'\nimport { LGraphNode } from '@comfyorg/litegraph'\n\nexport interface ComfyCommand {\n id: string\n function: () => void | Promise\n\n label?: string | (() => string)\n icon?: string | (() => string)\n tooltip?: string | (() => string)\n /** Menubar item label, if different from command label */\n menubarLabel?: string | (() => string)\n versionAdded?: string\n}\n\nexport class ComfyCommandImpl implements ComfyCommand {\n id: string\n function: () => void | Promise\n _label?: string | (() => string)\n _icon?: string | (() => string)\n _tooltip?: string | (() => string)\n _menubarLabel?: string | (() => string)\n versionAdded?: string\n\n constructor(command: ComfyCommand) {\n this.id = command.id\n this.function = command.function\n this._label = command.label\n this._icon = command.icon\n this._tooltip = command.tooltip\n this._menubarLabel = command.menubarLabel ?? command.label\n this.versionAdded = command.versionAdded\n }\n\n get label() {\n return typeof this._label === 'function' ? this._label() : this._label\n }\n\n get icon() {\n return typeof this._icon === 'function' ? this._icon() : this._icon\n }\n\n get tooltip() {\n return typeof this._tooltip === 'function' ? this._tooltip() : this._tooltip\n }\n\n get menubarLabel() {\n return typeof this._menubarLabel === 'function'\n ? this._menubarLabel()\n : this._menubarLabel\n }\n\n get keybinding(): KeybindingImpl | null {\n return useKeybindingStore().getKeybindingByCommandId(this.id)\n }\n}\n\nconst getTracker = () =>\n app.workflowManager.activeWorkflow?.changeTracker ?? globalTracker\n\nconst getSelectedNodes = (): LGraphNode[] => {\n const selectedNodes = app.canvas.selected_nodes\n const result: LGraphNode[] = []\n if (selectedNodes) {\n for (const i in selectedNodes) {\n const node = selectedNodes[i]\n result.push(node)\n }\n }\n return result\n}\n\nconst toggleSelectedNodesMode = (mode: number) => {\n getSelectedNodes().forEach((node) => {\n if (node.mode === mode) {\n node.mode = 0 // always\n } else {\n node.mode = mode\n }\n })\n}\n\nexport const useCommandStore = defineStore('command', () => {\n const settingStore = useSettingStore()\n\n const commandsById = ref>({})\n const commands = computed(() => Object.values(commandsById.value))\n\n const registerCommand = (command: ComfyCommand) => {\n if (commandsById.value[command.id]) {\n console.warn(`Command ${command.id} already registered`)\n }\n commandsById.value[command.id] = new ComfyCommandImpl(command)\n }\n\n const commandDefinitions: ComfyCommand[] = [\n {\n id: 'Comfy.NewBlankWorkflow',\n icon: 'pi pi-plus',\n label: 'New Blank Workflow',\n menubarLabel: 'New',\n function: () => {\n app.workflowManager.setWorkflow(null)\n app.clean()\n app.graph.clear()\n app.workflowManager.activeWorkflow.track()\n }\n },\n {\n id: 'Comfy.OpenWorkflow',\n icon: 'pi pi-folder-open',\n label: 'Open Workflow',\n menubarLabel: 'Open',\n function: () => {\n app.ui.loadFile()\n }\n },\n {\n id: 'Comfy.LoadDefaultWorkflow',\n icon: 'pi pi-code',\n label: 'Load Default Workflow',\n function: async () => {\n await app.loadGraphData()\n }\n },\n {\n id: 'Comfy.SaveWorkflow',\n icon: 'pi pi-save',\n label: 'Save Workflow',\n menubarLabel: 'Save',\n function: () => {\n app.workflowManager.activeWorkflow.save()\n }\n },\n {\n id: 'Comfy.SaveWorkflowAs',\n icon: 'pi pi-save',\n label: 'Save Workflow As',\n menubarLabel: 'Save As',\n function: () => {\n app.workflowManager.activeWorkflow.save(true)\n }\n },\n {\n id: 'Comfy.ExportWorkflow',\n icon: 'pi pi-download',\n label: 'Export Workflow',\n menubarLabel: 'Export',\n function: () => {\n app.menu.exportWorkflow('workflow', 'workflow')\n }\n },\n {\n id: 'Comfy.ExportWorkflowAPI',\n icon: 'pi pi-download',\n label: 'Export Workflow (API Format)',\n menubarLabel: 'Export (API)',\n function: () => {\n app.menu.exportWorkflow('workflow_api', 'output')\n }\n },\n {\n id: 'Comfy.Undo',\n icon: 'pi pi-undo',\n label: 'Undo',\n function: async () => {\n await getTracker().undo()\n }\n },\n {\n id: 'Comfy.Redo',\n icon: 'pi pi-refresh',\n label: 'Redo',\n function: async () => {\n await getTracker().redo()\n }\n },\n {\n id: 'Comfy.ClearWorkflow',\n icon: 'pi pi-trash',\n label: 'Clear Workflow',\n function: () => {\n if (\n !settingStore.get('Comfy.ComfirmClear') ||\n confirm('Clear workflow?')\n ) {\n app.clean()\n app.graph.clear()\n api.dispatchEvent(new CustomEvent('graphCleared'))\n }\n }\n },\n {\n id: 'Comfy.Canvas.ResetView',\n icon: 'pi pi-expand',\n label: 'Reset View',\n function: () => {\n app.resetView()\n }\n },\n {\n id: 'Comfy.OpenClipspace',\n icon: 'pi pi-clipboard',\n label: 'Clipspace',\n function: () => {\n app['openClipspace']?.()\n }\n },\n {\n id: 'Comfy.RefreshNodeDefinitions',\n icon: 'pi pi-refresh',\n label: 'Refresh Node Definitions',\n function: async () => {\n await app.refreshComboInNodes()\n }\n },\n {\n id: 'Comfy.Interrupt',\n icon: 'pi pi-stop',\n label: 'Interrupt',\n function: async () => {\n await api.interrupt()\n useToastStore().add({\n severity: 'info',\n summary: 'Interrupted',\n detail: 'Execution has been interrupted',\n life: 1000\n })\n }\n },\n {\n id: 'Comfy.ClearPendingTasks',\n icon: 'pi pi-stop',\n label: 'Clear Pending Tasks',\n function: async () => {\n await useQueueStore().clear(['queue'])\n useToastStore().add({\n severity: 'info',\n summary: 'Confirmed',\n detail: 'Pending tasks deleted',\n life: 3000\n })\n }\n },\n {\n id: 'Comfy.BrowseTemplates',\n icon: 'pi pi-folder-open',\n label: 'Browse Templates',\n function: showTemplateWorkflowsDialog\n },\n {\n id: 'Comfy.Canvas.ZoomIn',\n icon: 'pi pi-plus',\n label: 'Zoom In',\n function: () => {\n const ds = app.canvas.ds\n ds.changeScale(ds.scale * 1.1, [\n ds.element.width / 2,\n ds.element.height / 2\n ])\n app.canvas.setDirty(true, true)\n }\n },\n {\n id: 'Comfy.Canvas.ZoomOut',\n icon: 'pi pi-minus',\n label: 'Zoom Out',\n function: () => {\n const ds = app.canvas.ds\n ds.changeScale(ds.scale / 1.1, [\n ds.element.width / 2,\n ds.element.height / 2\n ])\n app.canvas.setDirty(true, true)\n }\n },\n {\n id: 'Comfy.Canvas.ToggleLock',\n icon: 'pi pi-lock',\n label: 'Toggle Lock',\n function: () => {\n app.canvas['read_only'] = !app.canvas['read_only']\n }\n },\n {\n id: 'Comfy.Canvas.ToggleLinkVisibility',\n icon: 'pi pi-eye',\n label: 'Toggle Link Visibility',\n versionAdded: '1.3.6',\n\n function: (() => {\n let lastLinksRenderMode = LiteGraph.SPLINE_LINK\n\n return () => {\n const currentMode = settingStore.get('Comfy.LinkRenderMode')\n\n if (currentMode === LiteGraph.HIDDEN_LINK) {\n // If links are hidden, restore the last positive value or default to spline mode\n settingStore.set('Comfy.LinkRenderMode', lastLinksRenderMode)\n } else {\n // If links are visible, store the current mode and hide links\n lastLinksRenderMode = currentMode\n settingStore.set('Comfy.LinkRenderMode', LiteGraph.HIDDEN_LINK)\n }\n }\n })()\n },\n {\n id: 'Comfy.QueuePrompt',\n icon: 'pi pi-play',\n label: 'Queue Prompt',\n versionAdded: '1.3.7',\n function: () => {\n const batchCount = useQueueSettingsStore().batchCount\n app.queuePrompt(0, batchCount)\n }\n },\n {\n id: 'Comfy.QueuePromptFront',\n icon: 'pi pi-play',\n label: 'Queue Prompt (Front)',\n versionAdded: '1.3.7',\n function: () => {\n const batchCount = useQueueSettingsStore().batchCount\n app.queuePrompt(-1, batchCount)\n }\n },\n {\n id: 'Comfy.ShowSettingsDialog',\n icon: 'pi pi-cog',\n label: 'Settings',\n versionAdded: '1.3.7',\n function: () => {\n showSettingsDialog()\n }\n },\n {\n id: 'Comfy.Graph.GroupSelectedNodes',\n icon: 'pi pi-sitemap',\n label: 'Group Selected Nodes',\n versionAdded: '1.3.7',\n function: () => {\n if (\n !app.canvas.selected_nodes ||\n Object.keys(app.canvas.selected_nodes).length === 0\n ) {\n useToastStore().add({\n severity: 'error',\n summary: 'No nodes selected',\n detail: 'Please select nodes to group',\n life: 3000\n })\n return\n }\n const group = new LGraphGroup()\n const padding = useSettingStore().get(\n 'Comfy.GroupSelectedNodes.Padding'\n )\n group.addNodes(Object.values(app.canvas.selected_nodes), padding)\n app.canvas.graph.add(group)\n useTitleEditorStore().titleEditorTarget = group\n }\n },\n {\n id: 'Workspace.NextOpenedWorkflow',\n icon: 'pi pi-step-forward',\n label: 'Next Opened Workflow',\n versionAdded: '1.3.9',\n function: () => {\n useWorkflowStore().loadNextOpenedWorkflow()\n }\n },\n {\n id: 'Workspace.PreviousOpenedWorkflow',\n icon: 'pi pi-step-backward',\n label: 'Previous Opened Workflow',\n versionAdded: '1.3.9',\n function: () => {\n useWorkflowStore().loadPreviousOpenedWorkflow()\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Mute',\n icon: 'pi pi-volume-off',\n label: 'Mute/Unmute Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n toggleSelectedNodesMode(2) // muted\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Bypass',\n icon: 'pi pi-shield',\n label: 'Bypass/Unbypass Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n toggleSelectedNodesMode(4) // bypassed\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Pin',\n icon: 'pi pi-pin',\n label: 'Pin/Unpin Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n getSelectedNodes().forEach((node) => {\n node.pin(!node.pinned)\n })\n }\n },\n {\n id: 'Comfy.Canvas.ToggleSelectedNodes.Collapse',\n icon: 'pi pi-minus',\n label: 'Collapse/Expand Selected Nodes',\n versionAdded: '1.3.11',\n function: () => {\n getSelectedNodes().forEach((node) => {\n node.collapse()\n })\n }\n },\n {\n id: 'Comfy.ToggleTheme',\n icon: 'pi pi-moon',\n label: 'Toggle Theme',\n versionAdded: '1.3.12',\n function: (() => {\n let previousDarkTheme: string = 'dark'\n\n // Official light theme is the only light theme supported now.\n const isDarkMode = (themeId: string) => themeId !== 'light'\n return () => {\n const currentTheme = settingStore.get('Comfy.ColorPalette')\n if (isDarkMode(currentTheme)) {\n previousDarkTheme = currentTheme\n settingStore.set('Comfy.ColorPalette', 'light')\n } else {\n settingStore.set('Comfy.ColorPalette', previousDarkTheme)\n }\n }\n })()\n }\n ]\n\n commandDefinitions.forEach(registerCommand)\n const getCommand = (command: string) => {\n return commandsById.value[command]\n }\n\n const { wrapWithErrorHandlingAsync } = useErrorHandling()\n const execute = async (\n commandId: string,\n errorHandler?: (error: any) => void\n ) => {\n const command = getCommand(commandId)\n if (command) {\n await wrapWithErrorHandlingAsync(command.function, errorHandler)()\n } else {\n throw new Error(`Command ${commandId} not found`)\n }\n }\n\n const isRegistered = (command: string) => {\n return !!commandsById.value[command]\n }\n\n const loadExtensionCommands = (extension: ComfyExtension) => {\n if (extension.commands) {\n for (const command of extension.commands) {\n registerCommand(command)\n }\n }\n }\n\n return {\n commands,\n execute,\n getCommand,\n registerCommand,\n isRegistered,\n loadExtensionCommands\n }\n})\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-tree {\\n background: \".concat(dt('tree.background'), \";\\n color: \").concat(dt('tree.color'), \";\\n padding: \").concat(dt('tree.padding'), \";\\n}\\n\\n.p-tree-root-children,\\n.p-tree-node-children {\\n display: flex;\\n list-style-type: none;\\n flex-direction: column;\\n margin: 0;\\n gap: \").concat(dt('tree.gap'), \";\\n}\\n\\n.p-tree-root-children {\\n padding: \").concat(dt('tree.gap'), \" 0 0 0;\\n}\\n\\n.p-tree-node-children {\\n padding: \").concat(dt('tree.gap'), \" 0 0 \").concat(dt('tree.indent'), \";\\n}\\n\\n.p-tree-node {\\n padding: 0;\\n outline: 0 none;\\n}\\n\\n.p-tree-node-content {\\n border-radius: \").concat(dt('tree.node.border.radius'), \";\\n padding: \").concat(dt('tree.node.padding'), \";\\n display: flex;\\n align-items: center;\\n outline-color: transparent;\\n color: \").concat(dt('tree.node.color'), \";\\n gap: \").concat(dt('tree.node.gap'), \";\\n transition: background \").concat(dt('tree.transition.duration'), \", color \").concat(dt('tree.transition.duration'), \", outline-color \").concat(dt('tree.transition.duration'), \", box-shadow \").concat(dt('tree.transition.duration'), \";\\n}\\n\\n.p-tree-node:focus-visible > .p-tree-node-content {\\n box-shadow: \").concat(dt('tree.node.focus.ring.shadow'), \";\\n outline: \").concat(dt('tree.node.focus.ring.width'), \" \").concat(dt('tree.node.focus.ring.style'), \" \").concat(dt('tree.node.focus.ring.color'), \";\\n outline-offset: \").concat(dt('tree.node.focus.ring.offset'), \";\\n}\\n\\n.p-tree-node-content.p-tree-node-selectable:not(.p-tree-node-selected):hover {\\n background: \").concat(dt('tree.node.hover.background'), \";\\n color: \").concat(dt('tree.node.hover.color'), \";\\n}\\n\\n.p-tree-node-content.p-tree-node-selectable:not(.p-tree-node-selected):hover .p-tree-node-icon {\\n color: \").concat(dt('tree.node.icon.hover.color'), \";\\n}\\n\\n.p-tree-node-content.p-tree-node-selected {\\n background: \").concat(dt('tree.node.selected.background'), \";\\n color: \").concat(dt('tree.node.selected.color'), \";\\n}\\n\\n.p-tree-node-content.p-tree-node-selected .p-tree-node-toggle-button {\\n color: inherit;\\n}\\n\\n.p-tree-node-toggle-button {\\n cursor: pointer;\\n user-select: none;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n position: relative;\\n flex-shrink: 0;\\n width: \").concat(dt('tree.node.toggle.button.size'), \";\\n height: \").concat(dt('tree.node.toggle.button.size'), \";\\n color: \").concat(dt('tree.node.toggle.button.color'), \";\\n border: 0 none;\\n background: transparent;\\n border-radius: \").concat(dt('tree.node.toggle.button.border.radius'), \";\\n transition: background \").concat(dt('tree.transition.duration'), \", color \").concat(dt('tree.transition.duration'), \", border-color \").concat(dt('tree.transition.duration'), \", outline-color \").concat(dt('tree.transition.duration'), \", box-shadow \").concat(dt('tree.transition.duration'), \";\\n outline-color: transparent;\\n padding: 0;\\n}\\n\\n.p-tree-node-toggle-button:enabled:hover {\\n background: \").concat(dt('tree.node.toggle.button.hover.background'), \";\\n color: \").concat(dt('tree.node.toggle.button.hover.color'), \";\\n}\\n\\n.p-tree-node-content.p-tree-node-selected .p-tree-node-toggle-button:hover {\\n background: \").concat(dt('tree.node.toggle.button.selected.hover.background'), \";\\n color: \").concat(dt('tree.node.toggle.button.selected.hover.color'), \";\\n}\\n\\n.p-tree-root {\\n overflow: auto;\\n}\\n\\n.p-tree-node-selectable {\\n cursor: pointer;\\n user-select: none;\\n}\\n\\n.p-tree-node-leaf > .p-tree-node-content .p-tree-node-toggle-button {\\n visibility: hidden;\\n}\\n\\n.p-tree-node-icon {\\n color: \").concat(dt('tree.node.icon.color'), \";\\n transition: color \").concat(dt('tree.transition.duration'), \";\\n}\\n\\n.p-tree-node-content.p-tree-node-selected .p-tree-node-icon {\\n color: \").concat(dt('tree.node.icon.selected.color'), \";\\n}\\n\\n.p-tree-filter-input {\\n width: 100%;\\n}\\n\\n.p-tree-loading {\\n position: relative;\\n height: 100%;\\n}\\n\\n.p-tree-loading-icon {\\n font-size: \").concat(dt('tree.loading.icon.size'), \";\\n width: \").concat(dt('tree.loading.icon.size'), \";\\n height: \").concat(dt('tree.loading.icon.size'), \";\\n}\\n\\n.p-tree .p-tree-mask {\\n position: absolute;\\n z-index: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.p-tree-flex-scrollable {\\n display: flex;\\n flex: 1;\\n height: 100%;\\n flex-direction: column;\\n}\\n\\n.p-tree-flex-scrollable .p-tree-root {\\n flex: 1;\\n}\\n\");\n};\nvar classes = {\n root: function root(_ref2) {\n var props = _ref2.props;\n return ['p-tree p-component', {\n 'p-tree-selectable': props.selectionMode != null,\n 'p-tree-loading': props.loading,\n 'p-tree-flex-scrollable': props.scrollHeight === 'flex'\n }];\n },\n mask: 'p-tree-mask p-overlay-mask',\n loadingIcon: 'p-tree-loading-icon',\n pcFilterInput: 'p-tree-filter-input',\n wrapper: 'p-tree-root',\n //TODO: discuss\n rootChildren: 'p-tree-root-children',\n node: function node(_ref3) {\n var instance = _ref3.instance;\n return ['p-tree-node', {\n 'p-tree-node-leaf': instance.leaf\n }];\n },\n nodeContent: function nodeContent(_ref4) {\n var instance = _ref4.instance;\n return ['p-tree-node-content', instance.node.styleClass, {\n 'p-tree-node-selectable': instance.selectable,\n 'p-tree-node-selected': instance.checkboxMode && instance.$parentInstance.highlightOnSelect ? instance.checked : instance.selected\n }];\n },\n nodeToggleButton: 'p-tree-node-toggle-button',\n nodeToggleIcon: 'p-tree-node-toggle-icon',\n nodeCheckbox: 'p-tree-node-checkbox',\n nodeIcon: 'p-tree-node-icon',\n nodeLabel: 'p-tree-node-label',\n nodeChildren: 'p-tree-node-children'\n};\nvar TreeStyle = BaseStyle.extend({\n name: 'tree',\n theme: theme,\n classes: classes\n});\n\nexport { TreeStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import { resolveFieldData } from '@primeuix/utils/object';\nimport SearchIcon from '@primevue/icons/search';\nimport SpinnerIcon from '@primevue/icons/spinner';\nimport IconField from 'primevue/iconfield';\nimport InputIcon from 'primevue/inputicon';\nimport InputText from 'primevue/inputtext';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TreeStyle from 'primevue/tree/style';\nimport { getAttribute, findSingle, find } from '@primeuix/utils/dom';\nimport CheckIcon from '@primevue/icons/check';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport MinusIcon from '@primevue/icons/minus';\nimport Checkbox from 'primevue/checkbox';\nimport Ripple from 'primevue/ripple';\nimport { resolveComponent, resolveDirective, openBlock, createElementBlock, mergeProps, createElementVNode, withDirectives, Fragment, createBlock, resolveDynamicComponent, normalizeClass, withCtx, createCommentVNode, withModifiers, createTextVNode, toDisplayString, renderList, renderSlot, createVNode } from 'vue';\n\nvar script$2 = {\n name: 'BaseTree',\n \"extends\": BaseComponent,\n props: {\n value: {\n type: null,\n \"default\": null\n },\n expandedKeys: {\n type: null,\n \"default\": null\n },\n selectionKeys: {\n type: null,\n \"default\": null\n },\n selectionMode: {\n type: String,\n \"default\": null\n },\n metaKeySelection: {\n type: Boolean,\n \"default\": false\n },\n loading: {\n type: Boolean,\n \"default\": false\n },\n loadingIcon: {\n type: String,\n \"default\": undefined\n },\n loadingMode: {\n type: String,\n \"default\": 'mask'\n },\n filter: {\n type: Boolean,\n \"default\": false\n },\n filterBy: {\n type: String,\n \"default\": 'label'\n },\n filterMode: {\n type: String,\n \"default\": 'lenient'\n },\n filterPlaceholder: {\n type: String,\n \"default\": null\n },\n filterLocale: {\n type: String,\n \"default\": undefined\n },\n highlightOnSelect: {\n type: Boolean,\n \"default\": false\n },\n scrollHeight: {\n type: String,\n \"default\": null\n },\n level: {\n type: Number,\n \"default\": 0\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: TreeStyle,\n provide: function provide() {\n return {\n $pcTree: this,\n $parentInstance: this\n };\n }\n};\n\nfunction _typeof$1(o) { \"@babel/helpers - typeof\"; return _typeof$1 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof$1(o); }\nfunction _createForOfIteratorHelper$1(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$1(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty$1(e, r, t) { return (r = _toPropertyKey$1(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey$1(t) { var i = _toPrimitive$1(t, \"string\"); return \"symbol\" == _typeof$1(i) ? i : i + \"\"; }\nfunction _toPrimitive$1(t, r) { if (\"object\" != _typeof$1(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof$1(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray$1(r) { return _arrayWithoutHoles$1(r) || _iterableToArray$1(r) || _unsupportedIterableToArray$1(r) || _nonIterableSpread$1(); }\nfunction _nonIterableSpread$1() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray$1(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray$1(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0; } }\nfunction _iterableToArray$1(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles$1(r) { if (Array.isArray(r)) return _arrayLikeToArray$1(r); }\nfunction _arrayLikeToArray$1(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar script$1 = {\n name: 'TreeNode',\n hostName: 'Tree',\n \"extends\": BaseComponent,\n emits: ['node-toggle', 'node-click', 'checkbox-change'],\n props: {\n node: {\n type: null,\n \"default\": null\n },\n expandedKeys: {\n type: null,\n \"default\": null\n },\n loadingMode: {\n type: String,\n \"default\": 'mask'\n },\n selectionKeys: {\n type: null,\n \"default\": null\n },\n selectionMode: {\n type: String,\n \"default\": null\n },\n templates: {\n type: null,\n \"default\": null\n },\n level: {\n type: Number,\n \"default\": null\n },\n index: null\n },\n nodeTouched: false,\n toggleClicked: false,\n mounted: function mounted() {\n this.setAllNodesTabIndexes();\n },\n methods: {\n toggle: function toggle() {\n this.$emit('node-toggle', this.node);\n this.toggleClicked = true;\n },\n label: function label(node) {\n return typeof node.label === 'function' ? node.label() : node.label;\n },\n onChildNodeToggle: function onChildNodeToggle(node) {\n this.$emit('node-toggle', node);\n },\n getPTOptions: function getPTOptions(key) {\n return this.ptm(key, {\n context: {\n index: this.index,\n expanded: this.expanded,\n selected: this.selected,\n checked: this.checked,\n leaf: this.leaf\n }\n });\n },\n onClick: function onClick(event) {\n if (this.toggleClicked || getAttribute(event.target, '[data-pc-section=\"nodetogglebutton\"]') || getAttribute(event.target.parentElement, '[data-pc-section=\"nodetogglebutton\"]')) {\n this.toggleClicked = false;\n return;\n }\n if (this.isCheckboxSelectionMode()) {\n if (this.node.selectable != false) {\n this.toggleCheckbox();\n }\n } else {\n this.$emit('node-click', {\n originalEvent: event,\n nodeTouched: this.nodeTouched,\n node: this.node\n });\n }\n this.nodeTouched = false;\n },\n onChildNodeClick: function onChildNodeClick(event) {\n this.$emit('node-click', event);\n },\n onTouchEnd: function onTouchEnd() {\n this.nodeTouched = true;\n },\n onKeyDown: function onKeyDown(event) {\n if (!this.isSameNode(event)) return;\n switch (event.code) {\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'ArrowDown':\n this.onArrowDown(event);\n break;\n case 'ArrowUp':\n this.onArrowUp(event);\n break;\n case 'ArrowRight':\n this.onArrowRight(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeft(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onEnterKey(event);\n break;\n }\n },\n onArrowDown: function onArrowDown(event) {\n var nodeElement = event.target.getAttribute('data-pc-section') === 'nodetogglebutton' ? event.target.closest('[role=\"treeitem\"]') : event.target;\n var listElement = nodeElement.children[1];\n if (listElement) {\n this.focusRowChange(nodeElement, listElement.children[0]);\n } else {\n if (nodeElement.nextElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.nextElementSibling);\n } else {\n var nextSiblingAncestor = this.findNextSiblingOfAncestor(nodeElement);\n if (nextSiblingAncestor) {\n this.focusRowChange(nodeElement, nextSiblingAncestor);\n }\n }\n }\n event.preventDefault();\n },\n onArrowUp: function onArrowUp(event) {\n var nodeElement = event.target;\n if (nodeElement.previousElementSibling) {\n this.focusRowChange(nodeElement, nodeElement.previousElementSibling, this.findLastVisibleDescendant(nodeElement.previousElementSibling));\n } else {\n var parentNodeElement = this.getParentNodeElement(nodeElement);\n if (parentNodeElement) {\n this.focusRowChange(nodeElement, parentNodeElement);\n }\n }\n event.preventDefault();\n },\n onArrowRight: function onArrowRight(event) {\n var _this = this;\n if (this.leaf || this.expanded) return;\n event.currentTarget.tabIndex = -1;\n this.$emit('node-toggle', this.node);\n this.$nextTick(function () {\n _this.onArrowDown(event);\n });\n },\n onArrowLeft: function onArrowLeft(event) {\n var togglerElement = findSingle(event.currentTarget, '[data-pc-section=\"nodetogglebutton\"]');\n if (this.level === 0 && !this.expanded) {\n return false;\n }\n if (this.expanded && !this.leaf) {\n togglerElement.click();\n return false;\n }\n var target = this.findBeforeClickableNode(event.currentTarget);\n if (target) {\n this.focusRowChange(event.currentTarget, target);\n }\n },\n onEnterKey: function onEnterKey(event) {\n this.setTabIndexForSelectionMode(event, this.nodeTouched);\n this.onClick(event);\n event.preventDefault();\n },\n onTabKey: function onTabKey() {\n this.setAllNodesTabIndexes();\n },\n setAllNodesTabIndexes: function setAllNodesTabIndexes() {\n var nodes = find(this.$refs.currentNode.closest('[data-pc-section=\"rootchildren\"]'), '[role=\"treeitem\"]');\n var hasSelectedNode = _toConsumableArray$1(nodes).some(function (node) {\n return node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true';\n });\n _toConsumableArray$1(nodes).forEach(function (node) {\n node.tabIndex = -1;\n });\n if (hasSelectedNode) {\n var selectedNodes = _toConsumableArray$1(nodes).filter(function (node) {\n return node.getAttribute('aria-selected') === 'true' || node.getAttribute('aria-checked') === 'true';\n });\n selectedNodes[0].tabIndex = 0;\n return;\n }\n _toConsumableArray$1(nodes)[0].tabIndex = 0;\n },\n setTabIndexForSelectionMode: function setTabIndexForSelectionMode(event, nodeTouched) {\n if (this.selectionMode !== null) {\n var elements = _toConsumableArray$1(find(this.$refs.currentNode.parentElement, '[role=\"treeitem\"]'));\n event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;\n if (elements.every(function (element) {\n return element.tabIndex === -1;\n })) {\n elements[0].tabIndex = 0;\n }\n }\n },\n focusRowChange: function focusRowChange(firstFocusableRow, currentFocusedRow, lastVisibleDescendant) {\n firstFocusableRow.tabIndex = '-1';\n currentFocusedRow.tabIndex = '0';\n this.focusNode(lastVisibleDescendant || currentFocusedRow);\n },\n findBeforeClickableNode: function findBeforeClickableNode(node) {\n var parentListElement = node.closest('ul').closest('li');\n if (parentListElement) {\n var prevNodeButton = findSingle(parentListElement, 'button');\n if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {\n return parentListElement;\n }\n return this.findBeforeClickableNode(node.previousElementSibling);\n }\n return null;\n },\n toggleCheckbox: function toggleCheckbox() {\n var _selectionKeys = this.selectionKeys ? _objectSpread$1({}, this.selectionKeys) : {};\n var _check = !this.checked;\n this.propagateDown(this.node, _check, _selectionKeys);\n this.$emit('checkbox-change', {\n node: this.node,\n check: _check,\n selectionKeys: _selectionKeys\n });\n },\n propagateDown: function propagateDown(node, check, selectionKeys) {\n if (check && node.selectable != false) selectionKeys[node.key] = {\n checked: true,\n partialChecked: false\n };else delete selectionKeys[node.key];\n if (node.children && node.children.length) {\n var _iterator = _createForOfIteratorHelper$1(node.children),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var child = _step.value;\n this.propagateDown(child, check, selectionKeys);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n },\n propagateUp: function propagateUp(event) {\n var check = event.check;\n var _selectionKeys = _objectSpread$1({}, event.selectionKeys);\n var checkedChildCount = 0;\n var childPartialSelected = false;\n var _iterator2 = _createForOfIteratorHelper$1(this.node.children),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var child = _step2.value;\n if (_selectionKeys[child.key] && _selectionKeys[child.key].checked) checkedChildCount++;else if (_selectionKeys[child.key] && _selectionKeys[child.key].partialChecked) childPartialSelected = true;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n if (check && checkedChildCount === this.node.children.length) {\n _selectionKeys[this.node.key] = {\n checked: true,\n partialChecked: false\n };\n } else {\n if (!check) {\n delete _selectionKeys[this.node.key];\n }\n if (childPartialSelected || checkedChildCount > 0 && checkedChildCount !== this.node.children.length) _selectionKeys[this.node.key] = {\n checked: false,\n partialChecked: true\n };else delete _selectionKeys[this.node.key];\n }\n this.$emit('checkbox-change', {\n node: event.node,\n check: event.check,\n selectionKeys: _selectionKeys\n });\n },\n onChildCheckboxChange: function onChildCheckboxChange(event) {\n this.$emit('checkbox-change', event);\n },\n findNextSiblingOfAncestor: function findNextSiblingOfAncestor(nodeElement) {\n var parentNodeElement = this.getParentNodeElement(nodeElement);\n if (parentNodeElement) {\n if (parentNodeElement.nextElementSibling) return parentNodeElement.nextElementSibling;else return this.findNextSiblingOfAncestor(parentNodeElement);\n } else {\n return null;\n }\n },\n findLastVisibleDescendant: function findLastVisibleDescendant(nodeElement) {\n var childrenListElement = nodeElement.children[1];\n if (childrenListElement) {\n var lastChildElement = childrenListElement.children[childrenListElement.children.length - 1];\n return this.findLastVisibleDescendant(lastChildElement);\n } else {\n return nodeElement;\n }\n },\n getParentNodeElement: function getParentNodeElement(nodeElement) {\n var parentNodeElement = nodeElement.parentElement.parentElement;\n return getAttribute(parentNodeElement, 'role') === 'treeitem' ? parentNodeElement : null;\n },\n focusNode: function focusNode(element) {\n element.focus();\n },\n isCheckboxSelectionMode: function isCheckboxSelectionMode() {\n return this.selectionMode === 'checkbox';\n },\n isSameNode: function isSameNode(event) {\n return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[role=\"treeitem\"]')));\n }\n },\n computed: {\n hasChildren: function hasChildren() {\n return this.node.children && this.node.children.length > 0;\n },\n expanded: function expanded() {\n return this.expandedKeys && this.expandedKeys[this.node.key] === true;\n },\n leaf: function leaf() {\n return this.node.leaf === false ? false : !(this.node.children && this.node.children.length);\n },\n selectable: function selectable() {\n return this.node.selectable === false ? false : this.selectionMode != null;\n },\n selected: function selected() {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[this.node.key] === true : false;\n },\n checkboxMode: function checkboxMode() {\n return this.selectionMode === 'checkbox' && this.node.selectable !== false;\n },\n checked: function checked() {\n return this.selectionKeys ? this.selectionKeys[this.node.key] && this.selectionKeys[this.node.key].checked : false;\n },\n partialChecked: function partialChecked() {\n return this.selectionKeys ? this.selectionKeys[this.node.key] && this.selectionKeys[this.node.key].partialChecked : false;\n },\n ariaChecked: function ariaChecked() {\n return this.selectionMode === 'single' || this.selectionMode === 'multiple' ? this.selected : undefined;\n },\n ariaSelected: function ariaSelected() {\n return this.checkboxMode ? this.checked : undefined;\n }\n },\n components: {\n Checkbox: Checkbox,\n ChevronDownIcon: ChevronDownIcon,\n ChevronRightIcon: ChevronRightIcon,\n CheckIcon: CheckIcon,\n MinusIcon: MinusIcon,\n SpinnerIcon: SpinnerIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1$1 = [\"aria-label\", \"aria-selected\", \"aria-expanded\", \"aria-setsize\", \"aria-posinset\", \"aria-level\", \"aria-checked\", \"tabindex\"];\nvar _hoisted_2 = [\"data-p-selected\", \"data-p-selectable\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n var _component_Checkbox = resolveComponent(\"Checkbox\");\n var _component_TreeNode = resolveComponent(\"TreeNode\", true);\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createElementBlock(\"li\", mergeProps({\n ref: \"currentNode\",\n \"class\": _ctx.cx('node'),\n role: \"treeitem\",\n \"aria-label\": $options.label($props.node),\n \"aria-selected\": $options.ariaSelected,\n \"aria-expanded\": $options.expanded,\n \"aria-setsize\": $props.node.children ? $props.node.children.length : 0,\n \"aria-posinset\": $props.index + 1,\n \"aria-level\": $props.level,\n \"aria-checked\": $options.ariaChecked,\n tabindex: $props.index === 0 ? 0 : -1,\n onKeydown: _cache[4] || (_cache[4] = function () {\n return $options.onKeyDown && $options.onKeyDown.apply($options, arguments);\n })\n }, $props.level === 1 ? $options.getPTOptions('node') : _ctx.ptm('nodeChildren')), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('nodeContent'),\n onClick: _cache[2] || (_cache[2] = function () {\n return $options.onClick && $options.onClick.apply($options, arguments);\n }),\n onTouchend: _cache[3] || (_cache[3] = function () {\n return $options.onTouchEnd && $options.onTouchEnd.apply($options, arguments);\n }),\n style: $props.node.style\n }, $options.getPTOptions('nodeContent'), {\n \"data-p-selected\": $options.checkboxMode ? $options.checked : $options.selected,\n \"data-p-selectable\": $options.selectable\n }), [withDirectives((openBlock(), createElementBlock(\"button\", mergeProps({\n type: \"button\",\n \"class\": _ctx.cx('nodeToggleButton'),\n onClick: _cache[0] || (_cache[0] = function () {\n return $options.toggle && $options.toggle.apply($options, arguments);\n }),\n tabindex: \"-1\"\n }, $options.getPTOptions('nodeToggleButton')), [$props.node.loading && $props.loadingMode === 'icon' ? (openBlock(), createElementBlock(Fragment, {\n key: 0\n }, [$props.templates['nodetoggleicon'] || $props.templates['nodetogglericon'] ? (openBlock(), createBlock(resolveDynamicComponent($props.templates['nodetoggleicon'] || $props.templates['nodetogglericon']), {\n key: 0,\n \"class\": normalizeClass(_ctx.cx('nodeToggleIcon'))\n }, null, 8, [\"class\"])) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({\n key: 1,\n spin: \"\",\n \"class\": _ctx.cx('nodetogglericon')\n }, _ctx.ptm('nodeToggleIcon')), null, 16, [\"class\"]))], 64)) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [$props.templates['nodetoggleicon'] || $props.templates['togglericon'] ? (openBlock(), createBlock(resolveDynamicComponent($props.templates['nodetoggleicon'] || $props.templates['togglericon']), {\n key: 0,\n node: $props.node,\n expanded: $options.expanded,\n \"class\": normalizeClass(_ctx.cx('nodeToggleIcon'))\n }, null, 8, [\"node\", \"expanded\", \"class\"])) : $options.expanded ? (openBlock(), createBlock(resolveDynamicComponent($props.node.expandedIcon ? 'span' : 'ChevronDownIcon'), mergeProps({\n key: 1,\n \"class\": _ctx.cx('nodeToggleIcon')\n }, $options.getPTOptions('nodeToggleIcon')), null, 16, [\"class\"])) : (openBlock(), createBlock(resolveDynamicComponent($props.node.collapsedIcon ? 'span' : 'ChevronRightIcon'), mergeProps({\n key: 2,\n \"class\": _ctx.cx('nodeToggleIcon')\n }, $options.getPTOptions('nodeToggleIcon')), null, 16, [\"class\"]))], 64))], 16)), [[_directive_ripple]]), $options.checkboxMode ? (openBlock(), createBlock(_component_Checkbox, {\n key: 0,\n modelValue: $options.checked,\n binary: true,\n indeterminate: $options.partialChecked,\n \"class\": normalizeClass(_ctx.cx('nodeCheckbox')),\n tabindex: -1,\n unstyled: _ctx.unstyled,\n pt: $options.getPTOptions('nodeCheckbox'),\n \"data-p-partialchecked\": $options.partialChecked\n }, {\n icon: withCtx(function (slotProps) {\n return [$props.templates['checkboxicon'] ? (openBlock(), createBlock(resolveDynamicComponent($props.templates['checkboxicon']), {\n key: 0,\n checked: slotProps.checked,\n partialChecked: $options.partialChecked,\n \"class\": normalizeClass(slotProps[\"class\"])\n }, null, 8, [\"checked\", \"partialChecked\", \"class\"])) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 8, [\"modelValue\", \"indeterminate\", \"class\", \"unstyled\", \"pt\", \"data-p-partialchecked\"])) : createCommentVNode(\"\", true), $props.templates['nodeicon'] ? (openBlock(), createBlock(resolveDynamicComponent($props.templates['nodeicon']), mergeProps({\n key: 1,\n node: $props.node,\n \"class\": [_ctx.cx('nodeIcon')]\n }, $options.getPTOptions('nodeIcon')), null, 16, [\"node\", \"class\"])) : (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 2,\n \"class\": [_ctx.cx('nodeIcon'), $props.node.icon]\n }, $options.getPTOptions('nodeIcon')), null, 16)), createElementVNode(\"span\", mergeProps({\n \"class\": _ctx.cx('nodeLabel')\n }, $options.getPTOptions('nodeLabel'), {\n onKeydown: _cache[1] || (_cache[1] = withModifiers(function () {}, [\"stop\"]))\n }), [$props.templates[$props.node.type] || $props.templates['default'] ? (openBlock(), createBlock(resolveDynamicComponent($props.templates[$props.node.type] || $props.templates['default']), {\n key: 0,\n node: $props.node,\n selected: $options.checkboxMode ? $options.checked : $options.selected\n }, null, 8, [\"node\", \"selected\"])) : (openBlock(), createElementBlock(Fragment, {\n key: 1\n }, [createTextVNode(toDisplayString($options.label($props.node)), 1)], 64))], 16)], 16, _hoisted_2), $options.hasChildren && $options.expanded ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('nodeChildren'),\n role: \"group\"\n }, _ctx.ptm('nodeChildren')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.node.children, function (childNode) {\n return openBlock(), createBlock(_component_TreeNode, {\n key: childNode.key,\n node: childNode,\n templates: $props.templates,\n level: $props.level + 1,\n loadingMode: $props.loadingMode,\n expandedKeys: $props.expandedKeys,\n onNodeToggle: $options.onChildNodeToggle,\n onNodeClick: $options.onChildNodeClick,\n selectionMode: $props.selectionMode,\n selectionKeys: $props.selectionKeys,\n onCheckboxChange: $options.propagateUp,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"node\", \"templates\", \"level\", \"loadingMode\", \"expandedKeys\", \"onNodeToggle\", \"onNodeClick\", \"selectionMode\", \"selectionKeys\", \"onCheckboxChange\", \"unstyled\", \"pt\"]);\n }), 128))], 16)) : createCommentVNode(\"\", true)], 16, _hoisted_1$1);\n}\n\nscript$1.render = render$1;\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t[\"return\"] || t[\"return\"](); } finally { if (u) throw o; } } }; }\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar script = {\n name: 'Tree',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['node-expand', 'node-collapse', 'update:expandedKeys', 'update:selectionKeys', 'node-select', 'node-unselect', 'filter'],\n data: function data() {\n return {\n d_expandedKeys: this.expandedKeys || {},\n filterValue: null\n };\n },\n watch: {\n expandedKeys: function expandedKeys(newValue) {\n this.d_expandedKeys = newValue;\n }\n },\n methods: {\n onNodeToggle: function onNodeToggle(node) {\n var key = node.key;\n if (this.d_expandedKeys[key]) {\n delete this.d_expandedKeys[key];\n this.$emit('node-collapse', node);\n } else {\n this.d_expandedKeys[key] = true;\n this.$emit('node-expand', node);\n }\n this.d_expandedKeys = _objectSpread({}, this.d_expandedKeys);\n this.$emit('update:expandedKeys', this.d_expandedKeys);\n },\n onNodeClick: function onNodeClick(event) {\n if (this.selectionMode != null && event.node.selectable !== false) {\n var metaSelection = event.nodeTouched ? false : this.metaKeySelection;\n var _selectionKeys = metaSelection ? this.handleSelectionWithMetaKey(event) : this.handleSelectionWithoutMetaKey(event);\n this.$emit('update:selectionKeys', _selectionKeys);\n }\n },\n onCheckboxChange: function onCheckboxChange(event) {\n this.$emit('update:selectionKeys', event.selectionKeys);\n if (event.check) this.$emit('node-select', event.node);else this.$emit('node-unselect', event.node);\n },\n handleSelectionWithMetaKey: function handleSelectionWithMetaKey(event) {\n var originalEvent = event.originalEvent;\n var node = event.node;\n var metaKey = originalEvent.metaKey || originalEvent.ctrlKey;\n var selected = this.isNodeSelected(node);\n var _selectionKeys;\n if (selected && metaKey) {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else {\n _selectionKeys = _objectSpread({}, this.selectionKeys);\n delete _selectionKeys[node.key];\n }\n this.$emit('node-unselect', node);\n } else {\n if (this.isSingleSelectionMode()) {\n _selectionKeys = {};\n } else if (this.isMultipleSelectionMode()) {\n _selectionKeys = !metaKey ? {} : this.selectionKeys ? _objectSpread({}, this.selectionKeys) : {};\n }\n _selectionKeys[node.key] = true;\n this.$emit('node-select', node);\n }\n return _selectionKeys;\n },\n handleSelectionWithoutMetaKey: function handleSelectionWithoutMetaKey(event) {\n var node = event.node;\n var selected = this.isNodeSelected(node);\n var _selectionKeys;\n if (this.isSingleSelectionMode()) {\n if (selected) {\n _selectionKeys = {};\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = {};\n _selectionKeys[node.key] = true;\n this.$emit('node-select', node);\n }\n } else {\n if (selected) {\n _selectionKeys = _objectSpread({}, this.selectionKeys);\n delete _selectionKeys[node.key];\n this.$emit('node-unselect', node);\n } else {\n _selectionKeys = this.selectionKeys ? _objectSpread({}, this.selectionKeys) : {};\n _selectionKeys[node.key] = true;\n this.$emit('node-select', node);\n }\n }\n return _selectionKeys;\n },\n isSingleSelectionMode: function isSingleSelectionMode() {\n return this.selectionMode === 'single';\n },\n isMultipleSelectionMode: function isMultipleSelectionMode() {\n return this.selectionMode === 'multiple';\n },\n isNodeSelected: function isNodeSelected(node) {\n return this.selectionMode && this.selectionKeys ? this.selectionKeys[node.key] === true : false;\n },\n isChecked: function isChecked(node) {\n return this.selectionKeys ? this.selectionKeys[node.key] && this.selectionKeys[node.key].checked : false;\n },\n isNodeLeaf: function isNodeLeaf(node) {\n return node.leaf === false ? false : !(node.children && node.children.length);\n },\n onFilterKeydown: function onFilterKeydown(event) {\n if (event.code === 'Enter' || event.code === 'NumpadEnter') {\n event.preventDefault();\n }\n this.$emit('filter', {\n originalEvent: event,\n value: event.target.value\n });\n },\n findFilteredNodes: function findFilteredNodes(node, paramsWithoutNode) {\n if (node) {\n var matched = false;\n if (node.children) {\n var childNodes = _toConsumableArray(node.children);\n node.children = [];\n var _iterator = _createForOfIteratorHelper(childNodes),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var childNode = _step.value;\n var copyChildNode = _objectSpread({}, childNode);\n if (this.isFilterMatched(copyChildNode, paramsWithoutNode)) {\n matched = true;\n node.children.push(copyChildNode);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n if (matched) {\n return true;\n }\n }\n },\n isFilterMatched: function isFilterMatched(node, _ref) {\n var searchFields = _ref.searchFields,\n filterText = _ref.filterText,\n strict = _ref.strict;\n var matched = false;\n var _iterator2 = _createForOfIteratorHelper(searchFields),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var field = _step2.value;\n var fieldValue = String(resolveFieldData(node, field)).toLocaleLowerCase(this.filterLocale);\n if (fieldValue.indexOf(filterText) > -1) {\n matched = true;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n if (!matched || strict && !this.isNodeLeaf(node)) {\n matched = this.findFilteredNodes(node, {\n searchFields: searchFields,\n filterText: filterText,\n strict: strict\n }) || matched;\n }\n return matched;\n }\n },\n computed: {\n filteredValue: function filteredValue() {\n var filteredNodes = [];\n var searchFields = this.filterBy.split(',');\n var filterText = this.filterValue.trim().toLocaleLowerCase(this.filterLocale);\n var strict = this.filterMode === 'strict';\n var _iterator3 = _createForOfIteratorHelper(this.value),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var node = _step3.value;\n var _node = _objectSpread({}, node);\n var paramsWithoutNode = {\n searchFields: searchFields,\n filterText: filterText,\n strict: strict\n };\n if (strict && (this.findFilteredNodes(_node, paramsWithoutNode) || this.isFilterMatched(_node, paramsWithoutNode)) || !strict && (this.isFilterMatched(_node, paramsWithoutNode) || this.findFilteredNodes(_node, paramsWithoutNode))) {\n filteredNodes.push(_node);\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n return filteredNodes;\n },\n valueToRender: function valueToRender() {\n if (this.filterValue && this.filterValue.trim().length > 0) return this.filteredValue;else return this.value;\n }\n },\n components: {\n TreeNode: script$1,\n InputText: InputText,\n InputIcon: InputIcon,\n IconField: IconField,\n SearchIcon: SearchIcon,\n SpinnerIcon: SpinnerIcon\n }\n};\n\nvar _hoisted_1 = [\"aria-labelledby\", \"aria-label\"];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_SpinnerIcon = resolveComponent(\"SpinnerIcon\");\n var _component_InputText = resolveComponent(\"InputText\");\n var _component_SearchIcon = resolveComponent(\"SearchIcon\");\n var _component_InputIcon = resolveComponent(\"InputIcon\");\n var _component_IconField = resolveComponent(\"IconField\");\n var _component_TreeNode = resolveComponent(\"TreeNode\");\n return openBlock(), createElementBlock(\"div\", mergeProps({\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [_ctx.loading && _ctx.loadingMode === 'mask' ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n \"class\": _ctx.cx('mask')\n }, _ctx.ptm('mask')), [renderSlot(_ctx.$slots, \"loadingicon\", {\n \"class\": normalizeClass(_ctx.cx('loadingIcon'))\n }, function () {\n return [_ctx.loadingIcon ? (openBlock(), createElementBlock(\"i\", mergeProps({\n key: 0,\n \"class\": [_ctx.cx('loadingIcon'), 'pi-spin', _ctx.loadingIcon]\n }, _ctx.ptm('loadingIcon')), null, 16)) : (openBlock(), createBlock(_component_SpinnerIcon, mergeProps({\n key: 1,\n spin: \"\",\n \"class\": _ctx.cx('loadingIcon')\n }, _ctx.ptm('loadingIcon')), null, 16, [\"class\"]))];\n })], 16)) : createCommentVNode(\"\", true), _ctx.filter ? (openBlock(), createBlock(_component_IconField, {\n key: 1,\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcFilterContainer')\n }, {\n \"default\": withCtx(function () {\n return [createVNode(_component_InputText, {\n modelValue: $data.filterValue,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = function ($event) {\n return $data.filterValue = $event;\n }),\n autocomplete: \"off\",\n \"class\": normalizeClass(_ctx.cx('pcFilter')),\n placeholder: _ctx.filterPlaceholder,\n unstyled: _ctx.unstyled,\n onKeydown: $options.onFilterKeydown,\n pt: _ctx.ptm('pcFilter')\n }, null, 8, [\"modelValue\", \"class\", \"placeholder\", \"unstyled\", \"onKeydown\", \"pt\"]), createVNode(_component_InputIcon, {\n unstyled: _ctx.unstyled,\n pt: _ctx.ptm('pcFilterIconContainer')\n }, {\n \"default\": withCtx(function () {\n return [renderSlot(_ctx.$slots, _ctx.$slots.filtericon ? 'filtericon' : 'searchicon', {\n \"class\": normalizeClass(_ctx.cx('filterIcon'))\n }, function () {\n return [createVNode(_component_SearchIcon, mergeProps({\n \"class\": _ctx.cx('filterIcon')\n }, _ctx.ptm('filterIcon')), null, 16, [\"class\"])];\n })];\n }),\n _: 3\n }, 8, [\"unstyled\", \"pt\"])];\n }),\n _: 3\n }, 8, [\"unstyled\", \"pt\"])) : createCommentVNode(\"\", true), createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('wrapper'),\n style: {\n maxHeight: _ctx.scrollHeight\n }\n }, _ctx.ptm('wrapper')), [createElementVNode(\"ul\", mergeProps({\n \"class\": _ctx.cx('rootChildren'),\n role: \"tree\",\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel\n }, _ctx.ptm('rootChildren')), [(openBlock(true), createElementBlock(Fragment, null, renderList($options.valueToRender, function (node, index) {\n return openBlock(), createBlock(_component_TreeNode, {\n key: node.key,\n node: node,\n templates: _ctx.$slots,\n level: _ctx.level + 1,\n index: index,\n expandedKeys: $data.d_expandedKeys,\n onNodeToggle: $options.onNodeToggle,\n onNodeClick: $options.onNodeClick,\n selectionMode: _ctx.selectionMode,\n selectionKeys: _ctx.selectionKeys,\n onCheckboxChange: $options.onCheckboxChange,\n loadingMode: _ctx.loadingMode,\n unstyled: _ctx.unstyled,\n pt: _ctx.pt\n }, null, 8, [\"node\", \"templates\", \"level\", \"index\", \"expandedKeys\", \"onNodeToggle\", \"onNodeClick\", \"selectionMode\", \"selectionKeys\", \"onCheckboxChange\", \"loadingMode\", \"unstyled\", \"pt\"]);\n }), 128))], 16, _hoisted_1)], 16)], 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseStyle from '@primevue/core/base/style';\n\nvar theme = function theme(_ref) {\n var dt = _ref.dt;\n return \"\\n.p-contextmenu {\\n background: \".concat(dt('contextmenu.background'), \";\\n color: \").concat(dt('contextmenu.color'), \";\\n border: 1px solid \").concat(dt('contextmenu.border.color'), \";\\n border-radius: \").concat(dt('contextmenu.border.radius'), \";\\n box-shadow: \").concat(dt('contextmenu.shadow'), \";\\n min-width: 12.5rem;\\n}\\n\\n.p-contextmenu-root-list,\\n.p-contextmenu-submenu {\\n margin: 0;\\n padding: \").concat(dt('contextmenu.list.padding'), \";\\n list-style: none;\\n outline: 0 none;\\n display: flex;\\n flex-direction: column;\\n gap: \").concat(dt('contextmenu.list.gap'), \";\\n}\\n\\n.p-contextmenu-submenu {\\n position: absolute;\\n display: flex;\\n flex-direction: column;\\n min-width: 100%;\\n z-index: 1;\\n background: \").concat(dt('contextmenu.background'), \";\\n color: \").concat(dt('contextmenu.color'), \";\\n border: 1px solid \").concat(dt('contextmenu.border.color'), \";\\n border-radius: \").concat(dt('contextmenu.border.radius'), \";\\n box-shadow: \").concat(dt('contextmenu.shadow'), \";\\n}\\n\\n.p-contextmenu-item {\\n position: relative;\\n}\\n\\n.p-contextmenu-item-content {\\n transition: background \").concat(dt('contextmenu.transition.duration'), \", color \").concat(dt('contextmenu.transition.duration'), \";\\n border-radius: \").concat(dt('contextmenu.item.border.radius'), \";\\n color: \").concat(dt('contextmenu.item.color'), \";\\n}\\n\\n.p-contextmenu-item-link {\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n text-decoration: none;\\n overflow: hidden;\\n position: relative;\\n color: inherit;\\n padding: \").concat(dt('contextmenu.item.padding'), \";\\n gap: \").concat(dt('contextmenu.item.gap'), \";\\n user-select: none;\\n}\\n\\n.p-contextmenu-item-label {\\n line-height: 1;\\n}\\n\\n.p-contextmenu-item-icon {\\n color: \").concat(dt('contextmenu.item.icon.color'), \";\\n}\\n\\n.p-contextmenu-submenu-icon {\\n color: \").concat(dt('contextmenu.submenu.icon.color'), \";\\n margin-left: auto;\\n font-size: \").concat(dt('contextmenu.submenu.icon.size'), \";\\n width: \").concat(dt('contextmenu.submenu.icon.size'), \";\\n height: \").concat(dt('contextmenu.submenu.icon.size'), \";\\n}\\n\\n.p-contextmenu-item.p-focus > .p-contextmenu-item-content {\\n color: \").concat(dt('contextmenu.item.focus.color'), \";\\n background: \").concat(dt('contextmenu.item.focus.background'), \";\\n}\\n\\n.p-contextmenu-item.p-focus > .p-contextmenu-item-content .p-contextmenu-item-icon {\\n color: \").concat(dt('contextmenu.item.icon.focus.color'), \";\\n}\\n\\n.p-contextmenu-item.p-focus > .p-contextmenu-item-content .p-contextmenu-submenu-icon {\\n color: \").concat(dt('contextmenu.submenu.icon.focus.color'), \";\\n}\\n\\n.p-contextmenu-item:not(.p-disabled) > .p-contextmenu-item-content:hover {\\n color: \").concat(dt('contextmenu.item.focus.color'), \";\\n background: \").concat(dt('contextmenu.item.focus.background'), \";\\n}\\n\\n.p-contextmenu-item:not(.p-disabled) > .p-contextmenu-item-content:hover .p-contextmenu-item-icon {\\n color: \").concat(dt('contextmenu.item.icon.focus.color'), \";\\n}\\n\\n.p-contextmenu-item:not(.p-disabled) > .p-contextmenu-item-content:hover .p-contextmenu-submenu-icon {\\n color: \").concat(dt('contextmenu.submenu.icon.focus.color'), \";\\n}\\n\\n.p-contextmenu-item-active > .p-contextmenu-item-content {\\n color: \").concat(dt('contextmenu.item.active.color'), \";\\n background: \").concat(dt('contextmenu.item.active.background'), \";\\n}\\n\\n.p-contextmenu-item-active > .p-contextmenu-item-content .p-contextmenu-item-icon {\\n color: \").concat(dt('contextmenu.item.icon.active.color'), \";\\n}\\n\\n.p-contextmenu-item-active > .p-contextmenu-item-content .p-contextmenu-submenu-icon {\\n color: \").concat(dt('contextmenu.submenu.icon.active.color'), \";\\n}\\n\\n.p-contextmenu-separator {\\n border-top: 1px solid \").concat(dt('contextmenu.separator.border.color'), \";\\n}\\n\\n.p-contextmenu-enter-from,\\n.p-contextmenu-leave-active {\\n opacity: 0;\\n}\\n\\n.p-contextmenu-enter-active {\\n transition: opacity 250ms;\\n}\\n\");\n};\nvar classes = {\n root: 'p-contextmenu p-component',\n rootList: 'p-contextmenu-root-list',\n item: function item(_ref2) {\n var instance = _ref2.instance,\n processedItem = _ref2.processedItem;\n return ['p-contextmenu-item', {\n 'p-contextmenu-item-active': instance.isItemActive(processedItem),\n 'p-focus': instance.isItemFocused(processedItem),\n 'p-disabled': instance.isItemDisabled(processedItem)\n }];\n },\n itemContent: 'p-contextmenu-item-content',\n itemLink: 'p-contextmenu-item-link',\n itemIcon: 'p-contextmenu-item-icon',\n itemLabel: 'p-contextmenu-item-label',\n submenuIcon: 'p-contextmenu-submenu-icon',\n submenu: 'p-contextmenu-submenu',\n separator: 'p-contextmenu-separator'\n};\nvar ContextMenuStyle = BaseStyle.extend({\n name: 'contextmenu',\n theme: theme,\n classes: classes\n});\n\nexport { ContextMenuStyle as default };\n//# sourceMappingURL=index.mjs.map\n","import BaseIcon from '@primevue/icons/baseicon';\nimport { openBlock, createElementBlock, mergeProps, createElementVNode } from 'vue';\n\nvar script = {\n name: 'AngleRightIcon',\n \"extends\": BaseIcon\n};\n\nvar _hoisted_1 = /*#__PURE__*/createElementVNode(\"path\", {\n d: \"M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z\",\n fill: \"currentColor\"\n}, null, -1);\nvar _hoisted_2 = [_hoisted_1];\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"svg\", mergeProps({\n width: \"14\",\n height: \"14\",\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, _ctx.pti()), _hoisted_2, 16);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","import { UniqueComponentId } from '@primevue/core/utils';\nimport { nestedPosition, focus, findSingle, addStyle, getHiddenElementOuterWidth, getHiddenElementOuterHeight, getViewport, isTouchDevice } from '@primeuix/utils/dom';\nimport { resolve, isNotEmpty, isPrintableCharacter, isEmpty, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport Portal from 'primevue/portal';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ContextMenuStyle from 'primevue/contextmenu/style';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps, resolveComponent, resolveDirective, openBlock, createBlock, Transition, withCtx, createElementBlock, Fragment, renderList, createElementVNode, withDirectives, resolveDynamicComponent, normalizeClass, createCommentVNode, toDisplayString, createVNode } from 'vue';\n\nvar script$2 = {\n name: 'BaseContextMenu',\n \"extends\": BaseComponent,\n props: {\n model: {\n type: Array,\n \"default\": null\n },\n appendTo: {\n type: [String, Object],\n \"default\": 'body'\n },\n autoZIndex: {\n type: Boolean,\n \"default\": true\n },\n baseZIndex: {\n type: Number,\n \"default\": 0\n },\n global: {\n type: Boolean,\n \"default\": false\n },\n tabindex: {\n type: Number,\n \"default\": 0\n },\n ariaLabelledby: {\n type: String,\n \"default\": null\n },\n ariaLabel: {\n type: String,\n \"default\": null\n }\n },\n style: ContextMenuStyle,\n provide: function provide() {\n return {\n $pcContextMenu: this,\n $parentInstance: this\n };\n }\n};\n\nvar script$1 = {\n name: 'ContextMenuSub',\n hostName: 'ContextMenu',\n \"extends\": BaseComponent,\n emits: ['item-click', 'item-mouseenter', 'item-mousemove'],\n props: {\n items: {\n type: Array,\n \"default\": null\n },\n menuId: {\n type: String,\n \"default\": null\n },\n focusedItemId: {\n type: String,\n \"default\": null\n },\n root: {\n type: Boolean,\n \"default\": false\n },\n visible: {\n type: Boolean,\n \"default\": false\n },\n level: {\n type: Number,\n \"default\": 0\n },\n templates: {\n type: Object,\n \"default\": null\n },\n activeItemPath: {\n type: Object,\n \"default\": null\n },\n tabindex: {\n type: Number,\n \"default\": 0\n }\n },\n methods: {\n getItemId: function getItemId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key);\n },\n getItemKey: function getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp: function getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel: function getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId: function getItemLabelId(processedItem) {\n return \"\".concat(this.menuId, \"_\").concat(processedItem.key, \"_label\");\n },\n getPTOptions: function getPTOptions(key, processedItem, index) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem),\n index: index\n }\n });\n },\n isItemActive: function isItemActive(processedItem) {\n return this.activeItemPath.some(function (path) {\n return path.key === processedItem.key;\n });\n },\n isItemVisible: function isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled: function isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused: function isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup: function isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onItemClick: function onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', {\n originalEvent: event,\n item: processedItem.item\n });\n this.$emit('item-click', {\n originalEvent: event,\n processedItem: processedItem,\n isFocus: true\n });\n },\n onItemMouseEnter: function onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', {\n originalEvent: event,\n processedItem: processedItem\n });\n },\n onItemMouseMove: function onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', {\n originalEvent: event,\n processedItem: processedItem,\n isFocus: true\n });\n },\n getAriaSetSize: function getAriaSetSize() {\n var _this = this;\n return this.items.filter(function (processedItem) {\n return _this.isItemVisible(processedItem) && !_this.getItemProp(processedItem, 'separator');\n }).length;\n },\n getAriaPosInset: function getAriaPosInset(index) {\n var _this2 = this;\n return index - this.items.slice(0, index).filter(function (processedItem) {\n return _this2.isItemVisible(processedItem) && _this2.getItemProp(processedItem, 'separator');\n }).length + 1;\n },\n onEnter: function onEnter() {\n nestedPosition(this.$refs.container, this.level);\n },\n getMenuItemProps: function getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps({\n \"class\": this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n }, this.getPTOptions('itemLink', processedItem, index)),\n icon: mergeProps({\n \"class\": [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n }, this.getPTOptions('itemIcon', processedItem, index)),\n label: mergeProps({\n \"class\": this.cx('itemLabel')\n }, this.getPTOptions('itemLabel', processedItem, index)),\n submenuicon: mergeProps({\n \"class\": this.cx('submenuIcon')\n }, this.getPTOptions('submenuicon', processedItem, index))\n };\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n\nvar _hoisted_1 = [\"tabindex\"];\nvar _hoisted_2 = [\"id\", \"aria-label\", \"aria-disabled\", \"aria-expanded\", \"aria-haspopup\", \"aria-level\", \"aria-setsize\", \"aria-posinset\", \"data-p-active\", \"data-p-focused\", \"data-p-disabled\"];\nvar _hoisted_3 = [\"onClick\", \"onMouseenter\", \"onMousemove\"];\nvar _hoisted_4 = [\"href\", \"target\"];\nvar _hoisted_5 = [\"id\"];\nvar _hoisted_6 = [\"id\"];\nfunction render$1(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_AngleRightIcon = resolveComponent(\"AngleRightIcon\");\n var _component_ContextMenuSub = resolveComponent(\"ContextMenuSub\", true);\n var _directive_ripple = resolveDirective(\"ripple\");\n return openBlock(), createBlock(Transition, mergeProps({\n name: \"p-contextmenusub\",\n onEnter: $options.onEnter\n }, _ctx.ptm('menu.transition')), {\n \"default\": withCtx(function () {\n return [($props.root ? true : $props.visible) ? (openBlock(), createElementBlock(\"ul\", mergeProps({\n key: 0,\n ref: \"container\",\n tabindex: $props.tabindex\n }, _ctx.ptm('rootList')), [(openBlock(true), createElementBlock(Fragment, null, renderList($props.items, function (processedItem, index) {\n return openBlock(), createElementBlock(Fragment, {\n key: $options.getItemKey(processedItem)\n }, [$options.isItemVisible(processedItem) && !$options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 0,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('item', {\n processedItem: processedItem\n }), $options.getItemProp(processedItem, 'class')],\n role: \"menuitem\",\n \"aria-label\": $options.getItemLabel(processedItem),\n \"aria-disabled\": $options.isItemDisabled(processedItem) || undefined,\n \"aria-expanded\": $options.isItemGroup(processedItem) ? $options.isItemActive(processedItem) : undefined,\n \"aria-haspopup\": $options.isItemGroup(processedItem) && !$options.getItemProp(processedItem, 'to') ? 'menu' : undefined,\n \"aria-level\": $props.level + 1,\n \"aria-setsize\": $options.getAriaSetSize(),\n \"aria-posinset\": $options.getAriaPosInset(index),\n ref_for: true\n }, $options.getPTOptions('item', processedItem, index), {\n \"data-p-active\": $options.isItemActive(processedItem),\n \"data-p-focused\": $options.isItemFocused(processedItem),\n \"data-p-disabled\": $options.isItemDisabled(processedItem)\n }), [createElementVNode(\"div\", mergeProps({\n \"class\": _ctx.cx('itemContent'),\n onClick: function onClick($event) {\n return $options.onItemClick($event, processedItem);\n },\n onMouseenter: function onMouseenter($event) {\n return $options.onItemMouseEnter($event, processedItem);\n },\n onMousemove: function onMousemove($event) {\n return $options.onItemMouseMove($event, processedItem);\n },\n ref_for: true\n }, $options.getPTOptions('itemContent', processedItem, index)), [!$props.templates.item ? withDirectives((openBlock(), createElementBlock(\"a\", mergeProps({\n key: 0,\n href: $options.getItemProp(processedItem, 'url'),\n \"class\": _ctx.cx('itemLink'),\n target: $options.getItemProp(processedItem, 'target'),\n tabindex: \"-1\",\n ref_for: true\n }, $options.getPTOptions('itemLink', processedItem, index)), [$props.templates.itemicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.itemicon), {\n key: 0,\n item: processedItem.item,\n \"class\": normalizeClass(_ctx.cx('itemIcon'))\n }, null, 8, [\"item\", \"class\"])) : $options.getItemProp(processedItem, 'icon') ? (openBlock(), createElementBlock(\"span\", mergeProps({\n key: 1,\n \"class\": [_ctx.cx('itemIcon'), $options.getItemProp(processedItem, 'icon')],\n ref_for: true\n }, $options.getPTOptions('itemIcon', processedItem, index)), null, 16)) : createCommentVNode(\"\", true), createElementVNode(\"span\", mergeProps({\n id: $options.getItemLabelId(processedItem),\n \"class\": _ctx.cx('itemLabel'),\n ref_for: true\n }, $options.getPTOptions('itemLabel', processedItem, index)), toDisplayString($options.getItemLabel(processedItem)), 17, _hoisted_5), $options.getItemProp(processedItem, 'items') ? (openBlock(), createElementBlock(Fragment, {\n key: 2\n }, [$props.templates.submenuicon ? (openBlock(), createBlock(resolveDynamicComponent($props.templates.submenuicon), {\n key: 0,\n active: $options.isItemActive(processedItem),\n \"class\": normalizeClass(_ctx.cx('submenuIcon'))\n }, null, 8, [\"active\", \"class\"])) : (openBlock(), createBlock(_component_AngleRightIcon, mergeProps({\n key: 1,\n \"class\": _ctx.cx('submenuIcon'),\n ref_for: true\n }, $options.getPTOptions('submenuicon', processedItem, index)), null, 16, [\"class\"]))], 64)) : createCommentVNode(\"\", true)], 16, _hoisted_4)), [[_directive_ripple]]) : (openBlock(), createBlock(resolveDynamicComponent($props.templates.item), {\n key: 1,\n item: processedItem.item,\n hasSubmenu: $options.getItemProp(processedItem, 'items'),\n label: $options.getItemLabel(processedItem),\n props: $options.getMenuItemProps(processedItem, index)\n }, null, 8, [\"item\", \"hasSubmenu\", \"label\", \"props\"]))], 16, _hoisted_3), $options.isItemVisible(processedItem) && $options.isItemGroup(processedItem) ? (openBlock(), createBlock(_component_ContextMenuSub, mergeProps({\n key: 0,\n id: $options.getItemId(processedItem) + '_list',\n role: \"menu\",\n \"class\": _ctx.cx('submenu'),\n menuId: $props.menuId,\n focusedItemId: $props.focusedItemId,\n items: processedItem.items,\n templates: $props.templates,\n activeItemPath: $props.activeItemPath,\n level: $props.level + 1,\n visible: $options.isItemActive(processedItem) && $options.isItemGroup(processedItem),\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onItemClick: _cache[0] || (_cache[0] = function ($event) {\n return _ctx.$emit('item-click', $event);\n }),\n onItemMouseenter: _cache[1] || (_cache[1] = function ($event) {\n return _ctx.$emit('item-mouseenter', $event);\n }),\n onItemMousemove: _cache[2] || (_cache[2] = function ($event) {\n return _ctx.$emit('item-mousemove', $event);\n }),\n \"aria-labelledby\": $options.getItemLabelId(processedItem),\n ref_for: true\n }, _ctx.ptm('submenu')), null, 16, [\"id\", \"class\", \"menuId\", \"focusedItemId\", \"items\", \"templates\", \"activeItemPath\", \"level\", \"visible\", \"pt\", \"unstyled\", \"aria-labelledby\"])) : createCommentVNode(\"\", true)], 16, _hoisted_2)) : createCommentVNode(\"\", true), $options.isItemVisible(processedItem) && $options.getItemProp(processedItem, 'separator') ? (openBlock(), createElementBlock(\"li\", mergeProps({\n key: 1,\n id: $options.getItemId(processedItem),\n style: $options.getItemProp(processedItem, 'style'),\n \"class\": [_ctx.cx('separator'), $options.getItemProp(processedItem, 'class')],\n role: \"separator\",\n ref_for: true\n }, _ctx.ptm('separator')), null, 16, _hoisted_6)) : createCommentVNode(\"\", true)], 64);\n }), 128))], 16, _hoisted_1)) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 16, [\"onEnter\"]);\n}\n\nscript$1.render = render$1;\n\nvar script = {\n name: 'ContextMenu',\n \"extends\": script$2,\n inheritAttrs: false,\n emits: ['focus', 'blur', 'show', 'hide', 'before-show', 'before-hide'],\n target: null,\n outsideClickListener: null,\n resizeListener: null,\n documentContextMenuListener: null,\n pageX: null,\n pageY: null,\n container: null,\n list: null,\n data: function data() {\n return {\n id: this.$attrs.id,\n focused: false,\n focusedItemInfo: {\n index: -1,\n level: 0,\n parentKey: ''\n },\n activeItemPath: [],\n visible: false,\n submenuVisible: false\n };\n },\n watch: {\n '$attrs.id': function $attrsId(newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItemPath: function activeItemPath(newPath) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else if (!this.visible) {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n mounted: function mounted() {\n this.id = this.id || UniqueComponentId();\n if (this.global) {\n this.bindDocumentContextMenuListener();\n }\n },\n beforeUnmount: function beforeUnmount() {\n this.unbindResizeListener();\n this.unbindOutsideClickListener();\n this.unbindDocumentContextMenuListener();\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n this.target = null;\n this.container = null;\n },\n methods: {\n getItemProp: function getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel: function getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled: function isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible: function isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup: function isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator: function isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel: function getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup: function isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle: function toggle(event) {\n this.visible ? this.hide() : this.show(event);\n },\n show: function show(event) {\n this.$emit('before-show');\n this.activeItemPath = [];\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n focus(this.list);\n this.pageX = event.pageX;\n this.pageY = event.pageY;\n this.visible ? this.position() : this.visible = true;\n event.stopPropagation();\n event.preventDefault();\n },\n hide: function hide() {\n this.$emit('before-hide');\n this.visible = false;\n this.activeItemPath = [];\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n },\n onFocus: function onFocus(event) {\n this.focused = true;\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : {\n index: -1,\n level: 0,\n parentKey: ''\n };\n this.$emit('focus', event);\n },\n onBlur: function onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = {\n index: -1,\n level: 0,\n parentKey: ''\n };\n this.searchValue = '';\n this.$emit('blur', event);\n },\n onKeyDown: function onKeyDown(event) {\n var metaKey = event.metaKey || event.ctrlKey;\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n case 'Home':\n this.onHomeKey(event);\n break;\n case 'End':\n this.onEndKey(event);\n break;\n case 'Space':\n this.onSpaceKey(event);\n break;\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n case 'Escape':\n this.onEscapeKey(event);\n break;\n case 'Tab':\n this.onTabKey(event);\n break;\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n break;\n }\n },\n onItemChange: function onItemChange(event) {\n var processedItem = event.processedItem,\n isFocus = event.isFocus;\n if (isEmpty(processedItem)) return;\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey,\n items = processedItem.items;\n var grouped = isNotEmpty(items);\n var activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== parentKey && p.parentKey !== key;\n });\n if (grouped) {\n activeItemPath.push(processedItem);\n this.submenuVisible = true;\n }\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n this.activeItemPath = activeItemPath;\n isFocus && focus(this.list);\n },\n onItemClick: function onItemClick(event) {\n var processedItem = event.processedItem;\n var grouped = this.isProccessedItemGroup(processedItem);\n var selected = this.isSelected(processedItem);\n if (selected) {\n var index = processedItem.index,\n key = processedItem.key,\n level = processedItem.level,\n parentKey = processedItem.parentKey;\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return key !== p.key && key.startsWith(p.key);\n });\n this.focusedItemInfo = {\n index: index,\n level: level,\n parentKey: parentKey\n };\n focus(this.list);\n } else {\n grouped ? this.onItemChange(event) : this.hide();\n }\n },\n onItemMouseEnter: function onItemMouseEnter(event) {\n this.onItemChange(event);\n },\n onItemMouseMove: function onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n onArrowDownKey: function onArrowDownKey(event) {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey: function onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.popup && this.hide();\n event.preventDefault();\n } else {\n var itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey: function onArrowLeftKey(event) {\n var _this = this;\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var parentItem = this.activeItemPath.find(function (p) {\n return p.key === processedItem.parentKey;\n });\n var root = isEmpty(processedItem.parent);\n if (!root) {\n this.focusedItemInfo = {\n index: -1,\n parentKey: parentItem ? parentItem.parentKey : ''\n };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n this.activeItemPath = this.activeItemPath.filter(function (p) {\n return p.parentKey !== _this.focusedItemInfo.parentKey;\n });\n event.preventDefault();\n },\n onArrowRightKey: function onArrowRightKey(event) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n if (grouped) {\n this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n this.focusedItemInfo = {\n index: -1,\n parentKey: processedItem.key\n };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n event.preventDefault();\n },\n onHomeKey: function onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey: function onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey: function onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var element = findSingle(this.list, \"li[id=\\\"\".concat(\"\".concat(this.focusedItemIdx), \"\\\"]\"));\n var anchorElement = element && findSingle(element, '[data-pc-section=\"itemlink\"]');\n anchorElement ? anchorElement.click() : element && element.click();\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n event.preventDefault();\n },\n onSpaceKey: function onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey: function onEscapeKey(event) {\n this.hide();\n !this.popup && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n event.preventDefault();\n },\n onTabKey: function onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n var processedItem = this.visibleItems[this.focusedItemInfo.index];\n var grouped = this.isProccessedItemGroup(processedItem);\n !grouped && this.onItemChange({\n originalEvent: event,\n processedItem: processedItem\n });\n }\n this.hide();\n },\n onEnter: function onEnter(el) {\n addStyle(el, {\n position: 'absolute'\n });\n this.position();\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n },\n onAfterEnter: function onAfterEnter() {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n this.$emit('show');\n focus(this.list);\n },\n onLeave: function onLeave() {\n this.$emit('hide');\n this.container = null;\n },\n onAfterLeave: function onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n },\n position: function position() {\n var left = this.pageX + 1;\n var top = this.pageY + 1;\n var width = this.container.offsetParent ? this.container.offsetWidth : getHiddenElementOuterWidth(this.container);\n var height = this.container.offsetParent ? this.container.offsetHeight : getHiddenElementOuterHeight(this.container);\n var viewport = getViewport();\n\n //flip\n if (left + width - document.body.scrollLeft > viewport.width) {\n left -= width;\n }\n\n //flip\n if (top + height - document.body.scrollTop > viewport.height) {\n top -= height;\n }\n\n //fit\n if (left < document.body.scrollLeft) {\n left = document.body.scrollLeft;\n }\n\n //fit\n if (top < document.body.scrollTop) {\n top = document.body.scrollTop;\n }\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\n },\n bindOutsideClickListener: function bindOutsideClickListener() {\n var _this2 = this;\n if (!this.outsideClickListener) {\n this.outsideClickListener = function (event) {\n var isOutsideContainer = _this2.container && !_this2.container.contains(event.target);\n var isOutsideTarget = _this2.visible ? !(_this2.target && (_this2.target === event.target || _this2.target.contains(event.target))) : true;\n if (isOutsideContainer && isOutsideTarget) {\n _this2.hide();\n }\n };\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener: function unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindResizeListener: function bindResizeListener() {\n var _this3 = this;\n if (!this.resizeListener) {\n this.resizeListener = function () {\n if (_this3.visible && !isTouchDevice()) {\n _this3.hide();\n }\n };\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener: function unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindDocumentContextMenuListener: function bindDocumentContextMenuListener() {\n var _this4 = this;\n if (!this.documentContextMenuListener) {\n this.documentContextMenuListener = function (event) {\n event.button === 2 && _this4.show(event);\n };\n document.addEventListener('contextmenu', this.documentContextMenuListener);\n }\n },\n unbindDocumentContextMenuListener: function unbindDocumentContextMenuListener() {\n if (this.documentContextMenuListener) {\n document.removeEventListener('contextmenu', this.documentContextMenuListener);\n this.documentContextMenuListener = null;\n }\n },\n isItemMatched: function isItemMatched(processedItem) {\n var _this$getProccessedIt;\n return this.isValidItem(processedItem) && ((_this$getProccessedIt = this.getProccessedItemLabel(processedItem)) === null || _this$getProccessedIt === void 0 ? void 0 : _this$getProccessedIt.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase()));\n },\n isValidItem: function isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem: function isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected: function isSelected(processedItem) {\n return this.activeItemPath.some(function (p) {\n return p.key === processedItem.key;\n });\n },\n findFirstItemIndex: function findFirstItemIndex() {\n var _this5 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this5.isValidItem(processedItem);\n });\n },\n findLastItemIndex: function findLastItemIndex() {\n var _this6 = this;\n return findLastIndex(this.visibleItems, function (processedItem) {\n return _this6.isValidItem(processedItem);\n });\n },\n findNextItemIndex: function findNextItemIndex(index) {\n var _this7 = this;\n var matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex(function (processedItem) {\n return _this7.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex: function findPrevItemIndex(index) {\n var _this8 = this;\n var matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), function (processedItem) {\n return _this8.isValidItem(processedItem);\n }) : -1;\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex: function findSelectedItemIndex() {\n var _this9 = this;\n return this.visibleItems.findIndex(function (processedItem) {\n return _this9.isValidSelectedItem(processedItem);\n });\n },\n findFirstFocusedItemIndex: function findFirstFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex: function findLastFocusedItemIndex() {\n var selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems: function searchItems(event, _char) {\n var _this10 = this;\n this.searchValue = (this.searchValue || '') + _char;\n var itemIndex = -1;\n var matched = false;\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n });\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n }) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex(function (processedItem) {\n return _this10.isItemMatched(processedItem);\n });\n }\n if (itemIndex !== -1) {\n matched = true;\n }\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.searchTimeout = setTimeout(function () {\n _this10.searchValue = '';\n _this10.searchTimeout = null;\n }, 500);\n return matched;\n },\n changeFocusedItemIndex: function changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView: function scrollInView() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n var id = index !== -1 ? \"\".concat(this.id, \"_\").concat(index) : this.focusedItemIdx;\n var element = findSingle(this.list, \"li[id=\\\"\".concat(id, \"\\\"]\"));\n if (element) {\n element.scrollIntoView && element.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n },\n createProcessedItems: function createProcessedItems(items) {\n var _this11 = this;\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parentKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n var processedItems = [];\n items && items.forEach(function (item, index) {\n var key = (parentKey !== '' ? parentKey + '_' : '') + index;\n var newItem = {\n item: item,\n index: index,\n level: level,\n key: key,\n parent: parent,\n parentKey: parentKey\n };\n newItem['items'] = _this11.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n return processedItems;\n },\n containerRef: function containerRef(el) {\n this.container = el;\n },\n listRef: function listRef(el) {\n this.list = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems: function processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems: function visibleItems() {\n var _this12 = this;\n var processedItem = this.activeItemPath.find(function (p) {\n return p.key === _this12.focusedItemInfo.parentKey;\n });\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemIdx: function focusedItemIdx() {\n return this.focusedItemInfo.index !== -1 ? \"\".concat(this.id).concat(isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : '', \"_\").concat(this.focusedItemInfo.index) : null;\n }\n },\n components: {\n ContextMenuSub: script$1,\n Portal: Portal\n }\n};\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n var _component_ContextMenuSub = resolveComponent(\"ContextMenuSub\");\n var _component_Portal = resolveComponent(\"Portal\");\n return openBlock(), createBlock(_component_Portal, {\n appendTo: _ctx.appendTo\n }, {\n \"default\": withCtx(function () {\n return [createVNode(Transition, mergeProps({\n name: \"p-contextmenu\",\n onEnter: $options.onEnter,\n onAfterEnter: $options.onAfterEnter,\n onLeave: $options.onLeave,\n onAfterLeave: $options.onAfterLeave\n }, _ctx.ptm('transition')), {\n \"default\": withCtx(function () {\n return [$data.visible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n ref: $options.containerRef,\n \"class\": _ctx.cx('root')\n }, _ctx.ptmi('root')), [createVNode(_component_ContextMenuSub, {\n ref: $options.listRef,\n id: $data.id + '_list',\n \"class\": normalizeClass(_ctx.cx('rootList')),\n role: \"menubar\",\n root: true,\n tabindex: _ctx.tabindex,\n \"aria-orientation\": \"vertical\",\n \"aria-activedescendant\": $data.focused ? $options.focusedItemIdx : undefined,\n menuId: $data.id,\n focusedItemId: $data.focused ? $options.focusedItemIdx : undefined,\n items: $options.processedItems,\n templates: _ctx.$slots,\n activeItemPath: $data.activeItemPath,\n \"aria-labelledby\": _ctx.ariaLabelledby,\n \"aria-label\": _ctx.ariaLabel,\n level: 0,\n visible: $data.submenuVisible,\n pt: _ctx.pt,\n unstyled: _ctx.unstyled,\n onFocus: $options.onFocus,\n onBlur: $options.onBlur,\n onKeydown: $options.onKeyDown,\n onItemClick: $options.onItemClick,\n onItemMouseenter: $options.onItemMouseEnter,\n onItemMousemove: $options.onItemMouseMove\n }, null, 8, [\"id\", \"class\", \"tabindex\", \"aria-activedescendant\", \"menuId\", \"focusedItemId\", \"items\", \"templates\", \"activeItemPath\", \"aria-labelledby\", \"aria-label\", \"visible\", \"pt\", \"unstyled\", \"onFocus\", \"onBlur\", \"onKeydown\", \"onItemClick\", \"onItemMouseenter\", \"onItemMousemove\"])], 16)) : createCommentVNode(\"\", true)];\n }),\n _: 1\n }, 16, [\"onEnter\", \"onAfterEnter\", \"onLeave\", \"onAfterLeave\"])];\n }),\n _: 1\n }, 8, [\"appendTo\"]);\n}\n\nscript.render = render;\n\nexport { script as default };\n//# sourceMappingURL=index.mjs.map\n","\n\n\n\n\n","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bind = void 0;\nfunction bind(target, _a) {\n var type = _a.type, listener = _a.listener, options = _a.options;\n target.addEventListener(type, listener, options);\n return function unbind() {\n target.removeEventListener(type, listener, options);\n };\n}\nexports.bind = bind;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = void 0;\nvar bind_1 = require(\"./bind\");\nfunction toOptions(value) {\n if (typeof value === 'undefined') {\n return undefined;\n }\n if (typeof value === 'boolean') {\n return {\n capture: value,\n };\n }\n return value;\n}\nfunction getBinding(original, sharedOptions) {\n if (sharedOptions == null) {\n return original;\n }\n var binding = __assign(__assign({}, original), { options: __assign(__assign({}, toOptions(sharedOptions)), toOptions(original.options)) });\n return binding;\n}\nfunction bindAll(target, bindings, sharedOptions) {\n var unbinds = bindings.map(function (original) {\n var binding = getBinding(original, sharedOptions);\n return (0, bind_1.bind)(target, binding);\n });\n return function unbindAll() {\n unbinds.forEach(function (unbind) { return unbind(); });\n };\n}\nexports.bindAll = bindAll;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = exports.bind = void 0;\nvar bind_1 = require(\"./bind\");\nObject.defineProperty(exports, \"bind\", { enumerable: true, get: function () { return bind_1.bind; } });\nvar bind_all_1 = require(\"./bind-all\");\nObject.defineProperty(exports, \"bindAll\", { enumerable: true, get: function () { return bind_all_1.bindAll; } });\n","// pulling this into a separate file so adapter(s) that don't\n// need the honey pot can pay as little as possible for it.\nexport var honeyPotDataAttribute = 'data-pdnd-honey-pot';","import { honeyPotDataAttribute } from './honey-pot-data-attribute';\nexport function isHoneyPotElement(target) {\n return target instanceof Element && target.hasAttribute(honeyPotDataAttribute);\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { isHoneyPotElement } from './is-honey-pot-element';\nexport function getElementFromPointWithoutHoneypot(client) {\n // eslint-disable-next-line no-restricted-syntax\n var _document$elementsFro = document.elementsFromPoint(client.x, client.y),\n _document$elementsFro2 = _slicedToArray(_document$elementsFro, 2),\n top = _document$elementsFro2[0],\n second = _document$elementsFro2[1];\n if (!top) {\n return null;\n }\n if (isHoneyPotElement(top)) {\n return second !== null && second !== void 0 ? second : null;\n }\n return top;\n}","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","// Maximum possible z-index\n// https://stackoverflow.com/questions/491052/minimum-and-maximum-value-of-z-index\nexport var maxZIndex = 2147483647;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { bind, bindAll } from 'bind-event-listener';\nimport { maxZIndex } from '../util/max-z-index';\nimport { honeyPotDataAttribute } from './honey-pot-data-attribute';\nvar honeyPotSize = 2;\nvar halfHoneyPotSize = honeyPotSize / 2;\n\n/**\n * `clientX` and `clientY` can be in sub pixels (eg `2.332`)\n * However, browser hitbox testing is commonly do to the closest pixel.\n *\n * → https://issues.chromium.org/issues/40940531\n *\n * To be sure that the honey pot will be over the `client` position,\n * we `.floor()` `clientX` and`clientY` and then make it `2px` in size.\n **/\nfunction floorToClosestPixel(point) {\n return {\n x: Math.floor(point.x),\n y: Math.floor(point.y)\n };\n}\n\n/**\n * We want to make sure the honey pot sits around the users position.\n * This seemed to be the most resilient while testing.\n */\nfunction pullBackByHalfHoneyPotSize(point) {\n return {\n x: point.x - halfHoneyPotSize,\n y: point.y - halfHoneyPotSize\n };\n}\n\n/**\n * Prevent the honey pot from changing the window size.\n * This is super unlikely to occur, but just being safe.\n */\nfunction preventGoingBackwardsOffScreen(point) {\n return {\n x: Math.max(point.x, 0),\n y: Math.max(point.y, 0)\n };\n}\n\n/**\n * Prevent the honey pot from changing the window size.\n * This is super unlikely to occur, but just being safe.\n */\nfunction preventGoingForwardsOffScreen(point) {\n return {\n x: Math.min(point.x, window.innerWidth - honeyPotSize),\n y: Math.min(point.y, window.innerHeight - honeyPotSize)\n };\n}\n\n/**\n * Create a `2x2` `DOMRect` around the `client` position\n */\nfunction getHoneyPotRectFor(_ref) {\n var client = _ref.client;\n var point = preventGoingForwardsOffScreen(preventGoingBackwardsOffScreen(pullBackByHalfHoneyPotSize(floorToClosestPixel(client))));\n\n // When debugging, it is helpful to\n // make this element a bit bigger\n return DOMRect.fromRect({\n x: point.x,\n y: point.y,\n width: honeyPotSize,\n height: honeyPotSize\n });\n}\nfunction getRectStyles(_ref2) {\n var clientRect = _ref2.clientRect;\n return {\n left: \"\".concat(clientRect.left, \"px\"),\n top: \"\".concat(clientRect.top, \"px\"),\n width: \"\".concat(clientRect.width, \"px\"),\n height: \"\".concat(clientRect.height, \"px\")\n };\n}\nfunction isWithin(_ref3) {\n var client = _ref3.client,\n clientRect = _ref3.clientRect;\n return (\n // is within horizontal bounds\n client.x >= clientRect.x && client.x <= clientRect.x + clientRect.width &&\n // is within vertical bounds\n client.y >= clientRect.y && client.y <= clientRect.y + clientRect.height\n );\n}\n/**\n * The honey pot fix is designed to get around a painful bug in all browsers.\n *\n * [Overview](https://www.youtube.com/watch?v=udE9qbFTeQg)\n *\n * **Background**\n *\n * When a drag starts, browsers incorrectly think that the users pointer is\n * still depressed where the drag started. Any element that goes under this position\n * will be entered into, causing `\"mouseenter\"` events and `\":hover\"` styles to be applied.\n *\n * _This is a violation of the spec_\n *\n * > \"From the moment that the user agent is to initiate the drag-and-drop operation,\n * > until the end \tof the drag-and-drop operation, device input events\n * > (e.g. mouse and keyboard events) must be suppressed.\"\n * >\n * > - https://html.spec.whatwg.org/multipage/dnd.html#drag-and-drop-processing-model\n *\n * _Some impacts_\n *\n * - `\":hover\"` styles being applied where they shouldn't (looks messy)\n * - components such as tooltips responding to `\"mouseenter\"` can show during a drag,\n * and on an element the user isn't even over\n *\n * Bug: https://issues.chromium.org/issues/41129937\n *\n * **Honey pot fix**\n *\n * 1. Create an element where the browser thinks the depressed pointer is\n * to absorb the incorrect pointer events\n * 2. Remove that element when it is no longer needed\n */\nfunction mountHoneyPot(_ref4) {\n var initial = _ref4.initial;\n var element = document.createElement('div');\n element.setAttribute(honeyPotDataAttribute, 'true');\n\n // can shift during the drag thanks to Firefox\n var clientRect = getHoneyPotRectFor({\n client: initial\n });\n Object.assign(element.style, _objectSpread(_objectSpread({\n // Setting a background color explicitly to avoid any inherited styles.\n // Looks like this could be `opacity: 0`, but worried that _might_\n // cause the element to be ignored on some platforms.\n // When debugging, set backgroundColor to something like \"red\".\n backgroundColor: 'transparent',\n position: 'fixed',\n // Being explicit to avoid inheriting styles\n padding: 0,\n margin: 0,\n boxSizing: 'border-box'\n }, getRectStyles({\n clientRect: clientRect\n })), {}, {\n // We want this element to absorb pointer events,\n // it's kind of the whole point 😉\n pointerEvents: 'auto',\n // Want to make sure the honey pot is top of everything else.\n // Don't need to worry about native drag previews, as they will\n // have been rendered (and removed) before the honey pot is rendered\n zIndex: maxZIndex\n }));\n document.body.appendChild(element);\n\n /**\n * 🦊 In firefox we can get `\"pointermove\"` events after the drag\n * has started, which is a spec violation.\n * The final `\"pointermove\"` will reveal where the \"depressed\" position\n * is for our honey pot fix.\n */\n var unbindPointerMove = bind(window, {\n type: 'pointermove',\n listener: function listener(event) {\n var client = {\n x: event.clientX,\n y: event.clientY\n };\n clientRect = getHoneyPotRectFor({\n client: client\n });\n Object.assign(element.style, getRectStyles({\n clientRect: clientRect\n }));\n },\n // using capture so we are less likely to be impacted by event stopping\n options: {\n capture: true\n }\n });\n return function finish(_ref5) {\n var current = _ref5.current;\n // Don't need this any more\n unbindPointerMove();\n\n // If the user is hover the honey pot, we remove it\n // so that the user can continue to interact with the page normally.\n if (isWithin({\n client: current,\n clientRect: clientRect\n })) {\n element.remove();\n return;\n }\n function cleanup() {\n unbindPostDragEvents();\n element.remove();\n }\n var unbindPostDragEvents = bindAll(window, [{\n type: 'pointerdown',\n listener: cleanup\n }, {\n type: 'pointermove',\n listener: cleanup\n }, {\n type: 'focusin',\n listener: cleanup\n }, {\n type: 'focusout',\n listener: cleanup\n },\n // a 'pointerdown' should happen before 'dragstart', but just being super safe\n {\n type: 'dragstart',\n listener: cleanup\n },\n // if the user has dragged something out of the window\n // and then is dragging something back into the window\n // the first events we will see are \"dragenter\" (and then \"dragover\").\n // So if we see any of these we need to clear the post drag fix.\n {\n type: 'dragenter',\n listener: cleanup\n }, {\n type: 'dragover',\n listener: cleanup\n }\n\n // Not adding a \"wheel\" event listener, as \"wheel\" by itself does not\n // resolve the bug.\n ], {\n // Using `capture` so less likely to be impacted by other code stopping events\n capture: true\n });\n };\n}\nexport function makeHoneyPotFix() {\n var latestPointerMove = null;\n function bindEvents() {\n // For sanity, only collecting this value from when events are first bound.\n // This prevents the case where a super old \"pointermove\" could be used\n // from a prior interaction.\n latestPointerMove = null;\n return bind(window, {\n type: 'pointermove',\n listener: function listener(event) {\n latestPointerMove = {\n x: event.clientX,\n y: event.clientY\n };\n },\n // listening for pointer move in capture phase\n // so we are less likely to be impacted by events being stopped.\n options: {\n capture: true\n }\n });\n }\n function getOnPostDispatch() {\n var finish = null;\n return function onPostEvent(_ref6) {\n var eventName = _ref6.eventName,\n payload = _ref6.payload;\n // We are adding the honey pot `onDragStart` so we don't\n // impact the creation of the native drag preview.\n if (eventName === 'onDragStart') {\n var _latestPointerMove;\n var input = payload.location.initial.input;\n\n // Sometimes there will be no latest \"pointermove\" (eg iOS).\n // In which case, we use the start position of the drag.\n var initial = (_latestPointerMove = latestPointerMove) !== null && _latestPointerMove !== void 0 ? _latestPointerMove : {\n x: input.clientX,\n y: input.clientY\n };\n\n // Don't need to defensively call `finish()` as `onDrop` from\n // one interaction is guaranteed to be called before `onDragStart`\n // of the next.\n finish = mountHoneyPot({\n initial: initial\n });\n }\n if (eventName === 'onDrop') {\n var _finish;\n var _input = payload.location.current.input;\n (_finish = finish) === null || _finish === void 0 || _finish({\n current: {\n x: _input.clientX,\n y: _input.clientY\n }\n });\n finish = null;\n // this interaction is finished, we want to use\n // the latest \"pointermove\" for each interaction\n latestPointerMove = null;\n }\n };\n }\n return {\n bindEvents: bindEvents,\n getOnPostDispatch: getOnPostDispatch\n };\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","/** Provide a function that you only ever want to be called a single time */\nexport function once(fn) {\n var cache = null;\n return function wrapped() {\n if (!cache) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var result = fn.apply(this, args);\n cache = {\n result: result\n };\n }\n return cache.result;\n };\n}","import { once } from '../public-utils/once';\n\n// using `cache` as our `isFirefox()` result will not change in a browser\n\n/**\n * Returns `true` if a `Firefox` browser\n * */\nexport var isFirefox = once(function isFirefox() {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n return navigator.userAgent.includes('Firefox');\n});","import { once } from '../public-utils/once';\n\n// using `cache` as our `isSafari()` result will not change in a browser\n\n/**\n * Returns `true` if a `Safari` browser.\n * Returns `true` if the browser is running on iOS (they are all Safari).\n * */\nexport var isSafari = once(function isSafari() {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n var _navigator = navigator,\n userAgent = _navigator.userAgent;\n return userAgent.includes('AppleWebKit') && !userAgent.includes('Chrome');\n});","import { bindAll } from 'bind-event-listener';\nimport { isSafari } from '../is-safari';\n\n/* For \"dragenter\" events, the browser should set `relatedTarget` to the previous element.\n * For external drag operations, our first \"dragenter\" event should have a `event.relatedTarget` of `null`.\n *\n * Unfortunately in Safari `event.relatedTarget` is *always* set to `null`\n * Safari bug: https://bugs.webkit.org/show_bug.cgi?id=242627\n * To work around this we count \"dragenter\" and \"dragleave\" events */\n\n// Using symbols for event properties so we don't clash with\n// anything on the `event` object\nvar symbols = {\n isLeavingWindow: Symbol('leaving'),\n isEnteringWindow: Symbol('entering')\n};\nexport function isEnteringWindowInSafari(_ref) {\n var dragEnter = _ref.dragEnter;\n if (!isSafari()) {\n return false;\n }\n return dragEnter.hasOwnProperty(symbols.isEnteringWindow);\n}\nexport function isLeavingWindowInSafari(_ref2) {\n var dragLeave = _ref2.dragLeave;\n if (!isSafari()) {\n return false;\n }\n return dragLeave.hasOwnProperty(symbols.isLeavingWindow);\n}\n(function fixSafari() {\n // Don't do anything when server side rendering\n if (typeof window === 'undefined') {\n return;\n }\n\n // rather than checking the userAgent for \"jsdom\" we can do this check\n // so that the check will be removed completely in production code\n if (process.env.NODE_ENV === 'test') {\n return;\n }\n if (!isSafari()) {\n return;\n }\n function getInitialState() {\n return {\n enterCount: 0,\n isOverWindow: false\n };\n }\n var state = getInitialState();\n function resetState() {\n state = getInitialState();\n }\n\n // These event listeners are bound _forever_ and _never_ removed\n // We don't bother cleaning up these event listeners (for now)\n // as this workaround is only for Safari\n\n // This is how the event count works:\n //\n // lift (+1 enterCount)\n // - dragstart(draggable) [enterCount: 0]\n // - dragenter(draggable) [enterCount: 1]\n // leaving draggable (+0 enterCount)\n // - dragenter(document.body) [enterCount: 2]\n // - dragleave(draggable) [enterCount: 1]\n // leaving window (-1 enterCount)\n // - dragleave(document.body) [enterCount: 0] {leaving the window}\n\n // Things to note:\n // - dragenter and dragleave bubble\n // - the first dragenter when entering a window might not be on `window`\n // - it could be on an element that is pressed up against the window\n // - (so we cannot rely on `event.target` values)\n\n bindAll(window, [{\n type: 'dragstart',\n listener: function listener() {\n state.enterCount = 0;\n // drag start occurs in the source window\n state.isOverWindow = true;\n // When a drag first starts it will also trigger a \"dragenter\" on the draggable element\n }\n }, {\n type: 'drop',\n listener: resetState\n }, {\n type: 'dragend',\n listener: resetState\n }, {\n type: 'dragenter',\n listener: function listener(event) {\n if (!state.isOverWindow && state.enterCount === 0) {\n // Patching the `event` object\n // The `event` object is shared with all event listeners for the event\n // @ts-expect-error: adding property to the event object\n event[symbols.isEnteringWindow] = true;\n }\n state.isOverWindow = true;\n state.enterCount++;\n }\n }, {\n type: 'dragleave',\n listener: function listener(event) {\n state.enterCount--;\n if (state.isOverWindow && state.enterCount === 0) {\n // Patching the `event` object as it is shared with all event listeners\n // The `event` object is shared with all event listeners for the event\n // @ts-expect-error: adding property to the event object\n event[symbols.isLeavingWindow] = true;\n state.isOverWindow = false;\n }\n }\n }],\n // using `capture: true` so that adding event listeners\n // in bubble phase will have the correct symbols\n {\n capture: true\n });\n})();","/**\n * Does the `EventTarget` look like a `Node` based on \"duck typing\".\n *\n * Helpful when the `Node` might be outside of the current document\n * so we cannot to an `target instanceof Node` check.\n */\nfunction isNodeLike(target) {\n return 'nodeName' in target;\n}\n\n/**\n * Is an `EventTarget` a `Node` from another `window`?\n */\nexport function isFromAnotherWindow(eventTarget) {\n return isNodeLike(eventTarget) && eventTarget.ownerDocument !== document;\n}","import { isFirefox } from '../is-firefox';\nimport { isSafari } from '../is-safari';\nimport { isLeavingWindowInSafari } from './count-events-for-safari';\nimport { isFromAnotherWindow } from './is-from-another-window';\nexport function isLeavingWindow(_ref) {\n var dragLeave = _ref.dragLeave;\n var type = dragLeave.type,\n relatedTarget = dragLeave.relatedTarget;\n if (type !== 'dragleave') {\n return false;\n }\n if (isSafari()) {\n return isLeavingWindowInSafari({\n dragLeave: dragLeave\n });\n }\n\n // Standard check: if going to `null` we are leaving the `window`\n if (relatedTarget == null) {\n return true;\n }\n\n /**\n * 🦊 Exception: `iframe` in Firefox (`125.0`)\n *\n * Case 1: parent `window` → child `iframe`\n * `dragLeave.relatedTarget` is element _inside_ the child `iframe`\n * (foreign element)\n *\n * Case 2: child `iframe` → parent `window`\n * `dragLeave.relatedTarget` is the `iframe` in the parent `window`\n * (foreign element)\n */\n\n if (isFirefox()) {\n return isFromAnotherWindow(relatedTarget);\n }\n\n /**\n * 🌏 Exception: `iframe` in Chrome (`124.0`)\n *\n * Case 1: parent `window` → child `iframe`\n * `dragLeave.relatedTarget` is the `iframe` in the parent `window`\n *\n * Case 2: child `iframe` → parent `window`\n * `dragLeave.relatedTarget` is `null` *(standard check)*\n */\n\n // Case 2\n // Using `instanceof` check as the element will be in the same `window`\n return relatedTarget instanceof HTMLIFrameElement;\n}","export function getBindingsForBrokenDrags(_ref) {\n var onDragEnd = _ref.onDragEnd;\n return [\n // ## Detecting drag ending for removed draggables\n //\n // If a draggable element is removed during a drag and the user drops:\n // 1. if over a valid drop target: we get a \"drop\" event to know the drag is finished\n // 2. if not over a valid drop target (or cancelled): we get nothing\n // The \"dragend\" event will not fire on the source draggable if it has been\n // removed from the DOM.\n // So we need to figure out if a drag operation has finished by looking at other events\n // We can do this by looking at other events\n\n // ### First detection: \"pointermove\" events\n\n // 1. \"pointermove\" events cannot fire during a drag and drop operation\n // according to the spec. So if we get a \"pointermove\" it means that\n // the drag and drop operations has finished. So if we get a \"pointermove\"\n // we know that the drag is over\n // 2. 🦊😤 Drag and drop operations are _supposed_ to suppress\n // other pointer events. However, firefox will allow a few\n // pointer event to get through after a drag starts.\n // The most I've seen is 3\n {\n type: 'pointermove',\n listener: function () {\n var callCount = 0;\n return function listener() {\n // Using 20 as it is far bigger than the most observed (3)\n if (callCount < 20) {\n callCount++;\n return;\n }\n onDragEnd();\n };\n }()\n },\n // ### Second detection: \"pointerdown\" events\n\n // If we receive this event then we know that a drag operation has finished\n // and potentially another one is about to start.\n // Note: `pointerdown` fires on all browsers / platforms before \"dragstart\"\n {\n type: 'pointerdown',\n listener: onDragEnd\n }];\n}","export function getInput(event) {\n return {\n altKey: event.altKey,\n button: event.button,\n buttons: event.buttons,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n shiftKey: event.shiftKey,\n clientX: event.clientX,\n clientY: event.clientY,\n pageX: event.pageX,\n pageY: event.pageY\n };\n}","var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;\n","import rafSchd from 'raf-schd';\nvar scheduleOnDrag = rafSchd(function (fn) {\n return fn();\n});\nvar dragStart = function () {\n var scheduled = null;\n function schedule(fn) {\n var frameId = requestAnimationFrame(function () {\n scheduled = null;\n fn();\n });\n scheduled = {\n frameId: frameId,\n fn: fn\n };\n }\n function flush() {\n if (scheduled) {\n cancelAnimationFrame(scheduled.frameId);\n scheduled.fn();\n scheduled = null;\n }\n }\n return {\n schedule: schedule,\n flush: flush\n };\n}();\nexport function makeDispatch(_ref) {\n var source = _ref.source,\n initial = _ref.initial,\n dispatchEvent = _ref.dispatchEvent;\n var previous = {\n dropTargets: []\n };\n function safeDispatch(args) {\n dispatchEvent(args);\n previous = {\n dropTargets: args.payload.location.current.dropTargets\n };\n }\n var dispatch = {\n start: function start(_ref2) {\n var nativeSetDragImage = _ref2.nativeSetDragImage;\n // Ensuring that both `onGenerateDragPreview` and `onDragStart` get the same location.\n // We do this so that `previous` is`[]` in `onDragStart` (which is logical)\n var location = {\n current: initial,\n previous: previous,\n initial: initial\n };\n // a `onGenerateDragPreview` does _not_ add another entry for `previous`\n // onDragPreview\n safeDispatch({\n eventName: 'onGenerateDragPreview',\n payload: {\n source: source,\n location: location,\n nativeSetDragImage: nativeSetDragImage\n }\n });\n dragStart.schedule(function () {\n safeDispatch({\n eventName: 'onDragStart',\n payload: {\n source: source,\n location: location\n }\n });\n });\n },\n dragUpdate: function dragUpdate(_ref3) {\n var current = _ref3.current;\n dragStart.flush();\n scheduleOnDrag.cancel();\n safeDispatch({\n eventName: 'onDropTargetChange',\n payload: {\n source: source,\n location: {\n initial: initial,\n previous: previous,\n current: current\n }\n }\n });\n },\n drag: function drag(_ref4) {\n var current = _ref4.current;\n scheduleOnDrag(function () {\n dragStart.flush();\n var location = {\n initial: initial,\n previous: previous,\n current: current\n };\n safeDispatch({\n eventName: 'onDrag',\n payload: {\n source: source,\n location: location\n }\n });\n });\n },\n drop: function drop(_ref5) {\n var current = _ref5.current,\n updatedSourcePayload = _ref5.updatedSourcePayload;\n dragStart.flush();\n scheduleOnDrag.cancel();\n safeDispatch({\n eventName: 'onDrop',\n payload: {\n source: updatedSourcePayload !== null && updatedSourcePayload !== void 0 ? updatedSourcePayload : source,\n location: {\n current: current,\n previous: previous,\n initial: initial\n }\n }\n });\n }\n };\n return dispatch;\n}","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport { bindAll } from 'bind-event-listener';\nimport { getElementFromPointWithoutHoneypot } from '../honey-pot-fix/get-element-from-point-without-honey-pot';\nimport { isHoneyPotElement } from '../honey-pot-fix/is-honey-pot-element';\nimport { isLeavingWindow } from '../util/changing-window/is-leaving-window';\nimport { getBindingsForBrokenDrags } from '../util/detect-broken-drag';\nimport { getInput } from '../util/get-input';\nimport { makeDispatch } from './dispatch-consumer-event';\nvar globalState = {\n isActive: false\n};\nfunction canStart() {\n return !globalState.isActive;\n}\nfunction getNativeSetDragImage(event) {\n if (event.dataTransfer) {\n // need to use `.bind` as `setDragImage` is required\n // to be run with `event.dataTransfer` as the \"this\" context\n return event.dataTransfer.setDragImage.bind(event.dataTransfer);\n }\n return null;\n}\nfunction hasHierarchyChanged(_ref) {\n var current = _ref.current,\n next = _ref.next;\n if (current.length !== next.length) {\n return true;\n }\n // not checking stickiness, data or dropEffect,\n // just whether the hierarchy has changed\n for (var i = 0; i < current.length; i++) {\n if (current[i].element !== next[i].element) {\n return true;\n }\n }\n return false;\n}\nfunction start(_ref2) {\n var event = _ref2.event,\n dragType = _ref2.dragType,\n getDropTargetsOver = _ref2.getDropTargetsOver,\n dispatchEvent = _ref2.dispatchEvent;\n if (!canStart()) {\n return;\n }\n var initial = getStartLocation({\n event: event,\n dragType: dragType,\n getDropTargetsOver: getDropTargetsOver\n });\n globalState.isActive = true;\n var state = {\n current: initial\n };\n\n // Setting initial drop effect for the drag\n setDropEffectOnEvent({\n event: event,\n current: initial.dropTargets\n });\n var dispatch = makeDispatch({\n source: dragType.payload,\n dispatchEvent: dispatchEvent,\n initial: initial\n });\n function updateState(next) {\n // only looking at whether hierarchy has changed to determine whether something as 'changed'\n var hasChanged = hasHierarchyChanged({\n current: state.current.dropTargets,\n next: next.dropTargets\n });\n\n // Always updating the state to include latest data, dropEffect and stickiness\n // Only updating consumers if the hierarchy has changed in some way\n // Consumers can get the latest data by using `onDrag`\n state.current = next;\n if (hasChanged) {\n dispatch.dragUpdate({\n current: state.current\n });\n }\n }\n function onUpdateEvent(event) {\n var input = getInput(event);\n\n // If we are over the honey pot, we need to get the element\n // that the user would have been over if not for the honey pot\n var target = isHoneyPotElement(event.target) ? getElementFromPointWithoutHoneypot({\n x: input.clientX,\n y: input.clientY\n }) : event.target;\n var nextDropTargets = getDropTargetsOver({\n target: target,\n input: input,\n source: dragType.payload,\n current: state.current.dropTargets\n });\n if (nextDropTargets.length) {\n // 🩸 must call `event.preventDefault()` to allow a browser drop to occur\n event.preventDefault();\n setDropEffectOnEvent({\n event: event,\n current: nextDropTargets\n });\n }\n updateState({\n dropTargets: nextDropTargets,\n input: input\n });\n }\n function cancel() {\n // The spec behaviour is that when a drag is cancelled, or when dropping on no drop targets,\n // a \"dragleave\" event is fired on the active drop target before a \"dragend\" event.\n // We are replicating that behaviour in `cancel` if there are any active drop targets to\n // ensure consistent behaviour.\n //\n // Note: When cancelling, or dropping on no drop targets, a \"dragleave\" event\n // will have already cleared the dropTargets to `[]` (as that particular \"dragleave\" has a `relatedTarget` of `null`)\n\n if (state.current.dropTargets.length) {\n updateState({\n dropTargets: [],\n input: state.current.input\n });\n }\n dispatch.drop({\n current: state.current,\n updatedSourcePayload: null\n });\n finish();\n }\n function finish() {\n globalState.isActive = false;\n unbindEvents();\n }\n var unbindEvents = bindAll(window, [{\n // 👋 Note: we are repurposing the `dragover` event as our `drag` event\n // this is because firefox does not publish pointer coordinates during\n // a `drag` event, but does for every other type of drag event\n // `dragover` fires on all elements that are being dragged over\n // Because we are binding to `window` - our `dragover` is effectively the same as a `drag`\n // 🦊😤\n type: 'dragover',\n listener: function listener(event) {\n // We need to regularly calculate the drop targets in order to allow:\n // - dynamic `canDrop()` checks\n // - rapid updating `getData()` calls to attach data in response to user input (eg for edge detection)\n // Sadly we cannot schedule inspecting changes resulting from this event\n // we need to be able to conditionally cancel the event with `event.preventDefault()`\n // to enable the correct native drop experience.\n\n // 1. check to see if anything has changed\n onUpdateEvent(event);\n\n // 2. let consumers know a move has occurred\n // This will include the latest 'input' values\n dispatch.drag({\n current: state.current\n });\n }\n }, {\n type: 'dragenter',\n listener: onUpdateEvent\n }, {\n type: 'dragleave',\n listener: function listener(event) {\n if (!isLeavingWindow({\n dragLeave: event\n })) {\n return;\n }\n\n /**\n * At this point we don't know if a drag is being cancelled,\n * or if a drag is leaving the `window`.\n *\n * Both have:\n * 1. \"dragleave\" (with `relatedTarget: null`)\n * 2. \"dragend\" (a \"dragend\" can occur when outside the `window`)\n *\n * **Clearing drop targets**\n *\n * For either case we are clearing the the drop targets\n *\n * - cancelling: we clear drop targets in `\"dragend\"` anyway\n * - leaving the `window`: we clear the drop targets (to clear stickiness)\n *\n * **Leaving the window and finishing the drag**\n *\n * _internal drags_\n *\n * - The drag continues when the user is outside the `window`\n * and can resume if the user drags back over the `window`,\n * or end when the user drops in an external `window`.\n * - We will get a `\"dragend\"`, or we can listen for other\n * events to determine the drag is finished when the user re-enters the `window`).\n *\n * _external drags_\n *\n * - We conclude the drag operation.\n * - We have no idea if the user will drag back over the `window`,\n * or if the drag ends elsewhere.\n * - We will create a new drag if the user re-enters the `window`.\n *\n * **Not updating `input`**\n *\n * 🐛 Bug[Chrome] the final `\"dragleave\"` has default input values (eg `clientX == 0`)\n * Workaround: intentionally not updating `input` in \"dragleave\"\n * rather than the users current input values\n * - [Conversation](https://twitter.com/alexandereardon/status/1642697633864241152)\n * - [Bug](https://bugs.chromium.org/p/chromium/issues/detail?id=1429937)\n **/\n\n updateState({\n input: state.current.input,\n dropTargets: []\n });\n if (dragType.startedFrom === 'external') {\n cancel();\n }\n }\n }, {\n // A \"drop\" can only happen if the browser allowed the drop\n type: 'drop',\n listener: function listener(event) {\n // Capture the final input.\n // We are capturing the final `input` for the\n // most accurate honey pot experience\n state.current = {\n dropTargets: state.current.dropTargets,\n input: getInput(event)\n };\n\n /** If there are no drop targets, then we will get\n * a \"drop\" event if:\n * - `preventUnhandled()` is being used\n * - there is an unmanaged drop target (eg another library)\n * In these cases, it's up to the consumer\n * to handle the drop if it's not over one of our drop targets\n * - `preventUnhandled()` will cancel the \"drop\"\n * - unmanaged drop targets can handle the \"drop\" how they want to\n * We won't call `event.preventDefault()` in this call path */\n\n if (!state.current.dropTargets.length) {\n cancel();\n return;\n }\n event.preventDefault();\n\n // applying the latest drop effect to the event\n setDropEffectOnEvent({\n event: event,\n current: state.current.dropTargets\n });\n dispatch.drop({\n current: state.current,\n // When dropping something native, we need to extract the latest\n // `.items` from the \"drop\" event as it is now accessible\n updatedSourcePayload: dragType.type === 'external' ? dragType.getDropPayload(event) : null\n });\n finish();\n }\n }, {\n // \"dragend\" fires when on the drag source (eg a draggable element)\n // when the drag is finished.\n // \"dragend\" will fire after \"drop\" (if there was a successful drop)\n // \"dragend\" does not fire if the draggable source has been removed during the drag\n // or for external drag sources (eg files)\n\n // This \"dragend\" listener will not fire if there was a successful drop\n // as we will have already removed the event listener\n\n type: 'dragend',\n listener: function listener(event) {\n // In firefox, the position of the \"dragend\" event can\n // be a bit different to the last \"dragover\" event.\n // Updating the input so we can get the best possible\n // information for the honey pot.\n state.current = {\n dropTargets: state.current.dropTargets,\n input: getInput(event)\n };\n cancel();\n }\n }].concat(_toConsumableArray(getBindingsForBrokenDrags({\n onDragEnd: cancel\n }))),\n // Once we have started a managed drag operation it is important that we see / own all drag events\n // We got one adoption bug pop up where some code was stopping (`event.stopPropagation()`)\n // all \"drop\" events in the bubble phase on the `document.body`.\n // This meant that we never saw the \"drop\" event.\n {\n capture: true\n });\n dispatch.start({\n nativeSetDragImage: getNativeSetDragImage(event)\n });\n}\nfunction setDropEffectOnEvent(_ref3) {\n var _current$;\n var event = _ref3.event,\n current = _ref3.current;\n // setting the `dropEffect` to be the innerMost drop targets dropEffect\n var innerMost = (_current$ = current[0]) === null || _current$ === void 0 ? void 0 : _current$.dropEffect;\n if (innerMost != null && event.dataTransfer) {\n event.dataTransfer.dropEffect = innerMost;\n }\n}\nfunction getStartLocation(_ref4) {\n var event = _ref4.event,\n dragType = _ref4.dragType,\n getDropTargetsOver = _ref4.getDropTargetsOver;\n var input = getInput(event);\n\n // When dragging from outside of the browser,\n // the drag is not being sourced from any local drop targets\n if (dragType.startedFrom === 'external') {\n return {\n input: input,\n dropTargets: []\n };\n }\n var dropTargets = getDropTargetsOver({\n input: input,\n source: dragType.payload,\n target: event.target,\n current: []\n });\n return {\n input: input,\n dropTargets: dropTargets\n };\n}\nexport var lifecycle = {\n canStart: canStart,\n start: start\n};","// Extending `Map` to allow us to link Key and Values together\n\nvar ledger = new Map();\nfunction registerUsage(_ref) {\n var typeKey = _ref.typeKey,\n mount = _ref.mount;\n var entry = ledger.get(typeKey);\n if (entry) {\n entry.usageCount++;\n return entry;\n }\n var initial = {\n typeKey: typeKey,\n unmount: mount(),\n usageCount: 1\n };\n ledger.set(typeKey, initial);\n return initial;\n}\nexport function register(args) {\n var entry = registerUsage(args);\n return function unregister() {\n entry.usageCount--;\n if (entry.usageCount > 0) {\n return;\n }\n // Only a single usage left, remove it\n entry.unmount();\n ledger.delete(args.typeKey);\n };\n}","/** Create a new combined function that will call all the provided functions */\nexport function combine() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n return function cleanup() {\n fns.forEach(function (fn) {\n return fn();\n });\n };\n}","export function addAttribute(element, _ref) {\n var attribute = _ref.attribute,\n value = _ref.value;\n element.setAttribute(attribute, value);\n return function () {\n return element.removeAttribute(attribute);\n };\n}","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport { combine } from '../public-utils/combine';\nimport { addAttribute } from '../util/add-attribute';\nfunction copyReverse(array) {\n return array.slice(0).reverse();\n}\nexport function makeDropTarget(_ref) {\n var typeKey = _ref.typeKey,\n defaultDropEffect = _ref.defaultDropEffect;\n var registry = new WeakMap();\n var dropTargetDataAtt = \"data-drop-target-for-\".concat(typeKey);\n var dropTargetSelector = \"[\".concat(dropTargetDataAtt, \"]\");\n function addToRegistry(args) {\n registry.set(args.element, args);\n return function () {\n return registry.delete(args.element);\n };\n }\n function dropTargetForConsumers(args) {\n // Guardrail: warn if the draggable element is already registered\n if (process.env.NODE_ENV !== 'production') {\n var existing = registry.get(args.element);\n if (existing) {\n // eslint-disable-next-line no-console\n console.warn(\"You have already registered a [\".concat(typeKey, \"] dropTarget on the same element\"), {\n existing: existing,\n proposed: args\n });\n }\n if (args.element instanceof HTMLIFrameElement) {\n // eslint-disable-next-line no-console\n console.warn(\"\\n We recommend not registering